Commit 1c1eb58b8435014bc57d87cefe95a3ec8600ecf9

Thomas de Grivel 2024-10-13T14:47:44

remove prismjs, fix 404

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
diff --git a/assets/package-lock.json b/assets/package-lock.json
index f356134..41f474e 100644
--- a/assets/package-lock.json
+++ b/assets/package-lock.json
@@ -13,7 +13,7 @@
         "jquery": "^3.7.1",
         "phoenix": "file:../deps/phoenix",
         "phoenix_html": "file:../deps/phoenix_html",
-        "phoenix_live_view": "file:../deps/phoenix_live_view",
+        "phoenix_live_view": "file:../deps/phoenix_live_view"
       }
     },
     "../deps/phoenix": {
@@ -66,6 +66,7 @@
       "version": "11.10.0",
       "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.10.0.tgz",
       "integrity": "sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==",
+      "license": "BSD-3-Clause",
       "engines": {
         "node": ">=12.0.0"
       }
@@ -86,14 +87,6 @@
     "node_modules/phoenix_live_view": {
       "resolved": "../deps/phoenix_live_view",
       "link": true
-    },
-    "node_modules/prismjs": {
-      "version": "1.29.0",
-      "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
-      "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
-      "engines": {
-        "node": ">=6"
-      }
     }
   }
 }
diff --git a/assets/package.json b/assets/package.json
index b6652f9..95b8ec6 100644
--- a/assets/package.json
+++ b/assets/package.json
@@ -4,13 +4,12 @@
   "repository": "https://git.kmx.io/kmx.io/kmxgit.git",
   "dependencies": {
     "@popperjs/core": "^2.11.8",
-    "font-awesome": "^4.7.0",
     "bootstrap": "^5.3.3",
+    "font-awesome": "^4.7.0",
     "highlight.js": "^11.10.0",
     "jquery": "^3.7.1",
     "phoenix": "file:../deps/phoenix",
     "phoenix_html": "file:../deps/phoenix_html",
-    "phoenix_live_view": "file:../deps/phoenix_live_view",
-    "prismjs": "^1.29.0"
+    "phoenix_live_view": "file:../deps/phoenix_live_view"
   }
 }
diff --git a/lib/kmxgit_web/controllers/repository_controller.ex b/lib/kmxgit_web/controllers/repository_controller.ex
index 65202d0..e73090f 100644
--- a/lib/kmxgit_web/controllers/repository_controller.ex
+++ b/lib/kmxgit_web/controllers/repository_controller.ex
@@ -341,29 +341,33 @@ defmodule KmxgitWeb.RepositoryController do
       op = get_op(chunks)
       op_params = get_op_params(op, chunks)
       repo = RepositoryManager.get_repository_by_owner_and_slug(params["owner"], slug)
-      public_access = GitManager.public_access?(Repository.full_slug(repo))
-      if op_params && repo && (public_access || Repository.member?(repo, current_user)) do
-        org = repo.organisation
-        user = repo.user
-        git = git_setup(repo, conn, op, op_params)
-        first_tree = Enum.find_value(git.trees,
-          fn {:branch, "master", _} -> "master"
-            _ -> false
-          end) ||
-          case Enum.at(git.trees, 0) do
-            {_, first_tree, _} -> first_tree
-            nil -> nil
+      if (repo) do
+        public_access = GitManager.public_access?(Repository.full_slug(repo))
+        if op_params && repo && (public_access || Repository.member?(repo, current_user)) do
+          org = repo.organisation
+          user = repo.user
+          git = git_setup(repo, conn, op, op_params)
+          first_tree = Enum.find_value(git.trees,
+            fn {:branch, "master", _} -> "master"
+              _ -> false
+            end) ||
+            case Enum.at(git.trees, 0) do
+              {_, first_tree, _} -> first_tree
+              nil -> nil
+            end
+          tree1 = op_params.tree || first_tree
+          op_params = %OpParams{op_params | tree: tree1, git: git, org: org, repo: repo, user: user}
+          if git.valid do
+            show_op(conn, op || :tree, op_params)
+          else
+            IO.inspect(:invalid_git)
+            not_found(conn)
           end
-        tree1 = op_params.tree || first_tree
-        op_params = %OpParams{op_params | tree: tree1, git: git, org: org, repo: repo, user: user}
-        if git.valid do
-          show_op(conn, op || :tree, op_params)
         else
-          IO.inspect(:invalid_git)
+          IO.inspect(:no_repo)
           not_found(conn)
         end
       else
-        IO.inspect(:no_repo)
         not_found(conn)
       end
     end
diff --git a/priv/static/_assets/app.js b/priv/static/_assets/app.js
index e985f9b..c199836 100644
--- a/priv/static/_assets/app.js
+++ b/priv/static/_assets/app.js
@@ -6424,7 +6424,8 @@
          * @param {CompiledMode} mode
          */
         constructor(mode) {
-          if (mode.data === void 0) mode.data = {};
+          if (mode.data === void 0)
+            mode.data = {};
           this.data = mode.data;
           this.isMatchIgnored = false;
         }
@@ -6491,7 +6492,8 @@
          *
          * @param {Node} node */
         openNode(node) {
-          if (!emitsWrappingTags(node)) return;
+          if (!emitsWrappingTags(node))
+            return;
           const className = scopeToCSSClass(
             node.scope,
             { prefix: this.classPrefix }
@@ -6503,7 +6505,8 @@
          *
          * @param {Node} node */
         closeNode(node) {
-          if (!emitsWrappingTags(node)) return;
+          if (!emitsWrappingTags(node))
+            return;
           this.buffer += SPAN_CLOSE;
         }
         /**
@@ -6554,7 +6557,8 @@
           return void 0;
         }
         closeAllNodes() {
-          while (this.closeNode()) ;
+          while (this.closeNode())
+            ;
         }
         toJSON() {
           return JSON.stringify(this.rootNode, null, 4);
@@ -6584,8 +6588,10 @@
          * @param {Node} node
          */
         static _collapse(node) {
-          if (typeof node === "string") return;
-          if (!node.children) return;
+          if (typeof node === "string")
+            return;
+          if (!node.children)
+            return;
           if (node.children.every((el) => typeof el === "string")) {
             node.children = [node.children.join("")];
           } else {
@@ -6625,7 +6631,8 @@
          */
         __addSublanguage(emitter, name) {
           const node = emitter.root;
-          if (name) node.scope = `language:${name}`;
+          if (name)
+            node.scope = `language:${name}`;
           this.add(node);
         }
         toHTML() {
@@ -6638,8 +6645,10 @@
         }
       };
       function source(re) {
-        if (!re) return null;
-        if (typeof re === "string") return re;
+        if (!re)
+          return null;
+        if (typeof re === "string")
+          return re;
         return re.source;
       }
       function lookahead(re) {
@@ -6728,7 +6737,8 @@
           relevance: 0,
           /** @type {ModeCallback} */
           "on:begin": (m, resp) => {
-            if (m.index !== 0) resp.ignoreMatch();
+            if (m.index !== 0)
+              resp.ignoreMatch();
           }
         }, opts);
       };
@@ -6878,7 +6888,8 @@
             },
             /** @type {ModeCallback} */
             "on:end": (m, resp) => {
-              if (resp.data._beginMatch !== m[1]) resp.ignoreMatch();
+              if (resp.data._beginMatch !== m[1])
+                resp.ignoreMatch();
             }
           }
         );
@@ -6923,30 +6934,39 @@
         }
       }
       function beginKeywords(mode, parent) {
-        if (!parent) return;
-        if (!mode.beginKeywords) return;
+        if (!parent)
+          return;
+        if (!mode.beginKeywords)
+          return;
         mode.begin = "\\b(" + mode.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)";
         mode.__beforeBegin = skipIfHasPrecedingDot;
         mode.keywords = mode.keywords || mode.beginKeywords;
         delete mode.beginKeywords;
-        if (mode.relevance === void 0) mode.relevance = 0;
+        if (mode.relevance === void 0)
+          mode.relevance = 0;
       }
       function compileIllegal(mode, _parent) {
-        if (!Array.isArray(mode.illegal)) return;
+        if (!Array.isArray(mode.illegal))
+          return;
         mode.illegal = either(...mode.illegal);
       }
       function compileMatch(mode, _parent) {
-        if (!mode.match) return;
-        if (mode.begin || mode.end) throw new Error("begin & end are not supported with match");
+        if (!mode.match)
+          return;
+        if (mode.begin || mode.end)
+          throw new Error("begin & end are not supported with match");
         mode.begin = mode.match;
         delete mode.match;
       }
       function compileRelevance(mode, _parent) {
-        if (mode.relevance === void 0) mode.relevance = 1;
+        if (mode.relevance === void 0)
+          mode.relevance = 1;
       }
       var beforeMatchExt = (mode, parent) => {
-        if (!mode.beforeMatch) return;
-        if (mode.starts) throw new Error("beforeMatch cannot be used with starts");
+        if (!mode.beforeMatch)
+          return;
+        if (mode.starts)
+          throw new Error("beforeMatch cannot be used with starts");
         const originalMode = Object.assign({}, mode);
         Object.keys(mode).forEach((key) => {
           delete mode[key];
@@ -7021,7 +7041,8 @@
         console.log(`WARN: ${message}`, ...args);
       };
       var deprecated = (version2, message) => {
-        if (seenDeprecations[`${version2}/${message}`]) return;
+        if (seenDeprecations[`${version2}/${message}`])
+          return;
         console.log(`Deprecated as of ${version2}. ${message}`);
         seenDeprecations[`${version2}/${message}`] = true;
       };
@@ -7041,7 +7062,8 @@
         mode[key]._multi = true;
       }
       function beginMultiClass(mode) {
-        if (!Array.isArray(mode.begin)) return;
+        if (!Array.isArray(mode.begin))
+          return;
         if (mode.skip || mode.excludeBegin || mode.returnBegin) {
           error("skip, excludeBegin, returnBegin not compatible with beginScope: {}");
           throw MultiClassError;
@@ -7054,7 +7076,8 @@
         mode.begin = _rewriteBackreferences(mode.begin, { joinWith: "" });
       }
       function endMultiClass(mode) {
-        if (!Array.isArray(mode.end)) return;
+        if (!Array.isArray(mode.end))
+          return;
         if (mode.skip || mode.excludeEnd || mode.returnEnd) {
           error("skip, excludeEnd, returnEnd not compatible with endScope: {}");
           throw MultiClassError;
@@ -7135,7 +7158,8 @@
           }
           // @ts-ignore
           getMatcher(index) {
-            if (this.multiRegexes[index]) return this.multiRegexes[index];
+            if (this.multiRegexes[index])
+              return this.multiRegexes[index];
             const matcher = new MultiRegex();
             this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));
             matcher.compile();
@@ -7151,7 +7175,8 @@
           // @ts-ignore
           addRule(re, opts) {
             this.rules.push([re, opts]);
-            if (opts.type === "begin") this.count++;
+            if (opts.type === "begin")
+              this.count++;
           }
           /** @param {string} s */
           exec(s) {
@@ -7159,7 +7184,8 @@
             m.lastIndex = this.lastIndex;
             let result = m.exec(s);
             if (this.resumingScanAtSamePosition()) {
-              if (result && result.index === this.lastIndex) ;
+              if (result && result.index === this.lastIndex)
+                ;
               else {
                 const m2 = this.getMatcher(0);
                 m2.lastIndex = this.lastIndex + 1;
@@ -7191,7 +7217,8 @@
             /** @type CompiledMode */
             mode
           );
-          if (mode.isCompiled) return cmode;
+          if (mode.isCompiled)
+            return cmode;
           [
             scopeClassName,
             // do this early so compiler extensions generally don't have to worry about
@@ -7223,20 +7250,25 @@
           }
           cmode.keywordPatternRe = langRe(keywordPattern, true);
           if (parent) {
-            if (!mode.begin) mode.begin = /\B|\b/;
+            if (!mode.begin)
+              mode.begin = /\B|\b/;
             cmode.beginRe = langRe(cmode.begin);
-            if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/;
-            if (mode.end) cmode.endRe = langRe(cmode.end);
+            if (!mode.end && !mode.endsWithParent)
+              mode.end = /\B|\b/;
+            if (mode.end)
+              cmode.endRe = langRe(cmode.end);
             cmode.terminatorEnd = source(cmode.end) || "";
             if (mode.endsWithParent && parent.terminatorEnd) {
               cmode.terminatorEnd += (mode.end ? "|" : "") + parent.terminatorEnd;
             }
           }
-          if (mode.illegal) cmode.illegalRe = langRe(
-            /** @type {RegExp | string} */
-            mode.illegal
-          );
-          if (!mode.contains) mode.contains = [];
+          if (mode.illegal)
+            cmode.illegalRe = langRe(
+              /** @type {RegExp | string} */
+              mode.illegal
+            );
+          if (!mode.contains)
+            mode.contains = [];
           mode.contains = [].concat(...mode.contains.map(function(c) {
             return expandOrCloneMode(c === "self" ? mode : c);
           }));
@@ -7253,7 +7285,8 @@
           cmode.matcher = buildModeRegex(cmode);
           return cmode;
         }
-        if (!language.compilerExtensions) language.compilerExtensions = [];
+        if (!language.compilerExtensions)
+          language.compilerExtensions = [];
         if (language.contains && language.contains.includes("self")) {
           throw new Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.");
         }
@@ -7264,7 +7297,8 @@
         );
       }
       function dependencyOnParent(mode) {
-        if (!mode) return false;
+        if (!mode)
+          return false;
         return mode.endsWithParent || dependencyOnParent(mode.starts);
       }
       function expandOrCloneMode(mode) {
@@ -7381,7 +7415,8 @@
                 emitter.addText(buf);
                 buf = "";
                 keywordHits[word] = (keywordHits[word] || 0) + 1;
-                if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;
+                if (keywordHits[word] <= MAX_KEYWORD_HITS)
+                  relevance += keywordRelevance;
                 if (kind.startsWith("_")) {
                   buf += match[0];
                 } else {
@@ -7398,7 +7433,8 @@
             emitter.addText(buf);
           }
           function processSubLanguage() {
-            if (modeBuffer === "") return;
+            if (modeBuffer === "")
+              return;
             let result2 = null;
             if (typeof top2.subLanguage === "string") {
               if (!languages[top2.subLanguage]) {
@@ -7425,7 +7461,8 @@
             modeBuffer = "";
           }
           function emitKeyword(keyword, scope) {
-            if (keyword === "") return;
+            if (keyword === "")
+              return;
             emitter.startScope(scope);
             emitter.addText(keyword);
             emitter.endScope();
@@ -7472,7 +7509,8 @@
               if (mode["on:end"]) {
                 const resp = new Response(mode);
                 mode["on:end"](match, resp);
-                if (resp.isMatchIgnored) matched = false;
+                if (resp.isMatchIgnored)
+                  matched = false;
               }
               if (matched) {
                 while (mode.endsParent && mode.parent) {
@@ -7500,9 +7538,11 @@
             const resp = new Response(newMode);
             const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]];
             for (const cb of beforeCallbacks) {
-              if (!cb) continue;
+              if (!cb)
+                continue;
               cb(match, resp);
-              if (resp.isMatchIgnored) return doIgnore(lexeme);
+              if (resp.isMatchIgnored)
+                return doIgnore(lexeme);
             }
             if (newMode.skip) {
               modeBuffer += lexeme;
@@ -7635,7 +7675,8 @@
                 }
                 top2.matcher.lastIndex = index;
                 const match = top2.matcher.exec(codeToHighlight);
-                if (!match) break;
+                if (!match)
+                  break;
                 const beforeMatch = codeToHighlight.substring(index, match.index);
                 const processedCount = processLexeme(beforeMatch, match);
                 index = match.index + processedCount;
@@ -7704,7 +7745,8 @@
           );
           results.unshift(plaintext);
           const sorted = results.sort((a, b) => {
-            if (a.relevance !== b.relevance) return b.relevance - a.relevance;
+            if (a.relevance !== b.relevance)
+              return b.relevance - a.relevance;
             if (a.language && b.language) {
               if (getLanguage(a.language).supersetOf === b.language) {
                 return 1;
@@ -7727,7 +7769,8 @@
         function highlightElement(element) {
           let node = null;
           const language = blockLanguage(element);
-          if (shouldNotHighlight(language)) return;
+          if (shouldNotHighlight(language))
+            return;
           fire(
             "before:highlightElement",
             { el: element, language }
@@ -7792,7 +7835,8 @@
           blocks.forEach(highlightElement);
         }
         function boot() {
-          if (wantsHighlight) highlightAll();
+          if (wantsHighlight)
+            highlightAll();
         }
         if (typeof window !== "undefined" && window.addEventListener) {
           window.addEventListener("DOMContentLoaded", boot, false);
@@ -7810,7 +7854,8 @@
             }
             lang = PLAINTEXT_LANGUAGE;
           }
-          if (!lang.name) lang.name = languageName;
+          if (!lang.name)
+            lang.name = languageName;
           languages[languageName] = lang;
           lang.rawDefinition = languageDefinition.bind(null, hljs);
           if (lang.aliases) {
@@ -20340,8 +20385,10 @@
         return new RegExp(value.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&"), "m");
       }
       function source(re) {
-        if (!re) return null;
-        if (typeof re === "string") return re;
+        if (!re)
+          return null;
+        if (typeof re === "string")
+          return re;
         return re.source;
       }
       function lookahead(re) {
@@ -26708,7 +26755,8 @@
         relevance: 0
       };
       function recurRegex(re, substitution, depth) {
-        if (depth === -1) return "";
+        if (depth === -1)
+          return "";
         return re.replace(substitution, (_) => {
           return recurRegex(re, substitution, depth - 1);
         });
@@ -38050,7 +38098,8 @@
             begin: SYMBOL_RE,
             // for performance out of fear of regex.either(...Mathematica.SYSTEM_SYMBOLS)
             "on:begin": (match, response) => {
-              if (!SYSTEM_SYMBOLS_SET.has(match[0])) response.ignoreMatch();
+              if (!SYSTEM_SYMBOLS_SET.has(match[0]))
+                response.ignoreMatch();
             }
           },
           {
@@ -41637,7 +41686,8 @@
             resp.data._beginMatch = m[1] || m[2];
           },
           "on:end": (m, resp) => {
-            if (resp.data._beginMatch !== m[1]) resp.ignoreMatch();
+            if (resp.data._beginMatch !== m[1])
+              resp.ignoreMatch();
           }
         };
         const NOWDOC = hljs.END_SAME_AS_BEGIN({
@@ -52025,8 +52075,10 @@
   var require_swift = __commonJS({
     "node_modules/highlight.js/lib/languages/swift.js"(exports, module) {
       function source(re) {
-        if (!re) return null;
-        if (typeof re === "string") return re;
+        if (!re)
+          return null;
+        if (typeof re === "string")
+          return re;
         return re.source;
       }
       function lookahead(re) {
@@ -57253,9 +57305,12 @@
             };
         })();
         var canvas, progressTimerId, fadeTimerId, currentProgress, showing, addEvent = function(elem, type, handler) {
-          if (elem.addEventListener) elem.addEventListener(type, handler, false);
-          else if (elem.attachEvent) elem.attachEvent("on" + type, handler);
-          else elem["on" + type] = handler;
+          if (elem.addEventListener)
+            elem.addEventListener(type, handler, false);
+          else if (elem.attachEvent)
+            elem.attachEvent("on" + type, handler);
+          else
+            elem["on" + type] = handler;
         }, options = {
           autoRun: true,
           barThickness: 3,
@@ -57294,19 +57349,24 @@
           style.top = style.left = style.right = style.margin = style.padding = 0;
           style.zIndex = 100001;
           style.display = "none";
-          if (options.className) canvas.classList.add(options.className);
+          if (options.className)
+            canvas.classList.add(options.className);
           document2.body.appendChild(canvas);
           addEvent(window2, "resize", repaint);
         }, topbar2 = {
           config: function(opts) {
             for (var key in opts)
-              if (options.hasOwnProperty(key)) options[key] = opts[key];
+              if (options.hasOwnProperty(key))
+                options[key] = opts[key];
           },
           show: function() {
-            if (showing) return;
+            if (showing)
+              return;
             showing = true;
-            if (fadeTimerId !== null) window2.cancelAnimationFrame(fadeTimerId);
-            if (!canvas) createCanvas();
+            if (fadeTimerId !== null)
+              window2.cancelAnimationFrame(fadeTimerId);
+            if (!canvas)
+              createCanvas();
             canvas.style.opacity = 1;
             canvas.style.display = "block";
             topbar2.progress(0);
@@ -57320,7 +57380,8 @@
             }
           },
           progress: function(to) {
-            if (typeof to === "undefined") return currentProgress;
+            if (typeof to === "undefined")
+              return currentProgress;
             if (typeof to === "string") {
               to = (to.indexOf("+") >= 0 || to.indexOf("-") >= 0 ? currentProgress : 0) + parseFloat(to);
             }
@@ -57329,7 +57390,8 @@
             return currentProgress;
           },
           hide: function() {
-            if (!showing) return;
+            if (!showing)
+              return;
             showing = false;
             if (progressTimerId != null) {
               window2.cancelAnimationFrame(progressTimerId);
@@ -58360,7 +58422,8 @@
       };
       for (var _i = numberOfChecks; _i > 0; _i--) {
         var _ret = _loop(_i);
-        if (_ret === "break") break;
+        if (_ret === "break")
+          break;
       }
     }
     if (state.placement !== firstFittingPlacement) {
@@ -62587,7 +62650,8 @@
   (function() {
     var PolyfillEvent = eventConstructor();
     function eventConstructor() {
-      if (typeof window.CustomEvent === "function") return window.CustomEvent;
+      if (typeof window.CustomEvent === "function")
+        return window.CustomEvent;
       function CustomEvent2(event, params) {
         params = params || { bubbles: false, cancelable: false, detail: void 0 };
         var evt = document.createEvent("CustomEvent");
@@ -62609,8 +62673,10 @@
       form.method = element.getAttribute("data-method") === "get" ? "get" : "post";
       form.action = to;
       form.style.display = "none";
-      if (target) form.target = target;
-      else if (targetModifierKey) form.target = "_blank";
+      if (target)
+        form.target = target;
+      else if (targetModifierKey)
+        form.target = "_blank";
       form.appendChild(csrf);
       form.appendChild(method);
       document.body.appendChild(form);
@@ -62620,7 +62686,8 @@
     }
     window.addEventListener("click", function(e) {
       var element = e.target;
-      if (e.defaultPrevented) return;
+      if (e.defaultPrevented)
+        return;
       while (element && element.getAttribute) {
         var phoenixLinkEvent = new PolyfillEvent("phoenix.link.click", {
           "bubbles": true,
@@ -67529,4 +67596,4 @@ bootstrap/dist/js/bootstrap.esm.js:
     * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
     *)
 */
-//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9qcXVlcnkvZGlzdC9qcXVlcnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2NvcmUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy8xYy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FibmYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hY2Nlc3Nsb2cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hY3Rpb25zY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hZGEuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hbmdlbHNjcmlwdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwYWNoZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwcGxlc2NyaXB0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXJjYWRlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXJkdWluby5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FybWFzbS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3htbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FzY2lpZG9jLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXNwZWN0ai5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2F1dG9ob3RrZXkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hdXRvaXQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hdnJhc20uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hd2suanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9heGFwdGEuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9iYXNoLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYmFzaWMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ibmYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9icmFpbmZ1Y2suanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2FsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2FwbnByb3RvLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2V5bG9uLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2xlYW4uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jbG9qdXJlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2xvanVyZS1yZXBsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY21ha2UuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb2ZmZWVzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb3EuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jcHAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jcm1zaC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NyeXN0YWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc2hhcnAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc3AuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFya2Rvd24uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kYXJ0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGVscGhpLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGlmZi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RqYW5nby5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Rucy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RvY2tlcmZpbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kb3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kc2NvbmZpZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2R0cy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2R1c3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lYm5mLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZWxpeGlyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZWxtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVieS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2VyYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2VybGFuZy1yZXBsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJsYW5nLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXhjZWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9maXguanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9mbGl4LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZm9ydHJhbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2ZzaGFycC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dhbXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nYXVzcy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2djb2RlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2hlcmtpbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dsc2wuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nbWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nby5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dvbG8uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ncmFkbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ncmFwaHFsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ3Jvb3Z5LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaGFtbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hhbmRsZWJhcnMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYXNrZWxsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaGF4ZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hzcC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2h0dHAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oeS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2luZm9ybTcuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9pbmkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9pcnBmOTAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9pc2JsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamF2YS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2phdmFzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qYm9zcy1jbGkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qc29uLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanVsaWEuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qdWxpYS1yZXBsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMva290bGluLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGFzc28uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sYXRleC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xkaWYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sZWFmLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGVzcy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xpc3AuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9saXZlY29kZXNlcnZlci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xpdmVzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sbHZtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbHNsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbHVhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFrZWZpbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYXRoZW1hdGljYS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21hdGxhYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21heGltYS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21lbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21lcmN1cnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9taXBzYXNtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWl6YXIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wZXJsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbW9qb2xpY2lvdXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb25rZXkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb29uc2NyaXB0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbjFxbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25lc3RlZHRleHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uZ2lueC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25pbS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25peC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25vZGUtcmVwbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25zaXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vYmplY3RpdmVjLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvb2NhbWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vcGVuc2NhZC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL294eWdlbmUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wYXJzZXIzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wZ3NxbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BocC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BocC10ZW1wbGF0ZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BsYWludGV4dC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BvbnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wb3dlcnNoZWxsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvY2Vzc2luZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Byb2ZpbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm9sb2cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm9wZXJ0aWVzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvdG9idWYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wdXBwZXQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wdXJlYmFzaWMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9weXRob24uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9weXRob24tcmVwbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3EuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9xbWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcmVhc29ubWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yaWIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yb2JvY29uZi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3JvdXRlcm9zLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnNsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVsZXNsYW5ndWFnZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3J1c3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zYXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY2FsYS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NjaGVtZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NjaWxhYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Njc3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zaGVsbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NtYWxpLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21hbGx0YWxrLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21sLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3FmLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3FsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3Rhbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N0YXRhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3RlcDIxLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3R5bHVzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3VidW5pdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N3aWZ0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdGFnZ2Vyc2NyaXB0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveWFtbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RhcC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RjbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RocmlmdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RwLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdHdpZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3R5cGVzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YWxhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmJuZXQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YnNjcmlwdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Zic2NyaXB0LWh0bWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92ZXJpbG9nLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmhkbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3ZpbS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3dhc20uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy93cmVuLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveDg2YXNtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveGwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy94cXVlcnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy96ZXBoaXIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2luZGV4LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy92ZW5kb3IvdG9wYmFyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9qcy9hcHAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvaW5kZXguanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZW51bXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldE5vZGVOYW1lLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2luc3RhbmNlT2YuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWF0aC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy91c2VyQWdlbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzTGF5b3V0Vmlld3BvcnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvY29udGFpbnMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENvbXB1dGVkU3R5bGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzVGFibGVFbGVtZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFBhcmVudE5vZGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvd2l0aGluLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZXhwYW5kVG9IYXNoTWFwLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9hcnJvdy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRWYXJpYXRpb24uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2V2ZW50TGlzdGVuZXJzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvd1Njcm9sbEJhclguanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFZpZXdwb3J0UmVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0RG9jdW1lbnRSZWN0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1Njcm9sbFBhcmVudC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0U2Nyb2xsUGFyZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9yZWN0VG9DbGllbnRSZWN0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvY29tcHV0ZU9mZnNldHMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2ZsaXAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2hpZGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL29mZnNldC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRBbHRBeGlzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldEhUTUxFbGVtZW50U2Nyb2xsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlU2Nyb2xsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlQnlOYW1lLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2NyZWF0ZVBvcHBlci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXItbGl0ZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2RvbS9kYXRhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy91dGlsL2luZGV4LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9kb20vZXZlbnQtaGFuZGxlci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvZG9tL21hbmlwdWxhdG9yLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy91dGlsL2NvbmZpZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvYmFzZS1jb21wb25lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2RvbS9zZWxlY3Rvci1lbmdpbmUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL3V0aWwvY29tcG9uZW50LWZ1bmN0aW9ucy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvYWxlcnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2J1dHRvbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC9zd2lwZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvY2Fyb3VzZWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2NvbGxhcHNlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9kcm9wZG93bi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC9iYWNrZHJvcC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC9mb2N1c3RyYXAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL3V0aWwvc2Nyb2xsYmFyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9tb2RhbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvb2ZmY2FudmFzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy91dGlsL3Nhbml0aXplci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC90ZW1wbGF0ZS1mYWN0b3J5LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy90b29sdGlwLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9wb3BvdmVyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9zY3JvbGxzcHkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL3RhYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdG9hc3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvZXMvaW5kZXguanMiLCAiLi4vLi4vLi4vYXNzZXRzL2pzL3JlcG9zaXRvcnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL2pzL2tteF9hbmltLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9qcy9rbXhfY29sb3JzLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9odG1sL3ByaXYvc3RhdGljL3Bob2VuaXhfaHRtbC5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvdXRpbHMuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2NvbnN0YW50cy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvcHVzaC5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvdGltZXIuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2NoYW5uZWwuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2FqYXguanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2xvbmdwb2xsLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peC9hc3NldHMvanMvcGhvZW5peC9wcmVzZW5jZS5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvc29ja2V0LmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L2NvbnN0YW50cy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9lbnRyeV91cGxvYWRlci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy91dGlscy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9icm93c2VyLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L2RvbS5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy91cGxvYWRfZW50cnkuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4X2xpdmVfdmlldy9hc3NldHMvanMvcGhvZW5peF9saXZlX3ZpZXcvbGl2ZV91cGxvYWRlci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9ob29rcy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9kb21fcG9zdF9tb3JwaF9yZXN0b3Jlci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9ub2RlX21vZHVsZXMvbW9ycGhkb20vZGlzdC9tb3JwaGRvbS1lc20uanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4X2xpdmVfdmlldy9hc3NldHMvanMvcGhvZW5peF9saXZlX3ZpZXcvZG9tX3BhdGNoLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L3JlbmRlcmVkLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L3ZpZXdfaG9vay5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9qcy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy92aWV3LmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L2xpdmVfc29ja2V0LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuNy4xXG4gKiBodHRwczovL2pxdWVyeS5jb20vXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBEYXRlOiAyMDIzLTA4LTI4VDEzOjM3WlxuICovXG4oIGZ1bmN0aW9uKCBnbG9iYWwsIGZhY3RvcnkgKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0aWYgKCB0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdC8vIEZvciBDb21tb25KUyBhbmQgQ29tbW9uSlMtbGlrZSBlbnZpcm9ubWVudHMgd2hlcmUgYSBwcm9wZXIgYHdpbmRvd2Bcblx0XHQvLyBpcyBwcmVzZW50LCBleGVjdXRlIHRoZSBmYWN0b3J5IGFuZCBnZXQgalF1ZXJ5LlxuXHRcdC8vIEZvciBlbnZpcm9ubWVudHMgdGhhdCBkbyBub3QgaGF2ZSBhIGB3aW5kb3dgIHdpdGggYSBgZG9jdW1lbnRgXG5cdFx0Ly8gKHN1Y2ggYXMgTm9kZS5qcyksIGV4cG9zZSBhIGZhY3RvcnkgYXMgbW9kdWxlLmV4cG9ydHMuXG5cdFx0Ly8gVGhpcyBhY2NlbnR1YXRlcyB0aGUgbmVlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgcmVhbCBgd2luZG93YC5cblx0XHQvLyBlLmcuIHZhciBqUXVlcnkgPSByZXF1aXJlKFwianF1ZXJ5XCIpKHdpbmRvdyk7XG5cdFx0Ly8gU2VlIHRpY2tldCB0cmFjLTE0NTQ5IGZvciBtb3JlIGluZm8uXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBnbG9iYWwuZG9jdW1lbnQgP1xuXHRcdFx0ZmFjdG9yeSggZ2xvYmFsLCB0cnVlICkgOlxuXHRcdFx0ZnVuY3Rpb24oIHcgKSB7XG5cdFx0XHRcdGlmICggIXcuZG9jdW1lbnQgKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCBcImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnRcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWN0b3J5KCB3ICk7XG5cdFx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGZhY3RvcnkoIGdsb2JhbCApO1xuXHR9XG5cbi8vIFBhc3MgdGhpcyBpZiB3aW5kb3cgaXMgbm90IGRlZmluZWQgeWV0XG59ICkoIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB0aGlzLCBmdW5jdGlvbiggd2luZG93LCBub0dsb2JhbCApIHtcblxuLy8gRWRnZSA8PSAxMiAtIDEzKywgRmlyZWZveCA8PTE4IC0gNDUrLCBJRSAxMCAtIDExLCBTYWZhcmkgNS4xIC0gOSssIGlPUyA2IC0gOS4xXG4vLyB0aHJvdyBleGNlcHRpb25zIHdoZW4gbm9uLXN0cmljdCBjb2RlIChlLmcuLCBBU1AuTkVUIDQuNSkgYWNjZXNzZXMgc3RyaWN0IG1vZGVcbi8vIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyICh0cmFjLTEzMzM1KS4gQnV0IGFzIG9mIGpRdWVyeSAzLjAgKDIwMTYpLCBzdHJpY3QgbW9kZSBzaG91bGQgYmUgY29tbW9uXG4vLyBlbm91Z2ggdGhhdCBhbGwgc3VjaCBhdHRlbXB0cyBhcmUgZ3VhcmRlZCBpbiBhIHRyeSBibG9jay5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgYXJyID0gW107XG5cbnZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxudmFyIHNsaWNlID0gYXJyLnNsaWNlO1xuXG52YXIgZmxhdCA9IGFyci5mbGF0ID8gZnVuY3Rpb24oIGFycmF5ICkge1xuXHRyZXR1cm4gYXJyLmZsYXQuY2FsbCggYXJyYXkgKTtcbn0gOiBmdW5jdGlvbiggYXJyYXkgKSB7XG5cdHJldHVybiBhcnIuY29uY2F0LmFwcGx5KCBbXSwgYXJyYXkgKTtcbn07XG5cblxudmFyIHB1c2ggPSBhcnIucHVzaDtcblxudmFyIGluZGV4T2YgPSBhcnIuaW5kZXhPZjtcblxudmFyIGNsYXNzMnR5cGUgPSB7fTtcblxudmFyIHRvU3RyaW5nID0gY2xhc3MydHlwZS50b1N0cmluZztcblxudmFyIGhhc093biA9IGNsYXNzMnR5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBmblRvU3RyaW5nID0gaGFzT3duLnRvU3RyaW5nO1xuXG52YXIgT2JqZWN0RnVuY3Rpb25TdHJpbmcgPSBmblRvU3RyaW5nLmNhbGwoIE9iamVjdCApO1xuXG52YXIgc3VwcG9ydCA9IHt9O1xuXG52YXIgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uIGlzRnVuY3Rpb24oIG9iaiApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTU3LCBGaXJlZm94IDw9NTJcblx0XHQvLyBJbiBzb21lIGJyb3dzZXJzLCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgPG9iamVjdD4gZWxlbWVudHNcblx0XHQvLyAoaS5lLiwgYHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcIm9iamVjdFwiICkgPT09IFwiZnVuY3Rpb25cImApLlxuXHRcdC8vIFdlIGRvbid0IHdhbnQgdG8gY2xhc3NpZnkgKmFueSogRE9NIG5vZGUgYXMgYSBmdW5jdGlvbi5cblx0XHQvLyBTdXBwb3J0OiBRdFdlYiA8PTMuOC41LCBXZWJLaXQgPD01MzQuMzQsIHdraHRtbHRvcGRmIHRvb2wgPD0wLjEyLjVcblx0XHQvLyBQbHVzIGZvciBvbGQgV2ViS2l0LCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgY29sbGVjdGlvbnNcblx0XHQvLyAoZS5nLiwgYHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImRpdlwiKSA9PT0gXCJmdW5jdGlvblwiYCkuIChnaC00NzU2KVxuXHRcdHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIG9iai5ub2RlVHlwZSAhPT0gXCJudW1iZXJcIiAmJlxuXHRcdFx0dHlwZW9mIG9iai5pdGVtICE9PSBcImZ1bmN0aW9uXCI7XG5cdH07XG5cblxudmFyIGlzV2luZG93ID0gZnVuY3Rpb24gaXNXaW5kb3coIG9iaiApIHtcblx0XHRyZXR1cm4gb2JqICE9IG51bGwgJiYgb2JqID09PSBvYmoud2luZG93O1xuXHR9O1xuXG5cbnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDtcblxuXG5cblx0dmFyIHByZXNlcnZlZFNjcmlwdEF0dHJpYnV0ZXMgPSB7XG5cdFx0dHlwZTogdHJ1ZSxcblx0XHRzcmM6IHRydWUsXG5cdFx0bm9uY2U6IHRydWUsXG5cdFx0bm9Nb2R1bGU6IHRydWVcblx0fTtcblxuXHRmdW5jdGlvbiBET01FdmFsKCBjb2RlLCBub2RlLCBkb2MgKSB7XG5cdFx0ZG9jID0gZG9jIHx8IGRvY3VtZW50O1xuXG5cdFx0dmFyIGksIHZhbCxcblx0XHRcdHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCBcInNjcmlwdFwiICk7XG5cblx0XHRzY3JpcHQudGV4dCA9IGNvZGU7XG5cdFx0aWYgKCBub2RlICkge1xuXHRcdFx0Zm9yICggaSBpbiBwcmVzZXJ2ZWRTY3JpcHRBdHRyaWJ1dGVzICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNjQrLCBFZGdlIDE4K1xuXHRcdFx0XHQvLyBTb21lIGJyb3dzZXJzIGRvbid0IHN1cHBvcnQgdGhlIFwibm9uY2VcIiBwcm9wZXJ0eSBvbiBzY3JpcHRzLlxuXHRcdFx0XHQvLyBPbiB0aGUgb3RoZXIgaGFuZCwganVzdCB1c2luZyBgZ2V0QXR0cmlidXRlYCBpcyBub3QgZW5vdWdoIGFzXG5cdFx0XHRcdC8vIHRoZSBgbm9uY2VgIGF0dHJpYnV0ZSBpcyByZXNldCB0byBhbiBlbXB0eSBzdHJpbmcgd2hlbmV2ZXIgaXRcblx0XHRcdFx0Ly8gYmVjb21lcyBicm93c2luZy1jb250ZXh0IGNvbm5lY3RlZC5cblx0XHRcdFx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvMjM2OVxuXHRcdFx0XHQvLyBTZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jbm9uY2UtYXR0cmlidXRlc1xuXHRcdFx0XHQvLyBUaGUgYG5vZGUuZ2V0QXR0cmlidXRlYCBjaGVjayB3YXMgYWRkZWQgZm9yIHRoZSBzYWtlIG9mXG5cdFx0XHRcdC8vIGBqUXVlcnkuZ2xvYmFsRXZhbGAgc28gdGhhdCBpdCBjYW4gZmFrZSBhIG5vbmNlLWNvbnRhaW5pbmcgbm9kZVxuXHRcdFx0XHQvLyB2aWEgYW4gb2JqZWN0LlxuXHRcdFx0XHR2YWwgPSBub2RlWyBpIF0gfHwgbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoIGkgKTtcblx0XHRcdFx0aWYgKCB2YWwgKSB7XG5cdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZSggaSwgdmFsICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZG9jLmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdCApLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHNjcmlwdCApO1xuXHR9XG5cblxuZnVuY3Rpb24gdG9UeXBlKCBvYmogKSB7XG5cdGlmICggb2JqID09IG51bGwgKSB7XG5cdFx0cmV0dXJuIG9iaiArIFwiXCI7XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9Mi4zIG9ubHkgKGZ1bmN0aW9uaXNoIFJlZ0V4cClcblx0cmV0dXJuIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiID9cblx0XHRjbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKCBvYmogKSBdIHx8IFwib2JqZWN0XCIgOlxuXHRcdHR5cGVvZiBvYmo7XG59XG4vKiBnbG9iYWwgU3ltYm9sICovXG4vLyBEZWZpbmluZyB0aGlzIGdsb2JhbCBpbiAuZXNsaW50cmMuanNvbiB3b3VsZCBjcmVhdGUgYSBkYW5nZXIgb2YgdXNpbmcgdGhlIGdsb2JhbFxuLy8gdW5ndWFyZGVkIGluIGFub3RoZXIgcGxhY2UsIGl0IHNlZW1zIHNhZmVyIHRvIGRlZmluZSBnbG9iYWwgb25seSBmb3IgdGhpcyBtb2R1bGVcblxuXG5cbnZhciB2ZXJzaW9uID0gXCIzLjcuMVwiLFxuXG5cdHJodG1sU3VmZml4ID0gL0hUTUwkL2ksXG5cblx0Ly8gRGVmaW5lIGEgbG9jYWwgY29weSBvZiBqUXVlcnlcblx0alF1ZXJ5ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkge1xuXG5cdFx0Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnXG5cdFx0Ly8gTmVlZCBpbml0IGlmIGpRdWVyeSBpcyBjYWxsZWQgKGp1c3QgYWxsb3cgZXJyb3IgdG8gYmUgdGhyb3duIGlmIG5vdCBpbmNsdWRlZClcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApO1xuXHR9O1xuXG5qUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0ge1xuXG5cdC8vIFRoZSBjdXJyZW50IHZlcnNpb24gb2YgalF1ZXJ5IGJlaW5nIHVzZWRcblx0anF1ZXJ5OiB2ZXJzaW9uLFxuXG5cdGNvbnN0cnVjdG9yOiBqUXVlcnksXG5cblx0Ly8gVGhlIGRlZmF1bHQgbGVuZ3RoIG9mIGEgalF1ZXJ5IG9iamVjdCBpcyAwXG5cdGxlbmd0aDogMCxcblxuXHR0b0FycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1Jcblx0Ly8gR2V0IHRoZSB3aG9sZSBtYXRjaGVkIGVsZW1lbnQgc2V0IGFzIGEgY2xlYW4gYXJyYXlcblx0Z2V0OiBmdW5jdGlvbiggbnVtICkge1xuXG5cdFx0Ly8gUmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgaW4gYSBjbGVhbiBhcnJheVxuXHRcdGlmICggbnVtID09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiBqdXN0IHRoZSBvbmUgZWxlbWVudCBmcm9tIHRoZSBzZXRcblx0XHRyZXR1cm4gbnVtIDwgMCA/IHRoaXNbIG51bSArIHRoaXMubGVuZ3RoIF0gOiB0aGlzWyBudW0gXTtcblx0fSxcblxuXHQvLyBUYWtlIGFuIGFycmF5IG9mIGVsZW1lbnRzIGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrXG5cdC8vIChyZXR1cm5pbmcgdGhlIG5ldyBtYXRjaGVkIGVsZW1lbnQgc2V0KVxuXHRwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcyApIHtcblxuXHRcdC8vIEJ1aWxkIGEgbmV3IGpRdWVyeSBtYXRjaGVkIGVsZW1lbnQgc2V0XG5cdFx0dmFyIHJldCA9IGpRdWVyeS5tZXJnZSggdGhpcy5jb25zdHJ1Y3RvcigpLCBlbGVtcyApO1xuXG5cdFx0Ly8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSlcblx0XHRyZXQucHJldk9iamVjdCA9IHRoaXM7XG5cblx0XHQvLyBSZXR1cm4gdGhlIG5ld2x5LWZvcm1lZCBlbGVtZW50IHNldFxuXHRcdHJldHVybiByZXQ7XG5cdH0sXG5cblx0Ly8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC5cblx0ZWFjaDogZnVuY3Rpb24oIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZWFjaCggdGhpcywgY2FsbGJhY2sgKTtcblx0fSxcblxuXHRtYXA6IGZ1bmN0aW9uKCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5tYXAoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRzbGljZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzbGljZS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgKTtcblx0fSxcblxuXHRmaXJzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIDAgKTtcblx0fSxcblxuXHRsYXN0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5lcSggLTEgKTtcblx0fSxcblxuXHRldmVuOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5ncmVwKCB0aGlzLCBmdW5jdGlvbiggX2VsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gKCBpICsgMSApICUgMjtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRvZGQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5LmdyZXAoIHRoaXMsIGZ1bmN0aW9uKCBfZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiBpICUgMjtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRlcTogZnVuY3Rpb24oIGkgKSB7XG5cdFx0dmFyIGxlbiA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0aiA9ICtpICsgKCBpIDwgMCA/IGxlbiA6IDAgKTtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGogPj0gMCAmJiBqIDwgbGVuID8gWyB0aGlzWyBqIF0gXSA6IFtdICk7XG5cdH0sXG5cblx0ZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wcmV2T2JqZWN0IHx8IHRoaXMuY29uc3RydWN0b3IoKTtcblx0fSxcblxuXHQvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG5cdC8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90IGxpa2UgYSBqUXVlcnkgbWV0aG9kLlxuXHRwdXNoOiBwdXNoLFxuXHRzb3J0OiBhcnIuc29ydCxcblx0c3BsaWNlOiBhcnIuc3BsaWNlXG59O1xuXG5qUXVlcnkuZXh0ZW5kID0galF1ZXJ5LmZuLmV4dGVuZCA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgb3B0aW9ucywgbmFtZSwgc3JjLCBjb3B5LCBjb3B5SXNBcnJheSwgY2xvbmUsXG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWyAwIF0gfHwge30sXG5cdFx0aSA9IDEsXG5cdFx0bGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcblx0XHRkZWVwID0gZmFsc2U7XG5cblx0Ly8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvblxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGRlZXAgPSB0YXJnZXQ7XG5cblx0XHQvLyBTa2lwIHRoZSBib29sZWFuIGFuZCB0aGUgdGFyZ2V0XG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWyBpIF0gfHwge307XG5cdFx0aSsrO1xuXHR9XG5cblx0Ly8gSGFuZGxlIGNhc2Ugd2hlbiB0YXJnZXQgaXMgYSBzdHJpbmcgb3Igc29tZXRoaW5nIChwb3NzaWJsZSBpbiBkZWVwIGNvcHkpXG5cdGlmICggdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIiAmJiAhaXNGdW5jdGlvbiggdGFyZ2V0ICkgKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHQvLyBFeHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWRcblx0aWYgKCBpID09PSBsZW5ndGggKSB7XG5cdFx0dGFyZ2V0ID0gdGhpcztcblx0XHRpLS07XG5cdH1cblxuXHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblxuXHRcdC8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXNcblx0XHRpZiAoICggb3B0aW9ucyA9IGFyZ3VtZW50c1sgaSBdICkgIT0gbnVsbCApIHtcblxuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdFx0XHRjb3B5ID0gb3B0aW9uc1sgbmFtZSBdO1xuXG5cdFx0XHRcdC8vIFByZXZlbnQgT2JqZWN0LnByb3RvdHlwZSBwb2xsdXRpb25cblx0XHRcdFx0Ly8gUHJldmVudCBuZXZlci1lbmRpbmcgbG9vcFxuXHRcdFx0XHRpZiAoIG5hbWUgPT09IFwiX19wcm90b19fXCIgfHwgdGFyZ2V0ID09PSBjb3B5ICkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIHBsYWluIG9iamVjdHMgb3IgYXJyYXlzXG5cdFx0XHRcdGlmICggZGVlcCAmJiBjb3B5ICYmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvcHkgKSB8fFxuXHRcdFx0XHRcdCggY29weUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KCBjb3B5ICkgKSApICkge1xuXHRcdFx0XHRcdHNyYyA9IHRhcmdldFsgbmFtZSBdO1xuXG5cdFx0XHRcdFx0Ly8gRW5zdXJlIHByb3BlciB0eXBlIGZvciB0aGUgc291cmNlIHZhbHVlXG5cdFx0XHRcdFx0aWYgKCBjb3B5SXNBcnJheSAmJiAhQXJyYXkuaXNBcnJheSggc3JjICkgKSB7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IFtdO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoICFjb3B5SXNBcnJheSAmJiAhalF1ZXJ5LmlzUGxhaW5PYmplY3QoIHNyYyApICkge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSB7fTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cblx0XHRcdFx0XHQvLyBOZXZlciBtb3ZlIG9yaWdpbmFsIG9iamVjdHMsIGNsb25lIHRoZW1cblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGRlZXAsIGNsb25lLCBjb3B5ICk7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgYnJpbmcgaW4gdW5kZWZpbmVkIHZhbHVlc1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0dGFyZ2V0WyBuYW1lIF0gPSBjb3B5O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3Rcblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBVbmlxdWUgZm9yIGVhY2ggY29weSBvZiBqUXVlcnkgb24gdGhlIHBhZ2Vcblx0ZXhwYW5kbzogXCJqUXVlcnlcIiArICggdmVyc2lvbiArIE1hdGgucmFuZG9tKCkgKS5yZXBsYWNlKCAvXFxEL2csIFwiXCIgKSxcblxuXHQvLyBBc3N1bWUgalF1ZXJ5IGlzIHJlYWR5IHdpdGhvdXQgdGhlIHJlYWR5IG1vZHVsZVxuXHRpc1JlYWR5OiB0cnVlLFxuXG5cdGVycm9yOiBmdW5jdGlvbiggbXNnICkge1xuXHRcdHRocm93IG5ldyBFcnJvciggbXNnICk7XG5cdH0sXG5cblx0bm9vcDogZnVuY3Rpb24oKSB7fSxcblxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBwcm90bywgQ3RvcjtcblxuXHRcdC8vIERldGVjdCBvYnZpb3VzIG5lZ2F0aXZlc1xuXHRcdC8vIFVzZSB0b1N0cmluZyBpbnN0ZWFkIG9mIGpRdWVyeS50eXBlIHRvIGNhdGNoIGhvc3Qgb2JqZWN0c1xuXHRcdGlmICggIW9iaiB8fCB0b1N0cmluZy5jYWxsKCBvYmogKSAhPT0gXCJbb2JqZWN0IE9iamVjdF1cIiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRwcm90byA9IGdldFByb3RvKCBvYmogKTtcblxuXHRcdC8vIE9iamVjdHMgd2l0aCBubyBwcm90b3R5cGUgKGUuZy4sIGBPYmplY3QuY3JlYXRlKCBudWxsIClgKSBhcmUgcGxhaW5cblx0XHRpZiAoICFwcm90byApIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdC8vIE9iamVjdHMgd2l0aCBwcm90b3R5cGUgYXJlIHBsYWluIGlmZiB0aGV5IHdlcmUgY29uc3RydWN0ZWQgYnkgYSBnbG9iYWwgT2JqZWN0IGZ1bmN0aW9uXG5cdFx0Q3RvciA9IGhhc093bi5jYWxsKCBwcm90bywgXCJjb25zdHJ1Y3RvclwiICkgJiYgcHJvdG8uY29uc3RydWN0b3I7XG5cdFx0cmV0dXJuIHR5cGVvZiBDdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgZm5Ub1N0cmluZy5jYWxsKCBDdG9yICkgPT09IE9iamVjdEZ1bmN0aW9uU3RyaW5nO1xuXHR9LFxuXG5cdGlzRW1wdHlPYmplY3Q6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0dmFyIG5hbWU7XG5cblx0XHRmb3IgKCBuYW1lIGluIG9iaiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cblx0Ly8gRXZhbHVhdGVzIGEgc2NyaXB0IGluIGEgcHJvdmlkZWQgY29udGV4dDsgZmFsbHMgYmFjayB0byB0aGUgZ2xvYmFsIG9uZVxuXHQvLyBpZiBub3Qgc3BlY2lmaWVkLlxuXHRnbG9iYWxFdmFsOiBmdW5jdGlvbiggY29kZSwgb3B0aW9ucywgZG9jICkge1xuXHRcdERPTUV2YWwoIGNvZGUsIHsgbm9uY2U6IG9wdGlvbnMgJiYgb3B0aW9ucy5ub25jZSB9LCBkb2MgKTtcblx0fSxcblxuXHRlYWNoOiBmdW5jdGlvbiggb2JqLCBjYWxsYmFjayApIHtcblx0XHR2YXIgbGVuZ3RoLCBpID0gMDtcblxuXHRcdGlmICggaXNBcnJheUxpa2UoIG9iaiApICkge1xuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgaSBdLCBpLCBvYmpbIGkgXSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKCBpIGluIG9iaiApIHtcblx0XHRcdFx0aWYgKCBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb2JqO1xuXHR9LFxuXG5cblx0Ly8gUmV0cmlldmUgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzXG5cdHRleHQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBub2RlLFxuXHRcdFx0cmV0ID0gXCJcIixcblx0XHRcdGkgPSAwLFxuXHRcdFx0bm9kZVR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0aWYgKCAhbm9kZVR5cGUgKSB7XG5cblx0XHRcdC8vIElmIG5vIG5vZGVUeXBlLCB0aGlzIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFycmF5XG5cdFx0XHR3aGlsZSAoICggbm9kZSA9IGVsZW1bIGkrKyBdICkgKSB7XG5cblx0XHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcblx0XHRcdFx0cmV0ICs9IGpRdWVyeS50ZXh0KCBub2RlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICggbm9kZVR5cGUgPT09IDEgfHwgbm9kZVR5cGUgPT09IDExICkge1xuXHRcdFx0cmV0dXJuIGVsZW0udGV4dENvbnRlbnQ7XG5cdFx0fVxuXHRcdGlmICggbm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kb2N1bWVudEVsZW1lbnQudGV4dENvbnRlbnQ7XG5cdFx0fVxuXHRcdGlmICggbm9kZVR5cGUgPT09IDMgfHwgbm9kZVR5cGUgPT09IDQgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5ub2RlVmFsdWU7XG5cdFx0fVxuXG5cdFx0Ly8gRG8gbm90IGluY2x1ZGUgY29tbWVudCBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5vZGVzXG5cblx0XHRyZXR1cm4gcmV0O1xuXHR9LFxuXG5cdC8vIHJlc3VsdHMgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcblx0bWFrZUFycmF5OiBmdW5jdGlvbiggYXJyLCByZXN1bHRzICkge1xuXHRcdHZhciByZXQgPSByZXN1bHRzIHx8IFtdO1xuXG5cdFx0aWYgKCBhcnIgIT0gbnVsbCApIHtcblx0XHRcdGlmICggaXNBcnJheUxpa2UoIE9iamVjdCggYXJyICkgKSApIHtcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCByZXQsXG5cdFx0XHRcdFx0dHlwZW9mIGFyciA9PT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0XHRbIGFyciBdIDogYXJyXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmNhbGwoIHJldCwgYXJyICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHRpbkFycmF5OiBmdW5jdGlvbiggZWxlbSwgYXJyLCBpICkge1xuXHRcdHJldHVybiBhcnIgPT0gbnVsbCA/IC0xIDogaW5kZXhPZi5jYWxsKCBhcnIsIGVsZW0sIGkgKTtcblx0fSxcblxuXHRpc1hNTERvYzogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIG5hbWVzcGFjZSA9IGVsZW0gJiYgZWxlbS5uYW1lc3BhY2VVUkksXG5cdFx0XHRkb2NFbGVtID0gZWxlbSAmJiAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkuZG9jdW1lbnRFbGVtZW50O1xuXG5cdFx0Ly8gQXNzdW1lIEhUTUwgd2hlbiBkb2N1bWVudEVsZW1lbnQgZG9lc24ndCB5ZXQgZXhpc3QsIHN1Y2ggYXMgaW5zaWRlXG5cdFx0Ly8gZG9jdW1lbnQgZnJhZ21lbnRzLlxuXHRcdHJldHVybiAhcmh0bWxTdWZmaXgudGVzdCggbmFtZXNwYWNlIHx8IGRvY0VsZW0gJiYgZG9jRWxlbS5ub2RlTmFtZSB8fCBcIkhUTUxcIiApO1xuXHR9LFxuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seSwgUGhhbnRvbUpTIDEgb25seVxuXHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdG1lcmdlOiBmdW5jdGlvbiggZmlyc3QsIHNlY29uZCApIHtcblx0XHR2YXIgbGVuID0gK3NlY29uZC5sZW5ndGgsXG5cdFx0XHRqID0gMCxcblx0XHRcdGkgPSBmaXJzdC5sZW5ndGg7XG5cblx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdGZpcnN0WyBpKysgXSA9IHNlY29uZFsgaiBdO1xuXHRcdH1cblxuXHRcdGZpcnN0Lmxlbmd0aCA9IGk7XG5cblx0XHRyZXR1cm4gZmlyc3Q7XG5cdH0sXG5cblx0Z3JlcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgaW52ZXJ0ICkge1xuXHRcdHZhciBjYWxsYmFja0ludmVyc2UsXG5cdFx0XHRtYXRjaGVzID0gW10sXG5cdFx0XHRpID0gMCxcblx0XHRcdGxlbmd0aCA9IGVsZW1zLmxlbmd0aCxcblx0XHRcdGNhbGxiYWNrRXhwZWN0ID0gIWludmVydDtcblxuXHRcdC8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXNcblx0XHQvLyB0aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvblxuXHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0Y2FsbGJhY2tJbnZlcnNlID0gIWNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpICk7XG5cdFx0XHRpZiAoIGNhbGxiYWNrSW52ZXJzZSAhPT0gY2FsbGJhY2tFeHBlY3QgKSB7XG5cdFx0XHRcdG1hdGNoZXMucHVzaCggZWxlbXNbIGkgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBtYXRjaGVzO1xuXHR9LFxuXG5cdC8vIGFyZyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seVxuXHRtYXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2ssIGFyZyApIHtcblx0XHR2YXIgbGVuZ3RoLCB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0cmV0ID0gW107XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgdHJhbnNsYXRpbmcgZWFjaCBvZiB0aGUgaXRlbXMgdG8gdGhlaXIgbmV3IHZhbHVlc1xuXHRcdGlmICggaXNBcnJheUxpa2UoIGVsZW1zICkgKSB7XG5cdFx0XHRsZW5ndGggPSBlbGVtcy5sZW5ndGg7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjayggZWxlbXNbIGkgXSwgaSwgYXJnICk7XG5cblx0XHRcdFx0aWYgKCB2YWx1ZSAhPSBudWxsICkge1xuXHRcdFx0XHRcdHJldC5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBHbyB0aHJvdWdoIGV2ZXJ5IGtleSBvbiB0aGUgb2JqZWN0LFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKCBpIGluIGVsZW1zICkge1xuXHRcdFx0XHR2YWx1ZSA9IGNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpLCBhcmcgKTtcblxuXHRcdFx0XHRpZiAoIHZhbHVlICE9IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0LnB1c2goIHZhbHVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGbGF0dGVuIGFueSBuZXN0ZWQgYXJyYXlzXG5cdFx0cmV0dXJuIGZsYXQoIHJldCApO1xuXHR9LFxuXG5cdC8vIEEgZ2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0c1xuXHRndWlkOiAxLFxuXG5cdC8vIGpRdWVyeS5zdXBwb3J0IGlzIG5vdCB1c2VkIGluIENvcmUgYnV0IG90aGVyIHByb2plY3RzIGF0dGFjaCB0aGVpclxuXHQvLyBwcm9wZXJ0aWVzIHRvIGl0IHNvIGl0IG5lZWRzIHRvIGV4aXN0LlxuXHRzdXBwb3J0OiBzdXBwb3J0XG59ICk7XG5cbmlmICggdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICkge1xuXHRqUXVlcnkuZm5bIFN5bWJvbC5pdGVyYXRvciBdID0gYXJyWyBTeW1ib2wuaXRlcmF0b3IgXTtcbn1cblxuLy8gUG9wdWxhdGUgdGhlIGNsYXNzMnR5cGUgbWFwXG5qUXVlcnkuZWFjaCggXCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbFwiLnNwbGl0KCBcIiBcIiApLFxuXHRmdW5jdGlvbiggX2ksIG5hbWUgKSB7XG5cdFx0Y2xhc3MydHlwZVsgXCJbb2JqZWN0IFwiICsgbmFtZSArIFwiXVwiIF0gPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cdH0gKTtcblxuZnVuY3Rpb24gaXNBcnJheUxpa2UoIG9iaiApIHtcblxuXHQvLyBTdXBwb3J0OiByZWFsIGlPUyA4LjIgb25seSAobm90IHJlcHJvZHVjaWJsZSBpbiBzaW11bGF0b3IpXG5cdC8vIGBpbmAgY2hlY2sgdXNlZCB0byBwcmV2ZW50IEpJVCBlcnJvciAoZ2gtMjE0NSlcblx0Ly8gaGFzT3duIGlzbid0IHVzZWQgaGVyZSBkdWUgdG8gZmFsc2UgbmVnYXRpdmVzXG5cdC8vIHJlZ2FyZGluZyBOb2RlbGlzdCBsZW5ndGggaW4gSUVcblx0dmFyIGxlbmd0aCA9ICEhb2JqICYmIFwibGVuZ3RoXCIgaW4gb2JqICYmIG9iai5sZW5ndGgsXG5cdFx0dHlwZSA9IHRvVHlwZSggb2JqICk7XG5cblx0aWYgKCBpc0Z1bmN0aW9uKCBvYmogKSB8fCBpc1dpbmRvdyggb2JqICkgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cmV0dXJuIHR5cGUgPT09IFwiYXJyYXlcIiB8fCBsZW5ndGggPT09IDAgfHxcblx0XHR0eXBlb2YgbGVuZ3RoID09PSBcIm51bWJlclwiICYmIGxlbmd0aCA+IDAgJiYgKCBsZW5ndGggLSAxICkgaW4gb2JqO1xufVxuXG5cbmZ1bmN0aW9uIG5vZGVOYW1lKCBlbGVtLCBuYW1lICkge1xuXG5cdHJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG59XG52YXIgcG9wID0gYXJyLnBvcDtcblxuXG52YXIgc29ydCA9IGFyci5zb3J0O1xuXG5cbnZhciBzcGxpY2UgPSBhcnIuc3BsaWNlO1xuXG5cbnZhciB3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiO1xuXG5cbnZhciBydHJpbUNTUyA9IG5ldyBSZWdFeHAoXG5cdFwiXlwiICsgd2hpdGVzcGFjZSArIFwiK3woKD86XnxbXlxcXFxcXFxcXSkoPzpcXFxcXFxcXC4pKilcIiArIHdoaXRlc3BhY2UgKyBcIiskXCIsXG5cdFwiZ1wiXG4pO1xuXG5cblxuXG4vLyBOb3RlOiBhbiBlbGVtZW50IGRvZXMgbm90IGNvbnRhaW4gaXRzZWxmXG5qUXVlcnkuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHtcblx0dmFyIGJ1cCA9IGIgJiYgYi5wYXJlbnROb2RlO1xuXG5cdHJldHVybiBhID09PSBidXAgfHwgISEoIGJ1cCAmJiBidXAubm9kZVR5cGUgPT09IDEgJiYgKFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExK1xuXHRcdC8vIElFIGRvZXNuJ3QgaGF2ZSBgY29udGFpbnNgIG9uIFNWRy5cblx0XHRhLmNvbnRhaW5zID9cblx0XHRcdGEuY29udGFpbnMoIGJ1cCApIDpcblx0XHRcdGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gJiYgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYnVwICkgJiAxNlxuXHQpICk7XG59O1xuXG5cblxuXG4vLyBDU1Mgc3RyaW5nL2lkZW50aWZpZXIgc2VyaWFsaXphdGlvblxuLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjb21tb24tc2VyaWFsaXppbmctaWRpb21zXG52YXIgcmNzc2VzY2FwZSA9IC8oW1xcMC1cXHgxZlxceDdmXXxeLT9cXGQpfF4tJHxbXlxceDgwLVxcdUZGRkZcXHctXS9nO1xuXG5mdW5jdGlvbiBmY3NzZXNjYXBlKCBjaCwgYXNDb2RlUG9pbnQgKSB7XG5cdGlmICggYXNDb2RlUG9pbnQgKSB7XG5cblx0XHQvLyBVKzAwMDAgTlVMTCBiZWNvbWVzIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVJcblx0XHRpZiAoIGNoID09PSBcIlxcMFwiICkge1xuXHRcdFx0cmV0dXJuIFwiXFx1RkZGRFwiO1xuXHRcdH1cblxuXHRcdC8vIENvbnRyb2wgY2hhcmFjdGVycyBhbmQgKGRlcGVuZGVudCB1cG9uIHBvc2l0aW9uKSBudW1iZXJzIGdldCBlc2NhcGVkIGFzIGNvZGUgcG9pbnRzXG5cdFx0cmV0dXJuIGNoLnNsaWNlKCAwLCAtMSApICsgXCJcXFxcXCIgKyBjaC5jaGFyQ29kZUF0KCBjaC5sZW5ndGggLSAxICkudG9TdHJpbmcoIDE2ICkgKyBcIiBcIjtcblx0fVxuXG5cdC8vIE90aGVyIHBvdGVudGlhbGx5LXNwZWNpYWwgQVNDSUkgY2hhcmFjdGVycyBnZXQgYmFja3NsYXNoLWVzY2FwZWRcblx0cmV0dXJuIFwiXFxcXFwiICsgY2g7XG59XG5cbmpRdWVyeS5lc2NhcGVTZWxlY3RvciA9IGZ1bmN0aW9uKCBzZWwgKSB7XG5cdHJldHVybiAoIHNlbCArIFwiXCIgKS5yZXBsYWNlKCByY3NzZXNjYXBlLCBmY3NzZXNjYXBlICk7XG59O1xuXG5cblxuXG52YXIgcHJlZmVycmVkRG9jID0gZG9jdW1lbnQsXG5cdHB1c2hOYXRpdmUgPSBwdXNoO1xuXG4oIGZ1bmN0aW9uKCkge1xuXG52YXIgaSxcblx0RXhwcixcblx0b3V0ZXJtb3N0Q29udGV4dCxcblx0c29ydElucHV0LFxuXHRoYXNEdXBsaWNhdGUsXG5cdHB1c2ggPSBwdXNoTmF0aXZlLFxuXG5cdC8vIExvY2FsIGRvY3VtZW50IHZhcnNcblx0ZG9jdW1lbnQsXG5cdGRvY3VtZW50RWxlbWVudCxcblx0ZG9jdW1lbnRJc0hUTUwsXG5cdHJidWdneVFTQSxcblx0bWF0Y2hlcyxcblxuXHQvLyBJbnN0YW5jZS1zcGVjaWZpYyBkYXRhXG5cdGV4cGFuZG8gPSBqUXVlcnkuZXhwYW5kbyxcblx0ZGlycnVucyA9IDAsXG5cdGRvbmUgPSAwLFxuXHRjbGFzc0NhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0dG9rZW5DYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdGNvbXBpbGVyQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRub25uYXRpdmVTZWxlY3RvckNhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0c29ydE9yZGVyID0gZnVuY3Rpb24oIGEsIGIgKSB7XG5cdFx0aWYgKCBhID09PSBiICkge1xuXHRcdFx0aGFzRHVwbGljYXRlID0gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIDA7XG5cdH0sXG5cblx0Ym9vbGVhbnMgPSBcImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxcIiArXG5cdFx0XCJsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkXCIsXG5cblx0Ly8gUmVndWxhciBleHByZXNzaW9uc1xuXG5cdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTMvI2lkZW50LXRva2VuLWRpYWdyYW1cblx0aWRlbnRpZmllciA9IFwiKD86XFxcXFxcXFxbXFxcXGRhLWZBLUZdezEsNn1cIiArIHdoaXRlc3BhY2UgK1xuXHRcdFwiP3xcXFxcXFxcXFteXFxcXHJcXFxcblxcXFxmXXxbXFxcXHctXXxbXlxcMC1cXFxceDdmXSkrXCIsXG5cblx0Ly8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cHM6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jYXR0cmlidXRlLXNlbGVjdG9yc1xuXHRhdHRyaWJ1dGVzID0gXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKihcIiArIGlkZW50aWZpZXIgKyBcIikoPzpcIiArIHdoaXRlc3BhY2UgK1xuXG5cdFx0Ly8gT3BlcmF0b3IgKGNhcHR1cmUgMilcblx0XHRcIiooWypeJHwhfl0/PSlcIiArIHdoaXRlc3BhY2UgK1xuXG5cdFx0Ly8gXCJBdHRyaWJ1dGUgdmFsdWVzIG11c3QgYmUgQ1NTIGlkZW50aWZpZXJzIFtjYXB0dXJlIDVdIG9yIHN0cmluZ3MgW2NhcHR1cmUgMyBvciBjYXB0dXJlIDRdXCJcblx0XHRcIiooPzonKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcJ10pKiknfFxcXCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFxcXFwiXSkqKVxcXCJ8KFwiICsgaWRlbnRpZmllciArIFwiKSl8KVwiICtcblx0XHR3aGl0ZXNwYWNlICsgXCIqXFxcXF1cIixcblxuXHRwc2V1ZG9zID0gXCI6KFwiICsgaWRlbnRpZmllciArIFwiKSg/OlxcXFwoKFwiICtcblxuXHRcdC8vIFRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHNlbGVjdG9ycyBuZWVkaW5nIHRva2VuaXplIGluIHRoZSBwcmVGaWx0ZXIsIHByZWZlciBhcmd1bWVudHM6XG5cdFx0Ly8gMS4gcXVvdGVkIChjYXB0dXJlIDM7IGNhcHR1cmUgNCBvciBjYXB0dXJlIDUpXG5cdFx0XCIoJygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwiKXxcIiArXG5cblx0XHQvLyAyLiBzaW1wbGUgKGNhcHR1cmUgNilcblx0XHRcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXCgpW1xcXFxdXXxcIiArIGF0dHJpYnV0ZXMgKyBcIikqKXxcIiArXG5cblx0XHQvLyAzLiBhbnl0aGluZyBlbHNlIChjYXB0dXJlIDIpXG5cdFx0XCIuKlwiICtcblx0XHRcIilcXFxcKXwpXCIsXG5cblx0Ly8gTGVhZGluZyBhbmQgbm9uLWVzY2FwZWQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgY2FwdHVyaW5nIHNvbWUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIGxhdHRlclxuXHRyd2hpdGVzcGFjZSA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcIitcIiwgXCJnXCIgKSxcblxuXHRyY29tbWEgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiosXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblx0cmxlYWRpbmdDb21iaW5hdG9yID0gbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFs+K35dfFwiICsgd2hpdGVzcGFjZSArIFwiKVwiICtcblx0XHR3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblx0cmRlc2NlbmQgPSBuZXcgUmVnRXhwKCB3aGl0ZXNwYWNlICsgXCJ8PlwiICksXG5cblx0cnBzZXVkbyA9IG5ldyBSZWdFeHAoIHBzZXVkb3MgKSxcblx0cmlkZW50aWZpZXIgPSBuZXcgUmVnRXhwKCBcIl5cIiArIGlkZW50aWZpZXIgKyBcIiRcIiApLFxuXG5cdG1hdGNoRXhwciA9IHtcblx0XHRJRDogbmV3IFJlZ0V4cCggXCJeIyhcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdENMQVNTOiBuZXcgUmVnRXhwKCBcIl5cXFxcLihcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdFRBRzogbmV3IFJlZ0V4cCggXCJeKFwiICsgaWRlbnRpZmllciArIFwifFsqXSlcIiApLFxuXHRcdEFUVFI6IG5ldyBSZWdFeHAoIFwiXlwiICsgYXR0cmlidXRlcyApLFxuXHRcdFBTRVVETzogbmV3IFJlZ0V4cCggXCJeXCIgKyBwc2V1ZG9zICksXG5cdFx0Q0hJTEQ6IG5ldyBSZWdFeHAoXG5cdFx0XHRcIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcXFwoXCIgK1xuXHRcdFx0XHR3aGl0ZXNwYWNlICsgXCIqKGV2ZW58b2RkfCgoWystXXwpKFxcXFxkKilufClcIiArIHdoaXRlc3BhY2UgKyBcIiooPzooWystXXwpXCIgK1xuXHRcdFx0XHR3aGl0ZXNwYWNlICsgXCIqKFxcXFxkKyl8KSlcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpXCIsIFwiaVwiICksXG5cdFx0Ym9vbDogbmV3IFJlZ0V4cCggXCJeKD86XCIgKyBib29sZWFucyArIFwiKSRcIiwgXCJpXCIgKSxcblxuXHRcdC8vIEZvciB1c2UgaW4gbGlicmFyaWVzIGltcGxlbWVudGluZyAuaXMoKVxuXHRcdC8vIFdlIHVzZSB0aGlzIGZvciBQT1MgbWF0Y2hpbmcgaW4gYHNlbGVjdGBcblx0XHRuZWVkc0NvbnRleHQ6IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcXFwoXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKigoPzotXFxcXGQpP1xcXFxkKilcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpKD89W14tXXwkKVwiLCBcImlcIiApXG5cdH0sXG5cblx0cmlucHV0cyA9IC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksXG5cdHJoZWFkZXIgPSAvXmhcXGQkL2ksXG5cblx0Ly8gRWFzaWx5LXBhcnNlYWJsZS9yZXRyaWV2YWJsZSBJRCBvciBUQUcgb3IgQ0xBU1Mgc2VsZWN0b3JzXG5cdHJxdWlja0V4cHIgPSAvXig/OiMoW1xcdy1dKyl8KFxcdyspfFxcLihbXFx3LV0rKSkkLyxcblxuXHRyc2libGluZyA9IC9bK35dLyxcblxuXHQvLyBDU1MgZXNjYXBlc1xuXHQvLyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI2VzY2FwZWQtY2hhcmFjdGVyc1xuXHRydW5lc2NhcGUgPSBuZXcgUmVnRXhwKCBcIlxcXFxcXFxcW1xcXFxkYS1mQS1GXXsxLDZ9XCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIj98XFxcXFxcXFwoW15cXFxcclxcXFxuXFxcXGZdKVwiLCBcImdcIiApLFxuXHRmdW5lc2NhcGUgPSBmdW5jdGlvbiggZXNjYXBlLCBub25IZXggKSB7XG5cdFx0dmFyIGhpZ2ggPSBcIjB4XCIgKyBlc2NhcGUuc2xpY2UoIDEgKSAtIDB4MTAwMDA7XG5cblx0XHRpZiAoIG5vbkhleCApIHtcblxuXHRcdFx0Ly8gU3RyaXAgdGhlIGJhY2tzbGFzaCBwcmVmaXggZnJvbSBhIG5vbi1oZXggZXNjYXBlIHNlcXVlbmNlXG5cdFx0XHRyZXR1cm4gbm9uSGV4O1xuXHRcdH1cblxuXHRcdC8vIFJlcGxhY2UgYSBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ugd2l0aCB0aGUgZW5jb2RlZCBVbmljb2RlIGNvZGUgcG9pbnRcblx0XHQvLyBTdXBwb3J0OiBJRSA8PTExK1xuXHRcdC8vIEZvciB2YWx1ZXMgb3V0c2lkZSB0aGUgQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lIChCTVApLCBtYW51YWxseSBjb25zdHJ1Y3QgYVxuXHRcdC8vIHN1cnJvZ2F0ZSBwYWlyXG5cdFx0cmV0dXJuIGhpZ2ggPCAwID9cblx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggKyAweDEwMDAwICkgOlxuXHRcdFx0U3RyaW5nLmZyb21DaGFyQ29kZSggaGlnaCA+PiAxMCB8IDB4RDgwMCwgaGlnaCAmIDB4M0ZGIHwgMHhEQzAwICk7XG5cdH0sXG5cblx0Ly8gVXNlZCBmb3IgaWZyYW1lczsgc2VlIGBzZXREb2N1bWVudGAuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSssIEVkZ2UgMTIgLSAxOCtcblx0Ly8gUmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIHdyYXBwZXIgY2F1c2VzIGEgXCJQZXJtaXNzaW9uIERlbmllZFwiXG5cdC8vIGVycm9yIGluIElFL0VkZ2UuXG5cdHVubG9hZEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcblx0XHRzZXREb2N1bWVudCgpO1xuXHR9LFxuXG5cdGluRGlzYWJsZWRGaWVsZHNldCA9IGFkZENvbWJpbmF0b3IoXG5cdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gdHJ1ZSAmJiBub2RlTmFtZSggZWxlbSwgXCJmaWVsZHNldFwiICk7XG5cdFx0fSxcblx0XHR7IGRpcjogXCJwYXJlbnROb2RlXCIsIG5leHQ6IFwibGVnZW5kXCIgfVxuXHQpO1xuXG4vLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuLy8gQWNjZXNzaW5nIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgY2FuIHRocm93IHVuZXhwZWN0ZWRseVxuLy8gaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEzMzkzXG5mdW5jdGlvbiBzYWZlQWN0aXZlRWxlbWVudCgpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0fSBjYXRjaCAoIGVyciApIHsgfVxufVxuXG4vLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKVxudHJ5IHtcblx0cHVzaC5hcHBseShcblx0XHQoIGFyciA9IHNsaWNlLmNhbGwoIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzICkgKSxcblx0XHRwcmVmZXJyZWREb2MuY2hpbGROb2Rlc1xuXHQpO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdGFyclsgcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMubGVuZ3RoIF0ubm9kZVR5cGU7XG59IGNhdGNoICggZSApIHtcblx0cHVzaCA9IHtcblx0XHRhcHBseTogZnVuY3Rpb24oIHRhcmdldCwgZWxzICkge1xuXHRcdFx0cHVzaE5hdGl2ZS5hcHBseSggdGFyZ2V0LCBzbGljZS5jYWxsKCBlbHMgKSApO1xuXHRcdH0sXG5cdFx0Y2FsbDogZnVuY3Rpb24oIHRhcmdldCApIHtcblx0XHRcdHB1c2hOYXRpdmUuYXBwbHkoIHRhcmdldCwgc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICkgKTtcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIGZpbmQoIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkge1xuXHR2YXIgbSwgaSwgZWxlbSwgbmlkLCBtYXRjaCwgZ3JvdXBzLCBuZXdTZWxlY3Rvcixcblx0XHRuZXdDb250ZXh0ID0gY29udGV4dCAmJiBjb250ZXh0Lm93bmVyRG9jdW1lbnQsXG5cblx0XHQvLyBub2RlVHlwZSBkZWZhdWx0cyB0byA5LCBzaW5jZSBjb250ZXh0IGRlZmF1bHRzIHRvIGRvY3VtZW50XG5cdFx0bm9kZVR5cGUgPSBjb250ZXh0ID8gY29udGV4dC5ub2RlVHlwZSA6IDk7XG5cblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cblx0Ly8gUmV0dXJuIGVhcmx5IGZyb20gY2FsbHMgd2l0aCBpbnZhbGlkIHNlbGVjdG9yIG9yIGNvbnRleHRcblx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgIT09IFwic3RyaW5nXCIgfHwgIXNlbGVjdG9yIHx8XG5cdFx0bm9kZVR5cGUgIT09IDEgJiYgbm9kZVR5cGUgIT09IDkgJiYgbm9kZVR5cGUgIT09IDExICkge1xuXG5cdFx0cmV0dXJuIHJlc3VsdHM7XG5cdH1cblxuXHQvLyBUcnkgdG8gc2hvcnRjdXQgZmluZCBvcGVyYXRpb25zIChhcyBvcHBvc2VkIHRvIGZpbHRlcnMpIGluIEhUTUwgZG9jdW1lbnRzXG5cdGlmICggIXNlZWQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGNvbnRleHQgKTtcblx0XHRjb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDtcblxuXHRcdGlmICggZG9jdW1lbnRJc0hUTUwgKSB7XG5cblx0XHRcdC8vIElmIHRoZSBzZWxlY3RvciBpcyBzdWZmaWNpZW50bHkgc2ltcGxlLCB0cnkgdXNpbmcgYSBcImdldCpCeSpcIiBET00gbWV0aG9kXG5cdFx0XHQvLyAoZXhjZXB0aW5nIERvY3VtZW50RnJhZ21lbnQgY29udGV4dCwgd2hlcmUgdGhlIG1ldGhvZHMgZG9uJ3QgZXhpc3QpXG5cdFx0XHRpZiAoIG5vZGVUeXBlICE9PSAxMSAmJiAoIG1hdGNoID0gcnF1aWNrRXhwci5leGVjKCBzZWxlY3RvciApICkgKSB7XG5cblx0XHRcdFx0Ly8gSUQgc2VsZWN0b3Jcblx0XHRcdFx0aWYgKCAoIG0gPSBtYXRjaFsgMSBdICkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb2N1bWVudCBjb250ZXh0XG5cdFx0XHRcdFx0aWYgKCBub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRcdGlmICggKCBlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggbSApICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgOSBvbmx5XG5cdFx0XHRcdFx0XHRcdC8vIGdldEVsZW1lbnRCeUlkIGNhbiBtYXRjaCBlbGVtZW50cyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdFx0aWYgKCBlbGVtLmlkID09PSBtICkge1xuXHRcdFx0XHRcdFx0XHRcdHB1c2guY2FsbCggcmVzdWx0cywgZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEVsZW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDkgb25seVxuXHRcdFx0XHRcdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgY2FuIG1hdGNoIGVsZW1lbnRzIGJ5IG5hbWUgaW5zdGVhZCBvZiBJRFxuXHRcdFx0XHRcdFx0aWYgKCBuZXdDb250ZXh0ICYmICggZWxlbSA9IG5ld0NvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG0gKSApICYmXG5cdFx0XHRcdFx0XHRcdGZpbmQuY29udGFpbnMoIGNvbnRleHQsIGVsZW0gKSAmJlxuXHRcdFx0XHRcdFx0XHRlbGVtLmlkID09PSBtICkge1xuXG5cdFx0XHRcdFx0XHRcdHB1c2guY2FsbCggcmVzdWx0cywgZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVHlwZSBzZWxlY3RvclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFsgMiBdICkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHNlbGVjdG9yICkgKTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblxuXHRcdFx0XHQvLyBDbGFzcyBzZWxlY3RvclxuXHRcdFx0XHR9IGVsc2UgaWYgKCAoIG0gPSBtYXRjaFsgMyBdICkgJiYgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbSApICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVGFrZSBhZHZhbnRhZ2Ugb2YgcXVlcnlTZWxlY3RvckFsbFxuXHRcdFx0aWYgKCAhbm9ubmF0aXZlU2VsZWN0b3JDYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdICYmXG5cdFx0XHRcdCggIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIHNlbGVjdG9yICkgKSApIHtcblxuXHRcdFx0XHRuZXdTZWxlY3RvciA9IHNlbGVjdG9yO1xuXHRcdFx0XHRuZXdDb250ZXh0ID0gY29udGV4dDtcblxuXHRcdFx0XHQvLyBxU0EgY29uc2lkZXJzIGVsZW1lbnRzIG91dHNpZGUgYSBzY29waW5nIHJvb3Qgd2hlbiBldmFsdWF0aW5nIGNoaWxkIG9yXG5cdFx0XHRcdC8vIGRlc2NlbmRhbnQgY29tYmluYXRvcnMsIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQuXG5cdFx0XHRcdC8vIEluIHN1Y2ggY2FzZXMsIHdlIHdvcmsgYXJvdW5kIHRoZSBiZWhhdmlvciBieSBwcmVmaXhpbmcgZXZlcnkgc2VsZWN0b3IgaW4gdGhlXG5cdFx0XHRcdC8vIGxpc3Qgd2l0aCBhbiBJRCBzZWxlY3RvciByZWZlcmVuY2luZyB0aGUgc2NvcGUgY29udGV4dC5cblx0XHRcdFx0Ly8gVGhlIHRlY2huaXF1ZSBoYXMgdG8gYmUgdXNlZCBhcyB3ZWxsIHdoZW4gYSBsZWFkaW5nIGNvbWJpbmF0b3IgaXMgdXNlZFxuXHRcdFx0XHQvLyBhcyBzdWNoIHNlbGVjdG9ycyBhcmUgbm90IHJlY29nbml6ZWQgYnkgcXVlcnlTZWxlY3RvckFsbC5cblx0XHRcdFx0Ly8gVGhhbmtzIHRvIEFuZHJldyBEdXBvbnQgZm9yIHRoaXMgdGVjaG5pcXVlLlxuXHRcdFx0XHRpZiAoIG5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdFx0KCByZGVzY2VuZC50ZXN0KCBzZWxlY3RvciApIHx8IHJsZWFkaW5nQ29tYmluYXRvci50ZXN0KCBzZWxlY3RvciApICkgKSB7XG5cblx0XHRcdFx0XHQvLyBFeHBhbmQgY29udGV4dCBmb3Igc2libGluZyBzZWxlY3RvcnNcblx0XHRcdFx0XHRuZXdDb250ZXh0ID0gcnNpYmxpbmcudGVzdCggc2VsZWN0b3IgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHxcblx0XHRcdFx0XHRcdGNvbnRleHQ7XG5cblx0XHRcdFx0XHQvLyBXZSBjYW4gdXNlIDpzY29wZSBpbnN0ZWFkIG9mIHRoZSBJRCBoYWNrIGlmIHRoZSBicm93c2VyXG5cdFx0XHRcdFx0Ly8gc3VwcG9ydHMgaXQgJiBpZiB3ZSdyZSBub3QgY2hhbmdpbmcgdGhlIGNvbnRleHQuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlblxuXHRcdFx0XHRcdC8vIHN0cmljdC1jb21wYXJpbmcgdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRcdFx0XHRpZiAoIG5ld0NvbnRleHQgIT0gY29udGV4dCB8fCAhc3VwcG9ydC5zY29wZSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gQ2FwdHVyZSB0aGUgY29udGV4dCBJRCwgc2V0dGluZyBpdCBmaXJzdCBpZiBuZWNlc3Nhcnlcblx0XHRcdFx0XHRcdGlmICggKCBuaWQgPSBjb250ZXh0LmdldEF0dHJpYnV0ZSggXCJpZFwiICkgKSApIHtcblx0XHRcdFx0XHRcdFx0bmlkID0galF1ZXJ5LmVzY2FwZVNlbGVjdG9yKCBuaWQgKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRleHQuc2V0QXR0cmlidXRlKCBcImlkXCIsICggbmlkID0gZXhwYW5kbyApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gUHJlZml4IGV2ZXJ5IHNlbGVjdG9yIGluIHRoZSBsaXN0XG5cdFx0XHRcdFx0Z3JvdXBzID0gdG9rZW5pemUoIHNlbGVjdG9yICk7XG5cdFx0XHRcdFx0aSA9IGdyb3Vwcy5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRncm91cHNbIGkgXSA9ICggbmlkID8gXCIjXCIgKyBuaWQgOiBcIjpzY29wZVwiICkgKyBcIiBcIiArXG5cdFx0XHRcdFx0XHRcdHRvU2VsZWN0b3IoIGdyb3Vwc1sgaSBdICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdG5ld1NlbGVjdG9yID0gZ3JvdXBzLmpvaW4oIFwiLFwiICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsXG5cdFx0XHRcdFx0XHRuZXdDb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIG5ld1NlbGVjdG9yIClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHR9IGNhdGNoICggcXNhRXJyb3IgKSB7XG5cdFx0XHRcdFx0bm9ubmF0aXZlU2VsZWN0b3JDYWNoZSggc2VsZWN0b3IsIHRydWUgKTtcblx0XHRcdFx0fSBmaW5hbGx5IHtcblx0XHRcdFx0XHRpZiAoIG5pZCA9PT0gZXhwYW5kbyApIHtcblx0XHRcdFx0XHRcdGNvbnRleHQucmVtb3ZlQXR0cmlidXRlKCBcImlkXCIgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBBbGwgb3RoZXJzXG5cdHJldHVybiBzZWxlY3QoIHNlbGVjdG9yLnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiQxXCIgKSwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApO1xufVxuXG4vKipcbiAqIENyZWF0ZSBrZXktdmFsdWUgY2FjaGVzIG9mIGxpbWl0ZWQgc2l6ZVxuICogQHJldHVybnMge2Z1bmN0aW9uKHN0cmluZywgb2JqZWN0KX0gUmV0dXJucyB0aGUgT2JqZWN0IGRhdGEgYWZ0ZXIgc3RvcmluZyBpdCBvbiBpdHNlbGYgd2l0aFxuICpcdHByb3BlcnR5IG5hbWUgdGhlIChzcGFjZS1zdWZmaXhlZCkgc3RyaW5nIGFuZCAoaWYgdGhlIGNhY2hlIGlzIGxhcmdlciB0aGFuIEV4cHIuY2FjaGVMZW5ndGgpXG4gKlx0ZGVsZXRpbmcgdGhlIG9sZGVzdCBlbnRyeVxuICovXG5mdW5jdGlvbiBjcmVhdGVDYWNoZSgpIHtcblx0dmFyIGtleXMgPSBbXTtcblxuXHRmdW5jdGlvbiBjYWNoZSgga2V5LCB2YWx1ZSApIHtcblxuXHRcdC8vIFVzZSAoa2V5ICsgXCIgXCIpIHRvIGF2b2lkIGNvbGxpc2lvbiB3aXRoIG5hdGl2ZSBwcm90b3R5cGUgcHJvcGVydGllc1xuXHRcdC8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9zaXp6bGUvaXNzdWVzLzE1Nylcblx0XHRpZiAoIGtleXMucHVzaCgga2V5ICsgXCIgXCIgKSA+IEV4cHIuY2FjaGVMZW5ndGggKSB7XG5cblx0XHRcdC8vIE9ubHkga2VlcCB0aGUgbW9zdCByZWNlbnQgZW50cmllc1xuXHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlzLnNoaWZ0KCkgXTtcblx0XHR9XG5cdFx0cmV0dXJuICggY2FjaGVbIGtleSArIFwiIFwiIF0gPSB2YWx1ZSApO1xuXHR9XG5cdHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBNYXJrIGEgZnVuY3Rpb24gZm9yIHNwZWNpYWwgdXNlIGJ5IGpRdWVyeSBzZWxlY3RvciBtb2R1bGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBtYXJrXG4gKi9cbmZ1bmN0aW9uIG1hcmtGdW5jdGlvbiggZm4gKSB7XG5cdGZuWyBleHBhbmRvIF0gPSB0cnVlO1xuXHRyZXR1cm4gZm47XG59XG5cbi8qKlxuICogU3VwcG9ydCB0ZXN0aW5nIHVzaW5nIGFuIGVsZW1lbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFBhc3NlZCB0aGUgY3JlYXRlZCBlbGVtZW50IGFuZCByZXR1cm5zIGEgYm9vbGVhbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0KCBmbiApIHtcblx0dmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJmaWVsZHNldFwiICk7XG5cblx0dHJ5IHtcblx0XHRyZXR1cm4gISFmbiggZWwgKTtcblx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9IGZpbmFsbHkge1xuXG5cdFx0Ly8gUmVtb3ZlIGZyb20gaXRzIHBhcmVudCBieSBkZWZhdWx0XG5cdFx0aWYgKCBlbC5wYXJlbnROb2RlICkge1xuXHRcdFx0ZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggZWwgKTtcblx0XHR9XG5cblx0XHQvLyByZWxlYXNlIG1lbW9yeSBpbiBJRVxuXHRcdGVsID0gbnVsbDtcblx0fVxufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgaW5wdXQgdHlwZXNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUlucHV0UHNldWRvKCB0eXBlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIG5vZGVOYW1lKCBlbGVtLCBcImlucHV0XCIgKSAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBidXR0b25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICovXG5mdW5jdGlvbiBjcmVhdGVCdXR0b25Qc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gKCBub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgfHwgbm9kZU5hbWUoIGVsZW0sIFwiYnV0dG9uXCIgKSApICYmXG5cdFx0XHRlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciA6ZW5hYmxlZC86ZGlzYWJsZWRcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gZGlzYWJsZWQgdHJ1ZSBmb3IgOmRpc2FibGVkOyBmYWxzZSBmb3IgOmVuYWJsZWRcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRGlzYWJsZWRQc2V1ZG8oIGRpc2FibGVkICkge1xuXG5cdC8vIEtub3duIDpkaXNhYmxlZCBmYWxzZSBwb3NpdGl2ZXM6IGZpZWxkc2V0W2Rpc2FibGVkXSA+IGxlZ2VuZDpudGgtb2YtdHlwZShuKzIpIDpjYW4tZGlzYWJsZVxuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBPbmx5IGNlcnRhaW4gZWxlbWVudHMgY2FuIG1hdGNoIDplbmFibGVkIG9yIDpkaXNhYmxlZFxuXHRcdC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI3NlbGVjdG9yLWVuYWJsZWRcblx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNzZWxlY3Rvci1kaXNhYmxlZFxuXHRcdGlmICggXCJmb3JtXCIgaW4gZWxlbSApIHtcblxuXHRcdFx0Ly8gQ2hlY2sgZm9yIGluaGVyaXRlZCBkaXNhYmxlZG5lc3Mgb24gcmVsZXZhbnQgbm9uLWRpc2FibGVkIGVsZW1lbnRzOlxuXHRcdFx0Ly8gKiBsaXN0ZWQgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzIGluIGEgZGlzYWJsZWQgZmllbGRzZXRcblx0XHRcdC8vICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNjYXRlZ29yeS1saXN0ZWRcblx0XHRcdC8vICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNjb25jZXB0LWZlLWRpc2FibGVkXG5cdFx0XHQvLyAqIG9wdGlvbiBlbGVtZW50cyBpbiBhIGRpc2FibGVkIG9wdGdyb3VwXG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY29uY2VwdC1vcHRpb24tZGlzYWJsZWRcblx0XHRcdC8vIEFsbCBzdWNoIGVsZW1lbnRzIGhhdmUgYSBcImZvcm1cIiBwcm9wZXJ0eS5cblx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICYmIGVsZW0uZGlzYWJsZWQgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdC8vIE9wdGlvbiBlbGVtZW50cyBkZWZlciB0byBhIHBhcmVudCBvcHRncm91cCBpZiBwcmVzZW50XG5cdFx0XHRcdGlmICggXCJsYWJlbFwiIGluIGVsZW0gKSB7XG5cdFx0XHRcdFx0aWYgKCBcImxhYmVsXCIgaW4gZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW0ucGFyZW50Tm9kZS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA2IC0gMTErXG5cdFx0XHRcdC8vIFVzZSB0aGUgaXNEaXNhYmxlZCBzaG9ydGN1dCBwcm9wZXJ0eSB0byBjaGVjayBmb3IgZGlzYWJsZWQgZmllbGRzZXQgYW5jZXN0b3JzXG5cdFx0XHRcdHJldHVybiBlbGVtLmlzRGlzYWJsZWQgPT09IGRpc2FibGVkIHx8XG5cblx0XHRcdFx0XHQvLyBXaGVyZSB0aGVyZSBpcyBubyBpc0Rpc2FibGVkLCBjaGVjayBtYW51YWxseVxuXHRcdFx0XHRcdGVsZW0uaXNEaXNhYmxlZCAhPT0gIWRpc2FibGVkICYmXG5cdFx0XHRcdFx0XHRpbkRpc2FibGVkRmllbGRzZXQoIGVsZW0gKSA9PT0gZGlzYWJsZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblxuXHRcdC8vIFRyeSB0byB3aW5ub3cgb3V0IGVsZW1lbnRzIHRoYXQgY2FuJ3QgYmUgZGlzYWJsZWQgYmVmb3JlIHRydXN0aW5nIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eS5cblx0XHQvLyBTb21lIHZpY3RpbXMgZ2V0IGNhdWdodCBpbiBvdXIgbmV0IChsYWJlbCwgbGVnZW5kLCBtZW51LCB0cmFjayksIGJ1dCBpdCBzaG91bGRuJ3Rcblx0XHQvLyBldmVuIGV4aXN0IG9uIHRoZW0sIGxldCBhbG9uZSBoYXZlIGEgYm9vbGVhbiB2YWx1ZS5cblx0XHR9IGVsc2UgaWYgKCBcImxhYmVsXCIgaW4gZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblx0XHR9XG5cblx0XHQvLyBSZW1haW5pbmcgZWxlbWVudHMgYXJlIG5laXRoZXIgOmVuYWJsZWQgbm9yIDpkaXNhYmxlZFxuXHRcdHJldHVybiBmYWxzZTtcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gdXNlIGluIHBzZXVkb3MgZm9yIHBvc2l0aW9uYWxzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICovXG5mdW5jdGlvbiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmbiApIHtcblx0cmV0dXJuIG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIGFyZ3VtZW50ICkge1xuXHRcdGFyZ3VtZW50ID0gK2FyZ3VtZW50O1xuXHRcdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCBtYXRjaGVzICkge1xuXHRcdFx0dmFyIGosXG5cdFx0XHRcdG1hdGNoSW5kZXhlcyA9IGZuKCBbXSwgc2VlZC5sZW5ndGgsIGFyZ3VtZW50ICksXG5cdFx0XHRcdGkgPSBtYXRjaEluZGV4ZXMubGVuZ3RoO1xuXG5cdFx0XHQvLyBNYXRjaCBlbGVtZW50cyBmb3VuZCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4ZXNcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoIHNlZWRbICggaiA9IG1hdGNoSW5kZXhlc1sgaSBdICkgXSApIHtcblx0XHRcdFx0XHRzZWVkWyBqIF0gPSAhKCBtYXRjaGVzWyBqIF0gPSBzZWVkWyBqIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSApO1xufVxuXG4vKipcbiAqIENoZWNrcyBhIG5vZGUgZm9yIHZhbGlkaXR5IGFzIGEgalF1ZXJ5IHNlbGVjdG9yIGNvbnRleHRcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3Q9fSBjb250ZXh0XG4gKiBAcmV0dXJucyB7RWxlbWVudHxPYmplY3R8Qm9vbGVhbn0gVGhlIGlucHV0IG5vZGUgaWYgYWNjZXB0YWJsZSwgb3RoZXJ3aXNlIGEgZmFsc3kgdmFsdWVcbiAqL1xuZnVuY3Rpb24gdGVzdENvbnRleHQoIGNvbnRleHQgKSB7XG5cdHJldHVybiBjb250ZXh0ICYmIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnRleHQ7XG59XG5cbi8qKlxuICogU2V0cyBkb2N1bWVudC1yZWxhdGVkIHZhcmlhYmxlcyBvbmNlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGRvY3VtZW50XG4gKiBAcGFyYW0ge0VsZW1lbnR8T2JqZWN0fSBbbm9kZV0gQW4gZWxlbWVudCBvciBkb2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqL1xuZnVuY3Rpb24gc2V0RG9jdW1lbnQoIG5vZGUgKSB7XG5cdHZhciBzdWJXaW5kb3csXG5cdFx0ZG9jID0gbm9kZSA/IG5vZGUub3duZXJEb2N1bWVudCB8fCBub2RlIDogcHJlZmVycmVkRG9jO1xuXG5cdC8vIFJldHVybiBlYXJseSBpZiBkb2MgaXMgaW52YWxpZCBvciBhbHJlYWR5IHNlbGVjdGVkXG5cdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdGlmICggZG9jID09IGRvY3VtZW50IHx8IGRvYy5ub2RlVHlwZSAhPT0gOSB8fCAhZG9jLmRvY3VtZW50RWxlbWVudCApIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQ7XG5cdH1cblxuXHQvLyBVcGRhdGUgZ2xvYmFsIHZhcmlhYmxlc1xuXHRkb2N1bWVudCA9IGRvYztcblx0ZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXHRkb2N1bWVudElzSFRNTCA9ICFqUXVlcnkuaXNYTUxEb2MoIGRvY3VtZW50ICk7XG5cblx0Ly8gU3VwcG9ydDogaU9TIDcgb25seSwgSUUgOSAtIDExK1xuXHQvLyBPbGRlciBicm93c2VycyBkaWRuJ3Qgc3VwcG9ydCB1bnByZWZpeGVkIGBtYXRjaGVzYC5cblx0bWF0Y2hlcyA9IGRvY3VtZW50RWxlbWVudC5tYXRjaGVzIHx8XG5cdFx0ZG9jdW1lbnRFbGVtZW50LndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY3VtZW50RWxlbWVudC5tc01hdGNoZXNTZWxlY3RvcjtcblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErLCBFZGdlIDEyIC0gMTgrXG5cdC8vIEFjY2Vzc2luZyBpZnJhbWUgZG9jdW1lbnRzIGFmdGVyIHVubG9hZCB0aHJvd3MgXCJwZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yc1xuXHQvLyAoc2VlIHRyYWMtMTM5MzYpLlxuXHQvLyBMaW1pdCB0aGUgZml4IHRvIElFICYgRWRnZSBMZWdhY3k7IGRlc3BpdGUgRWRnZSAxNSsgaW1wbGVtZW50aW5nIGBtYXRjaGVzYCxcblx0Ly8gYWxsIElFIDkrIGFuZCBFZGdlIExlZ2FjeSB2ZXJzaW9ucyBpbXBsZW1lbnQgYG1zTWF0Y2hlc1NlbGVjdG9yYCBhcyB3ZWxsLlxuXHRpZiAoIGRvY3VtZW50RWxlbWVudC5tc01hdGNoZXNTZWxlY3RvciAmJlxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRwcmVmZXJyZWREb2MgIT0gZG9jdW1lbnQgJiZcblx0XHQoIHN1YldpbmRvdyA9IGRvY3VtZW50LmRlZmF1bHRWaWV3ICkgJiYgc3ViV2luZG93LnRvcCAhPT0gc3ViV2luZG93ICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4K1xuXHRcdHN1YldpbmRvdy5hZGRFdmVudExpc3RlbmVyKCBcInVubG9hZFwiLCB1bmxvYWRIYW5kbGVyICk7XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRSA8MTBcblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudEJ5SWQgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lXG5cdC8vIFRoZSBicm9rZW4gZ2V0RWxlbWVudEJ5SWQgbWV0aG9kcyBkb24ndCBwaWNrIHVwIHByb2dyYW1tYXRpY2FsbHktc2V0IG5hbWVzLFxuXHQvLyBzbyB1c2UgYSByb3VuZGFib3V0IGdldEVsZW1lbnRzQnlOYW1lIHRlc3Rcblx0c3VwcG9ydC5nZXRCeUlkID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCBlbCApLmlkID0galF1ZXJ5LmV4cGFuZG87XG5cdFx0cmV0dXJuICFkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSB8fFxuXHRcdFx0IWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCBqUXVlcnkuZXhwYW5kbyApLmxlbmd0aDtcblx0fSApO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDkgb25seVxuXHQvLyBDaGVjayB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkbyBtYXRjaGVzU2VsZWN0b3Jcblx0Ly8gb24gYSBkaXNjb25uZWN0ZWQgbm9kZS5cblx0c3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdHJldHVybiBtYXRjaGVzLmNhbGwoIGVsLCBcIipcIiApO1xuXHR9ICk7XG5cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4K1xuXHQvLyBJRS9FZGdlIGRvbid0IHN1cHBvcnQgdGhlIDpzY29wZSBwc2V1ZG8tY2xhc3MuXG5cdHN1cHBvcnQuc2NvcGUgPSBhc3NlcnQoIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpzY29wZVwiICk7XG5cdH0gKTtcblxuXHQvLyBTdXBwb3J0OiBDaHJvbWUgMTA1IC0gMTExIG9ubHksIFNhZmFyaSAxNS40IC0gMTYuMyBvbmx5XG5cdC8vIE1ha2Ugc3VyZSB0aGUgYDpoYXMoKWAgYXJndW1lbnQgaXMgcGFyc2VkIHVuZm9yZ2l2aW5nbHkuXG5cdC8vIFdlIGluY2x1ZGUgYCpgIGluIHRoZSB0ZXN0IHRvIGRldGVjdCBidWdneSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBhcmVcblx0Ly8gX3NlbGVjdGl2ZWx5XyBmb3JnaXZpbmcgKHNwZWNpZmljYWxseSB3aGVuIHRoZSBsaXN0IGluY2x1ZGVzIGF0IGxlYXN0XG5cdC8vIG9uZSB2YWxpZCBzZWxlY3RvcikuXG5cdC8vIE5vdGUgdGhhdCB3ZSB0cmVhdCBjb21wbGV0ZSBsYWNrIG9mIHN1cHBvcnQgZm9yIGA6aGFzKClgIGFzIGlmIGl0IHdlcmVcblx0Ly8gc3BlYy1jb21wbGlhbnQgc3VwcG9ydCwgd2hpY2ggaXMgZmluZSBiZWNhdXNlIHVzZSBvZiBgOmhhcygpYCBpbiBzdWNoXG5cdC8vIGVudmlyb25tZW50cyB3aWxsIGZhaWwgaW4gdGhlIHFTQSBwYXRoIGFuZCBmYWxsIGJhY2sgdG8galF1ZXJ5IHRyYXZlcnNhbFxuXHQvLyBhbnl3YXkuXG5cdHN1cHBvcnQuY3NzSGFzID0gYXNzZXJ0KCBmdW5jdGlvbigpIHtcblx0XHR0cnkge1xuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvciggXCI6aGFzKCosOmpxZmFrZSlcIiApO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gY2F0Y2ggKCBlICkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9ICk7XG5cblx0Ly8gSUQgZmlsdGVyIGFuZCBmaW5kXG5cdGlmICggc3VwcG9ydC5nZXRCeUlkICkge1xuXHRcdEV4cHIuZmlsdGVyLklEID0gZnVuY3Rpb24oIGlkICkge1xuXHRcdFx0dmFyIGF0dHJJZCA9IGlkLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggXCJpZFwiICkgPT09IGF0dHJJZDtcblx0XHRcdH07XG5cdFx0fTtcblx0XHRFeHByLmZpbmQuSUQgPSBmdW5jdGlvbiggaWQsIGNvbnRleHQgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0XHR2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7XG5cdFx0XHRcdHJldHVybiBlbGVtID8gWyBlbGVtIF0gOiBbXTtcblx0XHRcdH1cblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdEV4cHIuZmlsdGVyLklEID0gIGZ1bmN0aW9uKCBpZCApIHtcblx0XHRcdHZhciBhdHRySWQgPSBpZC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgbm9kZSA9IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRyZXR1cm4gbm9kZSAmJiBub2RlLnZhbHVlID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA2IC0gNyBvbmx5XG5cdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgaXMgbm90IHJlbGlhYmxlIGFzIGEgZmluZCBzaG9ydGN1dFxuXHRcdEV4cHIuZmluZC5JRCA9IGZ1bmN0aW9uKCBpZCwgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRcdHZhciBub2RlLCBpLCBlbGVtcyxcblx0XHRcdFx0XHRlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcblxuXHRcdFx0XHRpZiAoIGVsZW0gKSB7XG5cblx0XHRcdFx0XHQvLyBWZXJpZnkgdGhlIGlkIGF0dHJpYnV0ZVxuXHRcdFx0XHRcdG5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdGlmICggbm9kZSAmJiBub2RlLnZhbHVlID09PSBpZCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBbIGVsZW0gXTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBGYWxsIGJhY2sgb24gZ2V0RWxlbWVudHNCeU5hbWVcblx0XHRcdFx0XHRlbGVtcyA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUoIGlkICk7XG5cdFx0XHRcdFx0aSA9IDA7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdFx0aWYgKCBub2RlICYmIG5vZGUudmFsdWUgPT09IGlkICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gWyBlbGVtIF07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFtdO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvLyBUYWdcblx0RXhwci5maW5kLlRBRyA9IGZ1bmN0aW9uKCB0YWcsIGNvbnRleHQgKSB7XG5cdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdC8vIERvY3VtZW50RnJhZ21lbnQgbm9kZXMgZG9uJ3QgaGF2ZSBnRUJUTlxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgKTtcblx0XHR9XG5cdH07XG5cblx0Ly8gQ2xhc3Ncblx0RXhwci5maW5kLkNMQVNTID0gZnVuY3Rpb24oIGNsYXNzTmFtZSwgY29udGV4dCApIHtcblx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCBjbGFzc05hbWUgKTtcblx0XHR9XG5cdH07XG5cblx0LyogUVNBL21hdGNoZXNTZWxlY3RvclxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gUVNBIGFuZCBtYXRjaGVzU2VsZWN0b3Igc3VwcG9ydFxuXG5cdHJidWdneVFTQSA9IFtdO1xuXG5cdC8vIEJ1aWxkIFFTQSByZWdleFxuXHQvLyBSZWdleCBzdHJhdGVneSBhZG9wdGVkIGZyb20gRGllZ28gUGVyaW5pXG5cdGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdFx0dmFyIGlucHV0O1xuXG5cdFx0ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCBlbCApLmlubmVySFRNTCA9XG5cdFx0XHRcIjxhIGlkPSdcIiArIGV4cGFuZG8gKyBcIicgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT5cIiArXG5cdFx0XHRcIjxzZWxlY3QgaWQ9J1wiICsgZXhwYW5kbyArIFwiLVxcclxcXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+XCIgK1xuXHRcdFx0XCI8b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiO1xuXG5cdFx0Ly8gU3VwcG9ydDogaU9TIDw9NyAtIDggb25seVxuXHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBhbmQgXCJ2YWx1ZVwiIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHkgaW4gc29tZSBYTUwgZG9jdW1lbnRzXG5cdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJbc2VsZWN0ZWRdXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKig/OnZhbHVlfFwiICsgYm9vbGVhbnMgKyBcIilcIiApO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IGlPUyA8PTcgLSA4IG9ubHlcblx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltpZH49XCIgKyBleHBhbmRvICsgXCItXVwiICkubGVuZ3RoICkge1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwifj1cIiApO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IGlPUyA4IG9ubHlcblx0XHQvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODUxXG5cdFx0Ly8gSW4tcGFnZSBgc2VsZWN0b3IjaWQgc2libGluZy1jb21iaW5hdG9yIHNlbGVjdG9yYCBmYWlsc1xuXHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiYSNcIiArIGV4cGFuZG8gKyBcIisqXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCIuIy4rWyt+XVwiICk7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MTA1KywgRmlyZWZveCA8PTEwNCssIFNhZmFyaSA8PTE1LjQrXG5cdFx0Ly8gSW4gc29tZSBvZiB0aGUgZG9jdW1lbnQga2luZHMsIHRoZXNlIHNlbGVjdG9ycyB3b3VsZG4ndCB3b3JrIG5hdGl2ZWx5LlxuXHRcdC8vIFRoaXMgaXMgcHJvYmFibHkgT0sgYnV0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3ZSB3YW50IHRvIG1haW50YWluXG5cdFx0Ly8gaGFuZGxpbmcgdGhlbSB0aHJvdWdoIGpRdWVyeSB0cmF2ZXJzYWwgaW4galF1ZXJ5IDMueC5cblx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpjaGVja2VkXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCI6Y2hlY2tlZFwiICk7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogV2luZG93cyA4IE5hdGl2ZSBBcHBzXG5cdFx0Ly8gVGhlIHR5cGUgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgcmVzdHJpY3RlZCBkdXJpbmcgLmlubmVySFRNTCBhc3NpZ25tZW50XG5cdFx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0XHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCBcImhpZGRlblwiICk7XG5cdFx0ZWwuYXBwZW5kQ2hpbGQoIGlucHV0ICkuc2V0QXR0cmlidXRlKCBcIm5hbWVcIiwgXCJEXCIgKTtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDkgLSAxMStcblx0XHQvLyBJRSdzIDpkaXNhYmxlZCBzZWxlY3RvciBkb2VzIG5vdCBwaWNrIHVwIHRoZSBjaGlsZHJlbiBvZiBkaXNhYmxlZCBmaWVsZHNldHNcblx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0xMDUrLCBGaXJlZm94IDw9MTA0KywgU2FmYXJpIDw9MTUuNCtcblx0XHQvLyBJbiBzb21lIG9mIHRoZSBkb2N1bWVudCBraW5kcywgdGhlc2Ugc2VsZWN0b3JzIHdvdWxkbid0IHdvcmsgbmF0aXZlbHkuXG5cdFx0Ly8gVGhpcyBpcyBwcm9iYWJseSBPSyBidXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdlIHdhbnQgdG8gbWFpbnRhaW5cblx0XHQvLyBoYW5kbGluZyB0aGVtIHRocm91Z2ggalF1ZXJ5IHRyYXZlcnNhbCBpbiBqUXVlcnkgMy54LlxuXHRcdGRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCggZWwgKS5kaXNhYmxlZCA9IHRydWU7XG5cdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpkaXNhYmxlZFwiICkubGVuZ3RoICE9PSAyICkge1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiOmVuYWJsZWRcIiwgXCI6ZGlzYWJsZWRcIiApO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFIDExL0VkZ2UgZG9uJ3QgZmluZCBlbGVtZW50cyBvbiBhIGBbbmFtZT0nJ11gIHF1ZXJ5IGluIHNvbWUgY2FzZXMuXG5cdFx0Ly8gQWRkaW5nIGEgdGVtcG9yYXJ5IGF0dHJpYnV0ZSB0byB0aGUgZG9jdW1lbnQgYmVmb3JlIHRoZSBzZWxlY3Rpb24gd29ya3Ncblx0XHQvLyBhcm91bmQgdGhlIGlzc3VlLlxuXHRcdC8vIEludGVyZXN0aW5nbHksIElFIDEwICYgb2xkZXIgZG9uJ3Qgc2VlbSB0byBoYXZlIHRoZSBpc3N1ZS5cblx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRcdGlucHV0LnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiXCIgKTtcblx0XHRlbC5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltuYW1lPScnXVwiICkubGVuZ3RoICkge1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiXFxcXFtcIiArIHdoaXRlc3BhY2UgKyBcIipuYW1lXCIgKyB3aGl0ZXNwYWNlICsgXCIqPVwiICtcblx0XHRcdFx0d2hpdGVzcGFjZSArIFwiKig/OicnfFxcXCJcXFwiKVwiICk7XG5cdFx0fVxuXHR9ICk7XG5cblx0aWYgKCAhc3VwcG9ydC5jc3NIYXMgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgMTA1IC0gMTEwKywgU2FmYXJpIDE1LjQgLSAxNi4zK1xuXHRcdC8vIE91ciByZWd1bGFyIGB0cnktY2F0Y2hgIG1lY2hhbmlzbSBmYWlscyB0byBkZXRlY3QgbmF0aXZlbHktdW5zdXBwb3J0ZWRcblx0XHQvLyBwc2V1ZG8tY2xhc3NlcyBpbnNpZGUgYDpoYXMoKWAgKHN1Y2ggYXMgYDpoYXMoOmNvbnRhaW5zKFwiRm9vXCIpKWApXG5cdFx0Ly8gaW4gYnJvd3NlcnMgdGhhdCBwYXJzZSB0aGUgYDpoYXMoKWAgYXJndW1lbnQgYXMgYSBmb3JnaXZpbmcgc2VsZWN0b3IgbGlzdC5cblx0XHQvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLyNyZWxhdGlvbmFsIG5vdyByZXF1aXJlcyB0aGUgYXJndW1lbnRcblx0XHQvLyB0byBiZSBwYXJzZWQgdW5mb3JnaXZpbmdseSwgYnV0IGJyb3dzZXJzIGhhdmUgbm90IHlldCBmdWxseSBhZGp1c3RlZC5cblx0XHRyYnVnZ3lRU0EucHVzaCggXCI6aGFzXCIgKTtcblx0fVxuXG5cdHJidWdneVFTQSA9IHJidWdneVFTQS5sZW5ndGggJiYgbmV3IFJlZ0V4cCggcmJ1Z2d5UVNBLmpvaW4oIFwifFwiICkgKTtcblxuXHQvKiBTb3J0aW5nXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBEb2N1bWVudCBvcmRlciBzb3J0aW5nXG5cdHNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkge1xuXG5cdFx0Ly8gRmxhZyBmb3IgZHVwbGljYXRlIHJlbW92YWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Ly8gU29ydCBvbiBtZXRob2QgZXhpc3RlbmNlIGlmIG9ubHkgb25lIGlucHV0IGhhcyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuXHRcdHZhciBjb21wYXJlID0gIWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gLSAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtcblx0XHRpZiAoIGNvbXBhcmUgKSB7XG5cdFx0XHRyZXR1cm4gY29tcGFyZTtcblx0XHR9XG5cblx0XHQvLyBDYWxjdWxhdGUgcG9zaXRpb24gaWYgYm90aCBpbnB1dHMgYmVsb25nIHRvIHRoZSBzYW1lIGRvY3VtZW50XG5cdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRjb21wYXJlID0gKCBhLm93bmVyRG9jdW1lbnQgfHwgYSApID09ICggYi5vd25lckRvY3VtZW50IHx8IGIgKSA/XG5cdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBiICkgOlxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugd2Uga25vdyB0aGV5IGFyZSBkaXNjb25uZWN0ZWRcblx0XHRcdDE7XG5cblx0XHQvLyBEaXNjb25uZWN0ZWQgbm9kZXNcblx0XHRpZiAoIGNvbXBhcmUgJiAxIHx8XG5cdFx0XHQoICFzdXBwb3J0LnNvcnREZXRhY2hlZCAmJiBiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBhICkgPT09IGNvbXBhcmUgKSApIHtcblxuXHRcdFx0Ly8gQ2hvb3NlIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgaXMgcmVsYXRlZCB0byBvdXIgcHJlZmVycmVkIGRvY3VtZW50XG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0aWYgKCBhID09PSBkb2N1bWVudCB8fCBhLm93bmVyRG9jdW1lbnQgPT0gcHJlZmVycmVkRG9jICYmXG5cdFx0XHRcdGZpbmQuY29udGFpbnMoIHByZWZlcnJlZERvYywgYSApICkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRpZiAoIGIgPT09IGRvY3VtZW50IHx8IGIub3duZXJEb2N1bWVudCA9PSBwcmVmZXJyZWREb2MgJiZcblx0XHRcdFx0ZmluZC5jb250YWlucyggcHJlZmVycmVkRG9jLCBiICkgKSB7XG5cdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBNYWludGFpbiBvcmlnaW5hbCBvcmRlclxuXHRcdFx0cmV0dXJuIHNvcnRJbnB1dCA/XG5cdFx0XHRcdCggaW5kZXhPZi5jYWxsKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YuY2FsbCggc29ydElucHV0LCBiICkgKSA6XG5cdFx0XHRcdDA7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbXBhcmUgJiA0ID8gLTEgOiAxO1xuXHR9O1xuXG5cdHJldHVybiBkb2N1bWVudDtcbn1cblxuZmluZC5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1lbnRzICkge1xuXHRyZXR1cm4gZmluZCggZXhwciwgbnVsbCwgbnVsbCwgZWxlbWVudHMgKTtcbn07XG5cbmZpbmQubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XG5cdHNldERvY3VtZW50KCBlbGVtICk7XG5cblx0aWYgKCBkb2N1bWVudElzSFRNTCAmJlxuXHRcdCFub25uYXRpdmVTZWxlY3RvckNhY2hlWyBleHByICsgXCIgXCIgXSAmJlxuXHRcdCggIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIGV4cHIgKSApICkge1xuXG5cdFx0dHJ5IHtcblx0XHRcdHZhciByZXQgPSBtYXRjaGVzLmNhbGwoIGVsZW0sIGV4cHIgKTtcblxuXHRcdFx0Ly8gSUUgOSdzIG1hdGNoZXNTZWxlY3RvciByZXR1cm5zIGZhbHNlIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuXHRcdFx0aWYgKCByZXQgfHwgc3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCB8fFxuXG5cdFx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcblx0XHRcdFx0XHQvLyBmcmFnbWVudCBpbiBJRSA5XG5cdFx0XHRcdFx0ZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRvY3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdG5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUoIGV4cHIsIHRydWUgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZmluZCggZXhwciwgZG9jdW1lbnQsIG51bGwsIFsgZWxlbSBdICkubGVuZ3RoID4gMDtcbn07XG5cbmZpbmQuY29udGFpbnMgPSBmdW5jdGlvbiggY29udGV4dCwgZWxlbSApIHtcblxuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0aWYgKCAoIGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGNvbnRleHQgKTtcblx0fVxuXHRyZXR1cm4galF1ZXJ5LmNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICk7XG59O1xuXG5cbmZpbmQuYXR0ciA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRpZiAoICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKSAhPSBkb2N1bWVudCApIHtcblx0XHRzZXREb2N1bWVudCggZWxlbSApO1xuXHR9XG5cblx0dmFyIGZuID0gRXhwci5hdHRySGFuZGxlWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSxcblxuXHRcdC8vIERvbid0IGdldCBmb29sZWQgYnkgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzIChzZWUgdHJhYy0xMzgwNylcblx0XHR2YWwgPSBmbiAmJiBoYXNPd24uY2FsbCggRXhwci5hdHRySGFuZGxlLCBuYW1lLnRvTG93ZXJDYXNlKCkgKSA/XG5cdFx0XHRmbiggZWxlbSwgbmFtZSwgIWRvY3VtZW50SXNIVE1MICkgOlxuXHRcdFx0dW5kZWZpbmVkO1xuXG5cdGlmICggdmFsICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xufTtcblxuZmluZC5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdHRocm93IG5ldyBFcnJvciggXCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiBcIiArIG1zZyApO1xufTtcblxuLyoqXG4gKiBEb2N1bWVudCBzb3J0aW5nIGFuZCByZW1vdmluZyBkdXBsaWNhdGVzXG4gKiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0c1xuICovXG5qUXVlcnkudW5pcXVlU29ydCA9IGZ1bmN0aW9uKCByZXN1bHRzICkge1xuXHR2YXIgZWxlbSxcblx0XHRkdXBsaWNhdGVzID0gW10sXG5cdFx0aiA9IDAsXG5cdFx0aSA9IDA7XG5cblx0Ly8gVW5sZXNzIHdlICprbm93KiB3ZSBjYW4gZGV0ZWN0IGR1cGxpY2F0ZXMsIGFzc3VtZSB0aGVpciBwcmVzZW5jZVxuXHQvL1xuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wK1xuXHQvLyBUZXN0aW5nIGZvciBkZXRlY3RpbmcgZHVwbGljYXRlcyBpcyB1bnByZWRpY3RhYmxlIHNvIGluc3RlYWQgYXNzdW1lIHdlIGNhbid0XG5cdC8vIGRlcGVuZCBvbiBkdXBsaWNhdGUgZGV0ZWN0aW9uIGluIGFsbCBicm93c2VycyB3aXRob3V0IGEgc3RhYmxlIHNvcnQuXG5cdGhhc0R1cGxpY2F0ZSA9ICFzdXBwb3J0LnNvcnRTdGFibGU7XG5cdHNvcnRJbnB1dCA9ICFzdXBwb3J0LnNvcnRTdGFibGUgJiYgc2xpY2UuY2FsbCggcmVzdWx0cywgMCApO1xuXHRzb3J0LmNhbGwoIHJlc3VsdHMsIHNvcnRPcmRlciApO1xuXG5cdGlmICggaGFzRHVwbGljYXRlICkge1xuXHRcdHdoaWxlICggKCBlbGVtID0gcmVzdWx0c1sgaSsrIF0gKSApIHtcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSBdICkge1xuXHRcdFx0XHRqID0gZHVwbGljYXRlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0c3BsaWNlLmNhbGwoIHJlc3VsdHMsIGR1cGxpY2F0ZXNbIGogXSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdC8vIENsZWFyIGlucHV0IGFmdGVyIHNvcnRpbmcgdG8gcmVsZWFzZSBvYmplY3RzXG5cdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9wdWxsLzIyNVxuXHRzb3J0SW5wdXQgPSBudWxsO1xuXG5cdHJldHVybiByZXN1bHRzO1xufTtcblxualF1ZXJ5LmZuLnVuaXF1ZVNvcnQgPSBmdW5jdGlvbigpIHtcblx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkudW5pcXVlU29ydCggc2xpY2UuYXBwbHkoIHRoaXMgKSApICk7XG59O1xuXG5FeHByID0galF1ZXJ5LmV4cHIgPSB7XG5cblx0Ly8gQ2FuIGJlIGFkanVzdGVkIGJ5IHRoZSB1c2VyXG5cdGNhY2hlTGVuZ3RoOiA1MCxcblxuXHRjcmVhdGVQc2V1ZG86IG1hcmtGdW5jdGlvbixcblxuXHRtYXRjaDogbWF0Y2hFeHByLFxuXG5cdGF0dHJIYW5kbGU6IHt9LFxuXG5cdGZpbmQ6IHt9LFxuXG5cdHJlbGF0aXZlOiB7XG5cdFx0XCI+XCI6IHsgZGlyOiBcInBhcmVudE5vZGVcIiwgZmlyc3Q6IHRydWUgfSxcblx0XHRcIiBcIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiIH0sXG5cdFx0XCIrXCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiflwiOiB7IGRpcjogXCJwcmV2aW91c1NpYmxpbmdcIiB9XG5cdH0sXG5cblx0cHJlRmlsdGVyOiB7XG5cdFx0QVRUUjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0bWF0Y2hbIDEgXSA9IG1hdGNoWyAxIF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblxuXHRcdFx0Ly8gTW92ZSB0aGUgZ2l2ZW4gdmFsdWUgdG8gbWF0Y2hbM10gd2hldGhlciBxdW90ZWQgb3IgdW5xdW90ZWRcblx0XHRcdG1hdGNoWyAzIF0gPSAoIG1hdGNoWyAzIF0gfHwgbWF0Y2hbIDQgXSB8fCBtYXRjaFsgNSBdIHx8IFwiXCIgKVxuXHRcdFx0XHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblxuXHRcdFx0aWYgKCBtYXRjaFsgMiBdID09PSBcIn49XCIgKSB7XG5cdFx0XHRcdG1hdGNoWyAzIF0gPSBcIiBcIiArIG1hdGNoWyAzIF0gKyBcIiBcIjtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1hdGNoLnNsaWNlKCAwLCA0ICk7XG5cdFx0fSxcblxuXHRcdENISUxEOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cblx0XHRcdC8qIG1hdGNoZXMgZnJvbSBtYXRjaEV4cHJbXCJDSElMRFwiXVxuXHRcdFx0XHQxIHR5cGUgKG9ubHl8bnRofC4uLilcblx0XHRcdFx0MiB3aGF0IChjaGlsZHxvZi10eXBlKVxuXHRcdFx0XHQzIGFyZ3VtZW50IChldmVufG9kZHxcXGQqfFxcZCpuKFsrLV1cXGQrKT98Li4uKVxuXHRcdFx0XHQ0IHhuLWNvbXBvbmVudCBvZiB4bit5IGFyZ3VtZW50IChbKy1dP1xcZCpufClcblx0XHRcdFx0NSBzaWduIG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ2IHggb2YgeG4tY29tcG9uZW50XG5cdFx0XHRcdDcgc2lnbiBvZiB5LWNvbXBvbmVudFxuXHRcdFx0XHQ4IHkgb2YgeS1jb21wb25lbnRcblx0XHRcdCovXG5cdFx0XHRtYXRjaFsgMSBdID0gbWF0Y2hbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoIG1hdGNoWyAxIF0uc2xpY2UoIDAsIDMgKSA9PT0gXCJudGhcIiApIHtcblxuXHRcdFx0XHQvLyBudGgtKiByZXF1aXJlcyBhcmd1bWVudFxuXHRcdFx0XHRpZiAoICFtYXRjaFsgMyBdICkge1xuXHRcdFx0XHRcdGZpbmQuZXJyb3IoIG1hdGNoWyAwIF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHByLmZpbHRlci5DSElMRFxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXG5cdFx0XHRcdG1hdGNoWyA0IF0gPSArKCBtYXRjaFsgNCBdID9cblx0XHRcdFx0XHRtYXRjaFsgNSBdICsgKCBtYXRjaFsgNiBdIHx8IDEgKSA6XG5cdFx0XHRcdFx0MiAqICggbWF0Y2hbIDMgXSA9PT0gXCJldmVuXCIgfHwgbWF0Y2hbIDMgXSA9PT0gXCJvZGRcIiApXG5cdFx0XHRcdCk7XG5cdFx0XHRcdG1hdGNoWyA1IF0gPSArKCAoIG1hdGNoWyA3IF0gKyBtYXRjaFsgOCBdICkgfHwgbWF0Y2hbIDMgXSA9PT0gXCJvZGRcIiApO1xuXG5cdFx0XHQvLyBvdGhlciB0eXBlcyBwcm9oaWJpdCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIG1hdGNoWyAzIF0gKSB7XG5cdFx0XHRcdGZpbmQuZXJyb3IoIG1hdGNoWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1hdGNoO1xuXHRcdH0sXG5cblx0XHRQU0VVRE86IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdHZhciBleGNlc3MsXG5cdFx0XHRcdHVucXVvdGVkID0gIW1hdGNoWyA2IF0gJiYgbWF0Y2hbIDIgXTtcblxuXHRcdFx0aWYgKCBtYXRjaEV4cHIuQ0hJTEQudGVzdCggbWF0Y2hbIDAgXSApICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWNjZXB0IHF1b3RlZCBhcmd1bWVudHMgYXMtaXNcblx0XHRcdGlmICggbWF0Y2hbIDMgXSApIHtcblx0XHRcdFx0bWF0Y2hbIDIgXSA9IG1hdGNoWyA0IF0gfHwgbWF0Y2hbIDUgXSB8fCBcIlwiO1xuXG5cdFx0XHQvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggdW5xdW90ZWQgJiYgcnBzZXVkby50ZXN0KCB1bnF1b3RlZCApICYmXG5cblx0XHRcdFx0Ly8gR2V0IGV4Y2VzcyBmcm9tIHRva2VuaXplIChyZWN1cnNpdmVseSlcblx0XHRcdFx0KCBleGNlc3MgPSB0b2tlbml6ZSggdW5xdW90ZWQsIHRydWUgKSApICYmXG5cblx0XHRcdFx0Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBjbG9zaW5nIHBhcmVudGhlc2lzXG5cdFx0XHRcdCggZXhjZXNzID0gdW5xdW90ZWQuaW5kZXhPZiggXCIpXCIsIHVucXVvdGVkLmxlbmd0aCAtIGV4Y2VzcyApIC0gdW5xdW90ZWQubGVuZ3RoICkgKSB7XG5cblx0XHRcdFx0Ly8gZXhjZXNzIGlzIGEgbmVnYXRpdmUgaW5kZXhcblx0XHRcdFx0bWF0Y2hbIDAgXSA9IG1hdGNoWyAwIF0uc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0XHRtYXRjaFsgMiBdID0gdW5xdW90ZWQuc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXR1cm4gb25seSBjYXB0dXJlcyBuZWVkZWQgYnkgdGhlIHBzZXVkbyBmaWx0ZXIgbWV0aG9kICh0eXBlIGFuZCBhcmd1bWVudClcblx0XHRcdHJldHVybiBtYXRjaC5zbGljZSggMCwgMyApO1xuXHRcdH1cblx0fSxcblxuXHRmaWx0ZXI6IHtcblxuXHRcdFRBRzogZnVuY3Rpb24oIG5vZGVOYW1lU2VsZWN0b3IgKSB7XG5cdFx0XHR2YXIgZXhwZWN0ZWROb2RlTmFtZSA9IG5vZGVOYW1lU2VsZWN0b3IucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lU2VsZWN0b3IgPT09IFwiKlwiID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gOlxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gbm9kZU5hbWUoIGVsZW0sIGV4cGVjdGVkTm9kZU5hbWUgKTtcblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0Q0xBU1M6IGZ1bmN0aW9uKCBjbGFzc05hbWUgKSB7XG5cdFx0XHR2YXIgcGF0dGVybiA9IGNsYXNzQ2FjaGVbIGNsYXNzTmFtZSArIFwiIFwiIF07XG5cblx0XHRcdHJldHVybiBwYXR0ZXJuIHx8XG5cdFx0XHRcdCggcGF0dGVybiA9IG5ldyBSZWdFeHAoIFwiKF58XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyBjbGFzc05hbWUgK1xuXHRcdFx0XHRcdFwiKFwiICsgd2hpdGVzcGFjZSArIFwifCQpXCIgKSApICYmXG5cdFx0XHRcdGNsYXNzQ2FjaGUoIGNsYXNzTmFtZSwgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhdHRlcm4udGVzdChcblx0XHRcdFx0XHRcdHR5cGVvZiBlbGVtLmNsYXNzTmFtZSA9PT0gXCJzdHJpbmdcIiAmJiBlbGVtLmNsYXNzTmFtZSB8fFxuXHRcdFx0XHRcdFx0XHR0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGUgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdFx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZSggXCJjbGFzc1wiICkgfHxcblx0XHRcdFx0XHRcdFx0XCJcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gKTtcblx0XHR9LFxuXG5cdFx0QVRUUjogZnVuY3Rpb24oIG5hbWUsIG9wZXJhdG9yLCBjaGVjayApIHtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIHJlc3VsdCA9IGZpbmQuYXR0ciggZWxlbSwgbmFtZSApO1xuXG5cdFx0XHRcdGlmICggcmVzdWx0ID09IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIiE9XCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCAhb3BlcmF0b3IgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXN1bHQgKz0gXCJcIjtcblxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcIj1cIiApIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0ID09PSBjaGVjaztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcIiE9XCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdCAhPT0gY2hlY2s7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBvcGVyYXRvciA9PT0gXCJePVwiICkge1xuXHRcdFx0XHRcdHJldHVybiBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA9PT0gMDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcIio9XCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNoZWNrICYmIHJlc3VsdC5pbmRleE9mKCBjaGVjayApID4gLTE7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBvcGVyYXRvciA9PT0gXCIkPVwiICkge1xuXHRcdFx0XHRcdHJldHVybiBjaGVjayAmJiByZXN1bHQuc2xpY2UoIC1jaGVjay5sZW5ndGggKSA9PT0gY2hlY2s7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBvcGVyYXRvciA9PT0gXCJ+PVwiICkge1xuXHRcdFx0XHRcdHJldHVybiAoIFwiIFwiICsgcmVzdWx0LnJlcGxhY2UoIHJ3aGl0ZXNwYWNlLCBcIiBcIiApICsgXCIgXCIgKVxuXHRcdFx0XHRcdFx0LmluZGV4T2YoIGNoZWNrICkgPiAtMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcInw9XCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdCA9PT0gY2hlY2sgfHwgcmVzdWx0LnNsaWNlKCAwLCBjaGVjay5sZW5ndGggKyAxICkgPT09IGNoZWNrICsgXCItXCI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRDSElMRDogZnVuY3Rpb24oIHR5cGUsIHdoYXQsIF9hcmd1bWVudCwgZmlyc3QsIGxhc3QgKSB7XG5cdFx0XHR2YXIgc2ltcGxlID0gdHlwZS5zbGljZSggMCwgMyApICE9PSBcIm50aFwiLFxuXHRcdFx0XHRmb3J3YXJkID0gdHlwZS5zbGljZSggLTQgKSAhPT0gXCJsYXN0XCIsXG5cdFx0XHRcdG9mVHlwZSA9IHdoYXQgPT09IFwib2YtdHlwZVwiO1xuXG5cdFx0XHRyZXR1cm4gZmlyc3QgPT09IDEgJiYgbGFzdCA9PT0gMCA/XG5cblx0XHRcdFx0Ly8gU2hvcnRjdXQgZm9yIDpudGgtKihuKVxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gISFlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRcdH0gOlxuXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdHZhciBjYWNoZSwgb3V0ZXJDYWNoZSwgbm9kZSwgbm9kZUluZGV4LCBzdGFydCxcblx0XHRcdFx0XHRcdGRpciA9IHNpbXBsZSAhPT0gZm9yd2FyZCA/IFwibmV4dFNpYmxpbmdcIiA6IFwicHJldmlvdXNTaWJsaW5nXCIsXG5cdFx0XHRcdFx0XHRwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUsXG5cdFx0XHRcdFx0XHRuYW1lID0gb2ZUeXBlICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxcblx0XHRcdFx0XHRcdHVzZUNhY2hlID0gIXhtbCAmJiAhb2ZUeXBlLFxuXHRcdFx0XHRcdFx0ZGlmZiA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdC8vIDooZmlyc3R8bGFzdHxvbmx5KS0oY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0XHRcdGlmICggc2ltcGxlICkge1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoIGRpciApIHtcblx0XHRcdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9IG5vZGVbIGRpciBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG9mVHlwZSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGVOYW1lKCBub2RlLCBuYW1lICkgOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBSZXZlcnNlIGRpcmVjdGlvbiBmb3IgOm9ubHktKiAoaWYgd2UgaGF2ZW4ndCB5ZXQgZG9uZSBzbylcblx0XHRcdFx0XHRcdFx0XHRzdGFydCA9IGRpciA9IHR5cGUgPT09IFwib25seVwiICYmICFzdGFydCAmJiBcIm5leHRTaWJsaW5nXCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHN0YXJ0ID0gWyBmb3J3YXJkID8gcGFyZW50LmZpcnN0Q2hpbGQgOiBwYXJlbnQubGFzdENoaWxkIF07XG5cblx0XHRcdFx0XHRcdC8vIG5vbi14bWwgOm50aC1jaGlsZCguLi4pIHN0b3JlcyBjYWNoZSBkYXRhIG9uIGBwYXJlbnRgXG5cdFx0XHRcdFx0XHRpZiAoIGZvcndhcmQgJiYgdXNlQ2FjaGUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gU2VlayBgZWxlbWAgZnJvbSBhIHByZXZpb3VzbHktY2FjaGVkIGluZGV4XG5cdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBwYXJlbnRbIGV4cGFuZG8gXSB8fCAoIHBhcmVudFsgZXhwYW5kbyBdID0ge30gKTtcblx0XHRcdFx0XHRcdFx0Y2FjaGUgPSBvdXRlckNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbIDEgXTtcblx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleCAmJiBjYWNoZVsgMiBdO1xuXHRcdFx0XHRcdFx0XHRub2RlID0gbm9kZUluZGV4ICYmIHBhcmVudC5jaGlsZE5vZGVzWyBub2RlSW5kZXggXTtcblxuXHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIEZhbGxiYWNrIHRvIHNlZWtpbmcgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdFx0KCBkaWZmID0gbm9kZUluZGV4ID0gMCApIHx8IHN0YXJ0LnBvcCgpICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBXaGVuIGZvdW5kLCBjYWNoZSBpbmRleGVzIG9uIGBwYXJlbnRgIGFuZCBicmVha1xuXHRcdFx0XHRcdFx0XHRcdGlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiArK2RpZmYgJiYgbm9kZSA9PT0gZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGVbIHR5cGUgXSA9IFsgZGlycnVucywgbm9kZUluZGV4LCBkaWZmIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBVc2UgcHJldmlvdXNseS1jYWNoZWQgZWxlbWVudCBpbmRleCBpZiBhdmFpbGFibGVcblx0XHRcdFx0XHRcdFx0aWYgKCB1c2VDYWNoZSApIHtcblx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlID0gZWxlbVsgZXhwYW5kbyBdIHx8ICggZWxlbVsgZXhwYW5kbyBdID0ge30gKTtcblx0XHRcdFx0XHRcdFx0XHRjYWNoZSA9IG91dGVyQ2FjaGVbIHR5cGUgXSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0XHRub2RlSW5kZXggPSBjYWNoZVsgMCBdID09PSBkaXJydW5zICYmIGNhY2hlWyAxIF07XG5cdFx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleDtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC8vIHhtbCA6bnRoLWNoaWxkKC4uLilcblx0XHRcdFx0XHRcdFx0Ly8gb3IgOm50aC1sYXN0LWNoaWxkKC4uLikgb3IgOm50aCgtbGFzdCk/LW9mLXR5cGUoLi4uKVxuXHRcdFx0XHRcdFx0XHRpZiAoIGRpZmYgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gVXNlIHRoZSBzYW1lIGxvb3AgYXMgYWJvdmUgdG8gc2VlayBgZWxlbWAgZnJvbSB0aGUgc3RhcnRcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdCggZGlmZiA9IG5vZGVJbmRleCA9IDAgKSB8fCBzdGFydC5wb3AoKSApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoICggb2ZUeXBlID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZU5hbWUoIG5vZGUsIG5hbWUgKSA6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGUubm9kZVR5cGUgPT09IDEgKSAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQrK2RpZmYgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gQ2FjaGUgdGhlIGluZGV4IG9mIGVhY2ggZW5jb3VudGVyZWQgZWxlbWVudFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHVzZUNhY2hlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBub2RlWyBleHBhbmRvIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggbm9kZVsgZXhwYW5kbyBdID0ge30gKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlWyB0eXBlIF0gPSBbIGRpcnJ1bnMsIGRpZmYgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggbm9kZSA9PT0gZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSB0aGUgb2Zmc2V0LCB0aGVuIGNoZWNrIGFnYWluc3QgY3ljbGUgc2l6ZVxuXHRcdFx0XHRcdFx0ZGlmZiAtPSBsYXN0O1xuXHRcdFx0XHRcdFx0cmV0dXJuIGRpZmYgPT09IGZpcnN0IHx8ICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRQU0VVRE86IGZ1bmN0aW9uKCBwc2V1ZG8sIGFyZ3VtZW50ICkge1xuXG5cdFx0XHQvLyBwc2V1ZG8tY2xhc3MgbmFtZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmVcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI3BzZXVkby1jbGFzc2VzXG5cdFx0XHQvLyBQcmlvcml0aXplIGJ5IGNhc2Ugc2Vuc2l0aXZpdHkgaW4gY2FzZSBjdXN0b20gcHNldWRvcyBhcmUgYWRkZWQgd2l0aCB1cHBlcmNhc2UgbGV0dGVyc1xuXHRcdFx0Ly8gUmVtZW1iZXIgdGhhdCBzZXRGaWx0ZXJzIGluaGVyaXRzIGZyb20gcHNldWRvc1xuXHRcdFx0dmFyIGFyZ3MsXG5cdFx0XHRcdGZuID0gRXhwci5wc2V1ZG9zWyBwc2V1ZG8gXSB8fCBFeHByLnNldEZpbHRlcnNbIHBzZXVkby50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0XHRmaW5kLmVycm9yKCBcInVuc3VwcG9ydGVkIHBzZXVkbzogXCIgKyBwc2V1ZG8gKTtcblxuXHRcdFx0Ly8gVGhlIHVzZXIgbWF5IHVzZSBjcmVhdGVQc2V1ZG8gdG8gaW5kaWNhdGUgdGhhdFxuXHRcdFx0Ly8gYXJndW1lbnRzIGFyZSBuZWVkZWQgdG8gY3JlYXRlIHRoZSBmaWx0ZXIgZnVuY3Rpb25cblx0XHRcdC8vIGp1c3QgYXMgalF1ZXJ5IGRvZXNcblx0XHRcdGlmICggZm5bIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0cmV0dXJuIGZuKCBhcmd1bWVudCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBCdXQgbWFpbnRhaW4gc3VwcG9ydCBmb3Igb2xkIHNpZ25hdHVyZXNcblx0XHRcdGlmICggZm4ubGVuZ3RoID4gMSApIHtcblx0XHRcdFx0YXJncyA9IFsgcHNldWRvLCBwc2V1ZG8sIFwiXCIsIGFyZ3VtZW50IF07XG5cdFx0XHRcdHJldHVybiBFeHByLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoIHBzZXVkby50b0xvd2VyQ2FzZSgpICkgP1xuXHRcdFx0XHRcdG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHRcdFx0XHR2YXIgaWR4LFxuXHRcdFx0XHRcdFx0XHRtYXRjaGVkID0gZm4oIHNlZWQsIGFyZ3VtZW50ICksXG5cdFx0XHRcdFx0XHRcdGkgPSBtYXRjaGVkLmxlbmd0aDtcblx0XHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0XHRpZHggPSBpbmRleE9mLmNhbGwoIHNlZWQsIG1hdGNoZWRbIGkgXSApO1xuXHRcdFx0XHRcdFx0XHRzZWVkWyBpZHggXSA9ICEoIG1hdGNoZXNbIGlkeCBdID0gbWF0Y2hlZFsgaSBdICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmbiggZWxlbSwgMCwgYXJncyApO1xuXHRcdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBmbjtcblx0XHR9XG5cdH0sXG5cblx0cHNldWRvczoge1xuXG5cdFx0Ly8gUG90ZW50aWFsbHkgY29tcGxleCBwc2V1ZG9zXG5cdFx0bm90OiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblxuXHRcdFx0Ly8gVHJpbSB0aGUgc2VsZWN0b3IgcGFzc2VkIHRvIGNvbXBpbGVcblx0XHRcdC8vIHRvIGF2b2lkIHRyZWF0aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG5cdFx0XHQvLyBzcGFjZXMgYXMgY29tYmluYXRvcnNcblx0XHRcdHZhciBpbnB1dCA9IFtdLFxuXHRcdFx0XHRyZXN1bHRzID0gW10sXG5cdFx0XHRcdG1hdGNoZXIgPSBjb21waWxlKCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbUNTUywgXCIkMVwiICkgKTtcblxuXHRcdFx0cmV0dXJuIG1hdGNoZXJbIGV4cGFuZG8gXSA/XG5cdFx0XHRcdG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMsIF9jb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdFx0XHR1bm1hdGNoZWQgPSBtYXRjaGVyKCBzZWVkLCBudWxsLCB4bWwsIFtdICksXG5cdFx0XHRcdFx0XHRpID0gc2VlZC5sZW5ndGg7XG5cblx0XHRcdFx0XHQvLyBNYXRjaCBlbGVtZW50cyB1bm1hdGNoZWQgYnkgYG1hdGNoZXJgXG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoICggZWxlbSA9IHVubWF0Y2hlZFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdHNlZWRbIGkgXSA9ICEoIG1hdGNoZXNbIGkgXSA9IGVsZW0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdGlucHV0WyAwIF0gPSBlbGVtO1xuXHRcdFx0XHRcdG1hdGNoZXIoIGlucHV0LCBudWxsLCB4bWwsIHJlc3VsdHMgKTtcblxuXHRcdFx0XHRcdC8vIERvbid0IGtlZXAgdGhlIGVsZW1lbnRcblx0XHRcdFx0XHQvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvc2l6emxlL2lzc3Vlcy8yOTkpXG5cdFx0XHRcdFx0aW5wdXRbIDAgXSA9IG51bGw7XG5cdFx0XHRcdFx0cmV0dXJuICFyZXN1bHRzLnBvcCgpO1xuXHRcdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdGhhczogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBmaW5kKCBzZWxlY3RvciwgZWxlbSApLmxlbmd0aCA+IDA7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdGNvbnRhaW5zOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuICggZWxlbS50ZXh0Q29udGVudCB8fCBqUXVlcnkudGV4dCggZWxlbSApICkuaW5kZXhPZiggdGV4dCApID4gLTE7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdC8vIFwiV2hldGhlciBhbiBlbGVtZW50IGlzIHJlcHJlc2VudGVkIGJ5IGEgOmxhbmcoKSBzZWxlY3RvclxuXHRcdC8vIGlzIGJhc2VkIHNvbGVseSBvbiB0aGUgZWxlbWVudCdzIGxhbmd1YWdlIHZhbHVlXG5cdFx0Ly8gYmVpbmcgZXF1YWwgdG8gdGhlIGlkZW50aWZpZXIgQyxcblx0XHQvLyBvciBiZWdpbm5pbmcgd2l0aCB0aGUgaWRlbnRpZmllciBDIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IFwiLVwiLlxuXHRcdC8vIFRoZSBtYXRjaGluZyBvZiBDIGFnYWluc3QgdGhlIGVsZW1lbnQncyBsYW5ndWFnZSB2YWx1ZSBpcyBwZXJmb3JtZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LlxuXHRcdC8vIFRoZSBpZGVudGlmaWVyIEMgZG9lcyBub3QgaGF2ZSB0byBiZSBhIHZhbGlkIGxhbmd1YWdlIG5hbWUuXCJcblx0XHQvLyBodHRwczovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNsYW5nLXBzZXVkb1xuXHRcdGxhbmc6IG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIGxhbmcgKSB7XG5cblx0XHRcdC8vIGxhbmcgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXJcblx0XHRcdGlmICggIXJpZGVudGlmaWVyLnRlc3QoIGxhbmcgfHwgXCJcIiApICkge1xuXHRcdFx0XHRmaW5kLmVycm9yKCBcInVuc3VwcG9ydGVkIGxhbmc6IFwiICsgbGFuZyApO1xuXHRcdFx0fVxuXHRcdFx0bGFuZyA9IGxhbmcucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgZWxlbUxhbmc7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoICggZWxlbUxhbmcgPSBkb2N1bWVudElzSFRNTCA/XG5cdFx0XHRcdFx0XHRlbGVtLmxhbmcgOlxuXHRcdFx0XHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIFwieG1sOmxhbmdcIiApIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCBcImxhbmdcIiApICkgKSB7XG5cblx0XHRcdFx0XHRcdGVsZW1MYW5nID0gZWxlbUxhbmcudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtTGFuZyA9PT0gbGFuZyB8fCBlbGVtTGFuZy5pbmRleE9mKCBsYW5nICsgXCItXCIgKSA9PT0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gd2hpbGUgKCAoIGVsZW0gPSBlbGVtLnBhcmVudE5vZGUgKSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH07XG5cdFx0fSApLFxuXG5cdFx0Ly8gTWlzY2VsbGFuZW91c1xuXHRcdHRhcmdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0XHRcdHJldHVybiBoYXNoICYmIGhhc2guc2xpY2UoIDEgKSA9PT0gZWxlbS5pZDtcblx0XHR9LFxuXG5cdFx0cm9vdDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gZG9jdW1lbnRFbGVtZW50O1xuXHRcdH0sXG5cblx0XHRmb2N1czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gc2FmZUFjdGl2ZUVsZW1lbnQoKSAmJlxuXHRcdFx0XHRkb2N1bWVudC5oYXNGb2N1cygpICYmXG5cdFx0XHRcdCEhKCBlbGVtLnR5cGUgfHwgZWxlbS5ocmVmIHx8IH5lbGVtLnRhYkluZGV4ICk7XG5cdFx0fSxcblxuXHRcdC8vIEJvb2xlYW4gcHJvcGVydGllc1xuXHRcdGVuYWJsZWQ6IGNyZWF0ZURpc2FibGVkUHNldWRvKCBmYWxzZSApLFxuXHRcdGRpc2FibGVkOiBjcmVhdGVEaXNhYmxlZFBzZXVkbyggdHJ1ZSApLFxuXG5cdFx0Y2hlY2tlZDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIEluIENTUzMsIDpjaGVja2VkIHNob3VsZCByZXR1cm4gYm90aCBjaGVja2VkIGFuZCBzZWxlY3RlZCBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMTEvUkVDLWNzczMtc2VsZWN0b3JzLTIwMTEwOTI5LyNjaGVja2VkXG5cdFx0XHRyZXR1cm4gKCBub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgJiYgISFlbGVtLmNoZWNrZWQgKSB8fFxuXHRcdFx0XHQoIG5vZGVOYW1lKCBlbGVtLCBcIm9wdGlvblwiICkgJiYgISFlbGVtLnNlbGVjdGVkICk7XG5cdFx0fSxcblxuXHRcdHNlbGVjdGVkOiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD0xMStcblx0XHRcdC8vIEFjY2Vzc2luZyB0aGUgc2VsZWN0ZWRJbmRleCBwcm9wZXJ0eVxuXHRcdFx0Ly8gZm9yY2VzIHRoZSBicm93c2VyIHRvIHRyZWF0IHRoZSBkZWZhdWx0IG9wdGlvbiBhc1xuXHRcdFx0Ly8gc2VsZWN0ZWQgd2hlbiBpbiBhbiBvcHRncm91cC5cblx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdFx0XHRcdGVsZW0ucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZWxlbS5zZWxlY3RlZCA9PT0gdHJ1ZTtcblx0XHR9LFxuXG5cdFx0Ly8gQ29udGVudHNcblx0XHRlbXB0eTogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2VtcHR5LXBzZXVkb1xuXHRcdFx0Ly8gOmVtcHR5IGlzIG5lZ2F0ZWQgYnkgZWxlbWVudCAoMSkgb3IgY29udGVudCBub2RlcyAodGV4dDogMzsgY2RhdGE6IDQ7IGVudGl0eSByZWY6IDUpLFxuXHRcdFx0Ly8gICBidXQgbm90IGJ5IG90aGVycyAoY29tbWVudDogODsgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbjogNzsgZXRjLilcblx0XHRcdC8vIG5vZGVUeXBlIDwgNiB3b3JrcyBiZWNhdXNlIGF0dHJpYnV0ZXMgKDIpIGRvIG5vdCBhcHBlYXIgYXMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPCA2ICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdHBhcmVudDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gIUV4cHIucHNldWRvcy5lbXB0eSggZWxlbSApO1xuXHRcdH0sXG5cblx0XHQvLyBFbGVtZW50L2lucHV0IHR5cGVzXG5cdFx0aGVhZGVyOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiByaGVhZGVyLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTtcblx0XHR9LFxuXG5cdFx0aW5wdXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIHJpbnB1dHMudGVzdCggZWxlbS5ub2RlTmFtZSApO1xuXHRcdH0sXG5cblx0XHRidXR0b246IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lKCBlbGVtLCBcImlucHV0XCIgKSAmJiBlbGVtLnR5cGUgPT09IFwiYnV0dG9uXCIgfHxcblx0XHRcdFx0bm9kZU5hbWUoIGVsZW0sIFwiYnV0dG9uXCIgKTtcblx0XHR9LFxuXG5cdFx0dGV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgYXR0cjtcblx0XHRcdHJldHVybiBub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgJiYgZWxlbS50eXBlID09PSBcInRleHRcIiAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDwxMCBvbmx5XG5cdFx0XHRcdC8vIE5ldyBIVE1MNSBhdHRyaWJ1dGUgdmFsdWVzIChlLmcuLCBcInNlYXJjaFwiKSBhcHBlYXJcblx0XHRcdFx0Ly8gd2l0aCBlbGVtLnR5cGUgPT09IFwidGV4dFwiXG5cdFx0XHRcdCggKCBhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoIFwidHlwZVwiICkgKSA9PSBudWxsIHx8XG5cdFx0XHRcdFx0YXR0ci50b0xvd2VyQ2FzZSgpID09PSBcInRleHRcIiApO1xuXHRcdH0sXG5cblx0XHQvLyBQb3NpdGlvbi1pbi1jb2xsZWN0aW9uXG5cdFx0Zmlyc3Q6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIFsgMCBdO1xuXHRcdH0gKSxcblxuXHRcdGxhc3Q6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBfbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gWyBsZW5ndGggLSAxIF07XG5cdFx0fSApLFxuXG5cdFx0ZXE6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBfbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0cmV0dXJuIFsgYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudCBdO1xuXHRcdH0gKSxcblxuXHRcdGV2ZW46IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRvZGQ6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMTtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRsdDogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpO1xuXG5cdFx0XHRpZiAoIGFyZ3VtZW50IDwgMCApIHtcblx0XHRcdFx0aSA9IGFyZ3VtZW50ICsgbGVuZ3RoO1xuXHRcdFx0fSBlbHNlIGlmICggYXJndW1lbnQgPiBsZW5ndGggKSB7XG5cdFx0XHRcdGkgPSBsZW5ndGg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpID0gYXJndW1lbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoIDsgLS1pID49IDA7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRndDogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpID0gYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudDtcblx0XHRcdGZvciAoIDsgKytpIDwgbGVuZ3RoOyApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSApXG5cdH1cbn07XG5cbkV4cHIucHNldWRvcy5udGggPSBFeHByLnBzZXVkb3MuZXE7XG5cbi8vIEFkZCBidXR0b24vaW5wdXQgdHlwZSBwc2V1ZG9zXG5mb3IgKCBpIGluIHsgcmFkaW86IHRydWUsIGNoZWNrYm94OiB0cnVlLCBmaWxlOiB0cnVlLCBwYXNzd29yZDogdHJ1ZSwgaW1hZ2U6IHRydWUgfSApIHtcblx0RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVJbnB1dFBzZXVkbyggaSApO1xufVxuZm9yICggaSBpbiB7IHN1Ym1pdDogdHJ1ZSwgcmVzZXQ6IHRydWUgfSApIHtcblx0RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVCdXR0b25Qc2V1ZG8oIGkgKTtcbn1cblxuLy8gRWFzeSBBUEkgZm9yIGNyZWF0aW5nIG5ldyBzZXRGaWx0ZXJzXG5mdW5jdGlvbiBzZXRGaWx0ZXJzKCkge31cbnNldEZpbHRlcnMucHJvdG90eXBlID0gRXhwci5maWx0ZXJzID0gRXhwci5wc2V1ZG9zO1xuRXhwci5zZXRGaWx0ZXJzID0gbmV3IHNldEZpbHRlcnMoKTtcblxuZnVuY3Rpb24gdG9rZW5pemUoIHNlbGVjdG9yLCBwYXJzZU9ubHkgKSB7XG5cdHZhciBtYXRjaGVkLCBtYXRjaCwgdG9rZW5zLCB0eXBlLFxuXHRcdHNvRmFyLCBncm91cHMsIHByZUZpbHRlcnMsXG5cdFx0Y2FjaGVkID0gdG9rZW5DYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdO1xuXG5cdGlmICggY2FjaGVkICkge1xuXHRcdHJldHVybiBwYXJzZU9ubHkgPyAwIDogY2FjaGVkLnNsaWNlKCAwICk7XG5cdH1cblxuXHRzb0ZhciA9IHNlbGVjdG9yO1xuXHRncm91cHMgPSBbXTtcblx0cHJlRmlsdGVycyA9IEV4cHIucHJlRmlsdGVyO1xuXG5cdHdoaWxlICggc29GYXIgKSB7XG5cblx0XHQvLyBDb21tYSBhbmQgZmlyc3QgcnVuXG5cdFx0aWYgKCAhbWF0Y2hlZCB8fCAoIG1hdGNoID0gcmNvbW1hLmV4ZWMoIHNvRmFyICkgKSApIHtcblx0XHRcdGlmICggbWF0Y2ggKSB7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgY29uc3VtZSB0cmFpbGluZyBjb21tYXMgYXMgdmFsaWRcblx0XHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbIDAgXS5sZW5ndGggKSB8fCBzb0Zhcjtcblx0XHRcdH1cblx0XHRcdGdyb3Vwcy5wdXNoKCAoIHRva2VucyA9IFtdICkgKTtcblx0XHR9XG5cblx0XHRtYXRjaGVkID0gZmFsc2U7XG5cblx0XHQvLyBDb21iaW5hdG9yc1xuXHRcdGlmICggKCBtYXRjaCA9IHJsZWFkaW5nQ29tYmluYXRvci5leGVjKCBzb0ZhciApICkgKSB7XG5cdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdHRva2Vucy5wdXNoKCB7XG5cdFx0XHRcdHZhbHVlOiBtYXRjaGVkLFxuXG5cdFx0XHRcdC8vIENhc3QgZGVzY2VuZGFudCBjb21iaW5hdG9ycyB0byBzcGFjZVxuXHRcdFx0XHR0eXBlOiBtYXRjaFsgMCBdLnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiBcIiApXG5cdFx0XHR9ICk7XG5cdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdH1cblxuXHRcdC8vIEZpbHRlcnNcblx0XHRmb3IgKCB0eXBlIGluIEV4cHIuZmlsdGVyICkge1xuXHRcdFx0aWYgKCAoIG1hdGNoID0gbWF0Y2hFeHByWyB0eXBlIF0uZXhlYyggc29GYXIgKSApICYmICggIXByZUZpbHRlcnNbIHR5cGUgXSB8fFxuXHRcdFx0XHQoIG1hdGNoID0gcHJlRmlsdGVyc1sgdHlwZSBdKCBtYXRjaCApICkgKSApIHtcblx0XHRcdFx0bWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7XG5cdFx0XHRcdHRva2Vucy5wdXNoKCB7XG5cdFx0XHRcdFx0dmFsdWU6IG1hdGNoZWQsXG5cdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRtYXRjaGVzOiBtYXRjaFxuXHRcdFx0XHR9ICk7XG5cdFx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCAhbWF0Y2hlZCApIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBpbnZhbGlkIGV4Y2Vzc1xuXHQvLyBpZiB3ZSdyZSBqdXN0IHBhcnNpbmdcblx0Ly8gT3RoZXJ3aXNlLCB0aHJvdyBhbiBlcnJvciBvciByZXR1cm4gdG9rZW5zXG5cdGlmICggcGFyc2VPbmx5ICkge1xuXHRcdHJldHVybiBzb0Zhci5sZW5ndGg7XG5cdH1cblxuXHRyZXR1cm4gc29GYXIgP1xuXHRcdGZpbmQuZXJyb3IoIHNlbGVjdG9yICkgOlxuXG5cdFx0Ly8gQ2FjaGUgdGhlIHRva2Vuc1xuXHRcdHRva2VuQ2FjaGUoIHNlbGVjdG9yLCBncm91cHMgKS5zbGljZSggMCApO1xufVxuXG5mdW5jdGlvbiB0b1NlbGVjdG9yKCB0b2tlbnMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdHNlbGVjdG9yID0gXCJcIjtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0c2VsZWN0b3IgKz0gdG9rZW5zWyBpIF0udmFsdWU7XG5cdH1cblx0cmV0dXJuIHNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiBhZGRDb21iaW5hdG9yKCBtYXRjaGVyLCBjb21iaW5hdG9yLCBiYXNlICkge1xuXHR2YXIgZGlyID0gY29tYmluYXRvci5kaXIsXG5cdFx0c2tpcCA9IGNvbWJpbmF0b3IubmV4dCxcblx0XHRrZXkgPSBza2lwIHx8IGRpcixcblx0XHRjaGVja05vbkVsZW1lbnRzID0gYmFzZSAmJiBrZXkgPT09IFwicGFyZW50Tm9kZVwiLFxuXHRcdGRvbmVOYW1lID0gZG9uZSsrO1xuXG5cdHJldHVybiBjb21iaW5hdG9yLmZpcnN0ID9cblxuXHRcdC8vIENoZWNrIGFnYWluc3QgY2xvc2VzdCBhbmNlc3Rvci9wcmVjZWRpbmcgZWxlbWVudFxuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gOlxuXG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBhbGwgYW5jZXN0b3IvcHJlY2VkaW5nIGVsZW1lbnRzXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciBvbGRDYWNoZSwgb3V0ZXJDYWNoZSxcblx0XHRcdFx0bmV3Q2FjaGUgPSBbIGRpcnJ1bnMsIGRvbmVOYW1lIF07XG5cblx0XHRcdC8vIFdlIGNhbid0IHNldCBhcmJpdHJhcnkgZGF0YSBvbiBYTUwgbm9kZXMsIHNvIHRoZXkgZG9uJ3QgYmVuZWZpdCBmcm9tIGNvbWJpbmF0b3IgY2FjaGluZ1xuXHRcdFx0aWYgKCB4bWwgKSB7XG5cdFx0XHRcdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtWyBkaXIgXSApICkge1xuXHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IGVsZW1bIGV4cGFuZG8gXSB8fCAoIGVsZW1bIGV4cGFuZG8gXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdGlmICggc2tpcCAmJiBub2RlTmFtZSggZWxlbSwgc2tpcCApICkge1xuXHRcdFx0XHRcdFx0XHRlbGVtID0gZWxlbVsgZGlyIF0gfHwgZWxlbTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoICggb2xkQ2FjaGUgPSBvdXRlckNhY2hlWyBrZXkgXSApICYmXG5cdFx0XHRcdFx0XHRcdG9sZENhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgb2xkQ2FjaGVbIDEgXSA9PT0gZG9uZU5hbWUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQXNzaWduIHRvIG5ld0NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0cmV0dXJuICggbmV3Q2FjaGVbIDIgXSA9IG9sZENhY2hlWyAyIF0gKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUmV1c2UgbmV3Y2FjaGUgc28gcmVzdWx0cyBiYWNrLXByb3BhZ2F0ZSB0byBwcmV2aW91cyBlbGVtZW50c1xuXHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlWyBrZXkgXSA9IG5ld0NhY2hlO1xuXG5cdFx0XHRcdFx0XHRcdC8vIEEgbWF0Y2ggbWVhbnMgd2UncmUgZG9uZTsgYSBmYWlsIG1lYW5zIHdlIGhhdmUgdG8ga2VlcCBjaGVja2luZ1xuXHRcdFx0XHRcdFx0XHRpZiAoICggbmV3Q2FjaGVbIDIgXSA9IG1hdGNoZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7XG5cdHJldHVybiBtYXRjaGVycy5sZW5ndGggPiAxID9cblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIGkgPSBtYXRjaGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAhbWF0Y2hlcnNbIGkgXSggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IDpcblx0XHRtYXRjaGVyc1sgMCBdO1xufVxuXG5mdW5jdGlvbiBtdWx0aXBsZUNvbnRleHRzKCBzZWxlY3RvciwgY29udGV4dHMsIHJlc3VsdHMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSBjb250ZXh0cy5sZW5ndGg7XG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGZpbmQoIHNlbGVjdG9yLCBjb250ZXh0c1sgaSBdLCByZXN1bHRzICk7XG5cdH1cblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGNvbmRlbnNlKCB1bm1hdGNoZWQsIG1hcCwgZmlsdGVyLCBjb250ZXh0LCB4bWwgKSB7XG5cdHZhciBlbGVtLFxuXHRcdG5ld1VubWF0Y2hlZCA9IFtdLFxuXHRcdGkgPSAwLFxuXHRcdGxlbiA9IHVubWF0Y2hlZC5sZW5ndGgsXG5cdFx0bWFwcGVkID0gbWFwICE9IG51bGw7XG5cblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0aWYgKCAoIGVsZW0gPSB1bm1hdGNoZWRbIGkgXSApICkge1xuXHRcdFx0aWYgKCAhZmlsdGVyIHx8IGZpbHRlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdG5ld1VubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdGlmICggbWFwcGVkICkge1xuXHRcdFx0XHRcdG1hcC5wdXNoKCBpICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gbmV3VW5tYXRjaGVkO1xufVxuXG5mdW5jdGlvbiBzZXRNYXRjaGVyKCBwcmVGaWx0ZXIsIHNlbGVjdG9yLCBtYXRjaGVyLCBwb3N0RmlsdGVyLCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKSB7XG5cdGlmICggcG9zdEZpbHRlciAmJiAhcG9zdEZpbHRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaWx0ZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmlsdGVyICk7XG5cdH1cblx0aWYgKCBwb3N0RmluZGVyICYmICFwb3N0RmluZGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0cG9zdEZpbmRlciA9IHNldE1hdGNoZXIoIHBvc3RGaW5kZXIsIHBvc3RTZWxlY3RvciApO1xuXHR9XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCByZXN1bHRzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0dmFyIHRlbXAsIGksIGVsZW0sIG1hdGNoZXJPdXQsXG5cdFx0XHRwcmVNYXAgPSBbXSxcblx0XHRcdHBvc3RNYXAgPSBbXSxcblx0XHRcdHByZWV4aXN0aW5nID0gcmVzdWx0cy5sZW5ndGgsXG5cblx0XHRcdC8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250ZXh0XG5cdFx0XHRlbGVtcyA9IHNlZWQgfHxcblx0XHRcdFx0bXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IgfHwgXCIqXCIsXG5cdFx0XHRcdFx0Y29udGV4dC5ub2RlVHlwZSA/IFsgY29udGV4dCBdIDogY29udGV4dCwgW10gKSxcblxuXHRcdFx0Ly8gUHJlZmlsdGVyIHRvIGdldCBtYXRjaGVyIGlucHV0LCBwcmVzZXJ2aW5nIGEgbWFwIGZvciBzZWVkLXJlc3VsdHMgc3luY2hyb25pemF0aW9uXG5cdFx0XHRtYXRjaGVySW4gPSBwcmVGaWx0ZXIgJiYgKCBzZWVkIHx8ICFzZWxlY3RvciApID9cblx0XHRcdFx0Y29uZGVuc2UoIGVsZW1zLCBwcmVNYXAsIHByZUZpbHRlciwgY29udGV4dCwgeG1sICkgOlxuXHRcdFx0XHRlbGVtcztcblxuXHRcdGlmICggbWF0Y2hlciApIHtcblxuXHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIHBvc3RGaW5kZXIsIG9yIGZpbHRlcmVkIHNlZWQsIG9yIG5vbi1zZWVkIHBvc3RGaWx0ZXJcblx0XHRcdC8vIG9yIHByZWV4aXN0aW5nIHJlc3VsdHMsXG5cdFx0XHRtYXRjaGVyT3V0ID0gcG9zdEZpbmRlciB8fCAoIHNlZWQgPyBwcmVGaWx0ZXIgOiBwcmVleGlzdGluZyB8fCBwb3N0RmlsdGVyICkgP1xuXG5cdFx0XHRcdC8vIC4uLmludGVybWVkaWF0ZSBwcm9jZXNzaW5nIGlzIG5lY2Vzc2FyeVxuXHRcdFx0XHRbXSA6XG5cblx0XHRcdFx0Ly8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5XG5cdFx0XHRcdHJlc3VsdHM7XG5cblx0XHRcdC8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzXG5cdFx0XHRtYXRjaGVyKCBtYXRjaGVySW4sIG1hdGNoZXJPdXQsIGNvbnRleHQsIHhtbCApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gbWF0Y2hlckluO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHBvc3RGaWx0ZXJcblx0XHRpZiAoIHBvc3RGaWx0ZXIgKSB7XG5cdFx0XHR0ZW1wID0gY29uZGVuc2UoIG1hdGNoZXJPdXQsIHBvc3RNYXAgKTtcblx0XHRcdHBvc3RGaWx0ZXIoIHRlbXAsIFtdLCBjb250ZXh0LCB4bWwgKTtcblxuXHRcdFx0Ly8gVW4tbWF0Y2ggZmFpbGluZyBlbGVtZW50cyBieSBtb3ZpbmcgdGhlbSBiYWNrIHRvIG1hdGNoZXJJblxuXHRcdFx0aSA9IHRlbXAubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggKCBlbGVtID0gdGVtcFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlck91dFsgcG9zdE1hcFsgaSBdIF0gPSAhKCBtYXRjaGVySW5bIHBvc3RNYXBbIGkgXSBdID0gZWxlbSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHtcblx0XHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXG5cdFx0XHRcdFx0Ly8gR2V0IHRoZSBmaW5hbCBtYXRjaGVyT3V0IGJ5IGNvbmRlbnNpbmcgdGhpcyBpbnRlcm1lZGlhdGUgaW50byBwb3N0RmluZGVyIGNvbnRleHRzXG5cdFx0XHRcdFx0dGVtcCA9IFtdO1xuXHRcdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdGlmICggKCBlbGVtID0gbWF0Y2hlck91dFsgaSBdICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUmVzdG9yZSBtYXRjaGVySW4gc2luY2UgZWxlbSBpcyBub3QgeWV0IGEgZmluYWwgbWF0Y2hcblx0XHRcdFx0XHRcdFx0dGVtcC5wdXNoKCAoIG1hdGNoZXJJblsgaSBdID0gZWxlbSApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsICggbWF0Y2hlck91dCA9IFtdICksIHRlbXAsIHhtbCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gTW92ZSBtYXRjaGVkIGVsZW1lbnRzIGZyb20gc2VlZCB0byByZXN1bHRzIHRvIGtlZXAgdGhlbSBzeW5jaHJvbml6ZWRcblx0XHRcdFx0aSA9IG1hdGNoZXJPdXQubGVuZ3RoO1xuXHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRpZiAoICggZWxlbSA9IG1hdGNoZXJPdXRbIGkgXSApICYmXG5cdFx0XHRcdFx0XHQoIHRlbXAgPSBwb3N0RmluZGVyID8gaW5kZXhPZi5jYWxsKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbIGkgXSApID4gLTEgKSB7XG5cblx0XHRcdFx0XHRcdHNlZWRbIHRlbXAgXSA9ICEoIHJlc3VsdHNbIHRlbXAgXSA9IGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5kZXIgaWYgZGVmaW5lZFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gY29uZGVuc2UoXG5cdFx0XHRcdG1hdGNoZXJPdXQgPT09IHJlc3VsdHMgP1xuXHRcdFx0XHRcdG1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGluZywgbWF0Y2hlck91dC5sZW5ndGggKSA6XG5cdFx0XHRcdFx0bWF0Y2hlck91dFxuXHRcdFx0KTtcblx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgcmVzdWx0cywgbWF0Y2hlck91dCwgeG1sICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBtYXRjaGVyT3V0ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9ICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMgKSB7XG5cdHZhciBjaGVja0NvbnRleHQsIG1hdGNoZXIsIGosXG5cdFx0bGVuID0gdG9rZW5zLmxlbmd0aCxcblx0XHRsZWFkaW5nUmVsYXRpdmUgPSBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIDAgXS50eXBlIF0sXG5cdFx0aW1wbGljaXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlWyBcIiBcIiBdLFxuXHRcdGkgPSBsZWFkaW5nUmVsYXRpdmUgPyAxIDogMCxcblxuXHRcdC8vIFRoZSBmb3VuZGF0aW9uYWwgbWF0Y2hlciBlbnN1cmVzIHRoYXQgZWxlbWVudHMgYXJlIHJlYWNoYWJsZSBmcm9tIHRvcC1sZXZlbCBjb250ZXh0KHMpXG5cdFx0bWF0Y2hDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gY2hlY2tDb250ZXh0O1xuXHRcdH0sIGltcGxpY2l0UmVsYXRpdmUsIHRydWUgKSxcblx0XHRtYXRjaEFueUNvbnRleHQgPSBhZGRDb21iaW5hdG9yKCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBpbmRleE9mLmNhbGwoIGNoZWNrQ29udGV4dCwgZWxlbSApID4gLTE7XG5cdFx0fSwgaW1wbGljaXRSZWxhdGl2ZSwgdHJ1ZSApLFxuXHRcdG1hdGNoZXJzID0gWyBmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0dmFyIHJldCA9ICggIWxlYWRpbmdSZWxhdGl2ZSAmJiAoIHhtbCB8fCBjb250ZXh0ICE9IG91dGVybW9zdENvbnRleHQgKSApIHx8IChcblx0XHRcdFx0KCBjaGVja0NvbnRleHQgPSBjb250ZXh0ICkubm9kZVR5cGUgP1xuXHRcdFx0XHRcdG1hdGNoQ29udGV4dCggZWxlbSwgY29udGV4dCwgeG1sICkgOlxuXHRcdFx0XHRcdG1hdGNoQW55Q29udGV4dCggZWxlbSwgY29udGV4dCwgeG1sICkgKTtcblxuXHRcdFx0Ly8gQXZvaWQgaGFuZ2luZyBvbnRvIGVsZW1lbnRcblx0XHRcdC8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9zaXp6bGUvaXNzdWVzLzI5OSlcblx0XHRcdGNoZWNrQ29udGV4dCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH0gXTtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoICggbWF0Y2hlciA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgaSBdLnR5cGUgXSApICkge1xuXHRcdFx0bWF0Y2hlcnMgPSBbIGFkZENvbWJpbmF0b3IoIGVsZW1lbnRNYXRjaGVyKCBtYXRjaGVycyApLCBtYXRjaGVyICkgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlciA9IEV4cHIuZmlsdGVyWyB0b2tlbnNbIGkgXS50eXBlIF0uYXBwbHkoIG51bGwsIHRva2Vuc1sgaSBdLm1hdGNoZXMgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIHNwZWNpYWwgdXBvbiBzZWVpbmcgYSBwb3NpdGlvbmFsIG1hdGNoZXJcblx0XHRcdGlmICggbWF0Y2hlclsgZXhwYW5kbyBdICkge1xuXG5cdFx0XHRcdC8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlmIGFueSkgZm9yIHByb3BlciBoYW5kbGluZ1xuXHRcdFx0XHRqID0gKytpO1xuXHRcdFx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgaiBdLnR5cGUgXSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gc2V0TWF0Y2hlcihcblx0XHRcdFx0XHRpID4gMSAmJiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSxcblx0XHRcdFx0XHRpID4gMSAmJiB0b1NlbGVjdG9yKFxuXG5cdFx0XHRcdFx0XHQvLyBJZiB0aGUgcHJlY2VkaW5nIHRva2VuIHdhcyBhIGRlc2NlbmRhbnQgY29tYmluYXRvciwgaW5zZXJ0IGFuIGltcGxpY2l0IGFueS1lbGVtZW50IGAqYFxuXHRcdFx0XHRcdFx0dG9rZW5zLnNsaWNlKCAwLCBpIC0gMSApXG5cdFx0XHRcdFx0XHRcdC5jb25jYXQoIHsgdmFsdWU6IHRva2Vuc1sgaSAtIDIgXS50eXBlID09PSBcIiBcIiA/IFwiKlwiIDogXCJcIiB9IClcblx0XHRcdFx0XHQpLnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiQxXCIgKSxcblx0XHRcdFx0XHRtYXRjaGVyLFxuXHRcdFx0XHRcdGkgPCBqICYmIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMuc2xpY2UoIGksIGogKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgbWF0Y2hlckZyb21Ub2tlbnMoICggdG9rZW5zID0gdG9rZW5zLnNsaWNlKCBqICkgKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgdG9TZWxlY3RvciggdG9rZW5zIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdG1hdGNoZXJzLnB1c2goIG1hdGNoZXIgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApIHtcblx0dmFyIGJ5U2V0ID0gc2V0TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRzLCBvdXRlcm1vc3QgKSB7XG5cdFx0XHR2YXIgZWxlbSwgaiwgbWF0Y2hlcixcblx0XHRcdFx0bWF0Y2hlZENvdW50ID0gMCxcblx0XHRcdFx0aSA9IFwiMFwiLFxuXHRcdFx0XHR1bm1hdGNoZWQgPSBzZWVkICYmIFtdLFxuXHRcdFx0XHRzZXRNYXRjaGVkID0gW10sXG5cdFx0XHRcdGNvbnRleHRCYWNrdXAgPSBvdXRlcm1vc3RDb250ZXh0LFxuXG5cdFx0XHRcdC8vIFdlIG11c3QgYWx3YXlzIGhhdmUgZWl0aGVyIHNlZWQgZWxlbWVudHMgb3Igb3V0ZXJtb3N0IGNvbnRleHRcblx0XHRcdFx0ZWxlbXMgPSBzZWVkIHx8IGJ5RWxlbWVudCAmJiBFeHByLmZpbmQuVEFHKCBcIipcIiwgb3V0ZXJtb3N0ICksXG5cblx0XHRcdFx0Ly8gVXNlIGludGVnZXIgZGlycnVucyBpZmYgdGhpcyBpcyB0aGUgb3V0ZXJtb3N0IG1hdGNoZXJcblx0XHRcdFx0ZGlycnVuc1VuaXF1ZSA9ICggZGlycnVucyArPSBjb250ZXh0QmFja3VwID09IG51bGwgPyAxIDogTWF0aC5yYW5kb20oKSB8fCAwLjEgKSxcblx0XHRcdFx0bGVuID0gZWxlbXMubGVuZ3RoO1xuXG5cdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dCA9PSBkb2N1bWVudCB8fCBjb250ZXh0IHx8IG91dGVybW9zdDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIGVsZW1lbnRzIHBhc3NpbmcgZWxlbWVudE1hdGNoZXJzIGRpcmVjdGx5IHRvIHJlc3VsdHNcblx0XHRcdC8vIFN1cHBvcnQ6IGlPUyA8PTcgLSA5IG9ubHlcblx0XHRcdC8vIFRvbGVyYXRlIE5vZGVMaXN0IHByb3BlcnRpZXMgKElFOiBcImxlbmd0aFwiOyBTYWZhcmk6IDxudW1iZXI+KSBtYXRjaGluZ1xuXHRcdFx0Ly8gZWxlbWVudHMgYnkgaWQuIChzZWUgdHJhYy0xNDE0Milcblx0XHRcdGZvciAoIDsgaSAhPT0gbGVuICYmICggZWxlbSA9IGVsZW1zWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0XHRcdGlmICggYnlFbGVtZW50ICYmIGVsZW0gKSB7XG5cdFx0XHRcdFx0aiA9IDA7XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0XHRcdGlmICggIWNvbnRleHQgJiYgZWxlbS5vd25lckRvY3VtZW50ICE9IGRvY3VtZW50ICkge1xuXHRcdFx0XHRcdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0XHRcdFx0XHRcdHhtbCA9ICFkb2N1bWVudElzSFRNTDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0d2hpbGUgKCAoIG1hdGNoZXIgPSBlbGVtZW50TWF0Y2hlcnNbIGorKyBdICkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0sIGNvbnRleHQgfHwgZG9jdW1lbnQsIHhtbCApICkge1xuXHRcdFx0XHRcdFx0XHRwdXNoLmNhbGwoIHJlc3VsdHMsIGVsZW0gKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRcdFx0ZGlycnVucyA9IGRpcnJ1bnNVbmlxdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVHJhY2sgdW5tYXRjaGVkIGVsZW1lbnRzIGZvciBzZXQgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIGJ5U2V0ICkge1xuXG5cdFx0XHRcdFx0Ly8gVGhleSB3aWxsIGhhdmUgZ29uZSB0aHJvdWdoIGFsbCBwb3NzaWJsZSBtYXRjaGVyc1xuXHRcdFx0XHRcdGlmICggKCBlbGVtID0gIW1hdGNoZXIgJiYgZWxlbSApICkge1xuXHRcdFx0XHRcdFx0bWF0Y2hlZENvdW50LS07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gTGVuZ3RoZW4gdGhlIGFycmF5IGZvciBldmVyeSBlbGVtZW50LCBtYXRjaGVkIG9yIG5vdFxuXHRcdFx0XHRcdGlmICggc2VlZCApIHtcblx0XHRcdFx0XHRcdHVubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIGBpYCBpcyBub3cgdGhlIGNvdW50IG9mIGVsZW1lbnRzIHZpc2l0ZWQgYWJvdmUsIGFuZCBhZGRpbmcgaXQgdG8gYG1hdGNoZWRDb3VudGBcblx0XHRcdC8vIG1ha2VzIHRoZSBsYXR0ZXIgbm9ubmVnYXRpdmUuXG5cdFx0XHRtYXRjaGVkQ291bnQgKz0gaTtcblxuXHRcdFx0Ly8gQXBwbHkgc2V0IGZpbHRlcnMgdG8gdW5tYXRjaGVkIGVsZW1lbnRzXG5cdFx0XHQvLyBOT1RFOiBUaGlzIGNhbiBiZSBza2lwcGVkIGlmIHRoZXJlIGFyZSBubyB1bm1hdGNoZWQgZWxlbWVudHMgKGkuZS4sIGBtYXRjaGVkQ291bnRgXG5cdFx0XHQvLyBlcXVhbHMgYGlgKSwgdW5sZXNzIHdlIGRpZG4ndCB2aXNpdCBfYW55XyBlbGVtZW50cyBpbiB0aGUgYWJvdmUgbG9vcCBiZWNhdXNlIHdlIGhhdmVcblx0XHRcdC8vIG5vIGVsZW1lbnQgbWF0Y2hlcnMgYW5kIG5vIHNlZWQuXG5cdFx0XHQvLyBJbmNyZW1lbnRpbmcgYW4gaW5pdGlhbGx5LXN0cmluZyBcIjBcIiBgaWAgYWxsb3dzIGBpYCB0byByZW1haW4gYSBzdHJpbmcgb25seSBpbiB0aGF0XG5cdFx0XHQvLyBjYXNlLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBhIFwiMDBcIiBgbWF0Y2hlZENvdW50YCB0aGF0IGRpZmZlcnMgZnJvbSBgaWAgYnV0IGlzIGFsc29cblx0XHRcdC8vIG51bWVyaWNhbGx5IHplcm8uXG5cdFx0XHRpZiAoIGJ5U2V0ICYmIGkgIT09IG1hdGNoZWRDb3VudCApIHtcblx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdHdoaWxlICggKCBtYXRjaGVyID0gc2V0TWF0Y2hlcnNbIGorKyBdICkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlciggdW5tYXRjaGVkLCBzZXRNYXRjaGVkLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICggc2VlZCApIHtcblxuXHRcdFx0XHRcdC8vIFJlaW50ZWdyYXRlIGVsZW1lbnQgbWF0Y2hlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHNvcnRpbmdcblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRDb3VudCA+IDAgKSB7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCAhKCB1bm1hdGNoZWRbIGkgXSB8fCBzZXRNYXRjaGVkWyBpIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRNYXRjaGVkWyBpIF0gPSBwb3AuY2FsbCggcmVzdWx0cyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gRGlzY2FyZCBpbmRleCBwbGFjZWhvbGRlciB2YWx1ZXMgdG8gZ2V0IG9ubHkgYWN0dWFsIG1hdGNoZXNcblx0XHRcdFx0XHRzZXRNYXRjaGVkID0gY29uZGVuc2UoIHNldE1hdGNoZWQgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFkZCBtYXRjaGVzIHRvIHJlc3VsdHNcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2V0TWF0Y2hlZCApO1xuXG5cdFx0XHRcdC8vIFNlZWRsZXNzIHNldCBtYXRjaGVzIHN1Y2NlZWRpbmcgbXVsdGlwbGUgc3VjY2Vzc2Z1bCBtYXRjaGVycyBzdGlwdWxhdGUgc29ydGluZ1xuXHRcdFx0XHRpZiAoIG91dGVybW9zdCAmJiAhc2VlZCAmJiBzZXRNYXRjaGVkLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0XHQoIG1hdGNoZWRDb3VudCArIHNldE1hdGNoZXJzLmxlbmd0aCApID4gMSApIHtcblxuXHRcdFx0XHRcdGpRdWVyeS51bmlxdWVTb3J0KCByZXN1bHRzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gT3ZlcnJpZGUgbWFuaXB1bGF0aW9uIG9mIGdsb2JhbHMgYnkgbmVzdGVkIG1hdGNoZXJzXG5cdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblx0XHRcdFx0ZGlycnVucyA9IGRpcnJ1bnNVbmlxdWU7XG5cdFx0XHRcdG91dGVybW9zdENvbnRleHQgPSBjb250ZXh0QmFja3VwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdW5tYXRjaGVkO1xuXHRcdH07XG5cblx0cmV0dXJuIGJ5U2V0ID9cblx0XHRtYXJrRnVuY3Rpb24oIHN1cGVyTWF0Y2hlciApIDpcblx0XHRzdXBlck1hdGNoZXI7XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHtcblx0dmFyIGksXG5cdFx0c2V0TWF0Y2hlcnMgPSBbXSxcblx0XHRlbGVtZW50TWF0Y2hlcnMgPSBbXSxcblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlWyBzZWxlY3RvciArIFwiIFwiIF07XG5cblx0aWYgKCAhY2FjaGVkICkge1xuXG5cdFx0Ly8gR2VuZXJhdGUgYSBmdW5jdGlvbiBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZWFjaCBlbGVtZW50XG5cdFx0aWYgKCAhbWF0Y2ggKSB7XG5cdFx0XHRtYXRjaCA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdH1cblx0XHRpID0gbWF0Y2gubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0Y2FjaGVkID0gbWF0Y2hlckZyb21Ub2tlbnMoIG1hdGNoWyBpIF0gKTtcblx0XHRcdGlmICggY2FjaGVkWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdHNldE1hdGNoZXJzLnB1c2goIGNhY2hlZCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbWVudE1hdGNoZXJzLnB1c2goIGNhY2hlZCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhY2hlIHRoZSBjb21waWxlZCBmdW5jdGlvblxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGUoIHNlbGVjdG9yLFxuXHRcdFx0bWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzICkgKTtcblxuXHRcdC8vIFNhdmUgc2VsZWN0b3IgYW5kIHRva2VuaXphdGlvblxuXHRcdGNhY2hlZC5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHR9XG5cdHJldHVybiBjYWNoZWQ7XG59XG5cbi8qKlxuICogQSBsb3ctbGV2ZWwgc2VsZWN0aW9uIGZ1bmN0aW9uIHRoYXQgd29ya3Mgd2l0aCBqUXVlcnkncyBjb21waWxlZFxuICogIHNlbGVjdG9yIGZ1bmN0aW9uc1xuICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IHNlbGVjdG9yIEEgc2VsZWN0b3Igb3IgYSBwcmUtY29tcGlsZWRcbiAqICBzZWxlY3RvciBmdW5jdGlvbiBidWlsdCB3aXRoIGpRdWVyeSBzZWxlY3RvciBjb21waWxlXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGNvbnRleHRcbiAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHRzXVxuICogQHBhcmFtIHtBcnJheX0gW3NlZWRdIEEgc2V0IG9mIGVsZW1lbnRzIHRvIG1hdGNoIGFnYWluc3RcbiAqL1xuZnVuY3Rpb24gc2VsZWN0KCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHtcblx0dmFyIGksIHRva2VucywgdG9rZW4sIHR5cGUsIGZpbmQsXG5cdFx0Y29tcGlsZWQgPSB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiAmJiBzZWxlY3Rvcixcblx0XHRtYXRjaCA9ICFzZWVkICYmIHRva2VuaXplKCAoIHNlbGVjdG9yID0gY29tcGlsZWQuc2VsZWN0b3IgfHwgc2VsZWN0b3IgKSApO1xuXG5cdHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuXG5cdC8vIFRyeSB0byBtaW5pbWl6ZSBvcGVyYXRpb25zIGlmIHRoZXJlIGlzIG9ubHkgb25lIHNlbGVjdG9yIGluIHRoZSBsaXN0IGFuZCBubyBzZWVkXG5cdC8vICh0aGUgbGF0dGVyIG9mIHdoaWNoIGd1YXJhbnRlZXMgdXMgY29udGV4dClcblx0aWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7XG5cblx0XHQvLyBSZWR1Y2UgY29udGV4dCBpZiB0aGUgbGVhZGluZyBjb21wb3VuZCBzZWxlY3RvciBpcyBhbiBJRFxuXHRcdHRva2VucyA9IG1hdGNoWyAwIF0gPSBtYXRjaFsgMCBdLnNsaWNlKCAwICk7XG5cdFx0aWYgKCB0b2tlbnMubGVuZ3RoID4gMiAmJiAoIHRva2VuID0gdG9rZW5zWyAwIF0gKS50eXBlID09PSBcIklEXCIgJiZcblx0XHRcdFx0Y29udGV4dC5ub2RlVHlwZSA9PT0gOSAmJiBkb2N1bWVudElzSFRNTCAmJiBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIDEgXS50eXBlIF0gKSB7XG5cblx0XHRcdGNvbnRleHQgPSAoIEV4cHIuZmluZC5JRChcblx0XHRcdFx0dG9rZW4ubWF0Y2hlc1sgMCBdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICksXG5cdFx0XHRcdGNvbnRleHRcblx0XHRcdCkgfHwgW10gKVsgMCBdO1xuXHRcdFx0aWYgKCAhY29udGV4dCApIHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cblx0XHRcdC8vIFByZWNvbXBpbGVkIG1hdGNoZXJzIHdpbGwgc3RpbGwgdmVyaWZ5IGFuY2VzdHJ5LCBzbyBzdGVwIHVwIGEgbGV2ZWxcblx0XHRcdH0gZWxzZSBpZiAoIGNvbXBpbGVkICkge1xuXHRcdFx0XHRjb250ZXh0ID0gY29udGV4dC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRzZWxlY3RvciA9IHNlbGVjdG9yLnNsaWNlKCB0b2tlbnMuc2hpZnQoKS52YWx1ZS5sZW5ndGggKTtcblx0XHR9XG5cblx0XHQvLyBGZXRjaCBhIHNlZWQgc2V0IGZvciByaWdodC10by1sZWZ0IG1hdGNoaW5nXG5cdFx0aSA9IG1hdGNoRXhwci5uZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSA/IDAgOiB0b2tlbnMubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG9rZW4gPSB0b2tlbnNbIGkgXTtcblxuXHRcdFx0Ly8gQWJvcnQgaWYgd2UgaGl0IGEgY29tYmluYXRvclxuXHRcdFx0aWYgKCBFeHByLnJlbGF0aXZlWyAoIHR5cGUgPSB0b2tlbi50eXBlICkgXSApIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRpZiAoICggZmluZCA9IEV4cHIuZmluZFsgdHlwZSBdICkgKSB7XG5cblx0XHRcdFx0Ly8gU2VhcmNoLCBleHBhbmRpbmcgY29udGV4dCBmb3IgbGVhZGluZyBzaWJsaW5nIGNvbWJpbmF0b3JzXG5cdFx0XHRcdGlmICggKCBzZWVkID0gZmluZChcblx0XHRcdFx0XHR0b2tlbi5tYXRjaGVzWyAwIF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKSxcblx0XHRcdFx0XHRyc2libGluZy50ZXN0KCB0b2tlbnNbIDAgXS50eXBlICkgJiZcblx0XHRcdFx0XHRcdHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBjb250ZXh0XG5cdFx0XHRcdCkgKSApIHtcblxuXHRcdFx0XHRcdC8vIElmIHNlZWQgaXMgZW1wdHkgb3Igbm8gdG9rZW5zIHJlbWFpbiwgd2UgY2FuIHJldHVybiBlYXJseVxuXHRcdFx0XHRcdHRva2Vucy5zcGxpY2UoIGksIDEgKTtcblx0XHRcdFx0XHRzZWxlY3RvciA9IHNlZWQubGVuZ3RoICYmIHRvU2VsZWN0b3IoIHRva2VucyApO1xuXHRcdFx0XHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2VlZCApO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBDb21waWxlIGFuZCBleGVjdXRlIGEgZmlsdGVyaW5nIGZ1bmN0aW9uIGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcblx0Ly8gUHJvdmlkZSBgbWF0Y2hgIHRvIGF2b2lkIHJldG9rZW5pemF0aW9uIGlmIHdlIG1vZGlmaWVkIHRoZSBzZWxlY3RvciBhYm92ZVxuXHQoIGNvbXBpbGVkIHx8IGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCApICkoXG5cdFx0c2VlZCxcblx0XHRjb250ZXh0LFxuXHRcdCFkb2N1bWVudElzSFRNTCxcblx0XHRyZXN1bHRzLFxuXHRcdCFjb250ZXh0IHx8IHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8IGNvbnRleHRcblx0KTtcblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbi8vIE9uZS10aW1lIGFzc2lnbm1lbnRzXG5cbi8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgLSA0LjErXG4vLyBTb3J0IHN0YWJpbGl0eVxuc3VwcG9ydC5zb3J0U3RhYmxlID0gZXhwYW5kby5zcGxpdCggXCJcIiApLnNvcnQoIHNvcnRPcmRlciApLmpvaW4oIFwiXCIgKSA9PT0gZXhwYW5kbztcblxuLy8gSW5pdGlhbGl6ZSBhZ2FpbnN0IHRoZSBkZWZhdWx0IGRvY3VtZW50XG5zZXREb2N1bWVudCgpO1xuXG4vLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIC0gNC4xK1xuLy8gRGV0YWNoZWQgbm9kZXMgY29uZm91bmRpbmdseSBmb2xsb3cgKmVhY2ggb3RoZXIqXG5zdXBwb3J0LnNvcnREZXRhY2hlZCA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdC8vIFNob3VsZCByZXR1cm4gMSwgYnV0IHJldHVybnMgNCAoZm9sbG93aW5nKVxuXHRyZXR1cm4gZWwuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZmllbGRzZXRcIiApICkgJiAxO1xufSApO1xuXG5qUXVlcnkuZmluZCA9IGZpbmQ7XG5cbi8vIERlcHJlY2F0ZWRcbmpRdWVyeS5leHByWyBcIjpcIiBdID0galF1ZXJ5LmV4cHIucHNldWRvcztcbmpRdWVyeS51bmlxdWUgPSBqUXVlcnkudW5pcXVlU29ydDtcblxuLy8gVGhlc2UgaGF2ZSBhbHdheXMgYmVlbiBwcml2YXRlLCBidXQgdGhleSB1c2VkIHRvIGJlIGRvY3VtZW50ZWQgYXMgcGFydCBvZlxuLy8gU2l6emxlIHNvIGxldCdzIG1haW50YWluIHRoZW0gZm9yIG5vdyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHVycG9zZXMuXG5maW5kLmNvbXBpbGUgPSBjb21waWxlO1xuZmluZC5zZWxlY3QgPSBzZWxlY3Q7XG5maW5kLnNldERvY3VtZW50ID0gc2V0RG9jdW1lbnQ7XG5maW5kLnRva2VuaXplID0gdG9rZW5pemU7XG5cbmZpbmQuZXNjYXBlID0galF1ZXJ5LmVzY2FwZVNlbGVjdG9yO1xuZmluZC5nZXRUZXh0ID0galF1ZXJ5LnRleHQ7XG5maW5kLmlzWE1MID0galF1ZXJ5LmlzWE1MRG9jO1xuZmluZC5zZWxlY3RvcnMgPSBqUXVlcnkuZXhwcjtcbmZpbmQuc3VwcG9ydCA9IGpRdWVyeS5zdXBwb3J0O1xuZmluZC51bmlxdWVTb3J0ID0galF1ZXJ5LnVuaXF1ZVNvcnQ7XG5cblx0LyogZXNsaW50LWVuYWJsZSAqL1xuXG59ICkoKTtcblxuXG52YXIgZGlyID0gZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7XG5cdHZhciBtYXRjaGVkID0gW10sXG5cdFx0dHJ1bmNhdGUgPSB1bnRpbCAhPT0gdW5kZWZpbmVkO1xuXG5cdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSAmJiBlbGVtLm5vZGVUeXBlICE9PSA5ICkge1xuXHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdGlmICggdHJ1bmNhdGUgJiYgalF1ZXJ5KCBlbGVtICkuaXMoIHVudGlsICkgKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0bWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBtYXRjaGVkO1xufTtcblxuXG52YXIgc2libGluZ3MgPSBmdW5jdGlvbiggbiwgZWxlbSApIHtcblx0dmFyIG1hdGNoZWQgPSBbXTtcblxuXHRmb3IgKCA7IG47IG4gPSBuLm5leHRTaWJsaW5nICkge1xuXHRcdGlmICggbi5ub2RlVHlwZSA9PT0gMSAmJiBuICE9PSBlbGVtICkge1xuXHRcdFx0bWF0Y2hlZC5wdXNoKCBuICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG1hdGNoZWQ7XG59O1xuXG5cbnZhciBybmVlZHNDb250ZXh0ID0galF1ZXJ5LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0O1xuXG52YXIgcnNpbmdsZVRhZyA9ICggL148KFthLXpdW15cXC9cXDA+OlxceDIwXFx0XFxyXFxuXFxmXSopW1xceDIwXFx0XFxyXFxuXFxmXSpcXC8/Pig/OjxcXC9cXDE+fCkkL2kgKTtcblxuXG5cbi8vIEltcGxlbWVudCB0aGUgaWRlbnRpY2FsIGZ1bmN0aW9uYWxpdHkgZm9yIGZpbHRlciBhbmQgbm90XG5mdW5jdGlvbiB3aW5ub3coIGVsZW1lbnRzLCBxdWFsaWZpZXIsIG5vdCApIHtcblx0aWYgKCBpc0Z1bmN0aW9uKCBxdWFsaWZpZXIgKSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdyZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiAhIXF1YWxpZmllci5jYWxsKCBlbGVtLCBpLCBlbGVtICkgIT09IG5vdDtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBTaW5nbGUgZWxlbWVudFxuXHRpZiAoIHF1YWxpZmllci5ub2RlVHlwZSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdyZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiAoIGVsZW0gPT09IHF1YWxpZmllciApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gQXJyYXlsaWtlIG9mIGVsZW1lbnRzIChqUXVlcnksIGFyZ3VtZW50cywgQXJyYXkpXG5cdGlmICggdHlwZW9mIHF1YWxpZmllciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdyZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiAoIGluZGV4T2YuY2FsbCggcXVhbGlmaWVyLCBlbGVtICkgPiAtMSApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gRmlsdGVyZWQgZGlyZWN0bHkgZm9yIGJvdGggc2ltcGxlIGFuZCBjb21wbGV4IHNlbGVjdG9yc1xuXHRyZXR1cm4galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cywgbm90ICk7XG59XG5cbmpRdWVyeS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgZWxlbXMsIG5vdCApIHtcblx0dmFyIGVsZW0gPSBlbGVtc1sgMCBdO1xuXG5cdGlmICggbm90ICkge1xuXHRcdGV4cHIgPSBcIjpub3QoXCIgKyBleHByICsgXCIpXCI7XG5cdH1cblxuXHRpZiAoIGVsZW1zLmxlbmd0aCA9PT0gMSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdHJldHVybiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGVsZW0sIGV4cHIgKSA/IFsgZWxlbSBdIDogW107XG5cdH1cblxuXHRyZXR1cm4galF1ZXJ5LmZpbmQubWF0Y2hlcyggZXhwciwgalF1ZXJ5LmdyZXAoIGVsZW1zLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZWxlbS5ub2RlVHlwZSA9PT0gMTtcblx0fSApICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgaSwgcmV0LFxuXHRcdFx0bGVuID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRzZWxmID0gdGhpcztcblxuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkoIHNlbGVjdG9yICkuZmlsdGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggc2VsZlsgaSBdLCB0aGlzICkgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gKSApO1xuXHRcdH1cblxuXHRcdHJldCA9IHRoaXMucHVzaFN0YWNrKCBbXSApO1xuXG5cdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGpRdWVyeS5maW5kKCBzZWxlY3Rvciwgc2VsZlsgaSBdLCByZXQgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbGVuID4gMSA/IGpRdWVyeS51bmlxdWVTb3J0KCByZXQgKSA6IHJldDtcblx0fSxcblx0ZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3coIHRoaXMsIHNlbGVjdG9yIHx8IFtdLCBmYWxzZSApICk7XG5cdH0sXG5cdG5vdDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggd2lubm93KCB0aGlzLCBzZWxlY3RvciB8fCBbXSwgdHJ1ZSApICk7XG5cdH0sXG5cdGlzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuICEhd2lubm93KFxuXHRcdFx0dGhpcyxcblxuXHRcdFx0Ly8gSWYgdGhpcyBpcyBhIHBvc2l0aW9uYWwvcmVsYXRpdmUgc2VsZWN0b3IsIGNoZWNrIG1lbWJlcnNoaXAgaW4gdGhlIHJldHVybmVkIHNldFxuXHRcdFx0Ly8gc28gJChcInA6Zmlyc3RcIikuaXMoXCJwOmxhc3RcIikgd29uJ3QgcmV0dXJuIHRydWUgZm9yIGEgZG9jIHdpdGggdHdvIFwicFwiLlxuXHRcdFx0dHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICYmIHJuZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSA/XG5cdFx0XHRcdGpRdWVyeSggc2VsZWN0b3IgKSA6XG5cdFx0XHRcdHNlbGVjdG9yIHx8IFtdLFxuXHRcdFx0ZmFsc2Vcblx0XHQpLmxlbmd0aDtcblx0fVxufSApO1xuXG5cbi8vIEluaXRpYWxpemUgYSBqUXVlcnkgb2JqZWN0XG5cblxuLy8gQSBjZW50cmFsIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBqUXVlcnkoZG9jdW1lbnQpXG52YXIgcm9vdGpRdWVyeSxcblxuXHQvLyBBIHNpbXBsZSB3YXkgdG8gY2hlY2sgZm9yIEhUTUwgc3RyaW5nc1xuXHQvLyBQcmlvcml0aXplICNpZCBvdmVyIDx0YWc+IHRvIGF2b2lkIFhTUyB2aWEgbG9jYXRpb24uaGFzaCAodHJhYy05NTIxKVxuXHQvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAodHJhYy0xMTI5MDogbXVzdCBzdGFydCB3aXRoIDwpXG5cdC8vIFNob3J0Y3V0IHNpbXBsZSAjaWQgY2FzZSBmb3Igc3BlZWRcblx0cnF1aWNrRXhwciA9IC9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKnwjKFtcXHctXSspKSQvLFxuXG5cdGluaXQgPSBqUXVlcnkuZm4uaW5pdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCwgcm9vdCApIHtcblx0XHR2YXIgbWF0Y2gsIGVsZW07XG5cblx0XHQvLyBIQU5ETEU6ICQoXCJcIiksICQobnVsbCksICQodW5kZWZpbmVkKSwgJChmYWxzZSlcblx0XHRpZiAoICFzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIE1ldGhvZCBpbml0KCkgYWNjZXB0cyBhbiBhbHRlcm5hdGUgcm9vdGpRdWVyeVxuXHRcdC8vIHNvIG1pZ3JhdGUgY2FuIHN1cHBvcnQgalF1ZXJ5LnN1YiAoZ2gtMjEwMSlcblx0XHRyb290ID0gcm9vdCB8fCByb290alF1ZXJ5O1xuXG5cdFx0Ly8gSGFuZGxlIEhUTUwgc3RyaW5nc1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0aWYgKCBzZWxlY3RvclsgMCBdID09PSBcIjxcIiAmJlxuXHRcdFx0XHRzZWxlY3Rvclsgc2VsZWN0b3IubGVuZ3RoIC0gMSBdID09PSBcIj5cIiAmJlxuXHRcdFx0XHRzZWxlY3Rvci5sZW5ndGggPj0gMyApIHtcblxuXHRcdFx0XHQvLyBBc3N1bWUgdGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+IGFyZSBIVE1MIGFuZCBza2lwIHRoZSByZWdleCBjaGVja1xuXHRcdFx0XHRtYXRjaCA9IFsgbnVsbCwgc2VsZWN0b3IsIG51bGwgXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkIGZvciAjaWRcblx0XHRcdGlmICggbWF0Y2ggJiYgKCBtYXRjaFsgMSBdIHx8ICFjb250ZXh0ICkgKSB7XG5cblx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpXG5cdFx0XHRcdGlmICggbWF0Y2hbIDEgXSApIHtcblx0XHRcdFx0XHRjb250ZXh0ID0gY29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNvbnRleHRbIDAgXSA6IGNvbnRleHQ7XG5cblx0XHRcdFx0XHQvLyBPcHRpb24gdG8gcnVuIHNjcmlwdHMgaXMgdHJ1ZSBmb3IgYmFjay1jb21wYXRcblx0XHRcdFx0XHQvLyBJbnRlbnRpb25hbGx5IGxldCB0aGUgZXJyb3IgYmUgdGhyb3duIGlmIHBhcnNlSFRNTCBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcywgalF1ZXJ5LnBhcnNlSFRNTChcblx0XHRcdFx0XHRcdG1hdGNoWyAxIF0sXG5cdFx0XHRcdFx0XHRjb250ZXh0ICYmIGNvbnRleHQubm9kZVR5cGUgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50LFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCkgKTtcblxuXHRcdFx0XHRcdC8vIEhBTkRMRTogJChodG1sLCBwcm9wcylcblx0XHRcdFx0XHRpZiAoIHJzaW5nbGVUYWcudGVzdCggbWF0Y2hbIDEgXSApICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb250ZXh0ICkgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCBtYXRjaCBpbiBjb250ZXh0ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFByb3BlcnRpZXMgb2YgY29udGV4dCBhcmUgY2FsbGVkIGFzIG1ldGhvZHMgaWYgcG9zc2libGVcblx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCB0aGlzWyBtYXRjaCBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpc1sgbWF0Y2ggXSggY29udGV4dFsgbWF0Y2ggXSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIC4uLmFuZCBvdGhlcndpc2Ugc2V0IGFzIGF0dHJpYnV0ZXNcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmF0dHIoIG1hdGNoLCBjb250ZXh0WyBtYXRjaCBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoI2lkKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggbWF0Y2hbIDIgXSApO1xuXG5cdFx0XHRcdFx0aWYgKCBlbGVtICkge1xuXG5cdFx0XHRcdFx0XHQvLyBJbmplY3QgdGhlIGVsZW1lbnQgZGlyZWN0bHkgaW50byB0aGUgalF1ZXJ5IG9iamVjdFxuXHRcdFx0XHRcdFx0dGhpc1sgMCBdID0gZWxlbTtcblx0XHRcdFx0XHRcdHRoaXMubGVuZ3RoID0gMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsICQoLi4uKSlcblx0XHRcdH0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkge1xuXHRcdFx0XHRyZXR1cm4gKCBjb250ZXh0IHx8IHJvb3QgKS5maW5kKCBzZWxlY3RvciApO1xuXG5cdFx0XHQvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dClcblx0XHRcdC8vICh3aGljaCBpcyBqdXN0IGVxdWl2YWxlbnQgdG86ICQoY29udGV4dCkuZmluZChleHByKVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuY29uc3RydWN0b3IoIGNvbnRleHQgKS5maW5kKCBzZWxlY3RvciApO1xuXHRcdFx0fVxuXG5cdFx0Ly8gSEFORExFOiAkKERPTUVsZW1lbnQpXG5cdFx0fSBlbHNlIGlmICggc2VsZWN0b3Iubm9kZVR5cGUgKSB7XG5cdFx0XHR0aGlzWyAwIF0gPSBzZWxlY3Rvcjtcblx0XHRcdHRoaXMubGVuZ3RoID0gMTtcblx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0Ly8gSEFORExFOiAkKGZ1bmN0aW9uKVxuXHRcdC8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeVxuXHRcdH0gZWxzZSBpZiAoIGlzRnVuY3Rpb24oIHNlbGVjdG9yICkgKSB7XG5cdFx0XHRyZXR1cm4gcm9vdC5yZWFkeSAhPT0gdW5kZWZpbmVkID9cblx0XHRcdFx0cm9vdC5yZWFkeSggc2VsZWN0b3IgKSA6XG5cblx0XHRcdFx0Ly8gRXhlY3V0ZSBpbW1lZGlhdGVseSBpZiByZWFkeSBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRzZWxlY3RvciggalF1ZXJ5ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpRdWVyeS5tYWtlQXJyYXkoIHNlbGVjdG9yLCB0aGlzICk7XG5cdH07XG5cbi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb25cbmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuO1xuXG4vLyBJbml0aWFsaXplIGNlbnRyYWwgcmVmZXJlbmNlXG5yb290alF1ZXJ5ID0galF1ZXJ5KCBkb2N1bWVudCApO1xuXG5cbnZhciBycGFyZW50c3ByZXYgPSAvXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxcblxuXHQvLyBNZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldFxuXHRndWFyYW50ZWVkVW5pcXVlID0ge1xuXHRcdGNoaWxkcmVuOiB0cnVlLFxuXHRcdGNvbnRlbnRzOiB0cnVlLFxuXHRcdG5leHQ6IHRydWUsXG5cdFx0cHJldjogdHJ1ZVxuXHR9O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGhhczogZnVuY3Rpb24oIHRhcmdldCApIHtcblx0XHR2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0LCB0aGlzICksXG5cdFx0XHRsID0gdGFyZ2V0cy5sZW5ndGg7XG5cblx0XHRyZXR1cm4gdGhpcy5maWx0ZXIoIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggdGhpcywgdGFyZ2V0c1sgaSBdICkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0Y2xvc2VzdDogZnVuY3Rpb24oIHNlbGVjdG9ycywgY29udGV4dCApIHtcblx0XHR2YXIgY3VyLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRtYXRjaGVkID0gW10sXG5cdFx0XHR0YXJnZXRzID0gdHlwZW9mIHNlbGVjdG9ycyAhPT0gXCJzdHJpbmdcIiAmJiBqUXVlcnkoIHNlbGVjdG9ycyApO1xuXG5cdFx0Ly8gUG9zaXRpb25hbCBzZWxlY3RvcnMgbmV2ZXIgbWF0Y2gsIHNpbmNlIHRoZXJlJ3Mgbm8gX3NlbGVjdGlvbl8gY29udGV4dFxuXHRcdGlmICggIXJuZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3JzICkgKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZvciAoIGN1ciA9IHRoaXNbIGkgXTsgY3VyICYmIGN1ciAhPT0gY29udGV4dDsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cblx0XHRcdFx0XHQvLyBBbHdheXMgc2tpcCBkb2N1bWVudCBmcmFnbWVudHNcblx0XHRcdFx0XHRpZiAoIGN1ci5ub2RlVHlwZSA8IDExICYmICggdGFyZ2V0cyA/XG5cdFx0XHRcdFx0XHR0YXJnZXRzLmluZGV4KCBjdXIgKSA+IC0xIDpcblxuXHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcGFzcyBub24tZWxlbWVudHMgdG8galF1ZXJ5I2ZpbmRcblx0XHRcdFx0XHRcdGN1ci5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGN1ciwgc2VsZWN0b3JzICkgKSApIHtcblxuXHRcdFx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZVNvcnQoIG1hdGNoZWQgKSA6IG1hdGNoZWQgKTtcblx0fSxcblxuXHQvLyBEZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgd2l0aGluIHRoZSBzZXRcblx0aW5kZXg6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gTm8gYXJndW1lbnQsIHJldHVybiBpbmRleCBpbiBwYXJlbnRcblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuICggdGhpc1sgMCBdICYmIHRoaXNbIDAgXS5wYXJlbnROb2RlICkgPyB0aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aCA6IC0xO1xuXHRcdH1cblxuXHRcdC8vIEluZGV4IGluIHNlbGVjdG9yXG5cdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBpbmRleE9mLmNhbGwoIGpRdWVyeSggZWxlbSApLCB0aGlzWyAwIF0gKTtcblx0XHR9XG5cblx0XHQvLyBMb2NhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGVsZW1lbnRcblx0XHRyZXR1cm4gaW5kZXhPZi5jYWxsKCB0aGlzLFxuXG5cdFx0XHQvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWRcblx0XHRcdGVsZW0uanF1ZXJ5ID8gZWxlbVsgMCBdIDogZWxlbVxuXHRcdCk7XG5cdH0sXG5cblx0YWRkOiBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKFxuXHRcdFx0alF1ZXJ5LnVuaXF1ZVNvcnQoXG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcy5nZXQoKSwgalF1ZXJ5KCBzZWxlY3RvciwgY29udGV4dCApIClcblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdGFkZEJhY2s6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgP1xuXHRcdFx0dGhpcy5wcmV2T2JqZWN0IDogdGhpcy5wcmV2T2JqZWN0LmZpbHRlciggc2VsZWN0b3IgKVxuXHRcdCk7XG5cdH1cbn0gKTtcblxuZnVuY3Rpb24gc2libGluZyggY3VyLCBkaXIgKSB7XG5cdHdoaWxlICggKCBjdXIgPSBjdXJbIGRpciBdICkgJiYgY3VyLm5vZGVUeXBlICE9PSAxICkge31cblx0cmV0dXJuIGN1cjtcbn1cblxualF1ZXJ5LmVhY2goIHtcblx0cGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdHJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7XG5cdH0sXG5cdHBhcmVudHM6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiICk7XG5cdH0sXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIF9pLCB1bnRpbCApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInBhcmVudE5vZGVcIiwgdW50aWwgKTtcblx0fSxcblx0bmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmcoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIgKTtcblx0fSxcblx0cHJldkFsbDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0VW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJuZXh0U2libGluZ1wiLCB1bnRpbCApO1xuXHR9LFxuXHRwcmV2VW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiwgdW50aWwgKTtcblx0fSxcblx0c2libGluZ3M6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5ncyggKCBlbGVtLnBhcmVudE5vZGUgfHwge30gKS5maXJzdENoaWxkLCBlbGVtICk7XG5cdH0sXG5cdGNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZ3MoIGVsZW0uZmlyc3RDaGlsZCApO1xuXHR9LFxuXHRjb250ZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0aWYgKCBlbGVtLmNvbnRlbnREb2N1bWVudCAhPSBudWxsICYmXG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExK1xuXHRcdFx0Ly8gPG9iamVjdD4gZWxlbWVudHMgd2l0aCBubyBgZGF0YWAgYXR0cmlidXRlIGhhcyBhbiBvYmplY3Rcblx0XHRcdC8vIGBjb250ZW50RG9jdW1lbnRgIHdpdGggYSBgbnVsbGAgcHJvdG90eXBlLlxuXHRcdFx0Z2V0UHJvdG8oIGVsZW0uY29udGVudERvY3VtZW50ICkgKSB7XG5cblx0XHRcdHJldHVybiBlbGVtLmNvbnRlbnREb2N1bWVudDtcblx0XHR9XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seSwgaU9TIDcgb25seSwgQW5kcm9pZCBCcm93c2VyIDw9NC4zIG9ubHlcblx0XHQvLyBUcmVhdCB0aGUgdGVtcGxhdGUgZWxlbWVudCBhcyBhIHJlZ3VsYXIgb25lIGluIGJyb3dzZXJzIHRoYXRcblx0XHQvLyBkb24ndCBzdXBwb3J0IGl0LlxuXHRcdGlmICggbm9kZU5hbWUoIGVsZW0sIFwidGVtcGxhdGVcIiApICkge1xuXHRcdFx0ZWxlbSA9IGVsZW0uY29udGVudCB8fCBlbGVtO1xuXHRcdH1cblxuXHRcdHJldHVybiBqUXVlcnkubWVyZ2UoIFtdLCBlbGVtLmNoaWxkTm9kZXMgKTtcblx0fVxufSwgZnVuY3Rpb24oIG5hbWUsIGZuICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCB1bnRpbCwgc2VsZWN0b3IgKSB7XG5cdFx0dmFyIG1hdGNoZWQgPSBqUXVlcnkubWFwKCB0aGlzLCBmbiwgdW50aWwgKTtcblxuXHRcdGlmICggbmFtZS5zbGljZSggLTUgKSAhPT0gXCJVbnRpbFwiICkge1xuXHRcdFx0c2VsZWN0b3IgPSB1bnRpbDtcblx0XHR9XG5cblx0XHRpZiAoIHNlbGVjdG9yICYmIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdG1hdGNoZWQgPSBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgbWF0Y2hlZCApO1xuXHRcdH1cblxuXHRcdGlmICggdGhpcy5sZW5ndGggPiAxICkge1xuXG5cdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlc1xuXHRcdFx0aWYgKCAhZ3VhcmFudGVlZFVuaXF1ZVsgbmFtZSBdICkge1xuXHRcdFx0XHRqUXVlcnkudW5pcXVlU29ydCggbWF0Y2hlZCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXZlcnNlIG9yZGVyIGZvciBwYXJlbnRzKiBhbmQgcHJldi1kZXJpdmF0aXZlc1xuXHRcdFx0aWYgKCBycGFyZW50c3ByZXYudGVzdCggbmFtZSApICkge1xuXHRcdFx0XHRtYXRjaGVkLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIG1hdGNoZWQgKTtcblx0fTtcbn0gKTtcbnZhciBybm90aHRtbHdoaXRlID0gKCAvW15cXHgyMFxcdFxcclxcblxcZl0rL2cgKTtcblxuXG5cbi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBvcHRpb25zIGludG8gT2JqZWN0LWZvcm1hdHRlZCBvbmVzXG5mdW5jdGlvbiBjcmVhdGVPcHRpb25zKCBvcHRpb25zICkge1xuXHR2YXIgb2JqZWN0ID0ge307XG5cdGpRdWVyeS5lYWNoKCBvcHRpb25zLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW10sIGZ1bmN0aW9uKCBfLCBmbGFnICkge1xuXHRcdG9iamVjdFsgZmxhZyBdID0gdHJ1ZTtcblx0fSApO1xuXHRyZXR1cm4gb2JqZWN0O1xufVxuXG4vKlxuICogQ3JlYXRlIGEgY2FsbGJhY2sgbGlzdCB1c2luZyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6XG4gKlxuICpcdG9wdGlvbnM6IGFuIG9wdGlvbmFsIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIG9wdGlvbnMgdGhhdCB3aWxsIGNoYW5nZSBob3dcbiAqXHRcdFx0dGhlIGNhbGxiYWNrIGxpc3QgYmVoYXZlcyBvciBhIG1vcmUgdHJhZGl0aW9uYWwgb3B0aW9uIG9iamVjdFxuICpcbiAqIEJ5IGRlZmF1bHQgYSBjYWxsYmFjayBsaXN0IHdpbGwgYWN0IGxpa2UgYW4gZXZlbnQgY2FsbGJhY2sgbGlzdCBhbmQgY2FuIGJlXG4gKiBcImZpcmVkXCIgbXVsdGlwbGUgdGltZXMuXG4gKlxuICogUG9zc2libGUgb3B0aW9uczpcbiAqXG4gKlx0b25jZTpcdFx0XHR3aWxsIGVuc3VyZSB0aGUgY2FsbGJhY2sgbGlzdCBjYW4gb25seSBiZSBmaXJlZCBvbmNlIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdG1lbW9yeTpcdFx0XHR3aWxsIGtlZXAgdHJhY2sgb2YgcHJldmlvdXMgdmFsdWVzIGFuZCB3aWxsIGNhbGwgYW55IGNhbGxiYWNrIGFkZGVkXG4gKlx0XHRcdFx0XHRhZnRlciB0aGUgbGlzdCBoYXMgYmVlbiBmaXJlZCByaWdodCBhd2F5IHdpdGggdGhlIGxhdGVzdCBcIm1lbW9yaXplZFwiXG4gKlx0XHRcdFx0XHR2YWx1ZXMgKGxpa2UgYSBEZWZlcnJlZClcbiAqXG4gKlx0dW5pcXVlOlx0XHRcdHdpbGwgZW5zdXJlIGEgY2FsbGJhY2sgY2FuIG9ubHkgYmUgYWRkZWQgb25jZSAobm8gZHVwbGljYXRlIGluIHRoZSBsaXN0KVxuICpcbiAqXHRzdG9wT25GYWxzZTpcdGludGVycnVwdCBjYWxsaW5ncyB3aGVuIGEgY2FsbGJhY2sgcmV0dXJucyBmYWxzZVxuICpcbiAqL1xualF1ZXJ5LkNhbGxiYWNrcyA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdC8vIENvbnZlcnQgb3B0aW9ucyBmcm9tIFN0cmluZy1mb3JtYXR0ZWQgdG8gT2JqZWN0LWZvcm1hdHRlZCBpZiBuZWVkZWRcblx0Ly8gKHdlIGNoZWNrIGluIGNhY2hlIGZpcnN0KVxuXHRvcHRpb25zID0gdHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIgP1xuXHRcdGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSA6XG5cdFx0alF1ZXJ5LmV4dGVuZCgge30sIG9wdGlvbnMgKTtcblxuXHR2YXIgLy8gRmxhZyB0byBrbm93IGlmIGxpc3QgaXMgY3VycmVudGx5IGZpcmluZ1xuXHRcdGZpcmluZyxcblxuXHRcdC8vIExhc3QgZmlyZSB2YWx1ZSBmb3Igbm9uLWZvcmdldHRhYmxlIGxpc3RzXG5cdFx0bWVtb3J5LFxuXG5cdFx0Ly8gRmxhZyB0byBrbm93IGlmIGxpc3Qgd2FzIGFscmVhZHkgZmlyZWRcblx0XHRmaXJlZCxcblxuXHRcdC8vIEZsYWcgdG8gcHJldmVudCBmaXJpbmdcblx0XHRsb2NrZWQsXG5cblx0XHQvLyBBY3R1YWwgY2FsbGJhY2sgbGlzdFxuXHRcdGxpc3QgPSBbXSxcblxuXHRcdC8vIFF1ZXVlIG9mIGV4ZWN1dGlvbiBkYXRhIGZvciByZXBlYXRhYmxlIGxpc3RzXG5cdFx0cXVldWUgPSBbXSxcblxuXHRcdC8vIEluZGV4IG9mIGN1cnJlbnRseSBmaXJpbmcgY2FsbGJhY2sgKG1vZGlmaWVkIGJ5IGFkZC9yZW1vdmUgYXMgbmVlZGVkKVxuXHRcdGZpcmluZ0luZGV4ID0gLTEsXG5cblx0XHQvLyBGaXJlIGNhbGxiYWNrc1xuXHRcdGZpcmUgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRW5mb3JjZSBzaW5nbGUtZmlyaW5nXG5cdFx0XHRsb2NrZWQgPSBsb2NrZWQgfHwgb3B0aW9ucy5vbmNlO1xuXG5cdFx0XHQvLyBFeGVjdXRlIGNhbGxiYWNrcyBmb3IgYWxsIHBlbmRpbmcgZXhlY3V0aW9ucyxcblx0XHRcdC8vIHJlc3BlY3RpbmcgZmlyaW5nSW5kZXggb3ZlcnJpZGVzIGFuZCBydW50aW1lIGNoYW5nZXNcblx0XHRcdGZpcmVkID0gZmlyaW5nID0gdHJ1ZTtcblx0XHRcdGZvciAoIDsgcXVldWUubGVuZ3RoOyBmaXJpbmdJbmRleCA9IC0xICkge1xuXHRcdFx0XHRtZW1vcnkgPSBxdWV1ZS5zaGlmdCgpO1xuXHRcdFx0XHR3aGlsZSAoICsrZmlyaW5nSW5kZXggPCBsaXN0Lmxlbmd0aCApIHtcblxuXHRcdFx0XHRcdC8vIFJ1biBjYWxsYmFjayBhbmQgY2hlY2sgZm9yIGVhcmx5IHRlcm1pbmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBsaXN0WyBmaXJpbmdJbmRleCBdLmFwcGx5KCBtZW1vcnlbIDAgXSwgbWVtb3J5WyAxIF0gKSA9PT0gZmFsc2UgJiZcblx0XHRcdFx0XHRcdG9wdGlvbnMuc3RvcE9uRmFsc2UgKSB7XG5cblx0XHRcdFx0XHRcdC8vIEp1bXAgdG8gZW5kIGFuZCBmb3JnZXQgdGhlIGRhdGEgc28gLmFkZCBkb2Vzbid0IHJlLWZpcmVcblx0XHRcdFx0XHRcdGZpcmluZ0luZGV4ID0gbGlzdC5sZW5ndGg7XG5cdFx0XHRcdFx0XHRtZW1vcnkgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gRm9yZ2V0IHRoZSBkYXRhIGlmIHdlJ3JlIGRvbmUgd2l0aCBpdFxuXHRcdFx0aWYgKCAhb3B0aW9ucy5tZW1vcnkgKSB7XG5cdFx0XHRcdG1lbW9yeSA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRmaXJpbmcgPSBmYWxzZTtcblxuXHRcdFx0Ly8gQ2xlYW4gdXAgaWYgd2UncmUgZG9uZSBmaXJpbmcgZm9yIGdvb2Rcblx0XHRcdGlmICggbG9ja2VkICkge1xuXG5cdFx0XHRcdC8vIEtlZXAgYW4gZW1wdHkgbGlzdCBpZiB3ZSBoYXZlIGRhdGEgZm9yIGZ1dHVyZSBhZGQgY2FsbHNcblx0XHRcdFx0aWYgKCBtZW1vcnkgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IFtdO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSwgdGhpcyBvYmplY3QgaXMgc3BlbnRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsaXN0ID0gXCJcIjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvLyBBY3R1YWwgQ2FsbGJhY2tzIG9iamVjdFxuXHRcdHNlbGYgPSB7XG5cblx0XHRcdC8vIEFkZCBhIGNhbGxiYWNrIG9yIGEgY29sbGVjdGlvbiBvZiBjYWxsYmFja3MgdG8gdGhlIGxpc3Rcblx0XHRcdGFkZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggbGlzdCApIHtcblxuXHRcdFx0XHRcdC8vIElmIHdlIGhhdmUgbWVtb3J5IGZyb20gYSBwYXN0IHJ1biwgd2Ugc2hvdWxkIGZpcmUgYWZ0ZXIgYWRkaW5nXG5cdFx0XHRcdFx0aWYgKCBtZW1vcnkgJiYgIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmluZ0luZGV4ID0gbGlzdC5sZW5ndGggLSAxO1xuXHRcdFx0XHRcdFx0cXVldWUucHVzaCggbWVtb3J5ICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0KCBmdW5jdGlvbiBhZGQoIGFyZ3MgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggYXJncywgZnVuY3Rpb24oIF8sIGFyZyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCBhcmcgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoICFvcHRpb25zLnVuaXF1ZSB8fCAhc2VsZi5oYXMoIGFyZyApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGlzdC5wdXNoKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGFyZyAmJiBhcmcubGVuZ3RoICYmIHRvVHlwZSggYXJnICkgIT09IFwic3RyaW5nXCIgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBJbnNwZWN0IHJlY3Vyc2l2ZWx5XG5cdFx0XHRcdFx0XHRcdFx0YWRkKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdH0gKSggYXJndW1lbnRzICk7XG5cblx0XHRcdFx0XHRpZiAoIG1lbW9yeSAmJiAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIFJlbW92ZSBhIGNhbGxiYWNrIGZyb20gdGhlIGxpc3Rcblx0XHRcdHJlbW92ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0dmFyIGluZGV4O1xuXHRcdFx0XHRcdHdoaWxlICggKCBpbmRleCA9IGpRdWVyeS5pbkFycmF5KCBhcmcsIGxpc3QsIGluZGV4ICkgKSA+IC0xICkge1xuXHRcdFx0XHRcdFx0bGlzdC5zcGxpY2UoIGluZGV4LCAxICk7XG5cblx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmaXJpbmcgaW5kZXhlc1xuXHRcdFx0XHRcdFx0aWYgKCBpbmRleCA8PSBmaXJpbmdJbmRleCApIHtcblx0XHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXgtLTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBDaGVjayBpZiBhIGdpdmVuIGNhbGxiYWNrIGlzIGluIHRoZSBsaXN0LlxuXHRcdFx0Ly8gSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHJldHVybiB3aGV0aGVyIG9yIG5vdCBsaXN0IGhhcyBjYWxsYmFja3MgYXR0YWNoZWQuXG5cdFx0XHRoYXM6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0cmV0dXJuIGZuID9cblx0XHRcdFx0XHRqUXVlcnkuaW5BcnJheSggZm4sIGxpc3QgKSA+IC0xIDpcblx0XHRcdFx0XHRsaXN0Lmxlbmd0aCA+IDA7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBSZW1vdmUgYWxsIGNhbGxiYWNrcyBmcm9tIHRoZSBsaXN0XG5cdFx0XHRlbXB0eTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggbGlzdCApIHtcblx0XHRcdFx0XHRsaXN0ID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBEaXNhYmxlIC5maXJlIGFuZCAuYWRkXG5cdFx0XHQvLyBBYm9ydCBhbnkgY3VycmVudC9wZW5kaW5nIGV4ZWN1dGlvbnNcblx0XHRcdC8vIENsZWFyIGFsbCBjYWxsYmFja3MgYW5kIHZhbHVlc1xuXHRcdFx0ZGlzYWJsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxvY2tlZCA9IHF1ZXVlID0gW107XG5cdFx0XHRcdGxpc3QgPSBtZW1vcnkgPSBcIlwiO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHRkaXNhYmxlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhbGlzdDtcblx0XHRcdH0sXG5cblx0XHRcdC8vIERpc2FibGUgLmZpcmVcblx0XHRcdC8vIEFsc28gZGlzYWJsZSAuYWRkIHVubGVzcyB3ZSBoYXZlIG1lbW9yeSAoc2luY2UgaXQgd291bGQgaGF2ZSBubyBlZmZlY3QpXG5cdFx0XHQvLyBBYm9ydCBhbnkgcGVuZGluZyBleGVjdXRpb25zXG5cdFx0XHRsb2NrOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0bG9ja2VkID0gcXVldWUgPSBbXTtcblx0XHRcdFx0aWYgKCAhbWVtb3J5ICYmICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IG1lbW9yeSA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0bG9ja2VkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICEhbG9ja2VkO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gQ2FsbCBhbGwgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZVdpdGg6IGZ1bmN0aW9uKCBjb250ZXh0LCBhcmdzICkge1xuXHRcdFx0XHRpZiAoICFsb2NrZWQgKSB7XG5cdFx0XHRcdFx0YXJncyA9IGFyZ3MgfHwgW107XG5cdFx0XHRcdFx0YXJncyA9IFsgY29udGV4dCwgYXJncy5zbGljZSA/IGFyZ3Muc2xpY2UoKSA6IGFyZ3MgXTtcblx0XHRcdFx0XHRxdWV1ZS5wdXNoKCBhcmdzICk7XG5cdFx0XHRcdFx0aWYgKCAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIENhbGwgYWxsIHRoZSBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzXG5cdFx0XHRmaXJlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0c2VsZi5maXJlV2l0aCggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gVG8ga25vdyBpZiB0aGUgY2FsbGJhY2tzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbGxlZCBhdCBsZWFzdCBvbmNlXG5cdFx0XHRmaXJlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhIWZpcmVkO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0cmV0dXJuIHNlbGY7XG59O1xuXG5cbmZ1bmN0aW9uIElkZW50aXR5KCB2ICkge1xuXHRyZXR1cm4gdjtcbn1cbmZ1bmN0aW9uIFRocm93ZXIoIGV4ICkge1xuXHR0aHJvdyBleDtcbn1cblxuZnVuY3Rpb24gYWRvcHRWYWx1ZSggdmFsdWUsIHJlc29sdmUsIHJlamVjdCwgbm9WYWx1ZSApIHtcblx0dmFyIG1ldGhvZDtcblxuXHR0cnkge1xuXG5cdFx0Ly8gQ2hlY2sgZm9yIHByb21pc2UgYXNwZWN0IGZpcnN0IHRvIHByaXZpbGVnZSBzeW5jaHJvbm91cyBiZWhhdmlvclxuXHRcdGlmICggdmFsdWUgJiYgaXNGdW5jdGlvbiggKCBtZXRob2QgPSB2YWx1ZS5wcm9taXNlICkgKSApIHtcblx0XHRcdG1ldGhvZC5jYWxsKCB2YWx1ZSApLmRvbmUoIHJlc29sdmUgKS5mYWlsKCByZWplY3QgKTtcblxuXHRcdC8vIE90aGVyIHRoZW5hYmxlc1xuXHRcdH0gZWxzZSBpZiAoIHZhbHVlICYmIGlzRnVuY3Rpb24oICggbWV0aG9kID0gdmFsdWUudGhlbiApICkgKSB7XG5cdFx0XHRtZXRob2QuY2FsbCggdmFsdWUsIHJlc29sdmUsIHJlamVjdCApO1xuXG5cdFx0Ly8gT3RoZXIgbm9uLXRoZW5hYmxlc1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIENvbnRyb2wgYHJlc29sdmVgIGFyZ3VtZW50cyBieSBsZXR0aW5nIEFycmF5I3NsaWNlIGNhc3QgYm9vbGVhbiBgbm9WYWx1ZWAgdG8gaW50ZWdlcjpcblx0XHRcdC8vICogZmFsc2U6IFsgdmFsdWUgXS5zbGljZSggMCApID0+IHJlc29sdmUoIHZhbHVlIClcblx0XHRcdC8vICogdHJ1ZTogWyB2YWx1ZSBdLnNsaWNlKCAxICkgPT4gcmVzb2x2ZSgpXG5cdFx0XHRyZXNvbHZlLmFwcGx5KCB1bmRlZmluZWQsIFsgdmFsdWUgXS5zbGljZSggbm9WYWx1ZSApICk7XG5cdFx0fVxuXG5cdC8vIEZvciBQcm9taXNlcy9BKywgY29udmVydCBleGNlcHRpb25zIGludG8gcmVqZWN0aW9uc1xuXHQvLyBTaW5jZSBqUXVlcnkud2hlbiBkb2Vzbid0IHVud3JhcCB0aGVuYWJsZXMsIHdlIGNhbiBza2lwIHRoZSBleHRyYSBjaGVja3MgYXBwZWFyaW5nIGluXG5cdC8vIERlZmVycmVkI3RoZW4gdG8gY29uZGl0aW9uYWxseSBzdXBwcmVzcyByZWplY3Rpb24uXG5cdH0gY2F0Y2ggKCB2YWx1ZSApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIG9ubHlcblx0XHQvLyBTdHJpY3QgbW9kZSBmdW5jdGlvbnMgaW52b2tlZCB3aXRob3V0IC5jYWxsLy5hcHBseSBnZXQgZ2xvYmFsLW9iamVjdCBjb250ZXh0XG5cdFx0cmVqZWN0LmFwcGx5KCB1bmRlZmluZWQsIFsgdmFsdWUgXSApO1xuXHR9XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHREZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMgKSB7XG5cdFx0dmFyIHR1cGxlcyA9IFtcblxuXHRcdFx0XHQvLyBhY3Rpb24sIGFkZCBsaXN0ZW5lciwgY2FsbGJhY2tzLFxuXHRcdFx0XHQvLyAuLi4gLnRoZW4gaGFuZGxlcnMsIGFyZ3VtZW50IGluZGV4LCBbZmluYWwgc3RhdGVdXG5cdFx0XHRcdFsgXCJub3RpZnlcIiwgXCJwcm9ncmVzc1wiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm1lbW9yeVwiICksXG5cdFx0XHRcdFx0alF1ZXJ5LkNhbGxiYWNrcyggXCJtZW1vcnlcIiApLCAyIF0sXG5cdFx0XHRcdFsgXCJyZXNvbHZlXCIsIFwiZG9uZVwiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcblx0XHRcdFx0XHRqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSwgMCwgXCJyZXNvbHZlZFwiIF0sXG5cdFx0XHRcdFsgXCJyZWplY3RcIiwgXCJmYWlsXCIsIGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXHRcdFx0XHRcdGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLCAxLCBcInJlamVjdGVkXCIgXVxuXHRcdFx0XSxcblx0XHRcdHN0YXRlID0gXCJwZW5kaW5nXCIsXG5cdFx0XHRwcm9taXNlID0ge1xuXHRcdFx0XHRzdGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHN0YXRlO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRhbHdheXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGRlZmVycmVkLmRvbmUoIGFyZ3VtZW50cyApLmZhaWwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRcImNhdGNoXCI6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0XHRyZXR1cm4gcHJvbWlzZS50aGVuKCBudWxsLCBmbiApO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIEtlZXAgcGlwZSBmb3IgYmFjay1jb21wYXRcblx0XHRcdFx0cGlwZTogZnVuY3Rpb24oIC8qIGZuRG9uZSwgZm5GYWlsLCBmblByb2dyZXNzICovICkge1xuXHRcdFx0XHRcdHZhciBmbnMgPSBhcmd1bWVudHM7XG5cblx0XHRcdFx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCBmdW5jdGlvbiggbmV3RGVmZXIgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggdHVwbGVzLCBmdW5jdGlvbiggX2ksIHR1cGxlICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE1hcCB0dXBsZXMgKHByb2dyZXNzLCBkb25lLCBmYWlsKSB0byBhcmd1bWVudHMgKGRvbmUsIGZhaWwsIHByb2dyZXNzKVxuXHRcdFx0XHRcdFx0XHR2YXIgZm4gPSBpc0Z1bmN0aW9uKCBmbnNbIHR1cGxlWyA0IF0gXSApICYmIGZuc1sgdHVwbGVbIDQgXSBdO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkLnByb2dyZXNzKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLm5vdGlmeSB9KVxuXHRcdFx0XHRcdFx0XHQvLyBkZWZlcnJlZC5kb25lKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLnJlc29sdmUgfSlcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWQuZmFpbChmdW5jdGlvbigpIHsgYmluZCB0byBuZXdEZWZlciBvciBuZXdEZWZlci5yZWplY3QgfSlcblx0XHRcdFx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAxIF0gXSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkID0gZm4gJiYgZm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdFx0XHRcdGlmICggcmV0dXJuZWQgJiYgaXNGdW5jdGlvbiggcmV0dXJuZWQucHJvbWlzZSApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQucHJvbWlzZSgpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5wcm9ncmVzcyggbmV3RGVmZXIubm90aWZ5IClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmRvbmUoIG5ld0RlZmVyLnJlc29sdmUgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0ICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXShcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm4gPyBbIHJldHVybmVkIF0gOiBhcmd1bWVudHNcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHRmbnMgPSBudWxsO1xuXHRcdFx0XHRcdH0gKS5wcm9taXNlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoZW46IGZ1bmN0aW9uKCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcyApIHtcblx0XHRcdFx0XHR2YXIgbWF4RGVwdGggPSAwO1xuXHRcdFx0XHRcdGZ1bmN0aW9uIHJlc29sdmUoIGRlcHRoLCBkZWZlcnJlZCwgaGFuZGxlciwgc3BlY2lhbCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzLFxuXHRcdFx0XHRcdFx0XHRcdGFyZ3MgPSBhcmd1bWVudHMsXG5cdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdyA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkLCB0aGVuO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4zLjMuM1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBkb3VibGUtcmVzb2x1dGlvbiBhdHRlbXB0c1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCA8IG1heERlcHRoICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkID0gaGFuZGxlci5hcHBseSggdGhhdCwgYXJncyApO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4xXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC00OFxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCByZXR1cm5lZCA9PT0gZGVmZXJyZWQucHJvbWlzZSgpICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCBcIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvblwiICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb25zIDIuMy4zLjEsIDMuNVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTRcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTc1XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBSZXRyaWV2ZSBgdGhlbmAgb25seSBvbmNlXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGVuID0gcmV0dXJuZWQgJiZcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy40XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTY0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgY2hlY2sgb2JqZWN0cyBhbmQgZnVuY3Rpb25zIGZvciB0aGVuYWJpbGl0eVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoIHR5cGVvZiByZXR1cm5lZCA9PT0gXCJvYmplY3RcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiByZXR1cm5lZCA9PT0gXCJmdW5jdGlvblwiICkgJiZcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQudGhlbjtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGEgcmV0dXJuZWQgdGhlbmFibGVcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggdGhlbiApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFNwZWNpYWwgcHJvY2Vzc29ycyAobm90aWZ5KSBqdXN0IHdhaXQgZm9yIHJlc29sdXRpb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoZW4uY2FsbChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBUaHJvd2VyLCBzcGVjaWFsIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE5vcm1hbCBwcm9jZXNzb3JzIChyZXNvbHZlKSBhbHNvIGhvb2sgaW50byBwcm9ncmVzc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIGRpc3JlZ2FyZCBvbGRlciByZXNvbHV0aW9uIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1heERlcHRoKys7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGVuLmNhbGwoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgSWRlbnRpdHksIHNwZWNpYWwgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgVGhyb3dlciwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBIYW5kbGUgYWxsIG90aGVyIHJldHVybmVkIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuZCBtdWx0aXBsZSB2YWx1ZXMgKG5vbi1zcGVjIGJlaGF2aW9yKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGhhbmRsZXIgIT09IElkZW50aXR5ICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgcmV0dXJuZWQgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFByb2Nlc3MgdGhlIHZhbHVlKHMpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIERlZmF1bHQgcHJvY2VzcyBpcyByZXNvbHZlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCggc3BlY2lhbCB8fCBkZWZlcnJlZC5yZXNvbHZlV2l0aCApKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgbm9ybWFsIHByb2Nlc3NvcnMgKHJlc29sdmUpIGNhdGNoIGFuZCByZWplY3QgZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdHByb2Nlc3MgPSBzcGVjaWFsID9cblx0XHRcdFx0XHRcdFx0XHRcdG1pZ2h0VGhyb3cgOlxuXHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayggZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cHJvY2Vzcy5lcnJvciApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy40LjFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC02MVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBwb3N0LXJlc29sdXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggZGVwdGggKyAxID49IG1heERlcHRoICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhbmQgbXVsdGlwbGUgdmFsdWVzIChub24tc3BlYyBiZWhhdmlvcilcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggaGFuZGxlciAhPT0gVGhyb3dlciApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgZSBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy4xXG5cdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTU3XG5cdFx0XHRcdFx0XHRcdC8vIFJlLXJlc29sdmUgcHJvbWlzZXMgaW1tZWRpYXRlbHkgdG8gZG9kZ2UgZmFsc2UgcmVqZWN0aW9uIGZyb21cblx0XHRcdFx0XHRcdFx0Ly8gc3Vic2VxdWVudCBlcnJvcnNcblx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCApIHtcblx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzKCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBDYWxsIGFuIG9wdGlvbmFsIGhvb2sgdG8gcmVjb3JkIHRoZSBlcnJvciwgaW4gY2FzZSBvZiBleGNlcHRpb25cblx0XHRcdFx0XHRcdFx0XHQvLyBzaW5jZSBpdCdzIG90aGVyd2lzZSBsb3N0IHdoZW4gZXhlY3V0aW9uIGdvZXMgYXN5bmNcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5EZWZlcnJlZC5nZXRFcnJvckhvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzLmVycm9yID0galF1ZXJ5LkRlZmVycmVkLmdldEVycm9ySG9vaygpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gVGhlIGRlcHJlY2F0ZWQgYWxpYXMgb2YgdGhlIGFib3ZlLiBXaGlsZSB0aGUgbmFtZSBzdWdnZXN0c1xuXHRcdFx0XHRcdFx0XHRcdC8vIHJldHVybmluZyB0aGUgc3RhY2ssIG5vdCBhbiBlcnJvciBpbnN0YW5jZSwgalF1ZXJ5IGp1c3QgcGFzc2VzXG5cdFx0XHRcdFx0XHRcdFx0Ly8gaXQgZGlyZWN0bHkgdG8gYGNvbnNvbGUud2FybmAgc28gYm90aCB3aWxsIHdvcms7IGFuIGluc3RhbmNlXG5cdFx0XHRcdFx0XHRcdFx0Ly8ganVzdCBiZXR0ZXIgY29vcGVyYXRlcyB3aXRoIHNvdXJjZSBtYXBzLlxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGpRdWVyeS5EZWZlcnJlZC5nZXRTdGFja0hvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzLmVycm9yID0galF1ZXJ5LkRlZmVycmVkLmdldFN0YWNrSG9vaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuc2V0VGltZW91dCggcHJvY2VzcyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoIGZ1bmN0aW9uKCBuZXdEZWZlciApIHtcblxuXHRcdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvblByb2dyZXNzICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25Qcm9ncmVzcyA6XG5cdFx0XHRcdFx0XHRcdFx0XHRJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlci5ub3RpZnlXaXRoXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5hZGQoIC4uLiApXG5cdFx0XHRcdFx0XHR0dXBsZXNbIDEgXVsgMyBdLmFkZChcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShcblx0XHRcdFx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyLFxuXHRcdFx0XHRcdFx0XHRcdGlzRnVuY3Rpb24oIG9uRnVsZmlsbGVkICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25GdWxmaWxsZWQgOlxuXHRcdFx0XHRcdFx0XHRcdFx0SWRlbnRpdHlcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAyIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvblJlamVjdGVkICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25SZWplY3RlZCA6XG5cdFx0XHRcdFx0XHRcdFx0XHRUaHJvd2VyXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fSApLnByb21pc2UoKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBHZXQgYSBwcm9taXNlIGZvciB0aGlzIGRlZmVycmVkXG5cdFx0XHRcdC8vIElmIG9iaiBpcyBwcm92aWRlZCwgdGhlIHByb21pc2UgYXNwZWN0IGlzIGFkZGVkIHRvIHRoZSBvYmplY3Rcblx0XHRcdFx0cHJvbWlzZTogZnVuY3Rpb24oIG9iaiApIHtcblx0XHRcdFx0XHRyZXR1cm4gb2JqICE9IG51bGwgPyBqUXVlcnkuZXh0ZW5kKCBvYmosIHByb21pc2UgKSA6IHByb21pc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWZlcnJlZCA9IHt9O1xuXG5cdFx0Ly8gQWRkIGxpc3Qtc3BlY2lmaWMgbWV0aG9kc1xuXHRcdGpRdWVyeS5lYWNoKCB0dXBsZXMsIGZ1bmN0aW9uKCBpLCB0dXBsZSApIHtcblx0XHRcdHZhciBsaXN0ID0gdHVwbGVbIDIgXSxcblx0XHRcdFx0c3RhdGVTdHJpbmcgPSB0dXBsZVsgNSBdO1xuXG5cdFx0XHQvLyBwcm9taXNlLnByb2dyZXNzID0gbGlzdC5hZGRcblx0XHRcdC8vIHByb21pc2UuZG9uZSA9IGxpc3QuYWRkXG5cdFx0XHQvLyBwcm9taXNlLmZhaWwgPSBsaXN0LmFkZFxuXHRcdFx0cHJvbWlzZVsgdHVwbGVbIDEgXSBdID0gbGlzdC5hZGQ7XG5cblx0XHRcdC8vIEhhbmRsZSBzdGF0ZVxuXHRcdFx0aWYgKCBzdGF0ZVN0cmluZyApIHtcblx0XHRcdFx0bGlzdC5hZGQoXG5cdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0XHRcdC8vIHN0YXRlID0gXCJyZXNvbHZlZFwiIChpLmUuLCBmdWxmaWxsZWQpXG5cdFx0XHRcdFx0XHQvLyBzdGF0ZSA9IFwicmVqZWN0ZWRcIlxuXHRcdFx0XHRcdFx0c3RhdGUgPSBzdGF0ZVN0cmluZztcblx0XHRcdFx0XHR9LFxuXG5cdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfY2FsbGJhY2tzLmRpc2FibGVcblx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfY2FsbGJhY2tzLmRpc2FibGVcblx0XHRcdFx0XHR0dXBsZXNbIDMgLSBpIF1bIDIgXS5kaXNhYmxlLFxuXG5cdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuZGlzYWJsZVxuXHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5kaXNhYmxlXG5cdFx0XHRcdFx0dHVwbGVzWyAzIC0gaSBdWyAzIF0uZGlzYWJsZSxcblxuXHRcdFx0XHRcdC8vIHByb2dyZXNzX2NhbGxiYWNrcy5sb2NrXG5cdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDIgXS5sb2NrLFxuXG5cdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMubG9ja1xuXHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAzIF0ubG9ja1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBwcm9ncmVzc19oYW5kbGVycy5maXJlXG5cdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuZmlyZVxuXHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuZmlyZVxuXHRcdFx0bGlzdC5hZGQoIHR1cGxlWyAzIF0uZmlyZSApO1xuXG5cdFx0XHQvLyBkZWZlcnJlZC5ub3RpZnkgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQubm90aWZ5V2l0aCguLi4pIH1cblx0XHRcdC8vIGRlZmVycmVkLnJlc29sdmUgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQucmVzb2x2ZVdpdGgoLi4uKSB9XG5cdFx0XHQvLyBkZWZlcnJlZC5yZWplY3QgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQucmVqZWN0V2l0aCguLi4pIH1cblx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMCBdIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdKCB0aGlzID09PSBkZWZlcnJlZCA/IHVuZGVmaW5lZCA6IHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH07XG5cblx0XHRcdC8vIGRlZmVycmVkLm5vdGlmeVdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHQvLyBkZWZlcnJlZC5yZXNvbHZlV2l0aCA9IGxpc3QuZmlyZVdpdGhcblx0XHRcdC8vIGRlZmVycmVkLnJlamVjdFdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDAgXSArIFwiV2l0aFwiIF0gPSBsaXN0LmZpcmVXaXRoO1xuXHRcdH0gKTtcblxuXHRcdC8vIE1ha2UgdGhlIGRlZmVycmVkIGEgcHJvbWlzZVxuXHRcdHByb21pc2UucHJvbWlzZSggZGVmZXJyZWQgKTtcblxuXHRcdC8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnlcblx0XHRpZiAoIGZ1bmMgKSB7XG5cdFx0XHRmdW5jLmNhbGwoIGRlZmVycmVkLCBkZWZlcnJlZCApO1xuXHRcdH1cblxuXHRcdC8vIEFsbCBkb25lIVxuXHRcdHJldHVybiBkZWZlcnJlZDtcblx0fSxcblxuXHQvLyBEZWZlcnJlZCBoZWxwZXJcblx0d2hlbjogZnVuY3Rpb24oIHNpbmdsZVZhbHVlICkge1xuXHRcdHZhclxuXG5cdFx0XHQvLyBjb3VudCBvZiB1bmNvbXBsZXRlZCBzdWJvcmRpbmF0ZXNcblx0XHRcdHJlbWFpbmluZyA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cblx0XHRcdC8vIGNvdW50IG9mIHVucHJvY2Vzc2VkIGFyZ3VtZW50c1xuXHRcdFx0aSA9IHJlbWFpbmluZyxcblxuXHRcdFx0Ly8gc3Vib3JkaW5hdGUgZnVsZmlsbG1lbnQgZGF0YVxuXHRcdFx0cmVzb2x2ZUNvbnRleHRzID0gQXJyYXkoIGkgKSxcblx0XHRcdHJlc29sdmVWYWx1ZXMgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSxcblxuXHRcdFx0Ly8gdGhlIHByaW1hcnkgRGVmZXJyZWRcblx0XHRcdHByaW1hcnkgPSBqUXVlcnkuRGVmZXJyZWQoKSxcblxuXHRcdFx0Ly8gc3Vib3JkaW5hdGUgY2FsbGJhY2sgZmFjdG9yeVxuXHRcdFx0dXBkYXRlRnVuYyA9IGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0XHRcdHJlc29sdmVDb250ZXh0c1sgaSBdID0gdGhpcztcblx0XHRcdFx0XHRyZXNvbHZlVmFsdWVzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApIDogdmFsdWU7XG5cdFx0XHRcdFx0aWYgKCAhKCAtLXJlbWFpbmluZyApICkge1xuXHRcdFx0XHRcdFx0cHJpbWFyeS5yZXNvbHZlV2l0aCggcmVzb2x2ZUNvbnRleHRzLCByZXNvbHZlVmFsdWVzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fTtcblxuXHRcdC8vIFNpbmdsZS0gYW5kIGVtcHR5IGFyZ3VtZW50cyBhcmUgYWRvcHRlZCBsaWtlIFByb21pc2UucmVzb2x2ZVxuXHRcdGlmICggcmVtYWluaW5nIDw9IDEgKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCBzaW5nbGVWYWx1ZSwgcHJpbWFyeS5kb25lKCB1cGRhdGVGdW5jKCBpICkgKS5yZXNvbHZlLCBwcmltYXJ5LnJlamVjdCxcblx0XHRcdFx0IXJlbWFpbmluZyApO1xuXG5cdFx0XHQvLyBVc2UgLnRoZW4oKSB0byB1bndyYXAgc2Vjb25kYXJ5IHRoZW5hYmxlcyAoY2YuIGdoLTMwMDApXG5cdFx0XHRpZiAoIHByaW1hcnkuc3RhdGUoKSA9PT0gXCJwZW5kaW5nXCIgfHxcblx0XHRcdFx0aXNGdW5jdGlvbiggcmVzb2x2ZVZhbHVlc1sgaSBdICYmIHJlc29sdmVWYWx1ZXNbIGkgXS50aGVuICkgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHByaW1hcnkudGhlbigpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE11bHRpcGxlIGFyZ3VtZW50cyBhcmUgYWdncmVnYXRlZCBsaWtlIFByb21pc2UuYWxsIGFycmF5IGVsZW1lbnRzXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCByZXNvbHZlVmFsdWVzWyBpIF0sIHVwZGF0ZUZ1bmMoIGkgKSwgcHJpbWFyeS5yZWplY3QgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcHJpbWFyeS5wcm9taXNlKCk7XG5cdH1cbn0gKTtcblxuXG4vLyBUaGVzZSB1c3VhbGx5IGluZGljYXRlIGEgcHJvZ3JhbW1lciBtaXN0YWtlIGR1cmluZyBkZXZlbG9wbWVudCxcbi8vIHdhcm4gYWJvdXQgdGhlbSBBU0FQIHJhdGhlciB0aGFuIHN3YWxsb3dpbmcgdGhlbSBieSBkZWZhdWx0LlxudmFyIHJlcnJvck5hbWVzID0gL14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87XG5cbi8vIElmIGBqUXVlcnkuRGVmZXJyZWQuZ2V0RXJyb3JIb29rYCBpcyBkZWZpbmVkLCBgYXN5bmNFcnJvcmAgaXMgYW4gZXJyb3Jcbi8vIGNhcHR1cmVkIGJlZm9yZSB0aGUgYXN5bmMgYmFycmllciB0byBnZXQgdGhlIG9yaWdpbmFsIGVycm9yIGNhdXNlXG4vLyB3aGljaCBtYXkgb3RoZXJ3aXNlIGJlIGhpZGRlbi5cbmpRdWVyeS5EZWZlcnJlZC5leGNlcHRpb25Ib29rID0gZnVuY3Rpb24oIGVycm9yLCBhc3luY0Vycm9yICkge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDggLSA5IG9ubHlcblx0Ly8gQ29uc29sZSBleGlzdHMgd2hlbiBkZXYgdG9vbHMgYXJlIG9wZW4sIHdoaWNoIGNhbiBoYXBwZW4gYXQgYW55IHRpbWVcblx0aWYgKCB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS53YXJuICYmIGVycm9yICYmIHJlcnJvck5hbWVzLnRlc3QoIGVycm9yLm5hbWUgKSApIHtcblx0XHR3aW5kb3cuY29uc29sZS53YXJuKCBcImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246IFwiICsgZXJyb3IubWVzc2FnZSxcblx0XHRcdGVycm9yLnN0YWNrLCBhc3luY0Vycm9yICk7XG5cdH1cbn07XG5cblxuXG5cbmpRdWVyeS5yZWFkeUV4Y2VwdGlvbiA9IGZ1bmN0aW9uKCBlcnJvciApIHtcblx0d2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdHRocm93IGVycm9yO1xuXHR9ICk7XG59O1xuXG5cblxuXG4vLyBUaGUgZGVmZXJyZWQgdXNlZCBvbiBET00gcmVhZHlcbnZhciByZWFkeUxpc3QgPSBqUXVlcnkuRGVmZXJyZWQoKTtcblxualF1ZXJ5LmZuLnJlYWR5ID0gZnVuY3Rpb24oIGZuICkge1xuXG5cdHJlYWR5TGlzdFxuXHRcdC50aGVuKCBmbiApXG5cblx0XHQvLyBXcmFwIGpRdWVyeS5yZWFkeUV4Y2VwdGlvbiBpbiBhIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIGxvb2t1cFxuXHRcdC8vIGhhcHBlbnMgYXQgdGhlIHRpbWUgb2YgZXJyb3IgaGFuZGxpbmcgaW5zdGVhZCBvZiBjYWxsYmFja1xuXHRcdC8vIHJlZ2lzdHJhdGlvbi5cblx0XHQuY2F0Y2goIGZ1bmN0aW9uKCBlcnJvciApIHtcblx0XHRcdGpRdWVyeS5yZWFkeUV4Y2VwdGlvbiggZXJyb3IgKTtcblx0XHR9ICk7XG5cblx0cmV0dXJuIHRoaXM7XG59O1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy5cblx0aXNSZWFkeTogZmFsc2UsXG5cblx0Ly8gQSBjb3VudGVyIHRvIHRyYWNrIGhvdyBtYW55IGl0ZW1zIHRvIHdhaXQgZm9yIGJlZm9yZVxuXHQvLyB0aGUgcmVhZHkgZXZlbnQgZmlyZXMuIFNlZSB0cmFjLTY3ODFcblx0cmVhZHlXYWl0OiAxLFxuXG5cdC8vIEhhbmRsZSB3aGVuIHRoZSBET00gaXMgcmVhZHlcblx0cmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkge1xuXG5cdFx0Ly8gQWJvcnQgaWYgdGhlcmUgYXJlIHBlbmRpbmcgaG9sZHMgb3Igd2UncmUgYWxyZWFkeSByZWFkeVxuXHRcdGlmICggd2FpdCA9PT0gdHJ1ZSA/IC0talF1ZXJ5LnJlYWR5V2FpdCA6IGpRdWVyeS5pc1JlYWR5ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeVxuXHRcdGpRdWVyeS5pc1JlYWR5ID0gdHJ1ZTtcblxuXHRcdC8vIElmIGEgbm9ybWFsIERPTSBSZWFkeSBldmVudCBmaXJlZCwgZGVjcmVtZW50LCBhbmQgd2FpdCBpZiBuZWVkIGJlXG5cdFx0aWYgKCB3YWl0ICE9PSB0cnVlICYmIC0talF1ZXJ5LnJlYWR5V2FpdCA+IDAgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9ucyBib3VuZCwgdG8gZXhlY3V0ZVxuXHRcdHJlYWR5TGlzdC5yZXNvbHZlV2l0aCggZG9jdW1lbnQsIFsgalF1ZXJ5IF0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkucmVhZHkudGhlbiA9IHJlYWR5TGlzdC50aGVuO1xuXG4vLyBUaGUgcmVhZHkgZXZlbnQgaGFuZGxlciBhbmQgc2VsZiBjbGVhbnVwIG1ldGhvZFxuZnVuY3Rpb24gY29tcGxldGVkKCkge1xuXHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgY29tcGxldGVkICk7XG5cdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCBcImxvYWRcIiwgY29tcGxldGVkICk7XG5cdGpRdWVyeS5yZWFkeSgpO1xufVxuXG4vLyBDYXRjaCBjYXNlcyB3aGVyZSAkKGRvY3VtZW50KS5yZWFkeSgpIGlzIGNhbGxlZFxuLy8gYWZ0ZXIgdGhlIGJyb3dzZXIgZXZlbnQgaGFzIGFscmVhZHkgb2NjdXJyZWQuXG4vLyBTdXBwb3J0OiBJRSA8PTkgLSAxMCBvbmx5XG4vLyBPbGRlciBJRSBzb21ldGltZXMgc2lnbmFscyBcImludGVyYWN0aXZlXCIgdG9vIHNvb25cbmlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiIHx8XG5cdCggZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gXCJsb2FkaW5nXCIgJiYgIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCApICkge1xuXG5cdC8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeVxuXHR3aW5kb3cuc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5ICk7XG5cbn0gZWxzZSB7XG5cblx0Ly8gVXNlIHRoZSBoYW5keSBldmVudCBjYWxsYmFja1xuXHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgY29tcGxldGVkICk7XG5cblx0Ly8gQSBmYWxsYmFjayB0byB3aW5kb3cub25sb2FkLCB0aGF0IHdpbGwgYWx3YXlzIHdvcmtcblx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIFwibG9hZFwiLCBjb21wbGV0ZWQgKTtcbn1cblxuXG5cblxuLy8gTXVsdGlmdW5jdGlvbmFsIG1ldGhvZCB0byBnZXQgYW5kIHNldCB2YWx1ZXMgb2YgYSBjb2xsZWN0aW9uXG4vLyBUaGUgdmFsdWUvcyBjYW4gb3B0aW9uYWxseSBiZSBleGVjdXRlZCBpZiBpdCdzIGEgZnVuY3Rpb25cbnZhciBhY2Nlc3MgPSBmdW5jdGlvbiggZWxlbXMsIGZuLCBrZXksIHZhbHVlLCBjaGFpbmFibGUsIGVtcHR5R2V0LCByYXcgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSBlbGVtcy5sZW5ndGgsXG5cdFx0YnVsayA9IGtleSA9PSBudWxsO1xuXG5cdC8vIFNldHMgbWFueSB2YWx1ZXNcblx0aWYgKCB0b1R5cGUoIGtleSApID09PSBcIm9iamVjdFwiICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cdFx0Zm9yICggaSBpbiBrZXkgKSB7XG5cdFx0XHRhY2Nlc3MoIGVsZW1zLCBmbiwgaSwga2V5WyBpIF0sIHRydWUsIGVtcHR5R2V0LCByYXcgKTtcblx0XHR9XG5cblx0Ly8gU2V0cyBvbmUgdmFsdWVcblx0fSBlbHNlIGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHtcblx0XHRjaGFpbmFibGUgPSB0cnVlO1xuXG5cdFx0aWYgKCAhaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJhdyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBidWxrICkge1xuXG5cdFx0XHQvLyBCdWxrIG9wZXJhdGlvbnMgcnVuIGFnYWluc3QgdGhlIGVudGlyZSBzZXRcblx0XHRcdGlmICggcmF3ICkge1xuXHRcdFx0XHRmbi5jYWxsKCBlbGVtcywgdmFsdWUgKTtcblx0XHRcdFx0Zm4gPSBudWxsO1xuXG5cdFx0XHQvLyAuLi5leGNlcHQgd2hlbiBleGVjdXRpbmcgZnVuY3Rpb24gdmFsdWVzXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRidWxrID0gZm47XG5cdFx0XHRcdGZuID0gZnVuY3Rpb24oIGVsZW0sIF9rZXksIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiBidWxrLmNhbGwoIGpRdWVyeSggZWxlbSApLCB2YWx1ZSApO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0Zm4oXG5cdFx0XHRcdFx0ZWxlbXNbIGkgXSwga2V5LCByYXcgP1xuXHRcdFx0XHRcdFx0dmFsdWUgOlxuXHRcdFx0XHRcdFx0dmFsdWUuY2FsbCggZWxlbXNbIGkgXSwgaSwgZm4oIGVsZW1zWyBpIF0sIGtleSApIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIGNoYWluYWJsZSApIHtcblx0XHRyZXR1cm4gZWxlbXM7XG5cdH1cblxuXHQvLyBHZXRzXG5cdGlmICggYnVsayApIHtcblx0XHRyZXR1cm4gZm4uY2FsbCggZWxlbXMgKTtcblx0fVxuXG5cdHJldHVybiBsZW4gPyBmbiggZWxlbXNbIDAgXSwga2V5ICkgOiBlbXB0eUdldDtcbn07XG5cblxuLy8gTWF0Y2hlcyBkYXNoZWQgc3RyaW5nIGZvciBjYW1lbGl6aW5nXG52YXIgcm1zUHJlZml4ID0gL14tbXMtLyxcblx0cmRhc2hBbHBoYSA9IC8tKFthLXpdKS9nO1xuXG4vLyBVc2VkIGJ5IGNhbWVsQ2FzZSBhcyBjYWxsYmFjayB0byByZXBsYWNlKClcbmZ1bmN0aW9uIGZjYW1lbENhc2UoIF9hbGwsIGxldHRlciApIHtcblx0cmV0dXJuIGxldHRlci50b1VwcGVyQ2FzZSgpO1xufVxuXG4vLyBDb252ZXJ0IGRhc2hlZCB0byBjYW1lbENhc2U7IHVzZWQgYnkgdGhlIGNzcyBhbmQgZGF0YSBtb2R1bGVzXG4vLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG4vLyBNaWNyb3NvZnQgZm9yZ290IHRvIGh1bXAgdGhlaXIgdmVuZG9yIHByZWZpeCAodHJhYy05NTcyKVxuZnVuY3Rpb24gY2FtZWxDYXNlKCBzdHJpbmcgKSB7XG5cdHJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCBcIm1zLVwiICkucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApO1xufVxudmFyIGFjY2VwdERhdGEgPSBmdW5jdGlvbiggb3duZXIgKSB7XG5cblx0Ly8gQWNjZXB0cyBvbmx5OlxuXHQvLyAgLSBOb2RlXG5cdC8vICAgIC0gTm9kZS5FTEVNRU5UX05PREVcblx0Ly8gICAgLSBOb2RlLkRPQ1VNRU5UX05PREVcblx0Ly8gIC0gT2JqZWN0XG5cdC8vICAgIC0gQW55XG5cdHJldHVybiBvd25lci5ub2RlVHlwZSA9PT0gMSB8fCBvd25lci5ub2RlVHlwZSA9PT0gOSB8fCAhKCArb3duZXIubm9kZVR5cGUgKTtcbn07XG5cblxuXG5cbmZ1bmN0aW9uIERhdGEoKSB7XG5cdHRoaXMuZXhwYW5kbyA9IGpRdWVyeS5leHBhbmRvICsgRGF0YS51aWQrKztcbn1cblxuRGF0YS51aWQgPSAxO1xuXG5EYXRhLnByb3RvdHlwZSA9IHtcblxuXHRjYWNoZTogZnVuY3Rpb24oIG93bmVyICkge1xuXG5cdFx0Ly8gQ2hlY2sgaWYgdGhlIG93bmVyIG9iamVjdCBhbHJlYWR5IGhhcyBhIGNhY2hlXG5cdFx0dmFyIHZhbHVlID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0Ly8gSWYgbm90LCBjcmVhdGUgb25lXG5cdFx0aWYgKCAhdmFsdWUgKSB7XG5cdFx0XHR2YWx1ZSA9IHt9O1xuXG5cdFx0XHQvLyBXZSBjYW4gYWNjZXB0IGRhdGEgZm9yIG5vbi1lbGVtZW50IG5vZGVzIGluIG1vZGVybiBicm93c2Vycyxcblx0XHRcdC8vIGJ1dCB3ZSBzaG91bGQgbm90LCBzZWUgdHJhYy04MzM1LlxuXHRcdFx0Ly8gQWx3YXlzIHJldHVybiBhbiBlbXB0eSBvYmplY3QuXG5cdFx0XHRpZiAoIGFjY2VwdERhdGEoIG93bmVyICkgKSB7XG5cblx0XHRcdFx0Ly8gSWYgaXQgaXMgYSBub2RlIHVubGlrZWx5IHRvIGJlIHN0cmluZ2lmeS1lZCBvciBsb29wZWQgb3ZlclxuXHRcdFx0XHQvLyB1c2UgcGxhaW4gYXNzaWdubWVudFxuXHRcdFx0XHRpZiAoIG93bmVyLm5vZGVUeXBlICkge1xuXHRcdFx0XHRcdG93bmVyWyB0aGlzLmV4cGFuZG8gXSA9IHZhbHVlO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBzZWN1cmUgaXQgaW4gYSBub24tZW51bWVyYWJsZSBwcm9wZXJ0eVxuXHRcdFx0XHQvLyBjb25maWd1cmFibGUgbXVzdCBiZSB0cnVlIHRvIGFsbG93IHRoZSBwcm9wZXJ0eSB0byBiZVxuXHRcdFx0XHQvLyBkZWxldGVkIHdoZW4gZGF0YSBpcyByZW1vdmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBvd25lciwgdGhpcy5leHBhbmRvLCB7XG5cdFx0XHRcdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWVcblx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH0sXG5cdHNldDogZnVuY3Rpb24oIG93bmVyLCBkYXRhLCB2YWx1ZSApIHtcblx0XHR2YXIgcHJvcCxcblx0XHRcdGNhY2hlID0gdGhpcy5jYWNoZSggb3duZXIgKTtcblxuXHRcdC8vIEhhbmRsZTogWyBvd25lciwga2V5LCB2YWx1ZSBdIGFyZ3Ncblx0XHQvLyBBbHdheXMgdXNlIGNhbWVsQ2FzZSBrZXkgKGdoLTIyNTcpXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGNhY2hlWyBjYW1lbENhc2UoIGRhdGEgKSBdID0gdmFsdWU7XG5cblx0XHQvLyBIYW5kbGU6IFsgb3duZXIsIHsgcHJvcGVydGllcyB9IF0gYXJnc1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIENvcHkgdGhlIHByb3BlcnRpZXMgb25lLWJ5LW9uZSB0byB0aGUgY2FjaGUgb2JqZWN0XG5cdFx0XHRmb3IgKCBwcm9wIGluIGRhdGEgKSB7XG5cdFx0XHRcdGNhY2hlWyBjYW1lbENhc2UoIHByb3AgKSBdID0gZGF0YVsgcHJvcCBdO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gY2FjaGU7XG5cdH0sXG5cdGdldDogZnVuY3Rpb24oIG93bmVyLCBrZXkgKSB7XG5cdFx0cmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMuY2FjaGUoIG93bmVyICkgOlxuXG5cdFx0XHQvLyBBbHdheXMgdXNlIGNhbWVsQ2FzZSBrZXkgKGdoLTIyNTcpXG5cdFx0XHRvd25lclsgdGhpcy5leHBhbmRvIF0gJiYgb3duZXJbIHRoaXMuZXhwYW5kbyBdWyBjYW1lbENhc2UoIGtleSApIF07XG5cdH0sXG5cdGFjY2VzczogZnVuY3Rpb24oIG93bmVyLCBrZXksIHZhbHVlICkge1xuXG5cdFx0Ly8gSW4gY2FzZXMgd2hlcmUgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBObyBrZXkgd2FzIHNwZWNpZmllZFxuXHRcdC8vICAgMi4gQSBzdHJpbmcga2V5IHdhcyBzcGVjaWZpZWQsIGJ1dCBubyB2YWx1ZSBwcm92aWRlZFxuXHRcdC8vXG5cdFx0Ly8gVGFrZSB0aGUgXCJyZWFkXCIgcGF0aCBhbmQgYWxsb3cgdGhlIGdldCBtZXRob2QgdG8gZGV0ZXJtaW5lXG5cdFx0Ly8gd2hpY2ggdmFsdWUgdG8gcmV0dXJuLCByZXNwZWN0aXZlbHkgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBUaGUgZW50aXJlIGNhY2hlIG9iamVjdFxuXHRcdC8vICAgMi4gVGhlIGRhdGEgc3RvcmVkIGF0IHRoZSBrZXlcblx0XHQvL1xuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHxcblx0XHRcdFx0KCAoIGtleSAmJiB0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiICkgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCApICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXQoIG93bmVyLCBrZXkgKTtcblx0XHR9XG5cblx0XHQvLyBXaGVuIHRoZSBrZXkgaXMgbm90IGEgc3RyaW5nLCBvciBib3RoIGEga2V5IGFuZCB2YWx1ZVxuXHRcdC8vIGFyZSBzcGVjaWZpZWQsIHNldCBvciBleHRlbmQgKGV4aXN0aW5nIG9iamVjdHMpIHdpdGggZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBBbiBvYmplY3Qgb2YgcHJvcGVydGllc1xuXHRcdC8vICAgMi4gQSBrZXkgYW5kIHZhbHVlXG5cdFx0Ly9cblx0XHR0aGlzLnNldCggb3duZXIsIGtleSwgdmFsdWUgKTtcblxuXHRcdC8vIFNpbmNlIHRoZSBcInNldFwiIHBhdGggY2FuIGhhdmUgdHdvIHBvc3NpYmxlIGVudHJ5IHBvaW50c1xuXHRcdC8vIHJldHVybiB0aGUgZXhwZWN0ZWQgZGF0YSBiYXNlZCBvbiB3aGljaCBwYXRoIHdhcyB0YWtlblsqXVxuXHRcdHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBrZXk7XG5cdH0sXG5cdHJlbW92ZTogZnVuY3Rpb24oIG93bmVyLCBrZXkgKSB7XG5cdFx0dmFyIGksXG5cdFx0XHRjYWNoZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblxuXHRcdGlmICggY2FjaGUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIGtleSAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0IGFycmF5IG9yIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2Yga2V5c1xuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCBrZXkgKSApIHtcblxuXHRcdFx0XHQvLyBJZiBrZXkgaXMgYW4gYXJyYXkgb2Yga2V5cy4uLlxuXHRcdFx0XHQvLyBXZSBhbHdheXMgc2V0IGNhbWVsQ2FzZSBrZXlzLCBzbyByZW1vdmUgdGhhdC5cblx0XHRcdFx0a2V5ID0ga2V5Lm1hcCggY2FtZWxDYXNlICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRrZXkgPSBjYW1lbENhc2UoIGtleSApO1xuXG5cdFx0XHRcdC8vIElmIGEga2V5IHdpdGggdGhlIHNwYWNlcyBleGlzdHMsIHVzZSBpdC5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCBjcmVhdGUgYW4gYXJyYXkgYnkgbWF0Y2hpbmcgbm9uLXdoaXRlc3BhY2Vcblx0XHRcdFx0a2V5ID0ga2V5IGluIGNhY2hlID9cblx0XHRcdFx0XHRbIGtleSBdIDpcblx0XHRcdFx0XHQoIGtleS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdICk7XG5cdFx0XHR9XG5cblx0XHRcdGkgPSBrZXkubGVuZ3RoO1xuXG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlbIGkgXSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSB0aGUgZXhwYW5kbyBpZiB0aGVyZSdzIG5vIG1vcmUgZGF0YVxuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHwgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGNhY2hlICkgKSB7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDVcblx0XHRcdC8vIFdlYmtpdCAmIEJsaW5rIHBlcmZvcm1hbmNlIHN1ZmZlcnMgd2hlbiBkZWxldGluZyBwcm9wZXJ0aWVzXG5cdFx0XHQvLyBmcm9tIERPTSBub2Rlcywgc28gc2V0IHRvIHVuZGVmaW5lZCBpbnN0ZWFkXG5cdFx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0zNzg2MDcgKGJ1ZyByZXN0cmljdGVkKVxuXHRcdFx0aWYgKCBvd25lci5ub2RlVHlwZSApIHtcblx0XHRcdFx0b3duZXJbIHRoaXMuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGVsZXRlIG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBvd25lciApIHtcblx0XHR2YXIgY2FjaGUgPSBvd25lclsgdGhpcy5leHBhbmRvIF07XG5cdFx0cmV0dXJuIGNhY2hlICE9PSB1bmRlZmluZWQgJiYgIWpRdWVyeS5pc0VtcHR5T2JqZWN0KCBjYWNoZSApO1xuXHR9XG59O1xudmFyIGRhdGFQcml2ID0gbmV3IERhdGEoKTtcblxudmFyIGRhdGFVc2VyID0gbmV3IERhdGEoKTtcblxuXG5cbi8vXHRJbXBsZW1lbnRhdGlvbiBTdW1tYXJ5XG4vL1xuLy9cdDEuIEVuZm9yY2UgQVBJIHN1cmZhY2UgYW5kIHNlbWFudGljIGNvbXBhdGliaWxpdHkgd2l0aCAxLjkueCBicmFuY2hcbi8vXHQyLiBJbXByb3ZlIHRoZSBtb2R1bGUncyBtYWludGFpbmFiaWxpdHkgYnkgcmVkdWNpbmcgdGhlIHN0b3JhZ2Vcbi8vXHRcdHBhdGhzIHRvIGEgc2luZ2xlIG1lY2hhbmlzbS5cbi8vXHQzLiBVc2UgdGhlIHNhbWUgc2luZ2xlIG1lY2hhbmlzbSB0byBzdXBwb3J0IFwicHJpdmF0ZVwiIGFuZCBcInVzZXJcIiBkYXRhLlxuLy9cdDQuIF9OZXZlcl8gZXhwb3NlIFwicHJpdmF0ZVwiIGRhdGEgdG8gdXNlciBjb2RlIChUT0RPOiBEcm9wIF9kYXRhLCBfcmVtb3ZlRGF0YSlcbi8vXHQ1LiBBdm9pZCBleHBvc2luZyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9uIHVzZXIgb2JqZWN0cyAoZWcuIGV4cGFuZG8gcHJvcGVydGllcylcbi8vXHQ2LiBQcm92aWRlIGEgY2xlYXIgcGF0aCBmb3IgaW1wbGVtZW50YXRpb24gdXBncmFkZSB0byBXZWFrTWFwIGluIDIwMTRcblxudmFyIHJicmFjZSA9IC9eKD86XFx7W1xcd1xcV10qXFx9fFxcW1tcXHdcXFddKlxcXSkkLyxcblx0cm11bHRpRGFzaCA9IC9bQS1aXS9nO1xuXG5mdW5jdGlvbiBnZXREYXRhKCBkYXRhICkge1xuXHRpZiAoIGRhdGEgPT09IFwidHJ1ZVwiICkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKCBkYXRhID09PSBcImZhbHNlXCIgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aWYgKCBkYXRhID09PSBcIm51bGxcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIE9ubHkgY29udmVydCB0byBhIG51bWJlciBpZiBpdCBkb2Vzbid0IGNoYW5nZSB0aGUgc3RyaW5nXG5cdGlmICggZGF0YSA9PT0gK2RhdGEgKyBcIlwiICkge1xuXHRcdHJldHVybiArZGF0YTtcblx0fVxuXG5cdGlmICggcmJyYWNlLnRlc3QoIGRhdGEgKSApIHtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZSggZGF0YSApO1xuXHR9XG5cblx0cmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGRhdGFBdHRyKCBlbGVtLCBrZXksIGRhdGEgKSB7XG5cdHZhciBuYW1lO1xuXG5cdC8vIElmIG5vdGhpbmcgd2FzIGZvdW5kIGludGVybmFsbHksIHRyeSB0byBmZXRjaCBhbnlcblx0Ly8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlXG5cdGlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0bmFtZSA9IFwiZGF0YS1cIiArIGtleS5yZXBsYWNlKCBybXVsdGlEYXNoLCBcIi0kJlwiICkudG9Mb3dlckNhc2UoKTtcblx0XHRkYXRhID0gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTtcblxuXHRcdGlmICggdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRkYXRhID0gZ2V0RGF0YSggZGF0YSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7fVxuXG5cdFx0XHQvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXJcblx0XHRcdGRhdGFVc2VyLnNldCggZWxlbSwga2V5LCBkYXRhICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRhdGEgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBkYXRhO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkYXRhVXNlci5oYXNEYXRhKCBlbGVtICkgfHwgZGF0YVByaXYuaGFzRGF0YSggZWxlbSApO1xuXHR9LFxuXG5cdGRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhVXNlci5hY2Nlc3MoIGVsZW0sIG5hbWUsIGRhdGEgKTtcblx0fSxcblxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRkYXRhVXNlci5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fSxcblxuXHQvLyBUT0RPOiBOb3cgdGhhdCBhbGwgY2FsbHMgdG8gX2RhdGEgYW5kIF9yZW1vdmVEYXRhIGhhdmUgYmVlbiByZXBsYWNlZFxuXHQvLyB3aXRoIGRpcmVjdCBjYWxscyB0byBkYXRhUHJpdiBtZXRob2RzLCB0aGVzZSBjYW4gYmUgZGVwcmVjYXRlZC5cblx0X2RhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIG5hbWUsIGRhdGEgKTtcblx0fSxcblxuXHRfcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBuYW1lICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRkYXRhOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHtcblx0XHR2YXIgaSwgbmFtZSwgZGF0YSxcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRhdHRycyA9IGVsZW0gJiYgZWxlbS5hdHRyaWJ1dGVzO1xuXG5cdFx0Ly8gR2V0cyBhbGwgdmFsdWVzXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdGhpcy5sZW5ndGggKSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhVXNlci5nZXQoIGVsZW0gKTtcblxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgIWRhdGFQcml2LmdldCggZWxlbSwgXCJoYXNEYXRhQXR0cnNcIiApICkge1xuXHRcdFx0XHRcdGkgPSBhdHRycy5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdFx0XHRcdC8vIFRoZSBhdHRycyBlbGVtZW50cyBjYW4gYmUgbnVsbCAodHJhYy0xNDg5NClcblx0XHRcdFx0XHRcdGlmICggYXR0cnNbIGkgXSApIHtcblx0XHRcdFx0XHRcdFx0bmFtZSA9IGF0dHJzWyBpIF0ubmFtZTtcblx0XHRcdFx0XHRcdFx0aWYgKCBuYW1lLmluZGV4T2YoIFwiZGF0YS1cIiApID09PSAwICkge1xuXHRcdFx0XHRcdFx0XHRcdG5hbWUgPSBjYW1lbENhc2UoIG5hbWUuc2xpY2UoIDUgKSApO1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBdHRyKCBlbGVtLCBuYW1lLCBkYXRhWyBuYW1lIF0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkYXRhUHJpdi5zZXQoIGVsZW0sIFwiaGFzRGF0YUF0dHJzXCIsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGF0YTtcblx0XHR9XG5cblx0XHQvLyBTZXRzIG11bHRpcGxlIHZhbHVlc1xuXHRcdGlmICggdHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRkYXRhVXNlci5zZXQoIHRoaXMsIGtleSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHZhciBkYXRhO1xuXG5cdFx0XHQvLyBUaGUgY2FsbGluZyBqUXVlcnkgb2JqZWN0IChlbGVtZW50IG1hdGNoZXMpIGlzIG5vdCBlbXB0eVxuXHRcdFx0Ly8gKGFuZCB0aGVyZWZvcmUgaGFzIGFuIGVsZW1lbnQgYXBwZWFycyBhdCB0aGlzWyAwIF0pIGFuZCB0aGVcblx0XHRcdC8vIGB2YWx1ZWAgcGFyYW1ldGVyIHdhcyBub3QgdW5kZWZpbmVkLiBBbiBlbXB0eSBqUXVlcnkgb2JqZWN0XG5cdFx0XHQvLyB3aWxsIHJlc3VsdCBpbiBgdW5kZWZpbmVkYCBmb3IgZWxlbSA9IHRoaXNbIDAgXSB3aGljaCB3aWxsXG5cdFx0XHQvLyB0aHJvdyBhbiBleGNlcHRpb24gaWYgYW4gYXR0ZW1wdCB0byByZWFkIGEgZGF0YSBjYWNoZSBpcyBtYWRlLlxuXHRcdFx0aWYgKCBlbGVtICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBnZXQgZGF0YSBmcm9tIHRoZSBjYWNoZVxuXHRcdFx0XHQvLyBUaGUga2V5IHdpbGwgYWx3YXlzIGJlIGNhbWVsQ2FzZWQgaW4gRGF0YVxuXHRcdFx0XHRkYXRhID0gZGF0YVVzZXIuZ2V0KCBlbGVtLCBrZXkgKTtcblx0XHRcdFx0aWYgKCBkYXRhICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBdHRlbXB0IHRvIFwiZGlzY292ZXJcIiB0aGUgZGF0YSBpblxuXHRcdFx0XHQvLyBIVE1MNSBjdXN0b20gZGF0YS0qIGF0dHJzXG5cdFx0XHRcdGRhdGEgPSBkYXRhQXR0ciggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gV2UgdHJpZWQgcmVhbGx5IGhhcmQsIGJ1dCB0aGUgZGF0YSBkb2Vzbid0IGV4aXN0LlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCB0aGUgZGF0YS4uLlxuXHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvLyBXZSBhbHdheXMgc3RvcmUgdGhlIGNhbWVsQ2FzZWQga2V5XG5cdFx0XHRcdGRhdGFVc2VyLnNldCggdGhpcywga2V5LCB2YWx1ZSApO1xuXHRcdFx0fSApO1xuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSwgbnVsbCwgdHJ1ZSApO1xuXHR9LFxuXG5cdHJlbW92ZURhdGE6IGZ1bmN0aW9uKCBrZXkgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRkYXRhVXNlci5yZW1vdmUoIHRoaXMsIGtleSApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5cbmpRdWVyeS5leHRlbmQoIHtcblx0cXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBxdWV1ZTtcblxuXHRcdGlmICggZWxlbSApIHtcblx0XHRcdHR5cGUgPSAoIHR5cGUgfHwgXCJmeFwiICkgKyBcInF1ZXVlXCI7XG5cdFx0XHRxdWV1ZSA9IGRhdGFQcml2LmdldCggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHQvLyBTcGVlZCB1cCBkZXF1ZXVlIGJ5IGdldHRpbmcgb3V0IHF1aWNrbHkgaWYgdGhpcyBpcyBqdXN0IGEgbG9va3VwXG5cdFx0XHRpZiAoIGRhdGEgKSB7XG5cdFx0XHRcdGlmICggIXF1ZXVlIHx8IEFycmF5LmlzQXJyYXkoIGRhdGEgKSApIHtcblx0XHRcdFx0XHRxdWV1ZSA9IGRhdGFQcml2LmFjY2VzcyggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VBcnJheSggZGF0YSApICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cXVldWUucHVzaCggZGF0YSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcXVldWUgfHwgW107XG5cdFx0fVxuXHR9LFxuXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggZWxlbSwgdHlwZSApLFxuXHRcdFx0c3RhcnRMZW5ndGggPSBxdWV1ZS5sZW5ndGgsXG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCksXG5cdFx0XHRob29rcyA9IGpRdWVyeS5fcXVldWVIb29rcyggZWxlbSwgdHlwZSApLFxuXHRcdFx0bmV4dCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggZWxlbSwgdHlwZSApO1xuXHRcdFx0fTtcblxuXHRcdC8vIElmIHRoZSBmeCBxdWV1ZSBpcyBkZXF1ZXVlZCwgYWx3YXlzIHJlbW92ZSB0aGUgcHJvZ3Jlc3Mgc2VudGluZWxcblx0XHRpZiAoIGZuID09PSBcImlucHJvZ3Jlc3NcIiApIHtcblx0XHRcdGZuID0gcXVldWUuc2hpZnQoKTtcblx0XHRcdHN0YXJ0TGVuZ3RoLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBmbiApIHtcblxuXHRcdFx0Ly8gQWRkIGEgcHJvZ3Jlc3Mgc2VudGluZWwgdG8gcHJldmVudCB0aGUgZnggcXVldWUgZnJvbSBiZWluZ1xuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBkZXF1ZXVlZFxuXHRcdFx0aWYgKCB0eXBlID09PSBcImZ4XCIgKSB7XG5cdFx0XHRcdHF1ZXVlLnVuc2hpZnQoIFwiaW5wcm9ncmVzc1wiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENsZWFyIHVwIHRoZSBsYXN0IHF1ZXVlIHN0b3AgZnVuY3Rpb25cblx0XHRcdGRlbGV0ZSBob29rcy5zdG9wO1xuXHRcdFx0Zm4uY2FsbCggZWxlbSwgbmV4dCwgaG9va3MgKTtcblx0XHR9XG5cblx0XHRpZiAoICFzdGFydExlbmd0aCAmJiBob29rcyApIHtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUoKTtcblx0XHR9XG5cdH0sXG5cblx0Ly8gTm90IHB1YmxpYyAtIGdlbmVyYXRlIGEgcXVldWVIb29rcyBvYmplY3QsIG9yIHJldHVybiB0aGUgY3VycmVudCBvbmVcblx0X3F1ZXVlSG9va3M6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHZhciBrZXkgPSB0eXBlICsgXCJxdWV1ZUhvb2tzXCI7XG5cdFx0cmV0dXJuIGRhdGFQcml2LmdldCggZWxlbSwga2V5ICkgfHwgZGF0YVByaXYuYWNjZXNzKCBlbGVtLCBrZXksIHtcblx0XHRcdGVtcHR5OiBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKS5hZGQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFsgdHlwZSArIFwicXVldWVcIiwga2V5IF0gKTtcblx0XHRcdH0gKVxuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHF1ZXVlOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgc2V0dGVyID0gMjtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRkYXRhID0gdHlwZTtcblx0XHRcdHR5cGUgPSBcImZ4XCI7XG5cdFx0XHRzZXR0ZXItLTtcblx0XHR9XG5cblx0XHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggPCBzZXR0ZXIgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWyAwIF0sIHR5cGUgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZGF0YSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMgOlxuXHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIHF1ZXVlID0galF1ZXJ5LnF1ZXVlKCB0aGlzLCB0eXBlLCBkYXRhICk7XG5cblx0XHRcdFx0Ly8gRW5zdXJlIGEgaG9va3MgZm9yIHRoaXMgcXVldWVcblx0XHRcdFx0alF1ZXJ5Ll9xdWV1ZUhvb2tzKCB0aGlzLCB0eXBlICk7XG5cblx0XHRcdFx0aWYgKCB0eXBlID09PSBcImZ4XCIgJiYgcXVldWVbIDAgXSAhPT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHR9LFxuXHRkZXF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0fSApO1xuXHR9LFxuXHRjbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdH0sXG5cblx0Ly8gR2V0IGEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHF1ZXVlcyBvZiBhIGNlcnRhaW4gdHlwZVxuXHQvLyBhcmUgZW1wdGllZCAoZnggaXMgdGhlIHR5cGUgYnkgZGVmYXVsdClcblx0cHJvbWlzZTogZnVuY3Rpb24oIHR5cGUsIG9iaiApIHtcblx0XHR2YXIgdG1wLFxuXHRcdFx0Y291bnQgPSAxLFxuXHRcdFx0ZGVmZXIgPSBqUXVlcnkuRGVmZXJyZWQoKSxcblx0XHRcdGVsZW1lbnRzID0gdGhpcyxcblx0XHRcdGkgPSB0aGlzLmxlbmd0aCxcblx0XHRcdHJlc29sdmUgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAhKCAtLWNvdW50ICkgKSB7XG5cdFx0XHRcdFx0ZGVmZXIucmVzb2x2ZVdpdGgoIGVsZW1lbnRzLCBbIGVsZW1lbnRzIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRvYmogPSB0eXBlO1xuXHRcdFx0dHlwZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHR0bXAgPSBkYXRhUHJpdi5nZXQoIGVsZW1lbnRzWyBpIF0sIHR5cGUgKyBcInF1ZXVlSG9va3NcIiApO1xuXHRcdFx0aWYgKCB0bXAgJiYgdG1wLmVtcHR5ICkge1xuXHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0XHR0bXAuZW1wdHkuYWRkKCByZXNvbHZlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJlc29sdmUoKTtcblx0XHRyZXR1cm4gZGVmZXIucHJvbWlzZSggb2JqICk7XG5cdH1cbn0gKTtcbnZhciBwbnVtID0gKCAvWystXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVsrLV0/XFxkK3wpLyApLnNvdXJjZTtcblxudmFyIHJjc3NOdW0gPSBuZXcgUmVnRXhwKCBcIl4oPzooWystXSk9fCkoXCIgKyBwbnVtICsgXCIpKFthLXolXSopJFwiLCBcImlcIiApO1xuXG5cbnZhciBjc3NFeHBhbmQgPSBbIFwiVG9wXCIsIFwiUmlnaHRcIiwgXCJCb3R0b21cIiwgXCJMZWZ0XCIgXTtcblxudmFyIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuXG5cblx0dmFyIGlzQXR0YWNoZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApO1xuXHRcdH0sXG5cdFx0Y29tcG9zZWQgPSB7IGNvbXBvc2VkOiB0cnVlIH07XG5cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4KywgaU9TIDEwLjAgLSAxMC4yIG9ubHlcblx0Ly8gQ2hlY2sgYXR0YWNobWVudCBhY3Jvc3Mgc2hhZG93IERPTSBib3VuZGFyaWVzIHdoZW4gcG9zc2libGUgKGdoLTM1MDQpXG5cdC8vIFN1cHBvcnQ6IGlPUyAxMC4wLTEwLjIgb25seVxuXHQvLyBFYXJseSBpT1MgMTAgdmVyc2lvbnMgc3VwcG9ydCBgYXR0YWNoU2hhZG93YCBidXQgbm90IGBnZXRSb290Tm9kZWAsXG5cdC8vIGxlYWRpbmcgdG8gZXJyb3JzLiBXZSBuZWVkIHRvIGNoZWNrIGZvciBgZ2V0Um9vdE5vZGVgLlxuXHRpZiAoIGRvY3VtZW50RWxlbWVudC5nZXRSb290Tm9kZSApIHtcblx0XHRpc0F0dGFjaGVkID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKSB8fFxuXHRcdFx0XHRlbGVtLmdldFJvb3ROb2RlKCBjb21wb3NlZCApID09PSBlbGVtLm93bmVyRG9jdW1lbnQ7XG5cdFx0fTtcblx0fVxudmFyIGlzSGlkZGVuV2l0aGluVHJlZSA9IGZ1bmN0aW9uKCBlbGVtLCBlbCApIHtcblxuXHRcdC8vIGlzSGlkZGVuV2l0aGluVHJlZSBtaWdodCBiZSBjYWxsZWQgZnJvbSBqUXVlcnkjZmlsdGVyIGZ1bmN0aW9uO1xuXHRcdC8vIGluIHRoYXQgY2FzZSwgZWxlbWVudCB3aWxsIGJlIHNlY29uZCBhcmd1bWVudFxuXHRcdGVsZW0gPSBlbCB8fCBlbGVtO1xuXG5cdFx0Ly8gSW5saW5lIHN0eWxlIHRydW1wcyBhbGxcblx0XHRyZXR1cm4gZWxlbS5zdHlsZS5kaXNwbGF5ID09PSBcIm5vbmVcIiB8fFxuXHRcdFx0ZWxlbS5zdHlsZS5kaXNwbGF5ID09PSBcIlwiICYmXG5cblx0XHRcdC8vIE90aGVyd2lzZSwgY2hlY2sgY29tcHV0ZWQgc3R5bGVcblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD00MyAtIDQ1XG5cdFx0XHQvLyBEaXNjb25uZWN0ZWQgZWxlbWVudHMgY2FuIGhhdmUgY29tcHV0ZWQgZGlzcGxheTogbm9uZSwgc28gZmlyc3QgY29uZmlybSB0aGF0IGVsZW0gaXNcblx0XHRcdC8vIGluIHRoZSBkb2N1bWVudC5cblx0XHRcdGlzQXR0YWNoZWQoIGVsZW0gKSAmJlxuXG5cdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApID09PSBcIm5vbmVcIjtcblx0fTtcblxuXG5cbmZ1bmN0aW9uIGFkanVzdENTUyggZWxlbSwgcHJvcCwgdmFsdWVQYXJ0cywgdHdlZW4gKSB7XG5cdHZhciBhZGp1c3RlZCwgc2NhbGUsXG5cdFx0bWF4SXRlcmF0aW9ucyA9IDIwLFxuXHRcdGN1cnJlbnRWYWx1ZSA9IHR3ZWVuID9cblx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gdHdlZW4uY3VyKCk7XG5cdFx0XHR9IDpcblx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4galF1ZXJ5LmNzcyggZWxlbSwgcHJvcCwgXCJcIiApO1xuXHRcdFx0fSxcblx0XHRpbml0aWFsID0gY3VycmVudFZhbHVlKCksXG5cdFx0dW5pdCA9IHZhbHVlUGFydHMgJiYgdmFsdWVQYXJ0c1sgMyBdIHx8ICggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdID8gXCJcIiA6IFwicHhcIiApLFxuXG5cdFx0Ly8gU3RhcnRpbmcgdmFsdWUgY29tcHV0YXRpb24gaXMgcmVxdWlyZWQgZm9yIHBvdGVudGlhbCB1bml0IG1pc21hdGNoZXNcblx0XHRpbml0aWFsSW5Vbml0ID0gZWxlbS5ub2RlVHlwZSAmJlxuXHRcdFx0KCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gfHwgdW5pdCAhPT0gXCJweFwiICYmICtpbml0aWFsICkgJiZcblx0XHRcdHJjc3NOdW0uZXhlYyggalF1ZXJ5LmNzcyggZWxlbSwgcHJvcCApICk7XG5cblx0aWYgKCBpbml0aWFsSW5Vbml0ICYmIGluaXRpYWxJblVuaXRbIDMgXSAhPT0gdW5pdCApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD01NFxuXHRcdC8vIEhhbHZlIHRoZSBpdGVyYXRpb24gdGFyZ2V0IHZhbHVlIHRvIHByZXZlbnQgaW50ZXJmZXJlbmNlIGZyb20gQ1NTIHVwcGVyIGJvdW5kcyAoZ2gtMjE0NClcblx0XHRpbml0aWFsID0gaW5pdGlhbCAvIDI7XG5cblx0XHQvLyBUcnVzdCB1bml0cyByZXBvcnRlZCBieSBqUXVlcnkuY3NzXG5cdFx0dW5pdCA9IHVuaXQgfHwgaW5pdGlhbEluVW5pdFsgMyBdO1xuXG5cdFx0Ly8gSXRlcmF0aXZlbHkgYXBwcm94aW1hdGUgZnJvbSBhIG5vbnplcm8gc3RhcnRpbmcgcG9pbnRcblx0XHRpbml0aWFsSW5Vbml0ID0gK2luaXRpYWwgfHwgMTtcblxuXHRcdHdoaWxlICggbWF4SXRlcmF0aW9ucy0tICkge1xuXG5cdFx0XHQvLyBFdmFsdWF0ZSBhbmQgdXBkYXRlIG91ciBiZXN0IGd1ZXNzIChkb3VibGluZyBndWVzc2VzIHRoYXQgemVybyBvdXQpLlxuXHRcdFx0Ly8gRmluaXNoIGlmIHRoZSBzY2FsZSBlcXVhbHMgb3IgY3Jvc3NlcyAxIChtYWtpbmcgdGhlIG9sZCpuZXcgcHJvZHVjdCBub24tcG9zaXRpdmUpLlxuXHRcdFx0alF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wLCBpbml0aWFsSW5Vbml0ICsgdW5pdCApO1xuXHRcdFx0aWYgKCAoIDEgLSBzY2FsZSApICogKCAxIC0gKCBzY2FsZSA9IGN1cnJlbnRWYWx1ZSgpIC8gaW5pdGlhbCB8fCAwLjUgKSApIDw9IDAgKSB7XG5cdFx0XHRcdG1heEl0ZXJhdGlvbnMgPSAwO1xuXHRcdFx0fVxuXHRcdFx0aW5pdGlhbEluVW5pdCA9IGluaXRpYWxJblVuaXQgLyBzY2FsZTtcblxuXHRcdH1cblxuXHRcdGluaXRpYWxJblVuaXQgPSBpbml0aWFsSW5Vbml0ICogMjtcblx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIGluaXRpYWxJblVuaXQgKyB1bml0ICk7XG5cblx0XHQvLyBNYWtlIHN1cmUgd2UgdXBkYXRlIHRoZSB0d2VlbiBwcm9wZXJ0aWVzIGxhdGVyIG9uXG5cdFx0dmFsdWVQYXJ0cyA9IHZhbHVlUGFydHMgfHwgW107XG5cdH1cblxuXHRpZiAoIHZhbHVlUGFydHMgKSB7XG5cdFx0aW5pdGlhbEluVW5pdCA9ICtpbml0aWFsSW5Vbml0IHx8ICtpbml0aWFsIHx8IDA7XG5cblx0XHQvLyBBcHBseSByZWxhdGl2ZSBvZmZzZXQgKCs9Ly09KSBpZiBzcGVjaWZpZWRcblx0XHRhZGp1c3RlZCA9IHZhbHVlUGFydHNbIDEgXSA/XG5cdFx0XHRpbml0aWFsSW5Vbml0ICsgKCB2YWx1ZVBhcnRzWyAxIF0gKyAxICkgKiB2YWx1ZVBhcnRzWyAyIF0gOlxuXHRcdFx0K3ZhbHVlUGFydHNbIDIgXTtcblx0XHRpZiAoIHR3ZWVuICkge1xuXHRcdFx0dHdlZW4udW5pdCA9IHVuaXQ7XG5cdFx0XHR0d2Vlbi5zdGFydCA9IGluaXRpYWxJblVuaXQ7XG5cdFx0XHR0d2Vlbi5lbmQgPSBhZGp1c3RlZDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGFkanVzdGVkO1xufVxuXG5cbnZhciBkZWZhdWx0RGlzcGxheU1hcCA9IHt9O1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0RGlzcGxheSggZWxlbSApIHtcblx0dmFyIHRlbXAsXG5cdFx0ZG9jID0gZWxlbS5vd25lckRvY3VtZW50LFxuXHRcdG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZSxcblx0XHRkaXNwbGF5ID0gZGVmYXVsdERpc3BsYXlNYXBbIG5vZGVOYW1lIF07XG5cblx0aWYgKCBkaXNwbGF5ICkge1xuXHRcdHJldHVybiBkaXNwbGF5O1xuXHR9XG5cblx0dGVtcCA9IGRvYy5ib2R5LmFwcGVuZENoaWxkKCBkb2MuY3JlYXRlRWxlbWVudCggbm9kZU5hbWUgKSApO1xuXHRkaXNwbGF5ID0galF1ZXJ5LmNzcyggdGVtcCwgXCJkaXNwbGF5XCIgKTtcblxuXHR0ZW1wLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRlbXAgKTtcblxuXHRpZiAoIGRpc3BsYXkgPT09IFwibm9uZVwiICkge1xuXHRcdGRpc3BsYXkgPSBcImJsb2NrXCI7XG5cdH1cblx0ZGVmYXVsdERpc3BsYXlNYXBbIG5vZGVOYW1lIF0gPSBkaXNwbGF5O1xuXG5cdHJldHVybiBkaXNwbGF5O1xufVxuXG5mdW5jdGlvbiBzaG93SGlkZSggZWxlbWVudHMsIHNob3cgKSB7XG5cdHZhciBkaXNwbGF5LCBlbGVtLFxuXHRcdHZhbHVlcyA9IFtdLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cblx0Ly8gRGV0ZXJtaW5lIG5ldyBkaXNwbGF5IHZhbHVlIGZvciBlbGVtZW50cyB0aGF0IG5lZWQgdG8gY2hhbmdlXG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0ZWxlbSA9IGVsZW1lbnRzWyBpbmRleCBdO1xuXHRcdGlmICggIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRkaXNwbGF5ID0gZWxlbS5zdHlsZS5kaXNwbGF5O1xuXHRcdGlmICggc2hvdyApIHtcblxuXHRcdFx0Ly8gU2luY2Ugd2UgZm9yY2UgdmlzaWJpbGl0eSB1cG9uIGNhc2NhZGUtaGlkZGVuIGVsZW1lbnRzLCBhbiBpbW1lZGlhdGUgKGFuZCBzbG93KVxuXHRcdFx0Ly8gY2hlY2sgaXMgcmVxdWlyZWQgaW4gdGhpcyBmaXJzdCBsb29wIHVubGVzcyB3ZSBoYXZlIGEgbm9uZW1wdHkgZGlzcGxheSB2YWx1ZSAoZWl0aGVyXG5cdFx0XHQvLyBpbmxpbmUgb3IgYWJvdXQtdG8tYmUtcmVzdG9yZWQpXG5cdFx0XHRpZiAoIGRpc3BsYXkgPT09IFwibm9uZVwiICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBkYXRhUHJpdi5nZXQoIGVsZW0sIFwiZGlzcGxheVwiICkgfHwgbnVsbDtcblx0XHRcdFx0aWYgKCAhdmFsdWVzWyBpbmRleCBdICkge1xuXHRcdFx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmICggZWxlbS5zdHlsZS5kaXNwbGF5ID09PSBcIlwiICYmIGlzSGlkZGVuV2l0aGluVHJlZSggZWxlbSApICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBnZXREZWZhdWx0RGlzcGxheSggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGRpc3BsYXkgIT09IFwibm9uZVwiICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBcIm5vbmVcIjtcblxuXHRcdFx0XHQvLyBSZW1lbWJlciB3aGF0IHdlJ3JlIG92ZXJ3cml0aW5nXG5cdFx0XHRcdGRhdGFQcml2LnNldCggZWxlbSwgXCJkaXNwbGF5XCIsIGRpc3BsYXkgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBTZXQgdGhlIGRpc3BsYXkgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AgdG8gYXZvaWQgY29uc3RhbnQgcmVmbG93XG5cdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCB2YWx1ZXNbIGluZGV4IF0gIT0gbnVsbCApIHtcblx0XHRcdGVsZW1lbnRzWyBpbmRleCBdLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZXNbIGluZGV4IF07XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVsZW1lbnRzO1xufVxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBzaG93SGlkZSggdGhpcywgdHJ1ZSApO1xuXHR9LFxuXHRoaWRlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2hvd0hpZGUoIHRoaXMgKTtcblx0fSxcblx0dG9nZ2xlOiBmdW5jdGlvbiggc3RhdGUgKSB7XG5cdFx0aWYgKCB0eXBlb2Ygc3RhdGUgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdFx0cmV0dXJuIHN0YXRlID8gdGhpcy5zaG93KCkgOiB0aGlzLmhpZGUoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggaXNIaWRkZW5XaXRoaW5UcmVlKCB0aGlzICkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnNob3coKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cbn0gKTtcbnZhciByY2hlY2thYmxlVHlwZSA9ICggL14oPzpjaGVja2JveHxyYWRpbykkL2kgKTtcblxudmFyIHJ0YWdOYW1lID0gKCAvPChbYS16XVteXFwvXFwwPlxceDIwXFx0XFxyXFxuXFxmXSopL2kgKTtcblxudmFyIHJzY3JpcHRUeXBlID0gKCAvXiR8Xm1vZHVsZSR8XFwvKD86amF2YXxlY21hKXNjcmlwdC9pICk7XG5cblxuXG4oIGZ1bmN0aW9uKCkge1xuXHR2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0ZGl2ID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSApLFxuXHRcdGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seVxuXHQvLyBDaGVjayBzdGF0ZSBsb3N0IGlmIHRoZSBuYW1lIGlzIHNldCAodHJhYy0xMTIxNylcblx0Ly8gU3VwcG9ydDogV2luZG93cyBXZWIgQXBwcyAoV1dBKVxuXHQvLyBgbmFtZWAgYW5kIGB0eXBlYCBtdXN0IHVzZSAuc2V0QXR0cmlidXRlIGZvciBXV0EgKHRyYWMtMTQ5MDEpXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwicmFkaW9cIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwiY2hlY2tlZFwiLCBcImNoZWNrZWRcIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcInRcIiApO1xuXG5cdGRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4xIG9ubHlcblx0Ly8gT2xkZXIgV2ViS2l0IGRvZXNuJ3QgY2xvbmUgY2hlY2tlZCBzdGF0ZSBjb3JyZWN0bHkgaW4gZnJhZ21lbnRzXG5cdHN1cHBvcnQuY2hlY2tDbG9uZSA9IGRpdi5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gTWFrZSBzdXJlIHRleHRhcmVhIChhbmQgY2hlY2tib3gpIGRlZmF1bHRWYWx1ZSBpcyBwcm9wZXJseSBjbG9uZWRcblx0ZGl2LmlubmVySFRNTCA9IFwiPHRleHRhcmVhPng8L3RleHRhcmVhPlwiO1xuXHRzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gISFkaXYuY2xvbmVOb2RlKCB0cnVlICkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHQvLyBJRSA8PTkgcmVwbGFjZXMgPG9wdGlvbj4gdGFncyB3aXRoIHRoZWlyIGNvbnRlbnRzIHdoZW4gaW5zZXJ0ZWQgb3V0c2lkZSBvZlxuXHQvLyB0aGUgc2VsZWN0IGVsZW1lbnQuXG5cdGRpdi5pbm5lckhUTUwgPSBcIjxvcHRpb24+PC9vcHRpb24+XCI7XG5cdHN1cHBvcnQub3B0aW9uID0gISFkaXYubGFzdENoaWxkO1xufSApKCk7XG5cblxuLy8gV2UgaGF2ZSB0byBjbG9zZSB0aGVzZSB0YWdzIHRvIHN1cHBvcnQgWEhUTUwgKHRyYWMtMTMyMDApXG52YXIgd3JhcE1hcCA9IHtcblxuXHQvLyBYSFRNTCBwYXJzZXJzIGRvIG5vdCBtYWdpY2FsbHkgaW5zZXJ0IGVsZW1lbnRzIGluIHRoZVxuXHQvLyBzYW1lIHdheSB0aGF0IHRhZyBzb3VwIHBhcnNlcnMgZG8uIFNvIHdlIGNhbm5vdCBzaG9ydGVuXG5cdC8vIHRoaXMgYnkgb21pdHRpbmcgPHRib2R5PiBvciBvdGhlciByZXF1aXJlZCBlbGVtZW50cy5cblx0dGhlYWQ6IFsgMSwgXCI8dGFibGU+XCIsIFwiPC90YWJsZT5cIiBdLFxuXHRjb2w6IFsgMiwgXCI8dGFibGU+PGNvbGdyb3VwPlwiLCBcIjwvY29sZ3JvdXA+PC90YWJsZT5cIiBdLFxuXHR0cjogWyAyLCBcIjx0YWJsZT48dGJvZHk+XCIsIFwiPC90Ym9keT48L3RhYmxlPlwiIF0sXG5cdHRkOiBbIDMsIFwiPHRhYmxlPjx0Ym9keT48dHI+XCIsIFwiPC90cj48L3Rib2R5PjwvdGFibGU+XCIgXSxcblxuXHRfZGVmYXVsdDogWyAwLCBcIlwiLCBcIlwiIF1cbn07XG5cbndyYXBNYXAudGJvZHkgPSB3cmFwTWFwLnRmb290ID0gd3JhcE1hcC5jb2xncm91cCA9IHdyYXBNYXAuY2FwdGlvbiA9IHdyYXBNYXAudGhlYWQ7XG53cmFwTWFwLnRoID0gd3JhcE1hcC50ZDtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbmlmICggIXN1cHBvcnQub3B0aW9uICkge1xuXHR3cmFwTWFwLm9wdGdyb3VwID0gd3JhcE1hcC5vcHRpb24gPSBbIDEsIFwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPlwiLCBcIjwvc2VsZWN0PlwiIF07XG59XG5cblxuZnVuY3Rpb24gZ2V0QWxsKCBjb250ZXh0LCB0YWcgKSB7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHQvLyBVc2UgdHlwZW9mIHRvIGF2b2lkIHplcm8tYXJndW1lbnQgbWV0aG9kIGludm9jYXRpb24gb24gaG9zdCBvYmplY3RzICh0cmFjLTE1MTUxKVxuXHR2YXIgcmV0O1xuXG5cdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0cmV0ID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnIHx8IFwiKlwiICk7XG5cblx0fSBlbHNlIGlmICggdHlwZW9mIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRyZXQgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIHRhZyB8fCBcIipcIiApO1xuXG5cdH0gZWxzZSB7XG5cdFx0cmV0ID0gW107XG5cdH1cblxuXHRpZiAoIHRhZyA9PT0gdW5kZWZpbmVkIHx8IHRhZyAmJiBub2RlTmFtZSggY29udGV4dCwgdGFnICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5tZXJnZSggWyBjb250ZXh0IF0sIHJldCApO1xuXHR9XG5cblx0cmV0dXJuIHJldDtcbn1cblxuXG4vLyBNYXJrIHNjcmlwdHMgYXMgaGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWRcbmZ1bmN0aW9uIHNldEdsb2JhbEV2YWwoIGVsZW1zLCByZWZFbGVtZW50cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGwgPSBlbGVtcy5sZW5ndGg7XG5cblx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdGRhdGFQcml2LnNldChcblx0XHRcdGVsZW1zWyBpIF0sXG5cdFx0XHRcImdsb2JhbEV2YWxcIixcblx0XHRcdCFyZWZFbGVtZW50cyB8fCBkYXRhUHJpdi5nZXQoIHJlZkVsZW1lbnRzWyBpIF0sIFwiZ2xvYmFsRXZhbFwiIClcblx0XHQpO1xuXHR9XG59XG5cblxudmFyIHJodG1sID0gLzx8JiM/XFx3KzsvO1xuXG5mdW5jdGlvbiBidWlsZEZyYWdtZW50KCBlbGVtcywgY29udGV4dCwgc2NyaXB0cywgc2VsZWN0aW9uLCBpZ25vcmVkICkge1xuXHR2YXIgZWxlbSwgdG1wLCB0YWcsIHdyYXAsIGF0dGFjaGVkLCBqLFxuXHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0bm9kZXMgPSBbXSxcblx0XHRpID0gMCxcblx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRlbGVtID0gZWxlbXNbIGkgXTtcblxuXHRcdGlmICggZWxlbSB8fCBlbGVtID09PSAwICkge1xuXG5cdFx0XHQvLyBBZGQgbm9kZXMgZGlyZWN0bHlcblx0XHRcdGlmICggdG9UeXBlKCBlbGVtICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgZWxlbS5ub2RlVHlwZSA/IFsgZWxlbSBdIDogZWxlbSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IG5vbi1odG1sIGludG8gYSB0ZXh0IG5vZGVcblx0XHRcdH0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XG5cdFx0XHRcdG5vZGVzLnB1c2goIGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IGh0bWwgaW50byBET00gbm9kZXNcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRtcCA9IHRtcCB8fCBmcmFnbWVudC5hcHBlbmRDaGlsZCggY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKTtcblxuXHRcdFx0XHQvLyBEZXNlcmlhbGl6ZSBhIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9uXG5cdFx0XHRcdHRhZyA9ICggcnRhZ05hbWUuZXhlYyggZWxlbSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcblx0XHRcdFx0dG1wLmlubmVySFRNTCA9IHdyYXBbIDEgXSArIGpRdWVyeS5odG1sUHJlZmlsdGVyKCBlbGVtICkgKyB3cmFwWyAyIF07XG5cblx0XHRcdFx0Ly8gRGVzY2VuZCB0aHJvdWdoIHdyYXBwZXJzIHRvIHRoZSByaWdodCBjb250ZW50XG5cdFx0XHRcdGogPSB3cmFwWyAwIF07XG5cdFx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRcdHRtcCA9IHRtcC5sYXN0Q2hpbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIG5vZGVzLCB0bXAuY2hpbGROb2RlcyApO1xuXG5cdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSB0b3AtbGV2ZWwgY29udGFpbmVyXG5cdFx0XHRcdHRtcCA9IGZyYWdtZW50LmZpcnN0Q2hpbGQ7XG5cblx0XHRcdFx0Ly8gRW5zdXJlIHRoZSBjcmVhdGVkIG5vZGVzIGFyZSBvcnBoYW5lZCAodHJhYy0xMjM5Milcblx0XHRcdFx0dG1wLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZW1vdmUgd3JhcHBlciBmcm9tIGZyYWdtZW50XG5cdGZyYWdtZW50LnRleHRDb250ZW50ID0gXCJcIjtcblxuXHRpID0gMDtcblx0d2hpbGUgKCAoIGVsZW0gPSBub2Rlc1sgaSsrIF0gKSApIHtcblxuXHRcdC8vIFNraXAgZWxlbWVudHMgYWxyZWFkeSBpbiB0aGUgY29udGV4dCBjb2xsZWN0aW9uICh0cmFjLTQwODcpXG5cdFx0aWYgKCBzZWxlY3Rpb24gJiYgalF1ZXJ5LmluQXJyYXkoIGVsZW0sIHNlbGVjdGlvbiApID4gLTEgKSB7XG5cdFx0XHRpZiAoIGlnbm9yZWQgKSB7XG5cdFx0XHRcdGlnbm9yZWQucHVzaCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0YXR0YWNoZWQgPSBpc0F0dGFjaGVkKCBlbGVtICk7XG5cblx0XHQvLyBBcHBlbmQgdG8gZnJhZ21lbnRcblx0XHR0bXAgPSBnZXRBbGwoIGZyYWdtZW50LmFwcGVuZENoaWxkKCBlbGVtICksIFwic2NyaXB0XCIgKTtcblxuXHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRpZiAoIGF0dGFjaGVkICkge1xuXHRcdFx0c2V0R2xvYmFsRXZhbCggdG1wICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FwdHVyZSBleGVjdXRhYmxlc1xuXHRcdGlmICggc2NyaXB0cyApIHtcblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSB0bXBbIGorKyBdICkgKSB7XG5cdFx0XHRcdGlmICggcnNjcmlwdFR5cGUudGVzdCggZWxlbS50eXBlIHx8IFwiXCIgKSApIHtcblx0XHRcdFx0XHRzY3JpcHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmcmFnbWVudDtcbn1cblxuXG52YXIgcnR5cGVuYW1lc3BhY2UgPSAvXihbXi5dKikoPzpcXC4oLispfCkvO1xuXG5mdW5jdGlvbiByZXR1cm5UcnVlKCkge1xuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmV0dXJuRmFsc2UoKSB7XG5cdHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gb24oIGVsZW0sIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIG9uZSApIHtcblx0dmFyIG9yaWdGbiwgdHlwZTtcblxuXHQvLyBUeXBlcyBjYW4gYmUgYSBtYXAgb2YgdHlwZXMvaGFuZGxlcnNcblx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyAoIHR5cGVzLU9iamVjdCwgc2VsZWN0b3IsIGRhdGEgKVxuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLU9iamVjdCwgZGF0YSApXG5cdFx0XHRkYXRhID0gZGF0YSB8fCBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0b24oIGVsZW0sIHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIGVsZW07XG5cdH1cblxuXHRpZiAoIGRhdGEgPT0gbnVsbCAmJiBmbiA9PSBudWxsICkge1xuXG5cdFx0Ly8gKCB0eXBlcywgZm4gKVxuXHRcdGZuID0gc2VsZWN0b3I7XG5cdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHR9IGVsc2UgaWYgKCBmbiA9PSBudWxsICkge1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBzZWxlY3RvciwgZm4gKVxuXHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBkYXRhLCBmbiApXG5cdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRkYXRhID0gc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XG5cdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0fSBlbHNlIGlmICggIWZuICkge1xuXHRcdHJldHVybiBlbGVtO1xuXHR9XG5cblx0aWYgKCBvbmUgPT09IDEgKSB7XG5cdFx0b3JpZ0ZuID0gZm47XG5cdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cblx0XHRcdC8vIENhbiB1c2UgYW4gZW1wdHkgc2V0LCBzaW5jZSBldmVudCBjb250YWlucyB0aGUgaW5mb1xuXHRcdFx0alF1ZXJ5KCkub2ZmKCBldmVudCApO1xuXHRcdFx0cmV0dXJuIG9yaWdGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fTtcblxuXHRcdC8vIFVzZSBzYW1lIGd1aWQgc28gY2FsbGVyIGNhbiByZW1vdmUgdXNpbmcgb3JpZ0ZuXG5cdFx0Zm4uZ3VpZCA9IG9yaWdGbi5ndWlkIHx8ICggb3JpZ0ZuLmd1aWQgPSBqUXVlcnkuZ3VpZCsrICk7XG5cdH1cblx0cmV0dXJuIGVsZW0uZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0alF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZXMsIGZuLCBkYXRhLCBzZWxlY3RvciApO1xuXHR9ICk7XG59XG5cbi8qXG4gKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBldmVudHMgLS0gbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuXG4gKiBQcm9wcyB0byBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkgZm9yIG1hbnkgb2YgdGhlIGlkZWFzLlxuICovXG5qUXVlcnkuZXZlbnQgPSB7XG5cblx0Z2xvYmFsOiB7fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgZGF0YSwgc2VsZWN0b3IgKSB7XG5cblx0XHR2YXIgaGFuZGxlT2JqSW4sIGV2ZW50SGFuZGxlLCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuZ2V0KCBlbGVtICk7XG5cblx0XHQvLyBPbmx5IGF0dGFjaCBldmVudHMgdG8gb2JqZWN0cyB0aGF0IGFjY2VwdCBkYXRhXG5cdFx0aWYgKCAhYWNjZXB0RGF0YSggZWxlbSApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENhbGxlciBjYW4gcGFzcyBpbiBhbiBvYmplY3Qgb2YgY3VzdG9tIGRhdGEgaW4gbGlldSBvZiB0aGUgaGFuZGxlclxuXHRcdGlmICggaGFuZGxlci5oYW5kbGVyICkge1xuXHRcdFx0aGFuZGxlT2JqSW4gPSBoYW5kbGVyO1xuXHRcdFx0aGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7XG5cdFx0XHRzZWxlY3RvciA9IGhhbmRsZU9iakluLnNlbGVjdG9yO1xuXHRcdH1cblxuXHRcdC8vIEVuc3VyZSB0aGF0IGludmFsaWQgc2VsZWN0b3JzIHRocm93IGV4Y2VwdGlvbnMgYXQgYXR0YWNoIHRpbWVcblx0XHQvLyBFdmFsdWF0ZSBhZ2FpbnN0IGRvY3VtZW50RWxlbWVudCBpbiBjYXNlIGVsZW0gaXMgYSBub24tZWxlbWVudCBub2RlIChlLmcuLCBkb2N1bWVudClcblx0XHRpZiAoIHNlbGVjdG9yICkge1xuXHRcdFx0alF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBkb2N1bWVudEVsZW1lbnQsIHNlbGVjdG9yICk7XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXG5cdFx0aWYgKCAhaGFuZGxlci5ndWlkICkge1xuXHRcdFx0aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKztcblx0XHR9XG5cblx0XHQvLyBJbml0IHRoZSBlbGVtZW50J3MgZXZlbnQgc3RydWN0dXJlIGFuZCBtYWluIGhhbmRsZXIsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG5cdFx0aWYgKCAhKCBldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgKSApIHtcblx0XHRcdGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cyA9IE9iamVjdC5jcmVhdGUoIG51bGwgKTtcblx0XHR9XG5cdFx0aWYgKCAhKCBldmVudEhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZSApICkge1xuXHRcdFx0ZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGUgPSBmdW5jdGlvbiggZSApIHtcblxuXHRcdFx0XHQvLyBEaXNjYXJkIHRoZSBzZWNvbmQgZXZlbnQgb2YgYSBqUXVlcnkuZXZlbnQudHJpZ2dlcigpIGFuZFxuXHRcdFx0XHQvLyB3aGVuIGFuIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhIHBhZ2UgaGFzIHVubG9hZGVkXG5cdFx0XHRcdHJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSBcInVuZGVmaW5lZFwiICYmIGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgIT09IGUudHlwZSA/XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmFwcGx5KCBlbGVtLCBhcmd1bWVudHMgKSA6IHVuZGVmaW5lZDtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ly8gSGFuZGxlIG11bHRpcGxlIGV2ZW50cyBzZXBhcmF0ZWQgYnkgYSBzcGFjZVxuXHRcdHR5cGVzID0gKCB0eXBlcyB8fCBcIlwiICkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbIHQgXSApIHx8IFtdO1xuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG1wWyAxIF07XG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bXBbIDIgXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBUaGVyZSAqbXVzdCogYmUgYSB0eXBlLCBubyBhdHRhY2hpbmcgbmFtZXNwYWNlLW9ubHkgaGFuZGxlcnNcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBldmVudCBjaGFuZ2VzIGl0cyB0eXBlLCB1c2UgdGhlIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMgZm9yIHRoZSBjaGFuZ2VkIHR5cGVcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXG5cdFx0XHQvLyBJZiBzZWxlY3RvciBkZWZpbmVkLCBkZXRlcm1pbmUgc3BlY2lhbCBldmVudCBhcGkgdHlwZSwgb3RoZXJ3aXNlIGdpdmVuIHR5cGVcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblxuXHRcdFx0Ly8gVXBkYXRlIHNwZWNpYWwgYmFzZWQgb24gbmV3bHkgcmVzZXQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIGhhbmRsZU9iaiBpcyBwYXNzZWQgdG8gYWxsIGV2ZW50IGhhbmRsZXJzXG5cdFx0XHRoYW5kbGVPYmogPSBqUXVlcnkuZXh0ZW5kKCB7XG5cdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdG9yaWdUeXBlOiBvcmlnVHlwZSxcblx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0aGFuZGxlcjogaGFuZGxlcixcblx0XHRcdFx0Z3VpZDogaGFuZGxlci5ndWlkLFxuXHRcdFx0XHRzZWxlY3Rvcjogc2VsZWN0b3IsXG5cdFx0XHRcdG5lZWRzQ29udGV4dDogc2VsZWN0b3IgJiYgalF1ZXJ5LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICksXG5cdFx0XHRcdG5hbWVzcGFjZTogbmFtZXNwYWNlcy5qb2luKCBcIi5cIiApXG5cdFx0XHR9LCBoYW5kbGVPYmpJbiApO1xuXG5cdFx0XHQvLyBJbml0IHRoZSBldmVudCBoYW5kbGVyIHF1ZXVlIGlmIHdlJ3JlIHRoZSBmaXJzdFxuXHRcdFx0aWYgKCAhKCBoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdICkgKSB7XG5cdFx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gPSBbXTtcblx0XHRcdFx0aGFuZGxlcnMuZGVsZWdhdGVDb3VudCA9IDA7XG5cblx0XHRcdFx0Ly8gT25seSB1c2UgYWRkRXZlbnRMaXN0ZW5lciBpZiB0aGUgc3BlY2lhbCBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlXG5cdFx0XHRcdGlmICggIXNwZWNpYWwuc2V0dXAgfHxcblx0XHRcdFx0XHRzcGVjaWFsLnNldHVwLmNhbGwoIGVsZW0sIGRhdGEsIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0aWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGV2ZW50SGFuZGxlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggc3BlY2lhbC5hZGQgKSB7XG5cdFx0XHRcdHNwZWNpYWwuYWRkLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApO1xuXG5cdFx0XHRcdGlmICggIWhhbmRsZU9iai5oYW5kbGVyLmd1aWQgKSB7XG5cdFx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCA9IGhhbmRsZXIuZ3VpZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgdG8gdGhlIGVsZW1lbnQncyBoYW5kbGVyIGxpc3QsIGRlbGVnYXRlcyBpbiBmcm9udFxuXHRcdFx0aWYgKCBzZWxlY3RvciApIHtcblx0XHRcdFx0aGFuZGxlcnMuc3BsaWNlKCBoYW5kbGVycy5kZWxlZ2F0ZUNvdW50KyssIDAsIGhhbmRsZU9iaiApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZXZlbnRzIGhhdmUgZXZlciBiZWVuIHVzZWQsIGZvciBldmVudCBvcHRpbWl6YXRpb25cblx0XHRcdGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSA9IHRydWU7XG5cdFx0fVxuXG5cdH0sXG5cblx0Ly8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50XG5cdHJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBzZWxlY3RvciwgbWFwcGVkVHlwZXMgKSB7XG5cblx0XHR2YXIgaiwgb3JpZ0NvdW50LCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuaGFzRGF0YSggZWxlbSApICYmIGRhdGFQcml2LmdldCggZWxlbSApO1xuXG5cdFx0aWYgKCAhZWxlbURhdGEgfHwgISggZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzICkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gT25jZSBmb3IgZWFjaCB0eXBlLm5hbWVzcGFjZSBpbiB0eXBlczsgdHlwZSBtYXkgYmUgb21pdHRlZFxuXHRcdHR5cGVzID0gKCB0eXBlcyB8fCBcIlwiICkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbIHQgXSApIHx8IFtdO1xuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG1wWyAxIF07XG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bXBbIDIgXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBVbmJpbmQgYWxsIGV2ZW50cyAob24gdGhpcyBuYW1lc3BhY2UsIGlmIHByb3ZpZGVkKSBmb3IgdGhlIGVsZW1lbnRcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKyB0eXBlc1sgdCBdLCBoYW5kbGVyLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gfHwgW107XG5cdFx0XHR0bXAgPSB0bXBbIDIgXSAmJlxuXHRcdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKCBcIlxcXFwuKD86LipcXFxcLnwpXCIgKSArIFwiKFxcXFwufCQpXCIgKTtcblxuXHRcdFx0Ly8gUmVtb3ZlIG1hdGNoaW5nIGV2ZW50c1xuXHRcdFx0b3JpZ0NvdW50ID0gaiA9IGhhbmRsZXJzLmxlbmd0aDtcblx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdO1xuXG5cdFx0XHRcdGlmICggKCBtYXBwZWRUeXBlcyB8fCBvcmlnVHlwZSA9PT0gaGFuZGxlT2JqLm9yaWdUeXBlICkgJiZcblx0XHRcdFx0XHQoICFoYW5kbGVyIHx8IGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSAmJlxuXHRcdFx0XHRcdCggIXRtcCB8fCB0bXAudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgJiZcblx0XHRcdFx0XHQoICFzZWxlY3RvciB8fCBzZWxlY3RvciA9PT0gaGFuZGxlT2JqLnNlbGVjdG9yIHx8XG5cdFx0XHRcdFx0XHRzZWxlY3RvciA9PT0gXCIqKlwiICYmIGhhbmRsZU9iai5zZWxlY3RvciApICkge1xuXHRcdFx0XHRcdGhhbmRsZXJzLnNwbGljZSggaiwgMSApO1xuXG5cdFx0XHRcdFx0aWYgKCBoYW5kbGVPYmouc2VsZWN0b3IgKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVycy5kZWxlZ2F0ZUNvdW50LS07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggc3BlY2lhbC5yZW1vdmUgKSB7XG5cdFx0XHRcdFx0XHRzcGVjaWFsLnJlbW92ZS5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVtb3ZlIGdlbmVyaWMgZXZlbnQgaGFuZGxlciBpZiB3ZSByZW1vdmVkIHNvbWV0aGluZyBhbmQgbm8gbW9yZSBoYW5kbGVycyBleGlzdFxuXHRcdFx0Ly8gKGF2b2lkcyBwb3RlbnRpYWwgZm9yIGVuZGxlc3MgcmVjdXJzaW9uIGR1cmluZyByZW1vdmFsIG9mIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMpXG5cdFx0XHRpZiAoIG9yaWdDb3VudCAmJiAhaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnRlYXJkb3duIHx8XG5cdFx0XHRcdFx0c3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzLCBlbGVtRGF0YS5oYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGVsZW1EYXRhLmhhbmRsZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVsZXRlIGV2ZW50c1sgdHlwZSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSBkYXRhIGFuZCB0aGUgZXhwYW5kbyBpZiBpdCdzIG5vIGxvbmdlciB1c2VkXG5cdFx0aWYgKCBqUXVlcnkuaXNFbXB0eU9iamVjdCggZXZlbnRzICkgKSB7XG5cdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFwiaGFuZGxlIGV2ZW50c1wiICk7XG5cdFx0fVxuXHR9LFxuXG5cdGRpc3BhdGNoOiBmdW5jdGlvbiggbmF0aXZlRXZlbnQgKSB7XG5cblx0XHR2YXIgaSwgaiwgcmV0LCBtYXRjaGVkLCBoYW5kbGVPYmosIGhhbmRsZXJRdWV1ZSxcblx0XHRcdGFyZ3MgPSBuZXcgQXJyYXkoIGFyZ3VtZW50cy5sZW5ndGggKSxcblxuXHRcdFx0Ly8gTWFrZSBhIHdyaXRhYmxlIGpRdWVyeS5FdmVudCBmcm9tIHRoZSBuYXRpdmUgZXZlbnQgb2JqZWN0XG5cdFx0XHRldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICksXG5cblx0XHRcdGhhbmRsZXJzID0gKFxuXHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsIClcblx0XHRcdClbIGV2ZW50LnR5cGUgXSB8fCBbXSxcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZXZlbnQudHlwZSBdIHx8IHt9O1xuXG5cdFx0Ly8gVXNlIHRoZSBmaXgtZWQgalF1ZXJ5LkV2ZW50IHJhdGhlciB0aGFuIHRoZSAocmVhZC1vbmx5KSBuYXRpdmUgZXZlbnRcblx0XHRhcmdzWyAwIF0gPSBldmVudDtcblxuXHRcdGZvciAoIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrICkge1xuXHRcdFx0YXJnc1sgaSBdID0gYXJndW1lbnRzWyBpIF07XG5cdFx0fVxuXG5cdFx0ZXZlbnQuZGVsZWdhdGVUYXJnZXQgPSB0aGlzO1xuXG5cdFx0Ly8gQ2FsbCB0aGUgcHJlRGlzcGF0Y2ggaG9vayBmb3IgdGhlIG1hcHBlZCB0eXBlLCBhbmQgbGV0IGl0IGJhaWwgaWYgZGVzaXJlZFxuXHRcdGlmICggc3BlY2lhbC5wcmVEaXNwYXRjaCAmJiBzcGVjaWFsLnByZURpc3BhdGNoLmNhbGwoIHRoaXMsIGV2ZW50ICkgPT09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERldGVybWluZSBoYW5kbGVyc1xuXHRcdGhhbmRsZXJRdWV1ZSA9IGpRdWVyeS5ldmVudC5oYW5kbGVycy5jYWxsKCB0aGlzLCBldmVudCwgaGFuZGxlcnMgKTtcblxuXHRcdC8vIFJ1biBkZWxlZ2F0ZXMgZmlyc3Q7IHRoZXkgbWF5IHdhbnQgdG8gc3RvcCBwcm9wYWdhdGlvbiBiZW5lYXRoIHVzXG5cdFx0aSA9IDA7XG5cdFx0d2hpbGUgKCAoIG1hdGNoZWQgPSBoYW5kbGVyUXVldWVbIGkrKyBdICkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2hlZC5lbGVtO1xuXG5cdFx0XHRqID0gMDtcblx0XHRcdHdoaWxlICggKCBoYW5kbGVPYmogPSBtYXRjaGVkLmhhbmRsZXJzWyBqKysgXSApICYmXG5cdFx0XHRcdCFldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXG5cdFx0XHRcdC8vIElmIHRoZSBldmVudCBpcyBuYW1lc3BhY2VkLCB0aGVuIGVhY2ggaGFuZGxlciBpcyBvbmx5IGludm9rZWQgaWYgaXQgaXNcblx0XHRcdFx0Ly8gc3BlY2lhbGx5IHVuaXZlcnNhbCBvciBpdHMgbmFtZXNwYWNlcyBhcmUgYSBzdXBlcnNldCBvZiB0aGUgZXZlbnQncy5cblx0XHRcdFx0aWYgKCAhZXZlbnQucm5hbWVzcGFjZSB8fCBoYW5kbGVPYmoubmFtZXNwYWNlID09PSBmYWxzZSB8fFxuXHRcdFx0XHRcdGV2ZW50LnJuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkge1xuXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xuXHRcdFx0XHRcdGV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTtcblxuXHRcdFx0XHRcdHJldCA9ICggKCBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgaGFuZGxlT2JqLm9yaWdUeXBlIF0gfHwge30gKS5oYW5kbGUgfHxcblx0XHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyICkuYXBwbHkoIG1hdGNoZWQuZWxlbSwgYXJncyApO1xuXG5cdFx0XHRcdFx0aWYgKCByZXQgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdGlmICggKCBldmVudC5yZXN1bHQgPSByZXQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGwgdGhlIHBvc3REaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGVcblx0XHRpZiAoIHNwZWNpYWwucG9zdERpc3BhdGNoICkge1xuXHRcdFx0c3BlY2lhbC5wb3N0RGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZXZlbnQucmVzdWx0O1xuXHR9LFxuXG5cdGhhbmRsZXJzOiBmdW5jdGlvbiggZXZlbnQsIGhhbmRsZXJzICkge1xuXHRcdHZhciBpLCBoYW5kbGVPYmosIHNlbCwgbWF0Y2hlZEhhbmRsZXJzLCBtYXRjaGVkU2VsZWN0b3JzLFxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW10sXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcblx0XHRcdGN1ciA9IGV2ZW50LnRhcmdldDtcblxuXHRcdC8vIEZpbmQgZGVsZWdhdGUgaGFuZGxlcnNcblx0XHRpZiAoIGRlbGVnYXRlQ291bnQgJiZcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05XG5cdFx0XHQvLyBCbGFjay1ob2xlIFNWRyA8dXNlPiBpbnN0YW5jZSB0cmVlcyAodHJhYy0xMzE4MClcblx0XHRcdGN1ci5ub2RlVHlwZSAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDJcblx0XHRcdC8vIFN1cHByZXNzIHNwZWMtdmlvbGF0aW5nIGNsaWNrcyBpbmRpY2F0aW5nIGEgbm9uLXByaW1hcnkgcG9pbnRlciBidXR0b24gKHRyYWMtMzg2MSlcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50LXR5cGUtY2xpY2tcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdC8vIC4uLmJ1dCBub3QgYXJyb3cga2V5IFwiY2xpY2tzXCIgb2YgcmFkaW8gaW5wdXRzLCB3aGljaCBjYW4gaGF2ZSBgYnV0dG9uYCAtMSAoZ2gtMjM0Mylcblx0XHRcdCEoIGV2ZW50LnR5cGUgPT09IFwiY2xpY2tcIiAmJiBldmVudC5idXR0b24gPj0gMSApICkge1xuXG5cdFx0XHRmb3IgKCA7IGN1ciAhPT0gdGhpczsgY3VyID0gY3VyLnBhcmVudE5vZGUgfHwgdGhpcyApIHtcblxuXHRcdFx0XHQvLyBEb24ndCBjaGVjayBub24tZWxlbWVudHMgKHRyYWMtMTMyMDgpXG5cdFx0XHRcdC8vIERvbid0IHByb2Nlc3MgY2xpY2tzIG9uIGRpc2FibGVkIGVsZW1lbnRzICh0cmFjLTY5MTEsIHRyYWMtODE2NSwgdHJhYy0xMTM4MiwgdHJhYy0xMTc2NClcblx0XHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPT09IDEgJiYgISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGN1ci5kaXNhYmxlZCA9PT0gdHJ1ZSApICkge1xuXHRcdFx0XHRcdG1hdGNoZWRIYW5kbGVycyA9IFtdO1xuXHRcdFx0XHRcdG1hdGNoZWRTZWxlY3RvcnMgPSB7fTtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGRlbGVnYXRlQ291bnQ7IGkrKyApIHtcblx0XHRcdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIERvbid0IGNvbmZsaWN0IHdpdGggT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzICh0cmFjLTEzMjAzKVxuXHRcdFx0XHRcdFx0c2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yICsgXCIgXCI7XG5cblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPSBoYW5kbGVPYmoubmVlZHNDb250ZXh0ID9cblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHNlbCwgdGhpcyApLmluZGV4KCBjdXIgKSA+IC0xIDpcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZCggc2VsLCB0aGlzLCBudWxsLCBbIGN1ciBdICkubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZEhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRIYW5kbGVycy5sZW5ndGggKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVyUXVldWUucHVzaCggeyBlbGVtOiBjdXIsIGhhbmRsZXJzOiBtYXRjaGVkSGFuZGxlcnMgfSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFkZCB0aGUgcmVtYWluaW5nIChkaXJlY3RseS1ib3VuZCkgaGFuZGxlcnNcblx0XHRjdXIgPSB0aGlzO1xuXHRcdGlmICggZGVsZWdhdGVDb3VudCA8IGhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKCB7IGVsZW06IGN1ciwgaGFuZGxlcnM6IGhhbmRsZXJzLnNsaWNlKCBkZWxlZ2F0ZUNvdW50ICkgfSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBoYW5kbGVyUXVldWU7XG5cdH0sXG5cblx0YWRkUHJvcDogZnVuY3Rpb24oIG5hbWUsIGhvb2sgKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBqUXVlcnkuRXZlbnQucHJvdG90eXBlLCBuYW1lLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXG5cdFx0XHRnZXQ6IGlzRnVuY3Rpb24oIGhvb2sgKSA/XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGhvb2soIHRoaXMub3JpZ2luYWxFdmVudCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFsgbmFtZSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggdGhpcywgbmFtZSwge1xuXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHdyaXRhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHZhbHVlOiB2YWx1ZVxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGZpeDogZnVuY3Rpb24oIG9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0cmV0dXJuIG9yaWdpbmFsRXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gP1xuXHRcdFx0b3JpZ2luYWxFdmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7XG5cdH0sXG5cblx0c3BlY2lhbDoge1xuXHRcdGxvYWQ6IHtcblxuXHRcdFx0Ly8gUHJldmVudCB0cmlnZ2VyZWQgaW1hZ2UubG9hZCBldmVudHMgZnJvbSBidWJibGluZyB0byB3aW5kb3cubG9hZFxuXHRcdFx0bm9CdWJibGU6IHRydWVcblx0XHR9LFxuXHRcdGNsaWNrOiB7XG5cblx0XHRcdC8vIFV0aWxpemUgbmF0aXZlIGV2ZW50IHRvIGVuc3VyZSBjb3JyZWN0IHN0YXRlIGZvciBjaGVja2FibGUgaW5wdXRzXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7XG5cblx0XHRcdFx0Ly8gRm9yIG11dHVhbCBjb21wcmVzc2liaWxpdHkgd2l0aCBfZGVmYXVsdCwgcmVwbGFjZSBgdGhpc2AgYWNjZXNzIHdpdGggYSBsb2NhbCB2YXIuXG5cdFx0XHRcdC8vIGB8fCBkYXRhYCBpcyBkZWFkIGNvZGUgbWVhbnQgb25seSB0byBwcmVzZXJ2ZSB0aGUgdmFyaWFibGUgdGhyb3VnaCBtaW5pZmljYXRpb24uXG5cdFx0XHRcdHZhciBlbCA9IHRoaXMgfHwgZGF0YTtcblxuXHRcdFx0XHQvLyBDbGFpbSB0aGUgZmlyc3QgaGFuZGxlclxuXHRcdFx0XHRpZiAoIHJjaGVja2FibGVUeXBlLnRlc3QoIGVsLnR5cGUgKSAmJlxuXHRcdFx0XHRcdGVsLmNsaWNrICYmIG5vZGVOYW1lKCBlbCwgXCJpbnB1dFwiICkgKSB7XG5cblx0XHRcdFx0XHQvLyBkYXRhUHJpdi5zZXQoIGVsLCBcImNsaWNrXCIsIC4uLiApXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIsIHRydWUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbiggZGF0YSApIHtcblxuXHRcdFx0XHQvLyBGb3IgbXV0dWFsIGNvbXByZXNzaWJpbGl0eSB3aXRoIF9kZWZhdWx0LCByZXBsYWNlIGB0aGlzYCBhY2Nlc3Mgd2l0aCBhIGxvY2FsIHZhci5cblx0XHRcdFx0Ly8gYHx8IGRhdGFgIGlzIGRlYWQgY29kZSBtZWFudCBvbmx5IHRvIHByZXNlcnZlIHRoZSB2YXJpYWJsZSB0aHJvdWdoIG1pbmlmaWNhdGlvbi5cblx0XHRcdFx0dmFyIGVsID0gdGhpcyB8fCBkYXRhO1xuXG5cdFx0XHRcdC8vIEZvcmNlIHNldHVwIGJlZm9yZSB0cmlnZ2VyaW5nIGEgY2xpY2tcblx0XHRcdFx0aWYgKCByY2hlY2thYmxlVHlwZS50ZXN0KCBlbC50eXBlICkgJiZcblx0XHRcdFx0XHRlbC5jbGljayAmJiBub2RlTmFtZSggZWwsIFwiaW5wdXRcIiApICkge1xuXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBub24tZmFsc2UgdG8gYWxsb3cgbm9ybWFsIGV2ZW50LXBhdGggcHJvcGFnYXRpb25cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBGb3IgY3Jvc3MtYnJvd3NlciBjb25zaXN0ZW5jeSwgc3VwcHJlc3MgbmF0aXZlIC5jbGljaygpIG9uIGxpbmtzXG5cdFx0XHQvLyBBbHNvIHByZXZlbnQgaXQgaWYgd2UncmUgY3VycmVudGx5IGluc2lkZSBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRcdF9kZWZhdWx0OiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cdFx0XHRcdHJldHVybiByY2hlY2thYmxlVHlwZS50ZXN0KCB0YXJnZXQudHlwZSApICYmXG5cdFx0XHRcdFx0dGFyZ2V0LmNsaWNrICYmIG5vZGVOYW1lKCB0YXJnZXQsIFwiaW5wdXRcIiApICYmXG5cdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCB0YXJnZXQsIFwiY2xpY2tcIiApIHx8XG5cdFx0XHRcdFx0bm9kZU5hbWUoIHRhcmdldCwgXCJhXCIgKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0YmVmb3JldW5sb2FkOiB7XG5cdFx0XHRwb3N0RGlzcGF0Y2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDIwK1xuXHRcdFx0XHQvLyBGaXJlZm94IGRvZXNuJ3QgYWxlcnQgaWYgdGhlIHJldHVyblZhbHVlIGZpZWxkIGlzIG5vdCBzZXQuXG5cdFx0XHRcdGlmICggZXZlbnQucmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgZXZlbnQub3JpZ2luYWxFdmVudCApIHtcblx0XHRcdFx0XHRldmVudC5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlID0gZXZlbnQucmVzdWx0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG4vLyBFbnN1cmUgdGhlIHByZXNlbmNlIG9mIGFuIGV2ZW50IGxpc3RlbmVyIHRoYXQgaGFuZGxlcyBtYW51YWxseS10cmlnZ2VyZWRcbi8vIHN5bnRoZXRpYyBldmVudHMgYnkgaW50ZXJydXB0aW5nIHByb2dyZXNzIHVudGlsIHJlaW52b2tlZCBpbiByZXNwb25zZSB0b1xuLy8gKm5hdGl2ZSogZXZlbnRzIHRoYXQgaXQgZmlyZXMgZGlyZWN0bHksIGVuc3VyaW5nIHRoYXQgc3RhdGUgY2hhbmdlcyBoYXZlXG4vLyBhbHJlYWR5IG9jY3VycmVkIGJlZm9yZSBvdGhlciBsaXN0ZW5lcnMgYXJlIGludm9rZWQuXG5mdW5jdGlvbiBsZXZlcmFnZU5hdGl2ZSggZWwsIHR5cGUsIGlzU2V0dXAgKSB7XG5cblx0Ly8gTWlzc2luZyBgaXNTZXR1cGAgaW5kaWNhdGVzIGEgdHJpZ2dlciBjYWxsLCB3aGljaCBtdXN0IGZvcmNlIHNldHVwIHRocm91Z2ggalF1ZXJ5LmV2ZW50LmFkZFxuXHRpZiAoICFpc1NldHVwICkge1xuXHRcdGlmICggZGF0YVByaXYuZ2V0KCBlbCwgdHlwZSApID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBlbCwgdHlwZSwgcmV0dXJuVHJ1ZSApO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBSZWdpc3RlciB0aGUgY29udHJvbGxlciBhcyBhIHNwZWNpYWwgdW5pdmVyc2FsIGhhbmRsZXIgZm9yIGFsbCBldmVudCBuYW1lc3BhY2VzXG5cdGRhdGFQcml2LnNldCggZWwsIHR5cGUsIGZhbHNlICk7XG5cdGpRdWVyeS5ldmVudC5hZGQoIGVsLCB0eXBlLCB7XG5cdFx0bmFtZXNwYWNlOiBmYWxzZSxcblx0XHRoYW5kbGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHR2YXIgcmVzdWx0LFxuXHRcdFx0XHRzYXZlZCA9IGRhdGFQcml2LmdldCggdGhpcywgdHlwZSApO1xuXG5cdFx0XHRpZiAoICggZXZlbnQuaXNUcmlnZ2VyICYgMSApICYmIHRoaXNbIHR5cGUgXSApIHtcblxuXHRcdFx0XHQvLyBJbnRlcnJ1cHQgcHJvY2Vzc2luZyBvZiB0aGUgb3V0ZXIgc3ludGhldGljIC50cmlnZ2VyKCllZCBldmVudFxuXHRcdFx0XHRpZiAoICFzYXZlZCApIHtcblxuXHRcdFx0XHRcdC8vIFN0b3JlIGFyZ3VtZW50cyBmb3IgdXNlIHdoZW4gaGFuZGxpbmcgdGhlIGlubmVyIG5hdGl2ZSBldmVudFxuXHRcdFx0XHRcdC8vIFRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBhcmd1bWVudCAoYW4gZXZlbnQgb2JqZWN0KSwgc28gdGhpcyBhcnJheVxuXHRcdFx0XHRcdC8vIHdpbGwgbm90IGJlIGNvbmZ1c2VkIHdpdGggYSBsZWZ0b3ZlciBjYXB0dXJlIG9iamVjdC5cblx0XHRcdFx0XHRzYXZlZCA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwgc2F2ZWQgKTtcblxuXHRcdFx0XHRcdC8vIFRyaWdnZXIgdGhlIG5hdGl2ZSBldmVudCBhbmQgY2FwdHVyZSBpdHMgcmVzdWx0XG5cdFx0XHRcdFx0dGhpc1sgdHlwZSBdKCk7XG5cdFx0XHRcdFx0cmVzdWx0ID0gZGF0YVByaXYuZ2V0KCB0aGlzLCB0eXBlICk7XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCB0eXBlLCBmYWxzZSApO1xuXG5cdFx0XHRcdFx0aWYgKCBzYXZlZCAhPT0gcmVzdWx0ICkge1xuXG5cdFx0XHRcdFx0XHQvLyBDYW5jZWwgdGhlIG91dGVyIHN5bnRoZXRpYyBldmVudFxuXHRcdFx0XHRcdFx0ZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGlzIGlzIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCBmb3IgYW4gZXZlbnQgd2l0aCBhIGJ1YmJsaW5nIHN1cnJvZ2F0ZVxuXHRcdFx0XHQvLyAoZm9jdXMgb3IgYmx1ciksIGFzc3VtZSB0aGF0IHRoZSBzdXJyb2dhdGUgYWxyZWFkeSBwcm9wYWdhdGVkIGZyb20gdHJpZ2dlcmluZ1xuXHRcdFx0XHQvLyB0aGUgbmF0aXZlIGV2ZW50IGFuZCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcgYWdhaW4gaGVyZS5cblx0XHRcdFx0Ly8gVGhpcyB0ZWNobmljYWxseSBnZXRzIHRoZSBvcmRlcmluZyB3cm9uZyB3LnIudC4gdG8gYC50cmlnZ2VyKClgIChpbiB3aGljaCB0aGVcblx0XHRcdFx0Ly8gYnViYmxpbmcgc3Vycm9nYXRlIHByb3BhZ2F0ZXMgKmFmdGVyKiB0aGUgbm9uLWJ1YmJsaW5nIGJhc2UpLCBidXQgdGhhdCBzZWVtc1xuXHRcdFx0XHQvLyBsZXNzIGJhZCB0aGFuIGR1cGxpY2F0aW9uLlxuXHRcdFx0XHR9IGVsc2UgaWYgKCAoIGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge30gKS5kZWxlZ2F0ZVR5cGUgKSB7XG5cdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyBpcyBhIG5hdGl2ZSBldmVudCB0cmlnZ2VyZWQgYWJvdmUsIGV2ZXJ5dGhpbmcgaXMgbm93IGluIG9yZGVyXG5cdFx0XHQvLyBGaXJlIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCB3aXRoIHRoZSBvcmlnaW5hbCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIHNhdmVkICkge1xuXG5cdFx0XHRcdC8vIC4uLmFuZCBjYXB0dXJlIHRoZSByZXN1bHRcblx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCB0eXBlLCBqUXVlcnkuZXZlbnQudHJpZ2dlcihcblx0XHRcdFx0XHRzYXZlZFsgMCBdLFxuXHRcdFx0XHRcdHNhdmVkLnNsaWNlKCAxICksXG5cdFx0XHRcdFx0dGhpc1xuXHRcdFx0XHQpICk7XG5cblx0XHRcdFx0Ly8gQWJvcnQgaGFuZGxpbmcgb2YgdGhlIG5hdGl2ZSBldmVudCBieSBhbGwgalF1ZXJ5IGhhbmRsZXJzIHdoaWxlIGFsbG93aW5nXG5cdFx0XHRcdC8vIG5hdGl2ZSBoYW5kbGVycyBvbiB0aGUgc2FtZSBlbGVtZW50IHRvIHJ1bi4gT24gdGFyZ2V0LCB0aGlzIGlzIGFjaGlldmVkXG5cdFx0XHRcdC8vIGJ5IHN0b3BwaW5nIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBqdXN0IG9uIHRoZSBqUXVlcnkgZXZlbnQuIEhvd2V2ZXIsXG5cdFx0XHRcdC8vIHRoZSBuYXRpdmUgZXZlbnQgaXMgcmUtd3JhcHBlZCBieSBhIGpRdWVyeSBvbmUgb24gZWFjaCBsZXZlbCBvZiB0aGVcblx0XHRcdFx0Ly8gcHJvcGFnYXRpb24gc28gdGhlIG9ubHkgd2F5IHRvIHN0b3AgaXQgZm9yIGpRdWVyeSBpcyB0byBzdG9wIGl0IGZvclxuXHRcdFx0XHQvLyBldmVyeW9uZSB2aWEgbmF0aXZlIGBzdG9wUHJvcGFnYXRpb24oKWAuIFRoaXMgaXMgbm90IGEgcHJvYmxlbSBmb3Jcblx0XHRcdFx0Ly8gZm9jdXMvYmx1ciB3aGljaCBkb24ndCBidWJibGUsIGJ1dCBpdCBkb2VzIGFsc28gc3RvcCBjbGljayBvbiBjaGVja2JveGVzXG5cdFx0XHRcdC8vIGFuZCByYWRpb3MuIFdlIGFjY2VwdCB0aGlzIGxpbWl0YXRpb24uXG5cdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9ICk7XG59XG5cbmpRdWVyeS5yZW1vdmVFdmVudCA9IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBoYW5kbGUgKSB7XG5cblx0Ly8gVGhpcyBcImlmXCIgaXMgbmVlZGVkIGZvciBwbGFpbiBvYmplY3RzXG5cdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xuXHRcdGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgaGFuZGxlICk7XG5cdH1cbn07XG5cbmpRdWVyeS5FdmVudCA9IGZ1bmN0aW9uKCBzcmMsIHByb3BzICkge1xuXG5cdC8vIEFsbG93IGluc3RhbnRpYXRpb24gd2l0aG91dCB0aGUgJ25ldycga2V5d29yZFxuXHRpZiAoICEoIHRoaXMgaW5zdGFuY2VvZiBqUXVlcnkuRXZlbnQgKSApIHtcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5FdmVudCggc3JjLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gRXZlbnQgb2JqZWN0XG5cdGlmICggc3JjICYmIHNyYy50eXBlICkge1xuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcblx0XHR0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXG5cdFx0Ly8gYnkgYSBoYW5kbGVyIGxvd2VyIGRvd24gdGhlIHRyZWU7IHJlZmxlY3QgdGhlIGNvcnJlY3QgdmFsdWUuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fFxuXHRcdFx0XHRzcmMuZGVmYXVsdFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTIuMyBvbmx5XG5cdFx0XHRcdHNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0cmV0dXJuVHJ1ZSA6XG5cdFx0XHRyZXR1cm5GYWxzZTtcblxuXHRcdC8vIENyZWF0ZSB0YXJnZXQgcHJvcGVydGllc1xuXHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA8PTYgLSA3IG9ubHlcblx0XHQvLyBUYXJnZXQgc2hvdWxkIG5vdCBiZSBhIHRleHQgbm9kZSAodHJhYy01MDQsIHRyYWMtMTMxNDMpXG5cdFx0dGhpcy50YXJnZXQgPSAoIHNyYy50YXJnZXQgJiYgc3JjLnRhcmdldC5ub2RlVHlwZSA9PT0gMyApID9cblx0XHRcdHNyYy50YXJnZXQucGFyZW50Tm9kZSA6XG5cdFx0XHRzcmMudGFyZ2V0O1xuXG5cdFx0dGhpcy5jdXJyZW50VGFyZ2V0ID0gc3JjLmN1cnJlbnRUYXJnZXQ7XG5cdFx0dGhpcy5yZWxhdGVkVGFyZ2V0ID0gc3JjLnJlbGF0ZWRUYXJnZXQ7XG5cblx0Ly8gRXZlbnQgdHlwZVxuXHR9IGVsc2Uge1xuXHRcdHRoaXMudHlwZSA9IHNyYztcblx0fVxuXG5cdC8vIFB1dCBleHBsaWNpdGx5IHByb3ZpZGVkIHByb3BlcnRpZXMgb250byB0aGUgZXZlbnQgb2JqZWN0XG5cdGlmICggcHJvcHMgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggdGhpcywgcHJvcHMgKTtcblx0fVxuXG5cdC8vIENyZWF0ZSBhIHRpbWVzdGFtcCBpZiBpbmNvbWluZyBldmVudCBkb2Vzbid0IGhhdmUgb25lXG5cdHRoaXMudGltZVN0YW1wID0gc3JjICYmIHNyYy50aW1lU3RhbXAgfHwgRGF0ZS5ub3coKTtcblxuXHQvLyBNYXJrIGl0IGFzIGZpeGVkXG5cdHRoaXNbIGpRdWVyeS5leHBhbmRvIF0gPSB0cnVlO1xufTtcblxuLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmluZGluZy5odG1sXG5qUXVlcnkuRXZlbnQucHJvdG90eXBlID0ge1xuXHRjb25zdHJ1Y3RvcjogalF1ZXJ5LkV2ZW50LFxuXHRpc0RlZmF1bHRQcmV2ZW50ZWQ6IHJldHVybkZhbHNlLFxuXHRpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblx0aXNTaW11bGF0ZWQ6IGZhbHNlLFxuXG5cdHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcblxuXHRcdHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiAhdGhpcy5pc1NpbXVsYXRlZCApIHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH0sXG5cdHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiAhdGhpcy5pc1NpbXVsYXRlZCApIHtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdH1cblxuXHRcdHRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH1cbn07XG5cbi8vIEluY2x1ZGVzIGFsbCBjb21tb24gZXZlbnQgcHJvcHMgaW5jbHVkaW5nIEtleUV2ZW50IGFuZCBNb3VzZUV2ZW50IHNwZWNpZmljIHByb3BzXG5qUXVlcnkuZWFjaCgge1xuXHRhbHRLZXk6IHRydWUsXG5cdGJ1YmJsZXM6IHRydWUsXG5cdGNhbmNlbGFibGU6IHRydWUsXG5cdGNoYW5nZWRUb3VjaGVzOiB0cnVlLFxuXHRjdHJsS2V5OiB0cnVlLFxuXHRkZXRhaWw6IHRydWUsXG5cdGV2ZW50UGhhc2U6IHRydWUsXG5cdG1ldGFLZXk6IHRydWUsXG5cdHBhZ2VYOiB0cnVlLFxuXHRwYWdlWTogdHJ1ZSxcblx0c2hpZnRLZXk6IHRydWUsXG5cdHZpZXc6IHRydWUsXG5cdFwiY2hhclwiOiB0cnVlLFxuXHRjb2RlOiB0cnVlLFxuXHRjaGFyQ29kZTogdHJ1ZSxcblx0a2V5OiB0cnVlLFxuXHRrZXlDb2RlOiB0cnVlLFxuXHRidXR0b246IHRydWUsXG5cdGJ1dHRvbnM6IHRydWUsXG5cdGNsaWVudFg6IHRydWUsXG5cdGNsaWVudFk6IHRydWUsXG5cdG9mZnNldFg6IHRydWUsXG5cdG9mZnNldFk6IHRydWUsXG5cdHBvaW50ZXJJZDogdHJ1ZSxcblx0cG9pbnRlclR5cGU6IHRydWUsXG5cdHNjcmVlblg6IHRydWUsXG5cdHNjcmVlblk6IHRydWUsXG5cdHRhcmdldFRvdWNoZXM6IHRydWUsXG5cdHRvRWxlbWVudDogdHJ1ZSxcblx0dG91Y2hlczogdHJ1ZSxcblx0d2hpY2g6IHRydWVcbn0sIGpRdWVyeS5ldmVudC5hZGRQcm9wICk7XG5cbmpRdWVyeS5lYWNoKCB7IGZvY3VzOiBcImZvY3VzaW5cIiwgYmx1cjogXCJmb2N1c291dFwiIH0sIGZ1bmN0aW9uKCB0eXBlLCBkZWxlZ2F0ZVR5cGUgKSB7XG5cblx0ZnVuY3Rpb24gZm9jdXNNYXBwZWRIYW5kbGVyKCBuYXRpdmVFdmVudCApIHtcblx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErXG5cdFx0XHQvLyBBdHRhY2ggYSBzaW5nbGUgZm9jdXNpbi9mb2N1c291dCBoYW5kbGVyIG9uIHRoZSBkb2N1bWVudCB3aGlsZSBzb21lb25lIHdhbnRzXG5cdFx0XHQvLyBmb2N1cy9ibHVyLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGZvcm1lciBhcmUgc3luY2hyb25vdXMgaW4gSUUgd2hpbGUgdGhlIGxhdHRlclxuXHRcdFx0Ly8gYXJlIGFzeW5jLiBJbiBvdGhlciBicm93c2VycywgYWxsIHRob3NlIGhhbmRsZXJzIGFyZSBpbnZva2VkIHN5bmNocm9ub3VzbHkuXG5cblx0XHRcdC8vIGBoYW5kbGVgIGZyb20gcHJpdmF0ZSBkYXRhIHdvdWxkIGFscmVhZHkgd3JhcCB0aGUgZXZlbnQsIGJ1dCB3ZSBuZWVkXG5cdFx0XHQvLyB0byBjaGFuZ2UgdGhlIGB0eXBlYCBoZXJlLlxuXHRcdFx0dmFyIGhhbmRsZSA9IGRhdGFQcml2LmdldCggdGhpcywgXCJoYW5kbGVcIiApLFxuXHRcdFx0XHRldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICk7XG5cdFx0XHRldmVudC50eXBlID0gbmF0aXZlRXZlbnQudHlwZSA9PT0gXCJmb2N1c2luXCIgPyBcImZvY3VzXCIgOiBcImJsdXJcIjtcblx0XHRcdGV2ZW50LmlzU2ltdWxhdGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gRmlyc3QsIGhhbmRsZSBmb2N1c2luL2ZvY3Vzb3V0XG5cdFx0XHRoYW5kbGUoIG5hdGl2ZUV2ZW50ICk7XG5cblx0XHRcdC8vIC4uLnRoZW4sIGhhbmRsZSBmb2N1cy9ibHVyXG5cdFx0XHQvL1xuXHRcdFx0Ly8gZm9jdXMvYmx1ciBkb24ndCBidWJibGUgd2hpbGUgZm9jdXNpbi9mb2N1c291dCBkbzsgc2ltdWxhdGUgdGhlIGZvcm1lciBieSBvbmx5XG5cdFx0XHQvLyBpbnZva2luZyB0aGUgaGFuZGxlciBhdCB0aGUgbG93ZXIgbGV2ZWwuXG5cdFx0XHRpZiAoIGV2ZW50LnRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCApIHtcblxuXHRcdFx0XHQvLyBUaGUgc2V0dXAgcGFydCBjYWxscyBgbGV2ZXJhZ2VOYXRpdmVgLCB3aGljaCwgaW4gdHVybiwgY2FsbHNcblx0XHRcdFx0Ly8gYGpRdWVyeS5ldmVudC5hZGRgLCBzbyBldmVudCBoYW5kbGUgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBzZXRcblx0XHRcdFx0Ly8gYnkgdGhpcyBwb2ludC5cblx0XHRcdFx0aGFuZGxlKCBldmVudCApO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIEZvciBub24tSUUgYnJvd3NlcnMsIGF0dGFjaCBhIHNpbmdsZSBjYXB0dXJpbmcgaGFuZGxlciBvbiB0aGUgZG9jdW1lbnRcblx0XHRcdC8vIHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dC5cblx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggZGVsZWdhdGVUeXBlLCBuYXRpdmVFdmVudC50YXJnZXQsXG5cdFx0XHRcdGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICkgKTtcblx0XHR9XG5cdH1cblxuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdID0ge1xuXG5cdFx0Ly8gVXRpbGl6ZSBuYXRpdmUgZXZlbnQgaWYgcG9zc2libGUgc28gYmx1ci9mb2N1cyBzZXF1ZW5jZSBpcyBjb3JyZWN0XG5cdFx0c2V0dXA6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHR2YXIgYXR0YWNoZXM7XG5cblx0XHRcdC8vIENsYWltIHRoZSBmaXJzdCBoYW5kbGVyXG5cdFx0XHQvLyBkYXRhUHJpdi5zZXQoIHRoaXMsIFwiZm9jdXNcIiwgLi4uIClcblx0XHRcdC8vIGRhdGFQcml2LnNldCggdGhpcywgXCJibHVyXCIsIC4uLiApXG5cdFx0XHRsZXZlcmFnZU5hdGl2ZSggdGhpcywgdHlwZSwgdHJ1ZSApO1xuXG5cdFx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErXG5cdFx0XHRcdC8vIFdlIHVzZSB0aGUgc2FtZSBuYXRpdmUgaGFuZGxlciBmb3IgZm9jdXNpbiAmIGZvY3VzIChhbmQgZm9jdXNvdXQgJiBibHVyKVxuXHRcdFx0XHQvLyBzbyB3ZSBuZWVkIHRvIGNvb3JkaW5hdGUgc2V0dXAgJiB0ZWFyZG93biBwYXJ0cyBiZXR3ZWVuIHRob3NlIGV2ZW50cy5cblx0XHRcdFx0Ly8gVXNlIGBkZWxlZ2F0ZVR5cGVgIGFzIHRoZSBrZXkgYXMgYHR5cGVgIGlzIGFscmVhZHkgdXNlZCBieSBgbGV2ZXJhZ2VOYXRpdmVgLlxuXHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFQcml2LmdldCggdGhpcywgZGVsZWdhdGVUeXBlICk7XG5cdFx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRcdHRoaXMuYWRkRXZlbnRMaXN0ZW5lciggZGVsZWdhdGVUeXBlLCBmb2N1c01hcHBlZEhhbmRsZXIgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIHRoaXMsIGRlbGVnYXRlVHlwZSwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHRyaWdnZXI6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBGb3JjZSBzZXR1cCBiZWZvcmUgdHJpZ2dlclxuXHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIG5vbi1mYWxzZSB0byBhbGxvdyBub3JtYWwgZXZlbnQtcGF0aCBwcm9wYWdhdGlvblxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdHRlYXJkb3duOiBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBhdHRhY2hlcztcblxuXHRcdFx0aWYgKCBkb2N1bWVudC5kb2N1bWVudE1vZGUgKSB7XG5cdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuZ2V0KCB0aGlzLCBkZWxlZ2F0ZVR5cGUgKSAtIDE7XG5cdFx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lciggZGVsZWdhdGVUeXBlLCBmb2N1c01hcHBlZEhhbmRsZXIgKTtcblx0XHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIHRoaXMsIGRlbGVnYXRlVHlwZSApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgZGVsZWdhdGVUeXBlLCBhdHRhY2hlcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBpbmRpY2F0ZSBzdGFuZGFyZCB0ZWFyZG93biBzaG91bGQgYmUgYXBwbGllZFxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8vIFN1cHByZXNzIG5hdGl2ZSBmb2N1cyBvciBibHVyIGlmIHdlJ3JlIGN1cnJlbnRseSBpbnNpZGVcblx0XHQvLyBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRfZGVmYXVsdDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0cmV0dXJuIGRhdGFQcml2LmdldCggZXZlbnQudGFyZ2V0LCB0eXBlICk7XG5cdFx0fSxcblxuXHRcdGRlbGVnYXRlVHlwZTogZGVsZWdhdGVUeXBlXG5cdH07XG5cblx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTQ0XG5cdC8vIEZpcmVmb3ggZG9lc24ndCBoYXZlIGZvY3VzKGluIHwgb3V0KSBldmVudHNcblx0Ly8gUmVsYXRlZCB0aWNrZXQgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc3ODdcblx0Ly9cblx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9NDggLSA0OSwgU2FmYXJpIDw9OS4wIC0gOS4xXG5cdC8vIGZvY3VzKGluIHwgb3V0KSBldmVudHMgZmlyZSBhZnRlciBmb2N1cyAmIGJsdXIgZXZlbnRzLFxuXHQvLyB3aGljaCBpcyBzcGVjIHZpb2xhdGlvbiAtIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWZvY3VzZXZlbnQtZXZlbnQtb3JkZXJcblx0Ly8gUmVsYXRlZCB0aWNrZXQgLSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDk4NTdcblx0Ly9cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExK1xuXHQvLyBUbyBwcmVzZXJ2ZSByZWxhdGl2ZSBmb2N1c2luL2ZvY3VzICYgZm9jdXNvdXQvYmx1ciBldmVudCBvcmRlciBndWFyYW50ZWVkIG9uIHRoZSAzLnggYnJhbmNoLFxuXHQvLyBhdHRhY2ggYSBzaW5nbGUgaGFuZGxlciBmb3IgYm90aCBldmVudHMgaW4gSUUuXG5cdGpRdWVyeS5ldmVudC5zcGVjaWFsWyBkZWxlZ2F0ZVR5cGUgXSA9IHtcblx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIEhhbmRsZTogcmVndWxhciBub2RlcyAodmlhIGB0aGlzLm93bmVyRG9jdW1lbnRgKSwgd2luZG93XG5cdFx0XHQvLyAodmlhIGB0aGlzLmRvY3VtZW50YCkgJiBkb2N1bWVudCAodmlhIGB0aGlzYCkuXG5cdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMuZG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0ZGF0YUhvbGRlciA9IGRvY3VtZW50LmRvY3VtZW50TW9kZSA/IHRoaXMgOiBkb2MsXG5cdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuZ2V0KCBkYXRhSG9sZGVyLCBkZWxlZ2F0ZVR5cGUgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExK1xuXHRcdFx0Ly8gV2UgdXNlIHRoZSBzYW1lIG5hdGl2ZSBoYW5kbGVyIGZvciBmb2N1c2luICYgZm9jdXMgKGFuZCBmb2N1c291dCAmIGJsdXIpXG5cdFx0XHQvLyBzbyB3ZSBuZWVkIHRvIGNvb3JkaW5hdGUgc2V0dXAgJiB0ZWFyZG93biBwYXJ0cyBiZXR3ZWVuIHRob3NlIGV2ZW50cy5cblx0XHRcdC8vIFVzZSBgZGVsZWdhdGVUeXBlYCBhcyB0aGUga2V5IGFzIGB0eXBlYCBpcyBhbHJlYWR5IHVzZWQgYnkgYGxldmVyYWdlTmF0aXZlYC5cblx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblx0XHRcdFx0XHR0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIGRlbGVnYXRlVHlwZSwgZm9jdXNNYXBwZWRIYW5kbGVyICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZG9jLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGZvY3VzTWFwcGVkSGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRkYXRhUHJpdi5zZXQoIGRhdGFIb2xkZXIsIGRlbGVnYXRlVHlwZSwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7XG5cdFx0fSxcblx0XHR0ZWFyZG93bjogZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMuZG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0ZGF0YUhvbGRlciA9IGRvY3VtZW50LmRvY3VtZW50TW9kZSA/IHRoaXMgOiBkb2MsXG5cdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuZ2V0KCBkYXRhSG9sZGVyLCBkZWxlZ2F0ZVR5cGUgKSAtIDE7XG5cblx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblx0XHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIGRlbGVnYXRlVHlwZSwgZm9jdXNNYXBwZWRIYW5kbGVyICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIGZvY3VzTWFwcGVkSGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGFQcml2LnJlbW92ZSggZGF0YUhvbGRlciwgZGVsZWdhdGVUeXBlICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIGRhdGFIb2xkZXIsIGRlbGVnYXRlVHlwZSwgYXR0YWNoZXMgKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59ICk7XG5cbi8vIENyZWF0ZSBtb3VzZWVudGVyL2xlYXZlIGV2ZW50cyB1c2luZyBtb3VzZW92ZXIvb3V0IGFuZCBldmVudC10aW1lIGNoZWNrc1xuLy8gc28gdGhhdCBldmVudCBkZWxlZ2F0aW9uIHdvcmtzIGluIGpRdWVyeS5cbi8vIERvIHRoZSBzYW1lIGZvciBwb2ludGVyZW50ZXIvcG9pbnRlcmxlYXZlIGFuZCBwb2ludGVyb3Zlci9wb2ludGVyb3V0XG4vL1xuLy8gU3VwcG9ydDogU2FmYXJpIDcgb25seVxuLy8gU2FmYXJpIHNlbmRzIG1vdXNlZW50ZXIgdG9vIG9mdGVuOyBzZWU6XG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NzAyNThcbi8vIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZyAoaXQgZXhpc3RlZCBpbiBvbGRlciBDaHJvbWUgdmVyc2lvbnMgYXMgd2VsbCkuXG5qUXVlcnkuZWFjaCgge1xuXHRtb3VzZWVudGVyOiBcIm1vdXNlb3ZlclwiLFxuXHRtb3VzZWxlYXZlOiBcIm1vdXNlb3V0XCIsXG5cdHBvaW50ZXJlbnRlcjogXCJwb2ludGVyb3ZlclwiLFxuXHRwb2ludGVybGVhdmU6IFwicG9pbnRlcm91dFwiXG59LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgb3JpZyBdID0ge1xuXHRcdGRlbGVnYXRlVHlwZTogZml4LFxuXHRcdGJpbmRUeXBlOiBmaXgsXG5cblx0XHRoYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdHZhciByZXQsXG5cdFx0XHRcdHRhcmdldCA9IHRoaXMsXG5cdFx0XHRcdHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0LFxuXHRcdFx0XHRoYW5kbGVPYmogPSBldmVudC5oYW5kbGVPYmo7XG5cblx0XHRcdC8vIEZvciBtb3VzZWVudGVyL2xlYXZlIGNhbGwgdGhlIGhhbmRsZXIgaWYgcmVsYXRlZCBpcyBvdXRzaWRlIHRoZSB0YXJnZXQuXG5cdFx0XHQvLyBOQjogTm8gcmVsYXRlZFRhcmdldCBpZiB0aGUgbW91c2UgbGVmdC9lbnRlcmVkIHRoZSBicm93c2VyIHdpbmRvd1xuXHRcdFx0aWYgKCAhcmVsYXRlZCB8fCAoIHJlbGF0ZWQgIT09IHRhcmdldCAmJiAhalF1ZXJ5LmNvbnRhaW5zKCB0YXJnZXQsIHJlbGF0ZWQgKSApICkge1xuXHRcdFx0XHRldmVudC50eXBlID0gaGFuZGxlT2JqLm9yaWdUeXBlO1xuXHRcdFx0XHRyZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdGV2ZW50LnR5cGUgPSBmaXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblx0fTtcbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdG9uOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gb24oIHRoaXMsIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0b25lOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gb24oIHRoaXMsIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIDEgKTtcblx0fSxcblx0b2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHtcblx0XHR2YXIgaGFuZGxlT2JqLCB0eXBlO1xuXHRcdGlmICggdHlwZXMgJiYgdHlwZXMucHJldmVudERlZmF1bHQgJiYgdHlwZXMuaGFuZGxlT2JqICkge1xuXG5cdFx0XHQvLyAoIGV2ZW50ICkgIGRpc3BhdGNoZWQgalF1ZXJ5LkV2ZW50XG5cdFx0XHRoYW5kbGVPYmogPSB0eXBlcy5oYW5kbGVPYmo7XG5cdFx0XHRqUXVlcnkoIHR5cGVzLmRlbGVnYXRlVGFyZ2V0ICkub2ZmKFxuXHRcdFx0XHRoYW5kbGVPYmoubmFtZXNwYWNlID9cblx0XHRcdFx0XHRoYW5kbGVPYmoub3JpZ1R5cGUgKyBcIi5cIiArIGhhbmRsZU9iai5uYW1lc3BhY2UgOlxuXHRcdFx0XHRcdGhhbmRsZU9iai5vcmlnVHlwZSxcblx0XHRcdFx0aGFuZGxlT2JqLnNlbGVjdG9yLFxuXHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlclxuXHRcdFx0KTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcy1vYmplY3QgWywgc2VsZWN0b3JdIClcblx0XHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XG5cdFx0XHRcdHRoaXMub2ZmKCB0eXBlLCBzZWxlY3RvciwgdHlwZXNbIHR5cGUgXSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXHRcdGlmICggc2VsZWN0b3IgPT09IGZhbHNlIHx8IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJmdW5jdGlvblwiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzIFssIGZuXSApXG5cdFx0XHRmbiA9IHNlbGVjdG9yO1xuXHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmICggZm4gPT09IGZhbHNlICkge1xuXHRcdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCB0eXBlcywgZm4sIHNlbGVjdG9yICk7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cblxudmFyXG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMCAtIDExLCBFZGdlIDEyIC0gMTMgb25seVxuXHQvLyBJbiBJRS9FZGdlIHVzaW5nIHJlZ2V4IGdyb3VwcyBoZXJlIGNhdXNlcyBzZXZlcmUgc2xvd2Rvd25zLlxuXHQvLyBTZWUgaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy8xNzM2NTEyL1xuXHRybm9Jbm5lcmh0bWwgPSAvPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxcblxuXHQvLyBjaGVja2VkPVwiY2hlY2tlZFwiIG9yIGNoZWNrZWRcblx0cmNoZWNrZWQgPSAvY2hlY2tlZFxccyooPzpbXj1dfD1cXHMqLmNoZWNrZWQuKS9pLFxuXG5cdHJjbGVhblNjcmlwdCA9IC9eXFxzKjwhXFxbQ0RBVEFcXFt8XFxdXFxdPlxccyokL2c7XG5cbi8vIFByZWZlciBhIHRib2R5IG92ZXIgaXRzIHBhcmVudCB0YWJsZSBmb3IgY29udGFpbmluZyBuZXcgcm93c1xuZnVuY3Rpb24gbWFuaXB1bGF0aW9uVGFyZ2V0KCBlbGVtLCBjb250ZW50ICkge1xuXHRpZiAoIG5vZGVOYW1lKCBlbGVtLCBcInRhYmxlXCIgKSAmJlxuXHRcdG5vZGVOYW1lKCBjb250ZW50Lm5vZGVUeXBlICE9PSAxMSA/IGNvbnRlbnQgOiBjb250ZW50LmZpcnN0Q2hpbGQsIFwidHJcIiApICkge1xuXG5cdFx0cmV0dXJuIGpRdWVyeSggZWxlbSApLmNoaWxkcmVuKCBcInRib2R5XCIgKVsgMCBdIHx8IGVsZW07XG5cdH1cblxuXHRyZXR1cm4gZWxlbTtcbn1cblxuLy8gUmVwbGFjZS9yZXN0b3JlIHRoZSB0eXBlIGF0dHJpYnV0ZSBvZiBzY3JpcHQgZWxlbWVudHMgZm9yIHNhZmUgRE9NIG1hbmlwdWxhdGlvblxuZnVuY3Rpb24gZGlzYWJsZVNjcmlwdCggZWxlbSApIHtcblx0ZWxlbS50eXBlID0gKCBlbGVtLmdldEF0dHJpYnV0ZSggXCJ0eXBlXCIgKSAhPT0gbnVsbCApICsgXCIvXCIgKyBlbGVtLnR5cGU7XG5cdHJldHVybiBlbGVtO1xufVxuZnVuY3Rpb24gcmVzdG9yZVNjcmlwdCggZWxlbSApIHtcblx0aWYgKCAoIGVsZW0udHlwZSB8fCBcIlwiICkuc2xpY2UoIDAsIDUgKSA9PT0gXCJ0cnVlL1wiICkge1xuXHRcdGVsZW0udHlwZSA9IGVsZW0udHlwZS5zbGljZSggNSApO1xuXHR9IGVsc2Uge1xuXHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBcInR5cGVcIiApO1xuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBpLCBsLCB0eXBlLCBwZGF0YU9sZCwgdWRhdGFPbGQsIHVkYXRhQ3VyLCBldmVudHM7XG5cblx0aWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIDEuIENvcHkgcHJpdmF0ZSBkYXRhOiBldmVudHMsIGhhbmRsZXJzLCBldGMuXG5cdGlmICggZGF0YVByaXYuaGFzRGF0YSggc3JjICkgKSB7XG5cdFx0cGRhdGFPbGQgPSBkYXRhUHJpdi5nZXQoIHNyYyApO1xuXHRcdGV2ZW50cyA9IHBkYXRhT2xkLmV2ZW50cztcblxuXHRcdGlmICggZXZlbnRzICkge1xuXHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBkZXN0LCBcImhhbmRsZSBldmVudHNcIiApO1xuXG5cdFx0XHRmb3IgKCB0eXBlIGluIGV2ZW50cyApIHtcblx0XHRcdFx0Zm9yICggaSA9IDAsIGwgPSBldmVudHNbIHR5cGUgXS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggZGVzdCwgdHlwZSwgZXZlbnRzWyB0eXBlIF1bIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gMi4gQ29weSB1c2VyIGRhdGFcblx0aWYgKCBkYXRhVXNlci5oYXNEYXRhKCBzcmMgKSApIHtcblx0XHR1ZGF0YU9sZCA9IGRhdGFVc2VyLmFjY2Vzcyggc3JjICk7XG5cdFx0dWRhdGFDdXIgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgdWRhdGFPbGQgKTtcblxuXHRcdGRhdGFVc2VyLnNldCggZGVzdCwgdWRhdGFDdXIgKTtcblx0fVxufVxuXG4vLyBGaXggSUUgYnVncywgc2VlIHN1cHBvcnQgdGVzdHNcbmZ1bmN0aW9uIGZpeElucHV0KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBub2RlTmFtZSA9IGRlc3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuXHQvLyBGYWlscyB0byBwZXJzaXN0IHRoZSBjaGVja2VkIHN0YXRlIG9mIGEgY2xvbmVkIGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbi5cblx0aWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmIHJjaGVja2FibGVUeXBlLnRlc3QoIHNyYy50eXBlICkgKSB7XG5cdFx0ZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7XG5cblx0Ly8gRmFpbHMgdG8gcmV0dXJuIHRoZSBzZWxlY3RlZCBvcHRpb24gdG8gdGhlIGRlZmF1bHQgc2VsZWN0ZWQgc3RhdGUgd2hlbiBjbG9uaW5nIG9wdGlvbnNcblx0fSBlbHNlIGlmICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiB8fCBub2RlTmFtZSA9PT0gXCJ0ZXh0YXJlYVwiICkge1xuXHRcdGRlc3QuZGVmYXVsdFZhbHVlID0gc3JjLmRlZmF1bHRWYWx1ZTtcblx0fVxufVxuXG5mdW5jdGlvbiBkb21NYW5pcCggY29sbGVjdGlvbiwgYXJncywgY2FsbGJhY2ssIGlnbm9yZWQgKSB7XG5cblx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRhcmdzID0gZmxhdCggYXJncyApO1xuXG5cdHZhciBmcmFnbWVudCwgZmlyc3QsIHNjcmlwdHMsIGhhc1NjcmlwdHMsIG5vZGUsIGRvYyxcblx0XHRpID0gMCxcblx0XHRsID0gY29sbGVjdGlvbi5sZW5ndGgsXG5cdFx0aU5vQ2xvbmUgPSBsIC0gMSxcblx0XHR2YWx1ZSA9IGFyZ3NbIDAgXSxcblx0XHR2YWx1ZUlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdC8vIFdlIGNhbid0IGNsb25lTm9kZSBmcmFnbWVudHMgdGhhdCBjb250YWluIGNoZWNrZWQsIGluIFdlYktpdFxuXHRpZiAoIHZhbHVlSXNGdW5jdGlvbiB8fFxuXHRcdFx0KCBsID4gMSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0IXN1cHBvcnQuY2hlY2tDbG9uZSAmJiByY2hlY2tlZC50ZXN0KCB2YWx1ZSApICkgKSB7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb24uZWFjaCggZnVuY3Rpb24oIGluZGV4ICkge1xuXHRcdFx0dmFyIHNlbGYgPSBjb2xsZWN0aW9uLmVxKCBpbmRleCApO1xuXHRcdFx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdGFyZ3NbIDAgXSA9IHZhbHVlLmNhbGwoIHRoaXMsIGluZGV4LCBzZWxmLmh0bWwoKSApO1xuXHRcdFx0fVxuXHRcdFx0ZG9tTWFuaXAoIHNlbGYsIGFyZ3MsIGNhbGxiYWNrLCBpZ25vcmVkICk7XG5cdFx0fSApO1xuXHR9XG5cblx0aWYgKCBsICkge1xuXHRcdGZyYWdtZW50ID0gYnVpbGRGcmFnbWVudCggYXJncywgY29sbGVjdGlvblsgMCBdLm93bmVyRG9jdW1lbnQsIGZhbHNlLCBjb2xsZWN0aW9uLCBpZ25vcmVkICk7XG5cdFx0Zmlyc3QgPSBmcmFnbWVudC5maXJzdENoaWxkO1xuXG5cdFx0aWYgKCBmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSApIHtcblx0XHRcdGZyYWdtZW50ID0gZmlyc3Q7XG5cdFx0fVxuXG5cdFx0Ly8gUmVxdWlyZSBlaXRoZXIgbmV3IGNvbnRlbnQgb3IgYW4gaW50ZXJlc3QgaW4gaWdub3JlZCBlbGVtZW50cyB0byBpbnZva2UgdGhlIGNhbGxiYWNrXG5cdFx0aWYgKCBmaXJzdCB8fCBpZ25vcmVkICkge1xuXHRcdFx0c2NyaXB0cyA9IGpRdWVyeS5tYXAoIGdldEFsbCggZnJhZ21lbnQsIFwic2NyaXB0XCIgKSwgZGlzYWJsZVNjcmlwdCApO1xuXHRcdFx0aGFzU2NyaXB0cyA9IHNjcmlwdHMubGVuZ3RoO1xuXG5cdFx0XHQvLyBVc2UgdGhlIG9yaWdpbmFsIGZyYWdtZW50IGZvciB0aGUgbGFzdCBpdGVtXG5cdFx0XHQvLyBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXBcblx0XHRcdC8vIGJlaW5nIGVtcHRpZWQgaW5jb3JyZWN0bHkgaW4gY2VydGFpbiBzaXR1YXRpb25zICh0cmFjLTgwNzApLlxuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRub2RlID0gZnJhZ21lbnQ7XG5cblx0XHRcdFx0aWYgKCBpICE9PSBpTm9DbG9uZSApIHtcblx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHQvLyBLZWVwIHJlZmVyZW5jZXMgdG8gY2xvbmVkIHNjcmlwdHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggc2NyaXB0cywgZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYWxsYmFjay5jYWxsKCBjb2xsZWN0aW9uWyBpIF0sIG5vZGUsIGkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXHRcdFx0XHRkb2MgPSBzY3JpcHRzWyBzY3JpcHRzLmxlbmd0aCAtIDEgXS5vd25lckRvY3VtZW50O1xuXG5cdFx0XHRcdC8vIFJlLWVuYWJsZSBzY3JpcHRzXG5cdFx0XHRcdGpRdWVyeS5tYXAoIHNjcmlwdHMsIHJlc3RvcmVTY3JpcHQgKTtcblxuXHRcdFx0XHQvLyBFdmFsdWF0ZSBleGVjdXRhYmxlIHNjcmlwdHMgb24gZmlyc3QgZG9jdW1lbnQgaW5zZXJ0aW9uXG5cdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgaGFzU2NyaXB0czsgaSsrICkge1xuXHRcdFx0XHRcdG5vZGUgPSBzY3JpcHRzWyBpIF07XG5cdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBub2RlLnR5cGUgfHwgXCJcIiApICYmXG5cdFx0XHRcdFx0XHQhZGF0YVByaXYuYWNjZXNzKCBub2RlLCBcImdsb2JhbEV2YWxcIiApICYmXG5cdFx0XHRcdFx0XHRqUXVlcnkuY29udGFpbnMoIGRvYywgbm9kZSApICkge1xuXG5cdFx0XHRcdFx0XHRpZiAoIG5vZGUuc3JjICYmICggbm9kZS50eXBlIHx8IFwiXCIgKS50b0xvd2VyQ2FzZSgpICAhPT0gXCJtb2R1bGVcIiApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBPcHRpb25hbCBBSkFYIGRlcGVuZGVuY3ksIGJ1dCB3b24ndCBydW4gc2NyaXB0cyBpZiBub3QgcHJlc2VudFxuXHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5fZXZhbFVybCAmJiAhbm9kZS5ub01vZHVsZSApIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuX2V2YWxVcmwoIG5vZGUuc3JjLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRub25jZTogbm9kZS5ub25jZSB8fCBub2RlLmdldEF0dHJpYnV0ZSggXCJub25jZVwiIClcblx0XHRcdFx0XHRcdFx0XHR9LCBkb2MgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBVbndyYXAgYSBDREFUQSBzZWN0aW9uIGNvbnRhaW5pbmcgc2NyaXB0IGNvbnRlbnRzLiBUaGlzIHNob3VsZG4ndCBiZVxuXHRcdFx0XHRcdFx0XHQvLyBuZWVkZWQgYXMgaW4gWE1MIGRvY3VtZW50cyB0aGV5J3JlIGFscmVhZHkgbm90IHZpc2libGUgd2hlblxuXHRcdFx0XHRcdFx0XHQvLyBpbnNwZWN0aW5nIGVsZW1lbnQgY29udGVudHMgYW5kIGluIEhUTUwgZG9jdW1lbnRzIHRoZXkgaGF2ZSBub1xuXHRcdFx0XHRcdFx0XHQvLyBtZWFuaW5nIGJ1dCB3ZSdyZSBwcmVzZXJ2aW5nIHRoYXQgbG9naWMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuXHRcdFx0XHRcdFx0XHQvLyBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIDQuMC4gU2VlIGdoLTQ5MDQuXG5cdFx0XHRcdFx0XHRcdERPTUV2YWwoIG5vZGUudGV4dENvbnRlbnQucmVwbGFjZSggcmNsZWFuU2NyaXB0LCBcIlwiICksIG5vZGUsIGRvYyApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjb2xsZWN0aW9uO1xufVxuXG5mdW5jdGlvbiByZW1vdmUoIGVsZW0sIHNlbGVjdG9yLCBrZWVwRGF0YSApIHtcblx0dmFyIG5vZGUsXG5cdFx0bm9kZXMgPSBzZWxlY3RvciA/IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBlbGVtICkgOiBlbGVtLFxuXHRcdGkgPSAwO1xuXG5cdGZvciAoIDsgKCBub2RlID0gbm9kZXNbIGkgXSApICE9IG51bGw7IGkrKyApIHtcblx0XHRpZiAoICFrZWVwRGF0YSAmJiBub2RlLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBub2RlICkgKTtcblx0XHR9XG5cblx0XHRpZiAoIG5vZGUucGFyZW50Tm9kZSApIHtcblx0XHRcdGlmICgga2VlcERhdGEgJiYgaXNBdHRhY2hlZCggbm9kZSApICkge1xuXHRcdFx0XHRzZXRHbG9iYWxFdmFsKCBnZXRBbGwoIG5vZGUsIFwic2NyaXB0XCIgKSApO1xuXHRcdFx0fVxuXHRcdFx0bm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBub2RlICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0aHRtbFByZWZpbHRlcjogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0cmV0dXJuIGh0bWw7XG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uKCBlbGVtLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHtcblx0XHR2YXIgaSwgbCwgc3JjRWxlbWVudHMsIGRlc3RFbGVtZW50cyxcblx0XHRcdGNsb25lID0gZWxlbS5jbG9uZU5vZGUoIHRydWUgKSxcblx0XHRcdGluUGFnZSA9IGlzQXR0YWNoZWQoIGVsZW0gKTtcblxuXHRcdC8vIEZpeCBJRSBjbG9uaW5nIGlzc3Vlc1xuXHRcdGlmICggIXN1cHBvcnQubm9DbG9uZUNoZWNrZWQgJiYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGVsZW0ubm9kZVR5cGUgPT09IDExICkgJiZcblx0XHRcdFx0IWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBXZSBlc2NoZXcgalF1ZXJ5I2ZpbmQgaGVyZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29uczpcblx0XHRcdC8vIGh0dHBzOi8vanNwZXJmLmNvbS9nZXRhbGwtdnMtc2l6emxlLzJcblx0XHRcdGRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTtcblx0XHRcdHNyY0VsZW1lbnRzID0gZ2V0QWxsKCBlbGVtICk7XG5cblx0XHRcdGZvciAoIGkgPSAwLCBsID0gc3JjRWxlbWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRmaXhJbnB1dCggc3JjRWxlbWVudHNbIGkgXSwgZGVzdEVsZW1lbnRzWyBpIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb3B5IHRoZSBldmVudHMgZnJvbSB0aGUgb3JpZ2luYWwgdG8gdGhlIGNsb25lXG5cdFx0aWYgKCBkYXRhQW5kRXZlbnRzICkge1xuXHRcdFx0aWYgKCBkZWVwRGF0YUFuZEV2ZW50cyApIHtcblx0XHRcdFx0c3JjRWxlbWVudHMgPSBzcmNFbGVtZW50cyB8fCBnZXRBbGwoIGVsZW0gKTtcblx0XHRcdFx0ZGVzdEVsZW1lbnRzID0gZGVzdEVsZW1lbnRzIHx8IGdldEFsbCggY2xvbmUgKTtcblxuXHRcdFx0XHRmb3IgKCBpID0gMCwgbCA9IHNyY0VsZW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRjbG9uZUNvcHlFdmVudCggc3JjRWxlbWVudHNbIGkgXSwgZGVzdEVsZW1lbnRzWyBpIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNsb25lICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUHJlc2VydmUgc2NyaXB0IGV2YWx1YXRpb24gaGlzdG9yeVxuXHRcdGRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUsIFwic2NyaXB0XCIgKTtcblx0XHRpZiAoIGRlc3RFbGVtZW50cy5sZW5ndGggPiAwICkge1xuXHRcdFx0c2V0R2xvYmFsRXZhbCggZGVzdEVsZW1lbnRzLCAhaW5QYWdlICYmIGdldEFsbCggZWxlbSwgXCJzY3JpcHRcIiApICk7XG5cdFx0fVxuXG5cdFx0Ly8gUmV0dXJuIHRoZSBjbG9uZWQgc2V0XG5cdFx0cmV0dXJuIGNsb25lO1xuXHR9LFxuXG5cdGNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkge1xuXHRcdHZhciBkYXRhLCBlbGVtLCB0eXBlLFxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRmb3IgKCA7ICggZWxlbSA9IGVsZW1zWyBpIF0gKSAhPT0gdW5kZWZpbmVkOyBpKysgKSB7XG5cdFx0XHRpZiAoIGFjY2VwdERhdGEoIGVsZW0gKSApIHtcblx0XHRcdFx0aWYgKCAoIGRhdGEgPSBlbGVtWyBkYXRhUHJpdi5leHBhbmRvIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGRhdGEuZXZlbnRzICkge1xuXHRcdFx0XHRcdFx0Zm9yICggdHlwZSBpbiBkYXRhLmV2ZW50cyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWRcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGRhdGEuaGFuZGxlICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0zNSAtIDQ1K1xuXHRcdFx0XHRcdC8vIEFzc2lnbiB1bmRlZmluZWQgaW5zdGVhZCBvZiB1c2luZyBkZWxldGUsIHNlZSBEYXRhI3JlbW92ZVxuXHRcdFx0XHRcdGVsZW1bIGRhdGFQcml2LmV4cGFuZG8gXSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIGVsZW1bIGRhdGFVc2VyLmV4cGFuZG8gXSApIHtcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDUrXG5cdFx0XHRcdFx0Ly8gQXNzaWduIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIHVzaW5nIGRlbGV0ZSwgc2VlIERhdGEjcmVtb3ZlXG5cdFx0XHRcdFx0ZWxlbVsgZGF0YVVzZXIuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0ZGV0YWNoOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHJlbW92ZSggdGhpcywgc2VsZWN0b3IsIHRydWUgKTtcblx0fSxcblxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gcmVtb3ZlKCB0aGlzLCBzZWxlY3RvciApO1xuXHR9LFxuXG5cdHRleHQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdGpRdWVyeS50ZXh0KCB0aGlzICkgOlxuXHRcdFx0XHR0aGlzLmVtcHR5KCkuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnRleHRDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICk7XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fSxcblxuXHRhcHBlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7XG5cdFx0XHRcdHRhcmdldC5hcHBlbmRDaGlsZCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRwcmVwZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IG1hbmlwdWxhdGlvblRhcmdldCggdGhpcywgZWxlbSApO1xuXHRcdFx0XHR0YXJnZXQuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0YXJnZXQuZmlyc3RDaGlsZCApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRiZWZvcmU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGFmdGVyOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcy5uZXh0U2libGluZyApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRlbXB0eTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGVsZW0sXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKCBlbGVtID0gdGhpc1sgaSBdICkgIT0gbnVsbDsgaSsrICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdC8vIFByZXZlbnQgbWVtb3J5IGxlYWtzXG5cdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggZWxlbSwgZmFsc2UgKSApO1xuXG5cdFx0XHRcdC8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzXG5cdFx0XHRcdGVsZW0udGV4dENvbnRlbnQgPSBcIlwiO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdGNsb25lOiBmdW5jdGlvbiggZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0ZGF0YUFuZEV2ZW50cyA9IGRhdGFBbmRFdmVudHMgPT0gbnVsbCA/IGZhbHNlIDogZGF0YUFuZEV2ZW50cztcblx0XHRkZWVwRGF0YUFuZEV2ZW50cyA9IGRlZXBEYXRhQW5kRXZlbnRzID09IG51bGwgPyBkYXRhQW5kRXZlbnRzIDogZGVlcERhdGFBbmRFdmVudHM7XG5cblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTtcblx0XHR9ICk7XG5cdH0sXG5cblx0aHRtbDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHZhciBlbGVtID0gdGhpc1sgMCBdIHx8IHt9LFxuXHRcdFx0XHRpID0gMCxcblx0XHRcdFx0bCA9IHRoaXMubGVuZ3RoO1xuXG5cdFx0XHRpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0cmV0dXJuIGVsZW0uaW5uZXJIVE1MO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZWUgaWYgd2UgY2FuIHRha2UgYSBzaG9ydGN1dCBhbmQganVzdCB1c2UgaW5uZXJIVE1MXG5cdFx0XHRpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAhcm5vSW5uZXJodG1sLnRlc3QoIHZhbHVlICkgJiZcblx0XHRcdFx0IXdyYXBNYXBbICggcnRhZ05hbWUuZXhlYyggdmFsdWUgKSB8fCBbIFwiXCIsIFwiXCIgXSApWyAxIF0udG9Mb3dlckNhc2UoKSBdICkge1xuXG5cdFx0XHRcdHZhbHVlID0galF1ZXJ5Lmh0bWxQcmVmaWx0ZXIoIHZhbHVlICk7XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRlbGVtID0gdGhpc1sgaSBdIHx8IHt9O1xuXG5cdFx0XHRcdFx0XHQvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3Ncblx0XHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtLCBmYWxzZSApICk7XG5cdFx0XHRcdFx0XHRcdGVsZW0uaW5uZXJIVE1MID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0ZWxlbSA9IDA7XG5cblx0XHRcdFx0Ly8gSWYgdXNpbmcgaW5uZXJIVE1MIHRocm93cyBhbiBleGNlcHRpb24sIHVzZSB0aGUgZmFsbGJhY2sgbWV0aG9kXG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge31cblx0XHRcdH1cblxuXHRcdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0XHR0aGlzLmVtcHR5KCkuYXBwZW5kKCB2YWx1ZSApO1xuXHRcdFx0fVxuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoICk7XG5cdH0sXG5cblx0cmVwbGFjZVdpdGg6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBpZ25vcmVkID0gW107XG5cblx0XHQvLyBNYWtlIHRoZSBjaGFuZ2VzLCByZXBsYWNpbmcgZWFjaCBub24taWdub3JlZCBjb250ZXh0IGVsZW1lbnQgd2l0aCB0aGUgbmV3IGNvbnRlbnRcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuXG5cdFx0XHRpZiAoIGpRdWVyeS5pbkFycmF5KCB0aGlzLCBpZ25vcmVkICkgPCAwICkge1xuXHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIHRoaXMgKSApO1xuXHRcdFx0XHRpZiAoIHBhcmVudCApIHtcblx0XHRcdFx0XHRwYXJlbnQucmVwbGFjZUNoaWxkKCBlbGVtLCB0aGlzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEZvcmNlIGNhbGxiYWNrIGludm9jYXRpb25cblx0XHR9LCBpZ25vcmVkICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goIHtcblx0YXBwZW5kVG86IFwiYXBwZW5kXCIsXG5cdHByZXBlbmRUbzogXCJwcmVwZW5kXCIsXG5cdGluc2VydEJlZm9yZTogXCJiZWZvcmVcIixcblx0aW5zZXJ0QWZ0ZXI6IFwiYWZ0ZXJcIixcblx0cmVwbGFjZUFsbDogXCJyZXBsYWNlV2l0aFwiXG59LCBmdW5jdGlvbiggbmFtZSwgb3JpZ2luYWwgKSB7XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHZhciBlbGVtcyxcblx0XHRcdHJldCA9IFtdLFxuXHRcdFx0aW5zZXJ0ID0galF1ZXJ5KCBzZWxlY3RvciApLFxuXHRcdFx0bGFzdCA9IGluc2VydC5sZW5ndGggLSAxLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRmb3IgKCA7IGkgPD0gbGFzdDsgaSsrICkge1xuXHRcdFx0ZWxlbXMgPSBpID09PSBsYXN0ID8gdGhpcyA6IHRoaXMuY2xvbmUoIHRydWUgKTtcblx0XHRcdGpRdWVyeSggaW5zZXJ0WyBpIF0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHQvLyAuZ2V0KCkgYmVjYXVzZSBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRwdXNoLmFwcGx5KCByZXQsIGVsZW1zLmdldCgpICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCByZXQgKTtcblx0fTtcbn0gKTtcbnZhciBybnVtbm9ucHggPSBuZXcgUmVnRXhwKCBcIl4oXCIgKyBwbnVtICsgXCIpKD8hcHgpW2EteiVdKyRcIiwgXCJpXCIgKTtcblxudmFyIHJjdXN0b21Qcm9wID0gL14tLS87XG5cblxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5LCBGaXJlZm94IDw9MzAgKHRyYWMtMTUwOTgsIHRyYWMtMTQxNTApXG5cdFx0Ly8gSUUgdGhyb3dzIG9uIGVsZW1lbnRzIGNyZWF0ZWQgaW4gcG9wdXBzXG5cdFx0Ly8gRkYgbWVhbndoaWxlIHRocm93cyBvbiBmcmFtZSBlbGVtZW50cyB0aHJvdWdoIFwiZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZVwiXG5cdFx0dmFyIHZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cblx0XHRpZiAoICF2aWV3IHx8ICF2aWV3Lm9wZW5lciApIHtcblx0XHRcdHZpZXcgPSB3aW5kb3c7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSggZWxlbSApO1xuXHR9O1xuXG52YXIgc3dhcCA9IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBjYWxsYmFjayApIHtcblx0dmFyIHJldCwgbmFtZSxcblx0XHRvbGQgPSB7fTtcblxuXHQvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXNcblx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdG9sZFsgbmFtZSBdID0gZWxlbS5zdHlsZVsgbmFtZSBdO1xuXHRcdGVsZW0uc3R5bGVbIG5hbWUgXSA9IG9wdGlvbnNbIG5hbWUgXTtcblx0fVxuXG5cdHJldCA9IGNhbGxiYWNrLmNhbGwoIGVsZW0gKTtcblxuXHQvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXNcblx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdGVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdO1xuXHR9XG5cblx0cmV0dXJuIHJldDtcbn07XG5cblxudmFyIHJib3hTdHlsZSA9IG5ldyBSZWdFeHAoIGNzc0V4cGFuZC5qb2luKCBcInxcIiApLCBcImlcIiApO1xuXG5cblxuKCBmdW5jdGlvbigpIHtcblxuXHQvLyBFeGVjdXRpbmcgYm90aCBwaXhlbFBvc2l0aW9uICYgYm94U2l6aW5nUmVsaWFibGUgdGVzdHMgcmVxdWlyZSBvbmx5IG9uZSBsYXlvdXRcblx0Ly8gc28gdGhleSdyZSBleGVjdXRlZCBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgdGhlIHNlY29uZCBjb21wdXRhdGlvbi5cblx0ZnVuY3Rpb24gY29tcHV0ZVN0eWxlVGVzdHMoKSB7XG5cblx0XHQvLyBUaGlzIGlzIGEgc2luZ2xldG9uLCB3ZSBuZWVkIHRvIGV4ZWN1dGUgaXQgb25seSBvbmNlXG5cdFx0aWYgKCAhZGl2ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7XCIgK1xuXHRcdFx0XCJtYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjBcIjtcblx0XHRkaXYuc3R5bGUuY3NzVGV4dCA9XG5cdFx0XHRcInBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDtcIiArXG5cdFx0XHRcIm1hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7XCIgK1xuXHRcdFx0XCJ3aWR0aDo2MCU7dG9wOjElXCI7XG5cdFx0ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCBjb250YWluZXIgKS5hcHBlbmRDaGlsZCggZGl2ICk7XG5cblx0XHR2YXIgZGl2U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggZGl2ICk7XG5cdFx0cGl4ZWxQb3NpdGlvblZhbCA9IGRpdlN0eWxlLnRvcCAhPT0gXCIxJVwiO1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seSwgRmlyZWZveCA8PTMgLSA0NFxuXHRcdHJlbGlhYmxlTWFyZ2luTGVmdFZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUubWFyZ2luTGVmdCApID09PSAxMjtcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIC0gNC4zIG9ubHksIFNhZmFyaSA8PTkuMSAtIDEwLjEsIGlPUyA8PTcuMCAtIDkuM1xuXHRcdC8vIFNvbWUgc3R5bGVzIGNvbWUgYmFjayB3aXRoIHBlcmNlbnRhZ2UgdmFsdWVzLCBldmVuIHRob3VnaCB0aGV5IHNob3VsZG4ndFxuXHRcdGRpdi5zdHlsZS5yaWdodCA9IFwiNjAlXCI7XG5cdFx0cGl4ZWxCb3hTdHlsZXNWYWwgPSByb3VuZFBpeGVsTWVhc3VyZXMoIGRpdlN0eWxlLnJpZ2h0ICkgPT09IDM2O1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExIG9ubHlcblx0XHQvLyBEZXRlY3QgbWlzcmVwb3J0aW5nIG9mIGNvbnRlbnQgZGltZW5zaW9ucyBmb3IgYm94LXNpemluZzpib3JkZXItYm94IGVsZW1lbnRzXG5cdFx0Ym94U2l6aW5nUmVsaWFibGVWYWwgPSByb3VuZFBpeGVsTWVhc3VyZXMoIGRpdlN0eWxlLndpZHRoICkgPT09IDM2O1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSBvbmx5XG5cdFx0Ly8gRGV0ZWN0IG92ZXJmbG93OnNjcm9sbCBzY3Jld2luZXNzIChnaC0zNjk5KVxuXHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTY0XG5cdFx0Ly8gRG9uJ3QgZ2V0IHRyaWNrZWQgd2hlbiB6b29tIGFmZmVjdHMgb2Zmc2V0V2lkdGggKGdoLTQwMjkpXG5cdFx0ZGl2LnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuXHRcdHNjcm9sbGJveFNpemVWYWwgPSByb3VuZFBpeGVsTWVhc3VyZXMoIGRpdi5vZmZzZXRXaWR0aCAvIDMgKSA9PT0gMTI7XG5cblx0XHRkb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoIGNvbnRhaW5lciApO1xuXG5cdFx0Ly8gTnVsbGlmeSB0aGUgZGl2IHNvIGl0IHdvdWxkbid0IGJlIHN0b3JlZCBpbiB0aGUgbWVtb3J5IGFuZFxuXHRcdC8vIGl0IHdpbGwgYWxzbyBiZSBhIHNpZ24gdGhhdCBjaGVja3MgYWxyZWFkeSBwZXJmb3JtZWRcblx0XHRkaXYgPSBudWxsO1xuXHR9XG5cblx0ZnVuY3Rpb24gcm91bmRQaXhlbE1lYXN1cmVzKCBtZWFzdXJlICkge1xuXHRcdHJldHVybiBNYXRoLnJvdW5kKCBwYXJzZUZsb2F0KCBtZWFzdXJlICkgKTtcblx0fVxuXG5cdHZhciBwaXhlbFBvc2l0aW9uVmFsLCBib3hTaXppbmdSZWxpYWJsZVZhbCwgc2Nyb2xsYm94U2l6ZVZhbCwgcGl4ZWxCb3hTdHlsZXNWYWwsXG5cdFx0cmVsaWFibGVUckRpbWVuc2lvbnNWYWwsIHJlbGlhYmxlTWFyZ2luTGVmdFZhbCxcblx0XHRjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICksXG5cdFx0ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApO1xuXG5cdC8vIEZpbmlzaCBlYXJseSBpbiBsaW1pdGVkIChub24tYnJvd3NlcikgZW52aXJvbm1lbnRzXG5cdGlmICggIWRpdi5zdHlsZSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSBvbmx5XG5cdC8vIFN0eWxlIG9mIGNsb25lZCBlbGVtZW50IGFmZmVjdHMgc291cmNlIGVsZW1lbnQgY2xvbmVkICh0cmFjLTg5MDgpXG5cdGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9IFwiY29udGVudC1ib3hcIjtcblx0ZGl2LmNsb25lTm9kZSggdHJ1ZSApLnN0eWxlLmJhY2tncm91bmRDbGlwID0gXCJcIjtcblx0c3VwcG9ydC5jbGVhckNsb25lU3R5bGUgPSBkaXYuc3R5bGUuYmFja2dyb3VuZENsaXAgPT09IFwiY29udGVudC1ib3hcIjtcblxuXHRqUXVlcnkuZXh0ZW5kKCBzdXBwb3J0LCB7XG5cdFx0Ym94U2l6aW5nUmVsaWFibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBib3hTaXppbmdSZWxpYWJsZVZhbDtcblx0XHR9LFxuXHRcdHBpeGVsQm94U3R5bGVzOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcGl4ZWxCb3hTdHlsZXNWYWw7XG5cdFx0fSxcblx0XHRwaXhlbFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcGl4ZWxQb3NpdGlvblZhbDtcblx0XHR9LFxuXHRcdHJlbGlhYmxlTWFyZ2luTGVmdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHJlbGlhYmxlTWFyZ2luTGVmdFZhbDtcblx0XHR9LFxuXHRcdHNjcm9sbGJveFNpemU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBzY3JvbGxib3hTaXplVmFsO1xuXHRcdH0sXG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErLCBFZGdlIDE1IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBtaXNyZXBvcnQgYGdldENvbXB1dGVkU3R5bGVgIG9mIHRhYmxlIHJvd3Mgd2l0aCB3aWR0aC9oZWlnaHRcblx0XHQvLyBzZXQgaW4gQ1NTIHdoaWxlIGBvZmZzZXQqYCBwcm9wZXJ0aWVzIHJlcG9ydCBjb3JyZWN0IHZhbHVlcy5cblx0XHQvLyBCZWhhdmlvciBpbiBJRSA5IGlzIG1vcmUgc3VidGxlIHRoYW4gaW4gbmV3ZXIgdmVyc2lvbnMgJiBpdCBwYXNzZXNcblx0XHQvLyBzb21lIHZlcnNpb25zIG9mIHRoaXMgdGVzdDsgbWFrZSBzdXJlIG5vdCB0byBtYWtlIGl0IHBhc3MgdGhlcmUhXG5cdFx0Ly9cblx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDcwK1xuXHRcdC8vIE9ubHkgRmlyZWZveCBpbmNsdWRlcyBib3JkZXIgd2lkdGhzXG5cdFx0Ly8gaW4gY29tcHV0ZWQgZGltZW5zaW9ucy4gKGdoLTQ1MjkpXG5cdFx0cmVsaWFibGVUckRpbWVuc2lvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIHRhYmxlLCB0ciwgdHJDaGlsZCwgdHJTdHlsZTtcblx0XHRcdGlmICggcmVsaWFibGVUckRpbWVuc2lvbnNWYWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcInRhYmxlXCIgKTtcblx0XHRcdFx0dHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcInRyXCIgKTtcblx0XHRcdFx0dHJDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKTtcblxuXHRcdFx0XHR0YWJsZS5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZVwiO1xuXHRcdFx0XHR0ci5zdHlsZS5jc3NUZXh0ID0gXCJib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JvcmRlcjoxcHggc29saWRcIjtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgODYrXG5cdFx0XHRcdC8vIEhlaWdodCBzZXQgdGhyb3VnaCBjc3NUZXh0IGRvZXMgbm90IGdldCBhcHBsaWVkLlxuXHRcdFx0XHQvLyBDb21wdXRlZCBoZWlnaHQgdGhlbiBjb21lcyBiYWNrIGFzIDAuXG5cdFx0XHRcdHRyLnN0eWxlLmhlaWdodCA9IFwiMXB4XCI7XG5cdFx0XHRcdHRyQ2hpbGQuc3R5bGUuaGVpZ2h0ID0gXCI5cHhcIjtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDggQ2hyb21lIDg2K1xuXHRcdFx0XHQvLyBJbiBvdXIgYm9keUJhY2tncm91bmQuaHRtbCBpZnJhbWUsXG5cdFx0XHRcdC8vIGRpc3BsYXkgZm9yIGFsbCBkaXYgZWxlbWVudHMgaXMgc2V0IHRvIFwiaW5saW5lXCIsXG5cdFx0XHRcdC8vIHdoaWNoIGNhdXNlcyBhIHByb2JsZW0gb25seSBpbiBBbmRyb2lkIDggQ2hyb21lIDg2LlxuXHRcdFx0XHQvLyBFbnN1cmluZyB0aGUgZGl2IGlzIGBkaXNwbGF5OiBibG9ja2Bcblx0XHRcdFx0Ly8gZ2V0cyBhcm91bmQgdGhpcyBpc3N1ZS5cblx0XHRcdFx0dHJDaGlsZC5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuXG5cdFx0XHRcdGRvY3VtZW50RWxlbWVudFxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdGFibGUgKVxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdHIgKVxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdHJDaGlsZCApO1xuXG5cdFx0XHRcdHRyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggdHIgKTtcblx0XHRcdFx0cmVsaWFibGVUckRpbWVuc2lvbnNWYWwgPSAoIHBhcnNlSW50KCB0clN0eWxlLmhlaWdodCwgMTAgKSArXG5cdFx0XHRcdFx0cGFyc2VJbnQoIHRyU3R5bGUuYm9yZGVyVG9wV2lkdGgsIDEwICkgK1xuXHRcdFx0XHRcdHBhcnNlSW50KCB0clN0eWxlLmJvcmRlckJvdHRvbVdpZHRoLCAxMCApICkgPT09IHRyLm9mZnNldEhlaWdodDtcblxuXHRcdFx0XHRkb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoIHRhYmxlICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVsaWFibGVUckRpbWVuc2lvbnNWYWw7XG5cdFx0fVxuXHR9ICk7XG59ICkoKTtcblxuXG5mdW5jdGlvbiBjdXJDU1MoIGVsZW0sIG5hbWUsIGNvbXB1dGVkICkge1xuXHR2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwgcmV0LFxuXHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKSxcblxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNTErXG5cdFx0Ly8gUmV0cmlldmluZyBzdHlsZSBiZWZvcmUgY29tcHV0ZWQgc29tZWhvd1xuXHRcdC8vIGZpeGVzIGFuIGlzc3VlIHdpdGggZ2V0dGluZyB3cm9uZyB2YWx1ZXNcblx0XHQvLyBvbiBkZXRhY2hlZCBlbGVtZW50c1xuXHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRjb21wdXRlZCA9IGNvbXB1dGVkIHx8IGdldFN0eWxlcyggZWxlbSApO1xuXG5cdC8vIGdldFByb3BlcnR5VmFsdWUgaXMgbmVlZGVkIGZvcjpcblx0Ly8gICAuY3NzKCdmaWx0ZXInKSAoSUUgOSBvbmx5LCB0cmFjLTEyNTM3KVxuXHQvLyAgIC5jc3MoJy0tY3VzdG9tUHJvcGVydHkpIChnaC0zMTQ0KVxuXHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTErXG5cdFx0Ly8gSUUgb25seSBzdXBwb3J0cyBgXCJmbG9hdFwiYCBpbiBgZ2V0UHJvcGVydHlWYWx1ZWA7IGluIGNvbXB1dGVkIHN0eWxlc1xuXHRcdC8vIGl0J3Mgb25seSBhdmFpbGFibGUgYXMgYFwiY3NzRmxvYXRcImAuIFdlIG5vIGxvbmdlciBtb2RpZnkgcHJvcGVydGllc1xuXHRcdC8vIHNlbnQgdG8gYC5jc3MoKWAgYXBhcnQgZnJvbSBjYW1lbENhc2luZywgc28gd2UgbmVlZCB0byBjaGVjayBib3RoLlxuXHRcdC8vIE5vcm1hbGx5LCB0aGlzIHdvdWxkIGNyZWF0ZSBkaWZmZXJlbmNlIGluIGJlaGF2aW9yOiBpZlxuXHRcdC8vIGBnZXRQcm9wZXJ0eVZhbHVlYCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZywgdGhlIHZhbHVlIHJldHVybmVkXG5cdFx0Ly8gYnkgYC5jc3MoKWAgd291bGQgYmUgYHVuZGVmaW5lZGAuIFRoaXMgaXMgdXN1YWxseSB0aGUgY2FzZSBmb3Jcblx0XHQvLyBkaXNjb25uZWN0ZWQgZWxlbWVudHMuIEhvd2V2ZXIsIGluIElFIGV2ZW4gZGlzY29ubmVjdGVkIGVsZW1lbnRzXG5cdFx0Ly8gd2l0aCBubyBzdHlsZXMgcmV0dXJuIGBcIm5vbmVcImAgZm9yIGBnZXRQcm9wZXJ0eVZhbHVlKCBcImZsb2F0XCIgKWBcblx0XHRyZXQgPSBjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCBuYW1lICkgfHwgY29tcHV0ZWRbIG5hbWUgXTtcblxuXHRcdGlmICggaXNDdXN0b21Qcm9wICYmIHJldCApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCAxMDUrLCBDaHJvbWUgPD0xMDUrXG5cdFx0XHQvLyBTcGVjIHJlcXVpcmVzIHRyaW1taW5nIHdoaXRlc3BhY2UgZm9yIGN1c3RvbSBwcm9wZXJ0aWVzIChnaC00OTI2KS5cblx0XHRcdC8vIEZpcmVmb3ggb25seSB0cmltcyBsZWFkaW5nIHdoaXRlc3BhY2UuIENocm9tZSBqdXN0IGNvbGxhcHNlc1xuXHRcdFx0Ly8gYm90aCBsZWFkaW5nICYgdHJhaWxpbmcgd2hpdGVzcGFjZSB0byBhIHNpbmdsZSBzcGFjZS5cblx0XHRcdC8vXG5cdFx0XHQvLyBGYWxsIGJhY2sgdG8gYHVuZGVmaW5lZGAgaWYgZW1wdHkgc3RyaW5nIHJldHVybmVkLlxuXHRcdFx0Ly8gVGhpcyBjb2xsYXBzZXMgYSBtaXNzaW5nIGRlZmluaXRpb24gd2l0aCBwcm9wZXJ0eSBkZWZpbmVkXG5cdFx0XHQvLyBhbmQgc2V0IHRvIGFuIGVtcHR5IHN0cmluZyBidXQgdGhlcmUncyBubyBzdGFuZGFyZCBBUElcblx0XHRcdC8vIGFsbG93aW5nIHVzIHRvIGRpZmZlcmVudGlhdGUgdGhlbSB3aXRob3V0IGEgcGVyZm9ybWFuY2UgcGVuYWx0eVxuXHRcdFx0Ly8gYW5kIHJldHVybmluZyBgdW5kZWZpbmVkYCBhbGlnbnMgd2l0aCBvbGRlciBqUXVlcnkuXG5cdFx0XHQvL1xuXHRcdFx0Ly8gcnRyaW1DU1MgdHJlYXRzIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gYW5kIFUrMDAwQyBGT1JNIEZFRURcblx0XHRcdC8vIGFzIHdoaXRlc3BhY2Ugd2hpbGUgQ1NTIGRvZXMgbm90LCBidXQgdGhpcyBpcyBub3QgYSBwcm9ibGVtXG5cdFx0XHQvLyBiZWNhdXNlIENTUyBwcmVwcm9jZXNzaW5nIHJlcGxhY2VzIHRoZW0gd2l0aCBVKzAwMEEgTElORSBGRUVEXG5cdFx0XHQvLyAod2hpY2ggKmlzKiBDU1Mgd2hpdGVzcGFjZSlcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTMvI2lucHV0LXByZXByb2Nlc3Npbmdcblx0XHRcdHJldCA9IHJldC5yZXBsYWNlKCBydHJpbUNTUywgXCIkMVwiICkgfHwgdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGlmICggcmV0ID09PSBcIlwiICYmICFpc0F0dGFjaGVkKCBlbGVtICkgKSB7XG5cdFx0XHRyZXQgPSBqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUgKTtcblx0XHR9XG5cblx0XHQvLyBBIHRyaWJ1dGUgdG8gdGhlIFwiYXdlc29tZSBoYWNrIGJ5IERlYW4gRWR3YXJkc1wiXG5cdFx0Ly8gQW5kcm9pZCBCcm93c2VyIHJldHVybnMgcGVyY2VudGFnZSBmb3Igc29tZSB2YWx1ZXMsXG5cdFx0Ly8gYnV0IHdpZHRoIHNlZW1zIHRvIGJlIHJlbGlhYmx5IHBpeGVscy5cblx0XHQvLyBUaGlzIGlzIGFnYWluc3QgdGhlIENTU09NIGRyYWZ0IHNwZWM6XG5cdFx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNyZXNvbHZlZC12YWx1ZXNcblx0XHRpZiAoICFzdXBwb3J0LnBpeGVsQm94U3R5bGVzKCkgJiYgcm51bW5vbnB4LnRlc3QoIHJldCApICYmIHJib3hTdHlsZS50ZXN0KCBuYW1lICkgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcblx0XHRcdHdpZHRoID0gc3R5bGUud2lkdGg7XG5cdFx0XHRtaW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoO1xuXHRcdFx0bWF4V2lkdGggPSBzdHlsZS5tYXhXaWR0aDtcblxuXHRcdFx0Ly8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dFxuXHRcdFx0c3R5bGUubWluV2lkdGggPSBzdHlsZS5tYXhXaWR0aCA9IHN0eWxlLndpZHRoID0gcmV0O1xuXHRcdFx0cmV0ID0gY29tcHV0ZWQud2lkdGg7XG5cblx0XHRcdC8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXNcblx0XHRcdHN0eWxlLndpZHRoID0gd2lkdGg7XG5cdFx0XHRzdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoO1xuXHRcdFx0c3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0ICE9PSB1bmRlZmluZWQgP1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHRcdC8vIElFIHJldHVybnMgekluZGV4IHZhbHVlIGFzIGFuIGludGVnZXIuXG5cdFx0cmV0ICsgXCJcIiA6XG5cdFx0cmV0O1xufVxuXG5cbmZ1bmN0aW9uIGFkZEdldEhvb2tJZiggY29uZGl0aW9uRm4sIGhvb2tGbiApIHtcblxuXHQvLyBEZWZpbmUgdGhlIGhvb2ssIHdlJ2xsIGNoZWNrIG9uIHRoZSBmaXJzdCBydW4gaWYgaXQncyByZWFsbHkgbmVlZGVkLlxuXHRyZXR1cm4ge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGNvbmRpdGlvbkZuKCkgKSB7XG5cblx0XHRcdFx0Ly8gSG9vayBub3QgbmVlZGVkIChvciBpdCdzIG5vdCBwb3NzaWJsZSB0byB1c2UgaXQgZHVlXG5cdFx0XHRcdC8vIHRvIG1pc3NpbmcgZGVwZW5kZW5jeSksIHJlbW92ZSBpdC5cblx0XHRcdFx0ZGVsZXRlIHRoaXMuZ2V0O1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIEhvb2sgbmVlZGVkOyByZWRlZmluZSBpdCBzbyB0aGF0IHRoZSBzdXBwb3J0IHRlc3QgaXMgbm90IGV4ZWN1dGVkIGFnYWluLlxuXHRcdFx0cmV0dXJuICggdGhpcy5nZXQgPSBob29rRm4gKS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fVxuXHR9O1xufVxuXG5cbnZhciBjc3NQcmVmaXhlcyA9IFsgXCJXZWJraXRcIiwgXCJNb3pcIiwgXCJtc1wiIF0sXG5cdGVtcHR5U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkuc3R5bGUsXG5cdHZlbmRvclByb3BzID0ge307XG5cbi8vIFJldHVybiBhIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBvciB1bmRlZmluZWRcbmZ1bmN0aW9uIHZlbmRvclByb3BOYW1lKCBuYW1lICkge1xuXG5cdC8vIENoZWNrIGZvciB2ZW5kb3IgcHJlZml4ZWQgbmFtZXNcblx0dmFyIGNhcE5hbWUgPSBuYW1lWyAwIF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoIDEgKSxcblx0XHRpID0gY3NzUHJlZml4ZXMubGVuZ3RoO1xuXG5cdHdoaWxlICggaS0tICkge1xuXHRcdG5hbWUgPSBjc3NQcmVmaXhlc1sgaSBdICsgY2FwTmFtZTtcblx0XHRpZiAoIG5hbWUgaW4gZW1wdHlTdHlsZSApIHtcblx0XHRcdHJldHVybiBuYW1lO1xuXHRcdH1cblx0fVxufVxuXG4vLyBSZXR1cm4gYSBwb3RlbnRpYWxseS1tYXBwZWQgalF1ZXJ5LmNzc1Byb3BzIG9yIHZlbmRvciBwcmVmaXhlZCBwcm9wZXJ0eVxuZnVuY3Rpb24gZmluYWxQcm9wTmFtZSggbmFtZSApIHtcblx0dmFyIGZpbmFsID0galF1ZXJ5LmNzc1Byb3BzWyBuYW1lIF0gfHwgdmVuZG9yUHJvcHNbIG5hbWUgXTtcblxuXHRpZiAoIGZpbmFsICkge1xuXHRcdHJldHVybiBmaW5hbDtcblx0fVxuXHRpZiAoIG5hbWUgaW4gZW1wdHlTdHlsZSApIHtcblx0XHRyZXR1cm4gbmFtZTtcblx0fVxuXHRyZXR1cm4gdmVuZG9yUHJvcHNbIG5hbWUgXSA9IHZlbmRvclByb3BOYW1lKCBuYW1lICkgfHwgbmFtZTtcbn1cblxuXG52YXJcblxuXHQvLyBTd2FwcGFibGUgaWYgZGlzcGxheSBpcyBub25lIG9yIHN0YXJ0cyB3aXRoIHRhYmxlXG5cdC8vIGV4Y2VwdCBcInRhYmxlXCIsIFwidGFibGUtY2VsbFwiLCBvciBcInRhYmxlLWNhcHRpb25cIlxuXHQvLyBTZWUgaGVyZSBmb3IgZGlzcGxheSB2YWx1ZXM6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvQ1NTL2Rpc3BsYXlcblx0cmRpc3BsYXlzd2FwID0gL14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFxuXHRjc3NTaG93ID0geyBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLCB2aXNpYmlsaXR5OiBcImhpZGRlblwiLCBkaXNwbGF5OiBcImJsb2NrXCIgfSxcblx0Y3NzTm9ybWFsVHJhbnNmb3JtID0ge1xuXHRcdGxldHRlclNwYWNpbmc6IFwiMFwiLFxuXHRcdGZvbnRXZWlnaHQ6IFwiNDAwXCJcblx0fTtcblxuZnVuY3Rpb24gc2V0UG9zaXRpdmVOdW1iZXIoIF9lbGVtLCB2YWx1ZSwgc3VidHJhY3QgKSB7XG5cblx0Ly8gQW55IHJlbGF0aXZlICgrLy0pIHZhbHVlcyBoYXZlIGFscmVhZHkgYmVlblxuXHQvLyBub3JtYWxpemVkIGF0IHRoaXMgcG9pbnRcblx0dmFyIG1hdGNoZXMgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICk7XG5cdHJldHVybiBtYXRjaGVzID9cblxuXHRcdC8vIEd1YXJkIGFnYWluc3QgdW5kZWZpbmVkIFwic3VidHJhY3RcIiwgZS5nLiwgd2hlbiB1c2VkIGFzIGluIGNzc0hvb2tzXG5cdFx0TWF0aC5tYXgoIDAsIG1hdGNoZXNbIDIgXSAtICggc3VidHJhY3QgfHwgMCApICkgKyAoIG1hdGNoZXNbIDMgXSB8fCBcInB4XCIgKSA6XG5cdFx0dmFsdWU7XG59XG5cbmZ1bmN0aW9uIGJveE1vZGVsQWRqdXN0bWVudCggZWxlbSwgZGltZW5zaW9uLCBib3gsIGlzQm9yZGVyQm94LCBzdHlsZXMsIGNvbXB1dGVkVmFsICkge1xuXHR2YXIgaSA9IGRpbWVuc2lvbiA9PT0gXCJ3aWR0aFwiID8gMSA6IDAsXG5cdFx0ZXh0cmEgPSAwLFxuXHRcdGRlbHRhID0gMCxcblx0XHRtYXJnaW5EZWx0YSA9IDA7XG5cblx0Ly8gQWRqdXN0bWVudCBtYXkgbm90IGJlIG5lY2Vzc2FyeVxuXHRpZiAoIGJveCA9PT0gKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApICkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXG5cdFx0Ly8gQm90aCBib3ggbW9kZWxzIGV4Y2x1ZGUgbWFyZ2luXG5cdFx0Ly8gQ291bnQgbWFyZ2luIGRlbHRhIHNlcGFyYXRlbHkgdG8gb25seSBhZGQgaXQgYWZ0ZXIgc2Nyb2xsIGd1dHRlciBhZGp1c3RtZW50LlxuXHRcdC8vIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgbmVnYXRpdmUgbWFyZ2lucyB3b3JrIHdpdGggYG91dGVySGVpZ2h0KCB0cnVlIClgIChnaC0zOTgyKS5cblx0XHRpZiAoIGJveCA9PT0gXCJtYXJnaW5cIiApIHtcblx0XHRcdG1hcmdpbkRlbHRhICs9IGpRdWVyeS5jc3MoIGVsZW0sIGJveCArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblx0XHR9XG5cblx0XHQvLyBJZiB3ZSBnZXQgaGVyZSB3aXRoIGEgY29udGVudC1ib3gsIHdlJ3JlIHNlZWtpbmcgXCJwYWRkaW5nXCIgb3IgXCJib3JkZXJcIiBvciBcIm1hcmdpblwiXG5cdFx0aWYgKCAhaXNCb3JkZXJCb3ggKSB7XG5cblx0XHRcdC8vIEFkZCBwYWRkaW5nXG5cdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gRm9yIFwiYm9yZGVyXCIgb3IgXCJtYXJnaW5cIiwgYWRkIGJvcmRlclxuXHRcdFx0aWYgKCBib3ggIT09IFwicGFkZGluZ1wiICkge1xuXHRcdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXG5cdFx0XHQvLyBCdXQgc3RpbGwga2VlcCB0cmFjayBvZiBpdCBvdGhlcndpc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGV4dHJhICs9IGpRdWVyeS5jc3MoIGVsZW0sIFwiYm9yZGVyXCIgKyBjc3NFeHBhbmRbIGkgXSArIFwiV2lkdGhcIiwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHQvLyBJZiB3ZSBnZXQgaGVyZSB3aXRoIGEgYm9yZGVyLWJveCAoY29udGVudCArIHBhZGRpbmcgKyBib3JkZXIpLCB3ZSdyZSBzZWVraW5nIFwiY29udGVudFwiIG9yXG5cdFx0Ly8gXCJwYWRkaW5nXCIgb3IgXCJtYXJnaW5cIlxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIEZvciBcImNvbnRlbnRcIiwgc3VidHJhY3QgcGFkZGluZ1xuXHRcdFx0aWYgKCBib3ggPT09IFwiY29udGVudFwiICkge1xuXHRcdFx0XHRkZWx0YSAtPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRm9yIFwiY29udGVudFwiIG9yIFwicGFkZGluZ1wiLCBzdWJ0cmFjdCBib3JkZXJcblx0XHRcdGlmICggYm94ICE9PSBcIm1hcmdpblwiICkge1xuXHRcdFx0XHRkZWx0YSAtPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEFjY291bnQgZm9yIHBvc2l0aXZlIGNvbnRlbnQtYm94IHNjcm9sbCBndXR0ZXIgd2hlbiByZXF1ZXN0ZWQgYnkgcHJvdmlkaW5nIGNvbXB1dGVkVmFsXG5cdGlmICggIWlzQm9yZGVyQm94ICYmIGNvbXB1dGVkVmFsID49IDAgKSB7XG5cblx0XHQvLyBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgaXMgYSByb3VuZGVkIHN1bSBvZiBjb250ZW50LCBwYWRkaW5nLCBzY3JvbGwgZ3V0dGVyLCBhbmQgYm9yZGVyXG5cdFx0Ly8gQXNzdW1pbmcgaW50ZWdlciBzY3JvbGwgZ3V0dGVyLCBzdWJ0cmFjdCB0aGUgcmVzdCBhbmQgcm91bmQgZG93blxuXHRcdGRlbHRhICs9IE1hdGgubWF4KCAwLCBNYXRoLmNlaWwoXG5cdFx0XHRlbGVtWyBcIm9mZnNldFwiICsgZGltZW5zaW9uWyAwIF0udG9VcHBlckNhc2UoKSArIGRpbWVuc2lvbi5zbGljZSggMSApIF0gLVxuXHRcdFx0Y29tcHV0ZWRWYWwgLVxuXHRcdFx0ZGVsdGEgLVxuXHRcdFx0ZXh0cmEgLVxuXHRcdFx0MC41XG5cblx0XHQvLyBJZiBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgaXMgdW5rbm93biwgdGhlbiB3ZSBjYW4ndCBkZXRlcm1pbmUgY29udGVudC1ib3ggc2Nyb2xsIGd1dHRlclxuXHRcdC8vIFVzZSBhbiBleHBsaWNpdCB6ZXJvIHRvIGF2b2lkIE5hTiAoZ2gtMzk2NClcblx0XHQpICkgfHwgMDtcblx0fVxuXG5cdHJldHVybiBkZWx0YSArIG1hcmdpbkRlbHRhO1xufVxuXG5mdW5jdGlvbiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICkge1xuXG5cdC8vIFN0YXJ0IHdpdGggY29tcHV0ZWQgc3R5bGVcblx0dmFyIHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApLFxuXG5cdFx0Ly8gVG8gYXZvaWQgZm9yY2luZyBhIHJlZmxvdywgb25seSBmZXRjaCBib3hTaXppbmcgaWYgd2UgbmVlZCBpdCAoZ2gtNDMyMikuXG5cdFx0Ly8gRmFrZSBjb250ZW50LWJveCB1bnRpbCB3ZSBrbm93IGl0J3MgbmVlZGVkIHRvIGtub3cgdGhlIHRydWUgdmFsdWUuXG5cdFx0Ym94U2l6aW5nTmVlZGVkID0gIXN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGUoKSB8fCBleHRyYSxcblx0XHRpc0JvcmRlckJveCA9IGJveFNpemluZ05lZWRlZCAmJlxuXHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJib3hTaXppbmdcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImJvcmRlci1ib3hcIixcblx0XHR2YWx1ZUlzQm9yZGVyQm94ID0gaXNCb3JkZXJCb3gsXG5cblx0XHR2YWwgPSBjdXJDU1MoIGVsZW0sIGRpbWVuc2lvbiwgc3R5bGVzICksXG5cdFx0b2Zmc2V0UHJvcCA9IFwib2Zmc2V0XCIgKyBkaW1lbnNpb25bIDAgXS50b1VwcGVyQ2FzZSgpICsgZGltZW5zaW9uLnNsaWNlKCAxICk7XG5cblx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTU0XG5cdC8vIFJldHVybiBhIGNvbmZvdW5kaW5nIG5vbi1waXhlbCB2YWx1ZSBvciBmZWlnbiBpZ25vcmFuY2UsIGFzIGFwcHJvcHJpYXRlLlxuXHRpZiAoIHJudW1ub25weC50ZXN0KCB2YWwgKSApIHtcblx0XHRpZiAoICFleHRyYSApIHtcblx0XHRcdHJldHVybiB2YWw7XG5cdFx0fVxuXHRcdHZhbCA9IFwiYXV0b1wiO1xuXHR9XG5cblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHQvLyBVc2Ugb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGZvciB3aGVuIGJveCBzaXppbmcgaXMgdW5yZWxpYWJsZS5cblx0Ly8gSW4gdGhvc2UgY2FzZXMsIHRoZSBjb21wdXRlZCB2YWx1ZSBjYW4gYmUgdHJ1c3RlZCB0byBiZSBib3JkZXItYm94LlxuXHRpZiAoICggIXN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGUoKSAmJiBpc0JvcmRlckJveCB8fFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgMTAgLSAxMSssIEVkZ2UgMTUgLSAxOCtcblx0XHQvLyBJRS9FZGdlIG1pc3JlcG9ydCBgZ2V0Q29tcHV0ZWRTdHlsZWAgb2YgdGFibGUgcm93cyB3aXRoIHdpZHRoL2hlaWdodFxuXHRcdC8vIHNldCBpbiBDU1Mgd2hpbGUgYG9mZnNldCpgIHByb3BlcnRpZXMgcmVwb3J0IGNvcnJlY3QgdmFsdWVzLlxuXHRcdC8vIEludGVyZXN0aW5nbHksIGluIHNvbWUgY2FzZXMgSUUgOSBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoaXMgaXNzdWUuXG5cdFx0IXN1cHBvcnQucmVsaWFibGVUckRpbWVuc2lvbnMoKSAmJiBub2RlTmFtZSggZWxlbSwgXCJ0clwiICkgfHxcblxuXHRcdC8vIEZhbGwgYmFjayB0byBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgd2hlbiB2YWx1ZSBpcyBcImF1dG9cIlxuXHRcdC8vIFRoaXMgaGFwcGVucyBmb3IgaW5saW5lIGVsZW1lbnRzIHdpdGggbm8gZXhwbGljaXQgc2V0dGluZyAoZ2gtMzU3MSlcblx0XHR2YWwgPT09IFwiYXV0b1wiIHx8XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4xIC0gNC4zIG9ubHlcblx0XHQvLyBBbHNvIHVzZSBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgZm9yIG1pc3JlcG9ydGVkIGlubGluZSBkaW1lbnNpb25zIChnaC0zNjAyKVxuXHRcdCFwYXJzZUZsb2F0KCB2YWwgKSAmJiBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImlubGluZVwiICkgJiZcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyB2aXNpYmxlICYgY29ubmVjdGVkXG5cdFx0ZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCApIHtcblxuXHRcdGlzQm9yZGVyQm94ID0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3hTaXppbmdcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImJvcmRlci1ib3hcIjtcblxuXHRcdC8vIFdoZXJlIGF2YWlsYWJsZSwgb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGFwcHJveGltYXRlIGJvcmRlciBib3ggZGltZW5zaW9ucy5cblx0XHQvLyBXaGVyZSBub3QgYXZhaWxhYmxlIChlLmcuLCBTVkcpLCBhc3N1bWUgdW5yZWxpYWJsZSBib3gtc2l6aW5nIGFuZCBpbnRlcnByZXQgdGhlXG5cdFx0Ly8gcmV0cmlldmVkIHZhbHVlIGFzIGEgY29udGVudCBib3ggZGltZW5zaW9uLlxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBvZmZzZXRQcm9wIGluIGVsZW07XG5cdFx0aWYgKCB2YWx1ZUlzQm9yZGVyQm94ICkge1xuXHRcdFx0dmFsID0gZWxlbVsgb2Zmc2V0UHJvcCBdO1xuXHRcdH1cblx0fVxuXG5cdC8vIE5vcm1hbGl6ZSBcIlwiIGFuZCBhdXRvXG5cdHZhbCA9IHBhcnNlRmxvYXQoIHZhbCApIHx8IDA7XG5cblx0Ly8gQWRqdXN0IGZvciB0aGUgZWxlbWVudCdzIGJveCBtb2RlbFxuXHRyZXR1cm4gKCB2YWwgK1xuXHRcdGJveE1vZGVsQWRqdXN0bWVudChcblx0XHRcdGVsZW0sXG5cdFx0XHRkaW1lbnNpb24sXG5cdFx0XHRleHRyYSB8fCAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICksXG5cdFx0XHR2YWx1ZUlzQm9yZGVyQm94LFxuXHRcdFx0c3R5bGVzLFxuXG5cdFx0XHQvLyBQcm92aWRlIHRoZSBjdXJyZW50IGNvbXB1dGVkIHNpemUgdG8gcmVxdWVzdCBzY3JvbGwgZ3V0dGVyIGNhbGN1bGF0aW9uIChnaC0zNTg5KVxuXHRcdFx0dmFsXG5cdFx0KVxuXHQpICsgXCJweFwiO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG5cdC8vIGJlaGF2aW9yIG9mIGdldHRpbmcgYW5kIHNldHRpbmcgYSBzdHlsZSBwcm9wZXJ0eVxuXHRjc3NIb29rczoge1xuXHRcdG9wYWNpdHk6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdFx0Ly8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHlcblx0XHRcdFx0XHR2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCBcIm9wYWNpdHlcIiApO1xuXHRcdFx0XHRcdHJldHVybiByZXQgPT09IFwiXCIgPyBcIjFcIiA6IHJldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvLyBEb24ndCBhdXRvbWF0aWNhbGx5IGFkZCBcInB4XCIgdG8gdGhlc2UgcG9zc2libHktdW5pdGxlc3MgcHJvcGVydGllc1xuXHRjc3NOdW1iZXI6IHtcblx0XHRhbmltYXRpb25JdGVyYXRpb25Db3VudDogdHJ1ZSxcblx0XHRhc3BlY3RSYXRpbzogdHJ1ZSxcblx0XHRib3JkZXJJbWFnZVNsaWNlOiB0cnVlLFxuXHRcdGNvbHVtbkNvdW50OiB0cnVlLFxuXHRcdGZsZXhHcm93OiB0cnVlLFxuXHRcdGZsZXhTaHJpbms6IHRydWUsXG5cdFx0Zm9udFdlaWdodDogdHJ1ZSxcblx0XHRncmlkQXJlYTogdHJ1ZSxcblx0XHRncmlkQ29sdW1uOiB0cnVlLFxuXHRcdGdyaWRDb2x1bW5FbmQ6IHRydWUsXG5cdFx0Z3JpZENvbHVtblN0YXJ0OiB0cnVlLFxuXHRcdGdyaWRSb3c6IHRydWUsXG5cdFx0Z3JpZFJvd0VuZDogdHJ1ZSxcblx0XHRncmlkUm93U3RhcnQ6IHRydWUsXG5cdFx0bGluZUhlaWdodDogdHJ1ZSxcblx0XHRvcGFjaXR5OiB0cnVlLFxuXHRcdG9yZGVyOiB0cnVlLFxuXHRcdG9ycGhhbnM6IHRydWUsXG5cdFx0c2NhbGU6IHRydWUsXG5cdFx0d2lkb3dzOiB0cnVlLFxuXHRcdHpJbmRleDogdHJ1ZSxcblx0XHR6b29tOiB0cnVlLFxuXG5cdFx0Ly8gU1ZHLXJlbGF0ZWRcblx0XHRmaWxsT3BhY2l0eTogdHJ1ZSxcblx0XHRmbG9vZE9wYWNpdHk6IHRydWUsXG5cdFx0c3RvcE9wYWNpdHk6IHRydWUsXG5cdFx0c3Ryb2tlTWl0ZXJsaW1pdDogdHJ1ZSxcblx0XHRzdHJva2VPcGFjaXR5OiB0cnVlXG5cdH0sXG5cblx0Ly8gQWRkIGluIHByb3BlcnRpZXMgd2hvc2UgbmFtZXMgeW91IHdpc2ggdG8gZml4IGJlZm9yZVxuXHQvLyBzZXR0aW5nIG9yIGdldHRpbmcgdGhlIHZhbHVlXG5cdGNzc1Byb3BzOiB7fSxcblxuXHQvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZVxuXHRzdHlsZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBleHRyYSApIHtcblxuXHRcdC8vIERvbid0IHNldCBzdHlsZXMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggIWVsZW0gfHwgZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4IHx8ICFlbGVtLnN0eWxlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZVxuXHRcdHZhciByZXQsIHR5cGUsIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBjYW1lbENhc2UoIG5hbWUgKSxcblx0XHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKSxcblx0XHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZS4gV2UgZG9uJ3Rcblx0XHQvLyB3YW50IHRvIHF1ZXJ5IHRoZSB2YWx1ZSBpZiBpdCBpcyBhIENTUyBjdXN0b20gcHJvcGVydHlcblx0XHQvLyBzaW5jZSB0aGV5IGFyZSB1c2VyLWRlZmluZWQuXG5cdFx0aWYgKCAhaXNDdXN0b21Qcm9wICkge1xuXHRcdFx0bmFtZSA9IGZpbmFsUHJvcE5hbWUoIG9yaWdOYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gR2V0cyBob29rIGZvciB0aGUgcHJlZml4ZWQgdmVyc2lvbiwgdGhlbiB1bnByZWZpeGVkIHZlcnNpb25cblx0XHRob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05hbWUgXTtcblxuXHRcdC8vIENoZWNrIGlmIHdlJ3JlIHNldHRpbmcgYSB2YWx1ZVxuXHRcdGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cblx0XHRcdC8vIENvbnZlcnQgXCIrPVwiIG9yIFwiLT1cIiB0byByZWxhdGl2ZSBudW1iZXJzICh0cmFjLTczNDUpXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwic3RyaW5nXCIgJiYgKCByZXQgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICkgKSAmJiByZXRbIDEgXSApIHtcblx0XHRcdFx0dmFsdWUgPSBhZGp1c3RDU1MoIGVsZW0sIG5hbWUsIHJldCApO1xuXG5cdFx0XHRcdC8vIEZpeGVzIGJ1ZyB0cmFjLTkyMzdcblx0XHRcdFx0dHlwZSA9IFwibnVtYmVyXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IG51bGwgYW5kIE5hTiB2YWx1ZXMgYXJlbid0IHNldCAodHJhYy03MTE2KVxuXHRcdFx0aWYgKCB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlICE9PSB2YWx1ZSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIG51bWJlciB3YXMgcGFzc2VkIGluLCBhZGQgdGhlIHVuaXQgKGV4Y2VwdCBmb3IgY2VydGFpbiBDU1MgcHJvcGVydGllcylcblx0XHRcdC8vIFRoZSBpc0N1c3RvbVByb3AgY2hlY2sgY2FuIGJlIHJlbW92ZWQgaW4galF1ZXJ5IDQuMCB3aGVuIHdlIG9ubHkgYXV0by1hcHBlbmRcblx0XHRcdC8vIFwicHhcIiB0byBhIGZldyBoYXJkY29kZWQgdmFsdWVzLlxuXHRcdFx0aWYgKCB0eXBlID09PSBcIm51bWJlclwiICYmICFpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRcdHZhbHVlICs9IHJldCAmJiByZXRbIDMgXSB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIG9yaWdOYW1lIF0gPyBcIlwiIDogXCJweFwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGJhY2tncm91bmQtKiBwcm9wcyBhZmZlY3Qgb3JpZ2luYWwgY2xvbmUncyB2YWx1ZXNcblx0XHRcdGlmICggIXN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlICYmIHZhbHVlID09PSBcIlwiICYmIG5hbWUuaW5kZXhPZiggXCJiYWNrZ3JvdW5kXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IFwiaW5oZXJpdFwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWVcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoIFwic2V0XCIgaW4gaG9va3MgKSB8fFxuXHRcdFx0XHQoIHZhbHVlID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0aWYgKCBpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRcdFx0c3R5bGUuc2V0UHJvcGVydHkoIG5hbWUsIHZhbHVlICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcblx0XHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJlxuXHRcdFx0XHQoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgZmFsc2UsIGV4dHJhICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0XG5cdFx0XHRyZXR1cm4gc3R5bGVbIG5hbWUgXTtcblx0XHR9XG5cdH0sXG5cblx0Y3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEsIHN0eWxlcyApIHtcblx0XHR2YXIgdmFsLCBudW0sIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBjYW1lbENhc2UoIG5hbWUgKSxcblx0XHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKTtcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZS4gV2UgZG9uJ3Rcblx0XHQvLyB3YW50IHRvIG1vZGlmeSB0aGUgdmFsdWUgaWYgaXQgaXMgYSBDU1MgY3VzdG9tIHByb3BlcnR5XG5cdFx0Ly8gc2luY2UgdGhleSBhcmUgdXNlci1kZWZpbmVkLlxuXHRcdGlmICggIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdG5hbWUgPSBmaW5hbFByb3BOYW1lKCBvcmlnTmFtZSApO1xuXHRcdH1cblxuXHRcdC8vIFRyeSBwcmVmaXhlZCBuYW1lIGZvbGxvd2VkIGJ5IHRoZSB1bnByZWZpeGVkIG5hbWVcblx0XHRob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05hbWUgXTtcblxuXHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBmcm9tIHRoZXJlXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsID0gaG9va3MuZ2V0KCBlbGVtLCB0cnVlLCBleHRyYSApO1xuXHRcdH1cblxuXHRcdC8vIE90aGVyd2lzZSwgaWYgYSB3YXkgdG8gZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBleGlzdHMsIHVzZSB0aGF0XG5cdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgbmFtZSwgc3R5bGVzICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBcIm5vcm1hbFwiIHRvIGNvbXB1dGVkIHZhbHVlXG5cdFx0aWYgKCB2YWwgPT09IFwibm9ybWFsXCIgJiYgbmFtZSBpbiBjc3NOb3JtYWxUcmFuc2Zvcm0gKSB7XG5cdFx0XHR2YWwgPSBjc3NOb3JtYWxUcmFuc2Zvcm1bIG5hbWUgXTtcblx0XHR9XG5cblx0XHQvLyBNYWtlIG51bWVyaWMgaWYgZm9yY2VkIG9yIGEgcXVhbGlmaWVyIHdhcyBwcm92aWRlZCBhbmQgdmFsIGxvb2tzIG51bWVyaWNcblx0XHRpZiAoIGV4dHJhID09PSBcIlwiIHx8IGV4dHJhICkge1xuXHRcdFx0bnVtID0gcGFyc2VGbG9hdCggdmFsICk7XG5cdFx0XHRyZXR1cm4gZXh0cmEgPT09IHRydWUgfHwgaXNGaW5pdGUoIG51bSApID8gbnVtIHx8IDAgOiB2YWw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbDtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcImhlaWdodFwiLCBcIndpZHRoXCIgXSwgZnVuY3Rpb24oIF9pLCBkaW1lbnNpb24gKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgZGltZW5zaW9uIF0gPSB7XG5cdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkge1xuXHRcdFx0aWYgKCBjb21wdXRlZCApIHtcblxuXHRcdFx0XHQvLyBDZXJ0YWluIGVsZW1lbnRzIGNhbiBoYXZlIGRpbWVuc2lvbiBpbmZvIGlmIHdlIGludmlzaWJseSBzaG93IHRoZW1cblx0XHRcdFx0Ly8gYnV0IGl0IG11c3QgaGF2ZSBhIGN1cnJlbnQgZGlzcGxheSBzdHlsZSB0aGF0IHdvdWxkIGJlbmVmaXRcblx0XHRcdFx0cmV0dXJuIHJkaXNwbGF5c3dhcC50ZXN0KCBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApICkgJiZcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA4K1xuXHRcdFx0XHRcdC8vIFRhYmxlIGNvbHVtbnMgaW4gU2FmYXJpIGhhdmUgbm9uLXplcm8gb2Zmc2V0V2lkdGggJiB6ZXJvXG5cdFx0XHRcdFx0Ly8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggdW5sZXNzIGRpc3BsYXkgaXMgY2hhbmdlZC5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0XHRcdFx0XHQvLyBSdW5uaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBvbiBhIGRpc2Nvbm5lY3RlZCBub2RlXG5cdFx0XHRcdFx0Ly8gaW4gSUUgdGhyb3dzIGFuIGVycm9yLlxuXHRcdFx0XHRcdCggIWVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggfHwgIWVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKSA/XG5cdFx0XHRcdFx0c3dhcCggZWxlbSwgY3NzU2hvdywgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZ2V0V2lkdGhPckhlaWdodCggZWxlbSwgZGltZW5zaW9uLCBleHRyYSApO1xuXHRcdFx0XHRcdH0gKSA6XG5cdFx0XHRcdFx0Z2V0V2lkdGhPckhlaWdodCggZWxlbSwgZGltZW5zaW9uLCBleHRyYSApO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSB7XG5cdFx0XHR2YXIgbWF0Y2hlcyxcblx0XHRcdFx0c3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cblx0XHRcdFx0Ly8gT25seSByZWFkIHN0eWxlcy5wb3NpdGlvbiBpZiB0aGUgdGVzdCBoYXMgYSBjaGFuY2UgdG8gZmFpbFxuXHRcdFx0XHQvLyB0byBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LlxuXHRcdFx0XHRzY3JvbGxib3hTaXplQnVnZ3kgPSAhc3VwcG9ydC5zY3JvbGxib3hTaXplKCkgJiZcblx0XHRcdFx0XHRzdHlsZXMucG9zaXRpb24gPT09IFwiYWJzb2x1dGVcIixcblxuXHRcdFx0XHQvLyBUbyBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LCBvbmx5IGZldGNoIGJveFNpemluZyBpZiB3ZSBuZWVkIGl0IChnaC0zOTkxKVxuXHRcdFx0XHRib3hTaXppbmdOZWVkZWQgPSBzY3JvbGxib3hTaXplQnVnZ3kgfHwgZXh0cmEsXG5cdFx0XHRcdGlzQm9yZGVyQm94ID0gYm94U2l6aW5nTmVlZGVkICYmXG5cdFx0XHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJib3hTaXppbmdcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImJvcmRlci1ib3hcIixcblx0XHRcdFx0c3VidHJhY3QgPSBleHRyYSA/XG5cdFx0XHRcdFx0Ym94TW9kZWxBZGp1c3RtZW50KFxuXHRcdFx0XHRcdFx0ZWxlbSxcblx0XHRcdFx0XHRcdGRpbWVuc2lvbixcblx0XHRcdFx0XHRcdGV4dHJhLFxuXHRcdFx0XHRcdFx0aXNCb3JkZXJCb3gsXG5cdFx0XHRcdFx0XHRzdHlsZXNcblx0XHRcdFx0XHQpIDpcblx0XHRcdFx0XHQwO1xuXG5cdFx0XHQvLyBBY2NvdW50IGZvciB1bnJlbGlhYmxlIGJvcmRlci1ib3ggZGltZW5zaW9ucyBieSBjb21wYXJpbmcgb2Zmc2V0KiB0byBjb21wdXRlZCBhbmRcblx0XHRcdC8vIGZha2luZyBhIGNvbnRlbnQtYm94IHRvIGdldCBib3JkZXIgYW5kIHBhZGRpbmcgKGdoLTM2OTkpXG5cdFx0XHRpZiAoIGlzQm9yZGVyQm94ICYmIHNjcm9sbGJveFNpemVCdWdneSApIHtcblx0XHRcdFx0c3VidHJhY3QgLT0gTWF0aC5jZWlsKFxuXHRcdFx0XHRcdGVsZW1bIFwib2Zmc2V0XCIgKyBkaW1lbnNpb25bIDAgXS50b1VwcGVyQ2FzZSgpICsgZGltZW5zaW9uLnNsaWNlKCAxICkgXSAtXG5cdFx0XHRcdFx0cGFyc2VGbG9hdCggc3R5bGVzWyBkaW1lbnNpb24gXSApIC1cblx0XHRcdFx0XHRib3hNb2RlbEFkanVzdG1lbnQoIGVsZW0sIGRpbWVuc2lvbiwgXCJib3JkZXJcIiwgZmFsc2UsIHN0eWxlcyApIC1cblx0XHRcdFx0XHQwLjVcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29udmVydCB0byBwaXhlbHMgaWYgdmFsdWUgYWRqdXN0bWVudCBpcyBuZWVkZWRcblx0XHRcdGlmICggc3VidHJhY3QgJiYgKCBtYXRjaGVzID0gcmNzc051bS5leGVjKCB2YWx1ZSApICkgJiZcblx0XHRcdFx0KCBtYXRjaGVzWyAzIF0gfHwgXCJweFwiICkgIT09IFwicHhcIiApIHtcblxuXHRcdFx0XHRlbGVtLnN0eWxlWyBkaW1lbnNpb24gXSA9IHZhbHVlO1xuXHRcdFx0XHR2YWx1ZSA9IGpRdWVyeS5jc3MoIGVsZW0sIGRpbWVuc2lvbiApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gc2V0UG9zaXRpdmVOdW1iZXIoIGVsZW0sIHZhbHVlLCBzdWJ0cmFjdCApO1xuXHRcdH1cblx0fTtcbn0gKTtcblxualF1ZXJ5LmNzc0hvb2tzLm1hcmdpbkxlZnQgPSBhZGRHZXRIb29rSWYoIHN1cHBvcnQucmVsaWFibGVNYXJnaW5MZWZ0LFxuXHRmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0aWYgKCBjb21wdXRlZCApIHtcblx0XHRcdHJldHVybiAoIHBhcnNlRmxvYXQoIGN1ckNTUyggZWxlbSwgXCJtYXJnaW5MZWZ0XCIgKSApIHx8XG5cdFx0XHRcdGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG5cdFx0XHRcdFx0c3dhcCggZWxlbSwgeyBtYXJnaW5MZWZ0OiAwIH0sIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcblx0XHRcdFx0XHR9IClcblx0XHRcdCkgKyBcInB4XCI7XG5cdFx0fVxuXHR9XG4pO1xuXG4vLyBUaGVzZSBob29rcyBhcmUgdXNlZCBieSBhbmltYXRlIHRvIGV4cGFuZCBwcm9wZXJ0aWVzXG5qUXVlcnkuZWFjaCgge1xuXHRtYXJnaW46IFwiXCIsXG5cdHBhZGRpbmc6IFwiXCIsXG5cdGJvcmRlcjogXCJXaWR0aFwiXG59LCBmdW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XG5cdFx0ZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgaSA9IDAsXG5cdFx0XHRcdGV4cGFuZGVkID0ge30sXG5cblx0XHRcdFx0Ly8gQXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYgbm90IGEgc3RyaW5nXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoIFwiIFwiICkgOiBbIHZhbHVlIF07XG5cblx0XHRcdGZvciAoIDsgaSA8IDQ7IGkrKyApIHtcblx0XHRcdFx0ZXhwYW5kZWRbIHByZWZpeCArIGNzc0V4cGFuZFsgaSBdICsgc3VmZml4IF0gPVxuXHRcdFx0XHRcdHBhcnRzWyBpIF0gfHwgcGFydHNbIGkgLSAyIF0gfHwgcGFydHNbIDAgXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGV4cGFuZGVkO1xuXHRcdH1cblx0fTtcblxuXHRpZiAoIHByZWZpeCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdLnNldCA9IHNldFBvc2l0aXZlTnVtYmVyO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0Y3NzOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0dmFyIHN0eWxlcywgbGVuLFxuXHRcdFx0XHRtYXAgPSB7fSxcblx0XHRcdFx0aSA9IDA7XG5cblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSggbmFtZSApICkge1xuXHRcdFx0XHRzdHlsZXMgPSBnZXRTdHlsZXMoIGVsZW0gKTtcblx0XHRcdFx0bGVuID0gbmFtZS5sZW5ndGg7XG5cblx0XHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0bWFwWyBuYW1lWyBpIF0gXSA9IGpRdWVyeS5jc3MoIGVsZW0sIG5hbWVbIGkgXSwgZmFsc2UsIHN0eWxlcyApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG1hcDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7XG5cdFx0fSwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH1cbn0gKTtcblxuXG5mdW5jdGlvbiBUd2VlbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcgKSB7XG5cdHJldHVybiBuZXcgVHdlZW4ucHJvdG90eXBlLmluaXQoIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICk7XG59XG5qUXVlcnkuVHdlZW4gPSBUd2VlbjtcblxuVHdlZW4ucHJvdG90eXBlID0ge1xuXHRjb25zdHJ1Y3RvcjogVHdlZW4sXG5cdGluaXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZywgdW5pdCApIHtcblx0XHR0aGlzLmVsZW0gPSBlbGVtO1xuXHRcdHRoaXMucHJvcCA9IHByb3A7XG5cdFx0dGhpcy5lYXNpbmcgPSBlYXNpbmcgfHwgalF1ZXJ5LmVhc2luZy5fZGVmYXVsdDtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XG5cdFx0dGhpcy5lbmQgPSBlbmQ7XG5cdFx0dGhpcy51bml0ID0gdW5pdCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0fSxcblx0Y3VyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0cmV0dXJuIGhvb2tzICYmIGhvb2tzLmdldCA/XG5cdFx0XHRob29rcy5nZXQoIHRoaXMgKSA6XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XG5cdH0sXG5cdHJ1bjogZnVuY3Rpb24oIHBlcmNlbnQgKSB7XG5cdFx0dmFyIGVhc2VkLFxuXHRcdFx0aG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0galF1ZXJ5LmVhc2luZ1sgdGhpcy5lYXNpbmcgXShcblx0XHRcdFx0cGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9uICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0gcGVyY2VudDtcblx0XHR9XG5cdFx0dGhpcy5ub3cgPSAoIHRoaXMuZW5kIC0gdGhpcy5zdGFydCApICogZWFzZWQgKyB0aGlzLnN0YXJ0O1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcblx0XHRcdHRoaXMub3B0aW9ucy5zdGVwLmNhbGwoIHRoaXMuZWxlbSwgdGhpcy5ub3csIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnNldCApIHtcblx0XHRcdGhvb2tzLnNldCggdGhpcyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KCB0aGlzICk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59O1xuXG5Ud2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7XG5cblR3ZWVuLnByb3BIb29rcyA9IHtcblx0X2RlZmF1bHQ6IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRcdHZhciByZXN1bHQ7XG5cblx0XHRcdC8vIFVzZSBhIHByb3BlcnR5IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5IHdoZW4gaXQgaXMgbm90IGEgRE9NIGVsZW1lbnQsXG5cdFx0XHQvLyBvciB3aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHN0eWxlIHByb3BlcnR5IHRoYXQgZXhpc3RzLlxuXHRcdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICE9PSAxIHx8XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSAhPSBudWxsICYmIHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBQYXNzaW5nIGFuIGVtcHR5IHN0cmluZyBhcyBhIDNyZCBwYXJhbWV0ZXIgdG8gLmNzcyB3aWxsIGF1dG9tYXRpY2FsbHlcblx0XHRcdC8vIGF0dGVtcHQgYSBwYXJzZUZsb2F0IGFuZCBmYWxsYmFjayB0byBhIHN0cmluZyBpZiB0aGUgcGFyc2UgZmFpbHMuXG5cdFx0XHQvLyBTaW1wbGUgdmFsdWVzIHN1Y2ggYXMgXCIxMHB4XCIgYXJlIHBhcnNlZCB0byBGbG9hdDtcblx0XHRcdC8vIGNvbXBsZXggdmFsdWVzIHN1Y2ggYXMgXCJyb3RhdGUoMXJhZClcIiBhcmUgcmV0dXJuZWQgYXMtaXMuXG5cdFx0XHRyZXN1bHQgPSBqUXVlcnkuY3NzKCB0d2Vlbi5lbGVtLCB0d2Vlbi5wcm9wLCBcIlwiICk7XG5cblx0XHRcdC8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgXCJhdXRvXCIgYXJlIGNvbnZlcnRlZCB0byAwLlxuXHRcdFx0cmV0dXJuICFyZXN1bHQgfHwgcmVzdWx0ID09PSBcImF1dG9cIiA/IDAgOiByZXN1bHQ7XG5cdFx0fSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblxuXHRcdFx0Ly8gVXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQuXG5cdFx0XHQvLyBVc2UgY3NzSG9vayBpZiBpdHMgdGhlcmUuXG5cdFx0XHQvLyBVc2UgLnN0eWxlIGlmIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3BlcnRpZXMgd2hlcmUgYXZhaWxhYmxlLlxuXHRcdFx0aWYgKCBqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdICkge1xuXHRcdFx0XHRqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdKCB0d2VlbiApO1xuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoXG5cdFx0XHRcdGpRdWVyeS5jc3NIb29rc1sgdHdlZW4ucHJvcCBdIHx8XG5cdFx0XHRcdFx0dHdlZW4uZWxlbS5zdHlsZVsgZmluYWxQcm9wTmFtZSggdHdlZW4ucHJvcCApIF0gIT0gbnVsbCApICkge1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIHR3ZWVuLm5vdyArIHR3ZWVuLnVuaXQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbi8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG4vLyBQYW5pYyBiYXNlZCBhcHByb2FjaCB0byBzZXR0aW5nIHRoaW5ncyBvbiBkaXNjb25uZWN0ZWQgbm9kZXNcblR3ZWVuLnByb3BIb29rcy5zY3JvbGxUb3AgPSBUd2Vlbi5wcm9wSG9va3Muc2Nyb2xsTGVmdCA9IHtcblx0c2V0OiBmdW5jdGlvbiggdHdlZW4gKSB7XG5cdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICYmIHR3ZWVuLmVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5lYXNpbmcgPSB7XG5cdGxpbmVhcjogZnVuY3Rpb24oIHAgKSB7XG5cdFx0cmV0dXJuIHA7XG5cdH0sXG5cdHN3aW5nOiBmdW5jdGlvbiggcCApIHtcblx0XHRyZXR1cm4gMC41IC0gTWF0aC5jb3MoIHAgKiBNYXRoLlBJICkgLyAyO1xuXHR9LFxuXHRfZGVmYXVsdDogXCJzd2luZ1wiXG59O1xuXG5qUXVlcnkuZnggPSBUd2Vlbi5wcm90b3R5cGUuaW5pdDtcblxuLy8gQmFjayBjb21wYXQgPDEuOCBleHRlbnNpb24gcG9pbnRcbmpRdWVyeS5meC5zdGVwID0ge307XG5cblxuXG5cbnZhclxuXHRmeE5vdywgaW5Qcm9ncmVzcyxcblx0cmZ4dHlwZXMgPSAvXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sXG5cdHJydW4gPSAvcXVldWVIb29rcyQvO1xuXG5mdW5jdGlvbiBzY2hlZHVsZSgpIHtcblx0aWYgKCBpblByb2dyZXNzICkge1xuXHRcdGlmICggZG9jdW1lbnQuaGlkZGVuID09PSBmYWxzZSAmJiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lICkge1xuXHRcdFx0d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSggc2NoZWR1bGUgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0d2luZG93LnNldFRpbWVvdXQoIHNjaGVkdWxlLCBqUXVlcnkuZnguaW50ZXJ2YWwgKTtcblx0XHR9XG5cblx0XHRqUXVlcnkuZngudGljaygpO1xuXHR9XG59XG5cbi8vIEFuaW1hdGlvbnMgY3JlYXRlZCBzeW5jaHJvbm91c2x5IHdpbGwgcnVuIHN5bmNocm9ub3VzbHlcbmZ1bmN0aW9uIGNyZWF0ZUZ4Tm93KCkge1xuXHR3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24oKSB7XG5cdFx0ZnhOb3cgPSB1bmRlZmluZWQ7XG5cdH0gKTtcblx0cmV0dXJuICggZnhOb3cgPSBEYXRlLm5vdygpICk7XG59XG5cbi8vIEdlbmVyYXRlIHBhcmFtZXRlcnMgdG8gY3JlYXRlIGEgc3RhbmRhcmQgYW5pbWF0aW9uXG5mdW5jdGlvbiBnZW5GeCggdHlwZSwgaW5jbHVkZVdpZHRoICkge1xuXHR2YXIgd2hpY2gsXG5cdFx0aSA9IDAsXG5cdFx0YXR0cnMgPSB7IGhlaWdodDogdHlwZSB9O1xuXG5cdC8vIElmIHdlIGluY2x1ZGUgd2lkdGgsIHN0ZXAgdmFsdWUgaXMgMSB0byBkbyBhbGwgY3NzRXhwYW5kIHZhbHVlcyxcblx0Ly8gb3RoZXJ3aXNlIHN0ZXAgdmFsdWUgaXMgMiB0byBza2lwIG92ZXIgTGVmdCBhbmQgUmlnaHRcblx0aW5jbHVkZVdpZHRoID0gaW5jbHVkZVdpZHRoID8gMSA6IDA7XG5cdGZvciAoIDsgaSA8IDQ7IGkgKz0gMiAtIGluY2x1ZGVXaWR0aCApIHtcblx0XHR3aGljaCA9IGNzc0V4cGFuZFsgaSBdO1xuXHRcdGF0dHJzWyBcIm1hcmdpblwiICsgd2hpY2ggXSA9IGF0dHJzWyBcInBhZGRpbmdcIiArIHdoaWNoIF0gPSB0eXBlO1xuXHR9XG5cblx0aWYgKCBpbmNsdWRlV2lkdGggKSB7XG5cdFx0YXR0cnMub3BhY2l0eSA9IGF0dHJzLndpZHRoID0gdHlwZTtcblx0fVxuXG5cdHJldHVybiBhdHRycztcbn1cblxuZnVuY3Rpb24gY3JlYXRlVHdlZW4oIHZhbHVlLCBwcm9wLCBhbmltYXRpb24gKSB7XG5cdHZhciB0d2Vlbixcblx0XHRjb2xsZWN0aW9uID0gKCBBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXSB8fCBbXSApLmNvbmNhdCggQW5pbWF0aW9uLnR3ZWVuZXJzWyBcIipcIiBdICksXG5cdFx0aW5kZXggPSAwLFxuXHRcdGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGlmICggKCB0d2VlbiA9IGNvbGxlY3Rpb25bIGluZGV4IF0uY2FsbCggYW5pbWF0aW9uLCBwcm9wLCB2YWx1ZSApICkgKSB7XG5cblx0XHRcdC8vIFdlJ3JlIGRvbmUgd2l0aCB0aGlzIHByb3BlcnR5XG5cdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRQcmVmaWx0ZXIoIGVsZW0sIHByb3BzLCBvcHRzICkge1xuXHR2YXIgcHJvcCwgdmFsdWUsIHRvZ2dsZSwgaG9va3MsIG9sZGZpcmUsIHByb3BUd2VlbiwgcmVzdG9yZURpc3BsYXksIGRpc3BsYXksXG5cdFx0aXNCb3ggPSBcIndpZHRoXCIgaW4gcHJvcHMgfHwgXCJoZWlnaHRcIiBpbiBwcm9wcyxcblx0XHRhbmltID0gdGhpcyxcblx0XHRvcmlnID0ge30sXG5cdFx0c3R5bGUgPSBlbGVtLnN0eWxlLFxuXHRcdGhpZGRlbiA9IGVsZW0ubm9kZVR5cGUgJiYgaXNIaWRkZW5XaXRoaW5UcmVlKCBlbGVtICksXG5cdFx0ZGF0YVNob3cgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIFwiZnhzaG93XCIgKTtcblxuXHQvLyBRdWV1ZS1za2lwcGluZyBhbmltYXRpb25zIGhpamFjayB0aGUgZnggaG9va3Ncblx0aWYgKCAhb3B0cy5xdWV1ZSApIHtcblx0XHRob29rcyA9IGpRdWVyeS5fcXVldWVIb29rcyggZWxlbSwgXCJmeFwiICk7XG5cdFx0aWYgKCBob29rcy51bnF1ZXVlZCA9PSBudWxsICkge1xuXHRcdFx0aG9va3MudW5xdWV1ZWQgPSAwO1xuXHRcdFx0b2xkZmlyZSA9IGhvb2tzLmVtcHR5LmZpcmU7XG5cdFx0XHRob29rcy5lbXB0eS5maXJlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggIWhvb2tzLnVucXVldWVkICkge1xuXHRcdFx0XHRcdG9sZGZpcmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aG9va3MudW5xdWV1ZWQrKztcblxuXHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRW5zdXJlIHRoZSBjb21wbGV0ZSBoYW5kbGVyIGlzIGNhbGxlZCBiZWZvcmUgdGhpcyBjb21wbGV0ZXNcblx0XHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0aG9va3MudW5xdWV1ZWQtLTtcblx0XHRcdFx0aWYgKCAhalF1ZXJ5LnF1ZXVlKCBlbGVtLCBcImZ4XCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdFx0aG9va3MuZW1wdHkuZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gRGV0ZWN0IHNob3cvaGlkZSBhbmltYXRpb25zXG5cdGZvciAoIHByb3AgaW4gcHJvcHMgKSB7XG5cdFx0dmFsdWUgPSBwcm9wc1sgcHJvcCBdO1xuXHRcdGlmICggcmZ4dHlwZXMudGVzdCggdmFsdWUgKSApIHtcblx0XHRcdGRlbGV0ZSBwcm9wc1sgcHJvcCBdO1xuXHRcdFx0dG9nZ2xlID0gdG9nZ2xlIHx8IHZhbHVlID09PSBcInRvZ2dsZVwiO1xuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gKCBoaWRkZW4gPyBcImhpZGVcIiA6IFwic2hvd1wiICkgKSB7XG5cblx0XHRcdFx0Ly8gUHJldGVuZCB0byBiZSBoaWRkZW4gaWYgdGhpcyBpcyBhIFwic2hvd1wiIGFuZFxuXHRcdFx0XHQvLyB0aGVyZSBpcyBzdGlsbCBkYXRhIGZyb20gYSBzdG9wcGVkIHNob3cvaGlkZVxuXHRcdFx0XHRpZiAoIHZhbHVlID09PSBcInNob3dcIiAmJiBkYXRhU2hvdyAmJiBkYXRhU2hvd1sgcHJvcCBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gdHJ1ZTtcblxuXHRcdFx0XHQvLyBJZ25vcmUgYWxsIG90aGVyIG5vLW9wIHNob3cvaGlkZSBkYXRhXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG9yaWdbIHByb3AgXSA9IGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gfHwgalF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQmFpbCBvdXQgaWYgdGhpcyBpcyBhIG5vLW9wIGxpa2UgLmhpZGUoKS5oaWRlKClcblx0cHJvcFR3ZWVuID0gIWpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wcyApO1xuXHRpZiAoICFwcm9wVHdlZW4gJiYgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIG9yaWcgKSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBSZXN0cmljdCBcIm92ZXJmbG93XCIgYW5kIFwiZGlzcGxheVwiIHN0eWxlcyBkdXJpbmcgYm94IGFuaW1hdGlvbnNcblx0aWYgKCBpc0JveCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEsIEVkZ2UgMTIgLSAxNVxuXHRcdC8vIFJlY29yZCBhbGwgMyBvdmVyZmxvdyBhdHRyaWJ1dGVzIGJlY2F1c2UgSUUgZG9lcyBub3QgaW5mZXIgdGhlIHNob3J0aGFuZFxuXHRcdC8vIGZyb20gaWRlbnRpY2FsbHktdmFsdWVkIG92ZXJmbG93WCBhbmQgb3ZlcmZsb3dZIGFuZCBFZGdlIGp1c3QgbWlycm9yc1xuXHRcdC8vIHRoZSBvdmVyZmxvd1ggdmFsdWUgdGhlcmUuXG5cdFx0b3B0cy5vdmVyZmxvdyA9IFsgc3R5bGUub3ZlcmZsb3csIHN0eWxlLm92ZXJmbG93WCwgc3R5bGUub3ZlcmZsb3dZIF07XG5cblx0XHQvLyBJZGVudGlmeSBhIGRpc3BsYXkgdHlwZSwgcHJlZmVycmluZyBvbGQgc2hvdy9oaWRlIGRhdGEgb3ZlciB0aGUgQ1NTIGNhc2NhZGVcblx0XHRyZXN0b3JlRGlzcGxheSA9IGRhdGFTaG93ICYmIGRhdGFTaG93LmRpc3BsYXk7XG5cdFx0aWYgKCByZXN0b3JlRGlzcGxheSA9PSBudWxsICkge1xuXHRcdFx0cmVzdG9yZURpc3BsYXkgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIFwiZGlzcGxheVwiICk7XG5cdFx0fVxuXHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXHRcdGlmICggZGlzcGxheSA9PT0gXCJub25lXCIgKSB7XG5cdFx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ICkge1xuXHRcdFx0XHRkaXNwbGF5ID0gcmVzdG9yZURpc3BsYXk7XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIEdldCBub25lbXB0eSB2YWx1ZShzKSBieSB0ZW1wb3JhcmlseSBmb3JjaW5nIHZpc2liaWxpdHlcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdLCB0cnVlICk7XG5cdFx0XHRcdHJlc3RvcmVEaXNwbGF5ID0gZWxlbS5zdHlsZS5kaXNwbGF5IHx8IHJlc3RvcmVEaXNwbGF5O1xuXHRcdFx0XHRkaXNwbGF5ID0galF1ZXJ5LmNzcyggZWxlbSwgXCJkaXNwbGF5XCIgKTtcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQW5pbWF0ZSBpbmxpbmUgZWxlbWVudHMgYXMgaW5saW5lLWJsb2NrXG5cdFx0aWYgKCBkaXNwbGF5ID09PSBcImlubGluZVwiIHx8IGRpc3BsYXkgPT09IFwiaW5saW5lLWJsb2NrXCIgJiYgcmVzdG9yZURpc3BsYXkgIT0gbnVsbCApIHtcblx0XHRcdGlmICggalF1ZXJ5LmNzcyggZWxlbSwgXCJmbG9hdFwiICkgPT09IFwibm9uZVwiICkge1xuXG5cdFx0XHRcdC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGRpc3BsYXkgdmFsdWUgYXQgdGhlIGVuZCBvZiBwdXJlIHNob3cvaGlkZSBhbmltYXRpb25zXG5cdFx0XHRcdGlmICggIXByb3BUd2VlbiApIHtcblx0XHRcdFx0XHRhbmltLmRvbmUoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0c3R5bGUuZGlzcGxheSA9IHJlc3RvcmVEaXNwbGF5O1xuXHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5ID0gc3R5bGUuZGlzcGxheTtcblx0XHRcdFx0XHRcdHJlc3RvcmVEaXNwbGF5ID0gZGlzcGxheSA9PT0gXCJub25lXCIgPyBcIlwiIDogZGlzcGxheTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0c3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBvcHRzLm92ZXJmbG93ICkge1xuXHRcdHN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcblx0XHRhbmltLmFsd2F5cyggZnVuY3Rpb24oKSB7XG5cdFx0XHRzdHlsZS5vdmVyZmxvdyA9IG9wdHMub3ZlcmZsb3dbIDAgXTtcblx0XHRcdHN0eWxlLm92ZXJmbG93WCA9IG9wdHMub3ZlcmZsb3dbIDEgXTtcblx0XHRcdHN0eWxlLm92ZXJmbG93WSA9IG9wdHMub3ZlcmZsb3dbIDIgXTtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBJbXBsZW1lbnQgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0cHJvcFR3ZWVuID0gZmFsc2U7XG5cdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblxuXHRcdC8vIEdlbmVyYWwgc2hvdy9oaWRlIHNldHVwIGZvciB0aGlzIGVsZW1lbnQgYW5pbWF0aW9uXG5cdFx0aWYgKCAhcHJvcFR3ZWVuICkge1xuXHRcdFx0aWYgKCBkYXRhU2hvdyApIHtcblx0XHRcdFx0aWYgKCBcImhpZGRlblwiIGluIGRhdGFTaG93ICkge1xuXHRcdFx0XHRcdGhpZGRlbiA9IGRhdGFTaG93LmhpZGRlbjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGF0YVNob3cgPSBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIFwiZnhzaG93XCIsIHsgZGlzcGxheTogcmVzdG9yZURpc3BsYXkgfSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdG9yZSBoaWRkZW4vdmlzaWJsZSBmb3IgdG9nZ2xlIHNvIGAuc3RvcCgpLnRvZ2dsZSgpYCBcInJldmVyc2VzXCJcblx0XHRcdGlmICggdG9nZ2xlICkge1xuXHRcdFx0XHRkYXRhU2hvdy5oaWRkZW4gPSAhaGlkZGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTaG93IGVsZW1lbnRzIGJlZm9yZSBhbmltYXRpbmcgdGhlbVxuXHRcdFx0aWYgKCBoaWRkZW4gKSB7XG5cdFx0XHRcdHNob3dIaWRlKCBbIGVsZW0gXSwgdHJ1ZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBlc2xpbnQtZGlzYWJsZSBuby1sb29wLWZ1bmMgKi9cblxuXHRcdFx0YW5pbS5kb25lKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvKiBlc2xpbnQtZW5hYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRcdC8vIFRoZSBmaW5hbCBzdGVwIG9mIGEgXCJoaWRlXCIgYW5pbWF0aW9uIGlzIGFjdHVhbGx5IGhpZGluZyB0aGUgZWxlbWVudFxuXHRcdFx0XHRpZiAoICFoaWRkZW4gKSB7XG5cdFx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBcImZ4c2hvd1wiICk7XG5cdFx0XHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Ly8gUGVyLXByb3BlcnR5IHNldHVwXG5cdFx0cHJvcFR3ZWVuID0gY3JlYXRlVHdlZW4oIGhpZGRlbiA/IGRhdGFTaG93WyBwcm9wIF0gOiAwLCBwcm9wLCBhbmltICk7XG5cdFx0aWYgKCAhKCBwcm9wIGluIGRhdGFTaG93ICkgKSB7XG5cdFx0XHRkYXRhU2hvd1sgcHJvcCBdID0gcHJvcFR3ZWVuLnN0YXJ0O1xuXHRcdFx0aWYgKCBoaWRkZW4gKSB7XG5cdFx0XHRcdHByb3BUd2Vlbi5lbmQgPSBwcm9wVHdlZW4uc3RhcnQ7XG5cdFx0XHRcdHByb3BUd2Vlbi5zdGFydCA9IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIHByb3BGaWx0ZXIoIHByb3BzLCBzcGVjaWFsRWFzaW5nICkge1xuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xuXG5cdC8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNzc0hvb2sgcGFzc1xuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcblx0XHRuYW1lID0gY2FtZWxDYXNlKCBpbmRleCApO1xuXHRcdGVhc2luZyA9IHNwZWNpYWxFYXNpbmdbIG5hbWUgXTtcblx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdO1xuXHRcdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRcdGVhc2luZyA9IHZhbHVlWyAxIF07XG5cdFx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdID0gdmFsdWVbIDAgXTtcblx0XHR9XG5cblx0XHRpZiAoIGluZGV4ICE9PSBuYW1lICkge1xuXHRcdFx0cHJvcHNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBpbmRleCBdO1xuXHRcdH1cblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF07XG5cdFx0aWYgKCBob29rcyAmJiBcImV4cGFuZFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsdWUgPSBob29rcy5leHBhbmQoIHZhbHVlICk7XG5cdFx0XHRkZWxldGUgcHJvcHNbIG5hbWUgXTtcblxuXHRcdFx0Ly8gTm90IHF1aXRlICQuZXh0ZW5kLCB0aGlzIHdvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBrZXlzLlxuXHRcdFx0Ly8gUmV1c2luZyAnaW5kZXgnIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgY29ycmVjdCBcIm5hbWVcIlxuXHRcdFx0Zm9yICggaW5kZXggaW4gdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggISggaW5kZXggaW4gcHJvcHMgKSApIHtcblx0XHRcdFx0XHRwcm9wc1sgaW5kZXggXSA9IHZhbHVlWyBpbmRleCBdO1xuXHRcdFx0XHRcdHNwZWNpYWxFYXNpbmdbIGluZGV4IF0gPSBlYXNpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3BlY2lhbEVhc2luZ1sgbmFtZSBdID0gZWFzaW5nO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBBbmltYXRpb24oIGVsZW0sIHByb3BlcnRpZXMsIG9wdGlvbnMgKSB7XG5cdHZhciByZXN1bHQsXG5cdFx0c3RvcHBlZCxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gQW5pbWF0aW9uLnByZWZpbHRlcnMubGVuZ3RoLFxuXHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCkuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRG9uJ3QgbWF0Y2ggZWxlbSBpbiB0aGUgOmFuaW1hdGVkIHNlbGVjdG9yXG5cdFx0XHRkZWxldGUgdGljay5lbGVtO1xuXHRcdH0gKSxcblx0XHR0aWNrID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdHZhciBjdXJyZW50VGltZSA9IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRcdHJlbWFpbmluZyA9IE1hdGgubWF4KCAwLCBhbmltYXRpb24uc3RhcnRUaW1lICsgYW5pbWF0aW9uLmR1cmF0aW9uIC0gY3VycmVudFRpbWUgKSxcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDIuMyBvbmx5XG5cdFx0XHRcdC8vIEFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSBgMSAtICggMC41IHx8IDAgKWAgKHRyYWMtMTI0OTcpXG5cdFx0XHRcdHRlbXAgPSByZW1haW5pbmcgLyBhbmltYXRpb24uZHVyYXRpb24gfHwgMCxcblx0XHRcdFx0cGVyY2VudCA9IDEgLSB0ZW1wLFxuXHRcdFx0XHRpbmRleCA9IDAsXG5cdFx0XHRcdGxlbmd0aCA9IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoO1xuXG5cdFx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggcGVyY2VudCApO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgcGVyY2VudCwgcmVtYWluaW5nIF0gKTtcblxuXHRcdFx0Ly8gSWYgdGhlcmUncyBtb3JlIHRvIGRvLCB5aWVsZFxuXHRcdFx0aWYgKCBwZXJjZW50IDwgMSAmJiBsZW5ndGggKSB7XG5cdFx0XHRcdHJldHVybiByZW1haW5pbmc7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHRoaXMgd2FzIGFuIGVtcHR5IGFuaW1hdGlvbiwgc3ludGhlc2l6ZSBhIGZpbmFsIHByb2dyZXNzIG5vdGlmaWNhdGlvblxuXHRcdFx0aWYgKCAhbGVuZ3RoICkge1xuXHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgMSwgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlc29sdmUgdGhlIGFuaW1hdGlvbiBhbmQgcmVwb3J0IGl0cyBjb25jbHVzaW9uXG5cdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggZWxlbSwgWyBhbmltYXRpb24gXSApO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0sXG5cdFx0YW5pbWF0aW9uID0gZGVmZXJyZWQucHJvbWlzZSgge1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdHByb3BzOiBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcGVydGllcyApLFxuXHRcdFx0b3B0czogalF1ZXJ5LmV4dGVuZCggdHJ1ZSwge1xuXHRcdFx0XHRzcGVjaWFsRWFzaW5nOiB7fSxcblx0XHRcdFx0ZWFzaW5nOiBqUXVlcnkuZWFzaW5nLl9kZWZhdWx0XG5cdFx0XHR9LCBvcHRpb25zICksXG5cdFx0XHRvcmlnaW5hbFByb3BlcnRpZXM6IHByb3BlcnRpZXMsXG5cdFx0XHRvcmlnaW5hbE9wdGlvbnM6IG9wdGlvbnMsXG5cdFx0XHRzdGFydFRpbWU6IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbixcblx0XHRcdHR3ZWVuczogW10sXG5cdFx0XHRjcmVhdGVUd2VlbjogZnVuY3Rpb24oIHByb3AsIGVuZCApIHtcblx0XHRcdFx0dmFyIHR3ZWVuID0galF1ZXJ5LlR3ZWVuKCBlbGVtLCBhbmltYXRpb24ub3B0cywgcHJvcCwgZW5kLFxuXHRcdFx0XHRcdGFuaW1hdGlvbi5vcHRzLnNwZWNpYWxFYXNpbmdbIHByb3AgXSB8fCBhbmltYXRpb24ub3B0cy5lYXNpbmcgKTtcblx0XHRcdFx0YW5pbWF0aW9uLnR3ZWVucy5wdXNoKCB0d2VlbiApO1xuXHRcdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0XHR9LFxuXHRcdFx0c3RvcDogZnVuY3Rpb24oIGdvdG9FbmQgKSB7XG5cdFx0XHRcdHZhciBpbmRleCA9IDAsXG5cblx0XHRcdFx0XHQvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdGhlIGVuZCwgd2Ugd2FudCB0byBydW4gYWxsIHRoZSB0d2VlbnNcblx0XHRcdFx0XHQvLyBvdGhlcndpc2Ugd2Ugc2tpcCB0aGlzIHBhcnRcblx0XHRcdFx0XHRsZW5ndGggPSBnb3RvRW5kID8gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGggOiAwO1xuXHRcdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0c3RvcHBlZCA9IHRydWU7XG5cdFx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uLnR3ZWVuc1sgaW5kZXggXS5ydW4oIDEgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlc29sdmUgd2hlbiB3ZSBwbGF5ZWQgdGhlIGxhc3QgZnJhbWU7IG90aGVyd2lzZSwgcmVqZWN0XG5cdFx0XHRcdGlmICggZ290b0VuZCApIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgMSwgMCBdICk7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBnb3RvRW5kIF0gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSApLFxuXHRcdHByb3BzID0gYW5pbWF0aW9uLnByb3BzO1xuXG5cdHByb3BGaWx0ZXIoIHByb3BzLCBhbmltYXRpb24ub3B0cy5zcGVjaWFsRWFzaW5nICk7XG5cblx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRyZXN1bHQgPSBBbmltYXRpb24ucHJlZmlsdGVyc1sgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIGVsZW0sIHByb3BzLCBhbmltYXRpb24ub3B0cyApO1xuXHRcdGlmICggcmVzdWx0ICkge1xuXHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCByZXN1bHQuc3RvcCApICkge1xuXHRcdFx0XHRqUXVlcnkuX3F1ZXVlSG9va3MoIGFuaW1hdGlvbi5lbGVtLCBhbmltYXRpb24ub3B0cy5xdWV1ZSApLnN0b3AgPVxuXHRcdFx0XHRcdHJlc3VsdC5zdG9wLmJpbmQoIHJlc3VsdCApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdH1cblxuXHRqUXVlcnkubWFwKCBwcm9wcywgY3JlYXRlVHdlZW4sIGFuaW1hdGlvbiApO1xuXG5cdGlmICggaXNGdW5jdGlvbiggYW5pbWF0aW9uLm9wdHMuc3RhcnQgKSApIHtcblx0XHRhbmltYXRpb24ub3B0cy5zdGFydC5jYWxsKCBlbGVtLCBhbmltYXRpb24gKTtcblx0fVxuXG5cdC8vIEF0dGFjaCBjYWxsYmFja3MgZnJvbSBvcHRpb25zXG5cdGFuaW1hdGlvblxuXHRcdC5wcm9ncmVzcyggYW5pbWF0aW9uLm9wdHMucHJvZ3Jlc3MgKVxuXHRcdC5kb25lKCBhbmltYXRpb24ub3B0cy5kb25lLCBhbmltYXRpb24ub3B0cy5jb21wbGV0ZSApXG5cdFx0LmZhaWwoIGFuaW1hdGlvbi5vcHRzLmZhaWwgKVxuXHRcdC5hbHdheXMoIGFuaW1hdGlvbi5vcHRzLmFsd2F5cyApO1xuXG5cdGpRdWVyeS5meC50aW1lcihcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aWNrLCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0YW5pbTogYW5pbWF0aW9uLFxuXHRcdFx0cXVldWU6IGFuaW1hdGlvbi5vcHRzLnF1ZXVlXG5cdFx0fSApXG5cdCk7XG5cblx0cmV0dXJuIGFuaW1hdGlvbjtcbn1cblxualF1ZXJ5LkFuaW1hdGlvbiA9IGpRdWVyeS5leHRlbmQoIEFuaW1hdGlvbiwge1xuXG5cdHR3ZWVuZXJzOiB7XG5cdFx0XCIqXCI6IFsgZnVuY3Rpb24oIHByb3AsIHZhbHVlICkge1xuXHRcdFx0dmFyIHR3ZWVuID0gdGhpcy5jcmVhdGVUd2VlbiggcHJvcCwgdmFsdWUgKTtcblx0XHRcdGFkanVzdENTUyggdHdlZW4uZWxlbSwgcHJvcCwgcmNzc051bS5leGVjKCB2YWx1ZSApLCB0d2VlbiApO1xuXHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdH0gXVxuXHR9LFxuXG5cdHR3ZWVuZXI6IGZ1bmN0aW9uKCBwcm9wcywgY2FsbGJhY2sgKSB7XG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBwcm9wcyApICkge1xuXHRcdFx0Y2FsbGJhY2sgPSBwcm9wcztcblx0XHRcdHByb3BzID0gWyBcIipcIiBdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRwcm9wcyA9IHByb3BzLm1hdGNoKCBybm90aHRtbHdoaXRlICk7XG5cdFx0fVxuXG5cdFx0dmFyIHByb3AsXG5cdFx0XHRpbmRleCA9IDAsXG5cdFx0XHRsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cblx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0cHJvcCA9IHByb3BzWyBpbmRleCBdO1xuXHRcdFx0QW5pbWF0aW9uLnR3ZWVuZXJzWyBwcm9wIF0gPSBBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXSB8fCBbXTtcblx0XHRcdEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdLnVuc2hpZnQoIGNhbGxiYWNrICk7XG5cdFx0fVxuXHR9LFxuXG5cdHByZWZpbHRlcnM6IFsgZGVmYXVsdFByZWZpbHRlciBdLFxuXG5cdHByZWZpbHRlcjogZnVuY3Rpb24oIGNhbGxiYWNrLCBwcmVwZW5kICkge1xuXHRcdGlmICggcHJlcGVuZCApIHtcblx0XHRcdEFuaW1hdGlvbi5wcmVmaWx0ZXJzLnVuc2hpZnQoIGNhbGxiYWNrICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdEFuaW1hdGlvbi5wcmVmaWx0ZXJzLnB1c2goIGNhbGxiYWNrICk7XG5cdFx0fVxuXHR9XG59ICk7XG5cbmpRdWVyeS5zcGVlZCA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHtcblx0dmFyIG9wdCA9IHNwZWVkICYmIHR5cGVvZiBzcGVlZCA9PT0gXCJvYmplY3RcIiA/IGpRdWVyeS5leHRlbmQoIHt9LCBzcGVlZCApIDoge1xuXHRcdGNvbXBsZXRlOiBmbiB8fCAhZm4gJiYgZWFzaW5nIHx8XG5cdFx0XHRpc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLFxuXHRcdGR1cmF0aW9uOiBzcGVlZCxcblx0XHRlYXNpbmc6IGZuICYmIGVhc2luZyB8fCBlYXNpbmcgJiYgIWlzRnVuY3Rpb24oIGVhc2luZyApICYmIGVhc2luZ1xuXHR9O1xuXG5cdC8vIEdvIHRvIHRoZSBlbmQgc3RhdGUgaWYgZnggYXJlIG9mZlxuXHRpZiAoIGpRdWVyeS5meC5vZmYgKSB7XG5cdFx0b3B0LmR1cmF0aW9uID0gMDtcblxuXHR9IGVsc2Uge1xuXHRcdGlmICggdHlwZW9mIG9wdC5kdXJhdGlvbiAhPT0gXCJudW1iZXJcIiApIHtcblx0XHRcdGlmICggb3B0LmR1cmF0aW9uIGluIGpRdWVyeS5meC5zcGVlZHMgKSB7XG5cdFx0XHRcdG9wdC5kdXJhdGlvbiA9IGpRdWVyeS5meC5zcGVlZHNbIG9wdC5kdXJhdGlvbiBdO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIE5vcm1hbGl6ZSBvcHQucXVldWUgLSB0cnVlL3VuZGVmaW5lZC9udWxsIC0+IFwiZnhcIlxuXHRpZiAoIG9wdC5xdWV1ZSA9PSBudWxsIHx8IG9wdC5xdWV1ZSA9PT0gdHJ1ZSApIHtcblx0XHRvcHQucXVldWUgPSBcImZ4XCI7XG5cdH1cblxuXHQvLyBRdWV1ZWluZ1xuXHRvcHQub2xkID0gb3B0LmNvbXBsZXRlO1xuXG5cdG9wdC5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggb3B0Lm9sZCApICkge1xuXHRcdFx0b3B0Lm9sZC5jYWxsKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBvcHQucXVldWUgKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgb3B0LnF1ZXVlICk7XG5cdFx0fVxuXHR9O1xuXG5cdHJldHVybiBvcHQ7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGZhZGVUbzogZnVuY3Rpb24oIHNwZWVkLCB0bywgZWFzaW5nLCBjYWxsYmFjayApIHtcblxuXHRcdC8vIFNob3cgYW55IGhpZGRlbiBlbGVtZW50cyBhZnRlciBzZXR0aW5nIG9wYWNpdHkgdG8gMFxuXHRcdHJldHVybiB0aGlzLmZpbHRlciggaXNIaWRkZW5XaXRoaW5UcmVlICkuY3NzKCBcIm9wYWNpdHlcIiwgMCApLnNob3coKVxuXG5cdFx0XHQvLyBBbmltYXRlIHRvIHRoZSB2YWx1ZSBzcGVjaWZpZWRcblx0XHRcdC5lbmQoKS5hbmltYXRlKCB7IG9wYWNpdHk6IHRvIH0sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XG5cdH0sXG5cdGFuaW1hdGU6IGZ1bmN0aW9uKCBwcm9wLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHtcblx0XHR2YXIgZW1wdHkgPSBqUXVlcnkuaXNFbXB0eU9iamVjdCggcHJvcCApLFxuXHRcdFx0b3B0YWxsID0galF1ZXJ5LnNwZWVkKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApLFxuXHRcdFx0ZG9BbmltYXRpb24gPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvLyBPcGVyYXRlIG9uIGEgY29weSBvZiBwcm9wIHNvIHBlci1wcm9wZXJ0eSBlYXNpbmcgd29uJ3QgYmUgbG9zdFxuXHRcdFx0XHR2YXIgYW5pbSA9IEFuaW1hdGlvbiggdGhpcywgalF1ZXJ5LmV4dGVuZCgge30sIHByb3AgKSwgb3B0YWxsICk7XG5cblx0XHRcdFx0Ly8gRW1wdHkgYW5pbWF0aW9ucywgb3IgZmluaXNoaW5nIHJlc29sdmVzIGltbWVkaWF0ZWx5XG5cdFx0XHRcdGlmICggZW1wdHkgfHwgZGF0YVByaXYuZ2V0KCB0aGlzLCBcImZpbmlzaFwiICkgKSB7XG5cdFx0XHRcdFx0YW5pbS5zdG9wKCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRkb0FuaW1hdGlvbi5maW5pc2ggPSBkb0FuaW1hdGlvbjtcblxuXHRcdHJldHVybiBlbXB0eSB8fCBvcHRhbGwucXVldWUgPT09IGZhbHNlID9cblx0XHRcdHRoaXMuZWFjaCggZG9BbmltYXRpb24gKSA6XG5cdFx0XHR0aGlzLnF1ZXVlKCBvcHRhbGwucXVldWUsIGRvQW5pbWF0aW9uICk7XG5cdH0sXG5cdHN0b3A6IGZ1bmN0aW9uKCB0eXBlLCBjbGVhclF1ZXVlLCBnb3RvRW5kICkge1xuXHRcdHZhciBzdG9wUXVldWUgPSBmdW5jdGlvbiggaG9va3MgKSB7XG5cdFx0XHR2YXIgc3RvcCA9IGhvb2tzLnN0b3A7XG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdHN0b3AoIGdvdG9FbmQgKTtcblx0XHR9O1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGdvdG9FbmQgPSBjbGVhclF1ZXVlO1xuXHRcdFx0Y2xlYXJRdWV1ZSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGNsZWFyUXVldWUgKSB7XG5cdFx0XHR0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBkZXF1ZXVlID0gdHJ1ZSxcblx0XHRcdFx0aW5kZXggPSB0eXBlICE9IG51bGwgJiYgdHlwZSArIFwicXVldWVIb29rc1wiLFxuXHRcdFx0XHR0aW1lcnMgPSBqUXVlcnkudGltZXJzLFxuXHRcdFx0XHRkYXRhID0gZGF0YVByaXYuZ2V0KCB0aGlzICk7XG5cblx0XHRcdGlmICggaW5kZXggKSB7XG5cdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgKSB7XG5cdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvciAoIGluZGV4IGluIGRhdGEgKSB7XG5cdFx0XHRcdFx0aWYgKCBkYXRhWyBpbmRleCBdICYmIGRhdGFbIGluZGV4IF0uc3RvcCAmJiBycnVuLnRlc3QoIGluZGV4ICkgKSB7XG5cdFx0XHRcdFx0XHRzdG9wUXVldWUoIGRhdGFbIGluZGV4IF0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJlxuXHRcdFx0XHRcdCggdHlwZSA9PSBudWxsIHx8IHRpbWVyc1sgaW5kZXggXS5xdWV1ZSA9PT0gdHlwZSApICkge1xuXG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggZ290b0VuZCApO1xuXHRcdFx0XHRcdGRlcXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXJ0IHRoZSBuZXh0IGluIHRoZSBxdWV1ZSBpZiB0aGUgbGFzdCBzdGVwIHdhc24ndCBmb3JjZWQuXG5cdFx0XHQvLyBUaW1lcnMgY3VycmVudGx5IHdpbGwgY2FsbCB0aGVpciBjb21wbGV0ZSBjYWxsYmFja3MsIHdoaWNoXG5cdFx0XHQvLyB3aWxsIGRlcXVldWUgYnV0IG9ubHkgaWYgdGhleSB3ZXJlIGdvdG9FbmQuXG5cdFx0XHRpZiAoIGRlcXVldWUgfHwgIWdvdG9FbmQgKSB7XG5cdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXHRmaW5pc2g6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdGlmICggdHlwZSAhPT0gZmFsc2UgKSB7XG5cdFx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGluZGV4LFxuXHRcdFx0XHRkYXRhID0gZGF0YVByaXYuZ2V0KCB0aGlzICksXG5cdFx0XHRcdHF1ZXVlID0gZGF0YVsgdHlwZSArIFwicXVldWVcIiBdLFxuXHRcdFx0XHRob29rcyA9IGRhdGFbIHR5cGUgKyBcInF1ZXVlSG9va3NcIiBdLFxuXHRcdFx0XHR0aW1lcnMgPSBqUXVlcnkudGltZXJzLFxuXHRcdFx0XHRsZW5ndGggPSBxdWV1ZSA/IHF1ZXVlLmxlbmd0aCA6IDA7XG5cblx0XHRcdC8vIEVuYWJsZSBmaW5pc2hpbmcgZmxhZyBvbiBwcml2YXRlIGRhdGFcblx0XHRcdGRhdGEuZmluaXNoID0gdHJ1ZTtcblxuXHRcdFx0Ly8gRW1wdHkgdGhlIHF1ZXVlIGZpcnN0XG5cdFx0XHRqUXVlcnkucXVldWUoIHRoaXMsIHR5cGUsIFtdICk7XG5cblx0XHRcdGlmICggaG9va3MgJiYgaG9va3Muc3RvcCApIHtcblx0XHRcdFx0aG9va3Muc3RvcC5jYWxsKCB0aGlzLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIExvb2sgZm9yIGFueSBhY3RpdmUgYW5pbWF0aW9ucywgYW5kIGZpbmlzaCB0aGVtXG5cdFx0XHRmb3IgKCBpbmRleCA9IHRpbWVycy5sZW5ndGg7IGluZGV4LS07ICkge1xuXHRcdFx0XHRpZiAoIHRpbWVyc1sgaW5kZXggXS5lbGVtID09PSB0aGlzICYmIHRpbWVyc1sgaW5kZXggXS5xdWV1ZSA9PT0gdHlwZSApIHtcblx0XHRcdFx0XHR0aW1lcnNbIGluZGV4IF0uYW5pbS5zdG9wKCB0cnVlICk7XG5cdFx0XHRcdFx0dGltZXJzLnNwbGljZSggaW5kZXgsIDEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBMb29rIGZvciBhbnkgYW5pbWF0aW9ucyBpbiB0aGUgb2xkIHF1ZXVlIGFuZCBmaW5pc2ggdGhlbVxuXHRcdFx0Zm9yICggaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdFx0aWYgKCBxdWV1ZVsgaW5kZXggXSAmJiBxdWV1ZVsgaW5kZXggXS5maW5pc2ggKSB7XG5cdFx0XHRcdFx0cXVldWVbIGluZGV4IF0uZmluaXNoLmNhbGwoIHRoaXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBUdXJuIG9mZiBmaW5pc2hpbmcgZmxhZ1xuXHRcdFx0ZGVsZXRlIGRhdGEuZmluaXNoO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcInRvZ2dsZVwiLCBcInNob3dcIiwgXCJoaWRlXCIgXSwgZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXHR2YXIgY3NzRm4gPSBqUXVlcnkuZm5bIG5hbWUgXTtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHNwZWVkID09IG51bGwgfHwgdHlwZW9mIHNwZWVkID09PSBcImJvb2xlYW5cIiA/XG5cdFx0XHRjc3NGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICkgOlxuXHRcdFx0dGhpcy5hbmltYXRlKCBnZW5GeCggbmFtZSwgdHJ1ZSApLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9O1xufSApO1xuXG4vLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3RvbSBhbmltYXRpb25zXG5qUXVlcnkuZWFjaCgge1xuXHRzbGlkZURvd246IGdlbkZ4KCBcInNob3dcIiApLFxuXHRzbGlkZVVwOiBnZW5GeCggXCJoaWRlXCIgKSxcblx0c2xpZGVUb2dnbGU6IGdlbkZ4KCBcInRvZ2dsZVwiICksXG5cdGZhZGVJbjogeyBvcGFjaXR5OiBcInNob3dcIiB9LFxuXHRmYWRlT3V0OiB7IG9wYWNpdHk6IFwiaGlkZVwiIH0sXG5cdGZhZGVUb2dnbGU6IHsgb3BhY2l0eTogXCJ0b2dnbGVcIiB9XG59LCBmdW5jdGlvbiggbmFtZSwgcHJvcHMgKSB7XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiB0aGlzLmFuaW1hdGUoIHByb3BzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9O1xufSApO1xuXG5qUXVlcnkudGltZXJzID0gW107XG5qUXVlcnkuZngudGljayA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgdGltZXIsXG5cdFx0aSA9IDAsXG5cdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycztcblxuXHRmeE5vdyA9IERhdGUubm93KCk7XG5cblx0Zm9yICggOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkge1xuXHRcdHRpbWVyID0gdGltZXJzWyBpIF07XG5cblx0XHQvLyBSdW4gdGhlIHRpbWVyIGFuZCBzYWZlbHkgcmVtb3ZlIGl0IHdoZW4gZG9uZSAoYWxsb3dpbmcgZm9yIGV4dGVybmFsIHJlbW92YWwpXG5cdFx0aWYgKCAhdGltZXIoKSAmJiB0aW1lcnNbIGkgXSA9PT0gdGltZXIgKSB7XG5cdFx0XHR0aW1lcnMuc3BsaWNlKCBpLS0sIDEgKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoICF0aW1lcnMubGVuZ3RoICkge1xuXHRcdGpRdWVyeS5meC5zdG9wKCk7XG5cdH1cblx0ZnhOb3cgPSB1bmRlZmluZWQ7XG59O1xuXG5qUXVlcnkuZngudGltZXIgPSBmdW5jdGlvbiggdGltZXIgKSB7XG5cdGpRdWVyeS50aW1lcnMucHVzaCggdGltZXIgKTtcblx0alF1ZXJ5LmZ4LnN0YXJ0KCk7XG59O1xuXG5qUXVlcnkuZnguaW50ZXJ2YWwgPSAxMztcbmpRdWVyeS5meC5zdGFydCA9IGZ1bmN0aW9uKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aW5Qcm9ncmVzcyA9IHRydWU7XG5cdHNjaGVkdWxlKCk7XG59O1xuXG5qUXVlcnkuZnguc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRpblByb2dyZXNzID0gbnVsbDtcbn07XG5cbmpRdWVyeS5meC5zcGVlZHMgPSB7XG5cdHNsb3c6IDYwMCxcblx0ZmFzdDogMjAwLFxuXG5cdC8vIERlZmF1bHQgc3BlZWRcblx0X2RlZmF1bHQ6IDQwMFxufTtcblxuXG4vLyBCYXNlZCBvZmYgb2YgdGhlIHBsdWdpbiBieSBDbGludCBIZWxmZXJzLCB3aXRoIHBlcm1pc3Npb24uXG5qUXVlcnkuZm4uZGVsYXkgPSBmdW5jdGlvbiggdGltZSwgdHlwZSApIHtcblx0dGltZSA9IGpRdWVyeS5meCA/IGpRdWVyeS5meC5zcGVlZHNbIHRpbWUgXSB8fCB0aW1lIDogdGltZTtcblx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXG5cdHJldHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbiggbmV4dCwgaG9va3MgKSB7XG5cdFx0dmFyIHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCggbmV4dCwgdGltZSApO1xuXHRcdGhvb2tzLnN0b3AgPSBmdW5jdGlvbigpIHtcblx0XHRcdHdpbmRvdy5jbGVhclRpbWVvdXQoIHRpbWVvdXQgKTtcblx0XHR9O1xuXHR9ICk7XG59O1xuXG5cbiggZnVuY3Rpb24oKSB7XG5cdHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApLFxuXHRcdHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwic2VsZWN0XCIgKSxcblx0XHRvcHQgPSBzZWxlY3QuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwib3B0aW9uXCIgKSApO1xuXG5cdGlucHV0LnR5cGUgPSBcImNoZWNrYm94XCI7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMyBvbmx5XG5cdC8vIERlZmF1bHQgdmFsdWUgZm9yIGEgY2hlY2tib3ggc2hvdWxkIGJlIFwib25cIlxuXHRzdXBwb3J0LmNoZWNrT24gPSBpbnB1dC52YWx1ZSAhPT0gXCJcIjtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gTXVzdCBhY2Nlc3Mgc2VsZWN0ZWRJbmRleCB0byBtYWtlIGRlZmF1bHQgb3B0aW9ucyBzZWxlY3Rcblx0c3VwcG9ydC5vcHRTZWxlY3RlZCA9IG9wdC5zZWxlY3RlZDtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gQW4gaW5wdXQgbG9zZXMgaXRzIHZhbHVlIGFmdGVyIGJlY29taW5nIGEgcmFkaW9cblx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0aW5wdXQudmFsdWUgPSBcInRcIjtcblx0aW5wdXQudHlwZSA9IFwicmFkaW9cIjtcblx0c3VwcG9ydC5yYWRpb1ZhbHVlID0gaW5wdXQudmFsdWUgPT09IFwidFwiO1xufSApKCk7XG5cblxudmFyIGJvb2xIb29rLFxuXHRhdHRySGFuZGxlID0galF1ZXJ5LmV4cHIuYXR0ckhhbmRsZTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRhdHRyOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgalF1ZXJ5LmF0dHIsIG5hbWUsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApO1xuXHR9LFxuXG5cdHJlbW92ZUF0dHI6IGZ1bmN0aW9uKCBuYW1lICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIHRoaXMsIG5hbWUgKTtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmV4dGVuZCgge1xuXHRhdHRyOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7XG5cdFx0dmFyIHJldCwgaG9va3MsXG5cdFx0XHRuVHlwZSA9IGVsZW0ubm9kZVR5cGU7XG5cblx0XHQvLyBEb24ndCBnZXQvc2V0IGF0dHJpYnV0ZXMgb24gdGV4dCwgY29tbWVudCBhbmQgYXR0cmlidXRlIG5vZGVzXG5cdFx0aWYgKCBuVHlwZSA9PT0gMyB8fCBuVHlwZSA9PT0gOCB8fCBuVHlwZSA9PT0gMiApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBGYWxsYmFjayB0byBwcm9wIHdoZW4gYXR0cmlidXRlcyBhcmUgbm90IHN1cHBvcnRlZFxuXHRcdGlmICggdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlID09PSBcInVuZGVmaW5lZFwiICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5wcm9wKCBlbGVtLCBuYW1lLCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdC8vIEF0dHJpYnV0ZSBob29rcyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgbG93ZXJjYXNlIHZlcnNpb25cblx0XHQvLyBHcmFiIG5lY2Vzc2FyeSBob29rIGlmIG9uZSBpcyBkZWZpbmVkXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5hdHRySG9va3NbIG5hbWUudG9Mb3dlckNhc2UoKSBdIHx8XG5cdFx0XHRcdCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC50ZXN0KCBuYW1lICkgPyBib29sSG9vayA6IHVuZGVmaW5lZCApO1xuXHRcdH1cblxuXHRcdGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdmFsdWUgPT09IG51bGwgKSB7XG5cdFx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBob29rcyAmJiBcInNldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApICkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIHZhbHVlICsgXCJcIiApO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJiAoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgbmFtZSApICkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblxuXHRcdHJldCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdC8vIE5vbi1leGlzdGVudCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkXG5cdFx0cmV0dXJuIHJldCA9PSBudWxsID8gdW5kZWZpbmVkIDogcmV0O1xuXHR9LFxuXG5cdGF0dHJIb29rczoge1xuXHRcdHR5cGU6IHtcblx0XHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0XHRpZiAoICFzdXBwb3J0LnJhZGlvVmFsdWUgJiYgdmFsdWUgPT09IFwicmFkaW9cIiAmJlxuXHRcdFx0XHRcdG5vZGVOYW1lKCBlbGVtLCBcImlucHV0XCIgKSApIHtcblx0XHRcdFx0XHR2YXIgdmFsID0gZWxlbS52YWx1ZTtcblx0XHRcdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIHZhbHVlICk7XG5cdFx0XHRcdFx0aWYgKCB2YWwgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLnZhbHVlID0gdmFsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdHZhciBuYW1lLFxuXHRcdFx0aSA9IDAsXG5cblx0XHRcdC8vIEF0dHJpYnV0ZSBuYW1lcyBjYW4gY29udGFpbiBub24tSFRNTCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnNcblx0XHRcdC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2F0dHJpYnV0ZXMtMlxuXHRcdFx0YXR0ck5hbWVzID0gdmFsdWUgJiYgdmFsdWUubWF0Y2goIHJub3RodG1sd2hpdGUgKTtcblxuXHRcdGlmICggYXR0ck5hbWVzICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHR3aGlsZSAoICggbmFtZSA9IGF0dHJOYW1lc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0ZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIG5hbWUgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0gKTtcblxuLy8gSG9va3MgZm9yIGJvb2xlYW4gYXR0cmlidXRlc1xuYm9vbEhvb2sgPSB7XG5cdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBuYW1lICkge1xuXHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXG5cdFx0XHQvLyBSZW1vdmUgYm9vbGVhbiBhdHRyaWJ1dGVzIHdoZW4gc2V0IHRvIGZhbHNlXG5cdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggZWxlbSwgbmFtZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgbmFtZSApO1xuXHRcdH1cblx0XHRyZXR1cm4gbmFtZTtcblx0fVxufTtcblxualF1ZXJ5LmVhY2goIGpRdWVyeS5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKCAvXFx3Ky9nICksIGZ1bmN0aW9uKCBfaSwgbmFtZSApIHtcblx0dmFyIGdldHRlciA9IGF0dHJIYW5kbGVbIG5hbWUgXSB8fCBqUXVlcnkuZmluZC5hdHRyO1xuXG5cdGF0dHJIYW5kbGVbIG5hbWUgXSA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHR2YXIgcmV0LCBoYW5kbGUsXG5cdFx0XHRsb3dlcmNhc2VOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0aWYgKCAhaXNYTUwgKSB7XG5cblx0XHRcdC8vIEF2b2lkIGFuIGluZmluaXRlIGxvb3AgYnkgdGVtcG9yYXJpbHkgcmVtb3ZpbmcgdGhpcyBmdW5jdGlvbiBmcm9tIHRoZSBnZXR0ZXJcblx0XHRcdGhhbmRsZSA9IGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXTtcblx0XHRcdGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXSA9IHJldDtcblx0XHRcdHJldCA9IGdldHRlciggZWxlbSwgbmFtZSwgaXNYTUwgKSAhPSBudWxsID9cblx0XHRcdFx0bG93ZXJjYXNlTmFtZSA6XG5cdFx0XHRcdG51bGw7XG5cdFx0XHRhdHRySGFuZGxlWyBsb3dlcmNhc2VOYW1lIF0gPSBoYW5kbGU7XG5cdFx0fVxuXHRcdHJldHVybiByZXQ7XG5cdH07XG59ICk7XG5cblxuXG5cbnZhciByZm9jdXNhYmxlID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxcblx0cmNsaWNrYWJsZSA9IC9eKD86YXxhcmVhKSQvaTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRwcm9wOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgalF1ZXJ5LnByb3AsIG5hbWUsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApO1xuXHR9LFxuXG5cdHJlbW92ZVByb3A6IGZ1bmN0aW9uKCBuYW1lICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGVsZXRlIHRoaXNbIGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZSBdO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHByb3A6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHR2YXIgcmV0LCBob29rcyxcblx0XHRcdG5UeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRcdC8vIERvbid0IGdldC9zZXQgcHJvcGVydGllcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcblx0XHRpZiAoIG5UeXBlID09PSAzIHx8IG5UeXBlID09PSA4IHx8IG5UeXBlID09PSAyICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggblR5cGUgIT09IDEgfHwgIWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBGaXggbmFtZSBhbmQgYXR0YWNoIGhvb2tzXG5cdFx0XHRuYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lO1xuXHRcdFx0aG9va3MgPSBqUXVlcnkucHJvcEhvb2tzWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCBob29rcyAmJiBcInNldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApICkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuICggZWxlbVsgbmFtZSBdID0gdmFsdWUgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgKCByZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSApICE9PSBudWxsICkge1xuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbVsgbmFtZSBdO1xuXHR9LFxuXG5cdHByb3BIb29rczoge1xuXHRcdHRhYkluZGV4OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0XHRcdFx0Ly8gZWxlbS50YWJJbmRleCBkb2Vzbid0IGFsd2F5cyByZXR1cm4gdGhlXG5cdFx0XHRcdC8vIGNvcnJlY3QgdmFsdWUgd2hlbiBpdCBoYXNuJ3QgYmVlbiBleHBsaWNpdGx5IHNldFxuXHRcdFx0XHQvLyBVc2UgcHJvcGVyIGF0dHJpYnV0ZSByZXRyaWV2YWwgKHRyYWMtMTIwNzIpXG5cdFx0XHRcdHZhciB0YWJpbmRleCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIFwidGFiaW5kZXhcIiApO1xuXG5cdFx0XHRcdGlmICggdGFiaW5kZXggKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhcnNlSW50KCB0YWJpbmRleCwgMTAgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRyZm9jdXNhYmxlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSB8fFxuXHRcdFx0XHRcdHJjbGlja2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmXG5cdFx0XHRcdFx0ZWxlbS5ocmVmXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRwcm9wRml4OiB7XG5cdFx0XCJmb3JcIjogXCJodG1sRm9yXCIsXG5cdFx0XCJjbGFzc1wiOiBcImNsYXNzTmFtZVwiXG5cdH1cbn0gKTtcblxuLy8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG4vLyBBY2Nlc3NpbmcgdGhlIHNlbGVjdGVkSW5kZXggcHJvcGVydHlcbi8vIGZvcmNlcyB0aGUgYnJvd3NlciB0byByZXNwZWN0IHNldHRpbmcgc2VsZWN0ZWRcbi8vIG9uIHRoZSBvcHRpb25cbi8vIFRoZSBnZXR0ZXIgZW5zdXJlcyBhIGRlZmF1bHQgb3B0aW9uIGlzIHNlbGVjdGVkXG4vLyB3aGVuIGluIGFuIG9wdGdyb3VwXG4vLyBlc2xpbnQgcnVsZSBcIm5vLXVudXNlZC1leHByZXNzaW9uc1wiIGlzIGRpc2FibGVkIGZvciB0aGlzIGNvZGVcbi8vIHNpbmNlIGl0IGNvbnNpZGVycyBzdWNoIGFjY2Vzc2lvbnMgbm9vcFxuaWYgKCAhc3VwcG9ydC5vcHRTZWxlY3RlZCApIHtcblx0alF1ZXJ5LnByb3BIb29rcy5zZWxlY3RlZCA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvKiBlc2xpbnQgbm8tdW51c2VkLWV4cHJlc3Npb25zOiBcIm9mZlwiICovXG5cblx0XHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRpZiAoIHBhcmVudCAmJiBwYXJlbnQucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0cGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcblx0XHRcdH1cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH0sXG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0LyogZXNsaW50IG5vLXVudXNlZC1leHByZXNzaW9uczogXCJvZmZcIiAqL1xuXG5cdFx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cdFx0XHRcdHBhcmVudC5zZWxlY3RlZEluZGV4O1xuXG5cdFx0XHRcdGlmICggcGFyZW50LnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdFx0cGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxualF1ZXJ5LmVhY2goIFtcblx0XCJ0YWJJbmRleFwiLFxuXHRcInJlYWRPbmx5XCIsXG5cdFwibWF4TGVuZ3RoXCIsXG5cdFwiY2VsbFNwYWNpbmdcIixcblx0XCJjZWxsUGFkZGluZ1wiLFxuXHRcInJvd1NwYW5cIixcblx0XCJjb2xTcGFuXCIsXG5cdFwidXNlTWFwXCIsXG5cdFwiZnJhbWVCb3JkZXJcIixcblx0XCJjb250ZW50RWRpdGFibGVcIlxuXSwgZnVuY3Rpb24oKSB7XG5cdGpRdWVyeS5wcm9wRml4WyB0aGlzLnRvTG93ZXJDYXNlKCkgXSA9IHRoaXM7XG59ICk7XG5cblxuXG5cblx0Ly8gU3RyaXAgYW5kIGNvbGxhcHNlIHdoaXRlc3BhY2UgYWNjb3JkaW5nIHRvIEhUTUwgc3BlY1xuXHQvLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jc3RyaXAtYW5kLWNvbGxhcHNlLWFzY2lpLXdoaXRlc3BhY2Vcblx0ZnVuY3Rpb24gc3RyaXBBbmRDb2xsYXBzZSggdmFsdWUgKSB7XG5cdFx0dmFyIHRva2VucyA9IHZhbHVlLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW107XG5cdFx0cmV0dXJuIHRva2Vucy5qb2luKCBcIiBcIiApO1xuXHR9XG5cblxuZnVuY3Rpb24gZ2V0Q2xhc3MoIGVsZW0gKSB7XG5cdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSAmJiBlbGVtLmdldEF0dHJpYnV0ZSggXCJjbGFzc1wiICkgfHwgXCJcIjtcbn1cblxuZnVuY3Rpb24gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICkge1xuXHRpZiAoIEFycmF5LmlzQXJyYXkoIHZhbHVlICkgKSB7XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG5cdGlmICggdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdO1xuXHR9XG5cdHJldHVybiBbXTtcbn1cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRhZGRDbGFzczogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBjbGFzc05hbWVzLCBjdXIsIGN1clZhbHVlLCBjbGFzc05hbWUsIGksIGZpbmFsVmFsdWU7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuYWRkQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGNsYXNzTmFtZXMgPSBjbGFzc2VzVG9BcnJheSggdmFsdWUgKTtcblxuXHRcdGlmICggY2xhc3NOYW1lcy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y3VyVmFsdWUgPSBnZXRDbGFzcyggdGhpcyApO1xuXHRcdFx0XHRjdXIgPSB0aGlzLm5vZGVUeXBlID09PSAxICYmICggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBjdXJWYWx1ZSApICsgXCIgXCIgKTtcblxuXHRcdFx0XHRpZiAoIGN1ciApIHtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGNsYXNzTmFtZXMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpIF07XG5cdFx0XHRcdFx0XHRpZiAoIGN1ci5pbmRleE9mKCBcIiBcIiArIGNsYXNzTmFtZSArIFwiIFwiICkgPCAwICkge1xuXHRcdFx0XHRcdFx0XHRjdXIgKz0gY2xhc3NOYW1lICsgXCIgXCI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gT25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0gc3RyaXBBbmRDb2xsYXBzZSggY3VyICk7XG5cdFx0XHRcdFx0aWYgKCBjdXJWYWx1ZSAhPT0gZmluYWxWYWx1ZSApIHtcblx0XHRcdFx0XHRcdHRoaXMuc2V0QXR0cmlidXRlKCBcImNsYXNzXCIsIGZpbmFsVmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRyZW1vdmVDbGFzczogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBjbGFzc05hbWVzLCBjdXIsIGN1clZhbHVlLCBjbGFzc05hbWUsIGksIGZpbmFsVmFsdWU7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hdHRyKCBcImNsYXNzXCIsIFwiXCIgKTtcblx0XHR9XG5cblx0XHRjbGFzc05hbWVzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRpZiAoIGNsYXNzTmFtZXMubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGN1clZhbHVlID0gZ2V0Q2xhc3MoIHRoaXMgKTtcblxuXHRcdFx0XHQvLyBUaGlzIGV4cHJlc3Npb24gaXMgaGVyZSBmb3IgYmV0dGVyIGNvbXByZXNzaWJpbGl0eSAoc2VlIGFkZENsYXNzKVxuXHRcdFx0XHRjdXIgPSB0aGlzLm5vZGVUeXBlID09PSAxICYmICggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBjdXJWYWx1ZSApICsgXCIgXCIgKTtcblxuXHRcdFx0XHRpZiAoIGN1ciApIHtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGNsYXNzTmFtZXMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSAqYWxsKiBpbnN0YW5jZXNcblx0XHRcdFx0XHRcdHdoaWxlICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhc3NOYW1lICsgXCIgXCIgKSA+IC0xICkge1xuXHRcdFx0XHRcdFx0XHRjdXIgPSBjdXIucmVwbGFjZSggXCIgXCIgKyBjbGFzc05hbWUgKyBcIiBcIiwgXCIgXCIgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUsIHN0YXRlVmFsICkge1xuXHRcdHZhciBjbGFzc05hbWVzLCBjbGFzc05hbWUsIGksIHNlbGYsXG5cdFx0XHR0eXBlID0gdHlwZW9mIHZhbHVlLFxuXHRcdFx0aXNWYWxpZFZhbHVlID0gdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCB2YWx1ZSApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnRvZ2dsZUNsYXNzKFxuXHRcdFx0XHRcdHZhbHVlLmNhbGwoIHRoaXMsIGksIGdldENsYXNzKCB0aGlzICksIHN0YXRlVmFsICksXG5cdFx0XHRcdFx0c3RhdGVWYWxcblx0XHRcdFx0KTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRpZiAoIHR5cGVvZiBzdGF0ZVZhbCA9PT0gXCJib29sZWFuXCIgJiYgaXNWYWxpZFZhbHVlICkge1xuXHRcdFx0cmV0dXJuIHN0YXRlVmFsID8gdGhpcy5hZGRDbGFzcyggdmFsdWUgKSA6IHRoaXMucmVtb3ZlQ2xhc3MoIHZhbHVlICk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NOYW1lcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzVmFsaWRWYWx1ZSApIHtcblxuXHRcdFx0XHQvLyBUb2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lc1xuXHRcdFx0XHRzZWxmID0galF1ZXJ5KCB0aGlzICk7XG5cblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBjbGFzc05hbWVzLmxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRcdGNsYXNzTmFtZSA9IGNsYXNzTmFtZXNbIGkgXTtcblxuXHRcdFx0XHRcdC8vIENoZWNrIGVhY2ggY2xhc3NOYW1lIGdpdmVuLCBzcGFjZSBzZXBhcmF0ZWQgbGlzdFxuXHRcdFx0XHRcdGlmICggc2VsZi5oYXNDbGFzcyggY2xhc3NOYW1lICkgKSB7XG5cdFx0XHRcdFx0XHRzZWxmLnJlbW92ZUNsYXNzKCBjbGFzc05hbWUgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c2VsZi5hZGRDbGFzcyggY2xhc3NOYW1lICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdC8vIFRvZ2dsZSB3aG9sZSBjbGFzcyBuYW1lXG5cdFx0XHR9IGVsc2UgaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGUgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdFx0XHRjbGFzc05hbWUgPSBnZXRDbGFzcyggdGhpcyApO1xuXHRcdFx0XHRpZiAoIGNsYXNzTmFtZSApIHtcblxuXHRcdFx0XHRcdC8vIFN0b3JlIGNsYXNzTmFtZSBpZiBzZXRcblx0XHRcdFx0XHRkYXRhUHJpdi5zZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiLCBjbGFzc05hbWUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIElmIHRoZSBlbGVtZW50IGhhcyBhIGNsYXNzIG5hbWUgb3IgaWYgd2UncmUgcGFzc2VkIGBmYWxzZWAsXG5cdFx0XHRcdC8vIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBjbGFzc25hbWUgKGlmIHRoZXJlIHdhcyBvbmUsIHRoZSBhYm92ZSBzYXZlZCBpdCkuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBicmluZyBiYWNrIHdoYXRldmVyIHdhcyBwcmV2aW91c2x5IHNhdmVkIChpZiBhbnl0aGluZyksXG5cdFx0XHRcdC8vIGZhbGxpbmcgYmFjayB0byB0aGUgZW1wdHkgc3RyaW5nIGlmIG5vdGhpbmcgd2FzIHN0b3JlZC5cblx0XHRcdFx0aWYgKCB0aGlzLnNldEF0dHJpYnV0ZSApIHtcblx0XHRcdFx0XHR0aGlzLnNldEF0dHJpYnV0ZSggXCJjbGFzc1wiLFxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lIHx8IHZhbHVlID09PSBmYWxzZSA/XG5cdFx0XHRcdFx0XHRcdFwiXCIgOlxuXHRcdFx0XHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiICkgfHwgXCJcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0aGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgY2xhc3NOYW1lLCBlbGVtLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRjbGFzc05hbWUgPSBcIiBcIiArIHNlbGVjdG9yICsgXCIgXCI7XG5cdFx0d2hpbGUgKCAoIGVsZW0gPSB0aGlzWyBpKysgXSApICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdCggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBnZXRDbGFzcyggZWxlbSApICkgKyBcIiBcIiApLmluZGV4T2YoIGNsYXNzTmFtZSApID4gLTEgKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufSApO1xuXG5cblxuXG52YXIgcnJldHVybiA9IC9cXHIvZztcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHR2YWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgaG9va3MsIHJldCwgdmFsdWVJc0Z1bmN0aW9uLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXTtcblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRcdGhvb2tzID0galF1ZXJ5LnZhbEhvb2tzWyBlbGVtLnR5cGUgXSB8fFxuXHRcdFx0XHRcdGpRdWVyeS52YWxIb29rc1sgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdFx0aWYgKCBob29rcyAmJlxuXHRcdFx0XHRcdFwiZ2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0XHQoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgXCJ2YWx1ZVwiICkgKSAhPT0gdW5kZWZpbmVkXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXQgPSBlbGVtLnZhbHVlO1xuXG5cdFx0XHRcdC8vIEhhbmRsZSBtb3N0IGNvbW1vbiBzdHJpbmcgY2FzZXNcblx0XHRcdFx0aWYgKCB0eXBlb2YgcmV0ID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0XHRcdHJldHVybiByZXQucmVwbGFjZSggcnJldHVybiwgXCJcIiApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSGFuZGxlIGNhc2VzIHdoZXJlIHZhbHVlIGlzIG51bGwvdW5kZWYgb3IgbnVtYmVyXG5cdFx0XHRcdHJldHVybiByZXQgPT0gbnVsbCA/IFwiXCIgOiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YWx1ZUlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHR2YXIgdmFsO1xuXG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGksIGpRdWVyeSggdGhpcyApLnZhbCgpICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YWwgPSB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVHJlYXQgbnVsbC91bmRlZmluZWQgYXMgXCJcIjsgY29udmVydCBudW1iZXJzIHRvIHN0cmluZ1xuXHRcdFx0aWYgKCB2YWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dmFsID0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0dmFsICs9IFwiXCI7XG5cblx0XHRcdH0gZWxzZSBpZiAoIEFycmF5LmlzQXJyYXkoIHZhbCApICkge1xuXHRcdFx0XHR2YWwgPSBqUXVlcnkubWFwKCB2YWwsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gdmFsdWUgPT0gbnVsbCA/IFwiXCIgOiB2YWx1ZSArIFwiXCI7XG5cdFx0XHRcdH0gKTtcblx0XHRcdH1cblxuXHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIHRoaXMudHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sgdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdC8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFsbCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nXG5cdFx0XHRpZiAoICFob29rcyB8fCAhKCBcInNldFwiIGluIGhvb2tzICkgfHwgaG9va3Muc2V0KCB0aGlzLCB2YWwsIFwidmFsdWVcIiApID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHRoaXMudmFsdWUgPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0dmFsSG9va3M6IHtcblx0XHRvcHRpb246IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdFx0dmFyIHZhbCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIFwidmFsdWVcIiApO1xuXHRcdFx0XHRyZXR1cm4gdmFsICE9IG51bGwgP1xuXHRcdFx0XHRcdHZhbCA6XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTEwIC0gMTEgb25seVxuXHRcdFx0XHRcdC8vIG9wdGlvbi50ZXh0IHRocm93cyBleGNlcHRpb25zICh0cmFjLTE0Njg2LCB0cmFjLTE0ODU4KVxuXHRcdFx0XHRcdC8vIFN0cmlwIGFuZCBjb2xsYXBzZSB3aGl0ZXNwYWNlXG5cdFx0XHRcdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jc3RyaXAtYW5kLWNvbGxhcHNlLXdoaXRlc3BhY2Vcblx0XHRcdFx0XHRzdHJpcEFuZENvbGxhcHNlKCBqUXVlcnkudGV4dCggZWxlbSApICk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRzZWxlY3Q6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciB2YWx1ZSwgb3B0aW9uLCBpLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0aW5kZXggPSBlbGVtLnNlbGVjdGVkSW5kZXgsXG5cdFx0XHRcdFx0b25lID0gZWxlbS50eXBlID09PSBcInNlbGVjdC1vbmVcIixcblx0XHRcdFx0XHR2YWx1ZXMgPSBvbmUgPyBudWxsIDogW10sXG5cdFx0XHRcdFx0bWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0aWYgKCBpbmRleCA8IDAgKSB7XG5cdFx0XHRcdFx0aSA9IG1heDtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGkgPSBvbmUgPyBpbmRleCA6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBzZWxlY3RlZCBvcHRpb25zXG5cdFx0XHRcdGZvciAoIDsgaSA8IG1heDsgaSsrICkge1xuXHRcdFx0XHRcdG9wdGlvbiA9IG9wdGlvbnNbIGkgXTtcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0Ly8gSUU4LTkgZG9lc24ndCB1cGRhdGUgc2VsZWN0ZWQgYWZ0ZXIgZm9ybSByZXNldCAodHJhYy0yNTUxKVxuXHRcdFx0XHRcdGlmICggKCBvcHRpb24uc2VsZWN0ZWQgfHwgaSA9PT0gaW5kZXggKSAmJlxuXG5cdFx0XHRcdFx0XHRcdC8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXBcblx0XHRcdFx0XHRcdFx0IW9wdGlvbi5kaXNhYmxlZCAmJlxuXHRcdFx0XHRcdFx0XHQoICFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fFxuXHRcdFx0XHRcdFx0XHRcdCFub2RlTmFtZSggb3B0aW9uLnBhcmVudE5vZGUsIFwib3B0Z3JvdXBcIiApICkgKSB7XG5cblx0XHRcdFx0XHRcdC8vIEdldCB0aGUgc3BlY2lmaWMgdmFsdWUgZm9yIHRoZSBvcHRpb25cblx0XHRcdFx0XHRcdHZhbHVlID0galF1ZXJ5KCBvcHRpb24gKS52YWwoKTtcblxuXHRcdFx0XHRcdFx0Ly8gV2UgZG9uJ3QgbmVlZCBhbiBhcnJheSBmb3Igb25lIHNlbGVjdHNcblx0XHRcdFx0XHRcdGlmICggb25lICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIE11bHRpLVNlbGVjdHMgcmV0dXJuIGFuIGFycmF5XG5cdFx0XHRcdFx0XHR2YWx1ZXMucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRcdHZhciBvcHRpb25TZXQsIG9wdGlvbixcblx0XHRcdFx0XHRvcHRpb25zID0gZWxlbS5vcHRpb25zLFxuXHRcdFx0XHRcdHZhbHVlcyA9IGpRdWVyeS5tYWtlQXJyYXkoIHZhbHVlICksXG5cdFx0XHRcdFx0aSA9IG9wdGlvbnMubGVuZ3RoO1xuXG5cdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdG9wdGlvbiA9IG9wdGlvbnNbIGkgXTtcblxuXHRcdFx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbmQtYXNzaWduICovXG5cblx0XHRcdFx0XHRpZiAoIG9wdGlvbi5zZWxlY3RlZCA9XG5cdFx0XHRcdFx0XHRqUXVlcnkuaW5BcnJheSggalF1ZXJ5LnZhbEhvb2tzLm9wdGlvbi5nZXQoIG9wdGlvbiApLCB2YWx1ZXMgKSA+IC0xXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvcHRpb25TZXQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8qIGVzbGludC1lbmFibGUgbm8tY29uZC1hc3NpZ24gKi9cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEZvcmNlIGJyb3dzZXJzIHRvIGJlaGF2ZSBjb25zaXN0ZW50bHkgd2hlbiBub24tbWF0Y2hpbmcgdmFsdWUgaXMgc2V0XG5cdFx0XHRcdGlmICggIW9wdGlvblNldCApIHtcblx0XHRcdFx0XHRlbGVtLnNlbGVjdGVkSW5kZXggPSAtMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgZ2V0dGVyL3NldHRlclxualF1ZXJ5LmVhY2goIFsgXCJyYWRpb1wiLCBcImNoZWNrYm94XCIgXSwgZnVuY3Rpb24oKSB7XG5cdGpRdWVyeS52YWxIb29rc1sgdGhpcyBdID0ge1xuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KCBlbGVtICkudmFsKCksIHZhbHVlICkgPiAtMSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0aWYgKCAhc3VwcG9ydC5jaGVja09uICkge1xuXHRcdGpRdWVyeS52YWxIb29rc1sgdGhpcyBdLmdldCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCBcInZhbHVlXCIgKSA9PT0gbnVsbCA/IFwib25cIiA6IGVsZW0udmFsdWU7XG5cdFx0fTtcblx0fVxufSApO1xuXG5cblxuXG4vLyBSZXR1cm4galF1ZXJ5IGZvciBhdHRyaWJ1dGVzLW9ubHkgaW5jbHVzaW9uXG52YXIgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb247XG5cbnZhciBub25jZSA9IHsgZ3VpZDogRGF0ZS5ub3coKSB9O1xuXG52YXIgcnF1ZXJ5ID0gKCAvXFw/LyApO1xuXG5cblxuLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZ1xualF1ZXJ5LnBhcnNlWE1MID0gZnVuY3Rpb24oIGRhdGEgKSB7XG5cdHZhciB4bWwsIHBhcnNlckVycm9yRWxlbTtcblx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIElFIHRocm93cyBvbiBwYXJzZUZyb21TdHJpbmcgd2l0aCBpbnZhbGlkIGlucHV0LlxuXHR0cnkge1xuXHRcdHhtbCA9ICggbmV3IHdpbmRvdy5ET01QYXJzZXIoKSApLnBhcnNlRnJvbVN0cmluZyggZGF0YSwgXCJ0ZXh0L3htbFwiICk7XG5cdH0gY2F0Y2ggKCBlICkge31cblxuXHRwYXJzZXJFcnJvckVsZW0gPSB4bWwgJiYgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcInBhcnNlcmVycm9yXCIgKVsgMCBdO1xuXHRpZiAoICF4bWwgfHwgcGFyc2VyRXJyb3JFbGVtICkge1xuXHRcdGpRdWVyeS5lcnJvciggXCJJbnZhbGlkIFhNTDogXCIgKyAoXG5cdFx0XHRwYXJzZXJFcnJvckVsZW0gP1xuXHRcdFx0XHRqUXVlcnkubWFwKCBwYXJzZXJFcnJvckVsZW0uY2hpbGROb2RlcywgZnVuY3Rpb24oIGVsICkge1xuXHRcdFx0XHRcdHJldHVybiBlbC50ZXh0Q29udGVudDtcblx0XHRcdFx0fSApLmpvaW4oIFwiXFxuXCIgKSA6XG5cdFx0XHRcdGRhdGFcblx0XHQpICk7XG5cdH1cblx0cmV0dXJuIHhtbDtcbn07XG5cblxudmFyIHJmb2N1c01vcnBoID0gL14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLFxuXHRzdG9wUHJvcGFnYXRpb25DYWxsYmFjayA9IGZ1bmN0aW9uKCBlICkge1xuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH07XG5cbmpRdWVyeS5leHRlbmQoIGpRdWVyeS5ldmVudCwge1xuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCBldmVudCwgZGF0YSwgZWxlbSwgb25seUhhbmRsZXJzICkge1xuXG5cdFx0dmFyIGksIGN1ciwgdG1wLCBidWJibGVUeXBlLCBvbnR5cGUsIGhhbmRsZSwgc3BlY2lhbCwgbGFzdEVsZW1lbnQsXG5cdFx0XHRldmVudFBhdGggPSBbIGVsZW0gfHwgZG9jdW1lbnQgXSxcblx0XHRcdHR5cGUgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwidHlwZVwiICkgPyBldmVudC50eXBlIDogZXZlbnQsXG5cdFx0XHRuYW1lc3BhY2VzID0gaGFzT3duLmNhbGwoIGV2ZW50LCBcIm5hbWVzcGFjZVwiICkgPyBldmVudC5uYW1lc3BhY2Uuc3BsaXQoIFwiLlwiICkgOiBbXTtcblxuXHRcdGN1ciA9IGxhc3RFbGVtZW50ID0gdG1wID0gZWxlbSA9IGVsZW0gfHwgZG9jdW1lbnQ7XG5cblx0XHQvLyBEb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIGZvY3VzL2JsdXIgbW9ycGhzIHRvIGZvY3VzaW4vb3V0OyBlbnN1cmUgd2UncmUgbm90IGZpcmluZyB0aGVtIHJpZ2h0IG5vd1xuXHRcdGlmICggcmZvY3VzTW9ycGgudGVzdCggdHlwZSArIGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIHR5cGUuaW5kZXhPZiggXCIuXCIgKSA+IC0xICkge1xuXG5cdFx0XHQvLyBOYW1lc3BhY2VkIHRyaWdnZXI7IGNyZWF0ZSBhIHJlZ2V4cCB0byBtYXRjaCBldmVudCB0eXBlIGluIGhhbmRsZSgpXG5cdFx0XHRuYW1lc3BhY2VzID0gdHlwZS5zcGxpdCggXCIuXCIgKTtcblx0XHRcdHR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7XG5cdFx0XHRuYW1lc3BhY2VzLnNvcnQoKTtcblx0XHR9XG5cdFx0b250eXBlID0gdHlwZS5pbmRleE9mKCBcIjpcIiApIDwgMCAmJiBcIm9uXCIgKyB0eXBlO1xuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGEgalF1ZXJ5LkV2ZW50IG9iamVjdCwgT2JqZWN0LCBvciBqdXN0IGFuIGV2ZW50IHR5cGUgc3RyaW5nXG5cdFx0ZXZlbnQgPSBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSA/XG5cdFx0XHRldmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlLCB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiYgZXZlbnQgKTtcblxuXHRcdC8vIFRyaWdnZXIgYml0bWFzazogJiAxIGZvciBuYXRpdmUgaGFuZGxlcnM7ICYgMiBmb3IgalF1ZXJ5IChhbHdheXMgdHJ1ZSlcblx0XHRldmVudC5pc1RyaWdnZXIgPSBvbmx5SGFuZGxlcnMgPyAyIDogMztcblx0XHRldmVudC5uYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmpvaW4oIFwiLlwiICk7XG5cdFx0ZXZlbnQucm5hbWVzcGFjZSA9IGV2ZW50Lm5hbWVzcGFjZSA/XG5cdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKCBcIlxcXFwuKD86LipcXFxcLnwpXCIgKSArIFwiKFxcXFwufCQpXCIgKSA6XG5cdFx0XHRudWxsO1xuXG5cdFx0Ly8gQ2xlYW4gdXAgdGhlIGV2ZW50IGluIGNhc2UgaXQgaXMgYmVpbmcgcmV1c2VkXG5cdFx0ZXZlbnQucmVzdWx0ID0gdW5kZWZpbmVkO1xuXHRcdGlmICggIWV2ZW50LnRhcmdldCApIHtcblx0XHRcdGV2ZW50LnRhcmdldCA9IGVsZW07XG5cdFx0fVxuXG5cdFx0Ly8gQ2xvbmUgYW55IGluY29taW5nIGRhdGEgYW5kIHByZXBlbmQgdGhlIGV2ZW50LCBjcmVhdGluZyB0aGUgaGFuZGxlciBhcmcgbGlzdFxuXHRcdGRhdGEgPSBkYXRhID09IG51bGwgP1xuXHRcdFx0WyBldmVudCBdIDpcblx0XHRcdGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEsIFsgZXZlbnQgXSApO1xuXG5cdFx0Ly8gQWxsb3cgc3BlY2lhbCBldmVudHMgdG8gZHJhdyBvdXRzaWRlIHRoZSBsaW5lc1xuXHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiBzcGVjaWFsLnRyaWdnZXIgJiYgc3BlY2lhbC50cmlnZ2VyLmFwcGx5KCBlbGVtLCBkYXRhICkgPT09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERldGVybWluZSBldmVudCBwcm9wYWdhdGlvbiBwYXRoIGluIGFkdmFuY2UsIHBlciBXM0MgZXZlbnRzIHNwZWMgKHRyYWMtOTk1MSlcblx0XHQvLyBCdWJibGUgdXAgdG8gZG9jdW1lbnQsIHRoZW4gdG8gd2luZG93OyB3YXRjaCBmb3IgYSBnbG9iYWwgb3duZXJEb2N1bWVudCB2YXIgKHRyYWMtOTcyNClcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIXNwZWNpYWwubm9CdWJibGUgJiYgIWlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdGJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlwZSB8fCB0eXBlO1xuXHRcdFx0aWYgKCAhcmZvY3VzTW9ycGgudGVzdCggYnViYmxlVHlwZSArIHR5cGUgKSApIHtcblx0XHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKCA7IGN1cjsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0dG1wID0gY3VyO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPbmx5IGFkZCB3aW5kb3cgaWYgd2UgZ290IHRvIGRvY3VtZW50IChlLmcuLCBub3QgcGxhaW4gb2JqIG9yIGRldGFjaGVkIERPTSlcblx0XHRcdGlmICggdG1wID09PSAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCApICkge1xuXHRcdFx0XHRldmVudFBhdGgucHVzaCggdG1wLmRlZmF1bHRWaWV3IHx8IHRtcC5wYXJlbnRXaW5kb3cgfHwgd2luZG93ICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmlyZSBoYW5kbGVycyBvbiB0aGUgZXZlbnQgcGF0aFxuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKCBjdXIgPSBldmVudFBhdGhbIGkrKyBdICkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRsYXN0RWxlbWVudCA9IGN1cjtcblx0XHRcdGV2ZW50LnR5cGUgPSBpID4gMSA/XG5cdFx0XHRcdGJ1YmJsZVR5cGUgOlxuXHRcdFx0XHRzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGU7XG5cblx0XHRcdC8vIGpRdWVyeSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSAoIGRhdGFQcml2LmdldCggY3VyLCBcImV2ZW50c1wiICkgfHwgT2JqZWN0LmNyZWF0ZSggbnVsbCApIClbIGV2ZW50LnR5cGUgXSAmJlxuXHRcdFx0XHRkYXRhUHJpdi5nZXQoIGN1ciwgXCJoYW5kbGVcIiApO1xuXHRcdFx0aWYgKCBoYW5kbGUgKSB7XG5cdFx0XHRcdGhhbmRsZS5hcHBseSggY3VyLCBkYXRhICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE5hdGl2ZSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSBvbnR5cGUgJiYgY3VyWyBvbnR5cGUgXTtcblx0XHRcdGlmICggaGFuZGxlICYmIGhhbmRsZS5hcHBseSAmJiBhY2NlcHREYXRhKCBjdXIgKSApIHtcblx0XHRcdFx0ZXZlbnQucmVzdWx0ID0gaGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcblx0XHRcdFx0aWYgKCBldmVudC5yZXN1bHQgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZXZlbnQudHlwZSA9IHR5cGU7XG5cblx0XHQvLyBJZiBub2JvZHkgcHJldmVudGVkIHRoZSBkZWZhdWx0IGFjdGlvbiwgZG8gaXQgbm93XG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmICFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSApIHtcblxuXHRcdFx0aWYgKCAoICFzcGVjaWFsLl9kZWZhdWx0IHx8XG5cdFx0XHRcdHNwZWNpYWwuX2RlZmF1bHQuYXBwbHkoIGV2ZW50UGF0aC5wb3AoKSwgZGF0YSApID09PSBmYWxzZSApICYmXG5cdFx0XHRcdGFjY2VwdERhdGEoIGVsZW0gKSApIHtcblxuXHRcdFx0XHQvLyBDYWxsIGEgbmF0aXZlIERPTSBtZXRob2Qgb24gdGhlIHRhcmdldCB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGV2ZW50LlxuXHRcdFx0XHQvLyBEb24ndCBkbyBkZWZhdWx0IGFjdGlvbnMgb24gd2luZG93LCB0aGF0J3Mgd2hlcmUgZ2xvYmFsIHZhcmlhYmxlcyBiZSAodHJhYy02MTcwKVxuXHRcdFx0XHRpZiAoIG9udHlwZSAmJiBpc0Z1bmN0aW9uKCBlbGVtWyB0eXBlIF0gKSAmJiAhaXNXaW5kb3coIGVsZW0gKSApIHtcblxuXHRcdFx0XHRcdC8vIERvbid0IHJlLXRyaWdnZXIgYW4gb25GT08gZXZlbnQgd2hlbiB3ZSBjYWxsIGl0cyBGT08oKSBtZXRob2Rcblx0XHRcdFx0XHR0bXAgPSBlbGVtWyBvbnR5cGUgXTtcblxuXHRcdFx0XHRcdGlmICggdG1wICkge1xuXHRcdFx0XHRcdFx0ZWxlbVsgb250eXBlIF0gPSBudWxsO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFByZXZlbnQgcmUtdHJpZ2dlcmluZyBvZiB0aGUgc2FtZSBldmVudCwgc2luY2Ugd2UgYWxyZWFkeSBidWJibGVkIGl0IGFib3ZlXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IHR5cGU7XG5cblx0XHRcdFx0XHRpZiAoIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRcdFx0XHRsYXN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBzdG9wUHJvcGFnYXRpb25DYWxsYmFjayApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGVsZW1bIHR5cGUgXSgpO1xuXG5cdFx0XHRcdFx0aWYgKCBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXHRcdFx0XHRcdFx0bGFzdEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgc3RvcFByb3BhZ2F0aW9uQ2FsbGJhY2sgKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlcmVkID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRcdFx0aWYgKCB0bXAgKSB7XG5cdFx0XHRcdFx0XHRlbGVtWyBvbnR5cGUgXSA9IHRtcDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZXZlbnQucmVzdWx0O1xuXHR9LFxuXG5cdC8vIFBpZ2d5YmFjayBvbiBhIGRvbm9yIGV2ZW50IHRvIHNpbXVsYXRlIGEgZGlmZmVyZW50IG9uZVxuXHQvLyBVc2VkIG9ubHkgZm9yIGBmb2N1cyhpbiB8IG91dClgIGV2ZW50c1xuXHRzaW11bGF0ZTogZnVuY3Rpb24oIHR5cGUsIGVsZW0sIGV2ZW50ICkge1xuXHRcdHZhciBlID0galF1ZXJ5LmV4dGVuZChcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoKSxcblx0XHRcdGV2ZW50LFxuXHRcdFx0e1xuXHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRpc1NpbXVsYXRlZDogdHJ1ZVxuXHRcdFx0fVxuXHRcdCk7XG5cblx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggZSwgbnVsbCwgZWxlbSApO1xuXHR9XG5cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTtcblx0XHR9ICk7XG5cdH0sXG5cdHRyaWdnZXJIYW5kbGVyOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgZWxlbSA9IHRoaXNbIDAgXTtcblx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIGVsZW0sIHRydWUgKTtcblx0XHR9XG5cdH1cbn0gKTtcblxuXG52YXJcblx0cmJyYWNrZXQgPSAvXFxbXFxdJC8sXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcblx0cnN1Ym1pdHRlclR5cGVzID0gL14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFxuXHRyc3VibWl0dGFibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHtcblx0dmFyIG5hbWU7XG5cblx0aWYgKCBBcnJheS5pc0FycmF5KCBvYmogKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLlxuXHRcdGpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkge1xuXHRcdFx0aWYgKCB0cmFkaXRpb25hbCB8fCByYnJhY2tldC50ZXN0KCBwcmVmaXggKSApIHtcblxuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXG5cdFx0XHRcdGFkZCggcHJlZml4LCB2ICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gSXRlbSBpcyBub24tc2NhbGFyIChhcnJheSBvciBvYmplY3QpLCBlbmNvZGUgaXRzIG51bWVyaWMgaW5kZXguXG5cdFx0XHRcdGJ1aWxkUGFyYW1zKFxuXHRcdFx0XHRcdHByZWZpeCArIFwiW1wiICsgKCB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICE9IG51bGwgPyBpIDogXCJcIiApICsgXCJdXCIsXG5cdFx0XHRcdFx0dixcblx0XHRcdFx0XHR0cmFkaXRpb25hbCxcblx0XHRcdFx0XHRhZGRcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0fSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIHRvVHlwZSggb2JqICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyBuYW1lICsgXCJdXCIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uXG5cdFx0YWRkKCBwcmVmaXgsIG9iaiApO1xuXHR9XG59XG5cbi8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mXG4vLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmdcbmpRdWVyeS5wYXJhbSA9IGZ1bmN0aW9uKCBhLCB0cmFkaXRpb25hbCApIHtcblx0dmFyIHByZWZpeCxcblx0XHRzID0gW10sXG5cdFx0YWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWVPckZ1bmN0aW9uICkge1xuXG5cdFx0XHQvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHVzZSBpdHMgcmV0dXJuIHZhbHVlXG5cdFx0XHR2YXIgdmFsdWUgPSBpc0Z1bmN0aW9uKCB2YWx1ZU9yRnVuY3Rpb24gKSA/XG5cdFx0XHRcdHZhbHVlT3JGdW5jdGlvbigpIDpcblx0XHRcdFx0dmFsdWVPckZ1bmN0aW9uO1xuXG5cdFx0XHRzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArIFwiPVwiICtcblx0XHRcdFx0ZW5jb2RlVVJJQ29tcG9uZW50KCB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICk7XG5cdFx0fTtcblxuXHRpZiAoIGEgPT0gbnVsbCApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdC8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuXG5cdGlmICggQXJyYXkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSB0aGUgZm9ybSBlbGVtZW50c1xuXHRcdGpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHtcblx0XHRcdGFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7XG5cdFx0fSApO1xuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBJZiB0cmFkaXRpb25hbCwgZW5jb2RlIHRoZSBcIm9sZFwiIHdheSAodGhlIHdheSAxLjMuMiBvciBvbGRlclxuXHRcdC8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LlxuXHRcdGZvciAoIHByZWZpeCBpbiBhICkge1xuXHRcdFx0YnVpbGRQYXJhbXMoIHByZWZpeCwgYVsgcHJlZml4IF0sIHRyYWRpdGlvbmFsLCBhZGQgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uXG5cdHJldHVybiBzLmpvaW4oIFwiJlwiICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7XG5cdH0sXG5cdHNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBDYW4gYWRkIHByb3BIb29rIGZvciBcImVsZW1lbnRzXCIgdG8gZmlsdGVyIG9yIGFkZCBmb3JtIGVsZW1lbnRzXG5cdFx0XHR2YXIgZWxlbWVudHMgPSBqUXVlcnkucHJvcCggdGhpcywgXCJlbGVtZW50c1wiICk7XG5cdFx0XHRyZXR1cm4gZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCBlbGVtZW50cyApIDogdGhpcztcblx0XHR9ICkuZmlsdGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0eXBlID0gdGhpcy50eXBlO1xuXG5cdFx0XHQvLyBVc2UgLmlzKCBcIjpkaXNhYmxlZFwiICkgc28gdGhhdCBmaWVsZHNldFtkaXNhYmxlZF0gd29ya3Ncblx0XHRcdHJldHVybiB0aGlzLm5hbWUgJiYgIWpRdWVyeSggdGhpcyApLmlzKCBcIjpkaXNhYmxlZFwiICkgJiZcblx0XHRcdFx0cnN1Ym1pdHRhYmxlLnRlc3QoIHRoaXMubm9kZU5hbWUgKSAmJiAhcnN1Ym1pdHRlclR5cGVzLnRlc3QoIHR5cGUgKSAmJlxuXHRcdFx0XHQoIHRoaXMuY2hlY2tlZCB8fCAhcmNoZWNrYWJsZVR5cGUudGVzdCggdHlwZSApICk7XG5cdFx0fSApLm1hcCggZnVuY3Rpb24oIF9pLCBlbGVtICkge1xuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xuXG5cdFx0XHRpZiAoIHZhbCA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24oIHZhbCApIHtcblx0XHRcdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0fSApLmdldCgpO1xuXHR9XG59ICk7XG5cblxudmFyXG5cdHIyMCA9IC8lMjAvZyxcblx0cmhhc2ggPSAvIy4qJC8sXG5cdHJhbnRpQ2FjaGUgPSAvKFs/Jl0pXz1bXiZdKi8sXG5cdHJoZWFkZXJzID0gL14oLio/KTpbIFxcdF0qKFteXFxyXFxuXSopJC9tZyxcblxuXHQvLyB0cmFjLTc2NTMsIHRyYWMtODEyNSwgdHJhYy04MTUyOiBsb2NhbCBwcm90b2NvbCBkZXRlY3Rpb25cblx0cmxvY2FsUHJvdG9jb2wgPSAvXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxcblx0cm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8sXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcblxuXHQvKiBQcmVmaWx0ZXJzXG5cdCAqIDEpIFRoZXkgYXJlIHVzZWZ1bCB0byBpbnRyb2R1Y2UgY3VzdG9tIGRhdGFUeXBlcyAoc2VlIGFqYXgvanNvbnAuanMgZm9yIGFuIGV4YW1wbGUpXG5cdCAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6XG5cdCAqICAgIC0gQkVGT1JFIGFza2luZyBmb3IgYSB0cmFuc3BvcnRcblx0ICogICAgLSBBRlRFUiBwYXJhbSBzZXJpYWxpemF0aW9uIChzLmRhdGEgaXMgYSBzdHJpbmcgaWYgcy5wcm9jZXNzRGF0YSBpcyB0cnVlKVxuXHQgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlXG5cdCAqIDQpIHRoZSBjYXRjaGFsbCBzeW1ib2wgXCIqXCIgY2FuIGJlIHVzZWRcblx0ICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHByZWZpbHRlcnMgPSB7fSxcblxuXHQvKiBUcmFuc3BvcnRzIGJpbmRpbmdzXG5cdCAqIDEpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogMikgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiAzKSBzZWxlY3Rpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBnbyB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHRyYW5zcG9ydHMgPSB7fSxcblxuXHQvLyBBdm9pZCBjb21tZW50LXByb2xvZyBjaGFyIHNlcXVlbmNlICh0cmFjLTEwMDk4KTsgbXVzdCBhcHBlYXNlIGxpbnQgYW5kIGV2YWRlIGNvbXByZXNzaW9uXG5cdGFsbFR5cGVzID0gXCIqL1wiLmNvbmNhdCggXCIqXCIgKSxcblxuXHQvLyBBbmNob3IgdGFnIGZvciBwYXJzaW5nIHRoZSBkb2N1bWVudCBvcmlnaW5cblx0b3JpZ2luQW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJhXCIgKTtcblxub3JpZ2luQW5jaG9yLmhyZWYgPSBsb2NhdGlvbi5ocmVmO1xuXG4vLyBCYXNlIFwiY29uc3RydWN0b3JcIiBmb3IgalF1ZXJ5LmFqYXhQcmVmaWx0ZXIgYW5kIGpRdWVyeS5hamF4VHJhbnNwb3J0XG5mdW5jdGlvbiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSApIHtcblxuXHQvLyBkYXRhVHlwZUV4cHJlc3Npb24gaXMgb3B0aW9uYWwgYW5kIGRlZmF1bHRzIHRvIFwiKlwiXG5cdHJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHByZXNzaW9uLCBmdW5jICkge1xuXG5cdFx0aWYgKCB0eXBlb2YgZGF0YVR5cGVFeHByZXNzaW9uICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0ZnVuYyA9IGRhdGFUeXBlRXhwcmVzc2lvbjtcblx0XHRcdGRhdGFUeXBlRXhwcmVzc2lvbiA9IFwiKlwiO1xuXHRcdH1cblxuXHRcdHZhciBkYXRhVHlwZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0ZGF0YVR5cGVzID0gZGF0YVR5cGVFeHByZXNzaW9uLnRvTG93ZXJDYXNlKCkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXTtcblxuXHRcdGlmICggaXNGdW5jdGlvbiggZnVuYyApICkge1xuXG5cdFx0XHQvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgZGF0YVR5cGVFeHByZXNzaW9uXG5cdFx0XHR3aGlsZSAoICggZGF0YVR5cGUgPSBkYXRhVHlwZXNbIGkrKyBdICkgKSB7XG5cblx0XHRcdFx0Ly8gUHJlcGVuZCBpZiByZXF1ZXN0ZWRcblx0XHRcdFx0aWYgKCBkYXRhVHlwZVsgMCBdID09PSBcIitcIiApIHtcblx0XHRcdFx0XHRkYXRhVHlwZSA9IGRhdGFUeXBlLnNsaWNlKCAxICkgfHwgXCIqXCI7XG5cdFx0XHRcdFx0KCBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW10gKS51bnNoaWZ0KCBmdW5jICk7XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCggc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdICkucHVzaCggZnVuYyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufVxuXG4vLyBCYXNlIGluc3BlY3Rpb24gZnVuY3Rpb24gZm9yIHByZWZpbHRlcnMgYW5kIHRyYW5zcG9ydHNcbmZ1bmN0aW9uIGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKSB7XG5cblx0dmFyIGluc3BlY3RlZCA9IHt9LFxuXHRcdHNlZWtpbmdUcmFuc3BvcnQgPSAoIHN0cnVjdHVyZSA9PT0gdHJhbnNwb3J0cyApO1xuXG5cdGZ1bmN0aW9uIGluc3BlY3QoIGRhdGFUeXBlICkge1xuXHRcdHZhciBzZWxlY3RlZDtcblx0XHRpbnNwZWN0ZWRbIGRhdGFUeXBlIF0gPSB0cnVlO1xuXHRcdGpRdWVyeS5lYWNoKCBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW10sIGZ1bmN0aW9uKCBfLCBwcmVmaWx0ZXJPckZhY3RvcnkgKSB7XG5cdFx0XHR2YXIgZGF0YVR5cGVPclRyYW5zcG9ydCA9IHByZWZpbHRlck9yRmFjdG9yeSggb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApO1xuXHRcdFx0aWYgKCB0eXBlb2YgZGF0YVR5cGVPclRyYW5zcG9ydCA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0XHQhc2Vla2luZ1RyYW5zcG9ydCAmJiAhaW5zcGVjdGVkWyBkYXRhVHlwZU9yVHJhbnNwb3J0IF0gKSB7XG5cblx0XHRcdFx0b3B0aW9ucy5kYXRhVHlwZXMudW5zaGlmdCggZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0XHRpbnNwZWN0KCBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSBpZiAoIHNlZWtpbmdUcmFuc3BvcnQgKSB7XG5cdFx0XHRcdHJldHVybiAhKCBzZWxlY3RlZCA9IGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdFx0cmV0dXJuIHNlbGVjdGVkO1xuXHR9XG5cblx0cmV0dXJuIGluc3BlY3QoIG9wdGlvbnMuZGF0YVR5cGVzWyAwIF0gKSB8fCAhaW5zcGVjdGVkWyBcIipcIiBdICYmIGluc3BlY3QoIFwiKlwiICk7XG59XG5cbi8vIEEgc3BlY2lhbCBleHRlbmQgZm9yIGFqYXggb3B0aW9uc1xuLy8gdGhhdCB0YWtlcyBcImZsYXRcIiBvcHRpb25zIChub3QgdG8gYmUgZGVlcCBleHRlbmRlZClcbi8vIEZpeGVzIHRyYWMtOTg4N1xuZnVuY3Rpb24gYWpheEV4dGVuZCggdGFyZ2V0LCBzcmMgKSB7XG5cdHZhciBrZXksIGRlZXAsXG5cdFx0ZmxhdE9wdGlvbnMgPSBqUXVlcnkuYWpheFNldHRpbmdzLmZsYXRPcHRpb25zIHx8IHt9O1xuXG5cdGZvciAoIGtleSBpbiBzcmMgKSB7XG5cdFx0aWYgKCBzcmNbIGtleSBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHQoIGZsYXRPcHRpb25zWyBrZXkgXSA/IHRhcmdldCA6ICggZGVlcCB8fCAoIGRlZXAgPSB7fSApICkgKVsga2V5IF0gPSBzcmNbIGtleSBdO1xuXHRcdH1cblx0fVxuXHRpZiAoIGRlZXAgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggdHJ1ZSwgdGFyZ2V0LCBkZWVwICk7XG5cdH1cblxuXHRyZXR1cm4gdGFyZ2V0O1xufVxuXG4vKiBIYW5kbGVzIHJlc3BvbnNlcyB0byBhbiBhamF4IHJlcXVlc3Q6XG4gKiAtIGZpbmRzIHRoZSByaWdodCBkYXRhVHlwZSAobWVkaWF0ZXMgYmV0d2VlbiBjb250ZW50LXR5cGUgYW5kIGV4cGVjdGVkIGRhdGFUeXBlKVxuICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlXG4gKi9cbmZ1bmN0aW9uIGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKSB7XG5cblx0dmFyIGN0LCB0eXBlLCBmaW5hbERhdGFUeXBlLCBmaXJzdERhdGFUeXBlLFxuXHRcdGNvbnRlbnRzID0gcy5jb250ZW50cyxcblx0XHRkYXRhVHlwZXMgPSBzLmRhdGFUeXBlcztcblxuXHQvLyBSZW1vdmUgYXV0byBkYXRhVHlwZSBhbmQgZ2V0IGNvbnRlbnQtdHlwZSBpbiB0aGUgcHJvY2Vzc1xuXHR3aGlsZSAoIGRhdGFUeXBlc1sgMCBdID09PSBcIipcIiApIHtcblx0XHRkYXRhVHlwZXMuc2hpZnQoKTtcblx0XHRpZiAoIGN0ID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRjdCA9IHMubWltZVR5cGUgfHwganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiQ29udGVudC1UeXBlXCIgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGVcblx0aWYgKCBjdCApIHtcblx0XHRmb3IgKCB0eXBlIGluIGNvbnRlbnRzICkge1xuXHRcdFx0aWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHtcblx0XHRcdFx0ZGF0YVR5cGVzLnVuc2hpZnQoIHR5cGUgKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSByZXNwb25zZSBmb3IgdGhlIGV4cGVjdGVkIGRhdGFUeXBlXG5cdGlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkge1xuXHRcdGZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTtcblx0fSBlbHNlIHtcblxuXHRcdC8vIFRyeSBjb252ZXJ0aWJsZSBkYXRhVHlwZXNcblx0XHRmb3IgKCB0eXBlIGluIHJlc3BvbnNlcyApIHtcblx0XHRcdGlmICggIWRhdGFUeXBlc1sgMCBdIHx8IHMuY29udmVydGVyc1sgdHlwZSArIFwiIFwiICsgZGF0YVR5cGVzWyAwIF0gXSApIHtcblx0XHRcdFx0ZmluYWxEYXRhVHlwZSA9IHR5cGU7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCAhZmlyc3REYXRhVHlwZSApIHtcblx0XHRcdFx0Zmlyc3REYXRhVHlwZSA9IHR5cGU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gT3IganVzdCB1c2UgZmlyc3Qgb25lXG5cdFx0ZmluYWxEYXRhVHlwZSA9IGZpbmFsRGF0YVR5cGUgfHwgZmlyc3REYXRhVHlwZTtcblx0fVxuXG5cdC8vIElmIHdlIGZvdW5kIGEgZGF0YVR5cGVcblx0Ly8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWRcblx0Ly8gYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuXHRpZiAoIGZpbmFsRGF0YVR5cGUgKSB7XG5cdFx0aWYgKCBmaW5hbERhdGFUeXBlICE9PSBkYXRhVHlwZXNbIDAgXSApIHtcblx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCBmaW5hbERhdGFUeXBlICk7XG5cdFx0fVxuXHRcdHJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTtcblx0fVxufVxuXG4vKiBDaGFpbiBjb252ZXJzaW9ucyBnaXZlbiB0aGUgcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlc3BvbnNlXG4gKiBBbHNvIHNldHMgdGhlIHJlc3BvbnNlWFhYIGZpZWxkcyBvbiB0aGUganFYSFIgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICkge1xuXHR2YXIgY29udjIsIGN1cnJlbnQsIGNvbnYsIHRtcCwgcHJldixcblx0XHRjb252ZXJ0ZXJzID0ge30sXG5cblx0XHQvLyBXb3JrIHdpdGggYSBjb3B5IG9mIGRhdGFUeXBlcyBpbiBjYXNlIHdlIG5lZWQgdG8gbW9kaWZ5IGl0IGZvciBjb252ZXJzaW9uXG5cdFx0ZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMuc2xpY2UoKTtcblxuXHQvLyBDcmVhdGUgY29udmVydGVycyBtYXAgd2l0aCBsb3dlcmNhc2VkIGtleXNcblx0aWYgKCBkYXRhVHlwZXNbIDEgXSApIHtcblx0XHRmb3IgKCBjb252IGluIHMuY29udmVydGVycyApIHtcblx0XHRcdGNvbnZlcnRlcnNbIGNvbnYudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBjb252IF07XG5cdFx0fVxuXHR9XG5cblx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdC8vIENvbnZlcnQgdG8gZWFjaCBzZXF1ZW50aWFsIGRhdGFUeXBlXG5cdHdoaWxlICggY3VycmVudCApIHtcblxuXHRcdGlmICggcy5yZXNwb25zZUZpZWxkc1sgY3VycmVudCBdICkge1xuXHRcdFx0anFYSFJbIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSBdID0gcmVzcG9uc2U7XG5cdFx0fVxuXG5cdFx0Ly8gQXBwbHkgdGhlIGRhdGFGaWx0ZXIgaWYgcHJvdmlkZWRcblx0XHRpZiAoICFwcmV2ICYmIGlzU3VjY2VzcyAmJiBzLmRhdGFGaWx0ZXIgKSB7XG5cdFx0XHRyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTtcblx0XHR9XG5cblx0XHRwcmV2ID0gY3VycmVudDtcblx0XHRjdXJyZW50ID0gZGF0YVR5cGVzLnNoaWZ0KCk7XG5cblx0XHRpZiAoIGN1cnJlbnQgKSB7XG5cblx0XHRcdC8vIFRoZXJlJ3Mgb25seSB3b3JrIHRvIGRvIGlmIGN1cnJlbnQgZGF0YVR5cGUgaXMgbm9uLWF1dG9cblx0XHRcdGlmICggY3VycmVudCA9PT0gXCIqXCIgKSB7XG5cblx0XHRcdFx0Y3VycmVudCA9IHByZXY7XG5cblx0XHRcdC8vIENvbnZlcnQgcmVzcG9uc2UgaWYgcHJldiBkYXRhVHlwZSBpcyBub24tYXV0byBhbmQgZGlmZmVycyBmcm9tIGN1cnJlbnRcblx0XHRcdH0gZWxzZSBpZiAoIHByZXYgIT09IFwiKlwiICYmIHByZXYgIT09IGN1cnJlbnQgKSB7XG5cblx0XHRcdFx0Ly8gU2VlayBhIGRpcmVjdCBjb252ZXJ0ZXJcblx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIGN1cnJlbnQgXSB8fCBjb252ZXJ0ZXJzWyBcIiogXCIgKyBjdXJyZW50IF07XG5cblx0XHRcdFx0Ly8gSWYgbm9uZSBmb3VuZCwgc2VlayBhIHBhaXJcblx0XHRcdFx0aWYgKCAhY29udiApIHtcblx0XHRcdFx0XHRmb3IgKCBjb252MiBpbiBjb252ZXJ0ZXJzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBJZiBjb252MiBvdXRwdXRzIGN1cnJlbnRcblx0XHRcdFx0XHRcdHRtcCA9IGNvbnYyLnNwbGl0KCBcIiBcIiApO1xuXHRcdFx0XHRcdFx0aWYgKCB0bXBbIDEgXSA9PT0gY3VycmVudCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBJZiBwcmV2IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYWNjZXB0ZWQgaW5wdXRcblx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIHRtcFsgMCBdIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJzWyBcIiogXCIgKyB0bXBbIDAgXSBdO1xuXHRcdFx0XHRcdFx0XHRpZiAoIGNvbnYgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBDb25kZW5zZSBlcXVpdmFsZW5jZSBjb252ZXJ0ZXJzXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjb252ID09PSB0cnVlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIGNvbnYyIF07XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGluc2VydCB0aGUgaW50ZXJtZWRpYXRlIGRhdGFUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggY29udmVydGVyc1sgY29udjIgXSAhPT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnQgPSB0bXBbIDAgXTtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0bXBbIDEgXSApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFwcGx5IGNvbnZlcnRlciAoaWYgbm90IGFuIGVxdWl2YWxlbmNlKVxuXHRcdFx0XHRpZiAoIGNvbnYgIT09IHRydWUgKSB7XG5cblx0XHRcdFx0XHQvLyBVbmxlc3MgZXJyb3JzIGFyZSBhbGxvd2VkIHRvIGJ1YmJsZSwgY2F0Y2ggYW5kIHJldHVybiB0aGVtXG5cdFx0XHRcdFx0aWYgKCBjb252ICYmIHMudGhyb3dzICkge1xuXHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZSA9IGNvbnYoIHJlc3BvbnNlICk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZTogXCJwYXJzZXJlcnJvclwiLFxuXHRcdFx0XHRcdFx0XHRcdGVycm9yOiBjb252ID8gZSA6IFwiTm8gY29udmVyc2lvbiBmcm9tIFwiICsgcHJldiArIFwiIHRvIFwiICsgY3VycmVudFxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7IHN0YXRlOiBcInN1Y2Nlc3NcIiwgZGF0YTogcmVzcG9uc2UgfTtcbn1cblxualF1ZXJ5LmV4dGVuZCgge1xuXG5cdC8vIENvdW50ZXIgZm9yIGhvbGRpbmcgdGhlIG51bWJlciBvZiBhY3RpdmUgcXVlcmllc1xuXHRhY3RpdmU6IDAsXG5cblx0Ly8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdFxuXHRsYXN0TW9kaWZpZWQ6IHt9LFxuXHRldGFnOiB7fSxcblxuXHRhamF4U2V0dGluZ3M6IHtcblx0XHR1cmw6IGxvY2F0aW9uLmhyZWYsXG5cdFx0dHlwZTogXCJHRVRcIixcblx0XHRpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBsb2NhdGlvbi5wcm90b2NvbCApLFxuXHRcdGdsb2JhbDogdHJ1ZSxcblx0XHRwcm9jZXNzRGF0YTogdHJ1ZSxcblx0XHRhc3luYzogdHJ1ZSxcblx0XHRjb250ZW50VHlwZTogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLThcIixcblxuXHRcdC8qXG5cdFx0dGltZW91dDogMCxcblx0XHRkYXRhOiBudWxsLFxuXHRcdGRhdGFUeXBlOiBudWxsLFxuXHRcdHVzZXJuYW1lOiBudWxsLFxuXHRcdHBhc3N3b3JkOiBudWxsLFxuXHRcdGNhY2hlOiBudWxsLFxuXHRcdHRocm93czogZmFsc2UsXG5cdFx0dHJhZGl0aW9uYWw6IGZhbHNlLFxuXHRcdGhlYWRlcnM6IHt9LFxuXHRcdCovXG5cblx0XHRhY2NlcHRzOiB7XG5cdFx0XHRcIipcIjogYWxsVHlwZXMsXG5cdFx0XHR0ZXh0OiBcInRleHQvcGxhaW5cIixcblx0XHRcdGh0bWw6IFwidGV4dC9odG1sXCIsXG5cdFx0XHR4bWw6IFwiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbFwiLFxuXHRcdFx0anNvbjogXCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHRcIlxuXHRcdH0sXG5cblx0XHRjb250ZW50czoge1xuXHRcdFx0eG1sOiAvXFxieG1sXFxiLyxcblx0XHRcdGh0bWw6IC9cXGJodG1sLyxcblx0XHRcdGpzb246IC9cXGJqc29uXFxiL1xuXHRcdH0sXG5cblx0XHRyZXNwb25zZUZpZWxkczoge1xuXHRcdFx0eG1sOiBcInJlc3BvbnNlWE1MXCIsXG5cdFx0XHR0ZXh0OiBcInJlc3BvbnNlVGV4dFwiLFxuXHRcdFx0anNvbjogXCJyZXNwb25zZUpTT05cIlxuXHRcdH0sXG5cblx0XHQvLyBEYXRhIGNvbnZlcnRlcnNcblx0XHQvLyBLZXlzIHNlcGFyYXRlIHNvdXJjZSAob3IgY2F0Y2hhbGwgXCIqXCIpIGFuZCBkZXN0aW5hdGlvbiB0eXBlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG5cdFx0Y29udmVydGVyczoge1xuXG5cdFx0XHQvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHRcblx0XHRcdFwiKiB0ZXh0XCI6IFN0cmluZyxcblxuXHRcdFx0Ly8gVGV4dCB0byBodG1sICh0cnVlID0gbm8gdHJhbnNmb3JtYXRpb24pXG5cdFx0XHRcInRleHQgaHRtbFwiOiB0cnVlLFxuXG5cdFx0XHQvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uXG5cdFx0XHRcInRleHQganNvblwiOiBKU09OLnBhcnNlLFxuXG5cdFx0XHQvLyBQYXJzZSB0ZXh0IGFzIHhtbFxuXHRcdFx0XCJ0ZXh0IHhtbFwiOiBqUXVlcnkucGFyc2VYTUxcblx0XHR9LFxuXG5cdFx0Ly8gRm9yIG9wdGlvbnMgdGhhdCBzaG91bGRuJ3QgYmUgZGVlcCBleHRlbmRlZDpcblx0XHQvLyB5b3UgY2FuIGFkZCB5b3VyIG93biBjdXN0b20gb3B0aW9ucyBoZXJlIGlmXG5cdFx0Ly8gYW5kIHdoZW4geW91IGNyZWF0ZSBvbmUgdGhhdCBzaG91bGRuJ3QgYmVcblx0XHQvLyBkZWVwIGV4dGVuZGVkIChzZWUgYWpheEV4dGVuZClcblx0XHRmbGF0T3B0aW9uczoge1xuXHRcdFx0dXJsOiB0cnVlLFxuXHRcdFx0Y29udGV4dDogdHJ1ZVxuXHRcdH1cblx0fSxcblxuXHQvLyBDcmVhdGVzIGEgZnVsbCBmbGVkZ2VkIHNldHRpbmdzIG9iamVjdCBpbnRvIHRhcmdldFxuXHQvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuXG5cdC8vIElmIHRhcmdldCBpcyBvbWl0dGVkLCB3cml0ZXMgaW50byBhamF4U2V0dGluZ3MuXG5cdGFqYXhTZXR1cDogZnVuY3Rpb24oIHRhcmdldCwgc2V0dGluZ3MgKSB7XG5cdFx0cmV0dXJuIHNldHRpbmdzID9cblxuXHRcdFx0Ly8gQnVpbGRpbmcgYSBzZXR0aW5ncyBvYmplY3Rcblx0XHRcdGFqYXhFeHRlbmQoIGFqYXhFeHRlbmQoIHRhcmdldCwgalF1ZXJ5LmFqYXhTZXR0aW5ncyApLCBzZXR0aW5ncyApIDpcblxuXHRcdFx0Ly8gRXh0ZW5kaW5nIGFqYXhTZXR0aW5nc1xuXHRcdFx0YWpheEV4dGVuZCggalF1ZXJ5LmFqYXhTZXR0aW5ncywgdGFyZ2V0ICk7XG5cdH0sXG5cblx0YWpheFByZWZpbHRlcjogYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzICksXG5cdGFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLFxuXG5cdC8vIE1haW4gbWV0aG9kXG5cdGFqYXg6IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMgKSB7XG5cblx0XHQvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZVxuXHRcdGlmICggdHlwZW9mIHVybCA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdG9wdGlvbnMgPSB1cmw7XG5cdFx0XHR1cmwgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gRm9yY2Ugb3B0aW9ucyB0byBiZSBhbiBvYmplY3Rcblx0XHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRcdHZhciB0cmFuc3BvcnQsXG5cblx0XHRcdC8vIFVSTCB3aXRob3V0IGFudGktY2FjaGUgcGFyYW1cblx0XHRcdGNhY2hlVVJMLFxuXG5cdFx0XHQvLyBSZXNwb25zZSBoZWFkZXJzXG5cdFx0XHRyZXNwb25zZUhlYWRlcnNTdHJpbmcsXG5cdFx0XHRyZXNwb25zZUhlYWRlcnMsXG5cblx0XHRcdC8vIHRpbWVvdXQgaGFuZGxlXG5cdFx0XHR0aW1lb3V0VGltZXIsXG5cblx0XHRcdC8vIFVybCBjbGVhbnVwIHZhclxuXHRcdFx0dXJsQW5jaG9yLFxuXG5cdFx0XHQvLyBSZXF1ZXN0IHN0YXRlIChiZWNvbWVzIGZhbHNlIHVwb24gc2VuZCBhbmQgdHJ1ZSB1cG9uIGNvbXBsZXRpb24pXG5cdFx0XHRjb21wbGV0ZWQsXG5cblx0XHRcdC8vIFRvIGtub3cgaWYgZ2xvYmFsIGV2ZW50cyBhcmUgdG8gYmUgZGlzcGF0Y2hlZFxuXHRcdFx0ZmlyZUdsb2JhbHMsXG5cblx0XHRcdC8vIExvb3AgdmFyaWFibGVcblx0XHRcdGksXG5cblx0XHRcdC8vIHVuY2FjaGVkIHBhcnQgb2YgdGhlIHVybFxuXHRcdFx0dW5jYWNoZWQsXG5cblx0XHRcdC8vIENyZWF0ZSB0aGUgZmluYWwgb3B0aW9ucyBvYmplY3Rcblx0XHRcdHMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLFxuXG5cdFx0XHQvLyBDYWxsYmFja3MgY29udGV4dFxuXHRcdFx0Y2FsbGJhY2tDb250ZXh0ID0gcy5jb250ZXh0IHx8IHMsXG5cblx0XHRcdC8vIENvbnRleHQgZm9yIGdsb2JhbCBldmVudHMgaXMgY2FsbGJhY2tDb250ZXh0IGlmIGl0IGlzIGEgRE9NIG5vZGUgb3IgalF1ZXJ5IGNvbGxlY3Rpb25cblx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dCA9IHMuY29udGV4dCAmJlxuXHRcdFx0XHQoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQuanF1ZXJ5ICkgP1xuXHRcdFx0XHRqUXVlcnkoIGNhbGxiYWNrQ29udGV4dCApIDpcblx0XHRcdFx0alF1ZXJ5LmV2ZW50LFxuXG5cdFx0XHQvLyBEZWZlcnJlZHNcblx0XHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkID0galF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksXG5cblx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRzdGF0dXNDb2RlID0gcy5zdGF0dXNDb2RlIHx8IHt9LFxuXG5cdFx0XHQvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKVxuXHRcdFx0cmVxdWVzdEhlYWRlcnMgPSB7fSxcblx0XHRcdHJlcXVlc3RIZWFkZXJzTmFtZXMgPSB7fSxcblxuXHRcdFx0Ly8gRGVmYXVsdCBhYm9ydCBtZXNzYWdlXG5cdFx0XHRzdHJBYm9ydCA9IFwiY2FuY2VsZWRcIixcblxuXHRcdFx0Ly8gRmFrZSB4aHJcblx0XHRcdGpxWEhSID0ge1xuXHRcdFx0XHRyZWFkeVN0YXRlOiAwLFxuXG5cdFx0XHRcdC8vIEJ1aWxkcyBoZWFkZXJzIGhhc2h0YWJsZSBpZiBuZWVkZWRcblx0XHRcdFx0Z2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7XG5cdFx0XHRcdFx0dmFyIG1hdGNoO1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkICkge1xuXHRcdFx0XHRcdFx0aWYgKCAhcmVzcG9uc2VIZWFkZXJzICkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZUhlYWRlcnMgPSB7fTtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKCAoIG1hdGNoID0gcmhlYWRlcnMuZXhlYyggcmVzcG9uc2VIZWFkZXJzU3RyaW5nICkgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRyZXNwb25zZUhlYWRlcnNbIG1hdGNoWyAxIF0udG9Mb3dlckNhc2UoKSArIFwiIFwiIF0gPVxuXHRcdFx0XHRcdFx0XHRcdFx0KCByZXNwb25zZUhlYWRlcnNbIG1hdGNoWyAxIF0udG9Mb3dlckNhc2UoKSArIFwiIFwiIF0gfHwgW10gKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuY29uY2F0KCBtYXRjaFsgMiBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdG1hdGNoID0gcmVzcG9uc2VIZWFkZXJzWyBrZXkudG9Mb3dlckNhc2UoKSArIFwiIFwiIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBtYXRjaCA9PSBudWxsID8gbnVsbCA6IG1hdGNoLmpvaW4oIFwiLCBcIiApO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIFJhdyBzdHJpbmdcblx0XHRcdFx0Z2V0QWxsUmVzcG9uc2VIZWFkZXJzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29tcGxldGVkID8gcmVzcG9uc2VIZWFkZXJzU3RyaW5nIDogbnVsbDtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBDYWNoZXMgdGhlIGhlYWRlclxuXHRcdFx0XHRzZXRSZXF1ZXN0SGVhZGVyOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0XHRcdFx0aWYgKCBjb21wbGV0ZWQgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdG5hbWUgPSByZXF1ZXN0SGVhZGVyc05hbWVzWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSA9XG5cdFx0XHRcdFx0XHRcdHJlcXVlc3RIZWFkZXJzTmFtZXNbIG5hbWUudG9Mb3dlckNhc2UoKSBdIHx8IG5hbWU7XG5cdFx0XHRcdFx0XHRyZXF1ZXN0SGVhZGVyc1sgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyXG5cdFx0XHRcdG92ZXJyaWRlTWltZVR5cGU6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRzLm1pbWVUeXBlID0gdHlwZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdFx0c3RhdHVzQ29kZTogZnVuY3Rpb24oIG1hcCApIHtcblx0XHRcdFx0XHR2YXIgY29kZTtcblx0XHRcdFx0XHRpZiAoIG1hcCApIHtcblx0XHRcdFx0XHRcdGlmICggY29tcGxldGVkICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIEV4ZWN1dGUgdGhlIGFwcHJvcHJpYXRlIGNhbGxiYWNrc1xuXHRcdFx0XHRcdFx0XHRqcVhIUi5hbHdheXMoIG1hcFsganFYSFIuc3RhdHVzIF0gKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gTGF6eS1hZGQgdGhlIG5ldyBjYWxsYmFja3MgaW4gYSB3YXkgdGhhdCBwcmVzZXJ2ZXMgb2xkIG9uZXNcblx0XHRcdFx0XHRcdFx0Zm9yICggY29kZSBpbiBtYXAgKSB7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdHVzQ29kZVsgY29kZSBdID0gWyBzdGF0dXNDb2RlWyBjb2RlIF0sIG1hcFsgY29kZSBdIF07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FuY2VsIHRoZSByZXF1ZXN0XG5cdFx0XHRcdGFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHtcblx0XHRcdFx0XHR2YXIgZmluYWxUZXh0ID0gc3RhdHVzVGV4dCB8fCBzdHJBYm9ydDtcblx0XHRcdFx0XHRpZiAoIHRyYW5zcG9ydCApIHtcblx0XHRcdFx0XHRcdHRyYW5zcG9ydC5hYm9ydCggZmluYWxUZXh0ICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGRvbmUoIDAsIGZpbmFsVGV4dCApO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0Ly8gQXR0YWNoIGRlZmVycmVkc1xuXHRcdGRlZmVycmVkLnByb21pc2UoIGpxWEhSICk7XG5cblx0XHQvLyBBZGQgcHJvdG9jb2wgaWYgbm90IHByb3ZpZGVkIChwcmVmaWx0ZXJzIG1pZ2h0IGV4cGVjdCBpdClcblx0XHQvLyBIYW5kbGUgZmFsc3kgdXJsIGluIHRoZSBzZXR0aW5ncyBvYmplY3QgKHRyYWMtMTAwOTM6IGNvbnNpc3RlbmN5IHdpdGggb2xkIHNpZ25hdHVyZSlcblx0XHQvLyBXZSBhbHNvIHVzZSB0aGUgdXJsIHBhcmFtZXRlciBpZiBhdmFpbGFibGVcblx0XHRzLnVybCA9ICggKCB1cmwgfHwgcy51cmwgfHwgbG9jYXRpb24uaHJlZiApICsgXCJcIiApXG5cdFx0XHQucmVwbGFjZSggcnByb3RvY29sLCBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiApO1xuXG5cdFx0Ly8gQWxpYXMgbWV0aG9kIG9wdGlvbiB0byB0eXBlIGFzIHBlciB0aWNrZXQgdHJhYy0xMjAwNFxuXHRcdHMudHlwZSA9IG9wdGlvbnMubWV0aG9kIHx8IG9wdGlvbnMudHlwZSB8fCBzLm1ldGhvZCB8fCBzLnR5cGU7XG5cblx0XHQvLyBFeHRyYWN0IGRhdGFUeXBlcyBsaXN0XG5cdFx0cy5kYXRhVHlwZXMgPSAoIHMuZGF0YVR5cGUgfHwgXCIqXCIgKS50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgWyBcIlwiIF07XG5cblx0XHQvLyBBIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyIHdoZW4gdGhlIG9yaWdpbiBkb2Vzbid0IG1hdGNoIHRoZSBjdXJyZW50IG9yaWdpbi5cblx0XHRpZiAoIHMuY3Jvc3NEb21haW4gPT0gbnVsbCApIHtcblx0XHRcdHVybEFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiYVwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OCAtIDExLCBFZGdlIDEyIC0gMTVcblx0XHRcdC8vIElFIHRocm93cyBleGNlcHRpb24gb24gYWNjZXNzaW5nIHRoZSBocmVmIHByb3BlcnR5IGlmIHVybCBpcyBtYWxmb3JtZWQsXG5cdFx0XHQvLyBlLmcuIGh0dHA6Ly9leGFtcGxlLmNvbTo4MHgvXG5cdFx0XHR0cnkge1xuXHRcdFx0XHR1cmxBbmNob3IuaHJlZiA9IHMudXJsO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OCAtIDExIG9ubHlcblx0XHRcdFx0Ly8gQW5jaG9yJ3MgaG9zdCBwcm9wZXJ0eSBpc24ndCBjb3JyZWN0bHkgc2V0IHdoZW4gcy51cmwgaXMgcmVsYXRpdmVcblx0XHRcdFx0dXJsQW5jaG9yLmhyZWYgPSB1cmxBbmNob3IuaHJlZjtcblx0XHRcdFx0cy5jcm9zc0RvbWFpbiA9IG9yaWdpbkFuY2hvci5wcm90b2NvbCArIFwiLy9cIiArIG9yaWdpbkFuY2hvci5ob3N0ICE9PVxuXHRcdFx0XHRcdHVybEFuY2hvci5wcm90b2NvbCArIFwiLy9cIiArIHVybEFuY2hvci5ob3N0O1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gSWYgdGhlcmUgaXMgYW4gZXJyb3IgcGFyc2luZyB0aGUgVVJMLCBhc3N1bWUgaXQgaXMgY3Jvc3NEb21haW4sXG5cdFx0XHRcdC8vIGl0IGNhbiBiZSByZWplY3RlZCBieSB0aGUgdHJhbnNwb3J0IGlmIGl0IGlzIGludmFsaWRcblx0XHRcdFx0cy5jcm9zc0RvbWFpbiA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBkYXRhIGlmIG5vdCBhbHJlYWR5IGEgc3RyaW5nXG5cdFx0aWYgKCBzLmRhdGEgJiYgcy5wcm9jZXNzRGF0YSAmJiB0eXBlb2Ygcy5kYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cy5kYXRhID0galF1ZXJ5LnBhcmFtKCBzLmRhdGEsIHMudHJhZGl0aW9uYWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwcmVmaWx0ZXJzXG5cdFx0aW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XG5cblx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZVxuXHRcdGlmICggY29tcGxldGVkICkge1xuXHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdH1cblxuXHRcdC8vIFdlIGNhbiBmaXJlIGdsb2JhbCBldmVudHMgYXMgb2Ygbm93IGlmIGFza2VkIHRvXG5cdFx0Ly8gRG9uJ3QgZmlyZSBldmVudHMgaWYgalF1ZXJ5LmV2ZW50IGlzIHVuZGVmaW5lZCBpbiBhbiBBTUQtdXNhZ2Ugc2NlbmFyaW8gKHRyYWMtMTUxMTgpXG5cdFx0ZmlyZUdsb2JhbHMgPSBqUXVlcnkuZXZlbnQgJiYgcy5nbG9iYWw7XG5cblx0XHQvLyBXYXRjaCBmb3IgYSBuZXcgc2V0IG9mIHJlcXVlc3RzXG5cdFx0aWYgKCBmaXJlR2xvYmFscyAmJiBqUXVlcnkuYWN0aXZlKysgPT09IDAgKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggXCJhamF4U3RhcnRcIiApO1xuXHRcdH1cblxuXHRcdC8vIFVwcGVyY2FzZSB0aGUgdHlwZVxuXHRcdHMudHlwZSA9IHMudHlwZS50b1VwcGVyQ2FzZSgpO1xuXG5cdFx0Ly8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnRcblx0XHRzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0KCBzLnR5cGUgKTtcblxuXHRcdC8vIFNhdmUgdGhlIFVSTCBpbiBjYXNlIHdlJ3JlIHRveWluZyB3aXRoIHRoZSBJZi1Nb2RpZmllZC1TaW5jZVxuXHRcdC8vIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciBsYXRlciBvblxuXHRcdC8vIFJlbW92ZSBoYXNoIHRvIHNpbXBsaWZ5IHVybCBtYW5pcHVsYXRpb25cblx0XHRjYWNoZVVSTCA9IHMudXJsLnJlcGxhY2UoIHJoYXNoLCBcIlwiICk7XG5cblx0XHQvLyBNb3JlIG9wdGlvbnMgaGFuZGxpbmcgZm9yIHJlcXVlc3RzIHdpdGggbm8gY29udGVudFxuXHRcdGlmICggIXMuaGFzQ29udGVudCApIHtcblxuXHRcdFx0Ly8gUmVtZW1iZXIgdGhlIGhhc2ggc28gd2UgY2FuIHB1dCBpdCBiYWNrXG5cdFx0XHR1bmNhY2hlZCA9IHMudXJsLnNsaWNlKCBjYWNoZVVSTC5sZW5ndGggKTtcblxuXHRcdFx0Ly8gSWYgZGF0YSBpcyBhdmFpbGFibGUgYW5kIHNob3VsZCBiZSBwcm9jZXNzZWQsIGFwcGVuZCBkYXRhIHRvIHVybFxuXHRcdFx0aWYgKCBzLmRhdGEgJiYgKCBzLnByb2Nlc3NEYXRhIHx8IHR5cGVvZiBzLmRhdGEgPT09IFwic3RyaW5nXCIgKSApIHtcblx0XHRcdFx0Y2FjaGVVUkwgKz0gKCBycXVlcnkudGVzdCggY2FjaGVVUkwgKSA/IFwiJlwiIDogXCI/XCIgKSArIHMuZGF0YTtcblxuXHRcdFx0XHQvLyB0cmFjLTk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxuXHRcdFx0XHRkZWxldGUgcy5kYXRhO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgb3IgdXBkYXRlIGFudGktY2FjaGUgcGFyYW0gaWYgbmVlZGVkXG5cdFx0XHRpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRjYWNoZVVSTCA9IGNhY2hlVVJMLnJlcGxhY2UoIHJhbnRpQ2FjaGUsIFwiJDFcIiApO1xuXHRcdFx0XHR1bmNhY2hlZCA9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBcIl89XCIgKyAoIG5vbmNlLmd1aWQrKyApICtcblx0XHRcdFx0XHR1bmNhY2hlZDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUHV0IGhhc2ggYW5kIGFudGktY2FjaGUgb24gdGhlIFVSTCB0aGF0IHdpbGwgYmUgcmVxdWVzdGVkIChnaC0xNzMyKVxuXHRcdFx0cy51cmwgPSBjYWNoZVVSTCArIHVuY2FjaGVkO1xuXG5cdFx0Ly8gQ2hhbmdlICclMjAnIHRvICcrJyBpZiB0aGlzIGlzIGVuY29kZWQgZm9ybSBib2R5IGNvbnRlbnQgKGdoLTI2NTgpXG5cdFx0fSBlbHNlIGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiZcblx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiICkuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICkge1xuXHRcdFx0cy5kYXRhID0gcy5kYXRhLnJlcGxhY2UoIHIyMCwgXCIrXCIgKTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1sgMCBdIF0gP1xuXHRcdFx0XHRzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWyAwIF0gXSArXG5cdFx0XHRcdFx0KCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiZcblx0XHRcdCggcy5iZWZvcmVTZW5kLmNhbGwoIGNhbGxiYWNrQ29udGV4dCwganFYSFIsIHMgKSA9PT0gZmFsc2UgfHwgY29tcGxldGVkICkgKSB7XG5cblx0XHRcdC8vIEFib3J0IGlmIG5vdCBkb25lIGFscmVhZHkgYW5kIHJldHVyblxuXHRcdFx0cmV0dXJuIGpxWEhSLmFib3J0KCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWJvcnRpbmcgaXMgbm8gbG9uZ2VyIGEgY2FuY2VsbGF0aW9uXG5cdFx0c3RyQWJvcnQgPSBcImFib3J0XCI7XG5cblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHNcblx0XHRjb21wbGV0ZURlZmVycmVkLmFkZCggcy5jb21wbGV0ZSApO1xuXHRcdGpxWEhSLmRvbmUoIHMuc3VjY2VzcyApO1xuXHRcdGpxWEhSLmZhaWwoIHMuZXJyb3IgKTtcblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGFqYXhTZW5kLCBzdG9wIHRoZXJlXG5cdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGpxWEhSLmFib3J0KCBcInRpbWVvdXRcIiApO1xuXHRcdFx0XHR9LCBzLnRpbWVvdXQgKTtcblx0XHRcdH1cblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29tcGxldGVkID0gZmFsc2U7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gUmV0aHJvdyBwb3N0LWNvbXBsZXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUHJvcGFnYXRlIG90aGVycyBhcyByZXN1bHRzXG5cdFx0XHRcdGRvbmUoIC0xLCBlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lXG5cdFx0ZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBuYXRpdmVTdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7XG5cdFx0XHR2YXIgaXNTdWNjZXNzLCBzdWNjZXNzLCBlcnJvciwgcmVzcG9uc2UsIG1vZGlmaWVkLFxuXHRcdFx0XHRzdGF0dXNUZXh0ID0gbmF0aXZlU3RhdHVzVGV4dDtcblxuXHRcdFx0Ly8gSWdub3JlIHJlcGVhdCBpbnZvY2F0aW9uc1xuXHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29tcGxldGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gQ2xlYXIgdGltZW91dCBpZiBpdCBleGlzdHNcblx0XHRcdGlmICggdGltZW91dFRpbWVyICkge1xuXHRcdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb25cblx0XHRcdC8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhlIGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpXG5cdFx0XHR0cmFuc3BvcnQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnNcblx0XHRcdHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IGhlYWRlcnMgfHwgXCJcIjtcblxuXHRcdFx0Ly8gU2V0IHJlYWR5U3RhdGVcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7XG5cblx0XHRcdC8vIERldGVybWluZSBpZiBzdWNjZXNzZnVsXG5cdFx0XHRpc1N1Y2Nlc3MgPSBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNDtcblxuXHRcdFx0Ly8gR2V0IHJlc3BvbnNlIGRhdGFcblx0XHRcdGlmICggcmVzcG9uc2VzICkge1xuXHRcdFx0XHRyZXNwb25zZSA9IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVXNlIGEgbm9vcCBjb252ZXJ0ZXIgZm9yIG1pc3Npbmcgc2NyaXB0IGJ1dCBub3QgaWYganNvbnBcblx0XHRcdGlmICggIWlzU3VjY2VzcyAmJlxuXHRcdFx0XHRqUXVlcnkuaW5BcnJheSggXCJzY3JpcHRcIiwgcy5kYXRhVHlwZXMgKSA+IC0xICYmXG5cdFx0XHRcdGpRdWVyeS5pbkFycmF5KCBcImpzb25cIiwgcy5kYXRhVHlwZXMgKSA8IDAgKSB7XG5cdFx0XHRcdHMuY29udmVydGVyc1sgXCJ0ZXh0IHNjcmlwdFwiIF0gPSBmdW5jdGlvbigpIHt9O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb252ZXJ0IG5vIG1hdHRlciB3aGF0ICh0aGF0IHdheSByZXNwb25zZVhYWCBmaWVsZHMgYXJlIGFsd2F5cyBzZXQpXG5cdFx0XHRyZXNwb25zZSA9IGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSwganFYSFIsIGlzU3VjY2VzcyApO1xuXG5cdFx0XHQvLyBJZiBzdWNjZXNzZnVsLCBoYW5kbGUgdHlwZSBjaGFpbmluZ1xuXHRcdFx0aWYgKCBpc1N1Y2Nlc3MgKSB7XG5cblx0XHRcdFx0Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS5cblx0XHRcdFx0aWYgKCBzLmlmTW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0bW9kaWZpZWQgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggXCJMYXN0LU1vZGlmaWVkXCIgKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcImV0YWdcIiApO1xuXHRcdFx0XHRcdGlmICggbW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGlmIG5vIGNvbnRlbnRcblx0XHRcdFx0aWYgKCBzdGF0dXMgPT09IDIwNCB8fCBzLnR5cGUgPT09IFwiSEVBRFwiICkge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcIm5vY29udGVudFwiO1xuXG5cdFx0XHRcdC8vIGlmIG5vdCBtb2RpZmllZFxuXHRcdFx0XHR9IGVsc2UgaWYgKCBzdGF0dXMgPT09IDMwNCApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub3Rtb2RpZmllZFwiO1xuXG5cdFx0XHRcdC8vIElmIHdlIGhhdmUgZGF0YSwgbGV0J3MgY29udmVydCBpdFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0ZTtcblx0XHRcdFx0XHRzdWNjZXNzID0gcmVzcG9uc2UuZGF0YTtcblx0XHRcdFx0XHRlcnJvciA9IHJlc3BvbnNlLmVycm9yO1xuXHRcdFx0XHRcdGlzU3VjY2VzcyA9ICFlcnJvcjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHQvLyBFeHRyYWN0IGVycm9yIGZyb20gc3RhdHVzVGV4dCBhbmQgbm9ybWFsaXplIGZvciBub24tYWJvcnRzXG5cdFx0XHRcdGVycm9yID0gc3RhdHVzVGV4dDtcblx0XHRcdFx0aWYgKCBzdGF0dXMgfHwgIXN0YXR1c1RleHQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwiZXJyb3JcIjtcblx0XHRcdFx0XHRpZiAoIHN0YXR1cyA8IDAgKSB7XG5cdFx0XHRcdFx0XHRzdGF0dXMgPSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdFxuXHRcdFx0anFYSFIuc3RhdHVzID0gc3RhdHVzO1xuXHRcdFx0anFYSFIuc3RhdHVzVGV4dCA9ICggbmF0aXZlU3RhdHVzVGV4dCB8fCBzdGF0dXNUZXh0ICkgKyBcIlwiO1xuXG5cdFx0XHQvLyBTdWNjZXNzL0Vycm9yXG5cdFx0XHRpZiAoIGlzU3VjY2VzcyApIHtcblx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBzdWNjZXNzLCBzdGF0dXNUZXh0LCBqcVhIUiBdICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQsIGVycm9yIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdGpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTtcblx0XHRcdHN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7XG5cblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBpc1N1Y2Nlc3MgPyBcImFqYXhTdWNjZXNzXCIgOiBcImFqYXhFcnJvclwiLFxuXHRcdFx0XHRcdFsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbXBsZXRlXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkLmZpcmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQgXSApO1xuXG5cdFx0XHRpZiAoIGZpcmVHbG9iYWxzICkge1xuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggXCJhamF4Q29tcGxldGVcIiwgWyBqcVhIUiwgcyBdICk7XG5cblx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyXG5cdFx0XHRcdGlmICggISggLS1qUXVlcnkuYWN0aXZlICkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIFwiYWpheFN0b3BcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpxWEhSO1xuXHR9LFxuXG5cdGdldEpTT046IGZ1bmN0aW9uKCB1cmwsIGRhdGEsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIGRhdGEsIGNhbGxiYWNrLCBcImpzb25cIiApO1xuXHR9LFxuXG5cdGdldFNjcmlwdDogZnVuY3Rpb24oIHVybCwgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5nZXQoIHVybCwgdW5kZWZpbmVkLCBjYWxsYmFjaywgXCJzY3JpcHRcIiApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiZ2V0XCIsIFwicG9zdFwiIF0sIGZ1bmN0aW9uKCBfaSwgbWV0aG9kICkge1xuXHRqUXVlcnlbIG1ldGhvZCBdID0gZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5cGUgKSB7XG5cblx0XHQvLyBTaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZFxuXHRcdGlmICggaXNGdW5jdGlvbiggZGF0YSApICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7XG5cdFx0XHRjYWxsYmFjayA9IGRhdGE7XG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIFRoZSB1cmwgY2FuIGJlIGFuIG9wdGlvbnMgb2JqZWN0ICh3aGljaCB0aGVuIG11c3QgaGF2ZSAudXJsKVxuXHRcdHJldHVybiBqUXVlcnkuYWpheCggalF1ZXJ5LmV4dGVuZCgge1xuXHRcdFx0dXJsOiB1cmwsXG5cdFx0XHR0eXBlOiBtZXRob2QsXG5cdFx0XHRkYXRhVHlwZTogdHlwZSxcblx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFja1xuXHRcdH0sIGpRdWVyeS5pc1BsYWluT2JqZWN0KCB1cmwgKSAmJiB1cmwgKSApO1xuXHR9O1xufSApO1xuXG5qUXVlcnkuYWpheFByZWZpbHRlciggZnVuY3Rpb24oIHMgKSB7XG5cdHZhciBpO1xuXHRmb3IgKCBpIGluIHMuaGVhZGVycyApIHtcblx0XHRpZiAoIGkudG9Mb3dlckNhc2UoKSA9PT0gXCJjb250ZW50LXR5cGVcIiApIHtcblx0XHRcdHMuY29udGVudFR5cGUgPSBzLmhlYWRlcnNbIGkgXSB8fCBcIlwiO1xuXHRcdH1cblx0fVxufSApO1xuXG5cbmpRdWVyeS5fZXZhbFVybCA9IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMsIGRvYyApIHtcblx0cmV0dXJuIGpRdWVyeS5hamF4KCB7XG5cdFx0dXJsOiB1cmwsXG5cblx0XHQvLyBNYWtlIHRoaXMgZXhwbGljaXQsIHNpbmNlIHVzZXIgY2FuIG92ZXJyaWRlIHRoaXMgdGhyb3VnaCBhamF4U2V0dXAgKHRyYWMtMTEyNjQpXG5cdFx0dHlwZTogXCJHRVRcIixcblx0XHRkYXRhVHlwZTogXCJzY3JpcHRcIixcblx0XHRjYWNoZTogdHJ1ZSxcblx0XHRhc3luYzogZmFsc2UsXG5cdFx0Z2xvYmFsOiBmYWxzZSxcblxuXHRcdC8vIE9ubHkgZXZhbHVhdGUgdGhlIHJlc3BvbnNlIGlmIGl0IGlzIHN1Y2Nlc3NmdWwgKGdoLTQxMjYpXG5cdFx0Ly8gZGF0YUZpbHRlciBpcyBub3QgaW52b2tlZCBmb3IgZmFpbHVyZSByZXNwb25zZXMsIHNvIHVzaW5nIGl0IGluc3RlYWRcblx0XHQvLyBvZiB0aGUgZGVmYXVsdCBjb252ZXJ0ZXIgaXMga2x1ZGd5IGJ1dCBpdCB3b3Jrcy5cblx0XHRjb252ZXJ0ZXJzOiB7XG5cdFx0XHRcInRleHQgc2NyaXB0XCI6IGZ1bmN0aW9uKCkge31cblx0XHR9LFxuXHRcdGRhdGFGaWx0ZXI6IGZ1bmN0aW9uKCByZXNwb25zZSApIHtcblx0XHRcdGpRdWVyeS5nbG9iYWxFdmFsKCByZXNwb25zZSwgb3B0aW9ucywgZG9jICk7XG5cdFx0fVxuXHR9ICk7XG59O1xuXG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0d3JhcEFsbDogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0dmFyIHdyYXA7XG5cblx0XHRpZiAoIHRoaXNbIDAgXSApIHtcblx0XHRcdGlmICggaXNGdW5jdGlvbiggaHRtbCApICkge1xuXHRcdFx0XHRodG1sID0gaHRtbC5jYWxsKCB0aGlzWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmRcblx0XHRcdHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbIDAgXS5vd25lckRvY3VtZW50ICkuZXEoIDAgKS5jbG9uZSggdHJ1ZSApO1xuXG5cdFx0XHRpZiAoIHRoaXNbIDAgXS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR3cmFwLmluc2VydEJlZm9yZSggdGhpc1sgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdHdyYXAubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIGVsZW0gPSB0aGlzO1xuXG5cdFx0XHRcdHdoaWxlICggZWxlbS5maXJzdEVsZW1lbnRDaGlsZCApIHtcblx0XHRcdFx0XHRlbGVtID0gZWxlbS5maXJzdEVsZW1lbnRDaGlsZDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbGVtO1xuXHRcdFx0fSApLmFwcGVuZCggdGhpcyApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBodG1sICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkud3JhcElubmVyKCBodG1sLmNhbGwoIHRoaXMsIGkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKSxcblx0XHRcdFx0Y29udGVudHMgPSBzZWxmLmNvbnRlbnRzKCk7XG5cblx0XHRcdGlmICggY29udGVudHMubGVuZ3RoICkge1xuXHRcdFx0XHRjb250ZW50cy53cmFwQWxsKCBodG1sICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNlbGYuYXBwZW5kKCBodG1sICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdHdyYXA6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHZhciBodG1sSXNGdW5jdGlvbiA9IGlzRnVuY3Rpb24oIGh0bWwgKTtcblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0alF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaHRtbElzRnVuY3Rpb24gPyBodG1sLmNhbGwoIHRoaXMsIGkgKSA6IGh0bWwgKTtcblx0XHR9ICk7XG5cdH0sXG5cblx0dW53cmFwOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dGhpcy5wYXJlbnQoIHNlbGVjdG9yICkubm90KCBcImJvZHlcIiApLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5KCB0aGlzICkucmVwbGFjZVdpdGgoIHRoaXMuY2hpbGROb2RlcyApO1xuXHRcdH0gKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufSApO1xuXG5cbmpRdWVyeS5leHByLnBzZXVkb3MuaGlkZGVuID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHJldHVybiAhalF1ZXJ5LmV4cHIucHNldWRvcy52aXNpYmxlKCBlbGVtICk7XG59O1xualF1ZXJ5LmV4cHIucHNldWRvcy52aXNpYmxlID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHJldHVybiAhISggZWxlbS5vZmZzZXRXaWR0aCB8fCBlbGVtLm9mZnNldEhlaWdodCB8fCBlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICk7XG59O1xuXG5cblxuXG5qUXVlcnkuYWpheFNldHRpbmdzLnhociA9IGZ1bmN0aW9uKCkge1xuXHR0cnkge1xuXHRcdHJldHVybiBuZXcgd2luZG93LlhNTEh0dHBSZXF1ZXN0KCk7XG5cdH0gY2F0Y2ggKCBlICkge31cbn07XG5cbnZhciB4aHJTdWNjZXNzU3RhdHVzID0ge1xuXG5cdFx0Ly8gRmlsZSBwcm90b2NvbCBhbHdheXMgeWllbGRzIHN0YXR1cyBjb2RlIDAsIGFzc3VtZSAyMDBcblx0XHQwOiAyMDAsXG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHRcdC8vIHRyYWMtMTQ1MDogc29tZXRpbWVzIElFIHJldHVybnMgMTIyMyB3aGVuIGl0IHNob3VsZCBiZSAyMDRcblx0XHQxMjIzOiAyMDRcblx0fSxcblx0eGhyU3VwcG9ydGVkID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTtcblxuc3VwcG9ydC5jb3JzID0gISF4aHJTdXBwb3J0ZWQgJiYgKCBcIndpdGhDcmVkZW50aWFsc1wiIGluIHhoclN1cHBvcnRlZCApO1xuc3VwcG9ydC5hamF4ID0geGhyU3VwcG9ydGVkID0gISF4aHJTdXBwb3J0ZWQ7XG5cbmpRdWVyeS5hamF4VHJhbnNwb3J0KCBmdW5jdGlvbiggb3B0aW9ucyApIHtcblx0dmFyIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrO1xuXG5cdC8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3Rcblx0aWYgKCBzdXBwb3J0LmNvcnMgfHwgeGhyU3VwcG9ydGVkICYmICFvcHRpb25zLmNyb3NzRG9tYWluICkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggaGVhZGVycywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHZhciBpLFxuXHRcdFx0XHRcdHhociA9IG9wdGlvbnMueGhyKCk7XG5cblx0XHRcdFx0eGhyLm9wZW4oXG5cdFx0XHRcdFx0b3B0aW9ucy50eXBlLFxuXHRcdFx0XHRcdG9wdGlvbnMudXJsLFxuXHRcdFx0XHRcdG9wdGlvbnMuYXN5bmMsXG5cdFx0XHRcdFx0b3B0aW9ucy51c2VybmFtZSxcblx0XHRcdFx0XHRvcHRpb25zLnBhc3N3b3JkXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0Ly8gQXBwbHkgY3VzdG9tIGZpZWxkcyBpZiBwcm92aWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdGZvciAoIGkgaW4gb3B0aW9ucy54aHJGaWVsZHMgKSB7XG5cdFx0XHRcdFx0XHR4aHJbIGkgXSA9IG9wdGlvbnMueGhyRmllbGRzWyBpIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMubWltZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUgKSB7XG5cdFx0XHRcdFx0eGhyLm92ZXJyaWRlTWltZVR5cGUoIG9wdGlvbnMubWltZVR5cGUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFgtUmVxdWVzdGVkLVdpdGggaGVhZGVyXG5cdFx0XHRcdC8vIEZvciBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmVcblx0XHRcdFx0Ly8gYWtpbiB0byBhIGppZ3NhdyBwdXp6bGUsIHdlIHNpbXBseSBuZXZlciBzZXQgaXQgdG8gYmUgc3VyZS5cblx0XHRcdFx0Ly8gKGl0IGNhbiBhbHdheXMgYmUgc2V0IG9uIGEgcGVyLXJlcXVlc3QgYmFzaXMgb3IgZXZlbiB1c2luZyBhamF4U2V0dXApXG5cdFx0XHRcdC8vIEZvciBzYW1lLWRvbWFpbiByZXF1ZXN0cywgd29uJ3QgY2hhbmdlIGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLlxuXHRcdFx0XHRpZiAoICFvcHRpb25zLmNyb3NzRG9tYWluICYmICFoZWFkZXJzWyBcIlgtUmVxdWVzdGVkLVdpdGhcIiBdICkge1xuXHRcdFx0XHRcdGhlYWRlcnNbIFwiWC1SZXF1ZXN0ZWQtV2l0aFwiIF0gPSBcIlhNTEh0dHBSZXF1ZXN0XCI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTZXQgaGVhZGVyc1xuXHRcdFx0XHRmb3IgKCBpIGluIGhlYWRlcnMgKSB7XG5cdFx0XHRcdFx0eGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQ2FsbGJhY2tcblx0XHRcdFx0Y2FsbGJhY2sgPSBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdFx0XHRjYWxsYmFjayA9IGVycm9yQ2FsbGJhY2sgPSB4aHIub25sb2FkID1cblx0XHRcdFx0XHRcdFx0XHR4aHIub25lcnJvciA9IHhoci5vbmFib3J0ID0geGhyLm9udGltZW91dCA9XG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiYWJvcnRcIiApIHtcblx0XHRcdFx0XHRcdFx0XHR4aHIuYWJvcnQoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdHlwZSA9PT0gXCJlcnJvclwiICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHRcdFx0XHQvLyBPbiBhIG1hbnVhbCBuYXRpdmUgYWJvcnQsIElFOSB0aHJvd3Ncblx0XHRcdFx0XHRcdFx0XHQvLyBlcnJvcnMgb24gYW55IHByb3BlcnR5IGFjY2VzcyB0aGF0IGlzIG5vdCByZWFkeVN0YXRlXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCB0eXBlb2YgeGhyLnN0YXR1cyAhPT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCAwLCBcImVycm9yXCIgKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRmlsZTogcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgMDsgc2VlIHRyYWMtODYwNSwgdHJhYy0xNDIwN1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzVGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHJTdWNjZXNzU3RhdHVzWyB4aHIuc3RhdHVzIF0gfHwgeGhyLnN0YXR1cyxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXNUZXh0LFxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSUU5IGhhcyBubyBYSFIyIGJ1dCB0aHJvd3Mgb24gYmluYXJ5ICh0cmFjLTExNDI2KVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gRm9yIFhIUjIgbm9uLXRleHQsIGxldCB0aGUgY2FsbGVyIGhhbmRsZSBpdCAoZ2gtMjQ5OClcblx0XHRcdFx0XHRcdFx0XHRcdCggeGhyLnJlc3BvbnNlVHlwZSB8fCBcInRleHRcIiApICE9PSBcInRleHRcIiAgfHxcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiB4aHIucmVzcG9uc2VUZXh0ICE9PSBcInN0cmluZ1wiID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBiaW5hcnk6IHhoci5yZXNwb25zZSB9IDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyB0ZXh0OiB4aHIucmVzcG9uc2VUZXh0IH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHQvLyBMaXN0ZW4gdG8gZXZlbnRzXG5cdFx0XHRcdHhoci5vbmxvYWQgPSBjYWxsYmFjaygpO1xuXHRcdFx0XHRlcnJvckNhbGxiYWNrID0geGhyLm9uZXJyb3IgPSB4aHIub250aW1lb3V0ID0gY2FsbGJhY2soIFwiZXJyb3JcIiApO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDkgb25seVxuXHRcdFx0XHQvLyBVc2Ugb25yZWFkeXN0YXRlY2hhbmdlIHRvIHJlcGxhY2Ugb25hYm9ydFxuXHRcdFx0XHQvLyB0byBoYW5kbGUgdW5jYXVnaHQgYWJvcnRzXG5cdFx0XHRcdGlmICggeGhyLm9uYWJvcnQgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHR4aHIub25hYm9ydCA9IGVycm9yQ2FsbGJhY2s7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBDaGVjayByZWFkeVN0YXRlIGJlZm9yZSB0aW1lb3V0IGFzIGl0IGNoYW5nZXNcblx0XHRcdFx0XHRcdGlmICggeGhyLnJlYWR5U3RhdGUgPT09IDQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQWxsb3cgb25lcnJvciB0byBiZSBjYWxsZWQgZmlyc3QsXG5cdFx0XHRcdFx0XHRcdC8vIGJ1dCB0aGF0IHdpbGwgbm90IGhhbmRsZSBhIG5hdGl2ZSBhYm9ydFxuXHRcdFx0XHRcdFx0XHQvLyBBbHNvLCBzYXZlIGVycm9yQ2FsbGJhY2sgdG8gYSB2YXJpYWJsZVxuXHRcdFx0XHRcdFx0XHQvLyBhcyB4aHIub25lcnJvciBjYW5ub3QgYmUgYWNjZXNzZWRcblx0XHRcdFx0XHRcdFx0d2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvckNhbGxiYWNrKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIENyZWF0ZSB0aGUgYWJvcnQgY2FsbGJhY2tcblx0XHRcdFx0Y2FsbGJhY2sgPSBjYWxsYmFjayggXCJhYm9ydFwiICk7XG5cblx0XHRcdFx0dHJ5IHtcblxuXHRcdFx0XHRcdC8vIERvIHNlbmQgdGhlIHJlcXVlc3QgKHRoaXMgbWF5IHJhaXNlIGFuIGV4Y2VwdGlvbilcblx0XHRcdFx0XHR4aHIuc2VuZCggb3B0aW9ucy5oYXNDb250ZW50ICYmIG9wdGlvbnMuZGF0YSB8fCBudWxsICk7XG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXG5cdFx0XHRcdFx0Ly8gdHJhYy0xNDY4MzogT25seSByZXRocm93IGlmIHRoaXMgaGFzbid0IGJlZW4gbm90aWZpZWQgYXMgYW4gZXJyb3IgeWV0XG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxuLy8gUHJldmVudCBhdXRvLWV4ZWN1dGlvbiBvZiBzY3JpcHRzIHdoZW4gbm8gZXhwbGljaXQgZGF0YVR5cGUgd2FzIHByb3ZpZGVkIChTZWUgZ2gtMjQzMilcbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHMuY29udGVudHMuc2NyaXB0ID0gZmFsc2U7XG5cdH1cbn0gKTtcblxuLy8gSW5zdGFsbCBzY3JpcHQgZGF0YVR5cGVcbmpRdWVyeS5hamF4U2V0dXAoIHtcblx0YWNjZXB0czoge1xuXHRcdHNjcmlwdDogXCJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIFwiICtcblx0XHRcdFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0XCJcblx0fSxcblx0Y29udGVudHM6IHtcblx0XHRzY3JpcHQ6IC9cXGIoPzpqYXZhfGVjbWEpc2NyaXB0XFxiL1xuXHR9LFxuXHRjb252ZXJ0ZXJzOiB7XG5cdFx0XCJ0ZXh0IHNjcmlwdFwiOiBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRcdGpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7XG5cdFx0XHRyZXR1cm4gdGV4dDtcblx0XHR9XG5cdH1cbn0gKTtcblxuLy8gSGFuZGxlIGNhY2hlJ3Mgc3BlY2lhbCBjYXNlIGFuZCBjcm9zc0RvbWFpblxualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xuXHRpZiAoIHMuY2FjaGUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRzLmNhY2hlID0gZmFsc2U7XG5cdH1cblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHMudHlwZSA9IFwiR0VUXCI7XG5cdH1cbn0gKTtcblxuLy8gQmluZCBzY3JpcHQgdGFnIGhhY2sgdHJhbnNwb3J0XG5qUXVlcnkuYWpheFRyYW5zcG9ydCggXCJzY3JpcHRcIiwgZnVuY3Rpb24oIHMgKSB7XG5cblx0Ly8gVGhpcyB0cmFuc3BvcnQgb25seSBkZWFscyB3aXRoIGNyb3NzIGRvbWFpbiBvciBmb3JjZWQtYnktYXR0cnMgcmVxdWVzdHNcblx0aWYgKCBzLmNyb3NzRG9tYWluIHx8IHMuc2NyaXB0QXR0cnMgKSB7XG5cdFx0dmFyIHNjcmlwdCwgY2FsbGJhY2s7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNlbmQ6IGZ1bmN0aW9uKCBfLCBjb21wbGV0ZSApIHtcblx0XHRcdFx0c2NyaXB0ID0galF1ZXJ5KCBcIjxzY3JpcHQ+XCIgKVxuXHRcdFx0XHRcdC5hdHRyKCBzLnNjcmlwdEF0dHJzIHx8IHt9IClcblx0XHRcdFx0XHQucHJvcCggeyBjaGFyc2V0OiBzLnNjcmlwdENoYXJzZXQsIHNyYzogcy51cmwgfSApXG5cdFx0XHRcdFx0Lm9uKCBcImxvYWQgZXJyb3JcIiwgY2FsbGJhY2sgPSBmdW5jdGlvbiggZXZ0ICkge1xuXHRcdFx0XHRcdFx0c2NyaXB0LnJlbW92ZSgpO1xuXHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSBudWxsO1xuXHRcdFx0XHRcdFx0aWYgKCBldnQgKSB7XG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCBldnQudHlwZSA9PT0gXCJlcnJvclwiID8gNDA0IDogMjAwLCBldnQudHlwZSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gKTtcblxuXHRcdFx0XHQvLyBVc2UgbmF0aXZlIERPTSBtYW5pcHVsYXRpb24gdG8gYXZvaWQgb3VyIGRvbU1hbmlwIEFKQVggdHJpY2tlcnlcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCggc2NyaXB0WyAwIF0gKTtcblx0XHRcdH0sXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxudmFyIG9sZENhbGxiYWNrcyA9IFtdLFxuXHRyanNvbnAgPSAvKD0pXFw/KD89JnwkKXxcXD9cXD8vO1xuXG4vLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzXG5qUXVlcnkuYWpheFNldHVwKCB7XG5cdGpzb25wOiBcImNhbGxiYWNrXCIsXG5cdGpzb25wQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBjYWxsYmFjayA9IG9sZENhbGxiYWNrcy5wb3AoKSB8fCAoIGpRdWVyeS5leHBhbmRvICsgXCJfXCIgKyAoIG5vbmNlLmd1aWQrKyApICk7XG5cdFx0dGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7XG5cdFx0cmV0dXJuIGNhbGxiYWNrO1xuXHR9XG59ICk7XG5cbi8vIERldGVjdCwgbm9ybWFsaXplIG9wdGlvbnMgYW5kIGluc3RhbGwgY2FsbGJhY2tzIGZvciBqc29ucCByZXF1ZXN0c1xualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwianNvbiBqc29ucFwiLCBmdW5jdGlvbiggcywgb3JpZ2luYWxTZXR0aW5ncywganFYSFIgKSB7XG5cblx0dmFyIGNhbGxiYWNrTmFtZSwgb3ZlcndyaXR0ZW4sIHJlc3BvbnNlQ29udGFpbmVyLFxuXHRcdGpzb25Qcm9wID0gcy5qc29ucCAhPT0gZmFsc2UgJiYgKCByanNvbnAudGVzdCggcy51cmwgKSA/XG5cdFx0XHRcInVybFwiIDpcblx0XHRcdHR5cGVvZiBzLmRhdGEgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0KCBzLmNvbnRlbnRUeXBlIHx8IFwiXCIgKVxuXHRcdFx0XHRcdC5pbmRleE9mKCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiICkgPT09IDAgJiZcblx0XHRcdFx0cmpzb25wLnRlc3QoIHMuZGF0YSApICYmIFwiZGF0YVwiXG5cdFx0KTtcblxuXHQvLyBIYW5kbGUgaWZmIHRoZSBleHBlY3RlZCBkYXRhIHR5cGUgaXMgXCJqc29ucFwiIG9yIHdlIGhhdmUgYSBwYXJhbWV0ZXIgdG8gc2V0XG5cdGlmICgganNvblByb3AgfHwgcy5kYXRhVHlwZXNbIDAgXSA9PT0gXCJqc29ucFwiICkge1xuXG5cdFx0Ly8gR2V0IGNhbGxiYWNrIG5hbWUsIHJlbWVtYmVyaW5nIHByZWV4aXN0aW5nIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBpdFxuXHRcdGNhbGxiYWNrTmFtZSA9IHMuanNvbnBDYWxsYmFjayA9IGlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID9cblx0XHRcdHMuanNvbnBDYWxsYmFjaygpIDpcblx0XHRcdHMuanNvbnBDYWxsYmFjaztcblxuXHRcdC8vIEluc2VydCBjYWxsYmFjayBpbnRvIHVybCBvciBmb3JtIGRhdGFcblx0XHRpZiAoIGpzb25Qcm9wICkge1xuXHRcdFx0c1sganNvblByb3AgXSA9IHNbIGpzb25Qcm9wIF0ucmVwbGFjZSggcmpzb25wLCBcIiQxXCIgKyBjYWxsYmFja05hbWUgKTtcblx0XHR9IGVsc2UgaWYgKCBzLmpzb25wICE9PSBmYWxzZSApIHtcblx0XHRcdHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmpzb25wICsgXCI9XCIgKyBjYWxsYmFja05hbWU7XG5cdFx0fVxuXG5cdFx0Ly8gVXNlIGRhdGEgY29udmVydGVyIHRvIHJldHJpZXZlIGpzb24gYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvblxuXHRcdHMuY29udmVydGVyc1sgXCJzY3JpcHQganNvblwiIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIXJlc3BvbnNlQ29udGFpbmVyICkge1xuXHRcdFx0XHRqUXVlcnkuZXJyb3IoIGNhbGxiYWNrTmFtZSArIFwiIHdhcyBub3QgY2FsbGVkXCIgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZUNvbnRhaW5lclsgMCBdO1xuXHRcdH07XG5cblx0XHQvLyBGb3JjZSBqc29uIGRhdGFUeXBlXG5cdFx0cy5kYXRhVHlwZXNbIDAgXSA9IFwianNvblwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja1xuXHRcdG92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTtcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IGFyZ3VtZW50cztcblx0XHR9O1xuXG5cdFx0Ly8gQ2xlYW4tdXAgZnVuY3Rpb24gKGZpcmVzIGFmdGVyIGNvbnZlcnRlcnMpXG5cdFx0anFYSFIuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gSWYgcHJldmlvdXMgdmFsdWUgZGlkbid0IGV4aXN0IC0gcmVtb3ZlIGl0XG5cdFx0XHRpZiAoIG92ZXJ3cml0dGVuID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdGpRdWVyeSggd2luZG93ICkucmVtb3ZlUHJvcCggY2FsbGJhY2tOYW1lICk7XG5cblx0XHRcdC8vIE90aGVyd2lzZSByZXN0b3JlIHByZWV4aXN0aW5nIHZhbHVlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gb3ZlcndyaXR0ZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNhdmUgYmFjayBhcyBmcmVlXG5cdFx0XHRpZiAoIHNbIGNhbGxiYWNrTmFtZSBdICkge1xuXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHJlLXVzaW5nIHRoZSBvcHRpb25zIGRvZXNuJ3Qgc2NyZXcgdGhpbmdzIGFyb3VuZFxuXHRcdFx0XHRzLmpzb25wQ2FsbGJhY2sgPSBvcmlnaW5hbFNldHRpbmdzLmpzb25wQ2FsbGJhY2s7XG5cblx0XHRcdFx0Ly8gU2F2ZSB0aGUgY2FsbGJhY2sgbmFtZSBmb3IgZnV0dXJlIHVzZVxuXHRcdFx0XHRvbGRDYWxsYmFja3MucHVzaCggY2FsbGJhY2tOYW1lICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZVxuXHRcdFx0aWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBpc0Z1bmN0aW9uKCBvdmVyd3JpdHRlbiApICkge1xuXHRcdFx0XHRvdmVyd3JpdHRlbiggcmVzcG9uc2VDb250YWluZXJbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IG92ZXJ3cml0dGVuID0gdW5kZWZpbmVkO1xuXHRcdH0gKTtcblxuXHRcdC8vIERlbGVnYXRlIHRvIHNjcmlwdFxuXHRcdHJldHVybiBcInNjcmlwdFwiO1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFN1cHBvcnQ6IFNhZmFyaSA4IG9ubHlcbi8vIEluIFNhZmFyaSA4IGRvY3VtZW50cyBjcmVhdGVkIHZpYSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnRcbi8vIGNvbGxhcHNlIHNpYmxpbmcgZm9ybXM6IHRoZSBzZWNvbmQgb25lIGJlY29tZXMgYSBjaGlsZCBvZiB0aGUgZmlyc3Qgb25lLlxuLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIHNlY3VyaXR5IG1lYXN1cmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIFNhZmFyaSA4LlxuLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMzN1xuc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgPSAoIGZ1bmN0aW9uKCkge1xuXHR2YXIgYm9keSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCggXCJcIiApLmJvZHk7XG5cdGJvZHkuaW5uZXJIVE1MID0gXCI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPlwiO1xuXHRyZXR1cm4gYm9keS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMjtcbn0gKSgpO1xuXG5cbi8vIEFyZ3VtZW50IFwiZGF0YVwiIHNob3VsZCBiZSBzdHJpbmcgb2YgaHRtbFxuLy8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LFxuLy8gZGVmYXVsdHMgdG8gZG9jdW1lbnRcbi8vIGtlZXBTY3JpcHRzIChvcHRpb25hbCk6IElmIHRydWUsIHdpbGwgaW5jbHVkZSBzY3JpcHRzIHBhc3NlZCBpbiB0aGUgaHRtbCBzdHJpbmdcbmpRdWVyeS5wYXJzZUhUTUwgPSBmdW5jdGlvbiggZGF0YSwgY29udGV4dCwga2VlcFNjcmlwdHMgKSB7XG5cdGlmICggdHlwZW9mIGRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGtlZXBTY3JpcHRzID0gY29udGV4dDtcblx0XHRjb250ZXh0ID0gZmFsc2U7XG5cdH1cblxuXHR2YXIgYmFzZSwgcGFyc2VkLCBzY3JpcHRzO1xuXG5cdGlmICggIWNvbnRleHQgKSB7XG5cblx0XHQvLyBTdG9wIHNjcmlwdHMgb3IgaW5saW5lIGV2ZW50IGhhbmRsZXJzIGZyb20gYmVpbmcgZXhlY3V0ZWQgaW1tZWRpYXRlbHlcblx0XHQvLyBieSB1c2luZyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvblxuXHRcdGlmICggc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgKSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCBcIlwiICk7XG5cblx0XHRcdC8vIFNldCB0aGUgYmFzZSBocmVmIGZvciB0aGUgY3JlYXRlZCBkb2N1bWVudFxuXHRcdFx0Ly8gc28gYW55IHBhcnNlZCBlbGVtZW50cyB3aXRoIFVSTHNcblx0XHRcdC8vIGFyZSBiYXNlZCBvbiB0aGUgZG9jdW1lbnQncyBVUkwgKGdoLTI5NjUpXG5cdFx0XHRiYXNlID0gY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImJhc2VcIiApO1xuXHRcdFx0YmFzZS5ocmVmID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjtcblx0XHRcdGNvbnRleHQuaGVhZC5hcHBlbmRDaGlsZCggYmFzZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQ7XG5cdFx0fVxuXHR9XG5cblx0cGFyc2VkID0gcnNpbmdsZVRhZy5leGVjKCBkYXRhICk7XG5cdHNjcmlwdHMgPSAha2VlcFNjcmlwdHMgJiYgW107XG5cblx0Ly8gU2luZ2xlIHRhZ1xuXHRpZiAoIHBhcnNlZCApIHtcblx0XHRyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIHBhcnNlZFsgMSBdICkgXTtcblx0fVxuXG5cdHBhcnNlZCA9IGJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzICk7XG5cblx0aWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkge1xuXHRcdGpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIHBhcnNlZC5jaGlsZE5vZGVzICk7XG59O1xuXG5cbi8qKlxuICogTG9hZCBhIHVybCBpbnRvIGEgcGFnZVxuICovXG5qUXVlcnkuZm4ubG9hZCA9IGZ1bmN0aW9uKCB1cmwsIHBhcmFtcywgY2FsbGJhY2sgKSB7XG5cdHZhciBzZWxlY3RvciwgdHlwZSwgcmVzcG9uc2UsXG5cdFx0c2VsZiA9IHRoaXMsXG5cdFx0b2ZmID0gdXJsLmluZGV4T2YoIFwiIFwiICk7XG5cblx0aWYgKCBvZmYgPiAtMSApIHtcblx0XHRzZWxlY3RvciA9IHN0cmlwQW5kQ29sbGFwc2UoIHVybC5zbGljZSggb2ZmICkgKTtcblx0XHR1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApO1xuXHR9XG5cblx0Ly8gSWYgaXQncyBhIGZ1bmN0aW9uXG5cdGlmICggaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XG5cblx0XHQvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZDtcblxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXG5cdH0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSBcIm9iamVjdFwiICkge1xuXHRcdHR5cGUgPSBcIlBPU1RcIjtcblx0fVxuXG5cdC8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5LCBtYWtlIHRoZSByZXF1ZXN0XG5cdGlmICggc2VsZi5sZW5ndGggPiAwICkge1xuXHRcdGpRdWVyeS5hamF4KCB7XG5cdFx0XHR1cmw6IHVybCxcblxuXHRcdFx0Ly8gSWYgXCJ0eXBlXCIgdmFyaWFibGUgaXMgdW5kZWZpbmVkLCB0aGVuIFwiR0VUXCIgbWV0aG9kIHdpbGwgYmUgdXNlZC5cblx0XHRcdC8vIE1ha2UgdmFsdWUgb2YgdGhpcyBmaWVsZCBleHBsaWNpdCBzaW5jZVxuXHRcdFx0Ly8gdXNlciBjYW4gb3ZlcnJpZGUgaXQgdGhyb3VnaCBhamF4U2V0dXAgbWV0aG9kXG5cdFx0XHR0eXBlOiB0eXBlIHx8IFwiR0VUXCIsXG5cdFx0XHRkYXRhVHlwZTogXCJodG1sXCIsXG5cdFx0XHRkYXRhOiBwYXJhbXNcblx0XHR9ICkuZG9uZSggZnVuY3Rpb24oIHJlc3BvbnNlVGV4dCApIHtcblxuXHRcdFx0Ly8gU2F2ZSByZXNwb25zZSBmb3IgdXNlIGluIGNvbXBsZXRlIGNhbGxiYWNrXG5cdFx0XHRyZXNwb25zZSA9IGFyZ3VtZW50cztcblxuXHRcdFx0c2VsZi5odG1sKCBzZWxlY3RvciA/XG5cblx0XHRcdFx0Ly8gSWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkLCBsb2NhdGUgdGhlIHJpZ2h0IGVsZW1lbnRzIGluIGEgZHVtbXkgZGl2XG5cdFx0XHRcdC8vIEV4Y2x1ZGUgc2NyaXB0cyB0byBhdm9pZCBJRSAnUGVybWlzc2lvbiBEZW5pZWQnIGVycm9yc1xuXHRcdFx0XHRqUXVlcnkoIFwiPGRpdj5cIiApLmFwcGVuZCggalF1ZXJ5LnBhcnNlSFRNTCggcmVzcG9uc2VUZXh0ICkgKS5maW5kKCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdXNlIHRoZSBmdWxsIHJlc3VsdFxuXHRcdFx0XHRyZXNwb25zZVRleHQgKTtcblxuXHRcdC8vIElmIHRoZSByZXF1ZXN0IHN1Y2NlZWRzLCB0aGlzIGZ1bmN0aW9uIGdldHMgXCJkYXRhXCIsIFwic3RhdHVzXCIsIFwianFYSFJcIlxuXHRcdC8vIGJ1dCB0aGV5IGFyZSBpZ25vcmVkIGJlY2F1c2UgcmVzcG9uc2Ugd2FzIHNldCBhYm92ZS5cblx0XHQvLyBJZiBpdCBmYWlscywgdGhpcyBmdW5jdGlvbiBnZXRzIFwianFYSFJcIiwgXCJzdGF0dXNcIiwgXCJlcnJvclwiXG5cdFx0fSApLmFsd2F5cyggY2FsbGJhY2sgJiYgZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7XG5cdFx0XHRzZWxmLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjYWxsYmFjay5hcHBseSggdGhpcywgcmVzcG9uc2UgfHwgWyBqcVhIUi5yZXNwb25zZVRleHQsIHN0YXR1cywganFYSFIgXSApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblx0fVxuXG5cdHJldHVybiB0aGlzO1xufTtcblxuXG5cblxualF1ZXJ5LmV4cHIucHNldWRvcy5hbmltYXRlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4galF1ZXJ5LmdyZXAoIGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTtcblx0fSApLmxlbmd0aDtcbn07XG5cblxuXG5cbmpRdWVyeS5vZmZzZXQgPSB7XG5cdHNldE9mZnNldDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGkgKSB7XG5cdFx0dmFyIGN1clBvc2l0aW9uLCBjdXJMZWZ0LCBjdXJDU1NUb3AsIGN1clRvcCwgY3VyT2Zmc2V0LCBjdXJDU1NMZWZ0LCBjYWxjdWxhdGVQb3NpdGlvbixcblx0XHRcdHBvc2l0aW9uID0galF1ZXJ5LmNzcyggZWxlbSwgXCJwb3NpdGlvblwiICksXG5cdFx0XHRjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksXG5cdFx0XHRwcm9wcyA9IHt9O1xuXG5cdFx0Ly8gU2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbVxuXHRcdGlmICggcG9zaXRpb24gPT09IFwic3RhdGljXCIgKSB7XG5cdFx0XHRlbGVtLnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuXHRcdH1cblxuXHRcdGN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCk7XG5cdFx0Y3VyQ1NTVG9wID0galF1ZXJ5LmNzcyggZWxlbSwgXCJ0b3BcIiApO1xuXHRcdGN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImxlZnRcIiApO1xuXHRcdGNhbGN1bGF0ZVBvc2l0aW9uID0gKCBwb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiIHx8IHBvc2l0aW9uID09PSBcImZpeGVkXCIgKSAmJlxuXHRcdFx0KCBjdXJDU1NUb3AgKyBjdXJDU1NMZWZ0ICkuaW5kZXhPZiggXCJhdXRvXCIgKSA+IC0xO1xuXG5cdFx0Ly8gTmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXJcblx0XHQvLyB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcblx0XHRpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkge1xuXHRcdFx0Y3VyUG9zaXRpb24gPSBjdXJFbGVtLnBvc2l0aW9uKCk7XG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XG5cdFx0XHRjdXJMZWZ0ID0gY3VyUG9zaXRpb24ubGVmdDtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJUb3AgPSBwYXJzZUZsb2F0KCBjdXJDU1NUb3AgKSB8fCAwO1xuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xuXHRcdH1cblxuXHRcdGlmICggaXNGdW5jdGlvbiggb3B0aW9ucyApICkge1xuXG5cdFx0XHQvLyBVc2UgalF1ZXJ5LmV4dGVuZCBoZXJlIHRvIGFsbG93IG1vZGlmaWNhdGlvbiBvZiBjb29yZGluYXRlcyBhcmd1bWVudCAoZ2gtMTg0OClcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGpRdWVyeS5leHRlbmQoIHt9LCBjdXJPZmZzZXQgKSApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0aW9ucy50b3AgIT0gbnVsbCApIHtcblx0XHRcdHByb3BzLnRvcCA9ICggb3B0aW9ucy50b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7XG5cdFx0fVxuXHRcdGlmICggb3B0aW9ucy5sZWZ0ICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy5sZWZ0ID0gKCBvcHRpb25zLmxlZnQgLSBjdXJPZmZzZXQubGVmdCApICsgY3VyTGVmdDtcblx0XHR9XG5cblx0XHRpZiAoIFwidXNpbmdcIiBpbiBvcHRpb25zICkge1xuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdGN1ckVsZW0uY3NzKCBwcm9wcyApO1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdC8vIG9mZnNldCgpIHJlbGF0ZXMgYW4gZWxlbWVudCdzIGJvcmRlciBib3ggdG8gdGhlIGRvY3VtZW50IG9yaWdpblxuXHRvZmZzZXQ6IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdFx0Ly8gUHJlc2VydmUgY2hhaW5pbmcgZm9yIHNldHRlclxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiBvcHRpb25zID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHR0aGlzIDpcblx0XHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0XHRqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApO1xuXHRcdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0dmFyIHJlY3QsIHdpbixcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF07XG5cblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiB6ZXJvcyBmb3IgZGlzY29ubmVjdGVkIGFuZCBoaWRkZW4gKGRpc3BsYXk6IG5vbmUpIGVsZW1lbnRzIChnaC0yMzEwKVxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGFcblx0XHQvLyBkaXNjb25uZWN0ZWQgbm9kZSBpbiBJRSB0aHJvd3MgYW4gZXJyb3Jcblx0XHRpZiAoICFlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cdFx0fVxuXG5cdFx0Ly8gR2V0IGRvY3VtZW50LXJlbGF0aXZlIHBvc2l0aW9uIGJ5IGFkZGluZyB2aWV3cG9ydCBzY3JvbGwgdG8gdmlld3BvcnQtcmVsYXRpdmUgZ0JDUlxuXHRcdHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdHdpbiA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldztcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiByZWN0LnRvcCArIHdpbi5wYWdlWU9mZnNldCxcblx0XHRcdGxlZnQ6IHJlY3QubGVmdCArIHdpbi5wYWdlWE9mZnNldFxuXHRcdH07XG5cdH0sXG5cblx0Ly8gcG9zaXRpb24oKSByZWxhdGVzIGFuIGVsZW1lbnQncyBtYXJnaW4gYm94IHRvIGl0cyBvZmZzZXQgcGFyZW50J3MgcGFkZGluZyBib3hcblx0Ly8gVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgYmVoYXZpb3Igb2YgQ1NTIGFic29sdXRlIHBvc2l0aW9uaW5nXG5cdHBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoICF0aGlzWyAwIF0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIG9mZnNldFBhcmVudCwgb2Zmc2V0LCBkb2MsXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdLFxuXHRcdFx0cGFyZW50T2Zmc2V0ID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcblxuXHRcdC8vIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIGFyZSBvZmZzZXQgZnJvbSB0aGUgdmlld3BvcnQsIHdoaWNoIGl0c2VsZiBhbHdheXMgaGFzIHplcm8gb2Zmc2V0XG5cdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcInBvc2l0aW9uXCIgKSA9PT0gXCJmaXhlZFwiICkge1xuXG5cdFx0XHQvLyBBc3N1bWUgcG9zaXRpb246Zml4ZWQgaW1wbGllcyBhdmFpbGFiaWxpdHkgb2YgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG5cdFx0XHRvZmZzZXQgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdG9mZnNldCA9IHRoaXMub2Zmc2V0KCk7XG5cblx0XHRcdC8vIEFjY291bnQgZm9yIHRoZSAqcmVhbCogb2Zmc2V0IHBhcmVudCwgd2hpY2ggY2FuIGJlIHRoZSBkb2N1bWVudCBvciBpdHMgcm9vdCBlbGVtZW50XG5cdFx0XHQvLyB3aGVuIGEgc3RhdGljYWxseSBwb3NpdGlvbmVkIGVsZW1lbnQgaXMgaWRlbnRpZmllZFxuXHRcdFx0ZG9jID0gZWxlbS5vd25lckRvY3VtZW50O1xuXHRcdFx0b2Zmc2V0UGFyZW50ID0gZWxlbS5vZmZzZXRQYXJlbnQgfHwgZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdHdoaWxlICggb2Zmc2V0UGFyZW50ICYmXG5cdFx0XHRcdCggb2Zmc2V0UGFyZW50ID09PSBkb2MuYm9keSB8fCBvZmZzZXRQYXJlbnQgPT09IGRvYy5kb2N1bWVudEVsZW1lbnQgKSAmJlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwicG9zaXRpb25cIiApID09PSBcInN0YXRpY1wiICkge1xuXG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBvZmZzZXRQYXJlbnQgJiYgb2Zmc2V0UGFyZW50ICE9PSBlbGVtICYmIG9mZnNldFBhcmVudC5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSBib3JkZXJzIGludG8gaXRzIG9mZnNldCwgc2luY2UgdGhleSBhcmUgb3V0c2lkZSBpdHMgY29udGVudCBvcmlnaW5cblx0XHRcdFx0cGFyZW50T2Zmc2V0ID0galF1ZXJ5KCBvZmZzZXRQYXJlbnQgKS5vZmZzZXQoKTtcblx0XHRcdFx0cGFyZW50T2Zmc2V0LnRvcCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwiYm9yZGVyVG9wV2lkdGhcIiwgdHJ1ZSApO1xuXHRcdFx0XHRwYXJlbnRPZmZzZXQubGVmdCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwiYm9yZGVyTGVmdFdpZHRoXCIsIHRydWUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTdWJ0cmFjdCBwYXJlbnQgb2Zmc2V0cyBhbmQgZWxlbWVudCBtYXJnaW5zXG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogb2Zmc2V0LnRvcCAtIHBhcmVudE9mZnNldC50b3AgLSBqUXVlcnkuY3NzKCBlbGVtLCBcIm1hcmdpblRvcFwiLCB0cnVlICksXG5cdFx0XHRsZWZ0OiBvZmZzZXQubGVmdCAtIHBhcmVudE9mZnNldC5sZWZ0IC0galF1ZXJ5LmNzcyggZWxlbSwgXCJtYXJnaW5MZWZ0XCIsIHRydWUgKVxuXHRcdH07XG5cdH0sXG5cblx0Ly8gVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gZG9jdW1lbnRFbGVtZW50IGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6XG5cdC8vIDEpIEZvciB0aGUgZWxlbWVudCBpbnNpZGUgdGhlIGlmcmFtZSB3aXRob3V0IG9mZnNldFBhcmVudCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm5cblx0Ly8gICAgZG9jdW1lbnRFbGVtZW50IG9mIHRoZSBwYXJlbnQgd2luZG93XG5cdC8vIDIpIEZvciB0aGUgaGlkZGVuIG9yIGRldGFjaGVkIGVsZW1lbnRcblx0Ly8gMykgRm9yIGJvZHkgb3IgaHRtbCBlbGVtZW50LCBpLmUuIGluIGNhc2Ugb2YgdGhlIGh0bWwgbm9kZSAtIGl0IHdpbGwgcmV0dXJuIGl0c2VsZlxuXHQvL1xuXHQvLyBidXQgdGhvc2UgZXhjZXB0aW9ucyB3ZXJlIG5ldmVyIHByZXNlbnRlZCBhcyBhIHJlYWwgbGlmZSB1c2UtY2FzZXNcblx0Ly8gYW5kIG1pZ2h0IGJlIGNvbnNpZGVyZWQgYXMgbW9yZSBwcmVmZXJhYmxlIHJlc3VsdHMuXG5cdC8vXG5cdC8vIFRoaXMgbG9naWMsIGhvd2V2ZXIsIGlzIG5vdCBndWFyYW50ZWVkIGFuZCBjYW4gY2hhbmdlIGF0IGFueSBwb2ludCBpbiB0aGUgZnV0dXJlXG5cdG9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudDtcblxuXHRcdFx0d2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgalF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcInBvc2l0aW9uXCIgKSA9PT0gXCJzdGF0aWNcIiApIHtcblx0XHRcdFx0b2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50Lm9mZnNldFBhcmVudDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG9mZnNldFBhcmVudCB8fCBkb2N1bWVudEVsZW1lbnQ7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgc2Nyb2xsTGVmdDogXCJwYWdlWE9mZnNldFwiLCBzY3JvbGxUb3A6IFwicGFnZVlPZmZzZXRcIiB9LCBmdW5jdGlvbiggbWV0aG9kLCBwcm9wICkge1xuXHR2YXIgdG9wID0gXCJwYWdlWU9mZnNldFwiID09PSBwcm9wO1xuXG5cdGpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBtZXRob2QsIHZhbCApIHtcblxuXHRcdFx0Ly8gQ29hbGVzY2UgZG9jdW1lbnRzIGFuZCB3aW5kb3dzXG5cdFx0XHR2YXIgd2luO1xuXHRcdFx0aWYgKCBpc1dpbmRvdyggZWxlbSApICkge1xuXHRcdFx0XHR3aW4gPSBlbGVtO1xuXHRcdFx0fSBlbHNlIGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0d2luID0gZWxlbS5kZWZhdWx0Vmlldztcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHdpbiA/IHdpblsgcHJvcCBdIDogZWxlbVsgbWV0aG9kIF07XG5cdFx0XHR9XG5cblx0XHRcdGlmICggd2luICkge1xuXHRcdFx0XHR3aW4uc2Nyb2xsVG8oXG5cdFx0XHRcdFx0IXRvcCA/IHZhbCA6IHdpbi5wYWdlWE9mZnNldCxcblx0XHRcdFx0XHR0b3AgPyB2YWwgOiB3aW4ucGFnZVlPZmZzZXRcblx0XHRcdFx0KTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbVsgbWV0aG9kIF0gPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSwgbWV0aG9kLCB2YWwsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fTtcbn0gKTtcblxuLy8gU3VwcG9ydDogU2FmYXJpIDw9NyAtIDkuMSwgQ2hyb21lIDw9MzcgLSA0OVxuLy8gQWRkIHRoZSB0b3AvbGVmdCBjc3NIb29rcyB1c2luZyBqUXVlcnkuZm4ucG9zaXRpb25cbi8vIFdlYmtpdCBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4NFxuLy8gQmxpbmsgYnVnOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODkzNDdcbi8vIGdldENvbXB1dGVkU3R5bGUgcmV0dXJucyBwZXJjZW50IHdoZW4gc3BlY2lmaWVkIGZvciB0b3AvbGVmdC9ib3R0b20vcmlnaHQ7XG4vLyByYXRoZXIgdGhhbiBtYWtlIHRoZSBjc3MgbW9kdWxlIGRlcGVuZCBvbiB0aGUgb2Zmc2V0IG1vZHVsZSwganVzdCBjaGVjayBmb3IgaXQgaGVyZVxualF1ZXJ5LmVhY2goIFsgXCJ0b3BcIiwgXCJsZWZ0XCIgXSwgZnVuY3Rpb24oIF9pLCBwcm9wICkge1xuXHRqUXVlcnkuY3NzSG9va3NbIHByb3AgXSA9IGFkZEdldEhvb2tJZiggc3VwcG9ydC5waXhlbFBvc2l0aW9uLFxuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcblx0XHRcdGlmICggY29tcHV0ZWQgKSB7XG5cdFx0XHRcdGNvbXB1dGVkID0gY3VyQ1NTKCBlbGVtLCBwcm9wICk7XG5cblx0XHRcdFx0Ly8gSWYgY3VyQ1NTIHJldHVybnMgcGVyY2VudGFnZSwgZmFsbGJhY2sgdG8gb2Zmc2V0XG5cdFx0XHRcdHJldHVybiBybnVtbm9ucHgudGVzdCggY29tcHV0ZWQgKSA/XG5cdFx0XHRcdFx0alF1ZXJ5KCBlbGVtICkucG9zaXRpb24oKVsgcHJvcCBdICsgXCJweFwiIDpcblx0XHRcdFx0XHRjb21wdXRlZDtcblx0XHRcdH1cblx0XHR9XG5cdCk7XG59ICk7XG5cblxuLy8gQ3JlYXRlIGlubmVySGVpZ2h0LCBpbm5lcldpZHRoLCBoZWlnaHQsIHdpZHRoLCBvdXRlckhlaWdodCBhbmQgb3V0ZXJXaWR0aCBtZXRob2RzXG5qUXVlcnkuZWFjaCggeyBIZWlnaHQ6IFwiaGVpZ2h0XCIsIFdpZHRoOiBcIndpZHRoXCIgfSwgZnVuY3Rpb24oIG5hbWUsIHR5cGUgKSB7XG5cdGpRdWVyeS5lYWNoKCB7XG5cdFx0cGFkZGluZzogXCJpbm5lclwiICsgbmFtZSxcblx0XHRjb250ZW50OiB0eXBlLFxuXHRcdFwiXCI6IFwib3V0ZXJcIiArIG5hbWVcblx0fSwgZnVuY3Rpb24oIGRlZmF1bHRFeHRyYSwgZnVuY05hbWUgKSB7XG5cblx0XHQvLyBNYXJnaW4gaXMgb25seSBmb3Igb3V0ZXJIZWlnaHQsIG91dGVyV2lkdGhcblx0XHRqUXVlcnkuZm5bIGZ1bmNOYW1lIF0gPSBmdW5jdGlvbiggbWFyZ2luLCB2YWx1ZSApIHtcblx0XHRcdHZhciBjaGFpbmFibGUgPSBhcmd1bWVudHMubGVuZ3RoICYmICggZGVmYXVsdEV4dHJhIHx8IHR5cGVvZiBtYXJnaW4gIT09IFwiYm9vbGVhblwiICksXG5cdFx0XHRcdGV4dHJhID0gZGVmYXVsdEV4dHJhIHx8ICggbWFyZ2luID09PSB0cnVlIHx8IHZhbHVlID09PSB0cnVlID8gXCJtYXJnaW5cIiA6IFwiYm9yZGVyXCIgKTtcblxuXHRcdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIHR5cGUsIHZhbHVlICkge1xuXHRcdFx0XHR2YXIgZG9jO1xuXG5cdFx0XHRcdGlmICggaXNXaW5kb3coIGVsZW0gKSApIHtcblxuXHRcdFx0XHRcdC8vICQoIHdpbmRvdyApLm91dGVyV2lkdGgvSGVpZ2h0IHJldHVybiB3L2ggaW5jbHVkaW5nIHNjcm9sbGJhcnMgKGdoLTE3MjkpXG5cdFx0XHRcdFx0cmV0dXJuIGZ1bmNOYW1lLmluZGV4T2YoIFwib3V0ZXJcIiApID09PSAwID9cblx0XHRcdFx0XHRcdGVsZW1bIFwiaW5uZXJcIiArIG5hbWUgXSA6XG5cdFx0XHRcdFx0XHRlbGVtLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgXCJjbGllbnRcIiArIG5hbWUgXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHRcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdGRvYyA9IGVsZW0uZG9jdW1lbnRFbGVtZW50O1xuXG5cdFx0XHRcdFx0Ly8gRWl0aGVyIHNjcm9sbFtXaWR0aC9IZWlnaHRdIG9yIG9mZnNldFtXaWR0aC9IZWlnaHRdIG9yIGNsaWVudFtXaWR0aC9IZWlnaHRdLFxuXHRcdFx0XHRcdC8vIHdoaWNoZXZlciBpcyBncmVhdGVzdFxuXHRcdFx0XHRcdHJldHVybiBNYXRoLm1heChcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJzY3JvbGxcIiArIG5hbWUgXSwgZG9jWyBcInNjcm9sbFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZWxlbS5ib2R5WyBcIm9mZnNldFwiICsgbmFtZSBdLCBkb2NbIFwib2Zmc2V0XCIgKyBuYW1lIF0sXG5cdFx0XHRcdFx0XHRkb2NbIFwiY2xpZW50XCIgKyBuYW1lIF1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXG5cdFx0XHRcdFx0Ly8gR2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudCwgcmVxdWVzdGluZyBidXQgbm90IGZvcmNpbmcgcGFyc2VGbG9hdFxuXHRcdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUsIGV4dHJhICkgOlxuXG5cdFx0XHRcdFx0Ly8gU2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudFxuXHRcdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgdHlwZSwgdmFsdWUsIGV4dHJhICk7XG5cdFx0XHR9LCB0eXBlLCBjaGFpbmFibGUgPyBtYXJnaW4gOiB1bmRlZmluZWQsIGNoYWluYWJsZSApO1xuXHRcdH07XG5cdH0gKTtcbn0gKTtcblxuXG5qUXVlcnkuZWFjaCggW1xuXHRcImFqYXhTdGFydFwiLFxuXHRcImFqYXhTdG9wXCIsXG5cdFwiYWpheENvbXBsZXRlXCIsXG5cdFwiYWpheEVycm9yXCIsXG5cdFwiYWpheFN1Y2Nlc3NcIixcblx0XCJhamF4U2VuZFwiXG5dLCBmdW5jdGlvbiggX2ksIHR5cGUgKSB7XG5cdGpRdWVyeS5mblsgdHlwZSBdID0gZnVuY3Rpb24oIGZuICkge1xuXHRcdHJldHVybiB0aGlzLm9uKCB0eXBlLCBmbiApO1xuXHR9O1xufSApO1xuXG5cblxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cblx0YmluZDogZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZXMsIG51bGwsIGRhdGEsIGZuICk7XG5cdH0sXG5cdHVuYmluZDogZnVuY3Rpb24oIHR5cGVzLCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vZmYoIHR5cGVzLCBudWxsLCBmbiApO1xuXHR9LFxuXG5cdGRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBmbiApIHtcblxuXHRcdC8vICggbmFtZXNwYWNlICkgb3IgKCBzZWxlY3RvciwgdHlwZXMgWywgZm5dIClcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/XG5cdFx0XHR0aGlzLm9mZiggc2VsZWN0b3IsIFwiKipcIiApIDpcblx0XHRcdHRoaXMub2ZmKCB0eXBlcywgc2VsZWN0b3IgfHwgXCIqKlwiLCBmbiApO1xuXHR9LFxuXG5cdGhvdmVyOiBmdW5jdGlvbiggZm5PdmVyLCBmbk91dCApIHtcblx0XHRyZXR1cm4gdGhpc1xuXHRcdFx0Lm9uKCBcIm1vdXNlZW50ZXJcIiwgZm5PdmVyIClcblx0XHRcdC5vbiggXCJtb3VzZWxlYXZlXCIsIGZuT3V0IHx8IGZuT3ZlciApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKFxuXHQoIFwiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgXCIgK1xuXHRcIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIFwiICtcblx0XCJjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51XCIgKS5zcGxpdCggXCIgXCIgKSxcblx0ZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXG5cdFx0Ly8gSGFuZGxlIGV2ZW50IGJpbmRpbmdcblx0XHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBkYXRhLCBmbiApIHtcblx0XHRcdHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMCA/XG5cdFx0XHRcdHRoaXMub24oIG5hbWUsIG51bGwsIGRhdGEsIGZuICkgOlxuXHRcdFx0XHR0aGlzLnRyaWdnZXIoIG5hbWUgKTtcblx0XHR9O1xuXHR9XG4pO1xuXG5cblxuXG4vLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHlcbi8vIE1ha2Ugc3VyZSB3ZSB0cmltIEJPTSBhbmQgTkJTUFxuLy8gUmVxdWlyZSB0aGF0IHRoZSBcIndoaXRlc3BhY2UgcnVuXCIgc3RhcnRzIGZyb20gYSBub24td2hpdGVzcGFjZVxuLy8gdG8gYXZvaWQgTyhOXjIpIGJlaGF2aW9yIHdoZW4gdGhlIGVuZ2luZSB3b3VsZCB0cnkgbWF0Y2hpbmcgXCJcXHMrJFwiIGF0IGVhY2ggc3BhY2UgcG9zaXRpb24uXG52YXIgcnRyaW0gPSAvXltcXHNcXHVGRUZGXFx4QTBdK3woW15cXHNcXHVGRUZGXFx4QTBdKVtcXHNcXHVGRUZGXFx4QTBdKyQvZztcblxuLy8gQmluZCBhIGZ1bmN0aW9uIHRvIGEgY29udGV4dCwgb3B0aW9uYWxseSBwYXJ0aWFsbHkgYXBwbHlpbmcgYW55XG4vLyBhcmd1bWVudHMuXG4vLyBqUXVlcnkucHJveHkgaXMgZGVwcmVjYXRlZCB0byBwcm9tb3RlIHN0YW5kYXJkcyAoc3BlY2lmaWNhbGx5IEZ1bmN0aW9uI2JpbmQpXG4vLyBIb3dldmVyLCBpdCBpcyBub3Qgc2xhdGVkIGZvciByZW1vdmFsIGFueSB0aW1lIHNvb25cbmpRdWVyeS5wcm94eSA9IGZ1bmN0aW9uKCBmbiwgY29udGV4dCApIHtcblx0dmFyIHRtcCwgYXJncywgcHJveHk7XG5cblx0aWYgKCB0eXBlb2YgY29udGV4dCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHR0bXAgPSBmblsgY29udGV4dCBdO1xuXHRcdGNvbnRleHQgPSBmbjtcblx0XHRmbiA9IHRtcDtcblx0fVxuXG5cdC8vIFF1aWNrIGNoZWNrIHRvIGRldGVybWluZSBpZiB0YXJnZXQgaXMgY2FsbGFibGUsIGluIHRoZSBzcGVjXG5cdC8vIHRoaXMgdGhyb3dzIGEgVHlwZUVycm9yLCBidXQgd2Ugd2lsbCBqdXN0IHJldHVybiB1bmRlZmluZWQuXG5cdGlmICggIWlzRnVuY3Rpb24oIGZuICkgKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdC8vIFNpbXVsYXRlZCBiaW5kXG5cdGFyZ3MgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMsIDIgKTtcblx0cHJveHkgPSBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZm4uYXBwbHkoIGNvbnRleHQgfHwgdGhpcywgYXJncy5jb25jYXQoIHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApICkgKTtcblx0fTtcblxuXHQvLyBTZXQgdGhlIGd1aWQgb2YgdW5pcXVlIGhhbmRsZXIgdG8gdGhlIHNhbWUgb2Ygb3JpZ2luYWwgaGFuZGxlciwgc28gaXQgY2FuIGJlIHJlbW92ZWRcblx0cHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IGpRdWVyeS5ndWlkKys7XG5cblx0cmV0dXJuIHByb3h5O1xufTtcblxualF1ZXJ5LmhvbGRSZWFkeSA9IGZ1bmN0aW9uKCBob2xkICkge1xuXHRpZiAoIGhvbGQgKSB7XG5cdFx0alF1ZXJ5LnJlYWR5V2FpdCsrO1xuXHR9IGVsc2Uge1xuXHRcdGpRdWVyeS5yZWFkeSggdHJ1ZSApO1xuXHR9XG59O1xualF1ZXJ5LmlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xualF1ZXJ5LnBhcnNlSlNPTiA9IEpTT04ucGFyc2U7XG5qUXVlcnkubm9kZU5hbWUgPSBub2RlTmFtZTtcbmpRdWVyeS5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbmpRdWVyeS5pc1dpbmRvdyA9IGlzV2luZG93O1xualF1ZXJ5LmNhbWVsQ2FzZSA9IGNhbWVsQ2FzZTtcbmpRdWVyeS50eXBlID0gdG9UeXBlO1xuXG5qUXVlcnkubm93ID0gRGF0ZS5ub3c7XG5cbmpRdWVyeS5pc051bWVyaWMgPSBmdW5jdGlvbiggb2JqICkge1xuXG5cdC8vIEFzIG9mIGpRdWVyeSAzLjAsIGlzTnVtZXJpYyBpcyBsaW1pdGVkIHRvXG5cdC8vIHN0cmluZ3MgYW5kIG51bWJlcnMgKHByaW1pdGl2ZXMgb3Igb2JqZWN0cylcblx0Ly8gdGhhdCBjYW4gYmUgY29lcmNlZCB0byBmaW5pdGUgbnVtYmVycyAoZ2gtMjY2Milcblx0dmFyIHR5cGUgPSBqUXVlcnkudHlwZSggb2JqICk7XG5cdHJldHVybiAoIHR5cGUgPT09IFwibnVtYmVyXCIgfHwgdHlwZSA9PT0gXCJzdHJpbmdcIiApICYmXG5cblx0XHQvLyBwYXJzZUZsb2F0IE5hTnMgbnVtZXJpYy1jYXN0IGZhbHNlIHBvc2l0aXZlcyAoXCJcIilcblx0XHQvLyAuLi5idXQgbWlzaW50ZXJwcmV0cyBsZWFkaW5nLW51bWJlciBzdHJpbmdzLCBwYXJ0aWN1bGFybHkgaGV4IGxpdGVyYWxzIChcIjB4Li4uXCIpXG5cdFx0Ly8gc3VidHJhY3Rpb24gZm9yY2VzIGluZmluaXRpZXMgdG8gTmFOXG5cdFx0IWlzTmFOKCBvYmogLSBwYXJzZUZsb2F0KCBvYmogKSApO1xufTtcblxualF1ZXJ5LnRyaW0gPSBmdW5jdGlvbiggdGV4dCApIHtcblx0cmV0dXJuIHRleHQgPT0gbnVsbCA/XG5cdFx0XCJcIiA6XG5cdFx0KCB0ZXh0ICsgXCJcIiApLnJlcGxhY2UoIHJ0cmltLCBcIiQxXCIgKTtcbn07XG5cblxuXG4vLyBSZWdpc3RlciBhcyBhIG5hbWVkIEFNRCBtb2R1bGUsIHNpbmNlIGpRdWVyeSBjYW4gYmUgY29uY2F0ZW5hdGVkIHdpdGggb3RoZXJcbi8vIGZpbGVzIHRoYXQgbWF5IHVzZSBkZWZpbmUsIGJ1dCBub3QgdmlhIGEgcHJvcGVyIGNvbmNhdGVuYXRpb24gc2NyaXB0IHRoYXRcbi8vIHVuZGVyc3RhbmRzIGFub255bW91cyBBTUQgbW9kdWxlcy4gQSBuYW1lZCBBTUQgaXMgc2FmZXN0IGFuZCBtb3N0IHJvYnVzdFxuLy8gd2F5IHRvIHJlZ2lzdGVyLiBMb3dlcmNhc2UganF1ZXJ5IGlzIHVzZWQgYmVjYXVzZSBBTUQgbW9kdWxlIG5hbWVzIGFyZVxuLy8gZGVyaXZlZCBmcm9tIGZpbGUgbmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93ZXJjYXNlXG4vLyBmaWxlIG5hbWUuIERvIHRoaXMgYWZ0ZXIgY3JlYXRpbmcgdGhlIGdsb2JhbCBzbyB0aGF0IGlmIGFuIEFNRCBtb2R1bGUgd2FudHNcbi8vIHRvIGNhbGwgbm9Db25mbGljdCB0byBoaWRlIHRoaXMgdmVyc2lvbiBvZiBqUXVlcnksIGl0IHdpbGwgd29yay5cblxuLy8gTm90ZSB0aGF0IGZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCBsaWJyYXJpZXMgdGhhdCBhcmUgbm90IGpRdWVyeSBzaG91bGRcbi8vIGRlY2xhcmUgdGhlbXNlbHZlcyBhcyBhbm9ueW1vdXMgbW9kdWxlcywgYW5kIGF2b2lkIHNldHRpbmcgYSBnbG9iYWwgaWYgYW5cbi8vIEFNRCBsb2FkZXIgaXMgcHJlc2VudC4galF1ZXJ5IGlzIGEgc3BlY2lhbCBjYXNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvd2lraS9VcGRhdGluZy1leGlzdGluZy1saWJyYXJpZXMjd2lraS1hbm9uXG5cbmlmICggdHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQgKSB7XG5cdGRlZmluZSggXCJqcXVlcnlcIiwgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnk7XG5cdH0gKTtcbn1cblxuXG5cblxudmFyXG5cblx0Ly8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF9qUXVlcnkgPSB3aW5kb3cualF1ZXJ5LFxuXG5cdC8vIE1hcCBvdmVyIHRoZSAkIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF8kID0gd2luZG93LiQ7XG5cbmpRdWVyeS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oIGRlZXAgKSB7XG5cdGlmICggd2luZG93LiQgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cuJCA9IF8kO1xuXHR9XG5cblx0aWYgKCBkZWVwICYmIHdpbmRvdy5qUXVlcnkgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cualF1ZXJ5ID0gX2pRdWVyeTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnk7XG59O1xuXG4vLyBFeHBvc2UgalF1ZXJ5IGFuZCAkIGlkZW50aWZpZXJzLCBldmVuIGluIEFNRFxuLy8gKHRyYWMtNzEwMiNjb21tZW50OjEwLCBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9wdWxsLzU1Nylcbi8vIGFuZCBDb21tb25KUyBmb3IgYnJvd3NlciBlbXVsYXRvcnMgKHRyYWMtMTM1NjYpXG5pZiAoIHR5cGVvZiBub0dsb2JhbCA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblx0d2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0galF1ZXJ5O1xufVxuXG5cblxuXG5yZXR1cm4galF1ZXJ5O1xufSApO1xuIiwgIi8qIGVzbGludC1kaXNhYmxlIG5vLW11bHRpLWFzc2lnbiAqL1xuXG5mdW5jdGlvbiBkZWVwRnJlZXplKG9iaikge1xuICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgb2JqLmNsZWFyID1cbiAgICAgIG9iai5kZWxldGUgPVxuICAgICAgb2JqLnNldCA9XG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcCBpcyByZWFkLW9ubHknKTtcbiAgICAgICAgfTtcbiAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBvYmouYWRkID1cbiAgICAgIG9iai5jbGVhciA9XG4gICAgICBvYmouZGVsZXRlID1cbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2V0IGlzIHJlYWQtb25seScpO1xuICAgICAgICB9O1xuICB9XG5cbiAgLy8gRnJlZXplIHNlbGZcbiAgT2JqZWN0LmZyZWV6ZShvYmopO1xuXG4gIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIGNvbnN0IHByb3AgPSBvYmpbbmFtZV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBwcm9wO1xuXG4gICAgLy8gRnJlZXplIHByb3AgaWYgaXQgaXMgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uIGFuZCBhbHNvIG5vdCBhbHJlYWR5IGZyb3plblxuICAgIGlmICgodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJykgJiYgIU9iamVjdC5pc0Zyb3plbihwcm9wKSkge1xuICAgICAgZGVlcEZyZWV6ZShwcm9wKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5DYWxsYmFja1Jlc3BvbnNlfSBDYWxsYmFja1Jlc3BvbnNlICovXG4vKiogQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGUgKi9cbi8qKiBAaW1wbGVtZW50cyBDYWxsYmFja1Jlc3BvbnNlICovXG5cbmNsYXNzIFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihtb2RlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgIGlmIChtb2RlLmRhdGEgPT09IHVuZGVmaW5lZCkgbW9kZS5kYXRhID0ge307XG5cbiAgICB0aGlzLmRhdGEgPSBtb2RlLmRhdGE7XG4gICAgdGhpcy5pc01hdGNoSWdub3JlZCA9IGZhbHNlO1xuICB9XG5cbiAgaWdub3JlTWF0Y2goKSB7XG4gICAgdGhpcy5pc01hdGNoSWdub3JlZCA9IHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUhUTUwodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7Jyk7XG59XG5cbi8qKlxuICogcGVyZm9ybXMgYSBzaGFsbG93IG1lcmdlIG9mIG11bHRpcGxlIG9iamVjdHMgaW50byBvbmVcbiAqXG4gKiBAdGVtcGxhdGUgVFxuICogQHBhcmFtIHtUfSBvcmlnaW5hbFxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLGFueT5bXX0gb2JqZWN0c1xuICogQHJldHVybnMge1R9IGEgc2luZ2xlIG5ldyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gaW5oZXJpdCQxKG9yaWdpbmFsLCAuLi5vYmplY3RzKSB7XG4gIC8qKiBAdHlwZSBSZWNvcmQ8c3RyaW5nLGFueT4gKi9cbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBvcmlnaW5hbCkge1xuICAgIHJlc3VsdFtrZXldID0gb3JpZ2luYWxba2V5XTtcbiAgfVxuICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24ob2JqKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiAvKiogQHR5cGUge1R9ICovIChyZXN1bHQpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFJlbmRlcmVyXG4gKiBAcHJvcGVydHkgeyh0ZXh0OiBzdHJpbmcpID0+IHZvaWR9IGFkZFRleHRcbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE5vZGUpID0+IHZvaWR9IG9wZW5Ob2RlXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlKSA9PiB2b2lkfSBjbG9zZU5vZGVcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nfSB2YWx1ZVxuICovXG5cbi8qKiBAdHlwZWRlZiB7e3Njb3BlPzogc3RyaW5nLCBsYW5ndWFnZT86IHN0cmluZywgc3VibGFuZ3VhZ2U/OiBib29sZWFufX0gTm9kZSAqL1xuLyoqIEB0eXBlZGVmIHt7d2FsazogKHI6IFJlbmRlcmVyKSA9PiB2b2lkfX0gVHJlZSAqL1xuLyoqICovXG5cbmNvbnN0IFNQQU5fQ0xPU0UgPSAnPC9zcGFuPic7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIG5vZGUgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiA8c3Bhbj5cbiAqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbmNvbnN0IGVtaXRzV3JhcHBpbmdUYWdzID0gKG5vZGUpID0+IHtcbiAgLy8gcmFyZWx5IHdlIGNhbiBoYXZlIGEgc3VibGFuZ3VhZ2Ugd2hlcmUgbGFuZ3VhZ2UgaXMgdW5kZWZpbmVkXG4gIC8vIFRPRE86IHRyYWNrIGRvd24gd2h5XG4gIHJldHVybiAhIW5vZGUuc2NvcGU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt7cHJlZml4OnN0cmluZ319IG9wdGlvbnNcbiAqL1xuY29uc3Qgc2NvcGVUb0NTU0NsYXNzID0gKG5hbWUsIHsgcHJlZml4IH0pID0+IHtcbiAgLy8gc3ViLWxhbmd1YWdlXG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJsYW5ndWFnZTpcIikpIHtcbiAgICByZXR1cm4gbmFtZS5yZXBsYWNlKFwibGFuZ3VhZ2U6XCIsIFwibGFuZ3VhZ2UtXCIpO1xuICB9XG4gIC8vIHRpZXJlZCBzY29wZTogY29tbWVudC5saW5lXG4gIGlmIChuYW1lLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgIGNvbnN0IHBpZWNlcyA9IG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgIHJldHVybiBbXG4gICAgICBgJHtwcmVmaXh9JHtwaWVjZXMuc2hpZnQoKX1gLFxuICAgICAgLi4uKHBpZWNlcy5tYXAoKHgsIGkpID0+IGAke3h9JHtcIl9cIi5yZXBlYXQoaSArIDEpfWApKVxuICAgIF0uam9pbihcIiBcIik7XG4gIH1cbiAgLy8gc2ltcGxlIHNjb3BlXG4gIHJldHVybiBgJHtwcmVmaXh9JHtuYW1lfWA7XG59O1xuXG4vKiogQHR5cGUge1JlbmRlcmVyfSAqL1xuY2xhc3MgSFRNTFJlbmRlcmVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgSFRNTFJlbmRlcmVyXG4gICAqXG4gICAqIEBwYXJhbSB7VHJlZX0gcGFyc2VUcmVlIC0gdGhlIHBhcnNlIHRyZWUgKG11c3Qgc3VwcG9ydCBgd2Fsa2AgQVBJKVxuICAgKiBAcGFyYW0ge3tjbGFzc1ByZWZpeDogc3RyaW5nfX0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IocGFyc2VUcmVlLCBvcHRpb25zKSB7XG4gICAgdGhpcy5idWZmZXIgPSBcIlwiO1xuICAgIHRoaXMuY2xhc3NQcmVmaXggPSBvcHRpb25zLmNsYXNzUHJlZml4O1xuICAgIHBhcnNlVHJlZS53YWxrKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGV4dHMgdG8gdGhlIG91dHB1dCBzdHJlYW1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgKi9cbiAgYWRkVGV4dCh0ZXh0KSB7XG4gICAgdGhpcy5idWZmZXIgKz0gZXNjYXBlSFRNTCh0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBvcGVuIHRvIHRoZSBvdXRwdXQgc3RyZWFtIChpZiBuZWVkZWQpXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAqL1xuICBvcGVuTm9kZShub2RlKSB7XG4gICAgaWYgKCFlbWl0c1dyYXBwaW5nVGFncyhub2RlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gc2NvcGVUb0NTU0NsYXNzKG5vZGUuc2NvcGUsXG4gICAgICB7IHByZWZpeDogdGhpcy5jbGFzc1ByZWZpeCB9KTtcbiAgICB0aGlzLnNwYW4oY2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBjbG9zZSB0byB0aGUgb3V0cHV0IHN0cmVhbSAoaWYgbmVlZGVkKVxuICAgKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbiAgY2xvc2VOb2RlKG5vZGUpIHtcbiAgICBpZiAoIWVtaXRzV3JhcHBpbmdUYWdzKG5vZGUpKSByZXR1cm47XG5cbiAgICB0aGlzLmJ1ZmZlciArPSBTUEFOX0NMT1NFO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgdGhlIGFjY3VtdWxhdGVkIGJ1ZmZlclxuICAqL1xuICB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gIH1cblxuICAvLyBoZWxwZXJzXG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHNwYW4gZWxlbWVudFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lICovXG4gIHNwYW4oY2xhc3NOYW1lKSB7XG4gICAgdGhpcy5idWZmZXIgKz0gYDxzcGFuIGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+YDtcbiAgfVxufVxuXG4vKiogQHR5cGVkZWYge3tzY29wZT86IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcsIGNoaWxkcmVuOiBOb2RlW119IHwgc3RyaW5nfSBOb2RlICovXG4vKiogQHR5cGVkZWYge3tzY29wZT86IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcsIGNoaWxkcmVuOiBOb2RlW119IH0gRGF0YU5vZGUgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5FbWl0dGVyfSBFbWl0dGVyICovXG4vKiogICovXG5cbi8qKiBAcmV0dXJucyB7RGF0YU5vZGV9ICovXG5jb25zdCBuZXdOb2RlID0gKG9wdHMgPSB7fSkgPT4ge1xuICAvKiogQHR5cGUgRGF0YU5vZGUgKi9cbiAgY29uc3QgcmVzdWx0ID0geyBjaGlsZHJlbjogW10gfTtcbiAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIG9wdHMpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY2xhc3MgVG9rZW5UcmVlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqIEB0eXBlIERhdGFOb2RlICovXG4gICAgdGhpcy5yb290Tm9kZSA9IG5ld05vZGUoKTtcbiAgICB0aGlzLnN0YWNrID0gW3RoaXMucm9vdE5vZGVdO1xuICB9XG5cbiAgZ2V0IHRvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgZ2V0IHJvb3QoKSB7IHJldHVybiB0aGlzLnJvb3ROb2RlOyB9XG5cbiAgLyoqIEBwYXJhbSB7Tm9kZX0gbm9kZSAqL1xuICBhZGQobm9kZSkge1xuICAgIHRoaXMudG9wLmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gIH1cblxuICAvKiogQHBhcmFtIHtzdHJpbmd9IHNjb3BlICovXG4gIG9wZW5Ob2RlKHNjb3BlKSB7XG4gICAgLyoqIEB0eXBlIE5vZGUgKi9cbiAgICBjb25zdCBub2RlID0gbmV3Tm9kZSh7IHNjb3BlIH0pO1xuICAgIHRoaXMuYWRkKG5vZGUpO1xuICAgIHRoaXMuc3RhY2sucHVzaChub2RlKTtcbiAgfVxuXG4gIGNsb3NlTm9kZSgpIHtcbiAgICBpZiAodGhpcy5zdGFjay5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGFjay5wb3AoKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjbG9zZUFsbE5vZGVzKCkge1xuICAgIHdoaWxlICh0aGlzLmNsb3NlTm9kZSgpKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5yb290Tm9kZSwgbnVsbCwgNCk7XG4gIH1cblxuICAvKipcbiAgICogQHR5cGVkZWYgeyBpbXBvcnQoXCIuL2h0bWxfcmVuZGVyZXJcIikuUmVuZGVyZXIgfSBSZW5kZXJlclxuICAgKiBAcGFyYW0ge1JlbmRlcmVyfSBidWlsZGVyXG4gICAqL1xuICB3YWxrKGJ1aWxkZXIpIHtcbiAgICAvLyB0aGlzIGRvZXMgbm90XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuX3dhbGsoYnVpbGRlciwgdGhpcy5yb290Tm9kZSk7XG4gICAgLy8gdGhpcyB3b3Jrc1xuICAgIC8vIHJldHVybiBUb2tlblRyZWUuX3dhbGsoYnVpbGRlciwgdGhpcy5yb290Tm9kZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZW5kZXJlcn0gYnVpbGRlclxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICovXG4gIHN0YXRpYyBfd2FsayhidWlsZGVyLCBub2RlKSB7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBidWlsZGVyLmFkZFRleHQobm9kZSk7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBidWlsZGVyLm9wZW5Ob2RlKG5vZGUpO1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gdGhpcy5fd2FsayhidWlsZGVyLCBjaGlsZCkpO1xuICAgICAgYnVpbGRlci5jbG9zZU5vZGUobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKi9cbiAgc3RhdGljIF9jb2xsYXBzZShub2RlKSB7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSBcInN0cmluZ1wiKSByZXR1cm47XG4gICAgaWYgKCFub2RlLmNoaWxkcmVuKSByZXR1cm47XG5cbiAgICBpZiAobm9kZS5jaGlsZHJlbi5ldmVyeShlbCA9PiB0eXBlb2YgZWwgPT09IFwic3RyaW5nXCIpKSB7XG4gICAgICAvLyBub2RlLnRleHQgPSBub2RlLmNoaWxkcmVuLmpvaW4oXCJcIik7XG4gICAgICAvLyBkZWxldGUgbm9kZS5jaGlsZHJlbjtcbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBbbm9kZS5jaGlsZHJlbi5qb2luKFwiXCIpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICBUb2tlblRyZWUuX2NvbGxhcHNlKGNoaWxkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAgQ3VycmVudGx5IHRoaXMgaXMgYWxsIHByaXZhdGUgQVBJLCBidXQgdGhpcyBpcyB0aGUgbWluaW1hbCBBUEkgbmVjZXNzYXJ5XG4gIHRoYXQgYW4gRW1pdHRlciBtdXN0IGltcGxlbWVudCB0byBmdWxseSBzdXBwb3J0IHRoZSBwYXJzZXIuXG5cbiAgTWluaW1hbCBpbnRlcmZhY2U6XG5cbiAgLSBhZGRUZXh0KHRleHQpXG4gIC0gX19hZGRTdWJsYW5ndWFnZShlbWl0dGVyLCBzdWJMYW5ndWFnZU5hbWUpXG4gIC0gc3RhcnRTY29wZShzY29wZSlcbiAgLSBlbmRTY29wZSgpXG4gIC0gZmluYWxpemUoKVxuICAtIHRvSFRNTCgpXG5cbiovXG5cbi8qKlxuICogQGltcGxlbWVudHMge0VtaXR0ZXJ9XG4gKi9cbmNsYXNzIFRva2VuVHJlZUVtaXR0ZXIgZXh0ZW5kcyBUb2tlblRyZWUge1xuICAvKipcbiAgICogQHBhcmFtIHsqfSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gICAqL1xuICBhZGRUZXh0KHRleHQpIHtcbiAgICBpZiAodGV4dCA9PT0gXCJcIikgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYWRkKHRleHQpO1xuICB9XG5cbiAgLyoqIEBwYXJhbSB7c3RyaW5nfSBzY29wZSAqL1xuICBzdGFydFNjb3BlKHNjb3BlKSB7XG4gICAgdGhpcy5vcGVuTm9kZShzY29wZSk7XG4gIH1cblxuICBlbmRTY29wZSgpIHtcbiAgICB0aGlzLmNsb3NlTm9kZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RW1pdHRlciAmIHtyb290OiBEYXRhTm9kZX19IGVtaXR0ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICovXG4gIF9fYWRkU3VibGFuZ3VhZ2UoZW1pdHRlciwgbmFtZSkge1xuICAgIC8qKiBAdHlwZSBEYXRhTm9kZSAqL1xuICAgIGNvbnN0IG5vZGUgPSBlbWl0dGVyLnJvb3Q7XG4gICAgaWYgKG5hbWUpIG5vZGUuc2NvcGUgPSBgbGFuZ3VhZ2U6JHtuYW1lfWA7XG5cbiAgICB0aGlzLmFkZChub2RlKTtcbiAgfVxuXG4gIHRvSFRNTCgpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IG5ldyBIVE1MUmVuZGVyZXIodGhpcywgdGhpcy5vcHRpb25zKTtcbiAgICByZXR1cm4gcmVuZGVyZXIudmFsdWUoKTtcbiAgfVxuXG4gIGZpbmFsaXplKCkge1xuICAgIHRoaXMuY2xvc2VBbGxOb2RlcygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICogKi9cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzb3VyY2UocmUpIHtcbiAgaWYgKCFyZSkgcmV0dXJuIG51bGw7XG4gIGlmICh0eXBlb2YgcmUgPT09IFwic3RyaW5nXCIpIHJldHVybiByZTtcblxuICByZXR1cm4gcmUuc291cmNlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVnRXhwIHwgc3RyaW5nIH0gcmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGxvb2thaGVhZChyZSkge1xuICByZXR1cm4gY29uY2F0KCcoPz0nLCByZSwgJyknKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBhbnlOdW1iZXJPZlRpbWVzKHJlKSB7XG4gIHJldHVybiBjb25jYXQoJyg/OicsIHJlLCAnKSonKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBvcHRpb25hbChyZSkge1xuICByZXR1cm4gY29uY2F0KCcoPzonLCByZSwgJyk/Jyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHsuLi4oUmVnRXhwIHwgc3RyaW5nKSB9IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNvbmNhdCguLi5hcmdzKSB7XG4gIGNvbnN0IGpvaW5lZCA9IGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJcIik7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHsgQXJyYXk8c3RyaW5nIHwgUmVnRXhwIHwgT2JqZWN0PiB9IGFyZ3NcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpIHtcbiAgY29uc3Qgb3B0cyA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcblxuICBpZiAodHlwZW9mIG9wdHMgPT09ICdvYmplY3QnICYmIG9wdHMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgIGFyZ3Muc3BsaWNlKGFyZ3MubGVuZ3RoIC0gMSwgMSk7XG4gICAgcmV0dXJuIG9wdHM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbi8qKiBAdHlwZWRlZiB7IHtjYXB0dXJlPzogYm9vbGVhbn0gfSBSZWdleEVpdGhlck9wdGlvbnMgKi9cblxuLyoqXG4gKiBBbnkgb2YgdGhlIHBhc3NlZCBleHByZXNzc2lvbnMgbWF5IG1hdGNoXG4gKlxuICogQ3JlYXRlcyBhIGh1Z2UgdGhpcyB8IHRoaXMgfCB0aGF0IHwgdGhhdCBtYXRjaFxuICogQHBhcmFtIHsoUmVnRXhwIHwgc3RyaW5nKVtdIHwgWy4uLihSZWdFeHAgfCBzdHJpbmcpW10sIFJlZ2V4RWl0aGVyT3B0aW9uc119IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVpdGhlciguLi5hcmdzKSB7XG4gIC8qKiBAdHlwZSB7IG9iamVjdCAmIHtjYXB0dXJlPzogYm9vbGVhbn0gfSAgKi9cbiAgY29uc3Qgb3B0cyA9IHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpO1xuICBjb25zdCBqb2luZWQgPSAnKCdcbiAgICArIChvcHRzLmNhcHR1cmUgPyBcIlwiIDogXCI/OlwiKVxuICAgICsgYXJncy5tYXAoKHgpID0+IHNvdXJjZSh4KSkuam9pbihcInxcIikgKyBcIilcIjtcbiAgcmV0dXJuIGpvaW5lZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZ30gcmVcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGNvdW50TWF0Y2hHcm91cHMocmUpIHtcbiAgcmV0dXJuIChuZXcgUmVnRXhwKHJlLnRvU3RyaW5nKCkgKyAnfCcpKS5leGVjKCcnKS5sZW5ndGggLSAxO1xufVxuXG4vKipcbiAqIERvZXMgbGV4ZW1lIHN0YXJ0IHdpdGggYSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2ggYXQgdGhlIGJlZ2lubmluZ1xuICogQHBhcmFtIHtSZWdFeHB9IHJlXG4gKiBAcGFyYW0ge3N0cmluZ30gbGV4ZW1lXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0c1dpdGgocmUsIGxleGVtZSkge1xuICBjb25zdCBtYXRjaCA9IHJlICYmIHJlLmV4ZWMobGV4ZW1lKTtcbiAgcmV0dXJuIG1hdGNoICYmIG1hdGNoLmluZGV4ID09PSAwO1xufVxuXG4vLyBCQUNLUkVGX1JFIG1hdGNoZXMgYW4gb3BlbiBwYXJlbnRoZXNpcyBvciBiYWNrcmVmZXJlbmNlLiBUbyBhdm9pZFxuLy8gYW4gaW5jb3JyZWN0IHBhcnNlLCBpdCBhZGRpdGlvbmFsbHkgbWF0Y2hlcyB0aGUgZm9sbG93aW5nOlxuLy8gLSBbLi4uXSBlbGVtZW50cywgd2hlcmUgdGhlIG1lYW5pbmcgb2YgcGFyZW50aGVzZXMgYW5kIGVzY2FwZXMgY2hhbmdlXG4vLyAtIG90aGVyIGVzY2FwZSBzZXF1ZW5jZXMsIHNvIHdlIGRvIG5vdCBtaXNwYXJzZSBlc2NhcGUgc2VxdWVuY2VzIGFzXG4vLyAgIGludGVyZXN0aW5nIGVsZW1lbnRzXG4vLyAtIG5vbi1tYXRjaGluZyBvciBsb29rYWhlYWQgcGFyZW50aGVzZXMsIHdoaWNoIGRvIG5vdCBjYXB0dXJlLiBUaGVzZVxuLy8gICBmb2xsb3cgdGhlICcoJyB3aXRoIGEgJz8nLlxuY29uc3QgQkFDS1JFRl9SRSA9IC9cXFsoPzpbXlxcXFxcXF1dfFxcXFwuKSpcXF18XFwoXFw/P3xcXFxcKFsxLTldWzAtOV0qKXxcXFxcLi87XG5cbi8vICoqSU5URVJOQUwqKiBOb3QgaW50ZW5kZWQgZm9yIG91dHNpZGUgdXNhZ2Vcbi8vIGpvaW4gbG9naWNhbGx5IGNvbXB1dGVzIHJlZ2V4cHMuam9pbihzZXBhcmF0b3IpLCBidXQgZml4ZXMgdGhlXG4vLyBiYWNrcmVmZXJlbmNlcyBzbyB0aGV5IGNvbnRpbnVlIHRvIG1hdGNoLlxuLy8gaXQgYWxzbyBwbGFjZXMgZWFjaCBpbmRpdmlkdWFsIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbnRvIGl0J3Mgb3duXG4vLyBtYXRjaCBncm91cCwga2VlcGluZyB0cmFjayBvZiB0aGUgc2VxdWVuY2luZyBvZiB0aG9zZSBtYXRjaCBncm91cHNcbi8vIGlzIGN1cnJlbnRseSBhbiBleGVyY2lzZSBmb3IgdGhlIGNhbGxlci4gOi0pXG4vKipcbiAqIEBwYXJhbSB7KHN0cmluZyB8IFJlZ0V4cClbXX0gcmVnZXhwc1xuICogQHBhcmFtIHt7am9pbldpdGg6IHN0cmluZ319IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIF9yZXdyaXRlQmFja3JlZmVyZW5jZXMocmVnZXhwcywgeyBqb2luV2l0aCB9KSB7XG4gIGxldCBudW1DYXB0dXJlcyA9IDA7XG5cbiAgcmV0dXJuIHJlZ2V4cHMubWFwKChyZWdleCkgPT4ge1xuICAgIG51bUNhcHR1cmVzICs9IDE7XG4gICAgY29uc3Qgb2Zmc2V0ID0gbnVtQ2FwdHVyZXM7XG4gICAgbGV0IHJlID0gc291cmNlKHJlZ2V4KTtcbiAgICBsZXQgb3V0ID0gJyc7XG5cbiAgICB3aGlsZSAocmUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBCQUNLUkVGX1JFLmV4ZWMocmUpO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICBvdXQgKz0gcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgb3V0ICs9IHJlLnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCk7XG4gICAgICByZSA9IHJlLnN1YnN0cmluZyhtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICBpZiAobWF0Y2hbMF1bMF0gPT09ICdcXFxcJyAmJiBtYXRjaFsxXSkge1xuICAgICAgICAvLyBBZGp1c3QgdGhlIGJhY2tyZWZlcmVuY2UuXG4gICAgICAgIG91dCArPSAnXFxcXCcgKyBTdHJpbmcoTnVtYmVyKG1hdGNoWzFdKSArIG9mZnNldCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gbWF0Y2hbMF07XG4gICAgICAgIGlmIChtYXRjaFswXSA9PT0gJygnKSB7XG4gICAgICAgICAgbnVtQ2FwdHVyZXMrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9KS5tYXAocmUgPT4gYCgke3JlfSlgKS5qb2luKGpvaW5XaXRoKTtcbn1cblxuLyoqIEB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLk1vZGV9IE1vZGUgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Nb2RlQ2FsbGJhY2t9IE1vZGVDYWxsYmFjayAqL1xuXG4vLyBDb21tb24gcmVnZXhwc1xuY29uc3QgTUFUQ0hfTk9USElOR19SRSA9IC9cXGJcXEIvO1xuY29uc3QgSURFTlRfUkUgPSAnW2EtekEtWl1cXFxcdyonO1xuY29uc3QgVU5ERVJTQ09SRV9JREVOVF9SRSA9ICdbYS16QS1aX11cXFxcdyonO1xuY29uc3QgTlVNQkVSX1JFID0gJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8nO1xuY29uc3QgQ19OVU1CRVJfUkUgPSAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOV0rfChcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKik/fFxcXFwuXFxcXGQrKShbZUVdWy0rXT9cXFxcZCspPyknOyAvLyAweC4uLiwgMC4uLiwgZGVjaW1hbCwgZmxvYXRcbmNvbnN0IEJJTkFSWV9OVU1CRVJfUkUgPSAnXFxcXGIoMGJbMDFdKyknOyAvLyAwYi4uLlxuY29uc3QgUkVfU1RBUlRFUlNfUkUgPSAnIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcXFwqfFxcXFwqPXxcXFxcK3xcXFxcKz18LHwtfC09fC89fC98Onw7fDw8fDw8PXw8PXw8fD09PXw9PXw9fD4+Pj18Pj49fD49fD4+Pnw+Pnw+fFxcXFw/fFxcXFxbfFxcXFx7fFxcXFwofFxcXFxefFxcXFxePXxcXFxcfHxcXFxcfD18XFxcXHxcXFxcfHx+JztcblxuLyoqXG4qIEBwYXJhbSB7IFBhcnRpYWw8TW9kZT4gJiB7YmluYXJ5Pzogc3RyaW5nIHwgUmVnRXhwfSB9IG9wdHNcbiovXG5jb25zdCBTSEVCQU5HID0gKG9wdHMgPSB7fSkgPT4ge1xuICBjb25zdCBiZWdpblNoZWJhbmcgPSAvXiMhWyBdKlxcLy87XG4gIGlmIChvcHRzLmJpbmFyeSkge1xuICAgIG9wdHMuYmVnaW4gPSBjb25jYXQoXG4gICAgICBiZWdpblNoZWJhbmcsXG4gICAgICAvLipcXGIvLFxuICAgICAgb3B0cy5iaW5hcnksXG4gICAgICAvXFxiLiovKTtcbiAgfVxuICByZXR1cm4gaW5oZXJpdCQxKHtcbiAgICBzY29wZTogJ21ldGEnLFxuICAgIGJlZ2luOiBiZWdpblNoZWJhbmcsXG4gICAgZW5kOiAvJC8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIC8qKiBAdHlwZSB7TW9kZUNhbGxiYWNrfSAqL1xuICAgIFwib246YmVnaW5cIjogKG0sIHJlc3ApID0+IHtcbiAgICAgIGlmIChtLmluZGV4ICE9PSAwKSByZXNwLmlnbm9yZU1hdGNoKCk7XG4gICAgfVxuICB9LCBvcHRzKTtcbn07XG5cbi8vIENvbW1vbiBtb2Rlc1xuY29uc3QgQkFDS1NMQVNIX0VTQ0FQRSA9IHtcbiAgYmVnaW46ICdcXFxcXFxcXFtcXFxcc1xcXFxTXScsIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IEFQT1NfU1RSSU5HX01PREUgPSB7XG4gIHNjb3BlOiAnc3RyaW5nJyxcbiAgYmVnaW46ICdcXCcnLFxuICBlbmQ6ICdcXCcnLFxuICBpbGxlZ2FsOiAnXFxcXG4nLFxuICBjb250YWluczogW0JBQ0tTTEFTSF9FU0NBUEVdXG59O1xuY29uc3QgUVVPVEVfU1RSSU5HX01PREUgPSB7XG4gIHNjb3BlOiAnc3RyaW5nJyxcbiAgYmVnaW46ICdcIicsXG4gIGVuZDogJ1wiJyxcbiAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgY29udGFpbnM6IFtCQUNLU0xBU0hfRVNDQVBFXVxufTtcbmNvbnN0IFBIUkFTQUxfV09SRFNfTU9ERSA9IHtcbiAgYmVnaW46IC9cXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlvdXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxcYi9cbn07XG4vKipcbiAqIENyZWF0ZXMgYSBjb21tZW50IG1vZGVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IFJlZ0V4cH0gYmVnaW5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgUmVnRXhwfSBlbmRcbiAqIEBwYXJhbSB7TW9kZSB8IHt9fSBbbW9kZU9wdGlvbnNdXG4gKiBAcmV0dXJucyB7UGFydGlhbDxNb2RlPn1cbiAqL1xuY29uc3QgQ09NTUVOVCA9IGZ1bmN0aW9uKGJlZ2luLCBlbmQsIG1vZGVPcHRpb25zID0ge30pIHtcbiAgY29uc3QgbW9kZSA9IGluaGVyaXQkMShcbiAgICB7XG4gICAgICBzY29wZTogJ2NvbW1lbnQnLFxuICAgICAgYmVnaW4sXG4gICAgICBlbmQsXG4gICAgICBjb250YWluczogW11cbiAgICB9LFxuICAgIG1vZGVPcHRpb25zXG4gICk7XG4gIG1vZGUuY29udGFpbnMucHVzaCh7XG4gICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgIC8vIGhhY2sgdG8gYXZvaWQgdGhlIHNwYWNlIGZyb20gYmVpbmcgaW5jbHVkZWQuIHRoZSBzcGFjZSBpcyBuZWNlc3NhcnkgdG9cbiAgICAvLyBtYXRjaCBoZXJlIHRvIHByZXZlbnQgdGhlIHBsYWluIHRleHQgcnVsZSBiZWxvdyBmcm9tIGdvYmJsaW5nIHVwIGRvY3RhZ3NcbiAgICBiZWdpbjogJ1sgXSooPz0oVE9ET3xGSVhNRXxOT1RFfEJVR3xPUFRJTUlaRXxIQUNLfFhYWCk6KScsXG4gICAgZW5kOiAvKFRPRE98RklYTUV8Tk9URXxCVUd8T1BUSU1JWkV8SEFDS3xYWFgpOi8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9KTtcbiAgY29uc3QgRU5HTElTSF9XT1JEID0gZWl0aGVyKFxuICAgIC8vIGxpc3Qgb2YgY29tbW9uIDEgYW5kIDIgbGV0dGVyIHdvcmRzIGluIEVuZ2xpc2hcbiAgICBcIklcIixcbiAgICBcImFcIixcbiAgICBcImlzXCIsXG4gICAgXCJzb1wiLFxuICAgIFwidXNcIixcbiAgICBcInRvXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiaWZcIixcbiAgICBcImluXCIsXG4gICAgXCJpdFwiLFxuICAgIFwib25cIixcbiAgICAvLyBub3RlOiB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3Qgb2YgY29udHJhY3Rpb25zLCBqdXN0IHBvcHVsYXIgb25lc1xuICAgIC9bQS1aYS16XStbJ10oZHx2ZXxyZXxsbHx0fHN8bikvLCAvLyBjb250cmFjdGlvbnMgLSBjYW4ndCB3ZSdkIHRoZXkncmUgbGV0J3MsIGV0Y1xuICAgIC9bQS1aYS16XStbLV1bYS16XSsvLCAvLyBgbm8td2F5YCwgZXRjLlxuICAgIC9bQS1aYS16XVthLXpdezIsfS8gLy8gYWxsb3cgY2FwaXRhbGl6ZWQgd29yZHMgYXQgYmVnaW5uaW5nIG9mIHNlbnRlbmNlc1xuICApO1xuICAvLyBsb29raW5nIGxpa2UgcGxhaW4gdGV4dCwgbW9yZSBsaWtlbHkgdG8gYmUgYSBjb21tZW50XG4gIG1vZGUuY29udGFpbnMucHVzaChcbiAgICB7XG4gICAgICAvLyBUT0RPOiBob3cgdG8gaW5jbHVkZSBcIiwgKCwgKSB3aXRob3V0IGJyZWFraW5nIGdyYW1tYXJzIHRoYXQgdXNlIHRoZXNlIGZvclxuICAgICAgLy8gY29tbWVudCBkZWxpbWl0ZXJzP1xuICAgICAgLy8gYmVnaW46IC9bIF0rKFsoKVwiXT8oW0EtWmEteictXXszLH18aXN8YXxJfHNvfHVzfFt0VF1bb09dfGF0fGlmfGlufGl0fG9uKVsuXT9bKClcIjpdPyhbLl1bIF18WyBdfFxcKSkpezN9L1xuICAgICAgLy8gLS0tXG5cbiAgICAgIC8vIHRoaXMgdHJpZXMgdG8gZmluZCBzZXF1ZW5jZXMgb2YgMyBlbmdsaXNoIHdvcmRzIGluIGEgcm93ICh3aXRob3V0IGFueVxuICAgICAgLy8gXCJwcm9ncmFtbWluZ1wiIHR5cGUgc3ludGF4KSB0aGlzIGdpdmVzIHVzIGEgc3Ryb25nIHNpZ25hbCB0aGF0IHdlJ3ZlXG4gICAgICAvLyBUUlVMWSBmb3VuZCBhIGNvbW1lbnQgLSB2cyBwZXJoYXBzIHNjYW5uaW5nIHdpdGggdGhlIHdyb25nIGxhbmd1YWdlLlxuICAgICAgLy8gSXQncyBwb3NzaWJsZSB0byBmaW5kIHNvbWV0aGluZyB0aGF0IExPT0tTIGxpa2UgdGhlIHN0YXJ0IG9mIHRoZVxuICAgICAgLy8gY29tbWVudCAtIGJ1dCB0aGVuIGlmIHRoZXJlIGlzIG5vIHJlYWRhYmxlIHRleHQgLSBnb29kIGNoYW5jZSBpdCBpcyBhXG4gICAgICAvLyBmYWxzZSBtYXRjaCBhbmQgbm90IGEgY29tbWVudC5cbiAgICAgIC8vXG4gICAgICAvLyBmb3IgYSB2aXN1YWwgZXhhbXBsZSBwbGVhc2Ugc2VlOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjgyN1xuXG4gICAgICBiZWdpbjogY29uY2F0KFxuICAgICAgICAvWyBdKy8sIC8vIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHVzIGdvYmJsaW5nIHVwIGRvY3RhZ3MgbGlrZSAvKiBAYXV0aG9yIEJvYiBNY2dpbGwgKi9cbiAgICAgICAgJygnLFxuICAgICAgICBFTkdMSVNIX1dPUkQsXG4gICAgICAgIC9bLl0/WzpdPyhbLl1bIF18WyBdKS8sXG4gICAgICAgICcpezN9JykgLy8gbG9vayBmb3IgMyB3b3JkcyBpbiBhIHJvd1xuICAgIH1cbiAgKTtcbiAgcmV0dXJuIG1vZGU7XG59O1xuY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IENPTU1FTlQoJy8vJywgJyQnKTtcbmNvbnN0IENfQkxPQ0tfQ09NTUVOVF9NT0RFID0gQ09NTUVOVCgnL1xcXFwqJywgJ1xcXFwqLycpO1xuY29uc3QgSEFTSF9DT01NRU5UX01PREUgPSBDT01NRU5UKCcjJywgJyQnKTtcbmNvbnN0IE5VTUJFUl9NT0RFID0ge1xuICBzY29wZTogJ251bWJlcicsXG4gIGJlZ2luOiBOVU1CRVJfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IENfTlVNQkVSX01PREUgPSB7XG4gIHNjb3BlOiAnbnVtYmVyJyxcbiAgYmVnaW46IENfTlVNQkVSX1JFLFxuICByZWxldmFuY2U6IDBcbn07XG5jb25zdCBCSU5BUllfTlVNQkVSX01PREUgPSB7XG4gIHNjb3BlOiAnbnVtYmVyJyxcbiAgYmVnaW46IEJJTkFSWV9OVU1CRVJfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IFJFR0VYUF9NT0RFID0ge1xuICBzY29wZTogXCJyZWdleHBcIixcbiAgYmVnaW46IC9cXC8oPz1bXi9cXG5dKlxcLykvLFxuICBlbmQ6IC9cXC9bZ2ltdXldKi8sXG4gIGNvbnRhaW5zOiBbXG4gICAgQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICB7XG4gICAgICBiZWdpbjogL1xcWy8sXG4gICAgICBlbmQ6IC9cXF0vLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgY29udGFpbnM6IFtCQUNLU0xBU0hfRVNDQVBFXVxuICAgIH1cbiAgXVxufTtcbmNvbnN0IFRJVExFX01PREUgPSB7XG4gIHNjb3BlOiAndGl0bGUnLFxuICBiZWdpbjogSURFTlRfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IFVOREVSU0NPUkVfVElUTEVfTU9ERSA9IHtcbiAgc2NvcGU6ICd0aXRsZScsXG4gIGJlZ2luOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICByZWxldmFuY2U6IDBcbn07XG5jb25zdCBNRVRIT0RfR1VBUkQgPSB7XG4gIC8vIGV4Y2x1ZGVzIG1ldGhvZCBuYW1lcyBmcm9tIGtleXdvcmQgcHJvY2Vzc2luZ1xuICBiZWdpbjogJ1xcXFwuXFxcXHMqJyArIFVOREVSU0NPUkVfSURFTlRfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcblxuLyoqXG4gKiBBZGRzIGVuZCBzYW1lIGFzIGJlZ2luIG1lY2hhbmljcyB0byBhIG1vZGVcbiAqXG4gKiBZb3VyIG1vZGUgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IGEgc2luZ2xlICgpIG1hdGNoIGdyb3VwIGFzIHRoYXQgZmlyc3QgbWF0Y2hcbiAqIGdyb3VwIGlzIHdoYXQgaXMgdXNlZCBmb3IgY29tcGFyaXNvblxuICogQHBhcmFtIHtQYXJ0aWFsPE1vZGU+fSBtb2RlXG4gKi9cbmNvbnN0IEVORF9TQU1FX0FTX0JFR0lOID0gZnVuY3Rpb24obW9kZSkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihtb2RlLFxuICAgIHtcbiAgICAgIC8qKiBAdHlwZSB7TW9kZUNhbGxiYWNrfSAqL1xuICAgICAgJ29uOmJlZ2luJzogKG0sIHJlc3ApID0+IHsgcmVzcC5kYXRhLl9iZWdpbk1hdGNoID0gbVsxXTsgfSxcbiAgICAgIC8qKiBAdHlwZSB7TW9kZUNhbGxiYWNrfSAqL1xuICAgICAgJ29uOmVuZCc6IChtLCByZXNwKSA9PiB7IGlmIChyZXNwLmRhdGEuX2JlZ2luTWF0Y2ggIT09IG1bMV0pIHJlc3AuaWdub3JlTWF0Y2goKTsgfVxuICAgIH0pO1xufTtcblxudmFyIE1PREVTID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIEFQT1NfU1RSSU5HX01PREU6IEFQT1NfU1RSSU5HX01PREUsXG4gIEJBQ0tTTEFTSF9FU0NBUEU6IEJBQ0tTTEFTSF9FU0NBUEUsXG4gIEJJTkFSWV9OVU1CRVJfTU9ERTogQklOQVJZX05VTUJFUl9NT0RFLFxuICBCSU5BUllfTlVNQkVSX1JFOiBCSU5BUllfTlVNQkVSX1JFLFxuICBDT01NRU5UOiBDT01NRU5ULFxuICBDX0JMT0NLX0NPTU1FTlRfTU9ERTogQ19CTE9DS19DT01NRU5UX01PREUsXG4gIENfTElORV9DT01NRU5UX01PREU6IENfTElORV9DT01NRU5UX01PREUsXG4gIENfTlVNQkVSX01PREU6IENfTlVNQkVSX01PREUsXG4gIENfTlVNQkVSX1JFOiBDX05VTUJFUl9SRSxcbiAgRU5EX1NBTUVfQVNfQkVHSU46IEVORF9TQU1FX0FTX0JFR0lOLFxuICBIQVNIX0NPTU1FTlRfTU9ERTogSEFTSF9DT01NRU5UX01PREUsXG4gIElERU5UX1JFOiBJREVOVF9SRSxcbiAgTUFUQ0hfTk9USElOR19SRTogTUFUQ0hfTk9USElOR19SRSxcbiAgTUVUSE9EX0dVQVJEOiBNRVRIT0RfR1VBUkQsXG4gIE5VTUJFUl9NT0RFOiBOVU1CRVJfTU9ERSxcbiAgTlVNQkVSX1JFOiBOVU1CRVJfUkUsXG4gIFBIUkFTQUxfV09SRFNfTU9ERTogUEhSQVNBTF9XT1JEU19NT0RFLFxuICBRVU9URV9TVFJJTkdfTU9ERTogUVVPVEVfU1RSSU5HX01PREUsXG4gIFJFR0VYUF9NT0RFOiBSRUdFWFBfTU9ERSxcbiAgUkVfU1RBUlRFUlNfUkU6IFJFX1NUQVJURVJTX1JFLFxuICBTSEVCQU5HOiBTSEVCQU5HLFxuICBUSVRMRV9NT0RFOiBUSVRMRV9NT0RFLFxuICBVTkRFUlNDT1JFX0lERU5UX1JFOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICBVTkRFUlNDT1JFX1RJVExFX01PREU6IFVOREVSU0NPUkVfVElUTEVfTU9ERVxufSk7XG5cbi8qKlxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ2FsbGJhY2tSZXNwb25zZX0gQ2FsbGJhY2tSZXNwb25zZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZXJFeHR9IENvbXBpbGVyRXh0XG4qL1xuXG4vLyBHcmFtbWFyIGV4dGVuc2lvbnMgLyBwbHVnaW5zXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI4MzNcblxuLy8gR3JhbW1hciBleHRlbnNpb25zIGFsbG93IFwic3ludGFjdGljIHN1Z2FyXCIgdG8gYmUgYWRkZWQgdG8gdGhlIGdyYW1tYXIgbW9kZXNcbi8vIHdpdGhvdXQgcmVxdWlyaW5nIGFueSB1bmRlcmx5aW5nIGNoYW5nZXMgdG8gdGhlIGNvbXBpbGVyIGludGVybmFscy5cblxuLy8gYGNvbXBpbGVNYXRjaGAgYmVpbmcgdGhlIHBlcmZlY3Qgc21hbGwgZXhhbXBsZSBvZiBub3cgYWxsb3dpbmcgYSBncmFtbWFyXG4vLyBhdXRob3IgdG8gd3JpdGUgYG1hdGNoYCB3aGVuIHRoZXkgZGVzaXJlIHRvIG1hdGNoIGEgc2luZ2xlIGV4cHJlc3Npb24gcmF0aGVyXG4vLyB0aGFuIGJlaW5nIGZvcmNlZCB0byB1c2UgYGJlZ2luYC4gIFRoZSBleHRlbnNpb24gdGhlbiBqdXN0IG1vdmVzIGBtYXRjaGAgaW50b1xuLy8gYGJlZ2luYCB3aGVuIGl0IHJ1bnMuICBJZSwgbm8gZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkLCBidXQgd2UndmUganVzdCBtYWRlXG4vLyB0aGUgZXhwZXJpZW5jZSBvZiB3cml0aW5nIChhbmQgcmVhZGluZyBncmFtbWFycykgYSBsaXR0bGUgYml0IG5pY2VyLlxuXG4vLyAtLS0tLS1cblxuLy8gVE9ETzogV2UgbmVlZCBuZWdhdGl2ZSBsb29rLWJlaGluZCBzdXBwb3J0IHRvIGRvIHRoaXMgcHJvcGVybHlcbi8qKlxuICogU2tpcCBhIG1hdGNoIGlmIGl0IGhhcyBhIHByZWNlZGluZyBkb3RcbiAqXG4gKiBUaGlzIGlzIHVzZWQgZm9yIGBiZWdpbktleXdvcmRzYCB0byBwcmV2ZW50IG1hdGNoaW5nIGV4cHJlc3Npb25zIHN1Y2ggYXNcbiAqIGBib2Iua2V5d29yZC5kbygpYC4gVGhlIG1vZGUgY29tcGlsZXIgYXV0b21hdGljYWxseSB3aXJlcyB0aGlzIHVwIGFzIGFcbiAqIHNwZWNpYWwgX2ludGVybmFsXyAnb246YmVnaW4nIGNhbGxiYWNrIGZvciBtb2RlcyB3aXRoIGBiZWdpbktleXdvcmRzYFxuICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICovXG5mdW5jdGlvbiBza2lwSWZIYXNQcmVjZWRpbmdEb3QobWF0Y2gsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IGJlZm9yZSA9IG1hdGNoLmlucHV0W21hdGNoLmluZGV4IC0gMV07XG4gIGlmIChiZWZvcmUgPT09IFwiLlwiKSB7XG4gICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAdHlwZSB7Q29tcGlsZXJFeHR9XG4gKi9cbmZ1bmN0aW9uIHNjb3BlQ2xhc3NOYW1lKG1vZGUsIF9wYXJlbnQpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICBpZiAobW9kZS5jbGFzc05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIG1vZGUuc2NvcGUgPSBtb2RlLmNsYXNzTmFtZTtcbiAgICBkZWxldGUgbW9kZS5jbGFzc05hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBgYmVnaW5LZXl3b3Jkc2Agc3ludGFjdGljIHN1Z2FyXG4gKiBAdHlwZSB7Q29tcGlsZXJFeHR9XG4gKi9cbmZ1bmN0aW9uIGJlZ2luS2V5d29yZHMobW9kZSwgcGFyZW50KSB7XG4gIGlmICghcGFyZW50KSByZXR1cm47XG4gIGlmICghbW9kZS5iZWdpbktleXdvcmRzKSByZXR1cm47XG5cbiAgLy8gZm9yIGxhbmd1YWdlcyB3aXRoIGtleXdvcmRzIHRoYXQgaW5jbHVkZSBub24td29yZCBjaGFyYWN0ZXJzIGNoZWNraW5nIGZvclxuICAvLyBhIHdvcmQgYm91bmRhcnkgaXMgbm90IHN1ZmZpY2llbnQsIHNvIGluc3RlYWQgd2UgY2hlY2sgZm9yIGEgd29yZCBib3VuZGFyeVxuICAvLyBvciB3aGl0ZXNwYWNlIC0gdGhpcyBkb2VzIG5vIGhhcm0gaW4gYW55IGNhc2Ugc2luY2Ugb3VyIGtleXdvcmQgZW5naW5lXG4gIC8vIGRvZXNuJ3QgYWxsb3cgc3BhY2VzIGluIGtleXdvcmRzIGFueXdheXMgYW5kIHdlIHN0aWxsIGNoZWNrIGZvciB0aGUgYm91bmRhcnlcbiAgLy8gZmlyc3RcbiAgbW9kZS5iZWdpbiA9ICdcXFxcYignICsgbW9kZS5iZWdpbktleXdvcmRzLnNwbGl0KCcgJykuam9pbignfCcpICsgJykoPyFcXFxcLikoPz1cXFxcYnxcXFxccyknO1xuICBtb2RlLl9fYmVmb3JlQmVnaW4gPSBza2lwSWZIYXNQcmVjZWRpbmdEb3Q7XG4gIG1vZGUua2V5d29yZHMgPSBtb2RlLmtleXdvcmRzIHx8IG1vZGUuYmVnaW5LZXl3b3JkcztcbiAgZGVsZXRlIG1vZGUuYmVnaW5LZXl3b3JkcztcblxuICAvLyBwcmV2ZW50cyBkb3VibGUgcmVsZXZhbmNlLCB0aGUga2V5d29yZHMgdGhlbXNlbHZlcyBwcm92aWRlXG4gIC8vIHJlbGV2YW5jZSwgdGhlIG1vZGUgZG9lc24ndCBuZWVkIHRvIGRvdWJsZSBpdFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZpbmVkXG4gIGlmIChtb2RlLnJlbGV2YW5jZSA9PT0gdW5kZWZpbmVkKSBtb2RlLnJlbGV2YW5jZSA9IDA7XG59XG5cbi8qKlxuICogQWxsb3cgYGlsbGVnYWxgIHRvIGNvbnRhaW4gYW4gYXJyYXkgb2YgaWxsZWdhbCB2YWx1ZXNcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gY29tcGlsZUlsbGVnYWwobW9kZSwgX3BhcmVudCkge1xuICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZS5pbGxlZ2FsKSkgcmV0dXJuO1xuXG4gIG1vZGUuaWxsZWdhbCA9IGVpdGhlciguLi5tb2RlLmlsbGVnYWwpO1xufVxuXG4vKipcbiAqIGBtYXRjaGAgdG8gbWF0Y2ggYSBzaW5nbGUgZXhwcmVzc2lvbiBmb3IgcmVhZGFiaWxpdHlcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gY29tcGlsZU1hdGNoKG1vZGUsIF9wYXJlbnQpIHtcbiAgaWYgKCFtb2RlLm1hdGNoKSByZXR1cm47XG4gIGlmIChtb2RlLmJlZ2luIHx8IG1vZGUuZW5kKSB0aHJvdyBuZXcgRXJyb3IoXCJiZWdpbiAmIGVuZCBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIG1hdGNoXCIpO1xuXG4gIG1vZGUuYmVnaW4gPSBtb2RlLm1hdGNoO1xuICBkZWxldGUgbW9kZS5tYXRjaDtcbn1cblxuLyoqXG4gKiBwcm92aWRlcyB0aGUgZGVmYXVsdCAxIHJlbGV2YW5jZSB0byBhbGwgbW9kZXNcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gY29tcGlsZVJlbGV2YW5jZShtb2RlLCBfcGFyZW50KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcbiAgaWYgKG1vZGUucmVsZXZhbmNlID09PSB1bmRlZmluZWQpIG1vZGUucmVsZXZhbmNlID0gMTtcbn1cblxuLy8gYWxsb3cgYmVmb3JlTWF0Y2ggdG8gYWN0IGFzIGEgXCJxdWFsaWZpZXJcIiBmb3IgdGhlIG1hdGNoXG4vLyB0aGUgZnVsbCBtYXRjaCBiZWdpbiBtdXN0IGJlIFtiZWZvcmVNYXRjaF1bYmVnaW5dXG5jb25zdCBiZWZvcmVNYXRjaEV4dCA9IChtb2RlLCBwYXJlbnQpID0+IHtcbiAgaWYgKCFtb2RlLmJlZm9yZU1hdGNoKSByZXR1cm47XG4gIC8vIHN0YXJ0cyBjb25mbGljdHMgd2l0aCBlbmRzUGFyZW50IHdoaWNoIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjaGlsZFxuICAvLyBydWxlIGlzIG5vdCBtYXRjaGVkIG11bHRpcGxlIHRpbWVzXG4gIGlmIChtb2RlLnN0YXJ0cykgdGhyb3cgbmV3IEVycm9yKFwiYmVmb3JlTWF0Y2ggY2Fubm90IGJlIHVzZWQgd2l0aCBzdGFydHNcIik7XG5cbiAgY29uc3Qgb3JpZ2luYWxNb2RlID0gT2JqZWN0LmFzc2lnbih7fSwgbW9kZSk7XG4gIE9iamVjdC5rZXlzKG1vZGUpLmZvckVhY2goKGtleSkgPT4geyBkZWxldGUgbW9kZVtrZXldOyB9KTtcblxuICBtb2RlLmtleXdvcmRzID0gb3JpZ2luYWxNb2RlLmtleXdvcmRzO1xuICBtb2RlLmJlZ2luID0gY29uY2F0KG9yaWdpbmFsTW9kZS5iZWZvcmVNYXRjaCwgbG9va2FoZWFkKG9yaWdpbmFsTW9kZS5iZWdpbikpO1xuICBtb2RlLnN0YXJ0cyA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE9iamVjdC5hc3NpZ24ob3JpZ2luYWxNb2RlLCB7IGVuZHNQYXJlbnQ6IHRydWUgfSlcbiAgICBdXG4gIH07XG4gIG1vZGUucmVsZXZhbmNlID0gMDtcblxuICBkZWxldGUgb3JpZ2luYWxNb2RlLmJlZm9yZU1hdGNoO1xufTtcblxuLy8ga2V5d29yZHMgdGhhdCBzaG91bGQgaGF2ZSBubyBkZWZhdWx0IHJlbGV2YW5jZSB2YWx1ZVxuY29uc3QgQ09NTU9OX0tFWVdPUkRTID0gW1xuICAnb2YnLFxuICAnYW5kJyxcbiAgJ2ZvcicsXG4gICdpbicsXG4gICdub3QnLFxuICAnb3InLFxuICAnaWYnLFxuICAndGhlbicsXG4gICdwYXJlbnQnLCAvLyBjb21tb24gdmFyaWFibGUgbmFtZVxuICAnbGlzdCcsIC8vIGNvbW1vbiB2YXJpYWJsZSBuYW1lXG4gICd2YWx1ZScgLy8gY29tbW9uIHZhcmlhYmxlIG5hbWVcbl07XG5cbmNvbnN0IERFRkFVTFRfS0VZV09SRF9TQ09QRSA9IFwia2V5d29yZFwiO1xuXG4vKipcbiAqIEdpdmVuIHJhdyBrZXl3b3JkcyBmcm9tIGEgbGFuZ3VhZ2UgZGVmaW5pdGlvbiwgY29tcGlsZSB0aGVtLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgUmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+IHwgQXJyYXk8c3RyaW5nPn0gcmF3S2V5d29yZHNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FzZUluc2Vuc2l0aXZlXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGVLZXl3b3JkcyhyYXdLZXl3b3JkcywgY2FzZUluc2Vuc2l0aXZlLCBzY29wZU5hbWUgPSBERUZBVUxUX0tFWVdPUkRfU0NPUEUpIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCJoaWdobGlnaHQuanMvcHJpdmF0ZVwiKS5LZXl3b3JkRGljdH0gKi9cbiAgY29uc3QgY29tcGlsZWRLZXl3b3JkcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgLy8gaW5wdXQgY2FuIGJlIGEgc3RyaW5nIG9mIGtleXdvcmRzLCBhbiBhcnJheSBvZiBrZXl3b3Jkcywgb3IgYSBvYmplY3Qgd2l0aFxuICAvLyBuYW1lZCBrZXlzIHJlcHJlc2VudGluZyBzY29wZU5hbWUgKHdoaWNoIGNhbiB0aGVuIHBvaW50IHRvIGEgc3RyaW5nIG9yIGFycmF5KVxuICBpZiAodHlwZW9mIHJhd0tleXdvcmRzID09PSAnc3RyaW5nJykge1xuICAgIGNvbXBpbGVMaXN0KHNjb3BlTmFtZSwgcmF3S2V5d29yZHMuc3BsaXQoXCIgXCIpKTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJhd0tleXdvcmRzKSkge1xuICAgIGNvbXBpbGVMaXN0KHNjb3BlTmFtZSwgcmF3S2V5d29yZHMpO1xuICB9IGVsc2Uge1xuICAgIE9iamVjdC5rZXlzKHJhd0tleXdvcmRzKS5mb3JFYWNoKGZ1bmN0aW9uKHNjb3BlTmFtZSkge1xuICAgICAgLy8gY29sbGFwc2UgYWxsIG91ciBvYmplY3RzIGJhY2sgaW50byB0aGUgcGFyZW50IG9iamVjdFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgY29tcGlsZWRLZXl3b3JkcyxcbiAgICAgICAgY29tcGlsZUtleXdvcmRzKHJhd0tleXdvcmRzW3Njb3BlTmFtZV0sIGNhc2VJbnNlbnNpdGl2ZSwgc2NvcGVOYW1lKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY29tcGlsZWRLZXl3b3JkcztcblxuICAvLyAtLS1cblxuICAvKipcbiAgICogQ29tcGlsZXMgYW4gaW5kaXZpZHVhbCBsaXN0IG9mIGtleXdvcmRzXG4gICAqXG4gICAqIEV4OiBcImZvciBpZiB3aGVuIHdoaWxlfDVcIlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVOYW1lXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0ga2V5d29yZExpc3RcbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVMaXN0KHNjb3BlTmFtZSwga2V5d29yZExpc3QpIHtcbiAgICBpZiAoY2FzZUluc2Vuc2l0aXZlKSB7XG4gICAgICBrZXl3b3JkTGlzdCA9IGtleXdvcmRMaXN0Lm1hcCh4ID0+IHgudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuICAgIGtleXdvcmRMaXN0LmZvckVhY2goZnVuY3Rpb24oa2V5d29yZCkge1xuICAgICAgY29uc3QgcGFpciA9IGtleXdvcmQuc3BsaXQoJ3wnKTtcbiAgICAgIGNvbXBpbGVkS2V5d29yZHNbcGFpclswXV0gPSBbc2NvcGVOYW1lLCBzY29yZUZvcktleXdvcmQocGFpclswXSwgcGFpclsxXSldO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcHJvcGVyIHNjb3JlIGZvciBhIGdpdmVuIGtleXdvcmRcbiAqXG4gKiBBbHNvIHRha2VzIGludG8gYWNjb3VudCBjb21tZW50IGtleXdvcmRzLCB3aGljaCB3aWxsIGJlIHNjb3JlZCAwIFVOTEVTU1xuICogYW5vdGhlciBzY29yZSBoYXMgYmVlbiBtYW51YWxseSBhc3NpZ25lZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXl3b3JkXG4gKiBAcGFyYW0ge3N0cmluZ30gW3Byb3ZpZGVkU2NvcmVdXG4gKi9cbmZ1bmN0aW9uIHNjb3JlRm9yS2V5d29yZChrZXl3b3JkLCBwcm92aWRlZFNjb3JlKSB7XG4gIC8vIG1hbnVhbCBzY29yZXMgYWx3YXlzIHdpbiBvdmVyIGNvbW1vbiBrZXl3b3Jkc1xuICAvLyBzbyB5b3UgY2FuIGZvcmNlIGEgc2NvcmUgb2YgMSBpZiB5b3UgcmVhbGx5IGluc2lzdFxuICBpZiAocHJvdmlkZWRTY29yZSkge1xuICAgIHJldHVybiBOdW1iZXIocHJvdmlkZWRTY29yZSk7XG4gIH1cblxuICByZXR1cm4gY29tbW9uS2V5d29yZChrZXl3b3JkKSA/IDAgOiAxO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBnaXZlbiBrZXl3b3JkIGlzIGNvbW1vbiBvciBub3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5d29yZCAqL1xuZnVuY3Rpb24gY29tbW9uS2V5d29yZChrZXl3b3JkKSB7XG4gIHJldHVybiBDT01NT05fS0VZV09SRFMuaW5jbHVkZXMoa2V5d29yZC50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLypcblxuRm9yIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgcGxlYXNlIHNlZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI4ODAjaXNzdWVjb21tZW50LTc0NzI3NTQxOVxuXG4qL1xuXG4vKipcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBib29sZWFuPn1cbiAqL1xuY29uc3Qgc2VlbkRlcHJlY2F0aW9ucyA9IHt9O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmNvbnN0IGVycm9yID0gKG1lc3NhZ2UpID0+IHtcbiAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7YW55fSBhcmdzXG4gKi9cbmNvbnN0IHdhcm4gPSAobWVzc2FnZSwgLi4uYXJncykgPT4ge1xuICBjb25zb2xlLmxvZyhgV0FSTjogJHttZXNzYWdlfWAsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvblxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuY29uc3QgZGVwcmVjYXRlZCA9ICh2ZXJzaW9uLCBtZXNzYWdlKSA9PiB7XG4gIGlmIChzZWVuRGVwcmVjYXRpb25zW2Ake3ZlcnNpb259LyR7bWVzc2FnZX1gXSkgcmV0dXJuO1xuXG4gIGNvbnNvbGUubG9nKGBEZXByZWNhdGVkIGFzIG9mICR7dmVyc2lvbn0uICR7bWVzc2FnZX1gKTtcbiAgc2VlbkRlcHJlY2F0aW9uc1tgJHt2ZXJzaW9ufS8ke21lc3NhZ2V9YF0gPSB0cnVlO1xufTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdGhyb3ctbGl0ZXJhbCAqL1xuXG4vKipcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkNvbXBpbGVkTW9kZX0gQ29tcGlsZWRNb2RlXG4qL1xuXG5jb25zdCBNdWx0aUNsYXNzRXJyb3IgPSBuZXcgRXJyb3IoKTtcblxuLyoqXG4gKiBSZW51bWJlcnMgbGFiZWxlZCBzY29wZSBuYW1lcyB0byBhY2NvdW50IGZvciBhZGRpdGlvbmFsIGlubmVyIG1hdGNoXG4gKiBncm91cHMgdGhhdCBvdGhlcndpc2Ugd291bGQgYnJlYWsgZXZlcnl0aGluZy5cbiAqXG4gKiBMZXRzIHNheSB3ZSAzIG1hdGNoIHNjb3BlczpcbiAqXG4gKiAgIHsgMSA9PiAuLi4sIDIgPT4gLi4uLCAzID0+IC4uLiB9XG4gKlxuICogU28gd2hhdCB3ZSBuZWVkIGlzIGEgY2xlYW4gbWF0Y2ggbGlrZSB0aGlzOlxuICpcbiAqICAgKGEpKGIpKGMpID0+IFsgXCJhXCIsIFwiYlwiLCBcImNcIiBdXG4gKlxuICogQnV0IHRoaXMgZmFsbHMgYXBhcnQgd2l0aCBpbm5lciBtYXRjaCBncm91cHM6XG4gKlxuICogKGEpKCgoYikpKShjKSA9PiBbXCJhXCIsIFwiYlwiLCBcImJcIiwgXCJiXCIsIFwiY1wiIF1cbiAqXG4gKiBPdXIgc2NvcGVzIGFyZSBub3cgXCJvdXQgb2YgYWxpZ25tZW50XCIgYW5kIHdlJ3JlIHJlcGVhdGluZyBgYmAgMyB0aW1lcy5cbiAqIFdoYXQgbmVlZHMgdG8gaGFwcGVuIGlzIHRoZSBudW1iZXJzIGFyZSByZW1hcHBlZDpcbiAqXG4gKiAgIHsgMSA9PiAuLi4sIDIgPT4gLi4uLCA1ID0+IC4uLiB9XG4gKlxuICogV2UgYWxzbyBuZWVkIHRvIGtub3cgdGhhdCB0aGUgT05MWSBncm91cHMgdGhhdCBzaG91bGQgYmUgb3V0cHV0XG4gKiBhcmUgMSwgMiwgYW5kIDUuICBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhpcyBiZWhhdmlvci5cbiAqXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICogQHBhcmFtIHtBcnJheTxSZWdFeHAgfCBzdHJpbmc+fSByZWdleGVzXG4gKiBAcGFyYW0ge3trZXk6IFwiYmVnaW5TY29wZVwifFwiZW5kU2NvcGVcIn19IG9wdHNcbiAqL1xuZnVuY3Rpb24gcmVtYXBTY29wZU5hbWVzKG1vZGUsIHJlZ2V4ZXMsIHsga2V5IH0pIHtcbiAgbGV0IG9mZnNldCA9IDA7XG4gIGNvbnN0IHNjb3BlTmFtZXMgPSBtb2RlW2tleV07XG4gIC8qKiBAdHlwZSBSZWNvcmQ8bnVtYmVyLGJvb2xlYW4+ICovXG4gIGNvbnN0IGVtaXQgPSB7fTtcbiAgLyoqIEB0eXBlIFJlY29yZDxudW1iZXIsc3RyaW5nPiAqL1xuICBjb25zdCBwb3NpdGlvbnMgPSB7fTtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSByZWdleGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgcG9zaXRpb25zW2kgKyBvZmZzZXRdID0gc2NvcGVOYW1lc1tpXTtcbiAgICBlbWl0W2kgKyBvZmZzZXRdID0gdHJ1ZTtcbiAgICBvZmZzZXQgKz0gY291bnRNYXRjaEdyb3VwcyhyZWdleGVzW2kgLSAxXSk7XG4gIH1cbiAgLy8gd2UgdXNlIF9lbWl0IHRvIGtlZXAgdHJhY2sgb2Ygd2hpY2ggbWF0Y2ggZ3JvdXBzIGFyZSBcInRvcC1sZXZlbFwiIHRvIGF2b2lkIGRvdWJsZVxuICAvLyBvdXRwdXQgZnJvbSBpbnNpZGUgbWF0Y2ggZ3JvdXBzXG4gIG1vZGVba2V5XSA9IHBvc2l0aW9ucztcbiAgbW9kZVtrZXldLl9lbWl0ID0gZW1pdDtcbiAgbW9kZVtrZXldLl9tdWx0aSA9IHRydWU7XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGVcbiAqL1xuZnVuY3Rpb24gYmVnaW5NdWx0aUNsYXNzKG1vZGUpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGUuYmVnaW4pKSByZXR1cm47XG5cbiAgaWYgKG1vZGUuc2tpcCB8fCBtb2RlLmV4Y2x1ZGVCZWdpbiB8fCBtb2RlLnJldHVybkJlZ2luKSB7XG4gICAgZXJyb3IoXCJza2lwLCBleGNsdWRlQmVnaW4sIHJldHVybkJlZ2luIG5vdCBjb21wYXRpYmxlIHdpdGggYmVnaW5TY29wZToge31cIik7XG4gICAgdGhyb3cgTXVsdGlDbGFzc0Vycm9yO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBtb2RlLmJlZ2luU2NvcGUgIT09IFwib2JqZWN0XCIgfHwgbW9kZS5iZWdpblNjb3BlID09PSBudWxsKSB7XG4gICAgZXJyb3IoXCJiZWdpblNjb3BlIG11c3QgYmUgb2JqZWN0XCIpO1xuICAgIHRocm93IE11bHRpQ2xhc3NFcnJvcjtcbiAgfVxuXG4gIHJlbWFwU2NvcGVOYW1lcyhtb2RlLCBtb2RlLmJlZ2luLCB7IGtleTogXCJiZWdpblNjb3BlXCIgfSk7XG4gIG1vZGUuYmVnaW4gPSBfcmV3cml0ZUJhY2tyZWZlcmVuY2VzKG1vZGUuYmVnaW4sIHsgam9pbldpdGg6IFwiXCIgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGVcbiAqL1xuZnVuY3Rpb24gZW5kTXVsdGlDbGFzcyhtb2RlKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShtb2RlLmVuZCkpIHJldHVybjtcblxuICBpZiAobW9kZS5za2lwIHx8IG1vZGUuZXhjbHVkZUVuZCB8fCBtb2RlLnJldHVybkVuZCkge1xuICAgIGVycm9yKFwic2tpcCwgZXhjbHVkZUVuZCwgcmV0dXJuRW5kIG5vdCBjb21wYXRpYmxlIHdpdGggZW5kU2NvcGU6IHt9XCIpO1xuICAgIHRocm93IE11bHRpQ2xhc3NFcnJvcjtcbiAgfVxuXG4gIGlmICh0eXBlb2YgbW9kZS5lbmRTY29wZSAhPT0gXCJvYmplY3RcIiB8fCBtb2RlLmVuZFNjb3BlID09PSBudWxsKSB7XG4gICAgZXJyb3IoXCJlbmRTY29wZSBtdXN0IGJlIG9iamVjdFwiKTtcbiAgICB0aHJvdyBNdWx0aUNsYXNzRXJyb3I7XG4gIH1cblxuICByZW1hcFNjb3BlTmFtZXMobW9kZSwgbW9kZS5lbmQsIHsga2V5OiBcImVuZFNjb3BlXCIgfSk7XG4gIG1vZGUuZW5kID0gX3Jld3JpdGVCYWNrcmVmZXJlbmNlcyhtb2RlLmVuZCwgeyBqb2luV2l0aDogXCJcIiB9KTtcbn1cblxuLyoqXG4gKiB0aGlzIGV4aXN0cyBvbmx5IHRvIGFsbG93IGBzY29wZToge31gIHRvIGJlIHVzZWQgYmVzaWRlIGBtYXRjaDpgXG4gKiBPdGhlcndpc2UgYGJlZ2luU2NvcGVgIHdvdWxkIG5lY2Vzc2FyeSBhbmQgdGhhdCB3b3VsZCBsb29rIHdlaXJkXG5cbiAge1xuICAgIG1hdGNoOiBbIC9kZWYvLCAvXFx3Ky8gXVxuICAgIHNjb3BlOiB7IDE6IFwia2V5d29yZFwiICwgMjogXCJ0aXRsZVwiIH1cbiAgfVxuXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICovXG5mdW5jdGlvbiBzY29wZVN1Z2FyKG1vZGUpIHtcbiAgaWYgKG1vZGUuc2NvcGUgJiYgdHlwZW9mIG1vZGUuc2NvcGUgPT09IFwib2JqZWN0XCIgJiYgbW9kZS5zY29wZSAhPT0gbnVsbCkge1xuICAgIG1vZGUuYmVnaW5TY29wZSA9IG1vZGUuc2NvcGU7XG4gICAgZGVsZXRlIG1vZGUuc2NvcGU7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICovXG5mdW5jdGlvbiBNdWx0aUNsYXNzKG1vZGUpIHtcbiAgc2NvcGVTdWdhcihtb2RlKTtcblxuICBpZiAodHlwZW9mIG1vZGUuYmVnaW5TY29wZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIG1vZGUuYmVnaW5TY29wZSA9IHsgX3dyYXA6IG1vZGUuYmVnaW5TY29wZSB9O1xuICB9XG4gIGlmICh0eXBlb2YgbW9kZS5lbmRTY29wZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIG1vZGUuZW5kU2NvcGUgPSB7IF93cmFwOiBtb2RlLmVuZFNjb3BlIH07XG4gIH1cblxuICBiZWdpbk11bHRpQ2xhc3MobW9kZSk7XG4gIGVuZE11bHRpQ2xhc3MobW9kZSk7XG59XG5cbi8qKlxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuTW9kZX0gTW9kZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkxhbmd1YWdlfSBMYW5ndWFnZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSExKU1BsdWdpbn0gSExKU1BsdWdpblxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRMYW5ndWFnZX0gQ29tcGlsZWRMYW5ndWFnZVxuKi9cblxuLy8gY29tcGlsYXRpb25cblxuLyoqXG4gKiBDb21waWxlcyBhIGxhbmd1YWdlIGRlZmluaXRpb24gcmVzdWx0XG4gKlxuICogR2l2ZW4gdGhlIHJhdyByZXN1bHQgb2YgYSBsYW5ndWFnZSBkZWZpbml0aW9uIChMYW5ndWFnZSksIGNvbXBpbGVzIHRoaXMgc29cbiAqIHRoYXQgaXQgaXMgcmVhZHkgZm9yIGhpZ2hsaWdodGluZyBjb2RlLlxuICogQHBhcmFtIHtMYW5ndWFnZX0gbGFuZ3VhZ2VcbiAqIEByZXR1cm5zIHtDb21waWxlZExhbmd1YWdlfVxuICovXG5mdW5jdGlvbiBjb21waWxlTGFuZ3VhZ2UobGFuZ3VhZ2UpIHtcbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHJlZ2V4IHdpdGggdGhlIGNhc2Ugc2Vuc2l0aXZpdHkgb2YgdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICpcbiAgICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2dsb2JhbF1cbiAgICovXG4gIGZ1bmN0aW9uIGxhbmdSZSh2YWx1ZSwgZ2xvYmFsKSB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoXG4gICAgICBzb3VyY2UodmFsdWUpLFxuICAgICAgJ20nXG4gICAgICArIChsYW5ndWFnZS5jYXNlX2luc2Vuc2l0aXZlID8gJ2knIDogJycpXG4gICAgICArIChsYW5ndWFnZS51bmljb2RlUmVnZXggPyAndScgOiAnJylcbiAgICAgICsgKGdsb2JhbCA/ICdnJyA6ICcnKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICBTdG9yZXMgbXVsdGlwbGUgcmVndWxhciBleHByZXNzaW9ucyBhbmQgYWxsb3dzIHlvdSB0byBxdWlja2x5IHNlYXJjaCBmb3JcbiAgICB0aGVtIGFsbCBpbiBhIHN0cmluZyBzaW11bHRhbmVvdXNseSAtIHJldHVybmluZyB0aGUgZmlyc3QgbWF0Y2guICBJdCBkb2VzXG4gICAgdGhpcyBieSBjcmVhdGluZyBhIGh1Z2UgKGF8YnxjKSByZWdleCAtIGVhY2ggaW5kaXZpZHVhbCBpdGVtIHdyYXBwZWQgd2l0aCAoKVxuICAgIGFuZCBqb2luZWQgYnkgYHxgIC0gdXNpbmcgbWF0Y2ggZ3JvdXBzIHRvIHRyYWNrIHBvc2l0aW9uLiAgV2hlbiBhIG1hdGNoIGlzXG4gICAgZm91bmQgY2hlY2tpbmcgd2hpY2ggcG9zaXRpb24gaW4gdGhlIGFycmF5IGhhcyBjb250ZW50IGFsbG93cyB1cyB0byBmaWd1cmVcbiAgICBvdXQgd2hpY2ggb2YgdGhlIG9yaWdpbmFsIHJlZ2V4ZXMgLyBtYXRjaCBncm91cHMgdHJpZ2dlcmVkIHRoZSBtYXRjaC5cblxuICAgIFRoZSBtYXRjaCBvYmplY3QgaXRzZWxmICh0aGUgcmVzdWx0IG9mIGBSZWdleC5leGVjYCkgaXMgcmV0dXJuZWQgYnV0IGFsc29cbiAgICBlbmhhbmNlZCBieSBtZXJnaW5nIGluIGFueSBtZXRhLWRhdGEgdGhhdCB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSByZWdleC5cbiAgICBUaGlzIGlzIGhvdyB3ZSBrZWVwIHRyYWNrIG9mIHdoaWNoIG1vZGUgbWF0Y2hlZCwgYW5kIHdoYXQgdHlwZSBvZiBydWxlXG4gICAgKGBpbGxlZ2FsYCwgYGJlZ2luYCwgZW5kLCBldGMpLlxuICAqL1xuICBjbGFzcyBNdWx0aVJlZ2V4IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRoaXMubWF0Y2hJbmRleGVzID0ge307XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLnJlZ2V4ZXMgPSBbXTtcbiAgICAgIHRoaXMubWF0Y2hBdCA9IDE7XG4gICAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgYWRkUnVsZShyZSwgb3B0cykge1xuICAgICAgb3B0cy5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb24rKztcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMubWF0Y2hJbmRleGVzW3RoaXMubWF0Y2hBdF0gPSBvcHRzO1xuICAgICAgdGhpcy5yZWdleGVzLnB1c2goW29wdHMsIHJlXSk7XG4gICAgICB0aGlzLm1hdGNoQXQgKz0gY291bnRNYXRjaEdyb3VwcyhyZSkgKyAxO1xuICAgIH1cblxuICAgIGNvbXBpbGUoKSB7XG4gICAgICBpZiAodGhpcy5yZWdleGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBhdm9pZHMgdGhlIG5lZWQgdG8gY2hlY2sgbGVuZ3RoIGV2ZXJ5IHRpbWUgZXhlYyBpcyBjYWxsZWRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0aGlzLmV4ZWMgPSAoKSA9PiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgdGVybWluYXRvcnMgPSB0aGlzLnJlZ2V4ZXMubWFwKGVsID0+IGVsWzFdKTtcbiAgICAgIHRoaXMubWF0Y2hlclJlID0gbGFuZ1JlKF9yZXdyaXRlQmFja3JlZmVyZW5jZXModGVybWluYXRvcnMsIHsgam9pbldpdGg6ICd8JyB9KSwgdHJ1ZSk7XG4gICAgICB0aGlzLmxhc3RJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLyoqIEBwYXJhbSB7c3RyaW5nfSBzICovXG4gICAgZXhlYyhzKSB7XG4gICAgICB0aGlzLm1hdGNoZXJSZS5sYXN0SW5kZXggPSB0aGlzLmxhc3RJbmRleDtcbiAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5tYXRjaGVyUmUuZXhlYyhzKTtcbiAgICAgIGlmICghbWF0Y2gpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgICAgY29uc3QgaSA9IG1hdGNoLmZpbmRJbmRleCgoZWwsIGkpID0+IGkgPiAwICYmIGVsICE9PSB1bmRlZmluZWQpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgbWF0Y2hEYXRhID0gdGhpcy5tYXRjaEluZGV4ZXNbaV07XG4gICAgICAvLyB0cmltIG9mZiBhbnkgZWFybGllciBub24tcmVsZXZhbnQgbWF0Y2ggZ3JvdXBzIChpZSwgdGhlIG90aGVyIHJlZ2V4XG4gICAgICAvLyBtYXRjaCBncm91cHMgdGhhdCBtYWtlIHVwIHRoZSBtdWx0aS1tYXRjaGVyKVxuICAgICAgbWF0Y2guc3BsaWNlKDAsIGkpO1xuXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihtYXRjaCwgbWF0Y2hEYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgIENyZWF0ZWQgdG8gc29sdmUgdGhlIGtleSBkZWZpY2llbnRseSB3aXRoIE11bHRpUmVnZXggLSB0aGVyZSBpcyBubyB3YXkgdG9cbiAgICB0ZXN0IGZvciBtdWx0aXBsZSBtYXRjaGVzIGF0IGEgc2luZ2xlIGxvY2F0aW9uLiAgV2h5IHdvdWxkIHdlIG5lZWQgdG8gZG9cbiAgICB0aGF0PyAgSW4gdGhlIGZ1dHVyZSBhIG1vcmUgZHluYW1pYyBlbmdpbmUgd2lsbCBhbGxvdyBjZXJ0YWluIG1hdGNoZXMgdG8gYmVcbiAgICBpZ25vcmVkLiAgQW4gZXhhbXBsZTogaWYgd2UgbWF0Y2hlZCBzYXkgdGhlIDNyZCByZWdleCBpbiBhIGxhcmdlIGdyb3VwIGJ1dFxuICAgIGRlY2lkZWQgdG8gaWdub3JlIGl0IC0gd2UnZCBuZWVkIHRvIHN0YXJ0ZWQgdGVzdGluZyBhZ2FpbiBhdCB0aGUgNHRoXG4gICAgcmVnZXguLi4gYnV0IE11bHRpUmVnZXggaXRzZWxmIGdpdmVzIHVzIG5vIHJlYWwgd2F5IHRvIGRvIHRoYXQuXG5cbiAgICBTbyB3aGF0IHRoaXMgY2xhc3MgY3JlYXRlcyBNdWx0aVJlZ2V4cyBvbiB0aGUgZmx5IGZvciB3aGF0ZXZlciBzZWFyY2hcbiAgICBwb3NpdGlvbiB0aGV5IGFyZSBuZWVkZWQuXG5cbiAgICBOT1RFOiBUaGVzZSBhZGRpdGlvbmFsIE11bHRpUmVnZXggb2JqZWN0cyBhcmUgY3JlYXRlZCBkeW5hbWljYWxseS4gIEZvciBtb3N0XG4gICAgZ3JhbW1hcnMgbW9zdCBvZiB0aGUgdGltZSB3ZSB3aWxsIG5ldmVyIGFjdHVhbGx5IG5lZWQgYW55dGhpbmcgbW9yZSB0aGFuIHRoZVxuICAgIGZpcnN0IE11bHRpUmVnZXggLSBzbyB0aGlzIHNob3VsZG4ndCBoYXZlIHRvbyBtdWNoIG92ZXJoZWFkLlxuXG4gICAgU2F5IHRoaXMgaXMgb3VyIHNlYXJjaCBncm91cCwgYW5kIHdlIG1hdGNoIHJlZ2V4MywgYnV0IHdpc2ggdG8gaWdub3JlIGl0LlxuXG4gICAgICByZWdleDEgfCByZWdleDIgfCByZWdleDMgfCByZWdleDQgfCByZWdleDUgICAgJyBpZSwgc3RhcnRBdCA9IDBcblxuICAgIFdoYXQgd2UgbmVlZCBpcyBhIG5ldyBNdWx0aVJlZ2V4IHRoYXQgb25seSBpbmNsdWRlcyB0aGUgcmVtYWluaW5nXG4gICAgcG9zc2liaWxpdGllczpcblxuICAgICAgcmVnZXg0IHwgcmVnZXg1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgaWUsIHN0YXJ0QXQgPSAzXG5cbiAgICBUaGlzIGNsYXNzIHdyYXBzIGFsbCB0aGF0IGNvbXBsZXhpdHkgdXAgaW4gYSBzaW1wbGUgQVBJLi4uIGBzdGFydEF0YCBkZWNpZGVzXG4gICAgd2hlcmUgaW4gdGhlIGFycmF5IG9mIGV4cHJlc3Npb25zIHRvIHN0YXJ0IGRvaW5nIHRoZSBtYXRjaGluZy4gSXRcbiAgICBhdXRvLWluY3JlbWVudHMsIHNvIGlmIGEgbWF0Y2ggaXMgZm91bmQgYXQgcG9zaXRpb24gMiwgdGhlbiBzdGFydEF0IHdpbGwgYmVcbiAgICBzZXQgdG8gMy4gIElmIHRoZSBlbmQgaXMgcmVhY2hlZCBzdGFydEF0IHdpbGwgcmV0dXJuIHRvIDAuXG5cbiAgICBNT1NUIG9mIHRoZSB0aW1lIHRoZSBwYXJzZXIgd2lsbCBiZSBzZXR0aW5nIHN0YXJ0QXQgbWFudWFsbHkgdG8gMC5cbiAgKi9cbiAgY2xhc3MgUmVzdW1hYmxlTXVsdGlSZWdleCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLnJ1bGVzID0gW107XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLm11bHRpUmVnZXhlcyA9IFtdO1xuICAgICAgdGhpcy5jb3VudCA9IDA7XG5cbiAgICAgIHRoaXMubGFzdEluZGV4ID0gMDtcbiAgICAgIHRoaXMucmVnZXhJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdldE1hdGNoZXIoaW5kZXgpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpUmVnZXhlc1tpbmRleF0pIHJldHVybiB0aGlzLm11bHRpUmVnZXhlc1tpbmRleF07XG5cbiAgICAgIGNvbnN0IG1hdGNoZXIgPSBuZXcgTXVsdGlSZWdleCgpO1xuICAgICAgdGhpcy5ydWxlcy5zbGljZShpbmRleCkuZm9yRWFjaCgoW3JlLCBvcHRzXSkgPT4gbWF0Y2hlci5hZGRSdWxlKHJlLCBvcHRzKSk7XG4gICAgICBtYXRjaGVyLmNvbXBpbGUoKTtcbiAgICAgIHRoaXMubXVsdGlSZWdleGVzW2luZGV4XSA9IG1hdGNoZXI7XG4gICAgICByZXR1cm4gbWF0Y2hlcjtcbiAgICB9XG5cbiAgICByZXN1bWluZ1NjYW5BdFNhbWVQb3NpdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZ2V4SW5kZXggIT09IDA7XG4gICAgfVxuXG4gICAgY29uc2lkZXJBbGwoKSB7XG4gICAgICB0aGlzLnJlZ2V4SW5kZXggPSAwO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhZGRSdWxlKHJlLCBvcHRzKSB7XG4gICAgICB0aGlzLnJ1bGVzLnB1c2goW3JlLCBvcHRzXSk7XG4gICAgICBpZiAob3B0cy50eXBlID09PSBcImJlZ2luXCIpIHRoaXMuY291bnQrKztcbiAgICB9XG5cbiAgICAvKiogQHBhcmFtIHtzdHJpbmd9IHMgKi9cbiAgICBleGVjKHMpIHtcbiAgICAgIGNvbnN0IG0gPSB0aGlzLmdldE1hdGNoZXIodGhpcy5yZWdleEluZGV4KTtcbiAgICAgIG0ubGFzdEluZGV4ID0gdGhpcy5sYXN0SW5kZXg7XG4gICAgICBsZXQgcmVzdWx0ID0gbS5leGVjKHMpO1xuXG4gICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIGJlY2F1c2Ugd2UgaGF2ZSBubyBlYXN5IHdheSB0byBzYXkgXCJyZXN1bWUgc2Nhbm5pbmcgYXQgdGhlXG4gICAgICAvLyBleGlzdGluZyBwb3NpdGlvbiBidXQgYWxzbyBza2lwIHRoZSBjdXJyZW50IHJ1bGUgT05MWVwiLiBXaGF0IGhhcHBlbnMgaXNcbiAgICAgIC8vIGFsbCBwcmlvciBydWxlcyBhcmUgYWxzbyBza2lwcGVkIHdoaWNoIGNhbiByZXN1bHQgaW4gbWF0Y2hpbmcgdGhlIHdyb25nXG4gICAgICAvLyB0aGluZy4gRXhhbXBsZSBvZiBtYXRjaGluZyBcImJvb2dlclwiOlxuXG4gICAgICAvLyBvdXIgbWF0Y2hlciBpcyBbc3RyaW5nLCBcImJvb2dlclwiLCBudW1iZXJdXG4gICAgICAvL1xuICAgICAgLy8gLi4uLmJvb2dlci4uLi5cblxuICAgICAgLy8gaWYgXCJib29nZXJcIiBpcyBpZ25vcmVkIHRoZW4gd2UnZCByZWFsbHkgbmVlZCBhIHJlZ2V4IHRvIHNjYW4gZnJvbSB0aGVcbiAgICAgIC8vIFNBTUUgcG9zaXRpb24gZm9yIG9ubHk6IFtzdHJpbmcsIG51bWJlcl0gYnV0IGlnbm9yaW5nIFwiYm9vZ2VyXCIgKGlmIGl0XG4gICAgICAvLyB3YXMgdGhlIGZpcnN0IG1hdGNoKSwgYSBzaW1wbGUgcmVzdW1lIHdvdWxkIHNjYW4gYWhlYWQgd2hvIGtub3dzIGhvd1xuICAgICAgLy8gZmFyIGxvb2tpbmcgb25seSBmb3IgXCJudW1iZXJcIiwgaWdub3JpbmcgcG90ZW50aWFsIHN0cmluZyBtYXRjaGVzIChvclxuICAgICAgLy8gZnV0dXJlIFwiYm9vZ2VyXCIgbWF0Y2hlcyB0aGF0IG1pZ2h0IGJlIHZhbGlkLilcblxuICAgICAgLy8gU28gd2hhdCB3ZSBkbzogV2UgZXhlY3V0ZSB0d28gbWF0Y2hlcnMsIG9uZSByZXN1bWluZyBhdCB0aGUgc2FtZVxuICAgICAgLy8gcG9zaXRpb24sIGJ1dCB0aGUgc2Vjb25kIGZ1bGwgbWF0Y2hlciBzdGFydGluZyBhdCB0aGUgcG9zaXRpb24gYWZ0ZXI6XG5cbiAgICAgIC8vICAgICAvLS0tIHJlc3VtZSBmaXJzdCByZWdleCBtYXRjaCBoZXJlIChmb3IgW251bWJlcl0pXG4gICAgICAvLyAgICAgfC8tLS0tIGZ1bGwgbWF0Y2ggaGVyZSBmb3IgW3N0cmluZywgXCJib29nZXJcIiwgbnVtYmVyXVxuICAgICAgLy8gICAgIHZ2XG4gICAgICAvLyAuLi4uYm9vZ2VyLi4uLlxuXG4gICAgICAvLyBXaGljaCBldmVyIHJlc3VsdHMgaW4gYSBtYXRjaCBmaXJzdCBpcyB0aGVuIHVzZWQuIFNvIHRoaXMgMy00IHN0ZXBcbiAgICAgIC8vIHByb2Nlc3MgZXNzZW50aWFsbHkgYWxsb3dzIHVzIHRvIHNheSBcIm1hdGNoIGF0IHRoaXMgcG9zaXRpb24sIGV4Y2x1ZGluZ1xuICAgICAgLy8gYSBwcmlvciBydWxlIHRoYXQgd2FzIGlnbm9yZWRcIi5cbiAgICAgIC8vXG4gICAgICAvLyAxLiBNYXRjaCBcImJvb2dlclwiIGZpcnN0LCBpZ25vcmUuIEFsc28gcHJvdmVzIHRoYXQgW3N0cmluZ10gZG9lcyBub24gbWF0Y2guXG4gICAgICAvLyAyLiBSZXN1bWUgbWF0Y2hpbmcgZm9yIFtudW1iZXJdXG4gICAgICAvLyAzLiBNYXRjaCBhdCBpbmRleCArIDEgZm9yIFtzdHJpbmcsIFwiYm9vZ2VyXCIsIG51bWJlcl1cbiAgICAgIC8vIDQuIElmICMyIGFuZCAjMyByZXN1bHQgaW4gbWF0Y2hlcywgd2hpY2ggY2FtZSBmaXJzdD9cbiAgICAgIGlmICh0aGlzLnJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uKCkpIHtcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuaW5kZXggPT09IHRoaXMubGFzdEluZGV4KSA7IGVsc2UgeyAvLyB1c2UgdGhlIHNlY29uZCBtYXRjaGVyIHJlc3VsdFxuICAgICAgICAgIGNvbnN0IG0yID0gdGhpcy5nZXRNYXRjaGVyKDApO1xuICAgICAgICAgIG0yLmxhc3RJbmRleCA9IHRoaXMubGFzdEluZGV4ICsgMTtcbiAgICAgICAgICByZXN1bHQgPSBtMi5leGVjKHMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWdleEluZGV4ICs9IHJlc3VsdC5wb3NpdGlvbiArIDE7XG4gICAgICAgIGlmICh0aGlzLnJlZ2V4SW5kZXggPT09IHRoaXMuY291bnQpIHtcbiAgICAgICAgICAvLyB3cmFwLWFyb3VuZCB0byBjb25zaWRlcmluZyBhbGwgbWF0Y2hlcyBhZ2FpblxuICAgICAgICAgIHRoaXMuY29uc2lkZXJBbGwoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIG1vZGUsIGJ1aWxkcyBhIGh1Z2UgUmVzdW1hYmxlTXVsdGlSZWdleCB0aGF0IGNhbiBiZSB1c2VkIHRvIHdhbGtcbiAgICogdGhlIGNvbnRlbnQgYW5kIGZpbmQgbWF0Y2hlcy5cbiAgICpcbiAgICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGVcbiAgICogQHJldHVybnMge1Jlc3VtYWJsZU11bHRpUmVnZXh9XG4gICAqL1xuICBmdW5jdGlvbiBidWlsZE1vZGVSZWdleChtb2RlKSB7XG4gICAgY29uc3QgbW0gPSBuZXcgUmVzdW1hYmxlTXVsdGlSZWdleCgpO1xuXG4gICAgbW9kZS5jb250YWlucy5mb3JFYWNoKHRlcm0gPT4gbW0uYWRkUnVsZSh0ZXJtLmJlZ2luLCB7IHJ1bGU6IHRlcm0sIHR5cGU6IFwiYmVnaW5cIiB9KSk7XG5cbiAgICBpZiAobW9kZS50ZXJtaW5hdG9yRW5kKSB7XG4gICAgICBtbS5hZGRSdWxlKG1vZGUudGVybWluYXRvckVuZCwgeyB0eXBlOiBcImVuZFwiIH0pO1xuICAgIH1cbiAgICBpZiAobW9kZS5pbGxlZ2FsKSB7XG4gICAgICBtbS5hZGRSdWxlKG1vZGUuaWxsZWdhbCwgeyB0eXBlOiBcImlsbGVnYWxcIiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW07XG4gIH1cblxuICAvKiogc2tpcCB2cyBhYm9ydCB2cyBpZ25vcmVcbiAgICpcbiAgICogQHNraXAgICAtIFRoZSBtb2RlIGlzIHN0aWxsIGVudGVyZWQgYW5kIGV4aXRlZCBub3JtYWxseSAoYW5kIGNvbnRhaW5zIHJ1bGVzIGFwcGx5KSxcbiAgICogICAgICAgICAgIGJ1dCBhbGwgY29udGVudCBpcyBoZWxkIGFuZCBhZGRlZCB0byB0aGUgcGFyZW50IGJ1ZmZlciByYXRoZXIgdGhhbiBiZWluZ1xuICAgKiAgICAgICAgICAgb3V0cHV0IHdoZW4gdGhlIG1vZGUgZW5kcy4gIE1vc3RseSB1c2VkIHdpdGggYHN1Ymxhbmd1YWdlYCB0byBidWlsZCB1cFxuICAgKiAgICAgICAgICAgYSBzaW5nbGUgbGFyZ2UgYnVmZmVyIHRoYW4gY2FuIGJlIHBhcnNlZCBieSBzdWJsYW5ndWFnZS5cbiAgICpcbiAgICogICAgICAgICAgICAgLSBUaGUgbW9kZSBiZWdpbiBhbmRzIGVuZHMgbm9ybWFsbHkuXG4gICAqICAgICAgICAgICAgIC0gQ29udGVudCBtYXRjaGVkIGlzIGFkZGVkIHRvIHRoZSBwYXJlbnQgbW9kZSBidWZmZXIuXG4gICAqICAgICAgICAgICAgIC0gVGhlIHBhcnNlciBjdXJzb3IgaXMgbW92ZWQgZm9yd2FyZCBub3JtYWxseS5cbiAgICpcbiAgICogQGFib3J0ICAtIEEgaGFjayBwbGFjZWhvbGRlciB1bnRpbCB3ZSBoYXZlIGlnbm9yZS4gIEFib3J0cyB0aGUgbW9kZSAoYXMgaWYgaXRcbiAgICogICAgICAgICAgIG5ldmVyIG1hdGNoZWQpIGJ1dCBET0VTIE5PVCBjb250aW51ZSB0byBtYXRjaCBzdWJzZXF1ZW50IGBjb250YWluc2BcbiAgICogICAgICAgICAgIG1vZGVzLiAgQWJvcnQgaXMgYmFkL3N1Ym9wdGltYWwgYmVjYXVzZSBpdCBjYW4gcmVzdWx0IGluIG1vZGVzXG4gICAqICAgICAgICAgICBmYXJ0aGVyIGRvd24gbm90IGdldHRpbmcgYXBwbGllZCBiZWNhdXNlIGFuIGVhcmxpZXIgcnVsZSBlYXRzIHRoZVxuICAgKiAgICAgICAgICAgY29udGVudCBidXQgdGhlbiBhYm9ydHMuXG4gICAqXG4gICAqICAgICAgICAgICAgIC0gVGhlIG1vZGUgZG9lcyBub3QgYmVnaW4uXG4gICAqICAgICAgICAgICAgIC0gQ29udGVudCBtYXRjaGVkIGJ5IGBiZWdpbmAgaXMgYWRkZWQgdG8gdGhlIG1vZGUgYnVmZmVyLlxuICAgKiAgICAgICAgICAgICAtIFRoZSBwYXJzZXIgY3Vyc29yIGlzIG1vdmVkIGZvcndhcmQgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBpZ25vcmUgLSBJZ25vcmVzIHRoZSBtb2RlIChhcyBpZiBpdCBuZXZlciBtYXRjaGVkKSBhbmQgY29udGludWVzIHRvIG1hdGNoIGFueVxuICAgKiAgICAgICAgICAgc3Vic2VxdWVudCBgY29udGFpbnNgIG1vZGVzLiAgSWdub3JlIGlzbid0IHRlY2huaWNhbGx5IHBvc3NpYmxlIHdpdGhcbiAgICogICAgICAgICAgIHRoZSBjdXJyZW50IHBhcnNlciBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogICAgICAgICAgICAgLSBUaGUgbW9kZSBkb2VzIG5vdCBiZWdpbi5cbiAgICogICAgICAgICAgICAgLSBDb250ZW50IG1hdGNoZWQgYnkgYGJlZ2luYCBpcyBpZ25vcmVkLlxuICAgKiAgICAgICAgICAgICAtIFRoZSBwYXJzZXIgY3Vyc29yIGlzIG5vdCBtb3ZlZCBmb3J3YXJkLlxuICAgKi9cblxuICAvKipcbiAgICogQ29tcGlsZXMgYW4gaW5kaXZpZHVhbCBtb2RlXG4gICAqXG4gICAqIFRoaXMgY2FuIHJhaXNlIGFuIGVycm9yIGlmIHRoZSBtb2RlIGNvbnRhaW5zIGNlcnRhaW4gZGV0ZWN0YWJsZSBrbm93biBsb2dpY1xuICAgKiBpc3N1ZXMuXG4gICAqIEBwYXJhbSB7TW9kZX0gbW9kZVxuICAgKiBAcGFyYW0ge0NvbXBpbGVkTW9kZSB8IG51bGx9IFtwYXJlbnRdXG4gICAqIEByZXR1cm5zIHtDb21waWxlZE1vZGUgfCBuZXZlcn1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVNb2RlKG1vZGUsIHBhcmVudCkge1xuICAgIGNvbnN0IGNtb2RlID0gLyoqIEB0eXBlIENvbXBpbGVkTW9kZSAqLyAobW9kZSk7XG4gICAgaWYgKG1vZGUuaXNDb21waWxlZCkgcmV0dXJuIGNtb2RlO1xuXG4gICAgW1xuICAgICAgc2NvcGVDbGFzc05hbWUsXG4gICAgICAvLyBkbyB0aGlzIGVhcmx5IHNvIGNvbXBpbGVyIGV4dGVuc2lvbnMgZ2VuZXJhbGx5IGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXRcbiAgICAgIC8vIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIG1hdGNoL2JlZ2luXG4gICAgICBjb21waWxlTWF0Y2gsXG4gICAgICBNdWx0aUNsYXNzLFxuICAgICAgYmVmb3JlTWF0Y2hFeHRcbiAgICBdLmZvckVhY2goZXh0ID0+IGV4dChtb2RlLCBwYXJlbnQpKTtcblxuICAgIGxhbmd1YWdlLmNvbXBpbGVyRXh0ZW5zaW9ucy5mb3JFYWNoKGV4dCA9PiBleHQobW9kZSwgcGFyZW50KSk7XG5cbiAgICAvLyBfX2JlZm9yZUJlZ2luIGlzIGNvbnNpZGVyZWQgcHJpdmF0ZSBBUEksIGludGVybmFsIHVzZSBvbmx5XG4gICAgbW9kZS5fX2JlZm9yZUJlZ2luID0gbnVsbDtcblxuICAgIFtcbiAgICAgIGJlZ2luS2V5d29yZHMsXG4gICAgICAvLyBkbyB0aGlzIGxhdGVyIHNvIGNvbXBpbGVyIGV4dGVuc2lvbnMgdGhhdCBjb21lIGVhcmxpZXIgaGF2ZSBhY2Nlc3MgdG8gdGhlXG4gICAgICAvLyByYXcgYXJyYXkgaWYgdGhleSB3YW50ZWQgdG8gcGVyaGFwcyBtYW5pcHVsYXRlIGl0LCBldGMuXG4gICAgICBjb21waWxlSWxsZWdhbCxcbiAgICAgIC8vIGRlZmF1bHQgdG8gMSByZWxldmFuY2UgaWYgbm90IHNwZWNpZmllZFxuICAgICAgY29tcGlsZVJlbGV2YW5jZVxuICAgIF0uZm9yRWFjaChleHQgPT4gZXh0KG1vZGUsIHBhcmVudCkpO1xuXG4gICAgbW9kZS5pc0NvbXBpbGVkID0gdHJ1ZTtcblxuICAgIGxldCBrZXl3b3JkUGF0dGVybiA9IG51bGw7XG4gICAgaWYgKHR5cGVvZiBtb2RlLmtleXdvcmRzID09PSBcIm9iamVjdFwiICYmIG1vZGUua2V5d29yZHMuJHBhdHRlcm4pIHtcbiAgICAgIC8vIHdlIG5lZWQgYSBjb3B5IGJlY2F1c2Uga2V5d29yZHMgbWlnaHQgYmUgY29tcGlsZWQgbXVsdGlwbGUgdGltZXNcbiAgICAgIC8vIHNvIHdlIGNhbid0IGdvIGRlbGV0aW5nICRwYXR0ZXJuIGZyb20gdGhlIG9yaWdpbmFsIG9uIHRoZSBmaXJzdFxuICAgICAgLy8gcGFzc1xuICAgICAgbW9kZS5rZXl3b3JkcyA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGUua2V5d29yZHMpO1xuICAgICAga2V5d29yZFBhdHRlcm4gPSBtb2RlLmtleXdvcmRzLiRwYXR0ZXJuO1xuICAgICAgZGVsZXRlIG1vZGUua2V5d29yZHMuJHBhdHRlcm47XG4gICAgfVxuICAgIGtleXdvcmRQYXR0ZXJuID0ga2V5d29yZFBhdHRlcm4gfHwgL1xcdysvO1xuXG4gICAgaWYgKG1vZGUua2V5d29yZHMpIHtcbiAgICAgIG1vZGUua2V5d29yZHMgPSBjb21waWxlS2V5d29yZHMobW9kZS5rZXl3b3JkcywgbGFuZ3VhZ2UuY2FzZV9pbnNlbnNpdGl2ZSk7XG4gICAgfVxuXG4gICAgY21vZGUua2V5d29yZFBhdHRlcm5SZSA9IGxhbmdSZShrZXl3b3JkUGF0dGVybiwgdHJ1ZSk7XG5cbiAgICBpZiAocGFyZW50KSB7XG4gICAgICBpZiAoIW1vZGUuYmVnaW4pIG1vZGUuYmVnaW4gPSAvXFxCfFxcYi87XG4gICAgICBjbW9kZS5iZWdpblJlID0gbGFuZ1JlKGNtb2RlLmJlZ2luKTtcbiAgICAgIGlmICghbW9kZS5lbmQgJiYgIW1vZGUuZW5kc1dpdGhQYXJlbnQpIG1vZGUuZW5kID0gL1xcQnxcXGIvO1xuICAgICAgaWYgKG1vZGUuZW5kKSBjbW9kZS5lbmRSZSA9IGxhbmdSZShjbW9kZS5lbmQpO1xuICAgICAgY21vZGUudGVybWluYXRvckVuZCA9IHNvdXJjZShjbW9kZS5lbmQpIHx8ICcnO1xuICAgICAgaWYgKG1vZGUuZW5kc1dpdGhQYXJlbnQgJiYgcGFyZW50LnRlcm1pbmF0b3JFbmQpIHtcbiAgICAgICAgY21vZGUudGVybWluYXRvckVuZCArPSAobW9kZS5lbmQgPyAnfCcgOiAnJykgKyBwYXJlbnQudGVybWluYXRvckVuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1vZGUuaWxsZWdhbCkgY21vZGUuaWxsZWdhbFJlID0gbGFuZ1JlKC8qKiBAdHlwZSB7UmVnRXhwIHwgc3RyaW5nfSAqLyAobW9kZS5pbGxlZ2FsKSk7XG4gICAgaWYgKCFtb2RlLmNvbnRhaW5zKSBtb2RlLmNvbnRhaW5zID0gW107XG5cbiAgICBtb2RlLmNvbnRhaW5zID0gW10uY29uY2F0KC4uLm1vZGUuY29udGFpbnMubWFwKGZ1bmN0aW9uKGMpIHtcbiAgICAgIHJldHVybiBleHBhbmRPckNsb25lTW9kZShjID09PSAnc2VsZicgPyBtb2RlIDogYyk7XG4gICAgfSkpO1xuICAgIG1vZGUuY29udGFpbnMuZm9yRWFjaChmdW5jdGlvbihjKSB7IGNvbXBpbGVNb2RlKC8qKiBAdHlwZSBNb2RlICovIChjKSwgY21vZGUpOyB9KTtcblxuICAgIGlmIChtb2RlLnN0YXJ0cykge1xuICAgICAgY29tcGlsZU1vZGUobW9kZS5zdGFydHMsIHBhcmVudCk7XG4gICAgfVxuXG4gICAgY21vZGUubWF0Y2hlciA9IGJ1aWxkTW9kZVJlZ2V4KGNtb2RlKTtcbiAgICByZXR1cm4gY21vZGU7XG4gIH1cblxuICBpZiAoIWxhbmd1YWdlLmNvbXBpbGVyRXh0ZW5zaW9ucykgbGFuZ3VhZ2UuY29tcGlsZXJFeHRlbnNpb25zID0gW107XG5cbiAgLy8gc2VsZiBpcyBub3QgdmFsaWQgYXQgdGhlIHRvcC1sZXZlbFxuICBpZiAobGFuZ3VhZ2UuY29udGFpbnMgJiYgbGFuZ3VhZ2UuY29udGFpbnMuaW5jbHVkZXMoJ3NlbGYnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUjogY29udGFpbnMgYHNlbGZgIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHRvcC1sZXZlbCBvZiBhIGxhbmd1YWdlLiAgU2VlIGRvY3VtZW50YXRpb24uXCIpO1xuICB9XG5cbiAgLy8gd2UgbmVlZCBhIG51bGwgb2JqZWN0LCB3aGljaCBpbmhlcml0IHdpbGwgZ3VhcmFudGVlXG4gIGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXMgPSBpbmhlcml0JDEobGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlcyB8fCB7fSk7XG5cbiAgcmV0dXJuIGNvbXBpbGVNb2RlKC8qKiBAdHlwZSBNb2RlICovIChsYW5ndWFnZSkpO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBtb2RlIGhhcyBhIGRlcGVuZGVuY3kgb24gaXQncyBwYXJlbnQgb3Igbm90XG4gKlxuICogSWYgYSBtb2RlIGRvZXMgaGF2ZSBhIHBhcmVudCBkZXBlbmRlbmN5IHRoZW4gb2Z0ZW4gd2UgbmVlZCB0byBjbG9uZSBpdCBpZlxuICogaXQncyB1c2VkIGluIG11bHRpcGxlIHBsYWNlcyBzbyB0aGF0IGVhY2ggY29weSBwb2ludHMgdG8gdGhlIGNvcnJlY3QgcGFyZW50LFxuICogd2hlcmUtYXMgbW9kZXMgd2l0aG91dCBhIHBhcmVudCBjYW4gb2Z0ZW4gc2FmZWx5IGJlIHJlLXVzZWQgYXQgdGhlIGJvdHRvbSBvZlxuICogYSBtb2RlIGNoYWluLlxuICpcbiAqIEBwYXJhbSB7TW9kZSB8IG51bGx9IG1vZGVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIGlzIHRoZXJlIGEgZGVwZW5kZW5jeSBvbiB0aGUgcGFyZW50P1xuICogKi9cbmZ1bmN0aW9uIGRlcGVuZGVuY3lPblBhcmVudChtb2RlKSB7XG4gIGlmICghbW9kZSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBtb2RlLmVuZHNXaXRoUGFyZW50IHx8IGRlcGVuZGVuY3lPblBhcmVudChtb2RlLnN0YXJ0cyk7XG59XG5cbi8qKlxuICogRXhwYW5kcyBhIG1vZGUgb3IgY2xvbmVzIGl0IGlmIG5lY2Vzc2FyeVxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBtb2RlcyB3aXRoIHBhcmVudGFsIGRlcGVuZGVuY2VpcyAoc2VlIG5vdGVzIG9uXG4gKiBgZGVwZW5kZW5jeU9uUGFyZW50YCkgYW5kIGZvciBub2RlcyB0aGF0IGhhdmUgYHZhcmlhbnRzYCAtIHdoaWNoIG11c3QgdGhlbiBiZVxuICogZXhwbG9kZWQgaW50byB0aGVpciBvd24gaW5kaXZpZHVhbCBtb2RlcyBhdCBjb21waWxlIHRpbWUuXG4gKlxuICogQHBhcmFtIHtNb2RlfSBtb2RlXG4gKiBAcmV0dXJucyB7TW9kZSB8IE1vZGVbXX1cbiAqICovXG5mdW5jdGlvbiBleHBhbmRPckNsb25lTW9kZShtb2RlKSB7XG4gIGlmIChtb2RlLnZhcmlhbnRzICYmICFtb2RlLmNhY2hlZFZhcmlhbnRzKSB7XG4gICAgbW9kZS5jYWNoZWRWYXJpYW50cyA9IG1vZGUudmFyaWFudHMubWFwKGZ1bmN0aW9uKHZhcmlhbnQpIHtcbiAgICAgIHJldHVybiBpbmhlcml0JDEobW9kZSwgeyB2YXJpYW50czogbnVsbCB9LCB2YXJpYW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEVYUEFORFxuICAvLyBpZiB3ZSBoYXZlIHZhcmlhbnRzIHRoZW4gZXNzZW50aWFsbHkgXCJyZXBsYWNlXCIgdGhlIG1vZGUgd2l0aCB0aGUgdmFyaWFudHNcbiAgLy8gdGhpcyBoYXBwZW5zIGluIGNvbXBpbGVNb2RlLCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tXG4gIGlmIChtb2RlLmNhY2hlZFZhcmlhbnRzKSB7XG4gICAgcmV0dXJuIG1vZGUuY2FjaGVkVmFyaWFudHM7XG4gIH1cblxuICAvLyBDTE9ORVxuICAvLyBpZiB3ZSBoYXZlIGRlcGVuZGVuY2llcyBvbiBwYXJlbnRzIHRoZW4gd2UgbmVlZCBhIHVuaXF1ZVxuICAvLyBpbnN0YW5jZSBvZiBvdXJzZWx2ZXMsIHNvIHdlIGNhbiBiZSByZXVzZWQgd2l0aCBtYW55XG4gIC8vIGRpZmZlcmVudCBwYXJlbnRzIHdpdGhvdXQgaXNzdWVcbiAgaWYgKGRlcGVuZGVuY3lPblBhcmVudChtb2RlKSkge1xuICAgIHJldHVybiBpbmhlcml0JDEobW9kZSwgeyBzdGFydHM6IG1vZGUuc3RhcnRzID8gaW5oZXJpdCQxKG1vZGUuc3RhcnRzKSA6IG51bGwgfSk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmlzRnJvemVuKG1vZGUpKSB7XG4gICAgcmV0dXJuIGluaGVyaXQkMShtb2RlKTtcbiAgfVxuXG4gIC8vIG5vIHNwZWNpYWwgZGVwZW5kZW5jeSBpc3N1ZXMsIGp1c3QgcmV0dXJuIG91cnNlbHZlc1xuICByZXR1cm4gbW9kZTtcbn1cblxudmFyIHZlcnNpb24gPSBcIjExLjEwLjBcIjtcblxuY2xhc3MgSFRNTEluamVjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24sIGh0bWwpIHtcbiAgICBzdXBlcihyZWFzb24pO1xuICAgIHRoaXMubmFtZSA9IFwiSFRNTEluamVjdGlvbkVycm9yXCI7XG4gICAgdGhpcy5odG1sID0gaHRtbDtcbiAgfVxufVxuXG4vKlxuU3ludGF4IGhpZ2hsaWdodGluZyB3aXRoIGxhbmd1YWdlIGF1dG9kZXRlY3Rpb24uXG5odHRwczovL2hpZ2hsaWdodGpzLm9yZy9cbiovXG5cblxuXG4vKipcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLk1vZGV9IE1vZGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkNvbXBpbGVkTW9kZX0gQ29tcGlsZWRNb2RlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Db21waWxlZFNjb3BlfSBDb21waWxlZFNjb3BlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5MYW5ndWFnZX0gTGFuZ3VhZ2VcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkhMSlNBcGl9IEhMSlNBcGlcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkhMSlNQbHVnaW59IEhMSlNQbHVnaW5cbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLlBsdWdpbkV2ZW50fSBQbHVnaW5FdmVudFxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSExKU09wdGlvbnN9IEhMSlNPcHRpb25zXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5MYW5ndWFnZUZufSBMYW5ndWFnZUZuXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5IaWdobGlnaHRlZEhUTUxFbGVtZW50fSBIaWdobGlnaHRlZEhUTUxFbGVtZW50XG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5CZWZvcmVIaWdobGlnaHRDb250ZXh0fSBCZWZvcmVIaWdobGlnaHRDb250ZXh0XG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLk1hdGNoVHlwZX0gTWF0Y2hUeXBlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLktleXdvcmREYXRhfSBLZXl3b3JkRGF0YVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzL3ByaXZhdGUnKS5FbmhhbmNlZE1hdGNofSBFbmhhbmNlZE1hdGNoXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLkFubm90YXRlZEVycm9yfSBBbm5vdGF0ZWRFcnJvclxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQXV0b0hpZ2hsaWdodFJlc3VsdH0gQXV0b0hpZ2hsaWdodFJlc3VsdFxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSGlnaGxpZ2h0T3B0aW9uc30gSGlnaGxpZ2h0T3B0aW9uc1xuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSGlnaGxpZ2h0UmVzdWx0fSBIaWdobGlnaHRSZXN1bHRcbiovXG5cblxuY29uc3QgZXNjYXBlID0gZXNjYXBlSFRNTDtcbmNvbnN0IGluaGVyaXQgPSBpbmhlcml0JDE7XG5jb25zdCBOT19NQVRDSCA9IFN5bWJvbChcIm5vbWF0Y2hcIik7XG5jb25zdCBNQVhfS0VZV09SRF9ISVRTID0gNztcblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gaGxqcyAtIG9iamVjdCB0aGF0IGlzIGV4dGVuZGVkIChsZWdhY3kpXG4gKiBAcmV0dXJucyB7SExKU0FwaX1cbiAqL1xuY29uc3QgSExKUyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgLy8gR2xvYmFsIGludGVybmFsIHZhcmlhYmxlcyB1c2VkIHdpdGhpbiB0aGUgaGlnaGxpZ2h0LmpzIGxpYnJhcnkuXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgTGFuZ3VhZ2U+fSAqL1xuICBjb25zdCBsYW5ndWFnZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IGFsaWFzZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAvKiogQHR5cGUge0hMSlNQbHVnaW5bXX0gKi9cbiAgY29uc3QgcGx1Z2lucyA9IFtdO1xuXG4gIC8vIHNhZmUvcHJvZHVjdGlvbiBtb2RlIC0gc3dhbGxvd3MgbW9yZSBlcnJvcnMsIHRyaWVzIHRvIGtlZXAgcnVubmluZ1xuICAvLyBldmVuIGlmIGEgc2luZ2xlIHN5bnRheCBvciBwYXJzZSBoaXRzIGEgZmF0YWwgZXJyb3JcbiAgbGV0IFNBRkVfTU9ERSA9IHRydWU7XG4gIGNvbnN0IExBTkdVQUdFX05PVF9GT1VORCA9IFwiQ291bGQgbm90IGZpbmQgdGhlIGxhbmd1YWdlICd7fScsIGRpZCB5b3UgZm9yZ2V0IHRvIGxvYWQvaW5jbHVkZSBhIGxhbmd1YWdlIG1vZHVsZT9cIjtcbiAgLyoqIEB0eXBlIHtMYW5ndWFnZX0gKi9cbiAgY29uc3QgUExBSU5URVhUX0xBTkdVQUdFID0geyBkaXNhYmxlQXV0b2RldGVjdDogdHJ1ZSwgbmFtZTogJ1BsYWluIHRleHQnLCBjb250YWluczogW10gfTtcblxuICAvLyBHbG9iYWwgb3B0aW9ucyB1c2VkIHdoZW4gd2l0aGluIGV4dGVybmFsIEFQSXMuIFRoaXMgaXMgbW9kaWZpZWQgd2hlblxuICAvLyBjYWxsaW5nIHRoZSBgaGxqcy5jb25maWd1cmVgIGZ1bmN0aW9uLlxuICAvKiogQHR5cGUgSExKU09wdGlvbnMgKi9cbiAgbGV0IG9wdGlvbnMgPSB7XG4gICAgaWdub3JlVW5lc2NhcGVkSFRNTDogZmFsc2UsXG4gICAgdGhyb3dVbmVzY2FwZWRIVE1MOiBmYWxzZSxcbiAgICBub0hpZ2hsaWdodFJlOiAvXihuby0/aGlnaGxpZ2h0KSQvaSxcbiAgICBsYW5ndWFnZURldGVjdFJlOiAvXFxibGFuZyg/OnVhZ2UpPy0oW1xcdy1dKylcXGIvaSxcbiAgICBjbGFzc1ByZWZpeDogJ2hsanMtJyxcbiAgICBjc3NTZWxlY3RvcjogJ3ByZSBjb2RlJyxcbiAgICBsYW5ndWFnZXM6IG51bGwsXG4gICAgLy8gYmV0YSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHN1YmplY3QgdG8gY2hhbmdlLCB3ZWxjb21lIHRvIGRpc2N1c3NcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8xMDg2XG4gICAgX19lbWl0dGVyOiBUb2tlblRyZWVFbWl0dGVyXG4gIH07XG5cbiAgLyogVXRpbGl0eSBmdW5jdGlvbnMgKi9cblxuICAvKipcbiAgICogVGVzdHMgYSBsYW5ndWFnZSBuYW1lIHRvIHNlZSBpZiBoaWdobGlnaHRpbmcgc2hvdWxkIGJlIHNraXBwZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmd1YWdlTmFtZVxuICAgKi9cbiAgZnVuY3Rpb24gc2hvdWxkTm90SGlnaGxpZ2h0KGxhbmd1YWdlTmFtZSkge1xuICAgIHJldHVybiBvcHRpb25zLm5vSGlnaGxpZ2h0UmUudGVzdChsYW5ndWFnZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SGlnaGxpZ2h0ZWRIVE1MRWxlbWVudH0gYmxvY2sgLSB0aGUgSFRNTCBlbGVtZW50IHRvIGRldGVybWluZSBsYW5ndWFnZSBmb3JcbiAgICovXG4gIGZ1bmN0aW9uIGJsb2NrTGFuZ3VhZ2UoYmxvY2spIHtcbiAgICBsZXQgY2xhc3NlcyA9IGJsb2NrLmNsYXNzTmFtZSArICcgJztcblxuICAgIGNsYXNzZXMgKz0gYmxvY2sucGFyZW50Tm9kZSA/IGJsb2NrLnBhcmVudE5vZGUuY2xhc3NOYW1lIDogJyc7XG5cbiAgICAvLyBsYW5ndWFnZS0qIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBub24tcHJlZml4ZWQgY2xhc3MgbmFtZXMuXG4gICAgY29uc3QgbWF0Y2ggPSBvcHRpb25zLmxhbmd1YWdlRGV0ZWN0UmUuZXhlYyhjbGFzc2VzKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UobWF0Y2hbMV0pO1xuICAgICAgaWYgKCFsYW5ndWFnZSkge1xuICAgICAgICB3YXJuKExBTkdVQUdFX05PVF9GT1VORC5yZXBsYWNlKFwie31cIiwgbWF0Y2hbMV0pKTtcbiAgICAgICAgd2FybihcIkZhbGxpbmcgYmFjayB0byBuby1oaWdobGlnaHQgbW9kZSBmb3IgdGhpcyBibG9jay5cIiwgYmxvY2spO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhbmd1YWdlID8gbWF0Y2hbMV0gOiAnbm8taGlnaGxpZ2h0JztcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3Nlc1xuICAgICAgLnNwbGl0KC9cXHMrLylcbiAgICAgIC5maW5kKChfY2xhc3MpID0+IHNob3VsZE5vdEhpZ2hsaWdodChfY2xhc3MpIHx8IGdldExhbmd1YWdlKF9jbGFzcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgaGlnaGxpZ2h0aW5nIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBPTEQgQVBJXG4gICAqIGhpZ2hsaWdodChsYW5nLCBjb2RlLCBpZ25vcmVJbGxlZ2FscywgY29udGludWF0aW9uKVxuICAgKlxuICAgKiBORVcgQVBJXG4gICAqIGhpZ2hsaWdodChjb2RlLCB7bGFuZywgaWdub3JlSWxsZWdhbHN9KVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29kZU9yTGFuZ3VhZ2VOYW1lIC0gdGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgaGlnaGxpZ2h0aW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgSGlnaGxpZ2h0T3B0aW9uc30gb3B0aW9uc09yQ29kZSAtIHRoZSBjb2RlIHRvIGhpZ2hsaWdodFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpZ25vcmVJbGxlZ2Fsc10gLSB3aGV0aGVyIHRvIGlnbm9yZSBpbGxlZ2FsIG1hdGNoZXMsIGRlZmF1bHQgaXMgdG8gYmFpbFxuICAgKlxuICAgKiBAcmV0dXJucyB7SGlnaGxpZ2h0UmVzdWx0fSBSZXN1bHQgLSBhbiBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSByZXN1bHRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGxhbmd1YWdlIC0gdGhlIGxhbmd1YWdlIG5hbWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHJlbGV2YW5jZSAtIHRoZSByZWxldmFuY2Ugc2NvcmVcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHZhbHVlIC0gdGhlIGhpZ2hsaWdodGVkIEhUTUwgY29kZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gY29kZSAtIHRoZSBvcmlnaW5hbCByYXcgY29kZVxuICAgKiBAcHJvcGVydHkge0NvbXBpbGVkTW9kZX0gdG9wIC0gdG9wIG9mIHRoZSBjdXJyZW50IG1vZGUgc3RhY2tcbiAgICogQHByb3BlcnR5IHtib29sZWFufSBpbGxlZ2FsIC0gaW5kaWNhdGVzIHdoZXRoZXIgYW55IGlsbGVnYWwgbWF0Y2hlcyB3ZXJlIGZvdW5kXG4gICovXG4gIGZ1bmN0aW9uIGhpZ2hsaWdodChjb2RlT3JMYW5ndWFnZU5hbWUsIG9wdGlvbnNPckNvZGUsIGlnbm9yZUlsbGVnYWxzKSB7XG4gICAgbGV0IGNvZGUgPSBcIlwiO1xuICAgIGxldCBsYW5ndWFnZU5hbWUgPSBcIlwiO1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ29kZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgY29kZSA9IGNvZGVPckxhbmd1YWdlTmFtZTtcbiAgICAgIGlnbm9yZUlsbGVnYWxzID0gb3B0aW9uc09yQ29kZS5pZ25vcmVJbGxlZ2FscztcbiAgICAgIGxhbmd1YWdlTmFtZSA9IG9wdGlvbnNPckNvZGUubGFuZ3VhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG9sZCBBUElcbiAgICAgIGRlcHJlY2F0ZWQoXCIxMC43LjBcIiwgXCJoaWdobGlnaHQobGFuZywgY29kZSwgLi4uYXJncykgaGFzIGJlZW4gZGVwcmVjYXRlZC5cIik7XG4gICAgICBkZXByZWNhdGVkKFwiMTAuNy4wXCIsIFwiUGxlYXNlIHVzZSBoaWdobGlnaHQoY29kZSwgb3B0aW9ucykgaW5zdGVhZC5cXG5odHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8yMjc3XCIpO1xuICAgICAgbGFuZ3VhZ2VOYW1lID0gY29kZU9yTGFuZ3VhZ2VOYW1lO1xuICAgICAgY29kZSA9IG9wdGlvbnNPckNvZGU7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzE0OVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcbiAgICBpZiAoaWdub3JlSWxsZWdhbHMgPT09IHVuZGVmaW5lZCkgeyBpZ25vcmVJbGxlZ2FscyA9IHRydWU7IH1cblxuICAgIC8qKiBAdHlwZSB7QmVmb3JlSGlnaGxpZ2h0Q29udGV4dH0gKi9cbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgY29kZSxcbiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZU5hbWVcbiAgICB9O1xuICAgIC8vIHRoZSBwbHVnaW4gY2FuIGNoYW5nZSB0aGUgZGVzaXJlZCBsYW5ndWFnZSBvciB0aGUgY29kZSB0byBiZSBoaWdobGlnaHRlZFxuICAgIC8vIGp1c3QgYmUgY2hhbmdpbmcgdGhlIG9iamVjdCBpdCB3YXMgcGFzc2VkXG4gICAgZmlyZShcImJlZm9yZTpoaWdobGlnaHRcIiwgY29udGV4dCk7XG5cbiAgICAvLyBhIGJlZm9yZSBwbHVnaW4gY2FuIHVzdXJwIHRoZSByZXN1bHQgY29tcGxldGVseSBieSBwcm92aWRpbmcgaXQncyBvd25cbiAgICAvLyBpbiB3aGljaCBjYXNlIHdlIGRvbid0IGV2ZW4gbmVlZCB0byBjYWxsIGhpZ2hsaWdodFxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnRleHQucmVzdWx0XG4gICAgICA/IGNvbnRleHQucmVzdWx0XG4gICAgICA6IF9oaWdobGlnaHQoY29udGV4dC5sYW5ndWFnZSwgY29udGV4dC5jb2RlLCBpZ25vcmVJbGxlZ2Fscyk7XG5cbiAgICByZXN1bHQuY29kZSA9IGNvbnRleHQuY29kZTtcbiAgICAvLyB0aGUgcGx1Z2luIGNhbiBjaGFuZ2UgYW55dGhpbmcgaW4gcmVzdWx0IHRvIHN1aXRlIGl0XG4gICAgZmlyZShcImFmdGVyOmhpZ2hsaWdodFwiLCByZXN1bHQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBwcml2YXRlIGhpZ2hsaWdodCB0aGF0J3MgdXNlZCBpbnRlcm5hbGx5IGFuZCBkb2VzIG5vdCBmaXJlIGNhbGxiYWNrc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VOYW1lIC0gdGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgaGlnaGxpZ2h0aW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlVG9IaWdobGlnaHQgLSB0aGUgY29kZSB0byBoaWdobGlnaHRcbiAgICogQHBhcmFtIHtib29sZWFuP30gW2lnbm9yZUlsbGVnYWxzXSAtIHdoZXRoZXIgdG8gaWdub3JlIGlsbGVnYWwgbWF0Y2hlcywgZGVmYXVsdCBpcyB0byBiYWlsXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlP30gW2NvbnRpbnVhdGlvbl0gLSBjdXJyZW50IGNvbnRpbnVhdGlvbiBtb2RlLCBpZiBhbnlcbiAgICogQHJldHVybnMge0hpZ2hsaWdodFJlc3VsdH0gLSByZXN1bHQgb2YgdGhlIGhpZ2hsaWdodCBvcGVyYXRpb25cbiAgKi9cbiAgZnVuY3Rpb24gX2hpZ2hsaWdodChsYW5ndWFnZU5hbWUsIGNvZGVUb0hpZ2hsaWdodCwgaWdub3JlSWxsZWdhbHMsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGtleXdvcmRIaXRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybiBrZXl3b3JkIGRhdGEgaWYgYSBtYXRjaCBpcyBhIGtleXdvcmRcbiAgICAgKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZSAtIGN1cnJlbnQgbW9kZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtYXRjaFRleHQgLSB0aGUgdGV4dHVhbCBtYXRjaFxuICAgICAqIEByZXR1cm5zIHtLZXl3b3JkRGF0YSB8IGZhbHNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGtleXdvcmREYXRhKG1vZGUsIG1hdGNoVGV4dCkge1xuICAgICAgcmV0dXJuIG1vZGUua2V5d29yZHNbbWF0Y2hUZXh0XTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzS2V5d29yZHMoKSB7XG4gICAgICBpZiAoIXRvcC5rZXl3b3Jkcykge1xuICAgICAgICBlbWl0dGVyLmFkZFRleHQobW9kZUJ1ZmZlcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgICB0b3Aua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXggPSAwO1xuICAgICAgbGV0IG1hdGNoID0gdG9wLmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhtb2RlQnVmZmVyKTtcbiAgICAgIGxldCBidWYgPSBcIlwiO1xuXG4gICAgICB3aGlsZSAobWF0Y2gpIHtcbiAgICAgICAgYnVmICs9IG1vZGVCdWZmZXIuc3Vic3RyaW5nKGxhc3RJbmRleCwgbWF0Y2guaW5kZXgpO1xuICAgICAgICBjb25zdCB3b3JkID0gbGFuZ3VhZ2UuY2FzZV9pbnNlbnNpdGl2ZSA/IG1hdGNoWzBdLnRvTG93ZXJDYXNlKCkgOiBtYXRjaFswXTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGtleXdvcmREYXRhKHRvcCwgd29yZCk7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgY29uc3QgW2tpbmQsIGtleXdvcmRSZWxldmFuY2VdID0gZGF0YTtcbiAgICAgICAgICBlbWl0dGVyLmFkZFRleHQoYnVmKTtcbiAgICAgICAgICBidWYgPSBcIlwiO1xuXG4gICAgICAgICAga2V5d29yZEhpdHNbd29yZF0gPSAoa2V5d29yZEhpdHNbd29yZF0gfHwgMCkgKyAxO1xuICAgICAgICAgIGlmIChrZXl3b3JkSGl0c1t3b3JkXSA8PSBNQVhfS0VZV09SRF9ISVRTKSByZWxldmFuY2UgKz0ga2V5d29yZFJlbGV2YW5jZTtcbiAgICAgICAgICBpZiAoa2luZC5zdGFydHNXaXRoKFwiX1wiKSkge1xuICAgICAgICAgICAgLy8gXyBpbXBsaWVkIGZvciByZWxldmFuY2Ugb25seSwgZG8gbm90IGhpZ2hsaWdodFxuICAgICAgICAgICAgLy8gYnkgYXBwbHlpbmcgYSBjbGFzcyBuYW1lXG4gICAgICAgICAgICBidWYgKz0gbWF0Y2hbMF07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNzc0NsYXNzID0gbGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlc1traW5kXSB8fCBraW5kO1xuICAgICAgICAgICAgZW1pdEtleXdvcmQobWF0Y2hbMF0sIGNzc0NsYXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmICs9IG1hdGNoWzBdO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RJbmRleCA9IHRvcC5rZXl3b3JkUGF0dGVyblJlLmxhc3RJbmRleDtcbiAgICAgICAgbWF0Y2ggPSB0b3Aua2V5d29yZFBhdHRlcm5SZS5leGVjKG1vZGVCdWZmZXIpO1xuICAgICAgfVxuICAgICAgYnVmICs9IG1vZGVCdWZmZXIuc3Vic3RyaW5nKGxhc3RJbmRleCk7XG4gICAgICBlbWl0dGVyLmFkZFRleHQoYnVmKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzU3ViTGFuZ3VhZ2UoKSB7XG4gICAgICBpZiAobW9kZUJ1ZmZlciA9PT0gXCJcIikgcmV0dXJuO1xuICAgICAgLyoqIEB0eXBlIEhpZ2hsaWdodFJlc3VsdCAqL1xuICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG5cbiAgICAgIGlmICh0eXBlb2YgdG9wLnN1Ykxhbmd1YWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoIWxhbmd1YWdlc1t0b3Auc3ViTGFuZ3VhZ2VdKSB7XG4gICAgICAgICAgZW1pdHRlci5hZGRUZXh0KG1vZGVCdWZmZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSBfaGlnaGxpZ2h0KHRvcC5zdWJMYW5ndWFnZSwgbW9kZUJ1ZmZlciwgdHJ1ZSwgY29udGludWF0aW9uc1t0b3Auc3ViTGFuZ3VhZ2VdKTtcbiAgICAgICAgY29udGludWF0aW9uc1t0b3Auc3ViTGFuZ3VhZ2VdID0gLyoqIEB0eXBlIHtDb21waWxlZE1vZGV9ICovIChyZXN1bHQuX3RvcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBoaWdobGlnaHRBdXRvKG1vZGVCdWZmZXIsIHRvcC5zdWJMYW5ndWFnZS5sZW5ndGggPyB0b3Auc3ViTGFuZ3VhZ2UgOiBudWxsKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ291bnRpbmcgZW1iZWRkZWQgbGFuZ3VhZ2Ugc2NvcmUgdG93YXJkcyB0aGUgaG9zdCBsYW5ndWFnZSBtYXkgYmUgZGlzYWJsZWRcbiAgICAgIC8vIHdpdGggemVyb2luZyB0aGUgY29udGFpbmluZyBtb2RlIHJlbGV2YW5jZS4gVXNlIGNhc2UgaW4gcG9pbnQgaXMgTWFya2Rvd24gdGhhdFxuICAgICAgLy8gYWxsb3dzIFhNTCBldmVyeXdoZXJlIGFuZCBtYWtlcyBldmVyeSBYTUwgc25pcHBldCB0byBoYXZlIGEgbXVjaCBsYXJnZXIgTWFya2Rvd25cbiAgICAgIC8vIHNjb3JlLlxuICAgICAgaWYgKHRvcC5yZWxldmFuY2UgPiAwKSB7XG4gICAgICAgIHJlbGV2YW5jZSArPSByZXN1bHQucmVsZXZhbmNlO1xuICAgICAgfVxuICAgICAgZW1pdHRlci5fX2FkZFN1Ymxhbmd1YWdlKHJlc3VsdC5fZW1pdHRlciwgcmVzdWx0Lmxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzQnVmZmVyKCkge1xuICAgICAgaWYgKHRvcC5zdWJMYW5ndWFnZSAhPSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3NTdWJMYW5ndWFnZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvY2Vzc0tleXdvcmRzKCk7XG4gICAgICB9XG4gICAgICBtb2RlQnVmZmVyID0gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlbWl0S2V5d29yZChrZXl3b3JkLCBzY29wZSkge1xuICAgICAgaWYgKGtleXdvcmQgPT09IFwiXCIpIHJldHVybjtcblxuICAgICAgZW1pdHRlci5zdGFydFNjb3BlKHNjb3BlKTtcbiAgICAgIGVtaXR0ZXIuYWRkVGV4dChrZXl3b3JkKTtcbiAgICAgIGVtaXR0ZXIuZW5kU2NvcGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0NvbXBpbGVkU2NvcGV9IHNjb3BlXG4gICAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVtaXRNdWx0aUNsYXNzKHNjb3BlLCBtYXRjaCkge1xuICAgICAgbGV0IGkgPSAxO1xuICAgICAgY29uc3QgbWF4ID0gbWF0Y2gubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpIDw9IG1heCkge1xuICAgICAgICBpZiAoIXNjb3BlLl9lbWl0W2ldKSB7IGkrKzsgY29udGludWU7IH1cbiAgICAgICAgY29uc3Qga2xhc3MgPSBsYW5ndWFnZS5jbGFzc05hbWVBbGlhc2VzW3Njb3BlW2ldXSB8fCBzY29wZVtpXTtcbiAgICAgICAgY29uc3QgdGV4dCA9IG1hdGNoW2ldO1xuICAgICAgICBpZiAoa2xhc3MpIHtcbiAgICAgICAgICBlbWl0S2V5d29yZCh0ZXh0LCBrbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IHRleHQ7XG4gICAgICAgICAgcHJvY2Vzc0tleXdvcmRzKCk7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlIC0gbmV3IG1vZGUgdG8gc3RhcnRcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnROZXdNb2RlKG1vZGUsIG1hdGNoKSB7XG4gICAgICBpZiAobW9kZS5zY29wZSAmJiB0eXBlb2YgbW9kZS5zY29wZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBlbWl0dGVyLm9wZW5Ob2RlKGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXNbbW9kZS5zY29wZV0gfHwgbW9kZS5zY29wZSk7XG4gICAgICB9XG4gICAgICBpZiAobW9kZS5iZWdpblNjb3BlKSB7XG4gICAgICAgIC8vIGJlZ2luU2NvcGUganVzdCB3cmFwcyB0aGUgYmVnaW4gbWF0Y2ggaXRzZWxmIGluIGEgc2NvcGVcbiAgICAgICAgaWYgKG1vZGUuYmVnaW5TY29wZS5fd3JhcCkge1xuICAgICAgICAgIGVtaXRLZXl3b3JkKG1vZGVCdWZmZXIsIGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXNbbW9kZS5iZWdpblNjb3BlLl93cmFwXSB8fCBtb2RlLmJlZ2luU2NvcGUuX3dyYXApO1xuICAgICAgICAgIG1vZGVCdWZmZXIgPSBcIlwiO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGUuYmVnaW5TY29wZS5fbXVsdGkpIHtcbiAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50IG1vZGVCdWZmZXIgc2hvdWxkIGp1c3QgYmUgdGhlIG1hdGNoXG4gICAgICAgICAgZW1pdE11bHRpQ2xhc3MobW9kZS5iZWdpblNjb3BlLCBtYXRjaCk7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdG9wID0gT2JqZWN0LmNyZWF0ZShtb2RlLCB7IHBhcmVudDogeyB2YWx1ZTogdG9wIH0gfSk7XG4gICAgICByZXR1cm4gdG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlIH0gbW9kZSAtIHRoZSBtb2RlIHRvIHBvdGVudGlhbGx5IGVuZFxuICAgICAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hBcnJheX0gbWF0Y2ggLSB0aGUgbGF0ZXN0IG1hdGNoXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1hdGNoUGx1c1JlbWFpbmRlciAtIG1hdGNoIHBsdXMgcmVtYWluZGVyIG9mIGNvbnRlbnRcbiAgICAgKiBAcmV0dXJucyB7Q29tcGlsZWRNb2RlIHwgdm9pZH0gLSB0aGUgbmV4dCBtb2RlLCBvciBpZiB2b2lkIGNvbnRpbnVlIG9uIGluIGN1cnJlbnQgbW9kZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVuZE9mTW9kZShtb2RlLCBtYXRjaCwgbWF0Y2hQbHVzUmVtYWluZGVyKSB7XG4gICAgICBsZXQgbWF0Y2hlZCA9IHN0YXJ0c1dpdGgobW9kZS5lbmRSZSwgbWF0Y2hQbHVzUmVtYWluZGVyKTtcblxuICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgaWYgKG1vZGVbXCJvbjplbmRcIl0pIHtcbiAgICAgICAgICBjb25zdCByZXNwID0gbmV3IFJlc3BvbnNlKG1vZGUpO1xuICAgICAgICAgIG1vZGVbXCJvbjplbmRcIl0obWF0Y2gsIHJlc3ApO1xuICAgICAgICAgIGlmIChyZXNwLmlzTWF0Y2hJZ25vcmVkKSBtYXRjaGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICAgIHdoaWxlIChtb2RlLmVuZHNQYXJlbnQgJiYgbW9kZS5wYXJlbnQpIHtcbiAgICAgICAgICAgIG1vZGUgPSBtb2RlLnBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGV2ZW4gaWYgb246ZW5kIGZpcmVzIGFuIGBpZ25vcmVgIGl0J3Mgc3RpbGwgcG9zc2libGVcbiAgICAgIC8vIHRoYXQgd2UgbWlnaHQgdHJpZ2dlciB0aGUgZW5kIG5vZGUgYmVjYXVzZSBvZiBhIHBhcmVudCBtb2RlXG4gICAgICBpZiAobW9kZS5lbmRzV2l0aFBhcmVudCkge1xuICAgICAgICByZXR1cm4gZW5kT2ZNb2RlKG1vZGUucGFyZW50LCBtYXRjaCwgbWF0Y2hQbHVzUmVtYWluZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgbWF0Y2hpbmcgYnV0IHRoZW4gaWdub3JpbmcgYSBzZXF1ZW5jZSBvZiB0ZXh0XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGV4ZW1lIC0gc3RyaW5nIGNvbnRhaW5pbmcgZnVsbCBtYXRjaCB0ZXh0XG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9JZ25vcmUobGV4ZW1lKSB7XG4gICAgICBpZiAodG9wLm1hdGNoZXIucmVnZXhJbmRleCA9PT0gMCkge1xuICAgICAgICAvLyBubyBtb3JlIHJlZ2V4ZXMgdG8gcG90ZW50aWFsbHkgbWF0Y2ggaGVyZSwgc28gd2UgbW92ZSB0aGUgY3Vyc29yIGZvcndhcmQgb25lXG4gICAgICAgIC8vIHNwYWNlXG4gICAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lWzBdO1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vIG5lZWQgdG8gbW92ZSB0aGUgY3Vyc29yLCB3ZSBzdGlsbCBoYXZlIGFkZGl0aW9uYWwgcmVnZXhlcyB0byB0cnkgYW5kXG4gICAgICAgIC8vIG1hdGNoIGF0IHRoaXMgdmVyeSBzcG90XG4gICAgICAgIHJlc3VtZVNjYW5BdFNhbWVQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSB0aGUgc3RhcnQgb2YgYSBuZXcgcG90ZW50aWFsIG1vZGUgbWF0Y2hcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RW5oYW5jZWRNYXRjaH0gbWF0Y2ggLSB0aGUgY3VycmVudCBtYXRjaFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IGhvdyBmYXIgdG8gYWR2YW5jZSB0aGUgcGFyc2UgY3Vyc29yXG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9CZWdpbk1hdGNoKG1hdGNoKSB7XG4gICAgICBjb25zdCBsZXhlbWUgPSBtYXRjaFswXTtcbiAgICAgIGNvbnN0IG5ld01vZGUgPSBtYXRjaC5ydWxlO1xuXG4gICAgICBjb25zdCByZXNwID0gbmV3IFJlc3BvbnNlKG5ld01vZGUpO1xuICAgICAgLy8gZmlyc3QgaW50ZXJuYWwgYmVmb3JlIGNhbGxiYWNrcywgdGhlbiB0aGUgcHVibGljIG9uZXNcbiAgICAgIGNvbnN0IGJlZm9yZUNhbGxiYWNrcyA9IFtuZXdNb2RlLl9fYmVmb3JlQmVnaW4sIG5ld01vZGVbXCJvbjpiZWdpblwiXV07XG4gICAgICBmb3IgKGNvbnN0IGNiIG9mIGJlZm9yZUNhbGxiYWNrcykge1xuICAgICAgICBpZiAoIWNiKSBjb250aW51ZTtcbiAgICAgICAgY2IobWF0Y2gsIHJlc3ApO1xuICAgICAgICBpZiAocmVzcC5pc01hdGNoSWdub3JlZCkgcmV0dXJuIGRvSWdub3JlKGxleGVtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdNb2RlLnNraXApIHtcbiAgICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobmV3TW9kZS5leGNsdWRlQmVnaW4pIHtcbiAgICAgICAgICBtb2RlQnVmZmVyICs9IGxleGVtZTtcbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgIGlmICghbmV3TW9kZS5yZXR1cm5CZWdpbiAmJiAhbmV3TW9kZS5leGNsdWRlQmVnaW4pIHtcbiAgICAgICAgICBtb2RlQnVmZmVyID0gbGV4ZW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdGFydE5ld01vZGUobmV3TW9kZSwgbWF0Y2gpO1xuICAgICAgcmV0dXJuIG5ld01vZGUucmV0dXJuQmVnaW4gPyAwIDogbGV4ZW1lLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgdGhlIHBvdGVudGlhbCBlbmQgb2YgbW9kZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaCAtIHRoZSBjdXJyZW50IG1hdGNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9FbmRNYXRjaChtYXRjaCkge1xuICAgICAgY29uc3QgbGV4ZW1lID0gbWF0Y2hbMF07XG4gICAgICBjb25zdCBtYXRjaFBsdXNSZW1haW5kZXIgPSBjb2RlVG9IaWdobGlnaHQuc3Vic3RyaW5nKG1hdGNoLmluZGV4KTtcblxuICAgICAgY29uc3QgZW5kTW9kZSA9IGVuZE9mTW9kZSh0b3AsIG1hdGNoLCBtYXRjaFBsdXNSZW1haW5kZXIpO1xuICAgICAgaWYgKCFlbmRNb2RlKSB7IHJldHVybiBOT19NQVRDSDsgfVxuXG4gICAgICBjb25zdCBvcmlnaW4gPSB0b3A7XG4gICAgICBpZiAodG9wLmVuZFNjb3BlICYmIHRvcC5lbmRTY29wZS5fd3JhcCkge1xuICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgIGVtaXRLZXl3b3JkKGxleGVtZSwgdG9wLmVuZFNjb3BlLl93cmFwKTtcbiAgICAgIH0gZWxzZSBpZiAodG9wLmVuZFNjb3BlICYmIHRvcC5lbmRTY29wZS5fbXVsdGkpIHtcbiAgICAgICAgcHJvY2Vzc0J1ZmZlcigpO1xuICAgICAgICBlbWl0TXVsdGlDbGFzcyh0b3AuZW5kU2NvcGUsIG1hdGNoKTtcbiAgICAgIH0gZWxzZSBpZiAob3JpZ2luLnNraXApIHtcbiAgICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIShvcmlnaW4ucmV0dXJuRW5kIHx8IG9yaWdpbi5leGNsdWRlRW5kKSkge1xuICAgICAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgaWYgKG9yaWdpbi5leGNsdWRlRW5kKSB7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IGxleGVtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG8ge1xuICAgICAgICBpZiAodG9wLnNjb3BlKSB7XG4gICAgICAgICAgZW1pdHRlci5jbG9zZU5vZGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRvcC5za2lwICYmICF0b3Auc3ViTGFuZ3VhZ2UpIHtcbiAgICAgICAgICByZWxldmFuY2UgKz0gdG9wLnJlbGV2YW5jZTtcbiAgICAgICAgfVxuICAgICAgICB0b3AgPSB0b3AucGFyZW50O1xuICAgICAgfSB3aGlsZSAodG9wICE9PSBlbmRNb2RlLnBhcmVudCk7XG4gICAgICBpZiAoZW5kTW9kZS5zdGFydHMpIHtcbiAgICAgICAgc3RhcnROZXdNb2RlKGVuZE1vZGUuc3RhcnRzLCBtYXRjaCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ2luLnJldHVybkVuZCA/IDAgOiBsZXhlbWUubGVuZ3RoO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NDb250aW51YXRpb25zKCkge1xuICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgZm9yIChsZXQgY3VycmVudCA9IHRvcDsgY3VycmVudCAhPT0gbGFuZ3VhZ2U7IGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudCkge1xuICAgICAgICBpZiAoY3VycmVudC5zY29wZSkge1xuICAgICAgICAgIGxpc3QudW5zaGlmdChjdXJyZW50LnNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4gZW1pdHRlci5vcGVuTm9kZShpdGVtKSk7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHt7dHlwZT86IE1hdGNoVHlwZSwgaW5kZXg/OiBudW1iZXIsIHJ1bGU/OiBNb2RlfX19ICovXG4gICAgbGV0IGxhc3RNYXRjaCA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogIFByb2Nlc3MgYW4gaW5kaXZpZHVhbCBtYXRjaFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHRCZWZvcmVNYXRjaCAtIHRleHQgcHJlY2VkaW5nIHRoZSBtYXRjaCAoc2luY2UgdGhlIGxhc3QgbWF0Y2gpXG4gICAgICogQHBhcmFtIHtFbmhhbmNlZE1hdGNofSBbbWF0Y2hdIC0gdGhlIG1hdGNoIGl0c2VsZlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb2Nlc3NMZXhlbWUodGV4dEJlZm9yZU1hdGNoLCBtYXRjaCkge1xuICAgICAgY29uc3QgbGV4ZW1lID0gbWF0Y2ggJiYgbWF0Y2hbMF07XG5cbiAgICAgIC8vIGFkZCBub24tbWF0Y2hlZCB0ZXh0IHRvIHRoZSBjdXJyZW50IG1vZGUgYnVmZmVyXG4gICAgICBtb2RlQnVmZmVyICs9IHRleHRCZWZvcmVNYXRjaDtcblxuICAgICAgaWYgKGxleGVtZSA9PSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG5cbiAgICAgIC8vIHdlJ3ZlIGZvdW5kIGEgMCB3aWR0aCBtYXRjaCBhbmQgd2UncmUgc3R1Y2ssIHNvIHdlIG5lZWQgdG8gYWR2YW5jZVxuICAgICAgLy8gdGhpcyBoYXBwZW5zIHdoZW4gd2UgaGF2ZSBiYWRseSBiZWhhdmVkIHJ1bGVzIHRoYXQgaGF2ZSBvcHRpb25hbCBtYXRjaGVycyB0byB0aGUgZGVncmVlIHRoYXRcbiAgICAgIC8vIHNvbWV0aW1lcyB0aGV5IGNhbiBlbmQgdXAgbWF0Y2hpbmcgbm90aGluZyBhdCBhbGxcbiAgICAgIC8vIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjE0MFxuICAgICAgaWYgKGxhc3RNYXRjaC50eXBlID09PSBcImJlZ2luXCIgJiYgbWF0Y2gudHlwZSA9PT0gXCJlbmRcIiAmJiBsYXN0TWF0Y2guaW5kZXggPT09IG1hdGNoLmluZGV4ICYmIGxleGVtZSA9PT0gXCJcIikge1xuICAgICAgICAvLyBzcGl0IHRoZSBcInNraXBwZWRcIiBjaGFyYWN0ZXIgdGhhdCBvdXIgcmVnZXggY2hva2VkIG9uIGJhY2sgaW50byB0aGUgb3V0cHV0IHNlcXVlbmNlXG4gICAgICAgIG1vZGVCdWZmZXIgKz0gY29kZVRvSGlnaGxpZ2h0LnNsaWNlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIDEpO1xuICAgICAgICBpZiAoIVNBRkVfTU9ERSkge1xuICAgICAgICAgIC8qKiBAdHlwZSB7QW5ub3RhdGVkRXJyb3J9ICovXG4gICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKGAwIHdpZHRoIG1hdGNoIHJlZ2V4ICgke2xhbmd1YWdlTmFtZX0pYCk7XG4gICAgICAgICAgZXJyLmxhbmd1YWdlTmFtZSA9IGxhbmd1YWdlTmFtZTtcbiAgICAgICAgICBlcnIuYmFkUnVsZSA9IGxhc3RNYXRjaC5ydWxlO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGxhc3RNYXRjaCA9IG1hdGNoO1xuXG4gICAgICBpZiAobWF0Y2gudHlwZSA9PT0gXCJiZWdpblwiKSB7XG4gICAgICAgIHJldHVybiBkb0JlZ2luTWF0Y2gobWF0Y2gpO1xuICAgICAgfSBlbHNlIGlmIChtYXRjaC50eXBlID09PSBcImlsbGVnYWxcIiAmJiAhaWdub3JlSWxsZWdhbHMpIHtcbiAgICAgICAgLy8gaWxsZWdhbCBtYXRjaCwgd2UgZG8gbm90IGNvbnRpbnVlIHByb2Nlc3NpbmdcbiAgICAgICAgLyoqIEB0eXBlIHtBbm5vdGF0ZWRFcnJvcn0gKi9cbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCdJbGxlZ2FsIGxleGVtZSBcIicgKyBsZXhlbWUgKyAnXCIgZm9yIG1vZGUgXCInICsgKHRvcC5zY29wZSB8fCAnPHVubmFtZWQ+JykgKyAnXCInKTtcbiAgICAgICAgZXJyLm1vZGUgPSB0b3A7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZWxzZSBpZiAobWF0Y2gudHlwZSA9PT0gXCJlbmRcIikge1xuICAgICAgICBjb25zdCBwcm9jZXNzZWQgPSBkb0VuZE1hdGNoKG1hdGNoKTtcbiAgICAgICAgaWYgKHByb2Nlc3NlZCAhPT0gTk9fTUFUQ0gpIHtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGVkZ2UgY2FzZSBmb3Igd2hlbiBpbGxlZ2FsIG1hdGNoZXMgJCAoZW5kIG9mIGxpbmUpIHdoaWNoIGlzIHRlY2huaWNhbGx5XG4gICAgICAvLyBhIDAgd2lkdGggbWF0Y2ggYnV0IG5vdCBhIGJlZ2luL2VuZCBtYXRjaCBzbyBpdCdzIG5vdCBjYXVnaHQgYnkgdGhlXG4gICAgICAvLyBmaXJzdCBoYW5kbGVyICh3aGVuIGlnbm9yZUlsbGVnYWxzIGlzIHRydWUpXG4gICAgICBpZiAobWF0Y2gudHlwZSA9PT0gXCJpbGxlZ2FsXCIgJiYgbGV4ZW1lID09PSBcIlwiKSB7XG4gICAgICAgIC8vIGFkdmFuY2Ugc28gd2UgYXJlbid0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3BcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG5cbiAgICAgIC8vIGluZmluaXRlIGxvb3BzIGFyZSBCQUQsIHRoaXMgaXMgYSBsYXN0IGRpdGNoIGNhdGNoIGFsbC4gaWYgd2UgaGF2ZSBhXG4gICAgICAvLyBkZWNlbnQgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgeWV0IG91ciBpbmRleCAoY3Vyc29yIHBvc2l0aW9uIGluIG91clxuICAgICAgLy8gcGFyc2luZykgc3RpbGwgM3ggYmVoaW5kIG91ciBpbmRleCB0aGVuIHNvbWV0aGluZyBpcyB2ZXJ5IHdyb25nXG4gICAgICAvLyBzbyB3ZSBiYWlsXG4gICAgICBpZiAoaXRlcmF0aW9ucyA+IDEwMDAwMCAmJiBpdGVyYXRpb25zID4gbWF0Y2guaW5kZXggKiAzKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcigncG90ZW50aWFsIGluZmluaXRlIGxvb3AsIHdheSBtb3JlIGl0ZXJhdGlvbnMgdGhhbiBtYXRjaGVzJyk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgLypcbiAgICAgIFdoeSBtaWdodCBiZSBmaW5kIG91cnNlbHZlcyBoZXJlPyAgQW4gcG90ZW50aWFsIGVuZCBtYXRjaCB0aGF0IHdhc1xuICAgICAgdHJpZ2dlcmVkIGJ1dCBjb3VsZCBub3QgYmUgY29tcGxldGVkLiAgSUUsIGBkb0VuZE1hdGNoYCByZXR1cm5lZCBOT19NQVRDSC5cbiAgICAgICh0aGlzIGNvdWxkIGJlIGJlY2F1c2UgYSBjYWxsYmFjayByZXF1ZXN0cyB0aGUgbWF0Y2ggYmUgaWdub3JlZCwgZXRjKVxuXG4gICAgICBUaGlzIGNhdXNlcyBubyByZWFsIGhhcm0gb3RoZXIgdGhhbiBzdG9wcGluZyBhIGZldyB0aW1lcyB0b28gbWFueS5cbiAgICAgICovXG5cbiAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgcmV0dXJuIGxleGVtZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShsYW5ndWFnZU5hbWUpO1xuICAgIGlmICghbGFuZ3VhZ2UpIHtcbiAgICAgIGVycm9yKExBTkdVQUdFX05PVF9GT1VORC5yZXBsYWNlKFwie31cIiwgbGFuZ3VhZ2VOYW1lKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGFuZ3VhZ2U6IFwiJyArIGxhbmd1YWdlTmFtZSArICdcIicpO1xuICAgIH1cblxuICAgIGNvbnN0IG1kID0gY29tcGlsZUxhbmd1YWdlKGxhbmd1YWdlKTtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgLyoqIEB0eXBlIHtDb21waWxlZE1vZGV9ICovXG4gICAgbGV0IHRvcCA9IGNvbnRpbnVhdGlvbiB8fCBtZDtcbiAgICAvKiogQHR5cGUgUmVjb3JkPHN0cmluZyxDb21waWxlZE1vZGU+ICovXG4gICAgY29uc3QgY29udGludWF0aW9ucyA9IHt9OyAvLyBrZWVwIGNvbnRpbnVhdGlvbnMgZm9yIHN1Yi1sYW5ndWFnZXNcbiAgICBjb25zdCBlbWl0dGVyID0gbmV3IG9wdGlvbnMuX19lbWl0dGVyKG9wdGlvbnMpO1xuICAgIHByb2Nlc3NDb250aW51YXRpb25zKCk7XG4gICAgbGV0IG1vZGVCdWZmZXIgPSAnJztcbiAgICBsZXQgcmVsZXZhbmNlID0gMDtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGxldCBpdGVyYXRpb25zID0gMDtcbiAgICBsZXQgcmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKCFsYW5ndWFnZS5fX2VtaXRUb2tlbnMpIHtcbiAgICAgICAgdG9wLm1hdGNoZXIuY29uc2lkZXJBbGwoKTtcblxuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgaXRlcmF0aW9ucysrO1xuICAgICAgICAgIGlmIChyZXN1bWVTY2FuQXRTYW1lUG9zaXRpb24pIHtcbiAgICAgICAgICAgIC8vIG9ubHkgcmVnZXhlcyBub3QgbWF0Y2hlZCBwcmV2aW91c2x5IHdpbGwgbm93IGJlXG4gICAgICAgICAgICAvLyBjb25zaWRlcmVkIGZvciBhIHBvdGVudGlhbCBtYXRjaFxuICAgICAgICAgICAgcmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcC5tYXRjaGVyLmNvbnNpZGVyQWxsKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRvcC5tYXRjaGVyLmxhc3RJbmRleCA9IGluZGV4O1xuXG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0b3AubWF0Y2hlci5leGVjKGNvZGVUb0hpZ2hsaWdodCk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJtYXRjaFwiLCBtYXRjaFswXSwgbWF0Y2gucnVsZSAmJiBtYXRjaC5ydWxlLmJlZ2luKVxuXG4gICAgICAgICAgaWYgKCFtYXRjaCkgYnJlYWs7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVNYXRjaCA9IGNvZGVUb0hpZ2hsaWdodC5zdWJzdHJpbmcoaW5kZXgsIG1hdGNoLmluZGV4KTtcbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWRDb3VudCA9IHByb2Nlc3NMZXhlbWUoYmVmb3JlTWF0Y2gsIG1hdGNoKTtcbiAgICAgICAgICBpbmRleCA9IG1hdGNoLmluZGV4ICsgcHJvY2Vzc2VkQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgcHJvY2Vzc0xleGVtZShjb2RlVG9IaWdobGlnaHQuc3Vic3RyaW5nKGluZGV4KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYW5ndWFnZS5fX2VtaXRUb2tlbnMoY29kZVRvSGlnaGxpZ2h0LCBlbWl0dGVyKTtcbiAgICAgIH1cblxuICAgICAgZW1pdHRlci5maW5hbGl6ZSgpO1xuICAgICAgcmVzdWx0ID0gZW1pdHRlci50b0hUTUwoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlTmFtZSxcbiAgICAgICAgdmFsdWU6IHJlc3VsdCxcbiAgICAgICAgcmVsZXZhbmNlLFxuICAgICAgICBpbGxlZ2FsOiBmYWxzZSxcbiAgICAgICAgX2VtaXR0ZXI6IGVtaXR0ZXIsXG4gICAgICAgIF90b3A6IHRvcFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZSAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcygnSWxsZWdhbCcpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlTmFtZSxcbiAgICAgICAgICB2YWx1ZTogZXNjYXBlKGNvZGVUb0hpZ2hsaWdodCksXG4gICAgICAgICAgaWxsZWdhbDogdHJ1ZSxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgX2lsbGVnYWxCeToge1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvZGVUb0hpZ2hsaWdodC5zbGljZShpbmRleCAtIDEwMCwgaW5kZXggKyAxMDApLFxuICAgICAgICAgICAgbW9kZTogZXJyLm1vZGUsXG4gICAgICAgICAgICByZXN1bHRTb0ZhcjogcmVzdWx0XG4gICAgICAgICAgfSxcbiAgICAgICAgICBfZW1pdHRlcjogZW1pdHRlclxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChTQUZFX01PREUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VOYW1lLFxuICAgICAgICAgIHZhbHVlOiBlc2NhcGUoY29kZVRvSGlnaGxpZ2h0KSxcbiAgICAgICAgICBpbGxlZ2FsOiBmYWxzZSxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgZXJyb3JSYWlzZWQ6IGVycixcbiAgICAgICAgICBfZW1pdHRlcjogZW1pdHRlcixcbiAgICAgICAgICBfdG9wOiB0b3BcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJucyBhIHZhbGlkIGhpZ2hsaWdodCByZXN1bHQsIHdpdGhvdXQgYWN0dWFsbHkgZG9pbmcgYW55IGFjdHVhbCB3b3JrLFxuICAgKiBhdXRvIGhpZ2hsaWdodCBzdGFydHMgd2l0aCB0aGlzIGFuZCBpdCdzIHBvc3NpYmxlIGZvciBzbWFsbCBzbmlwcGV0cyB0aGF0XG4gICAqIGF1dG8tZGV0ZWN0aW9uIG1heSBub3QgZmluZCBhIGJldHRlciBtYXRjaFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29kZVxuICAgKiBAcmV0dXJucyB7SGlnaGxpZ2h0UmVzdWx0fVxuICAgKi9cbiAgZnVuY3Rpb24ganVzdFRleHRIaWdobGlnaHRSZXN1bHQoY29kZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHZhbHVlOiBlc2NhcGUoY29kZSksXG4gICAgICBpbGxlZ2FsOiBmYWxzZSxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIF90b3A6IFBMQUlOVEVYVF9MQU5HVUFHRSxcbiAgICAgIF9lbWl0dGVyOiBuZXcgb3B0aW9ucy5fX2VtaXR0ZXIob3B0aW9ucylcbiAgICB9O1xuICAgIHJlc3VsdC5fZW1pdHRlci5hZGRUZXh0KGNvZGUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgSGlnaGxpZ2h0aW5nIHdpdGggbGFuZ3VhZ2UgZGV0ZWN0aW9uLiBBY2NlcHRzIGEgc3RyaW5nIHdpdGggdGhlIGNvZGUgdG9cbiAgaGlnaGxpZ2h0LiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcblxuICAtIGxhbmd1YWdlIChkZXRlY3RlZCBsYW5ndWFnZSlcbiAgLSByZWxldmFuY2UgKGludClcbiAgLSB2YWx1ZSAoYW4gSFRNTCBzdHJpbmcgd2l0aCBoaWdobGlnaHRpbmcgbWFya3VwKVxuICAtIHNlY29uZEJlc3QgKG9iamVjdCB3aXRoIHRoZSBzYW1lIHN0cnVjdHVyZSBmb3Igc2Vjb25kLWJlc3QgaGV1cmlzdGljYWxseVxuICAgIGRldGVjdGVkIGxhbmd1YWdlLCBtYXkgYmUgYWJzZW50KVxuXG4gICAgQHBhcmFtIHtzdHJpbmd9IGNvZGVcbiAgICBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtsYW5ndWFnZVN1YnNldF1cbiAgICBAcmV0dXJucyB7QXV0b0hpZ2hsaWdodFJlc3VsdH1cbiAgKi9cbiAgZnVuY3Rpb24gaGlnaGxpZ2h0QXV0byhjb2RlLCBsYW5ndWFnZVN1YnNldCkge1xuICAgIGxhbmd1YWdlU3Vic2V0ID0gbGFuZ3VhZ2VTdWJzZXQgfHwgb3B0aW9ucy5sYW5ndWFnZXMgfHwgT2JqZWN0LmtleXMobGFuZ3VhZ2VzKTtcbiAgICBjb25zdCBwbGFpbnRleHQgPSBqdXN0VGV4dEhpZ2hsaWdodFJlc3VsdChjb2RlKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBsYW5ndWFnZVN1YnNldC5maWx0ZXIoZ2V0TGFuZ3VhZ2UpLmZpbHRlcihhdXRvRGV0ZWN0aW9uKS5tYXAobmFtZSA9PlxuICAgICAgX2hpZ2hsaWdodChuYW1lLCBjb2RlLCBmYWxzZSlcbiAgICApO1xuICAgIHJlc3VsdHMudW5zaGlmdChwbGFpbnRleHQpOyAvLyBwbGFpbnRleHQgaXMgYWx3YXlzIGFuIG9wdGlvblxuXG4gICAgY29uc3Qgc29ydGVkID0gcmVzdWx0cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAvLyBzb3J0IGJhc2Ugb24gcmVsZXZhbmNlXG4gICAgICBpZiAoYS5yZWxldmFuY2UgIT09IGIucmVsZXZhbmNlKSByZXR1cm4gYi5yZWxldmFuY2UgLSBhLnJlbGV2YW5jZTtcblxuICAgICAgLy8gYWx3YXlzIGF3YXJkIHRoZSB0aWUgdG8gdGhlIGJhc2UgbGFuZ3VhZ2VcbiAgICAgIC8vIGllIGlmIEMrKyBhbmQgQXJkdWlubyBhcmUgdGllZCwgaXQncyBtb3JlIGxpa2VseSB0byBiZSBDKytcbiAgICAgIGlmIChhLmxhbmd1YWdlICYmIGIubGFuZ3VhZ2UpIHtcbiAgICAgICAgaWYgKGdldExhbmd1YWdlKGEubGFuZ3VhZ2UpLnN1cGVyc2V0T2YgPT09IGIubGFuZ3VhZ2UpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChnZXRMYW5ndWFnZShiLmxhbmd1YWdlKS5zdXBlcnNldE9mID09PSBhLmxhbmd1YWdlKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSBzYXkgdGhleSBhcmUgZXF1YWwsIHdoaWNoIGhhcyB0aGUgZWZmZWN0IG9mIHNvcnRpbmcgb25cbiAgICAgIC8vIHJlbGV2YW5jZSB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBvcmlnaW5hbCBvcmRlcmluZyAtIHdoaWNoIGlzIGhvdyB0aWVzXG4gICAgICAvLyBoYXZlIGhpc3RvcmljYWxseSBiZWVuIHNldHRsZWQsIGllIHRoZSBsYW5ndWFnZSB0aGF0IGNvbWVzIGZpcnN0IGFsd2F5c1xuICAgICAgLy8gd2lucyBpbiB0aGUgY2FzZSBvZiBhIHRpZVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgICBjb25zdCBbYmVzdCwgc2Vjb25kQmVzdF0gPSBzb3J0ZWQ7XG5cbiAgICAvKiogQHR5cGUge0F1dG9IaWdobGlnaHRSZXN1bHR9ICovXG4gICAgY29uc3QgcmVzdWx0ID0gYmVzdDtcbiAgICByZXN1bHQuc2Vjb25kQmVzdCA9IHNlY29uZEJlc3Q7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBuZXcgY2xhc3MgbmFtZSBmb3IgYmxvY2sgZ2l2ZW4gdGhlIGxhbmd1YWdlIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2N1cnJlbnRMYW5nXVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3Jlc3VsdExhbmddXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVDbGFzc05hbWUoZWxlbWVudCwgY3VycmVudExhbmcsIHJlc3VsdExhbmcpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IChjdXJyZW50TGFuZyAmJiBhbGlhc2VzW2N1cnJlbnRMYW5nXSkgfHwgcmVzdWx0TGFuZztcblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhsanNcIik7XG4gICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGBsYW5ndWFnZS0ke2xhbmd1YWdlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIGEgRE9NIG5vZGUgY29udGFpbmluZyBjb2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge0hpZ2hsaWdodGVkSFRNTEVsZW1lbnR9IGVsZW1lbnQgLSB0aGUgSFRNTCBlbGVtZW50IHRvIGhpZ2hsaWdodFxuICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAvKiogQHR5cGUgSFRNTEVsZW1lbnQgKi9cbiAgICBsZXQgbm9kZSA9IG51bGw7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBibG9ja0xhbmd1YWdlKGVsZW1lbnQpO1xuXG4gICAgaWYgKHNob3VsZE5vdEhpZ2hsaWdodChsYW5ndWFnZSkpIHJldHVybjtcblxuICAgIGZpcmUoXCJiZWZvcmU6aGlnaGxpZ2h0RWxlbWVudFwiLFxuICAgICAgeyBlbDogZWxlbWVudCwgbGFuZ3VhZ2UgfSk7XG5cbiAgICBpZiAoZWxlbWVudC5kYXRhc2V0LmhpZ2hsaWdodGVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkVsZW1lbnQgcHJldmlvdXNseSBoaWdobGlnaHRlZC4gVG8gaGlnaGxpZ2h0IGFnYWluLCBmaXJzdCB1bnNldCBgZGF0YXNldC5oaWdobGlnaHRlZGAuXCIsIGVsZW1lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHdlIHNob3VsZCBiZSBhbGwgdGV4dCwgbm8gY2hpbGQgbm9kZXMgKHVuZXNjYXBlZCBIVE1MKSAtIHRoaXMgaXMgcG9zc2libHlcbiAgICAvLyBhbiBIVE1MIGluamVjdGlvbiBhdHRhY2sgLSBpdCdzIGxpa2VseSB0b28gbGF0ZSBpZiB0aGlzIGlzIGFscmVhZHkgaW5cbiAgICAvLyBwcm9kdWN0aW9uICh0aGUgY29kZSBoYXMgbGlrZWx5IGFscmVhZHkgZG9uZSBpdHMgZGFtYWdlIGJ5IHRoZSB0aW1lXG4gICAgLy8gd2UncmUgc2VlaW5nIGl0KS4uLiBidXQgd2UgeWVsbCBsb3VkbHkgYWJvdXQgdGhpcyBzbyB0aGF0IGhvcGVmdWxseSBpdCdzXG4gICAgLy8gbW9yZSBsaWtlbHkgdG8gYmUgY2F1Z2h0IGluIGRldmVsb3BtZW50IGJlZm9yZSBtYWtpbmcgaXQgdG8gcHJvZHVjdGlvblxuICAgIGlmIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICghb3B0aW9ucy5pZ25vcmVVbmVzY2FwZWRIVE1MKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIk9uZSBvZiB5b3VyIGNvZGUgYmxvY2tzIGluY2x1ZGVzIHVuZXNjYXBlZCBIVE1MLiBUaGlzIGlzIGEgcG90ZW50aWFsbHkgc2VyaW91cyBzZWN1cml0eSByaXNrLlwiKTtcbiAgICAgICAgY29uc29sZS53YXJuKFwiaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy93aWtpL3NlY3VyaXR5XCIpO1xuICAgICAgICBjb25zb2xlLndhcm4oXCJUaGUgZWxlbWVudCB3aXRoIHVuZXNjYXBlZCBIVE1MOlwiKTtcbiAgICAgICAgY29uc29sZS53YXJuKGVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMudGhyb3dVbmVzY2FwZWRIVE1MKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBIVE1MSW5qZWN0aW9uRXJyb3IoXG4gICAgICAgICAgXCJPbmUgb2YgeW91ciBjb2RlIGJsb2NrcyBpbmNsdWRlcyB1bmVzY2FwZWQgSFRNTC5cIixcbiAgICAgICAgICBlbGVtZW50LmlubmVySFRNTFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IGVsZW1lbnQ7XG4gICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG4gICAgY29uc3QgcmVzdWx0ID0gbGFuZ3VhZ2UgPyBoaWdobGlnaHQodGV4dCwgeyBsYW5ndWFnZSwgaWdub3JlSWxsZWdhbHM6IHRydWUgfSkgOiBoaWdobGlnaHRBdXRvKHRleHQpO1xuXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSByZXN1bHQudmFsdWU7XG4gICAgZWxlbWVudC5kYXRhc2V0LmhpZ2hsaWdodGVkID0gXCJ5ZXNcIjtcbiAgICB1cGRhdGVDbGFzc05hbWUoZWxlbWVudCwgbGFuZ3VhZ2UsIHJlc3VsdC5sYW5ndWFnZSk7XG4gICAgZWxlbWVudC5yZXN1bHQgPSB7XG4gICAgICBsYW5ndWFnZTogcmVzdWx0Lmxhbmd1YWdlLFxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHdpdGggdmVyc2lvbiAxMS4wXG4gICAgICByZTogcmVzdWx0LnJlbGV2YW5jZSxcbiAgICAgIHJlbGV2YW5jZTogcmVzdWx0LnJlbGV2YW5jZVxuICAgIH07XG4gICAgaWYgKHJlc3VsdC5zZWNvbmRCZXN0KSB7XG4gICAgICBlbGVtZW50LnNlY29uZEJlc3QgPSB7XG4gICAgICAgIGxhbmd1YWdlOiByZXN1bHQuc2Vjb25kQmVzdC5sYW5ndWFnZSxcbiAgICAgICAgcmVsZXZhbmNlOiByZXN1bHQuc2Vjb25kQmVzdC5yZWxldmFuY2VcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZmlyZShcImFmdGVyOmhpZ2hsaWdodEVsZW1lbnRcIiwgeyBlbDogZWxlbWVudCwgcmVzdWx0LCB0ZXh0IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgaGlnaGxpZ2h0LmpzIGdsb2JhbCBvcHRpb25zIHdpdGggdGhlIHBhc3NlZCBvcHRpb25zXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxITEpTT3B0aW9ucz59IHVzZXJPcHRpb25zXG4gICAqL1xuICBmdW5jdGlvbiBjb25maWd1cmUodXNlck9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gaW5oZXJpdChvcHRpb25zLCB1c2VyT3B0aW9ucyk7XG4gIH1cblxuICAvLyBUT0RPOiByZW1vdmUgdjEyLCBkZXByZWNhdGVkXG4gIGNvbnN0IGluaXRIaWdobGlnaHRpbmcgPSAoKSA9PiB7XG4gICAgaGlnaGxpZ2h0QWxsKCk7XG4gICAgZGVwcmVjYXRlZChcIjEwLjYuMFwiLCBcImluaXRIaWdobGlnaHRpbmcoKSBkZXByZWNhdGVkLiAgVXNlIGhpZ2hsaWdodEFsbCgpIG5vdy5cIik7XG4gIH07XG5cbiAgLy8gVE9ETzogcmVtb3ZlIHYxMiwgZGVwcmVjYXRlZFxuICBmdW5jdGlvbiBpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkge1xuICAgIGhpZ2hsaWdodEFsbCgpO1xuICAgIGRlcHJlY2F0ZWQoXCIxMC42LjBcIiwgXCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkgZGVwcmVjYXRlZC4gIFVzZSBoaWdobGlnaHRBbGwoKSBub3cuXCIpO1xuICB9XG5cbiAgbGV0IHdhbnRzSGlnaGxpZ2h0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGF1dG8taGlnaGxpZ2h0cyBhbGwgcHJlPmNvZGUgZWxlbWVudHMgb24gdGhlIHBhZ2VcbiAgICovXG4gIGZ1bmN0aW9uIGhpZ2hsaWdodEFsbCgpIHtcbiAgICAvLyBpZiB3ZSBhcmUgY2FsbGVkIHRvbyBlYXJseSBpbiB0aGUgbG9hZGluZyBwcm9jZXNzXG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09IFwibG9hZGluZ1wiKSB7XG4gICAgICB3YW50c0hpZ2hsaWdodCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYmxvY2tzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChvcHRpb25zLmNzc1NlbGVjdG9yKTtcbiAgICBibG9ja3MuZm9yRWFjaChoaWdobGlnaHRFbGVtZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJvb3QoKSB7XG4gICAgLy8gaWYgYSBoaWdobGlnaHQgd2FzIHJlcXVlc3RlZCBiZWZvcmUgRE9NIHdhcyBsb2FkZWQsIGRvIG5vd1xuICAgIGlmICh3YW50c0hpZ2hsaWdodCkgaGlnaGxpZ2h0QWxsKCk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgd2UgYXJlIGluIHRoZSBicm93c2VyIGVudmlyb25tZW50XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYm9vdCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgbGFuZ3VhZ2UgZ3JhbW1hciBtb2R1bGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmd1YWdlTmFtZVxuICAgKiBAcGFyYW0ge0xhbmd1YWdlRm59IGxhbmd1YWdlRGVmaW5pdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gcmVnaXN0ZXJMYW5ndWFnZShsYW5ndWFnZU5hbWUsIGxhbmd1YWdlRGVmaW5pdGlvbikge1xuICAgIGxldCBsYW5nID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgbGFuZyA9IGxhbmd1YWdlRGVmaW5pdGlvbihobGpzKTtcbiAgICB9IGNhdGNoIChlcnJvciQxKSB7XG4gICAgICBlcnJvcihcIkxhbmd1YWdlIGRlZmluaXRpb24gZm9yICd7fScgY291bGQgbm90IGJlIHJlZ2lzdGVyZWQuXCIucmVwbGFjZShcInt9XCIsIGxhbmd1YWdlTmFtZSkpO1xuICAgICAgLy8gaGFyZCBvciBzb2Z0IGVycm9yXG4gICAgICBpZiAoIVNBRkVfTU9ERSkgeyB0aHJvdyBlcnJvciQxOyB9IGVsc2UgeyBlcnJvcihlcnJvciQxKTsgfVxuICAgICAgLy8gbGFuZ3VhZ2VzIHRoYXQgaGF2ZSBzZXJpb3VzIGVycm9ycyBhcmUgcmVwbGFjZWQgd2l0aCBlc3NlbnRpYWxseSBhXG4gICAgICAvLyBcInBsYWludGV4dFwiIHN0YW5kLWluIHNvIHRoYXQgdGhlIGNvZGUgYmxvY2tzIHdpbGwgc3RpbGwgZ2V0IG5vcm1hbFxuICAgICAgLy8gY3NzIGNsYXNzZXMgYXBwbGllZCB0byB0aGVtIC0gYW5kIG9uZSBiYWQgbGFuZ3VhZ2Ugd29uJ3QgYnJlYWsgdGhlXG4gICAgICAvLyBlbnRpcmUgaGlnaGxpZ2h0ZXJcbiAgICAgIGxhbmcgPSBQTEFJTlRFWFRfTEFOR1VBR0U7XG4gICAgfVxuICAgIC8vIGdpdmUgaXQgYSB0ZW1wb3JhcnkgbmFtZSBpZiBpdCBkb2Vzbid0IGhhdmUgb25lIGluIHRoZSBtZXRhLWRhdGFcbiAgICBpZiAoIWxhbmcubmFtZSkgbGFuZy5uYW1lID0gbGFuZ3VhZ2VOYW1lO1xuICAgIGxhbmd1YWdlc1tsYW5ndWFnZU5hbWVdID0gbGFuZztcbiAgICBsYW5nLnJhd0RlZmluaXRpb24gPSBsYW5ndWFnZURlZmluaXRpb24uYmluZChudWxsLCBobGpzKTtcblxuICAgIGlmIChsYW5nLmFsaWFzZXMpIHtcbiAgICAgIHJlZ2lzdGVyQWxpYXNlcyhsYW5nLmFsaWFzZXMsIHsgbGFuZ3VhZ2VOYW1lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBsYW5ndWFnZSBncmFtbWFyIG1vZHVsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VOYW1lXG4gICAqL1xuICBmdW5jdGlvbiB1bnJlZ2lzdGVyTGFuZ3VhZ2UobGFuZ3VhZ2VOYW1lKSB7XG4gICAgZGVsZXRlIGxhbmd1YWdlc1tsYW5ndWFnZU5hbWVdO1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgT2JqZWN0LmtleXMoYWxpYXNlcykpIHtcbiAgICAgIGlmIChhbGlhc2VzW2FsaWFzXSA9PT0gbGFuZ3VhZ2VOYW1lKSB7XG4gICAgICAgIGRlbGV0ZSBhbGlhc2VzW2FsaWFzXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ1tdfSBMaXN0IG9mIGxhbmd1YWdlIGludGVybmFsIG5hbWVzXG4gICAqL1xuICBmdW5jdGlvbiBsaXN0TGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhsYW5ndWFnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMge0xhbmd1YWdlIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UobmFtZSkge1xuICAgIG5hbWUgPSAobmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gbGFuZ3VhZ2VzW25hbWVdIHx8IGxhbmd1YWdlc1thbGlhc2VzW25hbWVdXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gYWxpYXNMaXN0IC0gc2luZ2xlIGFsaWFzIG9yIGxpc3Qgb2YgYWxpYXNlc1xuICAgKiBAcGFyYW0ge3tsYW5ndWFnZU5hbWU6IHN0cmluZ319IG9wdHNcbiAgICovXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyQWxpYXNlcyhhbGlhc0xpc3QsIHsgbGFuZ3VhZ2VOYW1lIH0pIHtcbiAgICBpZiAodHlwZW9mIGFsaWFzTGlzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGFsaWFzTGlzdCA9IFthbGlhc0xpc3RdO1xuICAgIH1cbiAgICBhbGlhc0xpc3QuZm9yRWFjaChhbGlhcyA9PiB7IGFsaWFzZXNbYWxpYXMudG9Mb3dlckNhc2UoKV0gPSBsYW5ndWFnZU5hbWU7IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBsYW5ndWFnZSBoYXMgYXV0by1kZXRlY3Rpb24gZW5hYmxlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIG5hbWUgb2YgdGhlIGxhbmd1YWdlXG4gICAqL1xuICBmdW5jdGlvbiBhdXRvRGV0ZWN0aW9uKG5hbWUpIHtcbiAgICBjb25zdCBsYW5nID0gZ2V0TGFuZ3VhZ2UobmFtZSk7XG4gICAgcmV0dXJuIGxhbmcgJiYgIWxhbmcuZGlzYWJsZUF1dG9kZXRlY3Q7XG4gIH1cblxuICAvKipcbiAgICogVXBncmFkZXMgdGhlIG9sZCBoaWdobGlnaHRCbG9jayBwbHVnaW5zIHRvIHRoZSBuZXdcbiAgICogaGlnaGxpZ2h0RWxlbWVudCBBUElcbiAgICogQHBhcmFtIHtITEpTUGx1Z2lufSBwbHVnaW5cbiAgICovXG4gIGZ1bmN0aW9uIHVwZ3JhZGVQbHVnaW5BUEkocGx1Z2luKSB7XG4gICAgLy8gVE9ETzogcmVtb3ZlIHdpdGggdjEyXG4gICAgaWYgKHBsdWdpbltcImJlZm9yZTpoaWdobGlnaHRCbG9ja1wiXSAmJiAhcGx1Z2luW1wiYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnRcIl0pIHtcbiAgICAgIHBsdWdpbltcImJlZm9yZTpoaWdobGlnaHRFbGVtZW50XCJdID0gKGRhdGEpID0+IHtcbiAgICAgICAgcGx1Z2luW1wiYmVmb3JlOmhpZ2hsaWdodEJsb2NrXCJdKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBibG9jazogZGF0YS5lbCB9LCBkYXRhKVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHBsdWdpbltcImFmdGVyOmhpZ2hsaWdodEJsb2NrXCJdICYmICFwbHVnaW5bXCJhZnRlcjpoaWdobGlnaHRFbGVtZW50XCJdKSB7XG4gICAgICBwbHVnaW5bXCJhZnRlcjpoaWdobGlnaHRFbGVtZW50XCJdID0gKGRhdGEpID0+IHtcbiAgICAgICAgcGx1Z2luW1wiYWZ0ZXI6aGlnaGxpZ2h0QmxvY2tcIl0oXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7IGJsb2NrOiBkYXRhLmVsIH0sIGRhdGEpXG4gICAgICAgICk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0hMSlNQbHVnaW59IHBsdWdpblxuICAgKi9cbiAgZnVuY3Rpb24gYWRkUGx1Z2luKHBsdWdpbikge1xuICAgIHVwZ3JhZGVQbHVnaW5BUEkocGx1Z2luKTtcbiAgICBwbHVnaW5zLnB1c2gocGx1Z2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0hMSlNQbHVnaW59IHBsdWdpblxuICAgKi9cbiAgZnVuY3Rpb24gcmVtb3ZlUGx1Z2luKHBsdWdpbikge1xuICAgIGNvbnN0IGluZGV4ID0gcGx1Z2lucy5pbmRleE9mKHBsdWdpbik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcGx1Z2lucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1BsdWdpbkV2ZW50fSBldmVudFxuICAgKiBAcGFyYW0ge2FueX0gYXJnc1xuICAgKi9cbiAgZnVuY3Rpb24gZmlyZShldmVudCwgYXJncykge1xuICAgIGNvbnN0IGNiID0gZXZlbnQ7XG4gICAgcGx1Z2lucy5mb3JFYWNoKGZ1bmN0aW9uKHBsdWdpbikge1xuICAgICAgaWYgKHBsdWdpbltjYl0pIHtcbiAgICAgICAgcGx1Z2luW2NiXShhcmdzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBERVBSRUNBVEVEXG4gICAqIEBwYXJhbSB7SGlnaGxpZ2h0ZWRIVE1MRWxlbWVudH0gZWxcbiAgICovXG4gIGZ1bmN0aW9uIGRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrKGVsKSB7XG4gICAgZGVwcmVjYXRlZChcIjEwLjcuMFwiLCBcImhpZ2hsaWdodEJsb2NrIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiB2MTIuMFwiKTtcbiAgICBkZXByZWNhdGVkKFwiMTAuNy4wXCIsIFwiUGxlYXNlIHVzZSBoaWdobGlnaHRFbGVtZW50IG5vdy5cIik7XG5cbiAgICByZXR1cm4gaGlnaGxpZ2h0RWxlbWVudChlbCk7XG4gIH1cblxuICAvKiBJbnRlcmZhY2UgZGVmaW5pdGlvbiAqL1xuICBPYmplY3QuYXNzaWduKGhsanMsIHtcbiAgICBoaWdobGlnaHQsXG4gICAgaGlnaGxpZ2h0QXV0byxcbiAgICBoaWdobGlnaHRBbGwsXG4gICAgaGlnaGxpZ2h0RWxlbWVudCxcbiAgICAvLyBUT0RPOiBSZW1vdmUgd2l0aCB2MTIgQVBJXG4gICAgaGlnaGxpZ2h0QmxvY2s6IGRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrLFxuICAgIGNvbmZpZ3VyZSxcbiAgICBpbml0SGlnaGxpZ2h0aW5nLFxuICAgIGluaXRIaWdobGlnaHRpbmdPbkxvYWQsXG4gICAgcmVnaXN0ZXJMYW5ndWFnZSxcbiAgICB1bnJlZ2lzdGVyTGFuZ3VhZ2UsXG4gICAgbGlzdExhbmd1YWdlcyxcbiAgICBnZXRMYW5ndWFnZSxcbiAgICByZWdpc3RlckFsaWFzZXMsXG4gICAgYXV0b0RldGVjdGlvbixcbiAgICBpbmhlcml0LFxuICAgIGFkZFBsdWdpbixcbiAgICByZW1vdmVQbHVnaW5cbiAgfSk7XG5cbiAgaGxqcy5kZWJ1Z01vZGUgPSBmdW5jdGlvbigpIHsgU0FGRV9NT0RFID0gZmFsc2U7IH07XG4gIGhsanMuc2FmZU1vZGUgPSBmdW5jdGlvbigpIHsgU0FGRV9NT0RFID0gdHJ1ZTsgfTtcbiAgaGxqcy52ZXJzaW9uU3RyaW5nID0gdmVyc2lvbjtcblxuICBobGpzLnJlZ2V4ID0ge1xuICAgIGNvbmNhdDogY29uY2F0LFxuICAgIGxvb2thaGVhZDogbG9va2FoZWFkLFxuICAgIGVpdGhlcjogZWl0aGVyLFxuICAgIG9wdGlvbmFsOiBvcHRpb25hbCxcbiAgICBhbnlOdW1iZXJPZlRpbWVzOiBhbnlOdW1iZXJPZlRpbWVzXG4gIH07XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gTU9ERVMpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHR5cGVvZiBNT0RFU1trZXldID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBkZWVwRnJlZXplKE1PREVTW2tleV0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIG1lcmdlIGFsbCB0aGUgbW9kZXMvcmVnZXhlcyBpbnRvIG91ciBtYWluIG9iamVjdFxuICBPYmplY3QuYXNzaWduKGhsanMsIE1PREVTKTtcblxuICByZXR1cm4gaGxqcztcbn07XG5cbi8vIE90aGVyIG5hbWVzIGZvciB0aGUgdmFyaWFibGUgbWF5IGJyZWFrIGJ1aWxkIHNjcmlwdFxuY29uc3QgaGlnaGxpZ2h0ID0gSExKUyh7fSk7XG5cbi8vIHJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGhpZ2hsaWdodGVyIHRvIGJlIHVzZWQgZm9yIGV4dGVuc2lvbnNcbi8vIGNoZWNrIGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbG93bGlnaHQvaXNzdWVzLzQ3XG5oaWdobGlnaHQubmV3SW5zdGFuY2UgPSAoKSA9PiBITEpTKHt9KTtcblxubW9kdWxlLmV4cG9ydHMgPSBoaWdobGlnaHQ7XG5oaWdobGlnaHQuSGlnaGxpZ2h0SlMgPSBoaWdobGlnaHQ7XG5oaWdobGlnaHQuZGVmYXVsdCA9IGhpZ2hsaWdodDtcbiIsICIvKlxuTGFuZ3VhZ2U6IDFDOkVudGVycHJpc2VcbkF1dGhvcjogU3RhbmlzbGF2IEJlbG92IDxzdGJlbG92QGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBidWlsdC1pbiBsYW5ndWFnZSAxQzpFbnRlcnByaXNlICh2NywgdjgpXG5DYXRlZ29yeTogZW50ZXJwcmlzZVxuKi9cblxuZnVuY3Rpb24gXzFjKGhsanMpIHtcbiAgLy8gXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM4XHUwNDM5IFx1MDQzRlx1MDQzMFx1MDQ0Mlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRCBcdTA0MzRcdTA0M0JcdTA0NEYgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzOFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzMlxuICBjb25zdCBVTkRFUlNDT1JFX0lERU5UX1JFID0gJ1tBLVphLXpcdTA0MTAtXHUwNDJGXHUwNDMwLVx1MDQ0Rlx1MDQ1MVx1MDQwMV9dW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXzAtOV0rJztcblxuICAvLyB2NyBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzMCwgXHUwNDNFXHUwNDQyXHUwNDQxXHUwNDQzXHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRFXHUwNDQ5XHUwNDM4XHUwNDM1IFx1MDQzMiB2OCA9PT4ga2V5d29yZFxuICBjb25zdCB2N19rZXl3b3JkcyA9XG4gICdcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0MzUgJztcblxuICAvLyB2OCBcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDMwID09PiBrZXl3b3JkXG4gIGNvbnN0IHY4X2tleXdvcmRzID1cbiAgJ1x1MDQzMlx1MDQzRVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MiBcdTA0MzJcdTA0NEJcdTA0MzdcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDMyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQzNFx1MDQzQlx1MDQ0RiBcdTA0MzVcdTA0NDFcdTA0M0JcdTA0MzggXHUwNDM4IFx1MDQzOFx1MDQzNyBcdTA0MzhcdTA0M0JcdTA0MzggXHUwNDM4XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1IFx1MDQzOFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzNVx1MDQ0MVx1MDQzQlx1MDQzOCBcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNBXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDNFXHUwNDMzXHUwNDNFIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQzQlx1MDQzOCAnXG4gICsgJ1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQzRVx1MDQzRlx1MDQ0Qlx1MDQ0Mlx1MDQzQVx1MDQzOCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDZcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDM1IFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzOSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDIFx1MDQzRlx1MDQzRSBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNGXHUwNDRCXHUwNDQyXHUwNDNBXHUwNDMwIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0JcdTA0MzZcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQ0Nlx1MDQzOFx1MDQzQVx1MDQzQiBcdTA0NERcdTA0M0FcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NDIgJztcblxuICAvLyBrZXl3b3JkIDogXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzMFxuICBjb25zdCBLRVlXT1JEID0gdjdfa2V5d29yZHMgKyB2OF9rZXl3b3JkcztcblxuICAvLyB2NyBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDRCLCBcdTA0M0VcdTA0NDJcdTA0NDFcdTA0NDNcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NEVcdTA0NDlcdTA0MzhcdTA0MzUgXHUwNDMyIHY4ID09PiBtZXRhLWtleXdvcmRcbiAgY29uc3QgdjdfbWV0YV9rZXl3b3JkcyA9XG4gICdcdTA0MzdcdTA0MzBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgJztcblxuICAvLyB2OCBcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDMwIFx1MDQzMiBcdTA0MzhcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQwXHUwNDMwLCBcdTA0MzRcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0MzBcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDM4XHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4LCBcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDUgPT0+IG1ldGEta2V5d29yZFxuICBjb25zdCB2OF9tZXRhX2tleXdvcmRzID1cbiAgJ1x1MDQzMlx1MDQzNVx1MDQzMVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0MzJcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M0UgXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNDXHUwNDNFXHUwNDMxXHUwNDM4XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyIFx1MDQzQ1x1MDQzRVx1MDQzMVx1MDQzOFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MCAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDNFXHUwNDMxXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRDIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNCAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzQlx1MDQzNSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDAgXHUwNDQyXHUwNDNFXHUwNDNCXHUwNDQxXHUwNDQyXHUwNDRCXHUwNDM5XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0Mlx1MDQzRVx1MDQzQlx1MDQ0MVx1MDQ0Mlx1MDQ0Qlx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQ0Rlx1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0NDJcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDIgJztcblxuICAvLyBtZXRhLWtleXdvcmQgOiBcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDMwIFx1MDQzMiBcdTA0MzhcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQwXHUwNDMwLCBcdTA0MzRcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0MzBcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDM4XHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4LCBcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDVcbiAgY29uc3QgTUVUQUtFWVdPUkQgPSB2N19tZXRhX2tleXdvcmRzICsgdjhfbWV0YV9rZXl3b3JkcztcblxuICAvLyB2NyBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDRCID09PiBidWlsdF9pblxuICBjb25zdCB2N19zeXN0ZW1fY29uc3RhbnRzID1cbiAgJ1x1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0NiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0EgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDQzXHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4ICc7XG5cbiAgLy8gdjcgXHUwNDQzXHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQ0QiBcdTA0MzNcdTA0M0JcdTA0M0VcdTA0MzFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0UgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M0VcdTA0NDJcdTA0NDFcdTA0NDNcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NEVcdTA0NDlcdTA0MzhcdTA0MzUgXHUwNDMyIHY4ID09PiBidWlsdF9pblxuICBjb25zdCB2N19nbG9iYWxfY29udGV4dF9tZXRob2RzID1cbiAgJ2Fuc2l0b29lbSBvZW10b2Fuc2kgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDNFIFx1MDQzMlx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzQgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiAnXG4gICsgJ1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQzRVx1MDQzNCBcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDYgXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFIFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDM3XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzOFx1MDQzMSBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0MzRcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzMFx1MDQzMVx1MDQzOCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0MzFcdTA0MzggXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDZcdTA0MzAgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXHUwNDNCXHUwNDNFXHUwNDMzIFx1MDQzQlx1MDQzRVx1MDQzMzEwIFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzRVx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQzRSBcdTA0M0RcdTA0MzBcdTA0MzdcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDM3XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyIFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzOFx1MDQzNCAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0MiBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDMxXHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDNBXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0Nlx1MDQzMCAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzRcdTA0M0RcdTA0NEZcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM0XHUwNDNEXHUwNDRGXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4IFx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzMCBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0VcdTA0MzZcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyICdcbiAgKyAnXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Rlx1MDQzN1x1MDQ0Qlx1MDQzQSBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0M0FcdTA0M0RcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNEXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0QyBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0RcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0ZcdTA0M0UgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCAnXG4gICsgJ1x1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0MyBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzVcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDNGXHUwNDNFIFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQ0OFx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzRCBcdTA0NDhcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0QgJztcblxuICAvLyB2OCBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0NEIgXHUwNDMzXHUwNDNCXHUwNDNFXHUwNDMxXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMCA9PT4gYnVpbHRfaW5cbiAgY29uc3QgdjhfZ2xvYmFsX2NvbnRleHRfbWV0aG9kcyA9XG4gICdhY29zIGFzaW4gYXRhbiBiYXNlNjRcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgYmFzZTY0XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDMwIGNvcyBleHAgbG9nIGxvZzEwIHBvdyBzaW4gc3FydCB0YW4geG1sXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IHhtbFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMCAnXG4gICsgJ3htbFx1MDQ0Mlx1MDQzOFx1MDQzRiB4bWxcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0NDcgXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDNBXHUwNDNEXHUwNDNFIFx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0VcdTA0M0ZcdTA0MzBcdTA0NDFcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMxXHUwNDQzXHUwNDNCXHUwNDM1XHUwNDMyXHUwNDNFIFx1MDQzMlx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgJ1xuICArICdcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFIFx1MDQzMlx1MDQzRVx1MDQzN1x1MDQzQ1x1MDQzRVx1MDQzNlx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhtbCBcdTA0MzJcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDEgXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0MzJcdTA0NEJcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJ1xuICArICdcdTA0MzJcdTA0NEJcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDMwIFx1MDQzMlx1MDQ0Qlx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MzNcdTA0M0VcdTA0MzQgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NEMgXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDRDXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwICdcbiAgKyAnXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDRDXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4IFx1MDQzNFx1MDQzRVx1MDQzMVx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0NiBcdTA0MzdcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0MzRcdTA0M0JcdTA0NEZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM3XHUwNDMwXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0M1x1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQzN1x1MDQzMFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQ0RVx1MDQ0RVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0FcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDQyXHUwNDRDanNvbiBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0NDJcdTA0NEN4bWwgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDQzanNvbiBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJ1xuICArICdcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzIgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRFICdcbiAgKyAnXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0MCBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDNFIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQzN1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOFx1MDQzMlx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0MCBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgJ1xuICArICdcdTA0MzhcdTA0Mzd4bWxcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzAgXHUwNDM4XHUwNDNDXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDQyXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eGR0byBcdTA0MzhcdTA0M0NcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0NENcdTA0NEVcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzUgJ1xuICArICdcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzFcdTA0MzhcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDNcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDQzICdcbiAgKyAnXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNCXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzNFx1MDQzRFx1MDQ0RiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0FcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDNDXHUwNDM1XHUwNDQxXHUwNDRGXHUwNDQ2XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0QiAnXG4gICsgJ1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDNEXHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNBXHUwNDM4IFx1MDQzQlx1MDQzNVx1MDQzMiBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDEgXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0NiBcdTA0M0NcdTA0MzhcdTA0M0QgXHUwNDNDXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDQyXHUwNDMwIFx1MDQzQ1x1MDQzRVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzggJ1xuICArICdcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0M0RcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0NEJ4bWwgXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDNFXHUwNDNBXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDM1IFx1MDQzRFx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzRFx1MDQzMFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzBcdTA0M0MgXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQ0RiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDRGXHUwNDQ2XHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0QiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0MFx1MDQzNVx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzNVx1MDQzOSBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDdcdTA0MzVcdTA0MzNcdTA0M0VcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgJ1xuICArICdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRFIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDNcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzVcdTA0MzlcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NEIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM1XHUwNDM5ICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzMCBcdTA0M0RcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDVcdTA0M0VcdTA0MzRcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCICdcbiAgKyAnXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRFx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDAgXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxIFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0NDNcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0NDBcdTA0NEJcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRVx1MDQzQVx1MDQ0MCBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOCAnXG4gICsgJ1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQzN1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzhcdTA0M0FcdTA0M0VcdTA0MzZcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDQzIFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0MyBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NDNcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0UgJ1xuICArICdcdTA0M0VcdTA0NDJcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEUgXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM5XHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQiBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0NEVcdTA0NEVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDMgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzhcdTA0M0FcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzVcdTA0M0RcdTA0MzdcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM2XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNBXHUwNDM4ICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEVcdTA0M0VcdTA0MzFcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM1IFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDY29tXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q3htbFx1MDQ0Mlx1MDQzOFx1MDQzRiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDNFXHUwNDMyIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzRlx1MDQ0Rlx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQ0MVx1MDQ0Qlx1MDQzRlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0M0VcdTA0MzZcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQ0Qlx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0Qlx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0M0FcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQ0RFx1MDQzQVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0MzFcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDM4XHUwNDM5XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDNBXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQ0MVx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0MzBcdTA0NDFcdTA0M0FcdTA0NDNcdTA0MzJcdTA0NDFcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0NEJcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDQzXHUwNDMyXHUwNDQxXHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQ0MyAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzNcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0NDNcdTA0NEVcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0NDMgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDQzXHUwNDRFXHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDQzXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzhcdTA0MzlcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDIgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDlcdTA0NDNcdTA0NEVcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NDMgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDNBXHUwNDNEXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzRVx1MDQ0Mlx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0NDJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0VcdTA0M0ZcdTA0MzBcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0MzlcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNFXHUwNDNBIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQ0M1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzggJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNGXHUwNDQzXHUwNDQyXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQ0Qlx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzQVx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRFICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDMwXHUwNDM4XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMG9kYXRhIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQ0M1x1MDQ0MFx1MDQ0M1x1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0MyBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NDNcdTA0NEVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0NEUgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NDNcdTA0NEVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0NEVcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzVcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzUgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMiBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0Qlx1MDQ0Mlx1MDQzOFx1MDQ0Rlx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQzXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzOFx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0JcdTA0MzZcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NEJcdTA0MzdcdTA0M0VcdTA0MzIgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDanNvbiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NEN4bWwgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDQzanNvbiBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzlcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDM0XHUwNDNCXHUwNDRGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0VcdTA0NDBcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzhcdTA0M0NcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDQwXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNEXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQzRFx1MDQzNFx1MDQzMCBcdTA0NDFcdTA0MzhcdTA0MzNcdTA0M0RcdTA0MzBcdTA0M0IgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCIFx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0JcdTA0MzVcdTA0NDJcdTA0M0RcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggJ1xuICArICdcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDQzXHUwNDQ0XHUwNDM1XHUwNDQwXHUwNDRCXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzMyBcdTA0NDFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzFcdTA0NDBcdTA0MzhcdTA0M0FcdTA0NDN4ZHRvIFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQzQiBcdTA0NDFcdTA0M0VcdTA0M0FcdTA0NDBcdTA0M0JcdTA0M0YgXHUwNDQxXHUwNDNFXHUwNDNBXHUwNDQwXHUwNDNGIFx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQ0Mlx1MDQ0QyAnXG4gICsgJ1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0NDFcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDMwXHUwNDNEXHUwNDQ3XHUwNDM4XHUwNDMyXHUwNDMwXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRGXHUwNDNEXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzN1x1MDQzMFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM4XHUwNDNEXHUwNDMwXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRGXHUwNDQxICdcbiAgKyAnXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDFcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDQ1XHUwNDNFXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0OFx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzRCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDMwXHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzMFx1MDQ0Rlx1MDQ0M1x1MDQzRFx1MDQzOFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzBcdTA0NEZcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0NcdTA0MzhcdTA0M0JcdTA0M0JcdTA0MzhcdTA0NDFcdTA0MzVcdTA0M0FcdTA0NDNcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzhcdTA0MzlcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQ4XHUwNDQwXHUwNDM4XHUwNDQ0XHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCAnXG4gICsgJ1x1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzhcdTA0MzlcdTA0NEZcdTA0MzdcdTA0NEJcdTA0M0EgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDRGXHUwNDM3XHUwNDRCXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0NDcgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgJ1xuICArICdcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzAgXHUwNDQzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDRCIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNFXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNFXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0M1x1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzRVx1MDQzMiBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0NEVcdTA0NEVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDMgJ1xuICArICdcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0ZcdTA0NEZcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDQxXHUwNDRCXHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzRVx1MDQzNlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQzOVx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0M0VcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMCAnXG4gICsgJ1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRVx1MDQzRlx1MDQ0Nlx1MDQzOFx1MDQzOVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzhcdTA0M0JcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgJ1xuICArICdcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0NDNcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0MzVcdTA0MzkgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM1XHUwNDM5ICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzBcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzBvZGF0YSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwICdcbiAgKyAnXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyIFx1MDQ0Nlx1MDQzNVx1MDQzQiBcdTA0NDdcdTA0MzBcdTA0NDEgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQ0Rlx1MDQ0MVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCBcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0UgXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDXHUwNDRFIFx1MDQ0RFx1MDQ0Mlx1MDQzRVx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMCAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0MzNcdTA0M0JcdTA0M0VcdTA0MzFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0UgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwID09PiBidWlsdF9pblxuICBjb25zdCB2OF9nbG9iYWxfY29udGV4dF9wcm9wZXJ0eSA9XG4gICd3c1x1MDQ0MVx1MDQ0MVx1MDQ0Qlx1MDQzQlx1MDQzQVx1MDQzOCBcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzBcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0VcdTA0M0EgXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDMwXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMVx1MDQzOFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0NEIgJ1xuICArICdcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDM4IFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQ0QiBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0ZcdTA0M0FcdTA0MzggXHUwNDMzXHUwNDNCXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxIFx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzMlx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0QyAnXG4gICsgJ1x1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDNcdTA0MzJcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzOCBcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0M0FcdTA0NDBcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0FcdTA0M0JcdTA0MzBcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDRCXHUwNDQ1XHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDRCIFx1MDQzRlx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0NEJcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDQ1XHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNBICdcbiAgKyAnXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCXHUwNDNFXHUwNDMxXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQ0Qlx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0MzBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0M0EgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDdcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzMVx1MDQ0M1x1MDQ0NVx1MDQzM1x1MDQzMFx1MDQzQlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0MVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDB4ZHRvIFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzOCBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzBcdTA0MzNcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQzQ1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQzNVx1MDQzNFx1MDQzOFx1MDQzMCAnXG4gICsgJ1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzQ1x1MDQ0QiBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0NEIgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDNEXHUwNDM4XHUwNDM4IFx1MDQ0NFx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOFx1MDQzQVx1MDQzMHhkdG8gXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQ0NFx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0EgJ1xuICArICdcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDIFx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQ0NVx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQSBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0M0FcdTA0MzhcdTA0NDVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzBcdTA0M0NcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzhcdTA0NDVcdTA0NDFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzIgJ1xuICArICdcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0M0FcdTA0MzhcdTA0NDVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBICc7XG5cbiAgLy8gYnVpbHRfaW4gOiBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDM4XHUwNDNCXHUwNDM4IFx1MDQzMVx1MDQzOFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NEIgKFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0QiwgXHUwNDNBXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDRCLCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzgpXG4gIGNvbnN0IEJVSUxUSU4gPVxuICB2N19zeXN0ZW1fY29uc3RhbnRzXG4gICsgdjdfZ2xvYmFsX2NvbnRleHRfbWV0aG9kcyArIHY4X2dsb2JhbF9jb250ZXh0X21ldGhvZHNcbiAgKyB2OF9nbG9iYWxfY29udGV4dF9wcm9wZXJ0eTtcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDRCIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX3NldHNfb2ZfdmFsdWVzID1cbiAgJ3dlYlx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzMCB3aW5kb3dzXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQyXHUwNDMwIHdpbmRvd3NcdTA0NDhcdTA0NDBcdTA0MzhcdTA0NDRcdTA0NDJcdTA0NEIgXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDMwXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDNFXHUwNDNBIFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0RiBcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0NEIgXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDRGIFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0RiAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0M0RcdTA0NEJcdTA0MzUgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19pbnRlcmZhY2UgPVxuICAnXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM1XHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQ1IFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzNSBcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzkgJ1xuICArICdcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMyXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNFXHUwNDMyIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Qlx1MDQ0MVx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiAnXG4gICsgJ1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQ0M1x1MDQ0Mlx1MDQzQVx1MDQzMFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgJ1xuICArICdcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzVcdTA0MzlcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzUgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0NFx1MDQzQlx1MDQzMFx1MDQzNlx1MDQzQVx1MDQzMCBcdTA0MzJcdTA0M0JcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0MzdcdTA0NEJcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzQSBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0NDdcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0NEJcdTA0MzhcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NEIgXHUwNDM0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzNFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDJcdTA0MzBcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzBcdTA0M0JcdTA0M0NcdTA0MzVcdTA0MzZcdTA0MzRcdTA0NDNcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0NcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Qlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQ0M1x1MDQ0Mlx1MDQzQVx1MDQzOCAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQ0M1x1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzNVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQzMVx1MDQzOFx1MDQ0MFx1MDQzNlx1MDQzNVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MzhcdTA0NEZcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzUgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNFXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDNBXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDNGXHUwNDQzXHUwNDM3XHUwNDRCXHUwNDQwXHUwNDRDXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzMFx1MDQzRFx1MDQzNCBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0NDNcdTA0M0NcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzkgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0VcdTA0NDBcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDBcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDM1ICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDMzXHUwNDM1XHUwNDNEXHUwNDM0XHUwNDM1XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQSBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0M0FcdTA0MzhcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQxXHUwNDQzXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQ0M1x1MDQzN1x1MDQ0Qlx1MDQ0MFx1MDQ0Q1x1MDQzQVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgJ1xuICArICdcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0M0FcdTA0MzBcdTA0MzdcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM4IFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Qlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQ0M1x1MDQzQlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQ0Qlx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOCBcdTA0M0ZcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDNBXHUwNDMwXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDMwXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzQVx1MDQzMFx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0Qlx1MDQzM1x1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0M0FcdTA0MzBcdTA0M0NcdTA0MzBcdTA0NDFcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzBcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOFx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNBXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzNVx1MDQzOVx1MDQzQVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQzNSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzVcdTA0MzlcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0M0NcdTA0M0VcdTA0NDJcdTA0NDBcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0VcdTA0M0MgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDNBXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzNVx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRGXHUwNDMzXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDRGXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzVcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0UgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMyXHUwNDRCXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMyXHUwNDRCXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwXHUwNDNGXHUwNDM1XHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzMFx1MDQzRFx1MDQzNFx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0NcdTA0MzBcdTA0NDFcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0M0NcdTA0M0VcdTA0NDJcdTA0NDBcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0VcdTA0M0FcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDNBXHUwNDNEXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNBXHUwNDM4XHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDM3XHUwNDQwXHUwNDMwXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMVx1MDQzNVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4ICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDMzXHUwNDNCXHUwNDMwXHUwNDM2XHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzNlx1MDQzOFx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzMCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NDcgXHUwNDQxXHUwNDNBXHUwNDMyXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDNFXHUwNDM1XHUwNDMyXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQ1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzMFx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzOFx1MDQzMlx1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0MzBcdTA0NEZcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzQgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzQlx1MDQzQVx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0M0ZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzRcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDQ4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQ0Rlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzhcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNDXHUwNDMwXHUwNDQwXHUwNDNBXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQ0MFx1MDQzQVx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0VcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0MzNcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDRGXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzNVx1MDQzRFx1MDQzNFx1MDQ0Qlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQVx1MDQzOFx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0MzJcdTA0NEZcdTA0MzdcdTA0MzhcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNDXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzNVx1MDQzQVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0VcdTA0M0RcdTA0NEJcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0NFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOFx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzNFx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0M0FcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0M0FcdTA0MzggXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDRCXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzRcdTA0M0RcdTA0NEZcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggJ1xuICArICdcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM4XHUwNDNEXHUwNDMwXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzBcdTA0MzRcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDNFXHUwNDMyID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfb2JqZWN0c19wcm9wZXJ0aWVzID1cbiAgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQzNFx1MDQzMlx1MDQzOFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQ0M1x1MDQ0NVx1MDQzM1x1MDQzMFx1MDQzQlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0FcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NDBcdTA0NDhcdTA0NDBcdTA0NDNcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQzMCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCIFx1MDQzRVx1MDQzMVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzMCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2V4Y2hhbmdlX3BsYW5zID1cbiAgJ1x1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzlcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQyXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzkgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfdGFidWxhcl9kb2N1bWVudCA9XG4gICdcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0VcdTA0NDJcdTA0M0RcdTA0M0VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0NDNcdTA0NDBcdTA0NDFcdTA0M0VcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDQwXHUwNDM4XHUwNDQxXHUwNDQzXHUwNDNEXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOFx1MDQ0Rlx1MDQ0N1x1MDQzNVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0NVx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzJcdTA0NEJcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQ0MVx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0MzdcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQzOCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDYgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfc2hlZHVsZXIgPVxuICAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOSBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19mb3JtYXR0ZWRfZG9jdW1lbnQgPVxuICAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3F1ZXJ5ID1cbiAgJ1x1MDQzRVx1MDQzMVx1MDQ0NVx1MDQzRVx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzhcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDIFx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3JlcG9ydF9idWlsZGVyID1cbiAgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0M0VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMiAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0MzAgXHUwNDQxIFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMFx1MDQzQ1x1MDQzOCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2ZpbGVzID1cbiAgJ1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzQVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0MyBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0QyBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19xdWVyeV9idWlsZGVyID1cbiAgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzcgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfZGF0YV9hbmFseXNpcyA9XG4gICdcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzAgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzMFx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEJcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0NEJcdTA0NDVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQ2XHUwNDM4XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzMlx1MDQzRVx1MDQ0MFx1MDQzNVx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzhcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQ2XHUwNDM4XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNCXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQzRFx1MDQzRVx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0NcdTA0MzVcdTA0NDBcdTA0NEJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0NDFcdTA0MzVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDZcdTA0MzhcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDZcdTA0MzhcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDhcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIHhtbCwganNvbiwgeHMsIGRvbSwgeGR0bywgd2ViLVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQ0QiA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3htbF9qc29uX3hzX2RvbV94ZHRvX3dzID1cbiAgJ3dzXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0MnhwYXRoeHMgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCanNvbiBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4cyBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0NEJcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0JcdTA0Mzh4cyBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzB4ZHRvICdcbiAgKyAnXHUwNDM0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGZG9tIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QnhzIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOHhzICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4eHMgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDMweHMgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4eHMgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEeHMgJ1xuICArICdcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0MzBcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzNcdTA0M0V4cyBcdTA0M0RcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4bWwgXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDRCXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4eHMgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyeHMgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDMzXHUwNDNFeHMgJ1xuICArICdcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0VcdTA0NDJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDNcdTA0MzdcdTA0M0JcdTA0M0VcdTA0MzJkb20gXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBanNvbiBcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzJcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzVkb20gXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDRCeG1sIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhtbCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZqc29uICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFeG1sIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QnhzIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQzOHhtbCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBkb214cGF0aCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0MzdcdTA0M0JcdTA0MzBkb20gXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDMweG1sIFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMHhtbCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyAnXG4gICsgJ1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Qmpzb24gXHUwNDREXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyanNvbiAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4IFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2RhdGFfY29tcG9zaXRpb25fc3lzdGVtID1cbiAgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzhcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQ0M1x1MDQ0MFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzFcdTA0NDNcdTA0NDVcdTA0MzNcdTA0MzBcdTA0M0JcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMyXHUwNDRCXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzRVx1MDQzMVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzMlx1MDQ0Rlx1MDQzN1x1MDQzOFx1MDQzRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0JcdTA0MzVcdTA0MzNcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzVcdTA0NDFcdTA0NDNcdTA0NDBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDQzXHUwNDQwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDMyXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0M1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0MzAgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19lbWFpbCA9XG4gICdcdTA0MzJcdTA0MzBcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzNWFzY2lpXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0M0FcdTA0M0VcdTA0M0JcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0NEIgJ1xuICArICdcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2xvZ2Jvb2sgPVxuICAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDNcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0M0RcdTA0NENcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDRGID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfY3J5cHRvZ3JhcGh5ID1cbiAgJ1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4ICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFpJUCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3ppcCA9XG4gICdcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzJ6aXBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzUgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDM4XHUwNDRGemlwIFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RnppcCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzVcdTA0MzlcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzJ6aXAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDMyemlwICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQzXHUwNDQyXHUwNDM1XHUwNDM5emlwIFx1MDQ0M1x1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzRFx1MDQ0Q1x1MDQ0MVx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0RnppcCAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLVxuICAvLyBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzAgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1LCBcdTA0MjRcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGLCBcdTA0MTBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzUgXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1LFxuICAvLyBcdTA0MTRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzUgXHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGLCBcdTA0MTJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDNBXHUwNDM4LCBcdTA0MThcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDIsIFx1MDQyMFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzMCBcdTA0NDEgXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDNDXHUwNDM4IFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzQ1x1MDQzOCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX290aGVyID1cbiAgJ1x1MDQzN1x1MDQzMlx1MDQ0M1x1MDQzQVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzNVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDVcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDM3XHUwNDM4XHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMyXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzQVx1MDQzMVx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NDdcdTA0MzhcdTA0M0FcdTA0MzBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0NDVcdTA0NDNcdTA0MzJcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQzXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDNEXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDMwXHUwNDQ5XHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGZnRwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19yZXF1ZXN0X3NjaGVtYSA9XG4gICdcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0FcdTA0MzBcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEJcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfcHJvcGVydGllc19vZl9tZXRhZGF0YV9vYmplY3RzID1cbiAgJ2h0dHBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzQgXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzOCBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NEZcdTA0MzdcdTA0NEJcdTA0M0FcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQwXHUwNDQ1XHUwNDM4XHUwNDM4IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNCXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNSAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzFcdTA0NEJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0N1x1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0NDdcdTA0MzggXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzBcdTA0NDVcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDQ3XHUwNDM4ICdcbiAgKyAnXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNFXHUwNDMxXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMCBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDM4XHUwNDM3XHUwNDNEXHUwNDM1XHUwNDQxXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDMwIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDMwXHUwNDM1XHUwNDNDXHUwNDRCXHUwNDQ1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzNSBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0RcdTA0MzBcdTA0MzRcdTA0M0JcdTA0MzVcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMwXHUwNDQzXHUwNDQyXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0RcdTA0NDNcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOCAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzOFx1MDQzRFx1MDQ0NVx1MDQ0MFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzMlx1MDQ0Qlx1MDQzN1x1MDQzRVx1MDQzMlx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQzQlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0Qlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQ0NVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0VcdTA0MzIgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzUgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMCAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRlx1MDQzRVx1MDQ0M1x1MDQzQ1x1MDQzRVx1MDQzQlx1MDQ0N1x1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0FcdTA0M0VcdTA0MzRcdTA0M0VcdTA0MzJcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDVcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0EgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyICdcbiAgKyAnXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNSBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDQ3XHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDRCXHUwNDM1ID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfZGlmZmVyZW50cyA9XG4gICdcdTA0MzJcdTA0MzBcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzVcdTA0M0NcdTA0NEJcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzMFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggJ1xuICArICdcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNBXHUwNDM4IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQzMCBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NEZcdTA0MzRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzAgXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDRCXHUwNDM5XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDNBICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1Ynl0ZW9yZGVybWFyayBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0NcdTA0MzVcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0OFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzAgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzB4YmFzZSBcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzJcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDEgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDNBXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQzQVx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEJcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzB3aW5kb3dzIFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOCBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQzQlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0JcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDhcdTA0MzhlbnRlciAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDNcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0M0RcdTA0NENcdTA0MzhcdTA0MzdcdTA0M0VcdTA0M0JcdTA0NEZcdTA0NDZcdTA0MzhcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzkgXHUwNDQ1XHUwNDM1XHUwNDQ4XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Qic7XG5cbiAgLy8gY2xhc3M6IFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDBcdTA0NEIgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5LCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIChcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDIgXHUwNDM0XHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiwgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzQSBcdTA0M0FcdTA0M0VcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0M0MgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNSlcbiAgY29uc3QgQ0xBU1MgPVxuICB2OF9zeXN0ZW1fc2V0c19vZl92YWx1ZXNcbiAgKyB2OF9zeXN0ZW1fZW51bXNfaW50ZXJmYWNlXG4gICsgdjhfc3lzdGVtX2VudW1zX29iamVjdHNfcHJvcGVydGllc1xuICArIHY4X3N5c3RlbV9lbnVtc19leGNoYW5nZV9wbGFuc1xuICArIHY4X3N5c3RlbV9lbnVtc190YWJ1bGFyX2RvY3VtZW50XG4gICsgdjhfc3lzdGVtX2VudW1zX3NoZWR1bGVyXG4gICsgdjhfc3lzdGVtX2VudW1zX2Zvcm1hdHRlZF9kb2N1bWVudFxuICArIHY4X3N5c3RlbV9lbnVtc19xdWVyeVxuICArIHY4X3N5c3RlbV9lbnVtc19yZXBvcnRfYnVpbGRlclxuICArIHY4X3N5c3RlbV9lbnVtc19maWxlc1xuICArIHY4X3N5c3RlbV9lbnVtc19xdWVyeV9idWlsZGVyXG4gICsgdjhfc3lzdGVtX2VudW1zX2RhdGFfYW5hbHlzaXNcbiAgKyB2OF9zeXN0ZW1fZW51bXNfeG1sX2pzb25feHNfZG9tX3hkdG9fd3NcbiAgKyB2OF9zeXN0ZW1fZW51bXNfZGF0YV9jb21wb3NpdGlvbl9zeXN0ZW1cbiAgKyB2OF9zeXN0ZW1fZW51bXNfZW1haWxcbiAgKyB2OF9zeXN0ZW1fZW51bXNfbG9nYm9va1xuICArIHY4X3N5c3RlbV9lbnVtc19jcnlwdG9ncmFwaHlcbiAgKyB2OF9zeXN0ZW1fZW51bXNfemlwXG4gICsgdjhfc3lzdGVtX2VudW1zX290aGVyXG4gICsgdjhfc3lzdGVtX2VudW1zX3JlcXVlc3Rfc2NoZW1hXG4gICsgdjhfc3lzdGVtX2VudW1zX3Byb3BlcnRpZXNfb2ZfbWV0YWRhdGFfb2JqZWN0c1xuICArIHY4X3N5c3RlbV9lbnVtc19kaWZmZXJlbnRzO1xuXG4gIC8vIHY4IFx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NEIgKFx1MDQ0MyBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDRDIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MCwgXHUwNDREXHUwNDNBXHUwNDM3XHUwNDM1XHUwNDNDXHUwNDNGXHUwNDNCXHUwNDRGXHUwNDQwXHUwNDRCIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0RVx1MDQ0Mlx1MDQ0MVx1MDQ0RiBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0MgXHUwNDFEXHUwNDFFXHUwNDEyXHUwNDJCXHUwNDE5KSA9PT4gdHlwZVxuICBjb25zdCB2OF9zaGFyZWRfb2JqZWN0ID1cbiAgJ2NvbVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBmdHBcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgaHR0cFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBodHRwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyIGh0dHBcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgd3NcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgd3NcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzggeGJhc2UgXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RnhzICdcbiAgKyAnXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMVx1MDQ0M1x1MDQ0NFx1MDQzNVx1MDQ0MFx1MDQzNFx1MDQzMlx1MDQzRVx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4cyBcdTA0MzJcdTA0NEJcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMzXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDQxXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDM1XHUwNDNCIFx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQ0Rlx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMCAnXG4gICsgJ1x1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzRVx1MDQ0MFx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzMFx1MDQ0Mlx1MDQ0QiBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDMwXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eHMgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQ0XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzNFx1MDQzMlx1MDQzRVx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzAgJ1xuICArICdcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzAgXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDMwXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDQ4XHUwNDQwXHUwNDM4XHUwNDQ0XHUwNDQyXHUwNDMwIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0ZcdTA0MzBcdTA0MzdcdTA0M0VcdTA0M0QgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyZG9tIFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mmh0bWwgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGeHMgXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDZG9tIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q2Zhc3RpbmZvc2V0IFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q2h0bWwgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDanNvbiBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NEN4bWwgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDemlwXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tICdcbiAgKyAnXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQ0OVx1MDQzOFx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNW9wZW5zc2wgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDM5XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQ0XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMCBcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NDJ4cyBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzVcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ0XHUwNDM4XHUwNDNCXHUwNDRDIFx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOCBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDNCXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgJ1xuICArICdcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDJcdTA0MzB4cyBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0MzFcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzMCBcdTA0M0FcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEIgXHUwNDNBXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDRCXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzQVx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQ0Qlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOCBcdTA0M0FcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzAgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0NDlcdTA0MzhcdTA0M0FcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzggXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDMweHMgXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM2XHUwNDM1XHUwNDQwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ3htbCBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4anNvbiAnXG4gICsgJ1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzMFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzRVx1MDQzQSBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDQ1XHUwNDNFXHUwNDM0XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwZG9tIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhzIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOHhzICdcbiAgKyAnXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDRGXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMweHMgXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMyXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDM1XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzIgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDMwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDNFXHUwNDMyeHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eHMgJ1xuICArICdcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0Mzh4cyBcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4cyBcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4cyBcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBkb20gJ1xuICArICdcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cGF0aHhzIFx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0ZcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M0NcdTA0NEJcdTA0NDVcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOGpzb24gXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4eG1sIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhtbCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4cyBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDlcdTA0MzhcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q2RvbSBcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ3htbCBcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDMyXHUwNDNGXHUwNDMwXHUwNDNDXHUwNDRGXHUwNDQyXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzVcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1eHNsIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQ0M3htbCAnXG4gICsgJ1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQzMlx1MDQ0Qlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzQlx1MDQzNVx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDBcdTA0MzJcdTA0NEJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgJ1xuICArICdcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEZG9tIFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQVx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzNcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGeG1sICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQzMCBcdTA0NDFcdTA0MzJcdTA0NEZcdTA0MzdcdTA0NENcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDRDXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzIFx1MDQ0MVx1MDQzMlx1MDQ0Rlx1MDQzN1x1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0M1x1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDB4ZHRvICdcbiAgKyAnXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwd2luZG93cyBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQ0Qlx1MDQ0M1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Rlx1MDQ0RVx1MDQ0OVx1MDQzOFx1MDQ0NVx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzMndpbmRvd3MgJ1xuICArICdcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0NEJcdTA0NDNcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NEZcdTA0NEVcdTA0NDlcdTA0MzhcdTA0NDVcdTA0NDZcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQxXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RiBcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEUgXHUwNDQxXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNCXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQ4ICdcbiAgKyAnXHUwNDQxXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0NEJcdTA0MzlcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzQgXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDMweG1sIFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgJ1xuICArICdcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NXhtbCBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDAgXHUwNDQ0XHUwNDMwXHUwNDMxXHUwNDQwXHUwNDM4XHUwNDNBXHUwNDMweGR0byBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBICdcbiAgKyAnXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM0XHUwNDNCXHUwNDM4XHUwNDNEXHUwNDRCeHMgXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4eHMgXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDMwXHUwNDRFXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgJ1xuICArICdcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NEVcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0NEJ4cyBcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0M0NcdTA0MzhcdTA0M0RcdTA0MzhcdTA0M0NcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NEVcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyAnXG4gICsgJ1x1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0QnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0Nlx1MDQzMHhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzMnhzICdcbiAgKyAnXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyeHMgXHUwNDQ0XHUwNDM4XHUwNDNCXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgJ1xuICArICdcdTA0NDRcdTA0NDBcdTA0MzBcdTA0MzNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJ4cyBcdTA0NDVcdTA0MzVcdTA0NDhcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0MiBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVmYXN0aW5mb3NldCBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVodG1sIFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNWpzb24gXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1eG1sIFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNXppcFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCAnXG4gICsgJ1x1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0MiBcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJztcblxuICAvLyB2OCBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNCXHUwNDM1XHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSA9PT4gdHlwZVxuICBjb25zdCB2OF91bml2ZXJzYWxfY29sbGVjdGlvbiA9XG4gICdjb21zYWZlYXJyYXkgXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMiBcdTA0NDFcdTA0M0VcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQ0M1x1MDQ0MFx1MDQzMCBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDNBXHUwNDQyXHUwNDQzXHUwNDQwXHUwNDMwICdcbiAgKyAnXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDQxXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1IFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMiAnO1xuXG4gIC8vIHR5cGUgOiBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDRCXG4gIGNvbnN0IFRZUEUgPVxuICB2OF9zaGFyZWRfb2JqZWN0XG4gICsgdjhfdW5pdmVyc2FsX2NvbGxlY3Rpb247XG5cbiAgLy8gbGl0ZXJhbCA6IFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0Mlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NEJcbiAgY29uc3QgTElURVJBTCA9ICdudWxsIFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzMCBcdTA0M0JcdTA0M0VcdTA0MzZcdTA0NEMgXHUwNDNEXHUwNDM1XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNFJztcblxuICAvLyBudW1iZXIgOiBcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzBcbiAgY29uc3QgTlVNQkVSUyA9IGhsanMuaW5oZXJpdChobGpzLk5VTUJFUl9NT0RFKTtcblxuICAvLyBzdHJpbmcgOiBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzhcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCJ8XFxcXHwnLFxuICAgIGVuZDogJ1wifCQnLFxuICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF1cbiAgfTtcblxuICAvLyBudW1iZXIgOiBcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEJcbiAgY29uc3QgREFURSA9IHtcbiAgICBiZWdpbjogXCInXCIsXG4gICAgZW5kOiBcIidcIixcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxkezR9KFtcXFxcLlxcXFxcXFxcLzotXT9cXFxcZHsyfSl7MCw1fSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgUFVOQ1RVQVRJT04gPSB7XG4gICAgbWF0Y2g6IC9bOygpK1xcLTo9LF0vLFxuICAgIGNsYXNzTmFtZTogXCJwdW5jdHVhdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8vIGNvbW1lbnQgOiBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzhcbiAgY29uc3QgQ09NTUVOVFMgPSBobGpzLmluaGVyaXQoaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFKTtcblxuICAvLyBtZXRhIDogXHUwNDM4XHUwNDNEXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQzMCwgXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDRCIFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzOFx1MDQzQlx1MDQ0Rlx1MDQ0Nlx1MDQzOFx1MDQzOFxuICBjb25zdCBNRVRBID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuXG4gICAgYmVnaW46ICcjfCYnLFxuICAgIGVuZDogJyQnLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkQgKyBNRVRBS0VZV09SRFxuICAgIH0sXG4gICAgY29udGFpbnM6IFsgQ09NTUVOVFMgXVxuICB9O1xuXG4gIC8vIHN5bWJvbCA6IFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzMCBnb3RvXG4gIGNvbnN0IFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnficsXG4gICAgZW5kOiAnO3w6JyxcbiAgICBleGNsdWRlRW5kOiB0cnVlXG4gIH07XG5cbiAgLy8gZnVuY3Rpb24gOiBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0NEZcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDM0XHUwNDQzXHUwNDQwIFx1MDQzOCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzlcbiAgY29uc3QgRlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDM0XHUwNDQzXHUwNDQwXHUwNDMwfFx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQ0RicsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6ICdcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0MzAgXHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NEJ8XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4JyxcbiAgICAgICAga2V5d29yZHM6ICdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4J1xuICAgICAgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgICBlbmQ6ICcsJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgICAgICRwYXR0ZXJuOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICBrZXl3b3JkOiAnXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3JyxcbiAgICAgICAgICAgICAgbGl0ZXJhbDogTElURVJBTFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIERBVEVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIENPTU1FTlRTXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBVTkRFUlNDT1JFX0lERU5UX1JFIH0pXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJzFDOkVudGVycHJpc2UnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAga2V5d29yZDogS0VZV09SRCxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVElOLFxuICAgICAgY2xhc3M6IENMQVNTLFxuICAgICAgdHlwZTogVFlQRSxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBNRVRBLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBDT01NRU5UUyxcbiAgICAgIFNZTUJPTCxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBTVFJJTkdTLFxuICAgICAgREFURSxcbiAgICAgIFBVTkNUVUFUSU9OXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF8xYztcbiIsICIvKlxuTGFuZ3VhZ2U6IEF1Z21lbnRlZCBCYWNrdXMtTmF1ciBGb3JtXG5BdXRob3I6IEFsZXggTWNLaWJiZW4gPGFsZXhAbnVsbHNjb3BlLm5ldD5cbldlYnNpdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0XG5DYXRlZ29yeTogc3ludGF4XG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFibmYoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UID0gL15bYS16QS1aXVthLXpBLVowLTktXSovO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiQUxQSEFcIixcbiAgICBcIkJJVFwiLFxuICAgIFwiQ0hBUlwiLFxuICAgIFwiQ1JcIixcbiAgICBcIkNSTEZcIixcbiAgICBcIkNUTFwiLFxuICAgIFwiRElHSVRcIixcbiAgICBcIkRRVU9URVwiLFxuICAgIFwiSEVYRElHXCIsXG4gICAgXCJIVEFCXCIsXG4gICAgXCJMRlwiLFxuICAgIFwiTFdTUFwiLFxuICAgIFwiT0NURVRcIixcbiAgICBcIlNQXCIsXG4gICAgXCJWQ0hBUlwiLFxuICAgIFwiV1NQXCJcbiAgXTtcblxuICBjb25zdCBDT01NRU5UID0gaGxqcy5DT01NRU5UKC87LywgLyQvKTtcblxuICBjb25zdCBURVJNSU5BTF9CSU5BUlkgPSB7XG4gICAgc2NvcGU6IFwic3ltYm9sXCIsXG4gICAgbWF0Y2g6IC8lYlswLTFdKygtWzAtMV0rfChcXC5bMC0xXSspKyk/L1xuICB9O1xuXG4gIGNvbnN0IFRFUk1JTkFMX0RFQ0lNQUwgPSB7XG4gICAgc2NvcGU6IFwic3ltYm9sXCIsXG4gICAgbWF0Y2g6IC8lZFswLTldKygtWzAtOV0rfChcXC5bMC05XSspKyk/L1xuICB9O1xuXG4gIGNvbnN0IFRFUk1JTkFMX0hFWEFERUNJTUFMID0ge1xuICAgIHNjb3BlOiBcInN5bWJvbFwiLFxuICAgIG1hdGNoOiAvJXhbMC05QS1GXSsoLVswLTlBLUZdK3woXFwuWzAtOUEtRl0rKSspPy9cbiAgfTtcblxuICBjb25zdCBDQVNFX1NFTlNJVElWSVRZID0ge1xuICAgIHNjb3BlOiBcInN5bWJvbFwiLFxuICAgIG1hdGNoOiAvJVtzaV0oPz1cIi4qXCIpL1xuICB9O1xuXG4gIGNvbnN0IFJVTEVfREVDTEFSQVRJT04gPSB7XG4gICAgc2NvcGU6IFwiYXR0cmlidXRlXCIsXG4gICAgbWF0Y2g6IHJlZ2V4LmNvbmNhdChJREVOVCwgLyg/PVxccyo9KS8pXG4gIH07XG5cbiAgY29uc3QgQVNTSUdOTUVOVCA9IHtcbiAgICBzY29wZTogXCJvcGVyYXRvclwiLFxuICAgIG1hdGNoOiAvPVxcLz8vXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXVnbWVudGVkIEJhY2t1cy1OYXVyIEZvcm0nLFxuICAgIGlsbGVnYWw6IC9bIUAjJF4mJyw/K35gfDpdLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEFTU0lHTk1FTlQsXG4gICAgICBSVUxFX0RFQ0xBUkFUSU9OLFxuICAgICAgQ09NTUVOVCxcbiAgICAgIFRFUk1JTkFMX0JJTkFSWSxcbiAgICAgIFRFUk1JTkFMX0RFQ0lNQUwsXG4gICAgICBURVJNSU5BTF9IRVhBREVDSU1BTCxcbiAgICAgIENBU0VfU0VOU0lUSVZJVFksXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhYm5mO1xuIiwgIi8qXG4gTGFuZ3VhZ2U6IEFwYWNoZSBBY2Nlc3MgTG9nXG4gQXV0aG9yOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPlxuIERlc2NyaXB0aW9uOiBBcGFjaGUvTmdpbnggQWNjZXNzIExvZ3NcbiBXZWJzaXRlOiBodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvbG9ncy5odG1sI2FjY2Vzc2xvZ1xuIENhdGVnb3J5OiB3ZWIsIGxvZ3NcbiBBdWRpdDogMjAyMFxuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhY2Nlc3Nsb2coaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvTWV0aG9kc1xuICBjb25zdCBIVFRQX1ZFUkJTID0gW1xuICAgIFwiR0VUXCIsXG4gICAgXCJQT1NUXCIsXG4gICAgXCJIRUFEXCIsXG4gICAgXCJQVVRcIixcbiAgICBcIkRFTEVURVwiLFxuICAgIFwiQ09OTkVDVFwiLFxuICAgIFwiT1BUSU9OU1wiLFxuICAgIFwiUEFUQ0hcIixcbiAgICBcIlRSQUNFXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXBhY2hlIEFjY2VzcyBMb2cnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBJUFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogL15cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSg6XFxkezEsNX0pP1xcYi8sXG4gICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgfSxcbiAgICAgIC8vIE90aGVyIG51bWJlcnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IC9cXGJcXGQrXFxiLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gUmVxdWVzdHNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXCIvLCByZWdleC5laXRoZXIoLi4uSFRUUF9WRVJCUykpLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIGtleXdvcmRzOiBIVFRQX1ZFUkJTLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiA1LFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvSFRUUFxcL1sxMl1cXC5cXGQnLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIERhdGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIC8vIGRhdGVzIG11c3QgaGF2ZSBhIGNlcnRhaW4gbGVuZ3RoLCB0aGlzIHByZXZlbnRzIG1hdGNoaW5nXG4gICAgICAgIC8vIHNpbXBsZSBhcnJheSBhY2Nlc3NlcyBhWzEyM10gYW5kIFtdIGFuZCBvdGhlciBjb21tb24gcGF0dGVybnNcbiAgICAgICAgLy8gZm91bmQgaW4gb3RoZXIgbGFuZ3VhZ2VzXG4gICAgICAgIGJlZ2luOiAvXFxbXFxkW15cXF1cXG5dezgsfVxcXS8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICByZWxldmFuY2U6IDFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgICAgZW5kOiAvXFxdLyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIFVzZXIgYWdlbnQgLyByZWxldmFuY2UgYm9vc3RcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cIk1vemlsbGFcXC9cXGRcXC5cXGQgXFwoLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAzXG4gICAgICB9LFxuICAgICAgLy8gU3RyaW5nc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFjY2Vzc2xvZztcbiIsICIvKlxuTGFuZ3VhZ2U6IEFjdGlvblNjcmlwdFxuQXV0aG9yOiBBbGV4YW5kZXIgTXlhZHplbCA8bXlhZHplbEBnbWFpbC5jb20+XG5DYXRlZ29yeTogc2NyaXB0aW5nXG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFjdGlvbnNjcmlwdChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSURFTlRfUkUgPSAvW2EtekEtWl8kXVthLXpBLVowLTlfJF0qLztcbiAgY29uc3QgUEtHX05BTUVfUkUgPSByZWdleC5jb25jYXQoXG4gICAgSURFTlRfUkUsXG4gICAgcmVnZXguY29uY2F0KFwiKFxcXFwuXCIsIElERU5UX1JFLCBcIikqXCIpXG4gICk7XG4gIGNvbnN0IElERU5UX0ZVTkNfUkVUVVJOX1RZUEVfUkUgPSAvKFsqXXxbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopLztcblxuICBjb25zdCBBUzNfUkVTVF9BUkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdyZXN0X2FyZycsXG4gICAgYmVnaW46IC9bLl17M30vLFxuICAgIGVuZDogSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYXNcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZvclwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcImdldFwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluc3RhbmNlb2ZcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwiaW50ZXJuYWxcIixcbiAgICBcImlzXCIsXG4gICAgXCJuYW1lc3BhY2VcIixcbiAgICBcIm5hdGl2ZVwiLFxuICAgIFwibmV3XCIsXG4gICAgXCJvdmVycmlkZVwiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInRoaXNcIixcbiAgICBcInRocm93XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2YXJcIixcbiAgICBcInZvaWRcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJ3aXRoXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwidW5kZWZpbmVkXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBY3Rpb25TY3JpcHQnLFxuICAgIGFsaWFzZXM6IFsgJ2FzJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL1xcYnBhY2thZ2UvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBQS0dfTkFNRV9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvXFxiKD86Y2xhc3N8aW50ZXJmYWNlfGV4dGVuZHN8aW1wbGVtZW50cykvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbXBvcnQgaW5jbHVkZScsXG4gICAgICAgIGVuZDogLzsvLFxuICAgICAgICBrZXl3b3JkczogeyBrZXl3b3JkOiAnaW1wb3J0IGluY2x1ZGUnIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsXG4gICAgICAgIGVuZDogL1t7O10vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIEFTM19SRVNUX0FSR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoLzpcXHMqLywgSURFTlRfRlVOQ19SRVRVUk5fVFlQRV9SRSkgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5NRVRIT0RfR1VBUkRcbiAgICBdLFxuICAgIGlsbGVnYWw6IC8jL1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFjdGlvbnNjcmlwdDtcbiIsICIvKlxuTGFuZ3VhZ2U6IEFkYVxuQXV0aG9yOiBMYXJzIFNjaHVsbmEgPGthcnRvZmZlbGJyZWkubWl0Lm11c2thdG51c3NAZ21haWwub3JnPlxuRGVzY3JpcHRpb246IEFkYSBpcyBhIGdlbmVyYWwtcHVycG9zZSBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IGhhcyBncmVhdCBzdXBwb3J0IGZvciBzYWZ0ZXkgY3JpdGljYWwgYW5kIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMuXG4gICAgICAgICAgICAgSXQgaGFzIGJlZW4gZGV2ZWxvcGVkIGJ5IHRoZSBEb0QgYW5kIHRodXMgaGFzIGJlZW4gdXNlZCBpbiBtaWxpdGFyeSBhbmQgc2FmZXR5LWNyaXRpY2FsIGFwcGxpY2F0aW9ucyAobGlrZSBjaXZpbCBhdmlhdGlvbikuXG4gICAgICAgICAgICAgVGhlIGZpcnN0IHZlcnNpb24gYXBwZWFyZWQgaW4gdGhlIDgwcywgYnV0IGl0J3Mgc3RpbGwgYWN0aXZlbHkgZGV2ZWxvcGVkIHRvZGF5IHdpdGhcbiAgICAgICAgICAgICB0aGUgbmV3ZXN0IHN0YW5kYXJkIGJlaW5nIEFkYTIwMTIuXG4qL1xuXG4vLyBXZSB0cnkgdG8gc3VwcG9ydCBmdWxsIEFkYTIwMTJcbi8vXG4vLyBXZSBoaWdobGlnaHQgYWxsIGFwcGVhcmFuY2VzIG9mIHR5cGVzLCBrZXl3b3JkcywgbGl0ZXJhbHMgKHN0cmluZywgY2hhciwgbnVtYmVyLCBib29sKVxuLy8gYW5kIHRpdGxlcyAodXNlciBkZWZpbmVkIGZ1bmN0aW9uL3Byb2NlZHVyZS9wYWNrYWdlKVxuLy8gQ1NTIGNsYXNzZXMgYXJlIHNldCBhY2NvcmRpbmdseVxuLy9cbi8vIExhbmd1YWdlcyBjYXVzaW5nIHByb2JsZW1zIGZvciBsYW5ndWFnZSBkZXRlY3Rpb246XG4vLyB4bWwgKGJyb2tlbiBieSBGb28gOiBCYXIgdHlwZSksIGVsbSAoYnJva2VuIGJ5IEZvbyA6IEJhciB0eXBlKSwgdmJzY3JpcHQtaHRtbCAoYnJva2VuIGJ5IGJvZHkga2V5d29yZClcbi8vIHNxbCAoYWRhIGRlZmF1bHQudHh0IGhhcyBhIGxvdCBvZiBzcWwga2V5d29yZHMpXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhZGEoaGxqcykge1xuICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIEFkYSBudW1lcmljIGxpdGVyYWxzLlxuICAvLyBzdG9sZW4gZm9ybSB0aGUgVkhETCBoaWdobGlnaHRlclxuXG4gIC8vIERlY2ltYWwgbGl0ZXJhbDpcbiAgY29uc3QgSU5URUdFUl9SRSA9ICdcXFxcZChffFxcXFxkKSonO1xuICBjb25zdCBFWFBPTkVOVF9SRSA9ICdbZUVdWy0rXT8nICsgSU5URUdFUl9SRTtcbiAgY29uc3QgREVDSU1BTF9MSVRFUkFMX1JFID0gSU5URUdFUl9SRSArICcoXFxcXC4nICsgSU5URUdFUl9SRSArICcpPycgKyAnKCcgKyBFWFBPTkVOVF9SRSArICcpPyc7XG5cbiAgLy8gQmFzZWQgbGl0ZXJhbDpcbiAgY29uc3QgQkFTRURfSU5URUdFUl9SRSA9ICdcXFxcdysnO1xuICBjb25zdCBCQVNFRF9MSVRFUkFMX1JFID0gSU5URUdFUl9SRSArICcjJyArIEJBU0VEX0lOVEVHRVJfUkUgKyAnKFxcXFwuJyArIEJBU0VEX0lOVEVHRVJfUkUgKyAnKT8nICsgJyMnICsgJygnICsgRVhQT05FTlRfUkUgKyAnKT8nO1xuXG4gIGNvbnN0IE5VTUJFUl9SRSA9ICdcXFxcYignICsgQkFTRURfTElURVJBTF9SRSArICd8JyArIERFQ0lNQUxfTElURVJBTF9SRSArICcpJztcblxuICAvLyBJZGVudGlmaWVyIHJlZ2V4XG4gIGNvbnN0IElEX1JFR0VYID0gJ1tBLVphLXpdKF8/W0EtWmEtejAtOS5dKSonO1xuXG4gIC8vIGJhZCBjaGFycywgb25seSBhbGxvd2VkIGluIGxpdGVyYWxzXG4gIGNvbnN0IEJBRF9DSEFSUyA9IGBbXVxcXFx7XFxcXH0lIydcImA7XG5cbiAgLy8gQWRhIGRvZXNuJ3QgaGF2ZSBibG9jayBjb21tZW50cywgb25seSBsaW5lIGNvbW1lbnRzXG4gIGNvbnN0IENPTU1FTlRTID0gaGxqcy5DT01NRU5UKCctLScsICckJyk7XG5cbiAgLy8gdmFyaWFibGUgZGVjbGFyYXRpb25zIG9mIHRoZSBmb3JtXG4gIC8vIEZvbyA6IEJhciA6PSBCYXo7XG4gIC8vIHdoZXJlIG9ubHkgQmFyIHdpbGwgYmUgaGlnaGxpZ2h0ZWRcbiAgY29uc3QgVkFSX0RFQ0xTID0ge1xuICAgIC8vIFRPRE86IFRoZXNlIHNwYWNlcyBhcmUgbm90IHJlcXVpcmVkIGJ5IHRoZSBBZGEgc3ludGF4XG4gICAgLy8gaG93ZXZlciwgSSBoYXZlIHlldCB0byBzZWUgaGFuZHdyaXR0ZW4gQWRhIGNvZGUgd2hlcmVcbiAgICAvLyBzb21lb25lIGRvZXMgbm90IHB1dCBzcGFjZXMgYXJvdW5kIDpcbiAgICBiZWdpbjogJ1xcXFxzKzpcXFxccysnLFxuICAgIGVuZDogJ1xcXFxzKig6PXw7fFxcXFwpfD0+fCQpJyxcbiAgICAvLyBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAvLyByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBpbGxlZ2FsOiBCQURfQ0hBUlMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgLy8gd29ya2Fyb3VuZCB0byBhdm9pZCBoaWdobGlnaHRpbmdcbiAgICAgICAgLy8gbmFtZWQgbG9vcHMgYW5kIGRlY2xhcmUgYmxvY2tzXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdsb29wIGZvciBkZWNsYXJlIG90aGVycycsXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHByb3Blcmx5IGhpZ2hsaWdodCBhbGwgbW9kaWZpZXJzXG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbm90IG51bGwgY29uc3RhbnQgYWNjZXNzIGZ1bmN0aW9uIHByb2NlZHVyZSBpbiBvdXQgYWxpYXNlZCBleGNlcHRpb24nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46IElEX1JFR0VYLFxuICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhYm9ydFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwibmV3XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcImFic1wiLFxuICAgIFwiZWxzaWZcIixcbiAgICBcIm5vdFwiLFxuICAgIFwicmV2ZXJzZVwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImVuZFwiLFxuICAgIFwiYWNjZXB0XCIsXG4gICAgXCJlbnRyeVwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJhY2Nlc3NcIixcbiAgICBcImV4Y2VwdGlvblwiLFxuICAgIFwib2ZcIixcbiAgICBcInNlcGFyYXRlXCIsXG4gICAgXCJhbGlhc2VkXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJvclwiLFxuICAgIFwic29tZVwiLFxuICAgIFwiYWxsXCIsXG4gICAgXCJvdGhlcnNcIixcbiAgICBcInN1YnR5cGVcIixcbiAgICBcImFuZFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJvdXRcIixcbiAgICBcInN5bmNocm9uaXplZFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJvdmVycmlkaW5nXCIsXG4gICAgXCJhdFwiLFxuICAgIFwidGFnZ2VkXCIsXG4gICAgXCJnZW5lcmljXCIsXG4gICAgXCJwYWNrYWdlXCIsXG4gICAgXCJ0YXNrXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwicHJhZ21hXCIsXG4gICAgXCJ0ZXJtaW5hdGVcIixcbiAgICBcImJvZHlcIixcbiAgICBcInByaXZhdGVcIixcbiAgICBcInRoZW5cIixcbiAgICBcImlmXCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcInR5cGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImluXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcImNvbnN0YW50XCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImlzXCIsXG4gICAgXCJyYWlzZVwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJyYW5nZVwiLFxuICAgIFwiZGVsYXlcIixcbiAgICBcImxpbWl0ZWRcIixcbiAgICBcInJlY29yZFwiLFxuICAgIFwid2hlblwiLFxuICAgIFwiZGVsdGFcIixcbiAgICBcImxvb3BcIixcbiAgICBcInJlbVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcImRpZ2l0c1wiLFxuICAgIFwicmVuYW1lc1wiLFxuICAgIFwid2l0aFwiLFxuICAgIFwiZG9cIixcbiAgICBcIm1vZFwiLFxuICAgIFwicmVxdWV1ZVwiLFxuICAgIFwieG9yXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBZGEnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogW1xuICAgICAgICBcIlRydWVcIixcbiAgICAgICAgXCJGYWxzZVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVFMsXG4gICAgICAvLyBzdHJpbmdzIFwiZm9vYmFyXCJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1wiXCIvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2hhcmFjdGVycyAnJ1xuICAgICAge1xuICAgICAgICAvLyBjaGFyYWN0ZXIgbGl0ZXJhbHMgYWx3YXlzIGNvbnRhaW4gb25lIGNoYXJcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC8nLicvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBudW1iZXIgbGl0ZXJhbHNcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IE5VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBBdHRyaWJ1dGVzXG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiBcIidcIiArIElEX1JFR0VYXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBwYWNrYWdlIGRlZmluaXRpb24sIG1heWJlIGluc2lkZSBnZW5lcmljXG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICcoXFxcXGJ3aXRoXFxcXHMrKT8oXFxcXGJwcml2YXRlXFxcXHMrKT9cXFxcYnBhY2thZ2VcXFxccysoXFxcXGJib2R5XFxcXHMrKT8nLFxuICAgICAgICBlbmQ6ICcoaXN8JCknLFxuICAgICAgICBrZXl3b3JkczogJ3BhY2thZ2UgYm9keScsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogQkFEX0NIQVJTXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBmdW5jdGlvbi9wcm9jZWR1cmUgZGVjbGFyYXRpb24vZGVmaW5pdGlvblxuICAgICAgICAvLyBtYXliZSBpbnNpZGUgZ2VuZXJpY1xuICAgICAgICBiZWdpbjogJyhcXFxcYih3aXRofG92ZXJyaWRpbmcpXFxcXHMrKT9cXFxcYihmdW5jdGlvbnxwcm9jZWR1cmUpXFxcXHMrJyxcbiAgICAgICAgZW5kOiAnKFxcXFxiaXN8XFxcXGJ3aXRofFxcXFxicmVuYW1lc3xcXFxcKVxcXFxzKjspJyxcbiAgICAgICAga2V5d29yZHM6ICdvdmVycmlkaW5nIGZ1bmN0aW9uIHByb2NlZHVyZSB3aXRoIGlzIHJlbmFtZXMgcmV0dXJuJyxcbiAgICAgICAgLy8gd2UgbmVlZCB0byByZS1tYXRjaCB0aGUgJ2Z1bmN0aW9uJyBrZXl3b3JkLCBzbyB0aGF0XG4gICAgICAgIC8vIHRoZSB0aXRsZSBtb2RlIGJlbG93IG1hdGNoZXMgb25seSBleGFjdGx5IG9uY2VcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOlxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIENPTU1FTlRTLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAvLyBuYW1lIG9mIHRoZSBmdW5jdGlvbi9wcm9jZWR1cmVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogJyhcXFxcYndpdGhcXFxccyspP1xcXFxiKGZ1bmN0aW9ufHByb2NlZHVyZSlcXFxccysnLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6ICcoXFxcXCh8XFxcXHMrfCQpJyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlNcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAvLyAnc2VsZidcbiAgICAgICAgICAgICAgICAgIC8vIC8vIHBhcmFtZXRlciB0eXBlc1xuICAgICAgICAgICAgICAgICAgVkFSX0RFQ0xTLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdHlwZVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcYnJldHVyblxcXFxzKycsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogJyhcXFxccyt8O3wkKScsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiAncmV0dXJuJyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgZG9uZSB3aXRoIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlNcblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIG5ldyB0eXBlIGRlY2xhcmF0aW9uc1xuICAgICAgICAvLyBtYXliZSBpbnNpZGUgZ2VuZXJpY1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihzdWIpP3R5cGVcXFxccysnLFxuICAgICAgICBlbmQ6ICdcXFxccysnLFxuICAgICAgICBrZXl3b3JkczogJ3R5cGUnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGlsbGVnYWw6IEJBRF9DSEFSU1xuICAgICAgfSxcblxuICAgICAgLy8gc2VlIGNvbW1lbnQgYWJvdmUgdGhlIGRlZmluaXRpb25cbiAgICAgIFZBUl9ERUNMU1xuXG4gICAgICAvLyBubyBtYXJrdXBcbiAgICAgIC8vIHJlbGV2YW5jZSBib29zdGVycyBmb3Igc21hbGwgc25pcHBldHNcbiAgICAgIC8vIHtiZWdpbjogJ1xcXFxzKj0+XFxcXHMqJ30sXG4gICAgICAvLyB7YmVnaW46ICdcXFxccyo6PVxcXFxzKid9LFxuICAgICAgLy8ge2JlZ2luOiAnXFxcXHMrOj1cXFxccysnfSxcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYWRhO1xuIiwgIi8qXG5MYW5ndWFnZTogQW5nZWxTY3JpcHRcbkF1dGhvcjogTWVsaXNzYSBHZWVscyA8bWVsaXNzYUBuaW1ibGUudG9vbHM+XG5DYXRlZ29yeTogc2NyaXB0aW5nXG5XZWJzaXRlOiBodHRwczovL3d3dy5hbmdlbGNvZGUuY29tL2FuZ2Vsc2NyaXB0L1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFuZ2Vsc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgYnVpbHRJblR5cGVNb2RlID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJ1xcXFxiKHZvaWR8Ym9vbHxpbnQ4fGludDE2fGludDMyfGludDY0fGludHx1aW50OHx1aW50MTZ8dWludDMyfHVpbnQ2NHx1aW50fHN0cmluZ3xyZWZ8YXJyYXl8ZG91YmxlfGZsb2F0fGF1dG98ZGljdGlvbmFyeSknXG4gIH07XG5cbiAgY29uc3Qgb2JqZWN0SGFuZGxlTW9kZSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnW2EtekEtWjAtOV9dK0AnXG4gIH07XG5cbiAgY29uc3QgZ2VuZXJpY01vZGUgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46ICc8JyxcbiAgICBlbmQ6ICc+JyxcbiAgICBjb250YWluczogW1xuICAgICAgYnVpbHRJblR5cGVNb2RlLFxuICAgICAgb2JqZWN0SGFuZGxlTW9kZVxuICAgIF1cbiAgfTtcblxuICBidWlsdEluVHlwZU1vZGUuY29udGFpbnMgPSBbIGdlbmVyaWNNb2RlIF07XG4gIG9iamVjdEhhbmRsZU1vZGUuY29udGFpbnMgPSBbIGdlbmVyaWNNb2RlIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJmb3JcIixcbiAgICBcImlufDBcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcImRvfDBcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcImNhc2VcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwib3JcIixcbiAgICBcImFuZFwiLFxuICAgIFwieG9yXCIsXG4gICAgXCJub3RcIixcbiAgICBcImdldHwwXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5vdXR8MTBcIixcbiAgICBcIm91dFwiLFxuICAgIFwib3ZlcnJpZGVcIixcbiAgICBcInNldHwwXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJkZWZhdWx0fDBcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJzaGFyZWRcIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJtaXhpbnwxMFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwiZnVuY2RlZlwiLFxuICAgIFwidGhpc1wiLFxuICAgIFwic3VwZXJcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJhYnN0cmFjdHwwXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcImV4cGxpY2l0XCIsXG4gICAgXCJwcm9wZXJ0eVwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQW5nZWxTY3JpcHQnLFxuICAgIGFsaWFzZXM6IFsgJ2FzYycgXSxcblxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcblxuICAgIC8vIGF2b2lkIGNsb3NlIGRldGVjdGlvbiB3aXRoIEMjIGFuZCBKU1xuICAgIGlsbGVnYWw6ICcoXnVzaW5nXFxcXHMrW0EtWmEtejAtOV9cXFxcLl0rOyR8XFxcXGJmdW5jdGlvblxcXFxzKlteXFxcXChdKScsXG5cbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyAnc3RyaW5ncydcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuXG4gICAgICAvLyBcIlwiXCJoZXJlZG9jIHN0cmluZ3NcIlwiXCJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuXG4gICAgICB7IC8vIFwic3RyaW5nc1wiXG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG5cbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSwgLy8gc2luZ2xlLWxpbmUgY29tbWVudHNcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsIC8vIGNvbW1lbnQgYmxvY2tzXG5cbiAgICAgIHsgLy8gbWV0YWRhdGFcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqXFxcXFsnLFxuICAgICAgICBlbmQ6ICdcXFxcXSdcbiAgICAgIH0sXG5cbiAgICAgIHsgLy8gaW50ZXJmYWNlIG9yIG5hbWVzcGFjZSBkZWNsYXJhdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW50ZXJmYWNlIG5hbWVzcGFjZScsXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGlsbGVnYWw6ICdbOy5cXFxcLV0nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgLy8gaW50ZXJmYWNlIG9yIG5hbWVzcGFjZSBuYW1lXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICAgICAgYmVnaW46ICdbYS16QS1aMC05X10rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgeyAvLyBjbGFzcyBkZWNsYXJhdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MnLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBpbGxlZ2FsOiAnWzsuXFxcXC1dJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IC8vIGNsYXNzIG5hbWVcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICBiZWdpbjogJ1thLXpBLVowLTlfXSsnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnWzosXVxcXFxzKicsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdbYS16QS1aMC05X10rJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgYnVpbHRJblR5cGVNb2RlLCAvLyBidWlsdC1pbiB0eXBlc1xuICAgICAgb2JqZWN0SGFuZGxlTW9kZSwgLy8gb2JqZWN0IGhhbmRsZXNcblxuICAgICAgeyAvLyBsaXRlcmFsc1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihudWxsfHRydWV8ZmFsc2UpJ1xuICAgICAgfSxcblxuICAgICAgeyAvLyBudW1iZXJzXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICcoLT8pKFxcXFxiMFt4WGJCb09kRF1bYS1mQS1GMC05XSt8KFxcXFxiXFxcXGQrKFxcXFwuXFxcXGQqKT9mP3xcXFxcLlxcXFxkK2Y/KShbZUVdWy0rXT9cXFxcZCtmPyk/KSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYW5nZWxzY3JpcHQ7XG4iLCAiLypcbkxhbmd1YWdlOiBBcGFjaGUgY29uZmlnXG5BdXRob3I6IFJ1c2xhbiBLZWJhIDxydWtlYmFAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbldlYnNpdGU6IGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZ1xuRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gZm9yIEFwYWNoZSBjb25maWd1cmF0aW9uIGZpbGVzIChodHRwZC5jb25mICYgLmh0YWNjZXNzKVxuQ2F0ZWdvcnk6IGNvbmZpZywgd2ViXG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFwYWNoZShobGpzKSB7XG4gIGNvbnN0IE5VTUJFUl9SRUYgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogL1skJV1cXGQrL1xuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogL1xcYlxcZCsvXG4gIH07XG4gIGNvbnN0IElQX0FERFJFU1MgPSB7XG4gICAgY2xhc3NOYW1lOiBcIm51bWJlclwiLFxuICAgIGJlZ2luOiAvXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM30oOlxcZHsxLDV9KT8vXG4gIH07XG4gIGNvbnN0IFBPUlRfTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogXCJudW1iZXJcIixcbiAgICBiZWdpbjogLzpcXGR7MSw1fS9cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXBhY2hlIGNvbmZpZycsXG4gICAgYWxpYXNlczogWyAnYXBhY2hlY29uZicgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgYmVnaW46IC88XFwvPy8sXG4gICAgICAgIGVuZDogLz4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIElQX0FERFJFU1MsXG4gICAgICAgICAgUE9SVF9OVU1CRVIsXG4gICAgICAgICAgLy8gbG93IHJlbGV2YW5jZSBwcmV2ZW50cyB1cyBmcm9tIGNsYW1pbmcgWE1ML0hUTUwgd2hlcmUgdGhpcyBydWxlIHdvdWxkXG4gICAgICAgICAgLy8gbWF0Y2ggc3RyaW5ncyBpbnNpZGUgb2YgWE1MIHRhZ3NcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyByZWxldmFuY2U6IDAgfSlcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAvLyBrZXl3b3JkcyBhcmVuXHUyMDE5dCBuZWVkZWQgZm9yIGhpZ2hsaWdodGluZyBwZXIgc2UsIHRoZXkgb25seSBib29zdCByZWxldmFuY2VcbiAgICAgICAgLy8gZm9yIGEgdmVyeSBnZW5lcmFsbHkgZGVmaW5lZCBtb2RlIChzdGFydHMgd2l0aCBhIHdvcmQsIGVuZHMgd2l0aCBsaW5lLWVuZFxuICAgICAgICBrZXl3b3JkczogeyBfOiBbXG4gICAgICAgICAgXCJvcmRlclwiLFxuICAgICAgICAgIFwiZGVueVwiLFxuICAgICAgICAgIFwiYWxsb3dcIixcbiAgICAgICAgICBcInNldGVudlwiLFxuICAgICAgICAgIFwicmV3cml0ZXJ1bGVcIixcbiAgICAgICAgICBcInJld3JpdGVlbmdpbmVcIixcbiAgICAgICAgICBcInJld3JpdGVjb25kXCIsXG4gICAgICAgICAgXCJkb2N1bWVudHJvb3RcIixcbiAgICAgICAgICBcInNldGhhbmRsZXJcIixcbiAgICAgICAgICBcImVycm9yZG9jdW1lbnRcIixcbiAgICAgICAgICBcImxvYWRtb2R1bGVcIixcbiAgICAgICAgICBcIm9wdGlvbnNcIixcbiAgICAgICAgICBcImhlYWRlclwiLFxuICAgICAgICAgIFwibGlzdGVuXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJyb290XCIsXG4gICAgICAgICAgXCJzZXJ2ZXJuYW1lXCJcbiAgICAgICAgXSB9LFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAga2V5d29yZHM6IHsgbGl0ZXJhbDogJ29uIG9mZiBhbGwgZGVueSBhbGxvdycgfSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgYmVnaW46IC9cXHNcXFsvLFxuICAgICAgICAgICAgICBlbmQ6IC9cXF0kL1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICBiZWdpbjogL1tcXCQlXVxcey8sXG4gICAgICAgICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgICAgIE5VTUJFUl9SRUZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIElQX0FERFJFU1MsXG4gICAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvXFxTL1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFwYWNoZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IEFwcGxlU2NyaXB0XG5BdXRob3JzOiBOYXRoYW4gR3JpZ2cgPG5hdGhhbkBuYXRoYW5hbXkub3JnPiwgRHIuIERyYW5nIDxkcmRyYW5nQGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBzY3JpcHRpbmdcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2FyY2hpdmUvZG9jdW1lbnRhdGlvbi9BcHBsZVNjcmlwdC9Db25jZXB0dWFsL0FwcGxlU2NyaXB0TGFuZ0d1aWRlL2ludHJvZHVjdGlvbi9BU0xSX2ludHJvLmh0bWxcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXBwbGVzY3JpcHQoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFNUUklORyA9IGhsanMuaW5oZXJpdChcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSk7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBTVFJJTkdcbiAgICBdXG4gIH07XG4gIGNvbnN0IENPTU1FTlRfTU9ERV8xID0gaGxqcy5DT01NRU5UKC8tLS8sIC8kLyk7XG4gIGNvbnN0IENPTU1FTlRfTU9ERV8yID0gaGxqcy5DT01NRU5UKFxuICAgIC9cXChcXCovLFxuICAgIC9cXCpcXCkvLFxuICAgIHsgY29udGFpbnM6IFtcbiAgICAgICdzZWxmJywgLy8gYWxsb3cgbmVzdGluZ1xuICAgICAgQ09NTUVOVF9NT0RFXzFcbiAgICBdIH1cbiAgKTtcbiAgY29uc3QgQ09NTUVOVFMgPSBbXG4gICAgQ09NTUVOVF9NT0RFXzEsXG4gICAgQ09NTUVOVF9NT0RFXzIsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRfUEFUVEVSTlMgPSBbXG4gICAgL2FwYXJ0IGZyb20vLFxuICAgIC9hc2lkZSBmcm9tLyxcbiAgICAvaW5zdGVhZCBvZi8sXG4gICAgL291dCBvZi8sXG4gICAgL2dyZWF0ZXIgdGhhbi8sXG4gICAgL2lzbid0fChkb2Vzbid0fGRvZXMgbm90KSAoZXF1YWx8Y29tZSBiZWZvcmV8Y29tZSBhZnRlcnxjb250YWluKS8sXG4gICAgLyhncmVhdGVyfGxlc3MpIHRoYW4oIG9yIGVxdWFsKT8vLFxuICAgIC8oc3RhcnRzP3xlbmRzfGJlZ2lucz8pIHdpdGgvLFxuICAgIC9jb250YWluZWQgYnkvLFxuICAgIC9jb21lcyAoYmVmb3JlfGFmdGVyKS8sXG4gICAgL2EgKHJlZnxyZWZlcmVuY2UpLyxcbiAgICAvUE9TSVggKGZpbGV8cGF0aCkvLFxuICAgIC8oZGF0ZXx0aW1lKSBzdHJpbmcvLFxuICAgIC9xdW90ZWQgZm9ybS9cbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTl9QQVRURVJOUyA9IFtcbiAgICAvY2xpcGJvYXJkIGluZm8vLFxuICAgIC90aGUgY2xpcGJvYXJkLyxcbiAgICAvaW5mbyBmb3IvLFxuICAgIC9saXN0IChkaXNrc3xmb2xkZXIpLyxcbiAgICAvbW91bnQgdm9sdW1lLyxcbiAgICAvcGF0aCB0by8sXG4gICAgLyhjbG9zZXxvcGVuIGZvcikgYWNjZXNzLyxcbiAgICAvKGdldHxzZXQpIGVvZi8sXG4gICAgL2N1cnJlbnQgZGF0ZS8sXG4gICAgL2RvIHNoZWxsIHNjcmlwdC8sXG4gICAgL2dldCB2b2x1bWUgc2V0dGluZ3MvLFxuICAgIC9yYW5kb20gbnVtYmVyLyxcbiAgICAvc2V0IHZvbHVtZS8sXG4gICAgL3N5c3RlbSBhdHRyaWJ1dGUvLFxuICAgIC9zeXN0ZW0gaW5mby8sXG4gICAgL3RpbWUgdG8gR01ULyxcbiAgICAvKGxvYWR8cnVufHN0b3JlKSBzY3JpcHQvLFxuICAgIC9zY3JpcHRpbmcgY29tcG9uZW50cy8sXG4gICAgL0FTQ0lJIChjaGFyYWN0ZXJ8bnVtYmVyKS8sXG4gICAgL2xvY2FsaXplZCBzdHJpbmcvLFxuICAgIC9jaG9vc2UgKGFwcGxpY2F0aW9ufGNvbG9yfGZpbGV8ZmlsZSBuYW1lfGZvbGRlcnxmcm9tIGxpc3R8cmVtb3RlIGFwcGxpY2F0aW9ufFVSTCkvLFxuICAgIC9kaXNwbGF5IChhbGVydHxkaWFsb2cpL1xuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0FwcGxlU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbICdvc2FzY3JpcHQnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhYm91dCBhYm92ZSBhZnRlciBhZ2FpbnN0IGFuZCBhcm91bmQgYXMgYXQgYmFjayBiZWZvcmUgYmVnaW5uaW5nICdcbiAgICAgICAgKyAnYmVoaW5kIGJlbG93IGJlbmVhdGggYmVzaWRlIGJldHdlZW4gYnV0IGJ5IGNvbnNpZGVyaW5nICdcbiAgICAgICAgKyAnY29udGFpbiBjb250YWlucyBjb250aW51ZSBjb3B5IGRpdiBkb2VzIGVpZ2h0aCBlbHNlIGVuZCBlcXVhbCAnXG4gICAgICAgICsgJ2VxdWFscyBlcnJvciBldmVyeSBleGl0IGZpZnRoIGZpcnN0IGZvciBmb3VydGggZnJvbSBmcm9udCAnXG4gICAgICAgICsgJ2dldCBnaXZlbiBnbG9iYWwgaWYgaWdub3JpbmcgaW4gaW50byBpcyBpdCBpdHMgbGFzdCBsb2NhbCBtZSAnXG4gICAgICAgICsgJ21pZGRsZSBtb2QgbXkgbmludGggbm90IG9mIG9uIG9udG8gb3Igb3ZlciBwcm9wIHByb3BlcnR5IHB1dCByZWYgJ1xuICAgICAgICArICdyZWZlcmVuY2UgcmVwZWF0IHJldHVybmluZyBzY3JpcHQgc2Vjb25kIHNldCBzZXZlbnRoIHNpbmNlICdcbiAgICAgICAgKyAnc2l4dGggc29tZSB0ZWxsIHRlbnRoIHRoYXQgdGhlfDAgdGhlbiB0aGlyZCB0aHJvdWdoIHRocnUgJ1xuICAgICAgICArICd0aW1lb3V0IHRpbWVzIHRvIHRyYW5zYWN0aW9uIHRyeSB1bnRpbCB3aGVyZSB3aGlsZSB3aG9zZSB3aXRoICdcbiAgICAgICAgKyAnd2l0aG91dCcsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnQXBwbGVTY3JpcHQgZmFsc2UgbGluZWZlZWQgcmV0dXJuIHBpIHF1b3RlIHJlc3VsdCBzcGFjZSB0YWIgdHJ1ZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ2FsaWFzIGFwcGxpY2F0aW9uIGJvb2xlYW4gY2xhc3MgY29uc3RhbnQgZGF0ZSBmaWxlIGludGVnZXIgbGlzdCAnXG4gICAgICAgICsgJ251bWJlciByZWFsIHJlY29yZCBzdHJpbmcgdGV4dCAnXG4gICAgICAgICsgJ2FjdGl2YXRlIGJlZXAgY291bnQgZGVsYXkgbGF1bmNoIGxvZyBvZmZzZXQgcmVhZCByb3VuZCAnXG4gICAgICAgICsgJ3J1biBzYXkgc3VtbWFyaXplIHdyaXRlICdcbiAgICAgICAgKyAnY2hhcmFjdGVyIGNoYXJhY3RlcnMgY29udGVudHMgZGF5IGZyb250bW9zdCBpZCBpdGVtIGxlbmd0aCAnXG4gICAgICAgICsgJ21vbnRoIG5hbWV8MCBwYXJhZ3JhcGggcGFyYWdyYXBocyByZXN0IHJldmVyc2UgcnVubmluZyB0aW1lIHZlcnNpb24gJ1xuICAgICAgICArICd3ZWVrZGF5IHdvcmQgd29yZHMgeWVhcidcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBTVFJJTkcsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvXFxiLyxcbiAgICAgICAgICByZWdleC5laXRoZXIoLi4uQlVJTFRfSU5fUEFUVEVSTlMpLFxuICAgICAgICAgIC9cXGIvXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IC9eXFxzKnJldHVyblxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICBiZWdpbjpcbiAgICAgICAgICAvXFxiKHRleHQgaXRlbSBkZWxpbWl0ZXJzfGN1cnJlbnQgYXBwbGljYXRpb258bWlzc2luZyB2YWx1ZSlcXGIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvXFxiLyxcbiAgICAgICAgICByZWdleC5laXRoZXIoLi4uS0VZV09SRF9QQVRURVJOUyksXG4gICAgICAgICAgL1xcYi9cbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ29uJyxcbiAgICAgICAgaWxsZWdhbDogL1skez07XFxuXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAgUEFSQU1TXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAuLi5DT01NRU5UU1xuICAgIF0sXG4gICAgaWxsZWdhbDogL1xcL1xcL3wtPnw9PnxcXFtcXFsvXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwbGVzY3JpcHQ7XG4iLCAiLypcbiBMYW5ndWFnZTogQXJjR0lTIEFyY2FkZVxuIENhdGVnb3J5OiBzY3JpcHRpbmdcbiBBdXRob3I6IEpvaG4gRm9zdGVyIDxqZm9zdGVyQGVzcmkuY29tPlxuIFdlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVycy5hcmNnaXMuY29tL2FyY2FkZS9cbiBEZXNjcmlwdGlvbjogQXJjR0lTIEFyY2FkZSBpcyBhbiBleHByZXNzaW9uIGxhbmd1YWdlIHVzZWQgaW4gbWFueSBFc3JpIEFyY0dJUyBwcm9kdWN0cyBzdWNoIGFzIFBybywgT25saW5lLCBTZXJ2ZXIsIFJ1bnRpbWUsIEphdmFTY3JpcHQsIGFuZCBQeXRob25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhcmNhZGUoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UX1JFID0gJ1tBLVphLXpfXVswLTlBLVphLXpfXSonO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBbXG4gICAgICBcImJyZWFrXCIsXG4gICAgICBcImNhc2VcIixcbiAgICAgIFwiY2F0Y2hcIixcbiAgICAgIFwiY29udGludWVcIixcbiAgICAgIFwiZGVidWdnZXJcIixcbiAgICAgIFwiZG9cIixcbiAgICAgIFwiZWxzZVwiLFxuICAgICAgXCJleHBvcnRcIixcbiAgICAgIFwiZm9yXCIsXG4gICAgICBcImZ1bmN0aW9uXCIsXG4gICAgICBcImlmXCIsXG4gICAgICBcImltcG9ydFwiLFxuICAgICAgXCJpblwiLFxuICAgICAgXCJuZXdcIixcbiAgICAgIFwicmV0dXJuXCIsXG4gICAgICBcInN3aXRjaFwiLFxuICAgICAgXCJ0cnlcIixcbiAgICAgIFwidmFyXCIsXG4gICAgICBcInZvaWRcIixcbiAgICAgIFwid2hpbGVcIlxuICAgIF0sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgXCJCYWNrU2xhc2hcIixcbiAgICAgIFwiRG91YmxlUXVvdGVcIixcbiAgICAgIFwiRm9yd2FyZFNsYXNoXCIsXG4gICAgICBcIkluZmluaXR5XCIsXG4gICAgICBcIk5hTlwiLFxuICAgICAgXCJOZXdMaW5lXCIsXG4gICAgICBcIlBJXCIsXG4gICAgICBcIlNpbmdsZVF1b3RlXCIsXG4gICAgICBcIlRhYlwiLFxuICAgICAgXCJUZXh0Rm9ybWF0dGluZ1wiLFxuICAgICAgXCJmYWxzZVwiLFxuICAgICAgXCJudWxsXCIsXG4gICAgICBcInRydWVcIixcbiAgICAgIFwidW5kZWZpbmVkXCJcbiAgICBdLFxuICAgIGJ1aWx0X2luOiBbXG4gICAgICBcIkFic1wiLFxuICAgICAgXCJBY29zXCIsXG4gICAgICBcIkFsbFwiLFxuICAgICAgXCJBbmdsZVwiLFxuICAgICAgXCJBbnlcIixcbiAgICAgIFwiQXJlYVwiLFxuICAgICAgXCJBcmVhR2VvZGV0aWNcIixcbiAgICAgIFwiQXJyYXlcIixcbiAgICAgIFwiQXNpblwiLFxuICAgICAgXCJBdGFuXCIsXG4gICAgICBcIkF0YW4yXCIsXG4gICAgICBcIkF0dGFjaG1lbnRzXCIsXG4gICAgICBcIkF2ZXJhZ2VcIixcbiAgICAgIFwiQmFja1wiLFxuICAgICAgXCJCZWFyaW5nXCIsXG4gICAgICBcIkJvb2xlYW5cIixcbiAgICAgIFwiQnVmZmVyXCIsXG4gICAgICBcIkJ1ZmZlckdlb2RldGljXCIsXG4gICAgICBcIkNlaWxcIixcbiAgICAgIFwiQ2VudHJvaWRcIixcbiAgICAgIFwiQ2hhbmdlVGltZVpvbmVcIixcbiAgICAgIFwiQ2xpcFwiLFxuICAgICAgXCJDb25jYXRlbmF0ZVwiLFxuICAgICAgXCJDb25zb2xlXCIsXG4gICAgICBcIkNvbnN0cmFpblwiLFxuICAgICAgXCJDb250YWluc1wiLFxuICAgICAgXCJDb252ZXJ0RGlyZWN0aW9uXCIsXG4gICAgICBcIkNvbnZleEh1bGxcIixcbiAgICAgIFwiQ29zXCIsXG4gICAgICBcIkNvdW50XCIsXG4gICAgICBcIkNyb3NzZXNcIixcbiAgICAgIFwiQ3V0XCIsXG4gICAgICBcIkRhdGV8MFwiLFxuICAgICAgXCJEYXRlQWRkXCIsXG4gICAgICBcIkRhdGVEaWZmXCIsXG4gICAgICBcIkRhdGVPbmx5XCIsXG4gICAgICBcIkRheVwiLFxuICAgICAgXCJEZWNvZGVcIixcbiAgICAgIFwiRGVmYXVsdFZhbHVlXCIsXG4gICAgICBcIkRlbnNpZnlcIixcbiAgICAgIFwiRGVuc2lmeUdlb2RldGljXCIsXG4gICAgICBcIkRpY3Rpb25hcnlcIixcbiAgICAgIFwiRGlmZmVyZW5jZVwiLFxuICAgICAgXCJEaXNqb2ludFwiLFxuICAgICAgXCJEaXN0YW5jZVwiLFxuICAgICAgXCJEaXN0YW5jZUdlb2RldGljXCIsXG4gICAgICBcIkRpc3RpbmN0XCIsXG4gICAgICBcIkRvbWFpblwiLFxuICAgICAgXCJEb21haW5Db2RlXCIsXG4gICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgIFwiRW52ZWxvcGVJbnRlcnNlY3RzXCIsXG4gICAgICBcIkVxdWFsc1wiLFxuICAgICAgXCJFcmFzZVwiLFxuICAgICAgXCJFeHBcIixcbiAgICAgIFwiRXhwZWN0c1wiLFxuICAgICAgXCJFeHRlbnRcIixcbiAgICAgIFwiRmVhdHVyZVwiLFxuICAgICAgXCJGZWF0dXJlU2V0XCIsXG4gICAgICBcIkZlYXR1cmVTZXRCeUFzc29jaWF0aW9uXCIsXG4gICAgICBcIkZlYXR1cmVTZXRCeUlkXCIsXG4gICAgICBcIkZlYXR1cmVTZXRCeU5hbWVcIixcbiAgICAgIFwiRmVhdHVyZVNldEJ5UG9ydGFsSXRlbVwiLFxuICAgICAgXCJGZWF0dXJlU2V0QnlSZWxhdGlvbnNoaXBDbGFzc1wiLFxuICAgICAgXCJGZWF0dXJlU2V0QnlSZWxhdGlvbnNoaXBOYW1lXCIsXG4gICAgICBcIkZpbHRlclwiLFxuICAgICAgXCJGaW5kXCIsXG4gICAgICBcIkZpcnN0fDBcIixcbiAgICAgIFwiRmxvb3JcIixcbiAgICAgIFwiRnJvbUNoYXJDb2RlXCIsXG4gICAgICBcIkZyb21Db2RlUG9pbnRcIixcbiAgICAgIFwiRnJvbUpTT05cIixcbiAgICAgIFwiRnJvbnRcIixcbiAgICAgIFwiR2RiVmVyc2lvblwiLFxuICAgICAgXCJHZW5lcmFsaXplXCIsXG4gICAgICBcIkdlb21ldHJ5XCIsXG4gICAgICBcIkdldEVudmlyb25tZW50XCIsXG4gICAgICBcIkdldEZlYXR1cmVTZXRcIixcbiAgICAgIFwiR2V0RmVhdHVyZVNldEluZm9cIixcbiAgICAgIFwiR2V0VXNlclwiLFxuICAgICAgXCJHcm91cEJ5XCIsXG4gICAgICBcIkd1aWRcIixcbiAgICAgIFwiSGFzS2V5XCIsXG4gICAgICBcIkhhc1ZhbHVlXCIsXG4gICAgICBcIkhhc2hcIixcbiAgICAgIFwiSG91clwiLFxuICAgICAgXCJJSWZcIixcbiAgICAgIFwiSVNPTW9udGhcIixcbiAgICAgIFwiSVNPV2Vla1wiLFxuICAgICAgXCJJU09XZWVrZGF5XCIsXG4gICAgICBcIklTT1llYXJcIixcbiAgICAgIFwiSW5jbHVkZXNcIixcbiAgICAgIFwiSW5kZXhPZlwiLFxuICAgICAgXCJJbnNlcnRcIixcbiAgICAgIFwiSW50ZXJzZWN0aW9uXCIsXG4gICAgICBcIkludGVyc2VjdHNcIixcbiAgICAgIFwiSXNFbXB0eVwiLFxuICAgICAgXCJJc05hblwiLFxuICAgICAgXCJJc1NlbGZJbnRlcnNlY3RpbmdcIixcbiAgICAgIFwiSXNTaW1wbGVcIixcbiAgICAgIFwiTGVmdHwwXCIsXG4gICAgICBcIkxlbmd0aFwiLFxuICAgICAgXCJMZW5ndGgzRFwiLFxuICAgICAgXCJMZW5ndGhHZW9kZXRpY1wiLFxuICAgICAgXCJMb2dcIixcbiAgICAgIFwiTG93ZXJcIixcbiAgICAgIFwiTWFwXCIsXG4gICAgICBcIk1heFwiLFxuICAgICAgXCJNZWFuXCIsXG4gICAgICBcIk1pZFwiLFxuICAgICAgXCJNaWxsaXNlY29uZFwiLFxuICAgICAgXCJNaW5cIixcbiAgICAgIFwiTWludXRlXCIsXG4gICAgICBcIk1vbnRoXCIsXG4gICAgICBcIk11bHRpUGFydFRvU2luZ2xlUGFydFwiLFxuICAgICAgXCJNdWx0aXBvaW50XCIsXG4gICAgICBcIk5lYXJlc3RDb29yZGluYXRlXCIsXG4gICAgICBcIk5lYXJlc3RWZXJ0ZXhcIixcbiAgICAgIFwiTmV4dFNlcXVlbmNlVmFsdWVcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICAgXCJOb3dcIixcbiAgICAgIFwiTnVtYmVyXCIsXG4gICAgICBcIk9mZnNldFwiLFxuICAgICAgXCJPcmRlckJ5XCIsXG4gICAgICBcIk92ZXJsYXBzXCIsXG4gICAgICBcIlBvaW50XCIsXG4gICAgICBcIlBvbHlnb25cIixcbiAgICAgIFwiUG9seWxpbmVcIixcbiAgICAgIFwiUG9wXCIsXG4gICAgICBcIlBvcnRhbFwiLFxuICAgICAgXCJQb3dcIixcbiAgICAgIFwiUHJvcGVyXCIsXG4gICAgICBcIlB1c2hcIixcbiAgICAgIFwiUmFuZG9tXCIsXG4gICAgICBcIlJlZHVjZVwiLFxuICAgICAgXCJSZWxhdGVcIixcbiAgICAgIFwiUmVwbGFjZVwiLFxuICAgICAgXCJSZXNpemVcIixcbiAgICAgIFwiUmV2ZXJzZVwiLFxuICAgICAgXCJSaWdodHwwXCIsXG4gICAgICBcIlJpbmdJc0Nsb2Nrd2lzZVwiLFxuICAgICAgXCJSb3RhdGVcIixcbiAgICAgIFwiUm91bmRcIixcbiAgICAgIFwiU2NoZW1hXCIsXG4gICAgICBcIlNlY29uZFwiLFxuICAgICAgXCJTZXRHZW9tZXRyeVwiLFxuICAgICAgXCJTaW1wbGlmeVwiLFxuICAgICAgXCJTaW5cIixcbiAgICAgIFwiU2xpY2VcIixcbiAgICAgIFwiU29ydFwiLFxuICAgICAgXCJTcGxpY2VcIixcbiAgICAgIFwiU3BsaXRcIixcbiAgICAgIFwiU3FydFwiLFxuICAgICAgXCJTdGFuZGFyZGl6ZUd1aWRcIixcbiAgICAgIFwiU3RkZXZcIixcbiAgICAgIFwiU3VidHlwZUNvZGVcIixcbiAgICAgIFwiU3VidHlwZU5hbWVcIixcbiAgICAgIFwiU3VidHlwZXNcIixcbiAgICAgIFwiU3VtXCIsXG4gICAgICBcIlN5bW1ldHJpY0RpZmZlcmVuY2VcIixcbiAgICAgIFwiVGFuXCIsXG4gICAgICBcIlRleHRcIixcbiAgICAgIFwiVGltZVwiLFxuICAgICAgXCJUaW1lWm9uZVwiLFxuICAgICAgXCJUaW1lWm9uZU9mZnNldFwiLFxuICAgICAgXCJUaW1lc3RhbXBcIixcbiAgICAgIFwiVG9DaGFyQ29kZVwiLFxuICAgICAgXCJUb0NvZGVQb2ludFwiLFxuICAgICAgXCJUb0hleFwiLFxuICAgICAgXCJUb0xvY2FsXCIsXG4gICAgICBcIlRvVVRDXCIsXG4gICAgICBcIlRvZGF5XCIsXG4gICAgICBcIlRvcHwwXCIsXG4gICAgICBcIlRvdWNoZXNcIixcbiAgICAgIFwiVHJhY2tBY2NlbGVyYXRpb25BdFwiLFxuICAgICAgXCJUcmFja0FjY2VsZXJhdGlvbldpbmRvd1wiLFxuICAgICAgXCJUcmFja0N1cnJlbnRBY2NlbGVyYXRpb25cIixcbiAgICAgIFwiVHJhY2tDdXJyZW50RGlzdGFuY2VcIixcbiAgICAgIFwiVHJhY2tDdXJyZW50U3BlZWRcIixcbiAgICAgIFwiVHJhY2tDdXJyZW50VGltZVwiLFxuICAgICAgXCJUcmFja0Rpc3RhbmNlQXRcIixcbiAgICAgIFwiVHJhY2tEaXN0YW5jZVdpbmRvd1wiLFxuICAgICAgXCJUcmFja0R1cmF0aW9uXCIsXG4gICAgICBcIlRyYWNrRmllbGRXaW5kb3dcIixcbiAgICAgIFwiVHJhY2tHZW9tZXRyeVdpbmRvd1wiLFxuICAgICAgXCJUcmFja0luZGV4XCIsXG4gICAgICBcIlRyYWNrU3BlZWRBdFwiLFxuICAgICAgXCJUcmFja1NwZWVkV2luZG93XCIsXG4gICAgICBcIlRyYWNrU3RhcnRUaW1lXCIsXG4gICAgICBcIlRyYWNrV2luZG93XCIsXG4gICAgICBcIlRyaW1cIixcbiAgICAgIFwiVHlwZU9mXCIsXG4gICAgICBcIlVuaW9uXCIsXG4gICAgICBcIlVwcGVyXCIsXG4gICAgICBcIlVybEVuY29kZVwiLFxuICAgICAgXCJWYXJpYW5jZVwiLFxuICAgICAgXCJXZWVrXCIsXG4gICAgICBcIldlZWtkYXlcIixcbiAgICAgIFwiV2hlbnwwXCIsXG4gICAgICBcIldpdGhpblwiLFxuICAgICAgXCJZZWFyfDBcIixcbiAgICBdXG4gIH07XG4gIGNvbnN0IFBST0ZJTEVfVkFSUyA9IFtcbiAgICBcImFnZ3JlZ2F0ZWRGZWF0dXJlc1wiLFxuICAgIFwiYW5hbHl0aWNcIixcbiAgICBcImNvbmZpZ1wiLFxuICAgIFwiZGF0YXBvaW50XCIsXG4gICAgXCJkYXRhc3RvcmVcIixcbiAgICBcImVkaXRjb250ZXh0XCIsXG4gICAgXCJmZWF0dXJlXCIsXG4gICAgXCJmZWF0dXJlU2V0XCIsXG4gICAgXCJmZWVkZmVhdHVyZVwiLFxuICAgIFwiZmVuY2VmZWF0dXJlXCIsXG4gICAgXCJmZW5jZW5vdGlmaWNhdGlvbnR5cGVcIixcbiAgICBcImpvaW5cIixcbiAgICBcImxheWVyXCIsXG4gICAgXCJsb2NhdGlvbnVwZGF0ZVwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtZWFzdXJlXCIsXG4gICAgXCJtZWFzdXJlXCIsXG4gICAgXCJvcmlnaW5hbEZlYXR1cmVcIixcbiAgICBcInJlY29yZFwiLFxuICAgIFwicmVmZXJlbmNlXCIsXG4gICAgXCJyb3dpbmRleFwiLFxuICAgIFwic291cmNlZGF0YXN0b3JlXCIsXG4gICAgXCJzb3VyY2VmZWF0dXJlXCIsXG4gICAgXCJzb3VyY2VsYXllclwiLFxuICAgIFwidGFyZ2V0XCIsXG4gICAgXCJ0YXJnZXRkYXRhc3RvcmVcIixcbiAgICBcInRhcmdldGZlYXR1cmVcIixcbiAgICBcInRhcmdldGxheWVyXCIsXG4gICAgXCJ2YWx1ZVwiLFxuICAgIFwidmlld1wiXG4gIF07XG4gIGNvbnN0IFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgcmVnZXguZWl0aGVyKC4uLlBST0ZJTEVfVkFSUylcbiAgfTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwW2JCXVswMV0rKScgfSxcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwW29PXVswLTddKyknIH0sXG4gICAgICB7IGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46ICdcXFxcJFxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfScsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXSAvLyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IFRFTVBMQVRFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnYCcsXG4gICAgZW5kOiAnYCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUXG4gICAgXVxuICB9O1xuICBTVUJTVC5jb250YWlucyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgTlVNQkVSLFxuICAgIGhsanMuUkVHRVhQX01PREVcbiAgXTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1QuY29udGFpbnMuY29uY2F0KFtcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERVxuICBdKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBcmNHSVMgQXJjYWRlJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBTWU1CT0wsXG4gICAgICBOVU1CRVIsXG4gICAgICB7IC8vIG9iamVjdCBhdHRyIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogL1t7LF1cXHMqLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSArICdcXFxccyo6JyxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gXCJ2YWx1ZVwiIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogJygnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXGIocmV0dXJuKVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIGJlZ2luOiAnKFxcXFwoLio/XFxcXCl8JyArIElERU5UX1JFICsgJylcXFxccyo9PicsXG4gICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGVuZDogJ1xcXFxzKj0+JyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7IGJlZ2luOiBJREVOVF9SRSB9LFxuICAgICAgICAgICAgICAgICAgeyBiZWdpbjogL1xcKFxccypcXCkvIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uJyxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIixcbiAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIGlsbGVnYWw6IC9cXFt8JS9cbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAvXFwkWyguXS8gfVxuICAgIF0sXG4gICAgaWxsZWdhbDogLyMoPyEhKS9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcmNhZGU7XG4iLCAiLypcbkxhbmd1YWdlOiBDKytcbkNhdGVnb3J5OiBjb21tb24sIHN5c3RlbVxuV2Vic2l0ZTogaHR0cHM6Ly9pc29jcHAub3JnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY1BsdXNQbHVzKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvLyBhZGRlZCBmb3IgaGlzdG9yaWMgcmVhc29ucyBiZWNhdXNlIGBobGpzLkNfTElORV9DT01NRU5UX01PREVgIGRvZXNcbiAgLy8gbm90IGluY2x1ZGUgc3VjaCBzdXBwb3J0IG5vciBjYW4gd2UgYmUgc3VyZSBhbGwgdGhlIGdyYW1tYXJzIGRlcGVuZGluZ1xuICAvLyBvbiBpdCB3b3VsZCBkZXNpcmUgdGhpcyBiZWhhdmlvclxuICBjb25zdCBDX0xJTkVfQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKCcvLycsICckJywgeyBjb250YWluczogWyB7IGJlZ2luOiAvXFxcXFxcbi8gfSBdIH0pO1xuICBjb25zdCBERUNMVFlQRV9BVVRPX1JFID0gJ2RlY2x0eXBlXFxcXChhdXRvXFxcXCknO1xuICBjb25zdCBOQU1FU1BBQ0VfUkUgPSAnW2EtekEtWl9dXFxcXHcqOjonO1xuICBjb25zdCBURU1QTEFURV9BUkdVTUVOVF9SRSA9ICc8W148Pl0rPic7XG4gIGNvbnN0IEZVTkNUSU9OX1RZUEVfUkUgPSAnKD8hc3RydWN0KSgnXG4gICAgKyBERUNMVFlQRV9BVVRPX1JFICsgJ3wnXG4gICAgKyByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpXG4gICAgKyAnW2EtekEtWl9dXFxcXHcqJyArIHJlZ2V4Lm9wdGlvbmFsKFRFTVBMQVRFX0FSR1VNRU5UX1JFKVxuICArICcpJztcblxuICBjb25zdCBDUFBfUFJJTUlUSVZFX1RZUEVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIGJlZ2luOiAnXFxcXGJbYS16XFxcXGRfXSpfdFxcXFxiJ1xuICB9O1xuXG4gIC8vIGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNlLmNvbS93L2NwcC9sYW5ndWFnZS9lc2NhcGVcbiAgLy8gXFxcXCBcXHggXFx4RkYgXFx1MjgzNyBcXHUwMDMyMzc0NyBcXDM3NFxuICBjb25zdCBDSEFSQUNURVJfRVNDQVBFUyA9ICdcXFxcXFxcXCh4WzAtOUEtRmEtZl17Mn18dVswLTlBLUZhLWZdezQsOH18WzAtN117M318XFxcXFMpJztcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVfEwpP1wiJyxcbiAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcodTg/fFV8TCk/XFwnKCcgKyBDSEFSQUNURVJfRVNDQVBFUyArICd8LiknLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnLidcbiAgICAgIH0sXG4gICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgYmVnaW46IC8oPzp1OD98VXxMKT9SXCIoW14oKVxcXFwgXXswLDE2fSlcXCgvLFxuICAgICAgICBlbmQ6IC9cXCkoW14oKVxcXFwgXXswLDE2fSlcIi9cbiAgICAgIH0pXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gRmxvYXRpbmctcG9pbnQgbGl0ZXJhbC5cbiAgICAgIHsgYmVnaW46XG4gICAgICAgIFwiWystXT8oPzpcIiAvLyBMZWFkaW5nIHNpZ24uXG4gICAgICAgICAgLy8gRGVjaW1hbC5cbiAgICAgICAgICArIFwiKD86XCJcbiAgICAgICAgICAgICtcIlswLTldKD86Jz9bMC05XSkqXFxcXC4oPzpbMC05XSg/Oic/WzAtOV0pKik/XCJcbiAgICAgICAgICAgICsgXCJ8XFxcXC5bMC05XSg/Oic/WzAtOV0pKlwiXG4gICAgICAgICAgKyBcIikoPzpbRWVdWystXT9bMC05XSg/Oic/WzAtOV0pKik/XCJcbiAgICAgICAgICArIFwifFswLTldKD86Jz9bMC05XSkqW0VlXVsrLV0/WzAtOV0oPzonP1swLTldKSpcIlxuICAgICAgICAgIC8vIEhleGFkZWNpbWFsLlxuICAgICAgICAgICsgXCJ8MFtYeF0oPzpcIlxuICAgICAgICAgICAgK1wiWzAtOUEtRmEtZl0oPzonP1swLTlBLUZhLWZdKSooPzpcXFxcLig/OlswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqKT8pP1wiXG4gICAgICAgICAgICArIFwifFxcXFwuWzAtOUEtRmEtZl0oPzonP1swLTlBLUZhLWZdKSpcIlxuICAgICAgICAgICsgXCIpW1BwXVsrLV0/WzAtOV0oPzonP1swLTldKSpcIlxuICAgICAgICArIFwiKSg/OlwiIC8vIExpdGVyYWwgc3VmZml4ZXMuXG4gICAgICAgICAgKyBcIltGZl0oPzoxNnwzMnw2NHwxMjgpP1wiXG4gICAgICAgICAgKyBcInwoQkZ8YmYpMTZcIlxuICAgICAgICAgICsgXCJ8W0xsXVwiXG4gICAgICAgICAgKyBcInxcIiAvLyBMaXRlcmFsIHN1ZmZpeCBpcyBvcHRpb25hbC5cbiAgICAgICAgKyBcIilcIlxuICAgICAgfSxcbiAgICAgIC8vIEludGVnZXIgbGl0ZXJhbC5cbiAgICAgIHsgYmVnaW46XG4gICAgICAgIFwiWystXT9cXFxcYig/OlwiIC8vIExlYWRpbmcgc2lnbi5cbiAgICAgICAgICArIFwiMFtCYl1bMDFdKD86Jz9bMDFdKSpcIiAvLyBCaW5hcnkuXG4gICAgICAgICAgKyBcInwwW1h4XVswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqXCIgLy8gSGV4YWRlY2ltYWwuXG4gICAgICAgICAgKyBcInwwKD86Jz9bMC03XSkqXCIgLy8gT2N0YWwgb3IganVzdCBhIGxvbmUgemVyby5cbiAgICAgICAgICArIFwifFsxLTldKD86Jz9bMC05XSkqXCIgLy8gRGVjaW1hbC5cbiAgICAgICAgKyBcIikoPzpcIiAvLyBMaXRlcmFsIHN1ZmZpeGVzLlxuICAgICAgICAgICsgXCJbVXVdKD86TEw/fGxsPylcIlxuICAgICAgICAgICsgXCJ8W1V1XVtael0/XCJcbiAgICAgICAgICArIFwifCg/OkxMP3xsbD8pW1V1XT9cIlxuICAgICAgICAgICsgXCJ8W1p6XVtVdV1cIlxuICAgICAgICAgICsgXCJ8XCIgLy8gTGl0ZXJhbCBzdWZmaXggaXMgb3B0aW9uYWwuXG4gICAgICAgICsgXCIpXCJcbiAgICAgICAgLy8gTm90ZTogdGhlcmUgYXJlIHVzZXItZGVmaW5lZCBsaXRlcmFsIHN1ZmZpeGVzIHRvbywgYnV0IHBlcmhhcHMgaGF2aW5nIHRoZSBjdXN0b20gc3VmZml4IG5vdCBwYXJ0IG9mIHRoZVxuICAgICAgICAvLyBsaXRlcmFsIGhpZ2hsaWdodCBhY3R1YWxseSBtYWtlcyBpdCBzdGFuZCBvdXQgbW9yZS5cbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBSRVBST0NFU1NPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNcXHMqW2Etel0rXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAnaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgJ1xuICAgICAgICArICdwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZScgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcXFxcXG4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoU1RSSU5HUywgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLzwuKj8+L1xuICAgICAgfSxcbiAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFRJVExFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIGJlZ2luOiByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpICsgaGxqcy5JREVOVF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9USVRMRSA9IHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSkgKyBobGpzLklERU5UX1JFICsgJ1xcXFxzKlxcXFwoJztcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBSRVNFUlZFRF9LRVlXT1JEUyA9IFtcbiAgICAnYWxpZ25hcycsXG4gICAgJ2FsaWdub2YnLFxuICAgICdhbmQnLFxuICAgICdhbmRfZXEnLFxuICAgICdhc20nLFxuICAgICdhdG9taWNfY2FuY2VsJyxcbiAgICAnYXRvbWljX2NvbW1pdCcsXG4gICAgJ2F0b21pY19ub2V4Y2VwdCcsXG4gICAgJ2F1dG8nLFxuICAgICdiaXRhbmQnLFxuICAgICdiaXRvcicsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FzZScsXG4gICAgJ2NhdGNoJyxcbiAgICAnY2xhc3MnLFxuICAgICdjb19hd2FpdCcsXG4gICAgJ2NvX3JldHVybicsXG4gICAgJ2NvX3lpZWxkJyxcbiAgICAnY29tcGwnLFxuICAgICdjb25jZXB0JyxcbiAgICAnY29uc3RfY2FzdHwxMCcsXG4gICAgJ2NvbnN0ZXZhbCcsXG4gICAgJ2NvbnN0ZXhwcicsXG4gICAgJ2NvbnN0aW5pdCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnZGVjbHR5cGUnLFxuICAgICdkZWZhdWx0JyxcbiAgICAnZGVsZXRlJyxcbiAgICAnZG8nLFxuICAgICdkeW5hbWljX2Nhc3R8MTAnLFxuICAgICdlbHNlJyxcbiAgICAnZW51bScsXG4gICAgJ2V4cGxpY2l0JyxcbiAgICAnZXhwb3J0JyxcbiAgICAnZXh0ZXJuJyxcbiAgICAnZmFsc2UnLFxuICAgICdmaW5hbCcsXG4gICAgJ2ZvcicsXG4gICAgJ2ZyaWVuZCcsXG4gICAgJ2dvdG8nLFxuICAgICdpZicsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ2lubGluZScsXG4gICAgJ21vZHVsZScsXG4gICAgJ211dGFibGUnLFxuICAgICduYW1lc3BhY2UnLFxuICAgICduZXcnLFxuICAgICdub2V4Y2VwdCcsXG4gICAgJ25vdCcsXG4gICAgJ25vdF9lcScsXG4gICAgJ251bGxwdHInLFxuICAgICdvcGVyYXRvcicsXG4gICAgJ29yJyxcbiAgICAnb3JfZXEnLFxuICAgICdvdmVycmlkZScsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdwdWJsaWMnLFxuICAgICdyZWZsZXhwcicsXG4gICAgJ3JlZ2lzdGVyJyxcbiAgICAncmVpbnRlcnByZXRfY2FzdHwxMCcsXG4gICAgJ3JlcXVpcmVzJyxcbiAgICAncmV0dXJuJyxcbiAgICAnc2l6ZW9mJyxcbiAgICAnc3RhdGljX2Fzc2VydCcsXG4gICAgJ3N0YXRpY19jYXN0fDEwJyxcbiAgICAnc3RydWN0JyxcbiAgICAnc3dpdGNoJyxcbiAgICAnc3luY2hyb25pemVkJyxcbiAgICAndGVtcGxhdGUnLFxuICAgICd0aGlzJyxcbiAgICAndGhyZWFkX2xvY2FsJyxcbiAgICAndGhyb3cnLFxuICAgICd0cmFuc2FjdGlvbl9zYWZlJyxcbiAgICAndHJhbnNhY3Rpb25fc2FmZV9keW5hbWljJyxcbiAgICAndHJ1ZScsXG4gICAgJ3RyeScsXG4gICAgJ3R5cGVkZWYnLFxuICAgICd0eXBlaWQnLFxuICAgICd0eXBlbmFtZScsXG4gICAgJ3VuaW9uJyxcbiAgICAndXNpbmcnLFxuICAgICd2aXJ0dWFsJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICd3aGlsZScsXG4gICAgJ3hvcicsXG4gICAgJ3hvcl9lcSdcbiAgXTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBSRVNFUlZFRF9UWVBFUyA9IFtcbiAgICAnYm9vbCcsXG4gICAgJ2NoYXInLFxuICAgICdjaGFyMTZfdCcsXG4gICAgJ2NoYXIzMl90JyxcbiAgICAnY2hhcjhfdCcsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2Zsb2F0JyxcbiAgICAnaW50JyxcbiAgICAnbG9uZycsXG4gICAgJ3Nob3J0JyxcbiAgICAndm9pZCcsXG4gICAgJ3djaGFyX3QnLFxuICAgICd1bnNpZ25lZCcsXG4gICAgJ3NpZ25lZCcsXG4gICAgJ2NvbnN0JyxcbiAgICAnc3RhdGljJ1xuICBdO1xuXG4gIGNvbnN0IFRZUEVfSElOVFMgPSBbXG4gICAgJ2FueScsXG4gICAgJ2F1dG9fcHRyJyxcbiAgICAnYmFycmllcicsXG4gICAgJ2JpbmFyeV9zZW1hcGhvcmUnLFxuICAgICdiaXRzZXQnLFxuICAgICdjb21wbGV4JyxcbiAgICAnY29uZGl0aW9uX3ZhcmlhYmxlJyxcbiAgICAnY29uZGl0aW9uX3ZhcmlhYmxlX2FueScsXG4gICAgJ2NvdW50aW5nX3NlbWFwaG9yZScsXG4gICAgJ2RlcXVlJyxcbiAgICAnZmFsc2VfdHlwZScsXG4gICAgJ2Z1dHVyZScsXG4gICAgJ2ltYWdpbmFyeScsXG4gICAgJ2luaXRpYWxpemVyX2xpc3QnLFxuICAgICdpc3RyaW5nc3RyZWFtJyxcbiAgICAnanRocmVhZCcsXG4gICAgJ2xhdGNoJyxcbiAgICAnbG9ja19ndWFyZCcsXG4gICAgJ211bHRpbWFwJyxcbiAgICAnbXVsdGlzZXQnLFxuICAgICdtdXRleCcsXG4gICAgJ29wdGlvbmFsJyxcbiAgICAnb3N0cmluZ3N0cmVhbScsXG4gICAgJ3BhY2thZ2VkX3Rhc2snLFxuICAgICdwYWlyJyxcbiAgICAncHJvbWlzZScsXG4gICAgJ3ByaW9yaXR5X3F1ZXVlJyxcbiAgICAncXVldWUnLFxuICAgICdyZWN1cnNpdmVfbXV0ZXgnLFxuICAgICdyZWN1cnNpdmVfdGltZWRfbXV0ZXgnLFxuICAgICdzY29wZWRfbG9jaycsXG4gICAgJ3NldCcsXG4gICAgJ3NoYXJlZF9mdXR1cmUnLFxuICAgICdzaGFyZWRfbG9jaycsXG4gICAgJ3NoYXJlZF9tdXRleCcsXG4gICAgJ3NoYXJlZF90aW1lZF9tdXRleCcsXG4gICAgJ3NoYXJlZF9wdHInLFxuICAgICdzdGFjaycsXG4gICAgJ3N0cmluZ192aWV3JyxcbiAgICAnc3RyaW5nc3RyZWFtJyxcbiAgICAndGltZWRfbXV0ZXgnLFxuICAgICd0aHJlYWQnLFxuICAgICd0cnVlX3R5cGUnLFxuICAgICd0dXBsZScsXG4gICAgJ3VuaXF1ZV9sb2NrJyxcbiAgICAndW5pcXVlX3B0cicsXG4gICAgJ3Vub3JkZXJlZF9tYXAnLFxuICAgICd1bm9yZGVyZWRfbXVsdGltYXAnLFxuICAgICd1bm9yZGVyZWRfbXVsdGlzZXQnLFxuICAgICd1bm9yZGVyZWRfc2V0JyxcbiAgICAndmFyaWFudCcsXG4gICAgJ3ZlY3RvcicsXG4gICAgJ3dlYWtfcHRyJyxcbiAgICAnd3N0cmluZycsXG4gICAgJ3dzdHJpbmdfdmlldydcbiAgXTtcblxuICBjb25zdCBGVU5DVElPTl9ISU5UUyA9IFtcbiAgICAnYWJvcnQnLFxuICAgICdhYnMnLFxuICAgICdhY29zJyxcbiAgICAnYXBwbHknLFxuICAgICdhc19jb25zdCcsXG4gICAgJ2FzaW4nLFxuICAgICdhdGFuJyxcbiAgICAnYXRhbjInLFxuICAgICdjYWxsb2MnLFxuICAgICdjZWlsJyxcbiAgICAnY2VycicsXG4gICAgJ2NpbicsXG4gICAgJ2Nsb2cnLFxuICAgICdjb3MnLFxuICAgICdjb3NoJyxcbiAgICAnY291dCcsXG4gICAgJ2RlY2x2YWwnLFxuICAgICdlbmRsJyxcbiAgICAnZXhjaGFuZ2UnLFxuICAgICdleGl0JyxcbiAgICAnZXhwJyxcbiAgICAnZmFicycsXG4gICAgJ2Zsb29yJyxcbiAgICAnZm1vZCcsXG4gICAgJ2ZvcndhcmQnLFxuICAgICdmcHJpbnRmJyxcbiAgICAnZnB1dHMnLFxuICAgICdmcmVlJyxcbiAgICAnZnJleHAnLFxuICAgICdmc2NhbmYnLFxuICAgICdmdXR1cmUnLFxuICAgICdpbnZva2UnLFxuICAgICdpc2FsbnVtJyxcbiAgICAnaXNhbHBoYScsXG4gICAgJ2lzY250cmwnLFxuICAgICdpc2RpZ2l0JyxcbiAgICAnaXNncmFwaCcsXG4gICAgJ2lzbG93ZXInLFxuICAgICdpc3ByaW50JyxcbiAgICAnaXNwdW5jdCcsXG4gICAgJ2lzc3BhY2UnLFxuICAgICdpc3VwcGVyJyxcbiAgICAnaXN4ZGlnaXQnLFxuICAgICdsYWJzJyxcbiAgICAnbGF1bmRlcicsXG4gICAgJ2xkZXhwJyxcbiAgICAnbG9nJyxcbiAgICAnbG9nMTAnLFxuICAgICdtYWtlX3BhaXInLFxuICAgICdtYWtlX3NoYXJlZCcsXG4gICAgJ21ha2Vfc2hhcmVkX2Zvcl9vdmVyd3JpdGUnLFxuICAgICdtYWtlX3R1cGxlJyxcbiAgICAnbWFrZV91bmlxdWUnLFxuICAgICdtYWxsb2MnLFxuICAgICdtZW1jaHInLFxuICAgICdtZW1jbXAnLFxuICAgICdtZW1jcHknLFxuICAgICdtZW1zZXQnLFxuICAgICdtb2RmJyxcbiAgICAnbW92ZScsXG4gICAgJ3BvdycsXG4gICAgJ3ByaW50ZicsXG4gICAgJ3B1dGNoYXInLFxuICAgICdwdXRzJyxcbiAgICAncmVhbGxvYycsXG4gICAgJ3NjYW5mJyxcbiAgICAnc2luJyxcbiAgICAnc2luaCcsXG4gICAgJ3NucHJpbnRmJyxcbiAgICAnc3ByaW50ZicsXG4gICAgJ3NxcnQnLFxuICAgICdzc2NhbmYnLFxuICAgICdzdGQnLFxuICAgICdzdGRlcnInLFxuICAgICdzdGRpbicsXG4gICAgJ3N0ZG91dCcsXG4gICAgJ3N0cmNhdCcsXG4gICAgJ3N0cmNocicsXG4gICAgJ3N0cmNtcCcsXG4gICAgJ3N0cmNweScsXG4gICAgJ3N0cmNzcG4nLFxuICAgICdzdHJsZW4nLFxuICAgICdzdHJuY2F0JyxcbiAgICAnc3RybmNtcCcsXG4gICAgJ3N0cm5jcHknLFxuICAgICdzdHJwYnJrJyxcbiAgICAnc3RycmNocicsXG4gICAgJ3N0cnNwbicsXG4gICAgJ3N0cnN0cicsXG4gICAgJ3N3YXAnLFxuICAgICd0YW4nLFxuICAgICd0YW5oJyxcbiAgICAndGVybWluYXRlJyxcbiAgICAndG9fdW5kZXJseWluZycsXG4gICAgJ3RvbG93ZXInLFxuICAgICd0b3VwcGVyJyxcbiAgICAndmZwcmludGYnLFxuICAgICd2aXNpdCcsXG4gICAgJ3ZwcmludGYnLFxuICAgICd2c3ByaW50ZidcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAnTlVMTCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbG9wdCcsXG4gICAgJ251bGxwdHInLFxuICAgICd0cnVlJ1xuICBdO1xuXG4gIC8vIGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNlLmNvbS93L2NwcC9rZXl3b3JkXG4gIGNvbnN0IEJVSUxUX0lOID0gWyAnX1ByYWdtYScgXTtcblxuICBjb25zdCBDUFBfS0VZV09SRFMgPSB7XG4gICAgdHlwZTogUkVTRVJWRURfVFlQRVMsXG4gICAga2V5d29yZDogUkVTRVJWRURfS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOLFxuICAgIF90eXBlX2hpbnRzOiBUWVBFX0hJTlRTXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fRElTUEFUQ0ggPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24uZGlzcGF0Y2gnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgLy8gT25seSBmb3IgcmVsZXZhbmNlLCBub3QgaGlnaGxpZ2h0aW5nLlxuICAgICAgX2hpbnQ6IEZVTkNUSU9OX0hJTlRTIH0sXG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgIC9cXGIvLFxuICAgICAgLyg/IWRlY2x0eXBlKS8sXG4gICAgICAvKD8haWYpLyxcbiAgICAgIC8oPyFmb3IpLyxcbiAgICAgIC8oPyFzd2l0Y2gpLyxcbiAgICAgIC8oPyF3aGlsZSkvLFxuICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvKDxbXjw+XSs+fClcXHMqXFwoLykpXG4gIH07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05UQUlOUyA9IFtcbiAgICBGVU5DVElPTl9ESVNQQVRDSCxcbiAgICBQUkVQUk9DRVNTT1IsXG4gICAgQ1BQX1BSSU1JVElWRV9UWVBFUyxcbiAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgTlVNQkVSUyxcbiAgICBTVFJJTkdTXG4gIF07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05URVhUID0ge1xuICAgIC8vIFRoaXMgbW9kZSBjb3ZlcnMgZXhwcmVzc2lvbiBjb250ZXh0IHdoZXJlIHdlIGNhbid0IGV4cGVjdCBhIGZ1bmN0aW9uXG4gICAgLy8gZGVmaW5pdGlvbiBhbmQgc2hvdWxkbid0IGhpZ2hsaWdodCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2Ugb25lOlxuICAgIC8vIGByZXR1cm4gc29tZSgpYCwgYGVsc2UgaWYoKWAsIGAoeCpzdW0oMSwgMikpYFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgIGVuZDogLzsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcgdGhyb3cgcmV0dXJuIGVsc2UnLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfVxuICAgIF0sXG4gICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OX0NPTlRBSU5TLmNvbmNhdChbICdzZWxmJyBdKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSksXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVDTEFSQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAnKCcgKyBGVU5DVElPTl9UWVBFX1JFICsgJ1tcXFxcKiZcXFxcc10rKSsnICsgRlVOQ1RJT05fVElUTEUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgZW5kOiAvW3s7PV0vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvW15cXHdcXHNcXComOjw+Ll0vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IC8vIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjb25mdXNlZCBhcyB0aGUgZnVuY3Rpb24gdGl0bGVcbiAgICAgICAgYmVnaW46IERFQ0xUWVBFX0FVVE9fUkUsXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFsgVElUTEVfTU9ERSBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBuZWVkZWQgYmVjYXVzZSB3ZSBkbyBub3QgaGF2ZSBsb29rLWJlaGluZCBvbiB0aGUgYmVsb3cgcnVsZVxuICAgICAgLy8gdG8gcHJldmVudCBpdCBmcm9tIGdyYWJiaW5nIHRoZSBmaW5hbCA6IGluIGEgOjogcGFpclxuICAgICAge1xuICAgICAgICBiZWdpbjogLzo6LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gaW5pdGlhbGl6ZXJzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgTlVNQkVSU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gYWxsb3cgZm9yIG11bHRpcGxlIGRlY2xhcmF0aW9ucywgZS5nLjpcbiAgICAgIC8vIGV4dGVybiB2b2lkIGYoaW50KSwgZyhjaGFyKTtcbiAgICAgIHtcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBtYXRjaDogLywvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVMsXG4gICAgICAgICAgLy8gQ291bnQgbWF0Y2hpbmcgcGFyZW50aGVzZXMuXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVNcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTLFxuICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBQUkVQUk9DRVNTT1JcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQysrJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY2MnLFxuICAgICAgJ2MrKycsXG4gICAgICAnaCsrJyxcbiAgICAgICdocHAnLFxuICAgICAgJ2hoJyxcbiAgICAgICdoeHgnLFxuICAgICAgJ2N4eCdcbiAgICBdLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjbGFzc05hbWVBbGlhc2VzOiB7ICdmdW5jdGlvbi5kaXNwYXRjaCc6ICdidWlsdF9pbicgfSxcbiAgICBjb250YWluczogW10uY29uY2F0KFxuICAgICAgRVhQUkVTU0lPTl9DT05URVhULFxuICAgICAgRlVOQ1RJT05fREVDTEFSQVRJT04sXG4gICAgICBGVU5DVElPTl9ESVNQQVRDSCxcbiAgICAgIEVYUFJFU1NJT05fQ09OVEFJTlMsXG4gICAgICBbXG4gICAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgICAgeyAvLyBjb250YWluZXJzOiBpZSwgYHZlY3RvciA8aW50PiByb29tcyAoOSk7YFxuICAgICAgICAgIGJlZ2luOiAnXFxcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheXx0dXBsZXxvcHRpb25hbHx2YXJpYW50fGZ1bmN0aW9uKVxcXFxzKjwoPyE8KScsXG4gICAgICAgICAgZW5kOiAnPicsXG4gICAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgQ1BQX1BSSU1JVElWRV9UWVBFU1xuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgLy8gZXh0cmEgY29tcGxleGl0eSB0byBkZWFsIHdpdGggYGVudW0gY2xhc3NgIGFuZCBgZW51bSBzdHJ1Y3RgXG4gICAgICAgICAgICAvXFxiKD86ZW51bSg/OlxccysoPzpjbGFzc3xzdHJ1Y3QpKT98Y2xhc3N8c3RydWN0fHVuaW9uKS8sXG4gICAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgICAvXFx3Ky9cbiAgICAgICAgICBdLFxuICAgICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgICAgMTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgMzogJ3RpdGxlLmNsYXNzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSlcbiAgfTtcbn1cblxuLypcbkxhbmd1YWdlOiBBcmR1aW5vXG5BdXRob3I6IFN0ZWZhbmlhIE1lbGxhaSA8cy5tZWxsYWlAYXJkdWluby5jYz5cbkRlc2NyaXB0aW9uOiBUaGUgQXJkdWlub1x1MDBBRSBMYW5ndWFnZSBpcyBhIHN1cGVyc2V0IG9mIEMrKy4gVGhpcyBydWxlcyBhcmUgZGVzaWduZWQgdG8gaGlnaGxpZ2h0IHRoZSBBcmR1aW5vXHUwMEFFIHNvdXJjZSBjb2RlLiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZSBzZWUgaHR0cDovL3d3dy5hcmR1aW5vLmNjLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuYXJkdWluby5jY1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXJkdWlubyhobGpzKSB7XG4gIGNvbnN0IEFSRFVJTk9fS1cgPSB7XG4gICAgdHlwZTogW1xuICAgICAgXCJib29sZWFuXCIsXG4gICAgICBcImJ5dGVcIixcbiAgICAgIFwid29yZFwiLFxuICAgICAgXCJTdHJpbmdcIlxuICAgIF0sXG4gICAgYnVpbHRfaW46IFtcbiAgICAgIFwiS2V5Ym9hcmRDb250cm9sbGVyXCIsXG4gICAgICBcIk1vdXNlQ29udHJvbGxlclwiLFxuICAgICAgXCJTb2Z0d2FyZVNlcmlhbFwiLFxuICAgICAgXCJFdGhlcm5ldFNlcnZlclwiLFxuICAgICAgXCJFdGhlcm5ldENsaWVudFwiLFxuICAgICAgXCJMaXF1aWRDcnlzdGFsXCIsXG4gICAgICBcIlJvYm90Q29udHJvbFwiLFxuICAgICAgXCJHU01Wb2ljZUNhbGxcIixcbiAgICAgIFwiRXRoZXJuZXRVRFBcIixcbiAgICAgIFwiRXNwbG9yYVRGVFwiLFxuICAgICAgXCJIdHRwQ2xpZW50XCIsXG4gICAgICBcIlJvYm90TW90b3JcIixcbiAgICAgIFwiV2lGaUNsaWVudFwiLFxuICAgICAgXCJHU01TY2FubmVyXCIsXG4gICAgICBcIkZpbGVTeXN0ZW1cIixcbiAgICAgIFwiU2NoZWR1bGVyXCIsXG4gICAgICBcIkdTTVNlcnZlclwiLFxuICAgICAgXCJZdW5DbGllbnRcIixcbiAgICAgIFwiWXVuU2VydmVyXCIsXG4gICAgICBcIklQQWRkcmVzc1wiLFxuICAgICAgXCJHU01DbGllbnRcIixcbiAgICAgIFwiR1NNTW9kZW1cIixcbiAgICAgIFwiS2V5Ym9hcmRcIixcbiAgICAgIFwiRXRoZXJuZXRcIixcbiAgICAgIFwiQ29uc29sZVwiLFxuICAgICAgXCJHU01CYW5kXCIsXG4gICAgICBcIkVzcGxvcmFcIixcbiAgICAgIFwiU3RlcHBlclwiLFxuICAgICAgXCJQcm9jZXNzXCIsXG4gICAgICBcIldpRmlVRFBcIixcbiAgICAgIFwiR1NNX1NNU1wiLFxuICAgICAgXCJNYWlsYm94XCIsXG4gICAgICBcIlVTQkhvc3RcIixcbiAgICAgIFwiRmlybWF0YVwiLFxuICAgICAgXCJQSW1hZ2VcIixcbiAgICAgIFwiQ2xpZW50XCIsXG4gICAgICBcIlNlcnZlclwiLFxuICAgICAgXCJHU01QSU5cIixcbiAgICAgIFwiRmlsZUlPXCIsXG4gICAgICBcIkJyaWRnZVwiLFxuICAgICAgXCJTZXJpYWxcIixcbiAgICAgIFwiRUVQUk9NXCIsXG4gICAgICBcIlN0cmVhbVwiLFxuICAgICAgXCJNb3VzZVwiLFxuICAgICAgXCJBdWRpb1wiLFxuICAgICAgXCJTZXJ2b1wiLFxuICAgICAgXCJGaWxlXCIsXG4gICAgICBcIlRhc2tcIixcbiAgICAgIFwiR1BSU1wiLFxuICAgICAgXCJXaUZpXCIsXG4gICAgICBcIldpcmVcIixcbiAgICAgIFwiVEZUXCIsXG4gICAgICBcIkdTTVwiLFxuICAgICAgXCJTUElcIixcbiAgICAgIFwiU0RcIlxuICAgIF0sXG4gICAgX2hpbnRzOiBbXG4gICAgICBcInNldHVwXCIsXG4gICAgICBcImxvb3BcIixcbiAgICAgIFwicnVuU2hlbGxDb21tYW5kQXN5bmNocm9ub3VzbHlcIixcbiAgICAgIFwiYW5hbG9nV3JpdGVSZXNvbHV0aW9uXCIsXG4gICAgICBcInJldHJpZXZlQ2FsbGluZ051bWJlclwiLFxuICAgICAgXCJwcmludEZpcm13YXJlVmVyc2lvblwiLFxuICAgICAgXCJhbmFsb2dSZWFkUmVzb2x1dGlvblwiLFxuICAgICAgXCJzZW5kRGlnaXRhbFBvcnRQYWlyXCIsXG4gICAgICBcIm5vTGlzdGVuT25Mb2NhbGhvc3RcIixcbiAgICAgIFwicmVhZEpveXN0aWNrQnV0dG9uXCIsXG4gICAgICBcInNldEZpcm13YXJlVmVyc2lvblwiLFxuICAgICAgXCJyZWFkSm95c3RpY2tTd2l0Y2hcIixcbiAgICAgIFwic2Nyb2xsRGlzcGxheVJpZ2h0XCIsXG4gICAgICBcImdldFZvaWNlQ2FsbFN0YXR1c1wiLFxuICAgICAgXCJzY3JvbGxEaXNwbGF5TGVmdFwiLFxuICAgICAgXCJ3cml0ZU1pY3Jvc2Vjb25kc1wiLFxuICAgICAgXCJkZWxheU1pY3Jvc2Vjb25kc1wiLFxuICAgICAgXCJiZWdpblRyYW5zbWlzc2lvblwiLFxuICAgICAgXCJnZXRTaWduYWxTdHJlbmd0aFwiLFxuICAgICAgXCJydW5Bc3luY2hyb25vdXNseVwiLFxuICAgICAgXCJnZXRBc3luY2hyb25vdXNseVwiLFxuICAgICAgXCJsaXN0ZW5PbkxvY2FsaG9zdFwiLFxuICAgICAgXCJnZXRDdXJyZW50Q2FycmllclwiLFxuICAgICAgXCJyZWFkQWNjZWxlcm9tZXRlclwiLFxuICAgICAgXCJtZXNzYWdlQXZhaWxhYmxlXCIsXG4gICAgICBcInNlbmREaWdpdGFsUG9ydHNcIixcbiAgICAgIFwibGluZUZvbGxvd0NvbmZpZ1wiLFxuICAgICAgXCJjb3VudHJ5TmFtZVdyaXRlXCIsXG4gICAgICBcInJ1blNoZWxsQ29tbWFuZFwiLFxuICAgICAgXCJyZWFkU3RyaW5nVW50aWxcIixcbiAgICAgIFwicmV3aW5kRGlyZWN0b3J5XCIsXG4gICAgICBcInJlYWRUZW1wZXJhdHVyZVwiLFxuICAgICAgXCJzZXRDbG9ja0RpdmlkZXJcIixcbiAgICAgIFwicmVhZExpZ2h0U2Vuc29yXCIsXG4gICAgICBcImVuZFRyYW5zbWlzc2lvblwiLFxuICAgICAgXCJhbmFsb2dSZWZlcmVuY2VcIixcbiAgICAgIFwiZGV0YWNoSW50ZXJydXB0XCIsXG4gICAgICBcImNvdW50cnlOYW1lUmVhZFwiLFxuICAgICAgXCJhdHRhY2hJbnRlcnJ1cHRcIixcbiAgICAgIFwiZW5jcnlwdGlvblR5cGVcIixcbiAgICAgIFwicmVhZEJ5dGVzVW50aWxcIixcbiAgICAgIFwicm9ib3ROYW1lV3JpdGVcIixcbiAgICAgIFwicmVhZE1pY3JvcGhvbmVcIixcbiAgICAgIFwicm9ib3ROYW1lUmVhZFwiLFxuICAgICAgXCJjaXR5TmFtZVdyaXRlXCIsXG4gICAgICBcInVzZXJOYW1lV3JpdGVcIixcbiAgICAgIFwicmVhZEpveXN0aWNrWVwiLFxuICAgICAgXCJyZWFkSm95c3RpY2tYXCIsXG4gICAgICBcIm1vdXNlUmVsZWFzZWRcIixcbiAgICAgIFwib3Blbk5leHRGaWxlXCIsXG4gICAgICBcInNjYW5OZXR3b3Jrc1wiLFxuICAgICAgXCJub0ludGVycnVwdHNcIixcbiAgICAgIFwiZGlnaXRhbFdyaXRlXCIsXG4gICAgICBcImJlZ2luU3BlYWtlclwiLFxuICAgICAgXCJtb3VzZVByZXNzZWRcIixcbiAgICAgIFwiaXNBY3Rpb25Eb25lXCIsXG4gICAgICBcIm1vdXNlRHJhZ2dlZFwiLFxuICAgICAgXCJkaXNwbGF5TG9nb3NcIixcbiAgICAgIFwibm9BdXRvc2Nyb2xsXCIsXG4gICAgICBcImFkZFBhcmFtZXRlclwiLFxuICAgICAgXCJyZW1vdGVOdW1iZXJcIixcbiAgICAgIFwiZ2V0TW9kaWZpZXJzXCIsXG4gICAgICBcImtleWJvYXJkUmVhZFwiLFxuICAgICAgXCJ1c2VyTmFtZVJlYWRcIixcbiAgICAgIFwid2FpdENvbnRpbnVlXCIsXG4gICAgICBcInByb2Nlc3NJbnB1dFwiLFxuICAgICAgXCJwYXJzZUNvbW1hbmRcIixcbiAgICAgIFwicHJpbnRWZXJzaW9uXCIsXG4gICAgICBcInJlYWROZXR3b3Jrc1wiLFxuICAgICAgXCJ3cml0ZU1lc3NhZ2VcIixcbiAgICAgIFwiYmxpbmtWZXJzaW9uXCIsXG4gICAgICBcImNpdHlOYW1lUmVhZFwiLFxuICAgICAgXCJyZWFkTWVzc2FnZVwiLFxuICAgICAgXCJzZXREYXRhTW9kZVwiLFxuICAgICAgXCJwYXJzZVBhY2tldFwiLFxuICAgICAgXCJpc0xpc3RlbmluZ1wiLFxuICAgICAgXCJzZXRCaXRPcmRlclwiLFxuICAgICAgXCJiZWdpblBhY2tldFwiLFxuICAgICAgXCJpc0RpcmVjdG9yeVwiLFxuICAgICAgXCJtb3RvcnNXcml0ZVwiLFxuICAgICAgXCJkcmF3Q29tcGFzc1wiLFxuICAgICAgXCJkaWdpdGFsUmVhZFwiLFxuICAgICAgXCJjbGVhclNjcmVlblwiLFxuICAgICAgXCJzZXJpYWxFdmVudFwiLFxuICAgICAgXCJyaWdodFRvTGVmdFwiLFxuICAgICAgXCJzZXRUZXh0U2l6ZVwiLFxuICAgICAgXCJsZWZ0VG9SaWdodFwiLFxuICAgICAgXCJyZXF1ZXN0RnJvbVwiLFxuICAgICAgXCJrZXlSZWxlYXNlZFwiLFxuICAgICAgXCJjb21wYXNzUmVhZFwiLFxuICAgICAgXCJhbmFsb2dXcml0ZVwiLFxuICAgICAgXCJpbnRlcnJ1cHRzXCIsXG4gICAgICBcIldpRmlTZXJ2ZXJcIixcbiAgICAgIFwiZGlzY29ubmVjdFwiLFxuICAgICAgXCJwbGF5TWVsb2R5XCIsXG4gICAgICBcInBhcnNlRmxvYXRcIixcbiAgICAgIFwiYXV0b3Njcm9sbFwiLFxuICAgICAgXCJnZXRQSU5Vc2VkXCIsXG4gICAgICBcInNldFBJTlVzZWRcIixcbiAgICAgIFwic2V0VGltZW91dFwiLFxuICAgICAgXCJzZW5kQW5hbG9nXCIsXG4gICAgICBcInJlYWRTbGlkZXJcIixcbiAgICAgIFwiYW5hbG9nUmVhZFwiLFxuICAgICAgXCJiZWdpbldyaXRlXCIsXG4gICAgICBcImNyZWF0ZUNoYXJcIixcbiAgICAgIFwibW90b3JzU3RvcFwiLFxuICAgICAgXCJrZXlQcmVzc2VkXCIsXG4gICAgICBcInRlbXBvV3JpdGVcIixcbiAgICAgIFwicmVhZEJ1dHRvblwiLFxuICAgICAgXCJzdWJuZXRNYXNrXCIsXG4gICAgICBcImRlYnVnUHJpbnRcIixcbiAgICAgIFwibWFjQWRkcmVzc1wiLFxuICAgICAgXCJ3cml0ZUdyZWVuXCIsXG4gICAgICBcInJhbmRvbVNlZWRcIixcbiAgICAgIFwiYXR0YWNoR1BSU1wiLFxuICAgICAgXCJyZWFkU3RyaW5nXCIsXG4gICAgICBcInNlbmRTdHJpbmdcIixcbiAgICAgIFwicmVtb3RlUG9ydFwiLFxuICAgICAgXCJyZWxlYXNlQWxsXCIsXG4gICAgICBcIm1vdXNlTW92ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJnZXRYQ2hhbmdlXCIsXG4gICAgICBcImdldFlDaGFuZ2VcIixcbiAgICAgIFwiYW5zd2VyQ2FsbFwiLFxuICAgICAgXCJnZXRSZXN1bHRcIixcbiAgICAgIFwidm9pY2VDYWxsXCIsXG4gICAgICBcImVuZFBhY2tldFwiLFxuICAgICAgXCJjb25zdHJhaW5cIixcbiAgICAgIFwiZ2V0U29ja2V0XCIsXG4gICAgICBcIndyaXRlSlNPTlwiLFxuICAgICAgXCJnZXRCdXR0b25cIixcbiAgICAgIFwiYXZhaWxhYmxlXCIsXG4gICAgICBcImNvbm5lY3RlZFwiLFxuICAgICAgXCJmaW5kVW50aWxcIixcbiAgICAgIFwicmVhZEJ5dGVzXCIsXG4gICAgICBcImV4aXRWYWx1ZVwiLFxuICAgICAgXCJyZWFkR3JlZW5cIixcbiAgICAgIFwid3JpdGVCbHVlXCIsXG4gICAgICBcInN0YXJ0TG9vcFwiLFxuICAgICAgXCJJUEFkZHJlc3NcIixcbiAgICAgIFwiaXNQcmVzc2VkXCIsXG4gICAgICBcInNlbmRTeXNleFwiLFxuICAgICAgXCJwYXVzZU1vZGVcIixcbiAgICAgIFwiZ2F0ZXdheUlQXCIsXG4gICAgICBcInNldEN1cnNvclwiLFxuICAgICAgXCJnZXRPZW1LZXlcIixcbiAgICAgIFwidHVuZVdyaXRlXCIsXG4gICAgICBcIm5vRGlzcGxheVwiLFxuICAgICAgXCJsb2FkSW1hZ2VcIixcbiAgICAgIFwic3dpdGNoUElOXCIsXG4gICAgICBcIm9uUmVxdWVzdFwiLFxuICAgICAgXCJvblJlY2VpdmVcIixcbiAgICAgIFwiY2hhbmdlUElOXCIsXG4gICAgICBcInBsYXlGaWxlXCIsXG4gICAgICBcIm5vQnVmZmVyXCIsXG4gICAgICBcInBhcnNlSW50XCIsXG4gICAgICBcIm92ZXJmbG93XCIsXG4gICAgICBcImNoZWNrUElOXCIsXG4gICAgICBcImtub2JSZWFkXCIsXG4gICAgICBcImJlZ2luVEZUXCIsXG4gICAgICBcImJpdENsZWFyXCIsXG4gICAgICBcInVwZGF0ZUlSXCIsXG4gICAgICBcImJpdFdyaXRlXCIsXG4gICAgICBcInBvc2l0aW9uXCIsXG4gICAgICBcIndyaXRlUkdCXCIsXG4gICAgICBcImhpZ2hCeXRlXCIsXG4gICAgICBcIndyaXRlUmVkXCIsXG4gICAgICBcInNldFNwZWVkXCIsXG4gICAgICBcInJlYWRCbHVlXCIsXG4gICAgICBcIm5vU3Ryb2tlXCIsXG4gICAgICBcInJlbW90ZUlQXCIsXG4gICAgICBcInRyYW5zZmVyXCIsXG4gICAgICBcInNodXRkb3duXCIsXG4gICAgICBcImhhbmdDYWxsXCIsXG4gICAgICBcImJlZ2luU01TXCIsXG4gICAgICBcImVuZFdyaXRlXCIsXG4gICAgICBcImF0dGFjaGVkXCIsXG4gICAgICBcIm1haW50YWluXCIsXG4gICAgICBcIm5vQ3Vyc29yXCIsXG4gICAgICBcImNoZWNrUmVnXCIsXG4gICAgICBcImNoZWNrUFVLXCIsXG4gICAgICBcInNoaWZ0T3V0XCIsXG4gICAgICBcImlzVmFsaWRcIixcbiAgICAgIFwic2hpZnRJblwiLFxuICAgICAgXCJwdWxzZUluXCIsXG4gICAgICBcImNvbm5lY3RcIixcbiAgICAgIFwicHJpbnRsblwiLFxuICAgICAgXCJsb2NhbElQXCIsXG4gICAgICBcInBpbk1vZGVcIixcbiAgICAgIFwiZ2V0SU1FSVwiLFxuICAgICAgXCJkaXNwbGF5XCIsXG4gICAgICBcIm5vQmxpbmtcIixcbiAgICAgIFwicHJvY2Vzc1wiLFxuICAgICAgXCJnZXRCYW5kXCIsXG4gICAgICBcInJ1bm5pbmdcIixcbiAgICAgIFwiYmVnaW5TRFwiLFxuICAgICAgXCJkcmF3Qk1QXCIsXG4gICAgICBcImxvd0J5dGVcIixcbiAgICAgIFwic2V0QmFuZFwiLFxuICAgICAgXCJyZWxlYXNlXCIsXG4gICAgICBcImJpdFJlYWRcIixcbiAgICAgIFwicHJlcGFyZVwiLFxuICAgICAgXCJwb2ludFRvXCIsXG4gICAgICBcInJlYWRSZWRcIixcbiAgICAgIFwic2V0TW9kZVwiLFxuICAgICAgXCJub0ZpbGxcIixcbiAgICAgIFwicmVtb3ZlXCIsXG4gICAgICBcImxpc3RlblwiLFxuICAgICAgXCJzdHJva2VcIixcbiAgICAgIFwiZGV0YWNoXCIsXG4gICAgICBcImF0dGFjaFwiLFxuICAgICAgXCJub1RvbmVcIixcbiAgICAgIFwiZXhpc3RzXCIsXG4gICAgICBcImJ1ZmZlclwiLFxuICAgICAgXCJoZWlnaHRcIixcbiAgICAgIFwiYml0U2V0XCIsXG4gICAgICBcImNpcmNsZVwiLFxuICAgICAgXCJjb25maWdcIixcbiAgICAgIFwiY3Vyc29yXCIsXG4gICAgICBcInJhbmRvbVwiLFxuICAgICAgXCJJUnJlYWRcIixcbiAgICAgIFwic2V0RE5TXCIsXG4gICAgICBcImVuZFNNU1wiLFxuICAgICAgXCJnZXRLZXlcIixcbiAgICAgIFwibWljcm9zXCIsXG4gICAgICBcIm1pbGxpc1wiLFxuICAgICAgXCJiZWdpblwiLFxuICAgICAgXCJwcmludFwiLFxuICAgICAgXCJ3cml0ZVwiLFxuICAgICAgXCJyZWFkeVwiLFxuICAgICAgXCJmbHVzaFwiLFxuICAgICAgXCJ3aWR0aFwiLFxuICAgICAgXCJpc1BJTlwiLFxuICAgICAgXCJibGlua1wiLFxuICAgICAgXCJjbGVhclwiLFxuICAgICAgXCJwcmVzc1wiLFxuICAgICAgXCJta2RpclwiLFxuICAgICAgXCJybWRpclwiLFxuICAgICAgXCJjbG9zZVwiLFxuICAgICAgXCJwb2ludFwiLFxuICAgICAgXCJ5aWVsZFwiLFxuICAgICAgXCJpbWFnZVwiLFxuICAgICAgXCJCU1NJRFwiLFxuICAgICAgXCJjbGlja1wiLFxuICAgICAgXCJkZWxheVwiLFxuICAgICAgXCJyZWFkXCIsXG4gICAgICBcInRleHRcIixcbiAgICAgIFwibW92ZVwiLFxuICAgICAgXCJwZWVrXCIsXG4gICAgICBcImJlZXBcIixcbiAgICAgIFwicmVjdFwiLFxuICAgICAgXCJsaW5lXCIsXG4gICAgICBcIm9wZW5cIixcbiAgICAgIFwic2Vla1wiLFxuICAgICAgXCJmaWxsXCIsXG4gICAgICBcInNpemVcIixcbiAgICAgIFwidHVyblwiLFxuICAgICAgXCJzdG9wXCIsXG4gICAgICBcImhvbWVcIixcbiAgICAgIFwiZmluZFwiLFxuICAgICAgXCJzdGVwXCIsXG4gICAgICBcInRvbmVcIixcbiAgICAgIFwic3FydFwiLFxuICAgICAgXCJSU1NJXCIsXG4gICAgICBcIlNTSURcIixcbiAgICAgIFwiZW5kXCIsXG4gICAgICBcImJpdFwiLFxuICAgICAgXCJ0YW5cIixcbiAgICAgIFwiY29zXCIsXG4gICAgICBcInNpblwiLFxuICAgICAgXCJwb3dcIixcbiAgICAgIFwibWFwXCIsXG4gICAgICBcImFic1wiLFxuICAgICAgXCJtYXhcIixcbiAgICAgIFwibWluXCIsXG4gICAgICBcImdldFwiLFxuICAgICAgXCJydW5cIixcbiAgICAgIFwicHV0XCJcbiAgICBdLFxuICAgIGxpdGVyYWw6IFtcbiAgICAgIFwiRElHSVRBTF9NRVNTQUdFXCIsXG4gICAgICBcIkZJUk1BVEFfU1RSSU5HXCIsXG4gICAgICBcIkFOQUxPR19NRVNTQUdFXCIsXG4gICAgICBcIlJFUE9SVF9ESUdJVEFMXCIsXG4gICAgICBcIlJFUE9SVF9BTkFMT0dcIixcbiAgICAgIFwiSU5QVVRfUFVMTFVQXCIsXG4gICAgICBcIlNFVF9QSU5fTU9ERVwiLFxuICAgICAgXCJJTlRFUk5BTDJWNTZcIixcbiAgICAgIFwiU1lTVEVNX1JFU0VUXCIsXG4gICAgICBcIkxFRF9CVUlMVElOXCIsXG4gICAgICBcIklOVEVSTkFMMVYxXCIsXG4gICAgICBcIlNZU0VYX1NUQVJUXCIsXG4gICAgICBcIklOVEVSTkFMXCIsXG4gICAgICBcIkVYVEVSTkFMXCIsXG4gICAgICBcIkRFRkFVTFRcIixcbiAgICAgIFwiT1VUUFVUXCIsXG4gICAgICBcIklOUFVUXCIsXG4gICAgICBcIkhJR0hcIixcbiAgICAgIFwiTE9XXCJcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQVJEVUlOTyA9IGNQbHVzUGx1cyhobGpzKTtcblxuICBjb25zdCBrd3MgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsYW55Pn0gKi8gKEFSRFVJTk8ua2V5d29yZHMpO1xuXG4gIGt3cy50eXBlID0gW1xuICAgIC4uLmt3cy50eXBlLFxuICAgIC4uLkFSRFVJTk9fS1cudHlwZVxuICBdO1xuICBrd3MubGl0ZXJhbCA9IFtcbiAgICAuLi5rd3MubGl0ZXJhbCxcbiAgICAuLi5BUkRVSU5PX0tXLmxpdGVyYWxcbiAgXTtcbiAga3dzLmJ1aWx0X2luID0gW1xuICAgIC4uLmt3cy5idWlsdF9pbixcbiAgICAuLi5BUkRVSU5PX0tXLmJ1aWx0X2luXG4gIF07XG4gIGt3cy5faGludHMgPSBBUkRVSU5PX0tXLl9oaW50cztcblxuICBBUkRVSU5PLm5hbWUgPSAnQXJkdWlubyc7XG4gIEFSRFVJTk8uYWxpYXNlcyA9IFsgJ2lubycgXTtcbiAgQVJEVUlOTy5zdXBlcnNldE9mID0gXCJjcHBcIjtcblxuICByZXR1cm4gQVJEVUlOTztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcmR1aW5vO1xuIiwgIi8qXG5MYW5ndWFnZTogQVJNIEFzc2VtYmx5XG5BdXRob3I6IERhbiBQYW56YXJlbGxhIDxhbHNvZWxwQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBBUk0gQXNzZW1ibHkgaW5jbHVkaW5nIFRodW1iIGFuZCBUaHVtYjIgaW5zdHJ1Y3Rpb25zXG5DYXRlZ29yeTogYXNzZW1ibGVyXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXJtYXNtKGhsanMpIHtcbiAgLy8gbG9jYWwgbGFiZWxzOiAlP1tGQl0/W0FUXT9cXGR7MSwyfVxcdytcblxuICBjb25zdCBDT01NRU5UID0geyB2YXJpYW50czogW1xuICAgIGhsanMuQ09NTUVOVCgnXlsgXFxcXHRdKig/PSMpJywgJyQnLCB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBleGNsdWRlQmVnaW46IHRydWVcbiAgICB9KSxcbiAgICBobGpzLkNPTU1FTlQoJ1s7QF0nLCAnJCcsIHsgcmVsZXZhbmNlOiAwIH0pLFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gIF0gfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBUk0gQXNzZW1ibHknLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAnYXJtJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1xcXFwuPycgKyBobGpzLklERU5UX1JFLFxuICAgICAgbWV0YTpcbiAgICAgICAgLy8gR05VIHByZXByb2NzXG4gICAgICAgICcuMmJ5dGUgLjRieXRlIC5hbGlnbiAuYXNjaWkgLmFzY2l6IC5iYWxpZ24gLmJ5dGUgLmNvZGUgLmRhdGEgLmVsc2UgLmVuZCAuZW5kaWYgLmVuZG0gLmVuZHIgLmVxdSAuZXJyIC5leGl0bSAuZXh0ZXJuIC5nbG9iYWwgLmh3b3JkIC5pZiAuaWZkZWYgLmlmbmRlZiAuaW5jbHVkZSAuaXJwIC5sb25nIC5tYWNybyAucmVwdCAucmVxIC5zZWN0aW9uIC5zZXQgLnNraXAgLnNwYWNlIC50ZXh0IC53b3JkIC5hcm0gLnRodW1iIC5jb2RlMTYgLmNvZGUzMiAuZm9yY2VfdGh1bWIgLnRodW1iX2Z1bmMgLmx0b3JnICdcbiAgICAgICAgLy8gQVJNIGRpcmVjdGl2ZXNcbiAgICAgICAgKyAnQUxJQVMgQUxJR04gQVJNIEFSRUEgQVNTRVJUIEFUVFIgQ04gQ09ERSBDT0RFMTYgQ09ERTMyIENPTU1PTiBDUCBEQVRBIERDQiBEQ0QgRENEVSBEQ0RPIERDRkQgRENGRFUgRENJIERDUSBEQ1FVIERDVyBEQ1dVIEROIEVMSUYgRUxTRSBFTkQgRU5ERlVOQyBFTkRJRiBFTkRQIEVOVFJZIEVRVSBFWFBPUlQgRVhQT1JUQVMgRVhURVJOIEZJRUxEIEZJTEwgRlVOQ1RJT04gR0JMQSBHQkxMIEdCTFMgR0VUIEdMT0JBTCBJRiBJTVBPUlQgSU5DQklOIElOQ0xVREUgSU5GTyBLRUVQIExDTEEgTENMTCBMQ0xTIExUT1JHIE1BQ1JPIE1BUCBNRU5EIE1FWElUIE5PRlAgT1BUIFBSRVNFUlZFOCBQUk9DIFFOIFJFQURPTkxZIFJFTE9DIFJFUVVJUkUgUkVRVUlSRTggUkxJU1QgRk4gUk9VVCBTRVRBIFNFVEwgU0VUUyBTTiBTUEFDRSBTVUJUIFRIVU1CIFRIVU1CWCBUVEwgV0hJTEUgV0VORCAnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdyMCByMSByMiByMyByNCByNSByNiByNyByOCByOSByMTAgcjExIHIxMiByMTMgcjE0IHIxNSAnIC8vIHN0YW5kYXJkIHJlZ2lzdGVyc1xuICAgICAgICArICd3MCB3MSB3MiB3MyB3NCB3NSB3NiB3NyB3OCB3OSB3MTAgdzExIHcxMiB3MTMgdzE0IHcxNSAnIC8vIDMyIGJpdCBBUk12OCByZWdpc3RlcnNcbiAgICAgICAgKyAndzE2IHcxNyB3MTggdzE5IHcyMCB3MjEgdzIyIHcyMyB3MjQgdzI1IHcyNiB3MjcgdzI4IHcyOSB3MzAgJ1xuICAgICAgICArICd4MCB4MSB4MiB4MyB4NCB4NSB4NiB4NyB4OCB4OSB4MTAgeDExIHgxMiB4MTMgeDE0IHgxNSAnIC8vIDY0IGJpdCBBUk12OCByZWdpc3RlcnNcbiAgICAgICAgKyAneDE2IHgxNyB4MTggeDE5IHgyMCB4MjEgeDIyIHgyMyB4MjQgeDI1IHgyNiB4MjcgeDI4IHgyOSB4MzAgJ1xuICAgICAgICArICdwYyBsciBzcCBpcCBzbCBzYiBmcCAnIC8vIHR5cGljYWwgcmVncyBwbHVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgKyAnYTEgYTIgYTMgYTQgdjEgdjIgdjMgdjQgdjUgdjYgdjcgdjggZjAgZjEgZjIgZjMgZjQgZjUgZjYgZjcgJyAvLyBtb3JlIHJlZ3MgYW5kIGZwXG4gICAgICAgICsgJ3AwIHAxIHAyIHAzIHA0IHA1IHA2IHA3IHA4IHA5IHAxMCBwMTEgcDEyIHAxMyBwMTQgcDE1ICcgLy8gY29wcm9jZXNzb3IgcmVnc1xuICAgICAgICArICdjMCBjMSBjMiBjMyBjNCBjNSBjNiBjNyBjOCBjOSBjMTAgYzExIGMxMiBjMTMgYzE0IGMxNSAnIC8vIG1vcmUgY29wcm9jXG4gICAgICAgICsgJ3EwIHExIHEyIHEzIHE0IHE1IHE2IHE3IHE4IHE5IHExMCBxMTEgcTEyIHExMyBxMTQgcTE1ICcgLy8gYWR2YW5jZWQgU0lNRCBORU9OIHJlZ3NcblxuICAgICAgICAvLyBwcm9ncmFtIHN0YXR1cyByZWdpc3RlcnNcbiAgICAgICAgKyAnY3Bzcl9jIGNwc3JfeCBjcHNyX3MgY3Bzcl9mIGNwc3JfY3ggY3Bzcl9jeHMgY3Bzcl94cyBjcHNyX3hzZiBjcHNyX3NmIGNwc3JfY3hzZiAnXG4gICAgICAgICsgJ3Nwc3JfYyBzcHNyX3ggc3Bzcl9zIHNwc3JfZiBzcHNyX2N4IHNwc3JfY3hzIHNwc3JfeHMgc3Bzcl94c2Ygc3Bzcl9zZiBzcHNyX2N4c2YgJ1xuXG4gICAgICAgIC8vIE5FT04gYW5kIFZGUCByZWdpc3RlcnNcbiAgICAgICAgKyAnczAgczEgczIgczMgczQgczUgczYgczcgczggczkgczEwIHMxMSBzMTIgczEzIHMxNCBzMTUgJ1xuICAgICAgICArICdzMTYgczE3IHMxOCBzMTkgczIwIHMyMSBzMjIgczIzIHMyNCBzMjUgczI2IHMyNyBzMjggczI5IHMzMCBzMzEgJ1xuICAgICAgICArICdkMCBkMSBkMiBkMyBkNCBkNSBkNiBkNyBkOCBkOSBkMTAgZDExIGQxMiBkMTMgZDE0IGQxNSAnXG4gICAgICAgICsgJ2QxNiBkMTcgZDE4IGQxOSBkMjAgZDIxIGQyMiBkMjMgZDI0IGQyNSBkMjYgZDI3IGQyOCBkMjkgZDMwIGQzMSAnXG5cbiAgICAgICAgKyAne1BDfSB7VkFSfSB7VFJVRX0ge0ZBTFNFfSB7T1BUfSB7Q09ORklHfSB7RU5ESUFOfSB7Q09ERVNJWkV9IHtDUFV9IHtGUFV9IHtBUkNISVRFQ1RVUkV9IHtQQ1NUT1JFT0ZGU0VUfSB7QVJNQVNNX1ZFUlNJT059IHtJTlRFUn0ge1JPUEl9IHtSV1BJfSB7U1dTVH0ge05PU1dTVH0gLiBAJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyAvLyBtbmVtb25pY3NcbiAgICAgICAgICAgICsgJ2FkY3wnXG4gICAgICAgICAgICArICcocWQ/fHNoP3x1W3FoXT8pP2FkZCg4fDE2KT98dXNhZGE/OHwocXxzaD98dVtxaF0/KT8oYXN8c2EpeHwnXG4gICAgICAgICAgICArICdhbmR8YWRybD98c2JjfHJzW2JjXXxhc3J8YltseF0/fGJseHxieGp8Y2JuP3p8dGJbYmhdfGJpY3wnXG4gICAgICAgICAgICArICdiZmN8YmZpfFtzdV1iZnh8YmtwdHxjZHAyP3xjbHp8Y2xyZXh8Y21wfGNtbnxjcHNpW2VkXXxjcHN8J1xuICAgICAgICAgICAgKyAnc2V0ZW5kfGRiZ3xkbWJ8ZHNifGVvcnxpc2J8aXRbdGVdezAsM318bHNsfGxzcnxyb3J8cnJ4fCdcbiAgICAgICAgICAgICsgJ2xkbSgoW2lkXVthYl0pfGZbZHNdKT98bGRyKChzfGV4KT9bYmhkXSk/fG1vdnQ/fG12bnxtcmF8bWFyfCdcbiAgICAgICAgICAgICsgJ211bHxbdXNdbXVsbHxzbXVsW2J3dF1bYnRdfHNtdVthc11kfHNtbXVsfHNtbWxhfCdcbiAgICAgICAgICAgICsgJ21sYXx1bWxhYWx8c21sYWw/KFt3YnRdW2J0XXxkKXxtbHN8c21sc2w/W2RzXXxzbWN8c3ZjfHNldnwnXG4gICAgICAgICAgICArICdtaWEoW2J0XXsyfXxwaCk/fG1ycj9jMj98bWNycjI/fG1yc3xtc3J8b3JyfG9ybnxwa2godGJ8YnQpfHJiaXR8J1xuICAgICAgICAgICAgKyAncmV2KDE2fHNoKT98c2VsfFtzdV1zYXQoMTYpP3xub3B8cG9wfHB1c2h8cmZlKFtpZF1bYWJdKT98J1xuICAgICAgICAgICAgKyAnc3RtKFtpZF1bYWJdKT98c3RyKGV4KT9bYmhkXT98KHFkPyk/c3VifChzaD98cXx1W3FoXT8pP3N1Yig4fDE2KXwnXG4gICAgICAgICAgICArICdbc3VdeHQoYT9ofGE/YigxNik/KXxzcnMoW2lkXVthYl0pP3xzd3BiP3xzd2l8c21pfHRzdHx0ZXF8J1xuICAgICAgICAgICAgKyAnd2ZlfHdmaXx5aWVsZCdcbiAgICAgICAgKyAnKSdcbiAgICAgICAgKyAnKGVxfG5lfGNzfGNjfG1pfHBsfHZzfHZjfGhpfGxzfGdlfGx0fGd0fGxlfGFsfGhzfGxvKT8nIC8vIGNvbmRpdGlvbiBjb2Rlc1xuICAgICAgICArICdbc3B0cnhdPycgLy8gbGVnYWwgcG9zdGZpeGVzXG4gICAgICAgICsgJyg/PVxcXFxzKScgLy8gZm9sbG93ZWQgYnkgc3BhY2VcbiAgICAgIH0sXG4gICAgICBDT01NRU5ULFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdbXlxcXFxcXFxcXVxcJycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFx8JyxcbiAgICAgICAgZW5kOiAnXFxcXHwnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyAvLyBoZXhcbiAgICAgICAgICAgIGJlZ2luOiAnWyMkPV0/MHhbMC05YS1mXSsnIH0sXG4gICAgICAgICAgeyAvLyBiaW5cbiAgICAgICAgICAgIGJlZ2luOiAnWyMkPV0/MGJbMDFdKycgfSxcbiAgICAgICAgICB7IC8vIGxpdGVyYWxcbiAgICAgICAgICAgIGJlZ2luOiAnWyMkPV1cXFxcZCsnIH0sXG4gICAgICAgICAgeyAvLyBiYXJlIG51bWJlclxuICAgICAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkKycgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyAvLyBHTlUgQVJNIHN5bnRheFxuICAgICAgICAgICAgYmVnaW46ICdeWyBcXFxcdF0qW2Etel9cXFxcLlxcXFwkXVthLXowLTlfXFxcXC5cXFxcJF0rOicgfSxcbiAgICAgICAgICB7IC8vIEFSTSBzeW50YXhcbiAgICAgICAgICAgIGJlZ2luOiAnXlthLXpfXFxcXC5cXFxcJF1bYS16MC05X1xcXFwuXFxcXCRdKycgfSxcbiAgICAgICAgICB7IC8vIGxhYmVsIHJlZmVyZW5jZVxuICAgICAgICAgICAgYmVnaW46ICdbPSNdXFxcXHcrJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcm1hc207XG4iLCAiLypcbkxhbmd1YWdlOiBIVE1MLCBYTUxcbldlYnNpdGU6IGh0dHBzOi8vd3d3LnczLm9yZy9YTUwvXG5DYXRlZ29yeTogY29tbW9uLCB3ZWJcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24geG1sKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvLyBYTUwgbmFtZXMgY2FuIGhhdmUgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxldHRlcnM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi94bWwvI05ULU5hbWVDaGFyXG4gIC8vIE9USEVSX05BTUVfQ0hBUlMgPSAvWzpcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0vO1xuICAvLyBFbGVtZW50IG5hbWVzIHN0YXJ0IHdpdGggTkFNRV9TVEFSVF9DSEFSIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIG90aGVyIFVuaWNvZGUgbGV0dGVycywgQVNDSUkgZGlnaXRzLCBoeXBoZW5zLCB1bmRlcnNjb3JlcywgYW5kIHBlcmlvZHNcbiAgLy8gY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXS8sIHJlZ2V4Lm9wdGlvbmFsKC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSo6LyksIC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSovKTs7XG4gIC8vIGNvbnN0IFhNTF9JREVOVF9SRSA9IC9bQS1aX2EtejpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0rLztcbiAgLy8gY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXS8sIHJlZ2V4Lm9wdGlvbmFsKC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSo6LyksIC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSovKTtcbiAgLy8gaG93ZXZlciwgdG8gY2F0ZXIgZm9yIHBlcmZvcm1hbmNlIGFuZCBtb3JlIFVuaWNvZGUgc3VwcG9ydCByZWx5IHNpbXBseSBvbiB0aGUgVW5pY29kZSBsZXR0ZXIgY2xhc3NcbiAgY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tcXHB7TH1fXS91LCByZWdleC5vcHRpb25hbCgvW1xccHtMfTAtOV8uLV0qOi91KSwgL1tcXHB7TH0wLTlfLi1dKi91KTtcbiAgY29uc3QgWE1MX0lERU5UX1JFID0gL1tcXHB7TH0wLTkuXzotXSsvdTtcbiAgY29uc3QgWE1MX0VOVElUSUVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46IC8mW2Etel0rO3wmI1swLTldKzt8JiN4W2EtZjAtOV0rOy9cbiAgfTtcbiAgY29uc3QgWE1MX01FVEFfS0VZV09SRFMgPSB7XG4gICAgYmVnaW46IC9cXHMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogLyM/W2Etel9dW2EtejEtOV8tXSsvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgWE1MX01FVEFfUEFSX0tFWVdPUkRTID0gaGxqcy5pbmhlcml0KFhNTF9NRVRBX0tFWVdPUkRTLCB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS9cbiAgfSk7XG4gIGNvbnN0IEFQT1NfTUVUQV9TVFJJTkdfTU9ERSA9IGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KTtcbiAgY29uc3QgUVVPVEVfTUVUQV9TVFJJTkdfTU9ERSA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSk7XG4gIGNvbnN0IFRBR19JTlRFUk5BTFMgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgaWxsZWdhbDogLzwvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IFhNTF9JREVOVF9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLz1cXHMqLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICAgICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogWyBYTUxfRU5USVRJRVMgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogWyBYTUxfRU5USVRJRVMgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IGJlZ2luOiAvW15cXHNcIic9PD5gXSsvIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0hUTUwsIFhNTCcsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2h0bWwnLFxuICAgICAgJ3hodG1sJyxcbiAgICAgICdyc3MnLFxuICAgICAgJ2F0b20nLFxuICAgICAgJ3hqYicsXG4gICAgICAneHNkJyxcbiAgICAgICd4c2wnLFxuICAgICAgJ3BsaXN0JyxcbiAgICAgICd3c2YnLFxuICAgICAgJ3N2ZydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgdW5pY29kZVJlZ2V4OiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogLzwhW2Etel0vLFxuICAgICAgICBlbmQ6IC8+LyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBYTUxfTUVUQV9LRVlXT1JEUyxcbiAgICAgICAgICBRVU9URV9NRVRBX1NUUklOR19NT0RFLFxuICAgICAgICAgIEFQT1NfTUVUQV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICBYTUxfTUVUQV9QQVJfS0VZV09SRFMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICAgICAgZW5kOiAvXFxdLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogLzwhW2Etel0vLFxuICAgICAgICAgICAgICAgIGVuZDogLz4vLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICBYTUxfTUVUQV9LRVlXT1JEUyxcbiAgICAgICAgICAgICAgICAgIFhNTF9NRVRBX1BBUl9LRVlXT1JEUyxcbiAgICAgICAgICAgICAgICAgIFFVT1RFX01FVEFfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgICAgICBBUE9TX01FVEFfU1RSSU5HX01PREVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC88IS0tLyxcbiAgICAgICAgLy0tPi8sXG4gICAgICAgIHsgcmVsZXZhbmNlOiAxMCB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzwhXFxbQ0RBVEFcXFsvLFxuICAgICAgICBlbmQ6IC9cXF1cXF0+LyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIFhNTF9FTlRJVElFUyxcbiAgICAgIC8vIHhtbCBwcm9jZXNzaW5nIGluc3RydWN0aW9uc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgZW5kOiAvXFw/Pi8sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC88XFw/eG1sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBRVU9URV9NRVRBX1NUUklOR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLzxcXD9bYS16XVthLXowLTldKy8sXG4gICAgICAgICAgfVxuICAgICAgICBdXG5cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIC8qXG4gICAgICAgIFRoZSBsb29rYWhlYWQgcGF0dGVybiAoPz0uLi4pIGVuc3VyZXMgdGhhdCAnYmVnaW4nIG9ubHkgbWF0Y2hlc1xuICAgICAgICAnPHN0eWxlJyBhcyBhIHNpbmdsZSB3b3JkLCBmb2xsb3dlZCBieSBhIHdoaXRlc3BhY2Ugb3IgYW5cbiAgICAgICAgZW5kaW5nIGJyYWNrZXQuXG4gICAgICAgICovXG4gICAgICAgIGJlZ2luOiAvPHN0eWxlKD89XFxzfD4pLyxcbiAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgIGtleXdvcmRzOiB7IG5hbWU6ICdzdHlsZScgfSxcbiAgICAgICAgY29udGFpbnM6IFsgVEFHX0lOVEVSTkFMUyBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC88XFwvc3R5bGU+LyxcbiAgICAgICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6IFtcbiAgICAgICAgICAgICdjc3MnLFxuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIC8vIFNlZSB0aGUgY29tbWVudCBpbiB0aGUgPHN0eWxlIHRhZyBhYm91dCB0aGUgbG9va2FoZWFkIHBhdHRlcm5cbiAgICAgICAgYmVnaW46IC88c2NyaXB0KD89XFxzfD4pLyxcbiAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgIGtleXdvcmRzOiB7IG5hbWU6ICdzY3JpcHQnIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFRBR19JTlRFUk5BTFMgXSxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvPFxcL3NjcmlwdD4vLFxuICAgICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogW1xuICAgICAgICAgICAgJ2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJ2hhbmRsZWJhcnMnLFxuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB3ZSBuZWVkIHRoaXMgZm9yIG5vdyBmb3IgalNYXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiAvPD58PFxcLz4vXG4gICAgICB9LFxuICAgICAgLy8gb3BlbiB0YWdcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGFnJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvPC8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAgIFRBR19OQU1FX1JFLFxuICAgICAgICAgICAgLy8gPHRhZy8+XG4gICAgICAgICAgICAvLyA8dGFnPlxuICAgICAgICAgICAgLy8gPHRhZyAuLi5cbiAgICAgICAgICAgIHJlZ2V4LmVpdGhlcigvXFwvPi8sIC8+LywgL1xccy8pXG4gICAgICAgICAgKSlcbiAgICAgICAgKSxcbiAgICAgICAgZW5kOiAvXFwvPz4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IFRBR19OQU1FX1JFLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgc3RhcnRzOiBUQUdfSU5URVJOQUxTXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2xvc2UgdGFnXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLzxcXC8vLFxuICAgICAgICAgIHJlZ2V4Lmxvb2thaGVhZChyZWdleC5jb25jYXQoXG4gICAgICAgICAgICBUQUdfTkFNRV9SRSwgLz4vXG4gICAgICAgICAgKSlcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiBUQUdfTkFNRV9SRSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC8+LyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0geG1sO1xuIiwgIi8qXG5MYW5ndWFnZTogQXNjaWlEb2NcblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogRGFuIEFsbGVuIDxkYW4uai5hbGxlbkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vYXNjaWlkb2Mub3JnXG5EZXNjcmlwdGlvbjogQSBzZW1hbnRpYywgdGV4dC1iYXNlZCBkb2N1bWVudCBmb3JtYXQgdGhhdCBjYW4gYmUgZXhwb3J0ZWQgdG8gSFRNTCwgRG9jQm9vayBhbmQgb3RoZXIgYmFja2VuZHMuXG5DYXRlZ29yeTogbWFya3VwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXNjaWlkb2MoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEhPUklaT05UQUxfUlVMRSA9IHtcbiAgICBiZWdpbjogJ15cXCd7Myx9WyBcXFxcdF0qJCcsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICBjb25zdCBFU0NBUEVEX0ZPUk1BVFRJTkcgPSBbXG4gICAgLy8gZXNjYXBlZCBjb25zdHJhaW5lZCBmb3JtYXR0aW5nIG1hcmtzIChpLmUuLCBcXCogXFxfIG9yIFxcYClcbiAgICB7IGJlZ2luOiAvXFxcXFsqX2BdLyB9LFxuICAgIC8vIGVzY2FwZWQgdW5jb25zdHJhaW5lZCBmb3JtYXR0aW5nIG1hcmtzIChpLmUuLCBcXFxcKiogXFxcXF9fIG9yIFxcXFxgYClcbiAgICAvLyBtdXN0IGlnbm9yZSB1bnRpbCB0aGUgbmV4dCBmb3JtYXR0aW5nIG1hcmtzXG4gICAgLy8gdGhpcyBydWxlIG1pZ2h0IG5vdCBiZSAxMDAlIGNvbXBsaWFudCB3aXRoIEFzY2lpZG9jdG9yIDIuMCBidXQgd2UgYXJlIGVudGVyaW5nIHVuZGVmaW5lZCBiZWhhdmlvciB0ZXJyaXRvcnkuLi5cbiAgICB7IGJlZ2luOiAvXFxcXFxcXFxcXCp7Mn1bXlxcbl0qP1xcKnsyfS8gfSxcbiAgICB7IGJlZ2luOiAvXFxcXFxcXFxfezJ9W15cXG5dKl97Mn0vIH0sXG4gICAgeyBiZWdpbjogL1xcXFxcXFxcYHsyfVteXFxuXSpgezJ9LyB9LFxuICAgIC8vIGd1YXJkOiBjb25zdHJhaW5lZCBmb3JtYXR0aW5nIG1hcmsgbWF5IG5vdCBiZSBwcmVjZWRlZCBieSBcIjpcIiwgXCI7XCIgb3JcbiAgICAvLyBcIn1cIi4gbWF0Y2ggdGhlc2Ugc28gdGhlIGNvbnN0cmFpbmVkIHJ1bGUgZG9lc24ndCBzZWUgdGhlbVxuICAgIHsgYmVnaW46IC9bOjt9XVsqX2BdKD8hWypfYF0pLyB9XG4gIF07XG4gIGNvbnN0IFNUUk9ORyA9IFtcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBzdHJvbmcgKHNpbmdsZSBsaW5lKVxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cm9uZycsXG4gICAgICBiZWdpbjogL1xcKnsyfShbXlxcbl0rPylcXCp7Mn0vXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBzdHJvbmcgKG11bHRpLWxpbmUpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3Ryb25nJyxcbiAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgIC9cXCpcXCovLFxuICAgICAgICAvKChcXCooPyFcXCopfFxcXFxbXlxcbl18W14qXFxuXFxcXF0pK1xcbikrLyxcbiAgICAgICAgLyhcXCooPyFcXCopfFxcXFxbXlxcbl18W14qXFxuXFxcXF0pKi8sXG4gICAgICAgIC9cXCpcXCovXG4gICAgICApLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgc3Ryb25nIChzaW5nbGUgbGluZSlcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJvbmcnLFxuICAgICAgLy8gbXVzdCBub3QgcHJlY2VkZSBvciBmb2xsb3cgYSB3b3JkIGNoYXJhY3RlclxuICAgICAgYmVnaW46IC9cXEJcXCooXFxTfFxcU1teXFxuXSo/XFxTKVxcKig/IVxcdykvXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgc3Ryb25nIChtdWx0aS1saW5lKVxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cm9uZycsXG4gICAgICAvLyBtdXN0IG5vdCBwcmVjZWRlIG9yIGZvbGxvdyBhIHdvcmQgY2hhcmFjdGVyXG4gICAgICBiZWdpbjogL1xcKlteXFxzXShbXlxcbl0rXFxuKSsoW15cXG5dKylcXCovXG4gICAgfVxuICBdO1xuICBjb25zdCBFTVBIQVNJUyA9IFtcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBlbXBoYXNpcyAoc2luZ2xlIGxpbmUpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgICAgYmVnaW46IC9fezJ9KFteXFxuXSs/KV97Mn0vXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBlbXBoYXNpcyAobXVsdGktbGluZSlcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdlbXBoYXNpcycsXG4gICAgICBiZWdpbjogcmVnZXguY29uY2F0KFxuICAgICAgICAvX18vLFxuICAgICAgICAvKChfKD8hXyl8XFxcXFteXFxuXXxbXl9cXG5cXFxcXSkrXFxuKSsvLFxuICAgICAgICAvKF8oPyFfKXxcXFxcW15cXG5dfFteX1xcblxcXFxdKSovLFxuICAgICAgICAvX18vXG4gICAgICApLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgZW1waGFzaXMgKHNpbmdsZSBsaW5lKVxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2VtcGhhc2lzJyxcbiAgICAgIC8vIG11c3Qgbm90IHByZWNlZGUgb3IgZm9sbG93IGEgd29yZCBjaGFyYWN0ZXJcbiAgICAgIGJlZ2luOiAvXFxiXyhcXFN8XFxTW15cXG5dKj9cXFMpXyg/IVxcdykvXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgZW1waGFzaXMgKG11bHRpLWxpbmUpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgICAgLy8gbXVzdCBub3QgcHJlY2VkZSBvciBmb2xsb3cgYSB3b3JkIGNoYXJhY3RlclxuICAgICAgYmVnaW46IC9fW15cXHNdKFteXFxuXStcXG4pKyhbXlxcbl0rKV8vXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgZW1waGFzaXMgdXNpbmcgc2luZ2xlIHF1b3RlIChsZWdhY3kpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgICAgLy8gbXVzdCBub3QgZm9sbG93IGEgd29yZCBjaGFyYWN0ZXIgb3IgYmUgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcXVvdGUgb3Igc3BhY2VcbiAgICAgIGJlZ2luOiAnXFxcXEJcXCcoPyFbXFwnXFxcXHNdKScsXG4gICAgICBlbmQ6ICcoXFxcXG57Mn18XFwnKScsXG4gICAgICAvLyBhbGxvdyBlc2NhcGVkIHNpbmdsZSBxdW90ZSBmb2xsb3dlZCBieSB3b3JkIGNoYXJcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ1xcXFxcXFxcXFwnXFxcXHcnLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfVxuICBdO1xuICBjb25zdCBBRE1PTklUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdeKE5PVEV8VElQfElNUE9SVEFOVHxXQVJOSU5HfENBVVRJT04pOlxcXFxzKycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICBjb25zdCBCVUxMRVRfTElTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdidWxsZXQnLFxuICAgIGJlZ2luOiAnXihcXFxcKit8LSt8XFxcXC4rfFteXFxcXG5dKz86OilcXFxccysnXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXNjaWlEb2MnLFxuICAgIGFsaWFzZXM6IFsgJ2Fkb2MnIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC8vIGJsb2NrIGNvbW1lbnRcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ14vezQsfVxcXFxuJyxcbiAgICAgICAgJ1xcXFxuL3s0LH0kJyxcbiAgICAgICAgLy8gY2FuIGFsc28gYmUgZG9uZSBhcy4uLlxuICAgICAgICAvLyAnXi97NCx9JCcsXG4gICAgICAgIC8vICdeL3s0LH0kJyxcbiAgICAgICAgeyByZWxldmFuY2U6IDEwIH1cbiAgICAgICksXG4gICAgICAvLyBsaW5lIGNvbW1lbnRcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ14vLycsXG4gICAgICAgICckJyxcbiAgICAgICAgeyByZWxldmFuY2U6IDAgfVxuICAgICAgKSxcbiAgICAgIC8vIHRpdGxlXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXC5cXFxcdy4qJCdcbiAgICAgIH0sXG4gICAgICAvLyBleGFtcGxlLCBhZG1vbml0aW9uICYgc2lkZWJhciBibG9ja3NcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeWz1cXFxcKl17NCx9XFxcXG4nLFxuICAgICAgICBlbmQ6ICdcXFxcbl5bPVxcXFwqXXs0LH0kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIGhlYWRpbmdzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdeKD17MSw2fSlbIFxcdF0uKz8oWyBcXHRdXFxcXDEpPyQnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ15bXlxcXFxbXFxcXF1cXFxcbl0rP1xcXFxuWz1cXFxcLX5cXFxcXlxcXFwrXXsyLH0kJyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBkb2N1bWVudCBhdHRyaWJ1dGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ146Lis/OicsXG4gICAgICAgIGVuZDogJ1xcXFxzJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIGJsb2NrIGF0dHJpYnV0ZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxbLis/XFxcXF0kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gcXVvdGVibG9ja3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncXVvdGUnLFxuICAgICAgICBiZWdpbjogJ15fezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5fezQsfSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gbGlzdGluZyBhbmQgbGl0ZXJhbCBibG9ja3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIGJlZ2luOiAnXltcXFxcLVxcXFwuXXs0LH1cXFxcbicsXG4gICAgICAgIGVuZDogJ1xcXFxuW1xcXFwtXFxcXC5dezQsfSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gcGFzc3Rocm91Z2ggYmxvY2tzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXlxcXFwrezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5cXFxcK3s0LH0kJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICAgICAgZW5kOiAnPicsXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG5cbiAgICAgIEJVTExFVF9MSVNULFxuICAgICAgQURNT05JVElPTixcbiAgICAgIC4uLkVTQ0FQRURfRk9STUFUVElORyxcbiAgICAgIC4uLlNUUk9ORyxcbiAgICAgIC4uLkVNUEhBU0lTLFxuXG4gICAgICAvLyBpbmxpbmUgc21hcnQgcXVvdGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogXCJgYC4rPycnXCIgfSxcbiAgICAgICAgICB7IGJlZ2luOiBcImAuKz8nXCIgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gaW5saW5lIHVuY29uc3RyYWluZWQgZW1waGFzaXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIGJlZ2luOiAvYHsyfS8sXG4gICAgICAgIGVuZDogLyhcXG57Mn18YHsyfSkvXG4gICAgICB9LFxuICAgICAgLy8gaW5saW5lIGNvZGUgc25pcHBldHMgKFRPRE8gc2hvdWxkIGdldCBzYW1lIHRyZWF0bWVudCBhcyBzdHJvbmcgYW5kIGVtcGhhc2lzKVxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb2RlJyxcbiAgICAgICAgYmVnaW46ICcoYC4rP2B8XFxcXCsuKz9cXFxcKyknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBpbmRlbnRlZCBsaXRlcmFsIGJsb2NrXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvZGUnLFxuICAgICAgICBiZWdpbjogJ15bIFxcXFx0XScsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBIT1JJWk9OVEFMX1JVTEUsXG4gICAgICAvLyBpbWFnZXMgYW5kIGxpbmtzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKGxpbms6KT8oaHR0cHxodHRwc3xmdHB8ZmlsZXxpcmN8aW1hZ2U6Pyk6XFxcXFMrP1xcXFxbW15bXSo/XFxcXF0nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJyhsaW5rfGltYWdlOj8pOicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpbmsnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcdycsXG4gICAgICAgICAgICBlbmQ6ICdbXlxcXFxbXSsnLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgICAgICBlbmQ6ICdcXFxcXScsXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFzY2lpZG9jO1xuIiwgIi8qXG5MYW5ndWFnZTogQXNwZWN0SlxuQXV0aG9yOiBIYWthbiBPemxlciA8b3psZXIuaGFrYW5AZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvYXNwZWN0ai9cbkRlc2NyaXB0aW9uOiBTeW50YXggSGlnaGxpZ2h0aW5nIGZvciB0aGUgQXNwZWN0SiBMYW5ndWFnZSB3aGljaCBpcyBhIGdlbmVyYWwtcHVycG9zZSBhc3BlY3Qtb3JpZW50ZWQgZXh0ZW5zaW9uIHRvIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLlxuQ2F0ZWdvcnk6IHN5c3RlbVxuQXVkaXQ6IDIwMjBcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhc3BlY3RqKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImZhbHNlXCIsXG4gICAgXCJzeW5jaHJvbml6ZWRcIixcbiAgICBcImludFwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcIm51bGxcIixcbiAgICBcImlmXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwibG9uZ1wiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInN0cmljdGZwXCIsXG4gICAgXCJmaW5hbGx5XCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwibmF0aXZlXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJleHRlbmRzXCIsXG4gICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwidHJhbnNpZW50XCIsXG4gICAgXCJuZXdcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJzdXBlclwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImFzc2VydFwiLFxuICAgIFwic2hvcnRcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInRoaXNcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcInRocm93c1wiLFxuICAgIFwicHJpdmlsZWdlZFwiLFxuICAgIFwiYXNwZWN0T2ZcIixcbiAgICBcImFkdmljZWV4ZWN1dGlvblwiLFxuICAgIFwicHJvY2VlZFwiLFxuICAgIFwiY2Zsb3diZWxvd1wiLFxuICAgIFwiY2Zsb3dcIixcbiAgICBcImluaXRpYWxpemF0aW9uXCIsXG4gICAgXCJwcmVpbml0aWFsaXphdGlvblwiLFxuICAgIFwic3RhdGljaW5pdGlhbGl6YXRpb25cIixcbiAgICBcIndpdGhpbmNvZGVcIixcbiAgICBcInRhcmdldFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJleGVjdXRpb25cIixcbiAgICBcImdldFdpdGhpblR5cGVOYW1lXCIsXG4gICAgXCJoYW5kbGVyXCIsXG4gICAgXCJ0aGlzSm9pblBvaW50XCIsXG4gICAgXCJ0aGlzSm9pblBvaW50U3RhdGljUGFydFwiLFxuICAgIFwidGhpc0VuY2xvc2luZ0pvaW5Qb2ludFN0YXRpY1BhcnRcIixcbiAgICBcImRlY2xhcmVcIixcbiAgICBcInBhcmVudHNcIixcbiAgICBcIndhcm5pbmdcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzb2Z0XCIsXG4gICAgXCJwcmVjZWRlbmNlXCIsXG4gICAgXCJ0aGlzQXNwZWN0SW5zdGFuY2VcIlxuICBdO1xuICBjb25zdCBTSE9SVEtFWVMgPSBbXG4gICAgXCJnZXRcIixcbiAgICBcInNldFwiLFxuICAgIFwiYXJnc1wiLFxuICAgIFwiY2FsbFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXNwZWN0SicsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC88XFwvfCMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC9cXC9cXCpcXCovLFxuICAgICAgICAvXFwqXFwvLyxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvLyBlYXQgdXAgQCdzIGluIGVtYWlscyB0byBwcmV2ZW50IHRoZW0gdG8gYmUgcmVjb2duaXplZCBhcyBkb2N0YWdzXG4gICAgICAgICAgICAgIGJlZ2luOiAvXFx3K0AvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICAgICAgICAgIGJlZ2luOiAvQFtBLVphLXpdKy9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnYXNwZWN0JyxcbiAgICAgICAgZW5kOiAvW3s7PV0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvWzo7XCJcXFtcXF1dLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMgcGVydHlwZXdpdGhpbiBwZXJ0aGlzIHBlcnRhcmdldCBwZXJjZmxvd2JlbG93IHBlcmNmbG93IGlzc2luZ2xldG9uJyB9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoW15cXCldKi8sXG4gICAgICAgICAgICBlbmQ6IC9bKV0rLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUy5jb25jYXQoU0hPUlRLRVlTKSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLFxuICAgICAgICBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAga2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLFxuICAgICAgICBpbGxlZ2FsOiAvWzpcIlxcW1xcXV0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW5LZXl3b3JkczogJ2V4dGVuZHMgaW1wbGVtZW50cycgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBBc3BlY3RKIENvbnN0cnVjdHNcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3BvaW50Y3V0IGFmdGVyIGJlZm9yZSBhcm91bmQgdGhyb3dpbmcgcmV0dXJuaW5nJyxcbiAgICAgICAgZW5kOiAvWyldLyxcbiAgICAgICAgZXhjbHVkZUVuZDogZmFsc2UsXG4gICAgICAgIGlsbGVnYWw6IC9bXCJcXFtcXF1dLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSwgL1xccypcXCgvKSxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9bOl0vLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZW5kOiAvW3s7XS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZXhjbHVkZUVuZDogZmFsc2UsXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgaWxsZWdhbDogL1tcIlxcW1xcXV0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLCAvXFxzKlxcKC8pLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLmNvbmNhdChTSE9SVEtFWVMpLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHRoaXMgcHJldmVudHMgJ25ldyBOYW1lKC4uLiksIG9yIHRocm93IC4uLicgZnJvbSBiZWluZyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0aGUgZnVuY3Rpb24gY2xhc3MgaXMgYSBiaXQgZGlmZmVyZW50IGZvciBBc3BlY3RKIGNvbXBhcmVkIHRvIHRoZSBKYXZhIGxhbmd1YWdlXG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46IC9cXHcrICtcXHcrKFxcLlxcdyspP1xccypcXChbXlxcKV0qXFwpXFxzKigodGhyb3dzKVtcXHdcXHMsXSspP1tcXHs7XS8sXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSwgL1xccypcXCgvKSxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgLy8gYW5ub3RhdGlvbiBpcyBhbHNvIHVzZWQgaW4gdGhpcyBsYW5ndWFnZVxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9AW0EtWmEtel0rL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3BlY3RqO1xuIiwgIi8qXG5MYW5ndWFnZTogQXV0b0hvdGtleVxuQXV0aG9yOiBTZW9uZ3dvbiBMZWUgPGRsaW1waWRAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IEF1dG9Ib3RrZXkgbGFuZ3VhZ2UgZGVmaW5pdGlvblxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGF1dG9ob3RrZXkoaGxqcykge1xuICBjb25zdCBCQUNLVElDS19FU0NBUEUgPSB7IGJlZ2luOiAnYFtcXFxcc1xcXFxTXScgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBdXRvSG90a2V5JyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGFsaWFzZXM6IFsgJ2FoaycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ0JyZWFrIENvbnRpbnVlIENyaXRpY2FsIEV4aXQgRXhpdEFwcCBHb3N1YiBHb3RvIE5ldyBPbkV4aXQgUGF1c2UgcmV0dXJuIFNldEJhdGNoTGluZXMgU2V0VGltZXIgU3VzcGVuZCBUaHJlYWQgVGhyb3cgVW50aWwgYWhrX2lkIGFoa19jbGFzcyBhaGtfcGlkIGFoa19leGUgYWhrX2dyb3VwJyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIE5PVCBBTkQgT1InLFxuICAgICAgYnVpbHRfaW46ICdDb21TcGVjIENsaXBib2FyZCBDbGlwYm9hcmRBbGwgRXJyb3JMZXZlbCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBCQUNLVElDS19FU0NBUEUsXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBjb250YWluczogWyBCQUNLVElDS19FU0NBUEUgXSB9KSxcbiAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywgeyByZWxldmFuY2U6IDAgfSksXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gc3Vic3Qgd291bGQgYmUgdGhlIG1vc3QgYWNjdXJhdGUgaG93ZXZlciBmYWlscyB0aGUgcG9pbnQgb2ZcbiAgICAgICAgLy8gaGlnaGxpZ2h0aW5nLiB2YXJpYWJsZSBpcyBjb21wYXJhYmx5IHRoZSBtb3N0IGFjY3VyYXRlIHRoYXQgYWN0dWFsbHlcbiAgICAgICAgLy8gaGFzIHNvbWUgZWZmZWN0XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46ICclW2EtekEtWjAtOSNfJEBdKyUnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKlxcXFx3K1xcXFxzKigsfCUpJ1xuICAgICAgICAvLyBJIGRvbid0IHJlYWxseSBrbm93IGlmIHRoaXMgaXMgdG90YWxseSByZWxldmFudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gc3ltYm9sIHdvdWxkIGJlIG1vc3QgYWNjdXJhdGUgaG93ZXZlciBpcyBoaWdobGlnaHRlZCBqdXN0IGxpa2VcbiAgICAgICAgLy8gYnVpbHRfaW4gYW5kIHRoYXQgbWFrZXMgdXAgYSBsb3Qgb2YgQXV0b0hvdGtleSBjb2RlIG1lYW5pbmcgdGhhdCBpdFxuICAgICAgICAvLyB3b3VsZCBmYWlsIHRvIGhpZ2hsaWdodCBhbnl0aGluZ1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15bXlxcXFxuXCI7XSs6Oig/IT0pJyB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXlteXFxcXG5cIjtdKzooPyE9KScsXG4gICAgICAgICAgICAvLyB6ZXJvIHJlbGV2YW5jZSBhcyBpdCBjYXRjaGVzIGEgbG90IG9mIHRoaW5nc1xuICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgYSBzaW5nbGUgJzonIGluIG1hbnkgbGFuZ3VhZ2VzXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ15cXFxccyojXFxcXHcrJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJ0FfW2EtekEtWjAtOV0rJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gY29uc2VjdXRpdmUgY29tbWFzLCBub3QgZm9yIGhpZ2hsaWdodGluZyBidXQganVzdCBmb3IgcmVsZXZhbmNlXG4gICAgICAgIGJlZ2luOiAnLFxcXFxzKiwnIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXV0b2hvdGtleTtcbiIsICIvKlxuTGFuZ3VhZ2U6IEF1dG9JdFxuQXV0aG9yOiBNYW5oIFR1YW4gPGp1bm9va3lvQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBBdXRvSXQgbGFuZ3VhZ2UgZGVmaW5pdGlvblxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGF1dG9pdChobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gJ0J5UmVmIENhc2UgQ29uc3QgQ29udGludWVDYXNlIENvbnRpbnVlTG9vcCAnXG4gICAgICAgICsgJ0RpbSBEbyBFbHNlIEVsc2VJZiBFbmRGdW5jIEVuZElmIEVuZFNlbGVjdCAnXG4gICAgICAgICsgJ0VuZFN3aXRjaCBFbmRXaXRoIEVudW0gRXhpdCBFeGl0TG9vcCBGb3IgRnVuYyAnXG4gICAgICAgICsgJ0dsb2JhbCBJZiBJbiBMb2NhbCBOZXh0IFJlRGltIFJldHVybiBTZWxlY3QgU3RhdGljICdcbiAgICAgICAgKyAnU3RlcCBTd2l0Y2ggVGhlbiBUbyBVbnRpbCBWb2xhdGlsZSBXRW5kIFdoaWxlIFdpdGgnO1xuXG4gIGNvbnN0IERJUkVDVElWRVMgPSBbXG4gICAgXCJFbmRSZWdpb25cIixcbiAgICBcImZvcmNlZGVmXCIsXG4gICAgXCJmb3JjZXJlZlwiLFxuICAgIFwiaWdub3JlZnVuY1wiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5jbHVkZS1vbmNlXCIsXG4gICAgXCJOb1RyYXlJY29uXCIsXG4gICAgXCJPbkF1dG9JdFN0YXJ0UmVnaXN0ZXJcIixcbiAgICBcInByYWdtYVwiLFxuICAgIFwiUmVnaW9uXCIsXG4gICAgXCJSZXF1aXJlQWRtaW5cIixcbiAgICBcIlRpZHlfT2ZmXCIsXG4gICAgXCJUaWR5X09uXCIsXG4gICAgXCJUaWR5X1BhcmFtZXRlcnNcIlxuICBdO1xuXG4gIGNvbnN0IExJVEVSQUwgPSAnVHJ1ZSBGYWxzZSBBbmQgTnVsbCBOb3QgT3IgRGVmYXVsdCc7XG5cbiAgY29uc3QgQlVJTFRfSU4gPVxuICAgICAgICAgICdBYnMgQUNvcyBBZGxpYlJlZ2lzdGVyIEFkbGliVW5SZWdpc3RlciBBc2MgQXNjVyBBU2luIEFzc2lnbiBBVGFuIEF1dG9JdFNldE9wdGlvbiBBdXRvSXRXaW5HZXRUaXRsZSBBdXRvSXRXaW5TZXRUaXRsZSBCZWVwIEJpbmFyeSBCaW5hcnlMZW4gQmluYXJ5TWlkIEJpbmFyeVRvU3RyaW5nIEJpdEFORCBCaXROT1QgQml0T1IgQml0Um90YXRlIEJpdFNoaWZ0IEJpdFhPUiBCbG9ja0lucHV0IEJyZWFrIENhbGwgQ0RUcmF5IENlaWxpbmcgQ2hyIENoclcgQ2xpcEdldCBDbGlwUHV0IENvbnNvbGVSZWFkIENvbnNvbGVXcml0ZSBDb25zb2xlV3JpdGVFcnJvciBDb250cm9sQ2xpY2sgQ29udHJvbENvbW1hbmQgQ29udHJvbERpc2FibGUgQ29udHJvbEVuYWJsZSBDb250cm9sRm9jdXMgQ29udHJvbEdldEZvY3VzIENvbnRyb2xHZXRIYW5kbGUgQ29udHJvbEdldFBvcyBDb250cm9sR2V0VGV4dCBDb250cm9sSGlkZSBDb250cm9sTGlzdFZpZXcgQ29udHJvbE1vdmUgQ29udHJvbFNlbmQgQ29udHJvbFNldFRleHQgQ29udHJvbFNob3cgQ29udHJvbFRyZWVWaWV3IENvcyBEZWMgRGlyQ29weSBEaXJDcmVhdGUgRGlyR2V0U2l6ZSBEaXJNb3ZlIERpclJlbW92ZSBEbGxDYWxsIERsbENhbGxBZGRyZXNzIERsbENhbGxiYWNrRnJlZSBEbGxDYWxsYmFja0dldFB0ciBEbGxDYWxsYmFja1JlZ2lzdGVyIERsbENsb3NlIERsbE9wZW4gRGxsU3RydWN0Q3JlYXRlIERsbFN0cnVjdEdldERhdGEgRGxsU3RydWN0R2V0UHRyIERsbFN0cnVjdEdldFNpemUgRGxsU3RydWN0U2V0RGF0YSBEcml2ZUdldERyaXZlIERyaXZlR2V0RmlsZVN5c3RlbSBEcml2ZUdldExhYmVsIERyaXZlR2V0U2VyaWFsIERyaXZlR2V0VHlwZSBEcml2ZU1hcEFkZCBEcml2ZU1hcERlbCBEcml2ZU1hcEdldCBEcml2ZVNldExhYmVsIERyaXZlU3BhY2VGcmVlIERyaXZlU3BhY2VUb3RhbCBEcml2ZVN0YXR1cyBFbnZHZXQgRW52U2V0IEVudlVwZGF0ZSBFdmFsIEV4ZWN1dGUgRXhwIEZpbGVDaGFuZ2VEaXIgRmlsZUNsb3NlIEZpbGVDb3B5IEZpbGVDcmVhdGVOVEZTTGluayBGaWxlQ3JlYXRlU2hvcnRjdXQgRmlsZURlbGV0ZSBGaWxlRXhpc3RzIEZpbGVGaW5kRmlyc3RGaWxlIEZpbGVGaW5kTmV4dEZpbGUgRmlsZUZsdXNoIEZpbGVHZXRBdHRyaWIgRmlsZUdldEVuY29kaW5nIEZpbGVHZXRMb25nTmFtZSBGaWxlR2V0UG9zIEZpbGVHZXRTaG9ydGN1dCBGaWxlR2V0U2hvcnROYW1lIEZpbGVHZXRTaXplIEZpbGVHZXRUaW1lIEZpbGVHZXRWZXJzaW9uIEZpbGVJbnN0YWxsIEZpbGVNb3ZlIEZpbGVPcGVuIEZpbGVPcGVuRGlhbG9nIEZpbGVSZWFkIEZpbGVSZWFkTGluZSBGaWxlUmVhZFRvQXJyYXkgRmlsZVJlY3ljbGUgRmlsZVJlY3ljbGVFbXB0eSBGaWxlU2F2ZURpYWxvZyBGaWxlU2VsZWN0Rm9sZGVyIEZpbGVTZXRBdHRyaWIgRmlsZVNldEVuZCBGaWxlU2V0UG9zIEZpbGVTZXRUaW1lIEZpbGVXcml0ZSBGaWxlV3JpdGVMaW5lIEZsb29yIEZ0cFNldFByb3h5IEZ1bmNOYW1lIEdVSUNyZWF0ZSBHVUlDdHJsQ3JlYXRlQXZpIEdVSUN0cmxDcmVhdGVCdXR0b24gR1VJQ3RybENyZWF0ZUNoZWNrYm94IEdVSUN0cmxDcmVhdGVDb21ibyBHVUlDdHJsQ3JlYXRlQ29udGV4dE1lbnUgR1VJQ3RybENyZWF0ZURhdGUgR1VJQ3RybENyZWF0ZUR1bW15IEdVSUN0cmxDcmVhdGVFZGl0IEdVSUN0cmxDcmVhdGVHcmFwaGljIEdVSUN0cmxDcmVhdGVHcm91cCBHVUlDdHJsQ3JlYXRlSWNvbiBHVUlDdHJsQ3JlYXRlSW5wdXQgR1VJQ3RybENyZWF0ZUxhYmVsIEdVSUN0cmxDcmVhdGVMaXN0IEdVSUN0cmxDcmVhdGVMaXN0VmlldyBHVUlDdHJsQ3JlYXRlTGlzdFZpZXdJdGVtIEdVSUN0cmxDcmVhdGVNZW51IEdVSUN0cmxDcmVhdGVNZW51SXRlbSBHVUlDdHJsQ3JlYXRlTW9udGhDYWwgR1VJQ3RybENyZWF0ZU9iaiBHVUlDdHJsQ3JlYXRlUGljIEdVSUN0cmxDcmVhdGVQcm9ncmVzcyBHVUlDdHJsQ3JlYXRlUmFkaW8gR1VJQ3RybENyZWF0ZVNsaWRlciBHVUlDdHJsQ3JlYXRlVGFiIEdVSUN0cmxDcmVhdGVUYWJJdGVtIEdVSUN0cmxDcmVhdGVUcmVlVmlldyBHVUlDdHJsQ3JlYXRlVHJlZVZpZXdJdGVtIEdVSUN0cmxDcmVhdGVVcGRvd24gR1VJQ3RybERlbGV0ZSBHVUlDdHJsR2V0SGFuZGxlIEdVSUN0cmxHZXRTdGF0ZSBHVUlDdHJsUmVhZCBHVUlDdHJsUmVjdk1zZyBHVUlDdHJsUmVnaXN0ZXJMaXN0Vmlld1NvcnQgR1VJQ3RybFNlbmRNc2cgR1VJQ3RybFNlbmRUb0R1bW15IEdVSUN0cmxTZXRCa0NvbG9yIEdVSUN0cmxTZXRDb2xvciBHVUlDdHJsU2V0Q3Vyc29yIEdVSUN0cmxTZXREYXRhIEdVSUN0cmxTZXREZWZCa0NvbG9yIEdVSUN0cmxTZXREZWZDb2xvciBHVUlDdHJsU2V0Rm9udCBHVUlDdHJsU2V0R3JhcGhpYyBHVUlDdHJsU2V0SW1hZ2UgR1VJQ3RybFNldExpbWl0IEdVSUN0cmxTZXRPbkV2ZW50IEdVSUN0cmxTZXRQb3MgR1VJQ3RybFNldFJlc2l6aW5nIEdVSUN0cmxTZXRTdGF0ZSBHVUlDdHJsU2V0U3R5bGUgR1VJQ3RybFNldFRpcCBHVUlEZWxldGUgR1VJR2V0Q3Vyc29ySW5mbyBHVUlHZXRNc2cgR1VJR2V0U3R5bGUgR1VJUmVnaXN0ZXJNc2cgR1VJU2V0QWNjZWxlcmF0b3JzIEdVSVNldEJrQ29sb3IgR1VJU2V0Q29vcmQgR1VJU2V0Q3Vyc29yIEdVSVNldEZvbnQgR1VJU2V0SGVscCBHVUlTZXRJY29uIEdVSVNldE9uRXZlbnQgR1VJU2V0U3RhdGUgR1VJU2V0U3R5bGUgR1VJU3RhcnRHcm91cCBHVUlTd2l0Y2ggSGV4IEhvdEtleVNldCBIdHRwU2V0UHJveHkgSHR0cFNldFVzZXJBZ2VudCBIV25kIEluZXRDbG9zZSBJbmV0R2V0IEluZXRHZXRJbmZvIEluZXRHZXRTaXplIEluZXRSZWFkIEluaURlbGV0ZSBJbmlSZWFkIEluaVJlYWRTZWN0aW9uIEluaVJlYWRTZWN0aW9uTmFtZXMgSW5pUmVuYW1lU2VjdGlvbiBJbmlXcml0ZSBJbmlXcml0ZVNlY3Rpb24gSW5wdXRCb3ggSW50IElzQWRtaW4gSXNBcnJheSBJc0JpbmFyeSBJc0Jvb2wgSXNEZWNsYXJlZCBJc0RsbFN0cnVjdCBJc0Zsb2F0IElzRnVuYyBJc0hXbmQgSXNJbnQgSXNLZXl3b3JkIElzTnVtYmVyIElzT2JqIElzUHRyIElzU3RyaW5nIExvZyBNZW1HZXRTdGF0cyBNb2QgTW91c2VDbGljayBNb3VzZUNsaWNrRHJhZyBNb3VzZURvd24gTW91c2VHZXRDdXJzb3IgTW91c2VHZXRQb3MgTW91c2VNb3ZlIE1vdXNlVXAgTW91c2VXaGVlbCBNc2dCb3ggTnVtYmVyIE9iakNyZWF0ZSBPYmpDcmVhdGVJbnRlcmZhY2UgT2JqRXZlbnQgT2JqR2V0IE9iak5hbWUgT25BdXRvSXRFeGl0UmVnaXN0ZXIgT25BdXRvSXRFeGl0VW5SZWdpc3RlciBQaW5nIFBpeGVsQ2hlY2tzdW0gUGl4ZWxHZXRDb2xvciBQaXhlbFNlYXJjaCBQcm9jZXNzQ2xvc2UgUHJvY2Vzc0V4aXN0cyBQcm9jZXNzR2V0U3RhdHMgUHJvY2Vzc0xpc3QgUHJvY2Vzc1NldFByaW9yaXR5IFByb2Nlc3NXYWl0IFByb2Nlc3NXYWl0Q2xvc2UgUHJvZ3Jlc3NPZmYgUHJvZ3Jlc3NPbiBQcm9ncmVzc1NldCBQdHIgUmFuZG9tIFJlZ0RlbGV0ZSBSZWdFbnVtS2V5IFJlZ0VudW1WYWwgUmVnUmVhZCBSZWdXcml0ZSBSb3VuZCBSdW4gUnVuQXMgUnVuQXNXYWl0IFJ1bldhaXQgU2VuZCBTZW5kS2VlcEFjdGl2ZSBTZXRFcnJvciBTZXRFeHRlbmRlZCBTaGVsbEV4ZWN1dGUgU2hlbGxFeGVjdXRlV2FpdCBTaHV0ZG93biBTaW4gU2xlZXAgU291bmRQbGF5IFNvdW5kU2V0V2F2ZVZvbHVtZSBTcGxhc2hJbWFnZU9uIFNwbGFzaE9mZiBTcGxhc2hUZXh0T24gU3FydCBTUmFuZG9tIFN0YXR1c2JhckdldFRleHQgU3RkZXJyUmVhZCBTdGRpbldyaXRlIFN0ZGlvQ2xvc2UgU3Rkb3V0UmVhZCBTdHJpbmcgU3RyaW5nQWRkQ1IgU3RyaW5nQ29tcGFyZSBTdHJpbmdGb3JtYXQgU3RyaW5nRnJvbUFTQ0lJQXJyYXkgU3RyaW5nSW5TdHIgU3RyaW5nSXNBbE51bSBTdHJpbmdJc0FscGhhIFN0cmluZ0lzQVNDSUkgU3RyaW5nSXNEaWdpdCBTdHJpbmdJc0Zsb2F0IFN0cmluZ0lzSW50IFN0cmluZ0lzTG93ZXIgU3RyaW5nSXNTcGFjZSBTdHJpbmdJc1VwcGVyIFN0cmluZ0lzWERpZ2l0IFN0cmluZ0xlZnQgU3RyaW5nTGVuIFN0cmluZ0xvd2VyIFN0cmluZ01pZCBTdHJpbmdSZWdFeHAgU3RyaW5nUmVnRXhwUmVwbGFjZSBTdHJpbmdSZXBsYWNlIFN0cmluZ1JldmVyc2UgU3RyaW5nUmlnaHQgU3RyaW5nU3BsaXQgU3RyaW5nU3RyaXBDUiBTdHJpbmdTdHJpcFdTIFN0cmluZ1RvQVNDSUlBcnJheSBTdHJpbmdUb0JpbmFyeSBTdHJpbmdUcmltTGVmdCBTdHJpbmdUcmltUmlnaHQgU3RyaW5nVXBwZXIgVGFuIFRDUEFjY2VwdCBUQ1BDbG9zZVNvY2tldCBUQ1BDb25uZWN0IFRDUExpc3RlbiBUQ1BOYW1lVG9JUCBUQ1BSZWN2IFRDUFNlbmQgVENQU2h1dGRvd24sIFVEUFNodXRkb3duIFRDUFN0YXJ0dXAsIFVEUFN0YXJ0dXAgVGltZXJEaWZmIFRpbWVySW5pdCBUb29sVGlwIFRyYXlDcmVhdGVJdGVtIFRyYXlDcmVhdGVNZW51IFRyYXlHZXRNc2cgVHJheUl0ZW1EZWxldGUgVHJheUl0ZW1HZXRIYW5kbGUgVHJheUl0ZW1HZXRTdGF0ZSBUcmF5SXRlbUdldFRleHQgVHJheUl0ZW1TZXRPbkV2ZW50IFRyYXlJdGVtU2V0U3RhdGUgVHJheUl0ZW1TZXRUZXh0IFRyYXlTZXRDbGljayBUcmF5U2V0SWNvbiBUcmF5U2V0T25FdmVudCBUcmF5U2V0UGF1c2VJY29uIFRyYXlTZXRTdGF0ZSBUcmF5U2V0VG9vbFRpcCBUcmF5VGlwIFVCb3VuZCBVRFBCaW5kIFVEUENsb3NlU29ja2V0IFVEUE9wZW4gVURQUmVjdiBVRFBTZW5kIFZhckdldFR5cGUgV2luQWN0aXZhdGUgV2luQWN0aXZlIFdpbkNsb3NlIFdpbkV4aXN0cyBXaW5GbGFzaCBXaW5HZXRDYXJldFBvcyBXaW5HZXRDbGFzc0xpc3QgV2luR2V0Q2xpZW50U2l6ZSBXaW5HZXRIYW5kbGUgV2luR2V0UG9zIFdpbkdldFByb2Nlc3MgV2luR2V0U3RhdGUgV2luR2V0VGV4dCBXaW5HZXRUaXRsZSBXaW5LaWxsIFdpbkxpc3QgV2luTWVudVNlbGVjdEl0ZW0gV2luTWluaW1pemVBbGwgV2luTWluaW1pemVBbGxVbmRvIFdpbk1vdmUgV2luU2V0T25Ub3AgV2luU2V0U3RhdGUgV2luU2V0VGl0bGUgV2luU2V0VHJhbnMgV2luV2FpdCBXaW5XYWl0QWN0aXZlIFdpbldhaXRDbG9zZSBXaW5XYWl0Tm90QWN0aXZlJztcblxuICBjb25zdCBDT01NRU5UID0geyB2YXJpYW50czogW1xuICAgIGhsanMuQ09NTUVOVCgnOycsICckJywgeyByZWxldmFuY2U6IDAgfSksXG4gICAgaGxqcy5DT01NRU5UKCcjY3MnLCAnI2NlJyksXG4gICAgaGxqcy5DT01NRU5UKCcjY29tbWVudHMtc3RhcnQnLCAnI2NvbW1lbnRzLWVuZCcpXG4gIF0gfTtcblxuICBjb25zdCBWQVJJQUJMRSA9IHsgYmVnaW46ICdcXFxcJFtBLXowLTlfXSsnIH07XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1wiXCIvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLycnLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVIgPSB7IHZhcmlhbnRzOiBbXG4gICAgaGxqcy5CSU5BUllfTlVNQkVSX01PREUsXG4gICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gIF0gfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICcjJyxcbiAgICBlbmQ6ICckJyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOiBESVJFQ1RJVkVTIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5jbHVkZScsXG4gICAgICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdpbmNsdWRlJyB9LFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICAgICAgICAgIGVuZDogJz4nXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cIlwiLyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogLycnLyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgU1RSSU5HLFxuICAgICAgQ09NTUVOVFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDT05TVEFOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIC8vIGJlZ2luOiAnQCcsXG4gICAgLy8gZW5kOiAnJCcsXG4gICAgLy8ga2V5d29yZHM6ICdBcHBEYXRhQ29tbW9uRGlyIEFwcERhdGFEaXIgQXV0b0l0RXhlIEF1dG9JdFBJRCBBdXRvSXRWZXJzaW9uIEF1dG9JdFg2NCBDT01fRXZlbnRPYmogQ29tbW9uRmlsZXNEaXIgQ29tcGlsZWQgQ29tcHV0ZXJOYW1lIENvbVNwZWMgQ1BVQXJjaCBDUiBDUkxGIERlc2t0b3BDb21tb25EaXIgRGVza3RvcERlcHRoIERlc2t0b3BEaXIgRGVza3RvcEhlaWdodCBEZXNrdG9wUmVmcmVzaCBEZXNrdG9wV2lkdGggRG9jdW1lbnRzQ29tbW9uRGlyIGVycm9yIGV4aXRDb2RlIGV4aXRNZXRob2QgZXh0ZW5kZWQgRmF2b3JpdGVzQ29tbW9uRGlyIEZhdm9yaXRlc0RpciBHVUlfQ3RybEhhbmRsZSBHVUlfQ3RybElkIEdVSV9EcmFnRmlsZSBHVUlfRHJhZ0lkIEdVSV9Ecm9wSWQgR1VJX1dpbkhhbmRsZSBIb21lRHJpdmUgSG9tZVBhdGggSG9tZVNoYXJlIEhvdEtleVByZXNzZWQgSE9VUiBJUEFkZHJlc3MxIElQQWRkcmVzczIgSVBBZGRyZXNzMyBJUEFkZHJlc3M0IEtCTGF5b3V0IExGIExvY2FsQXBwRGF0YURpciBMb2dvbkROU0RvbWFpbiBMb2dvbkRvbWFpbiBMb2dvblNlcnZlciBNREFZIE1JTiBNT04gTVNFQyBNVUlMYW5nIE15RG9jdW1lbnRzRGlyIE51bVBhcmFtcyBPU0FyY2ggT1NCdWlsZCBPU0xhbmcgT1NTZXJ2aWNlUGFjayBPU1R5cGUgT1NWZXJzaW9uIFByb2dyYW1GaWxlc0RpciBQcm9ncmFtc0NvbW1vbkRpciBQcm9ncmFtc0RpciBTY3JpcHREaXIgU2NyaXB0RnVsbFBhdGggU2NyaXB0TGluZU51bWJlciBTY3JpcHROYW1lIFNFQyBTdGFydE1lbnVDb21tb25EaXIgU3RhcnRNZW51RGlyIFN0YXJ0dXBDb21tb25EaXIgU3RhcnR1cERpciBTV19ESVNBQkxFIFNXX0VOQUJMRSBTV19ISURFIFNXX0xPQ0sgU1dfTUFYSU1JWkUgU1dfTUlOSU1JWkUgU1dfUkVTVE9SRSBTV19TSE9XIFNXX1NIT1dERUZBVUxUIFNXX1NIT1dNQVhJTUlaRUQgU1dfU0hPV01JTklNSVpFRCBTV19TSE9XTUlOTk9BQ1RJVkUgU1dfU0hPV05BIFNXX1NIT1dOT0FDVElWQVRFIFNXX1NIT1dOT1JNQUwgU1dfVU5MT0NLIFN5c3RlbURpciBUQUIgVGVtcERpciBUUkFZX0lEIFRyYXlJY29uRmxhc2hpbmcgVHJheUljb25WaXNpYmxlIFVzZXJOYW1lIFVzZXJQcm9maWxlRGlyIFdEQVkgV2luZG93c0RpciBXb3JraW5nRGlyIFlEQVkgWUVBUicsXG4gICAgLy8gcmVsZXZhbmNlOiA1XG4gICAgYmVnaW46ICdAW0EtejAtOV9dKydcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnRnVuYycsXG4gICAgZW5kOiAnJCcsXG4gICAgaWxsZWdhbDogJ1xcXFwkfFxcXFxbfCUnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsIHsgY2xhc3NOYW1lOiBcInRpdGxlLmZ1bmN0aW9uXCIgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIE5VTUJFUlxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0F1dG9JdCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU4sXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVCxcbiAgICAgIFZBUklBQkxFLFxuICAgICAgU1RSSU5HLFxuICAgICAgTlVNQkVSLFxuICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAgQ09OU1RBTlQsXG4gICAgICBGVU5DVElPTlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhdXRvaXQ7XG4iLCAiLypcbkxhbmd1YWdlOiBBVlIgQXNzZW1ibHlcbkF1dGhvcjogVmxhZGltaXIgRXJtYWtvdiA8dm9vb24zNDFAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGFzc2VtYmxlclxuV2Vic2l0ZTogaHR0cHM6Ly93d3cubWljcm9jaGlwLmNvbS93ZWJkb2MvYXZyYXNzZW1ibGVyL2F2cmFzc2VtYmxlci53Yl9pbnN0cnVjdGlvbl9saXN0Lmh0bWxcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhdnJhc20oaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBVlIgQXNzZW1ibHknLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAnXFxcXC4/JyArIGhsanMuSURFTlRfUkUsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAvKiBtbmVtb25pYyAqL1xuICAgICAgICAnYWRjIGFkZCBhZGl3IGFuZCBhbmRpIGFzciBiY2xyIGJsZCBicmJjIGJyYnMgYnJjYyBicmNzIGJyZWFrIGJyZXEgYnJnZSBicmhjIGJyaHMgJ1xuICAgICAgICArICdicmlkIGJyaWUgYnJsbyBicmx0IGJybWkgYnJuZSBicnBsIGJyc2ggYnJ0YyBicnRzIGJydmMgYnJ2cyBic2V0IGJzdCBjYWxsIGNiaSBjYnIgJ1xuICAgICAgICArICdjbGMgY2xoIGNsaSBjbG4gY2xyIGNscyBjbHQgY2x2IGNseiBjb20gY3AgY3BjIGNwaSBjcHNlIGRlYyBlaWNhbGwgZWlqbXAgZWxwbSBlb3IgJ1xuICAgICAgICArICdmbXVsIGZtdWxzIGZtdWxzdSBpY2FsbCBpam1wIGluIGluYyBqbXAgbGQgbGRkIGxkaSBsZHMgbHBtIGxzbCBsc3IgbW92IG1vdncgbXVsICdcbiAgICAgICAgKyAnbXVscyBtdWxzdSBuZWcgbm9wIG9yIG9yaSBvdXQgcG9wIHB1c2ggcmNhbGwgcmV0IHJldGkgcmptcCByb2wgcm9yIHNiYyBzYnIgc2JyYyBzYnJzICdcbiAgICAgICAgKyAnc2VjIHNlaCBzYmkgc2JjaSBzYmljIHNiaXMgc2JpdyBzZWkgc2VuIHNlciBzZXMgc2V0IHNldiBzZXogc2xlZXAgc3BtIHN0IHN0ZCBzdHMgc3ViICdcbiAgICAgICAgKyAnc3ViaSBzd2FwIHRzdCB3ZHInLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIC8qIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgKi9cbiAgICAgICAgJ3IwIHIxIHIyIHIzIHI0IHI1IHI2IHI3IHI4IHI5IHIxMCByMTEgcjEyIHIxMyByMTQgcjE1IHIxNiByMTcgcjE4IHIxOSByMjAgcjIxIHIyMiAnXG4gICAgICAgICsgJ3IyMyByMjQgcjI1IHIyNiByMjcgcjI4IHIyOSByMzAgcjMxIHh8MCB4aCB4bCB5fDAgeWggeWwgenwwIHpoIHpsICdcbiAgICAgICAgLyogSU8gUmVnaXN0ZXJzIChBVE1lZ2ExMjgpICovXG4gICAgICAgICsgJ3Vjc3IxYyB1ZHIxIHVjc3IxYSB1Y3NyMWIgdWJycjFsIHVicnIxaCB1Y3NyMGMgdWJycjBoIHRjY3IzYyB0Y2NyM2EgdGNjcjNiIHRjbnQzaCAnXG4gICAgICAgICsgJ3RjbnQzbCBvY3IzYWggb2NyM2FsIG9jcjNiaCBvY3IzYmwgb2NyM2NoIG9jcjNjbCBpY3IzaCBpY3IzbCBldGltc2sgZXRpZnIgdGNjcjFjICdcbiAgICAgICAgKyAnb2NyMWNoIG9jcjFjbCB0d2NyIHR3ZHIgdHdhciB0d3NyIHR3YnIgb3NjY2FsIHhtY3JhIHhtY3JiIGVpY3JhIHNwbWNzciBzcG1jciBwb3J0ZyAnXG4gICAgICAgICsgJ2RkcmcgcGluZyBwb3J0ZiBkZHJmIHNyZWcgc3BoIHNwbCB4ZGl2IHJhbXB6IGVpY3JiIGVpbXNrIGdpbXNrIGdpY3IgZWlmciBnaWZyIHRpbXNrICdcbiAgICAgICAgKyAndGlmciBtY3VjciBtY3Vjc3IgdGNjcjAgdGNudDAgb2NyMCBhc3NyIHRjY3IxYSB0Y2NyMWIgdGNudDFoIHRjbnQxbCBvY3IxYWggb2NyMWFsICdcbiAgICAgICAgKyAnb2NyMWJoIG9jcjFibCBpY3IxaCBpY3IxbCB0Y2NyMiB0Y250MiBvY3IyIG9jZHIgd2R0Y3Igc2Zpb3IgZWVhcmggZWVhcmwgZWVkciBlZWNyICdcbiAgICAgICAgKyAncG9ydGEgZGRyYSBwaW5hIHBvcnRiIGRkcmIgcGluYiBwb3J0YyBkZHJjIHBpbmMgcG9ydGQgZGRyZCBwaW5kIHNwZHIgc3BzciBzcGNyIHVkcjAgJ1xuICAgICAgICArICd1Y3NyMGEgdWNzcjBiIHVicnIwbCBhY3NyIGFkbXV4IGFkY3NyIGFkY2ggYWRjbCBwb3J0ZSBkZHJlIHBpbmUgcGluZicsXG4gICAgICBtZXRhOlxuICAgICAgICAnLmJ5dGUgLmNzZWcgLmRiIC5kZWYgLmRldmljZSAuZHNlZyAuZHcgLmVuZG1hY3JvIC5lcXUgLmVzZWcgLmV4aXQgLmluY2x1ZGUgLmxpc3QgJ1xuICAgICAgICArICcubGlzdG1hYyAubWFjcm8gLm5vbGlzdCAub3JnIC5zZXQnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsIC8vIDB4Li4uLCBkZWNpbWFsLCBmbG9hdFxuICAgICAgaGxqcy5CSU5BUllfTlVNQkVSX01PREUsIC8vIDBiLi4uXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXCRbYS16QS1aMC05XSt8MG9bMC03XSspJyAvLyAkLi4uLCAwby4uLlxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1cXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnW15cXFxcXFxcXF1bXlxcJ10nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ15bQS1aYS16MC05Xy4kXSs6J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgIGVuZDogJyQnXG4gICAgICB9LFxuICAgICAgeyAvLyBzdWJzdGl0dXRpb24gd2l0aGluIGEgbWFjcm9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogJ0BbMC05XSsnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGF2cmFzbTtcbiIsICIvKlxuTGFuZ3VhZ2U6IEF3a1xuQXV0aG9yOiBNYXR0aGV3IERhbHkgPG1hdHRoZXdiZGFseUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2dhd2svbWFudWFsL2dhd2suaHRtbFxuRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gZm9yIEF3ayBzY3JpcHRzXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXdrKGhsanMpIHtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAvXFwkW1xcd1xcZCNAXVtcXHdcXGRfXSovIH0sXG4gICAgICB7IGJlZ2luOiAvXFwkXFx7KC4qPylcXH0vIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRTID0gJ0JFR0lOIEVORCBpZiBlbHNlIHdoaWxlIGRvIGZvciBpbiBicmVhayBjb250aW51ZSBkZWxldGUgbmV4dCBuZXh0ZmlsZSBmdW5jdGlvbiBmdW5jIGV4aXR8MTAnO1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyh1fGIpP3I/JycnLyxcbiAgICAgICAgZW5kOiAvJycnLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8odXxiKT9yP1wiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIi8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKHV8cnx1ciknLyxcbiAgICAgICAgZW5kOiAvJy8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKHV8cnx1cilcIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oYnxiciknLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKGJ8YnIpXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBd2snLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6IEtFWVdPUkRTIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFZBUklBQkxFLFxuICAgICAgU1RSSU5HLFxuICAgICAgaGxqcy5SRUdFWFBfTU9ERSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGF3aztcbiIsICIvKlxuTGFuZ3VhZ2U6IE1pY3Jvc29mdCBYKytcbkRlc2NyaXB0aW9uOiBYKysgaXMgYSBsYW5ndWFnZSB1c2VkIGluIE1pY3Jvc29mdCBEeW5hbWljcyAzNjUsIER5bmFtaWNzIEFYLCBhbmQgQXhhcHRhLlxuQXV0aG9yOiBEbWl0cmkgUm91ZGFrb3YgPGRtaXRyaUByb3VkYWtvdi5ydT5cbldlYnNpdGU6IGh0dHBzOi8vZHluYW1pY3MubWljcm9zb2Z0LmNvbS9lbi11cy9heC1vdmVydmlldy9cbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXhhcHRhKGhsanMpIHtcbiAgY29uc3QgSURFTlRfUkUgPSBobGpzLlVOREVSU0NPUkVfSURFTlRfUkU7XG4gIGNvbnN0IEJVSUxUX0lOX0tFWVdPUkRTID0gW1xuICAgICdhbnl0eXBlJyxcbiAgICAnYm9vbGVhbicsXG4gICAgJ2J5dGUnLFxuICAgICdjaGFyJyxcbiAgICAnY29udGFpbmVyJyxcbiAgICAnZGF0ZScsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2VudW0nLFxuICAgICdndWlkJyxcbiAgICAnaW50JyxcbiAgICAnaW50NjQnLFxuICAgICdsb25nJyxcbiAgICAncmVhbCcsXG4gICAgJ3Nob3J0JyxcbiAgICAnc3RyJyxcbiAgICAndXRjZGF0ZXRpbWUnLFxuICAgICd2YXInXG4gIF07XG5cbiAgY29uc3QgTElURVJBTF9LRVlXT1JEUyA9IFtcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbCcsXG4gICAgJ3RydWUnXG4gIF07XG5cbiAgY29uc3QgTk9STUFMX0tFWVdPUkRTID0gW1xuICAgICdhYnN0cmFjdCcsXG4gICAgJ2FzJyxcbiAgICAnYXNjJyxcbiAgICAnYXZnJyxcbiAgICAnYnJlYWsnLFxuICAgICdicmVha3BvaW50JyxcbiAgICAnYnknLFxuICAgICdieXJlZicsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NoYW5nZWNvbXBhbnknLFxuICAgICdjbGFzcycsXG4gICAgJ2NsaWVudCcsXG4gICAgJ2NsaWVudCcsXG4gICAgJ2NvbW1vbicsXG4gICAgJ2NvbnN0JyxcbiAgICAnY29udGludWUnLFxuICAgICdjb3VudCcsXG4gICAgJ2Nyb3NzY29tcGFueScsXG4gICAgJ2RlbGVnYXRlJyxcbiAgICAnZGVsZXRlX2Zyb20nLFxuICAgICdkZXNjJyxcbiAgICAnZGlzcGxheScsXG4gICAgJ2RpdicsXG4gICAgJ2RvJyxcbiAgICAnZWRpdCcsXG4gICAgJ2Vsc2UnLFxuICAgICdldmVudGhhbmRsZXInLFxuICAgICdleGlzdHMnLFxuICAgICdleHRlbmRzJyxcbiAgICAnZmluYWwnLFxuICAgICdmaW5hbGx5JyxcbiAgICAnZmlyc3RmYXN0JyxcbiAgICAnZmlyc3Rvbmx5JyxcbiAgICAnZmlyc3Rvbmx5MScsXG4gICAgJ2ZpcnN0b25seTEwJyxcbiAgICAnZmlyc3Rvbmx5MTAwJyxcbiAgICAnZmlyc3Rvbmx5MTAwMCcsXG4gICAgJ2ZsdXNoJyxcbiAgICAnZm9yJyxcbiAgICAnZm9yY2VsaXRlcmFscycsXG4gICAgJ2ZvcmNlbmVzdGVkbG9vcCcsXG4gICAgJ2ZvcmNlcGxhY2Vob2xkZXJzJyxcbiAgICAnZm9yY2VzZWxlY3RvcmRlcicsXG4gICAgJ2ZvcnVwZGF0ZScsXG4gICAgJ2Zyb20nLFxuICAgICdnZW5lcmF0ZW9ubHknLFxuICAgICdncm91cCcsXG4gICAgJ2hpbnQnLFxuICAgICdpZicsXG4gICAgJ2ltcGxlbWVudHMnLFxuICAgICdpbicsXG4gICAgJ2luZGV4JyxcbiAgICAnaW5zZXJ0X3JlY29yZHNldCcsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ2ludGVybmFsJyxcbiAgICAnaXMnLFxuICAgICdqb2luJyxcbiAgICAnbGlrZScsXG4gICAgJ21heG9mJyxcbiAgICAnbWlub2YnLFxuICAgICdtb2QnLFxuICAgICduYW1lc3BhY2UnLFxuICAgICduZXcnLFxuICAgICduZXh0JyxcbiAgICAnbm9mZXRjaCcsXG4gICAgJ25vdGV4aXN0cycsXG4gICAgJ29wdGltaXN0aWNsb2NrJyxcbiAgICAnb3JkZXInLFxuICAgICdvdXRlcicsXG4gICAgJ3Blc3NpbWlzdGljbG9jaycsXG4gICAgJ3ByaW50JyxcbiAgICAncHJpdmF0ZScsXG4gICAgJ3Byb3RlY3RlZCcsXG4gICAgJ3B1YmxpYycsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAncmVwZWF0YWJsZXJlYWQnLFxuICAgICdyZXRyeScsXG4gICAgJ3JldHVybicsXG4gICAgJ3JldmVyc2UnLFxuICAgICdzZWxlY3QnLFxuICAgICdzZXJ2ZXInLFxuICAgICdzZXR0aW5nJyxcbiAgICAnc3RhdGljJyxcbiAgICAnc3VtJyxcbiAgICAnc3VwZXInLFxuICAgICdzd2l0Y2gnLFxuICAgICd0aGlzJyxcbiAgICAndGhyb3cnLFxuICAgICd0cnknLFxuICAgICd0dHNhYm9ydCcsXG4gICAgJ3R0c2JlZ2luJyxcbiAgICAndHRzY29tbWl0JyxcbiAgICAndW5jaGVja2VkJyxcbiAgICAndXBkYXRlX3JlY29yZHNldCcsXG4gICAgJ3VzaW5nJyxcbiAgICAndmFsaWR0aW1lc3RhdGUnLFxuICAgICd2b2lkJyxcbiAgICAnd2hlcmUnLFxuICAgICd3aGlsZSdcbiAgXTtcblxuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBOT1JNQUxfS0VZV09SRFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOX0tFWVdPUkRTLFxuICAgIGxpdGVyYWw6IExJVEVSQUxfS0VZV09SRFNcbiAgfTtcblxuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC8oY2xhc3N8aW50ZXJmYWNlKVxccysvLFxuICAgICAgICBJREVOVF9SRSxcbiAgICAgICAgL1xccysoZXh0ZW5kc3xpbXBsZW1lbnRzKVxccysvLFxuICAgICAgICBJREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSURFTlRfUkVcbiAgICAgIF0gfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1grKycsXG4gICAgYWxpYXNlczogWyAneCsrJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIENMQVNTX0RFRklOSVRJT05cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXhhcHRhO1xuIiwgIi8qXG5MYW5ndWFnZTogQmFzaFxuQXV0aG9yOiB2YWggPHZhaHRlbmJlcmdAZ21haWwuY29tPlxuQ29udHJpYnV0cm9yczogQmVuamFtaW4gUGFubmVsbCA8Y29udGFjdEBzaWVycmFzb2Z0d29ya3MuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYmFzaChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgVkFSID0ge307XG4gIGNvbnN0IEJSQUNFRF9WQVIgPSB7XG4gICAgYmVnaW46IC9cXCRcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFwic2VsZlwiLFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzotLyxcbiAgICAgICAgY29udGFpbnM6IFsgVkFSIF1cbiAgICAgIH0gLy8gZGVmYXVsdCB2YWx1ZXNcbiAgICBdXG4gIH07XG4gIE9iamVjdC5hc3NpZ24oVkFSLCB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1xcJFtcXHdcXGQjQF1bXFx3XFxkX10qLyxcbiAgICAgICAgLy8gbmVnYXRpdmUgbG9vay1haGVhZCB0cmllcyB0byBhdm9pZCBtYXRjaGluZyBwYXR0ZXJucyB0aGF0IGFyZSBub3RcbiAgICAgICAgLy8gUGVybCBhdCBhbGwgbGlrZSAkaWRlbnQkLCBAaWRlbnRALCBldGMuXG4gICAgICAgIGAoPyFbXFxcXHdcXFxcZF0pKD8hWyRdKWApIH0sXG4gICAgICBCUkFDRURfVkFSXG4gICAgXVxuICB9KTtcblxuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC9cXCRcXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcbiAgY29uc3QgQ09NTUVOVCA9IGhsanMuaW5oZXJpdChcbiAgICBobGpzLkNPTU1FTlQoKSxcbiAgICB7XG4gICAgICBtYXRjaDogW1xuICAgICAgICAvKF58XFxzKS8sXG4gICAgICAgIC8jLiokL1xuICAgICAgXSxcbiAgICAgIHNjb3BlOiB7XG4gICAgICAgIDI6ICdjb21tZW50J1xuICAgICAgfVxuICAgIH1cbiAgKTtcbiAgY29uc3QgSEVSRV9ET0MgPSB7XG4gICAgYmVnaW46IC88PC0/XFxzKig/PVxcdyspLyxcbiAgICBzdGFydHM6IHsgY29udGFpbnM6IFtcbiAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICBiZWdpbjogLyhcXHcrKS8sXG4gICAgICAgIGVuZDogLyhcXHcrKS8sXG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZydcbiAgICAgIH0pXG4gICAgXSB9XG4gIH07XG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zLnB1c2goUVVPVEVfU1RSSU5HKTtcbiAgY29uc3QgRVNDQVBFRF9RVU9URSA9IHtcbiAgICBtYXRjaDogL1xcXFxcIi9cbiAgfTtcbiAgY29uc3QgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLFxuICAgIGVuZDogLycvXG4gIH07XG4gIGNvbnN0IEVTQ0FQRURfQVBPUyA9IHtcbiAgICBtYXRjaDogL1xcXFwnL1xuICB9O1xuICBjb25zdCBBUklUSE1FVElDID0ge1xuICAgIGJlZ2luOiAvXFwkP1xcKFxcKC8sXG4gICAgZW5kOiAvXFwpXFwpLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcZCsjWzAtOWEtZl0rLyxcbiAgICAgICAgY2xhc3NOYW1lOiBcIm51bWJlclwiXG4gICAgICB9LFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIFZBUlxuICAgIF1cbiAgfTtcbiAgY29uc3QgU0hfTElLRV9TSEVMTFMgPSBbXG4gICAgXCJmaXNoXCIsXG4gICAgXCJiYXNoXCIsXG4gICAgXCJ6c2hcIixcbiAgICBcInNoXCIsXG4gICAgXCJjc2hcIixcbiAgICBcImtzaFwiLFxuICAgIFwidGNzaFwiLFxuICAgIFwiZGFzaFwiLFxuICAgIFwic2NzaFwiLFxuICBdO1xuICBjb25zdCBLTk9XTl9TSEVCQU5HID0gaGxqcy5TSEVCQU5HKHtcbiAgICBiaW5hcnk6IGAoJHtTSF9MSUtFX1NIRUxMUy5qb2luKFwifFwiKX0pYCxcbiAgICByZWxldmFuY2U6IDEwXG4gIH0pO1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW46IC9cXHdbXFx3XFxkX10qXFxzKlxcKFxccypcXClcXHMqXFx7LyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogWyBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiAvXFx3W1xcd1xcZF9dKi8gfSkgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImlmXCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbGlmXCIsXG4gICAgXCJmaVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcImluXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZG9uZVwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZXNhY1wiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcInNlbGVjdFwiXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiXG4gIF07XG5cbiAgLy8gdG8gY29uc3VtZSBwYXRocyB0byBwcmV2ZW50IGtleXdvcmQgbWF0Y2hlcyBpbnNpZGUgdGhlbVxuICBjb25zdCBQQVRIX01PREUgPSB7IG1hdGNoOiAvKFxcL1thLXouXy1dKykrLyB9O1xuXG4gIC8vIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2hlbGwtQnVpbHRpbi1Db21tYW5kcy5odG1sXG4gIGNvbnN0IFNIRUxMX0JVSUxUX0lOUyA9IFtcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjZFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImV2YWxcIixcbiAgICBcImV4ZWNcIixcbiAgICBcImV4aXRcIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwiZ2V0b3B0c1wiLFxuICAgIFwiaGFzaFwiLFxuICAgIFwicHdkXCIsXG4gICAgXCJyZWFkb25seVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzaGlmdFwiLFxuICAgIFwidGVzdFwiLFxuICAgIFwidGltZXNcIixcbiAgICBcInRyYXBcIixcbiAgICBcInVtYXNrXCIsXG4gICAgXCJ1bnNldFwiXG4gIF07XG5cbiAgY29uc3QgQkFTSF9CVUlMVF9JTlMgPSBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiYmluZFwiLFxuICAgIFwiYnVpbHRpblwiLFxuICAgIFwiY2FsbGVyXCIsXG4gICAgXCJjb21tYW5kXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJlY2hvXCIsXG4gICAgXCJlbmFibGVcIixcbiAgICBcImhlbHBcIixcbiAgICBcImxldFwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImxvZ291dFwiLFxuICAgIFwibWFwZmlsZVwiLFxuICAgIFwicHJpbnRmXCIsXG4gICAgXCJyZWFkXCIsXG4gICAgXCJyZWFkYXJyYXlcIixcbiAgICBcInNvdXJjZVwiLFxuICAgIFwic3Vkb1wiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidHlwZXNldFwiLFxuICAgIFwidWxpbWl0XCIsXG4gICAgXCJ1bmFsaWFzXCJcbiAgXTtcblxuICBjb25zdCBaU0hfQlVJTFRfSU5TID0gW1xuICAgIFwiYXV0b2xvYWRcIixcbiAgICBcImJnXCIsXG4gICAgXCJiaW5ka2V5XCIsXG4gICAgXCJieWVcIixcbiAgICBcImNhcFwiLFxuICAgIFwiY2hkaXJcIixcbiAgICBcImNsb25lXCIsXG4gICAgXCJjb21wYXJndW1lbnRzXCIsXG4gICAgXCJjb21wY2FsbFwiLFxuICAgIFwiY29tcGN0bFwiLFxuICAgIFwiY29tcGRlc2NyaWJlXCIsXG4gICAgXCJjb21wZmlsZXNcIixcbiAgICBcImNvbXBncm91cHNcIixcbiAgICBcImNvbXBxdW90ZVwiLFxuICAgIFwiY29tcHRhZ3NcIixcbiAgICBcImNvbXB0cnlcIixcbiAgICBcImNvbXB2YWx1ZXNcIixcbiAgICBcImRpcnNcIixcbiAgICBcImRpc2FibGVcIixcbiAgICBcImRpc293blwiLFxuICAgIFwiZWNob3RjXCIsXG4gICAgXCJlY2hvdGlcIixcbiAgICBcImVtdWxhdGVcIixcbiAgICBcImZjXCIsXG4gICAgXCJmZ1wiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImZ1bmN0aW9uc1wiLFxuICAgIFwiZ2V0Y2FwXCIsXG4gICAgXCJnZXRsblwiLFxuICAgIFwiaGlzdG9yeVwiLFxuICAgIFwiaW50ZWdlclwiLFxuICAgIFwiam9ic1wiLFxuICAgIFwia2lsbFwiLFxuICAgIFwibGltaXRcIixcbiAgICBcImxvZ1wiLFxuICAgIFwibm9nbG9iXCIsXG4gICAgXCJwb3BkXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicHVzaGRcIixcbiAgICBcInB1c2hsblwiLFxuICAgIFwicmVoYXNoXCIsXG4gICAgXCJzY2hlZFwiLFxuICAgIFwic2V0Y2FwXCIsXG4gICAgXCJzZXRvcHRcIixcbiAgICBcInN0YXRcIixcbiAgICBcInN1c3BlbmRcIixcbiAgICBcInR0eWN0bFwiLFxuICAgIFwidW5mdW5jdGlvblwiLFxuICAgIFwidW5oYXNoXCIsXG4gICAgXCJ1bmxpbWl0XCIsXG4gICAgXCJ1bnNldG9wdFwiLFxuICAgIFwidmFyZWRcIixcbiAgICBcIndhaXRcIixcbiAgICBcIndoZW5jZVwiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIndoaWNoXCIsXG4gICAgXCJ6Y29tcGlsZVwiLFxuICAgIFwiemZvcm1hdFwiLFxuICAgIFwiemZ0cFwiLFxuICAgIFwiemxlXCIsXG4gICAgXCJ6bW9kbG9hZFwiLFxuICAgIFwienBhcnNlb3B0c1wiLFxuICAgIFwienByb2ZcIixcbiAgICBcInpwdHlcIixcbiAgICBcInpyZWdleHBhcnNlXCIsXG4gICAgXCJ6c29ja2V0XCIsXG4gICAgXCJ6c3R5bGVcIixcbiAgICBcInp0Y3BcIlxuICBdO1xuXG4gIGNvbnN0IEdOVV9DT1JFX1VUSUxTID0gW1xuICAgIFwiY2hjb25cIixcbiAgICBcImNoZ3JwXCIsXG4gICAgXCJjaG93blwiLFxuICAgIFwiY2htb2RcIixcbiAgICBcImNwXCIsXG4gICAgXCJkZFwiLFxuICAgIFwiZGZcIixcbiAgICBcImRpclwiLFxuICAgIFwiZGlyY29sb3JzXCIsXG4gICAgXCJsblwiLFxuICAgIFwibHNcIixcbiAgICBcIm1rZGlyXCIsXG4gICAgXCJta2ZpZm9cIixcbiAgICBcIm1rbm9kXCIsXG4gICAgXCJta3RlbXBcIixcbiAgICBcIm12XCIsXG4gICAgXCJyZWFscGF0aFwiLFxuICAgIFwicm1cIixcbiAgICBcInJtZGlyXCIsXG4gICAgXCJzaHJlZFwiLFxuICAgIFwic3luY1wiLFxuICAgIFwidG91Y2hcIixcbiAgICBcInRydW5jYXRlXCIsXG4gICAgXCJ2ZGlyXCIsXG4gICAgXCJiMnN1bVwiLFxuICAgIFwiYmFzZTMyXCIsXG4gICAgXCJiYXNlNjRcIixcbiAgICBcImNhdFwiLFxuICAgIFwiY2tzdW1cIixcbiAgICBcImNvbW1cIixcbiAgICBcImNzcGxpdFwiLFxuICAgIFwiY3V0XCIsXG4gICAgXCJleHBhbmRcIixcbiAgICBcImZtdFwiLFxuICAgIFwiZm9sZFwiLFxuICAgIFwiaGVhZFwiLFxuICAgIFwiam9pblwiLFxuICAgIFwibWQ1c3VtXCIsXG4gICAgXCJubFwiLFxuICAgIFwibnVtZm10XCIsXG4gICAgXCJvZFwiLFxuICAgIFwicGFzdGVcIixcbiAgICBcInB0eFwiLFxuICAgIFwicHJcIixcbiAgICBcInNoYTFzdW1cIixcbiAgICBcInNoYTIyNHN1bVwiLFxuICAgIFwic2hhMjU2c3VtXCIsXG4gICAgXCJzaGEzODRzdW1cIixcbiAgICBcInNoYTUxMnN1bVwiLFxuICAgIFwic2h1ZlwiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3BsaXRcIixcbiAgICBcInN1bVwiLFxuICAgIFwidGFjXCIsXG4gICAgXCJ0YWlsXCIsXG4gICAgXCJ0clwiLFxuICAgIFwidHNvcnRcIixcbiAgICBcInVuZXhwYW5kXCIsXG4gICAgXCJ1bmlxXCIsXG4gICAgXCJ3Y1wiLFxuICAgIFwiYXJjaFwiLFxuICAgIFwiYmFzZW5hbWVcIixcbiAgICBcImNocm9vdFwiLFxuICAgIFwiZGF0ZVwiLFxuICAgIFwiZGlybmFtZVwiLFxuICAgIFwiZHVcIixcbiAgICBcImVjaG9cIixcbiAgICBcImVudlwiLFxuICAgIFwiZXhwclwiLFxuICAgIFwiZmFjdG9yXCIsXG4gICAgLy8gXCJmYWxzZVwiLCAvLyBrZXl3b3JkIGxpdGVyYWwgYWxyZWFkeVxuICAgIFwiZ3JvdXBzXCIsXG4gICAgXCJob3N0aWRcIixcbiAgICBcImlkXCIsXG4gICAgXCJsaW5rXCIsXG4gICAgXCJsb2duYW1lXCIsXG4gICAgXCJuaWNlXCIsXG4gICAgXCJub2h1cFwiLFxuICAgIFwibnByb2NcIixcbiAgICBcInBhdGhjaGtcIixcbiAgICBcInBpbmt5XCIsXG4gICAgXCJwcmludGVudlwiLFxuICAgIFwicHJpbnRmXCIsXG4gICAgXCJwd2RcIixcbiAgICBcInJlYWRsaW5rXCIsXG4gICAgXCJydW5jb25cIixcbiAgICBcInNlcVwiLFxuICAgIFwic2xlZXBcIixcbiAgICBcInN0YXRcIixcbiAgICBcInN0ZGJ1ZlwiLFxuICAgIFwic3R0eVwiLFxuICAgIFwidGVlXCIsXG4gICAgXCJ0ZXN0XCIsXG4gICAgXCJ0aW1lb3V0XCIsXG4gICAgLy8gXCJ0cnVlXCIsIC8vIGtleXdvcmQgbGl0ZXJhbCBhbHJlYWR5XG4gICAgXCJ0dHlcIixcbiAgICBcInVuYW1lXCIsXG4gICAgXCJ1bmxpbmtcIixcbiAgICBcInVwdGltZVwiLFxuICAgIFwidXNlcnNcIixcbiAgICBcIndob1wiLFxuICAgIFwid2hvYW1pXCIsXG4gICAgXCJ5ZXNcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0Jhc2gnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdzaCcsXG4gICAgICAnenNoJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvXFxiW2Etel1bYS16MC05Ll8tXStcXGIvLFxuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIGJ1aWx0X2luOiBbXG4gICAgICAgIC4uLlNIRUxMX0JVSUxUX0lOUyxcbiAgICAgICAgLi4uQkFTSF9CVUlMVF9JTlMsXG4gICAgICAgIC8vIFNoZWxsIG1vZGlmaWVyc1xuICAgICAgICBcInNldFwiLFxuICAgICAgICBcInNob3B0XCIsXG4gICAgICAgIC4uLlpTSF9CVUlMVF9JTlMsXG4gICAgICAgIC4uLkdOVV9DT1JFX1VUSUxTXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgS05PV05fU0hFQkFORywgLy8gdG8gY2F0Y2gga25vd24gc2hlbGxzIGFuZCBib29zdCByZWxldmFuY3lcbiAgICAgIGhsanMuU0hFQkFORygpLCAvLyB0byBjYXRjaCB1bmtub3duIHNoZWxscyBidXQgc3RpbGwgaGlnaGxpZ2h0IHRoZSBzaGViYW5nXG4gICAgICBGVU5DVElPTixcbiAgICAgIEFSSVRITUVUSUMsXG4gICAgICBDT01NRU5ULFxuICAgICAgSEVSRV9ET0MsXG4gICAgICBQQVRIX01PREUsXG4gICAgICBRVU9URV9TVFJJTkcsXG4gICAgICBFU0NBUEVEX1FVT1RFLFxuICAgICAgQVBPU19TVFJJTkcsXG4gICAgICBFU0NBUEVEX0FQT1MsXG4gICAgICBWQVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzaDtcbiIsICIvKlxuTGFuZ3VhZ2U6IEJBU0lDXG5BdXRob3I6IFJhcGhhXHUwMEVCbCBBc3NcdTAwRTluYXQgPHJhcGhAcmFwaG5ldC5uZXQ+XG5EZXNjcmlwdGlvbjogQmFzZWQgb24gdGhlIEJBU0lDIHJlZmVyZW5jZSBmcm9tIHRoZSBUYW5keSAxMDAwIGd1aWRlXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UYW5keV8xMDAwXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYmFzaWMoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcIkFCU1wiLFxuICAgIFwiQVNDXCIsXG4gICAgXCJBTkRcIixcbiAgICBcIkFUTlwiLFxuICAgIFwiQVVUT3wwXCIsXG4gICAgXCJCRUVQXCIsXG4gICAgXCJCTE9BRHwxMFwiLFxuICAgIFwiQlNBVkV8MTBcIixcbiAgICBcIkNBTExcIixcbiAgICBcIkNBTExTXCIsXG4gICAgXCJDREJMXCIsXG4gICAgXCJDSEFJTlwiLFxuICAgIFwiQ0hESVJcIixcbiAgICBcIkNIUiR8MTBcIixcbiAgICBcIkNJTlRcIixcbiAgICBcIkNJUkNMRVwiLFxuICAgIFwiQ0xFQVJcIixcbiAgICBcIkNMT1NFXCIsXG4gICAgXCJDTFNcIixcbiAgICBcIkNPTE9SXCIsXG4gICAgXCJDT01cIixcbiAgICBcIkNPTU1PTlwiLFxuICAgIFwiQ09OVFwiLFxuICAgIFwiQ09TXCIsXG4gICAgXCJDU05HXCIsXG4gICAgXCJDU1JMSU5cIixcbiAgICBcIkNWRFwiLFxuICAgIFwiQ1ZJXCIsXG4gICAgXCJDVlNcIixcbiAgICBcIkRBVEFcIixcbiAgICBcIkRBVEUkXCIsXG4gICAgXCJERUZEQkxcIixcbiAgICBcIkRFRklOVFwiLFxuICAgIFwiREVGU05HXCIsXG4gICAgXCJERUZTVFJcIixcbiAgICBcIkRFRnwwXCIsXG4gICAgXCJTRUdcIixcbiAgICBcIlVTUlwiLFxuICAgIFwiREVMRVRFXCIsXG4gICAgXCJESU1cIixcbiAgICBcIkRSQVdcIixcbiAgICBcIkVESVRcIixcbiAgICBcIkVORFwiLFxuICAgIFwiRU5WSVJPTlwiLFxuICAgIFwiRU5WSVJPTiRcIixcbiAgICBcIkVPRlwiLFxuICAgIFwiRVFWXCIsXG4gICAgXCJFUkFTRVwiLFxuICAgIFwiRVJERVZcIixcbiAgICBcIkVSREVWJFwiLFxuICAgIFwiRVJMXCIsXG4gICAgXCJFUlJcIixcbiAgICBcIkVSUk9SXCIsXG4gICAgXCJFWFBcIixcbiAgICBcIkZJRUxEXCIsXG4gICAgXCJGSUxFU1wiLFxuICAgIFwiRklYXCIsXG4gICAgXCJGT1J8MFwiLFxuICAgIFwiRlJFXCIsXG4gICAgXCJHRVRcIixcbiAgICBcIkdPU1VCfDEwXCIsXG4gICAgXCJHT1RPXCIsXG4gICAgXCJIRVgkXCIsXG4gICAgXCJJRlwiLFxuICAgIFwiVEhFTlwiLFxuICAgIFwiRUxTRXwwXCIsXG4gICAgXCJJTktFWSRcIixcbiAgICBcIklOUFwiLFxuICAgIFwiSU5QVVRcIixcbiAgICBcIklOUFVUI1wiLFxuICAgIFwiSU5QVVQkXCIsXG4gICAgXCJJTlNUUlwiLFxuICAgIFwiSU1QXCIsXG4gICAgXCJJTlRcIixcbiAgICBcIklPQ1RMXCIsXG4gICAgXCJJT0NUTCRcIixcbiAgICBcIktFWVwiLFxuICAgIFwiT05cIixcbiAgICBcIk9GRlwiLFxuICAgIFwiTElTVFwiLFxuICAgIFwiS0lMTFwiLFxuICAgIFwiTEVGVCRcIixcbiAgICBcIkxFTlwiLFxuICAgIFwiTEVUXCIsXG4gICAgXCJMSU5FXCIsXG4gICAgXCJMTElTVFwiLFxuICAgIFwiTE9BRFwiLFxuICAgIFwiTE9DXCIsXG4gICAgXCJMT0NBVEVcIixcbiAgICBcIkxPRlwiLFxuICAgIFwiTE9HXCIsXG4gICAgXCJMUFJJTlRcIixcbiAgICBcIlVTSU5HXCIsXG4gICAgXCJMU0VUXCIsXG4gICAgXCJNRVJHRVwiLFxuICAgIFwiTUlEJFwiLFxuICAgIFwiTUtESVJcIixcbiAgICBcIk1LRCRcIixcbiAgICBcIk1LSSRcIixcbiAgICBcIk1LUyRcIixcbiAgICBcIk1PRFwiLFxuICAgIFwiTkFNRVwiLFxuICAgIFwiTkVXXCIsXG4gICAgXCJORVhUXCIsXG4gICAgXCJOT0lTRVwiLFxuICAgIFwiTk9UXCIsXG4gICAgXCJPQ1QkXCIsXG4gICAgXCJPTlwiLFxuICAgIFwiT1JcIixcbiAgICBcIlBFTlwiLFxuICAgIFwiUExBWVwiLFxuICAgIFwiU1RSSUdcIixcbiAgICBcIk9QRU5cIixcbiAgICBcIk9QVElPTlwiLFxuICAgIFwiQkFTRVwiLFxuICAgIFwiT1VUXCIsXG4gICAgXCJQQUlOVFwiLFxuICAgIFwiUEFMRVRURVwiLFxuICAgIFwiUENPUFlcIixcbiAgICBcIlBFRUtcIixcbiAgICBcIlBNQVBcIixcbiAgICBcIlBPSU5UXCIsXG4gICAgXCJQT0tFXCIsXG4gICAgXCJQT1NcIixcbiAgICBcIlBSSU5UXCIsXG4gICAgXCJQUklOVF1cIixcbiAgICBcIlBTRVRcIixcbiAgICBcIlBSRVNFVFwiLFxuICAgIFwiUFVUXCIsXG4gICAgXCJSQU5ET01JWkVcIixcbiAgICBcIlJFQURcIixcbiAgICBcIlJFTVwiLFxuICAgIFwiUkVOVU1cIixcbiAgICBcIlJFU0VUfDBcIixcbiAgICBcIlJFU1RPUkVcIixcbiAgICBcIlJFU1VNRVwiLFxuICAgIFwiUkVUVVJOfDBcIixcbiAgICBcIlJJR0hUJFwiLFxuICAgIFwiUk1ESVJcIixcbiAgICBcIlJORFwiLFxuICAgIFwiUlNFVFwiLFxuICAgIFwiUlVOXCIsXG4gICAgXCJTQVZFXCIsXG4gICAgXCJTQ1JFRU5cIixcbiAgICBcIlNHTlwiLFxuICAgIFwiU0hFTExcIixcbiAgICBcIlNJTlwiLFxuICAgIFwiU09VTkRcIixcbiAgICBcIlNQQUNFJFwiLFxuICAgIFwiU1BDXCIsXG4gICAgXCJTUVJcIixcbiAgICBcIlNURVBcIixcbiAgICBcIlNUSUNLXCIsXG4gICAgXCJTVE9QXCIsXG4gICAgXCJTVFIkXCIsXG4gICAgXCJTVFJJTkckXCIsXG4gICAgXCJTV0FQXCIsXG4gICAgXCJTWVNURU1cIixcbiAgICBcIlRBQlwiLFxuICAgIFwiVEFOXCIsXG4gICAgXCJUSU1FJFwiLFxuICAgIFwiVElNRVJcIixcbiAgICBcIlRST0ZGXCIsXG4gICAgXCJUUk9OXCIsXG4gICAgXCJUT1wiLFxuICAgIFwiVVNSXCIsXG4gICAgXCJWQUxcIixcbiAgICBcIlZBUlBUUlwiLFxuICAgIFwiVkFSUFRSJFwiLFxuICAgIFwiVklFV1wiLFxuICAgIFwiV0FJVFwiLFxuICAgIFwiV0hJTEVcIixcbiAgICBcIldFTkRcIixcbiAgICBcIldJRFRIXCIsXG4gICAgXCJXSU5ET1dcIixcbiAgICBcIldSSVRFXCIsXG4gICAgXCJYT1JcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0JBU0lDJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdeXFwuJyxcbiAgICAvLyBTdXBwb3J0IGV4cGxpY2l0bHkgdHlwZWQgdmFyaWFibGVzIHRoYXQgZW5kIHdpdGggJCUhIG9yICMuXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAnW2EtekEtWl1bYS16QS1aMC05XyQlISNdKicsXG4gICAgICBrZXl3b3JkOiBLRVlXT1JEU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJ1JFTScsICckJywgeyByZWxldmFuY2U6IDEwIH0pLFxuICAgICAgaGxqcy5DT01NRU5UKCdcXCcnLCAnJCcsIHsgcmVsZXZhbmNlOiAwIH0pLFxuICAgICAge1xuICAgICAgICAvLyBNYXRjaCBsaW5lIG51bWJlcnNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdeWzAtOV0rICcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIE1hdGNoIHR5cGVkIG51bWVyaWMgY29uc3RhbnRzICgxMDAwLCAxMi4zNCEsIDEuMmU1LCAxLjUjLCAxLjJEMilcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKyk/KFtlZEVEXVxcXFxkKyk/WyNcXCFdPycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gTWF0Y2ggaGV4YWRlY2ltYWwgbnVtYmVycyAoJkh4eHh4KVxuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJygmW2hIXVswLTlhLWZBLUZdezEsNH0pJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gTWF0Y2ggb2N0YWwgbnVtYmVycyAoJk94eHh4eHgpXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnKCZbb09dWzAtN117MSw2fSknXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2ljO1xuIiwgIi8qXG5MYW5ndWFnZTogQmFja3VzXHUyMDEzTmF1ciBGb3JtXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYWNrdXNcdTIwMTNOYXVyX2Zvcm1cbkNhdGVnb3J5OiBzeW50YXhcbkF1dGhvcjogT2xlZyBFZmltb3YgPGVmaW1vdm92QGdtYWlsLmNvbT5cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBibmYoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdCYWNrdXNcdTIwMTNOYXVyIEZvcm0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBBdHRyaWJ1dGVcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46IC88LyxcbiAgICAgICAgZW5kOiAvPi9cbiAgICAgIH0sXG4gICAgICAvLyBTcGVjaWZpY1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzo6PS8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPC8sXG4gICAgICAgICAgICBlbmQ6IC8+L1xuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBibmY7XG4iLCAiLypcbkxhbmd1YWdlOiBCcmFpbmZ1Y2tcbkF1dGhvcjogRXZnZW55IFN0ZXBhbmlzY2hldiA8aW1ib2xrQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZXNvbGFuZ3Mub3JnL3dpa2kvQnJhaW5mdWNrXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYnJhaW5mdWNrKGhsanMpIHtcbiAgY29uc3QgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogL1srLV0rLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQnJhaW5mdWNrJyxcbiAgICBhbGlhc2VzOiBbICdiZicgXSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvW15cXFtcXF1cXC4sXFwrXFwtPD4gXFxyXFxuXS8sXG4gICAgICAgIC9bXFxbXFxdXFwuLFxcK1xcLTw+IFxcclxcbl0vLFxuICAgICAgICB7XG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWF0Y2g6IC9bIF0rW15cXFtcXF1cXC4sXFwrXFwtPD4gXFxyXFxuXS8sXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIGJlZ2luOiAnW1xcXFxbXFxcXF1dJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1tcXFxcLixdJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0aGlzIG1vZGUgd29ya3MgYXMgdGhlIG9ubHkgcmVsZXZhbmNlIGNvdW50ZXJcbiAgICAgICAgLy8gaXQgbG9va3MgYWhlYWQgdG8gZmluZCB0aGUgc3RhcnQgb2YgYSBydW4gb2YgbGl0ZXJhbHNcbiAgICAgICAgLy8gc28gb25seSB0aGUgcnVucyBhcmUgY291bnRlZCBhcyByZWxldmFudFxuICAgICAgICBiZWdpbjogLyg/PVxcK1xcK3wtLSkvLFxuICAgICAgICBjb250YWluczogWyBMSVRFUkFMIF1cbiAgICAgIH0sXG4gICAgICBMSVRFUkFMXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJyYWluZnVjaztcbiIsICIvKlxuTGFuZ3VhZ2U6IENcbkNhdGVnb3J5OiBjb21tb24sIHN5c3RlbVxuV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ18ocHJvZ3JhbW1pbmdfbGFuZ3VhZ2UpXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gYWRkZWQgZm9yIGhpc3RvcmljIHJlYXNvbnMgYmVjYXVzZSBgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFYCBkb2VzXG4gIC8vIG5vdCBpbmNsdWRlIHN1Y2ggc3VwcG9ydCBub3IgY2FuIHdlIGJlIHN1cmUgYWxsIHRoZSBncmFtbWFycyBkZXBlbmRpbmdcbiAgLy8gb24gaXQgd291bGQgZGVzaXJlIHRoaXMgYmVoYXZpb3JcbiAgY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLy8nLCAnJCcsIHsgY29udGFpbnM6IFsgeyBiZWdpbjogL1xcXFxcXG4vIH0gXSB9KTtcbiAgY29uc3QgREVDTFRZUEVfQVVUT19SRSA9ICdkZWNsdHlwZVxcXFwoYXV0b1xcXFwpJztcbiAgY29uc3QgTkFNRVNQQUNFX1JFID0gJ1thLXpBLVpfXVxcXFx3Kjo6JztcbiAgY29uc3QgVEVNUExBVEVfQVJHVU1FTlRfUkUgPSAnPFtePD5dKz4nO1xuICBjb25zdCBGVU5DVElPTl9UWVBFX1JFID0gJygnXG4gICAgKyBERUNMVFlQRV9BVVRPX1JFICsgJ3wnXG4gICAgKyByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpXG4gICAgKyAnW2EtekEtWl9dXFxcXHcqJyArIHJlZ2V4Lm9wdGlvbmFsKFRFTVBMQVRFX0FSR1VNRU5UX1JFKVxuICArICcpJztcblxuXG4gIGNvbnN0IFRZUEVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXGJbYS16XFxcXGRfXSpfdFxcXFxiJyB9LFxuICAgICAgeyBtYXRjaDogL1xcYmF0b21pY19bYS16XXszLDZ9XFxiLyB9XG4gICAgXVxuXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2xhbmd1YWdlL2VzY2FwZVxuICAvLyBcXFxcIFxceCBcXHhGRiBcXHUyODM3IFxcdTAwMzIzNzQ3IFxcMzc0XG4gIGNvbnN0IENIQVJBQ1RFUl9FU0NBUEVTID0gJ1xcXFxcXFxcKHhbMC05QS1GYS1mXXsyfXx1WzAtOUEtRmEtZl17NCw4fXxbMC03XXszfXxcXFxcUyknO1xuICBjb25zdCBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcodTg/fFV8TCk/XCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyh1OD98VXxMKT9cXCcoJyArIENIQVJBQ1RFUl9FU0NBUEVTICsgXCJ8LilcIixcbiAgICAgICAgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9LFxuICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgIGJlZ2luOiAvKD86dTg/fFV8TCk/UlwiKFteKClcXFxcIF17MCwxNn0pXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpKFteKClcXFxcIF17MCwxNn0pXCIvXG4gICAgICB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKChsbHxMTHxsfEwpKHV8VSk/fCh1fFUpKGxsfExMfGx8TCk/fGZ8RnxifEIpJyB9LFxuICAgICAgeyBiZWdpbjogJygtPykoXFxcXGIwW3hYXVthLWZBLUYwLTlcXCddK3woXFxcXGJbXFxcXGRcXCddKyhcXFxcLltcXFxcZFxcJ10qKT98XFxcXC5bXFxcXGRcXCddKykoW2VFXVstK10/W1xcXFxkXFwnXSspPyknIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBSRVBST0NFU1NPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNcXHMqW2Etel0rXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAnaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgJ1xuICAgICAgICArICdwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgZWxpZmRlZiBlbGlmbmRlZiBpbmNsdWRlJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChTVFJJTkdTLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvPC4qPz4vXG4gICAgICB9LFxuICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgVElUTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSkgKyBobGpzLklERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX1RJVExFID0gcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKSArIGhsanMuSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnO1xuXG4gIGNvbnN0IENfS0VZV09SRFMgPSBbXG4gICAgXCJhc21cIixcbiAgICBcImF1dG9cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVudW1cIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3J0cmFuXCIsXG4gICAgXCJnb3RvXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2l6ZW9mXCIsXG4gICAgXCJ0eXBlb2ZcIixcbiAgICBcInR5cGVvZl91bnF1YWxcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwic3dpdGNoXCIsXG4gICAgXCJ0eXBlZGVmXCIsXG4gICAgXCJ1bmlvblwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJfQWxpZ25hc1wiLFxuICAgIFwiX0FsaWdub2ZcIixcbiAgICBcIl9BdG9taWNcIixcbiAgICBcIl9HZW5lcmljXCIsXG4gICAgXCJfTm9yZXR1cm5cIixcbiAgICBcIl9TdGF0aWNfYXNzZXJ0XCIsXG4gICAgXCJfVGhyZWFkX2xvY2FsXCIsXG4gICAgLy8gYWxpYXNlc1xuICAgIFwiYWxpZ25hc1wiLFxuICAgIFwiYWxpZ25vZlwiLFxuICAgIFwibm9yZXR1cm5cIixcbiAgICBcInN0YXRpY19hc3NlcnRcIixcbiAgICBcInRocmVhZF9sb2NhbFwiLFxuICAgIC8vIG5vdCBhIEMga2V5d29yZCBidXQgaXMsIGZvciBhbGwgaW50ZW50cyBhbmQgcHVycG9zZXMsIHRyZWF0ZWQgZXhhY3RseSBsaWtlIG9uZS5cbiAgICBcIl9QcmFnbWFcIlxuICBdO1xuXG4gIGNvbnN0IENfVFlQRVMgPSBbXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJzaWduZWRcIixcbiAgICBcInVuc2lnbmVkXCIsXG4gICAgXCJpbnRcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJfQm9vbFwiLFxuICAgIFwiX0JpdEludFwiLFxuICAgIFwiX0NvbXBsZXhcIixcbiAgICBcIl9JbWFnaW5hcnlcIixcbiAgICBcIl9EZWNpbWFsMzJcIixcbiAgICBcIl9EZWNpbWFsNjRcIixcbiAgICBcIl9EZWNpbWFsOTZcIixcbiAgICBcIl9EZWNpbWFsMTI4XCIsXG4gICAgXCJfRGVjaW1hbDY0eFwiLFxuICAgIFwiX0RlY2ltYWwxMjh4XCIsXG4gICAgXCJfRmxvYXQxNlwiLFxuICAgIFwiX0Zsb2F0MzJcIixcbiAgICBcIl9GbG9hdDY0XCIsXG4gICAgXCJfRmxvYXQxMjhcIixcbiAgICBcIl9GbG9hdDMyeFwiLFxuICAgIFwiX0Zsb2F0NjR4XCIsXG4gICAgXCJfRmxvYXQxMjh4XCIsXG4gICAgLy8gbW9kaWZpZXJzXG4gICAgXCJjb25zdFwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJjb25zdGV4cHJcIixcbiAgICAvLyBhbGlhc2VzXG4gICAgXCJjb21wbGV4XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJpbWFnaW5hcnlcIlxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6IENfS0VZV09SRFMsXG4gICAgdHlwZTogQ19UWVBFUyxcbiAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBOVUxMJyxcbiAgICAvLyBUT0RPOiBhcHBseSBoaW50aW5nIHdvcmsgc2ltaWxhciB0byB3aGF0IHdhcyBkb25lIGluIGNwcC5qc1xuICAgIGJ1aWx0X2luOiAnc3RkIHN0cmluZyB3c3RyaW5nIGNpbiBjb3V0IGNlcnIgY2xvZyBzdGRpbiBzdGRvdXQgc3RkZXJyIHN0cmluZ3N0cmVhbSBpc3RyaW5nc3RyZWFtIG9zdHJpbmdzdHJlYW0gJ1xuICAgICAgKyAnYXV0b19wdHIgZGVxdWUgbGlzdCBxdWV1ZSBzdGFjayB2ZWN0b3IgbWFwIHNldCBwYWlyIGJpdHNldCBtdWx0aXNldCBtdWx0aW1hcCB1bm9yZGVyZWRfc2V0ICdcbiAgICAgICsgJ3Vub3JkZXJlZF9tYXAgdW5vcmRlcmVkX211bHRpc2V0IHVub3JkZXJlZF9tdWx0aW1hcCBwcmlvcml0eV9xdWV1ZSBtYWtlX3BhaXIgYXJyYXkgc2hhcmVkX3B0ciBhYm9ydCB0ZXJtaW5hdGUgYWJzIGFjb3MgJ1xuICAgICAgKyAnYXNpbiBhdGFuMiBhdGFuIGNhbGxvYyBjZWlsIGNvc2ggY29zIGV4aXQgZXhwIGZhYnMgZmxvb3IgZm1vZCBmcHJpbnRmIGZwdXRzIGZyZWUgZnJleHAgJ1xuICAgICAgKyAnZnNjYW5mIGZ1dHVyZSBpc2FsbnVtIGlzYWxwaGEgaXNjbnRybCBpc2RpZ2l0IGlzZ3JhcGggaXNsb3dlciBpc3ByaW50IGlzcHVuY3QgaXNzcGFjZSBpc3VwcGVyICdcbiAgICAgICsgJ2lzeGRpZ2l0IHRvbG93ZXIgdG91cHBlciBsYWJzIGxkZXhwIGxvZzEwIGxvZyBtYWxsb2MgcmVhbGxvYyBtZW1jaHIgbWVtY21wIG1lbWNweSBtZW1zZXQgbW9kZiBwb3cgJ1xuICAgICAgKyAncHJpbnRmIHB1dGNoYXIgcHV0cyBzY2FuZiBzaW5oIHNpbiBzbnByaW50ZiBzcHJpbnRmIHNxcnQgc3NjYW5mIHN0cmNhdCBzdHJjaHIgc3RyY21wICdcbiAgICAgICsgJ3N0cmNweSBzdHJjc3BuIHN0cmxlbiBzdHJuY2F0IHN0cm5jbXAgc3RybmNweSBzdHJwYnJrIHN0cnJjaHIgc3Ryc3BuIHN0cnN0ciB0YW5oIHRhbiAnXG4gICAgICArICd2ZnByaW50ZiB2cHJpbnRmIHZzcHJpbnRmIGVuZGwgaW5pdGlhbGl6ZXJfbGlzdCB1bmlxdWVfcHRyJyxcbiAgfTtcblxuICBjb25zdCBFWFBSRVNTSU9OX0NPTlRBSU5TID0gW1xuICAgIFBSRVBST0NFU1NPUixcbiAgICBUWVBFUyxcbiAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgTlVNQkVSUyxcbiAgICBTVFJJTkdTXG4gIF07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05URVhUID0ge1xuICAgIC8vIFRoaXMgbW9kZSBjb3ZlcnMgZXhwcmVzc2lvbiBjb250ZXh0IHdoZXJlIHdlIGNhbid0IGV4cGVjdCBhIGZ1bmN0aW9uXG4gICAgLy8gZGVmaW5pdGlvbiBhbmQgc2hvdWxkbid0IGhpZ2hsaWdodCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2Ugb25lOlxuICAgIC8vIGByZXR1cm4gc29tZSgpYCwgYGVsc2UgaWYoKWAsIGAoeCpzdW0oMSwgMikpYFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgIGVuZDogLzsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcgdGhyb3cgcmV0dXJuIGVsc2UnLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfVxuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OX0NPTlRBSU5TLmNvbmNhdChbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoWyAnc2VsZicgXSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0pLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFQ0xBUkFUSU9OID0ge1xuICAgIGJlZ2luOiAnKCcgKyBGVU5DVElPTl9UWVBFX1JFICsgJ1tcXFxcKiZcXFxcc10rKSsnICsgRlVOQ1RJT05fVElUTEUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgZW5kOiAvW3s7PV0vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC9bXlxcd1xcc1xcKiY6PD4uXS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8gdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGNvbmZ1c2VkIGFzIHRoZSBmdW5jdGlvbiB0aXRsZVxuICAgICAgICBiZWdpbjogREVDTFRZUEVfQVVUT19SRSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBGVU5DVElPTl9USVRMRSxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuaW5oZXJpdChUSVRMRV9NT0RFLCB7IGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiIH0pIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIGFsbG93IGZvciBtdWx0aXBsZSBkZWNsYXJhdGlvbnMsIGUuZy46XG4gICAgICAvLyBleHRlcm4gdm9pZCBmKGludCksIGcoY2hhcik7XG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgbWF0Y2g6IC8sL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgIFRZUEVTLFxuICAgICAgICAgIC8vIENvdW50IG1hdGNoaW5nIHBhcmVudGhlc2VzLlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIFRZUEVTXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgVFlQRVMsXG4gICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIFBSRVBST0NFU1NPUlxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiQ1wiLFxuICAgIGFsaWFzZXM6IFsgJ2gnIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIC8vIFVudGlsIGRpZmZlcmVudGlhdGlvbnMgYXJlIGFkZGVkIGJldHdlZW4gYGNgIGFuZCBgY3BwYCwgYGNgIHdpbGxcbiAgICAvLyBub3QgYmUgYXV0by1kZXRlY3RlZCB0byBhdm9pZCBhdXRvLWRldGVjdCBjb25mbGljdHMgYmV0d2VlbiBDIGFuZCBDKytcbiAgICBkaXNhYmxlQXV0b2RldGVjdDogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXS5jb25jYXQoXG4gICAgICBFWFBSRVNTSU9OX0NPTlRFWFQsXG4gICAgICBGVU5DVElPTl9ERUNMQVJBVElPTixcbiAgICAgIEVYUFJFU1NJT05fQ09OVEFJTlMsXG4gICAgICBbXG4gICAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgICBiZWdpbktleXdvcmRzOiAnZW51bSBjbGFzcyBzdHJ1Y3QgdW5pb24nLFxuICAgICAgICAgIGVuZDogL1t7Ozo8Pj1dLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgeyBiZWdpbktleXdvcmRzOiBcImZpbmFsIGNsYXNzIHN0cnVjdFwiIH0sXG4gICAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0pLFxuICAgIGV4cG9ydHM6IHtcbiAgICAgIHByZXByb2Nlc3NvcjogUFJFUFJPQ0VTU09SLFxuICAgICAgc3RyaW5nczogU1RSSU5HUyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjO1xuIiwgIi8qXG5MYW5ndWFnZTogQy9BTFxuQXV0aG9yOiBLZW5uZXRoIEZ1Z2xzYW5nIENocmlzdGVuc2VuIDxrZnVnbHNhbmdAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFByb3ZpZGVzIGhpZ2hsaWdodGluZyBvZiBNaWNyb3NvZnQgRHluYW1pY3MgTkFWIEMvQUwgY29kZSBmaWxlc1xuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvZHluYW1pY3MtbmF2L3Byb2dyYW1taW5nLWluLWMtYWxcbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY2FsKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImRpdlwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJpblwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJvclwiLFxuICAgIFwibm90XCIsXG4gICAgXCJ4b3JcIixcbiAgICBcImFzc2VydGVycm9yXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZG9cIixcbiAgICBcImRvd250b1wiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJpZlwiLFxuICAgIFwib2ZcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICBcInVudGlsXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwidmFyXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSAnZmFsc2UgdHJ1ZSc7XG4gIGNvbnN0IENPTU1FTlRfTU9ERVMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgIC9cXHsvLFxuICAgICAgL1xcfS8sXG4gICAgICB7IHJlbGV2YW5jZTogMCB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFwoXFwqLyxcbiAgICAgIC9cXCpcXCkvLFxuICAgICAgeyByZWxldmFuY2U6IDEwIH1cbiAgICApXG4gIF07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJy8sXG4gICAgZW5kOiAvJy8sXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgfTtcbiAgY29uc3QgQ0hBUl9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLygjXFxkKykrL1xuICB9O1xuICBjb25zdCBEQVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKyk/KERUfER8VCknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBEQkxfUVVPVEVEX1ZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsIC8vIG5vdCBhIHN0cmluZyB0ZWNobmljYWxseSBidXQgbWFrZXMgc2Vuc2UgdG8gYmUgaGlnaGxpZ2h0ZWQgaW4gdGhlIHNhbWUgc3R5bGVcbiAgICBiZWdpbjogJ1wiJyxcbiAgICBlbmQ6ICdcIidcbiAgfTtcblxuICBjb25zdCBQUk9DRURVUkUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9wcm9jZWR1cmUvLFxuICAgICAgL1xccysvLFxuICAgICAgL1thLXpBLVpfXVtcXHdAXSovLFxuICAgICAgL1xccyovXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICBDSEFSX1NUUklORyxcbiAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAuLi5DT01NRU5UX01PREVTXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE9CSkVDVF9UWVBFUyA9IFtcbiAgICBcIlRhYmxlXCIsXG4gICAgXCJGb3JtXCIsXG4gICAgXCJSZXBvcnRcIixcbiAgICBcIkRhdGFwb3J0XCIsXG4gICAgXCJDb2RldW5pdFwiLFxuICAgIFwiWE1McG9ydFwiLFxuICAgIFwiTWVudVN1aXRlXCIsXG4gICAgXCJQYWdlXCIsXG4gICAgXCJRdWVyeVwiXG4gIF07XG4gIGNvbnN0IE9CSkVDVCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL09CSkVDVC8sXG4gICAgICAvXFxzKy8sXG4gICAgICByZWdleC5laXRoZXIoLi4uT0JKRUNUX1RZUEVTKSxcbiAgICAgIC9cXHMrLyxcbiAgICAgIC9cXGQrLyxcbiAgICAgIC9cXHMrKD89W15cXHNdKS8sXG4gICAgICAvLiovLFxuICAgICAgLyQvXG4gICAgXSxcbiAgICByZWxldmFuY2U6IDMsXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0eXBlXCIsXG4gICAgICA1OiBcIm51bWJlclwiLFxuICAgICAgNzogXCJ0aXRsZVwiXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZID0ge1xuICAgIG1hdGNoOiAvW1xcd10rKD89XFw9KS8sXG4gICAgc2NvcGU6IFwiYXR0cmlidXRlXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQy9BTCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBST1BFUlRZLFxuICAgICAgU1RSSU5HLFxuICAgICAgQ0hBUl9TVFJJTkcsXG4gICAgICBEQVRFLFxuICAgICAgREJMX1FVT1RFRF9WQVJJQUJMRSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBPQkpFQ1QsXG4gICAgICBQUk9DRURVUkVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2FsO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2FwXHUyMDE5biBQcm90b1xuQXV0aG9yOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IENhcFx1MjAxOW4gUHJvdG8gbWVzc2FnZSBkZWZpbml0aW9uIGZvcm1hdFxuV2Vic2l0ZTogaHR0cHM6Ly9jYXBucHJvdG8ub3JnL2NhcG5wLXRvb2wuaHRtbFxuQ2F0ZWdvcnk6IHByb3RvY29sc1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNhcG5wcm90byhobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwic3RydWN0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJncm91cFwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJ1c2luZ1wiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImFubm90YXRpb25cIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcImluXCIsXG4gICAgXCJvZlwiLFxuICAgIFwib25cIixcbiAgICBcImFzXCIsXG4gICAgXCJ3aXRoXCIsXG4gICAgXCJmcm9tXCIsXG4gICAgXCJmaXhlZFwiXG4gIF07XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiVm9pZFwiLFxuICAgIFwiQm9vbFwiLFxuICAgIFwiSW50OFwiLFxuICAgIFwiSW50MTZcIixcbiAgICBcIkludDMyXCIsXG4gICAgXCJJbnQ2NFwiLFxuICAgIFwiVUludDhcIixcbiAgICBcIlVJbnQxNlwiLFxuICAgIFwiVUludDMyXCIsXG4gICAgXCJVSW50NjRcIixcbiAgICBcIkZsb2F0MzJcIixcbiAgICBcIkZsb2F0NjRcIixcbiAgICBcIlRleHRcIixcbiAgICBcIkRhdGFcIixcbiAgICBcIkFueVBvaW50ZXJcIixcbiAgICBcIkFueVN0cnVjdFwiLFxuICAgIFwiQ2FwYWJpbGl0eVwiLFxuICAgIFwiTGlzdFwiXG4gIF07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIlxuICBdO1xuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC8oc3RydWN0fGVudW18aW50ZXJmYWNlKS8sXG4gICAgICAgIC9cXHMrLyxcbiAgICAgICAgaGxqcy5JREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvZXh0ZW5kcy8sXG4gICAgICAgIC9cXHMqXFwoLyxcbiAgICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICAgICAgL1xccypcXCkvXG4gICAgICBdIH1cbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2FwXHUyMDE5biBQcm90bycsXG4gICAgYWxpYXNlczogWyAnY2FwbnAnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvQDB4W1xcd1xcZF17MTZ9Oy8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL0BcXGQrXFxiL1xuICAgICAgfSxcbiAgICAgIENMQVNTX0RFRklOSVRJT05cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2FwbnByb3RvO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2V5bG9uXG5BdXRob3I6IEx1Y2FzIFdlcmttZWlzdGVyIDxtYWlsQGx1Y2Fzd2Vya21laXN0ZXIuZGU+XG5XZWJzaXRlOiBodHRwczovL2NleWxvbi1sYW5nLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNleWxvbihobGpzKSB7XG4gIC8vIDIuMy4gSWRlbnRpZmllcnMgYW5kIGtleXdvcmRzXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYXNzZW1ibHlcIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwib2JqZWN0XCIsXG4gICAgXCJnaXZlblwiLFxuICAgIFwidmFsdWVcIixcbiAgICBcImFzc2lnblwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcIm5ld1wiLFxuICAgIFwib2ZcIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcInNhdGlzZmllc1wiLFxuICAgIFwiYWJzdHJhY3RzXCIsXG4gICAgXCJpblwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcImFzc2VydFwiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJvdXRlclwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcImlzXCIsXG4gICAgXCJleGlzdHNcIixcbiAgICBcIm5vbmVtcHR5XCJcbiAgXTtcbiAgLy8gNy40LjEgRGVjbGFyYXRpb24gTW9kaWZpZXJzXG4gIGNvbnN0IERFQ0xBUkFUSU9OX01PRElGSUVSUyA9IFtcbiAgICBcInNoYXJlZFwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImZvcm1hbFwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiYWN0dWFsXCIsXG4gICAgXCJ2YXJpYWJsZVwiLFxuICAgIFwibGF0ZVwiLFxuICAgIFwibmF0aXZlXCIsXG4gICAgXCJkZXByZWNhdGVkXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwic2VhbGVkXCIsXG4gICAgXCJhbm5vdGF0aW9uXCIsXG4gICAgXCJzdXBwcmVzc1dhcm5pbmdzXCIsXG4gICAgXCJzbWFsbFwiXG4gIF07XG4gIC8vIDcuNC4yIERvY3VtZW50YXRpb25cbiAgY29uc3QgRE9DVU1FTlRBVElPTiA9IFtcbiAgICBcImRvY1wiLFxuICAgIFwiYnlcIixcbiAgICBcImxpY2Vuc2VcIixcbiAgICBcInNlZVwiLFxuICAgIFwidGhyb3dzXCIsXG4gICAgXCJ0YWdnZWRcIlxuICBdO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgYmVnaW46IC9gYC8sXG4gICAgZW5kOiAvYGAvLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG4gIGNvbnN0IEVYUFJFU1NJT05TID0gW1xuICAgIHtcbiAgICAgIC8vIHZlcmJhdGltIHN0cmluZ1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgIGVuZDogJ1wiXCJcIicsXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBzdHJpbmcgbGl0ZXJhbCBvciB0ZW1wbGF0ZVxuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgZW5kOiAnXCInLFxuICAgICAgY29udGFpbnM6IFsgU1VCU1QgXVxuICAgIH0sXG4gICAge1xuICAgICAgLy8gY2hhcmFjdGVyIGxpdGVyYWxcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBiZWdpbjogXCInXCIsXG4gICAgICBlbmQ6IFwiJ1wiXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBudW1lcmljIGxpdGVyYWxcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyNbMC05YS1mQS1GX10rfFxcXFwkWzAxX10rfFswLTlfXSsoPzpcXFxcLlswLTlfXSg/OltlRV1bKy1dP1xcXFxkKyk/KT9ba01HVFBtdW5wZl0/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDZXlsb24nLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUy5jb25jYXQoREVDTEFSQVRJT05fTU9ESUZJRVJTKSxcbiAgICAgIG1ldGE6IERPQ1VNRU5UQVRJT05cbiAgICB9LFxuICAgIGlsbGVnYWw6ICdcXFxcJFteMDFdfCNbXjAtOWEtZkEtRl0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nLCB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH0pLFxuICAgICAge1xuICAgICAgICAvLyBjb21waWxlciBhbm5vdGF0aW9uXG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbYS16XVxcXFx3Kig/OjpcIlteXCJdKlwiKT8nXG4gICAgICB9XG4gICAgXS5jb25jYXQoRVhQUkVTU0lPTlMpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2V5bG9uO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2xlYW5cbkF1dGhvcjogQ2FtaWwgU3RhcHMgPGluZm9AY2FtaWxzdGFwcy5ubD5cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5XZWJzaXRlOiBodHRwOi8vY2xlYW4uY3MucnUubmxcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjbGVhbihobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiaWZcIixcbiAgICBcImxldFwiLFxuICAgIFwiaW5cIixcbiAgICBcIndpdGhcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJvZlwiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImluc3RhbmNlXCIsXG4gICAgXCJvdGhlcndpc2VcIixcbiAgICBcImltcGxlbWVudGF0aW9uXCIsXG4gICAgXCJkZWZpbml0aW9uXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJxdWFsaWZpZWRcIixcbiAgICBcImFzXCIsXG4gICAgXCJzcGVjaWFsXCIsXG4gICAgXCJjb2RlXCIsXG4gICAgXCJpbmxpbmVcIixcbiAgICBcImZvcmVpZ25cIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwiY2NhbGxcIixcbiAgICBcInN0ZGNhbGxcIixcbiAgICBcImdlbmVyaWNcIixcbiAgICBcImRlcml2ZVwiLFxuICAgIFwiaW5maXhcIixcbiAgICBcImluZml4bFwiLFxuICAgIFwiaW5maXhyXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2xlYW4nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdpY2wnLFxuICAgICAgJ2RjbCdcbiAgICBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnSW50IFJlYWwgQ2hhciBCb29sJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdUcnVlIEZhbHNlJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgeyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgICBiZWdpbjogJy0+fDwtW3w6XT98IyE/fD4+PXxcXFxce1xcXFx8fFxcXFx8XFxcXH18Oj09fD06fDw+JyB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsZWFuO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2xvanVyZVxuRGVzY3JpcHRpb246IENsb2p1cmUgc3ludGF4IChiYXNlZCBvbiBsaXNwLmpzKVxuQXV0aG9yOiBtZm9ybm9zXG5XZWJzaXRlOiBodHRwczovL2Nsb2p1cmUub3JnXG5DYXRlZ29yeTogbGlzcFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNsb2p1cmUoaGxqcykge1xuICBjb25zdCBTWU1CT0xTVEFSVCA9ICdhLXpBLVpfXFxcXC0hLj8rKj08PiZcXCcnO1xuICBjb25zdCBTWU1CT0xfUkUgPSAnWyNdP1snICsgU1lNQk9MU1RBUlQgKyAnXVsnICsgU1lNQk9MU1RBUlQgKyAnMC05Lzs6JCNdKic7XG4gIGNvbnN0IGdsb2JhbHMgPSAnZGVmIGRlZm9uY2UgZGVmcHJvdG9jb2wgZGVmc3RydWN0IGRlZm11bHRpIGRlZm1ldGhvZCBkZWZuLSBkZWZuIGRlZm1hY3JvIGRlZnR5cGUgZGVmcmVjb3JkJztcbiAgY29uc3Qga2V5d29yZHMgPSB7XG4gICAgJHBhdHRlcm46IFNZTUJPTF9SRSxcbiAgICBidWlsdF9pbjpcbiAgICAgIC8vIENsb2p1cmUga2V5d29yZHNcbiAgICAgIGdsb2JhbHMgKyAnICdcbiAgICAgICsgJ2NvbmQgYXBwbHkgaWYtbm90IGlmLWxldCBpZiBub3Qgbm90PSA9fDAgPHwwID58MCA8PXwwID49fDAgPT18MCArfDAgL3wwICp8MCAtfDAgcmVtICdcbiAgICAgICsgJ3F1b3QgbmVnPyBwb3M/IGRlbGF5PyBzeW1ib2w/IGtleXdvcmQ/IHRydWU/IGZhbHNlPyBpbnRlZ2VyPyBlbXB0eT8gY29sbD8gbGlzdD8gJ1xuICAgICAgKyAnc2V0PyBpZm4/IGZuPyBhc3NvY2lhdGl2ZT8gc2VxdWVudGlhbD8gc29ydGVkPyBjb3VudGVkPyByZXZlcnNpYmxlPyBudW1iZXI/IGRlY2ltYWw/ICdcbiAgICAgICsgJ2NsYXNzPyBkaXN0aW5jdD8gaXNhPyBmbG9hdD8gcmF0aW9uYWw/IHJlZHVjZWQ/IHJhdGlvPyBvZGQ/IGV2ZW4/IGNoYXI/IHNlcT8gdmVjdG9yPyAnXG4gICAgICArICdzdHJpbmc/IG1hcD8gbmlsPyBjb250YWlucz8gemVybz8gaW5zdGFuY2U/IG5vdC1ldmVyeT8gbm90LWFueT8gbGlic3BlYz8gLT4gLT4+IC4uIC4gJ1xuICAgICAgKyAnaW5jIGNvbXBhcmUgZG8gZG90aW1lcyBtYXBjYXQgdGFrZSByZW1vdmUgdGFrZS13aGlsZSBkcm9wIGxldGZuIGRyb3AtbGFzdCB0YWtlLWxhc3QgJ1xuICAgICAgKyAnZHJvcC13aGlsZSB3aGlsZSBpbnRlcm4gY29uZHAgY2FzZSByZWR1Y2VkIGN5Y2xlIHNwbGl0LWF0IHNwbGl0LXdpdGggcmVwZWF0IHJlcGxpY2F0ZSAnXG4gICAgICArICdpdGVyYXRlIHJhbmdlIG1lcmdlIHppcG1hcCBkZWNsYXJlIGxpbmUtc2VxIHNvcnQgY29tcGFyYXRvciBzb3J0LWJ5IGRvcnVuIGRvYWxsIG50aG5leHQgJ1xuICAgICAgKyAnbnRocmVzdCBwYXJ0aXRpb24gZXZhbCBkb3NlcSBhd2FpdCBhd2FpdC1mb3IgbGV0IGFnZW50IGF0b20gc2VuZCBzZW5kLW9mZiByZWxlYXNlLXBlbmRpbmctc2VuZHMgJ1xuICAgICAgKyAnYWRkLXdhdGNoIG1hcHYgZmlsdGVydiByZW1vdmUtd2F0Y2ggYWdlbnQtZXJyb3IgcmVzdGFydC1hZ2VudCBzZXQtZXJyb3ItaGFuZGxlciBlcnJvci1oYW5kbGVyICdcbiAgICAgICsgJ3NldC1lcnJvci1tb2RlISBlcnJvci1tb2RlIHNodXRkb3duLWFnZW50cyBxdW90ZSB2YXIgZm4gbG9vcCByZWN1ciB0aHJvdyB0cnkgbW9uaXRvci1lbnRlciAnXG4gICAgICArICdtb25pdG9yLWV4aXQgbWFjcm9leHBhbmQgbWFjcm9leHBhbmQtMSBmb3IgZG9zeW5jIGFuZCBvciAnXG4gICAgICArICd3aGVuIHdoZW4tbm90IHdoZW4tbGV0IGNvbXAganV4dCBwYXJ0aWFsIHNlcXVlbmNlIG1lbW9pemUgY29uc3RhbnRseSBjb21wbGVtZW50IGlkZW50aXR5IGFzc2VydCAnXG4gICAgICArICdwZWVrIHBvcCBkb3RvIHByb3h5IGZpcnN0IHJlc3QgY29ucyBjYXN0IGNvbGwgbGFzdCBidXRsYXN0ICdcbiAgICAgICsgJ3NpZ3MgcmVpZnkgc2Vjb25kIGZmaXJzdCBmbmV4dCBuZmlyc3Qgbm5leHQgbWV0YSB3aXRoLW1ldGEgbnMgaW4tbnMgY3JlYXRlLW5zIGltcG9ydCAnXG4gICAgICArICdyZWZlciBrZXlzIHNlbGVjdC1rZXlzIHZhbHMga2V5IHZhbCByc2VxIG5hbWUgbmFtZXNwYWNlIHByb21pc2UgaW50byB0cmFuc2llbnQgcGVyc2lzdGVudCEgY29uaiEgJ1xuICAgICAgKyAnYXNzb2MhIGRpc3NvYyEgcG9wISBkaXNqISB1c2UgY2xhc3MgdHlwZSBudW0gZmxvYXQgZG91YmxlIHNob3J0IGJ5dGUgYm9vbGVhbiBiaWdpbnQgYmlnaW50ZWdlciAnXG4gICAgICArICdiaWdkZWMgcHJpbnQtbWV0aG9kIHByaW50LWR1cCB0aHJvdy1pZiBwcmludGYgZm9ybWF0IGxvYWQgY29tcGlsZSBnZXQtaW4gdXBkYXRlLWluIHByIHByLW9uIG5ld2xpbmUgJ1xuICAgICAgKyAnZmx1c2ggcmVhZCBzbHVycCByZWFkLWxpbmUgc3VidmVjIHdpdGgtb3BlbiBtZW1mbiB0aW1lIHJlLWZpbmQgcmUtZ3JvdXBzIHJhbmQtaW50IHJhbmQgbW9kIGxvY2tpbmcgJ1xuICAgICAgKyAnYXNzZXJ0LXZhbGlkLWZkZWNsIGFsaWFzIHJlc29sdmUgcmVmIGRlcmVmIHJlZnNldCBzd2FwISByZXNldCEgc2V0LXZhbGlkYXRvciEgY29tcGFyZS1hbmQtc2V0ISBhbHRlci1tZXRhISAnXG4gICAgICArICdyZXNldC1tZXRhISBjb21tdXRlIGdldC12YWxpZGF0b3IgYWx0ZXIgcmVmLXNldCByZWYtaGlzdG9yeS1jb3VudCByZWYtbWluLWhpc3RvcnkgcmVmLW1heC1oaXN0b3J5IGVuc3VyZSBzeW5jIGlvISAnXG4gICAgICArICduZXcgbmV4dCBjb25qIHNldCEgdG8tYXJyYXkgZnV0dXJlIGZ1dHVyZS1jYWxsIGludG8tYXJyYXkgYXNldCBnZW4tY2xhc3MgcmVkdWNlIG1hcCBmaWx0ZXIgZmluZCBlbXB0eSAnXG4gICAgICArICdoYXNoLW1hcCBoYXNoLXNldCBzb3J0ZWQtbWFwIHNvcnRlZC1tYXAtYnkgc29ydGVkLXNldCBzb3J0ZWQtc2V0LWJ5IHZlYyB2ZWN0b3Igc2VxIGZsYXR0ZW4gcmV2ZXJzZSBhc3NvYyBkaXNzb2MgbGlzdCAnXG4gICAgICArICdkaXNqIGdldCB1bmlvbiBkaWZmZXJlbmNlIGludGVyc2VjdGlvbiBleHRlbmQgZXh0ZW5kLXR5cGUgZXh0ZW5kLXByb3RvY29sIGludCBudGggZGVsYXkgY291bnQgY29uY2F0IGNodW5rIGNodW5rLWJ1ZmZlciAnXG4gICAgICArICdjaHVuay1hcHBlbmQgY2h1bmstZmlyc3QgY2h1bmstcmVzdCBtYXggbWluIGRlYyB1bmNoZWNrZWQtaW5jLWludCB1bmNoZWNrZWQtaW5jIHVuY2hlY2tlZC1kZWMtaW5jIHVuY2hlY2tlZC1kZWMgdW5jaGVja2VkLW5lZ2F0ZSAnXG4gICAgICArICd1bmNoZWNrZWQtYWRkLWludCB1bmNoZWNrZWQtYWRkIHVuY2hlY2tlZC1zdWJ0cmFjdC1pbnQgdW5jaGVja2VkLXN1YnRyYWN0IGNodW5rLW5leHQgY2h1bmstY29ucyBjaHVua2VkLXNlcT8gcHJuIHZhcnktbWV0YSAnXG4gICAgICArICdsYXp5LXNlcSBzcHJlYWQgbGlzdCogc3RyIGZpbmQta2V5d29yZCBrZXl3b3JkIHN5bWJvbCBnZW5zeW0gZm9yY2UgcmF0aW9uYWxpemUnXG4gIH07XG5cbiAgY29uc3QgU1lNQk9MID0ge1xuICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBzY29wZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiAvWy0rXT8wW3hYXVswLTlhLWZBLUZdK04/LyB9LCAvLyBoZXhhZGVjaW1hbCAgICAgICAgICAgICAgICAgLy8gMHgyYVxuICAgICAgeyBtYXRjaDogL1stK10/MFswLTddK04/LyB9LCAvLyBvY3RhbCAgICAgICAgICAgICAgICAgICAgICAgLy8gMDUyXG4gICAgICB7IG1hdGNoOiAvWy0rXT9bMS05XVswLTldP1tyUl1bMC05YS16QS1aXStOPy8gfSwgLy8gdmFyaWFibGUgcmFkaXggZnJvbSAyIHRvIDM2IC8vIDJyMTAxMDEwLCA4cjUyLCAzNnIxNlxuICAgICAgeyBtYXRjaDogL1stK10/WzAtOV0rXFwvWzAtOV0rTj8vIH0sIC8vIHJhdGlvICAgICAgICAgICAgICAgICAgICAgICAvLyAxLzJcbiAgICAgIHsgbWF0Y2g6IC9bLStdP1swLTldKygoXFwuWzAtOV0qKFtlRV1bKy1dP1swLTldKyk/TT8pfChbZUVdWystXT9bMC05XStNP3xNKSkvIH0sIC8vIGZsb2F0ICAgICAgICAvLyAwLjQyIDQuMkUtMU0gNDJFMSA0Mk1cbiAgICAgIHsgbWF0Y2g6IC9bLStdPyhbMS05XVswLTldKnwwKU4/LyB9LCAvLyBpbnQgKGRvbid0IG1hdGNoIGxlYWRpbmcgMCkgLy8gNDIgNDJOXG4gICAgXVxuICB9O1xuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgc2NvcGU6ICdjaGFyYWN0ZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiAvXFxcXG9bMC0zXT9bMC03XXsxLDJ9LyB9LCAvLyBVbmljb2RlIE9jdGFsIDAgLSAzNzdcbiAgICAgIHsgbWF0Y2g6IC9cXFxcdVswLTlhLWZBLUZdezR9LyB9LCAvLyBVbmljb2RlIEhleCAwMDAwIC0gRkZGRlxuICAgICAgeyBtYXRjaDogL1xcXFwobmV3bGluZXxzcGFjZXx0YWJ8Zm9ybWZlZWR8YmFja3NwYWNlfHJldHVybikvIH0sIC8vIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcXFxcXFMvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0gLy8gYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJcbiAgICBdXG4gIH07XG4gIGNvbnN0IFJFR0VYID0ge1xuICAgIHNjb3BlOiAncmVnZXgnLFxuICAgIGJlZ2luOiAvI1wiLyxcbiAgICBlbmQ6IC9cIi8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgaWxsZWdhbDogbnVsbCB9KTtcbiAgY29uc3QgQ09NTUEgPSB7XG4gICAgc2NvcGU6ICdwdW5jdHVhdGlvbicsXG4gICAgbWF0Y2g6IC8sLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnOycsXG4gICAgJyQnLFxuICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgKTtcbiAgY29uc3QgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogL1xcYih0cnVlfGZhbHNlfG5pbClcXGIvXG4gIH07XG4gIGNvbnN0IENPTExFQ1RJT04gPSB7XG4gICAgYmVnaW46IFwiXFxcXFt8KCM6Oj9cIiArIFNZTUJPTF9SRSArIFwiKT9cXFxce1wiLFxuICAgIGVuZDogJ1tcXFxcXVxcXFx9XScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnWzpdezEsMn0nICsgU1lNQk9MX1JFXG4gIH07XG4gIGNvbnN0IExJU1QgPSB7XG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknXG4gIH07XG4gIGNvbnN0IEJPRFkgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IE5BTUUgPSB7XG4gICAga2V5d29yZHM6IGtleXdvcmRzLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHN0YXJ0czogQk9EWVxuICB9O1xuICBjb25zdCBERUZBVUxUX0NPTlRBSU5TID0gW1xuICAgIENPTU1BLFxuICAgIExJU1QsXG4gICAgQ0hBUkFDVEVSLFxuICAgIFJFR0VYLFxuICAgIFNUUklORyxcbiAgICBDT01NRU5ULFxuICAgIEtFWSxcbiAgICBDT0xMRUNUSU9OLFxuICAgIE5VTUJFUixcbiAgICBMSVRFUkFMLFxuICAgIFNZTUJPTFxuICBdO1xuXG4gIGNvbnN0IEdMT0JBTCA9IHtcbiAgICBiZWdpbktleXdvcmRzOiBnbG9iYWxzLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogU1lNQk9MX1JFLFxuICAgICAga2V5d29yZDogZ2xvYmFsc1xuICAgIH0sXG4gICAgZW5kOiAnKFxcXFxbfCN8XFxcXGR8XCJ8OnxcXFxce3xcXFxcKXxcXFxcKHwkKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICBiZWdpbjogU1lNQk9MX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIC8vIHdlIGNhbiBvbmx5IGhhdmUgYSBzaW5nbGUgdGl0bGVcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgfVxuICAgIF0uY29uY2F0KERFRkFVTFRfQ09OVEFJTlMpXG4gIH07XG5cbiAgTElTVC5jb250YWlucyA9IFtcbiAgICBHTE9CQUwsXG4gICAgTkFNRSxcbiAgICBCT0RZXG4gIF07XG4gIEJPRFkuY29udGFpbnMgPSBERUZBVUxUX0NPTlRBSU5TO1xuICBDT0xMRUNUSU9OLmNvbnRhaW5zID0gREVGQVVMVF9DT05UQUlOUztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDbG9qdXJlJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY2xqJyxcbiAgICAgICdlZG4nXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUEsXG4gICAgICBMSVNULFxuICAgICAgQ0hBUkFDVEVSLFxuICAgICAgUkVHRVgsXG4gICAgICBTVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgS0VZLFxuICAgICAgQ09MTEVDVElPTixcbiAgICAgIE5VTUJFUixcbiAgICAgIExJVEVSQUxcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvanVyZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IENsb2p1cmUgUkVQTFxuRGVzY3JpcHRpb246IENsb2p1cmUgUkVQTCBzZXNzaW9uc1xuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cblJlcXVpcmVzOiBjbG9qdXJlLmpzXG5XZWJzaXRlOiBodHRwczovL2Nsb2p1cmUub3JnXG5DYXRlZ29yeTogbGlzcFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNsb2p1cmVSZXBsKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2xvanVyZSBSRVBMJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhLnByb21wdCcsXG4gICAgICAgIGJlZ2luOiAvXihbXFx3Li1dK3xcXHMqI18pPz0+LyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6ICdjbG9qdXJlJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb2p1cmVSZXBsO1xuIiwgIi8qXG5MYW5ndWFnZTogQ01ha2VcbkRlc2NyaXB0aW9uOiBDTWFrZSBpcyBhbiBvcGVuLXNvdXJjZSBjcm9zcy1wbGF0Zm9ybSBzeXN0ZW0gZm9yIGJ1aWxkIGF1dG9tYXRpb24uXG5BdXRob3I6IElnb3IgS2Fsbml0c2t5IDxpZ29yQGthbG5pdHNreS5vcmc+XG5XZWJzaXRlOiBodHRwczovL2NtYWtlLm9yZ1xuQ2F0ZWdvcnk6IGJ1aWxkLXN5c3RlbVxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNtYWtlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ01ha2UnLFxuICAgIGFsaWFzZXM6IFsgJ2NtYWtlLmluJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHsga2V5d29yZDpcbiAgICAgICAgLy8gc2NyaXB0aW5nIGNvbW1hbmRzXG4gICAgICAgICdicmVhayBjbWFrZV9ob3N0X3N5c3RlbV9pbmZvcm1hdGlvbiBjbWFrZV9taW5pbXVtX3JlcXVpcmVkIGNtYWtlX3BhcnNlX2FyZ3VtZW50cyAnXG4gICAgICAgICsgJ2NtYWtlX3BvbGljeSBjb25maWd1cmVfZmlsZSBjb250aW51ZSBlbHNlaWYgZWxzZSBlbmRmb3JlYWNoIGVuZGZ1bmN0aW9uIGVuZGlmIGVuZG1hY3JvICdcbiAgICAgICAgKyAnZW5kd2hpbGUgZXhlY3V0ZV9wcm9jZXNzIGZpbGUgZmluZF9maWxlIGZpbmRfbGlicmFyeSBmaW5kX3BhY2thZ2UgZmluZF9wYXRoICdcbiAgICAgICAgKyAnZmluZF9wcm9ncmFtIGZvcmVhY2ggZnVuY3Rpb24gZ2V0X2NtYWtlX3Byb3BlcnR5IGdldF9kaXJlY3RvcnlfcHJvcGVydHkgJ1xuICAgICAgICArICdnZXRfZmlsZW5hbWVfY29tcG9uZW50IGdldF9wcm9wZXJ0eSBpZiBpbmNsdWRlIGluY2x1ZGVfZ3VhcmQgbGlzdCBtYWNybyAnXG4gICAgICAgICsgJ21hcmtfYXNfYWR2YW5jZWQgbWF0aCBtZXNzYWdlIG9wdGlvbiByZXR1cm4gc2VwYXJhdGVfYXJndW1lbnRzICdcbiAgICAgICAgKyAnc2V0X2RpcmVjdG9yeV9wcm9wZXJ0aWVzIHNldF9wcm9wZXJ0eSBzZXQgc2l0ZV9uYW1lIHN0cmluZyB1bnNldCB2YXJpYWJsZV93YXRjaCB3aGlsZSAnXG4gICAgICAgIC8vIHByb2plY3QgY29tbWFuZHNcbiAgICAgICAgKyAnYWRkX2NvbXBpbGVfZGVmaW5pdGlvbnMgYWRkX2NvbXBpbGVfb3B0aW9ucyBhZGRfY3VzdG9tX2NvbW1hbmQgYWRkX2N1c3RvbV90YXJnZXQgJ1xuICAgICAgICArICdhZGRfZGVmaW5pdGlvbnMgYWRkX2RlcGVuZGVuY2llcyBhZGRfZXhlY3V0YWJsZSBhZGRfbGlicmFyeSBhZGRfbGlua19vcHRpb25zICdcbiAgICAgICAgKyAnYWRkX3N1YmRpcmVjdG9yeSBhZGRfdGVzdCBhdXhfc291cmNlX2RpcmVjdG9yeSBidWlsZF9jb21tYW5kIGNyZWF0ZV90ZXN0X3NvdXJjZWxpc3QgJ1xuICAgICAgICArICdkZWZpbmVfcHJvcGVydHkgZW5hYmxlX2xhbmd1YWdlIGVuYWJsZV90ZXN0aW5nIGV4cG9ydCBmbHRrX3dyYXBfdWkgJ1xuICAgICAgICArICdnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkgZ2V0X3RhcmdldF9wcm9wZXJ0eSBnZXRfdGVzdF9wcm9wZXJ0eSBpbmNsdWRlX2RpcmVjdG9yaWVzICdcbiAgICAgICAgKyAnaW5jbHVkZV9leHRlcm5hbF9tc3Byb2plY3QgaW5jbHVkZV9yZWd1bGFyX2V4cHJlc3Npb24gaW5zdGFsbCBsaW5rX2RpcmVjdG9yaWVzICdcbiAgICAgICAgKyAnbGlua19saWJyYXJpZXMgbG9hZF9jYWNoZSBwcm9qZWN0IHF0X3dyYXBfY3BwIHF0X3dyYXBfdWkgcmVtb3ZlX2RlZmluaXRpb25zICdcbiAgICAgICAgKyAnc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzIHNldF90YXJnZXRfcHJvcGVydGllcyBzZXRfdGVzdHNfcHJvcGVydGllcyBzb3VyY2VfZ3JvdXAgJ1xuICAgICAgICArICd0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyB0YXJnZXRfY29tcGlsZV9mZWF0dXJlcyB0YXJnZXRfY29tcGlsZV9vcHRpb25zICdcbiAgICAgICAgKyAndGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMgdGFyZ2V0X2xpbmtfZGlyZWN0b3JpZXMgdGFyZ2V0X2xpbmtfbGlicmFyaWVzICdcbiAgICAgICAgKyAndGFyZ2V0X2xpbmtfb3B0aW9ucyB0YXJnZXRfc291cmNlcyB0cnlfY29tcGlsZSB0cnlfcnVuICdcbiAgICAgICAgLy8gQ1Rlc3QgY29tbWFuZHNcbiAgICAgICAgKyAnY3Rlc3RfYnVpbGQgY3Rlc3RfY29uZmlndXJlIGN0ZXN0X2NvdmVyYWdlIGN0ZXN0X2VtcHR5X2JpbmFyeV9kaXJlY3RvcnkgY3Rlc3RfbWVtY2hlY2sgJ1xuICAgICAgICArICdjdGVzdF9yZWFkX2N1c3RvbV9maWxlcyBjdGVzdF9ydW5fc2NyaXB0IGN0ZXN0X3NsZWVwIGN0ZXN0X3N0YXJ0IGN0ZXN0X3N1Ym1pdCAnXG4gICAgICAgICsgJ2N0ZXN0X3Rlc3QgY3Rlc3RfdXBkYXRlIGN0ZXN0X3VwbG9hZCAnXG4gICAgICAgIC8vIGRlcHJlY2F0ZWQgY29tbWFuZHNcbiAgICAgICAgKyAnYnVpbGRfbmFtZSBleGVjX3Byb2dyYW0gZXhwb3J0X2xpYnJhcnlfZGVwZW5kZW5jaWVzIGluc3RhbGxfZmlsZXMgaW5zdGFsbF9wcm9ncmFtcyAnXG4gICAgICAgICsgJ2luc3RhbGxfdGFyZ2V0cyBsb2FkX2NvbW1hbmQgbWFrZV9kaXJlY3Rvcnkgb3V0cHV0X3JlcXVpcmVkX2ZpbGVzIHJlbW92ZSAnXG4gICAgICAgICsgJ3N1YmRpcl9kZXBlbmRzIHN1YmRpcnMgdXNlX21hbmdsZWRfbWVzYSB1dGlsaXR5X3NvdXJjZSB2YXJpYWJsZV9yZXF1aXJlcyB3cml0ZV9maWxlICdcbiAgICAgICAgKyAncXQ1X3VzZV9tb2R1bGVzIHF0NV91c2VfcGFja2FnZSBxdDVfd3JhcF9jcHAgJ1xuICAgICAgICAvLyBjb3JlIGtleXdvcmRzXG4gICAgICAgICsgJ29uIG9mZiB0cnVlIGZhbHNlIGFuZCBvciBub3QgY29tbWFuZCBwb2xpY3kgdGFyZ2V0IHRlc3QgZXhpc3RzIGlzX25ld2VyX3RoYW4gJ1xuICAgICAgICArICdpc19kaXJlY3RvcnkgaXNfc3ltbGluayBpc19hYnNvbHV0ZSBtYXRjaGVzIGxlc3MgZ3JlYXRlciBlcXVhbCBsZXNzX2VxdWFsICdcbiAgICAgICAgKyAnZ3JlYXRlcl9lcXVhbCBzdHJsZXNzIHN0cmdyZWF0ZXIgc3RyZXF1YWwgc3RybGVzc19lcXVhbCBzdHJncmVhdGVyX2VxdWFsIHZlcnNpb25fbGVzcyAnXG4gICAgICAgICsgJ3ZlcnNpb25fZ3JlYXRlciB2ZXJzaW9uX2VxdWFsIHZlcnNpb25fbGVzc19lcXVhbCB2ZXJzaW9uX2dyZWF0ZXJfZXF1YWwgaW5fbGlzdCBkZWZpbmVkJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXCRcXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKC8jXFxbXFxbLywgL11dLyksXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY21ha2U7XG4iLCAiY29uc3QgS0VZV09SRFMgPSBbXG4gIFwiYXNcIiwgLy8gZm9yIGV4cG9ydHNcbiAgXCJpblwiLFxuICBcIm9mXCIsXG4gIFwiaWZcIixcbiAgXCJmb3JcIixcbiAgXCJ3aGlsZVwiLFxuICBcImZpbmFsbHlcIixcbiAgXCJ2YXJcIixcbiAgXCJuZXdcIixcbiAgXCJmdW5jdGlvblwiLFxuICBcImRvXCIsXG4gIFwicmV0dXJuXCIsXG4gIFwidm9pZFwiLFxuICBcImVsc2VcIixcbiAgXCJicmVha1wiLFxuICBcImNhdGNoXCIsXG4gIFwiaW5zdGFuY2VvZlwiLFxuICBcIndpdGhcIixcbiAgXCJ0aHJvd1wiLFxuICBcImNhc2VcIixcbiAgXCJkZWZhdWx0XCIsXG4gIFwidHJ5XCIsXG4gIFwic3dpdGNoXCIsXG4gIFwiY29udGludWVcIixcbiAgXCJ0eXBlb2ZcIixcbiAgXCJkZWxldGVcIixcbiAgXCJsZXRcIixcbiAgXCJ5aWVsZFwiLFxuICBcImNvbnN0XCIsXG4gIFwiY2xhc3NcIixcbiAgLy8gSlMgaGFuZGxlcyB0aGVzZSB3aXRoIGEgc3BlY2lhbCBydWxlXG4gIC8vIFwiZ2V0XCIsXG4gIC8vIFwic2V0XCIsXG4gIFwiZGVidWdnZXJcIixcbiAgXCJhc3luY1wiLFxuICBcImF3YWl0XCIsXG4gIFwic3RhdGljXCIsXG4gIFwiaW1wb3J0XCIsXG4gIFwiZnJvbVwiLFxuICBcImV4cG9ydFwiLFxuICBcImV4dGVuZHNcIlxuXTtcbmNvbnN0IExJVEVSQUxTID0gW1xuICBcInRydWVcIixcbiAgXCJmYWxzZVwiLFxuICBcIm51bGxcIixcbiAgXCJ1bmRlZmluZWRcIixcbiAgXCJOYU5cIixcbiAgXCJJbmZpbml0eVwiXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0c1xuY29uc3QgVFlQRVMgPSBbXG4gIC8vIEZ1bmRhbWVudGFsIG9iamVjdHNcbiAgXCJPYmplY3RcIixcbiAgXCJGdW5jdGlvblwiLFxuICBcIkJvb2xlYW5cIixcbiAgXCJTeW1ib2xcIixcbiAgLy8gbnVtYmVycyBhbmQgZGF0ZXNcbiAgXCJNYXRoXCIsXG4gIFwiRGF0ZVwiLFxuICBcIk51bWJlclwiLFxuICBcIkJpZ0ludFwiLFxuICAvLyB0ZXh0XG4gIFwiU3RyaW5nXCIsXG4gIFwiUmVnRXhwXCIsXG4gIC8vIEluZGV4ZWQgY29sbGVjdGlvbnNcbiAgXCJBcnJheVwiLFxuICBcIkZsb2F0MzJBcnJheVwiLFxuICBcIkZsb2F0NjRBcnJheVwiLFxuICBcIkludDhBcnJheVwiLFxuICBcIlVpbnQ4QXJyYXlcIixcbiAgXCJVaW50OENsYW1wZWRBcnJheVwiLFxuICBcIkludDE2QXJyYXlcIixcbiAgXCJJbnQzMkFycmF5XCIsXG4gIFwiVWludDE2QXJyYXlcIixcbiAgXCJVaW50MzJBcnJheVwiLFxuICBcIkJpZ0ludDY0QXJyYXlcIixcbiAgXCJCaWdVaW50NjRBcnJheVwiLFxuICAvLyBLZXllZCBjb2xsZWN0aW9uc1xuICBcIlNldFwiLFxuICBcIk1hcFwiLFxuICBcIldlYWtTZXRcIixcbiAgXCJXZWFrTWFwXCIsXG4gIC8vIFN0cnVjdHVyZWQgZGF0YVxuICBcIkFycmF5QnVmZmVyXCIsXG4gIFwiU2hhcmVkQXJyYXlCdWZmZXJcIixcbiAgXCJBdG9taWNzXCIsXG4gIFwiRGF0YVZpZXdcIixcbiAgXCJKU09OXCIsXG4gIC8vIENvbnRyb2wgYWJzdHJhY3Rpb24gb2JqZWN0c1xuICBcIlByb21pc2VcIixcbiAgXCJHZW5lcmF0b3JcIixcbiAgXCJHZW5lcmF0b3JGdW5jdGlvblwiLFxuICBcIkFzeW5jRnVuY3Rpb25cIixcbiAgLy8gUmVmbGVjdGlvblxuICBcIlJlZmxlY3RcIixcbiAgXCJQcm94eVwiLFxuICAvLyBJbnRlcm5hdGlvbmFsaXphdGlvblxuICBcIkludGxcIixcbiAgLy8gV2ViQXNzZW1ibHlcbiAgXCJXZWJBc3NlbWJseVwiXG5dO1xuXG5jb25zdCBFUlJPUl9UWVBFUyA9IFtcbiAgXCJFcnJvclwiLFxuICBcIkV2YWxFcnJvclwiLFxuICBcIkludGVybmFsRXJyb3JcIixcbiAgXCJSYW5nZUVycm9yXCIsXG4gIFwiUmVmZXJlbmNlRXJyb3JcIixcbiAgXCJTeW50YXhFcnJvclwiLFxuICBcIlR5cGVFcnJvclwiLFxuICBcIlVSSUVycm9yXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX0dMT0JBTFMgPSBbXG4gIFwic2V0SW50ZXJ2YWxcIixcbiAgXCJzZXRUaW1lb3V0XCIsXG4gIFwiY2xlYXJJbnRlcnZhbFwiLFxuICBcImNsZWFyVGltZW91dFwiLFxuXG4gIFwicmVxdWlyZVwiLFxuICBcImV4cG9ydHNcIixcblxuICBcImV2YWxcIixcbiAgXCJpc0Zpbml0ZVwiLFxuICBcImlzTmFOXCIsXG4gIFwicGFyc2VGbG9hdFwiLFxuICBcInBhcnNlSW50XCIsXG4gIFwiZGVjb2RlVVJJXCIsXG4gIFwiZGVjb2RlVVJJQ29tcG9uZW50XCIsXG4gIFwiZW5jb2RlVVJJXCIsXG4gIFwiZW5jb2RlVVJJQ29tcG9uZW50XCIsXG4gIFwiZXNjYXBlXCIsXG4gIFwidW5lc2NhcGVcIlxuXTtcblxuY29uc3QgQlVJTFRfSU5TID0gW10uY29uY2F0KFxuICBCVUlMVF9JTl9HTE9CQUxTLFxuICBUWVBFUyxcbiAgRVJST1JfVFlQRVNcbik7XG5cbi8qXG5MYW5ndWFnZTogQ29mZmVlU2NyaXB0XG5BdXRob3I6IERteXRyaWkgTmFnaXJuaWFrIDxkbmFnaXJAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPiwgQ1x1MDBFOWRyaWMgTlx1MDBFOWhcdTAwRTltaWUgPGNlZHJpYy5uZWhlbWllQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBDb2ZmZWVTY3JpcHQgaXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IHRyYW5zY29tcGlsZXMgdG8gSmF2YVNjcmlwdC4gRm9yIGluZm8gYWJvdXQgbGFuZ3VhZ2Ugc2VlIGh0dHA6Ly9jb2ZmZWVzY3JpcHQub3JnL1xuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuV2Vic2l0ZTogaHR0cHM6Ly9jb2ZmZWVzY3JpcHQub3JnXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjb2ZmZWVzY3JpcHQoaGxqcykge1xuICBjb25zdCBDT0ZGRUVfQlVJTFRfSU5TID0gW1xuICAgICducG0nLFxuICAgICdwcmludCdcbiAgXTtcbiAgY29uc3QgQ09GRkVFX0xJVEVSQUxTID0gW1xuICAgICd5ZXMnLFxuICAgICdubycsXG4gICAgJ29uJyxcbiAgICAnb2ZmJ1xuICBdO1xuICBjb25zdCBDT0ZGRUVfS0VZV09SRFMgPSBbXG4gICAgJ3RoZW4nLFxuICAgICd1bmxlc3MnLFxuICAgICd1bnRpbCcsXG4gICAgJ2xvb3AnLFxuICAgICdieScsXG4gICAgJ3doZW4nLFxuICAgICdhbmQnLFxuICAgICdvcicsXG4gICAgJ2lzJyxcbiAgICAnaXNudCcsXG4gICAgJ25vdCdcbiAgXTtcbiAgY29uc3QgTk9UX1ZBTElEX0tFWVdPUkRTID0gW1xuICAgIFwidmFyXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwic3RhdGljXCJcbiAgXTtcbiAgY29uc3QgZXhjbHVkaW5nID0gKGxpc3QpID0+XG4gICAgKGt3KSA9PiAhbGlzdC5pbmNsdWRlcyhrdyk7XG4gIGNvbnN0IEtFWVdPUkRTJDEgPSB7XG4gICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KENPRkZFRV9LRVlXT1JEUykuZmlsdGVyKGV4Y2x1ZGluZyhOT1RfVkFMSURfS0VZV09SRFMpKSxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUy5jb25jYXQoQ09GRkVFX0xJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLmNvbmNhdChDT0ZGRUVfQlVJTFRfSU5TKVxuICB9O1xuICBjb25zdCBKU19JREVOVF9SRSA9ICdbQS1aYS16JF9dWzAtOUEtWmEteiRfXSonO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC8jXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxXG4gIH07XG4gIGNvbnN0IEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfTlVNQkVSX01PREUsIHsgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICcoXFxcXHMqLyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0gfSksIC8vIGEgbnVtYmVyIHRyaWVzIHRvIGVhdCB0aGUgZm9sbG93aW5nIHNsYXNoIHRvIHByZXZlbnQgdHJlYXRpbmcgaXQgYXMgYSByZWdleHBcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvJycnLyxcbiAgICAgICAgICBlbmQ6IC8nJycvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICAgIGVuZDogLycvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogL1wiXCJcIi8sXG4gICAgICAgICAgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgICAgU1VCU1RcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLy8vJyxcbiAgICAgICAgICBlbmQ6ICcvLy8nLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJy8vW2dpbV17MCwzfSg/PVxcXFxXKScsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyByZWdleCBjYW4ndCBzdGFydCB3aXRoIHNwYWNlIHRvIHBhcnNlIHggLyAyIC8gMyBhcyB0d28gZGl2aXNpb25zXG4gICAgICAgICAgLy8gcmVnZXggY2FuJ3Qgc3RhcnQgd2l0aCAqLCBhbmQgaXQgc3VwcG9ydHMgYW4gXCJpbGxlZ2FsXCIgaW4gdGhlIG1haW4gbW9kZVxuICAgICAgICAgIGJlZ2luOiAvXFwvKD8hWyAqXSkuKj8oPyFbXFxcXF0pLlxcL1tnaW1dezAsM30oPz1cXFcpLyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7IGJlZ2luOiAnQCcgKyBKU19JREVOVF9SRSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgIH0sXG4gICAge1xuICAgICAgc3ViTGFuZ3VhZ2U6ICdqYXZhc2NyaXB0JyxcbiAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgYGAnLFxuICAgICAgICAgIGVuZDogJ2BgYCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgICAgZW5kOiAnYCdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcblxuICBjb25zdCBUSVRMRSA9IGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IEpTX0lERU5UX1JFIH0pO1xuICBjb25zdCBQT1NTSUJMRV9QQVJBTVNfUkUgPSAnKFxcXFwoLipcXFxcKVxcXFxzKik/XFxcXEJbLT1dPic7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXChbXlxcXFwoXScsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgLyogV2UgbmVlZCBhbm90aGVyIGNvbnRhaW5lZCBuYW1lbGVzcyBtb2RlIHRvIG5vdCBoYXZlIGV2ZXJ5IG5lc3RlZFxuICAgIHBhaXIgb2YgcGFyZW5zIHRvIGJlIGNhbGxlZCBcInBhcmFtc1wiICovXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICBKU19JREVOVF9SRSxcbiAgICAgICAgL1xccytleHRlbmRzXFxzKy8sXG4gICAgICAgIEpTX0lERU5UX1JFXG4gICAgICBdIH0sXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICBKU19JREVOVF9SRVxuICAgICAgXSB9XG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMjogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgNDogXCJ0aXRsZS5jbGFzcy5pbmhlcml0ZWRcIlxuICAgIH0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDFcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDb2ZmZWVTY3JpcHQnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdjb2ZmZWUnLFxuICAgICAgJ2Nzb24nLFxuICAgICAgJ2ljZWQnXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uRVhQUkVTU0lPTlMsXG4gICAgICBobGpzLkNPTU1FTlQoJyMjIycsICcjIyMnKSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKj1cXFxccyonICsgUE9TU0lCTEVfUEFSQU1TX1JFLFxuICAgICAgICBlbmQ6ICdbLT1dPicsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFRJVExFLFxuICAgICAgICAgIFBBUkFNU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBhbm9ueW1vdXMgZnVuY3Rpb24gc3RhcnRcbiAgICAgICAgYmVnaW46IC9bOlxcKCw9XVxccyovLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IFBPU1NJQkxFX1BBUkFNU19SRSxcbiAgICAgICAgICAgIGVuZDogJ1stPV0+JyxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDTEFTU19ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICBiZWdpbjogSlNfSURFTlRfUkUgKyAnOicsXG4gICAgICAgIGVuZDogJzonLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29mZmVlc2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogQ29xXG5BdXRob3I6IFN0ZXBoYW4gQm95ZXIgPHN0ZXBoYW5Ac3RlcGhhbmJveWVyLmNvbT5cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5XZWJzaXRlOiBodHRwczovL2NvcS5pbnJpYS5mclxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNvcShobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiX3wwXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYXRcIixcbiAgICBcImNvZml4XCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZXhpc3RzMlwiLFxuICAgIFwiZml4XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmFsbFwiLFxuICAgIFwiZnVuXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiSUZcIixcbiAgICBcImluXCIsXG4gICAgXCJsZXRcIixcbiAgICBcIm1hdGNoXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIlByb3BcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiU2V0XCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJUeXBlXCIsXG4gICAgXCJ1c2luZ1wiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIndpdGhcIixcbiAgICBcIkFib3J0XCIsXG4gICAgXCJBYm91dFwiLFxuICAgIFwiQWRkXCIsXG4gICAgXCJBZG1pdFwiLFxuICAgIFwiQWRtaXR0ZWRcIixcbiAgICBcIkFsbFwiLFxuICAgIFwiQXJndW1lbnRzXCIsXG4gICAgXCJBc3N1bXB0aW9uc1wiLFxuICAgIFwiQXhpb21cIixcbiAgICBcIkJhY2tcIixcbiAgICBcIkJhY2tUb1wiLFxuICAgIFwiQmFja3RyYWNrXCIsXG4gICAgXCJCaW5kXCIsXG4gICAgXCJCbGFja2xpc3RcIixcbiAgICBcIkNhbm9uaWNhbFwiLFxuICAgIFwiQ2RcIixcbiAgICBcIkNoZWNrXCIsXG4gICAgXCJDbGFzc1wiLFxuICAgIFwiQ2xhc3Nlc1wiLFxuICAgIFwiQ2xvc2VcIixcbiAgICBcIkNvZXJjaW9uXCIsXG4gICAgXCJDb2VyY2lvbnNcIixcbiAgICBcIkNvRml4cG9pbnRcIixcbiAgICBcIkNvSW5kdWN0aXZlXCIsXG4gICAgXCJDb2xsZWN0aW9uXCIsXG4gICAgXCJDb21iaW5lZFwiLFxuICAgIFwiQ29tcHV0ZVwiLFxuICAgIFwiQ29uamVjdHVyZVwiLFxuICAgIFwiQ29uamVjdHVyZXNcIixcbiAgICBcIkNvbnN0YW50XCIsXG4gICAgXCJjb25zdHJcIixcbiAgICBcIkNvbnN0cmFpbnRcIixcbiAgICBcIkNvbnN0cnVjdG9yc1wiLFxuICAgIFwiQ29udGV4dFwiLFxuICAgIFwiQ29yb2xsYXJ5XCIsXG4gICAgXCJDcmVhdGVIaW50RGJcIixcbiAgICBcIkN1dFwiLFxuICAgIFwiRGVjbGFyZVwiLFxuICAgIFwiRGVmaW5lZFwiLFxuICAgIFwiRGVmaW5pdGlvblwiLFxuICAgIFwiRGVsaW1pdFwiLFxuICAgIFwiRGVwZW5kZW5jaWVzXCIsXG4gICAgXCJEZXBlbmRlbnRcIixcbiAgICBcIkRlcml2ZVwiLFxuICAgIFwiRHJvcFwiLFxuICAgIFwiZWF1dG9cIixcbiAgICBcIkVuZFwiLFxuICAgIFwiRXF1YWxpdHlcIixcbiAgICBcIkV2YWxcIixcbiAgICBcIkV4YW1wbGVcIixcbiAgICBcIkV4aXN0ZW50aWFsXCIsXG4gICAgXCJFeGlzdGVudGlhbHNcIixcbiAgICBcIkV4aXN0aW5nXCIsXG4gICAgXCJFeHBvcnRcIixcbiAgICBcImV4cG9ydGluZ1wiLFxuICAgIFwiRXh0ZXJuXCIsXG4gICAgXCJFeHRyYWN0XCIsXG4gICAgXCJFeHRyYWN0aW9uXCIsXG4gICAgXCJGYWN0XCIsXG4gICAgXCJGaWVsZFwiLFxuICAgIFwiRmllbGRzXCIsXG4gICAgXCJGaWxlXCIsXG4gICAgXCJGaXhwb2ludFwiLFxuICAgIFwiRm9jdXNcIixcbiAgICBcImZvclwiLFxuICAgIFwiRnJvbVwiLFxuICAgIFwiRnVuY3Rpb25cIixcbiAgICBcIkZ1bmN0aW9uYWxcIixcbiAgICBcIkdlbmVyYWxpemFibGVcIixcbiAgICBcIkdsb2JhbFwiLFxuICAgIFwiR29hbFwiLFxuICAgIFwiR3JhYlwiLFxuICAgIFwiR3JhbW1hclwiLFxuICAgIFwiR3JhcGhcIixcbiAgICBcIkd1YXJkZWRcIixcbiAgICBcIkhlYXBcIixcbiAgICBcIkhpbnRcIixcbiAgICBcIkhpbnREYlwiLFxuICAgIFwiSGludHNcIixcbiAgICBcIkh5cG90aGVzZXNcIixcbiAgICBcIkh5cG90aGVzaXNcIixcbiAgICBcImlkZW50XCIsXG4gICAgXCJJZGVudGl0eVwiLFxuICAgIFwiSWZcIixcbiAgICBcIkltbWVkaWF0ZVwiLFxuICAgIFwiSW1wbGljaXRcIixcbiAgICBcIkltcG9ydFwiLFxuICAgIFwiSW5jbHVkZVwiLFxuICAgIFwiSW5kdWN0aXZlXCIsXG4gICAgXCJJbmZpeFwiLFxuICAgIFwiSW5mb1wiLFxuICAgIFwiSW5pdGlhbFwiLFxuICAgIFwiSW5saW5lXCIsXG4gICAgXCJJbnNwZWN0XCIsXG4gICAgXCJJbnN0YW5jZVwiLFxuICAgIFwiSW5zdGFuY2VzXCIsXG4gICAgXCJJbnRyb1wiLFxuICAgIFwiSW50cm9zXCIsXG4gICAgXCJJbnZlcnNpb25cIixcbiAgICBcIkludmVyc2lvbl9jbGVhclwiLFxuICAgIFwiTGFuZ3VhZ2VcIixcbiAgICBcIkxlZnRcIixcbiAgICBcIkxlbW1hXCIsXG4gICAgXCJMZXRcIixcbiAgICBcIkxpYnJhcmllc1wiLFxuICAgIFwiTGlicmFyeVwiLFxuICAgIFwiTG9hZFwiLFxuICAgIFwiTG9hZFBhdGhcIixcbiAgICBcIkxvY2FsXCIsXG4gICAgXCJMb2NhdGVcIixcbiAgICBcIkx0YWNcIixcbiAgICBcIk1MXCIsXG4gICAgXCJNb2RlXCIsXG4gICAgXCJNb2R1bGVcIixcbiAgICBcIk1vZHVsZXNcIixcbiAgICBcIk1vbm9tb3JwaGljXCIsXG4gICAgXCJNb3JwaGlzbVwiLFxuICAgIFwiTmV4dFwiLFxuICAgIFwiTm9JbmxpbmVcIixcbiAgICBcIk5vdGF0aW9uXCIsXG4gICAgXCJPYmxpZ2F0aW9uXCIsXG4gICAgXCJPYmxpZ2F0aW9uc1wiLFxuICAgIFwiT3BhcXVlXCIsXG4gICAgXCJPcGVuXCIsXG4gICAgXCJPcHRpbWl6ZVwiLFxuICAgIFwiT3B0aW9uc1wiLFxuICAgIFwiUGFyYW1ldGVyXCIsXG4gICAgXCJQYXJhbWV0ZXJzXCIsXG4gICAgXCJQYXJhbWV0cmljXCIsXG4gICAgXCJQYXRoXCIsXG4gICAgXCJQYXRoc1wiLFxuICAgIFwicGF0dGVyblwiLFxuICAgIFwiUG9seW1vcnBoaWNcIixcbiAgICBcIlByZXRlcm1cIixcbiAgICBcIlByaW50XCIsXG4gICAgXCJQcmludGluZ1wiLFxuICAgIFwiUHJvZ3JhbVwiLFxuICAgIFwiUHJvamVjdGlvbnNcIixcbiAgICBcIlByb29mXCIsXG4gICAgXCJQcm9wb3NpdGlvblwiLFxuICAgIFwiUHdkXCIsXG4gICAgXCJRZWRcIixcbiAgICBcIlF1aXRcIixcbiAgICBcIlJlY1wiLFxuICAgIFwiUmVjb3JkXCIsXG4gICAgXCJSZWN1cnNpdmVcIixcbiAgICBcIlJlZGlyZWN0XCIsXG4gICAgXCJSZWxhdGlvblwiLFxuICAgIFwiUmVtYXJrXCIsXG4gICAgXCJSZW1vdmVcIixcbiAgICBcIlJlcXVpcmVcIixcbiAgICBcIlJlc2VydmVkXCIsXG4gICAgXCJSZXNldFwiLFxuICAgIFwiUmVzb2x2ZVwiLFxuICAgIFwiUmVzdGFydFwiLFxuICAgIFwiUmV3cml0ZVwiLFxuICAgIFwiUmlnaHRcIixcbiAgICBcIlJpbmdcIixcbiAgICBcIlJpbmdzXCIsXG4gICAgXCJTYXZlXCIsXG4gICAgXCJTY2hlbWVcIixcbiAgICBcIlNjb3BlXCIsXG4gICAgXCJTY29wZXNcIixcbiAgICBcIlNjcmlwdFwiLFxuICAgIFwiU2VhcmNoXCIsXG4gICAgXCJTZWFyY2hBYm91dFwiLFxuICAgIFwiU2VhcmNoSGVhZFwiLFxuICAgIFwiU2VhcmNoUGF0dGVyblwiLFxuICAgIFwiU2VhcmNoUmV3cml0ZVwiLFxuICAgIFwiU2VjdGlvblwiLFxuICAgIFwiU2VwYXJhdGVcIixcbiAgICBcIlNldFwiLFxuICAgIFwiU2V0b2lkXCIsXG4gICAgXCJTaG93XCIsXG4gICAgXCJTb2x2ZVwiLFxuICAgIFwiU29ydGVkXCIsXG4gICAgXCJTdGVwXCIsXG4gICAgXCJTdHJhdGVnaWVzXCIsXG4gICAgXCJTdHJhdGVneVwiLFxuICAgIFwiU3RydWN0dXJlXCIsXG4gICAgXCJTdWJDbGFzc1wiLFxuICAgIFwiVGFibGVcIixcbiAgICBcIlRhYmxlc1wiLFxuICAgIFwiVGFjdGljXCIsXG4gICAgXCJUZXJtXCIsXG4gICAgXCJUZXN0XCIsXG4gICAgXCJUaGVvcmVtXCIsXG4gICAgXCJUaW1lXCIsXG4gICAgXCJUaW1lb3V0XCIsXG4gICAgXCJUcmFuc3BhcmVudFwiLFxuICAgIFwiVHlwZVwiLFxuICAgIFwiVHlwZWNsYXNzZXNcIixcbiAgICBcIlR5cGVzXCIsXG4gICAgXCJVbmRlbGltaXRcIixcbiAgICBcIlVuZG9cIixcbiAgICBcIlVuZm9jdXNcIixcbiAgICBcIlVuZm9jdXNlZFwiLFxuICAgIFwiVW5mb2xkXCIsXG4gICAgXCJVbml2ZXJzZVwiLFxuICAgIFwiVW5pdmVyc2VzXCIsXG4gICAgXCJVbnNldFwiLFxuICAgIFwiVW5zaGVsdmVcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJWYXJpYWJsZVwiLFxuICAgIFwiVmFyaWFibGVzXCIsXG4gICAgXCJWYXJpYW50XCIsXG4gICAgXCJWZXJib3NlXCIsXG4gICAgXCJWaXNpYmlsaXR5XCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwid2l0aFwiXG4gIF07XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJhYnN1cmRcIixcbiAgICBcImFkbWl0XCIsXG4gICAgXCJhZnRlclwiLFxuICAgIFwiYXBwbHlcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImFzc3VtcHRpb25cIixcbiAgICBcImF0XCIsXG4gICAgXCJhdXRvXCIsXG4gICAgXCJhdXRvcmV3cml0ZVwiLFxuICAgIFwiYXV0b3VuZm9sZFwiLFxuICAgIFwiYmVmb3JlXCIsXG4gICAgXCJib3R0b21cIixcbiAgICBcImJ0YXV0b1wiLFxuICAgIFwiYnlcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhc2VfZXFcIixcbiAgICBcImNiblwiLFxuICAgIFwiY2J2XCIsXG4gICAgXCJjaGFuZ2VcIixcbiAgICBcImNsYXNzaWNhbF9sZWZ0XCIsXG4gICAgXCJjbGFzc2ljYWxfcmlnaHRcIixcbiAgICBcImNsZWFyXCIsXG4gICAgXCJjbGVhcmJvZHlcIixcbiAgICBcImNvZml4XCIsXG4gICAgXCJjb21wYXJlXCIsXG4gICAgXCJjb21wdXRlXCIsXG4gICAgXCJjb25ncnVlbmNlXCIsXG4gICAgXCJjb25zdHJfZXFcIixcbiAgICBcImNvbnN0cnVjdG9yXCIsXG4gICAgXCJjb250cmFkaWN0XCIsXG4gICAgXCJjb250cmFkaWN0aW9uXCIsXG4gICAgXCJjdXRcIixcbiAgICBcImN1dHJld3JpdGVcIixcbiAgICBcImN5Y2xlXCIsXG4gICAgXCJkZWNpZGVcIixcbiAgICBcImRlY29tcG9zZVwiLFxuICAgIFwiZGVwZW5kZW50XCIsXG4gICAgXCJkZXN0cnVjdFwiLFxuICAgIFwiZGVzdHJ1Y3Rpb25cIixcbiAgICBcImRpbnR1aXRpb25cIixcbiAgICBcImRpc2NyaW1pbmF0ZVwiLFxuICAgIFwiZGlzY3JSXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJkdGF1dG9cIixcbiAgICBcImVhcHBseVwiLFxuICAgIFwiZWFzc3VtcHRpb25cIixcbiAgICBcImVhdXRvXCIsXG4gICAgXCJlY2FzZVwiLFxuICAgIFwiZWNvbnN0cnVjdG9yXCIsXG4gICAgXCJlZGVzdHJ1Y3RcIixcbiAgICBcImVkaXNjcmltaW5hdGVcIixcbiAgICBcImVlbGltXCIsXG4gICAgXCJlZXhhY3RcIixcbiAgICBcImVleGlzdHNcIixcbiAgICBcImVpbmR1Y3Rpb25cIixcbiAgICBcImVpbmplY3Rpb25cIixcbiAgICBcImVsZWZ0XCIsXG4gICAgXCJlbGltXCIsXG4gICAgXCJlbGltdHlwZVwiLFxuICAgIFwiZW5vdWdoXCIsXG4gICAgXCJlcXVhbGl0eVwiLFxuICAgIFwiZXJld3JpdGVcIixcbiAgICBcImVyaWdodFwiLFxuICAgIFwiZXNpbXBsaWZ5X2VxXCIsXG4gICAgXCJlc3BsaXRcIixcbiAgICBcImV2YXJcIixcbiAgICBcImV4YWN0XCIsXG4gICAgXCJleGFjdGx5X29uY2VcIixcbiAgICBcImV4ZmFsc29cIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZl9lcXVhbFwiLFxuICAgIFwiZmFpbFwiLFxuICAgIFwiZmllbGRcIixcbiAgICBcImZpZWxkX3NpbXBsaWZ5XCIsXG4gICAgXCJmaWVsZF9zaW1wbGlmeV9lcVwiLFxuICAgIFwiZmlyc3RcIixcbiAgICBcImZpcnN0b3JkZXJcIixcbiAgICBcImZpeFwiLFxuICAgIFwiZm9sZFwiLFxuICAgIFwiZm91cmllclwiLFxuICAgIFwiZnVuY3Rpb25hbFwiLFxuICAgIFwiZ2VuZXJhbGl6ZVwiLFxuICAgIFwiZ2VuZXJhbGl6aW5nXCIsXG4gICAgXCJnZmFpbFwiLFxuICAgIFwiZ2l2ZV91cFwiLFxuICAgIFwiaGFzX2V2YXJcIixcbiAgICBcImhuZlwiLFxuICAgIFwiaWR0YWNcIixcbiAgICBcImluXCIsXG4gICAgXCJpbmR1Y3Rpb25cIixcbiAgICBcImluamVjdGlvblwiLFxuICAgIFwiaW5zdGFudGlhdGVcIixcbiAgICBcImludHJvXCIsXG4gICAgXCJpbnRyb19wYXR0ZXJuXCIsXG4gICAgXCJpbnRyb3NcIixcbiAgICBcImludHVpdGlvblwiLFxuICAgIFwiaW52ZXJzaW9uXCIsXG4gICAgXCJpbnZlcnNpb25fY2xlYXJcIixcbiAgICBcImlzX2V2YXJcIixcbiAgICBcImlzX3ZhclwiLFxuICAgIFwibGFwcGx5XCIsXG4gICAgXCJsYXp5XCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJsaWFcIixcbiAgICBcImxyYVwiLFxuICAgIFwibW92ZVwiLFxuICAgIFwibmF0aXZlX2NvbXB1dGVcIixcbiAgICBcIm5pYVwiLFxuICAgIFwibnNhdHpcIixcbiAgICBcIm9tZWdhXCIsXG4gICAgXCJvbmNlXCIsXG4gICAgXCJwYXR0ZXJuXCIsXG4gICAgXCJwb3NlXCIsXG4gICAgXCJwcm9ncmVzc1wiLFxuICAgIFwicHJvb2ZcIixcbiAgICBcInBzYXR6XCIsXG4gICAgXCJxdW90ZVwiLFxuICAgIFwicmVjb3JkXCIsXG4gICAgXCJyZWRcIixcbiAgICBcInJlZmluZVwiLFxuICAgIFwicmVmbGV4aXZpdHlcIixcbiAgICBcInJlbWVtYmVyXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmVwbGFjZVwiLFxuICAgIFwicmV2ZXJ0XCIsXG4gICAgXCJyZXZnb2Fsc1wiLFxuICAgIFwicmV3cml0ZVwiLFxuICAgIFwicmV3cml0ZV9zdHJhdFwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJpbmdcIixcbiAgICBcInJpbmdfc2ltcGxpZnlcIixcbiAgICBcInJ0YXV0b1wiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzZXRvaWRfcmVmbGV4aXZpdHlcIixcbiAgICBcInNldG9pZF9yZXBsYWNlXCIsXG4gICAgXCJzZXRvaWRfcmV3cml0ZVwiLFxuICAgIFwic2V0b2lkX3N5bW1ldHJ5XCIsXG4gICAgXCJzZXRvaWRfdHJhbnNpdGl2aXR5XCIsXG4gICAgXCJzaGVsdmVcIixcbiAgICBcInNoZWx2ZV91bmlmaWFibGVcIixcbiAgICBcInNpbXBsXCIsXG4gICAgXCJzaW1wbGVcIixcbiAgICBcInNpbXBsaWZ5X2VxXCIsXG4gICAgXCJzb2x2ZVwiLFxuICAgIFwic3BlY2lhbGl6ZVwiLFxuICAgIFwic3BsaXRcIixcbiAgICBcInNwbGl0X1JhYnNcIixcbiAgICBcInNwbGl0X1JtdWx0XCIsXG4gICAgXCJzdGVwbFwiLFxuICAgIFwic3RlcHJcIixcbiAgICBcInN1YnN0XCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN3YXBcIixcbiAgICBcInN5bW1ldHJ5XCIsXG4gICAgXCJ0YWN0aWNcIixcbiAgICBcInRhdXRvXCIsXG4gICAgXCJ0aW1lXCIsXG4gICAgXCJ0aW1lb3V0XCIsXG4gICAgXCJ0b3BcIixcbiAgICBcInRyYW5zaXRpdml0eVwiLFxuICAgIFwidHJpdmlhbFwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ0cnlpZlwiLFxuICAgIFwidW5mb2xkXCIsXG4gICAgXCJ1bmlmeVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2bV9jb21wdXRlXCIsXG4gICAgXCJ3aXRoXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ29xJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXFxcXChcXFxcKicsICdcXFxcKlxcXFwpJyksXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGJlZ2luOiAnXFxcXHxcXFxccyonLFxuICAgICAgICBlbmQ6ICdcXFxcdysnXG4gICAgICB9LFxuICAgICAgeyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgICBiZWdpbjogL1stPV0+LyB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcTtcbiIsICIvKlxuTGFuZ3VhZ2U6IENhY2hcdTAwRTkgT2JqZWN0IFNjcmlwdFxuQXV0aG9yOiBOaWtpdGEgU2F2Y2hlbmtvIDx6aXRyb3MubGFiQGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBlbnRlcnByaXNlLCBzY3JpcHRpbmdcbldlYnNpdGU6IGh0dHBzOi8vY2Vkb2NzLmludGVyc3lzdGVtcy5jb20vbGF0ZXN0L2NzcC9kb2Nib29rL0RvY0Jvb2suVUkuUGFnZS5jbHNcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjb3MoaGxqcykge1xuICBjb25zdCBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IC8vIGVzY2FwZWRcbiAgICAgICAgICAgIGJlZ2luOiBcIlxcXCJcXFwiXCIsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6IFwibnVtYmVyXCIsXG4gICAgYmVnaW46IFwiXFxcXGIoXFxcXGQrKFxcXFwuXFxcXGQqKT98XFxcXC5cXFxcZCspXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgQ09TX0tFWVdPUkRTID1cbiAgICAncHJvcGVydHkgcGFyYW1ldGVyIGNsYXNzIGNsYXNzbWV0aG9kIGNsaWVudG1ldGhvZCBleHRlbmRzIGFzIGJyZWFrICdcbiAgICArICdjYXRjaCBjbG9zZSBjb250aW51ZSBkbyBkfDAgZWxzZSBlbHNlaWYgZm9yIGdvdG8gaGFsdCBoYW5nIGh8MCBpZiBqb2IgJ1xuICAgICsgJ2p8MCBraWxsIGt8MCBsb2NrIGx8MCBtZXJnZSBuZXcgb3BlbiBxdWl0IHF8MCByZWFkIHJ8MCByZXR1cm4gc2V0IHN8MCAnXG4gICAgKyAndGNvbW1pdCB0aHJvdyB0cm9sbGJhY2sgdHJ5IHRzdGFydCB1c2UgdmlldyB3aGlsZSB3cml0ZSB3fDAgeGVjdXRlIHh8MCAnXG4gICAgKyAnemtpbGwgem5zcGFjZSB6biB6dHJhcCB6d3JpdGUgencgenpkdW1wIHp6d3JpdGUgcHJpbnQgemJyZWFrIHppbnNlcnQgJ1xuICAgICsgJ3psb2FkIHpwcmludCB6cmVtb3ZlIHpzYXZlIHp6cHJpbnQgbXYgbXZjYWxsIG12Y3J0IG12ZGltIG12cHJpbnQgenF1aXQgJ1xuICAgICsgJ3pzeW5jIGFzY2lpJztcblxuICAvLyByZWdpc3RlcmVkIGZ1bmN0aW9uIC0gbm8gbmVlZCBpbiB0aGVtIGR1ZSB0byBhbGwgZnVuY3Rpb25zIGFyZSBoaWdobGlnaHRlZCxcbiAgLy8gYnV0IEknbGwganVzdCBsZWF2ZSB0aGlzIGhlcmUuXG5cbiAgLy8gXCIkYml0XCIsIFwiJGJpdGNvdW50XCIsXG4gIC8vIFwiJGJpdGZpbmRcIiwgXCIkYml0bG9naWNcIiwgXCIkY2FzZVwiLCBcIiRjaGFyXCIsIFwiJGNsYXNzbWV0aG9kXCIsIFwiJGNsYXNzbmFtZVwiLFxuICAvLyBcIiRjb21waWxlXCIsIFwiJGRhdGFcIiwgXCIkZGVjaW1hbFwiLCBcIiRkb3VibGVcIiwgXCIkZXh0cmFjdFwiLCBcIiRmYWN0b3JcIixcbiAgLy8gXCIkZmluZFwiLCBcIiRmbnVtYmVyXCIsIFwiJGdldFwiLCBcIiRpbmNyZW1lbnRcIiwgXCIkaW51bWJlclwiLCBcIiRpc29iamVjdFwiLFxuICAvLyBcIiRpc3ZhbGlkZG91YmxlXCIsIFwiJGlzdmFsaWRudW1cIiwgXCIkanVzdGlmeVwiLCBcIiRsZW5ndGhcIiwgXCIkbGlzdFwiLFxuICAvLyBcIiRsaXN0YnVpbGRcIiwgXCIkbGlzdGRhdGFcIiwgXCIkbGlzdGZpbmRcIiwgXCIkbGlzdGZyb21zdHJpbmdcIiwgXCIkbGlzdGdldFwiLFxuICAvLyBcIiRsaXN0bGVuZ3RoXCIsIFwiJGxpc3RuZXh0XCIsIFwiJGxpc3RzYW1lXCIsIFwiJGxpc3R0b3N0cmluZ1wiLCBcIiRsaXN0dmFsaWRcIixcbiAgLy8gXCIkbG9jYXRlXCIsIFwiJG1hdGNoXCIsIFwiJG1ldGhvZFwiLCBcIiRuYW1lXCIsIFwiJG5jb252ZXJ0XCIsIFwiJG5leHRcIixcbiAgLy8gXCIkbm9ybWFsaXplXCIsIFwiJG5vd1wiLCBcIiRudW1iZXJcIiwgXCIkb3JkZXJcIiwgXCIkcGFyYW1ldGVyXCIsIFwiJHBpZWNlXCIsXG4gIC8vIFwiJHByZWZldGNob2ZmXCIsIFwiJHByZWZldGNob25cIiwgXCIkcHJvcGVydHlcIiwgXCIkcWxlbmd0aFwiLCBcIiRxc3Vic2NyaXB0XCIsXG4gIC8vIFwiJHF1ZXJ5XCIsIFwiJHJhbmRvbVwiLCBcIiRyZXBsYWNlXCIsIFwiJHJldmVyc2VcIiwgXCIkc2NvbnZlcnRcIiwgXCIkc2VsZWN0XCIsXG4gIC8vIFwiJHNvcnRiZWdpblwiLCBcIiRzb3J0ZW5kXCIsIFwiJHN0YWNrXCIsIFwiJHRleHRcIiwgXCIkdHJhbnNsYXRlXCIsIFwiJHZpZXdcIixcbiAgLy8gXCIkd2FzY2lpXCIsIFwiJHdjaGFyXCIsIFwiJHdleHRyYWN0XCIsIFwiJHdmaW5kXCIsIFwiJHdpc3dpZGVcIiwgXCIkd2xlbmd0aFwiLFxuICAvLyBcIiR3cmV2ZXJzZVwiLCBcIiR4ZWN1dGVcIiwgXCIkemFic1wiLCBcIiR6YXJjY29zXCIsIFwiJHphcmNzaW5cIiwgXCIkemFyY3RhblwiLFxuICAvLyBcIiR6Y29zXCIsIFwiJHpjb3RcIiwgXCIkemNzY1wiLCBcIiR6ZGF0ZVwiLCBcIiR6ZGF0ZWhcIiwgXCIkemRhdGV0aW1lXCIsXG4gIC8vIFwiJHpkYXRldGltZWhcIiwgXCIkemV4cFwiLCBcIiR6aGV4XCIsIFwiJHpsblwiLCBcIiR6bG9nXCIsIFwiJHpwb3dlclwiLCBcIiR6c2VjXCIsXG4gIC8vIFwiJHpzaW5cIiwgXCIkenNxclwiLCBcIiR6dGFuXCIsIFwiJHp0aW1lXCIsIFwiJHp0aW1laFwiLCBcIiR6Ym9vbGVhblwiLFxuICAvLyBcIiR6Y29udmVydFwiLCBcIiR6Y3JjXCIsIFwiJHpjeWNcIiwgXCIkemRhc2NpaVwiLCBcIiR6ZGNoYXJcIiwgXCIkemZcIixcbiAgLy8gXCIkemlzd2lkZVwiLCBcIiR6bGFzY2lpXCIsIFwiJHpsY2hhclwiLCBcIiR6bmFtZVwiLCBcIiR6cG9zaXRpb25cIiwgXCIkenFhc2NpaVwiLFxuICAvLyBcIiR6cWNoYXJcIiwgXCIkenNlYXJjaFwiLCBcIiR6c2Vla1wiLCBcIiR6c3RyaXBcIiwgXCIkendhc2NpaVwiLCBcIiR6d2NoYXJcIixcbiAgLy8gXCIkendpZHRoXCIsIFwiJHp3cGFja1wiLCBcIiR6d2JwYWNrXCIsIFwiJHp3dW5wYWNrXCIsIFwiJHp3YnVucGFja1wiLCBcIiR6emVua2FrdVwiLFxuICAvLyBcIiRjaGFuZ2VcIiwgXCIkbXZcIiwgXCIkbXZhdFwiLCBcIiRtdmZtdFwiLCBcIiRtdmZtdHNcIiwgXCIkbXZpY29udlwiLFxuICAvLyBcIiRtdmljb252c1wiLCBcIiRtdmlubWF0XCIsIFwiJG12bG92ZXJcIiwgXCIkbXZvY29udlwiLCBcIiRtdm9jb252c1wiLCBcIiRtdnJhaXNlXCIsXG4gIC8vIFwiJG12dHJhbnNcIiwgXCIkbXZ2XCIsIFwiJG12bmFtZVwiLCBcIiR6Yml0YW5kXCIsIFwiJHpiaXRjb3VudFwiLCBcIiR6Yml0ZmluZFwiLFxuICAvLyBcIiR6Yml0Z2V0XCIsIFwiJHpiaXRsZW5cIiwgXCIkemJpdG5vdFwiLCBcIiR6Yml0b3JcIiwgXCIkemJpdHNldFwiLCBcIiR6Yml0c3RyXCIsXG4gIC8vIFwiJHpiaXR4b3JcIiwgXCIkemluY3JlbWVudFwiLCBcIiR6bmV4dFwiLCBcIiR6b3JkZXJcIiwgXCIkenByZXZpb3VzXCIsIFwiJHpzb3J0XCIsXG4gIC8vIFwiZGV2aWNlXCIsIFwiJGVjb2RlXCIsIFwiJGVzdGFja1wiLCBcIiRldHJhcFwiLCBcIiRoYWx0XCIsIFwiJGhvcm9sb2dcIixcbiAgLy8gXCIkaW9cIiwgXCIkam9iXCIsIFwiJGtleVwiLCBcIiRuYW1lc3BhY2VcIiwgXCIkcHJpbmNpcGFsXCIsIFwiJHF1aXRcIiwgXCIkcm9sZXNcIixcbiAgLy8gXCIkc3RvcmFnZVwiLCBcIiRzeXN0ZW1cIiwgXCIkdGVzdFwiLCBcIiR0aGlzXCIsIFwiJHRsZXZlbFwiLCBcIiR1c2VybmFtZVwiLFxuICAvLyBcIiR4XCIsIFwiJHlcIiwgXCIkemFcIiwgXCIkemJcIiwgXCIkemNoaWxkXCIsIFwiJHplb2ZcIiwgXCIkemVvc1wiLCBcIiR6ZXJyb3JcIixcbiAgLy8gXCIkemhvcm9sb2dcIiwgXCIkemlvXCIsIFwiJHpqb2JcIiwgXCIkem1vZGVcIiwgXCIkem5zcGFjZVwiLCBcIiR6cGFyZW50XCIsIFwiJHpwaVwiLFxuICAvLyBcIiR6cG9zXCIsIFwiJHpyZWZlcmVuY2VcIiwgXCIkenN0b3JhZ2VcIiwgXCIkenRpbWVzdGFtcFwiLCBcIiR6dGltZXpvbmVcIixcbiAgLy8gXCIkenRyYXBcIiwgXCIkenZlcnNpb25cIlxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0NhY2hcdTAwRTkgT2JqZWN0IFNjcmlwdCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbIFwiY2xzXCIgXSxcbiAgICBrZXl3b3JkczogQ09TX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOVU1CRVJTLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgICAgIGJlZ2luOiAvOy8sXG4gICAgICAgIGVuZDogXCIkXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gRnVuY3Rpb25zIGFuZCB1c2VyLWRlZmluZWQgZnVuY3Rpb25zOiB3cml0ZSAkenRpbWUoNjAqNjAqMyksICQkbXlGdW5jKDEwKSwgJCReVmFsKDEpXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogLyg/OlxcJFxcJD98XFwuXFwuKVxcXj9bYS16QS1aXSsvXG4gICAgICB9LFxuICAgICAgeyAvLyBNYWNybyBjb21tYW5kOiBxdWl0ICQkJE9LXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogL1xcJFxcJFxcJFthLXpBLVpdKy9cbiAgICAgIH0sXG4gICAgICB7IC8vIFNwZWNpYWwgKGdsb2JhbCkgdmFyaWFibGVzOiB3cml0ZSAlcmVxdWVzdC5Db250ZW50OyBCdWlsdC1pbiBjbGFzc2VzOiAlTGlicmFyeS5JbnRlZ2VyXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogLyVbYS16XSsoPzpcXC5bYS16XSspKi9cbiAgICAgIH0sXG4gICAgICB7IC8vIEdsb2JhbCB2YXJpYWJsZTogc2V0IF5nbG9iYWxOYW1lID0gMTIgd3JpdGUgXmdsb2JhbE5hbWVcbiAgICAgICAgY2xhc3NOYW1lOiBcInN5bWJvbFwiLFxuICAgICAgICBiZWdpbjogL1xcXiU/W2EtekEtWl1bXFx3XSovXG4gICAgICB9LFxuICAgICAgeyAvLyBTb21lIGNvbnRyb2wgY29uc3RydWN0aW9uczogZG8gIyNjbGFzcyhQYWNrYWdlLkNsYXNzTmFtZSkuTWV0aG9kKCksICMjc3VwZXIoKVxuICAgICAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiLFxuICAgICAgICBiZWdpbjogLyMjY2xhc3N8IyNzdXBlcnwjZGVmaW5lfCNkaW0vXG4gICAgICB9LFxuICAgICAgLy8gc3ViLWxhbmd1YWdlczogYXJlIG5vdCBmdWxseSBzdXBwb3J0ZWQgYnkgaGxqcyBieSAxMS8xNS8yMDE1XG4gICAgICAvLyBsZWZ0IGZvciB0aGUgZnV0dXJlIGltcGxlbWVudGF0aW9uLlxuICAgICAge1xuICAgICAgICBiZWdpbjogLyZzcWxcXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiBcInNxbFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyYoanN8anNjcmlwdHxqYXZhc2NyaXB0KTwvLFxuICAgICAgICBlbmQ6IC8+LyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBzdWJMYW5ndWFnZTogXCJqYXZhc2NyaXB0XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHRoaXMgYnJha2VzIGZpcnN0IGFuZCBsYXN0IHRhZywgYnV0IHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGVtYmVkIGEgdmFsaWQgaHRtbFxuICAgICAgICBiZWdpbjogLyZodG1sPFxccyo8LyxcbiAgICAgICAgZW5kOiAvPlxccyo+LyxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6IFwieG1sXCJcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29zO1xuIiwgIi8qXG5MYW5ndWFnZTogQysrXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbldlYnNpdGU6IGh0dHBzOi8vaXNvY3BwLm9yZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNwcChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gYWRkZWQgZm9yIGhpc3RvcmljIHJlYXNvbnMgYmVjYXVzZSBgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFYCBkb2VzXG4gIC8vIG5vdCBpbmNsdWRlIHN1Y2ggc3VwcG9ydCBub3IgY2FuIHdlIGJlIHN1cmUgYWxsIHRoZSBncmFtbWFycyBkZXBlbmRpbmdcbiAgLy8gb24gaXQgd291bGQgZGVzaXJlIHRoaXMgYmVoYXZpb3JcbiAgY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLy8nLCAnJCcsIHsgY29udGFpbnM6IFsgeyBiZWdpbjogL1xcXFxcXG4vIH0gXSB9KTtcbiAgY29uc3QgREVDTFRZUEVfQVVUT19SRSA9ICdkZWNsdHlwZVxcXFwoYXV0b1xcXFwpJztcbiAgY29uc3QgTkFNRVNQQUNFX1JFID0gJ1thLXpBLVpfXVxcXFx3Kjo6JztcbiAgY29uc3QgVEVNUExBVEVfQVJHVU1FTlRfUkUgPSAnPFtePD5dKz4nO1xuICBjb25zdCBGVU5DVElPTl9UWVBFX1JFID0gJyg/IXN0cnVjdCkoJ1xuICAgICsgREVDTFRZUEVfQVVUT19SRSArICd8J1xuICAgICsgcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKVxuICAgICsgJ1thLXpBLVpfXVxcXFx3KicgKyByZWdleC5vcHRpb25hbChURU1QTEFURV9BUkdVTUVOVF9SRSlcbiAgKyAnKSc7XG5cbiAgY29uc3QgQ1BQX1BSSU1JVElWRV9UWVBFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW2EtelxcXFxkX10qX3RcXFxcYidcbiAgfTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvbGFuZ3VhZ2UvZXNjYXBlXG4gIC8vIFxcXFwgXFx4IFxceEZGIFxcdTI4MzcgXFx1MDAzMjM3NDcgXFwzNzRcbiAgY29uc3QgQ0hBUkFDVEVSX0VTQ0FQRVMgPSAnXFxcXFxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcXFxTKSc7XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyh1OD98VXxMKT9cIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVfEwpP1xcJygnICsgQ0hBUkFDVEVSX0VTQ0FQRVMgKyAnfC4pJyxcbiAgICAgICAgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9LFxuICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgIGJlZ2luOiAvKD86dTg/fFV8TCk/UlwiKFteKClcXFxcIF17MCwxNn0pXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpKFteKClcXFxcIF17MCwxNn0pXCIvXG4gICAgICB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIEZsb2F0aW5nLXBvaW50IGxpdGVyYWwuXG4gICAgICB7IGJlZ2luOlxuICAgICAgICBcIlsrLV0/KD86XCIgLy8gTGVhZGluZyBzaWduLlxuICAgICAgICAgIC8vIERlY2ltYWwuXG4gICAgICAgICAgKyBcIig/OlwiXG4gICAgICAgICAgICArXCJbMC05XSg/Oic/WzAtOV0pKlxcXFwuKD86WzAtOV0oPzonP1swLTldKSopP1wiXG4gICAgICAgICAgICArIFwifFxcXFwuWzAtOV0oPzonP1swLTldKSpcIlxuICAgICAgICAgICsgXCIpKD86W0VlXVsrLV0/WzAtOV0oPzonP1swLTldKSopP1wiXG4gICAgICAgICAgKyBcInxbMC05XSg/Oic/WzAtOV0pKltFZV1bKy1dP1swLTldKD86Jz9bMC05XSkqXCJcbiAgICAgICAgICAvLyBIZXhhZGVjaW1hbC5cbiAgICAgICAgICArIFwifDBbWHhdKD86XCJcbiAgICAgICAgICAgICtcIlswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqKD86XFxcXC4oPzpbMC05QS1GYS1mXSg/Oic/WzAtOUEtRmEtZl0pKik/KT9cIlxuICAgICAgICAgICAgKyBcInxcXFxcLlswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqXCJcbiAgICAgICAgICArIFwiKVtQcF1bKy1dP1swLTldKD86Jz9bMC05XSkqXCJcbiAgICAgICAgKyBcIikoPzpcIiAvLyBMaXRlcmFsIHN1ZmZpeGVzLlxuICAgICAgICAgICsgXCJbRmZdKD86MTZ8MzJ8NjR8MTI4KT9cIlxuICAgICAgICAgICsgXCJ8KEJGfGJmKTE2XCJcbiAgICAgICAgICArIFwifFtMbF1cIlxuICAgICAgICAgICsgXCJ8XCIgLy8gTGl0ZXJhbCBzdWZmaXggaXMgb3B0aW9uYWwuXG4gICAgICAgICsgXCIpXCJcbiAgICAgIH0sXG4gICAgICAvLyBJbnRlZ2VyIGxpdGVyYWwuXG4gICAgICB7IGJlZ2luOlxuICAgICAgICBcIlsrLV0/XFxcXGIoPzpcIiAvLyBMZWFkaW5nIHNpZ24uXG4gICAgICAgICAgKyBcIjBbQmJdWzAxXSg/Oic/WzAxXSkqXCIgLy8gQmluYXJ5LlxuICAgICAgICAgICsgXCJ8MFtYeF1bMC05QS1GYS1mXSg/Oic/WzAtOUEtRmEtZl0pKlwiIC8vIEhleGFkZWNpbWFsLlxuICAgICAgICAgICsgXCJ8MCg/Oic/WzAtN10pKlwiIC8vIE9jdGFsIG9yIGp1c3QgYSBsb25lIHplcm8uXG4gICAgICAgICAgKyBcInxbMS05XSg/Oic/WzAtOV0pKlwiIC8vIERlY2ltYWwuXG4gICAgICAgICsgXCIpKD86XCIgLy8gTGl0ZXJhbCBzdWZmaXhlcy5cbiAgICAgICAgICArIFwiW1V1XSg/OkxMP3xsbD8pXCJcbiAgICAgICAgICArIFwifFtVdV1bWnpdP1wiXG4gICAgICAgICAgKyBcInwoPzpMTD98bGw/KVtVdV0/XCJcbiAgICAgICAgICArIFwifFtael1bVXVdXCJcbiAgICAgICAgICArIFwifFwiIC8vIExpdGVyYWwgc3VmZml4IGlzIG9wdGlvbmFsLlxuICAgICAgICArIFwiKVwiXG4gICAgICAgIC8vIE5vdGU6IHRoZXJlIGFyZSB1c2VyLWRlZmluZWQgbGl0ZXJhbCBzdWZmaXhlcyB0b28sIGJ1dCBwZXJoYXBzIGhhdmluZyB0aGUgY3VzdG9tIHN1ZmZpeCBub3QgcGFydCBvZiB0aGVcbiAgICAgICAgLy8gbGl0ZXJhbCBoaWdobGlnaHQgYWN0dWFsbHkgbWFrZXMgaXQgc3RhbmQgb3V0IG1vcmUuXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC8jXFxzKlthLXpdK1xcYi8sXG4gICAgZW5kOiAvJC8sXG4gICAga2V5d29yZHM6IHsga2V5d29yZDpcbiAgICAgICAgJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lICdcbiAgICAgICAgKyAncHJhZ21hIF9QcmFnbWEgaWZkZWYgaWZuZGVmIGluY2x1ZGUnIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5pbmhlcml0KFNUUklOR1MsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC88Lio/Pi9cbiAgICAgIH0sXG4gICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBUSVRMRV9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICBiZWdpbjogcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKSArIGhsanMuSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fVElUTEUgPSByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpICsgaGxqcy5JREVOVF9SRSArICdcXFxccypcXFxcKCc7XG5cbiAgLy8gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2tleXdvcmRcbiAgY29uc3QgUkVTRVJWRURfS0VZV09SRFMgPSBbXG4gICAgJ2FsaWduYXMnLFxuICAgICdhbGlnbm9mJyxcbiAgICAnYW5kJyxcbiAgICAnYW5kX2VxJyxcbiAgICAnYXNtJyxcbiAgICAnYXRvbWljX2NhbmNlbCcsXG4gICAgJ2F0b21pY19jb21taXQnLFxuICAgICdhdG9taWNfbm9leGNlcHQnLFxuICAgICdhdXRvJyxcbiAgICAnYml0YW5kJyxcbiAgICAnYml0b3InLFxuICAgICdicmVhaycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29fYXdhaXQnLFxuICAgICdjb19yZXR1cm4nLFxuICAgICdjb195aWVsZCcsXG4gICAgJ2NvbXBsJyxcbiAgICAnY29uY2VwdCcsXG4gICAgJ2NvbnN0X2Nhc3R8MTAnLFxuICAgICdjb25zdGV2YWwnLFxuICAgICdjb25zdGV4cHInLFxuICAgICdjb25zdGluaXQnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RlY2x0eXBlJyxcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2RlbGV0ZScsXG4gICAgJ2RvJyxcbiAgICAnZHluYW1pY19jYXN0fDEwJyxcbiAgICAnZWxzZScsXG4gICAgJ2VudW0nLFxuICAgICdleHBsaWNpdCcsXG4gICAgJ2V4cG9ydCcsXG4gICAgJ2V4dGVybicsXG4gICAgJ2ZhbHNlJyxcbiAgICAnZmluYWwnLFxuICAgICdmb3InLFxuICAgICdmcmllbmQnLFxuICAgICdnb3RvJyxcbiAgICAnaWYnLFxuICAgICdpbXBvcnQnLFxuICAgICdpbmxpbmUnLFxuICAgICdtb2R1bGUnLFxuICAgICdtdXRhYmxlJyxcbiAgICAnbmFtZXNwYWNlJyxcbiAgICAnbmV3JyxcbiAgICAnbm9leGNlcHQnLFxuICAgICdub3QnLFxuICAgICdub3RfZXEnLFxuICAgICdudWxscHRyJyxcbiAgICAnb3BlcmF0b3InLFxuICAgICdvcicsXG4gICAgJ29yX2VxJyxcbiAgICAnb3ZlcnJpZGUnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAncHVibGljJyxcbiAgICAncmVmbGV4cHInLFxuICAgICdyZWdpc3RlcicsXG4gICAgJ3JlaW50ZXJwcmV0X2Nhc3R8MTAnLFxuICAgICdyZXF1aXJlcycsXG4gICAgJ3JldHVybicsXG4gICAgJ3NpemVvZicsXG4gICAgJ3N0YXRpY19hc3NlcnQnLFxuICAgICdzdGF0aWNfY2FzdHwxMCcsXG4gICAgJ3N0cnVjdCcsXG4gICAgJ3N3aXRjaCcsXG4gICAgJ3N5bmNocm9uaXplZCcsXG4gICAgJ3RlbXBsYXRlJyxcbiAgICAndGhpcycsXG4gICAgJ3RocmVhZF9sb2NhbCcsXG4gICAgJ3Rocm93JyxcbiAgICAndHJhbnNhY3Rpb25fc2FmZScsXG4gICAgJ3RyYW5zYWN0aW9uX3NhZmVfZHluYW1pYycsXG4gICAgJ3RydWUnLFxuICAgICd0cnknLFxuICAgICd0eXBlZGVmJyxcbiAgICAndHlwZWlkJyxcbiAgICAndHlwZW5hbWUnLFxuICAgICd1bmlvbicsXG4gICAgJ3VzaW5nJyxcbiAgICAndmlydHVhbCcsXG4gICAgJ3ZvbGF0aWxlJyxcbiAgICAnd2hpbGUnLFxuICAgICd4b3InLFxuICAgICd4b3JfZXEnXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2tleXdvcmRcbiAgY29uc3QgUkVTRVJWRURfVFlQRVMgPSBbXG4gICAgJ2Jvb2wnLFxuICAgICdjaGFyJyxcbiAgICAnY2hhcjE2X3QnLFxuICAgICdjaGFyMzJfdCcsXG4gICAgJ2NoYXI4X3QnLFxuICAgICdkb3VibGUnLFxuICAgICdmbG9hdCcsXG4gICAgJ2ludCcsXG4gICAgJ2xvbmcnLFxuICAgICdzaG9ydCcsXG4gICAgJ3ZvaWQnLFxuICAgICd3Y2hhcl90JyxcbiAgICAndW5zaWduZWQnLFxuICAgICdzaWduZWQnLFxuICAgICdjb25zdCcsXG4gICAgJ3N0YXRpYydcbiAgXTtcblxuICBjb25zdCBUWVBFX0hJTlRTID0gW1xuICAgICdhbnknLFxuICAgICdhdXRvX3B0cicsXG4gICAgJ2JhcnJpZXInLFxuICAgICdiaW5hcnlfc2VtYXBob3JlJyxcbiAgICAnYml0c2V0JyxcbiAgICAnY29tcGxleCcsXG4gICAgJ2NvbmRpdGlvbl92YXJpYWJsZScsXG4gICAgJ2NvbmRpdGlvbl92YXJpYWJsZV9hbnknLFxuICAgICdjb3VudGluZ19zZW1hcGhvcmUnLFxuICAgICdkZXF1ZScsXG4gICAgJ2ZhbHNlX3R5cGUnLFxuICAgICdmdXR1cmUnLFxuICAgICdpbWFnaW5hcnknLFxuICAgICdpbml0aWFsaXplcl9saXN0JyxcbiAgICAnaXN0cmluZ3N0cmVhbScsXG4gICAgJ2p0aHJlYWQnLFxuICAgICdsYXRjaCcsXG4gICAgJ2xvY2tfZ3VhcmQnLFxuICAgICdtdWx0aW1hcCcsXG4gICAgJ211bHRpc2V0JyxcbiAgICAnbXV0ZXgnLFxuICAgICdvcHRpb25hbCcsXG4gICAgJ29zdHJpbmdzdHJlYW0nLFxuICAgICdwYWNrYWdlZF90YXNrJyxcbiAgICAncGFpcicsXG4gICAgJ3Byb21pc2UnLFxuICAgICdwcmlvcml0eV9xdWV1ZScsXG4gICAgJ3F1ZXVlJyxcbiAgICAncmVjdXJzaXZlX211dGV4JyxcbiAgICAncmVjdXJzaXZlX3RpbWVkX211dGV4JyxcbiAgICAnc2NvcGVkX2xvY2snLFxuICAgICdzZXQnLFxuICAgICdzaGFyZWRfZnV0dXJlJyxcbiAgICAnc2hhcmVkX2xvY2snLFxuICAgICdzaGFyZWRfbXV0ZXgnLFxuICAgICdzaGFyZWRfdGltZWRfbXV0ZXgnLFxuICAgICdzaGFyZWRfcHRyJyxcbiAgICAnc3RhY2snLFxuICAgICdzdHJpbmdfdmlldycsXG4gICAgJ3N0cmluZ3N0cmVhbScsXG4gICAgJ3RpbWVkX211dGV4JyxcbiAgICAndGhyZWFkJyxcbiAgICAndHJ1ZV90eXBlJyxcbiAgICAndHVwbGUnLFxuICAgICd1bmlxdWVfbG9jaycsXG4gICAgJ3VuaXF1ZV9wdHInLFxuICAgICd1bm9yZGVyZWRfbWFwJyxcbiAgICAndW5vcmRlcmVkX211bHRpbWFwJyxcbiAgICAndW5vcmRlcmVkX211bHRpc2V0JyxcbiAgICAndW5vcmRlcmVkX3NldCcsXG4gICAgJ3ZhcmlhbnQnLFxuICAgICd2ZWN0b3InLFxuICAgICd3ZWFrX3B0cicsXG4gICAgJ3dzdHJpbmcnLFxuICAgICd3c3RyaW5nX3ZpZXcnXG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05fSElOVFMgPSBbXG4gICAgJ2Fib3J0JyxcbiAgICAnYWJzJyxcbiAgICAnYWNvcycsXG4gICAgJ2FwcGx5JyxcbiAgICAnYXNfY29uc3QnLFxuICAgICdhc2luJyxcbiAgICAnYXRhbicsXG4gICAgJ2F0YW4yJyxcbiAgICAnY2FsbG9jJyxcbiAgICAnY2VpbCcsXG4gICAgJ2NlcnInLFxuICAgICdjaW4nLFxuICAgICdjbG9nJyxcbiAgICAnY29zJyxcbiAgICAnY29zaCcsXG4gICAgJ2NvdXQnLFxuICAgICdkZWNsdmFsJyxcbiAgICAnZW5kbCcsXG4gICAgJ2V4Y2hhbmdlJyxcbiAgICAnZXhpdCcsXG4gICAgJ2V4cCcsXG4gICAgJ2ZhYnMnLFxuICAgICdmbG9vcicsXG4gICAgJ2Ztb2QnLFxuICAgICdmb3J3YXJkJyxcbiAgICAnZnByaW50ZicsXG4gICAgJ2ZwdXRzJyxcbiAgICAnZnJlZScsXG4gICAgJ2ZyZXhwJyxcbiAgICAnZnNjYW5mJyxcbiAgICAnZnV0dXJlJyxcbiAgICAnaW52b2tlJyxcbiAgICAnaXNhbG51bScsXG4gICAgJ2lzYWxwaGEnLFxuICAgICdpc2NudHJsJyxcbiAgICAnaXNkaWdpdCcsXG4gICAgJ2lzZ3JhcGgnLFxuICAgICdpc2xvd2VyJyxcbiAgICAnaXNwcmludCcsXG4gICAgJ2lzcHVuY3QnLFxuICAgICdpc3NwYWNlJyxcbiAgICAnaXN1cHBlcicsXG4gICAgJ2lzeGRpZ2l0JyxcbiAgICAnbGFicycsXG4gICAgJ2xhdW5kZXInLFxuICAgICdsZGV4cCcsXG4gICAgJ2xvZycsXG4gICAgJ2xvZzEwJyxcbiAgICAnbWFrZV9wYWlyJyxcbiAgICAnbWFrZV9zaGFyZWQnLFxuICAgICdtYWtlX3NoYXJlZF9mb3Jfb3ZlcndyaXRlJyxcbiAgICAnbWFrZV90dXBsZScsXG4gICAgJ21ha2VfdW5pcXVlJyxcbiAgICAnbWFsbG9jJyxcbiAgICAnbWVtY2hyJyxcbiAgICAnbWVtY21wJyxcbiAgICAnbWVtY3B5JyxcbiAgICAnbWVtc2V0JyxcbiAgICAnbW9kZicsXG4gICAgJ21vdmUnLFxuICAgICdwb3cnLFxuICAgICdwcmludGYnLFxuICAgICdwdXRjaGFyJyxcbiAgICAncHV0cycsXG4gICAgJ3JlYWxsb2MnLFxuICAgICdzY2FuZicsXG4gICAgJ3NpbicsXG4gICAgJ3NpbmgnLFxuICAgICdzbnByaW50ZicsXG4gICAgJ3NwcmludGYnLFxuICAgICdzcXJ0JyxcbiAgICAnc3NjYW5mJyxcbiAgICAnc3RkJyxcbiAgICAnc3RkZXJyJyxcbiAgICAnc3RkaW4nLFxuICAgICdzdGRvdXQnLFxuICAgICdzdHJjYXQnLFxuICAgICdzdHJjaHInLFxuICAgICdzdHJjbXAnLFxuICAgICdzdHJjcHknLFxuICAgICdzdHJjc3BuJyxcbiAgICAnc3RybGVuJyxcbiAgICAnc3RybmNhdCcsXG4gICAgJ3N0cm5jbXAnLFxuICAgICdzdHJuY3B5JyxcbiAgICAnc3RycGJyaycsXG4gICAgJ3N0cnJjaHInLFxuICAgICdzdHJzcG4nLFxuICAgICdzdHJzdHInLFxuICAgICdzd2FwJyxcbiAgICAndGFuJyxcbiAgICAndGFuaCcsXG4gICAgJ3Rlcm1pbmF0ZScsXG4gICAgJ3RvX3VuZGVybHlpbmcnLFxuICAgICd0b2xvd2VyJyxcbiAgICAndG91cHBlcicsXG4gICAgJ3ZmcHJpbnRmJyxcbiAgICAndmlzaXQnLFxuICAgICd2cHJpbnRmJyxcbiAgICAndnNwcmludGYnXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgJ05VTEwnLFxuICAgICdmYWxzZScsXG4gICAgJ251bGxvcHQnLFxuICAgICdudWxscHRyJyxcbiAgICAndHJ1ZSdcbiAgXTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBCVUlMVF9JTiA9IFsgJ19QcmFnbWEnIF07XG5cbiAgY29uc3QgQ1BQX0tFWVdPUkRTID0ge1xuICAgIHR5cGU6IFJFU0VSVkVEX1RZUEVTLFxuICAgIGtleXdvcmQ6IFJFU0VSVkVEX0tFWVdPUkRTLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIGJ1aWx0X2luOiBCVUlMVF9JTixcbiAgICBfdHlwZV9oaW50czogVFlQRV9ISU5UU1xuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RJU1BBVENIID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uLmRpc3BhdGNoJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIC8vIE9ubHkgZm9yIHJlbGV2YW5jZSwgbm90IGhpZ2hsaWdodGluZy5cbiAgICAgIF9oaW50OiBGVU5DVElPTl9ISU5UUyB9LFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIC8oPyFkZWNsdHlwZSkvLFxuICAgICAgLyg/IWlmKS8sXG4gICAgICAvKD8hZm9yKS8sXG4gICAgICAvKD8hc3dpdGNoKS8sXG4gICAgICAvKD8hd2hpbGUpLyxcbiAgICAgIGhsanMuSURFTlRfUkUsXG4gICAgICByZWdleC5sb29rYWhlYWQoLyg8W148Pl0rPnwpXFxzKlxcKC8pKVxuICB9O1xuXG4gIGNvbnN0IEVYUFJFU1NJT05fQ09OVEFJTlMgPSBbXG4gICAgRlVOQ1RJT05fRElTUEFUQ0gsXG4gICAgUFJFUFJPQ0VTU09SLFxuICAgIENQUF9QUklNSVRJVkVfVFlQRVMsXG4gICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIE5VTUJFUlMsXG4gICAgU1RSSU5HU1xuICBdO1xuXG4gIGNvbnN0IEVYUFJFU1NJT05fQ09OVEVYVCA9IHtcbiAgICAvLyBUaGlzIG1vZGUgY292ZXJzIGV4cHJlc3Npb24gY29udGV4dCB3aGVyZSB3ZSBjYW4ndCBleHBlY3QgYSBmdW5jdGlvblxuICAgIC8vIGRlZmluaXRpb24gYW5kIHNob3VsZG4ndCBoaWdobGlnaHQgYW55dGhpbmcgdGhhdCBsb29rcyBsaWtlIG9uZTpcbiAgICAvLyBgcmV0dXJuIHNvbWUoKWAsIGBlbHNlIGlmKClgLCBgKHgqc3VtKDEsIDIpKWBcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLz0vLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93IHJldHVybiBlbHNlJyxcbiAgICAgICAgZW5kOiAvOy9cbiAgICAgIH1cbiAgICBdLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05fQ09OVEFJTlMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoWyAnc2VsZicgXSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0pLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFQ0xBUkFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbjogJygnICsgRlVOQ1RJT05fVFlQRV9SRSArICdbXFxcXComXFxcXHNdKykrJyArIEZVTkNUSU9OX1RJVExFLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGVuZDogL1t7Oz1dLyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1teXFx3XFxzXFwqJjo8Pi5dLyxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY29uZnVzZWQgYXMgdGhlIGZ1bmN0aW9uIHRpdGxlXG4gICAgICAgIGJlZ2luOiBERUNMVFlQRV9BVVRPX1JFLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBGVU5DVElPTl9USVRMRSxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbIFRJVExFX01PREUgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gbmVlZGVkIGJlY2F1c2Ugd2UgZG8gbm90IGhhdmUgbG9vay1iZWhpbmQgb24gdGhlIGJlbG93IHJ1bGVcbiAgICAgIC8vIHRvIHByZXZlbnQgaXQgZnJvbSBncmFiYmluZyB0aGUgZmluYWwgOiBpbiBhIDo6IHBhaXJcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC86Oi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIGluaXRpYWxpemVyc1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzovLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgIE5VTUJFUlNcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGFsbG93IGZvciBtdWx0aXBsZSBkZWNsYXJhdGlvbnMsIGUuZy46XG4gICAgICAvLyBleHRlcm4gdm9pZCBmKGludCksIGcoY2hhcik7XG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgbWF0Y2g6IC8sL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgTlVNQkVSUyxcbiAgICAgICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTLFxuICAgICAgICAgIC8vIENvdW50IG1hdGNoaW5nIHBhcmVudGhlc2VzLlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgQ1BQX1BSSU1JVElWRV9UWVBFUyxcbiAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgUFJFUFJPQ0VTU09SXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0MrKycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2NjJyxcbiAgICAgICdjKysnLFxuICAgICAgJ2grKycsXG4gICAgICAnaHBwJyxcbiAgICAgICdoaCcsXG4gICAgICAnaHh4JyxcbiAgICAgICdjeHgnXG4gICAgXSxcbiAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY2xhc3NOYW1lQWxpYXNlczogeyAnZnVuY3Rpb24uZGlzcGF0Y2gnOiAnYnVpbHRfaW4nIH0sXG4gICAgY29udGFpbnM6IFtdLmNvbmNhdChcbiAgICAgIEVYUFJFU1NJT05fQ09OVEVYVCxcbiAgICAgIEZVTkNUSU9OX0RFQ0xBUkFUSU9OLFxuICAgICAgRlVOQ1RJT05fRElTUEFUQ0gsXG4gICAgICBFWFBSRVNTSU9OX0NPTlRBSU5TLFxuICAgICAgW1xuICAgICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICAgIHsgLy8gY29udGFpbmVyczogaWUsIGB2ZWN0b3IgPGludD4gcm9vbXMgKDkpO2BcbiAgICAgICAgICBiZWdpbjogJ1xcXFxiKGRlcXVlfGxpc3R8cXVldWV8cHJpb3JpdHlfcXVldWV8cGFpcnxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXl8dHVwbGV8b3B0aW9uYWx8dmFyaWFudHxmdW5jdGlvbilcXFxccyo8KD8hPCknLFxuICAgICAgICAgIGVuZDogJz4nLFxuICAgICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVNcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEU1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgIC8vIGV4dHJhIGNvbXBsZXhpdHkgdG8gZGVhbCB3aXRoIGBlbnVtIGNsYXNzYCBhbmQgYGVudW0gc3RydWN0YFxuICAgICAgICAgICAgL1xcYig/OmVudW0oPzpcXHMrKD86Y2xhc3N8c3RydWN0KSk/fGNsYXNzfHN0cnVjdHx1bmlvbikvLFxuICAgICAgICAgICAgL1xccysvLFxuICAgICAgICAgICAgL1xcdysvXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAgIDE6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIDM6ICd0aXRsZS5jbGFzcydcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0pXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3BwO1xuIiwgIi8qXG5MYW5ndWFnZTogY3Jtc2hcbkF1dGhvcjogS3Jpc3RvZmZlciBHcm9ubHVuZCA8a2dyb25sdW5kQHN1c2UuY29tPlxuV2Vic2l0ZTogaHR0cDovL2NybXNoLmdpdGh1Yi5pb1xuRGVzY3JpcHRpb246IFN5bnRheCBIaWdobGlnaHRpbmcgZm9yIHRoZSBjcm1zaCBEU0xcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjcm1zaChobGpzKSB7XG4gIGNvbnN0IFJFU09VUkNFUyA9ICdwcmltaXRpdmUgcnNjX3RlbXBsYXRlJztcbiAgY29uc3QgQ09NTUFORFMgPSAnZ3JvdXAgY2xvbmUgbXMgbWFzdGVyIGxvY2F0aW9uIGNvbG9jYXRpb24gb3JkZXIgZmVuY2luZ190b3BvbG9neSAnXG4gICAgICArICdyc2NfdGlja2V0IGFjbF90YXJnZXQgYWNsX2dyb3VwIHVzZXIgcm9sZSAnXG4gICAgICArICd0YWcgeG1sJztcbiAgY29uc3QgUFJPUEVSVFlfU0VUUyA9ICdwcm9wZXJ0eSByc2NfZGVmYXVsdHMgb3BfZGVmYXVsdHMnO1xuICBjb25zdCBLRVlXT1JEUyA9ICdwYXJhbXMgbWV0YSBvcGVyYXRpb25zIG9wIHJ1bGUgYXR0cmlidXRlcyB1dGlsaXphdGlvbic7XG4gIGNvbnN0IE9QRVJBVE9SUyA9ICdyZWFkIHdyaXRlIGRlbnkgZGVmaW5lZCBub3RfZGVmaW5lZCBpbl9yYW5nZSBkYXRlIHNwZWMgaW4gJ1xuICAgICAgKyAncmVmIHJlZmVyZW5jZSBhdHRyaWJ1dGUgdHlwZSB4cGF0aCB2ZXJzaW9uIGFuZCBvciBsdCBndCB0YWcgJ1xuICAgICAgKyAnbHRlIGd0ZSBlcSBuZSBcXFxcJztcbiAgY29uc3QgVFlQRVMgPSAnbnVtYmVyIHN0cmluZyc7XG4gIGNvbnN0IExJVEVSQUxTID0gJ01hc3RlciBTdGFydGVkIFNsYXZlIFN0b3BwZWQgc3RhcnQgcHJvbW90ZSBkZW1vdGUgc3RvcCBtb25pdG9yIHRydWUgZmFsc2UnO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2NybXNoJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY3JtJyxcbiAgICAgICdwY21rJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMgKyAnICcgKyBPUEVSQVRPUlMgKyAnICcgKyBUWVBFUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25vZGUnLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6ICdcXFxccyooW1xcXFx3Xy1dKzopPycsXG4gICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccypbXFxcXCRcXFxcd19dW1xcXFx3Xy1dKidcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6IFJFU09VUkNFUyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgIGVuZDogJ1xcXFxzKltcXFxcJFxcXFx3X11bXFxcXHdfLV0qJyxcbiAgICAgICAgICBzdGFydHM6IHsgZW5kOiAnXFxcXHMqQD9bXFxcXHdfXVtcXFxcd19cXFxcLjotXSonIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgQ09NTUFORFMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKVxcXFxzKycsXG4gICAgICAgIGtleXdvcmRzOiBDT01NQU5EUyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgIGVuZDogJ1tcXFxcJFxcXFx3X11bXFxcXHdfLV0qJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiBQUk9QRVJUWV9TRVRTLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgZW5kOiAnXFxcXHMqKFtcXFxcd18tXSs6KT8nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcob2NmfHN5c3RlbWR8c2VydmljZXxsc2IpOltcXFxcd186LV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8obXN8c3xofG0pPycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgICAgIGJlZ2luOiAnWy1dPyhpbmZpbml0eXxpbmYpJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IC8oW0EtWmEteiRfI11bXFx3Xy1dKyk9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0YWcnLFxuICAgICAgICBiZWdpbjogJzwvPycsXG4gICAgICAgIGVuZDogJy8/PicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcm1zaDtcbiIsICIvKlxuTGFuZ3VhZ2U6IENyeXN0YWxcbkF1dGhvcjogVFNVWVVTQVRPIEtpdHN1bmUgPG1ha2UuanVzdC5vbkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2NyeXN0YWwtbGFuZy5vcmdcbkNhdGVnb3J5OiBzeXN0ZW1cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjcnlzdGFsKGhsanMpIHtcbiAgY29uc3QgSU5UX1NVRkZJWCA9ICcoXz9bdWldKDh8MTZ8MzJ8NjR8MTI4KSk/JztcbiAgY29uc3QgRkxPQVRfU1VGRklYID0gJyhfP2YoMzJ8NjQpKT8nO1xuICBjb25zdCBDUllTVEFMX0lERU5UX1JFID0gJ1thLXpBLVpfXVxcXFx3KlshPz1dPyc7XG4gIGNvbnN0IENSWVNUQUxfTUVUSE9EX1JFID0gJ1thLXpBLVpfXVxcXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58Wz0hXX58PT09P3w8PT58Wzw+XT0/fFxcXFwqXFxcXCp8Wy0vKyVeJip+fF18Ly98Ly89fCZbLSsqXT0/fCZcXFxcKlxcXFwqfFxcXFxbXFxcXF1bPT9dPyc7XG4gIGNvbnN0IENSWVNUQUxfUEFUSF9SRSA9ICdbQS1aYS16X11cXFxcdyooOjpcXFxcdyspKihcXFxcP3whKT8nO1xuICBjb25zdCBDUllTVEFMX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBDUllTVEFMX0lERU5UX1JFLFxuICAgIGtleXdvcmQ6XG4gICAgICAnYWJzdHJhY3QgYWxpYXMgYW5ub3RhdGlvbiBhcyBhcz8gYXNtIGJlZ2luIGJyZWFrIGNhc2UgY2xhc3MgZGVmIGRvIGVsc2UgZWxzaWYgZW5kIGVuc3VyZSBlbnVtIGV4dGVuZCBmb3IgZnVuIGlmICdcbiAgICAgICsgJ2luY2x1ZGUgaW5zdGFuY2Vfc2l6ZW9mIGlzX2E/IGxpYiBtYWNybyBtb2R1bGUgbmV4dCBuaWw/IG9mIG91dCBwb2ludGVyb2YgcHJpdmF0ZSBwcm90ZWN0ZWQgcmVzY3VlIHJlc3BvbmRzX3RvPyAnXG4gICAgICArICdyZXR1cm4gcmVxdWlyZSBzZWxlY3Qgc2VsZiBzaXplb2Ygc3RydWN0IHN1cGVyIHRoZW4gdHlwZSB0eXBlb2YgdW5pb24gdW5pbml0aWFsaXplZCB1bmxlc3MgdW50aWwgdmVyYmF0aW0gd2hlbiB3aGlsZSB3aXRoIHlpZWxkICdcbiAgICAgICsgJ19fRElSX18gX19FTkRfTElORV9fIF9fRklMRV9fIF9fTElORV9fJyxcbiAgICBsaXRlcmFsOiAnZmFsc2UgbmlsIHRydWUnXG4gIH07XG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFNcbiAgfTtcbiAgLy8gYm9ycm93ZWQgZnJvbSBSdWJ5XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIC8vIG5lZ2F0aXZlLWxvb2sgZm9yd2FyZCBhdHRlbXBzIHRvIHByZXZlbnQgZmFsc2UgbWF0Y2hlcyBsaWtlOlxuICAgIC8vIEBpZGVudEAgb3IgJGlkZW50JCB0aGF0IG1pZ2h0IGluZGljYXRlIHRoaXMgaXMgbm90IHJ1YnkgYXQgYWxsXG4gICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCIsXG4gICAgYmVnaW46ICcoXFxcXCRcXFxcVyl8KChcXFxcJHxAQD8pKFxcXFx3KykpKD89W15AJD9dKScgKyBgKD8hW0EtWmEtel0pKD8hW0AkPyddKWBcbiAgfTtcbiAgY29uc3QgRVhQQU5TSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFx7XFxcXHsnLFxuICAgICAgICBlbmQ6ICdcXFxcfVxcXFx9J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxceyUnLFxuICAgICAgICBlbmQ6ICclXFxcXH0nXG4gICAgICB9XG4gICAgXSxcbiAgICBrZXl3b3JkczogQ1JZU1RBTF9LRVlXT1JEU1xuICB9O1xuXG4gIGZ1bmN0aW9uIHJlY3Vyc2l2ZVBhcmVuKGJlZ2luLCBlbmQpIHtcbiAgICBjb25zdFxuICAgICAgICBjb250YWlucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogYmVnaW4sXG4gICAgICAgICAgICBlbmQ6IGVuZFxuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICBjb250YWluc1swXS5jb250YWlucyA9IGNvbnRhaW5zO1xuICAgIHJldHVybiBjb250YWlucztcbiAgfVxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL2AvLFxuICAgICAgICBlbmQ6IC9gL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/XFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/XFxcXFsnLFxuICAgICAgICBlbmQ6ICdcXFxcXScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXFsnLCAnXFxcXF0nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/XFxcXHsnLFxuICAgICAgICBlbmQ6IC9cXH0vLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oL1xcey8sIC9cXH0vKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/PCcsXG4gICAgICAgIGVuZDogJz4nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJzwnLCAnPicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVbUXdpXT9cXFxcfCcsXG4gICAgICAgIGVuZDogJ1xcXFx8J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC88PC1cXHcrJC8sXG4gICAgICAgIGVuZDogL15cXHMqXFx3KyQvXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgUV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyVxXFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclcVxcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnJXFcXFxceycsXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbigvXFx7LywgL1xcfS8pXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVxPCcsXG4gICAgICAgIGVuZDogJz4nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJzwnLCAnPicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVxXFxcXHwnLFxuICAgICAgICBlbmQ6ICdcXFxcfCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPDwtJ1xcdysnJC8sXG4gICAgICAgIGVuZDogL15cXHMqXFx3KyQvXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgUkVHRVhQID0ge1xuICAgIGJlZ2luOiAnKD8hJVxcXFx9KSgnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXG58XFxcXGIoY2FzZXxpZnxzZWxlY3R8dW5sZXNzfHVudGlsfHdoZW58d2hpbGUpXFxcXGIpXFxcXHMqJyxcbiAgICBrZXl3b3JkczogJ2Nhc2UgaWYgc2VsZWN0IHVubGVzcyB1bnRpbCB3aGVuIHdoaWxlJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnLy9bYS16XSonLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJy8oPyFcXFxcLyknLFxuICAgICAgICAgICAgZW5kOiAnL1thLXpdKidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBSRUdFWFAyID0ge1xuICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUXG4gICAgXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyVyXFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclclxcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnJXJcXFxceycsXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbigvXFx7LywgL1xcfS8pXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVyPCcsXG4gICAgICAgIGVuZDogJz4nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJzwnLCAnPicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVyXFxcXHwnLFxuICAgICAgICBlbmQ6ICdcXFxcfCdcbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBBVFRSSUJVVEUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAXFxcXFsnLFxuICAgIGVuZDogJ1xcXFxdJyxcbiAgICBjb250YWluczogWyBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pIF1cbiAgfTtcbiAgY29uc3QgQ1JZU1RBTF9ERUZBVUxUX0NPTlRBSU5TID0gW1xuICAgIEVYUEFOU0lPTixcbiAgICBTVFJJTkcsXG4gICAgUV9TVFJJTkcsXG4gICAgUkVHRVhQMixcbiAgICBSRUdFWFAsXG4gICAgQVRUUklCVVRFLFxuICAgIFZBUklBQkxFLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIG1vZHVsZSBzdHJ1Y3QnLFxuICAgICAgZW5kOiAnJHw7JyxcbiAgICAgIGlsbGVnYWw6IC89LyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IENSWVNUQUxfUEFUSF9SRSB9KSxcbiAgICAgICAgeyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgaW5oZXJpdGFuY2VcbiAgICAgICAgICBiZWdpbjogJzwnIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdsaWIgZW51bSB1bmlvbicsXG4gICAgICBlbmQ6ICckfDsnLFxuICAgICAgaWxsZWdhbDogLz0vLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogQ1JZU1RBTF9QQVRIX1JFIH0pXG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbktleXdvcmRzOiAnYW5ub3RhdGlvbicsXG4gICAgICBlbmQ6ICckfDsnLFxuICAgICAgaWxsZWdhbDogLz0vLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogQ1JZU1RBTF9QQVRIX1JFIH0pXG4gICAgICBdLFxuICAgICAgcmVsZXZhbmNlOiAyXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICBiZWdpbktleXdvcmRzOiAnZGVmJyxcbiAgICAgIGVuZDogL1xcQlxcYi8sXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7XG4gICAgICAgICAgYmVnaW46IENSWVNUQUxfTUVUSE9EX1JFLFxuICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW4gbWFjcm8nLFxuICAgICAgZW5kOiAvXFxCXFxiLyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgICBiZWdpbjogQ1JZU1RBTF9NRVRIT0RfUkUsXG4gICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMlxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKCF8XFxcXD8pPzonLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgYmVnaW46ICc6JyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIFNUUklORyxcbiAgICAgICAgeyBiZWdpbjogQ1JZU1RBTF9NRVRIT0RfUkUgfVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHsgYmVnaW46ICdcXFxcYjBiKFswMV9dKyknICsgSU5UX1NVRkZJWCB9LFxuICAgICAgICB7IGJlZ2luOiAnXFxcXGIwbyhbMC03X10rKScgKyBJTlRfU1VGRklYIH0sXG4gICAgICAgIHsgYmVnaW46ICdcXFxcYjB4KFtBLUZhLWYwLTlfXSspJyArIElOVF9TVUZGSVggfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxiKFsxLTldWzAtOV9dKlswLTldfFswLTldKShcXFxcLlswLTldWzAtOV9dKik/KFtlRV1fP1stK10/WzAtOV9dKik/JyArIEZMT0FUX1NVRkZJWCArICcoPyFfKScgfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxiKFsxLTldWzAtOV9dKnwwKScgKyBJTlRfU1VGRklYIH1cbiAgICAgIF0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gQ1JZU1RBTF9ERUZBVUxUX0NPTlRBSU5TO1xuICBFWFBBTlNJT04uY29udGFpbnMgPSBDUllTVEFMX0RFRkFVTFRfQ09OVEFJTlMuc2xpY2UoMSk7IC8vIHdpdGhvdXQgRVhQQU5TSU9OXG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ3J5c3RhbCcsXG4gICAgYWxpYXNlczogWyAnY3InIF0sXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IENSWVNUQUxfREVGQVVMVF9DT05UQUlOU1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyeXN0YWw7XG4iLCAiLypcbkxhbmd1YWdlOiBDI1xuQXV0aG9yOiBKYXNvbiBEaWFtb25kIDxqYXNvbkBkaWFtb25kLm5hbWU+XG5Db250cmlidXRvcjogTmljb2xhcyBMTE9CRVJBIDxubGxvYmVyYUBnbWFpbC5jb20+LCBQaWV0ZXIgVmFudG9ycmUgPHBpZXRlcnZhbnRvcnJlQGdtYWlsLmNvbT4sIERhdmlkIFBpbmUgPGRhdmlkLnBpbmVAbWljcm9zb2Z0LmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2RvdG5ldC9jc2hhcnAvXG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY3NoYXJwKGhsanMpIHtcbiAgY29uc3QgQlVJTFRfSU5fS0VZV09SRFMgPSBbXG4gICAgJ2Jvb2wnLFxuICAgICdieXRlJyxcbiAgICAnY2hhcicsXG4gICAgJ2RlY2ltYWwnLFxuICAgICdkZWxlZ2F0ZScsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2R5bmFtaWMnLFxuICAgICdlbnVtJyxcbiAgICAnZmxvYXQnLFxuICAgICdpbnQnLFxuICAgICdsb25nJyxcbiAgICAnbmludCcsXG4gICAgJ251aW50JyxcbiAgICAnb2JqZWN0JyxcbiAgICAnc2J5dGUnLFxuICAgICdzaG9ydCcsXG4gICAgJ3N0cmluZycsXG4gICAgJ3Vsb25nJyxcbiAgICAndWludCcsXG4gICAgJ3VzaG9ydCdcbiAgXTtcbiAgY29uc3QgRlVOQ1RJT05fTU9ESUZJRVJTID0gW1xuICAgICdwdWJsaWMnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAnc3RhdGljJyxcbiAgICAnaW50ZXJuYWwnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2FzeW5jJyxcbiAgICAnZXh0ZXJuJyxcbiAgICAnb3ZlcnJpZGUnLFxuICAgICd1bnNhZmUnLFxuICAgICd2aXJ0dWFsJyxcbiAgICAnbmV3JyxcbiAgICAnc2VhbGVkJyxcbiAgICAncGFydGlhbCdcbiAgXTtcbiAgY29uc3QgTElURVJBTF9LRVlXT1JEUyA9IFtcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbCcsXG4gICAgJ3RydWUnXG4gIF07XG4gIGNvbnN0IE5PUk1BTF9LRVlXT1JEUyA9IFtcbiAgICAnYWJzdHJhY3QnLFxuICAgICdhcycsXG4gICAgJ2Jhc2UnLFxuICAgICdicmVhaycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29uc3QnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2V2ZW50JyxcbiAgICAnZXhwbGljaXQnLFxuICAgICdleHRlcm4nLFxuICAgICdmaW5hbGx5JyxcbiAgICAnZml4ZWQnLFxuICAgICdmb3InLFxuICAgICdmb3JlYWNoJyxcbiAgICAnZ290bycsXG4gICAgJ2lmJyxcbiAgICAnaW1wbGljaXQnLFxuICAgICdpbicsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ2ludGVybmFsJyxcbiAgICAnaXMnLFxuICAgICdsb2NrJyxcbiAgICAnbmFtZXNwYWNlJyxcbiAgICAnbmV3JyxcbiAgICAnb3BlcmF0b3InLFxuICAgICdvdXQnLFxuICAgICdvdmVycmlkZScsXG4gICAgJ3BhcmFtcycsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdwdWJsaWMnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3JlY29yZCcsXG4gICAgJ3JlZicsXG4gICAgJ3JldHVybicsXG4gICAgJ3Njb3BlZCcsXG4gICAgJ3NlYWxlZCcsXG4gICAgJ3NpemVvZicsXG4gICAgJ3N0YWNrYWxsb2MnLFxuICAgICdzdGF0aWMnLFxuICAgICdzdHJ1Y3QnLFxuICAgICdzd2l0Y2gnLFxuICAgICd0aGlzJyxcbiAgICAndGhyb3cnLFxuICAgICd0cnknLFxuICAgICd0eXBlb2YnLFxuICAgICd1bmNoZWNrZWQnLFxuICAgICd1bnNhZmUnLFxuICAgICd1c2luZycsXG4gICAgJ3ZpcnR1YWwnLFxuICAgICd2b2lkJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICd3aGlsZSdcbiAgXTtcbiAgY29uc3QgQ09OVEVYVFVBTF9LRVlXT1JEUyA9IFtcbiAgICAnYWRkJyxcbiAgICAnYWxpYXMnLFxuICAgICdhbmQnLFxuICAgICdhc2NlbmRpbmcnLFxuICAgICdhc3luYycsXG4gICAgJ2F3YWl0JyxcbiAgICAnYnknLFxuICAgICdkZXNjZW5kaW5nJyxcbiAgICAnZXF1YWxzJyxcbiAgICAnZnJvbScsXG4gICAgJ2dldCcsXG4gICAgJ2dsb2JhbCcsXG4gICAgJ2dyb3VwJyxcbiAgICAnaW5pdCcsXG4gICAgJ2ludG8nLFxuICAgICdqb2luJyxcbiAgICAnbGV0JyxcbiAgICAnbmFtZW9mJyxcbiAgICAnbm90JyxcbiAgICAnbm90bnVsbCcsXG4gICAgJ29uJyxcbiAgICAnb3InLFxuICAgICdvcmRlcmJ5JyxcbiAgICAncGFydGlhbCcsXG4gICAgJ3JlbW92ZScsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3NldCcsXG4gICAgJ3VubWFuYWdlZCcsXG4gICAgJ3ZhbHVlfDAnLFxuICAgICd2YXInLFxuICAgICd3aGVuJyxcbiAgICAnd2hlcmUnLFxuICAgICd3aXRoJyxcbiAgICAneWllbGQnXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogTk9STUFMX0tFWVdPUkRTLmNvbmNhdChDT05URVhUVUFMX0tFWVdPUkRTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5fS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTF9LRVlXT1JEU1xuICB9O1xuICBjb25zdCBUSVRMRV9NT0RFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogJ1thLXpBLVpdKFxcXFwuP1xcXFx3KSonIH0pO1xuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKHV8VXxsfEx8dWx8VUx8ZnxGfGJ8QiknIH0sXG4gICAgICB7IGJlZ2luOiAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOVxcJ10rfChcXFxcYltcXFxcZFxcJ10rKFxcXFwuW1xcXFxkXFwnXSopP3xcXFxcLltcXFxcZFxcJ10rKShbZUVdWy0rXT9bXFxcXGRcXCddKyk/KScgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFJBV19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1wiXCJcIihcIiopKD8hXCIpKC58XFxuKSo/XCJcIlwiXFwxLyxcbiAgICByZWxldmFuY2U6IDFcbiAgfTtcbiAgY29uc3QgVkVSQkFUSU1fU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdAXCInLFxuICAgIGVuZDogJ1wiJyxcbiAgICBjb250YWluczogWyB7IGJlZ2luOiAnXCJcIicgfSBdXG4gIH07XG4gIGNvbnN0IFZFUkJBVElNX1NUUklOR19OT19MRiA9IGhsanMuaW5oZXJpdChWRVJCQVRJTV9TVFJJTkcsIHsgaWxsZWdhbDogL1xcbi8gfSk7XG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgU1VCU1RfTk9fTEYgPSBobGpzLmluaGVyaXQoU1VCU1QsIHsgaWxsZWdhbDogL1xcbi8gfSk7XG4gIGNvbnN0IElOVEVSUE9MQVRFRF9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJFwiLyxcbiAgICBlbmQ6ICdcIicsXG4gICAgaWxsZWdhbDogL1xcbi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgYmVnaW46IC9cXHtcXHsvIH0sXG4gICAgICB7IGJlZ2luOiAvXFx9XFx9LyB9LFxuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RfTk9fTEZcbiAgICBdXG4gIH07XG4gIGNvbnN0IElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJEBcIi8sXG4gICAgZW5kOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luOiAvXFx7XFx7LyB9LFxuICAgICAgeyBiZWdpbjogL1xcfVxcfS8gfSxcbiAgICAgIHsgYmVnaW46ICdcIlwiJyB9LFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkdfTk9fTEYgPSBobGpzLmluaGVyaXQoSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORywge1xuICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luOiAvXFx7XFx7LyB9LFxuICAgICAgeyBiZWdpbjogL1xcfVxcfS8gfSxcbiAgICAgIHsgYmVnaW46ICdcIlwiJyB9LFxuICAgICAgU1VCU1RfTk9fTEZcbiAgICBdXG4gIH0pO1xuICBTVUJTVC5jb250YWlucyA9IFtcbiAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgIElOVEVSUE9MQVRFRF9TVFJJTkcsXG4gICAgVkVSQkFUSU1fU1RSSU5HLFxuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIE5VTUJFUlMsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICBdO1xuICBTVUJTVF9OT19MRi5jb250YWlucyA9IFtcbiAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HX05PX0xGLFxuICAgIElOVEVSUE9MQVRFRF9TVFJJTkcsXG4gICAgVkVSQkFUSU1fU1RSSU5HX05PX0xGLFxuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIE5VTUJFUlMsXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsIHsgaWxsZWdhbDogL1xcbi8gfSlcbiAgXTtcbiAgY29uc3QgU1RSSU5HID0geyB2YXJpYW50czogW1xuICAgIFJBV19TVFJJTkcsXG4gICAgSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORyxcbiAgICBJTlRFUlBPTEFURURfU1RSSU5HLFxuICAgIFZFUkJBVElNX1NUUklORyxcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICBdIH07XG5cbiAgY29uc3QgR0VORVJJQ19NT0RJRklFUiA9IHtcbiAgICBiZWdpbjogXCI8XCIsXG4gICAgZW5kOiBcIj5cIixcbiAgICBjb250YWluczogW1xuICAgICAgeyBiZWdpbktleXdvcmRzOiBcImluIG91dFwiIH0sXG4gICAgICBUSVRMRV9NT0RFXG4gICAgXVxuICB9O1xuICBjb25zdCBUWVBFX0lERU5UX1JFID0gaGxqcy5JREVOVF9SRSArICcoPCcgKyBobGpzLklERU5UX1JFICsgJyhcXFxccyosXFxcXHMqJyArIGhsanMuSURFTlRfUkUgKyAnKSo+KT8oXFxcXFtcXFxcXSk/JztcbiAgY29uc3QgQVRfSURFTlRJRklFUiA9IHtcbiAgICAvLyBwcmV2ZW50cyBleHByZXNzaW9ucyBsaWtlIGBAY2xhc3NgIGZyb20gaW5jb3JyZWN0IGZsYWdnaW5nXG4gICAgLy8gYGNsYXNzYCBhcyBhIGtleXdvcmRcbiAgICBiZWdpbjogXCJAXCIgKyBobGpzLklERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0MjJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY3MnLFxuICAgICAgJ2MjJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC86Oi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy8vLycsXG4gICAgICAgICckJyxcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYmVnaW46ICcvLy8nLFxuICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGJlZ2luOiAnPCEtLXwtLT4nIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYmVnaW46ICc8Lz8nLFxuICAgICAgICAgICAgICAgICAgZW5kOiAnPidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSByZWdpb24gZW5kcmVnaW9uIHByYWdtYSBjaGVja3N1bScgfVxuICAgICAgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIE5VTUJFUlMsXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGVuZDogL1t7Oz1dLyxcbiAgICAgICAgaWxsZWdhbDogL1teXFxzOixdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6IFwid2hlcmUgY2xhc3NcIiB9LFxuICAgICAgICAgIFRJVExFX01PREUsXG4gICAgICAgICAgR0VORVJJQ19NT0RJRklFUixcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmFtZXNwYWNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGlsbGVnYWw6IC9bXlxcczpdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBUSVRMRV9NT0RFLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdyZWNvcmQnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGVuZDogL1t7Oz1dLyxcbiAgICAgICAgaWxsZWdhbDogL1teXFxzOl0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFRJVExFX01PREUsXG4gICAgICAgICAgR0VORVJJQ19NT0RJRklFUixcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBbQXR0cmlidXRlcyhcIlwiKV1cbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKlxcXFxbKD89W1xcXFx3XSknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICBlbmQ6IC9cIi9cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEV4cHJlc3Npb24ga2V5d29yZHMgcHJldmVudCAna2V5d29yZCBOYW1lKC4uLiknIGZyb20gYmVpbmdcbiAgICAgICAgLy8gcmVjb2duaXplZCBhcyBhIGZ1bmN0aW9uIGRlZmluaXRpb25cbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25ldyByZXR1cm4gdGhyb3cgYXdhaXQgZWxzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJygnICsgVFlQRV9JREVOVF9SRSArICdcXFxccyspKycgKyBobGpzLklERU5UX1JFICsgJ1xcXFxzKig8W149XSs+XFxcXHMqKT9cXFxcKCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9cXHMqW3s7PV0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gcHJldmVudHMgdGhlc2UgZnJvbSBiZWluZyBoaWdobGlnaHRlZCBgdGl0bGVgXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogRlVOQ1RJT05fTU9ESUZJRVJTLmpvaW4oXCIgXCIpLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXFxccyooPFtePV0rPlxcXFxzKik/XFxcXCgnLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLlRJVExFX01PREUsXG4gICAgICAgICAgICAgIEdFTkVSSUNfTU9ESUZJRVJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXChcXCkvIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgQVRfSURFTlRJRklFUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjc2hhcnA7XG4iLCAiLypcbkxhbmd1YWdlOiBDU1BcbkRlc2NyaXB0aW9uOiBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkZWZpbml0aW9uIGhpZ2hsaWdodGluZ1xuQXV0aG9yOiBUYXJhcyA8b3hkZWZAb3hkZWYuaW5mbz5cbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQ1NQXG5DYXRlZ29yeTogd2ViXG5cbnZpbTogdHM9MiBzdz0yIHN0PTJcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjc3AoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImJhc2UtdXJpXCIsXG4gICAgXCJjaGlsZC1zcmNcIixcbiAgICBcImNvbm5lY3Qtc3JjXCIsXG4gICAgXCJkZWZhdWx0LXNyY1wiLFxuICAgIFwiZm9udC1zcmNcIixcbiAgICBcImZvcm0tYWN0aW9uXCIsXG4gICAgXCJmcmFtZS1hbmNlc3RvcnNcIixcbiAgICBcImZyYW1lLXNyY1wiLFxuICAgIFwiaW1nLXNyY1wiLFxuICAgIFwibWFuaWZlc3Qtc3JjXCIsXG4gICAgXCJtZWRpYS1zcmNcIixcbiAgICBcIm9iamVjdC1zcmNcIixcbiAgICBcInBsdWdpbi10eXBlc1wiLFxuICAgIFwicmVwb3J0LXVyaVwiLFxuICAgIFwic2FuZGJveFwiLFxuICAgIFwic2NyaXB0LXNyY1wiLFxuICAgIFwic3R5bGUtc3JjXCIsXG4gICAgXCJ0cnVzdGVkLXR5cGVzXCIsXG4gICAgXCJ1bnNhZmUtaGFzaGVzXCIsXG4gICAgXCJ3b3JrZXItc3JjXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ1NQJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICdbYS16QS1aXVthLXpBLVowLTlfLV0qJyxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogXCInXCIsXG4gICAgICAgIGVuZDogXCInXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXkNvbnRlbnQnLFxuICAgICAgICBlbmQ6ICc6JyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjc3A7XG4iLCAiY29uc3QgTU9ERVMgPSAoaGxqcykgPT4ge1xuICByZXR1cm4ge1xuICAgIElNUE9SVEFOVDoge1xuICAgICAgc2NvcGU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICB9LFxuICAgIEJMT0NLX0NPTU1FTlQ6IGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgSEVYQ09MT1I6IHtcbiAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAvIygoWzAtOWEtZkEtRl17Myw0fSl8KChbMC05YS1mQS1GXXsyfSl7Myw0fSkpXFxiL1xuICAgIH0sXG4gICAgRlVOQ1RJT05fRElTUEFUQ0g6IHtcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgYmVnaW46IC9bXFx3LV0rKD89XFwoKS9cbiAgICB9LFxuICAgIEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ3NlbGVjdG9yLWF0dHInLFxuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIGlsbGVnYWw6ICckJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgXVxuICAgIH0sXG4gICAgQ1NTX05VTUJFUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUgKyAnKCcgK1xuICAgICAgICAnJXxlbXxleHxjaHxyZW0nICtcbiAgICAgICAgJ3x2d3x2aHx2bWlufHZtYXgnICtcbiAgICAgICAgJ3xjbXxtbXxpbnxwdHxwY3xweCcgK1xuICAgICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAgICd8c3xtcycgK1xuICAgICAgICAnfEh6fGtIeicgK1xuICAgICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICAgJyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgQ1NTX1ZBUklBQkxFOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYXR0clwiLFxuICAgICAgYmVnaW46IC8tLVtBLVphLXpfXVtBLVphLXowLTlfLV0qL1xuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IEhUTUxfVEFHUyA9IFtcbiAgJ2EnLFxuICAnYWJicicsXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYXVkaW8nLFxuICAnYicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnYnV0dG9uJyxcbiAgJ2NhbnZhcycsXG4gICdjYXB0aW9uJyxcbiAgJ2NpdGUnLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkZWwnLFxuICAnZGV0YWlscycsXG4gICdkZm4nLFxuICAnZGl2JyxcbiAgJ2RsJyxcbiAgJ2R0JyxcbiAgJ2VtJyxcbiAgJ2ZpZWxkc2V0JyxcbiAgJ2ZpZ2NhcHRpb24nLFxuICAnZmlndXJlJyxcbiAgJ2Zvb3RlcicsXG4gICdmb3JtJyxcbiAgJ2gxJyxcbiAgJ2gyJyxcbiAgJ2gzJyxcbiAgJ2g0JyxcbiAgJ2g1JyxcbiAgJ2g2JyxcbiAgJ2hlYWRlcicsXG4gICdoZ3JvdXAnLFxuICAnaHRtbCcsXG4gICdpJyxcbiAgJ2lmcmFtZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAnaW5zJyxcbiAgJ2tiZCcsXG4gICdsYWJlbCcsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbWFpbicsXG4gICdtYXJrJyxcbiAgJ21lbnUnLFxuICAnbmF2JyxcbiAgJ29iamVjdCcsXG4gICdvbCcsXG4gICdvcHRncm91cCcsXG4gICdvcHRpb24nLFxuICAncCcsXG4gICdwaWN0dXJlJyxcbiAgJ3EnLFxuICAncXVvdGUnLFxuICAnc2FtcCcsXG4gICdzZWN0aW9uJyxcbiAgJ3NlbGVjdCcsXG4gICdzb3VyY2UnLFxuICAnc3BhbicsXG4gICdzdHJvbmcnLFxuICAnc3VtbWFyeScsXG4gICdzdXAnLFxuICAndGFibGUnLFxuICAndGJvZHknLFxuICAndGQnLFxuICAndGV4dGFyZWEnLFxuICAndGZvb3QnLFxuICAndGgnLFxuICAndGhlYWQnLFxuICAndGltZScsXG4gICd0cicsXG4gICd1bCcsXG4gICd2YXInLFxuICAndmlkZW8nXG5dO1xuXG5jb25zdCBTVkdfVEFHUyA9IFtcbiAgJ2RlZnMnLFxuICAnZycsXG4gICdtYXJrZXInLFxuICAnbWFzaycsXG4gICdwYXR0ZXJuJyxcbiAgJ3N2ZycsXG4gICdzd2l0Y2gnLFxuICAnc3ltYm9sJyxcbiAgJ2ZlQmxlbmQnLFxuICAnZmVDb2xvck1hdHJpeCcsXG4gICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgJ2ZlQ29tcG9zaXRlJyxcbiAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAnZmVGbG9vZCcsXG4gICdmZUdhdXNzaWFuQmx1cicsXG4gICdmZUltYWdlJyxcbiAgJ2ZlTWVyZ2UnLFxuICAnZmVNb3JwaG9sb2d5JyxcbiAgJ2ZlT2Zmc2V0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2xpbmVhckdyYWRpZW50JyxcbiAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgJ3N0b3AnLFxuICAnY2lyY2xlJyxcbiAgJ2VsbGlwc2UnLFxuICAnaW1hZ2UnLFxuICAnbGluZScsXG4gICdwYXRoJyxcbiAgJ3BvbHlnb24nLFxuICAncG9seWxpbmUnLFxuICAncmVjdCcsXG4gICd0ZXh0JyxcbiAgJ3VzZScsXG4gICd0ZXh0UGF0aCcsXG4gICd0c3BhbicsXG4gICdmb3JlaWduT2JqZWN0JyxcbiAgJ2NsaXBQYXRoJ1xuXTtcblxuY29uc3QgVEFHUyA9IFtcbiAgLi4uSFRNTF9UQUdTLFxuICAuLi5TVkdfVEFHUyxcbl07XG5cbi8vIFNvcnRpbmcsIHRoZW4gcmV2ZXJzaW5nIG1ha2VzIHN1cmUgbG9uZ2VyIGF0dHJpYnV0ZXMvZWxlbWVudHMgbGlrZVxuLy8gYGZvbnQtd2VpZ2h0YCBhcmUgbWF0Y2hlZCBmdWxseSBpbnN0ZWFkIG9mIGdldHRpbmcgZmFsc2UgcG9zaXRpdmVzIG9uIHNheSBgZm9udGBcblxuY29uc3QgTUVESUFfRkVBVFVSRVMgPSBbXG4gICdhbnktaG92ZXInLFxuICAnYW55LXBvaW50ZXInLFxuICAnYXNwZWN0LXJhdGlvJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWdhbXV0JyxcbiAgJ2NvbG9yLWluZGV4JyxcbiAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAnZGV2aWNlLWhlaWdodCcsXG4gICdkZXZpY2Utd2lkdGgnLFxuICAnZGlzcGxheS1tb2RlJyxcbiAgJ2ZvcmNlZC1jb2xvcnMnLFxuICAnZ3JpZCcsXG4gICdoZWlnaHQnLFxuICAnaG92ZXInLFxuICAnaW52ZXJ0ZWQtY29sb3JzJyxcbiAgJ21vbm9jaHJvbWUnLFxuICAnb3JpZW50YXRpb24nLFxuICAnb3ZlcmZsb3ctYmxvY2snLFxuICAnb3ZlcmZsb3ctaW5saW5lJyxcbiAgJ3BvaW50ZXInLFxuICAncHJlZmVycy1jb2xvci1zY2hlbWUnLFxuICAncHJlZmVycy1jb250cmFzdCcsXG4gICdwcmVmZXJzLXJlZHVjZWQtbW90aW9uJyxcbiAgJ3ByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3knLFxuICAncmVzb2x1dGlvbicsXG4gICdzY2FuJyxcbiAgJ3NjcmlwdGluZycsXG4gICd1cGRhdGUnLFxuICAnd2lkdGgnLFxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICAnbWluLXdpZHRoJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21heC1oZWlnaHQnXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tY2xhc3Nlc1xuY29uc3QgUFNFVURPX0NMQVNTRVMgPSBbXG4gICdhY3RpdmUnLFxuICAnYW55LWxpbmsnLFxuICAnYmxhbmsnLFxuICAnY2hlY2tlZCcsXG4gICdjdXJyZW50JyxcbiAgJ2RlZmF1bHQnLFxuICAnZGVmaW5lZCcsXG4gICdkaXInLCAvLyBkaXIoKVxuICAnZGlzYWJsZWQnLFxuICAnZHJvcCcsXG4gICdlbXB0eScsXG4gICdlbmFibGVkJyxcbiAgJ2ZpcnN0JyxcbiAgJ2ZpcnN0LWNoaWxkJyxcbiAgJ2ZpcnN0LW9mLXR5cGUnLFxuICAnZnVsbHNjcmVlbicsXG4gICdmdXR1cmUnLFxuICAnZm9jdXMnLFxuICAnZm9jdXMtdmlzaWJsZScsXG4gICdmb2N1cy13aXRoaW4nLFxuICAnaGFzJywgLy8gaGFzKClcbiAgJ2hvc3QnLCAvLyBob3N0IG9yIGhvc3QoKVxuICAnaG9zdC1jb250ZXh0JywgLy8gaG9zdC1jb250ZXh0KClcbiAgJ2hvdmVyJyxcbiAgJ2luZGV0ZXJtaW5hdGUnLFxuICAnaW4tcmFuZ2UnLFxuICAnaW52YWxpZCcsXG4gICdpcycsIC8vIGlzKClcbiAgJ2xhbmcnLCAvLyBsYW5nKClcbiAgJ2xhc3QtY2hpbGQnLFxuICAnbGFzdC1vZi10eXBlJyxcbiAgJ2xlZnQnLFxuICAnbGluaycsXG4gICdsb2NhbC1saW5rJyxcbiAgJ25vdCcsIC8vIG5vdCgpXG4gICdudGgtY2hpbGQnLCAvLyBudGgtY2hpbGQoKVxuICAnbnRoLWNvbCcsIC8vIG50aC1jb2woKVxuICAnbnRoLWxhc3QtY2hpbGQnLCAvLyBudGgtbGFzdC1jaGlsZCgpXG4gICdudGgtbGFzdC1jb2wnLCAvLyBudGgtbGFzdC1jb2woKVxuICAnbnRoLWxhc3Qtb2YtdHlwZScsIC8vbnRoLWxhc3Qtb2YtdHlwZSgpXG4gICdudGgtb2YtdHlwZScsIC8vbnRoLW9mLXR5cGUoKVxuICAnb25seS1jaGlsZCcsXG4gICdvbmx5LW9mLXR5cGUnLFxuICAnb3B0aW9uYWwnLFxuICAnb3V0LW9mLXJhbmdlJyxcbiAgJ3Bhc3QnLFxuICAncGxhY2Vob2xkZXItc2hvd24nLFxuICAncmVhZC1vbmx5JyxcbiAgJ3JlYWQtd3JpdGUnLFxuICAncmVxdWlyZWQnLFxuICAncmlnaHQnLFxuICAncm9vdCcsXG4gICdzY29wZScsXG4gICd0YXJnZXQnLFxuICAndGFyZ2V0LXdpdGhpbicsXG4gICd1c2VyLWludmFsaWQnLFxuICAndmFsaWQnLFxuICAndmlzaXRlZCcsXG4gICd3aGVyZScgLy8gd2hlcmUoKVxuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWVsZW1lbnRzXG5jb25zdCBQU0VVRE9fRUxFTUVOVFMgPSBbXG4gICdhZnRlcicsXG4gICdiYWNrZHJvcCcsXG4gICdiZWZvcmUnLFxuICAnY3VlJyxcbiAgJ2N1ZS1yZWdpb24nLFxuICAnZmlyc3QtbGV0dGVyJyxcbiAgJ2ZpcnN0LWxpbmUnLFxuICAnZ3JhbW1hci1lcnJvcicsXG4gICdtYXJrZXInLFxuICAncGFydCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdzZWxlY3Rpb24nLFxuICAnc2xvdHRlZCcsXG4gICdzcGVsbGluZy1lcnJvcidcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgJ2FjY2VudC1jb2xvcicsXG4gICdhbGlnbi1jb250ZW50JyxcbiAgJ2FsaWduLWl0ZW1zJyxcbiAgJ2FsaWduLXNlbGYnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgJ2FsbCcsXG4gICdhbmltYXRpb24nLFxuICAnYW5pbWF0aW9uLWRlbGF5JyxcbiAgJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLFxuICAnYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1maWxsLW1vZGUnLFxuICAnYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcsXG4gICdhbmltYXRpb24tbmFtZScsXG4gICdhbmltYXRpb24tcGxheS1zdGF0ZScsXG4gICdhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ2FwcGVhcmFuY2UnLFxuICAnYmFja2ZhY2UtdmlzaWJpbGl0eScsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2JhY2tncm91bmQtYXR0YWNobWVudCcsXG4gICdiYWNrZ3JvdW5kLWJsZW5kLW1vZGUnLFxuICAnYmFja2dyb3VuZC1jbGlwJyxcbiAgJ2JhY2tncm91bmQtY29sb3InLFxuICAnYmFja2dyb3VuZC1pbWFnZScsXG4gICdiYWNrZ3JvdW5kLW9yaWdpbicsXG4gICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgJ2JhY2tncm91bmQtcmVwZWF0JyxcbiAgJ2JhY2tncm91bmQtc2l6ZScsXG4gICdiYXNlbGluZS1zaGlmdCcsXG4gICdibG9jay1zaXplJyxcbiAgJ2JvcmRlcicsXG4gICdib3JkZXItYmxvY2snLFxuICAnYm9yZGVyLWJsb2NrLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0JyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdHlsZScsXG4gICdib3JkZXItYmxvY2std2lkdGgnLFxuICAnYm9yZGVyLWJvdHRvbScsXG4gICdib3JkZXItYm90dG9tLWNvbG9yJyxcbiAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1zdHlsZScsXG4gICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgJ2JvcmRlci1jb2xsYXBzZScsXG4gICdib3JkZXItY29sb3InLFxuICAnYm9yZGVyLWltYWdlJyxcbiAgJ2JvcmRlci1pbWFnZS1vdXRzZXQnLFxuICAnYm9yZGVyLWltYWdlLXJlcGVhdCcsXG4gICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAnYm9yZGVyLWltYWdlLXNvdXJjZScsXG4gICdib3JkZXItaW1hZ2Utd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZScsXG4gICdib3JkZXItaW5saW5lLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXdpZHRoJyxcbiAgJ2JvcmRlci1sZWZ0JyxcbiAgJ2JvcmRlci1sZWZ0LWNvbG9yJyxcbiAgJ2JvcmRlci1sZWZ0LXN0eWxlJyxcbiAgJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgJ2JvcmRlci1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0JyxcbiAgJ2JvcmRlci1lbmQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItZW5kLXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItcmlnaHQtY29sb3InLFxuICAnYm9yZGVyLXJpZ2h0LXN0eWxlJyxcbiAgJ2JvcmRlci1yaWdodC13aWR0aCcsXG4gICdib3JkZXItc3BhY2luZycsXG4gICdib3JkZXItc3RhcnQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1zdHlsZScsXG4gICdib3JkZXItdG9wJyxcbiAgJ2JvcmRlci10b3AtY29sb3InLFxuICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXN0eWxlJyxcbiAgJ2JvcmRlci10b3Atd2lkdGgnLFxuICAnYm9yZGVyLXdpZHRoJyxcbiAgJ2JvdHRvbScsXG4gICdib3gtZGVjb3JhdGlvbi1icmVhaycsXG4gICdib3gtc2hhZG93JyxcbiAgJ2JveC1zaXppbmcnLFxuICAnYnJlYWstYWZ0ZXInLFxuICAnYnJlYWstYmVmb3JlJyxcbiAgJ2JyZWFrLWluc2lkZScsXG4gICdjeCcsXG4gICdjeScsXG4gICdjYXB0aW9uLXNpZGUnLFxuICAnY2FyZXQtY29sb3InLFxuICAnY2xlYXInLFxuICAnY2xpcCcsXG4gICdjbGlwLXBhdGgnLFxuICAnY2xpcC1ydWxlJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgJ2NvbG9yLXByb2ZpbGUnLFxuICAnY29sb3ItcmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXNjaGVtZScsXG4gICdjb2x1bW4tY291bnQnLFxuICAnY29sdW1uLWZpbGwnLFxuICAnY29sdW1uLWdhcCcsXG4gICdjb2x1bW4tcnVsZScsXG4gICdjb2x1bW4tcnVsZS1jb2xvcicsXG4gICdjb2x1bW4tcnVsZS1zdHlsZScsXG4gICdjb2x1bW4tcnVsZS13aWR0aCcsXG4gICdjb2x1bW4tc3BhbicsXG4gICdjb2x1bW4td2lkdGgnLFxuICAnY29sdW1ucycsXG4gICdjb250YWluJyxcbiAgJ2NvbnRlbnQnLFxuICAnY29udGVudC12aXNpYmlsaXR5JyxcbiAgJ2NvdW50ZXItaW5jcmVtZW50JyxcbiAgJ2NvdW50ZXItcmVzZXQnLFxuICAnY3VlJyxcbiAgJ2N1ZS1hZnRlcicsXG4gICdjdWUtYmVmb3JlJyxcbiAgJ2N1cnNvcicsXG4gICdkaXJlY3Rpb24nLFxuICAnZGlzcGxheScsXG4gICdkb21pbmFudC1iYXNlbGluZScsXG4gICdlbXB0eS1jZWxscycsXG4gICdlbmFibGUtYmFja2dyb3VuZCcsXG4gICdmaWxsJyxcbiAgJ2ZpbGwtb3BhY2l0eScsXG4gICdmaWxsLXJ1bGUnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsZXgnLFxuICAnZmxleC1iYXNpcycsXG4gICdmbGV4LWRpcmVjdGlvbicsXG4gICdmbGV4LWZsb3cnLFxuICAnZmxleC1ncm93JyxcbiAgJ2ZsZXgtc2hyaW5rJyxcbiAgJ2ZsZXgtd3JhcCcsXG4gICdmbG9hdCcsXG4gICdmbG93JyxcbiAgJ2Zsb29kLWNvbG9yJyxcbiAgJ2Zsb29kLW9wYWNpdHknLFxuICAnZm9udCcsXG4gICdmb250LWRpc3BsYXknLFxuICAnZm9udC1mYW1pbHknLFxuICAnZm9udC1mZWF0dXJlLXNldHRpbmdzJyxcbiAgJ2ZvbnQta2VybmluZycsXG4gICdmb250LWxhbmd1YWdlLW92ZXJyaWRlJyxcbiAgJ2ZvbnQtc2l6ZScsXG4gICdmb250LXNpemUtYWRqdXN0JyxcbiAgJ2ZvbnQtc21vb3RoaW5nJyxcbiAgJ2ZvbnQtc3RyZXRjaCcsXG4gICdmb250LXN0eWxlJyxcbiAgJ2ZvbnQtc3ludGhlc2lzJyxcbiAgJ2ZvbnQtdmFyaWFudCcsXG4gICdmb250LXZhcmlhbnQtY2FwcycsXG4gICdmb250LXZhcmlhbnQtZWFzdC1hc2lhbicsXG4gICdmb250LXZhcmlhbnQtbGlnYXR1cmVzJyxcbiAgJ2ZvbnQtdmFyaWFudC1udW1lcmljJyxcbiAgJ2ZvbnQtdmFyaWFudC1wb3NpdGlvbicsXG4gICdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycsXG4gICdmb250LXdlaWdodCcsXG4gICdnYXAnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICdncmlkJyxcbiAgJ2dyaWQtYXJlYScsXG4gICdncmlkLWF1dG8tY29sdW1ucycsXG4gICdncmlkLWF1dG8tZmxvdycsXG4gICdncmlkLWF1dG8tcm93cycsXG4gICdncmlkLWNvbHVtbicsXG4gICdncmlkLWNvbHVtbi1lbmQnLFxuICAnZ3JpZC1jb2x1bW4tc3RhcnQnLFxuICAnZ3JpZC1nYXAnLFxuICAnZ3JpZC1yb3cnLFxuICAnZ3JpZC1yb3ctZW5kJyxcbiAgJ2dyaWQtcm93LXN0YXJ0JyxcbiAgJ2dyaWQtdGVtcGxhdGUnLFxuICAnZ3JpZC10ZW1wbGF0ZS1hcmVhcycsXG4gICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1yb3dzJyxcbiAgJ2hhbmdpbmctcHVuY3R1YXRpb24nLFxuICAnaGVpZ2h0JyxcbiAgJ2h5cGhlbnMnLFxuICAnaWNvbicsXG4gICdpbWFnZS1vcmllbnRhdGlvbicsXG4gICdpbWFnZS1yZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVzb2x1dGlvbicsXG4gICdpbWUtbW9kZScsXG4gICdpbmxpbmUtc2l6ZScsXG4gICdpbnNldCcsXG4gICdpbnNldC1ibG9jaycsXG4gICdpbnNldC1ibG9jay1lbmQnLFxuICAnaW5zZXQtYmxvY2stc3RhcnQnLFxuICAnaW5zZXQtaW5saW5lJyxcbiAgJ2luc2V0LWlubGluZS1lbmQnLFxuICAnaW5zZXQtaW5saW5lLXN0YXJ0JyxcbiAgJ2lzb2xhdGlvbicsXG4gICdrZXJuaW5nJyxcbiAgJ2p1c3RpZnktY29udGVudCcsXG4gICdqdXN0aWZ5LWl0ZW1zJyxcbiAgJ2p1c3RpZnktc2VsZicsXG4gICdsZWZ0JyxcbiAgJ2xldHRlci1zcGFjaW5nJyxcbiAgJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgJ2xpbmUtYnJlYWsnLFxuICAnbGluZS1oZWlnaHQnLFxuICAnbGlzdC1zdHlsZScsXG4gICdsaXN0LXN0eWxlLWltYWdlJyxcbiAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nLFxuICAnbGlzdC1zdHlsZS10eXBlJyxcbiAgJ21hcmtlcicsXG4gICdtYXJrZXItZW5kJyxcbiAgJ21hcmtlci1taWQnLFxuICAnbWFya2VyLXN0YXJ0JyxcbiAgJ21hc2snLFxuICAnbWFyZ2luJyxcbiAgJ21hcmdpbi1ibG9jaycsXG4gICdtYXJnaW4tYmxvY2stZW5kJyxcbiAgJ21hcmdpbi1ibG9jay1zdGFydCcsXG4gICdtYXJnaW4tYm90dG9tJyxcbiAgJ21hcmdpbi1pbmxpbmUnLFxuICAnbWFyZ2luLWlubGluZS1lbmQnLFxuICAnbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdtYXJnaW4tbGVmdCcsXG4gICdtYXJnaW4tcmlnaHQnLFxuICAnbWFyZ2luLXRvcCcsXG4gICdtYXJrcycsXG4gICdtYXNrJyxcbiAgJ21hc2stYm9yZGVyJyxcbiAgJ21hc2stYm9yZGVyLW1vZGUnLFxuICAnbWFzay1ib3JkZXItb3V0c2V0JyxcbiAgJ21hc2stYm9yZGVyLXJlcGVhdCcsXG4gICdtYXNrLWJvcmRlci1zbGljZScsXG4gICdtYXNrLWJvcmRlci1zb3VyY2UnLFxuICAnbWFzay1ib3JkZXItd2lkdGgnLFxuICAnbWFzay1jbGlwJyxcbiAgJ21hc2stY29tcG9zaXRlJyxcbiAgJ21hc2staW1hZ2UnLFxuICAnbWFzay1tb2RlJyxcbiAgJ21hc2stb3JpZ2luJyxcbiAgJ21hc2stcG9zaXRpb24nLFxuICAnbWFzay1yZXBlYXQnLFxuICAnbWFzay1zaXplJyxcbiAgJ21hc2stdHlwZScsXG4gICdtYXgtYmxvY2stc2l6ZScsXG4gICdtYXgtaGVpZ2h0JyxcbiAgJ21heC1pbmxpbmUtc2l6ZScsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWJsb2NrLXNpemUnLFxuICAnbWluLWhlaWdodCcsXG4gICdtaW4taW5saW5lLXNpemUnLFxuICAnbWluLXdpZHRoJyxcbiAgJ21peC1ibGVuZC1tb2RlJyxcbiAgJ25hdi1kb3duJyxcbiAgJ25hdi1pbmRleCcsXG4gICduYXYtbGVmdCcsXG4gICduYXYtcmlnaHQnLFxuICAnbmF2LXVwJyxcbiAgJ25vbmUnLFxuICAnbm9ybWFsJyxcbiAgJ29iamVjdC1maXQnLFxuICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgJ29wYWNpdHknLFxuICAnb3JkZXInLFxuICAnb3JwaGFucycsXG4gICdvdXRsaW5lJyxcbiAgJ291dGxpbmUtY29sb3InLFxuICAnb3V0bGluZS1vZmZzZXQnLFxuICAnb3V0bGluZS1zdHlsZScsXG4gICdvdXRsaW5lLXdpZHRoJyxcbiAgJ292ZXJmbG93JyxcbiAgJ292ZXJmbG93LXdyYXAnLFxuICAnb3ZlcmZsb3cteCcsXG4gICdvdmVyZmxvdy15JyxcbiAgJ3BhZGRpbmcnLFxuICAncGFkZGluZy1ibG9jaycsXG4gICdwYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdwYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3BhZGRpbmctYm90dG9tJyxcbiAgJ3BhZGRpbmctaW5saW5lJyxcbiAgJ3BhZGRpbmctaW5saW5lLWVuZCcsXG4gICdwYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdwYWRkaW5nLWxlZnQnLFxuICAncGFkZGluZy1yaWdodCcsXG4gICdwYWRkaW5nLXRvcCcsXG4gICdwYWdlLWJyZWFrLWFmdGVyJyxcbiAgJ3BhZ2UtYnJlYWstYmVmb3JlJyxcbiAgJ3BhZ2UtYnJlYWstaW5zaWRlJyxcbiAgJ3BhdXNlJyxcbiAgJ3BhdXNlLWFmdGVyJyxcbiAgJ3BhdXNlLWJlZm9yZScsXG4gICdwZXJzcGVjdGl2ZScsXG4gICdwZXJzcGVjdGl2ZS1vcmlnaW4nLFxuICAncG9pbnRlci1ldmVudHMnLFxuICAncG9zaXRpb24nLFxuICAncXVvdGVzJyxcbiAgJ3InLFxuICAncmVzaXplJyxcbiAgJ3Jlc3QnLFxuICAncmVzdC1hZnRlcicsXG4gICdyZXN0LWJlZm9yZScsXG4gICdyaWdodCcsXG4gICdyb3RhdGUnLFxuICAncm93LWdhcCcsXG4gICdzY2FsZScsXG4gICdzY3JvbGwtbWFyZ2luJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2snLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWJvdHRvbScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1sZWZ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tcmlnaHQnLFxuICAnc2Nyb2xsLW1hcmdpbi10b3AnLFxuICAnc2Nyb2xsLXBhZGRpbmcnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2snLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJvdHRvbScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctbGVmdCcsXG4gICdzY3JvbGwtcGFkZGluZy1yaWdodCcsXG4gICdzY3JvbGwtcGFkZGluZy10b3AnLFxuICAnc2Nyb2xsLXNuYXAtYWxpZ24nLFxuICAnc2Nyb2xsLXNuYXAtc3RvcCcsXG4gICdzY3JvbGwtc25hcC10eXBlJyxcbiAgJ3Njcm9sbGJhci1jb2xvcicsXG4gICdzY3JvbGxiYXItZ3V0dGVyJyxcbiAgJ3Njcm9sbGJhci13aWR0aCcsXG4gICdzaGFwZS1pbWFnZS10aHJlc2hvbGQnLFxuICAnc2hhcGUtbWFyZ2luJyxcbiAgJ3NoYXBlLW91dHNpZGUnLFxuICAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgJ3N0b3AtY29sb3InLFxuICAnc3RvcC1vcGFjaXR5JyxcbiAgJ3N0cm9rZScsXG4gICdzdHJva2UtZGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgJ3N0cm9rZS1saW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lam9pbicsXG4gICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICdzdHJva2Utb3BhY2l0eScsXG4gICdzdHJva2Utd2lkdGgnLFxuICAnc3BlYWsnLFxuICAnc3BlYWstYXMnLFxuICAnc3JjJywgLy8gQGZvbnQtZmFjZVxuICAndGFiLXNpemUnLFxuICAndGFibGUtbGF5b3V0JyxcbiAgJ3RleHQtYW5jaG9yJyxcbiAgJ3RleHQtYWxpZ24nLFxuICAndGV4dC1hbGlnbi1hbGwnLFxuICAndGV4dC1hbGlnbi1sYXN0JyxcbiAgJ3RleHQtY29tYmluZS11cHJpZ2h0JyxcbiAgJ3RleHQtZGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24tY29sb3InLFxuICAndGV4dC1kZWNvcmF0aW9uLWxpbmUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZScsXG4gICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJyxcbiAgJ3RleHQtZW1waGFzaXMnLFxuICAndGV4dC1lbXBoYXNpcy1jb2xvcicsXG4gICd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJyxcbiAgJ3RleHQtZW1waGFzaXMtc3R5bGUnLFxuICAndGV4dC1pbmRlbnQnLFxuICAndGV4dC1qdXN0aWZ5JyxcbiAgJ3RleHQtb3JpZW50YXRpb24nLFxuICAndGV4dC1vdmVyZmxvdycsXG4gICd0ZXh0LXJlbmRlcmluZycsXG4gICd0ZXh0LXNoYWRvdycsXG4gICd0ZXh0LXRyYW5zZm9ybScsXG4gICd0ZXh0LXVuZGVybGluZS1vZmZzZXQnLFxuICAndGV4dC11bmRlcmxpbmUtcG9zaXRpb24nLFxuICAndG9wJyxcbiAgJ3RyYW5zZm9ybScsXG4gICd0cmFuc2Zvcm0tYm94JyxcbiAgJ3RyYW5zZm9ybS1vcmlnaW4nLFxuICAndHJhbnNmb3JtLXN0eWxlJyxcbiAgJ3RyYW5zaXRpb24nLFxuICAndHJhbnNpdGlvbi1kZWxheScsXG4gICd0cmFuc2l0aW9uLWR1cmF0aW9uJyxcbiAgJ3RyYW5zaXRpb24tcHJvcGVydHknLFxuICAndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAndHJhbnNsYXRlJyxcbiAgJ3VuaWNvZGUtYmlkaScsXG4gICd2ZWN0b3ItZWZmZWN0JyxcbiAgJ3ZlcnRpY2FsLWFsaWduJyxcbiAgJ3Zpc2liaWxpdHknLFxuICAndm9pY2UtYmFsYW5jZScsXG4gICd2b2ljZS1kdXJhdGlvbicsXG4gICd2b2ljZS1mYW1pbHknLFxuICAndm9pY2UtcGl0Y2gnLFxuICAndm9pY2UtcmFuZ2UnLFxuICAndm9pY2UtcmF0ZScsXG4gICd2b2ljZS1zdHJlc3MnLFxuICAndm9pY2Utdm9sdW1lJyxcbiAgJ3doaXRlLXNwYWNlJyxcbiAgJ3dpZG93cycsXG4gICd3aWR0aCcsXG4gICd3aWxsLWNoYW5nZScsXG4gICd3b3JkLWJyZWFrJyxcbiAgJ3dvcmQtc3BhY2luZycsXG4gICd3b3JkLXdyYXAnLFxuICAnd3JpdGluZy1tb2RlJyxcbiAgJ3gnLFxuICAneScsXG4gICd6LWluZGV4J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IENTU1xuQ2F0ZWdvcnk6IGNvbW1vbiwgY3NzLCB3ZWJcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTU1xuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY3NzKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBtb2RlcyA9IE1PREVTKGhsanMpO1xuICBjb25zdCBWRU5ET1JfUFJFRklYID0geyBiZWdpbjogLy0od2Via2l0fG1venxtc3xvKS0oPz1bYS16XSkvIH07XG4gIGNvbnN0IEFUX01PRElGSUVSUyA9IFwiYW5kIG9yIG5vdCBvbmx5XCI7XG4gIGNvbnN0IEFUX1BST1BFUlRZX1JFID0gL0AtP1xcd1tcXHddKigtXFx3KykqLzsgLy8gQC13ZWJraXQta2V5ZnJhbWVzXG4gIGNvbnN0IElERU5UX1JFID0gJ1thLXpBLVotXVthLXpBLVowLTlfLV0qJztcbiAgY29uc3QgU1RSSU5HUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0NTUycsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvWz18J1xcJF0vLFxuICAgIGtleXdvcmRzOiB7IGtleWZyYW1lUG9zaXRpb246IFwiZnJvbSB0b1wiIH0sXG4gICAgY2xhc3NOYW1lQWxpYXNlczoge1xuICAgICAgLy8gZm9yIHZpc3VhbCBjb250aW51aXR5IHdpdGggYHRhZyB7fWAgYW5kIGJlY2F1c2Ugd2VcbiAgICAgIC8vIGRvbid0IGhhdmUgYSBncmVhdCBjbGFzcyBmb3IgdGhpcz9cbiAgICAgIGtleWZyYW1lUG9zaXRpb246IFwic2VsZWN0b3ItdGFnXCIgfSxcbiAgICBjb250YWluczogW1xuICAgICAgbW9kZXMuQkxPQ0tfQ09NTUVOVCxcbiAgICAgIFZFTkRPUl9QUkVGSVgsXG4gICAgICAvLyB0byByZWNvZ25pemUga2V5ZnJhbWUgNDAlIGV0YyB3aGljaCBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2Ygb3VyXG4gICAgICAvLyBhdHRyaWJ1dGUgdmFsdWUgbW9kZVxuICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1pZCcsXG4gICAgICAgIGJlZ2luOiAvI1tBLVphLXowLTlfLV0rLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1jbGFzcycsXG4gICAgICAgIGJlZ2luOiAnXFxcXC4nICsgSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIG1vZGVzLkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICc6KCcgKyBQU0VVRE9fQ0xBU1NFUy5qb2luKCd8JykgKyAnKScgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnOig6KT8oJyArIFBTRVVET19FTEVNRU5UUy5qb2luKCd8JykgKyAnKScgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gd2UgbWF5IGFjdHVhbGx5IG5lZWQgdGhpcyAoMTIvMjAyMClcbiAgICAgIC8vIHsgLy8gcHNldWRvLXNlbGVjdG9yIHBhcmFtc1xuICAgICAgLy8gICBiZWdpbjogL1xcKC8sXG4gICAgICAvLyAgIGVuZDogL1xcKS8sXG4gICAgICAvLyAgIGNvbnRhaW5zOiBbIGhsanMuQ1NTX05VTUJFUl9NT0RFIF1cbiAgICAgIC8vIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH0sXG4gICAgICAvLyBhdHRyaWJ1dGUgdmFsdWVzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1s7fXtdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBtb2Rlcy5CTE9DS19DT01NRU5ULFxuICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgIG1vZGVzLklNUE9SVEFOVCxcbiAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgLi4uU1RSSU5HUyxcbiAgICAgICAgICAvLyBuZWVkZWQgdG8gaGlnaGxpZ2h0IHRoZXNlIGFzIHN0cmluZ3MgYW5kIHRvIGF2b2lkIGlzc3VlcyB3aXRoXG4gICAgICAgICAgLy8gaWxsZWdhbCBjaGFyYWN0ZXJzIHRoYXQgbWlnaHQgYmUgaW5zaWRlIHVybHMgdGhhdCB3b3VsZCB0aWdnZXIgdGhlXG4gICAgICAgICAgLy8gbGFuZ3VhZ2VzIGlsbGVnYWwgc3RhY2tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLyh1cmx8ZGF0YS11cmkpXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsIC8vIGZyb20ga2V5d29yZHNcbiAgICAgICAgICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOiBcInVybCBkYXRhLXVyaVwiIH0sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAuLi5TVFJJTkdTLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIC8vIGFueSBjaGFyYWN0ZXIgb3RoZXIgdGhhbiBgKWAgYXMgaW4gYHVybCgpYCB3aWxsIGJlIHRoZSBzdGFydFxuICAgICAgICAgICAgICAgIC8vIG9mIGEgc3RyaW5nLCB3aGljaCBlbmRzIHdpdGggYClgIChmcm9tIHRoZSBwYXJlbnQgbW9kZSlcbiAgICAgICAgICAgICAgICBiZWdpbjogL1teKV0vLFxuICAgICAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IHJlZ2V4Lmxvb2thaGVhZCgvQC8pLFxuICAgICAgICBlbmQ6ICdbeztdJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBpbGxlZ2FsOiAvOi8sIC8vIGJyZWFrIG9uIExlc3MgdmFyaWFibGVzIEB2YXI6IC4uLlxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46IEFUX1BST1BFUlRZX1JFXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xccy8sXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgICAgICAkcGF0dGVybjogL1thLXotXSsvLFxuICAgICAgICAgICAgICBrZXl3b3JkOiBBVF9NT0RJRklFUlMsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZTogTUVESUFfRkVBVFVSRVMuam9pbihcIiBcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC9bYS16LV0rKD89OikvLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJhdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAuLi5TVFJJTkdTLFxuICAgICAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3NzO1xuIiwgIi8qXG5MYW5ndWFnZTogRFxuQXV0aG9yOiBBbGVrc2FuZGFyIFJ1emljaWMgPGFsZWtzYW5kYXJAcnV6aWNpYy5pbmZvPlxuRGVzY3JpcHRpb246IEQgaXMgYSBsYW5ndWFnZSB3aXRoIEMtbGlrZSBzeW50YXggYW5kIHN0YXRpYyB0eXBpbmcuIEl0IHByYWdtYXRpY2FsbHkgY29tYmluZXMgZWZmaWNpZW5jeSwgY29udHJvbCwgYW5kIG1vZGVsaW5nIHBvd2VyLCB3aXRoIHNhZmV0eSBhbmQgcHJvZ3JhbW1lciBwcm9kdWN0aXZpdHkuXG5WZXJzaW9uOiAxLjBhXG5XZWJzaXRlOiBodHRwczovL2RsYW5nLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuRGF0ZTogMjAxMi0wNC0wOFxuKi9cblxuLyoqXG4gKiBLbm93biBpc3N1ZXM6XG4gKlxuICogLSBpbnZhbGlkIGhleCBzdHJpbmcgbGl0ZXJhbHMgd2lsbCBiZSByZWNvZ25pemVkIGFzIGEgZG91YmxlIHF1b3RlZCBzdHJpbmdzXG4gKiAgIGJ1dCAneCcgYXQgdGhlIGJlZ2lubmluZyBvZiBzdHJpbmcgd2lsbCBub3QgYmUgbWF0Y2hlZFxuICpcbiAqIC0gZGVsaW1pdGVkIHN0cmluZyBsaXRlcmFscyBhcmUgbm90IGNoZWNrZWQgZm9yIG1hdGNoaW5nIGVuZCBkZWxpbWl0ZXJcbiAqICAgKG5vdCBwb3NzaWJsZSB0byBkbyB3aXRoIGpzIHJlZ2V4cClcbiAqXG4gKiAtIGNvbnRlbnQgb2YgdG9rZW4gc3RyaW5nIGlzIGNvbG9yZWQgYXMgYSBzdHJpbmcgKGkuZS4gbm8ga2V5d29yZCBjb2xvcmluZyBpbnNpZGUgYSB0b2tlbiBzdHJpbmcpXG4gKiAgIGFsc28sIGNvbnRlbnQgb2YgdG9rZW4gc3RyaW5nIGlzIG5vdCB2YWxpZGF0ZWQgdG8gY29udGFpbiBvbmx5IHZhbGlkIEQgdG9rZW5zXG4gKlxuICogLSBzcGVjaWFsIHRva2VuIHNlcXVlbmNlIHJ1bGUgaXMgbm90IHN0cmljdGx5IGZvbGxvd2luZyBEIGdyYW1tYXIgKGFueXRoaW5nIGZvbGxvd2luZyAjbGluZVxuICogICB1cCB0byB0aGUgZW5kIG9mIGxpbmUgaXMgbWF0Y2hlZCBhcyBzcGVjaWFsIHRva2VuIHNlcXVlbmNlKVxuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkKGhsanMpIHtcbiAgLyoqXG4gICAqIExhbmd1YWdlIGtleXdvcmRzXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAga2V5d29yZDpcbiAgICAgICdhYnN0cmFjdCBhbGlhcyBhbGlnbiBhc20gYXNzZXJ0IGF1dG8gYm9keSBicmVhayBieXRlIGNhc2UgY2FzdCBjYXRjaCBjbGFzcyAnXG4gICAgICArICdjb25zdCBjb250aW51ZSBkZWJ1ZyBkZWZhdWx0IGRlbGV0ZSBkZXByZWNhdGVkIGRvIGVsc2UgZW51bSBleHBvcnQgZXh0ZXJuIGZpbmFsICdcbiAgICAgICsgJ2ZpbmFsbHkgZm9yIGZvcmVhY2ggZm9yZWFjaF9yZXZlcnNlfDEwIGdvdG8gaWYgaW1tdXRhYmxlIGltcG9ydCBpbiBpbm91dCBpbnQgJ1xuICAgICAgKyAnaW50ZXJmYWNlIGludmFyaWFudCBpcyBsYXp5IG1hY3JvIG1peGluIG1vZHVsZSBuZXcgbm90aHJvdyBvdXQgb3ZlcnJpZGUgcGFja2FnZSAnXG4gICAgICArICdwcmFnbWEgcHJpdmF0ZSBwcm90ZWN0ZWQgcHVibGljIHB1cmUgcmVmIHJldHVybiBzY29wZSBzaGFyZWQgc3RhdGljIHN0cnVjdCAnXG4gICAgICArICdzdXBlciBzd2l0Y2ggc3luY2hyb25pemVkIHRlbXBsYXRlIHRoaXMgdGhyb3cgdHJ5IHR5cGVkZWYgdHlwZWlkIHR5cGVvZiB1bmlvbiAnXG4gICAgICArICd1bml0dGVzdCB2ZXJzaW9uIHZvaWQgdm9sYXRpbGUgd2hpbGUgd2l0aCBfX0ZJTEVfXyBfX0xJTkVfXyBfX2dzaGFyZWR8MTAgJ1xuICAgICAgKyAnX190aHJlYWQgX190cmFpdHMgX19EQVRFX18gX19FT0ZfXyBfX1RJTUVfXyBfX1RJTUVTVEFNUF9fIF9fVkVORE9SX18gX19WRVJTSU9OX18nLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ2Jvb2wgY2RvdWJsZSBjZW50IGNmbG9hdCBjaGFyIGNyZWFsIGRjaGFyIGRlbGVnYXRlIGRvdWJsZSBkc3RyaW5nIGZsb2F0IGZ1bmN0aW9uICdcbiAgICAgICsgJ2lkb3VibGUgaWZsb2F0IGlyZWFsIGxvbmcgcmVhbCBzaG9ydCBzdHJpbmcgdWJ5dGUgdWNlbnQgdWludCB1bG9uZyB1c2hvcnQgd2NoYXIgJ1xuICAgICAgKyAnd3N0cmluZycsXG4gICAgbGl0ZXJhbDpcbiAgICAgICdmYWxzZSBudWxsIHRydWUnXG4gIH07XG5cbiAgLyoqXG4gICAqIE51bWJlciBsaXRlcmFsIHJlZ2V4cHNcbiAgICpcbiAgICogQHR5cGUge1N0cmluZ31cbiAgICovXG4gIGNvbnN0IGRlY2ltYWxfaW50ZWdlcl9yZSA9ICcoMHxbMS05XVtcXFxcZF9dKiknO1xuICBjb25zdCBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgPSAnKDB8WzEtOV1bXFxcXGRfXSp8XFxcXGRbXFxcXGRfXSp8W1xcXFxkX10rP1xcXFxkKSc7XG4gIGNvbnN0IGJpbmFyeV9pbnRlZ2VyX3JlID0gJzBbYkJdWzAxX10rJztcbiAgY29uc3QgaGV4YWRlY2ltYWxfZGlnaXRzX3JlID0gJyhbXFxcXGRhLWZBLUZdW1xcXFxkYS1mQS1GX10qfF9bXFxcXGRhLWZBLUZdW1xcXFxkYS1mQS1GX10qKSc7XG4gIGNvbnN0IGhleGFkZWNpbWFsX2ludGVnZXJfcmUgPSAnMFt4WF0nICsgaGV4YWRlY2ltYWxfZGlnaXRzX3JlO1xuXG4gIGNvbnN0IGRlY2ltYWxfZXhwb25lbnRfcmUgPSAnKFtlRV1bKy1dPycgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKSc7XG4gIGNvbnN0IGRlY2ltYWxfZmxvYXRfcmUgPSAnKCcgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKFxcXFwuXFxcXGQqfCcgKyBkZWNpbWFsX2V4cG9uZW50X3JlICsgJyl8J1xuICAgICAgICAgICAgICAgICsgJ1xcXFxkK1xcXFwuJyArIGRlY2ltYWxfaW50ZWdlcl9ub3N1c19yZSArICd8J1xuICAgICAgICAgICAgICAgICsgJ1xcXFwuJyArIGRlY2ltYWxfaW50ZWdlcl9yZSArIGRlY2ltYWxfZXhwb25lbnRfcmUgKyAnPydcbiAgICAgICAgICAgICAgKyAnKSc7XG4gIGNvbnN0IGhleGFkZWNpbWFsX2Zsb2F0X3JlID0gJygwW3hYXSgnXG4gICAgICAgICAgICAgICAgICArIGhleGFkZWNpbWFsX2RpZ2l0c19yZSArICdcXFxcLicgKyBoZXhhZGVjaW1hbF9kaWdpdHNfcmUgKyAnfCdcbiAgICAgICAgICAgICAgICAgICsgJ1xcXFwuPycgKyBoZXhhZGVjaW1hbF9kaWdpdHNfcmVcbiAgICAgICAgICAgICAgICAgKyAnKVtwUF1bKy1dPycgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKSc7XG5cbiAgY29uc3QgaW50ZWdlcl9yZSA9ICcoJ1xuICAgICAgKyBkZWNpbWFsX2ludGVnZXJfcmUgKyAnfCdcbiAgICAgICsgYmluYXJ5X2ludGVnZXJfcmUgKyAnfCdcbiAgICAgICArIGhleGFkZWNpbWFsX2ludGVnZXJfcmVcbiAgICArICcpJztcblxuICBjb25zdCBmbG9hdF9yZSA9ICcoJ1xuICAgICAgKyBoZXhhZGVjaW1hbF9mbG9hdF9yZSArICd8J1xuICAgICAgKyBkZWNpbWFsX2Zsb2F0X3JlXG4gICAgKyAnKSc7XG5cbiAgLyoqXG4gICAqIEVzY2FwZSBzZXF1ZW5jZSBzdXBwb3J0ZWQgaW4gRCBzdHJpbmcgYW5kIGNoYXJhY3RlciBsaXRlcmFsc1xuICAgKlxuICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgKi9cbiAgY29uc3QgZXNjYXBlX3NlcXVlbmNlX3JlID0gJ1xcXFxcXFxcKCdcbiAgICAgICAgICAgICAgKyAnW1xcJ1wiXFxcXD9cXFxcXFxcXGFiZm5ydHZdfCcgLy8gY29tbW9uIGVzY2FwZXNcbiAgICAgICAgICAgICAgKyAndVtcXFxcZEEtRmEtZl17NH18JyAvLyBmb3VyIGhleCBkaWdpdCB1bmljb2RlIGNvZGVwb2ludFxuICAgICAgICAgICAgICArICdbMC03XXsxLDN9fCcgLy8gb25lIHRvIHRocmVlIG9jdGFsIGRpZ2l0IGFzY2lpIGNoYXIgY29kZVxuICAgICAgICAgICAgICArICd4W1xcXFxkQS1GYS1mXXsyfXwnIC8vIHR3byBoZXggZGlnaXQgYXNjaWkgY2hhciBjb2RlXG4gICAgICAgICAgICAgICsgJ1VbXFxcXGRBLUZhLWZdezh9JyAvLyBlaWdodCBoZXggZGlnaXQgdW5pY29kZSBjb2RlcG9pbnRcbiAgICAgICAgICAgICAgKyAnKXwnXG4gICAgICAgICAgICAgICsgJyZbYS16QS1aXFxcXGRdezIsfTsnOyAvLyBuYW1lZCBjaGFyYWN0ZXIgZW50aXR5XG5cbiAgLyoqXG4gICAqIEQgaW50ZWdlciBudW1iZXIgbGl0ZXJhbHNcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfSU5URUdFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYicgKyBpbnRlZ2VyX3JlICsgJyhMfHV8VXxMdXxMVXx1THxVTCk/JyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogW0RfRkxPQVRfTU9ERSBkZXNjcmlwdGlvbl1cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfRkxPQVRfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnXFxcXGIoJ1xuICAgICAgICArIGZsb2F0X3JlICsgJyhbZkZdfEx8aXxbZkZdaXxMaSk/fCdcbiAgICAgICAgKyBpbnRlZ2VyX3JlICsgJyhpfFtmRl1pfExpKSdcbiAgICAgICsgJyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8qKlxuICAgKiBEIGNoYXJhY3RlciBsaXRlcmFsXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX0NIQVJBQ1RFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXCcoJyArIGVzY2FwZV9zZXF1ZW5jZV9yZSArICd8LiknLFxuICAgIGVuZDogJ1xcJycsXG4gICAgaWxsZWdhbDogJy4nXG4gIH07XG5cbiAgLyoqXG4gICAqIEQgc3RyaW5nIGVzY2FwZSBzZXF1ZW5jZVxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9FU0NBUEVfU0VRVUVOQ0UgPSB7XG4gICAgYmVnaW46IGVzY2FwZV9zZXF1ZW5jZV9yZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogRCBkb3VibGUgcXVvdGVkIHN0cmluZyBsaXRlcmFsXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcIicsXG4gICAgY29udGFpbnM6IFsgRF9FU0NBUEVfU0VRVUVOQ0UgXSxcbiAgICBlbmQ6ICdcIltjd2RdPydcbiAgfTtcblxuICAvKipcbiAgICogRCB3eXNpd3lnIGFuZCBkZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWxzXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX1dZU0lXWUdfREVMSU1JVEVEX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdbcnFdXCInLFxuICAgIGVuZDogJ1wiW2N3ZF0/JyxcbiAgICByZWxldmFuY2U6IDVcbiAgfTtcblxuICAvKipcbiAgICogRCBhbHRlcm5hdGUgd3lzaXd5ZyBzdHJpbmcgbGl0ZXJhbFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9BTFRFUk5BVEVfV1lTSVdZR19TVFJJTkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnYCcsXG4gICAgZW5kOiAnYFtjd2RdPydcbiAgfTtcblxuICAvKipcbiAgICogRCBoZXhhZGVjaW1hbCBzdHJpbmcgbGl0ZXJhbFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9IRVhfU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ3hcIltcXFxcZGEtZkEtRlxcXFxzXFxcXG5cXFxccl0qXCJbY3dkXT8nLFxuICAgIHJlbGV2YW5jZTogMTBcbiAgfTtcblxuICAvKipcbiAgICogRCBkZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWxcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfVE9LRU5fU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ3FcIlxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfVwiJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYXNoYmFuZyBzdXBwb3J0XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX0hBU0hCQU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdeIyEnLFxuICAgIGVuZDogJyQnLFxuICAgIHJlbGV2YW5jZTogNVxuICB9O1xuXG4gIC8qKlxuICAgKiBEIHNwZWNpYWwgdG9rZW4gc2VxdWVuY2VcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfU1BFQ0lBTF9UT0tFTl9TRVFVRU5DRV9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIyhsaW5lKScsXG4gICAgZW5kOiAnJCcsXG4gICAgcmVsZXZhbmNlOiA1XG4gIH07XG5cbiAgLyoqXG4gICAqIEQgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9BVFRSSUJVVEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ0BbYS16QS1aX11bYS16QS1aX1xcXFxkXSonXG4gIH07XG5cbiAgLyoqXG4gICAqIEQgbmVzdGluZyBjb21tZW50XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX05FU1RJTkdfQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKFxuICAgICdcXFxcL1xcXFwrJyxcbiAgICAnXFxcXCtcXFxcLycsXG4gICAge1xuICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0sXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0QnLFxuICAgIGtleXdvcmRzOiBEX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgRF9ORVNUSU5HX0NPTU1FTlRfTU9ERSxcbiAgICAgIERfSEVYX1NUUklOR19NT0RFLFxuICAgICAgRF9TVFJJTkdfTU9ERSxcbiAgICAgIERfV1lTSVdZR19ERUxJTUlURURfU1RSSU5HX01PREUsXG4gICAgICBEX0FMVEVSTkFURV9XWVNJV1lHX1NUUklOR19NT0RFLFxuICAgICAgRF9UT0tFTl9TVFJJTkdfTU9ERSxcbiAgICAgIERfRkxPQVRfTU9ERSxcbiAgICAgIERfSU5URUdFUl9NT0RFLFxuICAgICAgRF9DSEFSQUNURVJfTU9ERSxcbiAgICAgIERfSEFTSEJBTkdfTU9ERSxcbiAgICAgIERfU1BFQ0lBTF9UT0tFTl9TRVFVRU5DRV9NT0RFLFxuICAgICAgRF9BVFRSSUJVVEVfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkO1xuIiwgIi8qXG5MYW5ndWFnZTogTWFya2Rvd25cblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogSm9obiBDcmVwZXp6aSA8am9obi5jcmVwZXp6aUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi9cbkNhdGVnb3J5OiBjb21tb24sIG1hcmt1cFxuKi9cblxuZnVuY3Rpb24gbWFya2Rvd24oaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElOTElORV9IVE1MID0ge1xuICAgIGJlZ2luOiAvPFxcLz9bQS1aYS16X10vLFxuICAgIGVuZDogJz4nLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgSE9SSVpPTlRBTF9SVUxFID0ge1xuICAgIGJlZ2luOiAnXlstXFxcXCpdezMsfScsXG4gICAgZW5kOiAnJCdcbiAgfTtcbiAgY29uc3QgQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdjb2RlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gVE9ETzogZml4IHRvIGFsbG93IHRoZXNlIHRvIHdvcmsgd2l0aCBzdWJsYW5ndWFnZSBhbHNvXG4gICAgICB7IGJlZ2luOiAnKGB7Myx9KVteYF0oLnxcXFxcbikqP1xcXFwxYCpbIF0qJyB9LFxuICAgICAgeyBiZWdpbjogJyh+ezMsfSlbXn5dKC58XFxcXG4pKj9cXFxcMX4qWyBdKicgfSxcbiAgICAgIC8vIG5lZWRlZCB0byBhbGxvdyBtYXJrZG93biBhcyBhIHN1Ymxhbmd1YWdlIHRvIHdvcmtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdgYGAnLFxuICAgICAgICBlbmQ6ICdgYGArWyBdKiQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ35+ficsXG4gICAgICAgIGVuZDogJ35+fitbIF0qJCdcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnYC4rP2AnIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKD89XiggezR9fFxcXFx0KSknLFxuICAgICAgICAvLyB1c2UgY29udGFpbnMgdG8gZ29iYmxlIHVwIG11bHRpcGxlIGxpbmVzIHRvIGFsbG93IHRoZSBibG9jayB0byBiZSB3aGF0ZXZlciBzaXplXG4gICAgICAgIC8vIGJ1dCBvbmx5IGhhdmUgYSBzaW5nbGUgb3Blbi9jbG9zZSB0YWcgdnMgb25lIHBlciBsaW5lXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeKCB7NH18XFxcXHQpJyxcbiAgICAgICAgICAgIGVuZDogJyhcXFxcbikkJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBMSVNUID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1bGxldCcsXG4gICAgYmVnaW46ICdeWyBcXHRdKihbKistXXwoXFxcXGQrXFxcXC4pKSg/PVxcXFxzKyknLFxuICAgIGVuZDogJ1xcXFxzKycsXG4gICAgZXhjbHVkZUVuZDogdHJ1ZVxuICB9O1xuICBjb25zdCBMSU5LX1JFRkVSRU5DRSA9IHtcbiAgICBiZWdpbjogL15cXFtbXlxcbl0rXFxdOi8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICBlbmQ6IC9cXF0vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpbmsnLFxuICAgICAgICBiZWdpbjogLzpcXHMqLyxcbiAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgVVJMX1NDSEVNRSA9IC9bQS1aYS16XVtBLVphLXowLTkrLi1dKi87XG4gIGNvbnN0IExJTksgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIHRvbyBtdWNoIGxpa2UgbmVzdGVkIGFycmF5IGFjY2VzcyBpbiBzbyBtYW55IGxhbmd1YWdlc1xuICAgICAgLy8gdG8gaGF2ZSBhbnkgcmVhbCByZWxldmFuY2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsuKz9cXF1cXFsuKj9cXF0vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBwb3B1bGFyIGludGVybmV0IFVSTHNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsuKz9cXF1cXCgoKGRhdGF8amF2YXNjcmlwdHxtYWlsdG8pOnwoPzpodHRwfGZ0cClzPzpcXC9cXC8pLio/XFwpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXFsuKz9cXF1cXCgvLCBVUkxfU0NIRU1FLCAvOlxcL1xcLy4qP1xcKS8pLFxuICAgICAgICByZWxldmFuY2U6IDJcbiAgICAgIH0sXG4gICAgICAvLyByZWxhdGl2ZSB1cmxzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLis/XFxdXFwoWy4vPyYjXS4qP1xcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMVxuICAgICAgfSxcbiAgICAgIC8vIHdoYXRldmVyIGVsc2UsIGxvd2VyIHJlbGV2YW5jZSAobWlnaHQgbm90IGJlIGEgbGluayBhdCBhbGwpXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLio/XFxdXFwoLio/XFwpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICAvLyBlbXB0eSBzdHJpbmdzIGZvciBhbHQgb3IgbGluayB0ZXh0XG4gICAgICAgIG1hdGNoOiAvXFxbKD89XFxdKS8gfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBiZWdpbjogJ1xcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGluaycsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICdcXFxcXVxcXFwoJyxcbiAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICdcXFxcXVxcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEJPTEQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Ryb25nJyxcbiAgICBjb250YWluczogW10sIC8vIGRlZmluZWQgbGF0ZXJcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL197Mn0oPyFcXHMpLyxcbiAgICAgICAgZW5kOiAvX3syfS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwqezJ9KD8hXFxzKS8sXG4gICAgICAgIGVuZDogL1xcKnsyfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IElUQUxJQyA9IHtcbiAgICBjbGFzc05hbWU6ICdlbXBoYXNpcycsXG4gICAgY29udGFpbnM6IFtdLCAvLyBkZWZpbmVkIGxhdGVyXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCooPyFbKlxcc10pLyxcbiAgICAgICAgZW5kOiAvXFwqL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9fKD8hW19cXHNdKS8sXG4gICAgICAgIGVuZDogL18vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gMyBsZXZlbCBkZWVwIG5lc3RpbmcgaXMgbm90IGFsbG93ZWQgYmVjYXVzZSBpdCB3b3VsZCBjcmVhdGUgY29uZnVzaW9uXG4gIC8vIGluIGNhc2VzIGxpa2UgYCoqKnRlc3RpbmcqKipgIGJlY2F1c2Ugd2hlcmUgd2UgZG9uJ3Qga25vdyBpZiB0aGUgbGFzdFxuICAvLyBgKioqYCBpcyBzdGFydGluZyBhIG5ldyBib2xkL2l0YWxpYyBvciBmaW5pc2hpbmcgdGhlIGxhc3Qgb25lXG4gIGNvbnN0IEJPTERfV0lUSE9VVF9JVEFMSUMgPSBobGpzLmluaGVyaXQoQk9MRCwgeyBjb250YWluczogW10gfSk7XG4gIGNvbnN0IElUQUxJQ19XSVRIT1VUX0JPTEQgPSBobGpzLmluaGVyaXQoSVRBTElDLCB7IGNvbnRhaW5zOiBbXSB9KTtcbiAgQk9MRC5jb250YWlucy5wdXNoKElUQUxJQ19XSVRIT1VUX0JPTEQpO1xuICBJVEFMSUMuY29udGFpbnMucHVzaChCT0xEX1dJVEhPVVRfSVRBTElDKTtcblxuICBsZXQgQ09OVEFJTkFCTEUgPSBbXG4gICAgSU5MSU5FX0hUTUwsXG4gICAgTElOS1xuICBdO1xuXG4gIFtcbiAgICBCT0xELFxuICAgIElUQUxJQyxcbiAgICBCT0xEX1dJVEhPVVRfSVRBTElDLFxuICAgIElUQUxJQ19XSVRIT1VUX0JPTERcbiAgXS5mb3JFYWNoKG0gPT4ge1xuICAgIG0uY29udGFpbnMgPSBtLmNvbnRhaW5zLmNvbmNhdChDT05UQUlOQUJMRSk7XG4gIH0pO1xuXG4gIENPTlRBSU5BQkxFID0gQ09OVEFJTkFCTEUuY29uY2F0KEJPTEQsIElUQUxJQyk7XG5cbiAgY29uc3QgSEVBREVSID0ge1xuICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXiN7MSw2fScsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogQ09OVEFJTkFCTEVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKD89Xi4rP1xcXFxuWz0tXXsyLH0kKScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15bPS1dKiQnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeJyxcbiAgICAgICAgICAgIGVuZDogXCJcXFxcblwiLFxuICAgICAgICAgICAgY29udGFpbnM6IENPTlRBSU5BQkxFXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEJMT0NLUVVPVEUgPSB7XG4gICAgY2xhc3NOYW1lOiAncXVvdGUnLFxuICAgIGJlZ2luOiAnXj5cXFxccysnLFxuICAgIGNvbnRhaW5zOiBDT05UQUlOQUJMRSxcbiAgICBlbmQ6ICckJ1xuICB9O1xuXG4gIGNvbnN0IEVOVElUWSA9IHtcbiAgICAvL2h0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMxLjIvI2VudGl0eS1yZWZlcmVuY2VzXG4gICAgc2NvcGU6ICdsaXRlcmFsJyxcbiAgICBtYXRjaDogLyYoW2EtekEtWjAtOV0rfCNbMC05XXsxLDd9fCNbWHhdWzAtOWEtZkEtRl17MSw2fSk7L1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01hcmtkb3duJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnbWQnLFxuICAgICAgJ21rZG93bicsXG4gICAgICAnbWtkJ1xuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEhFQURFUixcbiAgICAgIElOTElORV9IVE1MLFxuICAgICAgTElTVCxcbiAgICAgIEJPTEQsXG4gICAgICBJVEFMSUMsXG4gICAgICBCTE9DS1FVT1RFLFxuICAgICAgQ09ERSxcbiAgICAgIEhPUklaT05UQUxfUlVMRSxcbiAgICAgIExJTkssXG4gICAgICBMSU5LX1JFRkVSRU5DRSxcbiAgICAgIEVOVElUWVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXJrZG93bjtcbiIsICIvKlxuTGFuZ3VhZ2U6IERhcnRcblJlcXVpcmVzOiBtYXJrZG93bi5qc1xuQXV0aG9yOiBNYXhpbSBEaWt1biA8ZGlrbWF4QGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBEYXJ0IGEgbW9kZXJuLCBvYmplY3Qtb3JpZW50ZWQgbGFuZ3VhZ2UgZGV2ZWxvcGVkIGJ5IEdvb2dsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGh0dHBzOi8vd3d3LmRhcnRsYW5nLm9yZy9cbldlYnNpdGU6IGh0dHBzOi8vZGFydC5kZXZcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkYXJ0KGhsanMpIHtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIHZhcmlhbnRzOiBbIHsgYmVnaW46ICdcXFxcJFtBLVphLXowLTlfXSsnIH0gXVxuICB9O1xuXG4gIGNvbnN0IEJSQUNFRF9TVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCRcXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9XG4gICAgXSxcbiAgICBrZXl3b3JkczogJ3RydWUgZmFsc2UgbnVsbCB0aGlzIGlzIG5ldyBzdXBlcidcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcXCdcXCdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCdcXCdcXCcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCdcXCdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCdcXCdcXCcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICBCUkFDRURfU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICBCUkFDRURfU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICBCUkFDRURfU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgU1VCU1QsXG4gICAgICAgICAgQlJBQ0VEX1NVQlNUXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIEJSQUNFRF9TVUJTVC5jb250YWlucyA9IFtcbiAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgU1RSSU5HXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU5fVFlQRVMgPSBbXG4gICAgLy8gZGFydDpjb3JlXG4gICAgJ0NvbXBhcmFibGUnLFxuICAgICdEYXRlVGltZScsXG4gICAgJ0R1cmF0aW9uJyxcbiAgICAnRnVuY3Rpb24nLFxuICAgICdJdGVyYWJsZScsXG4gICAgJ0l0ZXJhdG9yJyxcbiAgICAnTGlzdCcsXG4gICAgJ01hcCcsXG4gICAgJ01hdGNoJyxcbiAgICAnT2JqZWN0JyxcbiAgICAnUGF0dGVybicsXG4gICAgJ1JlZ0V4cCcsXG4gICAgJ1NldCcsXG4gICAgJ1N0b3B3YXRjaCcsXG4gICAgJ1N0cmluZycsXG4gICAgJ1N0cmluZ0J1ZmZlcicsXG4gICAgJ1N0cmluZ1NpbmsnLFxuICAgICdTeW1ib2wnLFxuICAgICdUeXBlJyxcbiAgICAnVXJpJyxcbiAgICAnYm9vbCcsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2ludCcsXG4gICAgJ251bScsXG4gICAgLy8gZGFydDpodG1sXG4gICAgJ0VsZW1lbnQnLFxuICAgICdFbGVtZW50TGlzdCdcbiAgXTtcbiAgY29uc3QgTlVMTEFCTEVfQlVJTFRfSU5fVFlQRVMgPSBCVUlMVF9JTl9UWVBFUy5tYXAoKGUpID0+IGAke2V9P2ApO1xuXG4gIGNvbnN0IEJBU0lDX0tFWVdPUkRTID0gW1xuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImFzeW5jXCIsXG4gICAgXCJhd2FpdFwiLFxuICAgIFwiYmFzZVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJjb3ZhcmlhbnRcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlZmVycmVkXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXhwb3J0XCIsXG4gICAgXCJleHRlbmRzXCIsXG4gICAgXCJleHRlbnNpb25cIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJmYWN0b3J5XCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZvclwiLFxuICAgIFwiRnVuY3Rpb25cIixcbiAgICBcImdldFwiLFxuICAgIFwiaGlkZVwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW5cIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwiaXNcIixcbiAgICBcImxhdGVcIixcbiAgICBcImxpYnJhcnlcIixcbiAgICBcIm1peGluXCIsXG4gICAgXCJuZXdcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm9uXCIsXG4gICAgXCJvcGVyYXRvclwiLFxuICAgIFwicGFydFwiLFxuICAgIFwicmVxdWlyZWRcIixcbiAgICBcInJldGhyb3dcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2VhbGVkXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInNob3dcIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwic3luY1wiLFxuICAgIFwidGhpc1wiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRydWVcIixcbiAgICBcInRyeVwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwidmFyXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6IEJBU0lDX0tFWVdPUkRTLFxuICAgIGJ1aWx0X2luOlxuICAgICAgQlVJTFRfSU5fVFlQRVNcbiAgICAgICAgLmNvbmNhdChOVUxMQUJMRV9CVUlMVF9JTl9UWVBFUylcbiAgICAgICAgLmNvbmNhdChbXG4gICAgICAgICAgLy8gZGFydDpjb3JlXG4gICAgICAgICAgJ05ldmVyJyxcbiAgICAgICAgICAnTnVsbCcsXG4gICAgICAgICAgJ2R5bmFtaWMnLFxuICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgLy8gZGFydDpodG1sXG4gICAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgICAncXVlcnlTZWxlY3RvcicsXG4gICAgICAgICAgJ3F1ZXJ5U2VsZWN0b3JBbGwnLFxuICAgICAgICAgICd3aW5kb3cnXG4gICAgICAgIF0pLFxuICAgICRwYXR0ZXJuOiAvW0EtWmEtel1bQS1aYS16MC05X10qXFw/Py9cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEYXJ0JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFNUUklORyxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICAgICAvXFwqXFwvLyxcbiAgICAgICAge1xuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnbWFya2Rvd24nLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvXFwvezMsfSA/LyxcbiAgICAgICAgLyQvLCB7IGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICdtYXJrZG93bicsXG4gICAgICAgICAgICBiZWdpbjogJy4nLFxuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0gfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbktleXdvcmRzOiAnZXh0ZW5kcyBpbXBsZW1lbnRzJyB9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJz0+JyAvLyBObyBtYXJrdXAsIGp1c3QgYSByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkYXJ0O1xuIiwgIi8qXG5MYW5ndWFnZTogRGVscGhpXG5XZWJzaXRlOiBodHRwczovL3d3dy5lbWJhcmNhZGVyby5jb20vcHJvZHVjdHMvZGVscGhpXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZGVscGhpKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJleHBvcnRzXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwiZmlsZVwiLFxuICAgIFwic2hsXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwicmVjb3JkXCIsXG4gICAgXCJwcm9wZXJ0eVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJzZXRcIixcbiAgICBcImFsbHlcIixcbiAgICBcImxhYmVsXCIsXG4gICAgXCJ1c2VzXCIsXG4gICAgXCJyYWlzZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJzdG9yZWRcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJzYWZlY2FsbFwiLFxuICAgIFwidmFyXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcIm9yXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcImV4aXRcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJpbmhlcml0ZWRcIixcbiAgICBcInRvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJzdGRjYWxsXCIsXG4gICAgXCJvdmVycmlkZVwiLFxuICAgIFwic2hyXCIsXG4gICAgXCJhc21cIixcbiAgICBcImZhclwiLFxuICAgIFwicmVzb3VyY2VzdHJpbmdcIixcbiAgICBcImZpbmFsaXphdGlvblwiLFxuICAgIFwicGFja2VkXCIsXG4gICAgXCJ2aXJ0dWFsXCIsXG4gICAgXCJvdXRcIixcbiAgICBcImFuZFwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJsaWJyYXJ5XCIsXG4gICAgXCJkb1wiLFxuICAgIFwieG9yd3JpdGVcIixcbiAgICBcImdvdG9cIixcbiAgICBcIm5lYXJcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImRpdlwiLFxuICAgIFwib3ZlcmxvYWRcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwidW5pdFwiLFxuICAgIFwiYmVnaW5cIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwib25cIixcbiAgICBcImlubGluZVwiLFxuICAgIFwicmVwZWF0XCIsXG4gICAgXCJ1bnRpbFwiLFxuICAgIFwiZGVzdHJ1Y3RvclwiLFxuICAgIFwid3JpdGVcIixcbiAgICBcIm1lc3NhZ2VcIixcbiAgICBcInByb2dyYW1cIixcbiAgICBcIndpdGhcIixcbiAgICBcInJlYWRcIixcbiAgICBcImluaXRpYWxpemF0aW9uXCIsXG4gICAgXCJleGNlcHRcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcIm5pbFwiLFxuICAgIFwiaWZcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNkZWNsXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZG93bnRvXCIsXG4gICAgXCJ0aHJlYWR2YXJcIixcbiAgICBcIm9mXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInBhc2NhbFwiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJjb25zdHJ1Y3RvclwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwicHVibGlzaGVkXCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcImFic29sdXRlXCIsXG4gICAgXCJyZWludHJvZHVjZVwiLFxuICAgIFwib3BlcmF0b3JcIixcbiAgICBcImFzXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImFsaWFzXCIsXG4gICAgXCJhc3NlbWJsZXJcIixcbiAgICBcImJpdHBhY2tlZFwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJjcHBkZWNsXCIsXG4gICAgXCJjdmFyXCIsXG4gICAgXCJlbnVtZXJhdG9yXCIsXG4gICAgXCJleHBlcmltZW50YWxcIixcbiAgICBcInBsYXRmb3JtXCIsXG4gICAgXCJkZXByZWNhdGVkXCIsXG4gICAgXCJ1bmltcGxlbWVudGVkXCIsXG4gICAgXCJkeW5hbWljXCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcImZhcjE2XCIsXG4gICAgXCJmb3J3YXJkXCIsXG4gICAgXCJnZW5lcmljXCIsXG4gICAgXCJoZWxwZXJcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImludGVycnVwdFwiLFxuICAgIFwiaW9jaGVja3NcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJub2RlZmF1bHRcIixcbiAgICBcIm5vcmV0dXJuXCIsXG4gICAgXCJub3N0YWNrZnJhbWVcIixcbiAgICBcIm9sZGZwY2NhbGxcIixcbiAgICBcIm90aGVyd2lzZVwiLFxuICAgIFwic2F2ZXJlZ2lzdGVyc1wiLFxuICAgIFwic29mdGZsb2F0XCIsXG4gICAgXCJzcGVjaWFsaXplXCIsXG4gICAgXCJzdHJpY3RcIixcbiAgICBcInVuYWxpZ25lZFwiLFxuICAgIFwidmFyYXJnc1wiXG4gIF07XG4gIGNvbnN0IENPTU1FTlRfTU9ERVMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ09NTUVOVCgvXFx7LywgL1xcfS8sIHsgcmVsZXZhbmNlOiAwIH0pLFxuICAgIGhsanMuQ09NTUVOVCgvXFwoXFwqLywgL1xcKlxcKS8sIHsgcmVsZXZhbmNlOiAxMCB9KVxuICBdO1xuICBjb25zdCBESVJFQ1RJVkUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXHtcXCQvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKFxcKlxcJC8sXG4gICAgICAgIGVuZDogL1xcKlxcKS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJy8sXG4gICAgZW5kOiAvJy8sXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgfTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIC8vIFNvdXJjZTogaHR0cHM6Ly93d3cuZnJlZXBhc2NhbC5vcmcvZG9jcy1odG1sL3JlZi9yZWZzZTYuaHRtbFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIC8vIFJlZ3VsYXIgbnVtYmVycywgZS5nLiwgMTIzLCAxMjMuNDU2LlxuICAgICAgICBtYXRjaDogL1xcYlxcZFtcXGRfXSooXFwuXFxkW1xcZF9dKik/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBIZXhhZGVjaW1hbCBub3RhdGlvbiwgZS5nLiwgJDdGLlxuICAgICAgICBtYXRjaDogL1xcJFtcXGRBLUZhLWZfXSsvIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEhleGFkZWNpbWFsIGxpdGVyYWwgd2l0aCBubyBkaWdpdHNcbiAgICAgICAgbWF0Y2g6IC9cXCQvLFxuICAgICAgICByZWxldmFuY2U6IDAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gT2N0YWwgbm90YXRpb24sIGUuZy4sICY0Mi5cbiAgICAgICAgbWF0Y2g6IC8mWzAtN11bMC03X10qLyB9LFxuICAgICAge1xuICAgICAgICAvLyBCaW5hcnkgbm90YXRpb24sIGUuZy4sICUxMDEwLlxuICAgICAgICBtYXRjaDogLyVbMDFfXSsvIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJpbmFyeSBsaXRlcmFsIHdpdGggbm8gZGlnaXRzXG4gICAgICAgIG1hdGNoOiAvJS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCB9XG4gICAgXVxuICB9O1xuICBjb25zdCBDSEFSX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiAvI1xcZFtcXGRfXSovIH0sXG4gICAgICB7IG1hdGNoOiAvI1xcJFtcXGRBLUZhLWZdW1xcZEEtRmEtZl9dKi8gfSxcbiAgICAgIHsgbWF0Y2g6IC8jJlswLTddWzAtN19dKi8gfSxcbiAgICAgIHsgbWF0Y2g6IC8jJVswMV1bMDFfXSovIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IENMQVNTID0ge1xuICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcXFxzKj1cXFxccypjbGFzc1xcXFxzKlxcXFwoJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogWyBobGpzLlRJVExFX01PREUgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yIGRlc3RydWN0b3IgcHJvY2VkdXJlJyxcbiAgICBlbmQ6IC9bOjtdLyxcbiAgICBrZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yfDEwIGRlc3RydWN0b3J8MTAgcHJvY2VkdXJlfDEwJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5USVRMRV9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgQ0hBUl9TVFJJTkcsXG4gICAgICAgICAgRElSRUNUSVZFXG4gICAgICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gICAgICB9LFxuICAgICAgRElSRUNUSVZFXG4gICAgXS5jb25jYXQoQ09NTUVOVF9NT0RFUylcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRGVscGhpJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZHByJyxcbiAgICAgICdkZm0nLFxuICAgICAgJ3BhcycsXG4gICAgICAncGFzY2FsJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1wifFxcJFtHLVpnLXpdfFxcL1xcKnw8XFwvfFxcfC8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFNUUklORyxcbiAgICAgIENIQVJfU1RSSU5HLFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1MsXG4gICAgICBGVU5DVElPTixcbiAgICAgIERJUkVDVElWRVxuICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVscGhpO1xuIiwgIi8qXG5MYW5ndWFnZTogRGlmZlxuRGVzY3JpcHRpb246IFVuaWZpZWQgYW5kIGNvbnRleHQgZGlmZlxuQXV0aG9yOiBWYXNpbHkgUG9sb3ZueW92IDx2YXN0QHdoaXRlYW50cy5uZXQ+XG5XZWJzaXRlOiBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RpZmZ1dGlscy9cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkaWZmKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEaWZmJyxcbiAgICBhbGlhc2VzOiBbICdwYXRjaCcgXSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMCxcbiAgICAgICAgbWF0Y2g6IHJlZ2V4LmVpdGhlcihcbiAgICAgICAgICAvXkBAICstXFxkKyxcXGQrICtcXCtcXGQrLFxcZCsgK0BALyxcbiAgICAgICAgICAvXlxcKlxcKlxcKiArXFxkKyxcXGQrICtcXCpcXCpcXCpcXCokLyxcbiAgICAgICAgICAvXi0tLSArXFxkKyxcXGQrICstLS0tJC9cbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IHJlZ2V4LmVpdGhlcihcbiAgICAgICAgICAgICAgL0luZGV4OiAvLFxuICAgICAgICAgICAgICAvXmluZGV4LyxcbiAgICAgICAgICAgICAgLz17Myx9LyxcbiAgICAgICAgICAgICAgL14tezN9LyxcbiAgICAgICAgICAgICAgL15cXCp7M30gLyxcbiAgICAgICAgICAgICAgL15cXCt7M30vLFxuICAgICAgICAgICAgICAvXmRpZmYgLS1naXQvXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZW5kOiAvJC9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9eXFwqezE1fSQvIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYWRkaXRpb24nLFxuICAgICAgICBiZWdpbjogL15cXCsvLFxuICAgICAgICBlbmQ6IC8kL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZGVsZXRpb24nLFxuICAgICAgICBiZWdpbjogL14tLyxcbiAgICAgICAgZW5kOiAvJC9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2FkZGl0aW9uJyxcbiAgICAgICAgYmVnaW46IC9eIS8sXG4gICAgICAgIGVuZDogLyQvXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRpZmY7XG4iLCAiLypcbkxhbmd1YWdlOiBEamFuZ29cbkRlc2NyaXB0aW9uOiBEamFuZ28gaXMgYSBoaWdoLWxldmVsIFB5dGhvbiBXZWIgZnJhbWV3b3JrIHRoYXQgZW5jb3VyYWdlcyByYXBpZCBkZXZlbG9wbWVudCBhbmQgY2xlYW4sIHByYWdtYXRpYyBkZXNpZ24uXG5SZXF1aXJlczogeG1sLmpzXG5BdXRob3I6IEl2YW4gU2FnYWxhZXYgPG1hbmlhY0Bzb2Z0d2FyZW1hbmlhY3Mub3JnPlxuQ29udHJpYnV0b3JzOiBJbHlhIEJhcnlzaGV2IDxiYXJ5c2hldkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5kamFuZ29wcm9qZWN0LmNvbVxuQ2F0ZWdvcnk6IHRlbXBsYXRlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZGphbmdvKGhsanMpIHtcbiAgY29uc3QgRklMVEVSID0ge1xuICAgIGJlZ2luOiAvXFx8W0EtWmEtel0rOj8vLFxuICAgIGtleXdvcmRzOiB7IG5hbWU6XG4gICAgICAgICd0cnVuY2F0ZXdvcmRzIHJlbW92ZXRhZ3MgbGluZWJyZWFrc2JyIHllc25vIGdldF9kaWdpdCB0aW1lc2luY2UgcmFuZG9tIHN0cmlwdGFncyAnXG4gICAgICAgICsgJ2ZpbGVzaXplZm9ybWF0IGVzY2FwZSBsaW5lYnJlYWtzIGxlbmd0aF9pcyBsanVzdCByanVzdCBjdXQgdXJsaXplIGZpeF9hbXBlcnNhbmRzICdcbiAgICAgICAgKyAndGl0bGUgZmxvYXRmb3JtYXQgY2FwZmlyc3QgcHByaW50IGRpdmlzaWJsZWJ5IGFkZCBtYWtlX2xpc3QgdW5vcmRlcmVkX2xpc3QgdXJsZW5jb2RlICdcbiAgICAgICAgKyAndGltZXVudGlsIHVybGl6ZXRydW5jIHdvcmRjb3VudCBzdHJpbmdmb3JtYXQgbGluZW51bWJlcnMgc2xpY2UgZGF0ZSBkaWN0c29ydCAnXG4gICAgICAgICsgJ2RpY3Rzb3J0cmV2ZXJzZWQgZGVmYXVsdF9pZl9ub25lIHBsdXJhbGl6ZSBsb3dlciBqb2luIGNlbnRlciBkZWZhdWx0ICdcbiAgICAgICAgKyAndHJ1bmNhdGV3b3Jkc19odG1sIHVwcGVyIGxlbmd0aCBwaG9uZTJudW1lcmljIHdvcmR3cmFwIHRpbWUgYWRkc2xhc2hlcyBzbHVnaWZ5IGZpcnN0ICdcbiAgICAgICAgKyAnZXNjYXBlanMgZm9yY2VfZXNjYXBlIGlyaWVuY29kZSBsYXN0IHNhZmUgc2FmZXNlcSB0cnVuY2F0ZWNoYXJzIGxvY2FsaXplIHVubG9jYWxpemUgJ1xuICAgICAgICArICdsb2NhbHRpbWUgdXRjIHRpbWV6b25lJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0RqYW5nbycsXG4gICAgYWxpYXNlczogWyAnamluamEnIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgvXFx7JVxccypjb21tZW50XFxzKiVcXH0vLCAvXFx7JVxccyplbmRjb21tZW50XFxzKiVcXH0vKSxcbiAgICAgIGhsanMuQ09NTUVOVCgvXFx7Iy8sIC8jXFx9LyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXRhZycsXG4gICAgICAgIGJlZ2luOiAvXFx7JS8sXG4gICAgICAgIGVuZDogLyVcXH0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiB7IG5hbWU6XG4gICAgICAgICAgICAgICAgJ2NvbW1lbnQgZW5kY29tbWVudCBsb2FkIHRlbXBsYXRldGFnIGlmY2hhbmdlZCBlbmRpZmNoYW5nZWQgaWYgZW5kaWYgZmlyc3RvZiBmb3IgJ1xuICAgICAgICAgICAgICAgICsgJ2VuZGZvciBpZm5vdGVxdWFsIGVuZGlmbm90ZXF1YWwgd2lkdGhyYXRpbyBleHRlbmRzIGluY2x1ZGUgc3BhY2VsZXNzICdcbiAgICAgICAgICAgICAgICArICdlbmRzcGFjZWxlc3MgcmVncm91cCBpZmVxdWFsIGVuZGlmZXF1YWwgc3NpIG5vdyB3aXRoIGN5Y2xlIHVybCBmaWx0ZXIgJ1xuICAgICAgICAgICAgICAgICsgJ2VuZGZpbHRlciBkZWJ1ZyBibG9jayBlbmRibG9jayBlbHNlIGF1dG9lc2NhcGUgZW5kYXV0b2VzY2FwZSBjc3JmX3Rva2VuIGVtcHR5IGVsaWYgJ1xuICAgICAgICAgICAgICAgICsgJ2VuZHdpdGggc3RhdGljIHRyYW5zIGJsb2NrdHJhbnMgZW5kYmxvY2t0cmFucyBnZXRfc3RhdGljX3ByZWZpeCBnZXRfbWVkaWFfcHJlZml4ICdcbiAgICAgICAgICAgICAgICArICdwbHVyYWwgZ2V0X2N1cnJlbnRfbGFuZ3VhZ2UgbGFuZ3VhZ2UgZ2V0X2F2YWlsYWJsZV9sYW5ndWFnZXMgJ1xuICAgICAgICAgICAgICAgICsgJ2dldF9jdXJyZW50X2xhbmd1YWdlX2JpZGkgZ2V0X2xhbmd1YWdlX2luZm8gZ2V0X2xhbmd1YWdlX2luZm9fbGlzdCBsb2NhbGl6ZSAnXG4gICAgICAgICAgICAgICAgKyAnZW5kbG9jYWxpemUgbG9jYWx0aW1lIGVuZGxvY2FsdGltZSB0aW1lem9uZSBlbmR0aW1lem9uZSBnZXRfY3VycmVudF90aW1lem9uZSAnXG4gICAgICAgICAgICAgICAgKyAndmVyYmF0aW0nIH0sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGtleXdvcmRzOiAnaW4gYnkgYXMnLFxuICAgICAgICAgICAgICBjb250YWluczogWyBGSUxURVIgXSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7LyxcbiAgICAgICAgZW5kOiAvXFx9XFx9LyxcbiAgICAgICAgY29udGFpbnM6IFsgRklMVEVSIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGphbmdvO1xuIiwgIi8qXG5MYW5ndWFnZTogRE5TIFpvbmVcbkF1dGhvcjogVGltIFNjaHVtYWNoZXIgPHRpbUBkYXRlbmtub3Rlbi5tZT5cbkNhdGVnb3J5OiBjb25maWdcbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1pvbmVfZmlsZVxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGRucyhobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiSU5cIixcbiAgICBcIkFcIixcbiAgICBcIkFBQUFcIixcbiAgICBcIkFGU0RCXCIsXG4gICAgXCJBUExcIixcbiAgICBcIkNBQVwiLFxuICAgIFwiQ0ROU0tFWVwiLFxuICAgIFwiQ0RTXCIsXG4gICAgXCJDRVJUXCIsXG4gICAgXCJDTkFNRVwiLFxuICAgIFwiREhDSURcIixcbiAgICBcIkRMVlwiLFxuICAgIFwiRE5BTUVcIixcbiAgICBcIkROU0tFWVwiLFxuICAgIFwiRFNcIixcbiAgICBcIkhJUFwiLFxuICAgIFwiSVBTRUNLRVlcIixcbiAgICBcIktFWVwiLFxuICAgIFwiS1hcIixcbiAgICBcIkxPQ1wiLFxuICAgIFwiTVhcIixcbiAgICBcIk5BUFRSXCIsXG4gICAgXCJOU1wiLFxuICAgIFwiTlNFQ1wiLFxuICAgIFwiTlNFQzNcIixcbiAgICBcIk5TRUMzUEFSQU1cIixcbiAgICBcIlBUUlwiLFxuICAgIFwiUlJTSUdcIixcbiAgICBcIlJQXCIsXG4gICAgXCJTSUdcIixcbiAgICBcIlNPQVwiLFxuICAgIFwiU1JWXCIsXG4gICAgXCJTU0hGUFwiLFxuICAgIFwiVEFcIixcbiAgICBcIlRLRVlcIixcbiAgICBcIlRMU0FcIixcbiAgICBcIlRTSUdcIixcbiAgICBcIlRYVFwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0ROUyBab25lJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnYmluZCcsXG4gICAgICAnem9uZSdcbiAgICBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc7JywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxcJChUVEx8R0VORVJBVEV8SU5DTFVERXxPUklHSU4pXFxiL1xuICAgICAgfSxcbiAgICAgIC8vIElQdjZcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICcoKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkoXFxcXC4oMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSkpfDopKSlcXFxcYidcbiAgICAgIH0sXG4gICAgICAvLyBJUHY0XG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnKCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFxcXGInXG4gICAgICB9LFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuTlVNQkVSX01PREUsIHsgYmVnaW46IC9cXGJcXGQrW2Rod21dPy8gfSlcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZG5zO1xuIiwgIi8qXG5MYW5ndWFnZTogRG9ja2VyZmlsZVxuUmVxdWlyZXM6IGJhc2guanNcbkF1dGhvcjogQWxleGlzIEhcdTAwRTluYXV0IDxhbGV4aXNAaGVuYXV0Lm5ldD5cbkRlc2NyaXB0aW9uOiBsYW5ndWFnZSBkZWZpbml0aW9uIGZvciBEb2NrZXJmaWxlIGZpbGVzXG5XZWJzaXRlOiBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvXG5DYXRlZ29yeTogY29uZmlnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZG9ja2VyZmlsZShobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiZnJvbVwiLFxuICAgIFwibWFpbnRhaW5lclwiLFxuICAgIFwiZXhwb3NlXCIsXG4gICAgXCJlbnZcIixcbiAgICBcImFyZ1wiLFxuICAgIFwidXNlclwiLFxuICAgIFwib25idWlsZFwiLFxuICAgIFwic3RvcHNpZ25hbFwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0RvY2tlcmZpbGUnLFxuICAgIGFsaWFzZXM6IFsgJ2RvY2tlcicgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAncnVuIGNtZCBlbnRyeXBvaW50IHZvbHVtZSBhZGQgY29weSB3b3JrZGlyIGxhYmVsIGhlYWx0aGNoZWNrIHNoZWxsJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvW15cXFxcXSQvLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnYmFzaCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogJzwvJ1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRvY2tlcmZpbGU7XG4iLCAiLypcbkxhbmd1YWdlOiBCYXRjaCBmaWxlIChET1MpXG5BdXRob3I6IEFsZXhhbmRlciBNYWthcm92IDxzYW1Acm1jcmVhdGl2ZS5ydT5cbkNvbnRyaWJ1dG9yczogQW50b24gS29jaGtvdiA8YW50b24ua29jaGtvdkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXRjaF9maWxlXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZG9zKGhsanMpIHtcbiAgY29uc3QgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAvXlxccypAP3JlbVxcYi8sIC8kLyxcbiAgICB7IHJlbGV2YW5jZTogMTAgfVxuICApO1xuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXlxcXFxzKltBLVphLXouXz9dW0EtWmEtejAtOV8kI0B+Lj9dKig6fFxcXFxzK2xhYmVsKScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcImdvdG9cIixcbiAgICBcImZvclwiLFxuICAgIFwiaW5cIixcbiAgICBcImRvXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJub3RcIixcbiAgICBcImV4aXN0XCIsXG4gICAgXCJlcnJvcmxldmVsXCIsXG4gICAgXCJkZWZpbmVkXCIsXG4gICAgXCJlcXVcIixcbiAgICBcIm5lcVwiLFxuICAgIFwibHNzXCIsXG4gICAgXCJsZXFcIixcbiAgICBcImd0clwiLFxuICAgIFwiZ2VxXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwicHJuXCIsXG4gICAgXCJudWxcIixcbiAgICBcImxwdDNcIixcbiAgICBcImxwdDJcIixcbiAgICBcImxwdDFcIixcbiAgICBcImNvblwiLFxuICAgIFwiY29tNFwiLFxuICAgIFwiY29tM1wiLFxuICAgIFwiY29tMlwiLFxuICAgIFwiY29tMVwiLFxuICAgIFwiYXV4XCIsXG4gICAgXCJzaGlmdFwiLFxuICAgIFwiY2RcIixcbiAgICBcImRpclwiLFxuICAgIFwiZWNob1wiLFxuICAgIFwic2V0bG9jYWxcIixcbiAgICBcImVuZGxvY2FsXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInBhdXNlXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJhcHBlbmRcIixcbiAgICBcImFzc29jXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiYXR0cmliXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FjbHNcIixcbiAgICBcImNkXCIsXG4gICAgXCJjaGNwXCIsXG4gICAgXCJjaGRpclwiLFxuICAgIFwiY2hrZHNrXCIsXG4gICAgXCJjaGtudGZzXCIsXG4gICAgXCJjbHNcIixcbiAgICBcImNtZFwiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbXBcIixcbiAgICBcImNvbXBhY3RcIixcbiAgICBcImNvbnZlcnRcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRpclwiLFxuICAgIFwiZGlza2NvbXBcIixcbiAgICBcImRpc2tjb3B5XCIsXG4gICAgXCJkb3NrZXlcIixcbiAgICBcImVyYXNlXCIsXG4gICAgXCJmc1wiLFxuICAgIFwiZmluZFwiLFxuICAgIFwiZmluZHN0clwiLFxuICAgIFwiZm9ybWF0XCIsXG4gICAgXCJmdHlwZVwiLFxuICAgIFwiZ3JhZnRhYmxcIixcbiAgICBcImhlbHBcIixcbiAgICBcImtleWJcIixcbiAgICBcImxhYmVsXCIsXG4gICAgXCJtZFwiLFxuICAgIFwibWtkaXJcIixcbiAgICBcIm1vZGVcIixcbiAgICBcIm1vcmVcIixcbiAgICBcIm1vdmVcIixcbiAgICBcInBhdGhcIixcbiAgICBcInBhdXNlXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicG9wZFwiLFxuICAgIFwicHVzaGRcIixcbiAgICBcInByb210XCIsXG4gICAgXCJyZFwiLFxuICAgIFwicmVjb3ZlclwiLFxuICAgIFwicmVtXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInJlc3RvcmVcIixcbiAgICBcInJtZGlyXCIsXG4gICAgXCJzaGlmdFwiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3RhcnRcIixcbiAgICBcInN1YnN0XCIsXG4gICAgXCJ0aW1lXCIsXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwidHJlZVwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidmVyXCIsXG4gICAgXCJ2ZXJpZnlcIixcbiAgICBcInZvbFwiLFxuICAgIC8vIHdpbnV0aWxzXG4gICAgXCJwaW5nXCIsXG4gICAgXCJuZXRcIixcbiAgICBcImlwY29uZmlnXCIsXG4gICAgXCJ0YXNra2lsbFwiLFxuICAgIFwieGNvcHlcIixcbiAgICBcInJlblwiLFxuICAgIFwiZGVsXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQmF0Y2ggZmlsZSAoRE9TKScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2JhdCcsXG4gICAgICAnY21kJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvJSVbXiBdfCVbXiBdKz8lfCFbXiBdKz8hL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogTEFCRUwuYmVnaW4sXG4gICAgICAgIGVuZDogJ2dvdG86ZW9mJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiAnKFtfYS16QS1aXVxcXFx3KlxcXFwuKSooW19hLXpBLVpdXFxcXHcqOik/W19hLXpBLVpdXFxcXHcqJyB9KSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJcXFxcZCsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBDT01NRU5UXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRvcztcbiIsICIvKlxuIExhbmd1YWdlOiBkc2NvbmZpZ1xuIERlc2NyaXB0aW9uOiBkc2NvbmZpZyBiYXRjaCBjb25maWd1cmF0aW9uIGxhbmd1YWdlIGZvciBMREFQIGRpcmVjdG9yeSBzZXJ2ZXJzXG4gQ29udHJpYnV0b3JzOiBKYWNvYiBDaGlsZHJlc3MgPGphY29iY0BnbWFpbC5jb20+XG4gQ2F0ZWdvcnk6IGVudGVycHJpc2UsIGNvbmZpZ1xuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkc2NvbmZpZyhobGpzKSB7XG4gIGNvbnN0IFFVT1RFRF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiL1xuICB9O1xuICBjb25zdCBBUE9TX1BST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC8nLyxcbiAgICBlbmQ6IC8nL1xuICB9O1xuICBjb25zdCBVTlFVT1RFRF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvW1xcd1xcLT9dKzpcXHcrLyxcbiAgICBlbmQ6IC9cXFcvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBWQUxVRUxFU1NfUFJPUEVSVFkgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcdysoXFwtXFx3KykqLyxcbiAgICBlbmQ6IC8oPz1cXFcpLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiAnZHNjb25maWcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogJ15kc2NvbmZpZycsXG4gICAgICAgIGVuZDogL1xccy8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IC8obGlzdHxjcmVhdGV8Z2V0fHNldHxkZWxldGUpLShcXHcrKS8sXG4gICAgICAgIGVuZDogL1xccy8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICchQCMkJV4mKigpJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogLy0tKFxcdyspLyxcbiAgICAgICAgZW5kOiAvXFxzLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFFVT1RFRF9QUk9QRVJUWSxcbiAgICAgIEFQT1NfUFJPUEVSVFksXG4gICAgICBVTlFVT1RFRF9QUk9QRVJUWSxcbiAgICAgIFZBTFVFTEVTU19QUk9QRVJUWSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZHNjb25maWc7XG4iLCAiLypcbkxhbmd1YWdlOiBEZXZpY2UgVHJlZVxuRGVzY3JpcHRpb246ICouZHRzIGZpbGVzIHVzZWQgaW4gdGhlIExpbnV4IGtlcm5lbFxuQXV0aG9yOiBNYXJ0aW4gQnJhdW4gPG1hcnRpbi5icmF1bkBldHR1cy5jb20+LCBNb3JpdHogRmlzY2hlciA8bW9yaXR6LmZpc2NoZXJAZXR0dXMuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9lbGludXgub3JnL0RldmljZV9UcmVlX1JlZmVyZW5jZVxuQ2F0ZWdvcnk6IGNvbmZpZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGR0cyhobGpzKSB7XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgYmVnaW46ICcoKHU4P3xVKXxMKT9cIicgfSksXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVKT9SXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcJ1xcXFxcXFxcPy4nLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnLidcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXGIoXFxcXGQrKFxcXFwuXFxcXGQqKT98XFxcXC5cXFxcZCspKHV8VXxsfEx8dWx8VUx8ZnxGKScgfSxcbiAgICAgIHsgYmVnaW46IGhsanMuQ19OVU1CRVJfUkUgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIycsXG4gICAgZW5kOiAnJCcsXG4gICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgaWZkZWYgaWZuZGVmJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2luY2x1ZGUnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2luY2x1ZGUnIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KFNUUklOR1MsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICc8JyxcbiAgICAgICAgICAgIGVuZDogJz4nLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFNUUklOR1MsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJFRkVSRU5DRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC8mW2EtelxcZF9dKlxcYi9cbiAgfTtcblxuICBjb25zdCBLRVlXT1JEID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAnL1thLXpdW2EtelxcXFxkLV0qLydcbiAgfTtcblxuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXlxcXFxzKlthLXpBLVpfXVthLXpBLVpcXFxcZF9dKjonXG4gIH07XG5cbiAgY29uc3QgQ0VMTF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogJzwnLFxuICAgIGVuZDogJz4nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOVU1CRVJTLFxuICAgICAgUkVGRVJFTkNFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUuY2xhc3MnLFxuICAgIGJlZ2luOiAvW2EtekEtWl9dW2EtekEtWlxcZF9ALV0qKD89XFxzXFx7KS8sXG4gICAgcmVsZXZhbmNlOiAwLjJcbiAgfTtcblxuICBjb25zdCBST09UX05PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUuY2xhc3MnLFxuICAgIGJlZ2luOiAvXlxcLyg/PVxccypcXHspLyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG5cbiAgLy8gVE9ETzogYGF0dHJpYnV0ZWAgbWlnaHQgYmUgdGhlIHJpZ2h0IHNjb3BlIGhlcmUsIHVuc3VyZVxuICAvLyBJJ20gbm90IHN1cmUgaWYgYWxsIHRoZXNlIGtleSBuYW1lcyBoYXZlIHNlbWFudGljIG1lYW5pbmcgb3Igbm90XG4gIGNvbnN0IEFUVFJfTk9fVkFMVUUgPSB7XG4gICAgbWF0Y2g6IC9bYS16XVthLXotLF0rKD89OykvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBzY29wZTogXCJhdHRyXCJcbiAgfTtcbiAgY29uc3QgQVRUUiA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9bYS16XVthLXotLF0rLyxcbiAgICAgIC9cXHMqLyxcbiAgICAgIC89L1xuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwiYXR0clwiLFxuICAgICAgMzogXCJvcGVyYXRvclwiXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFBVTkMgPSB7XG4gICAgc2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICByZWxldmFuY2U6IDAsXG4gICAgLy8gYH07YCBjb21iaW5lZCBpcyBqdXN0IHRvIGF2b2lkIHRvbnMgb2YgdXNlbGVzcyBwdW5jdHVhdGlvbiBub2Rlc1xuICAgIG1hdGNoOiAvXFx9O3xbO3t9XS9cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEZXZpY2UgVHJlZScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFJPT1RfTk9ERSxcbiAgICAgIFJFRkVSRU5DRSxcbiAgICAgIEtFWVdPUkQsXG4gICAgICBMQUJFTCxcbiAgICAgIE5PREUsXG4gICAgICBBVFRSLFxuICAgICAgQVRUUl9OT19WQUxVRSxcbiAgICAgIENFTExfUFJPUEVSVFksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgTlVNQkVSUyxcbiAgICAgIFNUUklOR1MsXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICBQVU5DLFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgIGtleXdvcmRzOiBcIlwiXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGR0cztcbiIsICIvKlxuTGFuZ3VhZ2U6IER1c3RcblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogTWljaGFlbCBBbGxlbiA8bWljaGFlbC5hbGxlbkBiZW5lZml0Zm9jdXMuY29tPlxuRGVzY3JpcHRpb246IE1hdGNoZXIgZm9yIGR1c3QuanMgdGVtcGxhdGVzLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZHVzdGpzLmNvbVxuQ2F0ZWdvcnk6IHRlbXBsYXRlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZHVzdChobGpzKSB7XG4gIGNvbnN0IEVYUFJFU1NJT05fS0VZV09SRFMgPSAnaWYgZXEgbmUgbHQgbHRlIGd0IGd0ZSBzZWxlY3QgZGVmYXVsdCBtYXRoIHNlcCc7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0R1c3QnLFxuICAgIGFsaWFzZXM6IFsgJ2RzdCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1sjXFwvXS8sXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGlsbGVnYWw6IC87LyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiAvW2EtekEtWlxcLi1dKy8sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgaWxsZWdhbDogLzsvLFxuICAgICAgICBrZXl3b3JkczogRVhQUkVTU0lPTl9LRVlXT1JEU1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkdXN0O1xuIiwgIi8qXG5MYW5ndWFnZTogRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybVxuQXV0aG9yOiBBbGV4IE1jS2liYmVuIDxhbGV4QG51bGxzY29wZS5uZXQ+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9FeHRlbmRlZF9CYWNrdXNcdTIwMTNOYXVyX2Zvcm1cbkNhdGVnb3J5OiBzeW50YXhcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBlYm5mKGhsanMpIHtcbiAgY29uc3QgY29tbWVudE1vZGUgPSBobGpzLkNPTU1FTlQoL1xcKFxcKi8sIC9cXCpcXCkvKTtcblxuICBjb25zdCBub25UZXJtaW5hbE1vZGUgPSB7XG4gICAgY2xhc3NOYW1lOiBcImF0dHJpYnV0ZVwiLFxuICAgIGJlZ2luOiAvXlsgXSpbYS16QS1aXSsoW1xcc18tXStbYS16QS1aXSspKi9cbiAgfTtcblxuICBjb25zdCBzcGVjaWFsU2VxdWVuY2VNb2RlID0ge1xuICAgIGNsYXNzTmFtZTogXCJtZXRhXCIsXG4gICAgYmVnaW46IC9cXD8uKlxcPy9cbiAgfTtcblxuICBjb25zdCBydWxlQm9keU1vZGUgPSB7XG4gICAgYmVnaW46IC89LyxcbiAgICBlbmQ6IC9bLjtdLyxcbiAgICBjb250YWluczogW1xuICAgICAgY29tbWVudE1vZGUsXG4gICAgICBzcGVjaWFsU2VxdWVuY2VNb2RlLFxuICAgICAge1xuICAgICAgICAvLyB0ZXJtaW5hbHNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ2AnLFxuICAgICAgICAgICAgZW5kOiAnYCdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybScsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGNvbW1lbnRNb2RlLFxuICAgICAgbm9uVGVybWluYWxNb2RlLFxuICAgICAgcnVsZUJvZHlNb2RlXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVibmY7XG4iLCAiLypcbkxhbmd1YWdlOiBFbGl4aXJcbkF1dGhvcjogSm9zaCBBZGFtcyA8am9zaEBpc290b3BlMTEuY29tPlxuRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gZm9yIEVsaXhpciBzb3VyY2UgY29kZSBmaWxlcyAoLmV4IGFuZCAuZXhzKS4gIEJhc2VkIG9uIHJ1YnkgbGFuZ3VhZ2Ugc3VwcG9ydC5cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5XZWJzaXRlOiBodHRwczovL2VsaXhpci1sYW5nLm9yZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGVsaXhpcihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgRUxJWElSX0lERU5UX1JFID0gJ1thLXpBLVpfXVthLXpBLVowLTlfLl0qKCF8XFxcXD8pPyc7XG4gIGNvbnN0IEVMSVhJUl9NRVRIT0RfUkUgPSAnW2EtekEtWl9dXFxcXHcqWyE/PV0/fFstK35dQHw8PHw+Pnw9fnw9PT0/fDw9PnxbPD5dPT98XFxcXCpcXFxcKnxbLS8rJV4mKn5gfF18XFxcXFtcXFxcXT0/JztcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhZnRlclwiLFxuICAgIFwiYWxpYXNcIixcbiAgICBcImFuZFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2F0Y2hcIixcbiAgICBcImNvbmRcIixcbiAgICBcImRlZnN0cnVjdFwiLFxuICAgIFwiZGVmZ3VhcmRcIixcbiAgICBcImRvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImZuXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcImluXCIsXG4gICAgXCJub3RcIixcbiAgICBcIm9yXCIsXG4gICAgXCJxdW90ZVwiLFxuICAgIFwicmFpc2VcIixcbiAgICBcInJlY2VpdmVcIixcbiAgICBcInJlcXVpcmVcIixcbiAgICBcInJlcmFpc2VcIixcbiAgICBcInJlc2N1ZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ1bmxlc3NcIixcbiAgICBcInVucXVvdGVcIixcbiAgICBcInVucXVvdGVfc3BsaWNpbmdcIixcbiAgICBcInVzZVwiLFxuICAgIFwid2hlblwiLFxuICAgIFwid2l0aHwwXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibmlsXCIsXG4gICAgXCJ0cnVlXCJcbiAgXTtcbiAgY29uc3QgS1dTID0ge1xuICAgICRwYXR0ZXJuOiBFTElYSVJfSURFTlRfUkUsXG4gICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTFNcbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvI1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS1dTXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnKFxcXFxiMG9bMC03X10rKXwoXFxcXGIwYlswMV9dKyl8KFxcXFxiMHhbMC05YS1mQS1GX10rKXwoLT9cXFxcYlswLTldWzAtOV9dKihcXFxcLlswLTlfXSsoW2VFXVstK10/WzAtOV0rKT8pPyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICAvLyBUT0RPOiBjb3VsZCBiZSB0aWdodGVuZWRcbiAgLy8gaHR0cHM6Ly9lbGl4aXItbGFuZy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvaW50cm8vMTguaHRtbFxuICAvLyBidXQgeW91IGFsc28gbmVlZCB0byBpbmNsdWRlIGNsb3NpbmcgZGVsZW1ldGVycyBpbiB0aGUgZXNjYXBlIGxpc3QgcGVyXG4gIC8vIGluZGl2aWR1YWwgc2lnaWwgbW9kZSBmcm9tIHdoYXQgSSBjYW4gdGVsbCxcbiAgLy8gaWU6IFxcfSBtaWdodCBvciBtaWdodCBub3QgYmUgYW4gZXNjYXBlIGRlcGVuZGluZyBvbiB0aGUgc2lnaWwgdXNlZFxuICBjb25zdCBFU0NBUEVTX1JFID0gL1xcXFxbXFxzXFxTXS87XG4gIC8vIGNvbnN0IEVTQ0FQRVNfUkUgPSAvXFxcXFtcIidcXFxcYWJkZWZucnN0djBdLztcbiAgY29uc3QgQkFDS1NMQVNIX0VTQ0FQRSA9IHtcbiAgICBtYXRjaDogRVNDQVBFU19SRSxcbiAgICBzY29wZTogXCJjaGFyLmVzY2FwZVwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBTSUdJTF9ERUxJTUlURVJTID0gJ1svfChbezxcIlxcJ10nO1xuICBjb25zdCBTSUdJTF9ERUxJTUlURVJfTU9ERVMgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC9cIi8sXG4gICAgICBlbmQ6IC9cIi9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvJy8sXG4gICAgICBlbmQ6IC8nL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXC8vLFxuICAgICAgZW5kOiAvXFwvL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXHwvLFxuICAgICAgZW5kOiAvXFx8L1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9L1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC88LyxcbiAgICAgIGVuZDogLz4vXG4gICAgfVxuICBdO1xuICBjb25zdCBlc2NhcGVTaWdpbEVuZCA9IChlbmQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcGU6IFwiY2hhci5lc2NhcGVcIixcbiAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcXFwvLCBlbmQpLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfTtcbiAgfTtcbiAgY29uc3QgTE9XRVJDQVNFX1NJR0lMID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICd+W2Etel0nICsgJyg/PScgKyBTSUdJTF9ERUxJTUlURVJTICsgJyknLFxuICAgIGNvbnRhaW5zOiBTSUdJTF9ERUxJTUlURVJfTU9ERVMubWFwKHggPT4gaGxqcy5pbmhlcml0KHgsXG4gICAgICB7IGNvbnRhaW5zOiBbXG4gICAgICAgIGVzY2FwZVNpZ2lsRW5kKHguZW5kKSxcbiAgICAgICAgQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgU1VCU1RcbiAgICAgIF0gfVxuICAgICkpXG4gIH07XG5cbiAgY29uc3QgVVBDQVNFX1NJR0lMID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICd+W0EtWl0nICsgJyg/PScgKyBTSUdJTF9ERUxJTUlURVJTICsgJyknLFxuICAgIGNvbnRhaW5zOiBTSUdJTF9ERUxJTUlURVJfTU9ERVMubWFwKHggPT4gaGxqcy5pbmhlcml0KHgsXG4gICAgICB7IGNvbnRhaW5zOiBbIGVzY2FwZVNpZ2lsRW5kKHguZW5kKSBdIH1cbiAgICApKVxuICB9O1xuXG4gIGNvbnN0IFJFR0VYX1NJR0lMID0ge1xuICAgIGNsYXNzTmFtZTogJ3JlZ2V4JyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ35yJyArICcoPz0nICsgU0lHSUxfREVMSU1JVEVSUyArICcpJyxcbiAgICAgICAgY29udGFpbnM6IFNJR0lMX0RFTElNSVRFUl9NT0RFUy5tYXAoeCA9PiBobGpzLmluaGVyaXQoeCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmQ6IHJlZ2V4LmNvbmNhdCh4LmVuZCwgL1t1aXNteGZVXXswLDd9LyksXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBlc2NhcGVTaWdpbEVuZCh4LmVuZCksXG4gICAgICAgICAgICAgIEJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICApKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd+UicgKyAnKD89JyArIFNJR0lMX0RFTElNSVRFUlMgKyAnKScsXG4gICAgICAgIGNvbnRhaW5zOiBTSUdJTF9ERUxJTUlURVJfTU9ERVMubWFwKHggPT4gaGxqcy5pbmhlcml0KHgsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW5kOiByZWdleC5jb25jYXQoeC5lbmQsIC9bdWlzbXhmVV17MCw3fS8pLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgZXNjYXBlU2lnaWxFbmQoeC5lbmQpIF1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLycnJy8sXG4gICAgICAgIGVuZDogLycnJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvflNcIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjb250YWluczogW10gLy8gb3ZlcnJpZGUgZGVmYXVsdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9+U1wiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogW10gLy8gb3ZlcnJpZGUgZGVmYXVsdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9+UycnJy8sXG4gICAgICAgIGVuZDogLycnJy8sXG4gICAgICAgIGNvbnRhaW5zOiBbXSAvLyBvdmVycmlkZSBkZWZhdWx0XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL35TJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW10gLy8gb3ZlcnJpZGUgZGVmYXVsdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZGVmIGRlZnAgZGVmbWFjcm8gZGVmbWFjcm9wJyxcbiAgICBlbmQ6IC9cXEJcXGIvLCAvLyB0aGUgbW9kZSBpcyBlbmRlZCBieSB0aGUgdGl0bGVcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgICAgICBiZWdpbjogRUxJWElSX0lERU5UX1JFLFxuICAgICAgICBlbmRzUGFyZW50OiB0cnVlXG4gICAgICB9KVxuICAgIF1cbiAgfTtcbiAgY29uc3QgQ0xBU1MgPSBobGpzLmluaGVyaXQoRlVOQ1RJT04sIHtcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW5LZXl3b3JkczogJ2RlZmltcGwgZGVmbW9kdWxlIGRlZnByb3RvY29sIGRlZnJlY29yZCcsXG4gICAgZW5kOiAvXFxiZG9cXGJ8JHw7L1xuICB9KTtcbiAgY29uc3QgRUxJWElSX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgU1RSSU5HLFxuICAgIFJFR0VYX1NJR0lMLFxuICAgIFVQQ0FTRV9TSUdJTCxcbiAgICBMT1dFUkNBU0VfU0lHSUwsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICBDTEFTUyxcbiAgICBGVU5DVElPTixcbiAgICB7IGJlZ2luOiAnOjonIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiAnOig/IVtcXFxcczpdKScsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBTVFJJTkcsXG4gICAgICAgIHsgYmVnaW46IEVMSVhJUl9NRVRIT0RfUkUgfVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBFTElYSVJfSURFTlRfUkUgKyAnOig/ITopJyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgeyAvLyBVc2FnZSBvZiBhIG1vZHVsZSwgc3RydWN0LCBldGMuXG4gICAgICBjbGFzc05hbWU6ICd0aXRsZS5jbGFzcycsXG4gICAgICBiZWdpbjogLyhcXGJbQS1aXVthLXpBLVowLTlfXSspLyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgTlVNQkVSLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgIGJlZ2luOiAnKFxcXFwkXFxcXFcpfCgoXFxcXCR8QEA/KShcXFxcdyspKSdcbiAgICB9XG4gICAgLy8gLT4gaGFzIGJlZW4gcmVtb3ZlZCwgY2FwbnByb3RvIGFsd2F5cyB1c2VzIHRoaXMgZ3JhbW1hciBjb25zdHJ1Y3RcbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFTElYSVJfREVGQVVMVF9DT05UQUlOUztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdFbGl4aXInLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdleCcsXG4gICAgICAnZXhzJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtXUyxcbiAgICBjb250YWluczogRUxJWElSX0RFRkFVTFRfQ09OVEFJTlNcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlbGl4aXI7XG4iLCAiLypcbkxhbmd1YWdlOiBFbG1cbkF1dGhvcjogSmFuaXMgVm9pZ3RsYWVuZGVyIDxqYW5pcy52b2lndGxhZW5kZXJAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9lbG0tbGFuZy5vcmdcbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZWxtKGhsanMpIHtcbiAgY29uc3QgQ09NTUVOVCA9IHsgdmFyaWFudHM6IFtcbiAgICBobGpzLkNPTU1FTlQoJy0tJywgJyQnKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFx7LS8sXG4gICAgICAvLVxcfS8sXG4gICAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgICApXG4gIF0gfTtcblxuICBjb25zdCBDT05TVFJVQ1RPUiA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHdcXCddKicsIC8vIFRPRE86IG90aGVyIGNvbnN0cnVjdG9ycyAoYnVpbHQtaW4sIGluZml4KS5cbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBMSVNUID0ge1xuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJyxcbiAgICBpbGxlZ2FsOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHddKihcXFxcKChcXFxcLlxcXFwufCx8XFxcXHcrKVxcXFwpKT8nXG4gICAgICB9LFxuICAgICAgQ09NTUVOVFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBSRUNPUkQgPSB7XG4gICAgYmVnaW46IC9cXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IExJU1QuY29udGFpbnNcbiAgfTtcblxuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcJ1xcXFxcXFxcPy4nLFxuICAgIGVuZDogJ1xcJycsXG4gICAgaWxsZWdhbDogJy4nXG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJsZXRcIixcbiAgICBcImluXCIsXG4gICAgXCJpZlwiLFxuICAgIFwidGhlblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwib2ZcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJtb2R1bGVcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiZXhwb3NpbmdcIixcbiAgICBcInR5cGVcIixcbiAgICBcImFsaWFzXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiaW5maXhcIixcbiAgICBcImluZml4bFwiLFxuICAgIFwiaW5maXhyXCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJlZmZlY3RcIixcbiAgICBcImNvbW1hbmRcIixcbiAgICBcInN1YnNjcmlwdGlvblwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRWxtJyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcblxuICAgICAgLy8gVG9wLWxldmVsIGNvbnN0cnVjdGlvbnMuXG5cbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3BvcnQgZWZmZWN0IG1vZHVsZScsXG4gICAgICAgIGVuZDogJ2V4cG9zaW5nJyxcbiAgICAgICAga2V5d29yZHM6ICdwb3J0IGVmZmVjdCBtb2R1bGUgd2hlcmUgY29tbWFuZCBzdWJzY3JpcHRpb24gZXhwb3NpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdpbXBvcnQnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6ICdpbXBvcnQgYXMgZXhwb3NpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd0eXBlJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAndHlwZSBhbGlhcycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09OU1RSVUNUT1IsXG4gICAgICAgICAgTElTVCxcbiAgICAgICAgICBSRUNPUkQsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5maXggaW5maXhsIGluZml4cicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAncG9ydCcsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ3BvcnQnLFxuICAgICAgICBjb250YWluczogWyBDT01NRU5UIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIExpdGVyYWxzIGFuZCBuYW1lcy5cbiAgICAgIENIQVJBQ1RFUixcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBDT05TVFJVQ1RPUixcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICdeW19hLXpdW1xcXFx3XFwnXSonIH0pLFxuICAgICAgQ09NTUVOVCxcblxuICAgICAgeyAvLyBObyBtYXJrdXAsIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAnLT58PC0nIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC87L1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVsbTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFJ1YnlcbkRlc2NyaXB0aW9uOiBSdWJ5IGlzIGEgZHluYW1pYywgb3BlbiBzb3VyY2UgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugd2l0aCBhIGZvY3VzIG9uIHNpbXBsaWNpdHkgYW5kIHByb2R1Y3Rpdml0eS5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnJ1YnktbGFuZy5vcmcvXG5BdXRob3I6IEFudG9uIEtvdmFseW92IDxhbnRvbkBrb3ZhbHlvdi5uZXQ+XG5Db250cmlidXRvcnM6IFBldGVyIExlb25vdiA8Z29qcGVnQHlhbmRleC5ydT4sIFZhc2lseSBQb2xvdm55b3YgPHZhc3RAd2hpdGVhbnRzLm5ldD4sIExvcmVuIFNlZ2FsIDxsc2VnYWxAc29lbi5jYT4sIFBhc2NhbCBIdXJuaSA8cGhpQHJ1YnktcmVhY3RpdmUub3JnPiwgQ2VkcmljIFNvaHJhdWVyIDxzb2hyYXVlckBnb29nbGVtYWlsLmNvbT5cbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gcnVieShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgUlVCWV9NRVRIT0RfUkUgPSAnKFthLXpBLVpfXVxcXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcXFwqXFxcXCp8Wy0vKyVeJip+YHxdfFxcXFxbXFxcXF09PyknO1xuICAvLyBUT0RPOiBtb3ZlIGNvbmNlcHRzIGxpa2UgQ0FNRUxfQ0FTRSBpbnRvIGBtb2Rlcy5qc2BcbiAgY29uc3QgQ0xBU1NfTkFNRV9SRSA9IHJlZ2V4LmVpdGhlcihcbiAgICAvXFxiKFtBLVpdK1thLXowLTldKykrLyxcbiAgICAvLyBlbmRzIGluIGNhcHNcbiAgICAvXFxiKFtBLVpdK1thLXowLTldKykrW0EtWl0rLyxcbiAgKVxuICA7XG4gIGNvbnN0IENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUgPSByZWdleC5jb25jYXQoQ0xBU1NfTkFNRV9SRSwgLyg6OlxcdyspKi8pO1xuICAvLyB2ZXJ5IHBvcHVsYXIgcnVieSBidWlsdC1pbnMgdGhhdCBvbmUgbWlnaHQgZXZlbiBhc3N1bWVcbiAgLy8gYXJlIGFjdHVhbCBrZXl3b3JkcyAoZGVzcGl0ZSB0aGF0IG5vdCBiZWluZyB0aGUgY2FzZSlcbiAgY29uc3QgUFNFVURPX0tXUyA9IFtcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImV4dGVuZFwiLFxuICAgIFwicHJlcGVuZFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInJhaXNlXCIsXG4gICAgXCJ0aHJvd1wiXG4gIF07XG4gIGNvbnN0IFJVQllfS0VZV09SRFMgPSB7XG4gICAgXCJ2YXJpYWJsZS5jb25zdGFudFwiOiBbXG4gICAgICBcIl9fRklMRV9fXCIsXG4gICAgICBcIl9fTElORV9fXCIsXG4gICAgICBcIl9fRU5DT0RJTkdfX1wiXG4gICAgXSxcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IFtcbiAgICAgIFwic2VsZlwiLFxuICAgICAgXCJzdXBlclwiLFxuICAgIF0sXG4gICAga2V5d29yZDogW1xuICAgICAgXCJhbGlhc1wiLFxuICAgICAgXCJhbmRcIixcbiAgICAgIFwiYmVnaW5cIixcbiAgICAgIFwiQkVHSU5cIixcbiAgICAgIFwiYnJlYWtcIixcbiAgICAgIFwiY2FzZVwiLFxuICAgICAgXCJjbGFzc1wiLFxuICAgICAgXCJkZWZpbmVkXCIsXG4gICAgICBcImRvXCIsXG4gICAgICBcImVsc2VcIixcbiAgICAgIFwiZWxzaWZcIixcbiAgICAgIFwiZW5kXCIsXG4gICAgICBcIkVORFwiLFxuICAgICAgXCJlbnN1cmVcIixcbiAgICAgIFwiZm9yXCIsXG4gICAgICBcImlmXCIsXG4gICAgICBcImluXCIsXG4gICAgICBcIm1vZHVsZVwiLFxuICAgICAgXCJuZXh0XCIsXG4gICAgICBcIm5vdFwiLFxuICAgICAgXCJvclwiLFxuICAgICAgXCJyZWRvXCIsXG4gICAgICBcInJlcXVpcmVcIixcbiAgICAgIFwicmVzY3VlXCIsXG4gICAgICBcInJldHJ5XCIsXG4gICAgICBcInJldHVyblwiLFxuICAgICAgXCJ0aGVuXCIsXG4gICAgICBcInVuZGVmXCIsXG4gICAgICBcInVubGVzc1wiLFxuICAgICAgXCJ1bnRpbFwiLFxuICAgICAgXCJ3aGVuXCIsXG4gICAgICBcIndoaWxlXCIsXG4gICAgICBcInlpZWxkXCIsXG4gICAgICAuLi5QU0VVRE9fS1dTXG4gICAgXSxcbiAgICBidWlsdF9pbjogW1xuICAgICAgXCJwcm9jXCIsXG4gICAgICBcImxhbWJkYVwiLFxuICAgICAgXCJhdHRyX2FjY2Vzc29yXCIsXG4gICAgICBcImF0dHJfcmVhZGVyXCIsXG4gICAgICBcImF0dHJfd3JpdGVyXCIsXG4gICAgICBcImRlZmluZV9tZXRob2RcIixcbiAgICAgIFwicHJpdmF0ZV9jb25zdGFudFwiLFxuICAgICAgXCJtb2R1bGVfZnVuY3Rpb25cIlxuICAgIF0sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgXCJ0cnVlXCIsXG4gICAgICBcImZhbHNlXCIsXG4gICAgICBcIm5pbFwiXG4gICAgXVxuICB9O1xuICBjb25zdCBZQVJET0NUQUcgPSB7XG4gICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gIH07XG4gIGNvbnN0IElSQl9PQkpFQ1QgPSB7XG4gICAgYmVnaW46ICcjPCcsXG4gICAgZW5kOiAnPidcbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnIycsXG4gICAgICAnJCcsXG4gICAgICB7IGNvbnRhaW5zOiBbIFlBUkRPQ1RBRyBdIH1cbiAgICApLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICdePWJlZ2luJyxcbiAgICAgICdePWVuZCcsXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBbIFlBUkRPQ1RBRyBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoJ15fX0VORF9fJywgaGxqcy5NQVRDSF9OT1RISU5HX1JFKVxuICBdO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC8jXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvYC8sXG4gICAgICAgIGVuZDogL2AvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdP1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJVtxUXdXeF0/XFxbLyxcbiAgICAgICAgZW5kOiAvXFxdL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT9cXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdPzwvLFxuICAgICAgICBlbmQ6IC8+L1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT9cXC8vLFxuICAgICAgICBlbmQ6IC9cXC8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdPyUvLFxuICAgICAgICBlbmQ6IC8lL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT8tLyxcbiAgICAgICAgZW5kOiAvLS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJVtxUXdXeF0/XFx8LyxcbiAgICAgICAgZW5kOiAvXFx8L1xuICAgICAgfSxcbiAgICAgIC8vIGluIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbnMsIFxcQiBpbiB0aGUgYmVnaW5uaW5nIHN1cHByZXNzZXMgcmVjb2duaXRpb24gb2YgPy1zZXF1ZW5jZXNcbiAgICAgIC8vIHdoZXJlID8gaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgcHJlY2VkaW5nIGlkZW50aWZpZXIsIGFzIGluOiBgZnVuYz80YFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxcXFxkezEsM30pLyB9LFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxceFtBLUZhLWYwLTldezEsMn0pLyB9LFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxcdVxcez9bQS1GYS1mMC05XXsxLDZ9XFx9PykvIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/KFxcXFxNLVxcXFxDLXxcXFxcTS1cXFxcY3xcXFxcY1xcXFxNLXxcXFxcTS18XFxcXEMtXFxcXE0tKVtcXHgyMC1cXHg3ZV0vIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/XFxcXChjfEMtKVtcXHgyMC1cXHg3ZV0vIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/XFxcXD9cXFMvIH0sXG4gICAgICAvLyBoZXJlZG9jc1xuICAgICAge1xuICAgICAgICAvLyB0aGlzIGd1YXJkIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGFuIGVudGlyZSBoZXJlZG9jIGFuZCBub3QgYSBmYWxzZVxuICAgICAgICAvLyBwb3NpdGl2ZSAoYXV0by1kZXRlY3QsIGV0Yy4pXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLzw8Wy1+XT8nPy8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKC8oXFx3KykoPz1cXFcpW15cXG5dKlxcbig/OlteXFxuXSpcXG4pKj9cXHMqXFwxXFxiLylcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvKFxcdyspLyxcbiAgICAgICAgICAgIGVuZDogLyhcXHcrKS8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBSdWJ5IHN5bnRheCBpcyB1bmRlcmRvY3VtZW50ZWQsIGJ1dCB0aGlzIGdyYW1tYXIgc2VlbXMgdG8gYmUgYWNjdXJhdGVcbiAgLy8gYXMgb2YgdmVyc2lvbiAyLjcuMiAoY29uZmlybWVkIHdpdGggKGlyYiBhbmQgYFJpcHBlci5zZXhwKC4uLilgKVxuICAvLyBodHRwczovL2RvY3MucnVieS1sYW5nLm9yZy9lbi8yLjcuMC9kb2Mvc3ludGF4L2xpdGVyYWxzX3Jkb2MuaHRtbCNsYWJlbC1OdW1iZXJzXG4gIGNvbnN0IGRlY2ltYWwgPSAnWzEtOV0oXz9bMC05XSkqfDAnO1xuICBjb25zdCBkaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBkZWNpbWFsIGludGVnZXIvZmxvYXQsIG9wdGlvbmFsbHkgZXhwb25lbnRpYWwgb3IgcmF0aW9uYWwsIG9wdGlvbmFsbHkgaW1hZ2luYXJ5XG4gICAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsfSkoXFxcXC4oJHtkaWdpdHN9KSk/KFtlRV1bKy1dPygke2RpZ2l0c30pfHIpP2k/XFxcXGJgIH0sXG5cbiAgICAgIC8vIGV4cGxpY2l0IGRlY2ltYWwvYmluYXJ5L29jdGFsL2hleGFkZWNpbWFsIGludGVnZXIsXG4gICAgICAvLyBvcHRpb25hbGx5IHJhdGlvbmFsIGFuZC9vciBpbWFnaW5hcnlcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW2REXVswLTldKF8/WzAtOV0pKnI/aT9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpyP2k/XFxcXGJcIiB9LFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbb09dWzAtN10oXz9bMC03XSkqcj9pP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW3hYXVswLTlhLWZBLUZdKF8/WzAtOWEtZkEtRl0pKnI/aT9cXFxcYlwiIH0sXG5cbiAgICAgIC8vIDAtcHJlZml4ZWQgaW1wbGljaXQgb2N0YWwgaW50ZWdlciwgb3B0aW9uYWxseSByYXRpb25hbCBhbmQvb3IgaW1hZ2luYXJ5XG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMChfP1swLTddKStyP2k/XFxcXGJcIiB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcKFxcKS8sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogLyg/PVxcKSkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTLFxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBJTkNMVURFX0VYVEVORCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhpbmNsdWRlfGV4dGVuZClcXHMrLyxcbiAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkVcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAyOiBcInRpdGxlLmNsYXNzXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUsXG4gICAgICAgICAgL1xccys8XFxzKy8sXG4gICAgICAgICAgQ0xBU1NfTkFNRV9XSVRIX05BTUVTUEFDRV9SRVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9cXGIoY2xhc3N8bW9kdWxlKVxccysvLFxuICAgICAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgVVBQRVJfQ0FTRV9DT05TVEFOVCA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IC9cXGJbQS1aXVtBLVpfMC05XStcXGIvLFxuICAgIGNsYXNzTmFtZTogXCJ2YXJpYWJsZS5jb25zdGFudFwiXG4gIH07XG5cbiAgY29uc3QgTUVUSE9EX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9kZWYvLCAvXFxzKy8sXG4gICAgICBSVUJZX01FVEhPRF9SRVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE9CSkVDVF9DUkVBVElPTiA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUsXG4gICAgICAvXFwubmV3Wy4gKF0vXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfVxuICB9O1xuXG4gIC8vIENhbWVsQ2FzZVxuICBjb25zdCBDTEFTU19SRUZFUkVOQ0UgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiBDTEFTU19OQU1FX1JFLFxuICAgIHNjb3BlOiBcInRpdGxlLmNsYXNzXCJcbiAgfTtcblxuICBjb25zdCBSVUJZX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgU1RSSU5HLFxuICAgIENMQVNTX0RFRklOSVRJT04sXG4gICAgSU5DTFVERV9FWFRFTkQsXG4gICAgT0JKRUNUX0NSRUFUSU9OLFxuICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgIE1FVEhPRF9ERUZJTklUSU9OLFxuICAgIHtcbiAgICAgIC8vIHN3YWxsb3cgbmFtZXNwYWNlIHF1YWxpZmllcnMgYmVmb3JlIHN5bWJvbHNcbiAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJyghfFxcXFw/KT86JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiAnOig/IVxcXFxzKScsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBTVFJJTkcsXG4gICAgICAgIHsgYmVnaW46IFJVQllfTUVUSE9EX1JFIH1cbiAgICAgIF0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIE5VTUJFUixcbiAgICB7XG4gICAgICAvLyBuZWdhdGl2ZS1sb29rIGZvcndhcmQgYXR0ZW1wdHMgdG8gcHJldmVudCBmYWxzZSBtYXRjaGVzIGxpa2U6XG4gICAgICAvLyBAaWRlbnRAIG9yICRpZGVudCQgdGhhdCBtaWdodCBpbmRpY2F0ZSB0aGlzIGlzIG5vdCBydWJ5IGF0IGFsbFxuICAgICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCIsXG4gICAgICBiZWdpbjogJyhcXFxcJFxcXFxXKXwoKFxcXFwkfEBAPykoXFxcXHcrKSkoPz1bXkAkP10pJyArIGAoPyFbQS1aYS16XSkoPyFbQCQ/J10pYFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgIGJlZ2luOiAvXFx8LyxcbiAgICAgIGVuZDogL1xcfC8sXG4gICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgcmVsZXZhbmNlOiAwLCAvLyB0aGlzIGNvdWxkIGJlIGEgbG90IG9mIHRoaW5ncyAoaW4gb3RoZXIgbGFuZ3VhZ2VzKSBvdGhlciB0aGFuIHBhcmFtc1xuICAgICAga2V5d29yZHM6IFJVQllfS0VZV09SRFNcbiAgICB9LFxuICAgIHsgLy8gcmVnZXhwIGNvbnRhaW5lclxuICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfHVubGVzcylcXFxccyonLFxuICAgICAga2V5d29yZHM6ICd1bmxlc3MnLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgXSxcbiAgICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogJy8nLFxuICAgICAgICAgICAgICBlbmQ6ICcvW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46IC8lclxcey8sXG4gICAgICAgICAgICAgIGVuZDogL1xcfVthLXpdKi9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJlZ2luOiAnJXJcXFxcKCcsXG4gICAgICAgICAgICAgIGVuZDogJ1xcXFwpW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46ICclciEnLFxuICAgICAgICAgICAgICBlbmQ6ICchW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46ICclclxcXFxbJyxcbiAgICAgICAgICAgICAgZW5kOiAnXFxcXF1bYS16XSonXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLmNvbmNhdChJUkJfT0JKRUNULCBDT01NRU5UX01PREVTKSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXS5jb25jYXQoSVJCX09CSkVDVCwgQ09NTUVOVF9NT0RFUyk7XG5cbiAgU1VCU1QuY29udGFpbnMgPSBSVUJZX0RFRkFVTFRfQ09OVEFJTlM7XG4gIFBBUkFNUy5jb250YWlucyA9IFJVQllfREVGQVVMVF9DT05UQUlOUztcblxuICAvLyA+PlxuICAvLyA/PlxuICBjb25zdCBTSU1QTEVfUFJPTVBUID0gXCJbPj9dPlwiO1xuICAvLyBpcmIobWFpbik6MDAxOjA+XG4gIGNvbnN0IERFRkFVTFRfUFJPTVBUID0gXCJbXFxcXHcjXStcXFxcKFxcXFx3K1xcXFwpOlxcXFxkKzpcXFxcZCtbPipdXCI7XG4gIGNvbnN0IFJWTV9QUk9NUFQgPSBcIihcXFxcdystKT9cXFxcZCtcXFxcLlxcXFxkK1xcXFwuXFxcXGQrKHBcXFxcZCspP1teXFxcXGRdW14+XSs+XCI7XG5cbiAgY29uc3QgSVJCX0RFRkFVTFQgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC9eXFxzKj0+LyxcbiAgICAgIHN0YXJ0czoge1xuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFJVQllfREVGQVVMVF9DT05UQUlOU1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgYmVnaW46ICdeKCcgKyBTSU1QTEVfUFJPTVBUICsgXCJ8XCIgKyBERUZBVUxUX1BST01QVCArICd8JyArIFJWTV9QUk9NUFQgKyAnKSg/PVsgXSknLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFJVQllfREVGQVVMVF9DT05UQUlOU1xuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICBDT01NRU5UX01PREVTLnVuc2hpZnQoSVJCX09CSkVDVCk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUnVieScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3JiJyxcbiAgICAgICdnZW1zcGVjJyxcbiAgICAgICdwb2RzcGVjJyxcbiAgICAgICd0aG9yJyxcbiAgICAgICdpcmInXG4gICAgXSxcbiAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogWyBobGpzLlNIRUJBTkcoeyBiaW5hcnk6IFwicnVieVwiIH0pIF1cbiAgICAgIC5jb25jYXQoSVJCX0RFRkFVTFQpXG4gICAgICAuY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gICAgICAuY29uY2F0KFJVQllfREVGQVVMVF9DT05UQUlOUylcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBydWJ5O1xuIiwgIi8qXG5MYW5ndWFnZTogRVJCIChFbWJlZGRlZCBSdWJ5KVxuUmVxdWlyZXM6IHhtbC5qcywgcnVieS5qc1xuQXV0aG9yOiBMdWNhcyBNYXp6YSA8bHVjYXN0bWF6emFAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBLYXNzaW8gQm9yZ2VzIDxrYXNzaW9ib3JnZXNtQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBcIkJyaWRnZVwiIGxhbmd1YWdlIGRlZmluaW5nIGZyYWdtZW50cyBvZiBSdWJ5IGluIEhUTUwgd2l0aGluIDwlIC4uICU+XG5XZWJzaXRlOiBodHRwczovL3J1YnktZG9jLm9yZy9zdGRsaWItMi42LjUvbGliZG9jL2VyYi9yZG9jL0VSQi5odG1sXG5DYXRlZ29yeTogdGVtcGxhdGVcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBlcmIoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdFUkInLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc8JSMnLCAnJT4nKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8JVslPS1dPycsXG4gICAgICAgIGVuZDogJ1slLV0/JT4nLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXJiO1xuIiwgIi8qXG5MYW5ndWFnZTogRXJsYW5nIFJFUExcbkF1dGhvcjogU2VyZ2V5IElnbmF0b3YgPHNlcmdleUBpZ25hdG92LnNwYi5zdT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmVybGFuZy5vcmdcbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZXJsYW5nUmVwbChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRXJsYW5nIFJFUEwnLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ3NwYXduIHNwYXduX2xpbmsgc2VsZicsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnYWZ0ZXIgYW5kIGFuZGFsc298MTAgYmFuZCBiZWdpbiBibm90IGJvciBic2wgYnNyIGJ4b3IgY2FzZSBjYXRjaCBjb25kIGRpdiBlbmQgZnVuIGlmICdcbiAgICAgICAgKyAnbGV0IG5vdCBvZiBvciBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgICBiZWdpbjogJ15bMC05XSs+ICcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoJyUnLCAnJCcpLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKFxcXFxkKyhfXFxcXGQrKSojW2EtZkEtRjAtOV0rKF9bYS1mQS1GMC05XSspKnxcXFxcZCsoX1xcXFxkKykqKFxcXFwuXFxcXGQrKF9cXFxcZCspKik/KFtlRV1bLStdP1xcXFxkKyk/KScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgIC9cXD8oOjopPy8sXG4gICAgICAgIC8oW0EtWl1cXHcqKS8sIC8vIGF0IGxlYXN0IG9uZSBpZGVudGlmaWVyXG4gICAgICAgIC8oKDo6KVtBLVpdXFx3KikqLyAvLyBwZXJoYXBzIG1vcmVcbiAgICAgICkgfSxcbiAgICAgIHsgYmVnaW46ICctPicgfSxcbiAgICAgIHsgYmVnaW46ICdvaycgfSxcbiAgICAgIHsgYmVnaW46ICchJyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyhcXFxcYlthLXpcXCddW2EtekEtWjAtOV9cXCddKjpbYS16XFwnXVthLXpBLVowLTlfXFwnXSopfChcXFxcYlthLXpcXCddW2EtekEtWjAtOV9cXCddKiknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnW0EtWl1bYS16QS1aMC05X1xcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVybGFuZ1JlcGw7XG4iLCAiLypcbkxhbmd1YWdlOiBFcmxhbmdcbkRlc2NyaXB0aW9uOiBFcmxhbmcgaXMgYSBnZW5lcmFsLXB1cnBvc2UgZnVuY3Rpb25hbCBsYW5ndWFnZSwgd2l0aCBzdHJpY3QgZXZhbHVhdGlvbiwgc2luZ2xlIGFzc2lnbm1lbnQsIGFuZCBkeW5hbWljIHR5cGluZy5cbkF1dGhvcjogTmlrb2xheSBaYWtoYXJvdiA8bmlrb2xheS5kZXNoQGdtYWlsLmNvbT4sIERtaXRyeSBLb3ZlZ2EgPGFyaGlib3RAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZXJsYW5nLm9yZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBlcmxhbmcoaGxqcykge1xuICBjb25zdCBCQVNJQ19BVE9NX1JFID0gJ1thLXpcXCddW2EtekEtWjAtOV9cXCddKic7XG4gIGNvbnN0IEZVTkNUSU9OX05BTUVfUkUgPSAnKCcgKyBCQVNJQ19BVE9NX1JFICsgJzonICsgQkFTSUNfQVRPTV9SRSArICd8JyArIEJBU0lDX0FUT01fUkUgKyAnKSc7XG4gIGNvbnN0IEVSTEFOR19SRVNFUlZFRCA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2FmdGVyIGFuZCBhbmRhbHNvfDEwIGJhbmQgYmVnaW4gYm5vdCBib3IgYnNsIGJ6ciBieG9yIGNhc2UgY2F0Y2ggY29uZCBkaXYgZW5kIGZ1biBpZiAnXG4gICAgICArICdsZXQgbm90IG9mIG9yZWxzZXwxMCBxdWVyeSByZWNlaXZlIHJlbSB0cnkgd2hlbiB4b3InLFxuICAgIGxpdGVyYWw6XG4gICAgICAnZmFsc2UgdHJ1ZSdcbiAgfTtcblxuICBjb25zdCBDT01NRU5UID0gaGxqcy5DT01NRU5UKCclJywgJyQnKTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYihcXFxcZCsoX1xcXFxkKykqI1thLWZBLUYwLTldKyhfW2EtZkEtRjAtOV0rKSp8XFxcXGQrKF9cXFxcZCspKihcXFxcLlxcXFxkKyhfXFxcXGQrKSopPyhbZUVdWy0rXT9cXFxcZCspPyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBOQU1FRF9GVU4gPSB7IGJlZ2luOiAnZnVuXFxcXHMrJyArIEJBU0lDX0FUT01fUkUgKyAnL1xcXFxkKycgfTtcbiAgY29uc3QgRlVOQ1RJT05fQ0FMTCA9IHtcbiAgICBiZWdpbjogRlVOQ1RJT05fTkFNRV9SRSArICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogRlVOQ1RJT05fTkFNRV9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgLy8gXCJjb250YWluc1wiIGRlZmluZWQgbGF0ZXJcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFRVUExFID0ge1xuICAgIGJlZ2luOiAvXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIHJlbGV2YW5jZTogMFxuICAgIC8vIFwiY29udGFpbnNcIiBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IFZBUjEgPSB7XG4gICAgYmVnaW46ICdcXFxcYl8oW0EtWl1bQS1aYS16MC05X10qKT8nLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBWQVIyID0ge1xuICAgIGJlZ2luOiAnW0EtWl1bYS16QS1aMC05X10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgUkVDT1JEX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogJyMnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyMnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIC8vIFwiY29udGFpbnNcIiBkZWZpbmVkIGxhdGVyXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBDSEFSX0xJVEVSQUwgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIG1hdGNoOiAvXFwkKFxcXFwoW14wLTldfFswLTldezEsM318KXwuKS8sXG4gIH07XG5cbiAgY29uc3QgQkxPQ0tfU1RBVEVNRU5UUyA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnZnVuIHJlY2VpdmUgaWYgdHJ5IGNhc2UnLFxuICAgIGVuZDogJ2VuZCcsXG4gICAga2V5d29yZHM6IEVSTEFOR19SRVNFUlZFRFxuICB9O1xuICBCTE9DS19TVEFURU1FTlRTLmNvbnRhaW5zID0gW1xuICAgIENPTU1FTlQsXG4gICAgTkFNRURfRlVOLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnJyB9KSxcbiAgICBCTE9DS19TVEFURU1FTlRTLFxuICAgIEZVTkNUSU9OX0NBTEwsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBOVU1CRVIsXG4gICAgVFVQTEUsXG4gICAgVkFSMSxcbiAgICBWQVIyLFxuICAgIFJFQ09SRF9BQ0NFU1MsXG4gICAgQ0hBUl9MSVRFUkFMXG4gIF07XG5cbiAgY29uc3QgQkFTSUNfTU9ERVMgPSBbXG4gICAgQ09NTUVOVCxcbiAgICBOQU1FRF9GVU4sXG4gICAgQkxPQ0tfU1RBVEVNRU5UUyxcbiAgICBGVU5DVElPTl9DQUxMLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgTlVNQkVSLFxuICAgIFRVUExFLFxuICAgIFZBUjEsXG4gICAgVkFSMixcbiAgICBSRUNPUkRfQUNDRVNTLFxuICAgIENIQVJfTElURVJBTFxuICBdO1xuICBGVU5DVElPTl9DQUxMLmNvbnRhaW5zWzFdLmNvbnRhaW5zID0gQkFTSUNfTU9ERVM7XG4gIFRVUExFLmNvbnRhaW5zID0gQkFTSUNfTU9ERVM7XG4gIFJFQ09SRF9BQ0NFU1MuY29udGFpbnNbMV0uY29udGFpbnMgPSBCQVNJQ19NT0RFUztcblxuICBjb25zdCBESVJFQ1RJVkVTID0gW1xuICAgIFwiLW1vZHVsZVwiLFxuICAgIFwiLXJlY29yZFwiLFxuICAgIFwiLXVuZGVmXCIsXG4gICAgXCItZXhwb3J0XCIsXG4gICAgXCItaWZkZWZcIixcbiAgICBcIi1pZm5kZWZcIixcbiAgICBcIi1hdXRob3JcIixcbiAgICBcIi1jb3B5cmlnaHRcIixcbiAgICBcIi1kb2NcIixcbiAgICBcIi12c25cIixcbiAgICBcIi1pbXBvcnRcIixcbiAgICBcIi1pbmNsdWRlXCIsXG4gICAgXCItaW5jbHVkZV9saWJcIixcbiAgICBcIi1jb21waWxlXCIsXG4gICAgXCItZGVmaW5lXCIsXG4gICAgXCItZWxzZVwiLFxuICAgIFwiLWVuZGlmXCIsXG4gICAgXCItZmlsZVwiLFxuICAgIFwiLWJlaGF2aW91clwiLFxuICAgIFwiLWJlaGF2aW9yXCIsXG4gICAgXCItc3BlY1wiXG4gIF07XG5cbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBCQVNJQ19NT0RFU1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0VybGFuZycsXG4gICAgYWxpYXNlczogWyAnZXJsJyBdLFxuICAgIGtleXdvcmRzOiBFUkxBTkdfUkVTRVJWRUQsXG4gICAgaWxsZWdhbDogJyg8L3xcXFxcKj18XFxcXCs9fC09fC9cXFxcKnxcXFxcKi98XFxcXChcXFxcKnxcXFxcKlxcXFwpKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ14nICsgQkFTSUNfQVRPTV9SRSArICdcXFxccypcXFxcKCcsXG4gICAgICAgIGVuZDogJy0+JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcKHwjfC8vfC9cXFxcKnxcXFxcXFxcXHw6fDsnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBCQVNJQ19BVE9NX1JFIH0pXG4gICAgICAgIF0sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJzt8XFxcXC4nLFxuICAgICAgICAgIGtleXdvcmRzOiBFUkxBTkdfUkVTRVJWRUQsXG4gICAgICAgICAgY29udGFpbnM6IEJBU0lDX01PREVTXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBDT01NRU5ULFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ14tJyxcbiAgICAgICAgZW5kOiAnXFxcXC4nLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgICRwYXR0ZXJuOiAnLScgKyBobGpzLklERU5UX1JFLFxuICAgICAgICAgIGtleXdvcmQ6IERJUkVDVElWRVMubWFwKHggPT4gYCR7eH18MS41YCkuam9pbihcIiBcIilcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgIH0sXG4gICAgICBOVU1CRVIsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgUkVDT1JEX0FDQ0VTUyxcbiAgICAgIFZBUjEsXG4gICAgICBWQVIyLFxuICAgICAgVFVQTEUsXG4gICAgICBDSEFSX0xJVEVSQUwsXG4gICAgICB7IGJlZ2luOiAvXFwuJC8gfSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcmxhbmc7XG4iLCAiLypcbkxhbmd1YWdlOiBFeGNlbCBmb3JtdWxhZVxuQXV0aG9yOiBWaWN0b3IgWmhvdSA8T2lDTXVka2lwc0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+XG5EZXNjcmlwdGlvbjogRXhjZWwgZm9ybXVsYWVcbldlYnNpdGU6IGh0dHBzOi8vcHJvZHVjdHMub2ZmaWNlLmNvbS9lbi11cy9leGNlbC9cbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZXhjZWwoaGxqcykge1xuICAvLyBidWlsdC1pbiBmdW5jdGlvbnMgaW1wb3J0ZWQgZnJvbSBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA1MTMwNDI3MTAvaHR0cHM6Ly9zdXBwb3J0Lm9mZmljZS5jb20vZW4tdXMvYXJ0aWNsZS9FeGNlbC1mdW5jdGlvbnMtYWxwaGFiZXRpY2FsLWIzOTQ0NTcyLTI1NWQtNGVmYi1iYjk2LWM2ZDkwMDMzZTE4OFxuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJBQlNcIixcbiAgICBcIkFDQ1JJTlRcIixcbiAgICBcIkFDQ1JJTlRNXCIsXG4gICAgXCJBQ09TXCIsXG4gICAgXCJBQ09TSFwiLFxuICAgIFwiQUNPVFwiLFxuICAgIFwiQUNPVEhcIixcbiAgICBcIkFHR1JFR0FURVwiLFxuICAgIFwiQUREUkVTU1wiLFxuICAgIFwiQU1PUkRFR1JDXCIsXG4gICAgXCJBTU9STElOQ1wiLFxuICAgIFwiQU5EXCIsXG4gICAgXCJBUkFCSUNcIixcbiAgICBcIkFSRUFTXCIsXG4gICAgXCJBU0NcIixcbiAgICBcIkFTSU5cIixcbiAgICBcIkFTSU5IXCIsXG4gICAgXCJBVEFOXCIsXG4gICAgXCJBVEFOMlwiLFxuICAgIFwiQVRBTkhcIixcbiAgICBcIkFWRURFVlwiLFxuICAgIFwiQVZFUkFHRVwiLFxuICAgIFwiQVZFUkFHRUFcIixcbiAgICBcIkFWRVJBR0VJRlwiLFxuICAgIFwiQVZFUkFHRUlGU1wiLFxuICAgIFwiQkFIVFRFWFRcIixcbiAgICBcIkJBU0VcIixcbiAgICBcIkJFU1NFTElcIixcbiAgICBcIkJFU1NFTEpcIixcbiAgICBcIkJFU1NFTEtcIixcbiAgICBcIkJFU1NFTFlcIixcbiAgICBcIkJFVEFESVNUXCIsXG4gICAgXCJCRVRBLkRJU1RcIixcbiAgICBcIkJFVEFJTlZcIixcbiAgICBcIkJFVEEuSU5WXCIsXG4gICAgXCJCSU4yREVDXCIsXG4gICAgXCJCSU4ySEVYXCIsXG4gICAgXCJCSU4yT0NUXCIsXG4gICAgXCJCSU5PTURJU1RcIixcbiAgICBcIkJJTk9NLkRJU1RcIixcbiAgICBcIkJJTk9NLkRJU1QuUkFOR0VcIixcbiAgICBcIkJJTk9NLklOVlwiLFxuICAgIFwiQklUQU5EXCIsXG4gICAgXCJCSVRMU0hJRlRcIixcbiAgICBcIkJJVE9SXCIsXG4gICAgXCJCSVRSU0hJRlRcIixcbiAgICBcIkJJVFhPUlwiLFxuICAgIFwiQ0FMTFwiLFxuICAgIFwiQ0VJTElOR1wiLFxuICAgIFwiQ0VJTElORy5NQVRIXCIsXG4gICAgXCJDRUlMSU5HLlBSRUNJU0VcIixcbiAgICBcIkNFTExcIixcbiAgICBcIkNIQVJcIixcbiAgICBcIkNISURJU1RcIixcbiAgICBcIkNISUlOVlwiLFxuICAgIFwiQ0hJVEVTVFwiLFxuICAgIFwiQ0hJU1EuRElTVFwiLFxuICAgIFwiQ0hJU1EuRElTVC5SVFwiLFxuICAgIFwiQ0hJU1EuSU5WXCIsXG4gICAgXCJDSElTUS5JTlYuUlRcIixcbiAgICBcIkNISVNRLlRFU1RcIixcbiAgICBcIkNIT09TRVwiLFxuICAgIFwiQ0xFQU5cIixcbiAgICBcIkNPREVcIixcbiAgICBcIkNPTFVNTlwiLFxuICAgIFwiQ09MVU1OU1wiLFxuICAgIFwiQ09NQklOXCIsXG4gICAgXCJDT01CSU5BXCIsXG4gICAgXCJDT01QTEVYXCIsXG4gICAgXCJDT05DQVRcIixcbiAgICBcIkNPTkNBVEVOQVRFXCIsXG4gICAgXCJDT05GSURFTkNFXCIsXG4gICAgXCJDT05GSURFTkNFLk5PUk1cIixcbiAgICBcIkNPTkZJREVOQ0UuVFwiLFxuICAgIFwiQ09OVkVSVFwiLFxuICAgIFwiQ09SUkVMXCIsXG4gICAgXCJDT1NcIixcbiAgICBcIkNPU0hcIixcbiAgICBcIkNPVFwiLFxuICAgIFwiQ09USFwiLFxuICAgIFwiQ09VTlRcIixcbiAgICBcIkNPVU5UQVwiLFxuICAgIFwiQ09VTlRCTEFOS1wiLFxuICAgIFwiQ09VTlRJRlwiLFxuICAgIFwiQ09VTlRJRlNcIixcbiAgICBcIkNPVVBEQVlCU1wiLFxuICAgIFwiQ09VUERBWVNcIixcbiAgICBcIkNPVVBEQVlTTkNcIixcbiAgICBcIkNPVVBOQ0RcIixcbiAgICBcIkNPVVBOVU1cIixcbiAgICBcIkNPVVBQQ0RcIixcbiAgICBcIkNPVkFSXCIsXG4gICAgXCJDT1ZBUklBTkNFLlBcIixcbiAgICBcIkNPVkFSSUFOQ0UuU1wiLFxuICAgIFwiQ1JJVEJJTk9NXCIsXG4gICAgXCJDU0NcIixcbiAgICBcIkNTQ0hcIixcbiAgICBcIkNVQkVLUElNRU1CRVJcIixcbiAgICBcIkNVQkVNRU1CRVJcIixcbiAgICBcIkNVQkVNRU1CRVJQUk9QRVJUWVwiLFxuICAgIFwiQ1VCRVJBTktFRE1FTUJFUlwiLFxuICAgIFwiQ1VCRVNFVFwiLFxuICAgIFwiQ1VCRVNFVENPVU5UXCIsXG4gICAgXCJDVUJFVkFMVUVcIixcbiAgICBcIkNVTUlQTVRcIixcbiAgICBcIkNVTVBSSU5DXCIsXG4gICAgXCJEQVRFXCIsXG4gICAgXCJEQVRFRElGXCIsXG4gICAgXCJEQVRFVkFMVUVcIixcbiAgICBcIkRBVkVSQUdFXCIsXG4gICAgXCJEQVlcIixcbiAgICBcIkRBWVNcIixcbiAgICBcIkRBWVMzNjBcIixcbiAgICBcIkRCXCIsXG4gICAgXCJEQkNTXCIsXG4gICAgXCJEQ09VTlRcIixcbiAgICBcIkRDT1VOVEFcIixcbiAgICBcIkREQlwiLFxuICAgIFwiREVDMkJJTlwiLFxuICAgIFwiREVDMkhFWFwiLFxuICAgIFwiREVDMk9DVFwiLFxuICAgIFwiREVDSU1BTFwiLFxuICAgIFwiREVHUkVFU1wiLFxuICAgIFwiREVMVEFcIixcbiAgICBcIkRFVlNRXCIsXG4gICAgXCJER0VUXCIsXG4gICAgXCJESVNDXCIsXG4gICAgXCJETUFYXCIsXG4gICAgXCJETUlOXCIsXG4gICAgXCJET0xMQVJcIixcbiAgICBcIkRPTExBUkRFXCIsXG4gICAgXCJET0xMQVJGUlwiLFxuICAgIFwiRFBST0RVQ1RcIixcbiAgICBcIkRTVERFVlwiLFxuICAgIFwiRFNUREVWUFwiLFxuICAgIFwiRFNVTVwiLFxuICAgIFwiRFVSQVRJT05cIixcbiAgICBcIkRWQVJcIixcbiAgICBcIkRWQVJQXCIsXG4gICAgXCJFREFURVwiLFxuICAgIFwiRUZGRUNUXCIsXG4gICAgXCJFTkNPREVVUkxcIixcbiAgICBcIkVPTU9OVEhcIixcbiAgICBcIkVSRlwiLFxuICAgIFwiRVJGLlBSRUNJU0VcIixcbiAgICBcIkVSRkNcIixcbiAgICBcIkVSRkMuUFJFQ0lTRVwiLFxuICAgIFwiRVJST1IuVFlQRVwiLFxuICAgIFwiRVVST0NPTlZFUlRcIixcbiAgICBcIkVWRU5cIixcbiAgICBcIkVYQUNUXCIsXG4gICAgXCJFWFBcIixcbiAgICBcIkVYUE9OLkRJU1RcIixcbiAgICBcIkVYUE9ORElTVFwiLFxuICAgIFwiRkFDVFwiLFxuICAgIFwiRkFDVERPVUJMRVwiLFxuICAgIFwiRkFMU0V8MFwiLFxuICAgIFwiRi5ESVNUXCIsXG4gICAgXCJGRElTVFwiLFxuICAgIFwiRi5ESVNULlJUXCIsXG4gICAgXCJGSUxURVJYTUxcIixcbiAgICBcIkZJTkRcIixcbiAgICBcIkZJTkRCXCIsXG4gICAgXCJGLklOVlwiLFxuICAgIFwiRi5JTlYuUlRcIixcbiAgICBcIkZJTlZcIixcbiAgICBcIkZJU0hFUlwiLFxuICAgIFwiRklTSEVSSU5WXCIsXG4gICAgXCJGSVhFRFwiLFxuICAgIFwiRkxPT1JcIixcbiAgICBcIkZMT09SLk1BVEhcIixcbiAgICBcIkZMT09SLlBSRUNJU0VcIixcbiAgICBcIkZPUkVDQVNUXCIsXG4gICAgXCJGT1JFQ0FTVC5FVFNcIixcbiAgICBcIkZPUkVDQVNULkVUUy5DT05GSU5UXCIsXG4gICAgXCJGT1JFQ0FTVC5FVFMuU0VBU09OQUxJVFlcIixcbiAgICBcIkZPUkVDQVNULkVUUy5TVEFUXCIsXG4gICAgXCJGT1JFQ0FTVC5MSU5FQVJcIixcbiAgICBcIkZPUk1VTEFURVhUXCIsXG4gICAgXCJGUkVRVUVOQ1lcIixcbiAgICBcIkYuVEVTVFwiLFxuICAgIFwiRlRFU1RcIixcbiAgICBcIkZWXCIsXG4gICAgXCJGVlNDSEVEVUxFXCIsXG4gICAgXCJHQU1NQVwiLFxuICAgIFwiR0FNTUEuRElTVFwiLFxuICAgIFwiR0FNTUFESVNUXCIsXG4gICAgXCJHQU1NQS5JTlZcIixcbiAgICBcIkdBTU1BSU5WXCIsXG4gICAgXCJHQU1NQUxOXCIsXG4gICAgXCJHQU1NQUxOLlBSRUNJU0VcIixcbiAgICBcIkdBVVNTXCIsXG4gICAgXCJHQ0RcIixcbiAgICBcIkdFT01FQU5cIixcbiAgICBcIkdFU1RFUFwiLFxuICAgIFwiR0VUUElWT1REQVRBXCIsXG4gICAgXCJHUk9XVEhcIixcbiAgICBcIkhBUk1FQU5cIixcbiAgICBcIkhFWDJCSU5cIixcbiAgICBcIkhFWDJERUNcIixcbiAgICBcIkhFWDJPQ1RcIixcbiAgICBcIkhMT09LVVBcIixcbiAgICBcIkhPVVJcIixcbiAgICBcIkhZUEVSTElOS1wiLFxuICAgIFwiSFlQR0VPTS5ESVNUXCIsXG4gICAgXCJIWVBHRU9NRElTVFwiLFxuICAgIFwiSUZcIixcbiAgICBcIklGRVJST1JcIixcbiAgICBcIklGTkFcIixcbiAgICBcIklGU1wiLFxuICAgIFwiSU1BQlNcIixcbiAgICBcIklNQUdJTkFSWVwiLFxuICAgIFwiSU1BUkdVTUVOVFwiLFxuICAgIFwiSU1DT05KVUdBVEVcIixcbiAgICBcIklNQ09TXCIsXG4gICAgXCJJTUNPU0hcIixcbiAgICBcIklNQ09UXCIsXG4gICAgXCJJTUNTQ1wiLFxuICAgIFwiSU1DU0NIXCIsXG4gICAgXCJJTURJVlwiLFxuICAgIFwiSU1FWFBcIixcbiAgICBcIklNTE5cIixcbiAgICBcIklNTE9HMTBcIixcbiAgICBcIklNTE9HMlwiLFxuICAgIFwiSU1QT1dFUlwiLFxuICAgIFwiSU1QUk9EVUNUXCIsXG4gICAgXCJJTVJFQUxcIixcbiAgICBcIklNU0VDXCIsXG4gICAgXCJJTVNFQ0hcIixcbiAgICBcIklNU0lOXCIsXG4gICAgXCJJTVNJTkhcIixcbiAgICBcIklNU1FSVFwiLFxuICAgIFwiSU1TVUJcIixcbiAgICBcIklNU1VNXCIsXG4gICAgXCJJTVRBTlwiLFxuICAgIFwiSU5ERVhcIixcbiAgICBcIklORElSRUNUXCIsXG4gICAgXCJJTkZPXCIsXG4gICAgXCJJTlRcIixcbiAgICBcIklOVEVSQ0VQVFwiLFxuICAgIFwiSU5UUkFURVwiLFxuICAgIFwiSVBNVFwiLFxuICAgIFwiSVJSXCIsXG4gICAgXCJJU0JMQU5LXCIsXG4gICAgXCJJU0VSUlwiLFxuICAgIFwiSVNFUlJPUlwiLFxuICAgIFwiSVNFVkVOXCIsXG4gICAgXCJJU0ZPUk1VTEFcIixcbiAgICBcIklTTE9HSUNBTFwiLFxuICAgIFwiSVNOQVwiLFxuICAgIFwiSVNOT05URVhUXCIsXG4gICAgXCJJU05VTUJFUlwiLFxuICAgIFwiSVNPRERcIixcbiAgICBcIklTUkVGXCIsXG4gICAgXCJJU1RFWFRcIixcbiAgICBcIklTTy5DRUlMSU5HXCIsXG4gICAgXCJJU09XRUVLTlVNXCIsXG4gICAgXCJJU1BNVFwiLFxuICAgIFwiSklTXCIsXG4gICAgXCJLVVJUXCIsXG4gICAgXCJMQVJHRVwiLFxuICAgIFwiTENNXCIsXG4gICAgXCJMRUZUXCIsXG4gICAgXCJMRUZUQlwiLFxuICAgIFwiTEVOXCIsXG4gICAgXCJMRU5CXCIsXG4gICAgXCJMSU5FU1RcIixcbiAgICBcIkxOXCIsXG4gICAgXCJMT0dcIixcbiAgICBcIkxPRzEwXCIsXG4gICAgXCJMT0dFU1RcIixcbiAgICBcIkxPR0lOVlwiLFxuICAgIFwiTE9HTk9STS5ESVNUXCIsXG4gICAgXCJMT0dOT1JNRElTVFwiLFxuICAgIFwiTE9HTk9STS5JTlZcIixcbiAgICBcIkxPT0tVUFwiLFxuICAgIFwiTE9XRVJcIixcbiAgICBcIk1BVENIXCIsXG4gICAgXCJNQVhcIixcbiAgICBcIk1BWEFcIixcbiAgICBcIk1BWElGU1wiLFxuICAgIFwiTURFVEVSTVwiLFxuICAgIFwiTURVUkFUSU9OXCIsXG4gICAgXCJNRURJQU5cIixcbiAgICBcIk1JRFwiLFxuICAgIFwiTUlEQnNcIixcbiAgICBcIk1JTlwiLFxuICAgIFwiTUlOSUZTXCIsXG4gICAgXCJNSU5BXCIsXG4gICAgXCJNSU5VVEVcIixcbiAgICBcIk1JTlZFUlNFXCIsXG4gICAgXCJNSVJSXCIsXG4gICAgXCJNTVVMVFwiLFxuICAgIFwiTU9EXCIsXG4gICAgXCJNT0RFXCIsXG4gICAgXCJNT0RFLk1VTFRcIixcbiAgICBcIk1PREUuU05HTFwiLFxuICAgIFwiTU9OVEhcIixcbiAgICBcIk1ST1VORFwiLFxuICAgIFwiTVVMVElOT01JQUxcIixcbiAgICBcIk1VTklUXCIsXG4gICAgXCJOXCIsXG4gICAgXCJOQVwiLFxuICAgIFwiTkVHQklOT00uRElTVFwiLFxuICAgIFwiTkVHQklOT01ESVNUXCIsXG4gICAgXCJORVRXT1JLREFZU1wiLFxuICAgIFwiTkVUV09SS0RBWVMuSU5UTFwiLFxuICAgIFwiTk9NSU5BTFwiLFxuICAgIFwiTk9STS5ESVNUXCIsXG4gICAgXCJOT1JNRElTVFwiLFxuICAgIFwiTk9STUlOVlwiLFxuICAgIFwiTk9STS5JTlZcIixcbiAgICBcIk5PUk0uUy5ESVNUXCIsXG4gICAgXCJOT1JNU0RJU1RcIixcbiAgICBcIk5PUk0uUy5JTlZcIixcbiAgICBcIk5PUk1TSU5WXCIsXG4gICAgXCJOT1RcIixcbiAgICBcIk5PV1wiLFxuICAgIFwiTlBFUlwiLFxuICAgIFwiTlBWXCIsXG4gICAgXCJOVU1CRVJWQUxVRVwiLFxuICAgIFwiT0NUMkJJTlwiLFxuICAgIFwiT0NUMkRFQ1wiLFxuICAgIFwiT0NUMkhFWFwiLFxuICAgIFwiT0REXCIsXG4gICAgXCJPRERGUFJJQ0VcIixcbiAgICBcIk9EREZZSUVMRFwiLFxuICAgIFwiT0RETFBSSUNFXCIsXG4gICAgXCJPRERMWUlFTERcIixcbiAgICBcIk9GRlNFVFwiLFxuICAgIFwiT1JcIixcbiAgICBcIlBEVVJBVElPTlwiLFxuICAgIFwiUEVBUlNPTlwiLFxuICAgIFwiUEVSQ0VOVElMRS5FWENcIixcbiAgICBcIlBFUkNFTlRJTEUuSU5DXCIsXG4gICAgXCJQRVJDRU5USUxFXCIsXG4gICAgXCJQRVJDRU5UUkFOSy5FWENcIixcbiAgICBcIlBFUkNFTlRSQU5LLklOQ1wiLFxuICAgIFwiUEVSQ0VOVFJBTktcIixcbiAgICBcIlBFUk1VVFwiLFxuICAgIFwiUEVSTVVUQVRJT05BXCIsXG4gICAgXCJQSElcIixcbiAgICBcIlBIT05FVElDXCIsXG4gICAgXCJQSVwiLFxuICAgIFwiUE1UXCIsXG4gICAgXCJQT0lTU09OLkRJU1RcIixcbiAgICBcIlBPSVNTT05cIixcbiAgICBcIlBPV0VSXCIsXG4gICAgXCJQUE1UXCIsXG4gICAgXCJQUklDRVwiLFxuICAgIFwiUFJJQ0VESVNDXCIsXG4gICAgXCJQUklDRU1BVFwiLFxuICAgIFwiUFJPQlwiLFxuICAgIFwiUFJPRFVDVFwiLFxuICAgIFwiUFJPUEVSXCIsXG4gICAgXCJQVlwiLFxuICAgIFwiUVVBUlRJTEVcIixcbiAgICBcIlFVQVJUSUxFLkVYQ1wiLFxuICAgIFwiUVVBUlRJTEUuSU5DXCIsXG4gICAgXCJRVU9USUVOVFwiLFxuICAgIFwiUkFESUFOU1wiLFxuICAgIFwiUkFORFwiLFxuICAgIFwiUkFOREJFVFdFRU5cIixcbiAgICBcIlJBTksuQVZHXCIsXG4gICAgXCJSQU5LLkVRXCIsXG4gICAgXCJSQU5LXCIsXG4gICAgXCJSQVRFXCIsXG4gICAgXCJSRUNFSVZFRFwiLFxuICAgIFwiUkVHSVNURVIuSURcIixcbiAgICBcIlJFUExBQ0VcIixcbiAgICBcIlJFUExBQ0VCXCIsXG4gICAgXCJSRVBUXCIsXG4gICAgXCJSSUdIVFwiLFxuICAgIFwiUklHSFRCXCIsXG4gICAgXCJST01BTlwiLFxuICAgIFwiUk9VTkRcIixcbiAgICBcIlJPVU5ERE9XTlwiLFxuICAgIFwiUk9VTkRVUFwiLFxuICAgIFwiUk9XXCIsXG4gICAgXCJST1dTXCIsXG4gICAgXCJSUklcIixcbiAgICBcIlJTUVwiLFxuICAgIFwiUlREXCIsXG4gICAgXCJTRUFSQ0hcIixcbiAgICBcIlNFQVJDSEJcIixcbiAgICBcIlNFQ1wiLFxuICAgIFwiU0VDSFwiLFxuICAgIFwiU0VDT05EXCIsXG4gICAgXCJTRVJJRVNTVU1cIixcbiAgICBcIlNIRUVUXCIsXG4gICAgXCJTSEVFVFNcIixcbiAgICBcIlNJR05cIixcbiAgICBcIlNJTlwiLFxuICAgIFwiU0lOSFwiLFxuICAgIFwiU0tFV1wiLFxuICAgIFwiU0tFVy5QXCIsXG4gICAgXCJTTE5cIixcbiAgICBcIlNMT1BFXCIsXG4gICAgXCJTTUFMTFwiLFxuICAgIFwiU1FMLlJFUVVFU1RcIixcbiAgICBcIlNRUlRcIixcbiAgICBcIlNRUlRQSVwiLFxuICAgIFwiU1RBTkRBUkRJWkVcIixcbiAgICBcIlNUREVWXCIsXG4gICAgXCJTVERFVi5QXCIsXG4gICAgXCJTVERFVi5TXCIsXG4gICAgXCJTVERFVkFcIixcbiAgICBcIlNUREVWUFwiLFxuICAgIFwiU1RERVZQQVwiLFxuICAgIFwiU1RFWVhcIixcbiAgICBcIlNVQlNUSVRVVEVcIixcbiAgICBcIlNVQlRPVEFMXCIsXG4gICAgXCJTVU1cIixcbiAgICBcIlNVTUlGXCIsXG4gICAgXCJTVU1JRlNcIixcbiAgICBcIlNVTVBST0RVQ1RcIixcbiAgICBcIlNVTVNRXCIsXG4gICAgXCJTVU1YMk1ZMlwiLFxuICAgIFwiU1VNWDJQWTJcIixcbiAgICBcIlNVTVhNWTJcIixcbiAgICBcIlNXSVRDSFwiLFxuICAgIFwiU1lEXCIsXG4gICAgXCJUXCIsXG4gICAgXCJUQU5cIixcbiAgICBcIlRBTkhcIixcbiAgICBcIlRCSUxMRVFcIixcbiAgICBcIlRCSUxMUFJJQ0VcIixcbiAgICBcIlRCSUxMWUlFTERcIixcbiAgICBcIlQuRElTVFwiLFxuICAgIFwiVC5ESVNULjJUXCIsXG4gICAgXCJULkRJU1QuUlRcIixcbiAgICBcIlRESVNUXCIsXG4gICAgXCJURVhUXCIsXG4gICAgXCJURVhUSk9JTlwiLFxuICAgIFwiVElNRVwiLFxuICAgIFwiVElNRVZBTFVFXCIsXG4gICAgXCJULklOVlwiLFxuICAgIFwiVC5JTlYuMlRcIixcbiAgICBcIlRJTlZcIixcbiAgICBcIlRPREFZXCIsXG4gICAgXCJUUkFOU1BPU0VcIixcbiAgICBcIlRSRU5EXCIsXG4gICAgXCJUUklNXCIsXG4gICAgXCJUUklNTUVBTlwiLFxuICAgIFwiVFJVRXwwXCIsXG4gICAgXCJUUlVOQ1wiLFxuICAgIFwiVC5URVNUXCIsXG4gICAgXCJUVEVTVFwiLFxuICAgIFwiVFlQRVwiLFxuICAgIFwiVU5JQ0hBUlwiLFxuICAgIFwiVU5JQ09ERVwiLFxuICAgIFwiVVBQRVJcIixcbiAgICBcIlZBTFVFXCIsXG4gICAgXCJWQVJcIixcbiAgICBcIlZBUi5QXCIsXG4gICAgXCJWQVIuU1wiLFxuICAgIFwiVkFSQVwiLFxuICAgIFwiVkFSUFwiLFxuICAgIFwiVkFSUEFcIixcbiAgICBcIlZEQlwiLFxuICAgIFwiVkxPT0tVUFwiLFxuICAgIFwiV0VCU0VSVklDRVwiLFxuICAgIFwiV0VFS0RBWVwiLFxuICAgIFwiV0VFS05VTVwiLFxuICAgIFwiV0VJQlVMTFwiLFxuICAgIFwiV0VJQlVMTC5ESVNUXCIsXG4gICAgXCJXT1JLREFZXCIsXG4gICAgXCJXT1JLREFZLklOVExcIixcbiAgICBcIlhJUlJcIixcbiAgICBcIlhOUFZcIixcbiAgICBcIlhPUlwiLFxuICAgIFwiWUVBUlwiLFxuICAgIFwiWUVBUkZSQUNcIixcbiAgICBcIllJRUxEXCIsXG4gICAgXCJZSUVMRERJU0NcIixcbiAgICBcIllJRUxETUFUXCIsXG4gICAgXCJaLlRFU1RcIixcbiAgICBcIlpURVNUXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRXhjZWwgZm9ybXVsYWUnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICd4bHN4JyxcbiAgICAgICd4bHMnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogL1thLXpBLVpdW1xcd1xcLl0qLyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTlNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIC8qIG1hdGNoZXMgYSBiZWdpbm5pbmcgZXF1YWwgc2lnbiBmb3VuZCBpbiBFeGNlbCBmb3JtdWxhIGV4YW1wbGVzICovXG4gICAgICAgIGJlZ2luOiAvXj0vLFxuICAgICAgICBlbmQ6IC9bXj1dLyxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvPS8sIC8qIG9ubHkgYWxsb3cgc2luZ2xlIGVxdWFsIHNpZ24gYXQgZnJvbnQgb2YgbGluZSAqL1xuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLyogdGVjaG5pY2FsbHksIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gMiBsZXR0ZXJzIGluIGNvbHVtbiBuYW1lcywgYnV0IHRoaXMgcHJldmVudHMgY29uZmxpY3Qgd2l0aCBzb21lIGtleXdvcmRzICovXG4gICAgICB7XG4gICAgICAgIC8qIG1hdGNoZXMgYSByZWZlcmVuY2UgdG8gYSBzaW5nbGUgY2VsbCAqL1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL1xcYltBLVpdezEsMn1cXGQrXFxiLyxcbiAgICAgICAgZW5kOiAvW15cXGRdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvKiBtYXRjaGVzIGEgcmVmZXJlbmNlIHRvIGEgcmFuZ2Ugb2YgY2VsbHMgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9bQS1aXXswLDJ9XFxkKjpbQS1aXXswLDJ9XFxkKi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBobGpzLk5VTUJFUl9SRSArICcoJSk/JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLyogRXhjZWwgZm9ybXVsYSBjb21tZW50cyBhcmUgZG9uZSBieSBwdXR0aW5nIHRoZSBjb21tZW50IGluIGEgZnVuY3Rpb24gY2FsbCB0byBOKCkgKi9cbiAgICAgIGhsanMuQ09NTUVOVCgvXFxiTlxcKC8sIC9cXCkvLFxuICAgICAgICB7XG4gICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgaWxsZWdhbDogL1xcbi9cbiAgICAgICAgfSlcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXhjZWw7XG4iLCAiLypcbkxhbmd1YWdlOiBGSVhcbkF1dGhvcjogQnJlbnQgQnJhZGJ1cnkgPGJyZW50QGJyZW50aXVtLmNvbT5cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBmaXgoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdGSVgnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvW15cXHUyNDAxXFx1MDAwMV0rLyxcbiAgICAgICAgZW5kOiAvW1xcdTI0MDFcXHUwMDAxXS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvKFteXFx1MjQwMVxcdTAwMDE9XSspLyxcbiAgICAgICAgICAgIGVuZDogLz0oW15cXHUyNDAxXFx1MDAwMT1dKykvLFxuICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IGZhbHNlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgICAgICBlbmQ6IC8oW1xcdTI0MDFcXHUwMDAxXSkvLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZydcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWVcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmaXg7XG4iLCAiLypcbiBMYW5ndWFnZTogRmxpeFxuIENhdGVnb3J5OiBmdW5jdGlvbmFsXG4gQXV0aG9yOiBNYWdudXMgTWFkc2VuIDxtbWFkc2VuQHV3YXRlcmxvby5jYT5cbiBXZWJzaXRlOiBodHRwczovL2ZsaXguZGV2L1xuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBmbGl4KGhsanMpIHtcbiAgY29uc3QgQ0hBUiA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJygufFxcXFxbeFh1VV1bYS16QS1aMC05XSspJy9cbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5BTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogL1teMC05XFxuXFx0IFwiJygpLC5ge31cXFtcXF06O11bXlxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjtdK3xbXjAtOVxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjs9XS9cbiAgfTtcblxuICBjb25zdCBNRVRIT0QgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdkZWYnLFxuICAgIGVuZDogL1s6PXtcXFsoXFxuO10vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgY29udGFpbnM6IFsgTkFNRSBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRmxpeCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IFtcbiAgICAgICAgXCJjYXNlXCIsXG4gICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgXCJkZWZcIixcbiAgICAgICAgXCJlbHNlXCIsXG4gICAgICAgIFwiZW51bVwiLFxuICAgICAgICBcImlmXCIsXG4gICAgICAgIFwiaW1wbFwiLFxuICAgICAgICBcImltcG9ydFwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwibGF0XCIsXG4gICAgICAgIFwicmVsXCIsXG4gICAgICAgIFwiaW5kZXhcIixcbiAgICAgICAgXCJsZXRcIixcbiAgICAgICAgXCJtYXRjaFwiLFxuICAgICAgICBcIm5hbWVzcGFjZVwiLFxuICAgICAgICBcInN3aXRjaFwiLFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJ5aWVsZFwiLFxuICAgICAgICBcIndpdGhcIlxuICAgICAgXSxcbiAgICAgIGxpdGVyYWw6IFtcbiAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgIFwiZmFsc2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDSEFSLFxuICAgICAgU1RSSU5HLFxuICAgICAgTUVUSE9ELFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZsaXg7XG4iLCAiLypcbkxhbmd1YWdlOiBGb3J0cmFuXG5BdXRob3I6IEFudGhvbnkgU2NlbWFtYSA8c2NlbWFtYUBpcnNhbWMudXBzLXRsc2UuZnI+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Gb3J0cmFuXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGZvcnRyYW4oaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJ1xuICB9O1xuXG4gIGNvbnN0IENPTU1FTlQgPSB7IHZhcmlhbnRzOiBbXG4gICAgaGxqcy5DT01NRU5UKCchJywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAvLyBhbGxvdyBGT1JUUkFOIDc3IHN0eWxlIGNvbW1lbnRzXG4gICAgaGxqcy5DT01NRU5UKCdeQ1sgXScsICckJywgeyByZWxldmFuY2U6IDAgfSksXG4gICAgaGxqcy5DT01NRU5UKCdeQyQnLCAnJCcsIHsgcmVsZXZhbmNlOiAwIH0pXG4gIF0gfTtcblxuICAvLyByZWdleCBpbiBib3RoIGZvcnRyYW4gYW5kIGlycGY5MCBzaG91bGQgbWF0Y2hcbiAgY29uc3QgT1BUSU9OQUxfTlVNQkVSX1NVRkZJWCA9IC8oX1thLXpfXFxkXSspPy87XG4gIGNvbnN0IE9QVElPTkFMX05VTUJFUl9FWFAgPSAvKFtkZV1bKy1dP1xcZCspPy87XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1xcYlxcZCsvLCAvXFwuKFxcZCopLywgT1BUSU9OQUxfTlVNQkVSX0VYUCwgT1BUSU9OQUxfTlVNQkVSX1NVRkZJWCkgfSxcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFxiXFxkKy8sIE9QVElPTkFMX05VTUJFUl9FWFAsIE9QVElPTkFMX05VTUJFUl9TVUZGSVgpIH0sXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1xcLlxcZCsvLCBPUFRJT05BTF9OVU1CRVJfRVhQLCBPUFRJT05BTF9OVU1CRVJfU1VGRklYKSB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9ERUYgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdzdWJyb3V0aW5lIGZ1bmN0aW9uIHByb2dyYW0nLFxuICAgIGlsbGVnYWw6ICdbJHs9XFxcXG5dJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICBQQVJBTVNcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwia2luZFwiLFxuICAgIFwiZG9cIixcbiAgICBcImNvbmN1cnJlbnRcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJzaGFyZWRcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJpbnRyaW5zaWNcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJlbHNld2hlcmVcIixcbiAgICBcInR5cGVcIixcbiAgICBcImVuZHR5cGVcIixcbiAgICBcImVuZG1vZHVsZVwiLFxuICAgIFwiZW5kc2VsZWN0XCIsXG4gICAgXCJlbmRpbnRlcmZhY2VcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW5kZG9cIixcbiAgICBcImVuZGlmXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiZm9yYWxsXCIsXG4gICAgXCJlbmRmb3JhbGxcIixcbiAgICBcIm9ubHlcIixcbiAgICBcImNvbnRhaW5zXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInN0b3BcIixcbiAgICBcInRoZW5cIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJlbmRibG9ja1wiLFxuICAgIFwiZW5kYXNzb2NpYXRlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInN1YnJvdXRpbmV8MTBcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJwcm9ncmFtXCIsXG4gICAgXCIuYW5kLlwiLFxuICAgIFwiLm9yLlwiLFxuICAgIFwiLm5vdC5cIixcbiAgICBcIi5sZS5cIixcbiAgICBcIi5lcS5cIixcbiAgICBcIi5nZS5cIixcbiAgICBcIi5ndC5cIixcbiAgICBcIi5sdC5cIixcbiAgICBcImdvdG9cIixcbiAgICBcInNhdmVcIixcbiAgICBcImVsc2VcIixcbiAgICBcInVzZVwiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcImNhc2VcIixcbiAgICBcImFjY2Vzc1wiLFxuICAgIFwiYmxhbmtcIixcbiAgICBcImRpcmVjdFwiLFxuICAgIFwiZXhpc3RcIixcbiAgICBcImZpbGVcIixcbiAgICBcImZtdFwiLFxuICAgIFwiZm9ybVwiLFxuICAgIFwiZm9ybWF0dGVkXCIsXG4gICAgXCJpb3N0YXRcIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5hbWVkXCIsXG4gICAgXCJuZXh0cmVjXCIsXG4gICAgXCJudW1iZXJcIixcbiAgICBcIm9wZW5lZFwiLFxuICAgIFwicmVjXCIsXG4gICAgXCJyZWNsXCIsXG4gICAgXCJzZXF1ZW50aWFsXCIsXG4gICAgXCJzdGF0dXNcIixcbiAgICBcInVuZm9ybWF0dGVkXCIsXG4gICAgXCJ1bml0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZm9ybWF0XCIsXG4gICAgXCJwYXVzZVwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImV4aXRcIixcbiAgICBcImNfbnVsbF9jaGFyXCIsXG4gICAgXCJjX2FsZXJ0XCIsXG4gICAgXCJjX2JhY2tzcGFjZVwiLFxuICAgIFwiY19mb3JtX2ZlZWRcIixcbiAgICBcImZsdXNoXCIsXG4gICAgXCJ3YWl0XCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJyb3VuZFwiLFxuICAgIFwiaW9tc2dcIixcbiAgICBcInN5bmNocm9ub3VzXCIsXG4gICAgXCJub3Bhc3NcIixcbiAgICBcIm5vbl9vdmVycmlkYWJsZVwiLFxuICAgIFwicGFzc1wiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJ2b2xhdGlsZVwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwibm9uX2ludHJpbnNpY1wiLFxuICAgIFwidmFsdWVcIixcbiAgICBcImRlZmVycmVkXCIsXG4gICAgXCJnZW5lcmljXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwiZW51bWVyYXRvclwiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImFzc29jaWF0ZVwiLFxuICAgIFwiYmluZFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiY19pbnRcIixcbiAgICBcImNfc2hvcnRcIixcbiAgICBcImNfbG9uZ1wiLFxuICAgIFwiY19sb25nX2xvbmdcIixcbiAgICBcImNfc2lnbmVkX2NoYXJcIixcbiAgICBcImNfc2l6ZV90XCIsXG4gICAgXCJjX2ludDhfdFwiLFxuICAgIFwiY19pbnQxNl90XCIsXG4gICAgXCJjX2ludDMyX3RcIixcbiAgICBcImNfaW50NjRfdFwiLFxuICAgIFwiY19pbnRfbGVhc3Q4X3RcIixcbiAgICBcImNfaW50X2xlYXN0MTZfdFwiLFxuICAgIFwiY19pbnRfbGVhc3QzMl90XCIsXG4gICAgXCJjX2ludF9sZWFzdDY0X3RcIixcbiAgICBcImNfaW50X2Zhc3Q4X3RcIixcbiAgICBcImNfaW50X2Zhc3QxNl90XCIsXG4gICAgXCJjX2ludF9mYXN0MzJfdFwiLFxuICAgIFwiY19pbnRfZmFzdDY0X3RcIixcbiAgICBcImNfaW50bWF4X3RcIixcbiAgICBcIkNfaW50cHRyX3RcIixcbiAgICBcImNfZmxvYXRcIixcbiAgICBcImNfZG91YmxlXCIsXG4gICAgXCJjX2xvbmdfZG91YmxlXCIsXG4gICAgXCJjX2Zsb2F0X2NvbXBsZXhcIixcbiAgICBcImNfZG91YmxlX2NvbXBsZXhcIixcbiAgICBcImNfbG9uZ19kb3VibGVfY29tcGxleFwiLFxuICAgIFwiY19ib29sXCIsXG4gICAgXCJjX2NoYXJcIixcbiAgICBcImNfbnVsbF9wdHJcIixcbiAgICBcImNfbnVsbF9mdW5wdHJcIixcbiAgICBcImNfbmV3X2xpbmVcIixcbiAgICBcImNfY2FycmlhZ2VfcmV0dXJuXCIsXG4gICAgXCJjX2hvcml6b250YWxfdGFiXCIsXG4gICAgXCJjX3ZlcnRpY2FsX3RhYlwiLFxuICAgIFwiaXNvX2NfYmluZGluZ1wiLFxuICAgIFwiY19sb2NcIixcbiAgICBcImNfZnVubG9jXCIsXG4gICAgXCJjX2Fzc29jaWF0ZWRcIixcbiAgICBcImNfZl9wb2ludGVyXCIsXG4gICAgXCJjX3B0clwiLFxuICAgIFwiY19mdW5wdHJcIixcbiAgICBcImlzb19mb3J0cmFuX2VudlwiLFxuICAgIFwiY2hhcmFjdGVyX3N0b3JhZ2Vfc2l6ZVwiLFxuICAgIFwiZXJyb3JfdW5pdFwiLFxuICAgIFwiZmlsZV9zdG9yYWdlX3NpemVcIixcbiAgICBcImlucHV0X3VuaXRcIixcbiAgICBcImlvc3RhdF9lbmRcIixcbiAgICBcImlvc3RhdF9lb3JcIixcbiAgICBcIm51bWVyaWNfc3RvcmFnZV9zaXplXCIsXG4gICAgXCJvdXRwdXRfdW5pdFwiLFxuICAgIFwiY19mX3Byb2Nwb2ludGVyXCIsXG4gICAgXCJpZWVlX2FyaXRobWV0aWNcIixcbiAgICBcImllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbFwiLFxuICAgIFwiaWVlZV9nZXRfdW5kZXJmbG93X21vZGVcIixcbiAgICBcImllZWVfc2V0X3VuZGVyZmxvd19tb2RlXCIsXG4gICAgXCJuZXd1bml0XCIsXG4gICAgXCJjb250aWd1b3VzXCIsXG4gICAgXCJyZWN1cnNpdmVcIixcbiAgICBcInBhZFwiLFxuICAgIFwicG9zaXRpb25cIixcbiAgICBcImFjdGlvblwiLFxuICAgIFwiZGVsaW1cIixcbiAgICBcInJlYWR3cml0ZVwiLFxuICAgIFwiZW9yXCIsXG4gICAgXCJhZHZhbmNlXCIsXG4gICAgXCJubWxcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwicHJvY2VkdXJlXCIsXG4gICAgXCJuYW1lbGlzdFwiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwic2VxdWVuY2VcIixcbiAgICBcImVsZW1lbnRhbFwiLFxuICAgIFwicHVyZVwiLFxuICAgIFwiaW1wdXJlXCIsXG4gICAgXCJpbnRlZ2VyXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJjaGFyYWN0ZXJcIixcbiAgICBcImNvbXBsZXhcIixcbiAgICBcImxvZ2ljYWxcIixcbiAgICBcImNvZGltZW5zaW9uXCIsXG4gICAgXCJkaW1lbnNpb25cIixcbiAgICBcImFsbG9jYXRhYmxlfDEwXCIsXG4gICAgXCJwYXJhbWV0ZXJcIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJpbXBsaWNpdHwxMFwiLFxuICAgIFwibm9uZVwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJwcmVjaXNpb25cIixcbiAgICBcImFzc2lnblwiLFxuICAgIFwiaW50ZW50XCIsXG4gICAgXCJvcHRpb25hbFwiLFxuICAgIFwicG9pbnRlclwiLFxuICAgIFwidGFyZ2V0XCIsXG4gICAgXCJpblwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJjb21tb25cIixcbiAgICBcImVxdWl2YWxlbmNlXCIsXG4gICAgXCJkYXRhXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCIuRmFsc2UuXCIsXG4gICAgXCIuVHJ1ZS5cIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJhbG9nXCIsXG4gICAgXCJhbG9nMTBcIixcbiAgICBcImFtYXgwXCIsXG4gICAgXCJhbWF4MVwiLFxuICAgIFwiYW1pbjBcIixcbiAgICBcImFtaW4xXCIsXG4gICAgXCJhbW9kXCIsXG4gICAgXCJjYWJzXCIsXG4gICAgXCJjY29zXCIsXG4gICAgXCJjZXhwXCIsXG4gICAgXCJjbG9nXCIsXG4gICAgXCJjc2luXCIsXG4gICAgXCJjc3FydFwiLFxuICAgIFwiZGFic1wiLFxuICAgIFwiZGFjb3NcIixcbiAgICBcImRhc2luXCIsXG4gICAgXCJkYXRhblwiLFxuICAgIFwiZGF0YW4yXCIsXG4gICAgXCJkY29zXCIsXG4gICAgXCJkY29zaFwiLFxuICAgIFwiZGRpbVwiLFxuICAgIFwiZGV4cFwiLFxuICAgIFwiZGludFwiLFxuICAgIFwiZGxvZ1wiLFxuICAgIFwiZGxvZzEwXCIsXG4gICAgXCJkbWF4MVwiLFxuICAgIFwiZG1pbjFcIixcbiAgICBcImRtb2RcIixcbiAgICBcImRuaW50XCIsXG4gICAgXCJkc2lnblwiLFxuICAgIFwiZHNpblwiLFxuICAgIFwiZHNpbmhcIixcbiAgICBcImRzcXJ0XCIsXG4gICAgXCJkdGFuXCIsXG4gICAgXCJkdGFuaFwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImlhYnNcIixcbiAgICBcImlkaW1cIixcbiAgICBcImlkaW50XCIsXG4gICAgXCJpZG5pbnRcIixcbiAgICBcImlmaXhcIixcbiAgICBcImlzaWduXCIsXG4gICAgXCJtYXgwXCIsXG4gICAgXCJtYXgxXCIsXG4gICAgXCJtaW4wXCIsXG4gICAgXCJtaW4xXCIsXG4gICAgXCJzbmdsXCIsXG4gICAgXCJhbGdhbWFcIixcbiAgICBcImNkYWJzXCIsXG4gICAgXCJjZGNvc1wiLFxuICAgIFwiY2RleHBcIixcbiAgICBcImNkbG9nXCIsXG4gICAgXCJjZHNpblwiLFxuICAgIFwiY2RzcXJ0XCIsXG4gICAgXCJjcWFic1wiLFxuICAgIFwiY3Fjb3NcIixcbiAgICBcImNxZXhwXCIsXG4gICAgXCJjcWxvZ1wiLFxuICAgIFwiY3FzaW5cIixcbiAgICBcImNxc3FydFwiLFxuICAgIFwiZGNtcGx4XCIsXG4gICAgXCJkY29uamdcIixcbiAgICBcImRlcmZcIixcbiAgICBcImRlcmZjXCIsXG4gICAgXCJkZmxvYXRcIixcbiAgICBcImRnYW1tYVwiLFxuICAgIFwiZGltYWdcIixcbiAgICBcImRsZ2FtYVwiLFxuICAgIFwiaXFpbnRcIixcbiAgICBcInFhYnNcIixcbiAgICBcInFhY29zXCIsXG4gICAgXCJxYXNpblwiLFxuICAgIFwicWF0YW5cIixcbiAgICBcInFhdGFuMlwiLFxuICAgIFwicWNtcGx4XCIsXG4gICAgXCJxY29uamdcIixcbiAgICBcInFjb3NcIixcbiAgICBcInFjb3NoXCIsXG4gICAgXCJxZGltXCIsXG4gICAgXCJxZXJmXCIsXG4gICAgXCJxZXJmY1wiLFxuICAgIFwicWV4cFwiLFxuICAgIFwicWdhbW1hXCIsXG4gICAgXCJxaW1hZ1wiLFxuICAgIFwicWxnYW1hXCIsXG4gICAgXCJxbG9nXCIsXG4gICAgXCJxbG9nMTBcIixcbiAgICBcInFtYXgxXCIsXG4gICAgXCJxbWluMVwiLFxuICAgIFwicW1vZFwiLFxuICAgIFwicW5pbnRcIixcbiAgICBcInFzaWduXCIsXG4gICAgXCJxc2luXCIsXG4gICAgXCJxc2luaFwiLFxuICAgIFwicXNxcnRcIixcbiAgICBcInF0YW5cIixcbiAgICBcInF0YW5oXCIsXG4gICAgXCJhYnNcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFpbWFnXCIsXG4gICAgXCJhaW50XCIsXG4gICAgXCJhbmludFwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXRhbjJcIixcbiAgICBcImNoYXJcIixcbiAgICBcImNtcGx4XCIsXG4gICAgXCJjb25qZ1wiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJleHBcIixcbiAgICBcImljaGFyXCIsXG4gICAgXCJpbmRleFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJsb2dcIixcbiAgICBcImxvZzEwXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibmludFwiLFxuICAgIFwic2lnblwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzaW5oXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInRhbmhcIixcbiAgICBcInByaW50XCIsXG4gICAgXCJ3cml0ZVwiLFxuICAgIFwiZGltXCIsXG4gICAgXCJsZ2VcIixcbiAgICBcImxndFwiLFxuICAgIFwibGxlXCIsXG4gICAgXCJsbHRcIixcbiAgICBcIm1vZFwiLFxuICAgIFwibnVsbGlmeVwiLFxuICAgIFwiYWxsb2NhdGVcIixcbiAgICBcImRlYWxsb2NhdGVcIixcbiAgICBcImFkanVzdGxcIixcbiAgICBcImFkanVzdHJcIixcbiAgICBcImFsbFwiLFxuICAgIFwiYWxsb2NhdGVkXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFzc29jaWF0ZWRcIixcbiAgICBcImJpdF9zaXplXCIsXG4gICAgXCJidGVzdFwiLFxuICAgIFwiY2VpbGluZ1wiLFxuICAgIFwiY291bnRcIixcbiAgICBcImNzaGlmdFwiLFxuICAgIFwiZGF0ZV9hbmRfdGltZVwiLFxuICAgIFwiZGlnaXRzXCIsXG4gICAgXCJkb3RfcHJvZHVjdFwiLFxuICAgIFwiZW9zaGlmdFwiLFxuICAgIFwiZXBzaWxvblwiLFxuICAgIFwiZXhwb25lbnRcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJmcmFjdGlvblwiLFxuICAgIFwiaHVnZVwiLFxuICAgIFwiaWFuZFwiLFxuICAgIFwiaWJjbHJcIixcbiAgICBcImliaXRzXCIsXG4gICAgXCJpYnNldFwiLFxuICAgIFwiaWVvclwiLFxuICAgIFwiaW9yXCIsXG4gICAgXCJpc2hmdFwiLFxuICAgIFwiaXNoZnRjXCIsXG4gICAgXCJsYm91bmRcIixcbiAgICBcImxlbl90cmltXCIsXG4gICAgXCJtYXRtdWxcIixcbiAgICBcIm1heGV4cG9uZW50XCIsXG4gICAgXCJtYXhsb2NcIixcbiAgICBcIm1heHZhbFwiLFxuICAgIFwibWVyZ2VcIixcbiAgICBcIm1pbmV4cG9uZW50XCIsXG4gICAgXCJtaW5sb2NcIixcbiAgICBcIm1pbnZhbFwiLFxuICAgIFwibW9kdWxvXCIsXG4gICAgXCJtdmJpdHNcIixcbiAgICBcIm5lYXJlc3RcIixcbiAgICBcInBhY2tcIixcbiAgICBcInByZXNlbnRcIixcbiAgICBcInByb2R1Y3RcIixcbiAgICBcInJhZGl4XCIsXG4gICAgXCJyYW5kb21fbnVtYmVyXCIsXG4gICAgXCJyYW5kb21fc2VlZFwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmVzaGFwZVwiLFxuICAgIFwicnJzcGFjaW5nXCIsXG4gICAgXCJzY2FsZVwiLFxuICAgIFwic2NhblwiLFxuICAgIFwic2VsZWN0ZWRfaW50X2tpbmRcIixcbiAgICBcInNlbGVjdGVkX3JlYWxfa2luZFwiLFxuICAgIFwic2V0X2V4cG9uZW50XCIsXG4gICAgXCJzaGFwZVwiLFxuICAgIFwic2l6ZVwiLFxuICAgIFwic3BhY2luZ1wiLFxuICAgIFwic3ByZWFkXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN5c3RlbV9jbG9ja1wiLFxuICAgIFwidGlueVwiLFxuICAgIFwidHJhbnNwb3NlXCIsXG4gICAgXCJ0cmltXCIsXG4gICAgXCJ1Ym91bmRcIixcbiAgICBcInVucGFja1wiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJhY2hhclwiLFxuICAgIFwiaWFjaGFyXCIsXG4gICAgXCJ0cmFuc2ZlclwiLFxuICAgIFwiZGJsZVwiLFxuICAgIFwiZW50cnlcIixcbiAgICBcImRwcm9kXCIsXG4gICAgXCJjcHVfdGltZVwiLFxuICAgIFwiY29tbWFuZF9hcmd1bWVudF9jb3VudFwiLFxuICAgIFwiZ2V0X2NvbW1hbmRcIixcbiAgICBcImdldF9jb21tYW5kX2FyZ3VtZW50XCIsXG4gICAgXCJnZXRfZW52aXJvbm1lbnRfdmFyaWFibGVcIixcbiAgICBcImlzX2lvc3RhdF9lbmRcIixcbiAgICBcImllZWVfYXJpdGhtZXRpY1wiLFxuICAgIFwiaWVlZV9zdXBwb3J0X3VuZGVyZmxvd19jb250cm9sXCIsXG4gICAgXCJpZWVlX2dldF91bmRlcmZsb3dfbW9kZVwiLFxuICAgIFwiaWVlZV9zZXRfdW5kZXJmbG93X21vZGVcIixcbiAgICBcImlzX2lvc3RhdF9lb3JcIixcbiAgICBcIm1vdmVfYWxsb2NcIixcbiAgICBcIm5ld19saW5lXCIsXG4gICAgXCJzZWxlY3RlZF9jaGFyX2tpbmRcIixcbiAgICBcInNhbWVfdHlwZV9hc1wiLFxuICAgIFwiZXh0ZW5kc190eXBlX29mXCIsXG4gICAgXCJhY29zaFwiLFxuICAgIFwiYXNpbmhcIixcbiAgICBcImF0YW5oXCIsXG4gICAgXCJiZXNzZWxfajBcIixcbiAgICBcImJlc3NlbF9qMVwiLFxuICAgIFwiYmVzc2VsX2puXCIsXG4gICAgXCJiZXNzZWxfeTBcIixcbiAgICBcImJlc3NlbF95MVwiLFxuICAgIFwiYmVzc2VsX3luXCIsXG4gICAgXCJlcmZcIixcbiAgICBcImVyZmNcIixcbiAgICBcImVyZmNfc2NhbGVkXCIsXG4gICAgXCJnYW1tYVwiLFxuICAgIFwibG9nX2dhbW1hXCIsXG4gICAgXCJoeXBvdFwiLFxuICAgIFwibm9ybTJcIixcbiAgICBcImF0b21pY19kZWZpbmVcIixcbiAgICBcImF0b21pY19yZWZcIixcbiAgICBcImV4ZWN1dGVfY29tbWFuZF9saW5lXCIsXG4gICAgXCJsZWFkelwiLFxuICAgIFwidHJhaWx6XCIsXG4gICAgXCJzdG9yYWdlX3NpemVcIixcbiAgICBcIm1lcmdlX2JpdHNcIixcbiAgICBcImJnZVwiLFxuICAgIFwiYmd0XCIsXG4gICAgXCJibGVcIixcbiAgICBcImJsdFwiLFxuICAgIFwiZHNoaWZ0bFwiLFxuICAgIFwiZHNoaWZ0clwiLFxuICAgIFwiZmluZGxvY1wiLFxuICAgIFwiaWFsbFwiLFxuICAgIFwiaWFueVwiLFxuICAgIFwiaXBhcml0eVwiLFxuICAgIFwiaW1hZ2VfaW5kZXhcIixcbiAgICBcImxjb2JvdW5kXCIsXG4gICAgXCJ1Y29ib3VuZFwiLFxuICAgIFwibWFza2xcIixcbiAgICBcIm1hc2tyXCIsXG4gICAgXCJudW1faW1hZ2VzXCIsXG4gICAgXCJwYXJpdHlcIixcbiAgICBcInBvcGNudFwiLFxuICAgIFwicG9wcGFyXCIsXG4gICAgXCJzaGlmdGFcIixcbiAgICBcInNoaWZ0bFwiLFxuICAgIFwic2hpZnRyXCIsXG4gICAgXCJ0aGlzX2ltYWdlXCIsXG4gICAgXCJzeW5jXCIsXG4gICAgXCJjaGFuZ2VcIixcbiAgICBcInRlYW1cIixcbiAgICBcImNvX2Jyb2FkY2FzdFwiLFxuICAgIFwiY29fbWF4XCIsXG4gICAgXCJjb19taW5cIixcbiAgICBcImNvX3N1bVwiLFxuICAgIFwiY29fcmVkdWNlXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRm9ydHJhbicsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZjkwJyxcbiAgICAgICdmOTUnXG4gICAgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9cXGJbYS16XVthLXowLTlfXStcXGJ8XFwuW2Etel1bYS16MC05X10rXFwuLyxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RSSU5HLFxuICAgICAgRlVOQ1RJT05fREVGLFxuICAgICAgLy8gYWxsb3cgYEMgPSB2YWx1ZWAgZm9yIGFzc2lnbm1lbnRzIHNvIHRoZXkgYXJlbid0IG1pc2RldGVjdGVkXG4gICAgICAvLyBhcyBGb3J0cmFuIDc3IHN0eWxlIGNvbW1lbnRzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXkNcXHMqPSg/IT0pLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgQ09NTUVOVCxcbiAgICAgIE5VTUJFUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmb3J0cmFuO1xuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICogKi9cbmZ1bmN0aW9uIGVzY2FwZSh2YWx1ZSkge1xuICByZXR1cm4gbmV3IFJlZ0V4cCh2YWx1ZS5yZXBsYWNlKC9bLS9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyksICdtJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc291cmNlKHJlKSB7XG4gIGlmICghcmUpIHJldHVybiBudWxsO1xuICBpZiAodHlwZW9mIHJlID09PSBcInN0cmluZ1wiKSByZXR1cm4gcmU7XG5cbiAgcmV0dXJuIHJlLnNvdXJjZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBsb29rYWhlYWQocmUpIHtcbiAgcmV0dXJuIGNvbmNhdCgnKD89JywgcmUsICcpJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHsuLi4oUmVnRXhwIHwgc3RyaW5nKSB9IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNvbmNhdCguLi5hcmdzKSB7XG4gIGNvbnN0IGpvaW5lZCA9IGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJcIik7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHsgQXJyYXk8c3RyaW5nIHwgUmVnRXhwIHwgT2JqZWN0PiB9IGFyZ3NcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpIHtcbiAgY29uc3Qgb3B0cyA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcblxuICBpZiAodHlwZW9mIG9wdHMgPT09ICdvYmplY3QnICYmIG9wdHMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgIGFyZ3Muc3BsaWNlKGFyZ3MubGVuZ3RoIC0gMSwgMSk7XG4gICAgcmV0dXJuIG9wdHM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbi8qKiBAdHlwZWRlZiB7IHtjYXB0dXJlPzogYm9vbGVhbn0gfSBSZWdleEVpdGhlck9wdGlvbnMgKi9cblxuLyoqXG4gKiBBbnkgb2YgdGhlIHBhc3NlZCBleHByZXNzc2lvbnMgbWF5IG1hdGNoXG4gKlxuICogQ3JlYXRlcyBhIGh1Z2UgdGhpcyB8IHRoaXMgfCB0aGF0IHwgdGhhdCBtYXRjaFxuICogQHBhcmFtIHsoUmVnRXhwIHwgc3RyaW5nKVtdIHwgWy4uLihSZWdFeHAgfCBzdHJpbmcpW10sIFJlZ2V4RWl0aGVyT3B0aW9uc119IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVpdGhlciguLi5hcmdzKSB7XG4gIC8qKiBAdHlwZSB7IG9iamVjdCAmIHtjYXB0dXJlPzogYm9vbGVhbn0gfSAgKi9cbiAgY29uc3Qgb3B0cyA9IHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpO1xuICBjb25zdCBqb2luZWQgPSAnKCdcbiAgICArIChvcHRzLmNhcHR1cmUgPyBcIlwiIDogXCI/OlwiKVxuICAgICsgYXJncy5tYXAoKHgpID0+IHNvdXJjZSh4KSkuam9pbihcInxcIikgKyBcIilcIjtcbiAgcmV0dXJuIGpvaW5lZDtcbn1cblxuLypcbkxhbmd1YWdlOiBGI1xuQXV0aG9yOiBKb25hcyBGb2xsZXNcdTAwRjggPGpvbmFzQGZvbGxlc29lLm5vPlxuQ29udHJpYnV0b3JzOiBUcm95IEtlcnNoYXcgPGhlbGxvQHRyb3lrZXJzaGF3LmNvbT4sIEhlbnJpayBGZWxkdCA8aGVucmlrQGhhZi5zZT4sIE1lbHZ5biBMYVx1MDBFRmx5IDxtZWx2eW4ubGFpbHlAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvZG90bmV0L2ZzaGFycC9cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBmc2hhcnAoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImJhc2VcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVsZWdhdGVcIixcbiAgICBcImRvXCIsXG4gICAgXCJkb25lXCIsXG4gICAgXCJkb3duY2FzdFwiLFxuICAgIFwiZG93bnRvXCIsXG4gICAgXCJlbGlmXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV4Y2VwdGlvblwiLFxuICAgIFwiZXh0ZXJuXCIsXG4gICAgLy8gXCJmYWxzZVwiLCAvLyBsaXRlcmFsXG4gICAgXCJmaW5hbGx5XCIsXG4gICAgXCJmaXhlZFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5cIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJnbG9iYWxcIixcbiAgICBcImlmXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5oZXJpdFwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImludGVybmFsXCIsXG4gICAgXCJsYXp5XCIsXG4gICAgXCJsZXRcIixcbiAgICBcIm1hdGNoXCIsXG4gICAgXCJtZW1iZXJcIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwibXV0YWJsZVwiLFxuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJuZXdcIixcbiAgICAvLyBcIm5vdFwiLCAvLyBidWlsdF9pblxuICAgIC8vIFwibnVsbFwiLCAvLyBsaXRlcmFsXG4gICAgXCJvZlwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJlY1wiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICAvLyBcInRydWVcIiwgLy8gbGl0ZXJhbFxuICAgIFwidHJ5XCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJ1cGNhc3RcIixcbiAgICBcInVzZVwiLFxuICAgIFwidmFsXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEJBTkdfS0VZV09SRF9NT0RFID0ge1xuICAgIC8vIG1vbmFkIGJ1aWxkZXIga2V5d29yZHMgKG1hdGNoZXMgYmVmb3JlIG5vbi1iYW5nIGtleXdvcmRzKVxuICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgbWF0Y2g6IC9cXGIoeWllbGR8cmV0dXJufGxldHxkb3xtYXRjaHx1c2UpIS9cbiAgfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1JfS0VZV09SRFMgPSBbXG4gICAgXCJpZlwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kaWZcIixcbiAgICBcImxpbmVcIixcbiAgICBcIm5vd2FyblwiLFxuICAgIFwibGlnaHRcIixcbiAgICBcInJcIixcbiAgICBcImlcIixcbiAgICBcIklcIixcbiAgICBcImxvYWRcIixcbiAgICBcInRpbWVcIixcbiAgICBcImhlbHBcIixcbiAgICBcInF1aXRcIlxuICBdO1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcIlNvbWVcIixcbiAgICBcIk5vbmVcIixcbiAgICBcIk9rXCIsXG4gICAgXCJFcnJvclwiLFxuICAgIFwiaW5maW5pdHlcIixcbiAgICBcImluZmluaXR5ZlwiLFxuICAgIFwibmFuXCIsXG4gICAgXCJuYW5mXCJcbiAgXTtcblxuICBjb25zdCBTUEVDSUFMX0lERU5USUZJRVJTID0gW1xuICAgIFwiX19MSU5FX19cIixcbiAgICBcIl9fU09VUkNFX0RJUkVDVE9SWV9fXCIsXG4gICAgXCJfX1NPVVJDRV9GSUxFX19cIlxuICBdO1xuXG4gIC8vIFNpbmNlIGl0J3MgcG9zc2libGUgdG8gcmUtYmluZC9zaGFkb3cgbmFtZXMgKGUuZy4gbGV0IGNoYXIgPSAnYycpLFxuICAvLyB0aGVzZSBidWlsdGluIHR5cGVzIHNob3VsZCBvbmx5IGJlIG1hdGNoZWQgd2hlbiBhIHR5cGUgbmFtZSBpcyBleHBlY3RlZC5cbiAgY29uc3QgS05PV05fVFlQRVMgPSBbXG4gICAgLy8gYmFzaWMgdHlwZXNcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVcIixcbiAgICBcInNieXRlXCIsXG4gICAgXCJpbnQ4XCIsXG4gICAgXCJpbnQxNlwiLFxuICAgIFwiaW50MzJcIixcbiAgICBcInVpbnQ4XCIsXG4gICAgXCJ1aW50MTZcIixcbiAgICBcInVpbnQzMlwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJ1aW50XCIsXG4gICAgXCJpbnQ2NFwiLFxuICAgIFwidWludDY0XCIsXG4gICAgXCJuYXRpdmVpbnRcIixcbiAgICBcInVuYXRpdmVpbnRcIixcbiAgICBcImRlY2ltYWxcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJkb3VibGVcIixcbiAgICBcImZsb2F0MzJcIixcbiAgICBcInNpbmdsZVwiLFxuICAgIFwiY2hhclwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJ1bml0XCIsXG4gICAgXCJiaWdpbnRcIixcbiAgICAvLyBvdGhlciBuYXRpdmUgdHlwZXMgb3IgbG93ZXJjYXNlIGFsaWFzZXNcbiAgICBcIm9wdGlvblwiLFxuICAgIFwidm9wdGlvblwiLFxuICAgIFwibGlzdFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcInNlcVwiLFxuICAgIFwiYnlyZWZcIixcbiAgICBcImV4blwiLFxuICAgIFwiaW5yZWZcIixcbiAgICBcIm5hdGl2ZXB0clwiLFxuICAgIFwib2JqXCIsXG4gICAgXCJvdXRyZWZcIixcbiAgICBcInZvaWRwdHJcIixcbiAgICAvLyBvdGhlciBpbXBvcnRhbnQgRlNoYXJwIHR5cGVzXG4gICAgXCJSZXN1bHRcIlxuICBdO1xuXG4gIGNvbnN0IEJVSUxUSU5TID0gW1xuICAgIC8vIFNvbWV3aGF0IGFyYml0cmFyeSBsaXN0IG9mIGJ1aWx0aW4gZnVuY3Rpb25zIGFuZCB2YWx1ZXMuXG4gICAgLy8gTW9zdCBvZiB0aGVtIGFyZSBkZWNsYXJlZCBpbiBNaWNyb3NvZnQuRlNoYXJwLkNvcmVcbiAgICAvLyBJIHRyaWVkIHRvIHN0YXkgcmVsZXZhbnQgYnkgYWRkaW5nIG9ubHkgdGhlIG1vc3QgaWRpb21hdGljXG4gICAgLy8gYW5kIG1vc3QgdXNlZCBzeW1ib2xzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IGRlY2xhcmVkIGFzIHR5cGVzLlxuICAgIFwibm90XCIsXG4gICAgXCJyZWZcIixcbiAgICBcInJhaXNlXCIsXG4gICAgXCJyZXJhaXNlXCIsXG4gICAgXCJkaWN0XCIsXG4gICAgXCJyZWFkT25seURpY3RcIixcbiAgICBcInNldFwiLFxuICAgIFwiZ2V0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJzaXplb2ZcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwidHlwZWRlZm9mXCIsXG4gICAgXCJuYW1lb2ZcIixcbiAgICBcIm51bGxBcmdcIixcbiAgICBcImludmFsaWRBcmdcIixcbiAgICBcImludmFsaWRPcFwiLFxuICAgIFwiaWRcIixcbiAgICBcImZzdFwiLFxuICAgIFwic25kXCIsXG4gICAgXCJpZ25vcmVcIixcbiAgICBcImxvY2tcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJib3hcIixcbiAgICBcInVuYm94XCIsXG4gICAgXCJ0cnlVbmJveFwiLFxuICAgIFwicHJpbnRmXCIsXG4gICAgXCJwcmludGZuXCIsXG4gICAgXCJzcHJpbnRmXCIsXG4gICAgXCJlcHJpbnRmXCIsXG4gICAgXCJlcHJpbnRmblwiLFxuICAgIFwiZnByaW50ZlwiLFxuICAgIFwiZnByaW50Zm5cIixcbiAgICBcImZhaWx3aXRoXCIsXG4gICAgXCJmYWlsd2l0aGZcIlxuICBdO1xuXG4gIGNvbnN0IEFMTF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRJTlMsXG4gICAgJ3ZhcmlhYmxlLmNvbnN0YW50JzogU1BFQ0lBTF9JREVOVElGSUVSU1xuICB9O1xuXG4gIC8vICgqIHBvdGVudGlhbGx5IG11bHRpLWxpbmUgTWV0YSBMYW5ndWFnZSBzdHlsZSBjb21tZW50ICopXG4gIGNvbnN0IE1MX0NPTU1FTlQgPVxuICAgIGhsanMuQ09NTUVOVCgvXFwoXFwqKD8hXFwpKS8sIC9cXCpcXCkvLCB7XG4gICAgICBjb250YWluczogW1wic2VsZlwiXVxuICAgIH0pO1xuICAvLyBFaXRoZXIgYSBtdWx0aS1saW5lICgqIE1ldGEgTGFuZ3VhZ2Ugc3R5bGUgY29tbWVudCAqKSBvciBhIHNpbmdsZSBsaW5lIC8vIEMgc3R5bGUgY29tbWVudC5cbiAgY29uc3QgQ09NTUVOVCA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgTUxfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBdXG4gIH07XG5cbiAgLy8gTW9zdCBpZGVudGlmaWVycyBjYW4gY29udGFpbiBhcG9zdHJvcGhlc1xuICBjb25zdCBJREVOVElGSUVSX1JFID0gL1thLXpBLVpfXShcXHd8JykqLztcblxuICBjb25zdCBRVU9URURfSURFTlRJRklFUiA9IHtcbiAgICBzY29wZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL2BgLyxcbiAgICBlbmQ6IC9gYC9cbiAgfTtcblxuICAvLyAnYSBvciBeYSB3aGVyZSBhIGNhbiBiZSBhIGBgcXVvdGVkIGlkZW50aWZpZXJgYFxuICBjb25zdCBCRUdJTl9HRU5FUklDX1RZUEVfU1lNQk9MX1JFID0gL1xcQignfFxcXikvO1xuICBjb25zdCBHRU5FUklDX1RZUEVfU1lNQk9MID0ge1xuICAgIHNjb3BlOiAnc3ltYm9sJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gdGhlIHR5cGUgbmFtZSBpcyBhIHF1b3RlZCBpZGVudGlmaWVyOlxuICAgICAgeyBtYXRjaDogY29uY2F0KEJFR0lOX0dFTkVSSUNfVFlQRV9TWU1CT0xfUkUsIC9gYC4qP2BgLykgfSxcbiAgICAgIC8vIHRoZSB0eXBlIG5hbWUgaXMgYSBub3JtYWwgaWRlbnRpZmllciAod2UgZG9uJ3QgdXNlIElERU5USUZJRVJfUkUgYmVjYXVzZSB0aGVyZSBjYW5ub3QgYmUgYW5vdGhlciBhcG9zdHJvcGhlIGhlcmUpOlxuICAgICAgeyBtYXRjaDogY29uY2F0KEJFR0lOX0dFTkVSSUNfVFlQRV9TWU1CT0xfUkUsIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSkgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgbWFrZU9wZXJhdG9yTW9kZSA9IGZ1bmN0aW9uKHsgaW5jbHVkZUVxdWFsIH0pIHtcbiAgICAvLyBMaXN0IG9yIHN5bWJvbGljIG9wZXJhdG9yIGNoYXJhY3RlcnMgZnJvbSB0aGUgRlNoYXJwIFNwZWMgNC4xLCBtaW51cyB0aGUgZG90LCBhbmQgd2l0aCBgP2AgYWRkZWQsIHVzZWQgZm9yIG51bGxhYmxlIG9wZXJhdG9ycy5cbiAgICBsZXQgYWxsT3BlcmF0b3JDaGFycztcbiAgICBpZiAoaW5jbHVkZUVxdWFsKVxuICAgICAgYWxsT3BlcmF0b3JDaGFycyA9IFwiISUmKistLzw9PkBefH4/XCI7XG4gICAgZWxzZVxuICAgICAgYWxsT3BlcmF0b3JDaGFycyA9IFwiISUmKistLzw+QF58fj9cIjtcbiAgICBjb25zdCBPUEVSQVRPUl9DSEFSUyA9IEFycmF5LmZyb20oYWxsT3BlcmF0b3JDaGFycyk7XG4gICAgY29uc3QgT1BFUkFUT1JfQ0hBUl9SRSA9IGNvbmNhdCgnWycsIC4uLk9QRVJBVE9SX0NIQVJTLm1hcChlc2NhcGUpLCAnXScpO1xuICAgIC8vIFRoZSBsb25lIGRvdCBvcGVyYXRvciBpcyBzcGVjaWFsLiBJdCBjYW5ub3QgYmUgcmVkZWZpbmVkLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBoaWdobGlnaHQgaXQuIEl0IGNhbiBiZSB1c2VkIGFzIHBhcnQgb2YgYSBtdWx0aS1jaGFycyBvcGVyYXRvciB0aG91Z2guXG4gICAgY29uc3QgT1BFUkFUT1JfQ0hBUl9PUl9ET1RfUkUgPSBlaXRoZXIoT1BFUkFUT1JfQ0hBUl9SRSwgL1xcLi8pO1xuICAgIC8vIFdoZW4gYSBkb3QgaXMgcHJlc2VudCwgaXQgbXVzdCBiZSBmb2xsb3dlZCBieSBhbm90aGVyIG9wZXJhdG9yIGNoYXI6XG4gICAgY29uc3QgT1BFUkFUT1JfRklSU1RfQ0hBUl9PRl9NVUxUSVBMRV9SRSA9IGNvbmNhdChPUEVSQVRPUl9DSEFSX09SX0RPVF9SRSwgbG9va2FoZWFkKE9QRVJBVE9SX0NIQVJfT1JfRE9UX1JFKSk7XG4gICAgY29uc3QgU1lNQk9MSUNfT1BFUkFUT1JfUkUgPSBlaXRoZXIoXG4gICAgICBjb25jYXQoT1BFUkFUT1JfRklSU1RfQ0hBUl9PRl9NVUxUSVBMRV9SRSwgT1BFUkFUT1JfQ0hBUl9PUl9ET1RfUkUsICcqJyksIC8vIE1hdGNoZXMgYXQgbGVhc3QgMiBjaGFycyBvcGVyYXRvcnNcbiAgICAgIGNvbmNhdChPUEVSQVRPUl9DSEFSX1JFLCAnKycpLCAvLyBNYXRjaGVzIGF0IGxlYXN0IG9uZSBjaGFyIG9wZXJhdG9yc1xuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiAnb3BlcmF0b3InLFxuICAgICAgbWF0Y2g6IGVpdGhlcihcbiAgICAgICAgLy8gc3ltYm9saWMgb3BlcmF0b3JzOlxuICAgICAgICBTWU1CT0xJQ19PUEVSQVRPUl9SRSxcbiAgICAgICAgLy8gb3RoZXIgc3ltYm9saWMga2V5d29yZHM6XG4gICAgICAgIC8vIFR5cGUgY2FzdGluZyBhbmQgY29udmVyc2lvbiBvcGVyYXRvcnM6XG4gICAgICAgIC86XFw/Pi8sXG4gICAgICAgIC86XFw/LyxcbiAgICAgICAgLzo+LyxcbiAgICAgICAgLzo9LywgLy8gUmVmZXJlbmNlIGNlbGwgYXNzaWdubWVudFxuICAgICAgICAvOjo/LywgLy8gOiBvciA6OlxuICAgICAgICAvXFwkLyksIC8vIEEgc2luZ2xlICQgY2FuIGJlIHVzZWQgYXMgYW4gb3BlcmF0b3JcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgT1BFUkFUT1IgPSBtYWtlT3BlcmF0b3JNb2RlKHsgaW5jbHVkZUVxdWFsOiB0cnVlIH0pO1xuICAvLyBUaGlzIHZhcmlhbnQgaXMgdXNlZCB3aGVuIG1hdGNoaW5nICc9JyBzaG91bGQgZW5kIGEgcGFyZW50IG1vZGU6XG4gIGNvbnN0IE9QRVJBVE9SX1dJVEhPVVRfRVFVQUwgPSBtYWtlT3BlcmF0b3JNb2RlKHsgaW5jbHVkZUVxdWFsOiBmYWxzZSB9KTtcblxuICBjb25zdCBtYWtlVHlwZUFubm90YXRpb25Nb2RlID0gZnVuY3Rpb24ocHJlZml4LCBwcmVmaXhTY29wZSkge1xuICAgIHJldHVybiB7XG4gICAgICBiZWdpbjogY29uY2F0KCAvLyBhIHR5cGUgYW5ub3RhdGlvbiBpcyBhXG4gICAgICAgIHByZWZpeCwgICAgICAgICAgICAvLyBzaG91bGQgYmUgYSBjb2xvbiBvciB0aGUgJ29mJyBrZXl3b3JkXG4gICAgICAgIGxvb2thaGVhZCggICAvLyB0aGF0IGhhcyB0byBiZSBmb2xsb3dlZCBieVxuICAgICAgICAgIGNvbmNhdChcbiAgICAgICAgICAgIC9cXHMqLywgICAgICAgICAvLyBvcHRpb25hbCBzcGFjZVxuICAgICAgICAgICAgZWl0aGVyKCAgLy8gdGhlbiBlaXRoZXIgb2Y6XG4gICAgICAgICAgICAgIC9cXHcvLCAgICAgICAgLy8gd29yZFxuICAgICAgICAgICAgICAvJy8sICAgICAgICAgLy8gZ2VuZXJpYyB0eXBlIG5hbWVcbiAgICAgICAgICAgICAgL1xcXi8sICAgICAgICAvLyBnZW5lcmljIHR5cGUgbmFtZVxuICAgICAgICAgICAgICAvIy8sICAgICAgICAgLy8gZmxleGlibGUgdHlwZSBuYW1lXG4gICAgICAgICAgICAgIC9gYC8sICAgICAgICAvLyBxdW90ZWQgdHlwZSBuYW1lXG4gICAgICAgICAgICAgIC9cXCgvLCAgICAgICAgLy8gcGFyZW5zIHR5cGUgZXhwcmVzc2lvblxuICAgICAgICAgICAgICAve1xcfC8sICAgICAgIC8vIGFub255bW91cyB0eXBlIGFubm90YXRpb25cbiAgICAgICkpKSksXG4gICAgICBiZWdpblNjb3BlOiBwcmVmaXhTY29wZSxcbiAgICAgIC8vIEJVRzogYmVjYXVzZSBlbmRpbmcgd2l0aCBcXG4gaXMgbmVjZXNzYXJ5IGZvciBzb21lIGNhc2VzLCBtdWx0aS1saW5lIHR5cGUgYW5ub3RhdGlvbnMgYXJlIG5vdCBwcm9wZXJseSBzdXBwb3J0ZWQuXG4gICAgICAvLyBFeGFtcGxlcyB3aGVyZSBcXG4gaXMgcmVxdWlyZWQgYXQgdGhlIGVuZDpcbiAgICAgIC8vIC0gYWJzdHJhY3QgbWVtYmVyIGRlZmluaXRpb25zIGluIGNsYXNzZXM6IGFic3RyYWN0IFByb3BlcnR5IDogaW50ICogc3RyaW5nXG4gICAgICAvLyAtIHJldHVybiB0eXBlIGFubm90YXRpb25zOiBsZXQgZiBmJyA9IGYnICgpIDogcmV0dXJuVHlwZUFubm90YXRpb25cbiAgICAgIC8vIC0gcmVjb3JkIGZpZWxkcyBkZWZpbml0aW9uczogeyBBIDogaW50IFxcbiBCIDogc3RyaW5nIH1cbiAgICAgIGVuZDogbG9va2FoZWFkKFxuICAgICAgICBlaXRoZXIoXG4gICAgICAgICAgL1xcbi8sXG4gICAgICAgICAgLz0vKSksXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICAvLyB3ZSBuZWVkIHRoZSBrbm93biB0eXBlcywgYW5kIHdlIG5lZWQgdGhlIHR5cGUgY29uc3RyYWludCBrZXl3b3JkcyBhbmQgbGl0ZXJhbHMuIGUuZy46IHdoZW4gJ2EgOiBudWxsXG4gICAgICBrZXl3b3JkczogaGxqcy5pbmhlcml0KEFMTF9LRVlXT1JEUywgeyB0eXBlOiBLTk9XTl9UWVBFUyB9KSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIENPTU1FTlQsXG4gICAgICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgICAgIGhsanMuaW5oZXJpdChRVU9URURfSURFTlRJRklFUiwgeyBzY29wZTogbnVsbCB9KSwgLy8gbWF0Y2ggdG8gYXZvaWQgc3RyYW5nZSBwYXR0ZXJucyBpbnNpZGUgdGhhdCBtYXkgYnJlYWsgdGhlIHBhcnNpbmdcbiAgICAgICAgT1BFUkFUT1JfV0lUSE9VVF9FUVVBTFxuICAgICAgXVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgVFlQRV9BTk5PVEFUSU9OID0gbWFrZVR5cGVBbm5vdGF0aW9uTW9kZSgvOi8sICdvcGVyYXRvcicpO1xuICBjb25zdCBESVNDUklNSU5BVEVEX1VOSU9OX1RZUEVfQU5OT1RBVElPTiA9IG1ha2VUeXBlQW5ub3RhdGlvbk1vZGUoL1xcYm9mXFxiLywgJ2tleXdvcmQnKTtcblxuICAvLyB0eXBlIE15VHlwZTwnYT4gPSAuLi5cbiAgY29uc3QgVFlQRV9ERUNMQVJBVElPTiA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgLyhefFxccyspLywgLy8gcHJldmVudHMgbWF0Y2hpbmcgdGhlIGZvbGxvd2luZzogYG1hdGNoIHMuc3R5cGUgd2l0aGBcbiAgICAgIC90eXBlLyxcbiAgICAgIC9cXHMrLyxcbiAgICAgIElERU5USUZJRVJfUkVcbiAgICBdLFxuICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgIDI6ICdrZXl3b3JkJyxcbiAgICAgIDQ6ICd0aXRsZS5jbGFzcydcbiAgICB9LFxuICAgIGVuZDogbG9va2FoZWFkKC9cXCh8PXwkLyksXG4gICAga2V5d29yZHM6IEFMTF9LRVlXT1JEUywgLy8gbWF0Y2gga2V5d29yZHMgaW4gdHlwZSBjb25zdHJhaW50cy4gZS5nLjogd2hlbiAnYSA6IG51bGxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVCxcbiAgICAgIGhsanMuaW5oZXJpdChRVU9URURfSURFTlRJRklFUiwgeyBzY29wZTogbnVsbCB9KSwgLy8gbWF0Y2ggdG8gYXZvaWQgc3RyYW5nZSBwYXR0ZXJucyBpbnNpZGUgdGhhdCBtYXkgYnJlYWsgdGhlIHBhcnNpbmdcbiAgICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgICB7XG4gICAgICAgIC8vIEZvciB2aXN1YWwgY29uc2lzdGVuY3ksIGhpZ2hsaWdodCB0eXBlIGJyYWNrZXRzIGFzIG9wZXJhdG9ycy5cbiAgICAgICAgc2NvcGU6ICdvcGVyYXRvcicsXG4gICAgICAgIG1hdGNoOiAvPHw+L1xuICAgICAgfSxcbiAgICAgIFRZUEVfQU5OT1RBVElPTiAvLyBnZW5lcmljIHR5cGVzIGNhbiBoYXZlIGNvbnN0cmFpbnRzLCB3aGljaCBhcmUgdHlwZSBhbm5vdGF0aW9ucy4gZS5nLiB0eXBlIE15VHlwZTwnVCB3aGVuICdUIDogZGVsZWdhdGU8b2JqICogc3RyaW5nPj4gPVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDT01QVVRBVElPTl9FWFBSRVNTSU9OID0ge1xuICAgIC8vIGNvbXB1dGF0aW9uIGV4cHJlc3Npb25zOlxuICAgIHNjb3BlOiAnY29tcHV0YXRpb24tZXhwcmVzc2lvbicsXG4gICAgLy8gQlVHOiBtaWdodCBjb25mbGljdCB3aXRoIHJlY29yZCBkZWNvbnN0cnVjdGlvbi4gZS5nLiBsZXQgZiB7IE5hbWUgPSBuYW1lIH0gPSBuYW1lIC8vIHdpbGwgaGlnaGxpZ2h0IGZcbiAgICBtYXRjaDogL1xcYltfYS16XVxcdyooPz1cXHMqXFx7KS9cbiAgfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1IgPSB7XG4gICAgLy8gcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgYW5kIGZzaSBjb21tYW5kczpcbiAgICBiZWdpbjogW1xuICAgICAgL15cXHMqLyxcbiAgICAgIGNvbmNhdCgvIy8sIGVpdGhlciguLi5QUkVQUk9DRVNTT1JfS0VZV09SRFMpKSxcbiAgICAgIC9cXGIvXG4gICAgXSxcbiAgICBiZWdpblNjb3BlOiB7IDI6ICdtZXRhJyB9LFxuICAgIGVuZDogbG9va2FoZWFkKC9cXHN8JC8pXG4gIH07XG5cbiAgLy8gVE9ETzogdGhpcyBkZWZpbml0aW9uIGlzIG1pc3Npbmcgc3VwcG9ydCBmb3IgdHlwZSBzdWZmaXhlcyBhbmQgb2N0YWwgbm90YXRpb24uXG4gIC8vIEJVRzogcmFuZ2Ugb3BlcmF0b3Igd2l0aG91dCBhbnkgc3BhY2UgaXMgd3JvbmdseSBpbnRlcnByZXRlZCBhcyBhIHNpbmdsZSBudW1iZXIgKGUuZy4gMS4uMTAgKVxuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuXG4gIC8vIEFsbCB0aGUgZm9sbG93aW5nIHN0cmluZyBkZWZpbml0aW9ucyBhcmUgcG90ZW50aWFsbHkgbXVsdGktbGluZS5cbiAgLy8gQlVHOiB0aGVzZSBkZWZpbml0aW9ucyBhcmUgbWlzc2luZyBzdXBwb3J0IGZvciBieXRlIHN0cmluZ3MgKHN1ZmZpeGVkIHdpdGggQilcblxuICAvLyBcIi4uLlwiXG4gIGNvbnN0IFFVT1RFRF9TVFJJTkcgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFXG4gICAgXVxuICB9O1xuICAvLyBAXCIuLi5cIlxuICBjb25zdCBWRVJCQVRJTV9TVFJJTkcgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvQFwiLyxcbiAgICBlbmQ6IC9cIi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cIlwiLyAvLyBlc2NhcGVkIFwiXG4gICAgICB9LFxuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFXG4gICAgXVxuICB9O1xuICAvLyBcIlwiXCIuLi5cIlwiXCJcbiAgY29uc3QgVFJJUExFX1FVT1RFRF9TVFJJTkcgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCJcIlwiLyxcbiAgICBlbmQ6IC9cIlwiXCIvLFxuICAgIHJlbGV2YW5jZTogMlxuICB9O1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBzY29wZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogQUxMX0tFWVdPUkRTXG4gIH07XG4gIC8vICRcIi4uLnsxKzF9Li4uXCJcbiAgY29uc3QgSU5URVJQT0xBVEVEX1NUUklORyA9IHtcbiAgICBzY29wZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXCRcIi8sXG4gICAgZW5kOiAvXCIvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiAvXFx7XFx7LyAvLyBlc2NhcGVkIHtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiAvXFx9XFx9LyAvLyBlc2NhcGVkIH1cbiAgICAgIH0sXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF1cbiAgfTtcbiAgLy8gJEBcIi4uLnsxKzF9Li4uXCJcbiAgY29uc3QgSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORyA9IHtcbiAgICBzY29wZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC8oXFwkQHxAXFwkKVwiLyxcbiAgICBlbmQ6IC9cIi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXHtcXHsvIC8vIGVzY2FwZWQge1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXH1cXH0vIC8vIGVzY2FwZWQgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cIlwiL1xuICAgICAgfSxcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUXG4gICAgXVxuICB9O1xuICAvLyAkXCJcIlwiLi4uezErMX0uLi5cIlwiXCJcbiAgY29uc3QgSU5URVJQT0xBVEVEX1RSSVBMRV9RVU9URURfU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJFwiXCJcIi8sXG4gICAgZW5kOiAvXCJcIlwiLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xce1xcey8gLy8gZXNjYXBlZCB7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcfVxcfS8gLy8gZXNjYXBlZCB9XG4gICAgICB9LFxuICAgICAgU1VCU1RcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMlxuICB9O1xuICAvLyAnLidcbiAgY29uc3QgQ0hBUl9MSVRFUkFMID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICBtYXRjaDogY29uY2F0KFxuICAgICAgLycvLFxuICAgICAgZWl0aGVyKFxuICAgICAgICAvW15cXFxcJ10vLCAvLyBlaXRoZXIgYSBzaW5nbGUgbm9uIGVzY2FwZWQgY2hhci4uLlxuICAgICAgICAvXFxcXCg/Oi58XFxkezN9fHhbYS1mQS1GXFxkXXsyfXx1W2EtZkEtRlxcZF17NH18VVthLWZBLUZcXGRdezh9KS8gLy8gLi4ub3IgYW4gZXNjYXBlIHNlcXVlbmNlXG4gICAgICApLFxuICAgICAgLycvXG4gICAgKVxuICB9O1xuICAvLyBGIyBhbGxvd3MgYSBsb3Qgb2YgdGhpbmdzIGluc2lkZSBzdHJpbmcgcGxhY2Vob2xkZXJzLlxuICAvLyBUaGluZ3MgdGhhdCBkb24ndCBjdXJyZW50bHkgc2VlbSBhbGxvd2VkIGJ5IHRoZSBjb21waWxlcjogdHlwZXMgZGVmaW5pdGlvbiwgYXR0cmlidXRlcyB1c2FnZS5cbiAgLy8gKFN0cmljdGx5IHNwZWFraW5nLCBzb21lIG9mIHRoZSBmb2xsb3dpbmdzIGFyZSBvbmx5IGFsbG93ZWQgaW5zaWRlIHRyaXBsZSBxdW90ZWQgaW50ZXJwb2xhdGVkIHN0cmluZ3MuLi4pXG4gIFNVQlNULmNvbnRhaW5zID0gW1xuICAgIElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcsXG4gICAgSU5URVJQT0xBVEVEX1NUUklORyxcbiAgICBWRVJCQVRJTV9TVFJJTkcsXG4gICAgUVVPVEVEX1NUUklORyxcbiAgICBDSEFSX0xJVEVSQUwsXG4gICAgQkFOR19LRVlXT1JEX01PREUsXG4gICAgQ09NTUVOVCxcbiAgICBRVU9URURfSURFTlRJRklFUixcbiAgICBUWVBFX0FOTk9UQVRJT04sXG4gICAgQ09NUFVUQVRJT05fRVhQUkVTU0lPTixcbiAgICBQUkVQUk9DRVNTT1IsXG4gICAgTlVNQkVSLFxuICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgT1BFUkFUT1JcbiAgXTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICBJTlRFUlBPTEFURURfVFJJUExFX1FVT1RFRF9TVFJJTkcsXG4gICAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgICAgSU5URVJQT0xBVEVEX1NUUklORyxcbiAgICAgIFRSSVBMRV9RVU9URURfU1RSSU5HLFxuICAgICAgVkVSQkFUSU1fU1RSSU5HLFxuICAgICAgUVVPVEVEX1NUUklORyxcbiAgICAgIENIQVJfTElURVJBTFxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdGIycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2ZzJyxcbiAgICAgICdmIydcbiAgICBdLFxuICAgIGtleXdvcmRzOiBBTExfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY2xhc3NOYW1lQWxpYXNlczoge1xuICAgICAgJ2NvbXB1dGF0aW9uLWV4cHJlc3Npb24nOiAna2V5d29yZCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBCQU5HX0tFWVdPUkRfTU9ERSxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlQsXG4gICAgICBRVU9URURfSURFTlRJRklFUixcbiAgICAgIFRZUEVfREVDTEFSQVRJT04sXG4gICAgICB7XG4gICAgICAgIC8vIGUuZy4gWzxBdHRyaWJ1dGVzKFwiXCIpPl0gb3IgWzxgYG1vZHVsZWBgOiBNeUN1c3RvbUF0dHJpYnV0ZVRoYXRXb3Jrc09uTW9kdWxlcz5dXG4gICAgICAgIC8vIG9yIFs8U2VhbGVkOyBOb0VxdWFsaXR5OyBOb0NvbXBhcmlzb247IENvbXBpbGVkTmFtZShcIkZTaGFycEFzeW5jYDFcIik+XVxuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL1xcWzwvLFxuICAgICAgICBlbmQ6IC8+XFxdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAyLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFFVT1RFRF9JREVOVElGSUVSLFxuICAgICAgICAgIC8vIGNhbiBjb250YWluIGFueSBjb25zdGFudCB2YWx1ZVxuICAgICAgICAgIFRSSVBMRV9RVU9URURfU1RSSU5HLFxuICAgICAgICAgIFZFUkJBVElNX1NUUklORyxcbiAgICAgICAgICBRVU9URURfU1RSSU5HLFxuICAgICAgICAgIENIQVJfTElURVJBTCxcbiAgICAgICAgICBOVU1CRVJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIERJU0NSSU1JTkFURURfVU5JT05fVFlQRV9BTk5PVEFUSU9OLFxuICAgICAgVFlQRV9BTk5PVEFUSU9OLFxuICAgICAgQ09NUFVUQVRJT05fRVhQUkVTU0lPTixcbiAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgIE5VTUJFUixcbiAgICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgICBPUEVSQVRPUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmc2hhcnA7XG4iLCAiLypcbiBMYW5ndWFnZTogR0FNU1xuIEF1dGhvcjogU3RlZmFuIEJlY2hlcnQgPHN0ZWZhbi5iZWNoZXJ0QGdteC5uZXQ+XG4gQ29udHJpYnV0b3JzOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPiwgTWlra28gS291aGlhIDxtaWtrby5rb3VoaWFAaWtpLmZpPlxuIERlc2NyaXB0aW9uOiBUaGUgR2VuZXJhbCBBbGdlYnJhaWMgTW9kZWxpbmcgU3lzdGVtIGxhbmd1YWdlXG4gV2Vic2l0ZTogaHR0cHM6Ly93d3cuZ2Ftcy5jb21cbiBDYXRlZ29yeTogc2NpZW50aWZpY1xuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBnYW1zKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2Fib3J0IGFjcm9ueW0gYWNyb255bXMgYWxpYXMgYWxsIGFuZCBhc3NpZ24gYmluYXJ5IGNhcmQgZGlhZyBkaXNwbGF5ICdcbiAgICAgICsgJ2Vsc2UgZXEgZmlsZSBmaWxlcyBmb3IgZnJlZSBnZSBndCBpZiBpbnRlZ2VyIGxlIGxvb3AgbHQgbWF4aW1pemluZyAnXG4gICAgICArICdtaW5pbWl6aW5nIG1vZGVsIG1vZGVscyBuZSBuZWdhdGl2ZSBubyBub3Qgb3B0aW9uIG9wdGlvbnMgb3Igb3JkICdcbiAgICAgICsgJ3Bvc2l0aXZlIHByb2QgcHV0IHB1dHBhZ2UgcHV0dGwgcmVwZWF0IHNhbWVhcyBzZW1pY29udCBzZW1paW50IHNtYXggJ1xuICAgICAgKyAnc21pbiBzb2x2ZSBzb3MxIHNvczIgc3VtIHN5c3RlbSB0YWJsZSB0aGVuIHVudGlsIHVzaW5nIHdoaWxlIHhvciB5ZXMnLFxuICAgIGxpdGVyYWw6XG4gICAgICAnZXBzIGluZiBuYScsXG4gICAgYnVpbHRfaW46XG4gICAgICAnYWJzIGFyY2NvcyBhcmNzaW4gYXJjdGFuIGFyY3RhbjIgQmV0YSBiZXRhUmVnIGJpbm9taWFsIGNlaWwgY2VudHJvcHkgJ1xuICAgICAgKyAnY29zIGNvc2ggY3ZQb3dlciBkaXYgZGl2MCBlRGlzdCBlbnRyb3B5IGVycm9yZiBleGVjU2VlZCBleHAgZmFjdCAnXG4gICAgICArICdmbG9vciBmcmFjIGdhbW1hIGdhbW1hUmVnIGxvZyBsb2dCZXRhIGxvZ0dhbW1hIGxvZzEwIGxvZzIgbWFwVmFsIG1heCAnXG4gICAgICArICdtaW4gbW9kIG5jcENNIG5jcEYgbmNwVlVwb3cgbmNwVlVzaW4gbm9ybWFsIHBpIHBvbHkgcG93ZXIgJ1xuICAgICAgKyAncmFuZEJpbm9taWFsIHJhbmRMaW5lYXIgcmFuZFRyaWFuZ2xlIHJvdW5kIHJQb3dlciBzaWdtb2lkIHNpZ24gJ1xuICAgICAgKyAnc2lnblBvd2VyIHNpbiBzaW5oIHNsZXhwIHNsbG9nMTAgc2xyZWMgc3FleHAgc3Fsb2cxMCBzcXIgc3FyZWMgc3FydCAnXG4gICAgICArICd0YW4gdGFuaCB0cnVuYyB1bmlmb3JtIHVuaWZvcm1JbnQgdmNQb3dlciBib29sX2FuZCBib29sX2VxdiBib29sX2ltcCAnXG4gICAgICArICdib29sX25vdCBib29sX29yIGJvb2xfeG9yIGlmVGhlbiByZWxfZXEgcmVsX2dlIHJlbF9ndCByZWxfbGUgcmVsX2x0ICdcbiAgICAgICsgJ3JlbF9uZSBnZGF5IGdkb3cgZ2hvdXIgZ2xlYXAgZ21pbGxpc2VjIGdtaW51dGUgZ21vbnRoIGdzZWNvbmQgZ3llYXIgJ1xuICAgICAgKyAnamRhdGUgam5vdyBqc3RhcnQganRpbWUgZXJyb3JMZXZlbCBleGVjRXJyb3IgZ2Ftc1JlbGVhc2UgZ2Ftc1ZlcnNpb24gJ1xuICAgICAgKyAnaGFuZGxlQ29sbGVjdCBoYW5kbGVEZWxldGUgaGFuZGxlU3RhdHVzIGhhbmRsZVN1Ym1pdCBoZWFwRnJlZSAnXG4gICAgICArICdoZWFwTGltaXQgaGVhcFNpemUgam9iSGFuZGxlIGpvYktpbGwgam9iU3RhdHVzIGpvYlRlcm1pbmF0ZSAnXG4gICAgICArICdsaWNlbnNlTGV2ZWwgbGljZW5zZVN0YXR1cyBtYXhFeGVjRXJyb3Igc2xlZXAgdGltZUNsb3NlIHRpbWVDb21wICdcbiAgICAgICsgJ3RpbWVFbGFwc2VkIHRpbWVFeGVjIHRpbWVTdGFydCdcbiAgfTtcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgfTtcbiAgY29uc3QgU1lNQk9MUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAvPVtsZ2VueGNdPS8gfSxcbiAgICAgIHsgYmVnaW46IC9cXCQvIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFFTVFIgPSB7IC8vIE9uZS1saW5lIHF1b3RlZCBjb21tZW50IHN0cmluZ1xuICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnXFwnJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJ1xuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICB9O1xuICBjb25zdCBBU1NJR05NRU5UID0ge1xuICAgIGJlZ2luOiAnLycsXG4gICAgZW5kOiAnLycsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBRU1RSLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IENPTU1FTlRfV09SRCA9IC9bYS16MC05JiMqPT9AXFxcXD48OiwoKSRbXFxdXy57fSErJV4tXSsvO1xuICBjb25zdCBERVNDVEVYVCA9IHsgLy8gUGFyYW1ldGVyL3NldC92YXJpYWJsZSBkZXNjcmlwdGlvbiB0ZXh0XG4gICAgYmVnaW46IC9bYS16XVthLXowLTlfXSooXFwoW2EtejAtOV8sIF0qXFwpKT9bIFxcdF0rLyxcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZW5kOiAnJCcsXG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFFTVFIsXG4gICAgICBBU1NJR05NRU5ULFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgLy8gb25lIGNvbW1lbnQgd29yZCwgdGhlbiBwb3NzaWJseSBtb3JlXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgQ09NTUVOVF9XT1JELFxuICAgICAgICAgIC8vIFsgXSBiZWNhdXNlIFxccyB3b3VsZCBiZSB0b28gYnJvYWQgKG1hdGNoaW5nIG5ld2xpbmVzKVxuICAgICAgICAgIHJlZ2V4LmFueU51bWJlck9mVGltZXMocmVnZXguY29uY2F0KC9bIF0rLywgQ09NTUVOVF9XT1JEKSlcbiAgICAgICAgKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0dBTVMnLFxuICAgIGFsaWFzZXM6IFsgJ2dtcycgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKC9eXFwkb250ZXh0LywgL15cXCRvZmZ0ZXh0LyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ15cXFxcJFthLXowLTldKycsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXlxcXFwkW2EtejAtOV0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXlxcXFwqJywgJyQnKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgLy8gRGVjbGFyYXRpb25zXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6XG4gICAgICAgICAgJ3NldCBzZXRzIHBhcmFtZXRlciBwYXJhbWV0ZXJzIHZhcmlhYmxlIHZhcmlhYmxlcyAnXG4gICAgICAgICAgKyAnc2NhbGFyIHNjYWxhcnMgZXF1YXRpb24gZXF1YXRpb25zJyxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXConLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIEFTU0lHTk1FTlQsXG4gICAgICAgICAgREVTQ1RFWFRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gdGFibGUgZW52aXJvbm1lbnRcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3RhYmxlJyxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgLy8gdGFibGUgaGVhZGVyIHJvd1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ3RhYmxlJyxcbiAgICAgICAgICAgIGVuZDogJyQnLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgREVTQ1RFWFQgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXConLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgICAgICAgIC8vIFRhYmxlIGRvZXMgbm90IGNvbnRhaW4gREVTQ1RFWFQgb3IgQVNTSUdOTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gRnVuY3Rpb24gZGVmaW5pdGlvbnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogL15bYS16XVthLXowLTlfLFxcLSsnICgpJF0rXFwuezJ9LyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyAvLyBGdW5jdGlvbiB0aXRsZVxuICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgYmVnaW46IC9eW2EtejAtOV9dKy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBTWU1CT0xTXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBTWU1CT0xTXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdhbXM7XG4iLCAiLypcbkxhbmd1YWdlOiBHQVVTU1xuQXV0aG9yOiBNYXR0IEV2YW5zIDxtYXR0QGFwdGVjaC5jb20+XG5EZXNjcmlwdGlvbjogR0FVU1MgTWF0aGVtYXRpY2FsIGFuZCBTdGF0aXN0aWNhbCBsYW5ndWFnZVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuYXB0ZWNoLmNvbVxuQ2F0ZWdvcnk6IHNjaWVudGlmaWNcbiovXG5mdW5jdGlvbiBnYXVzcyhobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6ICdib29sIGJyZWFrIGNhbGwgY2FsbGV4ZSBjaGVja2ludGVycnVwdCBjbGVhciBjbGVhcmcgY2xvc2VhbGwgY2xzIGNvbWxvZyBjb21waWxlICdcbiAgICAgICAgICAgICAgKyAnY29udGludWUgY3JlYXRlIGRlYnVnIGRlY2xhcmUgZGVsZXRlIGRpc2FibGUgZGxpYnJhcnkgZGxsY2FsbCBkbyBkb3MgZWQgZWRpdCBlbHNlICdcbiAgICAgICAgICAgICAgKyAnZWxzZWlmIGVuYWJsZSBlbmQgZW5kZm9yIGVuZGlmIGVuZHAgZW5kbyBlcnJvcmxvZyBlcnJvcmxvZ2F0IGV4cHIgZXh0ZXJuYWwgZm4gJ1xuICAgICAgICAgICAgICArICdmb3IgZm9ybWF0IGdvdG8gZ29zdWIgZ3JhcGggaWYga2V5d29yZCBsZXQgbGliIGxpYnJhcnkgbGluZSBsb2FkIGxvYWRhcnJheSBsb2FkZXhlICdcbiAgICAgICAgICAgICAgKyAnbG9hZGYgbG9hZGsgbG9hZG0gbG9hZHAgbG9hZHMgbG9hZHggbG9jYWwgbG9jYXRlIGxvb3BuZXh0aW5kZXggbHByaW50IGxwd2lkdGggbHNob3cgJ1xuICAgICAgICAgICAgICArICdtYXRyaXggbXN5bSBuZHBjbGV4IG5ldyBvcGVuIG91dHB1dCBvdXR3aWR0aCBwbG90IHBsb3RzeW0gcG9wIHByY3NuIHByaW50ICdcbiAgICAgICAgICAgICAgKyAncHJpbnRkb3MgcHJvYyBwdXNoIHJldHAgcmV0dXJuIHJuZGNvbiBybmRtb2Qgcm5kbXVsdCBybmRzZWVkIHJ1biBzYXZlIHNhdmVhbGwgc2NyZWVuICdcbiAgICAgICAgICAgICAgKyAnc2Nyb2xsIHNldGFycmF5IHNob3cgc3BhcnNlIHN0b3Agc3RyaW5nIHN0cnVjdCBzeXN0ZW0gdHJhY2UgdHJhcCB0aHJlYWRmb3IgJ1xuICAgICAgICAgICAgICArICd0aHJlYWRlbmRmb3IgdGhyZWFkYmVnaW4gdGhyZWFkam9pbiB0aHJlYWRzdGF0IHRocmVhZGVuZCB1bnRpbCB1c2Ugd2hpbGUgd2lucHJpbnQgJ1xuICAgICAgICAgICAgICArICduZSBnZSBsZSBndCBsdCBhbmQgeG9yIG9yIG5vdCBlcSBlcXYnLFxuICAgIGJ1aWx0X2luOiAnYWJzIGFjZiBhY29uY2F0IGFleWUgYW1heCBhbWVhbiBBbWVyaWNhbkJpbm9tQ2FsbCBBbWVyaWNhbkJpbm9tQ2FsbF9HcmVla3MgQW1lcmljYW5CaW5vbUNhbGxfSW1wVm9sICdcbiAgICAgICAgICAgICAgKyAnQW1lcmljYW5CaW5vbVB1dCBBbWVyaWNhbkJpbm9tUHV0X0dyZWVrcyBBbWVyaWNhbkJpbm9tUHV0X0ltcFZvbCBBbWVyaWNhbkJTQ2FsbCBBbWVyaWNhbkJTQ2FsbF9HcmVla3MgJ1xuICAgICAgICAgICAgICArICdBbWVyaWNhbkJTQ2FsbF9JbXBWb2wgQW1lcmljYW5CU1B1dCBBbWVyaWNhbkJTUHV0X0dyZWVrcyBBbWVyaWNhbkJTUHV0X0ltcFZvbCBhbWluIGFtdWx0IGFubm90YXRpb25HZXREZWZhdWx0cyAnXG4gICAgICAgICAgICAgICsgJ2Fubm90YXRpb25TZXRCa2QgYW5ub3RhdGlvblNldEZvbnQgYW5ub3RhdGlvblNldExpbmVDb2xvciBhbm5vdGF0aW9uU2V0TGluZVN0eWxlIGFubm90YXRpb25TZXRMaW5lVGhpY2tuZXNzICdcbiAgICAgICAgICAgICAgKyAnYW5udWFsVHJhZGluZ0RheXMgYXJjY29zIGFyY3NpbiBhcmVzaGFwZSBhcnJheWFsbG9jIGFycmF5aW5kZXggYXJyYXlpbml0IGFycmF5dG9tYXQgYXNjaWlsb2FkIGFzY2xhYmVsIGFzdGQgJ1xuICAgICAgICAgICAgICArICdhc3RkcyBhc3VtIGF0YW4gYXRhbjIgYXRyYW5zcG9zZSBheG1hcmdpbiBiYWxhbmNlIGJhbmQgYmFuZGNob2wgYmFuZGNob2xzb2wgYmFuZGx0c29sIGJhbmRydiBiYW5kc29scGQgYmFyICdcbiAgICAgICAgICAgICAgKyAnYmFzZTEwIGJlZ3dpbmQgYmVzc2VsaiBiZXNzZWx5IGJldGEgYm94IGJveGNveCBjZGZCZXRhIGNkZkJldGFJbnYgY2RmQmlub21pYWwgY2RmQmlub21pYWxJbnYgY2RmQnZuIGNkZkJ2bjIgJ1xuICAgICAgICAgICAgICArICdjZGZCdm4yZSBjZGZDYXVjaHkgY2RmQ2F1Y2h5SW52IGNkZkNoaWMgY2RmQ2hpaSBjZGZDaGluYyBjZGZDaGluY0ludiBjZGZFeHAgY2RmRXhwSW52IGNkZkZjIGNkZkZuYyBjZGZGbmNJbnYgJ1xuICAgICAgICAgICAgICArICdjZGZHYW0gY2RmR2VuUGFyZXRvIGNkZkh5cGVyR2VvIGNkZkxhcGxhY2UgY2RmTGFwbGFjZUludiBjZGZMb2dpc3RpYyBjZGZMb2dpc3RpY0ludiBjZGZtQ29udHJvbENyZWF0ZSBjZGZNdm4gJ1xuICAgICAgICAgICAgICArICdjZGZNdm4yZSBjZGZNdm5jZSBjZGZNdm5lIGNkZk12dDJlIGNkZk12dGNlIGNkZk12dGUgY2RmTiBjZGZOMiBjZGZOYyBjZGZOZWdCaW5vbWlhbCBjZGZOZWdCaW5vbWlhbEludiBjZGZOaSAnXG4gICAgICAgICAgICAgICsgJ2NkZlBvaXNzb24gY2RmUG9pc3NvbkludiBjZGZSYXlsZWlnaCBjZGZSYXlsZWlnaEludiBjZGZUYyBjZGZUY2kgY2RmVG5jIGNkZlR2biBjZGZXZWlidWxsIGNkZldlaWJ1bGxJbnYgY2RpciAnXG4gICAgICAgICAgICAgICsgJ2NlaWwgQ2hhbmdlRGlyIGNoZGlyIGNoaUJhclNxdWFyZSBjaG9sIGNob2xkbiBjaG9sc29sIGNob2x1cCBjaHJzIGNsb3NlIGNvZGUgY29scyBjb2xzZiBjb21iaW5hdGUgY29tYmluYXRlZCAnXG4gICAgICAgICAgICAgICsgJ2NvbXBsZXggY29uIGNvbmQgY29uaiBjb25zIENvblNjb3JlIGNvbnRvdXIgY29udiBjb252ZXJ0c2F0b3N0ciBjb252ZXJ0c3RydG9zYSBjb3JybSBjb3JybXMgY29ycnZjIGNvcnJ4IGNvcnJ4cyAnXG4gICAgICAgICAgICAgICsgJ2NvcyBjb3NoIGNvdW50cyBjb3VudHd0cyBjcm9zc3ByZCBjcm91dCBjcm91dHAgY3NyY29sIGNzcmxpbiBjc3ZSZWFkTSBjc3ZSZWFkU0EgY3VtcHJvZGMgY3Vtc3VtYyBjdXJ2ZSBjdnRvcyAnXG4gICAgICAgICAgICAgICsgJ2RhdGFjcmVhdGUgZGF0YWNyZWF0ZWNvbXBsZXggZGF0YWxpc3QgZGF0YWxvYWQgZGF0YWxvb3AgZGF0YW9wZW4gZGF0YXNhdmUgZGF0ZSBkYXRlc3RyIGRhdGVzdHJpbmcgZGF0ZXN0cnltZCAnXG4gICAgICAgICAgICAgICsgJ2RheWlueXIgZGF5b2Z3ZWVrIGRiQWRkRGF0YWJhc2UgZGJDbG9zZSBkYkNvbW1pdCBkYkNyZWF0ZVF1ZXJ5IGRiRXhlY1F1ZXJ5IGRiR2V0Q29ubmVjdE9wdGlvbnMgZGJHZXREYXRhYmFzZU5hbWUgJ1xuICAgICAgICAgICAgICArICdkYkdldERyaXZlck5hbWUgZGJHZXREcml2ZXJzIGRiR2V0SG9zdE5hbWUgZGJHZXRMYXN0RXJyb3JOdW0gZGJHZXRMYXN0RXJyb3JUZXh0IGRiR2V0TnVtZXJpY2FsUHJlY1BvbGljeSAnXG4gICAgICAgICAgICAgICsgJ2RiR2V0UGFzc3dvcmQgZGJHZXRQb3J0IGRiR2V0VGFibGVIZWFkZXJzIGRiR2V0VGFibGVzIGRiR2V0VXNlck5hbWUgZGJIYXNGZWF0dXJlIGRiSXNEcml2ZXJBdmFpbGFibGUgZGJJc09wZW4gJ1xuICAgICAgICAgICAgICArICdkYklzT3BlbkVycm9yIGRiT3BlbiBkYlF1ZXJ5QmluZFZhbHVlIGRiUXVlcnlDbGVhciBkYlF1ZXJ5Q29scyBkYlF1ZXJ5RXhlY1ByZXBhcmVkIGRiUXVlcnlGZXRjaEFsbE0gZGJRdWVyeUZldGNoQWxsU0EgJ1xuICAgICAgICAgICAgICArICdkYlF1ZXJ5RmV0Y2hPbmVNIGRiUXVlcnlGZXRjaE9uZVNBIGRiUXVlcnlGaW5pc2ggZGJRdWVyeUdldEJvdW5kVmFsdWUgZGJRdWVyeUdldEJvdW5kVmFsdWVzIGRiUXVlcnlHZXRGaWVsZCAnXG4gICAgICAgICAgICAgICsgJ2RiUXVlcnlHZXRMYXN0RXJyb3JOdW0gZGJRdWVyeUdldExhc3RFcnJvclRleHQgZGJRdWVyeUdldExhc3RJbnNlcnRJRCBkYlF1ZXJ5R2V0TGFzdFF1ZXJ5IGRiUXVlcnlHZXRQb3NpdGlvbiAnXG4gICAgICAgICAgICAgICsgJ2RiUXVlcnlJc0FjdGl2ZSBkYlF1ZXJ5SXNGb3J3YXJkT25seSBkYlF1ZXJ5SXNOdWxsIGRiUXVlcnlJc1NlbGVjdCBkYlF1ZXJ5SXNWYWxpZCBkYlF1ZXJ5UHJlcGFyZSBkYlF1ZXJ5Um93cyAnXG4gICAgICAgICAgICAgICsgJ2RiUXVlcnlTZWVrIGRiUXVlcnlTZWVrRmlyc3QgZGJRdWVyeVNlZWtMYXN0IGRiUXVlcnlTZWVrTmV4dCBkYlF1ZXJ5U2Vla1ByZXZpb3VzIGRiUXVlcnlTZXRGb3J3YXJkT25seSAnXG4gICAgICAgICAgICAgICsgJ2RiUmVtb3ZlRGF0YWJhc2UgZGJSb2xsYmFjayBkYlNldENvbm5lY3RPcHRpb25zIGRiU2V0RGF0YWJhc2VOYW1lIGRiU2V0SG9zdE5hbWUgZGJTZXROdW1lcmljYWxQcmVjUG9saWN5ICdcbiAgICAgICAgICAgICAgKyAnZGJTZXRQb3J0IGRiU2V0VXNlck5hbWUgZGJUcmFuc2FjdGlvbiBEZWxldGVGaWxlIGRlbGlmIGRlbHJvd3MgZGVuc2VUb1NwIGRlbnNlVG9TcFJFIGRlblRvWmVybyBkZXNpZ24gZGV0IGRldGwgJ1xuICAgICAgICAgICAgICArICdkZmZ0IGRmZnRpIGRpYWcgZGlhZ3J2IGRpZ2FtbWEgZG9zd2luIERPU1dpbkNsb3NlYWxsIERPU1dpbk9wZW4gZG90ZmVxIGRvdGZlcW10IGRvdGZnZSBkb3RmZ2VtdCBkb3RmZ3QgZG90Zmd0bXQgJ1xuICAgICAgICAgICAgICArICdkb3RmbGUgZG90ZmxlbXQgZG90Zmx0IGRvdGZsdG10IGRvdGZuZSBkb3RmbmVtdCBkcmF3IGRyb3AgZHNDcmVhdGUgZHN0YXQgZHN0YXRtdCBkc3RhdG10Q29udHJvbENyZWF0ZSBkdGRhdGUgZHRkYXkgJ1xuICAgICAgICAgICAgICArICdkdHRpbWUgZHR0b2R0diBkdHRvc3RyIGR0dG91dGMgZHR2bm9ybWFsIGR0dnRvZHQgZHR2dG91dGMgZHVtbXkgZHVtbXliciBkdW1teWRuIGVpZyBlaWdoIGVpZ2h2IGVpZ3YgZWxhcHNlZFRyYWRpbmdEYXlzICdcbiAgICAgICAgICAgICAgKyAnZW5kd2luZCBlbnZnZXQgZW9mIGVxU29sdmUgZXFTb2x2ZW10IGVxU29sdmVtdENvbnRyb2xDcmVhdGUgZXFTb2x2ZW10T3V0Q3JlYXRlIGVxU29sdmVzZXQgZXJmIGVyZmMgZXJmY2NwbHggZXJmY3BseCBlcnJvciAnXG4gICAgICAgICAgICAgICsgJ2V0ZGF5cyBldGhzZWMgZXRzdHIgRXVyb3BlYW5CaW5vbUNhbGwgRXVyb3BlYW5CaW5vbUNhbGxfR3JlZWtzIEV1cm9wZWFuQmlub21DYWxsX0ltcFZvbCBFdXJvcGVhbkJpbm9tUHV0ICdcbiAgICAgICAgICAgICAgKyAnRXVyb3BlYW5CaW5vbVB1dF9HcmVla3MgRXVyb3BlYW5CaW5vbVB1dF9JbXBWb2wgRXVyb3BlYW5CU0NhbGwgRXVyb3BlYW5CU0NhbGxfR3JlZWtzIEV1cm9wZWFuQlNDYWxsX0ltcFZvbCAnXG4gICAgICAgICAgICAgICsgJ0V1cm9wZWFuQlNQdXQgRXVyb3BlYW5CU1B1dF9HcmVla3MgRXVyb3BlYW5CU1B1dF9JbXBWb2wgZXhjdHNtcGwgZXhlYyBleGVjYmcgZXhwIGV4dGVybiBleWUgZmNoZWNrZXJyIGZjbGVhcmVyciBmZXEgJ1xuICAgICAgICAgICAgICArICdmZXFtdCBmZmx1c2ggZmZ0IGZmdGkgZmZ0bSBmZnRtaSBmZnRuIGZnZSBmZ2VtdCBmZ2V0cyBmZ2V0c2EgZmdldHNhdCBmZ2V0c3QgZmd0IGZndG10IGZpbGVpbmZvIGZpbGVzYSBmbGUgZmxlbXQgJ1xuICAgICAgICAgICAgICArICdmbG9vciBmbHQgZmx0bXQgZm1vZCBmbmUgZm5lbXQgZm9udHMgZm9wZW4gZm9ybWF0Y3YgZm9ybWF0bnYgZnB1dHMgZnB1dHN0IGZzZWVrIGZzdHJlcnJvciBmdGVsbCBmdG9jdiBmdG9zIGZ0b3N0ckMgJ1xuICAgICAgICAgICAgICArICdnYW1tYSBnYW1tYWNwbHggZ2FtbWFpaSBnYXVzc2V0IGdkYUFwcGVuZCBnZGFDcmVhdGUgZ2RhRFN0YXQgZ2RhRFN0YXRNYXQgZ2RhR2V0SW5kZXggZ2RhR2V0TmFtZSBnZGFHZXROYW1lcyBnZGFHZXRPcmRlcnMgJ1xuICAgICAgICAgICAgICArICdnZGFHZXRUeXBlIGdkYUdldFR5cGVzIGdkYUdldFZhckluZm8gZ2RhSXNDcGx4IGdkYUxvYWQgZ2RhUGFjayBnZGFSZWFkIGdkYVJlYWRCeUluZGV4IGdkYVJlYWRTb21lIGdkYVJlYWRTcGFyc2UgJ1xuICAgICAgICAgICAgICArICdnZGFSZWFkU3RydWN0IGdkYVJlcG9ydFZhckluZm8gZ2RhU2F2ZSBnZGFVcGRhdGUgZ2RhVXBkYXRlQW5kUGFjayBnZGFWYXJzIGdkYVdyaXRlIGdkYVdyaXRlMzIgZ2RhV3JpdGVTb21lIGdldGFycmF5ICdcbiAgICAgICAgICAgICAgKyAnZ2V0ZGltcyBnZXRmIGdldEdBVVNTaG9tZSBnZXRtYXRyaXggZ2V0bWF0cml4NEQgZ2V0bmFtZSBnZXRuYW1lZiBnZXROZXh0VHJhZGluZ0RheSBnZXROZXh0V2Vla0RheSBnZXRuciBnZXRvcmRlcnMgJ1xuICAgICAgICAgICAgICArICdnZXRwYXRoIGdldFByZXZpb3VzVHJhZGluZ0RheSBnZXRQcmV2aW91c1dlZWtEYXkgZ2V0Um93IGdldHNjYWxhcjNEIGdldHNjYWxhcjREIGdldFRyUm93IGdldHdpbmQgZ2xtIGdyYWRjcGx4IGdyYWRNVCAnXG4gICAgICAgICAgICAgICsgJ2dyYWRNVG0gZ3JhZE1UVCBncmFkTVRUbSBncmFkcCBncmFwaHBydCBncmFwaHNldCBoYXNpbWFnIGhlYWRlciBoZWFkZXJtdCBoZXNzIGhlc3NNVCBoZXNzTVRnIGhlc3NNVGd3IGhlc3NNVG0gJ1xuICAgICAgICAgICAgICArICdoZXNzTVRtdyBoZXNzTVRUIGhlc3NNVFRnIGhlc3NNVFRndyBoZXNzTVRUbSBoZXNzTVR3IGhlc3NwIGhpc3QgaGlzdGYgaGlzdHAgaHNlYyBpbWFnIGluZGN2IGluZGV4Y2F0IGluZGljZXMgaW5kaWNlczIgJ1xuICAgICAgICAgICAgICArICdpbmRpY2VzZiBpbmRpY2VzZm4gaW5kbnYgaW5kc2F2IGludGVncmF0ZTFkIGludGVncmF0ZUNvbnRyb2xDcmVhdGUgaW50Z3JhdDIgaW50Z3JhdDMgaW50aHAxIGludGhwMiBpbnRocDMgaW50aHA0ICdcbiAgICAgICAgICAgICAgKyAnaW50aHBDb250cm9sQ3JlYXRlIGludHF1YWQxIGludHF1YWQyIGludHF1YWQzIGludHJsZWF2IGludHJsZWF2c2EgaW50cnNlY3QgaW50c2ltcCBpbnYgaW52cGQgaW52c3dwIGlzY3BseCBpc2NwbHhmICdcbiAgICAgICAgICAgICAgKyAnaXNkZW4gaXNpbmZuYW5taXNzIGlzbWlzcyBrZXkga2V5YXYga2V5dyBsYWcgbGFnMSBsYWduIGxhcEVpZ2hiIGxhcEVpZ2hpIGxhcEVpZ2h2YiBsYXBFaWdodmkgbGFwZ0VpZyBsYXBnRWlnaCBsYXBnRWlnaHYgJ1xuICAgICAgICAgICAgICArICdsYXBnRWlndiBsYXBnU2NodXIgbGFwZ1N2ZGNzdCBsYXBnU3ZkcyBsYXBnU3Zkc3QgbGFwU3ZkY3VzdiBsYXBTdmRzIGxhcFN2ZHVzdiBsZGxwIGxkbHNvbCBsaW5Tb2x2ZSBsaXN0d2lzZSBsbiBsbmNkZmJ2biAnXG4gICAgICAgICAgICAgICsgJ2xuY2RmYnZuMiBsbmNkZm12biBsbmNkZm4gbG5jZGZuMiBsbmNkZm5jIGxuZmFjdCBsbmdhbW1hY3BseCBsbnBkZm12biBsbnBkZm12dCBsbnBkZm4gbG5wZGZ0IGxvYWRkIGxvYWRzdHJ1Y3QgbG9hZHdpbmQgJ1xuICAgICAgICAgICAgICArICdsb2VzcyBsb2Vzc210IGxvZXNzbXRDb250cm9sQ3JlYXRlIGxvZyBsb2dsb2cgbG9neCBsb2d5IGxvd2VyIGxvd21hdCBsb3dtYXQxIGx0cmlzb2wgbHUgbHVzb2wgbWFjaEVwc2lsb24gbWFrZSBtYWtldmFycyAnXG4gICAgICAgICAgICAgICsgJ21ha2V3aW5kIG1hcmdpbiBtYXRhbGxvYyBtYXRpbml0IG1hdHRvYXJyYXkgbWF4Ynl0ZXMgbWF4YyBtYXhpbmRjIG1heHYgbWF4dmVjIG1iZXNzZWxlaSBtYmVzc2VsZWkwIG1iZXNzZWxlaTEgbWJlc3NlbGkgJ1xuICAgICAgICAgICAgICArICdtYmVzc2VsaTAgbWJlc3NlbGkxIG1lYW5jIG1lZGlhbiBtZXJnZWJ5IG1lcmdldmFyIG1pbmMgbWluaW5kYyBtaW52IG1pc3MgbWlzc2V4IG1pc3NydiBtb21lbnQgbW9tZW50ZCBtb3ZpbmdhdmUgJ1xuICAgICAgICAgICAgICArICdtb3ZpbmdhdmVFeHB3Z3QgbW92aW5nYXZlV2d0IG5leHRpbmRleCBuZXh0biBuZXh0bmV2biBuZXh0d2luZCBudG9zIG51bGwgbnVsbDEgbnVtQ29tYmluYXRpb25zIG9scyBvbHNtdCBvbHNtdENvbnRyb2xDcmVhdGUgJ1xuICAgICAgICAgICAgICArICdvbHNxciBvbHNxcjIgb2xzcXJtdCBvbmVzIG9wdG4gb3B0bmV2biBvcnRoIG91dHR5cCBwYWNmIHBhY2tlZFRvU3AgcGFja3IgcGFyc2UgcGF1c2UgcGRmQ2F1Y2h5IHBkZkNoaSBwZGZFeHAgcGRmR2VuUGFyZXRvICdcbiAgICAgICAgICAgICAgKyAncGRmSHlwZXJHZW8gcGRmTGFwbGFjZSBwZGZMb2dpc3RpYyBwZGZuIHBkZlBvaXNzb24gcGRmUmF5bGVpZ2ggcGRmV2VpYnVsbCBwaSBwaW52IHBpbnZtdCBwbG90QWRkQXJyb3cgcGxvdEFkZEJhciBwbG90QWRkQm94ICdcbiAgICAgICAgICAgICAgKyAncGxvdEFkZEhpc3QgcGxvdEFkZEhpc3RGIHBsb3RBZGRIaXN0UCBwbG90QWRkUG9sYXIgcGxvdEFkZFNjYXR0ZXIgcGxvdEFkZFNoYXBlIHBsb3RBZGRUZXh0Ym94IHBsb3RBZGRUUyBwbG90QWRkWFkgcGxvdEFyZWEgJ1xuICAgICAgICAgICAgICArICdwbG90QmFyIHBsb3RCb3ggcGxvdENsZWFyTGF5b3V0IHBsb3RDb250b3VyIHBsb3RDdXN0b21MYXlvdXQgcGxvdEdldERlZmF1bHRzIHBsb3RIaXN0IHBsb3RIaXN0RiBwbG90SGlzdFAgcGxvdExheW91dCAnXG4gICAgICAgICAgICAgICsgJ3Bsb3RMb2dMb2cgcGxvdExvZ1ggcGxvdExvZ1kgcGxvdE9wZW5XaW5kb3cgcGxvdFBvbGFyIHBsb3RTYXZlIHBsb3RTY2F0dGVyIHBsb3RTZXRBeGVzUGVuIHBsb3RTZXRCYXIgcGxvdFNldEJhckZpbGwgJ1xuICAgICAgICAgICAgICArICdwbG90U2V0QmFyU3RhY2tlZCBwbG90U2V0QmtkQ29sb3IgcGxvdFNldEZpbGwgcGxvdFNldEdyaWQgcGxvdFNldExlZ2VuZCBwbG90U2V0TGluZUNvbG9yIHBsb3RTZXRMaW5lU3R5bGUgcGxvdFNldExpbmVTeW1ib2wgJ1xuICAgICAgICAgICAgICArICdwbG90U2V0TGluZVRoaWNrbmVzcyBwbG90U2V0TmV3V2luZG93IHBsb3RTZXRUaXRsZSBwbG90U2V0V2hpY2hZQXhpcyBwbG90U2V0WEF4aXNTaG93IHBsb3RTZXRYTGFiZWwgcGxvdFNldFhSYW5nZSAnXG4gICAgICAgICAgICAgICsgJ3Bsb3RTZXRYVGljSW50ZXJ2YWwgcGxvdFNldFhUaWNMYWJlbCBwbG90U2V0WUF4aXNTaG93IHBsb3RTZXRZTGFiZWwgcGxvdFNldFlSYW5nZSBwbG90U2V0WkF4aXNTaG93IHBsb3RTZXRaTGFiZWwgJ1xuICAgICAgICAgICAgICArICdwbG90U3VyZmFjZSBwbG90VFMgcGxvdFhZIHBvbGFyIHBvbHljaGFyIHBvbHlldmFsIHBvbHlnYW1tYSBwb2x5aW50IHBvbHltYWtlIHBvbHltYXQgcG9seW1yb290IHBvbHltdWx0IHBvbHlyb290ICdcbiAgICAgICAgICAgICAgKyAncHFnd2luIHByZXZpb3VzaW5kZXggcHJpbmNvbXAgcHJpbnRmbSBwcmludGZtdCBwcm9kYyBwc2kgcHV0YXJyYXkgcHV0ZiBwdXR2YWxzIHB2Q3JlYXRlIHB2R2V0SW5kZXggcHZHZXRQYXJOYW1lcyAnXG4gICAgICAgICAgICAgICsgJ3B2R2V0UGFyVmVjdG9yIHB2TGVuZ3RoIHB2TGlzdCBwdlBhY2sgcHZQYWNraSBwdlBhY2ttIHB2UGFja21pIHB2UGFja3MgcHZQYWNrc2kgcHZQYWNrc20gcHZQYWNrc21pIHB2UHV0UGFyVmVjdG9yICdcbiAgICAgICAgICAgICAgKyAncHZUZXN0IHB2VW5wYWNrIFFOZXd0b24gUU5ld3Rvbm10IFFOZXd0b25tdENvbnRyb2xDcmVhdGUgUU5ld3Rvbm10T3V0Q3JlYXRlIFFOZXd0b25TZXQgUVByb2cgUVByb2dtdCBRUHJvZ210SW5DcmVhdGUgJ1xuICAgICAgICAgICAgICArICdxcXIgcXFyZSBxcXJlcCBxciBxcmUgcXJlcCBxcnNvbCBxcnRzb2wgcXR5ciBxdHlyZSBxdHlyZXAgcXVhbnRpbGUgcXVhbnRpbGVkIHF5ciBxeXJlIHF5cmVwIHF6IHJhbmsgcmFua2luZHggcmVhZHIgJ1xuICAgICAgICAgICAgICArICdyZWFsIHJlY2xhc3NpZnkgcmVjbGFzc2lmeUN1dHMgcmVjb2RlIHJlY3NlcmFyIHJlY3NlcmNwIHJlY3NlcnJjIHJlcnVuIHJlc2NhbGUgcmVzaGFwZSByZXRzIHJldiByZmZ0IHJmZnRpIHJmZnRpcCByZmZ0biAnXG4gICAgICAgICAgICAgICsgJ3JmZnRucCByZmZ0cCBybmRCZXJub3VsbGkgcm5kQmV0YSBybmRCaW5vbWlhbCBybmRDYXVjaHkgcm5kQ2hpU3F1YXJlIHJuZENvbiBybmRDcmVhdGVTdGF0ZSBybmRFeHAgcm5kR2FtbWEgcm5kR2VvIHJuZEd1bWJlbCAnXG4gICAgICAgICAgICAgICsgJ3JuZEh5cGVyR2VvIHJuZGkgcm5kS01iZXRhIHJuZEtNZ2FtIHJuZEtNaSBybmRLTW4gcm5kS01uYiBybmRLTXAgcm5kS011IHJuZEtNdm0gcm5kTGFwbGFjZSBybmRMQ2JldGEgcm5kTENnYW0gcm5kTENpIHJuZExDbiAnXG4gICAgICAgICAgICAgICsgJ3JuZExDbmIgcm5kTENwIHJuZExDdSBybmRMQ3ZtIHJuZExvZ05vcm0gcm5kTVR1IHJuZE1WbiBybmRNVnQgcm5kbiBybmRuYiBybmROZWdCaW5vbWlhbCBybmRwIHJuZFBvaXNzb24gcm5kUmF5bGVpZ2ggJ1xuICAgICAgICAgICAgICArICdybmRTdGF0ZVNraXAgcm5kdSBybmR2bSBybmRXZWlidWxsIHJuZFdpc2hhcnQgcm90YXRlciByb3VuZCByb3dzIHJvd3NmIHJyZWYgc2FtcGxlRGF0YSBzYXRvc3RyQyBzYXZlZCBzYXZlU3RydWN0IHNhdmV3aW5kICdcbiAgICAgICAgICAgICAgKyAnc2NhbGUgc2NhbGUzZCBzY2FsZXJyIHNjYWxpbmZuYW5taXNzIHNjYWxtaXNzIHNjaHRvYyBzY2h1ciBzZWFyY2hzb3VyY2VwYXRoIHNlZWtyIHNlbGVjdCBzZWxpZiBzZXFhIHNlcW0gc2V0ZGlmIHNldGRpZnNhICdcbiAgICAgICAgICAgICAgKyAnc2V0dmFycyBzZXR2d3Jtb2RlIHNldHdpbmQgc2hlbGwgc2hpZnRyIHNpbiBzaW5nbGVpbmRleCBzaW5oIHNsZWVwIHNvbHBkIHNvcnRjIHNvcnRjYyBzb3J0ZCBzb3J0aGMgc29ydGhjYyBzb3J0aW5kICdcbiAgICAgICAgICAgICAgKyAnc29ydGluZGMgc29ydG1jIHNvcnRyIHNvcnRyYyBzcEJpY29uakdyYWRTb2wgc3BDaG9sIHNwQ29uakdyYWRTb2wgc3BDcmVhdGUgc3BEZW5zZVN1Ym1hdCBzcERpYWdSdk1hdCBzcEVpZ3Ygc3BFeWUgc3BMREwgJ1xuICAgICAgICAgICAgICArICdzcGxpbmUgc3BMVSBzcE51bU5aRSBzcE9uZXMgc3ByZWFkU2hlZXRSZWFkTSBzcHJlYWRTaGVldFJlYWRTQSBzcHJlYWRTaGVldFdyaXRlIHNwU2NhbGUgc3BTdWJtYXQgc3BUb0RlbnNlIHNwVHJURGVuc2UgJ1xuICAgICAgICAgICAgICArICdzcFRTY2FsYXIgc3BaZXJvcyBzcXBTb2x2ZSBzcXBTb2x2ZU1UIHNxcFNvbHZlTVRDb250cm9sQ3JlYXRlIHNxcFNvbHZlTVRsYWdyYW5nZUNyZWF0ZSBzcXBTb2x2ZU1Ub3V0Q3JlYXRlIHNxcFNvbHZlU2V0ICdcbiAgICAgICAgICAgICAgKyAnc3FydCBzdGF0ZW1lbnRzIHN0ZGMgc3Rkc2Mgc3RvY3Ygc3RvZiBzdHJjb21iaW5lIHN0cmluZHggc3RybGVuIHN0cnB1dCBzdHJyaW5keCBzdHJzZWN0IHN0cnNwbGl0IHN0cnNwbGl0UGFkIHN0cnRvZHQgJ1xuICAgICAgICAgICAgICArICdzdHJ0b2Ygc3RydG9mY3BseCBzdHJ0cmltbCBzdHJ0cmltciBzdHJ0cnVuYyBzdHJ0cnVuY2wgc3RydHJ1bmNwYWQgc3RydHJ1bmNyIHN1Ym1hdCBzdWJzY2F0IHN1YnN0dXRlIHN1YnZlYyBzdW1jIHN1bXIgJ1xuICAgICAgICAgICAgICArICdzdXJmYWNlIHN2ZCBzdmQxIHN2ZDIgc3ZkY3VzdiBzdmRzIHN2ZHVzdiBzeXNzdGF0ZSB0YWIgdGFuIHRhbmggdGVtcG5hbWUgJ1xuICAgICAgICAgICAgICArICd0aW1lIHRpbWVkdCB0aW1lc3RyIHRpbWV1dGMgdGl0bGUgdGtmMmVwcyB0a2YycHMgdG9jYXJ0IHRvZGF5ZHQgdG9lcGxpdHogdG9rZW4gdG9wb2xhciB0cmFwY2hrICdcbiAgICAgICAgICAgICAgKyAndHJpZ2FtbWEgdHJpbXIgdHJ1bmMgdHlwZSB0eXBlY3YgdHlwZWYgdW5pb24gdW5pb25zYSB1bmlxaW5keCB1bmlxaW5keHNhIHVuaXF1ZSB1bmlxdWVzYSB1cG1hdCB1cG1hdDEgdXBwZXIgdXRjdG9kdCAnXG4gICAgICAgICAgICAgICsgJ3V0Y3RvZHR2IHV0cmlzb2wgdmFscyB2YXJDb3ZNUyB2YXJDb3ZYUyB2YXJnZXQgdmFyZ2V0bCB2YXJtYWxsIHZhcm1hcmVzIHZhcnB1dCB2YXJwdXRsIHZhcnR5cGVmIHZjbSB2Y21zIHZjeCB2Y3hzICdcbiAgICAgICAgICAgICAgKyAndmVjIHZlY2ggdmVjciB2ZWN0b3IgdmdldCB2aWV3IHZpZXd4eXogdmxpc3Qgdm5hbWVjdiB2b2x1bWUgdnB1dCB2cmVhZCB2dHlwZWN2IHdhaXQgd2FpdGMgd2Fsa2luZGV4IHdoZXJlIHdpbmRvdyAnXG4gICAgICAgICAgICAgICsgJ3dyaXRlciB4bGFiZWwgeGxzR2V0U2hlZXRDb3VudCB4bHNHZXRTaGVldFNpemUgeGxzR2V0U2hlZXRUeXBlcyB4bHNNYWtlUmFuZ2UgeGxzUmVhZE0geGxzUmVhZFNBIHhsc1dyaXRlIHhsc1dyaXRlTSAnXG4gICAgICAgICAgICAgICsgJ3hsc1dyaXRlU0EgeHBuZCB4dGljcyB4eSB4eXogeWxhYmVsIHl0aWNzIHplcm9zIHpldGEgemxhYmVsIHp0aWNzIGNkZkVtcGlyaWNhbCBkb3QgaDVjcmVhdGUgaDVvcGVuIGg1cmVhZCBoNXJlYWRBdHRyaWJ1dGUgJ1xuICAgICAgICAgICAgICArICdoNXdyaXRlIGg1d3JpdGVBdHRyaWJ1dGUgbGRsIHBsb3RBZGRFcnJvckJhciBwbG90QWRkU3VyZmFjZSBwbG90Q0RGRW1waXJpY2FsIHBsb3RTZXRDb2xvcm1hcCBwbG90U2V0Q29udG91ckxhYmVscyAnXG4gICAgICAgICAgICAgICsgJ3Bsb3RTZXRMZWdlbmRGb250IHBsb3RTZXRUZXh0SW50ZXJwcmV0ZXIgcGxvdFNldFhUaWNDb3VudCBwbG90U2V0WVRpY0NvdW50IHBsb3RTZXRaTGV2ZWxzIHBvd2VybSBzdHJqb2luIHN5bHZlc3RlciAnXG4gICAgICAgICAgICAgICsgJ3N0cnRyaW0nLFxuICAgIGxpdGVyYWw6ICdEQl9BRlRFUl9MQVNUX1JPVyBEQl9BTExfVEFCTEVTIERCX0JBVENIX09QRVJBVElPTlMgREJfQkVGT1JFX0ZJUlNUX1JPVyBEQl9CTE9CIERCX0VWRU5UX05PVElGSUNBVElPTlMgJ1xuICAgICAgICAgICAgICsgJ0RCX0ZJTklTSF9RVUVSWSBEQl9ISUdIX1BSRUNJU0lPTiBEQl9MQVNUX0lOU0VSVF9JRCBEQl9MT1dfUFJFQ0lTSU9OX0RPVUJMRSBEQl9MT1dfUFJFQ0lTSU9OX0lOVDMyICdcbiAgICAgICAgICAgICArICdEQl9MT1dfUFJFQ0lTSU9OX0lOVDY0IERCX0xPV19QUkVDSVNJT05fTlVNQkVSUyBEQl9NVUxUSVBMRV9SRVNVTFRfU0VUUyBEQl9OQU1FRF9QTEFDRUhPTERFUlMgJ1xuICAgICAgICAgICAgICsgJ0RCX1BPU0lUSU9OQUxfUExBQ0VIT0xERVJTIERCX1BSRVBBUkVEX1FVRVJJRVMgREJfUVVFUllfU0laRSBEQl9TSU1QTEVfTE9DS0lORyBEQl9TWVNURU1fVEFCTEVTIERCX1RBQkxFUyAnXG4gICAgICAgICAgICAgKyAnREJfVFJBTlNBQ1RJT05TIERCX1VOSUNPREUgREJfVklFV1MgX19TVERJTiBfX1NURE9VVCBfX1NUREVSUiBfX0ZJTEVfRElSJ1xuICB9O1xuXG4gIGNvbnN0IEFUX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnQCcsICdAJyk7XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID1cbiAge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIycsXG4gICAgZW5kOiAnJCcsXG4gICAga2V5d29yZHM6IHsga2V5d29yZDogJ2RlZmluZSBkZWZpbmVjc3wxMCB1bmRlZiBpZmRlZiBpZm5kZWYgaWZsaWdodCBpZmRsbGNhbGwgaWZtYWMgaWZvczJ3aW4gaWZ1bml4IGVsc2UgZW5kaWYgbGluZXNvbiBsaW5lc29mZiBzcmNmaWxlIHNyY2xpbmUnIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5jbHVkZScsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogeyBrZXl3b3JkOiAnaW5jbHVkZScgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEFUX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBTVFJVQ1RfVFlQRSA9XG4gIHtcbiAgICBiZWdpbjogL1xcYnN0cnVjdFxccysvLFxuICAgIGVuZDogL1xccy8sXG4gICAga2V5d29yZHM6IFwic3RydWN0XCIsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInR5cGVcIixcbiAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIC8vIG9ubHkgZm9yIGRlZmluaXRpb25zXG4gIGNvbnN0IFBBUlNFX1BBUkFNUyA9IFtcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHsgLy8gZG90c1xuICAgICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgIGJlZ2luOiAvXFwuXFwuXFwuL1xuICAgICAgICB9LFxuICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgIEFUX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgU1RSVUNUX1RZUEVcbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVGID1cbiAge1xuICAgIGNsYXNzTmFtZTogXCJ0aXRsZVwiLFxuICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgREVGSU5JVElPTiA9IGZ1bmN0aW9uKGJlZ2luS2V5d29yZHMsIGVuZCwgaW5oZXJpdHMpIHtcbiAgICBjb25zdCBtb2RlID0gaGxqcy5pbmhlcml0KFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IFwiZnVuY3Rpb25cIixcbiAgICAgICAgYmVnaW5LZXl3b3JkczogYmVnaW5LZXl3b3JkcyxcbiAgICAgICAgZW5kOiBlbmQsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXS5jb25jYXQoUEFSU0VfUEFSQU1TKVxuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goRlVOQ1RJT05fREVGKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goaGxqcy5DX05VTUJFUl9NT0RFKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSk7XG4gICAgbW9kZS5jb250YWlucy5wdXNoKEFUX0NPTU1FTlRfTU9ERSk7XG4gICAgcmV0dXJuIG1vZGU7XG4gIH07XG5cbiAgY29uc3QgQlVJTFRfSU5fUkVGID1cbiAgeyAvLyB0aGVzZSBhcmUgZXhwbGljaXRseSBuYW1lZCBpbnRlcm5hbCBmdW5jdGlvbiBjYWxsc1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJ1xcXFxiKCcgKyBLRVlXT1JEUy5idWlsdF9pbi5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcpXFxcXGInXG4gIH07XG5cbiAgY29uc3QgU1RSSU5HX1JFRiA9XG4gIHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCInLFxuICAgIGVuZDogJ1wiJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9SRUYgPVxuICB7XG4gICAgLy8gY2xhc3NOYW1lOiBcImZuX3JlZlwiLFxuICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgYmVnaW5LZXl3b3JkczogS0VZV09SRFMua2V5d29yZCB9LFxuICAgICAgQlVJTFRfSU5fUkVGLFxuICAgICAgeyAvLyBhbWJpZ3VvdXNseSBuYW1lZCBmdW5jdGlvbiBjYWxscyBnZXQgYSByZWxldmFuY2Ugb2YgMFxuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9SRUZfUEFSQU1TID1cbiAge1xuICAgIC8vIGNsYXNzTmFtZTogXCJmbl9yZWZfcGFyYW1zXCIsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjogS0VZV09SRFMuYnVpbHRfaW4sXG4gICAgICBsaXRlcmFsOiBLRVlXT1JEUy5saXRlcmFsXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEFUX0NPTU1FTlRfTU9ERSxcbiAgICAgIEJVSUxUX0lOX1JFRixcbiAgICAgIEZVTkNUSU9OX1JFRixcbiAgICAgIFNUUklOR19SRUYsXG4gICAgICAnc2VsZidcbiAgICBdXG4gIH07XG5cbiAgRlVOQ1RJT05fUkVGLmNvbnRhaW5zLnB1c2goRlVOQ1RJT05fUkVGX1BBUkFNUyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnR0FVU1MnLFxuICAgIGFsaWFzZXM6IFsgJ2dzcycgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLCAvLyBsYW5ndWFnZSBpcyBjYXNlLWluc2Vuc2l0aXZlXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC8oXFx7WyUjXXxbJSNdXFx9fCA8LSApLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEFUX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNUUklOR19SRUYsXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogL1xcYmV4dGVybmFsIChtYXRyaXh8c3RyaW5nfGFycmF5fHNwYXJzZSBtYXRyaXh8c3RydWN0fHByb2N8a2V5d29yZHxmbikvXG4gICAgICB9LFxuICAgICAgREVGSU5JVElPTigncHJvYyBrZXl3b3JkJywgJzsnKSxcbiAgICAgIERFRklOSVRJT04oJ2ZuJywgJz0nKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2ZvciB0aHJlYWRmb3InLFxuICAgICAgICBlbmQ6IC87LyxcbiAgICAgICAgLy8gZW5kOiAvXFwoLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgQVRfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIEZVTkNUSU9OX1JFRl9QQVJBTVNcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gY3VzdG9tIG1ldGhvZCBndWFyZFxuICAgICAgICAvLyBleGNsdWRlcyBtZXRob2QgbmFtZXMgZnJvbSBrZXl3b3JkIHByb2Nlc3NpbmdcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXC4nICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFIH0sXG4gICAgICAgICAgeyBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzKj0nIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fUkVGLFxuICAgICAgU1RSVUNUX1RZUEVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2F1c3M7XG4iLCAiLypcbiBMYW5ndWFnZTogRy1jb2RlIChJU08gNjk4MylcbiBDb250cmlidXRvcnM6IEFkYW0gSm9zZXBoIENvb2sgPGFkYW0uam9zZXBoLmNvb2tAZ21haWwuY29tPlxuIERlc2NyaXB0aW9uOiBHLWNvZGUgc3ludGF4IGhpZ2hsaWdodGVyIGZvciBGYW51YyBhbmQgb3RoZXIgY29tbW9uIENOQyBtYWNoaW5lIHRvb2wgY29udHJvbHMuXG4gV2Vic2l0ZTogaHR0cHM6Ly93d3cuc2lzLnNlL2FwaS9kb2N1bWVudC9wcmV2aWV3LzkxMTk1Mi9cbiBDYXRlZ29yeTogaGFyZHdhcmVcbiAqL1xuXG5mdW5jdGlvbiBnY29kZShobGpzKSB7XG4gIGNvbnN0IEdDT0RFX0lERU5UX1JFID0gJ1tBLVpfXVtBLVowLTlfLl0qJztcbiAgY29uc3QgR0NPREVfQ0xPU0VfUkUgPSAnJSc7XG4gIGNvbnN0IEdDT0RFX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBHQ09ERV9JREVOVF9SRSxcbiAgICBrZXl3b3JkOiAnSUYgRE8gV0hJTEUgRU5EV0hJTEUgQ0FMTCBFTkRJRiBTVUIgRU5EU1VCIEdPVE8gUkVQRUFUIEVORFJFUEVBVCAnXG4gICAgICArICdFUSBMVCBHVCBORSBHRSBMRSBPUiBYT1InXG4gIH07XG4gIGNvbnN0IEdDT0RFX1NUQVJUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnKFtPXSkoWzAtOV0rKSdcbiAgfTtcbiAgY29uc3QgTlVNQkVSID0gaGxqcy5pbmhlcml0KGhsanMuQ19OVU1CRVJfTU9ERSwgeyBiZWdpbjogJyhbLStdPygoXFxcXC5cXFxcZCspfChcXFxcZCspKFxcXFwuXFxcXGQqKT8pKXwnICsgaGxqcy5DX05VTUJFUl9SRSB9KTtcbiAgY29uc3QgR0NPREVfQ09ERSA9IFtcbiAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoL1xcKC8sIC9cXCkvKSxcbiAgICBOVU1CRVIsXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgICBiZWdpbjogJyhbR10pKFswLTldK1xcXFwuP1swLTldPyknXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgIGJlZ2luOiAnKFtNXSkoWzAtOV0rXFxcXC4/WzAtOV0/KSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgYmVnaW46ICcoVkN8VlN8IyknLFxuICAgICAgZW5kOiAnKFxcXFxkKyknXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgIGJlZ2luOiAnKFZaT0ZYfFZaT0ZZfFZaT0ZaKSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgIGJlZ2luOiAnKEFUQU58QUJTfEFDT1N8QVNJTnxTSU58Q09TfEVYUHxGSVh8RlVQfFJPVU5EfExOfFRBTikoXFxcXFspJyxcbiAgICAgIGNvbnRhaW5zOiBbIE5VTUJFUiBdLFxuICAgICAgZW5kOiAnXFxcXF0nXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnTicsXG4gICAgICAgICAgZW5kOiAnXFxcXGQrJyxcbiAgICAgICAgICBpbGxlZ2FsOiAnXFxcXFcnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRy1jb2RlIChJU08gNjk4MyknLFxuICAgIGFsaWFzZXM6IFsgJ25jJyBdLFxuICAgIC8vIFNvbWUgaW1wbGVtZW50YXRpb25zIChDTkMgY29udHJvbHMpIG9mIEctY29kZSBhcmUgaW50ZXJvcGVyYWJsZSB3aXRoIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIGxldHRlcnMgc2VhbWxlc3NseS5cbiAgICAvLyBIb3dldmVyLCBtb3N0IHByZWZlciBhbGwgdXBwZXJjYXNlIGFuZCB1cHBlcmNhc2UgaXMgY3VzdG9tYXJ5LlxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IEdDT0RFX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogR0NPREVfQ0xPU0VfUkVcbiAgICAgIH0sXG4gICAgICBHQ09ERV9TVEFSVFxuICAgIF0uY29uY2F0KEdDT0RFX0NPREUpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2NvZGU7XG4iLCAiLypcbiBMYW5ndWFnZTogR2hlcmtpblxuIEF1dGhvcjogU2FtIFBpa2VzbGV5IChAcGlrZXNsZXkpIDxzYW0ucGlrZXNsZXlAdGhlb2RpLm9yZz5cbiBEZXNjcmlwdGlvbjogR2hlcmtpbiBpcyB0aGUgZm9ybWF0IGZvciBjdWN1bWJlciBzcGVjaWZpY2F0aW9ucy4gSXQgaXMgYSBkb21haW4gc3BlY2lmaWMgbGFuZ3VhZ2Ugd2hpY2ggaGVscHMgeW91IHRvIGRlc2NyaWJlIGJ1c2luZXNzIGJlaGF2aW9yIHdpdGhvdXQgdGhlIG5lZWQgdG8gZ28gaW50byBkZXRhaWwgb2YgaW1wbGVtZW50YXRpb24uXG4gV2Vic2l0ZTogaHR0cHM6Ly9jdWN1bWJlci5pby9kb2NzL2doZXJraW4vXG4gKi9cblxuZnVuY3Rpb24gZ2hlcmtpbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0doZXJraW4nLFxuICAgIGFsaWFzZXM6IFsgJ2ZlYXR1cmUnIF0sXG4gICAga2V5d29yZHM6ICdGZWF0dXJlIEJhY2tncm91bmQgQWJpbGl0eSBCdXNpbmVzc1xcIE5lZWQgU2NlbmFyaW8gU2NlbmFyaW9zIFNjZW5hcmlvXFwgT3V0bGluZSBTY2VuYXJpb1xcIFRlbXBsYXRlIEV4YW1wbGVzIEdpdmVuIEFuZCBUaGVuIEJ1dCBXaGVuJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ1xcXFwqJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdAW15AXFxcXHNdKydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXHwnLFxuICAgICAgICBlbmQ6ICdcXFxcfFxcXFx3KiQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJ1tefF0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICBlbmQ6ICc+J1xuICAgICAgfSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiJ1xuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2hlcmtpbjtcbiIsICIvKlxuTGFuZ3VhZ2U6IEdMU0xcbkRlc2NyaXB0aW9uOiBPcGVuR0wgU2hhZGluZyBMYW5ndWFnZVxuQXV0aG9yOiBTZXJnZXkgVGlraG9taXJvdiA8c2VyZ2V5QHRpa2hvbWlyb3YuaW8+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9PcGVuR0xfU2hhZGluZ19MYW5ndWFnZVxuQ2F0ZWdvcnk6IGdyYXBoaWNzXG4qL1xuXG5mdW5jdGlvbiBnbHNsKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnR0xTTCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIFN0YXRlbWVudHNcbiAgICAgICAgJ2JyZWFrIGNvbnRpbnVlIGRpc2NhcmQgZG8gZWxzZSBmb3IgaWYgcmV0dXJuIHdoaWxlIHN3aXRjaCBjYXNlIGRlZmF1bHQgJ1xuICAgICAgICAvLyBRdWFsaWZpZXJzXG4gICAgICAgICsgJ2F0dHJpYnV0ZSBiaW5kaW5nIGJ1ZmZlciBjY3cgY2VudHJvaWQgY2VudHJvaWQgdmFyeWluZyBjb2hlcmVudCBjb2x1bW5fbWFqb3IgY29uc3QgY3cgJ1xuICAgICAgICArICdkZXB0aF9hbnkgZGVwdGhfZ3JlYXRlciBkZXB0aF9sZXNzIGRlcHRoX3VuY2hhbmdlZCBlYXJseV9mcmFnbWVudF90ZXN0cyBlcXVhbF9zcGFjaW5nICdcbiAgICAgICAgKyAnZmxhdCBmcmFjdGlvbmFsX2V2ZW5fc3BhY2luZyBmcmFjdGlvbmFsX29kZF9zcGFjaW5nIGhpZ2hwIGluIGluZGV4IGlub3V0IGludmFyaWFudCAnXG4gICAgICAgICsgJ2ludm9jYXRpb25zIGlzb2xpbmVzIGxheW91dCBsaW5lX3N0cmlwIGxpbmVzIGxpbmVzX2FkamFjZW5jeSBsb2NhbF9zaXplX3ggbG9jYWxfc2l6ZV95ICdcbiAgICAgICAgKyAnbG9jYWxfc2l6ZV96IGxvY2F0aW9uIGxvd3AgbWF4X3ZlcnRpY2VzIG1lZGl1bXAgbm9wZXJzcGVjdGl2ZSBvZmZzZXQgb3JpZ2luX3VwcGVyX2xlZnQgJ1xuICAgICAgICArICdvdXQgcGFja2VkIHBhdGNoIHBpeGVsX2NlbnRlcl9pbnRlZ2VyIHBvaW50X21vZGUgcG9pbnRzIHByZWNpc2UgcHJlY2lzaW9uIHF1YWRzIHIxMWZfZzExZl9iMTBmICdcbiAgICAgICAgKyAncjE2IHIxNl9zbm9ybSByMTZmIHIxNmkgcjE2dWkgcjMyZiByMzJpIHIzMnVpIHI4IHI4X3Nub3JtIHI4aSByOHVpIHJlYWRvbmx5IHJlc3RyaWN0ICdcbiAgICAgICAgKyAncmcxNiByZzE2X3Nub3JtIHJnMTZmIHJnMTZpIHJnMTZ1aSByZzMyZiByZzMyaSByZzMydWkgcmc4IHJnOF9zbm9ybSByZzhpIHJnOHVpIHJnYjEwX2EyICdcbiAgICAgICAgKyAncmdiMTBfYTJ1aSByZ2JhMTYgcmdiYTE2X3Nub3JtIHJnYmExNmYgcmdiYTE2aSByZ2JhMTZ1aSByZ2JhMzJmIHJnYmEzMmkgcmdiYTMydWkgcmdiYTggJ1xuICAgICAgICArICdyZ2JhOF9zbm9ybSByZ2JhOGkgcmdiYTh1aSByb3dfbWFqb3Igc2FtcGxlIHNoYXJlZCBzbW9vdGggc3RkMTQwIHN0ZDQzMCBzdHJlYW0gdHJpYW5nbGVfc3RyaXAgJ1xuICAgICAgICArICd0cmlhbmdsZXMgdHJpYW5nbGVzX2FkamFjZW5jeSB1bmlmb3JtIHZhcnlpbmcgdmVydGljZXMgdm9sYXRpbGUgd3JpdGVvbmx5JyxcbiAgICAgIHR5cGU6XG4gICAgICAgICdhdG9taWNfdWludCBib29sIGJ2ZWMyIGJ2ZWMzIGJ2ZWM0IGRtYXQyIGRtYXQyeDIgZG1hdDJ4MyBkbWF0Mng0IGRtYXQzIGRtYXQzeDIgZG1hdDN4MyAnXG4gICAgICAgICsgJ2RtYXQzeDQgZG1hdDQgZG1hdDR4MiBkbWF0NHgzIGRtYXQ0eDQgZG91YmxlIGR2ZWMyIGR2ZWMzIGR2ZWM0IGZsb2F0IGlpbWFnZTFEIGlpbWFnZTFEQXJyYXkgJ1xuICAgICAgICArICdpaW1hZ2UyRCBpaW1hZ2UyREFycmF5IGlpbWFnZTJETVMgaWltYWdlMkRNU0FycmF5IGlpbWFnZTJEUmVjdCBpaW1hZ2UzRCBpaW1hZ2VCdWZmZXIgJ1xuICAgICAgICArICdpaW1hZ2VDdWJlIGlpbWFnZUN1YmVBcnJheSBpbWFnZTFEIGltYWdlMURBcnJheSBpbWFnZTJEIGltYWdlMkRBcnJheSBpbWFnZTJETVMgaW1hZ2UyRE1TQXJyYXkgJ1xuICAgICAgICArICdpbWFnZTJEUmVjdCBpbWFnZTNEIGltYWdlQnVmZmVyIGltYWdlQ3ViZSBpbWFnZUN1YmVBcnJheSBpbnQgaXNhbXBsZXIxRCBpc2FtcGxlcjFEQXJyYXkgJ1xuICAgICAgICArICdpc2FtcGxlcjJEIGlzYW1wbGVyMkRBcnJheSBpc2FtcGxlcjJETVMgaXNhbXBsZXIyRE1TQXJyYXkgaXNhbXBsZXIyRFJlY3QgaXNhbXBsZXIzRCAnXG4gICAgICAgICsgJ2lzYW1wbGVyQnVmZmVyIGlzYW1wbGVyQ3ViZSBpc2FtcGxlckN1YmVBcnJheSBpdmVjMiBpdmVjMyBpdmVjNCBtYXQyIG1hdDJ4MiBtYXQyeDMgJ1xuICAgICAgICArICdtYXQyeDQgbWF0MyBtYXQzeDIgbWF0M3gzIG1hdDN4NCBtYXQ0IG1hdDR4MiBtYXQ0eDMgbWF0NHg0IHNhbXBsZXIxRCBzYW1wbGVyMURBcnJheSAnXG4gICAgICAgICsgJ3NhbXBsZXIxREFycmF5U2hhZG93IHNhbXBsZXIxRFNoYWRvdyBzYW1wbGVyMkQgc2FtcGxlcjJEQXJyYXkgc2FtcGxlcjJEQXJyYXlTaGFkb3cgJ1xuICAgICAgICArICdzYW1wbGVyMkRNUyBzYW1wbGVyMkRNU0FycmF5IHNhbXBsZXIyRFJlY3Qgc2FtcGxlcjJEUmVjdFNoYWRvdyBzYW1wbGVyMkRTaGFkb3cgc2FtcGxlcjNEICdcbiAgICAgICAgKyAnc2FtcGxlckJ1ZmZlciBzYW1wbGVyQ3ViZSBzYW1wbGVyQ3ViZUFycmF5IHNhbXBsZXJDdWJlQXJyYXlTaGFkb3cgc2FtcGxlckN1YmVTaGFkb3cgJ1xuICAgICAgICArICdpbWFnZTFEIHVpbWFnZTFEQXJyYXkgdWltYWdlMkQgdWltYWdlMkRBcnJheSB1aW1hZ2UyRE1TIHVpbWFnZTJETVNBcnJheSB1aW1hZ2UyRFJlY3QgJ1xuICAgICAgICArICd1aW1hZ2UzRCB1aW1hZ2VCdWZmZXIgdWltYWdlQ3ViZSB1aW1hZ2VDdWJlQXJyYXkgdWludCB1c2FtcGxlcjFEIHVzYW1wbGVyMURBcnJheSAnXG4gICAgICAgICsgJ3VzYW1wbGVyMkQgdXNhbXBsZXIyREFycmF5IHVzYW1wbGVyMkRNUyB1c2FtcGxlcjJETVNBcnJheSB1c2FtcGxlcjJEUmVjdCB1c2FtcGxlcjNEICdcbiAgICAgICAgKyAnc2FtcGxlckJ1ZmZlciB1c2FtcGxlckN1YmUgdXNhbXBsZXJDdWJlQXJyYXkgdXZlYzIgdXZlYzMgdXZlYzQgdmVjMiB2ZWMzIHZlYzQgdm9pZCcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gQ29uc3RhbnRzXG4gICAgICAgICdnbF9NYXhBdG9taWNDb3VudGVyQmluZGluZ3MgZ2xfTWF4QXRvbWljQ291bnRlckJ1ZmZlclNpemUgZ2xfTWF4Q2xpcERpc3RhbmNlcyBnbF9NYXhDbGlwUGxhbmVzICdcbiAgICAgICAgKyAnZ2xfTWF4Q29tYmluZWRBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhDb21iaW5lZEF0b21pY0NvdW50ZXJzIGdsX01heENvbWJpbmVkSW1hZ2VVbmlmb3JtcyAnXG4gICAgICAgICsgJ2dsX01heENvbWJpbmVkSW1hZ2VVbml0c0FuZEZyYWdtZW50T3V0cHV0cyBnbF9NYXhDb21iaW5lZFRleHR1cmVJbWFnZVVuaXRzIGdsX01heENvbXB1dGVBdG9taWNDb3VudGVyQnVmZmVycyAnXG4gICAgICAgICsgJ2dsX01heENvbXB1dGVBdG9taWNDb3VudGVycyBnbF9NYXhDb21wdXRlSW1hZ2VVbmlmb3JtcyBnbF9NYXhDb21wdXRlVGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhDb21wdXRlVW5pZm9ybUNvbXBvbmVudHMgZ2xfTWF4Q29tcHV0ZVdvcmtHcm91cENvdW50IGdsX01heENvbXB1dGVXb3JrR3JvdXBTaXplICdcbiAgICAgICAgKyAnZ2xfTWF4RHJhd0J1ZmZlcnMgZ2xfTWF4RnJhZ21lbnRBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhGcmFnbWVudEF0b21pY0NvdW50ZXJzICdcbiAgICAgICAgKyAnZ2xfTWF4RnJhZ21lbnRJbWFnZVVuaWZvcm1zIGdsX01heEZyYWdtZW50SW5wdXRDb21wb25lbnRzIGdsX01heEZyYWdtZW50SW5wdXRWZWN0b3JzICdcbiAgICAgICAgKyAnZ2xfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50cyBnbF9NYXhGcmFnbWVudFVuaWZvcm1WZWN0b3JzIGdsX01heEdlb21ldHJ5QXRvbWljQ291bnRlckJ1ZmZlcnMgJ1xuICAgICAgICArICdnbF9NYXhHZW9tZXRyeUF0b21pY0NvdW50ZXJzIGdsX01heEdlb21ldHJ5SW1hZ2VVbmlmb3JtcyBnbF9NYXhHZW9tZXRyeUlucHV0Q29tcG9uZW50cyAnXG4gICAgICAgICsgJ2dsX01heEdlb21ldHJ5T3V0cHV0Q29tcG9uZW50cyBnbF9NYXhHZW9tZXRyeU91dHB1dFZlcnRpY2VzIGdsX01heEdlb21ldHJ5VGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhHZW9tZXRyeVRvdGFsT3V0cHV0Q29tcG9uZW50cyBnbF9NYXhHZW9tZXRyeVVuaWZvcm1Db21wb25lbnRzIGdsX01heEdlb21ldHJ5VmFyeWluZ0NvbXBvbmVudHMgJ1xuICAgICAgICArICdnbF9NYXhJbWFnZVNhbXBsZXMgZ2xfTWF4SW1hZ2VVbml0cyBnbF9NYXhMaWdodHMgZ2xfTWF4UGF0Y2hWZXJ0aWNlcyBnbF9NYXhQcm9ncmFtVGV4ZWxPZmZzZXQgJ1xuICAgICAgICArICdnbF9NYXhUZXNzQ29udHJvbEF0b21pY0NvdW50ZXJCdWZmZXJzIGdsX01heFRlc3NDb250cm9sQXRvbWljQ291bnRlcnMgZ2xfTWF4VGVzc0NvbnRyb2xJbWFnZVVuaWZvcm1zICdcbiAgICAgICAgKyAnZ2xfTWF4VGVzc0NvbnRyb2xJbnB1dENvbXBvbmVudHMgZ2xfTWF4VGVzc0NvbnRyb2xPdXRwdXRDb21wb25lbnRzIGdsX01heFRlc3NDb250cm9sVGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhUZXNzQ29udHJvbFRvdGFsT3V0cHV0Q29tcG9uZW50cyBnbF9NYXhUZXNzQ29udHJvbFVuaWZvcm1Db21wb25lbnRzICdcbiAgICAgICAgKyAnZ2xfTWF4VGVzc0V2YWx1YXRpb25BdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhUZXNzRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzICdcbiAgICAgICAgKyAnZ2xfTWF4VGVzc0V2YWx1YXRpb25JbWFnZVVuaWZvcm1zIGdsX01heFRlc3NFdmFsdWF0aW9uSW5wdXRDb21wb25lbnRzIGdsX01heFRlc3NFdmFsdWF0aW9uT3V0cHV0Q29tcG9uZW50cyAnXG4gICAgICAgICsgJ2dsX01heFRlc3NFdmFsdWF0aW9uVGV4dHVyZUltYWdlVW5pdHMgZ2xfTWF4VGVzc0V2YWx1YXRpb25Vbmlmb3JtQ29tcG9uZW50cyAnXG4gICAgICAgICsgJ2dsX01heFRlc3NHZW5MZXZlbCBnbF9NYXhUZXNzUGF0Y2hDb21wb25lbnRzIGdsX01heFRleHR1cmVDb29yZHMgZ2xfTWF4VGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhUZXh0dXJlVW5pdHMgZ2xfTWF4VmFyeWluZ0NvbXBvbmVudHMgZ2xfTWF4VmFyeWluZ0Zsb2F0cyBnbF9NYXhWYXJ5aW5nVmVjdG9ycyAnXG4gICAgICAgICsgJ2dsX01heFZlcnRleEF0b21pY0NvdW50ZXJCdWZmZXJzIGdsX01heFZlcnRleEF0b21pY0NvdW50ZXJzIGdsX01heFZlcnRleEF0dHJpYnMgZ2xfTWF4VmVydGV4SW1hZ2VVbmlmb3JtcyAnXG4gICAgICAgICsgJ2dsX01heFZlcnRleE91dHB1dENvbXBvbmVudHMgZ2xfTWF4VmVydGV4T3V0cHV0VmVjdG9ycyBnbF9NYXhWZXJ0ZXhUZXh0dXJlSW1hZ2VVbml0cyAnXG4gICAgICAgICsgJ2dsX01heFZlcnRleFVuaWZvcm1Db21wb25lbnRzIGdsX01heFZlcnRleFVuaWZvcm1WZWN0b3JzIGdsX01heFZpZXdwb3J0cyBnbF9NaW5Qcm9ncmFtVGV4ZWxPZmZzZXQgJ1xuICAgICAgICAvLyBWYXJpYWJsZXNcbiAgICAgICAgKyAnZ2xfQmFja0NvbG9yIGdsX0JhY2tMaWdodE1vZGVsUHJvZHVjdCBnbF9CYWNrTGlnaHRQcm9kdWN0IGdsX0JhY2tNYXRlcmlhbCAnXG4gICAgICAgICsgJ2dsX0JhY2tTZWNvbmRhcnlDb2xvciBnbF9DbGlwRGlzdGFuY2UgZ2xfQ2xpcFBsYW5lIGdsX0NsaXBWZXJ0ZXggZ2xfQ29sb3IgJ1xuICAgICAgICArICdnbF9EZXB0aFJhbmdlIGdsX0V5ZVBsYW5lUSBnbF9FeWVQbGFuZVIgZ2xfRXllUGxhbmVTIGdsX0V5ZVBsYW5lVCBnbF9Gb2cgZ2xfRm9nQ29vcmQgJ1xuICAgICAgICArICdnbF9Gb2dGcmFnQ29vcmQgZ2xfRnJhZ0NvbG9yIGdsX0ZyYWdDb29yZCBnbF9GcmFnRGF0YSBnbF9GcmFnRGVwdGggZ2xfRnJvbnRDb2xvciAnXG4gICAgICAgICsgJ2dsX0Zyb250RmFjaW5nIGdsX0Zyb250TGlnaHRNb2RlbFByb2R1Y3QgZ2xfRnJvbnRMaWdodFByb2R1Y3QgZ2xfRnJvbnRNYXRlcmlhbCAnXG4gICAgICAgICsgJ2dsX0Zyb250U2Vjb25kYXJ5Q29sb3IgZ2xfR2xvYmFsSW52b2NhdGlvbklEIGdsX0luc3RhbmNlSUQgZ2xfSW52b2NhdGlvbklEIGdsX0xheWVyIGdsX0xpZ2h0TW9kZWwgJ1xuICAgICAgICArICdnbF9MaWdodFNvdXJjZSBnbF9Mb2NhbEludm9jYXRpb25JRCBnbF9Mb2NhbEludm9jYXRpb25JbmRleCBnbF9Nb2RlbFZpZXdNYXRyaXggJ1xuICAgICAgICArICdnbF9Nb2RlbFZpZXdNYXRyaXhJbnZlcnNlIGdsX01vZGVsVmlld01hdHJpeEludmVyc2VUcmFuc3Bvc2UgZ2xfTW9kZWxWaWV3TWF0cml4VHJhbnNwb3NlICdcbiAgICAgICAgKyAnZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeCBnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZSBnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSAnXG4gICAgICAgICsgJ2dsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UgZ2xfTXVsdGlUZXhDb29yZDAgZ2xfTXVsdGlUZXhDb29yZDEgZ2xfTXVsdGlUZXhDb29yZDIgJ1xuICAgICAgICArICdnbF9NdWx0aVRleENvb3JkMyBnbF9NdWx0aVRleENvb3JkNCBnbF9NdWx0aVRleENvb3JkNSBnbF9NdWx0aVRleENvb3JkNiBnbF9NdWx0aVRleENvb3JkNyAnXG4gICAgICAgICsgJ2dsX05vcm1hbCBnbF9Ob3JtYWxNYXRyaXggZ2xfTm9ybWFsU2NhbGUgZ2xfTnVtU2FtcGxlcyBnbF9OdW1Xb3JrR3JvdXBzIGdsX09iamVjdFBsYW5lUSAnXG4gICAgICAgICsgJ2dsX09iamVjdFBsYW5lUiBnbF9PYmplY3RQbGFuZVMgZ2xfT2JqZWN0UGxhbmVUIGdsX1BhdGNoVmVydGljZXNJbiBnbF9Qb2ludCBnbF9Qb2ludENvb3JkICdcbiAgICAgICAgKyAnZ2xfUG9pbnRTaXplIGdsX1Bvc2l0aW9uIGdsX1ByaW1pdGl2ZUlEIGdsX1ByaW1pdGl2ZUlESW4gZ2xfUHJvamVjdGlvbk1hdHJpeCBnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZSAnXG4gICAgICAgICsgJ2dsX1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlVHJhbnNwb3NlIGdsX1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UgZ2xfU2FtcGxlSUQgZ2xfU2FtcGxlTWFzayAnXG4gICAgICAgICsgJ2dsX1NhbXBsZU1hc2tJbiBnbF9TYW1wbGVQb3NpdGlvbiBnbF9TZWNvbmRhcnlDb2xvciBnbF9UZXNzQ29vcmQgZ2xfVGVzc0xldmVsSW5uZXIgZ2xfVGVzc0xldmVsT3V0ZXIgJ1xuICAgICAgICArICdnbF9UZXhDb29yZCBnbF9UZXh0dXJlRW52Q29sb3IgZ2xfVGV4dHVyZU1hdHJpeCBnbF9UZXh0dXJlTWF0cml4SW52ZXJzZSBnbF9UZXh0dXJlTWF0cml4SW52ZXJzZVRyYW5zcG9zZSAnXG4gICAgICAgICsgJ2dsX1RleHR1cmVNYXRyaXhUcmFuc3Bvc2UgZ2xfVmVydGV4IGdsX1ZlcnRleElEIGdsX1ZpZXdwb3J0SW5kZXggZ2xfV29ya0dyb3VwSUQgZ2xfV29ya0dyb3VwU2l6ZSBnbF9pbiBnbF9vdXQgJ1xuICAgICAgICAvLyBGdW5jdGlvbnNcbiAgICAgICAgKyAnRW1pdFN0cmVhbVZlcnRleCBFbWl0VmVydGV4IEVuZFByaW1pdGl2ZSBFbmRTdHJlYW1QcmltaXRpdmUgYWJzIGFjb3MgYWNvc2ggYWxsIGFueSBhc2luICdcbiAgICAgICAgKyAnYXNpbmggYXRhbiBhdGFuaCBhdG9taWNBZGQgYXRvbWljQW5kIGF0b21pY0NvbXBTd2FwIGF0b21pY0NvdW50ZXIgYXRvbWljQ291bnRlckRlY3JlbWVudCAnXG4gICAgICAgICsgJ2F0b21pY0NvdW50ZXJJbmNyZW1lbnQgYXRvbWljRXhjaGFuZ2UgYXRvbWljTWF4IGF0b21pY01pbiBhdG9taWNPciBhdG9taWNYb3IgYmFycmllciAnXG4gICAgICAgICsgJ2JpdENvdW50IGJpdGZpZWxkRXh0cmFjdCBiaXRmaWVsZEluc2VydCBiaXRmaWVsZFJldmVyc2UgY2VpbCBjbGFtcCBjb3MgY29zaCBjcm9zcyAnXG4gICAgICAgICsgJ2RGZHggZEZkeSBkZWdyZWVzIGRldGVybWluYW50IGRpc3RhbmNlIGRvdCBlcXVhbCBleHAgZXhwMiBmYWNlZm9yd2FyZCBmaW5kTFNCIGZpbmRNU0IgJ1xuICAgICAgICArICdmbG9hdEJpdHNUb0ludCBmbG9hdEJpdHNUb1VpbnQgZmxvb3IgZm1hIGZyYWN0IGZyZXhwIGZ0cmFuc2Zvcm0gZndpZHRoIGdyZWF0ZXJUaGFuICdcbiAgICAgICAgKyAnZ3JlYXRlclRoYW5FcXVhbCBncm91cE1lbW9yeUJhcnJpZXIgaW1hZ2VBdG9taWNBZGQgaW1hZ2VBdG9taWNBbmQgaW1hZ2VBdG9taWNDb21wU3dhcCAnXG4gICAgICAgICsgJ2ltYWdlQXRvbWljRXhjaGFuZ2UgaW1hZ2VBdG9taWNNYXggaW1hZ2VBdG9taWNNaW4gaW1hZ2VBdG9taWNPciBpbWFnZUF0b21pY1hvciBpbWFnZUxvYWQgJ1xuICAgICAgICArICdpbWFnZVNpemUgaW1hZ2VTdG9yZSBpbXVsRXh0ZW5kZWQgaW50Qml0c1RvRmxvYXQgaW50ZXJwb2xhdGVBdENlbnRyb2lkIGludGVycG9sYXRlQXRPZmZzZXQgJ1xuICAgICAgICArICdpbnRlcnBvbGF0ZUF0U2FtcGxlIGludmVyc2UgaW52ZXJzZXNxcnQgaXNpbmYgaXNuYW4gbGRleHAgbGVuZ3RoIGxlc3NUaGFuIGxlc3NUaGFuRXF1YWwgbG9nICdcbiAgICAgICAgKyAnbG9nMiBtYXRyaXhDb21wTXVsdCBtYXggbWVtb3J5QmFycmllciBtZW1vcnlCYXJyaWVyQXRvbWljQ291bnRlciBtZW1vcnlCYXJyaWVyQnVmZmVyICdcbiAgICAgICAgKyAnbWVtb3J5QmFycmllckltYWdlIG1lbW9yeUJhcnJpZXJTaGFyZWQgbWluIG1peCBtb2QgbW9kZiBub2lzZTEgbm9pc2UyIG5vaXNlMyBub2lzZTQgJ1xuICAgICAgICArICdub3JtYWxpemUgbm90IG5vdEVxdWFsIG91dGVyUHJvZHVjdCBwYWNrRG91YmxlMngzMiBwYWNrSGFsZjJ4MTYgcGFja1Nub3JtMngxNiBwYWNrU25vcm00eDggJ1xuICAgICAgICArICdwYWNrVW5vcm0yeDE2IHBhY2tVbm9ybTR4OCBwb3cgcmFkaWFucyByZWZsZWN0IHJlZnJhY3Qgcm91bmQgcm91bmRFdmVuIHNoYWRvdzFEIHNoYWRvdzFETG9kICdcbiAgICAgICAgKyAnc2hhZG93MURQcm9qIHNoYWRvdzFEUHJvakxvZCBzaGFkb3cyRCBzaGFkb3cyRExvZCBzaGFkb3cyRFByb2ogc2hhZG93MkRQcm9qTG9kIHNpZ24gc2luIHNpbmggJ1xuICAgICAgICArICdzbW9vdGhzdGVwIHNxcnQgc3RlcCB0YW4gdGFuaCB0ZXhlbEZldGNoIHRleGVsRmV0Y2hPZmZzZXQgdGV4dHVyZSB0ZXh0dXJlMUQgdGV4dHVyZTFETG9kICdcbiAgICAgICAgKyAndGV4dHVyZTFEUHJvaiB0ZXh0dXJlMURQcm9qTG9kIHRleHR1cmUyRCB0ZXh0dXJlMkRMb2QgdGV4dHVyZTJEUHJvaiB0ZXh0dXJlMkRQcm9qTG9kICdcbiAgICAgICAgKyAndGV4dHVyZTNEIHRleHR1cmUzRExvZCB0ZXh0dXJlM0RQcm9qIHRleHR1cmUzRFByb2pMb2QgdGV4dHVyZUN1YmUgdGV4dHVyZUN1YmVMb2QgJ1xuICAgICAgICArICd0ZXh0dXJlR2F0aGVyIHRleHR1cmVHYXRoZXJPZmZzZXQgdGV4dHVyZUdhdGhlck9mZnNldHMgdGV4dHVyZUdyYWQgdGV4dHVyZUdyYWRPZmZzZXQgJ1xuICAgICAgICArICd0ZXh0dXJlTG9kIHRleHR1cmVMb2RPZmZzZXQgdGV4dHVyZU9mZnNldCB0ZXh0dXJlUHJvaiB0ZXh0dXJlUHJvakdyYWQgdGV4dHVyZVByb2pHcmFkT2Zmc2V0ICdcbiAgICAgICAgKyAndGV4dHVyZVByb2pMb2QgdGV4dHVyZVByb2pMb2RPZmZzZXQgdGV4dHVyZVByb2pPZmZzZXQgdGV4dHVyZVF1ZXJ5TGV2ZWxzIHRleHR1cmVRdWVyeUxvZCAnXG4gICAgICAgICsgJ3RleHR1cmVTaXplIHRyYW5zcG9zZSB0cnVuYyB1YWRkQ2FycnkgdWludEJpdHNUb0Zsb2F0IHVtdWxFeHRlbmRlZCB1bnBhY2tEb3VibGUyeDMyICdcbiAgICAgICAgKyAndW5wYWNrSGFsZjJ4MTYgdW5wYWNrU25vcm0yeDE2IHVucGFja1Nub3JtNHg4IHVucGFja1Vub3JtMngxNiB1bnBhY2tVbm9ybTR4OCB1c3ViQm9ycm93JyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogJ1wiJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgIGVuZDogJyQnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdsc2w7XG4iLCAiLypcbkxhbmd1YWdlOiBHTUxcbkRlc2NyaXB0aW9uOiBHYW1lIE1ha2VyIExhbmd1YWdlIGZvciBHYW1lTWFrZXIgKHJldi4gMjAyMy4xKVxuV2Vic2l0ZTogaHR0cHM6Ly9tYW51YWwueW95b2dhbWVzLmNvbS9cbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbmZ1bmN0aW9uIGdtbChobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiI2VuZHJlZ2lvblwiLFxuICAgIFwiI21hY3JvXCIsXG4gICAgXCIjcmVnaW9uXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY29uc3RydWN0b3JcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcImRpdlwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXhpdFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwiZ2xvYmFsdmFyXCIsXG4gICAgXCJpZlwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJuZXdcIixcbiAgICBcIm5vdFwiLFxuICAgIFwib3JcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidW50aWxcIixcbiAgICBcInZhclwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcIndpdGhcIixcbiAgICBcInhvclwiXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhbGFybV9nZXRcIixcbiAgICBcImFsYXJtX3NldFwiLFxuICAgIFwiYW5nbGVfZGlmZmVyZW5jZVwiLFxuICAgIFwiYW5pbWN1cnZlX2NoYW5uZWxfZXZhbHVhdGVcIixcbiAgICBcImFuaW1jdXJ2ZV9jaGFubmVsX25ld1wiLFxuICAgIFwiYW5pbWN1cnZlX2NyZWF0ZVwiLFxuICAgIFwiYW5pbWN1cnZlX2Rlc3Ryb3lcIixcbiAgICBcImFuaW1jdXJ2ZV9leGlzdHNcIixcbiAgICBcImFuaW1jdXJ2ZV9nZXRcIixcbiAgICBcImFuaW1jdXJ2ZV9nZXRfY2hhbm5lbFwiLFxuICAgIFwiYW5pbWN1cnZlX2dldF9jaGFubmVsX2luZGV4XCIsXG4gICAgXCJhbmltY3VydmVfcG9pbnRfbmV3XCIsXG4gICAgXCJhbnNpX2NoYXJcIixcbiAgICBcImFwcGxpY2F0aW9uX2dldF9wb3NpdGlvblwiLFxuICAgIFwiYXBwbGljYXRpb25fc3VyZmFjZV9kcmF3X2VuYWJsZVwiLFxuICAgIFwiYXBwbGljYXRpb25fc3VyZmFjZV9lbmFibGVcIixcbiAgICBcImFwcGxpY2F0aW9uX3N1cmZhY2VfaXNfZW5hYmxlZFwiLFxuICAgIFwiYXJjY29zXCIsXG4gICAgXCJhcmNzaW5cIixcbiAgICBcImFyY3RhblwiLFxuICAgIFwiYXJjdGFuMlwiLFxuICAgIFwiYXJyYXlfYWxsXCIsXG4gICAgXCJhcnJheV9hbnlcIixcbiAgICBcImFycmF5X2NvbmNhdFwiLFxuICAgIFwiYXJyYXlfY29udGFpbnNcIixcbiAgICBcImFycmF5X2NvbnRhaW5zX2V4dFwiLFxuICAgIFwiYXJyYXlfY29weVwiLFxuICAgIFwiYXJyYXlfY29weV93aGlsZVwiLFxuICAgIFwiYXJyYXlfY3JlYXRlXCIsXG4gICAgXCJhcnJheV9jcmVhdGVfZXh0XCIsXG4gICAgXCJhcnJheV9kZWxldGVcIixcbiAgICBcImFycmF5X2VxdWFsc1wiLFxuICAgIFwiYXJyYXlfZmlsdGVyXCIsXG4gICAgXCJhcnJheV9maWx0ZXJfZXh0XCIsXG4gICAgXCJhcnJheV9maW5kX2luZGV4XCIsXG4gICAgXCJhcnJheV9maXJzdFwiLFxuICAgIFwiYXJyYXlfZm9yZWFjaFwiLFxuICAgIFwiYXJyYXlfZ2V0XCIsXG4gICAgXCJhcnJheV9nZXRfaW5kZXhcIixcbiAgICBcImFycmF5X2luc2VydFwiLFxuICAgIFwiYXJyYXlfaW50ZXJzZWN0aW9uXCIsXG4gICAgXCJhcnJheV9sYXN0XCIsXG4gICAgXCJhcnJheV9sZW5ndGhcIixcbiAgICBcImFycmF5X21hcFwiLFxuICAgIFwiYXJyYXlfbWFwX2V4dFwiLFxuICAgIFwiYXJyYXlfcG9wXCIsXG4gICAgXCJhcnJheV9wdXNoXCIsXG4gICAgXCJhcnJheV9yZWR1Y2VcIixcbiAgICBcImFycmF5X3Jlc2l6ZVwiLFxuICAgIFwiYXJyYXlfcmV2ZXJzZVwiLFxuICAgIFwiYXJyYXlfcmV2ZXJzZV9leHRcIixcbiAgICBcImFycmF5X3NldFwiLFxuICAgIFwiYXJyYXlfc2h1ZmZsZVwiLFxuICAgIFwiYXJyYXlfc2h1ZmZsZV9leHRcIixcbiAgICBcImFycmF5X3NvcnRcIixcbiAgICBcImFycmF5X3VuaW9uXCIsXG4gICAgXCJhcnJheV91bmlxdWVcIixcbiAgICBcImFycmF5X3VuaXF1ZV9leHRcIixcbiAgICBcImFzc2V0X2FkZF90YWdzXCIsXG4gICAgXCJhc3NldF9jbGVhcl90YWdzXCIsXG4gICAgXCJhc3NldF9nZXRfaWRzXCIsXG4gICAgXCJhc3NldF9nZXRfaW5kZXhcIixcbiAgICBcImFzc2V0X2dldF90YWdzXCIsXG4gICAgXCJhc3NldF9nZXRfdHlwZVwiLFxuICAgIFwiYXNzZXRfaGFzX2FueV90YWdcIixcbiAgICBcImFzc2V0X2hhc190YWdzXCIsXG4gICAgXCJhc3NldF9yZW1vdmVfdGFnc1wiLFxuICAgIFwiYXVkaW9fYnVzX2NsZWFyX2VtaXR0ZXJzXCIsXG4gICAgXCJhdWRpb19idXNfY3JlYXRlXCIsXG4gICAgXCJhdWRpb19idXNfZ2V0X2VtaXR0ZXJzXCIsXG4gICAgXCJhdWRpb19jaGFubmVsX251bVwiLFxuICAgIFwiYXVkaW9fY3JlYXRlX2J1ZmZlcl9zb3VuZFwiLFxuICAgIFwiYXVkaW9fY3JlYXRlX3BsYXlfcXVldWVcIixcbiAgICBcImF1ZGlvX2NyZWF0ZV9zdHJlYW1cIixcbiAgICBcImF1ZGlvX2NyZWF0ZV9zeW5jX2dyb3VwXCIsXG4gICAgXCJhdWRpb19kZWJ1Z1wiLFxuICAgIFwiYXVkaW9fZGVzdHJveV9zdHJlYW1cIixcbiAgICBcImF1ZGlvX2Rlc3Ryb3lfc3luY19ncm91cFwiLFxuICAgIFwiYXVkaW9fZWZmZWN0X2NyZWF0ZVwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9idXNcIixcbiAgICBcImF1ZGlvX2VtaXR0ZXJfY3JlYXRlXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2V4aXN0c1wiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9mYWxsb2ZmXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2ZyZWVcIixcbiAgICBcImF1ZGlvX2VtaXR0ZXJfZ2FpblwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfYnVzXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF9nYWluXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF9saXN0ZW5lcl9tYXNrXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF9waXRjaFwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfdnhcIixcbiAgICBcImF1ZGlvX2VtaXR0ZXJfZ2V0X3Z5XCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF92elwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfeFwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfeVwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfelwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9waXRjaFwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9wb3NpdGlvblwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9zZXRfbGlzdGVuZXJfbWFza1wiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl92ZWxvY2l0eVwiLFxuICAgIFwiYXVkaW9fZXhpc3RzXCIsXG4gICAgXCJhdWRpb19mYWxsb2ZmX3NldF9tb2RlbFwiLFxuICAgIFwiYXVkaW9fZnJlZV9idWZmZXJfc291bmRcIixcbiAgICBcImF1ZGlvX2ZyZWVfcGxheV9xdWV1ZVwiLFxuICAgIFwiYXVkaW9fZ2V0X2xpc3RlbmVyX2NvdW50XCIsXG4gICAgXCJhdWRpb19nZXRfbGlzdGVuZXJfaW5mb1wiLFxuICAgIFwiYXVkaW9fZ2V0X2xpc3RlbmVyX21hc2tcIixcbiAgICBcImF1ZGlvX2dldF9tYXN0ZXJfZ2FpblwiLFxuICAgIFwiYXVkaW9fZ2V0X25hbWVcIixcbiAgICBcImF1ZGlvX2dldF9yZWNvcmRlcl9jb3VudFwiLFxuICAgIFwiYXVkaW9fZ2V0X3JlY29yZGVyX2luZm9cIixcbiAgICBcImF1ZGlvX2dldF90eXBlXCIsXG4gICAgXCJhdWRpb19ncm91cF9nZXRfYXNzZXRzXCIsXG4gICAgXCJhdWRpb19ncm91cF9nZXRfZ2FpblwiLFxuICAgIFwiYXVkaW9fZ3JvdXBfaXNfbG9hZGVkXCIsXG4gICAgXCJhdWRpb19ncm91cF9sb2FkXCIsXG4gICAgXCJhdWRpb19ncm91cF9sb2FkX3Byb2dyZXNzXCIsXG4gICAgXCJhdWRpb19ncm91cF9uYW1lXCIsXG4gICAgXCJhdWRpb19ncm91cF9zZXRfZ2FpblwiLFxuICAgIFwiYXVkaW9fZ3JvdXBfc3RvcF9hbGxcIixcbiAgICBcImF1ZGlvX2dyb3VwX3VubG9hZFwiLFxuICAgIFwiYXVkaW9faXNfcGF1c2VkXCIsXG4gICAgXCJhdWRpb19pc19wbGF5aW5nXCIsXG4gICAgXCJhdWRpb19saXN0ZW5lcl9nZXRfZGF0YVwiLFxuICAgIFwiYXVkaW9fbGlzdGVuZXJfb3JpZW50YXRpb25cIixcbiAgICBcImF1ZGlvX2xpc3RlbmVyX3Bvc2l0aW9uXCIsXG4gICAgXCJhdWRpb19saXN0ZW5lcl9zZXRfb3JpZW50YXRpb25cIixcbiAgICBcImF1ZGlvX2xpc3RlbmVyX3NldF9wb3NpdGlvblwiLFxuICAgIFwiYXVkaW9fbGlzdGVuZXJfc2V0X3ZlbG9jaXR5XCIsXG4gICAgXCJhdWRpb19saXN0ZW5lcl92ZWxvY2l0eVwiLFxuICAgIFwiYXVkaW9fbWFzdGVyX2dhaW5cIixcbiAgICBcImF1ZGlvX3BhdXNlX2FsbFwiLFxuICAgIFwiYXVkaW9fcGF1c2Vfc291bmRcIixcbiAgICBcImF1ZGlvX3BhdXNlX3N5bmNfZ3JvdXBcIixcbiAgICBcImF1ZGlvX3BsYXlfaW5fc3luY19ncm91cFwiLFxuICAgIFwiYXVkaW9fcGxheV9zb3VuZFwiLFxuICAgIFwiYXVkaW9fcGxheV9zb3VuZF9hdFwiLFxuICAgIFwiYXVkaW9fcGxheV9zb3VuZF9leHRcIixcbiAgICBcImF1ZGlvX3BsYXlfc291bmRfb25cIixcbiAgICBcImF1ZGlvX3F1ZXVlX3NvdW5kXCIsXG4gICAgXCJhdWRpb19yZXN1bWVfYWxsXCIsXG4gICAgXCJhdWRpb19yZXN1bWVfc291bmRcIixcbiAgICBcImF1ZGlvX3Jlc3VtZV9zeW5jX2dyb3VwXCIsXG4gICAgXCJhdWRpb19zZXRfbGlzdGVuZXJfbWFza1wiLFxuICAgIFwiYXVkaW9fc2V0X21hc3Rlcl9nYWluXCIsXG4gICAgXCJhdWRpb19zb3VuZF9nYWluXCIsXG4gICAgXCJhdWRpb19zb3VuZF9nZXRfYXVkaW9fZ3JvdXBcIixcbiAgICBcImF1ZGlvX3NvdW5kX2dldF9nYWluXCIsXG4gICAgXCJhdWRpb19zb3VuZF9nZXRfbGlzdGVuZXJfbWFza1wiLFxuICAgIFwiYXVkaW9fc291bmRfZ2V0X2xvb3BcIixcbiAgICBcImF1ZGlvX3NvdW5kX2dldF9sb29wX2VuZFwiLFxuICAgIFwiYXVkaW9fc291bmRfZ2V0X2xvb3Bfc3RhcnRcIixcbiAgICBcImF1ZGlvX3NvdW5kX2dldF9waXRjaFwiLFxuICAgIFwiYXVkaW9fc291bmRfZ2V0X3RyYWNrX3Bvc2l0aW9uXCIsXG4gICAgXCJhdWRpb19zb3VuZF9pc19wbGF5YWJsZVwiLFxuICAgIFwiYXVkaW9fc291bmRfbGVuZ3RoXCIsXG4gICAgXCJhdWRpb19zb3VuZF9sb29wXCIsXG4gICAgXCJhdWRpb19zb3VuZF9sb29wX2VuZFwiLFxuICAgIFwiYXVkaW9fc291bmRfbG9vcF9zdGFydFwiLFxuICAgIFwiYXVkaW9fc291bmRfcGl0Y2hcIixcbiAgICBcImF1ZGlvX3NvdW5kX3NldF9saXN0ZW5lcl9tYXNrXCIsXG4gICAgXCJhdWRpb19zb3VuZF9zZXRfdHJhY2tfcG9zaXRpb25cIixcbiAgICBcImF1ZGlvX3N0YXJ0X3JlY29yZGluZ1wiLFxuICAgIFwiYXVkaW9fc3RhcnRfc3luY19ncm91cFwiLFxuICAgIFwiYXVkaW9fc3RvcF9hbGxcIixcbiAgICBcImF1ZGlvX3N0b3BfcmVjb3JkaW5nXCIsXG4gICAgXCJhdWRpb19zdG9wX3NvdW5kXCIsXG4gICAgXCJhdWRpb19zdG9wX3N5bmNfZ3JvdXBcIixcbiAgICBcImF1ZGlvX3N5bmNfZ3JvdXBfZGVidWdcIixcbiAgICBcImF1ZGlvX3N5bmNfZ3JvdXBfZ2V0X3RyYWNrX3Bvc1wiLFxuICAgIFwiYXVkaW9fc3luY19ncm91cF9pc19wYXVzZWRcIixcbiAgICBcImF1ZGlvX3N5bmNfZ3JvdXBfaXNfcGxheWluZ1wiLFxuICAgIFwiYXVkaW9fc3lzdGVtX2lzX2F2YWlsYWJsZVwiLFxuICAgIFwiYXVkaW9fc3lzdGVtX2lzX2luaXRpYWxpc2VkXCIsXG4gICAgXCJiYXNlNjRfZGVjb2RlXCIsXG4gICAgXCJiYXNlNjRfZW5jb2RlXCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJicm93c2VyX2lucHV0X2NhcHR1cmVcIixcbiAgICBcImJ1ZmZlcl9hc3luY19ncm91cF9iZWdpblwiLFxuICAgIFwiYnVmZmVyX2FzeW5jX2dyb3VwX2VuZFwiLFxuICAgIFwiYnVmZmVyX2FzeW5jX2dyb3VwX29wdGlvblwiLFxuICAgIFwiYnVmZmVyX2Jhc2U2NF9kZWNvZGVcIixcbiAgICBcImJ1ZmZlcl9iYXNlNjRfZGVjb2RlX2V4dFwiLFxuICAgIFwiYnVmZmVyX2Jhc2U2NF9lbmNvZGVcIixcbiAgICBcImJ1ZmZlcl9jb21wcmVzc1wiLFxuICAgIFwiYnVmZmVyX2NvcHlcIixcbiAgICBcImJ1ZmZlcl9jb3B5X2Zyb21fdmVydGV4X2J1ZmZlclwiLFxuICAgIFwiYnVmZmVyX2NvcHlfc3RyaWRlXCIsXG4gICAgXCJidWZmZXJfY3JjMzJcIixcbiAgICBcImJ1ZmZlcl9jcmVhdGVcIixcbiAgICBcImJ1ZmZlcl9jcmVhdGVfZnJvbV92ZXJ0ZXhfYnVmZmVyXCIsXG4gICAgXCJidWZmZXJfY3JlYXRlX2Zyb21fdmVydGV4X2J1ZmZlcl9leHRcIixcbiAgICBcImJ1ZmZlcl9kZWNvbXByZXNzXCIsXG4gICAgXCJidWZmZXJfZGVsZXRlXCIsXG4gICAgXCJidWZmZXJfZXhpc3RzXCIsXG4gICAgXCJidWZmZXJfZmlsbFwiLFxuICAgIFwiYnVmZmVyX2dldF9hZGRyZXNzXCIsXG4gICAgXCJidWZmZXJfZ2V0X2FsaWdubWVudFwiLFxuICAgIFwiYnVmZmVyX2dldF9zaXplXCIsXG4gICAgXCJidWZmZXJfZ2V0X3N1cmZhY2VcIixcbiAgICBcImJ1ZmZlcl9nZXRfdHlwZVwiLFxuICAgIFwiYnVmZmVyX2xvYWRcIixcbiAgICBcImJ1ZmZlcl9sb2FkX2FzeW5jXCIsXG4gICAgXCJidWZmZXJfbG9hZF9leHRcIixcbiAgICBcImJ1ZmZlcl9sb2FkX3BhcnRpYWxcIixcbiAgICBcImJ1ZmZlcl9tZDVcIixcbiAgICBcImJ1ZmZlcl9wZWVrXCIsXG4gICAgXCJidWZmZXJfcG9rZVwiLFxuICAgIFwiYnVmZmVyX3JlYWRcIixcbiAgICBcImJ1ZmZlcl9yZXNpemVcIixcbiAgICBcImJ1ZmZlcl9zYXZlXCIsXG4gICAgXCJidWZmZXJfc2F2ZV9hc3luY1wiLFxuICAgIFwiYnVmZmVyX3NhdmVfZXh0XCIsXG4gICAgXCJidWZmZXJfc2Vla1wiLFxuICAgIFwiYnVmZmVyX3NldF9zdXJmYWNlXCIsXG4gICAgXCJidWZmZXJfc2V0X3VzZWRfc2l6ZVwiLFxuICAgIFwiYnVmZmVyX3NoYTFcIixcbiAgICBcImJ1ZmZlcl9zaXplb2ZcIixcbiAgICBcImJ1ZmZlcl90ZWxsXCIsXG4gICAgXCJidWZmZXJfd3JpdGVcIixcbiAgICBcImNhbGxfY2FuY2VsXCIsXG4gICAgXCJjYWxsX2xhdGVyXCIsXG4gICAgXCJjYW1lcmFfYXBwbHlcIixcbiAgICBcImNhbWVyYV9jb3B5X3RyYW5zZm9ybXNcIixcbiAgICBcImNhbWVyYV9jcmVhdGVcIixcbiAgICBcImNhbWVyYV9jcmVhdGVfdmlld1wiLFxuICAgIFwiY2FtZXJhX2Rlc3Ryb3lcIixcbiAgICBcImNhbWVyYV9nZXRfYWN0aXZlXCIsXG4gICAgXCJjYW1lcmFfZ2V0X2JlZ2luX3NjcmlwdFwiLFxuICAgIFwiY2FtZXJhX2dldF9kZWZhdWx0XCIsXG4gICAgXCJjYW1lcmFfZ2V0X2VuZF9zY3JpcHRcIixcbiAgICBcImNhbWVyYV9nZXRfcHJval9tYXRcIixcbiAgICBcImNhbWVyYV9nZXRfdXBkYXRlX3NjcmlwdFwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X2FuZ2xlXCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfYm9yZGVyX3hcIixcbiAgICBcImNhbWVyYV9nZXRfdmlld19ib3JkZXJfeVwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X2hlaWdodFwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X21hdFwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X3NwZWVkX3hcIixcbiAgICBcImNhbWVyYV9nZXRfdmlld19zcGVlZF95XCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfdGFyZ2V0XCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfd2lkdGhcIixcbiAgICBcImNhbWVyYV9nZXRfdmlld194XCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfeVwiLFxuICAgIFwiY2FtZXJhX3NldF9iZWdpbl9zY3JpcHRcIixcbiAgICBcImNhbWVyYV9zZXRfZGVmYXVsdFwiLFxuICAgIFwiY2FtZXJhX3NldF9lbmRfc2NyaXB0XCIsXG4gICAgXCJjYW1lcmFfc2V0X3Byb2pfbWF0XCIsXG4gICAgXCJjYW1lcmFfc2V0X3VwZGF0ZV9zY3JpcHRcIixcbiAgICBcImNhbWVyYV9zZXRfdmlld19hbmdsZVwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X2JvcmRlclwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X21hdFwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X3Bvc1wiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X3NpemVcIixcbiAgICBcImNhbWVyYV9zZXRfdmlld19zcGVlZFwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X3RhcmdldFwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2hvb3NlXCIsXG4gICAgXCJjaHJcIixcbiAgICBcImNsYW1wXCIsXG4gICAgXCJjbGlja2FibGVfYWRkXCIsXG4gICAgXCJjbGlja2FibGVfYWRkX2V4dFwiLFxuICAgIFwiY2xpY2thYmxlX2NoYW5nZVwiLFxuICAgIFwiY2xpY2thYmxlX2NoYW5nZV9leHRcIixcbiAgICBcImNsaWNrYWJsZV9kZWxldGVcIixcbiAgICBcImNsaWNrYWJsZV9leGlzdHNcIixcbiAgICBcImNsaWNrYWJsZV9zZXRfc3R5bGVcIixcbiAgICBcImNsaXBib2FyZF9nZXRfdGV4dFwiLFxuICAgIFwiY2xpcGJvYXJkX2hhc190ZXh0XCIsXG4gICAgXCJjbGlwYm9hcmRfc2V0X3RleHRcIixcbiAgICBcImNsb3VkX2ZpbGVfc2F2ZVwiLFxuICAgIFwiY2xvdWRfc3RyaW5nX3NhdmVcIixcbiAgICBcImNsb3VkX3N5bmNocm9uaXNlXCIsXG4gICAgXCJjb2RlX2lzX2NvbXBpbGVkXCIsXG4gICAgXCJjb2xsaXNpb25fY2lyY2xlXCIsXG4gICAgXCJjb2xsaXNpb25fY2lyY2xlX2xpc3RcIixcbiAgICBcImNvbGxpc2lvbl9lbGxpcHNlXCIsXG4gICAgXCJjb2xsaXNpb25fZWxsaXBzZV9saXN0XCIsXG4gICAgXCJjb2xsaXNpb25fbGluZVwiLFxuICAgIFwiY29sbGlzaW9uX2xpbmVfbGlzdFwiLFxuICAgIFwiY29sbGlzaW9uX3BvaW50XCIsXG4gICAgXCJjb2xsaXNpb25fcG9pbnRfbGlzdFwiLFxuICAgIFwiY29sbGlzaW9uX3JlY3RhbmdsZVwiLFxuICAgIFwiY29sbGlzaW9uX3JlY3RhbmdsZV9saXN0XCIsXG4gICAgXCJjb2xvcl9nZXRfYmx1ZVwiLFxuICAgIFwiY29sb3JfZ2V0X2dyZWVuXCIsXG4gICAgXCJjb2xvcl9nZXRfaHVlXCIsXG4gICAgXCJjb2xvcl9nZXRfcmVkXCIsXG4gICAgXCJjb2xvcl9nZXRfc2F0dXJhdGlvblwiLFxuICAgIFwiY29sb3JfZ2V0X3ZhbHVlXCIsXG4gICAgXCJjb2xvdXJfZ2V0X2JsdWVcIixcbiAgICBcImNvbG91cl9nZXRfZ3JlZW5cIixcbiAgICBcImNvbG91cl9nZXRfaHVlXCIsXG4gICAgXCJjb2xvdXJfZ2V0X3JlZFwiLFxuICAgIFwiY29sb3VyX2dldF9zYXR1cmF0aW9uXCIsXG4gICAgXCJjb2xvdXJfZ2V0X3ZhbHVlXCIsXG4gICAgXCJjb3NcIixcbiAgICBcImRhcmNjb3NcIixcbiAgICBcImRhcmNzaW5cIixcbiAgICBcImRhcmN0YW5cIixcbiAgICBcImRhcmN0YW4yXCIsXG4gICAgXCJkYXRlX2NvbXBhcmVfZGF0ZVwiLFxuICAgIFwiZGF0ZV9jb21wYXJlX2RhdGV0aW1lXCIsXG4gICAgXCJkYXRlX2NvbXBhcmVfdGltZVwiLFxuICAgIFwiZGF0ZV9jcmVhdGVfZGF0ZXRpbWVcIixcbiAgICBcImRhdGVfY3VycmVudF9kYXRldGltZVwiLFxuICAgIFwiZGF0ZV9kYXRlX29mXCIsXG4gICAgXCJkYXRlX2RhdGVfc3RyaW5nXCIsXG4gICAgXCJkYXRlX2RhdGV0aW1lX3N0cmluZ1wiLFxuICAgIFwiZGF0ZV9kYXlfc3BhblwiLFxuICAgIFwiZGF0ZV9kYXlzX2luX21vbnRoXCIsXG4gICAgXCJkYXRlX2RheXNfaW5feWVhclwiLFxuICAgIFwiZGF0ZV9nZXRfZGF5XCIsXG4gICAgXCJkYXRlX2dldF9kYXlfb2ZfeWVhclwiLFxuICAgIFwiZGF0ZV9nZXRfaG91clwiLFxuICAgIFwiZGF0ZV9nZXRfaG91cl9vZl95ZWFyXCIsXG4gICAgXCJkYXRlX2dldF9taW51dGVcIixcbiAgICBcImRhdGVfZ2V0X21pbnV0ZV9vZl95ZWFyXCIsXG4gICAgXCJkYXRlX2dldF9tb250aFwiLFxuICAgIFwiZGF0ZV9nZXRfc2Vjb25kXCIsXG4gICAgXCJkYXRlX2dldF9zZWNvbmRfb2ZfeWVhclwiLFxuICAgIFwiZGF0ZV9nZXRfdGltZXpvbmVcIixcbiAgICBcImRhdGVfZ2V0X3dlZWtcIixcbiAgICBcImRhdGVfZ2V0X3dlZWtkYXlcIixcbiAgICBcImRhdGVfZ2V0X3llYXJcIixcbiAgICBcImRhdGVfaG91cl9zcGFuXCIsXG4gICAgXCJkYXRlX2luY19kYXlcIixcbiAgICBcImRhdGVfaW5jX2hvdXJcIixcbiAgICBcImRhdGVfaW5jX21pbnV0ZVwiLFxuICAgIFwiZGF0ZV9pbmNfbW9udGhcIixcbiAgICBcImRhdGVfaW5jX3NlY29uZFwiLFxuICAgIFwiZGF0ZV9pbmNfd2Vla1wiLFxuICAgIFwiZGF0ZV9pbmNfeWVhclwiLFxuICAgIFwiZGF0ZV9pc190b2RheVwiLFxuICAgIFwiZGF0ZV9sZWFwX3llYXJcIixcbiAgICBcImRhdGVfbWludXRlX3NwYW5cIixcbiAgICBcImRhdGVfbW9udGhfc3BhblwiLFxuICAgIFwiZGF0ZV9zZWNvbmRfc3BhblwiLFxuICAgIFwiZGF0ZV9zZXRfdGltZXpvbmVcIixcbiAgICBcImRhdGVfdGltZV9vZlwiLFxuICAgIFwiZGF0ZV90aW1lX3N0cmluZ1wiLFxuICAgIFwiZGF0ZV92YWxpZF9kYXRldGltZVwiLFxuICAgIFwiZGF0ZV93ZWVrX3NwYW5cIixcbiAgICBcImRhdGVfeWVhcl9zcGFuXCIsXG4gICAgXCJkYl90b19saW5cIixcbiAgICBcImRiZ19hZGRfZm9udF9nbHlwaHNcIixcbiAgICBcImRiZ19idXR0b25cIixcbiAgICBcImRiZ19jaGVja2JveFwiLFxuICAgIFwiZGJnX2NvbG9yXCIsXG4gICAgXCJkYmdfY29sb3VyXCIsXG4gICAgXCJkYmdfZHJvcF9kb3duXCIsXG4gICAgXCJkYmdfc2FtZV9saW5lXCIsXG4gICAgXCJkYmdfc2VjdGlvblwiLFxuICAgIFwiZGJnX3NlY3Rpb25fZGVsZXRlXCIsXG4gICAgXCJkYmdfc2VjdGlvbl9leGlzdHNcIixcbiAgICBcImRiZ19zbGlkZXJcIixcbiAgICBcImRiZ19zbGlkZXJfaW50XCIsXG4gICAgXCJkYmdfc3ByaXRlXCIsXG4gICAgXCJkYmdfdGV4dFwiLFxuICAgIFwiZGJnX3RleHRfaW5wdXRcIixcbiAgICBcImRiZ192aWV3XCIsXG4gICAgXCJkYmdfdmlld19kZWxldGVcIixcbiAgICBcImRiZ192aWV3X2V4aXN0c1wiLFxuICAgIFwiZGJnX3dhdGNoXCIsXG4gICAgXCJkY29zXCIsXG4gICAgXCJkZWJ1Z19ldmVudFwiLFxuICAgIFwiZGVidWdfZ2V0X2NhbGxzdGFja1wiLFxuICAgIFwiZGVndG9yYWRcIixcbiAgICBcImRldmljZV9nZXRfdGlsdF94XCIsXG4gICAgXCJkZXZpY2VfZ2V0X3RpbHRfeVwiLFxuICAgIFwiZGV2aWNlX2dldF90aWx0X3pcIixcbiAgICBcImRldmljZV9pc19rZXlwYWRfb3BlblwiLFxuICAgIFwiZGV2aWNlX21vdXNlX2NoZWNrX2J1dHRvblwiLFxuICAgIFwiZGV2aWNlX21vdXNlX2NoZWNrX2J1dHRvbl9wcmVzc2VkXCIsXG4gICAgXCJkZXZpY2VfbW91c2VfY2hlY2tfYnV0dG9uX3JlbGVhc2VkXCIsXG4gICAgXCJkZXZpY2VfbW91c2VfZGJjbGlja19lbmFibGVcIixcbiAgICBcImRldmljZV9tb3VzZV9yYXdfeFwiLFxuICAgIFwiZGV2aWNlX21vdXNlX3Jhd195XCIsXG4gICAgXCJkZXZpY2VfbW91c2VfeFwiLFxuICAgIFwiZGV2aWNlX21vdXNlX3hfdG9fZ3VpXCIsXG4gICAgXCJkZXZpY2VfbW91c2VfeVwiLFxuICAgIFwiZGV2aWNlX21vdXNlX3lfdG9fZ3VpXCIsXG4gICAgXCJkaXJlY3RvcnlfY3JlYXRlXCIsXG4gICAgXCJkaXJlY3RvcnlfZGVzdHJveVwiLFxuICAgIFwiZGlyZWN0b3J5X2V4aXN0c1wiLFxuICAgIFwiZGlzcGxheV9nZXRfZHBpX3hcIixcbiAgICBcImRpc3BsYXlfZ2V0X2RwaV95XCIsXG4gICAgXCJkaXNwbGF5X2dldF9mcmVxdWVuY3lcIixcbiAgICBcImRpc3BsYXlfZ2V0X2d1aV9oZWlnaHRcIixcbiAgICBcImRpc3BsYXlfZ2V0X2d1aV93aWR0aFwiLFxuICAgIFwiZGlzcGxheV9nZXRfaGVpZ2h0XCIsXG4gICAgXCJkaXNwbGF5X2dldF9vcmllbnRhdGlvblwiLFxuICAgIFwiZGlzcGxheV9nZXRfc2xlZXBfbWFyZ2luXCIsXG4gICAgXCJkaXNwbGF5X2dldF90aW1pbmdfbWV0aG9kXCIsXG4gICAgXCJkaXNwbGF5X2dldF93aWR0aFwiLFxuICAgIFwiZGlzcGxheV9tb3VzZV9nZXRfeFwiLFxuICAgIFwiZGlzcGxheV9tb3VzZV9nZXRfeVwiLFxuICAgIFwiZGlzcGxheV9tb3VzZV9zZXRcIixcbiAgICBcImRpc3BsYXlfcmVzZXRcIixcbiAgICBcImRpc3BsYXlfc2V0X2d1aV9tYXhpbWlzZVwiLFxuICAgIFwiZGlzcGxheV9zZXRfZ3VpX21heGltaXplXCIsXG4gICAgXCJkaXNwbGF5X3NldF9ndWlfc2l6ZVwiLFxuICAgIFwiZGlzcGxheV9zZXRfc2xlZXBfbWFyZ2luXCIsXG4gICAgXCJkaXNwbGF5X3NldF90aW1pbmdfbWV0aG9kXCIsXG4gICAgXCJkaXNwbGF5X3NldF91aV92aXNpYmlsaXR5XCIsXG4gICAgXCJkaXN0YW5jZV90b19vYmplY3RcIixcbiAgICBcImRpc3RhbmNlX3RvX3BvaW50XCIsXG4gICAgXCJkb3RfcHJvZHVjdFwiLFxuICAgIFwiZG90X3Byb2R1Y3RfM2RcIixcbiAgICBcImRvdF9wcm9kdWN0XzNkX25vcm1hbGlzZWRcIixcbiAgICBcImRvdF9wcm9kdWN0XzNkX25vcm1hbGl6ZWRcIixcbiAgICBcImRvdF9wcm9kdWN0X25vcm1hbGlzZWRcIixcbiAgICBcImRvdF9wcm9kdWN0X25vcm1hbGl6ZWRcIixcbiAgICBcImRyYXdfYXJyb3dcIixcbiAgICBcImRyYXdfYnV0dG9uXCIsXG4gICAgXCJkcmF3X2NpcmNsZVwiLFxuICAgIFwiZHJhd19jaXJjbGVfY29sb3JcIixcbiAgICBcImRyYXdfY2lyY2xlX2NvbG91clwiLFxuICAgIFwiZHJhd19jbGVhclwiLFxuICAgIFwiZHJhd19jbGVhcl9hbHBoYVwiLFxuICAgIFwiZHJhd19lbGxpcHNlXCIsXG4gICAgXCJkcmF3X2VsbGlwc2VfY29sb3JcIixcbiAgICBcImRyYXdfZWxsaXBzZV9jb2xvdXJcIixcbiAgICBcImRyYXdfZW5hYmxlX2RyYXdldmVudFwiLFxuICAgIFwiZHJhd19lbmFibGVfc2tlbGV0b25fYmxlbmRtb2Rlc1wiLFxuICAgIFwiZHJhd19lbmFibGVfc3dmX2FhXCIsXG4gICAgXCJkcmF3X2ZsdXNoXCIsXG4gICAgXCJkcmF3X2dldF9hbHBoYVwiLFxuICAgIFwiZHJhd19nZXRfY29sb3JcIixcbiAgICBcImRyYXdfZ2V0X2NvbG91clwiLFxuICAgIFwiZHJhd19nZXRfZW5hYmxlX3NrZWxldG9uX2JsZW5kbW9kZXNcIixcbiAgICBcImRyYXdfZ2V0X2ZvbnRcIixcbiAgICBcImRyYXdfZ2V0X2hhbGlnblwiLFxuICAgIFwiZHJhd19nZXRfbGlnaHRpbmdcIixcbiAgICBcImRyYXdfZ2V0X3N3Zl9hYV9sZXZlbFwiLFxuICAgIFwiZHJhd19nZXRfdmFsaWduXCIsXG4gICAgXCJkcmF3X2dldHBpeGVsXCIsXG4gICAgXCJkcmF3X2dldHBpeGVsX2V4dFwiLFxuICAgIFwiZHJhd19oZWFsdGhiYXJcIixcbiAgICBcImRyYXdfaGlnaHNjb3JlXCIsXG4gICAgXCJkcmF3X2xpZ2h0X2RlZmluZV9hbWJpZW50XCIsXG4gICAgXCJkcmF3X2xpZ2h0X2RlZmluZV9kaXJlY3Rpb25cIixcbiAgICBcImRyYXdfbGlnaHRfZGVmaW5lX3BvaW50XCIsXG4gICAgXCJkcmF3X2xpZ2h0X2VuYWJsZVwiLFxuICAgIFwiZHJhd19saWdodF9nZXRcIixcbiAgICBcImRyYXdfbGlnaHRfZ2V0X2FtYmllbnRcIixcbiAgICBcImRyYXdfbGluZVwiLFxuICAgIFwiZHJhd19saW5lX2NvbG9yXCIsXG4gICAgXCJkcmF3X2xpbmVfY29sb3VyXCIsXG4gICAgXCJkcmF3X2xpbmVfd2lkdGhcIixcbiAgICBcImRyYXdfbGluZV93aWR0aF9jb2xvclwiLFxuICAgIFwiZHJhd19saW5lX3dpZHRoX2NvbG91clwiLFxuICAgIFwiZHJhd19wYXRoXCIsXG4gICAgXCJkcmF3X3BvaW50XCIsXG4gICAgXCJkcmF3X3BvaW50X2NvbG9yXCIsXG4gICAgXCJkcmF3X3BvaW50X2NvbG91clwiLFxuICAgIFwiZHJhd19wcmltaXRpdmVfYmVnaW5cIixcbiAgICBcImRyYXdfcHJpbWl0aXZlX2JlZ2luX3RleHR1cmVcIixcbiAgICBcImRyYXdfcHJpbWl0aXZlX2VuZFwiLFxuICAgIFwiZHJhd19yZWN0YW5nbGVcIixcbiAgICBcImRyYXdfcmVjdGFuZ2xlX2NvbG9yXCIsXG4gICAgXCJkcmF3X3JlY3RhbmdsZV9jb2xvdXJcIixcbiAgICBcImRyYXdfcm91bmRyZWN0XCIsXG4gICAgXCJkcmF3X3JvdW5kcmVjdF9jb2xvclwiLFxuICAgIFwiZHJhd19yb3VuZHJlY3RfY29sb3JfZXh0XCIsXG4gICAgXCJkcmF3X3JvdW5kcmVjdF9jb2xvdXJcIixcbiAgICBcImRyYXdfcm91bmRyZWN0X2NvbG91cl9leHRcIixcbiAgICBcImRyYXdfcm91bmRyZWN0X2V4dFwiLFxuICAgIFwiZHJhd19zZWxmXCIsXG4gICAgXCJkcmF3X3NldF9hbHBoYVwiLFxuICAgIFwiZHJhd19zZXRfY2lyY2xlX3ByZWNpc2lvblwiLFxuICAgIFwiZHJhd19zZXRfY29sb3JcIixcbiAgICBcImRyYXdfc2V0X2NvbG91clwiLFxuICAgIFwiZHJhd19zZXRfZm9udFwiLFxuICAgIFwiZHJhd19zZXRfaGFsaWduXCIsXG4gICAgXCJkcmF3X3NldF9saWdodGluZ1wiLFxuICAgIFwiZHJhd19zZXRfc3dmX2FhX2xldmVsXCIsXG4gICAgXCJkcmF3X3NldF92YWxpZ25cIixcbiAgICBcImRyYXdfc2tlbGV0b25cIixcbiAgICBcImRyYXdfc2tlbGV0b25fY29sbGlzaW9uXCIsXG4gICAgXCJkcmF3X3NrZWxldG9uX2luc3RhbmNlXCIsXG4gICAgXCJkcmF3X3NrZWxldG9uX3RpbWVcIixcbiAgICBcImRyYXdfc3ByaXRlXCIsXG4gICAgXCJkcmF3X3Nwcml0ZV9leHRcIixcbiAgICBcImRyYXdfc3ByaXRlX2dlbmVyYWxcIixcbiAgICBcImRyYXdfc3ByaXRlX3BhcnRcIixcbiAgICBcImRyYXdfc3ByaXRlX3BhcnRfZXh0XCIsXG4gICAgXCJkcmF3X3Nwcml0ZV9wb3NcIixcbiAgICBcImRyYXdfc3ByaXRlX3N0cmV0Y2hlZFwiLFxuICAgIFwiZHJhd19zcHJpdGVfc3RyZXRjaGVkX2V4dFwiLFxuICAgIFwiZHJhd19zcHJpdGVfdGlsZWRcIixcbiAgICBcImRyYXdfc3ByaXRlX3RpbGVkX2V4dFwiLFxuICAgIFwiZHJhd19zdXJmYWNlXCIsXG4gICAgXCJkcmF3X3N1cmZhY2VfZXh0XCIsXG4gICAgXCJkcmF3X3N1cmZhY2VfZ2VuZXJhbFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3BhcnRcIixcbiAgICBcImRyYXdfc3VyZmFjZV9wYXJ0X2V4dFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3N0cmV0Y2hlZFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3N0cmV0Y2hlZF9leHRcIixcbiAgICBcImRyYXdfc3VyZmFjZV90aWxlZFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3RpbGVkX2V4dFwiLFxuICAgIFwiZHJhd190ZXh0XCIsXG4gICAgXCJkcmF3X3RleHRfY29sb3JcIixcbiAgICBcImRyYXdfdGV4dF9jb2xvdXJcIixcbiAgICBcImRyYXdfdGV4dF9leHRcIixcbiAgICBcImRyYXdfdGV4dF9leHRfY29sb3JcIixcbiAgICBcImRyYXdfdGV4dF9leHRfY29sb3VyXCIsXG4gICAgXCJkcmF3X3RleHRfZXh0X3RyYW5zZm9ybWVkXCIsXG4gICAgXCJkcmF3X3RleHRfZXh0X3RyYW5zZm9ybWVkX2NvbG9yXCIsXG4gICAgXCJkcmF3X3RleHRfZXh0X3RyYW5zZm9ybWVkX2NvbG91clwiLFxuICAgIFwiZHJhd190ZXh0X3RyYW5zZm9ybWVkXCIsXG4gICAgXCJkcmF3X3RleHRfdHJhbnNmb3JtZWRfY29sb3JcIixcbiAgICBcImRyYXdfdGV4dF90cmFuc2Zvcm1lZF9jb2xvdXJcIixcbiAgICBcImRyYXdfdGV4dHVyZV9mbHVzaFwiLFxuICAgIFwiZHJhd190aWxlXCIsXG4gICAgXCJkcmF3X3RpbGVtYXBcIixcbiAgICBcImRyYXdfdHJpYW5nbGVcIixcbiAgICBcImRyYXdfdHJpYW5nbGVfY29sb3JcIixcbiAgICBcImRyYXdfdHJpYW5nbGVfY29sb3VyXCIsXG4gICAgXCJkcmF3X3ZlcnRleFwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfY29sb3JcIixcbiAgICBcImRyYXdfdmVydGV4X2NvbG91clwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfdGV4dHVyZVwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfdGV4dHVyZV9jb2xvclwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfdGV4dHVyZV9jb2xvdXJcIixcbiAgICBcImRzX2V4aXN0c1wiLFxuICAgIFwiZHNfZ3JpZF9hZGRcIixcbiAgICBcImRzX2dyaWRfYWRkX2Rpc2tcIixcbiAgICBcImRzX2dyaWRfYWRkX2dyaWRfcmVnaW9uXCIsXG4gICAgXCJkc19ncmlkX2FkZF9yZWdpb25cIixcbiAgICBcImRzX2dyaWRfY2xlYXJcIixcbiAgICBcImRzX2dyaWRfY29weVwiLFxuICAgIFwiZHNfZ3JpZF9jcmVhdGVcIixcbiAgICBcImRzX2dyaWRfZGVzdHJveVwiLFxuICAgIFwiZHNfZ3JpZF9nZXRcIixcbiAgICBcImRzX2dyaWRfZ2V0X2Rpc2tfbWF4XCIsXG4gICAgXCJkc19ncmlkX2dldF9kaXNrX21lYW5cIixcbiAgICBcImRzX2dyaWRfZ2V0X2Rpc2tfbWluXCIsXG4gICAgXCJkc19ncmlkX2dldF9kaXNrX3N1bVwiLFxuICAgIFwiZHNfZ3JpZF9nZXRfbWF4XCIsXG4gICAgXCJkc19ncmlkX2dldF9tZWFuXCIsXG4gICAgXCJkc19ncmlkX2dldF9taW5cIixcbiAgICBcImRzX2dyaWRfZ2V0X3N1bVwiLFxuICAgIFwiZHNfZ3JpZF9oZWlnaHRcIixcbiAgICBcImRzX2dyaWRfbXVsdGlwbHlcIixcbiAgICBcImRzX2dyaWRfbXVsdGlwbHlfZGlza1wiLFxuICAgIFwiZHNfZ3JpZF9tdWx0aXBseV9ncmlkX3JlZ2lvblwiLFxuICAgIFwiZHNfZ3JpZF9tdWx0aXBseV9yZWdpb25cIixcbiAgICBcImRzX2dyaWRfcmVhZFwiLFxuICAgIFwiZHNfZ3JpZF9yZXNpemVcIixcbiAgICBcImRzX2dyaWRfc2V0XCIsXG4gICAgXCJkc19ncmlkX3NldF9kaXNrXCIsXG4gICAgXCJkc19ncmlkX3NldF9ncmlkX3JlZ2lvblwiLFxuICAgIFwiZHNfZ3JpZF9zZXRfcmVnaW9uXCIsXG4gICAgXCJkc19ncmlkX3NodWZmbGVcIixcbiAgICBcImRzX2dyaWRfc29ydFwiLFxuICAgIFwiZHNfZ3JpZF90b19tcF9ncmlkXCIsXG4gICAgXCJkc19ncmlkX3ZhbHVlX2Rpc2tfZXhpc3RzXCIsXG4gICAgXCJkc19ncmlkX3ZhbHVlX2Rpc2tfeFwiLFxuICAgIFwiZHNfZ3JpZF92YWx1ZV9kaXNrX3lcIixcbiAgICBcImRzX2dyaWRfdmFsdWVfZXhpc3RzXCIsXG4gICAgXCJkc19ncmlkX3ZhbHVlX3hcIixcbiAgICBcImRzX2dyaWRfdmFsdWVfeVwiLFxuICAgIFwiZHNfZ3JpZF93aWR0aFwiLFxuICAgIFwiZHNfZ3JpZF93cml0ZVwiLFxuICAgIFwiZHNfbGlzdF9hZGRcIixcbiAgICBcImRzX2xpc3RfY2xlYXJcIixcbiAgICBcImRzX2xpc3RfY29weVwiLFxuICAgIFwiZHNfbGlzdF9jcmVhdGVcIixcbiAgICBcImRzX2xpc3RfZGVsZXRlXCIsXG4gICAgXCJkc19saXN0X2Rlc3Ryb3lcIixcbiAgICBcImRzX2xpc3RfZW1wdHlcIixcbiAgICBcImRzX2xpc3RfZmluZF9pbmRleFwiLFxuICAgIFwiZHNfbGlzdF9maW5kX3ZhbHVlXCIsXG4gICAgXCJkc19saXN0X2luc2VydFwiLFxuICAgIFwiZHNfbGlzdF9pc19saXN0XCIsXG4gICAgXCJkc19saXN0X2lzX21hcFwiLFxuICAgIFwiZHNfbGlzdF9tYXJrX2FzX2xpc3RcIixcbiAgICBcImRzX2xpc3RfbWFya19hc19tYXBcIixcbiAgICBcImRzX2xpc3RfcmVhZFwiLFxuICAgIFwiZHNfbGlzdF9yZXBsYWNlXCIsXG4gICAgXCJkc19saXN0X3NldFwiLFxuICAgIFwiZHNfbGlzdF9zaHVmZmxlXCIsXG4gICAgXCJkc19saXN0X3NpemVcIixcbiAgICBcImRzX2xpc3Rfc29ydFwiLFxuICAgIFwiZHNfbGlzdF93cml0ZVwiLFxuICAgIFwiZHNfbWFwX2FkZFwiLFxuICAgIFwiZHNfbWFwX2FkZF9saXN0XCIsXG4gICAgXCJkc19tYXBfYWRkX21hcFwiLFxuICAgIFwiZHNfbWFwX2NsZWFyXCIsXG4gICAgXCJkc19tYXBfY29weVwiLFxuICAgIFwiZHNfbWFwX2NyZWF0ZVwiLFxuICAgIFwiZHNfbWFwX2RlbGV0ZVwiLFxuICAgIFwiZHNfbWFwX2Rlc3Ryb3lcIixcbiAgICBcImRzX21hcF9lbXB0eVwiLFxuICAgIFwiZHNfbWFwX2V4aXN0c1wiLFxuICAgIFwiZHNfbWFwX2ZpbmRfZmlyc3RcIixcbiAgICBcImRzX21hcF9maW5kX2xhc3RcIixcbiAgICBcImRzX21hcF9maW5kX25leHRcIixcbiAgICBcImRzX21hcF9maW5kX3ByZXZpb3VzXCIsXG4gICAgXCJkc19tYXBfZmluZF92YWx1ZVwiLFxuICAgIFwiZHNfbWFwX2lzX2xpc3RcIixcbiAgICBcImRzX21hcF9pc19tYXBcIixcbiAgICBcImRzX21hcF9rZXlzX3RvX2FycmF5XCIsXG4gICAgXCJkc19tYXBfcmVhZFwiLFxuICAgIFwiZHNfbWFwX3JlcGxhY2VcIixcbiAgICBcImRzX21hcF9yZXBsYWNlX2xpc3RcIixcbiAgICBcImRzX21hcF9yZXBsYWNlX21hcFwiLFxuICAgIFwiZHNfbWFwX3NlY3VyZV9sb2FkXCIsXG4gICAgXCJkc19tYXBfc2VjdXJlX2xvYWRfYnVmZmVyXCIsXG4gICAgXCJkc19tYXBfc2VjdXJlX3NhdmVcIixcbiAgICBcImRzX21hcF9zZWN1cmVfc2F2ZV9idWZmZXJcIixcbiAgICBcImRzX21hcF9zZXRcIixcbiAgICBcImRzX21hcF9zaXplXCIsXG4gICAgXCJkc19tYXBfdmFsdWVzX3RvX2FycmF5XCIsXG4gICAgXCJkc19tYXBfd3JpdGVcIixcbiAgICBcImRzX3ByaW9yaXR5X2FkZFwiLFxuICAgIFwiZHNfcHJpb3JpdHlfY2hhbmdlX3ByaW9yaXR5XCIsXG4gICAgXCJkc19wcmlvcml0eV9jbGVhclwiLFxuICAgIFwiZHNfcHJpb3JpdHlfY29weVwiLFxuICAgIFwiZHNfcHJpb3JpdHlfY3JlYXRlXCIsXG4gICAgXCJkc19wcmlvcml0eV9kZWxldGVfbWF4XCIsXG4gICAgXCJkc19wcmlvcml0eV9kZWxldGVfbWluXCIsXG4gICAgXCJkc19wcmlvcml0eV9kZWxldGVfdmFsdWVcIixcbiAgICBcImRzX3ByaW9yaXR5X2Rlc3Ryb3lcIixcbiAgICBcImRzX3ByaW9yaXR5X2VtcHR5XCIsXG4gICAgXCJkc19wcmlvcml0eV9maW5kX21heFwiLFxuICAgIFwiZHNfcHJpb3JpdHlfZmluZF9taW5cIixcbiAgICBcImRzX3ByaW9yaXR5X2ZpbmRfcHJpb3JpdHlcIixcbiAgICBcImRzX3ByaW9yaXR5X3JlYWRcIixcbiAgICBcImRzX3ByaW9yaXR5X3NpemVcIixcbiAgICBcImRzX3ByaW9yaXR5X3dyaXRlXCIsXG4gICAgXCJkc19xdWV1ZV9jbGVhclwiLFxuICAgIFwiZHNfcXVldWVfY29weVwiLFxuICAgIFwiZHNfcXVldWVfY3JlYXRlXCIsXG4gICAgXCJkc19xdWV1ZV9kZXF1ZXVlXCIsXG4gICAgXCJkc19xdWV1ZV9kZXN0cm95XCIsXG4gICAgXCJkc19xdWV1ZV9lbXB0eVwiLFxuICAgIFwiZHNfcXVldWVfZW5xdWV1ZVwiLFxuICAgIFwiZHNfcXVldWVfaGVhZFwiLFxuICAgIFwiZHNfcXVldWVfcmVhZFwiLFxuICAgIFwiZHNfcXVldWVfc2l6ZVwiLFxuICAgIFwiZHNfcXVldWVfdGFpbFwiLFxuICAgIFwiZHNfcXVldWVfd3JpdGVcIixcbiAgICBcImRzX3NldF9wcmVjaXNpb25cIixcbiAgICBcImRzX3N0YWNrX2NsZWFyXCIsXG4gICAgXCJkc19zdGFja19jb3B5XCIsXG4gICAgXCJkc19zdGFja19jcmVhdGVcIixcbiAgICBcImRzX3N0YWNrX2Rlc3Ryb3lcIixcbiAgICBcImRzX3N0YWNrX2VtcHR5XCIsXG4gICAgXCJkc19zdGFja19wb3BcIixcbiAgICBcImRzX3N0YWNrX3B1c2hcIixcbiAgICBcImRzX3N0YWNrX3JlYWRcIixcbiAgICBcImRzX3N0YWNrX3NpemVcIixcbiAgICBcImRzX3N0YWNrX3RvcFwiLFxuICAgIFwiZHNfc3RhY2tfd3JpdGVcIixcbiAgICBcImRzaW5cIixcbiAgICBcImR0YW5cIixcbiAgICBcImVmZmVjdF9jbGVhclwiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9hYm92ZVwiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9iZWxvd1wiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9kZXB0aFwiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9sYXllclwiLFxuICAgIFwiZW52aXJvbm1lbnRfZ2V0X3ZhcmlhYmxlXCIsXG4gICAgXCJldmVudF9pbmhlcml0ZWRcIixcbiAgICBcImV2ZW50X3BlcmZvcm1cIixcbiAgICBcImV2ZW50X3BlcmZvcm1fYXN5bmNcIixcbiAgICBcImV2ZW50X3BlcmZvcm1fb2JqZWN0XCIsXG4gICAgXCJldmVudF91c2VyXCIsXG4gICAgXCJleGNlcHRpb25fdW5oYW5kbGVkX2hhbmRsZXJcIixcbiAgICBcImV4cFwiLFxuICAgIFwiZXh0ZW5zaW9uX2V4aXN0c1wiLFxuICAgIFwiZXh0ZW5zaW9uX2dldF9vcHRpb25fY291bnRcIixcbiAgICBcImV4dGVuc2lvbl9nZXRfb3B0aW9uX25hbWVzXCIsXG4gICAgXCJleHRlbnNpb25fZ2V0X29wdGlvbl92YWx1ZVwiLFxuICAgIFwiZXh0ZW5zaW9uX2dldF9vcHRpb25zXCIsXG4gICAgXCJleHRlbnNpb25fZ2V0X3ZlcnNpb25cIixcbiAgICBcImV4dGVybmFsX2NhbGxcIixcbiAgICBcImV4dGVybmFsX2RlZmluZVwiLFxuICAgIFwiZXh0ZXJuYWxfZnJlZVwiLFxuICAgIFwiZmlsZV9hdHRyaWJ1dGVzXCIsXG4gICAgXCJmaWxlX2Jpbl9jbG9zZVwiLFxuICAgIFwiZmlsZV9iaW5fb3BlblwiLFxuICAgIFwiZmlsZV9iaW5fcG9zaXRpb25cIixcbiAgICBcImZpbGVfYmluX3JlYWRfYnl0ZVwiLFxuICAgIFwiZmlsZV9iaW5fcmV3cml0ZVwiLFxuICAgIFwiZmlsZV9iaW5fc2Vla1wiLFxuICAgIFwiZmlsZV9iaW5fc2l6ZVwiLFxuICAgIFwiZmlsZV9iaW5fd3JpdGVfYnl0ZVwiLFxuICAgIFwiZmlsZV9jb3B5XCIsXG4gICAgXCJmaWxlX2RlbGV0ZVwiLFxuICAgIFwiZmlsZV9leGlzdHNcIixcbiAgICBcImZpbGVfZmluZF9jbG9zZVwiLFxuICAgIFwiZmlsZV9maW5kX2ZpcnN0XCIsXG4gICAgXCJmaWxlX2ZpbmRfbmV4dFwiLFxuICAgIFwiZmlsZV9yZW5hbWVcIixcbiAgICBcImZpbGVfdGV4dF9jbG9zZVwiLFxuICAgIFwiZmlsZV90ZXh0X2VvZlwiLFxuICAgIFwiZmlsZV90ZXh0X2VvbG5cIixcbiAgICBcImZpbGVfdGV4dF9vcGVuX2FwcGVuZFwiLFxuICAgIFwiZmlsZV90ZXh0X29wZW5fZnJvbV9zdHJpbmdcIixcbiAgICBcImZpbGVfdGV4dF9vcGVuX3JlYWRcIixcbiAgICBcImZpbGVfdGV4dF9vcGVuX3dyaXRlXCIsXG4gICAgXCJmaWxlX3RleHRfcmVhZF9yZWFsXCIsXG4gICAgXCJmaWxlX3RleHRfcmVhZF9zdHJpbmdcIixcbiAgICBcImZpbGVfdGV4dF9yZWFkbG5cIixcbiAgICBcImZpbGVfdGV4dF93cml0ZV9yZWFsXCIsXG4gICAgXCJmaWxlX3RleHRfd3JpdGVfc3RyaW5nXCIsXG4gICAgXCJmaWxlX3RleHRfd3JpdGVsblwiLFxuICAgIFwiZmlsZW5hbWVfY2hhbmdlX2V4dFwiLFxuICAgIFwiZmlsZW5hbWVfZGlyXCIsXG4gICAgXCJmaWxlbmFtZV9kcml2ZVwiLFxuICAgIFwiZmlsZW5hbWVfZXh0XCIsXG4gICAgXCJmaWxlbmFtZV9uYW1lXCIsXG4gICAgXCJmaWxlbmFtZV9wYXRoXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwiZm9udF9hZGRcIixcbiAgICBcImZvbnRfYWRkX2VuYWJsZV9hYVwiLFxuICAgIFwiZm9udF9hZGRfZ2V0X2VuYWJsZV9hYVwiLFxuICAgIFwiZm9udF9hZGRfc3ByaXRlXCIsXG4gICAgXCJmb250X2FkZF9zcHJpdGVfZXh0XCIsXG4gICAgXCJmb250X2NhY2hlX2dseXBoXCIsXG4gICAgXCJmb250X2RlbGV0ZVwiLFxuICAgIFwiZm9udF9lbmFibGVfZWZmZWN0c1wiLFxuICAgIFwiZm9udF9lbmFibGVfc2RmXCIsXG4gICAgXCJmb250X2V4aXN0c1wiLFxuICAgIFwiZm9udF9nZXRfYm9sZFwiLFxuICAgIFwiZm9udF9nZXRfZmlyc3RcIixcbiAgICBcImZvbnRfZ2V0X2ZvbnRuYW1lXCIsXG4gICAgXCJmb250X2dldF9pbmZvXCIsXG4gICAgXCJmb250X2dldF9pdGFsaWNcIixcbiAgICBcImZvbnRfZ2V0X2xhc3RcIixcbiAgICBcImZvbnRfZ2V0X25hbWVcIixcbiAgICBcImZvbnRfZ2V0X3NkZl9lbmFibGVkXCIsXG4gICAgXCJmb250X2dldF9zZGZfc3ByZWFkXCIsXG4gICAgXCJmb250X2dldF9zaXplXCIsXG4gICAgXCJmb250X2dldF90ZXh0dXJlXCIsXG4gICAgXCJmb250X2dldF91dnNcIixcbiAgICBcImZvbnRfcmVwbGFjZV9zcHJpdGVcIixcbiAgICBcImZvbnRfcmVwbGFjZV9zcHJpdGVfZXh0XCIsXG4gICAgXCJmb250X3NkZl9zcHJlYWRcIixcbiAgICBcImZvbnRfc2V0X2NhY2hlX3NpemVcIixcbiAgICBcImZyYWNcIixcbiAgICBcImZ4X2NyZWF0ZVwiLFxuICAgIFwiZnhfZ2V0X25hbWVcIixcbiAgICBcImZ4X2dldF9wYXJhbWV0ZXJcIixcbiAgICBcImZ4X2dldF9wYXJhbWV0ZXJfbmFtZXNcIixcbiAgICBcImZ4X2dldF9wYXJhbWV0ZXJzXCIsXG4gICAgXCJmeF9nZXRfc2luZ2xlX2xheWVyXCIsXG4gICAgXCJmeF9zZXRfcGFyYW1ldGVyXCIsXG4gICAgXCJmeF9zZXRfcGFyYW1ldGVyc1wiLFxuICAgIFwiZnhfc2V0X3NpbmdsZV9sYXllclwiLFxuICAgIFwiZ2FtZV9jaGFuZ2VcIixcbiAgICBcImdhbWVfZW5kXCIsXG4gICAgXCJnYW1lX2dldF9zcGVlZFwiLFxuICAgIFwiZ2FtZV9sb2FkXCIsXG4gICAgXCJnYW1lX2xvYWRfYnVmZmVyXCIsXG4gICAgXCJnYW1lX3Jlc3RhcnRcIixcbiAgICBcImdhbWVfc2F2ZVwiLFxuICAgIFwiZ2FtZV9zYXZlX2J1ZmZlclwiLFxuICAgIFwiZ2FtZV9zZXRfc3BlZWRcIixcbiAgICBcImdhbWVwYWRfYXhpc19jb3VudFwiLFxuICAgIFwiZ2FtZXBhZF9heGlzX3ZhbHVlXCIsXG4gICAgXCJnYW1lcGFkX2J1dHRvbl9jaGVja1wiLFxuICAgIFwiZ2FtZXBhZF9idXR0b25fY2hlY2tfcHJlc3NlZFwiLFxuICAgIFwiZ2FtZXBhZF9idXR0b25fY2hlY2tfcmVsZWFzZWRcIixcbiAgICBcImdhbWVwYWRfYnV0dG9uX2NvdW50XCIsXG4gICAgXCJnYW1lcGFkX2J1dHRvbl92YWx1ZVwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfYXhpc19kZWFkem9uZVwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfYnV0dG9uX3RocmVzaG9sZFwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfZGVzY3JpcHRpb25cIixcbiAgICBcImdhbWVwYWRfZ2V0X2RldmljZV9jb3VudFwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfZ3VpZFwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfbWFwcGluZ1wiLFxuICAgIFwiZ2FtZXBhZF9nZXRfb3B0aW9uXCIsXG4gICAgXCJnYW1lcGFkX2hhdF9jb3VudFwiLFxuICAgIFwiZ2FtZXBhZF9oYXRfdmFsdWVcIixcbiAgICBcImdhbWVwYWRfaXNfY29ubmVjdGVkXCIsXG4gICAgXCJnYW1lcGFkX2lzX3N1cHBvcnRlZFwiLFxuICAgIFwiZ2FtZXBhZF9yZW1vdmVfbWFwcGluZ1wiLFxuICAgIFwiZ2FtZXBhZF9zZXRfYXhpc19kZWFkem9uZVwiLFxuICAgIFwiZ2FtZXBhZF9zZXRfYnV0dG9uX3RocmVzaG9sZFwiLFxuICAgIFwiZ2FtZXBhZF9zZXRfY29sb3JcIixcbiAgICBcImdhbWVwYWRfc2V0X2NvbG91clwiLFxuICAgIFwiZ2FtZXBhZF9zZXRfb3B0aW9uXCIsXG4gICAgXCJnYW1lcGFkX3NldF92aWJyYXRpb25cIixcbiAgICBcImdhbWVwYWRfdGVzdF9tYXBwaW5nXCIsXG4gICAgXCJnY19jb2xsZWN0XCIsXG4gICAgXCJnY19lbmFibGVcIixcbiAgICBcImdjX2dldF9zdGF0c1wiLFxuICAgIFwiZ2NfZ2V0X3RhcmdldF9mcmFtZV90aW1lXCIsXG4gICAgXCJnY19pc19lbmFibGVkXCIsXG4gICAgXCJnY190YXJnZXRfZnJhbWVfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9kb3VibGVfdGFwX2Rpc3RhbmNlXCIsXG4gICAgXCJnZXN0dXJlX2RvdWJsZV90YXBfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9kcmFnX2Rpc3RhbmNlXCIsXG4gICAgXCJnZXN0dXJlX2RyYWdfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9mbGlja19zcGVlZFwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfZG91YmxlX3RhcF9kaXN0YW5jZVwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfZG91YmxlX3RhcF90aW1lXCIsXG4gICAgXCJnZXN0dXJlX2dldF9kcmFnX2Rpc3RhbmNlXCIsXG4gICAgXCJnZXN0dXJlX2dldF9kcmFnX3RpbWVcIixcbiAgICBcImdlc3R1cmVfZ2V0X2ZsaWNrX3NwZWVkXCIsXG4gICAgXCJnZXN0dXJlX2dldF9waW5jaF9hbmdsZV9hd2F5XCIsXG4gICAgXCJnZXN0dXJlX2dldF9waW5jaF9hbmdsZV90b3dhcmRzXCIsXG4gICAgXCJnZXN0dXJlX2dldF9waW5jaF9kaXN0YW5jZVwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfcm90YXRlX2FuZ2xlXCIsXG4gICAgXCJnZXN0dXJlX2dldF9yb3RhdGVfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfdGFwX2NvdW50XCIsXG4gICAgXCJnZXN0dXJlX3BpbmNoX2FuZ2xlX2F3YXlcIixcbiAgICBcImdlc3R1cmVfcGluY2hfYW5nbGVfdG93YXJkc1wiLFxuICAgIFwiZ2VzdHVyZV9waW5jaF9kaXN0YW5jZVwiLFxuICAgIFwiZ2VzdHVyZV9yb3RhdGVfYW5nbGVcIixcbiAgICBcImdlc3R1cmVfcm90YXRlX3RpbWVcIixcbiAgICBcImdlc3R1cmVfdGFwX2NvdW50XCIsXG4gICAgXCJnZXRfaW50ZWdlclwiLFxuICAgIFwiZ2V0X2ludGVnZXJfYXN5bmNcIixcbiAgICBcImdldF9sb2dpbl9hc3luY1wiLFxuICAgIFwiZ2V0X29wZW5fZmlsZW5hbWVcIixcbiAgICBcImdldF9vcGVuX2ZpbGVuYW1lX2V4dFwiLFxuICAgIFwiZ2V0X3NhdmVfZmlsZW5hbWVcIixcbiAgICBcImdldF9zYXZlX2ZpbGVuYW1lX2V4dFwiLFxuICAgIFwiZ2V0X3N0cmluZ1wiLFxuICAgIFwiZ2V0X3N0cmluZ19hc3luY1wiLFxuICAgIFwiZ2V0X3RpbWVyXCIsXG4gICAgXCJnaWZfYWRkX3N1cmZhY2VcIixcbiAgICBcImdpZl9vcGVuXCIsXG4gICAgXCJnaWZfc2F2ZVwiLFxuICAgIFwiZ2lmX3NhdmVfYnVmZmVyXCIsXG4gICAgXCJnbWxfcHJhZ21hXCIsXG4gICAgXCJnbWxfcmVsZWFzZV9tb2RlXCIsXG4gICAgXCJncHVfZ2V0X2FscGhhdGVzdGVuYWJsZVwiLFxuICAgIFwiZ3B1X2dldF9hbHBoYXRlc3RyZWZcIixcbiAgICBcImdwdV9nZXRfYmxlbmRlbmFibGVcIixcbiAgICBcImdwdV9nZXRfYmxlbmRtb2RlXCIsXG4gICAgXCJncHVfZ2V0X2JsZW5kbW9kZV9kZXN0XCIsXG4gICAgXCJncHVfZ2V0X2JsZW5kbW9kZV9kZXN0YWxwaGFcIixcbiAgICBcImdwdV9nZXRfYmxlbmRtb2RlX2V4dFwiLFxuICAgIFwiZ3B1X2dldF9ibGVuZG1vZGVfZXh0X3NlcGFscGhhXCIsXG4gICAgXCJncHVfZ2V0X2JsZW5kbW9kZV9zcmNcIixcbiAgICBcImdwdV9nZXRfYmxlbmRtb2RlX3NyY2FscGhhXCIsXG4gICAgXCJncHVfZ2V0X2NvbG9yd3JpdGVlbmFibGVcIixcbiAgICBcImdwdV9nZXRfY29sb3Vyd3JpdGVlbmFibGVcIixcbiAgICBcImdwdV9nZXRfY3VsbG1vZGVcIixcbiAgICBcImdwdV9nZXRfZGVwdGhcIixcbiAgICBcImdwdV9nZXRfZm9nXCIsXG4gICAgXCJncHVfZ2V0X3N0YXRlXCIsXG4gICAgXCJncHVfZ2V0X3RleF9maWx0ZXJcIixcbiAgICBcImdwdV9nZXRfdGV4X2ZpbHRlcl9leHRcIixcbiAgICBcImdwdV9nZXRfdGV4X21heF9hbmlzb1wiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWF4X2FuaXNvX2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWF4X21pcFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWF4X21pcF9leHRcIixcbiAgICBcImdwdV9nZXRfdGV4X21pbl9taXBcIixcbiAgICBcImdwdV9nZXRfdGV4X21pbl9taXBfZXh0XCIsXG4gICAgXCJncHVfZ2V0X3RleF9taXBfYmlhc1wiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWlwX2JpYXNfZXh0XCIsXG4gICAgXCJncHVfZ2V0X3RleF9taXBfZW5hYmxlXCIsXG4gICAgXCJncHVfZ2V0X3RleF9taXBfZW5hYmxlX2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWlwX2ZpbHRlclwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWlwX2ZpbHRlcl9leHRcIixcbiAgICBcImdwdV9nZXRfdGV4X3JlcGVhdFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfcmVwZWF0X2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhmaWx0ZXJcIixcbiAgICBcImdwdV9nZXRfdGV4ZmlsdGVyX2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhyZXBlYXRcIixcbiAgICBcImdwdV9nZXRfdGV4cmVwZWF0X2V4dFwiLFxuICAgIFwiZ3B1X2dldF96ZnVuY1wiLFxuICAgIFwiZ3B1X2dldF96dGVzdGVuYWJsZVwiLFxuICAgIFwiZ3B1X2dldF96d3JpdGVlbmFibGVcIixcbiAgICBcImdwdV9wb3Bfc3RhdGVcIixcbiAgICBcImdwdV9wdXNoX3N0YXRlXCIsXG4gICAgXCJncHVfc2V0X2FscGhhdGVzdGVuYWJsZVwiLFxuICAgIFwiZ3B1X3NldF9hbHBoYXRlc3RyZWZcIixcbiAgICBcImdwdV9zZXRfYmxlbmRlbmFibGVcIixcbiAgICBcImdwdV9zZXRfYmxlbmRtb2RlXCIsXG4gICAgXCJncHVfc2V0X2JsZW5kbW9kZV9leHRcIixcbiAgICBcImdwdV9zZXRfYmxlbmRtb2RlX2V4dF9zZXBhbHBoYVwiLFxuICAgIFwiZ3B1X3NldF9jb2xvcndyaXRlZW5hYmxlXCIsXG4gICAgXCJncHVfc2V0X2NvbG91cndyaXRlZW5hYmxlXCIsXG4gICAgXCJncHVfc2V0X2N1bGxtb2RlXCIsXG4gICAgXCJncHVfc2V0X2RlcHRoXCIsXG4gICAgXCJncHVfc2V0X2ZvZ1wiLFxuICAgIFwiZ3B1X3NldF9zdGF0ZVwiLFxuICAgIFwiZ3B1X3NldF90ZXhfZmlsdGVyXCIsXG4gICAgXCJncHVfc2V0X3RleF9maWx0ZXJfZXh0XCIsXG4gICAgXCJncHVfc2V0X3RleF9tYXhfYW5pc29cIixcbiAgICBcImdwdV9zZXRfdGV4X21heF9hbmlzb19leHRcIixcbiAgICBcImdwdV9zZXRfdGV4X21heF9taXBcIixcbiAgICBcImdwdV9zZXRfdGV4X21heF9taXBfZXh0XCIsXG4gICAgXCJncHVfc2V0X3RleF9taW5fbWlwXCIsXG4gICAgXCJncHVfc2V0X3RleF9taW5fbWlwX2V4dFwiLFxuICAgIFwiZ3B1X3NldF90ZXhfbWlwX2JpYXNcIixcbiAgICBcImdwdV9zZXRfdGV4X21pcF9iaWFzX2V4dFwiLFxuICAgIFwiZ3B1X3NldF90ZXhfbWlwX2VuYWJsZVwiLFxuICAgIFwiZ3B1X3NldF90ZXhfbWlwX2VuYWJsZV9leHRcIixcbiAgICBcImdwdV9zZXRfdGV4X21pcF9maWx0ZXJcIixcbiAgICBcImdwdV9zZXRfdGV4X21pcF9maWx0ZXJfZXh0XCIsXG4gICAgXCJncHVfc2V0X3RleF9yZXBlYXRcIixcbiAgICBcImdwdV9zZXRfdGV4X3JlcGVhdF9leHRcIixcbiAgICBcImdwdV9zZXRfdGV4ZmlsdGVyXCIsXG4gICAgXCJncHVfc2V0X3RleGZpbHRlcl9leHRcIixcbiAgICBcImdwdV9zZXRfdGV4cmVwZWF0XCIsXG4gICAgXCJncHVfc2V0X3RleHJlcGVhdF9leHRcIixcbiAgICBcImdwdV9zZXRfemZ1bmNcIixcbiAgICBcImdwdV9zZXRfenRlc3RlbmFibGVcIixcbiAgICBcImdwdV9zZXRfendyaXRlZW5hYmxlXCIsXG4gICAgXCJoYW5kbGVfcGFyc2VcIixcbiAgICBcImhpZ2hzY29yZV9hZGRcIixcbiAgICBcImhpZ2hzY29yZV9jbGVhclwiLFxuICAgIFwiaGlnaHNjb3JlX25hbWVcIixcbiAgICBcImhpZ2hzY29yZV92YWx1ZVwiLFxuICAgIFwiaHR0cF9nZXRcIixcbiAgICBcImh0dHBfZ2V0X2ZpbGVcIixcbiAgICBcImh0dHBfZ2V0X3JlcXVlc3RfY3Jvc3NvcmlnaW5cIixcbiAgICBcImh0dHBfcG9zdF9zdHJpbmdcIixcbiAgICBcImh0dHBfcmVxdWVzdFwiLFxuICAgIFwiaHR0cF9zZXRfcmVxdWVzdF9jcm9zc29yaWdpblwiLFxuICAgIFwiaWFwX2FjcXVpcmVcIixcbiAgICBcImlhcF9hY3RpdmF0ZVwiLFxuICAgIFwiaWFwX2NvbnN1bWVcIixcbiAgICBcImlhcF9lbnVtZXJhdGVfcHJvZHVjdHNcIixcbiAgICBcImlhcF9wcm9kdWN0X2RldGFpbHNcIixcbiAgICBcImlhcF9wdXJjaGFzZV9kZXRhaWxzXCIsXG4gICAgXCJpYXBfcmVzdG9yZV9hbGxcIixcbiAgICBcImlhcF9zdGF0dXNcIixcbiAgICBcImluaV9jbG9zZVwiLFxuICAgIFwiaW5pX2tleV9kZWxldGVcIixcbiAgICBcImluaV9rZXlfZXhpc3RzXCIsXG4gICAgXCJpbmlfb3BlblwiLFxuICAgIFwiaW5pX29wZW5fZnJvbV9zdHJpbmdcIixcbiAgICBcImluaV9yZWFkX3JlYWxcIixcbiAgICBcImluaV9yZWFkX3N0cmluZ1wiLFxuICAgIFwiaW5pX3NlY3Rpb25fZGVsZXRlXCIsXG4gICAgXCJpbmlfc2VjdGlvbl9leGlzdHNcIixcbiAgICBcImluaV93cml0ZV9yZWFsXCIsXG4gICAgXCJpbmlfd3JpdGVfc3RyaW5nXCIsXG4gICAgXCJpbnN0YW5jZV9hY3RpdmF0ZV9hbGxcIixcbiAgICBcImluc3RhbmNlX2FjdGl2YXRlX2xheWVyXCIsXG4gICAgXCJpbnN0YW5jZV9hY3RpdmF0ZV9vYmplY3RcIixcbiAgICBcImluc3RhbmNlX2FjdGl2YXRlX3JlZ2lvblwiLFxuICAgIFwiaW5zdGFuY2VfY2hhbmdlXCIsXG4gICAgXCJpbnN0YW5jZV9jb3B5XCIsXG4gICAgXCJpbnN0YW5jZV9jcmVhdGVfZGVwdGhcIixcbiAgICBcImluc3RhbmNlX2NyZWF0ZV9sYXllclwiLFxuICAgIFwiaW5zdGFuY2VfZGVhY3RpdmF0ZV9hbGxcIixcbiAgICBcImluc3RhbmNlX2RlYWN0aXZhdGVfbGF5ZXJcIixcbiAgICBcImluc3RhbmNlX2RlYWN0aXZhdGVfb2JqZWN0XCIsXG4gICAgXCJpbnN0YW5jZV9kZWFjdGl2YXRlX3JlZ2lvblwiLFxuICAgIFwiaW5zdGFuY2VfZGVzdHJveVwiLFxuICAgIFwiaW5zdGFuY2VfZXhpc3RzXCIsXG4gICAgXCJpbnN0YW5jZV9maW5kXCIsXG4gICAgXCJpbnN0YW5jZV9mdXJ0aGVzdFwiLFxuICAgIFwiaW5zdGFuY2VfaWRfZ2V0XCIsXG4gICAgXCJpbnN0YW5jZV9uZWFyZXN0XCIsXG4gICAgXCJpbnN0YW5jZV9udW1iZXJcIixcbiAgICBcImluc3RhbmNlX3BsYWNlXCIsXG4gICAgXCJpbnN0YW5jZV9wbGFjZV9saXN0XCIsXG4gICAgXCJpbnN0YW5jZV9wb3NpdGlvblwiLFxuICAgIFwiaW5zdGFuY2VfcG9zaXRpb25fbGlzdFwiLFxuICAgIFwiaW5zdGFuY2VvZlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcImlvX2NsZWFyXCIsXG4gICAgXCJpcmFuZG9tXCIsXG4gICAgXCJpcmFuZG9tX3JhbmdlXCIsXG4gICAgXCJpc19hcnJheVwiLFxuICAgIFwiaXNfYm9vbFwiLFxuICAgIFwiaXNfY2FsbGFibGVcIixcbiAgICBcImlzX2RlYnVnX292ZXJsYXlfb3BlblwiLFxuICAgIFwiaXNfaGFuZGxlXCIsXG4gICAgXCJpc19pbmZpbml0eVwiLFxuICAgIFwiaXNfaW5zdGFuY2VvZlwiLFxuICAgIFwiaXNfaW50MzJcIixcbiAgICBcImlzX2ludDY0XCIsXG4gICAgXCJpc19rZXlib2FyZF91c2VkX2RlYnVnX292ZXJsYXlcIixcbiAgICBcImlzX21ldGhvZFwiLFxuICAgIFwiaXNfbW91c2Vfb3Zlcl9kZWJ1Z19vdmVybGF5XCIsXG4gICAgXCJpc19uYW5cIixcbiAgICBcImlzX251bWVyaWNcIixcbiAgICBcImlzX3B0clwiLFxuICAgIFwiaXNfcmVhbFwiLFxuICAgIFwiaXNfc3RyaW5nXCIsXG4gICAgXCJpc19zdHJ1Y3RcIixcbiAgICBcImlzX3VuZGVmaW5lZFwiLFxuICAgIFwianNvbl9kZWNvZGVcIixcbiAgICBcImpzb25fZW5jb2RlXCIsXG4gICAgXCJqc29uX3BhcnNlXCIsXG4gICAgXCJqc29uX3N0cmluZ2lmeVwiLFxuICAgIFwia2V5Ym9hcmRfY2hlY2tcIixcbiAgICBcImtleWJvYXJkX2NoZWNrX2RpcmVjdFwiLFxuICAgIFwia2V5Ym9hcmRfY2hlY2tfcHJlc3NlZFwiLFxuICAgIFwia2V5Ym9hcmRfY2hlY2tfcmVsZWFzZWRcIixcbiAgICBcImtleWJvYXJkX2NsZWFyXCIsXG4gICAgXCJrZXlib2FyZF9nZXRfbWFwXCIsXG4gICAgXCJrZXlib2FyZF9nZXRfbnVtbG9ja1wiLFxuICAgIFwia2V5Ym9hcmRfa2V5X3ByZXNzXCIsXG4gICAgXCJrZXlib2FyZF9rZXlfcmVsZWFzZVwiLFxuICAgIFwia2V5Ym9hcmRfc2V0X21hcFwiLFxuICAgIFwia2V5Ym9hcmRfc2V0X251bWxvY2tcIixcbiAgICBcImtleWJvYXJkX3Vuc2V0X21hcFwiLFxuICAgIFwia2V5Ym9hcmRfdmlydHVhbF9oZWlnaHRcIixcbiAgICBcImtleWJvYXJkX3ZpcnR1YWxfaGlkZVwiLFxuICAgIFwia2V5Ym9hcmRfdmlydHVhbF9zaG93XCIsXG4gICAgXCJrZXlib2FyZF92aXJ0dWFsX3N0YXR1c1wiLFxuICAgIFwibGF5ZXJfYWRkX2luc3RhbmNlXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2FscGhhXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2JsZW5kXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2NoYW5nZVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9jcmVhdGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZGVzdHJveVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9leGlzdHNcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X2FscGhhXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF9ibGVuZFwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9nZXRfaHRpbGVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF9pZFwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9nZXRfaW5kZXhcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3NwZWVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF9zcHJpdGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3N0cmV0Y2hcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3Zpc2libGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3Z0aWxlZFwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9nZXRfeHNjYWxlXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF95c2NhbGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfaHRpbGVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2luZGV4XCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3NwZWVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3Nwcml0ZVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9zdHJldGNoXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3Zpc2libGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfdnRpbGVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3hzY2FsZVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF95c2NhbGVcIixcbiAgICBcImxheWVyX2NsZWFyX2Z4XCIsXG4gICAgXCJsYXllcl9jcmVhdGVcIixcbiAgICBcImxheWVyX2RlcHRoXCIsXG4gICAgXCJsYXllcl9kZXN0cm95XCIsXG4gICAgXCJsYXllcl9kZXN0cm95X2luc3RhbmNlc1wiLFxuICAgIFwibGF5ZXJfZWxlbWVudF9tb3ZlXCIsXG4gICAgXCJsYXllcl9lbmFibGVfZnhcIixcbiAgICBcImxheWVyX2V4aXN0c1wiLFxuICAgIFwibGF5ZXJfZm9yY2VfZHJhd19kZXB0aFwiLFxuICAgIFwibGF5ZXJfZnhfaXNfZW5hYmxlZFwiLFxuICAgIFwibGF5ZXJfZ2V0X2FsbFwiLFxuICAgIFwibGF5ZXJfZ2V0X2FsbF9lbGVtZW50c1wiLFxuICAgIFwibGF5ZXJfZ2V0X2RlcHRoXCIsXG4gICAgXCJsYXllcl9nZXRfZWxlbWVudF9sYXllclwiLFxuICAgIFwibGF5ZXJfZ2V0X2VsZW1lbnRfdHlwZVwiLFxuICAgIFwibGF5ZXJfZ2V0X2ZvcmNlZF9kZXB0aFwiLFxuICAgIFwibGF5ZXJfZ2V0X2Z4XCIsXG4gICAgXCJsYXllcl9nZXRfaHNwZWVkXCIsXG4gICAgXCJsYXllcl9nZXRfaWRcIixcbiAgICBcImxheWVyX2dldF9pZF9hdF9kZXB0aFwiLFxuICAgIFwibGF5ZXJfZ2V0X25hbWVcIixcbiAgICBcImxheWVyX2dldF9zY3JpcHRfYmVnaW5cIixcbiAgICBcImxheWVyX2dldF9zY3JpcHRfZW5kXCIsXG4gICAgXCJsYXllcl9nZXRfc2hhZGVyXCIsXG4gICAgXCJsYXllcl9nZXRfdGFyZ2V0X3Jvb21cIixcbiAgICBcImxheWVyX2dldF92aXNpYmxlXCIsXG4gICAgXCJsYXllcl9nZXRfdnNwZWVkXCIsXG4gICAgXCJsYXllcl9nZXRfeFwiLFxuICAgIFwibGF5ZXJfZ2V0X3lcIixcbiAgICBcImxheWVyX2hhc19pbnN0YW5jZVwiLFxuICAgIFwibGF5ZXJfaHNwZWVkXCIsXG4gICAgXCJsYXllcl9pbnN0YW5jZV9nZXRfaW5zdGFuY2VcIixcbiAgICBcImxheWVyX2lzX2RyYXdfZGVwdGhfZm9yY2VkXCIsXG4gICAgXCJsYXllcl9yZXNldF90YXJnZXRfcm9vbVwiLFxuICAgIFwibGF5ZXJfc2NyaXB0X2JlZ2luXCIsXG4gICAgXCJsYXllcl9zY3JpcHRfZW5kXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9hbmdsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfY3JlYXRlXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9kZXN0cm95XCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9leGlzdHNcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9hbmdsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfZ2V0X2hlYWRkaXJcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9oZWFkcG9zXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9nZXRfaW5zdGFuY2VcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9sZW5ndGhcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9zZXF1ZW5jZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfZ2V0X3NwZWVkc2NhbGVcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF94XCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9nZXRfeHNjYWxlXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9nZXRfeVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfZ2V0X3lzY2FsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfaGVhZGRpclwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfaGVhZHBvc1wiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfaXNfZmluaXNoZWRcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2lzX3BhdXNlZFwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfcGF1c2VcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3BsYXlcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3NwZWVkc2NhbGVcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3hcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3hzY2FsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfeVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfeXNjYWxlXCIsXG4gICAgXCJsYXllcl9zZXRfZnhcIixcbiAgICBcImxheWVyX3NldF90YXJnZXRfcm9vbVwiLFxuICAgIFwibGF5ZXJfc2V0X3Zpc2libGVcIixcbiAgICBcImxheWVyX3NoYWRlclwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2FscGhhXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfYW5nbGVcIixcbiAgICBcImxheWVyX3Nwcml0ZV9ibGVuZFwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2NoYW5nZVwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2NyZWF0ZVwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2Rlc3Ryb3lcIixcbiAgICBcImxheWVyX3Nwcml0ZV9leGlzdHNcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfYWxwaGFcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfYW5nbGVcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfYmxlbmRcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfaWRcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfaW5kZXhcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfc3BlZWRcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfc3ByaXRlXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfZ2V0X3hcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfeHNjYWxlXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfZ2V0X3lcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfeXNjYWxlXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfaW5kZXhcIixcbiAgICBcImxheWVyX3Nwcml0ZV9zcGVlZFwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX3hcIixcbiAgICBcImxheWVyX3Nwcml0ZV94c2NhbGVcIixcbiAgICBcImxheWVyX3Nwcml0ZV95XCIsXG4gICAgXCJsYXllcl9zcHJpdGVfeXNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlX2FscGhhXCIsXG4gICAgXCJsYXllcl90aWxlX2JsZW5kXCIsXG4gICAgXCJsYXllcl90aWxlX2NoYW5nZVwiLFxuICAgIFwibGF5ZXJfdGlsZV9jcmVhdGVcIixcbiAgICBcImxheWVyX3RpbGVfZGVzdHJveVwiLFxuICAgIFwibGF5ZXJfdGlsZV9leGlzdHNcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X2FscGhhXCIsXG4gICAgXCJsYXllcl90aWxlX2dldF9ibGVuZFwiLFxuICAgIFwibGF5ZXJfdGlsZV9nZXRfcmVnaW9uXCIsXG4gICAgXCJsYXllcl90aWxlX2dldF9zcHJpdGVcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X3Zpc2libGVcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X3hcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X3hzY2FsZVwiLFxuICAgIFwibGF5ZXJfdGlsZV9nZXRfeVwiLFxuICAgIFwibGF5ZXJfdGlsZV9nZXRfeXNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlX3JlZ2lvblwiLFxuICAgIFwibGF5ZXJfdGlsZV92aXNpYmxlXCIsXG4gICAgXCJsYXllcl90aWxlX3hcIixcbiAgICBcImxheWVyX3RpbGVfeHNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlX3lcIixcbiAgICBcImxheWVyX3RpbGVfeXNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlbWFwX2NyZWF0ZVwiLFxuICAgIFwibGF5ZXJfdGlsZW1hcF9kZXN0cm95XCIsXG4gICAgXCJsYXllcl90aWxlbWFwX2V4aXN0c1wiLFxuICAgIFwibGF5ZXJfdGlsZW1hcF9nZXRfaWRcIixcbiAgICBcImxheWVyX3ZzcGVlZFwiLFxuICAgIFwibGF5ZXJfeFwiLFxuICAgIFwibGF5ZXJfeVwiLFxuICAgIFwibGVuZ3RoZGlyX3hcIixcbiAgICBcImxlbmd0aGRpcl95XCIsXG4gICAgXCJsZXJwXCIsXG4gICAgXCJsaW5fdG9fZGJcIixcbiAgICBcImxuXCIsXG4gICAgXCJsb2FkX2NzdlwiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvZzJcIixcbiAgICBcImxvZ25cIixcbiAgICBcIm1ha2VfY29sb3JfaHN2XCIsXG4gICAgXCJtYWtlX2NvbG9yX3JnYlwiLFxuICAgIFwibWFrZV9jb2xvdXJfaHN2XCIsXG4gICAgXCJtYWtlX2NvbG91cl9yZ2JcIixcbiAgICBcIm1hdGhfZ2V0X2Vwc2lsb25cIixcbiAgICBcIm1hdGhfc2V0X2Vwc2lsb25cIixcbiAgICBcIm1hdHJpeF9idWlsZFwiLFxuICAgIFwibWF0cml4X2J1aWxkX2lkZW50aXR5XCIsXG4gICAgXCJtYXRyaXhfYnVpbGRfbG9va2F0XCIsXG4gICAgXCJtYXRyaXhfYnVpbGRfcHJvamVjdGlvbl9vcnRob1wiLFxuICAgIFwibWF0cml4X2J1aWxkX3Byb2plY3Rpb25fcGVyc3BlY3RpdmVcIixcbiAgICBcIm1hdHJpeF9idWlsZF9wcm9qZWN0aW9uX3BlcnNwZWN0aXZlX2ZvdlwiLFxuICAgIFwibWF0cml4X2dldFwiLFxuICAgIFwibWF0cml4X211bHRpcGx5XCIsXG4gICAgXCJtYXRyaXhfc2V0XCIsXG4gICAgXCJtYXRyaXhfc3RhY2tfY2xlYXJcIixcbiAgICBcIm1hdHJpeF9zdGFja19pc19lbXB0eVwiLFxuICAgIFwibWF0cml4X3N0YWNrX3BvcFwiLFxuICAgIFwibWF0cml4X3N0YWNrX3B1c2hcIixcbiAgICBcIm1hdHJpeF9zdGFja19zZXRcIixcbiAgICBcIm1hdHJpeF9zdGFja190b3BcIixcbiAgICBcIm1hdHJpeF90cmFuc2Zvcm1fdmVydGV4XCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1kNV9maWxlXCIsXG4gICAgXCJtZDVfc3RyaW5nX3VuaWNvZGVcIixcbiAgICBcIm1kNV9zdHJpbmdfdXRmOFwiLFxuICAgIFwibWVhblwiLFxuICAgIFwibWVkaWFuXCIsXG4gICAgXCJtZXJnZV9jb2xvclwiLFxuICAgIFwibWVyZ2VfY29sb3VyXCIsXG4gICAgXCJtZXRob2RcIixcbiAgICBcIm1ldGhvZF9jYWxsXCIsXG4gICAgXCJtZXRob2RfZ2V0X2luZGV4XCIsXG4gICAgXCJtZXRob2RfZ2V0X3NlbGZcIixcbiAgICBcIm1pblwiLFxuICAgIFwibW90aW9uX2FkZFwiLFxuICAgIFwibW90aW9uX3NldFwiLFxuICAgIFwibW91c2VfY2hlY2tfYnV0dG9uXCIsXG4gICAgXCJtb3VzZV9jaGVja19idXR0b25fcHJlc3NlZFwiLFxuICAgIFwibW91c2VfY2hlY2tfYnV0dG9uX3JlbGVhc2VkXCIsXG4gICAgXCJtb3VzZV9jbGVhclwiLFxuICAgIFwibW91c2Vfd2hlZWxfZG93blwiLFxuICAgIFwibW91c2Vfd2hlZWxfdXBcIixcbiAgICBcIm1vdmVfYW5kX2NvbGxpZGVcIixcbiAgICBcIm1vdmVfYm91bmNlX2FsbFwiLFxuICAgIFwibW92ZV9ib3VuY2Vfc29saWRcIixcbiAgICBcIm1vdmVfY29udGFjdF9hbGxcIixcbiAgICBcIm1vdmVfY29udGFjdF9zb2xpZFwiLFxuICAgIFwibW92ZV9vdXRzaWRlX2FsbFwiLFxuICAgIFwibW92ZV9vdXRzaWRlX3NvbGlkXCIsXG4gICAgXCJtb3ZlX3JhbmRvbVwiLFxuICAgIFwibW92ZV9zbmFwXCIsXG4gICAgXCJtb3ZlX3Rvd2FyZHNfcG9pbnRcIixcbiAgICBcIm1vdmVfd3JhcFwiLFxuICAgIFwibXBfZ3JpZF9hZGRfY2VsbFwiLFxuICAgIFwibXBfZ3JpZF9hZGRfaW5zdGFuY2VzXCIsXG4gICAgXCJtcF9ncmlkX2FkZF9yZWN0YW5nbGVcIixcbiAgICBcIm1wX2dyaWRfY2xlYXJfYWxsXCIsXG4gICAgXCJtcF9ncmlkX2NsZWFyX2NlbGxcIixcbiAgICBcIm1wX2dyaWRfY2xlYXJfcmVjdGFuZ2xlXCIsXG4gICAgXCJtcF9ncmlkX2NyZWF0ZVwiLFxuICAgIFwibXBfZ3JpZF9kZXN0cm95XCIsXG4gICAgXCJtcF9ncmlkX2RyYXdcIixcbiAgICBcIm1wX2dyaWRfZ2V0X2NlbGxcIixcbiAgICBcIm1wX2dyaWRfcGF0aFwiLFxuICAgIFwibXBfZ3JpZF90b19kc19ncmlkXCIsXG4gICAgXCJtcF9saW5lYXJfcGF0aFwiLFxuICAgIFwibXBfbGluZWFyX3BhdGhfb2JqZWN0XCIsXG4gICAgXCJtcF9saW5lYXJfc3RlcFwiLFxuICAgIFwibXBfbGluZWFyX3N0ZXBfb2JqZWN0XCIsXG4gICAgXCJtcF9wb3RlbnRpYWxfcGF0aFwiLFxuICAgIFwibXBfcG90ZW50aWFsX3BhdGhfb2JqZWN0XCIsXG4gICAgXCJtcF9wb3RlbnRpYWxfc2V0dGluZ3NcIixcbiAgICBcIm1wX3BvdGVudGlhbF9zdGVwXCIsXG4gICAgXCJtcF9wb3RlbnRpYWxfc3RlcF9vYmplY3RcIixcbiAgICBcIm5hbWVvZlwiLFxuICAgIFwibmV0d29ya19jb25uZWN0XCIsXG4gICAgXCJuZXR3b3JrX2Nvbm5lY3RfYXN5bmNcIixcbiAgICBcIm5ldHdvcmtfY29ubmVjdF9yYXdcIixcbiAgICBcIm5ldHdvcmtfY29ubmVjdF9yYXdfYXN5bmNcIixcbiAgICBcIm5ldHdvcmtfY3JlYXRlX3NlcnZlclwiLFxuICAgIFwibmV0d29ya19jcmVhdGVfc2VydmVyX3Jhd1wiLFxuICAgIFwibmV0d29ya19jcmVhdGVfc29ja2V0XCIsXG4gICAgXCJuZXR3b3JrX2NyZWF0ZV9zb2NrZXRfZXh0XCIsXG4gICAgXCJuZXR3b3JrX2Rlc3Ryb3lcIixcbiAgICBcIm5ldHdvcmtfcmVzb2x2ZVwiLFxuICAgIFwibmV0d29ya19zZW5kX2Jyb2FkY2FzdFwiLFxuICAgIFwibmV0d29ya19zZW5kX3BhY2tldFwiLFxuICAgIFwibmV0d29ya19zZW5kX3Jhd1wiLFxuICAgIFwibmV0d29ya19zZW5kX3VkcFwiLFxuICAgIFwibmV0d29ya19zZW5kX3VkcF9yYXdcIixcbiAgICBcIm5ldHdvcmtfc2V0X2NvbmZpZ1wiLFxuICAgIFwibmV0d29ya19zZXRfdGltZW91dFwiLFxuICAgIFwib2JqZWN0X2V4aXN0c1wiLFxuICAgIFwib2JqZWN0X2dldF9tYXNrXCIsXG4gICAgXCJvYmplY3RfZ2V0X25hbWVcIixcbiAgICBcIm9iamVjdF9nZXRfcGFyZW50XCIsXG4gICAgXCJvYmplY3RfZ2V0X3BlcnNpc3RlbnRcIixcbiAgICBcIm9iamVjdF9nZXRfcGh5c2ljc1wiLFxuICAgIFwib2JqZWN0X2dldF9zb2xpZFwiLFxuICAgIFwib2JqZWN0X2dldF9zcHJpdGVcIixcbiAgICBcIm9iamVjdF9nZXRfdmlzaWJsZVwiLFxuICAgIFwib2JqZWN0X2lzX2FuY2VzdG9yXCIsXG4gICAgXCJvYmplY3Rfc2V0X21hc2tcIixcbiAgICBcIm9iamVjdF9zZXRfcGVyc2lzdGVudFwiLFxuICAgIFwib2JqZWN0X3NldF9zb2xpZFwiLFxuICAgIFwib2JqZWN0X3NldF9zcHJpdGVcIixcbiAgICBcIm9iamVjdF9zZXRfdmlzaWJsZVwiLFxuICAgIFwib3JkXCIsXG4gICAgXCJvc19jaGVja19wZXJtaXNzaW9uXCIsXG4gICAgXCJvc19nZXRfY29uZmlnXCIsXG4gICAgXCJvc19nZXRfaW5mb1wiLFxuICAgIFwib3NfZ2V0X2xhbmd1YWdlXCIsXG4gICAgXCJvc19nZXRfcmVnaW9uXCIsXG4gICAgXCJvc19pc19uZXR3b3JrX2Nvbm5lY3RlZFwiLFxuICAgIFwib3NfaXNfcGF1c2VkXCIsXG4gICAgXCJvc19sb2NrX29yaWVudGF0aW9uXCIsXG4gICAgXCJvc19wb3dlcnNhdmVfZW5hYmxlXCIsXG4gICAgXCJvc19yZXF1ZXN0X3Blcm1pc3Npb25cIixcbiAgICBcIm9zX3NldF9vcmllbnRhdGlvbl9sb2NrXCIsXG4gICAgXCJwYXJhbWV0ZXJfY291bnRcIixcbiAgICBcInBhcmFtZXRlcl9zdHJpbmdcIixcbiAgICBcInBhcnRfZW1pdHRlcl9idXJzdFwiLFxuICAgIFwicGFydF9lbWl0dGVyX2NsZWFyXCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfY3JlYXRlXCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfZGVsYXlcIixcbiAgICBcInBhcnRfZW1pdHRlcl9kZXN0cm95XCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfZGVzdHJveV9hbGxcIixcbiAgICBcInBhcnRfZW1pdHRlcl9lbmFibGVcIixcbiAgICBcInBhcnRfZW1pdHRlcl9leGlzdHNcIixcbiAgICBcInBhcnRfZW1pdHRlcl9pbnRlcnZhbFwiLFxuICAgIFwicGFydF9lbWl0dGVyX3JlZ2lvblwiLFxuICAgIFwicGFydF9lbWl0dGVyX3JlbGF0aXZlXCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfc3RyZWFtXCIsXG4gICAgXCJwYXJ0X3BhcnRpY2xlc19idXJzdFwiLFxuICAgIFwicGFydF9wYXJ0aWNsZXNfY2xlYXJcIixcbiAgICBcInBhcnRfcGFydGljbGVzX2NvdW50XCIsXG4gICAgXCJwYXJ0X3BhcnRpY2xlc19jcmVhdGVcIixcbiAgICBcInBhcnRfcGFydGljbGVzX2NyZWF0ZV9jb2xvclwiLFxuICAgIFwicGFydF9wYXJ0aWNsZXNfY3JlYXRlX2NvbG91clwiLFxuICAgIFwicGFydF9zeXN0ZW1fYW5nbGVcIixcbiAgICBcInBhcnRfc3lzdGVtX2F1dG9tYXRpY19kcmF3XCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9hdXRvbWF0aWNfdXBkYXRlXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9jbGVhclwiLFxuICAgIFwicGFydF9zeXN0ZW1fY29sb3JcIixcbiAgICBcInBhcnRfc3lzdGVtX2NvbG91clwiLFxuICAgIFwicGFydF9zeXN0ZW1fY3JlYXRlXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9jcmVhdGVfbGF5ZXJcIixcbiAgICBcInBhcnRfc3lzdGVtX2RlcHRoXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9kZXN0cm95XCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9kcmF3X29yZGVyXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9kcmF3aXRcIixcbiAgICBcInBhcnRfc3lzdGVtX2V4aXN0c1wiLFxuICAgIFwicGFydF9zeXN0ZW1fZ2V0X2luZm9cIixcbiAgICBcInBhcnRfc3lzdGVtX2dldF9sYXllclwiLFxuICAgIFwicGFydF9zeXN0ZW1fZ2xvYmFsX3NwYWNlXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9sYXllclwiLFxuICAgIFwicGFydF9zeXN0ZW1fcG9zaXRpb25cIixcbiAgICBcInBhcnRfc3lzdGVtX3VwZGF0ZVwiLFxuICAgIFwicGFydF90eXBlX2FscGhhMVwiLFxuICAgIFwicGFydF90eXBlX2FscGhhMlwiLFxuICAgIFwicGFydF90eXBlX2FscGhhM1wiLFxuICAgIFwicGFydF90eXBlX2JsZW5kXCIsXG4gICAgXCJwYXJ0X3R5cGVfY2xlYXJcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcjFcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcjJcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcjNcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcl9oc3ZcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcl9taXhcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcl9yZ2JcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvdXIxXCIsXG4gICAgXCJwYXJ0X3R5cGVfY29sb3VyMlwiLFxuICAgIFwicGFydF90eXBlX2NvbG91cjNcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvdXJfaHN2XCIsXG4gICAgXCJwYXJ0X3R5cGVfY29sb3VyX21peFwiLFxuICAgIFwicGFydF90eXBlX2NvbG91cl9yZ2JcIixcbiAgICBcInBhcnRfdHlwZV9jcmVhdGVcIixcbiAgICBcInBhcnRfdHlwZV9kZWF0aFwiLFxuICAgIFwicGFydF90eXBlX2Rlc3Ryb3lcIixcbiAgICBcInBhcnRfdHlwZV9kaXJlY3Rpb25cIixcbiAgICBcInBhcnRfdHlwZV9leGlzdHNcIixcbiAgICBcInBhcnRfdHlwZV9ncmF2aXR5XCIsXG4gICAgXCJwYXJ0X3R5cGVfbGlmZVwiLFxuICAgIFwicGFydF90eXBlX29yaWVudGF0aW9uXCIsXG4gICAgXCJwYXJ0X3R5cGVfc2NhbGVcIixcbiAgICBcInBhcnRfdHlwZV9zaGFwZVwiLFxuICAgIFwicGFydF90eXBlX3NpemVcIixcbiAgICBcInBhcnRfdHlwZV9zaXplX3hcIixcbiAgICBcInBhcnRfdHlwZV9zaXplX3lcIixcbiAgICBcInBhcnRfdHlwZV9zcGVlZFwiLFxuICAgIFwicGFydF90eXBlX3Nwcml0ZVwiLFxuICAgIFwicGFydF90eXBlX3N0ZXBcIixcbiAgICBcInBhcnRfdHlwZV9zdWJpbWFnZVwiLFxuICAgIFwicGFydGljbGVfZXhpc3RzXCIsXG4gICAgXCJwYXJ0aWNsZV9nZXRfaW5mb1wiLFxuICAgIFwicGF0aF9hZGRcIixcbiAgICBcInBhdGhfYWRkX3BvaW50XCIsXG4gICAgXCJwYXRoX2FwcGVuZFwiLFxuICAgIFwicGF0aF9hc3NpZ25cIixcbiAgICBcInBhdGhfY2hhbmdlX3BvaW50XCIsXG4gICAgXCJwYXRoX2NsZWFyX3BvaW50c1wiLFxuICAgIFwicGF0aF9kZWxldGVcIixcbiAgICBcInBhdGhfZGVsZXRlX3BvaW50XCIsXG4gICAgXCJwYXRoX2R1cGxpY2F0ZVwiLFxuICAgIFwicGF0aF9lbmRcIixcbiAgICBcInBhdGhfZXhpc3RzXCIsXG4gICAgXCJwYXRoX2ZsaXBcIixcbiAgICBcInBhdGhfZ2V0X2Nsb3NlZFwiLFxuICAgIFwicGF0aF9nZXRfa2luZFwiLFxuICAgIFwicGF0aF9nZXRfbGVuZ3RoXCIsXG4gICAgXCJwYXRoX2dldF9uYW1lXCIsXG4gICAgXCJwYXRoX2dldF9udW1iZXJcIixcbiAgICBcInBhdGhfZ2V0X3BvaW50X3NwZWVkXCIsXG4gICAgXCJwYXRoX2dldF9wb2ludF94XCIsXG4gICAgXCJwYXRoX2dldF9wb2ludF95XCIsXG4gICAgXCJwYXRoX2dldF9wcmVjaXNpb25cIixcbiAgICBcInBhdGhfZ2V0X3NwZWVkXCIsXG4gICAgXCJwYXRoX2dldF94XCIsXG4gICAgXCJwYXRoX2dldF95XCIsXG4gICAgXCJwYXRoX2luc2VydF9wb2ludFwiLFxuICAgIFwicGF0aF9taXJyb3JcIixcbiAgICBcInBhdGhfcmVzY2FsZVwiLFxuICAgIFwicGF0aF9yZXZlcnNlXCIsXG4gICAgXCJwYXRoX3JvdGF0ZVwiLFxuICAgIFwicGF0aF9zZXRfY2xvc2VkXCIsXG4gICAgXCJwYXRoX3NldF9raW5kXCIsXG4gICAgXCJwYXRoX3NldF9wcmVjaXNpb25cIixcbiAgICBcInBhdGhfc2hpZnRcIixcbiAgICBcInBhdGhfc3RhcnRcIixcbiAgICBcInBoeXNpY3NfYXBwbHlfYW5ndWxhcl9pbXB1bHNlXCIsXG4gICAgXCJwaHlzaWNzX2FwcGx5X2ZvcmNlXCIsXG4gICAgXCJwaHlzaWNzX2FwcGx5X2ltcHVsc2VcIixcbiAgICBcInBoeXNpY3NfYXBwbHlfbG9jYWxfZm9yY2VcIixcbiAgICBcInBoeXNpY3NfYXBwbHlfbG9jYWxfaW1wdWxzZVwiLFxuICAgIFwicGh5c2ljc19hcHBseV90b3JxdWVcIixcbiAgICBcInBoeXNpY3NfZHJhd19kZWJ1Z1wiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2FkZF9wb2ludFwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2JpbmRcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9iaW5kX2V4dFwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2RlbGV0ZVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9hbmd1bGFyX2RhbXBpbmdcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9zZXRfYXdha2VcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9zZXRfYm94X3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2NoYWluX3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2NpcmNsZV9zaGFwZVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9jb2xsaXNpb25fZ3JvdXBcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9zZXRfZGVuc2l0eVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9lZGdlX3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2ZyaWN0aW9uXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2tpbmVtYXRpY1wiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9saW5lYXJfZGFtcGluZ1wiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9wb2x5Z29uX3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X3Jlc3RpdHV0aW9uXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X3NlbnNvclwiLFxuICAgIFwicGh5c2ljc19nZXRfZGVuc2l0eVwiLFxuICAgIFwicGh5c2ljc19nZXRfZnJpY3Rpb25cIixcbiAgICBcInBoeXNpY3NfZ2V0X3Jlc3RpdHV0aW9uXCIsXG4gICAgXCJwaHlzaWNzX2pvaW50X2RlbGV0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9kaXN0YW5jZV9jcmVhdGVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfZW5hYmxlX21vdG9yXCIsXG4gICAgXCJwaHlzaWNzX2pvaW50X2ZyaWN0aW9uX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9nZWFyX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9nZXRfdmFsdWVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfcHJpc21hdGljX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9wdWxsZXlfY3JlYXRlXCIsXG4gICAgXCJwaHlzaWNzX2pvaW50X3Jldm9sdXRlX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9yb3BlX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9zZXRfdmFsdWVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfd2VsZF9jcmVhdGVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfd2hlZWxfY3JlYXRlXCIsXG4gICAgXCJwaHlzaWNzX21hc3NfcHJvcGVydGllc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9jb3VudFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9jcmVhdGVcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZGVsZXRlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fYm94XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fY2lyY2xlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fcG9seVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9kcmF3XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RyYXdfZXh0XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kYW1waW5nXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kYXRhXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kYXRhX3BhcnRpY2xlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kZW5zaXR5XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9ncmF2aXR5X3NjYWxlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9ncm91cF9mbGFnc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9nZXRfbWF4X2NvdW50XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9yYWRpdXNcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfYWRkX3BvaW50XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2JlZ2luXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2JveFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9jaXJjbGVcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfY291bnRcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZGVsZXRlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2VuZFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfYW5nX3ZlbFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfYW5nbGVcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZ2V0X2NlbnRyZV94XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF9jZW50cmVfeVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfZGF0YVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfaW5lcnRpYVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfbWFzc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfdmVsX3hcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZ2V0X3ZlbF95XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF94XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF95XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2pvaW5cIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfcG9seWdvblwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9zZXRfY2F0ZWdvcnlfZmxhZ3NcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfc2V0X2RhbXBpbmdcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfc2V0X2RlbnNpdHlcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfc2V0X2ZsYWdzXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX3NldF9ncmF2aXR5X3NjYWxlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX3NldF9ncm91cF9mbGFnc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9zZXRfbWF4X2NvdW50XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX3NldF9yYWRpdXNcIixcbiAgICBcInBoeXNpY3NfcGF1c2VfZW5hYmxlXCIsXG4gICAgXCJwaHlzaWNzX3JlbW92ZV9maXh0dXJlXCIsXG4gICAgXCJwaHlzaWNzX3NldF9kZW5zaXR5XCIsXG4gICAgXCJwaHlzaWNzX3NldF9mcmljdGlvblwiLFxuICAgIFwicGh5c2ljc19zZXRfcmVzdGl0dXRpb25cIixcbiAgICBcInBoeXNpY3NfdGVzdF9vdmVybGFwXCIsXG4gICAgXCJwaHlzaWNzX3dvcmxkX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc193b3JsZF9kcmF3X2RlYnVnXCIsXG4gICAgXCJwaHlzaWNzX3dvcmxkX2dyYXZpdHlcIixcbiAgICBcInBoeXNpY3Nfd29ybGRfdXBkYXRlX2l0ZXJhdGlvbnNcIixcbiAgICBcInBoeXNpY3Nfd29ybGRfdXBkYXRlX3NwZWVkXCIsXG4gICAgXCJwbGFjZV9lbXB0eVwiLFxuICAgIFwicGxhY2VfZnJlZVwiLFxuICAgIFwicGxhY2VfbWVldGluZ1wiLFxuICAgIFwicGxhY2Vfc25hcHBlZFwiLFxuICAgIFwicG9pbnRfZGlyZWN0aW9uXCIsXG4gICAgXCJwb2ludF9kaXN0YW5jZVwiLFxuICAgIFwicG9pbnRfZGlzdGFuY2VfM2RcIixcbiAgICBcInBvaW50X2luX2NpcmNsZVwiLFxuICAgIFwicG9pbnRfaW5fcmVjdGFuZ2xlXCIsXG4gICAgXCJwb2ludF9pbl90cmlhbmdsZVwiLFxuICAgIFwicG9zaXRpb25fY2hhbmdlXCIsXG4gICAgXCJwb3NpdGlvbl9kZXN0cm95XCIsXG4gICAgXCJwb3NpdGlvbl9lbXB0eVwiLFxuICAgIFwicG9zaXRpb25fbWVldGluZ1wiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInB0clwiLFxuICAgIFwicmFkdG9kZWdcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicmFuZG9tX2dldF9zZWVkXCIsXG4gICAgXCJyYW5kb21fcmFuZ2VcIixcbiAgICBcInJhbmRvbV9zZXRfc2VlZFwiLFxuICAgIFwicmFuZG9taXNlXCIsXG4gICAgXCJyYW5kb21pemVcIixcbiAgICBcInJlYWxcIixcbiAgICBcInJlY3RhbmdsZV9pbl9jaXJjbGVcIixcbiAgICBcInJlY3RhbmdsZV9pbl9yZWN0YW5nbGVcIixcbiAgICBcInJlY3RhbmdsZV9pbl90cmlhbmdsZVwiLFxuICAgIFwicmVmX2NyZWF0ZVwiLFxuICAgIFwicm9sbGJhY2tfY2hhdFwiLFxuICAgIFwicm9sbGJhY2tfY3JlYXRlX2dhbWVcIixcbiAgICBcInJvbGxiYWNrX2RlZmluZV9leHRyYV9uZXR3b3JrX2xhdGVuY3lcIixcbiAgICBcInJvbGxiYWNrX2RlZmluZV9pbnB1dFwiLFxuICAgIFwicm9sbGJhY2tfZGVmaW5lX2lucHV0X2ZyYW1lX2RlbGF5XCIsXG4gICAgXCJyb2xsYmFja19kZWZpbmVfbW9ja19pbnB1dFwiLFxuICAgIFwicm9sbGJhY2tfZGVmaW5lX3BsYXllclwiLFxuICAgIFwicm9sbGJhY2tfZGlzcGxheV9ldmVudHNcIixcbiAgICBcInJvbGxiYWNrX2dldF9pbmZvXCIsXG4gICAgXCJyb2xsYmFja19nZXRfaW5wdXRcIixcbiAgICBcInJvbGxiYWNrX2dldF9wbGF5ZXJfcHJlZnNcIixcbiAgICBcInJvbGxiYWNrX2pvaW5fZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfbGVhdmVfZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfc2V0X3BsYXllcl9wcmVmc1wiLFxuICAgIFwicm9sbGJhY2tfc3RhcnRfZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfc3luY19vbl9mcmFtZVwiLFxuICAgIFwicm9sbGJhY2tfdXNlX2xhdGVfam9pblwiLFxuICAgIFwicm9sbGJhY2tfdXNlX21hbnVhbF9zdGFydFwiLFxuICAgIFwicm9sbGJhY2tfdXNlX3BsYXllcl9wcmVmc1wiLFxuICAgIFwicm9sbGJhY2tfdXNlX3JhbmRvbV9pbnB1dFwiLFxuICAgIFwicm9vbV9hZGRcIixcbiAgICBcInJvb21fYXNzaWduXCIsXG4gICAgXCJyb29tX2R1cGxpY2F0ZVwiLFxuICAgIFwicm9vbV9leGlzdHNcIixcbiAgICBcInJvb21fZ2V0X2NhbWVyYVwiLFxuICAgIFwicm9vbV9nZXRfaW5mb1wiLFxuICAgIFwicm9vbV9nZXRfbmFtZVwiLFxuICAgIFwicm9vbV9nZXRfdmlld3BvcnRcIixcbiAgICBcInJvb21fZ290b1wiLFxuICAgIFwicm9vbV9nb3RvX25leHRcIixcbiAgICBcInJvb21fZ290b19wcmV2aW91c1wiLFxuICAgIFwicm9vbV9pbnN0YW5jZV9hZGRcIixcbiAgICBcInJvb21faW5zdGFuY2VfY2xlYXJcIixcbiAgICBcInJvb21fbmV4dFwiLFxuICAgIFwicm9vbV9wcmV2aW91c1wiLFxuICAgIFwicm9vbV9yZXN0YXJ0XCIsXG4gICAgXCJyb29tX3NldF9jYW1lcmFcIixcbiAgICBcInJvb21fc2V0X2hlaWdodFwiLFxuICAgIFwicm9vbV9zZXRfcGVyc2lzdGVudFwiLFxuICAgIFwicm9vbV9zZXRfdmlld19lbmFibGVkXCIsXG4gICAgXCJyb29tX3NldF92aWV3cG9ydFwiLFxuICAgIFwicm9vbV9zZXRfd2lkdGhcIixcbiAgICBcInJvdW5kXCIsXG4gICAgXCJzY2hlZHVsZXJfcmVzb2x1dGlvbl9nZXRcIixcbiAgICBcInNjaGVkdWxlcl9yZXNvbHV0aW9uX3NldFwiLFxuICAgIFwic2NyZWVuX3NhdmVcIixcbiAgICBcInNjcmVlbl9zYXZlX3BhcnRcIixcbiAgICBcInNjcmlwdF9leGVjdXRlXCIsXG4gICAgXCJzY3JpcHRfZXhlY3V0ZV9leHRcIixcbiAgICBcInNjcmlwdF9leGlzdHNcIixcbiAgICBcInNjcmlwdF9nZXRfbmFtZVwiLFxuICAgIFwic2VxdWVuY2VfY3JlYXRlXCIsXG4gICAgXCJzZXF1ZW5jZV9kZXN0cm95XCIsXG4gICAgXCJzZXF1ZW5jZV9leGlzdHNcIixcbiAgICBcInNlcXVlbmNlX2dldFwiLFxuICAgIFwic2VxdWVuY2VfZ2V0X29iamVjdHNcIixcbiAgICBcInNlcXVlbmNlX2luc3RhbmNlX292ZXJyaWRlX29iamVjdFwiLFxuICAgIFwic2VxdWVuY2Vfa2V5ZnJhbWVfbmV3XCIsXG4gICAgXCJzZXF1ZW5jZV9rZXlmcmFtZWRhdGFfbmV3XCIsXG4gICAgXCJzZXF1ZW5jZV90cmFja19uZXdcIixcbiAgICBcInNoYTFfZmlsZVwiLFxuICAgIFwic2hhMV9zdHJpbmdfdW5pY29kZVwiLFxuICAgIFwic2hhMV9zdHJpbmdfdXRmOFwiLFxuICAgIFwic2hhZGVyX2N1cnJlbnRcIixcbiAgICBcInNoYWRlcl9lbmFibGVfY29ybmVyX2lkXCIsXG4gICAgXCJzaGFkZXJfZ2V0X25hbWVcIixcbiAgICBcInNoYWRlcl9nZXRfc2FtcGxlcl9pbmRleFwiLFxuICAgIFwic2hhZGVyX2dldF91bmlmb3JtXCIsXG4gICAgXCJzaGFkZXJfaXNfY29tcGlsZWRcIixcbiAgICBcInNoYWRlcl9yZXNldFwiLFxuICAgIFwic2hhZGVyX3NldFwiLFxuICAgIFwic2hhZGVyX3NldF91bmlmb3JtX2ZcIixcbiAgICBcInNoYWRlcl9zZXRfdW5pZm9ybV9mX2FycmF5XCIsXG4gICAgXCJzaGFkZXJfc2V0X3VuaWZvcm1fZl9idWZmZXJcIixcbiAgICBcInNoYWRlcl9zZXRfdW5pZm9ybV9pXCIsXG4gICAgXCJzaGFkZXJfc2V0X3VuaWZvcm1faV9hcnJheVwiLFxuICAgIFwic2hhZGVyX3NldF91bmlmb3JtX21hdHJpeFwiLFxuICAgIFwic2hhZGVyX3NldF91bmlmb3JtX21hdHJpeF9hcnJheVwiLFxuICAgIFwic2hhZGVyc19hcmVfc3VwcG9ydGVkXCIsXG4gICAgXCJzaG9wX2xlYXZlX3JhdGluZ1wiLFxuICAgIFwic2hvd19kZWJ1Z19tZXNzYWdlXCIsXG4gICAgXCJzaG93X2RlYnVnX21lc3NhZ2VfZXh0XCIsXG4gICAgXCJzaG93X2RlYnVnX292ZXJsYXlcIixcbiAgICBcInNob3dfZXJyb3JcIixcbiAgICBcInNob3dfbWVzc2FnZVwiLFxuICAgIFwic2hvd19tZXNzYWdlX2FzeW5jXCIsXG4gICAgXCJzaG93X3F1ZXN0aW9uXCIsXG4gICAgXCJzaG93X3F1ZXN0aW9uX2FzeW5jXCIsXG4gICAgXCJzaWduXCIsXG4gICAgXCJzaW5cIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9jbGVhclwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldFwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldF9kdXJhdGlvblwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldF9ldmVudF9mcmFtZXNcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9nZXRfZXh0XCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fZ2V0X2ZyYW1lXCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fZ2V0X2ZyYW1lc1wiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldF9wb3NpdGlvblwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2lzX2ZpbmlzaGVkXCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25faXNfbG9vcGluZ1wiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2xpc3RcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9taXhcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9zZXRcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9zZXRfZXh0XCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fc2V0X2ZyYW1lXCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fc2V0X3Bvc2l0aW9uXCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X2NyZWF0ZVwiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9jcmVhdGVfY29sb3JcIixcbiAgICBcInNrZWxldG9uX2F0dGFjaG1lbnRfY3JlYXRlX2NvbG91clwiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9kZXN0cm95XCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X2V4aXN0c1wiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9nZXRcIixcbiAgICBcInNrZWxldG9uX2F0dGFjaG1lbnRfcmVwbGFjZVwiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9yZXBsYWNlX2NvbG9yXCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X3JlcGxhY2VfY29sb3VyXCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X3NldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9kYXRhX2dldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9kYXRhX3NldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9saXN0XCIsXG4gICAgXCJza2VsZXRvbl9ib25lX3N0YXRlX2dldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9zdGF0ZV9zZXRcIixcbiAgICBcInNrZWxldG9uX2NvbGxpc2lvbl9kcmF3X3NldFwiLFxuICAgIFwic2tlbGV0b25fZmluZF9zbG90XCIsXG4gICAgXCJza2VsZXRvbl9nZXRfYm91bmRzXCIsXG4gICAgXCJza2VsZXRvbl9nZXRfbWlubWF4XCIsXG4gICAgXCJza2VsZXRvbl9nZXRfbnVtX2JvdW5kc1wiLFxuICAgIFwic2tlbGV0b25fc2tpbl9jcmVhdGVcIixcbiAgICBcInNrZWxldG9uX3NraW5fZ2V0XCIsXG4gICAgXCJza2VsZXRvbl9za2luX2xpc3RcIixcbiAgICBcInNrZWxldG9uX3NraW5fc2V0XCIsXG4gICAgXCJza2VsZXRvbl9zbG90X2FscGhhX2dldFwiLFxuICAgIFwic2tlbGV0b25fc2xvdF9jb2xvcl9nZXRcIixcbiAgICBcInNrZWxldG9uX3Nsb3RfY29sb3Jfc2V0XCIsXG4gICAgXCJza2VsZXRvbl9zbG90X2NvbG91cl9nZXRcIixcbiAgICBcInNrZWxldG9uX3Nsb3RfY29sb3VyX3NldFwiLFxuICAgIFwic2tlbGV0b25fc2xvdF9kYXRhXCIsXG4gICAgXCJza2VsZXRvbl9zbG90X2RhdGFfaW5zdGFuY2VcIixcbiAgICBcInNrZWxldG9uX3Nsb3RfbGlzdFwiLFxuICAgIFwic3ByaXRlX2FkZFwiLFxuICAgIFwic3ByaXRlX2FkZF9leHRcIixcbiAgICBcInNwcml0ZV9hZGRfZnJvbV9zdXJmYWNlXCIsXG4gICAgXCJzcHJpdGVfYXNzaWduXCIsXG4gICAgXCJzcHJpdGVfY29sbGlzaW9uX21hc2tcIixcbiAgICBcInNwcml0ZV9jcmVhdGVfZnJvbV9zdXJmYWNlXCIsXG4gICAgXCJzcHJpdGVfZGVsZXRlXCIsXG4gICAgXCJzcHJpdGVfZHVwbGljYXRlXCIsXG4gICAgXCJzcHJpdGVfZXhpc3RzXCIsXG4gICAgXCJzcHJpdGVfZmx1c2hcIixcbiAgICBcInNwcml0ZV9mbHVzaF9tdWx0aVwiLFxuICAgIFwic3ByaXRlX2dldF9iYm94X2JvdHRvbVwiLFxuICAgIFwic3ByaXRlX2dldF9iYm94X2xlZnRcIixcbiAgICBcInNwcml0ZV9nZXRfYmJveF9tb2RlXCIsXG4gICAgXCJzcHJpdGVfZ2V0X2Jib3hfcmlnaHRcIixcbiAgICBcInNwcml0ZV9nZXRfYmJveF90b3BcIixcbiAgICBcInNwcml0ZV9nZXRfaGVpZ2h0XCIsXG4gICAgXCJzcHJpdGVfZ2V0X2luZm9cIixcbiAgICBcInNwcml0ZV9nZXRfbmFtZVwiLFxuICAgIFwic3ByaXRlX2dldF9uaW5lc2xpY2VcIixcbiAgICBcInNwcml0ZV9nZXRfbnVtYmVyXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3NwZWVkXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3NwZWVkX3R5cGVcIixcbiAgICBcInNwcml0ZV9nZXRfdGV4dHVyZVwiLFxuICAgIFwic3ByaXRlX2dldF90cGVcIixcbiAgICBcInNwcml0ZV9nZXRfdXZzXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3dpZHRoXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3hvZmZzZXRcIixcbiAgICBcInNwcml0ZV9nZXRfeW9mZnNldFwiLFxuICAgIFwic3ByaXRlX21lcmdlXCIsXG4gICAgXCJzcHJpdGVfbmluZXNsaWNlX2NyZWF0ZVwiLFxuICAgIFwic3ByaXRlX3ByZWZldGNoXCIsXG4gICAgXCJzcHJpdGVfcHJlZmV0Y2hfbXVsdGlcIixcbiAgICBcInNwcml0ZV9yZXBsYWNlXCIsXG4gICAgXCJzcHJpdGVfc2F2ZVwiLFxuICAgIFwic3ByaXRlX3NhdmVfc3RyaXBcIixcbiAgICBcInNwcml0ZV9zZXRfYWxwaGFfZnJvbV9zcHJpdGVcIixcbiAgICBcInNwcml0ZV9zZXRfYmJveFwiLFxuICAgIFwic3ByaXRlX3NldF9iYm94X21vZGVcIixcbiAgICBcInNwcml0ZV9zZXRfY2FjaGVfc2l6ZVwiLFxuICAgIFwic3ByaXRlX3NldF9jYWNoZV9zaXplX2V4dFwiLFxuICAgIFwic3ByaXRlX3NldF9uaW5lc2xpY2VcIixcbiAgICBcInNwcml0ZV9zZXRfb2Zmc2V0XCIsXG4gICAgXCJzcHJpdGVfc2V0X3NwZWVkXCIsXG4gICAgXCJzcXJcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0YXRpY19nZXRcIixcbiAgICBcInN0YXRpY19zZXRcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwic3RyaW5nX2J5dGVfYXRcIixcbiAgICBcInN0cmluZ19ieXRlX2xlbmd0aFwiLFxuICAgIFwic3RyaW5nX2NoYXJfYXRcIixcbiAgICBcInN0cmluZ19jb25jYXRcIixcbiAgICBcInN0cmluZ19jb25jYXRfZXh0XCIsXG4gICAgXCJzdHJpbmdfY29weVwiLFxuICAgIFwic3RyaW5nX2NvdW50XCIsXG4gICAgXCJzdHJpbmdfZGVsZXRlXCIsXG4gICAgXCJzdHJpbmdfZGlnaXRzXCIsXG4gICAgXCJzdHJpbmdfZW5kc193aXRoXCIsXG4gICAgXCJzdHJpbmdfZXh0XCIsXG4gICAgXCJzdHJpbmdfZm9yZWFjaFwiLFxuICAgIFwic3RyaW5nX2Zvcm1hdFwiLFxuICAgIFwic3RyaW5nX2hhc2hfdG9fbmV3bGluZVwiLFxuICAgIFwic3RyaW5nX2hlaWdodFwiLFxuICAgIFwic3RyaW5nX2hlaWdodF9leHRcIixcbiAgICBcInN0cmluZ19pbnNlcnRcIixcbiAgICBcInN0cmluZ19qb2luXCIsXG4gICAgXCJzdHJpbmdfam9pbl9leHRcIixcbiAgICBcInN0cmluZ19sYXN0X3Bvc1wiLFxuICAgIFwic3RyaW5nX2xhc3RfcG9zX2V4dFwiLFxuICAgIFwic3RyaW5nX2xlbmd0aFwiLFxuICAgIFwic3RyaW5nX2xldHRlcnNcIixcbiAgICBcInN0cmluZ19sZXR0ZXJzZGlnaXRzXCIsXG4gICAgXCJzdHJpbmdfbG93ZXJcIixcbiAgICBcInN0cmluZ19vcmRfYXRcIixcbiAgICBcInN0cmluZ19wb3NcIixcbiAgICBcInN0cmluZ19wb3NfZXh0XCIsXG4gICAgXCJzdHJpbmdfcmVwZWF0XCIsXG4gICAgXCJzdHJpbmdfcmVwbGFjZVwiLFxuICAgIFwic3RyaW5nX3JlcGxhY2VfYWxsXCIsXG4gICAgXCJzdHJpbmdfc2V0X2J5dGVfYXRcIixcbiAgICBcInN0cmluZ19zcGxpdFwiLFxuICAgIFwic3RyaW5nX3NwbGl0X2V4dFwiLFxuICAgIFwic3RyaW5nX3N0YXJ0c193aXRoXCIsXG4gICAgXCJzdHJpbmdfdHJpbVwiLFxuICAgIFwic3RyaW5nX3RyaW1fZW5kXCIsXG4gICAgXCJzdHJpbmdfdHJpbV9zdGFydFwiLFxuICAgIFwic3RyaW5nX3VwcGVyXCIsXG4gICAgXCJzdHJpbmdfd2lkdGhcIixcbiAgICBcInN0cmluZ193aWR0aF9leHRcIixcbiAgICBcInN0cnVjdF9leGlzdHNcIixcbiAgICBcInN0cnVjdF9mb3JlYWNoXCIsXG4gICAgXCJzdHJ1Y3RfZ2V0XCIsXG4gICAgXCJzdHJ1Y3RfZ2V0X2Zyb21faGFzaFwiLFxuICAgIFwic3RydWN0X2dldF9uYW1lc1wiLFxuICAgIFwic3RydWN0X25hbWVzX2NvdW50XCIsXG4gICAgXCJzdHJ1Y3RfcmVtb3ZlXCIsXG4gICAgXCJzdHJ1Y3Rfc2V0XCIsXG4gICAgXCJzdHJ1Y3Rfc2V0X2Zyb21faGFzaFwiLFxuICAgIFwic3VyZmFjZV9jb3B5XCIsXG4gICAgXCJzdXJmYWNlX2NvcHlfcGFydFwiLFxuICAgIFwic3VyZmFjZV9jcmVhdGVcIixcbiAgICBcInN1cmZhY2VfY3JlYXRlX2V4dFwiLFxuICAgIFwic3VyZmFjZV9kZXB0aF9kaXNhYmxlXCIsXG4gICAgXCJzdXJmYWNlX2V4aXN0c1wiLFxuICAgIFwic3VyZmFjZV9mb3JtYXRfaXNfc3VwcG9ydGVkXCIsXG4gICAgXCJzdXJmYWNlX2ZyZWVcIixcbiAgICBcInN1cmZhY2VfZ2V0X2RlcHRoX2Rpc2FibGVcIixcbiAgICBcInN1cmZhY2VfZ2V0X2Zvcm1hdFwiLFxuICAgIFwic3VyZmFjZV9nZXRfaGVpZ2h0XCIsXG4gICAgXCJzdXJmYWNlX2dldF90YXJnZXRcIixcbiAgICBcInN1cmZhY2VfZ2V0X3RhcmdldF9leHRcIixcbiAgICBcInN1cmZhY2VfZ2V0X3RleHR1cmVcIixcbiAgICBcInN1cmZhY2VfZ2V0X3dpZHRoXCIsXG4gICAgXCJzdXJmYWNlX2dldHBpeGVsXCIsXG4gICAgXCJzdXJmYWNlX2dldHBpeGVsX2V4dFwiLFxuICAgIFwic3VyZmFjZV9yZXNldF90YXJnZXRcIixcbiAgICBcInN1cmZhY2VfcmVzaXplXCIsXG4gICAgXCJzdXJmYWNlX3NhdmVcIixcbiAgICBcInN1cmZhY2Vfc2F2ZV9wYXJ0XCIsXG4gICAgXCJzdXJmYWNlX3NldF90YXJnZXRcIixcbiAgICBcInN1cmZhY2Vfc2V0X3RhcmdldF9leHRcIixcbiAgICBcInRhZ19nZXRfYXNzZXRfaWRzXCIsXG4gICAgXCJ0YWdfZ2V0X2Fzc2V0c1wiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0ZXh0dXJlX2RlYnVnX21lc3NhZ2VzXCIsXG4gICAgXCJ0ZXh0dXJlX2ZsdXNoXCIsXG4gICAgXCJ0ZXh0dXJlX2dldF9oZWlnaHRcIixcbiAgICBcInRleHR1cmVfZ2V0X3RleGVsX2hlaWdodFwiLFxuICAgIFwidGV4dHVyZV9nZXRfdGV4ZWxfd2lkdGhcIixcbiAgICBcInRleHR1cmVfZ2V0X3V2c1wiLFxuICAgIFwidGV4dHVyZV9nZXRfd2lkdGhcIixcbiAgICBcInRleHR1cmVfZ2xvYmFsX3NjYWxlXCIsXG4gICAgXCJ0ZXh0dXJlX2lzX3JlYWR5XCIsXG4gICAgXCJ0ZXh0dXJlX3ByZWZldGNoXCIsXG4gICAgXCJ0ZXh0dXJlX3NldF9zdGFnZVwiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF9mb250c1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF9uYW1lc1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF9zcHJpdGVzXCIsXG4gICAgXCJ0ZXh0dXJlZ3JvdXBfZ2V0X3N0YXR1c1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF90ZXh0dXJlc1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF90aWxlc2V0c1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2xvYWRcIixcbiAgICBcInRleHR1cmVncm91cF9zZXRfbW9kZVwiLFxuICAgIFwidGV4dHVyZWdyb3VwX3VubG9hZFwiLFxuICAgIFwidGlsZV9nZXRfZW1wdHlcIixcbiAgICBcInRpbGVfZ2V0X2ZsaXBcIixcbiAgICBcInRpbGVfZ2V0X2luZGV4XCIsXG4gICAgXCJ0aWxlX2dldF9taXJyb3JcIixcbiAgICBcInRpbGVfZ2V0X3JvdGF0ZVwiLFxuICAgIFwidGlsZV9zZXRfZW1wdHlcIixcbiAgICBcInRpbGVfc2V0X2ZsaXBcIixcbiAgICBcInRpbGVfc2V0X2luZGV4XCIsXG4gICAgXCJ0aWxlX3NldF9taXJyb3JcIixcbiAgICBcInRpbGVfc2V0X3JvdGF0ZVwiLFxuICAgIFwidGlsZW1hcF9jbGVhclwiLFxuICAgIFwidGlsZW1hcF9nZXRcIixcbiAgICBcInRpbGVtYXBfZ2V0X2F0X3BpeGVsXCIsXG4gICAgXCJ0aWxlbWFwX2dldF9jZWxsX3hfYXRfcGl4ZWxcIixcbiAgICBcInRpbGVtYXBfZ2V0X2NlbGxfeV9hdF9waXhlbFwiLFxuICAgIFwidGlsZW1hcF9nZXRfZnJhbWVcIixcbiAgICBcInRpbGVtYXBfZ2V0X2dsb2JhbF9tYXNrXCIsXG4gICAgXCJ0aWxlbWFwX2dldF9oZWlnaHRcIixcbiAgICBcInRpbGVtYXBfZ2V0X21hc2tcIixcbiAgICBcInRpbGVtYXBfZ2V0X3RpbGVfaGVpZ2h0XCIsXG4gICAgXCJ0aWxlbWFwX2dldF90aWxlX3dpZHRoXCIsXG4gICAgXCJ0aWxlbWFwX2dldF90aWxlc2V0XCIsXG4gICAgXCJ0aWxlbWFwX2dldF93aWR0aFwiLFxuICAgIFwidGlsZW1hcF9nZXRfeFwiLFxuICAgIFwidGlsZW1hcF9nZXRfeVwiLFxuICAgIFwidGlsZW1hcF9zZXRcIixcbiAgICBcInRpbGVtYXBfc2V0X2F0X3BpeGVsXCIsXG4gICAgXCJ0aWxlbWFwX3NldF9nbG9iYWxfbWFza1wiLFxuICAgIFwidGlsZW1hcF9zZXRfaGVpZ2h0XCIsXG4gICAgXCJ0aWxlbWFwX3NldF9tYXNrXCIsXG4gICAgXCJ0aWxlbWFwX3NldF93aWR0aFwiLFxuICAgIFwidGlsZW1hcF90aWxlc2V0XCIsXG4gICAgXCJ0aWxlbWFwX3hcIixcbiAgICBcInRpbGVtYXBfeVwiLFxuICAgIFwidGlsZXNldF9nZXRfaW5mb1wiLFxuICAgIFwidGlsZXNldF9nZXRfbmFtZVwiLFxuICAgIFwidGlsZXNldF9nZXRfdGV4dHVyZVwiLFxuICAgIFwidGlsZXNldF9nZXRfdXZzXCIsXG4gICAgXCJ0aW1lX2JwbV90b19zZWNvbmRzXCIsXG4gICAgXCJ0aW1lX3NlY29uZHNfdG9fYnBtXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9jcmVhdGVcIixcbiAgICBcInRpbWVfc291cmNlX2Rlc3Ryb3lcIixcbiAgICBcInRpbWVfc291cmNlX2V4aXN0c1wiLFxuICAgIFwidGltZV9zb3VyY2VfZ2V0X2NoaWxkcmVuXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfcGFyZW50XCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfcGVyaW9kXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfcmVwc19jb21wbGV0ZWRcIixcbiAgICBcInRpbWVfc291cmNlX2dldF9yZXBzX3JlbWFpbmluZ1wiLFxuICAgIFwidGltZV9zb3VyY2VfZ2V0X3N0YXRlXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfdGltZV9yZW1haW5pbmdcIixcbiAgICBcInRpbWVfc291cmNlX2dldF91bml0c1wiLFxuICAgIFwidGltZV9zb3VyY2VfcGF1c2VcIixcbiAgICBcInRpbWVfc291cmNlX3JlY29uZmlndXJlXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9yZXNldFwiLFxuICAgIFwidGltZV9zb3VyY2VfcmVzdW1lXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9zdGFydFwiLFxuICAgIFwidGltZV9zb3VyY2Vfc3RvcFwiLFxuICAgIFwidGltZWxpbmVfYWRkXCIsXG4gICAgXCJ0aW1lbGluZV9jbGVhclwiLFxuICAgIFwidGltZWxpbmVfZGVsZXRlXCIsXG4gICAgXCJ0aW1lbGluZV9leGlzdHNcIixcbiAgICBcInRpbWVsaW5lX2dldF9uYW1lXCIsXG4gICAgXCJ0aW1lbGluZV9tYXhfbW9tZW50XCIsXG4gICAgXCJ0aW1lbGluZV9tb21lbnRfYWRkX3NjcmlwdFwiLFxuICAgIFwidGltZWxpbmVfbW9tZW50X2NsZWFyXCIsXG4gICAgXCJ0aW1lbGluZV9zaXplXCIsXG4gICAgXCJ0eXBlb2ZcIixcbiAgICBcInVybF9nZXRfZG9tYWluXCIsXG4gICAgXCJ1cmxfb3BlblwiLFxuICAgIFwidXJsX29wZW5fZXh0XCIsXG4gICAgXCJ1cmxfb3Blbl9mdWxsXCIsXG4gICAgXCJ1d3BfZGV2aWNlX3RvdWNoc2NyZWVuX2F2YWlsYWJsZVwiLFxuICAgIFwidXdwX2xpdmV0aWxlX2JhZGdlX2NsZWFyXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfYmFkZ2Vfbm90aWZpY2F0aW9uXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX2JlZ2luXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX2VuZFwiLFxuICAgIFwidXdwX2xpdmV0aWxlX25vdGlmaWNhdGlvbl9leHBpcnlcIixcbiAgICBcInV3cF9saXZldGlsZV9ub3RpZmljYXRpb25faW1hZ2VfYWRkXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX3NlY29uZGFyeV9iZWdpblwiLFxuICAgIFwidXdwX2xpdmV0aWxlX25vdGlmaWNhdGlvbl90YWdcIixcbiAgICBcInV3cF9saXZldGlsZV9ub3RpZmljYXRpb25fdGVtcGxhdGVfYWRkXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX3RleHRfYWRkXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfcXVldWVfZW5hYmxlXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfdGlsZV9jbGVhclwiLFxuICAgIFwidXdwX3NlY29uZGFyeXRpbGVfYmFkZ2VfY2xlYXJcIixcbiAgICBcInV3cF9zZWNvbmRhcnl0aWxlX2JhZGdlX25vdGlmaWNhdGlvblwiLFxuICAgIFwidXdwX3NlY29uZGFyeXRpbGVfZGVsZXRlXCIsXG4gICAgXCJ1d3Bfc2Vjb25kYXJ5dGlsZV9waW5cIixcbiAgICBcInV3cF9zZWNvbmRhcnl0aWxlX3RpbGVfY2xlYXJcIixcbiAgICBcInZhcmlhYmxlX2Nsb25lXCIsXG4gICAgXCJ2YXJpYWJsZV9nZXRfaGFzaFwiLFxuICAgIFwidmFyaWFibGVfZ2xvYmFsX2V4aXN0c1wiLFxuICAgIFwidmFyaWFibGVfZ2xvYmFsX2dldFwiLFxuICAgIFwidmFyaWFibGVfZ2xvYmFsX3NldFwiLFxuICAgIFwidmFyaWFibGVfaW5zdGFuY2VfZXhpc3RzXCIsXG4gICAgXCJ2YXJpYWJsZV9pbnN0YW5jZV9nZXRcIixcbiAgICBcInZhcmlhYmxlX2luc3RhbmNlX2dldF9uYW1lc1wiLFxuICAgIFwidmFyaWFibGVfaW5zdGFuY2VfbmFtZXNfY291bnRcIixcbiAgICBcInZhcmlhYmxlX2luc3RhbmNlX3NldFwiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X2V4aXN0c1wiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X2dldFwiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X2dldF9uYW1lc1wiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X25hbWVzX2NvdW50XCIsXG4gICAgXCJ2YXJpYWJsZV9zdHJ1Y3RfcmVtb3ZlXCIsXG4gICAgXCJ2YXJpYWJsZV9zdHJ1Y3Rfc2V0XCIsXG4gICAgXCJ2ZXJ0ZXhfYXJnYlwiLFxuICAgIFwidmVydGV4X2JlZ2luXCIsXG4gICAgXCJ2ZXJ0ZXhfY29sb3JcIixcbiAgICBcInZlcnRleF9jb2xvdXJcIixcbiAgICBcInZlcnRleF9jcmVhdGVfYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfY3JlYXRlX2J1ZmZlcl9leHRcIixcbiAgICBcInZlcnRleF9jcmVhdGVfYnVmZmVyX2Zyb21fYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfY3JlYXRlX2J1ZmZlcl9mcm9tX2J1ZmZlcl9leHRcIixcbiAgICBcInZlcnRleF9kZWxldGVfYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfZW5kXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQxXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQyXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQzXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQ0XCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2FkZF9jb2xvclwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9hZGRfY29sb3VyXCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2FkZF9jdXN0b21cIixcbiAgICBcInZlcnRleF9mb3JtYXRfYWRkX25vcm1hbFwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9hZGRfcG9zaXRpb25cIixcbiAgICBcInZlcnRleF9mb3JtYXRfYWRkX3Bvc2l0aW9uXzNkXCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2FkZF90ZXhjb29yZFwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9iZWdpblwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9kZWxldGVcIixcbiAgICBcInZlcnRleF9mb3JtYXRfZW5kXCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2dldF9pbmZvXCIsXG4gICAgXCJ2ZXJ0ZXhfZnJlZXplXCIsXG4gICAgXCJ2ZXJ0ZXhfZ2V0X2J1ZmZlcl9zaXplXCIsXG4gICAgXCJ2ZXJ0ZXhfZ2V0X251bWJlclwiLFxuICAgIFwidmVydGV4X25vcm1hbFwiLFxuICAgIFwidmVydGV4X3Bvc2l0aW9uXCIsXG4gICAgXCJ2ZXJ0ZXhfcG9zaXRpb25fM2RcIixcbiAgICBcInZlcnRleF9zdWJtaXRcIixcbiAgICBcInZlcnRleF9zdWJtaXRfZXh0XCIsXG4gICAgXCJ2ZXJ0ZXhfdGV4Y29vcmRcIixcbiAgICBcInZlcnRleF91Ynl0ZTRcIixcbiAgICBcInZlcnRleF91cGRhdGVfYnVmZmVyX2Zyb21fYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfdXBkYXRlX2J1ZmZlcl9mcm9tX3ZlcnRleFwiLFxuICAgIFwidmlkZW9fY2xvc2VcIixcbiAgICBcInZpZGVvX2RyYXdcIixcbiAgICBcInZpZGVvX2VuYWJsZV9sb29wXCIsXG4gICAgXCJ2aWRlb19nZXRfZHVyYXRpb25cIixcbiAgICBcInZpZGVvX2dldF9mb3JtYXRcIixcbiAgICBcInZpZGVvX2dldF9wb3NpdGlvblwiLFxuICAgIFwidmlkZW9fZ2V0X3N0YXR1c1wiLFxuICAgIFwidmlkZW9fZ2V0X3ZvbHVtZVwiLFxuICAgIFwidmlkZW9faXNfbG9vcGluZ1wiLFxuICAgIFwidmlkZW9fb3BlblwiLFxuICAgIFwidmlkZW9fcGF1c2VcIixcbiAgICBcInZpZGVvX3Jlc3VtZVwiLFxuICAgIFwidmlkZW9fc2Vla190b1wiLFxuICAgIFwidmlkZW9fc2V0X3ZvbHVtZVwiLFxuICAgIFwidmlld19nZXRfY2FtZXJhXCIsXG4gICAgXCJ2aWV3X2dldF9ocG9ydFwiLFxuICAgIFwidmlld19nZXRfc3VyZmFjZV9pZFwiLFxuICAgIFwidmlld19nZXRfdmlzaWJsZVwiLFxuICAgIFwidmlld19nZXRfd3BvcnRcIixcbiAgICBcInZpZXdfZ2V0X3hwb3J0XCIsXG4gICAgXCJ2aWV3X2dldF95cG9ydFwiLFxuICAgIFwidmlld19zZXRfY2FtZXJhXCIsXG4gICAgXCJ2aWV3X3NldF9ocG9ydFwiLFxuICAgIFwidmlld19zZXRfc3VyZmFjZV9pZFwiLFxuICAgIFwidmlld19zZXRfdmlzaWJsZVwiLFxuICAgIFwidmlld19zZXRfd3BvcnRcIixcbiAgICBcInZpZXdfc2V0X3hwb3J0XCIsXG4gICAgXCJ2aWV3X3NldF95cG9ydFwiLFxuICAgIFwidmlydHVhbF9rZXlfYWRkXCIsXG4gICAgXCJ2aXJ0dWFsX2tleV9kZWxldGVcIixcbiAgICBcInZpcnR1YWxfa2V5X2hpZGVcIixcbiAgICBcInZpcnR1YWxfa2V5X3Nob3dcIixcbiAgICBcIndhbGxwYXBlcl9zZXRfY29uZmlnXCIsXG4gICAgXCJ3YWxscGFwZXJfc2V0X3N1YnNjcmlwdGlvbnNcIixcbiAgICBcIndlYWtfcmVmX2FsaXZlXCIsXG4gICAgXCJ3ZWFrX3JlZl9hbnlfYWxpdmVcIixcbiAgICBcIndlYWtfcmVmX2NyZWF0ZVwiLFxuICAgIFwid2luZG93X2NlbnRlclwiLFxuICAgIFwid2luZG93X2RldmljZVwiLFxuICAgIFwid2luZG93X2VuYWJsZV9ib3JkZXJsZXNzX2Z1bGxzY3JlZW5cIixcbiAgICBcIndpbmRvd19nZXRfYm9yZGVybGVzc19mdWxsc2NyZWVuXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X2NhcHRpb25cIixcbiAgICBcIndpbmRvd19nZXRfY29sb3JcIixcbiAgICBcIndpbmRvd19nZXRfY29sb3VyXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X2N1cnNvclwiLFxuICAgIFwid2luZG93X2dldF9mdWxsc2NyZWVuXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X2hlaWdodFwiLFxuICAgIFwid2luZG93X2dldF9zaG93Ym9yZGVyXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X3Zpc2libGVfcmVjdHNcIixcbiAgICBcIndpbmRvd19nZXRfd2lkdGhcIixcbiAgICBcIndpbmRvd19nZXRfeFwiLFxuICAgIFwid2luZG93X2dldF95XCIsXG4gICAgXCJ3aW5kb3dfaGFuZGxlXCIsXG4gICAgXCJ3aW5kb3dfaGFzX2ZvY3VzXCIsXG4gICAgXCJ3aW5kb3dfbW91c2VfZ2V0X2RlbHRhX3hcIixcbiAgICBcIndpbmRvd19tb3VzZV9nZXRfZGVsdGFfeVwiLFxuICAgIFwid2luZG93X21vdXNlX2dldF9sb2NrZWRcIixcbiAgICBcIndpbmRvd19tb3VzZV9nZXRfeFwiLFxuICAgIFwid2luZG93X21vdXNlX2dldF95XCIsXG4gICAgXCJ3aW5kb3dfbW91c2Vfc2V0XCIsXG4gICAgXCJ3aW5kb3dfbW91c2Vfc2V0X2xvY2tlZFwiLFxuICAgIFwid2luZG93X3NldF9jYXB0aW9uXCIsXG4gICAgXCJ3aW5kb3dfc2V0X2NvbG9yXCIsXG4gICAgXCJ3aW5kb3dfc2V0X2NvbG91clwiLFxuICAgIFwid2luZG93X3NldF9jdXJzb3JcIixcbiAgICBcIndpbmRvd19zZXRfZnVsbHNjcmVlblwiLFxuICAgIFwid2luZG93X3NldF9tYXhfaGVpZ2h0XCIsXG4gICAgXCJ3aW5kb3dfc2V0X21heF93aWR0aFwiLFxuICAgIFwid2luZG93X3NldF9taW5faGVpZ2h0XCIsXG4gICAgXCJ3aW5kb3dfc2V0X21pbl93aWR0aFwiLFxuICAgIFwid2luZG93X3NldF9wb3NpdGlvblwiLFxuICAgIFwid2luZG93X3NldF9yZWN0YW5nbGVcIixcbiAgICBcIndpbmRvd19zZXRfc2hvd2JvcmRlclwiLFxuICAgIFwid2luZG93X3NldF9zaXplXCIsXG4gICAgXCJ3aW5kb3dfdmlld19tb3VzZV9nZXRfeFwiLFxuICAgIFwid2luZG93X3ZpZXdfbW91c2VfZ2V0X3lcIixcbiAgICBcIndpbmRvd192aWV3c19tb3VzZV9nZXRfeFwiLFxuICAgIFwid2luZG93X3ZpZXdzX21vdXNlX2dldF95XCIsXG4gICAgXCJ3aW5waG9uZV90aWxlX2JhY2tncm91bmRfY29sb3JcIixcbiAgICBcIndpbnBob25lX3RpbGVfYmFja2dyb3VuZF9jb2xvdXJcIixcbiAgICBcInppcF9hZGRfZmlsZVwiLFxuICAgIFwiemlwX2NyZWF0ZVwiLFxuICAgIFwiemlwX3NhdmVcIixcbiAgICBcInppcF91bnppcFwiLFxuICAgIFwiemlwX3VuemlwX2FzeW5jXCJcbiAgXTtcbiAgY29uc3QgU1lNQk9MUyA9IFtcbiAgICBcIkF1ZGlvRWZmZWN0XCIsXG4gICAgXCJBdWRpb0VmZmVjdFR5cGVcIixcbiAgICBcIkF1ZGlvTEZPVHlwZVwiLFxuICAgIFwiR01fYnVpbGRfZGF0ZVwiLFxuICAgIFwiR01fYnVpbGRfdHlwZVwiLFxuICAgIFwiR01faXNfc2FuZGJveGVkXCIsXG4gICAgXCJHTV9wcm9qZWN0X2ZpbGVuYW1lXCIsXG4gICAgXCJHTV9ydW50aW1lX3ZlcnNpb25cIixcbiAgICBcIkdNX3ZlcnNpb25cIixcbiAgICBcIk5hTlwiLFxuICAgIFwiX0dNRklMRV9cIixcbiAgICBcIl9HTUZVTkNUSU9OX1wiLFxuICAgIFwiX0dNTElORV9cIixcbiAgICBcImFsaWdubWVudEhcIixcbiAgICBcImFsaWdubWVudFZcIixcbiAgICBcImFsbFwiLFxuICAgIFwiYW5pbWN1cnZldHlwZV9iZXppZXJcIixcbiAgICBcImFuaW1jdXJ2ZXR5cGVfY2F0bXVsbHJvbVwiLFxuICAgIFwiYW5pbWN1cnZldHlwZV9saW5lYXJcIixcbiAgICBcImFzc2V0X2FuaW1hdGlvbmN1cnZlXCIsXG4gICAgXCJhc3NldF9mb250XCIsXG4gICAgXCJhc3NldF9vYmplY3RcIixcbiAgICBcImFzc2V0X3BhdGhcIixcbiAgICBcImFzc2V0X3Jvb21cIixcbiAgICBcImFzc2V0X3NjcmlwdFwiLFxuICAgIFwiYXNzZXRfc2VxdWVuY2VcIixcbiAgICBcImFzc2V0X3NoYWRlclwiLFxuICAgIFwiYXNzZXRfc291bmRcIixcbiAgICBcImFzc2V0X3Nwcml0ZVwiLFxuICAgIFwiYXNzZXRfdGlsZXNcIixcbiAgICBcImFzc2V0X3RpbWVsaW5lXCIsXG4gICAgXCJhc3NldF91bmtub3duXCIsXG4gICAgXCJhdWRpb18zRFwiLFxuICAgIFwiYXVkaW9fYnVzX21haW5cIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfZXhwb25lbnRfZGlzdGFuY2VcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfZXhwb25lbnRfZGlzdGFuY2VfY2xhbXBlZFwiLFxuICAgIFwiYXVkaW9fZmFsbG9mZl9leHBvbmVudF9kaXN0YW5jZV9zY2FsZWRcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfaW52ZXJzZV9kaXN0YW5jZVwiLFxuICAgIFwiYXVkaW9fZmFsbG9mZl9pbnZlcnNlX2Rpc3RhbmNlX2NsYW1wZWRcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfaW52ZXJzZV9kaXN0YW5jZV9zY2FsZWRcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfbGluZWFyX2Rpc3RhbmNlXCIsXG4gICAgXCJhdWRpb19mYWxsb2ZmX2xpbmVhcl9kaXN0YW5jZV9jbGFtcGVkXCIsXG4gICAgXCJhdWRpb19mYWxsb2ZmX25vbmVcIixcbiAgICBcImF1ZGlvX21vbm9cIixcbiAgICBcImF1ZGlvX3N0ZXJlb1wiLFxuICAgIFwiYmJveGtpbmRfZGlhbW9uZFwiLFxuICAgIFwiYmJveGtpbmRfZWxsaXBzZVwiLFxuICAgIFwiYmJveGtpbmRfcHJlY2lzZVwiLFxuICAgIFwiYmJveGtpbmRfcmVjdGFuZ3VsYXJcIixcbiAgICBcImJib3htb2RlX2F1dG9tYXRpY1wiLFxuICAgIFwiYmJveG1vZGVfZnVsbGltYWdlXCIsXG4gICAgXCJiYm94bW9kZV9tYW51YWxcIixcbiAgICBcImJtX2FkZFwiLFxuICAgIFwiYm1fZGVzdF9hbHBoYVwiLFxuICAgIFwiYm1fZGVzdF9jb2xvclwiLFxuICAgIFwiYm1fZGVzdF9jb2xvdXJcIixcbiAgICBcImJtX2ludl9kZXN0X2FscGhhXCIsXG4gICAgXCJibV9pbnZfZGVzdF9jb2xvclwiLFxuICAgIFwiYm1faW52X2Rlc3RfY29sb3VyXCIsXG4gICAgXCJibV9pbnZfc3JjX2FscGhhXCIsXG4gICAgXCJibV9pbnZfc3JjX2NvbG9yXCIsXG4gICAgXCJibV9pbnZfc3JjX2NvbG91clwiLFxuICAgIFwiYm1fbWF4XCIsXG4gICAgXCJibV9ub3JtYWxcIixcbiAgICBcImJtX29uZVwiLFxuICAgIFwiYm1fc3JjX2FscGhhXCIsXG4gICAgXCJibV9zcmNfYWxwaGFfc2F0XCIsXG4gICAgXCJibV9zcmNfY29sb3JcIixcbiAgICBcImJtX3NyY19jb2xvdXJcIixcbiAgICBcImJtX3N1YnRyYWN0XCIsXG4gICAgXCJibV96ZXJvXCIsXG4gICAgXCJicm93c2VyX2Nocm9tZVwiLFxuICAgIFwiYnJvd3Nlcl9lZGdlXCIsXG4gICAgXCJicm93c2VyX2ZpcmVmb3hcIixcbiAgICBcImJyb3dzZXJfaWVcIixcbiAgICBcImJyb3dzZXJfaWVfbW9iaWxlXCIsXG4gICAgXCJicm93c2VyX25vdF9hX2Jyb3dzZXJcIixcbiAgICBcImJyb3dzZXJfb3BlcmFcIixcbiAgICBcImJyb3dzZXJfc2FmYXJpXCIsXG4gICAgXCJicm93c2VyX3NhZmFyaV9tb2JpbGVcIixcbiAgICBcImJyb3dzZXJfdGl6ZW5cIixcbiAgICBcImJyb3dzZXJfdW5rbm93blwiLFxuICAgIFwiYnJvd3Nlcl93aW5kb3dzX3N0b3JlXCIsXG4gICAgXCJidWZmZXJfYm9vbFwiLFxuICAgIFwiYnVmZmVyX2YxNlwiLFxuICAgIFwiYnVmZmVyX2YzMlwiLFxuICAgIFwiYnVmZmVyX2Y2NFwiLFxuICAgIFwiYnVmZmVyX2Zhc3RcIixcbiAgICBcImJ1ZmZlcl9maXhlZFwiLFxuICAgIFwiYnVmZmVyX2dyb3dcIixcbiAgICBcImJ1ZmZlcl9zMTZcIixcbiAgICBcImJ1ZmZlcl9zMzJcIixcbiAgICBcImJ1ZmZlcl9zOFwiLFxuICAgIFwiYnVmZmVyX3NlZWtfZW5kXCIsXG4gICAgXCJidWZmZXJfc2Vla19yZWxhdGl2ZVwiLFxuICAgIFwiYnVmZmVyX3NlZWtfc3RhcnRcIixcbiAgICBcImJ1ZmZlcl9zdHJpbmdcIixcbiAgICBcImJ1ZmZlcl90ZXh0XCIsXG4gICAgXCJidWZmZXJfdTE2XCIsXG4gICAgXCJidWZmZXJfdTMyXCIsXG4gICAgXCJidWZmZXJfdTY0XCIsXG4gICAgXCJidWZmZXJfdThcIixcbiAgICBcImJ1ZmZlcl92YnVmZmVyXCIsXG4gICAgXCJidWZmZXJfd3JhcFwiLFxuICAgIFwiY19hcXVhXCIsXG4gICAgXCJjX2JsYWNrXCIsXG4gICAgXCJjX2JsdWVcIixcbiAgICBcImNfZGtncmF5XCIsXG4gICAgXCJjX2RrZ3JleVwiLFxuICAgIFwiY19mdWNoc2lhXCIsXG4gICAgXCJjX2dyYXlcIixcbiAgICBcImNfZ3JlZW5cIixcbiAgICBcImNfZ3JleVwiLFxuICAgIFwiY19saW1lXCIsXG4gICAgXCJjX2x0Z3JheVwiLFxuICAgIFwiY19sdGdyZXlcIixcbiAgICBcImNfbWFyb29uXCIsXG4gICAgXCJjX25hdnlcIixcbiAgICBcImNfb2xpdmVcIixcbiAgICBcImNfb3JhbmdlXCIsXG4gICAgXCJjX3B1cnBsZVwiLFxuICAgIFwiY19yZWRcIixcbiAgICBcImNfc2lsdmVyXCIsXG4gICAgXCJjX3RlYWxcIixcbiAgICBcImNfd2hpdGVcIixcbiAgICBcImNfeWVsbG93XCIsXG4gICAgXCJjYWNoZV9kaXJlY3RvcnlcIixcbiAgICBcImNoYXJhY3RlclNwYWNpbmdcIixcbiAgICBcImNtcGZ1bmNfYWx3YXlzXCIsXG4gICAgXCJjbXBmdW5jX2VxdWFsXCIsXG4gICAgXCJjbXBmdW5jX2dyZWF0ZXJcIixcbiAgICBcImNtcGZ1bmNfZ3JlYXRlcmVxdWFsXCIsXG4gICAgXCJjbXBmdW5jX2xlc3NcIixcbiAgICBcImNtcGZ1bmNfbGVzc2VxdWFsXCIsXG4gICAgXCJjbXBmdW5jX25ldmVyXCIsXG4gICAgXCJjbXBmdW5jX25vdGVxdWFsXCIsXG4gICAgXCJjb3JlQ29sb3JcIixcbiAgICBcImNvcmVDb2xvdXJcIixcbiAgICBcImNyX2FwcHN0YXJ0XCIsXG4gICAgXCJjcl9hcnJvd1wiLFxuICAgIFwiY3JfYmVhbVwiLFxuICAgIFwiY3JfY3Jvc3NcIixcbiAgICBcImNyX2RlZmF1bHRcIixcbiAgICBcImNyX2RyYWdcIixcbiAgICBcImNyX2hhbmRwb2ludFwiLFxuICAgIFwiY3JfaG91cmdsYXNzXCIsXG4gICAgXCJjcl9ub25lXCIsXG4gICAgXCJjcl9zaXplX2FsbFwiLFxuICAgIFwiY3Jfc2l6ZV9uZXN3XCIsXG4gICAgXCJjcl9zaXplX25zXCIsXG4gICAgXCJjcl9zaXplX253c2VcIixcbiAgICBcImNyX3NpemVfd2VcIixcbiAgICBcImNyX3VwYXJyb3dcIixcbiAgICBcImN1bGxfY2xvY2t3aXNlXCIsXG4gICAgXCJjdWxsX2NvdW50ZXJjbG9ja3dpc2VcIixcbiAgICBcImN1bGxfbm9jdWxsaW5nXCIsXG4gICAgXCJkZXZpY2VfZW11bGF0b3JcIixcbiAgICBcImRldmljZV9pb3NfaXBhZFwiLFxuICAgIFwiZGV2aWNlX2lvc19pcGFkX3JldGluYVwiLFxuICAgIFwiZGV2aWNlX2lvc19pcGhvbmVcIixcbiAgICBcImRldmljZV9pb3NfaXBob25lNVwiLFxuICAgIFwiZGV2aWNlX2lvc19pcGhvbmU2XCIsXG4gICAgXCJkZXZpY2VfaW9zX2lwaG9uZTZwbHVzXCIsXG4gICAgXCJkZXZpY2VfaW9zX2lwaG9uZV9yZXRpbmFcIixcbiAgICBcImRldmljZV9pb3NfdW5rbm93blwiLFxuICAgIFwiZGV2aWNlX3RhYmxldFwiLFxuICAgIFwiZGlzcGxheV9sYW5kc2NhcGVcIixcbiAgICBcImRpc3BsYXlfbGFuZHNjYXBlX2ZsaXBwZWRcIixcbiAgICBcImRpc3BsYXlfcG9ydHJhaXRcIixcbiAgICBcImRpc3BsYXlfcG9ydHJhaXRfZmxpcHBlZFwiLFxuICAgIFwiZGxsX2NkZWNsXCIsXG4gICAgXCJkbGxfc3RkY2FsbFwiLFxuICAgIFwiZHJvcFNoYWRvd0VuYWJsZWRcIixcbiAgICBcImRyb3BTaGFkb3dFbmFibGVkXCIsXG4gICAgXCJkc190eXBlX2dyaWRcIixcbiAgICBcImRzX3R5cGVfbGlzdFwiLFxuICAgIFwiZHNfdHlwZV9tYXBcIixcbiAgICBcImRzX3R5cGVfcHJpb3JpdHlcIixcbiAgICBcImRzX3R5cGVfcXVldWVcIixcbiAgICBcImRzX3R5cGVfc3RhY2tcIixcbiAgICBcImVmX2Nsb3VkXCIsXG4gICAgXCJlZl9lbGxpcHNlXCIsXG4gICAgXCJlZl9leHBsb3Npb25cIixcbiAgICBcImVmX2ZpcmV3b3JrXCIsXG4gICAgXCJlZl9mbGFyZVwiLFxuICAgIFwiZWZfcmFpblwiLFxuICAgIFwiZWZfcmluZ1wiLFxuICAgIFwiZWZfc21va2VcIixcbiAgICBcImVmX3Ntb2tldXBcIixcbiAgICBcImVmX3Nub3dcIixcbiAgICBcImVmX3NwYXJrXCIsXG4gICAgXCJlZl9zdGFyXCIsXG4gICAgXCJlZmZlY3RzRW5hYmxlZFwiLFxuICAgIFwiZWZmZWN0c0VuYWJsZWRcIixcbiAgICBcImV2X2FsYXJtXCIsXG4gICAgXCJldl9hbmltYXRpb25fZW5kXCIsXG4gICAgXCJldl9hbmltYXRpb25fZXZlbnRcIixcbiAgICBcImV2X2FuaW1hdGlvbl91cGRhdGVcIixcbiAgICBcImV2X2FzeW5jX2F1ZGlvX3BsYXliYWNrXCIsXG4gICAgXCJldl9hc3luY19hdWRpb19wbGF5YmFja19lbmRlZFwiLFxuICAgIFwiZXZfYXN5bmNfYXVkaW9fcmVjb3JkaW5nXCIsXG4gICAgXCJldl9hc3luY19kaWFsb2dcIixcbiAgICBcImV2X2FzeW5jX3B1c2hfbm90aWZpY2F0aW9uXCIsXG4gICAgXCJldl9hc3luY19zYXZlX2xvYWRcIixcbiAgICBcImV2X2FzeW5jX3NhdmVfbG9hZFwiLFxuICAgIFwiZXZfYXN5bmNfc29jaWFsXCIsXG4gICAgXCJldl9hc3luY19zeXN0ZW1fZXZlbnRcIixcbiAgICBcImV2X2FzeW5jX3dlYlwiLFxuICAgIFwiZXZfYXN5bmNfd2ViX2Nsb3VkXCIsXG4gICAgXCJldl9hc3luY193ZWJfaWFwXCIsXG4gICAgXCJldl9hc3luY193ZWJfaW1hZ2VfbG9hZFwiLFxuICAgIFwiZXZfYXN5bmNfd2ViX25ldHdvcmtpbmdcIixcbiAgICBcImV2X2FzeW5jX3dlYl9zdGVhbVwiLFxuICAgIFwiZXZfYXVkaW9fcGxheWJhY2tcIixcbiAgICBcImV2X2F1ZGlvX3BsYXliYWNrX2VuZGVkXCIsXG4gICAgXCJldl9hdWRpb19yZWNvcmRpbmdcIixcbiAgICBcImV2X2JvdW5kYXJ5XCIsXG4gICAgXCJldl9ib3VuZGFyeV92aWV3MFwiLFxuICAgIFwiZXZfYm91bmRhcnlfdmlldzFcIixcbiAgICBcImV2X2JvdW5kYXJ5X3ZpZXcyXCIsXG4gICAgXCJldl9ib3VuZGFyeV92aWV3M1wiLFxuICAgIFwiZXZfYm91bmRhcnlfdmlldzRcIixcbiAgICBcImV2X2JvdW5kYXJ5X3ZpZXc1XCIsXG4gICAgXCJldl9ib3VuZGFyeV92aWV3NlwiLFxuICAgIFwiZXZfYm91bmRhcnlfdmlldzdcIixcbiAgICBcImV2X2Jyb2FkY2FzdF9tZXNzYWdlXCIsXG4gICAgXCJldl9jbGVhbnVwXCIsXG4gICAgXCJldl9jb2xsaXNpb25cIixcbiAgICBcImV2X2NyZWF0ZVwiLFxuICAgIFwiZXZfZGVzdHJveVwiLFxuICAgIFwiZXZfZGlhbG9nX2FzeW5jXCIsXG4gICAgXCJldl9kcmF3XCIsXG4gICAgXCJldl9kcmF3X2JlZ2luXCIsXG4gICAgXCJldl9kcmF3X2VuZFwiLFxuICAgIFwiZXZfZHJhd19ub3JtYWxcIixcbiAgICBcImV2X2RyYXdfcG9zdFwiLFxuICAgIFwiZXZfZHJhd19wcmVcIixcbiAgICBcImV2X2VuZF9vZl9wYXRoXCIsXG4gICAgXCJldl9nYW1lX2VuZFwiLFxuICAgIFwiZXZfZ2FtZV9zdGFydFwiLFxuICAgIFwiZXZfZ2VzdHVyZVwiLFxuICAgIFwiZXZfZ2VzdHVyZV9kb3VibGVfdGFwXCIsXG4gICAgXCJldl9nZXN0dXJlX2RyYWdfZW5kXCIsXG4gICAgXCJldl9nZXN0dXJlX2RyYWdfc3RhcnRcIixcbiAgICBcImV2X2dlc3R1cmVfZHJhZ2dpbmdcIixcbiAgICBcImV2X2dlc3R1cmVfZmxpY2tcIixcbiAgICBcImV2X2dlc3R1cmVfcGluY2hfZW5kXCIsXG4gICAgXCJldl9nZXN0dXJlX3BpbmNoX2luXCIsXG4gICAgXCJldl9nZXN0dXJlX3BpbmNoX291dFwiLFxuICAgIFwiZXZfZ2VzdHVyZV9waW5jaF9zdGFydFwiLFxuICAgIFwiZXZfZ2VzdHVyZV9yb3RhdGVfZW5kXCIsXG4gICAgXCJldl9nZXN0dXJlX3JvdGF0ZV9zdGFydFwiLFxuICAgIFwiZXZfZ2VzdHVyZV9yb3RhdGluZ1wiLFxuICAgIFwiZXZfZ2VzdHVyZV90YXBcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX2RvdWJsZV90YXBcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX2RyYWdfZW5kXCIsXG4gICAgXCJldl9nbG9iYWxfZ2VzdHVyZV9kcmFnX3N0YXJ0XCIsXG4gICAgXCJldl9nbG9iYWxfZ2VzdHVyZV9kcmFnZ2luZ1wiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfZmxpY2tcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3BpbmNoX2VuZFwiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfaW5cIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3BpbmNoX291dFwiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfc3RhcnRcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3JvdGF0ZV9lbmRcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3JvdGF0ZV9zdGFydFwiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfcm90YXRpbmdcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3RhcFwiLFxuICAgIFwiZXZfZ2xvYmFsX2xlZnRfYnV0dG9uXCIsXG4gICAgXCJldl9nbG9iYWxfbGVmdF9wcmVzc1wiLFxuICAgIFwiZXZfZ2xvYmFsX2xlZnRfcmVsZWFzZVwiLFxuICAgIFwiZXZfZ2xvYmFsX21pZGRsZV9idXR0b25cIixcbiAgICBcImV2X2dsb2JhbF9taWRkbGVfcHJlc3NcIixcbiAgICBcImV2X2dsb2JhbF9taWRkbGVfcmVsZWFzZVwiLFxuICAgIFwiZXZfZ2xvYmFsX3JpZ2h0X2J1dHRvblwiLFxuICAgIFwiZXZfZ2xvYmFsX3JpZ2h0X3ByZXNzXCIsXG4gICAgXCJldl9nbG9iYWxfcmlnaHRfcmVsZWFzZVwiLFxuICAgIFwiZXZfZ3VpXCIsXG4gICAgXCJldl9ndWlfYmVnaW5cIixcbiAgICBcImV2X2d1aV9lbmRcIixcbiAgICBcImV2X2pveXN0aWNrMV9idXR0b24xXCIsXG4gICAgXCJldl9qb3lzdGljazFfYnV0dG9uMlwiLFxuICAgIFwiZXZfam95c3RpY2sxX2J1dHRvbjNcIixcbiAgICBcImV2X2pveXN0aWNrMV9idXR0b240XCIsXG4gICAgXCJldl9qb3lzdGljazFfYnV0dG9uNVwiLFxuICAgIFwiZXZfam95c3RpY2sxX2J1dHRvbjZcIixcbiAgICBcImV2X2pveXN0aWNrMV9idXR0b243XCIsXG4gICAgXCJldl9qb3lzdGljazFfYnV0dG9uOFwiLFxuICAgIFwiZXZfam95c3RpY2sxX2Rvd25cIixcbiAgICBcImV2X2pveXN0aWNrMV9sZWZ0XCIsXG4gICAgXCJldl9qb3lzdGljazFfcmlnaHRcIixcbiAgICBcImV2X2pveXN0aWNrMV91cFwiLFxuICAgIFwiZXZfam95c3RpY2syX2J1dHRvbjFcIixcbiAgICBcImV2X2pveXN0aWNrMl9idXR0b24yXCIsXG4gICAgXCJldl9qb3lzdGljazJfYnV0dG9uM1wiLFxuICAgIFwiZXZfam95c3RpY2syX2J1dHRvbjRcIixcbiAgICBcImV2X2pveXN0aWNrMl9idXR0b241XCIsXG4gICAgXCJldl9qb3lzdGljazJfYnV0dG9uNlwiLFxuICAgIFwiZXZfam95c3RpY2syX2J1dHRvbjdcIixcbiAgICBcImV2X2pveXN0aWNrMl9idXR0b244XCIsXG4gICAgXCJldl9qb3lzdGljazJfZG93blwiLFxuICAgIFwiZXZfam95c3RpY2syX2xlZnRcIixcbiAgICBcImV2X2pveXN0aWNrMl9yaWdodFwiLFxuICAgIFwiZXZfam95c3RpY2syX3VwXCIsXG4gICAgXCJldl9rZXlib2FyZFwiLFxuICAgIFwiZXZfa2V5cHJlc3NcIixcbiAgICBcImV2X2tleXJlbGVhc2VcIixcbiAgICBcImV2X2xlZnRfYnV0dG9uXCIsXG4gICAgXCJldl9sZWZ0X3ByZXNzXCIsXG4gICAgXCJldl9sZWZ0X3JlbGVhc2VcIixcbiAgICBcImV2X21pZGRsZV9idXR0b25cIixcbiAgICBcImV2X21pZGRsZV9wcmVzc1wiLFxuICAgIFwiZXZfbWlkZGxlX3JlbGVhc2VcIixcbiAgICBcImV2X21vdXNlXCIsXG4gICAgXCJldl9tb3VzZV9lbnRlclwiLFxuICAgIFwiZXZfbW91c2VfbGVhdmVcIixcbiAgICBcImV2X21vdXNlX3doZWVsX2Rvd25cIixcbiAgICBcImV2X21vdXNlX3doZWVsX3VwXCIsXG4gICAgXCJldl9ub19idXR0b25cIixcbiAgICBcImV2X25vX21vcmVfaGVhbHRoXCIsXG4gICAgXCJldl9ub19tb3JlX2xpdmVzXCIsXG4gICAgXCJldl9vdGhlclwiLFxuICAgIFwiZXZfb3V0c2lkZVwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3MFwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3MVwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3MlwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3M1wiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3NFwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3NVwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3NlwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3N1wiLFxuICAgIFwiZXZfcHJlX2NyZWF0ZVwiLFxuICAgIFwiZXZfcHVzaF9ub3RpZmljYXRpb25cIixcbiAgICBcImV2X3JpZ2h0X2J1dHRvblwiLFxuICAgIFwiZXZfcmlnaHRfcHJlc3NcIixcbiAgICBcImV2X3JpZ2h0X3JlbGVhc2VcIixcbiAgICBcImV2X3Jvb21fZW5kXCIsXG4gICAgXCJldl9yb29tX3N0YXJ0XCIsXG4gICAgXCJldl9zb2NpYWxcIixcbiAgICBcImV2X3N0ZXBcIixcbiAgICBcImV2X3N0ZXBfYmVnaW5cIixcbiAgICBcImV2X3N0ZXBfZW5kXCIsXG4gICAgXCJldl9zdGVwX25vcm1hbFwiLFxuICAgIFwiZXZfc3lzdGVtX2V2ZW50XCIsXG4gICAgXCJldl90cmlnZ2VyXCIsXG4gICAgXCJldl91c2VyMFwiLFxuICAgIFwiZXZfdXNlcjFcIixcbiAgICBcImV2X3VzZXIxMFwiLFxuICAgIFwiZXZfdXNlcjExXCIsXG4gICAgXCJldl91c2VyMTJcIixcbiAgICBcImV2X3VzZXIxM1wiLFxuICAgIFwiZXZfdXNlcjE0XCIsXG4gICAgXCJldl91c2VyMTVcIixcbiAgICBcImV2X3VzZXIyXCIsXG4gICAgXCJldl91c2VyM1wiLFxuICAgIFwiZXZfdXNlcjRcIixcbiAgICBcImV2X3VzZXI1XCIsXG4gICAgXCJldl91c2VyNlwiLFxuICAgIFwiZXZfdXNlcjdcIixcbiAgICBcImV2X3VzZXI4XCIsXG4gICAgXCJldl91c2VyOVwiLFxuICAgIFwiZXZfd2ViX2FzeW5jXCIsXG4gICAgXCJldl93ZWJfY2xvdWRcIixcbiAgICBcImV2X3dlYl9pYXBcIixcbiAgICBcImV2X3dlYl9pbWFnZV9sb2FkXCIsXG4gICAgXCJldl93ZWJfbmV0d29ya2luZ1wiLFxuICAgIFwiZXZfd2ViX3NvdW5kX2xvYWRcIixcbiAgICBcImV2X3dlYl9zdGVhbVwiLFxuICAgIFwiZmFfYXJjaGl2ZVwiLFxuICAgIFwiZmFfYm90dG9tXCIsXG4gICAgXCJmYV9jZW50ZXJcIixcbiAgICBcImZhX2RpcmVjdG9yeVwiLFxuICAgIFwiZmFfaGlkZGVuXCIsXG4gICAgXCJmYV9sZWZ0XCIsXG4gICAgXCJmYV9taWRkbGVcIixcbiAgICBcImZhX25vbmVcIixcbiAgICBcImZhX3JlYWRvbmx5XCIsXG4gICAgXCJmYV9yaWdodFwiLFxuICAgIFwiZmFfc3lzZmlsZVwiLFxuICAgIFwiZmFfdG9wXCIsXG4gICAgXCJmYV92b2x1bWVpZFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcImZyYW1lU2l6ZVhcIixcbiAgICBcImZyYW1lU2l6ZVlcIixcbiAgICBcImdhbWVzcGVlZF9mcHNcIixcbiAgICBcImdhbWVzcGVlZF9taWNyb3NlY29uZHNcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ2xvd0NvbG9yXCIsXG4gICAgXCJnbG93Q29sb3VyXCIsXG4gICAgXCJnbG93RW5hYmxlZFwiLFxuICAgIFwiZ2xvd0VuYWJsZWRcIixcbiAgICBcImdsb3dFbmRcIixcbiAgICBcImdsb3dTdGFydFwiLFxuICAgIFwiZ3BfYXhpc19hY2NlbGVyYXRpb25feFwiLFxuICAgIFwiZ3BfYXhpc19hY2NlbGVyYXRpb25feVwiLFxuICAgIFwiZ3BfYXhpc19hY2NlbGVyYXRpb25felwiLFxuICAgIFwiZ3BfYXhpc19hbmd1bGFyX3ZlbG9jaXR5X3hcIixcbiAgICBcImdwX2F4aXNfYW5ndWxhcl92ZWxvY2l0eV95XCIsXG4gICAgXCJncF9heGlzX2FuZ3VsYXJfdmVsb2NpdHlfelwiLFxuICAgIFwiZ3BfYXhpc19vcmllbnRhdGlvbl93XCIsXG4gICAgXCJncF9heGlzX29yaWVudGF0aW9uX3hcIixcbiAgICBcImdwX2F4aXNfb3JpZW50YXRpb25feVwiLFxuICAgIFwiZ3BfYXhpc19vcmllbnRhdGlvbl96XCIsXG4gICAgXCJncF9heGlzbGhcIixcbiAgICBcImdwX2F4aXNsdlwiLFxuICAgIFwiZ3BfYXhpc3JoXCIsXG4gICAgXCJncF9heGlzcnZcIixcbiAgICBcImdwX2ZhY2UxXCIsXG4gICAgXCJncF9mYWNlMlwiLFxuICAgIFwiZ3BfZmFjZTNcIixcbiAgICBcImdwX2ZhY2U0XCIsXG4gICAgXCJncF9wYWRkXCIsXG4gICAgXCJncF9wYWRsXCIsXG4gICAgXCJncF9wYWRyXCIsXG4gICAgXCJncF9wYWR1XCIsXG4gICAgXCJncF9zZWxlY3RcIixcbiAgICBcImdwX3Nob3VsZGVybFwiLFxuICAgIFwiZ3Bfc2hvdWxkZXJsYlwiLFxuICAgIFwiZ3Bfc2hvdWxkZXJyXCIsXG4gICAgXCJncF9zaG91bGRlcnJiXCIsXG4gICAgXCJncF9zdGFydFwiLFxuICAgIFwiZ3Bfc3RpY2tsXCIsXG4gICAgXCJncF9zdGlja3JcIixcbiAgICBcImlhcF9hdmFpbGFibGVcIixcbiAgICBcImlhcF9jYW5jZWxlZFwiLFxuICAgIFwiaWFwX2V2X2NvbnN1bWVcIixcbiAgICBcImlhcF9ldl9wcm9kdWN0XCIsXG4gICAgXCJpYXBfZXZfcHVyY2hhc2VcIixcbiAgICBcImlhcF9ldl9yZXN0b3JlXCIsXG4gICAgXCJpYXBfZXZfc3RvcmVsb2FkXCIsXG4gICAgXCJpYXBfZmFpbGVkXCIsXG4gICAgXCJpYXBfcHVyY2hhc2VkXCIsXG4gICAgXCJpYXBfcmVmdW5kZWRcIixcbiAgICBcImlhcF9zdGF0dXNfYXZhaWxhYmxlXCIsXG4gICAgXCJpYXBfc3RhdHVzX2xvYWRpbmdcIixcbiAgICBcImlhcF9zdGF0dXNfcHJvY2Vzc2luZ1wiLFxuICAgIFwiaWFwX3N0YXR1c19yZXN0b3JpbmdcIixcbiAgICBcImlhcF9zdGF0dXNfdW5hdmFpbGFibGVcIixcbiAgICBcImlhcF9zdGF0dXNfdW5pbml0aWFsaXNlZFwiLFxuICAgIFwiaWFwX3N0b3JlbG9hZF9mYWlsZWRcIixcbiAgICBcImlhcF9zdG9yZWxvYWRfb2tcIixcbiAgICBcImlhcF91bmF2YWlsYWJsZVwiLFxuICAgIFwiaW5maW5pdHlcIixcbiAgICBcImtidl9hdXRvY2FwaXRhbGl6ZV9jaGFyYWN0ZXJzXCIsXG4gICAgXCJrYnZfYXV0b2NhcGl0YWxpemVfbm9uZVwiLFxuICAgIFwia2J2X2F1dG9jYXBpdGFsaXplX3NlbnRlbmNlc1wiLFxuICAgIFwia2J2X2F1dG9jYXBpdGFsaXplX3dvcmRzXCIsXG4gICAgXCJrYnZfcmV0dXJua2V5X2NvbnRpbnVlXCIsXG4gICAgXCJrYnZfcmV0dXJua2V5X2RlZmF1bHRcIixcbiAgICBcImtidl9yZXR1cm5rZXlfZG9uZVwiLFxuICAgIFwia2J2X3JldHVybmtleV9lbWVyZ2VuY3lcIixcbiAgICBcImtidl9yZXR1cm5rZXlfZ29cIixcbiAgICBcImtidl9yZXR1cm5rZXlfZ29vZ2xlXCIsXG4gICAgXCJrYnZfcmV0dXJua2V5X2pvaW5cIixcbiAgICBcImtidl9yZXR1cm5rZXlfbmV4dFwiLFxuICAgIFwia2J2X3JldHVybmtleV9yb3V0ZVwiLFxuICAgIFwia2J2X3JldHVybmtleV9zZWFyY2hcIixcbiAgICBcImtidl9yZXR1cm5rZXlfc2VuZFwiLFxuICAgIFwia2J2X3JldHVybmtleV95YWhvb1wiLFxuICAgIFwia2J2X3R5cGVfYXNjaWlcIixcbiAgICBcImtidl90eXBlX2RlZmF1bHRcIixcbiAgICBcImtidl90eXBlX2VtYWlsXCIsXG4gICAgXCJrYnZfdHlwZV9udW1iZXJzXCIsXG4gICAgXCJrYnZfdHlwZV9waG9uZVwiLFxuICAgIFwia2J2X3R5cGVfcGhvbmVfbmFtZVwiLFxuICAgIFwia2J2X3R5cGVfdXJsXCIsXG4gICAgXCJsYXllcmVsZW1lbnR0eXBlX2JhY2tncm91bmRcIixcbiAgICBcImxheWVyZWxlbWVudHR5cGVfaW5zdGFuY2VcIixcbiAgICBcImxheWVyZWxlbWVudHR5cGVfb2xkdGlsZW1hcFwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV9wYXJ0aWNsZXN5c3RlbVwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV9zZXF1ZW5jZVwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV9zcHJpdGVcIixcbiAgICBcImxheWVyZWxlbWVudHR5cGVfdGlsZVwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV90aWxlbWFwXCIsXG4gICAgXCJsYXllcmVsZW1lbnR0eXBlX3VuZGVmaW5lZFwiLFxuICAgIFwibGVhZGVyYm9hcmRfdHlwZV9udW1iZXJcIixcbiAgICBcImxlYWRlcmJvYXJkX3R5cGVfdGltZV9taW5zX3NlY3NcIixcbiAgICBcImxpZ2h0dHlwZV9kaXJcIixcbiAgICBcImxpZ2h0dHlwZV9wb2ludFwiLFxuICAgIFwibGluZVNwYWNpbmdcIixcbiAgICBcIm1fYXhpc3hcIixcbiAgICBcIm1fYXhpc3hfZ3VpXCIsXG4gICAgXCJtX2F4aXN5XCIsXG4gICAgXCJtX2F4aXN5X2d1aVwiLFxuICAgIFwibV9zY3JvbGxfZG93blwiLFxuICAgIFwibV9zY3JvbGxfdXBcIixcbiAgICBcIm1hdHJpeF9wcm9qZWN0aW9uXCIsXG4gICAgXCJtYXRyaXhfdmlld1wiLFxuICAgIFwibWF0cml4X3dvcmxkXCIsXG4gICAgXCJtYl9hbnlcIixcbiAgICBcIm1iX2xlZnRcIixcbiAgICBcIm1iX21pZGRsZVwiLFxuICAgIFwibWJfbm9uZVwiLFxuICAgIFwibWJfcmlnaHRcIixcbiAgICBcIm1iX3NpZGUxXCIsXG4gICAgXCJtYl9zaWRlMlwiLFxuICAgIFwibWlwX21hcmtlZG9ubHlcIixcbiAgICBcIm1pcF9vZmZcIixcbiAgICBcIm1pcF9vblwiLFxuICAgIFwibmV0d29ya19jb25maWdfYXZvaWRfdGltZV93YWl0XCIsXG4gICAgXCJuZXR3b3JrX2NvbmZpZ19jb25uZWN0X3RpbWVvdXRcIixcbiAgICBcIm5ldHdvcmtfY29uZmlnX2Rpc2FibGVfbXVsdGljYXN0XCIsXG4gICAgXCJuZXR3b3JrX2NvbmZpZ19kaXNhYmxlX3JlbGlhYmxlX3VkcFwiLFxuICAgIFwibmV0d29ya19jb25maWdfZW5hYmxlX211bHRpY2FzdFwiLFxuICAgIFwibmV0d29ya19jb25maWdfZW5hYmxlX3JlbGlhYmxlX3VkcFwiLFxuICAgIFwibmV0d29ya19jb25maWdfdXNlX25vbl9ibG9ja2luZ19zb2NrZXRcIixcbiAgICBcIm5ldHdvcmtfY29uZmlnX3dlYnNvY2tldF9wcm90b2NvbFwiLFxuICAgIFwibmV0d29ya19jb25uZWN0X2FjdGl2ZVwiLFxuICAgIFwibmV0d29ya19jb25uZWN0X2Jsb2NraW5nXCIsXG4gICAgXCJuZXR3b3JrX2Nvbm5lY3Rfbm9uYmxvY2tpbmdcIixcbiAgICBcIm5ldHdvcmtfY29ubmVjdF9ub25lXCIsXG4gICAgXCJuZXR3b3JrX2Nvbm5lY3RfcGFzc2l2ZVwiLFxuICAgIFwibmV0d29ya19zZW5kX2JpbmFyeVwiLFxuICAgIFwibmV0d29ya19zZW5kX3RleHRcIixcbiAgICBcIm5ldHdvcmtfc29ja2V0X2JsdWV0b290aFwiLFxuICAgIFwibmV0d29ya19zb2NrZXRfdGNwXCIsXG4gICAgXCJuZXR3b3JrX3NvY2tldF91ZHBcIixcbiAgICBcIm5ldHdvcmtfc29ja2V0X3dzXCIsXG4gICAgXCJuZXR3b3JrX3NvY2tldF93c3NcIixcbiAgICBcIm5ldHdvcmtfdHlwZV9jb25uZWN0XCIsXG4gICAgXCJuZXR3b3JrX3R5cGVfZGF0YVwiLFxuICAgIFwibmV0d29ya190eXBlX2Rpc2Nvbm5lY3RcIixcbiAgICBcIm5ldHdvcmtfdHlwZV9kb3duXCIsXG4gICAgXCJuZXR3b3JrX3R5cGVfbm9uX2Jsb2NraW5nX2Nvbm5lY3RcIixcbiAgICBcIm5ldHdvcmtfdHlwZV91cFwiLFxuICAgIFwibmV0d29ya190eXBlX3VwX2ZhaWxlZFwiLFxuICAgIFwibmluZXNsaWNlX2JsYW5rXCIsXG4gICAgXCJuaW5lc2xpY2VfYm90dG9tXCIsXG4gICAgXCJuaW5lc2xpY2VfY2VudGVyXCIsXG4gICAgXCJuaW5lc2xpY2VfY2VudHJlXCIsXG4gICAgXCJuaW5lc2xpY2VfaGlkZVwiLFxuICAgIFwibmluZXNsaWNlX2xlZnRcIixcbiAgICBcIm5pbmVzbGljZV9taXJyb3JcIixcbiAgICBcIm5pbmVzbGljZV9yZXBlYXRcIixcbiAgICBcIm5pbmVzbGljZV9yaWdodFwiLFxuICAgIFwibmluZXNsaWNlX3N0cmV0Y2hcIixcbiAgICBcIm5pbmVzbGljZV90b3BcIixcbiAgICBcIm5vb25lXCIsXG4gICAgXCJvZl9jaGFsbGVuZ2VfbG9zZVwiLFxuICAgIFwib2ZfY2hhbGxlbmdlX3RpZVwiLFxuICAgIFwib2ZfY2hhbGxlbmdlX3dpblwiLFxuICAgIFwib3NfYW5kcm9pZFwiLFxuICAgIFwib3NfZ2RrXCIsXG4gICAgXCJvc19neGdhbWVzXCIsXG4gICAgXCJvc19pb3NcIixcbiAgICBcIm9zX2xpbnV4XCIsXG4gICAgXCJvc19tYWNvc3hcIixcbiAgICBcIm9zX29wZXJhZ3hcIixcbiAgICBcIm9zX3Blcm1pc3Npb25fZGVuaWVkXCIsXG4gICAgXCJvc19wZXJtaXNzaW9uX2RlbmllZF9kb250X3JlcXVlc3RcIixcbiAgICBcIm9zX3Blcm1pc3Npb25fZ3JhbnRlZFwiLFxuICAgIFwib3NfcHMzXCIsXG4gICAgXCJvc19wczRcIixcbiAgICBcIm9zX3BzNVwiLFxuICAgIFwib3NfcHN2aXRhXCIsXG4gICAgXCJvc19zd2l0Y2hcIixcbiAgICBcIm9zX3R2b3NcIixcbiAgICBcIm9zX3Vua25vd25cIixcbiAgICBcIm9zX3V3cFwiLFxuICAgIFwib3Nfd2luOG5hdGl2ZVwiLFxuICAgIFwib3Nfd2luZG93c1wiLFxuICAgIFwib3Nfd2lucGhvbmVcIixcbiAgICBcIm9zX3hib3hvbmVcIixcbiAgICBcIm9zX3hib3hzZXJpZXN4c1wiLFxuICAgIFwib3RoZXJcIixcbiAgICBcIm91dGxpbmVDb2xvclwiLFxuICAgIFwib3V0bGluZUNvbG91clwiLFxuICAgIFwib3V0bGluZURpc3RcIixcbiAgICBcIm91dGxpbmVFbmFibGVkXCIsXG4gICAgXCJvdXRsaW5lRW5hYmxlZFwiLFxuICAgIFwicGFyYWdyYXBoU3BhY2luZ1wiLFxuICAgIFwicGF0aF9hY3Rpb25fY29udGludWVcIixcbiAgICBcInBhdGhfYWN0aW9uX3Jlc3RhcnRcIixcbiAgICBcInBhdGhfYWN0aW9uX3JldmVyc2VcIixcbiAgICBcInBhdGhfYWN0aW9uX3N0b3BcIixcbiAgICBcInBoeV9kZWJ1Z19yZW5kZXJfYWFiYlwiLFxuICAgIFwicGh5X2RlYnVnX3JlbmRlcl9jb2xsaXNpb25fcGFpcnNcIixcbiAgICBcInBoeV9kZWJ1Z19yZW5kZXJfY29tc1wiLFxuICAgIFwicGh5X2RlYnVnX3JlbmRlcl9jb3JlX3NoYXBlc1wiLFxuICAgIFwicGh5X2RlYnVnX3JlbmRlcl9qb2ludHNcIixcbiAgICBcInBoeV9kZWJ1Z19yZW5kZXJfb2JiXCIsXG4gICAgXCJwaHlfZGVidWdfcmVuZGVyX3NoYXBlc1wiLFxuICAgIFwicGh5X2pvaW50X2FuY2hvcl8xX3hcIixcbiAgICBcInBoeV9qb2ludF9hbmNob3JfMV95XCIsXG4gICAgXCJwaHlfam9pbnRfYW5jaG9yXzJfeFwiLFxuICAgIFwicGh5X2pvaW50X2FuY2hvcl8yX3lcIixcbiAgICBcInBoeV9qb2ludF9hbmdsZVwiLFxuICAgIFwicGh5X2pvaW50X2FuZ2xlX2xpbWl0c1wiLFxuICAgIFwicGh5X2pvaW50X2RhbXBpbmdfcmF0aW9cIixcbiAgICBcInBoeV9qb2ludF9mcmVxdWVuY3lcIixcbiAgICBcInBoeV9qb2ludF9sZW5ndGhfMVwiLFxuICAgIFwicGh5X2pvaW50X2xlbmd0aF8yXCIsXG4gICAgXCJwaHlfam9pbnRfbG93ZXJfYW5nbGVfbGltaXRcIixcbiAgICBcInBoeV9qb2ludF9tYXhfZm9yY2VcIixcbiAgICBcInBoeV9qb2ludF9tYXhfbGVuZ3RoXCIsXG4gICAgXCJwaHlfam9pbnRfbWF4X21vdG9yX2ZvcmNlXCIsXG4gICAgXCJwaHlfam9pbnRfbWF4X21vdG9yX3RvcnF1ZVwiLFxuICAgIFwicGh5X2pvaW50X21heF90b3JxdWVcIixcbiAgICBcInBoeV9qb2ludF9tb3Rvcl9mb3JjZVwiLFxuICAgIFwicGh5X2pvaW50X21vdG9yX3NwZWVkXCIsXG4gICAgXCJwaHlfam9pbnRfbW90b3JfdG9ycXVlXCIsXG4gICAgXCJwaHlfam9pbnRfcmVhY3Rpb25fZm9yY2VfeFwiLFxuICAgIFwicGh5X2pvaW50X3JlYWN0aW9uX2ZvcmNlX3lcIixcbiAgICBcInBoeV9qb2ludF9yZWFjdGlvbl90b3JxdWVcIixcbiAgICBcInBoeV9qb2ludF9zcGVlZFwiLFxuICAgIFwicGh5X2pvaW50X3RyYW5zbGF0aW9uXCIsXG4gICAgXCJwaHlfam9pbnRfdXBwZXJfYW5nbGVfbGltaXRcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY2F0ZWdvcnlcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY29sb3JcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY29sb3VyXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZGF0YV9mbGFnX3Bvc2l0aW9uXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZGF0YV9mbGFnX3R5cGVmbGFnc1wiLFxuICAgIFwicGh5X3BhcnRpY2xlX2RhdGFfZmxhZ192ZWxvY2l0eVwiLFxuICAgIFwicGh5X3BhcnRpY2xlX2ZsYWdfY29sb3JtaXhpbmdcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX2NvbG91cm1peGluZ1wiLFxuICAgIFwicGh5X3BhcnRpY2xlX2ZsYWdfZWxhc3RpY1wiLFxuICAgIFwicGh5X3BhcnRpY2xlX2ZsYWdfcG93ZGVyXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZmxhZ19zcHJpbmdcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3RlbnNpbGVcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3Zpc2NvdXNcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3dhbGxcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3dhdGVyXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZmxhZ196b21iaWVcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9ncm91cF9mbGFnX3JpZ2lkXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZ3JvdXBfZmxhZ19zb2xpZFwiLFxuICAgIFwicGlcIixcbiAgICBcInBvaW50ZXJfaW52YWxpZFwiLFxuICAgIFwicG9pbnRlcl9udWxsXCIsXG4gICAgXCJwcl9saW5lbGlzdFwiLFxuICAgIFwicHJfbGluZXN0cmlwXCIsXG4gICAgXCJwcl9wb2ludGxpc3RcIixcbiAgICBcInByX3RyaWFuZ2xlZmFuXCIsXG4gICAgXCJwcl90cmlhbmdsZWxpc3RcIixcbiAgICBcInByX3RyaWFuZ2xlc3RyaXBcIixcbiAgICBcInBzX2Rpc3RyX2dhdXNzaWFuXCIsXG4gICAgXCJwc19kaXN0cl9pbnZnYXVzc2lhblwiLFxuICAgIFwicHNfZGlzdHJfbGluZWFyXCIsXG4gICAgXCJwc19tb2RlX2J1cnN0XCIsXG4gICAgXCJwc19tb2RlX3N0cmVhbVwiLFxuICAgIFwicHNfc2hhcGVfZGlhbW9uZFwiLFxuICAgIFwicHNfc2hhcGVfZWxsaXBzZVwiLFxuICAgIFwicHNfc2hhcGVfbGluZVwiLFxuICAgIFwicHNfc2hhcGVfcmVjdGFuZ2xlXCIsXG4gICAgXCJwdF9zaGFwZV9jaXJjbGVcIixcbiAgICBcInB0X3NoYXBlX2Nsb3VkXCIsXG4gICAgXCJwdF9zaGFwZV9kaXNrXCIsXG4gICAgXCJwdF9zaGFwZV9leHBsb3Npb25cIixcbiAgICBcInB0X3NoYXBlX2ZsYXJlXCIsXG4gICAgXCJwdF9zaGFwZV9saW5lXCIsXG4gICAgXCJwdF9zaGFwZV9waXhlbFwiLFxuICAgIFwicHRfc2hhcGVfcmluZ1wiLFxuICAgIFwicHRfc2hhcGVfc21va2VcIixcbiAgICBcInB0X3NoYXBlX3Nub3dcIixcbiAgICBcInB0X3NoYXBlX3NwYXJrXCIsXG4gICAgXCJwdF9zaGFwZV9zcGhlcmVcIixcbiAgICBcInB0X3NoYXBlX3NxdWFyZVwiLFxuICAgIFwicHRfc2hhcGVfc3RhclwiLFxuICAgIFwicm9sbGJhY2tfY2hhdF9tZXNzYWdlXCIsXG4gICAgXCJyb2xsYmFja19jb25uZWN0X2Vycm9yXCIsXG4gICAgXCJyb2xsYmFja19jb25uZWN0X2luZm9cIixcbiAgICBcInJvbGxiYWNrX2Nvbm5lY3RlZF90b19wZWVyXCIsXG4gICAgXCJyb2xsYmFja19jb25uZWN0aW9uX3JlamVjdGVkXCIsXG4gICAgXCJyb2xsYmFja19kaXNjb25uZWN0ZWRfZnJvbV9wZWVyXCIsXG4gICAgXCJyb2xsYmFja19lbmRfZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfZ2FtZV9mdWxsXCIsXG4gICAgXCJyb2xsYmFja19nYW1lX2luZm9cIixcbiAgICBcInJvbGxiYWNrX2dhbWVfaW50ZXJydXB0ZWRcIixcbiAgICBcInJvbGxiYWNrX2dhbWVfcmVzdW1lZFwiLFxuICAgIFwicm9sbGJhY2tfaGlnaF9sYXRlbmN5XCIsXG4gICAgXCJyb2xsYmFja19wbGF5ZXJfcHJlZnNcIixcbiAgICBcInJvbGxiYWNrX3Byb3RvY29sX3JlamVjdGVkXCIsXG4gICAgXCJyb2xsYmFja19zeW5jaHJvbml6ZWRfd2l0aF9wZWVyXCIsXG4gICAgXCJyb2xsYmFja19zeW5jaHJvbml6aW5nX3dpdGhfcGVlclwiLFxuICAgIFwic2VsZlwiLFxuICAgIFwic2VxYXVkaW9rZXlfbG9vcFwiLFxuICAgIFwic2VxYXVkaW9rZXlfb25lc2hvdFwiLFxuICAgIFwic2VxZGlyX2xlZnRcIixcbiAgICBcInNlcWRpcl9yaWdodFwiLFxuICAgIFwic2VxaW50ZXJwb2xhdGlvbl9hc3NpZ25cIixcbiAgICBcInNlcWludGVycG9sYXRpb25fbGVycFwiLFxuICAgIFwic2VxcGxheV9sb29wXCIsXG4gICAgXCJzZXFwbGF5X29uZXNob3RcIixcbiAgICBcInNlcXBsYXlfcGluZ3BvbmdcIixcbiAgICBcInNlcXRleHRrZXlfYm90dG9tXCIsXG4gICAgXCJzZXF0ZXh0a2V5X2NlbnRlclwiLFxuICAgIFwic2VxdGV4dGtleV9qdXN0aWZ5XCIsXG4gICAgXCJzZXF0ZXh0a2V5X2xlZnRcIixcbiAgICBcInNlcXRleHRrZXlfbWlkZGxlXCIsXG4gICAgXCJzZXF0ZXh0a2V5X3JpZ2h0XCIsXG4gICAgXCJzZXF0ZXh0a2V5X3RvcFwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2F1ZGlvXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfYm9vbFwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2NsaXBtYXNrXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfY2xpcG1hc2tfbWFza1wiLFxuICAgIFwic2VxdHJhY2t0eXBlX2NsaXBtYXNrX3N1YmplY3RcIixcbiAgICBcInNlcXRyYWNrdHlwZV9jb2xvclwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2NvbG91clwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2VtcHR5XCIsXG4gICAgXCJzZXF0cmFja3R5cGVfZ3JhcGhpY1wiLFxuICAgIFwic2VxdHJhY2t0eXBlX2dyb3VwXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfaW5zdGFuY2VcIixcbiAgICBcInNlcXRyYWNrdHlwZV9tZXNzYWdlXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfbW9tZW50XCIsXG4gICAgXCJzZXF0cmFja3R5cGVfcGFydGljbGVzeXN0ZW1cIixcbiAgICBcInNlcXRyYWNrdHlwZV9yZWFsXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfc2VxdWVuY2VcIixcbiAgICBcInNlcXRyYWNrdHlwZV9zcHJpdGVmcmFtZXNcIixcbiAgICBcInNlcXRyYWNrdHlwZV9zdHJpbmdcIixcbiAgICBcInNlcXRyYWNrdHlwZV90ZXh0XCIsXG4gICAgXCJzaGFkb3dDb2xvclwiLFxuICAgIFwic2hhZG93Q29sb3VyXCIsXG4gICAgXCJzaGFkb3dPZmZzZXRYXCIsXG4gICAgXCJzaGFkb3dPZmZzZXRZXCIsXG4gICAgXCJzaGFkb3dTb2Z0bmVzc1wiLFxuICAgIFwic3ByaXRlX2FkZF9leHRfZXJyb3JfY2FuY2VsbGVkXCIsXG4gICAgXCJzcHJpdGVfYWRkX2V4dF9lcnJvcl9kZWNvbXByZXNzZmFpbGVkXCIsXG4gICAgXCJzcHJpdGVfYWRkX2V4dF9lcnJvcl9sb2FkZmFpbGVkXCIsXG4gICAgXCJzcHJpdGVfYWRkX2V4dF9lcnJvcl9zZXR1cGZhaWxlZFwiLFxuICAgIFwic3ByaXRlX2FkZF9leHRfZXJyb3Jfc3ByaXRlbm90Zm91bmRcIixcbiAgICBcInNwcml0ZV9hZGRfZXh0X2Vycm9yX3Vua25vd25cIixcbiAgICBcInNwcml0ZXNwZWVkX2ZyYW1lc3BlcmdhbWVmcmFtZVwiLFxuICAgIFwic3ByaXRlc3BlZWRfZnJhbWVzcGVyc2Vjb25kXCIsXG4gICAgXCJzdXJmYWNlX3IxNmZsb2F0XCIsXG4gICAgXCJzdXJmYWNlX3IzMmZsb2F0XCIsXG4gICAgXCJzdXJmYWNlX3I4dW5vcm1cIixcbiAgICBcInN1cmZhY2Vfcmc4dW5vcm1cIixcbiAgICBcInN1cmZhY2VfcmdiYTE2ZmxvYXRcIixcbiAgICBcInN1cmZhY2VfcmdiYTMyZmxvYXRcIixcbiAgICBcInN1cmZhY2VfcmdiYTR1bm9ybVwiLFxuICAgIFwic3VyZmFjZV9yZ2JhOHVub3JtXCIsXG4gICAgXCJ0ZXh0dXJlZ3JvdXBfc3RhdHVzX2ZldGNoZWRcIixcbiAgICBcInRleHR1cmVncm91cF9zdGF0dXNfbG9hZGVkXCIsXG4gICAgXCJ0ZXh0dXJlZ3JvdXBfc3RhdHVzX2xvYWRpbmdcIixcbiAgICBcInRleHR1cmVncm91cF9zdGF0dXNfdW5sb2FkZWRcIixcbiAgICBcInRmX2FuaXNvdHJvcGljXCIsXG4gICAgXCJ0Zl9saW5lYXJcIixcbiAgICBcInRmX3BvaW50XCIsXG4gICAgXCJ0aGlja25lc3NcIixcbiAgICBcInRpbGVfZmxpcFwiLFxuICAgIFwidGlsZV9pbmRleF9tYXNrXCIsXG4gICAgXCJ0aWxlX21pcnJvclwiLFxuICAgIFwidGlsZV9yb3RhdGVcIixcbiAgICBcInRpbWVfc291cmNlX2V4cGlyZV9hZnRlclwiLFxuICAgIFwidGltZV9zb3VyY2VfZXhwaXJlX25lYXJlc3RcIixcbiAgICBcInRpbWVfc291cmNlX2dhbWVcIixcbiAgICBcInRpbWVfc291cmNlX2dsb2JhbFwiLFxuICAgIFwidGltZV9zb3VyY2Vfc3RhdGVfYWN0aXZlXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9zdGF0ZV9pbml0aWFsXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9zdGF0ZV9wYXVzZWRcIixcbiAgICBcInRpbWVfc291cmNlX3N0YXRlX3N0b3BwZWRcIixcbiAgICBcInRpbWVfc291cmNlX3VuaXRzX2ZyYW1lc1wiLFxuICAgIFwidGltZV9zb3VyY2VfdW5pdHNfc2Vjb25kc1wiLFxuICAgIFwidGltZXpvbmVfbG9jYWxcIixcbiAgICBcInRpbWV6b25lX3V0Y1wiLFxuICAgIFwidG1fY291bnR2c3luY3NcIixcbiAgICBcInRtX3NsZWVwXCIsXG4gICAgXCJ0bV9zeXN0ZW10aW1pbmdcIixcbiAgICBcInRydWVcIixcbiAgICBcInR5X3JlYWxcIixcbiAgICBcInR5X3N0cmluZ1wiLFxuICAgIFwidW5kZWZpbmVkXCIsXG4gICAgXCJ2ZXJ0ZXhfdHlwZV9jb2xvclwiLFxuICAgIFwidmVydGV4X3R5cGVfY29sb3VyXCIsXG4gICAgXCJ2ZXJ0ZXhfdHlwZV9mbG9hdDFcIixcbiAgICBcInZlcnRleF90eXBlX2Zsb2F0MlwiLFxuICAgIFwidmVydGV4X3R5cGVfZmxvYXQzXCIsXG4gICAgXCJ2ZXJ0ZXhfdHlwZV9mbG9hdDRcIixcbiAgICBcInZlcnRleF90eXBlX3VieXRlNFwiLFxuICAgIFwidmVydGV4X3VzYWdlX2Jpbm9ybWFsXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfYmxlbmRpbmRpY2VzXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfYmxlbmR3ZWlnaHRcIixcbiAgICBcInZlcnRleF91c2FnZV9jb2xvclwiLFxuICAgIFwidmVydGV4X3VzYWdlX2NvbG91clwiLFxuICAgIFwidmVydGV4X3VzYWdlX2RlcHRoXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfZm9nXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2Vfbm9ybWFsXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfcG9zaXRpb25cIixcbiAgICBcInZlcnRleF91c2FnZV9wc2l6ZVwiLFxuICAgIFwidmVydGV4X3VzYWdlX3NhbXBsZVwiLFxuICAgIFwidmVydGV4X3VzYWdlX3RhbmdlbnRcIixcbiAgICBcInZlcnRleF91c2FnZV90ZXhjb29yZFwiLFxuICAgIFwidmlkZW9fZm9ybWF0X3JnYmFcIixcbiAgICBcInZpZGVvX2Zvcm1hdF95dXZcIixcbiAgICBcInZpZGVvX3N0YXR1c19jbG9zZWRcIixcbiAgICBcInZpZGVvX3N0YXR1c19wYXVzZWRcIixcbiAgICBcInZpZGVvX3N0YXR1c19wbGF5aW5nXCIsXG4gICAgXCJ2aWRlb19zdGF0dXNfcHJlcGFyaW5nXCIsXG4gICAgXCJ2a19hZGRcIixcbiAgICBcInZrX2FsdFwiLFxuICAgIFwidmtfYW55a2V5XCIsXG4gICAgXCJ2a19iYWNrc3BhY2VcIixcbiAgICBcInZrX2NvbnRyb2xcIixcbiAgICBcInZrX2RlY2ltYWxcIixcbiAgICBcInZrX2RlbGV0ZVwiLFxuICAgIFwidmtfZGl2aWRlXCIsXG4gICAgXCJ2a19kb3duXCIsXG4gICAgXCJ2a19lbmRcIixcbiAgICBcInZrX2VudGVyXCIsXG4gICAgXCJ2a19lc2NhcGVcIixcbiAgICBcInZrX2YxXCIsXG4gICAgXCJ2a19mMTBcIixcbiAgICBcInZrX2YxMVwiLFxuICAgIFwidmtfZjEyXCIsXG4gICAgXCJ2a19mMlwiLFxuICAgIFwidmtfZjNcIixcbiAgICBcInZrX2Y0XCIsXG4gICAgXCJ2a19mNVwiLFxuICAgIFwidmtfZjZcIixcbiAgICBcInZrX2Y3XCIsXG4gICAgXCJ2a19mOFwiLFxuICAgIFwidmtfZjlcIixcbiAgICBcInZrX2hvbWVcIixcbiAgICBcInZrX2luc2VydFwiLFxuICAgIFwidmtfbGFsdFwiLFxuICAgIFwidmtfbGNvbnRyb2xcIixcbiAgICBcInZrX2xlZnRcIixcbiAgICBcInZrX2xzaGlmdFwiLFxuICAgIFwidmtfbXVsdGlwbHlcIixcbiAgICBcInZrX25va2V5XCIsXG4gICAgXCJ2a19udW1wYWQwXCIsXG4gICAgXCJ2a19udW1wYWQxXCIsXG4gICAgXCJ2a19udW1wYWQyXCIsXG4gICAgXCJ2a19udW1wYWQzXCIsXG4gICAgXCJ2a19udW1wYWQ0XCIsXG4gICAgXCJ2a19udW1wYWQ1XCIsXG4gICAgXCJ2a19udW1wYWQ2XCIsXG4gICAgXCJ2a19udW1wYWQ3XCIsXG4gICAgXCJ2a19udW1wYWQ4XCIsXG4gICAgXCJ2a19udW1wYWQ5XCIsXG4gICAgXCJ2a19wYWdlZG93blwiLFxuICAgIFwidmtfcGFnZXVwXCIsXG4gICAgXCJ2a19wYXVzZVwiLFxuICAgIFwidmtfcHJpbnRzY3JlZW5cIixcbiAgICBcInZrX3JhbHRcIixcbiAgICBcInZrX3Jjb250cm9sXCIsXG4gICAgXCJ2a19yZXR1cm5cIixcbiAgICBcInZrX3JpZ2h0XCIsXG4gICAgXCJ2a19yc2hpZnRcIixcbiAgICBcInZrX3NoaWZ0XCIsXG4gICAgXCJ2a19zcGFjZVwiLFxuICAgIFwidmtfc3VidHJhY3RcIixcbiAgICBcInZrX3RhYlwiLFxuICAgIFwidmtfdXBcIixcbiAgICBcIndhbGxwYXBlcl9jb25maWdcIixcbiAgICBcIndhbGxwYXBlcl9zdWJzY3JpcHRpb25fZGF0YVwiLFxuICAgIFwid3JhcFwiXG4gIF07XG4gIGNvbnN0IExBTkdVQUdFX1ZBUklBQkxFUyA9IFtcbiAgICBcImFsYXJtXCIsXG4gICAgXCJhcHBsaWNhdGlvbl9zdXJmYWNlXCIsXG4gICAgXCJhcmd1bWVudFwiLFxuICAgIFwiYXJndW1lbnQwXCIsXG4gICAgXCJhcmd1bWVudDFcIixcbiAgICBcImFyZ3VtZW50MlwiLFxuICAgIFwiYXJndW1lbnQzXCIsXG4gICAgXCJhcmd1bWVudDRcIixcbiAgICBcImFyZ3VtZW50NVwiLFxuICAgIFwiYXJndW1lbnQ2XCIsXG4gICAgXCJhcmd1bWVudDdcIixcbiAgICBcImFyZ3VtZW50OFwiLFxuICAgIFwiYXJndW1lbnQ5XCIsXG4gICAgXCJhcmd1bWVudDEwXCIsXG4gICAgXCJhcmd1bWVudDExXCIsXG4gICAgXCJhcmd1bWVudDEyXCIsXG4gICAgXCJhcmd1bWVudDEzXCIsXG4gICAgXCJhcmd1bWVudDE0XCIsXG4gICAgXCJhcmd1bWVudDE1XCIsXG4gICAgXCJhcmd1bWVudF9jb3VudFwiLFxuICAgIFwiYXN5bmNfbG9hZFwiLFxuICAgIFwiYmFja2dyb3VuZF9jb2xvclwiLFxuICAgIFwiYmFja2dyb3VuZF9jb2xvdXJcIixcbiAgICBcImJhY2tncm91bmRfc2hvd2NvbG9yXCIsXG4gICAgXCJiYWNrZ3JvdW5kX3Nob3djb2xvdXJcIixcbiAgICBcImJib3hfYm90dG9tXCIsXG4gICAgXCJiYm94X2xlZnRcIixcbiAgICBcImJib3hfcmlnaHRcIixcbiAgICBcImJib3hfdG9wXCIsXG4gICAgXCJicm93c2VyX2hlaWdodFwiLFxuICAgIFwiYnJvd3Nlcl93aWR0aFwiLFxuICAgIFwiY29sb3VyP0NvbG91clRyYWNrXCIsXG4gICAgXCJjdXJyZW50X2RheVwiLFxuICAgIFwiY3VycmVudF9ob3VyXCIsXG4gICAgXCJjdXJyZW50X21pbnV0ZVwiLFxuICAgIFwiY3VycmVudF9tb250aFwiLFxuICAgIFwiY3VycmVudF9zZWNvbmRcIixcbiAgICBcImN1cnJlbnRfdGltZVwiLFxuICAgIFwiY3VycmVudF93ZWVrZGF5XCIsXG4gICAgXCJjdXJyZW50X3llYXJcIixcbiAgICBcImN1cnNvcl9zcHJpdGVcIixcbiAgICBcImRlYnVnX21vZGVcIixcbiAgICBcImRlbHRhX3RpbWVcIixcbiAgICBcImRlcHRoXCIsXG4gICAgXCJkaXJlY3Rpb25cIixcbiAgICBcImRpc3BsYXlfYWFcIixcbiAgICBcImRyYXduX2J5X3NlcXVlbmNlXCIsXG4gICAgXCJldmVudF9hY3Rpb25cIixcbiAgICBcImV2ZW50X2RhdGFcIixcbiAgICBcImV2ZW50X251bWJlclwiLFxuICAgIFwiZXZlbnRfb2JqZWN0XCIsXG4gICAgXCJldmVudF90eXBlXCIsXG4gICAgXCJmb250X3RleHR1cmVfcGFnZV9zaXplXCIsXG4gICAgXCJmcHNcIixcbiAgICBcImZwc19yZWFsXCIsXG4gICAgXCJmcmljdGlvblwiLFxuICAgIFwiZ2FtZV9kaXNwbGF5X25hbWVcIixcbiAgICBcImdhbWVfaWRcIixcbiAgICBcImdhbWVfcHJvamVjdF9uYW1lXCIsXG4gICAgXCJnYW1lX3NhdmVfaWRcIixcbiAgICBcImdyYXZpdHlcIixcbiAgICBcImdyYXZpdHlfZGlyZWN0aW9uXCIsXG4gICAgXCJoZWFsdGhcIixcbiAgICBcImhzcGVlZFwiLFxuICAgIFwiaWFwX2RhdGFcIixcbiAgICBcImlkXCIsXG4gICAgXCJpbWFnZV9hbHBoYVwiLFxuICAgIFwiaW1hZ2VfYW5nbGVcIixcbiAgICBcImltYWdlX2JsZW5kXCIsXG4gICAgXCJpbWFnZV9pbmRleFwiLFxuICAgIFwiaW1hZ2VfbnVtYmVyXCIsXG4gICAgXCJpbWFnZV9zcGVlZFwiLFxuICAgIFwiaW1hZ2VfeHNjYWxlXCIsXG4gICAgXCJpbWFnZV95c2NhbGVcIixcbiAgICBcImluX2NvbGxpc2lvbl90cmVlXCIsXG4gICAgXCJpbl9zZXF1ZW5jZVwiLFxuICAgIFwiaW5zdGFuY2VfY291bnRcIixcbiAgICBcImluc3RhbmNlX2lkXCIsXG4gICAgXCJrZXlib2FyZF9rZXlcIixcbiAgICBcImtleWJvYXJkX2xhc3RjaGFyXCIsXG4gICAgXCJrZXlib2FyZF9sYXN0a2V5XCIsXG4gICAgXCJrZXlib2FyZF9zdHJpbmdcIixcbiAgICBcImxheWVyXCIsXG4gICAgXCJsaXZlc1wiLFxuICAgIFwibG9uZ01lc3NhZ2VcIixcbiAgICBcIm1hbmFnZWRcIixcbiAgICBcIm1hc2tfaW5kZXhcIixcbiAgICBcIm1lc3NhZ2VcIixcbiAgICBcIm1vdXNlX2J1dHRvblwiLFxuICAgIFwibW91c2VfbGFzdGJ1dHRvblwiLFxuICAgIFwibW91c2VfeFwiLFxuICAgIFwibW91c2VfeVwiLFxuICAgIFwib2JqZWN0X2luZGV4XCIsXG4gICAgXCJvc19icm93c2VyXCIsXG4gICAgXCJvc19kZXZpY2VcIixcbiAgICBcIm9zX3R5cGVcIixcbiAgICBcIm9zX3ZlcnNpb25cIixcbiAgICBcInBhdGhfZW5kYWN0aW9uXCIsXG4gICAgXCJwYXRoX2luZGV4XCIsXG4gICAgXCJwYXRoX29yaWVudGF0aW9uXCIsXG4gICAgXCJwYXRoX3Bvc2l0aW9uXCIsXG4gICAgXCJwYXRoX3Bvc2l0aW9ucHJldmlvdXNcIixcbiAgICBcInBhdGhfc2NhbGVcIixcbiAgICBcInBhdGhfc3BlZWRcIixcbiAgICBcInBlcnNpc3RlbnRcIixcbiAgICBcInBoeV9hY3RpdmVcIixcbiAgICBcInBoeV9hbmd1bGFyX2RhbXBpbmdcIixcbiAgICBcInBoeV9hbmd1bGFyX3ZlbG9jaXR5XCIsXG4gICAgXCJwaHlfYnVsbGV0XCIsXG4gICAgXCJwaHlfY29sX25vcm1hbF94XCIsXG4gICAgXCJwaHlfY29sX25vcm1hbF95XCIsXG4gICAgXCJwaHlfY29sbGlzaW9uX3BvaW50c1wiLFxuICAgIFwicGh5X2NvbGxpc2lvbl94XCIsXG4gICAgXCJwaHlfY29sbGlzaW9uX3lcIixcbiAgICBcInBoeV9jb21feFwiLFxuICAgIFwicGh5X2NvbV95XCIsXG4gICAgXCJwaHlfZHluYW1pY1wiLFxuICAgIFwicGh5X2ZpeGVkX3JvdGF0aW9uXCIsXG4gICAgXCJwaHlfaW5lcnRpYVwiLFxuICAgIFwicGh5X2tpbmVtYXRpY1wiLFxuICAgIFwicGh5X2xpbmVhcl9kYW1waW5nXCIsXG4gICAgXCJwaHlfbGluZWFyX3ZlbG9jaXR5X3hcIixcbiAgICBcInBoeV9saW5lYXJfdmVsb2NpdHlfeVwiLFxuICAgIFwicGh5X21hc3NcIixcbiAgICBcInBoeV9wb3NpdGlvbl94XCIsXG4gICAgXCJwaHlfcG9zaXRpb25feHByZXZpb3VzXCIsXG4gICAgXCJwaHlfcG9zaXRpb25feVwiLFxuICAgIFwicGh5X3Bvc2l0aW9uX3lwcmV2aW91c1wiLFxuICAgIFwicGh5X3JvdGF0aW9uXCIsXG4gICAgXCJwaHlfc2xlZXBpbmdcIixcbiAgICBcInBoeV9zcGVlZFwiLFxuICAgIFwicGh5X3NwZWVkX3hcIixcbiAgICBcInBoeV9zcGVlZF95XCIsXG4gICAgXCJwbGF5ZXJfYXZhdGFyX3Nwcml0ZVwiLFxuICAgIFwicGxheWVyX2F2YXRhcl91cmxcIixcbiAgICBcInBsYXllcl9pZFwiLFxuICAgIFwicGxheWVyX2xvY2FsXCIsXG4gICAgXCJwbGF5ZXJfdHlwZVwiLFxuICAgIFwicGxheWVyX3VzZXJfaWRcIixcbiAgICBcInByb2dyYW1fZGlyZWN0b3J5XCIsXG4gICAgXCJyb2xsYmFja19hcGlfc2VydmVyXCIsXG4gICAgXCJyb2xsYmFja19jb25maXJtZWRfZnJhbWVcIixcbiAgICBcInJvbGxiYWNrX2N1cnJlbnRfZnJhbWVcIixcbiAgICBcInJvbGxiYWNrX2V2ZW50X2lkXCIsXG4gICAgXCJyb2xsYmFja19ldmVudF9wYXJhbVwiLFxuICAgIFwicm9sbGJhY2tfZ2FtZV9ydW5uaW5nXCIsXG4gICAgXCJyb29tXCIsXG4gICAgXCJyb29tX2ZpcnN0XCIsXG4gICAgXCJyb29tX2hlaWdodFwiLFxuICAgIFwicm9vbV9sYXN0XCIsXG4gICAgXCJyb29tX3BlcnNpc3RlbnRcIixcbiAgICBcInJvb21fc3BlZWRcIixcbiAgICBcInJvb21fd2lkdGhcIixcbiAgICBcInNjb3JlXCIsXG4gICAgXCJzY3JpcHRcIixcbiAgICBcInNlcXVlbmNlX2luc3RhbmNlXCIsXG4gICAgXCJzb2xpZFwiLFxuICAgIFwic3BlZWRcIixcbiAgICBcInNwcml0ZV9oZWlnaHRcIixcbiAgICBcInNwcml0ZV9pbmRleFwiLFxuICAgIFwic3ByaXRlX3dpZHRoXCIsXG4gICAgXCJzcHJpdGVfeG9mZnNldFwiLFxuICAgIFwic3ByaXRlX3lvZmZzZXRcIixcbiAgICBcInN0YWNrdHJhY2VcIixcbiAgICBcInRlbXBfZGlyZWN0b3J5XCIsXG4gICAgXCJ0aW1lbGluZV9pbmRleFwiLFxuICAgIFwidGltZWxpbmVfbG9vcFwiLFxuICAgIFwidGltZWxpbmVfcG9zaXRpb25cIixcbiAgICBcInRpbWVsaW5lX3J1bm5pbmdcIixcbiAgICBcInRpbWVsaW5lX3NwZWVkXCIsXG4gICAgXCJ2aWV3X2NhbWVyYVwiLFxuICAgIFwidmlld19jdXJyZW50XCIsXG4gICAgXCJ2aWV3X2VuYWJsZWRcIixcbiAgICBcInZpZXdfaHBvcnRcIixcbiAgICBcInZpZXdfc3VyZmFjZV9pZFwiLFxuICAgIFwidmlld192aXNpYmxlXCIsXG4gICAgXCJ2aWV3X3dwb3J0XCIsXG4gICAgXCJ2aWV3X3hwb3J0XCIsXG4gICAgXCJ2aWV3X3lwb3J0XCIsXG4gICAgXCJ2aXNpYmxlXCIsXG4gICAgXCJ2c3BlZWRcIixcbiAgICBcIndlYmdsX2VuYWJsZWRcIixcbiAgICBcIndvcmtpbmdfZGlyZWN0b3J5XCIsXG4gICAgXCJ4XCIsXG4gICAgXCJ4cHJldmlvdXNcIixcbiAgICBcInhzdGFydFwiLFxuICAgIFwieVwiLFxuICAgIFwieXByZXZpb3VzXCIsXG4gICAgXCJ5c3RhcnRcIlxuICBdO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHTUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLCAvLyBsYW5ndWFnZSBpcyBjYXNlLWluc2Vuc2l0aXZlXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICAgIHN5bWJvbDogU1lNQk9MUyxcbiAgICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogTEFOR1VBR0VfVkFSSUFCTEVTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ21sO1xuIiwgIi8qXG5MYW5ndWFnZTogR29cbkF1dGhvcjogU3RlcGhhbiBLb3VudHNvIGFrYSBTdGVwTGcgPHN0ZXBsZ0BnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEV2Z2VueSBTdGVwYW5pc2NoZXYgPGltYm9sa0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogR29vZ2xlIGdvIGxhbmd1YWdlIChnb2xhbmcpLiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZVxuV2Vic2l0ZTogaHR0cDovL2dvbGFuZy5vcmcvXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIGdvKGhsanMpIHtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiaW90YVwiLFxuICAgIFwibmlsXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYXBwZW5kXCIsXG4gICAgXCJjYXBcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb21wbGV4XCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJpbWFnXCIsXG4gICAgXCJsZW5cIixcbiAgICBcIm1ha2VcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicGFuaWNcIixcbiAgICBcInByaW50XCIsXG4gICAgXCJwcmludGxuXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJyZWNvdmVyXCIsXG4gICAgXCJkZWxldGVcIlxuICBdO1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVcIixcbiAgICBcImNvbXBsZXg2NFwiLFxuICAgIFwiY29tcGxleDEyOFwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImZsb2F0MzJcIixcbiAgICBcImZsb2F0NjRcIixcbiAgICBcImludDhcIixcbiAgICBcImludDE2XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwidWludDhcIixcbiAgICBcInVpbnQxNlwiLFxuICAgIFwidWludDMyXCIsXG4gICAgXCJ1aW50NjRcIixcbiAgICBcImludFwiLFxuICAgIFwidWludFwiLFxuICAgIFwidWludHB0clwiLFxuICAgIFwicnVuZVwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjaGFuXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlZmVyXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJmYWxsdGhyb3VnaFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5jXCIsXG4gICAgXCJnb1wiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJtYXBcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcInJhbmdlXCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInR5cGVcIixcbiAgICBcInZhclwiLFxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBLV1MsXG4gICAgdHlwZTogVFlQRVMsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOU1xuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHbycsXG4gICAgYWxpYXNlczogWyAnZ29sYW5nJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgICAgICBlbmQ6ICdgJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogLy0/XFxiMFt4WF1cXC5bYS1mQS1GMC05XShfP1thLWZBLUYwLTldKSpbcFBdWystXT9cXGQoXz9cXGQpKmk/LywgLy8gaGV4IHdpdGhvdXQgYSBwcmVzZW50IGRpZ2l0IGJlZm9yZSAuIChtYWtpbmcgYSBkaWdpdCBhZnRlcndhcmRzIHJlcXVpcmVkKVxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogLy0/XFxiMFt4WF0oXz9bYS1mQS1GMC05XSkrKChcXC4oW2EtZkEtRjAtOV0oXz9bYS1mQS1GMC05XSkqKT8pP1twUF1bKy1dP1xcZChfP1xcZCkqKT9pPy8sIC8vIGhleCB3aXRoIGEgcHJlc2VudCBkaWdpdCBiZWZvcmUgLiAobWFraW5nIGEgZGlnaXQgYWZ0ZXJ3YXJkcyBvcHRpb25hbClcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC8tP1xcYjBbb09dKF8/WzAtN10pKmk/LywgLy8gbGVhZGluZyAwbyBvY3RhbFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogLy0/XFwuXFxkKF8/XFxkKSooW2VFXVsrLV0/XFxkKF8/XFxkKSopP2k/LywgLy8gZGVjaW1hbCB3aXRob3V0IGEgcHJlc2VudCBkaWdpdCBiZWZvcmUgLiAobWFraW5nIGEgZGlnaXQgYWZ0ZXJ3YXJkcyByZXF1aXJlZClcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC8tP1xcYlxcZChfP1xcZCkqKFxcLihcXGQoXz9cXGQpKik/KT8oW2VFXVsrLV0/XFxkKF8/XFxkKSopP2k/LywgLy8gZGVjaW1hbCB3aXRoIGEgcHJlc2VudCBkaWdpdCBiZWZvcmUgLiAobWFraW5nIGEgZGlnaXQgYWZ0ZXJ3YXJkcyBvcHRpb25hbClcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC86PS8gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmMnLFxuICAgICAgICBlbmQ6ICdcXFxccyooXFxcXHt8JCknLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvW1wiJ10vXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdvO1xuIiwgIi8qXG5MYW5ndWFnZTogR29sb1xuQXV0aG9yOiBQaGlsaXBwZSBDaGFycmllcmUgPHBoLmNoYXJyaWVyZUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogYSBsaWdodHdlaWdodCBkeW5hbWljIGxhbmd1YWdlIGZvciB0aGUgSlZNXG5XZWJzaXRlOiBodHRwOi8vZ29sby1sYW5nLm9yZy9cbkNhdGVnb3J5OiBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIGdvbG8oaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcInByaW50bG5cIixcbiAgICBcInJlYWRsblwiLFxuICAgIFwicHJpbnRcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJ2YXJcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcInRpbWVzXCIsXG4gICAgXCJpblwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwid2hlblwiLFxuICAgIFwibWF0Y2hcIixcbiAgICBcIndpdGhcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiYXVnbWVudFwiLFxuICAgIFwiYXVnbWVudGF0aW9uXCIsXG4gICAgXCJlYWNoXCIsXG4gICAgXCJmaW5kXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcInJlZHVjZVwiLFxuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcIm90aGVyd2lzZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwicmFpc2VcIixcbiAgICBcInRocm93XCIsXG4gICAgXCJvcklmTnVsbFwiLFxuICAgIFwiRHluYW1pY09iamVjdHwxMFwiLFxuICAgIFwiRHluYW1pY1ZhcmlhYmxlXCIsXG4gICAgXCJzdHJ1Y3RcIixcbiAgICBcIk9ic2VydmFibGVcIixcbiAgICBcIm1hcFwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJ2ZWN0b3JcIixcbiAgICBcImxpc3RcIixcbiAgICBcImFycmF5XCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHb2xvJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBbXG4gICAgICAgIFwidHJ1ZVwiLFxuICAgICAgICBcImZhbHNlXCIsXG4gICAgICAgIFwibnVsbFwiXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdvbG87XG4iLCAiLypcbkxhbmd1YWdlOiBHcmFkbGVcbkRlc2NyaXB0aW9uOiBHcmFkbGUgaXMgYW4gb3Blbi1zb3VyY2UgYnVpbGQgYXV0b21hdGlvbiB0b29sIGZvY3VzZWQgb24gZmxleGliaWxpdHkgYW5kIHBlcmZvcm1hbmNlLlxuV2Vic2l0ZTogaHR0cHM6Ly9ncmFkbGUub3JnXG5BdXRob3I6IERhbWlhbiBNZWUgPG1lZS5kYW1pYW5AZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGJ1aWxkLXN5c3RlbVxuKi9cblxuZnVuY3Rpb24gZ3JhZGxlKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJ0YXNrXCIsXG4gICAgXCJwcm9qZWN0XCIsXG4gICAgXCJhbGxwcm9qZWN0c1wiLFxuICAgIFwic3VicHJvamVjdHNcIixcbiAgICBcImFydGlmYWN0c1wiLFxuICAgIFwiYnVpbGRzY3JpcHRcIixcbiAgICBcImNvbmZpZ3VyYXRpb25zXCIsXG4gICAgXCJkZXBlbmRlbmNpZXNcIixcbiAgICBcInJlcG9zaXRvcmllc1wiLFxuICAgIFwic291cmNlU2V0c1wiLFxuICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICBcImRlbGV0ZVwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiaW50b1wiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiZXhjbHVkZVwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJjbGFzc3BhdGhcIixcbiAgICBcImRlc3RpbmF0aW9uRGlyXCIsXG4gICAgXCJpbmNsdWRlc1wiLFxuICAgIFwib3B0aW9uc1wiLFxuICAgIFwic291cmNlQ29tcGF0aWJpbGl0eVwiLFxuICAgIFwidGFyZ2V0Q29tcGF0aWJpbGl0eVwiLFxuICAgIFwiZ3JvdXBcIixcbiAgICBcImZsYXREaXJcIixcbiAgICBcImRvTGFzdFwiLFxuICAgIFwiZG9GaXJzdFwiLFxuICAgIFwiZmxhdHRlblwiLFxuICAgIFwidG9kaXJcIixcbiAgICBcImZyb21kaXJcIixcbiAgICBcImFudFwiLFxuICAgIFwiZGVmXCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJmaW5hbGx5XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJuYXRpdmVcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInN5bmNocm9uaXplZFwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRocm93c1wiLFxuICAgIFwidHJhbnNpZW50XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInZvbGF0aWxlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwic3RyaWN0ZnBcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJhbnRscnRhc2tcIixcbiAgICBcImNoZWNrc3R5bGVcIixcbiAgICBcImNvZGVuYXJjXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImxvbmdcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJjb21waWxlXCIsXG4gICAgXCJydW5UaW1lXCIsXG4gICAgXCJmaWxlXCIsXG4gICAgXCJmaWxlVHJlZVwiLFxuICAgIFwiYWJzXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFwcGVuZFwiLFxuICAgIFwiYXNMaXN0XCIsXG4gICAgXCJhc1dyaXRhYmxlXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJjb2xsZWN0XCIsXG4gICAgXCJjb21wYXJlVG9cIixcbiAgICBcImNvdW50XCIsXG4gICAgXCJkaXZcIixcbiAgICBcImR1bXBcIixcbiAgICBcImVhY2hcIixcbiAgICBcImVhY2hCeXRlXCIsXG4gICAgXCJlYWNoRmlsZVwiLFxuICAgIFwiZWFjaExpbmVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJmaW5kXCIsXG4gICAgXCJmaW5kQWxsXCIsXG4gICAgXCJmbGF0dGVuXCIsXG4gICAgXCJnZXRBdFwiLFxuICAgIFwiZ2V0RXJyXCIsXG4gICAgXCJnZXRJblwiLFxuICAgIFwiZ2V0T3V0XCIsXG4gICAgXCJnZXRUZXh0XCIsXG4gICAgXCJncmVwXCIsXG4gICAgXCJpbW11dGFibGVcIixcbiAgICBcImluamVjdFwiLFxuICAgIFwiaW5zcGVjdFwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnZva2VNZXRob2RzXCIsXG4gICAgXCJpc0Nhc2VcIixcbiAgICBcImpvaW5cIixcbiAgICBcImxlZnRTaGlmdFwiLFxuICAgIFwibWludXNcIixcbiAgICBcIm11bHRpcGx5XCIsXG4gICAgXCJuZXdJbnB1dFN0cmVhbVwiLFxuICAgIFwibmV3T3V0cHV0U3RyZWFtXCIsXG4gICAgXCJuZXdQcmludFdyaXRlclwiLFxuICAgIFwibmV3UmVhZGVyXCIsXG4gICAgXCJuZXdXcml0ZXJcIixcbiAgICBcIm5leHRcIixcbiAgICBcInBsdXNcIixcbiAgICBcInBvcFwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInByZXZpb3VzXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicHJpbnRsblwiLFxuICAgIFwicHVzaFwiLFxuICAgIFwicHV0QXRcIixcbiAgICBcInJlYWRcIixcbiAgICBcInJlYWRCeXRlc1wiLFxuICAgIFwicmVhZExpbmVzXCIsXG4gICAgXCJyZXZlcnNlXCIsXG4gICAgXCJyZXZlcnNlRWFjaFwiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNpemVcIixcbiAgICBcInNvcnRcIixcbiAgICBcInNwbGl0RWFjaExpbmVcIixcbiAgICBcInN0ZXBcIixcbiAgICBcInN1Yk1hcFwiLFxuICAgIFwidGltZXNcIixcbiAgICBcInRvSW50ZWdlclwiLFxuICAgIFwidG9MaXN0XCIsXG4gICAgXCJ0b2tlbml6ZVwiLFxuICAgIFwidXB0b1wiLFxuICAgIFwid2FpdEZvck9yS2lsbFwiLFxuICAgIFwid2l0aFByaW50V3JpdGVyXCIsXG4gICAgXCJ3aXRoUmVhZGVyXCIsXG4gICAgXCJ3aXRoU3RyZWFtXCIsXG4gICAgXCJ3aXRoV3JpdGVyXCIsXG4gICAgXCJ3aXRoV3JpdGVyQXBwZW5kXCIsXG4gICAgXCJ3cml0ZVwiLFxuICAgIFwid3JpdGVMaW5lXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnR3JhZGxlJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5SRUdFWFBfTU9ERVxuXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdyYWRsZTtcbiIsICIvKlxuIExhbmd1YWdlOiBHcmFwaFFMXG4gQXV0aG9yOiBKb2huIEZvc3RlciAoR0ggamY5OTApLCBhbmQgb3RoZXJzXG4gRGVzY3JpcHRpb246IEdyYXBoUUwgaXMgYSBxdWVyeSBsYW5ndWFnZSBmb3IgQVBJc1xuIENhdGVnb3J5OiB3ZWIsIGNvbW1vblxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGdyYXBocWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEdRTF9OQU1FID0gL1tfQS1aYS16XVtfMC05QS1aYS16XSovO1xuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiR3JhcGhRTFwiLFxuICAgIGFsaWFzZXM6IFsgXCJncWxcIiBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgZGlzYWJsZUF1dG9kZXRlY3Q6IGZhbHNlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBbXG4gICAgICAgIFwicXVlcnlcIixcbiAgICAgICAgXCJtdXRhdGlvblwiLFxuICAgICAgICBcInN1YnNjcmlwdGlvblwiLFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJpbnB1dFwiLFxuICAgICAgICBcInNjaGVtYVwiLFxuICAgICAgICBcImRpcmVjdGl2ZVwiLFxuICAgICAgICBcImludGVyZmFjZVwiLFxuICAgICAgICBcInVuaW9uXCIsXG4gICAgICAgIFwic2NhbGFyXCIsXG4gICAgICAgIFwiZnJhZ21lbnRcIixcbiAgICAgICAgXCJlbnVtXCIsXG4gICAgICAgIFwib25cIlxuICAgICAgXSxcbiAgICAgIGxpdGVyYWw6IFtcbiAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgIFwiZmFsc2VcIixcbiAgICAgICAgXCJudWxsXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgIG1hdGNoOiAvWy5dezN9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogXCJwdW5jdHVhdGlvblwiLFxuICAgICAgICBiZWdpbjogL1tcXCFcXChcXClcXDpcXD1cXFtcXF1cXHtcXHxcXH1dezF9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogXCJ2YXJpYWJsZVwiLFxuICAgICAgICBiZWdpbjogL1xcJC8sXG4gICAgICAgIGVuZDogL1xcVy8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwibWV0YVwiLFxuICAgICAgICBtYXRjaDogL0BcXHcrLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwic3ltYm9sXCIsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoR1FMX05BTUUsIHJlZ2V4Lmxvb2thaGVhZCgvXFxzKjovKSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogW1xuICAgICAgL1s7PCddLyxcbiAgICAgIC9CRUdJTi9cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ3JhcGhxbDtcbiIsICIvKlxuIExhbmd1YWdlOiBHcm9vdnlcbiBBdXRob3I6IEd1aWxsYXVtZSBMYWZvcmdlIDxnbGFmb3JnZUBnbWFpbC5jb20+XG4gRGVzY3JpcHRpb246IEdyb292eSBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbXBsZW1lbnRhdGlvbiBpbnNwaXJlZCBmcm9tIFZzZXZvbG9kJ3MgSmF2YSBtb2RlXG4gV2Vic2l0ZTogaHR0cHM6Ly9ncm9vdnktbGFuZy5vcmdcbiBDYXRlZ29yeTogc3lzdGVtXG4gKi9cblxuZnVuY3Rpb24gdmFyaWFudHModmFyaWFudHMsIG9iaiA9IHt9KSB7XG4gIG9iai52YXJpYW50cyA9IHZhcmlhbnRzO1xuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBncm9vdnkoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UX1JFID0gJ1tBLVphLXowLTlfJF0rJztcbiAgY29uc3QgQ09NTUVOVCA9IHZhcmlhbnRzKFtcbiAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnL1xcXFwqXFxcXConLFxuICAgICAgJ1xcXFwqLycsXG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBlYXQgdXAgQCdzIGluIGVtYWlscyB0byBwcmV2ZW50IHRoZW0gdG8gYmUgcmVjb2duaXplZCBhcyBkb2N0YWdzXG4gICAgICAgICAgICBiZWdpbjogL1xcdytALyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgIGJlZ2luOiAnQFtBLVphLXpdKydcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApXG4gIF0pO1xuICBjb25zdCBSRUdFWFAgPSB7XG4gICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICBiZWdpbjogL34/XFwvW15cXC9cXG5dK1xcLy8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcbiAgY29uc3QgTlVNQkVSID0gdmFyaWFudHMoW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICBdKTtcbiAgY29uc3QgU1RSSU5HID0gdmFyaWFudHMoW1xuICAgIHtcbiAgICAgIGJlZ2luOiAvXCJcIlwiLyxcbiAgICAgIGVuZDogL1wiXCJcIi9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvJycnLyxcbiAgICAgIGVuZDogLycnJy9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiBcIlxcXFwkL1wiLFxuICAgICAgZW5kOiBcIi9cXFxcJFwiLFxuICAgICAgcmVsZXZhbmNlOiAxMFxuICAgIH0sXG4gICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgXSxcbiAgeyBjbGFzc05hbWU6IFwic3RyaW5nXCIgfVxuICApO1xuXG4gIGNvbnN0IENMQVNTX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC8oY2xhc3N8aW50ZXJmYWNlfHRyYWl0fGVudW18cmVjb3JkfGV4dGVuZHN8aW1wbGVtZW50cykvLFxuICAgICAgL1xccysvLFxuICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgfVxuICB9O1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImJ5dGVcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJpbnRcIixcbiAgICBcImxvbmdcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJkb3VibGVcIixcbiAgICBcInZvaWRcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICAvLyBncm9vdnkgc3BlY2lmaWMga2V5d29yZHNcbiAgICBcImRlZlwiLFxuICAgIFwiYXNcIixcbiAgICBcImluXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcInRyYWl0XCIsXG4gICAgLy8gY29tbW9uIGtleXdvcmRzIHdpdGggSmF2YVxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcInRyYW5zaWVudFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInN5bmNocm9uaXplZFwiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImVudW1cIixcbiAgICBcImlmXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJmb3JcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcImNhc2VcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRocm93c1wiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwiaW1wbGVtZW50c1wiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwibmV3XCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiaW5zdGFuY2VvZlwiLFxuICAgIFwidmFyXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHcm9vdnknLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6ICd0aGlzIHN1cGVyJyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIG51bGwnLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBrZXl3b3JkOiBLRVlXT1JEU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGJpbmFyeTogXCJncm9vdnlcIixcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSksXG4gICAgICBDT01NRU5ULFxuICAgICAgU1RSSU5HLFxuICAgICAgUkVHRVhQLFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfREVGSU5JVElPTixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnQFtBLVphLXpdKycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0IG1hcCBrZXlzIGFuZCBuYW1lZCBwYXJhbWV0ZXJzIGFzIGF0dHJzXG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogSURFTlRfUkUgKyAnWyBcXHRdKjonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGNhdGNoIG1pZGRsZSBlbGVtZW50IG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yXG4gICAgICAgIC8vIHRvIGF2b2lkIGhpZ2hsaWdodCBpdCBhcyBhIGxhYmVsLCBuYW1lZCBwYXJhbWV0ZXIsIG9yIG1hcCBrZXlcbiAgICAgICAgYmVnaW46IC9cXD8vLFxuICAgICAgICBlbmQ6IC86LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIENPTU1FTlQsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIFJFR0VYUCxcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgJ3NlbGYnXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBsYWJlbGVkIHN0YXRlbWVudHNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdeWyBcXHRdKicgKyByZWdleC5sb29rYWhlYWQoSURFTlRfUkUgKyAnOicpLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZDogSURFTlRfUkUgKyAnOicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogLyN8PFxcLy9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBncm9vdnk7XG4iLCAiLypcbkxhbmd1YWdlOiBIQU1MXG5SZXF1aXJlczogcnVieS5qc1xuQXV0aG9yOiBEYW4gQWxsZW4gPGRhbi5qLmFsbGVuQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHA6Ly9oYW1sLmluZm9cbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuLy8gVE9ETyBzdXBwb3J0IGZpbHRlciB0YWdzIGxpa2UgOmphdmFzY3JpcHQsIHN1cHBvcnQgaW5saW5lIEhUTUxcbmZ1bmN0aW9uIGhhbWwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdIQU1MJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ14hISEoICg1fDFcXFxcLjF8U3RyaWN0fEZyYW1lc2V0fEJhc2ljfE1vYmlsZXxSREZhfFhNTFxcXFxiLiopKT8kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIEZJWE1FIHRoZXNlIGNvbW1lbnRzIHNob3VsZCBiZSBhbGxvd2VkIHRvIHNwYW4gaW5kZW50ZWQgbGluZXNcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ15cXFxccyooIT0jfD0jfC0jfC8pLiokJyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgeyByZWxldmFuY2U6IDAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqKC18PXwhPSkoPyEjKScsXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKiUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFx3KydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJyxcbiAgICAgICAgICAgIGJlZ2luOiAnI1tcXFxcdy1dKydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWNsYXNzJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXC5bXFxcXHctXSsnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xce1xccyovLFxuICAgICAgICAgICAgZW5kOiAvXFxzKlxcfS8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46ICc6XFxcXHcrXFxcXHMqPT4nLFxuICAgICAgICAgICAgICAgIGVuZDogJyxcXFxccysnLFxuICAgICAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogJzpcXFxcdysnXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcdysnLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXChcXFxccyonLFxuICAgICAgICAgICAgZW5kOiAnXFxcXHMqXFxcXCknLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFx3K1xcXFxzKj0nLFxuICAgICAgICAgICAgICAgIGVuZDogJ1xcXFxzKycsXG4gICAgICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHcrJyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcdysnLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnXlxcXFxzKls9fl1cXFxccyonIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvI1xcey8sXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAncnVieScsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYW1sO1xuIiwgIi8qXG5MYW5ndWFnZTogSGFuZGxlYmFyc1xuUmVxdWlyZXM6IHhtbC5qc1xuQXV0aG9yOiBSb2JpbiBXYXJkIDxyb2Jpbi53YXJkQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBNYXRjaGVyIGZvciBIYW5kbGViYXJzIGFzIHdlbGwgYXMgRW1iZXJKUyBhZGRpdGlvbnMuXG5XZWJzaXRlOiBodHRwczovL2hhbmRsZWJhcnNqcy5jb21cbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuZnVuY3Rpb24gaGFuZGxlYmFycyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgQlVJTFRfSU5TID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5cXC9dKy8sXG4gICAgYnVpbHRfaW46IFtcbiAgICAgICdhY3Rpb24nLFxuICAgICAgJ2JpbmRhdHRyJyxcbiAgICAgICdjb2xsZWN0aW9uJyxcbiAgICAgICdjb21wb25lbnQnLFxuICAgICAgJ2NvbmNhdCcsXG4gICAgICAnZGVidWdnZXInLFxuICAgICAgJ2VhY2gnLFxuICAgICAgJ2VhY2gtaW4nLFxuICAgICAgJ2dldCcsXG4gICAgICAnaGFzaCcsXG4gICAgICAnaWYnLFxuICAgICAgJ2luJyxcbiAgICAgICdpbnB1dCcsXG4gICAgICAnbGluay10bycsXG4gICAgICAnbG9jJyxcbiAgICAgICdsb2cnLFxuICAgICAgJ2xvb2t1cCcsXG4gICAgICAnbXV0JyxcbiAgICAgICdvdXRsZXQnLFxuICAgICAgJ3BhcnRpYWwnLFxuICAgICAgJ3F1ZXJ5LXBhcmFtcycsXG4gICAgICAncmVuZGVyJyxcbiAgICAgICd0ZW1wbGF0ZScsXG4gICAgICAndGV4dGFyZWEnLFxuICAgICAgJ3VuYm91bmQnLFxuICAgICAgJ3VubGVzcycsXG4gICAgICAndmlldycsXG4gICAgICAnd2l0aCcsXG4gICAgICAneWllbGQnXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IExJVEVSQUxTID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5cXC9dKy8sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgJ3RydWUnLFxuICAgICAgJ2ZhbHNlJyxcbiAgICAgICd1bmRlZmluZWQnLFxuICAgICAgJ251bGwnXG4gICAgXVxuICB9O1xuXG4gIC8vIGFzIGRlZmluZWQgaW4gaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2d1aWRlL2V4cHJlc3Npb25zLmh0bWwjbGl0ZXJhbC1zZWdtZW50c1xuICAvLyB0aGlzIHJlZ2V4IG1hdGNoZXMgbGl0ZXJhbCBzZWdtZW50cyBsaWtlICcgYWJjICcgb3IgWyBhYmMgXSBhcyB3ZWxsIGFzIGhlbHBlcnMgYW5kIHBhdGhzXG4gIC8vIGxpa2UgYS9iLCAuL2FiYy9jZGUsIGFuZCBhYmMuYmNkXG5cbiAgY29uc3QgRE9VQkxFX1FVT1RFRF9JRF9SRUdFWCA9IC9cIlwifFwiW15cIl0rXCIvO1xuICBjb25zdCBTSU5HTEVfUVVPVEVEX0lEX1JFR0VYID0gLycnfCdbXiddKycvO1xuICBjb25zdCBCUkFDS0VUX1FVT1RFRF9JRF9SRUdFWCA9IC9cXFtcXF18XFxbW15cXF1dK1xcXS87XG4gIGNvbnN0IFBMQUlOX0lEX1JFR0VYID0gL1teXFxzIVwiIyUmJygpKissLlxcLzs8PT5AXFxbXFxcXFxcXV5ge3x9fl0rLztcbiAgY29uc3QgUEFUSF9ERUxJTUlURVJfUkVHRVggPSAvKFxcLnxcXC8pLztcbiAgY29uc3QgQU5ZX0lEID0gcmVnZXguZWl0aGVyKFxuICAgIERPVUJMRV9RVU9URURfSURfUkVHRVgsXG4gICAgU0lOR0xFX1FVT1RFRF9JRF9SRUdFWCxcbiAgICBCUkFDS0VUX1FVT1RFRF9JRF9SRUdFWCxcbiAgICBQTEFJTl9JRF9SRUdFWFxuICApO1xuXG4gIGNvbnN0IElERU5USUZJRVJfUkVHRVggPSByZWdleC5jb25jYXQoXG4gICAgcmVnZXgub3B0aW9uYWwoL1xcLnxcXC5cXC98XFwvLyksIC8vIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhcbiAgICBBTllfSUQsXG4gICAgcmVnZXguYW55TnVtYmVyT2ZUaW1lcyhyZWdleC5jb25jYXQoXG4gICAgICBQQVRIX0RFTElNSVRFUl9SRUdFWCxcbiAgICAgIEFOWV9JRFxuICAgICkpXG4gICk7XG5cbiAgLy8gaWRlbnRpZmllciBmb2xsb3dlZCBieSBhIGVxdWFsLXNpZ24gKHdpdGhvdXQgdGhlIGVxdWFsIHNpZ24pXG4gIGNvbnN0IEhBU0hfUEFSQU1fUkVHRVggPSByZWdleC5jb25jYXQoXG4gICAgJygnLFxuICAgIEJSQUNLRVRfUVVPVEVEX0lEX1JFR0VYLCAnfCcsXG4gICAgUExBSU5fSURfUkVHRVgsXG4gICAgJykoPz09KSdcbiAgKTtcblxuICBjb25zdCBIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04gPSB7IGJlZ2luOiBJREVOVElGSUVSX1JFR0VYIH07XG5cbiAgY29uc3QgSEVMUEVSX1BBUkFNRVRFUiA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHsga2V5d29yZHM6IExJVEVSQUxTIH0pO1xuXG4gIGNvbnN0IFNVQl9FWFBSRVNTSU9OID0ge1xuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvXG4gICAgLy8gdGhlIFwiY29udGFpbnNcIiBpcyBhZGRlZCBiZWxvdyB3aGVuIGFsbCBuZWNlc3Nhcnkgc3ViLW1vZGVzIGFyZSBkZWZpbmVkXG4gIH07XG5cbiAgY29uc3QgSEFTSCA9IHtcbiAgICAvLyBma2EgXCJhdHRyaWJ1dGUtYXNzaWdubWVudFwiLCBwYXJhbWV0ZXJzIG9mIHRoZSBmb3JtICdrZXk9dmFsdWUnXG4gICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgYmVnaW46IEhBU0hfUEFSQU1fUkVHRVgsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHN0YXJ0czoge1xuICAgICAgYmVnaW46IC89LyxcbiAgICAgIGVuZDogLz0vLFxuICAgICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgSEVMUEVSX1BBUkFNRVRFUixcbiAgICAgICAgU1VCX0VYUFJFU1NJT05cbiAgICAgIF0gfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBCTE9DS19QQVJBTVMgPSB7XG4gICAgLy8gcGFyYW1ldGVycyBvZiB0aGUgZm9ybSAne3sjd2l0aCB4IGFzIHwgeSB8fX0uLi57ey93aXRofX0nXG4gICAgYmVnaW46IC9hc1xccytcXHwvLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdhcycgfSxcbiAgICBlbmQ6IC9cXHwvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIC8vIGRlZmluZSBzdWItbW9kZSBpbiBvcmRlciB0byBwcmV2ZW50IGhpZ2hsaWdodGluZyBvZiBibG9jay1wYXJhbWV0ZXIgbmFtZWQgXCJhc1wiXG4gICAgICAgIGJlZ2luOiAvXFx3Ky8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBIRUxQRVJfUEFSQU1FVEVSUyA9IHtcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBCTE9DS19QQVJBTVMsXG4gICAgICBIQVNILFxuICAgICAgSEVMUEVSX1BBUkFNRVRFUixcbiAgICAgIFNVQl9FWFBSRVNTSU9OXG4gICAgXSxcbiAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAvLyB0aGUgcHJvcGVydHkgXCJlbmRcIiBpcyBkZWZpbmVkIHRocm91Z2ggaW5oZXJpdGFuY2Ugd2hlbiB0aGUgbW9kZSBpcyB1c2VkLiBJZiBkZXBlbmRzXG4gICAgLy8gb24gdGhlIHN1cnJvdW5kaW5nIG1vZGUsIGJ1dCBcImVuZHNXaXRoUGFyZW50XCIgZG9lcyBub3Qgd29yayBoZXJlIChpLmUuIGl0IGluY2x1ZGVzIHRoZVxuICAgIC8vIGVuZC10b2tlbiBvZiB0aGUgc3Vycm91bmRpbmcgbW9kZSlcbiAgfTtcblxuICBjb25zdCBTVUJfRVhQUkVTU0lPTl9DT05URU5UUyA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHtcbiAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICBrZXl3b3JkczogQlVJTFRfSU5TLFxuICAgIHN0YXJ0czogaGxqcy5pbmhlcml0KEhFTFBFUl9QQVJBTUVURVJTLCB7IGVuZDogL1xcKS8gfSlcbiAgfSk7XG5cbiAgU1VCX0VYUFJFU1NJT04uY29udGFpbnMgPSBbIFNVQl9FWFBSRVNTSU9OX0NPTlRFTlRTIF07XG5cbiAgY29uc3QgT1BFTklOR19CTE9DS19NVVNUQUNIRV9DT05URU5UUyA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHtcbiAgICBrZXl3b3JkczogQlVJTFRfSU5TLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgIHN0YXJ0czogaGxqcy5pbmhlcml0KEhFTFBFUl9QQVJBTUVURVJTLCB7IGVuZDogL1xcfVxcfS8gfSlcbiAgfSk7XG5cbiAgY29uc3QgQ0xPU0lOR19CTE9DS19NVVNUQUNIRV9DT05URU5UUyA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHtcbiAgICBrZXl3b3JkczogQlVJTFRfSU5TLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnXG4gIH0pO1xuXG4gIGNvbnN0IEJBU0lDX01VU1RBQ0hFX0NPTlRFTlRTID0gaGxqcy5pbmhlcml0KEhFTFBFUl9OQU1FX09SX1BBVEhfRVhQUkVTU0lPTiwge1xuICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgIGtleXdvcmRzOiBCVUlMVF9JTlMsXG4gICAgc3RhcnRzOiBobGpzLmluaGVyaXQoSEVMUEVSX1BBUkFNRVRFUlMsIHsgZW5kOiAvXFx9XFx9LyB9KVxuICB9KTtcblxuICBjb25zdCBFU0NBUEVfTVVTVEFDSEVfV0lUSF9QUkVDRUVESU5HX0JBQ0tTTEFTSCA9IHtcbiAgICBiZWdpbjogL1xcXFxcXHtcXHsvLFxuICAgIHNraXA6IHRydWVcbiAgfTtcbiAgY29uc3QgUFJFVkVOVF9FU0NBUEVfV0lUSF9BTk9USEVSX1BSRUNFRURJTkdfQkFDS1NMQVNIID0ge1xuICAgIGJlZ2luOiAvXFxcXFxcXFwoPz1cXHtcXHspLyxcbiAgICBza2lwOiB0cnVlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSGFuZGxlYmFycycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2hicycsXG4gICAgICAnaHRtbC5oYnMnLFxuICAgICAgJ2h0bWwuaGFuZGxlYmFycycsXG4gICAgICAnaHRtbGJhcnMnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAgRVNDQVBFX01VU1RBQ0hFX1dJVEhfUFJFQ0VFRElOR19CQUNLU0xBU0gsXG4gICAgICBQUkVWRU5UX0VTQ0FQRV9XSVRIX0FOT1RIRVJfUFJFQ0VFRElOR19CQUNLU0xBU0gsXG4gICAgICBobGpzLkNPTU1FTlQoL1xce1xceyEtLS8sIC8tLVxcfVxcfS8pLFxuICAgICAgaGxqcy5DT01NRU5UKC9cXHtcXHshLywgL1xcfVxcfS8pLFxuICAgICAge1xuICAgICAgICAvLyBvcGVuIHJhdyBibG9jayBcInt7e3tyYXd9fX19IGNvbnRlbnQgbm90IGV2YWx1YXRlZCB7e3t7L3Jhd319fX1cIlxuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1xce1xce1xceyg/IVxcLykvLFxuICAgICAgICBlbmQ6IC9cXH1cXH1cXH1cXH0vLFxuICAgICAgICBjb250YWluczogWyBPUEVOSU5HX0JMT0NLX01VU1RBQ0hFX0NPTlRFTlRTIF0sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogL1xce1xce1xce1xce1xcLy8sXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBjbG9zZSByYXcgYmxvY2tcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHtcXHtcXHtcXC8vLFxuICAgICAgICBlbmQ6IC9cXH1cXH1cXH1cXH0vLFxuICAgICAgICBjb250YWluczogWyBDTE9TSU5HX0JMT0NLX01VU1RBQ0hFX0NPTlRFTlRTIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIG9wZW4gYmxvY2sgc3RhdGVtZW50XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXRhZycsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7Iy8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIE9QRU5JTkdfQkxPQ0tfTVVTVEFDSEVfQ09OVEVOVFMgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHsoPz1lbHNlXFx9XFx9KS8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGtleXdvcmRzOiAnZWxzZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXRhZycsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7KD89ZWxzZSBpZikvLFxuICAgICAgICBlbmQ6IC9cXH1cXH0vLFxuICAgICAgICBrZXl3b3JkczogJ2Vsc2UgaWYnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBjbG9zaW5nIGJsb2NrIHN0YXRlbWVudFxuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1xce1xcLy8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIENMT1NJTkdfQkxPQ0tfTVVTVEFDSEVfQ09OVEVOVFMgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gdGVtcGxhdGUgdmFyaWFibGUgb3IgaGVscGVyLWNhbGwgdGhhdCBpcyBOT1QgaHRtbC1lc2NhcGVkXG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHtcXHsvLFxuICAgICAgICBlbmQ6IC9cXH1cXH1cXH0vLFxuICAgICAgICBjb250YWluczogWyBCQVNJQ19NVVNUQUNIRV9DT05URU5UUyBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0ZW1wbGF0ZSB2YXJpYWJsZSBvciBoZWxwZXItY2FsbCB0aGF0IGlzIGh0bWwtZXNjYXBlZFxuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7LyxcbiAgICAgICAgZW5kOiAvXFx9XFx9LyxcbiAgICAgICAgY29udGFpbnM6IFsgQkFTSUNfTVVTVEFDSEVfQ09OVEVOVFMgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYW5kbGViYXJzO1xuIiwgIi8qXG5MYW5ndWFnZTogSGFza2VsbFxuQXV0aG9yOiBKZXJlbXkgSHVsbCA8c291cmRydW1zQGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogWmVuYSBUcmVlcCA8emVuYS50cmVlcEBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5oYXNrZWxsLm9yZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbmZ1bmN0aW9uIGhhc2tlbGwoaGxqcykge1xuXG4gIC8qIFNlZTpcbiAgICAgLSBodHRwczovL3d3dy5oYXNrZWxsLm9yZy9vbmxpbmVyZXBvcnQvbGV4ZW1lcy5odG1sXG4gICAgIC0gaHR0cHM6Ly9kb3dubG9hZHMuaGFza2VsbC5vcmcvZ2hjLzkuMC4xL2RvY3MvaHRtbC91c2Vyc19ndWlkZS9leHRzL2JpbmFyeV9saXRlcmFscy5odG1sXG4gICAgIC0gaHR0cHM6Ly9kb3dubG9hZHMuaGFza2VsbC5vcmcvZ2hjLzkuMC4xL2RvY3MvaHRtbC91c2Vyc19ndWlkZS9leHRzL251bWVyaWNfdW5kZXJzY29yZXMuaHRtbFxuICAgICAtIGh0dHBzOi8vZG93bmxvYWRzLmhhc2tlbGwub3JnL2doYy85LjAuMS9kb2NzL2h0bWwvdXNlcnNfZ3VpZGUvZXh0cy9oZXhfZmxvYXRfbGl0ZXJhbHMuaHRtbFxuICAqL1xuICBjb25zdCBkZWNpbWFsRGlnaXRzID0gJyhbMC05XV8qKSsnO1xuICBjb25zdCBoZXhEaWdpdHMgPSAnKFswLTlhLWZBLUZdXyopKyc7XG4gIGNvbnN0IGJpbmFyeURpZ2l0cyA9ICcoWzAxXV8qKSsnO1xuICBjb25zdCBvY3RhbERpZ2l0cyA9ICcoWzAtN11fKikrJztcbiAgY29uc3QgYXNjU3ltYm9sID0gJ1shIyQlJiorLlxcXFwvPD0+P0BcXFxcXFxcXF5+LV0nO1xuICBjb25zdCB1bmlTeW1ib2wgPSAnKFxcXFxwe1N9fFxcXFxwe1B9KSc7IC8vIFN5bWJvbCBvciBQdW5jdHVhdGlvblxuICBjb25zdCBzcGVjaWFsID0gJ1soKSw7XFxcXFtcXFxcXWB8e31dJztcbiAgY29uc3Qgc3ltYm9sID0gYCgke2FzY1N5bWJvbH18KD8hKCR7c3BlY2lhbH18W186XCInXSkpJHt1bmlTeW1ib2x9KWA7XG5cbiAgY29uc3QgQ09NTUVOVCA9IHsgdmFyaWFudHM6IFtcbiAgICAvLyBEb3VibGUgZGFzaCBmb3JtcyBhIHZhbGlkIGNvbW1lbnQgb25seSBpZiBpdCdzIG5vdCBwYXJ0IG9mIGxlZ2FsIGxleGVtZS5cbiAgICAvLyBTZWU6IEhhc2tlbGwgOTggcmVwb3J0OiBodHRwczovL3d3dy5oYXNrZWxsLm9yZy9vbmxpbmVyZXBvcnQvbGV4ZW1lcy5odG1sXG4gICAgLy9cbiAgICAvLyBUaGUgY29tbWVudGVkIGNvZGUgZG9lcyB0aGUgam9iLCBidXQgd2UgY2FuJ3QgdXNlIG5lZ2F0aXZlIGxvb2tiZWhpbmQsXG4gICAgLy8gZHVlIHRvIHBvb3Igc3VwcG9ydCBieSBTYWZhcmkgYnJvd3Nlci5cbiAgICAvLyA+IGhsanMuQ09NTUVOVChgKD88ISR7c3ltYm9sfSktLSsoPyEke3N5bWJvbH0pYCwgJyQnKSxcbiAgICAvLyBTbyBpbnN0ZWFkLCB3ZSdsbCBhZGQgYSBuby1tYXJrdXAgcnVsZSBiZWZvcmUgdGhlIENPTU1FTlQgcnVsZSBpbiB0aGUgcnVsZXMgbGlzdFxuICAgIC8vIHRvIG1hdGNoIHRoZSBwcm9ibGVtYXRpYyBpbmZpeCBvcGVyYXRvcnMgdGhhdCBjb250YWluIGRvdWJsZSBkYXNoLlxuICAgIGhsanMuQ09NTUVOVCgnLS0rJywgJyQnKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFx7LS8sXG4gICAgICAvLVxcfS8sXG4gICAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgICApXG4gIF0gfTtcblxuICBjb25zdCBQUkFHTUEgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC9cXHstIy8sXG4gICAgZW5kOiAvIy1cXH0vXG4gIH07XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXiMnLFxuICAgIGVuZDogJyQnXG4gIH07XG5cbiAgY29uc3QgQ09OU1RSVUNUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XFwnXSonLCAvLyBUT0RPOiBvdGhlciBjb25zdHJ1Y3RvcnMgKGJ1aWxkLWluLCBpbmZpeCkuXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICBlbmQ6ICdcXFxcKScsXG4gICAgaWxsZWdhbDogJ1wiJyxcbiAgICBjb250YWluczogW1xuICAgICAgUFJBR01BLFxuICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XSooXFxcXCgoXFxcXC5cXFxcLnwsfFxcXFx3KylcXFxcKSk/J1xuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICdbX2Etel1bXFxcXHdcXCddKicgfSksXG4gICAgICBDT01NRU5UXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJFQ09SRCA9IHtcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBjb250YWluczogTElTVC5jb250YWluc1xuICB9O1xuXG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBkZWNpbWFsLWxpdGVyYWwpXG4gICAgICB7IG1hdGNoOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSkpP2AgKyBgKFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBoZXhhZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBoZXhhZGVjaW1hbC1saXRlcmFsKVxuICAgICAgeyBtYXRjaDogYFxcXFxiMFt4WF1fKigke2hleERpZ2l0c30pKFxcXFwuKCR7aGV4RGlnaXRzfSkpP2AgKyBgKFtwUF1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBvY3RhbC1saXRlcmFsXG4gICAgICB7IG1hdGNoOiBgXFxcXGIwW29PXSgke29jdGFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIC8vIGJpbmFyeS1saXRlcmFsXG4gICAgICB7IG1hdGNoOiBgXFxcXGIwW2JCXSgke2JpbmFyeURpZ2l0c30pXFxcXGJgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSGFza2VsbCcsXG4gICAgYWxpYXNlczogWyAnaHMnIF0sXG4gICAga2V5d29yZHM6XG4gICAgICAnbGV0IGluIGlmIHRoZW4gZWxzZSBjYXNlIG9mIHdoZXJlIGRvIG1vZHVsZSBpbXBvcnQgaGlkaW5nICdcbiAgICAgICsgJ3F1YWxpZmllZCB0eXBlIGRhdGEgbmV3dHlwZSBkZXJpdmluZyBjbGFzcyBpbnN0YW5jZSBhcyBkZWZhdWx0ICdcbiAgICAgICsgJ2luZml4IGluZml4bCBpbmZpeHIgZm9yZWlnbiBleHBvcnQgY2NhbGwgc3RkY2FsbCBjcGx1c3BsdXMgJ1xuICAgICAgKyAnanZtIGRvdG5ldCBzYWZlIHVuc2FmZSBmYW1pbHkgZm9yYWxsIG1kbyBwcm9jIHJlYycsXG4gICAgdW5pY29kZVJlZ2V4OiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBUb3AtbGV2ZWwgY29uc3RydWN0aW9ucy5cbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ21vZHVsZScsXG4gICAgICAgIGVuZDogJ3doZXJlJyxcbiAgICAgICAga2V5d29yZHM6ICdtb2R1bGUgd2hlcmUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYmltcG9ydFxcXFxiJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAnaW1wb3J0IHF1YWxpZmllZCBhcyBoaWRpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJ14oXFxcXHMqKT8oY2xhc3N8aW5zdGFuY2UpXFxcXGInLFxuICAgICAgICBlbmQ6ICd3aGVyZScsXG4gICAgICAgIGtleXdvcmRzOiAnY2xhc3MgZmFtaWx5IGluc3RhbmNlIHdoZXJlJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDT05TVFJVQ1RPUixcbiAgICAgICAgICBMSVNULFxuICAgICAgICAgIENPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKGRhdGF8KG5ldyk/dHlwZSlcXFxcYicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ2RhdGEgZmFtaWx5IHR5cGUgbmV3dHlwZSBkZXJpdmluZycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUFJBR01BLFxuICAgICAgICAgIENPTlNUUlVDVE9SLFxuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgUkVDT1JELFxuICAgICAgICAgIENPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2RlZmF1bHQnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDT05TVFJVQ1RPUixcbiAgICAgICAgICBMSVNULFxuICAgICAgICAgIENPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2luZml4IGluZml4bCBpbmZpeHInLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiZm9yZWlnblxcXFxiJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAnZm9yZWlnbiBpbXBvcnQgZXhwb3J0IGNjYWxsIHN0ZGNhbGwgY3BsdXNwbHVzIGp2bSAnXG4gICAgICAgICAgICAgICAgICArICdkb3RuZXQgc2FmZSB1bnNhZmUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIENPTlNUUlVDVE9SLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjIVxcXFwvdXNyXFxcXC9iaW5cXFxcL2VudlxcIHJ1bmhhc2tlbGwnLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIC8vIFwiV2hpdGVzcGFjZXNcIi5cbiAgICAgIFBSQUdNQSxcbiAgICAgIFBSRVBST0NFU1NPUixcblxuICAgICAgLy8gTGl0ZXJhbHMgYW5kIG5hbWVzLlxuXG4gICAgICAvLyBTaW5nbGUgY2hhcmFjdGVycy5cbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLycoPz1cXFxcPy4nKS8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiAnY2hhci5lc2NhcGUnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcLi8sXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBOVU1CRVIsXG4gICAgICBDT05TVFJVQ1RPUixcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICdeW19hLXpdW1xcXFx3XFwnXSonIH0pLFxuICAgICAgLy8gTm8gbWFya3VwLCBwcmV2ZW50cyBpbmZpeCBvcGVyYXRvcnMgZnJvbSBiZWluZyByZWNvZ25pemVkIGFzIGNvbW1lbnRzLlxuICAgICAgeyBiZWdpbjogYCg/IS0pJHtzeW1ib2x9LS0rfC0tKyg/IS0pJHtzeW1ib2x9YH0sXG4gICAgICBDT01NRU5ULFxuICAgICAgeyAvLyBObyBtYXJrdXAsIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAnLT58PC0nIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFza2VsbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IEhheGVcbkRlc2NyaXB0aW9uOiBIYXhlIGlzIGFuIG9wZW4gc291cmNlIHRvb2xraXQgYmFzZWQgb24gYSBtb2Rlcm4sIGhpZ2ggbGV2ZWwsIHN0cmljdGx5IHR5cGVkIHByb2dyYW1taW5nIGxhbmd1YWdlLlxuQXV0aG9yOiBDaHJpc3RvcGhlciBLYXN0ZXIgPGlrYXNva2lAZ21haWwuY29tPiAoQmFzZWQgb24gdGhlIGFjdGlvbnNjcmlwdC5qcyBsYW5ndWFnZSBmaWxlIGJ5IEFsZXhhbmRlciBNeWFkemVsKVxuQ29udHJpYnV0b3JzOiBLZW50b24gSGFtYWx1aWsgPGtlbnRvbmhAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9oYXhlLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuZnVuY3Rpb24gaGF4ZShobGpzKSB7XG4gIGNvbnN0IElERU5UX1JFID0gJ1thLXpBLVpfJF1bYS16QS1aMC05XyRdKic7XG5cbiAgLy8gQ19OVU1CRVJfUkUgd2l0aCB1bmRlcnNjb3JlcyBhbmQgbGl0ZXJhbCBzdWZmaXhlc1xuICBjb25zdCBIQVhFX05VTUJFUl9SRSA9IC8oLT8pKFxcYjBbeFhdW2EtZkEtRjAtOV9dK3woXFxiXFxkKyhcXC5bXFxkX10qKT98XFwuW1xcZF9dKykoKFtlRV1bLStdP1xcZCspfGkzMnx1MzJ8aTY0fGY2NCk/KS87XG5cbiAgY29uc3QgSEFYRV9CQVNJQ19UWVBFUyA9ICdJbnQgRmxvYXQgU3RyaW5nIEJvb2wgRHluYW1pYyBWb2lkIEFycmF5ICc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSGF4ZScsXG4gICAgYWxpYXNlczogWyAnaHgnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdhYnN0cmFjdCBicmVhayBjYXNlIGNhc3QgY2F0Y2ggY29udGludWUgZGVmYXVsdCBkbyBkeW5hbWljIGVsc2UgZW51bSBleHRlcm4gJ1xuICAgICAgICAgICAgICAgKyAnZmluYWwgZm9yIGZ1bmN0aW9uIGhlcmUgaWYgaW1wb3J0IGluIGlubGluZSBpcyBtYWNybyBuZXZlciBuZXcgb3ZlcnJpZGUgcGFja2FnZSBwcml2YXRlIGdldCBzZXQgJ1xuICAgICAgICAgICAgICAgKyAncHVibGljIHJldHVybiBzdGF0aWMgc3VwZXIgc3dpdGNoIHRoaXMgdGhyb3cgdHJhY2UgdHJ5IHR5cGVkZWYgdW50eXBlZCB1c2luZyB2YXIgd2hpbGUgJ1xuICAgICAgICAgICAgICAgKyBIQVhFX0JBU0lDX1RZUEVTLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICd0cmFjZSB0aGlzJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlIG51bGwgXydcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsIC8vIGludGVycG9sYXRlLWFibGUgc3RyaW5nc1xuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JywgLy8gaW50ZXJwb2xhdGlvblxuICAgICAgICAgICAgYmVnaW46IC9cXCRcXHsvLFxuICAgICAgICAgICAgZW5kOiAvXFx9L1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLCAvLyBpbnRlcnBvbGF0aW9uXG4gICAgICAgICAgICBiZWdpbjogL1xcJC8sXG4gICAgICAgICAgICBlbmQ6IC9cXFdcXH0vXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBIQVhFX05VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiBcIlxcXFwkXCIgKyBJREVOVF9SRSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCAvLyBjb21waWxlciBtZXRhXG4gICAgICAgIGJlZ2luOiAvQDo/LyxcbiAgICAgICAgZW5kOiAvXFwofCQvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsIC8vIGNvbXBpbGVyIGNvbmRpdGlvbmFsc1xuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxzZWlmIGVuZCBlcnJvcicgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsIC8vIGZ1bmN0aW9uIHR5cGVzXG4gICAgICAgIGJlZ2luOiAvOlsgXFx0XSovLFxuICAgICAgICBlbmQ6IC9bXkEtWmEtejAtOV8gXFx0XFwtPl0vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsIC8vIHR5cGVzXG4gICAgICAgIGJlZ2luOiAvOlsgXFx0XSovLFxuICAgICAgICBlbmQ6IC9cXFcvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLCAvLyBpbnN0YW50aWF0aW9uXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcnLFxuICAgICAgICBlbmQ6IC9cXFcvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlLmNsYXNzJywgLy8gZW51bXNcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2VudW0nLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBjb250YWluczogWyBobGpzLlRJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUuY2xhc3MnLCAvLyBhYnN0cmFjdHNcbiAgICAgICAgYmVnaW46ICdcXFxcYmFic3RyYWN0XFxcXGIoPz1cXFxccyonICsgaGxqcy5JREVOVF9SRSArICdcXFxccypcXFxcKCknLFxuICAgICAgICBlbmQ6IC9bXFx7JF0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC9mcm9tICsvLFxuICAgICAgICAgICAgZW5kOiAvXFxXLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC90byArLyxcbiAgICAgICAgICAgIGVuZDogL1xcVy8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgXSxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2Fic3RyYWN0IGZyb20gdG8nIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlLmNsYXNzJywgLy8gY2xhc3Nlc1xuICAgICAgICBiZWdpbjogL1xcYihjbGFzc3xpbnRlcmZhY2UpICsvLFxuICAgICAgICBlbmQ6IC9bXFx7JF0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgICBiZWdpbjogL1xcYihleHRlbmRzfGltcGxlbWVudHMpICsvLFxuICAgICAgICAgICAga2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFLFxuICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUuZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9cXCgvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5USVRMRV9NT0RFIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC88XFwvL1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhheGU7XG4iLCAiLypcbkxhbmd1YWdlOiBIU1BcbkF1dGhvcjogcHJpbmNlIDxNQy5wcmluY2UuMDIwM0BnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Ib3RfU291cF9Qcm9jZXNzb3JcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbmZ1bmN0aW9uIGhzcChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0hTUCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3Ll9dKy8sXG4gICAgICBrZXl3b3JkOiAnZ290byBnb3N1YiByZXR1cm4gYnJlYWsgcmVwZWF0IGxvb3AgY29udGludWUgd2FpdCBhd2FpdCBkaW0gc2RpbSBmb3JlYWNoIGRpbXR5cGUgZHVwIGR1cHB0ciBlbmQgc3RvcCBuZXdtb2QgZGVsbW9kIG1yZWYgcnVuIGV4Z290byBvbiBtY2FsbCBhc3NlcnQgbG9nbWVzIG5ld2xhYiByZXN1bWUgeWllbGQgb25leGl0IG9uZXJyb3Igb25rZXkgb25jbGljayBvbmNtZCBleGlzdCBkZWxldGUgbWtkaXIgY2hkaXIgZGlybGlzdCBibG9hZCBic2F2ZSBiY29weSBtZW1maWxlIGlmIGVsc2UgcG9rZSB3cG9rZSBscG9rZSBnZXRzdHIgY2hkcG0gbWVtZXhwYW5kIG1lbWNweSBtZW1zZXQgbm90ZXNlbCBub3RlYWRkIG5vdGVkZWwgbm90ZWxvYWQgbm90ZXNhdmUgcmFuZG9taXplIG5vdGV1bnNlbCBub3RlZ2V0IHNwbGl0IHN0cnJlcCBzZXRlYXNlIGJ1dHRvbiBjaGdkaXNwIGV4ZWMgZGlhbG9nIG1tbG9hZCBtbXBsYXkgbW1zdG9wIG1jaSBwc2V0IHBnZXQgc3lzY29sb3IgbWVzIHByaW50IHRpdGxlIHBvcyBjaXJjbGUgY2xzIGZvbnQgc3lzZm9udCBvYmpzaXplIHBpY2xvYWQgY29sb3IgcGFsY29sb3IgcGFsZXR0ZSByZWRyYXcgd2lkdGggZ3NlbCBnY29weSBnem9vbSBnbW9kZSBibXBzYXZlIGhzdmNvbG9yIGdldGtleSBsaXN0Ym94IGNoa2JveCBjb21ib3ggaW5wdXQgbWVzYm94IGJ1ZmZlciBzY3JlZW4gYmdzY3IgbW91c2Ugb2Jqc2VsIGdyb2xsIGxpbmUgY2xyb2JqIGJveGYgb2JqcHJtIG9iam1vZGUgc3RpY2sgZ3JlY3QgZ3JvdGF0ZSBnc3F1YXJlIGdyYWRmIG9iamltYWdlIG9ianNraXAgb2JqZW5hYmxlIGNlbGxvYWQgY2VsZGl2IGNlbHB1dCBuZXdjb20gcXVlcnljb20gZGVsY29tIGNudnN0b3cgY29tcmVzIGF4b2JqIHdpbm9iaiBzZW5kbXNnIGNvbWV2ZW50IGNvbWV2YXJnIHNhcnJheWNvbnYgY2FsbGZ1bmMgY252d3RvcyBjb21ldmRpc3AgbGlicHRyIHN5c3RlbSBoc3BzdGF0IGhzcHZlciBzdGF0IGNudCBlcnIgc3Ryc2l6ZSBsb29wbGV2IHN1YmxldiBpcGFyYW0gd3BhcmFtIGxwYXJhbSByZWZzdHIgcmVmZHZhbCBpbnQgcm5kIHN0cmxlbiBsZW5ndGggbGVuZ3RoMiBsZW5ndGgzIGxlbmd0aDQgdmFydHlwZSBnZXR0aW1lIHBlZWsgd3BlZWsgbHBlZWsgdmFycHRyIHZhcnVzZSBub3RlaW5mbyBpbnN0ciBhYnMgbGltaXQgZ2V0ZWFzZSBzdHIgc3RybWlkIHN0cmYgZ2V0cGF0aCBzdHJ0cmltIHNpbiBjb3MgdGFuIGF0YW4gc3FydCBkb3VibGUgYWJzZiBleHBmIGxvZ2YgbGltaXRmIHBvd2YgZ2V0ZWFzZWYgbW91c2V4IG1vdXNleSBtb3VzZXcgaHduZCBoaW5zdGFuY2UgaGRjIGdpbmZvIG9iamluZm8gZGlyaW5mbyBzeXNpbmZvIHRoaXNtb2QgX19oc3B2ZXJfXyBfX2hzcDMwX18gX19kYXRlX18gX190aW1lX18gX19saW5lX18gX19maWxlX18gX2RlYnVnIF9faHNwZGVmX18gYW5kIG9yIHhvciBub3Qgc2NyZWVuX25vcm1hbCBzY3JlZW5fcGFsZXR0ZSBzY3JlZW5faGlkZSBzY3JlZW5fZml4ZWRzaXplIHNjcmVlbl90b29sIHNjcmVlbl9mcmFtZSBnbW9kZV9nZGkgZ21vZGVfbWVtIGdtb2RlX3JnYjAgZ21vZGVfYWxwaGEgZ21vZGVfcmdiMGFscGhhIGdtb2RlX2FkZCBnbW9kZV9zdWIgZ21vZGVfcGl4ZWxhIGdpbmZvX214IGdpbmZvX215IGdpbmZvX2FjdCBnaW5mb19zZWwgZ2luZm9fd3gxIGdpbmZvX3d5MSBnaW5mb193eDIgZ2luZm9fd3kyIGdpbmZvX3Z4IGdpbmZvX3Z5IGdpbmZvX3NpemV4IGdpbmZvX3NpemV5IGdpbmZvX3dpbnggZ2luZm9fd2lueSBnaW5mb19tZXN4IGdpbmZvX21lc3kgZ2luZm9fciBnaW5mb19nIGdpbmZvX2IgZ2luZm9fcGFsdXNlIGdpbmZvX2Rpc3B4IGdpbmZvX2Rpc3B5IGdpbmZvX2N4IGdpbmZvX2N5IGdpbmZvX2ludGlkIGdpbmZvX25ld2lkIGdpbmZvX3N4IGdpbmZvX3N5IG9iamluZm9fbW9kZSBvYmppbmZvX2Jtc2NyIG9iamluZm9faHduZCBub3RlbWF4IG5vdGVzaXplIGRpcl9jdXIgZGlyX2V4ZSBkaXJfd2luIGRpcl9zeXMgZGlyX2NtZGxpbmUgZGlyX2Rlc2t0b3AgZGlyX215ZG9jIGRpcl90diBmb250X25vcm1hbCBmb250X2JvbGQgZm9udF9pdGFsaWMgZm9udF91bmRlcmxpbmUgZm9udF9zdHJpa2VvdXQgZm9udF9hbnRpYWxpYXMgb2JqbW9kZV9ub3JtYWwgb2JqbW9kZV9ndWlmb250IG9iam1vZGVfdXNlZm9udCBnc3F1YXJlX2dyYWQgbXNnb3RoaWMgbXNtaW5jaG8gZG8gdW50aWwgd2hpbGUgd2VuZCBmb3IgbmV4dCBfYnJlYWsgX2NvbnRpbnVlIHN3aXRjaCBjYXNlIGRlZmF1bHQgc3dicmVhayBzd2VuZCBkZGltIGxkaW0gYWxsb2MgbV9waSByYWQyZGVnIGRlZzJyYWQgZWFzZV9saW5lYXIgZWFzZV9xdWFkX2luIGVhc2VfcXVhZF9vdXQgZWFzZV9xdWFkX2lub3V0IGVhc2VfY3ViaWNfaW4gZWFzZV9jdWJpY19vdXQgZWFzZV9jdWJpY19pbm91dCBlYXNlX3F1YXJ0aWNfaW4gZWFzZV9xdWFydGljX291dCBlYXNlX3F1YXJ0aWNfaW5vdXQgZWFzZV9ib3VuY2VfaW4gZWFzZV9ib3VuY2Vfb3V0IGVhc2VfYm91bmNlX2lub3V0IGVhc2Vfc2hha2VfaW4gZWFzZV9zaGFrZV9vdXQgZWFzZV9zaGFrZV9pbm91dCBlYXNlX2xvb3AnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG5cbiAgICAgIHtcbiAgICAgICAgLy8gbXVsdGktbGluZSBzdHJpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cXHtcIi8sXG4gICAgICAgIGVuZDogL1wiXFx9LyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG5cbiAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywgeyByZWxldmFuY2U6IDAgfSksXG5cbiAgICAgIHtcbiAgICAgICAgLy8gcHJlLXByb2Nlc3NvclxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdhZGRpb24gY2Z1bmMgY21kIGNtcG9wdCBjb21mdW5jIGNvbnN0IGRlZmNmdW5jIGRlZmZ1bmMgZGVmaW5lIGVsc2UgZW5kaWYgZW51bSBlcGFjayBmdW5jIGdsb2JhbCBpZiBpZmRlZiBpZm5kZWYgaW5jbHVkZSBtb2RjZnVuYyBtb2RmdW5jIG1vZGluaXQgbW9kdGVybSBtb2R1bGUgcGFjayBwYWNrb3B0IHJlZ2NtZCBydW50aW1lIHVuZGVmIHVzZWNvbSB1c2VsaWInIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIC8vIGxhYmVsXG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXlxcXFwqKFxcXFx3K3xAKSdcbiAgICAgIH0sXG5cbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaHNwO1xuIiwgIi8qXG5MYW5ndWFnZTogSFRUUFxuRGVzY3JpcHRpb246IEhUVFAgcmVxdWVzdCBhbmQgcmVzcG9uc2UgaGVhZGVycyB3aXRoIGF1dG9tYXRpYyBib2R5IGhpZ2hsaWdodGluZ1xuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNhdGVnb3J5OiBwcm90b2NvbHMsIHdlYlxuV2Vic2l0ZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9PdmVydmlld1xuKi9cblxuZnVuY3Rpb24gaHR0cChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgVkVSU0lPTiA9ICdIVFRQLyhbMzJdfDFcXFxcLlswMV0pJztcbiAgY29uc3QgSEVBREVSX05BTUUgPSAvW0EtWmEtel1bQS1aYS16MC05LV0qLztcbiAgY29uc3QgSEVBREVSID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgnXicsIEhFQURFUl9OQU1FLCAnKD89XFxcXDpcXFxccyknKSxcbiAgICBzdGFydHM6IHsgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgIGJlZ2luOiAvOiAvLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJyQnLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICB9XG4gICAgXSB9XG4gIH07XG4gIGNvbnN0IEhFQURFUlNfQU5EX0JPRFkgPSBbXG4gICAgSEVBREVSLFxuICAgIHtcbiAgICAgIGJlZ2luOiAnXFxcXG5cXFxcbicsXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgc3ViTGFuZ3VhZ2U6IFtdLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdIVFRQJyxcbiAgICBhbGlhc2VzOiBbICdodHRwcycgXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgLy8gcmVzcG9uc2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeKD89JyArIFZFUlNJT04gKyBcIiBcXFxcZHszfSlcIixcbiAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBcIm1ldGFcIixcbiAgICAgICAgICAgIGJlZ2luOiBWRVJTSU9OXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkezN9XFxcXGInXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC9cXGJcXEIvLFxuICAgICAgICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgICAgICAgIGNvbnRhaW5zOiBIRUFERVJTX0FORF9CT0RZXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXF1ZXN0XG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKD89XltBLVpdKyAoLio/KSAnICsgVkVSU0lPTiArICckKScsXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJyAnLFxuICAgICAgICAgICAgZW5kOiAnICcsXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwibWV0YVwiLFxuICAgICAgICAgICAgYmVnaW46IFZFUlNJT05cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46ICdbQS1aXSsnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC9cXGJcXEIvLFxuICAgICAgICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgICAgICAgIGNvbnRhaW5zOiBIRUFERVJTX0FORF9CT0RZXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB0byBhbGxvdyBoZWFkZXJzIHRvIHdvcmsgZXZlbiB3aXRob3V0IGEgcHJlYW1ibGVcbiAgICAgIGhsanMuaW5oZXJpdChIRUFERVIsIHsgcmVsZXZhbmNlOiAwIH0pXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGh0dHA7XG4iLCAiLypcbkxhbmd1YWdlOiBIeVxuRGVzY3JpcHRpb246IEh5IGlzIGEgd29uZGVyZnVsIGRpYWxlY3Qgb2YgTGlzcCB0aGF0XHUyMDE5cyBlbWJlZGRlZCBpbiBQeXRob24uXG5BdXRob3I6IFNlcmdleSBTb2JrbyA8cy5zb2Jrb0Bwcm9maXR3YXJlLnJ1PlxuV2Vic2l0ZTogaHR0cDovL2RvY3MuaHlsYW5nLm9yZy9lbi9zdGFibGUvXG5DYXRlZ29yeTogbGlzcFxuKi9cblxuZnVuY3Rpb24gaHkoaGxqcykge1xuICBjb25zdCBTWU1CT0xTVEFSVCA9ICdhLXpBLVpfXFxcXC0hLj8rKj08PiYjXFwnJztcbiAgY29uc3QgU1lNQk9MX1JFID0gJ1snICsgU1lNQk9MU1RBUlQgKyAnXVsnICsgU1lNQk9MU1RBUlQgKyAnMC05Lzs6XSonO1xuICBjb25zdCBrZXl3b3JkcyA9IHtcbiAgICAkcGF0dGVybjogU1lNQk9MX1JFLFxuICAgIGJ1aWx0X2luOlxuICAgICAgLy8ga2V5d29yZHNcbiAgICAgICchPSAlICU9ICYgJj0gKiAqKiAqKj0gKj0gKm1hcCAnXG4gICAgICArICcrICs9ICwgLS1idWlsZC1jbGFzcy0tIC0taW1wb3J0LS0gLT0gLiAvIC8vIC8vPSAnXG4gICAgICArICcvPSA8IDw8IDw8PSA8PSA9ID4gPj0gPj4gPj49ICdcbiAgICAgICsgJ0AgQD0gXiBePSBhYnMgYWNjdW11bGF0ZSBhbGwgYW5kIGFueSBhcC1jb21wb3NlICdcbiAgICAgICsgJ2FwLWRvdGltZXMgYXAtZWFjaCBhcC1lYWNoLXdoaWxlIGFwLWZpbHRlciBhcC1maXJzdCBhcC1pZiBhcC1sYXN0IGFwLW1hcCBhcC1tYXAtd2hlbiBhcC1waXBlICdcbiAgICAgICsgJ2FwLXJlZHVjZSBhcC1yZWplY3QgYXBwbHkgYXMtPiBhc2NpaSBhc3NlcnQgYXNzb2MgYmluIGJyZWFrIGJ1dGxhc3QgJ1xuICAgICAgKyAnY2FsbGFibGUgY2FsbGluZy1tb2R1bGUtbmFtZSBjYXIgY2FzZSBjZHIgY2hhaW4gY2hyIGNvbGw/IGNvbWJpbmF0aW9ucyBjb21waWxlICdcbiAgICAgICsgJ2NvbXByZXNzIGNvbmQgY29ucyBjb25zPyBjb250aW51ZSBjb3VudCBjdXJyeSBjdXQgY3ljbGUgZGVjICdcbiAgICAgICsgJ2RlZiBkZWZhdWx0LW1ldGhvZCBkZWZjbGFzcyBkZWZtYWNybyBkZWZtYWNyby1hbGlhcyBkZWZtYWNyby9nISBkZWZtYWluIGRlZm1ldGhvZCBkZWZtdWx0aSBkZWZuICdcbiAgICAgICsgJ2RlZm4tYWxpYXMgZGVmbmMgZGVmbnIgZGVmcmVhZGVyIGRlZnNlcSBkZWwgZGVsYXR0ciBkZWxldGUtcm91dGUgZGljdC1jb21wIGRpciAnXG4gICAgICArICdkaXNhc3NlbWJsZSBkaXNwYXRjaC1yZWFkZXItbWFjcm8gZGlzdGluY3QgZGl2bW9kIGRvIGRvdG8gZHJvcCBkcm9wLWxhc3QgZHJvcC13aGlsZSBlbXB0eT8gJ1xuICAgICAgKyAnZW5kLXNlcXVlbmNlIGV2YWwgZXZhbC1hbmQtY29tcGlsZSBldmFsLXdoZW4tY29tcGlsZSBldmVuPyBldmVyeT8gZXhjZXB0IGV4ZWMgZmlsdGVyIGZpcnN0ICdcbiAgICAgICsgJ2ZsYXR0ZW4gZmxvYXQ/IGZuIGZuYyBmbnIgZm9yIGZvciogZm9ybWF0IGZyYWN0aW9uIGdlbmV4cHIgJ1xuICAgICAgKyAnZ2Vuc3ltIGdldCBnZXRhdHRyIGdsb2JhbCBnbG9iYWxzIGdyb3VwLWJ5IGhhc2F0dHIgaGFzaCBoZXggaWQgJ1xuICAgICAgKyAnaWRlbnRpdHkgaWYgaWYqIGlmLW5vdCBpZi1weXRob24yIGltcG9ydCBpbiBpbmMgaW5wdXQgaW5zdGFuY2U/ICdcbiAgICAgICsgJ2ludGVnZXIgaW50ZWdlci1jaGFyPyBpbnRlZ2VyPyBpbnRlcmxlYXZlIGludGVycG9zZSBpcyBpcy1jb2xsIGlzLWNvbnMgaXMtZW1wdHkgaXMtZXZlbiAnXG4gICAgICArICdpcy1ldmVyeSBpcy1mbG9hdCBpcy1pbnN0YW5jZSBpcy1pbnRlZ2VyIGlzLWludGVnZXItY2hhciBpcy1pdGVyYWJsZSBpcy1pdGVyYXRvciBpcy1rZXl3b3JkIGlzLW5lZyBpcy1ub25lICdcbiAgICAgICsgJ2lzLW5vdCBpcy1udW1lcmljIGlzLW9kZCBpcy1wb3MgaXMtc3RyaW5nIGlzLXN5bWJvbCBpcy16ZXJvIGlzaW5zdGFuY2UgaXNsaWNlIGlzc3ViY2xhc3MgJ1xuICAgICAgKyAnaXRlciBpdGVyYWJsZT8gaXRlcmF0ZSBpdGVyYXRvcj8ga2V5d29yZCBrZXl3b3JkPyBsYW1iZGEgbGFzdCBsZW4gbGV0ICdcbiAgICAgICsgJ2xpZiBsaWYtbm90IGxpc3QqIGxpc3QtY29tcCBsb2NhbHMgbG9vcCBtYWNyby1lcnJvciBtYWNyb2V4cGFuZCBtYWNyb2V4cGFuZC0xIG1hY3JvZXhwYW5kLWFsbCAnXG4gICAgICArICdtYXAgbWF4IG1lcmdlLXdpdGggbWV0aG9kLWRlY29yYXRvciBtaW4gbXVsdGktZGVjb3JhdG9yIG11bHRpY29tYmluYXRpb25zIG5hbWUgbmVnPyBuZXh0ICdcbiAgICAgICsgJ25vbmU/IG5vbmxvY2FsIG5vdCBub3QtaW4gbm90PyBudGggbnVtZXJpYz8gb2N0IG9kZD8gb3BlbiAnXG4gICAgICArICdvciBvcmQgcGFydGl0aW9uIHBlcm11dGF0aW9ucyBwb3M/IHBvc3Qtcm91dGUgcG9zdHdhbGsgcG93IHByZXdhbGsgcHJpbnQgJ1xuICAgICAgKyAncHJvZHVjdCBwcm9maWxlL2NhbGxzIHByb2ZpbGUvY3B1IHB1dC1yb3V0ZSBxdWFzaXF1b3RlIHF1b3RlIHJhaXNlIHJhbmdlIHJlYWQgcmVhZC1zdHIgJ1xuICAgICAgKyAncmVjdXJzaXZlLXJlcGxhY2UgcmVkdWNlIHJlbW92ZSByZXBlYXQgcmVwZWF0ZWRseSByZXByIHJlcXVpcmUgcmVzdCByb3VuZCByb3V0ZSAnXG4gICAgICArICdyb3V0ZS13aXRoLW1ldGhvZHMgcndtIHNlY29uZCBzZXEgc2V0LWNvbXAgc2V0YXR0ciBzZXR2IHNvbWUgc29ydGVkIHN0cmluZyAnXG4gICAgICArICdzdHJpbmc/IHN1bSBzd2l0Y2ggc3ltYm9sPyB0YWtlIHRha2UtbnRoIHRha2Utd2hpbGUgdGVlIHRyeSB1bmxlc3MgJ1xuICAgICAgKyAndW5xdW90ZSB1bnF1b3RlLXNwbGljaW5nIHZhcnMgd2FsayB3aGVuIHdoaWxlIHdpdGggd2l0aCogd2l0aC1kZWNvcmF0b3Igd2l0aC1nZW5zeW1zICdcbiAgICAgICsgJ3hpIHhvciB5aWVsZCB5aWVsZC1mcm9tIHplcm8/IHppcCB6aXAtbG9uZ2VzdCB8IHw9IH4nXG4gIH07XG5cbiAgY29uc3QgU0lNUExFX05VTUJFUl9SRSA9ICdbLStdP1xcXFxkKyhcXFxcLlxcXFxkKyk/JztcblxuICBjb25zdCBTWU1CT0wgPSB7XG4gICAgYmVnaW46IFNZTUJPTF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46IFNJTVBMRV9OVU1CRVJfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSk7XG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJzsnLFxuICAgICckJyxcbiAgICB7IHJlbGV2YW5jZTogMCB9XG4gICk7XG4gIGNvbnN0IExJVEVSQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46IC9cXGIoW1R0XXJ1ZXxbRmZdYWxzZXxuaWx8Tm9uZSlcXGIvXG4gIH07XG4gIGNvbnN0IENPTExFQ1RJT04gPSB7XG4gICAgYmVnaW46ICdbXFxcXFtcXFxce10nLFxuICAgIGVuZDogJ1tcXFxcXVxcXFx9XScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEhJTlQgPSB7XG4gICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgYmVnaW46ICdcXFxcXicgKyBTWU1CT0xfUkVcbiAgfTtcbiAgY29uc3QgSElOVF9DT0wgPSBobGpzLkNPTU1FTlQoJ1xcXFxeXFxcXHsnLCAnXFxcXH0nKTtcbiAgY29uc3QgS0VZID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdbOl17MSwyfScgKyBTWU1CT0xfUkVcbiAgfTtcbiAgY29uc3QgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICBlbmQ6ICdcXFxcKSdcbiAgfTtcbiAgY29uc3QgQk9EWSA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTkFNRSA9IHtcbiAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAga2V5d29yZHM6IGtleXdvcmRzLFxuICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgc3RhcnRzOiBCT0RZXG4gIH07XG4gIGNvbnN0IERFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgTElTVCxcbiAgICBTVFJJTkcsXG4gICAgSElOVCxcbiAgICBISU5UX0NPTCxcbiAgICBDT01NRU5ULFxuICAgIEtFWSxcbiAgICBDT0xMRUNUSU9OLFxuICAgIE5VTUJFUixcbiAgICBMSVRFUkFMLFxuICAgIFNZTUJPTFxuICBdO1xuXG4gIExJU1QuY29udGFpbnMgPSBbXG4gICAgaGxqcy5DT01NRU5UKCdjb21tZW50JywgJycpLFxuICAgIE5BTUUsXG4gICAgQk9EWVxuICBdO1xuICBCT0RZLmNvbnRhaW5zID0gREVGQVVMVF9DT05UQUlOUztcbiAgQ09MTEVDVElPTi5jb250YWlucyA9IERFRkFVTFRfQ09OVEFJTlM7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSHknLFxuICAgIGFsaWFzZXM6IFsgJ2h5bGFuZycgXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5TSEVCQU5HKCksXG4gICAgICBMSVNULFxuICAgICAgU1RSSU5HLFxuICAgICAgSElOVCxcbiAgICAgIEhJTlRfQ09MLFxuICAgICAgQ09NTUVOVCxcbiAgICAgIEtFWSxcbiAgICAgIENPTExFQ1RJT04sXG4gICAgICBOVU1CRVIsXG4gICAgICBMSVRFUkFMXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGh5O1xuIiwgIi8qXG5MYW5ndWFnZTogSW5mb3JtIDdcbkF1dGhvcjogQnJ1bm8gRGlhcyA8YnJ1bm8uci5kaWFzQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBMYW5ndWFnZSBkZWZpbml0aW9uIGZvciBJbmZvcm0gNywgYSBEU0wgZm9yIHdyaXRpbmcgcGFyc2VyIGludGVyYWN0aXZlIGZpY3Rpb24uXG5XZWJzaXRlOiBodHRwOi8vaW5mb3JtNy5jb21cbkNhdGVnb3J5OiBnYW1pbmdcbiovXG5cbmZ1bmN0aW9uIGluZm9ybTcoaGxqcykge1xuICBjb25zdCBTVEFSVF9CUkFDS0VUID0gJ1xcXFxbJztcbiAgY29uc3QgRU5EX0JSQUNLRVQgPSAnXFxcXF0nO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdJbmZvcm0gNycsXG4gICAgYWxpYXNlczogWyAnaTcnIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgLy8gU29tZSBrZXl3b3JkcyBtb3JlIG9yIGxlc3MgdW5pcXVlIHRvIEk3LCBmb3IgcmVsZXZhbmNlLlxuICAgICAga2V5d29yZDpcbiAgICAgICAgLy8ga2luZDpcbiAgICAgICAgJ3RoaW5nIHJvb20gcGVyc29uIG1hbiB3b21hbiBhbmltYWwgY29udGFpbmVyICdcbiAgICAgICAgKyAnc3VwcG9ydGVyIGJhY2tkcm9wIGRvb3IgJ1xuICAgICAgICAvLyBjaGFyYWN0ZXJpc3RpYzpcbiAgICAgICAgKyAnc2NlbmVyeSBvcGVuIGNsb3NlZCBsb2NrZWQgaW5zaWRlIGdlbmRlciAnXG4gICAgICAgIC8vIHZlcmI6XG4gICAgICAgICsgJ2lzIGFyZSBzYXkgdW5kZXJzdGFuZCAnXG4gICAgICAgIC8vIG1pc2Mga2V5d29yZDpcbiAgICAgICAgKyAna2luZCBvZiBydWxlJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgICAgICAgICBiZWdpbjogU1RBUlRfQlJBQ0tFVCxcbiAgICAgICAgICAgIGVuZDogRU5EX0JSQUNLRVRcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICBiZWdpbjogL14oVm9sdW1lfEJvb2t8UGFydHxDaGFwdGVyfFNlY3Rpb258VGFibGUpXFxiLyxcbiAgICAgICAgZW5kOiAnJCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFJ1bGUgZGVmaW5pdGlvblxuICAgICAgICAvLyBUaGlzIGlzIGhlcmUgZm9yIHJlbGV2YW5jZS5cbiAgICAgICAgYmVnaW46IC9eKENoZWNrfENhcnJ5IG91dHxSZXBvcnR8SW5zdGVhZCBvZnxUb3xSdWxlfFdoZW58QmVmb3JlfEFmdGVyKVxcYi8sXG4gICAgICAgIGVuZDogJzonLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIFJ1bGUgbmFtZVxuICAgICAgICAgICAgYmVnaW46ICdcXFxcKFRoaXMnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgYmVnaW46IFNUQVJUX0JSQUNLRVQsXG4gICAgICAgIGVuZDogRU5EX0JSQUNLRVQsXG4gICAgICAgIGNvbnRhaW5zOiBbICdzZWxmJyBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluZm9ybTc7XG4iLCAiLypcbkxhbmd1YWdlOiBUT01MLCBhbHNvIElOSVxuRGVzY3JpcHRpb246IFRPTUwgYWltcyB0byBiZSBhIG1pbmltYWwgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdCB0aGF0J3MgZWFzeSB0byByZWFkIGR1ZSB0byBvYnZpb3VzIHNlbWFudGljcy5cbkNvbnRyaWJ1dG9yczogR3VpbGxhdW1lIEdvbWV6IDxndWlsbGF1bWUxLmdvbWV6QGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBjb21tb24sIGNvbmZpZ1xuV2Vic2l0ZTogaHR0cHM6Ly9naXRodWIuY29tL3RvbWwtbGFuZy90b21sXG4qL1xuXG5mdW5jdGlvbiBpbmkoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC8oWystXSspP1tcXGRdK19bXFxkX10rLyB9LFxuICAgICAgeyBiZWdpbjogaGxqcy5OVU1CRVJfUkUgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgQ09NTUVOVFMgPSBobGpzLkNPTU1FTlQoKTtcbiAgQ09NTUVOVFMudmFyaWFudHMgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC87LyxcbiAgICAgIGVuZDogLyQvXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogLyMvLFxuICAgICAgZW5kOiAvJC9cbiAgICB9XG4gIF07XG4gIGNvbnN0IFZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRbXFx3XFxkXCJdW1xcd1xcZF9dKi8gfSxcbiAgICAgIHsgYmVnaW46IC9cXCRcXHsoLio/KVxcfS8gfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgTElURVJBTFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46IC9cXGJvbnxvZmZ8dHJ1ZXxmYWxzZXx5ZXN8bm9cXGIvXG4gIH07XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiBcInN0cmluZ1wiLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIicnJ1wiLFxuICAgICAgICBlbmQ6IFwiJycnXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiJ1wiLFxuICAgICAgICBlbmQ6IFwiJ1wiXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBBUlJBWSA9IHtcbiAgICBiZWdpbjogL1xcWy8sXG4gICAgZW5kOiAvXFxdLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVFMsXG4gICAgICBMSVRFUkFMUyxcbiAgICAgIFZBUklBQkxFUyxcbiAgICAgIFNUUklOR1MsXG4gICAgICBOVU1CRVJTLFxuICAgICAgJ3NlbGYnXG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBCQVJFX0tFWSA9IC9bQS1aYS16MC05Xy1dKy87XG4gIGNvbnN0IFFVT1RFRF9LRVlfRE9VQkxFX1FVT1RFID0gL1wiKFxcXFxcInxbXlwiXSkqXCIvO1xuICBjb25zdCBRVU9URURfS0VZX1NJTkdMRV9RVU9URSA9IC8nW14nXSonLztcbiAgY29uc3QgQU5ZX0tFWSA9IHJlZ2V4LmVpdGhlcihcbiAgICBCQVJFX0tFWSwgUVVPVEVEX0tFWV9ET1VCTEVfUVVPVEUsIFFVT1RFRF9LRVlfU0lOR0xFX1FVT1RFXG4gICk7XG4gIGNvbnN0IERPVFRFRF9LRVkgPSByZWdleC5jb25jYXQoXG4gICAgQU5ZX0tFWSwgJyhcXFxccypcXFxcLlxcXFxzKicsIEFOWV9LRVksICcpKicsXG4gICAgcmVnZXgubG9va2FoZWFkKC9cXHMqPVxccypbXiNcXHNdLylcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdUT01MLCBhbHNvIElOSScsXG4gICAgYWxpYXNlczogWyAndG9tbCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBDT01NRU5UUyxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VjdGlvbicsXG4gICAgICAgIGJlZ2luOiAvXFxbKy8sXG4gICAgICAgIGVuZDogL1xcXSsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogRE9UVEVEX0tFWSxcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBDT01NRU5UUyxcbiAgICAgICAgICAgIEFSUkFZLFxuICAgICAgICAgICAgTElURVJBTFMsXG4gICAgICAgICAgICBWQVJJQUJMRVMsXG4gICAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgICAgTlVNQkVSU1xuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbmk7XG4iLCAiLypcbkxhbmd1YWdlOiBJUlBGOTBcbkF1dGhvcjogQW50aG9ueSBTY2VtYW1hIDxzY2VtYW1hQGlyc2FtYy51cHMtdGxzZS5mcj5cbkRlc2NyaXB0aW9uOiBJUlBGOTAgaXMgYW4gb3Blbi1zb3VyY2UgRm9ydHJhbiBjb2RlIGdlbmVyYXRvclxuV2Vic2l0ZTogaHR0cDovL2lycGY5MC51cHMtdGxzZS5mclxuQ2F0ZWdvcnk6IHNjaWVudGlmaWNcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBpcnBmOTAoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJ1xuICB9O1xuXG4gIC8vIHJlZ2V4IGluIGJvdGggZm9ydHJhbiBhbmQgaXJwZjkwIHNob3VsZCBtYXRjaFxuICBjb25zdCBPUFRJT05BTF9OVU1CRVJfU1VGRklYID0gLyhfW2Etel9cXGRdKyk/LztcbiAgY29uc3QgT1BUSU9OQUxfTlVNQkVSX0VYUCA9IC8oW2RlXVsrLV0/XFxkKyk/LztcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFxiXFxkKy8sIC9cXC4oXFxkKikvLCBPUFRJT05BTF9OVU1CRVJfRVhQLCBPUFRJT05BTF9OVU1CRVJfU1VGRklYKSB9LFxuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KC9cXGJcXGQrLywgT1BUSU9OQUxfTlVNQkVSX0VYUCwgT1BUSU9OQUxfTlVNQkVSX1NVRkZJWCkgfSxcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFwuXFxkKy8sIE9QVElPTkFMX05VTUJFUl9FWFAsIE9QVElPTkFMX05VTUJFUl9TVUZGSVgpIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZfS0VZV09SRFMgPSB7XG4gICAgbGl0ZXJhbDogJy5GYWxzZS4gLlRydWUuJyxcbiAgICBrZXl3b3JkOiAna2luZCBkbyB3aGlsZSBwcml2YXRlIGNhbGwgaW50cmluc2ljIHdoZXJlIGVsc2V3aGVyZSAnXG4gICAgICArICd0eXBlIGVuZHR5cGUgZW5kbW9kdWxlIGVuZHNlbGVjdCBlbmRpbnRlcmZhY2UgZW5kIGVuZGRvIGVuZGlmIGlmIGZvcmFsbCBlbmRmb3JhbGwgb25seSBjb250YWlucyBkZWZhdWx0IHJldHVybiBzdG9wIHRoZW4gJ1xuICAgICAgKyAncHVibGljIHN1YnJvdXRpbmV8MTAgZnVuY3Rpb24gcHJvZ3JhbSAuYW5kLiAub3IuIC5ub3QuIC5sZS4gLmVxLiAuZ2UuIC5ndC4gLmx0LiAnXG4gICAgICArICdnb3RvIHNhdmUgZWxzZSB1c2UgbW9kdWxlIHNlbGVjdCBjYXNlICdcbiAgICAgICsgJ2FjY2VzcyBibGFuayBkaXJlY3QgZXhpc3QgZmlsZSBmbXQgZm9ybSBmb3JtYXR0ZWQgaW9zdGF0IG5hbWUgbmFtZWQgbmV4dHJlYyBudW1iZXIgb3BlbmVkIHJlYyByZWNsIHNlcXVlbnRpYWwgc3RhdHVzIHVuZm9ybWF0dGVkIHVuaXQgJ1xuICAgICAgKyAnY29udGludWUgZm9ybWF0IHBhdXNlIGN5Y2xlIGV4aXQgJ1xuICAgICAgKyAnY19udWxsX2NoYXIgY19hbGVydCBjX2JhY2tzcGFjZSBjX2Zvcm1fZmVlZCBmbHVzaCB3YWl0IGRlY2ltYWwgcm91bmQgaW9tc2cgJ1xuICAgICAgKyAnc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBhYnN0cmFjdCBleHRlbmRzIGltcG9ydCAnXG4gICAgICArICdub25faW50cmluc2ljIHZhbHVlIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvciBjbGFzcyBhc3NvY2lhdGUgYmluZCBlbnVtICdcbiAgICAgICsgJ2NfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90ICdcbiAgICAgICsgJ2NfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSAnXG4gICAgICArICdjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0ciAnXG4gICAgICArICdjX25ld19saW5lIGNfY2FycmlhZ2VfcmV0dXJuIGNfaG9yaXpvbnRhbF90YWIgY192ZXJ0aWNhbF90YWIgaXNvX2NfYmluZGluZyBjX2xvYyBjX2Z1bmxvYyBjX2Fzc29jaWF0ZWQgIGNfZl9wb2ludGVyICdcbiAgICAgICsgJ2NfcHRyIGNfZnVucHRyIGlzb19mb3J0cmFuX2VudiBjaGFyYWN0ZXJfc3RvcmFnZV9zaXplIGVycm9yX3VuaXQgZmlsZV9zdG9yYWdlX3NpemUgaW5wdXRfdW5pdCBpb3N0YXRfZW5kIGlvc3RhdF9lb3IgJ1xuICAgICAgKyAnbnVtZXJpY19zdG9yYWdlX3NpemUgb3V0cHV0X3VuaXQgY19mX3Byb2Nwb2ludGVyIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgJ1xuICAgICAgKyAnaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgbmV3dW5pdCBjb250aWd1b3VzIHJlY3Vyc2l2ZSAnXG4gICAgICArICdwYWQgcG9zaXRpb24gYWN0aW9uIGRlbGltIHJlYWR3cml0ZSBlb3IgYWR2YW5jZSBubWwgaW50ZXJmYWNlIHByb2NlZHVyZSBuYW1lbGlzdCBpbmNsdWRlIHNlcXVlbmNlIGVsZW1lbnRhbCBwdXJlICdcbiAgICAgICsgJ2ludGVnZXIgcmVhbCBjaGFyYWN0ZXIgY29tcGxleCBsb2dpY2FsIGRpbWVuc2lvbiBhbGxvY2F0YWJsZXwxMCBwYXJhbWV0ZXIgJ1xuICAgICAgKyAnZXh0ZXJuYWwgaW1wbGljaXR8MTAgbm9uZSBkb3VibGUgcHJlY2lzaW9uIGFzc2lnbiBpbnRlbnQgb3B0aW9uYWwgcG9pbnRlciAnXG4gICAgICArICd0YXJnZXQgaW4gb3V0IGNvbW1vbiBlcXVpdmFsZW5jZSBkYXRhICdcbiAgICAgIC8vIElSUEY5MCBzcGVjaWFsIGtleXdvcmRzXG4gICAgICArICdiZWdpbl9wcm92aWRlciAmYmVnaW5fcHJvdmlkZXIgZW5kX3Byb3ZpZGVyIGJlZ2luX3NoZWxsIGVuZF9zaGVsbCBiZWdpbl90ZW1wbGF0ZSBlbmRfdGVtcGxhdGUgc3Vic3QgYXNzZXJ0IHRvdWNoICdcbiAgICAgICsgJ3NvZnRfdG91Y2ggcHJvdmlkZSBub19kZXAgZnJlZSBpcnBfaWYgaXJwX2Vsc2UgaXJwX2VuZGlmIGlycF93cml0ZSBpcnBfcmVhZCcsXG4gICAgYnVpbHRfaW46ICdhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50ICdcbiAgICAgICsgJ2Rsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wgJ1xuICAgICAgKyAnYWxnYW1hIGNkYWJzIGNkY29zIGNkZXhwIGNkbG9nIGNkc2luIGNkc3FydCBjcWFicyBjcWNvcyBjcWV4cCBjcWxvZyBjcXNpbiBjcXNxcnQgZGNtcGx4IGRjb25qZyBkZXJmIGRlcmZjIGRmbG9hdCBkZ2FtbWEgZGltYWcgZGxnYW1hICdcbiAgICAgICsgJ2lxaW50IHFhYnMgcWFjb3MgcWFzaW4gcWF0YW4gcWF0YW4yIHFjbXBseCBxY29uamcgcWNvcyBxY29zaCBxZGltIHFlcmYgcWVyZmMgcWV4cCBxZ2FtbWEgcWltYWcgcWxnYW1hIHFsb2cgcWxvZzEwIHFtYXgxIHFtaW4xIHFtb2QgJ1xuICAgICAgKyAncW5pbnQgcXNpZ24gcXNpbiBxc2luaCBxc3FydCBxdGFuIHF0YW5oIGFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgJ1xuICAgICAgKyAnbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaCBwcmludCB3cml0ZSBkaW0gbGdlIGxndCBsbGUgbGx0IG1vZCBudWxsaWZ5IGFsbG9jYXRlIGRlYWxsb2NhdGUgJ1xuICAgICAgKyAnYWRqdXN0bCBhZGp1c3RyIGFsbCBhbGxvY2F0ZWQgYW55IGFzc29jaWF0ZWQgYml0X3NpemUgYnRlc3QgY2VpbGluZyBjb3VudCBjc2hpZnQgZGF0ZV9hbmRfdGltZSBkaWdpdHMgZG90X3Byb2R1Y3QgJ1xuICAgICAgKyAnZW9zaGlmdCBlcHNpbG9uIGV4cG9uZW50IGZsb29yIGZyYWN0aW9uIGh1Z2UgaWFuZCBpYmNsciBpYml0cyBpYnNldCBpZW9yIGlvciBpc2hmdCBpc2hmdGMgbGJvdW5kIGxlbl90cmltIG1hdG11bCAnXG4gICAgICArICdtYXhleHBvbmVudCBtYXhsb2MgbWF4dmFsIG1lcmdlIG1pbmV4cG9uZW50IG1pbmxvYyBtaW52YWwgbW9kdWxvIG12Yml0cyBuZWFyZXN0IHBhY2sgcHJlc2VudCBwcm9kdWN0ICdcbiAgICAgICsgJ3JhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nIHNjYWxlIHNjYW4gc2VsZWN0ZWRfaW50X2tpbmQgc2VsZWN0ZWRfcmVhbF9raW5kICdcbiAgICAgICsgJ3NldF9leHBvbmVudCBzaGFwZSBzaXplIHNwYWNpbmcgc3ByZWFkIHN1bSBzeXN0ZW1fY2xvY2sgdGlueSB0cmFuc3Bvc2UgdHJpbSB1Ym91bmQgdW5wYWNrIHZlcmlmeSBhY2hhciBpYWNoYXIgdHJhbnNmZXIgJ1xuICAgICAgKyAnZGJsZSBlbnRyeSBkcHJvZCBjcHVfdGltZSBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kICdcbiAgICAgICsgJ2llZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgJ1xuICAgICAgKyAnaXNfaW9zdGF0X2VvciBtb3ZlX2FsbG9jIG5ld19saW5lIHNlbGVjdGVkX2NoYXJfa2luZCBzYW1lX3R5cGVfYXMgZXh0ZW5kc190eXBlX29mICdcbiAgICAgICsgJ2Fjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMiAnXG4gICAgICArICdhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzICdcbiAgICAgICsgJ2JnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciAnXG4gICAgICArICdudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UgJ1xuICAgICAgLy8gSVJQRjkwIHNwZWNpYWwgYnVpbHRfaW5zXG4gICAgICArICdJUlBfQUxJR04gaXJwX2hlcmUnXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0lSUEY5MCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogRl9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnc3Vicm91dGluZSBmdW5jdGlvbiBwcm9ncmFtJyxcbiAgICAgICAgaWxsZWdhbDogJ1skez1cXFxcbl0nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIFBBUkFNU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAgIGhsanMuQ09NTUVOVCgnYmVnaW5fZG9jJywgJ2VuZF9kb2MnLCB7IHJlbGV2YW5jZTogMTAgfSksXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXJwZjkwO1xuIiwgIi8qXG5MYW5ndWFnZTogSVNCTFxuQXV0aG9yOiBEbWl0cml5IFRhcmFzb3YgPGRpbWF0YXJAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IGJ1aWx0LWluIGxhbmd1YWdlIERJUkVDVFVNXG5DYXRlZ29yeTogZW50ZXJwcmlzZVxuKi9cblxuZnVuY3Rpb24gaXNibChobGpzKSB7XG4gIC8vIFx1MDQxRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0VcdTA0MzJcbiAgY29uc3QgVU5ERVJTQ09SRV9JREVOVF9SRSA9IFwiW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXyFdW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXzAtOV0qXCI7XG5cbiAgLy8gXHUwNDFFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzOFx1MDQzQ1x1MDQzNVx1MDQzRCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzlcbiAgY29uc3QgRlVOQ1RJT05fTkFNRV9JREVOVF9SRSA9IFwiW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxX11bQS1aYS16XHUwNDEwLVx1MDQyRlx1MDQzMC1cdTA0NEZcdTA0NTFcdTA0MDFfMC05XSpcIjtcblxuICAvLyBrZXl3b3JkIDogXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzMFxuICBjb25zdCBLRVlXT1JEID1cbiAgICBcImFuZCBcdTA0MzggZWxzZSBcdTA0MzhcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzUgZW5kZXhjZXB0IGVuZGZpbmFsbHkgZW5kZm9yZWFjaCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0MzJcdTA0NDFcdTA0MzUgZW5kaWYgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDNCXHUwNDM4IGVuZHdoaWxlIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMCBcIlxuICAgICsgXCJleGNlcHQgZXhpdGZvciBmaW5hbGx5IGZvcmVhY2ggXHUwNDMyXHUwNDQxXHUwNDM1IGlmIFx1MDQzNVx1MDQ0MVx1MDQzQlx1MDQzOCBpbiBcdTA0MzIgbm90IFx1MDQzRFx1MDQzNSBvciBcdTA0MzhcdTA0M0JcdTA0MzggdHJ5IHdoaWxlIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMCBcIjtcblxuICAvLyBTWVNSRVMgQ29uc3RhbnRzXG4gIGNvbnN0IHN5c3Jlc19jb25zdGFudHMgPVxuICAgIFwiU1lTUkVTX0NPTlNUX0FDQ0VTX1JJR0hUX1RZUEVfRURJVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNfUklHSFRfVFlQRV9GVUxMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU19SSUdIVF9UWVBFX1ZJRVcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19NT0RFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfTk9fQUNDRVNTX1ZJRVcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19OT19BQ0NFU1NfVklFV19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0FERF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19BRERfUkVRVUlTSVRFX1lFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0NIQU5HRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19DSEFOR0VfUkVRVUlTSVRFX1lFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0RFTEVURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19ERUxFVEVfUkVRVUlTSVRFX1lFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0VYRUNVVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfRVhFQ1VURV9SRVFVSVNJVEVfWUVTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfTk9fQUNDRVNTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX05PX0FDQ0VTU19SRVFVSVNJVEVfWUVTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfUkFUSUZZX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX1JBVElGWV9SRVFVSVNJVEVfWUVTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfVklFVyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfVklFV19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19WSUVXX1JFUVVJU0lURV9ZRVNfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfQ0hBTkdFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9DSEFOR0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRVhJU1RTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9FWElTVFNfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRlVMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRlVMTF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9WSUVXIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0FCT1JUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9BQ0NFUFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0FDQ0VTU19SSUdIVFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0FERF9BVFRBQ0hNRU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DSEFOR0VfQ0FSRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ0hBTkdFX0tJTkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0NIQU5HRV9TVE9SQUdFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DT05USU5VRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ09QWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ1JFQVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DUkVBVEVfVkVSU0lPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfREVMRVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9ERUxFVEVfQVRUQUNITUVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfREVMRVRFX1ZFUlNJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0RJU0FCTEVfREVMRUdBVEVfQUNDRVNTX1JJR0hUUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfRU5BQkxFX0RFTEVHQVRFX0FDQ0VTU19SSUdIVFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0VOQ1JZUFRJT05fQllfQ0VSVElGSUNBVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0VOQ1JZUFRJT05fQllfQ0VSVElGSUNBVEVfQU5EX1BBU1NXT1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FTkNSWVBUSU9OX0JZX1BBU1NXT1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FWFBPUlRfV0lUSF9MT0NLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FWFBPUlRfV0lUSE9VVF9MT0NLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9JTVBPUlRfV0lUSF9VTkxPQ0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0lNUE9SVF9XSVRIT1VUX1VOTE9DSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTElGRV9DWUNMRV9TVEFHRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTE9DSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTE9DS19GT1JfU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9MT0NLX01PRElGWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTUFSS19BU19SRUFERUQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01BUktfQVNfVU5SRUFERUQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01PRElGWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTU9ESUZZX0NBUkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01PVkVfVE9fQVJDSElWRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfT0ZGX0VOQ1JZUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1BBU1NXT1JEX0NIQU5HRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfUEVSRk9STSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfUkVDT1ZFUl9GUk9NX0xPQ0FMX0NPUFkgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1JFU1RBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1JFU1RPUkVfRlJPTV9BUkNISVZFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9SRVZJU0lPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfU0VORF9CWV9NQUlMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9TSUdOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9TVEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVU5MT0NLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9VTkxPQ0tfRlJPTV9TRVJWRVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1ZFUlNJT05fU1RBVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1ZFUlNJT05fVklTSUJJTElUWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVklFVyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVklFV19TSEFET1dfQ09QWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfV09SS0ZMT1dfREVTQ1JJUFRJT05fTU9ESUZZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9XUklURV9ISVNUT1JZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJVkVfVkVSU0lPTl9TVEFURV9QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRERfUkVGRVJFTkNFX01PREVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURESVRJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FERElUSU9OQUxfUEFSQU1TX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRElUSU9OQUxfSk9CX0VORF9EQVRFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRElUSU9OQUxfSk9CX1JFQURfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FESVRJT05BTF9KT0JfU1RBUlRfREFURV9SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURJVElPTkFMX0pPQl9TVEFURV9SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9BRERJTkdfVVNFUl9UT19HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQURESU5HX1VTRVJfVE9fR1JPVVBfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fQ09NUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fQ09NUF9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9DUkVBVElPTl9HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fR1JPVVBfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fVVNFUl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fVVNFUl9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9EQVRBQkFTRV9VU0VSX0NSRUFUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RBVEFCQVNFX1VTRVJfQ1JFQVRJT05fQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RBVEFCQVNFX1VTRVJfREVMRVRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREFUQUJBU0VfVVNFUl9ERUxFVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fQ09NUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fQ09NUF9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9ERUxFVElPTl9HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fR1JPVVBfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fVVNFUl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fVVNFUl9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9ERUxFVElPTl9VU0VSX0ZST01fR1JPVVBfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX1VTRVJfRlJPTV9HUk9VUF9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9HUkFOVElOR19GSUxURVJFUl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfRklMVEVSRVJfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfRklMVEVSRVJfUkVTVFJJQ1RJT05fQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX0ZJTFRFUkVSX1JFU1RSSUNUSU9OX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX1BSSVZJTEVHRV9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfUFJJVklMRUdFX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX1JJR0hUU19BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfUklHSFRTX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX01BSU5fU0VSVkVSX0NIQU5HRURfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX01BSU5fU0VSVkVSX0NIQU5HRURfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfSVNfUFVCTElDX0NIQU5HRURfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX1BVQkxJQ19DSEFOR0VEX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1JFTU9WSU5HX0ZJTFRFUkVSX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19GSUxURVJFUl9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19GSUxURVJFUl9SRVNUUklDVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfRklMVEVSRVJfUkVTVFJJQ1RJT05fQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfUFJJVklMRUdFX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19QUklWSUxFR0VfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfUklHSFRTX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19SSUdIVFNfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfU0VSVkVSX0xPR0lOX0NSRUFUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1NFUlZFUl9MT0dJTl9DUkVBVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfU0VSVkVSX0xPR0lOX0RFTEVUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1NFUlZFUl9MT0dJTl9ERUxFVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfQ0FURUdPUllfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NBVEVHT1JZX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NPTVBfVElUTEVfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NPTVBfVElUTEVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfRlVMTF9OQU1FX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19GVUxMX05BTUVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfR1JPVVBfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0dST1VQX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1BBUkVOVF9HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfUEFSRU5UX0dST1VQX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1VTRVJfQVVUSF9UWVBFX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0FVVEhfVFlQRV9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0xPR0lOX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0xPR0lOX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1VTRVJfU1RBVFVTX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX1NUQVRVU19BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VU0VSX1BBU1NXT1JEX0NIQU5HRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VU0VSX1BBU1NXT1JEX0NIQU5HRV9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FMTF9BQ0NFUFRfQ09ORElUSU9OX1JVUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUxMX1VTRVJTX0dST1VQIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BTExfVVNFUlNfR1JPVVBfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUxMX1VTRVJTX1NFUlZFUl9HUk9VUF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BTExPV0VEX0FDQ0VTU19UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FMTE9XRURfQUNDRVNTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVBQX1ZJRVdFUl9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BUFBST1ZJTkdfU0lHTkFUVVJFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FQUFJPVklOR19TSUdOQVRVUkVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FTU0lTVEFOVF9TVUJTVElUVUVfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVNTSVNUQU5UX1NVQlNUSVRVRV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FUVEFDSF9UWVBFX0NPTVBPTkVOVF9UT0tFTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfRE9DIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9FRE9DIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9GT0xERVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FUVEFDSF9UWVBFX0pPQiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9UQVNLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIX0VOQ09ERURfUEFTU1dPUkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVEhfRU5DT0RFRF9QQVNTV09SRF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIX05PVkVMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUSF9QQVNTV09SRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUSF9QQVNTV09SRF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIX1dJTkRPV1MgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVEhFTlRJQ0FUSU5HX1NJR05BVFVSRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIRU5USUNBVElOR19TSUdOQVRVUkVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9fRU5VTV9NRVRIT0RfRkxBRyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT19OVU1FUkFUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9fU1RST05HX0VOVU1fTUVUSE9EX0ZMQUcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1RFWFRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX0FMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNBR0VfQUxMX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX1NJR04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX1NJR05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNBR0VfV09SSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNBR0VfV09SS19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRPVEVYVF9VU0VfQU5ZV0hFUkVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNFX09OX1NJR05JTkdfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNFX09OX1dPUktfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQkVHSU5fREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQkxBQ0tfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9CTFVFX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQlROX1BBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBTENVTEFURURfUk9MRV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBTExfVFlQRV9WQVJJQUJMRV9CVVRUT05fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBTExfVFlQRV9WQVJJQUJMRV9QUk9HUkFNX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DQU5DRUxfTUVTU0FHRV9GVU5DVElPTl9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBUkRfUEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ0FSRF9SRUZFUkVOQ0VfTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DRVJUSUZJQ0FURV9UWVBFX1JFUVVJU0lURV9FTkNSWVBUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DRVJUSUZJQ0FURV9UWVBFX1JFUVVJU0lURV9TSUdOX0FORF9FTkNSWVBUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DRVJUSUZJQ0FURV9UWVBFX1JFUVVJU0lURV9TSUdOX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DSEVDS19QQVJBTV9WQUxVRV9EQVRFX1BBUkFNX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NIRUNLX1BBUkFNX1ZBTFVFX0ZMT0FUX1BBUkFNX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NIRUNLX1BBUkFNX1ZBTFVFX0lOVEVHRVJfUEFSQU1fVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ0hFQ0tfUEFSQU1fVkFMVUVfUElDS19QQVJBTV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DSEVDS19QQVJBTV9WQUxVRV9SRUVGUkVOQ0VfUEFSQU1fVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ0xPU0VEX1JFQ09SRF9GTEFHX1ZBTFVFX0ZFTUlOSU5FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DTE9TRURfUkVDT1JEX0ZMQUdfVkFMVUVfTUFTQ1VMSU5FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0FETUlOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0RFVkVMT1BFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9ET0NTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0VET0NfQ0FSRFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfRVhURVJOQUxfRVhFQ1VUQUJMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9PVEhFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9SRUZFUkVOQ0UgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfUkVQT1JUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX1NDUklQVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9VUkwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX0FDQ0VTUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfQ09NUE9ORU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX1JFUVVJU0lURV9ERVNDUklQVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfRVhDTFVERV9DT01QT05FTlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX1JFQ09SRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NTUVOVF9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NTU9OX1NFVFRJTkdTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QX0NPREVfR1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfR1JPVVBfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfQURNSU5fQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfREVWRUxPUEVSX0NPTVBPTkVOVFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0RPQ1MgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0VET0NfQ0FSRFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0VET0NTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9FWFRFUk5BTF9FWEVDVVRBQkxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9PVEhFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfUkVGRVJFTkNFX1RZUEVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9SRUZFUkVOQ0VTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9SRVBPUlRTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9TQ1JJUFRTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9VUkwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVFNfUkVNT1RFX1NFUlZFUlNfVklFV19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT05ESVRJT05fQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTlNUX0ZJUk1fU1RBVFVTX0NPTU1PTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09OU1RfRklSTV9TVEFUVVNfSU5ESVZJRFVBTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09OU1RfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTlNUX1BPU0lUSVZFX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT05TVF9TRVJWRVJfU1RBVFVTX0RPTlRfUkVQTElDQVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT05TVF9TRVJWRVJfU1RBVFVTX1JFUExJQ0FURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09OVEVOVFNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9CT09MRUFOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRBX1RZUEVfREFURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFUQV9UWVBFX0ZMT0FUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRBX1RZUEVfSU5URUdFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFUQV9UWVBFX1BJQ0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9SRUZFUkVOQ0UgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9TVFJJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9URVhUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRBX1RZUEVfVkFSSUFOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFURV9DTE9TRV9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFURV9GT1JNQVRfREFURV9PTkxZX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfT1BFTl9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFURV9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfVFlQRV9DSEFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRFVElNRV9GT1JNQVRfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFQV9BQ0NFU1NfUklHSFRTX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ERVNDUklQVElPTl9MT0NBTElaRV9JRF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVTQ1JJUFRJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVDFfUEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVUMl9QQVJUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ERVQzX1BBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVDRfUEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVUNV9QQVJUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ERVQ2X1BBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVEFJTF9EQVRBU0VUX0tFWV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVUQUlMX1BJQ0tfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVEFJTF9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9fTk9UX1VTRV9BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ET19OT1RfVVNFX0FDQ0VTU19UWVBFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RPX05PVF9VU0VfT05fVklFV19BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ET19OT1RfVVNFX09OX1ZJRVdfQUNDRVNTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9DVU1FTlRfU1RPUkFHRVNfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9DVU1FTlRfVEVNUExBVEVTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9VQkxFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JfQ0xPU0VfRklMRV9PQlNFUlZfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JfQ0xPU0VfUFJPQ0VTU19PQlNFUlZfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19BUFBMSUNBVElPTl9OQU1FX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JTX0NSRUFURV9TRVZFUkFMX1BST0NFU1NFU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19FWFRFTlNJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VESVRPUlNfT0JTRVJWRVJfQllfUFJPQ0VTU19UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JTX1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JTX1JFUExBQ0VfU1BFQ19DSEFSU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19VU0VfUExVR0lOU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19WSUVXX0RPQ1VNRU5UX09QRU5FRF9UT19FRElUX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfQ0FSRF9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX0NBUkRfVFlQRVNfTElOS19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19DRVJUSUZJQ0FURV9BTkRfUEFTU1dPUkRfRU5DT0RFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfQ0VSVElGSUNBVEVfRU5DT0RFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19LSU5EX1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX0tJTkRTX0JZX1RFTVBMQVRFX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX01BTkFHRV9BQ0NFU1NfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19OT05FX0VOQ09ERV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX05VTUJFUl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19QQVNTV09SRF9FTkNPREVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19SRUFET05MWV9BQ0NFU1NfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TSEVMTF9MSUZFX1RZUEVfVklFV19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TSVpFX1JFU1RSSUNUSU9OX1BSSU9SSVRZX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfQ0hFQ0tfQUNDRVNTX1JJR0hUU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX0NPTVBVVEVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfU1RPUkFHRV9EQVRBQkFTRV9OQU1FX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfRURJVF9JTl9TVE9SQUdFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfTE9DQUxfUEFUSF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX1NIQVJFRF9TT1VSQ0VfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19URU1QTEFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19UWVBFU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19WRVJTSU9OX0FDVElWRV9TVEFHRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1ZFUlNJT05fREVTSUdOX1NUQUdFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfVkVSU0lPTl9PQlNPTEVURV9TVEFHRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1dSSVRFX0FDQ0VTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NVTUVOVF9DQVJEX1JFUVVJU0lURVNfUkVGRVJFTkNFX0NPREVfU0VMRUNURURfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FTkNPREVfQ0VSVElGSUNBVEVfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FTkRfREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRU5VTUVSQVRJT05fVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhFQ1VURV9BQ0NFU1NfUklHSFRTX1RZUEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhFQ1VUSVZFX0ZJTEVfU1RPUkFHRV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FWElTVF9DT05TVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhJU1RfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYUE9SVF9MT0NLX1RZUEVfQVNLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FWFBPUlRfTE9DS19UWVBFX1dJVEhfTE9DSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhQT1JUX0xPQ0tfVFlQRV9XSVRIT1VUX0xPQ0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYUE9SVF9WRVJTSU9OX1RZUEVfQVNLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FWFBPUlRfVkVSU0lPTl9UWVBFX0xBU1QgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYUE9SVF9WRVJTSU9OX1RZUEVfTEFTVF9BQ1RJVkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYVEVOU0lPTl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRklMVEVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZJTFRFUl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRklMVEVSX1RZUEVfQ09NTU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZJTFRFUl9UWVBFX0NPTU1PTl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GSUxURVJfVFlQRV9VU0VSX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZJTFRFUl9UWVBFX1VTRVJfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRklMVEVSX1ZBTFVFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GTE9BVF9OVU1CRVJfRk9STUFUX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZMT0FUX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfQVVUSE9SX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfS0lORF9BTllfT0JKRUNUUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX0tJTkRfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX0tJTkRfRURPQ1MgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9LSU5EX0pPQlMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9LSU5EX1RBU0tTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9DT01NT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX0NPTVBPTkVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfRkFWT1JJVEVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9JTkJPWCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfT1VUQk9YIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9RVUlDS19MQVVOQ0ggXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX1NFQVJDSCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfU0hPUlRDVVRTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9VU0VSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GUk9NX0RJQ1RJT05BUllfRU5VTV9NRVRIT0RfRkxBRyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRlVMTF9TVUJTVElUVVRFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTExfU1VCU1RJVFVURV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX0NBTkNFTF9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX0NBVEVHT1JZX1NZU1RFTSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRlVOQ1RJT05fQ0FURUdPUllfVVNFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRlVOQ1RJT05fRkFJTFVSRV9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX1NBVkVfUkVTVUxUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HRU5FUkFURURfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HUkVFTl9MSUZFX0NZQ0xFX1NUQUdFX0ZPTlRfQ09MT1IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX0FDQ09VTlRfVFlQRV9WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HUk9VUF9DQVRFR09SWV9OT1JNQUxfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfQ0FURUdPUllfTk9STUFMX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX0NBVEVHT1JZX1NFUlZJQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfQ0FURUdPUllfU0VSVklDRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HUk9VUF9DT01NT05fQ0FURUdPUllfRklFTERfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX0ZVTExfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfUklHSFRTX1RfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX1NFUlZFUl9DT0RFU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfU0VSVkVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX1NFUlZJQ0VfQ0FURUdPUllfRklFTERfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX1VTRVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ISURERU5fTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ISUdIX0xWTF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSElTVE9SWV9BQ1RJT05fQ1JFQVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0hJU1RPUllfQUNUSU9OX0RFTEVURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ISVNUT1JZX0FDVElPTl9FRElUX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0hPVVJfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lEU1BTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTUFHRV9NT0RFX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTUFHRV9NT0RFX0dSRVlTQ0FMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU1BR0VfTU9ERV9NT05PQ0hST01FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTVBPUlRBTkNFX0hJR0ggXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lNUE9SVEFOQ0VfTE9XIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTVBPUlRBTkNFX05PUk1BTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5fREVTSUdOX1ZFUlNJT05fU1RBVEVfUElDS19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5DT01JTkdfV09SS19SVUxFX1RZUEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5UX1JFUVVJU0lURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5UX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTlRFR0VSX05VTUJFUl9GT1JNQVRfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5URUdFUl9UWVBFX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX0dFTkVSQVRFRF9SRVFVSVNJVEVfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX1BVQkxJQ19ST0xFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JU19SRU1PVEVfVVNFUl9ORUdBVElWRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSVNfUkVNT1RFX1VTRVJfUE9TSVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX1NUT1JFRF9SRVFVSVNJVEVfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX1NUT1JFRF9SRVFVSVNJVEVfU1RPUkVEX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JVEFMSUNfTElGRV9DWUNMRV9TVEFHRV9EUkFXX1NUWUxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9KT0JfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0pPQl9LSU5EX0NPTlRST0xfSk9CIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9KT0JfS0lORF9KT0IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0pPQl9LSU5EX05PVElDRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSk9CX1NUQVRFX0FCT1JURUQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0pPQl9TVEFURV9DT01QTEVURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSk9CX1NUQVRFX1dPUktJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRTX0NSRUFURV9TSEFET1dfQ09QSUVTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19ERUZBVUxUX0VET0NfTElGRV9TVEFHRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19BTExfVEVQTEFURVNfQUxMT1dFRF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19BTExPV19MSUZFX0NZQ0xFX1NUQUdFX0NIQU5HSU5HX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19FRE9DX0FMTE9XX01VTFRJUExFX0FDVElWRV9WRVJTSU9OU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19TSEFSRV9BQ0NFU19SSUdIVFNfQllfREVGQVVMVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19FRE9DX1RFTVBMQVRFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19FRE9DX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRTX1NJR05FUlNfUkVRVUlTSVRFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LT0RfSU5QVVRfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTEFTVF9VUERBVEVfREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElGRV9DWUNMRV9TVEFSVF9TVEFHRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElMQUNfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX0NPTVBPTkVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9ET0NVTUVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9FRE9DIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX0ZPTERFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9KT0IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0xJTktfT0JKRUNUX0tJTkRfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX1RBU0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0xJTktfUkVGX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0xJU1RfUkVGRVJFTkNFX01PREVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTE9DQUxJWkFUSU9OX0RJQ1RJT05BUllfTUFJTl9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01BSU5fVklFV19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NQU5VQUxfRU5VTV9NRVRIT0RfRkxBRyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUFTVEVSX0NPTVBfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUFTVEVSX1RBQkxFX1JFQ19JRF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUFYSU1JWkVEX01PREVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01FU1NBR0VfQVRURU5USU9OX0NBUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01FU1NBR0VfQ09ORklSTUFUSU9OX0NBUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01FU1NBR0VfRVJST1JfQ0FQVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUVTU0FHRV9JTkZPUk1BVElPTl9DQVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NSU5JTUlaRURfTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NSU5VVEVfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTU9EVUxFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NT05JVE9SSU5HX0JMT0NLX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NT05USF9GT1JNQVRfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVfTE9DQUxJWkVfSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVfU0lOR1VMQVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVBTl9JTlBVVF9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ORUdBVElWRV9QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ORUdBVElWRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk8gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PX1BJQ0tfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PX1NJR05BVFVSRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk9fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PTkVfQUNDRVNTX1JJR0hUU19UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PTk9QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk9OT1BFUkFUSU5HX1JFQ09SRF9GTEFHX1ZBTFVFX01BU0NVTElORSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk9STUFMX0FDQ0VTU19SSUdIVFNfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1JNQUxfTElGRV9DWUNMRV9TVEFHRV9EUkFXX1NUWUxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1JNQUxfTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RfQUxMT1dFRF9BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RfQUxMT1dFRF9BQ0NFU1NfVFlQRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RJQ0VfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTV9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTV9TVFJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTUVSQVRJT05fQVVUT19OT1RfU1RST05HIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OVU1FUkFUSU9OX0FVVE9fU1RST05HIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OVU1FUkFUSU9OX0ZST01fRElDVE9OQVJZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OVU1FUkFUSU9OX01BTlVBTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTlVNRVJJQ19UWVBFX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTVJFUV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfT0JTT0xFVEVfVkVSU0lPTl9TVEFURV9QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUVfRkVNSU5JTkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRV9NQVNDVUxJTkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09QVElPTkFMX0ZPUk1fQ09NUF9SRVFDT0RFX1BSRUZJWCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfT1JBTkdFX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfT1JJR0lOQUxSRUZfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09VUkZJUk1fUkVGX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09VUkZJUk1fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09VUkZJUk1fVkFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9PVVRHT0lOR19XT1JLX1JVTEVfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QSUNLX05FR0FUSVZFX1JFU1VMVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUElDS19QT1NJVElWRV9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1BJQ0tfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QSUNLX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QSUNLX1RZUEVfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUExBTl9TVEFUVVNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1BMQVRGT1JNX1ZFUlNJT05fQ09NTUVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUExVR0lOU19TRVRUSU5HU19ERVNDUklQVElPTl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUE9TSVRJVkVfUElDS19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUE9XRVJfVE9fQ1JFQVRFX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QT1dFUl9UT19TSUdOX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QUklPUklUWV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUVVBTElGSUVEX1RBU0tfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUVVBTElGSUVEX1RBU0tfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUNTVEFUX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRURfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUZfSURfVF9SRUZfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVGX1JFUVVJU0lURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVGX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUZfUkVRVUlTSVRFU19SRUZFUkVOQ0VfQ09ERV9TRUxFQ1RFRF9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9SRUNPUkRfSElTVE9SWV9DUkVBVEVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9SRUNPUkRfSElTVE9SWV9ERUxFVEVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9SRUNPUkRfSElTVE9SWV9NT0RJRllfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9UWVBFX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9UWVBFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUZFUkVOQ0VTX0FERF9QQVJBTVNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRVNfRElTUExBWV9SRVFVSVNJVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFTU9URV9TRVJWRVJfU1RBVFVTX1dPUktJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFTU9URV9TRVJWRVJfVFlQRV9NQUlOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRU1PVEVfU0VSVkVSX1RZUEVfU0VDT05EQVJZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRU1PVEVfVVNFUl9GTEFHX1ZBTFVFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUE9SVF9BUFBfRURJVE9SX0lOVEVSTkFMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVBPUlRfQkFTRV9SRVBPUlRfSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUE9SVF9CQVNFX1JFUE9SVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVQT1JUX1NDUklQVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVQT1JUX1RFTVBMQVRFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVBPUlRfVklFV0VSX0NPREVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUV9BTExPV19DT01QT05FTlRfREVGQVVMVF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRX0FMTE9XX1JFQ09SRF9ERUZBVUxUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfQUxMT1dfU0VSVkVSX0NPTVBPTkVOVF9ERUZBVUxUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfTU9ERV9BVkFJTEFCTEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRX01PREVfRURJVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfTU9ERV9ISURERU5fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRX01PREVfTk9UX0FWQUlMQUJMRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfTU9ERV9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUV9OVU1CRVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUV9TRUNUSU9OX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfVFlQRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9CWV9VTklUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVfRk9STUFUX0RBVEVfRlVMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9EQVRFX1RJTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9GT1JNQVRfTEVGVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9SSUdIVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9XSVRIT1VUX1VOSVQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9OVU1CRVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX0FDVElPTlMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX0JVVFRPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fQlVUVE9OUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fQ0FSRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTAgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTEgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTYgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTggXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTkgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyNCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUzIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFNSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEU2IFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFOCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEU5IFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVTX1BTRVVET1JFRkVSRU5DRV9SRVFVSVNJVEVfTlVNQkVSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SSUdIVF9BTElHTk1FTlRfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUk9MRVNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JPVVRFX1NURVBfQUZURVJfUlVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ST1VURV9TVEVQX0FORF9DT05ESVRJT05fUlVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ST1VURV9TVEVQX09SX0NPTkRJVElPTl9SVVMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JPVVRFX1RZUEVfQ09NUExFWCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUk9VVEVfVFlQRV9QQVJBTExFTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUk9VVEVfVFlQRV9TRVJJQUwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NCREFUQVNFVERFU0NfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NCREFUQVNFVERFU0NfUE9TSVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NCVklFV1NERVNDX1BPU0lUSVZFX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TQ1JJUFRfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQVJDSF9CWV9URVhUX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUFSQ0hFU19DT01QT05FTlRfQ09OVEVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VBUkNIRVNfQ1JJVEVSSUFfQUNUSU9OX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQVJDSEVTX0VET0NfQ09OVEVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VBUkNIRVNfRk9MREVSX0NPTlRFTlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQVJDSEVTX0pPQl9DT05URU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUFSQ0hFU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VBUkNIRVNfVEFTS19DT05URU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUNPTkRfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfQUNUSU9OU19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfQ0FSRF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfREVUQUlMXzFfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0RFVEFJTF8yX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUNUSU9OX1JFUVVJU0lURV9ERVRBSUxfM19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfREVUQUlMXzRfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0RFVEFJTF81X1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUNUSU9OX1JFUVVJU0lURV9ERVRBSUxfNl9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VMRUNUX1JFRkVSRU5DRV9NT0RFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFTEVDVF9UWVBFX1NFTEVDVEFCTEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFTEVDVF9UWVBFX1NFTEVDVEFCTEVfT05MWV9DSElMRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VMRUNUX1RZUEVfU0VMRUNUQUJMRV9XSVRIX0NISUxEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUxFQ1RfVFlQRV9VTlNMRUNUQUJMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VSVkVSX1RZUEVfTUFJTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VSVklDRV9VU0VSX0NBVEVHT1JZX0ZJRUxEX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRVRUSU5HU19VU0VSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TSUdOQVRVUkVfQU5EX0VOQ09ERV9DRVJUSUZJQ0FURV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NJR05BVFVSRV9DRVJUSUZJQ0FURV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NJTkdVTEFSX1RJVExFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TUUxfU0VSVkVSX0FVVEhFTlRJRklDQVRJT05fRkxBR19WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TUUxfU0VSVkVSX0VOQ09ERV9BVVRIRU5USUZJQ0FUSU9OX0ZMQUdfVkFMVUVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBTkRBUlRfUk9VVEVfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQU5EQVJUX1JPVVRFX1JFRkVSRU5DRV9DT01NRU5UX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFOREFSVF9ST1VURVNfR1JPVVBTX1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFURV9SRVFfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVEVfUkVRVUlTSVRFX0FDVElWRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVEVfUkVRVUlTSVRFX0NMT1NFRF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRJQ19ST0xFX1RZUEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1BMQU5fREVGQVVMVF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX0FVVE9DTEVBTklORyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX0JMVUVfU1FVQVJFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfQ09NUExFVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9HUkVFTl9TUVVBUkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9PUkFOR0VfU1FVQVJFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfUFVSUExFX1NRVUFSRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX1JFRF9TUVVBUkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9TVVNQRU5EIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfWUVMTE9XX1NRVUFSRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1REUk9VVEVfU0hPV19UT19VU0VSU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RPUkFHRV9UWVBFX0ZJTEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUT1JBR0VfVFlQRV9TUUxfU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJJS0VPVVRfTElGRV9DWUNMRV9TVEFHRV9EUkFXX1NUWUxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJJTkdfRk9STUFUX0xFRlRfQUxJR05fQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RSSU5HX0ZPUk1BVF9SSUdIVF9BTElHTl9DSEFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJJTkdfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUUklOR19SRVFVSVNJVEVfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RSSU5HX1RZUEVfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1VCU1RJVFVURVNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NVQlRBU0tfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NZU1RFTV9TRVRUSU5HX0NVUlJFTlRfVVNFUl9QQVJBTV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1lTVEVNX1NFVFRJTkdfRU1QVFlfVkFMVUVfUEFSQU1fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NZU1RFTV9WRVJTSU9OX0NPTU1FTlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfQUNDRVNTX1RZUEVfQUxMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0FDQ0VTU19UWVBFX0FMTF9NRU1CRVJTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0FDQ0VTU19UWVBFX01BTlVBTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19FTkNPREVfVFlQRV9DRVJUSUZJQ0FUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0VOQ09ERV9UWVBFX0NFUlRJRklDQVRJT05fQU5EX1BBU1NXT1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0VOQ09ERV9UWVBFX05PTkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfRU5DT0RFX1RZUEVfUEFTU1dPUkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfUk9VVEVfQUxMX0NPTkRJVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19ST1VURV9BTkRfQ09ORElUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1JPVVRFX09SX0NPTkRJVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9BQk9SVEVEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1NUQVRFX0NPTVBMRVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1NUQVRFX0NPTlRJTlVFRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9DT05UUk9MIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1NUQVRFX0lOSVQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfU1RBVEVfV09SS0lORyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19USVRMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19UWVBFU19HUk9VUFNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfVFlQRVNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFTVBMQVRFU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVTVF9EQVRFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9URVNUX0RFVl9EQVRBQkFTRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9URVNUX0RFVl9TWVNURU1fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVTVF9FRE1TX0RBVEFCQVNFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfRURNU19NQUlOX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfRURNU19NQUlOX0RCX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfRURNU19TRUNPTkRfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVTVF9FRE1TX1NFQ09ORF9EQl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9URVNUX0VETVNfU1lTVEVNX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfTlVNRVJJQ19SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVYVF9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFWFRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFWFRfUkVRVUlTSVRFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFWFRfVFlQRV9DSEFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UWVBFX0NPREVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOREVGSU5FRF9MSUZFX0NZQ0xFX1NUQUdFX0ZPTlRfQ09MT1IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOSVRTX1NFQ1RJT05fSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOSVRTX1NFQ1RJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOT1BFUkFUSU5HX1JFQ09SRF9GTEFHX1ZBTFVFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOU1RPUkVEX0RBVEFfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOU1RPUkVEX0RBVEFfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRV9BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VfQUNDRVNTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9BQ0NPVU5UX1RZUEVfVkFMVUVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9BRERJVElPTkFMX0lORk9STUFUSU9OX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0FORF9HUk9VUF9JRF9GUk9NX1BTRVVET1JFRkVSRU5DRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9DQVRFR09SWV9OT1JNQUwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ0VSVElGSUNBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ0VSVElGSUNBVEVfU1RBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ0VSVElGSUNBVEVfU1VCSkVDVF9OQU1FX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0NFUlRJRklDQVRFX1RIVU1CUFJJTlRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ09NTU9OX0NBVEVHT1JZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0NPTU1PTl9DQVRFR09SWV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0ZVTExfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9HUk9VUF9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0xPR0lOX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1JFTU9URV9DT05UUk9MTEVSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1JFTU9URV9TWVNURU1fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfUklHSFRTX1RfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU0VSVkVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU0VSVklDRV9DQVRFR09SWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TRVJWSUNFX0NBVEVHT1JZX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0FETUlOSVNUUkFUT1JfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfQURNSU5JU1RSQVRPUl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19ERVZFTE9QRVJfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfREVWRUxPUEVSX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0RJU0FCTEVEX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0RJU0FCTEVEX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX1NZU1RFTV9ERVZFTE9QRVJfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfVVNFUl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19VU0VSX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX1VTRVJfTkFNRV9ERVBSRUNBVEVEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1RZUEVfRklFTERfVkFMVUVfVVNFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19DT05UUk9MTEVSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19JU19NQUlOX1NFUlZFUl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUlNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJTX1JFR0lTVFJBVElPTl9DRVJUSUZJQ0FURVNfQUNUSU9OX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19TWVNURU1fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJTX1VTRVJfQUNDRVNTX1JJR0hUU19UWVBSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19VU0VSX0FVVEhFTlRJQ0FUSU9OX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19VU0VSX0NPTVBPTkVOVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUlNfVVNFUl9HUk9VUF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUlNfVklFV19DRVJUSUZJQ0FURVNfQUNUSU9OX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1ZJRVdfREVGQVVMVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9WSUVXX0RFRkFVTFRfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVklFV0VSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XQUlUSU5HX0JMT0NLX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XSVpBUkRfRk9STV9MQUJFTF9URVNUX1NUUklORyAgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1dJWkFSRF9RVUVSWV9QQVJBTV9IRUlHSFRfRVRBTE9OX1NUUklORyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfV0laQVJEX1JFRkVSRU5DRV9DT01NRU5UX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1JVTEVTX0RFU0NSSVBUSU9OX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1RJTUVfQ0FMRU5EQVJfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1dPUktfV09SS0ZMT1dfSEFSRF9ST1VURV9UWVBFX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1dPUktGTE9XX0hBUkRfUk9VVEVfVFlQRV9WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1dPUktGTE9XX0hBUkRfUk9VVEVfVFlQRV9WQUxVRV9DT0RFX1JVUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfV09SS19XT1JLRkxPV19TT0ZUX1JPVVRFX1RZUEVfVkFMVUVfQ09ERV9SVVMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1dPUktGTE9XX1JPVVRFX1RZUFJfSEFSRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfV09SS0ZMT1dfUk9VVEVfVFlQUl9TT0ZUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9YTUxfRU5DT0RJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1hSRUNfU1RBVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfWFJFQ0lEX0ZJRUxEX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1lFUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfWUVTX05PXzJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1lFU19OT19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfWUVTX05PX1RfUkVGX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1lFU19QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ZRVNfVkFMVUUgXCI7XG5cbiAgLy8gQmFzZSBjb25zdGFudFxuICBjb25zdCBiYXNlX2NvbnN0YW50cyA9IFwiQ1IgRkFMU0UgbmlsIE5PX1ZBTFVFIE5VTEwgVEFCIFRSVUUgWUVTX1ZBTFVFIFwiO1xuXG4gIC8vIEJhc2UgZ3JvdXAgbmFtZVxuICBjb25zdCBiYXNlX2dyb3VwX25hbWVfY29uc3RhbnRzID1cbiAgICBcIkFETUlOSVNUUkFUT1JTX0dST1VQX05BTUUgQ1VTVE9NSVpFUlNfR1JPVVBfTkFNRSBERVZFTE9QRVJTX0dST1VQX05BTUUgU0VSVklDRV9VU0VSU19HUk9VUF9OQU1FIFwiO1xuXG4gIC8vIERlY2lzaW9uIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3QgZGVjaXNpb25fYmxvY2tfcHJvcGVydGllc19jb25zdGFudHMgPVxuICAgIFwiREVDSVNJT05fQkxPQ0tfRklSU1RfT1BFUkFORF9QUk9QRVJUWSBERUNJU0lPTl9CTE9DS19OQU1FX1BST1BFUlRZIERFQ0lTSU9OX0JMT0NLX09QRVJBVElPTl9QUk9QRVJUWSBcIlxuICAgICsgXCJERUNJU0lPTl9CTE9DS19SRVNVTFRfVFlQRV9QUk9QRVJUWSBERUNJU0lPTl9CTE9DS19TRUNPTkRfT1BFUkFORF9QUk9QRVJUWSBcIjtcblxuICAvLyBGaWxlIGV4dGVuc2lvblxuICBjb25zdCBmaWxlX2V4dGVuc2lvbl9jb25zdGFudHMgPVxuICAgIFwiQU5ZX0ZJTEVfRVhURU5USU9OIENPTVBSRVNTRURfRE9DVU1FTlRfRVhURU5TSU9OIEVYVEVOREVEX0RPQ1VNRU5UX0VYVEVOU0lPTiBcIlxuICAgICsgXCJTSE9SVF9DT01QUkVTU0VEX0RPQ1VNRU5UX0VYVEVOU0lPTiBTSE9SVF9FWFRFTkRFRF9ET0NVTUVOVF9FWFRFTlNJT04gXCI7XG5cbiAgLy8gSm9iIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3Qgam9iX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzID1cbiAgICBcIkpPQl9CTE9DS19BQk9SVF9ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJKT0JfQkxPQ0tfQUZURVJfRklOSVNIX0VWRU5UIFwiXG4gICAgKyBcIkpPQl9CTE9DS19BRlRFUl9RVUVSWV9QQVJBTUVURVJTX0VWRU5UIFwiXG4gICAgKyBcIkpPQl9CTE9DS19BVFRBQ0hNRU5UX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfR1JPVVBfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19UWVBFX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19CRUZPUkVfUVVFUllfUEFSQU1FVEVSU19FVkVOVCBcIlxuICAgICsgXCJKT0JfQkxPQ0tfQkVGT1JFX1NUQVJUX0VWRU5UIFwiXG4gICAgKyBcIkpPQl9CTE9DS19DUkVBVEVEX0pPQlNfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19FWEVDVVRJT05fUkVTVUxUU19QUk9QRVJUWSBcIlxuICAgICsgXCJKT0JfQkxPQ0tfSVNfUEFSQUxMRUxfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX0lTX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19JU19SRUxBVElWRV9ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJKT0JfQkxPQ0tfSk9CX1RFWFRfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX05BTUVfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX05FRURfU0lHTl9PTl9QRVJGT1JNX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19QRVJGT1JNRVJfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgXCI7XG5cbiAgLy8gTGFuZ3VhZ2UgY29kZVxuICBjb25zdCBsYW5ndWFnZV9jb2RlX2NvbnN0YW50cyA9IFwiRU5HTElTSF9MQU5HVUFHRV9DT0RFIFJVU1NJQU5fTEFOR1VBR0VfQ09ERSBcIjtcblxuICAvLyBMYXVuY2hpbmcgZXh0ZXJuYWwgYXBwbGljYXRpb25zXG4gIGNvbnN0IGxhdW5jaGluZ19leHRlcm5hbF9hcHBsaWNhdGlvbnNfY29uc3RhbnRzID1cbiAgICBcInNtSGlkZGVuIHNtTWF4aW1pemVkIHNtTWluaW1pemVkIHNtTm9ybWFsIHdtTm8gd21ZZXMgXCI7XG5cbiAgLy8gTGluayBraW5kXG4gIGNvbnN0IGxpbmtfa2luZF9jb25zdGFudHMgPVxuICAgIFwiQ09NUE9ORU5UX1RPS0VOX0xJTktfS0lORCBcIlxuICAgICsgXCJET0NVTUVOVF9MSU5LX0tJTkQgXCJcbiAgICArIFwiRURPQ1VNRU5UX0xJTktfS0lORCBcIlxuICAgICsgXCJGT0xERVJfTElOS19LSU5EIFwiXG4gICAgKyBcIkpPQl9MSU5LX0tJTkQgXCJcbiAgICArIFwiUkVGRVJFTkNFX0xJTktfS0lORCBcIlxuICAgICsgXCJUQVNLX0xJTktfS0lORCBcIjtcblxuICAvLyBMb2NrIHR5cGVcbiAgY29uc3QgbG9ja190eXBlX2NvbnN0YW50cyA9XG4gICAgXCJDT01QT05FTlRfVE9LRU5fTE9DS19UWVBFIEVET0NVTUVOVF9WRVJTSU9OX0xPQ0tfVFlQRSBcIjtcblxuICAvLyBNb25pdG9yIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3QgbW9uaXRvcl9ibG9ja19wcm9wZXJ0aWVzX2NvbnN0YW50cyA9XG4gICAgXCJNT05JVE9SX0JMT0NLX0FGVEVSX0ZJTklTSF9FVkVOVCBcIlxuICAgICsgXCJNT05JVE9SX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBcIlxuICAgICsgXCJNT05JVE9SX0JMT0NLX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIk1PTklUT1JfQkxPQ0tfSU5URVJWQUxfUFJPUEVSVFkgXCJcbiAgICArIFwiTU9OSVRPUl9CTE9DS19JTlRFUlZBTF9UWVBFX1BST1BFUlRZIFwiXG4gICAgKyBcIk1PTklUT1JfQkxPQ0tfSVNfUkVMQVRJVkVfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiTU9OSVRPUl9CTE9DS19OQU1FX1BST1BFUlRZIFwiXG4gICAgKyBcIk1PTklUT1JfQkxPQ0tfUkVMQVRJVkVfREVBRExJTkVfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJNT05JVE9SX0JMT0NLX1NFQVJDSF9TQ1JJUFRfUFJPUEVSVFkgXCI7XG5cbiAgLy8gTm90aWNlIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3Qgbm90aWNlX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzID1cbiAgICBcIk5PVElDRV9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX0FUVEFDSE1FTlRfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19HUk9VUF9QUk9QRVJUWSBcIlxuICAgICsgXCJOT1RJQ0VfQkxPQ0tfQVRUQUNITUVOVFNfUklHSFRTX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBcIlxuICAgICsgXCJOT1RJQ0VfQkxPQ0tfQ1JFQVRFRF9OT1RJQ0VTX1BST1BFUlRZIFwiXG4gICAgKyBcIk5PVElDRV9CTE9DS19ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJOT1RJQ0VfQkxPQ0tfSVNfUkVMQVRJVkVfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX05BTUVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX05PVElDRV9URVhUX1BST1BFUlRZIFwiXG4gICAgKyBcIk5PVElDRV9CTE9DS19QRVJGT1JNRVJfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgXCI7XG5cbiAgLy8gT2JqZWN0IGV2ZW50c1xuICBjb25zdCBvYmplY3RfZXZlbnRzX2NvbnN0YW50cyA9XG4gICAgXCJkc2VBZnRlckNhbmNlbCBcIlxuICAgICsgXCJkc2VBZnRlckNsb3NlIFwiXG4gICAgKyBcImRzZUFmdGVyRGVsZXRlIFwiXG4gICAgKyBcImRzZUFmdGVyRGVsZXRlT3V0T2ZUcmFuc2FjdGlvbiBcIlxuICAgICsgXCJkc2VBZnRlckluc2VydCBcIlxuICAgICsgXCJkc2VBZnRlck9wZW4gXCJcbiAgICArIFwiZHNlQWZ0ZXJTY3JvbGwgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGVPdXRPZlRyYW5zYWN0aW9uIFwiXG4gICAgKyBcImRzZUJlZm9yZUNhbmNlbCBcIlxuICAgICsgXCJkc2VCZWZvcmVDbG9zZSBcIlxuICAgICsgXCJkc2VCZWZvcmVEZWxldGUgXCJcbiAgICArIFwiZHNlQmVmb3JlRGV0YWlsVXBkYXRlIFwiXG4gICAgKyBcImRzZUJlZm9yZUluc2VydCBcIlxuICAgICsgXCJkc2VCZWZvcmVPcGVuIFwiXG4gICAgKyBcImRzZUJlZm9yZVVwZGF0ZSBcIlxuICAgICsgXCJkc2VPbkFueVJlcXVpc2l0ZUNoYW5nZSBcIlxuICAgICsgXCJkc2VPbkNsb3NlUmVjb3JkIFwiXG4gICAgKyBcImRzZU9uRGVsZXRlRXJyb3IgXCJcbiAgICArIFwiZHNlT25PcGVuUmVjb3JkIFwiXG4gICAgKyBcImRzZU9uUHJlcGFyZVVwZGF0ZSBcIlxuICAgICsgXCJkc2VPblVwZGF0ZUVycm9yIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlUmF0aWZpZWRSZWNvcmQgXCJcbiAgICArIFwiZHNlT25WYWxpZERlbGV0ZSBcIlxuICAgICsgXCJkc2VPblZhbGlkVXBkYXRlIFwiXG4gICAgKyBcInJlT25DaGFuZ2UgXCJcbiAgICArIFwicmVPbkNoYW5nZVZhbHVlcyBcIlxuICAgICsgXCJTRUxFQ1RJT05fQkVHSU5fUk9VVEVfRVZFTlQgXCJcbiAgICArIFwiU0VMRUNUSU9OX0VORF9ST1VURV9FVkVOVCBcIjtcblxuICAvLyBPYmplY3QgcGFyYW1zXG4gIGNvbnN0IG9iamVjdF9wYXJhbXNfY29uc3RhbnRzID1cbiAgICBcIkNVUlJFTlRfUEVSSU9EX0lTX1JFUVVJUkVEIFwiXG4gICAgKyBcIlBSRVZJT1VTX0NBUkRfVFlQRV9OQU1FIFwiXG4gICAgKyBcIlNIT1dfUkVDT1JEX1BST1BFUlRJRVNfRk9STSBcIjtcblxuICAvLyBPdGhlclxuICBjb25zdCBvdGhlcl9jb25zdGFudHMgPVxuICAgIFwiQUNDRVNTX1JJR0hUU19TRVRUSU5HX0RJQUxPR19DT0RFIFwiXG4gICAgKyBcIkFETUlOSVNUUkFUT1JfVVNFUl9DT0RFIFwiXG4gICAgKyBcIkFOQUxZVElDX1JFUE9SVF9UWVBFIFwiXG4gICAgKyBcImFzcnRIaWRlTG9jYWwgXCJcbiAgICArIFwiYXNydEhpZGVSZW1vdGUgXCJcbiAgICArIFwiQ0FMQ1VMQVRFRF9ST0xFX1RZUEVfQ09ERSBcIlxuICAgICsgXCJDT01QT05FTlRTX1JFRkVSRU5DRV9ERVZFTE9QRVJfVklFV19DT0RFIFwiXG4gICAgKyBcIkRDVFNfVEVTVF9QUk9UT0NPTFNfRk9MREVSX1BBVEggXCJcbiAgICArIFwiRV9FRE9DX1ZFUlNJT05fQUxSRUFEWV9BUFBST1ZJTkdMWV9TSUdORUQgXCJcbiAgICArIFwiRV9FRE9DX1ZFUlNJT05fQUxSRUFEWV9BUFBST1ZJTkdMWV9TSUdORURfQllfVVNFUiBcIlxuICAgICsgXCJFX0VET0NfVkVSU0lPTl9BTFJFRFlfU0lHTkVEIFwiXG4gICAgKyBcIkVfRURPQ19WRVJTSU9OX0FMUkVEWV9TSUdORURfQllfVVNFUiBcIlxuICAgICsgXCJFRE9DX1RZUEVTX0NPREVfUkVRVUlTSVRFX0ZJRUxEX05BTUUgXCJcbiAgICArIFwiRURPQ1VNRU5UU19BTElBU19OQU1FIFwiXG4gICAgKyBcIkZJTEVTX0ZPTERFUl9QQVRIIFwiXG4gICAgKyBcIkZJTFRFUl9PUEVSQU5EU19ERUxJTUlURVIgXCJcbiAgICArIFwiRklMVEVSX09QRVJBVElPTlNfREVMSU1JVEVSIFwiXG4gICAgKyBcIkZPUk1DQVJEX05BTUUgXCJcbiAgICArIFwiRk9STUxJU1RfTkFNRSBcIlxuICAgICsgXCJHRVRfRVhURU5ERURfRE9DVU1FTlRfRVhURU5TSU9OX0NSRUFUSU9OX01PREUgXCJcbiAgICArIFwiR0VUX0VYVEVOREVEX0RPQ1VNRU5UX0VYVEVOU0lPTl9JTVBPUlRfTU9ERSBcIlxuICAgICsgXCJJTlRFR1JBVEVEX1JFUE9SVF9UWVBFIFwiXG4gICAgKyBcIklTX0JVSUxERVJfQVBQTElDQVRJT05fUk9MRSBcIlxuICAgICsgXCJJU19CVUlMREVSX0FQUExJQ0FUSU9OX1JPTEUyIFwiXG4gICAgKyBcIklTX0JVSUxERVJfVVNFUlMgXCJcbiAgICArIFwiSVNCU1lTREVWIFwiXG4gICAgKyBcIkxPR19GT0xERVJfUEFUSCBcIlxuICAgICsgXCJtYkNhbmNlbCBcIlxuICAgICsgXCJtYk5vIFwiXG4gICAgKyBcIm1iTm9Ub0FsbCBcIlxuICAgICsgXCJtYk9LIFwiXG4gICAgKyBcIm1iWWVzIFwiXG4gICAgKyBcIm1iWWVzVG9BbGwgXCJcbiAgICArIFwiTUVNT1JZX0RBVEFTRVRfREVTUklQVElPTlNfRklMRU5BTUUgXCJcbiAgICArIFwibXJObyBcIlxuICAgICsgXCJtck5vVG9BbGwgXCJcbiAgICArIFwibXJZZXMgXCJcbiAgICArIFwibXJZZXNUb0FsbCBcIlxuICAgICsgXCJNVUxUSVBMRV9TRUxFQ1RfRElBTE9HX0NPREUgXCJcbiAgICArIFwiTk9OT1BFUkFUSU5HX1JFQ09SRF9GTEFHX0ZFTUlOSU5FIFwiXG4gICAgKyBcIk5PTk9QRVJBVElOR19SRUNPUkRfRkxBR19NQVNDVUxJTkUgXCJcbiAgICArIFwiT1BFUkFUSU5HX1JFQ09SRF9GTEFHX0ZFTUlOSU5FIFwiXG4gICAgKyBcIk9QRVJBVElOR19SRUNPUkRfRkxBR19NQVNDVUxJTkUgXCJcbiAgICArIFwiUFJPRklMSU5HX1NFVFRJTkdTX0NPTU1PTl9TRVRUSU5HU19DT0RFX1ZBTFVFIFwiXG4gICAgKyBcIlBST0dSQU1fSU5JVElBVEVEX0xPT0tVUF9BQ1RJT04gXCJcbiAgICArIFwicmF0RGVsZXRlIFwiXG4gICAgKyBcInJhdEVkaXQgXCJcbiAgICArIFwicmF0SW5zZXJ0IFwiXG4gICAgKyBcIlJFUE9SVF9UWVBFIFwiXG4gICAgKyBcIlJFUVVJUkVEX1BJQ0tfVkFMVUVTX1ZBUklBQkxFIFwiXG4gICAgKyBcInJtQ2FyZCBcIlxuICAgICsgXCJybUxpc3QgXCJcbiAgICArIFwiU0JSVEVfUFJPR0lEX0RFViBcIlxuICAgICsgXCJTQlJURV9QUk9HSURfUkVMRUFTRSBcIlxuICAgICsgXCJTVEFUSUNfUk9MRV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1VQUFJFU1NfRU1QVFlfVEVNUExBVEVfQ1JFQVRJT04gXCJcbiAgICArIFwiU1lTVEVNX1VTRVJfQ09ERSBcIlxuICAgICsgXCJVUERBVEVfRElBTE9HX0RBVEFTRVQgXCJcbiAgICArIFwiVVNFRF9JTl9PQkpFQ1RfSElOVF9QQVJBTSBcIlxuICAgICsgXCJVU0VSX0lOSVRJQVRFRF9MT09LVVBfQUNUSU9OIFwiXG4gICAgKyBcIlVTRVJfTkFNRV9GT1JNQVQgXCJcbiAgICArIFwiVVNFUl9TRUxFQ1RJT05fUkVTVFJJQ1RJT05TIFwiXG4gICAgKyBcIldPUktGTE9XX1RFU1RfUFJPVE9DT0xTX0ZPTERFUl9QQVRIIFwiXG4gICAgKyBcIkVMU19TVUJUWVBFX0NPTlRST0xfTkFNRSBcIlxuICAgICsgXCJFTFNfRk9MREVSX0tJTkRfQ09OVFJPTF9OQU1FIFwiXG4gICAgKyBcIlJFUEVBVF9QUk9DRVNTX0NVUlJFTlRfT0JKRUNUX0VYQ0VQVElPTl9OQU1FIFwiO1xuXG4gIC8vIFByaXZpbGVnZXNcbiAgY29uc3QgcHJpdmlsZWdlc19jb25zdGFudHMgPVxuICAgIFwiUFJJVklMRUdFX0NPTVBPTkVOVF9GVUxMX0FDQ0VTUyBcIlxuICAgICsgXCJQUklWSUxFR0VfREVWRUxPUE1FTlRfRVhQT1JUIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9ERVZFTE9QTUVOVF9JTVBPUlQgXCJcbiAgICArIFwiUFJJVklMRUdFX0RPQ1VNRU5UX0RFTEVURSBcIlxuICAgICsgXCJQUklWSUxFR0VfRVNEIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9GT0xERVJfREVMRVRFIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9NQU5BR0VfQUNDRVNTX1JJR0hUUyBcIlxuICAgICsgXCJQUklWSUxFR0VfTUFOQUdFX1JFUExJQ0FUSU9OIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9NQU5BR0VfU0VTU0lPTl9TRVJWRVIgXCJcbiAgICArIFwiUFJJVklMRUdFX09CSkVDVF9GVUxMX0FDQ0VTUyBcIlxuICAgICsgXCJQUklWSUxFR0VfT0JKRUNUX1ZJRVcgXCJcbiAgICArIFwiUFJJVklMRUdFX1JFU0VSVkVfTElDRU5TRSBcIlxuICAgICsgXCJQUklWSUxFR0VfU1lTVEVNX0NVU1RPTUlaRSBcIlxuICAgICsgXCJQUklWSUxFR0VfU1lTVEVNX0RFVkVMT1AgXCJcbiAgICArIFwiUFJJVklMRUdFX1NZU1RFTV9JTlNUQUxMIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9UQVNLX0RFTEVURSBcIlxuICAgICsgXCJQUklWSUxFR0VfVVNFUl9QTFVHSU5fU0VUVElOR1NfQ1VTVE9NSVpFIFwiXG4gICAgKyBcIlBSSVZJTEVHRVNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCI7XG5cbiAgLy8gUHNldWRvcmVmZXJlbmNlIGNvZGVcbiAgY29uc3QgcHNldWRvcmVmZXJlbmNlX2NvZGVfY29uc3RhbnRzID1cbiAgICBcIkFDQ0VTU19UWVBFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJBTExfQVZBSUxBQkxFX0NPTVBPTkVOVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiQUxMX0FWQUlMQUJMRV9QUklWSUxFR0VTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIkFMTF9SRVBMSUNBVEVfQ09NUE9ORU5UU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJBVkFJTEFCTEVfREVWRUxPUEVSU19DT01QT05FTlRTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIkNPTVBPTkVOVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiRklMVFJBVEVSX1NFVFRJTkdTX0NPTkZMSUNUU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJHUk9VUFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiUkVDRUlWRV9QUk9UT0NPTF9QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJSRUZFUkVOQ0VfUkVRVUlTSVRFX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlJFRkVSRU5DRV9SRVFVSVNJVEVTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlJFRlRZUEVTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlJFUExJQ0FUSU9OX1NFQU5DRVNfRElBUllfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU0VORF9QUk9UT0NPTF9QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTVUJTVElUVVRFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNURU1fU0VUVElOR1NfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiVU5JVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiVVNFUlNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiVklFV0VSU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIjtcblxuICAvLyBSZXF1aXNpdGUgSVNCQ2VydGlmaWNhdGVUeXBlIHZhbHVlc1xuICBjb25zdCByZXF1aXNpdGVfSVNCQ2VydGlmaWNhdGVUeXBlX3ZhbHVlc19jb25zdGFudHMgPVxuICAgIFwiQ0VSVElGSUNBVEVfVFlQRV9FTkNSWVBUIFwiXG4gICAgKyBcIkNFUlRJRklDQVRFX1RZUEVfU0lHTiBcIlxuICAgICsgXCJDRVJUSUZJQ0FURV9UWVBFX1NJR05fQU5EX0VOQ1JZUFQgXCI7XG5cbiAgLy8gUmVxdWlzaXRlIElTQkVEb2NTdG9yYWdlVHlwZSB2YWx1ZXNcbiAgY29uc3QgcmVxdWlzaXRlX0lTQkVEb2NTdG9yYWdlVHlwZV92YWx1ZXNfY29uc3RhbnRzID1cbiAgICBcIlNUT1JBR0VfVFlQRV9GSUxFIFwiXG4gICAgKyBcIlNUT1JBR0VfVFlQRV9OQVNfQ0lGUyBcIlxuICAgICsgXCJTVE9SQUdFX1RZUEVfU0FQRVJJT04gXCJcbiAgICArIFwiU1RPUkFHRV9UWVBFX1NRTF9TRVJWRVIgXCI7XG5cbiAgLy8gUmVxdWlzaXRlIENvbXBUeXBlMiB2YWx1ZXNcbiAgY29uc3QgcmVxdWlzaXRlX2NvbXBUeXBlMl92YWx1ZXNfY29uc3RhbnRzID1cbiAgICBcIkNPTVBUWVBFMl9SRVFVSVNJVEVfRE9DVU1FTlRTX1ZBTFVFIFwiXG4gICAgKyBcIkNPTVBUWVBFMl9SRVFVSVNJVEVfVEFTS1NfVkFMVUUgXCJcbiAgICArIFwiQ09NUFRZUEUyX1JFUVVJU0lURV9GT0xERVJTX1ZBTFVFIFwiXG4gICAgKyBcIkNPTVBUWVBFMl9SRVFVSVNJVEVfUkVGRVJFTkNFU19WQUxVRSBcIjtcblxuICAvLyBSZXF1aXNpdGUgbmFtZVxuICBjb25zdCByZXF1aXNpdGVfbmFtZV9jb25zdGFudHMgPVxuICAgIFwiU1lTUkVRX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0NPTVBUWVBFMiBcIlxuICAgICsgXCJTWVNSRVFfQ09OU1RfQVZBSUxBQkxFX0ZPUl9XRUIgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX0NPTU1PTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9DT05TVF9DT01NT05fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX0ZJUk1fQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfQ09OU1RfRklSTV9TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX0ZJUk1fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX1NFUlZFUl9TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX0NPTlRFTlRTIFwiXG4gICAgKyBcIlNZU1JFUV9EQVRFX09QRU4gXCJcbiAgICArIFwiU1lTUkVRX0RBVEVfQ0xPU0UgXCJcbiAgICArIFwiU1lTUkVRX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfRE9VQkxFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0FDQ0VTU19UWVBFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0FVVEhPUiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19DUkVBVEVEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0RFTEVHQVRFX1JJR0hUU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19FRElUT1IgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfRU5DT0RFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfRU5DUllQVElPTl9QTFVHSU5fTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19FTkNSWVBUSU9OX1BMVUdJTl9WRVJTSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0VYUE9SVF9EQVRFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0VYUE9SVEVSIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0tJTkQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfTElGRV9TVEFHRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0xPQ0tFRF9GT1JfU0VSVkVSX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfTU9ESUZJRUQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19OT1RFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1FVQUxJRklFRF9JRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TRVNTSU9OX0tFWSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TRVNTSU9OX0tFWV9FTkNSWVBUSU9OX1BMVUdJTl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NFU1NJT05fS0VZX0VOQ1JZUFRJT05fUExVR0lOX1ZFUlNJT04gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU0lHTkFUVVJFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU0lHTkVEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0UgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfQVJDSElWRV9TVE9SQUdFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX0NIRUNLX1JJR0hUUyBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19DT01QVVRFUl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX0VESVRfSU5fU1RPUkFHRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19FWEVDVVRJVkVfU1RPUkFHRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19GVU5DVElPTiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19JTklUSUFMSVpFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19MT0NBTF9QQVRIIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX1NBUEVSSU9OX0RBVEFCQVNFX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfU0VBUkNIX0JZX1RFWFQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfU0VSVkVSX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfU0hBUkVEX1NPVVJDRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVEVYVF9NT0RJRklFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX0FDVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfQUNUX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfQUNUX0RFU0NSSVBUSU9OX0xPQ0FMSVpFX0lEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfQUNUX09OX0VYRUNVVEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9BQ1RfT05fRVhFQ1VURV9FWElTVFMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9BQ1RfU0VDVElPTiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX0FERF9QQVJBTVMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9DT01NRU5UIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfRVZFTlRfVEVYVCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX05BTUVfSU5fU0lOR1VMQVIgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9OQU1FX0lOX1NJTkdVTEFSX0xPQ0FMSVpFX0lEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfTkFNRV9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX05VTUVSQVRJT05fTUVUSE9EIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUFNFVURPX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfREVTQ1JJUFRJT05fTE9DQUxJWkVfSUQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfSVNfTEVBRElORyBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX1JFUV9JU19SRVFVSVJFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX1JFUV9OVU1CRVIgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfT05fQ0hBTkdFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX09OX0NIQU5HRV9FWElTVFMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfT05fU0VMRUNUIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX09OX1NFTEVDVF9LSU5EIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX1NFQ1RJT04gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NBUkQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NPTU1FTlQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0lTX01BSU4gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX05BTUVfTE9DQUxJWkVfSUQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9BVVRIT1IgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9DUkMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9EQVRBIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1ZFUlNJT05fRURJVE9SIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1ZFUlNJT05fRVhQT1JUX0RBVEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9FWFBPUlRFUiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX0hJRERFTiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX0xJRkVfU1RBR0UgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9NT0RJRklFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX05PVEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9TSUdOQVRVUkVfVFlQRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX1NJR05FRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX1NJWkUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9TT1VSQ0UgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9URVhUX01PRElGSUVEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DS0lORF9ERUZBVUxUX1ZFUlNJT05fU1RBVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfRk9MREVSX0tJTkQgXCJcbiAgICArIFwiU1lTUkVRX0ZVTkNfQ0FURUdPUlkgXCJcbiAgICArIFwiU1lTUkVRX0ZVTkNfQ09NTUVOVCBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19HUk9VUCBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19HUk9VUF9DT01NRU5UIFwiXG4gICAgKyBcIlNZU1JFUV9GVU5DX0dST1VQX05VTUJFUiBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19IRUxQIFwiXG4gICAgKyBcIlNZU1JFUV9GVU5DX1BBUkFNX0RFRl9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19QQVJBTV9JREVOVCBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19QQVJBTV9OVU1CRVIgXCJcbiAgICArIFwiU1lTUkVRX0ZVTkNfUEFSQU1fVFlQRSBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19URVhUIFwiXG4gICAgKyBcIlNZU1JFUV9HUk9VUF9DQVRFR09SWSBcIlxuICAgICsgXCJTWVNSRVFfSUQgXCJcbiAgICArIFwiU1lTUkVRX0xBU1RfVVBEQVRFIFwiXG4gICAgKyBcIlNZU1JFUV9MRUFERVJfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFUV9MSU5FX05VTUJFUiBcIlxuICAgICsgXCJTWVNSRVFfTUFJTl9SRUNPUkRfSUQgXCJcbiAgICArIFwiU1lTUkVRX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX05BTUVfTE9DQUxJWkVfSUQgXCJcbiAgICArIFwiU1lTUkVRX05PVEUgXCJcbiAgICArIFwiU1lTUkVRX09SSUdJTkFMX1JFQ09SRCBcIlxuICAgICsgXCJTWVNSRVFfT1VSX0ZJUk0gXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19CQVRDSF9MT0dJTkcgXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19CQVRDSF9TSVpFIFwiXG4gICAgKyBcIlNZU1JFUV9QUk9GSUxJTkdfU0VUVElOR1NfUFJPRklMSU5HX0VOQUJMRUQgXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19TUUxfUFJPRklMSU5HX0VOQUJMRUQgXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19TVEFSVF9MT0dHRUQgXCJcbiAgICArIFwiU1lTUkVRX1JFQ09SRF9TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfRklFTERfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1JFUV9GT1JNQVQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfR0VORVJBVEVEIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX0xFTkdUSCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1JFUV9QUkVDSVNJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX1NFQ1RJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfU1RPUkVEIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX1RPS0VOUyBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1JFUV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX1ZJRVcgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FDVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9BQ1RfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FDVF9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfQUNUX09OX0VYRUNVVEUgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FDVF9PTl9FWEVDVVRFX0VYSVNUUyBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfQUNUX1NFQ1RJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FERF9QQVJBTVMgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0NPTU1FTlQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0NPTU1PTl9TRVRUSU5HUyBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfRElTUExBWV9SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfRVZFTlRfVEVYVCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTUFJTl9MRUFESU5HX1JFRiBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTkFNRV9JTl9TSU5HVUxBUiBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTkFNRV9JTl9TSU5HVUxBUl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTkFNRV9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTlVNRVJBVElPTl9NRVRIT0QgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfUkVRX0lTX0NPTlRST0wgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9JU19GSUxURVIgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9JU19MRUFESU5HIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfSVNfUkVRVUlSRUQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9OVU1CRVIgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9PTl9DSEFOR0UgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9PTl9DSEFOR0VfRVhJU1RTIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfT05fU0VMRUNUIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfT05fU0VMRUNUX0tJTkQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9TRUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9WSUVXX0NBUkQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1ZJRVdfQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfVklFV19DT01NRU5UIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9WSUVXX0lTX01BSU4gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1ZJRVdfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfVklFV19OQU1FX0xPQ0FMSVpFX0lEIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZFUkVOQ0VfVFlQRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfU1RBVEUgXCJcbiAgICArIFwiU1lTUkVRX1NUQVRcdTA0MTUgXCJcbiAgICArIFwiU1lTUkVRX1NZU1RFTV9TRVRUSU5HU19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVFfVFlQRSBcIlxuICAgICsgXCJTWVNSRVFfVU5JVCBcIlxuICAgICsgXCJTWVNSRVFfVU5JVF9JRCBcIlxuICAgICsgXCJTWVNSRVFfVVNFUl9HUk9VUFNfR1JPVVBfRlVMTF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSX0dST1VQU19HUk9VUF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSX0dST1VQU19HUk9VUF9TRVJWRVJfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfQUNDRVNTX1JJR0hUUyBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfQVVUSEVOVElDQVRJT04gXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX0NBVEVHT1JZIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19DT01QT05FTlQgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX0NPTVBPTkVOVF9VU0VSX0lTX1BVQkxJQyBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfRE9NQUlOIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19GVUxMX1VTRVJfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfR1JPVVAgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX0lTX01BSU5fU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19MT0dJTiBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfUkVGRVJFTkNFX1VTRVJfSVNfUFVCTElDIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEUgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEVfSU5GTyBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9QTFVHSU5fTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9QTFVHSU5fVkVSU0lPTiBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9TVEFURSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9TVUJKRUNUX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEVfVEhVTUJQUklOVCBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9ERUZBVUxUX0NFUlRJRklDQVRFIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX0dMT0JBTF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX0xPR0lOIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX01BSU5fU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX1dPUktfUlVMRVNfRk9MREVSX0lEIFwiO1xuXG4gIC8vIFJlc3VsdFxuICBjb25zdCByZXN1bHRfY29uc3RhbnRzID0gXCJSRVNVTFRfVkFSX05BTUUgUkVTVUxUX1ZBUl9OQU1FX0VORyBcIjtcblxuICAvLyBSdWxlIGlkZW50aWZpY2F0aW9uXG4gIGNvbnN0IHJ1bGVfaWRlbnRpZmljYXRpb25fY29uc3RhbnRzID1cbiAgICBcIkFVVE9fTlVNRVJBVElPTl9SVUxFX0lEIFwiXG4gICAgKyBcIkNBTlRfQ0hBTkdFX0lEX1JFUVVJU0lURV9SVUxFX0lEIFwiXG4gICAgKyBcIkNBTlRfQ0hBTkdFX09VUkZJUk1fUkVRVUlTSVRFX1JVTEVfSUQgXCJcbiAgICArIFwiQ0hFQ0tfQ0hBTkdJTkdfUkVGRVJFTkNFX1JFQ09SRF9VU0VfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19DT0RFX1JFUVVJU0lURV9SVUxFX0lEIFwiXG4gICAgKyBcIkNIRUNLX0RFTEVUSU5HX1JFRkVSRU5DRV9SRUNPUkRfVVNFX1JVTEVfSUQgXCJcbiAgICArIFwiQ0hFQ0tfRklMVFJBVEVSX0NIQU5HRVNfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19SRUNPUkRfSU5URVJWQUxfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19SRUZFUkVOQ0VfSU5URVJWQUxfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19SRVFVSVJFRF9EQVRBX0ZVTExORVNTX1JVTEVfSUQgXCJcbiAgICArIFwiQ0hFQ0tfUkVRVUlSRURfUkVRVUlTSVRFU19GVUxMTkVTU19SVUxFX0lEIFwiXG4gICAgKyBcIk1BS0VfUkVDT1JEX1VOUkFUSUZJRURfUlVMRV9JRCBcIlxuICAgICsgXCJSRVNUT1JFX0FVVE9fTlVNRVJBVElPTl9SVUxFX0lEIFwiXG4gICAgKyBcIlNFVF9GSVJNX0NPTlRFWFRfRlJPTV9SRUNPUkRfUlVMRV9JRCBcIlxuICAgICsgXCJTRVRfRklSU1RfUkVDT1JEX0lOX0xJU1RfRk9STV9SVUxFX0lEIFwiXG4gICAgKyBcIlNFVF9JRFNQU19WQUxVRV9SVUxFX0lEIFwiXG4gICAgKyBcIlNFVF9ORVhUX0NPREVfVkFMVUVfUlVMRV9JRCBcIlxuICAgICsgXCJTRVRfT1VSRklSTV9CT1VORFNfUlVMRV9JRCBcIlxuICAgICsgXCJTRVRfT1VSRklSTV9SRVFVSVNJVEVfUlVMRV9JRCBcIjtcblxuICAvLyBTY3JpcHQgYmxvY2sgcHJvcGVydGllc1xuICBjb25zdCBzY3JpcHRfYmxvY2tfcHJvcGVydGllc19jb25zdGFudHMgPVxuICAgIFwiU0NSSVBUX0JMT0NLX0FGVEVSX0ZJTklTSF9FVkVOVCBcIlxuICAgICsgXCJTQ1JJUFRfQkxPQ0tfQkVGT1JFX1NUQVJUX0VWRU5UIFwiXG4gICAgKyBcIlNDUklQVF9CTE9DS19FWEVDVVRJT05fUkVTVUxUU19QUk9QRVJUWSBcIlxuICAgICsgXCJTQ1JJUFRfQkxPQ0tfTkFNRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTQ1JJUFRfQkxPQ0tfU0NSSVBUX1BST1BFUlRZIFwiO1xuXG4gIC8vIFN1YnRhc2sgYmxvY2sgcHJvcGVydGllc1xuICBjb25zdCBzdWJ0YXNrX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzID1cbiAgICBcIlNVQlRBU0tfQkxPQ0tfQUJPUlRfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BU1NJR05fUEFSQU1TX0VWRU5UIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfQVRUQUNITUVOVFNfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfR1JPVVBfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0NSRUFURURfVEFTS19QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0NSRUFUSU9OX0VWRU5UIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19JTVBPUlRBTkNFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfSU5JVElBVE9SX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfSVNfUkVMQVRJVkVfQUJPUlRfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19JU19SRUxBVElWRV9ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0pPQlNfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX05BTUVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19QQVJBTExFTF9ST1VURV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1BFUkZPUk1FUlNfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19SRUxBVElWRV9BQk9SVF9ERUFETElORV9UWVBFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfUkVMQVRJVkVfREVBRExJTkVfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1JFUVVJUkVfU0lHTl9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1NUQU5EQVJEX1JPVVRFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfU1RBUlRfRVZFTlQgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19TVEVQX0NPTlRST0xfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19TVUJKRUNUX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfVEFTS19DT05UUk9MX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfVEVYVF9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1VOTE9DS19BVFRBQ0hNRU5UU19PTl9TVE9QX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfVVNFX1NUQU5EQVJEX1JPVVRFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfV0FJVF9GT1JfVEFTS19DT01QTEVURV9QUk9QRVJUWSBcIjtcblxuICAvLyBTeXN0ZW0gY29tcG9uZW50XG4gIGNvbnN0IHN5c3RlbV9jb21wb25lbnRfY29uc3RhbnRzID1cbiAgICBcIlNZU0NPTVBfQ09OVFJPTF9KT0JTIFwiXG4gICAgKyBcIlNZU0NPTVBfRk9MREVSUyBcIlxuICAgICsgXCJTWVNDT01QX0pPQlMgXCJcbiAgICArIFwiU1lTQ09NUF9OT1RJQ0VTIFwiXG4gICAgKyBcIlNZU0NPTVBfVEFTS1MgXCI7XG5cbiAgLy8gU3lzdGVtIGRpYWxvZ3NcbiAgY29uc3Qgc3lzdGVtX2RpYWxvZ3NfY29uc3RhbnRzID1cbiAgICBcIlNZU0RMR19DUkVBVEVfRURPQ1VNRU5UIFwiXG4gICAgKyBcIlNZU0RMR19DUkVBVEVfRURPQ1VNRU5UX1ZFUlNJT04gXCJcbiAgICArIFwiU1lTRExHX0NVUlJFTlRfUEVSSU9EIFwiXG4gICAgKyBcIlNZU0RMR19FRElUX0ZVTkNUSU9OX0hFTFAgXCJcbiAgICArIFwiU1lTRExHX0VET0NVTUVOVF9LSU5EU19GT1JfVEVNUExBVEUgXCJcbiAgICArIFwiU1lTRExHX0VYUE9SVF9NVUxUSVBMRV9FRE9DVU1FTlRTIFwiXG4gICAgKyBcIlNZU0RMR19FWFBPUlRfU0lOR0xFX0VET0NVTUVOVCBcIlxuICAgICsgXCJTWVNETEdfSU1QT1JUX0VET0NVTUVOVCBcIlxuICAgICsgXCJTWVNETEdfTVVMVElQTEVfU0VMRUNUIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9BQ0NFU1NfUklHSFRTIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9ERUZBVUxUX1JJR0hUUyBcIlxuICAgICsgXCJTWVNETEdfU0VUVVBfRklMVEVSX0NPTkRJVElPTiBcIlxuICAgICsgXCJTWVNETEdfU0VUVVBfU0lHTl9SSUdIVFMgXCJcbiAgICArIFwiU1lTRExHX1NFVFVQX1RBU0tfT0JTRVJWRVJTIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9UQVNLX1JPVVRFIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9VU0VSU19MSVNUIFwiXG4gICAgKyBcIlNZU0RMR19TSUdOX0VET0NVTUVOVCBcIlxuICAgICsgXCJTWVNETEdfU0lHTl9NVUxUSVBMRV9FRE9DVU1FTlRTIFwiO1xuXG4gIC8vIFN5c3RlbSByZWZlcmVuY2UgbmFtZXNcbiAgY29uc3Qgc3lzdGVtX3JlZmVyZW5jZV9uYW1lc19jb25zdGFudHMgPVxuICAgIFwiU1lTUkVGX0FDQ0VTU19SSUdIVFNfVFlQRVMgXCJcbiAgICArIFwiU1lTUkVGX0FETUlOSVNUUkFUSU9OX0hJU1RPUlkgXCJcbiAgICArIFwiU1lTUkVGX0FMTF9BVkFJTEFCTEVfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQUxMX0FWQUlMQUJMRV9QUklWSUxFR0VTIFwiXG4gICAgKyBcIlNZU1JFRl9BTExfUkVQTElDQVRJTkdfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQVZBSUxBQkxFX0RFVkVMT1BFUlNfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQ0FMRU5EQVJfRVZFTlRTIFwiXG4gICAgKyBcIlNZU1JFRl9DT01QT05FTlRfVE9LRU5fSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfQ09NUE9ORU5UX1RPS0VOUyBcIlxuICAgICsgXCJTWVNSRUZfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQ09OU1RBTlRTIFwiXG4gICAgKyBcIlNZU1JFRl9EQVRBX1JFQ0VJVkVfUFJPVE9DT0wgXCJcbiAgICArIFwiU1lTUkVGX0RBVEFfU0VORF9QUk9UT0NPTCBcIlxuICAgICsgXCJTWVNSRUZfRElBTE9HUyBcIlxuICAgICsgXCJTWVNSRUZfRElBTE9HU19SRVFVSVNJVEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRElUT1JTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DX0NBUkRTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DX1RZUEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfQ0FSRF9SRVFVSVNJVEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfQ0FSRF9UWVBFUyBcIlxuICAgICsgXCJTWVNSRUZfRURPQ1VNRU5UX0NBUkRfVFlQRVNfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfQ0FSRFMgXCJcbiAgICArIFwiU1lTUkVGX0VET0NVTUVOVF9ISVNUT1JZIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfS0lORFMgXCJcbiAgICArIFwiU1lTUkVGX0VET0NVTUVOVF9SRVFVSVNJVEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfU0lHTkFUVVJFUyBcIlxuICAgICsgXCJTWVNSRUZfRURPQ1VNRU5UX1RFTVBMQVRFUyBcIlxuICAgICsgXCJTWVNSRUZfRURPQ1VNRU5UX1RFWFRfU1RPUkFHRVMgXCJcbiAgICArIFwiU1lTUkVGX0VET0NVTUVOVF9WSUVXUyBcIlxuICAgICsgXCJTWVNSRUZfRklMVEVSRVJfU0VUVVBfQ09ORkxJQ1RTIFwiXG4gICAgKyBcIlNZU1JFRl9GSUxUUkFURVJfU0VUVElOR19DT05GTElDVFMgXCJcbiAgICArIFwiU1lTUkVGX0ZPTERFUl9ISVNUT1JZIFwiXG4gICAgKyBcIlNZU1JFRl9GT0xERVJTIFwiXG4gICAgKyBcIlNZU1JFRl9GVU5DVElPTl9HUk9VUFMgXCJcbiAgICArIFwiU1lTUkVGX0ZVTkNUSU9OX1BBUkFNUyBcIlxuICAgICsgXCJTWVNSRUZfRlVOQ1RJT05TIFwiXG4gICAgKyBcIlNZU1JFRl9KT0JfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfTElOS1MgXCJcbiAgICArIFwiU1lTUkVGX0xPQ0FMSVpBVElPTl9ESUNUSU9OQVJZIFwiXG4gICAgKyBcIlNZU1JFRl9MT0NBTElaQVRJT05fTEFOR1VBR0VTIFwiXG4gICAgKyBcIlNZU1JFRl9NT0RVTEVTIFwiXG4gICAgKyBcIlNZU1JFRl9QUklWSUxFR0VTIFwiXG4gICAgKyBcIlNZU1JFRl9SRUNPUkRfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfUkVGRVJFTkNFX1JFUVVJU0lURVMgXCJcbiAgICArIFwiU1lTUkVGX1JFRkVSRU5DRV9UWVBFX1ZJRVdTIFwiXG4gICAgKyBcIlNZU1JFRl9SRUZFUkVOQ0VfVFlQRVMgXCJcbiAgICArIFwiU1lTUkVGX1JFRkVSRU5DRVMgXCJcbiAgICArIFwiU1lTUkVGX1JFRkVSRU5DRVNfUkVRVUlTSVRFUyBcIlxuICAgICsgXCJTWVNSRUZfUkVNT1RFX1NFUlZFUlMgXCJcbiAgICArIFwiU1lTUkVGX1JFUExJQ0FUSU9OX1NFU1NJT05TX0xPRyBcIlxuICAgICsgXCJTWVNSRUZfUkVQTElDQVRJT05fU0VTU0lPTlNfUFJPVE9DT0wgXCJcbiAgICArIFwiU1lTUkVGX1JFUE9SVFMgXCJcbiAgICArIFwiU1lTUkVGX1JPTEVTIFwiXG4gICAgKyBcIlNZU1JFRl9ST1VURV9CTE9DS19HUk9VUFMgXCJcbiAgICArIFwiU1lTUkVGX1JPVVRFX0JMT0NLUyBcIlxuICAgICsgXCJTWVNSRUZfU0NSSVBUUyBcIlxuICAgICsgXCJTWVNSRUZfU0VBUkNIRVMgXCJcbiAgICArIFwiU1lTUkVGX1NFUlZFUl9FVkVOVFMgXCJcbiAgICArIFwiU1lTUkVGX1NFUlZFUl9FVkVOVFNfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfU1RBTkRBUkRfUk9VVEVfR1JPVVBTIFwiXG4gICAgKyBcIlNZU1JFRl9TVEFOREFSRF9ST1VURVMgXCJcbiAgICArIFwiU1lTUkVGX1NUQVRVU0VTIFwiXG4gICAgKyBcIlNZU1JFRl9TWVNURU1fU0VUVElOR1MgXCJcbiAgICArIFwiU1lTUkVGX1RBU0tfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfVEFTS19LSU5EX0dST1VQUyBcIlxuICAgICsgXCJTWVNSRUZfVEFTS19LSU5EUyBcIlxuICAgICsgXCJTWVNSRUZfVEFTS19SSUdIVFMgXCJcbiAgICArIFwiU1lTUkVGX1RBU0tfU0lHTkFUVVJFUyBcIlxuICAgICsgXCJTWVNSRUZfVEFTS1MgXCJcbiAgICArIFwiU1lTUkVGX1VOSVRTIFwiXG4gICAgKyBcIlNZU1JFRl9VU0VSX0dST1VQUyBcIlxuICAgICsgXCJTWVNSRUZfVVNFUl9HUk9VUFNfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFRl9VU0VSX1NVQlNUSVRVVElPTiBcIlxuICAgICsgXCJTWVNSRUZfVVNFUlMgXCJcbiAgICArIFwiU1lTUkVGX1VTRVJTX1JFRkVSRU5DRSBcIlxuICAgICsgXCJTWVNSRUZfVklFV0VSUyBcIlxuICAgICsgXCJTWVNSRUZfV09SS0lOR19USU1FX0NBTEVOREFSUyBcIjtcblxuICAvLyBUYWJsZSBuYW1lXG4gIGNvbnN0IHRhYmxlX25hbWVfY29uc3RhbnRzID1cbiAgICBcIkFDQ0VTU19SSUdIVFNfVEFCTEVfTkFNRSBcIlxuICAgICsgXCJFRE1TX0FDQ0VTU19UQUJMRV9OQU1FIFwiXG4gICAgKyBcIkVET0NfVFlQRVNfVEFCTEVfTkFNRSBcIjtcblxuICAvLyBUZXN0XG4gIGNvbnN0IHRlc3RfY29uc3RhbnRzID1cbiAgICBcIlRFU1RfREVWX0RCX05BTUUgXCJcbiAgICArIFwiVEVTVF9ERVZfU1lTVEVNX0NPREUgXCJcbiAgICArIFwiVEVTVF9FRE1TX0RCX05BTUUgXCJcbiAgICArIFwiVEVTVF9FRE1TX01BSU5fQ09ERSBcIlxuICAgICsgXCJURVNUX0VETVNfTUFJTl9EQl9OQU1FIFwiXG4gICAgKyBcIlRFU1RfRURNU19TRUNPTkRfQ09ERSBcIlxuICAgICsgXCJURVNUX0VETVNfU0VDT05EX0RCX05BTUUgXCJcbiAgICArIFwiVEVTVF9FRE1TX1NZU1RFTV9DT0RFIFwiXG4gICAgKyBcIlRFU1RfSVNCNV9NQUlOX0NPREUgXCJcbiAgICArIFwiVEVTVF9JU0I1X1NFQ09ORF9DT0RFIFwiXG4gICAgKyBcIlRFU1RfU1FMX1NFUlZFUl8yMDA1X05BTUUgXCJcbiAgICArIFwiVEVTVF9TUUxfU0VSVkVSX05BTUUgXCI7XG5cbiAgLy8gVXNpbmcgdGhlIGRpYWxvZyB3aW5kb3dzXG4gIGNvbnN0IHVzaW5nX3RoZV9kaWFsb2dfd2luZG93c19jb25zdGFudHMgPVxuICAgIFwiQVRURU5USU9OX0NBUFRJT04gXCJcbiAgICArIFwiY2JzQ29tbWFuZExpbmtzIFwiXG4gICAgKyBcImNic0RlZmF1bHQgXCJcbiAgICArIFwiQ09ORklSTUFUSU9OX0NBUFRJT04gXCJcbiAgICArIFwiRVJST1JfQ0FQVElPTiBcIlxuICAgICsgXCJJTkZPUk1BVElPTl9DQVBUSU9OIFwiXG4gICAgKyBcIm1yQ2FuY2VsIFwiXG4gICAgKyBcIm1yT2sgXCI7XG5cbiAgLy8gVXNpbmcgdGhlIGRvY3VtZW50XG4gIGNvbnN0IHVzaW5nX3RoZV9kb2N1bWVudF9jb25zdGFudHMgPVxuICAgIFwiRURPQ19WRVJTSU9OX0FDVElWRV9TVEFHRV9DT0RFIFwiXG4gICAgKyBcIkVET0NfVkVSU0lPTl9ERVNJR05fU1RBR0VfQ09ERSBcIlxuICAgICsgXCJFRE9DX1ZFUlNJT05fT0JTT0xFVEVfU1RBR0VfQ09ERSBcIjtcblxuICAvLyBVc2luZyB0aGUgRUEgYW5kIGVuY3J5cHRpb25cbiAgY29uc3QgdXNpbmdfdGhlX0VBX2FuZF9lbmNyeXB0aW9uX2NvbnN0YW50cyA9XG4gICAgXCJjcERhdGFFbmNpcGhlcm1lbnRFbmFibGVkIFwiXG4gICAgKyBcImNwRGlnaXRhbFNpZ25hdHVyZUVuYWJsZWQgXCJcbiAgICArIFwiY3BJRCBcIlxuICAgICsgXCJjcElzc3VlciBcIlxuICAgICsgXCJjcFBsdWdpblZlcnNpb24gXCJcbiAgICArIFwiY3BTZXJpYWwgXCJcbiAgICArIFwiY3BTdWJqZWN0TmFtZSBcIlxuICAgICsgXCJjcFN1YmpTaW1wbGVOYW1lIFwiXG4gICAgKyBcImNwVmFsaWRGcm9tRGF0ZSBcIlxuICAgICsgXCJjcFZhbGlkVG9EYXRlIFwiO1xuXG4gIC8vIFVzaW5nIHRoZSBJU0JMLWVkaXRvclxuICBjb25zdCB1c2luZ190aGVfSVNCTF9lZGl0b3JfY29uc3RhbnRzID1cbiAgICBcIklTQkxfU1lOVEFYIFwiICsgXCJOT19TWU5UQVggXCIgKyBcIlhNTF9TWU5UQVggXCI7XG5cbiAgLy8gV2FpdCBibG9jayBwcm9wZXJ0aWVzXG4gIGNvbnN0IHdhaXRfYmxvY2tfcHJvcGVydGllc19jb25zdGFudHMgPVxuICAgIFwiV0FJVF9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgXCJcbiAgICArIFwiV0FJVF9CTE9DS19CRUZPUkVfU1RBUlRfRVZFTlQgXCJcbiAgICArIFwiV0FJVF9CTE9DS19ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJXQUlUX0JMT0NLX0lTX1JFTEFUSVZFX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIldBSVRfQkxPQ0tfTkFNRV9QUk9QRVJUWSBcIlxuICAgICsgXCJXQUlUX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCI7XG5cbiAgLy8gU1lTUkVTIENvbW1vblxuICBjb25zdCBzeXNyZXNfY29tbW9uX2NvbnN0YW50cyA9XG4gICAgXCJTWVNSRVNfQ09NTU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVCBcIlxuICAgICsgXCJTWVNSRVNfTUJGVU5DIFwiXG4gICAgKyBcIlNZU1JFU19TQkRBVEEgXCJcbiAgICArIFwiU1lTUkVTX1NCR1VJIFwiXG4gICAgKyBcIlNZU1JFU19TQklOVEYgXCJcbiAgICArIFwiU1lTUkVTX1NCUkVGRFNDIFwiXG4gICAgKyBcIlNZU1JFU19TUUxFUlJPUlMgXCJcbiAgICArIFwiU1lTUkVTX1NZU0NPTVAgXCI7XG5cbiAgLy8gXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDRCID09PiBidWlsdF9pblxuICBjb25zdCBDT05TVEFOVFMgPVxuICAgIHN5c3Jlc19jb25zdGFudHNcbiAgICArIGJhc2VfY29uc3RhbnRzXG4gICAgKyBiYXNlX2dyb3VwX25hbWVfY29uc3RhbnRzXG4gICAgKyBkZWNpc2lvbl9ibG9ja19wcm9wZXJ0aWVzX2NvbnN0YW50c1xuICAgICsgZmlsZV9leHRlbnNpb25fY29uc3RhbnRzXG4gICAgKyBqb2JfYmxvY2tfcHJvcGVydGllc19jb25zdGFudHNcbiAgICArIGxhbmd1YWdlX2NvZGVfY29uc3RhbnRzXG4gICAgKyBsYXVuY2hpbmdfZXh0ZXJuYWxfYXBwbGljYXRpb25zX2NvbnN0YW50c1xuICAgICsgbGlua19raW5kX2NvbnN0YW50c1xuICAgICsgbG9ja190eXBlX2NvbnN0YW50c1xuICAgICsgbW9uaXRvcl9ibG9ja19wcm9wZXJ0aWVzX2NvbnN0YW50c1xuICAgICsgbm90aWNlX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBvYmplY3RfZXZlbnRzX2NvbnN0YW50c1xuICAgICsgb2JqZWN0X3BhcmFtc19jb25zdGFudHNcbiAgICArIG90aGVyX2NvbnN0YW50c1xuICAgICsgcHJpdmlsZWdlc19jb25zdGFudHNcbiAgICArIHBzZXVkb3JlZmVyZW5jZV9jb2RlX2NvbnN0YW50c1xuICAgICsgcmVxdWlzaXRlX0lTQkNlcnRpZmljYXRlVHlwZV92YWx1ZXNfY29uc3RhbnRzXG4gICAgKyByZXF1aXNpdGVfSVNCRURvY1N0b3JhZ2VUeXBlX3ZhbHVlc19jb25zdGFudHNcbiAgICArIHJlcXVpc2l0ZV9jb21wVHlwZTJfdmFsdWVzX2NvbnN0YW50c1xuICAgICsgcmVxdWlzaXRlX25hbWVfY29uc3RhbnRzXG4gICAgKyByZXN1bHRfY29uc3RhbnRzXG4gICAgKyBydWxlX2lkZW50aWZpY2F0aW9uX2NvbnN0YW50c1xuICAgICsgc2NyaXB0X2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBzdWJ0YXNrX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBzeXN0ZW1fY29tcG9uZW50X2NvbnN0YW50c1xuICAgICsgc3lzdGVtX2RpYWxvZ3NfY29uc3RhbnRzXG4gICAgKyBzeXN0ZW1fcmVmZXJlbmNlX25hbWVzX2NvbnN0YW50c1xuICAgICsgdGFibGVfbmFtZV9jb25zdGFudHNcbiAgICArIHRlc3RfY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfZGlhbG9nX3dpbmRvd3NfY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfZG9jdW1lbnRfY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfRUFfYW5kX2VuY3J5cHRpb25fY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfSVNCTF9lZGl0b3JfY29uc3RhbnRzXG4gICAgKyB3YWl0X2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBzeXNyZXNfY29tbW9uX2NvbnN0YW50cztcblxuICAvLyBlbnVtIFRBY2NvdW50VHlwZVxuICBjb25zdCBUQWNjb3VudFR5cGUgPSBcImF0VXNlciBhdEdyb3VwIGF0Um9sZSBcIjtcblxuICAvLyBlbnVtIFRBY3Rpb25FbmFibGVkTW9kZVxuICBjb25zdCBUQWN0aW9uRW5hYmxlZE1vZGUgPVxuICAgIFwiYWVtRW5hYmxlZEFsd2F5cyBcIlxuICAgICsgXCJhZW1EaXNhYmxlZEFsd2F5cyBcIlxuICAgICsgXCJhZW1FbmFibGVkT25Ccm93c2UgXCJcbiAgICArIFwiYWVtRW5hYmxlZE9uRWRpdCBcIlxuICAgICsgXCJhZW1EaXNhYmxlZE9uQnJvd3NlRW1wdHkgXCI7XG5cbiAgLy8gZW51bSBUQWRkUG9zaXRpb25cbiAgY29uc3QgVEFkZFBvc2l0aW9uID0gXCJhcEJlZ2luIGFwRW5kIFwiO1xuXG4gIC8vIGVudW0gVEFsaWdubWVudFxuICBjb25zdCBUQWxpZ25tZW50ID0gXCJhbExlZnQgYWxSaWdodCBcIjtcblxuICAvLyBlbnVtIFRBcmVhU2hvd01vZGVcbiAgY29uc3QgVEFyZWFTaG93TW9kZSA9XG4gICAgXCJhc21OZXZlciBcIlxuICAgICsgXCJhc21Ob0J1dEN1c3RvbWl6ZSBcIlxuICAgICsgXCJhc21Bc0xhc3RUaW1lIFwiXG4gICAgKyBcImFzbVllc0J1dEN1c3RvbWl6ZSBcIlxuICAgICsgXCJhc21BbHdheXMgXCI7XG5cbiAgLy8gZW51bSBUQ2VydGlmaWNhdGVJbnZhbGlkYXRpb25SZWFzb25cbiAgY29uc3QgVENlcnRpZmljYXRlSW52YWxpZGF0aW9uUmVhc29uID0gXCJjaXJDb21tb24gY2lyUmV2b2tlZCBcIjtcblxuICAvLyBlbnVtIFRDZXJ0aWZpY2F0ZVR5cGVcbiAgY29uc3QgVENlcnRpZmljYXRlVHlwZSA9IFwiY3RTaWduYXR1cmUgY3RFbmNvZGUgY3RTaWduYXR1cmVFbmNvZGUgXCI7XG5cbiAgLy8gZW51bSBUQ2hlY2tMaXN0Qm94SXRlbVN0YXRlXG4gIGNvbnN0IFRDaGVja0xpc3RCb3hJdGVtU3RhdGUgPSBcImNsYlVuY2hlY2tlZCBjbGJDaGVja2VkIGNsYkdyYXllZCBcIjtcblxuICAvLyBlbnVtIFRDbG9zZU9uRXNjXG4gIGNvbnN0IFRDbG9zZU9uRXNjID0gXCJjZUlTQiBjZUFsd2F5cyBjZU5ldmVyIFwiO1xuXG4gIC8vIGVudW0gVENvbXBUeXBlXG4gIGNvbnN0IFRDb21wVHlwZSA9XG4gICAgXCJjdERvY3VtZW50IFwiXG4gICAgKyBcImN0UmVmZXJlbmNlIFwiXG4gICAgKyBcImN0U2NyaXB0IFwiXG4gICAgKyBcImN0VW5rbm93biBcIlxuICAgICsgXCJjdFJlcG9ydCBcIlxuICAgICsgXCJjdERpYWxvZyBcIlxuICAgICsgXCJjdEZ1bmN0aW9uIFwiXG4gICAgKyBcImN0Rm9sZGVyIFwiXG4gICAgKyBcImN0RURvY3VtZW50IFwiXG4gICAgKyBcImN0VGFzayBcIlxuICAgICsgXCJjdEpvYiBcIlxuICAgICsgXCJjdE5vdGljZSBcIlxuICAgICsgXCJjdENvbnRyb2xKb2IgXCI7XG5cbiAgLy8gZW51bSBUQ29uZGl0aW9uRm9ybWF0XG4gIGNvbnN0IFRDb25kaXRpb25Gb3JtYXQgPSBcImNmSW50ZXJuYWwgY2ZEaXNwbGF5IFwiO1xuXG4gIC8vIGVudW0gVENvbm5lY3Rpb25JbnRlbnRcbiAgY29uc3QgVENvbm5lY3Rpb25JbnRlbnQgPSBcImNpVW5zcGVjaWZpZWQgY2lXcml0ZSBjaVJlYWQgXCI7XG5cbiAgLy8gZW51bSBUQ29udGVudEtpbmRcbiAgY29uc3QgVENvbnRlbnRLaW5kID1cbiAgICBcImNrRm9sZGVyIFwiXG4gICAgKyBcImNrRURvY3VtZW50IFwiXG4gICAgKyBcImNrVGFzayBcIlxuICAgICsgXCJja0pvYiBcIlxuICAgICsgXCJja0NvbXBvbmVudFRva2VuIFwiXG4gICAgKyBcImNrQW55IFwiXG4gICAgKyBcImNrUmVmZXJlbmNlIFwiXG4gICAgKyBcImNrU2NyaXB0IFwiXG4gICAgKyBcImNrUmVwb3J0IFwiXG4gICAgKyBcImNrRGlhbG9nIFwiO1xuXG4gIC8vIGVudW0gVENvbnRyb2xUeXBlXG4gIGNvbnN0IFRDb250cm9sVHlwZSA9XG4gICAgXCJjdElTQkxFZGl0b3IgXCJcbiAgICArIFwiY3RCZXZlbCBcIlxuICAgICsgXCJjdEJ1dHRvbiBcIlxuICAgICsgXCJjdENoZWNrTGlzdEJveCBcIlxuICAgICsgXCJjdENvbWJvQm94IFwiXG4gICAgKyBcImN0Q29tYm9FZGl0IFwiXG4gICAgKyBcImN0R3JpZCBcIlxuICAgICsgXCJjdERCQ2hlY2tCb3ggXCJcbiAgICArIFwiY3REQkNvbWJvQm94IFwiXG4gICAgKyBcImN0REJFZGl0IFwiXG4gICAgKyBcImN0REJFbGxpcHNpcyBcIlxuICAgICsgXCJjdERCTWVtbyBcIlxuICAgICsgXCJjdERCTmF2aWdhdG9yIFwiXG4gICAgKyBcImN0REJSYWRpb0dyb3VwIFwiXG4gICAgKyBcImN0REJTdGF0dXNMYWJlbCBcIlxuICAgICsgXCJjdEVkaXQgXCJcbiAgICArIFwiY3RHcm91cEJveCBcIlxuICAgICsgXCJjdElucGxhY2VIaW50IFwiXG4gICAgKyBcImN0TWVtbyBcIlxuICAgICsgXCJjdFBhbmVsIFwiXG4gICAgKyBcImN0TGlzdEJveCBcIlxuICAgICsgXCJjdFJhZGlvQnV0dG9uIFwiXG4gICAgKyBcImN0UmljaEVkaXQgXCJcbiAgICArIFwiY3RUYWJTaGVldCBcIlxuICAgICsgXCJjdFdlYkJyb3dzZXIgXCJcbiAgICArIFwiY3RJbWFnZSBcIlxuICAgICsgXCJjdEh5cGVyTGluayBcIlxuICAgICsgXCJjdExhYmVsIFwiXG4gICAgKyBcImN0REJNdWx0aUVsbGlwc2lzIFwiXG4gICAgKyBcImN0UmliYm9uIFwiXG4gICAgKyBcImN0UmljaFZpZXcgXCJcbiAgICArIFwiY3RJbm5lclBhbmVsIFwiXG4gICAgKyBcImN0UGFuZWxHcm91cCBcIlxuICAgICsgXCJjdEJpdEJ1dHRvbiBcIjtcblxuICAvLyBlbnVtIFRDcml0ZXJpb25Db250ZW50VHlwZVxuICBjb25zdCBUQ3JpdGVyaW9uQ29udGVudFR5cGUgPVxuICAgIFwiY2N0RGF0ZSBcIlxuICAgICsgXCJjY3RJbnRlZ2VyIFwiXG4gICAgKyBcImNjdE51bWVyaWMgXCJcbiAgICArIFwiY2N0UGljayBcIlxuICAgICsgXCJjY3RSZWZlcmVuY2UgXCJcbiAgICArIFwiY2N0U3RyaW5nIFwiXG4gICAgKyBcImNjdFRleHQgXCI7XG5cbiAgLy8gZW51bSBUQ3VsdHVyZVR5cGVcbiAgY29uc3QgVEN1bHR1cmVUeXBlID0gXCJjbHRJbnRlcm5hbCBjbHRQcmltYXJ5IGNsdEdVSSBcIjtcblxuICAvLyBlbnVtIFREYXRhU2V0RXZlbnRUeXBlXG4gIGNvbnN0IFREYXRhU2V0RXZlbnRUeXBlID1cbiAgICBcImRzZUJlZm9yZU9wZW4gXCJcbiAgICArIFwiZHNlQWZ0ZXJPcGVuIFwiXG4gICAgKyBcImRzZUJlZm9yZUNsb3NlIFwiXG4gICAgKyBcImRzZUFmdGVyQ2xvc2UgXCJcbiAgICArIFwiZHNlT25WYWxpZERlbGV0ZSBcIlxuICAgICsgXCJkc2VCZWZvcmVEZWxldGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJEZWxldGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJEZWxldGVPdXRPZlRyYW5zYWN0aW9uIFwiXG4gICAgKyBcImRzZU9uRGVsZXRlRXJyb3IgXCJcbiAgICArIFwiZHNlQmVmb3JlSW5zZXJ0IFwiXG4gICAgKyBcImRzZUFmdGVySW5zZXJ0IFwiXG4gICAgKyBcImRzZU9uVmFsaWRVcGRhdGUgXCJcbiAgICArIFwiZHNlQmVmb3JlVXBkYXRlIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlUmF0aWZpZWRSZWNvcmQgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGVPdXRPZlRyYW5zYWN0aW9uIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlRXJyb3IgXCJcbiAgICArIFwiZHNlQWZ0ZXJTY3JvbGwgXCJcbiAgICArIFwiZHNlT25PcGVuUmVjb3JkIFwiXG4gICAgKyBcImRzZU9uQ2xvc2VSZWNvcmQgXCJcbiAgICArIFwiZHNlQmVmb3JlQ2FuY2VsIFwiXG4gICAgKyBcImRzZUFmdGVyQ2FuY2VsIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlRGVhZGxvY2tFcnJvciBcIlxuICAgICsgXCJkc2VCZWZvcmVEZXRhaWxVcGRhdGUgXCJcbiAgICArIFwiZHNlT25QcmVwYXJlVXBkYXRlIFwiXG4gICAgKyBcImRzZU9uQW55UmVxdWlzaXRlQ2hhbmdlIFwiO1xuXG4gIC8vIGVudW0gVERhdGFTZXRTdGF0ZVxuICBjb25zdCBURGF0YVNldFN0YXRlID0gXCJkc3NFZGl0IGRzc0luc2VydCBkc3NCcm93c2UgZHNzSW5BY3RpdmUgXCI7XG5cbiAgLy8gZW51bSBURGF0ZUZvcm1hdFR5cGVcbiAgY29uc3QgVERhdGVGb3JtYXRUeXBlID0gXCJkZnREYXRlIGRmdFNob3J0RGF0ZSBkZnREYXRlVGltZSBkZnRUaW1lU3RhbXAgXCI7XG5cbiAgLy8gZW51bSBURGF0ZU9mZnNldFR5cGVcbiAgY29uc3QgVERhdGVPZmZzZXRUeXBlID0gXCJkb3REYXlzIGRvdEhvdXJzIGRvdE1pbnV0ZXMgZG90U2Vjb25kcyBcIjtcblxuICAvLyBlbnVtIFREYXRlVGltZUtpbmRcbiAgY29uc3QgVERhdGVUaW1lS2luZCA9IFwiZHRrbmRMb2NhbCBkdGtuZFVUQyBcIjtcblxuICAvLyBlbnVtIFREZWFBY2Nlc3NSaWdodHNcbiAgY29uc3QgVERlYUFjY2Vzc1JpZ2h0cyA9IFwiYXJOb25lIGFyVmlldyBhckVkaXQgYXJGdWxsIFwiO1xuXG4gIC8vIGVudW0gVERvY3VtZW50RGVmYXVsdEFjdGlvblxuICBjb25zdCBURG9jdW1lbnREZWZhdWx0QWN0aW9uID0gXCJkZGFWaWV3IGRkYUVkaXQgXCI7XG5cbiAgLy8gZW51bSBURWRpdE1vZGVcbiAgY29uc3QgVEVkaXRNb2RlID1cbiAgICBcImVtTG9jayBcIlxuICAgICsgXCJlbUVkaXQgXCJcbiAgICArIFwiZW1TaWduIFwiXG4gICAgKyBcImVtRXhwb3J0V2l0aExvY2sgXCJcbiAgICArIFwiZW1JbXBvcnRXaXRoVW5sb2NrIFwiXG4gICAgKyBcImVtQ2hhbmdlVmVyc2lvbk5vdGUgXCJcbiAgICArIFwiZW1PcGVuRm9yTW9kaWZ5IFwiXG4gICAgKyBcImVtQ2hhbmdlTGlmZVN0YWdlIFwiXG4gICAgKyBcImVtRGVsZXRlIFwiXG4gICAgKyBcImVtQ3JlYXRlVmVyc2lvbiBcIlxuICAgICsgXCJlbUltcG9ydCBcIlxuICAgICsgXCJlbVVubG9ja0V4cG9ydGVkV2l0aExvY2sgXCJcbiAgICArIFwiZW1TdGFydCBcIlxuICAgICsgXCJlbUFib3J0IFwiXG4gICAgKyBcImVtUmVJbml0IFwiXG4gICAgKyBcImVtTWFya0FzUmVhZGVkIFwiXG4gICAgKyBcImVtTWFya0FzVW5yZWFkZWQgXCJcbiAgICArIFwiZW1QZXJmb3JtIFwiXG4gICAgKyBcImVtQWNjZXB0IFwiXG4gICAgKyBcImVtUmVzdW1lIFwiXG4gICAgKyBcImVtQ2hhbmdlUmlnaHRzIFwiXG4gICAgKyBcImVtRWRpdFJvdXRlIFwiXG4gICAgKyBcImVtRWRpdE9ic2VydmVyIFwiXG4gICAgKyBcImVtUmVjb3ZlcnlGcm9tTG9jYWxDb3B5IFwiXG4gICAgKyBcImVtQ2hhbmdlV29ya0FjY2Vzc1R5cGUgXCJcbiAgICArIFwiZW1DaGFuZ2VFbmNvZGVUeXBlVG9DZXJ0aWZpY2F0ZSBcIlxuICAgICsgXCJlbUNoYW5nZUVuY29kZVR5cGVUb1Bhc3N3b3JkIFwiXG4gICAgKyBcImVtQ2hhbmdlRW5jb2RlVHlwZVRvTm9uZSBcIlxuICAgICsgXCJlbUNoYW5nZUVuY29kZVR5cGVUb0NlcnRpZmljYXRlUGFzc3dvcmQgXCJcbiAgICArIFwiZW1DaGFuZ2VTdGFuZGFyZFJvdXRlIFwiXG4gICAgKyBcImVtR2V0VGV4dCBcIlxuICAgICsgXCJlbU9wZW5Gb3JWaWV3IFwiXG4gICAgKyBcImVtTW92ZVRvU3RvcmFnZSBcIlxuICAgICsgXCJlbUNyZWF0ZU9iamVjdCBcIlxuICAgICsgXCJlbUNoYW5nZVZlcnNpb25IaWRkZW4gXCJcbiAgICArIFwiZW1EZWxldGVWZXJzaW9uIFwiXG4gICAgKyBcImVtQ2hhbmdlTGlmZUN5Y2xlU3RhZ2UgXCJcbiAgICArIFwiZW1BcHByb3ZpbmdTaWduIFwiXG4gICAgKyBcImVtRXhwb3J0IFwiXG4gICAgKyBcImVtQ29udGludWUgXCJcbiAgICArIFwiZW1Mb2NrRnJvbUVkaXQgXCJcbiAgICArIFwiZW1VbkxvY2tGb3JFZGl0IFwiXG4gICAgKyBcImVtTG9ja0ZvclNlcnZlciBcIlxuICAgICsgXCJlbVVubG9ja0Zyb21TZXJ2ZXIgXCJcbiAgICArIFwiZW1EZWxlZ2F0ZUFjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJlbVJlRW5jb2RlIFwiO1xuXG4gIC8vIGVudW0gVEVkaXRvckNsb3NlT2JzZXJ2VHlwZVxuICBjb25zdCBURWRpdG9yQ2xvc2VPYnNlcnZUeXBlID0gXCJlY290RmlsZSBlY290UHJvY2VzcyBcIjtcblxuICAvLyBlbnVtIFRFZG1zQXBwbGljYXRpb25BY3Rpb25cbiAgY29uc3QgVEVkbXNBcHBsaWNhdGlvbkFjdGlvbiA9IFwiZWFHZXQgZWFDb3B5IGVhQ3JlYXRlIGVhQ3JlYXRlU3RhbmRhcmRSb3V0ZSBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRMb2NrVHlwZVxuICBjb25zdCBURURvY3VtZW50TG9ja1R5cGUgPSBcImVkbHRBbGwgZWRsdE5vdGhpbmcgZWRsdFF1ZXJ5IFwiO1xuXG4gIC8vIGVudW0gVEVEb2N1bWVudFN0ZXBTaG93TW9kZVxuICBjb25zdCBURURvY3VtZW50U3RlcFNob3dNb2RlID0gXCJlc3NtVGV4dCBlc3NtQ2FyZCBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRTdGVwVmVyc2lvblR5cGVcbiAgY29uc3QgVEVEb2N1bWVudFN0ZXBWZXJzaW9uVHlwZSA9IFwiZXN2dExhc3QgZXN2dExhc3RBY3RpdmUgZXN2dFNwZWNpZmllZCBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRTdG9yYWdlRnVuY3Rpb25cbiAgY29uc3QgVEVEb2N1bWVudFN0b3JhZ2VGdW5jdGlvbiA9IFwiZWRzZkV4ZWN1dGl2ZSBlZHNmQXJjaGl2ZSBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRTdG9yYWdlVHlwZVxuICBjb25zdCBURURvY3VtZW50U3RvcmFnZVR5cGUgPSBcImVkc3RTUUxTZXJ2ZXIgZWRzdEZpbGUgXCI7XG5cbiAgLy8gZW51bSBURURvY3VtZW50VmVyc2lvblNvdXJjZVR5cGVcbiAgY29uc3QgVEVEb2N1bWVudFZlcnNpb25Tb3VyY2VUeXBlID1cbiAgICBcImVkdnN0Tm9uZSBlZHZzdEVEb2N1bWVudFZlcnNpb25Db3B5IGVkdnN0RmlsZSBlZHZzdFRlbXBsYXRlIGVkdnN0U2Nhbm5lZEZpbGUgXCI7XG5cbiAgLy8gZW51bSBURURvY3VtZW50VmVyc2lvblN0YXRlXG4gIGNvbnN0IFRFRG9jdW1lbnRWZXJzaW9uU3RhdGUgPSBcInZzRGVmYXVsdCB2c0Rlc2lnbiB2c0FjdGl2ZSB2c09ic29sZXRlIFwiO1xuXG4gIC8vIGVudW0gVEVuY29kZVR5cGVcbiAgY29uc3QgVEVuY29kZVR5cGUgPSBcImV0Tm9uZSBldENlcnRpZmljYXRlIGV0UGFzc3dvcmQgZXRDZXJ0aWZpY2F0ZVBhc3N3b3JkIFwiO1xuXG4gIC8vIGVudW0gVEV4Y2VwdGlvbkNhdGVnb3J5XG4gIGNvbnN0IFRFeGNlcHRpb25DYXRlZ29yeSA9IFwiZWNFeGNlcHRpb24gZWNXYXJuaW5nIGVjSW5mb3JtYXRpb24gXCI7XG5cbiAgLy8gZW51bSBURXhwb3J0ZWRTaWduYXR1cmVzVHlwZVxuICBjb25zdCBURXhwb3J0ZWRTaWduYXR1cmVzVHlwZSA9IFwiZXN0QWxsIGVzdEFwcHJvdmluZ09ubHkgXCI7XG5cbiAgLy8gZW51bSBURXhwb3J0ZWRWZXJzaW9uVHlwZVxuICBjb25zdCBURXhwb3J0ZWRWZXJzaW9uVHlwZSA9IFwiZXZ0TGFzdCBldnRMYXN0QWN0aXZlIGV2dFF1ZXJ5IFwiO1xuXG4gIC8vIGVudW0gVEZpZWxkRGF0YVR5cGVcbiAgY29uc3QgVEZpZWxkRGF0YVR5cGUgPVxuICAgIFwiZmR0U3RyaW5nIFwiXG4gICAgKyBcImZkdE51bWVyaWMgXCJcbiAgICArIFwiZmR0SW50ZWdlciBcIlxuICAgICsgXCJmZHREYXRlIFwiXG4gICAgKyBcImZkdFRleHQgXCJcbiAgICArIFwiZmR0VW5rbm93biBcIlxuICAgICsgXCJmZHRXaWRlU3RyaW5nIFwiXG4gICAgKyBcImZkdExhcmdlSW50ZWdlciBcIjtcblxuICAvLyBlbnVtIFRGb2xkZXJUeXBlXG4gIGNvbnN0IFRGb2xkZXJUeXBlID1cbiAgICBcImZ0SW5ib3ggXCJcbiAgICArIFwiZnRPdXRib3ggXCJcbiAgICArIFwiZnRGYXZvcml0ZXMgXCJcbiAgICArIFwiZnRDb21tb25Gb2xkZXIgXCJcbiAgICArIFwiZnRVc2VyRm9sZGVyIFwiXG4gICAgKyBcImZ0Q29tcG9uZW50cyBcIlxuICAgICsgXCJmdFF1aWNrTGF1bmNoIFwiXG4gICAgKyBcImZ0U2hvcnRjdXRzIFwiXG4gICAgKyBcImZ0U2VhcmNoIFwiO1xuXG4gIC8vIGVudW0gVEdyaWRSb3dIZWlnaHRcbiAgY29uc3QgVEdyaWRSb3dIZWlnaHQgPSBcImdyaEF1dG8gXCIgKyBcImdyaFgxIFwiICsgXCJncmhYMiBcIiArIFwiZ3JoWDMgXCI7XG5cbiAgLy8gZW51bSBUSHlwZXJsaW5rVHlwZVxuICBjb25zdCBUSHlwZXJsaW5rVHlwZSA9IFwiaGx0VGV4dCBcIiArIFwiaGx0UlRGIFwiICsgXCJobHRIVE1MIFwiO1xuXG4gIC8vIGVudW0gVEltYWdlRmlsZUZvcm1hdFxuICBjb25zdCBUSW1hZ2VGaWxlRm9ybWF0ID1cbiAgICBcImlmZkJNUCBcIlxuICAgICsgXCJpZmZKUEVHIFwiXG4gICAgKyBcImlmZk11bHRpUGFnZVRJRkYgXCJcbiAgICArIFwiaWZmU2luZ2xlUGFnZVRJRkYgXCJcbiAgICArIFwiaWZmVElGRiBcIlxuICAgICsgXCJpZmZQTkcgXCI7XG5cbiAgLy8gZW51bSBUSW1hZ2VNb2RlXG4gIGNvbnN0IFRJbWFnZU1vZGUgPSBcImltOGJHcmF5c2NhbGUgXCIgKyBcImltMjRiUkdCIFwiICsgXCJpbTFiTW9ub2Nocm9tZSBcIjtcblxuICAvLyBlbnVtIFRJbWFnZVR5cGVcbiAgY29uc3QgVEltYWdlVHlwZSA9IFwiaXRCTVAgXCIgKyBcIml0SlBFRyBcIiArIFwiaXRXTUYgXCIgKyBcIml0UE5HIFwiO1xuXG4gIC8vIGVudW0gVElucGxhY2VIaW50S2luZFxuICBjb25zdCBUSW5wbGFjZUhpbnRLaW5kID1cbiAgICBcImlraEluZm9ybWF0aW9uIFwiICsgXCJpa2hXYXJuaW5nIFwiICsgXCJpa2hFcnJvciBcIiArIFwiaWtoTm9JY29uIFwiO1xuXG4gIC8vIGVudW0gVElTQkxDb250ZXh0XG4gIGNvbnN0IFRJU0JMQ29udGV4dCA9XG4gICAgXCJpY1Vua25vd24gXCJcbiAgICArIFwiaWNTY3JpcHQgXCJcbiAgICArIFwiaWNGdW5jdGlvbiBcIlxuICAgICsgXCJpY0ludGVncmF0ZWRSZXBvcnQgXCJcbiAgICArIFwiaWNBbmFseXRpY1JlcG9ydCBcIlxuICAgICsgXCJpY0RhdGFTZXRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNBY3Rpb25IYW5kbGVyIFwiXG4gICAgKyBcImljRm9ybUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0xvb2tVcEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1JlcXVpc2l0ZUNoYW5nZUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0JlZm9yZVNlYXJjaEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1JvbGVDYWxjdWxhdGlvbiBcIlxuICAgICsgXCJpY1NlbGVjdFJvdXRlRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljQmxvY2tQcm9wZXJ0eUNhbGN1bGF0aW9uIFwiXG4gICAgKyBcImljQmxvY2tRdWVyeVBhcmFtc0V2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0NoYW5nZVNlYXJjaFJlc3VsdEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0Jsb2NrRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljU3ViVGFza0luaXRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNFRG9jRGF0YVNldEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0VEb2NMb29rVXBFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNFRG9jQWN0aW9uSGFuZGxlciBcIlxuICAgICsgXCJpY0VEb2NGb3JtRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljRURvY1JlcXVpc2l0ZUNoYW5nZUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1N0cnVjdHVyZWRDb252ZXJzaW9uUnVsZSBcIlxuICAgICsgXCJpY1N0cnVjdHVyZWRDb252ZXJzaW9uRXZlbnRCZWZvcmUgXCJcbiAgICArIFwiaWNTdHJ1Y3R1cmVkQ29udmVyc2lvbkV2ZW50QWZ0ZXIgXCJcbiAgICArIFwiaWNXaXphcmRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNXaXphcmRGaW5pc2hFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNXaXphcmRTdGVwRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljV2l6YXJkU3RlcEZpbmlzaEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1dpemFyZEFjdGlvbkVuYWJsZUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1dpemFyZEFjdGlvbkV4ZWN1dGVFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNDcmVhdGVKb2JzSGFuZGxlciBcIlxuICAgICsgXCJpY0NyZWF0ZU5vdGljZXNIYW5kbGVyIFwiXG4gICAgKyBcImljQmVmb3JlTG9va1VwRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljQWZ0ZXJMb29rVXBFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNUYXNrQWJvcnRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNXb3JrZmxvd0Jsb2NrQWN0aW9uSGFuZGxlciBcIlxuICAgICsgXCJpY0RpYWxvZ0RhdGFTZXRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNEaWFsb2dBY3Rpb25IYW5kbGVyIFwiXG4gICAgKyBcImljRGlhbG9nTG9va1VwRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljRGlhbG9nUmVxdWlzaXRlQ2hhbmdlRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljRGlhbG9nRm9ybUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0RpYWxvZ1ZhbGlkQ2xvc2VFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNCbG9ja0Zvcm1FdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNUYXNrRm9ybUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1JlZmVyZW5jZU1ldGhvZCBcIlxuICAgICsgXCJpY0VEb2NNZXRob2QgXCJcbiAgICArIFwiaWNEaWFsb2dNZXRob2QgXCJcbiAgICArIFwiaWNQcm9jZXNzTWVzc2FnZUhhbmRsZXIgXCI7XG5cbiAgLy8gZW51bSBUSXRlbVNob3dcbiAgY29uc3QgVEl0ZW1TaG93ID0gXCJpc1Nob3cgXCIgKyBcImlzSGlkZSBcIiArIFwiaXNCeVVzZXJTZXR0aW5ncyBcIjtcblxuICAvLyBlbnVtIFRKb2JLaW5kXG4gIGNvbnN0IFRKb2JLaW5kID0gXCJqa0pvYiBcIiArIFwiamtOb3RpY2UgXCIgKyBcImprQ29udHJvbEpvYiBcIjtcblxuICAvLyBlbnVtIFRKb2luVHlwZVxuICBjb25zdCBUSm9pblR5cGUgPSBcImp0SW5uZXIgXCIgKyBcImp0TGVmdCBcIiArIFwianRSaWdodCBcIiArIFwianRGdWxsIFwiICsgXCJqdENyb3NzIFwiO1xuXG4gIC8vIGVudW0gVExhYmVsUG9zXG4gIGNvbnN0IFRMYWJlbFBvcyA9IFwibGJwQWJvdmUgXCIgKyBcImxicEJlbG93IFwiICsgXCJsYnBMZWZ0IFwiICsgXCJsYnBSaWdodCBcIjtcblxuICAvLyBlbnVtIFRMaWNlbnNpbmdUeXBlXG4gIGNvbnN0IFRMaWNlbnNpbmdUeXBlID0gXCJlbHRQZXJDb25uZWN0aW9uIFwiICsgXCJlbHRQZXJVc2VyIFwiO1xuXG4gIC8vIGVudW0gVExpZmVDeWNsZVN0YWdlRm9udENvbG9yXG4gIGNvbnN0IFRMaWZlQ3ljbGVTdGFnZUZvbnRDb2xvciA9XG4gICAgXCJzZmNVbmRlZmluZWQgXCJcbiAgICArIFwic2ZjQmxhY2sgXCJcbiAgICArIFwic2ZjR3JlZW4gXCJcbiAgICArIFwic2ZjUmVkIFwiXG4gICAgKyBcInNmY0JsdWUgXCJcbiAgICArIFwic2ZjT3JhbmdlIFwiXG4gICAgKyBcInNmY0xpbGFjIFwiO1xuXG4gIC8vIGVudW0gVExpZmVDeWNsZVN0YWdlRm9udFN0eWxlXG4gIGNvbnN0IFRMaWZlQ3ljbGVTdGFnZUZvbnRTdHlsZSA9IFwic2ZzSXRhbGljIFwiICsgXCJzZnNTdHJpa2VvdXQgXCIgKyBcInNmc05vcm1hbCBcIjtcblxuICAvLyBlbnVtIFRMb2NrYWJsZURldmVsb3BtZW50Q29tcG9uZW50VHlwZVxuICBjb25zdCBUTG9ja2FibGVEZXZlbG9wbWVudENvbXBvbmVudFR5cGUgPVxuICAgIFwibGRjdFN0YW5kYXJkUm91dGUgXCJcbiAgICArIFwibGRjdFdpemFyZCBcIlxuICAgICsgXCJsZGN0U2NyaXB0IFwiXG4gICAgKyBcImxkY3RGdW5jdGlvbiBcIlxuICAgICsgXCJsZGN0Um91dGVCbG9jayBcIlxuICAgICsgXCJsZGN0SW50ZWdyYXRlZFJlcG9ydCBcIlxuICAgICsgXCJsZGN0QW5hbHl0aWNSZXBvcnQgXCJcbiAgICArIFwibGRjdFJlZmVyZW5jZVR5cGUgXCJcbiAgICArIFwibGRjdEVEb2N1bWVudFR5cGUgXCJcbiAgICArIFwibGRjdERpYWxvZyBcIlxuICAgICsgXCJsZGN0U2VydmVyRXZlbnRzIFwiO1xuXG4gIC8vIGVudW0gVE1heFJlY29yZENvdW50UmVzdHJpY3Rpb25UeXBlXG4gIGNvbnN0IFRNYXhSZWNvcmRDb3VudFJlc3RyaWN0aW9uVHlwZSA9XG4gICAgXCJtcmNydE5vbmUgXCIgKyBcIm1yY3J0VXNlciBcIiArIFwibXJjcnRNYXhpbWFsIFwiICsgXCJtcmNydEN1c3RvbSBcIjtcblxuICAvLyBlbnVtIFRSYW5nZVZhbHVlVHlwZVxuICBjb25zdCBUUmFuZ2VWYWx1ZVR5cGUgPVxuICAgIFwidnRFcXVhbCBcIiArIFwidnRHcmVhdGVyT3JFcXVhbCBcIiArIFwidnRMZXNzT3JFcXVhbCBcIiArIFwidnRSYW5nZSBcIjtcblxuICAvLyBlbnVtIFRSZWxhdGl2ZURhdGVcbiAgY29uc3QgVFJlbGF0aXZlRGF0ZSA9XG4gICAgXCJyZFllc3RlcmRheSBcIlxuICAgICsgXCJyZFRvZGF5IFwiXG4gICAgKyBcInJkVG9tb3Jyb3cgXCJcbiAgICArIFwicmRUaGlzV2VlayBcIlxuICAgICsgXCJyZFRoaXNNb250aCBcIlxuICAgICsgXCJyZFRoaXNZZWFyIFwiXG4gICAgKyBcInJkTmV4dE1vbnRoIFwiXG4gICAgKyBcInJkTmV4dFdlZWsgXCJcbiAgICArIFwicmRMYXN0V2VlayBcIlxuICAgICsgXCJyZExhc3RNb250aCBcIjtcblxuICAvLyBlbnVtIFRSZXBvcnREZXN0aW5hdGlvblxuICBjb25zdCBUUmVwb3J0RGVzdGluYXRpb24gPSBcInJkV2luZG93IFwiICsgXCJyZEZpbGUgXCIgKyBcInJkUHJpbnRlciBcIjtcblxuICAvLyBlbnVtIFRSZXFEYXRhVHlwZVxuICBjb25zdCBUUmVxRGF0YVR5cGUgPVxuICAgIFwicmR0U3RyaW5nIFwiXG4gICAgKyBcInJkdE51bWVyaWMgXCJcbiAgICArIFwicmR0SW50ZWdlciBcIlxuICAgICsgXCJyZHREYXRlIFwiXG4gICAgKyBcInJkdFJlZmVyZW5jZSBcIlxuICAgICsgXCJyZHRBY2NvdW50IFwiXG4gICAgKyBcInJkdFRleHQgXCJcbiAgICArIFwicmR0UGljayBcIlxuICAgICsgXCJyZHRVbmtub3duIFwiXG4gICAgKyBcInJkdExhcmdlSW50ZWdlciBcIlxuICAgICsgXCJyZHREb2N1bWVudCBcIjtcblxuICAvLyBlbnVtIFRSZXF1aXNpdGVFdmVudFR5cGVcbiAgY29uc3QgVFJlcXVpc2l0ZUV2ZW50VHlwZSA9IFwicmVPbkNoYW5nZSBcIiArIFwicmVPbkNoYW5nZVZhbHVlcyBcIjtcblxuICAvLyBlbnVtIFRTQlRpbWVUeXBlXG4gIGNvbnN0IFRTQlRpbWVUeXBlID0gXCJ0dEdsb2JhbCBcIiArIFwidHRMb2NhbCBcIiArIFwidHRVc2VyIFwiICsgXCJ0dFN5c3RlbSBcIjtcblxuICAvLyBlbnVtIFRTZWFyY2hTaG93TW9kZVxuICBjb25zdCBUU2VhcmNoU2hvd01vZGUgPVxuICAgIFwic3NtQnJvd3NlIFwiICsgXCJzc21TZWxlY3QgXCIgKyBcInNzbU11bHRpU2VsZWN0IFwiICsgXCJzc21Ccm93c2VNb2RhbCBcIjtcblxuICAvLyBlbnVtIFRTZWxlY3RNb2RlXG4gIGNvbnN0IFRTZWxlY3RNb2RlID0gXCJzbVNlbGVjdCBcIiArIFwic21MaWtlIFwiICsgXCJzbUNhcmQgXCI7XG5cbiAgLy8gZW51bSBUU2lnbmF0dXJlVHlwZVxuICBjb25zdCBUU2lnbmF0dXJlVHlwZSA9IFwic3ROb25lIFwiICsgXCJzdEF1dGhlbnRpY2F0aW5nIFwiICsgXCJzdEFwcHJvdmluZyBcIjtcblxuICAvLyBlbnVtIFRTaWduZXJDb250ZW50VHlwZVxuICBjb25zdCBUU2lnbmVyQ29udGVudFR5cGUgPSBcInNjdFN0cmluZyBcIiArIFwic2N0U3RyZWFtIFwiO1xuXG4gIC8vIGVudW0gVFN0cmluZ3NTb3J0VHlwZVxuICBjb25zdCBUU3RyaW5nc1NvcnRUeXBlID0gXCJzc3RBbnNpU29ydCBcIiArIFwic3N0TmF0dXJhbFNvcnQgXCI7XG5cbiAgLy8gZW51bSBUU3RyaW5nVmFsdWVUeXBlXG4gIGNvbnN0IFRTdHJpbmdWYWx1ZVR5cGUgPSBcInN2dEVxdWFsIFwiICsgXCJzdnRDb250YWluIFwiO1xuXG4gIC8vIGVudW0gVFN0cnVjdHVyZWRPYmplY3RBdHRyaWJ1dGVUeXBlXG4gIGNvbnN0IFRTdHJ1Y3R1cmVkT2JqZWN0QXR0cmlidXRlVHlwZSA9XG4gICAgXCJzb2F0U3RyaW5nIFwiXG4gICAgKyBcInNvYXROdW1lcmljIFwiXG4gICAgKyBcInNvYXRJbnRlZ2VyIFwiXG4gICAgKyBcInNvYXREYXRldGltZSBcIlxuICAgICsgXCJzb2F0UmVmZXJlbmNlUmVjb3JkIFwiXG4gICAgKyBcInNvYXRUZXh0IFwiXG4gICAgKyBcInNvYXRQaWNrIFwiXG4gICAgKyBcInNvYXRCb29sZWFuIFwiXG4gICAgKyBcInNvYXRFRG9jdW1lbnQgXCJcbiAgICArIFwic29hdEFjY291bnQgXCJcbiAgICArIFwic29hdEludGVnZXJDb2xsZWN0aW9uIFwiXG4gICAgKyBcInNvYXROdW1lcmljQ29sbGVjdGlvbiBcIlxuICAgICsgXCJzb2F0U3RyaW5nQ29sbGVjdGlvbiBcIlxuICAgICsgXCJzb2F0UGlja0NvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdERhdGV0aW1lQ29sbGVjdGlvbiBcIlxuICAgICsgXCJzb2F0Qm9vbGVhbkNvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdFJlZmVyZW5jZVJlY29yZENvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdEVEb2N1bWVudENvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdEFjY291bnRDb2xsZWN0aW9uIFwiXG4gICAgKyBcInNvYXRDb250ZW50cyBcIlxuICAgICsgXCJzb2F0VW5rbm93biBcIjtcblxuICAvLyBlbnVtIFRUYXNrQWJvcnRSZWFzb25cbiAgY29uc3QgVFRhc2tBYm9ydFJlYXNvbiA9IFwidGFyQWJvcnRCeVVzZXIgXCIgKyBcInRhckFib3J0QnlXb3JrZmxvd0V4Y2VwdGlvbiBcIjtcblxuICAvLyBlbnVtIFRUZXh0VmFsdWVUeXBlXG4gIGNvbnN0IFRUZXh0VmFsdWVUeXBlID0gXCJ0dnRBbGxXb3JkcyBcIiArIFwidHZ0RXhhY3RQaHJhc2UgXCIgKyBcInR2dEFueVdvcmQgXCI7XG5cbiAgLy8gZW51bSBUVXNlck9iamVjdFN0YXR1c1xuICBjb25zdCBUVXNlck9iamVjdFN0YXR1cyA9XG4gICAgXCJ1c05vbmUgXCJcbiAgICArIFwidXNDb21wbGV0ZWQgXCJcbiAgICArIFwidXNSZWRTcXVhcmUgXCJcbiAgICArIFwidXNCbHVlU3F1YXJlIFwiXG4gICAgKyBcInVzWWVsbG93U3F1YXJlIFwiXG4gICAgKyBcInVzR3JlZW5TcXVhcmUgXCJcbiAgICArIFwidXNPcmFuZ2VTcXVhcmUgXCJcbiAgICArIFwidXNQdXJwbGVTcXVhcmUgXCJcbiAgICArIFwidXNGb2xsb3dVcCBcIjtcblxuICAvLyBlbnVtIFRVc2VyVHlwZVxuICBjb25zdCBUVXNlclR5cGUgPVxuICAgIFwidXRVbmtub3duIFwiXG4gICAgKyBcInV0VXNlciBcIlxuICAgICsgXCJ1dERldmVsb3BlciBcIlxuICAgICsgXCJ1dEFkbWluaXN0cmF0b3IgXCJcbiAgICArIFwidXRTeXN0ZW1EZXZlbG9wZXIgXCJcbiAgICArIFwidXREaXNjb25uZWN0ZWQgXCI7XG5cbiAgLy8gZW51bSBUVmFsdWVzQnVpbGRUeXBlXG4gIGNvbnN0IFRWYWx1ZXNCdWlsZFR5cGUgPVxuICAgIFwiYnRBbmQgXCIgKyBcImJ0RGV0YWlsQW5kIFwiICsgXCJidE9yIFwiICsgXCJidE5vdE9yIFwiICsgXCJidE9ubHkgXCI7XG5cbiAgLy8gZW51bSBUVmlld01vZGVcbiAgY29uc3QgVFZpZXdNb2RlID0gXCJ2bVZpZXcgXCIgKyBcInZtU2VsZWN0IFwiICsgXCJ2bU5hdmlnYXRpb24gXCI7XG5cbiAgLy8gZW51bSBUVmlld1NlbGVjdGlvbk1vZGVcbiAgY29uc3QgVFZpZXdTZWxlY3Rpb25Nb2RlID1cbiAgICBcInZzbVNpbmdsZSBcIiArIFwidnNtTXVsdGlwbGUgXCIgKyBcInZzbU11bHRpcGxlQ2hlY2sgXCIgKyBcInZzbU5vU2VsZWN0aW9uIFwiO1xuXG4gIC8vIGVudW0gVFdpemFyZEFjdGlvblR5cGVcbiAgY29uc3QgVFdpemFyZEFjdGlvblR5cGUgPVxuICAgIFwid2ZhdFByZXZpb3VzIFwiICsgXCJ3ZmF0TmV4dCBcIiArIFwid2ZhdENhbmNlbCBcIiArIFwid2ZhdEZpbmlzaCBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRGb3JtRWxlbWVudFByb3BlcnR5XG4gIGNvbnN0IFRXaXphcmRGb3JtRWxlbWVudFByb3BlcnR5ID1cbiAgICBcIndmZXBVbmRlZmluZWQgXCJcbiAgICArIFwid2ZlcFRleHQzIFwiXG4gICAgKyBcIndmZXBUZXh0NiBcIlxuICAgICsgXCJ3ZmVwVGV4dDkgXCJcbiAgICArIFwid2ZlcFNwaW5FZGl0IFwiXG4gICAgKyBcIndmZXBEcm9wRG93biBcIlxuICAgICsgXCJ3ZmVwUmFkaW9Hcm91cCBcIlxuICAgICsgXCJ3ZmVwRmxhZyBcIlxuICAgICsgXCJ3ZmVwVGV4dDEyIFwiXG4gICAgKyBcIndmZXBUZXh0MTUgXCJcbiAgICArIFwid2ZlcFRleHQxOCBcIlxuICAgICsgXCJ3ZmVwVGV4dDIxIFwiXG4gICAgKyBcIndmZXBUZXh0MjQgXCJcbiAgICArIFwid2ZlcFRleHQyNyBcIlxuICAgICsgXCJ3ZmVwVGV4dDMwIFwiXG4gICAgKyBcIndmZXBSYWRpb0dyb3VwQ29sdW1uMSBcIlxuICAgICsgXCJ3ZmVwUmFkaW9Hcm91cENvbHVtbjIgXCJcbiAgICArIFwid2ZlcFJhZGlvR3JvdXBDb2x1bW4zIFwiO1xuXG4gIC8vIGVudW0gVFdpemFyZEZvcm1FbGVtZW50VHlwZVxuICBjb25zdCBUV2l6YXJkRm9ybUVsZW1lbnRUeXBlID1cbiAgICBcIndmZXRRdWVyeVBhcmFtZXRlciBcIiArIFwid2ZldFRleHQgXCIgKyBcIndmZXREZWxpbWl0ZXIgXCIgKyBcIndmZXRMYWJlbCBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRQYXJhbVR5cGVcbiAgY29uc3QgVFdpemFyZFBhcmFtVHlwZSA9XG4gICAgXCJ3cHRTdHJpbmcgXCJcbiAgICArIFwid3B0SW50ZWdlciBcIlxuICAgICsgXCJ3cHROdW1lcmljIFwiXG4gICAgKyBcIndwdEJvb2xlYW4gXCJcbiAgICArIFwid3B0RGF0ZVRpbWUgXCJcbiAgICArIFwid3B0UGljayBcIlxuICAgICsgXCJ3cHRUZXh0IFwiXG4gICAgKyBcIndwdFVzZXIgXCJcbiAgICArIFwid3B0VXNlckxpc3QgXCJcbiAgICArIFwid3B0RURvY3VtZW50SW5mbyBcIlxuICAgICsgXCJ3cHRFRG9jdW1lbnRJbmZvTGlzdCBcIlxuICAgICsgXCJ3cHRSZWZlcmVuY2VSZWNvcmRJbmZvIFwiXG4gICAgKyBcIndwdFJlZmVyZW5jZVJlY29yZEluZm9MaXN0IFwiXG4gICAgKyBcIndwdEZvbGRlckluZm8gXCJcbiAgICArIFwid3B0VGFza0luZm8gXCJcbiAgICArIFwid3B0Q29udGVudHMgXCJcbiAgICArIFwid3B0RmlsZU5hbWUgXCJcbiAgICArIFwid3B0RGF0ZSBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRTdGVwUmVzdWx0XG4gIGNvbnN0IFRXaXphcmRTdGVwUmVzdWx0ID1cbiAgICBcIndzckNvbXBsZXRlIFwiXG4gICAgKyBcIndzckdvTmV4dCBcIlxuICAgICsgXCJ3c3JHb1ByZXZpb3VzIFwiXG4gICAgKyBcIndzckN1c3RvbSBcIlxuICAgICsgXCJ3c3JDYW5jZWwgXCJcbiAgICArIFwid3NyR29GaW5hbCBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRTdGVwVHlwZVxuICBjb25zdCBUV2l6YXJkU3RlcFR5cGUgPVxuICAgIFwid3N0Rm9ybSBcIlxuICAgICsgXCJ3c3RFRG9jdW1lbnQgXCJcbiAgICArIFwid3N0VGFza0NhcmQgXCJcbiAgICArIFwid3N0UmVmZXJlbmNlUmVjb3JkQ2FyZCBcIlxuICAgICsgXCJ3c3RGaW5hbCBcIjtcblxuICAvLyBlbnVtIFRXb3JrQWNjZXNzVHlwZVxuICBjb25zdCBUV29ya0FjY2Vzc1R5cGUgPSBcIndhQWxsIFwiICsgXCJ3YVBlcmZvcm1lcnMgXCIgKyBcIndhTWFudWFsIFwiO1xuXG4gIC8vIGVudW0gVFdvcmtmbG93QmxvY2tUeXBlXG4gIGNvbnN0IFRXb3JrZmxvd0Jsb2NrVHlwZSA9XG4gICAgXCJ3c2JTdGFydCBcIlxuICAgICsgXCJ3c2JGaW5pc2ggXCJcbiAgICArIFwid3NiTm90aWNlIFwiXG4gICAgKyBcIndzYlN0ZXAgXCJcbiAgICArIFwid3NiRGVjaXNpb24gXCJcbiAgICArIFwid3NiV2FpdCBcIlxuICAgICsgXCJ3c2JNb25pdG9yIFwiXG4gICAgKyBcIndzYlNjcmlwdCBcIlxuICAgICsgXCJ3c2JDb25uZWN0b3IgXCJcbiAgICArIFwid3NiU3ViVGFzayBcIlxuICAgICsgXCJ3c2JMaWZlQ3ljbGVTdGFnZSBcIlxuICAgICsgXCJ3c2JQYXVzZSBcIjtcblxuICAvLyBlbnVtIFRXb3JrZmxvd0RhdGFUeXBlXG4gIGNvbnN0IFRXb3JrZmxvd0RhdGFUeXBlID1cbiAgICBcIndkdEludGVnZXIgXCJcbiAgICArIFwid2R0RmxvYXQgXCJcbiAgICArIFwid2R0U3RyaW5nIFwiXG4gICAgKyBcIndkdFBpY2sgXCJcbiAgICArIFwid2R0RGF0ZVRpbWUgXCJcbiAgICArIFwid2R0Qm9vbGVhbiBcIlxuICAgICsgXCJ3ZHRUYXNrIFwiXG4gICAgKyBcIndkdEpvYiBcIlxuICAgICsgXCJ3ZHRGb2xkZXIgXCJcbiAgICArIFwid2R0RURvY3VtZW50IFwiXG4gICAgKyBcIndkdFJlZmVyZW5jZVJlY29yZCBcIlxuICAgICsgXCJ3ZHRVc2VyIFwiXG4gICAgKyBcIndkdEdyb3VwIFwiXG4gICAgKyBcIndkdFJvbGUgXCJcbiAgICArIFwid2R0SW50ZWdlckNvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0RmxvYXRDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFN0cmluZ0NvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0UGlja0NvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0RGF0ZVRpbWVDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdEJvb2xlYW5Db2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFRhc2tDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdEpvYkNvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0Rm9sZGVyQ29sbGVjdGlvbiBcIlxuICAgICsgXCJ3ZHRFRG9jdW1lbnRDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFJlZmVyZW5jZVJlY29yZENvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0VXNlckNvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0R3JvdXBDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFJvbGVDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdENvbnRlbnRzIFwiXG4gICAgKyBcIndkdFVzZXJMaXN0IFwiXG4gICAgKyBcIndkdFNlYXJjaERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIndkdERlYWRMaW5lIFwiXG4gICAgKyBcIndkdFBpY2tTZXQgXCJcbiAgICArIFwid2R0QWNjb3VudENvbGxlY3Rpb24gXCI7XG5cbiAgLy8gZW51bSBUV29ya0ltcG9ydGFuY2VcbiAgY29uc3QgVFdvcmtJbXBvcnRhbmNlID0gXCJ3aUxvdyBcIiArIFwid2lOb3JtYWwgXCIgKyBcIndpSGlnaCBcIjtcblxuICAvLyBlbnVtIFRXb3JrUm91dGVUeXBlXG4gIGNvbnN0IFRXb3JrUm91dGVUeXBlID0gXCJ3cnRTb2Z0IFwiICsgXCJ3cnRIYXJkIFwiO1xuXG4gIC8vIGVudW0gVFdvcmtTdGF0ZVxuICBjb25zdCBUV29ya1N0YXRlID1cbiAgICBcIndzSW5pdCBcIlxuICAgICsgXCJ3c1J1bm5pbmcgXCJcbiAgICArIFwid3NEb25lIFwiXG4gICAgKyBcIndzQ29udHJvbGxlZCBcIlxuICAgICsgXCJ3c0Fib3J0ZWQgXCJcbiAgICArIFwid3NDb250aW51ZWQgXCI7XG5cbiAgLy8gZW51bSBUV29ya1RleHRCdWlsZGluZ01vZGVcbiAgY29uc3QgVFdvcmtUZXh0QnVpbGRpbmdNb2RlID1cbiAgICBcInd0bUZ1bGwgXCIgKyBcInd0bUZyb21DdXJyZW50IFwiICsgXCJ3dG1Pbmx5Q3VycmVudCBcIjtcblxuICAvLyBcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcbiAgY29uc3QgRU5VTVMgPVxuICAgIFRBY2NvdW50VHlwZVxuICAgICsgVEFjdGlvbkVuYWJsZWRNb2RlXG4gICAgKyBUQWRkUG9zaXRpb25cbiAgICArIFRBbGlnbm1lbnRcbiAgICArIFRBcmVhU2hvd01vZGVcbiAgICArIFRDZXJ0aWZpY2F0ZUludmFsaWRhdGlvblJlYXNvblxuICAgICsgVENlcnRpZmljYXRlVHlwZVxuICAgICsgVENoZWNrTGlzdEJveEl0ZW1TdGF0ZVxuICAgICsgVENsb3NlT25Fc2NcbiAgICArIFRDb21wVHlwZVxuICAgICsgVENvbmRpdGlvbkZvcm1hdFxuICAgICsgVENvbm5lY3Rpb25JbnRlbnRcbiAgICArIFRDb250ZW50S2luZFxuICAgICsgVENvbnRyb2xUeXBlXG4gICAgKyBUQ3JpdGVyaW9uQ29udGVudFR5cGVcbiAgICArIFRDdWx0dXJlVHlwZVxuICAgICsgVERhdGFTZXRFdmVudFR5cGVcbiAgICArIFREYXRhU2V0U3RhdGVcbiAgICArIFREYXRlRm9ybWF0VHlwZVxuICAgICsgVERhdGVPZmZzZXRUeXBlXG4gICAgKyBURGF0ZVRpbWVLaW5kXG4gICAgKyBURGVhQWNjZXNzUmlnaHRzXG4gICAgKyBURG9jdW1lbnREZWZhdWx0QWN0aW9uXG4gICAgKyBURWRpdE1vZGVcbiAgICArIFRFZGl0b3JDbG9zZU9ic2VydlR5cGVcbiAgICArIFRFZG1zQXBwbGljYXRpb25BY3Rpb25cbiAgICArIFRFRG9jdW1lbnRMb2NrVHlwZVxuICAgICsgVEVEb2N1bWVudFN0ZXBTaG93TW9kZVxuICAgICsgVEVEb2N1bWVudFN0ZXBWZXJzaW9uVHlwZVxuICAgICsgVEVEb2N1bWVudFN0b3JhZ2VGdW5jdGlvblxuICAgICsgVEVEb2N1bWVudFN0b3JhZ2VUeXBlXG4gICAgKyBURURvY3VtZW50VmVyc2lvblNvdXJjZVR5cGVcbiAgICArIFRFRG9jdW1lbnRWZXJzaW9uU3RhdGVcbiAgICArIFRFbmNvZGVUeXBlXG4gICAgKyBURXhjZXB0aW9uQ2F0ZWdvcnlcbiAgICArIFRFeHBvcnRlZFNpZ25hdHVyZXNUeXBlXG4gICAgKyBURXhwb3J0ZWRWZXJzaW9uVHlwZVxuICAgICsgVEZpZWxkRGF0YVR5cGVcbiAgICArIFRGb2xkZXJUeXBlXG4gICAgKyBUR3JpZFJvd0hlaWdodFxuICAgICsgVEh5cGVybGlua1R5cGVcbiAgICArIFRJbWFnZUZpbGVGb3JtYXRcbiAgICArIFRJbWFnZU1vZGVcbiAgICArIFRJbWFnZVR5cGVcbiAgICArIFRJbnBsYWNlSGludEtpbmRcbiAgICArIFRJU0JMQ29udGV4dFxuICAgICsgVEl0ZW1TaG93XG4gICAgKyBUSm9iS2luZFxuICAgICsgVEpvaW5UeXBlXG4gICAgKyBUTGFiZWxQb3NcbiAgICArIFRMaWNlbnNpbmdUeXBlXG4gICAgKyBUTGlmZUN5Y2xlU3RhZ2VGb250Q29sb3JcbiAgICArIFRMaWZlQ3ljbGVTdGFnZUZvbnRTdHlsZVxuICAgICsgVExvY2thYmxlRGV2ZWxvcG1lbnRDb21wb25lbnRUeXBlXG4gICAgKyBUTWF4UmVjb3JkQ291bnRSZXN0cmljdGlvblR5cGVcbiAgICArIFRSYW5nZVZhbHVlVHlwZVxuICAgICsgVFJlbGF0aXZlRGF0ZVxuICAgICsgVFJlcG9ydERlc3RpbmF0aW9uXG4gICAgKyBUUmVxRGF0YVR5cGVcbiAgICArIFRSZXF1aXNpdGVFdmVudFR5cGVcbiAgICArIFRTQlRpbWVUeXBlXG4gICAgKyBUU2VhcmNoU2hvd01vZGVcbiAgICArIFRTZWxlY3RNb2RlXG4gICAgKyBUU2lnbmF0dXJlVHlwZVxuICAgICsgVFNpZ25lckNvbnRlbnRUeXBlXG4gICAgKyBUU3RyaW5nc1NvcnRUeXBlXG4gICAgKyBUU3RyaW5nVmFsdWVUeXBlXG4gICAgKyBUU3RydWN0dXJlZE9iamVjdEF0dHJpYnV0ZVR5cGVcbiAgICArIFRUYXNrQWJvcnRSZWFzb25cbiAgICArIFRUZXh0VmFsdWVUeXBlXG4gICAgKyBUVXNlck9iamVjdFN0YXR1c1xuICAgICsgVFVzZXJUeXBlXG4gICAgKyBUVmFsdWVzQnVpbGRUeXBlXG4gICAgKyBUVmlld01vZGVcbiAgICArIFRWaWV3U2VsZWN0aW9uTW9kZVxuICAgICsgVFdpemFyZEFjdGlvblR5cGVcbiAgICArIFRXaXphcmRGb3JtRWxlbWVudFByb3BlcnR5XG4gICAgKyBUV2l6YXJkRm9ybUVsZW1lbnRUeXBlXG4gICAgKyBUV2l6YXJkUGFyYW1UeXBlXG4gICAgKyBUV2l6YXJkU3RlcFJlc3VsdFxuICAgICsgVFdpemFyZFN0ZXBUeXBlXG4gICAgKyBUV29ya0FjY2Vzc1R5cGVcbiAgICArIFRXb3JrZmxvd0Jsb2NrVHlwZVxuICAgICsgVFdvcmtmbG93RGF0YVR5cGVcbiAgICArIFRXb3JrSW1wb3J0YW5jZVxuICAgICsgVFdvcmtSb3V0ZVR5cGVcbiAgICArIFRXb3JrU3RhdGVcbiAgICArIFRXb3JrVGV4dEJ1aWxkaW5nTW9kZTtcblxuICAvLyBcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4ID09PiBTWVNGVU5DVElPTlNcbiAgY29uc3Qgc3lzdGVtX2Z1bmN0aW9ucyA9XG4gICAgXCJBZGRTdWJTdHJpbmcgXCJcbiAgICArIFwiQWRqdXN0TGluZUJyZWFrcyBcIlxuICAgICsgXCJBbW91bnRJbldvcmRzIFwiXG4gICAgKyBcIkFuYWx5c2lzIFwiXG4gICAgKyBcIkFycmF5RGltQ291bnQgXCJcbiAgICArIFwiQXJyYXlIaWdoQm91bmQgXCJcbiAgICArIFwiQXJyYXlMb3dCb3VuZCBcIlxuICAgICsgXCJBcnJheU9mIFwiXG4gICAgKyBcIkFycmF5UmVEaW0gXCJcbiAgICArIFwiQXNzZXJ0IFwiXG4gICAgKyBcIkFzc2lnbmVkIFwiXG4gICAgKyBcIkJlZ2luT2ZNb250aCBcIlxuICAgICsgXCJCZWdpbk9mUGVyaW9kIFwiXG4gICAgKyBcIkJ1aWxkUHJvZmlsaW5nT3BlcmF0aW9uQW5hbHlzaXMgXCJcbiAgICArIFwiQ2FsbFByb2NlZHVyZSBcIlxuICAgICsgXCJDYW5SZWFkRmlsZSBcIlxuICAgICsgXCJDQXJyYXlFbGVtZW50IFwiXG4gICAgKyBcIkNEYXRhU2V0UmVxdWlzaXRlIFwiXG4gICAgKyBcIkNoYW5nZURhdGUgXCJcbiAgICArIFwiQ2hhbmdlUmVmZXJlbmNlRGF0YXNldCBcIlxuICAgICsgXCJDaGFyIFwiXG4gICAgKyBcIkNoYXJQb3MgXCJcbiAgICArIFwiQ2hlY2tQYXJhbSBcIlxuICAgICsgXCJDaGVja1BhcmFtVmFsdWUgXCJcbiAgICArIFwiQ29tcGFyZVN0cmluZ3MgXCJcbiAgICArIFwiQ29uc3RhbnRFeGlzdHMgXCJcbiAgICArIFwiQ29udHJvbFN0YXRlIFwiXG4gICAgKyBcIkNvbnZlcnREYXRlU3RyIFwiXG4gICAgKyBcIkNvcHkgXCJcbiAgICArIFwiQ29weUZpbGUgXCJcbiAgICArIFwiQ3JlYXRlQXJyYXkgXCJcbiAgICArIFwiQ3JlYXRlQ2FjaGVkUmVmZXJlbmNlIFwiXG4gICAgKyBcIkNyZWF0ZUNvbm5lY3Rpb24gXCJcbiAgICArIFwiQ3JlYXRlRGlhbG9nIFwiXG4gICAgKyBcIkNyZWF0ZUR1YWxMaXN0RGlhbG9nIFwiXG4gICAgKyBcIkNyZWF0ZUVkaXRvciBcIlxuICAgICsgXCJDcmVhdGVFeGNlcHRpb24gXCJcbiAgICArIFwiQ3JlYXRlRmlsZSBcIlxuICAgICsgXCJDcmVhdGVGb2xkZXJEaWFsb2cgXCJcbiAgICArIFwiQ3JlYXRlSW5wdXREaWFsb2cgXCJcbiAgICArIFwiQ3JlYXRlTGlua0ZpbGUgXCJcbiAgICArIFwiQ3JlYXRlTGlzdCBcIlxuICAgICsgXCJDcmVhdGVMb2NrIFwiXG4gICAgKyBcIkNyZWF0ZU1lbW9yeURhdGFTZXQgXCJcbiAgICArIFwiQ3JlYXRlT2JqZWN0IFwiXG4gICAgKyBcIkNyZWF0ZU9wZW5EaWFsb2cgXCJcbiAgICArIFwiQ3JlYXRlUHJvZ3Jlc3MgXCJcbiAgICArIFwiQ3JlYXRlUXVlcnkgXCJcbiAgICArIFwiQ3JlYXRlUmVmZXJlbmNlIFwiXG4gICAgKyBcIkNyZWF0ZVJlcG9ydCBcIlxuICAgICsgXCJDcmVhdGVTYXZlRGlhbG9nIFwiXG4gICAgKyBcIkNyZWF0ZVNjcmlwdCBcIlxuICAgICsgXCJDcmVhdGVTUUxQaXZvdEZ1bmN0aW9uIFwiXG4gICAgKyBcIkNyZWF0ZVN0cmluZ0xpc3QgXCJcbiAgICArIFwiQ3JlYXRlVHJlZUxpc3RTZWxlY3REaWFsb2cgXCJcbiAgICArIFwiQ1NlbGVjdFNRTCBcIlxuICAgICsgXCJDU1FMIFwiXG4gICAgKyBcIkNTdWJTdHJpbmcgXCJcbiAgICArIFwiQ3VycmVudFVzZXJJRCBcIlxuICAgICsgXCJDdXJyZW50VXNlck5hbWUgXCJcbiAgICArIFwiQ3VycmVudFZlcnNpb24gXCJcbiAgICArIFwiRGF0YVNldExvY2F0ZUV4IFwiXG4gICAgKyBcIkRhdGVEaWZmIFwiXG4gICAgKyBcIkRhdGVUaW1lRGlmZiBcIlxuICAgICsgXCJEYXRlVG9TdHIgXCJcbiAgICArIFwiRGF5T2ZXZWVrIFwiXG4gICAgKyBcIkRlbGV0ZUZpbGUgXCJcbiAgICArIFwiRGlyZWN0b3J5RXhpc3RzIFwiXG4gICAgKyBcIkRpc2FibGVDaGVja0FjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJEaXNhYmxlQ2hlY2tGdWxsU2hvd2luZ1Jlc3RyaWN0aW9uIFwiXG4gICAgKyBcIkRpc2FibGVNYXNzVGFza1NlbmRpbmdSZXN0cmljdGlvbnMgXCJcbiAgICArIFwiRHJvcFRhYmxlIFwiXG4gICAgKyBcIkR1cGVTdHJpbmcgXCJcbiAgICArIFwiRWRpdFRleHQgXCJcbiAgICArIFwiRW5hYmxlQ2hlY2tBY2Nlc3NSaWdodHMgXCJcbiAgICArIFwiRW5hYmxlQ2hlY2tGdWxsU2hvd2luZ1Jlc3RyaWN0aW9uIFwiXG4gICAgKyBcIkVuYWJsZU1hc3NUYXNrU2VuZGluZ1Jlc3RyaWN0aW9ucyBcIlxuICAgICsgXCJFbmRPZk1vbnRoIFwiXG4gICAgKyBcIkVuZE9mUGVyaW9kIFwiXG4gICAgKyBcIkV4Y2VwdGlvbkV4aXN0cyBcIlxuICAgICsgXCJFeGNlcHRpb25zT2ZmIFwiXG4gICAgKyBcIkV4Y2VwdGlvbnNPbiBcIlxuICAgICsgXCJFeGVjdXRlIFwiXG4gICAgKyBcIkV4ZWN1dGVQcm9jZXNzIFwiXG4gICAgKyBcIkV4aXQgXCJcbiAgICArIFwiRXhwYW5kRW52aXJvbm1lbnRWYXJpYWJsZXMgXCJcbiAgICArIFwiRXh0cmFjdEZpbGVEcml2ZSBcIlxuICAgICsgXCJFeHRyYWN0RmlsZUV4dCBcIlxuICAgICsgXCJFeHRyYWN0RmlsZU5hbWUgXCJcbiAgICArIFwiRXh0cmFjdEZpbGVQYXRoIFwiXG4gICAgKyBcIkV4dHJhY3RQYXJhbXMgXCJcbiAgICArIFwiRmlsZUV4aXN0cyBcIlxuICAgICsgXCJGaWxlU2l6ZSBcIlxuICAgICsgXCJGaW5kRmlsZSBcIlxuICAgICsgXCJGaW5kU3ViU3RyaW5nIFwiXG4gICAgKyBcIkZpcm1Db250ZXh0IFwiXG4gICAgKyBcIkZvcmNlRGlyZWN0b3JpZXMgXCJcbiAgICArIFwiRm9ybWF0IFwiXG4gICAgKyBcIkZvcm1hdERhdGUgXCJcbiAgICArIFwiRm9ybWF0TnVtZXJpYyBcIlxuICAgICsgXCJGb3JtYXRTUUxEYXRlIFwiXG4gICAgKyBcIkZvcm1hdFN0cmluZyBcIlxuICAgICsgXCJGcmVlRXhjZXB0aW9uIFwiXG4gICAgKyBcIkdldENvbXBvbmVudCBcIlxuICAgICsgXCJHZXRDb21wb25lbnRMYXVuY2hQYXJhbSBcIlxuICAgICsgXCJHZXRDb25zdGFudCBcIlxuICAgICsgXCJHZXRMYXN0RXhjZXB0aW9uIFwiXG4gICAgKyBcIkdldFJlZmVyZW5jZVJlY29yZCBcIlxuICAgICsgXCJHZXRSZWZUeXBlQnlSZWZJRCBcIlxuICAgICsgXCJHZXRUYWJsZUlEIFwiXG4gICAgKyBcIkdldFRlbXBGb2xkZXIgXCJcbiAgICArIFwiSWZUaGVuIFwiXG4gICAgKyBcIkluIFwiXG4gICAgKyBcIkluZGV4T2YgXCJcbiAgICArIFwiSW5wdXREaWFsb2cgXCJcbiAgICArIFwiSW5wdXREaWFsb2dFeCBcIlxuICAgICsgXCJJbnRlcmFjdGl2ZU1vZGUgXCJcbiAgICArIFwiSXNGaWxlTG9ja2VkIFwiXG4gICAgKyBcIklzR3JhcGhpY0ZpbGUgXCJcbiAgICArIFwiSXNOdW1lcmljIFwiXG4gICAgKyBcIkxlbmd0aCBcIlxuICAgICsgXCJMb2FkU3RyaW5nIFwiXG4gICAgKyBcIkxvYWRTdHJpbmdGbXQgXCJcbiAgICArIFwiTG9jYWxUaW1lVG9VVEMgXCJcbiAgICArIFwiTG93ZXJDYXNlIFwiXG4gICAgKyBcIk1heCBcIlxuICAgICsgXCJNZXNzYWdlQm94IFwiXG4gICAgKyBcIk1lc3NhZ2VCb3hFeCBcIlxuICAgICsgXCJNaW1lRGVjb2RlQmluYXJ5IFwiXG4gICAgKyBcIk1pbWVEZWNvZGVTdHJpbmcgXCJcbiAgICArIFwiTWltZUVuY29kZUJpbmFyeSBcIlxuICAgICsgXCJNaW1lRW5jb2RlU3RyaW5nIFwiXG4gICAgKyBcIk1pbiBcIlxuICAgICsgXCJNb25leUluV29yZHMgXCJcbiAgICArIFwiTW92ZUZpbGUgXCJcbiAgICArIFwiTmV3SUQgXCJcbiAgICArIFwiTm93IFwiXG4gICAgKyBcIk9wZW5GaWxlIFwiXG4gICAgKyBcIk9yZCBcIlxuICAgICsgXCJQcmVjaXNpb24gXCJcbiAgICArIFwiUmFpc2UgXCJcbiAgICArIFwiUmVhZENlcnRpZmljYXRlRnJvbUZpbGUgXCJcbiAgICArIFwiUmVhZEZpbGUgXCJcbiAgICArIFwiUmVmZXJlbmNlQ29kZUJ5SUQgXCJcbiAgICArIFwiUmVmZXJlbmNlTnVtYmVyIFwiXG4gICAgKyBcIlJlZmVyZW5jZVJlcXVpc2l0ZU1vZGUgXCJcbiAgICArIFwiUmVmZXJlbmNlUmVxdWlzaXRlVmFsdWUgXCJcbiAgICArIFwiUmVnaW9uRGF0ZVNldHRpbmdzIFwiXG4gICAgKyBcIlJlZ2lvbk51bWJlclNldHRpbmdzIFwiXG4gICAgKyBcIlJlZ2lvblRpbWVTZXR0aW5ncyBcIlxuICAgICsgXCJSZWdSZWFkIFwiXG4gICAgKyBcIlJlZ1dyaXRlIFwiXG4gICAgKyBcIlJlbmFtZUZpbGUgXCJcbiAgICArIFwiUmVwbGFjZSBcIlxuICAgICsgXCJSb3VuZCBcIlxuICAgICsgXCJTZWxlY3RTZXJ2ZXJDb2RlIFwiXG4gICAgKyBcIlNlbGVjdFNRTCBcIlxuICAgICsgXCJTZXJ2ZXJEYXRlVGltZSBcIlxuICAgICsgXCJTZXRDb25zdGFudCBcIlxuICAgICsgXCJTZXRNYW5hZ2VkRm9sZGVyRmllbGRzU3RhdGUgXCJcbiAgICArIFwiU2hvd0NvbnN0YW50c0lucHV0RGlhbG9nIFwiXG4gICAgKyBcIlNob3dNZXNzYWdlIFwiXG4gICAgKyBcIlNsZWVwIFwiXG4gICAgKyBcIlNwbGl0IFwiXG4gICAgKyBcIlNRTCBcIlxuICAgICsgXCJTUUwyWExTVEFCIFwiXG4gICAgKyBcIlNRTFByb2ZpbGluZ1NlbmRSZXBvcnQgXCJcbiAgICArIFwiU3RyVG9EYXRlIFwiXG4gICAgKyBcIlN1YlN0cmluZyBcIlxuICAgICsgXCJTdWJTdHJpbmdDb3VudCBcIlxuICAgICsgXCJTeXN0ZW1TZXR0aW5nIFwiXG4gICAgKyBcIlRpbWUgXCJcbiAgICArIFwiVGltZURpZmYgXCJcbiAgICArIFwiVG9kYXkgXCJcbiAgICArIFwiVHJhbnNsaXRlcmF0ZSBcIlxuICAgICsgXCJUcmltIFwiXG4gICAgKyBcIlVwcGVyQ2FzZSBcIlxuICAgICsgXCJVc2VyU3RhdHVzIFwiXG4gICAgKyBcIlVUQ1RvTG9jYWxUaW1lIFwiXG4gICAgKyBcIlZhbGlkYXRlWE1MIFwiXG4gICAgKyBcIlZhcklzQ2xlYXIgXCJcbiAgICArIFwiVmFySXNFbXB0eSBcIlxuICAgICsgXCJWYXJJc051bGwgXCJcbiAgICArIFwiV29ya1RpbWVEaWZmIFwiXG4gICAgKyBcIldyaXRlRmlsZSBcIlxuICAgICsgXCJXcml0ZUZpbGVFeCBcIlxuICAgICsgXCJXcml0ZU9iamVjdEhpc3RvcnkgXCJcbiAgICArIFwiXHUwNDEwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3IFwiXG4gICAgKyBcIlx1MDQxMVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQxNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcIlxuICAgICsgXCJcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MTVcdTA0NDFcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDE1XHUwNDQxXHUwNDQyXHUwNDRDXHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFwiXG4gICAgKyBcIlx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQxOFx1MDQzRFx1MDQ0NFx1MDQzRSBcIlxuICAgICsgXCJcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MjFcdTA0M0RcdTA0NEZcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDIxXHUwNDNEXHUwNDRGXHUwNDQyXHUwNDRDXHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFwiXG4gICAgKyBcIlx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MTJcdTA0MzJcdTA0M0VcdTA0MzQgXCJcbiAgICArIFwiXHUwNDEyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDFDXHUwNDM1XHUwNDNEXHUwNDRFIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQzNVx1MDQzNFx1MDQyMSBcIlxuICAgICsgXCJcdTA0MTJcdTA0MzVcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDEyXHUwNDM1XHUwNDQwXHUwNDQ1XHUwNDNEXHUwNDRGXHUwNDRGXHUwNDEzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDMwXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTJcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NDIgXCJcbiAgICArIFwiXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDFGXHUwNDMwXHUwNDNGXHUwNDNBXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0RiBcIlxuICAgICsgXCJcdTA0MTJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBTUUwgXCJcbiAgICArIFwiXHUwNDEyXHUwNDRCXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTJcdTA0NEJcdTA0MzdcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDEyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQ0Qlx1MDQzRlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzlcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXCJcbiAgICArIFwiXHUwNDEzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDMwXHUwNDE0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMiBcIlxuICAgICsgXCJcdTA0MTRcdTA0MzVcdTA0M0RcdTA0NENcdTA0MURcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXCJcbiAgICArIFwiXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDE0XHUwNDMwXHUwNDFEXHUwNDM1XHUwNDQyIFwiXG4gICAgKyBcIlx1MDQxNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzMFx1MDQyMVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTRcdTA0M0VcdTA0MzFcdTA0MUZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDE1XHUwNDFGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxNVx1MDQ0MVx1MDQzQlx1MDQzOFx1MDQyMlx1MDQzRSBcIlxuICAgICsgXCJcdTA0MTVcdTA0MjdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0UgXCJcbiAgICArIFwiXHUwNDE3XHUwNDMwXHUwNDNDXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQyMVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMCBcIlxuICAgICsgXCJcdTA0MTdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NEZcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDE4XHUwNDE0XHUwNDIyXHUwNDM4XHUwNDNGXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQ0Q1x1MDQxNFx1MDQzOFx1MDQ0MVx1MDQzQSBcIlxuICAgICsgXCJcdTA0MThcdTA0MzdcdTA0MzJcdTA0M0JcdTA0MzVcdTA0NDdcdTA0NENcdTA0MThcdTA0M0NcdTA0NEZcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXCJcbiAgICArIFwiXHUwNDE4XHUwNDM3XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDQ3XHUwNDRDXHUwNDFGXHUwNDQzXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcIlxuICAgICsgXCJcdTA0MThcdTA0MzdcdTA0M0NcdTA0MTRcdTA0MzBcdTA0NDIgXCJcbiAgICArIFwiXHUwNDE4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzMCBcIlxuICAgICsgXCJcdTA0MThcdTA0M0NcdTA0NEZcdTA0MUVcdTA0NDBcdTA0MzMgXCJcbiAgICArIFwiXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MTdcdTA0MzBcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDE4XHUwNDNEXHUwNDM0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDFFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQyOFx1MDQzMFx1MDQzMyBcIlxuICAgICsgXCJcdTA0MThcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MjBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXCJcbiAgICArIFwiXHUwNDE4XHUwNDQyXHUwNDNFXHUwNDMzXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzNFx1MDQxMlx1MDQzOFx1MDQzNFx1MDQxMlx1MDQzNVx1MDQzNFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0MzRcdTA0MTJcdTA0MzhcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUZcdTA0M0VcdTA0MThcdTA0MTQgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDM0XHUwNDFGXHUwNDNFQW5hbGl0IFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzNFx1MDQyMVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQzMCBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDNCXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzQlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzRiBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0M0RcdTA0MUNcdTA0MzVcdTA0NDEgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQxNVx1MDQ0MVx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0MTdcdTA0M0RcdTA0MzBcdTA0NDcgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDIyXHUwNDQwXHUwNDMwXHUwNDNEIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NEZcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFBXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0IFwiXG4gICAgKyBcIlx1MDQxQVx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUNcdTA0MzBcdTA0M0FcdTA0NDEgXCJcbiAgICArIFwiXHUwNDFDXHUwNDMwXHUwNDNBXHUwNDQxXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMiBcIlxuICAgICsgXCJcdTA0MUNcdTA0MzVcdTA0M0RcdTA0NEUgXCJcbiAgICArIFwiXHUwNDFDXHUwNDM1XHUwNDNEXHUwNDRFXHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFwiXG4gICAgKyBcIlx1MDQxQ1x1MDQzOFx1MDQzRCBcIlxuICAgICsgXCJcdTA0MURcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MTRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MURcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0MjBcdTA0MzBcdTA0NDFcdTA0NDggXCJcbiAgICArIFwiXHUwNDFEXHUwNDMwXHUwNDM4XHUwNDNDXHUwNDEyXHUwNDM4XHUwNDM0XHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxRFx1MDQzMFx1MDQzOFx1MDQzQ1x1MDQxRlx1MDQzRUFuYWxpdCBcIlxuICAgICsgXCJcdTA0MURcdTA0MzBcdTA0MzhcdTA0M0NcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM0XHUwNDRCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFwiXG4gICAgKyBcIlx1MDQxRFx1MDQzMFx1MDQ0N1x1MDQxQ1x1MDQzNVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MURcdTA0MzBcdTA0NDdcdTA0MjJcdTA0NDBcdTA0MzBcdTA0M0QgXCJcbiAgICArIFwiXHUwNDFEXHUwNDM4XHUwNDM2XHUwNDNEXHUwNDRGXHUwNDRGXHUwNDEzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDMwXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MURcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzQgXCJcbiAgICArIFwiXHUwNDFFXHUwNDNBXHUwNDNEXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxRVx1MDQzQVx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUVcdTA0M0FcdTA0NDBcdTA0NDNcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXCJcbiAgICArIFwiXHUwNDFFXHUwNDQyXHUwNDNCXHUwNDE4XHUwNDNEXHUwNDQ0XHUwNDE0XHUwNDNFXHUwNDMxXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxRVx1MDQ0Mlx1MDQzQlx1MDQxOFx1MDQzRFx1MDQ0NFx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MUVcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDIgXCJcbiAgICArIFwiXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDEwXHUwNDNEXHUwNDMwXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQxRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQxOFx1MDQzRFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MUZcdTA0MzBcdTA0M0ZcdTA0M0FcdTA0MzBcdTA0MjFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIgXCJcbiAgICArIFwiXHUwNDFGXHUwNDMwXHUwNDQzXHUwNDM3XHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFNRTCBcIlxuICAgICsgXCJcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXCJcbiAgICArIFwiXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFwiXG4gICAgKyBcIlx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MUZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQyMVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MThcdTA0MTRcdTA0MjJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXCJcbiAgICArIFwiXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDE0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQxOFx1MDQxNCBcIlxuICAgICsgXCJcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0MThcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDIxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MUZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NENcdTA0MUZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDE3XHUwNDNEXHUwNDMwXHUwNDQ3IFwiXG4gICAgKyBcIlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyM1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzOFx1MDQzNSBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzBcdTA0MzdcdTA0MzFcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQxNFx1MDQzMFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MTRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDIwXHUwNDMwXHUwNDMxXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzM1x1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQyBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzVcdTA0MzNcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MTRcdTA0MzBcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIwXHUwNDM1XHUwNDMzXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDI3XHUwNDQxXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzNFx1MDQyMlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzVcdTA0MzVcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MTdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIwXHUwNDM1XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBXHUwNDE4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRFx1MDQ0RiBcIlxuICAgICsgXCJcdTA0MjFcdTA0MzVcdTA0MzlcdTA0NDdcdTA0MzBcdTA0NDEgXCJcbiAgICArIFwiXHUwNDIxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQxOFx1MDQxNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDM2XHUwNDFGXHUwNDQwXHUwNDNFXHUwNDMxIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0MzBcdTA0MTRcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NDNcdTA0M0NcdTA0MUFcdTA0M0VcdTA0MzQgXCJcbiAgICArIFwiXHUwNDIxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDMwXHUwNDE4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzMFx1MDQxQVx1MDQzRVx1MDQzNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MTRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDEyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDE4XHUwNDM3XHUwNDE0XHUwNDMyXHUwNDQzXHUwNDQ1XHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMyIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQxRlx1MDQzMFx1MDQzRlx1MDQzQVx1MDQzOCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MTRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MUVcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDIxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE4XHUwNDQxXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxQVx1MDQ0RFx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MUNcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDFEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDE0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MUVcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDFGXHUwNDMwXHUwNDNGXHUwNDNBXHUwNDQzIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0EgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDIxXHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDM5IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDQ1XHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0VcdTA0M0FcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0MgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MTVcdTA0NDFcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDIxXHUwNDNEXHUwNDRGXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQyMVx1MDQzRFx1MDQ0Rlx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDE4XHUwNDM3XHUwNDNDXHUwNDFEXHUwNDMwXHUwNDMxXHUwNDE0XHUwNDMwXHUwNDNEIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxQVx1MDQzRVx1MDQzNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MURcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUVcdTA0NDJcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRlx1MDQzRVx1MDQzQlx1MDQzNVx1MDQxN1x1MDQzRFx1MDQzMFx1MDQ0NyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MThcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxMlx1MDQzMlx1MDQzNVx1MDQzNFx1MDQxN1x1MDQzRCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MURcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzUgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDFGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQxN1x1MDQzRCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MjBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDIyXHUwNDM4XHUwNDNGXHUwNDIyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjFcdTA0M0VcdTA0NDFcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQxOFx1MDQ0Mlx1MDQzRVx1MDQzMyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDFBXHUwNDNFXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQxQ1x1MDQzMFx1MDQzQVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MUNcdTA0MzhcdTA0M0QgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDFGXHUwNDQwXHUwNDM1XHUwNDM0IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMVx1MDQzQlx1MDQzNVx1MDQzNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzQgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIzXHUwNDM0IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzNVx1MDQzQVx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDIxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQxMlx1MDQzNVx1MDQ0MFx1MDQ0NVx1MDQyMFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MURcdTA0MzhcdTA0MzZcdTA0M0RcdTA0MjBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQ0M1x1MDQzQ1x1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzRiBcIlxuICAgICsgXCJcdTA0MjFcdTA0NDZcdTA0MzVcdTA0M0RcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzkgXCJcbiAgICArIFwiXHUwNDIxXHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDM5XHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDIFwiXG4gICAgKyBcIlx1MDQyMlx1MDQzNVx1MDQzQVx1MDQxMlx1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzOFx1MDQ0RiBcIlxuICAgICsgXCJcdTA0MjJcdTA0MzVcdTA0M0FcdTA0MUVcdTA0NDBcdTA0MzMgXCJcbiAgICArIFwiXHUwNDIyXHUwNDNFXHUwNDQ3XHUwNDNEIFwiXG4gICAgKyBcIlx1MDQyMlx1MDQ0MFx1MDQzMFx1MDQzRCBcIlxuICAgICsgXCJcdTA0MjJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEYgXCJcbiAgICArIFwiXHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDIyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDQzIFwiXG4gICAgKyBcIlx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MjNcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIzXHUwNDM0XHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyM1x1MDQ0MVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MUFcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0NDIgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDEwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDIxXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MTdcdTA0MzBcdTA0M0RcdTA0NEZcdTA0NDIgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDE3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxOFx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUFcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFDXHUwNDNFXHUwNDM2XHUwNDNEXHUwNDNFXHUwNDI3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0M0NcdTA0M0VcdTA0NDJcdTA0NDBcdTA0MzVcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQyMVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDNDXHUwNDQyU1FMXHUwNDE0XHUwNDMwXHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzQ1x1MDQ0Mlx1MDQxNFx1MDQzMFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjRcdTA0M0NcdTA0NDJcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDI0XHUwNDNDXHUwNDQyXHUwNDI3XHUwNDQxXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjZcdTA0MUNcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzJcdTA0MkRcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgXCJcbiAgICArIFwiXHUwNDI2XHUwNDFEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDE0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyNlx1MDQxRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcIjtcblxuICAvLyBcdTA0MUZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1ID09PiBidWlsdF9pblxuICBjb25zdCBwcmVkZWZpbmVkX3ZhcmlhYmxlcyA9XG4gICAgXCJBbHRTdGF0ZSBcIlxuICAgICsgXCJBcHBsaWNhdGlvbiBcIlxuICAgICsgXCJDYWxsVHlwZSBcIlxuICAgICsgXCJDb21wb25lbnRUb2tlbnMgXCJcbiAgICArIFwiQ3JlYXRlZEpvYnMgXCJcbiAgICArIFwiQ3JlYXRlZE5vdGljZXMgXCJcbiAgICArIFwiQ29udHJvbFN0YXRlIFwiXG4gICAgKyBcIkRpYWxvZ1Jlc3VsdCBcIlxuICAgICsgXCJEaWFsb2dzIFwiXG4gICAgKyBcIkVEb2N1bWVudHMgXCJcbiAgICArIFwiRURvY3VtZW50VmVyc2lvblNvdXJjZSBcIlxuICAgICsgXCJGb2xkZXJzIFwiXG4gICAgKyBcIkdsb2JhbElEcyBcIlxuICAgICsgXCJKb2IgXCJcbiAgICArIFwiSm9icyBcIlxuICAgICsgXCJJbnB1dFZhbHVlIFwiXG4gICAgKyBcIkxvb2tVcFJlZmVyZW5jZSBcIlxuICAgICsgXCJMb29rVXBSZXF1aXNpdGVOYW1lcyBcIlxuICAgICsgXCJMb29rVXBTZWFyY2ggXCJcbiAgICArIFwiT2JqZWN0IFwiXG4gICAgKyBcIlBhcmVudENvbXBvbmVudCBcIlxuICAgICsgXCJQcm9jZXNzZXMgXCJcbiAgICArIFwiUmVmZXJlbmNlcyBcIlxuICAgICsgXCJSZXF1aXNpdGUgXCJcbiAgICArIFwiUmVwb3J0TmFtZSBcIlxuICAgICsgXCJSZXBvcnRzIFwiXG4gICAgKyBcIlJlc3VsdCBcIlxuICAgICsgXCJTY3JpcHRzIFwiXG4gICAgKyBcIlNlYXJjaGVzIFwiXG4gICAgKyBcIlNlbGVjdGVkQXR0YWNobWVudHMgXCJcbiAgICArIFwiU2VsZWN0ZWRJdGVtcyBcIlxuICAgICsgXCJTZWxlY3RNb2RlIFwiXG4gICAgKyBcIlNlbmRlciBcIlxuICAgICsgXCJTZXJ2ZXJFdmVudHMgXCJcbiAgICArIFwiU2VydmljZUZhY3RvcnkgXCJcbiAgICArIFwiU2hpZnRTdGF0ZSBcIlxuICAgICsgXCJTdWJUYXNrIFwiXG4gICAgKyBcIlN5c3RlbURpYWxvZ3MgXCJcbiAgICArIFwiVGFza3MgXCJcbiAgICArIFwiV2l6YXJkIFwiXG4gICAgKyBcIldpemFyZHMgXCJcbiAgICArIFwiV29yayBcIlxuICAgICsgXCJcdTA0MTJcdTA0NEJcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MjFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzEgXCJcbiAgICArIFwiXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxN1x1MDQzRFx1MDQzMFx1MDQ0NyBcIjtcblxuICAvLyBcdTA0MThcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NEIgPT0+IHR5cGVcbiAgY29uc3QgaW50ZXJmYWNlcyA9XG4gICAgXCJJQXBwbGljYXRpb24gXCJcbiAgICArIFwiSUFjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJJQWNjb3VudFJlcG9zaXRvcnkgXCJcbiAgICArIFwiSUFjY291bnRTZWxlY3Rpb25SZXN0cmljdGlvbnMgXCJcbiAgICArIFwiSUFjdGlvbiBcIlxuICAgICsgXCJJQWN0aW9uTGlzdCBcIlxuICAgICsgXCJJQWRtaW5pc3RyYXRpb25IaXN0b3J5RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSUFuY2hvcnMgXCJcbiAgICArIFwiSUFwcGxpY2F0aW9uIFwiXG4gICAgKyBcIklBcmNoaXZlSW5mbyBcIlxuICAgICsgXCJJQXR0YWNobWVudCBcIlxuICAgICsgXCJJQXR0YWNobWVudExpc3QgXCJcbiAgICArIFwiSUNoZWNrTGlzdEJveCBcIlxuICAgICsgXCJJQ2hlY2tQb2ludGVkTGlzdCBcIlxuICAgICsgXCJJQ29sdW1uIFwiXG4gICAgKyBcIklDb21wb25lbnQgXCJcbiAgICArIFwiSUNvbXBvbmVudERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklDb21wb25lbnRUb2tlbiBcIlxuICAgICsgXCJJQ29tcG9uZW50VG9rZW5GYWN0b3J5IFwiXG4gICAgKyBcIklDb21wb25lbnRUb2tlbkluZm8gXCJcbiAgICArIFwiSUNvbXBSZWNvcmRJbmZvIFwiXG4gICAgKyBcIklDb25uZWN0aW9uIFwiXG4gICAgKyBcIklDb250ZW50cyBcIlxuICAgICsgXCJJQ29udHJvbCBcIlxuICAgICsgXCJJQ29udHJvbEpvYiBcIlxuICAgICsgXCJJQ29udHJvbEpvYkluZm8gXCJcbiAgICArIFwiSUNvbnRyb2xMaXN0IFwiXG4gICAgKyBcIklDcnlwdG8gXCJcbiAgICArIFwiSUNyeXB0bzIgXCJcbiAgICArIFwiSUN1c3RvbUpvYiBcIlxuICAgICsgXCJJQ3VzdG9tSm9iSW5mbyBcIlxuICAgICsgXCJJQ3VzdG9tTGlzdEJveCBcIlxuICAgICsgXCJJQ3VzdG9tT2JqZWN0V2l6YXJkU3RlcCBcIlxuICAgICsgXCJJQ3VzdG9tV29yayBcIlxuICAgICsgXCJJQ3VzdG9tV29ya0luZm8gXCJcbiAgICArIFwiSURhdGFTZXQgXCJcbiAgICArIFwiSURhdGFTZXRBY2Nlc3NJbmZvIFwiXG4gICAgKyBcIklEYXRhU2lnbmVyIFwiXG4gICAgKyBcIklEYXRlQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklEYXRlUmVxdWlzaXRlIFwiXG4gICAgKyBcIklEYXRlUmVxdWlzaXRlRGVzY3JpcHRpb24gXCJcbiAgICArIFwiSURhdGVWYWx1ZSBcIlxuICAgICsgXCJJRGVhQWNjZXNzUmlnaHRzIFwiXG4gICAgKyBcIklEZWFPYmplY3RJbmZvIFwiXG4gICAgKyBcIklEZXZlbG9wbWVudENvbXBvbmVudExvY2sgXCJcbiAgICArIFwiSURpYWxvZyBcIlxuICAgICsgXCJJRGlhbG9nRmFjdG9yeSBcIlxuICAgICsgXCJJRGlhbG9nUGlja1JlcXVpc2l0ZUl0ZW1zIFwiXG4gICAgKyBcIklEaWFsb2dzRmFjdG9yeSBcIlxuICAgICsgXCJJRElDU0ZhY3RvcnkgXCJcbiAgICArIFwiSURvY1JlcXVpc2l0ZSBcIlxuICAgICsgXCJJRG9jdW1lbnRJbmZvIFwiXG4gICAgKyBcIklEdWFsTGlzdERpYWxvZyBcIlxuICAgICsgXCJJRUNlcnRpZmljYXRlIFwiXG4gICAgKyBcIklFQ2VydGlmaWNhdGVJbmZvIFwiXG4gICAgKyBcIklFQ2VydGlmaWNhdGVzIFwiXG4gICAgKyBcIklFZGl0Q29udHJvbCBcIlxuICAgICsgXCJJRWRpdG9yRm9ybSBcIlxuICAgICsgXCJJRWRtc0V4cGxvcmVyIFwiXG4gICAgKyBcIklFZG1zT2JqZWN0IFwiXG4gICAgKyBcIklFZG1zT2JqZWN0RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSUVkbXNPYmplY3RGYWN0b3J5IFwiXG4gICAgKyBcIklFZG1zT2JqZWN0SW5mbyBcIlxuICAgICsgXCJJRURvY3VtZW50IFwiXG4gICAgKyBcIklFRG9jdW1lbnRBY2Nlc3NSaWdodHMgXCJcbiAgICArIFwiSUVEb2N1bWVudERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklFRG9jdW1lbnRFZGl0b3IgXCJcbiAgICArIFwiSUVEb2N1bWVudEZhY3RvcnkgXCJcbiAgICArIFwiSUVEb2N1bWVudEluZm8gXCJcbiAgICArIFwiSUVEb2N1bWVudFN0b3JhZ2UgXCJcbiAgICArIFwiSUVEb2N1bWVudFZlcnNpb24gXCJcbiAgICArIFwiSUVEb2N1bWVudFZlcnNpb25MaXN0RGlhbG9nIFwiXG4gICAgKyBcIklFRG9jdW1lbnRWZXJzaW9uU291cmNlIFwiXG4gICAgKyBcIklFRG9jdW1lbnRXaXphcmRTdGVwIFwiXG4gICAgKyBcIklFRG9jVmVyU2lnbmF0dXJlIFwiXG4gICAgKyBcIklFRG9jVmVyc2lvblN0YXRlIFwiXG4gICAgKyBcIklFbmFibGVkTW9kZSBcIlxuICAgICsgXCJJRW5jb2RlUHJvdmlkZXIgXCJcbiAgICArIFwiSUVuY3J5cHRlciBcIlxuICAgICsgXCJJRXZlbnQgXCJcbiAgICArIFwiSUV2ZW50TGlzdCBcIlxuICAgICsgXCJJRXhjZXB0aW9uIFwiXG4gICAgKyBcIklFeHRlcm5hbEV2ZW50cyBcIlxuICAgICsgXCJJRXh0ZXJuYWxIYW5kbGVyIFwiXG4gICAgKyBcIklGYWN0b3J5IFwiXG4gICAgKyBcIklGaWVsZCBcIlxuICAgICsgXCJJRmlsZURpYWxvZyBcIlxuICAgICsgXCJJRm9sZGVyIFwiXG4gICAgKyBcIklGb2xkZXJEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJRm9sZGVyRGlhbG9nIFwiXG4gICAgKyBcIklGb2xkZXJGYWN0b3J5IFwiXG4gICAgKyBcIklGb2xkZXJJbmZvIFwiXG4gICAgKyBcIklGb3JFYWNoIFwiXG4gICAgKyBcIklGb3JtIFwiXG4gICAgKyBcIklGb3JtVGl0bGUgXCJcbiAgICArIFwiSUZvcm1XaXphcmRTdGVwIFwiXG4gICAgKyBcIklHbG9iYWxJREZhY3RvcnkgXCJcbiAgICArIFwiSUdsb2JhbElESW5mbyBcIlxuICAgICsgXCJJR3JpZCBcIlxuICAgICsgXCJJSGFzaGVyIFwiXG4gICAgKyBcIklIaXN0b3J5RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSUh5cGVyTGlua0NvbnRyb2wgXCJcbiAgICArIFwiSUltYWdlQnV0dG9uIFwiXG4gICAgKyBcIklJbWFnZUNvbnRyb2wgXCJcbiAgICArIFwiSUlubmVyUGFuZWwgXCJcbiAgICArIFwiSUlucGxhY2VIaW50IFwiXG4gICAgKyBcIklJbnRlZ2VyQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklJbnRlZ2VyTGlzdCBcIlxuICAgICsgXCJJSW50ZWdlclJlcXVpc2l0ZSBcIlxuICAgICsgXCJJSW50ZWdlclZhbHVlIFwiXG4gICAgKyBcIklJU0JMRWRpdG9yRm9ybSBcIlxuICAgICsgXCJJSm9iIFwiXG4gICAgKyBcIklKb2JEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJSm9iRmFjdG9yeSBcIlxuICAgICsgXCJJSm9iRm9ybSBcIlxuICAgICsgXCJJSm9iSW5mbyBcIlxuICAgICsgXCJJTGFiZWxDb250cm9sIFwiXG4gICAgKyBcIklMYXJnZUludGVnZXJDcml0ZXJpb24gXCJcbiAgICArIFwiSUxhcmdlSW50ZWdlclJlcXVpc2l0ZSBcIlxuICAgICsgXCJJTGFyZ2VJbnRlZ2VyVmFsdWUgXCJcbiAgICArIFwiSUxpY2Vuc2VJbmZvIFwiXG4gICAgKyBcIklMaWZlQ3ljbGVTdGFnZSBcIlxuICAgICsgXCJJTGlzdCBcIlxuICAgICsgXCJJTGlzdEJveCBcIlxuICAgICsgXCJJTG9jYWxJREluZm8gXCJcbiAgICArIFwiSUxvY2FsaXphdGlvbiBcIlxuICAgICsgXCJJTG9jayBcIlxuICAgICsgXCJJTWVtb3J5RGF0YVNldCBcIlxuICAgICsgXCJJTWVzc2FnaW5nRmFjdG9yeSBcIlxuICAgICsgXCJJTWV0YWRhdGFSZXBvc2l0b3J5IFwiXG4gICAgKyBcIklOb3RpY2UgXCJcbiAgICArIFwiSU5vdGljZUluZm8gXCJcbiAgICArIFwiSU51bWVyaWNDcml0ZXJpb24gXCJcbiAgICArIFwiSU51bWVyaWNSZXF1aXNpdGUgXCJcbiAgICArIFwiSU51bWVyaWNWYWx1ZSBcIlxuICAgICsgXCJJT2JqZWN0IFwiXG4gICAgKyBcIklPYmplY3REZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJT2JqZWN0SW1wb3J0ZXIgXCJcbiAgICArIFwiSU9iamVjdEluZm8gXCJcbiAgICArIFwiSU9ic2VydmVyIFwiXG4gICAgKyBcIklQYW5lbEdyb3VwIFwiXG4gICAgKyBcIklQaWNrQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklQaWNrUHJvcGVydHkgXCJcbiAgICArIFwiSVBpY2tSZXF1aXNpdGUgXCJcbiAgICArIFwiSVBpY2tSZXF1aXNpdGVEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJUGlja1JlcXVpc2l0ZUl0ZW0gXCJcbiAgICArIFwiSVBpY2tSZXF1aXNpdGVJdGVtcyBcIlxuICAgICsgXCJJUGlja1ZhbHVlIFwiXG4gICAgKyBcIklQcml2aWxlZ2UgXCJcbiAgICArIFwiSVByaXZpbGVnZUxpc3QgXCJcbiAgICArIFwiSVByb2Nlc3MgXCJcbiAgICArIFwiSVByb2Nlc3NGYWN0b3J5IFwiXG4gICAgKyBcIklQcm9jZXNzTWVzc2FnZSBcIlxuICAgICsgXCJJUHJvZ3Jlc3MgXCJcbiAgICArIFwiSVByb3BlcnR5IFwiXG4gICAgKyBcIklQcm9wZXJ0eUNoYW5nZUV2ZW50IFwiXG4gICAgKyBcIklRdWVyeSBcIlxuICAgICsgXCJJUmVmZXJlbmNlIFwiXG4gICAgKyBcIklSZWZlcmVuY2VDcml0ZXJpb24gXCJcbiAgICArIFwiSVJlZmVyZW5jZUVuYWJsZWRNb2RlIFwiXG4gICAgKyBcIklSZWZlcmVuY2VGYWN0b3J5IFwiXG4gICAgKyBcIklSZWZlcmVuY2VIaXN0b3J5RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSVJlZmVyZW5jZUluZm8gXCJcbiAgICArIFwiSVJlZmVyZW5jZVJlY29yZENhcmRXaXphcmRTdGVwIFwiXG4gICAgKyBcIklSZWZlcmVuY2VSZXF1aXNpdGVEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJUmVmZXJlbmNlc0ZhY3RvcnkgXCJcbiAgICArIFwiSVJlZmVyZW5jZVZhbHVlIFwiXG4gICAgKyBcIklSZWZSZXF1aXNpdGUgXCJcbiAgICArIFwiSVJlcG9ydCBcIlxuICAgICsgXCJJUmVwb3J0RmFjdG9yeSBcIlxuICAgICsgXCJJUmVxdWlzaXRlIFwiXG4gICAgKyBcIklSZXF1aXNpdGVEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJUmVxdWlzaXRlRGVzY3JpcHRpb25MaXN0IFwiXG4gICAgKyBcIklSZXF1aXNpdGVGYWN0b3J5IFwiXG4gICAgKyBcIklSaWNoRWRpdCBcIlxuICAgICsgXCJJUm91dGVTdGVwIFwiXG4gICAgKyBcIklSdWxlIFwiXG4gICAgKyBcIklSdWxlTGlzdCBcIlxuICAgICsgXCJJU2NoZW1lQmxvY2sgXCJcbiAgICArIFwiSVNjcmlwdCBcIlxuICAgICsgXCJJU2NyaXB0RmFjdG9yeSBcIlxuICAgICsgXCJJU2VhcmNoQ3JpdGVyaWEgXCJcbiAgICArIFwiSVNlYXJjaENyaXRlcmlvbiBcIlxuICAgICsgXCJJU2VhcmNoRGVzY3JpcHRpb24gXCJcbiAgICArIFwiSVNlYXJjaEZhY3RvcnkgXCJcbiAgICArIFwiSVNlYXJjaEZvbGRlckluZm8gXCJcbiAgICArIFwiSVNlYXJjaEZvck9iamVjdERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklTZWFyY2hSZXN1bHRSZXN0cmljdGlvbnMgXCJcbiAgICArIFwiSVNlY3VyZWRDb250ZXh0IFwiXG4gICAgKyBcIklTZWxlY3REaWFsb2cgXCJcbiAgICArIFwiSVNlcnZlckV2ZW50IFwiXG4gICAgKyBcIklTZXJ2ZXJFdmVudEZhY3RvcnkgXCJcbiAgICArIFwiSVNlcnZpY2VEaWFsb2cgXCJcbiAgICArIFwiSVNlcnZpY2VGYWN0b3J5IFwiXG4gICAgKyBcIklTaWduYXR1cmUgXCJcbiAgICArIFwiSVNpZ25Qcm92aWRlciBcIlxuICAgICsgXCJJU2lnblByb3ZpZGVyMiBcIlxuICAgICsgXCJJU2lnblByb3ZpZGVyMyBcIlxuICAgICsgXCJJU2ltcGxlQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklTdHJpbmdDcml0ZXJpb24gXCJcbiAgICArIFwiSVN0cmluZ0xpc3QgXCJcbiAgICArIFwiSVN0cmluZ1JlcXVpc2l0ZSBcIlxuICAgICsgXCJJU3RyaW5nUmVxdWlzaXRlRGVzY3JpcHRpb24gXCJcbiAgICArIFwiSVN0cmluZ1ZhbHVlIFwiXG4gICAgKyBcIklTeXN0ZW1EaWFsb2dzRmFjdG9yeSBcIlxuICAgICsgXCJJU3lzdGVtSW5mbyBcIlxuICAgICsgXCJJVGFiU2hlZXQgXCJcbiAgICArIFwiSVRhc2sgXCJcbiAgICArIFwiSVRhc2tBYm9ydFJlYXNvbkluZm8gXCJcbiAgICArIFwiSVRhc2tDYXJkV2l6YXJkU3RlcCBcIlxuICAgICsgXCJJVGFza0Rlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklUYXNrRmFjdG9yeSBcIlxuICAgICsgXCJJVGFza0luZm8gXCJcbiAgICArIFwiSVRhc2tSb3V0ZSBcIlxuICAgICsgXCJJVGV4dENyaXRlcmlvbiBcIlxuICAgICsgXCJJVGV4dFJlcXVpc2l0ZSBcIlxuICAgICsgXCJJVGV4dFZhbHVlIFwiXG4gICAgKyBcIklUcmVlTGlzdFNlbGVjdERpYWxvZyBcIlxuICAgICsgXCJJVXNlciBcIlxuICAgICsgXCJJVXNlckxpc3QgXCJcbiAgICArIFwiSVZhbHVlIFwiXG4gICAgKyBcIklWaWV3IFwiXG4gICAgKyBcIklXZWJCcm93c2VyQ29udHJvbCBcIlxuICAgICsgXCJJV2l6YXJkIFwiXG4gICAgKyBcIklXaXphcmRBY3Rpb24gXCJcbiAgICArIFwiSVdpemFyZEZhY3RvcnkgXCJcbiAgICArIFwiSVdpemFyZEZvcm1FbGVtZW50IFwiXG4gICAgKyBcIklXaXphcmRQYXJhbSBcIlxuICAgICsgXCJJV2l6YXJkUGlja1BhcmFtIFwiXG4gICAgKyBcIklXaXphcmRSZWZlcmVuY2VQYXJhbSBcIlxuICAgICsgXCJJV2l6YXJkU3RlcCBcIlxuICAgICsgXCJJV29ya0FjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJJV29ya0Rlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklXb3JrZmxvd0Fza2FibGVQYXJhbSBcIlxuICAgICsgXCJJV29ya2Zsb3dBc2thYmxlUGFyYW1zIFwiXG4gICAgKyBcIklXb3JrZmxvd0Jsb2NrIFwiXG4gICAgKyBcIklXb3JrZmxvd0Jsb2NrUmVzdWx0IFwiXG4gICAgKyBcIklXb3JrZmxvd0VuYWJsZWRNb2RlIFwiXG4gICAgKyBcIklXb3JrZmxvd1BhcmFtIFwiXG4gICAgKyBcIklXb3JrZmxvd1BpY2tQYXJhbSBcIlxuICAgICsgXCJJV29ya2Zsb3dSZWZlcmVuY2VQYXJhbSBcIlxuICAgICsgXCJJV29ya1N0YXRlIFwiXG4gICAgKyBcIklXb3JrVHJlZUN1c3RvbU5vZGUgXCJcbiAgICArIFwiSVdvcmtUcmVlSm9iTm9kZSBcIlxuICAgICsgXCJJV29ya1RyZWVUYXNrTm9kZSBcIlxuICAgICsgXCJJWE1MRWRpdG9yRm9ybSBcIlxuICAgICsgXCJTQkNyeXB0byBcIjtcblxuICAvLyBidWlsdF9pbiA6IFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MzhcdTA0M0JcdTA0MzggXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQ0QiAoXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDRCLCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYpXG4gIGNvbnN0IEJVSUxUSU4gPSBDT05TVEFOVFMgKyBFTlVNUztcblxuICAvLyBjbGFzczogXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQ0QiBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzksIFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NEIsIFx1MDQ0NFx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOFx1MDQzQVx1MDQzOFxuICBjb25zdCBDTEFTUyA9IHByZWRlZmluZWRfdmFyaWFibGVzO1xuXG4gIC8vIGxpdGVyYWwgOiBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0NcdTA0MzhcdTA0NDJcdTA0MzhcdTA0MzJcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDRCXG4gIGNvbnN0IExJVEVSQUwgPSBcIm51bGwgdHJ1ZSBmYWxzZSBuaWwgXCI7XG5cbiAgLy8gbnVtYmVyIDogXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDMwXG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiBcIm51bWJlclwiLFxuICAgIGJlZ2luOiBobGpzLk5VTUJFUl9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyBzdHJpbmcgOiBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzhcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6IFwic3RyaW5nXCIsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiJ1wiLFxuICAgICAgICBlbmQ6IFwiJ1wiXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIC8vIFx1MDQyMlx1MDQzRVx1MDQzQVx1MDQzNVx1MDQzRFx1MDQ0QlxuICBjb25zdCBET0NUQUdTID0ge1xuICAgIGNsYXNzTmFtZTogXCJkb2N0YWdcIixcbiAgICBiZWdpbjogXCJcXFxcYig/OlRPRE98RE9ORXxCRUdJTnxFTkR8U1RVQnxDSEd8RklYTUV8Tk9URXxCVUd8WFhYKVxcXFxiXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgLy8gXHUwNDFFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDM5IFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzOVxuICBjb25zdCBJU0JMX0xJTkVfQ09NTUVOVF9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgYmVnaW46IFwiLy9cIixcbiAgICBlbmQ6IFwiJFwiLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5QSFJBU0FMX1dPUkRTX01PREUsXG4gICAgICBET0NUQUdTXG4gICAgXVxuICB9O1xuXG4gIC8vIFx1MDQxQ1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzOSBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzlcbiAgY29uc3QgSVNCTF9CTE9DS19DT01NRU5UX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICBiZWdpbjogXCIvXFxcXCpcIixcbiAgICBlbmQ6IFwiXFxcXCovXCIsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlBIUkFTQUxfV09SRFNfTU9ERSxcbiAgICAgIERPQ1RBR1NcbiAgICBdXG4gIH07XG5cbiAgLy8gY29tbWVudCA6IFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzOFxuICBjb25zdCBDT01NRU5UUyA9IHsgdmFyaWFudHM6IFtcbiAgICBJU0JMX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIElTQkxfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gIF0gfTtcblxuICAvLyBrZXl3b3JkcyA6IFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzMlx1MDQ0Qlx1MDQzNSBcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzBcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAgJHBhdHRlcm46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAga2V5d29yZDogS0VZV09SRCxcbiAgICBidWlsdF9pbjogQlVJTFRJTixcbiAgICBjbGFzczogQ0xBU1MsXG4gICAgbGl0ZXJhbDogTElURVJBTFxuICB9O1xuXG4gIC8vIG1ldGhvZHMgOiBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0NEJcbiAgY29uc3QgTUVUSE9EUyA9IHtcbiAgICBiZWdpbjogXCJcXFxcLlxcXFxzKlwiICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyB0eXBlIDogXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0QlxuICBjb25zdCBUWVBFUyA9IHtcbiAgICBjbGFzc05hbWU6IFwidHlwZVwiLFxuICAgIGJlZ2luOiBcIjpbIFxcXFx0XSooXCIgKyBpbnRlcmZhY2VzLnRyaW0oKS5yZXBsYWNlKC9cXHMvZywgXCJ8XCIpICsgXCIpXCIsXG4gICAgZW5kOiBcIlsgXFxcXHRdKj1cIixcbiAgICBleGNsdWRlRW5kOiB0cnVlXG4gIH07XG5cbiAgLy8gdmFyaWFibGVzIDogXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XG4gIGNvbnN0IFZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgYmVnaW46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUWVBFUyxcbiAgICAgIE1FVEhPRFNcbiAgICBdXG4gIH07XG5cbiAgLy8gXHUwNDE4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOVxuICBjb25zdCBGVU5DVElPTl9USVRMRSA9IEZVTkNUSU9OX05BTUVfSURFTlRfUkUgKyBcIlxcXFwoXCI7XG5cbiAgY29uc3QgVElUTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6IFwidGl0bGVcIixcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICBidWlsdF9pbjogc3lzdGVtX2Z1bmN0aW9uc1xuICAgIH0sXG4gICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgIGVuZDogXCJcXFxcKFwiLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgfTtcblxuICAvLyBmdW5jdGlvbiA6IFx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOFxuICBjb25zdCBGVU5DVElPTlMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImZ1bmN0aW9uXCIsXG4gICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgIGVuZDogXCJcXFxcKSRcIixcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogXCJbXFxcXFtcXFxcXVxcXFx8XFxcXCRcXFxcPyUsfiNAXVwiLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUSVRMRV9NT0RFLFxuICAgICAgTUVUSE9EUyxcbiAgICAgIFZBUklBQkxFUyxcbiAgICAgIFNUUklOR1MsXG4gICAgICBOVU1CRVJTLFxuICAgICAgQ09NTUVOVFNcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSVNCTCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogXCJcXFxcJHxcXFxcP3wlfCx8OyR8fnwjfEB8PC9cIixcbiAgICBjb250YWluczogW1xuICAgICAgRlVOQ1RJT05TLFxuICAgICAgVFlQRVMsXG4gICAgICBNRVRIT0RTLFxuICAgICAgVkFSSUFCTEVTLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBDT01NRU5UU1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc2JsO1xuIiwgIi8vIGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS9zcGVjcy9qbHMvc2UxNS9odG1sL2pscy0zLmh0bWwjamxzLTMuMTBcbnZhciBkZWNpbWFsRGlnaXRzID0gJ1swLTldKF8qWzAtOV0pKic7XG52YXIgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG52YXIgaGV4RGlnaXRzID0gJ1swLTlhLWZBLUZdKF8qWzAtOWEtZkEtRl0pKic7XG52YXIgTlVNRVJJQyA9IHtcbiAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgdmFyaWFudHM6IFtcbiAgICAvLyBEZWNpbWFsRmxvYXRpbmdQb2ludExpdGVyYWxcbiAgICAvLyBpbmNsdWRpbmcgRXhwb25lbnRQYXJ0XG4gICAgeyBiZWdpbjogYChcXFxcYigke2RlY2ltYWxEaWdpdHN9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICBgW2VFXVsrLV0/KCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdP1xcXFxiYCB9LFxuICAgIC8vIGV4Y2x1ZGluZyBFeHBvbmVudFBhcnRcbiAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoKCR7ZnJhY30pW2ZGZERdP1xcXFxifFxcXFwuKFtmRmREXVxcXFxiKT8pYCB9LFxuICAgIHsgYmVnaW46IGAoJHtmcmFjfSlbZkZkRF0/XFxcXGJgIH0sXG4gICAgeyBiZWdpbjogYFxcXFxiKCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdXFxcXGJgIH0sXG5cbiAgICAvLyBIZXhhZGVjaW1hbEZsb2F0aW5nUG9pbnRMaXRlcmFsXG4gICAgeyBiZWdpbjogYFxcXFxiMFt4WF0oKCR7aGV4RGlnaXRzfSlcXFxcLj98KCR7aGV4RGlnaXRzfSk/XFxcXC4oJHtoZXhEaWdpdHN9KSlgICtcbiAgICAgIGBbcFBdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlbZkZkRF0/XFxcXGJgIH0sXG5cbiAgICAvLyBEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIoMHxbMS05XShfKlswLTldKSopW2xMXT9cXFxcYicgfSxcblxuICAgIC8vIEhleEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogYFxcXFxiMFt4WF0oJHtoZXhEaWdpdHN9KVtsTF0/XFxcXGJgIH0sXG5cbiAgICAvLyBPY3RhbEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiMChfKlswLTddKSpbbExdP1xcXFxiJyB9LFxuXG4gICAgLy8gQmluYXJ5SW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIwW2JCXVswMV0oXypbMDFdKSpbbExdP1xcXFxiJyB9LFxuICBdLFxuICByZWxldmFuY2U6IDBcbn07XG5cbi8qXG5MYW5ndWFnZTogSmF2YVxuQXV0aG9yOiBWc2V2b2xvZCBTb2xvdnlvdiA8dnNldm9sb2Quc29sb3Z5b3ZAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vbiwgZW50ZXJwcmlzZVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuamF2YS5jb20vXG4qL1xuXG5cbi8qKlxuICogQWxsb3dzIHJlY3Vyc2l2ZSByZWdleCBleHByZXNzaW9ucyB0byBhIGdpdmVuIGRlcHRoXG4gKlxuICogaWU6IHJlY3VyUmVnZXgoXCIoYWJjfn5+KVwiLCAvfn5+L2csIDIpIGJlY29tZXM6XG4gKiAoYWJjKGFiYyhhYmMpKSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVcbiAqIEBwYXJhbSB7UmVnRXhwfSBzdWJzdGl0dXRpb24gKHNob3VsZCBiZSBhIGcgbW9kZSByZWdleClcbiAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aFxuICogQHJldHVybnMge3N0cmluZ31gYFxuICovXG5mdW5jdGlvbiByZWN1clJlZ2V4KHJlLCBzdWJzdGl0dXRpb24sIGRlcHRoKSB7XG4gIGlmIChkZXB0aCA9PT0gLTEpIHJldHVybiBcIlwiO1xuXG4gIHJldHVybiByZS5yZXBsYWNlKHN1YnN0aXR1dGlvbiwgXyA9PiB7XG4gICAgcmV0dXJuIHJlY3VyUmVnZXgocmUsIHN1YnN0aXR1dGlvbiwgZGVwdGggLSAxKTtcbiAgfSk7XG59XG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBKQVZBX0lERU5UX1JFID0gJ1tcXHUwMEMwLVxcdTAyQjhhLXpBLVpfJF1bXFx1MDBDMC1cXHUwMkI4YS16QS1aXyQwLTldKic7XG4gIGNvbnN0IEdFTkVSSUNfSURFTlRfUkUgPSBKQVZBX0lERU5UX1JFXG4gICAgKyByZWN1clJlZ2V4KCcoPzo8JyArIEpBVkFfSURFTlRfUkUgKyAnfn5+KD86XFxcXHMqLFxcXFxzKicgKyBKQVZBX0lERU5UX1JFICsgJ35+fikqPik/JywgL35+fi9nLCAyKTtcbiAgY29uc3QgTUFJTl9LRVlXT1JEUyA9IFtcbiAgICAnc3luY2hyb25pemVkJyxcbiAgICAnYWJzdHJhY3QnLFxuICAgICdwcml2YXRlJyxcbiAgICAndmFyJyxcbiAgICAnc3RhdGljJyxcbiAgICAnaWYnLFxuICAgICdjb25zdCAnLFxuICAgICdmb3InLFxuICAgICd3aGlsZScsXG4gICAgJ3N0cmljdGZwJyxcbiAgICAnZmluYWxseScsXG4gICAgJ3Byb3RlY3RlZCcsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ25hdGl2ZScsXG4gICAgJ2ZpbmFsJyxcbiAgICAndm9pZCcsXG4gICAgJ2VudW0nLFxuICAgICdlbHNlJyxcbiAgICAnYnJlYWsnLFxuICAgICd0cmFuc2llbnQnLFxuICAgICdjYXRjaCcsXG4gICAgJ2luc3RhbmNlb2YnLFxuICAgICd2b2xhdGlsZScsXG4gICAgJ2Nhc2UnLFxuICAgICdhc3NlcnQnLFxuICAgICdwYWNrYWdlJyxcbiAgICAnZGVmYXVsdCcsXG4gICAgJ3B1YmxpYycsXG4gICAgJ3RyeScsXG4gICAgJ3N3aXRjaCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAndGhyb3dzJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAncHVibGljJyxcbiAgICAncHJpdmF0ZScsXG4gICAgJ21vZHVsZScsXG4gICAgJ3JlcXVpcmVzJyxcbiAgICAnZXhwb3J0cycsXG4gICAgJ2RvJyxcbiAgICAnc2VhbGVkJyxcbiAgICAneWllbGQnLFxuICAgICdwZXJtaXRzJyxcbiAgICAnZ290bydcbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgJ3N1cGVyJyxcbiAgICAndGhpcydcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAnZmFsc2UnLFxuICAgICd0cnVlJyxcbiAgICAnbnVsbCdcbiAgXTtcblxuICBjb25zdCBUWVBFUyA9IFtcbiAgICAnY2hhcicsXG4gICAgJ2Jvb2xlYW4nLFxuICAgICdsb25nJyxcbiAgICAnZmxvYXQnLFxuICAgICdpbnQnLFxuICAgICdieXRlJyxcbiAgICAnc2hvcnQnLFxuICAgICdkb3VibGUnXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogTUFJTl9LRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICB0eXBlOiBUWVBFUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gIH07XG5cbiAgY29uc3QgQU5OT1RBVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AnICsgSkFWQV9JREVOVF9SRSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIFwic2VsZlwiIF0gLy8gYWxsb3cgbmVzdGVkICgpIGluc2lkZSBvdXIgYW5ub3RhdGlvblxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogWyBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFIF0sXG4gICAgZW5kc1BhcmVudDogdHJ1ZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0phdmEnLFxuICAgIGFsaWFzZXM6IFsgJ2pzcCcgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLzxcXC98Iy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKlxcXFwqJyxcbiAgICAgICAgJ1xcXFwqLycsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gZWF0IHVwIEAncyBpbiBlbWFpbHMgdG8gcHJldmVudCB0aGVtIHRvIGJlIHJlY29nbml6ZWQgYXMgZG9jdGFnc1xuICAgICAgICAgICAgICBiZWdpbjogL1xcdytALyxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgLy8gcmVsZXZhbmNlIGJvb3N0XG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvaW1wb3J0IGphdmFcXC5bYS16XStcXC4vLFxuICAgICAgICBrZXl3b3JkczogXCJpbXBvcnRcIixcbiAgICAgICAgcmVsZXZhbmNlOiAyXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjbGFzc05hbWU6IFwic3RyaW5nXCIsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvXFxiKD86Y2xhc3N8aW50ZXJmYWNlfGVudW18ZXh0ZW5kc3xpbXBsZW1lbnRzfG5ldykvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBKQVZBX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBFeGNlcHRpb25zIGZvciBoeXBoZW5hdGVkIGtleXdvcmRzXG4gICAgICAgIG1hdGNoOiAvbm9uLXNlYWxlZC8sXG4gICAgICAgIHNjb3BlOiBcImtleXdvcmRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICByZWdleC5jb25jYXQoLyg/IWVsc2UpLywgSkFWQV9JREVOVF9SRSksXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIEpBVkFfSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC89KD8hPSkvXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwidHlwZVwiLFxuICAgICAgICAgIDM6IFwidmFyaWFibGVcIixcbiAgICAgICAgICA1OiBcIm9wZXJhdG9yXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvcmVjb3JkLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgSkFWQV9JREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBQQVJBTVMsXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gRXhwcmVzc2lvbiBrZXl3b3JkcyBwcmV2ZW50ICdrZXl3b3JkIE5hbWUoLi4uKScgZnJvbSBiZWluZ1xuICAgICAgICAvLyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93IHJldHVybiBlbHNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgICcoPzonICsgR0VORVJJQ19JREVOVF9SRSArICdcXFxccyspJyxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMjogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIEFOTk9UQVRJT04sXG4gICAgICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgTlVNRVJJQyxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIE5VTUVSSUMsXG4gICAgICBBTk5PVEFUSU9OXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGphdmE7XG4iLCAiY29uc3QgSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbmNvbnN0IEtFWVdPUkRTID0gW1xuICBcImFzXCIsIC8vIGZvciBleHBvcnRzXG4gIFwiaW5cIixcbiAgXCJvZlwiLFxuICBcImlmXCIsXG4gIFwiZm9yXCIsXG4gIFwid2hpbGVcIixcbiAgXCJmaW5hbGx5XCIsXG4gIFwidmFyXCIsXG4gIFwibmV3XCIsXG4gIFwiZnVuY3Rpb25cIixcbiAgXCJkb1wiLFxuICBcInJldHVyblwiLFxuICBcInZvaWRcIixcbiAgXCJlbHNlXCIsXG4gIFwiYnJlYWtcIixcbiAgXCJjYXRjaFwiLFxuICBcImluc3RhbmNlb2ZcIixcbiAgXCJ3aXRoXCIsXG4gIFwidGhyb3dcIixcbiAgXCJjYXNlXCIsXG4gIFwiZGVmYXVsdFwiLFxuICBcInRyeVwiLFxuICBcInN3aXRjaFwiLFxuICBcImNvbnRpbnVlXCIsXG4gIFwidHlwZW9mXCIsXG4gIFwiZGVsZXRlXCIsXG4gIFwibGV0XCIsXG4gIFwieWllbGRcIixcbiAgXCJjb25zdFwiLFxuICBcImNsYXNzXCIsXG4gIC8vIEpTIGhhbmRsZXMgdGhlc2Ugd2l0aCBhIHNwZWNpYWwgcnVsZVxuICAvLyBcImdldFwiLFxuICAvLyBcInNldFwiLFxuICBcImRlYnVnZ2VyXCIsXG4gIFwiYXN5bmNcIixcbiAgXCJhd2FpdFwiLFxuICBcInN0YXRpY1wiLFxuICBcImltcG9ydFwiLFxuICBcImZyb21cIixcbiAgXCJleHBvcnRcIixcbiAgXCJleHRlbmRzXCJcbl07XG5jb25zdCBMSVRFUkFMUyA9IFtcbiAgXCJ0cnVlXCIsXG4gIFwiZmFsc2VcIixcbiAgXCJudWxsXCIsXG4gIFwidW5kZWZpbmVkXCIsXG4gIFwiTmFOXCIsXG4gIFwiSW5maW5pdHlcIlxuXTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHNcbmNvbnN0IFRZUEVTID0gW1xuICAvLyBGdW5kYW1lbnRhbCBvYmplY3RzXG4gIFwiT2JqZWN0XCIsXG4gIFwiRnVuY3Rpb25cIixcbiAgXCJCb29sZWFuXCIsXG4gIFwiU3ltYm9sXCIsXG4gIC8vIG51bWJlcnMgYW5kIGRhdGVzXG4gIFwiTWF0aFwiLFxuICBcIkRhdGVcIixcbiAgXCJOdW1iZXJcIixcbiAgXCJCaWdJbnRcIixcbiAgLy8gdGV4dFxuICBcIlN0cmluZ1wiLFxuICBcIlJlZ0V4cFwiLFxuICAvLyBJbmRleGVkIGNvbGxlY3Rpb25zXG4gIFwiQXJyYXlcIixcbiAgXCJGbG9hdDMyQXJyYXlcIixcbiAgXCJGbG9hdDY0QXJyYXlcIixcbiAgXCJJbnQ4QXJyYXlcIixcbiAgXCJVaW50OEFycmF5XCIsXG4gIFwiVWludDhDbGFtcGVkQXJyYXlcIixcbiAgXCJJbnQxNkFycmF5XCIsXG4gIFwiSW50MzJBcnJheVwiLFxuICBcIlVpbnQxNkFycmF5XCIsXG4gIFwiVWludDMyQXJyYXlcIixcbiAgXCJCaWdJbnQ2NEFycmF5XCIsXG4gIFwiQmlnVWludDY0QXJyYXlcIixcbiAgLy8gS2V5ZWQgY29sbGVjdGlvbnNcbiAgXCJTZXRcIixcbiAgXCJNYXBcIixcbiAgXCJXZWFrU2V0XCIsXG4gIFwiV2Vha01hcFwiLFxuICAvLyBTdHJ1Y3R1cmVkIGRhdGFcbiAgXCJBcnJheUJ1ZmZlclwiLFxuICBcIlNoYXJlZEFycmF5QnVmZmVyXCIsXG4gIFwiQXRvbWljc1wiLFxuICBcIkRhdGFWaWV3XCIsXG4gIFwiSlNPTlwiLFxuICAvLyBDb250cm9sIGFic3RyYWN0aW9uIG9iamVjdHNcbiAgXCJQcm9taXNlXCIsXG4gIFwiR2VuZXJhdG9yXCIsXG4gIFwiR2VuZXJhdG9yRnVuY3Rpb25cIixcbiAgXCJBc3luY0Z1bmN0aW9uXCIsXG4gIC8vIFJlZmxlY3Rpb25cbiAgXCJSZWZsZWN0XCIsXG4gIFwiUHJveHlcIixcbiAgLy8gSW50ZXJuYXRpb25hbGl6YXRpb25cbiAgXCJJbnRsXCIsXG4gIC8vIFdlYkFzc2VtYmx5XG4gIFwiV2ViQXNzZW1ibHlcIlxuXTtcblxuY29uc3QgRVJST1JfVFlQRVMgPSBbXG4gIFwiRXJyb3JcIixcbiAgXCJFdmFsRXJyb3JcIixcbiAgXCJJbnRlcm5hbEVycm9yXCIsXG4gIFwiUmFuZ2VFcnJvclwiLFxuICBcIlJlZmVyZW5jZUVycm9yXCIsXG4gIFwiU3ludGF4RXJyb3JcIixcbiAgXCJUeXBlRXJyb3JcIixcbiAgXCJVUklFcnJvclwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTl9HTE9CQUxTID0gW1xuICBcInNldEludGVydmFsXCIsXG4gIFwic2V0VGltZW91dFwiLFxuICBcImNsZWFySW50ZXJ2YWxcIixcbiAgXCJjbGVhclRpbWVvdXRcIixcblxuICBcInJlcXVpcmVcIixcbiAgXCJleHBvcnRzXCIsXG5cbiAgXCJldmFsXCIsXG4gIFwiaXNGaW5pdGVcIixcbiAgXCJpc05hTlwiLFxuICBcInBhcnNlRmxvYXRcIixcbiAgXCJwYXJzZUludFwiLFxuICBcImRlY29kZVVSSVwiLFxuICBcImRlY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVuY29kZVVSSVwiLFxuICBcImVuY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVzY2FwZVwiLFxuICBcInVuZXNjYXBlXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX1ZBUklBQkxFUyA9IFtcbiAgXCJhcmd1bWVudHNcIixcbiAgXCJ0aGlzXCIsXG4gIFwic3VwZXJcIixcbiAgXCJjb25zb2xlXCIsXG4gIFwid2luZG93XCIsXG4gIFwiZG9jdW1lbnRcIixcbiAgXCJsb2NhbFN0b3JhZ2VcIixcbiAgXCJzZXNzaW9uU3RvcmFnZVwiLFxuICBcIm1vZHVsZVwiLFxuICBcImdsb2JhbFwiIC8vIE5vZGUuanNcbl07XG5cbmNvbnN0IEJVSUxUX0lOUyA9IFtdLmNvbmNhdChcbiAgQlVJTFRfSU5fR0xPQkFMUyxcbiAgVFlQRVMsXG4gIEVSUk9SX1RZUEVTXG4pO1xuXG4vKlxuTGFuZ3VhZ2U6IEphdmFTY3JpcHRcbkRlc2NyaXB0aW9uOiBKYXZhU2NyaXB0IChKUykgaXMgYSBsaWdodHdlaWdodCwgaW50ZXJwcmV0ZWQsIG9yIGp1c3QtaW4tdGltZSBjb21waWxlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aXRoIGZpcnN0LWNsYXNzIGZ1bmN0aW9ucy5cbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZywgd2ViXG5XZWJzaXRlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0XG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvKipcbiAgICogVGFrZXMgYSBzdHJpbmcgbGlrZSBcIjxCb29nZXJcIiBhbmQgY2hlY2tzIHRvIHNlZVxuICAgKiBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIFwiPC9Cb29nZXJcIiBsYXRlciBpbiB0aGVcbiAgICogY29udGVudC5cbiAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgKiBAcGFyYW0ge3thZnRlcjpudW1iZXJ9fSBwYXJhbTFcbiAgICovXG4gIGNvbnN0IGhhc0Nsb3NpbmdUYWcgPSAobWF0Y2gsIHsgYWZ0ZXIgfSkgPT4ge1xuICAgIGNvbnN0IHRhZyA9IFwiPC9cIiArIG1hdGNoWzBdLnNsaWNlKDEpO1xuICAgIGNvbnN0IHBvcyA9IG1hdGNoLmlucHV0LmluZGV4T2YodGFnLCBhZnRlcik7XG4gICAgcmV0dXJuIHBvcyAhPT0gLTE7XG4gIH07XG5cbiAgY29uc3QgSURFTlRfUkUkMSA9IElERU5UX1JFO1xuICBjb25zdCBGUkFHTUVOVCA9IHtcbiAgICBiZWdpbjogJzw+JyxcbiAgICBlbmQ6ICc8Lz4nXG4gIH07XG4gIC8vIHRvIGF2b2lkIHNvbWUgc3BlY2lhbCBjYXNlcyBpbnNpZGUgaXNUcnVseU9wZW5pbmdUYWdcbiAgY29uc3QgWE1MX1NFTEZfQ0xPU0lORyA9IC88W0EtWmEtejAtOVxcXFwuXzotXStcXHMqXFwvPi87XG4gIGNvbnN0IFhNTF9UQUcgPSB7XG4gICAgYmVnaW46IC88W0EtWmEtejAtOVxcXFwuXzotXSsvLFxuICAgIGVuZDogL1xcL1tBLVphLXowLTlcXFxcLl86LV0rPnxcXC8+LyxcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICAgICAqL1xuICAgIGlzVHJ1bHlPcGVuaW5nVGFnOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBhZnRlck1hdGNoSW5kZXggPSBtYXRjaFswXS5sZW5ndGggKyBtYXRjaC5pbmRleDtcbiAgICAgIGNvbnN0IG5leHRDaGFyID0gbWF0Y2guaW5wdXRbYWZ0ZXJNYXRjaEluZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSFRNTCBzaG91bGQgbm90IGluY2x1ZGUgYW5vdGhlciByYXcgYDxgIGluc2lkZSBhIHRhZ1xuICAgICAgICAvLyBuZXN0ZWQgdHlwZT9cbiAgICAgICAgLy8gYDxBcnJheTxBcnJheTxudW1iZXI+PmAsIGV0Yy5cbiAgICAgICAgbmV4dENoYXIgPT09IFwiPFwiIHx8XG4gICAgICAgIC8vIHRoZSAsIGdpdmVzIGF3YXkgdGhhdCB0aGlzIGlzIG5vdCBIVE1MXG4gICAgICAgIC8vIGA8VCwgQSBleHRlbmRzIGtleW9mIFQsIFY+YFxuICAgICAgICBuZXh0Q2hhciA9PT0gXCIsXCJcbiAgICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYDxzb21ldGhpbmc+YFxuICAgICAgLy8gUXVpdGUgcG9zc2libHkgYSB0YWcsIGxldHMgbG9vayBmb3IgYSBtYXRjaGluZyBjbG9zaW5nIHRhZy4uLlxuICAgICAgaWYgKG5leHRDaGFyID09PSBcIj5cIikge1xuICAgICAgICAvLyBpZiB3ZSBjYW5ub3QgZmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgdGFnLCB0aGVuIHdlXG4gICAgICAgIC8vIHdpbGwgaWdub3JlIGl0XG4gICAgICAgIGlmICghaGFzQ2xvc2luZ1RhZyhtYXRjaCwgeyBhZnRlcjogYWZ0ZXJNYXRjaEluZGV4IH0pKSB7XG4gICAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBgPGJsYWggLz5gIChzZWxmLWNsb3NpbmcpXG4gICAgICAvLyBoYW5kbGVkIGJ5IHNpbXBsZVNlbGZDbG9zaW5nIHJ1bGVcblxuICAgICAgbGV0IG07XG4gICAgICBjb25zdCBhZnRlck1hdGNoID0gbWF0Y2guaW5wdXQuc3Vic3RyaW5nKGFmdGVyTWF0Y2hJbmRleCk7XG5cbiAgICAgIC8vIHNvbWUgbW9yZSB0ZW1wbGF0ZSB0eXBpbmcgc3R1ZmZcbiAgICAgIC8vICA8VCA9IGFueT4oa2V5Pzogc3RyaW5nKSA9PiBNb2RpZnk8XG4gICAgICBpZiAoKG0gPSBhZnRlck1hdGNoLm1hdGNoKC9eXFxzKj0vKSkpIHtcbiAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBgPEZyb20gZXh0ZW5kcyBzdHJpbmc+YFxuICAgICAgLy8gdGVjaG5pY2FsbHkgdGhpcyBjb3VsZCBiZSBIVE1MLCBidXQgaXQgc21lbGxzIGxpa2UgYSB0eXBlXG4gICAgICAvLyBOT1RFOiBUaGlzIGlzIHVnaCwgYnV0IGFkZGVkIHNwZWNpZmljYWxseSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzI3NlxuICAgICAgaWYgKChtID0gYWZ0ZXJNYXRjaC5tYXRjaCgvXlxccytleHRlbmRzXFxzKy8pKSkge1xuICAgICAgICBpZiAobS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogQlVJTFRfSU5fVkFSSUFCTEVTXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1saXRlcmFscy1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxEaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG4gIC8vIERlY2ltYWxJbnRlZ2VyTGl0ZXJhbCwgaW5jbHVkaW5nIEFubmV4IEIgTm9uT2N0YWxEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZGRpdGlvbmFsLXN5bnRheC1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxJbnRlZ2VyID0gYDB8WzEtOV0oXz9bMC05XSkqfDBbMC03XSpbODldWzAtOV0qYDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIERlY2ltYWxMaXRlcmFsXG4gICAgICB7IGJlZ2luOiBgKFxcXFxiKCR7ZGVjaW1hbEludGVnZXJ9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICAgIGBbZUVdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxJbnRlZ2VyfSlcXFxcYigoJHtmcmFjfSlcXFxcYnxcXFxcLik/fCgke2ZyYWN9KVxcXFxiYCB9LFxuXG4gICAgICAvLyBEZWNpbWFsQmlnSW50ZWdlckxpdGVyYWxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigwfFsxLTldKF8/WzAtOV0pKiluXFxcXGJgIH0sXG5cbiAgICAgIC8vIE5vbkRlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW29PXVswLTddKF8/WzAtN10pKm4/XFxcXGJcIiB9LFxuXG4gICAgICAvLyBMZWdhY3lPY3RhbEludGVnZXJMaXRlcmFsIChkb2VzIG5vdCBpbmNsdWRlIHVuZGVyc2NvcmUgc2VwYXJhdG9ycylcbiAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWRkaXRpb25hbC1zeW50YXgtbnVtZXJpYy1saXRlcmFsc1xuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbMC03XStuP1xcXFxiXCIgfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1xcXFwkXFxcXHsnLFxuICAgIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBjb250YWluczogW10gLy8gZGVmaW5lZCBsYXRlclxuICB9O1xuICBjb25zdCBIVE1MX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2h0bWxgJyxcbiAgICBlbmQ6ICcnLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnYCcsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICBTVUJTVFxuICAgICAgXSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NTX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2Nzc2AnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdjc3MnXG4gICAgfVxuICB9O1xuICBjb25zdCBHUkFQSFFMX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2dxbGAnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdncmFwaHFsJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVEVNUExBVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdgJyxcbiAgICBlbmQ6ICdgJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IEpTRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICdcXFxcKi8nLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyg/PUBbQS1aYS16XSspJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHsnLFxuICAgICAgICAgICAgICBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSQxICsgJyg/PVxcXFxzKigtKXwkKScsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGVhdCBzcGFjZXMgKG5vdCBuZXdsaW5lcykgc28gd2UgY2FuIGZpbmRcbiAgICAgICAgICAgIC8vIHR5cGVzIG9yIHZhcmlhYmxlc1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogLyg/PVteXFxuXSlcXHMvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gICk7XG4gIGNvbnN0IENPTU1FTlQgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgSlNET0NfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IFNVQlNUX0lOVEVSTkFMUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBIVE1MX1RFTVBMQVRFLFxuICAgIENTU19URU1QTEFURSxcbiAgICBHUkFQSFFMX1RFTVBMQVRFLFxuICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAvLyBTa2lwIG51bWJlcnMgd2hlbiB0aGV5IGFyZSBwYXJ0IG9mIGEgdmFyaWFibGUgbmFtZVxuICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgIE5VTUJFUixcbiAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsOlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMjg4XG4gICAgLy8gaGxqcy5SRUdFWFBfTU9ERVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFNVQlNUX0lOVEVSTkFMU1xuICAgIC5jb25jYXQoe1xuICAgICAgLy8gd2UgbmVlZCB0byBwYWlyIHVwIHt9IGluc2lkZSBvdXIgc3Vic3QgdG8gcHJldmVudFxuICAgICAgLy8gaXQgZnJvbSBlbmRpbmcgdG9vIGVhcmx5IGJ5IG1hdGNoaW5nIGFub3RoZXIgfVxuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9LyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgXCJzZWxmXCJcbiAgICAgIF0uY29uY2F0KFNVQlNUX0lOVEVSTkFMUylcbiAgICB9KTtcbiAgY29uc3QgU1VCU1RfQU5EX0NPTU1FTlRTID0gW10uY29uY2F0KENPTU1FTlQsIFNVQlNULmNvbnRhaW5zKTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1RfQU5EX0NPTU1FTlRTLmNvbmNhdChbXG4gICAgLy8gZWF0IHJlY3Vyc2l2ZSBwYXJlbnMgaW4gc3ViIGV4cHJlc3Npb25zXG4gICAge1xuICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcInNlbGZcIl0uY29uY2F0KFNVQlNUX0FORF9DT01NRU5UUylcbiAgICB9XG4gIF0pO1xuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAvLyBjb252ZXJ0IHRoaXMgdG8gbmVnYXRpdmUgbG9va2JlaGluZCBpbiB2MTJcbiAgICBiZWdpbjogLyhcXHMqKVxcKC8sIC8vIHRvIG1hdGNoIHRoZSBwYXJtcyB3aXRoIFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgY29udGFpbnM6IFBBUkFNU19DT05UQUlOU1xuICB9O1xuXG4gIC8vIEVTNiBjbGFzc2VzXG4gIGNvbnN0IENMQVNTX09SX0VYVEVORFMgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIGNsYXNzIENhciBleHRlbmRzIHZlaGljbGVcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICAvZXh0ZW5kcy8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIHJlZ2V4LmNvbmNhdChJREVOVF9SRSQxLCBcIihcIiwgcmVnZXguY29uY2F0KC9cXC4vLCBJREVOVF9SRSQxKSwgXCIpKlwiKVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgICAgICA1OiBcImtleXdvcmRcIixcbiAgICAgICAgICA3OiBcInRpdGxlLmNsYXNzLmluaGVyaXRlZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjbGFzcyBDYXJcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfUkVGRVJFTkNFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDpcbiAgICByZWdleC5laXRoZXIoXG4gICAgICAvLyBIYXJkIGNvZGVkIGV4Y2VwdGlvbnNcbiAgICAgIC9cXGJKU09OLyxcbiAgICAgIC8vIEZsb2F0MzJBcnJheSwgT3V0VFxuICAgICAgL1xcYltBLVpdW2Etel0rKFtBLVpdW2Etel0qfFxcZCkqLyxcbiAgICAgIC8vIENTU0ZhY3RvcnksIENTU0ZhY3RvcnlUXG4gICAgICAvXFxiW0EtWl17Mix9KFtBLVpdW2Etel0rfFxcZCkrKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gRlBzLCBGUHNUXG4gICAgICAvXFxiW0EtWl17Mix9W2Etel0rKFtBLVpdW2Etel0rfFxcZCkqKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gUFxuICAgICAgLy8gc2luZ2xlIGxldHRlcnMgYXJlIG5vdCBoaWdobGlnaHRlZFxuICAgICAgLy8gQkxBSFxuICAgICAgLy8gdGhpcyB3aWxsIGJlIGZsYWdnZWQgYXMgYSBVUFBFUl9DQVNFX0NPTlNUQU5UIGluc3RlYWRcbiAgICApLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBfOiBbXG4gICAgICAgIC8vIHNlIHdlIHN0aWxsIGdldCByZWxldmFuY2UgY3JlZGl0IGZvciBKUyBsaWJyYXJ5IGNsYXNzZXNcbiAgICAgICAgLi4uVFlQRVMsXG4gICAgICAgIC4uLkVSUk9SX1RZUEVTXG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFVTRV9TVFJJQ1QgPSB7XG4gICAgbGFiZWw6IFwidXNlX3N0cmljdFwiLFxuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIHJlbGV2YW5jZTogMTAsXG4gICAgYmVnaW46IC9eXFxzKlsnXCJddXNlIChzdHJpY3R8YXNtKVsnXCJdL1xuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvZnVuY3Rpb24vLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC8oPz1cXHMqXFwoKS9cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGFub255bW91cyBmdW5jdGlvblxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9mdW5jdGlvbi8sXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdLFxuICAgIGlsbGVnYWw6IC8lL1xuICB9O1xuXG4gIGNvbnN0IFVQUEVSX0NBU0VfQ09OU1RBTlQgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiAvXFxiW0EtWl1bQS1aXzAtOV0rXFxiLyxcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGUuY29uc3RhbnRcIlxuICB9O1xuXG4gIGZ1bmN0aW9uIG5vbmVPZihsaXN0KSB7XG4gICAgcmV0dXJuIHJlZ2V4LmNvbmNhdChcIig/IVwiLCBsaXN0LmpvaW4oXCJ8XCIpLCBcIilcIik7XG4gIH1cblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIG5vbmVPZihbXG4gICAgICAgIC4uLkJVSUxUX0lOX0dMT0JBTFMsXG4gICAgICAgIFwic3VwZXJcIixcbiAgICAgICAgXCJpbXBvcnRcIlxuICAgICAgXS5tYXAoeCA9PiBgJHt4fVxcXFxzKlxcXFwoYCkpLFxuICAgICAgSURFTlRfUkUkMSwgcmVnZXgubG9va2FoZWFkKC9cXHMqXFwoLykpLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXC4vLCByZWdleC5sb29rYWhlYWQoXG4gICAgICByZWdleC5jb25jYXQoSURFTlRfUkUkMSwgLyg/IVswLTlBLVphLXokXyhdKS8pXG4gICAgKSksXG4gICAgZW5kOiBJREVOVF9SRSQxLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogXCJwcm90b3R5cGVcIixcbiAgICBjbGFzc05hbWU6IFwicHJvcGVydHlcIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBHRVRURVJfT1JfU0VUVEVSID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvZ2V0fHNldC8sXG4gICAgICAvXFxzKy8sXG4gICAgICBJREVOVF9SRSQxLFxuICAgICAgLyg/PVxcKCkvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBlYXQgdG8gYXZvaWQgZW1wdHkgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoXFwpL1xuICAgICAgfSxcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DX0xFQURfSU5fUkUgPSAnKFxcXFwoJyArXG4gICAgJ1teKCldKihcXFxcKCcgK1xuICAgICdbXigpXSooXFxcXCgnICtcbiAgICAnW14oKV0qJyArXG4gICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAnXFxcXClbXigpXSopKicgK1xuICAgICdcXFxcKXwnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJylcXFxccyo9Pic7XG5cbiAgY29uc3QgRlVOQ1RJT05fVkFSSUFCTEUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9jb25zdHx2YXJ8bGV0LywgL1xccysvLFxuICAgICAgSURFTlRfUkUkMSwgL1xccyovLFxuICAgICAgLz1cXHMqLyxcbiAgICAgIC8oYXN5bmNcXHMqKT8vLCAvLyBhc3luYyBpcyBvcHRpb25hbFxuICAgICAgcmVnZXgubG9va2FoZWFkKEZVTkNfTEVBRF9JTl9SRSlcbiAgICBdLFxuICAgIGtleXdvcmRzOiBcImFzeW5jXCIsXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKYXZhU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbJ2pzJywgJ2pzeCcsICdtanMnLCAnY2pzJ10sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgLy8gdGhpcyB3aWxsIGJlIGV4dGVuZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICBleHBvcnRzOiB7IFBBUkFNU19DT05UQUlOUywgQ0xBU1NfUkVGRVJFTkNFIH0sXG4gICAgaWxsZWdhbDogLyMoPyFbJF9BLXpdKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGxhYmVsOiBcInNoZWJhbmdcIixcbiAgICAgICAgYmluYXJ5OiBcIm5vZGVcIixcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9KSxcbiAgICAgIFVTRV9TVFJJQ1QsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgSFRNTF9URU1QTEFURSxcbiAgICAgIENTU19URU1QTEFURSxcbiAgICAgIEdSQVBIUUxfVEVNUExBVEUsXG4gICAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgLy8gU2tpcCBudW1iZXJzIHdoZW4gdGhleSBhcmUgcGFydCBvZiBhIHZhcmlhYmxlIG5hbWVcbiAgICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IElERU5UX1JFJDEgKyByZWdleC5sb29rYWhlYWQoJzonKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fVkFSSUFCTEUsXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09NTUVOVCxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gY291bnQgdGhlIHBhcmVucyB0byBtYWtlIHN1cmUgd2UgYWN0dWFsbHkgaGF2ZSB0aGVcbiAgICAgICAgICAgIC8vIGNvcnJlY3QgYm91bmRpbmcgKCApIGJlZm9yZSB0aGUgPT4uICBUaGVyZSBjb3VsZCBiZSBhbnkgbnVtYmVyIG9mXG4gICAgICAgICAgICAvLyBzdWItZXhwcmVzc2lvbnMgaW5zaWRlIGFsc28gc3Vycm91bmRlZCBieSBwYXJlbnMuXG4gICAgICAgICAgICBiZWdpbjogRlVOQ19MRUFEX0lOX1JFLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccyo9PicsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXChcXHMqXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogUEFSQU1TX0NPTlRBSU5TXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIGNvdWxkIGJlIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGFyYW1zIHRvIGEgZnVuY3Rpb24gY2FsbFxuICAgICAgICAgICAgYmVnaW46IC8sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC9cXHMrLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBKU1hcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHsgYmVnaW46IEZSQUdNRU5ULmJlZ2luLCBlbmQ6IEZSQUdNRU5ULmVuZCB9LFxuICAgICAgICAgICAgICB7IG1hdGNoOiBYTUxfU0VMRl9DTE9TSU5HIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogWE1MX1RBRy5iZWdpbixcbiAgICAgICAgICAgICAgICAvLyB3ZSBjYXJlZnVsbHkgY2hlY2sgdGhlIG9wZW5pbmcgdGFnIHRvIHNlZSBpZiBpdCB0cnVseVxuICAgICAgICAgICAgICAgIC8vIGlzIGEgdGFnIGFuZCBub3QgYSBmYWxzZSBwb3NpdGl2ZVxuICAgICAgICAgICAgICAgICdvbjpiZWdpbic6IFhNTF9UQUcuaXNUcnVseU9wZW5pbmdUYWcsXG4gICAgICAgICAgICAgICAgZW5kOiBYTUxfVEFHLmVuZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBYTUxfVEFHLmJlZ2luLFxuICAgICAgICAgICAgICAgIGVuZDogWE1MX1RBRy5lbmQsXG4gICAgICAgICAgICAgICAgc2tpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICAvLyBwcmV2ZW50IHRoaXMgZnJvbSBnZXR0aW5nIHN3YWxsb3dlZCB1cCBieSBmdW5jdGlvblxuICAgICAgICAvLyBzaW5jZSB0aGV5IGFwcGVhciBcImZ1bmN0aW9uIGxpa2VcIlxuICAgICAgICBiZWdpbktleXdvcmRzOiBcIndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3JcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjb3VudCB0aGUgcGFyZW5zIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZSBjb3JyZWN0XG4gICAgICAgIC8vIGJvdW5kaW5nICggKS4gIFRoZXJlIGNvdWxkIGJlIGFueSBudW1iZXIgb2Ygc3ViLWV4cHJlc3Npb25zIGluc2lkZVxuICAgICAgICAvLyBhbHNvIHN1cnJvdW5kZWQgYnkgcGFyZW5zLlxuICAgICAgICBiZWdpbjogJ1xcXFxiKD8hZnVuY3Rpb24pJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArXG4gICAgICAgICAgJ1xcXFwoJyArIC8vIGZpcnN0IHBhcmVuc1xuICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICAgJ1teKCldKicgK1xuICAgICAgICAgICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAgICAgICAnXFxcXClbXigpXSopKicgK1xuICAgICAgICAgICdcXFxcKVxcXFxzKlxcXFx7JywgLy8gZW5kIHBhcmVuc1xuICAgICAgICByZXR1cm5CZWdpbjp0cnVlLFxuICAgICAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBJREVOVF9SRSQxLCBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2F0Y2ggLi4uIHNvIGl0IHdvbid0IHRyaWdnZXIgdGhlIHByb3BlcnR5IHJ1bGUgYmVsb3dcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXC5cXC5cXC4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBQUk9QRVJUWV9BQ0NFU1MsXG4gICAgICAvLyBoYWNrOiBwcmV2ZW50cyBkZXRlY3Rpb24gb2Yga2V5d29yZHMgaW4gc29tZSBjaXJjdW1zdGFuY2VzXG4gICAgICAvLyAua2V5d29yZCgpXG4gICAgICAvLyAka2V5d29yZCA9IHhcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6ICdcXFxcJCcgKyBJREVOVF9SRSQxLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbIC9cXGJjb25zdHJ1Y3Rvcig/PVxccypcXCgpLyBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMTogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fQ0FMTCxcbiAgICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgICBDTEFTU19PUl9FWFRFTkRTLFxuICAgICAgR0VUVEVSX09SX1NFVFRFUixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBqYXZhc2NyaXB0O1xuIiwgIi8qXG4gTGFuZ3VhZ2U6IEpCb3NzIENMSVxuIEF1dGhvcjogUmFwaGFcdTAwRUJsIFBhcnJcdTAwRUJlIDxycGFycmVlQGVkYzRpdC5jb20+XG4gRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gamJvc3MgY2xpXG4gV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLmpib3NzLm9yZy9hdXRob3IvZGlzcGxheS9XRkxZL0NvbW1hbmQrTGluZStJbnRlcmZhY2VcbiBDYXRlZ29yeTogY29uZmlnXG4gKi9cblxuZnVuY3Rpb24gamJvc3NDbGkoaGxqcykge1xuICBjb25zdCBQQVJBTSA9IHtcbiAgICBiZWdpbjogL1tcXHctXSsgKj0vLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IC9bXFx3LV0rL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUEFSQU1TQkxPQ0sgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBjb250YWluczogWyBQQVJBTSBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBPUEVSQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvOltcXHdcXC0uXSsvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBQQVRIID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXEIoW1xcLy5dKVtcXHdcXC0uXFwvPV0rL1xuICB9O1xuICBjb25zdCBDT01NQU5EX1BBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAvLS1bXFx3XFwtPVxcL10rL1xuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKQm9zcyBDTEknLFxuICAgIGFsaWFzZXM6IFsgJ3dpbGRmbHktY2xpJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1thLXpcXC1dKycsXG4gICAgICBrZXl3b3JkOiAnYWxpYXMgYmF0Y2ggY2QgY2xlYXIgY29tbWFuZCBjb25uZWN0IGNvbm5lY3Rpb24tZmFjdG9yeSBjb25uZWN0aW9uLWluZm8gZGF0YS1zb3VyY2UgZGVwbG95ICdcbiAgICAgICsgJ2RlcGxveW1lbnQtaW5mbyBkZXBsb3ltZW50LW92ZXJsYXkgZWNobyBlY2hvLWRtciBoZWxwIGhpc3RvcnkgaWYgamRiYy1kcml2ZXItaW5mbyBqbXMtcXVldWV8MjAgam1zLXRvcGljfDIwIGxzICdcbiAgICAgICsgJ3BhdGNoIHB3ZCBxdWl0IHJlYWQtYXR0cmlidXRlIHJlYWQtb3BlcmF0aW9uIHJlbG9hZCByb2xsb3V0LXBsYW4gcnVuLWJhdGNoIHNldCBzaHV0ZG93biB0cnkgdW5hbGlhcyAnXG4gICAgICArICd1bmRlcGxveSB1bnNldCB2ZXJzaW9uIHhhLWRhdGEtc291cmNlJywgLy8gbW9kdWxlXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIENPTU1BTkRfUEFSQU1TLFxuICAgICAgT1BFUkFUSU9OLFxuICAgICAgUEFUSCxcbiAgICAgIFBBUkFNU0JMT0NLXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGpib3NzQ2xpO1xuIiwgIi8qXG5MYW5ndWFnZTogSlNPTlxuRGVzY3JpcHRpb246IEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBpcyBhIGxpZ2h0d2VpZ2h0IGRhdGEtaW50ZXJjaGFuZ2UgZm9ybWF0LlxuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbldlYnNpdGU6IGh0dHA6Ly93d3cuanNvbi5vcmdcbkNhdGVnb3J5OiBjb21tb24sIHByb3RvY29scywgd2ViXG4qL1xuXG5mdW5jdGlvbiBqc29uKGhsanMpIHtcbiAgY29uc3QgQVRUUklCVVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgIGJlZ2luOiAvXCIoXFxcXC58W15cXFxcXCJcXHJcXG5dKSpcIig/PVxccyo6KS8sXG4gICAgcmVsZXZhbmNlOiAxLjAxXG4gIH07XG4gIGNvbnN0IFBVTkNUVUFUSU9OID0ge1xuICAgIG1hdGNoOiAvW3t9W1xcXSw6XS8sXG4gICAgY2xhc3NOYW1lOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIlxuICBdO1xuICAvLyBOT1RFOiBub3JtYWxseSB3ZSB3b3VsZCByZWx5IG9uIGBrZXl3b3Jkc2AgZm9yIHRoaXMgYnV0IHVzaW5nIGEgbW9kZSBoZXJlIGFsbG93cyB1c1xuICAvLyAtIHRvIHVzZSB0aGUgdmVyeSB0aWdodCBgaWxsZWdhbDogXFxTYCBydWxlIGxhdGVyIHRvIGZsYWcgYW55IG90aGVyIGNoYXJhY3RlclxuICAvLyAtIGFzIGlsbGVnYWwgaW5kaWNhdGluZyB0aGF0IGRlc3BpdGUgbG9va2luZyBsaWtlIEpTT04gd2UgZG8gbm90IHRydWx5IGhhdmVcbiAgLy8gLSBKU09OIGFuZCB0aHVzIGltcHJvdmUgZmFsc2UtcG9zaXRpdmVseSBncmVhdGx5IHNpbmNlIEpTT04gd2lsbCB0cnkgYW5kIGNsYWltXG4gIC8vIC0gYWxsIHNvcnRzIG9mIEpTT04gbG9va2luZyBzdHVmZlxuICBjb25zdCBMSVRFUkFMU19NT0RFID0ge1xuICAgIHNjb3BlOiBcImxpdGVyYWxcIixcbiAgICBiZWdpbktleXdvcmRzOiBMSVRFUkFMUy5qb2luKFwiIFwiKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKU09OJyxcbiAgICBhbGlhc2VzOiBbJ2pzb25jJ10sXG4gICAga2V5d29yZHM6e1xuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFLFxuICAgICAgUFVOQ1RVQVRJT04sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgTElURVJBTFNfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdLFxuICAgIGlsbGVnYWw6ICdcXFxcUydcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBqc29uO1xuIiwgIi8qXG5MYW5ndWFnZTogSnVsaWFcbkRlc2NyaXB0aW9uOiBKdWxpYSBpcyBhIGhpZ2gtbGV2ZWwsIGhpZ2gtcGVyZm9ybWFuY2UsIGR5bmFtaWMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuXG5BdXRob3I6IEtlbnRhIFNhdG8gPGJpY3ljbGUxODg1QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogQWxleCBBcnNsYW4gPGFyYXJzbGFuQGNvbWNhc3QubmV0PiwgRnJlZHJpayBFa3JlIDxla3JlZnJlZHJpa0BnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2p1bGlhbGFuZy5vcmdcbkNhdGVnb3J5OiBzY2llbnRpZmljXG4qL1xuXG5mdW5jdGlvbiBqdWxpYShobGpzKSB7XG4gIC8vIFNpbmNlIHRoZXJlIGFyZSBudW1lcm91cyBzcGVjaWFsIG5hbWVzIGluIEp1bGlhLCBpdCBpcyB0b28gbXVjaCB0cm91YmxlXG4gIC8vIHRvIG1haW50YWluIHRoZW0gYnkgaGFuZC4gSGVuY2UgdGhlc2UgbmFtZXMgKGkuZS4ga2V5d29yZHMsIGxpdGVyYWxzIGFuZFxuICAvLyBidWlsdC1pbnMpIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIEp1bGlhIDEuNS4yIGl0c2VsZiB0aHJvdWdoXG4gIC8vIHRoZSBmb2xsb3dpbmcgc2NyaXB0cyBmb3IgZWFjaC5cblxuICAvLyByZWY6IGh0dHBzOi8vZG9jcy5qdWxpYWxhbmcub3JnL2VuL3YxL21hbnVhbC92YXJpYWJsZXMvI0FsbG93ZWQtVmFyaWFibGUtTmFtZXNcbiAgY29uc3QgVkFSSUFCTEVfTkFNRV9SRSA9ICdbQS1aYS16X1xcXFx1MDBBMS1cXFxcdUZGRkZdW0EtWmEtel8wLTlcXFxcdTAwQTEtXFxcXHVGRkZGXSonO1xuXG4gIC8vICMga2V5d29yZCBnZW5lcmF0b3IsIG11bHRpLXdvcmQga2V5d29yZHMgaGFuZGxlZCBtYW51YWxseSBiZWxvdyAoSnVsaWEgMS41LjIpXG4gIC8vIGltcG9ydCBSRVBMLlJFUExDb21wbGV0aW9uc1xuICAvLyByZXMgPSBTdHJpbmdbXCJpblwiLCBcImlzYVwiLCBcIndoZXJlXCJdXG4gIC8vIGZvciBrdyBpbiBjb2xsZWN0KHgua2V5d29yZCBmb3IgeCBpbiBSRVBMQ29tcGxldGlvbnMuY29tcGxldGVfa2V5d29yZChcIlwiKSlcbiAgLy8gICAgIGlmICEoY29udGFpbnMoa3csIFwiIFwiKSB8fCBrdyA9PSBcInN0cnVjdFwiKVxuICAvLyAgICAgICAgIHB1c2ghKHJlcywga3cpXG4gIC8vICAgICBlbmRcbiAgLy8gZW5kXG4gIC8vIHNvcnQhKHVuaXF1ZSEocmVzKSlcbiAgLy8gZm9yZWFjaCh4IC0+IHByaW50bG4oXCJcXCdcIiwgeCwgXCJcXCcsXCIpLCByZXMpXG4gIGNvbnN0IEtFWVdPUkRfTElTVCA9IFtcbiAgICAnYmFyZW1vZHVsZScsXG4gICAgJ2JlZ2luJyxcbiAgICAnYnJlYWsnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NjYWxsJyxcbiAgICAnY29uc3QnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2Vsc2VpZicsXG4gICAgJ2VuZCcsXG4gICAgJ2V4cG9ydCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnZmluYWxseScsXG4gICAgJ2ZvcicsXG4gICAgJ2Z1bmN0aW9uJyxcbiAgICAnZ2xvYmFsJyxcbiAgICAnaWYnLFxuICAgICdpbXBvcnQnLFxuICAgICdpbicsXG4gICAgJ2lzYScsXG4gICAgJ2xldCcsXG4gICAgJ2xvY2FsJyxcbiAgICAnbWFjcm8nLFxuICAgICdtb2R1bGUnLFxuICAgICdxdW90ZScsXG4gICAgJ3JldHVybicsXG4gICAgJ3RydWUnLFxuICAgICd0cnknLFxuICAgICd1c2luZycsXG4gICAgJ3doZXJlJyxcbiAgICAnd2hpbGUnLFxuICBdO1xuXG4gIC8vICMgbGl0ZXJhbCBnZW5lcmF0b3IgKEp1bGlhIDEuNS4yKVxuICAvLyBpbXBvcnQgUkVQTC5SRVBMQ29tcGxldGlvbnNcbiAgLy8gcmVzID0gU3RyaW5nW1widHJ1ZVwiLCBcImZhbHNlXCJdXG4gIC8vIGZvciBjb21wbCBpbiBmaWx0ZXIhKHggLT4gaXNhKHgsIFJFUExDb21wbGV0aW9ucy5Nb2R1bGVDb21wbGV0aW9uKSAmJiAoeC5wYXJlbnQgPT09IEJhc2UgfHwgeC5wYXJlbnQgPT09IENvcmUpLFxuICAvLyAgICAgICAgICAgICAgICAgICAgIFJFUExDb21wbGV0aW9ucy5jb21wbGV0aW9ucyhcIlwiLCAwKVsxXSlcbiAgLy8gICAgIHRyeVxuICAvLyAgICAgICAgIHYgPSBldmFsKFN5bWJvbChjb21wbC5tb2QpKVxuICAvLyAgICAgICAgIGlmICEodiBpc2EgRnVuY3Rpb24gfHwgdiBpc2EgVHlwZSB8fCB2IGlzYSBUeXBlVmFyIHx8IHYgaXNhIE1vZHVsZSB8fCB2IGlzYSBDb2xvbilcbiAgLy8gICAgICAgICAgICAgcHVzaCEocmVzLCBjb21wbC5tb2QpXG4gIC8vICAgICAgICAgZW5kXG4gIC8vICAgICBjYXRjaCBlXG4gIC8vICAgICBlbmRcbiAgLy8gZW5kXG4gIC8vIHNvcnQhKHVuaXF1ZSEocmVzKSlcbiAgLy8gZm9yZWFjaCh4IC0+IHByaW50bG4oXCJcXCdcIiwgeCwgXCJcXCcsXCIpLCByZXMpXG4gIGNvbnN0IExJVEVSQUxfTElTVCA9IFtcbiAgICAnQVJHUycsXG4gICAgJ0NfTlVMTCcsXG4gICAgJ0RFUE9UX1BBVEgnLFxuICAgICdFTkRJQU5fQk9NJyxcbiAgICAnRU5WJyxcbiAgICAnSW5mJyxcbiAgICAnSW5mMTYnLFxuICAgICdJbmYzMicsXG4gICAgJ0luZjY0JyxcbiAgICAnSW5zZXJ0aW9uU29ydCcsXG4gICAgJ0xPQURfUEFUSCcsXG4gICAgJ01lcmdlU29ydCcsXG4gICAgJ05hTicsXG4gICAgJ05hTjE2JyxcbiAgICAnTmFOMzInLFxuICAgICdOYU42NCcsXG4gICAgJ1BST0dSQU1fRklMRScsXG4gICAgJ1F1aWNrU29ydCcsXG4gICAgJ1JvdW5kRG93bicsXG4gICAgJ1JvdW5kRnJvbVplcm8nLFxuICAgICdSb3VuZE5lYXJlc3QnLFxuICAgICdSb3VuZE5lYXJlc3RUaWVzQXdheScsXG4gICAgJ1JvdW5kTmVhcmVzdFRpZXNVcCcsXG4gICAgJ1JvdW5kVG9aZXJvJyxcbiAgICAnUm91bmRVcCcsXG4gICAgJ1ZFUlNJT058MCcsXG4gICAgJ2Rldm51bGwnLFxuICAgICdmYWxzZScsXG4gICAgJ2ltJyxcbiAgICAnbWlzc2luZycsXG4gICAgJ25vdGhpbmcnLFxuICAgICdwaScsXG4gICAgJ3N0ZGVycicsXG4gICAgJ3N0ZGluJyxcbiAgICAnc3Rkb3V0JyxcbiAgICAndHJ1ZScsXG4gICAgJ3VuZGVmJyxcbiAgICAnXHUwM0MwJyxcbiAgICAnXHUyMTJGJyxcbiAgXTtcblxuICAvLyAjIGJ1aWx0X2luIGdlbmVyYXRvciAoSnVsaWEgMS41LjIpXG4gIC8vIGltcG9ydCBSRVBMLlJFUExDb21wbGV0aW9uc1xuICAvLyByZXMgPSBTdHJpbmdbXVxuICAvLyBmb3IgY29tcGwgaW4gZmlsdGVyISh4IC0+IGlzYSh4LCBSRVBMQ29tcGxldGlvbnMuTW9kdWxlQ29tcGxldGlvbikgJiYgKHgucGFyZW50ID09PSBCYXNlIHx8IHgucGFyZW50ID09PSBDb3JlKSxcbiAgLy8gICAgICAgICAgICAgICAgICAgICBSRVBMQ29tcGxldGlvbnMuY29tcGxldGlvbnMoXCJcIiwgMClbMV0pXG4gIC8vICAgICB0cnlcbiAgLy8gICAgICAgICB2ID0gZXZhbChTeW1ib2woY29tcGwubW9kKSlcbiAgLy8gICAgICAgICBpZiAodiBpc2EgVHlwZSB8fCB2IGlzYSBUeXBlVmFyKSAmJiAoY29tcGwubW9kICE9IFwiPT5cIilcbiAgLy8gICAgICAgICAgICAgcHVzaCEocmVzLCBjb21wbC5tb2QpXG4gIC8vICAgICAgICAgZW5kXG4gIC8vICAgICBjYXRjaCBlXG4gIC8vICAgICBlbmRcbiAgLy8gZW5kXG4gIC8vIHNvcnQhKHVuaXF1ZSEocmVzKSlcbiAgLy8gZm9yZWFjaCh4IC0+IHByaW50bG4oXCJcXCdcIiwgeCwgXCJcXCcsXCIpLCByZXMpXG4gIGNvbnN0IEJVSUxUX0lOX0xJU1QgPSBbXG4gICAgJ0Fic3RyYWN0QXJyYXknLFxuICAgICdBYnN0cmFjdENoYW5uZWwnLFxuICAgICdBYnN0cmFjdENoYXInLFxuICAgICdBYnN0cmFjdERpY3QnLFxuICAgICdBYnN0cmFjdERpc3BsYXknLFxuICAgICdBYnN0cmFjdEZsb2F0JyxcbiAgICAnQWJzdHJhY3RJcnJhdGlvbmFsJyxcbiAgICAnQWJzdHJhY3RNYXRyaXgnLFxuICAgICdBYnN0cmFjdFJhbmdlJyxcbiAgICAnQWJzdHJhY3RTZXQnLFxuICAgICdBYnN0cmFjdFN0cmluZycsXG4gICAgJ0Fic3RyYWN0VW5pdFJhbmdlJyxcbiAgICAnQWJzdHJhY3RWZWNPck1hdCcsXG4gICAgJ0Fic3RyYWN0VmVjdG9yJyxcbiAgICAnQW55JyxcbiAgICAnQXJndW1lbnRFcnJvcicsXG4gICAgJ0FycmF5JyxcbiAgICAnQXNzZXJ0aW9uRXJyb3InLFxuICAgICdCaWdGbG9hdCcsXG4gICAgJ0JpZ0ludCcsXG4gICAgJ0JpdEFycmF5JyxcbiAgICAnQml0TWF0cml4JyxcbiAgICAnQml0U2V0JyxcbiAgICAnQml0VmVjdG9yJyxcbiAgICAnQm9vbCcsXG4gICAgJ0JvdW5kc0Vycm9yJyxcbiAgICAnQ2FwdHVyZWRFeGNlcHRpb24nLFxuICAgICdDYXJ0ZXNpYW5JbmRleCcsXG4gICAgJ0NhcnRlc2lhbkluZGljZXMnLFxuICAgICdDY2hhcicsXG4gICAgJ0Nkb3VibGUnLFxuICAgICdDZmxvYXQnLFxuICAgICdDaGFubmVsJyxcbiAgICAnQ2hhcicsXG4gICAgJ0NpbnQnLFxuICAgICdDaW50bWF4X3QnLFxuICAgICdDbG9uZycsXG4gICAgJ0Nsb25nbG9uZycsXG4gICAgJ0NtZCcsXG4gICAgJ0NvbG9uJyxcbiAgICAnQ29tcGxleCcsXG4gICAgJ0NvbXBsZXhGMTYnLFxuICAgICdDb21wbGV4RjMyJyxcbiAgICAnQ29tcGxleEY2NCcsXG4gICAgJ0NvbXBvc2l0ZUV4Y2VwdGlvbicsXG4gICAgJ0NvbmRpdGlvbicsXG4gICAgJ0NwdHJkaWZmX3QnLFxuICAgICdDc2hvcnQnLFxuICAgICdDc2l6ZV90JyxcbiAgICAnQ3NzaXplX3QnLFxuICAgICdDc3RyaW5nJyxcbiAgICAnQ3VjaGFyJyxcbiAgICAnQ3VpbnQnLFxuICAgICdDdWludG1heF90JyxcbiAgICAnQ3Vsb25nJyxcbiAgICAnQ3Vsb25nbG9uZycsXG4gICAgJ0N1c2hvcnQnLFxuICAgICdDdm9pZCcsXG4gICAgJ0N3Y2hhcl90JyxcbiAgICAnQ3dzdHJpbmcnLFxuICAgICdEYXRhVHlwZScsXG4gICAgJ0RlbnNlQXJyYXknLFxuICAgICdEZW5zZU1hdHJpeCcsXG4gICAgJ0RlbnNlVmVjT3JNYXQnLFxuICAgICdEZW5zZVZlY3RvcicsXG4gICAgJ0RpY3QnLFxuICAgICdEaW1lbnNpb25NaXNtYXRjaCcsXG4gICAgJ0RpbXMnLFxuICAgICdEaXZpZGVFcnJvcicsXG4gICAgJ0RvbWFpbkVycm9yJyxcbiAgICAnRU9GRXJyb3InLFxuICAgICdFbnVtJyxcbiAgICAnRXJyb3JFeGNlcHRpb24nLFxuICAgICdFeGNlcHRpb24nLFxuICAgICdFeHBvbmVudGlhbEJhY2tPZmYnLFxuICAgICdFeHByJyxcbiAgICAnRmxvYXQxNicsXG4gICAgJ0Zsb2F0MzInLFxuICAgICdGbG9hdDY0JyxcbiAgICAnRnVuY3Rpb24nLFxuICAgICdHbG9iYWxSZWYnLFxuICAgICdIVE1MJyxcbiAgICAnSU8nLFxuICAgICdJT0J1ZmZlcicsXG4gICAgJ0lPQ29udGV4dCcsXG4gICAgJ0lPU3RyZWFtJyxcbiAgICAnSWREaWN0JyxcbiAgICAnSW5kZXhDYXJ0ZXNpYW4nLFxuICAgICdJbmRleExpbmVhcicsXG4gICAgJ0luZGV4U3R5bGUnLFxuICAgICdJbmV4YWN0RXJyb3InLFxuICAgICdJbml0RXJyb3InLFxuICAgICdJbnQnLFxuICAgICdJbnQxMjgnLFxuICAgICdJbnQxNicsXG4gICAgJ0ludDMyJyxcbiAgICAnSW50NjQnLFxuICAgICdJbnQ4JyxcbiAgICAnSW50ZWdlcicsXG4gICAgJ0ludGVycnVwdEV4Y2VwdGlvbicsXG4gICAgJ0ludmFsaWRTdGF0ZUV4Y2VwdGlvbicsXG4gICAgJ0lycmF0aW9uYWwnLFxuICAgICdLZXlFcnJvcicsXG4gICAgJ0xpblJhbmdlJyxcbiAgICAnTGluZU51bWJlck5vZGUnLFxuICAgICdMaW5lYXJJbmRpY2VzJyxcbiAgICAnTG9hZEVycm9yJyxcbiAgICAnTUlNRScsXG4gICAgJ01hdHJpeCcsXG4gICAgJ01ldGhvZCcsXG4gICAgJ01ldGhvZEVycm9yJyxcbiAgICAnTWlzc2luZycsXG4gICAgJ01pc3NpbmdFeGNlcHRpb24nLFxuICAgICdNb2R1bGUnLFxuICAgICdOVHVwbGUnLFxuICAgICdOYW1lZFR1cGxlJyxcbiAgICAnTm90aGluZycsXG4gICAgJ051bWJlcicsXG4gICAgJ09yZGluYWxSYW5nZScsXG4gICAgJ091dE9mTWVtb3J5RXJyb3InLFxuICAgICdPdmVyZmxvd0Vycm9yJyxcbiAgICAnUGFpcicsXG4gICAgJ1BhcnRpYWxRdWlja1NvcnQnLFxuICAgICdQZXJtdXRlZERpbXNBcnJheScsXG4gICAgJ1BpcGUnLFxuICAgICdQcm9jZXNzRmFpbGVkRXhjZXB0aW9uJyxcbiAgICAnUHRyJyxcbiAgICAnUXVvdGVOb2RlJyxcbiAgICAnUmF0aW9uYWwnLFxuICAgICdSYXdGRCcsXG4gICAgJ1JlYWRPbmx5TWVtb3J5RXJyb3InLFxuICAgICdSZWFsJyxcbiAgICAnUmVlbnRyYW50TG9jaycsXG4gICAgJ1JlZicsXG4gICAgJ1JlZ2V4JyxcbiAgICAnUmVnZXhNYXRjaCcsXG4gICAgJ1JvdW5kaW5nTW9kZScsXG4gICAgJ1NlZ21lbnRhdGlvbkZhdWx0JyxcbiAgICAnU2V0JyxcbiAgICAnU2lnbmVkJyxcbiAgICAnU29tZScsXG4gICAgJ1N0YWNrT3ZlcmZsb3dFcnJvcicsXG4gICAgJ1N0ZXBSYW5nZScsXG4gICAgJ1N0ZXBSYW5nZUxlbicsXG4gICAgJ1N0cmlkZWRBcnJheScsXG4gICAgJ1N0cmlkZWRNYXRyaXgnLFxuICAgICdTdHJpZGVkVmVjT3JNYXQnLFxuICAgICdTdHJpZGVkVmVjdG9yJyxcbiAgICAnU3RyaW5nJyxcbiAgICAnU3RyaW5nSW5kZXhFcnJvcicsXG4gICAgJ1N1YkFycmF5JyxcbiAgICAnU3ViU3RyaW5nJyxcbiAgICAnU3Vic3RpdHV0aW9uU3RyaW5nJyxcbiAgICAnU3ltYm9sJyxcbiAgICAnU3lzdGVtRXJyb3InLFxuICAgICdUYXNrJyxcbiAgICAnVGFza0ZhaWxlZEV4Y2VwdGlvbicsXG4gICAgJ1RleHQnLFxuICAgICdUZXh0RGlzcGxheScsXG4gICAgJ1RpbWVyJyxcbiAgICAnVHVwbGUnLFxuICAgICdUeXBlJyxcbiAgICAnVHlwZUVycm9yJyxcbiAgICAnVHlwZVZhcicsXG4gICAgJ1VJbnQnLFxuICAgICdVSW50MTI4JyxcbiAgICAnVUludDE2JyxcbiAgICAnVUludDMyJyxcbiAgICAnVUludDY0JyxcbiAgICAnVUludDgnLFxuICAgICdVbmRlZkluaXRpYWxpemVyJyxcbiAgICAnVW5kZWZLZXl3b3JkRXJyb3InLFxuICAgICdVbmRlZlJlZkVycm9yJyxcbiAgICAnVW5kZWZWYXJFcnJvcicsXG4gICAgJ1VuaW9uJyxcbiAgICAnVW5pb25BbGwnLFxuICAgICdVbml0UmFuZ2UnLFxuICAgICdVbnNpZ25lZCcsXG4gICAgJ1ZhbCcsXG4gICAgJ1ZhcmFyZycsXG4gICAgJ1ZlY0VsZW1lbnQnLFxuICAgICdWZWNPck1hdCcsXG4gICAgJ1ZlY3RvcicsXG4gICAgJ1ZlcnNpb25OdW1iZXInLFxuICAgICdXZWFrS2V5RGljdCcsXG4gICAgJ1dlYWtSZWYnLFxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBWQVJJQUJMRV9OQU1FX1JFLFxuICAgIGtleXdvcmQ6IEtFWVdPUkRfTElTVCxcbiAgICBsaXRlcmFsOiBMSVRFUkFMX0xJU1QsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOX0xJU1QsXG4gIH07XG5cbiAgLy8gcGxhY2Vob2xkZXIgZm9yIHJlY3Vyc2l2ZSBzZWxmLXJlZmVyZW5jZVxuICBjb25zdCBERUZBVUxUID0ge1xuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvPFxcLy9cbiAgfTtcblxuICAvLyByZWY6IGh0dHBzOi8vZG9jcy5qdWxpYWxhbmcub3JnL2VuL3YxL21hbnVhbC9pbnRlZ2Vycy1hbmQtZmxvYXRpbmctcG9pbnQtbnVtYmVycy9cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgLy8gc3VwcG9ydGVkIG51bWVyaWMgbGl0ZXJhbHM6XG4gICAgLy8gICogYmluYXJ5IGxpdGVyYWwgKGUuZy4gMHgxMClcbiAgICAvLyAgKiBvY3RhbCBsaXRlcmFsIChlLmcuIDBvNzY1NDMyMTApXG4gICAgLy8gICogaGV4YWRlY2ltYWwgbGl0ZXJhbCAoZS5nLiAweGZlZGNiYTg3NjU0MzIxMClcbiAgICAvLyAgKiBoZXhhZGVjaW1hbCBmbG9hdGluZyBwb2ludCBsaXRlcmFsIChlLmcuIDB4MXAwLCAweDEuMnAyKVxuICAgIC8vICAqIGRlY2ltYWwgbGl0ZXJhbCAoZS5nLiA5ODc2NTQzMjEwLCAxMDBfMDAwXzAwMClcbiAgICAvLyAgKiBmbG9hdGluZyBwb2ludGUgbGl0ZXJhbCAoZS5nLiAxLjIsIDEuMmYsIC4yLCAxLiwgMS4yZTEwLCAxLjJlLTEwKVxuICAgIGJlZ2luOiAvKFxcYjB4W1xcZF9dKihcXC5bXFxkX10qKT98MHhcXC5cXGRbXFxkX10qKXBbLStdP1xcZCt8XFxiMFtib3hdW2EtZkEtRjAtOV1bYS1mQS1GMC05X10qfChcXGJcXGRbXFxkX10qKFxcLltcXGRfXSopP3xcXC5cXGRbXFxkX10qKShbZUVmRl1bLStdP1xcZCspPy8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgQ0hBUiA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJygufFxcXFxbeFh1VV1bYS16QS1aMC05XSspJy9cbiAgfTtcblxuICBjb25zdCBJTlRFUlBPTEFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJFxcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcblxuICBjb25zdCBJTlRFUlBPTEFURURfVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgVkFSSUFCTEVfTkFNRV9SRVxuICB9O1xuXG4gIC8vIFRPRE86IG5lYXRseSBlc2NhcGUgbm9ybWFsIGNvZGUgaW4gc3RyaW5nIGxpdGVyYWxcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIElOVEVSUE9MQVRJT04sXG4gICAgICBJTlRFUlBPTEFURURfVkFSSUFCTEVcbiAgICBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFx3KlwiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIlxcdyovLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcdypcIi8sXG4gICAgICAgIGVuZDogL1wiXFx3Ki9cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQ09NTUFORCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBJTlRFUlBPTEFUSU9OLFxuICAgICAgSU5URVJQT0xBVEVEX1ZBUklBQkxFXG4gICAgXSxcbiAgICBiZWdpbjogJ2AnLFxuICAgIGVuZDogJ2AnXG4gIH07XG5cbiAgY29uc3QgTUFDUk9DQUxMID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnQCcgKyBWQVJJQUJMRV9OQU1FX1JFXG4gIH07XG5cbiAgY29uc3QgQ09NTUVOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyM9JyxcbiAgICAgICAgZW5kOiAnPSMnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBERUZBVUxULm5hbWUgPSAnSnVsaWEnO1xuICBERUZBVUxULmNvbnRhaW5zID0gW1xuICAgIE5VTUJFUixcbiAgICBDSEFSLFxuICAgIFNUUklORyxcbiAgICBDT01NQU5ELFxuICAgIE1BQ1JPQ0FMTCxcbiAgICBDT01NRU5ULFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICBiZWdpbjpcbiAgICAgICAgJ1xcXFxiKCgoYWJzdHJhY3R8cHJpbWl0aXZlKVxcXFxzKyl0eXBlfChtdXRhYmxlXFxcXHMrKT9zdHJ1Y3QpXFxcXGInXG4gICAgfSxcbiAgICB7IGJlZ2luOiAvPDovIH0gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgXTtcbiAgSU5URVJQT0xBVElPTi5jb250YWlucyA9IERFRkFVTFQuY29udGFpbnM7XG5cbiAgcmV0dXJuIERFRkFVTFQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ganVsaWE7XG4iLCAiLypcbkxhbmd1YWdlOiBKdWxpYSBSRVBMXG5EZXNjcmlwdGlvbjogSnVsaWEgUkVQTCBzZXNzaW9uc1xuQXV0aG9yOiBNb3J0ZW4gUGlpYmVsZWh0IDxtb3J0ZW4ucGlpYmVsZWh0QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vanVsaWFsYW5nLm9yZ1xuUmVxdWlyZXM6IGp1bGlhLmpzXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuXG5UaGUgSnVsaWEgUkVQTCBjb2RlIGJsb2NrcyBsb29rIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmc6XG5cbiAganVsaWE+IGZ1bmN0aW9uIGZvbyh4KVxuICAgICAgICAgICAgIHggKyAxXG4gICAgICAgICBlbmRcbiAgZm9vIChnZW5lcmljIGZ1bmN0aW9uIHdpdGggMSBtZXRob2QpXG5cblRoZXkgc3RhcnQgb24gYSBuZXcgbGluZSB3aXRoIFwianVsaWE+XCIuIFVzdWFsbHkgdGhlcmUgc2hvdWxkIGFsc28gYmUgYSBzcGFjZSBhZnRlciB0aGlzLCBidXRcbndlIGFsc28gYWxsb3cgdGhlIGNvZGUgdG8gc3RhcnQgcmlnaHQgYWZ0ZXIgdGhlID4gY2hhcmFjdGVyLiBUaGUgY29kZSBtYXkgcnVuIG92ZXIgbXVsdGlwbGVcbmxpbmVzLCBidXQgdGhlIGFkZGl0aW9uYWwgbGluZXMgbXVzdCBzdGFydCB3aXRoIHNpeCBzcGFjZXMgKGkuZS4gYmUgaW5kZW50ZWQgdG8gbWF0Y2hcblwianVsaWE+XCIpLiBUaGUgcmVzdCBvZiB0aGUgY29kZSBpcyBhc3N1bWVkIHRvIGJlIG91dHB1dCBmcm9tIHRoZSBleGVjdXRlZCBjb2RlIGFuZCB3aWxsIGJlXG5sZWZ0IHVuLWhpZ2hsaWdodGVkLlxuXG5Vc2luZyBzaW1wbHkgc3BhY2VzIHRvIGlkZW50aWZ5IGxpbmUgY29udGludWF0aW9ucyBtYXkgZ2V0IGEgZmFsc2UtcG9zaXRpdmUgaWYgdGhlIG91dHB1dFxuYWxzbyBwcmludHMgb3V0IHNpeCBzcGFjZXMsIGJ1dCBzdWNoIGNhc2VzIHNob3VsZCBiZSByYXJlLlxuKi9cblxuZnVuY3Rpb24ganVsaWFSZXBsKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSnVsaWEgUkVQTCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgICBiZWdpbjogL15qdWxpYT4vLFxuICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAvLyBlbmQgdGhlIGhpZ2hsaWdodGluZyBpZiB3ZSBhcmUgb24gYSBuZXcgbGluZSBhbmQgdGhlIGxpbmUgZG9lcyBub3QgaGF2ZSBhdFxuICAgICAgICAgIC8vIGxlYXN0IHNpeCBzcGFjZXMgaW4gdGhlIGJlZ2lubmluZ1xuICAgICAgICAgIGVuZDogL14oPyFbIF17Nn0pLyxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogJ2p1bGlhJ1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIC8vIGpsZG9jdGVzdCBNYXJrZG93biBibG9ja3MgYXJlIHVzZWQgaW4gdGhlIEp1bGlhIG1hbnVhbCBhbmQgcGFja2FnZSBkb2NzIGluZGljYXRlXG4gICAgLy8gY29kZSBzbmlwcGV0cyB0aGF0IHNob3VsZCBiZSB2ZXJpZmllZCB3aGVuIHRoZSBkb2N1bWVudGF0aW9uIGlzIGJ1aWx0LiBUaGV5IGNhbiBiZVxuICAgIC8vIGVpdGhlciBSRVBMLWxpa2Ugb3Igc2NyaXB0LWxpa2UsIGJ1dCBhcmUgdXN1YWxseSBSRVBMLWxpa2UgYW5kIHRoZXJlZm9yZSB3ZSBhcHBseVxuICAgIC8vIGp1bGlhLXJlcGwgaGlnaGxpZ2h0aW5nIHRvIHRoZW0uIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIERvY3VtZW50ZXInc1xuICAgIC8vIG1hbnVhbDogaHR0cHM6Ly9qdWxpYWRvY3MuZ2l0aHViLmlvL0RvY3VtZW50ZXIuamwvbGF0ZXN0L21hbi9kb2N0ZXN0cy5odG1sXG4gICAgYWxpYXNlczogWyAnamxkb2N0ZXN0JyBdLFxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGp1bGlhUmVwbDtcbiIsICIvLyBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2Uvc3BlY3MvamxzL3NlMTUvaHRtbC9qbHMtMy5odG1sI2pscy0zLjEwXG52YXIgZGVjaW1hbERpZ2l0cyA9ICdbMC05XShfKlswLTldKSonO1xudmFyIGZyYWMgPSBgXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSlgO1xudmFyIGhleERpZ2l0cyA9ICdbMC05YS1mQS1GXShfKlswLTlhLWZBLUZdKSonO1xudmFyIE5VTUVSSUMgPSB7XG4gIGNsYXNzTmFtZTogJ251bWJlcicsXG4gIHZhcmlhbnRzOiBbXG4gICAgLy8gRGVjaW1hbEZsb2F0aW5nUG9pbnRMaXRlcmFsXG4gICAgLy8gaW5jbHVkaW5nIEV4cG9uZW50UGFydFxuICAgIHsgYmVnaW46IGAoXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoKCR7ZnJhY30pfFxcXFwuKT98KCR7ZnJhY30pKWAgK1xuICAgICAgYFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KVtmRmREXT9cXFxcYmAgfSxcbiAgICAvLyBleGNsdWRpbmcgRXhwb25lbnRQYXJ0XG4gICAgeyBiZWdpbjogYFxcXFxiKCR7ZGVjaW1hbERpZ2l0c30pKCgke2ZyYWN9KVtmRmREXT9cXFxcYnxcXFxcLihbZkZkRF1cXFxcYik/KWAgfSxcbiAgICB7IGJlZ2luOiBgKCR7ZnJhY30pW2ZGZERdP1xcXFxiYCB9LFxuICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxEaWdpdHN9KVtmRmREXVxcXFxiYCB9LFxuXG4gICAgLy8gSGV4YWRlY2ltYWxGbG9hdGluZ1BvaW50TGl0ZXJhbFxuICAgIHsgYmVnaW46IGBcXFxcYjBbeFhdKCgke2hleERpZ2l0c30pXFxcXC4/fCgke2hleERpZ2l0c30pP1xcXFwuKCR7aGV4RGlnaXRzfSkpYCArXG4gICAgICBgW3BQXVsrLV0/KCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdP1xcXFxiYCB9LFxuXG4gICAgLy8gRGVjaW1hbEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiKDB8WzEtOV0oXypbMC05XSkqKVtsTF0/XFxcXGInIH0sXG5cbiAgICAvLyBIZXhJbnRlZ2VyTGl0ZXJhbFxuICAgIHsgYmVnaW46IGBcXFxcYjBbeFhdKCR7aGV4RGlnaXRzfSlbbExdP1xcXFxiYCB9LFxuXG4gICAgLy8gT2N0YWxJbnRlZ2VyTGl0ZXJhbFxuICAgIHsgYmVnaW46ICdcXFxcYjAoXypbMC03XSkqW2xMXT9cXFxcYicgfSxcblxuICAgIC8vIEJpbmFyeUludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiMFtiQl1bMDFdKF8qWzAxXSkqW2xMXT9cXFxcYicgfSxcbiAgXSxcbiAgcmVsZXZhbmNlOiAwXG59O1xuXG4vKlxuIExhbmd1YWdlOiBLb3RsaW5cbiBEZXNjcmlwdGlvbjogS290bGluIGlzIGFuIE9TUyBzdGF0aWNhbGx5IHR5cGVkIHByb2dyYW1taW5nIGxhbmd1YWdlIHRoYXQgdGFyZ2V0cyB0aGUgSlZNLCBBbmRyb2lkLCBKYXZhU2NyaXB0IGFuZCBOYXRpdmUuXG4gQXV0aG9yOiBTZXJnZXkgTWFzaGtvdiA8Y3k2ZXJHbjBtQGdtYWlsLmNvbT5cbiBXZWJzaXRlOiBodHRwczovL2tvdGxpbmxhbmcub3JnXG4gQ2F0ZWdvcnk6IGNvbW1vblxuICovXG5cblxuZnVuY3Rpb24ga290bGluKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDpcbiAgICAgICdhYnN0cmFjdCBhcyB2YWwgdmFyIHZhcmFyZyBnZXQgc2V0IGNsYXNzIG9iamVjdCBvcGVuIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyBub2lubGluZSAnXG4gICAgICArICdjcm9zc2lubGluZSBkeW5hbWljIGZpbmFsIGVudW0gaWYgZWxzZSBkbyB3aGlsZSBmb3Igd2hlbiB0aHJvdyB0cnkgY2F0Y2ggZmluYWxseSAnXG4gICAgICArICdpbXBvcnQgcGFja2FnZSBpcyBpbiBmdW4gb3ZlcnJpZGUgY29tcGFuaW9uIHJlaWZpZWQgaW5saW5lIGxhdGVpbml0IGluaXQgJ1xuICAgICAgKyAnaW50ZXJmYWNlIGFubm90YXRpb24gZGF0YSBzZWFsZWQgaW50ZXJuYWwgaW5maXggb3BlcmF0b3Igb3V0IGJ5IGNvbnN0cnVjdG9yIHN1cGVyICdcbiAgICAgICsgJ3RhaWxyZWMgd2hlcmUgY29uc3QgaW5uZXIgc3VzcGVuZCB0eXBlYWxpYXMgZXh0ZXJuYWwgZXhwZWN0IGFjdHVhbCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnQnl0ZSBTaG9ydCBDaGFyIEludCBMb25nIEJvb2xlYW4gRmxvYXQgRG91YmxlIFZvaWQgVW5pdCBOb3RoaW5nJyxcbiAgICBsaXRlcmFsOlxuICAgICAgJ3RydWUgZmFsc2UgbnVsbCdcbiAgfTtcbiAgY29uc3QgS0VZV09SRFNfV0lUSF9MQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogL1xcYihicmVha3xjb250aW51ZXxyZXR1cm58dGhpcylcXGIvLFxuICAgIHN0YXJ0czogeyBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL0BcXHcrL1xuICAgICAgfVxuICAgIF0gfVxuICB9O1xuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnQCdcbiAgfTtcblxuICAvLyBmb3Igc3RyaW5nIHRlbXBsYXRlc1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC9cXCRcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5DX05VTUJFUl9NT0RFIF1cbiAgfTtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiKD89W15cIl0pJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gQ2FuJ3QgdXNlIGJ1aWx0LWluIG1vZGVzIGVhc2lseSwgYXMgd2Ugd2FudCB0byB1c2UgU1RSSU5HIGluIHRoZSBtZXRhXG4gICAgICAvLyBjb250ZXh0IGFzICdtZXRhLXN0cmluZycgYW5kIHRoZXJlJ3Mgbm8gc3ludGF4IHRvIHJlbW92ZSBleHBsaWNpdGx5IHNldFxuICAgICAgLy8gY2xhc3NOYW1lcyBpbiBidWlsdC1pbiBtb2Rlcy5cbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBTVUJTVC5jb250YWlucy5wdXNoKFNUUklORyk7XG5cbiAgY29uc3QgQU5OT1RBVElPTl9VU0VfU0lURSA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AoPzpmaWxlfHByb3BlcnR5fGZpZWxkfGdldHxzZXR8cmVjZWl2ZXJ8cGFyYW18c2V0cGFyYW18ZGVsZWdhdGUpXFxcXHMqOig/OlxcXFxzKicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKT8nXG4gIH07XG4gIGNvbnN0IEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KFNUUklORywgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAgICAgIFwic2VsZlwiXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9rb3RsaW5sYW5nLm9yZy9kb2NzL3JlZmVyZW5jZS93aGF0c25ldzExLmh0bWwjdW5kZXJzY29yZXMtaW4tbnVtZXJpYy1saXRlcmFsc1xuICAvLyBBY2NvcmRpbmcgdG8gdGhlIGRvYyBhYm92ZSwgdGhlIG51bWJlciBtb2RlIG9mIGtvdGxpbiBpcyB0aGUgc2FtZSBhcyBqYXZhIDgsXG4gIC8vIHNvIHRoZSBjb2RlIGJlbG93IGlzIGNvcGllZCBmcm9tIGphdmEuanNcbiAgY29uc3QgS09UTElOX05VTUJFUl9NT0RFID0gTlVNRVJJQztcbiAgY29uc3QgS09UTElOX05FU1RFRF9DT01NRU5UID0gaGxqcy5DT01NRU5UKFxuICAgICcvXFxcXConLCAnXFxcXCovJyxcbiAgICB7IGNvbnRhaW5zOiBbIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUgXSB9XG4gICk7XG4gIGNvbnN0IEtPVExJTl9QQVJFTl9UWVBFID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRVxuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGNvbnRhaW5zOiBbXSAvLyBkZWZpbmVkIGxhdGVyXG4gICAgfVxuICBdIH07XG4gIGNvbnN0IEtPVExJTl9QQVJFTl9UWVBFMiA9IEtPVExJTl9QQVJFTl9UWVBFO1xuICBLT1RMSU5fUEFSRU5fVFlQRTIudmFyaWFudHNbMV0uY29udGFpbnMgPSBbIEtPVExJTl9QQVJFTl9UWVBFIF07XG4gIEtPVExJTl9QQVJFTl9UWVBFLnZhcmlhbnRzWzFdLmNvbnRhaW5zID0gWyBLT1RMSU5fUEFSRU5fVFlQRTIgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdLb3RsaW4nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdrdCcsXG4gICAgICAna3RzJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICcvXFxcXCpcXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICAgICAgICAgIGJlZ2luOiAnQFtBLVphLXpdKydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlQsXG4gICAgICBLRVlXT1JEU19XSVRIX0xBQkVMLFxuICAgICAgTEFCRUwsXG4gICAgICBBTk5PVEFUSU9OX1VTRV9TSVRFLFxuICAgICAgQU5OT1RBVElPTixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuJyxcbiAgICAgICAgZW5kOiAnWyhdfCQnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccypcXFxcKCcsXG4gICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC88LyxcbiAgICAgICAgICAgIGVuZDogLz4vLFxuICAgICAgICAgICAga2V5d29yZHM6ICdyZWlmaWVkJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgICAgICAgICAgZW5kOiAvWz0sXFwvXS8sXG4gICAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIEtPVExJTl9QQVJFTl9UWVBFLFxuICAgICAgICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICAgICAgS09UTElOX05FU1RFRF9DT01NRU5UXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlQsXG4gICAgICAgICAgICAgIEFOTk9UQVRJT05fVVNFX1NJVEUsXG4gICAgICAgICAgICAgIEFOTk9UQVRJT04sXG4gICAgICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvY2xhc3N8aW50ZXJmYWNlfHRyYWl0LyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAga2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UgdHJhaXQnLFxuICAgICAgICBlbmQ6IC9bOlxceyhdfCQvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAnZXh0ZW5kcyBpbXBsZW1lbnRzJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdwdWJsaWMgcHJvdGVjdGVkIGludGVybmFsIHByaXZhdGUgY29uc3RydWN0b3InIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICBiZWdpbjogLzwvLFxuICAgICAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAvWyw6XVxccyovLFxuICAgICAgICAgICAgZW5kOiAvWzxcXCgsKXtcXHNdfCQvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBBTk5PVEFUSU9OX1VTRV9TSVRFLFxuICAgICAgICAgIEFOTk9UQVRJT05cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiBcIl4jIS91c3IvYmluL2VudlwiLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcbidcbiAgICAgIH0sXG4gICAgICBLT1RMSU5fTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga290bGluO1xuIiwgIi8qXG5MYW5ndWFnZTogTGFzc29cbkF1dGhvcjogRXJpYyBLbmliYmUgPGVyaWNAbGFzc29zb2Z0LmNvbT5cbkRlc2NyaXB0aW9uOiBMYXNzbyBpcyBhIGxhbmd1YWdlIGFuZCBzZXJ2ZXIgcGxhdGZvcm0gZm9yIGRhdGFiYXNlLWRyaXZlbiB3ZWIgYXBwbGljYXRpb25zLiBUaGlzIGRlZmluaXRpb24gaGFuZGxlcyBMYXNzbyA5IHN5bnRheCBhbmQgTGFzc29TY3JpcHQgZm9yIExhc3NvIDguNiBhbmQgZWFybGllci5cbldlYnNpdGU6IGh0dHA6Ly93d3cubGFzc29zb2Z0LmNvbS9XaGF0LUlzLUxhc3NvXG5DYXRlZ29yeTogZGF0YWJhc2UsIHdlYlxuKi9cblxuZnVuY3Rpb24gbGFzc28oaGxqcykge1xuICBjb25zdCBMQVNTT19JREVOVF9SRSA9ICdbYS16QS1aX11bXFxcXHcuXSonO1xuICBjb25zdCBMQVNTT19BTkdMRV9SRSA9ICc8XFxcXD8obGFzc28oc2NyaXB0KT98PSknO1xuICBjb25zdCBMQVNTT19DTE9TRV9SRSA9ICdcXFxcXXxcXFxcPz4nO1xuICBjb25zdCBMQVNTT19LRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogTEFTU09fSURFTlRfUkUgKyAnfCZbbGdddDsnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBub25lIG1pbmltYWwgZnVsbCBhbGwgdm9pZCBhbmQgb3Igbm90ICdcbiAgICAgICsgJ2J3IG5idyBldyBuZXcgY24gbmNuIGx0IGx0ZSBndCBndGUgZXEgbmVxIHJ4IG5yeCBmdCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnYXJyYXkgZGF0ZSBkZWNpbWFsIGR1cmF0aW9uIGludGVnZXIgbWFwIHBhaXIgc3RyaW5nIHRhZyB4bWwgbnVsbCAnXG4gICAgICArICdib29sZWFuIGJ5dGVzIGtleXdvcmQgbGlzdCBsb2NhbGUgcXVldWUgc2V0IHN0YWNrIHN0YXRpY2FycmF5ICdcbiAgICAgICsgJ2xvY2FsIHZhciB2YXJpYWJsZSBnbG9iYWwgZGF0YSBzZWxmIGluaGVyaXRlZCBjdXJyZW50Y2FwdHVyZSBnaXZlbmJsb2NrJyxcbiAgICBrZXl3b3JkOlxuICAgICAgJ2NhY2hlIGRhdGFiYXNlX25hbWVzIGRhdGFiYXNlX3NjaGVtYW5hbWVzIGRhdGFiYXNlX3RhYmxlbmFtZXMgJ1xuICAgICAgKyAnZGVmaW5lX3RhZyBkZWZpbmVfdHlwZSBlbWFpbF9iYXRjaCBlbmNvZGVfc2V0IGh0bWxfY29tbWVudCBoYW5kbGUgJ1xuICAgICAgKyAnaGFuZGxlX2Vycm9yIGhlYWRlciBpZiBpbmxpbmUgaXRlcmF0ZSBsamF4X3RhcmdldCBsaW5rICdcbiAgICAgICsgJ2xpbmtfY3VycmVudGFjdGlvbiBsaW5rX2N1cnJlbnRncm91cCBsaW5rX2N1cnJlbnRyZWNvcmQgbGlua19kZXRhaWwgJ1xuICAgICAgKyAnbGlua19maXJzdGdyb3VwIGxpbmtfZmlyc3RyZWNvcmQgbGlua19sYXN0Z3JvdXAgbGlua19sYXN0cmVjb3JkICdcbiAgICAgICsgJ2xpbmtfbmV4dGdyb3VwIGxpbmtfbmV4dHJlY29yZCBsaW5rX3ByZXZncm91cCBsaW5rX3ByZXZyZWNvcmQgbG9nICdcbiAgICAgICsgJ2xvb3AgbmFtZXNwYWNlX3VzaW5nIG91dHB1dF9ub25lIHBvcnRhbCBwcml2YXRlIHByb3RlY3QgcmVjb3JkcyAnXG4gICAgICArICdyZWZlcmVyIHJlZmVycmVyIHJlcGVhdGluZyByZXN1bHRzZXQgcm93cyBzZWFyY2hfYXJncyAnXG4gICAgICArICdzZWFyY2hfYXJndW1lbnRzIHNlbGVjdCBzb3J0X2FyZ3Mgc29ydF9hcmd1bWVudHMgdGhyZWFkX2F0b21pYyAnXG4gICAgICArICd2YWx1ZV9saXN0IHdoaWxlIGFib3J0IGNhc2UgZWxzZSBmYWlsX2lmIGZhaWxfaWZub3QgZmFpbCBpZl9lbXB0eSAnXG4gICAgICArICdpZl9mYWxzZSBpZl9udWxsIGlmX3RydWUgbG9vcF9hYm9ydCBsb29wX2NvbnRpbnVlIGxvb3BfY291bnQgcGFyYW1zICdcbiAgICAgICsgJ3BhcmFtc191cCByZXR1cm4gcmV0dXJuX3ZhbHVlIHJ1bl9jaGlsZHJlbiBzb2FwX2RlZmluZXRhZyAnXG4gICAgICArICdzb2FwX2xhc3RyZXF1ZXN0IHNvYXBfbGFzdHJlc3BvbnNlIHRhZ19uYW1lIGFzY2VuZGluZyBhdmVyYWdlIGJ5ICdcbiAgICAgICsgJ2RlZmluZSBkZXNjZW5kaW5nIGRvIGVxdWFscyBmcm96ZW4gZ3JvdXAgaGFuZGxlX2ZhaWx1cmUgaW1wb3J0IGluICdcbiAgICAgICsgJ2ludG8gam9pbiBsZXQgbWF0Y2ggbWF4IG1pbiBvbiBvcmRlciBwYXJlbnQgcHJvdGVjdGVkIHByb3ZpZGUgcHVibGljICdcbiAgICAgICsgJ3JlcXVpcmUgcmV0dXJuaG9tZSBza2lwIHNwbGl0X3RocmVhZCBzdW0gdGFrZSB0aHJlYWQgdG8gdHJhaXQgdHlwZSAnXG4gICAgICArICd3aGVyZSB3aXRoIHlpZWxkIHlpZWxkaG9tZSdcbiAgfTtcbiAgY29uc3QgSFRNTF9DT01NRU5UID0gaGxqcy5DT01NRU5UKFxuICAgICc8IS0tJyxcbiAgICAnLS0+JyxcbiAgICB7IHJlbGV2YW5jZTogMCB9XG4gICk7XG4gIGNvbnN0IExBU1NPX05PUFJPQ0VTUyA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ1xcXFxbbm9wcm9jZXNzXFxcXF0nLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnXFxcXFsvbm9wcm9jZXNzXFxcXF0nLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgY29udGFpbnM6IFsgSFRNTF9DT01NRU5UIF1cbiAgICB9XG4gIH07XG4gIGNvbnN0IExBU1NPX1NUQVJUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXFxcXFsvbm9wcm9jZXNzfCcgKyBMQVNTT19BTkdMRV9SRVxuICB9O1xuICBjb25zdCBMQVNTT19EQVRBTUVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdcXCcnICsgTEFTU09fSURFTlRfUkUgKyAnXFwnJ1xuICB9O1xuICBjb25zdCBMQVNTT19DT0RFID0gW1xuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfTlVNQkVSX01PREUsIHsgYmVnaW46IGhsanMuQ19OVU1CRVJfUkUgKyAnfCgtP2luZmluaXR5fE5hTilcXFxcYicgfSksXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnYCcsXG4gICAgICBlbmQ6ICdgJ1xuICAgIH0sXG4gICAgeyAvLyB2YXJpYWJsZXNcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHsgYmVnaW46ICdbIyRdJyArIExBU1NPX0lERU5UX1JFIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICAgIGVuZDogJ1xcXFxkKycsXG4gICAgICAgICAgaWxsZWdhbDogJ1xcXFxXJ1xuICAgICAgICB9XG4gICAgICBdIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJzo6XFxcXHMqJyxcbiAgICAgIGVuZDogTEFTU09fSURFTlRfUkUsXG4gICAgICBpbGxlZ2FsOiAnXFxcXFcnXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLSg/IWluZmluaXR5KScgKyBMQVNTT19JREVOVF9SRSxcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfSxcbiAgICAgICAgeyBiZWdpbjogJyhcXFxcLlxcXFwuXFxcXC4pJyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogLygtPnxcXC4pXFxzKi8sXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogWyBMQVNTT19EQVRBTUVNQkVSIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZpbmUnLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgZW5kOiAnXFxcXCh8PT4nLFxuICAgICAgY29udGFpbnM6IFsgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogTEFTU09fSURFTlRfUkUgKyAnKD0oPyE+KSk/fFstKyovJV0oPyE+KScgfSkgXVxuICAgIH1cbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGFzc28nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdscycsXG4gICAgICAnbGFzc29zY3JpcHQnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBMQVNTT19LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IExBU1NPX0NMT1NFX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogeyAvLyBtYXJrdXBcbiAgICAgICAgICBlbmQ6ICdcXFxcW3wnICsgTEFTU09fQU5HTEVfUkUsXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogWyBIVE1MX0NPTU1FTlQgXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgTEFTU09fTk9QUk9DRVNTLFxuICAgICAgTEFTU09fU1RBUlQsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxbbm9fc3F1YXJlX2JyYWNrZXRzJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAnXFxcXFsvbm9fc3F1YXJlX2JyYWNrZXRzXFxcXF0nLCAvLyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGxhbmd1YWdlXG4gICAgICAgICAga2V5d29yZHM6IExBU1NPX0tFWVdPUkRTLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICAgICAgICBiZWdpbjogTEFTU09fQ0xPU0VfUkUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICAgICAgZW5kOiAnXFxcXFtub3Byb2Nlc3NcXFxcXXwnICsgTEFTU09fQU5HTEVfUkUsXG4gICAgICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbIEhUTUxfQ09NTUVOVCBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMQVNTT19OT1BST0NFU1MsXG4gICAgICAgICAgICBMQVNTT19TVEFSVFxuICAgICAgICAgIF0uY29uY2F0KExBU1NPX0NPREUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxbJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeIyEnLFxuICAgICAgICBlbmQ6ICdsYXNzbzkkJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfVxuICAgIF0uY29uY2F0KExBU1NPX0NPREUpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGFzc287XG4iLCAiLypcbkxhbmd1YWdlOiBMYVRlWFxuQXV0aG9yOiBCZW5lZGlrdCBXaWxkZSA8YndpbGRlQHBvc3Rlby5kZT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmxhdGV4LXByb2plY3Qub3JnXG5DYXRlZ29yeTogbWFya3VwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbGF0ZXgoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEtOT1dOX0NPTlRST0xfV09SRFMgPSByZWdleC5laXRoZXIoLi4uW1xuICAgICcoPzpOZWVkc1RlWEZvcm1hdHxSZXF1aXJlUGFja2FnZXxHZXRJZEluZm8pJyxcbiAgICAnUHJvdmlkZXMoPzpFeHBsKT8oPzpQYWNrYWdlfENsYXNzfEZpbGUpJyxcbiAgICAnKD86RGVjbGFyZU9wdGlvbnxQcm9jZXNzT3B0aW9ucyknLFxuICAgICcoPzpkb2N1bWVudGNsYXNzfHVzZXBhY2thZ2V8aW5wdXR8aW5jbHVkZSknLFxuICAgICdtYWtlYXQoPzpsZXR0ZXJ8b3RoZXIpJyxcbiAgICAnRXhwbFN5bnRheCg/Ok9ufE9mZiknLFxuICAgICcoPzpuZXd8cmVuZXd8cHJvdmlkZSk/Y29tbWFuZCcsXG4gICAgJyg/OnJlKW5ld2Vudmlyb25tZW50JyxcbiAgICAnKD86TmV3fFJlbmV3fFByb3ZpZGV8RGVjbGFyZSkoPzpFeHBhbmRhYmxlKT9Eb2N1bWVudENvbW1hbmQnLFxuICAgICcoPzpOZXd8UmVuZXd8UHJvdmlkZXxEZWNsYXJlKURvY3VtZW50RW52aXJvbm1lbnQnLFxuICAgICcoPzooPzplfGd8eCk/ZGVmfGxldCknLFxuICAgICcoPzpiZWdpbnxlbmQpJyxcbiAgICAnKD86cGFydHxjaGFwdGVyfCg/OnN1Yil7MCwyfXNlY3Rpb258KD86c3ViKT9wYXJhZ3JhcGgpJyxcbiAgICAnY2FwdGlvbicsXG4gICAgJyg/OmxhYmVsfCg/OmVxfHBhZ2V8bmFtZSk/cmVmfCg/OnBhcmVufGZvb3R8c3VwZXIpP2NpdGUpJyxcbiAgICAnKD86YWxwaGF8YmV0YXxbR2ddYW1tYXxbRGRdZWx0YXwoPzp2YXIpP2Vwc2lsb258emV0YXxldGF8W1R0XWhldGF8dmFydGhldGEpJyxcbiAgICAnKD86aW90YXwoPzp2YXIpP2thcHBhfFtMbF1hbWJkYXxtdXxudXxbWHhdaXxbUHBdaXx2YXJwaXwoPzp2YXIpcmhvKScsXG4gICAgJyg/OltTc11pZ21hfHZhcnNpZ21hfHRhdXxbVXVdcHNpbG9ufFtQcF1oaXx2YXJwaGl8Y2hpfFtQcF1zaXxbT29dbWVnYSknLFxuICAgICcoPzpmcmFjfHN1bXxwcm9kfGxpbXxpbmZ0eXx0aW1lc3xzcXJ0fGxlcXxnZXF8bGVmdHxyaWdodHxtaWRkbGV8W2JCXWlnZz8pJyxcbiAgICAnKD86W2xyXWFuZ2xlfHE/cXVhZHxbbGN2ZGldP2RvdHN8ZD9kb3R8aGF0fHRpbGRlfGJhciknXG4gIF0ubWFwKHdvcmQgPT4gd29yZCArICcoPyFbYS16QS1aQDpfXSknKSk7XG4gIGNvbnN0IEwzX1JFR0VYID0gbmV3IFJlZ0V4cChbXG4gICAgLy8gQSBmdW5jdGlvbiBcXG1vZHVsZV9mdW5jdGlvbl9uYW1lOnNpZ25hdHVyZSBvciBcXF9fbW9kdWxlX2Z1bmN0aW9uX25hbWU6c2lnbmF0dXJlLFxuICAgIC8vIHdoZXJlIGJvdGggbW9kdWxlIGFuZCBmdW5jdGlvbl9uYW1lIG5lZWQgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYW5kXG4gICAgLy8gZnVuY3Rpb25fbmFtZSBtYXkgY29udGFpbiBzaW5nbGUgdW5kZXJzY29yZXMuXG4gICAgJyg/Ol9fKT9bYS16QS1aXXsyLH1fW2EtekEtWl0oPzpfP1thLXpBLVpdKSs6W2EtekEtWl0qJyxcbiAgICAvLyBBIHZhcmlhYmxlIFxcc2NvcGVfbW9kdWxlX2FuZF9uYW1lX3R5cGUgb3IgXFxzY29wZV9fbW9kdWxlX2FuZV9uYW1lX3R5cGUsXG4gICAgLy8gd2hlcmUgc2NvcGUgaXMgb25lIG9mIGwsIGcgb3IgYywgdHlwZSBuZWVkcyBhdCBsZWFzdCB0d28gY2hhcmFjdGVyc1xuICAgIC8vIGFuZCBtb2R1bGVfYW5kX25hbWUgbWF5IGNvbnRhaW4gc2luZ2xlIHVuZGVyc2NvcmVzLlxuICAgICdbbGdjXV9fP1thLXpBLVpdKD86Xz9bYS16QS1aXSkqX1thLXpBLVpdezIsfScsXG4gICAgLy8gQSBxdWFyayBcXHFfdGhlX25hbWUgb3IgXFxxX190aGVfbmFtZSBvclxuICAgIC8vIHNjYW4gbWFyayBcXHNfdGhlX25hbWUgb3IgXFxzX192dGhlX25hbWUsXG4gICAgLy8gd2hlcmUgdmFyaWFibGVfbmFtZSBuZWVkcyBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBhbmRcbiAgICAvLyBtYXkgY29udGFpbiBzaW5nbGUgdW5kZXJzY29yZXMuXG4gICAgJ1txc11fXz9bYS16QS1aXSg/Ol8/W2EtekEtWl0pKycsXG4gICAgLy8gT3RoZXIgTGFUZVgzIG1hY3JvIG5hbWVzIHRoYXQgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoZSB0aHJlZSBydWxlcyBhYm92ZS5cbiAgICAndXNlKD86X2kpPzpbYS16QS1aXSonLFxuICAgICcoPzplbHNlfGZpfG9yKTonLFxuICAgICcoPzppZnxjc3xleHApOncnLFxuICAgICcoPzpoYm94fHZib3gpOm4nLFxuICAgICc6OlthLXpBLVpdX3VuYnJhY2VkJyxcbiAgICAnOjpbYS16QS1aOl0nXG4gIF0ubWFwKHBhdHRlcm4gPT4gcGF0dGVybiArICcoPyFbYS16QS1aOl9dKScpLmpvaW4oJ3wnKSk7XG4gIGNvbnN0IEwyX1ZBUklBTlRTID0gW1xuICAgIHsgYmVnaW46IC9bYS16QS1aQF0rLyB9LCAvLyBjb250cm9sIHdvcmRcbiAgICB7IGJlZ2luOiAvW15hLXpBLVpAXT8vIH0gLy8gY29udHJvbCBzeW1ib2xcbiAgXTtcbiAgY29uc3QgRE9VQkxFX0NBUkVUX1ZBUklBTlRTID0gW1xuICAgIHsgYmVnaW46IC9cXF57Nn1bMC05YS1mXXs2fS8gfSxcbiAgICB7IGJlZ2luOiAvXFxeezV9WzAtOWEtZl17NX0vIH0sXG4gICAgeyBiZWdpbjogL1xcXns0fVswLTlhLWZdezR9LyB9LFxuICAgIHsgYmVnaW46IC9cXF57M31bMC05YS1mXXszfS8gfSxcbiAgICB7IGJlZ2luOiAvXFxeezJ9WzAtOWEtZl17Mn0vIH0sXG4gICAgeyBiZWdpbjogL1xcXnsyfVtcXHUwMDAwLVxcdTAwN2ZdLyB9XG4gIF07XG4gIGNvbnN0IENPTlRST0xfU0VRVUVOQ0UgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46IC9cXFxcLyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgYmVnaW46IEtOT1dOX0NPTlRST0xfV09SRFNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIGJlZ2luOiBMM19SRUdFWFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgdmFyaWFudHM6IERPVUJMRV9DQVJFVF9WQVJJQU5UU1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICB2YXJpYW50czogTDJfVkFSSUFOVFNcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IE1BQ1JPX1BBUkFNID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiAvIytcXGQ/L1xuICB9O1xuICBjb25zdCBET1VCTEVfQ0FSRVRfQ0hBUiA9IHtcbiAgICAvLyByZWxldmFuY2U6IDFcbiAgICB2YXJpYW50czogRE9VQkxFX0NBUkVUX1ZBUklBTlRTIH07XG4gIGNvbnN0IFNQRUNJQUxfQ0FUQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiAvWyQmXl9dL1xuICB9O1xuICBjb25zdCBNQUdJQ19DT01NRU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAvJSA/IShUW2VFXVh8dGV4fEJJQnxiaWIpLyxcbiAgICBlbmQ6ICckJyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJyUnLFxuICAgICckJyxcbiAgICB7IHJlbGV2YW5jZTogMCB9XG4gICk7XG4gIGNvbnN0IEVWRVJZVEhJTkdfQlVUX1ZFUkJBVElNID0gW1xuICAgIENPTlRST0xfU0VRVUVOQ0UsXG4gICAgTUFDUk9fUEFSQU0sXG4gICAgRE9VQkxFX0NBUkVUX0NIQVIsXG4gICAgU1BFQ0lBTF9DQVRDT0RFLFxuICAgIE1BR0lDX0NPTU1FTlQsXG4gICAgQ09NTUVOVFxuICBdO1xuICBjb25zdCBCUkFDRV9HUk9VUF9OT19WRVJCQVRJTSA9IHtcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgICdzZWxmJyxcbiAgICAgIC4uLkVWRVJZVEhJTkdfQlVUX1ZFUkJBVElNXG4gICAgXVxuICB9O1xuICBjb25zdCBBUkdVTUVOVF9CUkFDRVMgPSBobGpzLmluaGVyaXQoXG4gICAgQlJBQ0VfR1JPVVBfTk9fVkVSQkFUSU0sXG4gICAge1xuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIEJSQUNFX0dST1VQX05PX1ZFUkJBVElNLFxuICAgICAgICAuLi5FVkVSWVRISU5HX0JVVF9WRVJCQVRJTVxuICAgICAgXVxuICAgIH1cbiAgKTtcbiAgY29uc3QgQVJHVU1FTlRfQlJBQ0tFVFMgPSB7XG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS8sXG4gICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEJSQUNFX0dST1VQX05PX1ZFUkJBVElNLFxuICAgICAgLi4uRVZFUllUSElOR19CVVRfVkVSQkFUSU1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNQQUNFX0dPQkJMRVIgPSB7XG4gICAgYmVnaW46IC9cXHMrLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQVJHVU1FTlRfTSA9IFsgQVJHVU1FTlRfQlJBQ0VTIF07XG4gIGNvbnN0IEFSR1VNRU5UX08gPSBbIEFSR1VNRU5UX0JSQUNLRVRTIF07XG4gIGNvbnN0IEFSR1VNRU5UX0FORF9USEVOID0gZnVuY3Rpb24oYXJnLCBzdGFydHNfbW9kZSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb250YWluczogWyBTUEFDRV9HT0JCTEVSIF0sXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogYXJnLFxuICAgICAgICBzdGFydHM6IHN0YXJ0c19tb2RlXG4gICAgICB9XG4gICAgfTtcbiAgfTtcbiAgY29uc3QgQ1NOQU1FID0gZnVuY3Rpb24oY3NuYW1lLCBzdGFydHNfbW9kZSkge1xuICAgIHJldHVybiB7XG4gICAgICBiZWdpbjogJ1xcXFxcXFxcJyArIGNzbmFtZSArICcoPyFbYS16QS1aQDpfXSknLFxuICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgJHBhdHRlcm46IC9cXFxcW2EtekEtWl0rLyxcbiAgICAgICAga2V5d29yZDogJ1xcXFwnICsgY3NuYW1lXG4gICAgICB9LFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgY29udGFpbnM6IFsgU1BBQ0VfR09CQkxFUiBdLFxuICAgICAgc3RhcnRzOiBzdGFydHNfbW9kZVxuICAgIH07XG4gIH07XG4gIGNvbnN0IEJFR0lOX0VOViA9IGZ1bmN0aW9uKGVudm5hbWUsIHN0YXJ0c19tb2RlKSB7XG4gICAgcmV0dXJuIGhsanMuaW5oZXJpdChcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcXFxcXGJlZ2luKD89WyBcXHRdKihcXFxccj9cXFxcblsgXFx0XSopP1xcXFx7JyArIGVudm5hbWUgKyAnXFxcXH0pJyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1xcXFxbYS16QS1aXSsvLFxuICAgICAgICAgIGtleXdvcmQ6ICdcXFxcYmVnaW4nXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIH0sXG4gICAgICBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9NLCBzdGFydHNfbW9kZSlcbiAgICApO1xuICB9O1xuICBjb25zdCBWRVJCQVRJTV9ERUxJTUlURURfRVFVQUwgPSAoaW5uZXJOYW1lID0gXCJzdHJpbmdcIikgPT4ge1xuICAgIHJldHVybiBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgIGNsYXNzTmFtZTogaW5uZXJOYW1lLFxuICAgICAgYmVnaW46IC8oLnxcXHI/XFxuKS8sXG4gICAgICBlbmQ6IC8oLnxcXHI/XFxuKS8sXG4gICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgIH0pO1xuICB9O1xuICBjb25zdCBWRVJCQVRJTV9ERUxJTUlURURfRU5WID0gZnVuY3Rpb24oZW52bmFtZSkge1xuICAgIHJldHVybiB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgZW5kOiAnKD89XFxcXFxcXFxlbmRcXFxceycgKyBlbnZuYW1lICsgJ1xcXFx9KSdcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IFZFUkJBVElNX0RFTElNSVRFRF9CUkFDRVMgPSAoaW5uZXJOYW1lID0gXCJzdHJpbmdcIikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBiZWdpbjogL1xcey8sXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IGlubmVyTmFtZSxcbiAgICAgICAgICAgIGVuZDogLyg/PVxcfSkvLFxuICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogL1xcey8sXG4gICAgICAgICAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFsgXCJzZWxmXCIgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH07XG4gIH07XG4gIGNvbnN0IFZFUkJBVElNID0gW1xuICAgIC4uLltcbiAgICAgICd2ZXJiJyxcbiAgICAgICdsc3RpbmxpbmUnXG4gICAgXS5tYXAoY3NuYW1lID0+IENTTkFNRShjc25hbWUsIHsgY29udGFpbnM6IFsgVkVSQkFUSU1fREVMSU1JVEVEX0VRVUFMKCkgXSB9KSksXG4gICAgQ1NOQU1FKCdtaW50JywgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTSwgeyBjb250YWluczogWyBWRVJCQVRJTV9ERUxJTUlURURfRVFVQUwoKSBdIH0pKSxcbiAgICBDU05BTUUoJ21pbnRpbmxpbmUnLCBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9NLCB7IGNvbnRhaW5zOiBbXG4gICAgICBWRVJCQVRJTV9ERUxJTUlURURfQlJBQ0VTKCksXG4gICAgICBWRVJCQVRJTV9ERUxJTUlURURfRVFVQUwoKVxuICAgIF0gfSkpLFxuICAgIENTTkFNRSgndXJsJywgeyBjb250YWluczogW1xuICAgICAgVkVSQkFUSU1fREVMSU1JVEVEX0JSQUNFUyhcImxpbmtcIiksXG4gICAgICBWRVJCQVRJTV9ERUxJTUlURURfQlJBQ0VTKFwibGlua1wiKVxuICAgIF0gfSksXG4gICAgQ1NOQU1FKCdoeXBlcnJlZicsIHsgY29udGFpbnM6IFsgVkVSQkFUSU1fREVMSU1JVEVEX0JSQUNFUyhcImxpbmtcIikgXSB9KSxcbiAgICBDU05BTUUoJ2hyZWYnLCBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9PLCB7IGNvbnRhaW5zOiBbIFZFUkJBVElNX0RFTElNSVRFRF9CUkFDRVMoXCJsaW5rXCIpIF0gfSkpLFxuICAgIC4uLltdLmNvbmNhdCguLi5bXG4gICAgICAnJyxcbiAgICAgICdcXFxcKidcbiAgICBdLm1hcChzdWZmaXggPT4gW1xuICAgICAgQkVHSU5fRU5WKCd2ZXJiYXRpbScgKyBzdWZmaXgsIFZFUkJBVElNX0RFTElNSVRFRF9FTlYoJ3ZlcmJhdGltJyArIHN1ZmZpeCkpLFxuICAgICAgQkVHSU5fRU5WKCdmaWxlY29udGVudHMnICsgc3VmZml4LCBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9NLCBWRVJCQVRJTV9ERUxJTUlURURfRU5WKCdmaWxlY29udGVudHMnICsgc3VmZml4KSkpLFxuICAgICAgLi4uW1xuICAgICAgICAnJyxcbiAgICAgICAgJ0InLFxuICAgICAgICAnTCdcbiAgICAgIF0ubWFwKHByZWZpeCA9PlxuICAgICAgICBCRUdJTl9FTlYocHJlZml4ICsgJ1ZlcmJhdGltJyArIHN1ZmZpeCwgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTywgVkVSQkFUSU1fREVMSU1JVEVEX0VOVihwcmVmaXggKyAnVmVyYmF0aW0nICsgc3VmZml4KSkpXG4gICAgICApXG4gICAgXSkpLFxuICAgIEJFR0lOX0VOVignbWludGVkJywgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTywgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTSwgVkVSQkFUSU1fREVMSU1JVEVEX0VOVignbWludGVkJykpKSksXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGFUZVgnLFxuICAgIGFsaWFzZXM6IFsgJ3RleCcgXSxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uVkVSQkFUSU0sXG4gICAgICAuLi5FVkVSWVRISU5HX0JVVF9WRVJCQVRJTVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsYXRleDtcbiIsICIvKlxuTGFuZ3VhZ2U6IExESUZcbkNvbnRyaWJ1dG9yczogSmFjb2IgQ2hpbGRyZXNzIDxqYWNvYmNAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGVudGVycHJpc2UsIGNvbmZpZ1xuV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTERBUF9EYXRhX0ludGVyY2hhbmdlX0Zvcm1hdFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGxkaWYoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdMRElGJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICBtYXRjaDogJ15kbig/PTopJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgbWF0Y2g6ICdeXFxcXHcrKD89OiknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgbWF0Y2g6ICdeLSdcbiAgICAgIH0sXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxkaWY7XG4iLCAiLypcbkxhbmd1YWdlOiBMZWFmXG5EZXNjcmlwdGlvbjogQSBTd2lmdC1iYXNlZCB0ZW1wbGF0aW5nIGxhbmd1YWdlIGNyZWF0ZWQgZm9yIHRoZSBWYXBvciBwcm9qZWN0LlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLnZhcG9yLmNvZGVzL2xlYWYvb3ZlcnZpZXdcbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuZnVuY3Rpb24gbGVhZihobGpzKSB7XG4gIGNvbnN0IElERU5UID0gLyhbQS1aYS16X11bQS1aYS16XzAtOV0qKT8vO1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAndHJ1ZScsXG4gICAgJ2ZhbHNlJyxcbiAgICAnaW4nXG4gIF07XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBzY29wZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKSg/PVxcOj8pLyxcbiAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgIHJlbGV2YW5jZTogNyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBzY29wZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgICAgIG1hdGNoOiBMSVRFUkFMUy5qb2luKFwifFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICBtYXRjaDogL1tBLVphLXpfXVtBLVphLXpfMC05XSovXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogJ29wZXJhdG9yJyxcbiAgICAgICAgbWF0Y2g6IC9cXCt8XFwtfFxcKnxcXC98XFwlfFxcPVxcPXxcXD18XFwhfFxcPnxcXDx8XFwmXFwmfFxcfFxcfC9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IElOU0lERV9ESVNQQVRDSCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgSURFTlQsXG4gICAgICAvKD89XFwoKS8sXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gIH07XG4gIFBBUkFNUy5jb250YWlucy51bnNoaWZ0KElOU0lERV9ESVNQQVRDSCk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xlYWYnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyAjaWRlbnQoKTpcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvIysvLFxuICAgICAgICAgIElERU5ULFxuICAgICAgICAgIC8oPz1cXCgpLyxcbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAxOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgICAgMjogXCJrZXl3b3JkXCJcbiAgICAgICAgfSxcbiAgICAgICAgLy8gd2lsbCBzdGFydCB1cCBhZnRlciB0aGUgZW5kaW5nIGApYCBtYXRjaCBmcm9tIGxpbmUgfjQ0XG4gICAgICAgIC8vIGp1c3QgdG8gZ3JhYiB0aGUgdHJhaWxpbmcgYDpgIGlmIHdlIGNhbiBtYXRjaCBpdFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXRjaDogL1xcOi8sXG4gICAgICAgICAgICAgIHNjb3BlOiBcInB1bmN0dWF0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUEFSQU1TXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgLy8gI2lkZW50IG9yICNpZGVudDpcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvIysvLFxuICAgICAgICAgIElERU5ULFxuICAgICAgICAgIC86Py8sXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJwdW5jdHVhdGlvblwiLFxuICAgICAgICAgIDI6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwicHVuY3R1YXRpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsZWFmO1xuIiwgImNvbnN0IE1PREVTID0gKGhsanMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBJTVBPUlRBTlQ6IHtcbiAgICAgIHNjb3BlOiAnbWV0YScsXG4gICAgICBiZWdpbjogJyFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICBCTE9DS19DT01NRU5UOiBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEhFWENPTE9SOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogLyMoKFswLTlhLWZBLUZdezMsNH0pfCgoWzAtOWEtZkEtRl17Mn0pezMsNH0pKVxcYi9cbiAgICB9LFxuICAgIEZVTkNUSU9OX0RJU1BBVENIOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYnVpbHRfaW5cIixcbiAgICAgIGJlZ2luOiAvW1xcdy1dKyg/PVxcKCkvXG4gICAgfSxcbiAgICBBVFRSSUJVVEVfU0VMRUNUT1JfTU9ERToge1xuICAgICAgc2NvcGU6ICdzZWxlY3Rvci1hdHRyJyxcbiAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgIGVuZDogL1xcXS8sXG4gICAgICBpbGxlZ2FsOiAnJCcsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgIF1cbiAgICB9LFxuICAgIENTU19OVU1CRVJfTU9ERToge1xuICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgYmVnaW46IGhsanMuTlVNQkVSX1JFICsgJygnICtcbiAgICAgICAgJyV8ZW18ZXh8Y2h8cmVtJyArXG4gICAgICAgICd8dnd8dmh8dm1pbnx2bWF4JyArXG4gICAgICAgICd8Y218bW18aW58cHR8cGN8cHgnICtcbiAgICAgICAgJ3xkZWd8Z3JhZHxyYWR8dHVybicgK1xuICAgICAgICAnfHN8bXMnICtcbiAgICAgICAgJ3xIenxrSHonICtcbiAgICAgICAgJ3xkcGl8ZHBjbXxkcHB4JyArXG4gICAgICAgICcpPycsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIENTU19WQVJJQUJMRToge1xuICAgICAgY2xhc3NOYW1lOiBcImF0dHJcIixcbiAgICAgIGJlZ2luOiAvLS1bQS1aYS16X11bQS1aYS16MC05Xy1dKi9cbiAgICB9XG4gIH07XG59O1xuXG5jb25zdCBIVE1MX1RBR1MgPSBbXG4gICdhJyxcbiAgJ2FiYnInLFxuICAnYWRkcmVzcycsXG4gICdhcnRpY2xlJyxcbiAgJ2FzaWRlJyxcbiAgJ2F1ZGlvJyxcbiAgJ2InLFxuICAnYmxvY2txdW90ZScsXG4gICdib2R5JyxcbiAgJ2J1dHRvbicsXG4gICdjYW52YXMnLFxuICAnY2FwdGlvbicsXG4gICdjaXRlJyxcbiAgJ2NvZGUnLFxuICAnZGQnLFxuICAnZGVsJyxcbiAgJ2RldGFpbHMnLFxuICAnZGZuJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdlbScsXG4gICdmaWVsZHNldCcsXG4gICdmaWdjYXB0aW9uJyxcbiAgJ2ZpZ3VyZScsXG4gICdmb290ZXInLFxuICAnZm9ybScsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkZXInLFxuICAnaGdyb3VwJyxcbiAgJ2h0bWwnLFxuICAnaScsXG4gICdpZnJhbWUnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2lucycsXG4gICdrYmQnLFxuICAnbGFiZWwnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ21haW4nLFxuICAnbWFyaycsXG4gICdtZW51JyxcbiAgJ25hdicsXG4gICdvYmplY3QnLFxuICAnb2wnLFxuICAnb3B0Z3JvdXAnLFxuICAnb3B0aW9uJyxcbiAgJ3AnLFxuICAncGljdHVyZScsXG4gICdxJyxcbiAgJ3F1b3RlJyxcbiAgJ3NhbXAnLFxuICAnc2VjdGlvbicsXG4gICdzZWxlY3QnLFxuICAnc291cmNlJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N1bW1hcnknLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3RleHRhcmVhJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpbWUnLFxuICAndHInLFxuICAndWwnLFxuICAndmFyJyxcbiAgJ3ZpZGVvJ1xuXTtcblxuY29uc3QgU1ZHX1RBR1MgPSBbXG4gICdkZWZzJyxcbiAgJ2cnLFxuICAnbWFya2VyJyxcbiAgJ21hc2snLFxuICAncGF0dGVybicsXG4gICdzdmcnLFxuICAnc3dpdGNoJyxcbiAgJ3N5bWJvbCcsXG4gICdmZUJsZW5kJyxcbiAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICdmZUNvbXBvc2l0ZScsXG4gICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgJ2ZlRmxvb2QnLFxuICAnZmVHYXVzc2lhbkJsdXInLFxuICAnZmVJbWFnZScsXG4gICdmZU1lcmdlJyxcbiAgJ2ZlTW9ycGhvbG9neScsXG4gICdmZU9mZnNldCcsXG4gICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAnZmVUaWxlJyxcbiAgJ2ZlVHVyYnVsZW5jZScsXG4gICdsaW5lYXJHcmFkaWVudCcsXG4gICdyYWRpYWxHcmFkaWVudCcsXG4gICdzdG9wJyxcbiAgJ2NpcmNsZScsXG4gICdlbGxpcHNlJyxcbiAgJ2ltYWdlJyxcbiAgJ2xpbmUnLFxuICAncGF0aCcsXG4gICdwb2x5Z29uJyxcbiAgJ3BvbHlsaW5lJyxcbiAgJ3JlY3QnLFxuICAndGV4dCcsXG4gICd1c2UnLFxuICAndGV4dFBhdGgnLFxuICAndHNwYW4nLFxuICAnZm9yZWlnbk9iamVjdCcsXG4gICdjbGlwUGF0aCdcbl07XG5cbmNvbnN0IFRBR1MgPSBbXG4gIC4uLkhUTUxfVEFHUyxcbiAgLi4uU1ZHX1RBR1MsXG5dO1xuXG4vLyBTb3J0aW5nLCB0aGVuIHJldmVyc2luZyBtYWtlcyBzdXJlIGxvbmdlciBhdHRyaWJ1dGVzL2VsZW1lbnRzIGxpa2Vcbi8vIGBmb250LXdlaWdodGAgYXJlIG1hdGNoZWQgZnVsbHkgaW5zdGVhZCBvZiBnZXR0aW5nIGZhbHNlIHBvc2l0aXZlcyBvbiBzYXkgYGZvbnRgXG5cbmNvbnN0IE1FRElBX0ZFQVRVUkVTID0gW1xuICAnYW55LWhvdmVyJyxcbiAgJ2FueS1wb2ludGVyJyxcbiAgJ2FzcGVjdC1yYXRpbycsXG4gICdjb2xvcicsXG4gICdjb2xvci1nYW11dCcsXG4gICdjb2xvci1pbmRleCcsXG4gICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgJ2RldmljZS1oZWlnaHQnLFxuICAnZGV2aWNlLXdpZHRoJyxcbiAgJ2Rpc3BsYXktbW9kZScsXG4gICdmb3JjZWQtY29sb3JzJyxcbiAgJ2dyaWQnLFxuICAnaGVpZ2h0JyxcbiAgJ2hvdmVyJyxcbiAgJ2ludmVydGVkLWNvbG9ycycsXG4gICdtb25vY2hyb21lJyxcbiAgJ29yaWVudGF0aW9uJyxcbiAgJ292ZXJmbG93LWJsb2NrJyxcbiAgJ292ZXJmbG93LWlubGluZScsXG4gICdwb2ludGVyJyxcbiAgJ3ByZWZlcnMtY29sb3Itc2NoZW1lJyxcbiAgJ3ByZWZlcnMtY29udHJhc3QnLFxuICAncHJlZmVycy1yZWR1Y2VkLW1vdGlvbicsXG4gICdwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5JyxcbiAgJ3Jlc29sdXRpb24nLFxuICAnc2NhbicsXG4gICdzY3JpcHRpbmcnLFxuICAndXBkYXRlJyxcbiAgJ3dpZHRoJyxcbiAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbj9cbiAgJ21pbi13aWR0aCcsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWhlaWdodCcsXG4gICdtYXgtaGVpZ2h0J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWNsYXNzZXNcbmNvbnN0IFBTRVVET19DTEFTU0VTID0gW1xuICAnYWN0aXZlJyxcbiAgJ2FueS1saW5rJyxcbiAgJ2JsYW5rJyxcbiAgJ2NoZWNrZWQnLFxuICAnY3VycmVudCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmluZWQnLFxuICAnZGlyJywgLy8gZGlyKClcbiAgJ2Rpc2FibGVkJyxcbiAgJ2Ryb3AnLFxuICAnZW1wdHknLFxuICAnZW5hYmxlZCcsXG4gICdmaXJzdCcsXG4gICdmaXJzdC1jaGlsZCcsXG4gICdmaXJzdC1vZi10eXBlJyxcbiAgJ2Z1bGxzY3JlZW4nLFxuICAnZnV0dXJlJyxcbiAgJ2ZvY3VzJyxcbiAgJ2ZvY3VzLXZpc2libGUnLFxuICAnZm9jdXMtd2l0aGluJyxcbiAgJ2hhcycsIC8vIGhhcygpXG4gICdob3N0JywgLy8gaG9zdCBvciBob3N0KClcbiAgJ2hvc3QtY29udGV4dCcsIC8vIGhvc3QtY29udGV4dCgpXG4gICdob3ZlcicsXG4gICdpbmRldGVybWluYXRlJyxcbiAgJ2luLXJhbmdlJyxcbiAgJ2ludmFsaWQnLFxuICAnaXMnLCAvLyBpcygpXG4gICdsYW5nJywgLy8gbGFuZygpXG4gICdsYXN0LWNoaWxkJyxcbiAgJ2xhc3Qtb2YtdHlwZScsXG4gICdsZWZ0JyxcbiAgJ2xpbmsnLFxuICAnbG9jYWwtbGluaycsXG4gICdub3QnLCAvLyBub3QoKVxuICAnbnRoLWNoaWxkJywgLy8gbnRoLWNoaWxkKClcbiAgJ250aC1jb2wnLCAvLyBudGgtY29sKClcbiAgJ250aC1sYXN0LWNoaWxkJywgLy8gbnRoLWxhc3QtY2hpbGQoKVxuICAnbnRoLWxhc3QtY29sJywgLy8gbnRoLWxhc3QtY29sKClcbiAgJ250aC1sYXN0LW9mLXR5cGUnLCAvL250aC1sYXN0LW9mLXR5cGUoKVxuICAnbnRoLW9mLXR5cGUnLCAvL250aC1vZi10eXBlKClcbiAgJ29ubHktY2hpbGQnLFxuICAnb25seS1vZi10eXBlJyxcbiAgJ29wdGlvbmFsJyxcbiAgJ291dC1vZi1yYW5nZScsXG4gICdwYXN0JyxcbiAgJ3BsYWNlaG9sZGVyLXNob3duJyxcbiAgJ3JlYWQtb25seScsXG4gICdyZWFkLXdyaXRlJyxcbiAgJ3JlcXVpcmVkJyxcbiAgJ3JpZ2h0JyxcbiAgJ3Jvb3QnLFxuICAnc2NvcGUnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldC13aXRoaW4nLFxuICAndXNlci1pbnZhbGlkJyxcbiAgJ3ZhbGlkJyxcbiAgJ3Zpc2l0ZWQnLFxuICAnd2hlcmUnIC8vIHdoZXJlKClcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL1BzZXVkby1lbGVtZW50c1xuY29uc3QgUFNFVURPX0VMRU1FTlRTID0gW1xuICAnYWZ0ZXInLFxuICAnYmFja2Ryb3AnLFxuICAnYmVmb3JlJyxcbiAgJ2N1ZScsXG4gICdjdWUtcmVnaW9uJyxcbiAgJ2ZpcnN0LWxldHRlcicsXG4gICdmaXJzdC1saW5lJyxcbiAgJ2dyYW1tYXItZXJyb3InLFxuICAnbWFya2VyJyxcbiAgJ3BhcnQnLFxuICAncGxhY2Vob2xkZXInLFxuICAnc2VsZWN0aW9uJyxcbiAgJ3Nsb3R0ZWQnLFxuICAnc3BlbGxpbmctZXJyb3InXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICdhY2NlbnQtY29sb3InLFxuICAnYWxpZ24tY29udGVudCcsXG4gICdhbGlnbi1pdGVtcycsXG4gICdhbGlnbi1zZWxmJyxcbiAgJ2FsaWdubWVudC1iYXNlbGluZScsXG4gICdhbGwnLFxuICAnYW5pbWF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kZWxheScsXG4gICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbicsXG4gICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAnYW5pbWF0aW9uLW5hbWUnLFxuICAnYW5pbWF0aW9uLXBsYXktc3RhdGUnLFxuICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICdhcHBlYXJhbmNlJyxcbiAgJ2JhY2tmYWNlLXZpc2liaWxpdHknLFxuICAnYmFja2dyb3VuZCcsXG4gICdiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnLFxuICAnYmFja2dyb3VuZC1ibGVuZC1tb2RlJyxcbiAgJ2JhY2tncm91bmQtY2xpcCcsXG4gICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgJ2JhY2tncm91bmQtaW1hZ2UnLFxuICAnYmFja2dyb3VuZC1vcmlnaW4nLFxuICAnYmFja2dyb3VuZC1wb3NpdGlvbicsXG4gICdiYWNrZ3JvdW5kLXJlcGVhdCcsXG4gICdiYWNrZ3JvdW5kLXNpemUnLFxuICAnYmFzZWxpbmUtc2hpZnQnLFxuICAnYmxvY2stc2l6ZScsXG4gICdib3JkZXInLFxuICAnYm9yZGVyLWJsb2NrJyxcbiAgJ2JvcmRlci1ibG9jay1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1zdHlsZScsXG4gICdib3JkZXItYmxvY2stZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXdpZHRoJyxcbiAgJ2JvcmRlci1ib3R0b20nLFxuICAnYm9yZGVyLWJvdHRvbS1jb2xvcicsXG4gICdib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tc3R5bGUnLFxuICAnYm9yZGVyLWJvdHRvbS13aWR0aCcsXG4gICdib3JkZXItY29sbGFwc2UnLFxuICAnYm9yZGVyLWNvbG9yJyxcbiAgJ2JvcmRlci1pbWFnZScsXG4gICdib3JkZXItaW1hZ2Utb3V0c2V0JyxcbiAgJ2JvcmRlci1pbWFnZS1yZXBlYXQnLFxuICAnYm9yZGVyLWltYWdlLXNsaWNlJyxcbiAgJ2JvcmRlci1pbWFnZS1zb3VyY2UnLFxuICAnYm9yZGVyLWltYWdlLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUnLFxuICAnYm9yZGVyLWlubGluZS1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZCcsXG4gICdib3JkZXItaW5saW5lLWVuZC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLWVuZC13aWR0aCcsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0JyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS13aWR0aCcsXG4gICdib3JkZXItbGVmdCcsXG4gICdib3JkZXItbGVmdC1jb2xvcicsXG4gICdib3JkZXItbGVmdC1zdHlsZScsXG4gICdib3JkZXItbGVmdC13aWR0aCcsXG4gICdib3JkZXItcmFkaXVzJyxcbiAgJ2JvcmRlci1yaWdodCcsXG4gICdib3JkZXItZW5kLWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgJ2JvcmRlci1yaWdodC1zdHlsZScsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXNwYWNpbmcnLFxuICAnYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItc3R5bGUnLFxuICAnYm9yZGVyLXRvcCcsXG4gICdib3JkZXItdG9wLWNvbG9yJyxcbiAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1zdHlsZScsXG4gICdib3JkZXItdG9wLXdpZHRoJyxcbiAgJ2JvcmRlci13aWR0aCcsXG4gICdib3R0b20nLFxuICAnYm94LWRlY29yYXRpb24tYnJlYWsnLFxuICAnYm94LXNoYWRvdycsXG4gICdib3gtc2l6aW5nJyxcbiAgJ2JyZWFrLWFmdGVyJyxcbiAgJ2JyZWFrLWJlZm9yZScsXG4gICdicmVhay1pbnNpZGUnLFxuICAnY3gnLFxuICAnY3knLFxuICAnY2FwdGlvbi1zaWRlJyxcbiAgJ2NhcmV0LWNvbG9yJyxcbiAgJ2NsZWFyJyxcbiAgJ2NsaXAnLFxuICAnY2xpcC1wYXRoJyxcbiAgJ2NsaXAtcnVsZScsXG4gICdjb2xvcicsXG4gICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICdjb2xvci1wcm9maWxlJyxcbiAgJ2NvbG9yLXJlbmRlcmluZycsXG4gICdjb2xvci1zY2hlbWUnLFxuICAnY29sdW1uLWNvdW50JyxcbiAgJ2NvbHVtbi1maWxsJyxcbiAgJ2NvbHVtbi1nYXAnLFxuICAnY29sdW1uLXJ1bGUnLFxuICAnY29sdW1uLXJ1bGUtY29sb3InLFxuICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAnY29sdW1uLXJ1bGUtd2lkdGgnLFxuICAnY29sdW1uLXNwYW4nLFxuICAnY29sdW1uLXdpZHRoJyxcbiAgJ2NvbHVtbnMnLFxuICAnY29udGFpbicsXG4gICdjb250ZW50JyxcbiAgJ2NvbnRlbnQtdmlzaWJpbGl0eScsXG4gICdjb3VudGVyLWluY3JlbWVudCcsXG4gICdjb3VudGVyLXJlc2V0JyxcbiAgJ2N1ZScsXG4gICdjdWUtYWZ0ZXInLFxuICAnY3VlLWJlZm9yZScsXG4gICdjdXJzb3InLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2Rpc3BsYXknLFxuICAnZG9taW5hbnQtYmFzZWxpbmUnLFxuICAnZW1wdHktY2VsbHMnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAnZmlsbCcsXG4gICdmaWxsLW9wYWNpdHknLFxuICAnZmlsbC1ydWxlJyxcbiAgJ2ZpbHRlcicsXG4gICdmbGV4JyxcbiAgJ2ZsZXgtYmFzaXMnLFxuICAnZmxleC1kaXJlY3Rpb24nLFxuICAnZmxleC1mbG93JyxcbiAgJ2ZsZXgtZ3JvdycsXG4gICdmbGV4LXNocmluaycsXG4gICdmbGV4LXdyYXAnLFxuICAnZmxvYXQnLFxuICAnZmxvdycsXG4gICdmbG9vZC1jb2xvcicsXG4gICdmbG9vZC1vcGFjaXR5JyxcbiAgJ2ZvbnQnLFxuICAnZm9udC1kaXNwbGF5JyxcbiAgJ2ZvbnQtZmFtaWx5JyxcbiAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICdmb250LWtlcm5pbmcnLFxuICAnZm9udC1sYW5ndWFnZS1vdmVycmlkZScsXG4gICdmb250LXNpemUnLFxuICAnZm9udC1zaXplLWFkanVzdCcsXG4gICdmb250LXNtb290aGluZycsXG4gICdmb250LXN0cmV0Y2gnLFxuICAnZm9udC1zdHlsZScsXG4gICdmb250LXN5bnRoZXNpcycsXG4gICdmb250LXZhcmlhbnQnLFxuICAnZm9udC12YXJpYW50LWNhcHMnLFxuICAnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nLFxuICAnZm9udC12YXJpYW50LWxpZ2F0dXJlcycsXG4gICdmb250LXZhcmlhbnQtbnVtZXJpYycsXG4gICdmb250LXZhcmlhbnQtcG9zaXRpb24nLFxuICAnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnLFxuICAnZm9udC13ZWlnaHQnLFxuICAnZ2FwJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLFxuICAnZ3JpZCcsXG4gICdncmlkLWFyZWEnLFxuICAnZ3JpZC1hdXRvLWNvbHVtbnMnLFxuICAnZ3JpZC1hdXRvLWZsb3cnLFxuICAnZ3JpZC1hdXRvLXJvd3MnLFxuICAnZ3JpZC1jb2x1bW4nLFxuICAnZ3JpZC1jb2x1bW4tZW5kJyxcbiAgJ2dyaWQtY29sdW1uLXN0YXJ0JyxcbiAgJ2dyaWQtZ2FwJyxcbiAgJ2dyaWQtcm93JyxcbiAgJ2dyaWQtcm93LWVuZCcsXG4gICdncmlkLXJvdy1zdGFydCcsXG4gICdncmlkLXRlbXBsYXRlJyxcbiAgJ2dyaWQtdGVtcGxhdGUtYXJlYXMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJyxcbiAgJ2dyaWQtdGVtcGxhdGUtcm93cycsXG4gICdoYW5naW5nLXB1bmN0dWF0aW9uJyxcbiAgJ2hlaWdodCcsXG4gICdoeXBoZW5zJyxcbiAgJ2ljb24nLFxuICAnaW1hZ2Utb3JpZW50YXRpb24nLFxuICAnaW1hZ2UtcmVuZGVyaW5nJyxcbiAgJ2ltYWdlLXJlc29sdXRpb24nLFxuICAnaW1lLW1vZGUnLFxuICAnaW5saW5lLXNpemUnLFxuICAnaW5zZXQnLFxuICAnaW5zZXQtYmxvY2snLFxuICAnaW5zZXQtYmxvY2stZW5kJyxcbiAgJ2luc2V0LWJsb2NrLXN0YXJ0JyxcbiAgJ2luc2V0LWlubGluZScsXG4gICdpbnNldC1pbmxpbmUtZW5kJyxcbiAgJ2luc2V0LWlubGluZS1zdGFydCcsXG4gICdpc29sYXRpb24nLFxuICAna2VybmluZycsXG4gICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAnanVzdGlmeS1pdGVtcycsXG4gICdqdXN0aWZ5LXNlbGYnLFxuICAnbGVmdCcsXG4gICdsZXR0ZXItc3BhY2luZycsXG4gICdsaWdodGluZy1jb2xvcicsXG4gICdsaW5lLWJyZWFrJyxcbiAgJ2xpbmUtaGVpZ2h0JyxcbiAgJ2xpc3Qtc3R5bGUnLFxuICAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgJ2xpc3Qtc3R5bGUtdHlwZScsXG4gICdtYXJrZXInLFxuICAnbWFya2VyLWVuZCcsXG4gICdtYXJrZXItbWlkJyxcbiAgJ21hcmtlci1zdGFydCcsXG4gICdtYXNrJyxcbiAgJ21hcmdpbicsXG4gICdtYXJnaW4tYmxvY2snLFxuICAnbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdtYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnbWFyZ2luLWJvdHRvbScsXG4gICdtYXJnaW4taW5saW5lJyxcbiAgJ21hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ21hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnbWFyZ2luLWxlZnQnLFxuICAnbWFyZ2luLXJpZ2h0JyxcbiAgJ21hcmdpbi10b3AnLFxuICAnbWFya3MnLFxuICAnbWFzaycsXG4gICdtYXNrLWJvcmRlcicsXG4gICdtYXNrLWJvcmRlci1tb2RlJyxcbiAgJ21hc2stYm9yZGVyLW91dHNldCcsXG4gICdtYXNrLWJvcmRlci1yZXBlYXQnLFxuICAnbWFzay1ib3JkZXItc2xpY2UnLFxuICAnbWFzay1ib3JkZXItc291cmNlJyxcbiAgJ21hc2stYm9yZGVyLXdpZHRoJyxcbiAgJ21hc2stY2xpcCcsXG4gICdtYXNrLWNvbXBvc2l0ZScsXG4gICdtYXNrLWltYWdlJyxcbiAgJ21hc2stbW9kZScsXG4gICdtYXNrLW9yaWdpbicsXG4gICdtYXNrLXBvc2l0aW9uJyxcbiAgJ21hc2stcmVwZWF0JyxcbiAgJ21hc2stc2l6ZScsXG4gICdtYXNrLXR5cGUnLFxuICAnbWF4LWJsb2NrLXNpemUnLFxuICAnbWF4LWhlaWdodCcsXG4gICdtYXgtaW5saW5lLXNpemUnLFxuICAnbWF4LXdpZHRoJyxcbiAgJ21pbi1ibG9jay1zaXplJyxcbiAgJ21pbi1oZWlnaHQnLFxuICAnbWluLWlubGluZS1zaXplJyxcbiAgJ21pbi13aWR0aCcsXG4gICdtaXgtYmxlbmQtbW9kZScsXG4gICduYXYtZG93bicsXG4gICduYXYtaW5kZXgnLFxuICAnbmF2LWxlZnQnLFxuICAnbmF2LXJpZ2h0JyxcbiAgJ25hdi11cCcsXG4gICdub25lJyxcbiAgJ25vcm1hbCcsXG4gICdvYmplY3QtZml0JyxcbiAgJ29iamVjdC1wb3NpdGlvbicsXG4gICdvcGFjaXR5JyxcbiAgJ29yZGVyJyxcbiAgJ29ycGhhbnMnLFxuICAnb3V0bGluZScsXG4gICdvdXRsaW5lLWNvbG9yJyxcbiAgJ291dGxpbmUtb2Zmc2V0JyxcbiAgJ291dGxpbmUtc3R5bGUnLFxuICAnb3V0bGluZS13aWR0aCcsXG4gICdvdmVyZmxvdycsXG4gICdvdmVyZmxvdy13cmFwJyxcbiAgJ292ZXJmbG93LXgnLFxuICAnb3ZlcmZsb3cteScsXG4gICdwYWRkaW5nJyxcbiAgJ3BhZGRpbmctYmxvY2snLFxuICAncGFkZGluZy1ibG9jay1lbmQnLFxuICAncGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdwYWRkaW5nLWJvdHRvbScsXG4gICdwYWRkaW5nLWlubGluZScsXG4gICdwYWRkaW5nLWlubGluZS1lbmQnLFxuICAncGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAncGFkZGluZy1sZWZ0JyxcbiAgJ3BhZGRpbmctcmlnaHQnLFxuICAncGFkZGluZy10b3AnLFxuICAncGFnZS1icmVhay1hZnRlcicsXG4gICdwYWdlLWJyZWFrLWJlZm9yZScsXG4gICdwYWdlLWJyZWFrLWluc2lkZScsXG4gICdwYXVzZScsXG4gICdwYXVzZS1hZnRlcicsXG4gICdwYXVzZS1iZWZvcmUnLFxuICAncGVyc3BlY3RpdmUnLFxuICAncGVyc3BlY3RpdmUtb3JpZ2luJyxcbiAgJ3BvaW50ZXItZXZlbnRzJyxcbiAgJ3Bvc2l0aW9uJyxcbiAgJ3F1b3RlcycsXG4gICdyJyxcbiAgJ3Jlc2l6ZScsXG4gICdyZXN0JyxcbiAgJ3Jlc3QtYWZ0ZXInLFxuICAncmVzdC1iZWZvcmUnLFxuICAncmlnaHQnLFxuICAncm90YXRlJyxcbiAgJ3Jvdy1nYXAnLFxuICAnc2NhbGUnLFxuICAnc2Nyb2xsLW1hcmdpbicsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ib3R0b20nLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tbGVmdCcsXG4gICdzY3JvbGwtbWFyZ2luLXJpZ2h0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tdG9wJyxcbiAgJ3Njcm9sbC1wYWRkaW5nJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1ib3R0b20nLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWxlZnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctcmlnaHQnLFxuICAnc2Nyb2xsLXBhZGRpbmctdG9wJyxcbiAgJ3Njcm9sbC1zbmFwLWFsaWduJyxcbiAgJ3Njcm9sbC1zbmFwLXN0b3AnLFxuICAnc2Nyb2xsLXNuYXAtdHlwZScsXG4gICdzY3JvbGxiYXItY29sb3InLFxuICAnc2Nyb2xsYmFyLWd1dHRlcicsXG4gICdzY3JvbGxiYXItd2lkdGgnLFxuICAnc2hhcGUtaW1hZ2UtdGhyZXNob2xkJyxcbiAgJ3NoYXBlLW1hcmdpbicsXG4gICdzaGFwZS1vdXRzaWRlJyxcbiAgJ3NoYXBlLXJlbmRlcmluZycsXG4gICdzdG9wLWNvbG9yJyxcbiAgJ3N0b3Atb3BhY2l0eScsXG4gICdzdHJva2UnLFxuICAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICdzdHJva2UtZGFzaG9mZnNldCcsXG4gICdzdHJva2UtbGluZWNhcCcsXG4gICdzdHJva2UtbGluZWpvaW4nLFxuICAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAnc3Ryb2tlLW9wYWNpdHknLFxuICAnc3Ryb2tlLXdpZHRoJyxcbiAgJ3NwZWFrJyxcbiAgJ3NwZWFrLWFzJyxcbiAgJ3NyYycsIC8vIEBmb250LWZhY2VcbiAgJ3RhYi1zaXplJyxcbiAgJ3RhYmxlLWxheW91dCcsXG4gICd0ZXh0LWFuY2hvcicsXG4gICd0ZXh0LWFsaWduJyxcbiAgJ3RleHQtYWxpZ24tYWxsJyxcbiAgJ3RleHQtYWxpZ24tbGFzdCcsXG4gICd0ZXh0LWNvbWJpbmUtdXByaWdodCcsXG4gICd0ZXh0LWRlY29yYXRpb24nLFxuICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1saW5lJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1za2lwLWluaycsXG4gICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycsXG4gICd0ZXh0LWVtcGhhc2lzJyxcbiAgJ3RleHQtZW1waGFzaXMtY29sb3InLFxuICAndGV4dC1lbXBoYXNpcy1wb3NpdGlvbicsXG4gICd0ZXh0LWVtcGhhc2lzLXN0eWxlJyxcbiAgJ3RleHQtaW5kZW50JyxcbiAgJ3RleHQtanVzdGlmeScsXG4gICd0ZXh0LW9yaWVudGF0aW9uJyxcbiAgJ3RleHQtb3ZlcmZsb3cnLFxuICAndGV4dC1yZW5kZXJpbmcnLFxuICAndGV4dC1zaGFkb3cnLFxuICAndGV4dC10cmFuc2Zvcm0nLFxuICAndGV4dC11bmRlcmxpbmUtb2Zmc2V0JyxcbiAgJ3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgJ3RvcCcsXG4gICd0cmFuc2Zvcm0nLFxuICAndHJhbnNmb3JtLWJveCcsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zZm9ybS1zdHlsZScsXG4gICd0cmFuc2l0aW9uJyxcbiAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd1bmljb2RlLWJpZGknLFxuICAndmVjdG9yLWVmZmVjdCcsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3ZvaWNlLWJhbGFuY2UnLFxuICAndm9pY2UtZHVyYXRpb24nLFxuICAndm9pY2UtZmFtaWx5JyxcbiAgJ3ZvaWNlLXBpdGNoJyxcbiAgJ3ZvaWNlLXJhbmdlJyxcbiAgJ3ZvaWNlLXJhdGUnLFxuICAndm9pY2Utc3RyZXNzJyxcbiAgJ3ZvaWNlLXZvbHVtZScsXG4gICd3aGl0ZS1zcGFjZScsXG4gICd3aWRvd3MnLFxuICAnd2lkdGgnLFxuICAnd2lsbC1jaGFuZ2UnLFxuICAnd29yZC1icmVhaycsXG4gICd3b3JkLXNwYWNpbmcnLFxuICAnd29yZC13cmFwJyxcbiAgJ3dyaXRpbmctbW9kZScsXG4gICd4JyxcbiAgJ3knLFxuICAnei1pbmRleCdcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLy8gc29tZSBncmFtbWFycyB1c2UgdGhlbSBhbGwgYXMgYSBzaW5nbGUgZ3JvdXBcbmNvbnN0IFBTRVVET19TRUxFQ1RPUlMgPSBQU0VVRE9fQ0xBU1NFUy5jb25jYXQoUFNFVURPX0VMRU1FTlRTKS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IExlc3NcbkRlc2NyaXB0aW9uOiBJdCdzIENTUywgd2l0aCBqdXN0IGEgbGl0dGxlIG1vcmUuXG5BdXRob3I6ICAgTWF4IE1pa2hhaWxvdiA8c2V2ZW4ucGhhc2VzLm1heEBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbGVzc2Nzcy5vcmdcbkNhdGVnb3J5OiBjb21tb24sIGNzcywgd2ViXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBsZXNzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcbiAgY29uc3QgUFNFVURPX1NFTEVDVE9SUyQxID0gUFNFVURPX1NFTEVDVE9SUztcblxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBJREVOVF9SRSA9ICdbXFxcXHctXSsnOyAvLyB5ZXMsIExlc3MgaWRlbnRpZmllcnMgbWF5IGJlZ2luIHdpdGggYSBkaWdpdFxuICBjb25zdCBJTlRFUlBfSURFTlRfUkUgPSAnKCcgKyBJREVOVF9SRSArICd8QFxcXFx7JyArIElERU5UX1JFICsgJ1xcXFx9KSc7XG5cbiAgLyogR2VuZXJpYyBNb2RlcyAqL1xuXG4gIGNvbnN0IFJVTEVTID0gW107IGNvbnN0IFZBTFVFX01PREVTID0gW107IC8vIGZvcndhcmQgZGVmLiBmb3IgcmVjdXJzaXZlIG1vZGVzXG5cbiAgY29uc3QgU1RSSU5HX01PREUgPSBmdW5jdGlvbihjKSB7XG4gICAgcmV0dXJuIHtcbiAgICAvLyBMZXNzIHN0cmluZ3MgYXJlIG5vdCBtdWx0aWxpbmUgKGFsc28gaW5jbHVkZSAnficgZm9yIG1vcmUgY29uc2lzdGVudCBjb2xvcmluZyBvZiBcImVzY2FwZWRcIiBzdHJpbmdzKVxuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnfj8nICsgYyArICcuKj8nICsgY1xuICAgIH07XG4gIH07XG5cbiAgY29uc3QgSURFTlRfTU9ERSA9IGZ1bmN0aW9uKG5hbWUsIGJlZ2luLCByZWxldmFuY2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2xhc3NOYW1lOiBuYW1lLFxuICAgICAgYmVnaW46IGJlZ2luLFxuICAgICAgcmVsZXZhbmNlOiByZWxldmFuY2VcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IEFUX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvW2Etei1dKy8sXG4gICAga2V5d29yZDogQVRfTU9ESUZJRVJTLFxuICAgIGF0dHJpYnV0ZTogTUVESUFfRkVBVFVSRVMuam9pbihcIiBcIilcbiAgfTtcblxuICBjb25zdCBQQVJFTlNfTU9ERSA9IHtcbiAgICAvLyB1c2VkIG9ubHkgdG8gcHJvcGVybHkgYmFsYW5jZSBuZXN0ZWQgcGFyZW5zIGluc2lkZSBtaXhpbiBjYWxsLCBkZWYuIGFyZyBsaXN0XG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBWQUxVRV9NT0RFUyxcbiAgICBrZXl3b3JkczogQVRfS0VZV09SRFMsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgLy8gZ2VuZXJpYyBMZXNzIGhpZ2hsaWdodGVyICh1c2VkIGFsbW9zdCBldmVyeXdoZXJlIGV4Y2VwdCBzZWxlY3RvcnMpOlxuICBWQUxVRV9NT0RFUy5wdXNoKFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIFNUUklOR19NT0RFKFwiJ1wiKSxcbiAgICBTVFJJTkdfTU9ERSgnXCInKSxcbiAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsIC8vIGZpeG1lOiBpdCBkb2VzIG5vdCBpbmNsdWRlIGRvdCBmb3IgbnVtYmVycyBsaWtlIC41ZW0gOihcbiAgICB7XG4gICAgICBiZWdpbjogJyh1cmx8ZGF0YS11cmkpXFxcXCgnLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGVuZDogJ1tcXFxcKVxcXFxuXScsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIG1vZGVzLkhFWENPTE9SLFxuICAgIFBBUkVOU19NT0RFLFxuICAgIElERU5UX01PREUoJ3ZhcmlhYmxlJywgJ0BAPycgKyBJREVOVF9SRSwgMTApLFxuICAgIElERU5UX01PREUoJ3ZhcmlhYmxlJywgJ0BcXFxceycgKyBJREVOVF9SRSArICdcXFxcfScpLFxuICAgIElERU5UX01PREUoJ2J1aWx0X2luJywgJ34/YFteYF0qP2AnKSwgLy8gaW5saW5lIGphdmFzY3JpcHQgKG9yIHdoYXRldmVyIGhvc3QgbGFuZ3VhZ2UpICptdWx0aWxpbmUqIHN0cmluZ1xuICAgIHsgLy8gQG1lZGlhIGZlYXR1cmVzIChpdFx1MjAxOXMgaGVyZSB0byBub3QgZHVwbGljYXRlIHRoaW5ncyBpbiBBVF9SVUxFX01PREUgd2l0aCBleHRyYSBQQVJFTlNfTU9ERSBvdmVycmlkaW5nKTpcbiAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICBiZWdpbjogSURFTlRfUkUgKyAnXFxcXHMqOicsXG4gICAgICBlbmQ6ICc6JyxcbiAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgIH0sXG4gICAgbW9kZXMuSU1QT1JUQU5ULFxuICAgIHsgYmVnaW5LZXl3b3JkczogJ2FuZCBub3QnIH0sXG4gICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgKTtcblxuICBjb25zdCBWQUxVRV9XSVRIX1JVTEVTRVRTID0gVkFMVUVfTU9ERVMuY29uY2F0KHtcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBjb250YWluczogUlVMRVNcbiAgfSk7XG5cbiAgY29uc3QgTUlYSU5fR1VBUkRfTU9ERSA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnd2hlbicsXG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbktleXdvcmRzOiAnYW5kIG5vdCcgfSBdLmNvbmNhdChWQUxVRV9NT0RFUykgLy8gdXNpbmcgdGhpcyBmb3JtIHRvIG92ZXJyaWRlIFZBTFVFXHUyMDE5cyAnZnVuY3Rpb24nIG1hdGNoXG4gIH07XG5cbiAgLyogUnVsZS1MZXZlbCBNb2RlcyAqL1xuXG4gIGNvbnN0IFJVTEVfTU9ERSA9IHtcbiAgICBiZWdpbjogSU5URVJQX0lERU5UX1JFICsgJ1xcXFxzKjonLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGVuZDogL1s7fV0vLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgeyBiZWdpbjogLy0od2Via2l0fG1venxtc3xvKS0vIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIGVuZDogLyg/PTopLyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgaWxsZWdhbDogJ1s8PSRdJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFZBTFVFX01PREVTXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQVRfUlVMRV9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAnQChpbXBvcnR8bWVkaWF8Y2hhcnNldHxmb250LWZhY2V8KC1bYS16XSstKT9rZXlmcmFtZXN8c3VwcG9ydHN8ZG9jdW1lbnR8bmFtZXNwYWNlfHBhZ2V8dmlld3BvcnR8aG9zdClcXFxcYicsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdbO3t9XScsXG4gICAgICBrZXl3b3JkczogQVRfS0VZV09SRFMsXG4gICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICBjb250YWluczogVkFMVUVfTU9ERVMsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9XG4gIH07XG5cbiAgLy8gdmFyaWFibGUgZGVmaW5pdGlvbnMgYW5kIGNhbGxzXG4gIGNvbnN0IFZBUl9SVUxFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyB1c2luZyBtb3JlIHN0cmljdCBwYXR0ZXJuIGZvciBoaWdoZXIgcmVsZXZhbmNlIHRvIGluY3JlYXNlIGNoYW5jZXMgb2YgTGVzcyBkZXRlY3Rpb24uXG4gICAgICAvLyB0aGlzIGlzICp0aGUgb25seSogTGVzcyBzcGVjaWZpYyBzdGF0ZW1lbnQgdXNlZCBpbiBtb3N0IG9mIHRoZSBzb3VyY2VzLCBzby4uLlxuICAgICAgLy8gKHdlXHUyMDE5bGwgc3RpbGwgb2Z0ZW4gbG9vc2UgdG8gdGhlIGNzcy1wYXJzZXIgdW5sZXNzIHRoZXJlJ3MgJy8vJyBjb21tZW50LFxuICAgICAgLy8gc2ltcGx5IGJlY2F1c2UgMSB2YXJpYWJsZSBqdXN0IGNhbid0IGJlYXQgOTkgcHJvcGVydGllcyA6KVxuICAgICAge1xuICAgICAgICBiZWdpbjogJ0AnICsgSURFTlRfUkUgKyAnXFxcXHMqOicsXG4gICAgICAgIHJlbGV2YW5jZTogMTVcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnQCcgKyBJREVOVF9SRSB9XG4gICAgXSxcbiAgICBzdGFydHM6IHtcbiAgICAgIGVuZDogJ1s7fV0nLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgY29udGFpbnM6IFZBTFVFX1dJVEhfUlVMRVNFVFNcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgU0VMRUNUT1JfTU9ERSA9IHtcbiAgICAvLyBmaXJzdCBwYXJzZSB1bmFtYmlndW91cyBzZWxlY3RvcnMgKGkuZS4gdGhvc2Ugbm90IHN0YXJ0aW5nIHdpdGggdGFnKVxuICAgIC8vIHRoZW4gZmFsbCBpbnRvIHRoZSBzY2FyeSBsb29rYWhlYWQtZGlzY3JpbWluYXRvciB2YXJpYW50LlxuICAgIC8vIHRoaXMgbW9kZSBhbHNvIGhhbmRsZXMgbWl4aW4gZGVmaW5pdGlvbnMgYW5kIGNhbGxzXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbXFxcXC4jOiZcXFxcWz5dJyxcbiAgICAgICAgZW5kOiAnWzt7fV0nIC8vIG1peGluIGNhbGxzIGVuZCB3aXRoICc7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IElOVEVSUF9JREVOVF9SRSxcbiAgICAgICAgZW5kOiAvXFx7L1xuICAgICAgfVxuICAgIF0sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbPD1cXCckXCJdJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBNSVhJTl9HVUFSRF9NT0RFLFxuICAgICAgSURFTlRfTU9ERSgna2V5d29yZCcsICdhbGxcXFxcYicpLFxuICAgICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQFxcXFx7JyArIElERU5UX1JFICsgJ1xcXFx9JyksIC8vIG90aGVyd2lzZSBpdFx1MjAxOXMgaWRlbnRpZmllZCBhcyB0YWdcbiAgICAgIFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBUQUdTLmpvaW4oJ3wnKSArICcpXFxcXGInLFxuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci10YWcnXG4gICAgICB9LFxuICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgSURFTlRfTU9ERSgnc2VsZWN0b3ItdGFnJywgSU5URVJQX0lERU5UX1JFLCAwKSxcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLWlkJywgJyMnICsgSU5URVJQX0lERU5UX1JFKSxcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLWNsYXNzJywgJ1xcXFwuJyArIElOVEVSUF9JREVOVF9SRSwgMCksXG4gICAgICBJREVOVF9NT0RFKCdzZWxlY3Rvci10YWcnLCAnJicsIDApLFxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOignICsgUFNFVURPX0NMQVNTRVMuam9pbignfCcpICsgJyknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLFxuICAgICAgICBiZWdpbjogJzooOik/KCcgKyBQU0VVRE9fRUxFTUVOVFMuam9pbignfCcpICsgJyknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFZBTFVFX1dJVEhfUlVMRVNFVFNcbiAgICAgIH0sIC8vIGFyZ3VtZW50IGxpc3Qgb2YgcGFyYW1ldHJpYyBtaXhpbnNcbiAgICAgIHsgYmVnaW46ICchaW1wb3J0YW50JyB9LCAvLyBlYXQgIWltcG9ydGFudCBhZnRlciBtaXhpbiBjYWxsIG9yIGl0IHdpbGwgYmUgY29sb3JlZCBhcyB0YWdcbiAgICAgIG1vZGVzLkZVTkNUSU9OX0RJU1BBVENIXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBTRVVET19TRUxFQ1RPUl9NT0RFID0ge1xuICAgIGJlZ2luOiBJREVOVF9SRSArICc6KDopPycgKyBgKCR7UFNFVURPX1NFTEVDVE9SUyQxLmpvaW4oJ3wnKX0pYCxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogWyBTRUxFQ1RPUl9NT0RFIF1cbiAgfTtcblxuICBSVUxFUy5wdXNoKFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEFUX1JVTEVfTU9ERSxcbiAgICBWQVJfUlVMRV9NT0RFLFxuICAgIFBTRVVET19TRUxFQ1RPUl9NT0RFLFxuICAgIFJVTEVfTU9ERSxcbiAgICBTRUxFQ1RPUl9NT0RFLFxuICAgIE1JWElOX0dVQVJEX01PREUsXG4gICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdMZXNzJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbPT5cXCcvPCgkXCJdJyxcbiAgICBjb250YWluczogUlVMRVNcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsZXNzO1xuIiwgIi8qXG5MYW5ndWFnZTogTGlzcFxuRGVzY3JpcHRpb246IEdlbmVyaWMgbGlzcCBzeW50YXhcbkF1dGhvcjogVmFzaWx5IFBvbG92bnlvdiA8dmFzdEB3aGl0ZWFudHMubmV0PlxuQ2F0ZWdvcnk6IGxpc3BcbiovXG5cbmZ1bmN0aW9uIGxpc3AoaGxqcykge1xuICBjb25zdCBMSVNQX0lERU5UX1JFID0gJ1thLXpBLVpfXFxcXC0rXFxcXCpcXFxcLzw9PiYjXVthLXpBLVowLTlfXFxcXC0rKlxcXFwvPD0+JiMhXSonO1xuICBjb25zdCBNRUNfUkUgPSAnXFxcXHxbXl0qP1xcXFx8JztcbiAgY29uc3QgTElTUF9TSU1QTEVfTlVNQkVSX1JFID0gJygtfFxcXFwrKT9cXFxcZCsoXFxcXC5cXFxcZCt8XFxcXC9cXFxcZCspPygoZHxlfGZ8bHxzfER8RXxGfEx8UykoXFxcXCt8LSk/XFxcXGQrKT8nO1xuICBjb25zdCBMSVRFUkFMID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIGJlZ2luOiAnXFxcXGIodHsxfXxuaWwpXFxcXGInXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBMSVNQX1NJTVBMRV9OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46ICcjKGJ8QilbMC0xXSsoL1swLTFdKyk/JyB9LFxuICAgICAgeyBiZWdpbjogJyMob3xPKVswLTddKygvWzAtN10rKT8nIH0sXG4gICAgICB7IGJlZ2luOiAnIyh4fFgpWzAtOWEtZkEtRl0rKC9bMC05YS1mQS1GXSspPycgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcjKGN8QylcXFxcKCcgKyBMSVNQX1NJTVBMRV9OVU1CRVJfUkUgKyAnICsnICsgTElTUF9TSU1QTEVfTlVNQkVSX1JFLFxuICAgICAgICBlbmQ6ICdcXFxcKSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSk7XG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJzsnLCAnJCcsXG4gICAgeyByZWxldmFuY2U6IDAgfVxuICApO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBiZWdpbjogJ1xcXFwqJyxcbiAgICBlbmQ6ICdcXFxcKidcbiAgfTtcbiAgY29uc3QgS0VZV09SRCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnWzomXScgKyBMSVNQX0lERU5UX1JFXG4gIH07XG4gIGNvbnN0IElERU5UID0ge1xuICAgIGJlZ2luOiBMSVNQX0lERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBNRUMgPSB7IGJlZ2luOiBNRUNfUkUgfTtcbiAgY29uc3QgUVVPVEVEX0xJU1QgPSB7XG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBMSVRFUkFMLFxuICAgICAgU1RSSU5HLFxuICAgICAgTlVNQkVSLFxuICAgICAgSURFTlRcbiAgICBdXG4gIH07XG4gIGNvbnN0IFFVT1RFRCA9IHtcbiAgICBjb250YWluczogW1xuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBLRVlXT1JELFxuICAgICAgUVVPVEVEX0xJU1QsXG4gICAgICBJREVOVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbXFwnYF1cXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKHF1b3RlICcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6IHsgbmFtZTogJ3F1b3RlJyB9XG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJ1xcJycgKyBNRUNfUkUgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUVVPVEVEX0FUT00gPSB7IHZhcmlhbnRzOiBbXG4gICAgeyBiZWdpbjogJ1xcJycgKyBMSVNQX0lERU5UX1JFIH0sXG4gICAgeyBiZWdpbjogJyNcXCcnICsgTElTUF9JREVOVF9SRSArICcoOjonICsgTElTUF9JREVOVF9SRSArICcpKicgfVxuICBdIH07XG4gIGNvbnN0IExJU1QgPSB7XG4gICAgYmVnaW46ICdcXFxcKFxcXFxzKicsXG4gICAgZW5kOiAnXFxcXCknXG4gIH07XG4gIGNvbnN0IEJPRFkgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIExJU1QuY29udGFpbnMgPSBbXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IExJU1BfSURFTlRfUkUsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICB9LFxuICAgICAgICB7IGJlZ2luOiBNRUNfUkUgfVxuICAgICAgXVxuICAgIH0sXG4gICAgQk9EWVxuICBdO1xuICBCT0RZLmNvbnRhaW5zID0gW1xuICAgIFFVT1RFRCxcbiAgICBRVU9URURfQVRPTSxcbiAgICBMSVNULFxuICAgIExJVEVSQUwsXG4gICAgTlVNQkVSLFxuICAgIFNUUklORyxcbiAgICBDT01NRU5ULFxuICAgIFZBUklBQkxFLFxuICAgIEtFWVdPUkQsXG4gICAgTUVDLFxuICAgIElERU5UXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGlzcCcsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE5VTUJFUixcbiAgICAgIGhsanMuU0hFQkFORygpLFxuICAgICAgTElURVJBTCxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlQsXG4gICAgICBRVU9URUQsXG4gICAgICBRVU9URURfQVRPTSxcbiAgICAgIExJU1QsXG4gICAgICBJREVOVFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXNwO1xuIiwgIi8qXG5MYW5ndWFnZTogTGl2ZUNvZGVcbkF1dGhvcjogUmFsZiBCaXR0ZXIgPHJhYml0QHJldmlnbml0ZXIuY29tPlxuRGVzY3JpcHRpb246IExhbmd1YWdlIGRlZmluaXRpb24gZm9yIExpdmVDb2RlIHNlcnZlciBhY2NvdW50aW5nIGZvciByZXZJZ25pdGVyIChhIHdlYiBhcHBsaWNhdGlvbiBmcmFtZXdvcmspIGNoYXJhY3RlcmlzdGljcy5cblZlcnNpb246IDEuMVxuRGF0ZTogMjAxOS0wNC0xN1xuQ2F0ZWdvcnk6IGVudGVycHJpc2VcbiovXG5cbmZ1bmN0aW9uIGxpdmVjb2Rlc2VydmVyKGhsanMpIHtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXGIoW2d0cHNdW0EtWl17MX1bYS16QS1aMC05XSopKFxcXFxbLitcXFxcXSk/KD86XFxcXHMqPyknIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXCRfW0EtWl0rJyB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DT01NRU5UKCctLScsICckJyksXG4gICAgaGxqcy5DT01NRU5UKCdbXjpdLy8nLCAnJCcpXG4gIF07XG4gIGNvbnN0IFRJVExFMSA9IGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgdmFyaWFudHM6IFtcbiAgICB7IGJlZ2luOiAnXFxcXGJfKnJpZ1tBLVpdW0EtWmEtejAtOV9cXFxcLV0qJyB9LFxuICAgIHsgYmVnaW46ICdcXFxcYl9bYS16MC05XFxcXC1dKycgfVxuICBdIH0pO1xuICBjb25zdCBUSVRMRTIgPSBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiAnXFxcXGIoW0EtWmEtejAtOV9cXFxcLV0rKVxcXFxiJyB9KTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGl2ZUNvZGUnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnJF9DT09LSUUgJF9GSUxFUyAkX0dFVCAkX0dFVF9CSU5BUlkgJF9HRVRfUkFXICRfUE9TVCAkX1BPU1RfQklOQVJZICRfUE9TVF9SQVcgJF9TRVNTSU9OICRfU0VSVkVSICdcbiAgICAgICAgKyAnY29kZXBvaW50IGNvZGVwb2ludHMgc2VnbWVudCBzZWdtZW50cyBjb2RldW5pdCBjb2RldW5pdHMgc2VudGVuY2Ugc2VudGVuY2VzIHRydWVXb3JkIHRydWVXb3JkcyBwYXJhZ3JhcGggJ1xuICAgICAgICArICdhZnRlciBieXRlIGJ5dGVzIGVuZ2xpc2ggdGhlIHVudGlsIGh0dHAgZm9yZXZlciBkZXNjZW5kaW5nIHVzaW5nIGxpbmUgcmVhbDggd2l0aCBzZXZlbnRoICdcbiAgICAgICAgKyAnZm9yIHN0ZG91dCBmaW5hbGx5IGVsZW1lbnQgd29yZCB3b3JkcyBmb3VydGggYmVmb3JlIGJsYWNrIG5pbnRoIHNpeHRoIGNoYXJhY3RlcnMgY2hhcnMgc3RkZXJyICdcbiAgICAgICAgKyAndUludDEgdUludDFzIHVJbnQyIHVJbnQycyBzdGRpbiBzdHJpbmcgbGluZXMgcmVsYXRpdmUgcmVsIGFueSBmaWZ0aCBpdGVtcyBmcm9tIG1pZGRsZSBtaWQgJ1xuICAgICAgICArICdhdCBlbHNlIG9mIGNhdGNoIHRoZW4gdGhpcmQgaXQgZmlsZSBtaWxsaXNlY29uZHMgc2Vjb25kcyBzZWNvbmQgc2VjcyBzZWMgaW50MSBpbnQxcyBpbnQ0ICdcbiAgICAgICAgKyAnaW50NHMgaW50ZXJuZXQgaW50MiBpbnQycyBub3JtYWwgdGV4dCBpdGVtIGxhc3QgbG9uZyBkZXRhaWxlZCBlZmZlY3RpdmUgdUludDQgdUludDRzIHJlcGVhdCAnXG4gICAgICAgICsgJ2VuZCByZXBlYXQgVVJMIGluIHRyeSBpbnRvIHN3aXRjaCB0byB3b3JkcyBodHRwcyB0b2tlbiBiaW5maWxlIGVhY2ggdGVudGggYXMgdGlja3MgdGljayAnXG4gICAgICAgICsgJ3N5c3RlbSByZWFsNCBieSBkYXRlSXRlbXMgd2l0aG91dCBjaGFyIGNoYXJhY3RlciBhc2NlbmRpbmcgZWlnaHRoIHdob2xlIGRhdGVUaW1lIG51bWVyaWMgc2hvcnQgJ1xuICAgICAgICArICdmaXJzdCBmdHAgaW50ZWdlciBhYmJyZXZpYXRlZCBhYmJyIGFiYnJldiBwcml2YXRlIGNhc2Ugd2hpbGUgaWYgJ1xuICAgICAgICArICdkaXYgbW9kIHdyYXAgYW5kIG9yIGJpdEFuZCBiaXROb3QgYml0T3IgYml0WG9yIGFtb25nIG5vdCBpbiBhIGFuIHdpdGhpbiAnXG4gICAgICAgICsgJ2NvbnRhaW5zIGVuZHMgd2l0aCBiZWdpbnMgdGhlIGtleXMgb2Yga2V5cycsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnU0lYIFRFTiBGT1JNRkVFRCBOSU5FIFpFUk8gTk9ORSBTUEFDRSBGT1VSIEZBTFNFIENPTE9OIENSTEYgUEkgQ09NTUEgRU5ET0ZGSUxFIEVPRiBFSUdIVCBGSVZFICdcbiAgICAgICAgKyAnUVVPVEUgRU1QVFkgT05FIFRSVUUgUkVUVVJOIENSIExJTkVGRUVEIFJJR0hUIEJBQ0tTTEFTSCBOVUxMIFNFVkVOIFRBQiBUSFJFRSBUV08gJ1xuICAgICAgICArICdzaXggdGVuIGZvcm1mZWVkIG5pbmUgemVybyBub25lIHNwYWNlIGZvdXIgZmFsc2UgY29sb24gY3JsZiBwaSBjb21tYSBlbmRvZmZpbGUgZW9mIGVpZ2h0IGZpdmUgJ1xuICAgICAgICArICdxdW90ZSBlbXB0eSBvbmUgdHJ1ZSByZXR1cm4gY3IgbGluZWZlZWQgcmlnaHQgYmFja3NsYXNoIG51bGwgc2V2ZW4gdGFiIHRocmVlIHR3byAnXG4gICAgICAgICsgJ1JJVkVSU0lPTiBSSVNUQVRFIEZJTEVfUkVBRF9NT0RFIEZJTEVfV1JJVEVfTU9ERSBGSUxFX1dSSVRFX01PREUgRElSX1dSSVRFX01PREUgRklMRV9SRUFEX1VNQVNLICdcbiAgICAgICAgKyAnRklMRV9XUklURV9VTUFTSyBESVJfUkVBRF9VTUFTSyBESVJfV1JJVEVfVU1BU0snLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdwdXQgYWJzIGFjb3MgYWxpYXNSZWZlcmVuY2UgYW5udWl0eSBhcnJheURlY29kZSBhcnJheUVuY29kZSBhc2luIGF0YW4gYXRhbjIgYXZlcmFnZSBhdmcgYXZnRGV2IGJhc2U2NERlY29kZSAnXG4gICAgICAgICsgJ2Jhc2U2NEVuY29kZSBiYXNlQ29udmVydCBiaW5hcnlEZWNvZGUgYmluYXJ5RW5jb2RlIGJ5dGVPZmZzZXQgYnl0ZVRvTnVtIGNhY2hlZFVSTCBjYWNoZWRVUkxzIGNoYXJUb051bSAnXG4gICAgICAgICsgJ2NpcGhlck5hbWVzIGNvZGVwb2ludE9mZnNldCBjb2RlcG9pbnRQcm9wZXJ0eSBjb2RlcG9pbnRUb051bSBjb2RldW5pdE9mZnNldCBjb21tYW5kTmFtZXMgY29tcG91bmQgY29tcHJlc3MgJ1xuICAgICAgICArICdjb25zdGFudE5hbWVzIGNvcyBkYXRlIGRhdGVGb3JtYXQgZGVjb21wcmVzcyBkaWZmZXJlbmNlIGRpcmVjdG9yaWVzICdcbiAgICAgICAgKyAnZGlza1NwYWNlIEROU1NlcnZlcnMgZXhwIGV4cDEgZXhwMiBleHAxMCBleHRlbnRzIGZpbGVzIGZsdXNoRXZlbnRzIGZvbGRlcnMgZm9ybWF0IGZ1bmN0aW9uTmFtZXMgZ2VvbWV0cmljTWVhbiBnbG9iYWwgJ1xuICAgICAgICArICdnbG9iYWxzIGhhc01lbW9yeSBoYXJtb25pY01lYW4gaG9zdEFkZHJlc3MgaG9zdEFkZHJlc3NUb05hbWUgaG9zdE5hbWUgaG9zdE5hbWVUb0FkZHJlc3MgaXNOdW1iZXIgSVNPVG9NYWMgaXRlbU9mZnNldCAnXG4gICAgICAgICsgJ2tleXMgbGVuIGxlbmd0aCBsaWJVUkxFcnJvckRhdGEgbGliVXJsRm9ybURhdGEgbGliVVJMZnRwQ29tbWFuZCBsaWJVUkxMYXN0SFRUUEhlYWRlcnMgbGliVVJMTGFzdFJISGVhZGVycyAnXG4gICAgICAgICsgJ2xpYlVybE11bHRpcGFydEZvcm1BZGRQYXJ0IGxpYlVybE11bHRpcGFydEZvcm1EYXRhIGxpYlVSTFZlcnNpb24gbGluZU9mZnNldCBsbiBsbjEgbG9jYWxOYW1lcyBsb2cgbG9nMiBsb2cxMCAnXG4gICAgICAgICsgJ2xvbmdGaWxlUGF0aCBsb3dlciBtYWNUb0lTTyBtYXRjaENodW5rIG1hdGNoVGV4dCBtYXRyaXhNdWx0aXBseSBtYXggbWQ1RGlnZXN0IG1lZGlhbiBtZXJnZSBtZXNzYWdlQXV0aGVudGljYXRpb25Db2RlIG1lc3NhZ2VEaWdlc3QgbWlsbGlzZWMgJ1xuICAgICAgICArICdtaWxsaXNlY3MgbWlsbGlzZWNvbmQgbWlsbGlzZWNvbmRzIG1pbiBtb250aE5hbWVzIG5hdGl2ZUNoYXJUb051bSBub3JtYWxpemVUZXh0IG51bSBudW1iZXIgbnVtVG9CeXRlIG51bVRvQ2hhciAnXG4gICAgICAgICsgJ251bVRvQ29kZXBvaW50IG51bVRvTmF0aXZlQ2hhciBvZmZzZXQgb3BlbiBvcGVuZmlsZXMgb3BlblByb2Nlc3NlcyBvcGVuUHJvY2Vzc0lEcyBvcGVuU29ja2V0cyAnXG4gICAgICAgICsgJ3BhcmFncmFwaE9mZnNldCBwYXJhbUNvdW50IHBhcmFtIHBhcmFtcyBwZWVyQWRkcmVzcyBwZW5kaW5nTWVzc2FnZXMgcGxhdGZvcm0gcG9wU3RkRGV2IHBvcHVsYXRpb25TdGFuZGFyZERldmlhdGlvbiAnXG4gICAgICAgICsgJ3BvcHVsYXRpb25WYXJpYW5jZSBwb3BWYXJpYW5jZSBwcm9jZXNzSUQgcmFuZG9tIHJhbmRvbUJ5dGVzIHJlcGxhY2VUZXh0IHJlc3VsdCByZXZDcmVhdGVYTUxUcmVlIHJldkNyZWF0ZVhNTFRyZWVGcm9tRmlsZSAnXG4gICAgICAgICsgJ3JldkN1cnJlbnRSZWNvcmQgcmV2Q3VycmVudFJlY29yZElzRmlyc3QgcmV2Q3VycmVudFJlY29yZElzTGFzdCByZXZEYXRhYmFzZUNvbHVtbkNvdW50IHJldkRhdGFiYXNlQ29sdW1uSXNOdWxsICdcbiAgICAgICAgKyAncmV2RGF0YWJhc2VDb2x1bW5MZW5ndGhzIHJldkRhdGFiYXNlQ29sdW1uTmFtZXMgcmV2RGF0YWJhc2VDb2x1bW5OYW1lZCByZXZEYXRhYmFzZUNvbHVtbk51bWJlcmVkICdcbiAgICAgICAgKyAncmV2RGF0YWJhc2VDb2x1bW5UeXBlcyByZXZEYXRhYmFzZUNvbm5lY3RSZXN1bHQgcmV2RGF0YWJhc2VDdXJzb3JzIHJldkRhdGFiYXNlSUQgcmV2RGF0YWJhc2VUYWJsZU5hbWVzICdcbiAgICAgICAgKyAncmV2RGF0YWJhc2VUeXBlIHJldkRhdGFGcm9tUXVlcnkgcmV2ZGJfY2xvc2VDdXJzb3IgcmV2ZGJfY29sdW1uYnludW1iZXIgcmV2ZGJfY29sdW1uY291bnQgcmV2ZGJfY29sdW1uaXNudWxsICdcbiAgICAgICAgKyAncmV2ZGJfY29sdW1ubGVuZ3RocyByZXZkYl9jb2x1bW5uYW1lcyByZXZkYl9jb2x1bW50eXBlcyByZXZkYl9jb21taXQgcmV2ZGJfY29ubmVjdCByZXZkYl9jb25uZWN0aW9ucyAnXG4gICAgICAgICsgJ3JldmRiX2Nvbm5lY3Rpb25lcnIgcmV2ZGJfY3VycmVudHJlY29yZCByZXZkYl9jdXJzb3Jjb25uZWN0aW9uIHJldmRiX2N1cnNvcmVyciByZXZkYl9jdXJzb3JzIHJldmRiX2RidHlwZSAnXG4gICAgICAgICsgJ3JldmRiX2Rpc2Nvbm5lY3QgcmV2ZGJfZXhlY3V0ZSByZXZkYl9pc2VvZiByZXZkYl9pc2JvZiByZXZkYl9tb3ZlZmlyc3QgcmV2ZGJfbW92ZWxhc3QgcmV2ZGJfbW92ZW5leHQgJ1xuICAgICAgICArICdyZXZkYl9tb3ZlcHJldiByZXZkYl9xdWVyeSByZXZkYl9xdWVyeWxpc3QgcmV2ZGJfcmVjb3JkY291bnQgcmV2ZGJfcm9sbGJhY2sgcmV2ZGJfdGFibGVuYW1lcyAnXG4gICAgICAgICsgJ3JldkdldERhdGFiYXNlRHJpdmVyUGF0aCByZXZOdW1iZXJPZlJlY29yZHMgcmV2T3BlbkRhdGFiYXNlIHJldk9wZW5EYXRhYmFzZXMgcmV2UXVlcnlEYXRhYmFzZSAnXG4gICAgICAgICsgJ3JldlF1ZXJ5RGF0YWJhc2VCbG9iIHJldlF1ZXJ5UmVzdWx0IHJldlF1ZXJ5SXNBdFN0YXJ0IHJldlF1ZXJ5SXNBdEVuZCByZXZVbml4RnJvbU1hY1BhdGggcmV2WE1MQXR0cmlidXRlICdcbiAgICAgICAgKyAncmV2WE1MQXR0cmlidXRlcyByZXZYTUxBdHRyaWJ1dGVWYWx1ZXMgcmV2WE1MQ2hpbGRDb250ZW50cyByZXZYTUxDaGlsZE5hbWVzIHJldlhNTENyZWF0ZVRyZWVGcm9tRmlsZVdpdGhOYW1lc3BhY2VzICdcbiAgICAgICAgKyAncmV2WE1MQ3JlYXRlVHJlZVdpdGhOYW1lc3BhY2VzIHJldlhNTERhdGFGcm9tWFBhdGhRdWVyeSByZXZYTUxFdmFsdWF0ZVhQYXRoIHJldlhNTEZpcnN0Q2hpbGQgcmV2WE1MTWF0Y2hpbmdOb2RlICdcbiAgICAgICAgKyAncmV2WE1MTmV4dFNpYmxpbmcgcmV2WE1MTm9kZUNvbnRlbnRzIHJldlhNTE51bWJlck9mQ2hpbGRyZW4gcmV2WE1MUGFyZW50IHJldlhNTFByZXZpb3VzU2libGluZyAnXG4gICAgICAgICsgJ3JldlhNTFJvb3ROb2RlIHJldlhNTFJQQ19DcmVhdGVSZXF1ZXN0IHJldlhNTFJQQ19Eb2N1bWVudHMgcmV2WE1MUlBDX0Vycm9yICdcbiAgICAgICAgKyAncmV2WE1MUlBDX0dldEhvc3QgcmV2WE1MUlBDX0dldE1ldGhvZCByZXZYTUxSUENfR2V0UGFyYW0gcmV2WE1MVGV4dCByZXZYTUxSUENfRXhlY3V0ZSAnXG4gICAgICAgICsgJ3JldlhNTFJQQ19HZXRQYXJhbUNvdW50IHJldlhNTFJQQ19HZXRQYXJhbU5vZGUgcmV2WE1MUlBDX0dldFBhcmFtVHlwZSByZXZYTUxSUENfR2V0UGF0aCByZXZYTUxSUENfR2V0UG9ydCAnXG4gICAgICAgICsgJ3JldlhNTFJQQ19HZXRQcm90b2NvbCByZXZYTUxSUENfR2V0UmVxdWVzdCByZXZYTUxSUENfR2V0UmVzcG9uc2UgcmV2WE1MUlBDX0dldFNvY2tldCByZXZYTUxUcmVlICdcbiAgICAgICAgKyAncmV2WE1MVHJlZXMgcmV2WE1MVmFsaWRhdGVEVEQgcmV2WmlwRGVzY3JpYmVJdGVtIHJldlppcEVudW1lcmF0ZUl0ZW1zIHJldlppcE9wZW5BcmNoaXZlcyByb3VuZCBzYW1wVmFyaWFuY2UgJ1xuICAgICAgICArICdzZWMgc2VjcyBzZWNvbmRzIHNlbnRlbmNlT2Zmc2V0IHNoYTFEaWdlc3Qgc2hlbGwgc2hvcnRGaWxlUGF0aCBzaW4gc3BlY2lhbEZvbGRlclBhdGggc3FydCBzdGFuZGFyZERldmlhdGlvbiBzdGF0Um91bmQgJ1xuICAgICAgICArICdzdGREZXYgc3VtIHN5c0Vycm9yIHN5c3RlbVZlcnNpb24gdGFuIHRlbXBOYW1lIHRleHREZWNvZGUgdGV4dEVuY29kZSB0aWNrIHRpY2tzIHRpbWUgdG8gdG9rZW5PZmZzZXQgdG9Mb3dlciB0b1VwcGVyICdcbiAgICAgICAgKyAndHJhbnNwb3NlIHRydWV3b3JkT2Zmc2V0IHRydW5jIHVuaURlY29kZSB1bmlFbmNvZGUgdXBwZXIgVVJMRGVjb2RlIFVSTEVuY29kZSBVUkxTdGF0dXMgdXVpZCB2YWx1ZSB2YXJpYWJsZU5hbWVzICdcbiAgICAgICAgKyAndmFyaWFuY2UgdmVyc2lvbiB3YWl0RGVwdGggd2Vla2RheU5hbWVzIHdvcmRPZmZzZXQgeHNsdEFwcGx5U3R5bGVzaGVldCB4c2x0QXBwbHlTdHlsZXNoZWV0RnJvbUZpbGUgeHNsdExvYWRTdHlsZXNoZWV0ICdcbiAgICAgICAgKyAneHNsdExvYWRTdHlsZXNoZWV0RnJvbUZpbGUgYWRkIGJyZWFrcG9pbnQgY2FuY2VsIGNsZWFyIGxvY2FsIHZhcmlhYmxlIGZpbGUgd29yZCBsaW5lIGZvbGRlciBkaXJlY3RvcnkgVVJMIGNsb3NlIHNvY2tldCBwcm9jZXNzICdcbiAgICAgICAgKyAnY29tYmluZSBjb25zdGFudCBjb252ZXJ0IGNyZWF0ZSBuZXcgYWxpYXMgZm9sZGVyIGRpcmVjdG9yeSBkZWNyeXB0IGRlbGV0ZSB2YXJpYWJsZSB3b3JkIGxpbmUgZm9sZGVyICdcbiAgICAgICAgKyAnZGlyZWN0b3J5IFVSTCBkaXNwYXRjaCBkaXZpZGUgZG8gZW5jcnlwdCBmaWx0ZXIgZ2V0IGluY2x1ZGUgaW50ZXJzZWN0IGtpbGwgbGliVVJMRG93bmxvYWRUb0ZpbGUgJ1xuICAgICAgICArICdsaWJVUkxGb2xsb3dIdHRwUmVkaXJlY3RzIGxpYlVSTGZ0cFVwbG9hZCBsaWJVUkxmdHBVcGxvYWRGaWxlIGxpYlVSTHJlc2V0QWxsIGxpYlVybFNldEF1dGhDYWxsYmFjayBsaWJVUkxTZXREcml2ZXIgJ1xuICAgICAgICArICdsaWJVUkxTZXRDdXN0b21IVFRQSGVhZGVycyBsaWJVcmxTZXRFeHBlY3QxMDAgbGliVVJMU2V0RlRQTGlzdENvbW1hbmQgbGliVVJMU2V0RlRQTW9kZSBsaWJVUkxTZXRGVFBTdG9wVGltZSAnXG4gICAgICAgICsgJ2xpYlVSTFNldFN0YXR1c0NhbGxiYWNrIGxvYWQgZXh0ZW5zaW9uIGxvYWRlZEV4dGVuc2lvbnMgbXVsdGlwbHkgc29ja2V0IHByZXBhcmUgcHJvY2VzcyBwb3N0IHNlZWsgcmVsIHJlbGF0aXZlIHJlYWQgZnJvbSBwcm9jZXNzIHJlbmFtZSAnXG4gICAgICAgICsgJ3JlcGxhY2UgcmVxdWlyZSByZXNldEFsbCByZXNvbHZlIHJldkFkZFhNTE5vZGUgcmV2QXBwZW5kWE1MIHJldkNsb3NlQ3Vyc29yIHJldkNsb3NlRGF0YWJhc2UgcmV2Q29tbWl0RGF0YWJhc2UgJ1xuICAgICAgICArICdyZXZDb3B5RmlsZSByZXZDb3B5Rm9sZGVyIHJldkNvcHlYTUxOb2RlIHJldkRlbGV0ZUZvbGRlciByZXZEZWxldGVYTUxOb2RlIHJldkRlbGV0ZUFsbFhNTFRyZWVzICdcbiAgICAgICAgKyAncmV2RGVsZXRlWE1MVHJlZSByZXZFeGVjdXRlU1FMIHJldkdvVVJMIHJldkluc2VydFhNTE5vZGUgcmV2TW92ZUZvbGRlciByZXZNb3ZlVG9GaXJzdFJlY29yZCByZXZNb3ZlVG9MYXN0UmVjb3JkICdcbiAgICAgICAgKyAncmV2TW92ZVRvTmV4dFJlY29yZCByZXZNb3ZlVG9QcmV2aW91c1JlY29yZCByZXZNb3ZlVG9SZWNvcmQgcmV2TW92ZVhNTE5vZGUgcmV2UHV0SW50b1hNTE5vZGUgcmV2Um9sbEJhY2tEYXRhYmFzZSAnXG4gICAgICAgICsgJ3JldlNldERhdGFiYXNlRHJpdmVyUGF0aCByZXZTZXRYTUxBdHRyaWJ1dGUgcmV2WE1MUlBDX0FkZFBhcmFtIHJldlhNTFJQQ19EZWxldGVBbGxEb2N1bWVudHMgcmV2WE1MQWRkRFREICdcbiAgICAgICAgKyAncmV2WE1MUlBDX0ZyZWUgcmV2WE1MUlBDX0ZyZWVBbGwgcmV2WE1MUlBDX0RlbGV0ZURvY3VtZW50IHJldlhNTFJQQ19EZWxldGVQYXJhbSByZXZYTUxSUENfU2V0SG9zdCAnXG4gICAgICAgICsgJ3JldlhNTFJQQ19TZXRNZXRob2QgcmV2WE1MUlBDX1NldFBvcnQgcmV2WE1MUlBDX1NldFByb3RvY29sIHJldlhNTFJQQ19TZXRTb2NrZXQgcmV2WmlwQWRkSXRlbVdpdGhEYXRhICdcbiAgICAgICAgKyAncmV2WmlwQWRkSXRlbVdpdGhGaWxlIHJldlppcEFkZFVuY29tcHJlc3NlZEl0ZW1XaXRoRGF0YSByZXZaaXBBZGRVbmNvbXByZXNzZWRJdGVtV2l0aEZpbGUgcmV2WmlwQ2FuY2VsICdcbiAgICAgICAgKyAncmV2WmlwQ2xvc2VBcmNoaXZlIHJldlppcERlbGV0ZUl0ZW0gcmV2WmlwRXh0cmFjdEl0ZW1Ub0ZpbGUgcmV2WmlwRXh0cmFjdEl0ZW1Ub1ZhcmlhYmxlIHJldlppcFNldFByb2dyZXNzQ2FsbGJhY2sgJ1xuICAgICAgICArICdyZXZaaXBSZW5hbWVJdGVtIHJldlppcFJlcGxhY2VJdGVtV2l0aERhdGEgcmV2WmlwUmVwbGFjZUl0ZW1XaXRoRmlsZSByZXZaaXBPcGVuQXJjaGl2ZSBzZW5kIHNldCBzb3J0IHNwbGl0IHN0YXJ0IHN0b3AgJ1xuICAgICAgICArICdzdWJ0cmFjdCBzeW1tZXRyaWMgdW5pb24gdW5sb2FkIHZlY3RvckRvdFByb2R1Y3Qgd2FpdCB3cml0ZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJlbmRcXFxcc2lmXFxcXGInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIFRJVExFMixcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgVElUTEUxXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYmVuZFxcXFxzKycsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ2VuZCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEUyLFxuICAgICAgICAgIFRJVExFMVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjb21tYW5kIG9uJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgVElUTEUyLFxuICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBUSVRMRTFcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICc8XFxcXD8ocmV2fGxjfGxpdmVjb2RlKScsXG4gICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnPFxcXFw/JyB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcPz4nIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIFRJVExFMVxuICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpLFxuICAgIGlsbGVnYWw6ICc7JHxeXFxcXFt8Xj18JnxcXFxceydcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXZlY29kZXNlcnZlcjtcbiIsICJjb25zdCBLRVlXT1JEUyA9IFtcbiAgXCJhc1wiLCAvLyBmb3IgZXhwb3J0c1xuICBcImluXCIsXG4gIFwib2ZcIixcbiAgXCJpZlwiLFxuICBcImZvclwiLFxuICBcIndoaWxlXCIsXG4gIFwiZmluYWxseVwiLFxuICBcInZhclwiLFxuICBcIm5ld1wiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwiZG9cIixcbiAgXCJyZXR1cm5cIixcbiAgXCJ2b2lkXCIsXG4gIFwiZWxzZVwiLFxuICBcImJyZWFrXCIsXG4gIFwiY2F0Y2hcIixcbiAgXCJpbnN0YW5jZW9mXCIsXG4gIFwid2l0aFwiLFxuICBcInRocm93XCIsXG4gIFwiY2FzZVwiLFxuICBcImRlZmF1bHRcIixcbiAgXCJ0cnlcIixcbiAgXCJzd2l0Y2hcIixcbiAgXCJjb250aW51ZVwiLFxuICBcInR5cGVvZlwiLFxuICBcImRlbGV0ZVwiLFxuICBcImxldFwiLFxuICBcInlpZWxkXCIsXG4gIFwiY29uc3RcIixcbiAgXCJjbGFzc1wiLFxuICAvLyBKUyBoYW5kbGVzIHRoZXNlIHdpdGggYSBzcGVjaWFsIHJ1bGVcbiAgLy8gXCJnZXRcIixcbiAgLy8gXCJzZXRcIixcbiAgXCJkZWJ1Z2dlclwiLFxuICBcImFzeW5jXCIsXG4gIFwiYXdhaXRcIixcbiAgXCJzdGF0aWNcIixcbiAgXCJpbXBvcnRcIixcbiAgXCJmcm9tXCIsXG4gIFwiZXhwb3J0XCIsXG4gIFwiZXh0ZW5kc1wiXG5dO1xuY29uc3QgTElURVJBTFMgPSBbXG4gIFwidHJ1ZVwiLFxuICBcImZhbHNlXCIsXG4gIFwibnVsbFwiLFxuICBcInVuZGVmaW5lZFwiLFxuICBcIk5hTlwiLFxuICBcIkluZmluaXR5XCJcbl07XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzXG5jb25zdCBUWVBFUyA9IFtcbiAgLy8gRnVuZGFtZW50YWwgb2JqZWN0c1xuICBcIk9iamVjdFwiLFxuICBcIkZ1bmN0aW9uXCIsXG4gIFwiQm9vbGVhblwiLFxuICBcIlN5bWJvbFwiLFxuICAvLyBudW1iZXJzIGFuZCBkYXRlc1xuICBcIk1hdGhcIixcbiAgXCJEYXRlXCIsXG4gIFwiTnVtYmVyXCIsXG4gIFwiQmlnSW50XCIsXG4gIC8vIHRleHRcbiAgXCJTdHJpbmdcIixcbiAgXCJSZWdFeHBcIixcbiAgLy8gSW5kZXhlZCBjb2xsZWN0aW9uc1xuICBcIkFycmF5XCIsXG4gIFwiRmxvYXQzMkFycmF5XCIsXG4gIFwiRmxvYXQ2NEFycmF5XCIsXG4gIFwiSW50OEFycmF5XCIsXG4gIFwiVWludDhBcnJheVwiLFxuICBcIlVpbnQ4Q2xhbXBlZEFycmF5XCIsXG4gIFwiSW50MTZBcnJheVwiLFxuICBcIkludDMyQXJyYXlcIixcbiAgXCJVaW50MTZBcnJheVwiLFxuICBcIlVpbnQzMkFycmF5XCIsXG4gIFwiQmlnSW50NjRBcnJheVwiLFxuICBcIkJpZ1VpbnQ2NEFycmF5XCIsXG4gIC8vIEtleWVkIGNvbGxlY3Rpb25zXG4gIFwiU2V0XCIsXG4gIFwiTWFwXCIsXG4gIFwiV2Vha1NldFwiLFxuICBcIldlYWtNYXBcIixcbiAgLy8gU3RydWN0dXJlZCBkYXRhXG4gIFwiQXJyYXlCdWZmZXJcIixcbiAgXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFxuICBcIkF0b21pY3NcIixcbiAgXCJEYXRhVmlld1wiLFxuICBcIkpTT05cIixcbiAgLy8gQ29udHJvbCBhYnN0cmFjdGlvbiBvYmplY3RzXG4gIFwiUHJvbWlzZVwiLFxuICBcIkdlbmVyYXRvclwiLFxuICBcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXG4gIFwiQXN5bmNGdW5jdGlvblwiLFxuICAvLyBSZWZsZWN0aW9uXG4gIFwiUmVmbGVjdFwiLFxuICBcIlByb3h5XCIsXG4gIC8vIEludGVybmF0aW9uYWxpemF0aW9uXG4gIFwiSW50bFwiLFxuICAvLyBXZWJBc3NlbWJseVxuICBcIldlYkFzc2VtYmx5XCJcbl07XG5cbmNvbnN0IEVSUk9SX1RZUEVTID0gW1xuICBcIkVycm9yXCIsXG4gIFwiRXZhbEVycm9yXCIsXG4gIFwiSW50ZXJuYWxFcnJvclwiLFxuICBcIlJhbmdlRXJyb3JcIixcbiAgXCJSZWZlcmVuY2VFcnJvclwiLFxuICBcIlN5bnRheEVycm9yXCIsXG4gIFwiVHlwZUVycm9yXCIsXG4gIFwiVVJJRXJyb3JcIlxuXTtcblxuY29uc3QgQlVJTFRfSU5fR0xPQkFMUyA9IFtcbiAgXCJzZXRJbnRlcnZhbFwiLFxuICBcInNldFRpbWVvdXRcIixcbiAgXCJjbGVhckludGVydmFsXCIsXG4gIFwiY2xlYXJUaW1lb3V0XCIsXG5cbiAgXCJyZXF1aXJlXCIsXG4gIFwiZXhwb3J0c1wiLFxuXG4gIFwiZXZhbFwiLFxuICBcImlzRmluaXRlXCIsXG4gIFwiaXNOYU5cIixcbiAgXCJwYXJzZUZsb2F0XCIsXG4gIFwicGFyc2VJbnRcIixcbiAgXCJkZWNvZGVVUklcIixcbiAgXCJkZWNvZGVVUklDb21wb25lbnRcIixcbiAgXCJlbmNvZGVVUklcIixcbiAgXCJlbmNvZGVVUklDb21wb25lbnRcIixcbiAgXCJlc2NhcGVcIixcbiAgXCJ1bmVzY2FwZVwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTlMgPSBbXS5jb25jYXQoXG4gIEJVSUxUX0lOX0dMT0JBTFMsXG4gIFRZUEVTLFxuICBFUlJPUl9UWVBFU1xuKTtcblxuLypcbkxhbmd1YWdlOiBMaXZlU2NyaXB0XG5BdXRob3I6IFRhbmVsaSBWYXRhbmVuIDx0YW5lbGkudmF0YW5lbkBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEplbiBFdmVycy1Db3J2aW5hIDxqZW5Ac2V2dmllLm5ldD5cbk9yaWdpbjogY29mZmVlc2NyaXB0LmpzXG5EZXNjcmlwdGlvbjogTGl2ZVNjcmlwdCBpcyBhIHByb2dyYW1taW5nIGxhbmd1YWdlIHRoYXQgdHJhbnNjb21waWxlcyB0byBKYXZhU2NyaXB0LiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZSBzZWUgaHR0cDovL2xpdmVzY3JpcHQubmV0L1xuV2Vic2l0ZTogaHR0cHM6Ly9saXZlc2NyaXB0Lm5ldFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuXG5mdW5jdGlvbiBsaXZlc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgTElWRVNDUklQVF9CVUlMVF9JTlMgPSBbXG4gICAgJ25wbScsXG4gICAgJ3ByaW50J1xuICBdO1xuICBjb25zdCBMSVZFU0NSSVBUX0xJVEVSQUxTID0gW1xuICAgICd5ZXMnLFxuICAgICdubycsXG4gICAgJ29uJyxcbiAgICAnb2ZmJyxcbiAgICAnaXQnLFxuICAgICd0aGF0JyxcbiAgICAndm9pZCdcbiAgXTtcbiAgY29uc3QgTElWRVNDUklQVF9LRVlXT1JEUyA9IFtcbiAgICAndGhlbicsXG4gICAgJ3VubGVzcycsXG4gICAgJ3VudGlsJyxcbiAgICAnbG9vcCcsXG4gICAgJ29mJyxcbiAgICAnYnknLFxuICAgICd3aGVuJyxcbiAgICAnYW5kJyxcbiAgICAnb3InLFxuICAgICdpcycsXG4gICAgJ2lzbnQnLFxuICAgICdub3QnLFxuICAgICdpdCcsXG4gICAgJ3RoYXQnLFxuICAgICdvdGhlcndpc2UnLFxuICAgICdmcm9tJyxcbiAgICAndG8nLFxuICAgICd0aWwnLFxuICAgICdmYWxsdGhyb3VnaCcsXG4gICAgJ2Nhc2UnLFxuICAgICdlbnVtJyxcbiAgICAnbmF0aXZlJyxcbiAgICAnbGlzdCcsXG4gICAgJ21hcCcsXG4gICAgJ19faGFzUHJvcCcsXG4gICAgJ19fZXh0ZW5kcycsXG4gICAgJ19fc2xpY2UnLFxuICAgICdfX2JpbmQnLFxuICAgICdfX2luZGV4T2YnXG4gIF07XG4gIGNvbnN0IEtFWVdPUkRTJDEgPSB7XG4gICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KExJVkVTQ1JJUFRfS0VZV09SRFMpLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLmNvbmNhdChMSVZFU0NSSVBUX0xJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLmNvbmNhdChMSVZFU0NSSVBUX0JVSUxUX0lOUylcbiAgfTtcbiAgY29uc3QgSlNfSURFTlRfUkUgPSAnW0EtWmEteiRfXSg/Oi1bMC05QS1aYS16JF9dfFswLTlBLVphLXokX10pKic7XG4gIGNvbnN0IFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogSlNfSURFTlRfUkUgfSk7XG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDFcbiAgfTtcbiAgY29uc3QgU1VCU1RfU0lNUExFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNbQS1aYS16JF9dLyxcbiAgICBlbmQ6IC8oPzotWzAtOUEtWmEteiRfXXxbMC05QS1aYS16JF9dKSovLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxXG4gIH07XG4gIGNvbnN0IEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyhcXFxcYjBbeFhdW2EtZkEtRjAtOV9dKyl8KFxcXFxiXFxcXGQoXFxcXGR8X1xcXFxkKSooXFxcXC4oXFxcXGQoXFxcXGR8X1xcXFxkKSopPyk/KF8qW2VFXShbLStdXFxcXGQoX1xcXFxkfFxcXFxkKSopPyk/W19hLXpdKiknLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyhcXFxccyovKT8nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0gLy8gYSBudW1iZXIgdHJpZXMgdG8gZWF0IHRoZSBmb2xsb3dpbmcgc2xhc2ggdG8gcHJldmVudCB0cmVhdGluZyBpdCBhcyBhIHJlZ2V4cFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLycnJy8sXG4gICAgICAgICAgZW5kOiAvJycnLyxcbiAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICAgIGVuZDogL1wiXCJcIi8sXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNULFxuICAgICAgICAgICAgU1VCU1RfU0lNUExFXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICAgIFNVQlNUX1NJTVBMRVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXFxcXC8sXG4gICAgICAgICAgZW5kOiAvKFxcc3wkKS8sXG4gICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLy8nLFxuICAgICAgICAgIGVuZDogJy8vW2dpbV0qJyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgU1VCU1QsXG4gICAgICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLy8gcmVnZXggY2FuJ3Qgc3RhcnQgd2l0aCBzcGFjZSB0byBwYXJzZSB4IC8gMiAvIDMgYXMgdHdvIGRpdmlzaW9uc1xuICAgICAgICAgIC8vIHJlZ2V4IGNhbid0IHN0YXJ0IHdpdGggKiwgYW5kIGl0IHN1cHBvcnRzIGFuIFwiaWxsZWdhbFwiIGluIHRoZSBtYWluIG1vZGVcbiAgICAgICAgICBiZWdpbjogL1xcLyg/IVsgKl0pKFxcXFwufFteXFxcXFxcbl0pKj9cXC9bZ2ltXSooPz1cXFcpLyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7IGJlZ2luOiAnQCcgKyBKU19JREVOVF9SRSB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAnYGAnLFxuICAgICAgZW5kOiAnYGAnLFxuICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAnamF2YXNjcmlwdCdcbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gRVhQUkVTU0lPTlM7XG5cbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgLyogV2UgbmVlZCBhbm90aGVyIGNvbnRhaW5lZCBuYW1lbGVzcyBtb2RlIHRvIG5vdCBoYXZlIGV2ZXJ5IG5lc3RlZFxuICAgIHBhaXIgb2YgcGFyZW5zIHRvIGJlIGNhbGxlZCBcInBhcmFtc1wiICovXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBTWU1CT0xTID0geyBiZWdpbjogJygjPT58PT58XFxcXHw+PnwtPy0+fCEtPiknIH07XG5cbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSlNfSURFTlRfUkUsXG4gICAgICAgIC9cXHMrZXh0ZW5kc1xccysvLFxuICAgICAgICBKU19JREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSlNfSURFTlRfUkVcbiAgICAgIF0gfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGl2ZVNjcmlwdCcsXG4gICAgYWxpYXNlczogWyAnbHMnIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05TLmNvbmNhdChbXG4gICAgICBobGpzLkNPTU1FTlQoJ1xcXFwvXFxcXConLCAnXFxcXCpcXFxcLycpLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNZTUJPTFMsIC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBUSVRMRSxcbiAgICAgICAgICBQQVJBTVNcbiAgICAgICAgXSxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8oXFxcXCguKlxcXFwpXFxcXHMqKT9cXFxcQi0+XFxcXCo/JyxcbiAgICAgICAgICAgIGVuZDogJy0+XFxcXCo/J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8hPyhcXFxcKC4qXFxcXClcXFxccyopP1xcXFxCWy1+XXsxLDJ9PlxcXFwqPycsXG4gICAgICAgICAgICBlbmQ6ICdbLX5dezEsMn0+XFxcXCo/J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8oXFxcXCguKlxcXFwpXFxcXHMqKT9cXFxcQiE/Wy1+XXsxLDJ9PlxcXFwqPycsXG4gICAgICAgICAgICBlbmQ6ICchP1stfl17MSwyfT5cXFxcKj8nXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgQ0xBU1NfREVGSU5JVElPTixcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEpTX0lERU5UX1JFICsgJzonLFxuICAgICAgICBlbmQ6ICc6JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXZlc2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogTExWTSBJUlxuQXV0aG9yOiBNaWNoYWVsIFJvZGxlciA8Y29udGFjdEBmMHJraS5hdD5cbkRlc2NyaXB0aW9uOiBsYW5ndWFnZSB1c2VkIGFzIGludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbiBpbiB0aGUgTExWTSBjb21waWxlciBmcmFtZXdvcmtcbldlYnNpdGU6IGh0dHBzOi8vbGx2bS5vcmcvZG9jcy9MYW5nUmVmLmh0bWxcbkNhdGVnb3J5OiBhc3NlbWJsZXJcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbGx2bShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSURFTlRfUkUgPSAvKFstYS16QS1aJC5fXVtcXHckLi1dKikvO1xuICBjb25zdCBUWVBFID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIGJlZ2luOiAvXFxiaVxcZCsoPz1cXHN8XFxiKS9cbiAgfTtcbiAgY29uc3QgT1BFUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3BlcmF0b3InLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogLz0vXG4gIH07XG4gIGNvbnN0IFBVTkNUVUFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3B1bmN0dWF0aW9uJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IC8sL1xuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1tzdV0/MFt4WF1bS01MSFJdP1thLWZBLUYwLTldKy8gfSxcbiAgICAgIHsgYmVnaW46IC9bLStdP1xcZCsoPzpbLl1cXGQrKT8oPzpbZUVdWy0rXT9cXGQrKD86Wy5dXFxkKyk/KT8vIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIHZhcmlhbnRzOiBbIHsgYmVnaW46IC9eXFxzKlthLXpdKzovIH0sIC8vIGxhYmVsc1xuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KC8lLywgSURFTlRfUkUpIH0sXG4gICAgICB7IGJlZ2luOiAvJVxcZCsvIH0sXG4gICAgICB7IGJlZ2luOiAvI1xcZCsvIH0sXG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvQC8sIElERU5UX1JFKSB9LFxuICAgICAgeyBiZWdpbjogL0BcXGQrLyB9LFxuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KC8hLywgSURFTlRfUkUpIH0sXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoLyFcXGQrLywgSURFTlRfUkUpIH0sXG4gICAgICAvLyBodHRwczovL2xsdm0ub3JnL2RvY3MvTGFuZ1JlZi5odG1sI25hbWVkbWV0YWRhdGFzdHJ1Y3R1cmVcbiAgICAgIC8vIG9idmlvdXNseSBhIHNpbmdsZSBkaWdpdCBjYW4gYWxzbyBiZSB1c2VkIGluIHRoaXMgZmFzaGlvblxuICAgICAgeyBiZWdpbjogLyFcXGQrLyB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xMVk0gSVInLFxuICAgIC8vIFRPRE86IHNwbGl0IGludG8gZGlmZmVyZW50IGNhdGVnb3JpZXMgb2Yga2V5d29yZHNcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ2JlZ2luIGVuZCB0cnVlIGZhbHNlIGRlY2xhcmUgZGVmaW5lIGdsb2JhbCAnXG4gICAgICAgICsgJ2NvbnN0YW50IHByaXZhdGUgbGlua2VyX3ByaXZhdGUgaW50ZXJuYWwgJ1xuICAgICAgICArICdhdmFpbGFibGVfZXh0ZXJuYWxseSBsaW5rb25jZSBsaW5rb25jZV9vZHIgd2VhayAnXG4gICAgICAgICsgJ3dlYWtfb2RyIGFwcGVuZGluZyBkbGxpbXBvcnQgZGxsZXhwb3J0IGNvbW1vbiAnXG4gICAgICAgICsgJ2RlZmF1bHQgaGlkZGVuIHByb3RlY3RlZCBleHRlcm5fd2VhayBleHRlcm5hbCAnXG4gICAgICAgICsgJ3RocmVhZF9sb2NhbCB6ZXJvaW5pdGlhbGl6ZXIgdW5kZWYgbnVsbCB0byB0YWlsICdcbiAgICAgICAgKyAndGFyZ2V0IHRyaXBsZSBkYXRhbGF5b3V0IHZvbGF0aWxlIG51dyBuc3cgbm5hbiAnXG4gICAgICAgICsgJ25pbmYgbnN6IGFyY3AgZmFzdCBleGFjdCBpbmJvdW5kcyBhbGlnbiAnXG4gICAgICAgICsgJ2FkZHJzcGFjZSBzZWN0aW9uIGFsaWFzIG1vZHVsZSBhc20gc2lkZWVmZmVjdCAnXG4gICAgICAgICsgJ2djIGRiZyBsaW5rZXJfcHJpdmF0ZV93ZWFrIGF0dHJpYnV0ZXMgYmxvY2thZGRyZXNzICdcbiAgICAgICAgKyAnaW5pdGlhbGV4ZWMgbG9jYWxkeW5hbWljIGxvY2FsZXhlYyBwcmVmaXggdW5uYW1lZF9hZGRyICdcbiAgICAgICAgKyAnY2NjIGZhc3RjYyBjb2xkY2MgeDg2X3N0ZGNhbGxjYyB4ODZfZmFzdGNhbGxjYyAnXG4gICAgICAgICsgJ2FybV9hcGNzY2MgYXJtX2FhcGNzY2MgYXJtX2FhcGNzX3ZmcGNjIHB0eF9kZXZpY2UgJ1xuICAgICAgICArICdwdHhfa2VybmVsIGludGVsX29jbF9iaWNjIG1zcDQzMF9pbnRyY2Mgc3Bpcl9mdW5jICdcbiAgICAgICAgKyAnc3Bpcl9rZXJuZWwgeDg2XzY0X3N5c3ZjYyB4ODZfNjRfd2luNjRjYyB4ODZfdGhpc2NhbGxjYyAnXG4gICAgICAgICsgJ2NjIGMgc2lnbmV4dCB6ZXJvZXh0IGlucmVnIHNyZXQgbm91bndpbmQgJ1xuICAgICAgICArICdub3JldHVybiBub2FsaWFzIG5vY2FwdHVyZSBieXZhbCBuZXN0IHJlYWRub25lICdcbiAgICAgICAgKyAncmVhZG9ubHkgaW5saW5laGludCBub2lubGluZSBhbHdheXNpbmxpbmUgb3B0c2l6ZSBzc3AgJ1xuICAgICAgICArICdzc3ByZXEgbm9yZWR6b25lIG5vaW1wbGljaXRmbG9hdCBuYWtlZCBidWlsdGluIGNvbGQgJ1xuICAgICAgICArICdub2J1aWx0aW4gbm9kdXBsaWNhdGUgbm9ubGF6eWJpbmQgb3B0bm9uZSByZXR1cm5zX3R3aWNlICdcbiAgICAgICAgKyAnc2FuaXRpemVfYWRkcmVzcyBzYW5pdGl6ZV9tZW1vcnkgc2FuaXRpemVfdGhyZWFkIHNzcHN0cm9uZyAnXG4gICAgICAgICsgJ3V3dGFibGUgcmV0dXJuZWQgdHlwZSBvcGFxdWUgZXEgbmUgc2x0IHNndCAnXG4gICAgICAgICsgJ3NsZSBzZ2UgdWx0IHVndCB1bGUgdWdlIG9lcSBvbmUgb2x0IG9ndCAnXG4gICAgICAgICsgJ29sZSBvZ2Ugb3JkIHVubyB1ZXEgdW5lIHggYWNxX3JlbCBhY3F1aXJlICdcbiAgICAgICAgKyAnYWxpZ25zdGFjayBhdG9taWMgY2F0Y2ggY2xlYW51cCBmaWx0ZXIgaW50ZWxkaWFsZWN0ICdcbiAgICAgICAgKyAnbWF4IG1pbiBtb25vdG9uaWMgbmFuZCBwZXJzb25hbGl0eSByZWxlYXNlIHNlcV9jc3QgJ1xuICAgICAgICArICdzaW5nbGV0aHJlYWQgdW1heCB1bWluIHVub3JkZXJlZCB4Y2hnIGFkZCBmYWRkICdcbiAgICAgICAgKyAnc3ViIGZzdWIgbXVsIGZtdWwgdWRpdiBzZGl2IGZkaXYgdXJlbSBzcmVtICdcbiAgICAgICAgKyAnZnJlbSBzaGwgbHNociBhc2hyIGFuZCBvciB4b3IgaWNtcCBmY21wICdcbiAgICAgICAgKyAncGhpIGNhbGwgdHJ1bmMgemV4dCBzZXh0IGZwdHJ1bmMgZnBleHQgdWl0b2ZwICdcbiAgICAgICAgKyAnc2l0b2ZwIGZwdG91aSBmcHRvc2kgaW50dG9wdHIgcHRydG9pbnQgYml0Y2FzdCAnXG4gICAgICAgICsgJ2FkZHJzcGFjZWNhc3Qgc2VsZWN0IHZhX2FyZyByZXQgYnIgc3dpdGNoIGludm9rZSAnXG4gICAgICAgICsgJ3Vud2luZCB1bnJlYWNoYWJsZSBpbmRpcmVjdGJyIGxhbmRpbmdwYWQgcmVzdW1lICdcbiAgICAgICAgKyAnbWFsbG9jIGFsbG9jYSBmcmVlIGxvYWQgc3RvcmUgZ2V0ZWxlbWVudHB0ciAnXG4gICAgICAgICsgJ2V4dHJhY3RlbGVtZW50IGluc2VydGVsZW1lbnQgc2h1ZmZsZXZlY3RvciBnZXRyZXN1bHQgJ1xuICAgICAgICArICdleHRyYWN0dmFsdWUgaW5zZXJ0dmFsdWUgYXRvbWljcm13IGNtcHhjaGcgZmVuY2UgJ1xuICAgICAgICArICdhcmdtZW1vbmx5JyxcbiAgICAgIHR5cGU6ICd2b2lkIGhhbGYgYmZsb2F0IGZsb2F0IGRvdWJsZSBmcDEyOCB4ODZfZnA4MCBwcGNfZnAxMjggJ1xuICAgICAgICArICd4ODZfYW14IHg4Nl9tbXggcHRyIGxhYmVsIHRva2VuIG1ldGFkYXRhIG9wYXF1ZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUWVBFLFxuICAgICAgLy8gdGhpcyBtYXRjaGVzIFwiZW1wdHkgY29tbWVudHNcIi4uLlxuICAgICAgLy8gLi4uYmVjYXVzZSBpdCdzIGZhciBtb3JlIGxpa2VseSB0aGlzIGlzIGEgc3RhdGVtZW50IHRlcm1pbmF0b3IgaW5cbiAgICAgIC8vIGFub3RoZXIgbGFuZ3VhZ2UgdGhhbiBhbiBhY3R1YWwgY29tbWVudFxuICAgICAgaGxqcy5DT01NRU5UKC87XFxzKiQvLCBudWxsLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAgIGhsanMuQ09NTUVOVCgvOy8sIC8kLyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2hhci5lc2NhcGUnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcXFxkXFxkL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgUFVOQ1RVQVRJT04sXG4gICAgICBPUEVSQVRPUixcbiAgICAgIFZBUklBQkxFLFxuICAgICAgTEFCRUwsXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGx2bTtcbiIsICIvKlxuTGFuZ3VhZ2U6IExTTCAoTGluZGVuIFNjcmlwdGluZyBMYW5ndWFnZSlcbkRlc2NyaXB0aW9uOiBUaGUgTGluZGVuIFNjcmlwdGluZyBMYW5ndWFnZSBpcyB1c2VkIGluIFNlY29uZCBMaWZlIGJ5IExpbmRlbiBMYWJzLlxuQXV0aG9yOiBCdWlsZGVyJ3MgQnJld2VyeSA8YnVpbGRlcnNicmV3ZXJ5QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHA6Ly93aWtpLnNlY29uZGxpZmUuY29tL3dpa2kvTFNMX1BvcnRhbFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gbHNsKGhsanMpIHtcbiAgY29uc3QgTFNMX1NUUklOR19FU0NBUEVfQ0hBUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvXFxcXFt0blwiXFxcXF0vXG4gIH07XG5cbiAgY29uc3QgTFNMX1NUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1wiJyxcbiAgICBlbmQ6ICdcIicsXG4gICAgY29udGFpbnM6IFsgTFNMX1NUUklOR19FU0NBUEVfQ0hBUlMgXVxuICB9O1xuXG4gIGNvbnN0IExTTF9OVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFXG4gIH07XG5cbiAgY29uc3QgTFNMX0NPTlNUQU5UUyA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogJ1xcXFxiKFBJfFRXT19QSXxQSV9CWV9UV098REVHX1RPX1JBRHxSQURfVE9fREVHfFNRUlQyKVxcXFxiJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxiKFhQX0VSUk9SXyhFWFBFUklFTkNFU19ESVNBQkxFRHxFWFBFUklFTkNFXyhESVNBQkxFRHxTVVNQRU5ERUQpfElOVkFMSURfKEVYUEVSSUVOQ0V8UEFSQU1FVEVSUyl8S0VZX05PVF9GT1VORHxNQVRVUklUWV9FWENFRURFRHxOT05FfE5PVF8oRk9VTkR8UEVSTUlUVEVEKF9MQU5EKT8pfE5PX0VYUEVSSUVOQ0V8UVVPVEFfRVhDRUVERUR8UkVUUllfVVBEQVRFfFNUT1JBR0VfRVhDRVBUSU9OfFNUT1JFX0RJU0FCTEVEfFRIUk9UVExFRHxVTktOT1dOX0VSUk9SKXxKU09OX0FQUEVORHxTVEFUVVNfKFBIWVNJQ1N8Uk9UQVRFX1tYWVpdfFBIQU5UT018U0FOREJPWHxCTE9DS19HUkFCKF9PQkpFQ1QpP3woRElFfFJFVFVSTilfQVRfRURHRXxDQVNUX1NIQURPV1N8T0t8TUFMRk9STUVEX1BBUkFNU3xUWVBFX01JU01BVENIfEJPVU5EU19FUlJPUnxOT1RfKEZPVU5EfFNVUFBPUlRFRCl8SU5URVJOQUxfRVJST1J8V0hJVEVMSVNUX0ZBSUxFRCl8QUdFTlQoXyhCWV8oTEVHQUNZX3xVU0VSKU5BTUV8RkxZSU5HfEFUVEFDSE1FTlRTfFNDUklQVEVEfE1PVVNFTE9PS3xTSVRUSU5HfE9OX09CSkVDVHxBV0FZfFdBTEtJTkd8SU5fQUlSfFRZUElOR3xDUk9VQ0hJTkd8QlVTWXxBTFdBWVNfUlVOfEFVVE9QSUxPVHxMSVNUXyhQQVJDRUwoX09XTkVSKT98UkVHSU9OKSkpP3xDQU1FUkFfKFBJVENIfERJU1RBTkNFfEJFSElORE5FU1NfKEFOR0xFfExBRyl8KEZPQ1VTfFBPU0lUSU9OKShfKFRIUkVTSE9MRHxMT0NLRUR8TEFHKSk/fEZPQ1VTX09GRlNFVHxBQ1RJVkUpfEFOSU1fT058TE9PUHxSRVZFUlNFfFBJTkdfUE9OR3xTTU9PVEh8Uk9UQVRFfFNDQUxFfEFMTF9TSURFU3xMSU5LXyhST09UfFNFVHxBTExfKE9USEVSU3xDSElMRFJFTil8VEhJUyl8QUNUSVZFfFBBU1MoSVZFfF8oQUxXQVlTfElGX05PVF9IQU5ETEVEfE5FVkVSKSl8U0NSSVBURUR8Q09OVFJPTF8oRldEfEJBQ0t8KFJPVF8pPyhMRUZUfFJJR0hUKXxVUHxET1dOfChNTF8pP0xCVVRUT04pfFBFUk1JU1NJT05fKFJFVFVSTl9PQkpFQ1RTfERFQklUfE9WRVJSSURFX0FOSU1BVElPTlN8U0lMRU5UX0VTVEFURV9NQU5BR0VNRU5UfFRBS0VfQ09OVFJPTFN8VFJJR0dFUl9BTklNQVRJT058QVRUQUNIfENIQU5HRV9MSU5LU3woQ09OVFJPTHxUUkFDSylfQ0FNRVJBfFRFTEVQT1JUKXxJTlZFTlRPUllfKFRFWFRVUkV8U09VTkR8T0JKRUNUfFNDUklQVHxMQU5ETUFSS3xDTE9USElOR3xOT1RFQ0FSRHxCT0RZUEFSVHxBTklNQVRJT058R0VTVFVSRXxBTEx8Tk9ORSl8Q0hBTkdFRF8oSU5WRU5UT1JZfENPTE9SfFNIQVBFfFNDQUxFfFRFWFRVUkV8TElOS3xBTExPV0VEX0RST1B8T1dORVJ8UkVHSU9OKF9TVEFSVCk/fFRFTEVQT1JUfE1FRElBKXxPQkpFQ1RfKENMSUNLX0FDVElPTnxIT1ZFUl9IRUlHSFR8TEFTVF9PV05FUl9JRHwoUEhZU0lDU3xTRVJWRVJ8U1RSRUFNSU5HKV9DT1NUfFVOS05PV05fREVUQUlMfENIQVJBQ1RFUl9USU1FfFBIQU5UT018UEhZU0lDU3xURU1QXyhBVFRBQ0hFRHxPTl9SRVopfE5BTUV8REVTQ3xQT1N8UFJJTV8oQ09VTlR8RVFVSVZBTEVOQ0UpfFJFVFVSTl8oUEFSQ0VMKF9PV05FUik/fFJFR0lPTil8UkVaWkVSX0tFWXxST08/VHxWRUxPQ0lUWXxPTUVHQXxPV05FUnxHUk9VUChfVEFHKT98Q1JFQVRPUnxBVFRBQ0hFRF8oUE9JTlR8U0xPVFNfQVZBSUxBQkxFKXxSRU5ERVJfV0VJR0hUfChCT0RZX1NIQVBFfFBBVEhGSU5ESU5HKV9UWVBFfChSVU5OSU5HfFRPVEFMKV9TQ1JJUFRfQ09VTlR8VE9UQUxfSU5WRU5UT1JZX0NPVU5UfFNDUklQVF8oTUVNT1JZfFRJTUUpKXxUWVBFXyhJTlRFR0VSfEZMT0FUfFNUUklOR3xLRVl8VkVDVE9SfFJPVEFUSU9OfElOVkFMSUQpfChERUJVR3xQVUJMSUMpX0NIQU5ORUx8QVRUQUNIXyhBVkFUQVJfQ0VOVEVSfENIRVNUfEhFQUR8QkFDS3xQRUxWSVN8TU9VVEh8Q0hJTnxORUNLfE5PU0V8QkVMTFl8W0xSXShTSE9VTERFUnxIQU5EfEZPT1R8RUFSfEVZRXxbVUxdKEFSTXxMRUcpfEhJUCl8KExFRlR8UklHSFQpX1BFQ3xIVURfKENFTlRFUl9bMTJdfFRPUF8oUklHSFR8Q0VOVEVSfExFRlQpfEJPVFRPTShfKFJJR0hUfExFRlQpKT8pfFtMUl1IQU5EX1JJTkcxfFRBSUxfKEJBU0V8VElQKXxbTFJdV0lOR3xGQUNFXyhKQVd8W0xSXUVBUnxbTFJdRVlFfFRPVU5HRSl8R1JPSU58SElORF9bTFJdRk9PVCl8TEFORF8oTEVWRUx8UkFJU0V8TE9XRVJ8U01PT1RIfE5PSVNFfFJFVkVSVCl8REFUQV8oT05MSU5FfE5BTUV8Qk9STnxTSU1fKFBPU3xTVEFUVVN8UkFUSU5HKXxQQVlJTkZPKXxQQVlNRU5UX0lORk9fKE9OX0ZJTEV8VVNFRCl8UkVNT1RFX0RBVEFfKENIQU5ORUx8UkVRVUVTVHxSRVBMWSl8UFNZU18oUEFSVF8oQkZfKFpFUk98T05FKF9NSU5VU18oREVTVF9DT0xPUnxTT1VSQ0VfKEFMUEhBfENPTE9SKSkpP3xERVNUX0NPTE9SfFNPVVJDRV8oQUxQSEF8Q09MT1IpKXxCTEVORF9GVU5DXyhERVNUfFNPVVJDRSl8RkxBR1N8KFNUQVJUfEVORClfKENPTE9SfEFMUEhBfFNDQUxFfEdMT1cpfE1BWF9BR0V8KFJJQkJPTnxXSU5EfElOVEVSUF8oQ09MT1J8U0NBTEUpfEJPVU5DRXxGT0xMT1dfKFNSQ3xWRUxPQ0lUWSl8VEFSR0VUXyhQT1N8TElORUFSKXxFTUlTU0lWRSlfTUFTSyl8U1JDXyhNQVhfQUdFfFBBVFRFUk58QU5HTEVfKEJFR0lOfEVORCl8QlVSU1RfKFJBVEV8UEFSVF9DT1VOVHxSQURJVVN8U1BFRURfKE1JTnxNQVgpKXxBQ0NFTHxURVhUVVJFfFRBUkdFVF9LRVl8T01FR0F8UEFUVEVSTl8oRFJPUHxFWFBMT0RFfEFOR0xFKF9DT05FKF9FTVBUWSk/KT8pKSl8VkVISUNMRV8oUkVGRVJFTkNFX0ZSQU1FfFRZUEVfKE5PTkV8U0xFRHxDQVJ8Qk9BVHxBSVJQTEFORXxCQUxMT09OKXwoTElORUFSfEFOR1VMQVIpXyhGUklDVElPTl9USU1FU0NBTEV8TU9UT1JfRElSRUNUSU9OKXxMSU5FQVJfTU9UT1JfT0ZGU0VUfEhPVkVSXyhIRUlHSFR8RUZGSUNJRU5DWXxUSU1FU0NBTEUpfEJVT1lBTkNZfChMSU5FQVJ8QU5HVUxBUilfKERFRkxFQ1RJT05fKEVGRklDSUVOQ1l8VElNRVNDQUxFKXxNT1RPUl8oREVDQVlfKT9USU1FU0NBTEUpfFZFUlRJQ0FMX0FUVFJBQ1RJT05fKEVGRklDSUVOQ1l8VElNRVNDQUxFKXxCQU5LSU5HXyhFRkZJQ0lFTkNZfE1JWHxUSU1FU0NBTEUpfEZMQUdfKE5PX0RFRkxFQ1RJT05fVVB8TElNSVRfKFJPTExfT05MWXxNT1RPUl9VUCl8SE9WRVJfKChXQVRFUnxURVJSQUlOfFVQKV9PTkxZfEdMT0JBTF9IRUlHSFQpfE1PVVNFTE9PS18oU1RFRVJ8QkFOSyl8Q0FNRVJBX0RFQ09VUExFRCkpfFBSSU1fKEFMTE9XX1VOU0lUfEFMUEhBX01PREUoXyhCTEVORHxFTUlTU0lWRXxNQVNLfE5PTkUpKT98Tk9STUFMfFNQRUNVTEFSfFRZUEUoXyhCT1h8Q1lMSU5ERVJ8UFJJU018U1BIRVJFfFRPUlVTfFRVQkV8UklOR3xTQ1VMUFQpKT98SE9MRV8oREVGQVVMVHxDSVJDTEV8U1FVQVJFfFRSSUFOR0xFKXxNQVRFUklBTChfKFNUT05FfE1FVEFMfEdMQVNTfFdPT0R8RkxFU0h8UExBU1RJQ3xSVUJCRVIpKT98U0hJTllfKE5PTkV8TE9XfE1FRElVTXxISUdIKXxCVU1QXyhOT05FfEJSSUdIVHxEQVJLfFdPT0R8QkFSS3xCUklDS1N8Q0hFQ0tFUnxDT05DUkVURXxUSUxFfFNUT05FfERJU0tTfEdSQVZFTHxCTE9CU3xTSURJTkd8TEFSR0VUSUxFfFNUVUNDT3xTVUNUSU9OfFdFQVZFKXxURVhHRU5fKERFRkFVTFR8UExBTkFSKXxTQ1JJUFRFRF9TSVRfT05MWXxTQ1VMUFRfKFRZUEVfKFNQSEVSRXxUT1JVU3xQTEFORXxDWUxJTkRFUnxNQVNLKXxGTEFHXyhNSVJST1J8SU5WRVJUKSl8UEhZU0lDUyhfKFNIQVBFXyhDT05WRVh8Tk9ORXxQUklNfFRZUEUpKSk/fChQT1N8Uk9UKV9MT0NBTHxTTElDRXxURVhUfEZMRVhJQkxFfFBPSU5UX0xJR0hUfFRFTVBfT05fUkVafFBIQU5UT018UE9TSVRJT058U0lUX1RBUkdFVHxTSVpFfFJPVEFUSU9OfFRFWFRVUkV8TkFNRXxPTUVHQXxERVNDfExJTktfVEFSR0VUfENPTE9SfEJVTVBfU0hJTll8RlVMTEJSSUdIVHxURVhHRU58R0xPV3xNRURJQV8oQUxUX0lNQUdFX0VOQUJMRXxDT05UUk9MU3woQ1VSUkVOVHxIT01FKV9VUkx8QVVUT18oTE9PUHxQTEFZfFNDQUxFfFpPT00pfEZJUlNUX0NMSUNLX0lOVEVSQUNUfChXSURUSHxIRUlHSFQpX1BJWEVMU3xXSElURUxJU1QoX0VOQUJMRSk/fFBFUk1TXyhJTlRFUkFDVHxDT05UUk9MKXxQQVJBTV9NQVh8Q09OVFJPTFNfKFNUQU5EQVJEfE1JTkkpfFBFUk1fKE5PTkV8T1dORVJ8R1JPVVB8QU5ZT05FKXxNQVhfKFVSTF9MRU5HVEh8V0hJVEVMSVNUXyhTSVpFfENPVU5UKXwoV0lEVEh8SEVJR0hUKV9QSVhFTFMpKSl8TUFTS18oQkFTRXxPV05FUnxHUk9VUHxFVkVSWU9ORXxORVhUKXxQRVJNXyhUUkFOU0ZFUnxNT0RJRll8Q09QWXxNT1ZFfEFMTCl8UEFSQ0VMXyhNRURJQV9DT01NQU5EXyhTVE9QfFBBVVNFfFBMQVl8TE9PUHxURVhUVVJFfFVSTHxUSU1FfEFHRU5UfFVOTE9BRHxBVVRPX0FMSUdOfFRZUEV8U0laRXxERVNDfExPT1BfU0VUKXxGTEFHXyhBTExPV18oRkxZfChHUk9VUF8pP1NDUklQVFN8TEFORE1BUkt8VEVSUkFGT1JNfERBTUFHRXxDUkVBVEVfKEdST1VQXyk/T0JKRUNUUyl8VVNFXyhBQ0NFU1NfKEdST1VQfExJU1QpfEJBTl9MSVNUfExBTkRfUEFTU19MSVNUKXxMT0NBTF9TT1VORF9PTkxZfFJFU1RSSUNUX1BVU0hPQkpFQ1R8QUxMT1dfKEdST1VQfEFMTClfT0JKRUNUX0VOVFJZKXxDT1VOVF8oVE9UQUx8T1dORVJ8R1JPVVB8T1RIRVJ8U0VMRUNURUR8VEVNUCl8REVUQUlMU18oTkFNRXxERVNDfE9XTkVSfEdST1VQfEFSRUF8SUR8U0VFX0FWQVRBUlMpKXxMSVNUX1NUQVRfKE1BWHxNSU58TUVBTnxNRURJQU58U1REX0RFVnxTVU0oX1NRVUFSRVMpP3xOVU1fQ09VTlR8R0VPTUVUUklDX01FQU58UkFOR0UpfFBBWV8oSElERXxERUZBVUxUKXxSRUdJT05fRkxBR18oQUxMT1dfREFNQUdFfEZJWEVEX1NVTnxCTE9DS19URVJSQUZPUk18U0FOREJPWHxESVNBQkxFXyhDT0xMSVNJT05TfFBIWVNJQ1MpfEJMT0NLX0ZMWXxBTExPV19ESVJFQ1RfVEVMRVBPUlR8UkVTVFJJQ1RfUFVTSE9CSkVDVCl8SFRUUF8oTUVUSE9EfE1JTUVUWVBFfEJPRFlfKE1BWExFTkdUSHxUUlVOQ0FURUQpfENVU1RPTV9IRUFERVJ8UFJBR01BX05PX0NBQ0hFfFZFUkJPU0VfVEhST1RUTEV8VkVSSUZZX0NFUlQpfFNJVF8oSU5WQUxJRF8oQUdFTlR8TElOS19PQkpFQ1QpfE5PKFRfRVhQRVJJRU5DRXxfKEFDQ0VTU3xFWFBFUklFTkNFX1BFUk1JU1NJT058U0lUX1RBUkdFVCkpKXxTVFJJTkdfKFRSSU0oXyhIRUFEfFRBSUwpKT8pfENMSUNLX0FDVElPTl8oTk9ORXxUT1VDSHxTSVR8QlVZfFBBWXxPUEVOKF9NRURJQSk/fFBMQVl8Wk9PTSl8VE9VQ0hfSU5WQUxJRF9GQUNFfFBST0ZJTEVfKE5PTkV8U0NSSVBUX01FTU9SWSl8UkNfKERBVEFfRkxBR1N8REVURUNUX1BIQU5UT018R0VUXyhMSU5LX05VTXxOT1JNQUx8Uk9PVF9LRVkpfE1BWF9ISVRTfFJFSkVDVF8oVFlQRVN8QUdFTlRTfChOT04pP1BIWVNJQ0FMfExBTkQpKXxSQ0VSUl8oQ0FTVF9USU1FX0VYQ0VFREVEfFNJTV9QRVJGX0xPV3xVTktOT1dOKXxFU1RBVEVfQUNDRVNTXyhBTExPV0VEXyhBR0VOVHxHUk9VUClfKEFERHxSRU1PVkUpfEJBTk5FRF9BR0VOVF8oQUREfFJFTU9WRSkpfERFTlNJVFl8RlJJQ1RJT058UkVTVElUVVRJT058R1JBVklUWV9NVUxUSVBMSUVSfEtGTV8oQ09NTUFORHxDTURfKFBMQVl8U1RPUHxQQVVTRSl8TU9ERXxGT1JXQVJEfExPT1B8UElOR19QT05HfFJFVkVSU0V8REFUQXxST1RBVElPTnxUUkFOU0xBVElPTil8RVJSXyhHRU5FUklDfFBBUkNFTF9QRVJNSVNTSU9OU3xNQUxGT1JNRURfUEFSQU1TfFJVTlRJTUVfUEVSTUlTU0lPTlN8VEhST1RUTEVEKXxDSEFSQUNURVJfKENNRF8oKFNNT09USF8pP1NUT1B8SlVNUCl8REVTSVJFRF8oVFVSTl8pP1NQRUVEfFJBRElVU3xTVEFZX1dJVEhJTl9QQVJDRUx8TEVOR1RIfE9SSUVOVEFUSU9OfEFDQ09VTlRfRk9SX1NLSVBQRURfRlJBTUVTfEFWT0lEQU5DRV9NT0RFfFRZUEUoXyhbQUJDRF18Tk9ORSkpP3xNQVhfKERFQ0VMfFRVUk5fUkFESVVTfChBQ0NFTHxTUEVFRCkpKXxQVVJTVUlUXyhPRkZTRVR8RlVaWl9GQUNUT1J8R09BTF9UT0xFUkFOQ0V8SU5URVJDRVBUKXxSRVFVSVJFX0xJTkVfT0ZfU0lHSFR8Rk9SQ0VfRElSRUNUX1BBVEh8VkVSVElDQUx8SE9SSVpPTlRBTHxBVk9JRF8oQ0hBUkFDVEVSU3xEWU5BTUlDX09CU1RBQ0xFU3xOT05FKXxQVV8oRVZBREVfKEhJRERFTnxTUE9UVEVEKXxGQUlMVVJFXyhEWU5BTUlDX1BBVEhGSU5ESU5HX0RJU0FCTEVEfElOVkFMSURfKEdPQUx8U1RBUlQpfE5PXyhOQVZNRVNIfFZBTElEX0RFU1RJTkFUSU9OKXxPVEhFUnxUQVJHRVRfR09ORXwoUEFSQ0VMXyk/VU5SRUFDSEFCTEUpfChHT0FMfFNMT1dET1dOX0RJU1RBTkNFKV9SRUFDSEVEKXxUUkFWRVJTQUxfVFlQRShfKEZBU1R8Tk9ORXxTTE9XKSk/fENPTlRFTlRfVFlQRV8oQVRPTXxGT1JNfEhUTUx8SlNPTnxMTFNEfFJTU3xURVhUfFhIVE1MfFhNTCl8R0NOUF8oUkFESVVTfFNUQVRJQyl8KFBBVFJPTHxXQU5ERVIpX1BBVVNFX0FUX1dBWVBPSU5UU3xPUFRfKEFWQVRBUnxDSEFSQUNURVJ8RVhDTFVTSU9OX1ZPTFVNRXxMRUdBQ1lfTElOS1NFVHxNQVRFUklBTF9WT0xVTUV8T1RIRVJ8U1RBVElDX09CU1RBQ0xFfFdBTEtBQkxFKXxTSU1fU1RBVF9QQ1RfQ0hBUlNfU1RFUFBFRClcXFxcYicgfSxcbiAgICAgIHsgYmVnaW46ICdcXFxcYihGQUxTRXxUUlVFKVxcXFxiJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxiKFpFUk9fUk9UQVRJT04pXFxcXGInIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXGIoRU9GfEpTT05fKEFSUkFZfERFTEVURXxGQUxTRXxJTlZBTElEfE5VTEx8TlVNQkVSfE9CSkVDVHxTVFJJTkd8VFJVRSl8TlVMTF9LRVl8VEVYVFVSRV8oQkxBTkt8REVGQVVMVHxNRURJQXxQTFlXT09EfFRSQU5TUEFSRU5UKXxVUkxfUkVRVUVTVF8oR1JBTlRFRHxERU5JRUQpKVxcXFxiJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxiKFpFUk9fVkVDVE9SfFRPVUNIX0lOVkFMSURfKFRFWENPT1JEfFZFQ1RPUikpXFxcXGInIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTFNMX0ZVTkNUSU9OUyA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgYmVnaW46ICdcXFxcYihsbChBZ2VudEluRXhwZXJpZW5jZXwoQ3JlYXRlfERhdGFTaXplfERlbGV0ZXxLZXlDb3VudHxLZXlzfFJlYWR8VXBkYXRlKUtleVZhbHVlfEdldEV4cGVyaWVuY2UoRGV0YWlsc3xFcnJvck1lc3NhZ2UpfFJldHVybk9iamVjdHNCeShJRHxPd25lcil8SnNvbigyTGlzdHxbR1NdZXRWYWx1ZXxWYWx1ZVR5cGUpfFNpbnxDb3N8VGFufEF0YW4yfFNxcnR8UG93fEFic3xGYWJzfEZyYW5kfEZsb29yfENlaWx8Um91bmR8VmVjKE1hZ3xOb3JtfERpc3QpfFJvdChCZXR3ZWVufDIoRXVsZXJ8RndkfExlZnR8VXApKXwoRXVsZXJ8QXhlcykyUm90fFdoaXNwZXJ8KFJlZ2lvbnxPd25lcik/U2F5fFNob3V0fExpc3RlbihDb250cm9sfFJlbW92ZSk/fFNlbnNvcihSZXBlYXR8UmVtb3ZlKT98RGV0ZWN0ZWQoTmFtZXxLZXl8T3duZXJ8VHlwZXxQb3N8VmVsfEdyYWJ8Um90fEdyb3VwfExpbmtOdW1iZXIpfERpZXxHcm91bmR8V2luZHwoW0dTXWV0KShBbmltYXRpb25PdmVycmlkZXxNZW1vcnlMaW1pdHxQcmltTWVkaWFQYXJhbXN8UGFyY2VsTXVzaWNVUkx8T2JqZWN0KERlc2N8TmFtZSl8UGh5c2ljc01hdGVyaWFsfFN0YXR1c3xTY2FsZXxDb2xvcnxBbHBoYXxUZXh0dXJlfFBvc3xSb3R8Rm9yY2V8VG9ycXVlKXxSZXNldEFuaW1hdGlvbk92ZXJyaWRlfChTY2FsZXxPZmZzZXR8Um90YXRlKVRleHR1cmV8KFJvdCk/VGFyZ2V0KFJlbW92ZSk/fChTdG9wKT9Nb3ZlVG9UYXJnZXR8QXBwbHkoUm90YXRpb25hbCk/SW1wdWxzZXxTZXQoS2V5ZnJhbWVkTW90aW9ufENvbnRlbnRUeXBlfFJlZ2lvblBvc3woQW5ndWxhcik/VmVsb2NpdHl8QnVveWFuY3l8SG92ZXJIZWlnaHR8Rm9yY2VBbmRUb3JxdWV8VGltZXJFdmVudHxTY3JpcHRTdGF0ZXxEYW1hZ2V8VGV4dHVyZUFuaW18U291bmQoUXVldWVpbmd8UmFkaXVzKXxWZWhpY2xlKFR5cGV8KEZsb2F0fFZlY3RvcnxSb3RhdGlvbilQYXJhbSl8KFRvdWNofFNpdCk/VGV4dHxDYW1lcmEoRXllfEF0KU9mZnNldHxQcmltaXRpdmVQYXJhbXN8Q2xpY2tBY3Rpb258TGluayhBbHBoYXxDb2xvcnxQcmltaXRpdmVQYXJhbXMoRmFzdCk/fFRleHR1cmUoQW5pbSk/fENhbWVyYXxNZWRpYSl8UmVtb3RlU2NyaXB0QWNjZXNzUGlufFBheVByaWNlfExvY2FsUm90KXxTY2FsZUJ5RmFjdG9yfEdldCgoTWF4fE1pbilTY2FsZUZhY3RvcnxDbG9zZXN0TmF2UG9pbnR8U3RhdGljUGF0aHxTaW1TdGF0c3xFbnZ8UHJpbWl0aXZlUGFyYW1zfExpbmsoUHJpbWl0aXZlUGFyYW1zfE51bWJlcihPZlNpZGVzKT98S2V5fE5hbWV8TWVkaWEpfEhUVFBIZWFkZXJ8RnJlZVVSTHN8T2JqZWN0KERldGFpbHN8UGVybU1hc2t8UHJpbUNvdW50KXxQYXJjZWwoTWF4UHJpbXN8RGV0YWlsc3xQcmltKENvdW50fE93bmVycykpfEF0dGFjaGVkKExpc3QpP3woU1BNYXh8RnJlZXxVc2VkKU1lbW9yeXxSZWdpb24oTmFtZXxUaW1lRGlsYXRpb258RlBTfENvcm5lcnxBZ2VudENvdW50KXxSb290KFBvc2l0aW9ufFJvdGF0aW9uKXxVbml4VGltZXwoUGFyY2VsfFJlZ2lvbilGbGFnc3woV2FsbHxHTVQpY2xvY2t8U2ltdWxhdG9ySG9zdG5hbWV8Qm91bmRpbmdCb3h8R2VvbWV0cmljQ2VudGVyfENyZWF0b3J8TnVtYmVyT2YoUHJpbXN8Tm90ZWNhcmRMaW5lc3xTaWRlcyl8QW5pbWF0aW9uKExpc3QpP3woQ2FtZXJhfExvY2FsKShQb3N8Um90KXxWZWx8QWNjZWx8T21lZ2F8VGltZShzdGFtcHxPZkRheSl8KE9iamVjdHxDZW50ZXJPZik/TWFzc3xNYXNzTUtTfEVuZXJneXxPd25lcnwoT3duZXIpP0tleXxTdW5EaXJlY3Rpb258VGV4dHVyZShPZmZzZXR8U2NhbGV8Um90KXxJbnZlbnRvcnkoTnVtYmVyfE5hbWV8S2V5fFR5cGV8Q3JlYXRvcnxQZXJtTWFzayl8UGVybWlzc2lvbnMoS2V5KT98U3RhcnRQYXJhbWV0ZXJ8TGlzdChMZW5ndGh8RW50cnlUeXBlKXxEYXRlfEFnZW50KFNpemV8SW5mb3xMYW5ndWFnZXxMaXN0KXxMYW5kT3duZXJBdHxOb3RlY2FyZExpbmV8U2NyaXB0KE5hbWV8U3RhdGUpKXwoR2V0fFJlc2V0fEdldEFuZFJlc2V0KVRpbWV8UGxheVNvdW5kKFNsYXZlKT98TG9vcFNvdW5kKE1hc3RlcnxTbGF2ZSk/fChUcmlnZ2VyfFN0b3B8UHJlbG9hZClTb3VuZHwoKEdldHxEZWxldGUpU3VifEluc2VydClTdHJpbmd8VG8oVXBwZXJ8TG93ZXIpfEdpdmUoSW52ZW50b3J5TGlzdHxNb25leSl8UmV6T2JqZWN0fChTdG9wKT9Mb29rQXR8U2xlZXB8Q29sbGlzaW9uRmlsdGVyfChUYWtlfFJlbGVhc2UpQ29udHJvbHN8RGV0YWNoRnJvbUF2YXRhcnxBdHRhY2hUb0F2YXRhcihUZW1wKT98SW5zdGFudE1lc3NhZ2V8KEdldE5leHQpP0VtYWlsfFN0b3BIb3ZlcnxNaW5FdmVudERlbGF5fFJvdExvb2tBdHxTdHJpbmcoTGVuZ3RofFRyaW0pfChTdGFydHxTdG9wKUFuaW1hdGlvbnxUYXJnZXRPbWVnYXxSZXF1ZXN0KEV4cGVyaWVuY2UpP1Blcm1pc3Npb25zfChDcmVhdGV8QnJlYWspTGlua3xCcmVha0FsbExpbmtzfChHaXZlfFJlbW92ZSlJbnZlbnRvcnl8V2F0ZXJ8UGFzc1RvdWNoZXN8UmVxdWVzdChBZ2VudHxJbnZlbnRvcnkpRGF0YXxUZWxlcG9ydEFnZW50KEhvbWV8R2xvYmFsQ29vcmRzKT98TW9kaWZ5TGFuZHxDb2xsaXNpb25Tb3VuZHxSZXNldFNjcmlwdHxNZXNzYWdlTGlua2VkfFB1c2hPYmplY3R8UGFzc0NvbGxpc2lvbnN8QXhpc0FuZ2xlMlJvdHxSb3QyKEF4aXN8QW5nbGUpfEEoY29zfHNpbil8QW5nbGVCZXR3ZWVufEFsbG93SW52ZW50b3J5RHJvcHxTdWJTdHJpbmdJbmRleHxMaXN0MihDU1Z8SW50ZWdlcnxKc29ufEZsb2F0fFN0cmluZ3xLZXl8VmVjdG9yfFJvdHxMaXN0KFN0cmlkZWQpPyl8RGVsZXRlU3ViTGlzdHxMaXN0KFN0YXRpc3RpY3N8U29ydHxSYW5kb21pemV8KEluc2VydHxGaW5kfFJlcGxhY2UpTGlzdCl8RWRnZU9mV29ybGR8QWRqdXN0U291bmRWb2x1bWV8S2V5Mk5hbWV8VHJpZ2dlclNvdW5kTGltaXRlZHxFamVjdEZyb21MYW5kfChDU1Z8UGFyc2VTdHJpbmcpMkxpc3R8T3Zlck15TGFuZHxTYW1lR3JvdXB8VW5TaXR8R3JvdW5kKFNsb3BlfE5vcm1hbHxDb250b3VyKXxHcm91bmRSZXBlbHwoU2V0fFJlbW92ZSlWZWhpY2xlRmxhZ3N8U2l0T25MaW5rfChBdmF0YXJPbik/KExpbmspP1NpdFRhcmdldHxTY3JpcHQoRGFuZ2VyfFByb2ZpbGVyKXxEaWFsb2d8Vm9sdW1lRGV0ZWN0fFJlc2V0T3RoZXJTY3JpcHR8UmVtb3RlTG9hZFNjcmlwdFBpbnwoT3BlbnxDbG9zZSlSZW1vdGVEYXRhQ2hhbm5lbHxTZW5kUmVtb3RlRGF0YXxSZW1vdGVEYXRhUmVwbHl8KEludGVnZXJ8U3RyaW5nKVRvQmFzZTY0fFhvckJhc2U2NHxMb2coMTApP3xCYXNlNjRUbyhTdHJpbmd8SW50ZWdlcil8UGFyc2VTdHJpbmdLZWVwTnVsbHN8UmV6QXRSb290fFJlcXVlc3RTaW11bGF0b3JEYXRhfEZvcmNlTW91c2Vsb29rfChMb2FkfFJlbGVhc2V8KEV8VW5lKXNjYXBlKVVSTHxQYXJjZWxNZWRpYShDb21tYW5kTGlzdHxRdWVyeSl8TW9kUG93fE1hcERlc3RpbmF0aW9ufChSZW1vdmVGcm9tfEFkZFRvfFJlc2V0KUxhbmQoUGFzc3xCYW4pTGlzdHwoU2V0fENsZWFyKUNhbWVyYVBhcmFtc3xIVFRQKFJlcXVlc3R8UmVzcG9uc2UpfFRleHRCb3h8RGV0ZWN0ZWRUb3VjaChVVnxGYWNlfFBvc3woTnxCaW4pb3JtYWx8U1QpfChNRDV8U0hBMXxEdW1wTGlzdDIpU3RyaW5nfFJlcXVlc3QoU2VjdXJlKT9VUkx8Q2xlYXIoUHJpbXxMaW5rKU1lZGlhfChMaW5rKT9QYXJ0aWNsZVN5c3RlbXwoR2V0fFJlcXVlc3QpKFVzZXJuYW1lfERpc3BsYXlOYW1lKXxSZWdpb25TYXlUb3xDYXN0UmF5fEdlbmVyYXRlS2V5fFRyYW5zZmVyTGluZGVuRG9sbGFyc3xNYW5hZ2VFc3RhdGVBY2Nlc3N8KENyZWF0ZXxEZWxldGUpQ2hhcmFjdGVyfEV4ZWNDaGFyYWN0ZXJDbWR8RXZhZGV8RmxlZUZyb218TmF2aWdhdGVUb3xQYXRyb2xQb2ludHN8UHVyc3VlfFVwZGF0ZUNoYXJhY3RlcnxXYW5kZXJXaXRoaW4pKVxcXFxiJ1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xTTCAoTGluZGVuIFNjcmlwdGluZyBMYW5ndWFnZSknLFxuICAgIGlsbGVnYWw6ICc6JyxcbiAgICBjb250YWluczogW1xuICAgICAgTFNMX1NUUklOR1MsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqJywgJ1xcXFwqLycpXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIExTTF9OVU1CRVJTLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoc3RhdGV8ZGVmYXVsdClcXFxcYicgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoc3RhdGVfKGVudHJ5fGV4aXQpfHRvdWNoKF8oc3RhcnR8ZW5kKSk/fChsYW5kXyk/Y29sbGlzaW9uKF8oc3RhcnR8ZW5kKSk/fHRpbWVyfGxpc3Rlbnwobm9fKT9zZW5zb3J8Y29udHJvbHwobm90Xyk/YXRfKHJvdF8pP3RhcmdldHxtb25leXxlbWFpbHxleHBlcmllbmNlX3Blcm1pc3Npb25zKF9kZW5pZWQpP3xydW5fdGltZV9wZXJtaXNzaW9uc3xjaGFuZ2VkfGF0dGFjaHxkYXRhc2VydmVyfG1vdmluZ18oc3RhcnR8ZW5kKXxsaW5rX21lc3NhZ2V8KG9ufG9iamVjdClfcmV6fHJlbW90ZV9kYXRhfGh0dHBfcmUoc3BvbnNlfHF1ZXN0KXxwYXRoX3VwZGF0ZXx0cmFuc2FjdGlvbl9yZXN1bHQpXFxcXGInIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIExTTF9GVU5DVElPTlMsXG4gICAgICBMU0xfQ09OU1RBTlRTLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihpbnRlZ2VyfGZsb2F0fHN0cmluZ3xrZXl8dmVjdG9yfHF1YXRlcm5pb258cm90YXRpb258bGlzdClcXFxcYidcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbHNsO1xuIiwgIi8qXG5MYW5ndWFnZTogTHVhXG5EZXNjcmlwdGlvbjogTHVhIGlzIGEgcG93ZXJmdWwsIGVmZmljaWVudCwgbGlnaHR3ZWlnaHQsIGVtYmVkZGFibGUgc2NyaXB0aW5nIGxhbmd1YWdlLlxuQXV0aG9yOiBBbmRyZXcgRmVkb3JvdiA8ZG1tZHJzQG1haWwucnU+XG5DYXRlZ29yeTogY29tbW9uLCBnYW1pbmcsIHNjcmlwdGluZ1xuV2Vic2l0ZTogaHR0cHM6Ly93d3cubHVhLm9yZ1xuKi9cblxuZnVuY3Rpb24gbHVhKGhsanMpIHtcbiAgY29uc3QgT1BFTklOR19MT05HX0JSQUNLRVQgPSAnXFxcXFs9KlxcXFxbJztcbiAgY29uc3QgQ0xPU0lOR19MT05HX0JSQUNLRVQgPSAnXFxcXF09KlxcXFxdJztcbiAgY29uc3QgTE9OR19CUkFDS0VUUyA9IHtcbiAgICBiZWdpbjogT1BFTklOR19MT05HX0JSQUNLRVQsXG4gICAgZW5kOiBDTE9TSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICBjb250YWluczogWyAnc2VsZicgXVxuICB9O1xuICBjb25zdCBDT01NRU5UUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoJy0tKD8hJyArIE9QRU5JTkdfTE9OR19CUkFDS0VUICsgJyknLCAnJCcpLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICctLScgKyBPUEVOSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICAgIENMT1NJTkdfTE9OR19CUkFDS0VULFxuICAgICAge1xuICAgICAgICBjb250YWluczogWyBMT05HX0JSQUNLRVRTIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH1cbiAgICApXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0x1YScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICBsaXRlcmFsOiBcInRydWUgZmFsc2UgbmlsXCIsXG4gICAgICBrZXl3b3JkOiBcImFuZCBicmVhayBkbyBlbHNlIGVsc2VpZiBlbmQgZm9yIGdvdG8gaWYgaW4gbG9jYWwgbm90IG9yIHJlcGVhdCByZXR1cm4gdGhlbiB1bnRpbCB3aGlsZVwiLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIC8vIE1ldGF0YWdzIGFuZCBnbG9iYWxzOlxuICAgICAgICAnX0cgX0VOViBfVkVSU0lPTiBfX2luZGV4IF9fbmV3aW5kZXggX19tb2RlIF9fY2FsbCBfX21ldGF0YWJsZSBfX3Rvc3RyaW5nIF9fbGVuICdcbiAgICAgICAgKyAnX19nYyBfX2FkZCBfX3N1YiBfX211bCBfX2RpdiBfX21vZCBfX3BvdyBfX2NvbmNhdCBfX3VubSBfX2VxIF9fbHQgX19sZSBhc3NlcnQgJ1xuICAgICAgICAvLyBTdGFuZGFyZCBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzOlxuICAgICAgICArICdjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgbG9hZGZpbGUgbG9hZHN0cmluZyAnXG4gICAgICAgICsgJ21vZHVsZSBuZXh0IHBhaXJzIHBjYWxsIHByaW50IHJhd2VxdWFsIHJhd2dldCByYXdzZXQgcmVxdWlyZSBzZWxlY3Qgc2V0ZmVudiAnXG4gICAgICAgICsgJ3NldG1ldGF0YWJsZSB0b251bWJlciB0b3N0cmluZyB0eXBlIHVucGFjayB4cGNhbGwgYXJnIHNlbGYgJ1xuICAgICAgICAvLyBMaWJyYXJ5IG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgKG9uZSBsaW5lIHBlciBsaWJyYXJ5KTpcbiAgICAgICAgKyAnY29yb3V0aW5lIHJlc3VtZSB5aWVsZCBzdGF0dXMgd3JhcCBjcmVhdGUgcnVubmluZyBkZWJ1ZyBnZXR1cHZhbHVlICdcbiAgICAgICAgKyAnZGVidWcgc2V0aG9vayBnZXRtZXRhdGFibGUgZ2V0aG9vayBzZXRtZXRhdGFibGUgc2V0bG9jYWwgdHJhY2ViYWNrIHNldGZlbnYgZ2V0aW5mbyBzZXR1cHZhbHVlIGdldGxvY2FsIGdldHJlZ2lzdHJ5IGdldGZlbnYgJ1xuICAgICAgICArICdpbyBsaW5lcyB3cml0ZSBjbG9zZSBmbHVzaCBvcGVuIG91dHB1dCB0eXBlIHJlYWQgc3RkZXJyIHN0ZGluIGlucHV0IHN0ZG91dCBwb3BlbiB0bXBmaWxlICdcbiAgICAgICAgKyAnbWF0aCBsb2cgbWF4IGFjb3MgaHVnZSBsZGV4cCBwaSBjb3MgdGFuaCBwb3cgZGVnIHRhbiBjb3NoIHNpbmggcmFuZG9tIHJhbmRvbXNlZWQgZnJleHAgY2VpbCBmbG9vciByYWQgYWJzIHNxcnQgbW9kZiBhc2luIG1pbiBtb2QgZm1vZCBsb2cxMCBhdGFuMiBleHAgc2luIGF0YW4gJ1xuICAgICAgICArICdvcyBleGl0IHNldGxvY2FsZSBkYXRlIGdldGVudiBkaWZmdGltZSByZW1vdmUgdGltZSBjbG9jayB0bXBuYW1lIHJlbmFtZSBleGVjdXRlIHBhY2thZ2UgcHJlbG9hZCBsb2FkbGliIGxvYWRlZCBsb2FkZXJzIGNwYXRoIGNvbmZpZyBwYXRoIHNlZWFsbCAnXG4gICAgICAgICsgJ3N0cmluZyBzdWIgdXBwZXIgbGVuIGdmaW5kIHJlcCBmaW5kIG1hdGNoIGNoYXIgZHVtcCBnbWF0Y2ggcmV2ZXJzZSBieXRlIGZvcm1hdCBnc3ViIGxvd2VyICdcbiAgICAgICAgKyAndGFibGUgc2V0biBpbnNlcnQgZ2V0biBmb3JlYWNoaSBtYXhuIGZvcmVhY2ggY29uY2F0IHNvcnQgcmVtb3ZlJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IENPTU1FTlRTLmNvbmNhdChbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uJyxcbiAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICcoW19hLXpBLVpdXFxcXHcqXFxcXC4pKihbX2EtekEtWl1cXFxcdyo6KT9bX2EtekEtWl1cXFxcdyonIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IENPTU1FTlRTXG4gICAgICAgICAgfVxuICAgICAgICBdLmNvbmNhdChDT01NRU5UUylcbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogT1BFTklOR19MT05HX0JSQUNLRVQsXG4gICAgICAgIGVuZDogQ0xPU0lOR19MT05HX0JSQUNLRVQsXG4gICAgICAgIGNvbnRhaW5zOiBbIExPTkdfQlJBQ0tFVFMgXSxcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9XG4gICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsdWE7XG4iLCAiLypcbkxhbmd1YWdlOiBNYWtlZmlsZVxuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNvbnRyaWJ1dG9yczogSm9cdTAwRUJsIFBvcnF1ZXQgPGpvZWxAcG9ycXVldC5vcmc+XG5XZWJzaXRlOiBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL21ha2UvbWFudWFsL2h0bWxfbm9kZS9JbnRyb2R1Y3Rpb24uaHRtbFxuQ2F0ZWdvcnk6IGNvbW1vbiwgYnVpbGQtc3lzdGVtXG4qL1xuXG5mdW5jdGlvbiBtYWtlZmlsZShobGpzKSB7XG4gIC8qIFZhcmlhYmxlczogc2ltcGxlIChlZyAkKHZhcikpIGFuZCBzcGVjaWFsIChlZyAkQCkgKi9cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXCRcXFxcKCcgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXCknLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC9cXCRbQCU8P1xcXlxcK1xcKl0vIH1cbiAgICBdXG4gIH07XG4gIC8qIFF1b3RlZCBzdHJpbmcgd2l0aCB2YXJpYWJsZXMgaW5zaWRlICovXG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSSUFCTEVcbiAgICBdXG4gIH07XG4gIC8qIEZ1bmN0aW9uOiAkKGZ1bmMgYXJnLC4uLikgKi9cbiAgY29uc3QgRlVOQyA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCRcXChbXFx3LV0rXFxzLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOlxuICAgICAgICAnc3Vic3QgcGF0c3Vic3Qgc3RyaXAgZmluZHN0cmluZyBmaWx0ZXIgZmlsdGVyLW91dCBzb3J0ICdcbiAgICAgICAgKyAnd29yZCB3b3JkbGlzdCBmaXJzdHdvcmQgbGFzdHdvcmQgZGlyIG5vdGRpciBzdWZmaXggYmFzZW5hbWUgJ1xuICAgICAgICArICdhZGRzdWZmaXggYWRkcHJlZml4IGpvaW4gd2lsZGNhcmQgcmVhbHBhdGggYWJzcGF0aCBlcnJvciB3YXJuaW5nICdcbiAgICAgICAgKyAnc2hlbGwgb3JpZ2luIGZsYXZvciBmb3JlYWNoIGlmIG9yIGFuZCBjYWxsIGV2YWwgZmlsZSB2YWx1ZScgfSxcbiAgICBjb250YWluczogWyBWQVJJQUJMRSBdXG4gIH07XG4gIC8qIFZhcmlhYmxlIGFzc2lnbm1lbnQgKi9cbiAgY29uc3QgQVNTSUdOTUVOVCA9IHsgYmVnaW46ICdeJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccyooPz1bOis/XT89KScgfTtcbiAgLyogTWV0YSB0YXJnZXRzICguUEhPTlkpICovXG4gIGNvbnN0IE1FVEEgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC9eXFwuUEhPTlk6LyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFwuXFx3XSsvLFxuICAgICAga2V5d29yZDogJy5QSE9OWSdcbiAgICB9XG4gIH07XG4gIC8qIFRhcmdldHMgKi9cbiAgY29uc3QgVEFSR0VUID0ge1xuICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgIGJlZ2luOiAvXlteXFxzXSs6LyxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogWyBWQVJJQUJMRSBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01ha2VmaWxlJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnbWsnLFxuICAgICAgJ21haycsXG4gICAgICAnbWFrZScsXG4gICAgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3LV0rLyxcbiAgICAgIGtleXdvcmQ6ICdkZWZpbmUgZW5kZWYgdW5kZWZpbmUgaWZkZWYgaWZuZGVmIGlmZXEgaWZuZXEgZWxzZSBlbmRpZiAnXG4gICAgICArICdpbmNsdWRlIC1pbmNsdWRlIHNpbmNsdWRlIG92ZXJyaWRlIGV4cG9ydCB1bmV4cG9ydCBwcml2YXRlIHZwYXRoJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEZVTkMsXG4gICAgICBBU1NJR05NRU5ULFxuICAgICAgTUVUQSxcbiAgICAgIFRBUkdFVFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYWtlZmlsZTtcbiIsICJjb25zdCBTWVNURU1fU1lNQk9MUyA9IFtcbiAgXCJBQVNUcmlhbmdsZVwiLFxuICBcIkFiZWxpYW5Hcm91cFwiLFxuICBcIkFib3J0XCIsXG4gIFwiQWJvcnRLZXJuZWxzXCIsXG4gIFwiQWJvcnRQcm90ZWN0XCIsXG4gIFwiQWJvcnRTY2hlZHVsZWRUYXNrXCIsXG4gIFwiQWJvdmVcIixcbiAgXCJBYnNcIixcbiAgXCJBYnNBcmdcIixcbiAgXCJBYnNBcmdQbG90XCIsXG4gIFwiQWJzb2x1dGVcIixcbiAgXCJBYnNvbHV0ZUNvcnJlbGF0aW9uXCIsXG4gIFwiQWJzb2x1dGVDb3JyZWxhdGlvbkZ1bmN0aW9uXCIsXG4gIFwiQWJzb2x1dGVDdXJyZW50VmFsdWVcIixcbiAgXCJBYnNvbHV0ZURhc2hpbmdcIixcbiAgXCJBYnNvbHV0ZUZpbGVOYW1lXCIsXG4gIFwiQWJzb2x1dGVPcHRpb25zXCIsXG4gIFwiQWJzb2x1dGVQb2ludFNpemVcIixcbiAgXCJBYnNvbHV0ZVRoaWNrbmVzc1wiLFxuICBcIkFic29sdXRlVGltZVwiLFxuICBcIkFic29sdXRlVGltaW5nXCIsXG4gIFwiQWNjZXB0YW5jZVRocmVzaG9sZFwiLFxuICBcIkFjY291bnRpbmdGb3JtXCIsXG4gIFwiQWNjdW11bGF0ZVwiLFxuICBcIkFjY3VyYWN5XCIsXG4gIFwiQWNjdXJhY3lHb2FsXCIsXG4gIFwiQWNvdXN0aWNBYnNvcmJpbmdWYWx1ZVwiLFxuICBcIkFjb3VzdGljSW1wZWRhbmNlVmFsdWVcIixcbiAgXCJBY291c3RpY05vcm1hbFZlbG9jaXR5VmFsdWVcIixcbiAgXCJBY291c3RpY1BERUNvbXBvbmVudFwiLFxuICBcIkFjb3VzdGljUHJlc3N1cmVDb25kaXRpb25cIixcbiAgXCJBY291c3RpY1JhZGlhdGlvblZhbHVlXCIsXG4gIFwiQWNvdXN0aWNTb3VuZEhhcmRWYWx1ZVwiLFxuICBcIkFjb3VzdGljU291bmRTb2Z0Q29uZGl0aW9uXCIsXG4gIFwiQWN0aW9uRGVsYXlcIixcbiAgXCJBY3Rpb25NZW51XCIsXG4gIFwiQWN0aW9uTWVudUJveFwiLFxuICBcIkFjdGlvbk1lbnVCb3hPcHRpb25zXCIsXG4gIFwiQWN0aXZhdGVcIixcbiAgXCJBY3RpdmVcIixcbiAgXCJBY3RpdmVDbGFzc2lmaWNhdGlvblwiLFxuICBcIkFjdGl2ZUNsYXNzaWZpY2F0aW9uT2JqZWN0XCIsXG4gIFwiQWN0aXZlSXRlbVwiLFxuICBcIkFjdGl2ZVByZWRpY3Rpb25cIixcbiAgXCJBY3RpdmVQcmVkaWN0aW9uT2JqZWN0XCIsXG4gIFwiQWN0aXZlU3R5bGVcIixcbiAgXCJBY3ljbGljR3JhcGhRXCIsXG4gIFwiQWRkT25IZWxwUGF0aFwiLFxuICBcIkFkZFNpZGVzXCIsXG4gIFwiQWRkVG9cIixcbiAgXCJBZGRUb1NlYXJjaEluZGV4XCIsXG4gIFwiQWRkVXNlcnNcIixcbiAgXCJBZGphY2VuY3lHcmFwaFwiLFxuICBcIkFkamFjZW5jeUxpc3RcIixcbiAgXCJBZGphY2VuY3lNYXRyaXhcIixcbiAgXCJBZGphY2VudE1lc2hDZWxsc1wiLFxuICBcIkFkanVnYXRlXCIsXG4gIFwiQWRqdXN0bWVudEJveFwiLFxuICBcIkFkanVzdG1lbnRCb3hPcHRpb25zXCIsXG4gIFwiQWRqdXN0VGltZVNlcmllc0ZvcmVjYXN0XCIsXG4gIFwiQWRtaW5pc3RyYXRpdmVEaXZpc2lvbkRhdGFcIixcbiAgXCJBZmZpbmVIYWxmU3BhY2VcIixcbiAgXCJBZmZpbmVTcGFjZVwiLFxuICBcIkFmZmluZVN0YXRlU3BhY2VNb2RlbFwiLFxuICBcIkFmZmluZVRyYW5zZm9ybVwiLFxuICBcIkFmdGVyXCIsXG4gIFwiQWdncmVnYXRlZEVudGl0eUNsYXNzXCIsXG4gIFwiQWdncmVnYXRpb25MYXllclwiLFxuICBcIkFpcmNyYWZ0RGF0YVwiLFxuICBcIkFpcnBvcnREYXRhXCIsXG4gIFwiQWlyUHJlc3N1cmVEYXRhXCIsXG4gIFwiQWlyU291bmRBdHRlbnVhdGlvblwiLFxuICBcIkFpclRlbXBlcmF0dXJlRGF0YVwiLFxuICBcIkFpcnlBaVwiLFxuICBcIkFpcnlBaVByaW1lXCIsXG4gIFwiQWlyeUFpWmVyb1wiLFxuICBcIkFpcnlCaVwiLFxuICBcIkFpcnlCaVByaW1lXCIsXG4gIFwiQWlyeUJpWmVyb1wiLFxuICBcIkFsZ2VicmFpY0ludGVnZXJRXCIsXG4gIFwiQWxnZWJyYWljTnVtYmVyXCIsXG4gIFwiQWxnZWJyYWljTnVtYmVyRGVub21pbmF0b3JcIixcbiAgXCJBbGdlYnJhaWNOdW1iZXJOb3JtXCIsXG4gIFwiQWxnZWJyYWljTnVtYmVyUG9seW5vbWlhbFwiLFxuICBcIkFsZ2VicmFpY051bWJlclRyYWNlXCIsXG4gIFwiQWxnZWJyYWljUnVsZXNcIixcbiAgXCJBbGdlYnJhaWNSdWxlc0RhdGFcIixcbiAgXCJBbGdlYnJhaWNzXCIsXG4gIFwiQWxnZWJyYWljVW5pdFFcIixcbiAgXCJBbGlnbm1lbnRcIixcbiAgXCJBbGlnbm1lbnRNYXJrZXJcIixcbiAgXCJBbGlnbm1lbnRQb2ludFwiLFxuICBcIkFsbFwiLFxuICBcIkFsbG93QWR1bHRDb250ZW50XCIsXG4gIFwiQWxsb3dDaGF0U2VydmljZXNcIixcbiAgXCJBbGxvd2VkQ2xvdWRFeHRyYVBhcmFtZXRlcnNcIixcbiAgXCJBbGxvd2VkQ2xvdWRQYXJhbWV0ZXJFeHRlbnNpb25zXCIsXG4gIFwiQWxsb3dlZERpbWVuc2lvbnNcIixcbiAgXCJBbGxvd2VkRnJlcXVlbmN5UmFuZ2VcIixcbiAgXCJBbGxvd2VkSGVhZHNcIixcbiAgXCJBbGxvd0dyb3VwQ2xvc2VcIixcbiAgXCJBbGxvd0luY29tcGxldGVcIixcbiAgXCJBbGxvd0lubGluZUNlbGxzXCIsXG4gIFwiQWxsb3dLZXJuZWxJbml0aWFsaXphdGlvblwiLFxuICBcIkFsbG93TG9vc2VHcmFtbWFyXCIsXG4gIFwiQWxsb3dSZXZlcnNlR3JvdXBDbG9zZVwiLFxuICBcIkFsbG93U2NyaXB0TGV2ZWxDaGFuZ2VcIixcbiAgXCJBbGxvd1ZlcnNpb25VcGRhdGVcIixcbiAgXCJBbGxUcnVlXCIsXG4gIFwiQWxwaGFiZXRcIixcbiAgXCJBbHBoYWJldGljT3JkZXJcIixcbiAgXCJBbHBoYWJldGljU29ydFwiLFxuICBcIkFscGhhQ2hhbm5lbFwiLFxuICBcIkFsdGVybmF0ZUltYWdlXCIsXG4gIFwiQWx0ZXJuYXRpbmdGYWN0b3JpYWxcIixcbiAgXCJBbHRlcm5hdGluZ0dyb3VwXCIsXG4gIFwiQWx0ZXJuYXRpdmVIeXBvdGhlc2lzXCIsXG4gIFwiQWx0ZXJuYXRpdmVzXCIsXG4gIFwiQWx0aXR1ZGVNZXRob2RcIixcbiAgXCJBbWJpZW50TGlnaHRcIixcbiAgXCJBbWJpZ3VpdHlGdW5jdGlvblwiLFxuICBcIkFtYmlndWl0eUxpc3RcIixcbiAgXCJBbmFseXRpY1wiLFxuICBcIkFuYXRvbXlEYXRhXCIsXG4gIFwiQW5hdG9teUZvcm1cIixcbiAgXCJBbmF0b215UGxvdDNEXCIsXG4gIFwiQW5hdG9teVNraW5TdHlsZVwiLFxuICBcIkFuYXRvbXlTdHlsaW5nXCIsXG4gIFwiQW5jaG9yZWRTZWFyY2hcIixcbiAgXCJBbmRcIixcbiAgXCJBbmRlcnNvbkRhcmxpbmdUZXN0XCIsXG4gIFwiQW5nZXJKXCIsXG4gIFwiQW5nbGVCaXNlY3RvclwiLFxuICBcIkFuZ2xlQnJhY2tldFwiLFxuICBcIkFuZ2xlUGF0aFwiLFxuICBcIkFuZ2xlUGF0aDNEXCIsXG4gIFwiQW5nbGVWZWN0b3JcIixcbiAgXCJBbmd1bGFyR2F1Z2VcIixcbiAgXCJBbmltYXRlXCIsXG4gIFwiQW5pbWF0ZWRJbWFnZVwiLFxuICBcIkFuaW1hdGlvbkN5Y2xlT2Zmc2V0XCIsXG4gIFwiQW5pbWF0aW9uQ3ljbGVSZXBldGl0aW9uc1wiLFxuICBcIkFuaW1hdGlvbkRpcmVjdGlvblwiLFxuICBcIkFuaW1hdGlvbkRpc3BsYXlUaW1lXCIsXG4gIFwiQW5pbWF0aW9uUmF0ZVwiLFxuICBcIkFuaW1hdGlvblJlcGV0aXRpb25zXCIsXG4gIFwiQW5pbWF0aW9uUnVubmluZ1wiLFxuICBcIkFuaW1hdGlvblJ1blRpbWVcIixcbiAgXCJBbmltYXRpb25UaW1lSW5kZXhcIixcbiAgXCJBbmltYXRpb25WaWRlb1wiLFxuICBcIkFuaW1hdG9yXCIsXG4gIFwiQW5pbWF0b3JCb3hcIixcbiAgXCJBbmltYXRvckJveE9wdGlvbnNcIixcbiAgXCJBbmltYXRvckVsZW1lbnRzXCIsXG4gIFwiQW5ub3RhdGVcIixcbiAgXCJBbm5vdGF0aW9uXCIsXG4gIFwiQW5ub3RhdGlvbkRlbGV0ZVwiLFxuICBcIkFubm90YXRpb25LZXlzXCIsXG4gIFwiQW5ub3RhdGlvblJ1bGVzXCIsXG4gIFwiQW5ub3RhdGlvblZhbHVlXCIsXG4gIFwiQW5udWl0eVwiLFxuICBcIkFubnVpdHlEdWVcIixcbiAgXCJBbm51bHVzXCIsXG4gIFwiQW5vbWFseURldGVjdGlvblwiLFxuICBcIkFub21hbHlEZXRlY3RvclwiLFxuICBcIkFub21hbHlEZXRlY3RvckZ1bmN0aW9uXCIsXG4gIFwiQW5vbnltb3VzXCIsXG4gIFwiQW50aWFsaWFzaW5nXCIsXG4gIFwiQW50aWhlcm1pdGlhblwiLFxuICBcIkFudGloZXJtaXRpYW5NYXRyaXhRXCIsXG4gIFwiQW50aXN5bW1ldHJpY1wiLFxuICBcIkFudGlzeW1tZXRyaWNNYXRyaXhRXCIsXG4gIFwiQW50b255bXNcIixcbiAgXCJBbnlPcmRlclwiLFxuICBcIkFueVN1YnNldFwiLFxuICBcIkFueVRydWVcIixcbiAgXCJBcGFydFwiLFxuICBcIkFwYXJ0U3F1YXJlRnJlZVwiLFxuICBcIkFQSUZ1bmN0aW9uXCIsXG4gIFwiQXBwZWFyYW5jZVwiLFxuICBcIkFwcGVhcmFuY2VFbGVtZW50c1wiLFxuICBcIkFwcGVhcmFuY2VSdWxlc1wiLFxuICBcIkFwcGVsbEYxXCIsXG4gIFwiQXBwZW5kXCIsXG4gIFwiQXBwZW5kQ2hlY2tcIixcbiAgXCJBcHBlbmRMYXllclwiLFxuICBcIkFwcGVuZFRvXCIsXG4gIFwiQXBwbGljYXRpb25cIixcbiAgXCJBcHBseVwiLFxuICBcIkFwcGx5UmVhY3Rpb25cIixcbiAgXCJBcHBseVNpZGVzXCIsXG4gIFwiQXBwbHlUb1wiLFxuICBcIkFyY0Nvc1wiLFxuICBcIkFyY0Nvc2hcIixcbiAgXCJBcmNDb3RcIixcbiAgXCJBcmNDb3RoXCIsXG4gIFwiQXJjQ3NjXCIsXG4gIFwiQXJjQ3NjaFwiLFxuICBcIkFyY0N1cnZhdHVyZVwiLFxuICBcIkFSQ0hQcm9jZXNzXCIsXG4gIFwiQXJjTGVuZ3RoXCIsXG4gIFwiQXJjU2VjXCIsXG4gIFwiQXJjU2VjaFwiLFxuICBcIkFyY1NpblwiLFxuICBcIkFyY1NpbkRpc3RyaWJ1dGlvblwiLFxuICBcIkFyY1NpbmhcIixcbiAgXCJBcmNUYW5cIixcbiAgXCJBcmNUYW5oXCIsXG4gIFwiQXJlYVwiLFxuICBcIkFyZ1wiLFxuICBcIkFyZ01heFwiLFxuICBcIkFyZ01pblwiLFxuICBcIkFyZ3VtZW50Q291bnRRXCIsXG4gIFwiQXJndW1lbnRzT3B0aW9uc1wiLFxuICBcIkFSSU1BUHJvY2Vzc1wiLFxuICBcIkFyaXRobWV0aWNHZW9tZXRyaWNNZWFuXCIsXG4gIFwiQVJNQVByb2Nlc3NcIixcbiAgXCJBcm91bmRcIixcbiAgXCJBcm91bmRSZXBsYWNlXCIsXG4gIFwiQVJQcm9jZXNzXCIsXG4gIFwiQXJyYXlcIixcbiAgXCJBcnJheUNvbXBvbmVudHNcIixcbiAgXCJBcnJheURlcHRoXCIsXG4gIFwiQXJyYXlGaWx0ZXJcIixcbiAgXCJBcnJheUZsYXR0ZW5cIixcbiAgXCJBcnJheU1lc2hcIixcbiAgXCJBcnJheVBhZFwiLFxuICBcIkFycmF5UGxvdFwiLFxuICBcIkFycmF5UGxvdDNEXCIsXG4gIFwiQXJyYXlRXCIsXG4gIFwiQXJyYXlSZWR1Y2VcIixcbiAgXCJBcnJheVJlc2FtcGxlXCIsXG4gIFwiQXJyYXlSZXNoYXBlXCIsXG4gIFwiQXJyYXlSdWxlc1wiLFxuICBcIkFycmF5c1wiLFxuICBcIkFycm93XCIsXG4gIFwiQXJyb3czREJveFwiLFxuICBcIkFycm93Qm94XCIsXG4gIFwiQXJyb3doZWFkc1wiLFxuICBcIkFTQVRyaWFuZ2xlXCIsXG4gIFwiQXNrXCIsXG4gIFwiQXNrQXBwZW5kXCIsXG4gIFwiQXNrQ29uZmlybVwiLFxuICBcIkFza0Rpc3BsYXlcIixcbiAgXCJBc2tlZFFcIixcbiAgXCJBc2tlZFZhbHVlXCIsXG4gIFwiQXNrRnVuY3Rpb25cIixcbiAgXCJBc2tTdGF0ZVwiLFxuICBcIkFza1RlbXBsYXRlRGlzcGxheVwiLFxuICBcIkFzcGVjdFJhdGlvXCIsXG4gIFwiQXNwZWN0UmF0aW9GaXhlZFwiLFxuICBcIkFzc2VydFwiLFxuICBcIkFzc2Vzc21lbnRGdW5jdGlvblwiLFxuICBcIkFzc2Vzc21lbnRSZXN1bHRPYmplY3RcIixcbiAgXCJBc3NvY2lhdGVUb1wiLFxuICBcIkFzc29jaWF0aW9uXCIsXG4gIFwiQXNzb2NpYXRpb25Gb3JtYXRcIixcbiAgXCJBc3NvY2lhdGlvbk1hcFwiLFxuICBcIkFzc29jaWF0aW9uUVwiLFxuICBcIkFzc29jaWF0aW9uVGhyZWFkXCIsXG4gIFwiQXNzdW1lRGV0ZXJtaW5pc3RpY1wiLFxuICBcIkFzc3VtaW5nXCIsXG4gIFwiQXNzdW1wdGlvbnNcIixcbiAgXCJBc3Ryb0FuZ3VsYXJTZXBhcmF0aW9uXCIsXG4gIFwiQXN0cm9CYWNrZ3JvdW5kXCIsXG4gIFwiQXN0cm9DZW50ZXJcIixcbiAgXCJBc3Ryb0Rpc3RhbmNlXCIsXG4gIFwiQXN0cm9HcmFwaGljc1wiLFxuICBcIkFzdHJvR3JpZExpbmVzXCIsXG4gIFwiQXN0cm9HcmlkTGluZXNTdHlsZVwiLFxuICBcIkFzdHJvbm9taWNhbERhdGFcIixcbiAgXCJBc3Ryb1Bvc2l0aW9uXCIsXG4gIFwiQXN0cm9Qcm9qZWN0aW9uXCIsXG4gIFwiQXN0cm9SYW5nZVwiLFxuICBcIkFzdHJvUmFuZ2VQYWRkaW5nXCIsXG4gIFwiQXN0cm9SZWZlcmVuY2VGcmFtZVwiLFxuICBcIkFzdHJvU3R5bGluZ1wiLFxuICBcIkFzdHJvWm9vbUxldmVsXCIsXG4gIFwiQXN5bXB0b3RpY1wiLFxuICBcIkFzeW1wdG90aWNEU29sdmVWYWx1ZVwiLFxuICBcIkFzeW1wdG90aWNFcXVhbFwiLFxuICBcIkFzeW1wdG90aWNFcXVpdmFsZW50XCIsXG4gIFwiQXN5bXB0b3RpY0V4cGVjdGF0aW9uXCIsXG4gIFwiQXN5bXB0b3RpY0dyZWF0ZXJcIixcbiAgXCJBc3ltcHRvdGljR3JlYXRlckVxdWFsXCIsXG4gIFwiQXN5bXB0b3RpY0ludGVncmF0ZVwiLFxuICBcIkFzeW1wdG90aWNMZXNzXCIsXG4gIFwiQXN5bXB0b3RpY0xlc3NFcXVhbFwiLFxuICBcIkFzeW1wdG90aWNPdXRwdXRUcmFja2VyXCIsXG4gIFwiQXN5bXB0b3RpY1Byb2JhYmlsaXR5XCIsXG4gIFwiQXN5bXB0b3RpY1Byb2R1Y3RcIixcbiAgXCJBc3ltcHRvdGljUlNvbHZlVmFsdWVcIixcbiAgXCJBc3ltcHRvdGljU29sdmVcIixcbiAgXCJBc3ltcHRvdGljU3VtXCIsXG4gIFwiQXN5bmNocm9ub3VzXCIsXG4gIFwiQXN5bmNocm9ub3VzVGFza09iamVjdFwiLFxuICBcIkFzeW5jaHJvbm91c1Rhc2tzXCIsXG4gIFwiQXRvbVwiLFxuICBcIkF0b21Db29yZGluYXRlc1wiLFxuICBcIkF0b21Db3VudFwiLFxuICBcIkF0b21EaWFncmFtQ29vcmRpbmF0ZXNcIixcbiAgXCJBdG9tTGFiZWxzXCIsXG4gIFwiQXRvbUxhYmVsU3R5bGVcIixcbiAgXCJBdG9tTGlzdFwiLFxuICBcIkF0b21RXCIsXG4gIFwiQXR0YWNoQ2VsbFwiLFxuICBcIkF0dGFjaGVkQ2VsbFwiLFxuICBcIkF0dGVudGlvbkxheWVyXCIsXG4gIFwiQXR0cmlidXRlc1wiLFxuICBcIkF1ZGlvXCIsXG4gIFwiQXVkaW9BbXBsaWZ5XCIsXG4gIFwiQXVkaW9Bbm5vdGF0ZVwiLFxuICBcIkF1ZGlvQW5ub3RhdGlvbkxvb2t1cFwiLFxuICBcIkF1ZGlvQmxvY2tNYXBcIixcbiAgXCJBdWRpb0NhcHR1cmVcIixcbiAgXCJBdWRpb0NoYW5uZWxBc3NpZ25tZW50XCIsXG4gIFwiQXVkaW9DaGFubmVsQ29tYmluZVwiLFxuICBcIkF1ZGlvQ2hhbm5lbE1peFwiLFxuICBcIkF1ZGlvQ2hhbm5lbHNcIixcbiAgXCJBdWRpb0NoYW5uZWxTZXBhcmF0ZVwiLFxuICBcIkF1ZGlvRGF0YVwiLFxuICBcIkF1ZGlvRGVsYXlcIixcbiAgXCJBdWRpb0RlbGV0ZVwiLFxuICBcIkF1ZGlvRGV2aWNlXCIsXG4gIFwiQXVkaW9EaXN0YW5jZVwiLFxuICBcIkF1ZGlvRW5jb2RpbmdcIixcbiAgXCJBdWRpb0ZhZGVcIixcbiAgXCJBdWRpb0ZyZXF1ZW5jeVNoaWZ0XCIsXG4gIFwiQXVkaW9HZW5lcmF0b3JcIixcbiAgXCJBdWRpb0lkZW50aWZ5XCIsXG4gIFwiQXVkaW9JbnB1dERldmljZVwiLFxuICBcIkF1ZGlvSW5zZXJ0XCIsXG4gIFwiQXVkaW9JbnN0YW5jZVFcIixcbiAgXCJBdWRpb0ludGVydmFsc1wiLFxuICBcIkF1ZGlvSm9pblwiLFxuICBcIkF1ZGlvTGFiZWxcIixcbiAgXCJBdWRpb0xlbmd0aFwiLFxuICBcIkF1ZGlvTG9jYWxNZWFzdXJlbWVudHNcIixcbiAgXCJBdWRpb0xvb3BpbmdcIixcbiAgXCJBdWRpb0xvdWRuZXNzXCIsXG4gIFwiQXVkaW9NZWFzdXJlbWVudHNcIixcbiAgXCJBdWRpb05vcm1hbGl6ZVwiLFxuICBcIkF1ZGlvT3V0cHV0RGV2aWNlXCIsXG4gIFwiQXVkaW9PdmVybGF5XCIsXG4gIFwiQXVkaW9QYWRcIixcbiAgXCJBdWRpb1BhblwiLFxuICBcIkF1ZGlvUGFydGl0aW9uXCIsXG4gIFwiQXVkaW9QYXVzZVwiLFxuICBcIkF1ZGlvUGl0Y2hTaGlmdFwiLFxuICBcIkF1ZGlvUGxheVwiLFxuICBcIkF1ZGlvUGxvdFwiLFxuICBcIkF1ZGlvUVwiLFxuICBcIkF1ZGlvUmVjb3JkXCIsXG4gIFwiQXVkaW9SZXBsYWNlXCIsXG4gIFwiQXVkaW9SZXNhbXBsZVwiLFxuICBcIkF1ZGlvUmV2ZXJiXCIsXG4gIFwiQXVkaW9SZXZlcnNlXCIsXG4gIFwiQXVkaW9TYW1wbGVSYXRlXCIsXG4gIFwiQXVkaW9TcGVjdHJhbE1hcFwiLFxuICBcIkF1ZGlvU3BlY3RyYWxUcmFuc2Zvcm1hdGlvblwiLFxuICBcIkF1ZGlvU3BsaXRcIixcbiAgXCJBdWRpb1N0b3BcIixcbiAgXCJBdWRpb1N0cmVhbVwiLFxuICBcIkF1ZGlvU3RyZWFtc1wiLFxuICBcIkF1ZGlvVGltZVN0cmV0Y2hcIixcbiAgXCJBdWRpb1RyYWNrQXBwbHlcIixcbiAgXCJBdWRpb1RyYWNrU2VsZWN0aW9uXCIsXG4gIFwiQXVkaW9UcmltXCIsXG4gIFwiQXVkaW9UeXBlXCIsXG4gIFwiQXVnbWVudGVkUG9seWhlZHJvblwiLFxuICBcIkF1Z21lbnRlZFN5bW1ldHJpY1BvbHlub21pYWxcIixcbiAgXCJBdXRoZW50aWNhdGVcIixcbiAgXCJBdXRoZW50aWNhdGlvblwiLFxuICBcIkF1dGhlbnRpY2F0aW9uRGlhbG9nXCIsXG4gIFwiQXV0b0FjdGlvblwiLFxuICBcIkF1dG9jb21wbGV0ZVwiLFxuICBcIkF1dG9jb21wbGV0aW9uRnVuY3Rpb25cIixcbiAgXCJBdXRvQ29weVwiLFxuICBcIkF1dG9jb3JyZWxhdGlvblRlc3RcIixcbiAgXCJBdXRvRGVsZXRlXCIsXG4gIFwiQXV0b0V2YWx1YXRlRXZlbnRzXCIsXG4gIFwiQXV0b0dlbmVyYXRlZFBhY2thZ2VcIixcbiAgXCJBdXRvSW5kZW50XCIsXG4gIFwiQXV0b0luZGVudFNwYWNpbmdzXCIsXG4gIFwiQXV0b0l0YWxpY1dvcmRzXCIsXG4gIFwiQXV0b2xvYWRQYXRoXCIsXG4gIFwiQXV0b01hdGNoXCIsXG4gIFwiQXV0b21hdGljXCIsXG4gIFwiQXV0b21hdGljSW1hZ2VTaXplXCIsXG4gIFwiQXV0b011bHRpcGxpY2F0aW9uU3ltYm9sXCIsXG4gIFwiQXV0b051bWJlckZvcm1hdHRpbmdcIixcbiAgXCJBdXRvT3Blbk5vdGVib29rc1wiLFxuICBcIkF1dG9PcGVuUGFsZXR0ZXNcIixcbiAgXCJBdXRvT3BlcmF0b3JSZW5kZXJpbmdzXCIsXG4gIFwiQXV0b1F1b3RlQ2hhcmFjdGVyc1wiLFxuICBcIkF1dG9SZWZyZXNoZWRcIixcbiAgXCJBdXRvUmVtb3ZlXCIsXG4gIFwiQXV0b3J1blNlcXVlbmNpbmdcIixcbiAgXCJBdXRvU2NhbGluZ1wiLFxuICBcIkF1dG9TY3JvbGxcIixcbiAgXCJBdXRvU3BhY2luZ1wiLFxuICBcIkF1dG9TdHlsZU9wdGlvbnNcIixcbiAgXCJBdXRvU3R5bGVXb3Jkc1wiLFxuICBcIkF1dG9TdWJtaXR0aW5nXCIsXG4gIFwiQXhlc1wiLFxuICBcIkF4ZXNFZGdlXCIsXG4gIFwiQXhlc0xhYmVsXCIsXG4gIFwiQXhlc09yaWdpblwiLFxuICBcIkF4ZXNTdHlsZVwiLFxuICBcIkF4aW9tYXRpY1RoZW9yeVwiLFxuICBcIkF4aXNcIixcbiAgXCJBeGlzM0RCb3hcIixcbiAgXCJBeGlzM0RCb3hPcHRpb25zXCIsXG4gIFwiQXhpc0JveFwiLFxuICBcIkF4aXNCb3hPcHRpb25zXCIsXG4gIFwiQXhpc0xhYmVsXCIsXG4gIFwiQXhpc09iamVjdFwiLFxuICBcIkF4aXNTdHlsZVwiLFxuICBcIkJhYnlNb25zdGVyR3JvdXBCXCIsXG4gIFwiQmFja1wiLFxuICBcIkJhY2tGYWNlQ29sb3JcIixcbiAgXCJCYWNrRmFjZUdsb3dDb2xvclwiLFxuICBcIkJhY2tGYWNlT3BhY2l0eVwiLFxuICBcIkJhY2tGYWNlU3BlY3VsYXJDb2xvclwiLFxuICBcIkJhY2tGYWNlU3BlY3VsYXJFeHBvbmVudFwiLFxuICBcIkJhY2tGYWNlU3VyZmFjZUFwcGVhcmFuY2VcIixcbiAgXCJCYWNrRmFjZVRleHR1cmVcIixcbiAgXCJCYWNrZ3JvdW5kXCIsXG4gIFwiQmFja2dyb3VuZEFwcGVhcmFuY2VcIixcbiAgXCJCYWNrZ3JvdW5kVGFza3NTZXR0aW5nc1wiLFxuICBcIkJhY2tzbGFzaFwiLFxuICBcIkJhY2tzdWJzdGl0dXRpb25cIixcbiAgXCJCYWNrd2FyZFwiLFxuICBcIkJhbGxcIixcbiAgXCJCYW5kXCIsXG4gIFwiQmFuZHBhc3NGaWx0ZXJcIixcbiAgXCJCYW5kc3RvcEZpbHRlclwiLFxuICBcIkJhcmFiYXNpQWxiZXJ0R3JhcGhEaXN0cmlidXRpb25cIixcbiAgXCJCYXJDaGFydFwiLFxuICBcIkJhckNoYXJ0M0RcIixcbiAgXCJCYXJjb2RlSW1hZ2VcIixcbiAgXCJCYXJjb2RlUmVjb2duaXplXCIsXG4gIFwiQmFyaW5naGF1c0hlbnplVGVzdFwiLFxuICBcIkJhckxlZ2VuZFwiLFxuICBcIkJhcmxvd1Byb3NjaGFuSW1wb3J0YW5jZVwiLFxuICBcIkJhcm5lc0dcIixcbiAgXCJCYXJPcmlnaW5cIixcbiAgXCJCYXJTcGFjaW5nXCIsXG4gIFwiQmFydGxldHRIYW5uV2luZG93XCIsXG4gIFwiQmFydGxldHRXaW5kb3dcIixcbiAgXCJCYXNlRGVjb2RlXCIsXG4gIFwiQmFzZUVuY29kZVwiLFxuICBcIkJhc2VGb3JtXCIsXG4gIFwiQmFzZWxpbmVcIixcbiAgXCJCYXNlbGluZVBvc2l0aW9uXCIsXG4gIFwiQmFzZVN0eWxlXCIsXG4gIFwiQmFzaWNSZWN1cnJlbnRMYXllclwiLFxuICBcIkJhdGNoTm9ybWFsaXphdGlvbkxheWVyXCIsXG4gIFwiQmF0Y2hTaXplXCIsXG4gIFwiQmF0ZXNEaXN0cmlidXRpb25cIixcbiAgXCJCYXR0bGVMZW1hcmllV2F2ZWxldFwiLFxuICBcIkJheWVzaWFuTWF4aW1pemF0aW9uXCIsXG4gIFwiQmF5ZXNpYW5NYXhpbWl6YXRpb25PYmplY3RcIixcbiAgXCJCYXllc2lhbk1pbmltaXphdGlvblwiLFxuICBcIkJheWVzaWFuTWluaW1pemF0aW9uT2JqZWN0XCIsXG4gIFwiQmVjYXVzZVwiLFxuICBcIkJlY2ttYW5uRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVlcFwiLFxuICBcIkJlZm9yZVwiLFxuICBcIkJlZ2luXCIsXG4gIFwiQmVnaW5EaWFsb2dQYWNrZXRcIixcbiAgXCJCZWdpblBhY2thZ2VcIixcbiAgXCJCZWxsQlwiLFxuICBcIkJlbGxZXCIsXG4gIFwiQmVsb3dcIixcbiAgXCJCZW5mb3JkRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVuaW5pRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVua3RhbmRlckdpYnJhdERpc3RyaWJ1dGlvblwiLFxuICBcIkJlbmt0YW5kZXJXZWlidWxsRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVybm91bGxpQlwiLFxuICBcIkJlcm5vdWxsaURpc3RyaWJ1dGlvblwiLFxuICBcIkJlcm5vdWxsaUdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVybm91bGxpUHJvY2Vzc1wiLFxuICBcIkJlcm5zdGVpbkJhc2lzXCIsXG4gIFwiQmVzYWdMXCIsXG4gIFwiQmVzc2VsRmlsdGVyTW9kZWxcIixcbiAgXCJCZXNzZWxJXCIsXG4gIFwiQmVzc2VsSlwiLFxuICBcIkJlc3NlbEpaZXJvXCIsXG4gIFwiQmVzc2VsS1wiLFxuICBcIkJlc3NlbFlcIixcbiAgXCJCZXNzZWxZWmVyb1wiLFxuICBcIkJldGFcIixcbiAgXCJCZXRhQmlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJCZXRhRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmV0YU5lZ2F0aXZlQmlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJCZXRhUHJpbWVEaXN0cmlidXRpb25cIixcbiAgXCJCZXRhUmVndWxhcml6ZWRcIixcbiAgXCJCZXR3ZWVuXCIsXG4gIFwiQmV0d2Vlbm5lc3NDZW50cmFsaXR5XCIsXG4gIFwiQmV2ZWxlZFwiLFxuICBcIkJldmVsZWRQb2x5aGVkcm9uXCIsXG4gIFwiQmV6aWVyQ3VydmVcIixcbiAgXCJCZXppZXJDdXJ2ZTNEQm94XCIsXG4gIFwiQmV6aWVyQ3VydmUzREJveE9wdGlvbnNcIixcbiAgXCJCZXppZXJDdXJ2ZUJveFwiLFxuICBcIkJlemllckN1cnZlQm94T3B0aW9uc1wiLFxuICBcIkJlemllckZ1bmN0aW9uXCIsXG4gIFwiQmlsYXRlcmFsRmlsdGVyXCIsXG4gIFwiQmlsYXRlcmFsTGFwbGFjZVRyYW5zZm9ybVwiLFxuICBcIkJpbGF0ZXJhbFpUcmFuc2Zvcm1cIixcbiAgXCJCaW5hcml6ZVwiLFxuICBcIkJpbmFyeURlc2VyaWFsaXplXCIsXG4gIFwiQmluYXJ5RGlzdGFuY2VcIixcbiAgXCJCaW5hcnlGb3JtYXRcIixcbiAgXCJCaW5hcnlJbWFnZVFcIixcbiAgXCJCaW5hcnlSZWFkXCIsXG4gIFwiQmluYXJ5UmVhZExpc3RcIixcbiAgXCJCaW5hcnlTZXJpYWxpemVcIixcbiAgXCJCaW5hcnlXcml0ZVwiLFxuICBcIkJpbkNvdW50c1wiLFxuICBcIkJpbkxpc3RzXCIsXG4gIFwiQmlubmVkVmFyaW9ncmFtTGlzdFwiLFxuICBcIkJpbm9taWFsXCIsXG4gIFwiQmlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJCaW5vbWlhbFBvaW50UHJvY2Vzc1wiLFxuICBcIkJpbm9taWFsUHJvY2Vzc1wiLFxuICBcIkJpbm9ybWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmlvcnRob2dvbmFsU3BsaW5lV2F2ZWxldFwiLFxuICBcIkJpb1NlcXVlbmNlXCIsXG4gIFwiQmlvU2VxdWVuY2VCYWNrVHJhbnNsYXRlTGlzdFwiLFxuICBcIkJpb1NlcXVlbmNlQ29tcGxlbWVudFwiLFxuICBcIkJpb1NlcXVlbmNlSW5zdGFuY2VzXCIsXG4gIFwiQmlvU2VxdWVuY2VNb2RpZnlcIixcbiAgXCJCaW9TZXF1ZW5jZVBsb3RcIixcbiAgXCJCaW9TZXF1ZW5jZVFcIixcbiAgXCJCaW9TZXF1ZW5jZVJldmVyc2VDb21wbGVtZW50XCIsXG4gIFwiQmlvU2VxdWVuY2VUcmFuc2NyaWJlXCIsXG4gIFwiQmlvU2VxdWVuY2VUcmFuc2xhdGVcIixcbiAgXCJCaXBhcnRpdGVHcmFwaFFcIixcbiAgXCJCaXF1YWRyYXRpY0ZpbHRlck1vZGVsXCIsXG4gIFwiQmlybmJhdW1JbXBvcnRhbmNlXCIsXG4gIFwiQmlybmJhdW1TYXVuZGVyc0Rpc3RyaWJ1dGlvblwiLFxuICBcIkJpdEFuZFwiLFxuICBcIkJpdENsZWFyXCIsXG4gIFwiQml0R2V0XCIsXG4gIFwiQml0TGVuZ3RoXCIsXG4gIFwiQml0Tm90XCIsXG4gIFwiQml0T3JcIixcbiAgXCJCaXRSYXRlXCIsXG4gIFwiQml0U2V0XCIsXG4gIFwiQml0U2hpZnRMZWZ0XCIsXG4gIFwiQml0U2hpZnRSaWdodFwiLFxuICBcIkJpdFhvclwiLFxuICBcIkJpd2VpZ2h0TG9jYXRpb25cIixcbiAgXCJCaXdlaWdodE1pZHZhcmlhbmNlXCIsXG4gIFwiQmxhY2tcIixcbiAgXCJCbGFja21hbkhhcnJpc1dpbmRvd1wiLFxuICBcIkJsYWNrbWFuTnV0dGFsbFdpbmRvd1wiLFxuICBcIkJsYWNrbWFuV2luZG93XCIsXG4gIFwiQmxhbmtcIixcbiAgXCJCbGFua0Zvcm1cIixcbiAgXCJCbGFua051bGxTZXF1ZW5jZVwiLFxuICBcIkJsYW5rU2VxdWVuY2VcIixcbiAgXCJCbGVuZFwiLFxuICBcIkJsb2NrXCIsXG4gIFwiQmxvY2tjaGFpbkFkZHJlc3NEYXRhXCIsXG4gIFwiQmxvY2tjaGFpbkJhc2VcIixcbiAgXCJCbG9ja2NoYWluQmxvY2tEYXRhXCIsXG4gIFwiQmxvY2tjaGFpbkNvbnRyYWN0VmFsdWVcIixcbiAgXCJCbG9ja2NoYWluRGF0YVwiLFxuICBcIkJsb2NrY2hhaW5HZXRcIixcbiAgXCJCbG9ja2NoYWluS2V5RW5jb2RlXCIsXG4gIFwiQmxvY2tjaGFpblB1dFwiLFxuICBcIkJsb2NrY2hhaW5Ub2tlbkRhdGFcIixcbiAgXCJCbG9ja2NoYWluVHJhbnNhY3Rpb25cIixcbiAgXCJCbG9ja2NoYWluVHJhbnNhY3Rpb25EYXRhXCIsXG4gIFwiQmxvY2tjaGFpblRyYW5zYWN0aW9uU2lnblwiLFxuICBcIkJsb2NrY2hhaW5UcmFuc2FjdGlvblN1Ym1pdFwiLFxuICBcIkJsb2NrRGlhZ29uYWxNYXRyaXhcIixcbiAgXCJCbG9ja0xvd2VyVHJpYW5ndWxhck1hdHJpeFwiLFxuICBcIkJsb2NrTWFwXCIsXG4gIFwiQmxvY2tSYW5kb21cIixcbiAgXCJCbG9ja1VwcGVyVHJpYW5ndWxhck1hdHJpeFwiLFxuICBcIkJsb21xdmlzdEJldGFcIixcbiAgXCJCbG9tcXZpc3RCZXRhVGVzdFwiLFxuICBcIkJsdWVcIixcbiAgXCJCbHVyXCIsXG4gIFwiQmx1cnJpbmdcIixcbiAgXCJCb2RlUGxvdFwiLFxuICBcIkJvaG1hbldpbmRvd1wiLFxuICBcIkJvbGRcIixcbiAgXCJCb25kXCIsXG4gIFwiQm9uZENvdW50XCIsXG4gIFwiQm9uZExhYmVsc1wiLFxuICBcIkJvbmRMYWJlbFN0eWxlXCIsXG4gIFwiQm9uZExpc3RcIixcbiAgXCJCb25kUVwiLFxuICBcIkJvb2ttYXJrc1wiLFxuICBcIkJvb2xlXCIsXG4gIFwiQm9vbGVhbkNvbnNlY3V0aXZlRnVuY3Rpb25cIixcbiAgXCJCb29sZWFuQ29udmVydFwiLFxuICBcIkJvb2xlYW5Db3VudGluZ0Z1bmN0aW9uXCIsXG4gIFwiQm9vbGVhbkZ1bmN0aW9uXCIsXG4gIFwiQm9vbGVhbkdyYXBoXCIsXG4gIFwiQm9vbGVhbk1heHRlcm1zXCIsXG4gIFwiQm9vbGVhbk1pbmltaXplXCIsXG4gIFwiQm9vbGVhbk1pbnRlcm1zXCIsXG4gIFwiQm9vbGVhblFcIixcbiAgXCJCb29sZWFuUmVnaW9uXCIsXG4gIFwiQm9vbGVhbnNcIixcbiAgXCJCb29sZWFuU3RyaW5nc1wiLFxuICBcIkJvb2xlYW5UYWJsZVwiLFxuICBcIkJvb2xlYW5WYXJpYWJsZXNcIixcbiAgXCJCb3JkZXJEaW1lbnNpb25zXCIsXG4gIFwiQm9yZWxUYW5uZXJEaXN0cmlidXRpb25cIixcbiAgXCJCb3R0b21cIixcbiAgXCJCb3R0b21IYXRUcmFuc2Zvcm1cIixcbiAgXCJCb3VuZGFyeURpc2NyZXRpemVHcmFwaGljc1wiLFxuICBcIkJvdW5kYXJ5RGlzY3JldGl6ZVJlZ2lvblwiLFxuICBcIkJvdW5kYXJ5TWVzaFwiLFxuICBcIkJvdW5kYXJ5TWVzaFJlZ2lvblwiLFxuICBcIkJvdW5kYXJ5TWVzaFJlZ2lvblFcIixcbiAgXCJCb3VuZGFyeVN0eWxlXCIsXG4gIFwiQm91bmRlZFJlZ2lvblFcIixcbiAgXCJCb3VuZGluZ1JlZ2lvblwiLFxuICBcIkJvdW5kc1wiLFxuICBcIkJveFwiLFxuICBcIkJveEJhc2VsaW5lU2hpZnRcIixcbiAgXCJCb3hEYXRhXCIsXG4gIFwiQm94RGltZW5zaW9uc1wiLFxuICBcIkJveGVkXCIsXG4gIFwiQm94ZXNcIixcbiAgXCJCb3hGb3JtXCIsXG4gIFwiQm94Rm9ybUZvcm1hdFR5cGVzXCIsXG4gIFwiQm94RnJhbWVcIixcbiAgXCJCb3hJRFwiLFxuICBcIkJveE1hcmdpbnNcIixcbiAgXCJCb3hNYXRyaXhcIixcbiAgXCJCb3hPYmplY3RcIixcbiAgXCJCb3hSYXRpb3NcIixcbiAgXCJCb3hSb3RhdGlvblwiLFxuICBcIkJveFJvdGF0aW9uUG9pbnRcIixcbiAgXCJCb3hTdHlsZVwiLFxuICBcIkJveFdoaXNrZXJDaGFydFwiLFxuICBcIkJyYVwiLFxuICBcIkJyYWNrZXRpbmdCYXJcIixcbiAgXCJCcmFLZXRcIixcbiAgXCJCcmF5Q3VydGlzRGlzdGFuY2VcIixcbiAgXCJCcmVhZHRoRmlyc3RTY2FuXCIsXG4gIFwiQnJlYWtcIixcbiAgXCJCcmlkZ2VEYXRhXCIsXG4gIFwiQnJpZ2h0bmVzc0VxdWFsaXplXCIsXG4gIFwiQnJvYWRjYXN0U3RhdGlvbkRhdGFcIixcbiAgXCJCcm93blwiLFxuICBcIkJyb3duRm9yc3l0aGVUZXN0XCIsXG4gIFwiQnJvd25pYW5CcmlkZ2VQcm9jZXNzXCIsXG4gIFwiQnJvd3NlckNhdGVnb3J5XCIsXG4gIFwiQlNwbGluZUJhc2lzXCIsXG4gIFwiQlNwbGluZUN1cnZlXCIsXG4gIFwiQlNwbGluZUN1cnZlM0RCb3hcIixcbiAgXCJCU3BsaW5lQ3VydmUzREJveE9wdGlvbnNcIixcbiAgXCJCU3BsaW5lQ3VydmVCb3hcIixcbiAgXCJCU3BsaW5lQ3VydmVCb3hPcHRpb25zXCIsXG4gIFwiQlNwbGluZUZ1bmN0aW9uXCIsXG4gIFwiQlNwbGluZVN1cmZhY2VcIixcbiAgXCJCU3BsaW5lU3VyZmFjZTNEQm94XCIsXG4gIFwiQlNwbGluZVN1cmZhY2UzREJveE9wdGlvbnNcIixcbiAgXCJCdWJibGVDaGFydFwiLFxuICBcIkJ1YmJsZUNoYXJ0M0RcIixcbiAgXCJCdWJibGVTY2FsZVwiLFxuICBcIkJ1YmJsZVNpemVzXCIsXG4gIFwiQnVja3liYWxsR3JhcGhcIixcbiAgXCJCdWlsZENvbXBpbGVkQ29tcG9uZW50XCIsXG4gIFwiQnVpbGRpbmdEYXRhXCIsXG4gIFwiQnVsbGV0R2F1Z2VcIixcbiAgXCJCdXNpbmVzc0RheVFcIixcbiAgXCJCdXR0ZXJmbHlHcmFwaFwiLFxuICBcIkJ1dHRlcndvcnRoRmlsdGVyTW9kZWxcIixcbiAgXCJCdXR0b25cIixcbiAgXCJCdXR0b25CYXJcIixcbiAgXCJCdXR0b25Cb3hcIixcbiAgXCJCdXR0b25Cb3hPcHRpb25zXCIsXG4gIFwiQnV0dG9uQ2VsbFwiLFxuICBcIkJ1dHRvbkNvbnRlbnRzXCIsXG4gIFwiQnV0dG9uRGF0YVwiLFxuICBcIkJ1dHRvbkV2YWx1YXRvclwiLFxuICBcIkJ1dHRvbkV4cGFuZGFibGVcIixcbiAgXCJCdXR0b25GcmFtZVwiLFxuICBcIkJ1dHRvbkZ1bmN0aW9uXCIsXG4gIFwiQnV0dG9uTWFyZ2luc1wiLFxuICBcIkJ1dHRvbk1pbkhlaWdodFwiLFxuICBcIkJ1dHRvbk5vdGVcIixcbiAgXCJCdXR0b25Ob3RlYm9va1wiLFxuICBcIkJ1dHRvblNvdXJjZVwiLFxuICBcIkJ1dHRvblN0eWxlXCIsXG4gIFwiQnV0dG9uU3R5bGVNZW51TGlzdGluZ1wiLFxuICBcIkJ5dGVcIixcbiAgXCJCeXRlQXJyYXlcIixcbiAgXCJCeXRlQXJyYXlGb3JtYXRcIixcbiAgXCJCeXRlQXJyYXlGb3JtYXRRXCIsXG4gIFwiQnl0ZUFycmF5UVwiLFxuICBcIkJ5dGVBcnJheVRvU3RyaW5nXCIsXG4gIFwiQnl0ZUNvdW50XCIsXG4gIFwiQnl0ZU9yZGVyaW5nXCIsXG4gIFwiQ1wiLFxuICBcIkNhY2hlZFZhbHVlXCIsXG4gIFwiQ2FjaGVHcmFwaGljc1wiLFxuICBcIkNhY2hlUGVyc2lzdGVuY2VcIixcbiAgXCJDYWxlbmRhckNvbnZlcnRcIixcbiAgXCJDYWxlbmRhckRhdGFcIixcbiAgXCJDYWxlbmRhclR5cGVcIixcbiAgXCJDYWxsb3V0XCIsXG4gIFwiQ2FsbG91dE1hcmtlclwiLFxuICBcIkNhbGxvdXRTdHlsZVwiLFxuICBcIkNhbGxQYWNrZXRcIixcbiAgXCJDYW5iZXJyYURpc3RhbmNlXCIsXG4gIFwiQ2FuY2VsXCIsXG4gIFwiQ2FuY2VsQnV0dG9uXCIsXG4gIFwiQ2FuZGxlc3RpY2tDaGFydFwiLFxuICBcIkNhbm9uaWNhbEdyYXBoXCIsXG4gIFwiQ2Fub25pY2FsaXplUG9seWdvblwiLFxuICBcIkNhbm9uaWNhbGl6ZVBvbHloZWRyb25cIixcbiAgXCJDYW5vbmljYWxpemVSZWdpb25cIixcbiAgXCJDYW5vbmljYWxOYW1lXCIsXG4gIFwiQ2Fub25pY2FsV2FycGluZ0NvcnJlc3BvbmRlbmNlXCIsXG4gIFwiQ2Fub25pY2FsV2FycGluZ0Rpc3RhbmNlXCIsXG4gIFwiQ2FudG9yTWVzaFwiLFxuICBcIkNhbnRvclN0YWlyY2FzZVwiLFxuICBcIkNhbnZhc1wiLFxuICBcIkNhcFwiLFxuICBcIkNhcEZvcm1cIixcbiAgXCJDYXBpdGFsRGlmZmVyZW50aWFsRFwiLFxuICBcIkNhcGl0YWxpemVcIixcbiAgXCJDYXBzdWxlU2hhcGVcIixcbiAgXCJDYXB0dXJlUnVubmluZ1wiLFxuICBcIkNhcHV0b0RcIixcbiAgXCJDYXJkaW5hbEJTcGxpbmVCYXNpc1wiLFxuICBcIkNhcmxlbWFuTGluZWFyaXplXCIsXG4gIFwiQ2FybHNvblJDXCIsXG4gIFwiQ2FybHNvblJEXCIsXG4gIFwiQ2FybHNvblJFXCIsXG4gIFwiQ2FybHNvblJGXCIsXG4gIFwiQ2FybHNvblJHXCIsXG4gIFwiQ2FybHNvblJKXCIsXG4gIFwiQ2FybHNvblJLXCIsXG4gIFwiQ2FybHNvblJNXCIsXG4gIFwiQ2FybWljaGFlbExhbWJkYVwiLFxuICBcIkNhc2VPcmRlcmluZ1wiLFxuICBcIkNhc2VzXCIsXG4gIFwiQ2FzZVNlbnNpdGl2ZVwiLFxuICBcIkNhc2hmbG93XCIsXG4gIFwiQ2Fzb3JhdGlhblwiLFxuICBcIkNhc3RcIixcbiAgXCJDYXRhbGFuXCIsXG4gIFwiQ2F0YWxhbk51bWJlclwiLFxuICBcIkNhdGNoXCIsXG4gIFwiQ2F0ZWdvcmljYWxEaXN0cmlidXRpb25cIixcbiAgXCJDYXRlbmF0ZVwiLFxuICBcIkNhdGVuYXRlTGF5ZXJcIixcbiAgXCJDYXVjaHlEaXN0cmlidXRpb25cIixcbiAgXCJDYXVjaHlNYXRyaXhcIixcbiAgXCJDYXVjaHlQb2ludFByb2Nlc3NcIixcbiAgXCJDYXVjaHlXaW5kb3dcIixcbiAgXCJDYXlsZXlHcmFwaFwiLFxuICBcIkNERlwiLFxuICBcIkNERkRlcGxveVwiLFxuICBcIkNERkluZm9ybWF0aW9uXCIsXG4gIFwiQ0RGV2F2ZWxldFwiLFxuICBcIkNlaWxpbmdcIixcbiAgXCJDZWxlc3RpYWxTeXN0ZW1cIixcbiAgXCJDZWxsXCIsXG4gIFwiQ2VsbEF1dG9PdmVyd3JpdGVcIixcbiAgXCJDZWxsQmFzZWxpbmVcIixcbiAgXCJDZWxsQm91bmRpbmdCb3hcIixcbiAgXCJDZWxsQnJhY2tldE9wdGlvbnNcIixcbiAgXCJDZWxsQ2hhbmdlVGltZXNcIixcbiAgXCJDZWxsQ29udGVudHNcIixcbiAgXCJDZWxsQ29udGV4dFwiLFxuICBcIkNlbGxEaW5nYmF0XCIsXG4gIFwiQ2VsbERpbmdiYXRNYXJnaW5cIixcbiAgXCJDZWxsRHluYW1pY0V4cHJlc3Npb25cIixcbiAgXCJDZWxsRWRpdER1cGxpY2F0ZVwiLFxuICBcIkNlbGxFbGVtZW50c0JvdW5kaW5nQm94XCIsXG4gIFwiQ2VsbEVsZW1lbnRTcGFjaW5nc1wiLFxuICBcIkNlbGxFcGlsb2dcIixcbiAgXCJDZWxsRXZhbHVhdGlvbkR1cGxpY2F0ZVwiLFxuICBcIkNlbGxFdmFsdWF0aW9uRnVuY3Rpb25cIixcbiAgXCJDZWxsRXZhbHVhdGlvbkxhbmd1YWdlXCIsXG4gIFwiQ2VsbEV2ZW50QWN0aW9uc1wiLFxuICBcIkNlbGxGcmFtZVwiLFxuICBcIkNlbGxGcmFtZUNvbG9yXCIsXG4gIFwiQ2VsbEZyYW1lTGFiZWxNYXJnaW5zXCIsXG4gIFwiQ2VsbEZyYW1lTGFiZWxzXCIsXG4gIFwiQ2VsbEZyYW1lTWFyZ2luc1wiLFxuICBcIkNlbGxGcmFtZVN0eWxlXCIsXG4gIFwiQ2VsbEdyb3VwXCIsXG4gIFwiQ2VsbEdyb3VwRGF0YVwiLFxuICBcIkNlbGxHcm91cGluZ1wiLFxuICBcIkNlbGxHcm91cGluZ1J1bGVzXCIsXG4gIFwiQ2VsbEhvcml6b250YWxTY3JvbGxpbmdcIixcbiAgXCJDZWxsSURcIixcbiAgXCJDZWxsSW5zZXJ0aW9uUG9pbnRDZWxsXCIsXG4gIFwiQ2VsbExhYmVsXCIsXG4gIFwiQ2VsbExhYmVsQXV0b0RlbGV0ZVwiLFxuICBcIkNlbGxMYWJlbE1hcmdpbnNcIixcbiAgXCJDZWxsTGFiZWxQb3NpdGlvbmluZ1wiLFxuICBcIkNlbGxMYWJlbFN0eWxlXCIsXG4gIFwiQ2VsbExhYmVsVGVtcGxhdGVcIixcbiAgXCJDZWxsTWFyZ2luc1wiLFxuICBcIkNlbGxPYmplY3RcIixcbiAgXCJDZWxsT3BlblwiLFxuICBcIkNlbGxQcmludFwiLFxuICBcIkNlbGxQcm9sb2dcIixcbiAgXCJDZWxsc1wiLFxuICBcIkNlbGxTaXplXCIsXG4gIFwiQ2VsbFN0eWxlXCIsXG4gIFwiQ2VsbFRhZ3NcIixcbiAgXCJDZWxsVHJheVBvc2l0aW9uXCIsXG4gIFwiQ2VsbFRyYXlXaWRnZXRzXCIsXG4gIFwiQ2VsbHVsYXJBdXRvbWF0b25cIixcbiAgXCJDZW5zb3JlZERpc3RyaWJ1dGlvblwiLFxuICBcIkNlbnNvcmluZ1wiLFxuICBcIkNlbnRlclwiLFxuICBcIkNlbnRlckFycmF5XCIsXG4gIFwiQ2VudGVyRG90XCIsXG4gIFwiQ2VudGVyZWRJbnRlcnZhbFwiLFxuICBcIkNlbnRyYWxGZWF0dXJlXCIsXG4gIFwiQ2VudHJhbE1vbWVudFwiLFxuICBcIkNlbnRyYWxNb21lbnRHZW5lcmF0aW5nRnVuY3Rpb25cIixcbiAgXCJDZXBzdHJvZ3JhbVwiLFxuICBcIkNlcHN0cm9ncmFtQXJyYXlcIixcbiAgXCJDZXBzdHJ1bUFycmF5XCIsXG4gIFwiQ0Zvcm1cIixcbiAgXCJDaGFtcGVybm93bmVOdW1iZXJcIixcbiAgXCJDaGFuZ2VPcHRpb25zXCIsXG4gIFwiQ2hhbm5lbEJhc2VcIixcbiAgXCJDaGFubmVsQnJva2VyQWN0aW9uXCIsXG4gIFwiQ2hhbm5lbERhdGFiaW5cIixcbiAgXCJDaGFubmVsSGlzdG9yeUxlbmd0aFwiLFxuICBcIkNoYW5uZWxMaXN0ZW5cIixcbiAgXCJDaGFubmVsTGlzdGVuZXJcIixcbiAgXCJDaGFubmVsTGlzdGVuZXJzXCIsXG4gIFwiQ2hhbm5lbExpc3RlbmVyV2FpdFwiLFxuICBcIkNoYW5uZWxPYmplY3RcIixcbiAgXCJDaGFubmVsUHJlU2VuZEZ1bmN0aW9uXCIsXG4gIFwiQ2hhbm5lbFJlY2VpdmVyRnVuY3Rpb25cIixcbiAgXCJDaGFubmVsU2VuZFwiLFxuICBcIkNoYW5uZWxTdWJzY3JpYmVyc1wiLFxuICBcIkNoYW5WZXNlQmluYXJpemVcIixcbiAgXCJDaGFyYWN0ZXJcIixcbiAgXCJDaGFyYWN0ZXJDb3VudHNcIixcbiAgXCJDaGFyYWN0ZXJFbmNvZGluZ1wiLFxuICBcIkNoYXJhY3RlckVuY29kaW5nc1BhdGhcIixcbiAgXCJDaGFyYWN0ZXJpc3RpY0Z1bmN0aW9uXCIsXG4gIFwiQ2hhcmFjdGVyaXN0aWNQb2x5bm9taWFsXCIsXG4gIFwiQ2hhcmFjdGVyTmFtZVwiLFxuICBcIkNoYXJhY3Rlck5vcm1hbGl6ZVwiLFxuICBcIkNoYXJhY3RlclJhbmdlXCIsXG4gIFwiQ2hhcmFjdGVyc1wiLFxuICBcIkNoYXJ0QmFzZVN0eWxlXCIsXG4gIFwiQ2hhcnRFbGVtZW50RGF0YVwiLFxuICBcIkNoYXJ0RWxlbWVudERhdGFGdW5jdGlvblwiLFxuICBcIkNoYXJ0RWxlbWVudEZ1bmN0aW9uXCIsXG4gIFwiQ2hhcnRFbGVtZW50c1wiLFxuICBcIkNoYXJ0TGFiZWxzXCIsXG4gIFwiQ2hhcnRMYXlvdXRcIixcbiAgXCJDaGFydExlZ2VuZHNcIixcbiAgXCJDaGFydFN0eWxlXCIsXG4gIFwiQ2hlYnlzaGV2MUZpbHRlck1vZGVsXCIsXG4gIFwiQ2hlYnlzaGV2MkZpbHRlck1vZGVsXCIsXG4gIFwiQ2hlYnlzaGV2RGlzdGFuY2VcIixcbiAgXCJDaGVieXNoZXZUXCIsXG4gIFwiQ2hlYnlzaGV2VVwiLFxuICBcIkNoZWNrXCIsXG4gIFwiQ2hlY2tBYm9ydFwiLFxuICBcIkNoZWNrQWxsXCIsXG4gIFwiQ2hlY2tBcmd1bWVudHNcIixcbiAgXCJDaGVja2JveFwiLFxuICBcIkNoZWNrYm94QmFyXCIsXG4gIFwiQ2hlY2tib3hCb3hcIixcbiAgXCJDaGVja2JveEJveE9wdGlvbnNcIixcbiAgXCJDaGVtaWNhbENvbnZlcnRcIixcbiAgXCJDaGVtaWNhbERhdGFcIixcbiAgXCJDaGVtaWNhbEZvcm11bGFcIixcbiAgXCJDaGVtaWNhbEluc3RhbmNlXCIsXG4gIFwiQ2hlbWljYWxSZWFjdGlvblwiLFxuICBcIkNoZXNzYm9hcmREaXN0YW5jZVwiLFxuICBcIkNoaURpc3RyaWJ1dGlvblwiLFxuICBcIkNoaW5lc2VSZW1haW5kZXJcIixcbiAgXCJDaGlTcXVhcmVEaXN0cmlidXRpb25cIixcbiAgXCJDaG9pY2VCdXR0b25zXCIsXG4gIFwiQ2hvaWNlRGlhbG9nXCIsXG4gIFwiQ2hvbGVza3lEZWNvbXBvc2l0aW9uXCIsXG4gIFwiQ2hvcFwiLFxuICBcIkNocm9tYXRpY2l0eVBsb3RcIixcbiAgXCJDaHJvbWF0aWNpdHlQbG90M0RcIixcbiAgXCJDaHJvbWF0aWNQb2x5bm9taWFsXCIsXG4gIFwiQ2lyY2xlXCIsXG4gIFwiQ2lyY2xlQm94XCIsXG4gIFwiQ2lyY2xlRG90XCIsXG4gIFwiQ2lyY2xlTWludXNcIixcbiAgXCJDaXJjbGVQbHVzXCIsXG4gIFwiQ2lyY2xlUG9pbnRzXCIsXG4gIFwiQ2lyY2xlVGhyb3VnaFwiLFxuICBcIkNpcmNsZVRpbWVzXCIsXG4gIFwiQ2lyY3VsYW50R3JhcGhcIixcbiAgXCJDaXJjdWxhckFyY1Rocm91Z2hcIixcbiAgXCJDaXJjdWxhck9ydGhvZ29uYWxNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclF1YXRlcm5pb25NYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclJlYWxNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclN5bXBsZWN0aWNNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclVuaXRhcnlNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdW1zcGhlcmVcIixcbiAgXCJDaXR5RGF0YVwiLFxuICBcIkNsYXNzaWZpZXJGdW5jdGlvblwiLFxuICBcIkNsYXNzaWZpZXJJbmZvcm1hdGlvblwiLFxuICBcIkNsYXNzaWZpZXJNZWFzdXJlbWVudHNcIixcbiAgXCJDbGFzc2lmaWVyTWVhc3VyZW1lbnRzT2JqZWN0XCIsXG4gIFwiQ2xhc3NpZnlcIixcbiAgXCJDbGFzc1ByaW9yc1wiLFxuICBcIkNsZWFyXCIsXG4gIFwiQ2xlYXJBbGxcIixcbiAgXCJDbGVhckF0dHJpYnV0ZXNcIixcbiAgXCJDbGVhckNvb2tpZXNcIixcbiAgXCJDbGVhclBlcm1pc3Npb25zXCIsXG4gIFwiQ2xlYXJTeXN0ZW1DYWNoZVwiLFxuICBcIkNsZWJzY2hHb3JkYW5cIixcbiAgXCJDbGlja1BhbmVcIixcbiAgXCJDbGlja1RvQ29weVwiLFxuICBcIkNsaWNrVG9Db3B5RW5hYmxlZFwiLFxuICBcIkNsaXBcIixcbiAgXCJDbGlwYm9hcmROb3RlYm9va1wiLFxuICBcIkNsaXBGaWxsXCIsXG4gIFwiQ2xpcHBpbmdTdHlsZVwiLFxuICBcIkNsaXBQbGFuZXNcIixcbiAgXCJDbGlwUGxhbmVzU3R5bGVcIixcbiAgXCJDbGlwUmFuZ2VcIixcbiAgXCJDbG9ja1wiLFxuICBcIkNsb2NrR2F1Z2VcIixcbiAgXCJDbG9ja3dpc2VDb250b3VySW50ZWdyYWxcIixcbiAgXCJDbG9zZVwiLFxuICBcIkNsb3NlZFwiLFxuICBcIkNsb3NlS2VybmVsc1wiLFxuICBcIkNsb3NlbmVzc0NlbnRyYWxpdHlcIixcbiAgXCJDbG9zaW5nXCIsXG4gIFwiQ2xvc2luZ0F1dG9TYXZlXCIsXG4gIFwiQ2xvc2luZ0V2ZW50XCIsXG4gIFwiQ2xvdWRBY2NvdW50RGF0YVwiLFxuICBcIkNsb3VkQmFzZVwiLFxuICBcIkNsb3VkQ29ubmVjdFwiLFxuICBcIkNsb3VkQ29ubmVjdGlvbnNcIixcbiAgXCJDbG91ZERlcGxveVwiLFxuICBcIkNsb3VkRGlyZWN0b3J5XCIsXG4gIFwiQ2xvdWREaXNjb25uZWN0XCIsXG4gIFwiQ2xvdWRFdmFsdWF0ZVwiLFxuICBcIkNsb3VkRXhwb3J0XCIsXG4gIFwiQ2xvdWRFeHByZXNzaW9uXCIsXG4gIFwiQ2xvdWRFeHByZXNzaW9uc1wiLFxuICBcIkNsb3VkRnVuY3Rpb25cIixcbiAgXCJDbG91ZEdldFwiLFxuICBcIkNsb3VkSW1wb3J0XCIsXG4gIFwiQ2xvdWRMb2dnaW5nRGF0YVwiLFxuICBcIkNsb3VkT2JqZWN0XCIsXG4gIFwiQ2xvdWRPYmplY3RJbmZvcm1hdGlvblwiLFxuICBcIkNsb3VkT2JqZWN0SW5mb3JtYXRpb25EYXRhXCIsXG4gIFwiQ2xvdWRPYmplY3ROYW1lRm9ybWF0XCIsXG4gIFwiQ2xvdWRPYmplY3RzXCIsXG4gIFwiQ2xvdWRPYmplY3RVUkxUeXBlXCIsXG4gIFwiQ2xvdWRQdWJsaXNoXCIsXG4gIFwiQ2xvdWRQdXRcIixcbiAgXCJDbG91ZFJlbmRlcmluZ01ldGhvZFwiLFxuICBcIkNsb3VkU2F2ZVwiLFxuICBcIkNsb3VkU2hhcmVcIixcbiAgXCJDbG91ZFN1Ym1pdFwiLFxuICBcIkNsb3VkU3ltYm9sXCIsXG4gIFwiQ2xvdWRVbnNoYXJlXCIsXG4gIFwiQ2xvdWRVc2VySURcIixcbiAgXCJDbHVzdGVyQ2xhc3NpZnlcIixcbiAgXCJDbHVzdGVyRGlzc2ltaWxhcml0eUZ1bmN0aW9uXCIsXG4gIFwiQ2x1c3RlcmluZ0NvbXBvbmVudHNcIixcbiAgXCJDbHVzdGVyaW5nTWVhc3VyZW1lbnRzXCIsXG4gIFwiQ2x1c3RlcmluZ1RyZWVcIixcbiAgXCJDTVlLQ29sb3JcIixcbiAgXCJDb2Fyc2VcIixcbiAgXCJDb2RlQXNzaXN0T3B0aW9uc1wiLFxuICBcIkNvZWZmaWNpZW50XCIsXG4gIFwiQ29lZmZpY2llbnRBcnJheXNcIixcbiAgXCJDb2VmZmljaWVudERvbWFpblwiLFxuICBcIkNvZWZmaWNpZW50TGlzdFwiLFxuICBcIkNvZWZmaWNpZW50UnVsZXNcIixcbiAgXCJDb2lmbGV0V2F2ZWxldFwiLFxuICBcIkNvbGxlY3RcIixcbiAgXCJDb2xsaW5lYXJQb2ludHNcIixcbiAgXCJDb2xvblwiLFxuICBcIkNvbG9uRm9ybVwiLFxuICBcIkNvbG9yQmFsYW5jZVwiLFxuICBcIkNvbG9yQ29tYmluZVwiLFxuICBcIkNvbG9yQ29udmVydFwiLFxuICBcIkNvbG9yQ292ZXJhZ2VcIixcbiAgXCJDb2xvckRhdGFcIixcbiAgXCJDb2xvckRhdGFGdW5jdGlvblwiLFxuICBcIkNvbG9yRGV0ZWN0XCIsXG4gIFwiQ29sb3JEaXN0YW5jZVwiLFxuICBcIkNvbG9yRnVuY3Rpb25cIixcbiAgXCJDb2xvckZ1bmN0aW9uQmlubmluZ1wiLFxuICBcIkNvbG9yRnVuY3Rpb25TY2FsaW5nXCIsXG4gIFwiQ29sb3JpemVcIixcbiAgXCJDb2xvck5lZ2F0ZVwiLFxuICBcIkNvbG9yT3V0cHV0XCIsXG4gIFwiQ29sb3JQcm9maWxlRGF0YVwiLFxuICBcIkNvbG9yUVwiLFxuICBcIkNvbG9yUXVhbnRpemVcIixcbiAgXCJDb2xvclJlcGxhY2VcIixcbiAgXCJDb2xvclJ1bGVzXCIsXG4gIFwiQ29sb3JTZWxlY3RvclNldHRpbmdzXCIsXG4gIFwiQ29sb3JTZXBhcmF0ZVwiLFxuICBcIkNvbG9yU2V0dGVyXCIsXG4gIFwiQ29sb3JTZXR0ZXJCb3hcIixcbiAgXCJDb2xvclNldHRlckJveE9wdGlvbnNcIixcbiAgXCJDb2xvclNsaWRlclwiLFxuICBcIkNvbG9yc05lYXJcIixcbiAgXCJDb2xvclNwYWNlXCIsXG4gIFwiQ29sb3JUb25lTWFwcGluZ1wiLFxuICBcIkNvbHVtblwiLFxuICBcIkNvbHVtbkFsaWdubWVudHNcIixcbiAgXCJDb2x1bW5CYWNrZ3JvdW5kc1wiLFxuICBcIkNvbHVtbkZvcm1cIixcbiAgXCJDb2x1bW5MaW5lc1wiLFxuICBcIkNvbHVtbnNFcXVhbFwiLFxuICBcIkNvbHVtblNwYWNpbmdzXCIsXG4gIFwiQ29sdW1uV2lkdGhzXCIsXG4gIFwiQ29tYmluYXRvckJcIixcbiAgXCJDb21iaW5hdG9yQ1wiLFxuICBcIkNvbWJpbmF0b3JJXCIsXG4gIFwiQ29tYmluYXRvcktcIixcbiAgXCJDb21iaW5hdG9yU1wiLFxuICBcIkNvbWJpbmF0b3JXXCIsXG4gIFwiQ29tYmluYXRvcllcIixcbiAgXCJDb21iaW5lZEVudGl0eUNsYXNzXCIsXG4gIFwiQ29tYmluZXJGdW5jdGlvblwiLFxuICBcIkNvbWV0RGF0YVwiLFxuICBcIkNvbW1vbkRlZmF1bHRGb3JtYXRUeXBlc1wiLFxuICBcIkNvbW1vbmVzdFwiLFxuICBcIkNvbW1vbmVzdEZpbHRlclwiLFxuICBcIkNvbW1vbk5hbWVcIixcbiAgXCJDb21tb25Vbml0c1wiLFxuICBcIkNvbW11bml0eUJvdW5kYXJ5U3R5bGVcIixcbiAgXCJDb21tdW5pdHlHcmFwaFBsb3RcIixcbiAgXCJDb21tdW5pdHlMYWJlbHNcIixcbiAgXCJDb21tdW5pdHlSZWdpb25TdHlsZVwiLFxuICBcIkNvbXBhbnlEYXRhXCIsXG4gIFwiQ29tcGF0aWJsZVVuaXRRXCIsXG4gIFwiQ29tcGlsYXRpb25PcHRpb25zXCIsXG4gIFwiQ29tcGlsYXRpb25UYXJnZXRcIixcbiAgXCJDb21waWxlXCIsXG4gIFwiQ29tcGlsZWRcIixcbiAgXCJDb21waWxlZENvZGVGdW5jdGlvblwiLFxuICBcIkNvbXBpbGVkQ29tcG9uZW50XCIsXG4gIFwiQ29tcGlsZWRFeHByZXNzaW9uRGVjbGFyYXRpb25cIixcbiAgXCJDb21waWxlZEZ1bmN0aW9uXCIsXG4gIFwiQ29tcGlsZWRMYXllclwiLFxuICBcIkNvbXBpbGVyQ2FsbGJhY2tcIixcbiAgXCJDb21waWxlckVudmlyb25tZW50XCIsXG4gIFwiQ29tcGlsZXJFbnZpcm9ubWVudEFwcGVuZFwiLFxuICBcIkNvbXBpbGVyRW52aXJvbm1lbnRBcHBlbmRUb1wiLFxuICBcIkNvbXBpbGVyRW52aXJvbm1lbnRPYmplY3RcIixcbiAgXCJDb21waWxlck9wdGlvbnNcIixcbiAgXCJDb21wbGVtZW50XCIsXG4gIFwiQ29tcGxlbWVudGVkRW50aXR5Q2xhc3NcIixcbiAgXCJDb21wbGV0ZUdyYXBoXCIsXG4gIFwiQ29tcGxldGVHcmFwaFFcIixcbiAgXCJDb21wbGV0ZUludGVncmFsXCIsXG4gIFwiQ29tcGxldGVLYXJ5VHJlZVwiLFxuICBcIkNvbXBsZXRpb25zTGlzdFBhY2tldFwiLFxuICBcIkNvbXBsZXhcIixcbiAgXCJDb21wbGV4QXJyYXlQbG90XCIsXG4gIFwiQ29tcGxleENvbnRvdXJQbG90XCIsXG4gIFwiQ29tcGxleGVzXCIsXG4gIFwiQ29tcGxleEV4cGFuZFwiLFxuICBcIkNvbXBsZXhJbmZpbml0eVwiLFxuICBcIkNvbXBsZXhpdHlGdW5jdGlvblwiLFxuICBcIkNvbXBsZXhMaXN0UGxvdFwiLFxuICBcIkNvbXBsZXhQbG90XCIsXG4gIFwiQ29tcGxleFBsb3QzRFwiLFxuICBcIkNvbXBsZXhSZWdpb25QbG90XCIsXG4gIFwiQ29tcGxleFN0cmVhbVBsb3RcIixcbiAgXCJDb21wbGV4VmVjdG9yUGxvdFwiLFxuICBcIkNvbXBvbmVudE1lYXN1cmVtZW50c1wiLFxuICBcIkNvbXBvbmVudHdpc2VDb250ZXh0TWVudVwiLFxuICBcIkNvbXBvc2VcIixcbiAgXCJDb21wb3NlTGlzdFwiLFxuICBcIkNvbXBvc2VTZXJpZXNcIixcbiAgXCJDb21wb3NpdGVRXCIsXG4gIFwiQ29tcG9zaXRpb25cIixcbiAgXCJDb21wb3VuZEVsZW1lbnRcIixcbiAgXCJDb21wb3VuZEV4cHJlc3Npb25cIixcbiAgXCJDb21wb3VuZFBvaXNzb25EaXN0cmlidXRpb25cIixcbiAgXCJDb21wb3VuZFBvaXNzb25Qcm9jZXNzXCIsXG4gIFwiQ29tcG91bmRSZW5ld2FsUHJvY2Vzc1wiLFxuICBcIkNvbXByZXNzXCIsXG4gIFwiQ29tcHJlc3NlZERhdGFcIixcbiAgXCJDb21wcmVzc2lvbkxldmVsXCIsXG4gIFwiQ29tcHV0ZVVuY2VydGFpbnR5XCIsXG4gIFwiQ29uY2F2ZUh1bGxNZXNoXCIsXG4gIFwiQ29uZGl0aW9uXCIsXG4gIFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIsXG4gIFwiQ29uZGl0aW9uZWRcIixcbiAgXCJDb25lXCIsXG4gIFwiQ29uZUJveFwiLFxuICBcIkNvbmZpZGVuY2VMZXZlbFwiLFxuICBcIkNvbmZpZGVuY2VSYW5nZVwiLFxuICBcIkNvbmZpZGVuY2VUcmFuc2Zvcm1cIixcbiAgXCJDb25maWd1cmF0aW9uUGF0aFwiLFxuICBcIkNvbmZpcm1cIixcbiAgXCJDb25maXJtQXNzZXJ0XCIsXG4gIFwiQ29uZmlybUJ5XCIsXG4gIFwiQ29uZmlybU1hdGNoXCIsXG4gIFwiQ29uZmlybVF1aWV0XCIsXG4gIFwiQ29uZm9ybWF0aW9uTWV0aG9kXCIsXG4gIFwiQ29uZm9ybUF1ZGlvXCIsXG4gIFwiQ29uZm9ybUltYWdlc1wiLFxuICBcIkNvbmdydWVudFwiLFxuICBcIkNvbmljR3JhZGllbnRGaWxsaW5nXCIsXG4gIFwiQ29uaWNIdWxsUmVnaW9uXCIsXG4gIFwiQ29uaWNIdWxsUmVnaW9uM0RCb3hcIixcbiAgXCJDb25pY0h1bGxSZWdpb24zREJveE9wdGlvbnNcIixcbiAgXCJDb25pY0h1bGxSZWdpb25Cb3hcIixcbiAgXCJDb25pY0h1bGxSZWdpb25Cb3hPcHRpb25zXCIsXG4gIFwiQ29uaWNPcHRpbWl6YXRpb25cIixcbiAgXCJDb25qdWdhdGVcIixcbiAgXCJDb25qdWdhdGVUcmFuc3Bvc2VcIixcbiAgXCJDb25qdW5jdGlvblwiLFxuICBcIkNvbm5lY3RcIixcbiAgXCJDb25uZWN0ZWRDb21wb25lbnRzXCIsXG4gIFwiQ29ubmVjdGVkR3JhcGhDb21wb25lbnRzXCIsXG4gIFwiQ29ubmVjdGVkR3JhcGhRXCIsXG4gIFwiQ29ubmVjdGVkTWVzaENvbXBvbmVudHNcIixcbiAgXCJDb25uZWN0ZWRNb2xlY3VsZUNvbXBvbmVudHNcIixcbiAgXCJDb25uZWN0ZWRNb2xlY3VsZVFcIixcbiAgXCJDb25uZWN0aW9uU2V0dGluZ3NcIixcbiAgXCJDb25uZWN0TGlicmFyeUNhbGxiYWNrRnVuY3Rpb25cIixcbiAgXCJDb25uZWN0U3lzdGVtTW9kZWxDb21wb25lbnRzXCIsXG4gIFwiQ29ubmVjdFN5c3RlbU1vZGVsQ29udHJvbGxlclwiLFxuICBcIkNvbm5lc1dpbmRvd1wiLFxuICBcIkNvbm92ZXJUZXN0XCIsXG4gIFwiQ29uc2VydmF0aXZlQ29udmVjdGlvblBERVRlcm1cIixcbiAgXCJDb25zb2xlTWVzc2FnZVwiLFxuICBcIkNvbnN0YW50XCIsXG4gIFwiQ29uc3RhbnRBcnJheVwiLFxuICBcIkNvbnN0YW50QXJyYXlMYXllclwiLFxuICBcIkNvbnN0YW50SW1hZ2VcIixcbiAgXCJDb25zdGFudFBsdXNMYXllclwiLFxuICBcIkNvbnN0YW50UmVnaW9uUVwiLFxuICBcIkNvbnN0YW50c1wiLFxuICBcIkNvbnN0YW50VGltZXNMYXllclwiLFxuICBcIkNvbnN0ZWxsYXRpb25EYXRhXCIsXG4gIFwiQ29uc3RyYWluZWRNYXhcIixcbiAgXCJDb25zdHJhaW5lZE1pblwiLFxuICBcIkNvbnN0cnVjdFwiLFxuICBcIkNvbnRhaW5pbmdcIixcbiAgXCJDb250YWluc0FsbFwiLFxuICBcIkNvbnRhaW5zQW55XCIsXG4gIFwiQ29udGFpbnNFeGFjdGx5XCIsXG4gIFwiQ29udGFpbnNOb25lXCIsXG4gIFwiQ29udGFpbnNPbmx5XCIsXG4gIFwiQ29udGVudERldGVjdG9yRnVuY3Rpb25cIixcbiAgXCJDb250ZW50RmllbGRPcHRpb25zXCIsXG4gIFwiQ29udGVudExvY2F0aW9uRnVuY3Rpb25cIixcbiAgXCJDb250ZW50T2JqZWN0XCIsXG4gIFwiQ29udGVudFBhZGRpbmdcIixcbiAgXCJDb250ZW50c0JvdW5kaW5nQm94XCIsXG4gIFwiQ29udGVudFNlbGVjdGFibGVcIixcbiAgXCJDb250ZW50U2l6ZVwiLFxuICBcIkNvbnRleHRcIixcbiAgXCJDb250ZXh0TWVudVwiLFxuICBcIkNvbnRleHRzXCIsXG4gIFwiQ29udGV4dFRvRmlsZU5hbWVcIixcbiAgXCJDb250aW51YXRpb25cIixcbiAgXCJDb250aW51ZVwiLFxuICBcIkNvbnRpbnVlZEZyYWN0aW9uXCIsXG4gIFwiQ29udGludWVkRnJhY3Rpb25LXCIsXG4gIFwiQ29udGludW91c0FjdGlvblwiLFxuICBcIkNvbnRpbnVvdXNNYXJrb3ZQcm9jZXNzXCIsXG4gIFwiQ29udGludW91c1Rhc2tcIixcbiAgXCJDb250aW51b3VzVGltZU1vZGVsUVwiLFxuICBcIkNvbnRpbnVvdXNXYXZlbGV0RGF0YVwiLFxuICBcIkNvbnRpbnVvdXNXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiQ29udG91ckRldGVjdFwiLFxuICBcIkNvbnRvdXJHcmFwaGljc1wiLFxuICBcIkNvbnRvdXJJbnRlZ3JhbFwiLFxuICBcIkNvbnRvdXJMYWJlbHNcIixcbiAgXCJDb250b3VyTGluZXNcIixcbiAgXCJDb250b3VyUGxvdFwiLFxuICBcIkNvbnRvdXJQbG90M0RcIixcbiAgXCJDb250b3Vyc1wiLFxuICBcIkNvbnRvdXJTaGFkaW5nXCIsXG4gIFwiQ29udG91clNtb290aGluZ1wiLFxuICBcIkNvbnRvdXJTdHlsZVwiLFxuICBcIkNvbnRyYWhhcm1vbmljTWVhblwiLFxuICBcIkNvbnRyYXN0aXZlTG9zc0xheWVyXCIsXG4gIFwiQ29udHJvbFwiLFxuICBcIkNvbnRyb2xBY3RpdmVcIixcbiAgXCJDb250cm9sQWxpZ25tZW50XCIsXG4gIFwiQ29udHJvbEdyb3VwQ29udGVudHNCb3hcIixcbiAgXCJDb250cm9sbGFiaWxpdHlHcmFtaWFuXCIsXG4gIFwiQ29udHJvbGxhYmlsaXR5TWF0cml4XCIsXG4gIFwiQ29udHJvbGxhYmxlRGVjb21wb3NpdGlvblwiLFxuICBcIkNvbnRyb2xsYWJsZU1vZGVsUVwiLFxuICBcIkNvbnRyb2xsZXJEdXJhdGlvblwiLFxuICBcIkNvbnRyb2xsZXJJbmZvcm1hdGlvblwiLFxuICBcIkNvbnRyb2xsZXJJbmZvcm1hdGlvbkRhdGFcIixcbiAgXCJDb250cm9sbGVyTGlua2luZ1wiLFxuICBcIkNvbnRyb2xsZXJNYW5pcHVsYXRlXCIsXG4gIFwiQ29udHJvbGxlck1ldGhvZFwiLFxuICBcIkNvbnRyb2xsZXJQYXRoXCIsXG4gIFwiQ29udHJvbGxlclN0YXRlXCIsXG4gIFwiQ29udHJvbFBsYWNlbWVudFwiLFxuICBcIkNvbnRyb2xzUmVuZGVyaW5nXCIsXG4gIFwiQ29udHJvbFR5cGVcIixcbiAgXCJDb252ZWN0aW9uUERFVGVybVwiLFxuICBcIkNvbnZlcmdlbnRzXCIsXG4gIFwiQ29udmVyc2lvbk9wdGlvbnNcIixcbiAgXCJDb252ZXJzaW9uUnVsZXNcIixcbiAgXCJDb252ZXJ0VG9Qb3N0U2NyaXB0XCIsXG4gIFwiQ29udmVydFRvUG9zdFNjcmlwdFBhY2tldFwiLFxuICBcIkNvbnZleEh1bGxNZXNoXCIsXG4gIFwiQ29udmV4SHVsbFJlZ2lvblwiLFxuICBcIkNvbnZleE9wdGltaXphdGlvblwiLFxuICBcIkNvbnZleFBvbHlnb25RXCIsXG4gIFwiQ29udmV4UG9seWhlZHJvblFcIixcbiAgXCJDb252ZXhSZWdpb25RXCIsXG4gIFwiQ29udm9sdXRpb25MYXllclwiLFxuICBcIkNvbnZvbHZlXCIsXG4gIFwiQ29ud2F5R3JvdXBDbzFcIixcbiAgXCJDb253YXlHcm91cENvMlwiLFxuICBcIkNvbndheUdyb3VwQ28zXCIsXG4gIFwiQ29va2llRnVuY3Rpb25cIixcbiAgXCJDb29raWVzXCIsXG4gIFwiQ29vcmRpbmF0ZUJvdW5kaW5nQm94XCIsXG4gIFwiQ29vcmRpbmF0ZUJvdW5kaW5nQm94QXJyYXlcIixcbiAgXCJDb29yZGluYXRlQm91bmRzXCIsXG4gIFwiQ29vcmRpbmF0ZUJvdW5kc0FycmF5XCIsXG4gIFwiQ29vcmRpbmF0ZUNoYXJ0RGF0YVwiLFxuICBcIkNvb3JkaW5hdGVzVG9vbE9wdGlvbnNcIixcbiAgXCJDb29yZGluYXRlVHJhbnNmb3JtXCIsXG4gIFwiQ29vcmRpbmF0ZVRyYW5zZm9ybURhdGFcIixcbiAgXCJDb3BsYW5hclBvaW50c1wiLFxuICBcIkNvcHJpbWVRXCIsXG4gIFwiQ29wcm9kdWN0XCIsXG4gIFwiQ29wdWxhRGlzdHJpYnV0aW9uXCIsXG4gIFwiQ29weWFibGVcIixcbiAgXCJDb3B5RGF0YWJpblwiLFxuICBcIkNvcHlEaXJlY3RvcnlcIixcbiAgXCJDb3B5RmlsZVwiLFxuICBcIkNvcHlGdW5jdGlvblwiLFxuICBcIkNvcHlUYWdcIixcbiAgXCJDb3B5VG9DbGlwYm9hcmRcIixcbiAgXCJDb3JlTmlscG90ZW50RGVjb21wb3NpdGlvblwiLFxuICBcIkNvcm5lckZpbHRlclwiLFxuICBcIkNvcm5lck5laWdoYm9yc1wiLFxuICBcIkNvcnJlbGF0aW9uXCIsXG4gIFwiQ29ycmVsYXRpb25EaXN0YW5jZVwiLFxuICBcIkNvcnJlbGF0aW9uRnVuY3Rpb25cIixcbiAgXCJDb3JyZWxhdGlvblRlc3RcIixcbiAgXCJDb3NcIixcbiAgXCJDb3NoXCIsXG4gIFwiQ29zaEludGVncmFsXCIsXG4gIFwiQ29zaW5lRGlzdGFuY2VcIixcbiAgXCJDb3NpbmVXaW5kb3dcIixcbiAgXCJDb3NJbnRlZ3JhbFwiLFxuICBcIkNvdFwiLFxuICBcIkNvdGhcIixcbiAgXCJDb3Vsb21iRlwiLFxuICBcIkNvdWxvbWJHXCIsXG4gIFwiQ291bG9tYkgxXCIsXG4gIFwiQ291bG9tYkgyXCIsXG4gIFwiQ291bnRcIixcbiAgXCJDb3VudERpc3RpbmN0XCIsXG4gIFwiQ291bnREaXN0aW5jdEJ5XCIsXG4gIFwiQ291bnRlckFzc2lnbm1lbnRzXCIsXG4gIFwiQ291bnRlckJveFwiLFxuICBcIkNvdW50ZXJCb3hPcHRpb25zXCIsXG4gIFwiQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbFwiLFxuICBcIkNvdW50ZXJFdmFsdWF0b3JcIixcbiAgXCJDb3VudGVyRnVuY3Rpb25cIixcbiAgXCJDb3VudGVySW5jcmVtZW50c1wiLFxuICBcIkNvdW50ZXJTdHlsZVwiLFxuICBcIkNvdW50ZXJTdHlsZU1lbnVMaXN0aW5nXCIsXG4gIFwiQ291bnRSb290c1wiLFxuICBcIkNvdW50cnlEYXRhXCIsXG4gIFwiQ291bnRzXCIsXG4gIFwiQ291bnRzQnlcIixcbiAgXCJDb3ZhcmlhbmNlXCIsXG4gIFwiQ292YXJpYW5jZUVzdGltYXRvckZ1bmN0aW9uXCIsXG4gIFwiQ292YXJpYW5jZUZ1bmN0aW9uXCIsXG4gIFwiQ294aWFuRGlzdHJpYnV0aW9uXCIsXG4gIFwiQ294SW5nZXJzb2xsUm9zc1Byb2Nlc3NcIixcbiAgXCJDb3hNb2RlbFwiLFxuICBcIkNveE1vZGVsRml0XCIsXG4gIFwiQ3JhbWVyVm9uTWlzZXNUZXN0XCIsXG4gIFwiQ3JlYXRlQXJjaGl2ZVwiLFxuICBcIkNyZWF0ZUNlbGxJRFwiLFxuICBcIkNyZWF0ZUNoYW5uZWxcIixcbiAgXCJDcmVhdGVDbG91ZEV4cHJlc3Npb25cIixcbiAgXCJDcmVhdGVDb21waWxlckVudmlyb25tZW50XCIsXG4gIFwiQ3JlYXRlRGF0YWJpblwiLFxuICBcIkNyZWF0ZURhdGFTdHJ1Y3R1cmVcIixcbiAgXCJDcmVhdGVEYXRhU3lzdGVtTW9kZWxcIixcbiAgXCJDcmVhdGVEaWFsb2dcIixcbiAgXCJDcmVhdGVEaXJlY3RvcnlcIixcbiAgXCJDcmVhdGVEb2N1bWVudFwiLFxuICBcIkNyZWF0ZUZpbGVcIixcbiAgXCJDcmVhdGVJbnRlcm1lZGlhdGVEaXJlY3Rvcmllc1wiLFxuICBcIkNyZWF0ZUxpY2Vuc2VFbnRpdGxlbWVudFwiLFxuICBcIkNyZWF0ZU1hbmFnZWRMaWJyYXJ5RXhwcmVzc2lvblwiLFxuICBcIkNyZWF0ZU5vdGVib29rXCIsXG4gIFwiQ3JlYXRlUGFjbGV0QXJjaGl2ZVwiLFxuICBcIkNyZWF0ZVBhbGV0dGVcIixcbiAgXCJDcmVhdGVQZXJtaXNzaW9uc0dyb3VwXCIsXG4gIFwiQ3JlYXRlU2NoZWR1bGVkVGFza1wiLFxuICBcIkNyZWF0ZVNlYXJjaEluZGV4XCIsXG4gIFwiQ3JlYXRlU3lzdGVtTW9kZWxcIixcbiAgXCJDcmVhdGVUZW1wb3JhcnlcIixcbiAgXCJDcmVhdGVUeXBlSW5zdGFuY2VcIixcbiAgXCJDcmVhdGVVVUlEXCIsXG4gIFwiQ3JlYXRlV2luZG93XCIsXG4gIFwiQ3JpdGVyaW9uRnVuY3Rpb25cIixcbiAgXCJDcml0aWNhbGl0eUZhaWx1cmVJbXBvcnRhbmNlXCIsXG4gIFwiQ3JpdGljYWxpdHlTdWNjZXNzSW1wb3J0YW5jZVwiLFxuICBcIkNyaXRpY2FsU2VjdGlvblwiLFxuICBcIkNyb3NzXCIsXG4gIFwiQ3Jvc3NFbnRyb3B5TG9zc0xheWVyXCIsXG4gIFwiQ3Jvc3NpbmdDb3VudFwiLFxuICBcIkNyb3NzaW5nRGV0ZWN0XCIsXG4gIFwiQ3Jvc3NpbmdQb2x5Z29uXCIsXG4gIFwiQ3Jvc3NNYXRyaXhcIixcbiAgXCJDc2NcIixcbiAgXCJDc2NoXCIsXG4gIFwiQ1NHUmVnaW9uXCIsXG4gIFwiQ1NHUmVnaW9uUVwiLFxuICBcIkNTR1JlZ2lvblRyZWVcIixcbiAgXCJDVENMb3NzTGF5ZXJcIixcbiAgXCJDdWJlXCIsXG4gIFwiQ3ViZVJvb3RcIixcbiAgXCJDdWJpY3NcIixcbiAgXCJDdWJvaWRcIixcbiAgXCJDdWJvaWRCb3hcIixcbiAgXCJDdWJvaWRCb3hPcHRpb25zXCIsXG4gIFwiQ3VtdWxhbnRcIixcbiAgXCJDdW11bGFudEdlbmVyYXRpbmdGdW5jdGlvblwiLFxuICBcIkN1bXVsYXRpdmVGZWF0dXJlSW1wYWN0UGxvdFwiLFxuICBcIkN1cFwiLFxuICBcIkN1cENhcFwiLFxuICBcIkN1cmxcIixcbiAgXCJDdXJseURvdWJsZVF1b3RlXCIsXG4gIFwiQ3VybHlRdW90ZVwiLFxuICBcIkN1cnJlbmN5Q29udmVydFwiLFxuICBcIkN1cnJlbnREYXRlXCIsXG4gIFwiQ3VycmVudEltYWdlXCIsXG4gIFwiQ3VycmVudE5vdGVib29rSW1hZ2VcIixcbiAgXCJDdXJyZW50U2NyZWVuSW1hZ2VcIixcbiAgXCJDdXJyZW50VmFsdWVcIixcbiAgXCJDdXJyeVwiLFxuICBcIkN1cnJ5QXBwbGllZFwiLFxuICBcIkN1cnZhdHVyZUZsb3dGaWx0ZXJcIixcbiAgXCJDdXJ2ZUNsb3NlZFwiLFxuICBcIkN5YW5cIixcbiAgXCJDeWNsZUdyYXBoXCIsXG4gIFwiQ3ljbGVJbmRleFBvbHlub21pYWxcIixcbiAgXCJDeWNsZXNcIixcbiAgXCJDeWNsaWNHcm91cFwiLFxuICBcIkN5Y2xvdG9taWNcIixcbiAgXCJDeWxpbmRlclwiLFxuICBcIkN5bGluZGVyQm94XCIsXG4gIFwiQ3lsaW5kZXJCb3hPcHRpb25zXCIsXG4gIFwiQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uXCIsXG4gIFwiQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uRnVuY3Rpb25cIixcbiAgXCJEXCIsXG4gIFwiRGFndW1EaXN0cmlidXRpb25cIixcbiAgXCJEYW1EYXRhXCIsXG4gIFwiRGFtZXJhdUxldmVuc2h0ZWluRGlzdGFuY2VcIixcbiAgXCJEYW1waW5nRmFjdG9yXCIsXG4gIFwiRGFya2VyXCIsXG4gIFwiRGFzaGVkXCIsXG4gIFwiRGFzaGluZ1wiLFxuICBcIkRhdGFiYXNlQ29ubmVjdFwiLFxuICBcIkRhdGFiYXNlRGlzY29ubmVjdFwiLFxuICBcIkRhdGFiYXNlUmVmZXJlbmNlXCIsXG4gIFwiRGF0YWJpblwiLFxuICBcIkRhdGFiaW5BZGRcIixcbiAgXCJEYXRhYmluUmVtb3ZlXCIsXG4gIFwiRGF0YWJpbnNcIixcbiAgXCJEYXRhYmluU3VibWl0XCIsXG4gIFwiRGF0YWJpblVwbG9hZFwiLFxuICBcIkRhdGFDb21wcmVzc2lvblwiLFxuICBcIkRhdGFEaXN0cmlidXRpb25cIixcbiAgXCJEYXRhUmFuZ2VcIixcbiAgXCJEYXRhUmV2ZXJzZWRcIixcbiAgXCJEYXRhc2V0XCIsXG4gIFwiRGF0YXNldERpc3BsYXlQYW5lbFwiLFxuICBcIkRhdGFzZXRUaGVtZVwiLFxuICBcIkRhdGFTdHJ1Y3R1cmVcIixcbiAgXCJEYXRhU3RydWN0dXJlUVwiLFxuICBcIkRhdGVcIixcbiAgXCJEYXRlQm91bmRzXCIsXG4gIFwiRGF0ZWRcIixcbiAgXCJEYXRlRGVsaW1pdGVyc1wiLFxuICBcIkRhdGVEaWZmZXJlbmNlXCIsXG4gIFwiRGF0ZWRVbml0XCIsXG4gIFwiRGF0ZUZvcm1hdFwiLFxuICBcIkRhdGVGdW5jdGlvblwiLFxuICBcIkRhdGVHcmFudWxhcml0eVwiLFxuICBcIkRhdGVIaXN0b2dyYW1cIixcbiAgXCJEYXRlSW50ZXJ2YWxcIixcbiAgXCJEYXRlTGlzdFwiLFxuICBcIkRhdGVMaXN0TG9nUGxvdFwiLFxuICBcIkRhdGVMaXN0UGxvdFwiLFxuICBcIkRhdGVMaXN0U3RlcFBsb3RcIixcbiAgXCJEYXRlT2JqZWN0XCIsXG4gIFwiRGF0ZU9iamVjdFFcIixcbiAgXCJEYXRlT3ZlcmxhcHNRXCIsXG4gIFwiRGF0ZVBhdHRlcm5cIixcbiAgXCJEYXRlUGx1c1wiLFxuICBcIkRhdGVSYW5nZVwiLFxuICBcIkRhdGVSZWR1Y3Rpb25cIixcbiAgXCJEYXRlU2NhbGVcIixcbiAgXCJEYXRlU2VsZWN0XCIsXG4gIFwiRGF0ZVN0cmluZ1wiLFxuICBcIkRhdGVUaWNrc0Zvcm1hdFwiLFxuICBcIkRhdGVWYWx1ZVwiLFxuICBcIkRhdGVXaXRoaW5RXCIsXG4gIFwiRGF1YmVjaGllc1dhdmVsZXRcIixcbiAgXCJEYXZpc0Rpc3RyaWJ1dGlvblwiLFxuICBcIkRhd3NvbkZcIixcbiAgXCJEYXlDb3VudFwiLFxuICBcIkRheUNvdW50Q29udmVudGlvblwiLFxuICBcIkRheUhlbWlzcGhlcmVcIixcbiAgXCJEYXlsaWdodFFcIixcbiAgXCJEYXlNYXRjaFFcIixcbiAgXCJEYXlOYW1lXCIsXG4gIFwiRGF5TmlnaHRUZXJtaW5hdG9yXCIsXG4gIFwiRGF5UGx1c1wiLFxuICBcIkRheVJhbmdlXCIsXG4gIFwiRGF5Um91bmRcIixcbiAgXCJEZUJydWlqbkdyYXBoXCIsXG4gIFwiRGVCcnVpam5TZXF1ZW5jZVwiLFxuICBcIkRlYnVnXCIsXG4gIFwiRGVidWdUYWdcIixcbiAgXCJEZWNhcGl0YWxpemVcIixcbiAgXCJEZWNpbWFsXCIsXG4gIFwiRGVjaW1hbEZvcm1cIixcbiAgXCJEZWNsYXJlQ29tcGlsZWRDb21wb25lbnRcIixcbiAgXCJEZWNsYXJlS25vd25TeW1ib2xzXCIsXG4gIFwiRGVjbGFyZVBhY2thZ2VcIixcbiAgXCJEZWNvbXBvc2VcIixcbiAgXCJEZWNvbnZvbHV0aW9uTGF5ZXJcIixcbiAgXCJEZWNyZW1lbnRcIixcbiAgXCJEZWNyeXB0XCIsXG4gIFwiRGVjcnlwdEZpbGVcIixcbiAgXCJEZWRla2luZEV0YVwiLFxuICBcIkRlZXBTcGFjZVByb2JlRGF0YVwiLFxuICBcIkRlZmF1bHRcIixcbiAgXCJEZWZhdWx0MkRUb29sXCIsXG4gIFwiRGVmYXVsdDNEVG9vbFwiLFxuICBcIkRlZmF1bHRBdHRhY2hlZENlbGxTdHlsZVwiLFxuICBcIkRlZmF1bHRBeGVzU3R5bGVcIixcbiAgXCJEZWZhdWx0QmFzZVN0eWxlXCIsXG4gIFwiRGVmYXVsdEJveFN0eWxlXCIsXG4gIFwiRGVmYXVsdEJ1dHRvblwiLFxuICBcIkRlZmF1bHRDb2xvclwiLFxuICBcIkRlZmF1bHRDb250cm9sUGxhY2VtZW50XCIsXG4gIFwiRGVmYXVsdERvY2tlZENlbGxTdHlsZVwiLFxuICBcIkRlZmF1bHREdXBsaWNhdGVDZWxsU3R5bGVcIixcbiAgXCJEZWZhdWx0RHVyYXRpb25cIixcbiAgXCJEZWZhdWx0RWxlbWVudFwiLFxuICBcIkRlZmF1bHRGYWNlR3JpZHNTdHlsZVwiLFxuICBcIkRlZmF1bHRGaWVsZEhpbnRTdHlsZVwiLFxuICBcIkRlZmF1bHRGb250XCIsXG4gIFwiRGVmYXVsdEZvbnRQcm9wZXJ0aWVzXCIsXG4gIFwiRGVmYXVsdEZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0RnJhbWVTdHlsZVwiLFxuICBcIkRlZmF1bHRGcmFtZVRpY2tzU3R5bGVcIixcbiAgXCJEZWZhdWx0R3JpZExpbmVzU3R5bGVcIixcbiAgXCJEZWZhdWx0SW5saW5lRm9ybWF0VHlwZVwiLFxuICBcIkRlZmF1bHRJbnB1dEZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0TGFiZWxTdHlsZVwiLFxuICBcIkRlZmF1bHRNZW51U3R5bGVcIixcbiAgXCJEZWZhdWx0TmF0dXJhbExhbmd1YWdlXCIsXG4gIFwiRGVmYXVsdE5ld0NlbGxTdHlsZVwiLFxuICBcIkRlZmF1bHROZXdJbmxpbmVDZWxsU3R5bGVcIixcbiAgXCJEZWZhdWx0Tm90ZWJvb2tcIixcbiAgXCJEZWZhdWx0T3B0aW9uc1wiLFxuICBcIkRlZmF1bHRPdXRwdXRGb3JtYXRUeXBlXCIsXG4gIFwiRGVmYXVsdFByaW50UHJlY2lzaW9uXCIsXG4gIFwiRGVmYXVsdFN0eWxlXCIsXG4gIFwiRGVmYXVsdFN0eWxlRGVmaW5pdGlvbnNcIixcbiAgXCJEZWZhdWx0VGV4dEZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0VGV4dElubGluZUZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0VGlja3NTdHlsZVwiLFxuICBcIkRlZmF1bHRUb29sdGlwU3R5bGVcIixcbiAgXCJEZWZhdWx0VmFsdWVcIixcbiAgXCJEZWZhdWx0VmFsdWVzXCIsXG4gIFwiRGVmZXJcIixcbiAgXCJEZWZpbmVFeHRlcm5hbFwiLFxuICBcIkRlZmluZUlucHV0U3RyZWFtTWV0aG9kXCIsXG4gIFwiRGVmaW5lT3V0cHV0U3RyZWFtTWV0aG9kXCIsXG4gIFwiRGVmaW5lUmVzb3VyY2VGdW5jdGlvblwiLFxuICBcIkRlZmluaXRpb25cIixcbiAgXCJEZWdyZWVcIixcbiAgXCJEZWdyZWVDZW50cmFsaXR5XCIsXG4gIFwiRGVncmVlR3JhcGhEaXN0cmlidXRpb25cIixcbiAgXCJEZWdyZWVMZXhpY29ncmFwaGljXCIsXG4gIFwiRGVncmVlUmV2ZXJzZUxleGljb2dyYXBoaWNcIixcbiAgXCJERWlnZW5zeXN0ZW1cIixcbiAgXCJERWlnZW52YWx1ZXNcIixcbiAgXCJEZWluaXRpYWxpemF0aW9uXCIsXG4gIFwiRGVsXCIsXG4gIFwiRGVsYXVuYXlNZXNoXCIsXG4gIFwiRGVsYXllZFwiLFxuICBcIkRlbGV0YWJsZVwiLFxuICBcIkRlbGV0ZVwiLFxuICBcIkRlbGV0ZUFkamFjZW50RHVwbGljYXRlc1wiLFxuICBcIkRlbGV0ZUFub21hbGllc1wiLFxuICBcIkRlbGV0ZUJvcmRlckNvbXBvbmVudHNcIixcbiAgXCJEZWxldGVDYXNlc1wiLFxuICBcIkRlbGV0ZUNoYW5uZWxcIixcbiAgXCJEZWxldGVDbG91ZEV4cHJlc3Npb25cIixcbiAgXCJEZWxldGVDb250ZW50c1wiLFxuICBcIkRlbGV0ZURpcmVjdG9yeVwiLFxuICBcIkRlbGV0ZUR1cGxpY2F0ZXNcIixcbiAgXCJEZWxldGVEdXBsaWNhdGVzQnlcIixcbiAgXCJEZWxldGVFbGVtZW50c1wiLFxuICBcIkRlbGV0ZUZpbGVcIixcbiAgXCJEZWxldGVNaXNzaW5nXCIsXG4gIFwiRGVsZXRlT2JqZWN0XCIsXG4gIFwiRGVsZXRlUGVybWlzc2lvbnNLZXlcIixcbiAgXCJEZWxldGVTZWFyY2hJbmRleFwiLFxuICBcIkRlbGV0ZVNtYWxsQ29tcG9uZW50c1wiLFxuICBcIkRlbGV0ZVN0b3B3b3Jkc1wiLFxuICBcIkRlbGV0ZVdpdGhDb250ZW50c1wiLFxuICBcIkRlbGV0aW9uV2FybmluZ1wiLFxuICBcIkRlbGltaXRlZEFycmF5XCIsXG4gIFwiRGVsaW1pdGVkU2VxdWVuY2VcIixcbiAgXCJEZWxpbWl0ZXJcIixcbiAgXCJEZWxpbWl0ZXJBdXRvTWF0Y2hpbmdcIixcbiAgXCJEZWxpbWl0ZXJGbGFzaFRpbWVcIixcbiAgXCJEZWxpbWl0ZXJNYXRjaGluZ1wiLFxuICBcIkRlbGltaXRlcnNcIixcbiAgXCJEZWxpdmVyeUZ1bmN0aW9uXCIsXG4gIFwiRGVuZHJvZ3JhbVwiLFxuICBcIkRlbm9taW5hdG9yXCIsXG4gIFwiRGVuc2l0eUdyYXBoaWNzXCIsXG4gIFwiRGVuc2l0eUhpc3RvZ3JhbVwiLFxuICBcIkRlbnNpdHlQbG90XCIsXG4gIFwiRGVuc2l0eVBsb3QzRFwiLFxuICBcIkRlcGVuZGVudFZhcmlhYmxlc1wiLFxuICBcIkRlcGxveVwiLFxuICBcIkRlcGxveWVkXCIsXG4gIFwiRGVwdGhcIixcbiAgXCJEZXB0aEZpcnN0U2NhblwiLFxuICBcIkRlcml2YXRpdmVcIixcbiAgXCJEZXJpdmF0aXZlRmlsdGVyXCIsXG4gIFwiRGVyaXZhdGl2ZVBERVRlcm1cIixcbiAgXCJEZXJpdmVkS2V5XCIsXG4gIFwiRGVzY3JpcHRvclN0YXRlU3BhY2VcIixcbiAgXCJEZXNpZ25NYXRyaXhcIixcbiAgXCJEZXN0cm95QWZ0ZXJFdmFsdWF0aW9uXCIsXG4gIFwiRGV0XCIsXG4gIFwiRGV2aWNlQ2xvc2VcIixcbiAgXCJEZXZpY2VDb25maWd1cmVcIixcbiAgXCJEZXZpY2VFeGVjdXRlXCIsXG4gIFwiRGV2aWNlRXhlY3V0ZUFzeW5jaHJvbm91c1wiLFxuICBcIkRldmljZU9iamVjdFwiLFxuICBcIkRldmljZU9wZW5cIixcbiAgXCJEZXZpY2VPcGVuUVwiLFxuICBcIkRldmljZVJlYWRcIixcbiAgXCJEZXZpY2VSZWFkQnVmZmVyXCIsXG4gIFwiRGV2aWNlUmVhZExhdGVzdFwiLFxuICBcIkRldmljZVJlYWRMaXN0XCIsXG4gIFwiRGV2aWNlUmVhZFRpbWVTZXJpZXNcIixcbiAgXCJEZXZpY2VzXCIsXG4gIFwiRGV2aWNlU3RyZWFtc1wiLFxuICBcIkRldmljZVdyaXRlXCIsXG4gIFwiRGV2aWNlV3JpdGVCdWZmZXJcIixcbiAgXCJER2F1c3NpYW5XYXZlbGV0XCIsXG4gIFwiRGlhY3JpdGljYWxQb3NpdGlvbmluZ1wiLFxuICBcIkRpYWdvbmFsXCIsXG4gIFwiRGlhZ29uYWxpemFibGVNYXRyaXhRXCIsXG4gIFwiRGlhZ29uYWxNYXRyaXhcIixcbiAgXCJEaWFnb25hbE1hdHJpeFFcIixcbiAgXCJEaWFsb2dcIixcbiAgXCJEaWFsb2dJbmRlbnRcIixcbiAgXCJEaWFsb2dJbnB1dFwiLFxuICBcIkRpYWxvZ0xldmVsXCIsXG4gIFwiRGlhbG9nTm90ZWJvb2tcIixcbiAgXCJEaWFsb2dQcm9sb2dcIixcbiAgXCJEaWFsb2dSZXR1cm5cIixcbiAgXCJEaWFsb2dTeW1ib2xzXCIsXG4gIFwiRGlhbW9uZFwiLFxuICBcIkRpYW1vbmRNYXRyaXhcIixcbiAgXCJEaWNlRGlzc2ltaWxhcml0eVwiLFxuICBcIkRpY3Rpb25hcnlMb29rdXBcIixcbiAgXCJEaWN0aW9uYXJ5V29yZFFcIixcbiAgXCJEaWZmZXJlbmNlRGVsdGFcIixcbiAgXCJEaWZmZXJlbmNlT3JkZXJcIixcbiAgXCJEaWZmZXJlbmNlUXVvdGllbnRcIixcbiAgXCJEaWZmZXJlbmNlUm9vdFwiLFxuICBcIkRpZmZlcmVuY2VSb290UmVkdWNlXCIsXG4gIFwiRGlmZmVyZW5jZXNcIixcbiAgXCJEaWZmZXJlbnRpYWxEXCIsXG4gIFwiRGlmZmVyZW50aWFsUm9vdFwiLFxuICBcIkRpZmZlcmVudGlhbFJvb3RSZWR1Y2VcIixcbiAgXCJEaWZmZXJlbnRpYXRvckZpbHRlclwiLFxuICBcIkRpZmZ1c2lvblBERVRlcm1cIixcbiAgXCJEaWdnbGVHYXRlc1BvaW50UHJvY2Vzc1wiLFxuICBcIkRpZ2dsZUdyYXR0b25Qb2ludFByb2Nlc3NcIixcbiAgXCJEaWdpdGFsU2lnbmF0dXJlXCIsXG4gIFwiRGlnaXRCbG9ja1wiLFxuICBcIkRpZ2l0QmxvY2tNaW5pbXVtXCIsXG4gIFwiRGlnaXRDaGFyYWN0ZXJcIixcbiAgXCJEaWdpdENvdW50XCIsXG4gIFwiRGlnaXRRXCIsXG4gIFwiRGloZWRyYWxBbmdsZVwiLFxuICBcIkRpaGVkcmFsR3JvdXBcIixcbiAgXCJEaWxhdGlvblwiLFxuICBcIkRpbWVuc2lvbmFsQ29tYmluYXRpb25zXCIsXG4gIFwiRGltZW5zaW9uYWxNZXNoQ29tcG9uZW50c1wiLFxuICBcIkRpbWVuc2lvblJlZHVjZVwiLFxuICBcIkRpbWVuc2lvblJlZHVjZXJGdW5jdGlvblwiLFxuICBcIkRpbWVuc2lvblJlZHVjdGlvblwiLFxuICBcIkRpbWVuc2lvbnNcIixcbiAgXCJEaXJhY0NvbWJcIixcbiAgXCJEaXJhY0RlbHRhXCIsXG4gIFwiRGlyZWN0ZWRFZGdlXCIsXG4gIFwiRGlyZWN0ZWRFZGdlc1wiLFxuICBcIkRpcmVjdGVkR3JhcGhcIixcbiAgXCJEaXJlY3RlZEdyYXBoUVwiLFxuICBcIkRpcmVjdGVkSW5maW5pdHlcIixcbiAgXCJEaXJlY3Rpb25cIixcbiAgXCJEaXJlY3Rpb25hbExpZ2h0XCIsXG4gIFwiRGlyZWN0aXZlXCIsXG4gIFwiRGlyZWN0b3J5XCIsXG4gIFwiRGlyZWN0b3J5TmFtZVwiLFxuICBcIkRpcmVjdG9yeVFcIixcbiAgXCJEaXJlY3RvcnlTdGFja1wiLFxuICBcIkRpcmljaGxldEJldGFcIixcbiAgXCJEaXJpY2hsZXRDaGFyYWN0ZXJcIixcbiAgXCJEaXJpY2hsZXRDb25kaXRpb25cIixcbiAgXCJEaXJpY2hsZXRDb252b2x2ZVwiLFxuICBcIkRpcmljaGxldERpc3RyaWJ1dGlvblwiLFxuICBcIkRpcmljaGxldEV0YVwiLFxuICBcIkRpcmljaGxldExcIixcbiAgXCJEaXJpY2hsZXRMYW1iZGFcIixcbiAgXCJEaXJpY2hsZXRUcmFuc2Zvcm1cIixcbiAgXCJEaXJpY2hsZXRXaW5kb3dcIixcbiAgXCJEaXNhYmxlQ29uc29sZVByaW50UGFja2V0XCIsXG4gIFwiRGlzYWJsZUZvcm1hdHRpbmdcIixcbiAgXCJEaXNjcmV0ZUFzeW1wdG90aWNcIixcbiAgXCJEaXNjcmV0ZUNoaXJwWlRyYW5zZm9ybVwiLFxuICBcIkRpc2NyZXRlQ29udm9sdmVcIixcbiAgXCJEaXNjcmV0ZURlbHRhXCIsXG4gIFwiRGlzY3JldGVIYWRhbWFyZFRyYW5zZm9ybVwiLFxuICBcIkRpc2NyZXRlSW5kaWNhdG9yXCIsXG4gIFwiRGlzY3JldGVJbnB1dE91dHB1dE1vZGVsXCIsXG4gIFwiRGlzY3JldGVMaW1pdFwiLFxuICBcIkRpc2NyZXRlTFFFc3RpbWF0b3JHYWluc1wiLFxuICBcIkRpc2NyZXRlTFFSZWd1bGF0b3JHYWluc1wiLFxuICBcIkRpc2NyZXRlTHlhcHVub3ZTb2x2ZVwiLFxuICBcIkRpc2NyZXRlTWFya292UHJvY2Vzc1wiLFxuICBcIkRpc2NyZXRlTWF4TGltaXRcIixcbiAgXCJEaXNjcmV0ZU1pbkxpbWl0XCIsXG4gIFwiRGlzY3JldGVQbG90XCIsXG4gIFwiRGlzY3JldGVQbG90M0RcIixcbiAgXCJEaXNjcmV0ZVJhdGlvXCIsXG4gIFwiRGlzY3JldGVSaWNjYXRpU29sdmVcIixcbiAgXCJEaXNjcmV0ZVNoaWZ0XCIsXG4gIFwiRGlzY3JldGVUaW1lTW9kZWxRXCIsXG4gIFwiRGlzY3JldGVVbmlmb3JtRGlzdHJpYnV0aW9uXCIsXG4gIFwiRGlzY3JldGVWYXJpYWJsZXNcIixcbiAgXCJEaXNjcmV0ZVdhdmVsZXREYXRhXCIsXG4gIFwiRGlzY3JldGVXYXZlbGV0UGFja2V0VHJhbnNmb3JtXCIsXG4gIFwiRGlzY3JldGVXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiRGlzY3JldGl6ZUdyYXBoaWNzXCIsXG4gIFwiRGlzY3JldGl6ZVJlZ2lvblwiLFxuICBcIkRpc2NyaW1pbmFudFwiLFxuICBcIkRpc2pvaW50UVwiLFxuICBcIkRpc2p1bmN0aW9uXCIsXG4gIFwiRGlza1wiLFxuICBcIkRpc2tCb3hcIixcbiAgXCJEaXNrQm94T3B0aW9uc1wiLFxuICBcIkRpc2tNYXRyaXhcIixcbiAgXCJEaXNrU2VnbWVudFwiLFxuICBcIkRpc3BhdGNoXCIsXG4gIFwiRGlzcGF0Y2hRXCIsXG4gIFwiRGlzcGVyc2lvbkVzdGltYXRvckZ1bmN0aW9uXCIsXG4gIFwiRGlzcGxheVwiLFxuICBcIkRpc3BsYXlBbGxTdGVwc1wiLFxuICBcIkRpc3BsYXlFbmRQYWNrZXRcIixcbiAgXCJEaXNwbGF5Rm9ybVwiLFxuICBcIkRpc3BsYXlGdW5jdGlvblwiLFxuICBcIkRpc3BsYXlQYWNrZXRcIixcbiAgXCJEaXNwbGF5UnVsZXNcIixcbiAgXCJEaXNwbGF5U3RyaW5nXCIsXG4gIFwiRGlzcGxheVRlbXBvcmFyeVwiLFxuICBcIkRpc3BsYXlXaXRoXCIsXG4gIFwiRGlzcGxheVdpdGhSZWZcIixcbiAgXCJEaXNwbGF5V2l0aFZhcmlhYmxlXCIsXG4gIFwiRGlzdGFuY2VGdW5jdGlvblwiLFxuICBcIkRpc3RhbmNlTWF0cml4XCIsXG4gIFwiRGlzdGFuY2VUcmFuc2Zvcm1cIixcbiAgXCJEaXN0cmlidXRlXCIsXG4gIFwiRGlzdHJpYnV0ZWRcIixcbiAgXCJEaXN0cmlidXRlZENvbnRleHRzXCIsXG4gIFwiRGlzdHJpYnV0ZURlZmluaXRpb25zXCIsXG4gIFwiRGlzdHJpYnV0aW9uQ2hhcnRcIixcbiAgXCJEaXN0cmlidXRpb25Eb21haW5cIixcbiAgXCJEaXN0cmlidXRpb25GaXRUZXN0XCIsXG4gIFwiRGlzdHJpYnV0aW9uUGFyYW1ldGVyQXNzdW1wdGlvbnNcIixcbiAgXCJEaXN0cmlidXRpb25QYXJhbWV0ZXJRXCIsXG4gIFwiRGl0aGVyaW5nXCIsXG4gIFwiRGl2XCIsXG4gIFwiRGl2ZXJnZW5jZVwiLFxuICBcIkRpdmlkZVwiLFxuICBcIkRpdmlkZUJ5XCIsXG4gIFwiRGl2aWRlcnNcIixcbiAgXCJEaXZpZGVTaWRlc1wiLFxuICBcIkRpdmlzaWJsZVwiLFxuICBcIkRpdmlzb3JzXCIsXG4gIFwiRGl2aXNvclNpZ21hXCIsXG4gIFwiRGl2aXNvclN1bVwiLFxuICBcIkRNU0xpc3RcIixcbiAgXCJETVNTdHJpbmdcIixcbiAgXCJEb1wiLFxuICBcIkRvY2tlZENlbGxcIixcbiAgXCJEb2NrZWRDZWxsc1wiLFxuICBcIkRvY3VtZW50R2VuZXJhdG9yXCIsXG4gIFwiRG9jdW1lbnRHZW5lcmF0b3JJbmZvcm1hdGlvblwiLFxuICBcIkRvY3VtZW50R2VuZXJhdG9ySW5mb3JtYXRpb25EYXRhXCIsXG4gIFwiRG9jdW1lbnRHZW5lcmF0b3JzXCIsXG4gIFwiRG9jdW1lbnROb3RlYm9va1wiLFxuICBcIkRvY3VtZW50V2VpZ2h0aW5nUnVsZXNcIixcbiAgXCJEb2RlY2FoZWRyb25cIixcbiAgXCJEb21haW5SZWdpc3RyYXRpb25JbmZvcm1hdGlvblwiLFxuICBcIkRvbWluYW50Q29sb3JzXCIsXG4gIFwiRG9taW5hdG9yVHJlZUdyYXBoXCIsXG4gIFwiRG9taW5hdG9yVmVydGV4TGlzdFwiLFxuICBcIkRPU1RleHRGb3JtYXRcIixcbiAgXCJEb3RcIixcbiAgXCJEb3REYXNoZWRcIixcbiAgXCJEb3RFcXVhbFwiLFxuICBcIkRvdExheWVyXCIsXG4gIFwiRG90UGx1c0xheWVyXCIsXG4gIFwiRG90dGVkXCIsXG4gIFwiRG91YmxlQnJhY2tldGluZ0JhclwiLFxuICBcIkRvdWJsZUNvbnRvdXJJbnRlZ3JhbFwiLFxuICBcIkRvdWJsZURvd25BcnJvd1wiLFxuICBcIkRvdWJsZUxlZnRBcnJvd1wiLFxuICBcIkRvdWJsZUxlZnRSaWdodEFycm93XCIsXG4gIFwiRG91YmxlTGVmdFRlZVwiLFxuICBcIkRvdWJsZUxvbmdMZWZ0QXJyb3dcIixcbiAgXCJEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3dcIixcbiAgXCJEb3VibGVMb25nUmlnaHRBcnJvd1wiLFxuICBcIkRvdWJsZVJpZ2h0QXJyb3dcIixcbiAgXCJEb3VibGVSaWdodFRlZVwiLFxuICBcIkRvdWJsZVVwQXJyb3dcIixcbiAgXCJEb3VibGVVcERvd25BcnJvd1wiLFxuICBcIkRvdWJsZVZlcnRpY2FsQmFyXCIsXG4gIFwiRG91Ymx5SW5maW5pdGVcIixcbiAgXCJEb3duXCIsXG4gIFwiRG93bkFycm93XCIsXG4gIFwiRG93bkFycm93QmFyXCIsXG4gIFwiRG93bkFycm93VXBBcnJvd1wiLFxuICBcIkRvd25MZWZ0UmlnaHRWZWN0b3JcIixcbiAgXCJEb3duTGVmdFRlZVZlY3RvclwiLFxuICBcIkRvd25MZWZ0VmVjdG9yXCIsXG4gIFwiRG93bkxlZnRWZWN0b3JCYXJcIixcbiAgXCJEb3duUmlnaHRUZWVWZWN0b3JcIixcbiAgXCJEb3duUmlnaHRWZWN0b3JcIixcbiAgXCJEb3duUmlnaHRWZWN0b3JCYXJcIixcbiAgXCJEb3duc2FtcGxlXCIsXG4gIFwiRG93blRlZVwiLFxuICBcIkRvd25UZWVBcnJvd1wiLFxuICBcIkRvd25WYWx1ZXNcIixcbiAgXCJEb3duVmFsdWVzRnVuY3Rpb25cIixcbiAgXCJEcmFnQW5kRHJvcFwiLFxuICBcIkRyYXdCYWNrRmFjZXNcIixcbiAgXCJEcmF3RWRnZXNcIixcbiAgXCJEcmF3RnJvbnRGYWNlc1wiLFxuICBcIkRyYXdIaWdobGlnaHRlZFwiLFxuICBcIkRyYXppbkludmVyc2VcIixcbiAgXCJEcm9wXCIsXG4gIFwiRHJvcG91dExheWVyXCIsXG4gIFwiRHJvcFNoYWRvd2luZ1wiLFxuICBcIkRTb2x2ZVwiLFxuICBcIkRTb2x2ZUNoYW5nZVZhcmlhYmxlc1wiLFxuICBcIkRTb2x2ZVZhbHVlXCIsXG4gIFwiRHRcIixcbiAgXCJEdWFsTGluZWFyUHJvZ3JhbW1pbmdcIixcbiAgXCJEdWFsUGxhbmFyR3JhcGhcIixcbiAgXCJEdWFsUG9seWhlZHJvblwiLFxuICBcIkR1YWxTeXN0ZW1zTW9kZWxcIixcbiAgXCJEdW1wR2V0XCIsXG4gIFwiRHVtcFNhdmVcIixcbiAgXCJEdXBsaWNhdGVGcmVlUVwiLFxuICBcIkR1cmF0aW9uXCIsXG4gIFwiRHluYW1pY1wiLFxuICBcIkR5bmFtaWNCb3hcIixcbiAgXCJEeW5hbWljQm94T3B0aW9uc1wiLFxuICBcIkR5bmFtaWNFdmFsdWF0aW9uVGltZW91dFwiLFxuICBcIkR5bmFtaWNHZW9HcmFwaGljc1wiLFxuICBcIkR5bmFtaWNJbWFnZVwiLFxuICBcIkR5bmFtaWNMb2NhdGlvblwiLFxuICBcIkR5bmFtaWNNb2R1bGVcIixcbiAgXCJEeW5hbWljTW9kdWxlQm94XCIsXG4gIFwiRHluYW1pY01vZHVsZUJveE9wdGlvbnNcIixcbiAgXCJEeW5hbWljTW9kdWxlUGFyZW50XCIsXG4gIFwiRHluYW1pY01vZHVsZVZhbHVlc1wiLFxuICBcIkR5bmFtaWNOYW1lXCIsXG4gIFwiRHluYW1pY05hbWVzcGFjZVwiLFxuICBcIkR5bmFtaWNSZWZlcmVuY2VcIixcbiAgXCJEeW5hbWljU2V0dGluZ1wiLFxuICBcIkR5bmFtaWNVcGRhdGluZ1wiLFxuICBcIkR5bmFtaWNXcmFwcGVyXCIsXG4gIFwiRHluYW1pY1dyYXBwZXJCb3hcIixcbiAgXCJEeW5hbWljV3JhcHBlckJveE9wdGlvbnNcIixcbiAgXCJFXCIsXG4gIFwiRWFydGhJbXBhY3REYXRhXCIsXG4gIFwiRWFydGhxdWFrZURhdGFcIixcbiAgXCJFY2NlbnRyaWNpdHlDZW50cmFsaXR5XCIsXG4gIFwiRWNob1wiLFxuICBcIkVjaG9FdmFsdWF0aW9uXCIsXG4gIFwiRWNob0Z1bmN0aW9uXCIsXG4gIFwiRWNob0xhYmVsXCIsXG4gIFwiRWNob1RpbWluZ1wiLFxuICBcIkVjbGlwc2VUeXBlXCIsXG4gIFwiRWRnZUFkZFwiLFxuICBcIkVkZ2VCZXR3ZWVubmVzc0NlbnRyYWxpdHlcIixcbiAgXCJFZGdlQ2FwYWNpdHlcIixcbiAgXCJFZGdlQ2FwRm9ybVwiLFxuICBcIkVkZ2VDaHJvbWF0aWNOdW1iZXJcIixcbiAgXCJFZGdlQ29sb3JcIixcbiAgXCJFZGdlQ29ubmVjdGl2aXR5XCIsXG4gIFwiRWRnZUNvbnRyYWN0XCIsXG4gIFwiRWRnZUNvc3RcIixcbiAgXCJFZGdlQ291bnRcIixcbiAgXCJFZGdlQ292ZXJRXCIsXG4gIFwiRWRnZUN5Y2xlTWF0cml4XCIsXG4gIFwiRWRnZURhc2hpbmdcIixcbiAgXCJFZGdlRGVsZXRlXCIsXG4gIFwiRWRnZURldGVjdFwiLFxuICBcIkVkZ2VGb3JtXCIsXG4gIFwiRWRnZUluZGV4XCIsXG4gIFwiRWRnZUpvaW5Gb3JtXCIsXG4gIFwiRWRnZUxhYmVsaW5nXCIsXG4gIFwiRWRnZUxhYmVsc1wiLFxuICBcIkVkZ2VMYWJlbFN0eWxlXCIsXG4gIFwiRWRnZUxpc3RcIixcbiAgXCJFZGdlT3BhY2l0eVwiLFxuICBcIkVkZ2VRXCIsXG4gIFwiRWRnZVJlbmRlcmluZ0Z1bmN0aW9uXCIsXG4gIFwiRWRnZVJ1bGVzXCIsXG4gIFwiRWRnZVNoYXBlRnVuY3Rpb25cIixcbiAgXCJFZGdlU3R5bGVcIixcbiAgXCJFZGdlVGFnZ2VkR3JhcGhcIixcbiAgXCJFZGdlVGFnZ2VkR3JhcGhRXCIsXG4gIFwiRWRnZVRhZ3NcIixcbiAgXCJFZGdlVGhpY2tuZXNzXCIsXG4gIFwiRWRnZVRyYW5zaXRpdmVHcmFwaFFcIixcbiAgXCJFZGdlVmFsdWVSYW5nZVwiLFxuICBcIkVkZ2VWYWx1ZVNpemVzXCIsXG4gIFwiRWRnZVdlaWdodFwiLFxuICBcIkVkZ2VXZWlnaHRlZEdyYXBoUVwiLFxuICBcIkVkaXRhYmxlXCIsXG4gIFwiRWRpdEJ1dHRvblNldHRpbmdzXCIsXG4gIFwiRWRpdENlbGxUYWdzU2V0dGluZ3NcIixcbiAgXCJFZGl0RGlzdGFuY2VcIixcbiAgXCJFZmZlY3RpdmVJbnRlcmVzdFwiLFxuICBcIkVpZ2Vuc3lzdGVtXCIsXG4gIFwiRWlnZW52YWx1ZXNcIixcbiAgXCJFaWdlbnZlY3RvckNlbnRyYWxpdHlcIixcbiAgXCJFaWdlbnZlY3RvcnNcIixcbiAgXCJFbGVtZW50XCIsXG4gIFwiRWxlbWVudERhdGFcIixcbiAgXCJFbGVtZW50d2lzZUxheWVyXCIsXG4gIFwiRWxpZGVkRm9ybXNcIixcbiAgXCJFbGltaW5hdGVcIixcbiAgXCJFbGltaW5hdGlvbk9yZGVyXCIsXG4gIFwiRWxsaXBzb2lkXCIsXG4gIFwiRWxsaXB0aWNFXCIsXG4gIFwiRWxsaXB0aWNFeHBcIixcbiAgXCJFbGxpcHRpY0V4cFByaW1lXCIsXG4gIFwiRWxsaXB0aWNGXCIsXG4gIFwiRWxsaXB0aWNGaWx0ZXJNb2RlbFwiLFxuICBcIkVsbGlwdGljS1wiLFxuICBcIkVsbGlwdGljTG9nXCIsXG4gIFwiRWxsaXB0aWNOb21lUVwiLFxuICBcIkVsbGlwdGljUGlcIixcbiAgXCJFbGxpcHRpY1JlZHVjZWRIYWxmUGVyaW9kc1wiLFxuICBcIkVsbGlwdGljVGhldGFcIixcbiAgXCJFbGxpcHRpY1RoZXRhUHJpbWVcIixcbiAgXCJFbWJlZENvZGVcIixcbiAgXCJFbWJlZGRlZEhUTUxcIixcbiAgXCJFbWJlZGRlZFNlcnZpY2VcIixcbiAgXCJFbWJlZGRlZFNRTEVudGl0eUNsYXNzXCIsXG4gIFwiRW1iZWRkZWRTUUxFeHByZXNzaW9uXCIsXG4gIFwiRW1iZWRkaW5nTGF5ZXJcIixcbiAgXCJFbWJlZGRpbmdPYmplY3RcIixcbiAgXCJFbWl0U291bmRcIixcbiAgXCJFbXBoYXNpemVTeW50YXhFcnJvcnNcIixcbiAgXCJFbXBpcmljYWxEaXN0cmlidXRpb25cIixcbiAgXCJFbXB0eVwiLFxuICBcIkVtcHR5R3JhcGhRXCIsXG4gIFwiRW1wdHlSZWdpb25cIixcbiAgXCJFbXB0eVNwYWNlRlwiLFxuICBcIkVuYWJsZUNvbnNvbGVQcmludFBhY2tldFwiLFxuICBcIkVuYWJsZWRcIixcbiAgXCJFbmNsb3NlXCIsXG4gIFwiRW5jb2RlXCIsXG4gIFwiRW5jcnlwdFwiLFxuICBcIkVuY3J5cHRlZE9iamVjdFwiLFxuICBcIkVuY3J5cHRGaWxlXCIsXG4gIFwiRW5kXCIsXG4gIFwiRW5kQWRkXCIsXG4gIFwiRW5kRGlhbG9nUGFja2V0XCIsXG4gIFwiRW5kT2ZCdWZmZXJcIixcbiAgXCJFbmRPZkZpbGVcIixcbiAgXCJFbmRPZkxpbmVcIixcbiAgXCJFbmRPZlN0cmluZ1wiLFxuICBcIkVuZFBhY2thZ2VcIixcbiAgXCJFbmdpbmVFbnZpcm9ubWVudFwiLFxuICBcIkVuZ2luZWVyaW5nRm9ybVwiLFxuICBcIkVudGVyXCIsXG4gIFwiRW50ZXJFeHByZXNzaW9uUGFja2V0XCIsXG4gIFwiRW50ZXJUZXh0UGFja2V0XCIsXG4gIFwiRW50aXR5XCIsXG4gIFwiRW50aXR5Q2xhc3NcIixcbiAgXCJFbnRpdHlDbGFzc0xpc3RcIixcbiAgXCJFbnRpdHlDb3BpZXNcIixcbiAgXCJFbnRpdHlGdW5jdGlvblwiLFxuICBcIkVudGl0eUdyb3VwXCIsXG4gIFwiRW50aXR5SW5zdGFuY2VcIixcbiAgXCJFbnRpdHlMaXN0XCIsXG4gIFwiRW50aXR5UHJlZmV0Y2hcIixcbiAgXCJFbnRpdHlQcm9wZXJ0aWVzXCIsXG4gIFwiRW50aXR5UHJvcGVydHlcIixcbiAgXCJFbnRpdHlQcm9wZXJ0eUNsYXNzXCIsXG4gIFwiRW50aXR5UmVnaXN0ZXJcIixcbiAgXCJFbnRpdHlTdG9yZVwiLFxuICBcIkVudGl0eVN0b3Jlc1wiLFxuICBcIkVudGl0eVR5cGVOYW1lXCIsXG4gIFwiRW50aXR5VW5yZWdpc3RlclwiLFxuICBcIkVudGl0eVZhbHVlXCIsXG4gIFwiRW50cm9weVwiLFxuICBcIkVudHJvcHlGaWx0ZXJcIixcbiAgXCJFbnZpcm9ubWVudFwiLFxuICBcIkVwaWxvZ1wiLFxuICBcIkVwaWxvZ0Z1bmN0aW9uXCIsXG4gIFwiRXF1YWxcIixcbiAgXCJFcXVhbENvbHVtbnNcIixcbiAgXCJFcXVhbFJvd3NcIixcbiAgXCJFcXVhbFRpbGRlXCIsXG4gIFwiRXF1YWxUb1wiLFxuICBcIkVxdWF0ZWRUb1wiLFxuICBcIkVxdWlsaWJyaXVtXCIsXG4gIFwiRXF1aXJpcHBsZUZpbHRlcktlcm5lbFwiLFxuICBcIkVxdWl2YWxlbnRcIixcbiAgXCJFcmZcIixcbiAgXCJFcmZjXCIsXG4gIFwiRXJmaVwiLFxuICBcIkVybGFuZ0JcIixcbiAgXCJFcmxhbmdDXCIsXG4gIFwiRXJsYW5nRGlzdHJpYnV0aW9uXCIsXG4gIFwiRXJvc2lvblwiLFxuICBcIkVycm9yQm94XCIsXG4gIFwiRXJyb3JCb3hPcHRpb25zXCIsXG4gIFwiRXJyb3JOb3JtXCIsXG4gIFwiRXJyb3JQYWNrZXRcIixcbiAgXCJFcnJvcnNEaWFsb2dTZXR0aW5nc1wiLFxuICBcIkVzY2FwZVJhZGl1c1wiLFxuICBcIkVzdGltYXRlZEJhY2tncm91bmRcIixcbiAgXCJFc3RpbWF0ZWREaXN0cmlidXRpb25cIixcbiAgXCJFc3RpbWF0ZWRQb2ludE5vcm1hbHNcIixcbiAgXCJFc3RpbWF0ZWRQb2ludFByb2Nlc3NcIixcbiAgXCJFc3RpbWF0ZWRQcm9jZXNzXCIsXG4gIFwiRXN0aW1hdGVkVmFyaW9ncmFtTW9kZWxcIixcbiAgXCJFc3RpbWF0b3JHYWluc1wiLFxuICBcIkVzdGltYXRvclJlZ3VsYXRvclwiLFxuICBcIkV1Y2xpZGVhbkRpc3RhbmNlXCIsXG4gIFwiRXVsZXJBbmdsZXNcIixcbiAgXCJFdWxlckNoYXJhY3RlcmlzdGljXCIsXG4gIFwiRXVsZXJFXCIsXG4gIFwiRXVsZXJHYW1tYVwiLFxuICBcIkV1bGVyaWFuR3JhcGhRXCIsXG4gIFwiRXVsZXJNYXRyaXhcIixcbiAgXCJFdWxlclBoaVwiLFxuICBcIkV2YWx1YXRhYmxlXCIsXG4gIFwiRXZhbHVhdGVcIixcbiAgXCJFdmFsdWF0ZWRcIixcbiAgXCJFdmFsdWF0ZVBhY2tldFwiLFxuICBcIkV2YWx1YXRlU2NoZWR1bGVkVGFza1wiLFxuICBcIkV2YWx1YXRpb25Cb3hcIixcbiAgXCJFdmFsdWF0aW9uQ2VsbFwiLFxuICBcIkV2YWx1YXRpb25Db21wbGV0aW9uQWN0aW9uXCIsXG4gIFwiRXZhbHVhdGlvbkRhdGFcIixcbiAgXCJFdmFsdWF0aW9uRWxlbWVudHNcIixcbiAgXCJFdmFsdWF0aW9uRW52aXJvbm1lbnRcIixcbiAgXCJFdmFsdWF0aW9uTW9kZVwiLFxuICBcIkV2YWx1YXRpb25Nb25pdG9yXCIsXG4gIFwiRXZhbHVhdGlvbk5vdGVib29rXCIsXG4gIFwiRXZhbHVhdGlvbk9iamVjdFwiLFxuICBcIkV2YWx1YXRpb25PcmRlclwiLFxuICBcIkV2YWx1YXRpb25Qcml2aWxlZ2VzXCIsXG4gIFwiRXZhbHVhdGlvblJhdGVMaW1pdFwiLFxuICBcIkV2YWx1YXRvclwiLFxuICBcIkV2YWx1YXRvck5hbWVzXCIsXG4gIFwiRXZlblFcIixcbiAgXCJFdmVudERhdGFcIixcbiAgXCJFdmVudEV2YWx1YXRvclwiLFxuICBcIkV2ZW50SGFuZGxlclwiLFxuICBcIkV2ZW50SGFuZGxlclRhZ1wiLFxuICBcIkV2ZW50TGFiZWxzXCIsXG4gIFwiRXZlbnRTZXJpZXNcIixcbiAgXCJFeGFjdEJsYWNrbWFuV2luZG93XCIsXG4gIFwiRXhhY3ROdW1iZXJRXCIsXG4gIFwiRXhhY3RSb290SXNvbGF0aW9uXCIsXG4gIFwiRXhhbXBsZURhdGFcIixcbiAgXCJFeGNlcHRcIixcbiAgXCJFeGNsdWRlZENvbnRleHRzXCIsXG4gIFwiRXhjbHVkZWRGb3Jtc1wiLFxuICBcIkV4Y2x1ZGVkTGluZXNcIixcbiAgXCJFeGNsdWRlZFBoeXNpY2FsUXVhbnRpdGllc1wiLFxuICBcIkV4Y2x1ZGVQb2RzXCIsXG4gIFwiRXhjbHVzaW9uc1wiLFxuICBcIkV4Y2x1c2lvbnNTdHlsZVwiLFxuICBcIkV4aXN0c1wiLFxuICBcIkV4aXRcIixcbiAgXCJFeGl0RGlhbG9nXCIsXG4gIFwiRXhvcGxhbmV0RGF0YVwiLFxuICBcIkV4cFwiLFxuICBcIkV4cGFuZFwiLFxuICBcIkV4cGFuZEFsbFwiLFxuICBcIkV4cGFuZERlbm9taW5hdG9yXCIsXG4gIFwiRXhwYW5kRmlsZU5hbWVcIixcbiAgXCJFeHBhbmROdW1lcmF0b3JcIixcbiAgXCJFeHBlY3RhdGlvblwiLFxuICBcIkV4cGVjdGF0aW9uRVwiLFxuICBcIkV4cGVjdGVkVmFsdWVcIixcbiAgXCJFeHBHYW1tYURpc3RyaWJ1dGlvblwiLFxuICBcIkV4cEludGVncmFsRVwiLFxuICBcIkV4cEludGVncmFsRWlcIixcbiAgXCJFeHBpcmF0aW9uRGF0ZVwiLFxuICBcIkV4cG9uZW50XCIsXG4gIFwiRXhwb25lbnRGdW5jdGlvblwiLFxuICBcIkV4cG9uZW50aWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiRXhwb25lbnRpYWxGYW1pbHlcIixcbiAgXCJFeHBvbmVudGlhbEdlbmVyYXRpbmdGdW5jdGlvblwiLFxuICBcIkV4cG9uZW50aWFsTW92aW5nQXZlcmFnZVwiLFxuICBcIkV4cG9uZW50aWFsUG93ZXJEaXN0cmlidXRpb25cIixcbiAgXCJFeHBvbmVudFBvc2l0aW9uXCIsXG4gIFwiRXhwb25lbnRTdGVwXCIsXG4gIFwiRXhwb3J0XCIsXG4gIFwiRXhwb3J0QXV0b1JlcGxhY2VtZW50c1wiLFxuICBcIkV4cG9ydEJ5dGVBcnJheVwiLFxuICBcIkV4cG9ydEZvcm1cIixcbiAgXCJFeHBvcnRQYWNrZXRcIixcbiAgXCJFeHBvcnRTdHJpbmdcIixcbiAgXCJFeHByZXNzaW9uXCIsXG4gIFwiRXhwcmVzc2lvbkNlbGxcIixcbiAgXCJFeHByZXNzaW9uR3JhcGhcIixcbiAgXCJFeHByZXNzaW9uUGFja2V0XCIsXG4gIFwiRXhwcmVzc2lvblRyZWVcIixcbiAgXCJFeHByZXNzaW9uVVVJRFwiLFxuICBcIkV4cFRvVHJpZ1wiLFxuICBcIkV4dGVuZGVkRW50aXR5Q2xhc3NcIixcbiAgXCJFeHRlbmRlZEdDRFwiLFxuICBcIkV4dGVuc2lvblwiLFxuICBcIkV4dGVudEVsZW1lbnRGdW5jdGlvblwiLFxuICBcIkV4dGVudE1hcmtlcnNcIixcbiAgXCJFeHRlbnRTaXplXCIsXG4gIFwiRXh0ZXJuYWxCdW5kbGVcIixcbiAgXCJFeHRlcm5hbENhbGxcIixcbiAgXCJFeHRlcm5hbERhdGFDaGFyYWN0ZXJFbmNvZGluZ1wiLFxuICBcIkV4dGVybmFsRXZhbHVhdGVcIixcbiAgXCJFeHRlcm5hbEZ1bmN0aW9uXCIsXG4gIFwiRXh0ZXJuYWxGdW5jdGlvbk5hbWVcIixcbiAgXCJFeHRlcm5hbElkZW50aWZpZXJcIixcbiAgXCJFeHRlcm5hbE9iamVjdFwiLFxuICBcIkV4dGVybmFsT3B0aW9uc1wiLFxuICBcIkV4dGVybmFsU2Vzc2lvbk9iamVjdFwiLFxuICBcIkV4dGVybmFsU2Vzc2lvbnNcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VCYXNlXCIsXG4gIFwiRXh0ZXJuYWxTdG9yYWdlRG93bmxvYWRcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VHZXRcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VPYmplY3RcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VQdXRcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VVcGxvYWRcIixcbiAgXCJFeHRlcm5hbFR5cGVTaWduYXR1cmVcIixcbiAgXCJFeHRlcm5hbFZhbHVlXCIsXG4gIFwiRXh0cmFjdFwiLFxuICBcIkV4dHJhY3RBcmNoaXZlXCIsXG4gIFwiRXh0cmFjdExheWVyXCIsXG4gIFwiRXh0cmFjdFBhY2xldEFyY2hpdmVcIixcbiAgXCJFeHRyZW1lVmFsdWVEaXN0cmlidXRpb25cIixcbiAgXCJGYWNlQWxpZ25cIixcbiAgXCJGYWNlRm9ybVwiLFxuICBcIkZhY2VHcmlkc1wiLFxuICBcIkZhY2VHcmlkc1N0eWxlXCIsXG4gIFwiRmFjZVJlY29nbml6ZVwiLFxuICBcIkZhY2lhbEZlYXR1cmVzXCIsXG4gIFwiRmFjdG9yXCIsXG4gIFwiRmFjdG9yQ29tcGxldGVcIixcbiAgXCJGYWN0b3JpYWxcIixcbiAgXCJGYWN0b3JpYWwyXCIsXG4gIFwiRmFjdG9yaWFsTW9tZW50XCIsXG4gIFwiRmFjdG9yaWFsTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiRmFjdG9yaWFsUG93ZXJcIixcbiAgXCJGYWN0b3JJbnRlZ2VyXCIsXG4gIFwiRmFjdG9yTGlzdFwiLFxuICBcIkZhY3RvclNxdWFyZUZyZWVcIixcbiAgXCJGYWN0b3JTcXVhcmVGcmVlTGlzdFwiLFxuICBcIkZhY3RvclRlcm1zXCIsXG4gIFwiRmFjdG9yVGVybXNMaXN0XCIsXG4gIFwiRmFpbFwiLFxuICBcIkZhaWx1cmVcIixcbiAgXCJGYWlsdXJlQWN0aW9uXCIsXG4gIFwiRmFpbHVyZURpc3RyaWJ1dGlvblwiLFxuICBcIkZhaWx1cmVRXCIsXG4gIFwiRmFsc2VcIixcbiAgXCJGYXJleVNlcXVlbmNlXCIsXG4gIFwiRkFSSU1BUHJvY2Vzc1wiLFxuICBcIkZlYXR1cmVEaXN0YW5jZVwiLFxuICBcIkZlYXR1cmVFeHRyYWN0XCIsXG4gIFwiRmVhdHVyZUV4dHJhY3Rpb25cIixcbiAgXCJGZWF0dXJlRXh0cmFjdG9yXCIsXG4gIFwiRmVhdHVyZUV4dHJhY3RvckZ1bmN0aW9uXCIsXG4gIFwiRmVhdHVyZUltcGFjdFBsb3RcIixcbiAgXCJGZWF0dXJlTmFtZXNcIixcbiAgXCJGZWF0dXJlTmVhcmVzdFwiLFxuICBcIkZlYXR1cmVTcGFjZVBsb3RcIixcbiAgXCJGZWF0dXJlU3BhY2VQbG90M0RcIixcbiAgXCJGZWF0dXJlVHlwZXNcIixcbiAgXCJGZWF0dXJlVmFsdWVEZXBlbmRlbmN5UGxvdFwiLFxuICBcIkZlYXR1cmVWYWx1ZUltcGFjdFBsb3RcIixcbiAgXCJGRURpc2FibGVDb25zb2xlUHJpbnRQYWNrZXRcIixcbiAgXCJGZWVkYmFja0xpbmVhcml6ZVwiLFxuICBcIkZlZWRiYWNrU2VjdG9yXCIsXG4gIFwiRmVlZGJhY2tTZWN0b3JTdHlsZVwiLFxuICBcIkZlZWRiYWNrVHlwZVwiLFxuICBcIkZFRW5hYmxlQ29uc29sZVByaW50UGFja2V0XCIsXG4gIFwiRmV0YWxHcm93dGhEYXRhXCIsXG4gIFwiRmlib25hY2NpXCIsXG4gIFwiRmlib25vcmlhbFwiLFxuICBcIkZpZWxkQ29tcGxldGlvbkZ1bmN0aW9uXCIsXG4gIFwiRmllbGRIaW50XCIsXG4gIFwiRmllbGRIaW50U3R5bGVcIixcbiAgXCJGaWVsZE1hc2tlZFwiLFxuICBcIkZpZWxkU2l6ZVwiLFxuICBcIkZpbGVcIixcbiAgXCJGaWxlQmFzZU5hbWVcIixcbiAgXCJGaWxlQnl0ZUNvdW50XCIsXG4gIFwiRmlsZUNvbnZlcnRcIixcbiAgXCJGaWxlRGF0ZVwiLFxuICBcIkZpbGVFeGlzdHNRXCIsXG4gIFwiRmlsZUV4dGVuc2lvblwiLFxuICBcIkZpbGVGb3JtYXRcIixcbiAgXCJGaWxlRm9ybWF0UHJvcGVydGllc1wiLFxuICBcIkZpbGVGb3JtYXRRXCIsXG4gIFwiRmlsZUhhbmRsZXJcIixcbiAgXCJGaWxlSGFzaFwiLFxuICBcIkZpbGVJbmZvcm1hdGlvblwiLFxuICBcIkZpbGVOYW1lXCIsXG4gIFwiRmlsZU5hbWVEZXB0aFwiLFxuICBcIkZpbGVOYW1lRGlhbG9nU2V0dGluZ3NcIixcbiAgXCJGaWxlTmFtZURyb3BcIixcbiAgXCJGaWxlTmFtZUZvcm1zXCIsXG4gIFwiRmlsZU5hbWVKb2luXCIsXG4gIFwiRmlsZU5hbWVzXCIsXG4gIFwiRmlsZU5hbWVTZXR0ZXJcIixcbiAgXCJGaWxlTmFtZVNwbGl0XCIsXG4gIFwiRmlsZU5hbWVUYWtlXCIsXG4gIFwiRmlsZU5hbWVUb0Zvcm1hdExpc3RcIixcbiAgXCJGaWxlUHJpbnRcIixcbiAgXCJGaWxlU2l6ZVwiLFxuICBcIkZpbGVTeXN0ZW1NYXBcIixcbiAgXCJGaWxlU3lzdGVtU2NhblwiLFxuICBcIkZpbGVTeXN0ZW1UcmVlXCIsXG4gIFwiRmlsZVRlbXBsYXRlXCIsXG4gIFwiRmlsZVRlbXBsYXRlQXBwbHlcIixcbiAgXCJGaWxlVHlwZVwiLFxuICBcIkZpbGxlZEN1cnZlXCIsXG4gIFwiRmlsbGVkQ3VydmVCb3hcIixcbiAgXCJGaWxsZWRDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJGaWxsZWRUb3J1c1wiLFxuICBcIkZpbGxGb3JtXCIsXG4gIFwiRmlsbGluZ1wiLFxuICBcIkZpbGxpbmdTdHlsZVwiLFxuICBcIkZpbGxpbmdUcmFuc2Zvcm1cIixcbiAgXCJGaWx0ZXJlZEVudGl0eUNsYXNzXCIsXG4gIFwiRmlsdGVyUnVsZXNcIixcbiAgXCJGaW5hbmNpYWxCb25kXCIsXG4gIFwiRmluYW5jaWFsRGF0YVwiLFxuICBcIkZpbmFuY2lhbERlcml2YXRpdmVcIixcbiAgXCJGaW5hbmNpYWxJbmRpY2F0b3JcIixcbiAgXCJGaW5kXCIsXG4gIFwiRmluZEFub21hbGllc1wiLFxuICBcIkZpbmRBcmdNYXhcIixcbiAgXCJGaW5kQXJnTWluXCIsXG4gIFwiRmluZENoYW5uZWxzXCIsXG4gIFwiRmluZENsaXF1ZVwiLFxuICBcIkZpbmRDbHVzdGVyc1wiLFxuICBcIkZpbmRDb29raWVzXCIsXG4gIFwiRmluZEN1cnZlUGF0aFwiLFxuICBcIkZpbmRDeWNsZVwiLFxuICBcIkZpbmREZXZpY2VzXCIsXG4gIFwiRmluZERpc3RyaWJ1dGlvblwiLFxuICBcIkZpbmREaXN0cmlidXRpb25QYXJhbWV0ZXJzXCIsXG4gIFwiRmluZERpdmlzaW9uc1wiLFxuICBcIkZpbmRFZGdlQ29sb3JpbmdcIixcbiAgXCJGaW5kRWRnZUNvdmVyXCIsXG4gIFwiRmluZEVkZ2VDdXRcIixcbiAgXCJGaW5kRWRnZUluZGVwZW5kZW50UGF0aHNcIixcbiAgXCJGaW5kRXF1YXRpb25hbFByb29mXCIsXG4gIFwiRmluZEV1bGVyaWFuQ3ljbGVcIixcbiAgXCJGaW5kRXh0ZXJuYWxFdmFsdWF0b3JzXCIsXG4gIFwiRmluZEZhY2VzXCIsXG4gIFwiRmluZEZpbGVcIixcbiAgXCJGaW5kRml0XCIsXG4gIFwiRmluZEZvcm11bGFcIixcbiAgXCJGaW5kRnVuZGFtZW50YWxDeWNsZXNcIixcbiAgXCJGaW5kR2VuZXJhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiRmluZEdlb0xvY2F0aW9uXCIsXG4gIFwiRmluZEdlb21ldHJpY0NvbmplY3R1cmVzXCIsXG4gIFwiRmluZEdlb21ldHJpY1RyYW5zZm9ybVwiLFxuICBcIkZpbmRHcmFwaENvbW11bml0aWVzXCIsXG4gIFwiRmluZEdyYXBoSXNvbW9ycGhpc21cIixcbiAgXCJGaW5kR3JhcGhQYXJ0aXRpb25cIixcbiAgXCJGaW5kSGFtaWx0b25pYW5DeWNsZVwiLFxuICBcIkZpbmRIYW1pbHRvbmlhblBhdGhcIixcbiAgXCJGaW5kSGlkZGVuTWFya292U3RhdGVzXCIsXG4gIFwiRmluZEltYWdlVGV4dFwiLFxuICBcIkZpbmRJbmRlcGVuZGVudEVkZ2VTZXRcIixcbiAgXCJGaW5kSW5kZXBlbmRlbnRWZXJ0ZXhTZXRcIixcbiAgXCJGaW5kSW5zdGFuY2VcIixcbiAgXCJGaW5kSW50ZWdlck51bGxWZWN0b3JcIixcbiAgXCJGaW5kSXNvbWVyc1wiLFxuICBcIkZpbmRJc29tb3JwaGljU3ViZ3JhcGhcIixcbiAgXCJGaW5kS0NsYW5cIixcbiAgXCJGaW5kS0NsaXF1ZVwiLFxuICBcIkZpbmRLQ2x1YlwiLFxuICBcIkZpbmRLUGxleFwiLFxuICBcIkZpbmRMaWJyYXJ5XCIsXG4gIFwiRmluZExpbmVhclJlY3VycmVuY2VcIixcbiAgXCJGaW5kTGlzdFwiLFxuICBcIkZpbmRNYXRjaGluZ0NvbG9yXCIsXG4gIFwiRmluZE1heGltdW1cIixcbiAgXCJGaW5kTWF4aW11bUN1dFwiLFxuICBcIkZpbmRNYXhpbXVtRmxvd1wiLFxuICBcIkZpbmRNYXhWYWx1ZVwiLFxuICBcIkZpbmRNZXNoRGVmZWN0c1wiLFxuICBcIkZpbmRNaW5pbXVtXCIsXG4gIFwiRmluZE1pbmltdW1Db3N0Rmxvd1wiLFxuICBcIkZpbmRNaW5pbXVtQ3V0XCIsXG4gIFwiRmluZE1pblZhbHVlXCIsXG4gIFwiRmluZE1vbGVjdWxlU3Vic3RydWN0dXJlXCIsXG4gIFwiRmluZFBhdGhcIixcbiAgXCJGaW5kUGVha3NcIixcbiAgXCJGaW5kUGVybXV0YXRpb25cIixcbiAgXCJGaW5kUGxhbmFyQ29sb3JpbmdcIixcbiAgXCJGaW5kUG9pbnRQcm9jZXNzUGFyYW1ldGVyc1wiLFxuICBcIkZpbmRQb3N0bWFuVG91clwiLFxuICBcIkZpbmRQcm9jZXNzUGFyYW1ldGVyc1wiLFxuICBcIkZpbmRSZWdpb25UcmFuc2Zvcm1cIixcbiAgXCJGaW5kUmVwZWF0XCIsXG4gIFwiRmluZFJvb3RcIixcbiAgXCJGaW5kU2VxdWVuY2VGdW5jdGlvblwiLFxuICBcIkZpbmRTZXR0aW5nc1wiLFxuICBcIkZpbmRTaG9ydGVzdFBhdGhcIixcbiAgXCJGaW5kU2hvcnRlc3RUb3VyXCIsXG4gIFwiRmluZFNwYW5uaW5nVHJlZVwiLFxuICBcIkZpbmRTdWJncmFwaElzb21vcnBoaXNtXCIsXG4gIFwiRmluZFN5c3RlbU1vZGVsRXF1aWxpYnJpdW1cIixcbiAgXCJGaW5kVGV4dHVhbEFuc3dlclwiLFxuICBcIkZpbmRUaHJlc2hvbGRcIixcbiAgXCJGaW5kVHJhbnNpZW50UmVwZWF0XCIsXG4gIFwiRmluZFZlcnRleENvbG9yaW5nXCIsXG4gIFwiRmluZFZlcnRleENvdmVyXCIsXG4gIFwiRmluZFZlcnRleEN1dFwiLFxuICBcIkZpbmRWZXJ0ZXhJbmRlcGVuZGVudFBhdGhzXCIsXG4gIFwiRmluZVwiLFxuICBcIkZpbmlzaER5bmFtaWNcIixcbiAgXCJGaW5pdGVBYmVsaWFuR3JvdXBDb3VudFwiLFxuICBcIkZpbml0ZUdyb3VwQ291bnRcIixcbiAgXCJGaW5pdGVHcm91cERhdGFcIixcbiAgXCJGaXJzdFwiLFxuICBcIkZpcnN0Q2FzZVwiLFxuICBcIkZpcnN0UGFzc2FnZVRpbWVEaXN0cmlidXRpb25cIixcbiAgXCJGaXJzdFBvc2l0aW9uXCIsXG4gIFwiRmlzY2hlckdyb3VwRmkyMlwiLFxuICBcIkZpc2NoZXJHcm91cEZpMjNcIixcbiAgXCJGaXNjaGVyR3JvdXBGaTI0UHJpbWVcIixcbiAgXCJGaXNoZXJIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkZpc2hlclJhdGlvVGVzdFwiLFxuICBcIkZpc2hlclpEaXN0cmlidXRpb25cIixcbiAgXCJGaXRcIixcbiAgXCJGaXRBbGxcIixcbiAgXCJGaXRSZWd1bGFyaXphdGlvblwiLFxuICBcIkZpdHRlZE1vZGVsXCIsXG4gIFwiRml4ZWRPcmRlclwiLFxuICBcIkZpeGVkUG9pbnRcIixcbiAgXCJGaXhlZFBvaW50TGlzdFwiLFxuICBcIkZsYXNoU2VsZWN0aW9uXCIsXG4gIFwiRmxhdFwiLFxuICBcIkZsYXRTaGFkaW5nXCIsXG4gIFwiRmxhdHRlblwiLFxuICBcIkZsYXR0ZW5BdFwiLFxuICBcIkZsYXR0ZW5MYXllclwiLFxuICBcIkZsYXRUb3BXaW5kb3dcIixcbiAgXCJGbGlnaHREYXRhXCIsXG4gIFwiRmxpcFZpZXdcIixcbiAgXCJGbG9vclwiLFxuICBcIkZsb3dQb2x5bm9taWFsXCIsXG4gIFwiRm9sZFwiLFxuICBcIkZvbGRMaXN0XCIsXG4gIFwiRm9sZFBhaXJcIixcbiAgXCJGb2xkUGFpckxpc3RcIixcbiAgXCJGb2xkV2hpbGVcIixcbiAgXCJGb2xkV2hpbGVMaXN0XCIsXG4gIFwiRm9sbG93UmVkaXJlY3RzXCIsXG4gIFwiRm9udFwiLFxuICBcIkZvbnRDb2xvclwiLFxuICBcIkZvbnRGYW1pbHlcIixcbiAgXCJGb250Rm9ybVwiLFxuICBcIkZvbnROYW1lXCIsXG4gIFwiRm9udE9wYWNpdHlcIixcbiAgXCJGb250UG9zdFNjcmlwdE5hbWVcIixcbiAgXCJGb250UHJvcGVydGllc1wiLFxuICBcIkZvbnRSZWVuY29kaW5nXCIsXG4gIFwiRm9udFNpemVcIixcbiAgXCJGb250U2xhbnRcIixcbiAgXCJGb250U3Vic3RpdHV0aW9uc1wiLFxuICBcIkZvbnRUcmFja2luZ1wiLFxuICBcIkZvbnRWYXJpYXRpb25zXCIsXG4gIFwiRm9udFdlaWdodFwiLFxuICBcIkZvclwiLFxuICBcIkZvckFsbFwiLFxuICBcIkZvckFsbFR5cGVcIixcbiAgXCJGb3JjZVZlcnNpb25JbnN0YWxsXCIsXG4gIFwiRm9ybWF0XCIsXG4gIFwiRm9ybWF0UnVsZXNcIixcbiAgXCJGb3JtYXRUeXBlXCIsXG4gIFwiRm9ybWF0VHlwZUF1dG9Db252ZXJ0XCIsXG4gIFwiRm9ybWF0VmFsdWVzXCIsXG4gIFwiRm9ybUJveFwiLFxuICBcIkZvcm1Cb3hPcHRpb25zXCIsXG4gIFwiRm9ybUNvbnRyb2xcIixcbiAgXCJGb3JtRnVuY3Rpb25cIixcbiAgXCJGb3JtTGF5b3V0RnVuY3Rpb25cIixcbiAgXCJGb3JtT2JqZWN0XCIsXG4gIFwiRm9ybVBhZ2VcIixcbiAgXCJGb3JtUHJvdGVjdGlvbk1ldGhvZFwiLFxuICBcIkZvcm1UaGVtZVwiLFxuICBcIkZvcm11bGFEYXRhXCIsXG4gIFwiRm9ybXVsYUxvb2t1cFwiLFxuICBcIkZvcnRyYW5Gb3JtXCIsXG4gIFwiRm9yd2FyZFwiLFxuICBcIkZvcndhcmRCYWNrd2FyZFwiLFxuICBcIkZvcndhcmRDbG91ZENyZWRlbnRpYWxzXCIsXG4gIFwiRm91cmllclwiLFxuICBcIkZvdXJpZXJDb2VmZmljaWVudFwiLFxuICBcIkZvdXJpZXJDb3NDb2VmZmljaWVudFwiLFxuICBcIkZvdXJpZXJDb3NTZXJpZXNcIixcbiAgXCJGb3VyaWVyQ29zVHJhbnNmb3JtXCIsXG4gIFwiRm91cmllckRDVFwiLFxuICBcIkZvdXJpZXJEQ1RGaWx0ZXJcIixcbiAgXCJGb3VyaWVyRENUTWF0cml4XCIsXG4gIFwiRm91cmllckRTVFwiLFxuICBcIkZvdXJpZXJEU1RNYXRyaXhcIixcbiAgXCJGb3VyaWVyTWF0cml4XCIsXG4gIFwiRm91cmllclBhcmFtZXRlcnNcIixcbiAgXCJGb3VyaWVyU2VxdWVuY2VUcmFuc2Zvcm1cIixcbiAgXCJGb3VyaWVyU2VyaWVzXCIsXG4gIFwiRm91cmllclNpbkNvZWZmaWNpZW50XCIsXG4gIFwiRm91cmllclNpblNlcmllc1wiLFxuICBcIkZvdXJpZXJTaW5UcmFuc2Zvcm1cIixcbiAgXCJGb3VyaWVyVHJhbnNmb3JtXCIsXG4gIFwiRm91cmllclRyaWdTZXJpZXNcIixcbiAgXCJGb3hIXCIsXG4gIFwiRm94SFJlZHVjZVwiLFxuICBcIkZyYWN0aW9uYWxCcm93bmlhbk1vdGlvblByb2Nlc3NcIixcbiAgXCJGcmFjdGlvbmFsRFwiLFxuICBcIkZyYWN0aW9uYWxHYXVzc2lhbk5vaXNlUHJvY2Vzc1wiLFxuICBcIkZyYWN0aW9uYWxQYXJ0XCIsXG4gIFwiRnJhY3Rpb25Cb3hcIixcbiAgXCJGcmFjdGlvbkJveE9wdGlvbnNcIixcbiAgXCJGcmFjdGlvbkxpbmVcIixcbiAgXCJGcmFtZVwiLFxuICBcIkZyYW1lQm94XCIsXG4gIFwiRnJhbWVCb3hPcHRpb25zXCIsXG4gIFwiRnJhbWVkXCIsXG4gIFwiRnJhbWVJbnNldFwiLFxuICBcIkZyYW1lTGFiZWxcIixcbiAgXCJGcmFtZWxlc3NcIixcbiAgXCJGcmFtZUxpc3RWaWRlb1wiLFxuICBcIkZyYW1lTWFyZ2luc1wiLFxuICBcIkZyYW1lUmF0ZVwiLFxuICBcIkZyYW1lU3R5bGVcIixcbiAgXCJGcmFtZVRpY2tzXCIsXG4gIFwiRnJhbWVUaWNrc1N0eWxlXCIsXG4gIFwiRlJhdGlvRGlzdHJpYnV0aW9uXCIsXG4gIFwiRnJlY2hldERpc3RyaWJ1dGlvblwiLFxuICBcIkZyZWVRXCIsXG4gIFwiRnJlbmV0U2VycmV0U3lzdGVtXCIsXG4gIFwiRnJlcXVlbmN5U2FtcGxpbmdGaWx0ZXJLZXJuZWxcIixcbiAgXCJGcmVzbmVsQ1wiLFxuICBcIkZyZXNuZWxGXCIsXG4gIFwiRnJlc25lbEdcIixcbiAgXCJGcmVzbmVsU1wiLFxuICBcIkZyaWRheVwiLFxuICBcIkZyb2Jlbml1c051bWJlclwiLFxuICBcIkZyb2Jlbml1c1NvbHZlXCIsXG4gIFwiRnJvbUFic29sdXRlVGltZVwiLFxuICBcIkZyb21DaGFyYWN0ZXJDb2RlXCIsXG4gIFwiRnJvbUNvZWZmaWNpZW50UnVsZXNcIixcbiAgXCJGcm9tQ29udGludWVkRnJhY3Rpb25cIixcbiAgXCJGcm9tRGF0ZVwiLFxuICBcIkZyb21EYXRlU3RyaW5nXCIsXG4gIFwiRnJvbURpZ2l0c1wiLFxuICBcIkZyb21ETVNcIixcbiAgXCJGcm9tRW50aXR5XCIsXG4gIFwiRnJvbUp1bGlhbkRhdGVcIixcbiAgXCJGcm9tTGV0dGVyTnVtYmVyXCIsXG4gIFwiRnJvbVBvbGFyQ29vcmRpbmF0ZXNcIixcbiAgXCJGcm9tUmF3UG9pbnRlclwiLFxuICBcIkZyb21Sb21hbk51bWVyYWxcIixcbiAgXCJGcm9tU3BoZXJpY2FsQ29vcmRpbmF0ZXNcIixcbiAgXCJGcm9tVW5peFRpbWVcIixcbiAgXCJGcm9udFwiLFxuICBcIkZyb250RW5kRHluYW1pY0V4cHJlc3Npb25cIixcbiAgXCJGcm9udEVuZEV2ZW50QWN0aW9uc1wiLFxuICBcIkZyb250RW5kRXhlY3V0ZVwiLFxuICBcIkZyb250RW5kT2JqZWN0XCIsXG4gIFwiRnJvbnRFbmRSZXNvdXJjZVwiLFxuICBcIkZyb250RW5kUmVzb3VyY2VTdHJpbmdcIixcbiAgXCJGcm9udEVuZFN0YWNrU2l6ZVwiLFxuICBcIkZyb250RW5kVG9rZW5cIixcbiAgXCJGcm9udEVuZFRva2VuRXhlY3V0ZVwiLFxuICBcIkZyb250RW5kVmFsdWVDYWNoZVwiLFxuICBcIkZyb250RW5kVmVyc2lvblwiLFxuICBcIkZyb250RmFjZUNvbG9yXCIsXG4gIFwiRnJvbnRGYWNlR2xvd0NvbG9yXCIsXG4gIFwiRnJvbnRGYWNlT3BhY2l0eVwiLFxuICBcIkZyb250RmFjZVNwZWN1bGFyQ29sb3JcIixcbiAgXCJGcm9udEZhY2VTcGVjdWxhckV4cG9uZW50XCIsXG4gIFwiRnJvbnRGYWNlU3VyZmFjZUFwcGVhcmFuY2VcIixcbiAgXCJGcm9udEZhY2VUZXh0dXJlXCIsXG4gIFwiRnVsbFwiLFxuICBcIkZ1bGxBeGVzXCIsXG4gIFwiRnVsbERlZmluaXRpb25cIixcbiAgXCJGdWxsRm9ybVwiLFxuICBcIkZ1bGxHcmFwaGljc1wiLFxuICBcIkZ1bGxJbmZvcm1hdGlvbk91dHB1dFJlZ3VsYXRvclwiLFxuICBcIkZ1bGxPcHRpb25zXCIsXG4gIFwiRnVsbFJlZ2lvblwiLFxuICBcIkZ1bGxTaW1wbGlmeVwiLFxuICBcIkZ1bmN0aW9uXCIsXG4gIFwiRnVuY3Rpb25BbmFseXRpY1wiLFxuICBcIkZ1bmN0aW9uQmlqZWN0aXZlXCIsXG4gIFwiRnVuY3Rpb25Db21waWxlXCIsXG4gIFwiRnVuY3Rpb25Db21waWxlRXhwb3J0XCIsXG4gIFwiRnVuY3Rpb25Db21waWxlRXhwb3J0Qnl0ZUFycmF5XCIsXG4gIFwiRnVuY3Rpb25Db21waWxlRXhwb3J0TGlicmFyeVwiLFxuICBcIkZ1bmN0aW9uQ29tcGlsZUV4cG9ydFN0cmluZ1wiLFxuICBcIkZ1bmN0aW9uQ29udGludW91c1wiLFxuICBcIkZ1bmN0aW9uQ29udmV4aXR5XCIsXG4gIFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxuICBcIkZ1bmN0aW9uRGlzY29udGludWl0aWVzXCIsXG4gIFwiRnVuY3Rpb25Eb21haW5cIixcbiAgXCJGdW5jdGlvbkV4cGFuZFwiLFxuICBcIkZ1bmN0aW9uSW5qZWN0aXZlXCIsXG4gIFwiRnVuY3Rpb25JbnRlcnBvbGF0aW9uXCIsXG4gIFwiRnVuY3Rpb25MYXllclwiLFxuICBcIkZ1bmN0aW9uTWVyb21vcnBoaWNcIixcbiAgXCJGdW5jdGlvbk1vbm90b25pY2l0eVwiLFxuICBcIkZ1bmN0aW9uUGVyaW9kXCIsXG4gIFwiRnVuY3Rpb25Qb2xlc1wiLFxuICBcIkZ1bmN0aW9uUmFuZ2VcIixcbiAgXCJGdW5jdGlvblNpZ25cIixcbiAgXCJGdW5jdGlvblNpbmd1bGFyaXRpZXNcIixcbiAgXCJGdW5jdGlvblNwYWNlXCIsXG4gIFwiRnVuY3Rpb25TdXJqZWN0aXZlXCIsXG4gIFwiRnVzc2VsbFZlc2VseUltcG9ydGFuY2VcIixcbiAgXCJHYWJvckZpbHRlclwiLFxuICBcIkdhYm9yTWF0cml4XCIsXG4gIFwiR2Fib3JXYXZlbGV0XCIsXG4gIFwiR2Fpbk1hcmdpbnNcIixcbiAgXCJHYWluUGhhc2VNYXJnaW5zXCIsXG4gIFwiR2FsYXh5RGF0YVwiLFxuICBcIkdhbGxlcnlWaWV3XCIsXG4gIFwiR2FtbWFcIixcbiAgXCJHYW1tYURpc3RyaWJ1dGlvblwiLFxuICBcIkdhbW1hUmVndWxhcml6ZWRcIixcbiAgXCJHYXBQZW5hbHR5XCIsXG4gIFwiR0FSQ0hQcm9jZXNzXCIsXG4gIFwiR2F0ZWRSZWN1cnJlbnRMYXllclwiLFxuICBcIkdhdGhlclwiLFxuICBcIkdhdGhlckJ5XCIsXG4gIFwiR2F1Z2VGYWNlRWxlbWVudEZ1bmN0aW9uXCIsXG4gIFwiR2F1Z2VGYWNlU3R5bGVcIixcbiAgXCJHYXVnZUZyYW1lRWxlbWVudEZ1bmN0aW9uXCIsXG4gIFwiR2F1Z2VGcmFtZVNpemVcIixcbiAgXCJHYXVnZUZyYW1lU3R5bGVcIixcbiAgXCJHYXVnZUxhYmVsc1wiLFxuICBcIkdhdWdlTWFya2Vyc1wiLFxuICBcIkdhdWdlU3R5bGVcIixcbiAgXCJHYXVzc2lhbkZpbHRlclwiLFxuICBcIkdhdXNzaWFuSW50ZWdlcnNcIixcbiAgXCJHYXVzc2lhbk1hdHJpeFwiLFxuICBcIkdhdXNzaWFuT3J0aG9nb25hbE1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkdhdXNzaWFuU3ltcGxlY3RpY01hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkdhdXNzaWFuVW5pdGFyeU1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkdhdXNzaWFuV2luZG93XCIsXG4gIFwiR0NEXCIsXG4gIFwiR2VnZW5iYXVlckNcIixcbiAgXCJHZW5lcmFsXCIsXG4gIFwiR2VuZXJhbGl6ZWRMaW5lYXJNb2RlbEZpdFwiLFxuICBcIkdlbmVyYXRlQXN5bW1ldHJpY0tleVBhaXJcIixcbiAgXCJHZW5lcmF0ZUNvbmRpdGlvbnNcIixcbiAgXCJHZW5lcmF0ZWRBc3NldEZvcm1hdFwiLFxuICBcIkdlbmVyYXRlZEFzc2V0TG9jYXRpb25cIixcbiAgXCJHZW5lcmF0ZWRDZWxsXCIsXG4gIFwiR2VuZXJhdGVkQ2VsbFN0eWxlc1wiLFxuICBcIkdlbmVyYXRlZERvY3VtZW50QmluZGluZ1wiLFxuICBcIkdlbmVyYXRlRGVyaXZlZEtleVwiLFxuICBcIkdlbmVyYXRlRGlnaXRhbFNpZ25hdHVyZVwiLFxuICBcIkdlbmVyYXRlRG9jdW1lbnRcIixcbiAgXCJHZW5lcmF0ZWRQYXJhbWV0ZXJzXCIsXG4gIFwiR2VuZXJhdGVkUXVhbnRpdHlNYWduaXR1ZGVzXCIsXG4gIFwiR2VuZXJhdGVGaWxlU2lnbmF0dXJlXCIsXG4gIFwiR2VuZXJhdGVIVFRQUmVzcG9uc2VcIixcbiAgXCJHZW5lcmF0ZVNlY3VyZWRBdXRoZW50aWNhdGlvbktleVwiLFxuICBcIkdlbmVyYXRlU3ltbWV0cmljS2V5XCIsXG4gIFwiR2VuZXJhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiR2VuZXJhdG9yRGVzY3JpcHRpb25cIixcbiAgXCJHZW5lcmF0b3JIaXN0b3J5TGVuZ3RoXCIsXG4gIFwiR2VuZXJhdG9yT3V0cHV0VHlwZVwiLFxuICBcIkdlbmVyaWNcIixcbiAgXCJHZW5lcmljQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uXCIsXG4gIFwiR2Vub21lRGF0YVwiLFxuICBcIkdlbm9tZUxvb2t1cFwiLFxuICBcIkdlb0FudGlwb2RlXCIsXG4gIFwiR2VvQXJlYVwiLFxuICBcIkdlb0FycmF5U2l6ZVwiLFxuICBcIkdlb0JhY2tncm91bmRcIixcbiAgXCJHZW9Cb3VuZGFyeVwiLFxuICBcIkdlb0JvdW5kaW5nQm94XCIsXG4gIFwiR2VvQm91bmRzXCIsXG4gIFwiR2VvQm91bmRzUmVnaW9uXCIsXG4gIFwiR2VvQm91bmRzUmVnaW9uQm91bmRhcnlcIixcbiAgXCJHZW9CdWJibGVDaGFydFwiLFxuICBcIkdlb0NlbnRlclwiLFxuICBcIkdlb0NpcmNsZVwiLFxuICBcIkdlb0NvbnRvdXJQbG90XCIsXG4gIFwiR2VvRGVuc2l0eVBsb3RcIixcbiAgXCJHZW9kZXNpY0Nsb3NpbmdcIixcbiAgXCJHZW9kZXNpY0RpbGF0aW9uXCIsXG4gIFwiR2VvZGVzaWNFcm9zaW9uXCIsXG4gIFwiR2VvZGVzaWNPcGVuaW5nXCIsXG4gIFwiR2VvZGVzaWNQb2x5aGVkcm9uXCIsXG4gIFwiR2VvRGVzdGluYXRpb25cIixcbiAgXCJHZW9kZXN5RGF0YVwiLFxuICBcIkdlb0RpcmVjdGlvblwiLFxuICBcIkdlb0Rpc2tcIixcbiAgXCJHZW9EaXNwbGFjZW1lbnRcIixcbiAgXCJHZW9EaXN0YW5jZVwiLFxuICBcIkdlb0Rpc3RhbmNlTGlzdFwiLFxuICBcIkdlb0VsZXZhdGlvbkRhdGFcIixcbiAgXCJHZW9FbnRpdGllc1wiLFxuICBcIkdlb0dyYXBoaWNzXCIsXG4gIFwiR2VvR3JhcGhQbG90XCIsXG4gIFwiR2VvR3JhcGhWYWx1ZVBsb3RcIixcbiAgXCJHZW9ncmF2aXR5TW9kZWxEYXRhXCIsXG4gIFwiR2VvR3JpZERpcmVjdGlvbkRpZmZlcmVuY2VcIixcbiAgXCJHZW9HcmlkTGluZXNcIixcbiAgXCJHZW9HcmlkTGluZXNTdHlsZVwiLFxuICBcIkdlb0dyaWRQb3NpdGlvblwiLFxuICBcIkdlb0dyaWRSYW5nZVwiLFxuICBcIkdlb0dyaWRSYW5nZVBhZGRpbmdcIixcbiAgXCJHZW9HcmlkVW5pdEFyZWFcIixcbiAgXCJHZW9HcmlkVW5pdERpc3RhbmNlXCIsXG4gIFwiR2VvR3JpZFZlY3RvclwiLFxuICBcIkdlb0dyb3VwXCIsXG4gIFwiR2VvSGVtaXNwaGVyZVwiLFxuICBcIkdlb0hlbWlzcGhlcmVCb3VuZGFyeVwiLFxuICBcIkdlb0hpc3RvZ3JhbVwiLFxuICBcIkdlb0lkZW50aWZ5XCIsXG4gIFwiR2VvSW1hZ2VcIixcbiAgXCJHZW9MYWJlbHNcIixcbiAgXCJHZW9MZW5ndGhcIixcbiAgXCJHZW9MaXN0UGxvdFwiLFxuICBcIkdlb0xvY2F0aW9uXCIsXG4gIFwiR2VvbG9naWNhbFBlcmlvZERhdGFcIixcbiAgXCJHZW9tYWduZXRpY01vZGVsRGF0YVwiLFxuICBcIkdlb01hcmtlclwiLFxuICBcIkdlb21ldHJpY0Fzc2VydGlvblwiLFxuICBcIkdlb21ldHJpY0Jyb3duaWFuTW90aW9uUHJvY2Vzc1wiLFxuICBcIkdlb21ldHJpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkdlb21ldHJpY01lYW5cIixcbiAgXCJHZW9tZXRyaWNNZWFuRmlsdGVyXCIsXG4gIFwiR2VvbWV0cmljT3B0aW1pemF0aW9uXCIsXG4gIFwiR2VvbWV0cmljU2NlbmVcIixcbiAgXCJHZW9tZXRyaWNTdGVwXCIsXG4gIFwiR2VvbWV0cmljU3R5bGluZ1J1bGVzXCIsXG4gIFwiR2VvbWV0cmljVGVzdFwiLFxuICBcIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uXCIsXG4gIFwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb24zREJveFwiLFxuICBcIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uM0RCb3hPcHRpb25zXCIsXG4gIFwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb25Cb3hcIixcbiAgXCJHZW9tZXRyaWNUcmFuc2Zvcm1hdGlvbkJveE9wdGlvbnNcIixcbiAgXCJHZW9Nb2RlbFwiLFxuICBcIkdlb05lYXJlc3RcIixcbiAgXCJHZW9PcmllbnRhdGlvbkRhdGFcIixcbiAgXCJHZW9QYXRoXCIsXG4gIFwiR2VvUG9seWdvblwiLFxuICBcIkdlb1Bvc2l0aW9uXCIsXG4gIFwiR2VvUG9zaXRpb25FTlVcIixcbiAgXCJHZW9Qb3NpdGlvblhZWlwiLFxuICBcIkdlb1Byb2plY3Rpb25cIixcbiAgXCJHZW9Qcm9qZWN0aW9uRGF0YVwiLFxuICBcIkdlb1JhbmdlXCIsXG4gIFwiR2VvUmFuZ2VQYWRkaW5nXCIsXG4gIFwiR2VvUmVnaW9uVmFsdWVQbG90XCIsXG4gIFwiR2VvUmVzb2x1dGlvblwiLFxuICBcIkdlb1NjYWxlQmFyXCIsXG4gIFwiR2VvU2VydmVyXCIsXG4gIFwiR2VvU21vb3RoSGlzdG9ncmFtXCIsXG4gIFwiR2VvU3RyZWFtUGxvdFwiLFxuICBcIkdlb1N0eWxpbmdcIixcbiAgXCJHZW9TdHlsaW5nSW1hZ2VGdW5jdGlvblwiLFxuICBcIkdlb1ZhcmlhbnRcIixcbiAgXCJHZW9WZWN0b3JcIixcbiAgXCJHZW9WZWN0b3JFTlVcIixcbiAgXCJHZW9WZWN0b3JQbG90XCIsXG4gIFwiR2VvVmVjdG9yWFlaXCIsXG4gIFwiR2VvVmlzaWJsZVJlZ2lvblwiLFxuICBcIkdlb1Zpc2libGVSZWdpb25Cb3VuZGFyeVwiLFxuICBcIkdlb1dpdGhpblFcIixcbiAgXCJHZW9ab29tTGV2ZWxcIixcbiAgXCJHZXN0dXJlSGFuZGxlclwiLFxuICBcIkdlc3R1cmVIYW5kbGVyVGFnXCIsXG4gIFwiR2V0XCIsXG4gIFwiR2V0Q29udGV4dFwiLFxuICBcIkdldEVudmlyb25tZW50XCIsXG4gIFwiR2V0RmlsZU5hbWVcIixcbiAgXCJHZXRMaW5lYnJlYWtJbmZvcm1hdGlvblBhY2tldFwiLFxuICBcIkdpYmJzUG9pbnRQcm9jZXNzXCIsXG4gIFwiR2xhaXNoZXJcIixcbiAgXCJHbG9iYWxDbHVzdGVyaW5nQ29lZmZpY2llbnRcIixcbiAgXCJHbG9iYWxQcmVmZXJlbmNlc1wiLFxuICBcIkdsb2JhbFNlc3Npb25cIixcbiAgXCJHbG93XCIsXG4gIFwiR29sZGVuQW5nbGVcIixcbiAgXCJHb2xkZW5SYXRpb1wiLFxuICBcIkdvbXBlcnR6TWFrZWhhbURpc3RyaWJ1dGlvblwiLFxuICBcIkdvb2NoU2hhZGluZ1wiLFxuICBcIkdvb2RtYW5LcnVza2FsR2FtbWFcIixcbiAgXCJHb29kbWFuS3J1c2thbEdhbW1hVGVzdFwiLFxuICBcIkdvdG9cIixcbiAgXCJHb3VyYXVkU2hhZGluZ1wiLFxuICBcIkdyYWRcIixcbiAgXCJHcmFkaWVudFwiLFxuICBcIkdyYWRpZW50RmlsdGVyXCIsXG4gIFwiR3JhZGllbnRGaXR0ZWRNZXNoXCIsXG4gIFwiR3JhZGllbnRPcmllbnRhdGlvbkZpbHRlclwiLFxuICBcIkdyYW1tYXJBcHBseVwiLFxuICBcIkdyYW1tYXJSdWxlc1wiLFxuICBcIkdyYW1tYXJUb2tlblwiLFxuICBcIkdyYXBoXCIsXG4gIFwiR3JhcGgzRFwiLFxuICBcIkdyYXBoQXNzb3J0YXRpdml0eVwiLFxuICBcIkdyYXBoQXV0b21vcnBoaXNtR3JvdXBcIixcbiAgXCJHcmFwaENlbnRlclwiLFxuICBcIkdyYXBoQ29tcGxlbWVudFwiLFxuICBcIkdyYXBoRGF0YVwiLFxuICBcIkdyYXBoRGVuc2l0eVwiLFxuICBcIkdyYXBoRGlhbWV0ZXJcIixcbiAgXCJHcmFwaERpZmZlcmVuY2VcIixcbiAgXCJHcmFwaERpc2pvaW50VW5pb25cIixcbiAgXCJHcmFwaERpc3RhbmNlXCIsXG4gIFwiR3JhcGhEaXN0YW5jZU1hdHJpeFwiLFxuICBcIkdyYXBoRW1iZWRkaW5nXCIsXG4gIFwiR3JhcGhIaWdobGlnaHRcIixcbiAgXCJHcmFwaEhpZ2hsaWdodFN0eWxlXCIsXG4gIFwiR3JhcGhIdWJcIixcbiAgXCJHcmFwaGljc1wiLFxuICBcIkdyYXBoaWNzM0RcIixcbiAgXCJHcmFwaGljczNEQm94XCIsXG4gIFwiR3JhcGhpY3MzREJveE9wdGlvbnNcIixcbiAgXCJHcmFwaGljc0FycmF5XCIsXG4gIFwiR3JhcGhpY3NCYXNlbGluZVwiLFxuICBcIkdyYXBoaWNzQm94XCIsXG4gIFwiR3JhcGhpY3NCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NDb2xvclwiLFxuICBcIkdyYXBoaWNzQ29sdW1uXCIsXG4gIFwiR3JhcGhpY3NDb21wbGV4XCIsXG4gIFwiR3JhcGhpY3NDb21wbGV4M0RCb3hcIixcbiAgXCJHcmFwaGljc0NvbXBsZXgzREJveE9wdGlvbnNcIixcbiAgXCJHcmFwaGljc0NvbXBsZXhCb3hcIixcbiAgXCJHcmFwaGljc0NvbXBsZXhCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NDb250ZW50c1wiLFxuICBcIkdyYXBoaWNzRGF0YVwiLFxuICBcIkdyYXBoaWNzR3JpZFwiLFxuICBcIkdyYXBoaWNzR3JpZEJveFwiLFxuICBcIkdyYXBoaWNzR3JvdXBcIixcbiAgXCJHcmFwaGljc0dyb3VwM0RCb3hcIixcbiAgXCJHcmFwaGljc0dyb3VwM0RCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NHcm91cEJveFwiLFxuICBcIkdyYXBoaWNzR3JvdXBCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NHcm91cGluZ1wiLFxuICBcIkdyYXBoaWNzSGlnaGxpZ2h0Q29sb3JcIixcbiAgXCJHcmFwaGljc1Jvd1wiLFxuICBcIkdyYXBoaWNzU3BhY2luZ1wiLFxuICBcIkdyYXBoaWNzU3R5bGVcIixcbiAgXCJHcmFwaEludGVyc2VjdGlvblwiLFxuICBcIkdyYXBoSm9pblwiLFxuICBcIkdyYXBoTGF5ZXJMYWJlbHNcIixcbiAgXCJHcmFwaExheWVyc1wiLFxuICBcIkdyYXBoTGF5ZXJTdHlsZVwiLFxuICBcIkdyYXBoTGF5b3V0XCIsXG4gIFwiR3JhcGhMaW5rRWZmaWNpZW5jeVwiLFxuICBcIkdyYXBoUGVyaXBoZXJ5XCIsXG4gIFwiR3JhcGhQbG90XCIsXG4gIFwiR3JhcGhQbG90M0RcIixcbiAgXCJHcmFwaFBvd2VyXCIsXG4gIFwiR3JhcGhQcm9kdWN0XCIsXG4gIFwiR3JhcGhQcm9wZXJ0eURpc3RyaWJ1dGlvblwiLFxuICBcIkdyYXBoUVwiLFxuICBcIkdyYXBoUmFkaXVzXCIsXG4gIFwiR3JhcGhSZWNpcHJvY2l0eVwiLFxuICBcIkdyYXBoUm9vdFwiLFxuICBcIkdyYXBoU3R5bGVcIixcbiAgXCJHcmFwaFN1bVwiLFxuICBcIkdyYXBoVHJlZVwiLFxuICBcIkdyYXBoVW5pb25cIixcbiAgXCJHcmF5XCIsXG4gIFwiR3JheUxldmVsXCIsXG4gIFwiR3JlYXRlclwiLFxuICBcIkdyZWF0ZXJFcXVhbFwiLFxuICBcIkdyZWF0ZXJFcXVhbExlc3NcIixcbiAgXCJHcmVhdGVyRXF1YWxUaGFuXCIsXG4gIFwiR3JlYXRlckZ1bGxFcXVhbFwiLFxuICBcIkdyZWF0ZXJHcmVhdGVyXCIsXG4gIFwiR3JlYXRlckxlc3NcIixcbiAgXCJHcmVhdGVyU2xhbnRFcXVhbFwiLFxuICBcIkdyZWF0ZXJUaGFuXCIsXG4gIFwiR3JlYXRlclRpbGRlXCIsXG4gIFwiR3JlZWtTdHlsZVwiLFxuICBcIkdyZWVuXCIsXG4gIFwiR3JlZW5GdW5jdGlvblwiLFxuICBcIkdyaWRcIixcbiAgXCJHcmlkQmFzZWxpbmVcIixcbiAgXCJHcmlkQm94XCIsXG4gIFwiR3JpZEJveEFsaWdubWVudFwiLFxuICBcIkdyaWRCb3hCYWNrZ3JvdW5kXCIsXG4gIFwiR3JpZEJveERpdmlkZXJzXCIsXG4gIFwiR3JpZEJveEZyYW1lXCIsXG4gIFwiR3JpZEJveEl0ZW1TaXplXCIsXG4gIFwiR3JpZEJveEl0ZW1TdHlsZVwiLFxuICBcIkdyaWRCb3hPcHRpb25zXCIsXG4gIFwiR3JpZEJveFNwYWNpbmdzXCIsXG4gIFwiR3JpZENyZWF0aW9uU2V0dGluZ3NcIixcbiAgXCJHcmlkRGVmYXVsdEVsZW1lbnRcIixcbiAgXCJHcmlkRWxlbWVudFN0eWxlT3B0aW9uc1wiLFxuICBcIkdyaWRGcmFtZVwiLFxuICBcIkdyaWRGcmFtZU1hcmdpbnNcIixcbiAgXCJHcmlkR3JhcGhcIixcbiAgXCJHcmlkTGluZXNcIixcbiAgXCJHcmlkTGluZXNTdHlsZVwiLFxuICBcIkdyaWRWaWRlb1wiLFxuICBcIkdyb2VibmVyQmFzaXNcIixcbiAgXCJHcm91cEFjdGlvbkJhc2VcIixcbiAgXCJHcm91cEJ5XCIsXG4gIFwiR3JvdXBDZW50cmFsaXplclwiLFxuICBcIkdyb3VwRWxlbWVudEZyb21Xb3JkXCIsXG4gIFwiR3JvdXBFbGVtZW50UG9zaXRpb25cIixcbiAgXCJHcm91cEVsZW1lbnRRXCIsXG4gIFwiR3JvdXBFbGVtZW50c1wiLFxuICBcIkdyb3VwRWxlbWVudFRvV29yZFwiLFxuICBcIkdyb3VwR2VuZXJhdG9yc1wiLFxuICBcIkdyb3VwaW5nc1wiLFxuICBcIkdyb3VwTXVsdGlwbGljYXRpb25UYWJsZVwiLFxuICBcIkdyb3VwT3BlbmVyQ29sb3JcIixcbiAgXCJHcm91cE9wZW5lckluc2lkZUZyYW1lXCIsXG4gIFwiR3JvdXBPcmJpdHNcIixcbiAgXCJHcm91cE9yZGVyXCIsXG4gIFwiR3JvdXBQYWdlQnJlYWtXaXRoaW5cIixcbiAgXCJHcm91cFNldHdpc2VTdGFiaWxpemVyXCIsXG4gIFwiR3JvdXBTdGFiaWxpemVyXCIsXG4gIFwiR3JvdXBTdGFiaWxpemVyQ2hhaW5cIixcbiAgXCJHcm91cFRvZ2V0aGVyR3JvdXBpbmdcIixcbiAgXCJHcm91cFRvZ2V0aGVyTmVzdGVkR3JvdXBpbmdcIixcbiAgXCJHcm93Q3V0Q29tcG9uZW50c1wiLFxuICBcIkd1ZGVybWFubmlhblwiLFxuICBcIkd1aWRlZEZpbHRlclwiLFxuICBcIkd1bWJlbERpc3RyaWJ1dGlvblwiLFxuICBcIkhhYXJXYXZlbGV0XCIsXG4gIFwiSGFkYW1hcmRNYXRyaXhcIixcbiAgXCJIYWxmTGluZVwiLFxuICBcIkhhbGZOb3JtYWxEaXN0cmlidXRpb25cIixcbiAgXCJIYWxmUGxhbmVcIixcbiAgXCJIYWxmU3BhY2VcIixcbiAgXCJIYWxmdG9uZVNoYWRpbmdcIixcbiAgXCJIYW1pbHRvbmlhbkdyYXBoUVwiLFxuICBcIkhhbW1pbmdEaXN0YW5jZVwiLFxuICBcIkhhbW1pbmdXaW5kb3dcIixcbiAgXCJIYW5kbGVyRnVuY3Rpb25zXCIsXG4gIFwiSGFuZGxlckZ1bmN0aW9uc0tleXNcIixcbiAgXCJIYW5rZWxIMVwiLFxuICBcIkhhbmtlbEgyXCIsXG4gIFwiSGFua2VsTWF0cml4XCIsXG4gIFwiSGFua2VsVHJhbnNmb3JtXCIsXG4gIFwiSGFublBvaXNzb25XaW5kb3dcIixcbiAgXCJIYW5uV2luZG93XCIsXG4gIFwiSGFyYWRhTm9ydG9uR3JvdXBITlwiLFxuICBcIkhhcmFyeUdyYXBoXCIsXG4gIFwiSGFyZGNvcmVQb2ludFByb2Nlc3NcIixcbiAgXCJIYXJtb25pY01lYW5cIixcbiAgXCJIYXJtb25pY01lYW5GaWx0ZXJcIixcbiAgXCJIYXJtb25pY051bWJlclwiLFxuICBcIkhhc2hcIixcbiAgXCJIYXRjaEZpbGxpbmdcIixcbiAgXCJIYXRjaFNoYWRpbmdcIixcbiAgXCJIYXZlcnNpbmVcIixcbiAgXCJIYXphcmRGdW5jdGlvblwiLFxuICBcIkhlYWRcIixcbiAgXCJIZWFkQ29tcG9zZVwiLFxuICBcIkhlYWRlckFsaWdubWVudFwiLFxuICBcIkhlYWRlckJhY2tncm91bmRcIixcbiAgXCJIZWFkZXJEaXNwbGF5RnVuY3Rpb25cIixcbiAgXCJIZWFkZXJMaW5lc1wiLFxuICBcIkhlYWRlcnNcIixcbiAgXCJIZWFkZXJTaXplXCIsXG4gIFwiSGVhZGVyU3R5bGVcIixcbiAgXCJIZWFkc1wiLFxuICBcIkhlYXRGbHV4VmFsdWVcIixcbiAgXCJIZWF0SW5zdWxhdGlvblZhbHVlXCIsXG4gIFwiSGVhdE91dGZsb3dWYWx1ZVwiLFxuICBcIkhlYXRSYWRpYXRpb25WYWx1ZVwiLFxuICBcIkhlYXRTeW1tZXRyeVZhbHVlXCIsXG4gIFwiSGVhdFRlbXBlcmF0dXJlQ29uZGl0aW9uXCIsXG4gIFwiSGVhdFRyYW5zZmVyUERFQ29tcG9uZW50XCIsXG4gIFwiSGVhdFRyYW5zZmVyVmFsdWVcIixcbiAgXCJIZWF2aXNpZGVMYW1iZGFcIixcbiAgXCJIZWF2aXNpZGVQaVwiLFxuICBcIkhlYXZpc2lkZVRoZXRhXCIsXG4gIFwiSGVsZEdyb3VwSGVcIixcbiAgXCJIZWxkUGFydFwiLFxuICBcIkhlbG1ob2x0elBERUNvbXBvbmVudFwiLFxuICBcIkhlbHBCcm93c2VyTG9va3VwXCIsXG4gIFwiSGVscEJyb3dzZXJOb3RlYm9va1wiLFxuICBcIkhlbHBCcm93c2VyU2V0dGluZ3NcIixcbiAgXCJIZWxwVmlld2VyU2V0dGluZ3NcIixcbiAgXCJIZXJlXCIsXG4gIFwiSGVybWl0ZURlY29tcG9zaXRpb25cIixcbiAgXCJIZXJtaXRlSFwiLFxuICBcIkhlcm1pdGlhblwiLFxuICBcIkhlcm1pdGlhbk1hdHJpeFFcIixcbiAgXCJIZXNzZW5iZXJnRGVjb21wb3NpdGlvblwiLFxuICBcIkhlc3NpYW5cIixcbiAgXCJIZXVuQlwiLFxuICBcIkhldW5CUHJpbWVcIixcbiAgXCJIZXVuQ1wiLFxuICBcIkhldW5DUHJpbWVcIixcbiAgXCJIZXVuRFwiLFxuICBcIkhldW5EUHJpbWVcIixcbiAgXCJIZXVuR1wiLFxuICBcIkhldW5HUHJpbWVcIixcbiAgXCJIZXVuVFwiLFxuICBcIkhldW5UUHJpbWVcIixcbiAgXCJIZXhhZGVjaW1hbENoYXJhY3RlclwiLFxuICBcIkhleGFoZWRyb25cIixcbiAgXCJIZXhhaGVkcm9uQm94XCIsXG4gIFwiSGV4YWhlZHJvbkJveE9wdGlvbnNcIixcbiAgXCJIaWRkZW5JdGVtc1wiLFxuICBcIkhpZGRlbk1hcmtvdlByb2Nlc3NcIixcbiAgXCJIaWRkZW5TdXJmYWNlXCIsXG4gIFwiSGlnaGxpZ2h0ZWRcIixcbiAgXCJIaWdobGlnaHRHcmFwaFwiLFxuICBcIkhpZ2hsaWdodEltYWdlXCIsXG4gIFwiSGlnaGxpZ2h0TWVzaFwiLFxuICBcIkhpZ2hsaWdodFN0cmluZ1wiLFxuICBcIkhpZ2hwYXNzRmlsdGVyXCIsXG4gIFwiSGlnbWFuU2ltc0dyb3VwSFNcIixcbiAgXCJIaWxiZXJ0Q3VydmVcIixcbiAgXCJIaWxiZXJ0RmlsdGVyXCIsXG4gIFwiSGlsYmVydE1hdHJpeFwiLFxuICBcIkhpc3RvZ3JhbVwiLFxuICBcIkhpc3RvZ3JhbTNEXCIsXG4gIFwiSGlzdG9ncmFtRGlzdHJpYnV0aW9uXCIsXG4gIFwiSGlzdG9ncmFtTGlzdFwiLFxuICBcIkhpc3RvZ3JhbVBvaW50RGVuc2l0eVwiLFxuICBcIkhpc3RvZ3JhbVRyYW5zZm9ybVwiLFxuICBcIkhpc3RvZ3JhbVRyYW5zZm9ybUludGVycG9sYXRpb25cIixcbiAgXCJIaXN0b3JpY2FsUGVyaW9kRGF0YVwiLFxuICBcIkhpdE1pc3NUcmFuc2Zvcm1cIixcbiAgXCJISVRTQ2VudHJhbGl0eVwiLFxuICBcIkhqb3J0aERpc3RyaWJ1dGlvblwiLFxuICBcIkhvZGdlRHVhbFwiLFxuICBcIkhvZWZmZGluZ0RcIixcbiAgXCJIb2VmZmRpbmdEVGVzdFwiLFxuICBcIkhvbGRcIixcbiAgXCJIb2xkQWxsXCIsXG4gIFwiSG9sZEFsbENvbXBsZXRlXCIsXG4gIFwiSG9sZENvbXBsZXRlXCIsXG4gIFwiSG9sZEZpcnN0XCIsXG4gIFwiSG9sZEZvcm1cIixcbiAgXCJIb2xkUGF0dGVyblwiLFxuICBcIkhvbGRSZXN0XCIsXG4gIFwiSG9saWRheUNhbGVuZGFyXCIsXG4gIFwiSG9tZURpcmVjdG9yeVwiLFxuICBcIkhvbWVQYWdlXCIsXG4gIFwiSG9yaXpvbnRhbFwiLFxuICBcIkhvcml6b250YWxGb3JtXCIsXG4gIFwiSG9yaXpvbnRhbEdhdWdlXCIsXG4gIFwiSG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uXCIsXG4gIFwiSG9ybmVyRm9ybVwiLFxuICBcIkhvc3RMb29rdXBcIixcbiAgXCJIb3RlbGxpbmdUU3F1YXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiSG95dERpc3RyaWJ1dGlvblwiLFxuICBcIkhUTUxTYXZlXCIsXG4gIFwiSFRUUEVycm9yUmVzcG9uc2VcIixcbiAgXCJIVFRQUmVkaXJlY3RcIixcbiAgXCJIVFRQUmVxdWVzdFwiLFxuICBcIkhUVFBSZXF1ZXN0RGF0YVwiLFxuICBcIkhUVFBSZXNwb25zZVwiLFxuICBcIkh1ZVwiLFxuICBcIkh1bWFuR3Jvd3RoRGF0YVwiLFxuICBcIkh1bXBEb3duSHVtcFwiLFxuICBcIkh1bXBFcXVhbFwiLFxuICBcIkh1cndpdHpMZXJjaFBoaVwiLFxuICBcIkh1cndpdHpaZXRhXCIsXG4gIFwiSHlwZXJib2xpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkh5cGVyY3ViZUdyYXBoXCIsXG4gIFwiSHlwZXJleHBvbmVudGlhbERpc3RyaWJ1dGlvblwiLFxuICBcIkh5cGVyZmFjdG9yaWFsXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWMwRjFcIixcbiAgXCJIeXBlcmdlb21ldHJpYzBGMVJlZ3VsYXJpemVkXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWMxRjFcIixcbiAgXCJIeXBlcmdlb21ldHJpYzFGMVJlZ3VsYXJpemVkXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWMyRjFcIixcbiAgXCJIeXBlcmdlb21ldHJpYzJGMVJlZ3VsYXJpemVkXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWNEaXN0cmlidXRpb25cIixcbiAgXCJIeXBlcmdlb21ldHJpY1BGUVwiLFxuICBcIkh5cGVyZ2VvbWV0cmljUEZRUmVndWxhcml6ZWRcIixcbiAgXCJIeXBlcmdlb21ldHJpY1VcIixcbiAgXCJIeXBlcmxpbmtcIixcbiAgXCJIeXBlcmxpbmtBY3Rpb25cIixcbiAgXCJIeXBlcmxpbmtDcmVhdGlvblNldHRpbmdzXCIsXG4gIFwiSHlwZXJwbGFuZVwiLFxuICBcIkh5cGhlbmF0aW9uXCIsXG4gIFwiSHlwaGVuYXRpb25PcHRpb25zXCIsXG4gIFwiSHlwb2V4cG9uZW50aWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiSHlwb3RoZXNpc1Rlc3REYXRhXCIsXG4gIFwiSVwiLFxuICBcIkljb25EYXRhXCIsXG4gIFwiSWNvbml6ZVwiLFxuICBcIkljb25pemVkT2JqZWN0XCIsXG4gIFwiSWNvblJ1bGVzXCIsXG4gIFwiSWNvc2FoZWRyb25cIixcbiAgXCJJZGVudGl0eVwiLFxuICBcIklkZW50aXR5TWF0cml4XCIsXG4gIFwiSWZcIixcbiAgXCJJZkNvbXBpbGVkXCIsXG4gIFwiSWdub3JlQ2FzZVwiLFxuICBcIklnbm9yZURpYWNyaXRpY3NcIixcbiAgXCJJZ25vcmVJc290b3Blc1wiLFxuICBcIklnbm9yZVB1bmN0dWF0aW9uXCIsXG4gIFwiSWdub3JlU3BlbGxDaGVja1wiLFxuICBcIklnbm9yZVN0ZXJlb2NoZW1pc3RyeVwiLFxuICBcIklnbm9yaW5nSW5hY3RpdmVcIixcbiAgXCJJbVwiLFxuICBcIkltYWdlXCIsXG4gIFwiSW1hZ2UzRFwiLFxuICBcIkltYWdlM0RQcm9qZWN0aW9uXCIsXG4gIFwiSW1hZ2UzRFNsaWNlc1wiLFxuICBcIkltYWdlQWNjdW11bGF0ZVwiLFxuICBcIkltYWdlQWRkXCIsXG4gIFwiSW1hZ2VBZGp1c3RcIixcbiAgXCJJbWFnZUFsaWduXCIsXG4gIFwiSW1hZ2VBcHBseVwiLFxuICBcIkltYWdlQXBwbHlJbmRleGVkXCIsXG4gIFwiSW1hZ2VBc3BlY3RSYXRpb1wiLFxuICBcIkltYWdlQXNzZW1ibGVcIixcbiAgXCJJbWFnZUF1Z21lbnRhdGlvbkxheWVyXCIsXG4gIFwiSW1hZ2VCb3VuZGluZ0JveGVzXCIsXG4gIFwiSW1hZ2VDYWNoZVwiLFxuICBcIkltYWdlQ2FjaGVWYWxpZFwiLFxuICBcIkltYWdlQ2FwdHVyZVwiLFxuICBcIkltYWdlQ2FwdHVyZUZ1bmN0aW9uXCIsXG4gIFwiSW1hZ2VDYXNlc1wiLFxuICBcIkltYWdlQ2hhbm5lbHNcIixcbiAgXCJJbWFnZUNsaXBcIixcbiAgXCJJbWFnZUNvbGxhZ2VcIixcbiAgXCJJbWFnZUNvbG9yU3BhY2VcIixcbiAgXCJJbWFnZUNvbXBvc2VcIixcbiAgXCJJbWFnZUNvbnRhaW5zUVwiLFxuICBcIkltYWdlQ29udGVudHNcIixcbiAgXCJJbWFnZUNvbnZvbHZlXCIsXG4gIFwiSW1hZ2VDb29jY3VycmVuY2VcIixcbiAgXCJJbWFnZUNvcm5lcnNcIixcbiAgXCJJbWFnZUNvcnJlbGF0ZVwiLFxuICBcIkltYWdlQ29ycmVzcG9uZGluZ1BvaW50c1wiLFxuICBcIkltYWdlQ3JvcFwiLFxuICBcIkltYWdlRGF0YVwiLFxuICBcIkltYWdlRGVjb252b2x2ZVwiLFxuICBcIkltYWdlRGVtb3NhaWNcIixcbiAgXCJJbWFnZURpZmZlcmVuY2VcIixcbiAgXCJJbWFnZURpbWVuc2lvbnNcIixcbiAgXCJJbWFnZURpc3BsYWNlbWVudHNcIixcbiAgXCJJbWFnZURpc3RhbmNlXCIsXG4gIFwiSW1hZ2VFZGl0TW9kZVwiLFxuICBcIkltYWdlRWZmZWN0XCIsXG4gIFwiSW1hZ2VFeHBvc3VyZUNvbWJpbmVcIixcbiAgXCJJbWFnZUZlYXR1cmVUcmFja1wiLFxuICBcIkltYWdlRmlsZUFwcGx5XCIsXG4gIFwiSW1hZ2VGaWxlRmlsdGVyXCIsXG4gIFwiSW1hZ2VGaWxlU2NhblwiLFxuICBcIkltYWdlRmlsdGVyXCIsXG4gIFwiSW1hZ2VGb2N1c0NvbWJpbmVcIixcbiAgXCJJbWFnZUZvcmVzdGluZ0NvbXBvbmVudHNcIixcbiAgXCJJbWFnZUZvcm1hdHRpbmdXaWR0aFwiLFxuICBcIkltYWdlRm9yd2FyZFRyYW5zZm9ybWF0aW9uXCIsXG4gIFwiSW1hZ2VHcmFwaGljc1wiLFxuICBcIkltYWdlSGlzdG9ncmFtXCIsXG4gIFwiSW1hZ2VJZGVudGlmeVwiLFxuICBcIkltYWdlSW5zdGFuY2VRXCIsXG4gIFwiSW1hZ2VLZXlwb2ludHNcIixcbiAgXCJJbWFnZUxhYmVsc1wiLFxuICBcIkltYWdlTGVnZW5kc1wiLFxuICBcIkltYWdlTGV2ZWxzXCIsXG4gIFwiSW1hZ2VMaW5lc1wiLFxuICBcIkltYWdlTWFyZ2luc1wiLFxuICBcIkltYWdlTWFya2VyXCIsXG4gIFwiSW1hZ2VNYXJrZXJzXCIsXG4gIFwiSW1hZ2VNZWFzdXJlbWVudHNcIixcbiAgXCJJbWFnZU1lc2hcIixcbiAgXCJJbWFnZU11bHRpcGx5XCIsXG4gIFwiSW1hZ2VPZmZzZXRcIixcbiAgXCJJbWFnZVBhZFwiLFxuICBcIkltYWdlUGFkZGluZ1wiLFxuICBcIkltYWdlUGFydGl0aW9uXCIsXG4gIFwiSW1hZ2VQZXJpb2RvZ3JhbVwiLFxuICBcIkltYWdlUGVyc3BlY3RpdmVUcmFuc2Zvcm1hdGlvblwiLFxuICBcIkltYWdlUG9zaXRpb25cIixcbiAgXCJJbWFnZVByZXZpZXdGdW5jdGlvblwiLFxuICBcIkltYWdlUHlyYW1pZFwiLFxuICBcIkltYWdlUHlyYW1pZEFwcGx5XCIsXG4gIFwiSW1hZ2VRXCIsXG4gIFwiSW1hZ2VSYW5nZUNhY2hlXCIsXG4gIFwiSW1hZ2VSZWNvbG9yXCIsXG4gIFwiSW1hZ2VSZWZsZWN0XCIsXG4gIFwiSW1hZ2VSZWdpb25cIixcbiAgXCJJbWFnZVJlc2l6ZVwiLFxuICBcIkltYWdlUmVzb2x1dGlvblwiLFxuICBcIkltYWdlUmVzdHlsZVwiLFxuICBcIkltYWdlUm90YXRlXCIsXG4gIFwiSW1hZ2VSb3RhdGVkXCIsXG4gIFwiSW1hZ2VTYWxpZW5jeUZpbHRlclwiLFxuICBcIkltYWdlU2NhbGVkXCIsXG4gIFwiSW1hZ2VTY2FuXCIsXG4gIFwiSW1hZ2VTaXplXCIsXG4gIFwiSW1hZ2VTaXplQWN0aW9uXCIsXG4gIFwiSW1hZ2VTaXplQ2FjaGVcIixcbiAgXCJJbWFnZVNpemVNdWx0aXBsaWVyc1wiLFxuICBcIkltYWdlU2l6ZVJhd1wiLFxuICBcIkltYWdlU3RpdGNoXCIsXG4gIFwiSW1hZ2VTdWJ0cmFjdFwiLFxuICBcIkltYWdlVGFrZVwiLFxuICBcIkltYWdlVHJhbnNmb3JtYXRpb25cIixcbiAgXCJJbWFnZVRyaW1cIixcbiAgXCJJbWFnZVR5cGVcIixcbiAgXCJJbWFnZVZhbHVlXCIsXG4gIFwiSW1hZ2VWYWx1ZVBvc2l0aW9uc1wiLFxuICBcIkltYWdlVmVjdG9yc2NvcGVQbG90XCIsXG4gIFwiSW1hZ2VXYXZlZm9ybVBsb3RcIixcbiAgXCJJbWFnaW5nRGV2aWNlXCIsXG4gIFwiSW1wbGljaXREXCIsXG4gIFwiSW1wbGljaXRSZWdpb25cIixcbiAgXCJJbXBsaWVzXCIsXG4gIFwiSW1wb3J0XCIsXG4gIFwiSW1wb3J0QXV0b1JlcGxhY2VtZW50c1wiLFxuICBcIkltcG9ydEJ5dGVBcnJheVwiLFxuICBcIkltcG9ydGVkT2JqZWN0XCIsXG4gIFwiSW1wb3J0T3B0aW9uc1wiLFxuICBcIkltcG9ydFN0cmluZ1wiLFxuICBcIkltcHJvdmVtZW50SW1wb3J0YW5jZVwiLFxuICBcIkluXCIsXG4gIFwiSW5hY3RpdmF0ZVwiLFxuICBcIkluYWN0aXZlXCIsXG4gIFwiSW5hY3RpdmVTdHlsZVwiLFxuICBcIkluY2lkZW5jZUdyYXBoXCIsXG4gIFwiSW5jaWRlbmNlTGlzdFwiLFxuICBcIkluY2lkZW5jZU1hdHJpeFwiLFxuICBcIkluY2x1ZGVBcm9tYXRpY0JvbmRzXCIsXG4gIFwiSW5jbHVkZUNvbnN0YW50QmFzaXNcIixcbiAgXCJJbmNsdWRlZENvbnRleHRzXCIsXG4gIFwiSW5jbHVkZURlZmluaXRpb25zXCIsXG4gIFwiSW5jbHVkZURpcmVjdG9yaWVzXCIsXG4gIFwiSW5jbHVkZUZpbGVFeHRlbnNpb25cIixcbiAgXCJJbmNsdWRlR2VuZXJhdG9yVGFza3NcIixcbiAgXCJJbmNsdWRlSHlkcm9nZW5zXCIsXG4gIFwiSW5jbHVkZUluZmxlY3Rpb25zXCIsXG4gIFwiSW5jbHVkZU1ldGFJbmZvcm1hdGlvblwiLFxuICBcIkluY2x1ZGVQb2RzXCIsXG4gIFwiSW5jbHVkZVF1YW50aXRpZXNcIixcbiAgXCJJbmNsdWRlUmVsYXRlZFRhYmxlc1wiLFxuICBcIkluY2x1ZGVTaW5ndWxhclNvbHV0aW9uc1wiLFxuICBcIkluY2x1ZGVTaW5ndWxhclRlcm1cIixcbiAgXCJJbmNsdWRlV2luZG93VGltZXNcIixcbiAgXCJJbmNyZW1lbnRcIixcbiAgXCJJbmRlZmluaXRlTWF0cml4UVwiLFxuICBcIkluZGVudFwiLFxuICBcIkluZGVudGluZ05ld2xpbmVTcGFjaW5nc1wiLFxuICBcIkluZGVudE1heEZyYWN0aW9uXCIsXG4gIFwiSW5kZXBlbmRlbmNlVGVzdFwiLFxuICBcIkluZGVwZW5kZW50RWRnZVNldFFcIixcbiAgXCJJbmRlcGVuZGVudFBoeXNpY2FsUXVhbnRpdHlcIixcbiAgXCJJbmRlcGVuZGVudFVuaXRcIixcbiAgXCJJbmRlcGVuZGVudFVuaXREaW1lbnNpb25cIixcbiAgXCJJbmRlcGVuZGVudFZlcnRleFNldFFcIixcbiAgXCJJbmRldGVybWluYXRlXCIsXG4gIFwiSW5kZXRlcm1pbmF0ZVRocmVzaG9sZFwiLFxuICBcIkluZGV4Q3JlYXRpb25PcHRpb25zXCIsXG4gIFwiSW5kZXhlZFwiLFxuICBcIkluZGV4RWRnZVRhZ2dlZEdyYXBoXCIsXG4gIFwiSW5kZXhHcmFwaFwiLFxuICBcIkluZGV4VGFnXCIsXG4gIFwiSW5lcXVhbGl0eVwiLFxuICBcIkluZXJ0RXZhbHVhdGVcIixcbiAgXCJJbmVydEV4cHJlc3Npb25cIixcbiAgXCJJbmV4YWN0TnVtYmVyUVwiLFxuICBcIkluZXhhY3ROdW1iZXJzXCIsXG4gIFwiSW5maW5pdGVGdXR1cmVcIixcbiAgXCJJbmZpbml0ZUxpbmVcIixcbiAgXCJJbmZpbml0ZUxpbmVUaHJvdWdoXCIsXG4gIFwiSW5maW5pdGVQYXN0XCIsXG4gIFwiSW5maW5pdGVQbGFuZVwiLFxuICBcIkluZmluaXR5XCIsXG4gIFwiSW5maXhcIixcbiAgXCJJbmZsYXRpb25BZGp1c3RcIixcbiAgXCJJbmZsYXRpb25NZXRob2RcIixcbiAgXCJJbmZvcm1hdGlvblwiLFxuICBcIkluZm9ybWF0aW9uRGF0YVwiLFxuICBcIkluZm9ybWF0aW9uRGF0YUdyaWRcIixcbiAgXCJJbmhlcml0ZWRcIixcbiAgXCJJbmhlcml0U2NvcGVcIixcbiAgXCJJbmhvbW9nZW5lb3VzUG9pc3NvblBvaW50UHJvY2Vzc1wiLFxuICBcIkluaG9tb2dlbmVvdXNQb2lzc29uUHJvY2Vzc1wiLFxuICBcIkluaXRpYWxFdmFsdWF0aW9uSGlzdG9yeVwiLFxuICBcIkluaXRpYWxpemF0aW9uXCIsXG4gIFwiSW5pdGlhbGl6YXRpb25DZWxsXCIsXG4gIFwiSW5pdGlhbGl6YXRpb25DZWxsRXZhbHVhdGlvblwiLFxuICBcIkluaXRpYWxpemF0aW9uQ2VsbFdhcm5pbmdcIixcbiAgXCJJbml0aWFsaXphdGlvbk9iamVjdFwiLFxuICBcIkluaXRpYWxpemF0aW9uT2JqZWN0c1wiLFxuICBcIkluaXRpYWxpemF0aW9uVmFsdWVcIixcbiAgXCJJbml0aWFsaXplXCIsXG4gIFwiSW5pdGlhbFNlZWRpbmdcIixcbiAgXCJJbmxpbmVDb3VudGVyQXNzaWdubWVudHNcIixcbiAgXCJJbmxpbmVDb3VudGVySW5jcmVtZW50c1wiLFxuICBcIklubGluZVJ1bGVzXCIsXG4gIFwiSW5uZXJcIixcbiAgXCJJbm5lclBvbHlnb25cIixcbiAgXCJJbm5lclBvbHloZWRyb25cIixcbiAgXCJJbnBhaW50XCIsXG4gIFwiSW5wdXRcIixcbiAgXCJJbnB1dEFsaWFzZXNcIixcbiAgXCJJbnB1dEFzc3VtcHRpb25zXCIsXG4gIFwiSW5wdXRBdXRvUmVwbGFjZW1lbnRzXCIsXG4gIFwiSW5wdXRGaWVsZFwiLFxuICBcIklucHV0RmllbGRCb3hcIixcbiAgXCJJbnB1dEZpZWxkQm94T3B0aW9uc1wiLFxuICBcIklucHV0Rm9ybVwiLFxuICBcIklucHV0R3JvdXBpbmdcIixcbiAgXCJJbnB1dE5hbWVQYWNrZXRcIixcbiAgXCJJbnB1dE5vdGVib29rXCIsXG4gIFwiSW5wdXRQYWNrZXRcIixcbiAgXCJJbnB1dFBvcnRzXCIsXG4gIFwiSW5wdXRTZXR0aW5nc1wiLFxuICBcIklucHV0U3RyZWFtXCIsXG4gIFwiSW5wdXRTdHJpbmdcIixcbiAgXCJJbnB1dFN0cmluZ1BhY2tldFwiLFxuICBcIklucHV0VG9Cb3hGb3JtUGFja2V0XCIsXG4gIFwiSW5zZXJ0XCIsXG4gIFwiSW5zZXJ0aW9uRnVuY3Rpb25cIixcbiAgXCJJbnNlcnRpb25Qb2ludE9iamVjdFwiLFxuICBcIkluc2VydExpbmVicmVha3NcIixcbiAgXCJJbnNlcnRSZXN1bHRzXCIsXG4gIFwiSW5zZXRcIixcbiAgXCJJbnNldDNEQm94XCIsXG4gIFwiSW5zZXQzREJveE9wdGlvbnNcIixcbiAgXCJJbnNldEJveFwiLFxuICBcIkluc2V0Qm94T3B0aW9uc1wiLFxuICBcIkluc3BoZXJlXCIsXG4gIFwiSW5zdGFsbFwiLFxuICBcIkluc3RhbGxTZXJ2aWNlXCIsXG4gIFwiSW5zdGFuY2VOb3JtYWxpemF0aW9uTGF5ZXJcIixcbiAgXCJJblN0cmluZ1wiLFxuICBcIkludGVnZXJcIixcbiAgXCJJbnRlZ2VyRGlnaXRzXCIsXG4gIFwiSW50ZWdlckV4cG9uZW50XCIsXG4gIFwiSW50ZWdlckxlbmd0aFwiLFxuICBcIkludGVnZXJOYW1lXCIsXG4gIFwiSW50ZWdlclBhcnRcIixcbiAgXCJJbnRlZ2VyUGFydGl0aW9uc1wiLFxuICBcIkludGVnZXJRXCIsXG4gIFwiSW50ZWdlclJldmVyc2VcIixcbiAgXCJJbnRlZ2Vyc1wiLFxuICBcIkludGVnZXJTdHJpbmdcIixcbiAgXCJJbnRlZ3JhbFwiLFxuICBcIkludGVncmF0ZVwiLFxuICBcIkludGVncmF0ZUNoYW5nZVZhcmlhYmxlc1wiLFxuICBcIkludGVyYWN0aXZlXCIsXG4gIFwiSW50ZXJhY3RpdmVUcmFkaW5nQ2hhcnRcIixcbiAgXCJJbnRlcmZhY2VTd2l0Y2hlZFwiLFxuICBcIkludGVybGFjZWRcIixcbiAgXCJJbnRlcmxlYXZpbmdcIixcbiAgXCJJbnRlcm5hbGx5QmFsYW5jZWREZWNvbXBvc2l0aW9uXCIsXG4gIFwiSW50ZXJwb2xhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiSW50ZXJwb2xhdGluZ1BvbHlub21pYWxcIixcbiAgXCJJbnRlcnBvbGF0aW9uXCIsXG4gIFwiSW50ZXJwb2xhdGlvbk9yZGVyXCIsXG4gIFwiSW50ZXJwb2xhdGlvblBvaW50c1wiLFxuICBcIkludGVycG9sYXRpb25QcmVjaXNpb25cIixcbiAgXCJJbnRlcnByZXRhdGlvblwiLFxuICBcIkludGVycHJldGF0aW9uQm94XCIsXG4gIFwiSW50ZXJwcmV0YXRpb25Cb3hPcHRpb25zXCIsXG4gIFwiSW50ZXJwcmV0YXRpb25GdW5jdGlvblwiLFxuICBcIkludGVycHJldGVyXCIsXG4gIFwiSW50ZXJwcmV0VGVtcGxhdGVcIixcbiAgXCJJbnRlcnF1YXJ0aWxlUmFuZ2VcIixcbiAgXCJJbnRlcnJ1cHRcIixcbiAgXCJJbnRlcnJ1cHRTZXR0aW5nc1wiLFxuICBcIkludGVyc2VjdGVkRW50aXR5Q2xhc3NcIixcbiAgXCJJbnRlcnNlY3RpbmdRXCIsXG4gIFwiSW50ZXJzZWN0aW9uXCIsXG4gIFwiSW50ZXJ2YWxcIixcbiAgXCJJbnRlcnZhbEludGVyc2VjdGlvblwiLFxuICBcIkludGVydmFsTWFya2Vyc1wiLFxuICBcIkludGVydmFsTWFya2Vyc1N0eWxlXCIsXG4gIFwiSW50ZXJ2YWxNZW1iZXJRXCIsXG4gIFwiSW50ZXJ2YWxTbGlkZXJcIixcbiAgXCJJbnRlcnZhbFVuaW9uXCIsXG4gIFwiSW50b1wiLFxuICBcIkludmVyc2VcIixcbiAgXCJJbnZlcnNlQmV0YVJlZ3VsYXJpemVkXCIsXG4gIFwiSW52ZXJzZUJpbGF0ZXJhbExhcGxhY2VUcmFuc2Zvcm1cIixcbiAgXCJJbnZlcnNlQmlsYXRlcmFsWlRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VDREZcIixcbiAgXCJJbnZlcnNlQ2hpU3F1YXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiSW52ZXJzZUNvbnRpbnVvdXNXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZURpc3RhbmNlVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZUVsbGlwdGljTm9tZVFcIixcbiAgXCJJbnZlcnNlRXJmXCIsXG4gIFwiSW52ZXJzZUVyZmNcIixcbiAgXCJJbnZlcnNlRm91cmllclwiLFxuICBcIkludmVyc2VGb3VyaWVyQ29zVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZUZvdXJpZXJTZXF1ZW5jZVRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VGb3VyaWVyU2luVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZUZvdXJpZXJUcmFuc2Zvcm1cIixcbiAgXCJJbnZlcnNlRnVuY3Rpb25cIixcbiAgXCJJbnZlcnNlRnVuY3Rpb25zXCIsXG4gIFwiSW52ZXJzZUdhbW1hRGlzdHJpYnV0aW9uXCIsXG4gIFwiSW52ZXJzZUdhbW1hUmVndWxhcml6ZWRcIixcbiAgXCJJbnZlcnNlR2F1c3NpYW5EaXN0cmlidXRpb25cIixcbiAgXCJJbnZlcnNlR3VkZXJtYW5uaWFuXCIsXG4gIFwiSW52ZXJzZUhhbmtlbFRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VIYXZlcnNpbmVcIixcbiAgXCJJbnZlcnNlSW1hZ2VQeXJhbWlkXCIsXG4gIFwiSW52ZXJzZUphY29iaUNEXCIsXG4gIFwiSW52ZXJzZUphY29iaUNOXCIsXG4gIFwiSW52ZXJzZUphY29iaUNTXCIsXG4gIFwiSW52ZXJzZUphY29iaURDXCIsXG4gIFwiSW52ZXJzZUphY29iaUROXCIsXG4gIFwiSW52ZXJzZUphY29iaURTXCIsXG4gIFwiSW52ZXJzZUphY29iaU5DXCIsXG4gIFwiSW52ZXJzZUphY29iaU5EXCIsXG4gIFwiSW52ZXJzZUphY29iaU5TXCIsXG4gIFwiSW52ZXJzZUphY29iaVNDXCIsXG4gIFwiSW52ZXJzZUphY29iaVNEXCIsXG4gIFwiSW52ZXJzZUphY29iaVNOXCIsXG4gIFwiSW52ZXJzZUxhcGxhY2VUcmFuc2Zvcm1cIixcbiAgXCJJbnZlcnNlTWVsbGluVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZVBlcm11dGF0aW9uXCIsXG4gIFwiSW52ZXJzZVJhZG9uXCIsXG4gIFwiSW52ZXJzZVJhZG9uVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZVNlcmllc1wiLFxuICBcIkludmVyc2VTaG9ydFRpbWVGb3VyaWVyXCIsXG4gIFwiSW52ZXJzZVNwZWN0cm9ncmFtXCIsXG4gIFwiSW52ZXJzZVN1cnZpdmFsRnVuY3Rpb25cIixcbiAgXCJJbnZlcnNlVHJhbnNmb3JtZWRSZWdpb25cIixcbiAgXCJJbnZlcnNlV2F2ZWxldFRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VXZWllcnN0cmFzc1BcIixcbiAgXCJJbnZlcnNlV2lzaGFydE1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkludmVyc2VaVHJhbnNmb3JtXCIsXG4gIFwiSW52aXNpYmxlXCIsXG4gIFwiSW52aXNpYmxlQXBwbGljYXRpb25cIixcbiAgXCJJbnZpc2libGVUaW1lc1wiLFxuICBcIklQQWRkcmVzc1wiLFxuICBcIklycmVkdWNpYmxlUG9seW5vbWlhbFFcIixcbiAgXCJJc2xhbmREYXRhXCIsXG4gIFwiSXNvbGF0aW5nSW50ZXJ2YWxcIixcbiAgXCJJc29tb3JwaGljR3JhcGhRXCIsXG4gIFwiSXNvbW9ycGhpY1N1YmdyYXBoUVwiLFxuICBcIklzb3RvcGVEYXRhXCIsXG4gIFwiSXRhbGljXCIsXG4gIFwiSXRlbVwiLFxuICBcIkl0ZW1Bc3BlY3RSYXRpb1wiLFxuICBcIkl0ZW1Cb3hcIixcbiAgXCJJdGVtQm94T3B0aW9uc1wiLFxuICBcIkl0ZW1EaXNwbGF5RnVuY3Rpb25cIixcbiAgXCJJdGVtU2l6ZVwiLFxuICBcIkl0ZW1TdHlsZVwiLFxuICBcIkl0b1Byb2Nlc3NcIixcbiAgXCJKYWNjYXJkRGlzc2ltaWxhcml0eVwiLFxuICBcIkphY29iaUFtcGxpdHVkZVwiLFxuICBcIkphY29iaWFuXCIsXG4gIFwiSmFjb2JpQ0RcIixcbiAgXCJKYWNvYmlDTlwiLFxuICBcIkphY29iaUNTXCIsXG4gIFwiSmFjb2JpRENcIixcbiAgXCJKYWNvYmlETlwiLFxuICBcIkphY29iaURTXCIsXG4gIFwiSmFjb2JpRXBzaWxvblwiLFxuICBcIkphY29iaU5DXCIsXG4gIFwiSmFjb2JpTkRcIixcbiAgXCJKYWNvYmlOU1wiLFxuICBcIkphY29iaVBcIixcbiAgXCJKYWNvYmlTQ1wiLFxuICBcIkphY29iaVNEXCIsXG4gIFwiSmFjb2JpU05cIixcbiAgXCJKYWNvYmlTeW1ib2xcIixcbiAgXCJKYWNvYmlaZXRhXCIsXG4gIFwiSmFjb2JpWk5cIixcbiAgXCJKYW5rb0dyb3VwSjFcIixcbiAgXCJKYW5rb0dyb3VwSjJcIixcbiAgXCJKYW5rb0dyb3VwSjNcIixcbiAgXCJKYW5rb0dyb3VwSjRcIixcbiAgXCJKYXJxdWVCZXJhQUxNVGVzdFwiLFxuICBcIkpvaG5zb25EaXN0cmlidXRpb25cIixcbiAgXCJKb2luXCIsXG4gIFwiSm9pbkFjcm9zc1wiLFxuICBcIkpvaW5lZFwiLFxuICBcIkpvaW5lZEN1cnZlXCIsXG4gIFwiSm9pbmVkQ3VydmVCb3hcIixcbiAgXCJKb2luZWRDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJKb2luRm9ybVwiLFxuICBcIkpvcmRhbkRlY29tcG9zaXRpb25cIixcbiAgXCJKb3JkYW5Nb2RlbERlY29tcG9zaXRpb25cIixcbiAgXCJKdWxpYW5EYXRlXCIsXG4gIFwiSnVsaWFTZXRCb2V0dGNoZXJcIixcbiAgXCJKdWxpYVNldEl0ZXJhdGlvbkNvdW50XCIsXG4gIFwiSnVsaWFTZXRQbG90XCIsXG4gIFwiSnVsaWFTZXRQb2ludHNcIixcbiAgXCJLXCIsXG4gIFwiS2FnaUNoYXJ0XCIsXG4gIFwiS2Fpc2VyQmVzc2VsV2luZG93XCIsXG4gIFwiS2Fpc2VyV2luZG93XCIsXG4gIFwiS2FsbWFuRXN0aW1hdG9yXCIsXG4gIFwiS2FsbWFuRmlsdGVyXCIsXG4gIFwiS2FyaHVuZW5Mb2V2ZURlY29tcG9zaXRpb25cIixcbiAgXCJLYXJ5VHJlZVwiLFxuICBcIkthdHpDZW50cmFsaXR5XCIsXG4gIFwiS0NvcmVDb21wb25lbnRzXCIsXG4gIFwiS0Rpc3RyaWJ1dGlvblwiLFxuICBcIktFZGdlQ29ubmVjdGVkQ29tcG9uZW50c1wiLFxuICBcIktFZGdlQ29ubmVjdGVkR3JhcGhRXCIsXG4gIFwiS2VlcEV4aXN0aW5nVmVyc2lvblwiLFxuICBcIktlbHZpbkJlaVwiLFxuICBcIktlbHZpbkJlclwiLFxuICBcIktlbHZpbktlaVwiLFxuICBcIktlbHZpbktlclwiLFxuICBcIktlbmRhbGxUYXVcIixcbiAgXCJLZW5kYWxsVGF1VGVzdFwiLFxuICBcIktlcm5lbENvbmZpZ3VyYXRpb25cIixcbiAgXCJLZXJuZWxFeGVjdXRlXCIsXG4gIFwiS2VybmVsRnVuY3Rpb25cIixcbiAgXCJLZXJuZWxNaXh0dXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiS2VybmVsT2JqZWN0XCIsXG4gIFwiS2VybmVsc1wiLFxuICBcIktldFwiLFxuICBcIktleVwiLFxuICBcIktleUNvbGxpc2lvbkZ1bmN0aW9uXCIsXG4gIFwiS2V5Q29tcGxlbWVudFwiLFxuICBcIktleURyb3BcIixcbiAgXCJLZXlEcm9wRnJvbVwiLFxuICBcIktleUV4aXN0c1FcIixcbiAgXCJLZXlGcmVlUVwiLFxuICBcIktleUludGVyc2VjdGlvblwiLFxuICBcIktleU1hcFwiLFxuICBcIktleU1lbWJlclFcIixcbiAgXCJLZXlwb2ludFN0cmVuZ3RoXCIsXG4gIFwiS2V5c1wiLFxuICBcIktleVNlbGVjdFwiLFxuICBcIktleVNvcnRcIixcbiAgXCJLZXlTb3J0QnlcIixcbiAgXCJLZXlUYWtlXCIsXG4gIFwiS2V5VW5pb25cIixcbiAgXCJLZXlWYWx1ZU1hcFwiLFxuICBcIktleVZhbHVlUGF0dGVyblwiLFxuICBcIktoaW5jaGluXCIsXG4gIFwiS2lsbFByb2Nlc3NcIixcbiAgXCJLaXJjaGhvZmZHcmFwaFwiLFxuICBcIktpcmNoaG9mZk1hdHJpeFwiLFxuICBcIktsZWluSW52YXJpYW50SlwiLFxuICBcIktuYXBzYWNrU29sdmVcIixcbiAgXCJLbmlnaHRUb3VyR3JhcGhcIixcbiAgXCJLbm90RGF0YVwiLFxuICBcIktub3duVW5pdFFcIixcbiAgXCJLb2NoQ3VydmVcIixcbiAgXCJLb2xtb2dvcm92U21pcm5vdlRlc3RcIixcbiAgXCJLcm9uZWNrZXJEZWx0YVwiLFxuICBcIktyb25lY2tlck1vZGVsRGVjb21wb3NpdGlvblwiLFxuICBcIktyb25lY2tlclByb2R1Y3RcIixcbiAgXCJLcm9uZWNrZXJTeW1ib2xcIixcbiAgXCJLdWlwZXJUZXN0XCIsXG4gIFwiS3VtYXJhc3dhbXlEaXN0cmlidXRpb25cIixcbiAgXCJLdXJ0b3Npc1wiLFxuICBcIkt1d2FoYXJhRmlsdGVyXCIsXG4gIFwiS1ZlcnRleENvbm5lY3RlZENvbXBvbmVudHNcIixcbiAgXCJLVmVydGV4Q29ubmVjdGVkR3JhcGhRXCIsXG4gIFwiTEFCQ29sb3JcIixcbiAgXCJMYWJlbFwiLFxuICBcIkxhYmVsZWRcIixcbiAgXCJMYWJlbGVkU2xpZGVyXCIsXG4gIFwiTGFiZWxpbmdGdW5jdGlvblwiLFxuICBcIkxhYmVsaW5nU2l6ZVwiLFxuICBcIkxhYmVsU3R5bGVcIixcbiAgXCJMYWJlbFZpc2liaWxpdHlcIixcbiAgXCJMYWd1ZXJyZUxcIixcbiAgXCJMYWtlRGF0YVwiLFxuICBcIkxhbWJkYUNvbXBvbmVudHNcIixcbiAgXCJMYW1iZXJ0V1wiLFxuICBcIkxhbWVDXCIsXG4gIFwiTGFtZUNQcmltZVwiLFxuICBcIkxhbWVFaWdlbnZhbHVlQVwiLFxuICBcIkxhbWVFaWdlbnZhbHVlQlwiLFxuICBcIkxhbWVTXCIsXG4gIFwiTGFtZVNQcmltZVwiLFxuICBcIkxhbWluYURhdGFcIixcbiAgXCJMYW5jem9zV2luZG93XCIsXG4gIFwiTGFuZGF1RGlzdHJpYnV0aW9uXCIsXG4gIFwiTGFuZ3VhZ2VcIixcbiAgXCJMYW5ndWFnZUNhdGVnb3J5XCIsXG4gIFwiTGFuZ3VhZ2VEYXRhXCIsXG4gIFwiTGFuZ3VhZ2VJZGVudGlmeVwiLFxuICBcIkxhbmd1YWdlT3B0aW9uc1wiLFxuICBcIkxhcGxhY2VEaXN0cmlidXRpb25cIixcbiAgXCJMYXBsYWNlVHJhbnNmb3JtXCIsXG4gIFwiTGFwbGFjaWFuXCIsXG4gIFwiTGFwbGFjaWFuRmlsdGVyXCIsXG4gIFwiTGFwbGFjaWFuR2F1c3NpYW5GaWx0ZXJcIixcbiAgXCJMYXBsYWNpYW5QREVUZXJtXCIsXG4gIFwiTGFyZ2VcIixcbiAgXCJMYXJnZXJcIixcbiAgXCJMYXN0XCIsXG4gIFwiTGF0aXR1ZGVcIixcbiAgXCJMYXRpdHVkZUxvbmdpdHVkZVwiLFxuICBcIkxhdHRpY2VEYXRhXCIsXG4gIFwiTGF0dGljZVJlZHVjZVwiLFxuICBcIkxhdW5jaFwiLFxuICBcIkxhdW5jaEtlcm5lbHNcIixcbiAgXCJMYXllcmVkR3JhcGhQbG90XCIsXG4gIFwiTGF5ZXJlZEdyYXBoUGxvdDNEXCIsXG4gIFwiTGF5ZXJTaXplRnVuY3Rpb25cIixcbiAgXCJMYXlvdXRJbmZvcm1hdGlvblwiLFxuICBcIkxDSENvbG9yXCIsXG4gIFwiTENNXCIsXG4gIFwiTGVhZGVyU2l6ZVwiLFxuICBcIkxlYWZDb3VudFwiLFxuICBcIkxlYXBWYXJpYW50XCIsXG4gIFwiTGVhcFllYXJRXCIsXG4gIFwiTGVhcm5EaXN0cmlidXRpb25cIixcbiAgXCJMZWFybmVkRGlzdHJpYnV0aW9uXCIsXG4gIFwiTGVhcm5pbmdSYXRlXCIsXG4gIFwiTGVhcm5pbmdSYXRlTXVsdGlwbGllcnNcIixcbiAgXCJMZWFzdFNxdWFyZXNcIixcbiAgXCJMZWFzdFNxdWFyZXNGaWx0ZXJLZXJuZWxcIixcbiAgXCJMZWZ0XCIsXG4gIFwiTGVmdEFycm93XCIsXG4gIFwiTGVmdEFycm93QmFyXCIsXG4gIFwiTGVmdEFycm93UmlnaHRBcnJvd1wiLFxuICBcIkxlZnREb3duVGVlVmVjdG9yXCIsXG4gIFwiTGVmdERvd25WZWN0b3JcIixcbiAgXCJMZWZ0RG93blZlY3RvckJhclwiLFxuICBcIkxlZnRSaWdodEFycm93XCIsXG4gIFwiTGVmdFJpZ2h0VmVjdG9yXCIsXG4gIFwiTGVmdFRlZVwiLFxuICBcIkxlZnRUZWVBcnJvd1wiLFxuICBcIkxlZnRUZWVWZWN0b3JcIixcbiAgXCJMZWZ0VHJpYW5nbGVcIixcbiAgXCJMZWZ0VHJpYW5nbGVCYXJcIixcbiAgXCJMZWZ0VHJpYW5nbGVFcXVhbFwiLFxuICBcIkxlZnRVcERvd25WZWN0b3JcIixcbiAgXCJMZWZ0VXBUZWVWZWN0b3JcIixcbiAgXCJMZWZ0VXBWZWN0b3JcIixcbiAgXCJMZWZ0VXBWZWN0b3JCYXJcIixcbiAgXCJMZWZ0VmVjdG9yXCIsXG4gIFwiTGVmdFZlY3RvckJhclwiLFxuICBcIkxlZ2VuZEFwcGVhcmFuY2VcIixcbiAgXCJMZWdlbmRlZFwiLFxuICBcIkxlZ2VuZEZ1bmN0aW9uXCIsXG4gIFwiTGVnZW5kTGFiZWxcIixcbiAgXCJMZWdlbmRMYXlvdXRcIixcbiAgXCJMZWdlbmRNYXJnaW5zXCIsXG4gIFwiTGVnZW5kTWFya2Vyc1wiLFxuICBcIkxlZ2VuZE1hcmtlclNpemVcIixcbiAgXCJMZWdlbmRyZVBcIixcbiAgXCJMZWdlbmRyZVFcIixcbiAgXCJMZWdlbmRyZVR5cGVcIixcbiAgXCJMZW5ndGhcIixcbiAgXCJMZW5ndGhXaGlsZVwiLFxuICBcIkxlcmNoUGhpXCIsXG4gIFwiTGVzc1wiLFxuICBcIkxlc3NFcXVhbFwiLFxuICBcIkxlc3NFcXVhbEdyZWF0ZXJcIixcbiAgXCJMZXNzRXF1YWxUaGFuXCIsXG4gIFwiTGVzc0Z1bGxFcXVhbFwiLFxuICBcIkxlc3NHcmVhdGVyXCIsXG4gIFwiTGVzc0xlc3NcIixcbiAgXCJMZXNzU2xhbnRFcXVhbFwiLFxuICBcIkxlc3NUaGFuXCIsXG4gIFwiTGVzc1RpbGRlXCIsXG4gIFwiTGV0dGVyQ2hhcmFjdGVyXCIsXG4gIFwiTGV0dGVyQ291bnRzXCIsXG4gIFwiTGV0dGVyTnVtYmVyXCIsXG4gIFwiTGV0dGVyUVwiLFxuICBcIkxldmVsXCIsXG4gIFwiTGV2ZW5lVGVzdFwiLFxuICBcIkxldmlDaXZpdGFUZW5zb3JcIixcbiAgXCJMZXZ5RGlzdHJpYnV0aW9uXCIsXG4gIFwiTGV4aWNvZ3JhcGhpY1wiLFxuICBcIkxleGljb2dyYXBoaWNPcmRlclwiLFxuICBcIkxleGljb2dyYXBoaWNTb3J0XCIsXG4gIFwiTGlicmFyeURhdGFUeXBlXCIsXG4gIFwiTGlicmFyeUZ1bmN0aW9uXCIsXG4gIFwiTGlicmFyeUZ1bmN0aW9uRGVjbGFyYXRpb25cIixcbiAgXCJMaWJyYXJ5RnVuY3Rpb25FcnJvclwiLFxuICBcIkxpYnJhcnlGdW5jdGlvbkluZm9ybWF0aW9uXCIsXG4gIFwiTGlicmFyeUZ1bmN0aW9uTG9hZFwiLFxuICBcIkxpYnJhcnlGdW5jdGlvblVubG9hZFwiLFxuICBcIkxpYnJhcnlMb2FkXCIsXG4gIFwiTGlicmFyeVVubG9hZFwiLFxuICBcIkxpY2Vuc2VFbnRpdGxlbWVudE9iamVjdFwiLFxuICBcIkxpY2Vuc2VFbnRpdGxlbWVudHNcIixcbiAgXCJMaWNlbnNlSURcIixcbiAgXCJMaWNlbnNpbmdTZXR0aW5nc1wiLFxuICBcIkxpZnRpbmdGaWx0ZXJEYXRhXCIsXG4gIFwiTGlmdGluZ1dhdmVsZXRUcmFuc2Zvcm1cIixcbiAgXCJMaWdodEJsdWVcIixcbiAgXCJMaWdodEJyb3duXCIsXG4gIFwiTGlnaHRDeWFuXCIsXG4gIFwiTGlnaHRlclwiLFxuICBcIkxpZ2h0R3JheVwiLFxuICBcIkxpZ2h0R3JlZW5cIixcbiAgXCJMaWdodGluZ1wiLFxuICBcIkxpZ2h0aW5nQW5nbGVcIixcbiAgXCJMaWdodE1hZ2VudGFcIixcbiAgXCJMaWdodE9yYW5nZVwiLFxuICBcIkxpZ2h0UGlua1wiLFxuICBcIkxpZ2h0UHVycGxlXCIsXG4gIFwiTGlnaHRSZWRcIixcbiAgXCJMaWdodFNvdXJjZXNcIixcbiAgXCJMaWdodFllbGxvd1wiLFxuICBcIkxpa2VsaWhvb2RcIixcbiAgXCJMaW1pdFwiLFxuICBcIkxpbWl0c1Bvc2l0aW9uaW5nXCIsXG4gIFwiTGltaXRzUG9zaXRpb25pbmdUb2tlbnNcIixcbiAgXCJMaW5kbGV5RGlzdHJpYnV0aW9uXCIsXG4gIFwiTGluZVwiLFxuICBcIkxpbmUzREJveFwiLFxuICBcIkxpbmUzREJveE9wdGlvbnNcIixcbiAgXCJMaW5lYXJGaWx0ZXJcIixcbiAgXCJMaW5lYXJGcmFjdGlvbmFsT3B0aW1pemF0aW9uXCIsXG4gIFwiTGluZWFyRnJhY3Rpb25hbFRyYW5zZm9ybVwiLFxuICBcIkxpbmVhckdyYWRpZW50RmlsbGluZ1wiLFxuICBcIkxpbmVhckdyYWRpZW50SW1hZ2VcIixcbiAgXCJMaW5lYXJpemluZ1RyYW5zZm9ybWF0aW9uRGF0YVwiLFxuICBcIkxpbmVhckxheWVyXCIsXG4gIFwiTGluZWFyTW9kZWxGaXRcIixcbiAgXCJMaW5lYXJPZmZzZXRGdW5jdGlvblwiLFxuICBcIkxpbmVhck9wdGltaXphdGlvblwiLFxuICBcIkxpbmVhclByb2dyYW1taW5nXCIsXG4gIFwiTGluZWFyUmVjdXJyZW5jZVwiLFxuICBcIkxpbmVhclNvbHZlXCIsXG4gIFwiTGluZWFyU29sdmVGdW5jdGlvblwiLFxuICBcIkxpbmVCb3hcIixcbiAgXCJMaW5lQm94T3B0aW9uc1wiLFxuICBcIkxpbmVCcmVha1wiLFxuICBcIkxpbmVicmVha0FkanVzdG1lbnRzXCIsXG4gIFwiTGluZUJyZWFrQ2hhcnRcIixcbiAgXCJMaW5lYnJlYWtTZW1pY29sb25XZWlnaHRpbmdcIixcbiAgXCJMaW5lQnJlYWtXaXRoaW5cIixcbiAgXCJMaW5lQ29sb3JcIixcbiAgXCJMaW5lR3JhcGhcIixcbiAgXCJMaW5lSW5kZW50XCIsXG4gIFwiTGluZUluZGVudE1heEZyYWN0aW9uXCIsXG4gIFwiTGluZUludGVncmFsQ29udm9sdXRpb25QbG90XCIsXG4gIFwiTGluZUludGVncmFsQ29udm9sdXRpb25TY2FsZVwiLFxuICBcIkxpbmVMZWdlbmRcIixcbiAgXCJMaW5lT3BhY2l0eVwiLFxuICBcIkxpbmVTcGFjaW5nXCIsXG4gIFwiTGluZVdyYXBQYXJ0c1wiLFxuICBcIkxpbmtBY3RpdmF0ZVwiLFxuICBcIkxpbmtDbG9zZVwiLFxuICBcIkxpbmtDb25uZWN0XCIsXG4gIFwiTGlua0Nvbm5lY3RlZFFcIixcbiAgXCJMaW5rQ3JlYXRlXCIsXG4gIFwiTGlua0Vycm9yXCIsXG4gIFwiTGlua0ZsdXNoXCIsXG4gIFwiTGlua0Z1bmN0aW9uXCIsXG4gIFwiTGlua0hvc3RcIixcbiAgXCJMaW5rSW50ZXJydXB0XCIsXG4gIFwiTGlua0xhdW5jaFwiLFxuICBcIkxpbmtNb2RlXCIsXG4gIFwiTGlua09iamVjdFwiLFxuICBcIkxpbmtPcGVuXCIsXG4gIFwiTGlua09wdGlvbnNcIixcbiAgXCJMaW5rUGF0dGVybnNcIixcbiAgXCJMaW5rUHJvdG9jb2xcIixcbiAgXCJMaW5rUmFua0NlbnRyYWxpdHlcIixcbiAgXCJMaW5rUmVhZFwiLFxuICBcIkxpbmtSZWFkSGVsZFwiLFxuICBcIkxpbmtSZWFkeVFcIixcbiAgXCJMaW5rc1wiLFxuICBcIkxpbmtTZXJ2aWNlXCIsXG4gIFwiTGlua1dyaXRlXCIsXG4gIFwiTGlua1dyaXRlSGVsZFwiLFxuICBcIkxpb3V2aWxsZUxhbWJkYVwiLFxuICBcIkxpc3RcIixcbiAgXCJMaXN0YWJsZVwiLFxuICBcIkxpc3RBbmltYXRlXCIsXG4gIFwiTGlzdENvbnRvdXJQbG90XCIsXG4gIFwiTGlzdENvbnRvdXJQbG90M0RcIixcbiAgXCJMaXN0Q29udm9sdmVcIixcbiAgXCJMaXN0Q29ycmVsYXRlXCIsXG4gIFwiTGlzdEN1cnZlUGF0aFBsb3RcIixcbiAgXCJMaXN0RGVjb252b2x2ZVwiLFxuICBcIkxpc3REZW5zaXR5UGxvdFwiLFxuICBcIkxpc3REZW5zaXR5UGxvdDNEXCIsXG4gIFwiTGlzdGVuXCIsXG4gIFwiTGlzdEZvcm1hdFwiLFxuICBcIkxpc3RGb3VyaWVyU2VxdWVuY2VUcmFuc2Zvcm1cIixcbiAgXCJMaXN0SW50ZXJwb2xhdGlvblwiLFxuICBcIkxpc3RMaW5lSW50ZWdyYWxDb252b2x1dGlvblBsb3RcIixcbiAgXCJMaXN0TGluZVBsb3RcIixcbiAgXCJMaXN0TGluZVBsb3QzRFwiLFxuICBcIkxpc3RMb2dMaW5lYXJQbG90XCIsXG4gIFwiTGlzdExvZ0xvZ1Bsb3RcIixcbiAgXCJMaXN0TG9nUGxvdFwiLFxuICBcIkxpc3RQaWNrZXJcIixcbiAgXCJMaXN0UGlja2VyQm94XCIsXG4gIFwiTGlzdFBpY2tlckJveEJhY2tncm91bmRcIixcbiAgXCJMaXN0UGlja2VyQm94T3B0aW9uc1wiLFxuICBcIkxpc3RQbGF5XCIsXG4gIFwiTGlzdFBsb3RcIixcbiAgXCJMaXN0UGxvdDNEXCIsXG4gIFwiTGlzdFBvaW50UGxvdDNEXCIsXG4gIFwiTGlzdFBvbGFyUGxvdFwiLFxuICBcIkxpc3RRXCIsXG4gIFwiTGlzdFNsaWNlQ29udG91clBsb3QzRFwiLFxuICBcIkxpc3RTbGljZURlbnNpdHlQbG90M0RcIixcbiAgXCJMaXN0U2xpY2VWZWN0b3JQbG90M0RcIixcbiAgXCJMaXN0U3RlcFBsb3RcIixcbiAgXCJMaXN0U3RyZWFtRGVuc2l0eVBsb3RcIixcbiAgXCJMaXN0U3RyZWFtUGxvdFwiLFxuICBcIkxpc3RTdHJlYW1QbG90M0RcIixcbiAgXCJMaXN0U3VyZmFjZVBsb3QzRFwiLFxuICBcIkxpc3RWZWN0b3JEZW5zaXR5UGxvdFwiLFxuICBcIkxpc3RWZWN0b3JEaXNwbGFjZW1lbnRQbG90XCIsXG4gIFwiTGlzdFZlY3RvckRpc3BsYWNlbWVudFBsb3QzRFwiLFxuICBcIkxpc3RWZWN0b3JQbG90XCIsXG4gIFwiTGlzdFZlY3RvclBsb3QzRFwiLFxuICBcIkxpc3RaVHJhbnNmb3JtXCIsXG4gIFwiTGl0ZXJhbFwiLFxuICBcIkxpdGVyYWxTZWFyY2hcIixcbiAgXCJMaXRlcmFsVHlwZVwiLFxuICBcIkxvYWRDb21waWxlZENvbXBvbmVudFwiLFxuICBcIkxvY2FsQWRhcHRpdmVCaW5hcml6ZVwiLFxuICBcIkxvY2FsQ2FjaGVcIixcbiAgXCJMb2NhbENsdXN0ZXJpbmdDb2VmZmljaWVudFwiLFxuICBcIkxvY2FsRXZhbHVhdGVcIixcbiAgXCJMb2NhbGl6ZURlZmluaXRpb25zXCIsXG4gIFwiTG9jYWxpemVWYXJpYWJsZXNcIixcbiAgXCJMb2NhbE9iamVjdFwiLFxuICBcIkxvY2FsT2JqZWN0c1wiLFxuICBcIkxvY2FsUmVzcG9uc2VOb3JtYWxpemF0aW9uTGF5ZXJcIixcbiAgXCJMb2NhbFN1Ym1pdFwiLFxuICBcIkxvY2FsU3ltYm9sXCIsXG4gIFwiTG9jYWxUaW1lXCIsXG4gIFwiTG9jYWxUaW1lWm9uZVwiLFxuICBcIkxvY2F0aW9uRXF1aXZhbGVuY2VUZXN0XCIsXG4gIFwiTG9jYXRpb25UZXN0XCIsXG4gIFwiTG9jYXRvclwiLFxuICBcIkxvY2F0b3JBdXRvQ3JlYXRlXCIsXG4gIFwiTG9jYXRvckJveFwiLFxuICBcIkxvY2F0b3JCb3hPcHRpb25zXCIsXG4gIFwiTG9jYXRvckNlbnRlcmluZ1wiLFxuICBcIkxvY2F0b3JQYW5lXCIsXG4gIFwiTG9jYXRvclBhbmVCb3hcIixcbiAgXCJMb2NhdG9yUGFuZUJveE9wdGlvbnNcIixcbiAgXCJMb2NhdG9yUmVnaW9uXCIsXG4gIFwiTG9ja2VkXCIsXG4gIFwiTG9nXCIsXG4gIFwiTG9nMTBcIixcbiAgXCJMb2cyXCIsXG4gIFwiTG9nQmFybmVzR1wiLFxuICBcIkxvZ0dhbW1hXCIsXG4gIFwiTG9nR2FtbWFEaXN0cmlidXRpb25cIixcbiAgXCJMb2dpY2FsRXhwYW5kXCIsXG4gIFwiTG9nSW50ZWdyYWxcIixcbiAgXCJMb2dpc3RpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkxvZ2lzdGljU2lnbW9pZFwiLFxuICBcIkxvZ2l0TW9kZWxGaXRcIixcbiAgXCJMb2dMaWtlbGlob29kXCIsXG4gIFwiTG9nTGluZWFyUGxvdFwiLFxuICBcIkxvZ0xvZ2lzdGljRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9nTG9nUGxvdFwiLFxuICBcIkxvZ011bHRpbm9ybWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9nTm9ybWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9nUGxvdFwiLFxuICBcIkxvZ1JhbmtUZXN0XCIsXG4gIFwiTG9nU2VyaWVzRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9uZ0VxdWFsXCIsXG4gIFwiTG9uZ2VzdFwiLFxuICBcIkxvbmdlc3RDb21tb25TZXF1ZW5jZVwiLFxuICBcIkxvbmdlc3RDb21tb25TZXF1ZW5jZVBvc2l0aW9uc1wiLFxuICBcIkxvbmdlc3RDb21tb25TdWJzZXF1ZW5jZVwiLFxuICBcIkxvbmdlc3RDb21tb25TdWJzZXF1ZW5jZVBvc2l0aW9uc1wiLFxuICBcIkxvbmdlc3RNYXRjaFwiLFxuICBcIkxvbmdlc3RPcmRlcmVkU2VxdWVuY2VcIixcbiAgXCJMb25nRm9ybVwiLFxuICBcIkxvbmdpdHVkZVwiLFxuICBcIkxvbmdMZWZ0QXJyb3dcIixcbiAgXCJMb25nTGVmdFJpZ2h0QXJyb3dcIixcbiAgXCJMb25nUmlnaHRBcnJvd1wiLFxuICBcIkxvbmdTaG9ydFRlcm1NZW1vcnlMYXllclwiLFxuICBcIkxvb2t1cFwiLFxuICBcIkxvb3BiYWNrXCIsXG4gIFwiTG9vcEZyZWVHcmFwaFFcIixcbiAgXCJMb29waW5nXCIsXG4gIFwiTG9zc0Z1bmN0aW9uXCIsXG4gIFwiTG93ZXJDYXNlUVwiLFxuICBcIkxvd2VyTGVmdEFycm93XCIsXG4gIFwiTG93ZXJSaWdodEFycm93XCIsXG4gIFwiTG93ZXJUcmlhbmd1bGFyaXplXCIsXG4gIFwiTG93ZXJUcmlhbmd1bGFyTWF0cml4XCIsXG4gIFwiTG93ZXJUcmlhbmd1bGFyTWF0cml4UVwiLFxuICBcIkxvd3Bhc3NGaWx0ZXJcIixcbiAgXCJMUUVzdGltYXRvckdhaW5zXCIsXG4gIFwiTFFHUmVndWxhdG9yXCIsXG4gIFwiTFFPdXRwdXRSZWd1bGF0b3JHYWluc1wiLFxuICBcIkxRUmVndWxhdG9yR2FpbnNcIixcbiAgXCJMVUJhY2tTdWJzdGl0dXRpb25cIixcbiAgXCJMdWNhc0xcIixcbiAgXCJMdWNjaW9TYW1pQ29tcG9uZW50c1wiLFxuICBcIkxVRGVjb21wb3NpdGlvblwiLFxuICBcIkx1bmFyRWNsaXBzZVwiLFxuICBcIkxVVkNvbG9yXCIsXG4gIFwiTHlhcHVub3ZTb2x2ZVwiLFxuICBcIkx5b25zR3JvdXBMeVwiLFxuICBcIk1hY2hpbmVJRFwiLFxuICBcIk1hY2hpbmVOYW1lXCIsXG4gIFwiTWFjaGluZU51bWJlclFcIixcbiAgXCJNYWNoaW5lUHJlY2lzaW9uXCIsXG4gIFwiTWFjaW50b3NoU3lzdGVtUGFnZVNldHVwXCIsXG4gIFwiTWFnZW50YVwiLFxuICBcIk1hZ25pZmljYXRpb25cIixcbiAgXCJNYWduaWZ5XCIsXG4gIFwiTWFpbEFkZHJlc3NWYWxpZGF0aW9uXCIsXG4gIFwiTWFpbEV4ZWN1dGVcIixcbiAgXCJNYWlsRm9sZGVyXCIsXG4gIFwiTWFpbEl0ZW1cIixcbiAgXCJNYWlsUmVjZWl2ZXJGdW5jdGlvblwiLFxuICBcIk1haWxSZXNwb25zZUZ1bmN0aW9uXCIsXG4gIFwiTWFpbFNlYXJjaFwiLFxuICBcIk1haWxTZXJ2ZXJDb25uZWN0XCIsXG4gIFwiTWFpbFNlcnZlckNvbm5lY3Rpb25cIixcbiAgXCJNYWlsU2V0dGluZ3NcIixcbiAgXCJNYWluU29sdmVcIixcbiAgXCJNYWludGFpbkR5bmFtaWNDYWNoZXNcIixcbiAgXCJNYWpvcml0eVwiLFxuICBcIk1ha2VCb3hlc1wiLFxuICBcIk1ha2VFeHByZXNzaW9uXCIsXG4gIFwiTWFrZVJ1bGVzXCIsXG4gIFwiTWFuYWdlZExpYnJhcnlFeHByZXNzaW9uSURcIixcbiAgXCJNYW5hZ2VkTGlicmFyeUV4cHJlc3Npb25RXCIsXG4gIFwiTWFuZGVsYnJvdFNldEJvZXR0Y2hlclwiLFxuICBcIk1hbmRlbGJyb3RTZXREaXN0YW5jZVwiLFxuICBcIk1hbmRlbGJyb3RTZXRJdGVyYXRpb25Db3VudFwiLFxuICBcIk1hbmRlbGJyb3RTZXRNZW1iZXJRXCIsXG4gIFwiTWFuZGVsYnJvdFNldFBsb3RcIixcbiAgXCJNYW5nb2xkdExhbWJkYVwiLFxuICBcIk1hbmhhdHRhbkRpc3RhbmNlXCIsXG4gIFwiTWFuaXB1bGF0ZVwiLFxuICBcIk1hbmlwdWxhdG9yXCIsXG4gIFwiTWFubmVkU3BhY2VNaXNzaW9uRGF0YVwiLFxuICBcIk1hbm5XaGl0bmV5VGVzdFwiLFxuICBcIk1hbnRpc3NhRXhwb25lbnRcIixcbiAgXCJNYW51YWxcIixcbiAgXCJNYXBcIixcbiAgXCJNYXBBbGxcIixcbiAgXCJNYXBBcHBseVwiLFxuICBcIk1hcEF0XCIsXG4gIFwiTWFwSW5kZXhlZFwiLFxuICBcIk1BUHJvY2Vzc1wiLFxuICBcIk1hcFRocmVhZFwiLFxuICBcIk1hcmNoZW5rb1Bhc3R1ckRpc3RyaWJ1dGlvblwiLFxuICBcIk1hcmN1bVFcIixcbiAgXCJNYXJkaWFDb21iaW5lZFRlc3RcIixcbiAgXCJNYXJkaWFLdXJ0b3Npc1Rlc3RcIixcbiAgXCJNYXJkaWFTa2V3bmVzc1Rlc3RcIixcbiAgXCJNYXJnaW5hbERpc3RyaWJ1dGlvblwiLFxuICBcIk1hcmtvdlByb2Nlc3NQcm9wZXJ0aWVzXCIsXG4gIFwiTWFza2luZ1wiLFxuICBcIk1hc3NDb25jZW50cmF0aW9uQ29uZGl0aW9uXCIsXG4gIFwiTWFzc0ZsdXhWYWx1ZVwiLFxuICBcIk1hc3NJbXBlcm1lYWJsZUJvdW5kYXJ5VmFsdWVcIixcbiAgXCJNYXNzT3V0Zmxvd1ZhbHVlXCIsXG4gIFwiTWFzc1N5bW1ldHJ5VmFsdWVcIixcbiAgXCJNYXNzVHJhbnNmZXJWYWx1ZVwiLFxuICBcIk1hc3NUcmFuc3BvcnRQREVDb21wb25lbnRcIixcbiAgXCJNYXRjaGluZ0Rpc3NpbWlsYXJpdHlcIixcbiAgXCJNYXRjaExvY2FsTmFtZVFcIixcbiAgXCJNYXRjaExvY2FsTmFtZXNcIixcbiAgXCJNYXRjaFFcIixcbiAgXCJNYXRlcmlhbFwiLFxuICBcIk1hdGVyaWFsU2hhZGluZ1wiLFxuICBcIk1hdGVyblBvaW50UHJvY2Vzc1wiLFxuICBcIk1hdGhlbWF0aWNhbEZ1bmN0aW9uRGF0YVwiLFxuICBcIk1hdGhlbWF0aWNhTm90YXRpb25cIixcbiAgXCJNYXRoaWV1Q1wiLFxuICBcIk1hdGhpZXVDaGFyYWN0ZXJpc3RpY0FcIixcbiAgXCJNYXRoaWV1Q2hhcmFjdGVyaXN0aWNCXCIsXG4gIFwiTWF0aGlldUNoYXJhY3RlcmlzdGljRXhwb25lbnRcIixcbiAgXCJNYXRoaWV1Q1ByaW1lXCIsXG4gIFwiTWF0aGlldUdyb3VwTTExXCIsXG4gIFwiTWF0aGlldUdyb3VwTTEyXCIsXG4gIFwiTWF0aGlldUdyb3VwTTIyXCIsXG4gIFwiTWF0aGlldUdyb3VwTTIzXCIsXG4gIFwiTWF0aGlldUdyb3VwTTI0XCIsXG4gIFwiTWF0aGlldVNcIixcbiAgXCJNYXRoaWV1U1ByaW1lXCIsXG4gIFwiTWF0aE1MRm9ybVwiLFxuICBcIk1hdGhNTFRleHRcIixcbiAgXCJNYXRyaWNlc1wiLFxuICBcIk1hdHJpeEV4cFwiLFxuICBcIk1hdHJpeEZvcm1cIixcbiAgXCJNYXRyaXhGdW5jdGlvblwiLFxuICBcIk1hdHJpeExvZ1wiLFxuICBcIk1hdHJpeE5vcm1hbERpc3RyaWJ1dGlvblwiLFxuICBcIk1hdHJpeFBsb3RcIixcbiAgXCJNYXRyaXhQb3dlclwiLFxuICBcIk1hdHJpeFByb3BlcnR5RGlzdHJpYnV0aW9uXCIsXG4gIFwiTWF0cml4UVwiLFxuICBcIk1hdHJpeFJhbmtcIixcbiAgXCJNYXRyaXhURGlzdHJpYnV0aW9uXCIsXG4gIFwiTWF4XCIsXG4gIFwiTWF4QmVuZFwiLFxuICBcIk1heENlbGxNZWFzdXJlXCIsXG4gIFwiTWF4Q29sb3JEaXN0YW5jZVwiLFxuICBcIk1heERhdGVcIixcbiAgXCJNYXhEZXRlY3RcIixcbiAgXCJNYXhEaXNwbGF5ZWRDaGlsZHJlblwiLFxuICBcIk1heER1cmF0aW9uXCIsXG4gIFwiTWF4RXh0cmFCYW5kd2lkdGhzXCIsXG4gIFwiTWF4RXh0cmFDb25kaXRpb25zXCIsXG4gIFwiTWF4RmVhdHVyZURpc3BsYWNlbWVudFwiLFxuICBcIk1heEZlYXR1cmVzXCIsXG4gIFwiTWF4RmlsdGVyXCIsXG4gIFwiTWF4aW1hbEJ5XCIsXG4gIFwiTWF4aW1pemVcIixcbiAgXCJNYXhJdGVtc1wiLFxuICBcIk1heEl0ZXJhdGlvbnNcIixcbiAgXCJNYXhMaW1pdFwiLFxuICBcIk1heE1lbW9yeVVzZWRcIixcbiAgXCJNYXhNaXh0dXJlS2VybmVsc1wiLFxuICBcIk1heE92ZXJsYXBGcmFjdGlvblwiLFxuICBcIk1heFBsb3RQb2ludHNcIixcbiAgXCJNYXhQb2ludHNcIixcbiAgXCJNYXhSZWN1cnNpb25cIixcbiAgXCJNYXhTdGFibGVEaXN0cmlidXRpb25cIixcbiAgXCJNYXhTdGVwRnJhY3Rpb25cIixcbiAgXCJNYXhTdGVwc1wiLFxuICBcIk1heFN0ZXBTaXplXCIsXG4gIFwiTWF4VHJhaW5pbmdSb3VuZHNcIixcbiAgXCJNYXhWYWx1ZVwiLFxuICBcIk1heHdlbGxEaXN0cmlidXRpb25cIixcbiAgXCJNYXhXb3JkR2FwXCIsXG4gIFwiTWNMYXVnaGxpbkdyb3VwTWNMXCIsXG4gIFwiTWVhblwiLFxuICBcIk1lYW5BYnNvbHV0ZUxvc3NMYXllclwiLFxuICBcIk1lYW5Bcm91bmRcIixcbiAgXCJNZWFuQ2x1c3RlcmluZ0NvZWZmaWNpZW50XCIsXG4gIFwiTWVhbkRlZ3JlZUNvbm5lY3Rpdml0eVwiLFxuICBcIk1lYW5EZXZpYXRpb25cIixcbiAgXCJNZWFuRmlsdGVyXCIsXG4gIFwiTWVhbkdyYXBoRGlzdGFuY2VcIixcbiAgXCJNZWFuTmVpZ2hib3JEZWdyZWVcIixcbiAgXCJNZWFuUG9pbnREZW5zaXR5XCIsXG4gIFwiTWVhblNoaWZ0XCIsXG4gIFwiTWVhblNoaWZ0RmlsdGVyXCIsXG4gIFwiTWVhblNxdWFyZWRMb3NzTGF5ZXJcIixcbiAgXCJNZWRpYW5cIixcbiAgXCJNZWRpYW5EZXZpYXRpb25cIixcbiAgXCJNZWRpYW5GaWx0ZXJcIixcbiAgXCJNZWRpY2FsVGVzdERhdGFcIixcbiAgXCJNZWRpdW1cIixcbiAgXCJNZWlqZXJHXCIsXG4gIFwiTWVpamVyR1JlZHVjZVwiLFxuICBcIk1laXhuZXJEaXN0cmlidXRpb25cIixcbiAgXCJNZWxsaW5Db252b2x2ZVwiLFxuICBcIk1lbGxpblRyYW5zZm9ybVwiLFxuICBcIk1lbWJlclFcIixcbiAgXCJNZW1vcnlBdmFpbGFibGVcIixcbiAgXCJNZW1vcnlDb25zdHJhaW5lZFwiLFxuICBcIk1lbW9yeUNvbnN0cmFpbnRcIixcbiAgXCJNZW1vcnlJblVzZVwiLFxuICBcIk1lbmdlck1lc2hcIixcbiAgXCJNZW51XCIsXG4gIFwiTWVudUFwcGVhcmFuY2VcIixcbiAgXCJNZW51Q29tbWFuZEtleVwiLFxuICBcIk1lbnVFdmFsdWF0b3JcIixcbiAgXCJNZW51SXRlbVwiLFxuICBcIk1lbnVMaXN0XCIsXG4gIFwiTWVudVBhY2tldFwiLFxuICBcIk1lbnVTb3J0aW5nVmFsdWVcIixcbiAgXCJNZW51U3R5bGVcIixcbiAgXCJNZW51Vmlld1wiLFxuICBcIk1lcmdlXCIsXG4gIFwiTWVyZ2VEaWZmZXJlbmNlc1wiLFxuICBcIk1lcmdpbmdGdW5jdGlvblwiLFxuICBcIk1lcnNlbm5lUHJpbWVFeHBvbmVudFwiLFxuICBcIk1lcnNlbm5lUHJpbWVFeHBvbmVudFFcIixcbiAgXCJNZXNoXCIsXG4gIFwiTWVzaENlbGxDZW50cm9pZFwiLFxuICBcIk1lc2hDZWxsQ291bnRcIixcbiAgXCJNZXNoQ2VsbEhpZ2hsaWdodFwiLFxuICBcIk1lc2hDZWxsSW5kZXhcIixcbiAgXCJNZXNoQ2VsbExhYmVsXCIsXG4gIFwiTWVzaENlbGxNYXJrZXJcIixcbiAgXCJNZXNoQ2VsbE1lYXN1cmVcIixcbiAgXCJNZXNoQ2VsbFF1YWxpdHlcIixcbiAgXCJNZXNoQ2VsbHNcIixcbiAgXCJNZXNoQ2VsbFNoYXBlRnVuY3Rpb25cIixcbiAgXCJNZXNoQ2VsbFN0eWxlXCIsXG4gIFwiTWVzaENvbm5lY3Rpdml0eUdyYXBoXCIsXG4gIFwiTWVzaENvb3JkaW5hdGVzXCIsXG4gIFwiTWVzaEZ1bmN0aW9uc1wiLFxuICBcIk1lc2hQcmltaXRpdmVzXCIsXG4gIFwiTWVzaFF1YWxpdHlHb2FsXCIsXG4gIFwiTWVzaFJhbmdlXCIsXG4gIFwiTWVzaFJlZmluZW1lbnRGdW5jdGlvblwiLFxuICBcIk1lc2hSZWdpb25cIixcbiAgXCJNZXNoUmVnaW9uUVwiLFxuICBcIk1lc2hTaGFkaW5nXCIsXG4gIFwiTWVzaFN0eWxlXCIsXG4gIFwiTWVzc2FnZVwiLFxuICBcIk1lc3NhZ2VEaWFsb2dcIixcbiAgXCJNZXNzYWdlTGlzdFwiLFxuICBcIk1lc3NhZ2VOYW1lXCIsXG4gIFwiTWVzc2FnZU9iamVjdFwiLFxuICBcIk1lc3NhZ2VPcHRpb25zXCIsXG4gIFwiTWVzc2FnZVBhY2tldFwiLFxuICBcIk1lc3NhZ2VzXCIsXG4gIFwiTWVzc2FnZXNOb3RlYm9va1wiLFxuICBcIk1ldGFDaGFyYWN0ZXJzXCIsXG4gIFwiTWV0YUluZm9ybWF0aW9uXCIsXG4gIFwiTWV0ZW9yU2hvd2VyRGF0YVwiLFxuICBcIk1ldGhvZFwiLFxuICBcIk1ldGhvZE9wdGlvbnNcIixcbiAgXCJNZXhpY2FuSGF0V2F2ZWxldFwiLFxuICBcIk1leWVyV2F2ZWxldFwiLFxuICBcIk1pZHBvaW50XCIsXG4gIFwiTUlNRVR5cGVUb0Zvcm1hdExpc3RcIixcbiAgXCJNaW5cIixcbiAgXCJNaW5Db2xvckRpc3RhbmNlXCIsXG4gIFwiTWluRGF0ZVwiLFxuICBcIk1pbkRldGVjdFwiLFxuICBcIk1pbmVyYWxEYXRhXCIsXG4gIFwiTWluRmlsdGVyXCIsXG4gIFwiTWluaW1hbEJ5XCIsXG4gIFwiTWluaW1hbFBvbHlub21pYWxcIixcbiAgXCJNaW5pbWFsU3RhdGVTcGFjZU1vZGVsXCIsXG4gIFwiTWluaW1pemVcIixcbiAgXCJNaW5pbXVtVGltZUluY3JlbWVudFwiLFxuICBcIk1pbkludGVydmFsU2l6ZVwiLFxuICBcIk1pbmtvd3NraVF1ZXN0aW9uTWFya1wiLFxuICBcIk1pbkxpbWl0XCIsXG4gIFwiTWluTWF4XCIsXG4gIFwiTWlub3JQbGFuZXREYXRhXCIsXG4gIFwiTWlub3JzXCIsXG4gIFwiTWluUG9pbnRTZXBhcmF0aW9uXCIsXG4gIFwiTWluUmVjdXJzaW9uXCIsXG4gIFwiTWluU2l6ZVwiLFxuICBcIk1pblN0YWJsZURpc3RyaWJ1dGlvblwiLFxuICBcIk1pbnVzXCIsXG4gIFwiTWludXNQbHVzXCIsXG4gIFwiTWluVmFsdWVcIixcbiAgXCJNaXNzaW5nXCIsXG4gIFwiTWlzc2luZ0JlaGF2aW9yXCIsXG4gIFwiTWlzc2luZ0RhdGFNZXRob2RcIixcbiAgXCJNaXNzaW5nRGF0YVJ1bGVzXCIsXG4gIFwiTWlzc2luZ1FcIixcbiAgXCJNaXNzaW5nU3RyaW5nXCIsXG4gIFwiTWlzc2luZ1N0eWxlXCIsXG4gIFwiTWlzc2luZ1ZhbHVlUGF0dGVyblwiLFxuICBcIk1pc3NpbmdWYWx1ZVN5bnRoZXNpc1wiLFxuICBcIk1pdHRhZ0xlZmZsZXJFXCIsXG4gIFwiTWl4ZWRGcmFjdGlvblBhcnRzXCIsXG4gIFwiTWl4ZWRHcmFwaFFcIixcbiAgXCJNaXhlZE1hZ25pdHVkZVwiLFxuICBcIk1peGVkUmFkaXhcIixcbiAgXCJNaXhlZFJhZGl4UXVhbnRpdHlcIixcbiAgXCJNaXhlZFVuaXRcIixcbiAgXCJNaXh0dXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiTW9kXCIsXG4gIFwiTW9kYWxcIixcbiAgXCJNb2RlXCIsXG4gIFwiTW9kZWxQcmVkaWN0aXZlQ29udHJvbGxlclwiLFxuICBcIk1vZHVsYXJcIixcbiAgXCJNb2R1bGFySW52ZXJzZVwiLFxuICBcIk1vZHVsYXJMYW1iZGFcIixcbiAgXCJNb2R1bGVcIixcbiAgXCJNb2R1bHVzXCIsXG4gIFwiTW9lYml1c011XCIsXG4gIFwiTW9sZWN1bGVcIixcbiAgXCJNb2xlY3VsZUFsaWduXCIsXG4gIFwiTW9sZWN1bGVDb250YWluc1FcIixcbiAgXCJNb2xlY3VsZURyYXdcIixcbiAgXCJNb2xlY3VsZUVxdWl2YWxlbnRRXCIsXG4gIFwiTW9sZWN1bGVGcmVlUVwiLFxuICBcIk1vbGVjdWxlR3JhcGhcIixcbiAgXCJNb2xlY3VsZU1hdGNoUVwiLFxuICBcIk1vbGVjdWxlTWF4aW11bUNvbW1vblN1YnN0cnVjdHVyZVwiLFxuICBcIk1vbGVjdWxlTW9kaWZ5XCIsXG4gIFwiTW9sZWN1bGVOYW1lXCIsXG4gIFwiTW9sZWN1bGVQYXR0ZXJuXCIsXG4gIFwiTW9sZWN1bGVQbG90XCIsXG4gIFwiTW9sZWN1bGVQbG90M0RcIixcbiAgXCJNb2xlY3VsZVByb3BlcnR5XCIsXG4gIFwiTW9sZWN1bGVRXCIsXG4gIFwiTW9sZWN1bGVSZWNvZ25pemVcIixcbiAgXCJNb2xlY3VsZVN1YnN0cnVjdHVyZUNvdW50XCIsXG4gIFwiTW9sZWN1bGVWYWx1ZVwiLFxuICBcIk1vbWVudFwiLFxuICBcIk1vbWVudENvbnZlcnRcIixcbiAgXCJNb21lbnRFdmFsdWF0ZVwiLFxuICBcIk1vbWVudEdlbmVyYXRpbmdGdW5jdGlvblwiLFxuICBcIk1vbWVudE9mSW5lcnRpYVwiLFxuICBcIk1vbmRheVwiLFxuICBcIk1vbml0b3JcIixcbiAgXCJNb25vbWlhbExpc3RcIixcbiAgXCJNb25vbWlhbE9yZGVyXCIsXG4gIFwiTW9uc3Rlckdyb3VwTVwiLFxuICBcIk1vb25QaGFzZVwiLFxuICBcIk1vb25Qb3NpdGlvblwiLFxuICBcIk1vcmxldFdhdmVsZXRcIixcbiAgXCJNb3JwaG9sb2dpY2FsQmluYXJpemVcIixcbiAgXCJNb3JwaG9sb2dpY2FsQnJhbmNoUG9pbnRzXCIsXG4gIFwiTW9ycGhvbG9naWNhbENvbXBvbmVudHNcIixcbiAgXCJNb3JwaG9sb2dpY2FsRXVsZXJOdW1iZXJcIixcbiAgXCJNb3JwaG9sb2dpY2FsR3JhcGhcIixcbiAgXCJNb3JwaG9sb2dpY2FsUGVyaW1ldGVyXCIsXG4gIFwiTW9ycGhvbG9naWNhbFRyYW5zZm9ybVwiLFxuICBcIk1vcnRhbGl0eURhdGFcIixcbiAgXCJNb3N0XCIsXG4gIFwiTW91bnRhaW5EYXRhXCIsXG4gIFwiTW91c2VBbm5vdGF0aW9uXCIsXG4gIFwiTW91c2VBcHBlYXJhbmNlXCIsXG4gIFwiTW91c2VBcHBlYXJhbmNlVGFnXCIsXG4gIFwiTW91c2VCdXR0b25zXCIsXG4gIFwiTW91c2VvdmVyXCIsXG4gIFwiTW91c2VQb2ludGVyTm90ZVwiLFxuICBcIk1vdXNlUG9zaXRpb25cIixcbiAgXCJNb3ZpZURhdGFcIixcbiAgXCJNb3ZpbmdBdmVyYWdlXCIsXG4gIFwiTW92aW5nTWFwXCIsXG4gIFwiTW92aW5nTWVkaWFuXCIsXG4gIFwiTW95YWxEaXN0cmlidXRpb25cIixcbiAgXCJNdWx0aWF4aXNBcnJhbmdlbWVudFwiLFxuICBcIk11bHRpY29sdW1uXCIsXG4gIFwiTXVsdGllZGdlU3R5bGVcIixcbiAgXCJNdWx0aWdyYXBoUVwiLFxuICBcIk11bHRpbGF1bmNoV2FybmluZ1wiLFxuICBcIk11bHRpTGV0dGVySXRhbGljc1wiLFxuICBcIk11bHRpTGV0dGVyU3R5bGVcIixcbiAgXCJNdWx0aWxpbmVGdW5jdGlvblwiLFxuICBcIk11bHRpbm9taWFsXCIsXG4gIFwiTXVsdGlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJNdWx0aW5vcm1hbERpc3RyaWJ1dGlvblwiLFxuICBcIk11bHRpcGxpY2F0aXZlT3JkZXJcIixcbiAgXCJNdWx0aXBsaWNpdHlcIixcbiAgXCJNdWx0aXBseVNpZGVzXCIsXG4gIFwiTXVsdGlzY3JpcHRCb3hPcHRpb25zXCIsXG4gIFwiTXVsdGlzZWxlY3Rpb25cIixcbiAgXCJNdWx0aXZhcmlhdGVIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIk11bHRpdmFyaWF0ZVBvaXNzb25EaXN0cmlidXRpb25cIixcbiAgXCJNdWx0aXZhcmlhdGVURGlzdHJpYnV0aW9uXCIsXG4gIFwiTlwiLFxuICBcIk5ha2FnYW1pRGlzdHJpYnV0aW9uXCIsXG4gIFwiTmFtZVFcIixcbiAgXCJOYW1lc1wiLFxuICBcIk5hbWVzcGFjZUJveFwiLFxuICBcIk5hbWVzcGFjZUJveE9wdGlvbnNcIixcbiAgXCJOYW5kXCIsXG4gIFwiTkFyZ01heFwiLFxuICBcIk5BcmdNaW5cIixcbiAgXCJOQmVybm91bGxpQlwiLFxuICBcIk5Cb2R5U2ltdWxhdGlvblwiLFxuICBcIk5Cb2R5U2ltdWxhdGlvbkRhdGFcIixcbiAgXCJOQ2FjaGVcIixcbiAgXCJOQ2FwdXRvRFwiLFxuICBcIk5ERWlnZW5zeXN0ZW1cIixcbiAgXCJOREVpZ2VudmFsdWVzXCIsXG4gIFwiTkRTb2x2ZVwiLFxuICBcIk5EU29sdmVWYWx1ZVwiLFxuICBcIk5lYXJlc3RcIixcbiAgXCJOZWFyZXN0RnVuY3Rpb25cIixcbiAgXCJOZWFyZXN0TWVzaENlbGxzXCIsXG4gIFwiTmVhcmVzdE5laWdoYm9yR1wiLFxuICBcIk5lYXJlc3ROZWlnaGJvckdyYXBoXCIsXG4gIFwiTmVhcmVzdFRvXCIsXG4gIFwiTmVidWxhRGF0YVwiLFxuICBcIk5lZWRsZW1hbld1bnNjaFNpbWlsYXJpdHlcIixcbiAgXCJOZWVkc1wiLFxuICBcIk5lZ2F0aXZlXCIsXG4gIFwiTmVnYXRpdmVCaW5vbWlhbERpc3RyaWJ1dGlvblwiLFxuICBcIk5lZ2F0aXZlRGVmaW5pdGVNYXRyaXhRXCIsXG4gIFwiTmVnYXRpdmVJbnRlZ2Vyc1wiLFxuICBcIk5lZ2F0aXZlbHlPcmllbnRlZFBvaW50c1wiLFxuICBcIk5lZ2F0aXZlTXVsdGlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJOZWdhdGl2ZVJhdGlvbmFsc1wiLFxuICBcIk5lZ2F0aXZlUmVhbHNcIixcbiAgXCJOZWdhdGl2ZVNlbWlkZWZpbml0ZU1hdHJpeFFcIixcbiAgXCJOZWlnaGJvcmhvb2REYXRhXCIsXG4gIFwiTmVpZ2hib3Job29kR3JhcGhcIixcbiAgXCJOZXN0XCIsXG4gIFwiTmVzdGVkR3JlYXRlckdyZWF0ZXJcIixcbiAgXCJOZXN0ZWRMZXNzTGVzc1wiLFxuICBcIk5lc3RlZFNjcmlwdFJ1bGVzXCIsXG4gIFwiTmVzdEdyYXBoXCIsXG4gIFwiTmVzdExpc3RcIixcbiAgXCJOZXN0VHJlZVwiLFxuICBcIk5lc3RXaGlsZVwiLFxuICBcIk5lc3RXaGlsZUxpc3RcIixcbiAgXCJOZXRBcHBlbmRcIixcbiAgXCJOZXRBcnJheVwiLFxuICBcIk5ldEFycmF5TGF5ZXJcIixcbiAgXCJOZXRCaWRpcmVjdGlvbmFsT3BlcmF0b3JcIixcbiAgXCJOZXRDaGFpblwiLFxuICBcIk5ldERlY29kZXJcIixcbiAgXCJOZXREZWxldGVcIixcbiAgXCJOZXREcm9wXCIsXG4gIFwiTmV0RW5jb2RlclwiLFxuICBcIk5ldEV2YWx1YXRpb25Nb2RlXCIsXG4gIFwiTmV0RXh0ZXJuYWxPYmplY3RcIixcbiAgXCJOZXRFeHRyYWN0XCIsXG4gIFwiTmV0RmxhdHRlblwiLFxuICBcIk5ldEZvbGRPcGVyYXRvclwiLFxuICBcIk5ldEdBTk9wZXJhdG9yXCIsXG4gIFwiTmV0R3JhcGhcIixcbiAgXCJOZXRJbmZvcm1hdGlvblwiLFxuICBcIk5ldEluaXRpYWxpemVcIixcbiAgXCJOZXRJbnNlcnRcIixcbiAgXCJOZXRJbnNlcnRTaGFyZWRBcnJheXNcIixcbiAgXCJOZXRKb2luXCIsXG4gIFwiTmV0TWFwT3BlcmF0b3JcIixcbiAgXCJOZXRNYXBUaHJlYWRPcGVyYXRvclwiLFxuICBcIk5ldE1lYXN1cmVtZW50c1wiLFxuICBcIk5ldE1vZGVsXCIsXG4gIFwiTmV0TmVzdE9wZXJhdG9yXCIsXG4gIFwiTmV0UGFpckVtYmVkZGluZ09wZXJhdG9yXCIsXG4gIFwiTmV0UG9ydFwiLFxuICBcIk5ldFBvcnRHcmFkaWVudFwiLFxuICBcIk5ldFByZXBlbmRcIixcbiAgXCJOZXRSZW5hbWVcIixcbiAgXCJOZXRSZXBsYWNlXCIsXG4gIFwiTmV0UmVwbGFjZVBhcnRcIixcbiAgXCJOZXRTaGFyZWRBcnJheVwiLFxuICBcIk5ldFN0YXRlT2JqZWN0XCIsXG4gIFwiTmV0VGFrZVwiLFxuICBcIk5ldFRyYWluXCIsXG4gIFwiTmV0VHJhaW5SZXN1bHRzT2JqZWN0XCIsXG4gIFwiTmV0VW5mb2xkXCIsXG4gIFwiTmV0d29ya1BhY2tldENhcHR1cmVcIixcbiAgXCJOZXR3b3JrUGFja2V0UmVjb3JkaW5nXCIsXG4gIFwiTmV0d29ya1BhY2tldFJlY29yZGluZ0R1cmluZ1wiLFxuICBcIk5ldHdvcmtQYWNrZXRUcmFjZVwiLFxuICBcIk5ldW1hbm5WYWx1ZVwiLFxuICBcIk5ldmlsbGVUaGV0YUNcIixcbiAgXCJOZXZpbGxlVGhldGFEXCIsXG4gIFwiTmV2aWxsZVRoZXRhTlwiLFxuICBcIk5ldmlsbGVUaGV0YVNcIixcbiAgXCJOZXdQcmltaXRpdmVTdHlsZVwiLFxuICBcIk5FeHBlY3RhdGlvblwiLFxuICBcIk5leHRcIixcbiAgXCJOZXh0Q2VsbFwiLFxuICBcIk5leHREYXRlXCIsXG4gIFwiTmV4dFByaW1lXCIsXG4gIFwiTmV4dFNjaGVkdWxlZFRhc2tUaW1lXCIsXG4gIFwiTmV5bWFuU2NvdHRQb2ludFByb2Nlc3NcIixcbiAgXCJORnJhY3Rpb25hbERcIixcbiAgXCJOSG9sZEFsbFwiLFxuICBcIk5Ib2xkRmlyc3RcIixcbiAgXCJOSG9sZFJlc3RcIixcbiAgXCJOaWNob2xzR3JpZExpbmVzXCIsXG4gIFwiTmljaG9sc1Bsb3RcIixcbiAgXCJOaWdodEhlbWlzcGhlcmVcIixcbiAgXCJOSW50ZWdyYXRlXCIsXG4gIFwiTk1heGltaXplXCIsXG4gIFwiTk1heFZhbHVlXCIsXG4gIFwiTk1pbmltaXplXCIsXG4gIFwiTk1pblZhbHVlXCIsXG4gIFwiTm9taW5hbFNjYWxlXCIsXG4gIFwiTm9taW5hbFZhcmlhYmxlc1wiLFxuICBcIk5vbkFzc29jaWF0aXZlXCIsXG4gIFwiTm9uY2VudHJhbEJldGFEaXN0cmlidXRpb25cIixcbiAgXCJOb25jZW50cmFsQ2hpU3F1YXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiTm9uY2VudHJhbEZSYXRpb0Rpc3RyaWJ1dGlvblwiLFxuICBcIk5vbmNlbnRyYWxTdHVkZW50VERpc3RyaWJ1dGlvblwiLFxuICBcIk5vbkNvbW11dGF0aXZlTXVsdGlwbHlcIixcbiAgXCJOb25Db25zdGFudHNcIixcbiAgXCJOb25kaW1lbnNpb25hbGl6YXRpb25UcmFuc2Zvcm1cIixcbiAgXCJOb25lXCIsXG4gIFwiTm9uZVRydWVcIixcbiAgXCJOb25saW5lYXJNb2RlbEZpdFwiLFxuICBcIk5vbmxpbmVhclN0YXRlU3BhY2VNb2RlbFwiLFxuICBcIk5vbmxvY2FsTWVhbnNGaWx0ZXJcIixcbiAgXCJOb25OZWdhdGl2ZVwiLFxuICBcIk5vbk5lZ2F0aXZlSW50ZWdlcnNcIixcbiAgXCJOb25OZWdhdGl2ZVJhdGlvbmFsc1wiLFxuICBcIk5vbk5lZ2F0aXZlUmVhbHNcIixcbiAgXCJOb25Qb3NpdGl2ZVwiLFxuICBcIk5vblBvc2l0aXZlSW50ZWdlcnNcIixcbiAgXCJOb25Qb3NpdGl2ZVJhdGlvbmFsc1wiLFxuICBcIk5vblBvc2l0aXZlUmVhbHNcIixcbiAgXCJOb3JcIixcbiAgXCJOb3JsdW5kQlwiLFxuICBcIk5vcm1cIixcbiAgXCJOb3JtYWxcIixcbiAgXCJOb3JtYWxEaXN0cmlidXRpb25cIixcbiAgXCJOb3JtYWxHcm91cGluZ1wiLFxuICBcIk5vcm1hbGl6YXRpb25MYXllclwiLFxuICBcIk5vcm1hbGl6ZVwiLFxuICBcIk5vcm1hbGl6ZWRcIixcbiAgXCJOb3JtYWxpemVkU3F1YXJlZEV1Y2xpZGVhbkRpc3RhbmNlXCIsXG4gIFwiTm9ybWFsTWF0cml4UVwiLFxuICBcIk5vcm1hbHNGdW5jdGlvblwiLFxuICBcIk5vcm1GdW5jdGlvblwiLFxuICBcIk5vdFwiLFxuICBcIk5vdENvbmdydWVudFwiLFxuICBcIk5vdEN1cENhcFwiLFxuICBcIk5vdERvdWJsZVZlcnRpY2FsQmFyXCIsXG4gIFwiTm90ZWJvb2tcIixcbiAgXCJOb3RlYm9va0FwcGx5XCIsXG4gIFwiTm90ZWJvb2tBdXRvU2F2ZVwiLFxuICBcIk5vdGVib29rQnJvd3NlRGlyZWN0b3J5XCIsXG4gIFwiTm90ZWJvb2tDbG9zZVwiLFxuICBcIk5vdGVib29rQ29udmVydFNldHRpbmdzXCIsXG4gIFwiTm90ZWJvb2tDcmVhdGVcIixcbiAgXCJOb3RlYm9va0RlZmF1bHRcIixcbiAgXCJOb3RlYm9va0RlbGV0ZVwiLFxuICBcIk5vdGVib29rRGlyZWN0b3J5XCIsXG4gIFwiTm90ZWJvb2tEeW5hbWljRXhwcmVzc2lvblwiLFxuICBcIk5vdGVib29rRXZhbHVhdGVcIixcbiAgXCJOb3RlYm9va0V2ZW50QWN0aW9uc1wiLFxuICBcIk5vdGVib29rRmlsZU5hbWVcIixcbiAgXCJOb3RlYm9va0ZpbmRcIixcbiAgXCJOb3RlYm9va0dldFwiLFxuICBcIk5vdGVib29rSW1wb3J0XCIsXG4gIFwiTm90ZWJvb2tJbmZvcm1hdGlvblwiLFxuICBcIk5vdGVib29rSW50ZXJmYWNlT2JqZWN0XCIsXG4gIFwiTm90ZWJvb2tMb2NhdGVcIixcbiAgXCJOb3RlYm9va09iamVjdFwiLFxuICBcIk5vdGVib29rT3BlblwiLFxuICBcIk5vdGVib29rUGF0aFwiLFxuICBcIk5vdGVib29rUHJpbnRcIixcbiAgXCJOb3RlYm9va1B1dFwiLFxuICBcIk5vdGVib29rUmVhZFwiLFxuICBcIk5vdGVib29rc1wiLFxuICBcIk5vdGVib29rU2F2ZVwiLFxuICBcIk5vdGVib29rU2VsZWN0aW9uXCIsXG4gIFwiTm90ZWJvb2tzTWVudVwiLFxuICBcIk5vdGVib29rVGVtcGxhdGVcIixcbiAgXCJOb3RlYm9va1dyaXRlXCIsXG4gIFwiTm90RWxlbWVudFwiLFxuICBcIk5vdEVxdWFsVGlsZGVcIixcbiAgXCJOb3RFeGlzdHNcIixcbiAgXCJOb3RHcmVhdGVyXCIsXG4gIFwiTm90R3JlYXRlckVxdWFsXCIsXG4gIFwiTm90R3JlYXRlckZ1bGxFcXVhbFwiLFxuICBcIk5vdEdyZWF0ZXJHcmVhdGVyXCIsXG4gIFwiTm90R3JlYXRlckxlc3NcIixcbiAgXCJOb3RHcmVhdGVyU2xhbnRFcXVhbFwiLFxuICBcIk5vdEdyZWF0ZXJUaWxkZVwiLFxuICBcIk5vdGhpbmdcIixcbiAgXCJOb3RIdW1wRG93bkh1bXBcIixcbiAgXCJOb3RIdW1wRXF1YWxcIixcbiAgXCJOb3RpZmljYXRpb25GdW5jdGlvblwiLFxuICBcIk5vdExlZnRUcmlhbmdsZVwiLFxuICBcIk5vdExlZnRUcmlhbmdsZUJhclwiLFxuICBcIk5vdExlZnRUcmlhbmdsZUVxdWFsXCIsXG4gIFwiTm90TGVzc1wiLFxuICBcIk5vdExlc3NFcXVhbFwiLFxuICBcIk5vdExlc3NGdWxsRXF1YWxcIixcbiAgXCJOb3RMZXNzR3JlYXRlclwiLFxuICBcIk5vdExlc3NMZXNzXCIsXG4gIFwiTm90TGVzc1NsYW50RXF1YWxcIixcbiAgXCJOb3RMZXNzVGlsZGVcIixcbiAgXCJOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlclwiLFxuICBcIk5vdE5lc3RlZExlc3NMZXNzXCIsXG4gIFwiTm90UHJlY2VkZXNcIixcbiAgXCJOb3RQcmVjZWRlc0VxdWFsXCIsXG4gIFwiTm90UHJlY2VkZXNTbGFudEVxdWFsXCIsXG4gIFwiTm90UHJlY2VkZXNUaWxkZVwiLFxuICBcIk5vdFJldmVyc2VFbGVtZW50XCIsXG4gIFwiTm90UmlnaHRUcmlhbmdsZVwiLFxuICBcIk5vdFJpZ2h0VHJpYW5nbGVCYXJcIixcbiAgXCJOb3RSaWdodFRyaWFuZ2xlRXF1YWxcIixcbiAgXCJOb3RTcXVhcmVTdWJzZXRcIixcbiAgXCJOb3RTcXVhcmVTdWJzZXRFcXVhbFwiLFxuICBcIk5vdFNxdWFyZVN1cGVyc2V0XCIsXG4gIFwiTm90U3F1YXJlU3VwZXJzZXRFcXVhbFwiLFxuICBcIk5vdFN1YnNldFwiLFxuICBcIk5vdFN1YnNldEVxdWFsXCIsXG4gIFwiTm90U3VjY2VlZHNcIixcbiAgXCJOb3RTdWNjZWVkc0VxdWFsXCIsXG4gIFwiTm90U3VjY2VlZHNTbGFudEVxdWFsXCIsXG4gIFwiTm90U3VjY2VlZHNUaWxkZVwiLFxuICBcIk5vdFN1cGVyc2V0XCIsXG4gIFwiTm90U3VwZXJzZXRFcXVhbFwiLFxuICBcIk5vdFRpbGRlXCIsXG4gIFwiTm90VGlsZGVFcXVhbFwiLFxuICBcIk5vdFRpbGRlRnVsbEVxdWFsXCIsXG4gIFwiTm90VGlsZGVUaWxkZVwiLFxuICBcIk5vdFZlcnRpY2FsQmFyXCIsXG4gIFwiTm93XCIsXG4gIFwiTm9XaGl0ZXNwYWNlXCIsXG4gIFwiTlByb2JhYmlsaXR5XCIsXG4gIFwiTlByb2R1Y3RcIixcbiAgXCJOUHJvZHVjdEZhY3RvcnNcIixcbiAgXCJOUm9vdHNcIixcbiAgXCJOU29sdmVcIixcbiAgXCJOU29sdmVWYWx1ZXNcIixcbiAgXCJOU3VtXCIsXG4gIFwiTlN1bVRlcm1zXCIsXG4gIFwiTnVjbGVhckV4cGxvc2lvbkRhdGFcIixcbiAgXCJOdWNsZWFyUmVhY3RvckRhdGFcIixcbiAgXCJOdWxsXCIsXG4gIFwiTnVsbFJlY29yZHNcIixcbiAgXCJOdWxsU3BhY2VcIixcbiAgXCJOdWxsV29yZHNcIixcbiAgXCJOdW1iZXJcIixcbiAgXCJOdW1iZXJDb21wb3NlXCIsXG4gIFwiTnVtYmVyRGVjb21wb3NlXCIsXG4gIFwiTnVtYmVyRGlnaXRcIixcbiAgXCJOdW1iZXJFeHBhbmRcIixcbiAgXCJOdW1iZXJGaWVsZENsYXNzTnVtYmVyXCIsXG4gIFwiTnVtYmVyRmllbGREaXNjcmltaW5hbnRcIixcbiAgXCJOdW1iZXJGaWVsZEZ1bmRhbWVudGFsVW5pdHNcIixcbiAgXCJOdW1iZXJGaWVsZEludGVncmFsQmFzaXNcIixcbiAgXCJOdW1iZXJGaWVsZE5vcm1SZXByZXNlbnRhdGl2ZXNcIixcbiAgXCJOdW1iZXJGaWVsZFJlZ3VsYXRvclwiLFxuICBcIk51bWJlckZpZWxkUm9vdHNPZlVuaXR5XCIsXG4gIFwiTnVtYmVyRmllbGRTaWduYXR1cmVcIixcbiAgXCJOdW1iZXJGb3JtXCIsXG4gIFwiTnVtYmVyRm9ybWF0XCIsXG4gIFwiTnVtYmVyTGluZVBsb3RcIixcbiAgXCJOdW1iZXJNYXJrc1wiLFxuICBcIk51bWJlck11bHRpcGxpZXJcIixcbiAgXCJOdW1iZXJQYWRkaW5nXCIsXG4gIFwiTnVtYmVyUG9pbnRcIixcbiAgXCJOdW1iZXJRXCIsXG4gIFwiTnVtYmVyU2VwYXJhdG9yXCIsXG4gIFwiTnVtYmVyU2lnbnNcIixcbiAgXCJOdW1iZXJTdHJpbmdcIixcbiAgXCJOdW1lcmF0b3JcIixcbiAgXCJOdW1lcmF0b3JEZW5vbWluYXRvclwiLFxuICBcIk51bWVyaWNhbE9yZGVyXCIsXG4gIFwiTnVtZXJpY2FsU29ydFwiLFxuICBcIk51bWVyaWNBcnJheVwiLFxuICBcIk51bWVyaWNBcnJheVFcIixcbiAgXCJOdW1lcmljQXJyYXlUeXBlXCIsXG4gIFwiTnVtZXJpY0Z1bmN0aW9uXCIsXG4gIFwiTnVtZXJpY1FcIixcbiAgXCJOdXR0YWxsV2luZG93XCIsXG4gIFwiTlZhbHVlc1wiLFxuICBcIk55cXVpc3RHcmlkTGluZXNcIixcbiAgXCJOeXF1aXN0UGxvdFwiLFxuICBcIk9cIixcbiAgXCJPYmplY3RFeGlzdHNRXCIsXG4gIFwiT2JzZXJ2YWJpbGl0eUdyYW1pYW5cIixcbiAgXCJPYnNlcnZhYmlsaXR5TWF0cml4XCIsXG4gIFwiT2JzZXJ2YWJsZURlY29tcG9zaXRpb25cIixcbiAgXCJPYnNlcnZhYmxlTW9kZWxRXCIsXG4gIFwiT2NlYW5EYXRhXCIsXG4gIFwiT2N0YWhlZHJvblwiLFxuICBcIk9kZFFcIixcbiAgXCJPZmZcIixcbiAgXCJPZmZzZXRcIixcbiAgXCJPTEVEYXRhXCIsXG4gIFwiT25cIixcbiAgXCJPTmFuR3JvdXBPTlwiLFxuICBcIk9uY2VcIixcbiAgXCJPbmVJZGVudGl0eVwiLFxuICBcIk9wYWNpdHlcIixcbiAgXCJPcGFjaXR5RnVuY3Rpb25cIixcbiAgXCJPcGFjaXR5RnVuY3Rpb25TY2FsaW5nXCIsXG4gIFwiT3BlblwiLFxuICBcIk9wZW5BcHBlbmRcIixcbiAgXCJPcGVuZXJcIixcbiAgXCJPcGVuZXJCb3hcIixcbiAgXCJPcGVuZXJCb3hPcHRpb25zXCIsXG4gIFwiT3BlbmVyVmlld1wiLFxuICBcIk9wZW5GdW5jdGlvbkluc3BlY3RvclBhY2tldFwiLFxuICBcIk9wZW5pbmdcIixcbiAgXCJPcGVuUmVhZFwiLFxuICBcIk9wZW5TcGVjaWFsT3B0aW9uc1wiLFxuICBcIk9wZW5UZW1wb3JhcnlcIixcbiAgXCJPcGVuV3JpdGVcIixcbiAgXCJPcGVyYXRlXCIsXG4gIFwiT3BlcmF0aW5nU3lzdGVtXCIsXG4gIFwiT3BlcmF0b3JBcHBsaWVkXCIsXG4gIFwiT3B0aW11bUZsb3dEYXRhXCIsXG4gIFwiT3B0aW9uYWxcIixcbiAgXCJPcHRpb25hbEVsZW1lbnRcIixcbiAgXCJPcHRpb25JbnNwZWN0b3JTZXR0aW5nc1wiLFxuICBcIk9wdGlvblFcIixcbiAgXCJPcHRpb25zXCIsXG4gIFwiT3B0aW9uc1BhY2tldFwiLFxuICBcIk9wdGlvbnNQYXR0ZXJuXCIsXG4gIFwiT3B0aW9uVmFsdWVcIixcbiAgXCJPcHRpb25WYWx1ZUJveFwiLFxuICBcIk9wdGlvblZhbHVlQm94T3B0aW9uc1wiLFxuICBcIk9yXCIsXG4gIFwiT3JhbmdlXCIsXG4gIFwiT3JkZXJcIixcbiAgXCJPcmRlckRpc3RyaWJ1dGlvblwiLFxuICBcIk9yZGVyZWRRXCIsXG4gIFwiT3JkZXJpbmdcIixcbiAgXCJPcmRlcmluZ0J5XCIsXG4gIFwiT3JkZXJpbmdMYXllclwiLFxuICBcIk9yZGVybGVzc1wiLFxuICBcIk9yZGVybGVzc1BhdHRlcm5TZXF1ZW5jZVwiLFxuICBcIk9yZGluYWxTY2FsZVwiLFxuICBcIk9ybnN0ZWluVWhsZW5iZWNrUHJvY2Vzc1wiLFxuICBcIk9ydGhvZ29uYWxpemVcIixcbiAgXCJPcnRob2dvbmFsTWF0cml4UVwiLFxuICBcIk91dFwiLFxuICBcIk91dGVyXCIsXG4gIFwiT3V0ZXJQb2x5Z29uXCIsXG4gIFwiT3V0ZXJQb2x5aGVkcm9uXCIsXG4gIFwiT3V0cHV0QXV0b092ZXJ3cml0ZVwiLFxuICBcIk91dHB1dENvbnRyb2xsYWJpbGl0eU1hdHJpeFwiLFxuICBcIk91dHB1dENvbnRyb2xsYWJsZU1vZGVsUVwiLFxuICBcIk91dHB1dEZvcm1cIixcbiAgXCJPdXRwdXRGb3JtRGF0YVwiLFxuICBcIk91dHB1dEdyb3VwaW5nXCIsXG4gIFwiT3V0cHV0TWF0aEVkaXRFeHByZXNzaW9uXCIsXG4gIFwiT3V0cHV0TmFtZVBhY2tldFwiLFxuICBcIk91dHB1dFBvcnRzXCIsXG4gIFwiT3V0cHV0UmVzcG9uc2VcIixcbiAgXCJPdXRwdXRTaXplTGltaXRcIixcbiAgXCJPdXRwdXRTdHJlYW1cIixcbiAgXCJPdmVyXCIsXG4gIFwiT3ZlckJhclwiLFxuICBcIk92ZXJEb3RcIixcbiAgXCJPdmVyZmxvd1wiLFxuICBcIk92ZXJIYXRcIixcbiAgXCJPdmVybGFwc1wiLFxuICBcIk92ZXJsYXlcIixcbiAgXCJPdmVybGF5Qm94XCIsXG4gIFwiT3ZlcmxheUJveE9wdGlvbnNcIixcbiAgXCJPdmVybGF5VmlkZW9cIixcbiAgXCJPdmVyc2NyaXB0XCIsXG4gIFwiT3ZlcnNjcmlwdEJveFwiLFxuICBcIk92ZXJzY3JpcHRCb3hPcHRpb25zXCIsXG4gIFwiT3ZlclRpbGRlXCIsXG4gIFwiT3ZlclZlY3RvclwiLFxuICBcIk92ZXJ3cml0ZVRhcmdldFwiLFxuICBcIk93ZW5UXCIsXG4gIFwiT3duVmFsdWVzXCIsXG4gIFwiUGFja2FnZVwiLFxuICBcIlBhY2tpbmdNZXRob2RcIixcbiAgXCJQYWNrUGFjbGV0XCIsXG4gIFwiUGFjbGV0RGF0YVJlYnVpbGRcIixcbiAgXCJQYWNsZXREaXJlY3RvcnlBZGRcIixcbiAgXCJQYWNsZXREaXJlY3RvcnlMb2FkXCIsXG4gIFwiUGFjbGV0RGlyZWN0b3J5UmVtb3ZlXCIsXG4gIFwiUGFjbGV0RGlyZWN0b3J5VW5sb2FkXCIsXG4gIFwiUGFjbGV0RGlzYWJsZVwiLFxuICBcIlBhY2xldEVuYWJsZVwiLFxuICBcIlBhY2xldEZpbmRcIixcbiAgXCJQYWNsZXRGaW5kUmVtb3RlXCIsXG4gIFwiUGFjbGV0SW5mb3JtYXRpb25cIixcbiAgXCJQYWNsZXRJbnN0YWxsXCIsXG4gIFwiUGFjbGV0SW5zdGFsbFN1Ym1pdFwiLFxuICBcIlBhY2xldE5ld2VyUVwiLFxuICBcIlBhY2xldE9iamVjdFwiLFxuICBcIlBhY2xldE9iamVjdFFcIixcbiAgXCJQYWNsZXRTaXRlXCIsXG4gIFwiUGFjbGV0U2l0ZU9iamVjdFwiLFxuICBcIlBhY2xldFNpdGVSZWdpc3RlclwiLFxuICBcIlBhY2xldFNpdGVzXCIsXG4gIFwiUGFjbGV0U2l0ZVVucmVnaXN0ZXJcIixcbiAgXCJQYWNsZXRTaXRlVXBkYXRlXCIsXG4gIFwiUGFjbGV0U3ltYm9sXCIsXG4gIFwiUGFjbGV0VW5pbnN0YWxsXCIsXG4gIFwiUGFjbGV0VXBkYXRlXCIsXG4gIFwiUGFkZGVkRm9ybVwiLFxuICBcIlBhZGRpbmdcIixcbiAgXCJQYWRkaW5nTGF5ZXJcIixcbiAgXCJQYWRkaW5nU2l6ZVwiLFxuICBcIlBhZGVBcHByb3hpbWFudFwiLFxuICBcIlBhZExlZnRcIixcbiAgXCJQYWRSaWdodFwiLFxuICBcIlBhZ2VCcmVha0Fib3ZlXCIsXG4gIFwiUGFnZUJyZWFrQmVsb3dcIixcbiAgXCJQYWdlQnJlYWtXaXRoaW5cIixcbiAgXCJQYWdlRm9vdGVyTGluZXNcIixcbiAgXCJQYWdlRm9vdGVyc1wiLFxuICBcIlBhZ2VIZWFkZXJMaW5lc1wiLFxuICBcIlBhZ2VIZWFkZXJzXCIsXG4gIFwiUGFnZUhlaWdodFwiLFxuICBcIlBhZ2VSYW5rQ2VudHJhbGl0eVwiLFxuICBcIlBhZ2VUaGVtZVwiLFxuICBcIlBhZ2VXaWR0aFwiLFxuICBcIlBhZ2luYXRpb25cIixcbiAgXCJQYWlyQ29ycmVsYXRpb25HXCIsXG4gIFwiUGFpcmVkQmFyQ2hhcnRcIixcbiAgXCJQYWlyZWRIaXN0b2dyYW1cIixcbiAgXCJQYWlyZWRTbW9vdGhIaXN0b2dyYW1cIixcbiAgXCJQYWlyZWRUVGVzdFwiLFxuICBcIlBhaXJlZFpUZXN0XCIsXG4gIFwiUGFsZXR0ZU5vdGVib29rXCIsXG4gIFwiUGFsZXR0ZVBhdGhcIixcbiAgXCJQYWxldHRlc01lbnVTZXR0aW5nc1wiLFxuICBcIlBhbGluZHJvbWVRXCIsXG4gIFwiUGFuZVwiLFxuICBcIlBhbmVCb3hcIixcbiAgXCJQYW5lQm94T3B0aW9uc1wiLFxuICBcIlBhbmVsXCIsXG4gIFwiUGFuZWxCb3hcIixcbiAgXCJQYW5lbEJveE9wdGlvbnNcIixcbiAgXCJQYW5lbGVkXCIsXG4gIFwiUGFuZVNlbGVjdG9yXCIsXG4gIFwiUGFuZVNlbGVjdG9yQm94XCIsXG4gIFwiUGFuZVNlbGVjdG9yQm94T3B0aW9uc1wiLFxuICBcIlBhcGVyV2lkdGhcIixcbiAgXCJQYXJhYm9saWNDeWxpbmRlckRcIixcbiAgXCJQYXJhZ3JhcGhJbmRlbnRcIixcbiAgXCJQYXJhZ3JhcGhTcGFjaW5nXCIsXG4gIFwiUGFyYWxsZWxBcnJheVwiLFxuICBcIlBhcmFsbGVsQXhpc1Bsb3RcIixcbiAgXCJQYXJhbGxlbENvbWJpbmVcIixcbiAgXCJQYXJhbGxlbERvXCIsXG4gIFwiUGFyYWxsZWxlcGlwZWRcIixcbiAgXCJQYXJhbGxlbEV2YWx1YXRlXCIsXG4gIFwiUGFyYWxsZWxpemF0aW9uXCIsXG4gIFwiUGFyYWxsZWxpemVcIixcbiAgXCJQYXJhbGxlbEtlcm5lbHNcIixcbiAgXCJQYXJhbGxlbE1hcFwiLFxuICBcIlBhcmFsbGVsTmVlZHNcIixcbiAgXCJQYXJhbGxlbG9ncmFtXCIsXG4gIFwiUGFyYWxsZWxQcm9kdWN0XCIsXG4gIFwiUGFyYWxsZWxTdWJtaXRcIixcbiAgXCJQYXJhbGxlbFN1bVwiLFxuICBcIlBhcmFsbGVsVGFibGVcIixcbiAgXCJQYXJhbGxlbFRyeVwiLFxuICBcIlBhcmFtZXRlclwiLFxuICBcIlBhcmFtZXRlckVzdGltYXRvclwiLFxuICBcIlBhcmFtZXRlck1peHR1cmVEaXN0cmlidXRpb25cIixcbiAgXCJQYXJhbWV0ZXJWYXJpYWJsZXNcIixcbiAgXCJQYXJhbWV0cmljQ29udmV4T3B0aW1pemF0aW9uXCIsXG4gIFwiUGFyYW1ldHJpY0Z1bmN0aW9uXCIsXG4gIFwiUGFyYW1ldHJpY05EU29sdmVcIixcbiAgXCJQYXJhbWV0cmljTkRTb2x2ZVZhbHVlXCIsXG4gIFwiUGFyYW1ldHJpY1Bsb3RcIixcbiAgXCJQYXJhbWV0cmljUGxvdDNEXCIsXG4gIFwiUGFyYW1ldHJpY1JhbXBMYXllclwiLFxuICBcIlBhcmFtZXRyaWNSZWdpb25cIixcbiAgXCJQYXJlbnRCb3hcIixcbiAgXCJQYXJlbnRDZWxsXCIsXG4gIFwiUGFyZW50Q29ubmVjdFwiLFxuICBcIlBhcmVudERpcmVjdG9yeVwiLFxuICBcIlBhcmVudEVkZ2VMYWJlbFwiLFxuICBcIlBhcmVudEVkZ2VMYWJlbEZ1bmN0aW9uXCIsXG4gIFwiUGFyZW50RWRnZUxhYmVsU3R5bGVcIixcbiAgXCJQYXJlbnRFZGdlU2hhcGVGdW5jdGlvblwiLFxuICBcIlBhcmVudEVkZ2VTdHlsZVwiLFxuICBcIlBhcmVudEVkZ2VTdHlsZUZ1bmN0aW9uXCIsXG4gIFwiUGFyZW50Rm9ybVwiLFxuICBcIlBhcmVudGhlc2l6ZVwiLFxuICBcIlBhcmVudExpc3RcIixcbiAgXCJQYXJlbnROb3RlYm9va1wiLFxuICBcIlBhcmV0b0Rpc3RyaWJ1dGlvblwiLFxuICBcIlBhcmV0b1BpY2thbmRzRGlzdHJpYnV0aW9uXCIsXG4gIFwiUGFya0RhdGFcIixcbiAgXCJQYXJ0XCIsXG4gIFwiUGFydEJlaGF2aW9yXCIsXG4gIFwiUGFydGlhbENvcnJlbGF0aW9uRnVuY3Rpb25cIixcbiAgXCJQYXJ0aWFsRFwiLFxuICBcIlBhcnRpY2xlQWNjZWxlcmF0b3JEYXRhXCIsXG4gIFwiUGFydGljbGVEYXRhXCIsXG4gIFwiUGFydGl0aW9uXCIsXG4gIFwiUGFydGl0aW9uR3JhbnVsYXJpdHlcIixcbiAgXCJQYXJ0aXRpb25zUFwiLFxuICBcIlBhcnRpdGlvbnNRXCIsXG4gIFwiUGFydExheWVyXCIsXG4gIFwiUGFydE9mU3BlZWNoXCIsXG4gIFwiUGFydFByb3RlY3Rpb25cIixcbiAgXCJQYXJ6ZW5XaW5kb3dcIixcbiAgXCJQYXNjYWxEaXN0cmlidXRpb25cIixcbiAgXCJQYXNzRXZlbnRzRG93blwiLFxuICBcIlBhc3NFdmVudHNVcFwiLFxuICBcIlBhc3RlXCIsXG4gIFwiUGFzdGVBdXRvUXVvdGVDaGFyYWN0ZXJzXCIsXG4gIFwiUGFzdGVCb3hGb3JtSW5saW5lQ2VsbHNcIixcbiAgXCJQYXN0ZUJ1dHRvblwiLFxuICBcIlBhdGhcIixcbiAgXCJQYXRoR3JhcGhcIixcbiAgXCJQYXRoR3JhcGhRXCIsXG4gIFwiUGF0dGVyblwiLFxuICBcIlBhdHRlcm5GaWxsaW5nXCIsXG4gIFwiUGF0dGVyblJlYWN0aW9uXCIsXG4gIFwiUGF0dGVyblNlcXVlbmNlXCIsXG4gIFwiUGF0dGVyblRlc3RcIixcbiAgXCJQYXVsaU1hdHJpeFwiLFxuICBcIlBhdWxXYXZlbGV0XCIsXG4gIFwiUGF1c2VcIixcbiAgXCJQYXVzZWRUaW1lXCIsXG4gIFwiUERGXCIsXG4gIFwiUGVha0RldGVjdFwiLFxuICBcIlBlYW5vQ3VydmVcIixcbiAgXCJQZWFyc29uQ2hpU3F1YXJlVGVzdFwiLFxuICBcIlBlYXJzb25Db3JyZWxhdGlvblRlc3RcIixcbiAgXCJQZWFyc29uRGlzdHJpYnV0aW9uXCIsXG4gIFwiUGVudHRpbmVuUG9pbnRQcm9jZXNzXCIsXG4gIFwiUGVyY2VudEZvcm1cIixcbiAgXCJQZXJmZWN0TnVtYmVyXCIsXG4gIFwiUGVyZmVjdE51bWJlclFcIixcbiAgXCJQZXJmb3JtYW5jZUdvYWxcIixcbiAgXCJQZXJpbWV0ZXJcIixcbiAgXCJQZXJpb2RpY0JvdW5kYXJ5Q29uZGl0aW9uXCIsXG4gIFwiUGVyaW9kaWNJbnRlcnBvbGF0aW9uXCIsXG4gIFwiUGVyaW9kb2dyYW1cIixcbiAgXCJQZXJpb2RvZ3JhbUFycmF5XCIsXG4gIFwiUGVybWFuZW50XCIsXG4gIFwiUGVybWlzc2lvbnNcIixcbiAgXCJQZXJtaXNzaW9uc0dyb3VwXCIsXG4gIFwiUGVybWlzc2lvbnNHcm91cE1lbWJlclFcIixcbiAgXCJQZXJtaXNzaW9uc0dyb3Vwc1wiLFxuICBcIlBlcm1pc3Npb25zS2V5XCIsXG4gIFwiUGVybWlzc2lvbnNLZXlzXCIsXG4gIFwiUGVybXV0YXRpb25DeWNsZXNcIixcbiAgXCJQZXJtdXRhdGlvbkN5Y2xlc1FcIixcbiAgXCJQZXJtdXRhdGlvbkdyb3VwXCIsXG4gIFwiUGVybXV0YXRpb25MZW5ndGhcIixcbiAgXCJQZXJtdXRhdGlvbkxpc3RcIixcbiAgXCJQZXJtdXRhdGlvbkxpc3RRXCIsXG4gIFwiUGVybXV0YXRpb25NYXRyaXhcIixcbiAgXCJQZXJtdXRhdGlvbk1heFwiLFxuICBcIlBlcm11dGF0aW9uTWluXCIsXG4gIFwiUGVybXV0YXRpb25PcmRlclwiLFxuICBcIlBlcm11dGF0aW9uUG93ZXJcIixcbiAgXCJQZXJtdXRhdGlvblByb2R1Y3RcIixcbiAgXCJQZXJtdXRhdGlvblJlcGxhY2VcIixcbiAgXCJQZXJtdXRhdGlvbnNcIixcbiAgXCJQZXJtdXRhdGlvblN1cHBvcnRcIixcbiAgXCJQZXJtdXRlXCIsXG4gIFwiUGVyb25hTWFsaWtGaWx0ZXJcIixcbiAgXCJQZXJwZW5kaWN1bGFyXCIsXG4gIFwiUGVycGVuZGljdWxhckJpc2VjdG9yXCIsXG4gIFwiUGVyc2lzdGVuY2VMb2NhdGlvblwiLFxuICBcIlBlcnNpc3RlbmNlVGltZVwiLFxuICBcIlBlcnNpc3RlbnRPYmplY3RcIixcbiAgXCJQZXJzaXN0ZW50T2JqZWN0c1wiLFxuICBcIlBlcnNpc3RlbnRTeW1ib2xcIixcbiAgXCJQZXJzaXN0ZW50VmFsdWVcIixcbiAgXCJQZXJzb25EYXRhXCIsXG4gIFwiUEVSVERpc3RyaWJ1dGlvblwiLFxuICBcIlBldGVyc2VuR3JhcGhcIixcbiAgXCJQaGFzZU1hcmdpbnNcIixcbiAgXCJQaGFzZVJhbmdlXCIsXG4gIFwiUGhvbmdTaGFkaW5nXCIsXG4gIFwiUGh5c2ljYWxTeXN0ZW1EYXRhXCIsXG4gIFwiUGlcIixcbiAgXCJQaWNrXCIsXG4gIFwiUGlja2VkRWxlbWVudHNcIixcbiAgXCJQaWNrTW9kZVwiLFxuICBcIlBJRERhdGFcIixcbiAgXCJQSUREZXJpdmF0aXZlRmlsdGVyXCIsXG4gIFwiUElERmVlZGZvcndhcmRcIixcbiAgXCJQSURUdW5lXCIsXG4gIFwiUGllY2V3aXNlXCIsXG4gIFwiUGllY2V3aXNlRXhwYW5kXCIsXG4gIFwiUGllQ2hhcnRcIixcbiAgXCJQaWVDaGFydDNEXCIsXG4gIFwiUGlsbGFpVHJhY2VcIixcbiAgXCJQaWxsYWlUcmFjZVRlc3RcIixcbiAgXCJQaW5nVGltZVwiLFxuICBcIlBpbmtcIixcbiAgXCJQaXRjaFJlY29nbml6ZVwiLFxuICBcIlBpdm90aW5nXCIsXG4gIFwiUGl4ZWxDb25zdHJhaW5lZFwiLFxuICBcIlBpeGVsVmFsdWVcIixcbiAgXCJQaXhlbFZhbHVlUG9zaXRpb25zXCIsXG4gIFwiUGxhY2VkXCIsXG4gIFwiUGxhY2Vob2xkZXJcIixcbiAgXCJQbGFjZWhvbGRlckxheWVyXCIsXG4gIFwiUGxhY2Vob2xkZXJSZXBsYWNlXCIsXG4gIFwiUGxhaW5cIixcbiAgXCJQbGFuYXJBbmdsZVwiLFxuICBcIlBsYW5hckZhY2VMaXN0XCIsXG4gIFwiUGxhbmFyR3JhcGhcIixcbiAgXCJQbGFuYXJHcmFwaFFcIixcbiAgXCJQbGFuY2tSYWRpYXRpb25MYXdcIixcbiAgXCJQbGFuZUN1cnZlRGF0YVwiLFxuICBcIlBsYW5ldGFyeU1vb25EYXRhXCIsXG4gIFwiUGxhbmV0RGF0YVwiLFxuICBcIlBsYW50RGF0YVwiLFxuICBcIlBsYXlcIixcbiAgXCJQbGF5YmFja1NldHRpbmdzXCIsXG4gIFwiUGxheVJhbmdlXCIsXG4gIFwiUGxvdFwiLFxuICBcIlBsb3QzRFwiLFxuICBcIlBsb3QzTWF0cml4XCIsXG4gIFwiUGxvdERpdmlzaW9uXCIsXG4gIFwiUGxvdEpvaW5lZFwiLFxuICBcIlBsb3RMYWJlbFwiLFxuICBcIlBsb3RMYWJlbHNcIixcbiAgXCJQbG90TGF5b3V0XCIsXG4gIFwiUGxvdExlZ2VuZHNcIixcbiAgXCJQbG90TWFya2Vyc1wiLFxuICBcIlBsb3RQb2ludHNcIixcbiAgXCJQbG90UmFuZ2VcIixcbiAgXCJQbG90UmFuZ2VDbGlwcGluZ1wiLFxuICBcIlBsb3RSYW5nZUNsaXBQbGFuZXNTdHlsZVwiLFxuICBcIlBsb3RSYW5nZVBhZGRpbmdcIixcbiAgXCJQbG90UmVnaW9uXCIsXG4gIFwiUGxvdFN0eWxlXCIsXG4gIFwiUGxvdFRoZW1lXCIsXG4gIFwiUGx1cmFsaXplXCIsXG4gIFwiUGx1c1wiLFxuICBcIlBsdXNNaW51c1wiLFxuICBcIlBvY2hoYW1tZXJcIixcbiAgXCJQb2RTdGF0ZXNcIixcbiAgXCJQb2RXaWR0aFwiLFxuICBcIlBvaW50XCIsXG4gIFwiUG9pbnQzREJveFwiLFxuICBcIlBvaW50M0RCb3hPcHRpb25zXCIsXG4gIFwiUG9pbnRCb3hcIixcbiAgXCJQb2ludEJveE9wdGlvbnNcIixcbiAgXCJQb2ludENvdW50RGlzdHJpYnV0aW9uXCIsXG4gIFwiUG9pbnREZW5zaXR5XCIsXG4gIFwiUG9pbnREZW5zaXR5RnVuY3Rpb25cIixcbiAgXCJQb2ludEZpZ3VyZUNoYXJ0XCIsXG4gIFwiUG9pbnRMZWdlbmRcIixcbiAgXCJQb2ludExpZ2h0XCIsXG4gIFwiUG9pbnRQcm9jZXNzRXN0aW1hdG9yXCIsXG4gIFwiUG9pbnRQcm9jZXNzRml0VGVzdFwiLFxuICBcIlBvaW50UHJvY2Vzc1BhcmFtZXRlckFzc3VtcHRpb25zXCIsXG4gIFwiUG9pbnRQcm9jZXNzUGFyYW1ldGVyUVwiLFxuICBcIlBvaW50U2l6ZVwiLFxuICBcIlBvaW50U3RhdGlzdGljRnVuY3Rpb25cIixcbiAgXCJQb2ludFZhbHVlUGxvdFwiLFxuICBcIlBvaXNzb25Db25zdWxEaXN0cmlidXRpb25cIixcbiAgXCJQb2lzc29uRGlzdHJpYnV0aW9uXCIsXG4gIFwiUG9pc3NvblBERUNvbXBvbmVudFwiLFxuICBcIlBvaXNzb25Qb2ludFByb2Nlc3NcIixcbiAgXCJQb2lzc29uUHJvY2Vzc1wiLFxuICBcIlBvaXNzb25XaW5kb3dcIixcbiAgXCJQb2xhckF4ZXNcIixcbiAgXCJQb2xhckF4ZXNPcmlnaW5cIixcbiAgXCJQb2xhckdyaWRMaW5lc1wiLFxuICBcIlBvbGFyUGxvdFwiLFxuICBcIlBvbGFyVGlja3NcIixcbiAgXCJQb2xlWmVyb01hcmtlcnNcIixcbiAgXCJQb2x5YUFlcHBsaURpc3RyaWJ1dGlvblwiLFxuICBcIlBvbHlHYW1tYVwiLFxuICBcIlBvbHlnb25cIixcbiAgXCJQb2x5Z29uM0RCb3hcIixcbiAgXCJQb2x5Z29uM0RCb3hPcHRpb25zXCIsXG4gIFwiUG9seWdvbmFsTnVtYmVyXCIsXG4gIFwiUG9seWdvbkFuZ2xlXCIsXG4gIFwiUG9seWdvbkJveFwiLFxuICBcIlBvbHlnb25Cb3hPcHRpb25zXCIsXG4gIFwiUG9seWdvbkNvb3JkaW5hdGVzXCIsXG4gIFwiUG9seWdvbkRlY29tcG9zaXRpb25cIixcbiAgXCJQb2x5Z29uSG9sZVNjYWxlXCIsXG4gIFwiUG9seWdvbkludGVyc2VjdGlvbnNcIixcbiAgXCJQb2x5Z29uU2NhbGVcIixcbiAgXCJQb2x5aGVkcm9uXCIsXG4gIFwiUG9seWhlZHJvbkFuZ2xlXCIsXG4gIFwiUG9seWhlZHJvbkJveFwiLFxuICBcIlBvbHloZWRyb25Cb3hPcHRpb25zXCIsXG4gIFwiUG9seWhlZHJvbkNvb3JkaW5hdGVzXCIsXG4gIFwiUG9seWhlZHJvbkRhdGFcIixcbiAgXCJQb2x5aGVkcm9uRGVjb21wb3NpdGlvblwiLFxuICBcIlBvbHloZWRyb25HZW51c1wiLFxuICBcIlBvbHlMb2dcIixcbiAgXCJQb2x5bm9taWFsRXhwcmVzc2lvblFcIixcbiAgXCJQb2x5bm9taWFsRXh0ZW5kZWRHQ0RcIixcbiAgXCJQb2x5bm9taWFsRm9ybVwiLFxuICBcIlBvbHlub21pYWxHQ0RcIixcbiAgXCJQb2x5bm9taWFsTENNXCIsXG4gIFwiUG9seW5vbWlhbE1vZFwiLFxuICBcIlBvbHlub21pYWxRXCIsXG4gIFwiUG9seW5vbWlhbFF1b3RpZW50XCIsXG4gIFwiUG9seW5vbWlhbFF1b3RpZW50UmVtYWluZGVyXCIsXG4gIFwiUG9seW5vbWlhbFJlZHVjZVwiLFxuICBcIlBvbHlub21pYWxSZW1haW5kZXJcIixcbiAgXCJQb2x5bm9taWFsc1wiLFxuICBcIlBvbHlub21pYWxTdW1PZlNxdWFyZXNMaXN0XCIsXG4gIFwiUG9vbGluZ0xheWVyXCIsXG4gIFwiUG9wdXBNZW51XCIsXG4gIFwiUG9wdXBNZW51Qm94XCIsXG4gIFwiUG9wdXBNZW51Qm94T3B0aW9uc1wiLFxuICBcIlBvcHVwVmlld1wiLFxuICBcIlBvcHVwV2luZG93XCIsXG4gIFwiUG9zaXRpb25cIixcbiAgXCJQb3NpdGlvbkluZGV4XCIsXG4gIFwiUG9zaXRpb25MYXJnZXN0XCIsXG4gIFwiUG9zaXRpb25TbWFsbGVzdFwiLFxuICBcIlBvc2l0aXZlXCIsXG4gIFwiUG9zaXRpdmVEZWZpbml0ZU1hdHJpeFFcIixcbiAgXCJQb3NpdGl2ZUludGVnZXJzXCIsXG4gIFwiUG9zaXRpdmVseU9yaWVudGVkUG9pbnRzXCIsXG4gIFwiUG9zaXRpdmVSYXRpb25hbHNcIixcbiAgXCJQb3NpdGl2ZVJlYWxzXCIsXG4gIFwiUG9zaXRpdmVTZW1pZGVmaW5pdGVNYXRyaXhRXCIsXG4gIFwiUG9zc2libGVaZXJvUVwiLFxuICBcIlBvc3RmaXhcIixcbiAgXCJQb3N0U2NyaXB0XCIsXG4gIFwiUG93ZXJcIixcbiAgXCJQb3dlckRpc3RyaWJ1dGlvblwiLFxuICBcIlBvd2VyRXhwYW5kXCIsXG4gIFwiUG93ZXJNb2RcIixcbiAgXCJQb3dlck1vZExpc3RcIixcbiAgXCJQb3dlclJhbmdlXCIsXG4gIFwiUG93ZXJTcGVjdHJhbERlbnNpdHlcIixcbiAgXCJQb3dlcnNSZXByZXNlbnRhdGlvbnNcIixcbiAgXCJQb3dlclN5bW1ldHJpY1BvbHlub21pYWxcIixcbiAgXCJQcmVjZWRlbmNlXCIsXG4gIFwiUHJlY2VkZW5jZUZvcm1cIixcbiAgXCJQcmVjZWRlc1wiLFxuICBcIlByZWNlZGVzRXF1YWxcIixcbiAgXCJQcmVjZWRlc1NsYW50RXF1YWxcIixcbiAgXCJQcmVjZWRlc1RpbGRlXCIsXG4gIFwiUHJlY2lzaW9uXCIsXG4gIFwiUHJlY2lzaW9uR29hbFwiLFxuICBcIlByZURlY3JlbWVudFwiLFxuICBcIlByZWRpY3RcIixcbiAgXCJQcmVkaWN0aW9uUm9vdFwiLFxuICBcIlByZWRpY3RvckZ1bmN0aW9uXCIsXG4gIFwiUHJlZGljdG9ySW5mb3JtYXRpb25cIixcbiAgXCJQcmVkaWN0b3JNZWFzdXJlbWVudHNcIixcbiAgXCJQcmVkaWN0b3JNZWFzdXJlbWVudHNPYmplY3RcIixcbiAgXCJQcmVlbXB0UHJvdGVjdFwiLFxuICBcIlByZWZlcmVuY2VzUGF0aFwiLFxuICBcIlByZWZlcmVuY2VzU2V0dGluZ3NcIixcbiAgXCJQcmVmaXhcIixcbiAgXCJQcmVJbmNyZW1lbnRcIixcbiAgXCJQcmVwZW5kXCIsXG4gIFwiUHJlcGVuZExheWVyXCIsXG4gIFwiUHJlcGVuZFRvXCIsXG4gIFwiUHJlcHJvY2Vzc2luZ1J1bGVzXCIsXG4gIFwiUHJlc2VydmVDb2xvclwiLFxuICBcIlByZXNlcnZlSW1hZ2VPcHRpb25zXCIsXG4gIFwiUHJldmlvdXNcIixcbiAgXCJQcmV2aW91c0NlbGxcIixcbiAgXCJQcmV2aW91c0RhdGVcIixcbiAgXCJQcmljZUdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiUHJpbWFyeVBsYWNlaG9sZGVyXCIsXG4gIFwiUHJpbWVcIixcbiAgXCJQcmltZU51XCIsXG4gIFwiUHJpbWVPbWVnYVwiLFxuICBcIlByaW1lUGlcIixcbiAgXCJQcmltZVBvd2VyUVwiLFxuICBcIlByaW1lUVwiLFxuICBcIlByaW1lc1wiLFxuICBcIlByaW1lWmV0YVBcIixcbiAgXCJQcmltaXRpdmVQb2x5bm9taWFsUVwiLFxuICBcIlByaW1pdGl2ZVJvb3RcIixcbiAgXCJQcmltaXRpdmVSb290TGlzdFwiLFxuICBcIlByaW5jaXBhbENvbXBvbmVudHNcIixcbiAgXCJQcmluY2lwYWxWYWx1ZVwiLFxuICBcIlByaW50XCIsXG4gIFwiUHJpbnRhYmxlQVNDSUlRXCIsXG4gIFwiUHJpbnRBY3Rpb25cIixcbiAgXCJQcmludEZvcm1cIixcbiAgXCJQcmludGluZ0NvcGllc1wiLFxuICBcIlByaW50aW5nT3B0aW9uc1wiLFxuICBcIlByaW50aW5nUGFnZVJhbmdlXCIsXG4gIFwiUHJpbnRpbmdTdGFydGluZ1BhZ2VOdW1iZXJcIixcbiAgXCJQcmludGluZ1N0eWxlRW52aXJvbm1lbnRcIixcbiAgXCJQcmludG91dDNEXCIsXG4gIFwiUHJpbnRvdXQzRFByZXZpZXdlclwiLFxuICBcIlByaW50UHJlY2lzaW9uXCIsXG4gIFwiUHJpbnRUZW1wb3JhcnlcIixcbiAgXCJQcmlzbVwiLFxuICBcIlByaXNtQm94XCIsXG4gIFwiUHJpc21Cb3hPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUNlbGxPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUV2YWx1YXRpb25PcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUZvbnRPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUZyb250RW5kT3B0aW9uc1wiLFxuICBcIlByaXZhdGVLZXlcIixcbiAgXCJQcml2YXRlTm90ZWJvb2tPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZVBhdGhzXCIsXG4gIFwiUHJvYmFiaWxpdHlcIixcbiAgXCJQcm9iYWJpbGl0eURpc3RyaWJ1dGlvblwiLFxuICBcIlByb2JhYmlsaXR5UGxvdFwiLFxuICBcIlByb2JhYmlsaXR5UHJcIixcbiAgXCJQcm9iYWJpbGl0eVNjYWxlUGxvdFwiLFxuICBcIlByb2JpdE1vZGVsRml0XCIsXG4gIFwiUHJvY2Vzc0Nvbm5lY3Rpb25cIixcbiAgXCJQcm9jZXNzRGlyZWN0b3J5XCIsXG4gIFwiUHJvY2Vzc0Vudmlyb25tZW50XCIsXG4gIFwiUHJvY2Vzc2VzXCIsXG4gIFwiUHJvY2Vzc0VzdGltYXRvclwiLFxuICBcIlByb2Nlc3NJbmZvcm1hdGlvblwiLFxuICBcIlByb2Nlc3NPYmplY3RcIixcbiAgXCJQcm9jZXNzUGFyYW1ldGVyQXNzdW1wdGlvbnNcIixcbiAgXCJQcm9jZXNzUGFyYW1ldGVyUVwiLFxuICBcIlByb2Nlc3NTdGF0ZURvbWFpblwiLFxuICBcIlByb2Nlc3NTdGF0dXNcIixcbiAgXCJQcm9jZXNzVGltZURvbWFpblwiLFxuICBcIlByb2R1Y3RcIixcbiAgXCJQcm9kdWN0RGlzdHJpYnV0aW9uXCIsXG4gIFwiUHJvZHVjdExvZ1wiLFxuICBcIlByb2dyZXNzSW5kaWNhdG9yXCIsXG4gIFwiUHJvZ3Jlc3NJbmRpY2F0b3JCb3hcIixcbiAgXCJQcm9ncmVzc0luZGljYXRvckJveE9wdGlvbnNcIixcbiAgXCJQcm9ncmVzc1JlcG9ydGluZ1wiLFxuICBcIlByb2plY3Rpb25cIixcbiAgXCJQcm9sb2dcIixcbiAgXCJQcm9tcHRGb3JtXCIsXG4gIFwiUHJvb2ZPYmplY3RcIixcbiAgXCJQcm9wYWdhdGVBYm9ydHNcIixcbiAgXCJQcm9wZXJ0aWVzXCIsXG4gIFwiUHJvcGVydHlcIixcbiAgXCJQcm9wZXJ0eUxpc3RcIixcbiAgXCJQcm9wZXJ0eVZhbHVlXCIsXG4gIFwiUHJvcG9ydGlvblwiLFxuICBcIlByb3BvcnRpb25hbFwiLFxuICBcIlByb3RlY3RcIixcbiAgXCJQcm90ZWN0ZWRcIixcbiAgXCJQcm90ZWluRGF0YVwiLFxuICBcIlBydW5pbmdcIixcbiAgXCJQc2V1ZG9JbnZlcnNlXCIsXG4gIFwiUHN5Y2hyb21ldHJpY1Byb3BlcnR5RGF0YVwiLFxuICBcIlB1YmxpY0tleVwiLFxuICBcIlB1Ymxpc2hlcklEXCIsXG4gIFwiUHVsc2FyRGF0YVwiLFxuICBcIlB1bmN0dWF0aW9uQ2hhcmFjdGVyXCIsXG4gIFwiUHVycGxlXCIsXG4gIFwiUHV0XCIsXG4gIFwiUHV0QXBwZW5kXCIsXG4gIFwiUHlyYW1pZFwiLFxuICBcIlB5cmFtaWRCb3hcIixcbiAgXCJQeXJhbWlkQm94T3B0aW9uc1wiLFxuICBcIlFCaW5vbWlhbFwiLFxuICBcIlFGYWN0b3JpYWxcIixcbiAgXCJRR2FtbWFcIixcbiAgXCJRSHlwZXJnZW9tZXRyaWNQRlFcIixcbiAgXCJRbkRpc3BlcnNpb25cIixcbiAgXCJRUG9jaGhhbW1lclwiLFxuICBcIlFQb2x5R2FtbWFcIixcbiAgXCJRUkRlY29tcG9zaXRpb25cIixcbiAgXCJRdWFkcmF0aWNJcnJhdGlvbmFsUVwiLFxuICBcIlF1YWRyYXRpY09wdGltaXphdGlvblwiLFxuICBcIlF1YW50aWxlXCIsXG4gIFwiUXVhbnRpbGVQbG90XCIsXG4gIFwiUXVhbnRpdHlcIixcbiAgXCJRdWFudGl0eUFycmF5XCIsXG4gIFwiUXVhbnRpdHlEaXN0cmlidXRpb25cIixcbiAgXCJRdWFudGl0eUZvcm1cIixcbiAgXCJRdWFudGl0eU1hZ25pdHVkZVwiLFxuICBcIlF1YW50aXR5UVwiLFxuICBcIlF1YW50aXR5VW5pdFwiLFxuICBcIlF1YW50aXR5VmFyaWFibGVcIixcbiAgXCJRdWFudGl0eVZhcmlhYmxlQ2Fub25pY2FsVW5pdFwiLFxuICBcIlF1YW50aXR5VmFyaWFibGVEaW1lbnNpb25zXCIsXG4gIFwiUXVhbnRpdHlWYXJpYWJsZUlkZW50aWZpZXJcIixcbiAgXCJRdWFudGl0eVZhcmlhYmxlUGh5c2ljYWxRdWFudGl0eVwiLFxuICBcIlF1YXJ0aWNzXCIsXG4gIFwiUXVhcnRpbGVEZXZpYXRpb25cIixcbiAgXCJRdWFydGlsZXNcIixcbiAgXCJRdWFydGlsZVNrZXduZXNzXCIsXG4gIFwiUXVlcnlcIixcbiAgXCJRdWVzdGlvbkdlbmVyYXRvclwiLFxuICBcIlF1ZXN0aW9uSW50ZXJmYWNlXCIsXG4gIFwiUXVlc3Rpb25PYmplY3RcIixcbiAgXCJRdWVzdGlvblNlbGVjdG9yXCIsXG4gIFwiUXVldWVpbmdOZXR3b3JrUHJvY2Vzc1wiLFxuICBcIlF1ZXVlaW5nUHJvY2Vzc1wiLFxuICBcIlF1ZXVlUHJvcGVydGllc1wiLFxuICBcIlF1aWV0XCIsXG4gIFwiUXVpZXRFY2hvXCIsXG4gIFwiUXVpdFwiLFxuICBcIlF1b3RpZW50XCIsXG4gIFwiUXVvdGllbnRSZW1haW5kZXJcIixcbiAgXCJSYWRpYWxBeGlzUGxvdFwiLFxuICBcIlJhZGlhbEdyYWRpZW50RmlsbGluZ1wiLFxuICBcIlJhZGlhbEdyYWRpZW50SW1hZ2VcIixcbiAgXCJSYWRpYWxpdHlDZW50cmFsaXR5XCIsXG4gIFwiUmFkaWNhbEJveFwiLFxuICBcIlJhZGljYWxCb3hPcHRpb25zXCIsXG4gIFwiUmFkaW9CdXR0b25cIixcbiAgXCJSYWRpb0J1dHRvbkJhclwiLFxuICBcIlJhZGlvQnV0dG9uQm94XCIsXG4gIFwiUmFkaW9CdXR0b25Cb3hPcHRpb25zXCIsXG4gIFwiUmFkb25cIixcbiAgXCJSYWRvblRyYW5zZm9ybVwiLFxuICBcIlJhbWFudWphblRhdVwiLFxuICBcIlJhbWFudWphblRhdUxcIixcbiAgXCJSYW1hbnVqYW5UYXVUaGV0YVwiLFxuICBcIlJhbWFudWphblRhdVpcIixcbiAgXCJSYW1wXCIsXG4gIFwiUmFuZG9tXCIsXG4gIFwiUmFuZG9tQXJyYXlMYXllclwiLFxuICBcIlJhbmRvbUNob2ljZVwiLFxuICBcIlJhbmRvbUNvbG9yXCIsXG4gIFwiUmFuZG9tQ29tcGxleFwiLFxuICBcIlJhbmRvbURhdGVcIixcbiAgXCJSYW5kb21FbnRpdHlcIixcbiAgXCJSYW5kb21GdW5jdGlvblwiLFxuICBcIlJhbmRvbUdlbmVyYXRvclN0YXRlXCIsXG4gIFwiUmFuZG9tR2VvUG9zaXRpb25cIixcbiAgXCJSYW5kb21HcmFwaFwiLFxuICBcIlJhbmRvbUltYWdlXCIsXG4gIFwiUmFuZG9tSW5zdGFuY2VcIixcbiAgXCJSYW5kb21JbnRlZ2VyXCIsXG4gIFwiUmFuZG9tUGVybXV0YXRpb25cIixcbiAgXCJSYW5kb21Qb2ludFwiLFxuICBcIlJhbmRvbVBvaW50Q29uZmlndXJhdGlvblwiLFxuICBcIlJhbmRvbVBvbHlnb25cIixcbiAgXCJSYW5kb21Qb2x5aGVkcm9uXCIsXG4gIFwiUmFuZG9tUHJpbWVcIixcbiAgXCJSYW5kb21SZWFsXCIsXG4gIFwiUmFuZG9tU2FtcGxlXCIsXG4gIFwiUmFuZG9tU2VlZFwiLFxuICBcIlJhbmRvbVNlZWRpbmdcIixcbiAgXCJSYW5kb21UaW1lXCIsXG4gIFwiUmFuZG9tVHJlZVwiLFxuICBcIlJhbmRvbVZhcmlhdGVcIixcbiAgXCJSYW5kb21XYWxrUHJvY2Vzc1wiLFxuICBcIlJhbmRvbVdvcmRcIixcbiAgXCJSYW5nZVwiLFxuICBcIlJhbmdlRmlsdGVyXCIsXG4gIFwiUmFuZ2VTcGVjaWZpY2F0aW9uXCIsXG4gIFwiUmFua2VkTWF4XCIsXG4gIFwiUmFua2VkTWluXCIsXG4gIFwiUmFyZXJQcm9iYWJpbGl0eVwiLFxuICBcIlJhc3RlclwiLFxuICBcIlJhc3RlcjNEXCIsXG4gIFwiUmFzdGVyM0RCb3hcIixcbiAgXCJSYXN0ZXIzREJveE9wdGlvbnNcIixcbiAgXCJSYXN0ZXJBcnJheVwiLFxuICBcIlJhc3RlckJveFwiLFxuICBcIlJhc3RlckJveE9wdGlvbnNcIixcbiAgXCJSYXN0ZXJpemVcIixcbiAgXCJSYXN0ZXJTaXplXCIsXG4gIFwiUmF0aW9uYWxcIixcbiAgXCJSYXRpb25hbEV4cHJlc3Npb25RXCIsXG4gIFwiUmF0aW9uYWxGdW5jdGlvbnNcIixcbiAgXCJSYXRpb25hbGl6ZVwiLFxuICBcIlJhdGlvbmFsc1wiLFxuICBcIlJhdGlvc1wiLFxuICBcIlJhd0FycmF5XCIsXG4gIFwiUmF3Qm94ZXNcIixcbiAgXCJSYXdEYXRhXCIsXG4gIFwiUmF3TWVkaXVtXCIsXG4gIFwiUmF5bGVpZ2hEaXN0cmlidXRpb25cIixcbiAgXCJSZVwiLFxuICBcIlJlYWN0aW9uQmFsYW5jZVwiLFxuICBcIlJlYWN0aW9uQmFsYW5jZWRRXCIsXG4gIFwiUmVhY3Rpb25QREVUZXJtXCIsXG4gIFwiUmVhZFwiLFxuICBcIlJlYWRCeXRlQXJyYXlcIixcbiAgXCJSZWFkTGluZVwiLFxuICBcIlJlYWRMaXN0XCIsXG4gIFwiUmVhZFByb3RlY3RlZFwiLFxuICBcIlJlYWRTdHJpbmdcIixcbiAgXCJSZWFsXCIsXG4gIFwiUmVhbEFic1wiLFxuICBcIlJlYWxCbG9ja0RpYWdvbmFsRm9ybVwiLFxuICBcIlJlYWxEaWdpdHNcIixcbiAgXCJSZWFsRXhwb25lbnRcIixcbiAgXCJSZWFsc1wiLFxuICBcIlJlYWxTaWduXCIsXG4gIFwiUmVhcFwiLFxuICBcIlJlYnVpbGRQYWNsZXREYXRhXCIsXG4gIFwiUmVjYWxpYnJhdGlvbkZ1bmN0aW9uXCIsXG4gIFwiUmVjb2duaXRpb25QcmlvclwiLFxuICBcIlJlY29nbml0aW9uVGhyZXNob2xkXCIsXG4gIFwiUmVjb25zdHJ1Y3Rpb25NZXNoXCIsXG4gIFwiUmVjb3JkXCIsXG4gIFwiUmVjb3JkTGlzdHNcIixcbiAgXCJSZWNvcmRTZXBhcmF0b3JzXCIsXG4gIFwiUmVjdGFuZ2xlXCIsXG4gIFwiUmVjdGFuZ2xlQm94XCIsXG4gIFwiUmVjdGFuZ2xlQm94T3B0aW9uc1wiLFxuICBcIlJlY3RhbmdsZUNoYXJ0XCIsXG4gIFwiUmVjdGFuZ2xlQ2hhcnQzRFwiLFxuICBcIlJlY3Rhbmd1bGFyUmVwZWF0aW5nRWxlbWVudFwiLFxuICBcIlJlY3VycmVuY2VGaWx0ZXJcIixcbiAgXCJSZWN1cnJlbmNlVGFibGVcIixcbiAgXCJSZWN1cnJpbmdEaWdpdHNGb3JtXCIsXG4gIFwiUmVkXCIsXG4gIFwiUmVkdWNlXCIsXG4gIFwiUmVmQm94XCIsXG4gIFwiUmVmZXJlbmNlTGluZVN0eWxlXCIsXG4gIFwiUmVmZXJlbmNlTWFya2Vyc1wiLFxuICBcIlJlZmVyZW5jZU1hcmtlclN0eWxlXCIsXG4gIFwiUmVmaW5lXCIsXG4gIFwiUmVmbGVjdGlvbk1hdHJpeFwiLFxuICBcIlJlZmxlY3Rpb25UcmFuc2Zvcm1cIixcbiAgXCJSZWZyZXNoXCIsXG4gIFwiUmVmcmVzaFJhdGVcIixcbiAgXCJSZWdpb25cIixcbiAgXCJSZWdpb25CaW5hcml6ZVwiLFxuICBcIlJlZ2lvbkJvdW5kYXJ5XCIsXG4gIFwiUmVnaW9uQm91bmRhcnlTdHlsZVwiLFxuICBcIlJlZ2lvbkJvdW5kc1wiLFxuICBcIlJlZ2lvbkNlbnRyb2lkXCIsXG4gIFwiUmVnaW9uQ29uZ3J1ZW50XCIsXG4gIFwiUmVnaW9uQ29udmVydFwiLFxuICBcIlJlZ2lvbkRpZmZlcmVuY2VcIixcbiAgXCJSZWdpb25EaWxhdGlvblwiLFxuICBcIlJlZ2lvbkRpbWVuc2lvblwiLFxuICBcIlJlZ2lvbkRpc2pvaW50XCIsXG4gIFwiUmVnaW9uRGlzdGFuY2VcIixcbiAgXCJSZWdpb25EaXN0YW5jZUZ1bmN0aW9uXCIsXG4gIFwiUmVnaW9uRW1iZWRkaW5nRGltZW5zaW9uXCIsXG4gIFwiUmVnaW9uRXF1YWxcIixcbiAgXCJSZWdpb25Fcm9zaW9uXCIsXG4gIFwiUmVnaW9uRmlsbGluZ1N0eWxlXCIsXG4gIFwiUmVnaW9uRml0XCIsXG4gIFwiUmVnaW9uRnVuY3Rpb25cIixcbiAgXCJSZWdpb25JbWFnZVwiLFxuICBcIlJlZ2lvbkludGVyc2VjdGlvblwiLFxuICBcIlJlZ2lvbk1lYXN1cmVcIixcbiAgXCJSZWdpb25NZW1iZXJcIixcbiAgXCJSZWdpb25NZW1iZXJGdW5jdGlvblwiLFxuICBcIlJlZ2lvbk1vbWVudFwiLFxuICBcIlJlZ2lvbk5lYXJlc3RcIixcbiAgXCJSZWdpb25OZWFyZXN0RnVuY3Rpb25cIixcbiAgXCJSZWdpb25QbG90XCIsXG4gIFwiUmVnaW9uUGxvdDNEXCIsXG4gIFwiUmVnaW9uUHJvZHVjdFwiLFxuICBcIlJlZ2lvblFcIixcbiAgXCJSZWdpb25SZXNpemVcIixcbiAgXCJSZWdpb25TaW1pbGFyXCIsXG4gIFwiUmVnaW9uU2l6ZVwiLFxuICBcIlJlZ2lvblN5bW1ldHJpY0RpZmZlcmVuY2VcIixcbiAgXCJSZWdpb25VbmlvblwiLFxuICBcIlJlZ2lvbldpdGhpblwiLFxuICBcIlJlZ2lzdGVyRXh0ZXJuYWxFdmFsdWF0b3JcIixcbiAgXCJSZWd1bGFyRXhwcmVzc2lvblwiLFxuICBcIlJlZ3VsYXJpemF0aW9uXCIsXG4gIFwiUmVndWxhcmx5U2FtcGxlZFFcIixcbiAgXCJSZWd1bGFyUG9seWdvblwiLFxuICBcIlJlSW1cIixcbiAgXCJSZUltTGFiZWxzXCIsXG4gIFwiUmVJbVBsb3RcIixcbiAgXCJSZUltU3R5bGVcIixcbiAgXCJSZWluc3RhbGxcIixcbiAgXCJSZWxhdGlvbmFsRGF0YWJhc2VcIixcbiAgXCJSZWxhdGlvbkdyYXBoXCIsXG4gIFwiUmVsZWFzZVwiLFxuICBcIlJlbGVhc2VIb2xkXCIsXG4gIFwiUmVsaWFiaWxpdHlEaXN0cmlidXRpb25cIixcbiAgXCJSZWxpZWZJbWFnZVwiLFxuICBcIlJlbGllZlBsb3RcIixcbiAgXCJSZW1vdGVBdXRob3JpemF0aW9uQ2FjaGluZ1wiLFxuICBcIlJlbW90ZUJhdGNoSm9iQWJvcnRcIixcbiAgXCJSZW1vdGVCYXRjaEpvYk9iamVjdFwiLFxuICBcIlJlbW90ZUJhdGNoSm9ic1wiLFxuICBcIlJlbW90ZUJhdGNoTWFwU3VibWl0XCIsXG4gIFwiUmVtb3RlQmF0Y2hTdWJtaXNzaW9uRW52aXJvbm1lbnRcIixcbiAgXCJSZW1vdGVCYXRjaFN1Ym1pdFwiLFxuICBcIlJlbW90ZUNvbm5lY3RcIixcbiAgXCJSZW1vdGVDb25uZWN0aW9uT2JqZWN0XCIsXG4gIFwiUmVtb3RlRXZhbHVhdGVcIixcbiAgXCJSZW1vdGVGaWxlXCIsXG4gIFwiUmVtb3RlSW5wdXRGaWxlc1wiLFxuICBcIlJlbW90ZUtlcm5lbE9iamVjdFwiLFxuICBcIlJlbW90ZVByb3ZpZGVyU2V0dGluZ3NcIixcbiAgXCJSZW1vdGVSdW5cIixcbiAgXCJSZW1vdGVSdW5Qcm9jZXNzXCIsXG4gIFwiUmVtb3ZhbENvbmRpdGlvbnNcIixcbiAgXCJSZW1vdmVcIixcbiAgXCJSZW1vdmVBbHBoYUNoYW5uZWxcIixcbiAgXCJSZW1vdmVBc3luY2hyb25vdXNUYXNrXCIsXG4gIFwiUmVtb3ZlQXVkaW9TdHJlYW1cIixcbiAgXCJSZW1vdmVCYWNrZ3JvdW5kXCIsXG4gIFwiUmVtb3ZlQ2hhbm5lbExpc3RlbmVyXCIsXG4gIFwiUmVtb3ZlQ2hhbm5lbFN1YnNjcmliZXJzXCIsXG4gIFwiUmVtb3ZlZFwiLFxuICBcIlJlbW92ZURpYWNyaXRpY3NcIixcbiAgXCJSZW1vdmVJbnB1dFN0cmVhbU1ldGhvZFwiLFxuICBcIlJlbW92ZU91dHB1dFN0cmVhbU1ldGhvZFwiLFxuICBcIlJlbW92ZVByb3BlcnR5XCIsXG4gIFwiUmVtb3ZlU2NoZWR1bGVkVGFza1wiLFxuICBcIlJlbW92ZVVzZXJzXCIsXG4gIFwiUmVtb3ZlVmlkZW9TdHJlYW1cIixcbiAgXCJSZW5hbWVEaXJlY3RvcnlcIixcbiAgXCJSZW5hbWVGaWxlXCIsXG4gIFwiUmVuZGVyQWxsXCIsXG4gIFwiUmVuZGVyaW5nT3B0aW9uc1wiLFxuICBcIlJlbmV3YWxQcm9jZXNzXCIsXG4gIFwiUmVua29DaGFydFwiLFxuICBcIlJlcGFpck1lc2hcIixcbiAgXCJSZXBlYXRlZFwiLFxuICBcIlJlcGVhdGVkTnVsbFwiLFxuICBcIlJlcGVhdGVkU3RyaW5nXCIsXG4gIFwiUmVwZWF0ZWRUaW1pbmdcIixcbiAgXCJSZXBlYXRpbmdFbGVtZW50XCIsXG4gIFwiUmVwbGFjZVwiLFxuICBcIlJlcGxhY2VBbGxcIixcbiAgXCJSZXBsYWNlQXRcIixcbiAgXCJSZXBsYWNlSGVsZFBhcnRcIixcbiAgXCJSZXBsYWNlSW1hZ2VWYWx1ZVwiLFxuICBcIlJlcGxhY2VMaXN0XCIsXG4gIFwiUmVwbGFjZVBhcnRcIixcbiAgXCJSZXBsYWNlUGl4ZWxWYWx1ZVwiLFxuICBcIlJlcGxhY2VSZXBlYXRlZFwiLFxuICBcIlJlcGxpY2F0ZUxheWVyXCIsXG4gIFwiUmVxdWlyZWRQaHlzaWNhbFF1YW50aXRpZXNcIixcbiAgXCJSZXNhbXBsaW5nXCIsXG4gIFwiUmVzYW1wbGluZ0FsZ29yaXRobURhdGFcIixcbiAgXCJSZXNhbXBsaW5nTWV0aG9kXCIsXG4gIFwiUmVzY2FsZVwiLFxuICBcIlJlc2NhbGluZ1RyYW5zZm9ybVwiLFxuICBcIlJlc2V0RGlyZWN0b3J5XCIsXG4gIFwiUmVzZXRTY2hlZHVsZWRUYXNrXCIsXG4gIFwiUmVzaGFwZUxheWVyXCIsXG4gIFwiUmVzaWR1ZVwiLFxuICBcIlJlc2lkdWVTdW1cIixcbiAgXCJSZXNpemVMYXllclwiLFxuICBcIlJlc29sdmVcIixcbiAgXCJSZXNvbHZlQ29udGV4dEFsaWFzZXNcIixcbiAgXCJSZXNvdXJjZUFjcXVpcmVcIixcbiAgXCJSZXNvdXJjZURhdGFcIixcbiAgXCJSZXNvdXJjZUZ1bmN0aW9uXCIsXG4gIFwiUmVzb3VyY2VPYmplY3RcIixcbiAgXCJSZXNvdXJjZVJlZ2lzdGVyXCIsXG4gIFwiUmVzb3VyY2VSZW1vdmVcIixcbiAgXCJSZXNvdXJjZVNlYXJjaFwiLFxuICBcIlJlc291cmNlU3VibWlzc2lvbk9iamVjdFwiLFxuICBcIlJlc291cmNlU3VibWl0XCIsXG4gIFwiUmVzb3VyY2VTeXN0ZW1CYXNlXCIsXG4gIFwiUmVzb3VyY2VTeXN0ZW1QYXRoXCIsXG4gIFwiUmVzb3VyY2VVcGRhdGVcIixcbiAgXCJSZXNvdXJjZVZlcnNpb25cIixcbiAgXCJSZXNwb25zZUZvcm1cIixcbiAgXCJSZXN0XCIsXG4gIFwiUmVzdGFydEludGVydmFsXCIsXG4gIFwiUmVzdHJpY3RlZFwiLFxuICBcIlJlc3VsdGFudFwiLFxuICBcIlJlc3VtZVBhY2tldFwiLFxuICBcIlJldHVyblwiLFxuICBcIlJldHVybkNyZWF0ZXNOZXdDZWxsXCIsXG4gIFwiUmV0dXJuRW50ZXJzSW5wdXRcIixcbiAgXCJSZXR1cm5FeHByZXNzaW9uUGFja2V0XCIsXG4gIFwiUmV0dXJuSW5wdXRGb3JtUGFja2V0XCIsXG4gIFwiUmV0dXJuUGFja2V0XCIsXG4gIFwiUmV0dXJuUmVjZWlwdEZ1bmN0aW9uXCIsXG4gIFwiUmV0dXJuVGV4dFBhY2tldFwiLFxuICBcIlJldmVyc2VcIixcbiAgXCJSZXZlcnNlQXBwbGllZFwiLFxuICBcIlJldmVyc2VCaW9ydGhvZ29uYWxTcGxpbmVXYXZlbGV0XCIsXG4gIFwiUmV2ZXJzZUVsZW1lbnRcIixcbiAgXCJSZXZlcnNlRXF1aWxpYnJpdW1cIixcbiAgXCJSZXZlcnNlR3JhcGhcIixcbiAgXCJSZXZlcnNlU29ydFwiLFxuICBcIlJldmVyc2VTb3J0QnlcIixcbiAgXCJSZXZlcnNlVXBFcXVpbGlicml1bVwiLFxuICBcIlJldm9sdXRpb25BeGlzXCIsXG4gIFwiUmV2b2x1dGlvblBsb3QzRFwiLFxuICBcIlJHQkNvbG9yXCIsXG4gIFwiUmljY2F0aVNvbHZlXCIsXG4gIFwiUmljZURpc3RyaWJ1dGlvblwiLFxuICBcIlJpZGdlRmlsdGVyXCIsXG4gIFwiUmllbWFublJcIixcbiAgXCJSaWVtYW5uU2llZ2VsVGhldGFcIixcbiAgXCJSaWVtYW5uU2llZ2VsWlwiLFxuICBcIlJpZW1hbm5YaVwiLFxuICBcIlJpZmZsZVwiLFxuICBcIlJpZ2h0XCIsXG4gIFwiUmlnaHRBcnJvd1wiLFxuICBcIlJpZ2h0QXJyb3dCYXJcIixcbiAgXCJSaWdodEFycm93TGVmdEFycm93XCIsXG4gIFwiUmlnaHRDb21wb3NpdGlvblwiLFxuICBcIlJpZ2h0Q29zZXRSZXByZXNlbnRhdGl2ZVwiLFxuICBcIlJpZ2h0RG93blRlZVZlY3RvclwiLFxuICBcIlJpZ2h0RG93blZlY3RvclwiLFxuICBcIlJpZ2h0RG93blZlY3RvckJhclwiLFxuICBcIlJpZ2h0VGVlXCIsXG4gIFwiUmlnaHRUZWVBcnJvd1wiLFxuICBcIlJpZ2h0VGVlVmVjdG9yXCIsXG4gIFwiUmlnaHRUcmlhbmdsZVwiLFxuICBcIlJpZ2h0VHJpYW5nbGVCYXJcIixcbiAgXCJSaWdodFRyaWFuZ2xlRXF1YWxcIixcbiAgXCJSaWdodFVwRG93blZlY3RvclwiLFxuICBcIlJpZ2h0VXBUZWVWZWN0b3JcIixcbiAgXCJSaWdodFVwVmVjdG9yXCIsXG4gIFwiUmlnaHRVcFZlY3RvckJhclwiLFxuICBcIlJpZ2h0VmVjdG9yXCIsXG4gIFwiUmlnaHRWZWN0b3JCYXJcIixcbiAgXCJSaXBsZXlLXCIsXG4gIFwiUmlwbGV5UmFzc29uUmVnaW9uXCIsXG4gIFwiUmlza0FjaGlldmVtZW50SW1wb3J0YW5jZVwiLFxuICBcIlJpc2tSZWR1Y3Rpb25JbXBvcnRhbmNlXCIsXG4gIFwiUm9idXN0Q29udmV4T3B0aW1pemF0aW9uXCIsXG4gIFwiUm9nZXJzVGFuaW1vdG9EaXNzaW1pbGFyaXR5XCIsXG4gIFwiUm9sbFBpdGNoWWF3QW5nbGVzXCIsXG4gIFwiUm9sbFBpdGNoWWF3TWF0cml4XCIsXG4gIFwiUm9tYW5OdW1lcmFsXCIsXG4gIFwiUm9vdFwiLFxuICBcIlJvb3RBcHByb3hpbWFudFwiLFxuICBcIlJvb3RJbnRlcnZhbHNcIixcbiAgXCJSb290TG9jdXNQbG90XCIsXG4gIFwiUm9vdE1lYW5TcXVhcmVcIixcbiAgXCJSb290T2ZVbml0eVFcIixcbiAgXCJSb290UmVkdWNlXCIsXG4gIFwiUm9vdHNcIixcbiAgXCJSb290U3VtXCIsXG4gIFwiUm9vdFRyZWVcIixcbiAgXCJSb3RhdGVcIixcbiAgXCJSb3RhdGVMYWJlbFwiLFxuICBcIlJvdGF0ZUxlZnRcIixcbiAgXCJSb3RhdGVSaWdodFwiLFxuICBcIlJvdGF0aW9uQWN0aW9uXCIsXG4gIFwiUm90YXRpb25Cb3hcIixcbiAgXCJSb3RhdGlvbkJveE9wdGlvbnNcIixcbiAgXCJSb3RhdGlvbk1hdHJpeFwiLFxuICBcIlJvdGF0aW9uVHJhbnNmb3JtXCIsXG4gIFwiUm91bmRcIixcbiAgXCJSb3VuZEltcGxpZXNcIixcbiAgXCJSb3VuZGluZ1JhZGl1c1wiLFxuICBcIlJvd1wiLFxuICBcIlJvd0FsaWdubWVudHNcIixcbiAgXCJSb3dCYWNrZ3JvdW5kc1wiLFxuICBcIlJvd0JveFwiLFxuICBcIlJvd0hlaWdodHNcIixcbiAgXCJSb3dMaW5lc1wiLFxuICBcIlJvd01pbkhlaWdodFwiLFxuICBcIlJvd1JlZHVjZVwiLFxuICBcIlJvd3NFcXVhbFwiLFxuICBcIlJvd1NwYWNpbmdzXCIsXG4gIFwiUlNvbHZlXCIsXG4gIFwiUlNvbHZlVmFsdWVcIixcbiAgXCJSdWRpblNoYXBpcm9cIixcbiAgXCJSdWR2YWxpc0dyb3VwUnVcIixcbiAgXCJSdWxlXCIsXG4gIFwiUnVsZUNvbmRpdGlvblwiLFxuICBcIlJ1bGVEZWxheWVkXCIsXG4gIFwiUnVsZUZvcm1cIixcbiAgXCJSdWxlUGxvdFwiLFxuICBcIlJ1bGVyVW5pdHNcIixcbiAgXCJSdWxlc1RyZWVcIixcbiAgXCJSdW5cIixcbiAgXCJSdW5Qcm9jZXNzXCIsXG4gIFwiUnVuU2NoZWR1bGVkVGFza1wiLFxuICBcIlJ1blRocm91Z2hcIixcbiAgXCJSdW50aW1lQXR0cmlidXRlc1wiLFxuICBcIlJ1bnRpbWVPcHRpb25zXCIsXG4gIFwiUnVzc2VsbFJhb0Rpc3NpbWlsYXJpdHlcIixcbiAgXCJTYW1lQXNcIixcbiAgXCJTYW1lUVwiLFxuICBcIlNhbWVUZXN0XCIsXG4gIFwiU2FtZVRlc3RQcm9wZXJ0aWVzXCIsXG4gIFwiU2FtcGxlZEVudGl0eUNsYXNzXCIsXG4gIFwiU2FtcGxlRGVwdGhcIixcbiAgXCJTYW1wbGVkU291bmRGdW5jdGlvblwiLFxuICBcIlNhbXBsZWRTb3VuZExpc3RcIixcbiAgXCJTYW1wbGVSYXRlXCIsXG4gIFwiU2FtcGxpbmdQZXJpb2RcIixcbiAgXCJTQVJJTUFQcm9jZXNzXCIsXG4gIFwiU0FSTUFQcm9jZXNzXCIsXG4gIFwiU0FTVHJpYW5nbGVcIixcbiAgXCJTYXRlbGxpdGVEYXRhXCIsXG4gIFwiU2F0aXNmaWFiaWxpdHlDb3VudFwiLFxuICBcIlNhdGlzZmlhYmlsaXR5SW5zdGFuY2VzXCIsXG4gIFwiU2F0aXNmaWFibGVRXCIsXG4gIFwiU2F0dXJkYXlcIixcbiAgXCJTYXZlXCIsXG4gIFwiU2F2ZWFibGVcIixcbiAgXCJTYXZlQXV0b0RlbGV0ZVwiLFxuICBcIlNhdmVDb25uZWN0aW9uXCIsXG4gIFwiU2F2ZURlZmluaXRpb25zXCIsXG4gIFwiU2F2aXR6a3lHb2xheU1hdHJpeFwiLFxuICBcIlNhd3Rvb3RoV2F2ZVwiLFxuICBcIlNjYWxlXCIsXG4gIFwiU2NhbGVkXCIsXG4gIFwiU2NhbGVEaXZpc2lvbnNcIixcbiAgXCJTY2FsZWRNb3VzZVBvc2l0aW9uXCIsXG4gIFwiU2NhbGVPcmlnaW5cIixcbiAgXCJTY2FsZVBhZGRpbmdcIixcbiAgXCJTY2FsZVJhbmdlc1wiLFxuICBcIlNjYWxlUmFuZ2VTdHlsZVwiLFxuICBcIlNjYWxpbmdGdW5jdGlvbnNcIixcbiAgXCJTY2FsaW5nTWF0cml4XCIsXG4gIFwiU2NhbGluZ1RyYW5zZm9ybVwiLFxuICBcIlNjYW5cIixcbiAgXCJTY2hlZHVsZWRUYXNrXCIsXG4gIFwiU2NoZWR1bGVkVGFza0FjdGl2ZVFcIixcbiAgXCJTY2hlZHVsZWRUYXNrSW5mb3JtYXRpb25cIixcbiAgXCJTY2hlZHVsZWRUYXNrSW5mb3JtYXRpb25EYXRhXCIsXG4gIFwiU2NoZWR1bGVkVGFza09iamVjdFwiLFxuICBcIlNjaGVkdWxlZFRhc2tzXCIsXG4gIFwiU2NodXJEZWNvbXBvc2l0aW9uXCIsXG4gIFwiU2NpZW50aWZpY0Zvcm1cIixcbiAgXCJTY2llbnRpZmljTm90YXRpb25UaHJlc2hvbGRcIixcbiAgXCJTY29yZXJHaVwiLFxuICBcIlNjb3JlckdpUHJpbWVcIixcbiAgXCJTY29yZXJIaVwiLFxuICBcIlNjb3JlckhpUHJpbWVcIixcbiAgXCJTY3JlZW5SZWN0YW5nbGVcIixcbiAgXCJTY3JlZW5TdHlsZUVudmlyb25tZW50XCIsXG4gIFwiU2NyaXB0QmFzZWxpbmVTaGlmdHNcIixcbiAgXCJTY3JpcHRGb3JtXCIsXG4gIFwiU2NyaXB0TGV2ZWxcIixcbiAgXCJTY3JpcHRNaW5TaXplXCIsXG4gIFwiU2NyaXB0UnVsZXNcIixcbiAgXCJTY3JpcHRTaXplTXVsdGlwbGllcnNcIixcbiAgXCJTY3JvbGxiYXJzXCIsXG4gIFwiU2Nyb2xsaW5nT3B0aW9uc1wiLFxuICBcIlNjcm9sbFBvc2l0aW9uXCIsXG4gIFwiU2VhcmNoQWRqdXN0bWVudFwiLFxuICBcIlNlYXJjaEluZGV4T2JqZWN0XCIsXG4gIFwiU2VhcmNoSW5kaWNlc1wiLFxuICBcIlNlYXJjaFF1ZXJ5U3RyaW5nXCIsXG4gIFwiU2VhcmNoUmVzdWx0T2JqZWN0XCIsXG4gIFwiU2VjXCIsXG4gIFwiU2VjaFwiLFxuICBcIlNlY2hEaXN0cmlidXRpb25cIixcbiAgXCJTZWNvbmRPcmRlckNvbmVPcHRpbWl6YXRpb25cIixcbiAgXCJTZWN0aW9uR3JvdXBpbmdcIixcbiAgXCJTZWN0b3JDaGFydFwiLFxuICBcIlNlY3RvckNoYXJ0M0RcIixcbiAgXCJTZWN0b3JPcmlnaW5cIixcbiAgXCJTZWN0b3JTcGFjaW5nXCIsXG4gIFwiU2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5XCIsXG4gIFwiU2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5c1wiLFxuICBcIlNlY3VyaXR5Q2VydGlmaWNhdGVcIixcbiAgXCJTZWVkUmFuZG9tXCIsXG4gIFwiU2VsZWN0XCIsXG4gIFwiU2VsZWN0YWJsZVwiLFxuICBcIlNlbGVjdENvbXBvbmVudHNcIixcbiAgXCJTZWxlY3RlZENlbGxzXCIsXG4gIFwiU2VsZWN0ZWROb3RlYm9va1wiLFxuICBcIlNlbGVjdEZpcnN0XCIsXG4gIFwiU2VsZWN0aW9uXCIsXG4gIFwiU2VsZWN0aW9uQW5pbWF0ZVwiLFxuICBcIlNlbGVjdGlvbkNlbGxcIixcbiAgXCJTZWxlY3Rpb25DZWxsQ3JlYXRlQ2VsbFwiLFxuICBcIlNlbGVjdGlvbkNlbGxEZWZhdWx0U3R5bGVcIixcbiAgXCJTZWxlY3Rpb25DZWxsUGFyZW50U3R5bGVcIixcbiAgXCJTZWxlY3Rpb25DcmVhdGVDZWxsXCIsXG4gIFwiU2VsZWN0aW9uRGVidWdnZXJUYWdcIixcbiAgXCJTZWxlY3Rpb25FdmFsdWF0ZVwiLFxuICBcIlNlbGVjdGlvbkV2YWx1YXRlQ3JlYXRlQ2VsbFwiLFxuICBcIlNlbGVjdGlvbk1vdmVcIixcbiAgXCJTZWxlY3Rpb25QbGFjZWhvbGRlclwiLFxuICBcIlNlbGVjdFdpdGhDb250ZW50c1wiLFxuICBcIlNlbGZMb29wc1wiLFxuICBcIlNlbGZMb29wU3R5bGVcIixcbiAgXCJTZW1hbnRpY0ltcG9ydFwiLFxuICBcIlNlbWFudGljSW1wb3J0U3RyaW5nXCIsXG4gIFwiU2VtYW50aWNJbnRlcnByZXRhdGlvblwiLFxuICBcIlNlbWlhbGdlYnJhaWNDb21wb25lbnRJbnN0YW5jZXNcIixcbiAgXCJTZW1pZGVmaW5pdGVPcHRpbWl6YXRpb25cIixcbiAgXCJTZW5kTWFpbFwiLFxuICBcIlNlbmRNZXNzYWdlXCIsXG4gIFwiU2VxdWVuY2VcIixcbiAgXCJTZXF1ZW5jZUFsaWdubWVudFwiLFxuICBcIlNlcXVlbmNlQXR0ZW50aW9uTGF5ZXJcIixcbiAgXCJTZXF1ZW5jZUNhc2VzXCIsXG4gIFwiU2VxdWVuY2VDb3VudFwiLFxuICBcIlNlcXVlbmNlRm9sZFwiLFxuICBcIlNlcXVlbmNlRm9sZExpc3RcIixcbiAgXCJTZXF1ZW5jZUZvcm1cIixcbiAgXCJTZXF1ZW5jZUhvbGRcIixcbiAgXCJTZXF1ZW5jZUluZGljZXNMYXllclwiLFxuICBcIlNlcXVlbmNlTGFzdExheWVyXCIsXG4gIFwiU2VxdWVuY2VNb3N0TGF5ZXJcIixcbiAgXCJTZXF1ZW5jZVBvc2l0aW9uXCIsXG4gIFwiU2VxdWVuY2VQcmVkaWN0XCIsXG4gIFwiU2VxdWVuY2VQcmVkaWN0b3JGdW5jdGlvblwiLFxuICBcIlNlcXVlbmNlUmVwbGFjZVwiLFxuICBcIlNlcXVlbmNlUmVzdExheWVyXCIsXG4gIFwiU2VxdWVuY2VSZXZlcnNlTGF5ZXJcIixcbiAgXCJTZXF1ZW5jZVNwbGl0XCIsXG4gIFwiU2VyaWVzXCIsXG4gIFwiU2VyaWVzQ29lZmZpY2llbnRcIixcbiAgXCJTZXJpZXNEYXRhXCIsXG4gIFwiU2VyaWVzVGVybUdvYWxcIixcbiAgXCJTZXJ2aWNlQ29ubmVjdFwiLFxuICBcIlNlcnZpY2VEaXNjb25uZWN0XCIsXG4gIFwiU2VydmljZUV4ZWN1dGVcIixcbiAgXCJTZXJ2aWNlT2JqZWN0XCIsXG4gIFwiU2VydmljZVJlcXVlc3RcIixcbiAgXCJTZXJ2aWNlUmVzcG9uc2VcIixcbiAgXCJTZXJ2aWNlU3VibWl0XCIsXG4gIFwiU2Vzc2lvblN1Ym1pdFwiLFxuICBcIlNlc3Npb25UaW1lXCIsXG4gIFwiU2V0XCIsXG4gIFwiU2V0QWNjdXJhY3lcIixcbiAgXCJTZXRBbHBoYUNoYW5uZWxcIixcbiAgXCJTZXRBdHRyaWJ1dGVzXCIsXG4gIFwiU2V0YmFja3NcIixcbiAgXCJTZXRDbG91ZERpcmVjdG9yeVwiLFxuICBcIlNldENvb2tpZXNcIixcbiAgXCJTZXREZWxheWVkXCIsXG4gIFwiU2V0RGlyZWN0b3J5XCIsXG4gIFwiU2V0RW52aXJvbm1lbnRcIixcbiAgXCJTZXRGaWxlRGF0ZVwiLFxuICBcIlNldEZpbGVGb3JtYXRQcm9wZXJ0aWVzXCIsXG4gIFwiU2V0T3B0aW9uc1wiLFxuICBcIlNldE9wdGlvbnNQYWNrZXRcIixcbiAgXCJTZXRQZXJtaXNzaW9uc1wiLFxuICBcIlNldFByZWNpc2lvblwiLFxuICBcIlNldFByb3BlcnR5XCIsXG4gIFwiU2V0U2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5XCIsXG4gIFwiU2V0U2VsZWN0ZWROb3RlYm9va1wiLFxuICBcIlNldFNoYXJlZEZ1bmN0aW9uXCIsXG4gIFwiU2V0U2hhcmVkVmFyaWFibGVcIixcbiAgXCJTZXRTdHJlYW1Qb3NpdGlvblwiLFxuICBcIlNldFN5c3RlbU1vZGVsXCIsXG4gIFwiU2V0U3lzdGVtT3B0aW9uc1wiLFxuICBcIlNldHRlclwiLFxuICBcIlNldHRlckJhclwiLFxuICBcIlNldHRlckJveFwiLFxuICBcIlNldHRlckJveE9wdGlvbnNcIixcbiAgXCJTZXR0aW5nXCIsXG4gIFwiU2V0VXNlcnNcIixcbiAgXCJTaGFkaW5nXCIsXG4gIFwiU2hhbGxvd1wiLFxuICBcIlNoYW5ub25XYXZlbGV0XCIsXG4gIFwiU2hhcGlyb1dpbGtUZXN0XCIsXG4gIFwiU2hhcmVcIixcbiAgXCJTaGFyaW5nTGlzdFwiLFxuICBcIlNoYXJwZW5cIixcbiAgXCJTaGVhcmluZ01hdHJpeFwiLFxuICBcIlNoZWFyaW5nVHJhbnNmb3JtXCIsXG4gIFwiU2hlbGxSZWdpb25cIixcbiAgXCJTaGVuQ2FzdGFuTWF0cml4XCIsXG4gIFwiU2hpZnRlZEdvbXBlcnR6RGlzdHJpYnV0aW9uXCIsXG4gIFwiU2hpZnRSZWdpc3RlclNlcXVlbmNlXCIsXG4gIFwiU2hvcnRcIixcbiAgXCJTaG9ydERvd25BcnJvd1wiLFxuICBcIlNob3J0ZXN0XCIsXG4gIFwiU2hvcnRlc3RNYXRjaFwiLFxuICBcIlNob3J0ZXN0UGF0aEZ1bmN0aW9uXCIsXG4gIFwiU2hvcnRMZWZ0QXJyb3dcIixcbiAgXCJTaG9ydFJpZ2h0QXJyb3dcIixcbiAgXCJTaG9ydFRpbWVGb3VyaWVyXCIsXG4gIFwiU2hvcnRUaW1lRm91cmllckRhdGFcIixcbiAgXCJTaG9ydFVwQXJyb3dcIixcbiAgXCJTaG93XCIsXG4gIFwiU2hvd0F1dG9Db252ZXJ0XCIsXG4gIFwiU2hvd0F1dG9TcGVsbENoZWNrXCIsXG4gIFwiU2hvd0F1dG9TdHlsZXNcIixcbiAgXCJTaG93Q2VsbEJyYWNrZXRcIixcbiAgXCJTaG93Q2VsbExhYmVsXCIsXG4gIFwiU2hvd0NlbGxUYWdzXCIsXG4gIFwiU2hvd0Nsb3NlZENlbGxBcmVhXCIsXG4gIFwiU2hvd0NvZGVBc3Npc3RcIixcbiAgXCJTaG93Q29udGVudHNcIixcbiAgXCJTaG93Q29udHJvbHNcIixcbiAgXCJTaG93Q3Vyc29yVHJhY2tlclwiLFxuICBcIlNob3dHcm91cE9wZW5DbG9zZUljb25cIixcbiAgXCJTaG93R3JvdXBPcGVuZXJcIixcbiAgXCJTaG93SW52aXNpYmxlQ2hhcmFjdGVyc1wiLFxuICBcIlNob3dQYWdlQnJlYWtzXCIsXG4gIFwiU2hvd1ByZWRpY3RpdmVJbnRlcmZhY2VcIixcbiAgXCJTaG93U2VsZWN0aW9uXCIsXG4gIFwiU2hvd1Nob3J0Qm94Rm9ybVwiLFxuICBcIlNob3dTcGVjaWFsQ2hhcmFjdGVyc1wiLFxuICBcIlNob3dTdHJpbmdDaGFyYWN0ZXJzXCIsXG4gIFwiU2hvd1N5bnRheFN0eWxlc1wiLFxuICBcIlNocmlua2luZ0RlbGF5XCIsXG4gIFwiU2hyaW5rV3JhcEJvdW5kaW5nQm94XCIsXG4gIFwiU2lkZXJlYWxUaW1lXCIsXG4gIFwiU2llZ2VsVGhldGFcIixcbiAgXCJTaWVnZWxUdWtleVRlc3RcIixcbiAgXCJTaWVycGluc2tpQ3VydmVcIixcbiAgXCJTaWVycGluc2tpTWVzaFwiLFxuICBcIlNpZ25cIixcbiAgXCJTaWduYXR1cmVcIixcbiAgXCJTaWduZWRSYW5rVGVzdFwiLFxuICBcIlNpZ25lZFJlZ2lvbkRpc3RhbmNlXCIsXG4gIFwiU2lnbmlmaWNhbmNlTGV2ZWxcIixcbiAgXCJTaWduUGFkZGluZ1wiLFxuICBcIlNpZ25UZXN0XCIsXG4gIFwiU2ltaWxhcml0eVJ1bGVzXCIsXG4gIFwiU2ltcGxlR3JhcGhcIixcbiAgXCJTaW1wbGVHcmFwaFFcIixcbiAgXCJTaW1wbGVQb2x5Z29uUVwiLFxuICBcIlNpbXBsZVBvbHloZWRyb25RXCIsXG4gIFwiU2ltcGxleFwiLFxuICBcIlNpbXBsaWZ5XCIsXG4gIFwiU2luXCIsXG4gIFwiU2luY1wiLFxuICBcIlNpbmdoTWFkZGFsYURpc3RyaWJ1dGlvblwiLFxuICBcIlNpbmdsZUV2YWx1YXRpb25cIixcbiAgXCJTaW5nbGVMZXR0ZXJJdGFsaWNzXCIsXG4gIFwiU2luZ2xlTGV0dGVyU3R5bGVcIixcbiAgXCJTaW5ndWxhclZhbHVlRGVjb21wb3NpdGlvblwiLFxuICBcIlNpbmd1bGFyVmFsdWVMaXN0XCIsXG4gIFwiU2luZ3VsYXJWYWx1ZVBsb3RcIixcbiAgXCJTaW5ndWxhclZhbHVlc1wiLFxuICBcIlNpbmhcIixcbiAgXCJTaW5oSW50ZWdyYWxcIixcbiAgXCJTaW5JbnRlZ3JhbFwiLFxuICBcIlNpeEpTeW1ib2xcIixcbiAgXCJTa2VsZXRvblwiLFxuICBcIlNrZWxldG9uVHJhbnNmb3JtXCIsXG4gIFwiU2tlbGxhbURpc3RyaWJ1dGlvblwiLFxuICBcIlNrZXduZXNzXCIsXG4gIFwiU2tld05vcm1hbERpc3RyaWJ1dGlvblwiLFxuICBcIlNraW5TdHlsZVwiLFxuICBcIlNraXBcIixcbiAgXCJTbGljZUNvbnRvdXJQbG90M0RcIixcbiAgXCJTbGljZURlbnNpdHlQbG90M0RcIixcbiAgXCJTbGljZURpc3RyaWJ1dGlvblwiLFxuICBcIlNsaWNlVmVjdG9yUGxvdDNEXCIsXG4gIFwiU2xpZGVyXCIsXG4gIFwiU2xpZGVyMkRcIixcbiAgXCJTbGlkZXIyREJveFwiLFxuICBcIlNsaWRlcjJEQm94T3B0aW9uc1wiLFxuICBcIlNsaWRlckJveFwiLFxuICBcIlNsaWRlckJveE9wdGlvbnNcIixcbiAgXCJTbGlkZVNob3dWaWRlb1wiLFxuICBcIlNsaWRlVmlld1wiLFxuICBcIlNsb3RcIixcbiAgXCJTbG90U2VxdWVuY2VcIixcbiAgXCJTbWFsbFwiLFxuICBcIlNtYWxsQ2lyY2xlXCIsXG4gIFwiU21hbGxlclwiLFxuICBcIlNtaXRoRGVjb21wb3NpdGlvblwiLFxuICBcIlNtaXRoRGVsYXlDb21wZW5zYXRvclwiLFxuICBcIlNtaXRoV2F0ZXJtYW5TaW1pbGFyaXR5XCIsXG4gIFwiU21vb3RoRGVuc2l0eUhpc3RvZ3JhbVwiLFxuICBcIlNtb290aEhpc3RvZ3JhbVwiLFxuICBcIlNtb290aEhpc3RvZ3JhbTNEXCIsXG4gIFwiU21vb3RoS2VybmVsRGlzdHJpYnV0aW9uXCIsXG4gIFwiU21vb3RoUG9pbnREZW5zaXR5XCIsXG4gIFwiU25EaXNwZXJzaW9uXCIsXG4gIFwiU25pcHBldFwiLFxuICBcIlNuaXBwZXRzVmlkZW9cIixcbiAgXCJTbnViUG9seWhlZHJvblwiLFxuICBcIlNvY2lhbE1lZGlhRGF0YVwiLFxuICBcIlNvY2tldFwiLFxuICBcIlNvY2tldENvbm5lY3RcIixcbiAgXCJTb2NrZXRMaXN0ZW5cIixcbiAgXCJTb2NrZXRMaXN0ZW5lclwiLFxuICBcIlNvY2tldE9iamVjdFwiLFxuICBcIlNvY2tldE9wZW5cIixcbiAgXCJTb2NrZXRSZWFkTWVzc2FnZVwiLFxuICBcIlNvY2tldFJlYWR5UVwiLFxuICBcIlNvY2tldHNcIixcbiAgXCJTb2NrZXRXYWl0QWxsXCIsXG4gIFwiU29ja2V0V2FpdE5leHRcIixcbiAgXCJTb2Z0bWF4TGF5ZXJcIixcbiAgXCJTb2thbFNuZWF0aERpc3NpbWlsYXJpdHlcIixcbiAgXCJTb2xhckVjbGlwc2VcIixcbiAgXCJTb2xhclN5c3RlbUZlYXR1cmVEYXRhXCIsXG4gIFwiU29sYXJUaW1lXCIsXG4gIFwiU29saWRBbmdsZVwiLFxuICBcIlNvbGlkQm91bmRhcnlMb2FkVmFsdWVcIixcbiAgXCJTb2xpZERhdGFcIixcbiAgXCJTb2xpZERpc3BsYWNlbWVudENvbmRpdGlvblwiLFxuICBcIlNvbGlkRml4ZWRDb25kaXRpb25cIixcbiAgXCJTb2xpZE1lY2hhbmljc1BERUNvbXBvbmVudFwiLFxuICBcIlNvbGlkTWVjaGFuaWNzU3RyYWluXCIsXG4gIFwiU29saWRNZWNoYW5pY3NTdHJlc3NcIixcbiAgXCJTb2xpZFJlZ2lvblFcIixcbiAgXCJTb2x2ZVwiLFxuICBcIlNvbHZlQWx3YXlzXCIsXG4gIFwiU29sdmVEZWxheWVkXCIsXG4gIFwiU29sdmVWYWx1ZXNcIixcbiAgXCJTb3J0XCIsXG4gIFwiU29ydEJ5XCIsXG4gIFwiU29ydGVkQnlcIixcbiAgXCJTb3J0ZWRFbnRpdHlDbGFzc1wiLFxuICBcIlNvdW5kXCIsXG4gIFwiU291bmRBbmRHcmFwaGljc1wiLFxuICBcIlNvdW5kTm90ZVwiLFxuICBcIlNvdW5kVm9sdW1lXCIsXG4gIFwiU291cmNlTGlua1wiLFxuICBcIlNvdXJjZVBERVRlcm1cIixcbiAgXCJTb3dcIixcbiAgXCJTcGFjZVwiLFxuICBcIlNwYWNlQ3VydmVEYXRhXCIsXG4gIFwiU3BhY2VGb3JtXCIsXG4gIFwiU3BhY2VyXCIsXG4gIFwiU3BhY2luZ3NcIixcbiAgXCJTcGFuXCIsXG4gIFwiU3BhbkFkanVzdG1lbnRzXCIsXG4gIFwiU3BhbkNoYXJhY3RlclJvdW5kaW5nXCIsXG4gIFwiU3BhbkZyb21BYm92ZVwiLFxuICBcIlNwYW5Gcm9tQm90aFwiLFxuICBcIlNwYW5Gcm9tTGVmdFwiLFxuICBcIlNwYW5MaW5lVGhpY2tuZXNzXCIsXG4gIFwiU3Bhbk1heFNpemVcIixcbiAgXCJTcGFuTWluU2l6ZVwiLFxuICBcIlNwYW5uaW5nQ2hhcmFjdGVyc1wiLFxuICBcIlNwYW5TeW1tZXRyaWNcIixcbiAgXCJTcGFyc2VBcnJheVwiLFxuICBcIlNwYXJzZUFycmF5UVwiLFxuICBcIlNwYXRpYWxCaW5uZWRQb2ludERhdGFcIixcbiAgXCJTcGF0aWFsQm91bmRhcnlDb3JyZWN0aW9uXCIsXG4gIFwiU3BhdGlhbEVzdGltYXRlXCIsXG4gIFwiU3BhdGlhbEVzdGltYXRvckZ1bmN0aW9uXCIsXG4gIFwiU3BhdGlhbEdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiU3BhdGlhbEpcIixcbiAgXCJTcGF0aWFsTWVkaWFuXCIsXG4gIFwiU3BhdGlhbE5vaXNlTGV2ZWxcIixcbiAgXCJTcGF0aWFsT2JzZXJ2YXRpb25SZWdpb25RXCIsXG4gIFwiU3BhdGlhbFBvaW50RGF0YVwiLFxuICBcIlNwYXRpYWxQb2ludFNlbGVjdFwiLFxuICBcIlNwYXRpYWxSYW5kb21uZXNzVGVzdFwiLFxuICBcIlNwYXRpYWxUcmFuc2Zvcm1hdGlvbkxheWVyXCIsXG4gIFwiU3BhdGlhbFRyZW5kRnVuY3Rpb25cIixcbiAgXCJTcGVha1wiLFxuICBcIlNwZWFrZXJNYXRjaFFcIixcbiAgXCJTcGVhcm1hblJhbmtUZXN0XCIsXG4gIFwiU3BlYXJtYW5SaG9cIixcbiAgXCJTcGVjaWVzRGF0YVwiLFxuICBcIlNwZWNpZmljaXR5R29hbFwiLFxuICBcIlNwZWN0cmFsTGluZURhdGFcIixcbiAgXCJTcGVjdHJvZ3JhbVwiLFxuICBcIlNwZWN0cm9ncmFtQXJyYXlcIixcbiAgXCJTcGVjdWxhcml0eVwiLFxuICBcIlNwZWVjaENhc2VzXCIsXG4gIFwiU3BlZWNoSW50ZXJwcmV0ZXJcIixcbiAgXCJTcGVlY2hSZWNvZ25pemVcIixcbiAgXCJTcGVlY2hTeW50aGVzaXplXCIsXG4gIFwiU3BlbGxpbmdDb3JyZWN0aW9uXCIsXG4gIFwiU3BlbGxpbmdDb3JyZWN0aW9uTGlzdFwiLFxuICBcIlNwZWxsaW5nRGljdGlvbmFyaWVzXCIsXG4gIFwiU3BlbGxpbmdEaWN0aW9uYXJpZXNQYXRoXCIsXG4gIFwiU3BlbGxpbmdPcHRpb25zXCIsXG4gIFwiU3BoZXJlXCIsXG4gIFwiU3BoZXJlQm94XCIsXG4gIFwiU3BoZXJlQm94T3B0aW9uc1wiLFxuICBcIlNwaGVyZVBvaW50c1wiLFxuICBcIlNwaGVyaWNhbEJlc3NlbEpcIixcbiAgXCJTcGhlcmljYWxCZXNzZWxZXCIsXG4gIFwiU3BoZXJpY2FsSGFua2VsSDFcIixcbiAgXCJTcGhlcmljYWxIYW5rZWxIMlwiLFxuICBcIlNwaGVyaWNhbEhhcm1vbmljWVwiLFxuICBcIlNwaGVyaWNhbFBsb3QzRFwiLFxuICBcIlNwaGVyaWNhbFJlZ2lvblwiLFxuICBcIlNwaGVyaWNhbFNoZWxsXCIsXG4gIFwiU3BoZXJvaWRhbEVpZ2VudmFsdWVcIixcbiAgXCJTcGhlcm9pZGFsSm9pbmluZ0ZhY3RvclwiLFxuICBcIlNwaGVyb2lkYWxQU1wiLFxuICBcIlNwaGVyb2lkYWxQU1ByaW1lXCIsXG4gIFwiU3BoZXJvaWRhbFFTXCIsXG4gIFwiU3BoZXJvaWRhbFFTUHJpbWVcIixcbiAgXCJTcGhlcm9pZGFsUmFkaWFsRmFjdG9yXCIsXG4gIFwiU3BoZXJvaWRhbFMxXCIsXG4gIFwiU3BoZXJvaWRhbFMxUHJpbWVcIixcbiAgXCJTcGhlcm9pZGFsUzJcIixcbiAgXCJTcGhlcm9pZGFsUzJQcmltZVwiLFxuICBcIlNwbGljZVwiLFxuICBcIlNwbGljZWREaXN0cmlidXRpb25cIixcbiAgXCJTcGxpbmVDbG9zZWRcIixcbiAgXCJTcGxpbmVEZWdyZWVcIixcbiAgXCJTcGxpbmVLbm90c1wiLFxuICBcIlNwbGluZVdlaWdodHNcIixcbiAgXCJTcGxpdFwiLFxuICBcIlNwbGl0QnlcIixcbiAgXCJTcG9rZW5TdHJpbmdcIixcbiAgXCJTcG90TGlnaHRcIixcbiAgXCJTcXJ0XCIsXG4gIFwiU3FydEJveFwiLFxuICBcIlNxcnRCb3hPcHRpb25zXCIsXG4gIFwiU3F1YXJlXCIsXG4gIFwiU3F1YXJlZEV1Y2xpZGVhbkRpc3RhbmNlXCIsXG4gIFwiU3F1YXJlRnJlZVFcIixcbiAgXCJTcXVhcmVJbnRlcnNlY3Rpb25cIixcbiAgXCJTcXVhcmVNYXRyaXhRXCIsXG4gIFwiU3F1YXJlUmVwZWF0aW5nRWxlbWVudFwiLFxuICBcIlNxdWFyZXNSXCIsXG4gIFwiU3F1YXJlU3Vic2V0XCIsXG4gIFwiU3F1YXJlU3Vic2V0RXF1YWxcIixcbiAgXCJTcXVhcmVTdXBlcnNldFwiLFxuICBcIlNxdWFyZVN1cGVyc2V0RXF1YWxcIixcbiAgXCJTcXVhcmVVbmlvblwiLFxuICBcIlNxdWFyZVdhdmVcIixcbiAgXCJTU1NUcmlhbmdsZVwiLFxuICBcIlN0YWJpbGl0eU1hcmdpbnNcIixcbiAgXCJTdGFiaWxpdHlNYXJnaW5zU3R5bGVcIixcbiAgXCJTdGFibGVEaXN0cmlidXRpb25cIixcbiAgXCJTdGFja1wiLFxuICBcIlN0YWNrQmVnaW5cIixcbiAgXCJTdGFja0NvbXBsZXRlXCIsXG4gIFwiU3RhY2tlZERhdGVMaXN0UGxvdFwiLFxuICBcIlN0YWNrZWRMaXN0UGxvdFwiLFxuICBcIlN0YWNrSW5oaWJpdFwiLFxuICBcIlN0YWRpdW1TaGFwZVwiLFxuICBcIlN0YW5kYXJkQXRtb3NwaGVyZURhdGFcIixcbiAgXCJTdGFuZGFyZERldmlhdGlvblwiLFxuICBcIlN0YW5kYXJkRGV2aWF0aW9uRmlsdGVyXCIsXG4gIFwiU3RhbmRhcmRGb3JtXCIsXG4gIFwiU3RhbmRhcmRpemVcIixcbiAgXCJTdGFuZGFyZGl6ZWRcIixcbiAgXCJTdGFuZGFyZE9jZWFuRGF0YVwiLFxuICBcIlN0YW5kYnlEaXN0cmlidXRpb25cIixcbiAgXCJTdGFyXCIsXG4gIFwiU3RhckNsdXN0ZXJEYXRhXCIsXG4gIFwiU3RhckRhdGFcIixcbiAgXCJTdGFyR3JhcGhcIixcbiAgXCJTdGFydEFzeW5jaHJvbm91c1Rhc2tcIixcbiAgXCJTdGFydEV4dGVybmFsU2Vzc2lvblwiLFxuICBcIlN0YXJ0aW5nU3RlcFNpemVcIixcbiAgXCJTdGFydE9mTGluZVwiLFxuICBcIlN0YXJ0T2ZTdHJpbmdcIixcbiAgXCJTdGFydFByb2Nlc3NcIixcbiAgXCJTdGFydFNjaGVkdWxlZFRhc2tcIixcbiAgXCJTdGFydHVwU291bmRcIixcbiAgXCJTdGFydFdlYlNlc3Npb25cIixcbiAgXCJTdGF0ZURpbWVuc2lvbnNcIixcbiAgXCJTdGF0ZUZlZWRiYWNrR2FpbnNcIixcbiAgXCJTdGF0ZU91dHB1dEVzdGltYXRvclwiLFxuICBcIlN0YXRlUmVzcG9uc2VcIixcbiAgXCJTdGF0ZVNwYWNlTW9kZWxcIixcbiAgXCJTdGF0ZVNwYWNlUmVhbGl6YXRpb25cIixcbiAgXCJTdGF0ZVNwYWNlVHJhbnNmb3JtXCIsXG4gIFwiU3RhdGVUcmFuc2Zvcm1hdGlvbkxpbmVhcml6ZVwiLFxuICBcIlN0YXRpb25hcnlEaXN0cmlidXRpb25cIixcbiAgXCJTdGF0aW9uYXJ5V2F2ZWxldFBhY2tldFRyYW5zZm9ybVwiLFxuICBcIlN0YXRpb25hcnlXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiU3RhdHVzQXJlYVwiLFxuICBcIlN0YXR1c0NlbnRyYWxpdHlcIixcbiAgXCJTdGVwTW9uaXRvclwiLFxuICBcIlN0ZXJlb2NoZW1pc3RyeUVsZW1lbnRzXCIsXG4gIFwiU3RpZWx0amVzR2FtbWFcIixcbiAgXCJTdGlwcGxlU2hhZGluZ1wiLFxuICBcIlN0aXJsaW5nUzFcIixcbiAgXCJTdGlybGluZ1MyXCIsXG4gIFwiU3RvcEFzeW5jaHJvbm91c1Rhc2tcIixcbiAgXCJTdG9wcGluZ1Bvd2VyRGF0YVwiLFxuICBcIlN0b3BTY2hlZHVsZWRUYXNrXCIsXG4gIFwiU3RyYXRhVmFyaWFibGVzXCIsXG4gIFwiU3RyYXRvbm92aWNoUHJvY2Vzc1wiLFxuICBcIlN0cmF1c3NIYXJkY29yZVBvaW50UHJvY2Vzc1wiLFxuICBcIlN0cmF1c3NQb2ludFByb2Nlc3NcIixcbiAgXCJTdHJlYW1Db2xvckZ1bmN0aW9uXCIsXG4gIFwiU3RyZWFtQ29sb3JGdW5jdGlvblNjYWxpbmdcIixcbiAgXCJTdHJlYW1EZW5zaXR5UGxvdFwiLFxuICBcIlN0cmVhbU1hcmtlcnNcIixcbiAgXCJTdHJlYW1QbG90XCIsXG4gIFwiU3RyZWFtUGxvdDNEXCIsXG4gIFwiU3RyZWFtUG9pbnRzXCIsXG4gIFwiU3RyZWFtUG9zaXRpb25cIixcbiAgXCJTdHJlYW1zXCIsXG4gIFwiU3RyZWFtU2NhbGVcIixcbiAgXCJTdHJlYW1TdHlsZVwiLFxuICBcIlN0cmljdEluZXF1YWxpdGllc1wiLFxuICBcIlN0cmluZ1wiLFxuICBcIlN0cmluZ0JyZWFrXCIsXG4gIFwiU3RyaW5nQnl0ZUNvdW50XCIsXG4gIFwiU3RyaW5nQ2FzZXNcIixcbiAgXCJTdHJpbmdDb250YWluc1FcIixcbiAgXCJTdHJpbmdDb3VudFwiLFxuICBcIlN0cmluZ0RlbGV0ZVwiLFxuICBcIlN0cmluZ0Ryb3BcIixcbiAgXCJTdHJpbmdFbmRzUVwiLFxuICBcIlN0cmluZ0V4cHJlc3Npb25cIixcbiAgXCJTdHJpbmdFeHRyYWN0XCIsXG4gIFwiU3RyaW5nRm9ybVwiLFxuICBcIlN0cmluZ0Zvcm1hdFwiLFxuICBcIlN0cmluZ0Zvcm1hdFFcIixcbiAgXCJTdHJpbmdGcmVlUVwiLFxuICBcIlN0cmluZ0luc2VydFwiLFxuICBcIlN0cmluZ0pvaW5cIixcbiAgXCJTdHJpbmdMZW5ndGhcIixcbiAgXCJTdHJpbmdNYXRjaFFcIixcbiAgXCJTdHJpbmdQYWRMZWZ0XCIsXG4gIFwiU3RyaW5nUGFkUmlnaHRcIixcbiAgXCJTdHJpbmdQYXJ0XCIsXG4gIFwiU3RyaW5nUGFydGl0aW9uXCIsXG4gIFwiU3RyaW5nUG9zaXRpb25cIixcbiAgXCJTdHJpbmdRXCIsXG4gIFwiU3RyaW5nUmVwZWF0XCIsXG4gIFwiU3RyaW5nUmVwbGFjZVwiLFxuICBcIlN0cmluZ1JlcGxhY2VMaXN0XCIsXG4gIFwiU3RyaW5nUmVwbGFjZVBhcnRcIixcbiAgXCJTdHJpbmdSZXZlcnNlXCIsXG4gIFwiU3RyaW5nUmlmZmxlXCIsXG4gIFwiU3RyaW5nUm90YXRlTGVmdFwiLFxuICBcIlN0cmluZ1JvdGF0ZVJpZ2h0XCIsXG4gIFwiU3RyaW5nU2tlbGV0b25cIixcbiAgXCJTdHJpbmdTcGxpdFwiLFxuICBcIlN0cmluZ1N0YXJ0c1FcIixcbiAgXCJTdHJpbmdUYWtlXCIsXG4gIFwiU3RyaW5nVGFrZURyb3BcIixcbiAgXCJTdHJpbmdUZW1wbGF0ZVwiLFxuICBcIlN0cmluZ1RvQnl0ZUFycmF5XCIsXG4gIFwiU3RyaW5nVG9TdHJlYW1cIixcbiAgXCJTdHJpbmdUcmltXCIsXG4gIFwiU3RyaXBCb3hlc1wiLFxuICBcIlN0cmlwT25JbnB1dFwiLFxuICBcIlN0cmlwU3R5bGVPblBhc3RlXCIsXG4gIFwiU3RyaXBXcmFwcGVyQm94ZXNcIixcbiAgXCJTdHJva2VGb3JtXCIsXG4gIFwiU3RydWNrdGhyb3VnaFwiLFxuICBcIlN0cnVjdHVyYWxJbXBvcnRhbmNlXCIsXG4gIFwiU3RydWN0dXJlZEFycmF5XCIsXG4gIFwiU3RydWN0dXJlZEFycmF5SGVhZFFcIixcbiAgXCJTdHJ1Y3R1cmVkU2VsZWN0aW9uXCIsXG4gIFwiU3RydXZlSFwiLFxuICBcIlN0cnV2ZUxcIixcbiAgXCJTdHViXCIsXG4gIFwiU3R1ZGVudFREaXN0cmlidXRpb25cIixcbiAgXCJTdHlsZVwiLFxuICBcIlN0eWxlQm94XCIsXG4gIFwiU3R5bGVCb3hBdXRvRGVsZXRlXCIsXG4gIFwiU3R5bGVEYXRhXCIsXG4gIFwiU3R5bGVEZWZpbml0aW9uc1wiLFxuICBcIlN0eWxlRm9ybVwiLFxuICBcIlN0eWxlSGludHNcIixcbiAgXCJTdHlsZUtleU1hcHBpbmdcIixcbiAgXCJTdHlsZU1lbnVMaXN0aW5nXCIsXG4gIFwiU3R5bGVOYW1lRGlhbG9nU2V0dGluZ3NcIixcbiAgXCJTdHlsZU5hbWVzXCIsXG4gIFwiU3R5bGVQcmludFwiLFxuICBcIlN0eWxlU2hlZXRQYXRoXCIsXG4gIFwiU3ViZGl2aWRlXCIsXG4gIFwiU3ViZmFjdG9yaWFsXCIsXG4gIFwiU3ViZ3JhcGhcIixcbiAgXCJTdWJNaW51c1wiLFxuICBcIlN1YlBsdXNcIixcbiAgXCJTdWJyZXN1bHRhbnRQb2x5bm9taWFsUmVtYWluZGVyc1wiLFxuICBcIlN1YnJlc3VsdGFudFBvbHlub21pYWxzXCIsXG4gIFwiU3VicmVzdWx0YW50c1wiLFxuICBcIlN1YnNjcmlwdFwiLFxuICBcIlN1YnNjcmlwdEJveFwiLFxuICBcIlN1YnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJTdWJzY3JpcHRlZFwiLFxuICBcIlN1YnNlcXVlbmNlc1wiLFxuICBcIlN1YnNldFwiLFxuICBcIlN1YnNldENhc2VzXCIsXG4gIFwiU3Vic2V0Q291bnRcIixcbiAgXCJTdWJzZXRFcXVhbFwiLFxuICBcIlN1YnNldE1hcFwiLFxuICBcIlN1YnNldFBvc2l0aW9uXCIsXG4gIFwiU3Vic2V0UVwiLFxuICBcIlN1YnNldFJlcGxhY2VcIixcbiAgXCJTdWJzZXRzXCIsXG4gIFwiU3ViU3RhclwiLFxuICBcIlN1YnN0aXR1dGlvblN5c3RlbVwiLFxuICBcIlN1YnN1cGVyc2NyaXB0XCIsXG4gIFwiU3Vic3VwZXJzY3JpcHRCb3hcIixcbiAgXCJTdWJzdXBlcnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJTdWJ0aXRsZUVuY29kaW5nXCIsXG4gIFwiU3VidGl0bGVUcmFja1NlbGVjdGlvblwiLFxuICBcIlN1YnRyYWN0XCIsXG4gIFwiU3VidHJhY3RGcm9tXCIsXG4gIFwiU3VidHJhY3RTaWRlc1wiLFxuICBcIlN1YlZhbHVlc1wiLFxuICBcIlN1Y2NlZWRzXCIsXG4gIFwiU3VjY2VlZHNFcXVhbFwiLFxuICBcIlN1Y2NlZWRzU2xhbnRFcXVhbFwiLFxuICBcIlN1Y2NlZWRzVGlsZGVcIixcbiAgXCJTdWNjZXNzXCIsXG4gIFwiU3VjaFRoYXRcIixcbiAgXCJTdW1cIixcbiAgXCJTdW1Db252ZXJnZW5jZVwiLFxuICBcIlN1bW1hdGlvbkxheWVyXCIsXG4gIFwiU3VuZGF5XCIsXG4gIFwiU3VuUG9zaXRpb25cIixcbiAgXCJTdW5yaXNlXCIsXG4gIFwiU3Vuc2V0XCIsXG4gIFwiU3VwZXJEYWdnZXJcIixcbiAgXCJTdXBlck1pbnVzXCIsXG4gIFwiU3VwZXJub3ZhRGF0YVwiLFxuICBcIlN1cGVyUGx1c1wiLFxuICBcIlN1cGVyc2NyaXB0XCIsXG4gIFwiU3VwZXJzY3JpcHRCb3hcIixcbiAgXCJTdXBlcnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJTdXBlcnNldFwiLFxuICBcIlN1cGVyc2V0RXF1YWxcIixcbiAgXCJTdXBlclN0YXJcIixcbiAgXCJTdXJkXCIsXG4gIFwiU3VyZEZvcm1cIixcbiAgXCJTdXJmYWNlQXBwZWFyYW5jZVwiLFxuICBcIlN1cmZhY2VBcmVhXCIsXG4gIFwiU3VyZmFjZUNvbG9yXCIsXG4gIFwiU3VyZmFjZURhdGFcIixcbiAgXCJTdXJmYWNlR3JhcGhpY3NcIixcbiAgXCJTdXJ2aXZhbERpc3RyaWJ1dGlvblwiLFxuICBcIlN1cnZpdmFsRnVuY3Rpb25cIixcbiAgXCJTdXJ2aXZhbE1vZGVsXCIsXG4gIFwiU3Vydml2YWxNb2RlbEZpdFwiLFxuICBcIlN1c3BlbmRQYWNrZXRcIixcbiAgXCJTdXp1a2lEaXN0cmlidXRpb25cIixcbiAgXCJTdXp1a2lHcm91cFN1elwiLFxuICBcIlN3YXRjaExlZ2VuZFwiLFxuICBcIlN3aXRjaFwiLFxuICBcIlN5bWJvbFwiLFxuICBcIlN5bWJvbE5hbWVcIixcbiAgXCJTeW1sZXRXYXZlbGV0XCIsXG4gIFwiU3ltbWV0cmljXCIsXG4gIFwiU3ltbWV0cmljRGlmZmVyZW5jZVwiLFxuICBcIlN5bW1ldHJpY0dyb3VwXCIsXG4gIFwiU3ltbWV0cmljS2V5XCIsXG4gIFwiU3ltbWV0cmljTWF0cml4UVwiLFxuICBcIlN5bW1ldHJpY1BvbHlub21pYWxcIixcbiAgXCJTeW1tZXRyaWNSZWR1Y3Rpb25cIixcbiAgXCJTeW1tZXRyaXplXCIsXG4gIFwiU3ltbWV0cml6ZWRBcnJheVwiLFxuICBcIlN5bW1ldHJpemVkQXJyYXlSdWxlc1wiLFxuICBcIlN5bW1ldHJpemVkRGVwZW5kZW50Q29tcG9uZW50c1wiLFxuICBcIlN5bW1ldHJpemVkSW5kZXBlbmRlbnRDb21wb25lbnRzXCIsXG4gIFwiU3ltbWV0cml6ZWRSZXBsYWNlUGFydFwiLFxuICBcIlN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb25cIixcbiAgXCJTeW5jaHJvbm91c1VwZGF0aW5nXCIsXG4gIFwiU3lub255bXNcIixcbiAgXCJTeW50YXhcIixcbiAgXCJTeW50YXhGb3JtXCIsXG4gIFwiU3ludGF4SW5mb3JtYXRpb25cIixcbiAgXCJTeW50YXhMZW5ndGhcIixcbiAgXCJTeW50YXhQYWNrZXRcIixcbiAgXCJTeW50YXhRXCIsXG4gIFwiU3ludGhlc2l6ZU1pc3NpbmdWYWx1ZXNcIixcbiAgXCJTeXN0ZW1DcmVkZW50aWFsXCIsXG4gIFwiU3lzdGVtQ3JlZGVudGlhbERhdGFcIixcbiAgXCJTeXN0ZW1DcmVkZW50aWFsS2V5XCIsXG4gIFwiU3lzdGVtQ3JlZGVudGlhbEtleXNcIixcbiAgXCJTeXN0ZW1DcmVkZW50aWFsU3RvcmVPYmplY3RcIixcbiAgXCJTeXN0ZW1EaWFsb2dJbnB1dFwiLFxuICBcIlN5c3RlbUV4Y2VwdGlvblwiLFxuICBcIlN5c3RlbUdldFwiLFxuICBcIlN5c3RlbUhlbHBQYXRoXCIsXG4gIFwiU3lzdGVtSW5mb3JtYXRpb25cIixcbiAgXCJTeXN0ZW1JbmZvcm1hdGlvbkRhdGFcIixcbiAgXCJTeXN0ZW1JbnN0YWxsXCIsXG4gIFwiU3lzdGVtTW9kZWxcIixcbiAgXCJTeXN0ZW1Nb2RlbGVyXCIsXG4gIFwiU3lzdGVtTW9kZWxFeGFtcGxlc1wiLFxuICBcIlN5c3RlbU1vZGVsTGluZWFyaXplXCIsXG4gIFwiU3lzdGVtTW9kZWxNZWFzdXJlbWVudHNcIixcbiAgXCJTeXN0ZW1Nb2RlbFBhcmFtZXRyaWNTaW11bGF0ZVwiLFxuICBcIlN5c3RlbU1vZGVsUGxvdFwiLFxuICBcIlN5c3RlbU1vZGVsUHJvZ3Jlc3NSZXBvcnRpbmdcIixcbiAgXCJTeXN0ZW1Nb2RlbFJlbGlhYmlsaXR5XCIsXG4gIFwiU3lzdGVtTW9kZWxzXCIsXG4gIFwiU3lzdGVtTW9kZWxTaW11bGF0ZVwiLFxuICBcIlN5c3RlbU1vZGVsU2ltdWxhdGVTZW5zaXRpdml0eVwiLFxuICBcIlN5c3RlbU1vZGVsU2ltdWxhdGlvbkRhdGFcIixcbiAgXCJTeXN0ZW1PcGVuXCIsXG4gIFwiU3lzdGVtT3B0aW9uc1wiLFxuICBcIlN5c3RlbVByb2Nlc3NEYXRhXCIsXG4gIFwiU3lzdGVtUHJvY2Vzc2VzXCIsXG4gIFwiU3lzdGVtc0Nvbm5lY3Rpb25zTW9kZWxcIixcbiAgXCJTeXN0ZW1zTW9kZWxDb250cm9sbGVyRGF0YVwiLFxuICBcIlN5c3RlbXNNb2RlbERlbGF5XCIsXG4gIFwiU3lzdGVtc01vZGVsRGVsYXlBcHByb3hpbWF0ZVwiLFxuICBcIlN5c3RlbXNNb2RlbERlbGV0ZVwiLFxuICBcIlN5c3RlbXNNb2RlbERpbWVuc2lvbnNcIixcbiAgXCJTeXN0ZW1zTW9kZWxFeHRyYWN0XCIsXG4gIFwiU3lzdGVtc01vZGVsRmVlZGJhY2tDb25uZWN0XCIsXG4gIFwiU3lzdGVtc01vZGVsTGFiZWxzXCIsXG4gIFwiU3lzdGVtc01vZGVsTGluZWFyaXR5XCIsXG4gIFwiU3lzdGVtc01vZGVsTWVyZ2VcIixcbiAgXCJTeXN0ZW1zTW9kZWxPcmRlclwiLFxuICBcIlN5c3RlbXNNb2RlbFBhcmFsbGVsQ29ubmVjdFwiLFxuICBcIlN5c3RlbXNNb2RlbFNlcmllc0Nvbm5lY3RcIixcbiAgXCJTeXN0ZW1zTW9kZWxTdGF0ZUZlZWRiYWNrQ29ubmVjdFwiLFxuICBcIlN5c3RlbXNNb2RlbFZlY3RvclJlbGF0aXZlT3JkZXJzXCIsXG4gIFwiU3lzdGVtU3R1YlwiLFxuICBcIlN5c3RlbVRlc3RcIixcbiAgXCJUYWJcIixcbiAgXCJUYWJGaWxsaW5nXCIsXG4gIFwiVGFibGVcIixcbiAgXCJUYWJsZUFsaWdubWVudHNcIixcbiAgXCJUYWJsZURlcHRoXCIsXG4gIFwiVGFibGVEaXJlY3Rpb25zXCIsXG4gIFwiVGFibGVGb3JtXCIsXG4gIFwiVGFibGVIZWFkaW5nc1wiLFxuICBcIlRhYmxlU3BhY2luZ1wiLFxuICBcIlRhYmxlVmlld1wiLFxuICBcIlRhYmxlVmlld0JveFwiLFxuICBcIlRhYmxlVmlld0JveEFsaWdubWVudFwiLFxuICBcIlRhYmxlVmlld0JveEJhY2tncm91bmRcIixcbiAgXCJUYWJsZVZpZXdCb3hIZWFkZXJzXCIsXG4gIFwiVGFibGVWaWV3Qm94SXRlbVNpemVcIixcbiAgXCJUYWJsZVZpZXdCb3hJdGVtU3R5bGVcIixcbiAgXCJUYWJsZVZpZXdCb3hPcHRpb25zXCIsXG4gIFwiVGFiU3BhY2luZ3NcIixcbiAgXCJUYWJWaWV3XCIsXG4gIFwiVGFiVmlld0JveFwiLFxuICBcIlRhYlZpZXdCb3hPcHRpb25zXCIsXG4gIFwiVGFnQm94XCIsXG4gIFwiVGFnQm94Tm90ZVwiLFxuICBcIlRhZ0JveE9wdGlvbnNcIixcbiAgXCJUYWdnaW5nUnVsZXNcIixcbiAgXCJUYWdTZXRcIixcbiAgXCJUYWdTZXREZWxheWVkXCIsXG4gIFwiVGFnU3R5bGVcIixcbiAgXCJUYWdVbnNldFwiLFxuICBcIlRha2VcIixcbiAgXCJUYWtlRHJvcFwiLFxuICBcIlRha2VMYXJnZXN0XCIsXG4gIFwiVGFrZUxhcmdlc3RCeVwiLFxuICBcIlRha2VMaXN0XCIsXG4gIFwiVGFrZVNtYWxsZXN0XCIsXG4gIFwiVGFrZVNtYWxsZXN0QnlcIixcbiAgXCJUYWtlV2hpbGVcIixcbiAgXCJUYWxseVwiLFxuICBcIlRhblwiLFxuICBcIlRhbmhcIixcbiAgXCJUYXJnZXREZXZpY2VcIixcbiAgXCJUYXJnZXRGdW5jdGlvbnNcIixcbiAgXCJUYXJnZXRTeXN0ZW1cIixcbiAgXCJUYXJnZXRVbml0c1wiLFxuICBcIlRhc2tBYm9ydFwiLFxuICBcIlRhc2tFeGVjdXRlXCIsXG4gIFwiVGFza09iamVjdFwiLFxuICBcIlRhc2tSZW1vdmVcIixcbiAgXCJUYXNrUmVzdW1lXCIsXG4gIFwiVGFza3NcIixcbiAgXCJUYXNrU3VzcGVuZFwiLFxuICBcIlRhc2tXYWl0XCIsXG4gIFwiVGF1dG9sb2d5UVwiLFxuICBcIlRlbGVncmFwaFByb2Nlc3NcIixcbiAgXCJUZW1wbGF0ZUFwcGx5XCIsXG4gIFwiVGVtcGxhdGVBcmdCb3hcIixcbiAgXCJUZW1wbGF0ZUJveFwiLFxuICBcIlRlbXBsYXRlQm94T3B0aW9uc1wiLFxuICBcIlRlbXBsYXRlRXZhbHVhdGVcIixcbiAgXCJUZW1wbGF0ZUV4cHJlc3Npb25cIixcbiAgXCJUZW1wbGF0ZUlmXCIsXG4gIFwiVGVtcGxhdGVPYmplY3RcIixcbiAgXCJUZW1wbGF0ZVNlcXVlbmNlXCIsXG4gIFwiVGVtcGxhdGVTbG90XCIsXG4gIFwiVGVtcGxhdGVTbG90U2VxdWVuY2VcIixcbiAgXCJUZW1wbGF0ZVVuZXZhbHVhdGVkXCIsXG4gIFwiVGVtcGxhdGVWZXJiYXRpbVwiLFxuICBcIlRlbXBsYXRlV2l0aFwiLFxuICBcIlRlbXBvcmFsRGF0YVwiLFxuICBcIlRlbXBvcmFsUmVndWxhcml0eVwiLFxuICBcIlRlbXBvcmFyeVwiLFxuICBcIlRlbXBvcmFyeVZhcmlhYmxlXCIsXG4gIFwiVGVuc29yQ29udHJhY3RcIixcbiAgXCJUZW5zb3JEaW1lbnNpb25zXCIsXG4gIFwiVGVuc29yRXhwYW5kXCIsXG4gIFwiVGVuc29yUHJvZHVjdFwiLFxuICBcIlRlbnNvclFcIixcbiAgXCJUZW5zb3JSYW5rXCIsXG4gIFwiVGVuc29yUmVkdWNlXCIsXG4gIFwiVGVuc29yU3ltbWV0cnlcIixcbiAgXCJUZW5zb3JUcmFuc3Bvc2VcIixcbiAgXCJUZW5zb3JXZWRnZVwiLFxuICBcIlRlcm1pbmF0ZWRFdmFsdWF0aW9uXCIsXG4gIFwiVGVybmFyeUxpc3RQbG90XCIsXG4gIFwiVGVybmFyeVBsb3RDb3JuZXJzXCIsXG4gIFwiVGVzdElEXCIsXG4gIFwiVGVzdFJlcG9ydFwiLFxuICBcIlRlc3RSZXBvcnRPYmplY3RcIixcbiAgXCJUZXN0UmVzdWx0T2JqZWN0XCIsXG4gIFwiVGV0cmFoZWRyb25cIixcbiAgXCJUZXRyYWhlZHJvbkJveFwiLFxuICBcIlRldHJhaGVkcm9uQm94T3B0aW9uc1wiLFxuICBcIlRlWEZvcm1cIixcbiAgXCJUZVhTYXZlXCIsXG4gIFwiVGV4dFwiLFxuICBcIlRleHQzREJveFwiLFxuICBcIlRleHQzREJveE9wdGlvbnNcIixcbiAgXCJUZXh0QWxpZ25tZW50XCIsXG4gIFwiVGV4dEJhbmRcIixcbiAgXCJUZXh0Qm91bmRpbmdCb3hcIixcbiAgXCJUZXh0Qm94XCIsXG4gIFwiVGV4dENhc2VzXCIsXG4gIFwiVGV4dENlbGxcIixcbiAgXCJUZXh0Q2xpcGJvYXJkVHlwZVwiLFxuICBcIlRleHRDb250ZW50c1wiLFxuICBcIlRleHREYXRhXCIsXG4gIFwiVGV4dEVsZW1lbnRcIixcbiAgXCJUZXh0Rm9ybVwiLFxuICBcIlRleHRHcmlkXCIsXG4gIFwiVGV4dEp1c3RpZmljYXRpb25cIixcbiAgXCJUZXh0TGluZVwiLFxuICBcIlRleHRQYWNrZXRcIixcbiAgXCJUZXh0UGFyYWdyYXBoXCIsXG4gIFwiVGV4dFBvc2l0aW9uXCIsXG4gIFwiVGV4dFJlY29nbml6ZVwiLFxuICBcIlRleHRTZWFyY2hcIixcbiAgXCJUZXh0U2VhcmNoUmVwb3J0XCIsXG4gIFwiVGV4dFNlbnRlbmNlc1wiLFxuICBcIlRleHRTdHJpbmdcIixcbiAgXCJUZXh0U3RydWN0dXJlXCIsXG4gIFwiVGV4dFN0eWxlXCIsXG4gIFwiVGV4dFRyYW5zbGF0aW9uXCIsXG4gIFwiVGV4dHVyZVwiLFxuICBcIlRleHR1cmVDb29yZGluYXRlRnVuY3Rpb25cIixcbiAgXCJUZXh0dXJlQ29vcmRpbmF0ZVNjYWxpbmdcIixcbiAgXCJUZXh0V29yZHNcIixcbiAgXCJUaGVyZWZvcmVcIixcbiAgXCJUaGVybW9keW5hbWljRGF0YVwiLFxuICBcIlRoZXJtb21ldGVyR2F1Z2VcIixcbiAgXCJUaGlja1wiLFxuICBcIlRoaWNrbmVzc1wiLFxuICBcIlRoaW5cIixcbiAgXCJUaGlubmluZ1wiLFxuICBcIlRoaXNMaW5rXCIsXG4gIFwiVGhvbWFzUG9pbnRQcm9jZXNzXCIsXG4gIFwiVGhvbXBzb25Hcm91cFRoXCIsXG4gIFwiVGhyZWFkXCIsXG4gIFwiVGhyZWFkZWRcIixcbiAgXCJUaHJlYWRpbmdMYXllclwiLFxuICBcIlRocmVlSlN5bWJvbFwiLFxuICBcIlRocmVzaG9sZFwiLFxuICBcIlRocm91Z2hcIixcbiAgXCJUaHJvd1wiLFxuICBcIlRodWVNb3JzZVwiLFxuICBcIlRodW1ibmFpbFwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiVGlja0RpcmVjdGlvblwiLFxuICBcIlRpY2tMYWJlbE9yaWVudGF0aW9uXCIsXG4gIFwiVGlja0xhYmVsUG9zaXRpb25pbmdcIixcbiAgXCJUaWNrTGFiZWxzXCIsXG4gIFwiVGlja0xlbmd0aHNcIixcbiAgXCJUaWNrUG9zaXRpb25zXCIsXG4gIFwiVGlja3NcIixcbiAgXCJUaWNrc1N0eWxlXCIsXG4gIFwiVGlkZURhdGFcIixcbiAgXCJUaWxkZVwiLFxuICBcIlRpbGRlRXF1YWxcIixcbiAgXCJUaWxkZUZ1bGxFcXVhbFwiLFxuICBcIlRpbGRlVGlsZGVcIixcbiAgXCJUaW1lQ29uc3RyYWluZWRcIixcbiAgXCJUaW1lQ29uc3RyYWludFwiLFxuICBcIlRpbWVEaXJlY3Rpb25cIixcbiAgXCJUaW1lRm9ybWF0XCIsXG4gIFwiVGltZUdvYWxcIixcbiAgXCJUaW1lbGluZVBsb3RcIixcbiAgXCJUaW1lT2JqZWN0XCIsXG4gIFwiVGltZU9iamVjdFFcIixcbiAgXCJUaW1lUmVtYWluaW5nXCIsXG4gIFwiVGltZXNcIixcbiAgXCJUaW1lc0J5XCIsXG4gIFwiVGltZVNlcmllc1wiLFxuICBcIlRpbWVTZXJpZXNBZ2dyZWdhdGVcIixcbiAgXCJUaW1lU2VyaWVzRm9yZWNhc3RcIixcbiAgXCJUaW1lU2VyaWVzSW5zZXJ0XCIsXG4gIFwiVGltZVNlcmllc0ludmVydGliaWxpdHlcIixcbiAgXCJUaW1lU2VyaWVzTWFwXCIsXG4gIFwiVGltZVNlcmllc01hcFRocmVhZFwiLFxuICBcIlRpbWVTZXJpZXNNb2RlbFwiLFxuICBcIlRpbWVTZXJpZXNNb2RlbEZpdFwiLFxuICBcIlRpbWVTZXJpZXNSZXNhbXBsZVwiLFxuICBcIlRpbWVTZXJpZXNSZXNjYWxlXCIsXG4gIFwiVGltZVNlcmllc1NoaWZ0XCIsXG4gIFwiVGltZVNlcmllc1RocmVhZFwiLFxuICBcIlRpbWVTZXJpZXNXaW5kb3dcIixcbiAgXCJUaW1lU3lzdGVtXCIsXG4gIFwiVGltZVN5c3RlbUNvbnZlcnRcIixcbiAgXCJUaW1lVXNlZFwiLFxuICBcIlRpbWVWYWx1ZVwiLFxuICBcIlRpbWVXYXJwaW5nQ29ycmVzcG9uZGVuY2VcIixcbiAgXCJUaW1lV2FycGluZ0Rpc3RhbmNlXCIsXG4gIFwiVGltZVpvbmVcIixcbiAgXCJUaW1lWm9uZUNvbnZlcnRcIixcbiAgXCJUaW1lWm9uZU9mZnNldFwiLFxuICBcIlRpbWluZ1wiLFxuICBcIlRpbnlcIixcbiAgXCJUaXRsZUdyb3VwaW5nXCIsXG4gIFwiVGl0c0dyb3VwVFwiLFxuICBcIlRvQm94ZXNcIixcbiAgXCJUb0NoYXJhY3RlckNvZGVcIixcbiAgXCJUb0NvbG9yXCIsXG4gIFwiVG9Db250aW51b3VzVGltZU1vZGVsXCIsXG4gIFwiVG9EYXRlXCIsXG4gIFwiVG9kYXlcIixcbiAgXCJUb0Rpc2NyZXRlVGltZU1vZGVsXCIsXG4gIFwiVG9FbnRpdHlcIixcbiAgXCJUb2VwbGl0ek1hdHJpeFwiLFxuICBcIlRvRXhwcmVzc2lvblwiLFxuICBcIlRvRmlsZU5hbWVcIixcbiAgXCJUb2dldGhlclwiLFxuICBcIlRvZ2dsZVwiLFxuICBcIlRvZ2dsZUZhbHNlXCIsXG4gIFwiVG9nZ2xlclwiLFxuICBcIlRvZ2dsZXJCYXJcIixcbiAgXCJUb2dnbGVyQm94XCIsXG4gIFwiVG9nZ2xlckJveE9wdGlvbnNcIixcbiAgXCJUb0hlbGRFeHByZXNzaW9uXCIsXG4gIFwiVG9JbnZlcnRpYmxlVGltZVNlcmllc1wiLFxuICBcIlRva2VuV29yZHNcIixcbiAgXCJUb2xlcmFuY2VcIixcbiAgXCJUb0xvd2VyQ2FzZVwiLFxuICBcIlRvbW9ycm93XCIsXG4gIFwiVG9OdW1iZXJGaWVsZFwiLFxuICBcIlRvb0JpZ1wiLFxuICBcIlRvb2x0aXBcIixcbiAgXCJUb29sdGlwQm94XCIsXG4gIFwiVG9vbHRpcEJveE9wdGlvbnNcIixcbiAgXCJUb29sdGlwRGVsYXlcIixcbiAgXCJUb29sdGlwU3R5bGVcIixcbiAgXCJUb29uU2hhZGluZ1wiLFxuICBcIlRvcFwiLFxuICBcIlRvcEhhdFRyYW5zZm9ybVwiLFxuICBcIlRvUG9sYXJDb29yZGluYXRlc1wiLFxuICBcIlRvcG9sb2dpY2FsU29ydFwiLFxuICBcIlRvUmFkaWNhbHNcIixcbiAgXCJUb1Jhd1BvaW50ZXJcIixcbiAgXCJUb1J1bGVzXCIsXG4gIFwiVG9ydXNcIixcbiAgXCJUb3J1c0dyYXBoXCIsXG4gIFwiVG9TcGhlcmljYWxDb29yZGluYXRlc1wiLFxuICBcIlRvU3RyaW5nXCIsXG4gIFwiVG90YWxcIixcbiAgXCJUb3RhbEhlaWdodFwiLFxuICBcIlRvdGFsTGF5ZXJcIixcbiAgXCJUb3RhbFZhcmlhdGlvbkZpbHRlclwiLFxuICBcIlRvdGFsV2lkdGhcIixcbiAgXCJUb3VjaFBvc2l0aW9uXCIsXG4gIFwiVG91Y2hzY3JlZW5BdXRvWm9vbVwiLFxuICBcIlRvdWNoc2NyZWVuQ29udHJvbFBsYWNlbWVudFwiLFxuICBcIlRvVXBwZXJDYXNlXCIsXG4gIFwiVG91clZpZGVvXCIsXG4gIFwiVHJcIixcbiAgXCJUcmFjZVwiLFxuICBcIlRyYWNlQWJvdmVcIixcbiAgXCJUcmFjZUFjdGlvblwiLFxuICBcIlRyYWNlQmFja3dhcmRcIixcbiAgXCJUcmFjZURlcHRoXCIsXG4gIFwiVHJhY2VEaWFsb2dcIixcbiAgXCJUcmFjZUZvcndhcmRcIixcbiAgXCJUcmFjZUludGVybmFsXCIsXG4gIFwiVHJhY2VMZXZlbFwiLFxuICBcIlRyYWNlT2ZmXCIsXG4gIFwiVHJhY2VPblwiLFxuICBcIlRyYWNlT3JpZ2luYWxcIixcbiAgXCJUcmFjZVByaW50XCIsXG4gIFwiVHJhY2VTY2FuXCIsXG4gIFwiVHJhY2tDZWxsQ2hhbmdlVGltZXNcIixcbiAgXCJUcmFja2VkU3ltYm9sc1wiLFxuICBcIlRyYWNraW5nRnVuY3Rpb25cIixcbiAgXCJUcmFjeVdpZG9tRGlzdHJpYnV0aW9uXCIsXG4gIFwiVHJhZGluZ0NoYXJ0XCIsXG4gIFwiVHJhZGl0aW9uYWxGb3JtXCIsXG4gIFwiVHJhZGl0aW9uYWxGdW5jdGlvbk5vdGF0aW9uXCIsXG4gIFwiVHJhZGl0aW9uYWxOb3RhdGlvblwiLFxuICBcIlRyYWRpdGlvbmFsT3JkZXJcIixcbiAgXCJUcmFpbkltYWdlQ29udGVudERldGVjdG9yXCIsXG4gIFwiVHJhaW5pbmdQcm9ncmVzc0NoZWNrcG9pbnRpbmdcIixcbiAgXCJUcmFpbmluZ1Byb2dyZXNzRnVuY3Rpb25cIixcbiAgXCJUcmFpbmluZ1Byb2dyZXNzTWVhc3VyZW1lbnRzXCIsXG4gIFwiVHJhaW5pbmdQcm9ncmVzc1JlcG9ydGluZ1wiLFxuICBcIlRyYWluaW5nU3RvcHBpbmdDcml0ZXJpb25cIixcbiAgXCJUcmFpbmluZ1VwZGF0ZVNjaGVkdWxlXCIsXG4gIFwiVHJhaW5UZXh0Q29udGVudERldGVjdG9yXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvbkNhbmNlbFwiLFxuICBcIlRyYW5zZmVyRnVuY3Rpb25FeHBhbmRcIixcbiAgXCJUcmFuc2ZlckZ1bmN0aW9uRmFjdG9yXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvbk1vZGVsXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvblBvbGVzXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvblRyYW5zZm9ybVwiLFxuICBcIlRyYW5zZmVyRnVuY3Rpb25aZXJvc1wiLFxuICBcIlRyYW5zZm9ybWF0aW9uQ2xhc3NcIixcbiAgXCJUcmFuc2Zvcm1hdGlvbkZ1bmN0aW9uXCIsXG4gIFwiVHJhbnNmb3JtYXRpb25GdW5jdGlvbnNcIixcbiAgXCJUcmFuc2Zvcm1hdGlvbk1hdHJpeFwiLFxuICBcIlRyYW5zZm9ybWVkRGlzdHJpYnV0aW9uXCIsXG4gIFwiVHJhbnNmb3JtZWRGaWVsZFwiLFxuICBcIlRyYW5zZm9ybWVkUHJvY2Vzc1wiLFxuICBcIlRyYW5zZm9ybWVkUmVnaW9uXCIsXG4gIFwiVHJhbnNpdGlvbkRpcmVjdGlvblwiLFxuICBcIlRyYW5zaXRpb25EdXJhdGlvblwiLFxuICBcIlRyYW5zaXRpb25FZmZlY3RcIixcbiAgXCJUcmFuc2l0aXZlQ2xvc3VyZUdyYXBoXCIsXG4gIFwiVHJhbnNpdGl2ZVJlZHVjdGlvbkdyYXBoXCIsXG4gIFwiVHJhbnNsYXRlXCIsXG4gIFwiVHJhbnNsYXRpb25PcHRpb25zXCIsXG4gIFwiVHJhbnNsYXRpb25UcmFuc2Zvcm1cIixcbiAgXCJUcmFuc2xpdGVyYXRlXCIsXG4gIFwiVHJhbnNwYXJlbnRcIixcbiAgXCJUcmFuc3BhcmVudENvbG9yXCIsXG4gIFwiVHJhbnNwb3NlXCIsXG4gIFwiVHJhbnNwb3NlTGF5ZXJcIixcbiAgXCJUcmFwRW50ZXJLZXlcIixcbiAgXCJUcmFwU2VsZWN0aW9uXCIsXG4gIFwiVHJhdmVsRGlyZWN0aW9uc1wiLFxuICBcIlRyYXZlbERpcmVjdGlvbnNEYXRhXCIsXG4gIFwiVHJhdmVsRGlzdGFuY2VcIixcbiAgXCJUcmF2ZWxEaXN0YW5jZUxpc3RcIixcbiAgXCJUcmF2ZWxNZXRob2RcIixcbiAgXCJUcmF2ZWxUaW1lXCIsXG4gIFwiVHJlZVwiLFxuICBcIlRyZWVDYXNlc1wiLFxuICBcIlRyZWVDaGlsZHJlblwiLFxuICBcIlRyZWVDb3VudFwiLFxuICBcIlRyZWVEYXRhXCIsXG4gIFwiVHJlZURlbGV0ZVwiLFxuICBcIlRyZWVEZXB0aFwiLFxuICBcIlRyZWVFbGVtZW50Q29vcmRpbmF0ZXNcIixcbiAgXCJUcmVlRWxlbWVudExhYmVsXCIsXG4gIFwiVHJlZUVsZW1lbnRMYWJlbEZ1bmN0aW9uXCIsXG4gIFwiVHJlZUVsZW1lbnRMYWJlbFN0eWxlXCIsXG4gIFwiVHJlZUVsZW1lbnRTaGFwZVwiLFxuICBcIlRyZWVFbGVtZW50U2hhcGVGdW5jdGlvblwiLFxuICBcIlRyZWVFbGVtZW50U2l6ZVwiLFxuICBcIlRyZWVFbGVtZW50U2l6ZUZ1bmN0aW9uXCIsXG4gIFwiVHJlZUVsZW1lbnRTdHlsZVwiLFxuICBcIlRyZWVFbGVtZW50U3R5bGVGdW5jdGlvblwiLFxuICBcIlRyZWVFeHByZXNzaW9uXCIsXG4gIFwiVHJlZUV4dHJhY3RcIixcbiAgXCJUcmVlRm9sZFwiLFxuICBcIlRyZWVGb3JtXCIsXG4gIFwiVHJlZUdyYXBoXCIsXG4gIFwiVHJlZUdyYXBoUVwiLFxuICBcIlRyZWVJbnNlcnRcIixcbiAgXCJUcmVlTGF5b3V0XCIsXG4gIFwiVHJlZUxlYWZDb3VudFwiLFxuICBcIlRyZWVMZWFmUVwiLFxuICBcIlRyZWVMZWF2ZXNcIixcbiAgXCJUcmVlTGV2ZWxcIixcbiAgXCJUcmVlTWFwXCIsXG4gIFwiVHJlZU1hcEF0XCIsXG4gIFwiVHJlZU91dGxpbmVcIixcbiAgXCJUcmVlUGxvdFwiLFxuICBcIlRyZWVQb3NpdGlvblwiLFxuICBcIlRyZWVRXCIsXG4gIFwiVHJlZVJlcGxhY2VQYXJ0XCIsXG4gIFwiVHJlZVJ1bGVzXCIsXG4gIFwiVHJlZVNjYW5cIixcbiAgXCJUcmVlU2VsZWN0XCIsXG4gIFwiVHJlZVNpemVcIixcbiAgXCJUcmVlVHJhdmVyc2FsT3JkZXJcIixcbiAgXCJUcmVuZFN0eWxlXCIsXG4gIFwiVHJpYW5nbGVcIixcbiAgXCJUcmlhbmdsZUNlbnRlclwiLFxuICBcIlRyaWFuZ2xlQ29uc3RydWN0XCIsXG4gIFwiVHJpYW5nbGVNZWFzdXJlbWVudFwiLFxuICBcIlRyaWFuZ2xlV2F2ZVwiLFxuICBcIlRyaWFuZ3VsYXJEaXN0cmlidXRpb25cIixcbiAgXCJUcmlhbmd1bGF0ZU1lc2hcIixcbiAgXCJUcmlnXCIsXG4gIFwiVHJpZ0V4cGFuZFwiLFxuICBcIlRyaWdGYWN0b3JcIixcbiAgXCJUcmlnRmFjdG9yTGlzdFwiLFxuICBcIlRyaWdnZXJcIixcbiAgXCJUcmlnUmVkdWNlXCIsXG4gIFwiVHJpZ1RvRXhwXCIsXG4gIFwiVHJpbW1lZE1lYW5cIixcbiAgXCJUcmltbWVkVmFyaWFuY2VcIixcbiAgXCJUcm9waWNhbFN0b3JtRGF0YVwiLFxuICBcIlRydWVcIixcbiAgXCJUcnVlUVwiLFxuICBcIlRydW5jYXRlZERpc3RyaWJ1dGlvblwiLFxuICBcIlRydW5jYXRlZFBvbHloZWRyb25cIixcbiAgXCJUc2FsbGlzUUV4cG9uZW50aWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiVHNhbGxpc1FHYXVzc2lhbkRpc3RyaWJ1dGlvblwiLFxuICBcIlRUZXN0XCIsXG4gIFwiVHViZVwiLFxuICBcIlR1YmVCZXppZXJDdXJ2ZUJveFwiLFxuICBcIlR1YmVCZXppZXJDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJUdWJlQm94XCIsXG4gIFwiVHViZUJveE9wdGlvbnNcIixcbiAgXCJUdWJlQlNwbGluZUN1cnZlQm94XCIsXG4gIFwiVHViZUJTcGxpbmVDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiVHVrZXlMYW1iZGFEaXN0cmlidXRpb25cIixcbiAgXCJUdWtleVdpbmRvd1wiLFxuICBcIlR1bm5lbERhdGFcIixcbiAgXCJUdXBsZXNcIixcbiAgXCJUdXJhbkdyYXBoXCIsXG4gIFwiVHVyaW5nTWFjaGluZVwiLFxuICBcIlR1dHRlUG9seW5vbWlhbFwiLFxuICBcIlR3b1dheVJ1bGVcIixcbiAgXCJUeXBlZFwiLFxuICBcIlR5cGVEZWNsYXJhdGlvblwiLFxuICBcIlR5cGVFdmFsdWF0ZVwiLFxuICBcIlR5cGVIaW50XCIsXG4gIFwiVHlwZU9mXCIsXG4gIFwiVHlwZVNwZWNpZmllclwiLFxuICBcIlVuYXRlUVwiLFxuICBcIlVuY29tcHJlc3NcIixcbiAgXCJVbmNvbnN0cmFpbmVkUGFyYW1ldGVyc1wiLFxuICBcIlVuZGVmaW5lZFwiLFxuICBcIlVuZGVyQmFyXCIsXG4gIFwiVW5kZXJmbG93XCIsXG4gIFwiVW5kZXJsaW5lZFwiLFxuICBcIlVuZGVyb3ZlcnNjcmlwdFwiLFxuICBcIlVuZGVyb3ZlcnNjcmlwdEJveFwiLFxuICBcIlVuZGVyb3ZlcnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJVbmRlcnNjcmlwdFwiLFxuICBcIlVuZGVyc2NyaXB0Qm94XCIsXG4gIFwiVW5kZXJzY3JpcHRCb3hPcHRpb25zXCIsXG4gIFwiVW5kZXJzZWFGZWF0dXJlRGF0YVwiLFxuICBcIlVuZGlyZWN0ZWRFZGdlXCIsXG4gIFwiVW5kaXJlY3RlZEdyYXBoXCIsXG4gIFwiVW5kaXJlY3RlZEdyYXBoUVwiLFxuICBcIlVuZG9PcHRpb25zXCIsXG4gIFwiVW5kb1RyYWNrZWRWYXJpYWJsZXNcIixcbiAgXCJVbmVxdWFsXCIsXG4gIFwiVW5lcXVhbFRvXCIsXG4gIFwiVW5ldmFsdWF0ZWRcIixcbiAgXCJVbmlmb3JtRGlzdHJpYnV0aW9uXCIsXG4gIFwiVW5pZm9ybUdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiVW5pZm9ybVBvbHloZWRyb25cIixcbiAgXCJVbmlmb3JtU3VtRGlzdHJpYnV0aW9uXCIsXG4gIFwiVW5pbnN0YWxsXCIsXG4gIFwiVW5pb25cIixcbiAgXCJVbmlvbmVkRW50aXR5Q2xhc3NcIixcbiAgXCJVbmlvblBsdXNcIixcbiAgXCJVbmlxdWVcIixcbiAgXCJVbmlxdWVFbGVtZW50c1wiLFxuICBcIlVuaXRhcnlNYXRyaXhRXCIsXG4gIFwiVW5pdEJveFwiLFxuICBcIlVuaXRDb252ZXJ0XCIsXG4gIFwiVW5pdERpbWVuc2lvbnNcIixcbiAgXCJVbml0aXplXCIsXG4gIFwiVW5pdFJvb3RUZXN0XCIsXG4gIFwiVW5pdFNpbXBsaWZ5XCIsXG4gIFwiVW5pdFN0ZXBcIixcbiAgXCJVbml0U3lzdGVtXCIsXG4gIFwiVW5pdFRyaWFuZ2xlXCIsXG4gIFwiVW5pdFZlY3RvclwiLFxuICBcIlVuaXRWZWN0b3JMYXllclwiLFxuICBcIlVuaXR5RGltZW5zaW9uc1wiLFxuICBcIlVuaXZlcnNlTW9kZWxEYXRhXCIsXG4gIFwiVW5pdmVyc2l0eURhdGFcIixcbiAgXCJVbml4VGltZVwiLFxuICBcIlVubGFiZWxlZFRyZWVcIixcbiAgXCJVbm1hbmFnZU9iamVjdFwiLFxuICBcIlVucHJvdGVjdFwiLFxuICBcIlVucmVnaXN0ZXJFeHRlcm5hbEV2YWx1YXRvclwiLFxuICBcIlVuc2FtZVFcIixcbiAgXCJVbnNhdmVkVmFyaWFibGVzXCIsXG4gIFwiVW5zZXRcIixcbiAgXCJVbnNldFNoYXJlZFwiLFxuICBcIlVudGlsXCIsXG4gIFwiVW50cmFja2VkVmFyaWFibGVzXCIsXG4gIFwiVXBcIixcbiAgXCJVcEFycm93XCIsXG4gIFwiVXBBcnJvd0JhclwiLFxuICBcIlVwQXJyb3dEb3duQXJyb3dcIixcbiAgXCJVcGRhdGVcIixcbiAgXCJVcGRhdGVEeW5hbWljT2JqZWN0c1wiLFxuICBcIlVwZGF0ZUR5bmFtaWNPYmplY3RzU3luY2hyb25vdXNcIixcbiAgXCJVcGRhdGVJbnRlcnZhbFwiLFxuICBcIlVwZGF0ZVBhY2xldFNpdGVzXCIsXG4gIFwiVXBkYXRlU2VhcmNoSW5kZXhcIixcbiAgXCJVcERvd25BcnJvd1wiLFxuICBcIlVwRXF1aWxpYnJpdW1cIixcbiAgXCJVcHBlckNhc2VRXCIsXG4gIFwiVXBwZXJMZWZ0QXJyb3dcIixcbiAgXCJVcHBlclJpZ2h0QXJyb3dcIixcbiAgXCJVcHBlclRyaWFuZ3VsYXJpemVcIixcbiAgXCJVcHBlclRyaWFuZ3VsYXJNYXRyaXhcIixcbiAgXCJVcHBlclRyaWFuZ3VsYXJNYXRyaXhRXCIsXG4gIFwiVXBzYW1wbGVcIixcbiAgXCJVcFNldFwiLFxuICBcIlVwU2V0RGVsYXllZFwiLFxuICBcIlVwVGVlXCIsXG4gIFwiVXBUZWVBcnJvd1wiLFxuICBcIlVwVG9cIixcbiAgXCJVcFZhbHVlc1wiLFxuICBcIlVSTFwiLFxuICBcIlVSTEJ1aWxkXCIsXG4gIFwiVVJMRGVjb2RlXCIsXG4gIFwiVVJMRGlzcGF0Y2hlclwiLFxuICBcIlVSTERvd25sb2FkXCIsXG4gIFwiVVJMRG93bmxvYWRTdWJtaXRcIixcbiAgXCJVUkxFbmNvZGVcIixcbiAgXCJVUkxFeGVjdXRlXCIsXG4gIFwiVVJMRXhwYW5kXCIsXG4gIFwiVVJMRmV0Y2hcIixcbiAgXCJVUkxGZXRjaEFzeW5jaHJvbm91c1wiLFxuICBcIlVSTFBhcnNlXCIsXG4gIFwiVVJMUXVlcnlEZWNvZGVcIixcbiAgXCJVUkxRdWVyeUVuY29kZVwiLFxuICBcIlVSTFJlYWRcIixcbiAgXCJVUkxSZXNwb25zZVRpbWVcIixcbiAgXCJVUkxTYXZlXCIsXG4gIFwiVVJMU2F2ZUFzeW5jaHJvbm91c1wiLFxuICBcIlVSTFNob3J0ZW5cIixcbiAgXCJVUkxTdWJtaXRcIixcbiAgXCJVc2VFbWJlZGRlZExpYnJhcnlcIixcbiAgXCJVc2VHcmFwaGljc1JhbmdlXCIsXG4gIFwiVXNlckRlZmluZWRXYXZlbGV0XCIsXG4gIFwiVXNpbmdcIixcbiAgXCJVc2luZ0Zyb250RW5kXCIsXG4gIFwiVXRpbGl0eUZ1bmN0aW9uXCIsXG4gIFwiVjJHZXRcIixcbiAgXCJWYWxlbmNlRXJyb3JIYW5kbGluZ1wiLFxuICBcIlZhbGVuY2VGaWxsaW5nXCIsXG4gIFwiVmFsaWRhdGlvbkxlbmd0aFwiLFxuICBcIlZhbGlkYXRpb25TZXRcIixcbiAgXCJWYWx1ZUJveFwiLFxuICBcIlZhbHVlQm94T3B0aW9uc1wiLFxuICBcIlZhbHVlRGltZW5zaW9uc1wiLFxuICBcIlZhbHVlRm9ybVwiLFxuICBcIlZhbHVlUHJlcHJvY2Vzc2luZ0Z1bmN0aW9uXCIsXG4gIFwiVmFsdWVRXCIsXG4gIFwiVmFsdWVzXCIsXG4gIFwiVmFsdWVzRGF0YVwiLFxuICBcIlZhbmRlcm1vbmRlTWF0cml4XCIsXG4gIFwiVmFyaWFibGVzXCIsXG4gIFwiVmFyaWFuY2VcIixcbiAgXCJWYXJpYW5jZUVxdWl2YWxlbmNlVGVzdFwiLFxuICBcIlZhcmlhbmNlRXN0aW1hdG9yRnVuY3Rpb25cIixcbiAgXCJWYXJpYW5jZUdhbW1hRGlzdHJpYnV0aW9uXCIsXG4gIFwiVmFyaWFuY2VHYW1tYVBvaW50UHJvY2Vzc1wiLFxuICBcIlZhcmlhbmNlVGVzdFwiLFxuICBcIlZhcmlvZ3JhbUZ1bmN0aW9uXCIsXG4gIFwiVmFyaW9ncmFtTW9kZWxcIixcbiAgXCJWZWN0b3JBbmdsZVwiLFxuICBcIlZlY3RvckFyb3VuZFwiLFxuICBcIlZlY3RvckFzcGVjdFJhdGlvXCIsXG4gIFwiVmVjdG9yQ29sb3JGdW5jdGlvblwiLFxuICBcIlZlY3RvckNvbG9yRnVuY3Rpb25TY2FsaW5nXCIsXG4gIFwiVmVjdG9yRGVuc2l0eVBsb3RcIixcbiAgXCJWZWN0b3JEaXNwbGFjZW1lbnRQbG90XCIsXG4gIFwiVmVjdG9yRGlzcGxhY2VtZW50UGxvdDNEXCIsXG4gIFwiVmVjdG9yR2x5cGhEYXRhXCIsXG4gIFwiVmVjdG9yR3JlYXRlclwiLFxuICBcIlZlY3RvckdyZWF0ZXJFcXVhbFwiLFxuICBcIlZlY3Rvckxlc3NcIixcbiAgXCJWZWN0b3JMZXNzRXF1YWxcIixcbiAgXCJWZWN0b3JNYXJrZXJzXCIsXG4gIFwiVmVjdG9yUGxvdFwiLFxuICBcIlZlY3RvclBsb3QzRFwiLFxuICBcIlZlY3RvclBvaW50c1wiLFxuICBcIlZlY3RvclFcIixcbiAgXCJWZWN0b3JSYW5nZVwiLFxuICBcIlZlY3RvcnNcIixcbiAgXCJWZWN0b3JTY2FsZVwiLFxuICBcIlZlY3RvclNjYWxpbmdcIixcbiAgXCJWZWN0b3JTaXplc1wiLFxuICBcIlZlY3RvclN0eWxlXCIsXG4gIFwiVmVlXCIsXG4gIFwiVmVyYmF0aW1cIixcbiAgXCJWZXJib3NlXCIsXG4gIFwiVmVyaWZpY2F0aW9uVGVzdFwiLFxuICBcIlZlcmlmeUNvbnZlcmdlbmNlXCIsXG4gIFwiVmVyaWZ5RGVyaXZlZEtleVwiLFxuICBcIlZlcmlmeURpZ2l0YWxTaWduYXR1cmVcIixcbiAgXCJWZXJpZnlGaWxlU2lnbmF0dXJlXCIsXG4gIFwiVmVyaWZ5SW50ZXJwcmV0YXRpb25cIixcbiAgXCJWZXJpZnlTZWN1cml0eUNlcnRpZmljYXRlc1wiLFxuICBcIlZlcmlmeVNvbHV0aW9uc1wiLFxuICBcIlZlcmlmeVRlc3RBc3N1bXB0aW9uc1wiLFxuICBcIlZlcnNpb25lZFByZWZlcmVuY2VzXCIsXG4gIFwiVmVydGV4QWRkXCIsXG4gIFwiVmVydGV4Q2FwYWNpdHlcIixcbiAgXCJWZXJ0ZXhDaHJvbWF0aWNOdW1iZXJcIixcbiAgXCJWZXJ0ZXhDb2xvcnNcIixcbiAgXCJWZXJ0ZXhDb21wb25lbnRcIixcbiAgXCJWZXJ0ZXhDb25uZWN0aXZpdHlcIixcbiAgXCJWZXJ0ZXhDb250cmFjdFwiLFxuICBcIlZlcnRleENvb3JkaW5hdGVSdWxlc1wiLFxuICBcIlZlcnRleENvb3JkaW5hdGVzXCIsXG4gIFwiVmVydGV4Q29ycmVsYXRpb25TaW1pbGFyaXR5XCIsXG4gIFwiVmVydGV4Q29zaW5lU2ltaWxhcml0eVwiLFxuICBcIlZlcnRleENvdW50XCIsXG4gIFwiVmVydGV4Q292ZXJRXCIsXG4gIFwiVmVydGV4RGF0YUNvb3JkaW5hdGVzXCIsXG4gIFwiVmVydGV4RGVncmVlXCIsXG4gIFwiVmVydGV4RGVsZXRlXCIsXG4gIFwiVmVydGV4RGljZVNpbWlsYXJpdHlcIixcbiAgXCJWZXJ0ZXhFY2NlbnRyaWNpdHlcIixcbiAgXCJWZXJ0ZXhJbkNvbXBvbmVudFwiLFxuICBcIlZlcnRleEluQ29tcG9uZW50R3JhcGhcIixcbiAgXCJWZXJ0ZXhJbkRlZ3JlZVwiLFxuICBcIlZlcnRleEluZGV4XCIsXG4gIFwiVmVydGV4SmFjY2FyZFNpbWlsYXJpdHlcIixcbiAgXCJWZXJ0ZXhMYWJlbGluZ1wiLFxuICBcIlZlcnRleExhYmVsc1wiLFxuICBcIlZlcnRleExhYmVsU3R5bGVcIixcbiAgXCJWZXJ0ZXhMaXN0XCIsXG4gIFwiVmVydGV4Tm9ybWFsc1wiLFxuICBcIlZlcnRleE91dENvbXBvbmVudFwiLFxuICBcIlZlcnRleE91dENvbXBvbmVudEdyYXBoXCIsXG4gIFwiVmVydGV4T3V0RGVncmVlXCIsXG4gIFwiVmVydGV4UVwiLFxuICBcIlZlcnRleFJlbmRlcmluZ0Z1bmN0aW9uXCIsXG4gIFwiVmVydGV4UmVwbGFjZVwiLFxuICBcIlZlcnRleFNoYXBlXCIsXG4gIFwiVmVydGV4U2hhcGVGdW5jdGlvblwiLFxuICBcIlZlcnRleFNpemVcIixcbiAgXCJWZXJ0ZXhTdHlsZVwiLFxuICBcIlZlcnRleFRleHR1cmVDb29yZGluYXRlc1wiLFxuICBcIlZlcnRleFRyYW5zaXRpdmVHcmFwaFFcIixcbiAgXCJWZXJ0ZXhXZWlnaHRcIixcbiAgXCJWZXJ0ZXhXZWlnaHRlZEdyYXBoUVwiLFxuICBcIlZlcnRpY2FsXCIsXG4gIFwiVmVydGljYWxCYXJcIixcbiAgXCJWZXJ0aWNhbEZvcm1cIixcbiAgXCJWZXJ0aWNhbEdhdWdlXCIsXG4gIFwiVmVydGljYWxTZXBhcmF0b3JcIixcbiAgXCJWZXJ0aWNhbFNsaWRlclwiLFxuICBcIlZlcnRpY2FsVGlsZGVcIixcbiAgXCJWaWRlb1wiLFxuICBcIlZpZGVvQ2FwdHVyZVwiLFxuICBcIlZpZGVvQ29tYmluZVwiLFxuICBcIlZpZGVvRGVsZXRlXCIsXG4gIFwiVmlkZW9FbmNvZGluZ1wiLFxuICBcIlZpZGVvRXh0cmFjdEZyYW1lc1wiLFxuICBcIlZpZGVvRnJhbWVMaXN0XCIsXG4gIFwiVmlkZW9GcmFtZU1hcFwiLFxuICBcIlZpZGVvR2VuZXJhdG9yXCIsXG4gIFwiVmlkZW9JbnNlcnRcIixcbiAgXCJWaWRlb0ludGVydmFsc1wiLFxuICBcIlZpZGVvSm9pblwiLFxuICBcIlZpZGVvTWFwXCIsXG4gIFwiVmlkZW9NYXBMaXN0XCIsXG4gIFwiVmlkZW9NYXBUaW1lU2VyaWVzXCIsXG4gIFwiVmlkZW9QYWRkaW5nXCIsXG4gIFwiVmlkZW9QYXVzZVwiLFxuICBcIlZpZGVvUGxheVwiLFxuICBcIlZpZGVvUVwiLFxuICBcIlZpZGVvUmVjb3JkXCIsXG4gIFwiVmlkZW9SZXBsYWNlXCIsXG4gIFwiVmlkZW9TY3JlZW5DYXB0dXJlXCIsXG4gIFwiVmlkZW9TcGxpdFwiLFxuICBcIlZpZGVvU3RvcFwiLFxuICBcIlZpZGVvU3RyZWFtXCIsXG4gIFwiVmlkZW9TdHJlYW1zXCIsXG4gIFwiVmlkZW9UaW1lU3RyZXRjaFwiLFxuICBcIlZpZGVvVHJhY2tTZWxlY3Rpb25cIixcbiAgXCJWaWRlb1RyYW5zY29kZVwiLFxuICBcIlZpZGVvVHJhbnNwYXJlbmN5XCIsXG4gIFwiVmlkZW9UcmltXCIsXG4gIFwiVmlld0FuZ2xlXCIsXG4gIFwiVmlld0NlbnRlclwiLFxuICBcIlZpZXdNYXRyaXhcIixcbiAgXCJWaWV3UG9pbnRcIixcbiAgXCJWaWV3UG9pbnRTZWxlY3RvclNldHRpbmdzXCIsXG4gIFwiVmlld1BvcnRcIixcbiAgXCJWaWV3UHJvamVjdGlvblwiLFxuICBcIlZpZXdSYW5nZVwiLFxuICBcIlZpZXdWZWN0b3JcIixcbiAgXCJWaWV3VmVydGljYWxcIixcbiAgXCJWaXJ0dWFsR3JvdXBEYXRhXCIsXG4gIFwiVmlzaWJsZVwiLFxuICBcIlZpc2libGVDZWxsXCIsXG4gIFwiVm9pY2VTdHlsZURhdGFcIixcbiAgXCJWb2lndERpc3RyaWJ1dGlvblwiLFxuICBcIlZvbGNhbm9EYXRhXCIsXG4gIFwiVm9sdW1lXCIsXG4gIFwiVm9uTWlzZXNEaXN0cmlidXRpb25cIixcbiAgXCJWb3Jvbm9pTWVzaFwiLFxuICBcIldhaXRBbGxcIixcbiAgXCJXYWl0QXN5bmNocm9ub3VzVGFza1wiLFxuICBcIldhaXROZXh0XCIsXG4gIFwiV2FpdFVudGlsXCIsXG4gIFwiV2FrZWJ5RGlzdHJpYnV0aW9uXCIsXG4gIFwiV2FsbGVuaXVzSHlwZXJnZW9tZXRyaWNEaXN0cmlidXRpb25cIixcbiAgXCJXYXJpbmdZdWxlRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2FycGluZ0NvcnJlc3BvbmRlbmNlXCIsXG4gIFwiV2FycGluZ0Rpc3RhbmNlXCIsXG4gIFwiV2F0ZXJzaGVkQ29tcG9uZW50c1wiLFxuICBcIldhdHNvblVTcXVhcmVUZXN0XCIsXG4gIFwiV2F0dHNTdHJvZ2F0ekdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2F2ZWxldEJlc3RCYXNpc1wiLFxuICBcIldhdmVsZXRGaWx0ZXJDb2VmZmljaWVudHNcIixcbiAgXCJXYXZlbGV0SW1hZ2VQbG90XCIsXG4gIFwiV2F2ZWxldExpc3RQbG90XCIsXG4gIFwiV2F2ZWxldE1hcEluZGV4ZWRcIixcbiAgXCJXYXZlbGV0TWF0cml4UGxvdFwiLFxuICBcIldhdmVsZXRQaGlcIixcbiAgXCJXYXZlbGV0UHNpXCIsXG4gIFwiV2F2ZWxldFNjYWxlXCIsXG4gIFwiV2F2ZWxldFNjYWxvZ3JhbVwiLFxuICBcIldhdmVsZXRUaHJlc2hvbGRcIixcbiAgXCJXYXZlUERFQ29tcG9uZW50XCIsXG4gIFwiV2Vha2x5Q29ubmVjdGVkQ29tcG9uZW50c1wiLFxuICBcIldlYWtseUNvbm5lY3RlZEdyYXBoQ29tcG9uZW50c1wiLFxuICBcIldlYWtseUNvbm5lY3RlZEdyYXBoUVwiLFxuICBcIldlYWtTdGF0aW9uYXJpdHlcIixcbiAgXCJXZWF0aGVyRGF0YVwiLFxuICBcIldlYXRoZXJGb3JlY2FzdERhdGFcIixcbiAgXCJXZWJBdWRpb1NlYXJjaFwiLFxuICBcIldlYkNvbHVtblwiLFxuICBcIldlYkVsZW1lbnRPYmplY3RcIixcbiAgXCJXZWJlckVcIixcbiAgXCJXZWJFeGVjdXRlXCIsXG4gIFwiV2ViSW1hZ2VcIixcbiAgXCJXZWJJbWFnZVNlYXJjaFwiLFxuICBcIldlYkl0ZW1cIixcbiAgXCJXZWJQYWdlTWV0YUluZm9ybWF0aW9uXCIsXG4gIFwiV2ViUm93XCIsXG4gIFwiV2ViU2VhcmNoXCIsXG4gIFwiV2ViU2Vzc2lvbk9iamVjdFwiLFxuICBcIldlYlNlc3Npb25zXCIsXG4gIFwiV2ViV2luZG93T2JqZWN0XCIsXG4gIFwiV2VkZ2VcIixcbiAgXCJXZWRuZXNkYXlcIixcbiAgXCJXZWlidWxsRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2VpZXJzdHJhc3NFMVwiLFxuICBcIldlaWVyc3RyYXNzRTJcIixcbiAgXCJXZWllcnN0cmFzc0UzXCIsXG4gIFwiV2VpZXJzdHJhc3NFdGExXCIsXG4gIFwiV2VpZXJzdHJhc3NFdGEyXCIsXG4gIFwiV2VpZXJzdHJhc3NFdGEzXCIsXG4gIFwiV2VpZXJzdHJhc3NIYWxmUGVyaW9kc1wiLFxuICBcIldlaWVyc3RyYXNzSGFsZlBlcmlvZFcxXCIsXG4gIFwiV2VpZXJzdHJhc3NIYWxmUGVyaW9kVzJcIixcbiAgXCJXZWllcnN0cmFzc0hhbGZQZXJpb2RXM1wiLFxuICBcIldlaWVyc3RyYXNzSW52YXJpYW50RzJcIixcbiAgXCJXZWllcnN0cmFzc0ludmFyaWFudEczXCIsXG4gIFwiV2VpZXJzdHJhc3NJbnZhcmlhbnRzXCIsXG4gIFwiV2VpZXJzdHJhc3NQXCIsXG4gIFwiV2VpZXJzdHJhc3NQUHJpbWVcIixcbiAgXCJXZWllcnN0cmFzc1NpZ21hXCIsXG4gIFwiV2VpZXJzdHJhc3NaZXRhXCIsXG4gIFwiV2VpZ2h0ZWRBZGphY2VuY3lHcmFwaFwiLFxuICBcIldlaWdodGVkQWRqYWNlbmN5TWF0cml4XCIsXG4gIFwiV2VpZ2h0ZWREYXRhXCIsXG4gIFwiV2VpZ2h0ZWRHcmFwaFFcIixcbiAgXCJXZWlnaHRzXCIsXG4gIFwiV2VsY2hXaW5kb3dcIixcbiAgXCJXaGVlbEdyYXBoXCIsXG4gIFwiV2hlbkV2ZW50XCIsXG4gIFwiV2hpY2hcIixcbiAgXCJXaGlsZVwiLFxuICBcIldoaXRlXCIsXG4gIFwiV2hpdGVOb2lzZVByb2Nlc3NcIixcbiAgXCJXaGl0ZVBvaW50XCIsXG4gIFwiV2hpdGVzcGFjZVwiLFxuICBcIldoaXRlc3BhY2VDaGFyYWN0ZXJcIixcbiAgXCJXaGl0dGFrZXJNXCIsXG4gIFwiV2hpdHRha2VyV1wiLFxuICBcIldob2xlQ2VsbEdyb3VwT3BlbmVyXCIsXG4gIFwiV2llbmVyRmlsdGVyXCIsXG4gIFwiV2llbmVyUHJvY2Vzc1wiLFxuICBcIldpZ25lckRcIixcbiAgXCJXaWduZXJTZW1pY2lyY2xlRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2lraWRhdGFEYXRhXCIsXG4gIFwiV2lraWRhdGFTZWFyY2hcIixcbiAgXCJXaWtpcGVkaWFEYXRhXCIsXG4gIFwiV2lraXBlZGlhU2VhcmNoXCIsXG4gIFwiV2lsa3NXXCIsXG4gIFwiV2lsa3NXVGVzdFwiLFxuICBcIldpbmREaXJlY3Rpb25EYXRhXCIsXG4gIFwiV2luZGluZ0NvdW50XCIsXG4gIFwiV2luZGluZ1BvbHlnb25cIixcbiAgXCJXaW5kb3dDbGlja1NlbGVjdFwiLFxuICBcIldpbmRvd0VsZW1lbnRzXCIsXG4gIFwiV2luZG93RmxvYXRpbmdcIixcbiAgXCJXaW5kb3dGcmFtZVwiLFxuICBcIldpbmRvd0ZyYW1lRWxlbWVudHNcIixcbiAgXCJXaW5kb3dNYXJnaW5zXCIsXG4gIFwiV2luZG93TW92YWJsZVwiLFxuICBcIldpbmRvd09wYWNpdHlcIixcbiAgXCJXaW5kb3dQZXJzaXN0ZW50U3R5bGVzXCIsXG4gIFwiV2luZG93U2VsZWN0ZWRcIixcbiAgXCJXaW5kb3dTaXplXCIsXG4gIFwiV2luZG93U3RhdHVzQXJlYVwiLFxuICBcIldpbmRvd1RpdGxlXCIsXG4gIFwiV2luZG93VG9vbGJhcnNcIixcbiAgXCJXaW5kb3dXaWR0aFwiLFxuICBcIldpbmRTcGVlZERhdGFcIixcbiAgXCJXaW5kVmVjdG9yRGF0YVwiLFxuICBcIldpbnNvcml6ZWRNZWFuXCIsXG4gIFwiV2luc29yaXplZFZhcmlhbmNlXCIsXG4gIFwiV2lzaGFydE1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIldpdGhcIixcbiAgXCJXaXRoQ2xlYW51cFwiLFxuICBcIldpdGhMb2NrXCIsXG4gIFwiV29sZnJhbUFscGhhXCIsXG4gIFwiV29sZnJhbUFscGhhRGF0ZVwiLFxuICBcIldvbGZyYW1BbHBoYVF1YW50aXR5XCIsXG4gIFwiV29sZnJhbUFscGhhUmVzdWx0XCIsXG4gIFwiV29sZnJhbUNsb3VkU2V0dGluZ3NcIixcbiAgXCJXb2xmcmFtTGFuZ3VhZ2VEYXRhXCIsXG4gIFwiV29yZFwiLFxuICBcIldvcmRCb3VuZGFyeVwiLFxuICBcIldvcmRDaGFyYWN0ZXJcIixcbiAgXCJXb3JkQ2xvdWRcIixcbiAgXCJXb3JkQ291bnRcIixcbiAgXCJXb3JkQ291bnRzXCIsXG4gIFwiV29yZERhdGFcIixcbiAgXCJXb3JkRGVmaW5pdGlvblwiLFxuICBcIldvcmRGcmVxdWVuY3lcIixcbiAgXCJXb3JkRnJlcXVlbmN5RGF0YVwiLFxuICBcIldvcmRMaXN0XCIsXG4gIFwiV29yZE9yaWVudGF0aW9uXCIsXG4gIFwiV29yZFNlYXJjaFwiLFxuICBcIldvcmRTZWxlY3Rpb25GdW5jdGlvblwiLFxuICBcIldvcmRTZXBhcmF0b3JzXCIsXG4gIFwiV29yZFNwYWNpbmdzXCIsXG4gIFwiV29yZFN0ZW1cIixcbiAgXCJXb3JkVHJhbnNsYXRpb25cIixcbiAgXCJXb3JraW5nUHJlY2lzaW9uXCIsXG4gIFwiV3JhcEFyb3VuZFwiLFxuICBcIldyaXRlXCIsXG4gIFwiV3JpdGVMaW5lXCIsXG4gIFwiV3JpdGVTdHJpbmdcIixcbiAgXCJXcm9uc2tpYW5cIixcbiAgXCJYTUxFbGVtZW50XCIsXG4gIFwiWE1MT2JqZWN0XCIsXG4gIFwiWE1MVGVtcGxhdGVcIixcbiAgXCJYbm9yXCIsXG4gIFwiWG9yXCIsXG4gIFwiWFlaQ29sb3JcIixcbiAgXCJZZWxsb3dcIixcbiAgXCJZZXN0ZXJkYXlcIixcbiAgXCJZdWxlRGlzc2ltaWxhcml0eVwiLFxuICBcIlplcm5pa2VSXCIsXG4gIFwiWmVyb1N5bW1ldHJpY1wiLFxuICBcIlplcm9UZXN0XCIsXG4gIFwiWmVyb1dpZHRoVGltZXNcIixcbiAgXCJaZXRhXCIsXG4gIFwiWmV0YVplcm9cIixcbiAgXCJaSVBDb2RlRGF0YVwiLFxuICBcIlppcGZEaXN0cmlidXRpb25cIixcbiAgXCJab29tQ2VudGVyXCIsXG4gIFwiWm9vbUZhY3RvclwiLFxuICBcIlpUZXN0XCIsXG4gIFwiWlRyYW5zZm9ybVwiLFxuICBcIiRBYm9ydGVkXCIsXG4gIFwiJEFjdGl2YXRpb25Hcm91cElEXCIsXG4gIFwiJEFjdGl2YXRpb25LZXlcIixcbiAgXCIkQWN0aXZhdGlvblVzZXJSZWdpc3RlcmVkXCIsXG4gIFwiJEFkZE9uc0RpcmVjdG9yeVwiLFxuICBcIiRBbGxvd0RhdGFVcGRhdGVzXCIsXG4gIFwiJEFsbG93RXh0ZXJuYWxDaGFubmVsRnVuY3Rpb25zXCIsXG4gIFwiJEFsbG93SW50ZXJuZXRcIixcbiAgXCIkQXNzZXJ0RnVuY3Rpb25cIixcbiAgXCIkQXNzdW1wdGlvbnNcIixcbiAgXCIkQXN5bmNocm9ub3VzVGFza1wiLFxuICBcIiRBdWRpb0RlY29kZXJzXCIsXG4gIFwiJEF1ZGlvRW5jb2RlcnNcIixcbiAgXCIkQXVkaW9JbnB1dERldmljZXNcIixcbiAgXCIkQXVkaW9PdXRwdXREZXZpY2VzXCIsXG4gIFwiJEJhc2VEaXJlY3RvcnlcIixcbiAgXCIkQmFzZVBhY2xldHNEaXJlY3RvcnlcIixcbiAgXCIkQmF0Y2hJbnB1dFwiLFxuICBcIiRCYXRjaE91dHB1dFwiLFxuICBcIiRCbG9ja2NoYWluQmFzZVwiLFxuICBcIiRCb3hGb3Jtc1wiLFxuICBcIiRCeXRlT3JkZXJpbmdcIixcbiAgXCIkQ2FjaGVCYXNlRGlyZWN0b3J5XCIsXG4gIFwiJENhbmNlbGVkXCIsXG4gIFwiJENoYW5uZWxCYXNlXCIsXG4gIFwiJENoYXJhY3RlckVuY29kaW5nXCIsXG4gIFwiJENoYXJhY3RlckVuY29kaW5nc1wiLFxuICBcIiRDbG91ZEFjY291bnROYW1lXCIsXG4gIFwiJENsb3VkQmFzZVwiLFxuICBcIiRDbG91ZENvbm5lY3RlZFwiLFxuICBcIiRDbG91ZENvbm5lY3Rpb25cIixcbiAgXCIkQ2xvdWRDcmVkaXRzQXZhaWxhYmxlXCIsXG4gIFwiJENsb3VkRXZhbHVhdGlvblwiLFxuICBcIiRDbG91ZEV4cHJlc3Npb25CYXNlXCIsXG4gIFwiJENsb3VkT2JqZWN0TmFtZUZvcm1hdFwiLFxuICBcIiRDbG91ZE9iamVjdFVSTFR5cGVcIixcbiAgXCIkQ2xvdWRSb290RGlyZWN0b3J5XCIsXG4gIFwiJENsb3VkU3ltYm9sQmFzZVwiLFxuICBcIiRDbG91ZFVzZXJJRFwiLFxuICBcIiRDbG91ZFVzZXJVVUlEXCIsXG4gIFwiJENsb3VkVmVyc2lvblwiLFxuICBcIiRDbG91ZFZlcnNpb25OdW1iZXJcIixcbiAgXCIkQ2xvdWRXb2xmcmFtRW5naW5lVmVyc2lvbk51bWJlclwiLFxuICBcIiRDb21tYW5kTGluZVwiLFxuICBcIiRDb21waWxhdGlvblRhcmdldFwiLFxuICBcIiRDb21waWxlckVudmlyb25tZW50XCIsXG4gIFwiJENvbmRpdGlvbkhvbGRcIixcbiAgXCIkQ29uZmlndXJlZEtlcm5lbHNcIixcbiAgXCIkQ29udGV4dFwiLFxuICBcIiRDb250ZXh0QWxpYXNlc1wiLFxuICBcIiRDb250ZXh0UGF0aFwiLFxuICBcIiRDb250cm9sQWN0aXZlU2V0dGluZ1wiLFxuICBcIiRDb29raWVzXCIsXG4gIFwiJENvb2tpZVN0b3JlXCIsXG4gIFwiJENyZWF0aW9uRGF0ZVwiLFxuICBcIiRDcnlwdG9ncmFwaGljRWxsaXB0aWNDdXJ2ZU5hbWVzXCIsXG4gIFwiJEN1cnJlbnRMaW5rXCIsXG4gIFwiJEN1cnJlbnRUYXNrXCIsXG4gIFwiJEN1cnJlbnRXZWJTZXNzaW9uXCIsXG4gIFwiJERhdGFTdHJ1Y3R1cmVzXCIsXG4gIFwiJERhdGVTdHJpbmdGb3JtYXRcIixcbiAgXCIkRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2VcIixcbiAgXCIkRGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlXCIsXG4gIFwiJERlZmF1bHRGb250XCIsXG4gIFwiJERlZmF1bHRGcm9udEVuZFwiLFxuICBcIiREZWZhdWx0SW1hZ2luZ0RldmljZVwiLFxuICBcIiREZWZhdWx0S2VybmVsc1wiLFxuICBcIiREZWZhdWx0TG9jYWxCYXNlXCIsXG4gIFwiJERlZmF1bHRMb2NhbEtlcm5lbFwiLFxuICBcIiREZWZhdWx0TWFpbGJveFwiLFxuICBcIiREZWZhdWx0TmV0d29ya0ludGVyZmFjZVwiLFxuICBcIiREZWZhdWx0UGF0aFwiLFxuICBcIiREZWZhdWx0UHJveHlSdWxlc1wiLFxuICBcIiREZWZhdWx0UmVtb3RlQmF0Y2hTdWJtaXNzaW9uRW52aXJvbm1lbnRcIixcbiAgXCIkRGVmYXVsdFJlbW90ZUtlcm5lbFwiLFxuICBcIiREZWZhdWx0U3lzdGVtQ3JlZGVudGlhbFN0b3JlXCIsXG4gIFwiJERpc3BsYXlcIixcbiAgXCIkRGlzcGxheUZ1bmN0aW9uXCIsXG4gIFwiJERpc3RyaWJ1dGVkQ29udGV4dHNcIixcbiAgXCIkRHluYW1pY0V2YWx1YXRpb25cIixcbiAgXCIkRWNob1wiLFxuICBcIiRFbWJlZENvZGVFbnZpcm9ubWVudHNcIixcbiAgXCIkRW1iZWRkYWJsZVNlcnZpY2VzXCIsXG4gIFwiJEVudGl0eVN0b3Jlc1wiLFxuICBcIiRFcGlsb2dcIixcbiAgXCIkRXZhbHVhdGlvbkNsb3VkQmFzZVwiLFxuICBcIiRFdmFsdWF0aW9uQ2xvdWRPYmplY3RcIixcbiAgXCIkRXZhbHVhdGlvbkVudmlyb25tZW50XCIsXG4gIFwiJEV4cG9ydEZvcm1hdHNcIixcbiAgXCIkRXh0ZXJuYWxJZGVudGlmaWVyVHlwZXNcIixcbiAgXCIkRXh0ZXJuYWxTdG9yYWdlQmFzZVwiLFxuICBcIiRGYWlsZWRcIixcbiAgXCIkRmluYW5jaWFsRGF0YVNvdXJjZVwiLFxuICBcIiRGb250RmFtaWxpZXNcIixcbiAgXCIkRm9ybWF0VHlwZVwiLFxuICBcIiRGcm9udEVuZFwiLFxuICBcIiRGcm9udEVuZFNlc3Npb25cIixcbiAgXCIkR2VuZXJhdGVkQXNzZXRMb2NhdGlvblwiLFxuICBcIiRHZW9FbnRpdHlUeXBlc1wiLFxuICBcIiRHZW9Mb2NhdGlvblwiLFxuICBcIiRHZW9Mb2NhdGlvbkNpdHlcIixcbiAgXCIkR2VvTG9jYXRpb25Db3VudHJ5XCIsXG4gIFwiJEdlb0xvY2F0aW9uUHJlY2lzaW9uXCIsXG4gIFwiJEdlb0xvY2F0aW9uU291cmNlXCIsXG4gIFwiJEhpc3RvcnlMZW5ndGhcIixcbiAgXCIkSG9tZURpcmVjdG9yeVwiLFxuICBcIiRIVE1MRXhwb3J0UnVsZXNcIixcbiAgXCIkSFRUUENvb2tpZXNcIixcbiAgXCIkSFRUUFJlcXVlc3RcIixcbiAgXCIkSWdub3JlRU9GXCIsXG4gIFwiJEltYWdlRm9ybWF0dGluZ1dpZHRoXCIsXG4gIFwiJEltYWdlUmVzb2x1dGlvblwiLFxuICBcIiRJbWFnaW5nRGV2aWNlXCIsXG4gIFwiJEltYWdpbmdEZXZpY2VzXCIsXG4gIFwiJEltcG9ydEZvcm1hdHNcIixcbiAgXCIkSW5jb21pbmdNYWlsU2V0dGluZ3NcIixcbiAgXCIkSW5pdGlhbERpcmVjdG9yeVwiLFxuICBcIiRJbml0aWFsaXphdGlvblwiLFxuICBcIiRJbml0aWFsaXphdGlvbkNvbnRleHRzXCIsXG4gIFwiJElucHV0XCIsXG4gIFwiJElucHV0RmlsZU5hbWVcIixcbiAgXCIkSW5wdXRTdHJlYW1NZXRob2RzXCIsXG4gIFwiJEluc3BlY3RvclwiLFxuICBcIiRJbnN0YWxsYXRpb25EYXRlXCIsXG4gIFwiJEluc3RhbGxhdGlvbkRpcmVjdG9yeVwiLFxuICBcIiRJbnRlcmZhY2VFbnZpcm9ubWVudFwiLFxuICBcIiRJbnRlcnByZXRlclR5cGVzXCIsXG4gIFwiJEl0ZXJhdGlvbkxpbWl0XCIsXG4gIFwiJEtlcm5lbENvdW50XCIsXG4gIFwiJEtlcm5lbElEXCIsXG4gIFwiJExhbmd1YWdlXCIsXG4gIFwiJExhdW5jaERpcmVjdG9yeVwiLFxuICBcIiRMaWJyYXJ5UGF0aFwiLFxuICBcIiRMaWNlbnNlRXhwaXJhdGlvbkRhdGVcIixcbiAgXCIkTGljZW5zZUlEXCIsXG4gIFwiJExpY2Vuc2VQcm9jZXNzZXNcIixcbiAgXCIkTGljZW5zZVNlcnZlclwiLFxuICBcIiRMaWNlbnNlU3VicHJvY2Vzc2VzXCIsXG4gIFwiJExpY2Vuc2VUeXBlXCIsXG4gIFwiJExpbmVcIixcbiAgXCIkTGlua2VkXCIsXG4gIFwiJExpbmtTdXBwb3J0ZWRcIixcbiAgXCIkTG9hZGVkRmlsZXNcIixcbiAgXCIkTG9jYWxCYXNlXCIsXG4gIFwiJExvY2FsU3ltYm9sQmFzZVwiLFxuICBcIiRNYWNoaW5lQWRkcmVzc2VzXCIsXG4gIFwiJE1hY2hpbmVEb21haW5cIixcbiAgXCIkTWFjaGluZURvbWFpbnNcIixcbiAgXCIkTWFjaGluZUVwc2lsb25cIixcbiAgXCIkTWFjaGluZUlEXCIsXG4gIFwiJE1hY2hpbmVOYW1lXCIsXG4gIFwiJE1hY2hpbmVQcmVjaXNpb25cIixcbiAgXCIkTWFjaGluZVR5cGVcIixcbiAgXCIkTWF4RGlzcGxheWVkQ2hpbGRyZW5cIixcbiAgXCIkTWF4RXh0cmFQcmVjaXNpb25cIixcbiAgXCIkTWF4TGljZW5zZVByb2Nlc3Nlc1wiLFxuICBcIiRNYXhMaWNlbnNlU3VicHJvY2Vzc2VzXCIsXG4gIFwiJE1heE1hY2hpbmVOdW1iZXJcIixcbiAgXCIkTWF4TnVtYmVyXCIsXG4gIFwiJE1heFBpZWNld2lzZUNhc2VzXCIsXG4gIFwiJE1heFByZWNpc2lvblwiLFxuICBcIiRNYXhSb290RGVncmVlXCIsXG4gIFwiJE1lc3NhZ2VHcm91cHNcIixcbiAgXCIkTWVzc2FnZUxpc3RcIixcbiAgXCIkTWVzc2FnZVByZVByaW50XCIsXG4gIFwiJE1lc3NhZ2VzXCIsXG4gIFwiJE1pbk1hY2hpbmVOdW1iZXJcIixcbiAgXCIkTWluTnVtYmVyXCIsXG4gIFwiJE1pbm9yUmVsZWFzZU51bWJlclwiLFxuICBcIiRNaW5QcmVjaXNpb25cIixcbiAgXCIkTW9iaWxlUGhvbmVcIixcbiAgXCIkTW9kdWxlTnVtYmVyXCIsXG4gIFwiJE5ldHdvcmtDb25uZWN0ZWRcIixcbiAgXCIkTmV0d29ya0ludGVyZmFjZXNcIixcbiAgXCIkTmV0d29ya0xpY2Vuc2VcIixcbiAgXCIkTmV3TWVzc2FnZVwiLFxuICBcIiROZXdTeW1ib2xcIixcbiAgXCIkTm90ZWJvb2tJbmxpbmVTdG9yYWdlTGltaXRcIixcbiAgXCIkTm90ZWJvb2tzXCIsXG4gIFwiJE5vVmFsdWVcIixcbiAgXCIkTnVtYmVyTWFya3NcIixcbiAgXCIkT2ZmXCIsXG4gIFwiJE9wZXJhdGluZ1N5c3RlbVwiLFxuICBcIiRPdXRwdXRcIixcbiAgXCIkT3V0cHV0Rm9ybXNcIixcbiAgXCIkT3V0cHV0U2l6ZUxpbWl0XCIsXG4gIFwiJE91dHB1dFN0cmVhbU1ldGhvZHNcIixcbiAgXCIkUGFja2FnZXNcIixcbiAgXCIkUGFyZW50TGlua1wiLFxuICBcIiRQYXJlbnRQcm9jZXNzSURcIixcbiAgXCIkUGFzc3dvcmRGaWxlXCIsXG4gIFwiJFBhdGNoTGV2ZWxJRFwiLFxuICBcIiRQYXRoXCIsXG4gIFwiJFBhdGhuYW1lU2VwYXJhdG9yXCIsXG4gIFwiJFBlcmZvcm1hbmNlR29hbFwiLFxuICBcIiRQZXJtaXNzaW9uc1wiLFxuICBcIiRQZXJtaXNzaW9uc0dyb3VwQmFzZVwiLFxuICBcIiRQZXJzaXN0ZW5jZUJhc2VcIixcbiAgXCIkUGVyc2lzdGVuY2VQYXRoXCIsXG4gIFwiJFBpcGVTdXBwb3J0ZWRcIixcbiAgXCIkUGxvdFRoZW1lXCIsXG4gIFwiJFBvc3RcIixcbiAgXCIkUHJlXCIsXG4gIFwiJFByZWZlcmVuY2VzRGlyZWN0b3J5XCIsXG4gIFwiJFByZUluaXRpYWxpemF0aW9uXCIsXG4gIFwiJFByZVByaW50XCIsXG4gIFwiJFByZVJlYWRcIixcbiAgXCIkUHJpbnRGb3Jtc1wiLFxuICBcIiRQcmludExpdGVyYWxcIixcbiAgXCIkUHJpbnRvdXQzRFByZXZpZXdlclwiLFxuICBcIiRQcm9jZXNzSURcIixcbiAgXCIkUHJvY2Vzc29yQ291bnRcIixcbiAgXCIkUHJvY2Vzc29yVHlwZVwiLFxuICBcIiRQcm9kdWN0SW5mb3JtYXRpb25cIixcbiAgXCIkUHJvZ3JhbU5hbWVcIixcbiAgXCIkUHJvZ3Jlc3NSZXBvcnRpbmdcIixcbiAgXCIkUHVibGlzaGVySURcIixcbiAgXCIkUmFuZG9tR2VuZXJhdG9yU3RhdGVcIixcbiAgXCIkUmFuZG9tU3RhdGVcIixcbiAgXCIkUmVjdXJzaW9uTGltaXRcIixcbiAgXCIkUmVnaXN0ZXJlZERldmljZUNsYXNzZXNcIixcbiAgXCIkUmVnaXN0ZXJlZFVzZXJOYW1lXCIsXG4gIFwiJFJlbGVhc2VOdW1iZXJcIixcbiAgXCIkUmVxdWVzdGVyQWRkcmVzc1wiLFxuICBcIiRSZXF1ZXN0ZXJDbG91ZFVzZXJJRFwiLFxuICBcIiRSZXF1ZXN0ZXJDbG91ZFVzZXJVVUlEXCIsXG4gIFwiJFJlcXVlc3RlcldvbGZyYW1JRFwiLFxuICBcIiRSZXF1ZXN0ZXJXb2xmcmFtVVVJRFwiLFxuICBcIiRSZXNvdXJjZVN5c3RlbUJhc2VcIixcbiAgXCIkUmVzb3VyY2VTeXN0ZW1QYXRoXCIsXG4gIFwiJFJvb3REaXJlY3RvcnlcIixcbiAgXCIkU2NoZWR1bGVkVGFza1wiLFxuICBcIiRTY3JpcHRDb21tYW5kTGluZVwiLFxuICBcIiRTY3JpcHRJbnB1dFN0cmluZ1wiLFxuICBcIiRTZWN1cmVkQXV0aGVudGljYXRpb25LZXlUb2tlbnNcIixcbiAgXCIkU2VydmljZUNyZWRpdHNBdmFpbGFibGVcIixcbiAgXCIkU2VydmljZXNcIixcbiAgXCIkU2Vzc2lvbklEXCIsXG4gIFwiJFNldFBhcmVudExpbmtcIixcbiAgXCIkU2hhcmVkRnVuY3Rpb25zXCIsXG4gIFwiJFNoYXJlZFZhcmlhYmxlc1wiLFxuICBcIiRTb3VuZERpc3BsYXlcIixcbiAgXCIkU291bmREaXNwbGF5RnVuY3Rpb25cIixcbiAgXCIkU291cmNlTGlua1wiLFxuICBcIiRTU0hBdXRoZW50aWNhdGlvblwiLFxuICBcIiRTdWJ0aXRsZURlY29kZXJzXCIsXG4gIFwiJFN1YnRpdGxlRW5jb2RlcnNcIixcbiAgXCIkU3VtbWFyeUJveERhdGFTaXplTGltaXRcIixcbiAgXCIkU3VwcHJlc3NJbnB1dEZvcm1IZWFkc1wiLFxuICBcIiRTeW5jaHJvbm91c0V2YWx1YXRpb25cIixcbiAgXCIkU3ludGF4SGFuZGxlclwiLFxuICBcIiRTeXN0ZW1cIixcbiAgXCIkU3lzdGVtQ2hhcmFjdGVyRW5jb2RpbmdcIixcbiAgXCIkU3lzdGVtQ3JlZGVudGlhbFN0b3JlXCIsXG4gIFwiJFN5c3RlbUlEXCIsXG4gIFwiJFN5c3RlbU1lbW9yeVwiLFxuICBcIiRTeXN0ZW1TaGVsbFwiLFxuICBcIiRTeXN0ZW1UaW1lWm9uZVwiLFxuICBcIiRTeXN0ZW1Xb3JkTGVuZ3RoXCIsXG4gIFwiJFRhcmdldFN5c3RlbXNcIixcbiAgXCIkVGVtcGxhdGVQYXRoXCIsXG4gIFwiJFRlbXBvcmFyeURpcmVjdG9yeVwiLFxuICBcIiRUZW1wb3JhcnlQcmVmaXhcIixcbiAgXCIkVGVzdEZpbGVOYW1lXCIsXG4gIFwiJFRleHRTdHlsZVwiLFxuICBcIiRUaW1lZE91dFwiLFxuICBcIiRUaW1lVW5pdFwiLFxuICBcIiRUaW1lWm9uZVwiLFxuICBcIiRUaW1lWm9uZUVudGl0eVwiLFxuICBcIiRUb3BEaXJlY3RvcnlcIixcbiAgXCIkVHJhY2VPZmZcIixcbiAgXCIkVHJhY2VPblwiLFxuICBcIiRUcmFjZVBhdHRlcm5cIixcbiAgXCIkVHJhY2VQb3N0QWN0aW9uXCIsXG4gIFwiJFRyYWNlUHJlQWN0aW9uXCIsXG4gIFwiJFVuaXRTeXN0ZW1cIixcbiAgXCIkVXJnZW50XCIsXG4gIFwiJFVzZXJBZGRPbnNEaXJlY3RvcnlcIixcbiAgXCIkVXNlckFnZW50TGFuZ3VhZ2VzXCIsXG4gIFwiJFVzZXJBZ2VudE1hY2hpbmVcIixcbiAgXCIkVXNlckFnZW50TmFtZVwiLFxuICBcIiRVc2VyQWdlbnRPcGVyYXRpbmdTeXN0ZW1cIixcbiAgXCIkVXNlckFnZW50U3RyaW5nXCIsXG4gIFwiJFVzZXJBZ2VudFZlcnNpb25cIixcbiAgXCIkVXNlckJhc2VEaXJlY3RvcnlcIixcbiAgXCIkVXNlckJhc2VQYWNsZXRzRGlyZWN0b3J5XCIsXG4gIFwiJFVzZXJEb2N1bWVudHNEaXJlY3RvcnlcIixcbiAgXCIkVXNlcm5hbWVcIixcbiAgXCIkVXNlck5hbWVcIixcbiAgXCIkVXNlclVSTEJhc2VcIixcbiAgXCIkVmVyc2lvblwiLFxuICBcIiRWZXJzaW9uTnVtYmVyXCIsXG4gIFwiJFZpZGVvRGVjb2RlcnNcIixcbiAgXCIkVmlkZW9FbmNvZGVyc1wiLFxuICBcIiRWb2ljZVN0eWxlc1wiLFxuICBcIiRXb2xmcmFtRG9jdW1lbnRzRGlyZWN0b3J5XCIsXG4gIFwiJFdvbGZyYW1JRFwiLFxuICBcIiRXb2xmcmFtVVVJRFwiXG5dO1xuXG4vKlxuTGFuZ3VhZ2U6IFdvbGZyYW0gTGFuZ3VhZ2VcbkRlc2NyaXB0aW9uOiBUaGUgV29sZnJhbSBMYW5ndWFnZSBpcyB0aGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdXNlZCBpbiBXb2xmcmFtIE1hdGhlbWF0aWNhLCBhIG1vZGVybiB0ZWNobmljYWwgY29tcHV0aW5nIHN5c3RlbSBzcGFubmluZyBtb3N0IGFyZWFzIG9mIHRlY2huaWNhbCBjb21wdXRpbmcuXG5BdXRob3JzOiBQYXRyaWNrIFNjaGVpYmUgPHBhdHJpY2tAaGFsaXJ1dGFuLmRlPiwgUm9iZXJ0IEphY29ic29uIDxyb2JlcnRqYWNvYnNvbkBhY20ub3JnPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cud29sZnJhbS5jb20vbWF0aGVtYXRpY2EvXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbWF0aGVtYXRpY2EoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8qXG4gIFRoaXMgcmF0aGVyIHNjYXJ5IGxvb2tpbmcgbWF0Y2hpbmcgb2YgTWF0aGVtYXRpY2EgbnVtYmVycyBpcyBjYXJlZnVsbHkgZXhwbGFpbmVkIGJ5IFJvYmVydCBKYWNvYnNvbiBoZXJlOlxuICBodHRwczovL3dsdG9vbHMuZ2l0aHViLmlvL0xhbmd1YWdlU3BlYy9TcGVjaWZpY2F0aW9uL1N5bnRheC9OdW1iZXItcmVwcmVzZW50YXRpb25zL1xuICAgKi9cbiAgY29uc3QgQkFTRV9SRSA9IC8oWzItOV18WzEtMl1cXGR8WzNdWzAtNV0pXFxeXFxeLztcbiAgY29uc3QgQkFTRV9ESUdJVFNfUkUgPSAvKFxcdypcXC5cXHcrfFxcdytcXC5cXHcqfFxcdyspLztcbiAgY29uc3QgTlVNQkVSX1JFID0gLyhcXGQqXFwuXFxkK3xcXGQrXFwuXFxkKnxcXGQrKS87XG4gIGNvbnN0IEJBU0VfTlVNQkVSX1JFID0gcmVnZXguZWl0aGVyKHJlZ2V4LmNvbmNhdChCQVNFX1JFLCBCQVNFX0RJR0lUU19SRSksIE5VTUJFUl9SRSk7XG5cbiAgY29uc3QgQUNDVVJBQ1lfUkUgPSAvYGBbKy1dPyhcXGQqXFwuXFxkK3xcXGQrXFwuXFxkKnxcXGQrKS87XG4gIGNvbnN0IFBSRUNJU0lPTl9SRSA9IC9gKFsrLV0/KFxcZCpcXC5cXGQrfFxcZCtcXC5cXGQqfFxcZCspKT8vO1xuICBjb25zdCBBUFBST1hJTUFURV9OVU1CRVJfUkUgPSByZWdleC5laXRoZXIoQUNDVVJBQ1lfUkUsIFBSRUNJU0lPTl9SRSk7XG5cbiAgY29uc3QgU0NJRU5USUZJQ19OT1RBVElPTl9SRSA9IC9cXCpcXF5bKy1dP1xcZCsvO1xuXG4gIGNvbnN0IE1BVEhFTUFUSUNBX05VTUJFUl9SRSA9IHJlZ2V4LmNvbmNhdChcbiAgICBCQVNFX05VTUJFUl9SRSxcbiAgICByZWdleC5vcHRpb25hbChBUFBST1hJTUFURV9OVU1CRVJfUkUpLFxuICAgIHJlZ2V4Lm9wdGlvbmFsKFNDSUVOVElGSUNfTk9UQVRJT05fUkUpXG4gICk7XG5cbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogTUFUSEVNQVRJQ0FfTlVNQkVSX1JFXG4gIH07XG5cbiAgY29uc3QgU1lNQk9MX1JFID0gL1thLXpBLVokXVthLXpBLVowLTkkXSovO1xuICBjb25zdCBTWVNURU1fU1lNQk9MU19TRVQgPSBuZXcgU2V0KFNZU1RFTV9TWU1CT0xTKTtcbiAgLyoqIEB0eXBlIHtNb2RlfSAqL1xuICBjb25zdCBTWU1CT0xTID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2J1aWx0aW4tc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgICAvLyBmb3IgcGVyZm9ybWFuY2Ugb3V0IG9mIGZlYXIgb2YgcmVnZXguZWl0aGVyKC4uLk1hdGhlbWF0aWNhLlNZU1RFTV9TWU1CT0xTKVxuICAgICAgXCJvbjpiZWdpblwiOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmICghU1lTVEVNX1NZTUJPTFNfU0VULmhhcyhtYXRjaFswXSkpIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgYmVnaW46IFNZTUJPTF9SRVxuICAgIH1cbiAgXSB9O1xuXG4gIGNvbnN0IE5BTUVEX0NIQVJBQ1RFUiA9IHtcbiAgICBjbGFzc05hbWU6ICduYW1lZC1jaGFyYWN0ZXInLFxuICAgIGJlZ2luOiAvXFxcXFxcW1skYS16QS1aXVskYS16QS1aMC05XStcXF0vXG4gIH07XG5cbiAgY29uc3QgT1BFUkFUT1JTID0ge1xuICAgIGNsYXNzTmFtZTogJ29wZXJhdG9yJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IC9bK1xcLSovLDsuOkB+PT48JnxfYCdePyElXSsvXG4gIH07XG4gIGNvbnN0IFBBVFRFUk5TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhdHRlcm4nLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogLyhbYS16QS1aJF1bYS16QS1aMC05JF0qKT9fKyhbYS16QS1aJF1bYS16QS1aMC05JF0qKT8vXG4gIH07XG5cbiAgY29uc3QgU0xPVFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc2xvdCcsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiAvI1thLXpBLVokXVthLXpBLVowLTkkXSp8IytbMC05XT8vXG4gIH07XG5cbiAgY29uc3QgQlJBQ0VTID0ge1xuICAgIGNsYXNzTmFtZTogJ2JyYWNlJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IC9bW1xcXSgpe31dL1xuICB9O1xuXG4gIGNvbnN0IE1FU1NBR0VTID0ge1xuICAgIGNsYXNzTmFtZTogJ21lc3NhZ2UtbmFtZScsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoXCI6OlwiLCBTWU1CT0xfUkUpXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTWF0aGVtYXRpY2EnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdtbWEnLFxuICAgICAgJ3dsJ1xuICAgIF0sXG4gICAgY2xhc3NOYW1lQWxpYXNlczoge1xuICAgICAgYnJhY2U6ICdwdW5jdHVhdGlvbicsXG4gICAgICBwYXR0ZXJuOiAndHlwZScsXG4gICAgICBzbG90OiAndHlwZScsXG4gICAgICBzeW1ib2w6ICd2YXJpYWJsZScsXG4gICAgICAnbmFtZWQtY2hhcmFjdGVyJzogJ3ZhcmlhYmxlJyxcbiAgICAgICdidWlsdGluLXN5bWJvbCc6ICdidWlsdF9pbicsXG4gICAgICAnbWVzc2FnZS1uYW1lJzogJ3N0cmluZydcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoL1xcKFxcKi8sIC9cXCpcXCkvLCB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH0pLFxuICAgICAgUEFUVEVSTlMsXG4gICAgICBTTE9UUyxcbiAgICAgIE1FU1NBR0VTLFxuICAgICAgU1lNQk9MUyxcbiAgICAgIE5BTUVEX0NIQVJBQ1RFUixcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBOVU1CRVJTLFxuICAgICAgT1BFUkFUT1JTLFxuICAgICAgQlJBQ0VTXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hdGhlbWF0aWNhO1xuIiwgIi8qXG5MYW5ndWFnZTogTWF0bGFiXG5BdXRob3I6IERlbmlzIEJhcmRhZHltIDxiYXJkYWR5bWNoaWtAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBFdWdlbmUgTml6aGliaXRza3kgPG5pemhpYml0c2t5QHlhLnJ1PiwgRWdvciBSb2dvdiA8ZS5yb2dvdkBwb3N0Z3Jlc3Byby5ydT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3Lm1hdGh3b3Jrcy5jb20vcHJvZHVjdHMvbWF0bGFiLmh0bWxcbkNhdGVnb3J5OiBzY2llbnRpZmljXG4qL1xuXG4vKlxuICBGb3JtYWwgc3ludGF4IGlzIG5vdCBwdWJsaXNoZWQsIGhlbHBmdWwgbGluazpcbiAgaHR0cHM6Ly9naXRodWIuY29tL2tvcm5pbG92YS1sL21hdGxhYi1JbnRlbGxpSi1wbHVnaW4vYmxvYi9tYXN0ZXIvc3JjL21haW4vZ3JhbW1hci9NYXRsYWIuYm5mXG4qL1xuZnVuY3Rpb24gbWF0bGFiKGhsanMpIHtcbiAgY29uc3QgVFJBTlNQT1NFX1JFID0gJyhcXCd8XFxcXC5cXCcpKyc7XG4gIGNvbnN0IFRSQU5TUE9TRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogVFJBTlNQT1NFX1JFIH0gXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01hdGxhYicsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhcmd1bWVudHMgYnJlYWsgY2FzZSBjYXRjaCBjbGFzc2RlZiBjb250aW51ZSBlbHNlIGVsc2VpZiBlbmQgZW51bWVyYXRpb24gZXZlbnRzIGZvciBmdW5jdGlvbiAnXG4gICAgICAgICsgJ2dsb2JhbCBpZiBtZXRob2RzIG90aGVyd2lzZSBwYXJmb3IgcGVyc2lzdGVudCBwcm9wZXJ0aWVzIHJldHVybiBzcG1kIHN3aXRjaCB0cnkgd2hpbGUnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdzaW4gc2luZCBzaW5oIGFzaW4gYXNpbmQgYXNpbmggY29zIGNvc2QgY29zaCBhY29zIGFjb3NkIGFjb3NoIHRhbiB0YW5kIHRhbmggYXRhbiAnXG4gICAgICAgICsgJ2F0YW5kIGF0YW4yIGF0YW5oIHNlYyBzZWNkIHNlY2ggYXNlYyBhc2VjZCBhc2VjaCBjc2MgY3NjZCBjc2NoIGFjc2MgYWNzY2QgYWNzY2ggY290ICdcbiAgICAgICAgKyAnY290ZCBjb3RoIGFjb3QgYWNvdGQgYWNvdGggaHlwb3QgZXhwIGV4cG0xIGxvZyBsb2cxcCBsb2cxMCBsb2cyIHBvdzIgcmVhbHBvdyByZWFsbG9nICdcbiAgICAgICAgKyAncmVhbHNxcnQgc3FydCBudGhyb290IG5leHRwb3cyIGFicyBhbmdsZSBjb21wbGV4IGNvbmogaW1hZyByZWFsIHVud3JhcCBpc3JlYWwgJ1xuICAgICAgICArICdjcGx4cGFpciBmaXggZmxvb3IgY2VpbCByb3VuZCBtb2QgcmVtIHNpZ24gYWlyeSBiZXNzZWxqIGJlc3NlbHkgYmVzc2VsaCBiZXNzZWxpICdcbiAgICAgICAgKyAnYmVzc2VsayBiZXRhIGJldGFpbmMgYmV0YWxuIGVsbGlwaiBlbGxpcGtlIGVyZiBlcmZjIGVyZmN4IGVyZmludiBleHBpbnQgZ2FtbWEgJ1xuICAgICAgICArICdnYW1tYWluYyBnYW1tYWxuIHBzaSBsZWdlbmRyZSBjcm9zcyBkb3QgZmFjdG9yIGlzcHJpbWUgcHJpbWVzIGdjZCBsY20gcmF0IHJhdHMgcGVybXMgJ1xuICAgICAgICArICduY2hvb3NlayBmYWN0b3JpYWwgY2FydDJzcGggY2FydDJwb2wgcG9sMmNhcnQgc3BoMmNhcnQgaHN2MnJnYiByZ2IyaHN2IHplcm9zIG9uZXMgJ1xuICAgICAgICArICdleWUgcmVwbWF0IHJhbmQgcmFuZG4gbGluc3BhY2UgbG9nc3BhY2UgZnJlcXNwYWNlIG1lc2hncmlkIGFjY3VtYXJyYXkgc2l6ZSBsZW5ndGggJ1xuICAgICAgICArICduZGltcyBudW1lbCBkaXNwIGlzZW1wdHkgaXNlcXVhbCBpc2VxdWFsd2l0aGVxdWFsbmFucyBjYXQgcmVzaGFwZSBkaWFnIGJsa2RpYWcgdHJpbCAnXG4gICAgICAgICsgJ3RyaXUgZmxpcGxyIGZsaXB1ZCBmbGlwZGltIHJvdDkwIGZpbmQgc3ViMmluZCBpbmQyc3ViIGJzeGZ1biBuZGdyaWQgcGVybXV0ZSBpcGVybXV0ZSAnXG4gICAgICAgICsgJ3NoaWZ0ZGltIGNpcmNzaGlmdCBzcXVlZXplIGlzc2NhbGFyIGlzdmVjdG9yIGFucyBlcHMgcmVhbG1heCByZWFsbWluIHBpIGl8MCBpbmYgbmFuICdcbiAgICAgICAgKyAnaXNuYW4gaXNpbmYgaXNmaW5pdGUganwwIHdoeSBjb21wYW4gZ2FsbGVyeSBoYWRhbWFyZCBoYW5rZWwgaGlsYiBpbnZoaWxiIG1hZ2ljIHBhc2NhbCAnXG4gICAgICAgICsgJ3Jvc3NlciB0b2VwbGl0eiB2YW5kZXIgd2lsa2luc29uIG1heCBtaW4gbmFubWF4IG5hbm1pbiBtZWFuIG5hbm1lYW4gdHlwZSB0YWJsZSAnXG4gICAgICAgICsgJ3JlYWR0YWJsZSB3cml0ZXRhYmxlIHNvcnRyb3dzIHNvcnQgZmlndXJlIHBsb3QgcGxvdDMgc2NhdHRlciBzY2F0dGVyMyBjZWxsZnVuICdcbiAgICAgICAgKyAnbGVnZW5kIGludGVyc2VjdCBpc21lbWJlciBwcm9jcnVzdGVzIGhvbGQgbnVtMmNlbGwgJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogJygvL3xcInwjfC9cXFxcKnxcXFxccysvXFxcXHcrKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgICAgICAgICAgZW5kOiAnXFxcXF0nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IC90cnVlfGZhbHNlLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBzdGFydHM6IFRSQU5TUE9TRVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16QS1aXVthLXpBLVpfMC05XSonICsgVFJBTlNQT1NFX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogVFJBTlNQT1NFXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcXCdcXCcnIH0gXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXF18XFx9fFxcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgc3RhcnRzOiBUUkFOU1BPU0VcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF0sXG4gICAgICAgIHN0YXJ0czogVFJBTlNQT1NFXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXHMqJVxcXFx7XFxcXHMqJCcsICdeXFxcXHMqJVxcXFx9XFxcXHMqJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKCclJywgJyQnKVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXRsYWI7XG4iLCAiLypcbkxhbmd1YWdlOiBNYXhpbWFcbkF1dGhvcjogUm9iZXJ0IERvZGllciA8cm9iZXJ0LmRvZGllckBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbWF4aW1hLnNvdXJjZWZvcmdlLm5ldFxuQ2F0ZWdvcnk6IHNjaWVudGlmaWNcbiovXG5cbmZ1bmN0aW9uIG1heGltYShobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID1cbiAgICAnaWYgdGhlbiBlbHNlIGVsc2VpZiBmb3IgdGhydSBkbyB3aGlsZSB1bmxlc3Mgc3RlcCBpbiBhbmQgb3Igbm90JztcbiAgY29uc3QgTElURVJBTFMgPVxuICAgICd0cnVlIGZhbHNlIHVua25vd24gaW5mIG1pbmYgaW5kIHVuZCAlZSAlaSAlcGkgJXBoaSAlZ2FtbWEnO1xuICBjb25zdCBCVUlMVElOX0ZVTkNUSU9OUyA9XG4gICAgJyBhYmFzZXAgYWJzIGFic2ludCBhYnNvbHV0ZV9yZWFsX3RpbWUgYWNvcyBhY29zaCBhY290IGFjb3RoIGFjc2MgYWNzY2ggYWN0aXZhdGUnXG4gICAgKyAnIGFkZGNvbCBhZGRfZWRnZSBhZGRfZWRnZXMgYWRkbWF0cmljZXMgYWRkcm93IGFkZF92ZXJ0ZXggYWRkX3ZlcnRpY2VzIGFkamFjZW5jeV9tYXRyaXgnXG4gICAgKyAnIGFkam9pbiBhZGpvaW50IGFmIGFnZCBhaXJ5IGFpcnlfYWkgYWlyeV9iaSBhaXJ5X2RhaSBhaXJ5X2RiaSBhbGdzeXMgYWxnX3R5cGUnXG4gICAgKyAnIGFsaWFzIGFsbHJvb3RzIGFscGhhY2hhcnAgYWxwaGFudW1lcmljcCBhbW9ydGl6YXRpb24gJWFuZCBhbm51aXR5X2Z2J1xuICAgICsgJyBhbm51aXR5X3B2IGFudGlkIGFudGlkaWZmIEFudGlEaWZmZXJlbmNlIGFwcGVuZCBhcHBlbmRmaWxlIGFwcGx5IGFwcGx5MSBhcHBseTInXG4gICAgKyAnIGFwcGx5YjEgYXByb3BvcyBhcmdzIGFyaXRfYW1vcnRpemF0aW9uIGFyaXRobWV0aWMgYXJpdGhzdW0gYXJyYXkgYXJyYXlhcHBseSdcbiAgICArICcgYXJyYXlpbmZvIGFycmF5bWFrZSBhcnJheXNldGFwcGx5IGFzY2lpIGFzZWMgYXNlY2ggYXNpbiBhc2luaCBhc2tpbnRlZ2VyJ1xuICAgICsgJyBhc2tzaWduIGFzc29jIGFzc29jX2xlZ2VuZHJlX3AgYXNzb2NfbGVnZW5kcmVfcSBhc3N1bWUgYXNzdW1lX2V4dGVybmFsX2J5dGVfb3JkZXInXG4gICAgKyAnIGFzeW1wYSBhdCBhdGFuIGF0YW4yIGF0YW5oIGF0ZW5zaW1wIGF0b20gYXR2YWx1ZSBhdWdjb2VmbWF0cml4IGF1Z21lbnRlZF9sYWdyYW5naWFuX21ldGhvZCdcbiAgICArICcgYXYgYXZlcmFnZV9kZWdyZWUgYmFja3RyYWNlIGJhcnMgYmFyc3Bsb3QgYmFyc3Bsb3RfZGVzY3JpcHRpb24gYmFzZTY0IGJhc2U2NF9kZWNvZGUnXG4gICAgKyAnIGJhc2hpbmRpY2VzIGJhdGNoIGJhdGNobG9hZCBiYzIgYmR2YWMgYmVsbG4gYmVuZWZpdF9jb3N0IGJlcm4gYmVybnBvbHkgYmVybnN0ZWluX2FwcHJveCdcbiAgICArICcgYmVybnN0ZWluX2V4cGFuZCBiZXJuc3RlaW5fcG9seSBiZXNzZWwgYmVzc2VsX2kgYmVzc2VsX2ogYmVzc2VsX2sgYmVzc2VsX3NpbXBsaWZ5J1xuICAgICsgJyBiZXNzZWxfeSBiZXRhIGJldGFfaW5jb21wbGV0ZSBiZXRhX2luY29tcGxldGVfZ2VuZXJhbGl6ZWQgYmV0YV9pbmNvbXBsZXRlX3JlZ3VsYXJpemVkJ1xuICAgICsgJyBiZXpvdXQgYmZhbGxyb290cyBiZmZhYyBiZl9maW5kX3Jvb3QgYmZfZm1pbl9jb2J5bGEgYmZoemV0YSBiZmxvYXQgYmZsb2F0cCdcbiAgICArICcgYmZwc2kgYmZwc2kwIGJmemV0YSBiaWNvbm5lY3RlZF9jb21wb25lbnRzIGJpbWV0cmljIGJpbm9taWFsIGJpcGFydGl0aW9uJ1xuICAgICsgJyBibG9jayBibG9ja21hdHJpeHAgYm9kZV9nYWluIGJvZGVfcGhhc2UgYm90aGNvZWYgYm94IGJveHBsb3QgYm94cGxvdF9kZXNjcmlwdGlvbidcbiAgICArICcgYnJlYWsgYnVnX3JlcG9ydCBidWlsZF9pbmZvfDEwIGJ1aWxkcSBidWlsZF9zYW1wbGUgYnVybiBjYWJzIGNhbmZvcm0gY2FudGVuJ1xuICAgICsgJyBjYXJkaW5hbGl0eSBjYXJnIGNhcnRhbiBjYXJ0ZXNpYW5fcHJvZHVjdCBjYXRjaCBjYXVjaHlfbWF0cml4IGNiZmZhYyBjZGZfYmVybm91bGxpJ1xuICAgICsgJyBjZGZfYmV0YSBjZGZfYmlub21pYWwgY2RmX2NhdWNoeSBjZGZfY2hpMiBjZGZfY29udGludW91c191bmlmb3JtIGNkZl9kaXNjcmV0ZV91bmlmb3JtJ1xuICAgICsgJyBjZGZfZXhwIGNkZl9mIGNkZl9nYW1tYSBjZGZfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgY2RmX2dlb21ldHJpYyBjZGZfZ3VtYmVsJ1xuICAgICsgJyBjZGZfaHlwZXJnZW9tZXRyaWMgY2RmX2xhcGxhY2UgY2RmX2xvZ2lzdGljIGNkZl9sb2dub3JtYWwgY2RmX25lZ2F0aXZlX2Jpbm9taWFsJ1xuICAgICsgJyBjZGZfbm9uY2VudHJhbF9jaGkyIGNkZl9ub25jZW50cmFsX3N0dWRlbnRfdCBjZGZfbm9ybWFsIGNkZl9wYXJldG8gY2RmX3BvaXNzb24nXG4gICAgKyAnIGNkZl9yYW5rX3N1bSBjZGZfcmF5bGVpZ2ggY2RmX3NpZ25lZF9yYW5rIGNkZl9zdHVkZW50X3QgY2RmX3dlaWJ1bGwgY2Rpc3BsYXknXG4gICAgKyAnIGNlaWxpbmcgY2VudHJhbF9tb21lbnQgY2VxdWFsIGNlcXVhbGlnbm9yZSBjZiBjZmRpc3JlcCBjZmV4cGFuZCBjZ2VvZGVzaWMnXG4gICAgKyAnIGNncmVhdGVycCBjZ3JlYXRlcnBpZ25vcmUgY2hhbmdlbmFtZSBjaGFuZ2V2YXIgY2hhb3NnYW1lIGNoYXJhdCBjaGFyZnVuIGNoYXJmdW4yJ1xuICAgICsgJyBjaGFybGlzdCBjaGFycCBjaGFycG9seSBjaGRpciBjaGVieXNoZXZfdCBjaGVieXNoZXZfdSBjaGVja2RpdiBjaGVja19vdmVybGFwcydcbiAgICArICcgY2hpbmVzZSBjaG9sZXNreSBjaHJpc3RvZiBjaHJvbWF0aWNfaW5kZXggY2hyb21hdGljX251bWJlciBjaW50IGNpcmN1bGFudF9ncmFwaCdcbiAgICArICcgY2xlYXJfZWRnZV93ZWlnaHQgY2xlYXJfcnVsZXMgY2xlYXJfdmVydGV4X2xhYmVsIGNsZWJzY2hfZ29yZGFuIGNsZWJzY2hfZ3JhcGgnXG4gICAgKyAnIGNsZXNzcCBjbGVzc3BpZ25vcmUgY2xvc2UgY2xvc2VmaWxlIGNtZXRyaWMgY29lZmYgY29lZm1hdHJpeCBjb2dyYWQgY29sIGNvbGxhcHNlJ1xuICAgICsgJyBjb2xsZWN0dGVybXMgY29sdW1ub3AgY29sdW1uc3BhY2UgY29sdW1uc3dhcCBjb2x1bW52ZWN0b3IgY29tYmluYXRpb24gY29tYmluZSdcbiAgICArICcgY29tcDJwdWkgY29tcGFyZSBjb21wZmlsZSBjb21waWxlIGNvbXBpbGVfZmlsZSBjb21wbGVtZW50X2dyYXBoIGNvbXBsZXRlX2JpcGFydGl0ZV9ncmFwaCdcbiAgICArICcgY29tcGxldGVfZ3JhcGggY29tcGxleF9udW1iZXJfcCBjb21wb25lbnRzIGNvbXBvc2VfZnVuY3Rpb25zIGNvbmNhbiBjb25jYXQnXG4gICAgKyAnIGNvbmp1Z2F0ZSBjb25tZXRkZXJpdiBjb25uZWN0ZWRfY29tcG9uZW50cyBjb25uZWN0X3ZlcnRpY2VzIGNvbnMgY29uc3RhbnQnXG4gICAgKyAnIGNvbnN0YW50cCBjb25zdGl0dWVudCBjb25zdHZhbHVlIGNvbnQycGFydCBjb250ZW50IGNvbnRpbnVvdXNfZnJlcSBjb250b3J0aW9uJ1xuICAgICsgJyBjb250b3VyX3Bsb3QgY29udHJhY3QgY29udHJhY3RfZWRnZSBjb250cmFncmFkIGNvbnRyaWJfb2RlIGNvbnZlcnQgY29vcmQnXG4gICAgKyAnIGNvcHkgY29weV9maWxlIGNvcHlfZ3JhcGggY29weWxpc3QgY29weW1hdHJpeCBjb3IgY29zIGNvc2ggY290IGNvdGggY292IGNvdjEnXG4gICAgKyAnIGNvdmRpZmYgY292ZWN0IGNvdmVycyBjcmMyNHN1bSBjcmVhdGVfZ3JhcGggY3JlYXRlX2xpc3QgY3NjIGNzY2ggY3NldHVwIGNzcGxpbmUnXG4gICAgKyAnIGN0YXlsb3IgY3RfY29vcmRzeXMgY3RyYW5zZm9ybSBjdHJhbnNwb3NlIGN1YmVfZ3JhcGggY3Vib2N0YWhlZHJvbl9ncmFwaCdcbiAgICArICcgY3VubGlzcCBjdiBjeWNsZV9kaWdyYXBoIGN5Y2xlX2dyYXBoIGN5bGluZHJpY2FsIGRheXMzNjAgZGJsaW50IGRlYWN0aXZhdGUnXG4gICAgKyAnIGRlY2xhcmUgZGVjbGFyZV9jb25zdHZhbHVlIGRlY2xhcmVfZGltZW5zaW9ucyBkZWNsYXJlX2Z1bmRhbWVudGFsX2RpbWVuc2lvbnMnXG4gICAgKyAnIGRlY2xhcmVfZnVuZGFtZW50YWxfdW5pdHMgZGVjbGFyZV9xdHkgZGVjbGFyZV90cmFuc2xhdGVkIGRlY2xhcmVfdW5pdF9jb252ZXJzaW9uJ1xuICAgICsgJyBkZWNsYXJlX3VuaXRzIGRlY2xhcmVfd2VpZ2h0cyBkZWNzeW0gZGVmY29uIGRlZmluZSBkZWZpbmVfYWx0X2Rpc3BsYXkgZGVmaW5lX3ZhcmlhYmxlJ1xuICAgICsgJyBkZWZpbnQgZGVmbWF0Y2ggZGVmcnVsZSBkZWZzdHJ1Y3QgZGVmdGF5bG9yIGRlZ3JlZV9zZXF1ZW5jZSBkZWwgZGVsZXRlIGRlbGV0ZW4nXG4gICAgKyAnIGRlbHRhIGRlbW8gZGVtb2l2cmUgZGVub20gZGVwZW5kcyBkZXJpdmRlZ3JlZSBkZXJpdmxpc3QgZGVzY3JpYmUgZGVzb2x2ZSdcbiAgICArICcgZGV0ZXJtaW5hbnQgZGZsb2F0IGRnYXVzc19hIGRnYXVzc19iIGRnZWV2IGRnZW1tIGRnZXFyZiBkZ2VzdiBkZ2VzdmQgZGlhZydcbiAgICArICcgZGlhZ21hdHJpeCBkaWFnX21hdHJpeCBkaWFnbWF0cml4cCBkaWFtZXRlciBkaWZmIGRpZ2l0Y2hhcnAgZGltYWNzX2V4cG9ydCdcbiAgICArICcgZGltYWNzX2ltcG9ydCBkaW1lbnNpb24gZGltZW5zaW9ubGVzcyBkaW1lbnNpb25zIGRpbWVuc2lvbnNfYXNfbGlzdCBkaXJlY3QnXG4gICAgKyAnIGRpcmVjdG9yeSBkaXNjcmV0ZV9mcmVxIGRpc2pvaW4gZGlzam9pbnRwIGRpc29sYXRlIGRpc3AgZGlzcGNvbiBkaXNwZm9ybSdcbiAgICArICcgZGlzcGZ1biBkaXNwSm9yZGFuIGRpc3BsYXkgZGlzcHJ1bGUgZGlzcHRlcm1zIGRpc3RyaWIgZGl2aWRlIGRpdmlzb3JzIGRpdnN1bSdcbiAgICArICcgZGt1bW1lcl9tIGRrdW1tZXJfdSBkbGFuZ2UgZG9kZWNhaGVkcm9uX2dyYXBoIGRvdHByb2R1Y3QgZG90c2ltcCBkcGFydCdcbiAgICArICcgZHJhdyBkcmF3MmQgZHJhdzNkIGRyYXdkZiBkcmF3X2ZpbGUgZHJhd19ncmFwaCBkc2NhbGFyIGVjaGVsb24gZWRnZV9jb2xvcmluZydcbiAgICArICcgZWRnZV9jb25uZWN0aXZpdHkgZWRnZXMgZWlnZW5zX2J5X2phY29iaSBlaWdlbnZhbHVlcyBlaWdlbnZlY3RvcnMgZWlnaHRoJ1xuICAgICsgJyBlaW5zdGVpbiBlaXZhbHMgZWl2ZWN0cyBlbGFwc2VkX3JlYWxfdGltZSBlbGFwc2VkX3J1bl90aW1lIGVsZTJjb21wIGVsZTJwb2x5bm9tZSdcbiAgICArICcgZWxlMnB1aSBlbGVtIGVsZW1lbnRwIGVsZXZhdGlvbl9ncmlkIGVsaW0gZWxpbV9hbGxidXQgZWxpbWluYXRlIGVsaW1pbmF0ZV91c2luZydcbiAgICArICcgZWxsaXBzZSBlbGxpcHRpY19lIGVsbGlwdGljX2VjIGVsbGlwdGljX2V1IGVsbGlwdGljX2YgZWxsaXB0aWNfa2MgZWxsaXB0aWNfcGknXG4gICAgKyAnIGVtYXRyaXggZW1wdHlfZ3JhcGggZW1wdHlwIGVuZGNvbnMgZW50ZXJtYXRyaXggZW50ZXJ0ZW5zb3IgZW50aWVyIGVxdWFsIGVxdWFscCdcbiAgICArICcgZXF1aXZfY2xhc3NlcyBlcmYgZXJmYyBlcmZfZ2VuZXJhbGl6ZWQgZXJmaSBlcnJjYXRjaCBlcnJvciBlcnJvcm1zZyBlcnJvcnMnXG4gICAgKyAnIGV1bGVyIGV2IGV2YWxfc3RyaW5nIGV2ZW5wIGV2ZXJ5IGV2b2x1dGlvbiBldm9sdXRpb24yZCBldnVuZGlmZiBleGFtcGxlIGV4cCdcbiAgICArICcgZXhwYW5kIGV4cGFuZHdydCBleHBhbmR3cnRfZmFjdG9yZWQgZXhwaW50IGV4cGludGVncmFsX2NoaSBleHBpbnRlZ3JhbF9jaSdcbiAgICArICcgZXhwaW50ZWdyYWxfZSBleHBpbnRlZ3JhbF9lMSBleHBpbnRlZ3JhbF9laSBleHBpbnRlZ3JhbF9lX3NpbXBsaWZ5IGV4cGludGVncmFsX2xpJ1xuICAgICsgJyBleHBpbnRlZ3JhbF9zaGkgZXhwaW50ZWdyYWxfc2kgZXhwbGljaXQgZXhwbG9zZSBleHBvbmVudGlhbGl6ZSBleHByZXNzIGV4cHQnXG4gICAgKyAnIGV4c2VjIGV4dGRpZmYgZXh0cmFjdF9saW5lYXJfZXF1YXRpb25zIGV4dHJlbWFsX3N1YnNldCBlemdjZCAlZiBmOTAgZmFjc3VtJ1xuICAgICsgJyBmYWN0Y29tYiBmYWN0b3IgZmFjdG9yZmFjc3VtIGZhY3RvcmlhbCBmYWN0b3JvdXQgZmFjdG9yc3VtIGZhY3RzIGZhc3RfY2VudHJhbF9lbGVtZW50cydcbiAgICArICcgZmFzdF9saW5zb2x2ZSBmYXN0dGltZXMgZmVhdHVyZXAgZmVybmZhbGUgZmZ0IGZpYiBmaWJ0b3BoaSBmaWZ0aCBmaWxlbmFtZV9tZXJnZSdcbiAgICArICcgZmlsZV9zZWFyY2ggZmlsZV90eXBlIGZpbGxhcnJheSBmaW5kZGUgZmluZF9yb290IGZpbmRfcm9vdF9hYnMgZmluZF9yb290X2Vycm9yJ1xuICAgICsgJyBmaW5kX3Jvb3RfcmVsIGZpcnN0IGZpeCBmbGF0dGVuIGZsZW5ndGggZmxvYXQgZmxvYXRudW1wIGZsb29yIGZsb3dlcl9zbmFyaydcbiAgICArICcgZmx1c2ggZmx1c2gxZGVyaXYgZmx1c2hkIGZsdXNobmQgZmx1c2hfb3V0cHV0IGZtaW5fY29ieWxhIGZvcmdldCBmb3J0cmFuJ1xuICAgICsgJyBmb3VyY29zIGZvdXJleHBhbmQgZm91cmllciBmb3VyaWVyX2VsaW0gZm91cmludCBmb3VyaW50Y29zIGZvdXJpbnRzaW4gZm91cnNpbXAnXG4gICAgKyAnIGZvdXJzaW4gZm91cnRoIGZwb3NpdGlvbiBmcmFtZV9icmFja2V0IGZyZWVvZiBmcmVzaGxpbmUgZnJlc25lbF9jIGZyZXNuZWxfcydcbiAgICArICcgZnJvbV9hZGphY2VuY3lfbWF0cml4IGZydWNodF9ncmFwaCBmdWxsX2xpc3RpZnkgZnVsbG1hcCBmdWxsbWFwbCBmdWxscmF0c2ltcCdcbiAgICArICcgZnVsbHJhdHN1YnN0IGZ1bGxzZXRpZnkgZnVuY3NvbHZlIGZ1bmRhbWVudGFsX2RpbWVuc2lvbnMgZnVuZGFtZW50YWxfdW5pdHMnXG4gICAgKyAnIGZ1bmRlZiBmdW5tYWtlIGZ1bnAgZnYgZzAgZzEgZ2FtbWEgZ2FtbWFfZ3JlZWsgZ2FtbWFfaW5jb21wbGV0ZSBnYW1tYV9pbmNvbXBsZXRlX2dlbmVyYWxpemVkJ1xuICAgICsgJyBnYW1tYV9pbmNvbXBsZXRlX3JlZ3VsYXJpemVkIGdhdXNzIGdhdXNzX2EgZ2F1c3NfYiBnYXVzc3Byb2IgZ2NkIGdjZGV4IGdjZGl2aWRlJ1xuICAgICsgJyBnY2ZhYyBnY2ZhY3RvciBnZCBnZW5lcmFsaXplZF9sYW1iZXJ0X3cgZ2VuZmFjdCBnZW5fbGFndWVycmUgZ2VubWF0cml4IGdlbnN5bSdcbiAgICArICcgZ2VvX2Ftb3J0aXphdGlvbiBnZW9fYW5udWl0eV9mdiBnZW9fYW5udWl0eV9wdiBnZW9tYXAgZ2VvbWV0cmljIGdlb21ldHJpY19tZWFuJ1xuICAgICsgJyBnZW9zdW0gZ2V0IGdldGN1cnJlbnRkaXJlY3RvcnkgZ2V0X2VkZ2Vfd2VpZ2h0IGdldGVudiBnZXRfbHVfZmFjdG9ycyBnZXRfb3V0cHV0X3N0cmVhbV9zdHJpbmcnXG4gICAgKyAnIGdldF9waXhlbCBnZXRfcGxvdF9vcHRpb24gZ2V0X3RleF9lbnZpcm9ubWVudCBnZXRfdGV4X2Vudmlyb25tZW50X2RlZmF1bHQnXG4gICAgKyAnIGdldF92ZXJ0ZXhfbGFiZWwgZ2ZhY3RvciBnZmFjdG9yc3VtIGdnZiBnaXJ0aCBnbG9iYWxfdmFyaWFuY2VzIGduIGdudXBsb3RfY2xvc2UnXG4gICAgKyAnIGdudXBsb3RfcmVwbG90IGdudXBsb3RfcmVzZXQgZ251cGxvdF9yZXN0YXJ0IGdudXBsb3Rfc3RhcnQgZ28gR29zcGVyIEdvc3BlclN1bSdcbiAgICArICcgZ3IyZCBncjNkIGdyYWRlZiBncmFtc2NobWlkdCBncmFwaDZfZGVjb2RlIGdyYXBoNl9lbmNvZGUgZ3JhcGg2X2V4cG9ydCBncmFwaDZfaW1wb3J0J1xuICAgICsgJyBncmFwaF9jZW50ZXIgZ3JhcGhfY2hhcnBvbHkgZ3JhcGhfZWlnZW52YWx1ZXMgZ3JhcGhfZmxvdyBncmFwaF9vcmRlciBncmFwaF9wZXJpcGhlcnknXG4gICAgKyAnIGdyYXBoX3Byb2R1Y3QgZ3JhcGhfc2l6ZSBncmFwaF91bmlvbiBncmVhdF9yaG9tYmljb3NpZG9kZWNhaGVkcm9uX2dyYXBoIGdyZWF0X3Job21iaWN1Ym9jdGFoZWRyb25fZ3JhcGgnXG4gICAgKyAnIGdyaWRfZ3JhcGggZ3JpbmQgZ3JvYm5lcl9iYXNpcyBncm90emNoX2dyYXBoIGhhbWlsdG9uX2N5Y2xlIGhhbWlsdG9uX3BhdGgnXG4gICAgKyAnIGhhbmtlbCBoYW5rZWxfMSBoYW5rZWxfMiBoYXJtb25pYyBoYXJtb25pY19tZWFuIGhhdiBoZWF3b29kX2dyYXBoIGhlcm1pdGUnXG4gICAgKyAnIGhlc3NpYW4gaGdmcmVkIGhpbGJlcnRtYXAgaGlsYmVydF9tYXRyaXggaGlwb3cgaGlzdG9ncmFtIGhpc3RvZ3JhbV9kZXNjcmlwdGlvbidcbiAgICArICcgaG9kZ2UgaG9ybmVyIGh5cGVyZ2VvbWV0cmljIGkwIGkxICVpYmVzIGljMSBpYzIgaWNfY29udmVydCBpY2hyMSBpY2hyMiBpY29zYWhlZHJvbl9ncmFwaCdcbiAgICArICcgaWNvc2lkb2RlY2FoZWRyb25fZ3JhcGggaWN1cnZhdHVyZSBpZGVudCBpZGVudGZvciBpZGVudGl0eSBpZGlmZiBpZGltIGlkdW1teSdcbiAgICArICcgaWVxbiAlaWYgaWZhY3RvcnMgaWZyYW1lcyBpZnMgaWdjZGV4IGlnZW9kZXNpY19jb29yZHMgaWx0IGltYWdlIGltYWdwYXJ0J1xuICAgICsgJyBpbWV0cmljIGltcGxpY2l0IGltcGxpY2l0X2Rlcml2YXRpdmUgaW1wbGljaXRfcGxvdCBpbmRleGVkX3RlbnNvciBpbmRpY2VzJ1xuICAgICsgJyBpbmR1Y2VkX3N1YmdyYXBoIGluZmVyZW5jZXAgaW5mZXJlbmNlX3Jlc3VsdCBpbmZpeCBpbmZvX2Rpc3BsYXkgaW5pdF9hdGVuc29yJ1xuICAgICsgJyBpbml0X2N0ZW5zb3IgaW5fbmVpZ2hib3JzIGlubmVycHJvZHVjdCBpbnBhcnQgaW5wcm9kIGlucnQgaW50ZWdlcnAgaW50ZWdlcl9wYXJ0aXRpb25zJ1xuICAgICsgJyBpbnRlZ3JhdGUgaW50ZXJzZWN0IGludGVyc2VjdGlvbiBpbnRlcnZhbHAgaW50b3BvaXMgaW50b3N1bSBpbnZhcmlhbnQxIGludmFyaWFudDInXG4gICAgKyAnIGludmVyc2VfZmZ0IGludmVyc2VfamFjb2JpX2NkIGludmVyc2VfamFjb2JpX2NuIGludmVyc2VfamFjb2JpX2NzIGludmVyc2VfamFjb2JpX2RjJ1xuICAgICsgJyBpbnZlcnNlX2phY29iaV9kbiBpbnZlcnNlX2phY29iaV9kcyBpbnZlcnNlX2phY29iaV9uYyBpbnZlcnNlX2phY29iaV9uZCBpbnZlcnNlX2phY29iaV9ucydcbiAgICArICcgaW52ZXJzZV9qYWNvYmlfc2MgaW52ZXJzZV9qYWNvYmlfc2QgaW52ZXJzZV9qYWNvYmlfc24gaW52ZXJ0IGludmVydF9ieV9hZGpvaW50J1xuICAgICsgJyBpbnZlcnRfYnlfbHUgaW52X21vZCBpcnIgaXMgaXNfYmljb25uZWN0ZWQgaXNfYmlwYXJ0aXRlIGlzX2Nvbm5lY3RlZCBpc19kaWdyYXBoJ1xuICAgICsgJyBpc19lZGdlX2luX2dyYXBoIGlzX2dyYXBoIGlzX2dyYXBoX29yX2RpZ3JhcGggaXNob3cgaXNfaXNvbW9ycGhpYyBpc29sYXRlJ1xuICAgICsgJyBpc29tb3JwaGlzbSBpc19wbGFuYXIgaXNxcnQgaXNyZWFsX3AgaXNfc2Nvbm5lY3RlZCBpc190cmVlIGlzX3ZlcnRleF9pbl9ncmFwaCdcbiAgICArICcgaXRlbXNfaW5mZXJlbmNlICVqIGowIGoxIGphY29iaSBqYWNvYmlhbiBqYWNvYmlfY2QgamFjb2JpX2NuIGphY29iaV9jcyBqYWNvYmlfZGMnXG4gICAgKyAnIGphY29iaV9kbiBqYWNvYmlfZHMgamFjb2JpX25jIGphY29iaV9uZCBqYWNvYmlfbnMgamFjb2JpX3AgamFjb2JpX3NjIGphY29iaV9zZCdcbiAgICArICcgamFjb2JpX3NuIEpGIGpuIGpvaW4gam9yZGFuIGp1bGlhIGp1bGlhX3NldCBqdWxpYV9zaW4gJWsga2RlbHMga2RlbHRhIGtpbGwnXG4gICAgKyAnIGtpbGxjb250ZXh0IGtvc3RrYSBrcm9uX2RlbHRhIGtyb25lY2tlcl9wcm9kdWN0IGt1bW1lcl9tIGt1bW1lcl91IGt1cnRvc2lzJ1xuICAgICsgJyBrdXJ0b3Npc19iZXJub3VsbGkga3VydG9zaXNfYmV0YSBrdXJ0b3Npc19iaW5vbWlhbCBrdXJ0b3Npc19jaGkyIGt1cnRvc2lzX2NvbnRpbnVvdXNfdW5pZm9ybSdcbiAgICArICcga3VydG9zaXNfZGlzY3JldGVfdW5pZm9ybSBrdXJ0b3Npc19leHAga3VydG9zaXNfZiBrdXJ0b3Npc19nYW1tYSBrdXJ0b3Npc19nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSdcbiAgICArICcga3VydG9zaXNfZ2VvbWV0cmljIGt1cnRvc2lzX2d1bWJlbCBrdXJ0b3Npc19oeXBlcmdlb21ldHJpYyBrdXJ0b3Npc19sYXBsYWNlJ1xuICAgICsgJyBrdXJ0b3Npc19sb2dpc3RpYyBrdXJ0b3Npc19sb2dub3JtYWwga3VydG9zaXNfbmVnYXRpdmVfYmlub21pYWwga3VydG9zaXNfbm9uY2VudHJhbF9jaGkyJ1xuICAgICsgJyBrdXJ0b3Npc19ub25jZW50cmFsX3N0dWRlbnRfdCBrdXJ0b3Npc19ub3JtYWwga3VydG9zaXNfcGFyZXRvIGt1cnRvc2lzX3BvaXNzb24nXG4gICAgKyAnIGt1cnRvc2lzX3JheWxlaWdoIGt1cnRvc2lzX3N0dWRlbnRfdCBrdXJ0b3Npc193ZWlidWxsIGxhYmVsIGxhYmVscyBsYWdyYW5nZSdcbiAgICArICcgbGFndWVycmUgbGFtYmRhIGxhbWJlcnRfdyBsYXBsYWNlIGxhcGxhY2lhbl9tYXRyaXggbGFzdCBsYmZncyBsYzJrZHQgbGNoYXJwJ1xuICAgICsgJyBsY19sIGxjbSBsY191IGxkZWZpbnQgbGRpc3AgbGRpc3BsYXkgbGVnZW5kcmVfcCBsZWdlbmRyZV9xIGxlaW5zdGVpbiBsZW5ndGgnXG4gICAgKyAnIGxldCBsZXRydWxlcyBsZXRzaW1wIGxldmlfY2l2aXRhIGxmcmVlb2YgbGd0cmVpbGxpcyBsaHMgbGkgbGllZGlmZiBsaW1pdCdcbiAgICArICcgTGluZHN0ZWR0IGxpbmVhciBsaW5lYXJpbnRlcnBvbCBsaW5lYXJfcHJvZ3JhbSBsaW5lYXJfcmVncmVzc2lvbiBsaW5lX2dyYXBoJ1xuICAgICsgJyBsaW5zb2x2ZSBsaXN0YXJyYXkgbGlzdF9jb3JyZWxhdGlvbnMgbGlzdGlmeSBsaXN0X21hdHJpeF9lbnRyaWVzIGxpc3RfbmNfbW9ub21pYWxzJ1xuICAgICsgJyBsaXN0b2Z0ZW5zIGxpc3RvZnZhcnMgbGlzdHAgbG1heCBsbWluIGxvYWQgbG9hZGZpbGUgbG9jYWwgbG9jYXRlX21hdHJpeF9lbnRyeSdcbiAgICArICcgbG9nIGxvZ2NvbnRyYWN0IGxvZ19nYW1tYSBsb3BvdyBsb3JlbnR6X2dhdWdlIGxvd2VyY2FzZXAgbHBhcnQgbHJhdHN1YnN0J1xuICAgICsgJyBscmVkdWNlIGxyaWVtYW5uIGxzcXVhcmVzX2VzdGltYXRlcyBsc3F1YXJlc19lc3RpbWF0ZXNfYXBwcm94aW1hdGUgbHNxdWFyZXNfZXN0aW1hdGVzX2V4YWN0J1xuICAgICsgJyBsc3F1YXJlc19tc2UgbHNxdWFyZXNfcmVzaWR1YWxfbXNlIGxzcXVhcmVzX3Jlc2lkdWFscyBsc3VtIGx0cmVpbGxpcyBsdV9iYWNrc3ViJ1xuICAgICsgJyBsdWNhcyBsdV9mYWN0b3IgJW0gbWFjcm9leHBhbmQgbWFjcm9leHBhbmQxIG1ha2VfYXJyYXkgbWFrZWJveCBtYWtlZmFjdCBtYWtlZ2FtbWEnXG4gICAgKyAnIG1ha2VfZ3JhcGggbWFrZV9sZXZlbF9waWN0dXJlIG1ha2VsaXN0IG1ha2VPcmRlcnMgbWFrZV9wb2x5X2NvbnRpbmVudCBtYWtlX3BvbHlfY291bnRyeSdcbiAgICArICcgbWFrZV9wb2x5Z29uIG1ha2VfcmFuZG9tX3N0YXRlIG1ha2VfcmdiX3BpY3R1cmUgbWFrZXNldCBtYWtlX3N0cmluZ19pbnB1dF9zdHJlYW0nXG4gICAgKyAnIG1ha2Vfc3RyaW5nX291dHB1dF9zdHJlYW0gbWFrZV90cmFuc2Zvcm0gbWFuZGVsYnJvdCBtYW5kZWxicm90X3NldCBtYXAgbWFwYXRvbSdcbiAgICArICcgbWFwbGlzdCBtYXRjaGRlY2xhcmUgbWF0Y2hmaXggbWF0X2NvbmQgbWF0X2Z1bGx1bmJsb2NrZXIgbWF0X2Z1bmN0aW9uIG1hdGhtbF9kaXNwbGF5J1xuICAgICsgJyBtYXRfbm9ybSBtYXRyaXggbWF0cml4bWFwIG1hdHJpeHAgbWF0cml4X3NpemUgbWF0dHJhY2UgbWF0X3RyYWNlIG1hdF91bmJsb2NrZXInXG4gICAgKyAnIG1heCBtYXhfY2xpcXVlIG1heF9kZWdyZWUgbWF4X2Zsb3cgbWF4aW1pemVfbHAgbWF4X2luZGVwZW5kZW50X3NldCBtYXhfbWF0Y2hpbmcnXG4gICAgKyAnIG1heWJlIG1kNXN1bSBtZWFuIG1lYW5fYmVybm91bGxpIG1lYW5fYmV0YSBtZWFuX2Jpbm9taWFsIG1lYW5fY2hpMiBtZWFuX2NvbnRpbnVvdXNfdW5pZm9ybSdcbiAgICArICcgbWVhbl9kZXZpYXRpb24gbWVhbl9kaXNjcmV0ZV91bmlmb3JtIG1lYW5fZXhwIG1lYW5fZiBtZWFuX2dhbW1hIG1lYW5fZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUnXG4gICAgKyAnIG1lYW5fZ2VvbWV0cmljIG1lYW5fZ3VtYmVsIG1lYW5faHlwZXJnZW9tZXRyaWMgbWVhbl9sYXBsYWNlIG1lYW5fbG9naXN0aWMnXG4gICAgKyAnIG1lYW5fbG9nbm9ybWFsIG1lYW5fbmVnYXRpdmVfYmlub21pYWwgbWVhbl9ub25jZW50cmFsX2NoaTIgbWVhbl9ub25jZW50cmFsX3N0dWRlbnRfdCdcbiAgICArICcgbWVhbl9ub3JtYWwgbWVhbl9wYXJldG8gbWVhbl9wb2lzc29uIG1lYW5fcmF5bGVpZ2ggbWVhbl9zdHVkZW50X3QgbWVhbl93ZWlidWxsJ1xuICAgICsgJyBtZWRpYW4gbWVkaWFuX2RldmlhdGlvbiBtZW1iZXIgbWVzaCBtZXRyaWNleHBhbmRhbGwgbWdmMV9zaGExIG1pbiBtaW5fZGVncmVlJ1xuICAgICsgJyBtaW5fZWRnZV9jdXQgbWluZmFjdG9yaWFsIG1pbmltYWxQb2x5IG1pbmltaXplX2xwIG1pbmltdW1fc3Bhbm5pbmdfdHJlZSBtaW5vcidcbiAgICArICcgbWlucGFja19sc3F1YXJlcyBtaW5wYWNrX3NvbHZlIG1pbl92ZXJ0ZXhfY292ZXIgbWluX3ZlcnRleF9jdXQgbWtkaXIgbW5ld3RvbidcbiAgICArICcgbW9kIG1vZGVfZGVjbGFyZSBtb2RlX2lkZW50aXR5IE1vZGVNYXRyaXggbW9lYml1cyBtb24yc2NodXIgbW9ubyBtb25vbWlhbF9kaW1lbnNpb25zJ1xuICAgICsgJyBtdWx0aWJlcm5zdGVpbl9wb2x5IG11bHRpX2Rpc3BsYXlfZm9yX3RleGluZm8gbXVsdGlfZWxlbSBtdWx0aW5vbWlhbCBtdWx0aW5vbWlhbF9jb2VmZidcbiAgICArICcgbXVsdGlfb3JiaXQgbXVsdGlwbG90X21vZGUgbXVsdGlfcHVpIG11bHRzeW0gbXVsdHRocnUgbXljaWVsc2tpX2dyYXBoIG5hcnknXG4gICAgKyAnIG5hdHVyYWxfdW5pdCBuY19kZWdyZWUgbmNleHB0IG5jaGFycG9seSBuZWdhdGl2ZV9waWN0dXJlIG5laWdoYm9ycyBuZXcgbmV3Y29udGV4dCdcbiAgICArICcgbmV3ZGV0IG5ld19ncmFwaCBuZXdsaW5lIG5ld3RvbiBuZXdfdmFyaWFibGUgbmV4dF9wcmltZSBuaWNlZHVtbWllcyBuaWNlaW5kaWNlcydcbiAgICArICcgbmludGggbm9maXggbm9uYXJyYXkgbm9uY2VudHJhbF9tb21lbnQgbm9ubWV0cmljaXR5IG5vbm5lZ2ludGVnZXJwIG5vbnNjYWxhcnAnXG4gICAgKyAnIG5vbnplcm9hbmRmcmVlb2Ygbm90ZXF1YWwgbm91bmlmeSBucHRldHJhZCBucHYgbnJvb3RzIG50ZXJtcyBudGVybXN0J1xuICAgICsgJyBudGhyb290IG51bGxpdHkgbnVsbHNwYWNlIG51bSBudW1iZXJlZF9ib3VuZGFyaWVzIG51bWJlcnAgbnVtYmVyX3RvX29jdGV0cydcbiAgICArICcgbnVtX2Rpc3RpbmN0X3BhcnRpdGlvbnMgbnVtZXJ2YWwgbnVtZmFjdG9yIG51bV9wYXJ0aXRpb25zIG51c3VtIG56ZXRhIG56ZXRhaSdcbiAgICArICcgbnpldGFyIG9jdGV0c190b19udW1iZXIgb2N0ZXRzX3RvX29pZCBvZGRfZ2lydGggb2RkcCBvZGUyIG9kZV9jaGVjayBvZGVsaW4nXG4gICAgKyAnIG9pZF90b19vY3RldHMgb3Agb3BlbmEgb3BlbmFfYmluYXJ5IG9wZW5yIG9wZW5yX2JpbmFyeSBvcGVudyBvcGVud19iaW5hcnknXG4gICAgKyAnIG9wZXJhdG9ycCBvcHN1YnN0IG9wdGltaXplICVvciBvcmJpdCBvcmJpdHMgb3JkZXJncmVhdCBvcmRlcmdyZWF0cCBvcmRlcmxlc3MnXG4gICAgKyAnIG9yZGVybGVzc3Agb3J0aG9nb25hbF9jb21wbGVtZW50IG9ydGhvcG9seV9yZWN1ciBvcnRob3BvbHlfd2VpZ2h0IG91dGVybWFwJ1xuICAgICsgJyBvdXRfbmVpZ2hib3JzIG91dG9mcG9pcyBwYWRlIHBhcmFib2xpY19jeWxpbmRlcl9kIHBhcmFtZXRyaWMgcGFyYW1ldHJpY19zdXJmYWNlJ1xuICAgICsgJyBwYXJnIHBhckdvc3BlciBwYXJzZV9zdHJpbmcgcGFyc2VfdGltZWRhdGUgcGFydCBwYXJ0MmNvbnQgcGFydGZyYWMgcGFydGl0aW9uJ1xuICAgICsgJyBwYXJ0aXRpb25fc2V0IHBhcnRwb2wgcGF0aF9kaWdyYXBoIHBhdGhfZ3JhcGggcGF0aG5hbWVfZGlyZWN0b3J5IHBhdGhuYW1lX25hbWUnXG4gICAgKyAnIHBhdGhuYW1lX3R5cGUgcGRmX2Jlcm5vdWxsaSBwZGZfYmV0YSBwZGZfYmlub21pYWwgcGRmX2NhdWNoeSBwZGZfY2hpMiBwZGZfY29udGludW91c191bmlmb3JtJ1xuICAgICsgJyBwZGZfZGlzY3JldGVfdW5pZm9ybSBwZGZfZXhwIHBkZl9mIHBkZl9nYW1tYSBwZGZfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUnXG4gICAgKyAnIHBkZl9nZW9tZXRyaWMgcGRmX2d1bWJlbCBwZGZfaHlwZXJnZW9tZXRyaWMgcGRmX2xhcGxhY2UgcGRmX2xvZ2lzdGljIHBkZl9sb2dub3JtYWwnXG4gICAgKyAnIHBkZl9uZWdhdGl2ZV9iaW5vbWlhbCBwZGZfbm9uY2VudHJhbF9jaGkyIHBkZl9ub25jZW50cmFsX3N0dWRlbnRfdCBwZGZfbm9ybWFsJ1xuICAgICsgJyBwZGZfcGFyZXRvIHBkZl9wb2lzc29uIHBkZl9yYW5rX3N1bSBwZGZfcmF5bGVpZ2ggcGRmX3NpZ25lZF9yYW5rIHBkZl9zdHVkZW50X3QnXG4gICAgKyAnIHBkZl93ZWlidWxsIHBlYXJzb25fc2tld25lc3MgcGVybWFuZW50IHBlcm11dCBwZXJtdXRhdGlvbiBwZXJtdXRhdGlvbnMgcGV0ZXJzZW5fZ3JhcGgnXG4gICAgKyAnIHBldHJvdiBwaWNrYXBhcnQgcGljdHVyZV9lcXVhbHAgcGljdHVyZXAgcGllY2hhcnQgcGllY2hhcnRfZGVzY3JpcHRpb24gcGxhbmFyX2VtYmVkZGluZydcbiAgICArICcgcGxheWJhY2sgcGxvZyBwbG90MmQgcGxvdDNkIHBsb3RkZiBwbG90ZXEgcGxzcXVhcmVzIHBvY2hoYW1tZXIgcG9pbnRzIHBvaXNkaWZmJ1xuICAgICsgJyBwb2lzZXhwdCBwb2lzaW50IHBvaXNtYXAgcG9pc3BsdXMgcG9pc3NpbXAgcG9pc3N1YnN0IHBvaXN0aW1lcyBwb2lzdHJpbSBwb2xhcidcbiAgICArICcgcG9sYXJmb3JtIHBvbGFydG9yZWN0IHBvbGFyX3RvX3h5IHBvbHlfYWRkIHBvbHlfYnVjaGJlcmdlciBwb2x5X2J1Y2hiZXJnZXJfY3JpdGVyaW9uJ1xuICAgICsgJyBwb2x5X2NvbG9uX2lkZWFsIHBvbHlfY29udGVudCBwb2x5ZGVjb21wIHBvbHlfZGVwZW5kc19wIHBvbHlfZWxpbWluYXRpb25faWRlYWwnXG4gICAgKyAnIHBvbHlfZXhhY3RfZGl2aWRlIHBvbHlfZXhwYW5kIHBvbHlfZXhwdCBwb2x5X2djZCBwb2x5Z29uIHBvbHlfZ3JvYm5lciBwb2x5X2dyb2JuZXJfZXF1YWwnXG4gICAgKyAnIHBvbHlfZ3JvYm5lcl9tZW1iZXIgcG9seV9ncm9ibmVyX3N1YnNldHAgcG9seV9pZGVhbF9pbnRlcnNlY3Rpb24gcG9seV9pZGVhbF9wb2x5c2F0dXJhdGlvbidcbiAgICArICcgcG9seV9pZGVhbF9wb2x5c2F0dXJhdGlvbjEgcG9seV9pZGVhbF9zYXR1cmF0aW9uIHBvbHlfaWRlYWxfc2F0dXJhdGlvbjEgcG9seV9sY20nXG4gICAgKyAnIHBvbHlfbWluaW1pemF0aW9uIHBvbHltb2QgcG9seV9tdWx0aXBseSBwb2x5bm9tZTJlbGUgcG9seW5vbWlhbHAgcG9seV9ub3JtYWxfZm9ybSdcbiAgICArICcgcG9seV9ub3JtYWxpemUgcG9seV9ub3JtYWxpemVfbGlzdCBwb2x5X3BvbHlzYXR1cmF0aW9uX2V4dGVuc2lvbiBwb2x5X3ByaW1pdGl2ZV9wYXJ0J1xuICAgICsgJyBwb2x5X3BzZXVkb19kaXZpZGUgcG9seV9yZWR1Y2VkX2dyb2JuZXIgcG9seV9yZWR1Y3Rpb24gcG9seV9zYXR1cmF0aW9uX2V4dGVuc2lvbidcbiAgICArICcgcG9seV9zX3BvbHlub21pYWwgcG9seV9zdWJ0cmFjdCBwb2x5dG9jb21wYW5pb24gcG9wIHBvc3RmaXggcG90ZW50aWFsIHBvd2VyX21vZCdcbiAgICArICcgcG93ZXJzZXJpZXMgcG93ZXJzZXQgcHJlZml4IHByZXZfcHJpbWUgcHJpbWVwIHByaW1lcyBwcmluY2lwYWxfY29tcG9uZW50cydcbiAgICArICcgcHJpbnQgcHJpbnRmIHByaW50ZmlsZSBwcmludF9ncmFwaCBwcmludHBvaXMgcHJpbnRwcm9wcyBwcm9kcmFjIHByb2R1Y3QgcHJvcGVydGllcydcbiAgICArICcgcHJvcHZhcnMgcHNpIHBzdWJzdCBwdHJpYW5ndWxhcml6ZSBwdWkgcHVpMmNvbXAgcHVpMmVsZSBwdWkycG9seW5vbWUgcHVpX2RpcmVjdCdcbiAgICArICcgcHVpcmVkdWMgcHVzaCBwdXQgcHYgcXB1dCBxcmFuZ2UgcXR5IHF1YWRfY29udHJvbCBxdWFkX3FhZyBxdWFkX3FhZ2kgcXVhZF9xYWdwJ1xuICAgICsgJyBxdWFkX3FhZ3MgcXVhZF9xYXdjIHF1YWRfcWF3ZiBxdWFkX3Fhd28gcXVhZF9xYXdzIHF1YWRyaWxhdGVyYWwgcXVhbnRpbGUnXG4gICAgKyAnIHF1YW50aWxlX2Jlcm5vdWxsaSBxdWFudGlsZV9iZXRhIHF1YW50aWxlX2Jpbm9taWFsIHF1YW50aWxlX2NhdWNoeSBxdWFudGlsZV9jaGkyJ1xuICAgICsgJyBxdWFudGlsZV9jb250aW51b3VzX3VuaWZvcm0gcXVhbnRpbGVfZGlzY3JldGVfdW5pZm9ybSBxdWFudGlsZV9leHAgcXVhbnRpbGVfZidcbiAgICArICcgcXVhbnRpbGVfZ2FtbWEgcXVhbnRpbGVfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcXVhbnRpbGVfZ2VvbWV0cmljIHF1YW50aWxlX2d1bWJlbCdcbiAgICArICcgcXVhbnRpbGVfaHlwZXJnZW9tZXRyaWMgcXVhbnRpbGVfbGFwbGFjZSBxdWFudGlsZV9sb2dpc3RpYyBxdWFudGlsZV9sb2dub3JtYWwnXG4gICAgKyAnIHF1YW50aWxlX25lZ2F0aXZlX2Jpbm9taWFsIHF1YW50aWxlX25vbmNlbnRyYWxfY2hpMiBxdWFudGlsZV9ub25jZW50cmFsX3N0dWRlbnRfdCdcbiAgICArICcgcXVhbnRpbGVfbm9ybWFsIHF1YW50aWxlX3BhcmV0byBxdWFudGlsZV9wb2lzc29uIHF1YW50aWxlX3JheWxlaWdoIHF1YW50aWxlX3N0dWRlbnRfdCdcbiAgICArICcgcXVhbnRpbGVfd2VpYnVsbCBxdWFydGlsZV9za2V3bmVzcyBxdWl0IHF1bml0IHF1b3RpZW50IHJhY2FoX3YgcmFjYWhfdyByYWRjYW4nXG4gICAgKyAnIHJhZGl1cyByYW5kb20gcmFuZG9tX2Jlcm5vdWxsaSByYW5kb21fYmV0YSByYW5kb21fYmlub21pYWwgcmFuZG9tX2JpcGFydGl0ZV9ncmFwaCdcbiAgICArICcgcmFuZG9tX2NhdWNoeSByYW5kb21fY2hpMiByYW5kb21fY29udGludW91c191bmlmb3JtIHJhbmRvbV9kaWdyYXBoIHJhbmRvbV9kaXNjcmV0ZV91bmlmb3JtJ1xuICAgICsgJyByYW5kb21fZXhwIHJhbmRvbV9mIHJhbmRvbV9nYW1tYSByYW5kb21fZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcmFuZG9tX2dlb21ldHJpYydcbiAgICArICcgcmFuZG9tX2dyYXBoIHJhbmRvbV9ncmFwaDEgcmFuZG9tX2d1bWJlbCByYW5kb21faHlwZXJnZW9tZXRyaWMgcmFuZG9tX2xhcGxhY2UnXG4gICAgKyAnIHJhbmRvbV9sb2dpc3RpYyByYW5kb21fbG9nbm9ybWFsIHJhbmRvbV9uZWdhdGl2ZV9iaW5vbWlhbCByYW5kb21fbmV0d29yaydcbiAgICArICcgcmFuZG9tX25vbmNlbnRyYWxfY2hpMiByYW5kb21fbm9uY2VudHJhbF9zdHVkZW50X3QgcmFuZG9tX25vcm1hbCByYW5kb21fcGFyZXRvJ1xuICAgICsgJyByYW5kb21fcGVybXV0YXRpb24gcmFuZG9tX3BvaXNzb24gcmFuZG9tX3JheWxlaWdoIHJhbmRvbV9yZWd1bGFyX2dyYXBoIHJhbmRvbV9zdHVkZW50X3QnXG4gICAgKyAnIHJhbmRvbV90b3VybmFtZW50IHJhbmRvbV90cmVlIHJhbmRvbV93ZWlidWxsIHJhbmdlIHJhbmsgcmF0IHJhdGNvZWYgcmF0ZGVub20nXG4gICAgKyAnIHJhdGRpZmYgcmF0ZGlzcmVwIHJhdGV4cGFuZCByYXRpbnRlcnBvbCByYXRpb25hbCByYXRpb25hbGl6ZSByYXRudW1lciByYXRudW1wJ1xuICAgICsgJyByYXRwIHJhdHNpbXAgcmF0c3Vic3QgcmF0dmFycyByYXR3ZWlnaHQgcmVhZCByZWFkX2FycmF5IHJlYWRfYmluYXJ5X2FycmF5J1xuICAgICsgJyByZWFkX2JpbmFyeV9saXN0IHJlYWRfYmluYXJ5X21hdHJpeCByZWFkYnl0ZSByZWFkY2hhciByZWFkX2hhc2hlZF9hcnJheSByZWFkbGluZSdcbiAgICArICcgcmVhZF9saXN0IHJlYWRfbWF0cml4IHJlYWRfbmVzdGVkX2xpc3QgcmVhZG9ubHkgcmVhZF94cG0gcmVhbF9pbWFncGFydF90b19jb25qdWdhdGUnXG4gICAgKyAnIHJlYWxwYXJ0IHJlYWxyb290cyByZWFycmF5IHJlY3RhbmdsZSByZWN0Zm9ybSByZWN0Zm9ybV9sb2dfaWZfY29uc3RhbnQgcmVjdHRvcG9sYXInXG4gICAgKyAnIHJlZGlmZiByZWR1Y2VfY29uc3RzIHJlZHVjZV9vcmRlciByZWdpb24gcmVnaW9uX2JvdW5kYXJpZXMgcmVnaW9uX2JvdW5kYXJpZXNfcGx1cydcbiAgICArICcgcmVtIHJlbWFpbmRlciByZW1hcnJheSByZW1ib3ggcmVtY29tcHMgcmVtY29uIHJlbWNvb3JkIHJlbWZ1biByZW1mdW5jdGlvbidcbiAgICArICcgcmVtbGV0IHJlbW92ZSByZW1vdmVfY29uc3R2YWx1ZSByZW1vdmVfZGltZW5zaW9ucyByZW1vdmVfZWRnZSByZW1vdmVfZnVuZGFtZW50YWxfZGltZW5zaW9ucydcbiAgICArICcgcmVtb3ZlX2Z1bmRhbWVudGFsX3VuaXRzIHJlbW92ZV9wbG90X29wdGlvbiByZW1vdmVfdmVydGV4IHJlbXBhcnQgcmVtcnVsZSdcbiAgICArICcgcmVtc3ltIHJlbXZhbHVlIHJlbmFtZSByZW5hbWVfZmlsZSByZXNldCByZXNldF9kaXNwbGF5cyByZXNpZHVlIHJlc29sdmFudGUnXG4gICAgKyAnIHJlc29sdmFudGVfYWx0ZXJuZWUxIHJlc29sdmFudGVfYmlwYXJ0aXRlIHJlc29sdmFudGVfZGllZHJhbGUgcmVzb2x2YW50ZV9rbGVpbidcbiAgICArICcgcmVzb2x2YW50ZV9rbGVpbjMgcmVzb2x2YW50ZV9wcm9kdWl0X3N5bSByZXNvbHZhbnRlX3VuaXRhaXJlIHJlc29sdmFudGVfdmllcmVyJ1xuICAgICsgJyByZXN0IHJlc3VsdGFudCByZXR1cm4gcmV2ZWFsIHJldmVyc2UgcmV2ZXJ0IHJldmVydDIgcmdiMmxldmVsIHJocyByaWNjaSByaWVtYW5uJ1xuICAgICsgJyByaW52YXJpYW50IHJpc2NoIHJrIHJtZGlyIHJuY29tYmluZSByb21iZXJnIHJvb20gcm9vdHNjb250cmFjdCByb3VuZCByb3cnXG4gICAgKyAnIHJvd29wIHJvd3N3YXAgcnJlZHVjZSBydW5fdGVzdHN1aXRlICVzIHNhdmUgc2F2aW5nIHNjYWxhcnAgc2NhbGVkX2Jlc3NlbF9pJ1xuICAgICsgJyBzY2FsZWRfYmVzc2VsX2kwIHNjYWxlZF9iZXNzZWxfaTEgc2NhbGVmYWN0b3JzIHNjYW5tYXAgc2NhdHRlcnBsb3Qgc2NhdHRlcnBsb3RfZGVzY3JpcHRpb24nXG4gICAgKyAnIHNjZW5lIHNjaHVyMmNvbXAgc2NvbmNhdCBzY29weSBzY3NpbXAgc2N1cnZhdHVyZSBzZG93bmNhc2Ugc2VjIHNlY2ggc2Vjb25kJ1xuICAgICsgJyBzZXF1YWwgc2VxdWFsaWdub3JlIHNldF9hbHRfZGlzcGxheSBzZXRkaWZmZXJlbmNlIHNldF9kcmF3X2RlZmF1bHRzIHNldF9lZGdlX3dlaWdodCdcbiAgICArICcgc2V0ZWxteCBzZXRlcXVhbHAgc2V0aWZ5IHNldHAgc2V0X3BhcnRpdGlvbnMgc2V0X3Bsb3Rfb3B0aW9uIHNldF9wcm9tcHQgc2V0X3JhbmRvbV9zdGF0ZSdcbiAgICArICcgc2V0X3RleF9lbnZpcm9ubWVudCBzZXRfdGV4X2Vudmlyb25tZW50X2RlZmF1bHQgc2V0dW5pdHMgc2V0dXBfYXV0b2xvYWQgc2V0X3VwX2RvdF9zaW1wbGlmaWNhdGlvbnMnXG4gICAgKyAnIHNldF92ZXJ0ZXhfbGFiZWwgc2V2ZW50aCBzZXhwbG9kZSBzZiBzaGExc3VtIHNoYTI1NnN1bSBzaG9ydGVzdF9wYXRoIHNob3J0ZXN0X3dlaWdodGVkX3BhdGgnXG4gICAgKyAnIHNob3cgc2hvd2NvbXBzIHNob3dyYXR2YXJzIHNpZXJwaW5za2lhbGUgc2llcnBpbnNraW1hcCBzaWduIHNpZ251bSBzaW1pbGFyaXR5dHJhbnNmb3JtJ1xuICAgICsgJyBzaW1wX2luZXF1YWxpdHkgc2ltcGxpZnlfc3VtIHNpbXBsb2RlIHNpbXBtZXRkZXJpdiBzaW10cmFuIHNpbiBzaW5oIHNpbnNlcnQnXG4gICAgKyAnIHNpbnZlcnRjYXNlIHNpeHRoIHNrZXduZXNzIHNrZXduZXNzX2Jlcm5vdWxsaSBza2V3bmVzc19iZXRhIHNrZXduZXNzX2Jpbm9taWFsJ1xuICAgICsgJyBza2V3bmVzc19jaGkyIHNrZXduZXNzX2NvbnRpbnVvdXNfdW5pZm9ybSBza2V3bmVzc19kaXNjcmV0ZV91bmlmb3JtIHNrZXduZXNzX2V4cCdcbiAgICArICcgc2tld25lc3NfZiBza2V3bmVzc19nYW1tYSBza2V3bmVzc19nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSBza2V3bmVzc19nZW9tZXRyaWMnXG4gICAgKyAnIHNrZXduZXNzX2d1bWJlbCBza2V3bmVzc19oeXBlcmdlb21ldHJpYyBza2V3bmVzc19sYXBsYWNlIHNrZXduZXNzX2xvZ2lzdGljJ1xuICAgICsgJyBza2V3bmVzc19sb2dub3JtYWwgc2tld25lc3NfbmVnYXRpdmVfYmlub21pYWwgc2tld25lc3Nfbm9uY2VudHJhbF9jaGkyIHNrZXduZXNzX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICsgJyBza2V3bmVzc19ub3JtYWwgc2tld25lc3NfcGFyZXRvIHNrZXduZXNzX3BvaXNzb24gc2tld25lc3NfcmF5bGVpZ2ggc2tld25lc3Nfc3R1ZGVudF90J1xuICAgICsgJyBza2V3bmVzc193ZWlidWxsIHNsZW5ndGggc21ha2Ugc21hbGxfcmhvbWJpY29zaWRvZGVjYWhlZHJvbl9ncmFwaCBzbWFsbF9yaG9tYmljdWJvY3RhaGVkcm9uX2dyYXBoJ1xuICAgICsgJyBzbWF4IHNtaW4gc21pc21hdGNoIHNub3dtYXAgc251Yl9jdWJlX2dyYXBoIHNudWJfZG9kZWNhaGVkcm9uX2dyYXBoIHNvbHZlJ1xuICAgICsgJyBzb2x2ZV9yZWMgc29sdmVfcmVjX3JhdCBzb21lIHNvbXJhYyBzb3J0IHNwYXJzZTZfZGVjb2RlIHNwYXJzZTZfZW5jb2RlIHNwYXJzZTZfZXhwb3J0J1xuICAgICsgJyBzcGFyc2U2X2ltcG9ydCBzcGVjaW50IHNwaGVyaWNhbCBzcGhlcmljYWxfYmVzc2VsX2ogc3BoZXJpY2FsX2Jlc3NlbF95IHNwaGVyaWNhbF9oYW5rZWwxJ1xuICAgICsgJyBzcGhlcmljYWxfaGFua2VsMiBzcGhlcmljYWxfaGFybW9uaWMgc3BoZXJpY2FsX3RvX3h5eiBzcGxpY2Ugc3BsaXQgc3Bvc2l0aW9uJ1xuICAgICsgJyBzcHJpbnQgc3FmciBzcXJ0IHNxcnRkZW5lc3Qgc3JlbW92ZSBzcmVtb3ZlZmlyc3Qgc3JldmVyc2Ugc3NlYXJjaCBzc29ydCBzc3RhdHVzJ1xuICAgICsgJyBzc3Vic3Qgc3N1YnN0Zmlyc3Qgc3RhaXJjYXNlIHN0YW5kYXJkaXplIHN0YW5kYXJkaXplX2ludmVyc2VfdHJpZyBzdGFycGxvdCdcbiAgICArICcgc3RhcnBsb3RfZGVzY3JpcHRpb24gc3RhdHVzIHN0ZCBzdGQxIHN0ZF9iZXJub3VsbGkgc3RkX2JldGEgc3RkX2Jpbm9taWFsJ1xuICAgICsgJyBzdGRfY2hpMiBzdGRfY29udGludW91c191bmlmb3JtIHN0ZF9kaXNjcmV0ZV91bmlmb3JtIHN0ZF9leHAgc3RkX2Ygc3RkX2dhbW1hJ1xuICAgICsgJyBzdGRfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgc3RkX2dlb21ldHJpYyBzdGRfZ3VtYmVsIHN0ZF9oeXBlcmdlb21ldHJpYyBzdGRfbGFwbGFjZSdcbiAgICArICcgc3RkX2xvZ2lzdGljIHN0ZF9sb2dub3JtYWwgc3RkX25lZ2F0aXZlX2Jpbm9taWFsIHN0ZF9ub25jZW50cmFsX2NoaTIgc3RkX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICsgJyBzdGRfbm9ybWFsIHN0ZF9wYXJldG8gc3RkX3BvaXNzb24gc3RkX3JheWxlaWdoIHN0ZF9zdHVkZW50X3Qgc3RkX3dlaWJ1bGwnXG4gICAgKyAnIHN0ZW1wbG90IHN0aXJsaW5nIHN0aXJsaW5nMSBzdGlybGluZzIgc3RyaW0gc3RyaW1sIHN0cmltciBzdHJpbmcgc3RyaW5nb3V0J1xuICAgICsgJyBzdHJpbmdwIHN0cm9uZ19jb21wb25lbnRzIHN0cnV2ZV9oIHN0cnV2ZV9sIHN1YmxpcyBzdWJsaXN0IHN1Ymxpc3RfaW5kaWNlcydcbiAgICArICcgc3VibWF0cml4IHN1YnNhbXBsZSBzdWJzZXQgc3Vic2V0cCBzdWJzdCBzdWJzdGlucGFydCBzdWJzdF9wYXJhbGxlbCBzdWJzdHBhcnQnXG4gICAgKyAnIHN1YnN0cmluZyBzdWJ2YXIgc3VidmFycCBzdW0gc3VtY29udHJhY3Qgc3VtbWFuZF90b19yZWMgc3VwY2FzZSBzdXBjb250ZXh0J1xuICAgICsgJyBzeW1ib2xwIHN5bW1kaWZmZXJlbmNlIHN5bW1ldHJpY3Agc3lzdGVtIHRha2VfY2hhbm5lbCB0YWtlX2luZmVyZW5jZSB0YW4nXG4gICAgKyAnIHRhbmggdGF5bG9yIHRheWxvcmluZm8gdGF5bG9ycCB0YXlsb3Jfc2ltcGxpZmllciB0YXl0b3JhdCB0Y2xfb3V0cHV0IHRjb250cmFjdCdcbiAgICArICcgdGVsbHJhdCB0ZWxsc2ltcCB0ZWxsc2ltcGFmdGVyIHRlbnRleCB0ZW50aCB0ZXN0X21lYW4gdGVzdF9tZWFuc19kaWZmZXJlbmNlJ1xuICAgICsgJyB0ZXN0X25vcm1hbGl0eSB0ZXN0X3Byb3BvcnRpb24gdGVzdF9wcm9wb3J0aW9uc19kaWZmZXJlbmNlIHRlc3RfcmFua19zdW0nXG4gICAgKyAnIHRlc3Rfc2lnbiB0ZXN0X3NpZ25lZF9yYW5rIHRlc3RfdmFyaWFuY2UgdGVzdF92YXJpYW5jZV9yYXRpbyB0ZXggdGV4MSB0ZXhfZGlzcGxheSdcbiAgICArICcgdGV4cHV0ICV0aCB0aGlyZCB0aHJvdyB0aW1lIHRpbWVkYXRlIHRpbWVyIHRpbWVyX2luZm8gdGxkZWZpbnQgdGxpbWl0IHRvZGRfY294ZXRlcidcbiAgICArICcgdG9lcGxpdHogdG9rZW5zIHRvX2xpc3AgdG9wb2xvZ2ljYWxfc29ydCB0b19wb2x5IHRvX3BvbHlfc29sdmUgdG90YWxkaXNyZXAnXG4gICAgKyAnIHRvdGFsZm91cmllciB0b3RpZW50IHRwYXJ0cG9sIHRyYWNlIHRyYWNlbWF0cml4IHRyYWNlX29wdGlvbnMgdHJhbnNmb3JtX3NhbXBsZSdcbiAgICArICcgdHJhbnNsYXRlIHRyYW5zbGF0ZV9maWxlIHRyYW5zcG9zZSB0cmVlZmFsZSB0cmVlX3JlZHVjZSB0cmVpbGxpcyB0cmVpbmF0J1xuICAgICsgJyB0cmlhbmdsZSB0cmlhbmd1bGFyaXplIHRyaWdleHBhbmQgdHJpZ3JhdCB0cmlncmVkdWNlIHRyaWdzaW1wIHRydW5jIHRydW5jYXRlJ1xuICAgICsgJyB0cnVuY2F0ZWRfY3ViZV9ncmFwaCB0cnVuY2F0ZWRfZG9kZWNhaGVkcm9uX2dyYXBoIHRydW5jYXRlZF9pY29zYWhlZHJvbl9ncmFwaCdcbiAgICArICcgdHJ1bmNhdGVkX3RldHJhaGVkcm9uX2dyYXBoIHRyX3dhcm5pbmdzX2dldCB0dWJlIHR1dHRlX2dyYXBoIHVlaXZlY3RzIHVmb3JnZXQnXG4gICAgKyAnIHVsdHJhc3BoZXJpY2FsIHVuZGVybHlpbmdfZ3JhcGggdW5kaWZmIHVuaW9uIHVuaXF1ZSB1bml0ZWlnZW52ZWN0b3JzIHVuaXRwJ1xuICAgICsgJyB1bml0cyB1bml0X3N0ZXAgdW5pdHZlY3RvciB1bm9yZGVyIHVuc3VtIHVudGVsbHJhdCB1bnRpbWVyJ1xuICAgICsgJyB1bnRyYWNlIHVwcGVyY2FzZXAgdXJpY2NpIHVyaWVtYW5uIHV2ZWN0IHZhbmRlcm1vbmRlX21hdHJpeCB2YXIgdmFyMSB2YXJfYmVybm91bGxpJ1xuICAgICsgJyB2YXJfYmV0YSB2YXJfYmlub21pYWwgdmFyX2NoaTIgdmFyX2NvbnRpbnVvdXNfdW5pZm9ybSB2YXJfZGlzY3JldGVfdW5pZm9ybSdcbiAgICArICcgdmFyX2V4cCB2YXJfZiB2YXJfZ2FtbWEgdmFyX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlIHZhcl9nZW9tZXRyaWMgdmFyX2d1bWJlbCdcbiAgICArICcgdmFyX2h5cGVyZ2VvbWV0cmljIHZhcl9sYXBsYWNlIHZhcl9sb2dpc3RpYyB2YXJfbG9nbm9ybWFsIHZhcl9uZWdhdGl2ZV9iaW5vbWlhbCdcbiAgICArICcgdmFyX25vbmNlbnRyYWxfY2hpMiB2YXJfbm9uY2VudHJhbF9zdHVkZW50X3QgdmFyX25vcm1hbCB2YXJfcGFyZXRvIHZhcl9wb2lzc29uJ1xuICAgICsgJyB2YXJfcmF5bGVpZ2ggdmFyX3N0dWRlbnRfdCB2YXJfd2VpYnVsbCB2ZWN0b3IgdmVjdG9ycG90ZW50aWFsIHZlY3RvcnNpbXAnXG4gICAgKyAnIHZlcmJpZnkgdmVycyB2ZXJ0ZXhfY29sb3JpbmcgdmVydGV4X2Nvbm5lY3Rpdml0eSB2ZXJ0ZXhfZGVncmVlIHZlcnRleF9kaXN0YW5jZSdcbiAgICArICcgdmVydGV4X2VjY2VudHJpY2l0eSB2ZXJ0ZXhfaW5fZGVncmVlIHZlcnRleF9vdXRfZGVncmVlIHZlcnRpY2VzIHZlcnRpY2VzX3RvX2N5Y2xlJ1xuICAgICsgJyB2ZXJ0aWNlc190b19wYXRoICV3IHdleWwgd2hlZWxfZ3JhcGggd2llbmVyX2luZGV4IHdpZ25lcl8zaiB3aWduZXJfNmonXG4gICAgKyAnIHdpZ25lcl85aiB3aXRoX3N0ZG91dCB3cml0ZV9iaW5hcnlfZGF0YSB3cml0ZWJ5dGUgd3JpdGVfZGF0YSB3cml0ZWZpbGUgd3JvbnNraWFuJ1xuICAgICsgJyB4cmVkdWNlIHh0aHJ1ICV5IFplaWxiZXJnZXIgemVyb2VxdWl2IHplcm9mb3IgemVyb21hdHJpeCB6ZXJvbWF0cml4cCB6ZXRhJ1xuICAgICsgJyB6Z2VldiB6aGVldiB6bGFuZ2Ugem5fYWRkX3RhYmxlIHpuX2Nhcm1pY2hhZWxfbGFtYmRhIHpuX2NoYXJhY3RlcmlzdGljX2ZhY3RvcnMnXG4gICAgKyAnIHpuX2RldGVybWluYW50IHpuX2ZhY3Rvcl9nZW5lcmF0b3JzIHpuX2ludmVydF9ieV9sdSB6bl9sb2cgem5fbXVsdF90YWJsZSdcbiAgICArICcgYWJzYm94Y2hhciBhY3RpdmVjb250ZXh0cyBhZGFwdF9kZXB0aCBhZGRpdGl2ZSBhZGltIGFmb3JtIGFsZ2VicmFpYydcbiAgICArICcgYWxnZXBzaWxvbiBhbGdleGFjdCBhbGlhc2VzIGFsbGJ1dCBhbGxfZG90c2ltcF9kZW5vbXMgYWxsb2NhdGlvbiBhbGxzeW0gYWxwaGFiZXRpYydcbiAgICArICcgYW5pbWF0aW9uIGFudGlzeW1tZXRyaWMgYXJyYXlzIGFza2V4cCBhc3N1bWVfcG9zIGFzc3VtZV9wb3NfcHJlZCBhc3N1bWVzY2FsYXInXG4gICAgKyAnIGFzeW1ib2wgYXRvbWdyYWQgYXRyaWcxIGF4ZXMgYXhpc18zZCBheGlzX2JvdHRvbSBheGlzX2xlZnQgYXhpc19yaWdodCBheGlzX3RvcCdcbiAgICArICcgYXppbXV0aCBiYWNrZ3JvdW5kIGJhY2tncm91bmRfY29sb3IgYmFja3N1YnN0IGJlcmxlZmFjdCBiZXJuc3RlaW5fZXhwbGljaXQnXG4gICAgKyAnIGJlc3NlbGV4cGFuZCBiZXRhX2FyZ3Nfc3VtX3RvX2ludGVnZXIgYmV0YV9leHBhbmQgYmZ0b3JhdCBiZnRydW5jIGJpbmR0ZXN0J1xuICAgICsgJyBib3JkZXIgYm91bmRhcmllc19hcnJheSBib3ggYm94Y2hhciBicmVha3VwICVjIGNhcHBpbmcgY2F1Y2h5c3VtIGNicmFuZ2UnXG4gICAgKyAnIGNidGljcyBjZW50ZXIgY2ZsZW5ndGggY2ZyYW1lX2ZsYWcgY25vbm1ldF9mbGFnIGNvbG9yIGNvbG9yX2JhciBjb2xvcl9iYXJfdGljcydcbiAgICArICcgY29sb3Jib3ggY29sdW1ucyBjb21tdXRhdGl2ZSBjb21wbGV4IGNvbmUgY29udGV4dCBjb250ZXh0cyBjb250b3VyIGNvbnRvdXJfbGV2ZWxzJ1xuICAgICsgJyBjb3NucGlmbGFnIGN0YXlwb3YgY3RheXB0IGN0YXlzd2l0Y2ggY3RheXZhciBjdF9jb29yZHMgY3RvcnNpb25fZmxhZyBjdHJnc2ltcCdcbiAgICArICcgY3ViZSBjdXJyZW50X2xldF9ydWxlX3BhY2thZ2UgY3lsaW5kZXIgZGF0YV9maWxlX25hbWUgZGVidWdtb2RlIGRlY3JlYXNpbmcnXG4gICAgKyAnIGRlZmF1bHRfbGV0X3J1bGVfcGFja2FnZSBkZWxheSBkZXBlbmRlbmNpZXMgZGVyaXZhYmJyZXYgZGVyaXZzdWJzdCBkZXRvdXQnXG4gICAgKyAnIGRpYWdtZXRyaWMgZGlmZiBkaW0gZGltZW5zaW9ucyBkaXNwZmxhZyBkaXNwbGF5MmR8MTAgZGlzcGxheV9mb3JtYXRfaW50ZXJuYWwnXG4gICAgKyAnIGRpc3RyaWJ1dGVfb3ZlciBkb2FsbG14b3BzIGRvbWFpbiBkb214ZXhwdCBkb214bXhvcHMgZG9teG5jdGltZXMgZG9udGZhY3RvcidcbiAgICArICcgZG9zY214b3BzIGRvc2NteHBsdXMgZG90MG5zY3NpbXAgZG90MHNpbXAgZG90MXNpbXAgZG90YXNzb2MgZG90Y29uc3RydWxlcydcbiAgICArICcgZG90ZGlzdHJpYiBkb3RleHB0c2ltcCBkb3RpZGVudCBkb3RzY3J1bGVzIGRyYXdfZ3JhcGhfcHJvZ3JhbSBkcmF3X3JlYWxwYXJ0J1xuICAgICsgJyBlZGdlX2NvbG9yIGVkZ2VfY29sb3JpbmcgZWRnZV9wYXJ0aXRpb24gZWRnZV90eXBlIGVkZ2Vfd2lkdGggJWVkaXNwZmxhZydcbiAgICArICcgZWxldmF0aW9uICVlbW9kZSBlbmRwaGkgZW5kdGhldGEgZW5naW5lZXJpbmdfZm9ybWF0X2Zsb2F0cyBlbmhhbmNlZDNkICVlbnVtZXInXG4gICAgKyAnIGVwc2lsb25fbHAgZXJmZmxhZyBlcmZfcmVwcmVzZW50YXRpb24gZXJyb3Jtc2cgZXJyb3Jfc2l6ZSBlcnJvcl9zeW1zIGVycm9yX3R5cGUnXG4gICAgKyAnICVlX3RvX251bWxvZyBldmFsIGV2ZW4gZXZlbmZ1biBldmZsYWcgZXZmdW4gZXZfcG9pbnQgZXhwYW5kd3J0X2Rlbm9tIGV4cGludGV4cGFuZCdcbiAgICArICcgZXhwaW50cmVwIGV4cG9uIGV4cG9wIGV4cHRkaXNwZmxhZyBleHB0aXNvbGF0ZSBleHB0c3Vic3QgZmFjZXhwYW5kIGZhY3N1bV9jb21iaW5lJ1xuICAgICsgJyBmYWN0bGltIGZhY3RvcmZsYWcgZmFjdG9yaWFsX2V4cGFuZCBmYWN0b3JzX29ubHkgZmIgZmVhdHVyZSBmZWF0dXJlcydcbiAgICArICcgZmlsZV9uYW1lIGZpbGVfb3V0cHV0X2FwcGVuZCBmaWxlX3NlYXJjaF9kZW1vIGZpbGVfc2VhcmNoX2xpc3AgZmlsZV9zZWFyY2hfbWF4aW1hfDEwJ1xuICAgICsgJyBmaWxlX3NlYXJjaF90ZXN0cyBmaWxlX3NlYXJjaF91c2FnZSBmaWxlX3R5cGVfbGlzcCBmaWxlX3R5cGVfbWF4aW1hfDEwIGZpbGxfY29sb3InXG4gICAgKyAnIGZpbGxfZGVuc2l0eSBmaWxsZWRfZnVuYyBmaXhlZF92ZXJ0aWNlcyBmbGlwZmxhZyBmbG9hdDJiZiBmb250IGZvbnRfc2l6ZSdcbiAgICArICcgZm9ydGluZGVudCBmb3J0c3BhY2VzIGZwcHJlYyBmcHByaW50cHJlYyBmdW5jdGlvbnMgZ2FtbWFfZXhwYW5kIGdhbW1hbGltJ1xuICAgICsgJyBnZGV0IGdlbmluZGV4IGdlbnN1bW51bSBHR0ZDRk1BWCBHR0ZJTkZJTklUWSBnbG9iYWxzb2x2ZSBnbnVwbG90X2NvbW1hbmQnXG4gICAgKyAnIGdudXBsb3RfY3VydmVfc3R5bGVzIGdudXBsb3RfY3VydmVfdGl0bGVzIGdudXBsb3RfZGVmYXVsdF90ZXJtX2NvbW1hbmQgZ251cGxvdF9kdW1iX3Rlcm1fY29tbWFuZCdcbiAgICArICcgZ251cGxvdF9maWxlX2FyZ3MgZ251cGxvdF9maWxlX25hbWUgZ251cGxvdF9vdXRfZmlsZSBnbnVwbG90X3BkZl90ZXJtX2NvbW1hbmQnXG4gICAgKyAnIGdudXBsb3RfcG0zZCBnbnVwbG90X3BuZ190ZXJtX2NvbW1hbmQgZ251cGxvdF9wb3N0YW1ibGUgZ251cGxvdF9wcmVhbWJsZSdcbiAgICArICcgZ251cGxvdF9wc190ZXJtX2NvbW1hbmQgZ251cGxvdF9zdmdfdGVybV9jb21tYW5kIGdudXBsb3RfdGVybSBnbnVwbG90X3ZpZXdfYXJncydcbiAgICArICcgR29zcGVyX2luX1plaWxiZXJnZXIgZ3JhZGVmcyBncmlkIGdyaWQyZCBncmluZCBoYWxmYW5nbGVzIGhlYWRfYW5nbGUgaGVhZF9ib3RoJ1xuICAgICsgJyBoZWFkX2xlbmd0aCBoZWFkX3R5cGUgaGVpZ2h0IGh5cGVyZ2VvbWV0cmljX3JlcHJlc2VudGF0aW9uICVpYXJncyBpYmFzZSdcbiAgICArICcgaWNjMSBpY2MyIGljb3VudGVyIGlkdW1teXggaWVxbnByaW50IGlmYiBpZmMxIGlmYzIgaWZnIGlmZ2kgaWZyIGlmcmFtZV9icmFja2V0X2Zvcm0nXG4gICAgKyAnIGlmcmkgaWdlb3dlZGdlX2ZsYWcgaWt0MSBpa3QyIGltYWdpbmFyeSBpbmNoYXIgaW5jcmVhc2luZyBpbmZldmFsJ1xuICAgICsgJyBpbmZpbml0eSBpbmZsYWcgaW5mb2xpc3RzIGlubSBpbm1jMSBpbm1jMiBpbnRhbmFseXNpcyBpbnRlZ2VyIGludGVnZXJ2YWx1ZWQnXG4gICAgKyAnIGludGVncmF0ZV91c2Vfcm9vdHNvZiBpbnRlZ3JhdGlvbl9jb25zdGFudCBpbnRlZ3JhdGlvbl9jb25zdGFudF9jb3VudGVyIGludGVycG9sYXRlX2NvbG9yJ1xuICAgICsgJyBpbnRmYWNsaW0gaXBfZ3JpZCBpcF9ncmlkX2luIGlycmF0aW9uYWwgaXNvbGF0ZV93cnRfdGltZXMgaXRlcmF0aW9ucyBpdHInXG4gICAgKyAnIGp1bGlhX3BhcmFtZXRlciAlazEgJWsyIGtlZXBmbG9hdCBrZXkga2V5X3BvcyBraW52YXJpYW50IGt0IGxhYmVsIGxhYmVsX2FsaWdubWVudCdcbiAgICArICcgbGFiZWxfb3JpZW50YXRpb24gbGFiZWxzIGxhc3NvY2lhdGl2ZSBsYmZnc19uY29ycmVjdGlvbnMgbGJmZ3NfbmZldmFsX21heCdcbiAgICArICcgbGVmdGp1c3QgbGVnZW5kIGxldHJhdCBsZXRfcnVsZV9wYWNrYWdlcyBsZmcgbGcgbGhvc3BpdGFsbGltIGxpbXN1YnN0IGxpbmVhcidcbiAgICArICcgbGluZWFyX3NvbHZlciBsaW5lY2hhciBsaW5lbHwxMCBsaW5lbnVtIGxpbmVfdHlwZSBsaW5ld2lkdGggbGluZV93aWR0aCBsaW5zb2x2ZV9wYXJhbXMnXG4gICAgKyAnIGxpbnNvbHZld2FybiBsaXNwZGlzcCBsaXN0YXJpdGggbGlzdGNvbnN0dmFycyBsaXN0ZHVtbXl2YXJzIGxteGNoYXIgbG9hZF9wYXRobmFtZSdcbiAgICArICcgbG9hZHByaW50IGxvZ2FicyBsb2dhcmMgbG9nY2IgbG9nY29uY29lZmZwIGxvZ2V4cGFuZCBsb2duZWdpbnQgbG9nc2ltcCBsb2d4J1xuICAgICsgJyBsb2d4X3NlY29uZGFyeSBsb2d5IGxvZ3lfc2Vjb25kYXJ5IGxvZ3ogbHJpZW0gbTFwYnJhbmNoIG1hY3JvZXhwYW5zaW9uIG1hY3JvcydcbiAgICArICcgbWFpbnZhciBtYW51YWxfZGVtbyBtYXBlcnJvciBtYXBwcmludCBtYXRyaXhfZWxlbWVudF9hZGQgbWF0cml4X2VsZW1lbnRfbXVsdCdcbiAgICArICcgbWF0cml4X2VsZW1lbnRfdHJhbnNwb3NlIG1heGFwcGx5ZGVwdGggbWF4YXBwbHloZWlnaHQgbWF4aW1hX3RlbXBkaXJ8MTAgbWF4aW1hX3VzZXJkaXJ8MTAnXG4gICAgKyAnIG1heG5lZ2V4IE1BWF9PUkQgbWF4cG9zZXggbWF4cHNpZnJhY2Rlbm9tIG1heHBzaWZyYWNudW0gbWF4cHNpbmVnaW50IG1heHBzaXBvc2ludCdcbiAgICArICcgbWF4dGF5b3JkZXIgbWVzaF9saW5lc19jb2xvciBtZXRob2QgbW9kX2JpZ19wcmltZSBtb2RlX2NoZWNrX2Vycm9ycCdcbiAgICArICcgbW9kZV9jaGVja3AgbW9kZV9jaGVja193YXJucCBtb2RfdGVzdCBtb2RfdGhyZXNob2xkIG1vZHVsYXJfbGluZWFyX3NvbHZlcidcbiAgICArICcgbW9kdWx1cyBtdWx0aXBsaWNhdGl2ZSBtdWx0aXBsaWNpdGllcyBteW9wdGlvbnMgbmFyeSBuZWdkaXN0cmliIG5lZ3N1bWRpc3BmbGFnJ1xuICAgICsgJyBuZXdsaW5lIG5ld3RvbmVwc2lsb24gbmV3dG9ubWF4aXRlciBuZXh0bGF5ZXJmYWN0b3IgbmljZWluZGljZXNwcmVmIG5tIG5tYydcbiAgICArICcgbm9ldmFsIG5vbGFiZWxzIG5vbmVnYXRpdmVfbHAgbm9uaW50ZWdlciBub25zY2FsYXIgbm91biBub3VuZGlzcCBub3VucyBucCdcbiAgICArICcgbnBpIG50aWNrcyBudHJpZyBudW1lciBudW1lcl9wYnJhbmNoIG9iYXNlIG9kZCBvZGRmdW4gb3BhY2l0eSBvcHByb3BlcnRpZXMnXG4gICAgKyAnIG9wc3Vic3Qgb3B0aW1wcmVmaXggb3B0aW9uc2V0IG9yaWVudGF0aW9uIG9yaWdpbiBvcnRob3BvbHlfcmV0dXJuc19pbnRlcnZhbHMnXG4gICAgKyAnIG91dGF0aXZlIG91dGNoYXIgcGFja2FnZWZpbGUgcGFsZXR0ZSBwYXJ0c3dpdGNoIHBkZl9maWxlIHBmZWZvcm1hdCBwaGlyZXNvbHV0aW9uJ1xuICAgICsgJyAlcGlhcmdzIHBpZWNlIHBpdm90X2NvdW50X3N4IHBpdm90X21heF9zeCBwbG90X2Zvcm1hdCBwbG90X29wdGlvbnMgcGxvdF9yZWFscGFydCdcbiAgICArICcgcG5nX2ZpbGUgcG9jaGhhbW1lcl9tYXhfaW5kZXggcG9pbnRzIHBvaW50c2l6ZSBwb2ludF9zaXplIHBvaW50c19qb2luZWQgcG9pbnRfdHlwZSdcbiAgICArICcgcG9pc2xpbSBwb2lzc29uIHBvbHlfY29lZmZpY2llbnRfcmluZyBwb2x5X2VsaW1pbmF0aW9uX29yZGVyIHBvbHlmYWN0b3IgcG9seV9ncm9ibmVyX2FsZ29yaXRobSdcbiAgICArICcgcG9seV9ncm9ibmVyX2RlYnVnIHBvbHlfbW9ub21pYWxfb3JkZXIgcG9seV9wcmltYXJ5X2VsaW1pbmF0aW9uX29yZGVyIHBvbHlfcmV0dXJuX3Rlcm1fbGlzdCdcbiAgICArICcgcG9seV9zZWNvbmRhcnlfZWxpbWluYXRpb25fb3JkZXIgcG9seV90b3BfcmVkdWN0aW9uX29ubHkgcG9zZnVuIHBvc2l0aW9uJ1xuICAgICsgJyBwb3dlcmRpc3AgcHJlZCBwcmVkZXJyb3IgcHJpbWVwX251bWJlcl9vZl90ZXN0cyBwcm9kdWN0X3VzZV9nYW1tYSBwcm9ncmFtJ1xuICAgICsgJyBwcm9ncmFtbW9kZSBwcm9tb3RlX2Zsb2F0X3RvX2JpZ2Zsb2F0IHByb21wdCBwcm9wb3J0aW9uYWxfYXhlcyBwcm9wcyBwc2V4cGFuZCdcbiAgICArICcgcHNfZmlsZSByYWRleHBhbmQgcmFkaXVzIHJhZHN1YnN0ZmxhZyByYXNzb2NpYXRpdmUgcmF0YWxnZGVub20gcmF0Y2hyaXN0b2YnXG4gICAgKyAnIHJhdGRlbm9tZGl2aWRlIHJhdGVpbnN0ZWluIHJhdGVwc2lsb24gcmF0ZmFjIHJhdGlvbmFsIHJhdG14IHJhdHByaW50IHJhdHJpZW1hbm4nXG4gICAgKyAnIHJhdHNpbXBleHBvbnMgcmF0dmFyc3dpdGNoIHJhdHdlaWdodHMgcmF0d2V5bCByYXR3dGx2bCByZWFsIHJlYWxvbmx5IHJlZHJhdydcbiAgICArICcgcmVmY2hlY2sgcmVzb2x1dGlvbiByZXN0YXJ0IHJlc3VsdGFudCByaWMgcmllbSBybXhjaGFyICVybnVtX2xpc3Qgcm9tYmVyZ2FicydcbiAgICArICcgcm9tYmVyZ2l0IHJvbWJlcmdtaW4gcm9tYmVyZ3RvbCByb290c2Nvbm1vZGUgcm9vdHNlcHNpbG9uIHJ1bl92aWV3ZXIgc2FtZV94eSdcbiAgICArICcgc2FtZV94eXogc2F2ZWRlZiBzYXZlZmFjdG9ycyBzY2FsYXIgc2NhbGFybWF0cml4cCBzY2FsZSBzY2FsZV9scCBzZXRjaGVjaydcbiAgICArICcgc2V0Y2hlY2ticmVhayBzZXR2YWwgc2hvd19lZGdlX2NvbG9yIHNob3dfZWRnZXMgc2hvd19lZGdlX3R5cGUgc2hvd19lZGdlX3dpZHRoJ1xuICAgICsgJyBzaG93X2lkIHNob3dfbGFiZWwgc2hvd3RpbWUgc2hvd192ZXJ0ZXhfY29sb3Igc2hvd192ZXJ0ZXhfc2l6ZSBzaG93X3ZlcnRleF90eXBlJ1xuICAgICsgJyBzaG93X3ZlcnRpY2VzIHNob3dfd2VpZ2h0IHNpbXAgc2ltcGxpZmllZF9vdXRwdXQgc2ltcGxpZnlfcHJvZHVjdHMgc2ltcHByb2R1Y3QnXG4gICAgKyAnIHNpbXBzdW0gc2lubnBpZmxhZyBzb2x2ZWRlY29tcG9zZXMgc29sdmVleHBsaWNpdCBzb2x2ZWZhY3RvcnMgc29sdmVudWxsd2FybidcbiAgICArICcgc29sdmVyYWRjYW4gc29sdmV0cmlnd2FybiBzcGFjZSBzcGFyc2Ugc3BoZXJlIHNwcmluZ19lbWJlZGRpbmdfZGVwdGggc3FydGRpc3BmbGFnJ1xuICAgICsgJyBzdGFyZGlzcCBzdGFydHBoaSBzdGFydHRoZXRhIHN0YXRzX251bWVyIHN0cmluZ2Rpc3Agc3RydWN0dXJlcyBzdHlsZSBzdWJsaXNfYXBwbHlfbGFtYmRhJ1xuICAgICsgJyBzdWJudW1zaW1wIHN1bWV4cGFuZCBzdW1zcGxpdGZhY3Qgc3VyZmFjZSBzdXJmYWNlX2hpZGUgc3ZnX2ZpbGUgc3ltbWV0cmljJ1xuICAgICsgJyB0YWIgdGF5bG9yZGVwdGggdGF5bG9yX2xvZ2V4cGFuZCB0YXlsb3Jfb3JkZXJfY29lZmZpY2llbnRzIHRheWxvcl90cnVuY2F0ZV9wb2x5bm9taWFscydcbiAgICArICcgdGVuc29ya2lsbCB0ZXJtaW5hbCB0ZXN0c3VpdGVfZmlsZXMgdGhldGFyZXNvbHV0aW9uIHRpbWVyX2RldmFsdWUgdGl0bGUgdGxpbXN3aXRjaCdcbiAgICArICcgdHIgdHJhY2sgdHJhbnNjb21waWxlIHRyYW5zZm9ybSB0cmFuc2Zvcm1feHkgdHJhbnNsYXRlX2Zhc3RfYXJyYXlzIHRyYW5zcGFyZW50J1xuICAgICsgJyB0cmFuc3J1biB0cl9hcnJheV9hc19yZWYgdHJfYm91bmRfZnVuY3Rpb25fYXBwbHlwIHRyX2ZpbGVfdHR5X21lc3NhZ2VzcCB0cl9mbG9hdF9jYW5fYnJhbmNoX2NvbXBsZXgnXG4gICAgKyAnIHRyX2Z1bmN0aW9uX2NhbGxfZGVmYXVsdCB0cmlnZXhwYW5kcGx1cyB0cmlnZXhwYW5kdGltZXMgdHJpZ2ludmVyc2VzIHRyaWdzaWduJ1xuICAgICsgJyB0cml2aWFsX3NvbHV0aW9ucyB0cl9udW1lciB0cl9vcHRpbWl6ZV9tYXhfbG9vcCB0cl9zZW1pY29tcGlsZSB0cl9zdGF0ZV92YXJzJ1xuICAgICsgJyB0cl93YXJuX2JhZF9mdW5jdGlvbl9jYWxscyB0cl93YXJuX2ZleHByIHRyX3dhcm5fbWV2YWwgdHJfd2Fybl9tb2RlJ1xuICAgICsgJyB0cl93YXJuX3VuZGVjbGFyZWQgdHJfd2Fybl91bmRlZmluZWRfdmFyaWFibGUgdHN0ZXAgdHR5b2ZmIHR1YmVfZXh0cmVtZXMnXG4gICAgKyAnIHVmZyB1ZyAldW5pdGV4cGFuZCB1bml0X3ZlY3RvcnMgdXJpYyB1cmllbSB1c2VfZmFzdF9hcnJheXMgdXNlcl9wcmVhbWJsZSdcbiAgICArICcgdXNlcnNldHVuaXRzIHZhbHVlcyB2ZWN0X2Nyb3NzIHZlcmJvc2UgdmVydGV4X2NvbG9yIHZlcnRleF9jb2xvcmluZyB2ZXJ0ZXhfcGFydGl0aW9uJ1xuICAgICsgJyB2ZXJ0ZXhfc2l6ZSB2ZXJ0ZXhfdHlwZSB2aWV3IHdhcm5pbmdzIHdleWwgd2lkdGggd2luZG93bmFtZSB3aW5kb3d0aXRsZSB3aXJlZF9zdXJmYWNlJ1xuICAgICsgJyB3aXJlZnJhbWUgeGF4aXMgeGF4aXNfY29sb3IgeGF4aXNfc2Vjb25kYXJ5IHhheGlzX3R5cGUgeGF4aXNfd2lkdGggeGxhYmVsJ1xuICAgICsgJyB4bGFiZWxfc2Vjb25kYXJ5IHhsZW5ndGggeHJhbmdlIHhyYW5nZV9zZWNvbmRhcnkgeHRpY3MgeHRpY3NfYXhpcyB4dGljc19yb3RhdGUnXG4gICAgKyAnIHh0aWNzX3JvdGF0ZV9zZWNvbmRhcnkgeHRpY3Nfc2Vjb25kYXJ5IHh0aWNzX3NlY29uZGFyeV9heGlzIHh1X2dyaWQgeF92b3hlbCdcbiAgICArICcgeHlfZmlsZSB4eXBsYW5lIHh5X3NjYWxlIHlheGlzIHlheGlzX2NvbG9yIHlheGlzX3NlY29uZGFyeSB5YXhpc190eXBlIHlheGlzX3dpZHRoJ1xuICAgICsgJyB5bGFiZWwgeWxhYmVsX3NlY29uZGFyeSB5bGVuZ3RoIHlyYW5nZSB5cmFuZ2Vfc2Vjb25kYXJ5IHl0aWNzIHl0aWNzX2F4aXMnXG4gICAgKyAnIHl0aWNzX3JvdGF0ZSB5dGljc19yb3RhdGVfc2Vjb25kYXJ5IHl0aWNzX3NlY29uZGFyeSB5dGljc19zZWNvbmRhcnlfYXhpcydcbiAgICArICcgeXZfZ3JpZCB5X3ZveGVsIHl4X3JhdGlvIHpheGlzIHpheGlzX2NvbG9yIHpheGlzX3R5cGUgemF4aXNfd2lkdGggemVyb2EgemVyb2InXG4gICAgKyAnIHplcm9iZXJuIHpldGElcGkgemxhYmVsIHpsYWJlbF9yb3RhdGUgemxlbmd0aCB6bWluIHpuX3ByaW1yb290X2xpbWl0IHpuX3ByaW1yb290X3ByZXRlc3QnO1xuICBjb25zdCBTWU1CT0xTID0gJ18gX18gJXwwICUlfDAnO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01heGltYScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAnW0EtWmEtel8lXVswLTlBLVphLXpfJV0qJyxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRJTl9GVU5DVElPTlMsXG4gICAgICBzeW1ib2w6IFNZTUJPTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgICAgICBiZWdpbjogJy9cXFxcKicsXG4gICAgICAgIGVuZDogJ1xcXFwqLycsXG4gICAgICAgIGNvbnRhaW5zOiBbICdzZWxmJyBdXG4gICAgICB9LFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGZsb2F0IG51bWJlciB3LyBleHBvbmVudFxuICAgICAgICAgICAgLy8gaG1tLCBJIHdvbmRlciBpZiB3ZSBvdWdodCB0byBpbmNsdWRlIG90aGVyIGV4cG9uZW50IG1hcmtlcnM/XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxiKFxcXFxkK3xcXFxcZCtcXFxcLnxcXFxcLlxcXFxkK3xcXFxcZCtcXFxcLlxcXFxkKylbRWVdWy0rXT9cXFxcZCtcXFxcYicgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBiaWdmbG9hdCBudW1iZXJcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXGQrfFxcXFxkK1xcXFwufFxcXFwuXFxcXGQrfFxcXFxkK1xcXFwuXFxcXGQrKVtCYl1bLStdP1xcXFxkK1xcXFxiJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGZsb2F0IG51bWJlciB3L291dCBleHBvbmVudFxuICAgICAgICAgICAgLy8gRG9lc24ndCBzZWVtIHRvIHJlY29nbml6ZSBmbG9hdHMgd2hpY2ggc3RhcnQgd2l0aCAnLidcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXC5cXFxcZCt8XFxcXGQrXFxcXC5cXFxcZCspXFxcXGInIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gaW50ZWdlciBpbiBiYXNlIHVwIHRvIDM2XG4gICAgICAgICAgICAvLyBEb2Vzbid0IHNlZW0gdG8gcmVjb2duaXplIGludGVnZXJzIHdoaWNoIGVuZCB3aXRoICcuJ1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcYihcXFxcZCt8MFswLTlBLVphLXpdKylcXFxcLj9cXFxcYicgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvQC9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXhpbWE7XG4iLCAiLypcbkxhbmd1YWdlOiBNRUxcbkRlc2NyaXB0aW9uOiBNYXlhIEVtYmVkZGVkIExhbmd1YWdlXG5BdXRob3I6IFNodWVuLUh1ZWkgR3VhbiA8ZHJha2UuZ3VhbkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vd3d3LmF1dG9kZXNrLmNvbS9wcm9kdWN0cy9hdXRvZGVzay1tYXlhL292ZXJ2aWV3XG5DYXRlZ29yeTogZ3JhcGhpY3NcbiovXG5cbmZ1bmN0aW9uIG1lbChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01FTCcsXG4gICAga2V5d29yZHM6XG4gICAgICAnaW50IGZsb2F0IHN0cmluZyB2ZWN0b3IgbWF0cml4IGlmIGVsc2Ugc3dpdGNoIGNhc2UgZGVmYXVsdCB3aGlsZSBkbyBmb3IgaW4gYnJlYWsgJ1xuICAgICAgKyAnY29udGludWUgZ2xvYmFsIHByb2MgcmV0dXJuIGFib3V0IGFicyBhZGRBdHRyIGFkZEF0dHJpYnV0ZUVkaXRvck5vZGVIZWxwIGFkZER5bmFtaWMgJ1xuICAgICAgKyAnYWRkTmV3U2hlbGZUYWIgYWRkUFAgYWRkUGFuZWxDYXRlZ29yeSBhZGRQcmVmaXhUb05hbWUgYWR2YW5jZVRvTmV4dERyaXZlbktleSAnXG4gICAgICArICdhZmZlY3RlZE5ldCBhZmZlY3RzIGFpbUNvbnN0cmFpbnQgYWlyIGFsaWFzIGFsaWFzQXR0ciBhbGlnbiBhbGlnbkN0eCBhbGlnbkN1cnZlICdcbiAgICAgICsgJ2FsaWduU3VyZmFjZSBhbGxWaWV3Rml0IGFtYmllbnRMaWdodCBhbmdsZSBhbmdsZUJldHdlZW4gYW5pbUNvbmUgYW5pbUN1cnZlRWRpdG9yICdcbiAgICAgICsgJ2FuaW1EaXNwbGF5IGFuaW1WaWV3IGFubm90YXRlIGFwcGVuZFN0cmluZ0FycmF5IGFwcGxpY2F0aW9uTmFtZSBhcHBseUF0dHJQcmVzZXQgJ1xuICAgICAgKyAnYXBwbHlUYWtlIGFyY0xlbkRpbUNvbnRleHQgYXJjTGVuZ3RoRGltZW5zaW9uIGFyY2xlbiBhcnJheU1hcHBlciBhcnQzZFBhaW50Q3R4ICdcbiAgICAgICsgJ2FydEF0dHJDdHggYXJ0QXR0clBhaW50VmVydGV4Q3R4IGFydEF0dHJTa2luUGFpbnRDdHggYXJ0QXR0clRvb2wgYXJ0QnVpbGRQYWludE1lbnUgJ1xuICAgICAgKyAnYXJ0Rmx1aWRBdHRyQ3R4IGFydFB1dHR5Q3R4IGFydFNlbGVjdEN0eCBhcnRTZXRQYWludEN0eCBhcnRVc2VyUGFpbnRDdHggYXNzaWduQ29tbWFuZCAnXG4gICAgICArICdhc3NpZ25JbnB1dERldmljZSBhc3NpZ25WaWV3cG9ydEZhY3RvcmllcyBhdHRhY2hDdXJ2ZSBhdHRhY2hEZXZpY2VBdHRyIGF0dGFjaFN1cmZhY2UgJ1xuICAgICAgKyAnYXR0ckNvbG9yU2xpZGVyR3JwIGF0dHJDb21wYXRpYmlsaXR5IGF0dHJDb250cm9sR3JwIGF0dHJFbnVtT3B0aW9uTWVudSAnXG4gICAgICArICdhdHRyRW51bU9wdGlvbk1lbnVHcnAgYXR0ckZpZWxkR3JwIGF0dHJGaWVsZFNsaWRlckdycCBhdHRyTmF2aWdhdGlvbkNvbnRyb2xHcnAgJ1xuICAgICAgKyAnYXR0clByZXNldEVkaXRXaW4gYXR0cmlidXRlRXhpc3RzIGF0dHJpYnV0ZUluZm8gYXR0cmlidXRlTWVudSBhdHRyaWJ1dGVRdWVyeSAnXG4gICAgICArICdhdXRvS2V5ZnJhbWUgYXV0b1BsYWNlIGJha2VDbGlwIGJha2VGbHVpZFNoYWRpbmcgYmFrZVBhcnRpYWxIaXN0b3J5IGJha2VSZXN1bHRzICdcbiAgICAgICsgJ2Jha2VTaW11bGF0aW9uIGJhc2VuYW1lIGJhc2VuYW1lRXggYmF0Y2hSZW5kZXIgYmVzc2VsIGJldmVsIGJldmVsUGx1cyBiaW5NZW1iZXJzaGlwICdcbiAgICAgICsgJ2JpbmRTa2luIGJsZW5kMiBibGVuZFNoYXBlIGJsZW5kU2hhcGVFZGl0b3IgYmxlbmRTaGFwZVBhbmVsIGJsZW5kVHdvQXR0ciBibGluZERhdGFUeXBlICdcbiAgICAgICsgJ2JvbmVMYXR0aWNlIGJvdW5kYXJ5IGJveERvbGx5Q3R4IGJveFpvb21DdHggYnVmZmVyQ3VydmUgYnVpbGRCb29rbWFya01lbnUgJ1xuICAgICAgKyAnYnVpbGRLZXlmcmFtZU1lbnUgYnV0dG9uIGJ1dHRvbk1hbmlwIENCRyBjYWNoZUZpbGUgY2FjaGVGaWxlQ29tYmluZSBjYWNoZUZpbGVNZXJnZSAnXG4gICAgICArICdjYWNoZUZpbGVUcmFjayBjYW1lcmEgY2FtZXJhVmlldyBjYW5DcmVhdGVNYW5pcCBjYW52YXMgY2FwaXRhbGl6ZVN0cmluZyBjYXRjaCAnXG4gICAgICArICdjYXRjaFF1aWV0IGNlaWwgY2hhbmdlU3ViZGl2Q29tcG9uZW50RGlzcGxheUxldmVsIGNoYW5nZVN1YmRpdlJlZ2lvbiBjaGFubmVsQm94ICdcbiAgICAgICsgJ2NoYXJhY3RlciBjaGFyYWN0ZXJNYXAgY2hhcmFjdGVyT3V0bGluZUVkaXRvciBjaGFyYWN0ZXJpemUgY2hkaXIgY2hlY2tCb3ggY2hlY2tCb3hHcnAgJ1xuICAgICAgKyAnY2hlY2tEZWZhdWx0UmVuZGVyR2xvYmFscyBjaG9pY2UgY2lyY2xlIGNpcmN1bGFyRmlsbGV0IGNsYW1wIGNsZWFyIGNsZWFyQ2FjaGUgY2xpcCAnXG4gICAgICArICdjbGlwRWRpdG9yIGNsaXBFZGl0b3JDdXJyZW50VGltZUN0eCBjbGlwU2NoZWR1bGUgY2xpcFNjaGVkdWxlck91dGxpbmVyIGNsaXBUcmltQmVmb3JlICdcbiAgICAgICsgJ2Nsb3NlQ3VydmUgY2xvc2VTdXJmYWNlIGNsdXN0ZXIgY21kRmlsZU91dHB1dCBjbWRTY3JvbGxGaWVsZEV4ZWN1dGVyICdcbiAgICAgICsgJ2NtZFNjcm9sbEZpZWxkUmVwb3J0ZXIgY21kU2hlbGwgY29hcnNlblN1YmRpdlNlbGVjdGlvbkxpc3QgY29sbGlzaW9uIGNvbG9yICdcbiAgICAgICsgJ2NvbG9yQXRQb2ludCBjb2xvckVkaXRvciBjb2xvckluZGV4IGNvbG9ySW5kZXhTbGlkZXJHcnAgY29sb3JTbGlkZXJCdXR0b25HcnAgJ1xuICAgICAgKyAnY29sb3JTbGlkZXJHcnAgY29sdW1uTGF5b3V0IGNvbW1hbmRFY2hvIGNvbW1hbmRMaW5lIGNvbW1hbmRQb3J0IGNvbXBhY3RIYWlyU3lzdGVtICdcbiAgICAgICsgJ2NvbXBvbmVudEVkaXRvciBjb21wb3NpdGluZ0ludGVyb3AgY29tcHV0ZVBvbHlzZXRWb2x1bWUgY29uZGl0aW9uIGNvbmUgY29uZmlybURpYWxvZyAnXG4gICAgICArICdjb25uZWN0QXR0ciBjb25uZWN0Q29udHJvbCBjb25uZWN0RHluYW1pYyBjb25uZWN0Sm9pbnQgY29ubmVjdGlvbkluZm8gY29uc3RyYWluICdcbiAgICAgICsgJ2NvbnN0cmFpblZhbHVlIGNvbnN0cnVjdGlvbkhpc3RvcnkgY29udGFpbmVyIGNvbnRhaW5zTXVsdGlieXRlIGNvbnRleHRJbmZvIGNvbnRyb2wgJ1xuICAgICAgKyAnY29udmVydEZyb21PbGRMYXllcnMgY29udmVydElmZlRvUHNkIGNvbnZlcnRMaWdodG1hcCBjb252ZXJ0U29saWRUeCBjb252ZXJ0VGVzc2VsbGF0aW9uICdcbiAgICAgICsgJ2NvbnZlcnRVbml0IGNvcHlBcnJheSBjb3B5RmxleG9yIGNvcHlLZXkgY29weVNraW5XZWlnaHRzIGNvcyBjcEJ1dHRvbiBjcENhY2hlICdcbiAgICAgICsgJ2NwQ2xvdGhTZXQgY3BDb2xsaXNpb24gY3BDb25zdHJhaW50IGNwQ29udkNsb3RoVG9NZXNoIGNwRm9yY2VzIGNwR2V0U29sdmVyQXR0ciBjcFBhbmVsICdcbiAgICAgICsgJ2NwUHJvcGVydHkgY3BSaWdpZENvbGxpc2lvbkZpbHRlciBjcFNlYW0gY3BTZXRFZGl0IGNwU2V0U29sdmVyQXR0ciBjcFNvbHZlciAnXG4gICAgICArICdjcFNvbHZlclR5cGVzIGNwVG9vbCBjcFVwZGF0ZUNsb3RoVVZzIGNyZWF0ZURpc3BsYXlMYXllciBjcmVhdGVEcmF3Q3R4IGNyZWF0ZUVkaXRvciAnXG4gICAgICArICdjcmVhdGVMYXllcmVkUHNkRmlsZSBjcmVhdGVNb3Rpb25GaWVsZCBjcmVhdGVOZXdTaGVsZiBjcmVhdGVOb2RlIGNyZWF0ZVJlbmRlckxheWVyICdcbiAgICAgICsgJ2NyZWF0ZVN1YmRpdlJlZ2lvbiBjcm9zcyBjcm9zc1Byb2R1Y3QgY3R4QWJvcnQgY3R4Q29tcGxldGlvbiBjdHhFZGl0TW9kZSBjdHhUcmF2ZXJzZSAnXG4gICAgICArICdjdXJyZW50Q3R4IGN1cnJlbnRUaW1lIGN1cnJlbnRUaW1lQ3R4IGN1cnJlbnRVbml0IGN1cnZlIGN1cnZlQWRkUHRDdHggJ1xuICAgICAgKyAnY3VydmVDVkN0eCBjdXJ2ZUVQQ3R4IGN1cnZlRWRpdG9yQ3R4IGN1cnZlSW50ZXJzZWN0IGN1cnZlTW92ZUVQQ3R4IGN1cnZlT25TdXJmYWNlICdcbiAgICAgICsgJ2N1cnZlU2tldGNoQ3R4IGN1dEtleSBjeWNsZUNoZWNrIGN5bGluZGVyIGRhZ1Bvc2UgZGF0ZSBkZWZhdWx0TGlnaHRMaXN0Q2hlY2tCb3ggJ1xuICAgICAgKyAnZGVmYXVsdE5hdmlnYXRpb24gZGVmaW5lRGF0YVNlcnZlciBkZWZpbmVWaXJ0dWFsRGV2aWNlIGRlZm9ybWVyIGRlZ190b19yYWQgZGVsZXRlICdcbiAgICAgICsgJ2RlbGV0ZUF0dHIgZGVsZXRlU2hhZGluZ0dyb3Vwc0FuZE1hdGVyaWFscyBkZWxldGVTaGVsZlRhYiBkZWxldGVVSSBkZWxldGVVbnVzZWRCcnVzaGVzICdcbiAgICAgICsgJ2RlbHJhbmRzdHIgZGV0YWNoQ3VydmUgZGV0YWNoRGV2aWNlQXR0ciBkZXRhY2hTdXJmYWNlIGRldmljZUVkaXRvciBkZXZpY2VQYW5lbCBkZ0luZm8gJ1xuICAgICAgKyAnZGdkaXJ0eSBkZ2V2YWwgZGd0aW1lciBkaW1XaGVuIGRpcmVjdEtleUN0eCBkaXJlY3Rpb25hbExpZ2h0IGRpcm1hcCBkaXJuYW1lIGRpc2FibGUgJ1xuICAgICAgKyAnZGlzY29ubmVjdEF0dHIgZGlzY29ubmVjdEpvaW50IGRpc2tDYWNoZSBkaXNwbGFjZW1lbnRUb1BvbHkgZGlzcGxheUFmZmVjdGVkICdcbiAgICAgICsgJ2Rpc3BsYXlDb2xvciBkaXNwbGF5Q3VsbCBkaXNwbGF5TGV2ZWxPZkRldGFpbCBkaXNwbGF5UHJlZiBkaXNwbGF5UkdCQ29sb3IgJ1xuICAgICAgKyAnZGlzcGxheVNtb290aG5lc3MgZGlzcGxheVN0YXRzIGRpc3BsYXlTdHJpbmcgZGlzcGxheVN1cmZhY2UgZGlzdGFuY2VEaW1Db250ZXh0ICdcbiAgICAgICsgJ2Rpc3RhbmNlRGltZW5zaW9uIGRvQmx1ciBkb2xseSBkb2xseUN0eCBkb3BlU2hlZXRFZGl0b3IgZG90IGRvdFByb2R1Y3QgJ1xuICAgICAgKyAnZG91YmxlUHJvZmlsZUJpcmFpbFN1cmZhY2UgZHJhZyBkcmFnQXR0ckNvbnRleHQgZHJhZ2dlckNvbnRleHQgZHJvcG9mZkxvY2F0b3IgJ1xuICAgICAgKyAnZHVwbGljYXRlIGR1cGxpY2F0ZUN1cnZlIGR1cGxpY2F0ZVN1cmZhY2UgZHluQ2FjaGUgZHluQ29udHJvbCBkeW5FeHBvcnQgZHluRXhwcmVzc2lvbiAnXG4gICAgICArICdkeW5HbG9iYWxzIGR5blBhaW50RWRpdG9yIGR5blBhcnRpY2xlQ3R4IGR5blByZWYgZHluUmVsRWRQYW5lbCBkeW5SZWxFZGl0b3IgJ1xuICAgICAgKyAnZHluYW1pY0xvYWQgZWRpdEF0dHJMaW1pdHMgZWRpdERpc3BsYXlMYXllckdsb2JhbHMgZWRpdERpc3BsYXlMYXllck1lbWJlcnMgJ1xuICAgICAgKyAnZWRpdFJlbmRlckxheWVyQWRqdXN0bWVudCBlZGl0UmVuZGVyTGF5ZXJHbG9iYWxzIGVkaXRSZW5kZXJMYXllck1lbWJlcnMgZWRpdG9yICdcbiAgICAgICsgJ2VkaXRvclRlbXBsYXRlIGVmZmVjdG9yIGVtaXQgZW1pdHRlciBlbmFibGVEZXZpY2UgZW5jb2RlU3RyaW5nIGVuZFN0cmluZyBlbmRzV2l0aCBlbnYgJ1xuICAgICAgKyAnZXF1aXZhbGVudCBlcXVpdmFsZW50VG9sIGVyZiBlcnJvciBldmFsIGV2YWxEZWZlcnJlZCBldmFsRWNobyBldmVudCAnXG4gICAgICArICdleGFjdFdvcmxkQm91bmRpbmdCb3ggZXhjbHVzaXZlTGlnaHRDaGVja0JveCBleGVjIGV4ZWN1dGVGb3JFYWNoT2JqZWN0IGV4aXN0cyBleHAgJ1xuICAgICAgKyAnZXhwcmVzc2lvbiBleHByZXNzaW9uRWRpdG9yTGlzdGVuIGV4dGVuZEN1cnZlIGV4dGVuZFN1cmZhY2UgZXh0cnVkZSBmY2hlY2sgZmNsb3NlIGZlb2YgJ1xuICAgICAgKyAnZmZsdXNoIGZnZXRsaW5lIGZnZXR3b3JkIGZpbGUgZmlsZUJyb3dzZXJEaWFsb2cgZmlsZURpYWxvZyBmaWxlRXh0ZW5zaW9uIGZpbGVJbmZvICdcbiAgICAgICsgJ2ZpbGV0ZXN0IGZpbGxldEN1cnZlIGZpbHRlciBmaWx0ZXJDdXJ2ZSBmaWx0ZXJFeHBhbmQgZmlsdGVyU3R1ZGlvSW1wb3J0ICdcbiAgICAgICsgJ2ZpbmRBbGxJbnRlcnNlY3Rpb25zIGZpbmRBbmltQ3VydmVzIGZpbmRLZXlmcmFtZSBmaW5kTWVudUl0ZW0gZmluZFJlbGF0ZWRTa2luQ2x1c3RlciAnXG4gICAgICArICdmaW5kZXIgZmlyc3RQYXJlbnRPZiBmaXRCc3BsaW5lIGZsZXhvciBmbG9hdEVxIGZsb2F0RmllbGQgZmxvYXRGaWVsZEdycCBmbG9hdFNjcm9sbEJhciAnXG4gICAgICArICdmbG9hdFNsaWRlciBmbG9hdFNsaWRlcjIgZmxvYXRTbGlkZXJCdXR0b25HcnAgZmxvYXRTbGlkZXJHcnAgZmxvb3IgZmxvdyBmbHVpZENhY2hlSW5mbyAnXG4gICAgICArICdmbHVpZEVtaXR0ZXIgZmx1aWRWb3hlbEluZm8gZmx1c2hVbmRvIGZtb2QgZm9udERpYWxvZyBmb3BlbiBmb3JtTGF5b3V0IGZvcm1hdCBmcHJpbnQgJ1xuICAgICAgKyAnZnJhbWVMYXlvdXQgZnJlYWQgZnJlZUZvcm1GaWxsZXQgZnJld2luZCBmcm9tTmF0aXZlUGF0aCBmd3JpdGUgZ2FtbWEgZ2F1c3MgJ1xuICAgICAgKyAnZ2VvbWV0cnlDb25zdHJhaW50IGdldEFwcGxpY2F0aW9uVmVyc2lvbkFzRmxvYXQgZ2V0QXR0ciBnZXRDbGFzc2lmaWNhdGlvbiAnXG4gICAgICArICdnZXREZWZhdWx0QnJ1c2ggZ2V0RmlsZUxpc3QgZ2V0Rmx1aWRBdHRyIGdldElucHV0RGV2aWNlUmFuZ2UgZ2V0TWF5YVBhbmVsVHlwZXMgJ1xuICAgICAgKyAnZ2V0TW9kaWZpZXJzIGdldFBhbmVsIGdldFBhcnRpY2xlQXR0ciBnZXRQbHVnaW5SZXNvdXJjZSBnZXRlbnYgZ2V0cGlkIGdsUmVuZGVyICdcbiAgICAgICsgJ2dsUmVuZGVyRWRpdG9yIGdsb2JhbFN0aXRjaCBnbWF0Y2ggZ29hbCBnb3RvQmluZFBvc2UgZ3JhYkNvbG9yIGdyYWRpZW50Q29udHJvbCAnXG4gICAgICArICdncmFkaWVudENvbnRyb2xOb0F0dHIgZ3JhcGhEb2xseUN0eCBncmFwaFNlbGVjdENvbnRleHQgZ3JhcGhUcmFja0N0eCBncmF2aXR5IGdyaWQgJ1xuICAgICAgKyAnZ3JpZExheW91dCBncm91cCBncm91cE9iamVjdHNCeU5hbWUgSGZBZGRBdHRyYWN0b3JUb0FTIEhmQXNzaWduQVMgSGZCdWlsZEVxdWFsTWFwICdcbiAgICAgICsgJ0hmQnVpbGRGdXJGaWxlcyBIZkJ1aWxkRnVySW1hZ2VzIEhmQ2FuY2VsQUZSIEhmQ29ubmVjdEFTVG9IRiBIZkNyZWF0ZUF0dHJhY3RvciAnXG4gICAgICArICdIZkRlbGV0ZUFTIEhmRWRpdEFTIEhmUGVyZm9ybUNyZWF0ZUFTIEhmUmVtb3ZlQXR0cmFjdG9yRnJvbUFTIEhmU2VsZWN0QXR0YWNoZWQgJ1xuICAgICAgKyAnSGZTZWxlY3RBdHRyYWN0b3JzIEhmVW5Bc3NpZ25BUyBoYXJkZW5Qb2ludEN1cnZlIGhhcmR3YXJlIGhhcmR3YXJlUmVuZGVyUGFuZWwgJ1xuICAgICAgKyAnaGVhZHNVcERpc3BsYXkgaGVhZHNVcE1lc3NhZ2UgaGVscCBoZWxwTGluZSBoZXJtaXRlIGhpZGUgaGlsaXRlIGhpdFRlc3QgaG90Qm94IGhvdGtleSAnXG4gICAgICArICdob3RrZXlDaGVjayBoc3ZfdG9fcmdiIGh1ZEJ1dHRvbiBodWRTbGlkZXIgaHVkU2xpZGVyQnV0dG9uIGh3UmVmbGVjdGlvbk1hcCBod1JlbmRlciAnXG4gICAgICArICdod1JlbmRlckxvYWQgaHlwZXJHcmFwaCBoeXBlclBhbmVsIGh5cGVyU2hhZGUgaHlwb3QgaWNvblRleHRCdXR0b24gaWNvblRleHRDaGVja0JveCAnXG4gICAgICArICdpY29uVGV4dFJhZGlvQnV0dG9uIGljb25UZXh0UmFkaW9Db2xsZWN0aW9uIGljb25UZXh0U2Nyb2xsTGlzdCBpY29uVGV4dFN0YXRpY0xhYmVsICdcbiAgICAgICsgJ2lrSGFuZGxlIGlrSGFuZGxlQ3R4IGlrSGFuZGxlRGlzcGxheVNjYWxlIGlrU29sdmVyIGlrU3BsaW5lSGFuZGxlQ3R4IGlrU3lzdGVtICdcbiAgICAgICsgJ2lrU3lzdGVtSW5mbyBpa2ZrRGlzcGxheU1ldGhvZCBpbGx1c3RyYXRvckN1cnZlcyBpbWFnZSBpbWZQbHVnaW5zIGluaGVyaXRUcmFuc2Zvcm0gJ1xuICAgICAgKyAnaW5zZXJ0Sm9pbnQgaW5zZXJ0Sm9pbnRDdHggaW5zZXJ0S2V5Q3R4IGluc2VydEtub3RDdXJ2ZSBpbnNlcnRLbm90U3VyZmFjZSBpbnN0YW5jZSAnXG4gICAgICArICdpbnN0YW5jZWFibGUgaW5zdGFuY2VyIGludEZpZWxkIGludEZpZWxkR3JwIGludFNjcm9sbEJhciBpbnRTbGlkZXIgaW50U2xpZGVyR3JwICdcbiAgICAgICsgJ2ludGVyVG9VSSBpbnRlcm5hbFZhciBpbnRlcnNlY3QgaXByRW5naW5lIGlzQW5pbUN1cnZlIGlzQ29ubmVjdGVkIGlzRGlydHkgaXNQYXJlbnRPZiAnXG4gICAgICArICdpc1NhbWVPYmplY3QgaXNUcnVlIGlzVmFsaWRPYmplY3ROYW1lIGlzVmFsaWRTdHJpbmcgaXNWYWxpZFVpTmFtZSBpc29sYXRlU2VsZWN0ICdcbiAgICAgICsgJ2l0ZW1GaWx0ZXIgaXRlbUZpbHRlckF0dHIgaXRlbUZpbHRlclJlbmRlciBpdGVtRmlsdGVyVHlwZSBqb2ludCBqb2ludENsdXN0ZXIgam9pbnRDdHggJ1xuICAgICAgKyAnam9pbnREaXNwbGF5U2NhbGUgam9pbnRMYXR0aWNlIGtleVRhbmdlbnQga2V5ZnJhbWUga2V5ZnJhbWVPdXRsaW5lciAnXG4gICAgICArICdrZXlmcmFtZVJlZ2lvbkN1cnJlbnRUaW1lQ3R4IGtleWZyYW1lUmVnaW9uRGlyZWN0S2V5Q3R4IGtleWZyYW1lUmVnaW9uRG9sbHlDdHggJ1xuICAgICAgKyAna2V5ZnJhbWVSZWdpb25JbnNlcnRLZXlDdHgga2V5ZnJhbWVSZWdpb25Nb3ZlS2V5Q3R4IGtleWZyYW1lUmVnaW9uU2NhbGVLZXlDdHggJ1xuICAgICAgKyAna2V5ZnJhbWVSZWdpb25TZWxlY3RLZXlDdHgga2V5ZnJhbWVSZWdpb25TZXRLZXlDdHgga2V5ZnJhbWVSZWdpb25UcmFja0N0eCAnXG4gICAgICArICdrZXlmcmFtZVN0YXRzIGxhc3NvQ29udGV4dCBsYXR0aWNlIGxhdHRpY2VEZWZvcm1LZXlDdHggbGF1bmNoIGxhdW5jaEltYWdlRWRpdG9yICdcbiAgICAgICsgJ2xheWVyQnV0dG9uIGxheWVyZWRTaGFkZXJQb3J0IGxheWVyZWRUZXh0dXJlUG9ydCBsYXlvdXQgbGF5b3V0RGlhbG9nIGxpZ2h0TGlzdCAnXG4gICAgICArICdsaWdodExpc3RFZGl0b3IgbGlnaHRMaXN0UGFuZWwgbGlnaHRsaW5rIGxpbmVJbnRlcnNlY3Rpb24gbGluZWFyUHJlY2lzaW9uIGxpbnN0ZXAgJ1xuICAgICAgKyAnbGlzdEFuaW1hdGFibGUgbGlzdEF0dHIgbGlzdENhbWVyYXMgbGlzdENvbm5lY3Rpb25zIGxpc3REZXZpY2VBdHRhY2htZW50cyBsaXN0SGlzdG9yeSAnXG4gICAgICArICdsaXN0SW5wdXREZXZpY2VBeGVzIGxpc3RJbnB1dERldmljZUJ1dHRvbnMgbGlzdElucHV0RGV2aWNlcyBsaXN0TWVudUFubm90YXRpb24gJ1xuICAgICAgKyAnbGlzdE5vZGVUeXBlcyBsaXN0UGFuZWxDYXRlZ29yaWVzIGxpc3RSZWxhdGl2ZXMgbGlzdFNldHMgbGlzdFRyYW5zZm9ybXMgJ1xuICAgICAgKyAnbGlzdFVuc2VsZWN0ZWQgbGlzdGVyRWRpdG9yIGxvYWRGbHVpZCBsb2FkTmV3U2hlbGYgbG9hZFBsdWdpbiAnXG4gICAgICArICdsb2FkUGx1Z2luTGFuZ3VhZ2VSZXNvdXJjZXMgbG9hZFByZWZPYmplY3RzIGxvY2FsaXplZFBhbmVsTGFiZWwgbG9ja05vZGUgbG9mdCBsb2cgJ1xuICAgICAgKyAnbG9uZ05hbWVPZiBsb29rVGhydSBscyBsc1Rocm91Z2hGaWx0ZXIgbHNUeXBlIGxzVUkgTWF5YXRvbXIgbWFnIG1ha2VJZGVudGl0eSBtYWtlTGl2ZSAnXG4gICAgICArICdtYWtlUGFpbnRhYmxlIG1ha2VSb2xsIG1ha2VTaW5nbGVTdXJmYWNlIG1ha2VUdWJlT24gbWFrZWJvdCBtYW5pcE1vdmVDb250ZXh0ICdcbiAgICAgICsgJ21hbmlwTW92ZUxpbWl0c0N0eCBtYW5pcE9wdGlvbnMgbWFuaXBSb3RhdGVDb250ZXh0IG1hbmlwUm90YXRlTGltaXRzQ3R4ICdcbiAgICAgICsgJ21hbmlwU2NhbGVDb250ZXh0IG1hbmlwU2NhbGVMaW1pdHNDdHggbWFya2VyIG1hdGNoIG1heCBtZW1vcnkgbWVudSBtZW51QmFyTGF5b3V0ICdcbiAgICAgICsgJ21lbnVFZGl0b3IgbWVudUl0ZW0gbWVudUl0ZW1Ub1NoZWxmIG1lbnVTZXQgbWVudVNldFByZWYgbWVzc2FnZUxpbmUgbWluIG1pbmltaXplQXBwICdcbiAgICAgICsgJ21pcnJvckpvaW50IG1vZGVsQ3VycmVudFRpbWVDdHggbW9kZWxFZGl0b3IgbW9kZWxQYW5lbCBtb3VzZSBtb3ZJbiBtb3ZPdXQgbW92ZSAnXG4gICAgICArICdtb3ZlSUt0b0ZLIG1vdmVLZXlDdHggbW92ZVZlcnRleEFsb25nRGlyZWN0aW9uIG11bHRpUHJvZmlsZUJpcmFpbFN1cmZhY2UgbXV0ZSAnXG4gICAgICArICduUGFydGljbGUgbmFtZUNvbW1hbmQgbmFtZUZpZWxkIG5hbWVzcGFjZSBuYW1lc3BhY2VJbmZvIG5ld1BhbmVsSXRlbXMgbmV3dG9uIG5vZGVDYXN0ICdcbiAgICAgICsgJ25vZGVJY29uQnV0dG9uIG5vZGVPdXRsaW5lciBub2RlUHJlc2V0IG5vZGVUeXBlIG5vaXNlIG5vbkxpbmVhciBub3JtYWxDb25zdHJhaW50ICdcbiAgICAgICsgJ25vcm1hbGl6ZSBudXJic0Jvb2xlYW4gbnVyYnNDb3B5VVZTZXQgbnVyYnNDdWJlIG51cmJzRWRpdFVWIG51cmJzUGxhbmUgbnVyYnNTZWxlY3QgJ1xuICAgICAgKyAnbnVyYnNTcXVhcmUgbnVyYnNUb1BvbHkgbnVyYnNUb1BvbHlnb25zUHJlZiBudXJic1RvU3ViZGl2IG51cmJzVG9TdWJkaXZQcmVmICdcbiAgICAgICsgJ251cmJzVVZTZXQgbnVyYnNWaWV3RGlyZWN0aW9uVmVjdG9yIG9iakV4aXN0cyBvYmplY3RDZW50ZXIgb2JqZWN0TGF5ZXIgb2JqZWN0VHlwZSAnXG4gICAgICArICdvYmplY3RUeXBlVUkgb2Jzb2xldGVQcm9jIG9jZWFuTnVyYnNQcmV2aWV3UGxhbmUgb2Zmc2V0Q3VydmUgb2Zmc2V0Q3VydmVPblN1cmZhY2UgJ1xuICAgICAgKyAnb2Zmc2V0U3VyZmFjZSBvcGVuR0xFeHRlbnNpb24gb3Blbk1heWFQcmVmIG9wdGlvbk1lbnUgb3B0aW9uTWVudUdycCBvcHRpb25WYXIgb3JiaXQgJ1xuICAgICAgKyAnb3JiaXRDdHggb3JpZW50Q29uc3RyYWludCBvdXRsaW5lckVkaXRvciBvdXRsaW5lclBhbmVsIG92ZXJyaWRlTW9kaWZpZXIgJ1xuICAgICAgKyAncGFpbnRFZmZlY3RzRGlzcGxheSBwYWlyQmxlbmQgcGFsZXR0ZVBvcnQgcGFuZUxheW91dCBwYW5lbCBwYW5lbENvbmZpZ3VyYXRpb24gJ1xuICAgICAgKyAncGFuZWxIaXN0b3J5IHBhcmFtRGltQ29udGV4dCBwYXJhbURpbWVuc2lvbiBwYXJhbUxvY2F0b3IgcGFyZW50IHBhcmVudENvbnN0cmFpbnQgJ1xuICAgICAgKyAncGFydGljbGUgcGFydGljbGVFeGlzdHMgcGFydGljbGVJbnN0YW5jZXIgcGFydGljbGVSZW5kZXJJbmZvIHBhcnRpdGlvbiBwYXN0ZUtleSAnXG4gICAgICArICdwYXRoQW5pbWF0aW9uIHBhdXNlIHBjbG9zZSBwZXJjZW50IHBlcmZvcm1hbmNlT3B0aW9ucyBwZnhzdHJva2VzIHBpY2tXYWxrIHBpY3R1cmUgJ1xuICAgICAgKyAncGl4ZWxNb3ZlIHBsYW5hclNyZiBwbGFuZSBwbGF5IHBsYXliYWNrT3B0aW9ucyBwbGF5Ymxhc3QgcGx1Z0F0dHIgcGx1Z05vZGUgcGx1Z2luSW5mbyAnXG4gICAgICArICdwbHVnaW5SZXNvdXJjZVV0aWwgcG9pbnRDb25zdHJhaW50IHBvaW50Q3VydmVDb25zdHJhaW50IHBvaW50TGlnaHQgcG9pbnRNYXRyaXhNdWx0ICdcbiAgICAgICsgJ3BvaW50T25DdXJ2ZSBwb2ludE9uU3VyZmFjZSBwb2ludFBvc2l0aW9uIHBvbGVWZWN0b3JDb25zdHJhaW50IHBvbHlBcHBlbmQgJ1xuICAgICAgKyAncG9seUFwcGVuZEZhY2V0Q3R4IHBvbHlBcHBlbmRWZXJ0ZXggcG9seUF1dG9Qcm9qZWN0aW9uIHBvbHlBdmVyYWdlTm9ybWFsICdcbiAgICAgICsgJ3BvbHlBdmVyYWdlVmVydGV4IHBvbHlCZXZlbCBwb2x5QmxlbmRDb2xvciBwb2x5QmxpbmREYXRhIHBvbHlCb29sT3AgcG9seUJyaWRnZUVkZ2UgJ1xuICAgICAgKyAncG9seUNhY2hlTW9uaXRvciBwb2x5Q2hlY2sgcG9seUNoaXBPZmYgcG9seUNsaXBib2FyZCBwb2x5Q2xvc2VCb3JkZXIgcG9seUNvbGxhcHNlRWRnZSAnXG4gICAgICArICdwb2x5Q29sbGFwc2VGYWNldCBwb2x5Q29sb3JCbGluZERhdGEgcG9seUNvbG9yRGVsIHBvbHlDb2xvclBlclZlcnRleCBwb2x5Q29sb3JTZXQgJ1xuICAgICAgKyAncG9seUNvbXBhcmUgcG9seUNvbmUgcG9seUNvcHlVViBwb2x5Q3JlYXNlIHBvbHlDcmVhc2VDdHggcG9seUNyZWF0ZUZhY2V0ICdcbiAgICAgICsgJ3BvbHlDcmVhdGVGYWNldEN0eCBwb2x5Q3ViZSBwb2x5Q3V0IHBvbHlDdXRDdHggcG9seUN5bGluZGVyIHBvbHlDeWxpbmRyaWNhbFByb2plY3Rpb24gJ1xuICAgICAgKyAncG9seURlbEVkZ2UgcG9seURlbEZhY2V0IHBvbHlEZWxWZXJ0ZXggcG9seUR1cGxpY2F0ZUFuZENvbm5lY3QgcG9seUR1cGxpY2F0ZUVkZ2UgJ1xuICAgICAgKyAncG9seUVkaXRVViBwb2x5RWRpdFVWU2hlbGwgcG9seUV2YWx1YXRlIHBvbHlFeHRydWRlRWRnZSBwb2x5RXh0cnVkZUZhY2V0ICdcbiAgICAgICsgJ3BvbHlFeHRydWRlVmVydGV4IHBvbHlGbGlwRWRnZSBwb2x5RmxpcFVWIHBvbHlGb3JjZVVWIHBvbHlHZW9TYW1wbGVyIHBvbHlIZWxpeCAnXG4gICAgICArICdwb2x5SW5mbyBwb2x5SW5zdGFsbEFjdGlvbiBwb2x5TGF5b3V0VVYgcG9seUxpc3RDb21wb25lbnRDb252ZXJzaW9uIHBvbHlNYXBDdXQgJ1xuICAgICAgKyAncG9seU1hcERlbCBwb2x5TWFwU2V3IHBvbHlNYXBTZXdNb3ZlIHBvbHlNZXJnZUVkZ2UgcG9seU1lcmdlRWRnZUN0eCBwb2x5TWVyZ2VGYWNldCAnXG4gICAgICArICdwb2x5TWVyZ2VGYWNldEN0eCBwb2x5TWVyZ2VVViBwb2x5TWVyZ2VWZXJ0ZXggcG9seU1pcnJvckZhY2UgcG9seU1vdmVFZGdlICdcbiAgICAgICsgJ3BvbHlNb3ZlRmFjZXQgcG9seU1vdmVGYWNldFVWIHBvbHlNb3ZlVVYgcG9seU1vdmVWZXJ0ZXggcG9seU5vcm1hbCBwb2x5Tm9ybWFsUGVyVmVydGV4ICdcbiAgICAgICsgJ3BvbHlOb3JtYWxpemVVViBwb2x5T3B0VXZzIHBvbHlPcHRpb25zIHBvbHlPdXRwdXQgcG9seVBpcGUgcG9seVBsYW5hclByb2plY3Rpb24gJ1xuICAgICAgKyAncG9seVBsYW5lIHBvbHlQbGF0b25pY1NvbGlkIHBvbHlQb2tlIHBvbHlQcmltaXRpdmUgcG9seVByaXNtIHBvbHlQcm9qZWN0aW9uICdcbiAgICAgICsgJ3BvbHlQeXJhbWlkIHBvbHlRdWFkIHBvbHlRdWVyeUJsaW5kRGF0YSBwb2x5UmVkdWNlIHBvbHlTZWxlY3QgcG9seVNlbGVjdENvbnN0cmFpbnQgJ1xuICAgICAgKyAncG9seVNlbGVjdENvbnN0cmFpbnRNb25pdG9yIHBvbHlTZWxlY3RDdHggcG9seVNlbGVjdEVkaXRDdHggcG9seVNlcGFyYXRlICdcbiAgICAgICsgJ3BvbHlTZXRUb0ZhY2VOb3JtYWwgcG9seVNld0VkZ2UgcG9seVNob3J0ZXN0UGF0aEN0eCBwb2x5U21vb3RoIHBvbHlTb2Z0RWRnZSAnXG4gICAgICArICdwb2x5U3BoZXJlIHBvbHlTcGhlcmljYWxQcm9qZWN0aW9uIHBvbHlTcGxpdCBwb2x5U3BsaXRDdHggcG9seVNwbGl0RWRnZSBwb2x5U3BsaXRSaW5nICdcbiAgICAgICsgJ3BvbHlTcGxpdFZlcnRleCBwb2x5U3RyYWlnaHRlblVWQm9yZGVyIHBvbHlTdWJkaXZpZGVFZGdlIHBvbHlTdWJkaXZpZGVGYWNldCAnXG4gICAgICArICdwb2x5VG9TdWJkaXYgcG9seVRvcnVzIHBvbHlUcmFuc2ZlciBwb2x5VHJpYW5ndWxhdGUgcG9seVVWU2V0IHBvbHlVbml0ZSBwb2x5V2VkZ2VGYWNlICdcbiAgICAgICsgJ3BvcGVuIHBvcHVwTWVudSBwb3NlIHBvdyBwcmVsb2FkUmVmRWQgcHJpbnQgcHJvZ3Jlc3NCYXIgcHJvZ3Jlc3NXaW5kb3cgcHJvakZpbGVWaWV3ZXIgJ1xuICAgICAgKyAncHJvamVjdEN1cnZlIHByb2plY3RUYW5nZW50IHByb2plY3Rpb25Db250ZXh0IHByb2plY3Rpb25NYW5pcCBwcm9tcHREaWFsb2cgcHJvcE1vZEN0eCAnXG4gICAgICArICdwcm9wTW92ZSBwc2RDaGFubmVsT3V0bGluZXIgcHNkRWRpdFRleHR1cmVGaWxlIHBzZEV4cG9ydCBwc2RUZXh0dXJlRmlsZSBwdXRlbnYgcHdkICdcbiAgICAgICsgJ3B5dGhvbiBxdWVyeVN1YmRpdiBxdWl0IHJhZF90b19kZWcgcmFkaWFsIHJhZGlvQnV0dG9uIHJhZGlvQnV0dG9uR3JwIHJhZGlvQ29sbGVjdGlvbiAnXG4gICAgICArICdyYWRpb01lbnVJdGVtQ29sbGVjdGlvbiByYW1wQ29sb3JQb3J0IHJhbmQgcmFuZG9taXplRm9sbGljbGVzIHJhbmRzdGF0ZSByYW5nZUNvbnRyb2wgJ1xuICAgICAgKyAncmVhZFRha2UgcmVidWlsZEN1cnZlIHJlYnVpbGRTdXJmYWNlIHJlY29yZEF0dHIgcmVjb3JkRGV2aWNlIHJlZG8gcmVmZXJlbmNlICdcbiAgICAgICsgJ3JlZmVyZW5jZUVkaXQgcmVmZXJlbmNlUXVlcnkgcmVmaW5lU3ViZGl2U2VsZWN0aW9uTGlzdCByZWZyZXNoIHJlZnJlc2hBRSAnXG4gICAgICArICdyZWdpc3RlclBsdWdpblJlc291cmNlIHJlaGFzaCByZWxvYWRJbWFnZSByZW1vdmVKb2ludCByZW1vdmVNdWx0aUluc3RhbmNlICdcbiAgICAgICsgJ3JlbW92ZVBhbmVsQ2F0ZWdvcnkgcmVuYW1lIHJlbmFtZUF0dHIgcmVuYW1lU2VsZWN0aW9uTGlzdCByZW5hbWVVSSByZW5kZXIgJ1xuICAgICAgKyAncmVuZGVyR2xvYmFsc05vZGUgcmVuZGVySW5mbyByZW5kZXJMYXllckJ1dHRvbiByZW5kZXJMYXllclBhcmVudCAnXG4gICAgICArICdyZW5kZXJMYXllclBvc3RQcm9jZXNzIHJlbmRlckxheWVyVW5wYXJlbnQgcmVuZGVyTWFuaXAgcmVuZGVyUGFydGl0aW9uICdcbiAgICAgICsgJ3JlbmRlclF1YWxpdHlOb2RlIHJlbmRlclNldHRpbmdzIHJlbmRlclRodW1ibmFpbFVwZGF0ZSByZW5kZXJXaW5kb3dFZGl0b3IgJ1xuICAgICAgKyAncmVuZGVyV2luZG93U2VsZWN0Q29udGV4dCByZW5kZXJlciByZW9yZGVyIHJlb3JkZXJEZWZvcm1lcnMgcmVxdWlyZXMgcmVyb290ICdcbiAgICAgICsgJ3Jlc2FtcGxlRmx1aWQgcmVzZXRBRSByZXNldFBmeFRvUG9seUNhbWVyYSByZXNldFRvb2wgcmVzb2x1dGlvbk5vZGUgcmV0YXJnZXQgJ1xuICAgICAgKyAncmV2ZXJzZUN1cnZlIHJldmVyc2VTdXJmYWNlIHJldm9sdmUgcmdiX3RvX2hzdiByaWdpZEJvZHkgcmlnaWRTb2x2ZXIgcm9sbCByb2xsQ3R4ICdcbiAgICAgICsgJ3Jvb3RPZiByb3Qgcm90YXRlIHJvdGF0aW9uSW50ZXJwb2xhdGlvbiByb3VuZENvbnN0YW50UmFkaXVzIHJvd0NvbHVtbkxheW91dCByb3dMYXlvdXQgJ1xuICAgICAgKyAncnVuVGltZUNvbW1hbmQgcnVudXAgc2FtcGxlSW1hZ2Ugc2F2ZUFsbFNoZWx2ZXMgc2F2ZUF0dHJQcmVzZXQgc2F2ZUZsdWlkIHNhdmVJbWFnZSAnXG4gICAgICArICdzYXZlSW5pdGlhbFN0YXRlIHNhdmVNZW51IHNhdmVQcmVmT2JqZWN0cyBzYXZlUHJlZnMgc2F2ZVNoZWxmIHNhdmVUb29sU2V0dGluZ3Mgc2NhbGUgJ1xuICAgICAgKyAnc2NhbGVCcnVzaEJyaWdodG5lc3Mgc2NhbGVDb21wb25lbnRzIHNjYWxlQ29uc3RyYWludCBzY2FsZUtleSBzY2FsZUtleUN0eCBzY2VuZUVkaXRvciAnXG4gICAgICArICdzY2VuZVVJUmVwbGFjZW1lbnQgc2NtaCBzY3JpcHRDdHggc2NyaXB0RWRpdG9ySW5mbyBzY3JpcHRKb2Igc2NyaXB0Tm9kZSBzY3JpcHRUYWJsZSAnXG4gICAgICArICdzY3JpcHRUb1NoZWxmIHNjcmlwdGVkUGFuZWwgc2NyaXB0ZWRQYW5lbFR5cGUgc2Nyb2xsRmllbGQgc2Nyb2xsTGF5b3V0IHNjdWxwdCAnXG4gICAgICArICdzZWFyY2hQYXRoQXJyYXkgc2VlZCBzZWxMb2FkU2V0dGluZ3Mgc2VsZWN0IHNlbGVjdENvbnRleHQgc2VsZWN0Q3VydmVDViBzZWxlY3RLZXkgJ1xuICAgICAgKyAnc2VsZWN0S2V5Q3R4IHNlbGVjdEtleWZyYW1lUmVnaW9uQ3R4IHNlbGVjdE1vZGUgc2VsZWN0UHJlZiBzZWxlY3RQcmlvcml0eSBzZWxlY3RUeXBlICdcbiAgICAgICsgJ3NlbGVjdGVkTm9kZXMgc2VsZWN0aW9uQ29ubmVjdGlvbiBzZXBhcmF0b3Igc2V0QXR0ciBzZXRBdHRyRW51bVJlc291cmNlICdcbiAgICAgICsgJ3NldEF0dHJNYXBwaW5nIHNldEF0dHJOaWNlTmFtZVJlc291cmNlIHNldENvbnN0cmFpbnRSZXN0UG9zaXRpb24gJ1xuICAgICAgKyAnc2V0RGVmYXVsdFNoYWRpbmdHcm91cCBzZXREcml2ZW5LZXlmcmFtZSBzZXREeW5hbWljIHNldEVkaXRDdHggc2V0RWRpdG9yIHNldEZsdWlkQXR0ciAnXG4gICAgICArICdzZXRGb2N1cyBzZXRJbmZpbml0eSBzZXRJbnB1dERldmljZU1hcHBpbmcgc2V0S2V5Q3R4IHNldEtleVBhdGggc2V0S2V5ZnJhbWUgJ1xuICAgICAgKyAnc2V0S2V5ZnJhbWVCbGVuZHNoYXBlVGFyZ2V0V3RzIHNldE1lbnVNb2RlIHNldE5vZGVOaWNlTmFtZVJlc291cmNlIHNldE5vZGVUeXBlRmxhZyAnXG4gICAgICArICdzZXRQYXJlbnQgc2V0UGFydGljbGVBdHRyIHNldFBmeFRvUG9seUNhbWVyYSBzZXRQbHVnaW5SZXNvdXJjZSBzZXRQcm9qZWN0ICdcbiAgICAgICsgJ3NldFN0YW1wRGVuc2l0eSBzZXRTdGFydHVwTWVzc2FnZSBzZXRTdGF0ZSBzZXRUb29sVG8gc2V0VUlUZW1wbGF0ZSBzZXRYZm9ybU1hbmlwIHNldHMgJ1xuICAgICAgKyAnc2hhZGluZ0Nvbm5lY3Rpb24gc2hhZGluZ0dlb21ldHJ5UmVsQ3R4IHNoYWRpbmdMaWdodFJlbEN0eCBzaGFkaW5nTmV0d29ya0NvbXBhcmUgJ1xuICAgICAgKyAnc2hhZGluZ05vZGUgc2hhcGVDb21wYXJlIHNoZWxmQnV0dG9uIHNoZWxmTGF5b3V0IHNoZWxmVGFiTGF5b3V0IHNoZWxsRmllbGQgJ1xuICAgICAgKyAnc2hvcnROYW1lT2Ygc2hvd0hlbHAgc2hvd0hpZGRlbiBzaG93TWFuaXBDdHggc2hvd1NlbGVjdGlvbkluVGl0bGUgJ1xuICAgICAgKyAnc2hvd1NoYWRpbmdHcm91cEF0dHJFZGl0b3Igc2hvd1dpbmRvdyBzaWduIHNpbXBsaWZ5IHNpbiBzaW5nbGVQcm9maWxlQmlyYWlsU3VyZmFjZSAnXG4gICAgICArICdzaXplIHNpemVCeXRlcyBza2luQ2x1c3RlciBza2luUGVyY2VudCBzbW9vdGhDdXJ2ZSBzbW9vdGhUYW5nZW50U3VyZmFjZSBzbW9vdGhzdGVwICdcbiAgICAgICsgJ3NuYXAydG8yIHNuYXBLZXkgc25hcE1vZGUgc25hcFRvZ2V0aGVyQ3R4IHNuYXBzaG90IHNvZnQgc29mdE1vZCBzb2Z0TW9kQ3R4IHNvcnQgc291bmQgJ1xuICAgICAgKyAnc291bmRDb250cm9sIHNvdXJjZSBzcGFjZUxvY2F0b3Igc3BoZXJlIHNwaHJhbmQgc3BvdExpZ2h0IHNwb3RMaWdodFByZXZpZXdQb3J0ICdcbiAgICAgICsgJ3NwcmVhZFNoZWV0RWRpdG9yIHNwcmluZyBzcXJ0IHNxdWFyZVN1cmZhY2Ugc3J0Q29udGV4dCBzdGFja1RyYWNlIHN0YXJ0U3RyaW5nICdcbiAgICAgICsgJ3N0YXJ0c1dpdGggc3RpdGNoQW5kRXhwbG9kZVNoZWxsIHN0aXRjaFN1cmZhY2Ugc3RpdGNoU3VyZmFjZVBvaW50cyBzdHJjbXAgJ1xuICAgICAgKyAnc3RyaW5nQXJyYXlDYXRlbmF0ZSBzdHJpbmdBcnJheUNvbnRhaW5zIHN0cmluZ0FycmF5Q291bnQgc3RyaW5nQXJyYXlJbnNlcnRBdEluZGV4ICdcbiAgICAgICsgJ3N0cmluZ0FycmF5SW50ZXJzZWN0b3Igc3RyaW5nQXJyYXlSZW1vdmUgc3RyaW5nQXJyYXlSZW1vdmVBdEluZGV4ICdcbiAgICAgICsgJ3N0cmluZ0FycmF5UmVtb3ZlRHVwbGljYXRlcyBzdHJpbmdBcnJheVJlbW92ZUV4YWN0IHN0cmluZ0FycmF5VG9TdHJpbmcgJ1xuICAgICAgKyAnc3RyaW5nVG9TdHJpbmdBcnJheSBzdHJpcCBzdHJpcFByZWZpeEZyb21OYW1lIHN0cm9rZSBzdWJkQXV0b1Byb2plY3Rpb24gJ1xuICAgICAgKyAnc3ViZENsZWFuVG9wb2xvZ3kgc3ViZENvbGxhcHNlIHN1YmREdXBsaWNhdGVBbmRDb25uZWN0IHN1YmRFZGl0VVYgJ1xuICAgICAgKyAnc3ViZExpc3RDb21wb25lbnRDb252ZXJzaW9uIHN1YmRNYXBDdXQgc3ViZE1hcFNld01vdmUgc3ViZE1hdGNoVG9wb2xvZ3kgc3ViZE1pcnJvciAnXG4gICAgICArICdzdWJkVG9CbGluZCBzdWJkVG9Qb2x5IHN1YmRUcmFuc2ZlclVWc1RvQ2FjaGUgc3ViZGl2IHN1YmRpdkNyZWFzZSAnXG4gICAgICArICdzdWJkaXZEaXNwbGF5U21vb3RobmVzcyBzdWJzdGl0dXRlIHN1YnN0aXR1dGVBbGxTdHJpbmcgc3Vic3RpdHV0ZUdlb21ldHJ5IHN1YnN0cmluZyAnXG4gICAgICArICdzdXJmYWNlIHN1cmZhY2VTYW1wbGVyIHN1cmZhY2VTaGFkZXJMaXN0IHN3YXRjaERpc3BsYXlQb3J0IHN3aXRjaFRhYmxlIHN5bWJvbEJ1dHRvbiAnXG4gICAgICArICdzeW1ib2xDaGVja0JveCBzeXNGaWxlIHN5c3RlbSB0YWJMYXlvdXQgdGFuIHRhbmdlbnRDb25zdHJhaW50IHRleExhdHRpY2VEZWZvcm1Db250ZXh0ICdcbiAgICAgICsgJ3RleE1hbmlwQ29udGV4dCB0ZXhNb3ZlQ29udGV4dCB0ZXhNb3ZlVVZTaGVsbENvbnRleHQgdGV4Um90YXRlQ29udGV4dCB0ZXhTY2FsZUNvbnRleHQgJ1xuICAgICAgKyAndGV4U2VsZWN0Q29udGV4dCB0ZXhTZWxlY3RTaG9ydGVzdFBhdGhDdHggdGV4U211ZGdlVVZDb250ZXh0IHRleFdpblRvb2xDdHggdGV4dCAnXG4gICAgICArICd0ZXh0Q3VydmVzIHRleHRGaWVsZCB0ZXh0RmllbGRCdXR0b25HcnAgdGV4dEZpZWxkR3JwIHRleHRNYW5pcCB0ZXh0U2Nyb2xsTGlzdCAnXG4gICAgICArICd0ZXh0VG9TaGVsZiB0ZXh0dXJlRGlzcGxhY2VQbGFuZSB0ZXh0dXJlSGFpckNvbG9yIHRleHR1cmVQbGFjZW1lbnRDb250ZXh0ICdcbiAgICAgICsgJ3RleHR1cmVXaW5kb3cgdGhyZWFkQ291bnQgdGhyZWVQb2ludEFyY0N0eCB0aW1lQ29udHJvbCB0aW1lUG9ydCB0aW1lclggdG9OYXRpdmVQYXRoICdcbiAgICAgICsgJ3RvZ2dsZSB0b2dnbGVBeGlzIHRvZ2dsZVdpbmRvd1Zpc2liaWxpdHkgdG9rZW5pemUgdG9rZW5pemVMaXN0IHRvbGVyYW5jZSB0b2xvd2VyICdcbiAgICAgICsgJ3Rvb2xCdXR0b24gdG9vbENvbGxlY3Rpb24gdG9vbERyb3BwZWQgdG9vbEhhc09wdGlvbnMgdG9vbFByb3BlcnR5V2luZG93IHRvcnVzIHRvdXBwZXIgJ1xuICAgICAgKyAndHJhY2UgdHJhY2sgdHJhY2tDdHggdHJhbnNmZXJBdHRyaWJ1dGVzIHRyYW5zZm9ybUNvbXBhcmUgdHJhbnNmb3JtTGltaXRzIHRyYW5zbGF0b3IgJ1xuICAgICAgKyAndHJpbSB0cnVuYyB0cnVuY2F0ZUZsdWlkQ2FjaGUgdHJ1bmNhdGVIYWlyQ2FjaGUgdHVtYmxlIHR1bWJsZUN0eCB0dXJidWxlbmNlICdcbiAgICAgICsgJ3R3b1BvaW50QXJjQ3R4IHVpUmVzIHVpVGVtcGxhdGUgdW5hc3NpZ25JbnB1dERldmljZSB1bmRvIHVuZG9JbmZvIHVuZ3JvdXAgdW5pZm9ybSB1bml0ICdcbiAgICAgICsgJ3VubG9hZFBsdWdpbiB1bnRhbmdsZVVWIHVudGl0bGVkRmlsZU5hbWUgdW50cmltIHVwQXhpcyB1cGRhdGVBRSB1c2VyQ3R4IHV2TGluayAnXG4gICAgICArICd1dlNuYXBzaG90IHZhbGlkYXRlU2hlbGZOYW1lIHZlY3Rvcml6ZSB2aWV3MmRUb29sQ3R4IHZpZXdDYW1lcmEgdmlld0NsaXBQbGFuZSAnXG4gICAgICArICd2aWV3Rml0IHZpZXdIZWFkT24gdmlld0xvb2tBdCB2aWV3TWFuaXAgdmlld1BsYWNlIHZpZXdTZXQgdmlzb3Igdm9sdW1lQXhpcyB2b3J0ZXggJ1xuICAgICAgKyAnd2FpdEN1cnNvciB3YXJuaW5nIHdlYkJyb3dzZXIgd2ViQnJvd3NlclByZWZzIHdoYXRJcyB3aW5kb3cgd2luZG93UHJlZiB3aXJlICdcbiAgICAgICsgJ3dpcmVDb250ZXh0IHdvcmtzcGFjZSB3cmlua2xlIHdyaW5rbGVDb250ZXh0IHdyaXRlVGFrZSB4Ym1MYW5nUGF0aExpc3QgeGZvcm0nLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgIGVuZDogJ2AnLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gZWF0cyB2YXJpYWJsZXNcbiAgICAgICAgYmVnaW46IC9bJCVAXShcXF5cXHdcXGJ8I1xcdyt8W15cXHNcXHd7XXxcXHtcXHcrXFx9fFxcdyspLyB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZWw7XG4iLCAiLypcbkxhbmd1YWdlOiBNZXJjdXJ5XG5BdXRob3I6IG11Y2FobyA8bWt1Y2tvQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBNZXJjdXJ5IGlzIGEgbG9naWMvZnVuY3Rpb25hbCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aGljaCBjb21iaW5lcyB0aGUgY2xhcml0eSBhbmQgZXhwcmVzc2l2ZW5lc3Mgb2YgZGVjbGFyYXRpdmUgcHJvZ3JhbW1pbmcgd2l0aCBhZHZhbmNlZCBzdGF0aWMgYW5hbHlzaXMgYW5kIGVycm9yIGRldGVjdGlvbiBmZWF0dXJlcy5cbldlYnNpdGU6IGh0dHBzOi8vd3d3Lm1lcmN1cnlsYW5nLm9yZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbmZ1bmN0aW9uIG1lcmN1cnkoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ21vZHVsZSB1c2VfbW9kdWxlIGltcG9ydF9tb2R1bGUgaW5jbHVkZV9tb2R1bGUgZW5kX21vZHVsZSBpbml0aWFsaXNlICdcbiAgICAgICsgJ211dGFibGUgaW5pdGlhbGl6ZSBmaW5hbGl6ZSBmaW5hbGlzZSBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24gcHJlZCAnXG4gICAgICArICdtb2RlIGZ1bmMgdHlwZSBpbnN0IHNvbHZlciBhbnlfcHJlZCBhbnlfZnVuYyBpcyBzZW1pZGV0IGRldCBub25kZXQgJ1xuICAgICAgKyAnbXVsdGkgZXJyb25lb3VzIGZhaWx1cmUgY2Nfbm9uZGV0IGNjX211bHRpIHR5cGVjbGFzcyBpbnN0YW5jZSB3aGVyZSAnXG4gICAgICArICdwcmFnbWEgcHJvbWlzZSBleHRlcm5hbCB0cmFjZSBhdG9taWMgb3JfZWxzZSByZXF1aXJlX2NvbXBsZXRlX3N3aXRjaCAnXG4gICAgICArICdyZXF1aXJlX2RldCByZXF1aXJlX3NlbWlkZXQgcmVxdWlyZV9tdWx0aSByZXF1aXJlX25vbmRldCAnXG4gICAgICArICdyZXF1aXJlX2NjX211bHRpIHJlcXVpcmVfY2Nfbm9uZGV0IHJlcXVpcmVfZXJyb25lb3VzIHJlcXVpcmVfZmFpbHVyZScsXG4gICAgbWV0YTpcbiAgICAgIC8vIHByYWdtYVxuICAgICAgJ2lubGluZSBub19pbmxpbmUgdHlwZV9zcGVjIHNvdXJjZV9maWxlIGZhY3RfdGFibGUgb2Jzb2xldGUgbWVtbyAnXG4gICAgICArICdsb29wX2NoZWNrIG1pbmltYWxfbW9kZWwgdGVybWluYXRlcyBkb2VzX25vdF90ZXJtaW5hdGUgJ1xuICAgICAgKyAnY2hlY2tfdGVybWluYXRpb24gcHJvbWlzZV9lcXVpdmFsZW50X2NsYXVzZXMgJ1xuICAgICAgLy8gcHJlcHJvY2Vzc29yXG4gICAgICArICdmb3JlaWduX3Byb2MgZm9yZWlnbl9kZWNsIGZvcmVpZ25fY29kZSBmb3JlaWduX3R5cGUgJ1xuICAgICAgKyAnZm9yZWlnbl9pbXBvcnRfbW9kdWxlIGZvcmVpZ25fZXhwb3J0X2VudW0gZm9yZWlnbl9leHBvcnQgJ1xuICAgICAgKyAnZm9yZWlnbl9lbnVtIG1heV9jYWxsX21lcmN1cnkgd2lsbF9ub3RfY2FsbF9tZXJjdXJ5IHRocmVhZF9zYWZlICdcbiAgICAgICsgJ25vdF90aHJlYWRfc2FmZSBtYXliZV90aHJlYWRfc2FmZSBwcm9taXNlX3B1cmUgcHJvbWlzZV9zZW1pcHVyZSAnXG4gICAgICArICd0YWJsZWRfZm9yX2lvIGxvY2FsIHVudHJhaWxlZCB0cmFpbGVkIGF0dGFjaF90b19pb19zdGF0ZSAnXG4gICAgICArICdjYW5fcGFzc19hc19tZXJjdXJ5X3R5cGUgc3RhYmxlIHdpbGxfbm90X3Rocm93X2V4Y2VwdGlvbiAnXG4gICAgICArICdtYXlfbW9kaWZ5X3RyYWlsIHdpbGxfbm90X21vZGlmeV90cmFpbCBtYXlfZHVwbGljYXRlICdcbiAgICAgICsgJ21heV9ub3RfZHVwbGljYXRlIGFmZmVjdHNfbGl2ZW5lc3MgZG9lc19ub3RfYWZmZWN0X2xpdmVuZXNzICdcbiAgICAgICsgJ2RvZXNudF9hZmZlY3RfbGl2ZW5lc3Mgbm9fc2hhcmluZyB1bmtub3duX3NoYXJpbmcgc2hhcmluZycsXG4gICAgYnVpbHRfaW46XG4gICAgICAnc29tZSBhbGwgbm90IGlmIHRoZW4gZWxzZSB0cnVlIGZhaWwgZmFsc2UgdHJ5IGNhdGNoIGNhdGNoX2FueSAnXG4gICAgICArICdzZW1pZGV0X3RydWUgc2VtaWRldF9mYWxzZSBzZW1pZGV0X2ZhaWwgaW1wdXJlX3RydWUgaW1wdXJlIHNlbWlwdXJlJ1xuICB9O1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoJyUnLCAnJCcpO1xuXG4gIGNvbnN0IE5VTUNPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogXCIwJy5cXFxcfDBbYm94XVswLTlhLWZBLUZdKlwiXG4gIH07XG5cbiAgY29uc3QgQVRPTSA9IGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgcmVsZXZhbmNlOiAwIH0pO1xuICBjb25zdCBTVFJJTkcgPSBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyByZWxldmFuY2U6IDAgfSk7XG4gIGNvbnN0IFNUUklOR19GTVQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnXFxcXFxcXFxbYWJmbnJ0dl1cXFxcfFxcXFxcXFxceFswLTlhLWZBLUZdKlxcXFxcXFxcXFxcXHwlWy0rIyAqLjAtOV0qW2Rpb3hYdWNzZmVFZ0dwXScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIFNUUklORy5jb250YWlucyA9IFNUUklORy5jb250YWlucy5zbGljZSgpOyAvLyB3ZSBuZWVkIG91ciBvd24gY29weSBvZiBjb250YWluc1xuICBTVFJJTkcuY29udGFpbnMucHVzaChTVFJJTkdfRk1UKTtcblxuICBjb25zdCBJTVBMSUNBVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICc8PT4nIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnPD0nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnPT4nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnL1xcXFxcXFxcJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxcXFxcLycgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBIRUFEX0JPRFlfQ09OSlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnOi1cXFxcfC0tPicgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc9JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01lcmN1cnknLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdtJyxcbiAgICAgICdtb28nXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIElNUExJQ0FUSU9OLFxuICAgICAgSEVBRF9CT0RZX0NPTkpVTkNUSU9OLFxuICAgICAgQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBOVU1DT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIEFUT00sXG4gICAgICBTVFJJTkcsXG4gICAgICB7IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAvOi0vIH0sXG4gICAgICB7IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAvXFwuJC8gfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZXJjdXJ5O1xuIiwgIi8qXG5MYW5ndWFnZTogTUlQUyBBc3NlbWJseVxuQXV0aG9yOiBOZWJ1bGVvbiBGdW1pa2EgPG5lYnVsZW9uLmZ1bWlrYUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogTUlQUyBBc3NlbWJseSAodXAgdG8gTUlQUzMyUjIpXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVBTX2FyY2hpdGVjdHVyZVxuQ2F0ZWdvcnk6IGFzc2VtYmxlclxuKi9cblxuZnVuY3Rpb24gbWlwc2FzbShobGpzKSB7XG4gIC8vIGxvY2FsIGxhYmVsczogJT9bRkJdP1tBVF0/XFxkezEsMn1cXHcrXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01JUFMgQXNzZW1ibHknLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAnbWlwcycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICdcXFxcLj8nICsgaGxqcy5JREVOVF9SRSxcbiAgICAgIG1ldGE6XG4gICAgICAgIC8vIEdOVSBwcmVwcm9jc1xuICAgICAgICAnLjJieXRlIC40Ynl0ZSAuYWxpZ24gLmFzY2lpIC5hc2NpeiAuYmFsaWduIC5ieXRlIC5jb2RlIC5kYXRhIC5lbHNlIC5lbmQgLmVuZGlmIC5lbmRtIC5lbmRyIC5lcXUgLmVyciAuZXhpdG0gLmV4dGVybiAuZ2xvYmFsIC5od29yZCAuaWYgLmlmZGVmIC5pZm5kZWYgLmluY2x1ZGUgLmlycCAubG9uZyAubWFjcm8gLnJlcHQgLnJlcSAuc2VjdGlvbiAuc2V0IC5za2lwIC5zcGFjZSAudGV4dCAud29yZCAubHRvcmcgJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnJDAgJDEgJDIgJDMgJDQgJDUgJDYgJDcgJDggJDkgJDEwICQxMSAkMTIgJDEzICQxNCAkMTUgJyAvLyBpbnRlZ2VyIHJlZ2lzdGVyc1xuICAgICAgICArICckMTYgJDE3ICQxOCAkMTkgJDIwICQyMSAkMjIgJDIzICQyNCAkMjUgJDI2ICQyNyAkMjggJDI5ICQzMCAkMzEgJyAvLyBpbnRlZ2VyIHJlZ2lzdGVyc1xuICAgICAgICArICd6ZXJvIGF0IHYwIHYxIGEwIGExIGEyIGEzIGE0IGE1IGE2IGE3ICcgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICsgJ3QwIHQxIHQyIHQzIHQ0IHQ1IHQ2IHQ3IHQ4IHQ5IHMwIHMxIHMyIHMzIHM0IHM1IHM2IHM3IHM4ICcgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICsgJ2swIGsxIGdwIHNwIGZwIHJhICcgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICsgJyRmMCAkZjEgJGYyICRmMiAkZjQgJGY1ICRmNiAkZjcgJGY4ICRmOSAkZjEwICRmMTEgJGYxMiAkZjEzICRmMTQgJGYxNSAnIC8vIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyc1xuICAgICAgICArICckZjE2ICRmMTcgJGYxOCAkZjE5ICRmMjAgJGYyMSAkZjIyICRmMjMgJGYyNCAkZjI1ICRmMjYgJGYyNyAkZjI4ICRmMjkgJGYzMCAkZjMxICcgLy8gZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzXG4gICAgICAgICsgJ0NvbnRleHQgUmFuZG9tIEVudHJ5TG8wIEVudHJ5TG8xIENvbnRleHQgUGFnZU1hc2sgV2lyZWQgRW50cnlIaSAnIC8vIENvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzXG4gICAgICAgICsgJ0hXUkVuYSBCYWRWQWRkciBDb3VudCBDb21wYXJlIFNSIEludEN0bCBTUlNDdGwgU1JTTWFwIENhdXNlIEVQQyBQUklkICcgLy8gQ29wcm9jZXNzb3IgMCByZWdpc3RlcnNcbiAgICAgICAgKyAnRUJhc2UgQ29uZmlnIENvbmZpZzEgQ29uZmlnMiBDb25maWczIExMQWRkciBEZWJ1ZyBERVBDIERFU0FWRSBDYWNoZUVyciAnIC8vIENvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzXG4gICAgICAgICsgJ0VDQyBFcnJvckVQQyBUYWdMbyBEYXRhTG8gVGFnSGkgRGF0YUhpIFdhdGNoTG8gV2F0Y2hIaSBQZXJmQ3RsIFBlcmZDbnQgJyAvLyBDb3Byb2Nlc3NvciAwIHJlZ2lzdGVyc1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyAvLyBtbmVtb25pY3NcbiAgICAgICAgICAgIC8vIDMyLWJpdCBpbnRlZ2VyIGluc3RydWN0aW9uc1xuICAgICAgICAgICAgKyAnYWRkaT91P3xhbmRpP3xiKGFsKT98YmVxbD98YmdleihhbCk/bD98Ymd0emw/fGJsZXpsP3xibHR6KGFsKT9sP3wnXG4gICAgICAgICAgICArICdibmVsP3xjbFtvel18ZGl2dT98ZXh0fGluc3xqKGFsKT98amFscihcXFxcLmhiKT98anIoXFxcXC5oYik/fGxidT98bGh1P3wnXG4gICAgICAgICAgICArICdsbHxsdWl8bHdbbHJdP3xtYWRkdT98bWZoaXxtZmxvfG1vdm58bW92enxtb3ZlfG1zdWJ1P3xtdGhpfG10bG98bXVsfCdcbiAgICAgICAgICAgICsgJ211bHR1P3xub3B8bm9yfG9yaT98cm90cnY/fHNifHNjfHNlW2JoXXxzaHxzbGx2P3xzbHRpP3U/fHNyYXY/fCdcbiAgICAgICAgICAgICsgJ3NybHY/fHN1YnU/fHN3W2xyXT98eG9yaT98d3NiaHwnXG4gICAgICAgICAgICAvLyBmbG9hdGluZy1wb2ludCBpbnN0cnVjdGlvbnNcbiAgICAgICAgICAgICsgJ2Fic1xcXFwuW3NkXXxhZGRcXFxcLltzZF18YWxudi5wc3xiYzFbZnRdbD98J1xuICAgICAgICAgICAgKyAnY1xcXFwuKHM/Znx1bnx1P2VxfFtvdV1sdHxbb3VdbGV8bmdsZT98c2VxfGxbZXRdfG5nW2V0XSlcXFxcLltzZF18J1xuICAgICAgICAgICAgKyAnKGNlaWx8Zmxvb3J8cm91bmR8dHJ1bmMpXFxcXC5bbHddXFxcXC5bc2RdfGNmYzF8Y3Z0XFxcXC5kXFxcXC5bbHN3XXwnXG4gICAgICAgICAgICArICdjdnRcXFxcLmxcXFxcLltkc3ddfGN2dFxcXFwucHNcXFxcLnN8Y3Z0XFxcXC5zXFxcXC5bZGx3XXxjdnRcXFxcLnNcXFxcLnBbbHVdfGN2dFxcXFwud1xcXFwuW2Rsc118J1xuICAgICAgICAgICAgKyAnZGl2XFxcXC5bZHNdfGxkeD9jMXxsdXhjMXxsd3g/YzF8bWFkZFxcXFwuW3NkXXxtZmMxfG1vdltmbnR6XT9cXFxcLltkc118J1xuICAgICAgICAgICAgKyAnbXN1YlxcXFwuW3NkXXxtdGg/YzF8bXVsXFxcXC5bZHNdfG5lZ1xcXFwuW2RzXXxubWFkZFxcXFwuW2RzXXxubXN1YlxcXFwuW2RzXXwnXG4gICAgICAgICAgICArICdwW2x1XVtsdV1cXFxcLnBzfHJlY2lwXFxcXC5mbXR8cj9zcXJ0XFxcXC5bZHNdfHNkeD9jMXxzdWJcXFxcLltkc118c3V4YzF8J1xuICAgICAgICAgICAgKyAnc3d4P2MxfCdcbiAgICAgICAgICAgIC8vIHN5c3RlbSBjb250cm9sIGluc3RydWN0aW9uc1xuICAgICAgICAgICAgKyAnYnJlYWt8Y2FjaGV8ZD9lcmV0fFtkZV1pfGVoYnxtZmMwfG10YzB8cGF1c2V8cHJlZng/fHJkaHdyfCdcbiAgICAgICAgICAgICsgJ3JkcGdwcnxzZGJicHxzc25vcHxzeW5jaT98c3lzY2FsbHx0ZXFpP3x0Z2VpP3U/fHRsYihwfHJ8d1tpcl0pfCdcbiAgICAgICAgICAgICsgJ3RsdGk/dT98dG5laT98d2FpdHx3cnBncHInXG4gICAgICAgICsgJyknLFxuICAgICAgICBlbmQ6ICdcXFxccydcbiAgICAgIH0sXG4gICAgICAvLyBsaW5lcyBlbmRpbmcgd2l0aCA7IG9yICMgYXJlbid0IHJlYWxseSBjb21tZW50cywgcHJvYmFibHkgYXV0by1kZXRlY3QgZmFpbFxuICAgICAgaGxqcy5DT01NRU5UKCdbOyNdKD8hXFxcXHMqJCknLCAnJCcpLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1cXCcnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcfCcsXG4gICAgICAgIGVuZDogJ1xcXFx8JyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgLy8gaGV4XG4gICAgICAgICAgICBiZWdpbjogJzB4WzAtOWEtZl0rJyB9LFxuICAgICAgICAgIHsgLy8gYmFyZSBudW1iZXJcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGItP1xcXFxkKycgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyAvLyBHTlUgTUlQUyBzeW50YXhcbiAgICAgICAgICAgIGJlZ2luOiAnXlxcXFxzKlthLXpfXFxcXC5cXFxcJF1bYS16MC05X1xcXFwuXFxcXCRdKzonIH0sXG4gICAgICAgICAgeyAvLyBudW1iZXJlZCBsb2NhbCBsYWJlbHNcbiAgICAgICAgICAgIGJlZ2luOiAnXlxcXFxzKlswLTldKzonIH0sXG4gICAgICAgICAgeyAvLyBudW1iZXIgbG9jYWwgbGFiZWwgcmVmZXJlbmNlIChiYWNrd2FyZHMsIGZvcndhcmRzKVxuICAgICAgICAgICAgYmVnaW46ICdbMC05XStbYmZdJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgLy8gZm9yd2FyZCBzbGFzaGVzIGFyZSBub3QgYWxsb3dlZFxuICAgIGlsbGVnYWw6IC9cXC8vXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWlwc2FzbTtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1pemFyXG5EZXNjcmlwdGlvbjogVGhlIE1pemFyIExhbmd1YWdlIGlzIGEgZm9ybWFsIGxhbmd1YWdlIGRlcml2ZWQgZnJvbSB0aGUgbWF0aGVtYXRpY2FsIHZlcm5hY3VsYXIuXG5BdXRob3I6IEtlbGxleSB2YW4gRXZlcnQgPGtlbGxleXZhbmV2ZXJ0QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHA6Ly9taXphci5vcmcvbGFuZ3VhZ2UvXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuZnVuY3Rpb24gbWl6YXIoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdNaXphcicsXG4gICAga2V5d29yZHM6XG4gICAgICAnZW52aXJvbiB2b2NhYnVsYXJpZXMgbm90YXRpb25zIGNvbnN0cnVjdG9ycyBkZWZpbml0aW9ucyAnXG4gICAgICArICdyZWdpc3RyYXRpb25zIHRoZW9yZW1zIHNjaGVtZXMgcmVxdWlyZW1lbnRzIGJlZ2luIGVuZCBkZWZpbml0aW9uICdcbiAgICAgICsgJ3JlZ2lzdHJhdGlvbiBjbHVzdGVyIGV4aXN0ZW5jZSBwcmVkIGZ1bmMgZGVmcHJlZCBkZWZmdW5jIHRoZW9yZW0gJ1xuICAgICAgKyAncHJvb2YgbGV0IHRha2UgYXNzdW1lIHRoZW4gdGh1cyBoZW5jZSBleCBmb3Igc3QgaG9sZHMgY29uc2lkZXIgJ1xuICAgICAgKyAncmVjb25zaWRlciBzdWNoIHRoYXQgYW5kIGluIHByb3ZpZGVkIG9mIGFzIGZyb20gYmUgYmVpbmcgYnkgbWVhbnMgJ1xuICAgICAgKyAnZXF1YWxzIGltcGxpZXMgaWZmIHJlZGVmaW5lIGRlZmluZSBub3cgbm90IG9yIGF0dHIgaXMgbW9kZSAnXG4gICAgICArICdzdXBwb3NlIHBlciBjYXNlcyBzZXQgdGhlc2lzIGNvbnRyYWRpY3Rpb24gc2NoZW1lIHJlc2VydmUgc3RydWN0ICdcbiAgICAgICsgJ2NvcnJlY3RuZXNzIGNvbXBhdGliaWxpdHkgY29oZXJlbmNlIHN5bW1ldHJ5IGFzc3ltZXRyeSAnXG4gICAgICArICdyZWZsZXhpdml0eSBpcnJlZmxleGl2aXR5IGNvbm5lY3RlZG5lc3MgdW5pcXVlbmVzcyBjb21tdXRhdGl2aXR5ICdcbiAgICAgICsgJ2lkZW1wb3RlbmNlIGludm9sdXRpdmVuZXNzIHByb2plY3Rpdml0eScsXG4gICAgY29udGFpbnM6IFsgaGxqcy5DT01NRU5UKCc6OicsICckJykgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1pemFyO1xuIiwgIi8qXG5MYW5ndWFnZTogUGVybFxuQXV0aG9yOiBQZXRlciBMZW9ub3YgPGdvanBlZ0B5YW5kZXgucnU+XG5XZWJzaXRlOiBodHRwczovL3d3dy5wZXJsLm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vblxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHBlcmwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgICdhYnMnLFxuICAgICdhY2NlcHQnLFxuICAgICdhbGFybScsXG4gICAgJ2FuZCcsXG4gICAgJ2F0YW4yJyxcbiAgICAnYmluZCcsXG4gICAgJ2Jpbm1vZGUnLFxuICAgICdibGVzcycsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FsbGVyJyxcbiAgICAnY2hkaXInLFxuICAgICdjaG1vZCcsXG4gICAgJ2Nob21wJyxcbiAgICAnY2hvcCcsXG4gICAgJ2Nob3duJyxcbiAgICAnY2hyJyxcbiAgICAnY2hyb290JyxcbiAgICAnY2xhc3MnLFxuICAgICdjbG9zZScsXG4gICAgJ2Nsb3NlZGlyJyxcbiAgICAnY29ubmVjdCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnY29zJyxcbiAgICAnY3J5cHQnLFxuICAgICdkYm1jbG9zZScsXG4gICAgJ2RibW9wZW4nLFxuICAgICdkZWZpbmVkJyxcbiAgICAnZGVsZXRlJyxcbiAgICAnZGllJyxcbiAgICAnZG8nLFxuICAgICdkdW1wJyxcbiAgICAnZWFjaCcsXG4gICAgJ2Vsc2UnLFxuICAgICdlbHNpZicsXG4gICAgJ2VuZGdyZW50JyxcbiAgICAnZW5kaG9zdGVudCcsXG4gICAgJ2VuZG5ldGVudCcsXG4gICAgJ2VuZHByb3RvZW50JyxcbiAgICAnZW5kcHdlbnQnLFxuICAgICdlbmRzZXJ2ZW50JyxcbiAgICAnZW9mJyxcbiAgICAnZXZhbCcsXG4gICAgJ2V4ZWMnLFxuICAgICdleGlzdHMnLFxuICAgICdleGl0JyxcbiAgICAnZXhwJyxcbiAgICAnZmNudGwnLFxuICAgICdmaWVsZCcsXG4gICAgJ2ZpbGVubycsXG4gICAgJ2Zsb2NrJyxcbiAgICAnZm9yJyxcbiAgICAnZm9yZWFjaCcsXG4gICAgJ2ZvcmsnLFxuICAgICdmb3JtYXQnLFxuICAgICdmb3JtbGluZScsXG4gICAgJ2dldGMnLFxuICAgICdnZXRncmVudCcsXG4gICAgJ2dldGdyZ2lkJyxcbiAgICAnZ2V0Z3JuYW0nLFxuICAgICdnZXRob3N0YnlhZGRyJyxcbiAgICAnZ2V0aG9zdGJ5bmFtZScsXG4gICAgJ2dldGhvc3RlbnQnLFxuICAgICdnZXRsb2dpbicsXG4gICAgJ2dldG5ldGJ5YWRkcicsXG4gICAgJ2dldG5ldGJ5bmFtZScsXG4gICAgJ2dldG5ldGVudCcsXG4gICAgJ2dldHBlZXJuYW1lJyxcbiAgICAnZ2V0cGdycCcsXG4gICAgJ2dldHByaW9yaXR5JyxcbiAgICAnZ2V0cHJvdG9ieW5hbWUnLFxuICAgICdnZXRwcm90b2J5bnVtYmVyJyxcbiAgICAnZ2V0cHJvdG9lbnQnLFxuICAgICdnZXRwd2VudCcsXG4gICAgJ2dldHB3bmFtJyxcbiAgICAnZ2V0cHd1aWQnLFxuICAgICdnZXRzZXJ2YnluYW1lJyxcbiAgICAnZ2V0c2VydmJ5cG9ydCcsXG4gICAgJ2dldHNlcnZlbnQnLFxuICAgICdnZXRzb2NrbmFtZScsXG4gICAgJ2dldHNvY2tvcHQnLFxuICAgICdnaXZlbicsXG4gICAgJ2dsb2InLFxuICAgICdnbXRpbWUnLFxuICAgICdnb3RvJyxcbiAgICAnZ3JlcCcsXG4gICAgJ2d0JyxcbiAgICAnaGV4JyxcbiAgICAnaWYnLFxuICAgICdpbmRleCcsXG4gICAgJ2ludCcsXG4gICAgJ2lvY3RsJyxcbiAgICAnam9pbicsXG4gICAgJ2tleXMnLFxuICAgICdraWxsJyxcbiAgICAnbGFzdCcsXG4gICAgJ2xjJyxcbiAgICAnbGNmaXJzdCcsXG4gICAgJ2xlbmd0aCcsXG4gICAgJ2xpbmsnLFxuICAgICdsaXN0ZW4nLFxuICAgICdsb2NhbCcsXG4gICAgJ2xvY2FsdGltZScsXG4gICAgJ2xvZycsXG4gICAgJ2xzdGF0JyxcbiAgICAnbHQnLFxuICAgICdtYScsXG4gICAgJ21hcCcsXG4gICAgJ21ldGhvZCcsXG4gICAgJ21rZGlyJyxcbiAgICAnbXNnY3RsJyxcbiAgICAnbXNnZ2V0JyxcbiAgICAnbXNncmN2JyxcbiAgICAnbXNnc25kJyxcbiAgICAnbXknLFxuICAgICduZScsXG4gICAgJ25leHQnLFxuICAgICdubycsXG4gICAgJ25vdCcsXG4gICAgJ29jdCcsXG4gICAgJ29wZW4nLFxuICAgICdvcGVuZGlyJyxcbiAgICAnb3InLFxuICAgICdvcmQnLFxuICAgICdvdXInLFxuICAgICdwYWNrJyxcbiAgICAncGFja2FnZScsXG4gICAgJ3BpcGUnLFxuICAgICdwb3AnLFxuICAgICdwb3MnLFxuICAgICdwcmludCcsXG4gICAgJ3ByaW50ZicsXG4gICAgJ3Byb3RvdHlwZScsXG4gICAgJ3B1c2gnLFxuICAgICdxfDAnLFxuICAgICdxcScsXG4gICAgJ3F1b3RlbWV0YScsXG4gICAgJ3F3JyxcbiAgICAncXgnLFxuICAgICdyYW5kJyxcbiAgICAncmVhZCcsXG4gICAgJ3JlYWRkaXInLFxuICAgICdyZWFkbGluZScsXG4gICAgJ3JlYWRsaW5rJyxcbiAgICAncmVhZHBpcGUnLFxuICAgICdyZWN2JyxcbiAgICAncmVkbycsXG4gICAgJ3JlZicsXG4gICAgJ3JlbmFtZScsXG4gICAgJ3JlcXVpcmUnLFxuICAgICdyZXNldCcsXG4gICAgJ3JldHVybicsXG4gICAgJ3JldmVyc2UnLFxuICAgICdyZXdpbmRkaXInLFxuICAgICdyaW5kZXgnLFxuICAgICdybWRpcicsXG4gICAgJ3NheScsXG4gICAgJ3NjYWxhcicsXG4gICAgJ3NlZWsnLFxuICAgICdzZWVrZGlyJyxcbiAgICAnc2VsZWN0JyxcbiAgICAnc2VtY3RsJyxcbiAgICAnc2VtZ2V0JyxcbiAgICAnc2Vtb3AnLFxuICAgICdzZW5kJyxcbiAgICAnc2V0Z3JlbnQnLFxuICAgICdzZXRob3N0ZW50JyxcbiAgICAnc2V0bmV0ZW50JyxcbiAgICAnc2V0cGdycCcsXG4gICAgJ3NldHByaW9yaXR5JyxcbiAgICAnc2V0cHJvdG9lbnQnLFxuICAgICdzZXRwd2VudCcsXG4gICAgJ3NldHNlcnZlbnQnLFxuICAgICdzZXRzb2Nrb3B0JyxcbiAgICAnc2hpZnQnLFxuICAgICdzaG1jdGwnLFxuICAgICdzaG1nZXQnLFxuICAgICdzaG1yZWFkJyxcbiAgICAnc2htd3JpdGUnLFxuICAgICdzaHV0ZG93bicsXG4gICAgJ3NpbicsXG4gICAgJ3NsZWVwJyxcbiAgICAnc29ja2V0JyxcbiAgICAnc29ja2V0cGFpcicsXG4gICAgJ3NvcnQnLFxuICAgICdzcGxpY2UnLFxuICAgICdzcGxpdCcsXG4gICAgJ3NwcmludGYnLFxuICAgICdzcXJ0JyxcbiAgICAnc3JhbmQnLFxuICAgICdzdGF0JyxcbiAgICAnc3RhdGUnLFxuICAgICdzdHVkeScsXG4gICAgJ3N1YicsXG4gICAgJ3N1YnN0cicsXG4gICAgJ3N5bWxpbmsnLFxuICAgICdzeXNjYWxsJyxcbiAgICAnc3lzb3BlbicsXG4gICAgJ3N5c3JlYWQnLFxuICAgICdzeXNzZWVrJyxcbiAgICAnc3lzdGVtJyxcbiAgICAnc3lzd3JpdGUnLFxuICAgICd0ZWxsJyxcbiAgICAndGVsbGRpcicsXG4gICAgJ3RpZScsXG4gICAgJ3RpZWQnLFxuICAgICd0aW1lJyxcbiAgICAndGltZXMnLFxuICAgICd0cicsXG4gICAgJ3RydW5jYXRlJyxcbiAgICAndWMnLFxuICAgICd1Y2ZpcnN0JyxcbiAgICAndW1hc2snLFxuICAgICd1bmRlZicsXG4gICAgJ3VubGVzcycsXG4gICAgJ3VubGluaycsXG4gICAgJ3VucGFjaycsXG4gICAgJ3Vuc2hpZnQnLFxuICAgICd1bnRpZScsXG4gICAgJ3VudGlsJyxcbiAgICAndXNlJyxcbiAgICAndXRpbWUnLFxuICAgICd2YWx1ZXMnLFxuICAgICd2ZWMnLFxuICAgICd3YWl0JyxcbiAgICAnd2FpdHBpZCcsXG4gICAgJ3dhbnRhcnJheScsXG4gICAgJ3dhcm4nLFxuICAgICd3aGVuJyxcbiAgICAnd2hpbGUnLFxuICAgICd3cml0ZScsXG4gICAgJ3h8MCcsXG4gICAgJ3hvcicsXG4gICAgJ3l8MCdcbiAgXTtcblxuICAvLyBodHRwczovL3Blcmxkb2MucGVybC5vcmcvcGVybHJlI01vZGlmaWVyc1xuICBjb25zdCBSRUdFWF9NT0RJRklFUlMgPSAvW2R1YWx4bXNpcG5ncl17MCwxMn0vOyAvLyBhYSBhbmQgeHggYXJlIHZhbGlkLCBtYWtpbmcgbWF4IGxlbmd0aCAxMlxuICBjb25zdCBQRVJMX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5dKy8sXG4gICAga2V5d29yZDogS0VZV09SRFMuam9pbihcIiBcIilcbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnWyRAXVxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfScsXG4gICAga2V5d29yZHM6IFBFUkxfS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgTUVUSE9EID0ge1xuICAgIGJlZ2luOiAvLT5cXHsvLFxuICAgIGVuZDogL1xcfS9cbiAgICAvLyBjb250YWlucyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IEFUVFIgPSB7XG4gICAgc2NvcGU6ICdhdHRyJyxcbiAgICBtYXRjaDogL1xccys6XFxzKlxcdysoXFxzKlxcKC4qP1xcKSk/LyxcbiAgfTtcbiAgY29uc3QgVkFSID0ge1xuICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAvXFwkXFxkLyB9LFxuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KFxuICAgICAgICAvWyQlQF0oPyFcIikoXFxeXFx3XFxifCNcXHcrKDo6XFx3KykqfFxce1xcdytcXH18XFx3Kyg6OlxcdyopKikvLFxuICAgICAgICAvLyBuZWdhdGl2ZSBsb29rLWFoZWFkIHRyaWVzIHRvIGF2b2lkIG1hdGNoaW5nIHBhdHRlcm5zIHRoYXQgYXJlIG5vdFxuICAgICAgICAvLyBQZXJsIGF0IGFsbCBsaWtlICRpZGVudCQsIEBpZGVudEAsIGV0Yy5cbiAgICAgICAgYCg/IVtBLVphLXpdKSg/IVtAJCVdKWBcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gT25seSAkPSBpcyBhIHNwZWNpYWwgUGVybCB2YXJpYWJsZSBhbmQgb25lIGNhbid0IGRlY2xhcmUgQD0gb3IgJT0uXG4gICAgICAgIGJlZ2luOiAvWyQlQF0oPyFcIilbXlxcc1xcd3s9XXxcXCQ9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSxcbiAgICBjb250YWluczogWyBBVFRSIF0sXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBkZWNpbWFsIG51bWJlcnM6XG4gICAgICAvLyBpbmNsdWRlIHRoZSBjYXNlIHdoZXJlIGEgbnVtYmVyIHN0YXJ0cyB3aXRoIGEgZG90IChlZy4gLjkpLCBhbmRcbiAgICAgIC8vIHRoZSBsZWFkaW5nIDA/IGF2b2lkcyBtaXhpbmcgdGhlIGZpcnN0IGFuZCBzZWNvbmQgbWF0Y2ggb24gMC54IGNhc2VzXG4gICAgICB7IG1hdGNoOiAvMD9cXC5bMC05XVswLTlfXStcXGIvIH0sXG4gICAgICAvLyBpbmNsdWRlIHRoZSBzcGVjaWFsIHZlcnNpb25lZCBudW1iZXIgKGVnLiB2NS4zOClcbiAgICAgIHsgbWF0Y2g6IC9cXGJ2PygwfFsxLTldWzAtOV9dKihcXC5bMC05X10rKT98WzEtOV1bMC05X10qKVxcYi8gfSxcbiAgICAgIC8vIG5vbi1kZWNpbWFsIG51bWJlcnM6XG4gICAgICB7IG1hdGNoOiAvXFxiMFswLTddWzAtN19dKlxcYi8gfSxcbiAgICAgIHsgbWF0Y2g6IC9cXGIweFswLTlhLWZBLUZdWzAtOWEtZkEtRl9dKlxcYi8gfSxcbiAgICAgIHsgbWF0Y2g6IC9cXGIwYlswLTFdWzAtMV9dKlxcYi8gfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBTVFJJTkdfQ09OVEFJTlMgPSBbXG4gICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgIFNVQlNULFxuICAgIFZBUlxuICBdO1xuICBjb25zdCBSRUdFWF9ERUxJTVMgPSBbXG4gICAgLyEvLFxuICAgIC9cXC8vLFxuICAgIC9cXHwvLFxuICAgIC9cXD8vLFxuICAgIC8nLyxcbiAgICAvXCIvLCAvLyB2YWxpZCBidXQgaW5mcmVxdWVudCBhbmQgd2VpcmRcbiAgICAvIy8gLy8gdmFsaWQgYnV0IGluZnJlcXVlbnQgYW5kIHdlaXJkXG4gIF07XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IG9wZW5cbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBjbG9zZVxuICAgKi9cbiAgY29uc3QgUEFJUkVEX0RPVUJMRV9SRSA9IChwcmVmaXgsIG9wZW4sIGNsb3NlID0gJ1xcXFwxJykgPT4ge1xuICAgIGNvbnN0IG1pZGRsZSA9IChjbG9zZSA9PT0gJ1xcXFwxJylcbiAgICAgID8gY2xvc2VcbiAgICAgIDogcmVnZXguY29uY2F0KGNsb3NlLCBvcGVuKTtcbiAgICByZXR1cm4gcmVnZXguY29uY2F0KFxuICAgICAgcmVnZXguY29uY2F0KFwiKD86XCIsIHByZWZpeCwgXCIpXCIpLFxuICAgICAgb3BlbixcbiAgICAgIC8oPzpcXFxcLnxbXlxcXFxcXC9dKSo/LyxcbiAgICAgIG1pZGRsZSxcbiAgICAgIC8oPzpcXFxcLnxbXlxcXFxcXC9dKSo/LyxcbiAgICAgIGNsb3NlLFxuICAgICAgUkVHRVhfTU9ESUZJRVJTXG4gICAgKTtcbiAgfTtcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gb3BlblxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IGNsb3NlXG4gICAqL1xuICBjb25zdCBQQUlSRURfUkUgPSAocHJlZml4LCBvcGVuLCBjbG9zZSkgPT4ge1xuICAgIHJldHVybiByZWdleC5jb25jYXQoXG4gICAgICByZWdleC5jb25jYXQoXCIoPzpcIiwgcHJlZml4LCBcIilcIiksXG4gICAgICBvcGVuLFxuICAgICAgLyg/OlxcXFwufFteXFxcXFxcL10pKj8vLFxuICAgICAgY2xvc2UsXG4gICAgICBSRUdFWF9NT0RJRklFUlNcbiAgICApO1xuICB9O1xuICBjb25zdCBQRVJMX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgVkFSLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DT01NRU5UKFxuICAgICAgL149XFx3LyxcbiAgICAgIC89Y3V0LyxcbiAgICAgIHsgZW5kc1dpdGhQYXJlbnQ6IHRydWUgfVxuICAgICksXG4gICAgTUVUSE9ELFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBjb250YWluczogU1RSSU5HX0NPTlRBSU5TLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncVtxd3hyXT9cXFxccypcXFxcKCcsXG4gICAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxW3F3eHJdP1xcXFxzKlxcXFxbJyxcbiAgICAgICAgICBlbmQ6ICdcXFxcXScsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXHsnLFxuICAgICAgICAgIGVuZDogJ1xcXFx9JyxcbiAgICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncVtxd3hyXT9cXFxccypcXFxcfCcsXG4gICAgICAgICAgZW5kOiAnXFxcXHwnLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxW3F3eHJdP1xcXFxzKjwnLFxuICAgICAgICAgIGVuZDogJz4nLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxd1xcXFxzK3EnLFxuICAgICAgICAgIGVuZDogJ3EnLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICAgIGVuZDogJ1wiJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgICBlbmQ6ICdgJyxcbiAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cXHtcXHcrXFx9LyxcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLT9cXFxcdytcXFxccyo9PicsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIE5VTUJFUixcbiAgICB7IC8vIHJlZ2V4cCBjb250YWluZXJcbiAgICAgIGJlZ2luOiAnKFxcXFwvXFxcXC98JyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKHNwbGl0fHJldHVybnxwcmludHxyZXZlcnNlfGdyZXApXFxcXGIpXFxcXHMqJyxcbiAgICAgIGtleXdvcmRzOiAnc3BsaXQgcmV0dXJuIHByaW50IHJldmVyc2UgZ3JlcCcsXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgLy8gYWxsb3cgbWF0Y2hpbmcgY29tbW9uIGRlbGltaXRlcnNcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9ET1VCTEVfUkUoXCJzfHRyfHlcIiwgcmVnZXguZWl0aGVyKC4uLlJFR0VYX0RFTElNUywgeyBjYXB0dXJlOiB0cnVlIH0pKSB9LFxuICAgICAgICAgICAgLy8gYW5kIHRoZW4gcGFpcmVkIGRlbG1pc1xuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX0RPVUJMRV9SRShcInN8dHJ8eVwiLCBcIlxcXFwoXCIsIFwiXFxcXClcIikgfSxcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9ET1VCTEVfUkUoXCJzfHRyfHlcIiwgXCJcXFxcW1wiLCBcIlxcXFxdXCIpIH0sXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfRE9VQkxFX1JFKFwic3x0cnx5XCIsIFwiXFxcXHtcIiwgXCJcXFxcfVwiKSB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWxldmFuY2U6IDJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gY291bGQgYmUgYSBjb21tZW50IGluIG1hbnkgbGFuZ3VhZ2VzIHNvIGRvIG5vdCBjb3VudFxuICAgICAgICAgICAgICAvLyBhcyByZWxldmFudFxuICAgICAgICAgICAgICBiZWdpbjogLyhtfHFyKVxcL1xcLy8sXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIHByZWZpeCBpcyBvcHRpb25hbCB3aXRoIC9yZWdleC9cbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9SRShcIig/Om18cXIpP1wiLCAvXFwvLywgL1xcLy8pIH0sXG4gICAgICAgICAgICAvLyBhbGxvdyBtYXRjaGluZyBjb21tb24gZGVsaW1pdGVyc1xuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX1JFKFwibXxxclwiLCByZWdleC5laXRoZXIoLi4uUkVHRVhfREVMSU1TLCB7IGNhcHR1cmU6IHRydWUgfSksIC9cXDEvKSB9LFxuICAgICAgICAgICAgLy8gYWxsb3cgY29tbW9uIHBhaXJlZCBkZWxtaW5zXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfUkUoXCJtfHFyXCIsIC9cXCgvLCAvXFwpLykgfSxcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9SRShcIm18cXJcIiwgL1xcWy8sIC9cXF0vKSB9LFxuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX1JFKFwibXxxclwiLCAvXFx7LywgL1xcfS8pIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdzdWIgbWV0aG9kJyxcbiAgICAgIGVuZDogJyhcXFxccypcXFxcKC4qP1xcXFwpKT9bO3tdJyxcbiAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICByZWxldmFuY2U6IDUsXG4gICAgICBjb250YWluczogWyBobGpzLlRJVExFX01PREUsIEFUVFIgXVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJyxcbiAgICAgIGVuZDogJ1s7e10nLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogNSxcbiAgICAgIGNvbnRhaW5zOiBbIGhsanMuVElUTEVfTU9ERSwgQVRUUiwgTlVNQkVSIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAnLVxcXFx3XFxcXGInLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogXCJeX19EQVRBX18kXCIsXG4gICAgICBlbmQ6IFwiXl9fRU5EX18kXCIsXG4gICAgICBzdWJMYW5ndWFnZTogJ21vam9saWNpb3VzJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogXCJeQEAuKlwiLFxuICAgICAgICAgIGVuZDogXCIkXCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFBFUkxfREVGQVVMVF9DT05UQUlOUztcbiAgTUVUSE9ELmNvbnRhaW5zID0gUEVSTF9ERUZBVUxUX0NPTlRBSU5TO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BlcmwnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdwbCcsXG4gICAgICAncG0nXG4gICAgXSxcbiAgICBrZXl3b3JkczogUEVSTF9LRVlXT1JEUyxcbiAgICBjb250YWluczogUEVSTF9ERUZBVUxUX0NPTlRBSU5TXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGVybDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1vam9saWNpb3VzXG5SZXF1aXJlczogeG1sLmpzLCBwZXJsLmpzXG5BdXRob3I6IERvdGFuIERpbWV0IDxkb3RhbkBjb3JreS5uZXQ+XG5EZXNjcmlwdGlvbjogTW9qb2xpY2lvdXMgLmVwIChFbWJlZGRlZCBQZXJsKSB0ZW1wbGF0ZXNcbldlYnNpdGU6IGh0dHBzOi8vbW9qb2xpY2lvdXMub3JnXG5DYXRlZ29yeTogdGVtcGxhdGVcbiovXG5mdW5jdGlvbiBtb2pvbGljaW91cyhobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01vam9saWNpb3VzJyxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXl9fKEVORHxEQVRBKV9fJCdcbiAgICAgIH0sXG4gICAgICAvLyBtb2pvbGljaW91cyBsaW5lXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIl5cXFxccyolezEsMn09ezAsMn1cIixcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAncGVybCdcbiAgICAgIH0sXG4gICAgICAvLyBtb2pvbGljaW91cyBibG9ja1xuICAgICAge1xuICAgICAgICBiZWdpbjogXCI8JXsxLDJ9PXswLDJ9XCIsXG4gICAgICAgIGVuZDogXCI9ezAsMX0lPlwiLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BlcmwnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbW9qb2xpY2lvdXM7XG4iLCAiLypcbkxhbmd1YWdlOiBNb25rZXlcbkRlc2NyaXB0aW9uOiBNb25rZXkyIGlzIGFuIGVhc3kgdG8gdXNlLCBjcm9zcyBwbGF0Zm9ybSwgZ2FtZXMgb3JpZW50ZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZnJvbSBCbGl0eiBSZXNlYXJjaC5cbkF1dGhvcjogQXJ0aHVyIEJpa211bGxpbiA8ZGV2b2xvbnRlckBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2JsaXR6cmVzZWFyY2guaXRjaC5pby9tb25rZXkyXG5DYXRlZ29yeTogZ2FtaW5nXG4qL1xuXG5mdW5jdGlvbiBtb25rZXkoaGxqcykge1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdbJF1bYS1mQS1GMC05XSsnIH0sXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgbWF0Y2g6IFtcbiAgICAgICAgLyhmdW5jdGlvbnxtZXRob2QpLyxcbiAgICAgICAgL1xccysvLFxuICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICBdIH0sXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IENMQVNTX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgbWF0Y2g6IFtcbiAgICAgICAgLyhjbGFzc3xpbnRlcmZhY2V8ZXh0ZW5kc3xpbXBsZW1lbnRzKS8sXG4gICAgICAgIC9cXHMrLyxcbiAgICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgXSB9LFxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfVxuICB9O1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJEZWJ1Z0xvZ1wiLFxuICAgIFwiRGVidWdTdG9wXCIsXG4gICAgXCJFcnJvclwiLFxuICAgIFwiUHJpbnRcIixcbiAgICBcIkFDb3NcIixcbiAgICBcIkFDb3NyXCIsXG4gICAgXCJBU2luXCIsXG4gICAgXCJBU2luclwiLFxuICAgIFwiQVRhblwiLFxuICAgIFwiQVRhbjJcIixcbiAgICBcIkFUYW4yclwiLFxuICAgIFwiQVRhbnJcIixcbiAgICBcIkFic1wiLFxuICAgIFwiQWJzXCIsXG4gICAgXCJDZWlsXCIsXG4gICAgXCJDbGFtcFwiLFxuICAgIFwiQ2xhbXBcIixcbiAgICBcIkNvc1wiLFxuICAgIFwiQ29zclwiLFxuICAgIFwiRXhwXCIsXG4gICAgXCJGbG9vclwiLFxuICAgIFwiTG9nXCIsXG4gICAgXCJNYXhcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWluXCIsXG4gICAgXCJNaW5cIixcbiAgICBcIlBvd1wiLFxuICAgIFwiU2duXCIsXG4gICAgXCJTZ25cIixcbiAgICBcIlNpblwiLFxuICAgIFwiU2luclwiLFxuICAgIFwiU3FydFwiLFxuICAgIFwiVGFuXCIsXG4gICAgXCJUYW5yXCIsXG4gICAgXCJTZWVkXCIsXG4gICAgXCJQSVwiLFxuICAgIFwiSEFMRlBJXCIsXG4gICAgXCJUV09QSVwiXG4gIF07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcInB1YmxpY1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvcGVydHlcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJleHRlcm5cIixcbiAgICBcIm5ld1wiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZWFjaGluXCIsXG4gICAgXCJub3RcIixcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZmllbGRcIixcbiAgICBcImVuZFwiLFxuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVsc2VpZlwiLFxuICAgIFwiZW5kaWZcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJ3ZW5kXCIsXG4gICAgXCJyZXBlYXRcIixcbiAgICBcInVudGlsXCIsXG4gICAgXCJmb3JldmVyXCIsXG4gICAgXCJmb3JcIixcbiAgICBcInRvXCIsXG4gICAgXCJzdGVwXCIsXG4gICAgXCJuZXh0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJ0aHJvd1wiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgLy8gbm90IHBvc2l0aXZlLCBidXQgdGhlc2UgYXJlIG5vdCBsaXRlcmFsc1xuICAgIFwiYW5kXCIsXG4gICAgXCJvclwiLFxuICAgIFwic2hsXCIsXG4gICAgXCJzaHJcIixcbiAgICBcIm1vZFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTW9ua2V5JyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTlMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnI3JlbScsICcjZW5kJyksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIFwiJ1wiLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICBGVU5DX0RFRklOSVRJT04sXG4gICAgICBDTEFTU19ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZS5sYW5ndWFnZScsXG4gICAgICAgIGJlZ2luOiAvXFxiKHNlbGZ8c3VwZXIpXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXFxzKiMvLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxzZWlmIGVuZGlmIGVuZCB0aGVuJyB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9eXFxzKi8sXG4gICAgICAgICAgL3N0cmljdFxcYi9cbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHsgMjogXCJtZXRhXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2FsaWFzJyxcbiAgICAgICAgZW5kOiAnPScsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFIF1cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgTlVNQkVSXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vbmtleTtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1vb25TY3JpcHRcbkF1dGhvcjogQmlsbHkgUXVpdGggPGNoaW5iaWxseWJpbGJvQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBNb29uU2NyaXB0IGlzIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCB0cmFuc2NvbXBpbGVzIHRvIEx1YS5cbk9yaWdpbjogY29mZmVlc2NyaXB0LmpzXG5XZWJzaXRlOiBodHRwOi8vbW9vbnNjcmlwdC5vcmcvXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG5mdW5jdGlvbiBtb29uc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDpcbiAgICAgIC8vIE1vb25zY3JpcHQga2V5d29yZHNcbiAgICAgICdpZiB0aGVuIG5vdCBmb3IgaW4gd2hpbGUgZG8gcmV0dXJuIGVsc2UgZWxzZWlmIGJyZWFrIGNvbnRpbnVlIHN3aXRjaCBhbmQgb3IgJ1xuICAgICAgKyAndW5sZXNzIHdoZW4gY2xhc3MgZXh0ZW5kcyBzdXBlciBsb2NhbCBpbXBvcnQgZXhwb3J0IGZyb20gdXNpbmcnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBuaWwnLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ19HIF9WRVJTSU9OIGFzc2VydCBjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgJ1xuICAgICAgKyAnbG9hZGZpbGUgbG9hZHN0cmluZyBtb2R1bGUgbmV4dCBwYWlycyBwY2FsbCBwcmludCByYXdlcXVhbCByYXdnZXQgcmF3c2V0IHJlcXVpcmUgJ1xuICAgICAgKyAnc2VsZWN0IHNldGZlbnYgc2V0bWV0YXRhYmxlIHRvbnVtYmVyIHRvc3RyaW5nIHR5cGUgdW5wYWNrIHhwY2FsbCBjb3JvdXRpbmUgZGVidWcgJ1xuICAgICAgKyAnaW8gbWF0aCBvcyBwYWNrYWdlIHN0cmluZyB0YWJsZSdcbiAgfTtcbiAgY29uc3QgSlNfSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvI1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgRVhQUkVTU0lPTlMgPSBbXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHsgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyhcXFxccyovKT8nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0gfSksIC8vIGEgbnVtYmVyIHRyaWVzIHRvIGVhdCB0aGUgZm9sbG93aW5nIHNsYXNoIHRvIHByZXZlbnQgdHJlYXRpbmcgaXQgYXMgYSByZWdleHBcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgICAgZW5kOiAvJy8sXG4gICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgICAgU1VCU1RcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgIGJlZ2luOiAnQF9fJyArIGhsanMuSURFTlRfUkVcbiAgICB9LFxuICAgIHsgYmVnaW46ICdAJyArIGhsanMuSURFTlRfUkUgLy8gcmVsZXZhbmNlIGJvb3N0ZXIgb24gcGFyIHdpdGggQ29mZmVlU2NyaXB0XG4gICAgfSxcbiAgICB7IGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcXFxcXFxcJyArIGhsanMuSURFTlRfUkUgLy8gaW5zdFxcbWV0aG9kXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IEVYUFJFU1NJT05TO1xuXG4gIGNvbnN0IFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogSlNfSURFTlRfUkUgfSk7XG4gIGNvbnN0IFBPU1NJQkxFX1BBUkFNU19SRSA9ICcoXFxcXCguKlxcXFwpXFxcXHMqKT9cXFxcQlstPV0+JztcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKFteXFxcXChdJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAvKiBXZSBuZWVkIGFub3RoZXIgY29udGFpbmVkIG5hbWVsZXNzIG1vZGUgdG8gbm90IGhhdmUgZXZlcnkgbmVzdGVkXG4gICAgcGFpciBvZiBwYXJlbnMgdG8gYmUgY2FsbGVkIFwicGFyYW1zXCIgKi9cbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdNb29uU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbICdtb29uJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTlMuY29uY2F0KFtcbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsIC8vIGZ1bmN0aW9uOiAtPiA9PlxuICAgICAgICBiZWdpbjogJ15cXFxccyonICsgSlNfSURFTlRfUkUgKyAnXFxcXHMqPVxcXFxzKicgKyBQT1NTSUJMRV9QQVJBTVNfUkUsXG4gICAgICAgIGVuZDogJ1stPV0+JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEUsXG4gICAgICAgICAgUEFSQU1TXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvW1xcKCw6PV1cXHMqLywgLy8gYW5vbnltb3VzIGZ1bmN0aW9uIHN0YXJ0XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICBiZWdpbjogUE9TU0lCTEVfUEFSQU1TX1JFLFxuICAgICAgICAgICAgZW5kOiAnWy09XT4nLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogWyBQQVJBTVMgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgaWxsZWdhbDogL1s6PVwiXFxbXFxdXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ2V4dGVuZHMnLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvWzo9XCJcXFtcXF1dLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbIFRJVExFIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFRJVExFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLCAvLyB0YWJsZVxuICAgICAgICBiZWdpbjogSlNfSURFTlRfUkUgKyAnOicsXG4gICAgICAgIGVuZDogJzonLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vb25zY3JpcHQ7XG4iLCAiLypcbiBMYW5ndWFnZTogTjFRTFxuIEF1dGhvcjogQW5kcmVzIFRcdTAwRTRodCA8YW5kcmVzLnRhaHRAZ21haWwuY29tPlxuIENvbnRyaWJ1dG9yczogUmVuZSBTYWFyc29vIDxuZW5lQHRyaWluLm5ldD5cbiBEZXNjcmlwdGlvbjogQ291Y2hiYXNlIHF1ZXJ5IGxhbmd1YWdlXG4gV2Vic2l0ZTogaHR0cHM6Ly93d3cuY291Y2hiYXNlLmNvbS9wcm9kdWN0cy9uMXFsXG4gQ2F0ZWdvcnk6IGRhdGFiYXNlXG4gKi9cblxuZnVuY3Rpb24gbjFxbChobGpzKSB7XG4gIC8vIFRha2VuIGZyb20gaHR0cDovL2RldmVsb3Blci5jb3VjaGJhc2UuY29tL2RvY3VtZW50YXRpb24vc2VydmVyL2N1cnJlbnQvbjFxbC9uMXFsLWxhbmd1YWdlLXJlZmVyZW5jZS9yZXNlcnZlZHdvcmRzLmh0bWxcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhbGxcIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhbmFseXplXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFueVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc2NcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJiZXR3ZWVuXCIsXG4gICAgXCJiaW5hcnlcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJidWNrZXRcIixcbiAgICBcImJ1aWxkXCIsXG4gICAgXCJieVwiLFxuICAgIFwiY2FsbFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwiY2x1c3RlclwiLFxuICAgIFwiY29sbGF0ZVwiLFxuICAgIFwiY29sbGVjdGlvblwiLFxuICAgIFwiY29tbWl0XCIsXG4gICAgXCJjb25uZWN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiY29ycmVsYXRlXCIsXG4gICAgXCJjb3ZlclwiLFxuICAgIFwiY3JlYXRlXCIsXG4gICAgXCJkYXRhYmFzZVwiLFxuICAgIFwiZGF0YXNldFwiLFxuICAgIFwiZGF0YXN0b3JlXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJkZWNyZW1lbnRcIixcbiAgICBcImRlbGV0ZVwiLFxuICAgIFwiZGVyaXZlZFwiLFxuICAgIFwiZGVzY1wiLFxuICAgIFwiZGVzY3JpYmVcIixcbiAgICBcImRpc3RpbmN0XCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxlbWVudFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJldmVyeVwiLFxuICAgIFwiZXhjZXB0XCIsXG4gICAgXCJleGNsdWRlXCIsXG4gICAgXCJleGVjdXRlXCIsXG4gICAgXCJleGlzdHNcIixcbiAgICBcImV4cGxhaW5cIixcbiAgICBcImZldGNoXCIsXG4gICAgXCJmaXJzdFwiLFxuICAgIFwiZmxhdHRlblwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3JjZVwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcImdyYW50XCIsXG4gICAgXCJncm91cFwiLFxuICAgIFwiZ3NpXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImlmXCIsXG4gICAgXCJpZ25vcmVcIixcbiAgICBcImlsaWtlXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5jcmVtZW50XCIsXG4gICAgXCJpbmRleFwiLFxuICAgIFwiaW5mZXJcIixcbiAgICBcImlubGluZVwiLFxuICAgIFwiaW5uZXJcIixcbiAgICBcImluc2VydFwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnRvXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiam9pblwiLFxuICAgIFwia2V5XCIsXG4gICAgXCJrZXlzXCIsXG4gICAgXCJrZXlzcGFjZVwiLFxuICAgIFwia25vd25cIixcbiAgICBcImxhc3RcIixcbiAgICBcImxlZnRcIixcbiAgICBcImxldFwiLFxuICAgIFwibGV0dGluZ1wiLFxuICAgIFwibGlrZVwiLFxuICAgIFwibGltaXRcIixcbiAgICBcImxzbVwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtYXBwaW5nXCIsXG4gICAgXCJtYXRjaGVkXCIsXG4gICAgXCJtYXRlcmlhbGl6ZWRcIixcbiAgICBcIm1lcmdlXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJuZXN0XCIsXG4gICAgXCJub3RcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwib2JqZWN0XCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm9uXCIsXG4gICAgXCJvcHRpb25cIixcbiAgICBcIm9yXCIsXG4gICAgXCJvcmRlclwiLFxuICAgIFwib3V0ZXJcIixcbiAgICBcIm92ZXJcIixcbiAgICBcInBhcnNlXCIsXG4gICAgXCJwYXJ0aXRpb25cIixcbiAgICBcInBhc3N3b3JkXCIsXG4gICAgXCJwYXRoXCIsXG4gICAgXCJwb29sXCIsXG4gICAgXCJwcmVwYXJlXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcml2aWxlZ2VcIixcbiAgICBcInByb2NlZHVyZVwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyYXdcIixcbiAgICBcInJlYWxtXCIsXG4gICAgXCJyZWR1Y2VcIixcbiAgICBcInJlbmFtZVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJyZXR1cm5pbmdcIixcbiAgICBcInJldm9rZVwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJvbGVcIixcbiAgICBcInJvbGxiYWNrXCIsXG4gICAgXCJzYXRpc2ZpZXNcIixcbiAgICBcInNjaGVtYVwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJzZW1pXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInNob3dcIixcbiAgICBcInNvbWVcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJzdGF0aXN0aWNzXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcInN5c3RlbVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICBcInRyYW5zYWN0aW9uXCIsXG4gICAgXCJ0cmlnZ2VyXCIsXG4gICAgXCJ0cnVuY2F0ZVwiLFxuICAgIFwidW5kZXJcIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJ1bmlxdWVcIixcbiAgICBcInVua25vd25cIixcbiAgICBcInVubmVzdFwiLFxuICAgIFwidW5zZXRcIixcbiAgICBcInVwZGF0ZVwiLFxuICAgIFwidXBzZXJ0XCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInVzZXJcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2YWxpZGF0ZVwiLFxuICAgIFwidmFsdWVcIixcbiAgICBcInZhbHVlZFwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpZXdcIixcbiAgICBcIndoZW5cIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJ3b3JrXCIsXG4gICAgXCJ4b3JcIlxuICBdO1xuICAvLyBUYWtlbiBmcm9tIGh0dHA6Ly9kZXZlbG9wZXIuY291Y2hiYXNlLmNvbS9kb2N1bWVudGF0aW9uL3NlcnZlci80LjUvbjFxbC9uMXFsLWxhbmd1YWdlLXJlZmVyZW5jZS9saXRlcmFscy5odG1sXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm1pc3Npbmd8NVwiXG4gIF07XG4gIC8vIFRha2VuIGZyb20gaHR0cDovL2RldmVsb3Blci5jb3VjaGJhc2UuY29tL2RvY3VtZW50YXRpb24vc2VydmVyLzQuNS9uMXFsL24xcWwtbGFuZ3VhZ2UtcmVmZXJlbmNlL2Z1bmN0aW9ucy5odG1sXG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXJyYXlfYXBwZW5kXCIsXG4gICAgXCJhcnJheV9jb25jYXRcIixcbiAgICBcImFycmF5X2NvbnRhaW5zXCIsXG4gICAgXCJhcnJheV9jb3VudFwiLFxuICAgIFwiYXJyYXlfZGlzdGluY3RcIixcbiAgICBcImFycmF5X2lmbnVsbFwiLFxuICAgIFwiYXJyYXlfbGVuZ3RoXCIsXG4gICAgXCJhcnJheV9tYXhcIixcbiAgICBcImFycmF5X21pblwiLFxuICAgIFwiYXJyYXlfcG9zaXRpb25cIixcbiAgICBcImFycmF5X3ByZXBlbmRcIixcbiAgICBcImFycmF5X3B1dFwiLFxuICAgIFwiYXJyYXlfcmFuZ2VcIixcbiAgICBcImFycmF5X3JlbW92ZVwiLFxuICAgIFwiYXJyYXlfcmVwZWF0XCIsXG4gICAgXCJhcnJheV9yZXBsYWNlXCIsXG4gICAgXCJhcnJheV9yZXZlcnNlXCIsXG4gICAgXCJhcnJheV9zb3J0XCIsXG4gICAgXCJhcnJheV9zdW1cIixcbiAgICBcImF2Z1wiLFxuICAgIFwiY291bnRcIixcbiAgICBcIm1heFwiLFxuICAgIFwibWluXCIsXG4gICAgXCJzdW1cIixcbiAgICBcImdyZWF0ZXN0XCIsXG4gICAgXCJsZWFzdFwiLFxuICAgIFwiaWZtaXNzaW5nXCIsXG4gICAgXCJpZm1pc3Npbmdvcm51bGxcIixcbiAgICBcImlmbnVsbFwiLFxuICAgIFwibWlzc2luZ2lmXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcImlmaW5mXCIsXG4gICAgXCJpZm5hblwiLFxuICAgIFwiaWZuYW5vcmluZlwiLFxuICAgIFwibmFuaW5mXCIsXG4gICAgXCJuZWdpbmZpZlwiLFxuICAgIFwicG9zaW5maWZcIixcbiAgICBcImNsb2NrX21pbGxpc1wiLFxuICAgIFwiY2xvY2tfc3RyXCIsXG4gICAgXCJkYXRlX2FkZF9taWxsaXNcIixcbiAgICBcImRhdGVfYWRkX3N0clwiLFxuICAgIFwiZGF0ZV9kaWZmX21pbGxpc1wiLFxuICAgIFwiZGF0ZV9kaWZmX3N0clwiLFxuICAgIFwiZGF0ZV9wYXJ0X21pbGxpc1wiLFxuICAgIFwiZGF0ZV9wYXJ0X3N0clwiLFxuICAgIFwiZGF0ZV90cnVuY19taWxsaXNcIixcbiAgICBcImRhdGVfdHJ1bmNfc3RyXCIsXG4gICAgXCJkdXJhdGlvbl90b19zdHJcIixcbiAgICBcIm1pbGxpc1wiLFxuICAgIFwic3RyX3RvX21pbGxpc1wiLFxuICAgIFwibWlsbGlzX3RvX3N0clwiLFxuICAgIFwibWlsbGlzX3RvX3V0Y1wiLFxuICAgIFwibWlsbGlzX3RvX3pvbmVfbmFtZVwiLFxuICAgIFwibm93X21pbGxpc1wiLFxuICAgIFwibm93X3N0clwiLFxuICAgIFwic3RyX3RvX2R1cmF0aW9uXCIsXG4gICAgXCJzdHJfdG9fdXRjXCIsXG4gICAgXCJzdHJfdG9fem9uZV9uYW1lXCIsXG4gICAgXCJkZWNvZGVfanNvblwiLFxuICAgIFwiZW5jb2RlX2pzb25cIixcbiAgICBcImVuY29kZWRfc2l6ZVwiLFxuICAgIFwicG9seV9sZW5ndGhcIixcbiAgICBcImJhc2U2NFwiLFxuICAgIFwiYmFzZTY0X2VuY29kZVwiLFxuICAgIFwiYmFzZTY0X2RlY29kZVwiLFxuICAgIFwibWV0YVwiLFxuICAgIFwidXVpZFwiLFxuICAgIFwiYWJzXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhc2luXCIsXG4gICAgXCJhdGFuXCIsXG4gICAgXCJhdGFuMlwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJkZWdyZWVzXCIsXG4gICAgXCJlXCIsXG4gICAgXCJleHBcIixcbiAgICBcImxuXCIsXG4gICAgXCJsb2dcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJwaVwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInJhZGlhbnNcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNpZ25cIixcbiAgICBcInNpblwiLFxuICAgIFwic3FydFwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0cnVuY1wiLFxuICAgIFwib2JqZWN0X2xlbmd0aFwiLFxuICAgIFwib2JqZWN0X25hbWVzXCIsXG4gICAgXCJvYmplY3RfcGFpcnNcIixcbiAgICBcIm9iamVjdF9pbm5lcl9wYWlyc1wiLFxuICAgIFwib2JqZWN0X3ZhbHVlc1wiLFxuICAgIFwib2JqZWN0X2lubmVyX3ZhbHVlc1wiLFxuICAgIFwib2JqZWN0X2FkZFwiLFxuICAgIFwib2JqZWN0X3B1dFwiLFxuICAgIFwib2JqZWN0X3JlbW92ZVwiLFxuICAgIFwib2JqZWN0X3Vud3JhcFwiLFxuICAgIFwicmVnZXhwX2NvbnRhaW5zXCIsXG4gICAgXCJyZWdleHBfbGlrZVwiLFxuICAgIFwicmVnZXhwX3Bvc2l0aW9uXCIsXG4gICAgXCJyZWdleHBfcmVwbGFjZVwiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcImluaXRjYXBcIixcbiAgICBcImxlbmd0aFwiLFxuICAgIFwibG93ZXJcIixcbiAgICBcImx0cmltXCIsXG4gICAgXCJwb3NpdGlvblwiLFxuICAgIFwicmVwZWF0XCIsXG4gICAgXCJyZXBsYWNlXCIsXG4gICAgXCJydHJpbVwiLFxuICAgIFwic3BsaXRcIixcbiAgICBcInN1YnN0clwiLFxuICAgIFwidGl0bGVcIixcbiAgICBcInRyaW1cIixcbiAgICBcInVwcGVyXCIsXG4gICAgXCJpc2FycmF5XCIsXG4gICAgXCJpc2F0b21cIixcbiAgICBcImlzYm9vbGVhblwiLFxuICAgIFwiaXNudW1iZXJcIixcbiAgICBcImlzb2JqZWN0XCIsXG4gICAgXCJpc3N0cmluZ1wiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidG9hcnJheVwiLFxuICAgIFwidG9hdG9tXCIsXG4gICAgXCJ0b2Jvb2xlYW5cIixcbiAgICBcInRvbnVtYmVyXCIsXG4gICAgXCJ0b29iamVjdFwiLFxuICAgIFwidG9zdHJpbmdcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ04xUUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczpcbiAgICAgICAgICAnYnVpbGQgY3JlYXRlIGluZGV4IGRlbGV0ZSBkcm9wIGV4cGxhaW4gaW5mZXJ8MTAgaW5zZXJ0IG1lcmdlIHByZXBhcmUgc2VsZWN0IHVwZGF0ZSB1cHNlcnR8MTAnLFxuICAgICAgICBlbmQ6IC87LyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICBiZWdpbjogJ2AnLFxuICAgICAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbjFxbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE5lc3RlZFRleHRcbkRlc2NyaXB0aW9uOiBOZXN0ZWRUZXh0IGlzIGEgZmlsZSBmb3JtYXQgZm9yIGhvbGRpbmcgZGF0YSB0aGF0IGlzIHRvIGJlIGVudGVyZWQsIGVkaXRlZCwgb3Igdmlld2VkIGJ5IHBlb3BsZS5cbldlYnNpdGU6IGh0dHBzOi8vbmVzdGVkdGV4dC5vcmcvXG5DYXRlZ29yeTogY29uZmlnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbmVzdGVkdGV4dChobGpzKSB7XG4gIGNvbnN0IE5FU1RFRCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL15cXHMqKD89XFxTKS8sIC8vIGhhdmUgdG8gbG9vayBmb3J3YXJkIGhlcmUgdG8gYXZvaWQgcG9seW5vbWlhbCBiYWNrdHJhY2tpbmdcbiAgICAgIC9bXjpdKy8sXG4gICAgICAvOlxccyovLFxuICAgICAgLyQvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDI6IFwiYXR0cmlidXRlXCIsXG4gICAgICAzOiBcInB1bmN0dWF0aW9uXCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IERJQ1RJT05BUllfSVRFTSA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL15cXHMqKD89XFxTKS8sIC8vIGhhdmUgdG8gbG9vayBmb3J3YXJkIGhlcmUgdG8gYXZvaWQgcG9seW5vbWlhbCBiYWNrdHJhY2tpbmdcbiAgICAgIC9bXjpdKlteOiBdLyxcbiAgICAgIC9bIF0qOi8sXG4gICAgICAvWyBdLyxcbiAgICAgIC8uKiQvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDI6IFwiYXR0cmlidXRlXCIsXG4gICAgICAzOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICA1OiBcInN0cmluZ1wiXG4gICAgfVxuICB9O1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9eXFxzKi8sXG4gICAgICAvPi8sXG4gICAgICAvWyBdLyxcbiAgICAgIC8uKiQvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDI6IFwicHVuY3R1YXRpb25cIixcbiAgICAgIDQ6IFwic3RyaW5nXCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IExJU1RfSVRFTSA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvXlxccyovLFxuICAgICAgICAvLS8sXG4gICAgICAgIC9bIF0vLFxuICAgICAgICAvLiokL1xuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvXlxccyovLFxuICAgICAgICAvLSQvXG4gICAgICBdIH1cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMjogXCJidWxsZXRcIixcbiAgICAgIDQ6IFwic3RyaW5nXCJcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTmVzdGVkIFRleHQnLFxuICAgIGFsaWFzZXM6IFsgJ250JyBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSwge1xuICAgICAgICBiZWdpbjogL15cXHMqKD89IykvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWVcbiAgICAgIH0pLFxuICAgICAgTElTVF9JVEVNLFxuICAgICAgU1RSSU5HLFxuICAgICAgTkVTVEVELFxuICAgICAgRElDVElPTkFSWV9JVEVNXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5lc3RlZHRleHQ7XG4iLCAiLypcbkxhbmd1YWdlOiBOZ2lueCBjb25maWdcbkF1dGhvcjogUGV0ZXIgTGVvbm92IDxnb2pwZWdAeWFuZGV4LnJ1PlxuQ29udHJpYnV0b3JzOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNhdGVnb3J5OiBjb25maWcsIHdlYlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cubmdpbnguY29tXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbmdpbngoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFZBUiA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRcXGQrLyB9LFxuICAgICAgeyBiZWdpbjogL1xcJFxce1xcdytcXH0vIH0sXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1skQF0vLCBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUpIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwib25cIixcbiAgICBcIm9mZlwiLFxuICAgIFwieWVzXCIsXG4gICAgXCJub1wiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm5vbmVcIixcbiAgICBcImJsb2NrZWRcIixcbiAgICBcImRlYnVnXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJub3RpY2VcIixcbiAgICBcIndhcm5cIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJjcml0XCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJsYXN0XCIsXG4gICAgXCJwZXJtYW5lbnRcIixcbiAgICBcInJlZGlyZWN0XCIsXG4gICAgXCJrcXVldWVcIixcbiAgICBcInJ0c2lnXCIsXG4gICAgXCJlcG9sbFwiLFxuICAgIFwicG9sbFwiLFxuICAgIFwiL2Rldi9wb2xsXCJcbiAgXTtcbiAgY29uc3QgREVGQVVMVCA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bYS16X117Mix9fFxcL2RldlxcL3BvbGwvLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBpbGxlZ2FsOiAnPT4nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBWQVJcbiAgICAgICAgXSxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICAgIGVuZDogL1wiL1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgIGVuZDogLycvXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gdGhpcyBzd2FsbG93cyBlbnRpcmUgVVJMcyB0byBhdm9pZCBkZXRlY3RpbmcgbnVtYmVycyB3aXRoaW5cbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcoW2Etel0rKTovJyxcbiAgICAgICAgZW5kOiAnXFxcXHMnLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFsgVkFSIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIFZBUlxuICAgICAgICBdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIlxcXFxzXFxcXF5cIixcbiAgICAgICAgICAgIGVuZDogXCJcXFxcc3xcXFxce3w7XCIsXG4gICAgICAgICAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIHJlZ2V4cCBsb2NhdGlvbnMgKH4sIH4qKVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIn5cXFxcKj9cXFxccytcIixcbiAgICAgICAgICAgIGVuZDogXCJcXFxcc3xcXFxce3w7XCIsXG4gICAgICAgICAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vICouZXhhbXBsZS5jb21cbiAgICAgICAgICB7IGJlZ2luOiBcIlxcXFwqKFxcXFwuW2EtelxcXFwtXSspK1wiIH0sXG4gICAgICAgICAgLy8gc3ViLmV4YW1wbGUuKlxuICAgICAgICAgIHsgYmVnaW46IFwiKFthLXpcXFxcLV0rXFxcXC4pK1xcXFwqXCIgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gSVBcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM30oOlxcXFxkezEsNX0pP1xcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIHVuaXRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJcXFxcZCtba0ttTWdHZHNoZHd5XT9cXFxcYicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIFZBUlxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdOZ2lueCBjb25maWcnLFxuICAgIGFsaWFzZXM6IFsgJ25naW54Y29uZicgXSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogXCJ1cHN0cmVhbSBsb2NhdGlvblwiLFxuICAgICAgICBlbmQ6IC87fFxcey8sXG4gICAgICAgIGNvbnRhaW5zOiBERUZBVUxULmNvbnRhaW5zLFxuICAgICAgICBrZXl3b3JkczogeyBzZWN0aW9uOiBcInVwc3RyZWFtIGxvY2F0aW9uXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VjdGlvbicsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgcmVnZXgubG9va2FoZWFkKC9cXHMrXFx7LykpLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiByZWdleC5sb29rYWhlYWQoaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzJyksXG4gICAgICAgIGVuZDogJzt8XFxcXHsnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgc3RhcnRzOiBERUZBVUxUXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6ICdbXlxcXFxzXFxcXH1cXFxce10nXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmdpbng7XG4iLCAiLypcbkxhbmd1YWdlOiBOaW1cbkRlc2NyaXB0aW9uOiBOaW0gaXMgYSBzdGF0aWNhbGx5IHR5cGVkIGNvbXBpbGVkIHN5c3RlbXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuXG5XZWJzaXRlOiBodHRwczovL25pbS1sYW5nLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuZnVuY3Rpb24gbmltKGhsanMpIHtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJpbnRcIixcbiAgICBcImludDhcIixcbiAgICBcImludDE2XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInVpbnRcIixcbiAgICBcInVpbnQ4XCIsXG4gICAgXCJ1aW50MTZcIixcbiAgICBcInVpbnQzMlwiLFxuICAgIFwidWludDY0XCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZmxvYXQzMlwiLFxuICAgIFwiZmxvYXQ2NFwiLFxuICAgIFwiYm9vbFwiLFxuICAgIFwiY2hhclwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJjc3RyaW5nXCIsXG4gICAgXCJwb2ludGVyXCIsXG4gICAgXCJleHByXCIsXG4gICAgXCJzdG10XCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJhdXRvXCIsXG4gICAgXCJhbnlcIixcbiAgICBcInJhbmdlXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwib3BlbmFycmF5XCIsXG4gICAgXCJ2YXJhcmdzXCIsXG4gICAgXCJzZXFcIixcbiAgICBcInNldFwiLFxuICAgIFwiY2xvbmdcIixcbiAgICBcImN1bG9uZ1wiLFxuICAgIFwiY2NoYXJcIixcbiAgICBcImNzY2hhclwiLFxuICAgIFwiY3Nob3J0XCIsXG4gICAgXCJjaW50XCIsXG4gICAgXCJjc2l6ZVwiLFxuICAgIFwiY2xvbmdsb25nXCIsXG4gICAgXCJjZmxvYXRcIixcbiAgICBcImNkb3VibGVcIixcbiAgICBcImNsb25nZG91YmxlXCIsXG4gICAgXCJjdWNoYXJcIixcbiAgICBcImN1c2hvcnRcIixcbiAgICBcImN1aW50XCIsXG4gICAgXCJjdWxvbmdsb25nXCIsXG4gICAgXCJjc3RyaW5nYXJyYXlcIixcbiAgICBcInNlbWlzdGF0aWNcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImFkZHJcIixcbiAgICBcImFuZFwiLFxuICAgIFwiYXNcIixcbiAgICBcImFzbVwiLFxuICAgIFwiYmluZFwiLFxuICAgIFwiYmxvY2tcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjYXN0XCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImNvbnZlcnRlclwiLFxuICAgIFwiZGlzY2FyZFwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRpdlwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXhjZXB0XCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZvclwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiZnVuY1wiLFxuICAgIFwiZ2VuZXJpY1wiLFxuICAgIFwiZ3VhcmRlZFwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwiaXNcIixcbiAgICBcImlzbm90XCIsXG4gICAgXCJpdGVyYXRvclwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWV0aG9kXCIsXG4gICAgXCJtaXhpblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJuaWxcIixcbiAgICBcIm5vdFwiLFxuICAgIFwibm90aW5cIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwib2ZcIixcbiAgICBcIm9yXCIsXG4gICAgXCJvdXRcIixcbiAgICBcInByb2NcIixcbiAgICBcInB0clwiLFxuICAgIFwicmFpc2VcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzaGFyZWRcIixcbiAgICBcInNobFwiLFxuICAgIFwic2hyXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInRlbXBsYXRlXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInR1cGxlXCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJ1c2luZ1wiLFxuICAgIFwidmFyXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aG91dFwiLFxuICAgIFwieG9yXCIsXG4gICAgXCJ5aWVsZFwiXG4gIF07XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcInN0ZGluXCIsXG4gICAgXCJzdGRvdXRcIixcbiAgICBcInN0ZGVyclwiLFxuICAgIFwicmVzdWx0XCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ05pbScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICB0eXBlOiBUWVBFUyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTlNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCAvLyBBY3R1YWxseSBwcmFnbWFcbiAgICAgICAgYmVnaW46IC9cXHtcXC4vLFxuICAgICAgICBlbmQ6IC9cXC5cXH0vLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogL1thLXpBLVpdXFx3KlwiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogWyB7IGJlZ2luOiAvXCJcIi8gfSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLyhbYS16QS1aXVxcdyopP1wiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIi9cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46IC9cXGJbQS1aXVxcdytcXGIvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKDBbeFhdWzAtOWEtZkEtRl1bXzAtOWEtZkEtRl0qKSgnP1tpSXVVXSg4fDE2fDMyfDY0KSk/LyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoMG9bMC03XVtfMC03XSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKDAoYnxCKVswMV1bXzAxXSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFxcZFtfXFxkXSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy8gfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuaW07XG4iLCAiLypcbkxhbmd1YWdlOiBOaXhcbkF1dGhvcjogRG9tZW4gS29cdTAxN0VhciA8ZG9tZW5AZGV2LnNpPlxuRGVzY3JpcHRpb246IE5peCBmdW5jdGlvbmFsIGxhbmd1YWdlXG5XZWJzaXRlOiBodHRwOi8vbml4b3Mub3JnL25peFxuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuZnVuY3Rpb24gbml4KGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogW1xuICAgICAgXCJyZWNcIixcbiAgICAgIFwid2l0aFwiLFxuICAgICAgXCJsZXRcIixcbiAgICAgIFwiaW5cIixcbiAgICAgIFwiaW5oZXJpdFwiLFxuICAgICAgXCJhc3NlcnRcIixcbiAgICAgIFwiaWZcIixcbiAgICAgIFwiZWxzZVwiLFxuICAgICAgXCJ0aGVuXCJcbiAgICBdLFxuICAgIGxpdGVyYWw6IFtcbiAgICAgIFwidHJ1ZVwiLFxuICAgICAgXCJmYWxzZVwiLFxuICAgICAgXCJvclwiLFxuICAgICAgXCJhbmRcIixcbiAgICAgIFwibnVsbFwiXG4gICAgXSxcbiAgICBidWlsdF9pbjogW1xuICAgICAgXCJpbXBvcnRcIixcbiAgICAgIFwiYWJvcnRcIixcbiAgICAgIFwiYmFzZU5hbWVPZlwiLFxuICAgICAgXCJkaXJPZlwiLFxuICAgICAgXCJpc051bGxcIixcbiAgICAgIFwiYnVpbHRpbnNcIixcbiAgICAgIFwibWFwXCIsXG4gICAgICBcInJlbW92ZUF0dHJzXCIsXG4gICAgICBcInRocm93XCIsXG4gICAgICBcInRvU3RyaW5nXCIsXG4gICAgICBcImRlcml2YXRpb25cIlxuICAgIF1cbiAgfTtcbiAgY29uc3QgQU5USVFVT1RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJFxcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgRVNDQVBFRF9ET0xMQVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2hhci5lc2NhcGUnLFxuICAgIGJlZ2luOiAvJydcXCQvLFxuICB9O1xuICBjb25zdCBBVFRSUyA9IHtcbiAgICBiZWdpbjogL1thLXpBLVowLTktX10rKFxccyo9KS8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogL1xcUysvLFxuICAgICAgICByZWxldmFuY2U6IDAuMlxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgY29udGFpbnM6IFsgRVNDQVBFRF9ET0xMQVIsIEFOVElRVU9URSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIicnXCIsXG4gICAgICAgIGVuZDogXCInJ1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBFWFBSRVNTSU9OUyA9IFtcbiAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBTVFJJTkcsXG4gICAgQVRUUlNcbiAgXTtcbiAgQU5USVFVT1RFLmNvbnRhaW5zID0gRVhQUkVTU0lPTlM7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ05peCcsXG4gICAgYWxpYXNlczogWyBcIm5peG9zXCIgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05TXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbml4O1xuIiwgIi8qXG5MYW5ndWFnZTogTm9kZSBSRVBMXG5SZXF1aXJlczogamF2YXNjcmlwdC5qc1xuQXV0aG9yOiBNYXJhdCBOYWdheWV2IDxuYWdhZXZtdEB5YW5kZXgucnU+XG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbm9kZVJlcGwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdOb2RlIFJFUEwnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEucHJvbXB0JyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gYSBzcGFjZSBzZXBhcmF0ZXMgdGhlIFJFUEwgcHJlZml4IGZyb20gdGhlIGFjdHVhbCBjb2RlXG4gICAgICAgICAgLy8gdGhpcyBpcyBwdXJlbHkgZm9yIGNsZWFuZXIgSFRNTCBvdXRwdXRcbiAgICAgICAgICBlbmQ6IC8gfCQvLFxuICAgICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ2phdmFzY3JpcHQnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9ePig/PVsgXXwkKS8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXlxcLlxcLlxcLig/PVsgXXwkKS8gfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5vZGVSZXBsO1xuIiwgIi8qXG5MYW5ndWFnZTogTlNJU1xuRGVzY3JpcHRpb246IE51bGxzb2Z0IFNjcmlwdGFibGUgSW5zdGFsbCBTeXN0ZW1cbkF1dGhvcjogSmFuIFQuIFNvdHQgPGphbi5zb3R0QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vbnNpcy5zb3VyY2Vmb3JnZS5pby9NYWluX1BhZ2VcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cblxuZnVuY3Rpb24gbnNpcyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgTEFOR1VBR0VfQ09OU1RBTlRTID0gW1xuICAgIFwiQURNSU5UT09MU1wiLFxuICAgIFwiQVBQREFUQVwiLFxuICAgIFwiQ0RCVVJOX0FSRUFcIixcbiAgICBcIkNNRExJTkVcIixcbiAgICBcIkNPTU1PTkZJTEVTMzJcIixcbiAgICBcIkNPTU1PTkZJTEVTNjRcIixcbiAgICBcIkNPTU1PTkZJTEVTXCIsXG4gICAgXCJDT09LSUVTXCIsXG4gICAgXCJERVNLVE9QXCIsXG4gICAgXCJET0NVTUVOVFNcIixcbiAgICBcIkVYRURJUlwiLFxuICAgIFwiRVhFRklMRVwiLFxuICAgIFwiRVhFUEFUSFwiLFxuICAgIFwiRkFWT1JJVEVTXCIsXG4gICAgXCJGT05UU1wiLFxuICAgIFwiSElTVE9SWVwiLFxuICAgIFwiSFdORFBBUkVOVFwiLFxuICAgIFwiSU5TVERJUlwiLFxuICAgIFwiSU5URVJORVRfQ0FDSEVcIixcbiAgICBcIkxBTkdVQUdFXCIsXG4gICAgXCJMT0NBTEFQUERBVEFcIixcbiAgICBcIk1VU0lDXCIsXG4gICAgXCJORVRIT09EXCIsXG4gICAgXCJPVVRESVJcIixcbiAgICBcIlBJQ1RVUkVTXCIsXG4gICAgXCJQTFVHSU5TRElSXCIsXG4gICAgXCJQUklOVEhPT0RcIixcbiAgICBcIlBST0ZJTEVcIixcbiAgICBcIlBST0dSQU1GSUxFUzMyXCIsXG4gICAgXCJQUk9HUkFNRklMRVM2NFwiLFxuICAgIFwiUFJPR1JBTUZJTEVTXCIsXG4gICAgXCJRVUlDS0xBVU5DSFwiLFxuICAgIFwiUkVDRU5UXCIsXG4gICAgXCJSRVNPVVJDRVNfTE9DQUxJWkVEXCIsXG4gICAgXCJSRVNPVVJDRVNcIixcbiAgICBcIlNFTkRUT1wiLFxuICAgIFwiU01QUk9HUkFNU1wiLFxuICAgIFwiU01TVEFSVFVQXCIsXG4gICAgXCJTVEFSVE1FTlVcIixcbiAgICBcIlNZU0RJUlwiLFxuICAgIFwiVEVNUFwiLFxuICAgIFwiVEVNUExBVEVTXCIsXG4gICAgXCJWSURFT1NcIixcbiAgICBcIldJTkRJUlwiXG4gIF07XG5cbiAgY29uc3QgUEFSQU1fTkFNRVMgPSBbXG4gICAgXCJBUkNISVZFXCIsXG4gICAgXCJGSUxFX0FUVFJJQlVURV9BUkNISVZFXCIsXG4gICAgXCJGSUxFX0FUVFJJQlVURV9OT1JNQUxcIixcbiAgICBcIkZJTEVfQVRUUklCVVRFX09GRkxJTkVcIixcbiAgICBcIkZJTEVfQVRUUklCVVRFX1JFQURPTkxZXCIsXG4gICAgXCJGSUxFX0FUVFJJQlVURV9TWVNURU1cIixcbiAgICBcIkZJTEVfQVRUUklCVVRFX1RFTVBPUkFSWVwiLFxuICAgIFwiSEtDUlwiLFxuICAgIFwiSEtDVVwiLFxuICAgIFwiSEtERFwiLFxuICAgIFwiSEtFWV9DTEFTU0VTX1JPT1RcIixcbiAgICBcIkhLRVlfQ1VSUkVOVF9DT05GSUdcIixcbiAgICBcIkhLRVlfQ1VSUkVOVF9VU0VSXCIsXG4gICAgXCJIS0VZX0RZTl9EQVRBXCIsXG4gICAgXCJIS0VZX0xPQ0FMX01BQ0hJTkVcIixcbiAgICBcIkhLRVlfUEVSRk9STUFOQ0VfREFUQVwiLFxuICAgIFwiSEtFWV9VU0VSU1wiLFxuICAgIFwiSEtMTVwiLFxuICAgIFwiSEtQRFwiLFxuICAgIFwiSEtVXCIsXG4gICAgXCJJREFCT1JUXCIsXG4gICAgXCJJRENBTkNFTFwiLFxuICAgIFwiSURJR05PUkVcIixcbiAgICBcIklETk9cIixcbiAgICBcIklET0tcIixcbiAgICBcIklEUkVUUllcIixcbiAgICBcIklEWUVTXCIsXG4gICAgXCJNQl9BQk9SVFJFVFJZSUdOT1JFXCIsXG4gICAgXCJNQl9ERUZCVVRUT04xXCIsXG4gICAgXCJNQl9ERUZCVVRUT04yXCIsXG4gICAgXCJNQl9ERUZCVVRUT04zXCIsXG4gICAgXCJNQl9ERUZCVVRUT040XCIsXG4gICAgXCJNQl9JQ09ORVhDTEFNQVRJT05cIixcbiAgICBcIk1CX0lDT05JTkZPUk1BVElPTlwiLFxuICAgIFwiTUJfSUNPTlFVRVNUSU9OXCIsXG4gICAgXCJNQl9JQ09OU1RPUFwiLFxuICAgIFwiTUJfT0tcIixcbiAgICBcIk1CX09LQ0FOQ0VMXCIsXG4gICAgXCJNQl9SRVRSWUNBTkNFTFwiLFxuICAgIFwiTUJfUklHSFRcIixcbiAgICBcIk1CX1JUTFJFQURJTkdcIixcbiAgICBcIk1CX1NFVEZPUkVHUk9VTkRcIixcbiAgICBcIk1CX1RPUE1PU1RcIixcbiAgICBcIk1CX1VTRVJJQ09OXCIsXG4gICAgXCJNQl9ZRVNOT1wiLFxuICAgIFwiTk9STUFMXCIsXG4gICAgXCJPRkZMSU5FXCIsXG4gICAgXCJSRUFET05MWVwiLFxuICAgIFwiU0hDVFhcIixcbiAgICBcIlNIRUxMX0NPTlRFWFRcIixcbiAgICBcIlNZU1RFTXxURU1QT1JBUllcIixcbiAgXTtcblxuICBjb25zdCBDT01QSUxFUl9GTEFHUyA9IFtcbiAgICBcImFkZGluY2x1ZGVkaXJcIixcbiAgICBcImFkZHBsdWdpbmRpclwiLFxuICAgIFwiYXBwZW5kZmlsZVwiLFxuICAgIFwiYXNzZXJ0XCIsXG4gICAgXCJjZFwiLFxuICAgIFwiZGVmaW5lXCIsXG4gICAgXCJkZWxmaWxlXCIsXG4gICAgXCJlY2hvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRpZlwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImZpbmFsaXplXCIsXG4gICAgXCJnZXRkbGx2ZXJzaW9uXCIsXG4gICAgXCJnZXR0bGJ2ZXJzaW9uXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaWZkZWZcIixcbiAgICBcImlmbWFjcm9kZWZcIixcbiAgICBcImlmbWFjcm9uZGVmXCIsXG4gICAgXCJpZm5kZWZcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluc2VydG1hY3JvXCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWFjcm9lbmRcIixcbiAgICBcIm1ha2Vuc2lzXCIsXG4gICAgXCJwYWNraGRyXCIsXG4gICAgXCJzZWFyY2hwYXJzZVwiLFxuICAgIFwic2VhcmNocmVwbGFjZVwiLFxuICAgIFwic3lzdGVtXCIsXG4gICAgXCJ0ZW1wZmlsZVwiLFxuICAgIFwidW5kZWZcIixcbiAgICBcInVuaW5zdGZpbmFsaXplXCIsXG4gICAgXCJ2ZXJib3NlXCIsXG4gICAgXCJ3YXJuaW5nXCIsXG4gIF07XG5cbiAgY29uc3QgQ09OU1RBTlRTID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlLmNvbnN0YW50JyxcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXCQvLCByZWdleC5laXRoZXIoLi4uTEFOR1VBR0VfQ09OU1RBTlRTKSlcbiAgfTtcblxuICBjb25zdCBERUZJTkVTID0ge1xuICAgIC8vICR7ZGVmaW5lc31cbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCQrXFx7W1xcIVxcdy46LV0rXFx9L1xuICB9O1xuXG4gIGNvbnN0IFZBUklBQkxFUyA9IHtcbiAgICAvLyAkdmFyaWFibGVzXG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFwkK1xcd1tcXHdcXC5dKi8sXG4gICAgaWxsZWdhbDogL1xcKFxcKVxce1xcfS9cbiAgfTtcblxuICBjb25zdCBMQU5HVUFHRVMgPSB7XG4gICAgLy8gJChsYW5ndWFnZV9zdHJpbmdzKVxuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL1xcJCtcXChbXFx3Xi46IS1dK1xcKS9cbiAgfTtcblxuICBjb25zdCBQQVJBTUVURVJTID0ge1xuICAgIC8vIGNvbW1hbmQgcGFyYW1ldGVyc1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IHJlZ2V4LmVpdGhlciguLi5QQVJBTV9OQU1FUylcbiAgfTtcblxuICBjb25zdCBDT01QSUxFUiA9IHtcbiAgICAvLyAhY29tcGlsZXJfZmxhZ3NcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KFxuICAgICAgLyEvLFxuICAgICAgcmVnZXguZWl0aGVyKC4uLkNPTVBJTEVSX0ZMQUdTKVxuICAgIClcbiAgfTtcblxuICBjb25zdCBFU0NBUEVfQ0hBUlMgPSB7XG4gICAgLy8gJFxcbiwgJFxcciwgJFxcdCwgJCRcbiAgICBjbGFzc05hbWU6ICdjaGFyLmVzY2FwZScsXG4gICAgYmVnaW46IC9cXCQoXFxcXFtucnRdfFxcJCkvXG4gIH07XG5cbiAgY29uc3QgUExVR0lOUyA9IHtcbiAgICAvLyBwbHVnOjppbnNcbiAgICBjbGFzc05hbWU6ICd0aXRsZS5mdW5jdGlvbicsXG4gICAgYmVnaW46IC9cXHcrOjpcXHcrL1xuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnXFwnJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCdcbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBFU0NBUEVfQ0hBUlMsXG4gICAgICBDT05TVEFOVFMsXG4gICAgICBERUZJTkVTLFxuICAgICAgVkFSSUFCTEVTLFxuICAgICAgTEFOR1VBR0VTXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiQWJvcnRcIixcbiAgICBcIkFkZEJyYW5kaW5nSW1hZ2VcIixcbiAgICBcIkFkZFNpemVcIixcbiAgICBcIkFsbG93Um9vdERpckluc3RhbGxcIixcbiAgICBcIkFsbG93U2tpcEZpbGVzXCIsXG4gICAgXCJBdXRvQ2xvc2VXaW5kb3dcIixcbiAgICBcIkJHRm9udFwiLFxuICAgIFwiQkdHcmFkaWVudFwiLFxuICAgIFwiQnJhbmRpbmdUZXh0XCIsXG4gICAgXCJCcmluZ1RvRnJvbnRcIixcbiAgICBcIkNhbGxcIixcbiAgICBcIkNhbGxJbnN0RExMXCIsXG4gICAgXCJDYXB0aW9uXCIsXG4gICAgXCJDaGFuZ2VVSVwiLFxuICAgIFwiQ2hlY2tCaXRtYXBcIixcbiAgICBcIkNsZWFyRXJyb3JzXCIsXG4gICAgXCJDb21wbGV0ZWRUZXh0XCIsXG4gICAgXCJDb21wb25lbnRUZXh0XCIsXG4gICAgXCJDb3B5RmlsZXNcIixcbiAgICBcIkNSQ0NoZWNrXCIsXG4gICAgXCJDcmVhdGVEaXJlY3RvcnlcIixcbiAgICBcIkNyZWF0ZUZvbnRcIixcbiAgICBcIkNyZWF0ZVNob3J0Q3V0XCIsXG4gICAgXCJEZWxldGVcIixcbiAgICBcIkRlbGV0ZUlOSVNlY1wiLFxuICAgIFwiRGVsZXRlSU5JU3RyXCIsXG4gICAgXCJEZWxldGVSZWdLZXlcIixcbiAgICBcIkRlbGV0ZVJlZ1ZhbHVlXCIsXG4gICAgXCJEZXRhaWxQcmludFwiLFxuICAgIFwiRGV0YWlsc0J1dHRvblRleHRcIixcbiAgICBcIkRpclRleHRcIixcbiAgICBcIkRpclZhclwiLFxuICAgIFwiRGlyVmVyaWZ5XCIsXG4gICAgXCJFbmFibGVXaW5kb3dcIixcbiAgICBcIkVudW1SZWdLZXlcIixcbiAgICBcIkVudW1SZWdWYWx1ZVwiLFxuICAgIFwiRXhjaFwiLFxuICAgIFwiRXhlY1wiLFxuICAgIFwiRXhlY1NoZWxsXCIsXG4gICAgXCJFeGVjU2hlbGxXYWl0XCIsXG4gICAgXCJFeGVjV2FpdFwiLFxuICAgIFwiRXhwYW5kRW52U3RyaW5nc1wiLFxuICAgIFwiRmlsZVwiLFxuICAgIFwiRmlsZUJ1ZlNpemVcIixcbiAgICBcIkZpbGVDbG9zZVwiLFxuICAgIFwiRmlsZUVycm9yVGV4dFwiLFxuICAgIFwiRmlsZU9wZW5cIixcbiAgICBcIkZpbGVSZWFkXCIsXG4gICAgXCJGaWxlUmVhZEJ5dGVcIixcbiAgICBcIkZpbGVSZWFkVVRGMTZMRVwiLFxuICAgIFwiRmlsZVJlYWRXb3JkXCIsXG4gICAgXCJGaWxlV3JpdGVVVEYxNkxFXCIsXG4gICAgXCJGaWxlU2Vla1wiLFxuICAgIFwiRmlsZVdyaXRlXCIsXG4gICAgXCJGaWxlV3JpdGVCeXRlXCIsXG4gICAgXCJGaWxlV3JpdGVXb3JkXCIsXG4gICAgXCJGaW5kQ2xvc2VcIixcbiAgICBcIkZpbmRGaXJzdFwiLFxuICAgIFwiRmluZE5leHRcIixcbiAgICBcIkZpbmRXaW5kb3dcIixcbiAgICBcIkZsdXNoSU5JXCIsXG4gICAgXCJHZXRDdXJJbnN0VHlwZVwiLFxuICAgIFwiR2V0Q3VycmVudEFkZHJlc3NcIixcbiAgICBcIkdldERsZ0l0ZW1cIixcbiAgICBcIkdldERMTFZlcnNpb25cIixcbiAgICBcIkdldERMTFZlcnNpb25Mb2NhbFwiLFxuICAgIFwiR2V0RXJyb3JMZXZlbFwiLFxuICAgIFwiR2V0RmlsZVRpbWVcIixcbiAgICBcIkdldEZpbGVUaW1lTG9jYWxcIixcbiAgICBcIkdldEZ1bGxQYXRoTmFtZVwiLFxuICAgIFwiR2V0RnVuY3Rpb25BZGRyZXNzXCIsXG4gICAgXCJHZXRJbnN0RGlyRXJyb3JcIixcbiAgICBcIkdldEtub3duRm9sZGVyUGF0aFwiLFxuICAgIFwiR2V0TGFiZWxBZGRyZXNzXCIsXG4gICAgXCJHZXRUZW1wRmlsZU5hbWVcIixcbiAgICBcIkdldFdpblZlclwiLFxuICAgIFwiR290b1wiLFxuICAgIFwiSGlkZVdpbmRvd1wiLFxuICAgIFwiSWNvblwiLFxuICAgIFwiSWZBYm9ydFwiLFxuICAgIFwiSWZFcnJvcnNcIixcbiAgICBcIklmRmlsZUV4aXN0c1wiLFxuICAgIFwiSWZSZWJvb3RGbGFnXCIsXG4gICAgXCJJZlJ0bExhbmd1YWdlXCIsXG4gICAgXCJJZlNoZWxsVmFyQ29udGV4dEFsbFwiLFxuICAgIFwiSWZTaWxlbnRcIixcbiAgICBcIkluaXRQbHVnaW5zRGlyXCIsXG4gICAgXCJJbnN0YWxsQnV0dG9uVGV4dFwiLFxuICAgIFwiSW5zdGFsbENvbG9yc1wiLFxuICAgIFwiSW5zdGFsbERpclwiLFxuICAgIFwiSW5zdGFsbERpclJlZ0tleVwiLFxuICAgIFwiSW5zdFByb2dyZXNzRmxhZ3NcIixcbiAgICBcIkluc3RUeXBlXCIsXG4gICAgXCJJbnN0VHlwZUdldFRleHRcIixcbiAgICBcIkluc3RUeXBlU2V0VGV4dFwiLFxuICAgIFwiSW50NjRDbXBcIixcbiAgICBcIkludDY0Q21wVVwiLFxuICAgIFwiSW50NjRGbXRcIixcbiAgICBcIkludENtcFwiLFxuICAgIFwiSW50Q21wVVwiLFxuICAgIFwiSW50Rm10XCIsXG4gICAgXCJJbnRPcFwiLFxuICAgIFwiSW50UHRyQ21wXCIsXG4gICAgXCJJbnRQdHJDbXBVXCIsXG4gICAgXCJJbnRQdHJPcFwiLFxuICAgIFwiSXNXaW5kb3dcIixcbiAgICBcIkxhbmdTdHJpbmdcIixcbiAgICBcIkxpY2Vuc2VCa0NvbG9yXCIsXG4gICAgXCJMaWNlbnNlRGF0YVwiLFxuICAgIFwiTGljZW5zZUZvcmNlU2VsZWN0aW9uXCIsXG4gICAgXCJMaWNlbnNlTGFuZ1N0cmluZ1wiLFxuICAgIFwiTGljZW5zZVRleHRcIixcbiAgICBcIkxvYWRBbmRTZXRJbWFnZVwiLFxuICAgIFwiTG9hZExhbmd1YWdlRmlsZVwiLFxuICAgIFwiTG9ja1dpbmRvd1wiLFxuICAgIFwiTG9nU2V0XCIsXG4gICAgXCJMb2dUZXh0XCIsXG4gICAgXCJNYW5pZmVzdERQSUF3YXJlXCIsXG4gICAgXCJNYW5pZmVzdExvbmdQYXRoQXdhcmVcIixcbiAgICBcIk1hbmlmZXN0TWF4VmVyc2lvblRlc3RlZFwiLFxuICAgIFwiTWFuaWZlc3RTdXBwb3J0ZWRPU1wiLFxuICAgIFwiTWVzc2FnZUJveFwiLFxuICAgIFwiTWlzY0J1dHRvblRleHRcIixcbiAgICBcIk5hbWV8MFwiLFxuICAgIFwiTm9wXCIsXG4gICAgXCJPdXRGaWxlXCIsXG4gICAgXCJQYWdlXCIsXG4gICAgXCJQYWdlQ2FsbGJhY2tzXCIsXG4gICAgXCJQRUFkZFJlc291cmNlXCIsXG4gICAgXCJQRURsbENoYXJhY3RlcmlzdGljc1wiLFxuICAgIFwiUEVSZW1vdmVSZXNvdXJjZVwiLFxuICAgIFwiUEVTdWJzeXNWZXJcIixcbiAgICBcIlBvcFwiLFxuICAgIFwiUHVzaFwiLFxuICAgIFwiUXVpdFwiLFxuICAgIFwiUmVhZEVudlN0clwiLFxuICAgIFwiUmVhZElOSVN0clwiLFxuICAgIFwiUmVhZFJlZ0RXT1JEXCIsXG4gICAgXCJSZWFkUmVnU3RyXCIsXG4gICAgXCJSZWJvb3RcIixcbiAgICBcIlJlZ0RMTFwiLFxuICAgIFwiUmVuYW1lXCIsXG4gICAgXCJSZXF1ZXN0RXhlY3V0aW9uTGV2ZWxcIixcbiAgICBcIlJlc2VydmVGaWxlXCIsXG4gICAgXCJSZXR1cm5cIixcbiAgICBcIlJNRGlyXCIsXG4gICAgXCJTZWFyY2hQYXRoXCIsXG4gICAgXCJTZWN0aW9uR2V0RmxhZ3NcIixcbiAgICBcIlNlY3Rpb25HZXRJbnN0VHlwZXNcIixcbiAgICBcIlNlY3Rpb25HZXRTaXplXCIsXG4gICAgXCJTZWN0aW9uR2V0VGV4dFwiLFxuICAgIFwiU2VjdGlvbkluXCIsXG4gICAgXCJTZWN0aW9uU2V0RmxhZ3NcIixcbiAgICBcIlNlY3Rpb25TZXRJbnN0VHlwZXNcIixcbiAgICBcIlNlY3Rpb25TZXRTaXplXCIsXG4gICAgXCJTZWN0aW9uU2V0VGV4dFwiLFxuICAgIFwiU2VuZE1lc3NhZ2VcIixcbiAgICBcIlNldEF1dG9DbG9zZVwiLFxuICAgIFwiU2V0QnJhbmRpbmdJbWFnZVwiLFxuICAgIFwiU2V0Q29tcHJlc3NcIixcbiAgICBcIlNldENvbXByZXNzb3JcIixcbiAgICBcIlNldENvbXByZXNzb3JEaWN0U2l6ZVwiLFxuICAgIFwiU2V0Q3RsQ29sb3JzXCIsXG4gICAgXCJTZXRDdXJJbnN0VHlwZVwiLFxuICAgIFwiU2V0RGF0YWJsb2NrT3B0aW1pemVcIixcbiAgICBcIlNldERhdGVTYXZlXCIsXG4gICAgXCJTZXREZXRhaWxzUHJpbnRcIixcbiAgICBcIlNldERldGFpbHNWaWV3XCIsXG4gICAgXCJTZXRFcnJvckxldmVsXCIsXG4gICAgXCJTZXRFcnJvcnNcIixcbiAgICBcIlNldEZpbGVBdHRyaWJ1dGVzXCIsXG4gICAgXCJTZXRGb250XCIsXG4gICAgXCJTZXRPdXRQYXRoXCIsXG4gICAgXCJTZXRPdmVyd3JpdGVcIixcbiAgICBcIlNldFJlYm9vdEZsYWdcIixcbiAgICBcIlNldFJlZ1ZpZXdcIixcbiAgICBcIlNldFNoZWxsVmFyQ29udGV4dFwiLFxuICAgIFwiU2V0U2lsZW50XCIsXG4gICAgXCJTaG93SW5zdERldGFpbHNcIixcbiAgICBcIlNob3dVbmluc3REZXRhaWxzXCIsXG4gICAgXCJTaG93V2luZG93XCIsXG4gICAgXCJTaWxlbnRJbnN0YWxsXCIsXG4gICAgXCJTaWxlbnRVbkluc3RhbGxcIixcbiAgICBcIlNsZWVwXCIsXG4gICAgXCJTcGFjZVRleHRzXCIsXG4gICAgXCJTdHJDbXBcIixcbiAgICBcIlN0ckNtcFNcIixcbiAgICBcIlN0ckNweVwiLFxuICAgIFwiU3RyTGVuXCIsXG4gICAgXCJTdWJDYXB0aW9uXCIsXG4gICAgXCJVbmljb2RlXCIsXG4gICAgXCJVbmluc3RhbGxCdXR0b25UZXh0XCIsXG4gICAgXCJVbmluc3RhbGxDYXB0aW9uXCIsXG4gICAgXCJVbmluc3RhbGxJY29uXCIsXG4gICAgXCJVbmluc3RhbGxTdWJDYXB0aW9uXCIsXG4gICAgXCJVbmluc3RhbGxUZXh0XCIsXG4gICAgXCJVbmluc3RQYWdlXCIsXG4gICAgXCJVblJlZ0RMTFwiLFxuICAgIFwiVmFyXCIsXG4gICAgXCJWSUFkZFZlcnNpb25LZXlcIixcbiAgICBcIlZJRmlsZVZlcnNpb25cIixcbiAgICBcIlZJUHJvZHVjdFZlcnNpb25cIixcbiAgICBcIldpbmRvd0ljb25cIixcbiAgICBcIldyaXRlSU5JU3RyXCIsXG4gICAgXCJXcml0ZVJlZ0JpblwiLFxuICAgIFwiV3JpdGVSZWdEV09SRFwiLFxuICAgIFwiV3JpdGVSZWdFeHBhbmRTdHJcIixcbiAgICBcIldyaXRlUmVnTXVsdGlTdHJcIixcbiAgICBcIldyaXRlUmVnTm9uZVwiLFxuICAgIFwiV3JpdGVSZWdTdHJcIixcbiAgICBcIldyaXRlVW5pbnN0YWxsZXJcIixcbiAgICBcIlhQU3R5bGVcIlxuICBdO1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwiYWRtaW5cIixcbiAgICBcImFsbFwiLFxuICAgIFwiYXV0b1wiLFxuICAgIFwiYm90aFwiLFxuICAgIFwiYm90dG9tXCIsXG4gICAgXCJiemlwMlwiLFxuICAgIFwiY29sb3JlZFwiLFxuICAgIFwiY29tcG9uZW50c1wiLFxuICAgIFwiY3VycmVudFwiLFxuICAgIFwiY3VzdG9tXCIsXG4gICAgXCJkaXJlY3RvcnlcIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJmb3JjZVwiLFxuICAgIFwiaGlkZVwiLFxuICAgIFwiaGlnaGVzdFwiLFxuICAgIFwiaWZkaWZmXCIsXG4gICAgXCJpZm5ld2VyXCIsXG4gICAgXCJpbnN0ZmlsZXNcIixcbiAgICBcImxhc3R1c2VkXCIsXG4gICAgXCJsZWF2ZVwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwibGljZW5zZVwiLFxuICAgIFwibGlzdG9ubHlcIixcbiAgICBcImx6bWFcIixcbiAgICBcIm5ldmVyc2hvd1wiLFxuICAgIFwibm9uZVwiLFxuICAgIFwibm9ybWFsXCIsXG4gICAgXCJub3RzZXRcIixcbiAgICBcIm9mZlwiLFxuICAgIFwib25cIixcbiAgICBcIm9wZW5cIixcbiAgICBcInByaW50XCIsXG4gICAgXCJyaWdodFwiLFxuICAgIFwic2hvd1wiLFxuICAgIFwic2lsZW50XCIsXG4gICAgXCJzaWxlbnRsb2dcIixcbiAgICBcInNtb290aFwiLFxuICAgIFwidGV4dG9ubHlcIixcbiAgICBcInRvcFwiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ1bi5jb21wb25lbnRzXCIsXG4gICAgXCJ1bi5jdXN0b21cIixcbiAgICBcInVuLmRpcmVjdG9yeVwiLFxuICAgIFwidW4uaW5zdGZpbGVzXCIsXG4gICAgXCJ1bi5saWNlbnNlXCIsXG4gICAgXCJ1bmluc3RDb25maXJtXCIsXG4gICAgXCJ1c2VyXCIsXG4gICAgXCJXaW4xMFwiLFxuICAgIFwiV2luN1wiLFxuICAgIFwiV2luOFwiLFxuICAgIFwiV2luVmlzdGFcIixcbiAgICBcInpsaWJcIlxuICBdO1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9GdW5jdGlvbi8sXG4gICAgICAvXFxzKy8sXG4gICAgICByZWdleC5jb25jYXQoLyhcXC4pPy8sIGhsanMuSURFTlRfUkUpXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9XG4gIH07XG5cbiAgLy8gVmFyIEN1c3RvbS5WYXJpYWJsZS5OYW1lLkl0ZW1cbiAgLy8gVmFyIC9HTE9CQUwgQ3VzdG9tLlZhcmlhYmxlLk5hbWUuSXRlbVxuICBjb25zdCBWQVJJQUJMRV9OQU1FX1JFID0gL1tBLVphLXpdW1xcdy5dKi87XG4gIGNvbnN0IFZBUklBQkxFX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9WYXIvLFxuICAgICAgL1xccysvLFxuICAgICAgLyg/OlxcL0dMT0JBTFxccyspPy8sXG4gICAgICBWQVJJQUJMRV9OQU1FX1JFXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInBhcmFtc1wiLFxuICAgICAgNDogXCJ2YXJpYWJsZVwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ05TSVMnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICBWQVJJQUJMRV9ERUZJTklUSU9OLFxuICAgICAgRlVOQ1RJT05fREVGSU5JVElPTixcbiAgICAgIHsgYmVnaW5LZXl3b3JkczogJ0Z1bmN0aW9uIFBhZ2VFeCBTZWN0aW9uIFNlY3Rpb25Hcm91cCBGdW5jdGlvbkVuZCBTZWN0aW9uRW5kJywgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTVBJTEVSLFxuICAgICAgREVGSU5FUyxcbiAgICAgIFZBUklBQkxFUyxcbiAgICAgIExBTkdVQUdFUyxcbiAgICAgIFBBUkFNRVRFUlMsXG4gICAgICBQTFVHSU5TLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuc2lzO1xuIiwgIi8qXG5MYW5ndWFnZTogT2JqZWN0aXZlLUNcbkF1dGhvcjogVmFsZXJpaSBIaW9yYSA8dmFsZXJpaS5oaW9yYUBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEFuZ2VsIEcuIE9sbG9xdWkgPGFuZ2VsZ2FyY2lhLm1haWxAZ21haWwuY29tPiwgTWF0dCBEaWVwaG91c2UgPG1hdHRAZGllcGhvdXNlLmNvbT4sIEFuZHJldyBGYXJtZXIgPGFoZmFybWVyQGdtYWlsLmNvbT4sIE1pbmggTmd1eVx1MUVDNW4gPG14bkAxZWM1Lm9yZz5cbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL29iamVjdGl2ZWNcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIG9iamVjdGl2ZWMoaGxqcykge1xuICBjb25zdCBBUElfQ0xBU1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIGJlZ2luOiAnXFxcXGIoQVZ8Q0F8Q0Z8Q0d8Q0l8Q0x8Q018Q058Q1R8TUt8TVB8TVRLfE1UTHxOU3xTQ058U0t8VUl8V0t8WEMpXFxcXHcrJ1xuICB9O1xuICBjb25zdCBJREVOVElGSUVSX1JFID0gL1thLXpBLVpAXVthLXpBLVowLTlfXSovO1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImludFwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImNoYXJcIixcbiAgICBcInVuc2lnbmVkXCIsXG4gICAgXCJzaWduZWRcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJkb3VibGVcIixcbiAgICBcIndjaGFyX3RcIixcbiAgICBcInVuaWNoYXJcIixcbiAgICBcInZvaWRcIixcbiAgICBcImJvb2xcIixcbiAgICBcIkJPT0xcIixcbiAgICBcImlkfDBcIixcbiAgICBcIl9Cb29sXCJcbiAgXTtcbiAgY29uc3QgS1dTID0gW1xuICAgIFwid2hpbGVcIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwic2l6ZW9mXCIsXG4gICAgXCJ0eXBlZGVmXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJ2b2xhdGlsZVwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJtdXRhYmxlXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiZG9cIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiYXNtXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwiZXhwbGljaXRcIixcbiAgICBcInR5cGVuYW1lXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJpbmxpbmVcIixcbiAgICBcInJlYWRvbmx5XCIsXG4gICAgXCJhc3NpZ25cIixcbiAgICBcInJlYWR3cml0ZVwiLFxuICAgIFwic2VsZlwiLFxuICAgIFwiQHN5bmNocm9uaXplZFwiLFxuICAgIFwiaWRcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwibm9uYXRvbWljXCIsXG4gICAgXCJJQk91dGxldFwiLFxuICAgIFwiSUJBY3Rpb25cIixcbiAgICBcInN0cm9uZ1wiLFxuICAgIFwid2Vha1wiLFxuICAgIFwiY29weVwiLFxuICAgIFwiaW5cIixcbiAgICBcIm91dFwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImJ5Y29weVwiLFxuICAgIFwiYnlyZWZcIixcbiAgICBcIm9uZXdheVwiLFxuICAgIFwiX19zdHJvbmdcIixcbiAgICBcIl9fd2Vha1wiLFxuICAgIFwiX19ibG9ja1wiLFxuICAgIFwiX19hdXRvcmVsZWFzaW5nXCIsXG4gICAgXCJAcHJpdmF0ZVwiLFxuICAgIFwiQHByb3RlY3RlZFwiLFxuICAgIFwiQHB1YmxpY1wiLFxuICAgIFwiQHRyeVwiLFxuICAgIFwiQHByb3BlcnR5XCIsXG4gICAgXCJAZW5kXCIsXG4gICAgXCJAdGhyb3dcIixcbiAgICBcIkBjYXRjaFwiLFxuICAgIFwiQGZpbmFsbHlcIixcbiAgICBcIkBhdXRvcmVsZWFzZXBvb2xcIixcbiAgICBcIkBzeW50aGVzaXplXCIsXG4gICAgXCJAZHluYW1pY1wiLFxuICAgIFwiQHNlbGVjdG9yXCIsXG4gICAgXCJAb3B0aW9uYWxcIixcbiAgICBcIkByZXF1aXJlZFwiLFxuICAgIFwiQGVuY29kZVwiLFxuICAgIFwiQHBhY2thZ2VcIixcbiAgICBcIkBpbXBvcnRcIixcbiAgICBcIkBkZWZzXCIsXG4gICAgXCJAY29tcGF0aWJpbGl0eV9hbGlhc1wiLFxuICAgIFwiX19icmlkZ2VcIixcbiAgICBcIl9fYnJpZGdlX3RyYW5zZmVyXCIsXG4gICAgXCJfX2JyaWRnZV9yZXRhaW5lZFwiLFxuICAgIFwiX19icmlkZ2VfcmV0YWluXCIsXG4gICAgXCJfX2NvdmFyaWFudFwiLFxuICAgIFwiX19jb250cmF2YXJpYW50XCIsXG4gICAgXCJfX2tpbmRvZlwiLFxuICAgIFwiX05vbm51bGxcIixcbiAgICBcIl9OdWxsYWJsZVwiLFxuICAgIFwiX051bGxfdW5zcGVjaWZpZWRcIixcbiAgICBcIl9fRlVOQ1RJT05fX1wiLFxuICAgIFwiX19QUkVUVFlfRlVOQ1RJT05fX1wiLFxuICAgIFwiX19hdHRyaWJ1dGVfX1wiLFxuICAgIFwiZ2V0dGVyXCIsXG4gICAgXCJzZXR0ZXJcIixcbiAgICBcInJldGFpblwiLFxuICAgIFwidW5zYWZlX3VucmV0YWluZWRcIixcbiAgICBcIm5vbm51bGxcIixcbiAgICBcIm51bGxhYmxlXCIsXG4gICAgXCJudWxsX3Vuc3BlY2lmaWVkXCIsXG4gICAgXCJudWxsX3Jlc2V0dGFibGVcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJpbnN0YW5jZXR5cGVcIixcbiAgICBcIk5TX0RFU0lHTkFURURfSU5JVElBTElaRVJcIixcbiAgICBcIk5TX1VOQVZBSUxBQkxFXCIsXG4gICAgXCJOU19SRVFVSVJFU19TVVBFUlwiLFxuICAgIFwiTlNfUkVUVVJOU19JTk5FUl9QT0lOVEVSXCIsXG4gICAgXCJOU19JTkxJTkVcIixcbiAgICBcIk5TX0FWQUlMQUJMRVwiLFxuICAgIFwiTlNfREVQUkVDQVRFRFwiLFxuICAgIFwiTlNfRU5VTVwiLFxuICAgIFwiTlNfT1BUSU9OU1wiLFxuICAgIFwiTlNfU1dJRlRfVU5BVkFJTEFCTEVcIixcbiAgICBcIk5TX0FTU1VNRV9OT05OVUxMX0JFR0lOXCIsXG4gICAgXCJOU19BU1NVTUVfTk9OTlVMTF9FTkRcIixcbiAgICBcIk5TX1JFRklORURfRk9SX1NXSUZUXCIsXG4gICAgXCJOU19TV0lGVF9OQU1FXCIsXG4gICAgXCJOU19TV0lGVF9OT1RIUk9XXCIsXG4gICAgXCJOU19EVVJJTkdcIixcbiAgICBcIk5TX0hBTkRMRVJcIixcbiAgICBcIk5TX0VOREhBTkRMRVJcIixcbiAgICBcIk5TX1ZBTFVFUkVUVVJOXCIsXG4gICAgXCJOU19WT0lEUkVUVVJOXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwiRkFMU0VcIixcbiAgICBcIlRSVUVcIixcbiAgICBcIm5pbFwiLFxuICAgIFwiWUVTXCIsXG4gICAgXCJOT1wiLFxuICAgIFwiTlVMTFwiXG4gIF07XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImRpc3BhdGNoX29uY2VfdFwiLFxuICAgIFwiZGlzcGF0Y2hfcXVldWVfdFwiLFxuICAgIFwiZGlzcGF0Y2hfc3luY1wiLFxuICAgIFwiZGlzcGF0Y2hfYXN5bmNcIixcbiAgICBcImRpc3BhdGNoX29uY2VcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IFtcbiAgICAgIFwidGhpc1wiLFxuICAgICAgXCJzdXBlclwiXG4gICAgXSxcbiAgICAkcGF0dGVybjogSURFTlRJRklFUl9SRSxcbiAgICBrZXl3b3JkOiBLV1MsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICB0eXBlOiBUWVBFU1xuICB9O1xuICBjb25zdCBDTEFTU19LRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogSURFTlRJRklFUl9SRSxcbiAgICBrZXl3b3JkOiBbXG4gICAgICBcIkBpbnRlcmZhY2VcIixcbiAgICAgIFwiQGNsYXNzXCIsXG4gICAgICBcIkBwcm90b2NvbFwiLFxuICAgICAgXCJAaW1wbGVtZW50YXRpb25cIlxuICAgIF1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT2JqZWN0aXZlLUMnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdtbScsXG4gICAgICAnb2JqYycsXG4gICAgICAnb2JqLWMnLFxuICAgICAgJ29iai1jKysnLFxuICAgICAgJ29iamVjdGl2ZS1jKysnXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgQVBJX0NMQVNTLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdAXCInLFxuICAgICAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC8jXFxzKlthLXpdK1xcYi8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAgICAgJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lICdcbiAgICAgICAgICAgICsgJ3ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZScgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcXFxcXG4vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogLzwuKj8+LyxcbiAgICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJygnICsgQ0xBU1NfS0VZV09SRFMua2V5d29yZC5qb2luKCd8JykgKyAnKVxcXFxiJyxcbiAgICAgICAgZW5kOiAvKFxce3wkKS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBDTEFTU19LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcLicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvYmplY3RpdmVjO1xuIiwgIi8qXG5MYW5ndWFnZTogT0NhbWxcbkF1dGhvcjogTWVoZGkgRG9nZ3V5IDxtZWhkaUBkb2dndXkub3JnPlxuQ29udHJpYnV0b3JzOiBOaWNvbGFzIEJyYXVkLVNhbnRvbmkgPG5pY29sYXMuYnJhdWQtc2FudG9uaUBlbnMtY2FjaGFuLmZyPiwgTWlja2FlbCBEZWxhaGF5ZSA8bWlja2FlbC5kZWxhaGF5ZUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogT0NhbWwgbGFuZ3VhZ2UgZGVmaW5pdGlvbi5cbldlYnNpdGU6IGh0dHBzOi8vb2NhbWwub3JnXG5DYXRlZ29yeTogZnVuY3Rpb25hbFxuKi9cblxuZnVuY3Rpb24gb2NhbWwoaGxqcykge1xuICAvKiBtaXNzaW5nIHN1cHBvcnQgZm9yIGhlcmVkb2MtbGlrZSBzdHJpbmcgKE9DYW1sIDQuMC4yKykgKi9cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT0NhbWwnLFxuICAgIGFsaWFzZXM6IFsgJ21sJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1thLXpfXVxcXFx3KiE/JyxcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhbmQgYXMgYXNzZXJ0IGFzciBiZWdpbiBjbGFzcyBjb25zdHJhaW50IGRvIGRvbmUgZG93bnRvIGVsc2UgZW5kICdcbiAgICAgICAgKyAnZXhjZXB0aW9uIGV4dGVybmFsIGZvciBmdW4gZnVuY3Rpb24gZnVuY3RvciBpZiBpbiBpbmNsdWRlICdcbiAgICAgICAgKyAnaW5oZXJpdCEgaW5oZXJpdCBpbml0aWFsaXplciBsYW5kIGxhenkgbGV0IGxvciBsc2wgbHNyIGx4b3IgbWF0Y2ggbWV0aG9kIXwxMCBtZXRob2QgJ1xuICAgICAgICArICdtb2QgbW9kdWxlIG11dGFibGUgbmV3IG9iamVjdCBvZiBvcGVuISBvcGVuIG9yIHByaXZhdGUgcmVjIHNpZyBzdHJ1Y3QgJ1xuICAgICAgICArICd0aGVuIHRvIHRyeSB0eXBlIHZhbCEgdmFsIHZpcnR1YWwgd2hlbiB3aGlsZSB3aXRoICdcbiAgICAgICAgLyogY2FtbHA0ICovXG4gICAgICAgICsgJ3BhcnNlciB2YWx1ZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLyogYnVpbHQtaW4gdHlwZXMgKi9cbiAgICAgICAgJ2FycmF5IGJvb2wgYnl0ZXMgY2hhciBleG58NSBmbG9hdCBpbnQgaW50MzIgaW50NjQgbGlzdCBsYXp5X3R8NSBuYXRpdmVpbnR8NSBzdHJpbmcgdW5pdCAnXG4gICAgICAgIC8qIChzb21lKSB0eXBlcyBpbiBQZXJ2YXNpdmVzICovXG4gICAgICAgICsgJ2luX2NoYW5uZWwgb3V0X2NoYW5uZWwgcmVmJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcL3w+Pi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXFsoXFxcXHxcXFxcfCk/XFxcXF18XFxcXChcXFxcKScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ1xcXFwoXFxcXConLFxuICAgICAgICAnXFxcXCpcXFxcKScsXG4gICAgICAgIHsgY29udGFpbnM6IFsgJ3NlbGYnIF0gfVxuICAgICAgKSxcbiAgICAgIHsgLyogdHlwZSB2YXJpYWJsZSAqL1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ1xcJ1tBLVphLXpfXSg/IVxcJylbXFxcXHdcXCddKidcbiAgICAgICAgLyogdGhlIGdyYW1tYXIgaXMgYW1iaWd1b3VzIG9uIGhvdyAnYSdiIHNob3VsZCBiZSBpbnRlcnByZXRlZCBidXQgbm90IHRoZSBjb21waWxlciAqL1xuICAgICAgfSxcbiAgICAgIHsgLyogcG9seW1vcnBoaWMgdmFyaWFudCAqL1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdgW0EtWl1bXFxcXHdcXCddKidcbiAgICAgIH0sXG4gICAgICB7IC8qIG1vZHVsZSBvciBjb25zdHJ1Y3RvciAqL1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XFwnXSonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8qIGRvbid0IGNvbG9yIGlkZW50aWZpZXJzLCBidXQgc2FmZWx5IGNhdGNoIGFsbCBpZGVudGlmaWVycyB3aXRoICcgKi9cbiAgICAgICAgYmVnaW46ICdbYS16X11cXFxcdypcXCdbXFxcXHdcXCddKicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOlxuICAgICAgICAgICdcXFxcYigwW3hYXVthLWZBLUYwLTlfXStbTGxuXT98J1xuICAgICAgICAgICsgJzBbb09dWzAtN19dK1tMbG5dP3wnXG4gICAgICAgICAgKyAnMFtiQl1bMDFfXStbTGxuXT98J1xuICAgICAgICAgICsgJ1swLTldWzAtOV9dKihbTGxuXXwoXFxcXC5bMC05X10qKT8oW2VFXVstK10/WzAtOV9dKyk/KT8pJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogLy0+LyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvY2FtbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE9wZW5TQ0FEXG5BdXRob3I6IERhbiBQYW56YXJlbGxhIDxhbHNvZWxwQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBPcGVuU0NBRCBpcyBhIGxhbmd1YWdlIGZvciB0aGUgM0QgQ0FEIG1vZGVsaW5nIHNvZnR3YXJlIG9mIHRoZSBzYW1lIG5hbWUuXG5XZWJzaXRlOiBodHRwczovL3d3dy5vcGVuc2NhZC5vcmdcbkNhdGVnb3J5OiBzY2llbnRpZmljXG4qL1xuXG5mdW5jdGlvbiBvcGVuc2NhZChobGpzKSB7XG4gIGNvbnN0IFNQRUNJQUxfVkFSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ1xcXFwkKGZbYXNuXXx0fHZwW3J0ZF18Y2hpbGRyZW4pJ1xuICB9O1xuICBjb25zdCBMSVRFUkFMUyA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogJ2ZhbHNlfHRydWV8UEl8dW5kZWYnXG4gIH07XG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8oZS0/XFxcXGQrKT8nLCAvLyBhZGRzIDFlNSwgMWUtMTBcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgU1RSSU5HID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgaWxsZWdhbDogbnVsbCB9KTtcbiAgY29uc3QgUFJFUFJPID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdpbmNsdWRlIHVzZScgfSxcbiAgICBiZWdpbjogJ2luY2x1ZGV8dXNlIDwnLFxuICAgIGVuZDogJz4nXG4gIH07XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJyxcbiAgICBjb250YWluczogW1xuICAgICAgJ3NlbGYnLFxuICAgICAgTlVNQkVSUyxcbiAgICAgIFNUUklORyxcbiAgICAgIFNQRUNJQUxfVkFSUyxcbiAgICAgIExJVEVSQUxTXG4gICAgXVxuICB9O1xuICBjb25zdCBNT0RJRklFUlMgPSB7XG4gICAgYmVnaW46ICdbKiEjJV0nLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBGVU5DVElPTlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdtb2R1bGUgZnVuY3Rpb24nLFxuICAgIGVuZDogLz18XFx7LyxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TLFxuICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT3BlblNDQUQnLFxuICAgIGFsaWFzZXM6IFsgJ3NjYWQnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdmdW5jdGlvbiBtb2R1bGUgaW5jbHVkZSB1c2UgZm9yIGludGVyc2VjdGlvbl9mb3IgaWYgZWxzZSBcXFxcJScsXG4gICAgICBsaXRlcmFsOiAnZmFsc2UgdHJ1ZSBQSSB1bmRlZicsXG4gICAgICBidWlsdF9pbjogJ2NpcmNsZSBzcXVhcmUgcG9seWdvbiB0ZXh0IHNwaGVyZSBjdWJlIGN5bGluZGVyIHBvbHloZWRyb24gdHJhbnNsYXRlIHJvdGF0ZSBzY2FsZSByZXNpemUgbWlycm9yIG11bHRtYXRyaXggY29sb3Igb2Zmc2V0IGh1bGwgbWlua293c2tpIHVuaW9uIGRpZmZlcmVuY2UgaW50ZXJzZWN0aW9uIGFicyBzaWduIHNpbiBjb3MgdGFuIGFjb3MgYXNpbiBhdGFuIGF0YW4yIGZsb29yIHJvdW5kIGNlaWwgbG4gbG9nIHBvdyBzcXJ0IGV4cCByYW5kcyBtaW4gbWF4IGNvbmNhdCBsb29rdXAgc3RyIGNociBzZWFyY2ggdmVyc2lvbiB2ZXJzaW9uX251bSBub3JtIGNyb3NzIHBhcmVudF9tb2R1bGUgZWNobyBpbXBvcnQgaW1wb3J0X2R4ZiBkeGZfbGluZWFyX2V4dHJ1ZGUgbGluZWFyX2V4dHJ1ZGUgcm90YXRlX2V4dHJ1ZGUgc3VyZmFjZSBwcm9qZWN0aW9uIHJlbmRlciBjaGlsZHJlbiBkeGZfY3Jvc3MgZHhmX2RpbSBsZXQgYXNzaWduJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBOVU1CRVJTLFxuICAgICAgUFJFUFJPLFxuICAgICAgU1RSSU5HLFxuICAgICAgU1BFQ0lBTF9WQVJTLFxuICAgICAgTU9ESUZJRVJTLFxuICAgICAgRlVOQ1RJT05TXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9wZW5zY2FkO1xuIiwgIi8qXG5MYW5ndWFnZTogT3h5Z2VuZVxuQXV0aG9yOiBDYXJsbyBLb2sgPGNrQHJlbW9iamVjdHMuY29tPlxuRGVzY3JpcHRpb246IE94eWdlbmUgaXMgYnVpbHQgb24gdGhlIGZvdW5kYXRpb24gb2YgT2JqZWN0IFBhc2NhbCwgcmV2YW1wZWQgYW5kIGV4dGVuZGVkIHRvIGJlIGEgbW9kZXJuIGxhbmd1YWdlIGZvciB0aGUgdHdlbnR5LWZpcnN0IGNlbnR1cnkuXG5XZWJzaXRlOiBodHRwczovL3d3dy5lbGVtZW50c2NvbXBpbGVyLmNvbS9lbGVtZW50cy9kZWZhdWx0LmFzcHhcbkNhdGVnb3J5OiBidWlsZC1zeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIG94eWdlbmUoaGxqcykge1xuICBjb25zdCBPWFlHRU5FX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvXFwuP1xcdysvLFxuICAgIGtleXdvcmQ6XG4gICAgICAnYWJzdHJhY3QgYWRkIGFuZCBhcnJheSBhcyBhc2MgYXNwZWN0IGFzc2VtYmx5IGFzeW5jIGJlZ2luIGJyZWFrIGJsb2NrIGJ5IGNhc2UgY2xhc3MgY29uY2F0IGNvbnN0IGNvcHkgY29uc3RydWN0b3IgY29udGludWUgJ1xuICAgICAgKyAnY3JlYXRlIGRlZmF1bHQgZGVsZWdhdGUgZGVzYyBkaXN0aW5jdCBkaXYgZG8gZG93bnRvIGR5bmFtaWMgZWFjaCBlbHNlIGVtcHR5IGVuZCBlbnN1cmUgZW51bSBlcXVhbHMgZXZlbnQgZXhjZXB0IGV4aXQgZXh0ZW5zaW9uIGV4dGVybmFsIGZhbHNlICdcbiAgICAgICsgJ2ZpbmFsIGZpbmFsaXplIGZpbmFsaXplciBmaW5hbGx5IGZsYWdzIGZvciBmb3J3YXJkIGZyb20gZnVuY3Rpb24gZnV0dXJlIGdsb2JhbCBncm91cCBoYXMgaWYgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyBpbXBsaWVzIGluIGluZGV4IGluaGVyaXRlZCAnXG4gICAgICArICdpbmxpbmUgaW50ZXJmYWNlIGludG8gaW52YXJpYW50cyBpcyBpdGVyYXRvciBqb2luIGxvY2tlZCBsb2NraW5nIGxvb3AgbWF0Y2hpbmcgbWV0aG9kIG1vZCBtb2R1bGUgbmFtZXNwYWNlIG5lc3RlZCBuZXcgbmlsIG5vdCBub3RpZnkgbnVsbGFibGUgb2YgJ1xuICAgICAgKyAnb2xkIG9uIG9wZXJhdG9yIG9yIG9yZGVyIG91dCBvdmVycmlkZSBwYXJhbGxlbCBwYXJhbXMgcGFydGlhbCBwaW5uZWQgcHJpdmF0ZSBwcm9jZWR1cmUgcHJvcGVydHkgcHJvdGVjdGVkIHB1YmxpYyBxdWVyeWFibGUgcmFpc2UgcmVhZCByZWFkb25seSAnXG4gICAgICArICdyZWNvcmQgcmVpbnRyb2R1Y2UgcmVtb3ZlIHJlcGVhdCByZXF1aXJlIHJlc3VsdCByZXZlcnNlIHNlYWxlZCBzZWxlY3Qgc2VsZiBzZXF1ZW5jZSBzZXQgc2hsIHNociBza2lwIHN0YXRpYyBzdGVwIHNvZnQgdGFrZSB0aGVuIHRvIHRydWUgdHJ5IHR1cGxlICdcbiAgICAgICsgJ3R5cGUgdW5pb24gdW5pdCB1bnNhZmUgdW50aWwgdXNlcyB1c2luZyB2YXIgdmlydHVhbCByYWlzZXMgdm9sYXRpbGUgd2hlcmUgd2hpbGUgd2l0aCB3cml0ZSB4b3IgeWllbGQgYXdhaXQgbWFwcGVkIGRlcHJlY2F0ZWQgc3RkY2FsbCBjZGVjbCBwYXNjYWwgJ1xuICAgICAgKyAncmVnaXN0ZXIgc2FmZWNhbGwgb3ZlcmxvYWQgbGlicmFyeSBwbGF0Zm9ybSByZWZlcmVuY2UgcGFja2VkIHN0cmljdCBwdWJsaXNoZWQgYXV0b3JlbGVhc2Vwb29sIHNlbGVjdG9yIHN0cm9uZyB3ZWFrIHVucmV0YWluZWQnXG4gIH07XG4gIGNvbnN0IENVUkxZX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcey8sXG4gICAgL1xcfS8sXG4gICAgeyByZWxldmFuY2U6IDAgfVxuICApO1xuICBjb25zdCBQQVJFTl9DT01NRU5UID0gaGxqcy5DT01NRU5UKFxuICAgICdcXFxcKFxcXFwqJyxcbiAgICAnXFxcXCpcXFxcKScsXG4gICAgeyByZWxldmFuY2U6IDEwIH1cbiAgKTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXCcnLFxuICAgIGVuZDogJ1xcJycsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogJ1xcJ1xcJycgfSBdXG4gIH07XG4gIGNvbnN0IENIQVJfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICcoI1xcXFxkKykrJ1xuICB9O1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24gY29uc3RydWN0b3IgZGVzdHJ1Y3RvciBwcm9jZWR1cmUgbWV0aG9kJyxcbiAgICBlbmQ6ICdbOjtdJyxcbiAgICBrZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yfDEwIGRlc3RydWN0b3J8MTAgcHJvY2VkdXJlfDEwIG1ldGhvZHwxMCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgc2NvcGU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6IE9YWUdFTkVfS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIENIQVJfU1RSSU5HXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDVVJMWV9DT01NRU5ULFxuICAgICAgUEFSRU5fQ09NTUVOVFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBTRU1JQ09MT04gPSB7XG4gICAgc2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICBtYXRjaDogLzsvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ094eWdlbmUnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IE9YWUdFTkVfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJyhcInxcXFxcJFtHLVpnLXpdfFxcXFwvXFxcXCp8PC98PT58LT4pJyxcbiAgICBjb250YWluczogW1xuICAgICAgQ1VSTFlfQ09NTUVOVCxcbiAgICAgIFBBUkVOX0NPTU1FTlQsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBTVFJJTkcsXG4gICAgICBDSEFSX1NUUklORyxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBGVU5DVElPTixcbiAgICAgIFNFTUlDT0xPTlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBveHlnZW5lO1xuIiwgIi8qXG5MYW5ndWFnZTogUGFyc2VyM1xuUmVxdWlyZXM6IHhtbC5qc1xuQXV0aG9yOiBPbGVnIFZvbGNoa292IDxvbGVnQHZvbGNoa292Lm5ldD5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBhcnNlci5ydS9lbi9cbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuZnVuY3Rpb24gcGFyc2VyMyhobGpzKSB7XG4gIGNvbnN0IENVUkxZX1NVQkNPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcey8sXG4gICAgL1xcfS8sXG4gICAgeyBjb250YWluczogWyAnc2VsZicgXSB9XG4gICk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BhcnNlcjMnLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnXiMnLCAnJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvXFxecmVtXFx7LyxcbiAgICAgICAgL1xcfS8sXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIENVUkxZX1NVQkNPTU1FTlQgXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeQCg/OkJBU0V8VVNFfENMQVNTfE9QVElPTlMpJCcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdAW1xcXFx3XFxcXC1dK1xcXFxbW1xcXFx3XjtcXFxcLV0qXFxcXF0oPzpcXFxcW1tcXFxcd147XFxcXC1dKlxcXFxdKT8oPzouKikkJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogL1xcJFxcez9bXFx3XFwtLjpdK1xcfT8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC9cXF5bXFx3XFwtLjpdKy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXF4jWzAtOWEtZkEtRl0rJ1xuICAgICAgfSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZXIzO1xuIiwgIi8qXG5MYW5ndWFnZTogUGFja2V0IEZpbHRlciBjb25maWdcbkRlc2NyaXB0aW9uOiBwZi5jb25mIFx1MjAxNCBwYWNrZXQgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZmlsZSAoT3BlbkJTRClcbkF1dGhvcjogUGV0ZXIgUGl3b3dhcnNraSA8b2xkbGFwdG9wNjU0QGFvbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbWFuLm9wZW5ic2Qub3JnL3BmLmNvbmZcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbmZ1bmN0aW9uIHBmKGhsanMpIHtcbiAgY29uc3QgTUFDUk8gPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFwkW1xcd1xcZCNAXVtcXHdcXGRfXSovLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBUQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC88KD8hXFwvKS8sXG4gICAgZW5kOiAvPi9cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQYWNrZXQgRmlsdGVyIGNvbmZpZycsXG4gICAgYWxpYXNlczogWyAncGYuY29uZicgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bYS16MC05Xzw+LV0rLyxcbiAgICAgIGJ1aWx0X2luOiAvKiBibG9jayBtYXRjaCBwYXNzIGFyZSBcImFjdGlvbnNcIiBpbiBwZi5jb25mKDUpLCB0aGUgcmVzdCBhcmVcbiAgICAgICAgICAgICAgICAgKiBsZXhpY2FsbHkgc2ltaWxhciB0b3AtbGV2ZWwgY29tbWFuZHMuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICdibG9jayBtYXRjaCBwYXNzIGxvYWQgYW5jaG9yfDUgYW50aXNwb29mfDEwIHNldCB0YWJsZScsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnaW4gb3V0IGxvZyBxdWljayBvbiByZG9tYWluIGluZXQgaW5ldDYgcHJvdG8gZnJvbSBwb3J0IG9zIHRvIHJvdXRlICdcbiAgICAgICAgKyAnYWxsb3ctb3B0cyBkaXZlcnQtcGFja2V0IGRpdmVydC1yZXBseSBkaXZlcnQtdG8gZmxhZ3MgZ3JvdXAgaWNtcC10eXBlICdcbiAgICAgICAgKyAnaWNtcDYtdHlwZSBsYWJlbCBvbmNlIHByb2JhYmlsaXR5IHJlY2lldmVkLW9uIHJ0YWJsZSBwcmlvIHF1ZXVlICdcbiAgICAgICAgKyAndG9zIHRhZyB0YWdnZWQgdXNlciBrZWVwIGZyYWdtZW50IGZvciBvcyBkcm9wICdcbiAgICAgICAgKyAnYWYtdG98MTAgYmluYXQtdG98MTAgbmF0LXRvfDEwIHJkci10b3wxMCBiaXRtYXNrIGxlYXN0LXN0YXRzIHJhbmRvbSByb3VuZC1yb2JpbiAnXG4gICAgICAgICsgJ3NvdXJjZS1oYXNoIHN0YXRpYy1wb3J0ICdcbiAgICAgICAgKyAnZHVwLXRvIHJlcGx5LXRvIHJvdXRlLXRvICdcbiAgICAgICAgKyAncGFyZW50IGJhbmR3aWR0aCBkZWZhdWx0IG1pbiBtYXggcWxpbWl0ICdcbiAgICAgICAgKyAnYmxvY2stcG9saWN5IGRlYnVnIGZpbmdlcnByaW50cyBob3N0aWQgbGltaXQgbG9naW50ZXJmYWNlIG9wdGltaXphdGlvbiAnXG4gICAgICAgICsgJ3JlYXNzZW1ibGUgcnVsZXNldC1vcHRpbWl6YXRpb24gYmFzaWMgbm9uZSBwcm9maWxlIHNraXAgc3RhdGUtZGVmYXVsdHMgJ1xuICAgICAgICArICdzdGF0ZS1wb2xpY3kgdGltZW91dCAnXG4gICAgICAgICsgJ2NvbnN0IGNvdW50ZXJzIHBlcnNpc3QgJ1xuICAgICAgICArICdubyBtb2R1bGF0ZSBzeW5wcm94eSBzdGF0ZXw1IGZsb2F0aW5nIGlmLWJvdW5kIG5vLXN5bmMgcGZsb3d8MTAgc2xvcHB5ICdcbiAgICAgICAgKyAnc291cmNlLXRyYWNrIGdsb2JhbCBydWxlIG1heC1zcmMtbm9kZXMgbWF4LXNyYy1zdGF0ZXMgbWF4LXNyYy1jb25uICdcbiAgICAgICAgKyAnbWF4LXNyYy1jb25uLXJhdGUgb3ZlcmxvYWQgZmx1c2ggJ1xuICAgICAgICArICdzY3J1Ynw1IG1heC1tc3MgbWluLXR0bCBuby1kZnwxMCByYW5kb20taWQnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ2FsbCBhbnkgbm8tcm91dGUgc2VsZiB1cnBmLWZhaWxlZCBlZ3Jlc3N8NSB1bmtub3duJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIE1BQ1JPLFxuICAgICAgVEFCTEVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGY7XG4iLCAiLypcbkxhbmd1YWdlOiBQb3N0Z3JlU1FMIGFuZCBQTC9wZ1NRTFxuQXV0aG9yOiBFZ29yIFJvZ292IChlLnJvZ292QHBvc3RncmVzcHJvLnJ1KVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zcWwuaHRtbFxuRGVzY3JpcHRpb246XG4gICAgVGhpcyBsYW5ndWFnZSBpbmNvcnBvcmF0ZXMgYm90aCBQb3N0Z3JlU1FMIFNRTCBkaWFsZWN0IGFuZCBQTC9wZ1NRTCBsYW5ndWFnZS5cbiAgICBJdCBpcyBiYXNlZCBvbiBQb3N0Z3JlU1FMIHZlcnNpb24gMTEuIFNvbWUgbm90ZXM6XG4gICAgLSBUZXh0IGluIGRvdWJsZS1kb2xsYXItc3RyaW5ncyBpcyBfYWx3YXlzXyBpbnRlcnByZXRlZCBhcyBzb21lIHByb2dyYW1taW5nIGNvZGUuIFRleHRcbiAgICAgIGluIG9yZGluYXJ5IHF1b3RlcyBpcyBfbmV2ZXJfIGludGVycHJldGVkIHRoYXQgd2F5IGFuZCBoaWdobGlnaHRlZCBqdXN0IGFzIGEgc3RyaW5nLlxuICAgIC0gVGhlcmUgYXJlIHF1aXRlIGEgYml0IFwic3BlY2lhbCBjYXNlc1wiLiBUaGF0J3MgYmVjYXVzZSBtYW55IGtleXdvcmRzIGFyZSBub3Qgc3RyaWN0bHlcbiAgICAgIHRoZXkgYXJlIGtleXdvcmRzIGluIHNvbWUgY29udGV4dHMgYW5kIG9yZGluYXJ5IGlkZW50aWZpZXJzIGluIG90aGVycy4gT25seSBzb21lXG4gICAgICBvZiBzdWNoIGNhc2VzIGFyZSBoYW5kbGVkOyB5b3Ugc3RpbGwgY2FuIGdldCBzb21lIG9mIHlvdXIgaWRlbnRpZmllcnMgaGlnaGxpZ2h0ZWRcbiAgICAgIHdyb25nIHdheS5cbiAgICAtIEZ1bmN0aW9uIG5hbWVzIGRlbGliZXJhdGVseSBhcmUgbm90IGhpZ2hsaWdodGVkLiBUaGVyZSBpcyBubyB3YXkgdG8gdGVsbCBmdW5jdGlvblxuICAgICAgY2FsbCBmcm9tIG90aGVyIGNvbnN0cnVjdHMsIGhlbmNlIHdlIGNhbid0IGhpZ2hsaWdodCBfYWxsXyBmdW5jdGlvbiBuYW1lcy4gQW5kXG4gICAgICBzb21lIG5hbWVzIGhpZ2hsaWdodGVkIHdoaWxlIG90aGVycyBub3QgbG9va3MgdWdseS5cbkNhdGVnb3J5OiBkYXRhYmFzZVxuKi9cblxuZnVuY3Rpb24gcGdzcWwoaGxqcykge1xuICBjb25zdCBDT01NRU5UX01PREUgPSBobGpzLkNPTU1FTlQoJy0tJywgJyQnKTtcbiAgY29uc3QgVU5RVU9URURfSURFTlQgPSAnW2EtekEtWl9dW2EtekEtWl8wLTkkXSonO1xuICBjb25zdCBET0xMQVJfU1RSSU5HID0gJ1xcXFwkKFthLXpBLVpfXT98W2EtekEtWl9dW2EtekEtWl8wLTldKilcXFxcJCc7XG4gIGNvbnN0IExBQkVMID0gJzw8XFxcXHMqJyArIFVOUVVPVEVEX0lERU5UICsgJ1xcXFxzKj4+JztcblxuICBjb25zdCBTUUxfS1cgPVxuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL3NxbC1rZXl3b3Jkcy1hcHBlbmRpeC5odG1sXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvc3FsLWNvbW1hbmRzLmh0bWxcbiAgICAvLyBTUUwgY29tbWFuZHMgKHN0YXJ0aW5nIHdvcmRzKVxuICAgICdBQk9SVCBBTFRFUiBBTkFMWVpFIEJFR0lOIENBTEwgQ0hFQ0tQT0lOVHwxMCBDTE9TRSBDTFVTVEVSIENPTU1FTlQgQ09NTUlUIENPUFkgQ1JFQVRFIERFQUxMT0NBVEUgREVDTEFSRSAnXG4gICAgKyAnREVMRVRFIERJU0NBUkQgRE8gRFJPUCBFTkQgRVhFQ1VURSBFWFBMQUlOIEZFVENIIEdSQU5UIElNUE9SVCBJTlNFUlQgTElTVEVOIExPQUQgTE9DSyBNT1ZFIE5PVElGWSAnXG4gICAgKyAnUFJFUEFSRSBSRUFTU0lHTnwxMCBSRUZSRVNIIFJFSU5ERVggUkVMRUFTRSBSRVNFVCBSRVZPS0UgUk9MTEJBQ0sgU0FWRVBPSU5UIFNFQ1VSSVRZIFNFTEVDVCBTRVQgU0hPVyAnXG4gICAgKyAnU1RBUlQgVFJVTkNBVEUgVU5MSVNURU58MTAgVVBEQVRFIFZBQ1VVTXwxMCBWQUxVRVMgJ1xuICAgIC8vIFNRTCBjb21tYW5kcyAob3RoZXJzKVxuICAgICsgJ0FHR1JFR0FURSBDT0xMQVRJT04gQ09OVkVSU0lPTnwxMCBEQVRBQkFTRSBERUZBVUxUIFBSSVZJTEVHRVMgRE9NQUlOIFRSSUdHRVIgRVhURU5TSU9OIEZPUkVJR04gJ1xuICAgICsgJ1dSQVBQRVJ8MTAgVEFCTEUgRlVOQ1RJT04gR1JPVVAgTEFOR1VBR0UgTEFSR0UgT0JKRUNUIE1BVEVSSUFMSVpFRCBWSUVXIE9QRVJBVE9SIENMQVNTICdcbiAgICArICdGQU1JTFkgUE9MSUNZIFBVQkxJQ0FUSU9OfDEwIFJPTEUgUlVMRSBTQ0hFTUEgU0VRVUVOQ0UgU0VSVkVSIFNUQVRJU1RJQ1MgU1VCU0NSSVBUSU9OIFNZU1RFTSAnXG4gICAgKyAnVEFCTEVTUEFDRSBDT05GSUdVUkFUSU9OIERJQ1RJT05BUlkgUEFSU0VSIFRFTVBMQVRFIFRZUEUgVVNFUiBNQVBQSU5HIFBSRVBBUkVEIEFDQ0VTUyAnXG4gICAgKyAnTUVUSE9EIENBU1QgQVMgVFJBTlNGT1JNIFRSQU5TQUNUSU9OIE9XTkVEIFRPIElOVE8gU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdcbiAgICArICdJTkRFWCBQUk9DRURVUkUgQVNTRVJUSU9OICdcbiAgICAvLyBhZGRpdGlvbmFsIHJlc2VydmVkIGtleSB3b3Jkc1xuICAgICsgJ0FMTCBBTkFMWVNFIEFORCBBTlkgQVJSQVkgQVNDIEFTWU1NRVRSSUN8MTAgQk9USCBDQVNFIENIRUNLICdcbiAgICArICdDT0xMQVRFIENPTFVNTiBDT05DVVJSRU5UTFl8MTAgQ09OU1RSQUlOVCBDUk9TUyAnXG4gICAgKyAnREVGRVJSQUJMRSBSQU5HRSAnXG4gICAgKyAnREVTQyBESVNUSU5DVCBFTFNFIEVYQ0VQVCBGT1IgRlJFRVpFfDEwIEZST00gRlVMTCBIQVZJTkcgJ1xuICAgICsgJ0lMSUtFIElOIElOSVRJQUxMWSBJTk5FUiBJTlRFUlNFQ1QgSVMgSVNOVUxMIEpPSU4gTEFURVJBTCBMRUFESU5HIExJS0UgTElNSVQgJ1xuICAgICsgJ05BVFVSQUwgTk9UIE5PVE5VTEwgTlVMTCBPRkZTRVQgT04gT05MWSBPUiBPUkRFUiBPVVRFUiBPVkVSTEFQUyBQTEFDSU5HIFBSSU1BUlkgJ1xuICAgICsgJ1JFRkVSRU5DRVMgUkVUVVJOSU5HIFNJTUlMQVIgU09NRSBTWU1NRVRSSUMgVEFCTEVTQU1QTEUgVEhFTiAnXG4gICAgKyAnVFJBSUxJTkcgVU5JT04gVU5JUVVFIFVTSU5HIFZBUklBRElDfDEwIFZFUkJPU0UgV0hFTiBXSEVSRSBXSU5ET1cgV0lUSCAnXG4gICAgLy8gc29tZSBvZiBub24tcmVzZXJ2ZWQgKHdoaWNoIGFyZSB1c2VkIGluIGNsYXVzZXMgb3IgYXMgUEwvcGdTUUwga2V5d29yZClcbiAgICArICdCWSBSRVRVUk5TIElOT1VUIE9VVCBTRVRPRnwxMCBJRiBTVFJJQ1QgQ1VSUkVOVCBDT05USU5VRSBPV05FUiBMT0NBVElPTiBPVkVSIFBBUlRJVElPTiBXSVRISU4gJ1xuICAgICsgJ0JFVFdFRU4gRVNDQVBFIEVYVEVSTkFMIElOVk9LRVIgREVGSU5FUiBXT1JLIFJFTkFNRSBWRVJTSU9OIENPTk5FQ1RJT04gQ09OTkVDVCAnXG4gICAgKyAnVEFCTEVTIFRFTVAgVEVNUE9SQVJZIEZVTkNUSU9OUyBTRVFVRU5DRVMgVFlQRVMgU0NIRU1BUyBPUFRJT04gQ0FTQ0FERSBSRVNUUklDVCBBREQgQURNSU4gJ1xuICAgICsgJ0VYSVNUUyBWQUxJRCBWQUxJREFURSBFTkFCTEUgRElTQUJMRSBSRVBMSUNBfDEwIEFMV0FZUyBQQVNTSU5HIENPTFVNTlMgUEFUSCAnXG4gICAgKyAnUkVGIFZBTFVFIE9WRVJSSURJTkcgSU1NVVRBQkxFIFNUQUJMRSBWT0xBVElMRSBCRUZPUkUgQUZURVIgRUFDSCBST1cgUFJPQ0VEVVJBTCAnXG4gICAgKyAnUk9VVElORSBOTyBIQU5ETEVSIFZBTElEQVRPUiBPUFRJT05TIFNUT1JBR0UgT0lEU3wxMCBXSVRIT1VUIElOSEVSSVQgREVQRU5EUyBDQUxMRUQgJ1xuICAgICsgJ0lOUFVUIExFQUtQUk9PRnwxMCBDT1NUIFJPV1MgTk9XQUlUIFNFQVJDSCBVTlRJTCBFTkNSWVBURUR8MTAgUEFTU1dPUkQgQ09ORkxJQ1R8MTAgJ1xuICAgICsgJ0lOU1RFQUQgSU5IRVJJVFMgQ0hBUkFDVEVSSVNUSUNTIFdSSVRFIENVUlNPUiBBTFNPIFNUQVRFTUVOVCBTSEFSRSBFWENMVVNJVkUgSU5MSU5FICdcbiAgICArICdJU09MQVRJT04gUkVQRUFUQUJMRSBSRUFEIENPTU1JVFRFRCBTRVJJQUxJWkFCTEUgVU5DT01NSVRURUQgTE9DQUwgR0xPQkFMIFNRTCBQUk9DRURVUkVTICdcbiAgICArICdSRUNVUlNJVkUgU05BUFNIT1QgUk9MTFVQIENVQkUgVFJVU1RFRHwxMCBJTkNMVURFIEZPTExPV0lORyBQUkVDRURJTkcgVU5CT1VOREVEIFJBTkdFIEdST1VQUyAnXG4gICAgKyAnVU5FTkNSWVBURUR8MTAgU1lTSUQgRk9STUFUIERFTElNSVRFUiBIRUFERVIgUVVPVEUgRU5DT0RJTkcgRklMVEVSIE9GRiAnXG4gICAgLy8gc29tZSBwYXJhbWV0ZXJzIG9mIFZBQ1VVTS9BTkFMWVpFL0VYUExBSU5cbiAgICArICdGT1JDRV9RVU9URSBGT1JDRV9OT1RfTlVMTCBGT1JDRV9OVUxMIENPU1RTIEJVRkZFUlMgVElNSU5HIFNVTU1BUlkgRElTQUJMRV9QQUdFX1NLSVBQSU5HICdcbiAgICAvL1xuICAgICsgJ1JFU1RBUlQgQ1lDTEUgR0VORVJBVEVEIElERU5USVRZIERFRkVSUkVEIElNTUVESUFURSBMRVZFTCBMT0dHRUQgVU5MT0dHRUQgJ1xuICAgICsgJ09GIE5PVEhJTkcgTk9ORSBFWENMVURFIEFUVFJJQlVURSAnXG4gICAgLy8gZnJvbSBHUkFOVCAobm90IGtleXdvcmRzIGFjdHVhbGx5KVxuICAgICsgJ1VTQUdFIFJPVVRJTkVTICdcbiAgICAvLyBhY3R1YWxseSBsaXRlcmFscywgYnV0IGxvb2sgYmV0dGVyIHRoaXMgd2F5IChkdWUgdG8gSVMgVFJVRSwgSVMgRkFMU0UsIElTTlVMTCBldGMpXG4gICAgKyAnVFJVRSBGQUxTRSBOQU4gSU5GSU5JVFkgJztcblxuICBjb25zdCBST0xFX0FUVFJTID0gLy8gb25seSB0aG9zZSBub3QgaW4ga2V5d3JvZHMgYWxyZWFkeVxuICAgICdTVVBFUlVTRVIgTk9TVVBFUlVTRVIgQ1JFQVRFREIgTk9DUkVBVEVEQiBDUkVBVEVST0xFIE5PQ1JFQVRFUk9MRSBJTkhFUklUIE5PSU5IRVJJVCAnXG4gICAgKyAnTE9HSU4gTk9MT0dJTiBSRVBMSUNBVElPTiBOT1JFUExJQ0FUSU9OIEJZUEFTU1JMUyBOT0JZUEFTU1JMUyAnO1xuXG4gIGNvbnN0IFBMUEdTUUxfS1cgPVxuICAgICdBTElBUyBCRUdJTiBDT05TVEFOVCBERUNMQVJFIEVORCBFWENFUFRJT04gUkVUVVJOIFBFUkZPUk18MTAgUkFJU0UgR0VUIERJQUdOT1NUSUNTICdcbiAgICArICdTVEFDS0VEfDEwIEZPUkVBQ0ggTE9PUCBFTFNJRiBFWElUIFdISUxFIFJFVkVSU0UgU0xJQ0UgREVCVUcgTE9HIElORk8gTk9USUNFIFdBUk5JTkcgQVNTRVJUICdcbiAgICArICdPUEVOICc7XG5cbiAgY29uc3QgVFlQRVMgPVxuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2RhdGF0eXBlLmh0bWxcbiAgICAnQklHSU5UIElOVDggQklHU0VSSUFMIFNFUklBTDggQklUIFZBUllJTkcgVkFSQklUIEJPT0xFQU4gQk9PTCBCT1ggQllURUEgQ0hBUkFDVEVSIENIQVIgVkFSQ0hBUiAnXG4gICAgKyAnQ0lEUiBDSVJDTEUgREFURSBET1VCTEUgUFJFQ0lTSU9OIEZMT0FUOCBGTE9BVCBJTkVUIElOVEVHRVIgSU5UIElOVDQgSU5URVJWQUwgSlNPTiBKU09OQiBMSU5FIExTRUd8MTAgJ1xuICAgICsgJ01BQ0FERFIgTUFDQUREUjggTU9ORVkgTlVNRVJJQyBERUMgREVDSU1BTCBQQVRIIFBPSU5UIFBPTFlHT04gUkVBTCBGTE9BVDQgU01BTExJTlQgSU5UMiAnXG4gICAgKyAnU01BTExTRVJJQUx8MTAgU0VSSUFMMnwxMCBTRVJJQUx8MTAgU0VSSUFMNHwxMCBURVhUIFRJTUUgWk9ORSBUSU1FVFp8MTAgVElNRVNUQU1QIFRJTUVTVEFNUFRafDEwIFRTUVVFUll8MTAgVFNWRUNUT1J8MTAgJ1xuICAgICsgJ1RYSURfU05BUFNIT1R8MTAgVVVJRCBYTUwgTkFUSU9OQUwgTkNIQVIgJ1xuICAgICsgJ0lOVDRSQU5HRXwxMCBJTlQ4UkFOR0V8MTAgTlVNUkFOR0V8MTAgVFNSQU5HRXwxMCBUU1RaUkFOR0V8MTAgREFURVJBTkdFfDEwICdcbiAgICAvLyBwc2V1ZG90eXBlc1xuICAgICsgJ0FOWUVMRU1FTlQgQU5ZQVJSQVkgQU5ZTk9OQVJSQVkgQU5ZRU5VTSBBTllSQU5HRSBDU1RSSU5HIElOVEVSTkFMICdcbiAgICArICdSRUNPUkQgUEdfRERMX0NPTU1BTkQgVk9JRCBVTktOT1dOIE9QQVFVRSBSRUZDVVJTT1IgJ1xuICAgIC8vIHNwZWMuIHR5cGVcbiAgICArICdOQU1FICdcbiAgICAvLyBPSUQtdHlwZXNcbiAgICArICdPSUQgUkVHUFJPQ3wxMCBSRUdQUk9DRURVUkV8MTAgUkVHT1BFUnwxMCBSRUdPUEVSQVRPUnwxMCBSRUdDTEFTU3wxMCBSRUdUWVBFfDEwIFJFR1JPTEV8MTAgJ1xuICAgICsgJ1JFR05BTUVTUEFDRXwxMCBSRUdDT05GSUd8MTAgUkVHRElDVElPTkFSWXwxMCAnOy8vICtcblxuICBjb25zdCBUWVBFU19SRSA9XG4gICAgVFlQRVMudHJpbSgpXG4gICAgICAuc3BsaXQoJyAnKVxuICAgICAgLm1hcChmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC5zcGxpdCgnfCcpWzBdOyB9KVxuICAgICAgLmpvaW4oJ3wnKTtcblxuICBjb25zdCBTUUxfQkkgPVxuICAgICdDVVJSRU5UX1RJTUUgQ1VSUkVOVF9USU1FU1RBTVAgQ1VSUkVOVF9VU0VSIENVUlJFTlRfQ0FUQUxPR3wxMCBDVVJSRU5UX0RBVEUgTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QICdcbiAgICArICdDVVJSRU5UX1JPTEV8MTAgQ1VSUkVOVF9TQ0hFTUF8MTAgU0VTU0lPTl9VU0VSIFBVQkxJQyAnO1xuXG4gIGNvbnN0IFBMUEdTUUxfQkkgPVxuICAgICdGT1VORCBORVcgT0xEIFRHX05BTUV8MTAgVEdfV0hFTnwxMCBUR19MRVZFTHwxMCBUR19PUHwxMCBUR19SRUxJRHwxMCBUR19SRUxOQU1FfDEwICdcbiAgICArICdUR19UQUJMRV9OQU1FfDEwIFRHX1RBQkxFX1NDSEVNQXwxMCBUR19OQVJHU3wxMCBUR19BUkdWfDEwIFRHX0VWRU5UfDEwIFRHX1RBR3wxMCAnXG4gICAgLy8gZ2V0IGRpYWdub3N0aWNzXG4gICAgKyAnUk9XX0NPVU5UIFJFU1VMVF9PSUR8MTAgUEdfQ09OVEVYVHwxMCBSRVRVUk5FRF9TUUxTVEFURSBDT0xVTU5fTkFNRSBDT05TVFJBSU5UX05BTUUgJ1xuICAgICsgJ1BHX0RBVEFUWVBFX05BTUV8MTAgTUVTU0FHRV9URVhUIFRBQkxFX05BTUUgU0NIRU1BX05BTUUgUEdfRVhDRVBUSU9OX0RFVEFJTHwxMCAnXG4gICAgKyAnUEdfRVhDRVBUSU9OX0hJTlR8MTAgUEdfRVhDRVBUSU9OX0NPTlRFWFR8MTAgJztcblxuICBjb25zdCBQTFBHU1FMX0VYQ0VQVElPTlMgPVxuICAgIC8vIGV4Y2VwdGlvbnMgaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3N0YXRpYy9lcnJjb2Rlcy1hcHBlbmRpeC5odG1sXG4gICAgJ1NRTFNUQVRFIFNRTEVSUk18MTAgJ1xuICAgICsgJ1NVQ0NFU1NGVUxfQ09NUExFVElPTiBXQVJOSU5HIERZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgSU1QTElDSVRfWkVST19CSVRfUEFERElORyAnXG4gICAgKyAnTlVMTF9WQUxVRV9FTElNSU5BVEVEX0lOX1NFVF9GVU5DVElPTiBQUklWSUxFR0VfTk9UX0dSQU5URUQgUFJJVklMRUdFX05PVF9SRVZPS0VEICdcbiAgICArICdTVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OIERFUFJFQ0FURURfRkVBVFVSRSBOT19EQVRBIE5PX0FERElUSU9OQUxfRFlOQU1JQ19SRVNVTFRfU0VUU19SRVRVUk5FRCAnXG4gICAgKyAnU1FMX1NUQVRFTUVOVF9OT1RfWUVUX0NPTVBMRVRFIENPTk5FQ1RJT05fRVhDRVBUSU9OIENPTk5FQ1RJT05fRE9FU19OT1RfRVhJU1QgQ09OTkVDVElPTl9GQUlMVVJFICdcbiAgICArICdTUUxDTElFTlRfVU5BQkxFX1RPX0VTVEFCTElTSF9TUUxDT05ORUNUSU9OIFNRTFNFUlZFUl9SRUpFQ1RFRF9FU1RBQkxJU0hNRU5UX09GX1NRTENPTk5FQ1RJT04gJ1xuICAgICsgJ1RSQU5TQUNUSU9OX1JFU09MVVRJT05fVU5LTk9XTiBQUk9UT0NPTF9WSU9MQVRJT04gVFJJR0dFUkVEX0FDVElPTl9FWENFUFRJT04gRkVBVFVSRV9OT1RfU1VQUE9SVEVEICdcbiAgICArICdJTlZBTElEX1RSQU5TQUNUSU9OX0lOSVRJQVRJT04gTE9DQVRPUl9FWENFUFRJT04gSU5WQUxJRF9MT0NBVE9SX1NQRUNJRklDQVRJT04gSU5WQUxJRF9HUkFOVE9SICdcbiAgICArICdJTlZBTElEX0dSQU5UX09QRVJBVElPTiBJTlZBTElEX1JPTEVfU1BFQ0lGSUNBVElPTiBESUFHTk9TVElDU19FWENFUFRJT04gJ1xuICAgICsgJ1NUQUNLRURfRElBR05PU1RJQ1NfQUNDRVNTRURfV0lUSE9VVF9BQ1RJVkVfSEFORExFUiBDQVNFX05PVF9GT1VORCBDQVJESU5BTElUWV9WSU9MQVRJT04gJ1xuICAgICsgJ0RBVEFfRVhDRVBUSU9OIEFSUkFZX1NVQlNDUklQVF9FUlJPUiBDSEFSQUNURVJfTk9UX0lOX1JFUEVSVE9JUkUgREFURVRJTUVfRklFTERfT1ZFUkZMT1cgJ1xuICAgICsgJ0RJVklTSU9OX0JZX1pFUk8gRVJST1JfSU5fQVNTSUdOTUVOVCBFU0NBUEVfQ0hBUkFDVEVSX0NPTkZMSUNUIElORElDQVRPUl9PVkVSRkxPVyAnXG4gICAgKyAnSU5URVJWQUxfRklFTERfT1ZFUkZMT1cgSU5WQUxJRF9BUkdVTUVOVF9GT1JfTE9HQVJJVEhNIElOVkFMSURfQVJHVU1FTlRfRk9SX05USUxFX0ZVTkNUSU9OICdcbiAgICArICdJTlZBTElEX0FSR1VNRU5UX0ZPUl9OVEhfVkFMVUVfRlVOQ1RJT04gSU5WQUxJRF9BUkdVTUVOVF9GT1JfUE9XRVJfRlVOQ1RJT04gJ1xuICAgICsgJ0lOVkFMSURfQVJHVU1FTlRfRk9SX1dJRFRIX0JVQ0tFVF9GVU5DVElPTiBJTlZBTElEX0NIQVJBQ1RFUl9WQUxVRV9GT1JfQ0FTVCAnXG4gICAgKyAnSU5WQUxJRF9EQVRFVElNRV9GT1JNQVQgSU5WQUxJRF9FU0NBUEVfQ0hBUkFDVEVSIElOVkFMSURfRVNDQVBFX09DVEVUIElOVkFMSURfRVNDQVBFX1NFUVVFTkNFICdcbiAgICArICdOT05TVEFOREFSRF9VU0VfT0ZfRVNDQVBFX0NIQVJBQ1RFUiBJTlZBTElEX0lORElDQVRPUl9QQVJBTUVURVJfVkFMVUUgSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUgJ1xuICAgICsgJ0lOVkFMSURfUkVHVUxBUl9FWFBSRVNTSU9OIElOVkFMSURfUk9XX0NPVU5UX0lOX0xJTUlUX0NMQVVTRSAnXG4gICAgKyAnSU5WQUxJRF9ST1dfQ09VTlRfSU5fUkVTVUxUX09GRlNFVF9DTEFVU0UgSU5WQUxJRF9UQUJMRVNBTVBMRV9BUkdVTUVOVCBJTlZBTElEX1RBQkxFU0FNUExFX1JFUEVBVCAnXG4gICAgKyAnSU5WQUxJRF9USU1FX1pPTkVfRElTUExBQ0VNRU5UX1ZBTFVFIElOVkFMSURfVVNFX09GX0VTQ0FQRV9DSEFSQUNURVIgTU9TVF9TUEVDSUZJQ19UWVBFX01JU01BVENIICdcbiAgICArICdOVUxMX1ZBTFVFX05PVF9BTExPV0VEIE5VTExfVkFMVUVfTk9fSU5ESUNBVE9SX1BBUkFNRVRFUiBOVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSAnXG4gICAgKyAnU0VRVUVOQ0VfR0VORVJBVE9SX0xJTUlUX0VYQ0VFREVEIFNUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRDSCBTVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OICdcbiAgICArICdTVUJTVFJJTkdfRVJST1IgVFJJTV9FUlJPUiBVTlRFUk1JTkFURURfQ19TVFJJTkcgWkVST19MRU5HVEhfQ0hBUkFDVEVSX1NUUklORyAnXG4gICAgKyAnRkxPQVRJTkdfUE9JTlRfRVhDRVBUSU9OIElOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiBJTlZBTElEX0JJTkFSWV9SRVBSRVNFTlRBVElPTiAnXG4gICAgKyAnQkFEX0NPUFlfRklMRV9GT1JNQVQgVU5UUkFOU0xBVEFCTEVfQ0hBUkFDVEVSIE5PVF9BTl9YTUxfRE9DVU1FTlQgSU5WQUxJRF9YTUxfRE9DVU1FTlQgJ1xuICAgICsgJ0lOVkFMSURfWE1MX0NPTlRFTlQgSU5WQUxJRF9YTUxfQ09NTUVOVCBJTlZBTElEX1hNTF9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICdcbiAgICArICdJTlRFR1JJVFlfQ09OU1RSQUlOVF9WSU9MQVRJT04gUkVTVFJJQ1RfVklPTEFUSU9OIE5PVF9OVUxMX1ZJT0xBVElPTiBGT1JFSUdOX0tFWV9WSU9MQVRJT04gJ1xuICAgICsgJ1VOSVFVRV9WSU9MQVRJT04gQ0hFQ0tfVklPTEFUSU9OIEVYQ0xVU0lPTl9WSU9MQVRJT04gSU5WQUxJRF9DVVJTT1JfU1RBVEUgJ1xuICAgICsgJ0lOVkFMSURfVFJBTlNBQ1RJT05fU1RBVEUgQUNUSVZFX1NRTF9UUkFOU0FDVElPTiBCUkFOQ0hfVFJBTlNBQ1RJT05fQUxSRUFEWV9BQ1RJVkUgJ1xuICAgICsgJ0hFTERfQ1VSU09SX1JFUVVJUkVTX1NBTUVfSVNPTEFUSU9OX0xFVkVMIElOQVBQUk9QUklBVEVfQUNDRVNTX01PREVfRk9SX0JSQU5DSF9UUkFOU0FDVElPTiAnXG4gICAgKyAnSU5BUFBST1BSSUFURV9JU09MQVRJT05fTEVWRUxfRk9SX0JSQU5DSF9UUkFOU0FDVElPTiAnXG4gICAgKyAnTk9fQUNUSVZFX1NRTF9UUkFOU0FDVElPTl9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIFJFQURfT05MWV9TUUxfVFJBTlNBQ1RJT04gJ1xuICAgICsgJ1NDSEVNQV9BTkRfREFUQV9TVEFURU1FTlRfTUlYSU5HX05PVF9TVVBQT1JURUQgTk9fQUNUSVZFX1NRTF9UUkFOU0FDVElPTiAnXG4gICAgKyAnSU5fRkFJTEVEX1NRTF9UUkFOU0FDVElPTiBJRExFX0lOX1RSQU5TQUNUSU9OX1NFU1NJT05fVElNRU9VVCBJTlZBTElEX1NRTF9TVEFURU1FTlRfTkFNRSAnXG4gICAgKyAnVFJJR0dFUkVEX0RBVEFfQ0hBTkdFX1ZJT0xBVElPTiBJTlZBTElEX0FVVEhPUklaQVRJT05fU1BFQ0lGSUNBVElPTiBJTlZBTElEX1BBU1NXT1JEICdcbiAgICArICdERVBFTkRFTlRfUFJJVklMRUdFX0RFU0NSSVBUT1JTX1NUSUxMX0VYSVNUIERFUEVOREVOVF9PQkpFQ1RTX1NUSUxMX0VYSVNUICdcbiAgICArICdJTlZBTElEX1RSQU5TQUNUSU9OX1RFUk1JTkFUSU9OIFNRTF9ST1VUSU5FX0VYQ0VQVElPTiBGVU5DVElPTl9FWEVDVVRFRF9OT19SRVRVUk5fU1RBVEVNRU5UICdcbiAgICArICdNT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBQUk9ISUJJVEVEX1NRTF9TVEFURU1FTlRfQVRURU1QVEVEICdcbiAgICArICdSRUFESU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgSU5WQUxJRF9DVVJTT1JfTkFNRSBFWFRFUk5BTF9ST1VUSU5FX0VYQ0VQVElPTiAnXG4gICAgKyAnQ09OVEFJTklOR19TUUxfTk9UX1BFUk1JVFRFRCBNT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCAnXG4gICAgKyAnUFJPSElCSVRFRF9TUUxfU1RBVEVNRU5UX0FUVEVNUFRFRCBSRUFESU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgJ1xuICAgICsgJ0VYVEVSTkFMX1JPVVRJTkVfSU5WT0NBVElPTl9FWENFUFRJT04gSU5WQUxJRF9TUUxTVEFURV9SRVRVUk5FRCBOVUxMX1ZBTFVFX05PVF9BTExPV0VEICdcbiAgICArICdUUklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEIFNSRl9QUk9UT0NPTF9WSU9MQVRFRCBFVkVOVF9UUklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEICdcbiAgICArICdTQVZFUE9JTlRfRVhDRVBUSU9OIElOVkFMSURfU0FWRVBPSU5UX1NQRUNJRklDQVRJT04gSU5WQUxJRF9DQVRBTE9HX05BTUUgJ1xuICAgICsgJ0lOVkFMSURfU0NIRU1BX05BTUUgVFJBTlNBQ1RJT05fUk9MTEJBQ0sgVFJBTlNBQ1RJT05fSU5URUdSSVRZX0NPTlNUUkFJTlRfVklPTEFUSU9OICdcbiAgICArICdTRVJJQUxJWkFUSU9OX0ZBSUxVUkUgU1RBVEVNRU5UX0NPTVBMRVRJT05fVU5LTk9XTiBERUFETE9DS19ERVRFQ1RFRCAnXG4gICAgKyAnU1lOVEFYX0VSUk9SX09SX0FDQ0VTU19SVUxFX1ZJT0xBVElPTiBTWU5UQVhfRVJST1IgSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSBDQU5OT1RfQ09FUkNFICdcbiAgICArICdHUk9VUElOR19FUlJPUiBXSU5ET1dJTkdfRVJST1IgSU5WQUxJRF9SRUNVUlNJT04gSU5WQUxJRF9GT1JFSUdOX0tFWSBJTlZBTElEX05BTUUgJ1xuICAgICsgJ05BTUVfVE9PX0xPTkcgUkVTRVJWRURfTkFNRSBEQVRBVFlQRV9NSVNNQVRDSCBJTkRFVEVSTUlOQVRFX0RBVEFUWVBFIENPTExBVElPTl9NSVNNQVRDSCAnXG4gICAgKyAnSU5ERVRFUk1JTkFURV9DT0xMQVRJT04gV1JPTkdfT0JKRUNUX1RZUEUgR0VORVJBVEVEX0FMV0FZUyBVTkRFRklORURfQ09MVU1OICdcbiAgICArICdVTkRFRklORURfRlVOQ1RJT04gVU5ERUZJTkVEX1RBQkxFIFVOREVGSU5FRF9QQVJBTUVURVIgVU5ERUZJTkVEX09CSkVDVCAnXG4gICAgKyAnRFVQTElDQVRFX0NPTFVNTiBEVVBMSUNBVEVfQ1VSU09SIERVUExJQ0FURV9EQVRBQkFTRSBEVVBMSUNBVEVfRlVOQ1RJT04gJ1xuICAgICsgJ0RVUExJQ0FURV9QUkVQQVJFRF9TVEFURU1FTlQgRFVQTElDQVRFX1NDSEVNQSBEVVBMSUNBVEVfVEFCTEUgRFVQTElDQVRFX0FMSUFTICdcbiAgICArICdEVVBMSUNBVEVfT0JKRUNUIEFNQklHVU9VU19DT0xVTU4gQU1CSUdVT1VTX0ZVTkNUSU9OIEFNQklHVU9VU19QQVJBTUVURVIgQU1CSUdVT1VTX0FMSUFTICdcbiAgICArICdJTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UgSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiBJTlZBTElEX0NVUlNPUl9ERUZJTklUSU9OICdcbiAgICArICdJTlZBTElEX0RBVEFCQVNFX0RFRklOSVRJT04gSU5WQUxJRF9GVU5DVElPTl9ERUZJTklUSU9OICdcbiAgICArICdJTlZBTElEX1BSRVBBUkVEX1NUQVRFTUVOVF9ERUZJTklUSU9OIElOVkFMSURfU0NIRU1BX0RFRklOSVRJT04gSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OICdcbiAgICArICdJTlZBTElEX09CSkVDVF9ERUZJTklUSU9OIFdJVEhfQ0hFQ0tfT1BUSU9OX1ZJT0xBVElPTiBJTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTIERJU0tfRlVMTCAnXG4gICAgKyAnT1VUX09GX01FTU9SWSBUT09fTUFOWV9DT05ORUNUSU9OUyBDT05GSUdVUkFUSU9OX0xJTUlUX0VYQ0VFREVEIFBST0dSQU1fTElNSVRfRVhDRUVERUQgJ1xuICAgICsgJ1NUQVRFTUVOVF9UT09fQ09NUExFWCBUT09fTUFOWV9DT0xVTU5TIFRPT19NQU5ZX0FSR1VNRU5UUyBPQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSAnXG4gICAgKyAnT0JKRUNUX0lOX1VTRSBDQU5UX0NIQU5HRV9SVU5USU1FX1BBUkFNIExPQ0tfTk9UX0FWQUlMQUJMRSBPUEVSQVRPUl9JTlRFUlZFTlRJT04gJ1xuICAgICsgJ1FVRVJZX0NBTkNFTEVEIEFETUlOX1NIVVRET1dOIENSQVNIX1NIVVRET1dOIENBTk5PVF9DT05ORUNUX05PVyBEQVRBQkFTRV9EUk9QUEVEICdcbiAgICArICdTWVNURU1fRVJST1IgSU9fRVJST1IgVU5ERUZJTkVEX0ZJTEUgRFVQTElDQVRFX0ZJTEUgU05BUFNIT1RfVE9PX09MRCBDT05GSUdfRklMRV9FUlJPUiAnXG4gICAgKyAnTE9DS19GSUxFX0VYSVNUUyBGRFdfRVJST1IgRkRXX0NPTFVNTl9OQU1FX05PVF9GT1VORCBGRFdfRFlOQU1JQ19QQVJBTUVURVJfVkFMVUVfTkVFREVEICdcbiAgICArICdGRFdfRlVOQ1RJT05fU0VRVUVOQ0VfRVJST1IgRkRXX0lOQ09OU0lTVEVOVF9ERVNDUklQVE9SX0lORk9STUFUSU9OICdcbiAgICArICdGRFdfSU5WQUxJRF9BVFRSSUJVVEVfVkFMVUUgRkRXX0lOVkFMSURfQ09MVU1OX05BTUUgRkRXX0lOVkFMSURfQ09MVU1OX05VTUJFUiAnXG4gICAgKyAnRkRXX0lOVkFMSURfREFUQV9UWVBFIEZEV19JTlZBTElEX0RBVEFfVFlQRV9ERVNDUklQVE9SUyAnXG4gICAgKyAnRkRXX0lOVkFMSURfREVTQ1JJUFRPUl9GSUVMRF9JREVOVElGSUVSIEZEV19JTlZBTElEX0hBTkRMRSBGRFdfSU5WQUxJRF9PUFRJT05fSU5ERVggJ1xuICAgICsgJ0ZEV19JTlZBTElEX09QVElPTl9OQU1FIEZEV19JTlZBTElEX1NUUklOR19MRU5HVEhfT1JfQlVGRkVSX0xFTkdUSCAnXG4gICAgKyAnRkRXX0lOVkFMSURfU1RSSU5HX0ZPUk1BVCBGRFdfSU5WQUxJRF9VU0VfT0ZfTlVMTF9QT0lOVEVSIEZEV19UT09fTUFOWV9IQU5ETEVTICdcbiAgICArICdGRFdfT1VUX09GX01FTU9SWSBGRFdfTk9fU0NIRU1BUyBGRFdfT1BUSU9OX05BTUVfTk9UX0ZPVU5EIEZEV19SRVBMWV9IQU5ETEUgJ1xuICAgICsgJ0ZEV19TQ0hFTUFfTk9UX0ZPVU5EIEZEV19UQUJMRV9OT1RfRk9VTkQgRkRXX1VOQUJMRV9UT19DUkVBVEVfRVhFQ1VUSU9OICdcbiAgICArICdGRFdfVU5BQkxFX1RPX0NSRUFURV9SRVBMWSBGRFdfVU5BQkxFX1RPX0VTVEFCTElTSF9DT05ORUNUSU9OIFBMUEdTUUxfRVJST1IgJ1xuICAgICsgJ1JBSVNFX0VYQ0VQVElPTiBOT19EQVRBX0ZPVU5EIFRPT19NQU5ZX1JPV1MgQVNTRVJUX0ZBSUxVUkUgSU5URVJOQUxfRVJST1IgREFUQV9DT1JSVVBURUQgJ1xuICAgICsgJ0lOREVYX0NPUlJVUFRFRCAnO1xuXG4gIGNvbnN0IEZVTkNUSU9OUyA9XG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWFnZ3JlZ2F0ZS5odG1sXG4gICAgJ0FSUkFZX0FHRyBBVkcgQklUX0FORCBCSVRfT1IgQk9PTF9BTkQgQk9PTF9PUiBDT1VOVCBFVkVSWSBKU09OX0FHRyBKU09OQl9BR0cgSlNPTl9PQkpFQ1RfQUdHICdcbiAgICArICdKU09OQl9PQkpFQ1RfQUdHIE1BWCBNSU4gTU9ERSBTVFJJTkdfQUdHIFNVTSBYTUxBR0cgJ1xuICAgICsgJ0NPUlIgQ09WQVJfUE9QIENPVkFSX1NBTVAgUkVHUl9BVkdYIFJFR1JfQVZHWSBSRUdSX0NPVU5UIFJFR1JfSU5URVJDRVBUIFJFR1JfUjIgUkVHUl9TTE9QRSAnXG4gICAgKyAnUkVHUl9TWFggUkVHUl9TWFkgUkVHUl9TWVkgU1REREVWIFNURERFVl9QT1AgU1REREVWX1NBTVAgVkFSSUFOQ0UgVkFSX1BPUCBWQVJfU0FNUCAnXG4gICAgKyAnUEVSQ0VOVElMRV9DT05UIFBFUkNFTlRJTEVfRElTQyAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXdpbmRvdy5odG1sXG4gICAgKyAnUk9XX05VTUJFUiBSQU5LIERFTlNFX1JBTksgUEVSQ0VOVF9SQU5LIENVTUVfRElTVCBOVElMRSBMQUcgTEVBRCBGSVJTVF9WQUxVRSBMQVNUX1ZBTFVFIE5USF9WQUxVRSAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWNvbXBhcmlzb24uaHRtbFxuICAgICsgJ05VTV9OT05OVUxMUyBOVU1fTlVMTFMgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1tYXRoLmh0bWxcbiAgICArICdBQlMgQ0JSVCBDRUlMIENFSUxJTkcgREVHUkVFUyBESVYgRVhQIEZMT09SIExOIExPRyBNT0QgUEkgUE9XRVIgUkFESUFOUyBST1VORCBTQ0FMRSBTSUdOIFNRUlQgJ1xuICAgICsgJ1RSVU5DIFdJRFRIX0JVQ0tFVCAnXG4gICAgKyAnUkFORE9NIFNFVFNFRUQgJ1xuICAgICsgJ0FDT1MgQUNPU0QgQVNJTiBBU0lORCBBVEFOIEFUQU5EIEFUQU4yIEFUQU4yRCBDT1MgQ09TRCBDT1QgQ09URCBTSU4gU0lORCBUQU4gVEFORCAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXN0cmluZy5odG1sXG4gICAgKyAnQklUX0xFTkdUSCBDSEFSX0xFTkdUSCBDSEFSQUNURVJfTEVOR1RIIExPV0VSIE9DVEVUX0xFTkdUSCBPVkVSTEFZIFBPU0lUSU9OIFNVQlNUUklORyBUUkVBVCBUUklNIFVQUEVSICdcbiAgICArICdBU0NJSSBCVFJJTSBDSFIgQ09OQ0FUIENPTkNBVF9XUyBDT05WRVJUIENPTlZFUlRfRlJPTSBDT05WRVJUX1RPIERFQ09ERSBFTkNPREUgSU5JVENBUCAnXG4gICAgKyAnTEVGVCBMRU5HVEggTFBBRCBMVFJJTSBNRDUgUEFSU0VfSURFTlQgUEdfQ0xJRU5UX0VOQ09ESU5HIFFVT1RFX0lERU5UfDEwIFFVT1RFX0xJVEVSQUx8MTAgJ1xuICAgICsgJ1FVT1RFX05VTExBQkxFfDEwIFJFR0VYUF9NQVRDSCBSRUdFWFBfTUFUQ0hFUyBSRUdFWFBfUkVQTEFDRSBSRUdFWFBfU1BMSVRfVE9fQVJSQVkgJ1xuICAgICsgJ1JFR0VYUF9TUExJVF9UT19UQUJMRSBSRVBFQVQgUkVQTEFDRSBSRVZFUlNFIFJJR0hUIFJQQUQgUlRSSU0gU1BMSVRfUEFSVCBTVFJQT1MgU1VCU1RSICdcbiAgICArICdUT19BU0NJSSBUT19IRVggVFJBTlNMQVRFICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtYmluYXJ5c3RyaW5nLmh0bWxcbiAgICArICdPQ1RFVF9MRU5HVEggR0VUX0JJVCBHRVRfQllURSBTRVRfQklUIFNFVF9CWVRFICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtZm9ybWF0dGluZy5odG1sXG4gICAgKyAnVE9fQ0hBUiBUT19EQVRFIFRPX05VTUJFUiBUT19USU1FU1RBTVAgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1kYXRldGltZS5odG1sXG4gICAgKyAnQUdFIENMT0NLX1RJTUVTVEFNUHwxMCBEQVRFX1BBUlQgREFURV9UUlVOQyBJU0ZJTklURSBKVVNUSUZZX0RBWVMgSlVTVElGWV9IT1VSUyBKVVNUSUZZX0lOVEVSVkFMICdcbiAgICArICdNQUtFX0RBVEUgTUFLRV9JTlRFUlZBTHwxMCBNQUtFX1RJTUUgTUFLRV9USU1FU1RBTVB8MTAgTUFLRV9USU1FU1RBTVBUWnwxMCBOT1cgU1RBVEVNRU5UX1RJTUVTVEFNUHwxMCAnXG4gICAgKyAnVElNRU9GREFZIFRSQU5TQUNUSU9OX1RJTUVTVEFNUHwxMCAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWVudW0uaHRtbFxuICAgICsgJ0VOVU1fRklSU1QgRU5VTV9MQVNUIEVOVU1fUkFOR0UgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1nZW9tZXRyeS5odG1sXG4gICAgKyAnQVJFQSBDRU5URVIgRElBTUVURVIgSEVJR0hUIElTQ0xPU0VEIElTT1BFTiBOUE9JTlRTIFBDTE9TRSBQT1BFTiBSQURJVVMgV0lEVEggJ1xuICAgICsgJ0JPWCBCT1VORF9CT1ggQ0lSQ0xFIExJTkUgTFNFRyBQQVRIIFBPTFlHT04gJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1uZXQuaHRtbFxuICAgICsgJ0FCQlJFViBCUk9BRENBU1QgSE9TVCBIT1NUTUFTSyBNQVNLTEVOIE5FVE1BU0sgTkVUV09SSyBTRVRfTUFTS0xFTiBURVhUIElORVRfU0FNRV9GQU1JTFkgJ1xuICAgICsgJ0lORVRfTUVSR0UgTUFDQUREUjhfU0VUN0JJVCAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXRleHRzZWFyY2guaHRtbFxuICAgICsgJ0FSUkFZX1RPX1RTVkVDVE9SIEdFVF9DVVJSRU5UX1RTX0NPTkZJRyBOVU1OT0RFIFBMQUlOVE9fVFNRVUVSWSBQSFJBU0VUT19UU1FVRVJZIFdFQlNFQVJDSF9UT19UU1FVRVJZICdcbiAgICArICdRVUVSWVRSRUUgU0VUV0VJR0hUIFNUUklQIFRPX1RTUVVFUlkgVE9fVFNWRUNUT1IgSlNPTl9UT19UU1ZFQ1RPUiBKU09OQl9UT19UU1ZFQ1RPUiBUU19ERUxFVEUgJ1xuICAgICsgJ1RTX0ZJTFRFUiBUU19IRUFETElORSBUU19SQU5LIFRTX1JBTktfQ0QgVFNfUkVXUklURSBUU1FVRVJZX1BIUkFTRSBUU1ZFQ1RPUl9UT19BUlJBWSAnXG4gICAgKyAnVFNWRUNUT1JfVVBEQVRFX1RSSUdHRVIgVFNWRUNUT1JfVVBEQVRFX1RSSUdHRVJfQ09MVU1OICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMteG1sLmh0bWxcbiAgICArICdYTUxDT01NRU5UIFhNTENPTkNBVCBYTUxFTEVNRU5UIFhNTEZPUkVTVCBYTUxQSSBYTUxST09UICdcbiAgICArICdYTUxFWElTVFMgWE1MX0lTX1dFTExfRk9STUVEIFhNTF9JU19XRUxMX0ZPUk1FRF9ET0NVTUVOVCBYTUxfSVNfV0VMTF9GT1JNRURfQ09OVEVOVCAnXG4gICAgKyAnWFBBVEggWFBBVEhfRVhJU1RTIFhNTFRBQkxFIFhNTE5BTUVTUEFDRVMgJ1xuICAgICsgJ1RBQkxFX1RPX1hNTCBUQUJMRV9UT19YTUxTQ0hFTUEgVEFCTEVfVE9fWE1MX0FORF9YTUxTQ0hFTUEgJ1xuICAgICsgJ1FVRVJZX1RPX1hNTCBRVUVSWV9UT19YTUxTQ0hFTUEgUVVFUllfVE9fWE1MX0FORF9YTUxTQ0hFTUEgJ1xuICAgICsgJ0NVUlNPUl9UT19YTUwgQ1VSU09SX1RPX1hNTFNDSEVNQSAnXG4gICAgKyAnU0NIRU1BX1RPX1hNTCBTQ0hFTUFfVE9fWE1MU0NIRU1BIFNDSEVNQV9UT19YTUxfQU5EX1hNTFNDSEVNQSAnXG4gICAgKyAnREFUQUJBU0VfVE9fWE1MIERBVEFCQVNFX1RPX1hNTFNDSEVNQSBEQVRBQkFTRV9UT19YTUxfQU5EX1hNTFNDSEVNQSAnXG4gICAgKyAnWE1MQVRUUklCVVRFUyAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWpzb24uaHRtbFxuICAgICsgJ1RPX0pTT04gVE9fSlNPTkIgQVJSQVlfVE9fSlNPTiBST1dfVE9fSlNPTiBKU09OX0JVSUxEX0FSUkFZIEpTT05CX0JVSUxEX0FSUkFZIEpTT05fQlVJTERfT0JKRUNUICdcbiAgICArICdKU09OQl9CVUlMRF9PQkpFQ1QgSlNPTl9PQkpFQ1QgSlNPTkJfT0JKRUNUIEpTT05fQVJSQVlfTEVOR1RIIEpTT05CX0FSUkFZX0xFTkdUSCBKU09OX0VBQ0ggJ1xuICAgICsgJ0pTT05CX0VBQ0ggSlNPTl9FQUNIX1RFWFQgSlNPTkJfRUFDSF9URVhUIEpTT05fRVhUUkFDVF9QQVRIIEpTT05CX0VYVFJBQ1RfUEFUSCAnXG4gICAgKyAnSlNPTl9PQkpFQ1RfS0VZUyBKU09OQl9PQkpFQ1RfS0VZUyBKU09OX1BPUFVMQVRFX1JFQ09SRCBKU09OQl9QT1BVTEFURV9SRUNPUkQgSlNPTl9QT1BVTEFURV9SRUNPUkRTRVQgJ1xuICAgICsgJ0pTT05CX1BPUFVMQVRFX1JFQ09SRFNFVCBKU09OX0FSUkFZX0VMRU1FTlRTIEpTT05CX0FSUkFZX0VMRU1FTlRTIEpTT05fQVJSQVlfRUxFTUVOVFNfVEVYVCAnXG4gICAgKyAnSlNPTkJfQVJSQVlfRUxFTUVOVFNfVEVYVCBKU09OX1RZUEVPRiBKU09OQl9UWVBFT0YgSlNPTl9UT19SRUNPUkQgSlNPTkJfVE9fUkVDT1JEIEpTT05fVE9fUkVDT1JEU0VUICdcbiAgICArICdKU09OQl9UT19SRUNPUkRTRVQgSlNPTl9TVFJJUF9OVUxMUyBKU09OQl9TVFJJUF9OVUxMUyBKU09OQl9TRVQgSlNPTkJfSU5TRVJUIEpTT05CX1BSRVRUWSAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXNlcXVlbmNlLmh0bWxcbiAgICArICdDVVJSVkFMIExBU1RWQUwgTkVYVFZBTCBTRVRWQUwgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1jb25kaXRpb25hbC5odG1sXG4gICAgKyAnQ09BTEVTQ0UgTlVMTElGIEdSRUFURVNUIExFQVNUICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtYXJyYXkuaHRtbFxuICAgICsgJ0FSUkFZX0FQUEVORCBBUlJBWV9DQVQgQVJSQVlfTkRJTVMgQVJSQVlfRElNUyBBUlJBWV9GSUxMIEFSUkFZX0xFTkdUSCBBUlJBWV9MT1dFUiBBUlJBWV9QT1NJVElPTiAnXG4gICAgKyAnQVJSQVlfUE9TSVRJT05TIEFSUkFZX1BSRVBFTkQgQVJSQVlfUkVNT1ZFIEFSUkFZX1JFUExBQ0UgQVJSQVlfVE9fU1RSSU5HIEFSUkFZX1VQUEVSIENBUkRJTkFMSVRZICdcbiAgICArICdTVFJJTkdfVE9fQVJSQVkgVU5ORVNUICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtcmFuZ2UuaHRtbFxuICAgICsgJ0lTRU1QVFkgTE9XRVJfSU5DIFVQUEVSX0lOQyBMT1dFUl9JTkYgVVBQRVJfSU5GIFJBTkdFX01FUkdFICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtc3JmLmh0bWxcbiAgICArICdHRU5FUkFURV9TRVJJRVMgR0VORVJBVEVfU1VCU0NSSVBUUyAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWluZm8uaHRtbFxuICAgICsgJ0NVUlJFTlRfREFUQUJBU0UgQ1VSUkVOVF9RVUVSWSBDVVJSRU5UX1NDSEVNQXwxMCBDVVJSRU5UX1NDSEVNQVN8MTAgSU5FVF9DTElFTlRfQUREUiBJTkVUX0NMSUVOVF9QT1JUICdcbiAgICArICdJTkVUX1NFUlZFUl9BRERSIElORVRfU0VSVkVSX1BPUlQgUk9XX1NFQ1VSSVRZX0FDVElWRSBGT1JNQVRfVFlQRSAnXG4gICAgKyAnVE9fUkVHQ0xBU1MgVE9fUkVHUFJPQyBUT19SRUdQUk9DRURVUkUgVE9fUkVHT1BFUiBUT19SRUdPUEVSQVRPUiBUT19SRUdUWVBFIFRPX1JFR05BTUVTUEFDRSBUT19SRUdST0xFICdcbiAgICArICdDT0xfREVTQ1JJUFRJT04gT0JKX0RFU0NSSVBUSU9OIFNIT0JKX0RFU0NSSVBUSU9OICdcbiAgICArICdUWElEX0NVUlJFTlQgVFhJRF9DVVJSRU5UX0lGX0FTU0lHTkVEIFRYSURfQ1VSUkVOVF9TTkFQU0hPVCBUWElEX1NOQVBTSE9UX1hJUCBUWElEX1NOQVBTSE9UX1hNQVggJ1xuICAgICsgJ1RYSURfU05BUFNIT1RfWE1JTiBUWElEX1ZJU0lCTEVfSU5fU05BUFNIT1QgVFhJRF9TVEFUVVMgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1hZG1pbi5odG1sXG4gICAgKyAnQ1VSUkVOVF9TRVRUSU5HIFNFVF9DT05GSUcgQlJJTl9TVU1NQVJJWkVfTkVXX1ZBTFVFUyBCUklOX1NVTU1BUklaRV9SQU5HRSBCUklOX0RFU1VNTUFSSVpFX1JBTkdFICdcbiAgICArICdHSU5fQ0xFQU5fUEVORElOR19MSVNUICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtdHJpZ2dlci5odG1sXG4gICAgKyAnU1VQUFJFU1NfUkVEVU5EQU5UX1VQREFURVNfVFJJR0dFUiAnXG4gICAgLy8gaWh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvZGV2ZWwvc3RhdGljL2xvLWZ1bmNzLmh0bWxcbiAgICArICdMT19GUk9NX0JZVEVBIExPX1BVVCBMT19HRVQgTE9fQ1JFQVQgTE9fQ1JFQVRFIExPX1VOTElOSyBMT19JTVBPUlQgTE9fRVhQT1JUIExPUkVBRCBMT1dSSVRFICdcbiAgICAvL1xuICAgICsgJ0dST1VQSU5HIENBU1QgJztcblxuICBjb25zdCBGVU5DVElPTlNfUkUgPVxuICAgICAgRlVOQ1RJT05TLnRyaW0oKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKGZ1bmN0aW9uKHZhbCkgeyByZXR1cm4gdmFsLnNwbGl0KCd8JylbMF07IH0pXG4gICAgICAgIC5qb2luKCd8Jyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUG9zdGdyZVNRTCcsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3Bvc3RncmVzJyxcbiAgICAgICdwb3N0Z3Jlc3FsJ1xuICAgIF0sXG4gICAgc3VwZXJzZXRPZjogXCJzcWxcIixcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAgICAgU1FMX0tXICsgUExQR1NRTF9LVyArIFJPTEVfQVRUUlMsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgICAgIFNRTF9CSSArIFBMUEdTUUxfQkkgKyBQTFBHU1FMX0VYQ0VQVElPTlNcbiAgICB9LFxuICAgIC8vIEZvcmJpZCBzb21lIGN1bnN0cnVjdHMgZnJvbSBvdGhlciBsYW5ndWFnZXMgdG8gaW1wcm92ZSBhdXRvZGV0ZWN0LiBJbiBmYWN0XG4gICAgLy8gXCJbYS16XTpcIiBpcyBsZWdhbCAoYXMgcGFydCBvZiBhcnJheSBzbGljZSksIGJ1dCBpbXByb2JhYmFsLlxuICAgIGlsbGVnYWw6IC86PT18XFxXXFxzKlxcKFxcKnwoXnxcXHMpXFwkW2Etel18XFx7XFx7fFthLXpdOlxccyokfFxcLlxcLlxcLnxUTzp8RE86LyxcbiAgICBjb250YWluczogW1xuICAgICAgLy8gc3BlY2lhbCBoYW5kbGluZyBvZiBzb21lIHdvcmRzLCB3aGljaCBhcmUgcmVzZXJ2ZWQgb25seSBpbiBzb21lIGNvbnRleHRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9cXGJURVhUXFxzKlNFQVJDSFxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFBSSU1BUll8Rk9SRUlHTnxGT1IoXFxzK05PKT8pXFxzK0tFWVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiUEFSQUxMRUxcXHMrKFVOU0FGRXxSRVNUUklDVEVEfFNBRkUpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJTVE9SQUdFXFxzKyhQTEFJTnxFWFRFUk5BTHxFWFRFTkRFRHxNQUlOKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiTUFUQ0hcXHMrKEZVTEx8UEFSVElBTHxTSU1QTEUpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJOVUxMU1xccysoRklSU1R8TEFTVClcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYkVWRU5UXFxzK1RSSUdHRVJcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihNQVBQSU5HfE9SKVxccytSRVBMQUNFXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoRlJPTXxUTylcXHMrKFBST0dSQU18U1RESU58U1RET1VUKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFNIQVJFfEVYQ0xVU0lWRSlcXHMrTU9ERVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKExFRlR8UklHSFQpXFxzKyhPVVRFUlxccyspP0pPSU5cXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihGRVRDSHxNT1ZFKVxccysoTkVYVHxQUklPUnxGSVJTVHxMQVNUfEFCU09MVVRFfFJFTEFUSVZFfEZPUldBUkR8QkFDS1dBUkQpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJQUkVTRVJWRVxccytST1dTXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJESVNDQVJEXFxzK1BMQU5TXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJSRUZFUkVOQ0lOR1xccysoT0xEfE5FVylcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlNLSVBcXHMrTE9DS0VEXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJHUk9VUElOR1xccytTRVRTXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoQklOQVJZfElOU0VOU0lUSVZFfFNDUk9MTHxOT1xccytTQ1JPTEwpXFxzKyhDVVJTT1J8Rk9SKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFdJVEh8V0lUSE9VVClcXHMrSE9MRFxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiV0lUSFxccysoQ0FTQ0FERUR8TE9DQUwpXFxzK0NIRUNLXFxzK09QVElPTlxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiRVhDTFVERVxccysoVElFU3xOT1xccytPVEhFUlMpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJGT1JNQVRcXHMrKFRFWFR8WE1MfEpTT058WUFNTClcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlNFVFxccysoKFNFU1NJT058TE9DQUwpXFxzKyk/TkFNRVNcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYklTXFxzKyhOT1RcXHMrKT9VTktOT1dOXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJTRUNVUklUWVxccytMQUJFTFxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiU1RBTkRBTE9ORVxccysoWUVTfE5PfE5PXFxzK1ZBTFVFKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiV0lUSFxccysoTk9cXHMrKT9EQVRBXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoRk9SRUlHTnxTRVQpXFxzK0RBVEFcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlNFVFxccysoQ0FUQUxPR3xDT05TVFJBSU5UUylcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihXSVRIfEZPUilcXHMrT1JESU5BTElUWVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiSVNcXHMrKE5PVFxccyspP0RPQ1VNRU5UXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJYTUxcXHMrT1BUSU9OXFxzKyhET0NVTUVOVHxDT05URU5UKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFNUUklQfFBSRVNFUlZFKVxccytXSElURVNQQUNFXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJOT1xccysoQUNUSU9OfE1BWFZBTFVFfE1JTlZBTFVFKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiUEFSVElUSU9OXFxzK0JZXFxzKyhSQU5HRXxMSVNUfEhBU0gpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJBVFxccytUSU1FXFxzK1pPTkVcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYkdSQU5URURcXHMrQllcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlJFVFVSTlxccysoUVVFUll8TkVYVClcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihBVFRBQ0h8REVUQUNIKVxccytQQVJUSVRJT05cXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYkZPUkNFXFxzK1JPV1xccytMRVZFTFxccytTRUNVUklUWVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKElOQ0xVRElOR3xFWENMVURJTkcpXFxzKyhDT01NRU5UU3xDT05TVFJBSU5UU3xERUZBVUxUU3xJREVOVElUWXxJTkRFWEVTfFNUQVRJU1RJQ1N8U1RPUkFHRXxBTEwpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJBU1xccysoQVNTSUdOTUVOVHxJTVBMSUNJVHxQRVJNSVNTSVZFfFJFU1RSSUNUSVZFfEVOVU18UkFOR0UpXFxiLyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBmdW5jdGlvbnMgbmFtZWQgYXMga2V5d29yZHMsIGZvbGxvd2VkIGJ5ICcoJ1xuICAgICAgeyBiZWdpbjogL1xcYihGT1JNQVR8RkFNSUxZfFZFUlNJT04pXFxzKlxcKC9cbiAgICAgICAgLy8ga2V5d29yZHM6IHsgYnVpbHRfaW46ICdGT1JNQVQgRkFNSUxZIFZFUlNJT04nIH1cbiAgICAgIH0sXG4gICAgICAvLyBJTkNMVURFICggLi4uICkgaW4gaW5kZXhfcGFyYW1ldGVycyBpbiBDUkVBVEUgVEFCTEVcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJJTkNMVURFXFxzKlxcKC8sXG4gICAgICAgIGtleXdvcmRzOiAnSU5DTFVERSdcbiAgICAgIH0sXG4gICAgICAvLyBub3QgaGlnaGxpZ2h0IFJBTkdFIGlmIG5vdCBpbiBmcmFtZV9jbGF1c2UgKG5vdCAxMDAlIGNvcnJlY3QsIGJ1dCBzZWVtcyBzYXRpc2ZhY3RvcnkpXG4gICAgICB7IGJlZ2luOiAvXFxiUkFOR0UoPyFcXHMqKEJFVFdFRU58VU5CT1VOREVEfENVUlJFTlR8Wy0wLTldKykpLyB9LFxuICAgICAgLy8gZGlzYWJsZSBoaWdobGlnaHRpbmcgaW4gY29tbWFuZHMgQ1JFQVRFIEFHR1JFR0FURS9DT0xMQVRJT04vREFUQUJBU0UvT1BFUlRPUi9URVhUIFNFQVJDSCAuLi4vVFlQRVxuICAgICAgLy8gYW5kIGluIFBML3BnU1FMIFJBSVNFIC4uLiBVU0lOR1xuICAgICAgeyBiZWdpbjogL1xcYihWRVJTSU9OfE9XTkVSfFRFTVBMQVRFfFRBQkxFU1BBQ0V8Q09OTkVDVElPTlxccytMSU1JVHxQUk9DRURVUkV8UkVTVFJJQ1R8Sk9JTnxQQVJTRVJ8Q09QWXxTVEFSVHxFTkR8Q09MTEFUSU9OfElOUFVUfEFOQUxZWkV8U1RPUkFHRXxMSUtFfERFRkFVTFR8REVMSU1JVEVSfEVOQ09ESU5HfENPTFVNTnxDT05TVFJBSU5UfFRBQkxFfFNDSEVNQSlcXHMqPS8gfSxcbiAgICAgIC8vIFBHX3NtdGg7IEhBU19zb21lX1BSSVZJTEVHRVxuICAgICAge1xuICAgICAgICAvLyBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiAvXFxiKFBHX1xcdys/fEhBU19bQS1aX10rX1BSSVZJTEVHRSlcXGIvLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gZXh0cmFjdFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYkVYVFJBQ1RcXHMqXFwoLyxcbiAgICAgICAgZW5kOiAvXFxiRlJPTVxcYi8sXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAvLyBidWlsdF9pbjogJ0VYVFJBQ1QnLFxuICAgICAgICAgIHR5cGU6ICdDRU5UVVJZIERBWSBERUNBREUgRE9XIERPWSBFUE9DSCBIT1VSIElTT0RPVyBJU09ZRUFSIE1JQ1JPU0VDT05EUyAnXG4gICAgICAgICAgICAgICAgICAgICAgICArICdNSUxMRU5OSVVNIE1JTExJU0VDT05EUyBNSU5VVEUgTU9OVEggUVVBUlRFUiBTRUNPTkQgVElNRVpPTkUgVElNRVpPTkVfSE9VUiAnXG4gICAgICAgICAgICAgICAgICAgICAgICArICdUSU1FWk9ORV9NSU5VVEUgV0VFSyBZRUFSJyB9XG4gICAgICB9LFxuICAgICAgLy8geG1sZWxlbWVudCwgeG1scGkgLSBzcGVjaWFsIE5BTUVcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGIoWE1MRUxFTUVOVHxYTUxQSSlcXHMqXFwoXFxzKk5BTUUvLFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgIC8vIGJ1aWx0X2luOiAnWE1MRUxFTUVOVCBYTUxQSScsXG4gICAgICAgICAga2V5d29yZDogJ05BTUUnIH1cbiAgICAgIH0sXG4gICAgICAvLyB4bWxwYXJzZSwgeG1sc2VyaWFsaXplXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxiKFhNTFBBUlNFfFhNTFNFUklBTElaRSlcXHMqXFwoXFxzKihET0NVTUVOVHxDT05URU5UKS8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgLy8gYnVpbHRfaW46ICdYTUxQQVJTRSBYTUxTRVJJQUxJWkUnLFxuICAgICAgICAgIGtleXdvcmQ6ICdET0NVTUVOVCBDT05URU5UJyB9XG4gICAgICB9LFxuICAgICAgLy8gU2VxdWVuY2VzLiBXZSBhY3R1YWxseSBza2lwIGV2ZXJ5dGhpbmcgYmV0d2VlbiBDQUNIRXxJTkNSRU1FTlR8TUFYVkFMVUV8TUlOVkFMVUUgYW5kXG4gICAgICAvLyBuZWFyZXN0IGZvbGxvd2luZyBudW1lcmljIGNvbnN0YW50LiBXaXRob3V0IHdpdGggdHJpY2sgd2UgZmluZCBhIGxvdCBvZiBcImtleXdvcmRzXCJcbiAgICAgIC8vIGluICdhdnJhc20nIGF1dG9kZXRlY3Rpb24gdGVzdC4uLlxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnQ0FDSEUgSU5DUkVNRU5UIE1BWFZBTFVFIE1JTlZBTFVFJyxcbiAgICAgICAgZW5kOiBobGpzLkNfTlVNQkVSX1JFLFxuICAgICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiAnQlkgQ0FDSEUgSU5DUkVNRU5UIE1BWFZBTFVFIE1JTlZBTFVFJ1xuICAgICAgfSxcbiAgICAgIC8vIFdJVEh8V0lUSE9VVCBUSU1FIFpPTkUgYXMgcGFydCBvZiBkYXRhdHlwZVxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46IC9cXGIoV0lUSHxXSVRIT1VUKVxccytUSU1FXFxzK1pPTkVcXGIvXG4gICAgICB9LFxuICAgICAgLy8gSU5URVJWQUwgb3B0aW9uYWwgZmllbGRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogL1xcYklOVEVSVkFMXFxzKyhZRUFSfE1PTlRIfERBWXxIT1VSfE1JTlVURXxTRUNPTkQpKFxccytUT1xccysoTU9OVEh8SE9VUnxNSU5VVEV8U0VDT05EKSk/XFxiL1xuICAgICAgfSxcbiAgICAgIC8vIFBzZXVkby10eXBlcyB3aGljaCBhbGxvd2VkIG9ubHkgYXMgcmV0dXJuIHR5cGVcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJSRVRVUk5TXFxzKyhMQU5HVUFHRV9IQU5ETEVSfFRSSUdHRVJ8RVZFTlRfVFJJR0dFUnxGRFdfSEFORExFUnxJTkRFWF9BTV9IQU5ETEVSfFRTTV9IQU5ETEVSKVxcYi8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAga2V5d29yZDogJ1JFVFVSTlMnLFxuICAgICAgICAgIHR5cGU6ICdMQU5HVUFHRV9IQU5ETEVSIFRSSUdHRVIgRVZFTlRfVFJJR0dFUiBGRFdfSEFORExFUiBJTkRFWF9BTV9IQU5ETEVSIFRTTV9IQU5ETEVSJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gS25vd24gZnVuY3Rpb25zIC0gb25seSB3aGVuIGZvbGxvd2VkIGJ5ICcoJ1xuICAgICAgeyBiZWdpbjogJ1xcXFxiKCcgKyBGVU5DVElPTlNfUkUgKyAnKVxcXFxzKlxcXFwoJ1xuICAgICAgICAvLyBrZXl3b3JkczogeyBidWlsdF9pbjogRlVOQ1RJT05TIH1cbiAgICAgIH0sXG4gICAgICAvLyBUeXBlc1xuICAgICAgeyBiZWdpbjogJ1xcXFwuKCcgKyBUWVBFU19SRSArICcpXFxcXGInIC8vIHByZXZlbnQgaGlnaGxpZ2h0IGFzIHR5cGUsIHNheSwgJ29pZCcgaW4gJ3BnY2xhc3Mub2lkJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgVFlQRVNfUkUgKyAnKVxcXFxzK1BBVEhcXFxcYicsIC8vIGluIFhNTFRBQkxFXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAga2V5d29yZDogJ1BBVEgnLCAvLyBob3BlZnVsbHkgbm8gb25lIHdvdWxkIHVzZSBQQVRIIHR5cGUgaW4gWE1MVEFCTEUuLi5cbiAgICAgICAgICB0eXBlOiBUWVBFUy5yZXBsYWNlKCdQQVRIICcsICcnKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgVFlQRVNfUkUgKyAnKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIFN0cmluZ3MsIHNlZSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9zcWwtc3ludGF4LWxleGljYWwuaHRtbCNTUUwtU1lOVEFYLUNPTlNUQU5UU1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcXCdcXCcnIH0gXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICcoZXxFfHUmfFUmKVxcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcXFxcXFxcXC4nIH0gXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICBiZWdpbjogRE9MTEFSX1NUUklORyxcbiAgICAgICAgZW5kOiBET0xMQVJfU1RSSU5HLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGFjdHVhbGx5IHdlIHdhbnQgdGhlbSBhbGwgZXhjZXB0IFNRTDsgbGlzdGVkIGFyZSB0aG9zZSB3aXRoIGtub3duIGltcGxlbWVudGF0aW9uc1xuICAgICAgICAgICAgLy8gYW5kIFhNTCArIEpTT04ganVzdCBpbiBjYXNlXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogW1xuICAgICAgICAgICAgICAncGdzcWwnLFxuICAgICAgICAgICAgICAncGVybCcsXG4gICAgICAgICAgICAgICdweXRob24nLFxuICAgICAgICAgICAgICAndGNsJyxcbiAgICAgICAgICAgICAgJ3InLFxuICAgICAgICAgICAgICAnbHVhJyxcbiAgICAgICAgICAgICAgJ2phdmEnLFxuICAgICAgICAgICAgICAncGhwJyxcbiAgICAgICAgICAgICAgJ3J1YnknLFxuICAgICAgICAgICAgICAnYmFzaCcsXG4gICAgICAgICAgICAgICdzY2hlbWUnLFxuICAgICAgICAgICAgICAneG1sJyxcbiAgICAgICAgICAgICAgJ2pzb24nXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pLFxuICAgICAgLy8gaWRlbnRpZmllcnMgaW4gcXVvdGVzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF1cbiAgICAgIH0sXG4gICAgICAvLyBudW1iZXJzXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAvLyBjb21tZW50c1xuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIENPTU1FTlRfTU9ERSxcbiAgICAgIC8vIFBML3BnU1FMIHN0YWZmXG4gICAgICAvLyAlUk9XVFlQRSwgJVRZUEUsICRuXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgLy8gJVRZUEUsICVST1dUWVBFXG4gICAgICAgICAgICBiZWdpbjogJyUoUk9XKT9UWVBFJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLy8gJG5cbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxcZCsnIH0sXG4gICAgICAgICAgeyAvLyAjY29tcGlsZXIgb3B0aW9uXG4gICAgICAgICAgICBiZWdpbjogJ14jXFxcXHcnLFxuICAgICAgICAgICAgZW5kOiAnJCdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyA8PGxhYmVsZXM+PlxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogTEFCRUwsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGdzcWw7XG4iLCAiLypcbkxhbmd1YWdlOiBQSFBcbkF1dGhvcjogVmljdG9yIEthcmFtemluIDxWaWN0b3IuS2FyYW16aW5AZW50ZXJyYS1pbmMuY29tPlxuQ29udHJpYnV0b3JzOiBFdmdlbnkgU3RlcGFuaXNjaGV2IDxpbWJvbGtAZ21haWwuY29tPiwgSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG5XZWJzaXRlOiBodHRwczovL3d3dy5waHAubmV0XG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG4vKipcbiAqIEBwYXJhbSB7SExKU0FwaX0gaGxqc1xuICogQHJldHVybnMge0xhbmd1YWdlRGV0YWlsfVxuICogKi9cbmZ1bmN0aW9uIHBocChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gbmVnYXRpdmUgbG9vay1haGVhZCB0cmllcyB0byBhdm9pZCBtYXRjaGluZyBwYXR0ZXJucyB0aGF0IGFyZSBub3RcbiAgLy8gUGVybCBhdCBhbGwgbGlrZSAkaWRlbnQkLCBAaWRlbnRALCBldGMuXG4gIGNvbnN0IE5PVF9QRVJMX0VUQyA9IC8oPyFbQS1aYS16MC05XSkoPyFbJF0pLztcbiAgY29uc3QgSURFTlRfUkUgPSByZWdleC5jb25jYXQoXG4gICAgL1thLXpBLVpfXFx4N2YtXFx4ZmZdW2EtekEtWjAtOV9cXHg3Zi1cXHhmZl0qLyxcbiAgICBOT1RfUEVSTF9FVEMpO1xuICAvLyBXaWxsIG5vdCBkZXRlY3QgY2FtZWxDYXNlIGNsYXNzZXNcbiAgY29uc3QgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSA9IHJlZ2V4LmNvbmNhdChcbiAgICAvKFxcXFw/W0EtWl1bYS16MC05X1xceDdmLVxceGZmXSt8XFxcXD9bQS1aXSsoPz1bQS1aXVthLXowLTlfXFx4N2YtXFx4ZmZdKSl7MSx9LyxcbiAgICBOT1RfUEVSTF9FVEMpO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBzY29wZTogJ3ZhcmlhYmxlJyxcbiAgICBtYXRjaDogJ1xcXFwkKycgKyBJREVOVF9SRSxcbiAgfTtcbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIHNjb3BlOiAnbWV0YScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC88XFw/cGhwLywgcmVsZXZhbmNlOiAxMCB9LCAvLyBib29zdCBmb3Igb2J2aW91cyBQSFBcbiAgICAgIHsgYmVnaW46IC88XFw/PS8gfSxcbiAgICAgIC8vIGxlc3MgcmVsZXZhbnQgcGVyIFBTUi0xIHdoaWNoIHNheXMgbm90IHRvIHVzZSBzaG9ydC10YWdzXG4gICAgICB7IGJlZ2luOiAvPFxcPy8sIHJlbGV2YW5jZTogMC4xIH0sXG4gICAgICB7IGJlZ2luOiAvXFw/Pi8gfSAvLyBlbmQgcGhwIHRhZ1xuICAgIF1cbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgc2NvcGU6ICdzdWJzdCcsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRcXHcrLyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xce1xcJC8sXG4gICAgICAgIGVuZDogL1xcfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNJTkdMRV9RVU9URUQgPSBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwsIH0pO1xuICBjb25zdCBET1VCTEVfUVVPVEVEID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICBpbGxlZ2FsOiBudWxsLFxuICAgIGNvbnRhaW5zOiBobGpzLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChTVUJTVCksXG4gIH0pO1xuXG4gIGNvbnN0IEhFUkVET0MgPSB7XG4gICAgYmVnaW46IC88PDxbIFxcdF0qKD86KFxcdyspfFwiKFxcdyspXCIpXFxuLyxcbiAgICBlbmQ6IC9bIFxcdF0qKFxcdyspXFxiLyxcbiAgICBjb250YWluczogaGxqcy5RVU9URV9TVFJJTkdfTU9ERS5jb250YWlucy5jb25jYXQoU1VCU1QpLFxuICAgICdvbjpiZWdpbic6IChtLCByZXNwKSA9PiB7IHJlc3AuZGF0YS5fYmVnaW5NYXRjaCA9IG1bMV0gfHwgbVsyXTsgfSxcbiAgICAnb246ZW5kJzogKG0sIHJlc3ApID0+IHsgaWYgKHJlc3AuZGF0YS5fYmVnaW5NYXRjaCAhPT0gbVsxXSkgcmVzcC5pZ25vcmVNYXRjaCgpOyB9LFxuICB9O1xuXG4gIGNvbnN0IE5PV0RPQyA9IGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgIGJlZ2luOiAvPDw8WyBcXHRdKicoXFx3KyknXFxuLyxcbiAgICBlbmQ6IC9bIFxcdF0qKFxcdyspXFxiLyxcbiAgfSk7XG4gIC8vIGxpc3Qgb2YgdmFsaWQgd2hpdGVzcGFjZXMgYmVjYXVzZSBub24tYnJlYWtpbmcgc3BhY2UgbWlnaHQgYmUgcGFydCBvZiBhIElERU5UX1JFXG4gIGNvbnN0IFdISVRFU1BBQ0UgPSAnWyBcXHRcXG5dJztcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgRE9VQkxFX1FVT1RFRCxcbiAgICAgIFNJTkdMRV9RVU9URUQsXG4gICAgICBIRVJFRE9DLFxuICAgICAgTk9XRE9DXG4gICAgXVxuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgc2NvcGU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiBgXFxcXGIwW2JCXVswMV0rKD86X1swMV0rKSpcXFxcYmAgfSwgLy8gQmluYXJ5IHcvIHVuZGVyc2NvcmUgc3VwcG9ydFxuICAgICAgeyBiZWdpbjogYFxcXFxiMFtvT11bMC03XSsoPzpfWzAtN10rKSpcXFxcYmAgfSwgLy8gT2N0YWxzIHcvIHVuZGVyc2NvcmUgc3VwcG9ydFxuICAgICAgeyBiZWdpbjogYFxcXFxiMFt4WF1bXFxcXGRhLWZBLUZdKyg/Ol9bXFxcXGRhLWZBLUZdKykqXFxcXGJgIH0sIC8vIEhleCB3LyB1bmRlcnNjb3JlIHN1cHBvcnRcbiAgICAgIC8vIERlY2ltYWxzIHcvIHVuZGVyc2NvcmUgc3VwcG9ydCwgd2l0aCBvcHRpb25hbCBmcmFnbWVudHMgYW5kIHNjaWVudGlmaWMgZXhwb25lbnQgKGUpIHN1ZmZpeC5cbiAgICAgIHsgYmVnaW46IGAoPzpcXFxcYlxcXFxkKyg/Ol9cXFxcZCspKihcXFxcLig/OlxcXFxkKyg/Ol9cXFxcZCspKikpP3xcXFxcQlxcXFwuXFxcXGQrKSg/OltlRV1bKy1dP1xcXFxkKyk/YCB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwidHJ1ZVwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICAvLyBNYWdpYyBjb25zdGFudHM6XG4gICAgLy8gPGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2xhbmd1YWdlLmNvbnN0YW50cy5wcmVkZWZpbmVkLnBocD5cbiAgICBcIl9fQ0xBU1NfX1wiLFxuICAgIFwiX19ESVJfX1wiLFxuICAgIFwiX19GSUxFX19cIixcbiAgICBcIl9fRlVOQ1RJT05fX1wiLFxuICAgIFwiX19DT01QSUxFUl9IQUxUX09GRlNFVF9fXCIsXG4gICAgXCJfX0xJTkVfX1wiLFxuICAgIFwiX19NRVRIT0RfX1wiLFxuICAgIFwiX19OQU1FU1BBQ0VfX1wiLFxuICAgIFwiX19UUkFJVF9fXCIsXG4gICAgLy8gRnVuY3Rpb24gdGhhdCBsb29rIGxpa2UgbGFuZ3VhZ2UgY29uc3RydWN0IG9yIGxhbmd1YWdlIGNvbnN0cnVjdCB0aGF0IGxvb2sgbGlrZSBmdW5jdGlvbjpcbiAgICAvLyBMaXN0IG9mIGtleXdvcmRzIHRoYXQgbWF5IG5vdCByZXF1aXJlIHBhcmVudGhlc2lzXG4gICAgXCJkaWVcIixcbiAgICBcImVjaG9cIixcbiAgICBcImV4aXRcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluY2x1ZGVfb25jZVwiLFxuICAgIFwicHJpbnRcIixcbiAgICBcInJlcXVpcmVcIixcbiAgICBcInJlcXVpcmVfb25jZVwiLFxuICAgIC8vIFRoZXNlIGFyZSBub3QgbGFuZ3VhZ2UgY29uc3RydWN0IChmdW5jdGlvbikgYnV0IG9wZXJhdGUgb24gdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgZnVuY3Rpb24gYW5kIGNhbiBhY2Nlc3MgdGhlIGN1cnJlbnQgc3ltYm9sIHRhYmxlXG4gICAgLy8gJ2NvbXBhY3QgZXh0cmFjdCBmdW5jX2dldF9hcmcgZnVuY19nZXRfYXJncyBmdW5jX251bV9hcmdzIGdldF9jYWxsZWRfY2xhc3MgZ2V0X3BhcmVudF9jbGFzcyAnICtcbiAgICAvLyBPdGhlciBrZXl3b3JkczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQucGhwPlxuICAgIC8vIDxodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9sYW5ndWFnZS50eXBlcy50eXBlLWp1Z2dsaW5nLnBocD5cbiAgICBcImFycmF5XCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYmluYXJ5XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FsbGFibGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY2xvbmVcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZWxzZWlmXCIsXG4gICAgXCJlbXB0eVwiLFxuICAgIFwiZW5kZGVjbGFyZVwiLFxuICAgIFwiZW5kZm9yXCIsXG4gICAgXCJlbmRmb3JlYWNoXCIsXG4gICAgXCJlbmRpZlwiLFxuICAgIFwiZW5kc3dpdGNoXCIsXG4gICAgXCJlbmR3aGlsZVwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXZhbFwiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcImZyb21cIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImluc3RhbmNlb2ZcIixcbiAgICBcImluc3RlYWRvZlwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRlZ2VyXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImlzc2V0XCIsXG4gICAgXCJpdGVyYWJsZVwiLFxuICAgIFwibGlzdFwiLFxuICAgIFwibWF0Y2h8MFwiLFxuICAgIFwibWl4ZWRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibmV2ZXJcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwib3JcIixcbiAgICBcInByaXZhdGVcIixcbiAgICBcInByb3RlY3RlZFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyZWFkb25seVwiLFxuICAgIFwicmVhbFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRyYWl0XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInVuc2V0XCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInZhclwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcInhvclwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICAvLyBTdGFuZGFyZCBQSFAgbGlicmFyeTpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5zcGwucGhwPlxuICAgIFwiRXJyb3J8MFwiLFxuICAgIFwiQXBwZW5kSXRlcmF0b3JcIixcbiAgICBcIkFyZ3VtZW50Q291bnRFcnJvclwiLFxuICAgIFwiQXJpdGhtZXRpY0Vycm9yXCIsXG4gICAgXCJBcnJheUl0ZXJhdG9yXCIsXG4gICAgXCJBcnJheU9iamVjdFwiLFxuICAgIFwiQXNzZXJ0aW9uRXJyb3JcIixcbiAgICBcIkJhZEZ1bmN0aW9uQ2FsbEV4Y2VwdGlvblwiLFxuICAgIFwiQmFkTWV0aG9kQ2FsbEV4Y2VwdGlvblwiLFxuICAgIFwiQ2FjaGluZ0l0ZXJhdG9yXCIsXG4gICAgXCJDYWxsYmFja0ZpbHRlckl0ZXJhdG9yXCIsXG4gICAgXCJDb21waWxlRXJyb3JcIixcbiAgICBcIkNvdW50YWJsZVwiLFxuICAgIFwiRGlyZWN0b3J5SXRlcmF0b3JcIixcbiAgICBcIkRpdmlzaW9uQnlaZXJvRXJyb3JcIixcbiAgICBcIkRvbWFpbkV4Y2VwdGlvblwiLFxuICAgIFwiRW1wdHlJdGVyYXRvclwiLFxuICAgIFwiRXJyb3JFeGNlcHRpb25cIixcbiAgICBcIkV4Y2VwdGlvblwiLFxuICAgIFwiRmlsZXN5c3RlbUl0ZXJhdG9yXCIsXG4gICAgXCJGaWx0ZXJJdGVyYXRvclwiLFxuICAgIFwiR2xvYkl0ZXJhdG9yXCIsXG4gICAgXCJJbmZpbml0ZUl0ZXJhdG9yXCIsXG4gICAgXCJJbnZhbGlkQXJndW1lbnRFeGNlcHRpb25cIixcbiAgICBcIkl0ZXJhdG9ySXRlcmF0b3JcIixcbiAgICBcIkxlbmd0aEV4Y2VwdGlvblwiLFxuICAgIFwiTGltaXRJdGVyYXRvclwiLFxuICAgIFwiTG9naWNFeGNlcHRpb25cIixcbiAgICBcIk11bHRpcGxlSXRlcmF0b3JcIixcbiAgICBcIk5vUmV3aW5kSXRlcmF0b3JcIixcbiAgICBcIk91dE9mQm91bmRzRXhjZXB0aW9uXCIsXG4gICAgXCJPdXRPZlJhbmdlRXhjZXB0aW9uXCIsXG4gICAgXCJPdXRlckl0ZXJhdG9yXCIsXG4gICAgXCJPdmVyZmxvd0V4Y2VwdGlvblwiLFxuICAgIFwiUGFyZW50SXRlcmF0b3JcIixcbiAgICBcIlBhcnNlRXJyb3JcIixcbiAgICBcIlJhbmdlRXhjZXB0aW9uXCIsXG4gICAgXCJSZWN1cnNpdmVBcnJheUl0ZXJhdG9yXCIsXG4gICAgXCJSZWN1cnNpdmVDYWNoaW5nSXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZUNhbGxiYWNrRmlsdGVySXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yXCIsXG4gICAgXCJSZWN1cnNpdmVGaWx0ZXJJdGVyYXRvclwiLFxuICAgIFwiUmVjdXJzaXZlSXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZVJlZ2V4SXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZVRyZWVJdGVyYXRvclwiLFxuICAgIFwiUmVnZXhJdGVyYXRvclwiLFxuICAgIFwiUnVudGltZUV4Y2VwdGlvblwiLFxuICAgIFwiU2Vla2FibGVJdGVyYXRvclwiLFxuICAgIFwiU3BsRG91Ymx5TGlua2VkTGlzdFwiLFxuICAgIFwiU3BsRmlsZUluZm9cIixcbiAgICBcIlNwbEZpbGVPYmplY3RcIixcbiAgICBcIlNwbEZpeGVkQXJyYXlcIixcbiAgICBcIlNwbEhlYXBcIixcbiAgICBcIlNwbE1heEhlYXBcIixcbiAgICBcIlNwbE1pbkhlYXBcIixcbiAgICBcIlNwbE9iamVjdFN0b3JhZ2VcIixcbiAgICBcIlNwbE9ic2VydmVyXCIsXG4gICAgXCJTcGxQcmlvcml0eVF1ZXVlXCIsXG4gICAgXCJTcGxRdWV1ZVwiLFxuICAgIFwiU3BsU3RhY2tcIixcbiAgICBcIlNwbFN1YmplY3RcIixcbiAgICBcIlNwbFRlbXBGaWxlT2JqZWN0XCIsXG4gICAgXCJUeXBlRXJyb3JcIixcbiAgICBcIlVuZGVyZmxvd0V4Y2VwdGlvblwiLFxuICAgIFwiVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uXCIsXG4gICAgXCJVbmhhbmRsZWRNYXRjaEVycm9yXCIsXG4gICAgLy8gUmVzZXJ2ZWQgaW50ZXJmYWNlczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuaW50ZXJmYWNlcy5waHA+XG4gICAgXCJBcnJheUFjY2Vzc1wiLFxuICAgIFwiQmFja2VkRW51bVwiLFxuICAgIFwiQ2xvc3VyZVwiLFxuICAgIFwiRmliZXJcIixcbiAgICBcIkdlbmVyYXRvclwiLFxuICAgIFwiSXRlcmF0b3JcIixcbiAgICBcIkl0ZXJhdG9yQWdncmVnYXRlXCIsXG4gICAgXCJTZXJpYWxpemFibGVcIixcbiAgICBcIlN0cmluZ2FibGVcIixcbiAgICBcIlRocm93YWJsZVwiLFxuICAgIFwiVHJhdmVyc2FibGVcIixcbiAgICBcIlVuaXRFbnVtXCIsXG4gICAgXCJXZWFrUmVmZXJlbmNlXCIsXG4gICAgXCJXZWFrTWFwXCIsXG4gICAgLy8gUmVzZXJ2ZWQgY2xhc3NlczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuY2xhc3Nlcy5waHA+XG4gICAgXCJEaXJlY3RvcnlcIixcbiAgICBcIl9fUEhQX0luY29tcGxldGVfQ2xhc3NcIixcbiAgICBcInBhcmVudFwiLFxuICAgIFwicGhwX3VzZXJfZmlsdGVyXCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0ZENsYXNzXCJcbiAgXTtcblxuICAvKiogRHVhbC1jYXNlIGtleXdvcmRzXG4gICAqXG4gICAqIFtcInRoZW5cIixcIkZJTEVcIl0gPT5cbiAgICogICAgIFtcInRoZW5cIiwgXCJUSEVOXCIsIFwiRklMRVwiLCBcImZpbGVcIl1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gaXRlbXMgKi9cbiAgY29uc3QgZHVhbENhc2UgPSAoaXRlbXMpID0+IHtcbiAgICAvKiogQHR5cGUgc3RyaW5nW10gKi9cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICBpZiAoaXRlbS50b0xvd2VyQ2FzZSgpID09PSBpdGVtKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0udG9VcHBlckNhc2UoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChpdGVtLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogS1dTLFxuICAgIGxpdGVyYWw6IGR1YWxDYXNlKExJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBpdGVtcyAqL1xuICBjb25zdCBub3JtYWxpemVLZXl3b3JkcyA9IChpdGVtcykgPT4ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5yZXBsYWNlKC9cXHxcXGQrJC8sIFwiXCIpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IENPTlNUUlVDVE9SX0NBTEwgPSB7IHZhcmlhbnRzOiBbXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgL25ldy8sXG4gICAgICAgIHJlZ2V4LmNvbmNhdChXSElURVNQQUNFLCBcIitcIiksXG4gICAgICAgIC8vIHRvIHByZXZlbnQgYnVpbHQgaW5zIGZyb20gYmVpbmcgY29uZnVzZWQgYXMgdGhlIGNsYXNzIGNvbnN0cnVjdG9yIGNhbGxcbiAgICAgICAgcmVnZXguY29uY2F0KFwiKD8hXCIsIG5vcm1hbGl6ZUtleXdvcmRzKEJVSUxUX0lOUykuam9pbihcIlxcXFxifFwiKSwgXCJcXFxcYilcIiksXG4gICAgICAgIFBBU0NBTF9DQVNFX0NMQVNTX05BTUVfUkUsXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHtcbiAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgIDQ6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIH0sXG4gICAgfVxuICBdIH07XG5cbiAgY29uc3QgQ09OU1RBTlRfUkVGRVJFTkNFID0gcmVnZXguY29uY2F0KElERU5UX1JFLCBcIlxcXFxiKD8hXFxcXCgpXCIpO1xuXG4gIGNvbnN0IExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIG1hdGNoOiBbXG4gICAgICAgIHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvOjovLFxuICAgICAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvKD8hY2xhc3NcXGIpLylcbiAgICAgICAgKSxcbiAgICAgICAgQ09OU1RBTlRfUkVGRVJFTkNFLFxuICAgICAgXSxcbiAgICAgIHNjb3BlOiB7IDI6IFwidmFyaWFibGUuY29uc3RhbnRcIiwgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG1hdGNoOiBbXG4gICAgICAgIC86Oi8sXG4gICAgICAgIC9jbGFzcy8sXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHsgMjogXCJ2YXJpYWJsZS5sYW5ndWFnZVwiLCB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgcmVnZXguY29uY2F0KFxuICAgICAgICAgIC86Oi8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKC8oPyFjbGFzc1xcYikvKVxuICAgICAgICApLFxuICAgICAgICBDT05TVEFOVF9SRUZFUkVOQ0UsXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHtcbiAgICAgICAgMTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgICAzOiBcInZhcmlhYmxlLmNvbnN0YW50XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgcmVnZXguY29uY2F0KFxuICAgICAgICAgIFwiOjpcIixcbiAgICAgICAgICByZWdleC5sb29rYWhlYWQoLyg/IWNsYXNzXFxiKS8pXG4gICAgICAgICksXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHsgMTogXCJ0aXRsZS5jbGFzc1wiLCB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgLzo6LyxcbiAgICAgICAgL2NsYXNzLyxcbiAgICAgIF0sXG4gICAgICBzY29wZToge1xuICAgICAgICAxOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICAgIDM6IFwidmFyaWFibGUubGFuZ3VhZ2VcIixcbiAgICAgIH0sXG4gICAgfVxuICBdIH07XG5cbiAgY29uc3QgTkFNRURfQVJHVU1FTlQgPSB7XG4gICAgc2NvcGU6ICdhdHRyJyxcbiAgICBtYXRjaDogcmVnZXguY29uY2F0KElERU5UX1JFLCByZWdleC5sb29rYWhlYWQoJzonKSwgcmVnZXgubG9va2FoZWFkKC8oPyE6OikvKSksXG4gIH07XG4gIGNvbnN0IFBBUkFNU19NT0RFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE5BTUVEX0FSR1VNRU5ULFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBMRUZUX0FORF9SSUdIVF9TSURFX09GX0RPVUJMRV9DT0xPTixcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVIsXG4gICAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICAgIF0sXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OX0lOVk9LRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXGIvLFxuICAgICAgLy8gdG8gcHJldmVudCBrZXl3b3JkcyBmcm9tIGJlaW5nIGNvbmZ1c2VkIGFzIHRoZSBmdW5jdGlvbiB0aXRsZVxuICAgICAgcmVnZXguY29uY2F0KFwiKD8hZm5cXFxcYnxmdW5jdGlvblxcXFxifFwiLCBub3JtYWxpemVLZXl3b3JkcyhLV1MpLmpvaW4oXCJcXFxcYnxcIiksIFwifFwiLCBub3JtYWxpemVLZXl3b3JkcyhCVUlMVF9JTlMpLmpvaW4oXCJcXFxcYnxcIiksIFwiXFxcXGIpXCIpLFxuICAgICAgSURFTlRfUkUsXG4gICAgICByZWdleC5jb25jYXQoV0hJVEVTUEFDRSwgXCIqXCIpLFxuICAgICAgcmVnZXgubG9va2FoZWFkKC8oPz1cXCgpLylcbiAgICBdLFxuICAgIHNjb3BlOiB7IDM6IFwidGl0bGUuZnVuY3Rpb24uaW52b2tlXCIsIH0sXG4gICAgY29udGFpbnM6IFsgUEFSQU1TX01PREUgXVxuICB9O1xuICBQQVJBTVNfTU9ERS5jb250YWlucy5wdXNoKEZVTkNUSU9OX0lOVk9LRSk7XG5cbiAgY29uc3QgQVRUUklCVVRFX0NPTlRBSU5TID0gW1xuICAgIE5BTUVEX0FSR1VNRU5ULFxuICAgIExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICBdO1xuXG4gIGNvbnN0IEFUVFJJQlVURVMgPSB7XG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvI1xcW1xccyovLCBQQVNDQUxfQ0FTRV9DTEFTU19OQU1FX1JFKSxcbiAgICBiZWdpblNjb3BlOiBcIm1ldGFcIixcbiAgICBlbmQ6IC9dLyxcbiAgICBlbmRTY29wZTogXCJtZXRhXCIsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgICAga2V5d29yZDogW1xuICAgICAgICAnbmV3JyxcbiAgICAgICAgJ2FycmF5JyxcbiAgICAgIF1cbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgICAgZW5kOiAvXS8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICAgICAga2V5d29yZDogW1xuICAgICAgICAgICAgJ25ldycsXG4gICAgICAgICAgICAnYXJyYXknLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgLi4uQVRUUklCVVRFX0NPTlRBSU5TLFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLi4uQVRUUklCVVRFX0NPTlRBSU5TLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBtYXRjaDogUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFUyxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy8vJywgJyQnKSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7IGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgbWF0Y2g6ICdAW0EtWmEtel0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBtYXRjaDogL19faGFsdF9jb21waWxlclxcKFxcKTsvLFxuICAgICAgICBrZXl3b3JkczogJ19faGFsdF9jb21waWxlcicsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIHNjb3BlOiBcImNvbW1lbnRcIixcbiAgICAgICAgICBlbmQ6IGhsanMuTUFUQ0hfTk9USElOR19SRSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXRjaDogL1xcPz4vLFxuICAgICAgICAgICAgICBzY29wZTogXCJtZXRhXCIsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUubGFuZ3VhZ2UnLFxuICAgICAgICBtYXRjaDogL1xcJHRoaXNcXGIvXG4gICAgICB9LFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBGVU5DVElPTl9JTlZPS0UsXG4gICAgICBMRUZUX0FORF9SSUdIVF9TSURFX09GX0RPVUJMRV9DT0xPTixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY29uc3QvLFxuICAgICAgICAgIC9cXHMvLFxuICAgICAgICAgIElERU5UX1JFLFxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidmFyaWFibGUuY29uc3RhbnRcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZm4gZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9bO3tdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1skJVxcXFxbXScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbktleXdvcmRzOiAndXNlJywgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJz0+JywgLy8gTm8gbWFya3VwLCBqdXN0IGEgcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgICAgIExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIE5VTUJFUlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnY2xhc3MnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6IFwiZW51bVwiLFxuICAgICAgICAgICAgaWxsZWdhbDogL1soJFwiXS9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6IFwiY2xhc3MgaW50ZXJmYWNlIHRyYWl0XCIsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvWzooJFwiXS9cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGJvdGggdXNlIGFuZCBuYW1lc3BhY2Ugc3RpbGwgdXNlIFwib2xkIHN0eWxlXCIgcnVsZXMgKHZzIG11bHRpLW1hdGNoKVxuICAgICAgLy8gYmVjYXVzZSB0aGUgbmFtZXNwYWNlIG5hbWUgY2FuIGluY2x1ZGUgYFxcYCBhbmQgd2Ugc3RpbGwgd2FudCBlYWNoXG4gICAgICAvLyBlbGVtZW50IHRvIGJlIHRyZWF0ZWQgYXMgaXRzIG93biAqaW5kaXZpZHVhbCogdGl0bGVcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25hbWVzcGFjZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGlsbGVnYWw6IC9bLiddLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5pbmhlcml0KGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCB7IHNjb3BlOiBcInRpdGxlLmNsYXNzXCIgfSkgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3VzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gVE9ETzogdGl0bGUuZnVuY3Rpb24gdnMgdGl0bGUuY2xhc3NcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogL1xcYihhc3xjb25zdHxmdW5jdGlvbilcXGIvLFxuICAgICAgICAgICAgc2NvcGU6IFwia2V5d29yZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBUT0RPOiBjb3VsZCBiZSB0aXRsZS5jbGFzcyBvciB0aXRsZS5mdW5jdGlvblxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVIsXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBocDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFBIUCBUZW1wbGF0ZVxuUmVxdWlyZXM6IHhtbC5qcywgcGhwLmpzXG5BdXRob3I6IEpvc2ggR29lYmVsIDxoZWxsb0Bqb3NoZ29lYmVsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBocC5uZXRcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHBocFRlbXBsYXRlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcIlBIUCB0ZW1wbGF0ZVwiLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzxcXD8ocGhwfD0pPy8sXG4gICAgICAgIGVuZDogL1xcPz4vLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BocCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGUgcGhwIGNsb3NpbmcgdGFnID8+IHRvIGNsb3NlIHRoZSBQSFAgYmxvY2sgd2hlblxuICAgICAgICAgIC8vIGluc2lkZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBibG9ja3M6XG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcvXFxcXConLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCovJyxcbiAgICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYlwiJyxcbiAgICAgICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYlxcJycsXG4gICAgICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge1xuICAgICAgICAgICAgaWxsZWdhbDogbnVsbCxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBudWxsLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7XG4gICAgICAgICAgICBpbGxlZ2FsOiBudWxsLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgICAgICAgICAgY29udGFpbnM6IG51bGwsXG4gICAgICAgICAgICBza2lwOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwaHBUZW1wbGF0ZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFBsYWluIHRleHRcbkF1dGhvcjogRWdvciBSb2dvdiAoZS5yb2dvdkBwb3N0Z3Jlc3Byby5ydSlcbkRlc2NyaXB0aW9uOiBQbGFpbiB0ZXh0IHdpdGhvdXQgYW55IGhpZ2hsaWdodGluZy5cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHBsYWludGV4dChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BsYWluIHRleHQnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICd0ZXh0JyxcbiAgICAgICd0eHQnXG4gICAgXSxcbiAgICBkaXNhYmxlQXV0b2RldGVjdDogdHJ1ZVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBsYWludGV4dDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFBvbnlcbkF1dGhvcjogSm9lIEVsaSBNY0lsdmFpbiA8am9lLmVsaS5tYWNAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFBvbnkgaXMgYW4gb3Blbi1zb3VyY2UsIG9iamVjdC1vcmllbnRlZCwgYWN0b3ItbW9kZWwsXG4gICAgICAgICAgICAgY2FwYWJpbGl0aWVzLXNlY3VyZSwgaGlnaCBwZXJmb3JtYW5jZSBwcm9ncmFtbWluZyBsYW5ndWFnZS5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBvbnlsYW5nLmlvXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG5mdW5jdGlvbiBwb255KGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDpcbiAgICAgICdhY3RvciBhZGRyZXNzb2YgYW5kIGFzIGJlIGJyZWFrIGNsYXNzIGNvbXBpbGVfZXJyb3IgY29tcGlsZV9pbnRyaW5zaWMgJ1xuICAgICAgKyAnY29uc3VtZSBjb250aW51ZSBkZWxlZ2F0ZSBkaWdlc3RvZiBkbyBlbHNlIGVsc2VpZiBlbWJlZCBlbmQgZXJyb3IgJ1xuICAgICAgKyAnZm9yIGZ1biBpZiBpZmRlZiBpbiBpbnRlcmZhY2UgaXMgaXNudCBsYW1iZGEgbGV0IG1hdGNoIG5ldyBub3Qgb2JqZWN0ICdcbiAgICAgICsgJ29yIHByaW1pdGl2ZSByZWNvdmVyIHJlcGVhdCByZXR1cm4gc3RydWN0IHRoZW4gdHJhaXQgdHJ5IHR5cGUgdW50aWwgJ1xuICAgICAgKyAndXNlIHZhciB3aGVyZSB3aGlsZSB3aXRoIHhvcicsXG4gICAgbWV0YTpcbiAgICAgICdpc28gdmFsIHRhZyB0cm4gYm94IHJlZicsXG4gICAgbGl0ZXJhbDpcbiAgICAgICd0aGlzIGZhbHNlIHRydWUnXG4gIH07XG5cbiAgY29uc3QgVFJJUExFX1FVT1RFX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcIlwiXCInLFxuICAgIGVuZDogJ1wiXCJcIicsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIGNvbnN0IFFVT1RFX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcIicsXG4gICAgZW5kOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gIH07XG5cbiAgY29uc3QgU0lOR0xFX1FVT1RFX0NIQVJfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFwnJyxcbiAgICBlbmQ6ICdcXCcnLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFRZUEVfTkFNRSA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiXz9bQS1aXVtcXFxcd10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBQUklNRURfTkFNRSA9IHtcbiAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXCcnLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICcoLT8pKFxcXFxiMFt4WF1bYS1mQS1GMC05XSt8XFxcXGIwW2JCXVswMV0rfChcXFxcYlxcXFxkKyhfXFxcXGQrKT8oXFxcXC5cXFxcZCopP3xcXFxcLlxcXFxkKykoW2VFXVstK10/XFxcXGQrKT8pJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogVGhlIGBGVU5DVElPTmAgYW5kIGBDTEFTU2AgbW9kZXMgd2VyZSBpbnRlbnRpb25hbGx5IHJlbW92ZWQgdG8gc2ltcGxpZnlcbiAgICogaGlnaGxpZ2h0aW5nIGFuZCBmaXggY2FzZXMgbGlrZVxuICAgKiBgYGBcbiAgICogaW50ZXJmYWNlIEl0ZXJhdG9yW0E6IEFdXG4gICAqICAgZnVuIGhhc19uZXh0KCk6IEJvb2xcbiAgICogICBmdW4gbmV4dCgpOiBBP1xuICAgKiBgYGBcbiAgICogd2hlcmUgaXQgaXMgdmFsaWQgdG8gaGF2ZSBhIGZ1bmN0aW9uIGhlYWQgd2l0aG91dCBhIGJvZHlcbiAgICovXG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUG9ueScsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUWVBFX05BTUUsXG4gICAgICBUUklQTEVfUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBRVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFNJTkdMRV9RVU9URV9DSEFSX01PREUsXG4gICAgICBQUklNRURfTkFNRSxcbiAgICAgIE5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwb255O1xuIiwgIi8qXG5MYW5ndWFnZTogUG93ZXJTaGVsbFxuRGVzY3JpcHRpb246IFBvd2VyU2hlbGwgaXMgYSB0YXNrLWJhc2VkIGNvbW1hbmQtbGluZSBzaGVsbCBhbmQgc2NyaXB0aW5nIGxhbmd1YWdlIGJ1aWx0IG9uIC5ORVQuXG5BdXRob3I6IERhdmlkIE1vaHVuZHJvIDxkYXZpZEBtb2h1bmRyby5jb20+XG5Db250cmlidXRvcnM6IE5pY2hvbGFzIEJsdW1oYXJkdCA8bmJsdW1oYXJkdEBuYmx1bWhhcmR0LmNvbT4sIFZpY3RvciBaaG91IDxPaUNNdWRraXBzQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4sIE5pY29sYXMgTGUgR2FsbCA8Y29udGFjdEBubGVnYWxsLmZyPlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcG93ZXJzaGVsbC9cbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbmZ1bmN0aW9uIHBvd2Vyc2hlbGwoaGxqcykge1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcInN0cmluZ1wiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiYnl0ZVwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJzaW5nbGVcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiRGF0ZVRpbWVcIixcbiAgICBcInhtbFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImhhc2h0YWJsZVwiLFxuICAgIFwidm9pZFwiXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcG93ZXJzaGVsbC9zY3JpcHRpbmcvZGV2ZWxvcGVyL2NtZGxldC9hcHByb3ZlZC12ZXJicy1mb3Itd2luZG93cy1wb3dlcnNoZWxsLWNvbW1hbmRzXG4gIGNvbnN0IFZBTElEX1ZFUkJTID1cbiAgICAnQWRkfENsZWFyfENsb3NlfENvcHl8RW50ZXJ8RXhpdHxGaW5kfEZvcm1hdHxHZXR8SGlkZXxKb2lufExvY2t8J1xuICAgICsgJ01vdmV8TmV3fE9wZW58T3B0aW1pemV8UG9wfFB1c2h8UmVkb3xSZW1vdmV8UmVuYW1lfFJlc2V0fFJlc2l6ZXwnXG4gICAgKyAnU2VhcmNofFNlbGVjdHxTZXR8U2hvd3xTa2lwfFNwbGl0fFN0ZXB8U3dpdGNofFVuZG98VW5sb2NrfCdcbiAgICArICdXYXRjaHxCYWNrdXB8Q2hlY2twb2ludHxDb21wYXJlfENvbXByZXNzfENvbnZlcnR8Q29udmVydEZyb218J1xuICAgICsgJ0NvbnZlcnRUb3xEaXNtb3VudHxFZGl0fEV4cGFuZHxFeHBvcnR8R3JvdXB8SW1wb3J0fEluaXRpYWxpemV8J1xuICAgICsgJ0xpbWl0fE1lcmdlfE1vdW50fE91dHxQdWJsaXNofFJlc3RvcmV8U2F2ZXxTeW5jfFVucHVibGlzaHxVcGRhdGV8J1xuICAgICsgJ0FwcHJvdmV8QXNzZXJ0fEJ1aWxkfENvbXBsZXRlfENvbmZpcm18RGVueXxEZXBsb3l8RGlzYWJsZXxFbmFibGV8SW5zdGFsbHxJbnZva2V8J1xuICAgICsgJ1JlZ2lzdGVyfFJlcXVlc3R8UmVzdGFydHxSZXN1bWV8U3RhcnR8U3RvcHxTdWJtaXR8U3VzcGVuZHxVbmluc3RhbGx8J1xuICAgICsgJ1VucmVnaXN0ZXJ8V2FpdHxEZWJ1Z3xNZWFzdXJlfFBpbmd8UmVwYWlyfFJlc29sdmV8VGVzdHxUcmFjZXxDb25uZWN0fCdcbiAgICArICdEaXNjb25uZWN0fFJlYWR8UmVjZWl2ZXxTZW5kfFdyaXRlfEJsb2NrfEdyYW50fFByb3RlY3R8UmV2b2tlfFVuYmxvY2t8J1xuICAgICsgJ1VucHJvdGVjdHxVc2V8Rm9yRWFjaHxTb3J0fFRlZXxXaGVyZSc7XG5cbiAgY29uc3QgQ09NUEFSSVNPTl9PUEVSQVRPUlMgPVxuICAgICctYW5kfC1hc3wtYmFuZHwtYm5vdHwtYm9yfC1ieG9yfC1jYXNlc2Vuc2l0aXZlfC1jY29udGFpbnN8LWNlcXwtY2dlfC1jZ3R8J1xuICAgICsgJy1jbGV8LWNsaWtlfC1jbHR8LWNtYXRjaHwtY25lfC1jbm90Y29udGFpbnN8LWNub3RsaWtlfC1jbm90bWF0Y2h8LWNvbnRhaW5zfCdcbiAgICArICctY3JlcGxhY2V8LWNzcGxpdHwtZXF8LWV4YWN0fC1mfC1maWxlfC1nZXwtZ3R8LWljb250YWluc3wtaWVxfC1pZ2V8LWlndHwnXG4gICAgKyAnLWlsZXwtaWxpa2V8LWlsdHwtaW1hdGNofC1pbnwtaW5lfC1pbm90Y29udGFpbnN8LWlub3RsaWtlfC1pbm90bWF0Y2h8J1xuICAgICsgJy1pcmVwbGFjZXwtaXN8LWlzbm90fC1pc3BsaXR8LWpvaW58LWxlfC1saWtlfC1sdHwtbWF0Y2h8LW5lfC1ub3R8J1xuICAgICsgJy1ub3Rjb250YWluc3wtbm90aW58LW5vdGxpa2V8LW5vdG1hdGNofC1vcnwtcmVnZXh8LXJlcGxhY2V8LXNobHwtc2hyfCdcbiAgICArICctc3BsaXR8LXdpbGRjYXJkfC14b3InO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvLT9bQS16XFwuXFwtXStcXGIvLFxuICAgIGtleXdvcmQ6XG4gICAgICAnaWYgZWxzZSBmb3JlYWNoIHJldHVybiBkbyB3aGlsZSB1bnRpbCBlbHNlaWYgYmVnaW4gZm9yIHRyYXAgZGF0YSBkeW5hbWljcGFyYW0gJ1xuICAgICAgKyAnZW5kIGJyZWFrIHRocm93IHBhcmFtIGNvbnRpbnVlIGZpbmFsbHkgaW4gc3dpdGNoIGV4aXQgZmlsdGVyIHRyeSBwcm9jZXNzIGNhdGNoICdcbiAgICAgICsgJ2hpZGRlbiBzdGF0aWMgcGFyYW1ldGVyJyxcbiAgICAvLyBcImVjaG9cIiByZWxldmFuY2UgaGFzIGJlZW4gc2V0IHRvIDAgdG8gYXZvaWQgYXV0by1kZXRlY3QgY29uZmxpY3RzIHdpdGggc2hlbGwgdHJhbnNjcmlwdHNcbiAgICBidWlsdF9pbjpcbiAgICAgICdhYyBhc25wIGNhdCBjZCBDRlMgY2hkaXIgY2xjIGNsZWFyIGNsaHkgY2xpIGNscCBjbHMgY2x2IGNuc24gY29tcGFyZSBjb3B5IGNwICdcbiAgICAgICsgJ2NwaSBjcHAgY3VybCBjdnBhIGRicCBkZWwgZGlmZiBkaXIgZG5zbiBlYnAgZWNob3wwIGVwYWwgZXBjc3YgZXBzbiBlcmFzZSBldHNuIGV4c24gZmMgZmh4ICdcbiAgICAgICsgJ2ZsIGZ0IGZ3IGdhbCBnYnAgZ2MgZ2NiIGdjaSBnY20gZ2NzIGdkciBnZXJyIGdoeSBnaSBnaW4gZ2piIGdsIGdtIGdtbyBncCBncHMgZ3B2IGdyb3VwICdcbiAgICAgICsgJ2dzbiBnc25wIGdzdiBndHogZ3UgZ3YgZ3dtaSBoIGhpc3RvcnkgaWNtIGlleCBpaHkgaWkgaXBhbCBpcGNzdiBpcG1vIGlwc24gaXJtIGlzZSBpd21pICdcbiAgICAgICsgJ2l3ciBraWxsIGxwIGxzIG1hbiBtZCBtZWFzdXJlIG1pIG1vdW50IG1vdmUgbXAgbXYgbmFsIG5kciBuaSBubW8gbnBzc2MgbnNuIG52IG9ndiBvaCAnXG4gICAgICArICdwb3BkIHBzIHB1c2hkIHB3ZCByIHJicCByY2piIHJjc24gcmQgcmRyIHJlbiByaSByamIgcm0gcm1kaXIgcm1vIHJuaSBybnAgcnAgcnNuIHJzbnAgJ1xuICAgICAgKyAncnVqYiBydiBydnBhIHJ3bWkgc2FqYiBzYWwgc2FwcyBzYXN2IHNicCBzYyBzY2Igc2VsZWN0IHNldCBzaGNtIHNpIHNsIHNsZWVwIHNscyBzb3J0IHNwICdcbiAgICAgICsgJ3NwamIgc3BwcyBzcHN2IHN0YXJ0IHN0eiBzdWpiIHN2IHN3bWkgdGVlIHRyY20gdHlwZSB3Z2V0IHdoZXJlIHdqYiB3cml0ZSdcbiAgICAvLyBUT0RPOiAndmFsaWRhdGVbQS1aXSsnIGNhbid0IHdvcmsgaW4ga2V5d29yZHNcbiAgfTtcblxuICBjb25zdCBUSVRMRV9OQU1FX1JFID0gL1xcd1tcXHdcXGRdKigoLSlbXFx3XFxkXSspKi87XG5cbiAgY29uc3QgQkFDS1RJQ0tfRVNDQVBFID0ge1xuICAgIGJlZ2luOiAnYFtcXFxcc1xcXFxTXScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1xcJFxcQi8gfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAvXFwkdGhpcy9cbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAvXFwkW1xcd1xcZF1bXFx3XFxkXzpdKi8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBMSVRFUkFMID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIGJlZ2luOiAvXFwkKG51bGx8dHJ1ZXxmYWxzZSlcXGIvXG4gIH07XG5cbiAgY29uc3QgUVVPVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogXCJzdHJpbmdcIixcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL0BcIi8sXG4gICAgICAgIGVuZDogL15cIkAvXG4gICAgICB9XG4gICAgXSxcbiAgICBjb250YWluczogW1xuICAgICAgQkFDS1RJQ0tfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkW0Etel0vLFxuICAgICAgICBlbmQ6IC9bXkEtel0vXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEFQT1NfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvQCcvLFxuICAgICAgICBlbmQ6IC9eJ0AvXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBTX0hFTFBUQUdTID0ge1xuICAgIGNsYXNzTmFtZTogXCJkb2N0YWdcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgLyogbm8gcGFyYW1hdGVyIGhlbHAgdGFncyAqL1xuICAgICAgeyBiZWdpbjogL1xcLihzeW5vcHNpc3xkZXNjcmlwdGlvbnxleGFtcGxlfGlucHV0c3xvdXRwdXRzfG5vdGVzfGxpbmt8Y29tcG9uZW50fHJvbGV8ZnVuY3Rpb25hbGl0eSkvIH0sXG4gICAgICAvKiBvbmUgcGFyYW1ldGVyIGhlbHAgdGFncyAqL1xuICAgICAgeyBiZWdpbjogL1xcLihwYXJhbWV0ZXJ8Zm9yd2FyZGhlbHB0YXJnZXRuYW1lfGZvcndhcmRoZWxwY2F0ZWdvcnl8cmVtb3RlaGVscHJ1bnNwYWNlfGV4dGVybmFsaGVscClcXHMrXFxTKy8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBQU19DT01NRU5UID0gaGxqcy5pbmhlcml0KFxuICAgIGhsanMuQ09NTUVOVChudWxsLCBudWxsKSxcbiAgICB7XG4gICAgICB2YXJpYW50czogW1xuICAgICAgICAvKiBzaW5nbGUtbGluZSBjb21tZW50ICovXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLyMvLFxuICAgICAgICAgIGVuZDogLyQvXG4gICAgICAgIH0sXG4gICAgICAgIC8qIG11bHRpLWxpbmUgY29tbWVudCAqL1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC88Iy8sXG4gICAgICAgICAgZW5kOiAvIz4vXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBjb250YWluczogWyBQU19IRUxQVEFHUyBdXG4gICAgfVxuICApO1xuXG4gIGNvbnN0IENNRExFVFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIHZhcmlhbnRzOiBbIHsgYmVnaW46ICcoJy5jb25jYXQoVkFMSURfVkVSQlMsICcpKygtKVtcXFxcd1xcXFxkXSsnKSB9IF1cbiAgfTtcblxuICBjb25zdCBQU19DTEFTUyA9IHtcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGVudW0nLFxuICAgIGVuZDogL1xccypbe10vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuVElUTEVfTU9ERSBdXG4gIH07XG5cbiAgY29uc3QgUFNfRlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvZnVuY3Rpb25cXHMrLyxcbiAgICBlbmQ6IC9cXHMqXFx7fCQvLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcImZ1bmN0aW9uXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInRpdGxlXCIsXG4gICAgICAgIGJlZ2luOiBUSVRMRV9OQU1FX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY2xhc3NOYW1lOiBcInBhcmFtc1wiLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbIFZBUiBdXG4gICAgICB9XG4gICAgICAvLyBDTURMRVRTXG4gICAgXVxuICB9O1xuXG4gIC8vIFVzaW5nIHN0YXRtZW50LCBwbHVzIHR5cGUsIHBsdXMgYXNzZW1ibHkgbmFtZS5cbiAgY29uc3QgUFNfVVNJTkcgPSB7XG4gICAgYmVnaW46IC91c2luZ1xccy8sXG4gICAgZW5kOiAvJC8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEFQT1NfU1RSSU5HLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC8odXNpbmd8YXNzZW1ibHl8Y29tbWFuZHxtb2R1bGV8bmFtZXNwYWNlfHR5cGUpL1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBDb21wZXJpc29uIG9wZXJhdG9ycyAmIGZ1bmN0aW9uIG5hbWVkIHBhcmFtZXRlcnMuXG4gIGNvbnN0IFBTX0FSR1VNRU5UUyA9IHsgdmFyaWFudHM6IFtcbiAgICAvLyBQUyBsaXRlcmFscyBhcmUgcHJldHR5IHZlcmJvc2Ugc28gaXQncyBhIGdvb2QgaWRlYSB0byBhY2NlbnQgdGhlbSBhIGJpdC5cbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdvcGVyYXRvcicsXG4gICAgICBiZWdpbjogJygnLmNvbmNhdChDT01QQVJJU09OX09QRVJBVE9SUywgJylcXFxcYicpXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgIGJlZ2luOiAvKC0pezEsMn1bXFx3XFxkLV0rLyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXSB9O1xuXG4gIGNvbnN0IEhBU0hfU0lHTlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItdGFnJyxcbiAgICBiZWdpbjogL0BcXEIvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8vIEl0J3MgYSB2ZXJ5IGdlbmVyYWwgcnVsZSBzbyBJJ2xsIG5hcnJvdyBpdCBhIGJpdCB3aXRoIHNvbWUgc3RyaWN0IGJvdW5kYXJpZXNcbiAgLy8gdG8gYXZvaWQgYW55IHBvc3NpYmxlIGZhbHNlLXBvc2l0aXZlIGNvbGxpc2lvbnMhXG4gIGNvbnN0IFBTX01FVEhPRFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvXFxbLipcXF1cXHMqW1xcd10rWyBdPz9cXCgvLFxuICAgIGVuZDogLyQvLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcoJy5jb25jYXQoXG4gICAgICAgICAgS0VZV09SRFMua2V5d29yZC50b1N0cmluZygpLnJlcGxhY2UoL1xccy9nLCAnfCdcbiAgICAgICAgICApLCAnKVxcXFxiJyksXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgZW5kc1BhcmVudDogdHJ1ZSB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBHRU5UTEVNQU5TX1NFVCA9IFtcbiAgICAvLyBTVEFUSUNfTUVNQkVSLFxuICAgIFBTX01FVEhPRFMsXG4gICAgUFNfQ09NTUVOVCxcbiAgICBCQUNLVElDS19FU0NBUEUsXG4gICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICBRVU9URV9TVFJJTkcsXG4gICAgQVBPU19TVFJJTkcsXG4gICAgLy8gUFNfTkVXX09CSkVDVF9UWVBFLFxuICAgIENNRExFVFMsXG4gICAgVkFSLFxuICAgIExJVEVSQUwsXG4gICAgSEFTSF9TSUdOU1xuICBdO1xuXG4gIGNvbnN0IFBTX1RZUEUgPSB7XG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXS5jb25jYXQoXG4gICAgICAnc2VsZicsXG4gICAgICBHRU5UTEVNQU5TX1NFVCxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiKFwiICsgVFlQRVMuam9pbihcInxcIikgKyBcIilcIixcbiAgICAgICAgY2xhc3NOYW1lOiBcImJ1aWx0X2luXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGJlZ2luOiAvW1xcLlxcd1xcZF0rLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgKVxuICB9O1xuXG4gIFBTX01FVEhPRFMuY29udGFpbnMudW5zaGlmdChQU19UWVBFKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQb3dlclNoZWxsJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICBcInB3c2hcIixcbiAgICAgIFwicHNcIixcbiAgICAgIFwicHMxXCJcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBHRU5UTEVNQU5TX1NFVC5jb25jYXQoXG4gICAgICBQU19DTEFTUyxcbiAgICAgIFBTX0ZVTkNUSU9OLFxuICAgICAgUFNfVVNJTkcsXG4gICAgICBQU19BUkdVTUVOVFMsXG4gICAgICBQU19UWVBFXG4gICAgKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBvd2Vyc2hlbGw7XG4iLCAiLypcbkxhbmd1YWdlOiBQcm9jZXNzaW5nXG5EZXNjcmlwdGlvbjogUHJvY2Vzc2luZyBpcyBhIGZsZXhpYmxlIHNvZnR3YXJlIHNrZXRjaGJvb2sgYW5kIGEgbGFuZ3VhZ2UgZm9yIGxlYXJuaW5nIGhvdyB0byBjb2RlIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgdmlzdWFsIGFydHMuXG5BdXRob3I6IEVyaWsgUGFsdWthIDxlcmlrLnBhbHVrYUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3Byb2Nlc3Npbmcub3JnXG5DYXRlZ29yeTogZ3JhcGhpY3NcbiovXG5cbmZ1bmN0aW9uIHByb2Nlc3NpbmcoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImRpc3BsYXlIZWlnaHRcIixcbiAgICBcImRpc3BsYXlXaWR0aFwiLFxuICAgIFwibW91c2VZXCIsXG4gICAgXCJtb3VzZVhcIixcbiAgICBcIm1vdXNlUHJlc3NlZFwiLFxuICAgIFwicG1vdXNlWFwiLFxuICAgIFwicG1vdXNlWVwiLFxuICAgIFwia2V5XCIsXG4gICAgXCJrZXlDb2RlXCIsXG4gICAgXCJwaXhlbHNcIixcbiAgICBcImZvY3VzZWRcIixcbiAgICBcImZyYW1lQ291bnRcIixcbiAgICBcImZyYW1lUmF0ZVwiLFxuICAgIFwiaGVpZ2h0XCIsXG4gICAgXCJ3aWR0aFwiLFxuICAgIFwic2l6ZVwiLFxuICAgIFwiY3JlYXRlR3JhcGhpY3NcIixcbiAgICBcImJlZ2luRHJhd1wiLFxuICAgIFwiY3JlYXRlU2hhcGVcIixcbiAgICBcImxvYWRTaGFwZVwiLFxuICAgIFwiUFNoYXBlXCIsXG4gICAgXCJhcmNcIixcbiAgICBcImVsbGlwc2VcIixcbiAgICBcImxpbmVcIixcbiAgICBcInBvaW50XCIsXG4gICAgXCJxdWFkXCIsXG4gICAgXCJyZWN0XCIsXG4gICAgXCJ0cmlhbmdsZVwiLFxuICAgIFwiYmV6aWVyXCIsXG4gICAgXCJiZXppZXJEZXRhaWxcIixcbiAgICBcImJlemllclBvaW50XCIsXG4gICAgXCJiZXppZXJUYW5nZW50XCIsXG4gICAgXCJjdXJ2ZVwiLFxuICAgIFwiY3VydmVEZXRhaWxcIixcbiAgICBcImN1cnZlUG9pbnRcIixcbiAgICBcImN1cnZlVGFuZ2VudFwiLFxuICAgIFwiY3VydmVUaWdodG5lc3NcIixcbiAgICBcInNoYXBlXCIsXG4gICAgXCJzaGFwZU1vZGVcIixcbiAgICBcImJlZ2luQ29udG91clwiLFxuICAgIFwiYmVnaW5TaGFwZVwiLFxuICAgIFwiYmV6aWVyVmVydGV4XCIsXG4gICAgXCJjdXJ2ZVZlcnRleFwiLFxuICAgIFwiZW5kQ29udG91clwiLFxuICAgIFwiZW5kU2hhcGVcIixcbiAgICBcInF1YWRyYXRpY1ZlcnRleFwiLFxuICAgIFwidmVydGV4XCIsXG4gICAgXCJlbGxpcHNlTW9kZVwiLFxuICAgIFwibm9TbW9vdGhcIixcbiAgICBcInJlY3RNb2RlXCIsXG4gICAgXCJzbW9vdGhcIixcbiAgICBcInN0cm9rZUNhcFwiLFxuICAgIFwic3Ryb2tlSm9pblwiLFxuICAgIFwic3Ryb2tlV2VpZ2h0XCIsXG4gICAgXCJtb3VzZUNsaWNrZWRcIixcbiAgICBcIm1vdXNlRHJhZ2dlZFwiLFxuICAgIFwibW91c2VNb3ZlZFwiLFxuICAgIFwibW91c2VQcmVzc2VkXCIsXG4gICAgXCJtb3VzZVJlbGVhc2VkXCIsXG4gICAgXCJtb3VzZVdoZWVsXCIsXG4gICAgXCJrZXlQcmVzc2VkXCIsXG4gICAgXCJrZXlQcmVzc2Vka2V5UmVsZWFzZWRcIixcbiAgICBcImtleVR5cGVkXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicHJpbnRsblwiLFxuICAgIFwic2F2ZVwiLFxuICAgIFwic2F2ZUZyYW1lXCIsXG4gICAgXCJkYXlcIixcbiAgICBcImhvdXJcIixcbiAgICBcIm1pbGxpc1wiLFxuICAgIFwibWludXRlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwic2Vjb25kXCIsXG4gICAgXCJ5ZWFyXCIsXG4gICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgXCJjbGVhclwiLFxuICAgIFwiY29sb3JNb2RlXCIsXG4gICAgXCJmaWxsXCIsXG4gICAgXCJub0ZpbGxcIixcbiAgICBcIm5vU3Ryb2tlXCIsXG4gICAgXCJzdHJva2VcIixcbiAgICBcImFscGhhXCIsXG4gICAgXCJibHVlXCIsXG4gICAgXCJicmlnaHRuZXNzXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiZ3JlZW5cIixcbiAgICBcImh1ZVwiLFxuICAgIFwibGVycENvbG9yXCIsXG4gICAgXCJyZWRcIixcbiAgICBcInNhdHVyYXRpb25cIixcbiAgICBcIm1vZGVsWFwiLFxuICAgIFwibW9kZWxZXCIsXG4gICAgXCJtb2RlbFpcIixcbiAgICBcInNjcmVlblhcIixcbiAgICBcInNjcmVlbllcIixcbiAgICBcInNjcmVlblpcIixcbiAgICBcImFtYmllbnRcIixcbiAgICBcImVtaXNzaXZlXCIsXG4gICAgXCJzaGluaW5lc3NcIixcbiAgICBcInNwZWN1bGFyXCIsXG4gICAgXCJhZGRcIixcbiAgICBcImNyZWF0ZUltYWdlXCIsXG4gICAgXCJiZWdpbkNhbWVyYVwiLFxuICAgIFwiY2FtZXJhXCIsXG4gICAgXCJlbmRDYW1lcmFcIixcbiAgICBcImZydXN0dW1cIixcbiAgICBcIm9ydGhvXCIsXG4gICAgXCJwZXJzcGVjdGl2ZVwiLFxuICAgIFwicHJpbnRDYW1lcmFcIixcbiAgICBcInByaW50UHJvamVjdGlvblwiLFxuICAgIFwiY3Vyc29yXCIsXG4gICAgXCJmcmFtZVJhdGVcIixcbiAgICBcIm5vQ3Vyc29yXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJsb29wXCIsXG4gICAgXCJub0xvb3BcIixcbiAgICBcInBvcFN0eWxlXCIsXG4gICAgXCJwdXNoU3R5bGVcIixcbiAgICBcInJlZHJhd1wiLFxuICAgIFwiYmluYXJ5XCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiaGV4XCIsXG4gICAgXCJpbnRcIixcbiAgICBcInN0clwiLFxuICAgIFwidW5iaW5hcnlcIixcbiAgICBcInVuaGV4XCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF0Y2hBbGxcIixcbiAgICBcIm5mXCIsXG4gICAgXCJuZmNcIixcbiAgICBcIm5mcFwiLFxuICAgIFwibmZzXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3BsaXRUb2tlbnNcIixcbiAgICBcInRyaW1cIixcbiAgICBcImFwcGVuZFwiLFxuICAgIFwiYXJyYXlDb3B5XCIsXG4gICAgXCJjb25jYXRcIixcbiAgICBcImV4cGFuZFwiLFxuICAgIFwicmV2ZXJzZVwiLFxuICAgIFwic2hvcnRlblwiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3BsaWNlXCIsXG4gICAgXCJzdWJzZXRcIixcbiAgICBcImJveFwiLFxuICAgIFwic3BoZXJlXCIsXG4gICAgXCJzcGhlcmVEZXRhaWxcIixcbiAgICBcImNyZWF0ZUlucHV0XCIsXG4gICAgXCJjcmVhdGVSZWFkZXJcIixcbiAgICBcImxvYWRCeXRlc1wiLFxuICAgIFwibG9hZEpTT05BcnJheVwiLFxuICAgIFwibG9hZEpTT05PYmplY3RcIixcbiAgICBcImxvYWRTdHJpbmdzXCIsXG4gICAgXCJsb2FkVGFibGVcIixcbiAgICBcImxvYWRYTUxcIixcbiAgICBcIm9wZW5cIixcbiAgICBcInBhcnNlWE1MXCIsXG4gICAgXCJzYXZlVGFibGVcIixcbiAgICBcInNlbGVjdEZvbGRlclwiLFxuICAgIFwic2VsZWN0SW5wdXRcIixcbiAgICBcImJlZ2luUmF3XCIsXG4gICAgXCJiZWdpblJlY29yZFwiLFxuICAgIFwiY3JlYXRlT3V0cHV0XCIsXG4gICAgXCJjcmVhdGVXcml0ZXJcIixcbiAgICBcImVuZFJhd1wiLFxuICAgIFwiZW5kUmVjb3JkXCIsXG4gICAgXCJQcmludFdyaXRlcnNhdmVCeXRlc1wiLFxuICAgIFwic2F2ZUpTT05BcnJheVwiLFxuICAgIFwic2F2ZUpTT05PYmplY3RcIixcbiAgICBcInNhdmVTdHJlYW1cIixcbiAgICBcInNhdmVTdHJpbmdzXCIsXG4gICAgXCJzYXZlWE1MXCIsXG4gICAgXCJzZWxlY3RPdXRwdXRcIixcbiAgICBcInBvcE1hdHJpeFwiLFxuICAgIFwicHJpbnRNYXRyaXhcIixcbiAgICBcInB1c2hNYXRyaXhcIixcbiAgICBcInJlc2V0TWF0cml4XCIsXG4gICAgXCJyb3RhdGVcIixcbiAgICBcInJvdGF0ZVhcIixcbiAgICBcInJvdGF0ZVlcIixcbiAgICBcInJvdGF0ZVpcIixcbiAgICBcInNjYWxlXCIsXG4gICAgXCJzaGVhclhcIixcbiAgICBcInNoZWFyWVwiLFxuICAgIFwidHJhbnNsYXRlXCIsXG4gICAgXCJhbWJpZW50TGlnaHRcIixcbiAgICBcImRpcmVjdGlvbmFsTGlnaHRcIixcbiAgICBcImxpZ2h0RmFsbG9mZlwiLFxuICAgIFwibGlnaHRzXCIsXG4gICAgXCJsaWdodFNwZWN1bGFyXCIsXG4gICAgXCJub0xpZ2h0c1wiLFxuICAgIFwibm9ybWFsXCIsXG4gICAgXCJwb2ludExpZ2h0XCIsXG4gICAgXCJzcG90TGlnaHRcIixcbiAgICBcImltYWdlXCIsXG4gICAgXCJpbWFnZU1vZGVcIixcbiAgICBcImxvYWRJbWFnZVwiLFxuICAgIFwibm9UaW50XCIsXG4gICAgXCJyZXF1ZXN0SW1hZ2VcIixcbiAgICBcInRpbnRcIixcbiAgICBcInRleHR1cmVcIixcbiAgICBcInRleHR1cmVNb2RlXCIsXG4gICAgXCJ0ZXh0dXJlV3JhcFwiLFxuICAgIFwiYmxlbmRcIixcbiAgICBcImNvcHlcIixcbiAgICBcImZpbHRlclwiLFxuICAgIFwiZ2V0XCIsXG4gICAgXCJsb2FkUGl4ZWxzXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInVwZGF0ZVBpeGVsc1wiLFxuICAgIFwiYmxlbmRNb2RlXCIsXG4gICAgXCJsb2FkU2hhZGVyXCIsXG4gICAgXCJQU2hhZGVycmVzZXRTaGFkZXJcIixcbiAgICBcInNoYWRlclwiLFxuICAgIFwiY3JlYXRlRm9udFwiLFxuICAgIFwibG9hZEZvbnRcIixcbiAgICBcInRleHRcIixcbiAgICBcInRleHRGb250XCIsXG4gICAgXCJ0ZXh0QWxpZ25cIixcbiAgICBcInRleHRMZWFkaW5nXCIsXG4gICAgXCJ0ZXh0TW9kZVwiLFxuICAgIFwidGV4dFNpemVcIixcbiAgICBcInRleHRXaWR0aFwiLFxuICAgIFwidGV4dEFzY2VudFwiLFxuICAgIFwidGV4dERlc2NlbnRcIixcbiAgICBcImFic1wiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY29uc3RyYWluXCIsXG4gICAgXCJkaXN0XCIsXG4gICAgXCJleHBcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJsZXJwXCIsXG4gICAgXCJsb2dcIixcbiAgICBcIm1hZ1wiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibm9ybVwiLFxuICAgIFwicG93XCIsXG4gICAgXCJyb3VuZFwiLFxuICAgIFwic3FcIixcbiAgICBcInNxcnRcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFzaW5cIixcbiAgICBcImF0YW5cIixcbiAgICBcImF0YW4yXCIsXG4gICAgXCJjb3NcIixcbiAgICBcImRlZ3JlZXNcIixcbiAgICBcInJhZGlhbnNcIixcbiAgICBcInNpblwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJub2lzZVwiLFxuICAgIFwibm9pc2VEZXRhaWxcIixcbiAgICBcIm5vaXNlU2VlZFwiLFxuICAgIFwicmFuZG9tXCIsXG4gICAgXCJyYW5kb21HYXVzc2lhblwiLFxuICAgIFwicmFuZG9tU2VlZFwiXG4gIF07XG4gIGNvbnN0IElERU5UID0gaGxqcy5JREVOVF9SRTtcbiAgY29uc3QgRlVOQ19OQU1FID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIG1hdGNoOiByZWdleC5jb25jYXQocmVnZXguZWl0aGVyKC4uLkJVSUxUX0lOUyksIHJlZ2V4Lmxvb2thaGVhZCgvXFxzKlxcKC8pKSxcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiXG4gICAgfSxcbiAgICB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBtYXRjaDogcmVnZXguY29uY2F0KFxuICAgICAgICAvXFxiKD8hZm9yfGlmfHdoaWxlKS8sXG4gICAgICAgIElERU5ULCByZWdleC5sb29rYWhlYWQoL1xccypcXCgvKSksXG4gICAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH1cbiAgXSB9O1xuICBjb25zdCBORVdfQ0xBU1MgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9uZXdcXHMrLyxcbiAgICAgIElERU5UXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMjogXCJjbGFzcy50aXRsZVwiXG4gICAgfVxuICB9O1xuICBjb25zdCBQUk9QRVJUWSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXC4vLFxuICAgICAgSURFTlRcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAyOiBcInByb3BlcnR5XCIgfVxuICB9O1xuICBjb25zdCBDTEFTUyA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3MvLFxuICAgICAgICAvXFxzKy8sXG4gICAgICAgIElERU5ULFxuICAgICAgICAvXFxzKy8sXG4gICAgICAgIC9leHRlbmRzLyxcbiAgICAgICAgL1xccysvLFxuICAgICAgICBJREVOVFxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3MvLFxuICAgICAgICAvXFxzKy8sXG4gICAgICAgIElERU5UXG4gICAgICBdIH1cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICA1OiBcImtleXdvcmRcIixcbiAgICAgIDc6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJzaG9ydFwiLFxuICBdO1xuICBjb25zdCBDTEFTU0VTID0gW1xuICAgIFwiQnVmZmVyZWRSZWFkZXJcIixcbiAgICBcIlBWZWN0b3JcIixcbiAgICBcIlBGb250XCIsXG4gICAgXCJQSW1hZ2VcIixcbiAgICBcIlBHcmFwaGljc1wiLFxuICAgIFwiSGFzaE1hcFwiLFxuICAgIFwiU3RyaW5nXCIsXG4gICAgXCJBcnJheVwiLFxuICAgIFwiRmxvYXREaWN0XCIsXG4gICAgXCJBcnJheUxpc3RcIixcbiAgICBcIkZsb2F0TGlzdFwiLFxuICAgIFwiSW50RGljdFwiLFxuICAgIFwiSW50TGlzdFwiLFxuICAgIFwiSlNPTkFycmF5XCIsXG4gICAgXCJKU09OT2JqZWN0XCIsXG4gICAgXCJPYmplY3RcIixcbiAgICBcIlN0cmluZ0RpY3RcIixcbiAgICBcIlN0cmluZ0xpc3RcIixcbiAgICBcIlRhYmxlXCIsXG4gICAgXCJUYWJsZVJvd1wiLFxuICAgIFwiWE1MXCJcbiAgXTtcbiAgY29uc3QgSkFWQV9LRVlXT1JEUyA9IFtcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJuYXRpdmVcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInB1YmxpY1wiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwic3RyaWN0ZnBcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwic3luY2hyb25pemVkXCIsXG4gICAgXCJ0aHJvd1wiLFxuICAgIFwidGhyb3dzXCIsXG4gICAgXCJ0cmFuc2llbnRcIixcbiAgICBcInRyeVwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcIndoaWxlXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQcm9jZXNzaW5nJyxcbiAgICBhbGlhc2VzOiBbICdwZGUnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IFsgLi4uSkFWQV9LRVlXT1JEUyBdLFxuICAgICAgbGl0ZXJhbDogJ1AyRCBQM0QgSEFMRl9QSSBQSSBRVUFSVEVSX1BJIFRBVSBUV09fUEkgbnVsbCB0cnVlIGZhbHNlJyxcbiAgICAgIHRpdGxlOiAnc2V0dXAgZHJhdycsXG4gICAgICB2YXJpYWJsZTogXCJzdXBlciB0aGlzXCIsXG4gICAgICBidWlsdF9pbjogW1xuICAgICAgICAuLi5CVUlMVF9JTlMsXG4gICAgICAgIC4uLkNMQVNTRVNcbiAgICAgIF0sXG4gICAgICB0eXBlOiBUWVBFU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENMQVNTLFxuICAgICAgTkVXX0NMQVNTLFxuICAgICAgRlVOQ19OQU1FLFxuICAgICAgUFJPUEVSVFksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9jZXNzaW5nO1xuIiwgIi8qXG5MYW5ndWFnZTogUHl0aG9uIHByb2ZpbGVyXG5EZXNjcmlwdGlvbjogUHl0aG9uIHByb2ZpbGVyIHJlc3VsdHNcbkF1dGhvcjogQnJpYW4gQmVjayA8ZXhvZ2VuQGdtYWlsLmNvbT5cbiovXG5cbmZ1bmN0aW9uIHByb2ZpbGUoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQeXRob24gcHJvZmlsZXInLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnW2EtekEtWl9dW1xcXFxkYS16QS1aX10rXFxcXC5bXFxcXGRhLXpBLVpfXXsxLDN9JyxcbiAgICAgICAgZW5kOiAnOicsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKG5jYWxsc3x0b3R0aW1lfGN1bXRpbWUpJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAnbmNhbGxzIHRvdHRpbWV8MTAgY3VtdGltZXwxMCBmaWxlbmFtZScsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnZnVuY3Rpb24gY2FsbHMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5DX05VTUJFUl9NT0RFIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgZW5kOiAnXFxcXCkkJyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHJvZmlsZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFByb2xvZ1xuRGVzY3JpcHRpb246IFByb2xvZyBpcyBhIGdlbmVyYWwgcHVycG9zZSBsb2dpYyBwcm9ncmFtbWluZyBsYW5ndWFnZSBhc3NvY2lhdGVkIHdpdGggYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UgYW5kIGNvbXB1dGF0aW9uYWwgbGluZ3Vpc3RpY3MuXG5BdXRob3I6IFJhaXZvIExhYW5lbWV0cyA8cmFpdm9AaW5mZG90LmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Byb2xvZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbmZ1bmN0aW9uIHByb2xvZyhobGpzKSB7XG4gIGNvbnN0IEFUT00gPSB7XG5cbiAgICBiZWdpbjogL1thLXpdW0EtWmEtejAtOV9dKi8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgVkFSID0ge1xuXG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1tBLVpdW2EtekEtWjAtOV9dKi8gfSxcbiAgICAgIHsgYmVnaW46IC9fW0EtWmEtejAtOV9dKi8gfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUEFSRU5URUQgPSB7XG5cbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBMSVNUID0ge1xuXG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS9cbiAgfTtcblxuICBjb25zdCBMSU5FX0NPTU1FTlQgPSB7XG5cbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICBiZWdpbjogLyUvLFxuICAgIGVuZDogLyQvLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuUEhSQVNBTF9XT1JEU19NT0RFIF1cbiAgfTtcblxuICBjb25zdCBCQUNLVElDS19TVFJJTkcgPSB7XG5cbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvYC8sXG4gICAgZW5kOiAvYC8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcblxuICBjb25zdCBDSEFSX0NPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJywgLy8gMCdhIGV0Yy5cbiAgICBiZWdpbjogLzAnKFxcXFwnfC4pL1xuICB9O1xuXG4gIGNvbnN0IFNQQUNFX0NPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLzAnXFxcXHMvIC8vIDAnXFxzXG4gIH07XG5cbiAgY29uc3QgUFJFRF9PUCA9IHsgLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICBiZWdpbjogLzotLyB9O1xuXG4gIGNvbnN0IGlubmVyID0gW1xuXG4gICAgQVRPTSxcbiAgICBWQVIsXG4gICAgUEFSRU5URUQsXG4gICAgUFJFRF9PUCxcbiAgICBMSVNULFxuICAgIExJTkVfQ09NTUVOVCxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgIEJBQ0tUSUNLX1NUUklORyxcbiAgICBDSEFSX0NPREUsXG4gICAgU1BBQ0VfQ09ERSxcbiAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgXTtcblxuICBQQVJFTlRFRC5jb250YWlucyA9IGlubmVyO1xuICBMSVNULmNvbnRhaW5zID0gaW5uZXI7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUHJvbG9nJyxcbiAgICBjb250YWluczogaW5uZXIuY29uY2F0KFtcbiAgICAgIHsgLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgICAgYmVnaW46IC9cXC4kLyB9XG4gICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9sb2c7XG4iLCAiLypcbkxhbmd1YWdlOiAucHJvcGVydGllc1xuQ29udHJpYnV0b3JzOiBWYWxlbnRpbiBBaXRrZW4gPHZhbGVudGluQG5hbGlzYmcuY29tPiwgRWdvciBSb2dvdiA8ZS5yb2dvdkBwb3N0Z3Jlc3Byby5ydT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpLy5wcm9wZXJ0aWVzXG5DYXRlZ29yeTogY29uZmlnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gcHJvcGVydGllcyhobGpzKSB7XG4gIC8vIHdoaXRlc3BhY2VzOiBzcGFjZSwgdGFiLCBmb3JtZmVlZFxuICBjb25zdCBXUzAgPSAnWyBcXFxcdFxcXFxmXSonO1xuICBjb25zdCBXUzEgPSAnWyBcXFxcdFxcXFxmXSsnO1xuICAvLyBkZWxpbWl0ZXJcbiAgY29uc3QgRVFVQUxfREVMSU0gPSBXUzAgKyAnWzo9XScgKyBXUzA7XG4gIGNvbnN0IFdTX0RFTElNID0gV1MxO1xuICBjb25zdCBERUxJTSA9ICcoJyArIEVRVUFMX0RFTElNICsgJ3wnICsgV1NfREVMSU0gKyAnKSc7XG4gIGNvbnN0IEtFWSA9ICcoW15cXFxcXFxcXDo9IFxcXFx0XFxcXGZcXFxcbl18XFxcXFxcXFwuKSsnO1xuXG4gIGNvbnN0IERFTElNX0FORF9WQUxVRSA9IHtcbiAgICAvLyBza2lwIERFTElNXG4gICAgZW5kOiBERUxJTSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgc3RhcnRzOiB7XG4gICAgICAvLyB2YWx1ZTogZXZlcnl0aGluZyB1bnRpbCBlbmQgb2YgbGluZSAoYWdhaW4sIHRha2luZyBpbnRvIGFjY291bnQgYmFja3NsYXNoZXMpXG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgZW5kOiAvJC8sXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7IGJlZ2luOiAnXFxcXFxcXFxcXFxcXFxcXCcgfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxcXFxcXFxcXG4nIH1cbiAgICAgIF1cbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnLnByb3BlcnRpZXMnLFxuICAgIGRpc2FibGVBdXRvZGV0ZWN0OiB0cnVlLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnXlxcXFxzKlshI10nLCAnJCcpLFxuICAgICAgLy8ga2V5OiBldmVyeXRoaW5nIHVudGlsIHdoaXRlc3BhY2Ugb3IgPSBvciA6ICh0YWtpbmcgaW50byBhY2NvdW50IGJhY2tzbGFzaGVzKVxuICAgICAgLy8gY2FzZSBvZiBhIGtleS12YWx1ZSBwYWlyXG4gICAgICB7XG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IEtFWSArIEVRVUFMX0RFTElNIH0sXG4gICAgICAgICAgeyBiZWdpbjogS0VZICsgV1NfREVMSU0gfVxuICAgICAgICBdLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgYmVnaW46IEtFWSxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHN0YXJ0czogREVMSU1fQU5EX1ZBTFVFXG4gICAgICB9LFxuICAgICAgLy8gY2FzZSBvZiBhbiBlbXB0eSBrZXlcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgIGJlZ2luOiBLRVkgKyBXUzAgKyAnJCdcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHJvcGVydGllcztcbiIsICIvKlxuTGFuZ3VhZ2U6IFByb3RvY29sIEJ1ZmZlcnNcbkF1dGhvcjogRGFuIFRhbyA8ZGFuaWVsLnRhb0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogUHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgZGVmaW5pdGlvbiBmb3JtYXRcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzNcbkNhdGVnb3J5OiBwcm90b2NvbHNcbiovXG5cbmZ1bmN0aW9uIHByb3RvYnVmKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJwYWNrYWdlXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwib3B0aW9uYWxcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJyZXBlYXRlZFwiLFxuICAgIFwiZ3JvdXBcIixcbiAgICBcIm9uZW9mXCJcbiAgXTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJkb3VibGVcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInVpbnQzMlwiLFxuICAgIFwidWludDY0XCIsXG4gICAgXCJzaW50MzJcIixcbiAgICBcInNpbnQ2NFwiLFxuICAgIFwiZml4ZWQzMlwiLFxuICAgIFwiZml4ZWQ2NFwiLFxuICAgIFwic2ZpeGVkMzJcIixcbiAgICBcInNmaXhlZDY0XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcImJ5dGVzXCJcbiAgXTtcbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhtZXNzYWdlfGVudW18c2VydmljZSlcXHMrLyxcbiAgICAgIGhsanMuSURFTlRfUkVcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIlxuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQcm90b2NvbCBCdWZmZXJzJyxcbiAgICBhbGlhc2VzOiBbJ3Byb3RvJ10sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBsaXRlcmFsOiBbXG4gICAgICAgICd0cnVlJyxcbiAgICAgICAgJ2ZhbHNlJ1xuICAgICAgXVxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIENMQVNTX0RFRklOSVRJT04sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3JwYycsXG4gICAgICAgIGVuZDogL1t7O10vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogJ3JwYyByZXR1cm5zJ1xuICAgICAgfSxcbiAgICAgIHsgLy8gbWF0Y2ggZW51bSBpdGVtcyAocmVsZXZhbmNlKVxuICAgICAgICAvLyBCTEFIID0gLi4uO1xuICAgICAgICBiZWdpbjogL15cXHMqW0EtWl9dKyg/PVxccyo9W15cXG5dKzskKS8gfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm90b2J1ZjtcbiIsICIvKlxuTGFuZ3VhZ2U6IFB1cHBldFxuQXV0aG9yOiBKb3NlIE1vbGluYSBDb2xtZW5lcm8gPGdhdWR5NDFAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9wdXBwZXQuY29tL2RvY3NcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbmZ1bmN0aW9uIHB1cHBldChobGpzKSB7XG4gIGNvbnN0IFBVUFBFVF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgIC8qIGxhbmd1YWdlIGtleXdvcmRzICovXG4gICAgICAnYW5kIGNhc2UgZGVmYXVsdCBlbHNlIGVsc2lmIGZhbHNlIGlmIGluIGltcG9ydCBlbmhlcml0cyBub2RlIG9yIHRydWUgdW5kZWYgdW5sZXNzIG1haW4gc2V0dGluZ3MgJHN0cmluZyAnLFxuICAgIGxpdGVyYWw6XG4gICAgLyogbWV0YXBhcmFtZXRlcnMgKi9cbiAgICAgICdhbGlhcyBhdWRpdCBiZWZvcmUgbG9nbGV2ZWwgbm9vcCByZXF1aXJlIHN1YnNjcmliZSB0YWcgJ1xuICAgICAgLyogbm9ybWFsIGF0dHJpYnV0ZXMgKi9cbiAgICAgICsgJ293bmVyIGVuc3VyZSBncm91cCBtb2RlIG5hbWV8MCBjaGFuZ2VzIGNvbnRleHQgZm9yY2UgaW5jbCBsZW5zIGxvYWRfcGF0aCBvbmx5aWYgcHJvdmlkZXIgcmV0dXJucyByb290IHNob3dfZGlmZiB0eXBlX2NoZWNrICdcbiAgICAgICsgJ2VuX2FkZHJlc3MgaXBfYWRkcmVzcyByZWFsbmFtZSBjb21tYW5kIGVudmlyb25tZW50IGhvdXIgbW9udXRlIG1vbnRoIG1vbnRoZGF5IHNwZWNpYWwgdGFyZ2V0IHdlZWtkYXkgJ1xuICAgICAgKyAnY3JlYXRlcyBjd2Qgb2dvdXRwdXQgcmVmcmVzaCByZWZyZXNob25seSB0cmllcyB0cnlfc2xlZXAgdW1hc2sgYmFja3VwIGNoZWNrc3VtIGNvbnRlbnQgY3RpbWUgZm9yY2UgaWdub3JlICdcbiAgICAgICsgJ2xpbmtzIG10aW1lIHB1cmdlIHJlY3Vyc2UgcmVjdXJzZWxpbWl0IHJlcGxhY2Ugc2VsaW51eF9pZ25vcmVfZGVmYXVsdHMgc2VscmFuZ2Ugc2Vscm9sZSBzZWx0eXBlIHNlbHVzZXIgc291cmNlICdcbiAgICAgICsgJ3NvdWlyY2VfcGVybWlzc2lvbnMgc291cmNlc2VsZWN0IHZhbGlkYXRlX2NtZCB2YWxpZGF0ZV9yZXBsYWNlbWVudCBhbGxvd2R1cGUgYXR0cmlidXRlX21lbWJlcnNoaXAgYXV0aF9tZW1iZXJzaGlwIGZvcmNlbG9jYWwgZ2lkICdcbiAgICAgICsgJ2lhX2xvYWRfbW9kdWxlIG1lbWJlcnMgc3lzdGVtIGhvc3RfYWxpYXNlcyBpcCBhbGxvd2VkX3RydW5rX3ZsYW5zIGRlc2NyaXB0aW9uIGRldmljZV91cmwgZHVwbGV4IGVuY2Fwc3VsYXRpb24gZXRoZXJjaGFubmVsICdcbiAgICAgICsgJ25hdGl2ZV92bGFuIHNwZWVkIHByaW5jaXBhbHMgYWxsb3dfcm9vdCBhdXRoX2NsYXNzIGF1dGhfdHlwZSBhdXRoZW50aWNhdGVfdXNlciBrX29mX24gbWVjaGFuaXNtcyBydWxlIHNlc3Npb25fb3duZXIgc2hhcmVkIG9wdGlvbnMgJ1xuICAgICAgKyAnZGV2aWNlIGZzdHlwZSBlbmFibGUgaGFzcmVzdGFydCBkaXJlY3RvcnkgcHJlc2VudCBhYnNlbnQgbGluayBhdGJvb3QgYmxvY2tkZXZpY2UgZGV2aWNlIGR1bXAgcGFzcyByZW1vdW50cyBwb2xsZXJfdGFnIHVzZSAnXG4gICAgICArICdtZXNzYWdlIHdpdGhwYXRoIGFkbWluZmlsZSBhbGxvd192aXJ0dWFsIGFsbG93Y2Ryb20gY2F0ZWdvcnkgY29uZmlnZmlsZXMgZmxhdm9yIGluc3RhbGxfb3B0aW9ucyBpbnN0YW5jZSBwYWNrYWdlX3NldHRpbmdzIHBsYXRmb3JtICdcbiAgICAgICsgJ3Jlc3BvbnNlZmlsZSBzdGF0dXMgdW5pbnN0YWxsX29wdGlvbnMgdmVuZG9yIHVubGVzc19zeXN0ZW1fdXNlciB1bmxlc3NfdWlkIGJpbmFyeSBjb250cm9sIGZsYWdzIGhhc3N0YXR1cyBtYW5pZmVzdCBwYXR0ZXJuIHJlc3RhcnQgcnVubmluZyAnXG4gICAgICArICdzdGFydCBzdG9wIGFsbG93ZHVwZSBhdXRocyBleHBpcnkgZ2lkIGdyb3VwcyBob21lIGl0ZXJhdGlvbnMga2V5X21lbWJlcnNoaXAga2V5cyBtYW5hZ2Vob21lIG1lbWJlcnNoaXAgcGFzc3dvcmQgcGFzc3dvcmRfbWF4X2FnZSAnXG4gICAgICArICdwYXNzd29yZF9taW5fYWdlIHByb2ZpbGVfbWVtYmVyc2hpcCBwcm9maWxlcyBwcm9qZWN0IHB1cmdlX3NzaF9rZXlzIHJvbGVfbWVtYmVyc2hpcCByb2xlcyBzYWx0IHNoZWxsIHVpZCBiYXNldXJsIGNvc3QgZGVzY3IgZW5hYmxlZCAnXG4gICAgICArICdlbmFibGVncm91cHMgZXhjbHVkZSBmYWlsb3Zlcm1ldGhvZCBncGdjaGVjayBncGdrZXkgaHR0cF9jYWNoaW5nIGluY2x1ZGUgaW5jbHVkZXBrZ3Mga2VlcGFsaXZlIG1ldGFkYXRhX2V4cGlyZSBtZXRhbGluayBtaXJyb3JsaXN0ICdcbiAgICAgICsgJ3ByaW9yaXR5IHByb3RlY3QgcHJveHkgcHJveHlfcGFzc3dvcmQgcHJveHlfdXNlcm5hbWUgcmVwb19ncGdjaGVjayBzM19lbmFibGVkIHNraXBfaWZfdW5hdmFpbGFibGUgc3NsY2FjZXJ0IHNzbGNsaWVudGNlcnQgc3NsY2xpZW50a2V5ICdcbiAgICAgICsgJ3NzbHZlcmlmeSBtb3VudGVkJyxcbiAgICBidWlsdF9pbjpcbiAgICAvKiBjb3JlIGZhY3RzICovXG4gICAgICAnYXJjaGl0ZWN0dXJlIGF1Z2Vhc3ZlcnNpb24gYmxvY2tkZXZpY2VzIGJvYXJkbWFudWZhY3R1cmVyIGJvYXJkcHJvZHVjdG5hbWUgYm9hcmRzZXJpYWxudW1iZXIgY2ZrZXkgZGhjcF9zZXJ2ZXJzICdcbiAgICAgICsgJ2RvbWFpbiBlYzJfIGVjMl91c2VyZGF0YSBmYWN0ZXJ2ZXJzaW9uIGZpbGVzeXN0ZW1zIGxkb20gZnFkbiBnaWQgaGFyZHdhcmVpc2EgaGFyZHdhcmVtb2RlbCBob3N0bmFtZSBpZHwwIGludGVyZmFjZXMgJ1xuICAgICAgKyAnaXBhZGRyZXNzIGlwYWRkcmVzc18gaXBhZGRyZXNzNiBpcGFkZHJlc3M2XyBpcGhvc3RudW1iZXIgaXNfdmlydHVhbCBrZXJuZWwga2VybmVsbWFqdmVyc2lvbiBrZXJuZWxyZWxlYXNlIGtlcm5lbHZlcnNpb24gJ1xuICAgICAgKyAna2VybmVscmVsZWFzZSBrZXJuZWx2ZXJzaW9uIGxzYmRpc3Rjb2RlbmFtZSBsc2JkaXN0ZGVzY3JpcHRpb24gbHNiZGlzdGlkIGxzYmRpc3RyZWxlYXNlIGxzYm1hamRpc3RyZWxlYXNlIGxzYm1pbm9yZGlzdHJlbGVhc2UgJ1xuICAgICAgKyAnbHNicmVsZWFzZSBtYWNhZGRyZXNzIG1hY2FkZHJlc3NfIG1hY29zeF9idWlsZHZlcnNpb24gbWFjb3N4X3Byb2R1Y3RuYW1lIG1hY29zeF9wcm9kdWN0dmVyc2lvbiBtYWNvc3hfcHJvZHVjdHZlcnNvbl9tYWpvciAnXG4gICAgICArICdtYWNvc3hfcHJvZHVjdHZlcnNpb25fbWlub3IgbWFudWZhY3R1cmVyIG1lbW9yeWZyZWUgbWVtb3J5c2l6ZSBuZXRtYXNrIG1ldG1hc2tfIG5ldHdvcmtfIG9wZXJhdGluZ3N5c3RlbSBvcGVyYXRpbmdzeXN0ZW1tYWpyZWxlYXNlICdcbiAgICAgICsgJ29wZXJhdGluZ3N5c3RlbXJlbGVhc2Ugb3NmYW1pbHkgcGFydGl0aW9ucyBwYXRoIHBoeXNpY2FscHJvY2Vzc29yY291bnQgcHJvY2Vzc29yIHByb2Nlc3NvcmNvdW50IHByb2R1Y3RuYW1lIHBzIHB1cHBldHZlcnNpb24gJ1xuICAgICAgKyAncnVieXNpdGVkaXIgcnVieXZlcnNpb24gc2VsaW51eCBzZWxpbnV4X2NvbmZpZ19tb2RlIHNlbGludXhfY29uZmlnX3BvbGljeSBzZWxpbnV4X2N1cnJlbnRfbW9kZSBzZWxpbnV4X2N1cnJlbnRfbW9kZSBzZWxpbnV4X2VuZm9yY2VkICdcbiAgICAgICsgJ3NlbGludXhfcG9saWN5dmVyc2lvbiBzZXJpYWxudW1iZXIgc3BfIHNzaGRzYWtleSBzc2hlY2RzYWtleSBzc2hyc2FrZXkgc3dhcGVuY3J5cHRlZCBzd2FwZnJlZSBzd2Fwc2l6ZSB0aW1lem9uZSB0eXBlIHVuaXF1ZWlkIHVwdGltZSAnXG4gICAgICArICd1cHRpbWVfZGF5cyB1cHRpbWVfaG91cnMgdXB0aW1lX3NlY29uZHMgdXVpZCB2aXJ0dWFsIHZsYW5zIHhlbmRvbWFpbnMgemZzX3ZlcnNpb24gem9uZW5hZSB6b25lcyB6cG9vbF92ZXJzaW9uJ1xuICB9O1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoJyMnLCAnJCcpO1xuXG4gIGNvbnN0IElERU5UX1JFID0gJyhbQS1aYS16X118OjopKFxcXFx3fDo6KSonO1xuXG4gIGNvbnN0IFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogSURFTlRfUkUgfSk7XG5cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgSURFTlRfUkVcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSSUFCTEVcbiAgICBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1B1cHBldCcsXG4gICAgYWxpYXNlczogWyAncHAnIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENPTU1FTlQsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFNUUklORyxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJyxcbiAgICAgICAgZW5kOiAnXFxcXHt8OycsXG4gICAgICAgIGlsbGVnYWw6IC89LyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBUSVRMRSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZpbmUnLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXFxccytcXFxceycsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9cXFMvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAuMlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBQVVBQRVRfS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIENPTU1FTlQsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1thLXpBLVpfXStcXFxccyo9PicsXG4gICAgICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgZW5kOiAnPT4nLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgYmVnaW46ICcoXFxcXGIwWzAtN19dKyl8KFxcXFxiMHhbMC05YS1mQS1GX10rKXwoXFxcXGJbMS05XVswLTlfXSooXFxcXC5bMC05X10rKT8pfFswX11cXFxcYicsXG4gICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFZBUklBQkxFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHVwcGV0O1xuIiwgIi8qXG5MYW5ndWFnZTogUHVyZUJBU0lDXG5BdXRob3I6IFRyaXN0YW5vIEFqbW9uZSA8dGFqbW9uZUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgUHVyZUJBU0lDICh2LjUuMDAtNS42MCkuIE5vIGlubGluZSBBU00gaGlnaGxpZ2h0aW5nLiAodi4xLjIsIE1heSAyMDE3KVxuQ3JlZGl0czogSSd2ZSB0YWtlbiBpbnNwaXJhdGlvbiBmcm9tIHRoZSBQdXJlQmFzaWMgbGFuZ3VhZ2UgZmlsZSBmb3IgR2VTSGksIGNyZWF0ZWQgYnkgR3VzdGF2byBKdWxpbyBGaW9yZW56YSAoR3VTaEgpLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucHVyZWJhc2ljLmNvbVxuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuLy8gQmFzZSBkZWFmdWx0IGNvbG9ycyBpbiBQQiBJREU6IGJhY2tncm91bmQ6ICNGRkZGREY7IGZvcmVncm91bmQ6ICMwMDAwMDA7XG5cbmZ1bmN0aW9uIHB1cmViYXNpYyhobGpzKSB7XG4gIGNvbnN0IFNUUklOR1MgPSB7IC8vIFBCIElERSBjb2xvcjogIzAwODBGRiAoQXp1cmUgUmFkaWFuY2UpXG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJyh+KT9cIicsXG4gICAgZW5kOiAnXCInLFxuICAgIGlsbGVnYWw6ICdcXFxcbidcbiAgfTtcbiAgY29uc3QgQ09OU1RBTlRTID0geyAvLyBQQiBJREUgY29sb3I6ICM5MjRCNzIgKENhbm5vbiBQaW5rKVxuICAgIC8vICBcIiNcIiArIGEgbGV0dGVyIG9yIHVuZGVyc2NvcmUgKyBsZXR0ZXJzLCBkaWdpdHMgb3IgdW5kZXJzY29yZXMgKyAob3B0aW9uYWwpIFwiJFwiXG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJyNbYS16QS1aX11cXFxcdypcXFxcJD8nXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUHVyZUJBU0lDJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAncGInLFxuICAgICAgJ3BiaSdcbiAgICBdLFxuICAgIGtleXdvcmRzOiAvLyBQQiBJREUgY29sb3I6ICMwMDY2NjYgKEJsdWUgU3RvbmUpICsgQm9sZFxuICAgICAgLy8gS2V5d29yZHMgZnJvbSBhbGwgdmVyc2lvbiBvZiBQdXJlQkFTSUMgNS4wMCB1cHdhcmQgLi4uXG4gICAgICAnQWxpZ24gQW5kIEFycmF5IEFzIEJyZWFrIENhbGxEZWJ1Z2dlciBDYXNlIENvbXBpbGVyQ2FzZSBDb21waWxlckRlZmF1bHQgJ1xuICAgICAgKyAnQ29tcGlsZXJFbHNlIENvbXBpbGVyRWxzZUlmIENvbXBpbGVyRW5kSWYgQ29tcGlsZXJFbmRTZWxlY3QgQ29tcGlsZXJFcnJvciAnXG4gICAgICArICdDb21waWxlcklmIENvbXBpbGVyU2VsZWN0IENvbXBpbGVyV2FybmluZyBDb250aW51ZSBEYXRhIERhdGFTZWN0aW9uIERlYnVnICdcbiAgICAgICsgJ0RlYnVnTGV2ZWwgRGVjbGFyZSBEZWNsYXJlQyBEZWNsYXJlQ0RMTCBEZWNsYXJlRExMIERlY2xhcmVNb2R1bGUgRGVmYXVsdCAnXG4gICAgICArICdEZWZpbmUgRGltIERpc2FibGVBU00gRGlzYWJsZURlYnVnZ2VyIERpc2FibGVFeHBsaWNpdCBFbHNlIEVsc2VJZiBFbmFibGVBU00gJ1xuICAgICAgKyAnRW5hYmxlRGVidWdnZXIgRW5hYmxlRXhwbGljaXQgRW5kIEVuZERhdGFTZWN0aW9uIEVuZERlY2xhcmVNb2R1bGUgRW5kRW51bWVyYXRpb24gJ1xuICAgICAgKyAnRW5kSWYgRW5kSW1wb3J0IEVuZEludGVyZmFjZSBFbmRNYWNybyBFbmRNb2R1bGUgRW5kUHJvY2VkdXJlIEVuZFNlbGVjdCAnXG4gICAgICArICdFbmRTdHJ1Y3R1cmUgRW5kU3RydWN0dXJlVW5pb24gRW5kV2l0aCBFbnVtZXJhdGlvbiBFbnVtZXJhdGlvbkJpbmFyeSBFeHRlbmRzICdcbiAgICAgICsgJ0Zha2VSZXR1cm4gRm9yIEZvckVhY2ggRm9yRXZlciBHbG9iYWwgR29zdWIgR290byBJZiBJbXBvcnQgSW1wb3J0QyAnXG4gICAgICArICdJbmNsdWRlQmluYXJ5IEluY2x1ZGVGaWxlIEluY2x1ZGVQYXRoIEludGVyZmFjZSBMaXN0IE1hY3JvIE1hY3JvRXhwYW5kZWRDb3VudCAnXG4gICAgICArICdNYXAgTW9kdWxlIE5ld0xpc3QgTmV3TWFwIE5leHQgTm90IE9yIFByb2NlZHVyZSBQcm9jZWR1cmVDICdcbiAgICAgICsgJ1Byb2NlZHVyZUNETEwgUHJvY2VkdXJlRExMIFByb2NlZHVyZVJldHVybiBQcm90ZWN0ZWQgUHJvdG90eXBlIFByb3RvdHlwZUMgUmVEaW0gJ1xuICAgICAgKyAnUmVhZCBSZXBlYXQgUmVzdG9yZSBSZXR1cm4gUnVudGltZSBTZWxlY3QgU2hhcmVkIFN0YXRpYyBTdGVwIFN0cnVjdHVyZSAnXG4gICAgICArICdTdHJ1Y3R1cmVVbmlvbiBTd2FwIFRocmVhZGVkIFRvIFVuZGVmaW5lTWFjcm8gVW50aWwgVW50aWwgIFVudXNlTW9kdWxlICdcbiAgICAgICsgJ1VzZU1vZHVsZSBXZW5kIFdoaWxlIFdpdGggWEluY2x1ZGVGaWxlIFhPcicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC8vIENPTU1FTlRTIHwgUEIgSURFIGNvbG9yOiAjMDBBQUFBIChQZXJzaWFuIEdyZWVuKVxuICAgICAgaGxqcy5DT01NRU5UKCc7JywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcblxuICAgICAgeyAvLyBQUk9DRURVUkVTIERFRklOSVRJT05TXG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihQcm9jZWR1cmV8RGVjbGFyZSkoQ3xDRExMfERMTCk/XFxcXGInLFxuICAgICAgICBlbmQ6ICdcXFxcKCcsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgLy8gUFJPQ0VEVVJFIEtFWVdPUkRTIHwgUEIgSURFIGNvbG9yOiAjMDA2NjY2IChCbHVlIFN0b25lKSArIEJvbGRcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46ICcoUHJvY2VkdXJlfERlY2xhcmUpKEN8Q0RMTHxETEwpPycsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIFBST0NFRFVSRSBSRVRVUk4gVFlQRSBTRVRUSU5HIHwgUEIgSURFIGNvbG9yOiAjMDAwMDAwIChCbGFjaylcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcLlxcXFx3KidcbiAgICAgICAgICAgIC8vIGVuZDogJyAnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgLy8gUFJPQ0VEVVJFIE5BTUUgfCBQQiBJREUgY29sb3I6ICMwMDY2NjYgKEJsdWUgU3RvbmUpXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBTVFJJTkdTLFxuICAgICAgQ09OU1RBTlRTXG4gICAgXVxuICB9O1xufVxuXG4vKiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIQU5HRUxPR1xuICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC0gdi4xLjIgKDIwMTctMDUtMTIpXG4gICAgICAgIC0tIEJVRy1GSVg6IFNvbWUga2V5d29yZHMgd2VyZSBhY2NpZGVudGFsbHkgam95bmVkIHRvZ2V0aGVyLiBOb3cgZml4ZWQuXG4gICAgLSB2LjEuMSAoMjAxNy0wNC0zMClcbiAgICAgICAgLS0gVXBkYXRlZCB0byBQdXJlQkFTSUMgNS42MC5cbiAgICAgICAgLS0gS2V5d29yZHMgbGlzdCBub3cgYnVpbHQgYnkgZXh0cmFjdGluZyB0aGVtIGZyb20gdGhlIFB1cmVCQVNJQyBTREsnc1xuICAgICAgICAgICBcIlN5bnRheEhpbGlnaHRpbmcuZGxsXCIgKGZyb20gZWFjaCBQdXJlQkFTSUMgdmVyc2lvbikuIFRva2VucyBmcm9tIGVhY2hcbiAgICAgICAgICAgdmVyc2lvbiBhcmUgYWRkZWQgdG8gdGhlIGxpc3QsIGFuZCByZW5hbWVkIG9yIHJlbW92ZWQgdG9rZW5zIGFyZSBrZXB0XG4gICAgICAgICAgIGZvciB0aGUgc2FrZSBvZiBjb3ZlcmluZyBhbGwgdmVyc2lvbnMgb2YgdGhlIGxhbmd1YWdlIGZyb20gUHVyZUJBU0lDXG4gICAgICAgICAgIHY1LjAwIHVwd2FyZC4gKE5PVEU6IGN1cnJlbnRseSwgdGhlcmUgYXJlIG5vIHJlbmFtZWQgb3IgZGVwcmVjYXRlZFxuICAgICAgICAgICB0b2tlbnMgaW4gdGhlIGtleXdvcmRzIGxpc3QpLiBGb3IgbW9yZSBpbmZvLCBzZWU6XG4gICAgICAgICAgIC0tIGh0dHA6Ly93d3cucHVyZWJhc2ljLmZyL2VuZ2xpc2gvdmlld3RvcGljLnBocD8mcD01MDYyNjlcbiAgICAgICAgICAgLS0gaHR0cHM6Ly9naXRodWIuY29tL3Rham1vbmUvcHVyZWJhc2ljLWFyY2hpdmVzL3RyZWUvbWFzdGVyL3N5bnRheC1oaWdobGlnaHRpbmcvZ3VpZGVsaW5lc1xuICAgIC0gdi4xLjAgKEFwcmlsIDIwMTYpXG4gICAgICAgIC0tIEZpcnN0IHJlbGVhc2VcbiAgICAgICAgLS0gS2V5d29yZHMgbGlzdCB0YWtlbiBhbmQgYWRhcHRlZCBmcm9tIEd1U2hIJ3MgKEd1c3Rhdm8gSnVsaW8gRmlvcmVuemEpXG4gICAgICAgICAgIFB1cmVCYXNpYyBsYW5ndWFnZSBmaWxlIGZvciBHZVNIaTpcbiAgICAgICAgICAgLS0gaHR0cHM6Ly9naXRodWIuY29tL2Vhc3lib29rL2dlc2hpL2Jsb2IvbWFzdGVyL2dlc2hpL3B1cmViYXNpYy5waHBcbiovXG5cbm1vZHVsZS5leHBvcnRzID0gcHVyZWJhc2ljO1xuIiwgIi8qXG5MYW5ndWFnZTogUHl0aG9uXG5EZXNjcmlwdGlvbjogUHl0aG9uIGlzIGFuIGludGVycHJldGVkLCBvYmplY3Qtb3JpZW50ZWQsIGhpZ2gtbGV2ZWwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugd2l0aCBkeW5hbWljIHNlbWFudGljcy5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmdcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHB5dGhvbihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSURFTlRfUkUgPSAvW1xccHtYSURfU3RhcnR9X11cXHB7WElEX0NvbnRpbnVlfSovdTtcbiAgY29uc3QgUkVTRVJWRURfV09SRFMgPSBbXG4gICAgJ2FuZCcsXG4gICAgJ2FzJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAnYXN5bmMnLFxuICAgICdhd2FpdCcsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FzZScsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29udGludWUnLFxuICAgICdkZWYnLFxuICAgICdkZWwnLFxuICAgICdlbGlmJyxcbiAgICAnZWxzZScsXG4gICAgJ2V4Y2VwdCcsXG4gICAgJ2ZpbmFsbHknLFxuICAgICdmb3InLFxuICAgICdmcm9tJyxcbiAgICAnZ2xvYmFsJyxcbiAgICAnaWYnLFxuICAgICdpbXBvcnQnLFxuICAgICdpbicsXG4gICAgJ2lzJyxcbiAgICAnbGFtYmRhJyxcbiAgICAnbWF0Y2gnLFxuICAgICdub25sb2NhbHwxMCcsXG4gICAgJ25vdCcsXG4gICAgJ29yJyxcbiAgICAncGFzcycsXG4gICAgJ3JhaXNlJyxcbiAgICAncmV0dXJuJyxcbiAgICAndHJ5JyxcbiAgICAnd2hpbGUnLFxuICAgICd3aXRoJyxcbiAgICAneWllbGQnXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgICdfX2ltcG9ydF9fJyxcbiAgICAnYWJzJyxcbiAgICAnYWxsJyxcbiAgICAnYW55JyxcbiAgICAnYXNjaWknLFxuICAgICdiaW4nLFxuICAgICdib29sJyxcbiAgICAnYnJlYWtwb2ludCcsXG4gICAgJ2J5dGVhcnJheScsXG4gICAgJ2J5dGVzJyxcbiAgICAnY2FsbGFibGUnLFxuICAgICdjaHInLFxuICAgICdjbGFzc21ldGhvZCcsXG4gICAgJ2NvbXBpbGUnLFxuICAgICdjb21wbGV4JyxcbiAgICAnZGVsYXR0cicsXG4gICAgJ2RpY3QnLFxuICAgICdkaXInLFxuICAgICdkaXZtb2QnLFxuICAgICdlbnVtZXJhdGUnLFxuICAgICdldmFsJyxcbiAgICAnZXhlYycsXG4gICAgJ2ZpbHRlcicsXG4gICAgJ2Zsb2F0JyxcbiAgICAnZm9ybWF0JyxcbiAgICAnZnJvemVuc2V0JyxcbiAgICAnZ2V0YXR0cicsXG4gICAgJ2dsb2JhbHMnLFxuICAgICdoYXNhdHRyJyxcbiAgICAnaGFzaCcsXG4gICAgJ2hlbHAnLFxuICAgICdoZXgnLFxuICAgICdpZCcsXG4gICAgJ2lucHV0JyxcbiAgICAnaW50JyxcbiAgICAnaXNpbnN0YW5jZScsXG4gICAgJ2lzc3ViY2xhc3MnLFxuICAgICdpdGVyJyxcbiAgICAnbGVuJyxcbiAgICAnbGlzdCcsXG4gICAgJ2xvY2FscycsXG4gICAgJ21hcCcsXG4gICAgJ21heCcsXG4gICAgJ21lbW9yeXZpZXcnLFxuICAgICdtaW4nLFxuICAgICduZXh0JyxcbiAgICAnb2JqZWN0JyxcbiAgICAnb2N0JyxcbiAgICAnb3BlbicsXG4gICAgJ29yZCcsXG4gICAgJ3BvdycsXG4gICAgJ3ByaW50JyxcbiAgICAncHJvcGVydHknLFxuICAgICdyYW5nZScsXG4gICAgJ3JlcHInLFxuICAgICdyZXZlcnNlZCcsXG4gICAgJ3JvdW5kJyxcbiAgICAnc2V0JyxcbiAgICAnc2V0YXR0cicsXG4gICAgJ3NsaWNlJyxcbiAgICAnc29ydGVkJyxcbiAgICAnc3RhdGljbWV0aG9kJyxcbiAgICAnc3RyJyxcbiAgICAnc3VtJyxcbiAgICAnc3VwZXInLFxuICAgICd0dXBsZScsXG4gICAgJ3R5cGUnLFxuICAgICd2YXJzJyxcbiAgICAnemlwJ1xuICBdO1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgICdfX2RlYnVnX18nLFxuICAgICdFbGxpcHNpcycsXG4gICAgJ0ZhbHNlJyxcbiAgICAnTm9uZScsXG4gICAgJ05vdEltcGxlbWVudGVkJyxcbiAgICAnVHJ1ZSdcbiAgXTtcblxuICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdHlwaW5nLmh0bWxcbiAgLy8gVE9ETzogQ291bGQgdGhlc2UgYmUgc3VwcGxlbWVudGVkIGJ5IGEgQ2FtZWxDYXNlIG1hdGNoZXIgaW4gY2VydGFpblxuICAvLyBjb250ZXh0cywgbGVhdmluZyB0aGVzZSByZW1haW5pbmcgb25seSBmb3IgcmVsZXZhbmNlIGhpbnRpbmc/XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiQW55XCIsXG4gICAgXCJDYWxsYWJsZVwiLFxuICAgIFwiQ29yb3V0aW5lXCIsXG4gICAgXCJEaWN0XCIsXG4gICAgXCJMaXN0XCIsXG4gICAgXCJMaXRlcmFsXCIsXG4gICAgXCJHZW5lcmljXCIsXG4gICAgXCJPcHRpb25hbFwiLFxuICAgIFwiU2VxdWVuY2VcIixcbiAgICBcIlNldFwiLFxuICAgIFwiVHVwbGVcIixcbiAgICBcIlR5cGVcIixcbiAgICBcIlVuaW9uXCJcbiAgXTtcblxuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogL1tBLVphLXpdXFx3K3xfX1xcdytfXy8sXG4gICAga2V5d29yZDogUkVTRVJWRURfV09SRFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICB0eXBlOiBUWVBFU1xuICB9O1xuXG4gIGNvbnN0IFBST01QVCA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogL14oPj4+fFxcLlxcLlxcLikgL1xuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLyMvXG4gIH07XG5cbiAgY29uc3QgTElURVJBTF9CUkFDS0VUID0ge1xuICAgIGJlZ2luOiAvXFx7XFx7LyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbdVVdfFtiQl18W3JSXXxbYkJdW3JSXXxbclJdW2JCXSk/JycnLyxcbiAgICAgICAgZW5kOiAvJycnLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgUFJPTVBUXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFt1VV18W2JCXXxbclJdfFtiQl1bclJdfFtyUl1bYkJdKT9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBQUk9NUFRcbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oW2ZGXVtyUl18W3JSXVtmRl18W2ZGXSknJycvLFxuICAgICAgICBlbmQ6IC8nJycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBQUk9NUFQsXG4gICAgICAgICAgTElURVJBTF9CUkFDS0VULFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pXCJcIlwiLyxcbiAgICAgICAgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgUFJPTVBULFxuICAgICAgICAgIExJVEVSQUxfQlJBQ0tFVCxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbdVVdfFtyUl0pJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbdVVdfFtyUl0pXCIvLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtiQl18W2JCXVtyUl18W3JSXVtiQl0pJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbYkJdfFtiQl1bclJdfFtyUl1bYkJdKVwiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKScvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgTElURVJBTF9CUkFDS0VULFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pXCIvLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIExJVEVSQUxfQlJBQ0tFVCxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNudW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRpZ2l0cGFydCA9ICdbMC05XShfP1swLTldKSonO1xuICBjb25zdCBwb2ludGZsb2F0ID0gYChcXFxcYigke2RpZ2l0cGFydH0pKT9cXFxcLigke2RpZ2l0cGFydH0pfFxcXFxiKCR7ZGlnaXRwYXJ0fSlcXFxcLmA7XG4gIC8vIFdoaXRlc3BhY2UgYWZ0ZXIgYSBudW1iZXIgKG9yIGFueSBsZXhpY2FsIHRva2VuKSBpcyBuZWVkZWQgb25seSBpZiBpdHMgYWJzZW5jZVxuICAvLyB3b3VsZCBjaGFuZ2UgdGhlIHRva2VuaXphdGlvblxuICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCN3aGl0ZXNwYWNlLWJldHdlZW4tdG9rZW5zXG4gIC8vIFdlIGRldmlhdGUgc2xpZ2h0bHksIHJlcXVpcmluZyBhIHdvcmQgYm91bmRhcnkgb3IgYSBrZXl3b3JkXG4gIC8vIHRvIGF2b2lkIGFjY2lkZW50YWxseSByZWNvZ25pemluZyAqcHJlZml4ZXMqIChlLmcuLCBgMGAgaW4gYDB4NDFgIG9yIGAwOGAgb3IgYDBfXzFgKVxuICBjb25zdCBsb29rYWhlYWQgPSBgXFxcXGJ8JHtSRVNFUlZFRF9XT1JEUy5qb2luKCd8Jyl9YDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBleHBvbmVudGZsb2F0LCBwb2ludGZsb2F0XG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNmbG9hdGluZy1wb2ludC1saXRlcmFsc1xuICAgICAgLy8gb3B0aW9uYWxseSBpbWFnaW5hcnlcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2ltYWdpbmFyeS1saXRlcmFsc1xuICAgICAgLy8gTm90ZTogbm8gbGVhZGluZyBcXGIgYmVjYXVzZSBmbG9hdHMgY2FuIHN0YXJ0IHdpdGggYSBkZWNpbWFsIHBvaW50XG4gICAgICAvLyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtaXNoYW5kbGUgZS5nLiBgZm4oLjUpYCxcbiAgICAgIC8vIG5vIHRyYWlsaW5nIFxcYiBmb3IgcG9pbnRmbG9hdCBiZWNhdXNlIGl0IGNhbiBlbmQgd2l0aCBhIGRlY2ltYWwgcG9pbnRcbiAgICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1pc2hhbmRsZSBlLmcuIGAwLi5oZXgoKWA7IHRoaXMgc2hvdWxkIGJlIHNhZmVcbiAgICAgIC8vIGJlY2F1c2UgYm90aCBNVVNUIGNvbnRhaW4gYSBkZWNpbWFsIHBvaW50IGFuZCBzbyBjYW5ub3QgYmUgY29uZnVzZWQgd2l0aFxuICAgICAgLy8gdGhlIGludGVyaW9yIHBhcnQgb2YgYW4gaWRlbnRpZmllclxuICAgICAge1xuICAgICAgICBiZWdpbjogYChcXFxcYigke2RpZ2l0cGFydH0pfCgke3BvaW50ZmxvYXR9KSlbZUVdWystXT8oJHtkaWdpdHBhcnR9KVtqSl0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgKCR7cG9pbnRmbG9hdH0pW2pKXT9gXG4gICAgICB9LFxuXG4gICAgICAvLyBkZWNpbnRlZ2VyLCBiaW5pbnRlZ2VyLCBvY3RpbnRlZ2VyLCBoZXhpbnRlZ2VyXG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNpbnRlZ2VyLWxpdGVyYWxzXG4gICAgICAvLyBvcHRpb25hbGx5IFwibG9uZ1wiIGluIFB5dGhvbiAyXG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8yLjcvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNpbnRlZ2VyLWFuZC1sb25nLWludGVnZXItbGl0ZXJhbHNcbiAgICAgIC8vIGRlY2ludGVnZXIgaXMgb3B0aW9uYWxseSBpbWFnaW5hcnlcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2ltYWdpbmFyeS1saXRlcmFsc1xuICAgICAge1xuICAgICAgICBiZWdpbjogYFxcXFxiKFsxLTldKF8/WzAtOV0pKnwwKyhfPzApKilbbExqSl0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIwW2JCXShfP1swMV0pK1tsTF0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIwW29PXShfP1swLTddKStbbExdPyg/PSR7bG9va2FoZWFkfSlgXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogYFxcXFxiMFt4WF0oXz9bMC05YS1mQS1GXSkrW2xMXT8oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfSxcblxuICAgICAgLy8gaW1hZ251bWJlciAoZGlnaXRwYXJ0LWJhc2VkKVxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy45L3JlZmVyZW5jZS9sZXhpY2FsX2FuYWx5c2lzLmh0bWwjaW1hZ2luYXJ5LWxpdGVyYWxzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIoJHtkaWdpdHBhcnR9KVtqSl0oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9UWVBFID0ge1xuICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgYmVnaW46IHJlZ2V4Lmxvb2thaGVhZCgvIyB0eXBlOi8pLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBwcmV2ZW50IGtleXdvcmRzIGZyb20gY29sb3JpbmcgYHR5cGVgXG4gICAgICAgIGJlZ2luOiAvIyB0eXBlOi9cbiAgICAgIH0sXG4gICAgICAvLyBjb21tZW50IHdpdGhpbiBhIGRhdGF0eXBlIGNvbW1lbnQgaW5jbHVkZXMgbm8ga2V5d29yZHNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8jLyxcbiAgICAgICAgZW5kOiAvXFxiXFxCLyxcbiAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBFeGNsdWRlIHBhcmFtcyBpbiBmdW5jdGlvbnMgd2l0aG91dCBwYXJhbXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLFxuICAgICAgICBiZWdpbjogL1xcKFxccypcXCkvLFxuICAgICAgICBza2lwOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICBQUk9NUFQsXG4gICAgICAgICAgTlVNQkVSLFxuICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zID0gW1xuICAgIFNUUklORyxcbiAgICBOVU1CRVIsXG4gICAgUFJPTVBUXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUHl0aG9uJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAncHknLFxuICAgICAgJ2d5cCcsXG4gICAgICAnaXB5dGhvbidcbiAgICBdLFxuICAgIHVuaWNvZGVSZWdleDogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLyg8XFwvfFxcPyl8PT4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBQUk9NUFQsXG4gICAgICBOVU1CRVIsXG4gICAgICB7XG4gICAgICAgIC8vIHZlcnkgY29tbW9uIGNvbnZlbnRpb25cbiAgICAgICAgc2NvcGU6ICd2YXJpYWJsZS5sYW5ndWFnZScsXG4gICAgICAgIG1hdGNoOiAvXFxic2VsZlxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGVhdCBcImlmXCIgcHJpb3IgdG8gc3RyaW5nIHNvIHRoYXQgaXQgd29uJ3QgYWNjaWRlbnRhbGx5IGJlXG4gICAgICAgIC8vIGxhYmVsZWQgYXMgYW4gZi1zdHJpbmdcbiAgICAgICAgYmVnaW5LZXl3b3JkczogXCJpZlwiLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IG1hdGNoOiAvXFxib3JcXGIvLCBzY29wZTogXCJrZXl3b3JkXCIgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlRfVFlQRSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL1xcYmRlZi8sIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSxcbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgICAgL1xcYmNsYXNzLywgL1xccysvLFxuICAgICAgICAgICAgICBJREVOVF9SRSwgL1xccyovLFxuICAgICAgICAgICAgICAvXFwoXFxzKi8sIElERU5UX1JFLC9cXHMqXFwpL1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgICAgIC9cXGJjbGFzcy8sIC9cXHMrLyxcbiAgICAgICAgICAgICAgSURFTlRfUkVcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgICAgICA2OiBcInRpdGxlLmNsYXNzLmluaGVyaXRlZFwiLFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9eW1xcdCBdKkAvLFxuICAgICAgICBlbmQ6IC8oPz0jKXwkLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgUEFSQU1TLFxuICAgICAgICAgIFNUUklOR1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHB5dGhvbjtcbiIsICIvKlxuTGFuZ3VhZ2U6IFB5dGhvbiBSRVBMXG5SZXF1aXJlczogcHl0aG9uLmpzXG5BdXRob3I6IEpvc2ggR29lYmVsIDxoZWxsb0Bqb3NoZ29lYmVsLmNvbT5cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHB5dGhvblJlcGwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsgJ3B5Y29uJyBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEucHJvbXB0JyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gYSBzcGFjZSBzZXBhcmF0ZXMgdGhlIFJFUEwgcHJlZml4IGZyb20gdGhlIGFjdHVhbCBjb2RlXG4gICAgICAgICAgLy8gdGhpcyBpcyBwdXJlbHkgZm9yIGNsZWFuZXIgSFRNTCBvdXRwdXRcbiAgICAgICAgICBlbmQ6IC8gfCQvLFxuICAgICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ3B5dGhvbidcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogL14+Pj4oPz1bIF18JCkvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL15cXC5cXC5cXC4oPz1bIF18JCkvIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBweXRob25SZXBsO1xuIiwgIi8qXG5MYW5ndWFnZTogUVxuRGVzY3JpcHRpb246IFEgaXMgYSB2ZWN0b3ItYmFzZWQgZnVuY3Rpb25hbCBwYXJhZGlnbSBwcm9ncmFtbWluZyBsYW5ndWFnZSBidWlsdCBpbnRvIHRoZSBrZGIrIGRhdGFiYXNlLlxuICAgICAgICAgICAgIChLL1EvS2RiKyBmcm9tIEt4IFN5c3RlbXMpXG5BdXRob3I6IFNlcmdleSBWaWR5dWsgPHN2aWR5dWtAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9reC5jb20vY29ubmVjdC13aXRoLXVzL2RldmVsb3BlcnMvXG5DYXRlZ29yeTogZW50ZXJwcmlzZSwgZnVuY3Rpb25hbCwgZGF0YWJhc2VcbiovXG5cbmZ1bmN0aW9uIHEoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogLyhgPylbQS1aYS16MC05X10rXFxiLyxcbiAgICBrZXl3b3JkOlxuICAgICAgJ2RvIHdoaWxlIHNlbGVjdCBkZWxldGUgYnkgdXBkYXRlIGZyb20nLFxuICAgIGxpdGVyYWw6XG4gICAgICAnMGIgMWInLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ25lZyBub3QgbnVsbCBzdHJpbmcgcmVjaXByb2NhbCBmbG9vciBjZWlsaW5nIHNpZ251bSBtb2QgeGJhciB4bG9nIGFuZCBvciBlYWNoIHNjYW4gb3ZlciBwcmlvciBtbXUgbHNxIGludiBtZDUgbHRpbWUgZ3RpbWUgY291bnQgZmlyc3QgdmFyIGRldiBtZWQgY292IGNvciBhbGwgYW55IHJhbmQgc3VtcyBwcmRzIG1pbnMgbWF4cyBmaWxscyBkZWx0YXMgcmF0aW9zIGF2Z3MgZGlmZmVyIHByZXYgbmV4dCByYW5rIHJldmVyc2UgaWFzYyBpZGVzYyBhc2MgZGVzYyBtc3VtIG1jb3VudCBtYXZnIG1kZXYgeHJhbmsgbW1pbiBtbWF4IHhwcmV2IHJvdGF0ZSBkaXN0aW5jdCBncm91cCB3aGVyZSBmbGlwIHR5cGUga2V5IHRpbCBnZXQgdmFsdWUgYXR0ciBjdXQgc2V0IHVwc2VydCByYXplIHVuaW9uIGludGVyIGV4Y2VwdCBjcm9zcyBzdiB2cyBzdWJsaXN0IGVubGlzdCByZWFkMCByZWFkMSBob3BlbiBoY2xvc2UgaGRlbCBoc3ltIGhjb3VudCBwZWFjaCBzeXN0ZW0gbHRyaW0gcnRyaW0gdHJpbSBsb3dlciB1cHBlciBzc3IgdmlldyB0YWJsZXMgdmlld3MgY29scyB4Y29scyBrZXlzIHhrZXkgeGNvbCB4YXNjIHhkZXNjIGZrZXlzIG1ldGEgbGogYWogYWowIGlqIHBqIGFzb2YgdWogd3cgd2ogd2oxIGZieSB4Z3JvdXAgdW5ncm91cCBlaiBzYXZlIGxvYWQgcnNhdmUgcmxvYWQgc2hvdyBjc3YgcGFyc2UgZXZhbCBtaW4gbWF4IGF2ZyB3YXZnIHdzdW0gc2luIGNvcyB0YW4gc3VtJyxcbiAgICB0eXBlOlxuICAgICAgJ2BmbG9hdCBgZG91YmxlIGludCBgdGltZXN0YW1wIGB0aW1lc3BhbiBgZGF0ZXRpbWUgYHRpbWUgYGJvb2xlYW4gYHN5bWJvbCBgY2hhciBgYnl0ZSBgc2hvcnQgYGxvbmcgYHJlYWwgYG1vbnRoIGBkYXRlIGBtaW51dGUgYHNlY29uZCBgZ3VpZCdcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdRJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnaycsXG4gICAgICAna2RiJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHE7XG4iLCAiLypcbkxhbmd1YWdlOiBRTUxcblJlcXVpcmVzOiBqYXZhc2NyaXB0LmpzLCB4bWwuanNcbkF1dGhvcjogSm9obiBGb3N0ZXIgPGpmb3N0ZXJAZXNyaS5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgdGhlIFF0IFF1aWNrIFFNTCBzY3JpcHRpbmcgbGFuZ3VhZ2UsIGJhc2VkIG1vc3RseSBvZmZcbiAgICAgICAgICAgICB0aGUgSmF2YVNjcmlwdCBwYXJzZXIuXG5XZWJzaXRlOiBodHRwczovL2RvYy5xdC5pby9xdC01L3FtbGFwcGxpY2F0aW9ucy5odG1sXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG5mdW5jdGlvbiBxbWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnaW4gb2Ygb24gaWYgZm9yIHdoaWxlIGZpbmFsbHkgdmFyIG5ldyBmdW5jdGlvbiBkbyByZXR1cm4gdm9pZCBlbHNlIGJyZWFrIGNhdGNoICdcbiAgICAgICsgJ2luc3RhbmNlb2Ygd2l0aCB0aHJvdyBjYXNlIGRlZmF1bHQgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHR5cGVvZiBkZWxldGUgJ1xuICAgICAgKyAnbGV0IHlpZWxkIGNvbnN0IGV4cG9ydCBzdXBlciBkZWJ1Z2dlciBhcyBhc3luYyBhd2FpdCBpbXBvcnQnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCBOYU4gSW5maW5pdHknLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ2V2YWwgaXNGaW5pdGUgaXNOYU4gcGFyc2VGbG9hdCBwYXJzZUludCBkZWNvZGVVUkkgZGVjb2RlVVJJQ29tcG9uZW50ICdcbiAgICAgICsgJ2VuY29kZVVSSSBlbmNvZGVVUklDb21wb25lbnQgZXNjYXBlIHVuZXNjYXBlIE9iamVjdCBGdW5jdGlvbiBCb29sZWFuIEVycm9yICdcbiAgICAgICsgJ0V2YWxFcnJvciBJbnRlcm5hbEVycm9yIFJhbmdlRXJyb3IgUmVmZXJlbmNlRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvciAnXG4gICAgICArICdUeXBlRXJyb3IgVVJJRXJyb3IgTnVtYmVyIE1hdGggRGF0ZSBTdHJpbmcgUmVnRXhwIEFycmF5IEZsb2F0MzJBcnJheSAnXG4gICAgICArICdGbG9hdDY0QXJyYXkgSW50MTZBcnJheSBJbnQzMkFycmF5IEludDhBcnJheSBVaW50MTZBcnJheSBVaW50MzJBcnJheSAnXG4gICAgICArICdVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEFycmF5QnVmZmVyIERhdGFWaWV3IEpTT04gSW50bCBhcmd1bWVudHMgcmVxdWlyZSAnXG4gICAgICArICdtb2R1bGUgY29uc29sZSB3aW5kb3cgZG9jdW1lbnQgU3ltYm9sIFNldCBNYXAgV2Vha1NldCBXZWFrTWFwIFByb3h5IFJlZmxlY3QgJ1xuICAgICAgKyAnQmVoYXZpb3IgYm9vbCBjb2xvciBjb29yZGluYXRlIGRhdGUgZG91YmxlIGVudW1lcmF0aW9uIGZvbnQgZ2VvY2lyY2xlIGdlb3JlY3RhbmdsZSAnXG4gICAgICArICdnZW9zaGFwZSBpbnQgbGlzdCBtYXRyaXg0eDQgcGFyZW50IHBvaW50IHF1YXRlcm5pb24gcmVhbCByZWN0ICdcbiAgICAgICsgJ3NpemUgc3RyaW5nIHVybCB2YXJpYW50IHZlY3RvcjJkIHZlY3RvcjNkIHZlY3RvcjRkICdcbiAgICAgICsgJ1Byb21pc2UnXG4gIH07XG5cbiAgY29uc3QgUU1MX0lERU5UX1JFID0gJ1thLXpBLVpfXVthLXpBLVowLTlcXFxcLl9dKic7XG5cbiAgLy8gSXNvbGF0ZSBwcm9wZXJ0eSBzdGF0ZW1lbnRzLiBFbmRzIGF0IGEgOiwgPSwgOywgLCwgYSBjb21tZW50IG9yIGVuZCBvZiBsaW5lLlxuICAvLyBVc2UgcHJvcGVydHkgY2xhc3MuXG4gIGNvbnN0IFBST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAnXFxcXGJwcm9wZXJ0eVxcXFxiJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBlbmQ6ICcoOnw9fDt8LHwvL3wvXFxcXCp8JCknLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlXG4gICAgfVxuICB9O1xuXG4gIC8vIElzb2xhdGUgc2lnbmFsIHN0YXRlbWVudHMuIEVuZHMgYXQgYSApIGEgY29tbWVudCBvciBlbmQgb2YgbGluZS5cbiAgLy8gVXNlIHByb3BlcnR5IGNsYXNzLlxuICBjb25zdCBTSUdOQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46ICdcXFxcYnNpZ25hbFxcXFxiJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBlbmQ6ICcoXFxcXCh8Onw9fDt8LHwvL3wvXFxcXCp8JCknLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlXG4gICAgfVxuICB9O1xuXG4gIC8vIGlkOiBpcyBzcGVjaWFsIGluIFFNTC4gV2hlbiB3ZSBzZWUgaWQ6IHdlIHdhbnQgdG8gbWFyayB0aGUgaWQ6IGFzIGF0dHJpYnV0ZSBhbmRcbiAgLy8gZW1waGFzaXplIHRoZSB0b2tlbiBmb2xsb3dpbmcuXG4gIGNvbnN0IElEX0lEID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgYmVnaW46ICdcXFxcYmlkXFxcXHMqOicsXG4gICAgc3RhcnRzOiB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgZW5kOiBRTUxfSURFTlRfUkUsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIC8vIEZpbmQgUU1MIG9iamVjdCBhdHRyaWJ1dGUuIEFuIGF0dHJpYnV0ZSBpcyBhIFFNTCBpZGVudGlmaWVyIGZvbGxvd2VkIGJ5IDouXG4gIC8vIFVuZm9ydHVuYXRlbHkgaXQncyBoYXJkIHRvIGtub3cgd2hlcmUgaXQgZW5kcywgYXMgaXQgbWF5IGNvbnRhaW4gc2NhbGFycyxcbiAgLy8gb2JqZWN0cywgb2JqZWN0IGRlZmluaXRpb25zLCBvciBqYXZhc2NyaXB0LiBUaGUgdHJ1ZSBlbmQgaXMgZWl0aGVyIHdoZW4gdGhlIHBhcmVudFxuICAvLyBlbmRzIG9yIHRoZSBuZXh0IGF0dHJpYnV0ZSBpcyBkZXRlY3RlZC5cbiAgY29uc3QgUU1MX0FUVFJJQlVURSA9IHtcbiAgICBiZWdpbjogUU1MX0lERU5UX1JFICsgJ1xcXFxzKjonLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiBRTUxfSURFTlRfUkUsXG4gICAgICAgIGVuZDogJ1xcXFxzKjonLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8vIEZpbmQgUU1MIG9iamVjdC4gQSBRTUwgb2JqZWN0IGlzIGEgUU1MIGlkZW50aWZpZXIgZm9sbG93ZWQgYnkgeyBhbmQgZW5kcyBhdCB0aGUgbWF0Y2hpbmcgfS5cbiAgLy8gQWxsIHdlIHJlYWxseSBjYXJlIGFib3V0IGlzIGZpbmRpbmcgSURFTlQgZm9sbG93ZWQgYnkgeyBhbmQganVzdCBtYXJrIHVwIHRoZSBJREVOVCBhbmQgaWdub3JlIHRoZSB7LlxuICBjb25zdCBRTUxfT0JKRUNUID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQoUU1MX0lERU5UX1JFLCAvXFxzKlxcey8pLFxuICAgIGVuZDogL1xcey8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IFFNTF9JREVOVF9SRSB9KSBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUU1MJyxcbiAgICBhbGlhc2VzOiBbICdxdCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxccypbJ1wiXXVzZSAoc3RyaWN0fGFzbSlbJ1wiXS9cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgeyAvLyB0ZW1wbGF0ZSBzdHJpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxceycsXG4gICAgICAgICAgICBlbmQ6ICdcXFxcfSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYigwW2JCXVswMV0rKScgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoMFtvT11bMC03XSspJyB9LFxuICAgICAgICAgIHsgYmVnaW46IGhsanMuQ19OVU1CRVJfUkUgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUkVHRVhQX01PREUsXG4gICAgICAgICAgeyAvLyBFNFggLyBKU1hcbiAgICAgICAgICAgIGJlZ2luOiAvPC8sXG4gICAgICAgICAgICBlbmQ6IC8+XFxzKlspO1xcXV0vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBTSUdOQUwsXG4gICAgICBQUk9QRVJUWSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IC9bQS1aYS16JF9dWzAtOUEtWmEteiRfXSovIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogL1xcW3wlL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGFjazogcHJldmVudHMgZGV0ZWN0aW9uIG9mIGtleXdvcmRzIGFmdGVyIGRvdHNcbiAgICAgICAgYmVnaW46ICdcXFxcLicgKyBobGpzLklERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBJRF9JRCxcbiAgICAgIFFNTF9BVFRSSUJVVEUsXG4gICAgICBRTUxfT0JKRUNUXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvIy9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBxbWw7XG4iLCAiLypcbkxhbmd1YWdlOiBSXG5EZXNjcmlwdGlvbjogUiBpcyBhIGZyZWUgc29mdHdhcmUgZW52aXJvbm1lbnQgZm9yIHN0YXRpc3RpY2FsIGNvbXB1dGluZyBhbmQgZ3JhcGhpY3MuXG5BdXRob3I6IEpvZSBDaGVuZyA8am9lQHJzdHVkaW8ub3JnPlxuQ29udHJpYnV0b3JzOiBLb25yYWQgUnVkb2xwaCA8a29ucmFkLnJ1ZG9scGhAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuci1wcm9qZWN0Lm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbixzY2llbnRpZmljXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gcihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gSWRlbnRpZmllcnMgaW4gUiBjYW5ub3Qgc3RhcnQgd2l0aCBgX2AsIGJ1dCB0aGV5IGNhbiBzdGFydCB3aXRoIGAuYCBpZiBpdFxuICAvLyBpcyBub3QgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBkaWdpdC5cbiAgLy8gUiBhbHNvIHN1cHBvcnRzIHF1b3RlZCBpZGVudGlmaWVycywgd2hpY2ggYXJlIG5lYXItYXJiaXRyYXJ5IHNlcXVlbmNlc1xuICAvLyBkZWxpbWl0ZWQgYnkgYmFja3RpY2tzIChgXHUyMDI2YCksIHdoaWNoIG1heSBjb250YWluIGVzY2FwZSBzZXF1ZW5jZXMuIFRoZXNlIGFyZVxuICAvLyBoYW5kbGVkIGluIGEgc2VwYXJhdGUgbW9kZS4gU2VlIGB0ZXN0L21hcmt1cC9yL25hbWVzLnR4dGAgZm9yIGV4YW1wbGVzLlxuICAvLyBGSVhNRTogU3VwcG9ydCBVbmljb2RlIGlkZW50aWZpZXJzLlxuICBjb25zdCBJREVOVF9SRSA9IC8oPzooPzpbYS16QS1aXXxcXC5bLl9hLXpBLVpdKVsuX2EtekEtWjAtOV0qKXxcXC4oPyFcXGQpLztcbiAgY29uc3QgTlVNQkVSX1RZUEVTX1JFID0gcmVnZXguZWl0aGVyKFxuICAgIC8vIFNwZWNpYWwgY2FzZTogb25seSBoZXhhZGVjaW1hbCBiaW5hcnkgcG93ZXJzIGNhbiBjb250YWluIGZyYWN0aW9uc1xuICAgIC8wW3hYXVswLTlhLWZBLUZdK1xcLlswLTlhLWZBLUZdKltwUF1bKy1dP1xcZCtpPy8sXG4gICAgLy8gSGV4YWRlY2ltYWwgbnVtYmVycyB3aXRob3V0IGZyYWN0aW9uIGFuZCBvcHRpb25hbCBiaW5hcnkgcG93ZXJcbiAgICAvMFt4WF1bMC05YS1mQS1GXSsoPzpbcFBdWystXT9cXGQrKT9bTGldPy8sXG4gICAgLy8gRGVjaW1hbCBudW1iZXJzXG4gICAgLyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykoPzpbZUVdWystXT9cXGQrKT9bTGldPy9cbiAgKTtcbiAgY29uc3QgT1BFUkFUT1JTX1JFID0gL1s9ITw+Ol09fFxcfFxcfHwmJnw6Ojo/fDwtfDw8LXwtPj58LT58XFx8PnxbLSsqXFwvPyEkJnw6PD0+QF5+XXxcXCpcXCovO1xuICBjb25zdCBQVU5DVFVBVElPTl9SRSA9IHJlZ2V4LmVpdGhlcihcbiAgICAvWygpXS8sXG4gICAgL1t7fV0vLFxuICAgIC9cXFtcXFsvLFxuICAgIC9bW1xcXV0vLFxuICAgIC9cXFxcLyxcbiAgICAvLC9cbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSJyxcblxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogSURFTlRfUkUsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnZnVuY3Rpb24gaWYgaW4gYnJlYWsgbmV4dCByZXBlYXQgZWxzZSBmb3Igd2hpbGUnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ05VTEwgTkEgVFJVRSBGQUxTRSBJbmYgTmFOIE5BX2ludGVnZXJffDEwIE5BX3JlYWxffDEwICdcbiAgICAgICAgKyAnTkFfY2hhcmFjdGVyX3wxMCBOQV9jb21wbGV4X3wxMCcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gQnVpbHRpbiBjb25zdGFudHNcbiAgICAgICAgJ0xFVFRFUlMgbGV0dGVycyBtb250aC5hYmIgbW9udGgubmFtZSBwaSBUIEYgJ1xuICAgICAgICAvLyBQcmltaXRpdmUgZnVuY3Rpb25zXG4gICAgICAgIC8vIFRoZXNlIGFyZSBhbGwgdGhlIGZ1bmN0aW9ucyBpbiBgYmFzZWAgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgYVxuICAgICAgICAvLyBgLlByaW1pdGl2ZWAsIG1pbnVzIHRob3NlIGZ1bmN0aW9ucyB0aGF0IGFyZSBhbHNvIGtleXdvcmRzLlxuICAgICAgICArICdhYnMgYWNvcyBhY29zaCBhbGwgYW55IGFueU5BIEFyZyBhcy5jYWxsIGFzLmNoYXJhY3RlciAnXG4gICAgICAgICsgJ2FzLmNvbXBsZXggYXMuZG91YmxlIGFzLmVudmlyb25tZW50IGFzLmludGVnZXIgYXMubG9naWNhbCAnXG4gICAgICAgICsgJ2FzLm51bGwuZGVmYXVsdCBhcy5udW1lcmljIGFzLnJhdyBhc2luIGFzaW5oIGF0YW4gYXRhbmggYXR0ciAnXG4gICAgICAgICsgJ2F0dHJpYnV0ZXMgYmFzZWVudiBicm93c2VyIGMgY2FsbCBjZWlsaW5nIGNsYXNzIENvbmogY29zIGNvc2ggJ1xuICAgICAgICArICdjb3NwaSBjdW1tYXggY3VtbWluIGN1bXByb2QgY3Vtc3VtIGRpZ2FtbWEgZGltIGRpbW5hbWVzICdcbiAgICAgICAgKyAnZW1wdHllbnYgZXhwIGV4cHJlc3Npb24gZmxvb3IgZm9yY2VBbmRDYWxsIGdhbW1hIGdjLnRpbWUgJ1xuICAgICAgICArICdnbG9iYWxlbnYgSW0gaW50ZXJhY3RpdmUgaW52aXNpYmxlIGlzLmFycmF5IGlzLmF0b21pYyBpcy5jYWxsICdcbiAgICAgICAgKyAnaXMuY2hhcmFjdGVyIGlzLmNvbXBsZXggaXMuZG91YmxlIGlzLmVudmlyb25tZW50IGlzLmV4cHJlc3Npb24gJ1xuICAgICAgICArICdpcy5maW5pdGUgaXMuZnVuY3Rpb24gaXMuaW5maW5pdGUgaXMuaW50ZWdlciBpcy5sYW5ndWFnZSAnXG4gICAgICAgICsgJ2lzLmxpc3QgaXMubG9naWNhbCBpcy5tYXRyaXggaXMubmEgaXMubmFtZSBpcy5uYW4gaXMubnVsbCAnXG4gICAgICAgICsgJ2lzLm51bWVyaWMgaXMub2JqZWN0IGlzLnBhaXJsaXN0IGlzLnJhdyBpcy5yZWN1cnNpdmUgaXMuc2luZ2xlICdcbiAgICAgICAgKyAnaXMuc3ltYm9sIGxhenlMb2FkREJmZXRjaCBsZW5ndGggbGdhbW1hIGxpc3QgbG9nIG1heCBtaW4gJ1xuICAgICAgICArICdtaXNzaW5nIE1vZCBuYW1lcyBuYXJncyBuemNoYXIgb2xkQ2xhc3Mgb24uZXhpdCBwb3MudG8uZW52ICdcbiAgICAgICAgKyAncHJvYy50aW1lIHByb2QgcXVvdGUgcmFuZ2UgUmUgcmVwIHJldHJhY2VtZW0gcmV0dXJuIHJvdW5kICdcbiAgICAgICAgKyAnc2VxX2Fsb25nIHNlcV9sZW4gc2VxLmludCBzaWduIHNpZ25pZiBzaW4gc2luaCBzaW5waSBzcXJ0ICdcbiAgICAgICAgKyAnc3RhbmRhcmRHZW5lcmljIHN1YnN0aXR1dGUgc3VtIHN3aXRjaCB0YW4gdGFuaCB0YW5waSB0cmFjZW1lbSAnXG4gICAgICAgICsgJ3RyaWdhbW1hIHRydW5jIHVuY2xhc3MgdW50cmFjZW1lbSBVc2VNZXRob2QgeHRmcm0nLFxuICAgIH0sXG5cbiAgICBjb250YWluczogW1xuICAgICAgLy8gUm94eWdlbiBjb21tZW50c1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvIycvLFxuICAgICAgICAvJC8sXG4gICAgICAgIHsgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYEBleGFtcGxlc2Agc2VwYXJhdGVseSB0byBjYXVzZSBhbGwgc3Vic2VxdWVudCBjb2RlXG4gICAgICAgICAgICAvLyB1bnRpbCB0aGUgbmV4dCBgQGAtdGFnIG9uIGl0cyBvd24gbGluZSB0byBiZSBrZXB0IGFzLWlzLFxuICAgICAgICAgICAgLy8gcHJldmVudGluZyBoaWdobGlnaHRpbmcuIFRoaXMgY29kZSBpcyBleGFtcGxlIFIgY29kZSwgc28gbmVzdGVkXG4gICAgICAgICAgICAvLyBkb2N0YWdzIHNob3VsZG5cdTIwMTl0IGJlIHRyZWF0ZWQgYXMgc3VjaC4gU2VlXG4gICAgICAgICAgICAvLyBgdGVzdC9tYXJrdXAvci9yb3h5Z2VuLnR4dGAgZm9yIGFuIGV4YW1wbGUuXG4gICAgICAgICAgICBzY29wZTogJ2RvY3RhZycsXG4gICAgICAgICAgICBtYXRjaDogL0BleGFtcGxlcy8sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kOiByZWdleC5sb29rYWhlYWQocmVnZXguZWl0aGVyKFxuICAgICAgICAgICAgICAgIC8vIGVuZCBpZiBhbm90aGVyIGRvYyBjb21tZW50XG4gICAgICAgICAgICAgICAgL1xcbl4jJ1xccyooPz1AW2EtekEtWl0rKS8sXG4gICAgICAgICAgICAgICAgLy8gb3IgYSBsaW5lIHdpdGggbm8gY29tbWVudFxuICAgICAgICAgICAgICAgIC9cXG5eKD8hIycpL1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGBAcGFyYW1gIHRvIGhpZ2hsaWdodCB0aGUgcGFyYW1ldGVyIG5hbWUgZm9sbG93aW5nXG4gICAgICAgICAgICAvLyBhZnRlci5cbiAgICAgICAgICAgIHNjb3BlOiAnZG9jdGFnJyxcbiAgICAgICAgICAgIGJlZ2luOiAnQHBhcmFtJyxcbiAgICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7IG1hdGNoOiBJREVOVF9SRSB9LFxuICAgICAgICAgICAgICAgICAgeyBtYXRjaDogL2AoPzpcXFxcLnxbXmBcXFxcXSkrYC8gfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogJ2RvY3RhZycsXG4gICAgICAgICAgICBtYXRjaDogL0BbYS16QS1aXSsvXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcW2EtekEtWl0rL1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgICAgICBiZWdpbjogL1tyUl1cIigtKilcXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpKC0qKVwiL1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICAgICAgYmVnaW46IC9bclJdXCIoLSopXFx7LyxcbiAgICAgICAgICAgIGVuZDogL1xcfSgtKilcIi9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvW3JSXVwiKC0qKVxcWy8sXG4gICAgICAgICAgICBlbmQ6IC9cXF0oLSopXCIvXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgICAgICBiZWdpbjogL1tyUl0nKC0qKVxcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkoLSopJy9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvW3JSXScoLSopXFx7LyxcbiAgICAgICAgICAgIGVuZDogL1xcfSgtKiknL1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICAgICAgYmVnaW46IC9bclJdJygtKilcXFsvLFxuICAgICAgICAgICAgZW5kOiAvXFxdKC0qKScvXG4gICAgICAgICAgfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIidcIixcbiAgICAgICAgICAgIGVuZDogXCInXCIsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICB9LFxuXG4gICAgICAvLyBNYXRjaGluZyBudW1iZXJzIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBwdW5jdHVhdGlvbiBhbmQgb3BlcmF0b3JzIGlzXG4gICAgICAvLyB0cmlja3kgc2luY2Ugd2UgbmVlZCB0byBsb29rIGF0IHRoZSBjaGFyYWN0ZXIgYWhlYWQgb2YgYSBudW1iZXIgdG9cbiAgICAgIC8vIGVuc3VyZSB0aGUgbnVtYmVyIGlzIG5vdCBwYXJ0IG9mIGFuIGlkZW50aWZpZXIsIGFuZCB3ZSBjYW5ub3QgdXNlXG4gICAgICAvLyBuZWdhdGl2ZSBsb29rLWJlaGluZCBhc3NlcnRpb25zLiBTbyBpbnN0ZWFkIHdlIGV4cGxpY2l0bHkgaGFuZGxlIGFsbFxuICAgICAgLy8gcG9zc2libGUgY29tYmluYXRpb25zIG9mIChvcGVyYXRvcnxwdW5jdHVhdGlvbiksIG51bWJlci5cbiAgICAgIC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBuZWdhdGl2ZSBsb29rLWJlaGluZCB3aGVuIGF2YWlsYWJsZVxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKTBbeFhdWzAtOWEtZkEtRl0rXFwuWzAtOWEtZkEtRl0qW3BQXVsrLV0/XFxkK2k/LyB9LFxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKTBbeFhdWzAtOWEtZkEtRl0rKFtwUF1bKy1dP1xcZCspP1tMaV0/LyB9LFxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKShcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWystXT9cXGQrKT9bTGldPy8gfVxuICAgICAge1xuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICBPUEVSQVRPUlNfUkUsXG4gICAgICAgICAgICAgIE5VTUJFUl9UWVBFU19SRVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICAvJVteJV0qJS8sXG4gICAgICAgICAgICAgIE5VTUJFUl9UWVBFU19SRVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ3B1bmN0dWF0aW9uJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICBQVU5DVFVBVElPTl9SRSxcbiAgICAgICAgICAgICAgTlVNQkVSX1RZUEVTX1JFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogeyAyOiAnbnVtYmVyJyB9LFxuICAgICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgICAgL1teYS16QS1aMC05Ll9dfF4vLCAvLyBub3QgcGFydCBvZiBhbiBpZGVudGlmaWVyLCBvciBzdGFydCBvZiBkb2N1bWVudFxuICAgICAgICAgICAgICBOVU1CRVJfVFlQRVNfUkVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIE9wZXJhdG9ycy9wdW5jdHVhdGlvbiB3aGVuIHRoZXkncmUgbm90IGRpcmVjdGx5IGZvbGxvd2VkIGJ5IG51bWJlcnNcbiAgICAgIHtcbiAgICAgICAgLy8gUmVsZXZhbmNlIGJvb3N0IGZvciB0aGUgbW9zdCBjb21tb24gYXNzaWdubWVudCBmb3JtLlxuICAgICAgICBzY29wZTogeyAzOiAnb3BlcmF0b3InIH0sXG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC88LS8sXG4gICAgICAgICAgL1xccysvXG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdvcGVyYXRvcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiBPUEVSQVRPUlNfUkUgfSxcbiAgICAgICAgICB7IG1hdGNoOiAvJVteJV0qJS8gfVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAncHVuY3R1YXRpb24nLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIG1hdGNoOiBQVU5DVFVBVElPTl9SRVxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICAvLyBFc2NhcGVkIGlkZW50aWZpZXJcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46IC9cXFxcLi8gfSBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHI7XG4iLCAiLypcbkxhbmd1YWdlOiBSZWFzb25NTFxuRGVzY3JpcHRpb246IFJlYXNvbiBsZXRzIHlvdSB3cml0ZSBzaW1wbGUsIGZhc3QgYW5kIHF1YWxpdHkgdHlwZSBzYWZlIGNvZGUgd2hpbGUgbGV2ZXJhZ2luZyBib3RoIHRoZSBKYXZhU2NyaXB0ICYgT0NhbWwgZWNvc3lzdGVtcy5cbldlYnNpdGU6IGh0dHBzOi8vcmVhc29ubWwuZ2l0aHViLmlvXG5BdXRob3I6IEdpZGkgTWVpciBNb3JyaXMgPG9zc0BnaWRpLmlvPlxuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5mdW5jdGlvbiByZWFzb25tbChobGpzKSB7XG4gIGNvbnN0IEJVSUxUX0lOX1RZUEVTID0gW1xuICAgIFwiYXJyYXlcIixcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVzXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJleG58NVwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImludFwiLFxuICAgIFwiaW50MzJcIixcbiAgICBcImludDY0XCIsXG4gICAgXCJsaXN0XCIsXG4gICAgXCJsYXp5X3R8NVwiLFxuICAgIFwibmF0aXZlaW50fDVcIixcbiAgICBcInJlZlwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJ1bml0XCIsXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1JlYXNvbk1MJyxcbiAgICBhbGlhc2VzOiBbICdyZScgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICAvW2Etel9dXFx3KiE/LyxcbiAgICAgIGtleXdvcmQ6IFtcbiAgICAgICAgXCJhbmRcIixcbiAgICAgICAgXCJhc1wiLFxuICAgICAgICBcImFzclwiLFxuICAgICAgICBcImFzc2VydFwiLFxuICAgICAgICBcImJlZ2luXCIsXG4gICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgXCJjb25zdHJhaW50XCIsXG4gICAgICAgIFwiZG9cIixcbiAgICAgICAgXCJkb25lXCIsXG4gICAgICAgIFwiZG93bnRvXCIsXG4gICAgICAgIFwiZWxzZVwiLFxuICAgICAgICBcImVuZFwiLFxuICAgICAgICBcImVzZnVuXCIsXG4gICAgICAgIFwiZXhjZXB0aW9uXCIsXG4gICAgICAgIFwiZXh0ZXJuYWxcIixcbiAgICAgICAgXCJmb3JcIixcbiAgICAgICAgXCJmdW5cIixcbiAgICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgICBcImZ1bmN0b3JcIixcbiAgICAgICAgXCJpZlwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwiaW5jbHVkZVwiLFxuICAgICAgICBcImluaGVyaXRcIixcbiAgICAgICAgXCJpbml0aWFsaXplclwiLFxuICAgICAgICBcImxhbmRcIixcbiAgICAgICAgXCJsYXp5XCIsXG4gICAgICAgIFwibGV0XCIsXG4gICAgICAgIFwibG9yXCIsXG4gICAgICAgIFwibHNsXCIsXG4gICAgICAgIFwibHNyXCIsXG4gICAgICAgIFwibHhvclwiLFxuICAgICAgICBcIm1vZFwiLFxuICAgICAgICBcIm1vZHVsZVwiLFxuICAgICAgICBcIm11dGFibGVcIixcbiAgICAgICAgXCJuZXdcIixcbiAgICAgICAgXCJub25yZWNcIixcbiAgICAgICAgXCJvYmplY3RcIixcbiAgICAgICAgXCJvZlwiLFxuICAgICAgICBcIm9wZW5cIixcbiAgICAgICAgXCJvclwiLFxuICAgICAgICBcInByaVwiLFxuICAgICAgICBcInB1YlwiLFxuICAgICAgICBcInJlY1wiLFxuICAgICAgICBcInNpZ1wiLFxuICAgICAgICBcInN0cnVjdFwiLFxuICAgICAgICBcInN3aXRjaFwiLFxuICAgICAgICBcInRoZW5cIixcbiAgICAgICAgXCJ0b1wiLFxuICAgICAgICBcInRyeVwiLFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJ2YWxcIixcbiAgICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICAgIFwid2hlblwiLFxuICAgICAgICBcIndoaWxlXCIsXG4gICAgICAgIFwid2l0aFwiLFxuICAgICAgXSxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTl9UWVBFUyxcbiAgICAgIGxpdGVyYWw6IFtcInRydWVcIiwgXCJmYWxzZVwiXSxcbiAgICB9LFxuICAgIGlsbGVnYWw6IC8oOi18Oj18XFwkXFx7fFxcKz0pLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBzY29wZTogJ2xpdGVyYWwnLFxuICAgICAgICBtYXRjaDogL1xcWyhcXHxcXHwpP1xcXXxcXChcXCkvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoL1xcL1xcKi8sIC9cXCpcXC8vLCB7IGlsbGVnYWw6IC9eKCMsXFwvXFwvKS8gfSksXG4gICAgICB7IC8qIHR5cGUgdmFyaWFibGUgKi9cbiAgICAgICAgc2NvcGU6ICdzeW1ib2wnLFxuICAgICAgICBtYXRjaDogL1xcJ1tBLVphLXpfXSg/IVxcJylbXFx3XFwnXSovXG4gICAgICAgIC8qIHRoZSBncmFtbWFyIGlzIGFtYmlndW91cyBvbiBob3cgJ2EnYiBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYnV0IG5vdCB0aGUgY29tcGlsZXIgKi9cbiAgICAgIH0sXG4gICAgICB7IC8qIHBvbHltb3JwaGljIHZhcmlhbnQgKi9cbiAgICAgICAgc2NvcGU6ICd0eXBlJyxcbiAgICAgICAgbWF0Y2g6IC9gW0EtWl1bXFx3XFwnXSovXG4gICAgICB9LFxuICAgICAgeyAvKiBtb2R1bGUgb3IgY29uc3RydWN0b3IgKi9cbiAgICAgICAgc2NvcGU6ICd0eXBlJyxcbiAgICAgICAgbWF0Y2g6IC9cXGJbQS1aXVtcXHdcXCddKi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLyogZG9uJ3QgY29sb3IgaWRlbnRpZmllcnMsIGJ1dCBzYWZlbHkgY2F0Y2ggYWxsIGlkZW50aWZpZXJzIHdpdGggJyAqL1xuICAgICAgbWF0Y2g6IC9bYS16X11cXHcqXFwnW1xcd1xcJ10qLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogJ29wZXJhdG9yJyxcbiAgICAgICAgbWF0Y2g6IC9cXHMrKFxcfFxcfHxcXCtbXFwrXFwuXT98XFwqW1xcKlxcL1xcLl0/fFxcL1tcXC5dP3xcXC5cXC5cXC58XFx8PnwmJnw9PT0/KVxccysvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sICAgICAgXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiAvXFxiMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXGIwW29PXVswLTdfXStbTGxuXT8vIH0sXG4gICAgICAgICAgeyBtYXRjaDogL1xcYjBbYkJdWzAxX10rW0xsbl0/LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXGJbMC05XVswLTlfXSooW0xsbl18KFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pLyB9LFxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlYXNvbm1sO1xuIiwgIi8qXG5MYW5ndWFnZTogUmVuZGVyTWFuIFJJQlxuQXV0aG9yOiBLb25zdGFudGluIEV2ZG9raW1lbmtvIDxxZXdlcnR5QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogU2h1ZW4tSHVlaSBHdWFuIDxkcmFrZS5ndWFuQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vcmVuZGVybWFuLnBpeGFyLmNvbS9yZXNvdXJjZXMvUmVuZGVyTWFuXzIwL3JpYkJpbmRpbmcuaHRtbFxuQ2F0ZWdvcnk6IGdyYXBoaWNzXG4qL1xuXG5mdW5jdGlvbiByaWIoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSZW5kZXJNYW4gUklCJyxcbiAgICBrZXl3b3JkczpcbiAgICAgICdBcmNoaXZlUmVjb3JkIEFyZWFMaWdodFNvdXJjZSBBdG1vc3BoZXJlIEF0dHJpYnV0ZSBBdHRyaWJ1dGVCZWdpbiBBdHRyaWJ1dGVFbmQgQmFzaXMgJ1xuICAgICAgKyAnQmVnaW4gQmxvYmJ5IEJvdW5kIENsaXBwaW5nIENsaXBwaW5nUGxhbmUgQ29sb3IgQ29sb3JTYW1wbGVzIENvbmNhdFRyYW5zZm9ybSBDb25lICdcbiAgICAgICsgJ0Nvb3JkaW5hdGVTeXN0ZW0gQ29vcmRTeXNUcmFuc2Zvcm0gQ3JvcFdpbmRvdyBDdXJ2ZXMgQ3lsaW5kZXIgRGVwdGhPZkZpZWxkIERldGFpbCAnXG4gICAgICArICdEZXRhaWxSYW5nZSBEaXNrIERpc3BsYWNlbWVudCBEaXNwbGF5IEVuZCBFcnJvckhhbmRsZXIgRXhwb3N1cmUgRXh0ZXJpb3IgRm9ybWF0ICdcbiAgICAgICsgJ0ZyYW1lQXNwZWN0UmF0aW8gRnJhbWVCZWdpbiBGcmFtZUVuZCBHZW5lcmFsUG9seWdvbiBHZW9tZXRyaWNBcHByb3hpbWF0aW9uIEdlb21ldHJ5ICdcbiAgICAgICsgJ0hpZGVyIEh5cGVyYm9sb2lkIElkZW50aXR5IElsbHVtaW5hdGUgSW1hZ2VyIEludGVyaW9yIExpZ2h0U291cmNlICdcbiAgICAgICsgJ01ha2VDdWJlRmFjZUVudmlyb25tZW50IE1ha2VMYXRMb25nRW52aXJvbm1lbnQgTWFrZVNoYWRvdyBNYWtlVGV4dHVyZSBNYXR0ZSAnXG4gICAgICArICdNb3Rpb25CZWdpbiBNb3Rpb25FbmQgTnVQYXRjaCBPYmplY3RCZWdpbiBPYmplY3RFbmQgT2JqZWN0SW5zdGFuY2UgT3BhY2l0eSBPcHRpb24gJ1xuICAgICAgKyAnT3JpZW50YXRpb24gUGFyYWJvbG9pZCBQYXRjaCBQYXRjaE1lc2ggUGVyc3BlY3RpdmUgUGl4ZWxGaWx0ZXIgUGl4ZWxTYW1wbGVzICdcbiAgICAgICsgJ1BpeGVsVmFyaWFuY2UgUG9pbnRzIFBvaW50c0dlbmVyYWxQb2x5Z29ucyBQb2ludHNQb2x5Z29ucyBQb2x5Z29uIFByb2NlZHVyYWwgUHJvamVjdGlvbiAnXG4gICAgICArICdRdWFudGl6ZSBSZWFkQXJjaGl2ZSBSZWxhdGl2ZURldGFpbCBSZXZlcnNlT3JpZW50YXRpb24gUm90YXRlIFNjYWxlIFNjcmVlbldpbmRvdyAnXG4gICAgICArICdTaGFkaW5nSW50ZXJwb2xhdGlvbiBTaGFkaW5nUmF0ZSBTaHV0dGVyIFNpZGVzIFNrZXcgU29saWRCZWdpbiBTb2xpZEVuZCBTcGhlcmUgJ1xuICAgICAgKyAnU3ViZGl2aXNpb25NZXNoIFN1cmZhY2UgVGV4dHVyZUNvb3JkaW5hdGVzIFRvcnVzIFRyYW5zZm9ybSBUcmFuc2Zvcm1CZWdpbiBUcmFuc2Zvcm1FbmQgJ1xuICAgICAgKyAnVHJhbnNmb3JtUG9pbnRzIFRyYW5zbGF0ZSBUcmltQ3VydmUgV29ybGRCZWdpbiBXb3JsZEVuZCcsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmliO1xuIiwgIi8qXG5MYW5ndWFnZTogUm9ib2NvbmZcbkF1dGhvcjogVmluY2VudCBadXJjemFrIDx2enVyY3pha0BsaW5hZ29yYS5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgUm9ib2NvbmYncyBEU0xcbldlYnNpdGU6IGh0dHA6Ly9yb2JvY29uZi5uZXRcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbmZ1bmN0aW9uIHJvYm9jb25mKGhsanMpIHtcbiAgY29uc3QgSURFTlRJRklFUiA9ICdbYS16QS1aLV9dW15cXFxcbntdK1xcXFx7JztcblxuICBjb25zdCBQUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgIGJlZ2luOiAvW2EtekEtWi1fXSsvLFxuICAgIGVuZDogL1xccyo6LyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnOycsXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgIGJlZ2luOiAvXFwuW2EtekEtWi1fXSsvXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICBiZWdpbjogL1xcKG9wdGlvbmFsXFwpL1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1JvYm9jb25mJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZ3JhcGgnLFxuICAgICAgJ2luc3RhbmNlcydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6ICdpbXBvcnQnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBGYWNldCBzZWN0aW9uc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ15mYWNldCAnICsgSURFTlRJRklFUixcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAga2V5d29yZHM6ICdmYWNldCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBJbnN0YW5jZSBzZWN0aW9uc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ15cXFxccyppbnN0YW5jZSBvZiAnICsgSURFTlRJRklFUixcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAga2V5d29yZHM6ICduYW1lIGNvdW50IGNoYW5uZWxzIGluc3RhbmNlLWRhdGEgaW5zdGFuY2Utc3RhdGUgaW5zdGFuY2Ugb2YnLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBDb21wb25lbnQgc2VjdGlvbnNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeJyArIElERU5USUZJRVIsXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBDb21tZW50c1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb2JvY29uZjtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1pa3JvVGlrIFJvdXRlck9TIHNjcmlwdFxuQXV0aG9yOiBJdmFuIERlbWVudGV2IDxpdmFuX2RpdkBtYWlsLnJ1PlxuRGVzY3JpcHRpb246IFNjcmlwdGluZyBob3N0IHByb3ZpZGVzIGEgd2F5IHRvIGF1dG9tYXRlIHNvbWUgcm91dGVyIG1haW50ZW5hbmNlIHRhc2tzIGJ5IG1lYW5zIG9mIGV4ZWN1dGluZyB1c2VyLWRlZmluZWQgc2NyaXB0cyBib3VuZGVkIHRvIHNvbWUgZXZlbnQgb2NjdXJyZW5jZVxuV2Vic2l0ZTogaHR0cHM6Ly93aWtpLm1pa3JvdGlrLmNvbS93aWtpL01hbnVhbDpTY3JpcHRpbmdcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbi8vIENvbG9ycyBmcm9tIFJvdXRlck9TIHRlcm1pbmFsOlxuLy8gICBncmVlbiAgICAgICAgLSAjMEU5QTAwXG4vLyAgIHRlYWwgICAgICAgICAtICMwQzlBOUFcbi8vICAgcHVycGxlICAgICAgIC0gIzk5MDY5QVxuLy8gICBsaWdodC1icm93biAgLSAjOUE5OTAwXG5cbmZ1bmN0aW9uIHJvdXRlcm9zKGhsanMpIHtcbiAgY29uc3QgU1RBVEVNRU5UUyA9ICdmb3JlYWNoIGRvIHdoaWxlIGZvciBpZiBmcm9tIHRvIHN0ZXAgZWxzZSBvbi1lcnJvciBhbmQgb3Igbm90IGluJztcblxuICAvLyBHbG9iYWwgY29tbWFuZHM6IEV2ZXJ5IGdsb2JhbCBjb21tYW5kIHNob3VsZCBzdGFydCB3aXRoIFwiOlwiIHRva2VuLCBvdGhlcndpc2UgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIHZhcmlhYmxlLlxuICBjb25zdCBHTE9CQUxfQ09NTUFORFMgPSAnZ2xvYmFsIGxvY2FsIGJlZXAgZGVsYXkgcHV0IGxlbiB0eXBlb2YgcGljayBsb2cgdGltZSBzZXQgZmluZCBlbnZpcm9ubWVudCB0ZXJtaW5hbCBlcnJvciBleGVjdXRlIHBhcnNlIHJlc29sdmUgdG9hcnJheSB0b2Jvb2wgdG9pZCB0b2lwIHRvaXA2IHRvbnVtIHRvc3RyIHRvdGltZSc7XG5cbiAgLy8gQ29tbW9uIGNvbW1hbmRzOiBGb2xsb3dpbmcgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gbW9zdCBzdWItbWVudXM6XG4gIGNvbnN0IENPTU1PTl9DT01NQU5EUyA9ICdhZGQgcmVtb3ZlIGVuYWJsZSBkaXNhYmxlIHNldCBnZXQgcHJpbnQgZXhwb3J0IGVkaXQgZmluZCBydW4gZGVidWcgZXJyb3IgaW5mbyB3YXJuaW5nJztcblxuICBjb25zdCBMSVRFUkFMUyA9ICd0cnVlIGZhbHNlIHllcyBubyBub3RoaW5nIG5pbCBudWxsJztcblxuICBjb25zdCBPQkpFQ1RTID0gJ3RyYWZmaWMtZmxvdyB0cmFmZmljLWdlbmVyYXRvciBmaXJld2FsbCBzY2hlZHVsZXIgYWFhIGFjY291bnRpbmcgYWRkcmVzcy1saXN0IGFkZHJlc3MgYWxpZ24gYXJlYSBiYW5kd2lkdGgtc2VydmVyIGJmZCBiZ3AgYnJpZGdlIGNsaWVudCBjbG9jayBjb21tdW5pdHkgY29uZmlnIGNvbm5lY3Rpb24gY29uc29sZSBjdXN0b21lciBkZWZhdWx0IGRoY3AtY2xpZW50IGRoY3Atc2VydmVyIGRpc2NvdmVyeSBkbnMgZS1tYWlsIGV0aGVybmV0IGZpbHRlciBmaXJtd2FyZSBncHMgZ3JhcGhpbmcgZ3JvdXAgaGFyZHdhcmUgaGVhbHRoIGhvdHNwb3QgaWRlbnRpdHkgaWdtcC1wcm94eSBpbmNvbWluZyBpbnN0YW5jZSBpbnRlcmZhY2UgaXAgaXBzZWMgaXB2NiBpcnEgbDJ0cC1zZXJ2ZXIgbGNkIGxkcCBsb2dnaW5nIG1hYy1zZXJ2ZXIgbWFjLXdpbmJveCBtYW5nbGUgbWFudWFsIG1pcnJvciBtbWUgbXBscyBuYXQgbmQgbmVpZ2hib3IgbmV0d29yayBub3RlIG50cCBvc3BmIG9zcGYtdjMgb3Zwbi1zZXJ2ZXIgcGFnZSBwZWVyIHBpbSBwaW5nIHBvbGljeSBwb29sIHBvcnQgcHBwIHBwcG9lLWNsaWVudCBwcHRwLXNlcnZlciBwcmVmaXggcHJvZmlsZSBwcm9wb3NhbCBwcm94eSBxdWV1ZSByYWRpdXMgcmVzb3VyY2UgcmlwIHJpcG5nIHJvdXRlIHJvdXRpbmcgc2NyZWVuIHNjcmlwdCBzZWN1cml0eS1wcm9maWxlcyBzZXJ2ZXIgc2VydmljZSBzZXJ2aWNlLXBvcnQgc2V0dGluZ3Mgc2hhcmVzIHNtYiBzbXMgc25pZmZlciBzbm1wIHNub29wZXIgc29ja3Mgc3N0cC1zZXJ2ZXIgc3lzdGVtIHRvb2wgdHJhY2tpbmcgdHlwZSB1cGdyYWRlIHVwbnAgdXNlci1tYW5hZ2VyIHVzZXJzIHVzZXIgdmxhbiBzZWNyZXQgdnJycCB3YXRjaGRvZyB3ZWItYWNjZXNzIHdpcmVsZXNzIHBwdHAgcHBwb2UgbGFuIHdhbiBsYXllcjctcHJvdG9jb2wgbGVhc2Ugc2ltcGxlIHJhdyc7XG5cbiAgY29uc3QgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1xcJFtcXHdcXGQjQF1bXFx3XFxkX10qLyB9LFxuICAgICAgeyBiZWdpbjogL1xcJFxceyguKj8pXFx9LyB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLFxuICAgIGVuZDogLycvXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTWlrcm9UaWsgUm91dGVyT1Mgc2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbICdtaWtyb3RpaycgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogLzo/W1xcdy1dKy8sXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIGtleXdvcmQ6IFNUQVRFTUVOVFMgKyAnIDonICsgU1RBVEVNRU5UUy5zcGxpdCgnICcpLmpvaW4oJyA6JykgKyAnIDonICsgR0xPQkFMX0NPTU1BTkRTLnNwbGl0KCcgJykuam9pbignIDonKVxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8gaWxsZWdhbCBzeW50YXhcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IC8vIC0tIGNvbW1lbnRcbiAgICAgICAgICAgIGJlZ2luOiAvXFwvXFwqLyxcbiAgICAgICAgICAgIGVuZDogL1xcKlxcLy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLy8gU3RhbiBjb21tZW50XG4gICAgICAgICAgICBiZWdpbjogL1xcL1xcLy8sXG4gICAgICAgICAgICBlbmQ6IC8kL1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBIVE1MIHRhZ3NcbiAgICAgICAgICAgIGJlZ2luOiAvPFxcLy8sXG4gICAgICAgICAgICBlbmQ6IC8+L1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogLy4vXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdeIycsICckJyksXG4gICAgICBRVU9URV9TVFJJTkcsXG4gICAgICBBUE9TX1NUUklORyxcbiAgICAgIFZBUixcbiAgICAgIC8vIGF0dHJpYnV0ZT12YWx1ZVxuICAgICAge1xuICAgICAgICAvLyA+IGlzIHRvIGF2b2lkIG1hdGNoZXMgd2l0aCA9PiBpbiBvdGhlciBncmFtbWFyc1xuICAgICAgICBiZWdpbjogL1tcXHctXSs9KFteXFxze31bXFxdKCk+XSspLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICAgICAgYmVnaW46IC9bXj1dKy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgICAgICAgICAgQVBPU19TVFJJTkcsXG4gICAgICAgICAgICAgIFZBUixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIExJVEVSQUxTLnNwbGl0KCcgJykuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIERvIG5vdCBmb3JtYXQgdW5jbGFzc2lmaWVkIHZhbHVlcy4gTmVlZGVkIHRvIGV4Y2x1ZGUgaGlnaGxpZ2h0aW5nIG9mIHZhbHVlcyBhcyBidWlsdF9pbi5cbiAgICAgICAgICAgICAgICBiZWdpbjogLyhcIlteXCJdKlwifFteXFxze31bXFxdXSspLyB9XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBJUHY0IGFkZHJlc3NlcyBhbmQgc3VibmV0c1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICAgIHtiZWdpbjogSVBBRERSX3dCSVRNQVNLKycoLCcrSVBBRERSX3dCSVRNQVNLKycpKid9LCAvLzE5Mi4xNjguMC4wLzI0LDEuMi4zLjAvMjRcbiAgICAgICAgICAgICAgICAgIHtiZWdpbjogSVBBRERSKyctJytJUEFERFJ9LCAgICAgICAvLyAxOTIuMTY4LjAuMS0xOTIuMTY4LjAuM1xuICAgICAgICAgICAgICAgICAge2JlZ2luOiBJUEFERFIrJygsJytJUEFERFIrJykqJ30sIC8vIDE5Mi4xNjguMC4xLDE5Mi4xNjguMC4zNCwxOTIuMTY4LjI0LjEsMTkyLjE2OC4wLjFcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBNQUMgYWRkcmVzc2VzIGFuZCBESENQIENsaWVudCBJRHNcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAvXFxiKDE6KT8oWzAtOUEtRmEtZl17MSwyfVs6LV0pezV9KFswLTlBLUZhLWZdKXsxLDJ9XFxiLyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEhFWCB2YWx1ZXNcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IC9cXCpbMC05YS1mQS1GXSsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBDT01NT05fQ09NTUFORFMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKShbXFxcXHNbKFxcXFxdfF0pJyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLCAvLyAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IC9cXHcrL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICcoXFxcXC5cXFxcLi98L3xcXFxccykoKCcgKyBPQkpFQ1RTLnNwbGl0KCcgJykuam9pbignfCcpICsgJyk7P1xcXFxzKSsnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXC5cXC4vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcm9zO1xuIiwgIi8qXG5MYW5ndWFnZTogUmVuZGVyTWFuIFJTTFxuQXV0aG9yOiBLb25zdGFudGluIEV2ZG9raW1lbmtvIDxxZXdlcnR5QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogU2h1ZW4tSHVlaSBHdWFuIDxkcmFrZS5ndWFuQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vcmVuZGVybWFuLnBpeGFyLmNvbS9yZXNvdXJjZXMvUmVuZGVyTWFuXzIwL3NoYWRpbmdMYW5ndWFnZS5odG1sXG5DYXRlZ29yeTogZ3JhcGhpY3NcbiovXG5cbmZ1bmN0aW9uIHJzbChobGpzKSB7XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImFic1wiLFxuICAgIFwiYWNvc1wiLFxuICAgIFwiYW1iaWVudFwiLFxuICAgIFwiYXJlYVwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXRtb3NwaGVyZVwiLFxuICAgIFwiYXR0cmlidXRlXCIsXG4gICAgXCJjYWxjdWxhdGVub3JtYWxcIixcbiAgICBcImNlaWxcIixcbiAgICBcImNlbGxub2lzZVwiLFxuICAgIFwiY2xhbXBcIixcbiAgICBcImNvbXBcIixcbiAgICBcImNvbmNhdFwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJkZWdyZWVzXCIsXG4gICAgXCJkZXB0aFwiLFxuICAgIFwiRGVyaXZcIixcbiAgICBcImRpZmZ1c2VcIixcbiAgICBcImRpc3RhbmNlXCIsXG4gICAgXCJEdVwiLFxuICAgIFwiRHZcIixcbiAgICBcImVudmlyb25tZW50XCIsXG4gICAgXCJleHBcIixcbiAgICBcImZhY2Vmb3J3YXJkXCIsXG4gICAgXCJmaWx0ZXJzdGVwXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwiZm9ybWF0XCIsXG4gICAgXCJmcmVzbmVsXCIsXG4gICAgXCJpbmNpZGVudFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsaWdodHNvdXJjZVwiLFxuICAgIFwibG9nXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF4XCIsXG4gICAgXCJtaW5cIixcbiAgICBcIm1vZFwiLFxuICAgIFwibm9pc2VcIixcbiAgICBcIm5vcm1hbGl6ZVwiLFxuICAgIFwibnRyYW5zZm9ybVwiLFxuICAgIFwib3Bwb3NpdGVcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwicGhvbmdcIixcbiAgICBcInBub2lzZVwiLFxuICAgIFwicG93XCIsXG4gICAgXCJwcmludGZcIixcbiAgICBcInB0bGluZWRcIixcbiAgICBcInJhZGlhbnNcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicmVmbGVjdFwiLFxuICAgIFwicmVmcmFjdFwiLFxuICAgIFwicmVuZGVyaW5mb1wiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNldGNvbXBcIixcbiAgICBcInNldHhjb21wXCIsXG4gICAgXCJzZXR5Y29tcFwiLFxuICAgIFwic2V0emNvbXBcIixcbiAgICBcInNoYWRvd1wiLFxuICAgIFwic2lnblwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzbW9vdGhzdGVwXCIsXG4gICAgXCJzcGVjdWxhclwiLFxuICAgIFwic3BlY3VsYXJicmRmXCIsXG4gICAgXCJzcGxpbmVcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0ZXBcIixcbiAgICBcInRhblwiLFxuICAgIFwidGV4dHVyZVwiLFxuICAgIFwidGV4dHVyZWluZm9cIixcbiAgICBcInRyYWNlXCIsXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBcInZ0cmFuc2Zvcm1cIixcbiAgICBcInhjb21wXCIsXG4gICAgXCJ5Y29tcFwiLFxuICAgIFwiemNvbXBcIlxuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwibWF0cml4XCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiY29sb3JcIixcbiAgICBcInBvaW50XCIsXG4gICAgXCJub3JtYWxcIixcbiAgICBcInZlY3RvclwiXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiZG9cIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiY29udGludWVcIlxuICBdO1xuXG4gIGNvbnN0IENMQVNTX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC8oc3VyZmFjZXxkaXNwbGFjZW1lbnR8bGlnaHR8dm9sdW1lfGltYWdlcikvLFxuICAgICAgL1xccysvLFxuICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUmVuZGVyTWFuIFJTTCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICAgIHR5cGU6IFRZUEVTXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgIGVuZDogJyQnXG4gICAgICB9LFxuICAgICAgQ0xBU1NfREVGSU5JVElPTixcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2lsbHVtaW5hdGUgaWxsdW1pbmFuY2UgZ2F0aGVyJyxcbiAgICAgICAgZW5kOiAnXFxcXCgnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJzbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE9yYWNsZSBSdWxlcyBMYW5ndWFnZVxuQXV0aG9yOiBKYXNvbiBKYWNvYnNvbiA8amFzb24uYS5qYWNvYnNvbkBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVGhlIE9yYWNsZSBVdGlsaXRpZXMgUnVsZXMgTGFuZ3VhZ2UgaXMgdXNlZCB0byBwcm9ncmFtIHRoZSBPcmFjbGUgVXRpbGl0aWVzIEFwcGxpY2F0aW9ucyBhY3F1aXJlZCBmcm9tIExPREVTVEFSIENvcnBvcmF0aW9uLiAgVGhlIHByb2R1Y3RzIGluY2x1ZGUgQmlsbGluZyBDb21wb25lbnQsIExQU1MsIFByaWNpbmcgQ29tcG9uZW50IGV0Yy4gdGhyb3VnaCB2ZXJzaW9uIDEuNi4xLlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vY2QvRTE3OTA0XzAxL2Rldi4xMTExL2UxMDIyNy9ybHJlZi5odG1cbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG5mdW5jdGlvbiBydWxlc2xhbmd1YWdlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT3JhY2xlIFJ1bGVzIExhbmd1YWdlJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ0JJTExfUEVSSU9EIEJJTExfU1RBUlQgQklMTF9TVE9QIFJTX0VGRkVDVElWRV9TVEFSVCBSU19FRkZFQ1RJVkVfU1RPUCBSU19KVVJJU19DT0RFIFJTX09QQ09fQ09ERSAnXG4gICAgICAgICsgJ0lOVERBRERBVFRSSUJVVEV8NSBJTlREQUREVk1TR3w1IElOVERCTE9DS09QfDUgSU5UREJMT0NLT1BOQXw1IElOVERDTE9TRXw1IElOVERDT1VOVHw1ICdcbiAgICAgICAgKyAnSU5URENPVU5UU1RBVFVTQ09ERXw1IElOVERDUkVBVEVNQVNLfDUgSU5URENSRUFURURBWU1BU0t8NSBJTlREQ1JFQVRFRkFDVE9STUFTS3w1ICdcbiAgICAgICAgKyAnSU5URENSRUFURUhBTkRMRXw1IElOVERDUkVBVEVPVkVSUklERURBWU1BU0t8NSBJTlREQ1JFQVRFT1ZFUlJJREVNQVNLfDUgJ1xuICAgICAgICArICdJTlREQ1JFQVRFU1RBVFVTQ09ERU1BU0t8NSBJTlREQ1JFQVRFVE9VUEVSSU9EfDUgSU5URERFTEVURXw1IElOVERESVBURVNUfDUgSU5UREVYUE9SVHw1ICdcbiAgICAgICAgKyAnSU5UREdFVEVSUk9SQ09ERXw1IElOVERHRVRFUlJPUk1FU1NBR0V8NSBJTlRESVNFUVVBTHw1IElOVERKT0lOfDUgSU5URExPQUR8NSBJTlRETE9BREFDVFVBTENVVHw1ICdcbiAgICAgICAgKyAnSU5URExPQUREQVRFU3w1IElOVERMT0FESElTVHw1IElOVERMT0FETElTVHw1IElOVERMT0FETElTVERBVEVTfDUgSU5URExPQURMSVNURU5FUkdZfDUgJ1xuICAgICAgICArICdJTlRETE9BRExJU1RISVNUfDUgSU5URExPQURSRUxBVEVEQ0hBTk5FTHw1IElOVERMT0FEU1B8NSBJTlRETE9BRFNUQUdJTkd8NSBJTlRETE9BRFVPTXw1ICdcbiAgICAgICAgKyAnSU5URExPQURVT01EQVRFU3w1IElOVERMT0FEVU9NSElTVHw1IElOVERMT0FEVkVSU0lPTnw1IElOVERPUEVOfDUgSU5URFJFQURGSVJTVHw1IElOVERSRUFETkVYVHw1ICdcbiAgICAgICAgKyAnSU5URFJFQ0NPVU5UfDUgSU5URFJFTEVBU0V8NSBJTlREUkVQTEFDRXw1IElOVERST0xMQVZHfDUgSU5URFJPTExQRUFLfDUgSU5URFNDQUxBUk9QfDUgSU5URFNDQUxFfDUgJ1xuICAgICAgICArICdJTlREU0VUQVRUUklCVVRFfDUgSU5URFNFVERTVFBBUlRJQ0lQQU5UfDUgSU5URFNFVFNUUklOR3w1IElOVERTRVRWQUxVRXw1IElOVERTRVRWQUxVRVNUQVRVU3w1ICdcbiAgICAgICAgKyAnSU5URFNISUZUU1RBUlRUSU1FfDUgSU5URFNNT09USHw1IElOVERTT1JUfDUgSU5URFNQSUtFVEVTVHw1IElOVERTVUJTRVR8NSBJTlREVE9VfDUgJ1xuICAgICAgICArICdJTlREVE9VUkVMRUFTRXw1IElOVERUT1VWQUxVRXw1IElOVERVUERBVEVTVEFUU3w1IElOVERWQUxVRXw1IFNUREVWIElOVERERUxFVEVFWHw1ICdcbiAgICAgICAgKyAnSU5URExPQURFWEFDVFVBTHw1IElOVERMT0FERVhDVVR8NSBJTlRETE9BREVYREFURVN8NSBJTlRETE9BREVYfDUgSU5URExPQURFWFJFTEFURURDSEFOTkVMfDUgJ1xuICAgICAgICArICdJTlREU0FWRUVYfDUgTVZMT0FEfDUgTVZMT0FEQUNDVHw1IE1WTE9BREFDQ1REQVRFU3w1IE1WTE9BREFDQ1RISVNUfDUgTVZMT0FEREFURVN8NSBNVkxPQURISVNUfDUgJ1xuICAgICAgICArICdNVkxPQURMSVNUfDUgTVZMT0FETElTVERBVEVTfDUgTVZMT0FETElTVEhJU1R8NSBJRiBGT1IgTkVYVCBET05FIFNFTEVDVCBFTkQgQ0FMTCBBQk9SVCBDTEVBUiBDSEFOTkVMIEZBQ1RPUiBMSVNUIE5VTUJFUiAnXG4gICAgICAgICsgJ09WRVJSSURFIFNFVCBXRUVLIERJU1RSSUJVVElPTk5PREUgRUxTRSBXSEVOIFRIRU4gT1RIRVJXSVNFIElFTlVNIENTViBJTkNMVURFIExFQVZFIFJJREVSIFNBVkUgREVMRVRFICdcbiAgICAgICAgKyAnTk9WQUxVRSBTRUNUSU9OIFdBUk4gU0FWRV9VUERBVEUgREVURVJNSU5BTlQgTEFCRUwgUkVQT1JUIFJFVkVOVUUgRUFDSCAnXG4gICAgICAgICsgJ0lOIEZST00gVE9UQUwgQ0hBUkdFIEJMT0NLIEFORCBPUiBDU1ZfRklMRSBSQVRFX0NPREUgQVVYSUxJQVJZX0RFTUFORCAnXG4gICAgICAgICsgJ1VJREFDQ09VTlQgUlMgQklMTF9QRVJJT0RfU0VMRUNUIEhPVVJTX1BFUl9NT05USCBJTlREX0VSUk9SX1NUT1AgU0VBU09OX1NDSEVEVUxFX05BTUUgJ1xuICAgICAgICArICdBQ0NPVU5URkFDVE9SIEFSUkFZVVBQRVJCT1VORCBDQUxMU1RPUkVEUFJPQyBHRVRBRE9DT05ORUNUSU9OIEdFVENPTk5FQ1QgR0VUREFUQVNPVVJDRSAnXG4gICAgICAgICsgJ0dFVFFVQUxJRklFUiBHRVRVU0VSSUQgSEFTVkFMVUUgTElTVENPVU5UIExJU1RPUCBMSVNUVVBEQVRFIExJU1RWQUxVRSBQUk9SQVRFRkFDVE9SIFJTUFJPUkFURSAnXG4gICAgICAgICsgJ1NFVEJJTlBBVEggU0VUREJNT05JVE9SIFdRX09QRU4gQklMTElOR0hPVVJTIERBVEUgREFURUZST01GTE9BVCBEQVRFVElNRUZST01TVFJJTkcgJ1xuICAgICAgICArICdEQVRFVElNRVRPU1RSSU5HIERBVEVUT0ZMT0FUIERBWSBEQVlESUZGIERBWU5BTUUgREJEQVRFVElNRSBIT1VSIE1JTlVURSBNT05USCBNT05USERJRkYgJ1xuICAgICAgICArICdNT05USEhPVVJTIE1PTlRITkFNRSBST1VORERBVEUgU0FNRVdFRUtEQVlMQVNUWUVBUiBTRUNPTkQgV0VFS0RBWSBXRUVLRElGRiBZRUFSIFlFQVJEQVkgJ1xuICAgICAgICArICdZRUFSU1RSIENPTVBTVU0gSElTVENPVU5UIEhJU1RNQVggSElTVE1JTiBISVNUTUlOTlogSElTVFZBTFVFIE1BWE5SQU5HRSBNQVhSQU5HRSBNSU5SQU5HRSAnXG4gICAgICAgICsgJ0NPTVBJS1ZBIENPTVBLVkEgQ09NUEtWQVJGUk9NS1FLVyBDT01QTEYgSURBVFRSIEZMQUcgTEYyS1cgTEYyS1dIIE1BWEtXIFBPV0VSRkFDVE9SICdcbiAgICAgICAgKyAnUkVBRElORzJVU0FHRSBBVkdTRUFTT04gTUFYU0VBU09OIE1PTlRITFlNRVJHRSBTRUFTT05WQUxVRSBTVU1TRUFTT04gQUNDVFJFQUREQVRFUyAnXG4gICAgICAgICsgJ0FDQ1RUQUJMRUxPQUQgQ09ORklHQUREIENPTkZJR0dFVCBDUkVBVEVPQkpFQ1QgQ1JFQVRFUkVQT1JUIEVNQUlMQ0xJRU5UIEVYUEJMS01ETVVTQUdFICdcbiAgICAgICAgKyAnRVhQTURNVVNBR0UgRVhQT1JUX1VTQUdFIEZBQ1RPUklORUZGRUNUIEdFVFVTRVJTUEVDSUZJRURTVE9QIElORUZGRUNUIElTSE9MSURBWSBSVU5SQVRFICdcbiAgICAgICAgKyAnU0FWRV9QUk9GSUxFIFNFVFJFUE9SVFRJVExFIFVTRVJFWElUIFdBVEZPUlJVTlJBVEUgVE8gVEFCTEUgQUNPUyBBU0lOIEFUQU4gQVRBTjIgQklUQU5EIENFSUwgJ1xuICAgICAgICArICdDT1MgQ09TRUNBTlQgQ09TSCBDT1RBTkdFTlQgRElWUVVPVCBESVZSRU0gRVhQIEZBQlMgRkxPT1IgRk1PRCBGUkVQTSBGUkVYUE4gTE9HIExPRzEwIE1BWCBNQVhOICdcbiAgICAgICAgKyAnTUlOIE1JTk5aIE1PREYgUE9XIFJPVU5EIFJPVU5EMlZBTFVFIFJPVU5ESU5UIFNFQ0FOVCBTSU4gU0lOSCBTUVJPT1QgVEFOIFRBTkggRkxPQVQyU1RSSU5HICdcbiAgICAgICAgKyAnRkxPQVQyU1RSSU5HTkMgSU5TVFIgTEVGVCBMRU4gTFRSSU0gTUlEIFJJR0hUIFJUUklNIFNUUklORyBTVFJJTkdOQyBUT0xPV0VSIFRPVVBQRVIgVFJJTSAnXG4gICAgICAgICsgJ05VTURBWVMgUkVBRF9EQVRFIFNUQUdJTkcnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdJREVOVElGSUVSIE9QVElPTlMgWE1MX0VMRU1FTlQgWE1MX09QIFhNTF9FTEVNRU5UX09GIERPTURPQ0NSRUFURSBET01ET0NMT0FERklMRSBET01ET0NMT0FEWE1MICdcbiAgICAgICAgKyAnRE9NRE9DU0FWRUZJTEUgRE9NRE9DR0VUUk9PVCBET01ET0NBRERQSSBET01OT0RFR0VUTkFNRSBET01OT0RFR0VUVFlQRSBET01OT0RFR0VUVkFMVUUgRE9NTk9ERUdFVENISUxEQ1QgJ1xuICAgICAgICArICdET01OT0RFR0VURklSU1RDSElMRCBET01OT0RFR0VUU0lCTElORyBET01OT0RFQ1JFQVRFQ0hJTERFTEVNRU5UIERPTU5PREVTRVRBVFRSSUJVVEUgJ1xuICAgICAgICArICdET01OT0RFR0VUQ0hJTERFTEVNRU5UQ1QgRE9NTk9ERUdFVEZJUlNUQ0hJTERFTEVNRU5UIERPTU5PREVHRVRTSUJMSU5HRUxFTUVOVCBET01OT0RFR0VUQVRUUklCVVRFQ1QgJ1xuICAgICAgICArICdET01OT0RFR0VUQVRUUklCVVRFSSBET01OT0RFR0VUQVRUUklCVVRFQllOQU1FIERPTU5PREVHRVRCWU5BTUUnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgLy8gbG9va3MgbGlrZSAjLWNvbW1lbnRcbiAgICAgICAgICAgIGJlZ2luOiAnI1xcXFxzKycsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgYmVnaW46ICcjW2EtekEtWiAuXSsnIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBydWxlc2xhbmd1YWdlO1xuIiwgIi8qXG5MYW5ndWFnZTogUnVzdFxuQXV0aG9yOiBBbmRyZXkgVmxhc292c2tpa2ggPGFuZHJleS52bGFzb3Zza2lraEBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IFJvbWFuIFNobWF0b3YgPHJvbWFuc2htYXRvdkBnbWFpbC5jb20+LCBLYXNwZXIgQW5kZXJzZW4gPGttYV91bnRydXN0ZWRAcHJvdG9ubWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5ydXN0LWxhbmcub3JnXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5cbmZ1bmN0aW9uIHJ1c3QoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFkZGVkIHRvIHN1cHBvcnQgdGhlIHIjIGtleXdvcmQsIHdoaWNoIGlzIGEgcmF3IGlkZW50aWZpZXIgaW4gUnVzdC5cbiAgY29uc3QgUkFXX0lERU5USUZJRVIgPSAvKHIjKT8vO1xuICBjb25zdCBVTkRFUlNDT1JFX0lERU5UX1JFID0gcmVnZXguY29uY2F0KFJBV19JREVOVElGSUVSLCBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUpO1xuICBjb25zdCBJREVOVF9SRSA9IHJlZ2V4LmNvbmNhdChSQVdfSURFTlRJRklFUiwgaGxqcy5JREVOVF9SRSk7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIGNvbnN0IEZVTkNUSU9OX0lOVk9LRSA9IHtcbiAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb24uaW52b2tlXCIsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIC8oPyFsZXR8Zm9yfHdoaWxlfGlmfGVsc2V8bWF0Y2hcXGIpLyxcbiAgICAgIElERU5UX1JFLFxuICAgICAgcmVnZXgubG9va2FoZWFkKC9cXHMqXFwoLykpXG4gIH07XG4gIGNvbnN0IE5VTUJFUl9TVUZGSVggPSAnKFt1aV0oOHwxNnwzMnw2NHwxMjh8c2l6ZSl8ZigzMnw2NCkpXFw/JztcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYXNcIixcbiAgICBcImFzeW5jXCIsXG4gICAgXCJhd2FpdFwiLFxuICAgIFwiYmVjb21lXCIsXG4gICAgXCJib3hcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImNyYXRlXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHluXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJleHRlcm5cIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwiZm5cIixcbiAgICBcImZvclwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxcIixcbiAgICBcImluXCIsXG4gICAgXCJsZXRcIixcbiAgICBcImxvb3BcIixcbiAgICBcIm1hY3JvXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJtb3ZlXCIsXG4gICAgXCJtdXRcIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJwcml2XCIsXG4gICAgXCJwdWJcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJTZWxmXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInRyYWl0XCIsXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInR5cGVcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwidW5pb25cIixcbiAgICBcInVuc2FmZVwiLFxuICAgIFwidW5zaXplZFwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2aXJ0dWFsXCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcInlpZWxkXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiU29tZVwiLFxuICAgIFwiTm9uZVwiLFxuICAgIFwiT2tcIixcbiAgICBcIkVyclwiXG4gIF07XG4gIGNvbnN0IEJVSUxUSU5TID0gW1xuICAgIC8vIGZ1bmN0aW9uc1xuICAgICdkcm9wICcsXG4gICAgLy8gdHJhaXRzXG4gICAgXCJDb3B5XCIsXG4gICAgXCJTZW5kXCIsXG4gICAgXCJTaXplZFwiLFxuICAgIFwiU3luY1wiLFxuICAgIFwiRHJvcFwiLFxuICAgIFwiRm5cIixcbiAgICBcIkZuTXV0XCIsXG4gICAgXCJGbk9uY2VcIixcbiAgICBcIlRvT3duZWRcIixcbiAgICBcIkNsb25lXCIsXG4gICAgXCJEZWJ1Z1wiLFxuICAgIFwiUGFydGlhbEVxXCIsXG4gICAgXCJQYXJ0aWFsT3JkXCIsXG4gICAgXCJFcVwiLFxuICAgIFwiT3JkXCIsXG4gICAgXCJBc1JlZlwiLFxuICAgIFwiQXNNdXRcIixcbiAgICBcIkludG9cIixcbiAgICBcIkZyb21cIixcbiAgICBcIkRlZmF1bHRcIixcbiAgICBcIkl0ZXJhdG9yXCIsXG4gICAgXCJFeHRlbmRcIixcbiAgICBcIkludG9JdGVyYXRvclwiLFxuICAgIFwiRG91YmxlRW5kZWRJdGVyYXRvclwiLFxuICAgIFwiRXhhY3RTaXplSXRlcmF0b3JcIixcbiAgICBcIlNsaWNlQ29uY2F0RXh0XCIsXG4gICAgXCJUb1N0cmluZ1wiLFxuICAgIC8vIG1hY3Jvc1xuICAgIFwiYXNzZXJ0IVwiLFxuICAgIFwiYXNzZXJ0X2VxIVwiLFxuICAgIFwiYml0ZmxhZ3MhXCIsXG4gICAgXCJieXRlcyFcIixcbiAgICBcImNmZyFcIixcbiAgICBcImNvbCFcIixcbiAgICBcImNvbmNhdCFcIixcbiAgICBcImNvbmNhdF9pZGVudHMhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnQhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnRfZXEhXCIsXG4gICAgXCJlbnYhXCIsXG4gICAgXCJlcHJpbnRsbiFcIixcbiAgICBcInBhbmljIVwiLFxuICAgIFwiZmlsZSFcIixcbiAgICBcImZvcm1hdCFcIixcbiAgICBcImZvcm1hdF9hcmdzIVwiLFxuICAgIFwiaW5jbHVkZV9ieXRlcyFcIixcbiAgICBcImluY2x1ZGVfc3RyIVwiLFxuICAgIFwibGluZSFcIixcbiAgICBcImxvY2FsX2RhdGFfa2V5IVwiLFxuICAgIFwibW9kdWxlX3BhdGghXCIsXG4gICAgXCJvcHRpb25fZW52IVwiLFxuICAgIFwicHJpbnQhXCIsXG4gICAgXCJwcmludGxuIVwiLFxuICAgIFwic2VsZWN0IVwiLFxuICAgIFwic3RyaW5naWZ5IVwiLFxuICAgIFwidHJ5IVwiLFxuICAgIFwidW5pbXBsZW1lbnRlZCFcIixcbiAgICBcInVucmVhY2hhYmxlIVwiLFxuICAgIFwidmVjIVwiLFxuICAgIFwid3JpdGUhXCIsXG4gICAgXCJ3cml0ZWxuIVwiLFxuICAgIFwibWFjcm9fcnVsZXMhXCIsXG4gICAgXCJhc3NlcnRfbmUhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnRfbmUhXCJcbiAgXTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJpOFwiLFxuICAgIFwiaTE2XCIsXG4gICAgXCJpMzJcIixcbiAgICBcImk2NFwiLFxuICAgIFwiaTEyOFwiLFxuICAgIFwiaXNpemVcIixcbiAgICBcInU4XCIsXG4gICAgXCJ1MTZcIixcbiAgICBcInUzMlwiLFxuICAgIFwidTY0XCIsXG4gICAgXCJ1MTI4XCIsXG4gICAgXCJ1c2l6ZVwiLFxuICAgIFwiZjMyXCIsXG4gICAgXCJmNjRcIixcbiAgICBcInN0clwiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiYm9vbFwiLFxuICAgIFwiQm94XCIsXG4gICAgXCJPcHRpb25cIixcbiAgICBcIlJlc3VsdFwiLFxuICAgIFwiU3RyaW5nXCIsXG4gICAgXCJWZWNcIlxuICBdO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSdXN0JyxcbiAgICBhbGlhc2VzOiBbICdycycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IGhsanMuSURFTlRfUkUgKyAnIT8nLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUSU5TXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nLCB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICAgICAgYmVnaW46IC9iP1wiLyxcbiAgICAgICAgaWxsZWdhbDogbnVsbFxuICAgICAgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogL2I/cigjKilcIigufFxcbikqP1wiXFwxKD8hIykvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL2I/J1xcXFw/KHhcXHd7Mn18dVxcd3s0fXxVXFx3ezh9fC4pJy8gfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogLydbYS16QS1aX11bYS16QS1aMC05X10qL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIwYihbMDFfXSspJyArIE5VTUJFUl9TVUZGSVggfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIwbyhbMC03X10rKScgKyBOVU1CRVJfU1VGRklYIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiMHgoW0EtRmEtZjAtOV9dKyknICsgTlVNQkVSX1NVRkZJWCB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYihcXFxcZFtcXFxcZF9dKihcXFxcLlswLTlfXSspPyhbZUVdWystXT9bMC05X10rKT8pJ1xuICAgICAgICAgICAgICAgICAgICsgTlVNQkVSX1NVRkZJWCB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvZm4vLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBVTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjIT9cXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL2xldC8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC8oPzptdXRcXHMrKT8vLFxuICAgICAgICAgIFVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgNDogXCJ2YXJpYWJsZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBtdXN0IGNvbWUgYmVmb3JlIGltcGwvZm9yIHJ1bGUgbGF0ZXJcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvZm9yLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgL2luL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInZhcmlhYmxlXCIsXG4gICAgICAgICAgNTogXCJrZXl3b3JkXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvdHlwZS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIFVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyg/OnRyYWl0fGVudW18c3RydWN0fHVuaW9ufGltcGx8Zm9yKS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIFVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICBrZXl3b3JkOiBcIlNlbGZcIixcbiAgICAgICAgICBidWlsdF9pbjogQlVJTFRJTlMsXG4gICAgICAgICAgdHlwZTogVFlQRVNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgIGJlZ2luOiAnLT4nXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fSU5WT0tFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJ1c3Q7XG4iLCAiLypcbkxhbmd1YWdlOiBTQVNcbkF1dGhvcjogTWF1cmljaW8gQ2FjZXJlcyA8bWF1cmljaW8uY2FjZXJlcy5icmF2b0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IEhpZ2hsaWdodGluZyBmb3IgU0FTXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHNhcyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gRGF0YSBzdGVwIGFuZCBQUk9DIFNRTCBzdGF0ZW1lbnRzXG4gIGNvbnN0IFNBU19LRVlXT1JEUyA9IFtcbiAgICBcImRvXCIsXG4gICAgXCJpZlwiLFxuICAgIFwidGhlblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJ1bnRpbFwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcImFib3J0XCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiYXR0cmliXCIsXG4gICAgXCJieVwiLFxuICAgIFwiY2FsbFwiLFxuICAgIFwiY2FyZHNcIixcbiAgICBcImNhcmRzNFwiLFxuICAgIFwiY2F0bmFtZVwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImRhdGFsaW5lc1wiLFxuICAgIFwiZGF0YWxpbmVzNFwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJkZWxpbVwiLFxuICAgIFwiZGVsaW1pdGVyXCIsXG4gICAgXCJkaXNwbGF5XCIsXG4gICAgXCJkbVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZW5kc2FzXCIsXG4gICAgXCJlcnJvclwiLFxuICAgIFwiZmlsZVwiLFxuICAgIFwiZmlsZW5hbWVcIixcbiAgICBcImZvb3Rub3RlXCIsXG4gICAgXCJmb3JtYXRcIixcbiAgICBcImdvdG9cIixcbiAgICBcImluXCIsXG4gICAgXCJpbmZpbGVcIixcbiAgICBcImluZm9ybWF0XCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwia2VlcFwiLFxuICAgIFwibGFiZWxcIixcbiAgICBcImxlYXZlXCIsXG4gICAgXCJsZW5ndGhcIixcbiAgICBcImxpYm5hbWVcIixcbiAgICBcImxpbmtcIixcbiAgICBcImxpc3RcIixcbiAgICBcImxvc3RjYXJkXCIsXG4gICAgXCJtZXJnZVwiLFxuICAgIFwibWlzc2luZ1wiLFxuICAgIFwibW9kaWZ5XCIsXG4gICAgXCJvcHRpb25zXCIsXG4gICAgXCJvdXRwdXRcIixcbiAgICBcIm91dFwiLFxuICAgIFwicGFnZVwiLFxuICAgIFwicHV0XCIsXG4gICAgXCJyZWRpcmVjdFwiLFxuICAgIFwicmVtb3ZlXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInJldGFpblwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcInNldFwiLFxuICAgIFwic2tpcFwiLFxuICAgIFwic3RhcnRzYXNcIixcbiAgICBcInN0b3BcIixcbiAgICBcInRpdGxlXCIsXG4gICAgXCJ1cGRhdGVcIixcbiAgICBcIndhaXRzYXNcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aW5kb3dcIixcbiAgICBcInh8MFwiLFxuICAgIFwic3lzdGFza1wiLFxuICAgIFwiYWRkXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiY2FzY2FkZVwiLFxuICAgIFwiY2hlY2tcIixcbiAgICBcImNyZWF0ZVwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJkZXNjcmliZVwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRyb3BcIixcbiAgICBcImZvcmVpZ25cIixcbiAgICBcImZyb21cIixcbiAgICBcImdyb3VwXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludG9cIixcbiAgICBcImluXCIsXG4gICAgXCJrZXlcIixcbiAgICBcImxpa2VcIixcbiAgICBcIm1lc3NhZ2VcIixcbiAgICBcIm1vZGlmeVwiLFxuICAgIFwibXNndHlwZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJudWxsXCIsXG4gICAgXCJvblwiLFxuICAgIFwib3JcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJyZWZlcmVuY2VzXCIsXG4gICAgXCJyZXNldFwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJ0YWJsZVwiLFxuICAgIFwidW5pcXVlXCIsXG4gICAgXCJ1cGRhdGVcIixcbiAgICBcInZhbGlkYXRlXCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJ3aGVyZVwiXG4gIF07XG5cbiAgLy8gQnVpbHQtaW4gU0FTIGZ1bmN0aW9uc1xuICBjb25zdCBGVU5DVElPTlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFkZHJcIixcbiAgICBcImFpcnlcIixcbiAgICBcImFyY29zXCIsXG4gICAgXCJhcnNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXR0cmNcIixcbiAgICBcImF0dHJuXCIsXG4gICAgXCJiYW5kXCIsXG4gICAgXCJiZXRhaW52XCIsXG4gICAgXCJibHNoaWZ0XCIsXG4gICAgXCJibm90XCIsXG4gICAgXCJib3JcIixcbiAgICBcImJyc2hpZnRcIixcbiAgICBcImJ4b3JcIixcbiAgICBcImJ5dGVcIixcbiAgICBcImNkZlwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2V4aXN0XCIsXG4gICAgXCJjaW52XCIsXG4gICAgXCJjbG9zZVwiLFxuICAgIFwiY25vbmN0XCIsXG4gICAgXCJjb2xsYXRlXCIsXG4gICAgXCJjb21wYmxcIixcbiAgICBcImNvbXBvdW5kXCIsXG4gICAgXCJjb21wcmVzc1wiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJjc3NcIixcbiAgICBcImN1cm9ic1wiLFxuICAgIFwiY3ZcIixcbiAgICBcImRhY2NkYlwiLFxuICAgIFwiZGFjY2Ric2xcIixcbiAgICBcImRhY2NzbFwiLFxuICAgIFwiZGFjY3N5ZFwiLFxuICAgIFwiZGFjY3RhYlwiLFxuICAgIFwiZGFpcnlcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRhdGVqdWxcIixcbiAgICBcImRhdGVwYXJ0XCIsXG4gICAgXCJkYXRldGltZVwiLFxuICAgIFwiZGF5XCIsXG4gICAgXCJkY2xvc2VcIixcbiAgICBcImRlcGRiXCIsXG4gICAgXCJkZXBkYnNsXCIsXG4gICAgXCJkZXBkYnNsXCIsXG4gICAgXCJkZXBzbFwiLFxuICAgIFwiZGVwc2xcIixcbiAgICBcImRlcHN5ZFwiLFxuICAgIFwiZGVwc3lkXCIsXG4gICAgXCJkZXB0YWJcIixcbiAgICBcImRlcHRhYlwiLFxuICAgIFwiZGVxdW90ZVwiLFxuICAgIFwiZGhtc1wiLFxuICAgIFwiZGlmXCIsXG4gICAgXCJkaWdhbW1hXCIsXG4gICAgXCJkaW1cIixcbiAgICBcImRpbmZvXCIsXG4gICAgXCJkbnVtXCIsXG4gICAgXCJkb3BlblwiLFxuICAgIFwiZG9wdG5hbWVcIixcbiAgICBcImRvcHRudW1cIixcbiAgICBcImRyZWFkXCIsXG4gICAgXCJkcm9wbm90ZVwiLFxuICAgIFwiZHNuYW1lXCIsXG4gICAgXCJlcmZcIixcbiAgICBcImVyZmNcIixcbiAgICBcImV4aXN0XCIsXG4gICAgXCJleHBcIixcbiAgICBcImZhcHBlbmRcIixcbiAgICBcImZjbG9zZVwiLFxuICAgIFwiZmNvbFwiLFxuICAgIFwiZmRlbGV0ZVwiLFxuICAgIFwiZmV0Y2hcIixcbiAgICBcImZldGNob2JzXCIsXG4gICAgXCJmZXhpc3RcIixcbiAgICBcImZnZXRcIixcbiAgICBcImZpbGVleGlzdFwiLFxuICAgIFwiZmlsZW5hbWVcIixcbiAgICBcImZpbGVyZWZcIixcbiAgICBcImZpbmZvXCIsXG4gICAgXCJmaW52XCIsXG4gICAgXCJmaXBuYW1lXCIsXG4gICAgXCJmaXBuYW1lbFwiLFxuICAgIFwiZmlwc3RhdGVcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJmbm9uY3RcIixcbiAgICBcImZub3RlXCIsXG4gICAgXCJmb3BlblwiLFxuICAgIFwiZm9wdG5hbWVcIixcbiAgICBcImZvcHRudW1cIixcbiAgICBcImZwb2ludFwiLFxuICAgIFwiZnBvc1wiLFxuICAgIFwiZnB1dFwiLFxuICAgIFwiZnJlYWRcIixcbiAgICBcImZyZXdpbmRcIixcbiAgICBcImZybGVuXCIsXG4gICAgXCJmc2VwXCIsXG4gICAgXCJmdXp6XCIsXG4gICAgXCJmd3JpdGVcIixcbiAgICBcImdhbWludlwiLFxuICAgIFwiZ2FtbWFcIixcbiAgICBcImdldG9wdGlvblwiLFxuICAgIFwiZ2V0dmFyY1wiLFxuICAgIFwiZ2V0dmFyblwiLFxuICAgIFwiaGJvdW5kXCIsXG4gICAgXCJobXNcIixcbiAgICBcImhvc3RoZWxwXCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJpYmVzc2VsXCIsXG4gICAgXCJpbmRleFwiLFxuICAgIFwiaW5kZXhjXCIsXG4gICAgXCJpbmRleHdcIixcbiAgICBcImlucHV0XCIsXG4gICAgXCJpbnB1dGNcIixcbiAgICBcImlucHV0blwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRja1wiLFxuICAgIFwiaW50bnhcIixcbiAgICBcImludHJyXCIsXG4gICAgXCJpcnJcIixcbiAgICBcImpiZXNzZWxcIixcbiAgICBcImp1bGRhdGVcIixcbiAgICBcImt1cnRvc2lzXCIsXG4gICAgXCJsYWdcIixcbiAgICBcImxib3VuZFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsZ2FtbWFcIixcbiAgICBcImxpYm5hbWVcIixcbiAgICBcImxpYnJlZlwiLFxuICAgIFwibG9nXCIsXG4gICAgXCJsb2cxMFwiLFxuICAgIFwibG9nMlwiLFxuICAgIFwibG9ncGRmXCIsXG4gICAgXCJsb2dwbWZcIixcbiAgICBcImxvZ3NkZlwiLFxuICAgIFwibG93Y2FzZVwiLFxuICAgIFwibWF4XCIsXG4gICAgXCJtZHlcIixcbiAgICBcIm1lYW5cIixcbiAgICBcIm1pblwiLFxuICAgIFwibWludXRlXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIm1vbnRoXCIsXG4gICAgXCJtb3BlblwiLFxuICAgIFwibW9ydFwiLFxuICAgIFwiblwiLFxuICAgIFwibmV0cHZcIixcbiAgICBcIm5taXNzXCIsXG4gICAgXCJub3JtYWxcIixcbiAgICBcIm5vdGVcIixcbiAgICBcIm5wdlwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JkaW5hbFwiLFxuICAgIFwicGF0aG5hbWVcIixcbiAgICBcInBkZlwiLFxuICAgIFwicGVla1wiLFxuICAgIFwicGVla2NcIixcbiAgICBcInBtZlwiLFxuICAgIFwicG9pbnRcIixcbiAgICBcInBvaXNzb25cIixcbiAgICBcInBva2VcIixcbiAgICBcInByb2JiZXRhXCIsXG4gICAgXCJwcm9iYm5tbFwiLFxuICAgIFwicHJvYmNoaVwiLFxuICAgIFwicHJvYmZcIixcbiAgICBcInByb2JnYW1cIixcbiAgICBcInByb2JoeXByXCIsXG4gICAgXCJwcm9iaXRcIixcbiAgICBcInByb2JuZWdiXCIsXG4gICAgXCJwcm9ibm9ybVwiLFxuICAgIFwicHJvYnRcIixcbiAgICBcInB1dFwiLFxuICAgIFwicHV0Y1wiLFxuICAgIFwicHV0blwiLFxuICAgIFwicXRyXCIsXG4gICAgXCJxdW90ZVwiLFxuICAgIFwicmFuYmluXCIsXG4gICAgXCJyYW5jYXVcIixcbiAgICBcInJhbmV4cFwiLFxuICAgIFwicmFuZ2FtXCIsXG4gICAgXCJyYW5nZVwiLFxuICAgIFwicmFua1wiLFxuICAgIFwicmFubm9yXCIsXG4gICAgXCJyYW5wb2lcIixcbiAgICBcInJhbnRibFwiLFxuICAgIFwicmFudHJpXCIsXG4gICAgXCJyYW51bmlcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmVzb2x2ZVwiLFxuICAgIFwicmV2ZXJzZVwiLFxuICAgIFwicmV3aW5kXCIsXG4gICAgXCJyaWdodFwiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNhdmluZ1wiLFxuICAgIFwic2NhblwiLFxuICAgIFwic2RmXCIsXG4gICAgXCJzZWNvbmRcIixcbiAgICBcInNpZ25cIixcbiAgICBcInNpblwiLFxuICAgIFwic2luaFwiLFxuICAgIFwic2tld25lc3NcIixcbiAgICBcInNvdW5kZXhcIixcbiAgICBcInNwZWRpc1wiLFxuICAgIFwic3FydFwiLFxuICAgIFwic3RkXCIsXG4gICAgXCJzdGRlcnJcIixcbiAgICBcInN0Zmlwc1wiLFxuICAgIFwic3RuYW1lXCIsXG4gICAgXCJzdG5hbWVsXCIsXG4gICAgXCJzdWJzdHJcIixcbiAgICBcInN1bVwiLFxuICAgIFwic3ltZ2V0XCIsXG4gICAgXCJzeXNnZXRcIixcbiAgICBcInN5c21zZ1wiLFxuICAgIFwic3lzcHJvZFwiLFxuICAgIFwic3lzcmNcIixcbiAgICBcInN5c3RlbVwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0YW5oXCIsXG4gICAgXCJ0aW1lXCIsXG4gICAgXCJ0aW1lcGFydFwiLFxuICAgIFwidGludlwiLFxuICAgIFwidG5vbmN0XCIsXG4gICAgXCJ0b2RheVwiLFxuICAgIFwidHJhbnNsYXRlXCIsXG4gICAgXCJ0cmFud3JkXCIsXG4gICAgXCJ0cmlnYW1tYVwiLFxuICAgIFwidHJpbVwiLFxuICAgIFwidHJpbW5cIixcbiAgICBcInRydW5jXCIsXG4gICAgXCJ1bmlmb3JtXCIsXG4gICAgXCJ1cGNhc2VcIixcbiAgICBcInVzc1wiLFxuICAgIFwidmFyXCIsXG4gICAgXCJ2YXJmbXRcIixcbiAgICBcInZhcmluZm10XCIsXG4gICAgXCJ2YXJsYWJlbFwiLFxuICAgIFwidmFybGVuXCIsXG4gICAgXCJ2YXJuYW1lXCIsXG4gICAgXCJ2YXJudW1cIixcbiAgICBcInZhcnJheVwiLFxuICAgIFwidmFycmF5eFwiLFxuICAgIFwidmFydHlwZVwiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJ2Zm9ybWF0XCIsXG4gICAgXCJ2Zm9ybWF0ZFwiLFxuICAgIFwidmZvcm1hdGR4XCIsXG4gICAgXCJ2Zm9ybWF0blwiLFxuICAgIFwidmZvcm1hdG54XCIsXG4gICAgXCJ2Zm9ybWF0d1wiLFxuICAgIFwidmZvcm1hdHd4XCIsXG4gICAgXCJ2Zm9ybWF0eFwiLFxuICAgIFwidmluYXJyYXlcIixcbiAgICBcInZpbmFycmF5eFwiLFxuICAgIFwidmluZm9ybWF0XCIsXG4gICAgXCJ2aW5mb3JtYXRkXCIsXG4gICAgXCJ2aW5mb3JtYXRkeFwiLFxuICAgIFwidmluZm9ybWF0blwiLFxuICAgIFwidmluZm9ybWF0bnhcIixcbiAgICBcInZpbmZvcm1hdHdcIixcbiAgICBcInZpbmZvcm1hdHd4XCIsXG4gICAgXCJ2aW5mb3JtYXR4XCIsXG4gICAgXCJ2bGFiZWxcIixcbiAgICBcInZsYWJlbHhcIixcbiAgICBcInZsZW5ndGhcIixcbiAgICBcInZsZW5ndGh4XCIsXG4gICAgXCJ2bmFtZVwiLFxuICAgIFwidm5hbWV4XCIsXG4gICAgXCJ2dHlwZVwiLFxuICAgIFwidnR5cGV4XCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJ5ZWFyXCIsXG4gICAgXCJ5eXFcIixcbiAgICBcInppcGZpcHNcIixcbiAgICBcInppcG5hbWVcIixcbiAgICBcInppcG5hbWVsXCIsXG4gICAgXCJ6aXBzdGF0ZVwiXG4gIF07XG5cbiAgLy8gQnVpbHQtaW4gbWFjcm8gZnVuY3Rpb25zXG4gIGNvbnN0IE1BQ1JPX0ZVTkNUSU9OUyA9IFtcbiAgICBcImJxdW90ZVwiLFxuICAgIFwibnJicXVvdGVcIixcbiAgICBcImNtcHJlc1wiLFxuICAgIFwicWNtcHJlc1wiLFxuICAgIFwiY29tcHN0b3JcIixcbiAgICBcImRhdGF0eXBcIixcbiAgICBcImRpc3BsYXlcIixcbiAgICBcImRvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV2YWxcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwia2V5ZGVmXCIsXG4gICAgXCJsYWJlbFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsZXRcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJsb3djYXNlXCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWVuZFwiLFxuICAgIFwibnJicXVvdGVcIixcbiAgICBcIm5ycXVvdGVcIixcbiAgICBcIm5yc3RyXCIsXG4gICAgXCJwdXRcIixcbiAgICBcInFjbXByZXNcIixcbiAgICBcInFsZWZ0XCIsXG4gICAgXCJxbG93Y2FzZVwiLFxuICAgIFwicXNjYW5cIixcbiAgICBcInFzdWJzdHJcIixcbiAgICBcInFzeXNmdW5jXCIsXG4gICAgXCJxdHJpbVwiLFxuICAgIFwicXVvdGVcIixcbiAgICBcInF1cGNhc2VcIixcbiAgICBcInNjYW5cIixcbiAgICBcInN0clwiLFxuICAgIFwic3Vic3RyXCIsXG4gICAgXCJzdXBlcnFcIixcbiAgICBcInN5c2NhbGxcIixcbiAgICBcInN5c2V2YWxmXCIsXG4gICAgXCJzeXNleGVjXCIsXG4gICAgXCJzeXNmdW5jXCIsXG4gICAgXCJzeXNnZXRcIixcbiAgICBcInN5c2xwdXRcIixcbiAgICBcInN5c3Byb2RcIixcbiAgICBcInN5c3JjXCIsXG4gICAgXCJzeXNycHV0XCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJ0b1wiLFxuICAgIFwidHJpbVwiLFxuICAgIFwidW5xdW90ZVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcInVwY2FzZVwiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2luZG93XCJcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICBcIm51bGxcIixcbiAgICBcIm1pc3NpbmdcIixcbiAgICBcIl9hbGxfXCIsXG4gICAgXCJfYXV0b21hdGljX1wiLFxuICAgIFwiX2NoYXJhY3Rlcl9cIixcbiAgICBcIl9pbmZpbGVfXCIsXG4gICAgXCJfbl9cIixcbiAgICBcIl9uYW1lX1wiLFxuICAgIFwiX251bGxfXCIsXG4gICAgXCJfbnVtZXJpY19cIixcbiAgICBcIl91c2VyX1wiLFxuICAgIFwiX3dlYm91dF9cIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NBUycsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBrZXl3b3JkOiBTQVNfS0VZV09SRFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIC8vIERpc3RpbmN0IGhpZ2hsaWdodCBmb3IgcHJvYyA8cHJvYz4sIGRhdGEsIHJ1biwgcXVpdFxuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC9eXFxzKihwcm9jIFtcXHdcXGRfXSt8ZGF0YXxydW58cXVpdClbXFxzO10vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBNYWNybyB2YXJpYWJsZXNcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogLyZbYS16QS1aXyZdW2EtekEtWjAtOV9dKlxcLj8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgIC9eXFxzKi8sXG4gICAgICAgICAgL2RhdGFsaW5lczt8Y2FyZHM7LyxcbiAgICAgICAgICAvKD86LipcXG4pKy8sXG4gICAgICAgICAgL15cXHMqO1xccyokL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAyOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyVtZW5kfCVtYWNyby8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC9bYS16QS1aXyZdW2EtekEtWjAtOV9dKi9cbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJidWlsdF9pblwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyAvLyBCdWlsdC1pbiBtYWNybyB2YXJpYWJsZXNcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJyUnICsgcmVnZXguZWl0aGVyKC4uLk1BQ1JPX0ZVTkNUSU9OUylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFVzZXItZGVmaW5lZCBtYWNybyBmdW5jdGlvbnNcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUuZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogLyVbYS16QS1aX11bYS16QS1aXzAtOV0qL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpcyBtb3N0IGxpa2VseSBhbiBpbmNvcnJlY3QgY2xhc3NpZmljYXRpb25cbiAgICAgICAgLy8gYnVpbHRfaW4gbWF5IG5lZWQgbW9yZSBudWFuY2VcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjUyMVxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmVpdGhlciguLi5GVU5DVElPTlMpICsgJyg/PVxcXFwoKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXFxcXConLCAnOycpLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzYXM7XG4iLCAiLypcbkxhbmd1YWdlOiBTY2FsYVxuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbkF1dGhvcjogSmFuIEJlcmtlbCA8amFuLmJlcmtlbEBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEVyaWsgT3NoZWltIDxkX21AcGxhc3RpYy1pZG9sYXRyeS5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5zY2FsYS1sYW5nLm9yZ1xuKi9cblxuZnVuY3Rpb24gc2NhbGEoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICB9O1xuXG4gIC8vIHVzZWQgaW4gc3RyaW5ncyBmb3IgZXNjYXBpbmcvaW50ZXJwb2xhdGlvbi9zdWJzdGl0dXRpb25cbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXCRbQS1aYS16MC05X10rJyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcJFxcey8sXG4gICAgICAgIGVuZDogL1xcfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16XStcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdbYS16XStcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInLFxuICAgICAgICBjb250YWluczogWyBTVUJTVCBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgXVxuXG4gIH07XG5cbiAgY29uc3QgVFlQRSA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW0EtWl1bQS1aYS16MC05X10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBOQU1FID0ge1xuICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICBiZWdpbjogL1teMC05XFxuXFx0IFwiJygpLC5ge31cXFtcXF06O11bXlxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjtdK3xbXjAtOVxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjs9XS8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgQ0xBU1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBvYmplY3QgdHJhaXQgdHlwZScsXG4gICAgZW5kOiAvWzo9e1xcW1xcbjtdLyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnZXh0ZW5kcyB3aXRoJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICBlbmQ6IC9cXF0vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFsgXG4gICAgICAgICAgVFlQRSwgXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFsgXG4gICAgICAgICAgVFlQRSwgXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIE5BTUVcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTUVUSE9EID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZGVmJyxcbiAgICBlbmQ6IHJlZ2V4Lmxvb2thaGVhZCgvWzo9e1xcWyhcXG47XS8pLFxuICAgIGNvbnRhaW5zOiBbIE5BTUUgXVxuICB9O1xuXG4gIGNvbnN0IEVYVEVOU0lPTiA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL15cXHMqLywgLy8gSXMgZmlyc3QgdG9rZW4gb24gdGhlIGxpbmVcbiAgICAgICdleHRlbnNpb24nLFxuICAgICAgL1xccysoPz1bWyhdKS8sIC8vIGZvbGxvd2VkIGJ5IGF0IGxlYXN0IG9uZSBzcGFjZSBhbmQgYFtgIG9yIGAoYFxuICAgIF0sXG4gICAgYmVnaW5TY29wZTogeyAyOiBcImtleXdvcmRcIiwgfVxuICB9O1xuXG4gIGNvbnN0IEVORCA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL15cXHMqLywgLy8gSXMgZmlyc3QgdG9rZW4gb24gdGhlIGxpbmVcbiAgICAgIC9lbmQvLFxuICAgICAgL1xccysvLFxuICAgICAgLyhleHRlbnNpb25cXGIpPy8sIC8vIGBleHRlbnNpb25gIGlzIHRoZSBvbmx5IG1hcmtlciB0aGF0IGZvbGxvd3MgYW4gYGVuZGAgdGhhdCBjYW5ub3QgYmUgY2FwdHVyZWQgYnkgYW5vdGhlciBydWxlLlxuICAgIF0sXG4gICAgYmVnaW5TY29wZToge1xuICAgICAgMjogXCJrZXl3b3JkXCIsXG4gICAgICA0OiBcImtleXdvcmRcIixcbiAgICB9XG4gIH07XG5cbiAgLy8gVE9ETzogdXNlIG5lZ2F0aXZlIGxvb2stYmVoaW5kIGluIGZ1dHVyZVxuICAvLyAgICAgICAvKD88IVxcLilcXGJpbmxpbmUoPz1cXHMpL1xuICBjb25zdCBJTkxJTkVfTU9ERVMgPSBbXG4gICAgeyBtYXRjaDogL1xcLmlubGluZVxcYi8gfSxcbiAgICB7XG4gICAgICBiZWdpbjogL1xcYmlubGluZSg/PVxccykvLFxuICAgICAga2V5d29yZHM6ICdpbmxpbmUnXG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IFVTSU5HX1BBUkFNX0NMQVVTRSA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL1xcKFxccyovLCAvLyBPcGVuaW5nIGAoYCBvZiBhIHBhcmFtZXRlciBvciBhcmd1bWVudCBsaXN0XG4gICAgICAvdXNpbmcvLFxuICAgICAgL1xccysoPyFcXCkpLywgLy8gU3BhY2VzIG5vdCBmb2xsb3dlZCBieSBgKWBcbiAgICBdLFxuICAgIGJlZ2luU2NvcGU6IHsgMjogXCJrZXl3b3JkXCIsIH1cbiAgfTtcblxuICAvLyBnbG9iIGFsbCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGFzIGEgXCJzdHJpbmdcIlxuICAvLyBzb3VyY2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhL2RvY3Muc2NhbGEtbGFuZy9wdWxsLzI4NDVcbiAgY29uc3QgRElSRUNUSVZFX1ZBTFVFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXFMrLyxcbiAgfTtcblxuICAvLyBkaXJlY3RpdmVzXG4gIC8vIHNvdXJjZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vc2NhbGEvZG9jcy5zY2FsYS1sYW5nL3B1bGwvMjg0NVxuICBjb25zdCBVU0lOR19ESVJFQ1RJVkUgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgICcvLz4nLFxuICAgICAgL1xccysvLFxuICAgICAgL3VzaW5nLyxcbiAgICAgIC9cXHMrLyxcbiAgICAgIC9cXFMrL1xuICAgIF0sXG4gICAgYmVnaW5TY29wZToge1xuICAgICAgMTogXCJjb21tZW50XCIsXG4gICAgICAzOiBcImtleXdvcmRcIixcbiAgICAgIDU6IFwidHlwZVwiXG4gICAgfSxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogW1xuICAgICAgRElSRUNUSVZFX1ZBTFVFLFxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTY2FsYScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIG51bGwnLFxuICAgICAga2V5d29yZDogJ3R5cGUgeWllbGQgbGF6eSBvdmVycmlkZSBkZWYgd2l0aCB2YWwgdmFyIHNlYWxlZCBhYnN0cmFjdCBwcml2YXRlIHRyYWl0IG9iamVjdCBpZiB0aGVuIGZvclNvbWUgZm9yIHdoaWxlIGRvIHRocm93IGZpbmFsbHkgcHJvdGVjdGVkIGV4dGVuZHMgaW1wb3J0IGZpbmFsIHJldHVybiBlbHNlIGJyZWFrIG5ldyBjYXRjaCBzdXBlciBjbGFzcyBjYXNlIHBhY2thZ2UgZGVmYXVsdCB0cnkgdGhpcyBtYXRjaCBjb250aW51ZSB0aHJvd3MgaW1wbGljaXQgZXhwb3J0IGVudW0gZ2l2ZW4gdHJhbnNwYXJlbnQnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgVVNJTkdfRElSRUNUSVZFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNUUklORyxcbiAgICAgIFRZUEUsXG4gICAgICBNRVRIT0QsXG4gICAgICBDTEFTUyxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIEVYVEVOU0lPTixcbiAgICAgIEVORCxcbiAgICAgIC4uLklOTElORV9NT0RFUyxcbiAgICAgIFVTSU5HX1BBUkFNX0NMQVVTRSxcbiAgICAgIEFOTk9UQVRJT05cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NhbGE7XG4iLCAiLypcbkxhbmd1YWdlOiBTY2hlbWVcbkRlc2NyaXB0aW9uOiBTY2hlbWUgaXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbiB0aGUgTGlzcCBmYW1pbHkuXG4gICAgICAgICAgICAgKGtleXdvcmRzIGJhc2VkIG9uIGh0dHA6Ly9jb21tdW5pdHkuc2NoZW1ld2lraS5vcmcvP3NjaGVtZS1rZXl3b3JkcylcbkF1dGhvcjogSlAgVmVya2FtcCA8bWVAanZlcmthbXAuY29tPlxuQ29udHJpYnV0b3JzOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbk9yaWdpbjogY2xvanVyZS5qc1xuV2Vic2l0ZTogaHR0cDovL2NvbW11bml0eS5zY2hlbWV3aWtpLm9yZy8/d2hhdC1pcy1zY2hlbWVcbkNhdGVnb3J5OiBsaXNwXG4qL1xuXG5mdW5jdGlvbiBzY2hlbWUoaGxqcykge1xuICBjb25zdCBTQ0hFTUVfSURFTlRfUkUgPSAnW15cXFxcKFxcXFwpXFxcXFtcXFxcXVxcXFx7XFxcXH1cIixcXCdgOyN8XFxcXFxcXFxcXFxcc10rJztcbiAgY29uc3QgU0NIRU1FX1NJTVBMRV9OVU1CRVJfUkUgPSAnKC18XFxcXCspP1xcXFxkKyhbLi9dXFxcXGQrKT8nO1xuICBjb25zdCBTQ0hFTUVfQ09NUExFWF9OVU1CRVJfUkUgPSBTQ0hFTUVfU0lNUExFX05VTUJFUl9SRSArICdbK1xcXFwtXScgKyBTQ0hFTUVfU0lNUExFX05VTUJFUl9SRSArICdpJztcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAgJHBhdHRlcm46IFNDSEVNRV9JREVOVF9SRSxcbiAgICBidWlsdF9pbjpcbiAgICAgICdjYXNlLWxhbWJkYSBjYWxsL2NjIGNsYXNzIGRlZmluZS1jbGFzcyBleGl0LWhhbmRsZXIgZmllbGQgaW1wb3J0ICdcbiAgICAgICsgJ2luaGVyaXQgaW5pdC1maWVsZCBpbnRlcmZhY2UgbGV0Ki12YWx1ZXMgbGV0LXZhbHVlcyBsZXQvZWMgbWl4aW4gJ1xuICAgICAgKyAnb3B0LWxhbWJkYSBvdmVycmlkZSBwcm90ZWN0IHByb3ZpZGUgcHVibGljIHJlbmFtZSByZXF1aXJlICdcbiAgICAgICsgJ3JlcXVpcmUtZm9yLXN5bnRheCBzeW50YXggc3ludGF4LWNhc2Ugc3ludGF4LWVycm9yIHVuaXQvc2lnIHVubGVzcyAnXG4gICAgICArICd3aGVuIHdpdGgtc3ludGF4IGFuZCBiZWdpbiBjYWxsLXdpdGgtY3VycmVudC1jb250aW51YXRpb24gJ1xuICAgICAgKyAnY2FsbC13aXRoLWlucHV0LWZpbGUgY2FsbC13aXRoLW91dHB1dC1maWxlIGNhc2UgY29uZCBkZWZpbmUgJ1xuICAgICAgKyAnZGVmaW5lLXN5bnRheCBkZWxheSBkbyBkeW5hbWljLXdpbmQgZWxzZSBmb3ItZWFjaCBpZiBsYW1iZGEgbGV0IGxldCogJ1xuICAgICAgKyAnbGV0LXN5bnRheCBsZXRyZWMgbGV0cmVjLXN5bnRheCBtYXAgb3Igc3ludGF4LXJ1bGVzIFxcJyAqICsgLCAsQCAtIC4uLiAvICdcbiAgICAgICsgJzsgPCA8PSA9ID0+ID4gPj0gYCBhYnMgYWNvcyBhbmdsZSBhcHBlbmQgYXBwbHkgYXNpbiBhc3NvYyBhc3NxIGFzc3YgYXRhbiAnXG4gICAgICArICdib29sZWFuPyBjYWFyIGNhZHIgY2FsbC13aXRoLWlucHV0LWZpbGUgY2FsbC13aXRoLW91dHB1dC1maWxlICdcbiAgICAgICsgJ2NhbGwtd2l0aC12YWx1ZXMgY2FyIGNkZGRhciBjZGRkZHIgY2RyIGNlaWxpbmcgY2hhci0+aW50ZWdlciAnXG4gICAgICArICdjaGFyLWFscGhhYmV0aWM/IGNoYXItY2k8PT8gY2hhci1jaTw/IGNoYXItY2k9PyBjaGFyLWNpPj0/IGNoYXItY2k+PyAnXG4gICAgICArICdjaGFyLWRvd25jYXNlIGNoYXItbG93ZXItY2FzZT8gY2hhci1udW1lcmljPyBjaGFyLXJlYWR5PyBjaGFyLXVwY2FzZSAnXG4gICAgICArICdjaGFyLXVwcGVyLWNhc2U/IGNoYXItd2hpdGVzcGFjZT8gY2hhcjw9PyBjaGFyPD8gY2hhcj0/IGNoYXI+PT8gY2hhcj4/ICdcbiAgICAgICsgJ2NoYXI/IGNsb3NlLWlucHV0LXBvcnQgY2xvc2Utb3V0cHV0LXBvcnQgY29tcGxleD8gY29ucyBjb3MgJ1xuICAgICAgKyAnY3VycmVudC1pbnB1dC1wb3J0IGN1cnJlbnQtb3V0cHV0LXBvcnQgZGVub21pbmF0b3IgZGlzcGxheSBlb2Ytb2JqZWN0PyAnXG4gICAgICArICdlcT8gZXF1YWw/IGVxdj8gZXZhbCBldmVuPyBleGFjdC0+aW5leGFjdCBleGFjdD8gZXhwIGV4cHQgZmxvb3IgJ1xuICAgICAgKyAnZm9yY2UgZ2NkIGltYWctcGFydCBpbmV4YWN0LT5leGFjdCBpbmV4YWN0PyBpbnB1dC1wb3J0PyBpbnRlZ2VyLT5jaGFyICdcbiAgICAgICsgJ2ludGVnZXI/IGludGVyYWN0aW9uLWVudmlyb25tZW50IGxjbSBsZW5ndGggbGlzdCBsaXN0LT5zdHJpbmcgJ1xuICAgICAgKyAnbGlzdC0+dmVjdG9yIGxpc3QtcmVmIGxpc3QtdGFpbCBsaXN0PyBsb2FkIGxvZyBtYWduaXR1ZGUgbWFrZS1wb2xhciAnXG4gICAgICArICdtYWtlLXJlY3Rhbmd1bGFyIG1ha2Utc3RyaW5nIG1ha2UtdmVjdG9yIG1heCBtZW1iZXIgbWVtcSBtZW12IG1pbiAnXG4gICAgICArICdtb2R1bG8gbmVnYXRpdmU/IG5ld2xpbmUgbm90IG51bGwtZW52aXJvbm1lbnQgbnVsbD8gbnVtYmVyLT5zdHJpbmcgJ1xuICAgICAgKyAnbnVtYmVyPyBudW1lcmF0b3Igb2RkPyBvcGVuLWlucHV0LWZpbGUgb3Blbi1vdXRwdXQtZmlsZSBvdXRwdXQtcG9ydD8gJ1xuICAgICAgKyAncGFpcj8gcGVlay1jaGFyIHBvcnQ/IHBvc2l0aXZlPyBwcm9jZWR1cmU/IHF1YXNpcXVvdGUgcXVvdGUgcXVvdGllbnQgJ1xuICAgICAgKyAncmF0aW9uYWw/IHJhdGlvbmFsaXplIHJlYWQgcmVhZC1jaGFyIHJlYWwtcGFydCByZWFsPyByZW1haW5kZXIgcmV2ZXJzZSAnXG4gICAgICArICdyb3VuZCBzY2hlbWUtcmVwb3J0LWVudmlyb25tZW50IHNldCEgc2V0LWNhciEgc2V0LWNkciEgc2luIHNxcnQgc3RyaW5nICdcbiAgICAgICsgJ3N0cmluZy0+bGlzdCBzdHJpbmctPm51bWJlciBzdHJpbmctPnN5bWJvbCBzdHJpbmctYXBwZW5kIHN0cmluZy1jaTw9PyAnXG4gICAgICArICdzdHJpbmctY2k8PyBzdHJpbmctY2k9PyBzdHJpbmctY2k+PT8gc3RyaW5nLWNpPj8gc3RyaW5nLWNvcHkgJ1xuICAgICAgKyAnc3RyaW5nLWZpbGwhIHN0cmluZy1sZW5ndGggc3RyaW5nLXJlZiBzdHJpbmctc2V0ISBzdHJpbmc8PT8gc3RyaW5nPD8gJ1xuICAgICAgKyAnc3RyaW5nPT8gc3RyaW5nPj0/IHN0cmluZz4/IHN0cmluZz8gc3Vic3RyaW5nIHN5bWJvbC0+c3RyaW5nIHN5bWJvbD8gJ1xuICAgICAgKyAndGFuIHRyYW5zY3JpcHQtb2ZmIHRyYW5zY3JpcHQtb24gdHJ1bmNhdGUgdmFsdWVzIHZlY3RvciAnXG4gICAgICArICd2ZWN0b3ItPmxpc3QgdmVjdG9yLWZpbGwhIHZlY3Rvci1sZW5ndGggdmVjdG9yLXJlZiB2ZWN0b3Itc2V0ISAnXG4gICAgICArICd3aXRoLWlucHV0LWZyb20tZmlsZSB3aXRoLW91dHB1dC10by1maWxlIHdyaXRlIHdyaXRlLWNoYXIgemVybz8nXG4gIH07XG5cbiAgY29uc3QgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogJygjdHwjZnwjXFxcXFxcXFwnICsgU0NIRU1FX0lERU5UX1JFICsgJ3wjXFxcXFxcXFwuKSdcbiAgfTtcblxuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogU0NIRU1FX1NJTVBMRV9OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFNDSEVNRV9DT01QTEVYX05VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJyNiWzAtMV0rKC9bMC0xXSspPycgfSxcbiAgICAgIHsgYmVnaW46ICcjb1swLTddKygvWzAtN10rKT8nIH0sXG4gICAgICB7IGJlZ2luOiAnI3hbMC05YS1mXSsoL1swLTlhLWZdKyk/JyB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IGhsanMuUVVPVEVfU1RSSU5HX01PREU7XG5cbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnOycsXG4gICAgICAnJCcsXG4gICAgICB7IHJlbGV2YW5jZTogMCB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoJyNcXFxcfCcsICdcXFxcfCMnKVxuICBdO1xuXG4gIGNvbnN0IElERU5UID0ge1xuICAgIGJlZ2luOiBTQ0hFTUVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUVVPVEVEX0lERU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdcXCcnICsgU0NIRU1FX0lERU5UX1JFXG4gIH07XG5cbiAgY29uc3QgQk9EWSA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBRVU9URURfTElTVCA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogLycvIH0sXG4gICAgICB7IGJlZ2luOiAnYCcgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgTElURVJBTCxcbiAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgTlVNQkVSLFxuICAgICAgICAgIElERU5ULFxuICAgICAgICAgIFFVT1RFRF9JREVOVFxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5BTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiBTQ0hFTUVfSURFTlRfUkUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgTEFNQkRBID0ge1xuICAgIGJlZ2luOiAvbGFtYmRhLyxcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAgTkFNRSxcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcWy8sXG4gICAgICAgICAgICBlbmQ6IC9cXF0vXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBjb250YWluczogWyBJREVOVCBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IExJU1QgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJ1xuICAgICAgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIExBTUJEQSxcbiAgICAgIE5BTUUsXG4gICAgICBCT0RZXG4gICAgXVxuICB9O1xuXG4gIEJPRFkuY29udGFpbnMgPSBbXG4gICAgTElURVJBTCxcbiAgICBOVU1CRVIsXG4gICAgU1RSSU5HLFxuICAgIElERU5ULFxuICAgIFFVT1RFRF9JREVOVCxcbiAgICBRVU9URURfTElTVCxcbiAgICBMSVNUXG4gIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NjaGVtZScsXG4gICAgYWxpYXNlczogWydzY20nXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5TSEVCQU5HKCksXG4gICAgICBOVU1CRVIsXG4gICAgICBTVFJJTkcsXG4gICAgICBRVU9URURfSURFTlQsXG4gICAgICBRVU9URURfTElTVCxcbiAgICAgIExJU1RcbiAgICBdLmNvbmNhdChDT01NRU5UX01PREVTKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVtZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFNjaWxhYlxuQXV0aG9yOiBTeWx2ZXN0cmUgTGVkcnUgPHN5bHZlc3RyZS5sZWRydUBzY2lsYWItZW50ZXJwcmlzZXMuY29tPlxuT3JpZ2luOiBtYXRsYWIuanNcbkRlc2NyaXB0aW9uOiBTY2lsYWIgaXMgYSBwb3J0IGZyb20gTWF0bGFiXG5XZWJzaXRlOiBodHRwczovL3d3dy5zY2lsYWIub3JnXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuZnVuY3Rpb24gc2NpbGFiKGhsanMpIHtcbiAgY29uc3QgQ09NTU9OX0NPTlRBSU5TID0gW1xuICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICdcXCd8XFxcIicsXG4gICAgICBlbmQ6ICdcXCd8XFxcIicsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIHsgYmVnaW46ICdcXCdcXCcnIH1cbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU2NpbGFiJyxcbiAgICBhbGlhc2VzOiBbICdzY2knIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvJT9cXHcrLyxcbiAgICAgIGtleXdvcmQ6ICdhYm9ydCBicmVhayBjYXNlIGNsZWFyIGNhdGNoIGNvbnRpbnVlIGRvIGVsc2VpZiBlbHNlIGVuZGZ1bmN0aW9uIGVuZCBmb3IgZnVuY3Rpb24gJ1xuICAgICAgICArICdnbG9iYWwgaWYgcGF1c2UgcmV0dXJuIHJlc3VtZSBzZWxlY3QgdHJ5IHRoZW4gd2hpbGUnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJyVmICVGICV0ICVUICVwaSAlZXBzICVpbmYgJW5hbiAlZSAlaSAleiAlcycsXG4gICAgICBidWlsdF9pbjogLy8gU2NpbGFiIGhhcyBtb3JlIHRoYW4gMjAwMCBmdW5jdGlvbnMuIEp1c3QgbGlzdCB0aGUgbW9zdCBjb21tb25zXG4gICAgICAgJ2FicyBhbmQgYWNvcyBhc2luIGF0YW4gY2VpbCBjZCBjaGRpciBjbGVhcmdsb2JhbCBjb3NoIGNvcyBjdW1wcm9kIGRlZmYgZGlzcCBlcnJvciAnXG4gICAgICAgKyAnZXhlYyBleGVjc3RyIGV4aXN0cyBleHAgZXllIGdldHRleHQgZmxvb3IgZnByaW50ZiBmcmVhZCBmc29sdmUgaW1hZyBpc2RlZiBpc2VtcHR5ICdcbiAgICAgICArICdpc2luZmlzbmFuIGlzdmVjdG9yIGxhc3RlcnJvciBsZW5ndGggbG9hZCBsaW5zcGFjZSBsaXN0IGxpc3RmaWxlcyBsb2cxMCBsb2cyIGxvZyAnXG4gICAgICAgKyAnbWF4IG1pbiBtc3ByaW50ZiBtY2xvc2UgbW9wZW4gb25lcyBvciBwYXRoY29udmVydCBwb2x5IHByaW50ZiBwcm9kIHB3ZCByYW5kIHJlYWwgJ1xuICAgICAgICsgJ3JvdW5kIHNpbmggc2luIHNpemUgZ3NvcnQgc3ByaW50ZiBzcXJ0IHN0cmNhdCBzdHJjbXBzIHRyaW5nIHN1bSBzeXN0ZW0gdGFuaCB0YW4gJ1xuICAgICAgICsgJ3R5cGUgdHlwZW5hbWUgd2FybmluZyB6ZXJvcyBtYXRyaXgnXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnKFwifCN8L1xcXFwqfFxcXFxzKy9cXFxcdyspJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIHNlZW1zIHRvIGJlIGEgZ3VhcmQgYWdhaW5zdCBbaWRlbnRdJyBvciBbaWRlbnRdLlxuICAgICAgLy8gcGVyaGFwcyB0byBwcmV2ZW50IGF0dHJpYnV0ZXMgZnJvbSBmbGFnZ2luZyBhcyBrZXl3b3Jkcz9cbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16QS1aX11bYS16QS1aXzAtOV0qW1xcXFwuXFwnXSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXFsnLFxuICAgICAgICBlbmQ6ICdcXFxcXVtcXFxcLlxcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogQ09NTU9OX0NPTlRBSU5TXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCcvLycsICckJylcbiAgICBdLmNvbmNhdChDT01NT05fQ09OVEFJTlMpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NpbGFiO1xuIiwgImNvbnN0IE1PREVTID0gKGhsanMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBJTVBPUlRBTlQ6IHtcbiAgICAgIHNjb3BlOiAnbWV0YScsXG4gICAgICBiZWdpbjogJyFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICBCTE9DS19DT01NRU5UOiBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEhFWENPTE9SOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogLyMoKFswLTlhLWZBLUZdezMsNH0pfCgoWzAtOWEtZkEtRl17Mn0pezMsNH0pKVxcYi9cbiAgICB9LFxuICAgIEZVTkNUSU9OX0RJU1BBVENIOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYnVpbHRfaW5cIixcbiAgICAgIGJlZ2luOiAvW1xcdy1dKyg/PVxcKCkvXG4gICAgfSxcbiAgICBBVFRSSUJVVEVfU0VMRUNUT1JfTU9ERToge1xuICAgICAgc2NvcGU6ICdzZWxlY3Rvci1hdHRyJyxcbiAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgIGVuZDogL1xcXS8sXG4gICAgICBpbGxlZ2FsOiAnJCcsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgIF1cbiAgICB9LFxuICAgIENTU19OVU1CRVJfTU9ERToge1xuICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgYmVnaW46IGhsanMuTlVNQkVSX1JFICsgJygnICtcbiAgICAgICAgJyV8ZW18ZXh8Y2h8cmVtJyArXG4gICAgICAgICd8dnd8dmh8dm1pbnx2bWF4JyArXG4gICAgICAgICd8Y218bW18aW58cHR8cGN8cHgnICtcbiAgICAgICAgJ3xkZWd8Z3JhZHxyYWR8dHVybicgK1xuICAgICAgICAnfHN8bXMnICtcbiAgICAgICAgJ3xIenxrSHonICtcbiAgICAgICAgJ3xkcGl8ZHBjbXxkcHB4JyArXG4gICAgICAgICcpPycsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIENTU19WQVJJQUJMRToge1xuICAgICAgY2xhc3NOYW1lOiBcImF0dHJcIixcbiAgICAgIGJlZ2luOiAvLS1bQS1aYS16X11bQS1aYS16MC05Xy1dKi9cbiAgICB9XG4gIH07XG59O1xuXG5jb25zdCBIVE1MX1RBR1MgPSBbXG4gICdhJyxcbiAgJ2FiYnInLFxuICAnYWRkcmVzcycsXG4gICdhcnRpY2xlJyxcbiAgJ2FzaWRlJyxcbiAgJ2F1ZGlvJyxcbiAgJ2InLFxuICAnYmxvY2txdW90ZScsXG4gICdib2R5JyxcbiAgJ2J1dHRvbicsXG4gICdjYW52YXMnLFxuICAnY2FwdGlvbicsXG4gICdjaXRlJyxcbiAgJ2NvZGUnLFxuICAnZGQnLFxuICAnZGVsJyxcbiAgJ2RldGFpbHMnLFxuICAnZGZuJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdlbScsXG4gICdmaWVsZHNldCcsXG4gICdmaWdjYXB0aW9uJyxcbiAgJ2ZpZ3VyZScsXG4gICdmb290ZXInLFxuICAnZm9ybScsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkZXInLFxuICAnaGdyb3VwJyxcbiAgJ2h0bWwnLFxuICAnaScsXG4gICdpZnJhbWUnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2lucycsXG4gICdrYmQnLFxuICAnbGFiZWwnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ21haW4nLFxuICAnbWFyaycsXG4gICdtZW51JyxcbiAgJ25hdicsXG4gICdvYmplY3QnLFxuICAnb2wnLFxuICAnb3B0Z3JvdXAnLFxuICAnb3B0aW9uJyxcbiAgJ3AnLFxuICAncGljdHVyZScsXG4gICdxJyxcbiAgJ3F1b3RlJyxcbiAgJ3NhbXAnLFxuICAnc2VjdGlvbicsXG4gICdzZWxlY3QnLFxuICAnc291cmNlJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N1bW1hcnknLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3RleHRhcmVhJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpbWUnLFxuICAndHInLFxuICAndWwnLFxuICAndmFyJyxcbiAgJ3ZpZGVvJ1xuXTtcblxuY29uc3QgU1ZHX1RBR1MgPSBbXG4gICdkZWZzJyxcbiAgJ2cnLFxuICAnbWFya2VyJyxcbiAgJ21hc2snLFxuICAncGF0dGVybicsXG4gICdzdmcnLFxuICAnc3dpdGNoJyxcbiAgJ3N5bWJvbCcsXG4gICdmZUJsZW5kJyxcbiAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICdmZUNvbXBvc2l0ZScsXG4gICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgJ2ZlRmxvb2QnLFxuICAnZmVHYXVzc2lhbkJsdXInLFxuICAnZmVJbWFnZScsXG4gICdmZU1lcmdlJyxcbiAgJ2ZlTW9ycGhvbG9neScsXG4gICdmZU9mZnNldCcsXG4gICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAnZmVUaWxlJyxcbiAgJ2ZlVHVyYnVsZW5jZScsXG4gICdsaW5lYXJHcmFkaWVudCcsXG4gICdyYWRpYWxHcmFkaWVudCcsXG4gICdzdG9wJyxcbiAgJ2NpcmNsZScsXG4gICdlbGxpcHNlJyxcbiAgJ2ltYWdlJyxcbiAgJ2xpbmUnLFxuICAncGF0aCcsXG4gICdwb2x5Z29uJyxcbiAgJ3BvbHlsaW5lJyxcbiAgJ3JlY3QnLFxuICAndGV4dCcsXG4gICd1c2UnLFxuICAndGV4dFBhdGgnLFxuICAndHNwYW4nLFxuICAnZm9yZWlnbk9iamVjdCcsXG4gICdjbGlwUGF0aCdcbl07XG5cbmNvbnN0IFRBR1MgPSBbXG4gIC4uLkhUTUxfVEFHUyxcbiAgLi4uU1ZHX1RBR1MsXG5dO1xuXG4vLyBTb3J0aW5nLCB0aGVuIHJldmVyc2luZyBtYWtlcyBzdXJlIGxvbmdlciBhdHRyaWJ1dGVzL2VsZW1lbnRzIGxpa2Vcbi8vIGBmb250LXdlaWdodGAgYXJlIG1hdGNoZWQgZnVsbHkgaW5zdGVhZCBvZiBnZXR0aW5nIGZhbHNlIHBvc2l0aXZlcyBvbiBzYXkgYGZvbnRgXG5cbmNvbnN0IE1FRElBX0ZFQVRVUkVTID0gW1xuICAnYW55LWhvdmVyJyxcbiAgJ2FueS1wb2ludGVyJyxcbiAgJ2FzcGVjdC1yYXRpbycsXG4gICdjb2xvcicsXG4gICdjb2xvci1nYW11dCcsXG4gICdjb2xvci1pbmRleCcsXG4gICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgJ2RldmljZS1oZWlnaHQnLFxuICAnZGV2aWNlLXdpZHRoJyxcbiAgJ2Rpc3BsYXktbW9kZScsXG4gICdmb3JjZWQtY29sb3JzJyxcbiAgJ2dyaWQnLFxuICAnaGVpZ2h0JyxcbiAgJ2hvdmVyJyxcbiAgJ2ludmVydGVkLWNvbG9ycycsXG4gICdtb25vY2hyb21lJyxcbiAgJ29yaWVudGF0aW9uJyxcbiAgJ292ZXJmbG93LWJsb2NrJyxcbiAgJ292ZXJmbG93LWlubGluZScsXG4gICdwb2ludGVyJyxcbiAgJ3ByZWZlcnMtY29sb3Itc2NoZW1lJyxcbiAgJ3ByZWZlcnMtY29udHJhc3QnLFxuICAncHJlZmVycy1yZWR1Y2VkLW1vdGlvbicsXG4gICdwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5JyxcbiAgJ3Jlc29sdXRpb24nLFxuICAnc2NhbicsXG4gICdzY3JpcHRpbmcnLFxuICAndXBkYXRlJyxcbiAgJ3dpZHRoJyxcbiAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbj9cbiAgJ21pbi13aWR0aCcsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWhlaWdodCcsXG4gICdtYXgtaGVpZ2h0J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWNsYXNzZXNcbmNvbnN0IFBTRVVET19DTEFTU0VTID0gW1xuICAnYWN0aXZlJyxcbiAgJ2FueS1saW5rJyxcbiAgJ2JsYW5rJyxcbiAgJ2NoZWNrZWQnLFxuICAnY3VycmVudCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmluZWQnLFxuICAnZGlyJywgLy8gZGlyKClcbiAgJ2Rpc2FibGVkJyxcbiAgJ2Ryb3AnLFxuICAnZW1wdHknLFxuICAnZW5hYmxlZCcsXG4gICdmaXJzdCcsXG4gICdmaXJzdC1jaGlsZCcsXG4gICdmaXJzdC1vZi10eXBlJyxcbiAgJ2Z1bGxzY3JlZW4nLFxuICAnZnV0dXJlJyxcbiAgJ2ZvY3VzJyxcbiAgJ2ZvY3VzLXZpc2libGUnLFxuICAnZm9jdXMtd2l0aGluJyxcbiAgJ2hhcycsIC8vIGhhcygpXG4gICdob3N0JywgLy8gaG9zdCBvciBob3N0KClcbiAgJ2hvc3QtY29udGV4dCcsIC8vIGhvc3QtY29udGV4dCgpXG4gICdob3ZlcicsXG4gICdpbmRldGVybWluYXRlJyxcbiAgJ2luLXJhbmdlJyxcbiAgJ2ludmFsaWQnLFxuICAnaXMnLCAvLyBpcygpXG4gICdsYW5nJywgLy8gbGFuZygpXG4gICdsYXN0LWNoaWxkJyxcbiAgJ2xhc3Qtb2YtdHlwZScsXG4gICdsZWZ0JyxcbiAgJ2xpbmsnLFxuICAnbG9jYWwtbGluaycsXG4gICdub3QnLCAvLyBub3QoKVxuICAnbnRoLWNoaWxkJywgLy8gbnRoLWNoaWxkKClcbiAgJ250aC1jb2wnLCAvLyBudGgtY29sKClcbiAgJ250aC1sYXN0LWNoaWxkJywgLy8gbnRoLWxhc3QtY2hpbGQoKVxuICAnbnRoLWxhc3QtY29sJywgLy8gbnRoLWxhc3QtY29sKClcbiAgJ250aC1sYXN0LW9mLXR5cGUnLCAvL250aC1sYXN0LW9mLXR5cGUoKVxuICAnbnRoLW9mLXR5cGUnLCAvL250aC1vZi10eXBlKClcbiAgJ29ubHktY2hpbGQnLFxuICAnb25seS1vZi10eXBlJyxcbiAgJ29wdGlvbmFsJyxcbiAgJ291dC1vZi1yYW5nZScsXG4gICdwYXN0JyxcbiAgJ3BsYWNlaG9sZGVyLXNob3duJyxcbiAgJ3JlYWQtb25seScsXG4gICdyZWFkLXdyaXRlJyxcbiAgJ3JlcXVpcmVkJyxcbiAgJ3JpZ2h0JyxcbiAgJ3Jvb3QnLFxuICAnc2NvcGUnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldC13aXRoaW4nLFxuICAndXNlci1pbnZhbGlkJyxcbiAgJ3ZhbGlkJyxcbiAgJ3Zpc2l0ZWQnLFxuICAnd2hlcmUnIC8vIHdoZXJlKClcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL1BzZXVkby1lbGVtZW50c1xuY29uc3QgUFNFVURPX0VMRU1FTlRTID0gW1xuICAnYWZ0ZXInLFxuICAnYmFja2Ryb3AnLFxuICAnYmVmb3JlJyxcbiAgJ2N1ZScsXG4gICdjdWUtcmVnaW9uJyxcbiAgJ2ZpcnN0LWxldHRlcicsXG4gICdmaXJzdC1saW5lJyxcbiAgJ2dyYW1tYXItZXJyb3InLFxuICAnbWFya2VyJyxcbiAgJ3BhcnQnLFxuICAncGxhY2Vob2xkZXInLFxuICAnc2VsZWN0aW9uJyxcbiAgJ3Nsb3R0ZWQnLFxuICAnc3BlbGxpbmctZXJyb3InXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICdhY2NlbnQtY29sb3InLFxuICAnYWxpZ24tY29udGVudCcsXG4gICdhbGlnbi1pdGVtcycsXG4gICdhbGlnbi1zZWxmJyxcbiAgJ2FsaWdubWVudC1iYXNlbGluZScsXG4gICdhbGwnLFxuICAnYW5pbWF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kZWxheScsXG4gICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbicsXG4gICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAnYW5pbWF0aW9uLW5hbWUnLFxuICAnYW5pbWF0aW9uLXBsYXktc3RhdGUnLFxuICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICdhcHBlYXJhbmNlJyxcbiAgJ2JhY2tmYWNlLXZpc2liaWxpdHknLFxuICAnYmFja2dyb3VuZCcsXG4gICdiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnLFxuICAnYmFja2dyb3VuZC1ibGVuZC1tb2RlJyxcbiAgJ2JhY2tncm91bmQtY2xpcCcsXG4gICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgJ2JhY2tncm91bmQtaW1hZ2UnLFxuICAnYmFja2dyb3VuZC1vcmlnaW4nLFxuICAnYmFja2dyb3VuZC1wb3NpdGlvbicsXG4gICdiYWNrZ3JvdW5kLXJlcGVhdCcsXG4gICdiYWNrZ3JvdW5kLXNpemUnLFxuICAnYmFzZWxpbmUtc2hpZnQnLFxuICAnYmxvY2stc2l6ZScsXG4gICdib3JkZXInLFxuICAnYm9yZGVyLWJsb2NrJyxcbiAgJ2JvcmRlci1ibG9jay1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1zdHlsZScsXG4gICdib3JkZXItYmxvY2stZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXdpZHRoJyxcbiAgJ2JvcmRlci1ib3R0b20nLFxuICAnYm9yZGVyLWJvdHRvbS1jb2xvcicsXG4gICdib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tc3R5bGUnLFxuICAnYm9yZGVyLWJvdHRvbS13aWR0aCcsXG4gICdib3JkZXItY29sbGFwc2UnLFxuICAnYm9yZGVyLWNvbG9yJyxcbiAgJ2JvcmRlci1pbWFnZScsXG4gICdib3JkZXItaW1hZ2Utb3V0c2V0JyxcbiAgJ2JvcmRlci1pbWFnZS1yZXBlYXQnLFxuICAnYm9yZGVyLWltYWdlLXNsaWNlJyxcbiAgJ2JvcmRlci1pbWFnZS1zb3VyY2UnLFxuICAnYm9yZGVyLWltYWdlLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUnLFxuICAnYm9yZGVyLWlubGluZS1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZCcsXG4gICdib3JkZXItaW5saW5lLWVuZC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLWVuZC13aWR0aCcsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0JyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS13aWR0aCcsXG4gICdib3JkZXItbGVmdCcsXG4gICdib3JkZXItbGVmdC1jb2xvcicsXG4gICdib3JkZXItbGVmdC1zdHlsZScsXG4gICdib3JkZXItbGVmdC13aWR0aCcsXG4gICdib3JkZXItcmFkaXVzJyxcbiAgJ2JvcmRlci1yaWdodCcsXG4gICdib3JkZXItZW5kLWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgJ2JvcmRlci1yaWdodC1zdHlsZScsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXNwYWNpbmcnLFxuICAnYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItc3R5bGUnLFxuICAnYm9yZGVyLXRvcCcsXG4gICdib3JkZXItdG9wLWNvbG9yJyxcbiAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1zdHlsZScsXG4gICdib3JkZXItdG9wLXdpZHRoJyxcbiAgJ2JvcmRlci13aWR0aCcsXG4gICdib3R0b20nLFxuICAnYm94LWRlY29yYXRpb24tYnJlYWsnLFxuICAnYm94LXNoYWRvdycsXG4gICdib3gtc2l6aW5nJyxcbiAgJ2JyZWFrLWFmdGVyJyxcbiAgJ2JyZWFrLWJlZm9yZScsXG4gICdicmVhay1pbnNpZGUnLFxuICAnY3gnLFxuICAnY3knLFxuICAnY2FwdGlvbi1zaWRlJyxcbiAgJ2NhcmV0LWNvbG9yJyxcbiAgJ2NsZWFyJyxcbiAgJ2NsaXAnLFxuICAnY2xpcC1wYXRoJyxcbiAgJ2NsaXAtcnVsZScsXG4gICdjb2xvcicsXG4gICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICdjb2xvci1wcm9maWxlJyxcbiAgJ2NvbG9yLXJlbmRlcmluZycsXG4gICdjb2xvci1zY2hlbWUnLFxuICAnY29sdW1uLWNvdW50JyxcbiAgJ2NvbHVtbi1maWxsJyxcbiAgJ2NvbHVtbi1nYXAnLFxuICAnY29sdW1uLXJ1bGUnLFxuICAnY29sdW1uLXJ1bGUtY29sb3InLFxuICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAnY29sdW1uLXJ1bGUtd2lkdGgnLFxuICAnY29sdW1uLXNwYW4nLFxuICAnY29sdW1uLXdpZHRoJyxcbiAgJ2NvbHVtbnMnLFxuICAnY29udGFpbicsXG4gICdjb250ZW50JyxcbiAgJ2NvbnRlbnQtdmlzaWJpbGl0eScsXG4gICdjb3VudGVyLWluY3JlbWVudCcsXG4gICdjb3VudGVyLXJlc2V0JyxcbiAgJ2N1ZScsXG4gICdjdWUtYWZ0ZXInLFxuICAnY3VlLWJlZm9yZScsXG4gICdjdXJzb3InLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2Rpc3BsYXknLFxuICAnZG9taW5hbnQtYmFzZWxpbmUnLFxuICAnZW1wdHktY2VsbHMnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAnZmlsbCcsXG4gICdmaWxsLW9wYWNpdHknLFxuICAnZmlsbC1ydWxlJyxcbiAgJ2ZpbHRlcicsXG4gICdmbGV4JyxcbiAgJ2ZsZXgtYmFzaXMnLFxuICAnZmxleC1kaXJlY3Rpb24nLFxuICAnZmxleC1mbG93JyxcbiAgJ2ZsZXgtZ3JvdycsXG4gICdmbGV4LXNocmluaycsXG4gICdmbGV4LXdyYXAnLFxuICAnZmxvYXQnLFxuICAnZmxvdycsXG4gICdmbG9vZC1jb2xvcicsXG4gICdmbG9vZC1vcGFjaXR5JyxcbiAgJ2ZvbnQnLFxuICAnZm9udC1kaXNwbGF5JyxcbiAgJ2ZvbnQtZmFtaWx5JyxcbiAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICdmb250LWtlcm5pbmcnLFxuICAnZm9udC1sYW5ndWFnZS1vdmVycmlkZScsXG4gICdmb250LXNpemUnLFxuICAnZm9udC1zaXplLWFkanVzdCcsXG4gICdmb250LXNtb290aGluZycsXG4gICdmb250LXN0cmV0Y2gnLFxuICAnZm9udC1zdHlsZScsXG4gICdmb250LXN5bnRoZXNpcycsXG4gICdmb250LXZhcmlhbnQnLFxuICAnZm9udC12YXJpYW50LWNhcHMnLFxuICAnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nLFxuICAnZm9udC12YXJpYW50LWxpZ2F0dXJlcycsXG4gICdmb250LXZhcmlhbnQtbnVtZXJpYycsXG4gICdmb250LXZhcmlhbnQtcG9zaXRpb24nLFxuICAnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnLFxuICAnZm9udC13ZWlnaHQnLFxuICAnZ2FwJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLFxuICAnZ3JpZCcsXG4gICdncmlkLWFyZWEnLFxuICAnZ3JpZC1hdXRvLWNvbHVtbnMnLFxuICAnZ3JpZC1hdXRvLWZsb3cnLFxuICAnZ3JpZC1hdXRvLXJvd3MnLFxuICAnZ3JpZC1jb2x1bW4nLFxuICAnZ3JpZC1jb2x1bW4tZW5kJyxcbiAgJ2dyaWQtY29sdW1uLXN0YXJ0JyxcbiAgJ2dyaWQtZ2FwJyxcbiAgJ2dyaWQtcm93JyxcbiAgJ2dyaWQtcm93LWVuZCcsXG4gICdncmlkLXJvdy1zdGFydCcsXG4gICdncmlkLXRlbXBsYXRlJyxcbiAgJ2dyaWQtdGVtcGxhdGUtYXJlYXMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJyxcbiAgJ2dyaWQtdGVtcGxhdGUtcm93cycsXG4gICdoYW5naW5nLXB1bmN0dWF0aW9uJyxcbiAgJ2hlaWdodCcsXG4gICdoeXBoZW5zJyxcbiAgJ2ljb24nLFxuICAnaW1hZ2Utb3JpZW50YXRpb24nLFxuICAnaW1hZ2UtcmVuZGVyaW5nJyxcbiAgJ2ltYWdlLXJlc29sdXRpb24nLFxuICAnaW1lLW1vZGUnLFxuICAnaW5saW5lLXNpemUnLFxuICAnaW5zZXQnLFxuICAnaW5zZXQtYmxvY2snLFxuICAnaW5zZXQtYmxvY2stZW5kJyxcbiAgJ2luc2V0LWJsb2NrLXN0YXJ0JyxcbiAgJ2luc2V0LWlubGluZScsXG4gICdpbnNldC1pbmxpbmUtZW5kJyxcbiAgJ2luc2V0LWlubGluZS1zdGFydCcsXG4gICdpc29sYXRpb24nLFxuICAna2VybmluZycsXG4gICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAnanVzdGlmeS1pdGVtcycsXG4gICdqdXN0aWZ5LXNlbGYnLFxuICAnbGVmdCcsXG4gICdsZXR0ZXItc3BhY2luZycsXG4gICdsaWdodGluZy1jb2xvcicsXG4gICdsaW5lLWJyZWFrJyxcbiAgJ2xpbmUtaGVpZ2h0JyxcbiAgJ2xpc3Qtc3R5bGUnLFxuICAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgJ2xpc3Qtc3R5bGUtdHlwZScsXG4gICdtYXJrZXInLFxuICAnbWFya2VyLWVuZCcsXG4gICdtYXJrZXItbWlkJyxcbiAgJ21hcmtlci1zdGFydCcsXG4gICdtYXNrJyxcbiAgJ21hcmdpbicsXG4gICdtYXJnaW4tYmxvY2snLFxuICAnbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdtYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnbWFyZ2luLWJvdHRvbScsXG4gICdtYXJnaW4taW5saW5lJyxcbiAgJ21hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ21hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnbWFyZ2luLWxlZnQnLFxuICAnbWFyZ2luLXJpZ2h0JyxcbiAgJ21hcmdpbi10b3AnLFxuICAnbWFya3MnLFxuICAnbWFzaycsXG4gICdtYXNrLWJvcmRlcicsXG4gICdtYXNrLWJvcmRlci1tb2RlJyxcbiAgJ21hc2stYm9yZGVyLW91dHNldCcsXG4gICdtYXNrLWJvcmRlci1yZXBlYXQnLFxuICAnbWFzay1ib3JkZXItc2xpY2UnLFxuICAnbWFzay1ib3JkZXItc291cmNlJyxcbiAgJ21hc2stYm9yZGVyLXdpZHRoJyxcbiAgJ21hc2stY2xpcCcsXG4gICdtYXNrLWNvbXBvc2l0ZScsXG4gICdtYXNrLWltYWdlJyxcbiAgJ21hc2stbW9kZScsXG4gICdtYXNrLW9yaWdpbicsXG4gICdtYXNrLXBvc2l0aW9uJyxcbiAgJ21hc2stcmVwZWF0JyxcbiAgJ21hc2stc2l6ZScsXG4gICdtYXNrLXR5cGUnLFxuICAnbWF4LWJsb2NrLXNpemUnLFxuICAnbWF4LWhlaWdodCcsXG4gICdtYXgtaW5saW5lLXNpemUnLFxuICAnbWF4LXdpZHRoJyxcbiAgJ21pbi1ibG9jay1zaXplJyxcbiAgJ21pbi1oZWlnaHQnLFxuICAnbWluLWlubGluZS1zaXplJyxcbiAgJ21pbi13aWR0aCcsXG4gICdtaXgtYmxlbmQtbW9kZScsXG4gICduYXYtZG93bicsXG4gICduYXYtaW5kZXgnLFxuICAnbmF2LWxlZnQnLFxuICAnbmF2LXJpZ2h0JyxcbiAgJ25hdi11cCcsXG4gICdub25lJyxcbiAgJ25vcm1hbCcsXG4gICdvYmplY3QtZml0JyxcbiAgJ29iamVjdC1wb3NpdGlvbicsXG4gICdvcGFjaXR5JyxcbiAgJ29yZGVyJyxcbiAgJ29ycGhhbnMnLFxuICAnb3V0bGluZScsXG4gICdvdXRsaW5lLWNvbG9yJyxcbiAgJ291dGxpbmUtb2Zmc2V0JyxcbiAgJ291dGxpbmUtc3R5bGUnLFxuICAnb3V0bGluZS13aWR0aCcsXG4gICdvdmVyZmxvdycsXG4gICdvdmVyZmxvdy13cmFwJyxcbiAgJ292ZXJmbG93LXgnLFxuICAnb3ZlcmZsb3cteScsXG4gICdwYWRkaW5nJyxcbiAgJ3BhZGRpbmctYmxvY2snLFxuICAncGFkZGluZy1ibG9jay1lbmQnLFxuICAncGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdwYWRkaW5nLWJvdHRvbScsXG4gICdwYWRkaW5nLWlubGluZScsXG4gICdwYWRkaW5nLWlubGluZS1lbmQnLFxuICAncGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAncGFkZGluZy1sZWZ0JyxcbiAgJ3BhZGRpbmctcmlnaHQnLFxuICAncGFkZGluZy10b3AnLFxuICAncGFnZS1icmVhay1hZnRlcicsXG4gICdwYWdlLWJyZWFrLWJlZm9yZScsXG4gICdwYWdlLWJyZWFrLWluc2lkZScsXG4gICdwYXVzZScsXG4gICdwYXVzZS1hZnRlcicsXG4gICdwYXVzZS1iZWZvcmUnLFxuICAncGVyc3BlY3RpdmUnLFxuICAncGVyc3BlY3RpdmUtb3JpZ2luJyxcbiAgJ3BvaW50ZXItZXZlbnRzJyxcbiAgJ3Bvc2l0aW9uJyxcbiAgJ3F1b3RlcycsXG4gICdyJyxcbiAgJ3Jlc2l6ZScsXG4gICdyZXN0JyxcbiAgJ3Jlc3QtYWZ0ZXInLFxuICAncmVzdC1iZWZvcmUnLFxuICAncmlnaHQnLFxuICAncm90YXRlJyxcbiAgJ3Jvdy1nYXAnLFxuICAnc2NhbGUnLFxuICAnc2Nyb2xsLW1hcmdpbicsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ib3R0b20nLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tbGVmdCcsXG4gICdzY3JvbGwtbWFyZ2luLXJpZ2h0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tdG9wJyxcbiAgJ3Njcm9sbC1wYWRkaW5nJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1ib3R0b20nLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWxlZnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctcmlnaHQnLFxuICAnc2Nyb2xsLXBhZGRpbmctdG9wJyxcbiAgJ3Njcm9sbC1zbmFwLWFsaWduJyxcbiAgJ3Njcm9sbC1zbmFwLXN0b3AnLFxuICAnc2Nyb2xsLXNuYXAtdHlwZScsXG4gICdzY3JvbGxiYXItY29sb3InLFxuICAnc2Nyb2xsYmFyLWd1dHRlcicsXG4gICdzY3JvbGxiYXItd2lkdGgnLFxuICAnc2hhcGUtaW1hZ2UtdGhyZXNob2xkJyxcbiAgJ3NoYXBlLW1hcmdpbicsXG4gICdzaGFwZS1vdXRzaWRlJyxcbiAgJ3NoYXBlLXJlbmRlcmluZycsXG4gICdzdG9wLWNvbG9yJyxcbiAgJ3N0b3Atb3BhY2l0eScsXG4gICdzdHJva2UnLFxuICAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICdzdHJva2UtZGFzaG9mZnNldCcsXG4gICdzdHJva2UtbGluZWNhcCcsXG4gICdzdHJva2UtbGluZWpvaW4nLFxuICAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAnc3Ryb2tlLW9wYWNpdHknLFxuICAnc3Ryb2tlLXdpZHRoJyxcbiAgJ3NwZWFrJyxcbiAgJ3NwZWFrLWFzJyxcbiAgJ3NyYycsIC8vIEBmb250LWZhY2VcbiAgJ3RhYi1zaXplJyxcbiAgJ3RhYmxlLWxheW91dCcsXG4gICd0ZXh0LWFuY2hvcicsXG4gICd0ZXh0LWFsaWduJyxcbiAgJ3RleHQtYWxpZ24tYWxsJyxcbiAgJ3RleHQtYWxpZ24tbGFzdCcsXG4gICd0ZXh0LWNvbWJpbmUtdXByaWdodCcsXG4gICd0ZXh0LWRlY29yYXRpb24nLFxuICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1saW5lJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1za2lwLWluaycsXG4gICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycsXG4gICd0ZXh0LWVtcGhhc2lzJyxcbiAgJ3RleHQtZW1waGFzaXMtY29sb3InLFxuICAndGV4dC1lbXBoYXNpcy1wb3NpdGlvbicsXG4gICd0ZXh0LWVtcGhhc2lzLXN0eWxlJyxcbiAgJ3RleHQtaW5kZW50JyxcbiAgJ3RleHQtanVzdGlmeScsXG4gICd0ZXh0LW9yaWVudGF0aW9uJyxcbiAgJ3RleHQtb3ZlcmZsb3cnLFxuICAndGV4dC1yZW5kZXJpbmcnLFxuICAndGV4dC1zaGFkb3cnLFxuICAndGV4dC10cmFuc2Zvcm0nLFxuICAndGV4dC11bmRlcmxpbmUtb2Zmc2V0JyxcbiAgJ3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgJ3RvcCcsXG4gICd0cmFuc2Zvcm0nLFxuICAndHJhbnNmb3JtLWJveCcsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zZm9ybS1zdHlsZScsXG4gICd0cmFuc2l0aW9uJyxcbiAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd1bmljb2RlLWJpZGknLFxuICAndmVjdG9yLWVmZmVjdCcsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3ZvaWNlLWJhbGFuY2UnLFxuICAndm9pY2UtZHVyYXRpb24nLFxuICAndm9pY2UtZmFtaWx5JyxcbiAgJ3ZvaWNlLXBpdGNoJyxcbiAgJ3ZvaWNlLXJhbmdlJyxcbiAgJ3ZvaWNlLXJhdGUnLFxuICAndm9pY2Utc3RyZXNzJyxcbiAgJ3ZvaWNlLXZvbHVtZScsXG4gICd3aGl0ZS1zcGFjZScsXG4gICd3aWRvd3MnLFxuICAnd2lkdGgnLFxuICAnd2lsbC1jaGFuZ2UnLFxuICAnd29yZC1icmVhaycsXG4gICd3b3JkLXNwYWNpbmcnLFxuICAnd29yZC13cmFwJyxcbiAgJ3dyaXRpbmctbW9kZScsXG4gICd4JyxcbiAgJ3knLFxuICAnei1pbmRleCdcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLypcbkxhbmd1YWdlOiBTQ1NTXG5EZXNjcmlwdGlvbjogU2NzcyBpcyBhbiBleHRlbnNpb24gb2YgdGhlIHN5bnRheCBvZiBDU1MuXG5BdXRob3I6IEt1cnQgRW1jaCA8a3VydEBrdXJ0ZW1jaC5jb20+XG5XZWJzaXRlOiBodHRwczovL3Nhc3MtbGFuZy5jb21cbkNhdGVnb3J5OiBjb21tb24sIGNzcywgd2ViXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzY3NzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcbiAgY29uc3QgUFNFVURPX0VMRU1FTlRTJDEgPSBQU0VVRE9fRUxFTUVOVFM7XG4gIGNvbnN0IFBTRVVET19DTEFTU0VTJDEgPSBQU0VVRE9fQ0xBU1NFUztcblxuICBjb25zdCBBVF9JREVOVElGSUVSID0gJ0BbYS16LV0rJzsgLy8gQGZvbnQtZmFjZVxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBJREVOVF9SRSA9ICdbYS16QS1aLV1bYS16QS1aMC05Xy1dKic7XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogJyhcXFxcJCcgKyBJREVOVF9SRSArICcpXFxcXGInLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NDU1MnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogJ1s9L3xcXCddJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIC8vIHRvIHJlY29nbml6ZSBrZXlmcmFtZSA0MCUgZXRjIHdoaWNoIGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBvdXJcbiAgICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSBtb2RlXG4gICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJyxcbiAgICAgICAgYmVnaW46ICcjW0EtWmEtejAtOV8tXSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWNsYXNzJyxcbiAgICAgICAgYmVnaW46ICdcXFxcLltBLVphLXowLTlfLV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIC8vIHdhcyB0aGVyZSwgYmVmb3JlLCBidXQgd2h5P1xuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOignICsgUFNFVURPX0NMQVNTRVMkMS5qb2luKCd8JykgKyAnKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOig6KT8oJyArIFBTRVVET19FTEVNRU5UUyQxLmpvaW4oJ3wnKSArICcpJ1xuICAgICAgfSxcbiAgICAgIFZBUklBQkxFLFxuICAgICAgeyAvLyBwc2V1ZG8tc2VsZWN0b3IgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFsgbW9kZXMuQ1NTX05VTUJFUl9NT0RFIF1cbiAgICAgIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXGIod2hpdGVzcGFjZXx3YWl0fHctcmVzaXplfHZpc2libGV8dmVydGljYWwtdGV4dHx2ZXJ0aWNhbC1pZGVvZ3JhcGhpY3x1cHBlcmNhc2V8dXBwZXItcm9tYW58dXBwZXItYWxwaGF8dW5kZXJsaW5lfHRyYW5zcGFyZW50fHRvcHx0aGlufHRoaWNrfHRleHR8dGV4dC10b3B8dGV4dC1ib3R0b218dGItcmx8dGFibGUtaGVhZGVyLWdyb3VwfHRhYmxlLWZvb3Rlci1ncm91cHxzdy1yZXNpemV8c3VwZXJ8c3RyaWN0fHN0YXRpY3xzcXVhcmV8c29saWR8c21hbGwtY2Fwc3xzZXBhcmF0ZXxzZS1yZXNpemV8c2Nyb2xsfHMtcmVzaXplfHJ0bHxyb3ctcmVzaXplfHJpZGdlfHJpZ2h0fHJlcGVhdHxyZXBlYXQteXxyZXBlYXQteHxyZWxhdGl2ZXxwcm9ncmVzc3xwb2ludGVyfG92ZXJsaW5lfG91dHNpZGV8b3V0c2V0fG9ibGlxdWV8bm93cmFwfG5vdC1hbGxvd2VkfG5vcm1hbHxub25lfG53LXJlc2l6ZXxuby1yZXBlYXR8bm8tZHJvcHxuZXdzcGFwZXJ8bmUtcmVzaXplfG4tcmVzaXplfG1vdmV8bWlkZGxlfG1lZGl1bXxsdHJ8bHItdGJ8bG93ZXJjYXNlfGxvd2VyLXJvbWFufGxvd2VyLWFscGhhfGxvb3NlfGxpc3QtaXRlbXxsaW5lfGxpbmUtdGhyb3VnaHxsaW5lLWVkZ2V8bGlnaHRlcnxsZWZ0fGtlZXAtYWxsfGp1c3RpZnl8aXRhbGljfGludGVyLXdvcmR8aW50ZXItaWRlb2dyYXBofGluc2lkZXxpbnNldHxpbmxpbmV8aW5saW5lLWJsb2NrfGluaGVyaXR8aW5hY3RpdmV8aWRlb2dyYXBoLXNwYWNlfGlkZW9ncmFwaC1wYXJlbnRoZXNpc3xpZGVvZ3JhcGgtbnVtZXJpY3xpZGVvZ3JhcGgtYWxwaGF8aG9yaXpvbnRhbHxoaWRkZW58aGVscHxoYW5kfGdyb292ZXxmaXhlZHxlbGxpcHNpc3xlLXJlc2l6ZXxkb3VibGV8ZG90dGVkfGRpc3RyaWJ1dGV8ZGlzdHJpYnV0ZS1zcGFjZXxkaXN0cmlidXRlLWxldHRlcnxkaXN0cmlidXRlLWFsbC1saW5lc3xkaXNjfGRpc2FibGVkfGRlZmF1bHR8ZGVjaW1hbHxkYXNoZWR8Y3Jvc3NoYWlyfGNvbGxhcHNlfGNvbC1yZXNpemV8Y2lyY2xlfGNoYXJ8Y2VudGVyfGNhcGl0YWxpemV8YnJlYWstd29yZHxicmVhay1hbGx8Ym90dG9tfGJvdGh8Ym9sZGVyfGJvbGR8YmxvY2t8YmlkaS1vdmVycmlkZXxiZWxvd3xiYXNlbGluZXxhdXRvfGFsd2F5c3xhbGwtc2Nyb2xsfGFic29sdXRlfHRhYmxlfHRhYmxlLWNlbGwpXFxcXGInIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1s7fXtdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIG1vZGVzLkJMT0NLX0NPTU1FTlQsXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgbW9kZXMuSEVYQ09MT1IsXG4gICAgICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIG1vZGVzLklNUE9SVEFOVCxcbiAgICAgICAgICBtb2Rlcy5GVU5DVElPTl9ESVNQQVRDSFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gbWF0Y2hpbmcgdGhlc2UgaGVyZSBhbGxvd3MgdXMgdG8gdHJlYXQgdGhlbSBtb3JlIGxpa2UgcmVndWxhciBDU1NcbiAgICAgIC8vIHJ1bGVzIHNvIGV2ZXJ5dGhpbmcgYmV0d2VlbiB0aGUge30gZ2V0cyByZWd1bGFyIHJ1bGUgaGlnaGxpZ2h0aW5nLFxuICAgICAgLy8gd2hpY2ggaXMgd2hhdCB3ZSB3YW50IGZvciBwYWdlIGFuZCBmb250LWZhY2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdAKHBhZ2V8Zm9udC1mYWNlKScsXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgJHBhdHRlcm46IEFUX0lERU5USUZJRVIsXG4gICAgICAgICAga2V5d29yZDogJ0BwYWdlIEBmb250LWZhY2UnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnQCcsXG4gICAgICAgIGVuZDogJ1t7O10nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1thLXotXSsvLFxuICAgICAgICAgIGtleXdvcmQ6IEFUX01PRElGSUVSUyxcbiAgICAgICAgICBhdHRyaWJ1dGU6IE1FRElBX0ZFQVRVUkVTLmpvaW4oXCIgXCIpXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IEFUX0lERU5USUZJRVIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1thLXotXSsoPz06KS8sXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgIG1vZGVzLkNTU19OVU1CRVJfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NzcztcbiIsICIvKlxuTGFuZ3VhZ2U6IFNoZWxsIFNlc3Npb25cblJlcXVpcmVzOiBiYXNoLmpzXG5BdXRob3I6IFRTVVlVU0FUTyBLaXRzdW5lIDxtYWtlLmp1c3Qub25AZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vblxuQXVkaXQ6IDIwMjBcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzaGVsbChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NoZWxsIFNlc3Npb24nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdjb25zb2xlJyxcbiAgICAgICdzaGVsbHNlc3Npb24nXG4gICAgXSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhLnByb21wdCcsXG4gICAgICAgIC8vIFdlIGNhbm5vdCBhZGQgXFxzIChzcGFjZXMpIGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgdG9vIGJyb2FkIGFuZCBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0LlxuICAgICAgICAvLyBGb3IgaW5zdGFuY2UsIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgaXQgd291bGQgbWF0Y2ggXCJlY2hvIC9wYXRoL3RvL2hvbWUgPlwiIGFzIGEgcHJvbXB0OlxuICAgICAgICAvLyBlY2hvIC9wYXRoL3RvL2hvbWUgPiB0LmV4ZVxuICAgICAgICBiZWdpbjogL15cXHN7MCwzfVsvflxcd1xcZFtcXF0oKUAtXSpbPiUkI11bIF0/LyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvW15cXFxcXSg/PVxccyokKS8sXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6ICdiYXNoJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNoZWxsO1xuIiwgIi8qXG5MYW5ndWFnZTogU21hbGlcbkF1dGhvcjogRGVubmlzIFRpdHplIDxkZW5uaXMudGl0emVAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IEJhc2ljIFNtYWxpIGhpZ2hsaWdodGluZ1xuV2Vic2l0ZTogaHR0cHM6Ly9naXRodWIuY29tL0plc3VzRnJla2Uvc21hbGlcbkNhdGVnb3J5OiBhc3NlbWJsZXJcbiovXG5cbmZ1bmN0aW9uIHNtYWxpKGhsanMpIHtcbiAgY29uc3Qgc21hbGlfaW5zdHJfbG93X3ByaW8gPSBbXG4gICAgJ2FkZCcsXG4gICAgJ2FuZCcsXG4gICAgJ2NtcCcsXG4gICAgJ2NtcGcnLFxuICAgICdjbXBsJyxcbiAgICAnY29uc3QnLFxuICAgICdkaXYnLFxuICAgICdkb3VibGUnLFxuICAgICdmbG9hdCcsXG4gICAgJ2dvdG8nLFxuICAgICdpZicsXG4gICAgJ2ludCcsXG4gICAgJ2xvbmcnLFxuICAgICdtb3ZlJyxcbiAgICAnbXVsJyxcbiAgICAnbmVnJyxcbiAgICAnbmV3JyxcbiAgICAnbm9wJyxcbiAgICAnbm90JyxcbiAgICAnb3InLFxuICAgICdyZW0nLFxuICAgICdyZXR1cm4nLFxuICAgICdzaGwnLFxuICAgICdzaHInLFxuICAgICdzcHV0JyxcbiAgICAnc3ViJyxcbiAgICAndGhyb3cnLFxuICAgICd1c2hyJyxcbiAgICAneG9yJ1xuICBdO1xuICBjb25zdCBzbWFsaV9pbnN0cl9oaWdoX3ByaW8gPSBbXG4gICAgJ2FnZXQnLFxuICAgICdhcHV0JyxcbiAgICAnYXJyYXknLFxuICAgICdjaGVjaycsXG4gICAgJ2V4ZWN1dGUnLFxuICAgICdmaWxsJyxcbiAgICAnZmlsbGVkJyxcbiAgICAnZ290by8xNicsXG4gICAgJ2dvdG8vMzInLFxuICAgICdpZ2V0JyxcbiAgICAnaW5zdGFuY2UnLFxuICAgICdpbnZva2UnLFxuICAgICdpcHV0JyxcbiAgICAnbW9uaXRvcicsXG4gICAgJ3BhY2tlZCcsXG4gICAgJ3NnZXQnLFxuICAgICdzcGFyc2UnXG4gIF07XG4gIGNvbnN0IHNtYWxpX2tleXdvcmRzID0gW1xuICAgICd0cmFuc2llbnQnLFxuICAgICdjb25zdHJ1Y3RvcicsXG4gICAgJ2Fic3RyYWN0JyxcbiAgICAnZmluYWwnLFxuICAgICdzeW50aGV0aWMnLFxuICAgICdwdWJsaWMnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAnc3RhdGljJyxcbiAgICAnYnJpZGdlJyxcbiAgICAnc3lzdGVtJ1xuICBdO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTbWFsaScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnIycsXG4gICAgICAgICckJyxcbiAgICAgICAgeyByZWxldmFuY2U6IDAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxzKlxcXFwuZW5kXFxcXHNbYS16QS1aMC05XSonIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeWyBdKlxcXFwuW2EtekEtWl0qJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcczpbYS16QS1aXzAtOV0qJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxzKCcgKyBzbWFsaV9rZXl3b3Jkcy5qb2luKCd8JykgKyAnKScgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxzKCcgKyBzbWFsaV9pbnN0cl9sb3dfcHJpby5qb2luKCd8JykgKyAnKVxcXFxzJyB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXHMoJyArIHNtYWxpX2luc3RyX2xvd19wcmlvLmpvaW4oJ3wnKSArICcpKCgtfC8pW2EtekEtWjAtOV0rKStcXFxccycsXG4gICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxzKCcgKyBzbWFsaV9pbnN0cl9oaWdoX3ByaW8uam9pbignfCcpICsgJykoKC18LylbYS16QS1aMC05XSspKlxcXFxzJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW46ICdMW15cXCg7Olxcbl0qOycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46ICdbdnBdWzAtOV0rJyB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNtYWxpO1xuIiwgIi8qXG5MYW5ndWFnZTogU21hbGx0YWxrXG5EZXNjcmlwdGlvbjogU21hbGx0YWxrIGlzIGFuIG9iamVjdC1vcmllbnRlZCwgZHluYW1pY2FsbHkgdHlwZWQgcmVmbGVjdGl2ZSBwcm9ncmFtbWluZyBsYW5ndWFnZS5cbkF1dGhvcjogVmxhZGltaXIgR3ViYXJrb3YgPHhvbml4eEBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbWFsbHRhbGtcbkNhdGVnb3J5OiBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIHNtYWxsdGFsayhobGpzKSB7XG4gIGNvbnN0IFZBUl9JREVOVF9SRSA9ICdbYS16XVthLXpBLVowLTlfXSonO1xuICBjb25zdCBDSEFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXFxcJC57MX0nXG4gIH07XG4gIGNvbnN0IFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnIycgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU21hbGx0YWxrJyxcbiAgICBhbGlhc2VzOiBbICdzdCcgXSxcbiAgICBrZXl3b3JkczogW1xuICAgICAgXCJzZWxmXCIsXG4gICAgICBcInN1cGVyXCIsXG4gICAgICBcIm5pbFwiLFxuICAgICAgXCJ0cnVlXCIsXG4gICAgICBcImZhbHNlXCIsXG4gICAgICBcInRoaXNDb250ZXh0XCJcbiAgICBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoJ1wiJywgJ1wiJyksXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiW0EtWl1bQS1aYS16MC05X10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogVkFSX0lERU5UX1JFICsgJzonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBTWU1CT0wsXG4gICAgICBDSEFSLFxuICAgICAge1xuICAgICAgICAvLyBUaGlzIGxvb2tzIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBuZWVkZWQgdG8gYXZvaWQgY29tYmluYXRvcmlhbFxuICAgICAgICAvLyBleHBsb3Npb24gdW5kZXIgVjguIEl0IGVmZmVjdGl2ZWx5IG1lYW5zIGB8IHZhcjEgdmFyMiAuLi4gfGAgd2l0aFxuICAgICAgICAvLyB3aGl0ZXNwYWNlIGFkamFjZW50IHRvIGB8YCBiZWluZyBvcHRpb25hbC5cbiAgICAgICAgYmVnaW46ICdcXFxcfFsgXSonICsgVkFSX0lERU5UX1JFICsgJyhbIF0rJyArIFZBUl9JREVOVF9SRSArICcpKlsgXSpcXFxcfCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9cXHwvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFsgeyBiZWdpbjogJyhcXFxcfFsgXSopPycgKyBWQVJfSURFTlRfUkUgfSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyNcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgQ0hBUixcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgU1lNQk9MXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc21hbGx0YWxrO1xuIiwgIi8qXG5MYW5ndWFnZTogU01MIChTdGFuZGFyZCBNTClcbkF1dGhvcjogRWR3aW4gRGFsb3J6byA8ZWR3aW5AZGFsb3J6by5vcmc+XG5EZXNjcmlwdGlvbjogU01MIGxhbmd1YWdlIGRlZmluaXRpb24uXG5XZWJzaXRlOiBodHRwczovL3d3dy5zbWxuai5vcmdcbk9yaWdpbjogb2NhbWwuanNcbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuZnVuY3Rpb24gc21sKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU01MIChTdGFuZGFyZCBNTCknLFxuICAgIGFsaWFzZXM6IFsgJ21sJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1thLXpfXVxcXFx3KiE/JyxcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8qIGFjY29yZGluZyB0byBEZWZpbml0aW9uIG9mIFN0YW5kYXJkIE1MIDk3ICAqL1xuICAgICAgICAnYWJzdHlwZSBhbmQgYW5kYWxzbyBhcyBjYXNlIGRhdGF0eXBlIGRvIGVsc2UgZW5kIGVxdHlwZSAnXG4gICAgICAgICsgJ2V4Y2VwdGlvbiBmbiBmdW4gZnVuY3RvciBoYW5kbGUgaWYgaW4gaW5jbHVkZSBpbmZpeCBpbmZpeHIgJ1xuICAgICAgICArICdsZXQgbG9jYWwgbm9uZml4IG9mIG9wIG9wZW4gb3JlbHNlIHJhaXNlIHJlYyBzaGFyaW5nIHNpZyAnXG4gICAgICAgICsgJ3NpZ25hdHVyZSBzdHJ1Y3Qgc3RydWN0dXJlIHRoZW4gdHlwZSB2YWwgd2l0aCB3aXRodHlwZSB3aGVyZSB3aGlsZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLyogYnVpbHQtaW4gdHlwZXMgYWNjb3JkaW5nIHRvIGJhc2lzIGxpYnJhcnkgKi9cbiAgICAgICAgJ2FycmF5IGJvb2wgY2hhciBleG4gaW50IGxpc3Qgb3B0aW9uIG9yZGVyIHJlYWwgcmVmIHN0cmluZyBzdWJzdHJpbmcgdmVjdG9yIHVuaXQgd29yZCcsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAndHJ1ZSBmYWxzZSBOT05FIFNPTUUgTEVTUyBFUVVBTCBHUkVBVEVSIG5pbCdcbiAgICB9LFxuICAgIGlsbGVnYWw6IC9cXC9cXC98Pj4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICBiZWdpbjogL1xcWyhcXHxcXHwpP1xcXXxcXChcXCkvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICdcXFxcKFxcXFwqJyxcbiAgICAgICAgJ1xcXFwqXFxcXCknLFxuICAgICAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgICAgICksXG4gICAgICB7IC8qIHR5cGUgdmFyaWFibGUgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdcXCdbQS1aYS16X10oPyFcXCcpW1xcXFx3XFwnXSonXG4gICAgICAgIC8qIHRoZSBncmFtbWFyIGlzIGFtYmlndW91cyBvbiBob3cgJ2EnYiBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYnV0IG5vdCB0aGUgY29tcGlsZXIgKi9cbiAgICAgIH0sXG4gICAgICB7IC8qIHBvbHltb3JwaGljIHZhcmlhbnQgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGJlZ2luOiAnYFtBLVpdW1xcXFx3XFwnXSonXG4gICAgICB9LFxuICAgICAgeyAvKiBtb2R1bGUgb3IgY29uc3RydWN0b3IgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJbQS1aXVtcXFxcd1xcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyAvKiBkb24ndCBjb2xvciBpZGVudGlmaWVycywgYnV0IHNhZmVseSBjYXRjaCBhbGwgaWRlbnRpZmllcnMgd2l0aCAnICovXG4gICAgICAgIGJlZ2luOiAnW2Etel9dXFxcXHcqXFwnW1xcXFx3XFwnXSonIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjpcbiAgICAgICAgICAnXFxcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fCdcbiAgICAgICAgICArICcwW29PXVswLTdfXStbTGxuXT98J1xuICAgICAgICAgICsgJzBbYkJdWzAxX10rW0xsbl0/fCdcbiAgICAgICAgICArICdbMC05XVswLTlfXSooW0xsbl18KFxcXFwuWzAtOV9dKik/KFtlRV1bLStdP1swLTlfXSspPyk/KScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC9bLT1dPi8gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc21sO1xuIiwgIi8qXG5MYW5ndWFnZTogU1FGXG5BdXRob3I6IFNcdTAwRjhyZW4gRW5ldm9sZHNlbiA8c2VuZXZvbGRzZW45MEBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IE1hcnZpbiBTYWlnbmF0IDxjb250YWN0QHpnbXJ2bi5jb20+LCBEZWRtZW4gTWlsbGVyIDxkZWRtZW5AZGVkbWVuLmRlPiwgTGVvcGFyZDIwXG5EZXNjcmlwdGlvbjogU2NyaXB0aW5nIGxhbmd1YWdlIGZvciB0aGUgQXJtYSBnYW1lIHNlcmllc1xuV2Vic2l0ZTogaHR0cHM6Ly9jb21tdW5pdHkuYmlzdHVkaW8uY29tL3dpa2kvU1FGX3N5bnRheFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuTGFzdCB1cGRhdGU6IDA3LjAxLjIwMjMsIEFybWEgMyB2Mi4xMVxuKi9cblxuLypcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICogQXV0aG9yOiBMZW9wYXJkMjBcbiAgXG4gICogRGVzY3JpcHRpb246XG4gIFRoaXMgc2NyaXB0IGNhbiBiZSB1c2VkIHRvIGR1bXAgYWxsIGNvbW1hbmRzIHRvIHRoZSBjbGlwYm9hcmQuXG4gIE1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIERpYWcgRVhFIHRvIGR1bXAgYWxsIG9mIHRoZSBjb21tYW5kcy5cbiAgXG4gICogSG93IHRvIHVzZTpcbiAgU2ltcGx5IHJlcGxhY2UgdGhlIF9LRVlXT1JEUyBhbmQgX0xJVEVSQUwgYXJyYXlzIHdpdGggdGhlIG9uZSBmcm9tIHRoaXMgc3FmLmpzIGZpbGUuXG4gIEV4ZWN1dGUgdGhlIHNjcmlwdCBmcm9tIHRoZSBkZWJ1ZyBjb25zb2xlLlxuICBBbGwgY29tbWFuZHMgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZC5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5fS0VZV09SRFMgPSBbJ2lmJ107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9BcnJheSBvZiBhbGwgS0VZV09SRFNcbl9MSVRFUkFMUyA9IFsnd2VzdCddOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0FycmF5IG9mIGFsbCBMSVRFUkFMU1xuX2FsbENvbW1hbmRzID0gY3JlYXRlSGFzaE1hcDtcbntcbiAgX3R5cGUgPSBfeCBzZWxlY3QgWzAsMV07XG4gIGlmIChfdHlwZSAhPSBcInRcIikgdGhlbiB7XG4gICAgX2NvbW1hbmRfbG93ZXJjYXNlID0gKChfeCBzZWxlY3QgWzJdKSBzcGxpdFN0cmluZyBcIiBcIikjKCgoW1wiblwiLCBcInVcIiwgXCJiXCJdIGZpbmQgX3R5cGUpIC0gMSkgbWF4IDApO1xuICAgIF9jb21tYW5kX3VwcGVyY2FzZSA9IHN1cHBvcnRJbmZvIChcImk6XCIgKyBfY29tbWFuZF9sb3dlcmNhc2UpICMgMCAjIDI7XG4gICAgX2FsbENvbW1hbmRzIHNldCBbX2NvbW1hbmRfbG93ZXJjYXNlLCBfY29tbWFuZF91cHBlcmNhc2VdO1xuICB9O1xufSBmb3JFYWNoIHN1cHBvcnRJbmZvIFwiXCI7XG5fYWxsQ29tbWFuZHMgPSBfYWxsQ29tbWFuZHMgdG9BcnJheSBmYWxzZTtcbl9hbGxDb21tYW5kcyBzb3J0IHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NvcnQgYnkgbG93ZXJjYXNlXG5fYWxsQ29tbWFuZHMgPSAoKF9hbGxDb21tYW5kcyBhcHBseSB7X3gjMX0pIC1fS0VZV09SRFMpLV9MSVRFUkFMUzsgLy9yZW1vdmUgS0VZV09SRFMgYW5kIExJVEVSQUxTXG5jb3B5VG9DbGlwYm9hcmQgKHN0ciAoX2FsbENvbW1hbmRzIHNlbGVjdCB7X3ggcmVnZXhNYXRjaCBcIlxcdytcIn0pIHJlZ2V4UmVwbGFjZSBbXCJcIlwiXCIsIFwiJ1wiXSByZWdleFJlcGxhY2UgW1wiLFwiLCBcIixcXG5cIl0pO1xuKi9cblxuZnVuY3Rpb24gc3FmKGhsanMpIHtcbiAgLy8gSW4gU1FGLCBhIGxvY2FsIHZhcmlhYmxlIHN0YXJ0cyB3aXRoIF9cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFxiXytbYS16QS1aXVxcdyovXG4gIH07XG5cbiAgLy8gSW4gU1FGLCBhIGZ1bmN0aW9uIHNob3VsZCBmaXQgbXlUYWdfZm5jX215RnVuY3Rpb24gcGF0dGVyblxuICAvLyBodHRwczovL2NvbW11bml0eS5iaXN0dWRpby5jb20vd2lraS9GdW5jdGlvbnNfTGlicmFyeV8oQXJtYV8zKSNBZGRpbmdfYV9GdW5jdGlvblxuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IC9bYS16QS1aXVthLXpBLVpfMC05XSpfZm5jX1thLXpBLVpfMC05XSsvXG4gIH07XG5cbiAgLy8gSW4gU1FGIHN0cmluZ3MsIHF1b3RlcyBtYXRjaGluZyB0aGUgc3RhcnQgYXJlIGVzY2FwZWQgYnkgYWRkaW5nIGEgY29uc2VjdXRpdmUuXG4gIC8vIEV4YW1wbGUgb2Ygc2luZ2xlIGVzY2FwZWQgcXVvdGVzOiBcIiBcIlwiIFwiIGFuZCAgJyAnJyAnLlxuICBjb25zdCBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1wiXCInLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXCdcXCcnLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgICdicmVhaycsXG4gICAgJ2JyZWFrV2l0aCcsXG4gICAgJ2JyZWFrT3V0JyxcbiAgICAnYnJlYWtUbycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnY29udGludWVXaXRoJyxcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2V4aXQnLFxuICAgICdleGl0V2l0aCcsXG4gICAgJ2ZvcicsXG4gICAgJ2ZvckVhY2gnLFxuICAgICdmcm9tJyxcbiAgICAnaWYnLFxuICAgICdsb2NhbCcsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdzd2l0Y2gnLFxuICAgICdzdGVwJyxcbiAgICAndGhlbicsXG4gICAgJ3Rocm93JyxcbiAgICAndG8nLFxuICAgICd0cnknLFxuICAgICd3YWl0VW50aWwnLFxuICAgICd3aGlsZScsXG4gICAgJ3dpdGgnXG4gIF07XG5cbiAgY29uc3QgTElURVJBTCA9IFtcbiAgICAnYmx1Zm9yJyxcbiAgICAnY2l2aWxpYW4nLFxuICAgICdjb25maWdOdWxsJyxcbiAgICAnY29udHJvbE51bGwnLFxuICAgICdkaXNwbGF5TnVsbCcsXG4gICAgJ2RpYXJ5UmVjb3JkTnVsbCcsXG4gICAgJ2Vhc3QnLFxuICAgICdlbmRsJyxcbiAgICAnZmFsc2UnLFxuICAgICdncnBOdWxsJyxcbiAgICAnaW5kZXBlbmRlbnQnLFxuICAgICdsaW5lQnJlYWsnLFxuICAgICdsb2NhdGlvbk51bGwnLFxuICAgICduaWwnLFxuICAgICdvYmpOdWxsJyxcbiAgICAnb3Bmb3InLFxuICAgICdwaScsXG4gICAgJ3Jlc2lzdGFuY2UnLFxuICAgICdzY3JpcHROdWxsJyxcbiAgICAnc2lkZUFtYmllbnRMaWZlJyxcbiAgICAnc2lkZUVtcHR5JyxcbiAgICAnc2lkZUVuZW15JyxcbiAgICAnc2lkZUZyaWVuZGx5JyxcbiAgICAnc2lkZUxvZ2ljJyxcbiAgICAnc2lkZVVua25vd24nLFxuICAgICd0YXNrTnVsbCcsXG4gICAgJ3RlYW1NZW1iZXJOdWxsJyxcbiAgICAndHJ1ZScsXG4gICAgJ3dlc3QnXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU4gPSBbXG4gICAgJ2FicycsXG4gICAgJ2FjY1RpbWUnLFxuICAgICdhY29zJyxcbiAgICAnYWN0aW9uJyxcbiAgICAnYWN0aW9uSURzJyxcbiAgICAnYWN0aW9uS2V5cycsXG4gICAgJ2FjdGlvbktleXNFeCcsXG4gICAgJ2FjdGlvbktleXNJbWFnZXMnLFxuICAgICdhY3Rpb25LZXlzTmFtZXMnLFxuICAgICdhY3Rpb25LZXlzTmFtZXNBcnJheScsXG4gICAgJ2FjdGlvbk5hbWUnLFxuICAgICdhY3Rpb25QYXJhbXMnLFxuICAgICdhY3RpdmF0ZUFkZG9ucycsXG4gICAgJ2FjdGl2YXRlZEFkZG9ucycsXG4gICAgJ2FjdGl2YXRlS2V5JyxcbiAgICAnYWN0aXZlVGl0bGVFZmZlY3RQYXJhbXMnLFxuICAgICdhZGQzREVOQ29ubmVjdGlvbicsXG4gICAgJ2FkZDNERU5FdmVudEhhbmRsZXInLFxuICAgICdhZGQzREVOTGF5ZXInLFxuICAgICdhZGRBY3Rpb24nLFxuICAgICdhZGRCYWNrcGFjaycsXG4gICAgJ2FkZEJhY2twYWNrQ2FyZ28nLFxuICAgICdhZGRCYWNrcGFja0NhcmdvR2xvYmFsJyxcbiAgICAnYWRkQmFja3BhY2tHbG9iYWwnLFxuICAgICdhZGRCaW5vY3VsYXJJdGVtJyxcbiAgICAnYWRkQ2FtU2hha2UnLFxuICAgICdhZGRDdXJhdG9yQWRkb25zJyxcbiAgICAnYWRkQ3VyYXRvckNhbWVyYUFyZWEnLFxuICAgICdhZGRDdXJhdG9yRWRpdGFibGVPYmplY3RzJyxcbiAgICAnYWRkQ3VyYXRvckVkaXRpbmdBcmVhJyxcbiAgICAnYWRkQ3VyYXRvclBvaW50cycsXG4gICAgJ2FkZEVkaXRvck9iamVjdCcsXG4gICAgJ2FkZEV2ZW50SGFuZGxlcicsXG4gICAgJ2FkZEZvcmNlJyxcbiAgICAnYWRkRm9yY2VHZW5lcmF0b3JSVEQnLFxuICAgICdhZGRHb2dnbGVzJyxcbiAgICAnYWRkR3JvdXBJY29uJyxcbiAgICAnYWRkSGFuZGd1bkl0ZW0nLFxuICAgICdhZGRIZWFkZ2VhcicsXG4gICAgJ2FkZEl0ZW0nLFxuICAgICdhZGRJdGVtQ2FyZ28nLFxuICAgICdhZGRJdGVtQ2FyZ29HbG9iYWwnLFxuICAgICdhZGRJdGVtUG9vbCcsXG4gICAgJ2FkZEl0ZW1Ub0JhY2twYWNrJyxcbiAgICAnYWRkSXRlbVRvVW5pZm9ybScsXG4gICAgJ2FkZEl0ZW1Ub1Zlc3QnLFxuICAgICdhZGRMaXZlU3RhdHMnLFxuICAgICdhZGRNYWdhemluZScsXG4gICAgJ2FkZE1hZ2F6aW5lQW1tb0NhcmdvJyxcbiAgICAnYWRkTWFnYXppbmVDYXJnbycsXG4gICAgJ2FkZE1hZ2F6aW5lQ2FyZ29HbG9iYWwnLFxuICAgICdhZGRNYWdhemluZUdsb2JhbCcsXG4gICAgJ2FkZE1hZ2F6aW5lUG9vbCcsXG4gICAgJ2FkZE1hZ2F6aW5lcycsXG4gICAgJ2FkZE1hZ2F6aW5lVHVycmV0JyxcbiAgICAnYWRkTWVudScsXG4gICAgJ2FkZE1lbnVJdGVtJyxcbiAgICAnYWRkTWlzc2lvbkV2ZW50SGFuZGxlcicsXG4gICAgJ2FkZE1QRXZlbnRIYW5kbGVyJyxcbiAgICAnYWRkTXVzaWNFdmVudEhhbmRsZXInLFxuICAgICdhZGRvbkZpbGVzJyxcbiAgICAnYWRkT3duZWRNaW5lJyxcbiAgICAnYWRkUGxheWVyU2NvcmVzJyxcbiAgICAnYWRkUHJpbWFyeVdlYXBvbkl0ZW0nLFxuICAgICdhZGRQdWJsaWNWYXJpYWJsZUV2ZW50SGFuZGxlcicsXG4gICAgJ2FkZFJhdGluZycsXG4gICAgJ2FkZFJlc291cmNlcycsXG4gICAgJ2FkZFNjb3JlJyxcbiAgICAnYWRkU2NvcmVTaWRlJyxcbiAgICAnYWRkU2Vjb25kYXJ5V2VhcG9uSXRlbScsXG4gICAgJ2FkZFN3aXRjaGFibGVVbml0JyxcbiAgICAnYWRkVGVhbU1lbWJlcicsXG4gICAgJ2FkZFRvUmVtYWluc0NvbGxlY3RvcicsXG4gICAgJ2FkZFRvcnF1ZScsXG4gICAgJ2FkZFVuaWZvcm0nLFxuICAgICdhZGRVc2VyQWN0aW9uRXZlbnRIYW5kbGVyJyxcbiAgICAnYWRkVmVoaWNsZScsXG4gICAgJ2FkZFZlc3QnLFxuICAgICdhZGRXYXlwb2ludCcsXG4gICAgJ2FkZFdlYXBvbicsXG4gICAgJ2FkZFdlYXBvbkNhcmdvJyxcbiAgICAnYWRkV2VhcG9uQ2FyZ29HbG9iYWwnLFxuICAgICdhZGRXZWFwb25HbG9iYWwnLFxuICAgICdhZGRXZWFwb25JdGVtJyxcbiAgICAnYWRkV2VhcG9uUG9vbCcsXG4gICAgJ2FkZFdlYXBvblR1cnJldCcsXG4gICAgJ2FkZFdlYXBvbldpdGhBdHRhY2htZW50c0NhcmdvJyxcbiAgICAnYWRkV2VhcG9uV2l0aEF0dGFjaG1lbnRzQ2FyZ29HbG9iYWwnLFxuICAgICdhZG1pbicsXG4gICAgJ2FnZW50JyxcbiAgICAnYWdlbnRzJyxcbiAgICAnQUdMVG9BU0wnLFxuICAgICdhaW1lZEF0VGFyZ2V0JyxcbiAgICAnYWltUG9zJyxcbiAgICAnYWlyRGVuc2l0eUN1cnZlUlREJyxcbiAgICAnYWlyRGVuc2l0eVJURCcsXG4gICAgJ2FpcnBsYW5lVGhyb3R0bGUnLFxuICAgICdhaXJwb3J0U2lkZScsXG4gICAgJ0FJU0ZpbmlzaEhlYWwnLFxuICAgICdhbGl2ZScsXG4gICAgJ2FsbDNERU5FbnRpdGllcycsXG4gICAgJ2FsbEFjdGl2ZVRpdGxlRWZmZWN0cycsXG4gICAgJ2FsbEFkZG9uc0luZm8nLFxuICAgICdhbGxBaXJwb3J0cycsXG4gICAgJ2FsbENvbnRyb2xzJyxcbiAgICAnYWxsQ3VyYXRvcnMnLFxuICAgICdhbGxDdXRMYXllcnMnLFxuICAgICdhbGxEZWFkJyxcbiAgICAnYWxsRGVhZE1lbicsXG4gICAgJ2FsbERpYXJ5UmVjb3JkcycsXG4gICAgJ2FsbERpYXJ5U3ViamVjdHMnLFxuICAgICdhbGxEaXNwbGF5cycsXG4gICAgJ2FsbEVudjNEU291bmRTb3VyY2VzJyxcbiAgICAnYWxsR3JvdXBzJyxcbiAgICAnYWxsTE9EcycsXG4gICAgJ2FsbE1hcE1hcmtlcnMnLFxuICAgICdhbGxNaW5lcycsXG4gICAgJ2FsbE1pc3Npb25PYmplY3RzJyxcbiAgICAnYWxsT2JqZWN0cycsXG4gICAgJ2FsbG93M0RNb2RlJyxcbiAgICAnYWxsb3dDcmV3SW5JbW1vYmlsZScsXG4gICAgJ2FsbG93Q3VyYXRvckxvZ2ljSWdub3JlQXJlYXMnLFxuICAgICdhbGxvd0RhbWFnZScsXG4gICAgJ2FsbG93RGFtbWFnZScsXG4gICAgJ2FsbG93ZWRTZXJ2aWNlJyxcbiAgICAnYWxsb3dGaWxlT3BlcmF0aW9ucycsXG4gICAgJ2FsbG93RmxlZWluZycsXG4gICAgJ2FsbG93R2V0SW4nLFxuICAgICdhbGxvd1NlcnZpY2UnLFxuICAgICdhbGxvd1NwcmludCcsXG4gICAgJ2FsbFBsYXllcnMnLFxuICAgICdhbGxTaW1wbGVPYmplY3RzJyxcbiAgICAnYWxsU2l0ZXMnLFxuICAgICdhbGxUdXJyZXRzJyxcbiAgICAnYWxsVW5pdHMnLFxuICAgICdhbGxVbml0c1VBVicsXG4gICAgJ2FsbFVzZXJzJyxcbiAgICAnYWxsVmFyaWFibGVzJyxcbiAgICAnYW1iaWVudFRlbXBlcmF0dXJlJyxcbiAgICAnYW1tbycsXG4gICAgJ2FtbW9PblB5bG9uJyxcbiAgICAnYW5kJyxcbiAgICAnYW5pbWF0ZScsXG4gICAgJ2FuaW1hdGVCYXknLFxuICAgICdhbmltYXRlRG9vcicsXG4gICAgJ2FuaW1hdGVQeWxvbicsXG4gICAgJ2FuaW1hdGVTb3VyY2UnLFxuICAgICdhbmltYXRpb25OYW1lcycsXG4gICAgJ2FuaW1hdGlvblBoYXNlJyxcbiAgICAnYW5pbWF0aW9uU291cmNlUGhhc2UnLFxuICAgICdhbmltYXRpb25TdGF0ZScsXG4gICAgJ2FwZXJ0dXJlUGFyYW1zJyxcbiAgICAnYXBwZW5kJyxcbiAgICAnYXBwbHknLFxuICAgICdhcm1vcnlQb2ludHMnLFxuICAgICdhcnJheUludGVyc2VjdCcsXG4gICAgJ2FzaW4nLFxuICAgICdBU0xUb0FHTCcsXG4gICAgJ0FTTFRvQVRMJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAnYXNzaWduQXNDYXJnbycsXG4gICAgJ2Fzc2lnbkFzQ2FyZ29JbmRleCcsXG4gICAgJ2Fzc2lnbkFzQ29tbWFuZGVyJyxcbiAgICAnYXNzaWduQXNEcml2ZXInLFxuICAgICdhc3NpZ25Bc0d1bm5lcicsXG4gICAgJ2Fzc2lnbkFzVHVycmV0JyxcbiAgICAnYXNzaWduQ3VyYXRvcicsXG4gICAgJ2Fzc2lnbmVkQ2FyZ28nLFxuICAgICdhc3NpZ25lZENvbW1hbmRlcicsXG4gICAgJ2Fzc2lnbmVkRHJpdmVyJyxcbiAgICAnYXNzaWduZWRHcm91cCcsXG4gICAgJ2Fzc2lnbmVkR3VubmVyJyxcbiAgICAnYXNzaWduZWRJdGVtcycsXG4gICAgJ2Fzc2lnbmVkVGFyZ2V0JyxcbiAgICAnYXNzaWduZWRUZWFtJyxcbiAgICAnYXNzaWduZWRWZWhpY2xlJyxcbiAgICAnYXNzaWduZWRWZWhpY2xlUm9sZScsXG4gICAgJ2Fzc2lnbmVkVmVoaWNsZXMnLFxuICAgICdhc3NpZ25JdGVtJyxcbiAgICAnYXNzaWduVGVhbScsXG4gICAgJ2Fzc2lnblRvQWlycG9ydCcsXG4gICAgJ2F0YW4nLFxuICAgICdhdGFuMicsXG4gICAgJ2F0ZycsXG4gICAgJ0FUTFRvQVNMJyxcbiAgICAnYXR0YWNoZWRPYmplY3QnLFxuICAgICdhdHRhY2hlZE9iamVjdHMnLFxuICAgICdhdHRhY2hlZFRvJyxcbiAgICAnYXR0YWNoT2JqZWN0JyxcbiAgICAnYXR0YWNoVG8nLFxuICAgICdhdHRhY2tFbmFibGVkJyxcbiAgICAnYXdha2UnLFxuICAgICdiYWNrcGFjaycsXG4gICAgJ2JhY2twYWNrQ2FyZ28nLFxuICAgICdiYWNrcGFja0NvbnRhaW5lcicsXG4gICAgJ2JhY2twYWNrSXRlbXMnLFxuICAgICdiYWNrcGFja01hZ2F6aW5lcycsXG4gICAgJ2JhY2twYWNrU3BhY2VGb3InLFxuICAgICdiZWhhdmlvdXInLFxuICAgICdiZW5jaG1hcmsnLFxuICAgICdiZXppZXJJbnRlcnBvbGF0aW9uJyxcbiAgICAnYmlub2N1bGFyJyxcbiAgICAnYmlub2N1bGFySXRlbXMnLFxuICAgICdiaW5vY3VsYXJNYWdhemluZScsXG4gICAgJ2JvdW5kaW5nQm94JyxcbiAgICAnYm91bmRpbmdCb3hSZWFsJyxcbiAgICAnYm91bmRpbmdDZW50ZXInLFxuICAgICdicmFrZXNEaXNhYmxlZCcsXG4gICAgJ2JyaWVmaW5nTmFtZScsXG4gICAgJ2J1aWxkaW5nRXhpdCcsXG4gICAgJ2J1aWxkaW5nUG9zJyxcbiAgICAnYnVsZG96ZXJfRW5hYmxlUm9hZERpYWcnLFxuICAgICdidWxkb3plcl9Jc0VuYWJsZWRSb2FkRGlhZycsXG4gICAgJ2J1bGRvemVyX0xvYWROZXdSb2FkcycsXG4gICAgJ2J1bGRvemVyX3JlbG9hZE9wZXJNYXAnLFxuICAgICdidXR0b25BY3Rpb24nLFxuICAgICdidXR0b25TZXRBY3Rpb24nLFxuICAgICdjYWRldE1vZGUnLFxuICAgICdjYWxjdWxhdGVQYXRoJyxcbiAgICAnY2FsY3VsYXRlUGxheWVyVmlzaWJpbGl0eUJ5RnJpZW5kbHknLFxuICAgICdjYWxsJyxcbiAgICAnY2FsbEV4dGVuc2lvbicsXG4gICAgJ2NhbUNvbW1hbmQnLFxuICAgICdjYW1Db21taXQnLFxuICAgICdjYW1Db21taXRQcmVwYXJlZCcsXG4gICAgJ2NhbUNvbW1pdHRlZCcsXG4gICAgJ2NhbUNvbnN0dWN0aW9uU2V0UGFyYW1zJyxcbiAgICAnY2FtQ3JlYXRlJyxcbiAgICAnY2FtRGVzdHJveScsXG4gICAgJ2NhbWVyYUVmZmVjdCcsXG4gICAgJ2NhbWVyYUVmZmVjdEVuYWJsZUhVRCcsXG4gICAgJ2NhbWVyYUludGVyZXN0JyxcbiAgICAnY2FtZXJhT24nLFxuICAgICdjYW1lcmFWaWV3JyxcbiAgICAnY2FtcGFpZ25Db25maWdGaWxlJyxcbiAgICAnY2FtUHJlbG9hZCcsXG4gICAgJ2NhbVByZWxvYWRlZCcsXG4gICAgJ2NhbVByZXBhcmVCYW5rJyxcbiAgICAnY2FtUHJlcGFyZURpcicsXG4gICAgJ2NhbVByZXBhcmVEaXZlJyxcbiAgICAnY2FtUHJlcGFyZUZvY3VzJyxcbiAgICAnY2FtUHJlcGFyZUZvdicsXG4gICAgJ2NhbVByZXBhcmVGb3ZSYW5nZScsXG4gICAgJ2NhbVByZXBhcmVQb3MnLFxuICAgICdjYW1QcmVwYXJlUmVsUG9zJyxcbiAgICAnY2FtUHJlcGFyZVRhcmdldCcsXG4gICAgJ2NhbVNldEJhbmsnLFxuICAgICdjYW1TZXREaXInLFxuICAgICdjYW1TZXREaXZlJyxcbiAgICAnY2FtU2V0Rm9jdXMnLFxuICAgICdjYW1TZXRGb3YnLFxuICAgICdjYW1TZXRGb3ZSYW5nZScsXG4gICAgJ2NhbVNldFBvcycsXG4gICAgJ2NhbVNldFJlbFBvcycsXG4gICAgJ2NhbVNldFRhcmdldCcsXG4gICAgJ2NhbVRhcmdldCcsXG4gICAgJ2NhbVVzZU5WRycsXG4gICAgJ2NhbkFkZCcsXG4gICAgJ2NhbkFkZEl0ZW1Ub0JhY2twYWNrJyxcbiAgICAnY2FuQWRkSXRlbVRvVW5pZm9ybScsXG4gICAgJ2NhbkFkZEl0ZW1Ub1Zlc3QnLFxuICAgICdjYW5jZWxTaW1wbGVUYXNrRGVzdGluYXRpb24nLFxuICAgICdjYW5EZXBsb3lXZWFwb24nLFxuICAgICdjYW5GaXJlJyxcbiAgICAnY2FuTW92ZScsXG4gICAgJ2NhblNsaW5nTG9hZCcsXG4gICAgJ2NhblN0YW5kJyxcbiAgICAnY2FuU3VzcGVuZCcsXG4gICAgJ2NhblRyaWdnZXJEeW5hbWljU2ltdWxhdGlvbicsXG4gICAgJ2NhblVubG9hZEluQ29tYmF0JyxcbiAgICAnY2FuVmVoaWNsZUNhcmdvJyxcbiAgICAnY2FwdGl2ZScsXG4gICAgJ2NhcHRpdmVOdW0nLFxuICAgICdjYkNoZWNrZWQnLFxuICAgICdjYlNldENoZWNrZWQnLFxuICAgICdjZWlsJyxcbiAgICAnY2hhbm5lbEVuYWJsZWQnLFxuICAgICdjaGVhdHNFbmFibGVkJyxcbiAgICAnY2hlY2tBSUZlYXR1cmUnLFxuICAgICdjaGVja1Zpc2liaWxpdHknLFxuICAgICdjbGFzc05hbWUnLFxuICAgICdjbGVhcjNERU5BdHRyaWJ1dGUnLFxuICAgICdjbGVhcjNERU5JbnZlbnRvcnknLFxuICAgICdjbGVhckFsbEl0ZW1zRnJvbUJhY2twYWNrJyxcbiAgICAnY2xlYXJCYWNrcGFja0NhcmdvJyxcbiAgICAnY2xlYXJCYWNrcGFja0NhcmdvR2xvYmFsJyxcbiAgICAnY2xlYXJGb3JjZXNSVEQnLFxuICAgICdjbGVhckdyb3VwSWNvbnMnLFxuICAgICdjbGVhckl0ZW1DYXJnbycsXG4gICAgJ2NsZWFySXRlbUNhcmdvR2xvYmFsJyxcbiAgICAnY2xlYXJJdGVtUG9vbCcsXG4gICAgJ2NsZWFyTWFnYXppbmVDYXJnbycsXG4gICAgJ2NsZWFyTWFnYXppbmVDYXJnb0dsb2JhbCcsXG4gICAgJ2NsZWFyTWFnYXppbmVQb29sJyxcbiAgICAnY2xlYXJPdmVybGF5JyxcbiAgICAnY2xlYXJSYWRpbycsXG4gICAgJ2NsZWFyV2VhcG9uQ2FyZ28nLFxuICAgICdjbGVhcldlYXBvbkNhcmdvR2xvYmFsJyxcbiAgICAnY2xlYXJXZWFwb25Qb29sJyxcbiAgICAnY2xpZW50T3duZXInLFxuICAgICdjbG9zZURpYWxvZycsXG4gICAgJ2Nsb3NlRGlzcGxheScsXG4gICAgJ2Nsb3NlT3ZlcmxheScsXG4gICAgJ2NvbGxhcHNlT2JqZWN0VHJlZScsXG4gICAgJ2NvbGxlY3QzREVOSGlzdG9yeScsXG4gICAgJ2NvbGxlY3RpdmVSVEQnLFxuICAgICdjb2xsaXNpb25EaXNhYmxlZFdpdGgnLFxuICAgICdjb21iYXRCZWhhdmlvdXInLFxuICAgICdjb21iYXRNb2RlJyxcbiAgICAnY29tbWFuZEFydGlsbGVyeUZpcmUnLFxuICAgICdjb21tYW5kQ2hhdCcsXG4gICAgJ2NvbW1hbmRlcicsXG4gICAgJ2NvbW1hbmRGaXJlJyxcbiAgICAnY29tbWFuZEZvbGxvdycsXG4gICAgJ2NvbW1hbmRGU00nLFxuICAgICdjb21tYW5kR2V0T3V0JyxcbiAgICAnY29tbWFuZGluZ01lbnUnLFxuICAgICdjb21tYW5kTW92ZScsXG4gICAgJ2NvbW1hbmRSYWRpbycsXG4gICAgJ2NvbW1hbmRTdG9wJyxcbiAgICAnY29tbWFuZFN1cHByZXNzaXZlRmlyZScsXG4gICAgJ2NvbW1hbmRUYXJnZXQnLFxuICAgICdjb21tYW5kV2F0Y2gnLFxuICAgICdjb21tZW50JyxcbiAgICAnY29tbWl0T3ZlcmxheScsXG4gICAgJ2NvbXBhdGlibGVJdGVtcycsXG4gICAgJ2NvbXBhdGlibGVNYWdhemluZXMnLFxuICAgICdjb21waWxlJyxcbiAgICAnY29tcGlsZUZpbmFsJyxcbiAgICAnY29tcGlsZVNjcmlwdCcsXG4gICAgJ2NvbXBsZXRlZEZTTScsXG4gICAgJ2NvbXBvc2VUZXh0JyxcbiAgICAnY29uZmlnQ2xhc3NlcycsXG4gICAgJ2NvbmZpZ0ZpbGUnLFxuICAgICdjb25maWdIaWVyYXJjaHknLFxuICAgICdjb25maWdOYW1lJyxcbiAgICAnY29uZmlnT2YnLFxuICAgICdjb25maWdQcm9wZXJ0aWVzJyxcbiAgICAnY29uZmlnU291cmNlQWRkb25MaXN0JyxcbiAgICAnY29uZmlnU291cmNlTW9kJyxcbiAgICAnY29uZmlnU291cmNlTW9kTGlzdCcsXG4gICAgJ2NvbmZpcm1TZW5zb3JUYXJnZXQnLFxuICAgICdjb25uZWN0VGVybWluYWxUb1VBVicsXG4gICAgJ2Nvbm5lY3RUb1NlcnZlcicsXG4gICAgJ2NvbnRyb2xzR3JvdXBDdHJsJyxcbiAgICAnY29udmVyc2F0aW9uRGlzYWJsZWQnLFxuICAgICdjb3B5RnJvbUNsaXBib2FyZCcsXG4gICAgJ2NvcHlUb0NsaXBib2FyZCcsXG4gICAgJ2NvcHlXYXlwb2ludHMnLFxuICAgICdjb3MnLFxuICAgICdjb3VudCcsXG4gICAgJ2NvdW50RW5lbXknLFxuICAgICdjb3VudEZyaWVuZGx5JyxcbiAgICAnY291bnRTaWRlJyxcbiAgICAnY291bnRUeXBlJyxcbiAgICAnY291bnRVbmtub3duJyxcbiAgICAnY3JlYXRlM0RFTkNvbXBvc2l0aW9uJyxcbiAgICAnY3JlYXRlM0RFTkVudGl0eScsXG4gICAgJ2NyZWF0ZUFnZW50JyxcbiAgICAnY3JlYXRlQ2VudGVyJyxcbiAgICAnY3JlYXRlRGlhbG9nJyxcbiAgICAnY3JlYXRlRGlhcnlMaW5rJyxcbiAgICAnY3JlYXRlRGlhcnlSZWNvcmQnLFxuICAgICdjcmVhdGVEaWFyeVN1YmplY3QnLFxuICAgICdjcmVhdGVEaXNwbGF5JyxcbiAgICAnY3JlYXRlR2VhckRpYWxvZycsXG4gICAgJ2NyZWF0ZUdyb3VwJyxcbiAgICAnY3JlYXRlR3VhcmRlZFBvaW50JyxcbiAgICAnY3JlYXRlSGFzaE1hcCcsXG4gICAgJ2NyZWF0ZUhhc2hNYXBGcm9tQXJyYXknLFxuICAgICdjcmVhdGVMb2NhdGlvbicsXG4gICAgJ2NyZWF0ZU1hcmtlcicsXG4gICAgJ2NyZWF0ZU1hcmtlckxvY2FsJyxcbiAgICAnY3JlYXRlTWVudScsXG4gICAgJ2NyZWF0ZU1pbmUnLFxuICAgICdjcmVhdGVNaXNzaW9uRGlzcGxheScsXG4gICAgJ2NyZWF0ZU1QQ2FtcGFpZ25EaXNwbGF5JyxcbiAgICAnY3JlYXRlU2ltcGxlT2JqZWN0JyxcbiAgICAnY3JlYXRlU2ltcGxlVGFzaycsXG4gICAgJ2NyZWF0ZVNpdGUnLFxuICAgICdjcmVhdGVTb3VuZFNvdXJjZScsXG4gICAgJ2NyZWF0ZVRhc2snLFxuICAgICdjcmVhdGVUZWFtJyxcbiAgICAnY3JlYXRlVHJpZ2dlcicsXG4gICAgJ2NyZWF0ZVVuaXQnLFxuICAgICdjcmVhdGVWZWhpY2xlJyxcbiAgICAnY3JlYXRlVmVoaWNsZUNyZXcnLFxuICAgICdjcmVhdGVWZWhpY2xlTG9jYWwnLFxuICAgICdjcmV3JyxcbiAgICAnY3RBZGRIZWFkZXInLFxuICAgICdjdEFkZFJvdycsXG4gICAgJ2N0Q2xlYXInLFxuICAgICdjdEN1clNlbCcsXG4gICAgJ2N0RGF0YScsXG4gICAgJ2N0RmluZEhlYWRlclJvd3MnLFxuICAgICdjdEZpbmRSb3dIZWFkZXInLFxuICAgICdjdEhlYWRlckNvbnRyb2xzJyxcbiAgICAnY3RIZWFkZXJDb3VudCcsXG4gICAgJ2N0UmVtb3ZlSGVhZGVycycsXG4gICAgJ2N0UmVtb3ZlUm93cycsXG4gICAgJ2N0cmxBY3RpdmF0ZScsXG4gICAgJ2N0cmxBZGRFdmVudEhhbmRsZXInLFxuICAgICdjdHJsQW5nbGUnLFxuICAgICdjdHJsQW5pbWF0ZU1vZGVsJyxcbiAgICAnY3RybEFuaW1hdGlvblBoYXNlTW9kZWwnLFxuICAgICdjdHJsQXQnLFxuICAgICdjdHJsQXV0b1Njcm9sbERlbGF5JyxcbiAgICAnY3RybEF1dG9TY3JvbGxSZXdpbmQnLFxuICAgICdjdHJsQXV0b1Njcm9sbFNwZWVkJyxcbiAgICAnY3RybEJhY2tncm91bmRDb2xvcicsXG4gICAgJ2N0cmxDaGVja2VkJyxcbiAgICAnY3RybENsYXNzTmFtZScsXG4gICAgJ2N0cmxDb21taXQnLFxuICAgICdjdHJsQ29tbWl0dGVkJyxcbiAgICAnY3RybENyZWF0ZScsXG4gICAgJ2N0cmxEZWxldGUnLFxuICAgICdjdHJsRW5hYmxlJyxcbiAgICAnY3RybEVuYWJsZWQnLFxuICAgICdjdHJsRmFkZScsXG4gICAgJ2N0cmxGb250SGVpZ2h0JyxcbiAgICAnY3RybEZvcmVncm91bmRDb2xvcicsXG4gICAgJ2N0cmxIVE1MTG9hZGVkJyxcbiAgICAnY3RybElEQycsXG4gICAgJ2N0cmxJREQnLFxuICAgICdjdHJsTWFwQW5pbUFkZCcsXG4gICAgJ2N0cmxNYXBBbmltQ2xlYXInLFxuICAgICdjdHJsTWFwQW5pbUNvbW1pdCcsXG4gICAgJ2N0cmxNYXBBbmltRG9uZScsXG4gICAgJ2N0cmxNYXBDdXJzb3InLFxuICAgICdjdHJsTWFwTW91c2VPdmVyJyxcbiAgICAnY3RybE1hcFBvc2l0aW9uJyxcbiAgICAnY3RybE1hcFNjYWxlJyxcbiAgICAnY3RybE1hcFNjcmVlblRvV29ybGQnLFxuICAgICdjdHJsTWFwU2V0UG9zaXRpb24nLFxuICAgICdjdHJsTWFwV29ybGRUb1NjcmVlbicsXG4gICAgJ2N0cmxNb2RlbCcsXG4gICAgJ2N0cmxNb2RlbERpckFuZFVwJyxcbiAgICAnY3RybE1vZGVsU2NhbGUnLFxuICAgICdjdHJsTW91c2VQb3NpdGlvbicsXG4gICAgJ2N0cmxQYXJlbnQnLFxuICAgICdjdHJsUGFyZW50Q29udHJvbHNHcm91cCcsXG4gICAgJ2N0cmxQb3NpdGlvbicsXG4gICAgJ2N0cmxSZW1vdmVBbGxFdmVudEhhbmRsZXJzJyxcbiAgICAnY3RybFJlbW92ZUV2ZW50SGFuZGxlcicsXG4gICAgJ2N0cmxTY2FsZScsXG4gICAgJ2N0cmxTY3JvbGxWYWx1ZXMnLFxuICAgICdjdHJsU2V0QWN0aXZlQ29sb3InLFxuICAgICdjdHJsU2V0QW5nbGUnLFxuICAgICdjdHJsU2V0QXV0b1Njcm9sbERlbGF5JyxcbiAgICAnY3RybFNldEF1dG9TY3JvbGxSZXdpbmQnLFxuICAgICdjdHJsU2V0QXV0b1Njcm9sbFNwZWVkJyxcbiAgICAnY3RybFNldEJhY2tncm91bmRDb2xvcicsXG4gICAgJ2N0cmxTZXRDaGVja2VkJyxcbiAgICAnY3RybFNldERpc2FibGVkQ29sb3InLFxuICAgICdjdHJsU2V0RXZlbnRIYW5kbGVyJyxcbiAgICAnY3RybFNldEZhZGUnLFxuICAgICdjdHJsU2V0Rm9jdXMnLFxuICAgICdjdHJsU2V0Rm9udCcsXG4gICAgJ2N0cmxTZXRGb250SDEnLFxuICAgICdjdHJsU2V0Rm9udEgxQicsXG4gICAgJ2N0cmxTZXRGb250SDInLFxuICAgICdjdHJsU2V0Rm9udEgyQicsXG4gICAgJ2N0cmxTZXRGb250SDMnLFxuICAgICdjdHJsU2V0Rm9udEgzQicsXG4gICAgJ2N0cmxTZXRGb250SDQnLFxuICAgICdjdHJsU2V0Rm9udEg0QicsXG4gICAgJ2N0cmxTZXRGb250SDUnLFxuICAgICdjdHJsU2V0Rm9udEg1QicsXG4gICAgJ2N0cmxTZXRGb250SDYnLFxuICAgICdjdHJsU2V0Rm9udEg2QicsXG4gICAgJ2N0cmxTZXRGb250SGVpZ2h0JyxcbiAgICAnY3RybFNldEZvbnRIZWlnaHRIMScsXG4gICAgJ2N0cmxTZXRGb250SGVpZ2h0SDInLFxuICAgICdjdHJsU2V0Rm9udEhlaWdodEgzJyxcbiAgICAnY3RybFNldEZvbnRIZWlnaHRINCcsXG4gICAgJ2N0cmxTZXRGb250SGVpZ2h0SDUnLFxuICAgICdjdHJsU2V0Rm9udEhlaWdodEg2JyxcbiAgICAnY3RybFNldEZvbnRIZWlnaHRTZWNvbmRhcnknLFxuICAgICdjdHJsU2V0Rm9udFAnLFxuICAgICdjdHJsU2V0Rm9udFBCJyxcbiAgICAnY3RybFNldEZvbnRTZWNvbmRhcnknLFxuICAgICdjdHJsU2V0Rm9yZWdyb3VuZENvbG9yJyxcbiAgICAnY3RybFNldE1vZGVsJyxcbiAgICAnY3RybFNldE1vZGVsRGlyQW5kVXAnLFxuICAgICdjdHJsU2V0TW9kZWxTY2FsZScsXG4gICAgJ2N0cmxTZXRNb3VzZVBvc2l0aW9uJyxcbiAgICAnY3RybFNldFBpeGVsUHJlY2lzaW9uJyxcbiAgICAnY3RybFNldFBvc2l0aW9uJyxcbiAgICAnY3RybFNldFBvc2l0aW9uSCcsXG4gICAgJ2N0cmxTZXRQb3NpdGlvblcnLFxuICAgICdjdHJsU2V0UG9zaXRpb25YJyxcbiAgICAnY3RybFNldFBvc2l0aW9uWScsXG4gICAgJ2N0cmxTZXRTY2FsZScsXG4gICAgJ2N0cmxTZXRTY3JvbGxWYWx1ZXMnLFxuICAgICdjdHJsU2V0U2hhZG93JyxcbiAgICAnY3RybFNldFN0cnVjdHVyZWRUZXh0JyxcbiAgICAnY3RybFNldFRleHQnLFxuICAgICdjdHJsU2V0VGV4dENvbG9yJyxcbiAgICAnY3RybFNldFRleHRDb2xvclNlY29uZGFyeScsXG4gICAgJ2N0cmxTZXRUZXh0U2Vjb25kYXJ5JyxcbiAgICAnY3RybFNldFRleHRTZWxlY3Rpb24nLFxuICAgICdjdHJsU2V0VG9vbHRpcCcsXG4gICAgJ2N0cmxTZXRUb29sdGlwQ29sb3JCb3gnLFxuICAgICdjdHJsU2V0VG9vbHRpcENvbG9yU2hhZGUnLFxuICAgICdjdHJsU2V0VG9vbHRpcENvbG9yVGV4dCcsXG4gICAgJ2N0cmxTZXRUb29sdGlwTWF4V2lkdGgnLFxuICAgICdjdHJsU2V0VVJMJyxcbiAgICAnY3RybFNldFVSTE92ZXJsYXlNb2RlJyxcbiAgICAnY3RybFNoYWRvdycsXG4gICAgJ2N0cmxTaG93JyxcbiAgICAnY3RybFNob3duJyxcbiAgICAnY3RybFN0eWxlJyxcbiAgICAnY3RybFRleHQnLFxuICAgICdjdHJsVGV4dENvbG9yJyxcbiAgICAnY3RybFRleHRIZWlnaHQnLFxuICAgICdjdHJsVGV4dFNlY29uZGFyeScsXG4gICAgJ2N0cmxUZXh0U2VsZWN0aW9uJyxcbiAgICAnY3RybFRleHRXaWR0aCcsXG4gICAgJ2N0cmxUb29sdGlwJyxcbiAgICAnY3RybFR5cGUnLFxuICAgICdjdHJsVVJMJyxcbiAgICAnY3RybFVSTE92ZXJsYXlNb2RlJyxcbiAgICAnY3RybFZpc2libGUnLFxuICAgICdjdFJvd0NvbnRyb2xzJyxcbiAgICAnY3RSb3dDb3VudCcsXG4gICAgJ2N0U2V0Q3VyU2VsJyxcbiAgICAnY3RTZXREYXRhJyxcbiAgICAnY3RTZXRIZWFkZXJUZW1wbGF0ZScsXG4gICAgJ2N0U2V0Um93VGVtcGxhdGUnLFxuICAgICdjdFNldFZhbHVlJyxcbiAgICAnY3RWYWx1ZScsXG4gICAgJ2N1cmF0b3JBZGRvbnMnLFxuICAgICdjdXJhdG9yQ2FtZXJhJyxcbiAgICAnY3VyYXRvckNhbWVyYUFyZWEnLFxuICAgICdjdXJhdG9yQ2FtZXJhQXJlYUNlaWxpbmcnLFxuICAgICdjdXJhdG9yQ29lZicsXG4gICAgJ2N1cmF0b3JFZGl0YWJsZU9iamVjdHMnLFxuICAgICdjdXJhdG9yRWRpdGluZ0FyZWEnLFxuICAgICdjdXJhdG9yRWRpdGluZ0FyZWFUeXBlJyxcbiAgICAnY3VyYXRvck1vdXNlT3ZlcicsXG4gICAgJ2N1cmF0b3JQb2ludHMnLFxuICAgICdjdXJhdG9yUmVnaXN0ZXJlZE9iamVjdHMnLFxuICAgICdjdXJhdG9yU2VsZWN0ZWQnLFxuICAgICdjdXJhdG9yV2F5cG9pbnRDb3N0JyxcbiAgICAnY3VycmVudDNERU5PcGVyYXRpb24nLFxuICAgICdjdXJyZW50Q2hhbm5lbCcsXG4gICAgJ2N1cnJlbnRDb21tYW5kJyxcbiAgICAnY3VycmVudE1hZ2F6aW5lJyxcbiAgICAnY3VycmVudE1hZ2F6aW5lRGV0YWlsJyxcbiAgICAnY3VycmVudE1hZ2F6aW5lRGV0YWlsVHVycmV0JyxcbiAgICAnY3VycmVudE1hZ2F6aW5lVHVycmV0JyxcbiAgICAnY3VycmVudE11enpsZScsXG4gICAgJ2N1cnJlbnROYW1lc3BhY2UnLFxuICAgICdjdXJyZW50UGlsb3QnLFxuICAgICdjdXJyZW50VGFzaycsXG4gICAgJ2N1cnJlbnRUYXNrcycsXG4gICAgJ2N1cnJlbnRUaHJvd2FibGUnLFxuICAgICdjdXJyZW50VmlzaW9uTW9kZScsXG4gICAgJ2N1cnJlbnRXYXlwb2ludCcsXG4gICAgJ2N1cnJlbnRXZWFwb24nLFxuICAgICdjdXJyZW50V2VhcG9uTW9kZScsXG4gICAgJ2N1cnJlbnRXZWFwb25UdXJyZXQnLFxuICAgICdjdXJyZW50WmVyb2luZycsXG4gICAgJ2N1cnNvck9iamVjdCcsXG4gICAgJ2N1cnNvclRhcmdldCcsXG4gICAgJ2N1c3RvbUNoYXQnLFxuICAgICdjdXN0b21SYWRpbycsXG4gICAgJ2N1c3RvbVdheXBvaW50UG9zaXRpb24nLFxuICAgICdjdXRGYWRlT3V0JyxcbiAgICAnY3V0T2JqJyxcbiAgICAnY3V0UnNjJyxcbiAgICAnY3V0VGV4dCcsXG4gICAgJ2RhbWFnZScsXG4gICAgJ2RhdGUnLFxuICAgICdkYXRlVG9OdW1iZXInLFxuICAgICdkYXlUaW1lJyxcbiAgICAnZGVBY3RpdmF0ZUtleScsXG4gICAgJ2RlYnJpZWZpbmdUZXh0JyxcbiAgICAnZGVidWdGU00nLFxuICAgICdkZWJ1Z0xvZycsXG4gICAgJ2RlY2F5R3JhcGhWYWx1ZXMnLFxuICAgICdkZWcnLFxuICAgICdkZWxldGUzREVORW50aXRpZXMnLFxuICAgICdkZWxldGVBdCcsXG4gICAgJ2RlbGV0ZUNlbnRlcicsXG4gICAgJ2RlbGV0ZUNvbGxlY3Rpb24nLFxuICAgICdkZWxldGVFZGl0b3JPYmplY3QnLFxuICAgICdkZWxldGVHcm91cCcsXG4gICAgJ2RlbGV0ZUdyb3VwV2hlbkVtcHR5JyxcbiAgICAnZGVsZXRlSWRlbnRpdHknLFxuICAgICdkZWxldGVMb2NhdGlvbicsXG4gICAgJ2RlbGV0ZU1hcmtlcicsXG4gICAgJ2RlbGV0ZU1hcmtlckxvY2FsJyxcbiAgICAnZGVsZXRlUmFuZ2UnLFxuICAgICdkZWxldGVSZXNvdXJjZXMnLFxuICAgICdkZWxldGVTaXRlJyxcbiAgICAnZGVsZXRlU3RhdHVzJyxcbiAgICAnZGVsZXRlVGVhbScsXG4gICAgJ2RlbGV0ZVZlaGljbGUnLFxuICAgICdkZWxldGVWZWhpY2xlQ3JldycsXG4gICAgJ2RlbGV0ZVdheXBvaW50JyxcbiAgICAnZGV0YWNoJyxcbiAgICAnZGV0ZWN0ZWRNaW5lcycsXG4gICAgJ2RpYWdfYWN0aXZlTWlzc2lvbkZTTXMnLFxuICAgICdkaWFnX2FjdGl2ZVNjcmlwdHMnLFxuICAgICdkaWFnX2FjdGl2ZVNRRlNjcmlwdHMnLFxuICAgICdkaWFnX2FjdGl2ZVNRU1NjcmlwdHMnLFxuICAgICdkaWFnX2FsbE1pc3Npb25FdmVudEhhbmRsZXJzJyxcbiAgICAnZGlhZ19jYXB0dXJlRnJhbWUnLFxuICAgICdkaWFnX2NhcHR1cmVGcmFtZVRvRmlsZScsXG4gICAgJ2RpYWdfY2FwdHVyZVNsb3dGcmFtZScsXG4gICAgJ2RpYWdfY29kZVBlcmZvcm1hbmNlJyxcbiAgICAnZGlhZ19kZWx0YVRpbWUnLFxuICAgICdkaWFnX2RyYXdtb2RlJyxcbiAgICAnZGlhZ19kdW1wQ2FsbHRyYWNlVG9Mb2cnLFxuICAgICdkaWFnX2R1bXBTY3JpcHRBc3NlbWJseScsXG4gICAgJ2RpYWdfZHVtcFRlcnJhaW5TeW50aCcsXG4gICAgJ2RpYWdfZHluYW1pY1NpbXVsYXRpb25FbmQnLFxuICAgICdkaWFnX2VuYWJsZScsXG4gICAgJ2RpYWdfZW5hYmxlZCcsXG4gICAgJ2RpYWdfZXhwb3J0Q29uZmlnJyxcbiAgICAnZGlhZ19leHBvcnRUZXJyYWluU1ZHJyxcbiAgICAnZGlhZ19mcHMnLFxuICAgICdkaWFnX2Zwc21pbicsXG4gICAgJ2RpYWdfZnJhbWVubycsXG4gICAgJ2RpYWdfZ2V0VGVycmFpblNlZ21lbnRPZmZzZXQnLFxuICAgICdkaWFnX2xpZ2h0TmV3TG9hZCcsXG4gICAgJ2RpYWdfbGlzdCcsXG4gICAgJ2RpYWdfbG9jYWxpemVkJyxcbiAgICAnZGlhZ19sb2cnLFxuICAgICdkaWFnX2xvZ1Nsb3dGcmFtZScsXG4gICAgJ2RpYWdfbWVyZ2VDb25maWdGaWxlJyxcbiAgICAnZGlhZ19yZWNvcmRUdXJyZXRMaW1pdHMnLFxuICAgICdkaWFnX3Jlc2V0RlNNJyxcbiAgICAnZGlhZ19yZXNldHNoYXBlcycsXG4gICAgJ2RpYWdfc2NvcGUnLFxuICAgICdkaWFnX3NldExpZ2h0TmV3JyxcbiAgICAnZGlhZ19zdGFja3RyYWNlJyxcbiAgICAnZGlhZ190aWNrVGltZScsXG4gICAgJ2RpYWdfdG9nZ2xlJyxcbiAgICAnZGlhbG9nJyxcbiAgICAnZGlhcnlTdWJqZWN0RXhpc3RzJyxcbiAgICAnZGlkSklQJyxcbiAgICAnZGlkSklQT3duZXInLFxuICAgICdkaWZmaWN1bHR5JyxcbiAgICAnZGlmZmljdWx0eUVuYWJsZWQnLFxuICAgICdkaWZmaWN1bHR5RW5hYmxlZFJURCcsXG4gICAgJ2RpZmZpY3VsdHlPcHRpb24nLFxuICAgICdkaXJlY3Rpb24nLFxuICAgICdkaXJlY3Rpb25TdGFiaWxpemF0aW9uRW5hYmxlZCcsXG4gICAgJ2RpcmVjdFNheScsXG4gICAgJ2Rpc2FibGVBSScsXG4gICAgJ2Rpc2FibGVCcmFrZXMnLFxuICAgICdkaXNhYmxlQ29sbGlzaW9uV2l0aCcsXG4gICAgJ2Rpc2FibGVDb252ZXJzYXRpb24nLFxuICAgICdkaXNhYmxlRGVicmllZmluZ1N0YXRzJyxcbiAgICAnZGlzYWJsZU1hcEluZGljYXRvcnMnLFxuICAgICdkaXNhYmxlTlZHRXF1aXBtZW50JyxcbiAgICAnZGlzYWJsZVJlbW90ZVNlbnNvcnMnLFxuICAgICdkaXNhYmxlU2VyaWFsaXphdGlvbicsXG4gICAgJ2Rpc2FibGVUSUVxdWlwbWVudCcsXG4gICAgJ2Rpc2FibGVVQVZDb25uZWN0YWJpbGl0eScsXG4gICAgJ2Rpc2FibGVVc2VySW5wdXQnLFxuICAgICdkaXNwbGF5QWRkRXZlbnRIYW5kbGVyJyxcbiAgICAnZGlzcGxheUNoaWxkJyxcbiAgICAnZGlzcGxheUN0cmwnLFxuICAgICdkaXNwbGF5UGFyZW50JyxcbiAgICAnZGlzcGxheVJlbW92ZUFsbEV2ZW50SGFuZGxlcnMnLFxuICAgICdkaXNwbGF5UmVtb3ZlRXZlbnRIYW5kbGVyJyxcbiAgICAnZGlzcGxheVNldEV2ZW50SGFuZGxlcicsXG4gICAgJ2Rpc3BsYXlVbmlxdWVOYW1lJyxcbiAgICAnZGlzcGxheVVwZGF0ZScsXG4gICAgJ2Rpc3NvbHZlVGVhbScsXG4gICAgJ2Rpc3RhbmNlJyxcbiAgICAnZGlzdGFuY2UyRCcsXG4gICAgJ2Rpc3RhbmNlU3FyJyxcbiAgICAnZGlzdHJpYnV0aW9uUmVnaW9uJyxcbiAgICAnZG8zREVOQWN0aW9uJyxcbiAgICAnZG9BcnRpbGxlcnlGaXJlJyxcbiAgICAnZG9GaXJlJyxcbiAgICAnZG9Gb2xsb3cnLFxuICAgICdkb0ZTTScsXG4gICAgJ2RvR2V0T3V0JyxcbiAgICAnZG9Nb3ZlJyxcbiAgICAnZG9vclBoYXNlJyxcbiAgICAnZG9TdG9wJyxcbiAgICAnZG9TdXBwcmVzc2l2ZUZpcmUnLFxuICAgICdkb1RhcmdldCcsXG4gICAgJ2RvV2F0Y2gnLFxuICAgICdkcmF3QXJyb3cnLFxuICAgICdkcmF3RWxsaXBzZScsXG4gICAgJ2RyYXdJY29uJyxcbiAgICAnZHJhd0ljb24zRCcsXG4gICAgJ2RyYXdMYXNlcicsXG4gICAgJ2RyYXdMaW5lJyxcbiAgICAnZHJhd0xpbmUzRCcsXG4gICAgJ2RyYXdMaW5rJyxcbiAgICAnZHJhd0xvY2F0aW9uJyxcbiAgICAnZHJhd1BvbHlnb24nLFxuICAgICdkcmF3UmVjdGFuZ2xlJyxcbiAgICAnZHJhd1RyaWFuZ2xlJyxcbiAgICAnZHJpdmVyJyxcbiAgICAnZHJvcCcsXG4gICAgJ2R5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2UnLFxuICAgICdkeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZicsXG4gICAgJ2R5bmFtaWNTaW11bGF0aW9uRW5hYmxlZCcsXG4gICAgJ2R5bmFtaWNTaW11bGF0aW9uU3lzdGVtRW5hYmxlZCcsXG4gICAgJ2VjaG8nLFxuICAgICdlZGl0M0RFTk1pc3Npb25BdHRyaWJ1dGVzJyxcbiAgICAnZWRpdE9iamVjdCcsXG4gICAgJ2VkaXRvclNldEV2ZW50SGFuZGxlcicsXG4gICAgJ2VmZmVjdGl2ZUNvbW1hbmRlcicsXG4gICAgJ2VsZXZhdGVQZXJpc2NvcGUnLFxuICAgICdlbXB0eVBvc2l0aW9ucycsXG4gICAgJ2VuYWJsZUFJJyxcbiAgICAnZW5hYmxlQUlGZWF0dXJlJyxcbiAgICAnZW5hYmxlQWltUHJlY2lzaW9uJyxcbiAgICAnZW5hYmxlQXR0YWNrJyxcbiAgICAnZW5hYmxlQXVkaW9GZWF0dXJlJyxcbiAgICAnZW5hYmxlQXV0b1N0YXJ0VXBSVEQnLFxuICAgICdlbmFibGVBdXRvVHJpbVJURCcsXG4gICAgJ2VuYWJsZUNhbVNoYWtlJyxcbiAgICAnZW5hYmxlQ2F1c3RpY3MnLFxuICAgICdlbmFibGVDaGFubmVsJyxcbiAgICAnZW5hYmxlQ29sbGlzaW9uV2l0aCcsXG4gICAgJ2VuYWJsZUNvcGlsb3QnLFxuICAgICdlbmFibGVEZWJyaWVmaW5nU3RhdHMnLFxuICAgICdlbmFibGVEaWFnTGVnZW5kJyxcbiAgICAnZW5hYmxlRGlyZWN0aW9uU3RhYmlsaXphdGlvbicsXG4gICAgJ2VuYWJsZUR5bmFtaWNTaW11bGF0aW9uJyxcbiAgICAnZW5hYmxlRHluYW1pY1NpbXVsYXRpb25TeXN0ZW0nLFxuICAgICdlbmFibGVFbmREaWFsb2cnLFxuICAgICdlbmFibGVFbmdpbmVBcnRpbGxlcnknLFxuICAgICdlbmFibGVFbnZpcm9ubWVudCcsXG4gICAgJ2VuYWJsZUZhdGlndWUnLFxuICAgICdlbmFibGVHdW5MaWdodHMnLFxuICAgICdlbmFibGVJbmZvUGFuZWxDb21wb25lbnQnLFxuICAgICdlbmFibGVJUkxhc2VycycsXG4gICAgJ2VuYWJsZU1pbWljcycsXG4gICAgJ2VuYWJsZVBlcnNvblR1cnJldCcsXG4gICAgJ2VuYWJsZVJhZGlvJyxcbiAgICAnZW5hYmxlUmVsb2FkJyxcbiAgICAnZW5hYmxlUm9wZUF0dGFjaCcsXG4gICAgJ2VuYWJsZVNhdE5vcm1hbE9uRGV0YWlsJyxcbiAgICAnZW5hYmxlU2F2aW5nJyxcbiAgICAnZW5hYmxlU2VudGVuY2VzJyxcbiAgICAnZW5hYmxlU2ltdWxhdGlvbicsXG4gICAgJ2VuYWJsZVNpbXVsYXRpb25HbG9iYWwnLFxuICAgICdlbmFibGVTdGFtaW5hJyxcbiAgICAnZW5hYmxlU3RyZXNzRGFtYWdlJyxcbiAgICAnZW5hYmxlVGVhbVN3aXRjaCcsXG4gICAgJ2VuYWJsZVRyYWZmaWMnLFxuICAgICdlbmFibGVVQVZDb25uZWN0YWJpbGl0eScsXG4gICAgJ2VuYWJsZVVBVldheXBvaW50cycsXG4gICAgJ2VuYWJsZVZlaGljbGVDYXJnbycsXG4gICAgJ2VuYWJsZVZlaGljbGVTZW5zb3InLFxuICAgICdlbmFibGVXZWFwb25EaXNhc3NlbWJseScsXG4gICAgJ2VuZExvYWRpbmdTY3JlZW4nLFxuICAgICdlbmRNaXNzaW9uJyxcbiAgICAnZW5naW5lT24nLFxuICAgICdlbmdpbmVzSXNPblJURCcsXG4gICAgJ2VuZ2luZXNQb3dlclJURCcsXG4gICAgJ2VuZ2luZXNScG1SVEQnLFxuICAgICdlbmdpbmVzVG9ycXVlUlREJyxcbiAgICAnZW50aXRpZXMnLFxuICAgICdlbnZpcm9ubWVudEVuYWJsZWQnLFxuICAgICdlbnZpcm9ubWVudFZvbHVtZScsXG4gICAgJ2VxdWlwbWVudERpc2FibGVkJyxcbiAgICAnZXN0aW1hdGVkRW5kU2VydmVyVGltZScsXG4gICAgJ2VzdGltYXRlZFRpbWVMZWZ0JyxcbiAgICAnZXZhbE9iamVjdEFyZ3VtZW50JyxcbiAgICAnZXZlcnlCYWNrcGFjaycsXG4gICAgJ2V2ZXJ5Q29udGFpbmVyJyxcbiAgICAnZXhlYycsXG4gICAgJ2V4ZWNFZGl0b3JTY3JpcHQnLFxuICAgICdleGVjRlNNJyxcbiAgICAnZXhlY1ZNJyxcbiAgICAnZXhwJyxcbiAgICAnZXhwZWN0ZWREZXN0aW5hdGlvbicsXG4gICAgJ2V4cG9ydEpJUE1lc3NhZ2VzJyxcbiAgICAnZXllRGlyZWN0aW9uJyxcbiAgICAnZXllUG9zJyxcbiAgICAnZmFjZScsXG4gICAgJ2ZhY3Rpb24nLFxuICAgICdmYWRlRW52aXJvbm1lbnQnLFxuICAgICdmYWRlTXVzaWMnLFxuICAgICdmYWRlUmFkaW8nLFxuICAgICdmYWRlU291bmQnLFxuICAgICdmYWRlU3BlZWNoJyxcbiAgICAnZmFpbE1pc3Npb24nLFxuICAgICdmaWxlRXhpc3RzJyxcbiAgICAnZmlsbFdlYXBvbnNGcm9tUG9vbCcsXG4gICAgJ2ZpbmQnLFxuICAgICdmaW5kQW55JyxcbiAgICAnZmluZENvdmVyJyxcbiAgICAnZmluZERpc3BsYXknLFxuICAgICdmaW5kRWRpdG9yT2JqZWN0JyxcbiAgICAnZmluZEVtcHR5UG9zaXRpb24nLFxuICAgICdmaW5kRW1wdHlQb3NpdGlvblJlYWR5JyxcbiAgICAnZmluZElmJyxcbiAgICAnZmluZE5lYXJlc3RFbmVteScsXG4gICAgJ2ZpbmlzaE1pc3Npb25Jbml0JyxcbiAgICAnZmluaXRlJyxcbiAgICAnZmlyZScsXG4gICAgJ2ZpcmVBdFRhcmdldCcsXG4gICAgJ2ZpcnN0QmFja3BhY2snLFxuICAgICdmbGFnJyxcbiAgICAnZmxhZ0FuaW1hdGlvblBoYXNlJyxcbiAgICAnZmxhZ093bmVyJyxcbiAgICAnZmxhZ1NpZGUnLFxuICAgICdmbGFnVGV4dHVyZScsXG4gICAgJ2ZsYXR0ZW4nLFxuICAgICdmbGVlaW5nJyxcbiAgICAnZmxvb3InLFxuICAgICdmbHlJbkhlaWdodCcsXG4gICAgJ2ZseUluSGVpZ2h0QVNMJyxcbiAgICAnZm9jdXNlZEN0cmwnLFxuICAgICdmb2cnLFxuICAgICdmb2dGb3JlY2FzdCcsXG4gICAgJ2ZvZ1BhcmFtcycsXG4gICAgJ2ZvcmNlQWRkVW5pZm9ybScsXG4gICAgJ2ZvcmNlQXRQb3NpdGlvblJURCcsXG4gICAgJ2ZvcmNlQ2FkZXREaWZmaWN1bHR5JyxcbiAgICAnZm9yY2VkTWFwJyxcbiAgICAnZm9yY2VFbmQnLFxuICAgICdmb3JjZUZsYWdUZXh0dXJlJyxcbiAgICAnZm9yY2VGb2xsb3dSb2FkJyxcbiAgICAnZm9yY2VHZW5lcmF0b3JSVEQnLFxuICAgICdmb3JjZU1hcCcsXG4gICAgJ2ZvcmNlUmVzcGF3bicsXG4gICAgJ2ZvcmNlU3BlZWQnLFxuICAgICdmb3JjZVVuaWNvZGUnLFxuICAgICdmb3JjZVdhbGsnLFxuICAgICdmb3JjZVdlYXBvbkZpcmUnLFxuICAgICdmb3JjZVdlYXRoZXJDaGFuZ2UnLFxuICAgICdmb3JFYWNoTWVtYmVyJyxcbiAgICAnZm9yRWFjaE1lbWJlckFnZW50JyxcbiAgICAnZm9yRWFjaE1lbWJlclRlYW0nLFxuICAgICdmb3JnZXRUYXJnZXQnLFxuICAgICdmb3JtYXQnLFxuICAgICdmb3JtYXRpb24nLFxuICAgICdmb3JtYXRpb25EaXJlY3Rpb24nLFxuICAgICdmb3JtYXRpb25MZWFkZXInLFxuICAgICdmb3JtYXRpb25NZW1iZXJzJyxcbiAgICAnZm9ybWF0aW9uUG9zaXRpb24nLFxuICAgICdmb3JtYXRpb25UYXNrJyxcbiAgICAnZm9ybWF0VGV4dCcsXG4gICAgJ2Zvcm1MZWFkZXInLFxuICAgICdmcmVlRXh0ZW5zaW9uJyxcbiAgICAnZnJlZUxvb2snLFxuICAgICdmcm9tRWRpdG9yJyxcbiAgICAnZnVlbCcsXG4gICAgJ2Z1bGxDcmV3JyxcbiAgICAnZ2VhcklEQ0FtbW9Db3VudCcsXG4gICAgJ2dlYXJTbG90QW1tb0NvdW50JyxcbiAgICAnZ2VhclNsb3REYXRhJyxcbiAgICAnZ2VzdHVyZVN0YXRlJyxcbiAgICAnZ2V0JyxcbiAgICAnZ2V0M0RFTkFjdGlvblN0YXRlJyxcbiAgICAnZ2V0M0RFTkF0dHJpYnV0ZScsXG4gICAgJ2dldDNERU5DYW1lcmEnLFxuICAgICdnZXQzREVOQ29ubmVjdGlvbnMnLFxuICAgICdnZXQzREVORW50aXR5JyxcbiAgICAnZ2V0M0RFTkVudGl0eUlEJyxcbiAgICAnZ2V0M0RFTkdyaWQnLFxuICAgICdnZXQzREVOSWNvbnNWaXNpYmxlJyxcbiAgICAnZ2V0M0RFTkxheWVyRW50aXRpZXMnLFxuICAgICdnZXQzREVOTGluZXNWaXNpYmxlJyxcbiAgICAnZ2V0M0RFTk1pc3Npb25BdHRyaWJ1dGUnLFxuICAgICdnZXQzREVOTW91c2VPdmVyJyxcbiAgICAnZ2V0M0RFTlNlbGVjdGVkJyxcbiAgICAnZ2V0QWltaW5nQ29lZicsXG4gICAgJ2dldEFsbEVudjNEU291bmRDb250cm9sbGVycycsXG4gICAgJ2dldEFsbEVudlNvdW5kQ29udHJvbGxlcnMnLFxuICAgICdnZXRBbGxIaXRQb2ludHNEYW1hZ2UnLFxuICAgICdnZXRBbGxPd25lZE1pbmVzJyxcbiAgICAnZ2V0QWxsUHlsb25zSW5mbycsXG4gICAgJ2dldEFsbFNvdW5kQ29udHJvbGxlcnMnLFxuICAgICdnZXRBbGxVbml0VHJhaXRzJyxcbiAgICAnZ2V0QW1tb0NhcmdvJyxcbiAgICAnZ2V0QW5pbUFpbVByZWNpc2lvbicsXG4gICAgJ2dldEFuaW1TcGVlZENvZWYnLFxuICAgICdnZXRBcnJheScsXG4gICAgJ2dldEFydGlsbGVyeUFtbW8nLFxuICAgICdnZXRBcnRpbGxlcnlDb21wdXRlclNldHRpbmdzJyxcbiAgICAnZ2V0QXJ0aWxsZXJ5RVRBJyxcbiAgICAnZ2V0QXNzZXRETENJbmZvJyxcbiAgICAnZ2V0QXNzaWduZWRDdXJhdG9yTG9naWMnLFxuICAgICdnZXRBc3NpZ25lZEN1cmF0b3JVbml0JyxcbiAgICAnZ2V0QXR0YWNrVGFyZ2V0JyxcbiAgICAnZ2V0QXVkaW9PcHRpb25Wb2x1bWVzJyxcbiAgICAnZ2V0QmFja3BhY2tDYXJnbycsXG4gICAgJ2dldEJsZWVkaW5nUmVtYWluaW5nJyxcbiAgICAnZ2V0QnVybmluZ1ZhbHVlJyxcbiAgICAnZ2V0Q2FsY3VsYXRlUGxheWVyVmlzaWJpbGl0eUJ5RnJpZW5kbHknLFxuICAgICdnZXRDYW1lcmFWaWV3RGlyZWN0aW9uJyxcbiAgICAnZ2V0Q2FyZ29JbmRleCcsXG4gICAgJ2dldENlbnRlck9mTWFzcycsXG4gICAgJ2dldENsaWVudFN0YXRlJyxcbiAgICAnZ2V0Q2xpZW50U3RhdGVOdW1iZXInLFxuICAgICdnZXRDb21wYXRpYmxlUHlsb25NYWdhemluZXMnLFxuICAgICdnZXRDb25uZWN0ZWRVQVYnLFxuICAgICdnZXRDb25uZWN0ZWRVQVZVbml0JyxcbiAgICAnZ2V0Q29udGFpbmVyTWF4TG9hZCcsXG4gICAgJ2dldENvcnBzZScsXG4gICAgJ2dldENydWlzZUNvbnRyb2wnLFxuICAgICdnZXRDdXJzb3JPYmplY3RQYXJhbXMnLFxuICAgICdnZXRDdXN0b21BaW1Db2VmJyxcbiAgICAnZ2V0Q3VzdG9tU291bmRDb250cm9sbGVyJyxcbiAgICAnZ2V0Q3VzdG9tU291bmRDb250cm9sbGVyQ291bnQnLFxuICAgICdnZXREYW1tYWdlJyxcbiAgICAnZ2V0RGVicmllZmluZ1RleHQnLFxuICAgICdnZXREZXNjcmlwdGlvbicsXG4gICAgJ2dldERpcicsXG4gICAgJ2dldERpclZpc3VhbCcsXG4gICAgJ2dldERpdmVyU3RhdGUnLFxuICAgICdnZXRETENBc3NldHNVc2FnZScsXG4gICAgJ2dldERMQ0Fzc2V0c1VzYWdlQnlOYW1lJyxcbiAgICAnZ2V0RExDcycsXG4gICAgJ2dldERMQ1VzYWdlVGltZScsXG4gICAgJ2dldEVkaXRvckNhbWVyYScsXG4gICAgJ2dldEVkaXRvck1vZGUnLFxuICAgICdnZXRFZGl0b3JPYmplY3RTY29wZScsXG4gICAgJ2dldEVsZXZhdGlvbk9mZnNldCcsXG4gICAgJ2dldEVuZ2luZVRhcmdldFJQTVJURCcsXG4gICAgJ2dldEVudjNEU291bmRDb250cm9sbGVyJyxcbiAgICAnZ2V0RW52U291bmRDb250cm9sbGVyJyxcbiAgICAnZ2V0RXZlbnRIYW5kbGVySW5mbycsXG4gICAgJ2dldEZhdGlndWUnLFxuICAgICdnZXRGaWVsZE1hbnVhbFN0YXJ0UGFnZScsXG4gICAgJ2dldEZvcmNlZEZsYWdUZXh0dXJlJyxcbiAgICAnZ2V0Rm9yY2VkU3BlZWQnLFxuICAgICdnZXRGcmllbmQnLFxuICAgICdnZXRGU01WYXJpYWJsZScsXG4gICAgJ2dldEZ1ZWxDYXJnbycsXG4gICAgJ2dldEdyYXBoVmFsdWVzJyxcbiAgICAnZ2V0R3JvdXBJY29uJyxcbiAgICAnZ2V0R3JvdXBJY29uUGFyYW1zJyxcbiAgICAnZ2V0R3JvdXBJY29ucycsXG4gICAgJ2dldEhpZGVGcm9tJyxcbiAgICAnZ2V0SGl0JyxcbiAgICAnZ2V0SGl0SW5kZXgnLFxuICAgICdnZXRIaXRQb2ludERhbWFnZScsXG4gICAgJ2dldEl0ZW1DYXJnbycsXG4gICAgJ2dldExpZ2h0aW5nJyxcbiAgICAnZ2V0TGlnaHRpbmdBdCcsXG4gICAgJ2dldExvYWRlZE1vZHNJbmZvJyxcbiAgICAnZ2V0TWFnYXppbmVDYXJnbycsXG4gICAgJ2dldE1hcmtlckNvbG9yJyxcbiAgICAnZ2V0TWFya2VyUG9zJyxcbiAgICAnZ2V0TWFya2VyU2l6ZScsXG4gICAgJ2dldE1hcmtlclR5cGUnLFxuICAgICdnZXRNYXNzJyxcbiAgICAnZ2V0TWlzc2lvbkNvbmZpZycsXG4gICAgJ2dldE1pc3Npb25Db25maWdWYWx1ZScsXG4gICAgJ2dldE1pc3Npb25ETENzJyxcbiAgICAnZ2V0TWlzc2lvbkxheWVyRW50aXRpZXMnLFxuICAgICdnZXRNaXNzaW9uTGF5ZXJzJyxcbiAgICAnZ2V0TWlzc2lvblBhdGgnLFxuICAgICdnZXRNb2RlbEluZm8nLFxuICAgICdnZXRNb3VzZVBvc2l0aW9uJyxcbiAgICAnZ2V0TXVzaWNQbGF5ZWRUaW1lJyxcbiAgICAnZ2V0TnVtYmVyJyxcbiAgICAnZ2V0T2JqZWN0QXJndW1lbnQnLFxuICAgICdnZXRPYmplY3RDaGlsZHJlbicsXG4gICAgJ2dldE9iamVjdERMQycsXG4gICAgJ2dldE9iamVjdEZPVicsXG4gICAgJ2dldE9iamVjdElEJyxcbiAgICAnZ2V0T2JqZWN0TWF0ZXJpYWxzJyxcbiAgICAnZ2V0T2JqZWN0UHJveHknLFxuICAgICdnZXRPYmplY3RTY2FsZScsXG4gICAgJ2dldE9iamVjdFRleHR1cmVzJyxcbiAgICAnZ2V0T2JqZWN0VHlwZScsXG4gICAgJ2dldE9iamVjdFZpZXdEaXN0YW5jZScsXG4gICAgJ2dldE9wdGljc01vZGUnLFxuICAgICdnZXRPckRlZmF1bHQnLFxuICAgICdnZXRPckRlZmF1bHRDYWxsJyxcbiAgICAnZ2V0T3h5Z2VuUmVtYWluaW5nJyxcbiAgICAnZ2V0UGVyc29uVXNlZERMQ3MnLFxuICAgICdnZXRQaWxvdENhbWVyYURpcmVjdGlvbicsXG4gICAgJ2dldFBpbG90Q2FtZXJhUG9zaXRpb24nLFxuICAgICdnZXRQaWxvdENhbWVyYVJvdGF0aW9uJyxcbiAgICAnZ2V0UGlsb3RDYW1lcmFUYXJnZXQnLFxuICAgICdnZXRQaVBWaWV3RGlzdGFuY2UnLFxuICAgICdnZXRQbGF0ZU51bWJlcicsXG4gICAgJ2dldFBsYXllckNoYW5uZWwnLFxuICAgICdnZXRQbGF5ZXJJRCcsXG4gICAgJ2dldFBsYXllclNjb3JlcycsXG4gICAgJ2dldFBsYXllclVJRCcsXG4gICAgJ2dldFBsYXllclZvTlZvbHVtZScsXG4gICAgJ2dldFBvcycsXG4gICAgJ2dldFBvc0FTTCcsXG4gICAgJ2dldFBvc0FTTFZpc3VhbCcsXG4gICAgJ2dldFBvc0FTTFcnLFxuICAgICdnZXRQb3NBVEwnLFxuICAgICdnZXRQb3NBVExWaXN1YWwnLFxuICAgICdnZXRQb3NWaXN1YWwnLFxuICAgICdnZXRQb3NXb3JsZCcsXG4gICAgJ2dldFBvc1dvcmxkVmlzdWFsJyxcbiAgICAnZ2V0UHlsb25NYWdhemluZXMnLFxuICAgICdnZXRSZWxEaXInLFxuICAgICdnZXRSZWxQb3MnLFxuICAgICdnZXRSZW1vdGVTZW5zb3JzRGlzYWJsZWQnLFxuICAgICdnZXRSZXBhaXJDYXJnbycsXG4gICAgJ2dldFJlc29sdXRpb24nLFxuICAgICdnZXRSb2FkSW5mbycsXG4gICAgJ2dldFJvdG9yQnJha2VSVEQnLFxuICAgICdnZXRTZW5zb3JUYXJnZXRzJyxcbiAgICAnZ2V0U2Vuc29yVGhyZWF0cycsXG4gICAgJ2dldFNoYWRvd0Rpc3RhbmNlJyxcbiAgICAnZ2V0U2hvdFBhcmVudHMnLFxuICAgICdnZXRTbGluZ0xvYWQnLFxuICAgICdnZXRTb3VuZENvbnRyb2xsZXInLFxuICAgICdnZXRTb3VuZENvbnRyb2xsZXJSZXN1bHQnLFxuICAgICdnZXRTcGVlZCcsXG4gICAgJ2dldFN0YW1pbmEnLFxuICAgICdnZXRTdGF0VmFsdWUnLFxuICAgICdnZXRTdGVhbUZyaWVuZHNTZXJ2ZXJzJyxcbiAgICAnZ2V0U3VidGl0bGVPcHRpb25zJyxcbiAgICAnZ2V0U3VwcHJlc3Npb24nLFxuICAgICdnZXRUZXJyYWluR3JpZCcsXG4gICAgJ2dldFRlcnJhaW5IZWlnaHQnLFxuICAgICdnZXRUZXJyYWluSGVpZ2h0QVNMJyxcbiAgICAnZ2V0VGVycmFpbkluZm8nLFxuICAgICdnZXRUZXh0JyxcbiAgICAnZ2V0VGV4dFJhdycsXG4gICAgJ2dldFRleHR1cmVJbmZvJyxcbiAgICAnZ2V0VGV4dFdpZHRoJyxcbiAgICAnZ2V0VGlQYXJhbWV0ZXJzJyxcbiAgICAnZ2V0VG90YWxETENVc2FnZVRpbWUnLFxuICAgICdnZXRUcmltT2Zmc2V0UlREJyxcbiAgICAnZ2V0VHVycmV0TGltaXRzJyxcbiAgICAnZ2V0VHVycmV0T3B0aWNzTW9kZScsXG4gICAgJ2dldFVuaXRGcmVlZmFsbEluZm8nLFxuICAgICdnZXRVbml0TG9hZG91dCcsXG4gICAgJ2dldFVuaXRUcmFpdCcsXG4gICAgJ2dldFVubG9hZEluQ29tYmF0JyxcbiAgICAnZ2V0VXNlckluZm8nLFxuICAgICdnZXRVc2VyTUZEVGV4dCcsXG4gICAgJ2dldFVzZXJNRkRWYWx1ZScsXG4gICAgJ2dldFZhcmlhYmxlJyxcbiAgICAnZ2V0VmVoaWNsZUNhcmdvJyxcbiAgICAnZ2V0VmVoaWNsZVRpUGFycycsXG4gICAgJ2dldFdlYXBvbkNhcmdvJyxcbiAgICAnZ2V0V2VhcG9uU3dheScsXG4gICAgJ2dldFdpbmdzT3JpZW50YXRpb25SVEQnLFxuICAgICdnZXRXaW5nc1Bvc2l0aW9uUlREJyxcbiAgICAnZ2V0V1BQb3MnLFxuICAgICdnbGFuY2VBdCcsXG4gICAgJ2dsb2JhbENoYXQnLFxuICAgICdnbG9iYWxSYWRpbycsXG4gICAgJ2dvZ2dsZXMnLFxuICAgICdnb3RvJyxcbiAgICAnZ3JvdXAnLFxuICAgICdncm91cENoYXQnLFxuICAgICdncm91cEZyb21OZXRJZCcsXG4gICAgJ2dyb3VwSWNvblNlbGVjdGFibGUnLFxuICAgICdncm91cEljb25zVmlzaWJsZScsXG4gICAgJ2dyb3VwSUQnLFxuICAgICdncm91cE93bmVyJyxcbiAgICAnZ3JvdXBSYWRpbycsXG4gICAgJ2dyb3VwcycsXG4gICAgJ2dyb3VwU2VsZWN0ZWRVbml0cycsXG4gICAgJ2dyb3VwU2VsZWN0VW5pdCcsXG4gICAgJ2d1bm5lcicsXG4gICAgJ2d1c3RzJyxcbiAgICAnaGFsdCcsXG4gICAgJ2hhbmRndW5JdGVtcycsXG4gICAgJ2hhbmRndW5NYWdhemluZScsXG4gICAgJ2hhbmRndW5XZWFwb24nLFxuICAgICdoYW5kc0hpdCcsXG4gICAgJ2hhc2hWYWx1ZScsXG4gICAgJ2hhc0ludGVyZmFjZScsXG4gICAgJ2hhc1BpbG90Q2FtZXJhJyxcbiAgICAnaGFzV2VhcG9uJyxcbiAgICAnaGNBbGxHcm91cHMnLFxuICAgICdoY0dyb3VwUGFyYW1zJyxcbiAgICAnaGNMZWFkZXInLFxuICAgICdoY1JlbW92ZUFsbEdyb3VwcycsXG4gICAgJ2hjUmVtb3ZlR3JvdXAnLFxuICAgICdoY1NlbGVjdGVkJyxcbiAgICAnaGNTZWxlY3RHcm91cCcsXG4gICAgJ2hjU2V0R3JvdXAnLFxuICAgICdoY1Nob3dCYXInLFxuICAgICdoY1Nob3duQmFyJyxcbiAgICAnaGVhZGdlYXInLFxuICAgICdoaWRlQm9keScsXG4gICAgJ2hpZGVPYmplY3QnLFxuICAgICdoaWRlT2JqZWN0R2xvYmFsJyxcbiAgICAnaGlkZVNlbGVjdGlvbicsXG4gICAgJ2hpbnQnLFxuICAgICdoaW50QycsXG4gICAgJ2hpbnRDYWRldCcsXG4gICAgJ2hpbnRTaWxlbnQnLFxuICAgICdobWQnLFxuICAgICdob3N0TWlzc2lvbicsXG4gICAgJ2h0bWxMb2FkJyxcbiAgICAnSFVETW92ZW1lbnRMZXZlbHMnLFxuICAgICdodW1pZGl0eScsXG4gICAgJ2ltYWdlJyxcbiAgICAnaW1wb3J0QWxsR3JvdXBzJyxcbiAgICAnaW1wb3J0YW5jZScsXG4gICAgJ2luJyxcbiAgICAnaW5BcmVhJyxcbiAgICAnaW5BcmVhQXJyYXknLFxuICAgICdpbmNhcGFjaXRhdGVkU3RhdGUnLFxuICAgICdpbmZsYW1lJyxcbiAgICAnaW5mbGFtZWQnLFxuICAgICdpbmZvUGFuZWwnLFxuICAgICdpbmZvUGFuZWxDb21wb25lbnRFbmFibGVkJyxcbiAgICAnaW5mb1BhbmVsQ29tcG9uZW50cycsXG4gICAgJ2luZm9QYW5lbHMnLFxuICAgICdpbkdhbWVVSVNldEV2ZW50SGFuZGxlcicsXG4gICAgJ2luaGVyaXRzRnJvbScsXG4gICAgJ2luaXRBbWJpZW50TGlmZScsXG4gICAgJ2luUG9seWdvbicsXG4gICAgJ2lucHV0QWN0aW9uJyxcbiAgICAnaW5wdXRDb250cm9sbGVyJyxcbiAgICAnaW5wdXRNb3VzZScsXG4gICAgJ2luUmFuZ2VPZkFydGlsbGVyeScsXG4gICAgJ2luc2VydCcsXG4gICAgJ2luc2VydEVkaXRvck9iamVjdCcsXG4gICAgJ2ludGVyc2VjdCcsXG4gICAgJ2lzM0RFTicsXG4gICAgJ2lzM0RFTk11bHRpcGxheWVyJyxcbiAgICAnaXMzREVOUHJldmlldycsXG4gICAgJ2lzQWJsZVRvQnJlYXRoZScsXG4gICAgJ2lzQWN0aW9uTWVudVZpc2libGUnLFxuICAgICdpc0FnZW50JyxcbiAgICAnaXNBaW1QcmVjaXNpb25FbmFibGVkJyxcbiAgICAnaXNBbGxvd2VkQ3Jld0luSW1tb2JpbGUnLFxuICAgICdpc0FycmF5JyxcbiAgICAnaXNBdXRvSG92ZXJPbicsXG4gICAgJ2lzQXV0b25vbW91cycsXG4gICAgJ2lzQXV0b1N0YXJ0VXBFbmFibGVkUlREJyxcbiAgICAnaXNBdXRvdGVzdCcsXG4gICAgJ2lzQXV0b1RyaW1PblJURCcsXG4gICAgJ2lzQXdha2UnLFxuICAgICdpc0JsZWVkaW5nJyxcbiAgICAnaXNCdXJuaW5nJyxcbiAgICAnaXNDbGFzcycsXG4gICAgJ2lzQ29sbGlzaW9uTGlnaHRPbicsXG4gICAgJ2lzQ29waWxvdEVuYWJsZWQnLFxuICAgICdpc0RhbWFnZUFsbG93ZWQnLFxuICAgICdpc0RlZGljYXRlZCcsXG4gICAgJ2lzRExDQXZhaWxhYmxlJyxcbiAgICAnaXNFbmdpbmVPbicsXG4gICAgJ2lzRXF1YWxSZWYnLFxuICAgICdpc0VxdWFsVG8nLFxuICAgICdpc0VxdWFsVHlwZScsXG4gICAgJ2lzRXF1YWxUeXBlQWxsJyxcbiAgICAnaXNFcXVhbFR5cGVBbnknLFxuICAgICdpc0VxdWFsVHlwZUFycmF5JyxcbiAgICAnaXNFcXVhbFR5cGVQYXJhbXMnLFxuICAgICdpc0ZpbGVQYXRjaGluZ0VuYWJsZWQnLFxuICAgICdpc0ZpbmFsJyxcbiAgICAnaXNGbGFzaGxpZ2h0T24nLFxuICAgICdpc0ZsYXRFbXB0eScsXG4gICAgJ2lzRm9yY2VkV2FsaycsXG4gICAgJ2lzRm9ybWF0aW9uTGVhZGVyJyxcbiAgICAnaXNHYW1lRm9jdXNlZCcsXG4gICAgJ2lzR2FtZVBhdXNlZCcsXG4gICAgJ2lzR3JvdXBEZWxldGVkV2hlbkVtcHR5JyxcbiAgICAnaXNIaWRkZW4nLFxuICAgICdpc0luUmVtYWluc0NvbGxlY3RvcicsXG4gICAgJ2lzSW5zdHJ1Y3RvckZpZ3VyZUVuYWJsZWQnLFxuICAgICdpc0lSTGFzZXJPbicsXG4gICAgJ2lzS2V5QWN0aXZlJyxcbiAgICAnaXNLaW5kT2YnLFxuICAgICdpc0xhc2VyT24nLFxuICAgICdpc0xpZ2h0T24nLFxuICAgICdpc0xvY2FsaXplZCcsXG4gICAgJ2lzTWFudWFsRmlyZScsXG4gICAgJ2lzTWFya2VkRm9yQ29sbGVjdGlvbicsXG4gICAgJ2lzTWlzc2lvblByb2ZpbGVOYW1lc3BhY2VMb2FkZWQnLFxuICAgICdpc011bHRpcGxheWVyJyxcbiAgICAnaXNNdWx0aXBsYXllclNvbG8nLFxuICAgICdpc05pbCcsXG4gICAgJ2lzTm90RXF1YWxSZWYnLFxuICAgICdpc05vdEVxdWFsVG8nLFxuICAgICdpc051bGwnLFxuICAgICdpc051bWJlcicsXG4gICAgJ2lzT2JqZWN0SGlkZGVuJyxcbiAgICAnaXNPYmplY3RSVEQnLFxuICAgICdpc09uUm9hZCcsXG4gICAgJ2lzUGlQRW5hYmxlZCcsXG4gICAgJ2lzUGxheWVyJyxcbiAgICAnaXNSZWFsVGltZScsXG4gICAgJ2lzUmVtb3RlRXhlY3V0ZWQnLFxuICAgICdpc1JlbW90ZUV4ZWN1dGVkSklQJyxcbiAgICAnaXNTYXZpbmcnLFxuICAgICdpc1NlbnNvclRhcmdldENvbmZpcm1lZCcsXG4gICAgJ2lzU2VydmVyJyxcbiAgICAnaXNTaG93aW5nM0RJY29ucycsXG4gICAgJ2lzU2ltcGxlT2JqZWN0JyxcbiAgICAnaXNTcHJpbnRBbGxvd2VkJyxcbiAgICAnaXNTdGFtaW5hRW5hYmxlZCcsXG4gICAgJ2lzU3RlYW1NaXNzaW9uJyxcbiAgICAnaXNTdGVhbU92ZXJsYXlFbmFibGVkJyxcbiAgICAnaXNTdHJlYW1GcmllbmRseVVJRW5hYmxlZCcsXG4gICAgJ2lzU3RyZXNzRGFtYWdlRW5hYmxlZCcsXG4gICAgJ2lzVGV4dCcsXG4gICAgJ2lzVG91Y2hpbmdHcm91bmQnLFxuICAgICdpc1R1cm5lZE91dCcsXG4gICAgJ2lzVHV0SGludHNFbmFibGVkJyxcbiAgICAnaXNVQVZDb25uZWN0YWJsZScsXG4gICAgJ2lzVUFWQ29ubmVjdGVkJyxcbiAgICAnaXNVSUNvbnRleHQnLFxuICAgICdpc1VuaWZvcm1BbGxvd2VkJyxcbiAgICAnaXNWZWhpY2xlQ2FyZ28nLFxuICAgICdpc1ZlaGljbGVSYWRhck9uJyxcbiAgICAnaXNWZWhpY2xlU2Vuc29yRW5hYmxlZCcsXG4gICAgJ2lzV2Fsa2luZycsXG4gICAgJ2lzV2VhcG9uRGVwbG95ZWQnLFxuICAgICdpc1dlYXBvblJlc3RlZCcsXG4gICAgJ2l0ZW1DYXJnbycsXG4gICAgJ2l0ZW1zJyxcbiAgICAnaXRlbXNXaXRoTWFnYXppbmVzJyxcbiAgICAnam9pbicsXG4gICAgJ2pvaW5BcycsXG4gICAgJ2pvaW5Bc1NpbGVudCcsXG4gICAgJ2pvaW5TaWxlbnQnLFxuICAgICdqb2luU3RyaW5nJyxcbiAgICAna2JBZGREYXRhYmFzZScsXG4gICAgJ2tiQWRkRGF0YWJhc2VUYXJnZXRzJyxcbiAgICAna2JBZGRUb3BpYycsXG4gICAgJ2tiSGFzVG9waWMnLFxuICAgICdrYlJlYWN0JyxcbiAgICAna2JSZW1vdmVUb3BpYycsXG4gICAgJ2tiVGVsbCcsXG4gICAgJ2tiV2FzU2FpZCcsXG4gICAgJ2tleUltYWdlJyxcbiAgICAna2V5TmFtZScsXG4gICAgJ2tleXMnLFxuICAgICdrbm93c0Fib3V0JyxcbiAgICAnbGFuZCcsXG4gICAgJ2xhbmRBdCcsXG4gICAgJ2xhbmRSZXN1bHQnLFxuICAgICdsYW5ndWFnZScsXG4gICAgJ2xhc2VyVGFyZ2V0JyxcbiAgICAnbGJBZGQnLFxuICAgICdsYkNsZWFyJyxcbiAgICAnbGJDb2xvcicsXG4gICAgJ2xiQ29sb3JSaWdodCcsXG4gICAgJ2xiQ3VyU2VsJyxcbiAgICAnbGJEYXRhJyxcbiAgICAnbGJEZWxldGUnLFxuICAgICdsYklzU2VsZWN0ZWQnLFxuICAgICdsYlBpY3R1cmUnLFxuICAgICdsYlBpY3R1cmVSaWdodCcsXG4gICAgJ2xiU2VsZWN0aW9uJyxcbiAgICAnbGJTZXRDb2xvcicsXG4gICAgJ2xiU2V0Q29sb3JSaWdodCcsXG4gICAgJ2xiU2V0Q3VyU2VsJyxcbiAgICAnbGJTZXREYXRhJyxcbiAgICAnbGJTZXRQaWN0dXJlJyxcbiAgICAnbGJTZXRQaWN0dXJlQ29sb3InLFxuICAgICdsYlNldFBpY3R1cmVDb2xvckRpc2FibGVkJyxcbiAgICAnbGJTZXRQaWN0dXJlQ29sb3JTZWxlY3RlZCcsXG4gICAgJ2xiU2V0UGljdHVyZVJpZ2h0JyxcbiAgICAnbGJTZXRQaWN0dXJlUmlnaHRDb2xvcicsXG4gICAgJ2xiU2V0UGljdHVyZVJpZ2h0Q29sb3JEaXNhYmxlZCcsXG4gICAgJ2xiU2V0UGljdHVyZVJpZ2h0Q29sb3JTZWxlY3RlZCcsXG4gICAgJ2xiU2V0U2VsZWN0Q29sb3InLFxuICAgICdsYlNldFNlbGVjdENvbG9yUmlnaHQnLFxuICAgICdsYlNldFNlbGVjdGVkJyxcbiAgICAnbGJTZXRUZXh0JyxcbiAgICAnbGJTZXRUZXh0UmlnaHQnLFxuICAgICdsYlNldFRvb2x0aXAnLFxuICAgICdsYlNldFZhbHVlJyxcbiAgICAnbGJTaXplJyxcbiAgICAnbGJTb3J0JyxcbiAgICAnbGJTb3J0QnknLFxuICAgICdsYlNvcnRCeVZhbHVlJyxcbiAgICAnbGJUZXh0JyxcbiAgICAnbGJUZXh0UmlnaHQnLFxuICAgICdsYlRvb2x0aXAnLFxuICAgICdsYlZhbHVlJyxcbiAgICAnbGVhZGVyJyxcbiAgICAnbGVhZGVyYm9hcmREZUluaXQnLFxuICAgICdsZWFkZXJib2FyZEdldFJvd3MnLFxuICAgICdsZWFkZXJib2FyZEluaXQnLFxuICAgICdsZWFkZXJib2FyZFJlcXVlc3RSb3dzRnJpZW5kcycsXG4gICAgJ2xlYWRlcmJvYXJkUmVxdWVzdFJvd3NHbG9iYWwnLFxuICAgICdsZWFkZXJib2FyZFJlcXVlc3RSb3dzR2xvYmFsQXJvdW5kVXNlcicsXG4gICAgJ2xlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZScsXG4gICAgJ2xlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZUtlZXBCZXN0JyxcbiAgICAnbGVhZGVyYm9hcmRTdGF0ZScsXG4gICAgJ2xlYXZlVmVoaWNsZScsXG4gICAgJ2xpYnJhcnlDcmVkaXRzJyxcbiAgICAnbGlicmFyeURpc2NsYWltZXJzJyxcbiAgICAnbGlmZVN0YXRlJyxcbiAgICAnbGlnaHRBdHRhY2hPYmplY3QnLFxuICAgICdsaWdodERldGFjaE9iamVjdCcsXG4gICAgJ2xpZ2h0SXNPbicsXG4gICAgJ2xpZ2h0bmluZ3MnLFxuICAgICdsaW1pdFNwZWVkJyxcbiAgICAnbGluZWFyQ29udmVyc2lvbicsXG4gICAgJ2xpbmVJbnRlcnNlY3RzJyxcbiAgICAnbGluZUludGVyc2VjdHNPYmpzJyxcbiAgICAnbGluZUludGVyc2VjdHNTdXJmYWNlcycsXG4gICAgJ2xpbmVJbnRlcnNlY3RzV2l0aCcsXG4gICAgJ2xpbmtJdGVtJyxcbiAgICAnbGlzdCcsXG4gICAgJ2xpc3RPYmplY3RzJyxcbiAgICAnbGlzdFJlbW90ZVRhcmdldHMnLFxuICAgICdsaXN0VmVoaWNsZVNlbnNvcnMnLFxuICAgICdsbicsXG4gICAgJ2xuYkFkZEFycmF5JyxcbiAgICAnbG5iQWRkQ29sdW1uJyxcbiAgICAnbG5iQWRkUm93JyxcbiAgICAnbG5iQ2xlYXInLFxuICAgICdsbmJDb2xvcicsXG4gICAgJ2xuYkNvbG9yUmlnaHQnLFxuICAgICdsbmJDdXJTZWxSb3cnLFxuICAgICdsbmJEYXRhJyxcbiAgICAnbG5iRGVsZXRlQ29sdW1uJyxcbiAgICAnbG5iRGVsZXRlUm93JyxcbiAgICAnbG5iR2V0Q29sdW1uc1Bvc2l0aW9uJyxcbiAgICAnbG5iUGljdHVyZScsXG4gICAgJ2xuYlBpY3R1cmVSaWdodCcsXG4gICAgJ2xuYlNldENvbG9yJyxcbiAgICAnbG5iU2V0Q29sb3JSaWdodCcsXG4gICAgJ2xuYlNldENvbHVtbnNQb3MnLFxuICAgICdsbmJTZXRDdXJTZWxSb3cnLFxuICAgICdsbmJTZXREYXRhJyxcbiAgICAnbG5iU2V0UGljdHVyZScsXG4gICAgJ2xuYlNldFBpY3R1cmVDb2xvcicsXG4gICAgJ2xuYlNldFBpY3R1cmVDb2xvclJpZ2h0JyxcbiAgICAnbG5iU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWQnLFxuICAgICdsbmJTZXRQaWN0dXJlQ29sb3JTZWxlY3RlZFJpZ2h0JyxcbiAgICAnbG5iU2V0UGljdHVyZVJpZ2h0JyxcbiAgICAnbG5iU2V0VGV4dCcsXG4gICAgJ2xuYlNldFRleHRSaWdodCcsXG4gICAgJ2xuYlNldFRvb2x0aXAnLFxuICAgICdsbmJTZXRWYWx1ZScsXG4gICAgJ2xuYlNpemUnLFxuICAgICdsbmJTb3J0JyxcbiAgICAnbG5iU29ydEJ5JyxcbiAgICAnbG5iU29ydEJ5VmFsdWUnLFxuICAgICdsbmJUZXh0JyxcbiAgICAnbG5iVGV4dFJpZ2h0JyxcbiAgICAnbG5iVmFsdWUnLFxuICAgICdsb2FkJyxcbiAgICAnbG9hZEFicycsXG4gICAgJ2xvYWRCYWNrcGFjaycsXG4gICAgJ2xvYWRDb25maWcnLFxuICAgICdsb2FkRmlsZScsXG4gICAgJ2xvYWRHYW1lJyxcbiAgICAnbG9hZElkZW50aXR5JyxcbiAgICAnbG9hZE1hZ2F6aW5lJyxcbiAgICAnbG9hZE92ZXJsYXknLFxuICAgICdsb2FkU3RhdHVzJyxcbiAgICAnbG9hZFVuaWZvcm0nLFxuICAgICdsb2FkVmVzdCcsXG4gICAgJ2xvY2FsaXplJyxcbiAgICAnbG9jYWxOYW1lc3BhY2UnLFxuICAgICdsb2NhdGlvblBvc2l0aW9uJyxcbiAgICAnbG9jaycsXG4gICAgJ2xvY2tDYW1lcmFUbycsXG4gICAgJ2xvY2tDYXJnbycsXG4gICAgJ2xvY2tEcml2ZXInLFxuICAgICdsb2NrZWQnLFxuICAgICdsb2NrZWRDYW1lcmFUbycsXG4gICAgJ2xvY2tlZENhcmdvJyxcbiAgICAnbG9ja2VkRHJpdmVyJyxcbiAgICAnbG9ja2VkSW52ZW50b3J5JyxcbiAgICAnbG9ja2VkVHVycmV0JyxcbiAgICAnbG9ja0lkZW50aXR5JyxcbiAgICAnbG9ja0ludmVudG9yeScsXG4gICAgJ2xvY2tUdXJyZXQnLFxuICAgICdsb2NrV3AnLFxuICAgICdsb2cnLFxuICAgICdsb2dFbnRpdGllcycsXG4gICAgJ2xvZ05ldHdvcmsnLFxuICAgICdsb2dOZXR3b3JrVGVybWluYXRlJyxcbiAgICAnbG9va0F0JyxcbiAgICAnbG9va0F0UG9zJyxcbiAgICAnbWFnYXppbmVDYXJnbycsXG4gICAgJ21hZ2F6aW5lcycsXG4gICAgJ21hZ2F6aW5lc0FsbFR1cnJldHMnLFxuICAgICdtYWdhemluZXNBbW1vJyxcbiAgICAnbWFnYXppbmVzQW1tb0NhcmdvJyxcbiAgICAnbWFnYXppbmVzQW1tb0Z1bGwnLFxuICAgICdtYWdhemluZXNEZXRhaWwnLFxuICAgICdtYWdhemluZXNEZXRhaWxCYWNrcGFjaycsXG4gICAgJ21hZ2F6aW5lc0RldGFpbFVuaWZvcm0nLFxuICAgICdtYWdhemluZXNEZXRhaWxWZXN0JyxcbiAgICAnbWFnYXppbmVzVHVycmV0JyxcbiAgICAnbWFnYXppbmVUdXJyZXRBbW1vJyxcbiAgICAnbWFwQW5pbUFkZCcsXG4gICAgJ21hcEFuaW1DbGVhcicsXG4gICAgJ21hcEFuaW1Db21taXQnLFxuICAgICdtYXBBbmltRG9uZScsXG4gICAgJ21hcENlbnRlck9uQ2FtZXJhJyxcbiAgICAnbWFwR3JpZFBvc2l0aW9uJyxcbiAgICAnbWFya0FzRmluaXNoZWRPblN0ZWFtJyxcbiAgICAnbWFya2VyQWxwaGEnLFxuICAgICdtYXJrZXJCcnVzaCcsXG4gICAgJ21hcmtlckNoYW5uZWwnLFxuICAgICdtYXJrZXJDb2xvcicsXG4gICAgJ21hcmtlckRpcicsXG4gICAgJ21hcmtlclBvbHlsaW5lJyxcbiAgICAnbWFya2VyUG9zJyxcbiAgICAnbWFya2VyU2hhZG93JyxcbiAgICAnbWFya2VyU2hhcGUnLFxuICAgICdtYXJrZXJTaXplJyxcbiAgICAnbWFya2VyVGV4dCcsXG4gICAgJ21hcmtlclR5cGUnLFxuICAgICdtYXRyaXhNdWx0aXBseScsXG4gICAgJ21hdHJpeFRyYW5zcG9zZScsXG4gICAgJ21heCcsXG4gICAgJ21heExvYWQnLFxuICAgICdtZW1iZXJzJyxcbiAgICAnbWVudUFjdGlvbicsXG4gICAgJ21lbnVBZGQnLFxuICAgICdtZW51Q2hlY2tlZCcsXG4gICAgJ21lbnVDbGVhcicsXG4gICAgJ21lbnVDb2xsYXBzZScsXG4gICAgJ21lbnVEYXRhJyxcbiAgICAnbWVudURlbGV0ZScsXG4gICAgJ21lbnVFbmFibGUnLFxuICAgICdtZW51RW5hYmxlZCcsXG4gICAgJ21lbnVFeHBhbmQnLFxuICAgICdtZW51SG92ZXInLFxuICAgICdtZW51UGljdHVyZScsXG4gICAgJ21lbnVTZXRBY3Rpb24nLFxuICAgICdtZW51U2V0Q2hlY2snLFxuICAgICdtZW51U2V0RGF0YScsXG4gICAgJ21lbnVTZXRQaWN0dXJlJyxcbiAgICAnbWVudVNldFNob3J0Y3V0JyxcbiAgICAnbWVudVNldFRleHQnLFxuICAgICdtZW51U2V0VVJMJyxcbiAgICAnbWVudVNldFZhbHVlJyxcbiAgICAnbWVudVNob3J0Y3V0JyxcbiAgICAnbWVudVNob3J0Y3V0VGV4dCcsXG4gICAgJ21lbnVTaXplJyxcbiAgICAnbWVudVNvcnQnLFxuICAgICdtZW51VGV4dCcsXG4gICAgJ21lbnVVUkwnLFxuICAgICdtZW51VmFsdWUnLFxuICAgICdtZXJnZScsXG4gICAgJ21pbicsXG4gICAgJ21pbmVBY3RpdmUnLFxuICAgICdtaW5lRGV0ZWN0ZWRCeScsXG4gICAgJ21pc3NpbGVUYXJnZXQnLFxuICAgICdtaXNzaWxlVGFyZ2V0UG9zJyxcbiAgICAnbWlzc2lvbkNvbmZpZ0ZpbGUnLFxuICAgICdtaXNzaW9uRGlmZmljdWx0eScsXG4gICAgJ21pc3Npb25FbmQnLFxuICAgICdtaXNzaW9uTmFtZScsXG4gICAgJ21pc3Npb25OYW1lU291cmNlJyxcbiAgICAnbWlzc2lvbk5hbWVzcGFjZScsXG4gICAgJ21pc3Npb25Qcm9maWxlTmFtZXNwYWNlJyxcbiAgICAnbWlzc2lvblN0YXJ0JyxcbiAgICAnbWlzc2lvblZlcnNpb24nLFxuICAgICdtb2QnLFxuICAgICdtb2RlbFRvV29ybGQnLFxuICAgICdtb2RlbFRvV29ybGRWaXN1YWwnLFxuICAgICdtb2RlbFRvV29ybGRWaXN1YWxXb3JsZCcsXG4gICAgJ21vZGVsVG9Xb3JsZFdvcmxkJyxcbiAgICAnbW9kUGFyYW1zJyxcbiAgICAnbW9vbkludGVuc2l0eScsXG4gICAgJ21vb25QaGFzZScsXG4gICAgJ21vcmFsZScsXG4gICAgJ21vdmUnLFxuICAgICdtb3ZlM0RFTkNhbWVyYScsXG4gICAgJ21vdmVJbkFueScsXG4gICAgJ21vdmVJbkNhcmdvJyxcbiAgICAnbW92ZUluQ29tbWFuZGVyJyxcbiAgICAnbW92ZUluRHJpdmVyJyxcbiAgICAnbW92ZUluR3VubmVyJyxcbiAgICAnbW92ZUluVHVycmV0JyxcbiAgICAnbW92ZU9iamVjdFRvRW5kJyxcbiAgICAnbW92ZU91dCcsXG4gICAgJ21vdmVUaW1lJyxcbiAgICAnbW92ZVRvJyxcbiAgICAnbW92ZVRvQ29tcGxldGVkJyxcbiAgICAnbW92ZVRvRmFpbGVkJyxcbiAgICAnbXVzaWNWb2x1bWUnLFxuICAgICduYW1lJyxcbiAgICAnbmFtZWRQcm9wZXJ0aWVzJyxcbiAgICAnbmFtZVNvdW5kJyxcbiAgICAnbmVhckVudGl0aWVzJyxcbiAgICAnbmVhcmVzdEJ1aWxkaW5nJyxcbiAgICAnbmVhcmVzdExvY2F0aW9uJyxcbiAgICAnbmVhcmVzdExvY2F0aW9ucycsXG4gICAgJ25lYXJlc3RMb2NhdGlvbldpdGhEdWJiaW5nJyxcbiAgICAnbmVhcmVzdE1pbmVzJyxcbiAgICAnbmVhcmVzdE9iamVjdCcsXG4gICAgJ25lYXJlc3RPYmplY3RzJyxcbiAgICAnbmVhcmVzdFRlcnJhaW5PYmplY3RzJyxcbiAgICAnbmVhck9iamVjdHMnLFxuICAgICduZWFyT2JqZWN0c1JlYWR5JyxcbiAgICAnbmVhclJvYWRzJyxcbiAgICAnbmVhclN1cHBsaWVzJyxcbiAgICAnbmVhclRhcmdldHMnLFxuICAgICduZWVkUmVsb2FkJyxcbiAgICAnbmVlZFNlcnZpY2UnLFxuICAgICduZXRJZCcsXG4gICAgJ25ldE9iak51bGwnLFxuICAgICduZXdPdmVybGF5JyxcbiAgICAnbmV4dE1lbnVJdGVtSW5kZXgnLFxuICAgICduZXh0V2VhdGhlckNoYW5nZScsXG4gICAgJ25NZW51SXRlbXMnLFxuICAgICdub3QnLFxuICAgICdudW1iZXJPZkVuZ2luZXNSVEQnLFxuICAgICdudW1iZXJUb0RhdGUnLFxuICAgICdvYmplY3RDdXJhdG9ycycsXG4gICAgJ29iamVjdEZyb21OZXRJZCcsXG4gICAgJ29iamVjdFBhcmVudCcsXG4gICAgJ29ialN0YXR1cycsXG4gICAgJ29uQnJpZWZpbmdHcm91cCcsXG4gICAgJ29uQnJpZWZpbmdOb3RlcycsXG4gICAgJ29uQnJpZWZpbmdQbGFuJyxcbiAgICAnb25CcmllZmluZ1RlYW1Td2l0Y2gnLFxuICAgICdvbkNvbW1hbmRNb2RlQ2hhbmdlZCcsXG4gICAgJ29uRG91YmxlQ2xpY2snLFxuICAgICdvbkVhY2hGcmFtZScsXG4gICAgJ29uR3JvdXBJY29uQ2xpY2snLFxuICAgICdvbkdyb3VwSWNvbk92ZXJFbnRlcicsXG4gICAgJ29uR3JvdXBJY29uT3ZlckxlYXZlJyxcbiAgICAnb25IQ0dyb3VwU2VsZWN0aW9uQ2hhbmdlZCcsXG4gICAgJ29uTWFwU2luZ2xlQ2xpY2snLFxuICAgICdvblBsYXllckNvbm5lY3RlZCcsXG4gICAgJ29uUGxheWVyRGlzY29ubmVjdGVkJyxcbiAgICAnb25QcmVsb2FkRmluaXNoZWQnLFxuICAgICdvblByZWxvYWRTdGFydGVkJyxcbiAgICAnb25TaG93TmV3T2JqZWN0JyxcbiAgICAnb25UZWFtU3dpdGNoJyxcbiAgICAnb3BlbkN1cmF0b3JJbnRlcmZhY2UnLFxuICAgICdvcGVuRExDUGFnZScsXG4gICAgJ29wZW5HUFMnLFxuICAgICdvcGVuTWFwJyxcbiAgICAnb3BlblN0ZWFtQXBwJyxcbiAgICAnb3BlbllvdXR1YmVWaWRlbycsXG4gICAgJ29yJyxcbiAgICAnb3JkZXJHZXRJbicsXG4gICAgJ292ZXJjYXN0JyxcbiAgICAnb3ZlcmNhc3RGb3JlY2FzdCcsXG4gICAgJ293bmVyJyxcbiAgICAncGFyYW0nLFxuICAgICdwYXJhbXMnLFxuICAgICdwYXJzZU51bWJlcicsXG4gICAgJ3BhcnNlU2ltcGxlQXJyYXknLFxuICAgICdwYXJzZVRleHQnLFxuICAgICdwYXJzaW5nTmFtZXNwYWNlJyxcbiAgICAncGFydGljbGVzUXVhbGl0eScsXG4gICAgJ3BlcmlzY29wZUVsZXZhdGlvbicsXG4gICAgJ3BpY2tXZWFwb25Qb29sJyxcbiAgICAncGl0Y2gnLFxuICAgICdwaXhlbEdyaWQnLFxuICAgICdwaXhlbEdyaWRCYXNlJyxcbiAgICAncGl4ZWxHcmlkTm9VSVNjYWxlJyxcbiAgICAncGl4ZWxIJyxcbiAgICAncGl4ZWxXJyxcbiAgICAncGxheWFibGVTbG90c051bWJlcicsXG4gICAgJ3BsYXlhYmxlVW5pdHMnLFxuICAgICdwbGF5QWN0aW9uJyxcbiAgICAncGxheUFjdGlvbk5vdycsXG4gICAgJ3BsYXllcicsXG4gICAgJ3BsYXllclJlc3Bhd25UaW1lJyxcbiAgICAncGxheWVyU2lkZScsXG4gICAgJ3BsYXllcnNOdW1iZXInLFxuICAgICdwbGF5R2VzdHVyZScsXG4gICAgJ3BsYXlNaXNzaW9uJyxcbiAgICAncGxheU1vdmUnLFxuICAgICdwbGF5TW92ZU5vdycsXG4gICAgJ3BsYXlNdXNpYycsXG4gICAgJ3BsYXlTY3JpcHRlZE1pc3Npb24nLFxuICAgICdwbGF5U291bmQnLFxuICAgICdwbGF5U291bmQzRCcsXG4gICAgJ3BsYXlTb3VuZFVJJyxcbiAgICAncG9zZScsXG4gICAgJ3Bvc2l0aW9uJyxcbiAgICAncG9zaXRpb25DYW1lcmFUb1dvcmxkJyxcbiAgICAncG9zU2NyZWVuVG9Xb3JsZCcsXG4gICAgJ3Bvc1dvcmxkVG9TY3JlZW4nLFxuICAgICdwcEVmZmVjdEFkanVzdCcsXG4gICAgJ3BwRWZmZWN0Q29tbWl0JyxcbiAgICAncHBFZmZlY3RDb21taXR0ZWQnLFxuICAgICdwcEVmZmVjdENyZWF0ZScsXG4gICAgJ3BwRWZmZWN0RGVzdHJveScsXG4gICAgJ3BwRWZmZWN0RW5hYmxlJyxcbiAgICAncHBFZmZlY3RFbmFibGVkJyxcbiAgICAncHBFZmZlY3RGb3JjZUluTlZHJyxcbiAgICAncHJlY2lzaW9uJyxcbiAgICAncHJlbG9hZENhbWVyYScsXG4gICAgJ3ByZWxvYWRPYmplY3QnLFxuICAgICdwcmVsb2FkU291bmQnLFxuICAgICdwcmVsb2FkVGl0bGVPYmonLFxuICAgICdwcmVsb2FkVGl0bGVSc2MnLFxuICAgICdwcmVwcm9jZXNzRmlsZScsXG4gICAgJ3ByZXByb2Nlc3NGaWxlTGluZU51bWJlcnMnLFxuICAgICdwcmltYXJ5V2VhcG9uJyxcbiAgICAncHJpbWFyeVdlYXBvbkl0ZW1zJyxcbiAgICAncHJpbWFyeVdlYXBvbk1hZ2F6aW5lJyxcbiAgICAncHJpb3JpdHknLFxuICAgICdwcm9jZXNzRGlhcnlMaW5rJyxcbiAgICAncHJvZHVjdFZlcnNpb24nLFxuICAgICdwcm9maWxlTmFtZScsXG4gICAgJ3Byb2ZpbGVOYW1lc3BhY2UnLFxuICAgICdwcm9maWxlTmFtZVN0ZWFtJyxcbiAgICAncHJvZ3Jlc3NMb2FkaW5nU2NyZWVuJyxcbiAgICAncHJvZ3Jlc3NQb3NpdGlvbicsXG4gICAgJ3Byb2dyZXNzU2V0UG9zaXRpb24nLFxuICAgICdwdWJsaWNWYXJpYWJsZScsXG4gICAgJ3B1YmxpY1ZhcmlhYmxlQ2xpZW50JyxcbiAgICAncHVibGljVmFyaWFibGVTZXJ2ZXInLFxuICAgICdwdXNoQmFjaycsXG4gICAgJ3B1c2hCYWNrVW5pcXVlJyxcbiAgICAncHV0V2VhcG9uUG9vbCcsXG4gICAgJ3F1ZXJ5SXRlbXNQb29sJyxcbiAgICAncXVlcnlNYWdhemluZVBvb2wnLFxuICAgICdxdWVyeVdlYXBvblBvb2wnLFxuICAgICdyYWQnLFxuICAgICdyYWRpb0NoYW5uZWxBZGQnLFxuICAgICdyYWRpb0NoYW5uZWxDcmVhdGUnLFxuICAgICdyYWRpb0NoYW5uZWxJbmZvJyxcbiAgICAncmFkaW9DaGFubmVsUmVtb3ZlJyxcbiAgICAncmFkaW9DaGFubmVsU2V0Q2FsbFNpZ24nLFxuICAgICdyYWRpb0NoYW5uZWxTZXRMYWJlbCcsXG4gICAgJ3JhZGlvRW5hYmxlZCcsXG4gICAgJ3JhZGlvVm9sdW1lJyxcbiAgICAncmFpbicsXG4gICAgJ3JhaW5ib3cnLFxuICAgICdyYWluUGFyYW1zJyxcbiAgICAncmFuZG9tJyxcbiAgICAncmFuaycsXG4gICAgJ3JhbmtJZCcsXG4gICAgJ3JhdGluZycsXG4gICAgJ3JlY3Rhbmd1bGFyJyxcbiAgICAncmVnZXhGaW5kJyxcbiAgICAncmVnZXhNYXRjaCcsXG4gICAgJ3JlZ2V4UmVwbGFjZScsXG4gICAgJ3JlZ2lzdGVyZWRUYXNrcycsXG4gICAgJ3JlZ2lzdGVyVGFzaycsXG4gICAgJ3JlbG9hZCcsXG4gICAgJ3JlbG9hZEVuYWJsZWQnLFxuICAgICdyZW1vdGVDb250cm9sJyxcbiAgICAncmVtb3RlRXhlYycsXG4gICAgJ3JlbW90ZUV4ZWNDYWxsJyxcbiAgICAncmVtb3RlRXhlY3V0ZWRPd25lcicsXG4gICAgJ3JlbW92ZTNERU5Db25uZWN0aW9uJyxcbiAgICAncmVtb3ZlM0RFTkV2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZTNERU5MYXllcicsXG4gICAgJ3JlbW92ZUFjdGlvbicsXG4gICAgJ3JlbW92ZUFsbDNERU5FdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsQWN0aW9ucycsXG4gICAgJ3JlbW92ZUFsbEFzc2lnbmVkSXRlbXMnLFxuICAgICdyZW1vdmVBbGxCaW5vY3VsYXJJdGVtcycsXG4gICAgJ3JlbW92ZUFsbENvbnRhaW5lcnMnLFxuICAgICdyZW1vdmVBbGxDdXJhdG9yQWRkb25zJyxcbiAgICAncmVtb3ZlQWxsQ3VyYXRvckNhbWVyYUFyZWFzJyxcbiAgICAncmVtb3ZlQWxsQ3VyYXRvckVkaXRpbmdBcmVhcycsXG4gICAgJ3JlbW92ZUFsbEV2ZW50SGFuZGxlcnMnLFxuICAgICdyZW1vdmVBbGxIYW5kZ3VuSXRlbXMnLFxuICAgICdyZW1vdmVBbGxJdGVtcycsXG4gICAgJ3JlbW92ZUFsbEl0ZW1zV2l0aE1hZ2F6aW5lcycsXG4gICAgJ3JlbW92ZUFsbE1pc3Npb25FdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsTVBFdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsTXVzaWNFdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsT3duZWRNaW5lcycsXG4gICAgJ3JlbW92ZUFsbFByaW1hcnlXZWFwb25JdGVtcycsXG4gICAgJ3JlbW92ZUFsbFNlY29uZGFyeVdlYXBvbkl0ZW1zJyxcbiAgICAncmVtb3ZlQWxsVXNlckFjdGlvbkV2ZW50SGFuZGxlcnMnLFxuICAgICdyZW1vdmVBbGxXZWFwb25zJyxcbiAgICAncmVtb3ZlQmFja3BhY2snLFxuICAgICdyZW1vdmVCYWNrcGFja0dsb2JhbCcsXG4gICAgJ3JlbW92ZUJpbm9jdWxhckl0ZW0nLFxuICAgICdyZW1vdmVDdXJhdG9yQWRkb25zJyxcbiAgICAncmVtb3ZlQ3VyYXRvckNhbWVyYUFyZWEnLFxuICAgICdyZW1vdmVDdXJhdG9yRWRpdGFibGVPYmplY3RzJyxcbiAgICAncmVtb3ZlQ3VyYXRvckVkaXRpbmdBcmVhJyxcbiAgICAncmVtb3ZlRGlhcnlSZWNvcmQnLFxuICAgICdyZW1vdmVEaWFyeVN1YmplY3QnLFxuICAgICdyZW1vdmVEcmF3SWNvbicsXG4gICAgJ3JlbW92ZURyYXdMaW5rcycsXG4gICAgJ3JlbW92ZUV2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZUZyb21SZW1haW5zQ29sbGVjdG9yJyxcbiAgICAncmVtb3ZlR29nZ2xlcycsXG4gICAgJ3JlbW92ZUdyb3VwSWNvbicsXG4gICAgJ3JlbW92ZUhhbmRndW5JdGVtJyxcbiAgICAncmVtb3ZlSGVhZGdlYXInLFxuICAgICdyZW1vdmVJdGVtJyxcbiAgICAncmVtb3ZlSXRlbUZyb21CYWNrcGFjaycsXG4gICAgJ3JlbW92ZUl0ZW1Gcm9tVW5pZm9ybScsXG4gICAgJ3JlbW92ZUl0ZW1Gcm9tVmVzdCcsXG4gICAgJ3JlbW92ZUl0ZW1zJyxcbiAgICAncmVtb3ZlTWFnYXppbmUnLFxuICAgICdyZW1vdmVNYWdhemluZUdsb2JhbCcsXG4gICAgJ3JlbW92ZU1hZ2F6aW5lcycsXG4gICAgJ3JlbW92ZU1hZ2F6aW5lc1R1cnJldCcsXG4gICAgJ3JlbW92ZU1hZ2F6aW5lVHVycmV0JyxcbiAgICAncmVtb3ZlTWVudUl0ZW0nLFxuICAgICdyZW1vdmVNaXNzaW9uRXZlbnRIYW5kbGVyJyxcbiAgICAncmVtb3ZlTVBFdmVudEhhbmRsZXInLFxuICAgICdyZW1vdmVNdXNpY0V2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZU93bmVkTWluZScsXG4gICAgJ3JlbW92ZVByaW1hcnlXZWFwb25JdGVtJyxcbiAgICAncmVtb3ZlU2Vjb25kYXJ5V2VhcG9uSXRlbScsXG4gICAgJ3JlbW92ZVNpbXBsZVRhc2snLFxuICAgICdyZW1vdmVTd2l0Y2hhYmxlVW5pdCcsXG4gICAgJ3JlbW92ZVRlYW1NZW1iZXInLFxuICAgICdyZW1vdmVVbmlmb3JtJyxcbiAgICAncmVtb3ZlVXNlckFjdGlvbkV2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZVZlc3QnLFxuICAgICdyZW1vdmVXZWFwb24nLFxuICAgICdyZW1vdmVXZWFwb25BdHRhY2htZW50Q2FyZ28nLFxuICAgICdyZW1vdmVXZWFwb25DYXJnbycsXG4gICAgJ3JlbW92ZVdlYXBvbkdsb2JhbCcsXG4gICAgJ3JlbW92ZVdlYXBvblR1cnJldCcsXG4gICAgJ3JlcG9ydFJlbW90ZVRhcmdldCcsXG4gICAgJ3JlcXVpcmVkVmVyc2lvbicsXG4gICAgJ3Jlc2V0Q2FtU2hha2UnLFxuICAgICdyZXNldFN1Ymdyb3VwRGlyZWN0aW9uJyxcbiAgICAncmVzaXplJyxcbiAgICAncmVzb3VyY2VzJyxcbiAgICAncmVzcGF3blZlaGljbGUnLFxuICAgICdyZXN0YXJ0RWRpdG9yQ2FtZXJhJyxcbiAgICAncmV2ZWFsJyxcbiAgICAncmV2ZWFsTWluZScsXG4gICAgJ3JldmVyc2UnLFxuICAgICdyZXZlcnNlZE1vdXNlWScsXG4gICAgJ3JvYWRBdCcsXG4gICAgJ3JvYWRzQ29ubmVjdGVkVG8nLFxuICAgICdyb2xlRGVzY3JpcHRpb24nLFxuICAgICdyb3BlQXR0YWNoZWRPYmplY3RzJyxcbiAgICAncm9wZUF0dGFjaGVkVG8nLFxuICAgICdyb3BlQXR0YWNoRW5hYmxlZCcsXG4gICAgJ3JvcGVBdHRhY2hUbycsXG4gICAgJ3JvcGVDcmVhdGUnLFxuICAgICdyb3BlQ3V0JyxcbiAgICAncm9wZURlc3Ryb3knLFxuICAgICdyb3BlRGV0YWNoJyxcbiAgICAncm9wZUVuZFBvc2l0aW9uJyxcbiAgICAncm9wZUxlbmd0aCcsXG4gICAgJ3JvcGVzJyxcbiAgICAncm9wZXNBdHRhY2hlZFRvJyxcbiAgICAncm9wZVNlZ21lbnRzJyxcbiAgICAncm9wZVVud2luZCcsXG4gICAgJ3JvcGVVbndvdW5kJyxcbiAgICAncm90b3JzRm9yY2VzUlREJyxcbiAgICAncm90b3JzUnBtUlREJyxcbiAgICAncm91bmQnLFxuICAgICdydW5Jbml0U2NyaXB0JyxcbiAgICAnc2FmZVpvbmVIJyxcbiAgICAnc2FmZVpvbmVXJyxcbiAgICAnc2FmZVpvbmVXQWJzJyxcbiAgICAnc2FmZVpvbmVYJyxcbiAgICAnc2FmZVpvbmVYQWJzJyxcbiAgICAnc2FmZVpvbmVZJyxcbiAgICAnc2F2ZTNERU5JbnZlbnRvcnknLFxuICAgICdzYXZlR2FtZScsXG4gICAgJ3NhdmVJZGVudGl0eScsXG4gICAgJ3NhdmVKb3lzdGlja3MnLFxuICAgICdzYXZlTWlzc2lvblByb2ZpbGVOYW1lc3BhY2UnLFxuICAgICdzYXZlT3ZlcmxheScsXG4gICAgJ3NhdmVQcm9maWxlTmFtZXNwYWNlJyxcbiAgICAnc2F2ZVN0YXR1cycsXG4gICAgJ3NhdmVWYXInLFxuICAgICdzYXZpbmdFbmFibGVkJyxcbiAgICAnc2F5JyxcbiAgICAnc2F5MkQnLFxuICAgICdzYXkzRCcsXG4gICAgJ3Njb3BlTmFtZScsXG4gICAgJ3Njb3JlJyxcbiAgICAnc2NvcmVTaWRlJyxcbiAgICAnc2NyZWVuc2hvdCcsXG4gICAgJ3NjcmVlblRvV29ybGQnLFxuICAgICdzY3JpcHREb25lJyxcbiAgICAnc2NyaXB0TmFtZScsXG4gICAgJ3NjdWRTdGF0ZScsXG4gICAgJ3NlY29uZGFyeVdlYXBvbicsXG4gICAgJ3NlY29uZGFyeVdlYXBvbkl0ZW1zJyxcbiAgICAnc2Vjb25kYXJ5V2VhcG9uTWFnYXppbmUnLFxuICAgICdzZWxlY3QnLFxuICAgICdzZWxlY3RCZXN0UGxhY2VzJyxcbiAgICAnc2VsZWN0RGlhcnlTdWJqZWN0JyxcbiAgICAnc2VsZWN0ZWRFZGl0b3JPYmplY3RzJyxcbiAgICAnc2VsZWN0RWRpdG9yT2JqZWN0JyxcbiAgICAnc2VsZWN0aW9uTmFtZXMnLFxuICAgICdzZWxlY3Rpb25Qb3NpdGlvbicsXG4gICAgJ3NlbGVjdGlvblZlY3RvckRpckFuZFVwJyxcbiAgICAnc2VsZWN0TGVhZGVyJyxcbiAgICAnc2VsZWN0TWF4JyxcbiAgICAnc2VsZWN0TWluJyxcbiAgICAnc2VsZWN0Tm9QbGF5ZXInLFxuICAgICdzZWxlY3RQbGF5ZXInLFxuICAgICdzZWxlY3RSYW5kb20nLFxuICAgICdzZWxlY3RSYW5kb21XZWlnaHRlZCcsXG4gICAgJ3NlbGVjdFdlYXBvbicsXG4gICAgJ3NlbGVjdFdlYXBvblR1cnJldCcsXG4gICAgJ3NlbmRBVU1lc3NhZ2UnLFxuICAgICdzZW5kU2ltcGxlQ29tbWFuZCcsXG4gICAgJ3NlbmRUYXNrJyxcbiAgICAnc2VuZFRhc2tSZXN1bHQnLFxuICAgICdzZW5kVURQTWVzc2FnZScsXG4gICAgJ3NlbnRlbmNlc0VuYWJsZWQnLFxuICAgICdzZXJ2ZXJDb21tYW5kJyxcbiAgICAnc2VydmVyQ29tbWFuZEF2YWlsYWJsZScsXG4gICAgJ3NlcnZlckNvbW1hbmRFeGVjdXRhYmxlJyxcbiAgICAnc2VydmVyTmFtZScsXG4gICAgJ3NlcnZlck5hbWVzcGFjZScsXG4gICAgJ3NlcnZlclRpbWUnLFxuICAgICdzZXQnLFxuICAgICdzZXQzREVOQXR0cmlidXRlJyxcbiAgICAnc2V0M0RFTkF0dHJpYnV0ZXMnLFxuICAgICdzZXQzREVOR3JpZCcsXG4gICAgJ3NldDNERU5JY29uc1Zpc2libGUnLFxuICAgICdzZXQzREVOTGF5ZXInLFxuICAgICdzZXQzREVOTGluZXNWaXNpYmxlJyxcbiAgICAnc2V0M0RFTkxvZ2ljVHlwZScsXG4gICAgJ3NldDNERU5NaXNzaW9uQXR0cmlidXRlJyxcbiAgICAnc2V0M0RFTk1pc3Npb25BdHRyaWJ1dGVzJyxcbiAgICAnc2V0M0RFTk1vZGVsc1Zpc2libGUnLFxuICAgICdzZXQzREVOT2JqZWN0VHlwZScsXG4gICAgJ3NldDNERU5TZWxlY3RlZCcsXG4gICAgJ3NldEFjY1RpbWUnLFxuICAgICdzZXRBY3R1YWxDb2xsZWN0aXZlUlREJyxcbiAgICAnc2V0QWlycGxhbmVUaHJvdHRsZScsXG4gICAgJ3NldEFpcnBvcnRTaWRlJyxcbiAgICAnc2V0QW1tbycsXG4gICAgJ3NldEFtbW9DYXJnbycsXG4gICAgJ3NldEFtbW9PblB5bG9uJyxcbiAgICAnc2V0QW5pbVNwZWVkQ29lZicsXG4gICAgJ3NldEFwZXJ0dXJlJyxcbiAgICAnc2V0QXBlcnR1cmVOZXcnLFxuICAgICdzZXRBcm1vcnlQb2ludHMnLFxuICAgICdzZXRBdHRyaWJ1dGVzJyxcbiAgICAnc2V0QXV0b25vbW91cycsXG4gICAgJ3NldEJlaGF2aW91cicsXG4gICAgJ3NldEJlaGF2aW91clN0cm9uZycsXG4gICAgJ3NldEJsZWVkaW5nUmVtYWluaW5nJyxcbiAgICAnc2V0QnJha2VzUlREJyxcbiAgICAnc2V0Q2FtZXJhSW50ZXJlc3QnLFxuICAgICdzZXRDYW1TaGFrZURlZlBhcmFtcycsXG4gICAgJ3NldENhbVNoYWtlUGFyYW1zJyxcbiAgICAnc2V0Q2FtVXNlVGknLFxuICAgICdzZXRDYXB0aXZlJyxcbiAgICAnc2V0Q2VudGVyT2ZNYXNzJyxcbiAgICAnc2V0Q29sbGlzaW9uTGlnaHQnLFxuICAgICdzZXRDb21iYXRCZWhhdmlvdXInLFxuICAgICdzZXRDb21iYXRNb2RlJyxcbiAgICAnc2V0Q29tcGFzc09zY2lsbGF0aW9uJyxcbiAgICAnc2V0Q29udm95U2VwYXJhdGlvbicsXG4gICAgJ3NldENydWlzZUNvbnRyb2wnLFxuICAgICdzZXRDdXJhdG9yQ2FtZXJhQXJlYUNlaWxpbmcnLFxuICAgICdzZXRDdXJhdG9yQ29lZicsXG4gICAgJ3NldEN1cmF0b3JFZGl0aW5nQXJlYVR5cGUnLFxuICAgICdzZXRDdXJhdG9yV2F5cG9pbnRDb3N0JyxcbiAgICAnc2V0Q3VycmVudENoYW5uZWwnLFxuICAgICdzZXRDdXJyZW50VGFzaycsXG4gICAgJ3NldEN1cnJlbnRXYXlwb2ludCcsXG4gICAgJ3NldEN1c3RvbUFpbUNvZWYnLFxuICAgICdTZXRDdXN0b21NaXNzaW9uRGF0YScsXG4gICAgJ3NldEN1c3RvbVNvdW5kQ29udHJvbGxlcicsXG4gICAgJ3NldEN1c3RvbVdlaWdodFJURCcsXG4gICAgJ3NldERhbWFnZScsXG4gICAgJ3NldERhbW1hZ2UnLFxuICAgICdzZXREYXRlJyxcbiAgICAnc2V0RGVicmllZmluZ1RleHQnLFxuICAgICdzZXREZWZhdWx0Q2FtZXJhJyxcbiAgICAnc2V0RGVzdGluYXRpb24nLFxuICAgICdzZXREZXRhaWxNYXBCbGVuZFBhcnMnLFxuICAgICdzZXREaWFyeVJlY29yZFRleHQnLFxuICAgICdzZXREaWFyeVN1YmplY3RQaWN0dXJlJyxcbiAgICAnc2V0RGlyJyxcbiAgICAnc2V0RGlyZWN0aW9uJyxcbiAgICAnc2V0RHJhd0ljb24nLFxuICAgICdzZXREcml2ZU9uUGF0aCcsXG4gICAgJ3NldERyb3BJbnRlcnZhbCcsXG4gICAgJ3NldER5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2UnLFxuICAgICdzZXREeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZicsXG4gICAgJ3NldEVkaXRvck1vZGUnLFxuICAgICdzZXRFZGl0b3JPYmplY3RTY29wZScsXG4gICAgJ3NldEVmZmVjdENvbmRpdGlvbicsXG4gICAgJ3NldEVmZmVjdGl2ZUNvbW1hbmRlcicsXG4gICAgJ3NldEVuZ2luZVJwbVJURCcsXG4gICAgJ3NldEZhY2UnLFxuICAgICdzZXRGYWNlYW5pbWF0aW9uJyxcbiAgICAnc2V0RmF0aWd1ZScsXG4gICAgJ3NldEZlYXR1cmVUeXBlJyxcbiAgICAnc2V0RmxhZ0FuaW1hdGlvblBoYXNlJyxcbiAgICAnc2V0RmxhZ093bmVyJyxcbiAgICAnc2V0RmxhZ1NpZGUnLFxuICAgICdzZXRGbGFnVGV4dHVyZScsXG4gICAgJ3NldEZvZycsXG4gICAgJ3NldEZvcmNlR2VuZXJhdG9yUlREJyxcbiAgICAnc2V0Rm9ybWF0aW9uJyxcbiAgICAnc2V0Rm9ybWF0aW9uVGFzaycsXG4gICAgJ3NldEZvcm1EaXInLFxuICAgICdzZXRGcmllbmQnLFxuICAgICdzZXRGcm9tRWRpdG9yJyxcbiAgICAnc2V0RlNNVmFyaWFibGUnLFxuICAgICdzZXRGdWVsJyxcbiAgICAnc2V0RnVlbENhcmdvJyxcbiAgICAnc2V0R3JvdXBJY29uJyxcbiAgICAnc2V0R3JvdXBJY29uUGFyYW1zJyxcbiAgICAnc2V0R3JvdXBJY29uc1NlbGVjdGFibGUnLFxuICAgICdzZXRHcm91cEljb25zVmlzaWJsZScsXG4gICAgJ3NldEdyb3VwaWQnLFxuICAgICdzZXRHcm91cElkR2xvYmFsJyxcbiAgICAnc2V0R3JvdXBPd25lcicsXG4gICAgJ3NldEd1c3RzJyxcbiAgICAnc2V0SGlkZUJlaGluZCcsXG4gICAgJ3NldEhpdCcsXG4gICAgJ3NldEhpdEluZGV4JyxcbiAgICAnc2V0SGl0UG9pbnREYW1hZ2UnLFxuICAgICdzZXRIb3Jpem9uUGFyYWxsYXhDb2VmJyxcbiAgICAnc2V0SFVETW92ZW1lbnRMZXZlbHMnLFxuICAgICdzZXRIdW1pZGl0eScsXG4gICAgJ3NldElkZW50aXR5JyxcbiAgICAnc2V0SW1wb3J0YW5jZScsXG4gICAgJ3NldEluZm9QYW5lbCcsXG4gICAgJ3NldExlYWRlcicsXG4gICAgJ3NldExpZ2h0QW1iaWVudCcsXG4gICAgJ3NldExpZ2h0QXR0ZW51YXRpb24nLFxuICAgICdzZXRMaWdodEJyaWdodG5lc3MnLFxuICAgICdzZXRMaWdodENvbG9yJyxcbiAgICAnc2V0TGlnaHRDb25lUGFycycsXG4gICAgJ3NldExpZ2h0RGF5TGlnaHQnLFxuICAgICdzZXRMaWdodEZsYXJlTWF4RGlzdGFuY2UnLFxuICAgICdzZXRMaWdodEZsYXJlU2l6ZScsXG4gICAgJ3NldExpZ2h0SW50ZW5zaXR5JyxcbiAgICAnc2V0TGlnaHRJUicsXG4gICAgJ3NldExpZ2h0bmluZ3MnLFxuICAgICdzZXRMaWdodFVzZUZsYXJlJyxcbiAgICAnc2V0TGlnaHRWb2x1bWVTaGFwZScsXG4gICAgJ3NldExvY2FsV2luZFBhcmFtcycsXG4gICAgJ3NldE1hZ2F6aW5lVHVycmV0QW1tbycsXG4gICAgJ3NldE1hcmtlckFscGhhJyxcbiAgICAnc2V0TWFya2VyQWxwaGFMb2NhbCcsXG4gICAgJ3NldE1hcmtlckJydXNoJyxcbiAgICAnc2V0TWFya2VyQnJ1c2hMb2NhbCcsXG4gICAgJ3NldE1hcmtlckNvbG9yJyxcbiAgICAnc2V0TWFya2VyQ29sb3JMb2NhbCcsXG4gICAgJ3NldE1hcmtlckRpcicsXG4gICAgJ3NldE1hcmtlckRpckxvY2FsJyxcbiAgICAnc2V0TWFya2VyUG9seWxpbmUnLFxuICAgICdzZXRNYXJrZXJQb2x5bGluZUxvY2FsJyxcbiAgICAnc2V0TWFya2VyUG9zJyxcbiAgICAnc2V0TWFya2VyUG9zTG9jYWwnLFxuICAgICdzZXRNYXJrZXJTaGFkb3cnLFxuICAgICdzZXRNYXJrZXJTaGFkb3dMb2NhbCcsXG4gICAgJ3NldE1hcmtlclNoYXBlJyxcbiAgICAnc2V0TWFya2VyU2hhcGVMb2NhbCcsXG4gICAgJ3NldE1hcmtlclNpemUnLFxuICAgICdzZXRNYXJrZXJTaXplTG9jYWwnLFxuICAgICdzZXRNYXJrZXJUZXh0JyxcbiAgICAnc2V0TWFya2VyVGV4dExvY2FsJyxcbiAgICAnc2V0TWFya2VyVHlwZScsXG4gICAgJ3NldE1hcmtlclR5cGVMb2NhbCcsXG4gICAgJ3NldE1hc3MnLFxuICAgICdzZXRNYXhMb2FkJyxcbiAgICAnc2V0TWltaWMnLFxuICAgICdzZXRNaXNzaWxlVGFyZ2V0JyxcbiAgICAnc2V0TWlzc2lsZVRhcmdldFBvcycsXG4gICAgJ3NldE1vdXNlUG9zaXRpb24nLFxuICAgICdzZXRNdXNpY0VmZmVjdCcsXG4gICAgJ3NldE11c2ljRXZlbnRIYW5kbGVyJyxcbiAgICAnc2V0TmFtZScsXG4gICAgJ3NldE5hbWVTb3VuZCcsXG4gICAgJ3NldE9iamVjdEFyZ3VtZW50cycsXG4gICAgJ3NldE9iamVjdE1hdGVyaWFsJyxcbiAgICAnc2V0T2JqZWN0TWF0ZXJpYWxHbG9iYWwnLFxuICAgICdzZXRPYmplY3RQcm94eScsXG4gICAgJ3NldE9iamVjdFNjYWxlJyxcbiAgICAnc2V0T2JqZWN0VGV4dHVyZScsXG4gICAgJ3NldE9iamVjdFRleHR1cmVHbG9iYWwnLFxuICAgICdzZXRPYmplY3RWaWV3RGlzdGFuY2UnLFxuICAgICdzZXRPcHRpY3NNb2RlJyxcbiAgICAnc2V0T3ZlcmNhc3QnLFxuICAgICdzZXRPd25lcicsXG4gICAgJ3NldE94eWdlblJlbWFpbmluZycsXG4gICAgJ3NldFBhcnRpY2xlQ2lyY2xlJyxcbiAgICAnc2V0UGFydGljbGVDbGFzcycsXG4gICAgJ3NldFBhcnRpY2xlRmlyZScsXG4gICAgJ3NldFBhcnRpY2xlUGFyYW1zJyxcbiAgICAnc2V0UGFydGljbGVSYW5kb20nLFxuICAgICdzZXRQaWxvdENhbWVyYURpcmVjdGlvbicsXG4gICAgJ3NldFBpbG90Q2FtZXJhUm90YXRpb24nLFxuICAgICdzZXRQaWxvdENhbWVyYVRhcmdldCcsXG4gICAgJ3NldFBpbG90TGlnaHQnLFxuICAgICdzZXRQaVBFZmZlY3QnLFxuICAgICdzZXRQaVBWaWV3RGlzdGFuY2UnLFxuICAgICdzZXRQaXRjaCcsXG4gICAgJ3NldFBsYXRlTnVtYmVyJyxcbiAgICAnc2V0UGxheWFibGUnLFxuICAgICdzZXRQbGF5ZXJSZXNwYXduVGltZScsXG4gICAgJ3NldFBsYXllclZvTlZvbHVtZScsXG4gICAgJ3NldFBvcycsXG4gICAgJ3NldFBvc0FTTCcsXG4gICAgJ3NldFBvc0FTTDInLFxuICAgICdzZXRQb3NBU0xXJyxcbiAgICAnc2V0UG9zQVRMJyxcbiAgICAnc2V0UG9zaXRpb24nLFxuICAgICdzZXRQb3NXb3JsZCcsXG4gICAgJ3NldFB5bG9uTG9hZG91dCcsXG4gICAgJ3NldFB5bG9uc1ByaW9yaXR5JyxcbiAgICAnc2V0UmFkaW9Nc2cnLFxuICAgICdzZXRSYWluJyxcbiAgICAnc2V0UmFpbmJvdycsXG4gICAgJ3NldFJhbmRvbUxpcCcsXG4gICAgJ3NldFJhbmsnLFxuICAgICdzZXRSZWN0YW5ndWxhcicsXG4gICAgJ3NldFJlcGFpckNhcmdvJyxcbiAgICAnc2V0Um90b3JCcmFrZVJURCcsXG4gICAgJ3NldFNoYWRvd0Rpc3RhbmNlJyxcbiAgICAnc2V0U2hvdFBhcmVudHMnLFxuICAgICdzZXRTaWRlJyxcbiAgICAnc2V0U2ltcGxlVGFza0Fsd2F5c1Zpc2libGUnLFxuICAgICdzZXRTaW1wbGVUYXNrQ3VzdG9tRGF0YScsXG4gICAgJ3NldFNpbXBsZVRhc2tEZXNjcmlwdGlvbicsXG4gICAgJ3NldFNpbXBsZVRhc2tEZXN0aW5hdGlvbicsXG4gICAgJ3NldFNpbXBsZVRhc2tUYXJnZXQnLFxuICAgICdzZXRTaW1wbGVUYXNrVHlwZScsXG4gICAgJ3NldFNpbXVsV2VhdGhlckxheWVycycsXG4gICAgJ3NldFNpemUnLFxuICAgICdzZXRTa2lsbCcsXG4gICAgJ3NldFNsaW5nTG9hZCcsXG4gICAgJ3NldFNvdW5kRWZmZWN0JyxcbiAgICAnc2V0U3BlYWtlcicsXG4gICAgJ3NldFNwZWVjaCcsXG4gICAgJ3NldFNwZWVkTW9kZScsXG4gICAgJ3NldFN0YW1pbmEnLFxuICAgICdzZXRTdGFtaW5hU2NoZW1lJyxcbiAgICAnc2V0U3RhdFZhbHVlJyxcbiAgICAnc2V0U3VwcHJlc3Npb24nLFxuICAgICdzZXRTeXN0ZW1PZlVuaXRzJyxcbiAgICAnc2V0VGFyZ2V0QWdlJyxcbiAgICAnc2V0VGFza01hcmtlck9mZnNldCcsXG4gICAgJ3NldFRhc2tSZXN1bHQnLFxuICAgICdzZXRUYXNrU3RhdGUnLFxuICAgICdzZXRUZXJyYWluR3JpZCcsXG4gICAgJ3NldFRlcnJhaW5IZWlnaHQnLFxuICAgICdzZXRUZXh0JyxcbiAgICAnc2V0VGltZU11bHRpcGxpZXInLFxuICAgICdzZXRUaVBhcmFtZXRlcicsXG4gICAgJ3NldFRpdGxlRWZmZWN0JyxcbiAgICAnc2V0VG93UGFyZW50JyxcbiAgICAnc2V0VHJhZmZpY0RlbnNpdHknLFxuICAgICdzZXRUcmFmZmljRGlzdGFuY2UnLFxuICAgICdzZXRUcmFmZmljR2FwJyxcbiAgICAnc2V0VHJhZmZpY1NwZWVkJyxcbiAgICAnc2V0VHJpZ2dlckFjdGl2YXRpb24nLFxuICAgICdzZXRUcmlnZ2VyQXJlYScsXG4gICAgJ3NldFRyaWdnZXJJbnRlcnZhbCcsXG4gICAgJ3NldFRyaWdnZXJTdGF0ZW1lbnRzJyxcbiAgICAnc2V0VHJpZ2dlclRleHQnLFxuICAgICdzZXRUcmlnZ2VyVGltZW91dCcsXG4gICAgJ3NldFRyaWdnZXJUeXBlJyxcbiAgICAnc2V0VHVycmV0TGltaXRzJyxcbiAgICAnc2V0VHVycmV0T3B0aWNzTW9kZScsXG4gICAgJ3NldFR5cGUnLFxuICAgICdzZXRVbmNvbnNjaW91cycsXG4gICAgJ3NldFVuaXRBYmlsaXR5JyxcbiAgICAnc2V0VW5pdENvbWJhdE1vZGUnLFxuICAgICdzZXRVbml0RnJlZWZhbGxIZWlnaHQnLFxuICAgICdzZXRVbml0TG9hZG91dCcsXG4gICAgJ3NldFVuaXRQb3MnLFxuICAgICdzZXRVbml0UG9zV2VhaycsXG4gICAgJ3NldFVuaXRSYW5rJyxcbiAgICAnc2V0VW5pdFJlY29pbENvZWZmaWNpZW50JyxcbiAgICAnc2V0VW5pdFRyYWl0JyxcbiAgICAnc2V0VW5sb2FkSW5Db21iYXQnLFxuICAgICdzZXRVc2VyQWN0aW9uVGV4dCcsXG4gICAgJ3NldFVzZXJNRkRUZXh0JyxcbiAgICAnc2V0VXNlck1GRFZhbHVlJyxcbiAgICAnc2V0VmFyaWFibGUnLFxuICAgICdzZXRWZWN0b3JEaXInLFxuICAgICdzZXRWZWN0b3JEaXJBbmRVcCcsXG4gICAgJ3NldFZlY3RvclVwJyxcbiAgICAnc2V0VmVoaWNsZUFtbW8nLFxuICAgICdzZXRWZWhpY2xlQW1tb0RlZicsXG4gICAgJ3NldFZlaGljbGVBcm1vcicsXG4gICAgJ3NldFZlaGljbGVDYXJnbycsXG4gICAgJ3NldFZlaGljbGVJZCcsXG4gICAgJ3NldFZlaGljbGVMb2NrJyxcbiAgICAnc2V0VmVoaWNsZVBvc2l0aW9uJyxcbiAgICAnc2V0VmVoaWNsZVJhZGFyJyxcbiAgICAnc2V0VmVoaWNsZVJlY2VpdmVSZW1vdGVUYXJnZXRzJyxcbiAgICAnc2V0VmVoaWNsZVJlcG9ydE93blBvc2l0aW9uJyxcbiAgICAnc2V0VmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHMnLFxuICAgICdzZXRWZWhpY2xlVGlQYXJzJyxcbiAgICAnc2V0VmVoaWNsZVZhck5hbWUnLFxuICAgICdzZXRWZWxvY2l0eScsXG4gICAgJ3NldFZlbG9jaXR5TW9kZWxTcGFjZScsXG4gICAgJ3NldFZlbG9jaXR5VHJhbnNmb3JtYXRpb24nLFxuICAgICdzZXRWaWV3RGlzdGFuY2UnLFxuICAgICdzZXRWaXNpYmxlSWZUcmVlQ29sbGFwc2VkJyxcbiAgICAnc2V0V2FudGVkUlBNUlREJyxcbiAgICAnc2V0V2F2ZXMnLFxuICAgICdzZXRXYXlwb2ludEJlaGF2aW91cicsXG4gICAgJ3NldFdheXBvaW50Q29tYmF0TW9kZScsXG4gICAgJ3NldFdheXBvaW50Q29tcGxldGlvblJhZGl1cycsXG4gICAgJ3NldFdheXBvaW50RGVzY3JpcHRpb24nLFxuICAgICdzZXRXYXlwb2ludEZvcmNlQmVoYXZpb3VyJyxcbiAgICAnc2V0V2F5cG9pbnRGb3JtYXRpb24nLFxuICAgICdzZXRXYXlwb2ludEhvdXNlUG9zaXRpb24nLFxuICAgICdzZXRXYXlwb2ludExvaXRlckFsdGl0dWRlJyxcbiAgICAnc2V0V2F5cG9pbnRMb2l0ZXJSYWRpdXMnLFxuICAgICdzZXRXYXlwb2ludExvaXRlclR5cGUnLFxuICAgICdzZXRXYXlwb2ludE5hbWUnLFxuICAgICdzZXRXYXlwb2ludFBvc2l0aW9uJyxcbiAgICAnc2V0V2F5cG9pbnRTY3JpcHQnLFxuICAgICdzZXRXYXlwb2ludFNwZWVkJyxcbiAgICAnc2V0V2F5cG9pbnRTdGF0ZW1lbnRzJyxcbiAgICAnc2V0V2F5cG9pbnRUaW1lb3V0JyxcbiAgICAnc2V0V2F5cG9pbnRUeXBlJyxcbiAgICAnc2V0V2F5cG9pbnRWaXNpYmxlJyxcbiAgICAnc2V0V2VhcG9uUmVsb2FkaW5nVGltZScsXG4gICAgJ3NldFdlYXBvblplcm9pbmcnLFxuICAgICdzZXRXaW5kJyxcbiAgICAnc2V0V2luZERpcicsXG4gICAgJ3NldFdpbmRGb3JjZScsXG4gICAgJ3NldFdpbmRTdHInLFxuICAgICdzZXRXaW5nRm9yY2VTY2FsZVJURCcsXG4gICAgJ3NldFdQUG9zJyxcbiAgICAnc2hvdzNESWNvbnMnLFxuICAgICdzaG93Q2hhdCcsXG4gICAgJ3Nob3dDaW5lbWFCb3JkZXInLFxuICAgICdzaG93Q29tbWFuZGluZ01lbnUnLFxuICAgICdzaG93Q29tcGFzcycsXG4gICAgJ3Nob3dDdXJhdG9yQ29tcGFzcycsXG4gICAgJ3Nob3dHcHMnLFxuICAgICdzaG93SFVEJyxcbiAgICAnc2hvd0xlZ2VuZCcsXG4gICAgJ3Nob3dNYXAnLFxuICAgICdzaG93bkFydGlsbGVyeUNvbXB1dGVyJyxcbiAgICAnc2hvd25DaGF0JyxcbiAgICAnc2hvd25Db21wYXNzJyxcbiAgICAnc2hvd25DdXJhdG9yQ29tcGFzcycsXG4gICAgJ3Nob3dOZXdFZGl0b3JPYmplY3QnLFxuICAgICdzaG93bkdwcycsXG4gICAgJ3Nob3duSFVEJyxcbiAgICAnc2hvd25NYXAnLFxuICAgICdzaG93blBhZCcsXG4gICAgJ3Nob3duUmFkaW8nLFxuICAgICdzaG93blNjb3JldGFibGUnLFxuICAgICdzaG93blN1YnRpdGxlcycsXG4gICAgJ3Nob3duVUFWRmVlZCcsXG4gICAgJ3Nob3duV2FycmFudCcsXG4gICAgJ3Nob3duV2F0Y2gnLFxuICAgICdzaG93UGFkJyxcbiAgICAnc2hvd1JhZGlvJyxcbiAgICAnc2hvd1Njb3JldGFibGUnLFxuICAgICdzaG93U3VidGl0bGVzJyxcbiAgICAnc2hvd1VBVkZlZWQnLFxuICAgICdzaG93V2FycmFudCcsXG4gICAgJ3Nob3dXYXRjaCcsXG4gICAgJ3Nob3dXYXlwb2ludCcsXG4gICAgJ3Nob3dXYXlwb2ludHMnLFxuICAgICdzaWRlJyxcbiAgICAnc2lkZUNoYXQnLFxuICAgICdzaWRlUmFkaW8nLFxuICAgICdzaW1wbGVUYXNrcycsXG4gICAgJ3NpbXVsYXRpb25FbmFibGVkJyxcbiAgICAnc2ltdWxDbG91ZERlbnNpdHknLFxuICAgICdzaW11bENsb3VkT2NjbHVzaW9uJyxcbiAgICAnc2ltdWxJbkNsb3VkcycsXG4gICAgJ3NpbXVsV2VhdGhlclN5bmMnLFxuICAgICdzaW4nLFxuICAgICdzaXplJyxcbiAgICAnc2l6ZU9mJyxcbiAgICAnc2tpbGwnLFxuICAgICdza2lsbEZpbmFsJyxcbiAgICAnc2tpcFRpbWUnLFxuICAgICdzbGVlcCcsXG4gICAgJ3NsaWRlclBvc2l0aW9uJyxcbiAgICAnc2xpZGVyUmFuZ2UnLFxuICAgICdzbGlkZXJTZXRQb3NpdGlvbicsXG4gICAgJ3NsaWRlclNldFJhbmdlJyxcbiAgICAnc2xpZGVyU2V0U3BlZWQnLFxuICAgICdzbGlkZXJTcGVlZCcsXG4gICAgJ3NsaW5nTG9hZEFzc2lzdGFudFNob3duJyxcbiAgICAnc29sZGllck1hZ2F6aW5lcycsXG4gICAgJ3NvbWVBbW1vJyxcbiAgICAnc29ydCcsXG4gICAgJ3NvdW5kVm9sdW1lJyxcbiAgICAnc3Bhd24nLFxuICAgICdzcGVha2VyJyxcbiAgICAnc3BlZWNoVm9sdW1lJyxcbiAgICAnc3BlZWQnLFxuICAgICdzcGVlZE1vZGUnLFxuICAgICdzcGxpdFN0cmluZycsXG4gICAgJ3NxcnQnLFxuICAgICdzcXVhZFBhcmFtcycsXG4gICAgJ3N0YW5jZScsXG4gICAgJ3N0YXJ0TG9hZGluZ1NjcmVlbicsXG4gICAgJ3N0b3AnLFxuICAgICdzdG9wRW5naW5lUlREJyxcbiAgICAnc3RvcHBlZCcsXG4gICAgJ3N0cicsXG4gICAgJ3N1bk9yTW9vbicsXG4gICAgJ3N1cHBvcnRJbmZvJyxcbiAgICAnc3VwcHJlc3NGb3InLFxuICAgICdzdXJmYWNlSXNXYXRlcicsXG4gICAgJ3N1cmZhY2VOb3JtYWwnLFxuICAgICdzdXJmYWNlVGV4dHVyZScsXG4gICAgJ3N1cmZhY2VUeXBlJyxcbiAgICAnc3dpbUluRGVwdGgnLFxuICAgICdzd2l0Y2hhYmxlVW5pdHMnLFxuICAgICdzd2l0Y2hBY3Rpb24nLFxuICAgICdzd2l0Y2hDYW1lcmEnLFxuICAgICdzd2l0Y2hHZXN0dXJlJyxcbiAgICAnc3dpdGNoTGlnaHQnLFxuICAgICdzd2l0Y2hNb3ZlJyxcbiAgICAnc3luY2hyb25pemVkT2JqZWN0cycsXG4gICAgJ3N5bmNocm9uaXplZFRyaWdnZXJzJyxcbiAgICAnc3luY2hyb25pemVkV2F5cG9pbnRzJyxcbiAgICAnc3luY2hyb25pemVPYmplY3RzQWRkJyxcbiAgICAnc3luY2hyb25pemVPYmplY3RzUmVtb3ZlJyxcbiAgICAnc3luY2hyb25pemVUcmlnZ2VyJyxcbiAgICAnc3luY2hyb25pemVXYXlwb2ludCcsXG4gICAgJ3N5c3RlbUNoYXQnLFxuICAgICdzeXN0ZW1PZlVuaXRzJyxcbiAgICAnc3lzdGVtVGltZScsXG4gICAgJ3N5c3RlbVRpbWVVVEMnLFxuICAgICd0YW4nLFxuICAgICd0YXJnZXRLbm93bGVkZ2UnLFxuICAgICd0YXJnZXRzJyxcbiAgICAndGFyZ2V0c0FnZ3JlZ2F0ZScsXG4gICAgJ3RhcmdldHNRdWVyeScsXG4gICAgJ3Rhc2tBbHdheXNWaXNpYmxlJyxcbiAgICAndGFza0NoaWxkcmVuJyxcbiAgICAndGFza0NvbXBsZXRlZCcsXG4gICAgJ3Rhc2tDdXN0b21EYXRhJyxcbiAgICAndGFza0Rlc2NyaXB0aW9uJyxcbiAgICAndGFza0Rlc3RpbmF0aW9uJyxcbiAgICAndGFza0hpbnQnLFxuICAgICd0YXNrTWFya2VyT2Zmc2V0JyxcbiAgICAndGFza05hbWUnLFxuICAgICd0YXNrUGFyZW50JyxcbiAgICAndGFza1Jlc3VsdCcsXG4gICAgJ3Rhc2tTdGF0ZScsXG4gICAgJ3Rhc2tUeXBlJyxcbiAgICAndGVhbU1lbWJlcicsXG4gICAgJ3RlYW1OYW1lJyxcbiAgICAndGVhbXMnLFxuICAgICd0ZWFtU3dpdGNoJyxcbiAgICAndGVhbVN3aXRjaEVuYWJsZWQnLFxuICAgICd0ZWFtVHlwZScsXG4gICAgJ3Rlcm1pbmF0ZScsXG4gICAgJ3RlcnJhaW5JbnRlcnNlY3QnLFxuICAgICd0ZXJyYWluSW50ZXJzZWN0QVNMJyxcbiAgICAndGVycmFpbkludGVyc2VjdEF0QVNMJyxcbiAgICAndGV4dCcsXG4gICAgJ3RleHRMb2cnLFxuICAgICd0ZXh0TG9nRm9ybWF0JyxcbiAgICAndGcnLFxuICAgICd0aW1lJyxcbiAgICAndGltZU11bHRpcGxpZXInLFxuICAgICd0aXRsZUN1dCcsXG4gICAgJ3RpdGxlRmFkZU91dCcsXG4gICAgJ3RpdGxlT2JqJyxcbiAgICAndGl0bGVSc2MnLFxuICAgICd0aXRsZVRleHQnLFxuICAgICd0b0FycmF5JyxcbiAgICAndG9GaXhlZCcsXG4gICAgJ3RvTG93ZXInLFxuICAgICd0b0xvd2VyQU5TSScsXG4gICAgJ3RvU3RyaW5nJyxcbiAgICAndG9VcHBlcicsXG4gICAgJ3RvVXBwZXJBTlNJJyxcbiAgICAndHJpZ2dlckFjdGl2YXRlZCcsXG4gICAgJ3RyaWdnZXJBY3RpdmF0aW9uJyxcbiAgICAndHJpZ2dlckFtbW8nLFxuICAgICd0cmlnZ2VyQXJlYScsXG4gICAgJ3RyaWdnZXJBdHRhY2hlZFZlaGljbGUnLFxuICAgICd0cmlnZ2VyQXR0YWNoT2JqZWN0JyxcbiAgICAndHJpZ2dlckF0dGFjaFZlaGljbGUnLFxuICAgICd0cmlnZ2VyRHluYW1pY1NpbXVsYXRpb24nLFxuICAgICd0cmlnZ2VySW50ZXJ2YWwnLFxuICAgICd0cmlnZ2VyU3RhdGVtZW50cycsXG4gICAgJ3RyaWdnZXJUZXh0JyxcbiAgICAndHJpZ2dlclRpbWVvdXQnLFxuICAgICd0cmlnZ2VyVGltZW91dEN1cnJlbnQnLFxuICAgICd0cmlnZ2VyVHlwZScsXG4gICAgJ3RyaW0nLFxuICAgICd0dXJyZXRMb2NhbCcsXG4gICAgJ3R1cnJldE93bmVyJyxcbiAgICAndHVycmV0VW5pdCcsXG4gICAgJ3R2QWRkJyxcbiAgICAndHZDbGVhcicsXG4gICAgJ3R2Q29sbGFwc2UnLFxuICAgICd0dkNvbGxhcHNlQWxsJyxcbiAgICAndHZDb3VudCcsXG4gICAgJ3R2Q3VyU2VsJyxcbiAgICAndHZEYXRhJyxcbiAgICAndHZEZWxldGUnLFxuICAgICd0dkV4cGFuZCcsXG4gICAgJ3R2RXhwYW5kQWxsJyxcbiAgICAndHZJc1NlbGVjdGVkJyxcbiAgICAndHZQaWN0dXJlJyxcbiAgICAndHZQaWN0dXJlUmlnaHQnLFxuICAgICd0dlNlbGVjdGlvbicsXG4gICAgJ3R2U2V0Q29sb3InLFxuICAgICd0dlNldEN1clNlbCcsXG4gICAgJ3R2U2V0RGF0YScsXG4gICAgJ3R2U2V0UGljdHVyZScsXG4gICAgJ3R2U2V0UGljdHVyZUNvbG9yJyxcbiAgICAndHZTZXRQaWN0dXJlQ29sb3JEaXNhYmxlZCcsXG4gICAgJ3R2U2V0UGljdHVyZUNvbG9yU2VsZWN0ZWQnLFxuICAgICd0dlNldFBpY3R1cmVSaWdodCcsXG4gICAgJ3R2U2V0UGljdHVyZVJpZ2h0Q29sb3InLFxuICAgICd0dlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWQnLFxuICAgICd0dlNldFBpY3R1cmVSaWdodENvbG9yU2VsZWN0ZWQnLFxuICAgICd0dlNldFNlbGVjdENvbG9yJyxcbiAgICAndHZTZXRTZWxlY3RlZCcsXG4gICAgJ3R2U2V0VGV4dCcsXG4gICAgJ3R2U2V0VG9vbHRpcCcsXG4gICAgJ3R2U2V0VmFsdWUnLFxuICAgICd0dlNvcnQnLFxuICAgICd0dlNvcnRBbGwnLFxuICAgICd0dlNvcnRCeVZhbHVlJyxcbiAgICAndHZTb3J0QnlWYWx1ZUFsbCcsXG4gICAgJ3R2VGV4dCcsXG4gICAgJ3R2VG9vbHRpcCcsXG4gICAgJ3R2VmFsdWUnLFxuICAgICd0eXBlJyxcbiAgICAndHlwZU5hbWUnLFxuICAgICd0eXBlT2YnLFxuICAgICdVQVZDb250cm9sJyxcbiAgICAndWlOYW1lc3BhY2UnLFxuICAgICd1aVNsZWVwJyxcbiAgICAndW5hc3NpZ25DdXJhdG9yJyxcbiAgICAndW5hc3NpZ25JdGVtJyxcbiAgICAndW5hc3NpZ25UZWFtJyxcbiAgICAndW5hc3NpZ25WZWhpY2xlJyxcbiAgICAndW5kZXJ3YXRlcicsXG4gICAgJ3VuaWZvcm0nLFxuICAgICd1bmlmb3JtQ29udGFpbmVyJyxcbiAgICAndW5pZm9ybUl0ZW1zJyxcbiAgICAndW5pZm9ybU1hZ2F6aW5lcycsXG4gICAgJ3VuaXF1ZVVuaXRJdGVtcycsXG4gICAgJ3VuaXRBZGRvbnMnLFxuICAgICd1bml0QWltUG9zaXRpb24nLFxuICAgICd1bml0QWltUG9zaXRpb25WaXN1YWwnLFxuICAgICd1bml0QmFja3BhY2snLFxuICAgICd1bml0Q29tYmF0TW9kZScsXG4gICAgJ3VuaXRJc1VBVicsXG4gICAgJ3VuaXRQb3MnLFxuICAgICd1bml0UmVhZHknLFxuICAgICd1bml0UmVjb2lsQ29lZmZpY2llbnQnLFxuICAgICd1bml0cycsXG4gICAgJ3VuaXRzQmVsb3dIZWlnaHQnLFxuICAgICd1bml0VHVycmV0JyxcbiAgICAndW5saW5rSXRlbScsXG4gICAgJ3VubG9ja0FjaGlldmVtZW50JyxcbiAgICAndW5yZWdpc3RlclRhc2snLFxuICAgICd1cGRhdGVEcmF3SWNvbicsXG4gICAgJ3VwZGF0ZU1lbnVJdGVtJyxcbiAgICAndXBkYXRlT2JqZWN0VHJlZScsXG4gICAgJ3VzZUFJT3Blck1hcE9ic3RydWN0aW9uVGVzdCcsXG4gICAgJ3VzZUFJU3RlZXJpbmdDb21wb25lbnQnLFxuICAgICd1c2VBdWRpb1RpbWVGb3JNb3ZlcycsXG4gICAgJ3VzZXJJbnB1dERpc2FibGVkJyxcbiAgICAndmFsdWVzJyxcbiAgICAndmVjdG9yQWRkJyxcbiAgICAndmVjdG9yQ29zJyxcbiAgICAndmVjdG9yQ3Jvc3NQcm9kdWN0JyxcbiAgICAndmVjdG9yRGlmZicsXG4gICAgJ3ZlY3RvckRpcicsXG4gICAgJ3ZlY3RvckRpclZpc3VhbCcsXG4gICAgJ3ZlY3RvckRpc3RhbmNlJyxcbiAgICAndmVjdG9yRGlzdGFuY2VTcXInLFxuICAgICd2ZWN0b3JEb3RQcm9kdWN0JyxcbiAgICAndmVjdG9yRnJvbVRvJyxcbiAgICAndmVjdG9yTGluZWFyQ29udmVyc2lvbicsXG4gICAgJ3ZlY3Rvck1hZ25pdHVkZScsXG4gICAgJ3ZlY3Rvck1hZ25pdHVkZVNxcicsXG4gICAgJ3ZlY3Rvck1vZGVsVG9Xb3JsZCcsXG4gICAgJ3ZlY3Rvck1vZGVsVG9Xb3JsZFZpc3VhbCcsXG4gICAgJ3ZlY3Rvck11bHRpcGx5JyxcbiAgICAndmVjdG9yTm9ybWFsaXplZCcsXG4gICAgJ3ZlY3RvclVwJyxcbiAgICAndmVjdG9yVXBWaXN1YWwnLFxuICAgICd2ZWN0b3JXb3JsZFRvTW9kZWwnLFxuICAgICd2ZWN0b3JXb3JsZFRvTW9kZWxWaXN1YWwnLFxuICAgICd2ZWhpY2xlJyxcbiAgICAndmVoaWNsZUNhcmdvRW5hYmxlZCcsXG4gICAgJ3ZlaGljbGVDaGF0JyxcbiAgICAndmVoaWNsZU1vdmVJbmZvJyxcbiAgICAndmVoaWNsZVJhZGlvJyxcbiAgICAndmVoaWNsZVJlY2VpdmVSZW1vdGVUYXJnZXRzJyxcbiAgICAndmVoaWNsZVJlcG9ydE93blBvc2l0aW9uJyxcbiAgICAndmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHMnLFxuICAgICd2ZWhpY2xlcycsXG4gICAgJ3ZlaGljbGVWYXJOYW1lJyxcbiAgICAndmVsb2NpdHknLFxuICAgICd2ZWxvY2l0eU1vZGVsU3BhY2UnLFxuICAgICd2ZXJpZnlTaWduYXR1cmUnLFxuICAgICd2ZXN0JyxcbiAgICAndmVzdENvbnRhaW5lcicsXG4gICAgJ3Zlc3RJdGVtcycsXG4gICAgJ3Zlc3RNYWdhemluZXMnLFxuICAgICd2aWV3RGlzdGFuY2UnLFxuICAgICd2aXNpYmxlQ29tcGFzcycsXG4gICAgJ3Zpc2libGVHcHMnLFxuICAgICd2aXNpYmxlTWFwJyxcbiAgICAndmlzaWJsZVBvc2l0aW9uJyxcbiAgICAndmlzaWJsZVBvc2l0aW9uQVNMJyxcbiAgICAndmlzaWJsZVNjb3JldGFibGUnLFxuICAgICd2aXNpYmxlV2F0Y2gnLFxuICAgICd3YXZlcycsXG4gICAgJ3dheXBvaW50QXR0YWNoZWRPYmplY3QnLFxuICAgICd3YXlwb2ludEF0dGFjaGVkVmVoaWNsZScsXG4gICAgJ3dheXBvaW50QXR0YWNoT2JqZWN0JyxcbiAgICAnd2F5cG9pbnRBdHRhY2hWZWhpY2xlJyxcbiAgICAnd2F5cG9pbnRCZWhhdmlvdXInLFxuICAgICd3YXlwb2ludENvbWJhdE1vZGUnLFxuICAgICd3YXlwb2ludENvbXBsZXRpb25SYWRpdXMnLFxuICAgICd3YXlwb2ludERlc2NyaXB0aW9uJyxcbiAgICAnd2F5cG9pbnRGb3JjZUJlaGF2aW91cicsXG4gICAgJ3dheXBvaW50Rm9ybWF0aW9uJyxcbiAgICAnd2F5cG9pbnRIb3VzZVBvc2l0aW9uJyxcbiAgICAnd2F5cG9pbnRMb2l0ZXJBbHRpdHVkZScsXG4gICAgJ3dheXBvaW50TG9pdGVyUmFkaXVzJyxcbiAgICAnd2F5cG9pbnRMb2l0ZXJUeXBlJyxcbiAgICAnd2F5cG9pbnROYW1lJyxcbiAgICAnd2F5cG9pbnRQb3NpdGlvbicsXG4gICAgJ3dheXBvaW50cycsXG4gICAgJ3dheXBvaW50U2NyaXB0JyxcbiAgICAnd2F5cG9pbnRzRW5hYmxlZFVBVicsXG4gICAgJ3dheXBvaW50U2hvdycsXG4gICAgJ3dheXBvaW50U3BlZWQnLFxuICAgICd3YXlwb2ludFN0YXRlbWVudHMnLFxuICAgICd3YXlwb2ludFRpbWVvdXQnLFxuICAgICd3YXlwb2ludFRpbWVvdXRDdXJyZW50JyxcbiAgICAnd2F5cG9pbnRUeXBlJyxcbiAgICAnd2F5cG9pbnRWaXNpYmxlJyxcbiAgICAnd2VhcG9uQWNjZXNzb3JpZXMnLFxuICAgICd3ZWFwb25BY2Nlc3Nvcmllc0NhcmdvJyxcbiAgICAnd2VhcG9uQ2FyZ28nLFxuICAgICd3ZWFwb25EaXJlY3Rpb24nLFxuICAgICd3ZWFwb25JbmVydGlhJyxcbiAgICAnd2VhcG9uTG93ZXJlZCcsXG4gICAgJ3dlYXBvblJlbG9hZGluZ1RpbWUnLFxuICAgICd3ZWFwb25zJyxcbiAgICAnd2VhcG9uc0luZm8nLFxuICAgICd3ZWFwb25zSXRlbXMnLFxuICAgICd3ZWFwb25zSXRlbXNDYXJnbycsXG4gICAgJ3dlYXBvblN0YXRlJyxcbiAgICAnd2VhcG9uc1R1cnJldCcsXG4gICAgJ3dlaWdodFJURCcsXG4gICAgJ1dGU2lkZVRleHQnLFxuICAgICd3aW5kJyxcbiAgICAnd2luZERpcicsXG4gICAgJ3dpbmRSVEQnLFxuICAgICd3aW5kU3RyJyxcbiAgICAnd2luZ3NGb3JjZXNSVEQnLFxuICAgICd3b3JsZE5hbWUnLFxuICAgICd3b3JsZFNpemUnLFxuICAgICd3b3JsZFRvTW9kZWwnLFxuICAgICd3b3JsZFRvTW9kZWxWaXN1YWwnLFxuICAgICd3b3JsZFRvU2NyZWVuJ1xuICBdO1xuICBcbiAgLy8gbGlzdCBvZiBrZXl3b3JkcyBmcm9tOlxuICAvLyBodHRwczovL2NvbW11bml0eS5iaXN0dWRpby5jb20vd2lraS9QcmVQcm9jZXNzb3JfQ29tbWFuZHNcbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAvI1xccypbYS16XStcXGIvLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiAnZGVmaW5lIHVuZGVmIGlmZGVmIGlmbmRlZiBlbHNlIGVuZGlmIGluY2x1ZGUgaWYnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChTVFJJTkdTLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSksXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPFteXFxuPl0qPi8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbiAgXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NRRicsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU4sXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIFBSRVBST0NFU1NPUlxuICAgIF0sXG4gICAgaWxsZWdhbDogW1xuICAgICAgLy8kIGlzIG9ubHkgdmFsaWQgd2hlbiB1c2VkIHdpdGggSGV4IG51bWJlcnMgKGUuZy4gJEZGKVxuICAgICAgL1xcJFteYS1mQS1GMC05XS8sIFxuICAgICAgL1xcd1xcJC8sXG4gICAgICAvXFw/LywgICAgICAvL1RoZXJlJ3Mgbm8gPyBpbiBTUUZcbiAgICAgIC9ALywgICAgICAgLy9UaGVyZSdzIG5vIEAgaW4gU1FGXG4gICAgICAvLyBCcnV0ZS1mb3JjZS1maXhpbmcgdGhlIGJ1aWxkIGVycm9yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9wdWxsLzMxOTMjaXNzdWVjb21tZW50LTg0MzA4ODcyOVxuICAgICAgLyBcXHwgLyxcbiAgICAgIC8vIC4gaXMgb25seSB1c2VkIGluIG51bWJlcnNcbiAgICAgIC9bYS16QS1aX11cXC4vLFxuICAgICAgL1xcOlxcPS8sXG4gICAgICAvXFxbXFw6L1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzcWY7XG4iLCAiLypcbiBMYW5ndWFnZTogU1FMXG4gV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU1FMXG4gQ2F0ZWdvcnk6IGNvbW1vbiwgZGF0YWJhc2VcbiAqL1xuXG4vKlxuXG5Hb2FsczpcblxuU1FMIGlzIGludGVuZGVkIHRvIGhpZ2hsaWdodCBiYXNpYy9jb21tb24gU1FMIGtleXdvcmRzIGFuZCBleHByZXNzaW9uc1xuXG4tIElmIHByZXR0eSBtdWNoIGV2ZXJ5IHNpbmdsZSBTUUwgc2VydmVyIGluY2x1ZGVzIHN1cHBvcnRzLCB0aGVuIGl0J3MgYSBjYW5pZGF0ZS5cbi0gSXQgaXMgTk9UIGludGVuZGVkIHRvIGluY2x1ZGUgdG9ucyBvZiB2ZW5kb3Igc3BlY2lmaWMga2V5d29yZHMgKE9yYWNsZSwgTXlTUUwsXG4gIFBvc3RncmVTUUwpIGFsdGhvdWdoIHRoZSBsaXN0IG9mIGRhdGEgdHlwZXMgaXMgcHVycG9zZWx5IGEgYml0IG1vcmUgZXhwYW5zaXZlLlxuLSBGb3IgbW9yZSBzcGVjaWZpYyBTUUwgZ3JhbW1hcnMgcGxlYXNlIHNlZTpcbiAgLSBQb3N0Z3JlU1FMIGFuZCBQTC9wZ1NRTCAtIGNvcmVcbiAgLSBULVNRTCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHRqcy10c3FsXG4gIC0gc3FsX21vcmUgKGNvcmUpXG5cbiAqL1xuXG5mdW5jdGlvbiBzcWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IENPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpO1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFFVT1RFRF9JREVOVElGSUVSID0ge1xuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogWyB7IGJlZ2luOiAvXCJcIi8gfSBdXG4gIH07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIC8vIE5vdCBzdXJlIGl0J3MgY29ycmVjdCB0byBjYWxsIE5VTEwgbGl0ZXJhbCwgYW5kIGNsYXVzZXMgbGlrZSBJUyBbTk9UXSBOVUxMIGxvb2sgc3RyYW5nZSB0aGF0IHdheS5cbiAgICAvLyBcIm51bGxcIixcbiAgICBcInVua25vd25cIlxuICBdO1xuXG4gIGNvbnN0IE1VTFRJX1dPUkRfVFlQRVMgPSBbXG4gICAgXCJkb3VibGUgcHJlY2lzaW9uXCIsXG4gICAgXCJsYXJnZSBvYmplY3RcIixcbiAgICBcIndpdGggdGltZXpvbmVcIixcbiAgICBcIndpdGhvdXQgdGltZXpvbmVcIlxuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgICdiaWdpbnQnLFxuICAgICdiaW5hcnknLFxuICAgICdibG9iJyxcbiAgICAnYm9vbGVhbicsXG4gICAgJ2NoYXInLFxuICAgICdjaGFyYWN0ZXInLFxuICAgICdjbG9iJyxcbiAgICAnZGF0ZScsXG4gICAgJ2RlYycsXG4gICAgJ2RlY2Zsb2F0JyxcbiAgICAnZGVjaW1hbCcsXG4gICAgJ2Zsb2F0JyxcbiAgICAnaW50JyxcbiAgICAnaW50ZWdlcicsXG4gICAgJ2ludGVydmFsJyxcbiAgICAnbmNoYXInLFxuICAgICduY2xvYicsXG4gICAgJ25hdGlvbmFsJyxcbiAgICAnbnVtZXJpYycsXG4gICAgJ3JlYWwnLFxuICAgICdyb3cnLFxuICAgICdzbWFsbGludCcsXG4gICAgJ3RpbWUnLFxuICAgICd0aW1lc3RhbXAnLFxuICAgICd2YXJjaGFyJyxcbiAgICAndmFyeWluZycsIC8vIG1vZGlmaWVyIChjaGFyYWN0ZXIgdmFyeWluZylcbiAgICAndmFyYmluYXJ5J1xuICBdO1xuXG4gIGNvbnN0IE5PTl9SRVNFUlZFRF9XT1JEUyA9IFtcbiAgICBcImFkZFwiLFxuICAgIFwiYXNjXCIsXG4gICAgXCJjb2xsYXRpb25cIixcbiAgICBcImRlc2NcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJmaXJzdFwiLFxuICAgIFwibGFzdFwiLFxuICAgIFwidmlld1wiXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9qYWtld2hlYXQuZ2l0aHViLmlvL3NxbC1vdmVydmlldy9zcWwtMjAxNi1mb3VuZGF0aW9uLWdyYW1tYXIuaHRtbCNyZXNlcnZlZC13b3JkXG4gIGNvbnN0IFJFU0VSVkVEX1dPUkRTID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhbGxcIixcbiAgICBcImFsbG9jYXRlXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFyZVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXJyYXlfbWF4X2NhcmRpbmFsaXR5XCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYXNlbnNpdGl2ZVwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgIFwiYXRcIixcbiAgICBcImF0YW5cIixcbiAgICBcImF0b21pY1wiLFxuICAgIFwiYXV0aG9yaXphdGlvblwiLFxuICAgIFwiYXZnXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiYmVnaW5fZnJhbWVcIixcbiAgICBcImJlZ2luX3BhcnRpdGlvblwiLFxuICAgIFwiYmV0d2VlblwiLFxuICAgIFwiYmlnaW50XCIsXG4gICAgXCJiaW5hcnlcIixcbiAgICBcImJsb2JcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImJvdGhcIixcbiAgICBcImJ5XCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJjYWxsZWRcIixcbiAgICBcImNhcmRpbmFsaXR5XCIsXG4gICAgXCJjYXNjYWRlZFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2VpbGluZ1wiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiY2hhcl9sZW5ndGhcIixcbiAgICBcImNoYXJhY3RlclwiLFxuICAgIFwiY2hhcmFjdGVyX2xlbmd0aFwiLFxuICAgIFwiY2hlY2tcIixcbiAgICBcImNsYXNzaWZpZXJcIixcbiAgICBcImNsb2JcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb2FsZXNjZVwiLFxuICAgIFwiY29sbGF0ZVwiLFxuICAgIFwiY29sbGVjdFwiLFxuICAgIFwiY29sdW1uXCIsXG4gICAgXCJjb21taXRcIixcbiAgICBcImNvbmRpdGlvblwiLFxuICAgIFwiY29ubmVjdFwiLFxuICAgIFwiY29uc3RyYWludFwiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcImNvbnZlcnRcIixcbiAgICBcImNvcHlcIixcbiAgICBcImNvcnJcIixcbiAgICBcImNvcnJlc3BvbmRpbmdcIixcbiAgICBcImNvc1wiLFxuICAgIFwiY29zaFwiLFxuICAgIFwiY291bnRcIixcbiAgICBcImNvdmFyX3BvcFwiLFxuICAgIFwiY292YXJfc2FtcFwiLFxuICAgIFwiY3JlYXRlXCIsXG4gICAgXCJjcm9zc1wiLFxuICAgIFwiY3ViZVwiLFxuICAgIFwiY3VtZV9kaXN0XCIsXG4gICAgXCJjdXJyZW50XCIsXG4gICAgXCJjdXJyZW50X2NhdGFsb2dcIixcbiAgICBcImN1cnJlbnRfZGF0ZVwiLFxuICAgIFwiY3VycmVudF9kZWZhdWx0X3RyYW5zZm9ybV9ncm91cFwiLFxuICAgIFwiY3VycmVudF9wYXRoXCIsXG4gICAgXCJjdXJyZW50X3JvbGVcIixcbiAgICBcImN1cnJlbnRfcm93XCIsXG4gICAgXCJjdXJyZW50X3NjaGVtYVwiLFxuICAgIFwiY3VycmVudF90aW1lXCIsXG4gICAgXCJjdXJyZW50X3RpbWVzdGFtcFwiLFxuICAgIFwiY3VycmVudF9wYXRoXCIsXG4gICAgXCJjdXJyZW50X3JvbGVcIixcbiAgICBcImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlXCIsXG4gICAgXCJjdXJyZW50X3VzZXJcIixcbiAgICBcImN1cnNvclwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRheVwiLFxuICAgIFwiZGVhbGxvY2F0ZVwiLFxuICAgIFwiZGVjXCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJkZWNmbG9hdFwiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVmaW5lXCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcImRlbnNlX3JhbmtcIixcbiAgICBcImRlcmVmXCIsXG4gICAgXCJkZXNjcmliZVwiLFxuICAgIFwiZGV0ZXJtaW5pc3RpY1wiLFxuICAgIFwiZGlzY29ubmVjdFwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxlbWVudFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW1wdHlcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW5kX2ZyYW1lXCIsXG4gICAgXCJlbmRfcGFydGl0aW9uXCIsXG4gICAgXCJlbmQtZXhlY1wiLFxuICAgIFwiZXF1YWxzXCIsXG4gICAgXCJlc2NhcGVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJleGNlcHRcIixcbiAgICBcImV4ZWNcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZXhwXCIsXG4gICAgXCJleHRlcm5hbFwiLFxuICAgIFwiZXh0cmFjdFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcImZldGNoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZpcnN0X3ZhbHVlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZmxvb3JcIixcbiAgICBcImZvclwiLFxuICAgIFwiZm9yZWlnblwiLFxuICAgIFwiZnJhbWVfcm93XCIsXG4gICAgXCJmcmVlXCIsXG4gICAgXCJmcm9tXCIsXG4gICAgXCJmdWxsXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwiZnVzaW9uXCIsXG4gICAgXCJnZXRcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ3JhbnRcIixcbiAgICBcImdyb3VwXCIsXG4gICAgXCJncm91cGluZ1wiLFxuICAgIFwiZ3JvdXBzXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImhvbGRcIixcbiAgICBcImhvdXJcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5kaWNhdG9yXCIsXG4gICAgXCJpbml0aWFsXCIsXG4gICAgXCJpbm5lclwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImluc2Vuc2l0aXZlXCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludFwiLFxuICAgIFwiaW50ZWdlclwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnRlcnNlY3Rpb25cIixcbiAgICBcImludGVydmFsXCIsXG4gICAgXCJpbnRvXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiam9pblwiLFxuICAgIFwianNvbl9hcnJheVwiLFxuICAgIFwianNvbl9hcnJheWFnZ1wiLFxuICAgIFwianNvbl9leGlzdHNcIixcbiAgICBcImpzb25fb2JqZWN0XCIsXG4gICAgXCJqc29uX29iamVjdGFnZ1wiLFxuICAgIFwianNvbl9xdWVyeVwiLFxuICAgIFwianNvbl90YWJsZVwiLFxuICAgIFwianNvbl90YWJsZV9wcmltaXRpdmVcIixcbiAgICBcImpzb25fdmFsdWVcIixcbiAgICBcImxhZ1wiLFxuICAgIFwibGFuZ3VhZ2VcIixcbiAgICBcImxhcmdlXCIsXG4gICAgXCJsYXN0X3ZhbHVlXCIsXG4gICAgXCJsYXRlcmFsXCIsXG4gICAgXCJsZWFkXCIsXG4gICAgXCJsZWFkaW5nXCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJsaWtlXCIsXG4gICAgXCJsaWtlX3JlZ2V4XCIsXG4gICAgXCJsaXN0YWdnXCIsXG4gICAgXCJsblwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImxvY2FsdGltZVwiLFxuICAgIFwibG9jYWx0aW1lc3RhbXBcIixcbiAgICBcImxvZ1wiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvd2VyXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF0Y2hfbnVtYmVyXCIsXG4gICAgXCJtYXRjaF9yZWNvZ25pemVcIixcbiAgICBcIm1hdGNoZXNcIixcbiAgICBcIm1heFwiLFxuICAgIFwibWVtYmVyXCIsXG4gICAgXCJtZXJnZVwiLFxuICAgIFwibWV0aG9kXCIsXG4gICAgXCJtaW5cIixcbiAgICBcIm1pbnV0ZVwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJtb2RpZmllc1wiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwibXVsdGlzZXRcIixcbiAgICBcIm5hdGlvbmFsXCIsXG4gICAgXCJuYXR1cmFsXCIsXG4gICAgXCJuY2hhclwiLFxuICAgIFwibmNsb2JcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibm9cIixcbiAgICBcIm5vbmVcIixcbiAgICBcIm5vcm1hbGl6ZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJudGhfdmFsdWVcIixcbiAgICBcIm50aWxlXCIsXG4gICAgXCJudWxsXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcIm51bWVyaWNcIixcbiAgICBcIm9jdGV0X2xlbmd0aFwiLFxuICAgIFwib2NjdXJyZW5jZXNfcmVnZXhcIixcbiAgICBcIm9mXCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm9sZFwiLFxuICAgIFwib21pdFwiLFxuICAgIFwib25cIixcbiAgICBcIm9uZVwiLFxuICAgIFwib25seVwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJvdXRcIixcbiAgICBcIm91dGVyXCIsXG4gICAgXCJvdmVyXCIsXG4gICAgXCJvdmVybGFwc1wiLFxuICAgIFwib3ZlcmxheVwiLFxuICAgIFwicGFyYW1ldGVyXCIsXG4gICAgXCJwYXJ0aXRpb25cIixcbiAgICBcInBhdHRlcm5cIixcbiAgICBcInBlclwiLFxuICAgIFwicGVyY2VudFwiLFxuICAgIFwicGVyY2VudF9yYW5rXCIsXG4gICAgXCJwZXJjZW50aWxlX2NvbnRcIixcbiAgICBcInBlcmNlbnRpbGVfZGlzY1wiLFxuICAgIFwicGVyaW9kXCIsXG4gICAgXCJwb3J0aW9uXCIsXG4gICAgXCJwb3NpdGlvblwiLFxuICAgIFwicG9zaXRpb25fcmVnZXhcIixcbiAgICBcInBvd2VyXCIsXG4gICAgXCJwcmVjZWRlc1wiLFxuICAgIFwicHJlY2lzaW9uXCIsXG4gICAgXCJwcmVwYXJlXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcInB0ZlwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJhbmtcIixcbiAgICBcInJlYWRzXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJyZWN1cnNpdmVcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmVmZXJlbmNlc1wiLFxuICAgIFwicmVmZXJlbmNpbmdcIixcbiAgICBcInJlZ3JfYXZneFwiLFxuICAgIFwicmVncl9hdmd5XCIsXG4gICAgXCJyZWdyX2NvdW50XCIsXG4gICAgXCJyZWdyX2ludGVyY2VwdFwiLFxuICAgIFwicmVncl9yMlwiLFxuICAgIFwicmVncl9zbG9wZVwiLFxuICAgIFwicmVncl9zeHhcIixcbiAgICBcInJlZ3Jfc3h5XCIsXG4gICAgXCJyZWdyX3N5eVwiLFxuICAgIFwicmVsZWFzZVwiLFxuICAgIFwicmVzdWx0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInJldHVybnNcIixcbiAgICBcInJldm9rZVwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJvbGxiYWNrXCIsXG4gICAgXCJyb2xsdXBcIixcbiAgICBcInJvd1wiLFxuICAgIFwicm93X251bWJlclwiLFxuICAgIFwicm93c1wiLFxuICAgIFwicnVubmluZ1wiLFxuICAgIFwic2F2ZXBvaW50XCIsXG4gICAgXCJzY29wZVwiLFxuICAgIFwic2Nyb2xsXCIsXG4gICAgXCJzZWFyY2hcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwic2Vla1wiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZW5zaXRpdmVcIixcbiAgICBcInNlc3Npb25fdXNlclwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzaG93XCIsXG4gICAgXCJzaW1pbGFyXCIsXG4gICAgXCJzaW5cIixcbiAgICBcInNpbmhcIixcbiAgICBcInNraXBcIixcbiAgICBcInNtYWxsaW50XCIsXG4gICAgXCJzb21lXCIsXG4gICAgXCJzcGVjaWZpY1wiLFxuICAgIFwic3BlY2lmaWN0eXBlXCIsXG4gICAgXCJzcWxcIixcbiAgICBcInNxbGV4Y2VwdGlvblwiLFxuICAgIFwic3Fsc3RhdGVcIixcbiAgICBcInNxbHdhcm5pbmdcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0ZGRldl9wb3BcIixcbiAgICBcInN0ZGRldl9zYW1wXCIsXG4gICAgXCJzdWJtdWx0aXNldFwiLFxuICAgIFwic3Vic2V0XCIsXG4gICAgXCJzdWJzdHJpbmdcIixcbiAgICBcInN1YnN0cmluZ19yZWdleFwiLFxuICAgIFwic3VjY2VlZHNcIixcbiAgICBcInN1bVwiLFxuICAgIFwic3ltbWV0cmljXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcInN5c3RlbV90aW1lXCIsXG4gICAgXCJzeXN0ZW1fdXNlclwiLFxuICAgIFwidGFibGVcIixcbiAgICBcInRhYmxlc2FtcGxlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInRhbmhcIixcbiAgICBcInRoZW5cIixcbiAgICBcInRpbWVcIixcbiAgICBcInRpbWVzdGFtcFwiLFxuICAgIFwidGltZXpvbmVfaG91clwiLFxuICAgIFwidGltZXpvbmVfbWludXRlXCIsXG4gICAgXCJ0b1wiLFxuICAgIFwidHJhaWxpbmdcIixcbiAgICBcInRyYW5zbGF0ZVwiLFxuICAgIFwidHJhbnNsYXRlX3JlZ2V4XCIsXG4gICAgXCJ0cmFuc2xhdGlvblwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcInRyaWdnZXJcIixcbiAgICBcInRyaW1cIixcbiAgICBcInRyaW1fYXJyYXlcIixcbiAgICBcInRydWVcIixcbiAgICBcInRydW5jYXRlXCIsXG4gICAgXCJ1ZXNjYXBlXCIsXG4gICAgXCJ1bmlvblwiLFxuICAgIFwidW5pcXVlXCIsXG4gICAgXCJ1bmtub3duXCIsXG4gICAgXCJ1bm5lc3RcIixcbiAgICBcInVwZGF0ZVwiLFxuICAgIFwidXBwZXJcIixcbiAgICBcInVzZXJcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2YWx1ZVwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2YWx1ZV9vZlwiLFxuICAgIFwidmFyX3BvcFwiLFxuICAgIFwidmFyX3NhbXBcIixcbiAgICBcInZhcmJpbmFyeVwiLFxuICAgIFwidmFyY2hhclwiLFxuICAgIFwidmFyeWluZ1wiLFxuICAgIFwidmVyc2lvbmluZ1wiLFxuICAgIFwid2hlblwiLFxuICAgIFwid2hlbmV2ZXJcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aWR0aF9idWNrZXRcIixcbiAgICBcIndpbmRvd1wiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJ3aXRob3V0XCIsXG4gICAgXCJ5ZWFyXCIsXG4gIF07XG5cbiAgLy8gdGhlc2UgYXJlIHJlc2VydmVkIHdvcmRzIHdlIGhhdmUgaWRlbnRpZmllZCB0byBiZSBmdW5jdGlvbnNcbiAgLy8gYW5kIHNob3VsZCBvbmx5IGJlIGhpZ2hsaWdodGVkIGluIGEgZGlzcGF0Y2gtbGlrZSBjb250ZXh0XG4gIC8vIGllLCBhcnJheV9hZ2coLi4uKSwgZXRjLlxuICBjb25zdCBSRVNFUlZFRF9GVU5DVElPTlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXZnXCIsXG4gICAgXCJjYXN0XCIsXG4gICAgXCJjZWlsXCIsXG4gICAgXCJjZWlsaW5nXCIsXG4gICAgXCJjb2FsZXNjZVwiLFxuICAgIFwiY29yclwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJjb3VudFwiLFxuICAgIFwiY292YXJfcG9wXCIsXG4gICAgXCJjb3Zhcl9zYW1wXCIsXG4gICAgXCJjdW1lX2Rpc3RcIixcbiAgICBcImRlbnNlX3JhbmtcIixcbiAgICBcImRlcmVmXCIsXG4gICAgXCJlbGVtZW50XCIsXG4gICAgXCJleHBcIixcbiAgICBcImV4dHJhY3RcIixcbiAgICBcImZpcnN0X3ZhbHVlXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwianNvbl9hcnJheVwiLFxuICAgIFwianNvbl9hcnJheWFnZ1wiLFxuICAgIFwianNvbl9leGlzdHNcIixcbiAgICBcImpzb25fb2JqZWN0XCIsXG4gICAgXCJqc29uX29iamVjdGFnZ1wiLFxuICAgIFwianNvbl9xdWVyeVwiLFxuICAgIFwianNvbl90YWJsZVwiLFxuICAgIFwianNvbl90YWJsZV9wcmltaXRpdmVcIixcbiAgICBcImpzb25fdmFsdWVcIixcbiAgICBcImxhZ1wiLFxuICAgIFwibGFzdF92YWx1ZVwiLFxuICAgIFwibGVhZFwiLFxuICAgIFwibGlzdGFnZ1wiLFxuICAgIFwibG5cIixcbiAgICBcImxvZ1wiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvd2VyXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJudGhfdmFsdWVcIixcbiAgICBcIm50aWxlXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcInBlcmNlbnRfcmFua1wiLFxuICAgIFwicGVyY2VudGlsZV9jb250XCIsXG4gICAgXCJwZXJjZW50aWxlX2Rpc2NcIixcbiAgICBcInBvc2l0aW9uXCIsXG4gICAgXCJwb3NpdGlvbl9yZWdleFwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInJhbmtcIixcbiAgICBcInJlZ3JfYXZneFwiLFxuICAgIFwicmVncl9hdmd5XCIsXG4gICAgXCJyZWdyX2NvdW50XCIsXG4gICAgXCJyZWdyX2ludGVyY2VwdFwiLFxuICAgIFwicmVncl9yMlwiLFxuICAgIFwicmVncl9zbG9wZVwiLFxuICAgIFwicmVncl9zeHhcIixcbiAgICBcInJlZ3Jfc3h5XCIsXG4gICAgXCJyZWdyX3N5eVwiLFxuICAgIFwicm93X251bWJlclwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzaW5oXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJzdGRkZXZfcG9wXCIsXG4gICAgXCJzdGRkZXZfc2FtcFwiLFxuICAgIFwic3Vic3RyaW5nXCIsXG4gICAgXCJzdWJzdHJpbmdfcmVnZXhcIixcbiAgICBcInN1bVwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0YW5oXCIsXG4gICAgXCJ0cmFuc2xhdGVcIixcbiAgICBcInRyYW5zbGF0ZV9yZWdleFwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcInRyaW1cIixcbiAgICBcInRyaW1fYXJyYXlcIixcbiAgICBcInVubmVzdFwiLFxuICAgIFwidXBwZXJcIixcbiAgICBcInZhbHVlX29mXCIsXG4gICAgXCJ2YXJfcG9wXCIsXG4gICAgXCJ2YXJfc2FtcFwiLFxuICAgIFwid2lkdGhfYnVja2V0XCIsXG4gIF07XG5cbiAgLy8gdGhlc2UgZnVuY3Rpb25zIGNhblxuICBjb25zdCBQT1NTSUJMRV9XSVRIT1VUX1BBUkVOUyA9IFtcbiAgICBcImN1cnJlbnRfY2F0YWxvZ1wiLFxuICAgIFwiY3VycmVudF9kYXRlXCIsXG4gICAgXCJjdXJyZW50X2RlZmF1bHRfdHJhbnNmb3JtX2dyb3VwXCIsXG4gICAgXCJjdXJyZW50X3BhdGhcIixcbiAgICBcImN1cnJlbnRfcm9sZVwiLFxuICAgIFwiY3VycmVudF9zY2hlbWFcIixcbiAgICBcImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlXCIsXG4gICAgXCJjdXJyZW50X3VzZXJcIixcbiAgICBcInNlc3Npb25fdXNlclwiLFxuICAgIFwic3lzdGVtX3RpbWVcIixcbiAgICBcInN5c3RlbV91c2VyXCIsXG4gICAgXCJjdXJyZW50X3RpbWVcIixcbiAgICBcImxvY2FsdGltZVwiLFxuICAgIFwiY3VycmVudF90aW1lc3RhbXBcIixcbiAgICBcImxvY2FsdGltZXN0YW1wXCJcbiAgXTtcblxuICAvLyB0aG9zZSBleGlzdCB0byBib29zdCByZWxldmFuY2UgbWFraW5nIHRoZXNlIHZlcnlcbiAgLy8gXCJTUUwgbGlrZVwiIGtleXdvcmQgY29tYm9zIHdvcnRoICsxIGV4dHJhIHJlbGV2YW5jZVxuICBjb25zdCBDT01CT1MgPSBbXG4gICAgXCJjcmVhdGUgdGFibGVcIixcbiAgICBcImluc2VydCBpbnRvXCIsXG4gICAgXCJwcmltYXJ5IGtleVwiLFxuICAgIFwiZm9yZWlnbiBrZXlcIixcbiAgICBcIm5vdCBudWxsXCIsXG4gICAgXCJhbHRlciB0YWJsZVwiLFxuICAgIFwiYWRkIGNvbnN0cmFpbnRcIixcbiAgICBcImdyb3VwaW5nIHNldHNcIixcbiAgICBcIm9uIG92ZXJmbG93XCIsXG4gICAgXCJjaGFyYWN0ZXIgc2V0XCIsXG4gICAgXCJyZXNwZWN0IG51bGxzXCIsXG4gICAgXCJpZ25vcmUgbnVsbHNcIixcbiAgICBcIm51bGxzIGZpcnN0XCIsXG4gICAgXCJudWxscyBsYXN0XCIsXG4gICAgXCJkZXB0aCBmaXJzdFwiLFxuICAgIFwiYnJlYWR0aCBmaXJzdFwiXG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05TID0gUkVTRVJWRURfRlVOQ1RJT05TO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIC4uLlJFU0VSVkVEX1dPUkRTLFxuICAgIC4uLk5PTl9SRVNFUlZFRF9XT1JEU1xuICBdLmZpbHRlcigoa2V5d29yZCkgPT4ge1xuICAgIHJldHVybiAhUkVTRVJWRURfRlVOQ1RJT05TLmluY2x1ZGVzKGtleXdvcmQpO1xuICB9KTtcblxuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBiZWdpbjogL0BbYS16MC05XVthLXowLTlfXSovLFxuICB9O1xuXG4gIGNvbnN0IE9QRVJBVE9SID0ge1xuICAgIGNsYXNzTmFtZTogXCJvcGVyYXRvclwiLFxuICAgIGJlZ2luOiAvWy0rKi89JV5+XXwmJj98XFx8XFx8P3whPT98PCg/Oj0+P3w8fD4pP3w+Wz49XT8vLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcYi8sIHJlZ2V4LmVpdGhlciguLi5GVU5DVElPTlMpLCAvXFxzKlxcKC8pLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBrZXl3b3JkczogeyBidWlsdF9pbjogRlVOQ1RJT05TIH1cbiAgfTtcblxuICAvLyBrZXl3b3JkcyB3aXRoIGxlc3MgdGhhbiAzIGxldHRlcnMgYXJlIHJlZHVjZWQgaW4gcmVsZXZhbmN5XG4gIGZ1bmN0aW9uIHJlZHVjZVJlbGV2YW5jeShsaXN0LCB7XG4gICAgZXhjZXB0aW9ucywgd2hlblxuICB9ID0ge30pIHtcbiAgICBjb25zdCBxdWFsaWZ5Rm4gPSB3aGVuO1xuICAgIGV4Y2VwdGlvbnMgPSBleGNlcHRpb25zIHx8IFtdO1xuICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubWF0Y2goL1xcfFxcZCskLykgfHwgZXhjZXB0aW9ucy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0gZWxzZSBpZiAocXVhbGlmeUZuKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBgJHtpdGVtfXwwYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU1FMJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIC8vIGRvZXMgbm90IGluY2x1ZGUge30gb3IgSFRNTCB0YWdzIGA8L2BcbiAgICBpbGxlZ2FsOiAvW3t9XXw8XFwvLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9cXGJbXFx3XFwuXSsvLFxuICAgICAga2V5d29yZDpcbiAgICAgICAgcmVkdWNlUmVsZXZhbmN5KEtFWVdPUkRTLCB7IHdoZW46ICh4KSA9PiB4Lmxlbmd0aCA8IDMgfSksXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIHR5cGU6IFRZUEVTLFxuICAgICAgYnVpbHRfaW46IFBPU1NJQkxFX1dJVEhPVVRfUEFSRU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogcmVnZXguZWl0aGVyKC4uLkNPTUJPUyksXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1tcXHdcXC5dKy8sXG4gICAgICAgICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KENPTUJPUyksXG4gICAgICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICAgICAgdHlwZTogVFlQRVNcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJ0eXBlXCIsXG4gICAgICAgIGJlZ2luOiByZWdleC5laXRoZXIoLi4uTVVMVElfV09SRF9UWVBFUylcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9DQUxMLFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBTVFJJTkcsXG4gICAgICBRVU9URURfSURFTlRJRklFUixcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDT01NRU5UX01PREUsXG4gICAgICBPUEVSQVRPUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzcWw7XG4iLCAiLypcbkxhbmd1YWdlOiBTdGFuXG5EZXNjcmlwdGlvbjogVGhlIFN0YW4gcHJvYmFiaWxpc3RpYyBwcm9ncmFtbWluZyBsYW5ndWFnZVxuQXV0aG9yOiBTZWFuIFBpbmtuZXkgPHNlYW4ucGlua25leUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbWMtc3Rhbi5vcmcvXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuZnVuY3Rpb24gc3RhbihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gdmFyaWFibGUgbmFtZXMgY2Fubm90IGNvbmZsaWN0IHdpdGggYmxvY2sgaWRlbnRpZmllcnNcbiAgY29uc3QgQkxPQ0tTID0gW1xuICAgICdmdW5jdGlvbnMnLFxuICAgICdtb2RlbCcsXG4gICAgJ2RhdGEnLFxuICAgICdwYXJhbWV0ZXJzJyxcbiAgICAncXVhbnRpdGllcycsXG4gICAgJ3RyYW5zZm9ybWVkJyxcbiAgICAnZ2VuZXJhdGVkJ1xuICBdO1xuXG4gIGNvbnN0IFNUQVRFTUVOVFMgPSBbXG4gICAgJ2ZvcicsXG4gICAgJ2luJyxcbiAgICAnaWYnLFxuICAgICdlbHNlJyxcbiAgICAnd2hpbGUnLFxuICAgICdicmVhaycsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAncmV0dXJuJ1xuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgICdhcnJheScsXG4gICAgJ3R1cGxlJyxcbiAgICAnY29tcGxleCcsXG4gICAgJ2ludCcsXG4gICAgJ3JlYWwnLFxuICAgICd2ZWN0b3InLFxuICAgICdjb21wbGV4X3ZlY3RvcicsXG4gICAgJ29yZGVyZWQnLFxuICAgICdwb3NpdGl2ZV9vcmRlcmVkJyxcbiAgICAnc2ltcGxleCcsXG4gICAgJ3VuaXRfdmVjdG9yJyxcbiAgICAncm93X3ZlY3RvcicsXG4gICAgJ2NvbXBsZXhfcm93X3ZlY3RvcicsXG4gICAgJ21hdHJpeCcsXG4gICAgJ2NvbXBsZXhfbWF0cml4JyxcbiAgICAnY2hvbGVza3lfZmFjdG9yX2NvcnJ8MTAnLFxuICAgICdjaG9sZXNreV9mYWN0b3JfY292fDEwJyxcbiAgICAnY29ycl9tYXRyaXh8MTAnLFxuICAgICdjb3ZfbWF0cml4fDEwJyxcbiAgICAndm9pZCdcbiAgXTtcblxuICAvLyB0byBnZXQgdGhlIGZ1bmN0aW9ucyBsaXN0XG4gIC8vIGNsb25lIHRoZSBbc3Rhbi1kb2NzIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFuLWRldi9kb2NzKVxuICAvLyB0aGVuIGNkIGludG8gaXQgYW5kIHJ1biB0aGlzIGJhc2ggc2NyaXB0IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2pvc2hnb2ViZWwvZGNkMzNmODJkNDA1OWE5MDdjOTg2MDQ5ODkzODQzY2ZcbiAgLy9cbiAgLy8gdGhlIG91dHB1dCBmaWxlcyBhcmVcbiAgLy8gZGlzdHJpYnV0aW9uc19xdW90ZWQudHh0XG4gIC8vIGZ1bmN0aW9uc19xdW90ZWQudHh0XG5cbiAgY29uc3QgRlVOQ1RJT05TID0gW1xuICAgICdhYnMnLFxuICAgICdhY29zJyxcbiAgICAnYWNvc2gnLFxuICAgICdhZGRfZGlhZycsXG4gICAgJ2FsZ2VicmFfc29sdmVyJyxcbiAgICAnYWxnZWJyYV9zb2x2ZXJfbmV3dG9uJyxcbiAgICAnYXBwZW5kX2FycmF5JyxcbiAgICAnYXBwZW5kX2NvbCcsXG4gICAgJ2FwcGVuZF9yb3cnLFxuICAgICdhc2luJyxcbiAgICAnYXNpbmgnLFxuICAgICdhdGFuJyxcbiAgICAnYXRhbjInLFxuICAgICdhdGFuaCcsXG4gICAgJ2Jlc3NlbF9maXJzdF9raW5kJyxcbiAgICAnYmVzc2VsX3NlY29uZF9raW5kJyxcbiAgICAnYmluYXJ5X2xvZ19sb3NzJyxcbiAgICAnYmxvY2snLFxuICAgICdjYnJ0JyxcbiAgICAnY2VpbCcsXG4gICAgJ2Nob2wyaW52JyxcbiAgICAnY2hvbGVza3lfZGVjb21wb3NlJyxcbiAgICAnY2hvb3NlJyxcbiAgICAnY29sJyxcbiAgICAnY29scycsXG4gICAgJ2NvbHVtbnNfZG90X3Byb2R1Y3QnLFxuICAgICdjb2x1bW5zX2RvdF9zZWxmJyxcbiAgICAnY29tcGxleF9zY2h1cl9kZWNvbXBvc2UnLFxuICAgICdjb21wbGV4X3NjaHVyX2RlY29tcG9zZV90JyxcbiAgICAnY29tcGxleF9zY2h1cl9kZWNvbXBvc2VfdScsXG4gICAgJ2NvbmonLFxuICAgICdjb3MnLFxuICAgICdjb3NoJyxcbiAgICAnY292X2V4cF9xdWFkJyxcbiAgICAnY3Jvc3Nwcm9kJyxcbiAgICAnY3NyX2V4dHJhY3QnLFxuICAgICdjc3JfZXh0cmFjdF91JyxcbiAgICAnY3NyX2V4dHJhY3RfdicsXG4gICAgJ2Nzcl9leHRyYWN0X3cnLFxuICAgICdjc3JfbWF0cml4X3RpbWVzX3ZlY3RvcicsXG4gICAgJ2Nzcl90b19kZW5zZV9tYXRyaXgnLFxuICAgICdjdW11bGF0aXZlX3N1bScsXG4gICAgJ2RhZScsXG4gICAgJ2RhZV90b2wnLFxuICAgICdkZXRlcm1pbmFudCcsXG4gICAgJ2RpYWdfbWF0cml4JyxcbiAgICAnZGlhZ29uYWwnLFxuICAgICdkaWFnX3Bvc3RfbXVsdGlwbHknLFxuICAgICdkaWFnX3ByZV9tdWx0aXBseScsXG4gICAgJ2RpZ2FtbWEnLFxuICAgICdkaW1zJyxcbiAgICAnZGlzdGFuY2UnLFxuICAgICdkb3RfcHJvZHVjdCcsXG4gICAgJ2RvdF9zZWxmJyxcbiAgICAnZWlnZW5kZWNvbXBvc2UnLFxuICAgICdlaWdlbmRlY29tcG9zZV9zeW0nLFxuICAgICdlaWdlbnZhbHVlcycsXG4gICAgJ2VpZ2VudmFsdWVzX3N5bScsXG4gICAgJ2VpZ2VudmVjdG9ycycsXG4gICAgJ2VpZ2VudmVjdG9yc19zeW0nLFxuICAgICdlcmYnLFxuICAgICdlcmZjJyxcbiAgICAnZXhwJyxcbiAgICAnZXhwMicsXG4gICAgJ2V4cG0xJyxcbiAgICAnZmFsbGluZ19mYWN0b3JpYWwnLFxuICAgICdmZGltJyxcbiAgICAnZmZ0JyxcbiAgICAnZmZ0MicsXG4gICAgJ2Zsb29yJyxcbiAgICAnZm1hJyxcbiAgICAnZm1heCcsXG4gICAgJ2ZtaW4nLFxuICAgICdmbW9kJyxcbiAgICAnZ2FtbWFfcCcsXG4gICAgJ2dhbW1hX3EnLFxuICAgICdnZW5lcmFsaXplZF9pbnZlcnNlJyxcbiAgICAnZ2V0X2ltYWcnLFxuICAgICdnZXRfcmVhbCcsXG4gICAgJ2hlYWQnLFxuICAgICdobW1faGlkZGVuX3N0YXRlX3Byb2InLFxuICAgICdobW1fbWFyZ2luYWwnLFxuICAgICdoeXBvdCcsXG4gICAgJ2lkZW50aXR5X21hdHJpeCcsXG4gICAgJ2luY19iZXRhJyxcbiAgICAnaW50ZWdyYXRlXzFkJyxcbiAgICAnaW50ZWdyYXRlX29kZScsXG4gICAgJ2ludGVncmF0ZV9vZGVfYWRhbXMnLFxuICAgICdpbnRlZ3JhdGVfb2RlX2JkZicsXG4gICAgJ2ludGVncmF0ZV9vZGVfcms0NScsXG4gICAgJ2ludF9zdGVwJyxcbiAgICAnaW52JyxcbiAgICAnaW52X2Nsb2dsb2cnLFxuICAgICdpbnZfZXJmYycsXG4gICAgJ2ludmVyc2UnLFxuICAgICdpbnZlcnNlX3NwZCcsXG4gICAgJ2ludl9mZnQnLFxuICAgICdpbnZfZmZ0MicsXG4gICAgJ2ludl9pbmNfYmV0YScsXG4gICAgJ2ludl9sb2dpdCcsXG4gICAgJ2ludl9QaGknLFxuICAgICdpbnZfc3FydCcsXG4gICAgJ2ludl9zcXVhcmUnLFxuICAgICdpc19pbmYnLFxuICAgICdpc19uYW4nLFxuICAgICdsYW1iZXJ0X3cwJyxcbiAgICAnbGFtYmVydF93bTEnLFxuICAgICdsYmV0YScsXG4gICAgJ2xjaG9vc2UnLFxuICAgICdsZGV4cCcsXG4gICAgJ2xnYW1tYScsXG4gICAgJ2xpbnNwYWNlZF9hcnJheScsXG4gICAgJ2xpbnNwYWNlZF9pbnRfYXJyYXknLFxuICAgICdsaW5zcGFjZWRfcm93X3ZlY3RvcicsXG4gICAgJ2xpbnNwYWNlZF92ZWN0b3InLFxuICAgICdsbWdhbW1hJyxcbiAgICAnbG11bHRpcGx5JyxcbiAgICAnbG9nJyxcbiAgICAnbG9nMW0nLFxuICAgICdsb2cxbV9leHAnLFxuICAgICdsb2cxbV9pbnZfbG9naXQnLFxuICAgICdsb2cxcCcsXG4gICAgJ2xvZzFwX2V4cCcsXG4gICAgJ2xvZ19kZXRlcm1pbmFudCcsXG4gICAgJ2xvZ19kaWZmX2V4cCcsXG4gICAgJ2xvZ19mYWxsaW5nX2ZhY3RvcmlhbCcsXG4gICAgJ2xvZ19pbnZfbG9naXQnLFxuICAgICdsb2dfaW52X2xvZ2l0X2RpZmYnLFxuICAgICdsb2dpdCcsXG4gICAgJ2xvZ19taXgnLFxuICAgICdsb2dfbW9kaWZpZWRfYmVzc2VsX2ZpcnN0X2tpbmQnLFxuICAgICdsb2dfcmlzaW5nX2ZhY3RvcmlhbCcsXG4gICAgJ2xvZ19zb2Z0bWF4JyxcbiAgICAnbG9nX3N1bV9leHAnLFxuICAgICdtYWNoaW5lX3ByZWNpc2lvbicsXG4gICAgJ21hcF9yZWN0JyxcbiAgICAnbWF0cml4X2V4cCcsXG4gICAgJ21hdHJpeF9leHBfbXVsdGlwbHknLFxuICAgICdtYXRyaXhfcG93ZXInLFxuICAgICdtYXgnLFxuICAgICdtZGl2aWRlX2xlZnRfc3BkJyxcbiAgICAnbWRpdmlkZV9sZWZ0X3RyaV9sb3cnLFxuICAgICdtZGl2aWRlX3JpZ2h0X3NwZCcsXG4gICAgJ21kaXZpZGVfcmlnaHRfdHJpX2xvdycsXG4gICAgJ21lYW4nLFxuICAgICdtaW4nLFxuICAgICdtb2RpZmllZF9iZXNzZWxfZmlyc3Rfa2luZCcsXG4gICAgJ21vZGlmaWVkX2Jlc3NlbF9zZWNvbmRfa2luZCcsXG4gICAgJ211bHRpcGx5X2xvd2VyX3RyaV9zZWxmX3RyYW5zcG9zZScsXG4gICAgJ25lZ2F0aXZlX2luZmluaXR5JyxcbiAgICAnbm9ybScsXG4gICAgJ25vcm0xJyxcbiAgICAnbm9ybTInLFxuICAgICdub3RfYV9udW1iZXInLFxuICAgICdudW1fZWxlbWVudHMnLFxuICAgICdvZGVfYWRhbXMnLFxuICAgICdvZGVfYWRhbXNfdG9sJyxcbiAgICAnb2RlX2Fkam9pbnRfdG9sX2N0bCcsXG4gICAgJ29kZV9iZGYnLFxuICAgICdvZGVfYmRmX3RvbCcsXG4gICAgJ29kZV9ja3JrJyxcbiAgICAnb2RlX2NrcmtfdG9sJyxcbiAgICAnb2RlX3JrNDUnLFxuICAgICdvZGVfcms0NV90b2wnLFxuICAgICdvbmVfaG90X2FycmF5JyxcbiAgICAnb25lX2hvdF9pbnRfYXJyYXknLFxuICAgICdvbmVfaG90X3Jvd192ZWN0b3InLFxuICAgICdvbmVfaG90X3ZlY3RvcicsXG4gICAgJ29uZXNfYXJyYXknLFxuICAgICdvbmVzX2ludF9hcnJheScsXG4gICAgJ29uZXNfcm93X3ZlY3RvcicsXG4gICAgJ29uZXNfdmVjdG9yJyxcbiAgICAnb3dlbnNfdCcsXG4gICAgJ1BoaScsXG4gICAgJ1BoaV9hcHByb3gnLFxuICAgICdwb2xhcicsXG4gICAgJ3Bvc2l0aXZlX2luZmluaXR5JyxcbiAgICAncG93JyxcbiAgICAncHJpbnQnLFxuICAgICdwcm9kJyxcbiAgICAncHJvaicsXG4gICAgJ3FyJyxcbiAgICAncXJfUScsXG4gICAgJ3FyX1InLFxuICAgICdxcl90aGluJyxcbiAgICAncXJfdGhpbl9RJyxcbiAgICAncXJfdGhpbl9SJyxcbiAgICAncXVhZF9mb3JtJyxcbiAgICAncXVhZF9mb3JtX2RpYWcnLFxuICAgICdxdWFkX2Zvcm1fc3ltJyxcbiAgICAncXVhbnRpbGUnLFxuICAgICdyYW5rJyxcbiAgICAncmVkdWNlX3N1bScsXG4gICAgJ3JlamVjdCcsXG4gICAgJ3JlcF9hcnJheScsXG4gICAgJ3JlcF9tYXRyaXgnLFxuICAgICdyZXBfcm93X3ZlY3RvcicsXG4gICAgJ3JlcF92ZWN0b3InLFxuICAgICdyZXZlcnNlJyxcbiAgICAncmlzaW5nX2ZhY3RvcmlhbCcsXG4gICAgJ3JvdW5kJyxcbiAgICAncm93JyxcbiAgICAncm93cycsXG4gICAgJ3Jvd3NfZG90X3Byb2R1Y3QnLFxuICAgICdyb3dzX2RvdF9zZWxmJyxcbiAgICAnc2NhbGVfbWF0cml4X2V4cF9tdWx0aXBseScsXG4gICAgJ3NkJyxcbiAgICAnc2VnbWVudCcsXG4gICAgJ3NpbicsXG4gICAgJ3Npbmd1bGFyX3ZhbHVlcycsXG4gICAgJ3NpbmgnLFxuICAgICdzaXplJyxcbiAgICAnc29mdG1heCcsXG4gICAgJ3NvcnRfYXNjJyxcbiAgICAnc29ydF9kZXNjJyxcbiAgICAnc29ydF9pbmRpY2VzX2FzYycsXG4gICAgJ3NvcnRfaW5kaWNlc19kZXNjJyxcbiAgICAnc3FydCcsXG4gICAgJ3NxdWFyZScsXG4gICAgJ3NxdWFyZWRfZGlzdGFuY2UnLFxuICAgICdzdGVwJyxcbiAgICAnc3ViX2NvbCcsXG4gICAgJ3N1Yl9yb3cnLFxuICAgICdzdW0nLFxuICAgICdzdmQnLFxuICAgICdzdmRfVScsXG4gICAgJ3N2ZF9WJyxcbiAgICAnc3ltbWV0cml6ZV9mcm9tX2xvd2VyX3RyaScsXG4gICAgJ3RhaWwnLFxuICAgICd0YW4nLFxuICAgICd0YW5oJyxcbiAgICAndGFyZ2V0JyxcbiAgICAndGNyb3NzcHJvZCcsXG4gICAgJ3RnYW1tYScsXG4gICAgJ3RvX2FycmF5XzFkJyxcbiAgICAndG9fYXJyYXlfMmQnLFxuICAgICd0b19jb21wbGV4JyxcbiAgICAndG9faW50JyxcbiAgICAndG9fbWF0cml4JyxcbiAgICAndG9fcm93X3ZlY3RvcicsXG4gICAgJ3RvX3ZlY3RvcicsXG4gICAgJ3RyYWNlJyxcbiAgICAndHJhY2VfZ2VuX3F1YWRfZm9ybScsXG4gICAgJ3RyYWNlX3F1YWRfZm9ybScsXG4gICAgJ3RyaWdhbW1hJyxcbiAgICAndHJ1bmMnLFxuICAgICd1bmlmb3JtX3NpbXBsZXgnLFxuICAgICd2YXJpYW5jZScsXG4gICAgJ3plcm9zX2FycmF5JyxcbiAgICAnemVyb3NfaW50X2FycmF5JyxcbiAgICAnemVyb3Nfcm93X3ZlY3RvcidcbiAgXTtcblxuICBjb25zdCBESVNUUklCVVRJT05TID0gW1xuICAgICdiZXJub3VsbGknLFxuICAgICdiZXJub3VsbGlfbG9naXQnLFxuICAgICdiZXJub3VsbGlfbG9naXRfZ2xtJyxcbiAgICAnYmV0YScsXG4gICAgJ2JldGFfYmlub21pYWwnLFxuICAgICdiZXRhX3Byb3BvcnRpb24nLFxuICAgICdiaW5vbWlhbCcsXG4gICAgJ2Jpbm9taWFsX2xvZ2l0JyxcbiAgICAnY2F0ZWdvcmljYWwnLFxuICAgICdjYXRlZ29yaWNhbF9sb2dpdCcsXG4gICAgJ2NhdGVnb3JpY2FsX2xvZ2l0X2dsbScsXG4gICAgJ2NhdWNoeScsXG4gICAgJ2NoaV9zcXVhcmUnLFxuICAgICdkaXJpY2hsZXQnLFxuICAgICdkaXNjcmV0ZV9yYW5nZScsXG4gICAgJ2RvdWJsZV9leHBvbmVudGlhbCcsXG4gICAgJ2V4cF9tb2Rfbm9ybWFsJyxcbiAgICAnZXhwb25lbnRpYWwnLFxuICAgICdmcmVjaGV0JyxcbiAgICAnZ2FtbWEnLFxuICAgICdnYXVzc2lhbl9kbG1fb2JzJyxcbiAgICAnZ3VtYmVsJyxcbiAgICAnaG1tX2xhdGVudCcsXG4gICAgJ2h5cGVyZ2VvbWV0cmljJyxcbiAgICAnaW52X2NoaV9zcXVhcmUnLFxuICAgICdpbnZfZ2FtbWEnLFxuICAgICdpbnZfd2lzaGFydCcsXG4gICAgJ2ludl93aXNoYXJ0X2Nob2xlc2t5JyxcbiAgICAnbGtqX2NvcnInLFxuICAgICdsa2pfY29ycl9jaG9sZXNreScsXG4gICAgJ2xvZ2lzdGljJyxcbiAgICAnbG9nbG9naXN0aWMnLFxuICAgICdsb2dub3JtYWwnLFxuICAgICdtdWx0aV9ncCcsXG4gICAgJ211bHRpX2dwX2Nob2xlc2t5JyxcbiAgICAnbXVsdGlub21pYWwnLFxuICAgICdtdWx0aW5vbWlhbF9sb2dpdCcsXG4gICAgJ211bHRpX25vcm1hbCcsXG4gICAgJ211bHRpX25vcm1hbF9jaG9sZXNreScsXG4gICAgJ211bHRpX25vcm1hbF9wcmVjJyxcbiAgICAnbXVsdGlfc3R1ZGVudF9jaG9sZXNreV90JyxcbiAgICAnbXVsdGlfc3R1ZGVudF90JyxcbiAgICAnbXVsdGlfc3R1ZGVudF90X2Nob2xlc2t5JyxcbiAgICAnbmVnX2Jpbm9taWFsJyxcbiAgICAnbmVnX2Jpbm9taWFsXzInLFxuICAgICduZWdfYmlub21pYWxfMl9sb2cnLFxuICAgICduZWdfYmlub21pYWxfMl9sb2dfZ2xtJyxcbiAgICAnbm9ybWFsJyxcbiAgICAnbm9ybWFsX2lkX2dsbScsXG4gICAgJ29yZGVyZWRfbG9naXN0aWMnLFxuICAgICdvcmRlcmVkX2xvZ2lzdGljX2dsbScsXG4gICAgJ29yZGVyZWRfcHJvYml0JyxcbiAgICAncGFyZXRvJyxcbiAgICAncGFyZXRvX3R5cGVfMicsXG4gICAgJ3BvaXNzb24nLFxuICAgICdwb2lzc29uX2xvZycsXG4gICAgJ3BvaXNzb25fbG9nX2dsbScsXG4gICAgJ3JheWxlaWdoJyxcbiAgICAnc2NhbGVkX2ludl9jaGlfc3F1YXJlJyxcbiAgICAnc2tld19kb3VibGVfZXhwb25lbnRpYWwnLFxuICAgICdza2V3X25vcm1hbCcsXG4gICAgJ3N0ZF9ub3JtYWwnLFxuICAgICdzdGRfbm9ybWFsX2xvZycsXG4gICAgJ3N0dWRlbnRfdCcsXG4gICAgJ3VuaWZvcm0nLFxuICAgICd2b25fbWlzZXMnLFxuICAgICd3ZWlidWxsJyxcbiAgICAnd2llbmVyJyxcbiAgICAnd2lzaGFydCcsXG4gICAgJ3dpc2hhcnRfY2hvbGVza3knXG4gIF07XG5cbiAgY29uc3QgQkxPQ0tfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAvXFwvXFwqLyxcbiAgICAvXFwqXFwvLyxcbiAgICB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7XG4gICAgICAgICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgICAgICAgIG1hdGNoOiAvQChyZXR1cm58cGFyYW0pL1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICApO1xuXG4gIGNvbnN0IElOQ0xVREUgPSB7XG4gICAgc2NvcGU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNpbmNsdWRlXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1thLXpdW2Etei0uX10rLyxcbiAgICAgICAgc2NvcGU6ICdzdHJpbmcnXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJBTkdFX0NPTlNUUkFJTlRTID0gW1xuICAgIFwibG93ZXJcIixcbiAgICBcInVwcGVyXCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm11bHRpcGxpZXJcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N0YW4nLFxuICAgIGFsaWFzZXM6IFsgJ3N0YW5mdW5jcycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IGhsanMuSURFTlRfUkUsXG4gICAgICB0aXRsZTogQkxPQ0tTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBrZXl3b3JkOiBTVEFURU1FTlRTLFxuICAgICAgYnVpbHRfaW46IEZVTkNUSU9OU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIElOQ0xVREUsXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgQkxPQ0tfQ09NTUVOVCxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdidWlsdF9pbicsXG4gICAgICAgIG1hdGNoOiAvXFxzKHBpfGV8c3FydDJ8bG9nMnxsb2cxMCkoPz1cXCgpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogcmVnZXguY29uY2F0KC9bPCxdXFxzKi8sIHJlZ2V4LmVpdGhlciguLi5SQU5HRV9DT05TVFJBSU5UUyksIC9cXHMqPS8pLFxuICAgICAgICBrZXl3b3JkczogUkFOR0VfQ09OU1RSQUlOVFNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgICAgIG1hdGNoOiAvXFxidGFyZ2V0KD89XFxzKlxcKz0pLyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGhpZ2hsaWdodHMgdGhlICdUJyBpbiBUWyxdIGZvciBvbmx5IFN0YW4gbGFuZ3VhZ2UgZGlzdHJpYnV0cmlvbnNcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvflxccyovLFxuICAgICAgICAgIHJlZ2V4LmVpdGhlciguLi5ESVNUUklCVVRJT05TKSxcbiAgICAgICAgICAvKD86XFwoXFwpKS8sXG4gICAgICAgICAgL1xccypUKD89XFxzKlxcWykvXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMjogXCJidWlsdF9pblwiLFxuICAgICAgICAgIDQ6IFwia2V5d29yZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGhpZ2hsaWdodHMgZGlzdHJpYnV0aW9ucyB0aGF0IGVuZCB3aXRoIHNwZWNpYWwgZW5kaW5nc1xuICAgICAgICBzY29wZTogJ2J1aWx0X2luJyxcbiAgICAgICAga2V5d29yZHM6IERJU1RSSUJVVElPTlMsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcdyovLCByZWdleC5laXRoZXIoLi4uRElTVFJJQlVUSU9OUyksIC8oX2xwZGZ8X2x1cGRmfF9scG1mfF9jZGZ8X2xjZGZ8X2xjY2RmfF9xZikoPz1cXHMqW1xcKC4qXFwpXSkvKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0cyBkaXN0cmlidXRpb25zIGFmdGVyIH5cbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvfi8sXG4gICAgICAgICAgL1xccyovLFxuICAgICAgICAgIHJlZ2V4LmNvbmNhdChyZWdleC5laXRoZXIoLi4uRElTVFJJQlVUSU9OUyksIC8oPz1cXHMqW1xcKC4qXFwpXSkvKVxuICAgICAgICBdLFxuICAgICAgICBzY29wZTogeyAzOiBcImJ1aWx0X2luXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0cyB1c2VyIGRlZmluZWQgZGlzdHJpYnV0aW9ucyBhZnRlciB+XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL34vLFxuICAgICAgICAgIC9cXHMqXFx3Kyg/PVxccypbXFwoLipcXCldKS8sXG4gICAgICAgICAgJyg/IS4qL1xcYignICsgcmVnZXguZWl0aGVyKC4uLkRJU1RSSUJVVElPTlMpICsgJylcXGIpJ1xuICAgICAgICBdLFxuICAgICAgICBzY29wZTogeyAyOiBcInRpdGxlLmZ1bmN0aW9uXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0cyB1c2VyIGRlZmluZWQgZGlzdHJpYnV0aW9ucyB3aXRoIHNwZWNpYWwgZW5kaW5nc1xuICAgICAgICBzY29wZTogJ3RpdGxlLmZ1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46IC9cXHcqKF9scGRmfF9sdXBkZnxfbHBtZnxfY2RmfF9sY2RmfF9sY2NkZnxfcWYpKD89XFxzKltcXCguKlxcKV0pL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgICBtYXRjaDogcmVnZXguY29uY2F0KFxuICAgICAgICAgIC8vIENvbWVzIGZyb20gQFJ1bkRldmVsb3BtZW50IGFjY2Vzc2VkIDExLzI5LzIwMjEgYXRcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vUHJpc21KUy9wcmlzbS9ibG9iL2M1M2FkMmU2NWI3MTkzYWI0ZjAzYTE3OTc1MDZhNTRiYmIzM2Q1YTIvY29tcG9uZW50cy9wcmlzbS1zdGFuLmpzI0w1NlxuXG4gICAgICAgICAgLy8gc3RhcnQgb2YgYmlnIG5vbmNhcHR1cmUgZ3JvdXAgd2hpY2hcbiAgICAgICAgICAvLyAxLiBnZXRzIG51bWJlcnMgdGhhdCBhcmUgYnkgdGhlbXNlbHZlc1xuICAgICAgICAgIC8vIDIuIG51bWJlcnMgdGhhdCBhcmUgc2VwYXJhdGVkIGJ5IF9cbiAgICAgICAgICAvLyAzLiBudW1iZXJzIHRoYXQgYXJlIHNlcGFydGVkIGJ5IC5cbiAgICAgICAgICAvKD86XFxiXFxkKyg/Ol9cXGQrKSooPzpcXC4oPzpcXGQrKD86X1xcZCspKik/KT98XFxCXFwuXFxkKyg/Ol9cXGQrKSopLyxcbiAgICAgICAgICAvLyBncmFicyBzY2llbnRpZmljIG5vdGF0aW9uXG4gICAgICAgICAgLy8gZ3JhYnMgY29tcGxleCBudW1iZXJzIHdpdGggaVxuICAgICAgICAgIC8oPzpbZUVdWystXT9cXGQrKD86X1xcZCspKik/aT8oPyFcXHcpL1xuICAgICAgICApLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGFuO1xuIiwgIi8qXG5MYW5ndWFnZTogU3RhdGFcbkF1dGhvcjogQnJpYW4gUXVpc3RvcmZmIDxicXVpc3RvcmZmQGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogRHJldyBNY0RvbmFsZCA8ZHJld21jZG9AZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFN0YXRhIGlzIGEgZ2VuZXJhbC1wdXJwb3NlIHN0YXRpc3RpY2FsIHNvZnR3YXJlIHBhY2thZ2UgY3JlYXRlZCBpbiAxOTg1IGJ5IFN0YXRhQ29ycC5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N0YXRhXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuLypcbiAgVGhpcyBpcyBhIGZvcmsgYW5kIG1vZGlmaWNhdGlvbiBvZiBEcmV3IE1jRG9uYWxkJ3MgZmlsZSAoaHR0cHM6Ly9naXRodWIuY29tL2RyZXdtY2RvbmFsZC9zdGF0YS1oaWdobGlnaHRpbmcpLiBJIGhhdmUgYWxzbyBpbmNsdWRlZCBhIGxpc3Qgb2YgYnVpbHRpbiBjb21tYW5kcyBmcm9tIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU2NDYuXG4qL1xuXG5mdW5jdGlvbiBzdGF0YShobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N0YXRhJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZG8nLFxuICAgICAgJ2FkbydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6ICdpZiBlbHNlIGluIGZvcmVhY2ggZm9yIGZvcnYgZm9ydmEgZm9ydmFsIGZvcnZhbHUgZm9ydmFsdWUgZm9ydmFsdWVzIGJ5IGJ5cyBieXNvcnQgeGkgcXVpZXRseSBxdWkgY2FwdHVyZSBhYm91dCBhYyBhY183IGFjcHJwbG90IGFjcHJwbG90XzcgYWRqdXN0IGFkbyBhZG9wYXRoIGFkb3VwZGF0ZSBhbHBoYSBhbWVhbnMgYW4gYW5vIGFub3YgYW5vdmEgYW5vdmFfZXN0YXQgYW5vdmFfdGVybXMgYW5vdmFkZWYgYW9yZGVyIGFwIGFwcCBhcHBlIGFwcGVuIGFwcGVuZCBhcmNoIGFyY2hfZHIgYXJjaF9lc3RhdCBhcmNoX3AgYXJjaGxtIGFyZWcgYXJlZ19wIGFyZ3MgYXJpbWEgYXJpbWFfZHIgYXJpbWFfZXN0YXQgYXJpbWFfcCBhcyBhc21wcm9iaXQgYXNtcHJvYml0X2VzdGF0IGFzbXByb2JpdF9sZiBhc21wcm9iaXRfbWZ4X19kbGcgYXNtcHJvYml0X3AgYXNzIGFzc2UgYXNzZXIgYXNzZXJ0IGF2cGxvdCBhdnBsb3RfNyBhdnBsb3RzIGF2cGxvdHNfNyBiY3NrZXcwIGJnb2RmcmV5IGJpYXMgYmlucmVnIGJpcDBfbGYgYmlwbG90IGJpcHBfbGYgYmlwcl9sZiBiaXByX3AgYmlwcm9iaXQgYml0ZXN0IGJpdGVzdGkgYml0b3d0IGJsb2dpdCBibWVtc2l6ZSBib290IGJvb3RzYW1wIGJvb3RzdHJhcCBib290c3RyYXBfOCBib3hjb19sIGJveGNvX3AgYm94Y294IGJveGNveF82IGJveGNveF9wIGJwcm9iaXQgYnIgYnJlYWsgYnJpZXIgYnJvIGJyb3cgYnJvd3MgYnJvd3NlIGJyciBicnJzdGF0IGJzIGJzXzcgYnNhbXBsX3cgYnNhbXBsZSBic2FtcGxlXzcgYnNxcmVnIGJzdGF0IGJzdGF0XzcgYnN0YXRfOCBic3RyYXAgYnN0cmFwXzcgYnViYmxlIGJ1YmJsZXBsb3QgY2EgY2FfZXN0YXQgY2FfcCBjYWJpcGxvdCBjYW1hdCBjYW5vbiBjYW5vbl84IGNhbm9uXzhfcCBjYW5vbl9lc3RhdCBjYW5vbl9wIGNhcCBjYXByb2plY3Rpb24gY2FwdCBjYXB0dSBjYXB0dXIgY2FwdHVyZSBjYXQgY2MgY2NoYXJ0IGNjaGFydF83IGNjaSBjZCBjZW5zb2JzX3RhYmxlIGNlbnRpbGUgY2YgY2hhciBjaGRpciBjaGVja2RsZ2ZpbGVzIGNoZWNrZXN0aW1hdGlvbnNhbXBsZSBjaGVja2hscGZpbGVzIGNoZWNrc3VtIGNoZWxwIGNpIGNpaSBjbCBjbGFzcyBjbGFzc3V0aWwgY2xlYXIgY2xpIGNsaXMgY2xpc3QgY2xvIGNsb2cgY2xvZ19sZiBjbG9nX3AgY2xvZ2kgY2xvZ2lfc3cgY2xvZ2l0IGNsb2dpdF9sZiBjbG9naXRfcCBjbG9naXRwIGNsb2dsX3N3IGNsb2dsb2cgY2xvbmV2YXIgY2xzbGlzdGFycmF5IGNsdXN0ZXIgY2x1c3Rlcl9tZWFzdXJlcyBjbHVzdGVyX3N0b3AgY2x1c3Rlcl90cmVlIGNsdXN0ZXJfdHJlZV84IGNsdXN0ZXJtYXQgY21kbG9nIGNuciBjbnJlIGNucmVnIGNucmVnX3AgY25yZWdfc3cgY25zcmVnIGNvZGVib29rIGNvbGxhcHM0IGNvbGxhcHNlIGNvbG9ybXVsdF9uYiBjb2xvcm11bHRfbncgY29tcGFyZSBjb21wcmVzcyBjb25mIGNvbmZpIGNvbmZpciBjb25maXJtIGNvbnJlbiBjb25zIGNvbnN0IGNvbnN0ciBjb25zdHJhIGNvbnN0cmFpIGNvbnN0cmFpbiBjb25zdHJhaW50IGNvbnRpbnVlIGNvbnRyYWN0IGNvcHkgY29weXJpZ2h0IGNvcHlzb3VyY2UgY29yIGNvcmMgY29yciBjb3JyMmRhdGEgY29ycl9hbnRpIGNvcnJfa21vIGNvcnJfc21jIGNvcnJlIGNvcnJlbCBjb3JyZWxhIGNvcnJlbGF0IGNvcnJlbGF0ZSBjb3JyZ3JhbSBjb3UgY291biBjb3VudCBjb3ggY294X3AgY294X3N3IGNveGJhc2UgY294aGF6IGNveHZhciBjcHJwbG90IGNwcnBsb3RfNyBjcmMgY3JldCBjcmV0dSBjcmV0dXIgY3JldHVybiBjcm9zcyBjcyBjc2NyaXB0IGNzY3JpcHRfbG9nIGNzaSBjdCBjdF9pcyBjdHNldCBjdHN0XzUgY3RzdF9zdCBjdHRvc3QgY3Vtc3AgY3Vtc3BfNyBjdW11bCBjdXN1bSBjdXN1bV83IGN1dGlsIGR8MCBkYXRhc2lnIGRhdGFzaWduIGRhdGFzaWduYSBkYXRhc2lnbmF0IGRhdGFzaWduYXR1IGRhdGFzaWduYXR1ciBkYXRhc2lnbmF0dXJlIGRhdGV0b2YgZGIgZGJldGEgZGUgZGVjIGRlY28gZGVjb2QgZGVjb2RlIGRlZmYgZGVzIGRlc2MgZGVzY3IgZGVzY3JpIGRlc2NyaWIgZGVzY3JpYmUgZGVzdHJpbmcgZGZiZXRhIGRmZ2xzIGRmdWxsZXIgZGkgZGlfZyBkaXIgZGlyc3RhdHMgZGlzIGRpc2NhcmQgZGlzcCBkaXNwX3JlcyBkaXNwX3MgZGlzcGwgZGlzcGxhIGRpc3BsYXkgZGlzdGluY3QgZG8gZG9lIGRvZWQgZG9lZGkgZG9lZGl0IGRvdHBsb3QgZG90cGxvdF83IGRwcm9iaXQgZHJhd25vcm0gZHJvcCBkcyBkc191dGlsIGRzdGRpemUgZHVwbGljYXRlcyBkdXJiaW5hIGR3c3RhdCBkeWR4IGV8MCBlZCBlZGkgZWRpdCBlZ2VuIGVpdnJlZyBlbWRlZiBlbiBlbmMgZW5jbyBlbmNvZCBlbmNvZGUgZXEgZXJhc2UgZXJlZyBlcmVnX2xmIGVyZWdfcCBlcmVnX3N3IGVyZWdoZXQgZXJlZ2hldF9nbGYgZXJlZ2hldF9nbGZfc2ggZXJlZ2hldF9ncCBlcmVnaGV0X2lsZiBlcmVnaGV0X2lsZl9zaCBlcmVnaGV0X2lwIGVyZXQgZXJldHUgZXJldHVyIGVyZXR1cm4gZXJyIGVycm8gZXJyb3IgZXNpemUgZXN0IGVzdF9jZmV4aXN0IGVzdF9jZm5hbWUgZXN0X2NsaWNrYWJsZSBlc3RfZXhwYW5kIGVzdF9ob2xkIGVzdF90YWJsZSBlc3RfdW5ob2xkIGVzdF91bmhvbGRvayBlc3RhdCBlc3RhdF9kZWZhdWx0IGVzdGF0X3N1bW0gZXN0YXRfdmNlX29ubHkgZXN0aSBlc3RpbWF0ZXMgZXRvZG93IGV0b2YgZXRvbWR5IGV4IGV4aSBleGl0IGV4cGFuZCBleHBhbmRjbCBmYWMgZmFjdCBmYWN0byBmYWN0b3IgZmFjdG9yX2VzdGF0IGZhY3Rvcl9wIGZhY3Rvcl9wY2Ffcm90YXRlZCBmYWN0b3Jfcm90YXRlIGZhY3Rvcm1hdCBmY2FzdCBmY2FzdF9jb21wdXRlIGZjYXN0X2dyYXBoIGZkYWRlcyBmZGFkZXNjIGZkYWRlc2NyIGZkYWRlc2NyaSBmZGFkZXNjcmliIGZkYWRlc2NyaWJlIGZkYXNhdiBmZGFzYXZlIGZkYXVzZSBmaF9zdCBmaWxlIG9wZW4gZmlsZSByZWFkIGZpbGUgY2xvc2UgZmlsZSBmaWxlZmlsdGVyIGZpbGxpbiBmaW5kX2hscF9maWxlIGZpbmRmaWxlIGZpbmRpdCBmaW5kaXRfNyBmaXQgZmwgZmxpIGZsaXMgZmxpc3QgZm9yNV8wIGZvcmVzdCBmb3Jlc3RwbG90IGZvcm0gZm9ybWEgZm9ybWF0IGZwcmVkaWN0IGZyYWNfMTU0IGZyYWNfYWRqIGZyYWNfY2hrIGZyYWNfY294IGZyYWNfZGRwIGZyYWNfZGlzIGZyYWNfZHYgZnJhY19pbiBmcmFjX211biBmcmFjX3BwIGZyYWNfcHEgZnJhY19wdiBmcmFjX3dndCBmcmFjX3hvIGZyYWNnZW4gZnJhY3Bsb3QgZnJhY3Bsb3RfNyBmcmFjcG9seSBmcmFjcHJlZCBmcm9uX2V4IGZyb25faG4gZnJvbl9wIGZyb25fdG4gZnJvbl90bjIgZnJvbnRpZXIgZnRvZGF0ZSBmdG9lIGZ0b21keSBmdG93ZGF0ZSBmdW5uZWwgZnVubmVscGxvdCBnfDAgZ2FtaGV0X2dsZiBnYW1oZXRfZ3AgZ2FtaGV0X2lsZiBnYW1oZXRfaXAgZ2FtbWEgZ2FtbWFfZDIgZ2FtbWFfcCBnYW1tYV9zdyBnYW1tYWhldCBnZGlfaGV4YWdvbiBnZGlfc3Bva2VzIGdlIGdlbiBnZW5lIGdlbmVyIGdlbmVyYSBnZW5lcmF0IGdlbmVyYXRlIGdlbnJhbmsgZ2Vuc3RkIGdlbnZtZWFuIGdldHRva2VuIGdsIGdsYWRkZXIgZ2xhZGRlcl83IGdsaW1fbDAxIGdsaW1fbDAyIGdsaW1fbDAzIGdsaW1fbDA0IGdsaW1fbDA1IGdsaW1fbDA2IGdsaW1fbDA3IGdsaW1fbDA4IGdsaW1fbDA5IGdsaW1fbDEwIGdsaW1fbDExIGdsaW1fbDEyIGdsaW1fbGYgZ2xpbV9tdSBnbGltX253MSBnbGltX253MiBnbGltX253MyBnbGltX3AgZ2xpbV92MSBnbGltX3YyIGdsaW1fdjMgZ2xpbV92NCBnbGltX3Y1IGdsaW1fdjYgZ2xpbV92NyBnbG0gZ2xtXzYgZ2xtX3AgZ2xtX3N3IGdsbXByZWQgZ2xvIGdsb2IgZ2xvYmEgZ2xvYmFsIGdsb2dpdCBnbG9naXRfOCBnbG9naXRfcCBnbWVhbnMgZ25icmVfbGYgZ25icmVnIGduYnJlZ181IGduYnJlZ19wIGdvbXBfbGYgZ29tcGVfc3cgZ29tcGVyX3AgZ29tcGVydHogZ29tcGVydHpoZXQgZ29tcGhldF9nbGYgZ29tcGhldF9nbGZfc2ggZ29tcGhldF9ncCBnb21waGV0X2lsZiBnb21waGV0X2lsZl9zaCBnb21waGV0X2lwIGdwaGRvdCBncGhwZW4gZ3BocHJpbnQgZ3ByZWZzIGdwcm9iaV9wIGdwcm9iaXQgZ3Byb2JpdF84IGdyIGdyNyBncl9jb3B5IGdyX2N1cnJlbnQgZ3JfZGIgZ3JfZGVzY3JpYmUgZ3JfZGlyIGdyX2RyYXcgZ3JfZHJhd19yZXBsYXkgZ3JfZHJvcCBncl9lZGl0IGdyX2VkaXR2aWV3b3B0cyBncl9leGFtcGxlIGdyX2V4YW1wbGUyIGdyX2V4cG9ydCBncl9wcmludCBncl9xc2NoZW1lIGdyX3F1ZXJ5IGdyX3JlYWQgZ3JfcmVuYW1lIGdyX3JlcGxheSBncl9zYXZlIGdyX3NldCBncl9zZXRzY2hlbWUgZ3JfdGFibGUgZ3JfdW5kbyBncl91c2UgZ3JhcGggZ3JhcGg3IGdyZWJhciBncmVpZ2VuIGdyZWlnZW5fNyBncmVpZ2VuXzggZ3JtZWFuYnkgZ3JtZWFuYnlfNyBnc19maWxlaW5mbyBnc19maWxldHlwZSBnc19ncmFwaGluZm8gZ3Nfc3RhdCBnc29ydCBnd29vZCBofDAgaGFkaW12byBoYXJlZyBoYXVzbWFuIGhhdmVyIGhlIGhlY2tfZDIgaGVja21hX3AgaGVja21hbiBoZWNrcF9sZiBoZWNrcHJfcCBoZWNrcHJvYiBoZWwgaGVscCBoZXJlZyBoZXRwcl9sZiBoZXRwcl9wIGhldHByb2IgaGV0dGVzdCBoZXhkdW1wIGhpbGl0ZSBoaXN0IGhpc3RfNyBoaXN0b2dyYW0gaGxvZ2l0IGhsdSBobWVhbnMgaG90ZWwgaG90ZWxsaW5nIGhwcm9iaXQgaHJlZyBoc2VhcmNoIGljZDkgaWNkOV9mZiBpY2Q5cCBpaXMgaW1wdXRlIGltdGVzdCBpbmJhc2UgaW5jbHVkZSBpbmYgaW5maSBpbmZpbCBpbmZpbGUgaW5maXggaW5wIGlucHUgaW5wdXQgaW5zIGluc2hlZXQgaW5zcCBpbnNwZSBpbnNwZWMgaW5zcGVjdCBpbnRlZyBpbnRlbiBpbnRyZWcgaW50cmVnXzcgaW50cmVnX3AgaW50cmcyX2xsIGludHJnX2xsIGludHJnX2xsMiBpcG9sYXRlIGlxcmVnIGlyIGlyZiBpcmZfY3JlYXRlIGlyZm0gaXJpIGlzX3N2eSBpc19zdnlzdW0gaXNpZCBpc3RkaXplIGl2cHJvYl8xX2xmIGl2cHJvYl9sZiBpdnByb2JpdCBpdnByb2JpdF9wIGl2cmVnIGl2cmVnX2Zvb3Rub3RlIGl2dG9iXzFfbGYgaXZ0b2JfbGYgaXZ0b2JpdCBpdnRvYml0X3AgamFja2tuaWZlIGphY2tuaWZlIGprbmlmZSBqa25pZmVfNiBqa25pZmVfOCBqa3N0YXQgam9pbmJ5IGthbGFybWExIGthcCBrYXBfMyBrYXBtZWllciBrYXBwYSBrYXB3Z3Qga2RlbnNpdHkga2RlbnNpdHlfNyBrZWVwIGtzbSBrc21pcm5vdiBrdGF1IGt3YWxsaXMgbHwwIGxhIGxhYiBsYWJiZSBsYWJiZXBsb3QgbGFiZSBsYWJlbCBsYWJlbGJvb2sgbGFkZGVyIGxldmVscyBsZXZlbHNvZiBsZXZlcmFnZSBsZml0IGxmaXRfcCBsaSBsaW5jb20gbGluZSBsaW5rdGVzdCBsaXMgbGlzdCBsbG9naGV0X2dsZiBsbG9naGV0X2dsZl9zaCBsbG9naGV0X2dwIGxsb2doZXRfaWxmIGxsb2doZXRfaWxmX3NoIGxsb2doZXRfaXAgbGxvZ2lfc3cgbGxvZ2lzX3AgbGxvZ2lzdCBsbG9naXN0aWMgbGxvZ2lzdGljaGV0IGxub3JtX2xmIGxub3JtX3N3IGxub3JtYV9wIGxub3JtYWwgbG5vcm1hbGhldCBsbm9ybWhldF9nbGYgbG5vcm1oZXRfZ2xmX3NoIGxub3JtaGV0X2dwIGxub3JtaGV0X2lsZiBsbm9ybWhldF9pbGZfc2ggbG5vcm1oZXRfaXAgbG5za2V3MCBsb2FkaW5ncGxvdCBsb2MgbG9jYSBsb2NhbCBsb2cgbG9naSBsb2dpc19sZiBsb2dpc3RpYyBsb2dpc3RpY19wIGxvZ2l0IGxvZ2l0X2VzdGF0IGxvZ2l0X3AgbG9nbG9ncyBsb2dyYW5rIGxvbmV3YXkgbG9va2ZvciBsb29rdXAgbG93ZXNzIGxvd2Vzc183IGxwcmVkaWN0IGxyZWNvbXAgbHJvYyBscm9jXzcgbHJ0ZXN0IGxzIGxzZW5zIGxzZW5zXzcgbHNlbnNfeCBsc3RhdCBsdGFibGUgbHRhYmxlXzcgbHRyaWFuZyBsdiBsdnIycGxvdCBsdnIycGxvdF83IG18MCBtYSBtYWMgbWFjciBtYWNybyBtYWtlY25zIG1hbiBtYW5vdmEgbWFub3ZhX2VzdGF0IG1hbm92YV9wIG1hbm92YXRlc3QgbWFudGVsIG1hcmsgbWFya2luIG1hcmtvdXQgbWFya3NhbXBsZSBtYXQgbWF0X2NhcHAgbWF0X29yZGVyIG1hdF9wdXRfcnIgbWF0X3JhcHAgbWF0YSBtYXRhX2NsZWFyIG1hdGFfZGVzY3JpYmUgbWF0YV9kcm9wIG1hdGFfbWF0ZGVzY3JpYmUgbWF0YV9tYXRzYXZlIG1hdGFfbWF0dXNlIG1hdGFfbWVtb3J5IG1hdGFfbWxpYiBtYXRhX21vc2F2ZSBtYXRhX3JlbmFtZSBtYXRhX3doaWNoIG1hdGFsYWJlbCBtYXRjcHJvYyBtYXRsaXN0IG1hdG5hbWUgbWF0ciBtYXRyaSBtYXRyaXggbWF0cml4X2lucHV0X19kbGcgbWF0c3RyaWsgbWNjIG1jY2kgbWQwXyBtZDFfIG1kMWRlYnVnXyBtZDJfIG1kMmRlYnVnXyBtZHMgbWRzX2VzdGF0IG1kc19wIG1kc2NvbmZpZyBtZHNsb25nIG1kc21hdCBtZHNzaGVwYXJkIG1keXRvZSBtZHl0b2YgbWVfZGVyZCBtZWFuIG1lYW5zIG1lZGlhbiBtZW1vcnkgbWVtc2l6ZSBtZW5sIG1lcXBhcnNlIG1lciBtZXJnIG1lcmdlIG1ldGEgbWZwIG1meCBtaGVscCBtaG9kZHMgbWluYm91bmQgbWl4ZWRfbGwgbWl4ZWRfbGxfcmVwYXJtIG1rYXNzZXJ0IG1rZGlyIG1rbWF0IG1rc3BsaW5lIG1sIG1sXzUgbWxfYWRqcyBtbF9iaGhocyBtbF9jX2QgbWxfY2hlY2sgbWxfY2xlYXIgbWxfY250IG1sX2RlYnVnIG1sX2RlZmQgbWxfZTAgbWxfZTBfYmZncyBtbF9lMF9jeWNsZSBtbF9lMF9kZnAgbWxfZTBpIG1sX2UxIG1sX2UxX2JmZ3MgbWxfZTFfYmhoaCBtbF9lMV9jeWNsZSBtbF9lMV9kZnAgbWxfZTIgbWxfZTJfY3ljbGUgbWxfZWJmZzAgbWxfZWJmcjAgbWxfZWJmcjEgbWxfZWJoMHEgbWxfZWJoaDAgbWxfZWJocjAgbWxfZWJyMGkgbWxfZWNyMGkgbWxfZWRmcDAgbWxfZWRmcjAgbWxfZWRmcjEgbWxfZWRyMGkgbWxfZWRzIG1sX2VlcjBpIG1sX2VncjBpIG1sX2VsZiBtbF9lbGZfYmZncyBtbF9lbGZfYmhoaCBtbF9lbGZfY3ljbGUgbWxfZWxmX2RmcCBtbF9lbGZpIG1sX2VsZnMgbWxfZW5yMGkgbWxfZW5ycjAgbWxfZXJkdTAgbWxfZXJkdTBfYmZncyBtbF9lcmR1MF9iaGhoIG1sX2VyZHUwX2JoaGhxIG1sX2VyZHUwX2N5Y2xlIG1sX2VyZHUwX2RmcCBtbF9lcmR1MF9ucmJmZ3MgbWxfZXhkZSBtbF9mb290bm90ZSBtbF9nZXFuciBtbF9ncmFkMCBtbF9ncmFwaCBtbF9oYmhoaCBtbF9oZDAgbWxfaG9sZCBtbF9pbml0IG1sX2ludiBtbF9sb2cgbWxfbWF4IG1sX21sb3V0IG1sX21sb3V0XzggbWxfbW9kZWwgbWxfbmIwIG1sX29wdCBtbF9wIG1sX3Bsb3QgbWxfcXVlcnkgbWxfcmRncmQgbWxfcmVwb3IgbWxfc19lIG1sX3Njb3JlIG1sX3NlYXJjIG1sX3RlY2huaXF1ZSBtbF91bmhvbGQgbWxldmFsIG1sZl8gbWxtYXRieXN1bSBtbG1hdHN1bSBtbG9nIG1sb2dpIG1sb2dpdCBtbG9naXRfZm9vdG5vdGUgbWxvZ2l0X3AgbWxvcHRzIG1sc3VtIG1sdmVjc3VtIG1ubDBfIG1vciBtb3JlIG1vdiBtb3ZlIG1wcm9iaXQgbXByb2JpdF9sZiBtcHJvYml0X3AgbXJkdTBfIG1yZHUxXyBtdmRlY29kZSBtdmVuY29kZSBtdnJlZyBtdnJlZ19lc3RhdCBufDAgbmJyZWcgbmJyZWdfYWwgbmJyZWdfbGYgbmJyZWdfcCBuYnJlZ19zdyBuZXN0cmVnIG5ldCBuZXdleSBuZXdleV83IG5ld2V5X3AgbmV3cyBubCBubF83IG5sXzkgbmxfOV9wIG5sX3AgbmxfcF83IG5sY29tIG5sY29tX3AgbmxleHAyIG5sZXhwMl83IG5sZXhwMmEgbmxleHAyYV83IG5sZXhwMyBubGV4cDNfNyBubGdvbTMgbmxnb20zXzcgbmxnb200IG5sZ29tNF83IG5saW5pdCBubGxvZzMgbmxsb2czXzcgbmxsb2c0IG5sbG9nNF83IG5sb2dfcmQgbmxvZ2l0IG5sb2dpdF9wIG5sb2dpdGdlbiBubG9naXR0cmVlIG5scHJlZCBubyBub2JyZWFrIG5vaSBub2lzIG5vaXNpIG5vaXNpbCBub2lzaWx5IG5vdGUgbm90ZXMgbm90ZXNfZGxnIG5wdHJlbmQgbnVtbGFiZWwgbnVtbGlzdCBvZGJjIG9sZF92ZXIgb2xvIG9sb2cgb2xvZ2kgb2xvZ2lfc3cgb2xvZ2l0IG9sb2dpdF9wIG9sb2dpdHAgb24gb25lIG9uZXcgb25ld2Egb25ld2F5IG9wX2NvbG5tIG9wX2NvbXAgb3BfZGlmZiBvcF9pbnYgb3Bfc3RyIG9wciBvcHJvIG9wcm9iIG9wcm9iX3N3IG9wcm9iaSBvcHJvYmlfcCBvcHJvYml0IG9wcm9iaXRwIG9wdHNfZXhjbHVzaXZlIG9yZGVyIG9ydGhvZyBvcnRocG9seSBvdSBvdXQgb3V0ZiBvdXRmaSBvdXRmaWwgb3V0ZmlsZSBvdXRzIG91dHNoIG91dHNoZSBvdXRzaGVlIG91dHNoZWV0IG92dGVzdCBwYWMgcGFjXzcgcGFsZXR0ZSBwYXJzZSBwYXJzZV9kaXNzaW0gcGF1c2UgcGNhIHBjYV84IHBjYV9kaXNwbGF5IHBjYV9lc3RhdCBwY2FfcCBwY2Ffcm90YXRlIHBjYW1hdCBwY2hhcnQgcGNoYXJ0XzcgcGNoaSBwY2hpXzcgcGNvcnIgcGN0aWxlIHBlbnRpdW0gcGVyZ3JhbSBwZXJncmFtXzcgcGVybXV0ZSBwZXJtdXRlXzggcGVyc29uYWwgcGV0b19zdCBwa2NvbGxhcHNlIHBrY3Jvc3MgcGtlcXVpdiBwa2V4YW1pbmUgcGtleGFtaW5lXzcgcGtzaGFwZSBwa3N1bW0gcGtzdW1tXzcgcGwgcGxvIHBsb3QgcGx1Z2luIHBub3JtIHBub3JtXzcgcG9pc2dvZiBwb2lzc19sZiBwb2lzc19zdyBwb2lzc29fcCBwb2lzc29uIHBvaXNzb25fZXN0YXQgcG9zdCBwb3N0Y2xvc2UgcG9zdGZpbGUgcG9zdHV0aWwgcHBlcnJvbiBwciBwcmFpcyBwcmFpc19lIHByYWlzX2UyIHByYWlzX3AgcHJlZGljdCBwcmVkaWN0bmwgcHJlc2VydmUgcHJpbnQgcHJvIHByb2IgcHJvYmkgcHJvYml0IHByb2JpdF9lc3RhdCBwcm9iaXRfcCBwcm9jX3RpbWUgcHJvY292ZXJsYXkgcHJvY3J1c3RlcyBwcm9jcnVzdGVzX2VzdGF0IHByb2NydXN0ZXNfcCBwcm9maWxlciBwcm9nIHByb2dyIHByb2dyYSBwcm9ncmFtIHByb3AgcHJvcG9ydGlvbiBwcnRlc3QgcHJ0ZXN0aSBwd2NvcnIgcHdkIHFcXFxccyBxYnkgcWJ5cyBxY2hpIHFjaGlfNyBxbGFkZGVyIHFsYWRkZXJfNyBxbm9ybSBxbm9ybV83IHFxcGxvdCBxcXBsb3RfNyBxcmVnIHFyZWdfYyBxcmVnX3AgcXJlZ19zdyBxdSBxdWFkY2hrIHF1YW50aWxlIHF1YW50aWxlXzcgcXVlIHF1ZXIgcXVlcnkgcmFuZ2UgcmFua3N1bSByYXRpbyByY2hhcnQgcmNoYXJ0XzcgcmNvZiByZWNhc3QgcmVjbGluayByZWNvZGUgcmVnIHJlZzMgcmVnM19wIHJlZ2R3IHJlZ3IgcmVncmUgcmVncmVfcDIgcmVncmVzIHJlZ3Jlc19wIHJlZ3Jlc3MgcmVncmVzc19lc3RhdCByZWdyaXZfcCByZW1hcCByZW4gcmVuYSByZW5hbSByZW5hbWUgcmVucGZpeCByZXBlYXQgcmVwbGFjZSByZXBvcnQgcmVzaGFwZSByZXN0b3JlIHJldCByZXR1IHJldHVyIHJldHVybiBybSBybWRpciByb2J2YXIgcm9jY29tcCByb2Njb21wXzcgcm9jY29tcF84IHJvY2ZfbGYgcm9jZml0IHJvY2ZpdF84IHJvY2dvbGQgcm9jcGxvdCByb2NwbG90Xzcgcm9jdGFiIHJvY3RhYl83IHJvbGxpbmcgcm9sb2dpdCByb2xvZ2l0X3Agcm90IHJvdGEgcm90YXQgcm90YXRlIHJvdGF0ZW1hdCBycmVnIHJyZWdfcCBydSBydW4gcnVudGVzdCBydmZwbG90IHJ2ZnBsb3RfNyBydnBwbG90IHJ2cHBsb3RfNyBzYSBzYWZlc3VtIHNhbXBsZSBzYW1wc2kgc2F2IHNhdmUgc2F2ZWRyZXN1bHRzIHNhdmVvbGQgc2Mgc2NhIHNjYWwgc2NhbGEgc2NhbGFyIHNjYXR0ZXIgc2NtX21pbmUgc2NvIHNjb2JfbGYgc2NvYl9wIHNjb2JpX3N3IHNjb2JpdCBzY29yIHNjb3JlIHNjb3JlcGxvdCBzY29yZXBsb3RfaGVscCBzY3JlZSBzY3JlZXBsb3Qgc2NyZWVwbG90X2hlbHAgc2R0ZXN0IHNkdGVzdGkgc2Ugc2VhcmNoIHNlcGFyYXRlIHNlcGVyYXRlIHNlcnJiYXIgc2VycmJhcl83IHNlcnNldCBzZXQgc2V0X2RlZmF1bHRzIHNmcmFuY2lhIHNoIHNoZSBzaGVsIHNoZWxsIHNoZXdoYXJ0IHNoZXdoYXJ0Xzcgc2lnbmVzdGltYXRpb25zYW1wbGUgc2lnbnJhbmsgc2lnbnRlc3Qgc2ltdWwgc2ltdWxfNyBzaW11bGF0ZSBzaW11bGF0ZV84IHNrdGVzdCBzbGVlcCBzbG9naXQgc2xvZ2l0X2QyIHNsb2dpdF9wIHNtb290aCBzbmFwc3BhbiBzbyBzb3Igc29ydCBzcGVhcm1hbiBzcGlrZXBsb3Qgc3Bpa2VwbG90Xzcgc3Bpa2VwbHQgc3BsaW5lX3ggc3BsaXQgc3FyZWcgc3FyZWdfcCBzcmV0IHNyZXR1IHNyZXR1ciBzcmV0dXJuIHNzYyBzdCBzdF9jdCBzdF9oYyBzdF9oY2Qgc3RfaGNkX3NoIHN0X2lzIHN0X2lzc3lzIHN0X25vdGUgc3RfcHJvbW8gc3Rfc2V0IHN0X3Nob3cgc3Rfc21wbCBzdF9zdWJpZCBzdGFjayBzdGF0c2J5IHN0YXRzYnlfOCBzdGJhc2Ugc3RjaSBzdGNpXzcgc3Rjb3ggc3Rjb3hfZXN0YXQgc3Rjb3hfZnIgc3Rjb3hfZnJfbGwgc3Rjb3hfcCBzdGNveF9zdyBzdGNveGttIHN0Y294a21fNyBzdGNzdGF0IHN0Y3VydiBzdGN1cnZlIHN0Y3VydmVfNyBzdGRlcyBzdGVtIHN0ZXB3aXNlIHN0ZXJlZyBzdGZpbGwgc3RnZW4gc3RpciBzdGpvaW4gc3RtYyBzdG1oIHN0cGhwbG90IHN0cGhwbG90Xzcgc3RwaHRlc3Qgc3RwaHRlc3RfNyBzdHB0aW1lIHN0cmF0ZSBzdHJhdGVfNyBzdHJlZyBzdHJlZ19zdyBzdHJlc2V0IHN0cyBzdHNfNyBzdHNldCBzdHNwbGl0IHN0c3VtIHN0dG9jYyBzdHRvY3Qgc3R2YXJ5IHN0d2VpYiBzdSBzdWVzdCBzdWVzdF84IHN1bSBzdW1tIHN1bW1hIHN1bW1hciBzdW1tYXJpIHN1bW1hcml6IHN1bW1hcml6ZSBzdW5mbG93ZXIgc3VyZWcgc3VydmN1cnYgc3VydnN1bSBzdmFyIHN2YXJfcCBzdm1hdCBzdnkgc3Z5X2Rpc3Agc3Z5X2RyZWcgc3Z5X2VzdCBzdnlfZXN0Xzcgc3Z5X2VzdGF0IHN2eV9nZXQgc3Z5X2duYnJlZ19wIHN2eV9oZWFkIHN2eV9oZWFkZXIgc3Z5X2hlY2ttYW5fcCBzdnlfaGVja3Byb2JfcCBzdnlfaW50cmVnX3Agc3Z5X2l2cmVnX3Agc3Z5X2xvZ2lzdGljX3Agc3Z5X2xvZ2l0X3Agc3Z5X21sb2dpdF9wIHN2eV9uYnJlZ19wIHN2eV9vbG9naXRfcCBzdnlfb3Byb2JpdF9wIHN2eV9wb2lzc29uX3Agc3Z5X3Byb2JpdF9wIHN2eV9yZWdyZXNzX3Agc3Z5X3N1YiBzdnlfc3ViXzcgc3Z5X3ggc3Z5X3hfNyBzdnlfeF9wIHN2eWRlcyBzdnlkZXNfOCBzdnlnZW4gc3Z5Z25icmVnIHN2eWhlY2ttYW4gc3Z5aGVja3Byb2Igc3Z5aW50cmVnIHN2eWludHJlZ183IHN2eWludHJnIHN2eWl2cmVnIHN2eWxjIHN2eWxvZ19wIHN2eWxvZ2l0IHN2eW1hcmtvdXQgc3Z5bWFya291dF84IHN2eW1lYW4gc3Z5bWxvZyBzdnltbG9naXQgc3Z5bmJyZWcgc3Z5b2xvZyBzdnlvbG9naXQgc3Z5b3Byb2Igc3Z5b3Byb2JpdCBzdnlvcHRzIHN2eXBvaXMgc3Z5cG9pc183IHN2eXBvaXNzb24gc3Z5cHJvYml0IHN2eXByb2J0IHN2eXByb3Agc3Z5cHJvcF83IHN2eXJhdGlvIHN2eXJlZyBzdnlyZWdfcCBzdnlyZWdyZXNzIHN2eXNldCBzdnlzZXRfNyBzdnlzZXRfOCBzdnl0YWIgc3Z5dGFiXzcgc3Z5dGVzdCBzdnl0b3RhbCBzdyBzd184IHN3Y25yZWcgc3djb3ggc3dlcmVnIHN3aWxrIHN3bG9naXMgc3dsb2dpdCBzd29sb2dpdCBzd29wcmJ0IHN3cG9pcyBzd3Byb2JpdCBzd3FyZWcgc3d0b2JpdCBzd3dlaWIgc3ltbWV0cnkgc3ltbWkgc3ltcGxvdCBzeW1wbG90Xzcgc3ludGF4IHN5c2Rlc2NyaWJlIHN5c2RpciBzeXN1c2Ugc3pyb2V0ZXIgdGEgdGFiIHRhYjEgdGFiMiB0YWJfb3IgdGFiZCB0YWJkaSB0YWJkaXMgdGFiZGlzcCB0YWJpIHRhYmxlIHRhYm9kZHMgdGFib2Rkc183IHRhYnN0YXQgdGFidSB0YWJ1bCB0YWJ1bGEgdGFidWxhdCB0YWJ1bGF0ZSB0ZSB0ZW1wZmlsZSB0ZW1wbmFtZSB0ZW1wdmFyIHRlcyB0ZXN0IHRlc3RubCB0ZXN0cGFybSB0ZXN0c3RkIHRldHJhY2hvcmljIHRpbWVfaXQgdGltZXIgdGlzIHRvYiB0b2JpIHRvYml0IHRvYml0X3AgdG9iaXRfc3cgdG9rZW4gdG9rZW5pIHRva2VuaXogdG9rZW5pemUgdG9zdHJpbmcgdG90YWwgdHJhbnNsYXRlIHRyYW5zbGF0b3IgdHJhbnNtYXAgdHJlYXRfbGwgdHJlYXRyX3AgdHJlYXRyZWcgdHJpbSB0cmltZmlsbCB0cm5iX2NvbnMgdHJuYl9tZWFuIHRycG9pc3NfZDIgdHJ1bmNfbGwgdHJ1bmNyX3AgdHJ1bmNyZWcgdHNhcHBlbmQgdHNldCB0c2ZpbGwgdHNsaW5lIHRzbGluZV9leCB0c3JlcG9ydCB0c3JldmFyIHRzcmxpbmUgdHNzZXQgdHNzbW9vdGggdHN1bmFiIHR0ZXN0IHR0ZXN0aSB0dXRfY2hrIHR1dF93YWl0IHR1dG9yaWFsIHR3IHR3YXJlX3N0IHR3byB0d293YXkgdHdvd2F5X19mcGZpdF9zZXJzZXQgdHdvd2F5X19mdW5jdGlvbl9nZW4gdHdvd2F5X19oaXN0b2dyYW1fZ2VuIHR3b3dheV9faXBvaW50X3NlcnNldCB0d293YXlfX2lwb2ludHNfc2Vyc2V0IHR3b3dheV9fa2RlbnNpdHlfZ2VuIHR3b3dheV9fbGZpdF9zZXJzZXQgdHdvd2F5X19ub3JtZ2VuX2dlbiB0d293YXlfX3BjaV9zZXJzZXQgdHdvd2F5X19xZml0X3NlcnNldCB0d293YXlfX3NjYXR0ZXJpX3NlcnNldCB0d293YXlfX3N1bmZsb3dlcl9nZW4gdHdvd2F5X2tzbV9zZXJzZXQgdHkgdHlwIHR5cGUgdHlwZW9mIHV8MCB1bmFiIHVuYWJicmV2IHVuYWJjbWQgdXBkYXRlIHVzIHVzZSB1c2VsYWJlbCB2YXIgdmFyX21rY29tcGFuaW9uIHZhcl9wIHZhcmJhc2ljIHZhcmZjYXN0IHZhcmdyYW5nZXIgdmFyaXJmIHZhcmlyZl9hZGQgdmFyaXJmX2NncmFwaCB2YXJpcmZfY3JlYXRlIHZhcmlyZl9jdGFibGUgdmFyaXJmX2Rlc2NyaWJlIHZhcmlyZl9kaXIgdmFyaXJmX2Ryb3AgdmFyaXJmX2VyYXNlIHZhcmlyZl9ncmFwaCB2YXJpcmZfb2dyYXBoIHZhcmlyZl9yZW5hbWUgdmFyaXJmX3NldCB2YXJpcmZfdGFibGUgdmFybGlzdCB2YXJsbWFyIHZhcm5vcm0gdmFyc29jIHZhcnN0YWJsZSB2YXJzdGFibGVfdyB2YXJzdGFibGVfdzIgdmFyd2xlIHZjZSB2ZWMgdmVjX2ZldmQgdmVjX21rcGhpIHZlY19wIHZlY19wX3cgdmVjaXJmX2NyZWF0ZSB2ZWNsbWFyIHZlY2xtYXJfdyB2ZWNub3JtIHZlY25vcm1fdyB2ZWNyYW5rIHZlY3N0YWJsZSB2ZXJpbnN0IHZlcnMgdmVyc2kgdmVyc2lvIHZlcnNpb24gdmlldyB2aWV3c291cmNlIHZpZiB2d2xzIHdkYXRldG9mIHdlYmRlc2NyaWJlIHdlYnNlZWsgd2VidXNlIHdlaWIxX2xmIHdlaWIyX2xmIHdlaWJfbGYgd2VpYl9sZjAgd2VpYmhldF9nbGYgd2VpYmhldF9nbGZfc2ggd2VpYmhldF9nbGZhIHdlaWJoZXRfZ2xmYV9zaCB3ZWliaGV0X2dwIHdlaWJoZXRfaWxmIHdlaWJoZXRfaWxmX3NoIHdlaWJoZXRfaWxmYSB3ZWliaGV0X2lsZmFfc2ggd2VpYmhldF9pcCB3ZWlidV9zdyB3ZWlidWxfcCB3ZWlidWxsIHdlaWJ1bGxfYyB3ZWlidWxsX3Mgd2VpYnVsbGhldCB3aCB3aGVscCB3aGkgd2hpY2ggd2hpbCB3aGlsZSB3aWxjX3N0IHdpbGNveG9uIHdpbiB3aW5kIHdpbmRvIHdpbmRvdyB3aW5leGVjIHdudGVzdGIgd250ZXN0Yl83IHdudGVzdHEgeGNoYXJ0IHhjaGFydF83IHhjb3JyIHhjb3JyXzcgeGkgeGlfNiB4bWxzYXYgeG1sc2F2ZSB4bWx1c2UgeHBvc2UgeHNoIHhzaGUgeHNoZWwgeHNoZWxsIHh0X2lpcyB4dF90aXMgeHRhYl9wIHh0YWJvbmQgeHRiaW5fcCB4dGNsb2cgeHRjbG9nbG9nIHh0Y2xvZ2xvZ184IHh0Y2xvZ2xvZ19kMiB4dGNsb2dsb2dfcGFfcCB4dGNsb2dsb2dfcmVfcCB4dGNudF9wIHh0Y29yciB4dGRhdGEgeHRkZXMgeHRmcm9udF9wIHh0ZnJvbnRpZXIgeHRnZWUgeHRnZWVfZWxpbmsgeHRnZWVfZXN0YXQgeHRnZWVfbWFrZWl2YXIgeHRnZWVfcCB4dGdlZV9wbGluayB4dGdscyB4dGdsc19wIHh0aGF1cyB4dGhhdXNtYW4geHRodF9wIHh0aHRheWxvciB4dGlsZSB4dGludF9wIHh0aW50cmVnIHh0aW50cmVnXzggeHRpbnRyZWdfZDIgeHRpbnRyZWdfcCB4dGl2cF8xIHh0aXZwXzIgeHRpdnJlZyB4dGxpbmUgeHRsaW5lX2V4IHh0bG9naXQgeHRsb2dpdF84IHh0bG9naXRfZDIgeHRsb2dpdF9mZV9wIHh0bG9naXRfcGFfcCB4dGxvZ2l0X3JlX3AgeHRtaXhlZCB4dG1peGVkX2VzdGF0IHh0bWl4ZWRfcCB4dG5iX2ZlIHh0bmJfbGYgeHRuYnJlZyB4dG5icmVnX3BhX3AgeHRuYnJlZ19yZWZlX3AgeHRwY3NlIHh0cGNzZV9wIHh0cG9pcyB4dHBvaXNzb24geHRwb2lzc29uX2QyIHh0cG9pc3Nvbl9wYV9wIHh0cG9pc3Nvbl9yZWZlX3AgeHRwcmVkIHh0cHJvYml0IHh0cHJvYml0XzggeHRwcm9iaXRfZDIgeHRwcm9iaXRfcmVfcCB4dHBzX2ZlIHh0cHNfbGYgeHRwc19yZW4geHRwc19yZW5fOCB4dHJhcl9wIHh0cmMgeHRyY19wIHh0cmNoaCB4dHJlZmVfcCB4dHJlZyB4dHJlZ19iZSB4dHJlZ19mZSB4dHJlZ19tbCB4dHJlZ19wYV9wIHh0cmVnX3JlIHh0cmVnYXIgeHRyZXJlX3AgeHRzZXQgeHRzZl9sbCB4dHNmX2xsdGkgeHRzdW0geHR0YWIgeHR0ZXN0MCB4dHRvYml0IHh0dG9iaXRfOCB4dHRvYml0X3AgeHR0cmFucyB5eCB5eHZpZXdfX2Jhcmxpa2VfZHJhdyB5eHZpZXdfYXJlYV9kcmF3IHl4dmlld19iYXJfZHJhdyB5eHZpZXdfZG90X2RyYXcgeXh2aWV3X2Ryb3BsaW5lX2RyYXcgeXh2aWV3X2Z1bmN0aW9uX2RyYXcgeXh2aWV3X2lhcnJvd19kcmF3IHl4dmlld19pbGFiZWxzX2RyYXcgeXh2aWV3X25vcm1hbF9kcmF3IHl4dmlld19wY2Fycm93X2RyYXcgeXh2aWV3X3BjYmFycm93X2RyYXcgeXh2aWV3X3BjY2Fwc3ltX2RyYXcgeXh2aWV3X3Bjc2NhdHRlcl9kcmF3IHl4dmlld19wY3NwaWtlX2RyYXcgeXh2aWV3X3JhcmVhX2RyYXcgeXh2aWV3X3JiYXJfZHJhdyB5eHZpZXdfcmJhcm1fZHJhdyB5eHZpZXdfcmNhcF9kcmF3IHl4dmlld19yY2Fwc3ltX2RyYXcgeXh2aWV3X3Jjb25uZWN0ZWRfZHJhdyB5eHZpZXdfcmxpbmVfZHJhdyB5eHZpZXdfcnNjYXR0ZXJfZHJhdyB5eHZpZXdfcnNwaWtlX2RyYXcgeXh2aWV3X3NwaWtlX2RyYXcgeXh2aWV3X3N1bmZsb3dlcl9kcmF3IHphcF9zIHppbmIgemluYl9sbGYgemluYl9wbGYgemlwIHppcF9sbGYgemlwX3AgemlwX3BsZiB6dF9jdF81IHp0X2hjXzUgenRfaGNkXzUgenRfaXNfNSB6dF9pc3NfNSB6dF9zaG9fNSB6dF9zbXBfNSB6dGJhc2VfNSB6dGNveF81IHp0ZGVzXzUgenRlcmVnXzUgenRmaWxsXzUgenRnZW5fNSB6dGlyXzUgenRqb2luXzUgenRuYiB6dG5iX3AgenRwIHp0cF9wIHp0c181IHp0c2V0XzUgenRzcGxpXzUgenRzdW1fNSB6dHRvY3RfNSB6dHZhcnlfNSB6dHdlaWJfNScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9gW2EtekEtWjAtOV9dKycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkXFx7P1thLXpBLVowLTlfXStcXH0/LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdgXCJbXlxcclxcbl0qP1wiXFwnJyB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcIlteXFxyXFxuXCJdKlwiJyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICB2YXJpYW50czogWyB7IGJlZ2luOiAnXFxcXGIoYWJzfGFjb3N8YXNpbnxhdGFufGF0YW4yfGF0YW5ofGNlaWx8Y2xvZ2xvZ3xjb21ifGNvc3xkaWdhbW1hfGV4cHxmbG9vcnxpbnZjbG9nbG9nfGludmxvZ2l0fGxufGxuZmFjdHxsbmZhY3RvcmlhbHxsbmdhbW1hfGxvZ3xsb2cxMHxtYXh8bWlufG1vZHxyZWxkaWZ8cm91bmR8c2lnbnxzaW58c3FydHxzdW18dGFufHRhbmh8dHJpZ2FtbWF8dHJ1bmN8YmV0YWRlbnxCaW5vbWlhbHxiaW5vcm18Ymlub3JtYWx8Y2hpMnxjaGkydGFpbHxkZ2FtbWFwZGF8ZGdhbW1hcGRhZGF8ZGdhbW1hcGRhZHh8ZGdhbW1hcGR4fGRnYW1tYXBkeGR4fEZ8RmRlbnxGdGFpbHxnYW1tYWRlbnxnYW1tYXB8aWJldGF8aW52Ymlub21pYWx8aW52Y2hpMnxpbnZjaGkydGFpbHxpbnZGfGludkZ0YWlsfGludmdhbW1hcHxpbnZpYmV0YXxpbnZuY2hpMnxpbnZuRnRhaWx8aW52bmliZXRhfGludm5vcm18aW52bm9ybWFsfGludnR0YWlsfG5iZXRhZGVufG5jaGkyfG5GZGVufG5GdGFpbHxuaWJldGF8bm9ybXxub3JtYWx8bm9ybWFsZGVufG5vcm1kfG5wbmNoaTJ8dGRlbnx0dGFpbHx1bmlmb3JtfGFiYnJldnxjaGFyfGluZGV4fGluZGV4bm90fGxlbmd0aHxsb3dlcnxsdHJpbXxtYXRjaHxwbHVyYWx8cHJvcGVyfHJlYWx8cmVnZXhtfHJlZ2V4cnxyZWdleHN8cmV2ZXJzZXxydHJpbXxzdHJpbmd8c3RybGVufHN0cmxvd2VyfHN0cmx0cmltfHN0cm1hdGNofHN0cm9mcmVhbHxzdHJwb3N8c3RycHJvcGVyfHN0cnJldmVyc2V8c3RycnRyaW18c3RydHJpbXxzdHJ1cHBlcnxzdWJpbnN0cnxzdWJpbndvcmR8c3Vic3RyfHRyaW18dXBwZXJ8d29yZHx3b3JkY291bnR8X2NhbGxlcnxhdXRvY29kZXxieXRlb3JkZXJ8Y2hvcHxjbGlwfGNvbmR8ZXxlcHNkb3VibGV8ZXBzZmxvYXR8Z3JvdXB8aW5saXN0fGlucmFuZ2V8aXJlY29kZXxtYXRyaXh8bWF4Ynl0ZXxtYXhkb3VibGV8bWF4ZmxvYXR8bWF4aW50fG1heGxvbmd8bWl8bWluYnl0ZXxtaW5kb3VibGV8bWluZmxvYXR8bWluaW50fG1pbmxvbmd8bWlzc2luZ3xyfHJlY29kZXxyZXBsYXl8cmV0dXJufHN8c2NhbGFyfGR8ZGF0ZXxkYXl8ZG93fGRveXxoYWxmeWVhcnxtZHl8bW9udGh8cXVhcnRlcnx3ZWVrfHllYXJ8ZHxkYWlseXxkb2ZkfGRvZmh8ZG9mbXxkb2ZxfGRvZnd8ZG9meXxofGhhbGZ5ZWFybHl8aG9mZHxtfG1vZmR8bW9udGhseXxxfHFvZmR8cXVhcnRlcmx5fHRpbnx0d2l0aGlufHd8d2Vla2x5fHdvZmR8eXx5ZWFybHl8eWh8eW18eW9mZHx5cXx5d3xjaG9sZXNreXxjb2xudW1ifGNvbHNvZnxjb3JyfGRldHxkaWFnfGRpYWcwY250fGVsfGdldHxoYWRhbWFyZHxJfGludnxpbnZzeW18aXNzeW18aXNzeW1tZXRyaWN8SnxtYXRtaXNzaW5nfG1hdHVuaWZvcm18bXJlbGRpZnxudWxsbWF0fHJvd251bWJ8cm93c29mfHN3ZWVwfHN5bWludnx0cmFjZXx2ZWN8dmVjZGlhZykoPz1cXFxcKCknIH0gXVxuICAgICAgfSxcblxuICAgICAgaGxqcy5DT01NRU5UKCdeWyBcXHRdKlxcXFwqLiokJywgZmFsc2UpLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGF0YTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFNURVAgUGFydCAyMVxuQ29udHJpYnV0b3JzOiBBZGFtIEpvc2VwaCBDb29rIDxhZGFtLmpvc2VwaC5jb29rQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBTeW50YXggaGlnaGxpZ2h0ZXIgZm9yIFNURVAgUGFydCAyMSBmaWxlcyAoSVNPIDEwMzAzLTIxKS5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT18xMDMwMy0yMVxuQ2F0ZWdvcnk6IHN5bnRheFxuKi9cblxuZnVuY3Rpb24gc3RlcDIxKGhsanMpIHtcbiAgY29uc3QgU1RFUDIxX0lERU5UX1JFID0gJ1tBLVpfXVtBLVowLTlfLl0qJztcbiAgY29uc3QgU1RFUDIxX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBTVEVQMjFfSURFTlRfUkUsXG4gICAga2V5d29yZDogW1xuICAgICAgXCJIRUFERVJcIixcbiAgICAgIFwiRU5EU0VDXCIsXG4gICAgICBcIkRBVEFcIlxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RFUDIxX1NUQVJUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnSVNPLTEwMzAzLTIxOycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICBjb25zdCBTVEVQMjFfQ0xPU0UgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdFTkQtSVNPLTEwMzAzLTIxOycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NURVAgUGFydCAyMScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3AyMScsXG4gICAgICAnc3RlcCcsXG4gICAgICAnc3RwJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSwgLy8gU1RFUCAyMSBpcyBjYXNlIGluc2Vuc2l0aXZlIGluIHRoZW9yeSwgaW4gcHJhY3RpY2UgYWxsIG5vbi1jb21tZW50cyBhcmUgY2FwaXRhbGl6ZWQuXG4gICAga2V5d29yZHM6IFNURVAyMV9LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RFUDIxX1NUQVJULFxuICAgICAgU1RFUDIxX0NMT1NFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqXFxcXCohJywgJ1xcXFwqLycpLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgaWxsZWdhbDogbnVsbCB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IFwiJ1wiLFxuICAgICAgICBlbmQ6IFwiJ1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgICAgICBlbmQ6ICdcXFxcZCsnLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxXJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGVwMjE7XG4iLCAiY29uc3QgTU9ERVMgPSAoaGxqcykgPT4ge1xuICByZXR1cm4ge1xuICAgIElNUE9SVEFOVDoge1xuICAgICAgc2NvcGU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICB9LFxuICAgIEJMT0NLX0NPTU1FTlQ6IGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgSEVYQ09MT1I6IHtcbiAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAvIygoWzAtOWEtZkEtRl17Myw0fSl8KChbMC05YS1mQS1GXXsyfSl7Myw0fSkpXFxiL1xuICAgIH0sXG4gICAgRlVOQ1RJT05fRElTUEFUQ0g6IHtcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgYmVnaW46IC9bXFx3LV0rKD89XFwoKS9cbiAgICB9LFxuICAgIEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ3NlbGVjdG9yLWF0dHInLFxuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIGlsbGVnYWw6ICckJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgXVxuICAgIH0sXG4gICAgQ1NTX05VTUJFUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUgKyAnKCcgK1xuICAgICAgICAnJXxlbXxleHxjaHxyZW0nICtcbiAgICAgICAgJ3x2d3x2aHx2bWlufHZtYXgnICtcbiAgICAgICAgJ3xjbXxtbXxpbnxwdHxwY3xweCcgK1xuICAgICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAgICd8c3xtcycgK1xuICAgICAgICAnfEh6fGtIeicgK1xuICAgICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICAgJyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgQ1NTX1ZBUklBQkxFOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYXR0clwiLFxuICAgICAgYmVnaW46IC8tLVtBLVphLXpfXVtBLVphLXowLTlfLV0qL1xuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IEhUTUxfVEFHUyA9IFtcbiAgJ2EnLFxuICAnYWJicicsXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYXVkaW8nLFxuICAnYicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnYnV0dG9uJyxcbiAgJ2NhbnZhcycsXG4gICdjYXB0aW9uJyxcbiAgJ2NpdGUnLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkZWwnLFxuICAnZGV0YWlscycsXG4gICdkZm4nLFxuICAnZGl2JyxcbiAgJ2RsJyxcbiAgJ2R0JyxcbiAgJ2VtJyxcbiAgJ2ZpZWxkc2V0JyxcbiAgJ2ZpZ2NhcHRpb24nLFxuICAnZmlndXJlJyxcbiAgJ2Zvb3RlcicsXG4gICdmb3JtJyxcbiAgJ2gxJyxcbiAgJ2gyJyxcbiAgJ2gzJyxcbiAgJ2g0JyxcbiAgJ2g1JyxcbiAgJ2g2JyxcbiAgJ2hlYWRlcicsXG4gICdoZ3JvdXAnLFxuICAnaHRtbCcsXG4gICdpJyxcbiAgJ2lmcmFtZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAnaW5zJyxcbiAgJ2tiZCcsXG4gICdsYWJlbCcsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbWFpbicsXG4gICdtYXJrJyxcbiAgJ21lbnUnLFxuICAnbmF2JyxcbiAgJ29iamVjdCcsXG4gICdvbCcsXG4gICdvcHRncm91cCcsXG4gICdvcHRpb24nLFxuICAncCcsXG4gICdwaWN0dXJlJyxcbiAgJ3EnLFxuICAncXVvdGUnLFxuICAnc2FtcCcsXG4gICdzZWN0aW9uJyxcbiAgJ3NlbGVjdCcsXG4gICdzb3VyY2UnLFxuICAnc3BhbicsXG4gICdzdHJvbmcnLFxuICAnc3VtbWFyeScsXG4gICdzdXAnLFxuICAndGFibGUnLFxuICAndGJvZHknLFxuICAndGQnLFxuICAndGV4dGFyZWEnLFxuICAndGZvb3QnLFxuICAndGgnLFxuICAndGhlYWQnLFxuICAndGltZScsXG4gICd0cicsXG4gICd1bCcsXG4gICd2YXInLFxuICAndmlkZW8nXG5dO1xuXG5jb25zdCBTVkdfVEFHUyA9IFtcbiAgJ2RlZnMnLFxuICAnZycsXG4gICdtYXJrZXInLFxuICAnbWFzaycsXG4gICdwYXR0ZXJuJyxcbiAgJ3N2ZycsXG4gICdzd2l0Y2gnLFxuICAnc3ltYm9sJyxcbiAgJ2ZlQmxlbmQnLFxuICAnZmVDb2xvck1hdHJpeCcsXG4gICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgJ2ZlQ29tcG9zaXRlJyxcbiAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAnZmVGbG9vZCcsXG4gICdmZUdhdXNzaWFuQmx1cicsXG4gICdmZUltYWdlJyxcbiAgJ2ZlTWVyZ2UnLFxuICAnZmVNb3JwaG9sb2d5JyxcbiAgJ2ZlT2Zmc2V0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2xpbmVhckdyYWRpZW50JyxcbiAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgJ3N0b3AnLFxuICAnY2lyY2xlJyxcbiAgJ2VsbGlwc2UnLFxuICAnaW1hZ2UnLFxuICAnbGluZScsXG4gICdwYXRoJyxcbiAgJ3BvbHlnb24nLFxuICAncG9seWxpbmUnLFxuICAncmVjdCcsXG4gICd0ZXh0JyxcbiAgJ3VzZScsXG4gICd0ZXh0UGF0aCcsXG4gICd0c3BhbicsXG4gICdmb3JlaWduT2JqZWN0JyxcbiAgJ2NsaXBQYXRoJ1xuXTtcblxuY29uc3QgVEFHUyA9IFtcbiAgLi4uSFRNTF9UQUdTLFxuICAuLi5TVkdfVEFHUyxcbl07XG5cbi8vIFNvcnRpbmcsIHRoZW4gcmV2ZXJzaW5nIG1ha2VzIHN1cmUgbG9uZ2VyIGF0dHJpYnV0ZXMvZWxlbWVudHMgbGlrZVxuLy8gYGZvbnQtd2VpZ2h0YCBhcmUgbWF0Y2hlZCBmdWxseSBpbnN0ZWFkIG9mIGdldHRpbmcgZmFsc2UgcG9zaXRpdmVzIG9uIHNheSBgZm9udGBcblxuY29uc3QgTUVESUFfRkVBVFVSRVMgPSBbXG4gICdhbnktaG92ZXInLFxuICAnYW55LXBvaW50ZXInLFxuICAnYXNwZWN0LXJhdGlvJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWdhbXV0JyxcbiAgJ2NvbG9yLWluZGV4JyxcbiAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAnZGV2aWNlLWhlaWdodCcsXG4gICdkZXZpY2Utd2lkdGgnLFxuICAnZGlzcGxheS1tb2RlJyxcbiAgJ2ZvcmNlZC1jb2xvcnMnLFxuICAnZ3JpZCcsXG4gICdoZWlnaHQnLFxuICAnaG92ZXInLFxuICAnaW52ZXJ0ZWQtY29sb3JzJyxcbiAgJ21vbm9jaHJvbWUnLFxuICAnb3JpZW50YXRpb24nLFxuICAnb3ZlcmZsb3ctYmxvY2snLFxuICAnb3ZlcmZsb3ctaW5saW5lJyxcbiAgJ3BvaW50ZXInLFxuICAncHJlZmVycy1jb2xvci1zY2hlbWUnLFxuICAncHJlZmVycy1jb250cmFzdCcsXG4gICdwcmVmZXJzLXJlZHVjZWQtbW90aW9uJyxcbiAgJ3ByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3knLFxuICAncmVzb2x1dGlvbicsXG4gICdzY2FuJyxcbiAgJ3NjcmlwdGluZycsXG4gICd1cGRhdGUnLFxuICAnd2lkdGgnLFxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICAnbWluLXdpZHRoJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21heC1oZWlnaHQnXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tY2xhc3Nlc1xuY29uc3QgUFNFVURPX0NMQVNTRVMgPSBbXG4gICdhY3RpdmUnLFxuICAnYW55LWxpbmsnLFxuICAnYmxhbmsnLFxuICAnY2hlY2tlZCcsXG4gICdjdXJyZW50JyxcbiAgJ2RlZmF1bHQnLFxuICAnZGVmaW5lZCcsXG4gICdkaXInLCAvLyBkaXIoKVxuICAnZGlzYWJsZWQnLFxuICAnZHJvcCcsXG4gICdlbXB0eScsXG4gICdlbmFibGVkJyxcbiAgJ2ZpcnN0JyxcbiAgJ2ZpcnN0LWNoaWxkJyxcbiAgJ2ZpcnN0LW9mLXR5cGUnLFxuICAnZnVsbHNjcmVlbicsXG4gICdmdXR1cmUnLFxuICAnZm9jdXMnLFxuICAnZm9jdXMtdmlzaWJsZScsXG4gICdmb2N1cy13aXRoaW4nLFxuICAnaGFzJywgLy8gaGFzKClcbiAgJ2hvc3QnLCAvLyBob3N0IG9yIGhvc3QoKVxuICAnaG9zdC1jb250ZXh0JywgLy8gaG9zdC1jb250ZXh0KClcbiAgJ2hvdmVyJyxcbiAgJ2luZGV0ZXJtaW5hdGUnLFxuICAnaW4tcmFuZ2UnLFxuICAnaW52YWxpZCcsXG4gICdpcycsIC8vIGlzKClcbiAgJ2xhbmcnLCAvLyBsYW5nKClcbiAgJ2xhc3QtY2hpbGQnLFxuICAnbGFzdC1vZi10eXBlJyxcbiAgJ2xlZnQnLFxuICAnbGluaycsXG4gICdsb2NhbC1saW5rJyxcbiAgJ25vdCcsIC8vIG5vdCgpXG4gICdudGgtY2hpbGQnLCAvLyBudGgtY2hpbGQoKVxuICAnbnRoLWNvbCcsIC8vIG50aC1jb2woKVxuICAnbnRoLWxhc3QtY2hpbGQnLCAvLyBudGgtbGFzdC1jaGlsZCgpXG4gICdudGgtbGFzdC1jb2wnLCAvLyBudGgtbGFzdC1jb2woKVxuICAnbnRoLWxhc3Qtb2YtdHlwZScsIC8vbnRoLWxhc3Qtb2YtdHlwZSgpXG4gICdudGgtb2YtdHlwZScsIC8vbnRoLW9mLXR5cGUoKVxuICAnb25seS1jaGlsZCcsXG4gICdvbmx5LW9mLXR5cGUnLFxuICAnb3B0aW9uYWwnLFxuICAnb3V0LW9mLXJhbmdlJyxcbiAgJ3Bhc3QnLFxuICAncGxhY2Vob2xkZXItc2hvd24nLFxuICAncmVhZC1vbmx5JyxcbiAgJ3JlYWQtd3JpdGUnLFxuICAncmVxdWlyZWQnLFxuICAncmlnaHQnLFxuICAncm9vdCcsXG4gICdzY29wZScsXG4gICd0YXJnZXQnLFxuICAndGFyZ2V0LXdpdGhpbicsXG4gICd1c2VyLWludmFsaWQnLFxuICAndmFsaWQnLFxuICAndmlzaXRlZCcsXG4gICd3aGVyZScgLy8gd2hlcmUoKVxuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWVsZW1lbnRzXG5jb25zdCBQU0VVRE9fRUxFTUVOVFMgPSBbXG4gICdhZnRlcicsXG4gICdiYWNrZHJvcCcsXG4gICdiZWZvcmUnLFxuICAnY3VlJyxcbiAgJ2N1ZS1yZWdpb24nLFxuICAnZmlyc3QtbGV0dGVyJyxcbiAgJ2ZpcnN0LWxpbmUnLFxuICAnZ3JhbW1hci1lcnJvcicsXG4gICdtYXJrZXInLFxuICAncGFydCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdzZWxlY3Rpb24nLFxuICAnc2xvdHRlZCcsXG4gICdzcGVsbGluZy1lcnJvcidcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgJ2FjY2VudC1jb2xvcicsXG4gICdhbGlnbi1jb250ZW50JyxcbiAgJ2FsaWduLWl0ZW1zJyxcbiAgJ2FsaWduLXNlbGYnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgJ2FsbCcsXG4gICdhbmltYXRpb24nLFxuICAnYW5pbWF0aW9uLWRlbGF5JyxcbiAgJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLFxuICAnYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1maWxsLW1vZGUnLFxuICAnYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcsXG4gICdhbmltYXRpb24tbmFtZScsXG4gICdhbmltYXRpb24tcGxheS1zdGF0ZScsXG4gICdhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ2FwcGVhcmFuY2UnLFxuICAnYmFja2ZhY2UtdmlzaWJpbGl0eScsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2JhY2tncm91bmQtYXR0YWNobWVudCcsXG4gICdiYWNrZ3JvdW5kLWJsZW5kLW1vZGUnLFxuICAnYmFja2dyb3VuZC1jbGlwJyxcbiAgJ2JhY2tncm91bmQtY29sb3InLFxuICAnYmFja2dyb3VuZC1pbWFnZScsXG4gICdiYWNrZ3JvdW5kLW9yaWdpbicsXG4gICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgJ2JhY2tncm91bmQtcmVwZWF0JyxcbiAgJ2JhY2tncm91bmQtc2l6ZScsXG4gICdiYXNlbGluZS1zaGlmdCcsXG4gICdibG9jay1zaXplJyxcbiAgJ2JvcmRlcicsXG4gICdib3JkZXItYmxvY2snLFxuICAnYm9yZGVyLWJsb2NrLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0JyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdHlsZScsXG4gICdib3JkZXItYmxvY2std2lkdGgnLFxuICAnYm9yZGVyLWJvdHRvbScsXG4gICdib3JkZXItYm90dG9tLWNvbG9yJyxcbiAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1zdHlsZScsXG4gICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgJ2JvcmRlci1jb2xsYXBzZScsXG4gICdib3JkZXItY29sb3InLFxuICAnYm9yZGVyLWltYWdlJyxcbiAgJ2JvcmRlci1pbWFnZS1vdXRzZXQnLFxuICAnYm9yZGVyLWltYWdlLXJlcGVhdCcsXG4gICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAnYm9yZGVyLWltYWdlLXNvdXJjZScsXG4gICdib3JkZXItaW1hZ2Utd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZScsXG4gICdib3JkZXItaW5saW5lLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXdpZHRoJyxcbiAgJ2JvcmRlci1sZWZ0JyxcbiAgJ2JvcmRlci1sZWZ0LWNvbG9yJyxcbiAgJ2JvcmRlci1sZWZ0LXN0eWxlJyxcbiAgJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgJ2JvcmRlci1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0JyxcbiAgJ2JvcmRlci1lbmQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItZW5kLXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItcmlnaHQtY29sb3InLFxuICAnYm9yZGVyLXJpZ2h0LXN0eWxlJyxcbiAgJ2JvcmRlci1yaWdodC13aWR0aCcsXG4gICdib3JkZXItc3BhY2luZycsXG4gICdib3JkZXItc3RhcnQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1zdHlsZScsXG4gICdib3JkZXItdG9wJyxcbiAgJ2JvcmRlci10b3AtY29sb3InLFxuICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXN0eWxlJyxcbiAgJ2JvcmRlci10b3Atd2lkdGgnLFxuICAnYm9yZGVyLXdpZHRoJyxcbiAgJ2JvdHRvbScsXG4gICdib3gtZGVjb3JhdGlvbi1icmVhaycsXG4gICdib3gtc2hhZG93JyxcbiAgJ2JveC1zaXppbmcnLFxuICAnYnJlYWstYWZ0ZXInLFxuICAnYnJlYWstYmVmb3JlJyxcbiAgJ2JyZWFrLWluc2lkZScsXG4gICdjeCcsXG4gICdjeScsXG4gICdjYXB0aW9uLXNpZGUnLFxuICAnY2FyZXQtY29sb3InLFxuICAnY2xlYXInLFxuICAnY2xpcCcsXG4gICdjbGlwLXBhdGgnLFxuICAnY2xpcC1ydWxlJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgJ2NvbG9yLXByb2ZpbGUnLFxuICAnY29sb3ItcmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXNjaGVtZScsXG4gICdjb2x1bW4tY291bnQnLFxuICAnY29sdW1uLWZpbGwnLFxuICAnY29sdW1uLWdhcCcsXG4gICdjb2x1bW4tcnVsZScsXG4gICdjb2x1bW4tcnVsZS1jb2xvcicsXG4gICdjb2x1bW4tcnVsZS1zdHlsZScsXG4gICdjb2x1bW4tcnVsZS13aWR0aCcsXG4gICdjb2x1bW4tc3BhbicsXG4gICdjb2x1bW4td2lkdGgnLFxuICAnY29sdW1ucycsXG4gICdjb250YWluJyxcbiAgJ2NvbnRlbnQnLFxuICAnY29udGVudC12aXNpYmlsaXR5JyxcbiAgJ2NvdW50ZXItaW5jcmVtZW50JyxcbiAgJ2NvdW50ZXItcmVzZXQnLFxuICAnY3VlJyxcbiAgJ2N1ZS1hZnRlcicsXG4gICdjdWUtYmVmb3JlJyxcbiAgJ2N1cnNvcicsXG4gICdkaXJlY3Rpb24nLFxuICAnZGlzcGxheScsXG4gICdkb21pbmFudC1iYXNlbGluZScsXG4gICdlbXB0eS1jZWxscycsXG4gICdlbmFibGUtYmFja2dyb3VuZCcsXG4gICdmaWxsJyxcbiAgJ2ZpbGwtb3BhY2l0eScsXG4gICdmaWxsLXJ1bGUnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsZXgnLFxuICAnZmxleC1iYXNpcycsXG4gICdmbGV4LWRpcmVjdGlvbicsXG4gICdmbGV4LWZsb3cnLFxuICAnZmxleC1ncm93JyxcbiAgJ2ZsZXgtc2hyaW5rJyxcbiAgJ2ZsZXgtd3JhcCcsXG4gICdmbG9hdCcsXG4gICdmbG93JyxcbiAgJ2Zsb29kLWNvbG9yJyxcbiAgJ2Zsb29kLW9wYWNpdHknLFxuICAnZm9udCcsXG4gICdmb250LWRpc3BsYXknLFxuICAnZm9udC1mYW1pbHknLFxuICAnZm9udC1mZWF0dXJlLXNldHRpbmdzJyxcbiAgJ2ZvbnQta2VybmluZycsXG4gICdmb250LWxhbmd1YWdlLW92ZXJyaWRlJyxcbiAgJ2ZvbnQtc2l6ZScsXG4gICdmb250LXNpemUtYWRqdXN0JyxcbiAgJ2ZvbnQtc21vb3RoaW5nJyxcbiAgJ2ZvbnQtc3RyZXRjaCcsXG4gICdmb250LXN0eWxlJyxcbiAgJ2ZvbnQtc3ludGhlc2lzJyxcbiAgJ2ZvbnQtdmFyaWFudCcsXG4gICdmb250LXZhcmlhbnQtY2FwcycsXG4gICdmb250LXZhcmlhbnQtZWFzdC1hc2lhbicsXG4gICdmb250LXZhcmlhbnQtbGlnYXR1cmVzJyxcbiAgJ2ZvbnQtdmFyaWFudC1udW1lcmljJyxcbiAgJ2ZvbnQtdmFyaWFudC1wb3NpdGlvbicsXG4gICdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycsXG4gICdmb250LXdlaWdodCcsXG4gICdnYXAnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICdncmlkJyxcbiAgJ2dyaWQtYXJlYScsXG4gICdncmlkLWF1dG8tY29sdW1ucycsXG4gICdncmlkLWF1dG8tZmxvdycsXG4gICdncmlkLWF1dG8tcm93cycsXG4gICdncmlkLWNvbHVtbicsXG4gICdncmlkLWNvbHVtbi1lbmQnLFxuICAnZ3JpZC1jb2x1bW4tc3RhcnQnLFxuICAnZ3JpZC1nYXAnLFxuICAnZ3JpZC1yb3cnLFxuICAnZ3JpZC1yb3ctZW5kJyxcbiAgJ2dyaWQtcm93LXN0YXJ0JyxcbiAgJ2dyaWQtdGVtcGxhdGUnLFxuICAnZ3JpZC10ZW1wbGF0ZS1hcmVhcycsXG4gICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1yb3dzJyxcbiAgJ2hhbmdpbmctcHVuY3R1YXRpb24nLFxuICAnaGVpZ2h0JyxcbiAgJ2h5cGhlbnMnLFxuICAnaWNvbicsXG4gICdpbWFnZS1vcmllbnRhdGlvbicsXG4gICdpbWFnZS1yZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVzb2x1dGlvbicsXG4gICdpbWUtbW9kZScsXG4gICdpbmxpbmUtc2l6ZScsXG4gICdpbnNldCcsXG4gICdpbnNldC1ibG9jaycsXG4gICdpbnNldC1ibG9jay1lbmQnLFxuICAnaW5zZXQtYmxvY2stc3RhcnQnLFxuICAnaW5zZXQtaW5saW5lJyxcbiAgJ2luc2V0LWlubGluZS1lbmQnLFxuICAnaW5zZXQtaW5saW5lLXN0YXJ0JyxcbiAgJ2lzb2xhdGlvbicsXG4gICdrZXJuaW5nJyxcbiAgJ2p1c3RpZnktY29udGVudCcsXG4gICdqdXN0aWZ5LWl0ZW1zJyxcbiAgJ2p1c3RpZnktc2VsZicsXG4gICdsZWZ0JyxcbiAgJ2xldHRlci1zcGFjaW5nJyxcbiAgJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgJ2xpbmUtYnJlYWsnLFxuICAnbGluZS1oZWlnaHQnLFxuICAnbGlzdC1zdHlsZScsXG4gICdsaXN0LXN0eWxlLWltYWdlJyxcbiAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nLFxuICAnbGlzdC1zdHlsZS10eXBlJyxcbiAgJ21hcmtlcicsXG4gICdtYXJrZXItZW5kJyxcbiAgJ21hcmtlci1taWQnLFxuICAnbWFya2VyLXN0YXJ0JyxcbiAgJ21hc2snLFxuICAnbWFyZ2luJyxcbiAgJ21hcmdpbi1ibG9jaycsXG4gICdtYXJnaW4tYmxvY2stZW5kJyxcbiAgJ21hcmdpbi1ibG9jay1zdGFydCcsXG4gICdtYXJnaW4tYm90dG9tJyxcbiAgJ21hcmdpbi1pbmxpbmUnLFxuICAnbWFyZ2luLWlubGluZS1lbmQnLFxuICAnbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdtYXJnaW4tbGVmdCcsXG4gICdtYXJnaW4tcmlnaHQnLFxuICAnbWFyZ2luLXRvcCcsXG4gICdtYXJrcycsXG4gICdtYXNrJyxcbiAgJ21hc2stYm9yZGVyJyxcbiAgJ21hc2stYm9yZGVyLW1vZGUnLFxuICAnbWFzay1ib3JkZXItb3V0c2V0JyxcbiAgJ21hc2stYm9yZGVyLXJlcGVhdCcsXG4gICdtYXNrLWJvcmRlci1zbGljZScsXG4gICdtYXNrLWJvcmRlci1zb3VyY2UnLFxuICAnbWFzay1ib3JkZXItd2lkdGgnLFxuICAnbWFzay1jbGlwJyxcbiAgJ21hc2stY29tcG9zaXRlJyxcbiAgJ21hc2staW1hZ2UnLFxuICAnbWFzay1tb2RlJyxcbiAgJ21hc2stb3JpZ2luJyxcbiAgJ21hc2stcG9zaXRpb24nLFxuICAnbWFzay1yZXBlYXQnLFxuICAnbWFzay1zaXplJyxcbiAgJ21hc2stdHlwZScsXG4gICdtYXgtYmxvY2stc2l6ZScsXG4gICdtYXgtaGVpZ2h0JyxcbiAgJ21heC1pbmxpbmUtc2l6ZScsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWJsb2NrLXNpemUnLFxuICAnbWluLWhlaWdodCcsXG4gICdtaW4taW5saW5lLXNpemUnLFxuICAnbWluLXdpZHRoJyxcbiAgJ21peC1ibGVuZC1tb2RlJyxcbiAgJ25hdi1kb3duJyxcbiAgJ25hdi1pbmRleCcsXG4gICduYXYtbGVmdCcsXG4gICduYXYtcmlnaHQnLFxuICAnbmF2LXVwJyxcbiAgJ25vbmUnLFxuICAnbm9ybWFsJyxcbiAgJ29iamVjdC1maXQnLFxuICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgJ29wYWNpdHknLFxuICAnb3JkZXInLFxuICAnb3JwaGFucycsXG4gICdvdXRsaW5lJyxcbiAgJ291dGxpbmUtY29sb3InLFxuICAnb3V0bGluZS1vZmZzZXQnLFxuICAnb3V0bGluZS1zdHlsZScsXG4gICdvdXRsaW5lLXdpZHRoJyxcbiAgJ292ZXJmbG93JyxcbiAgJ292ZXJmbG93LXdyYXAnLFxuICAnb3ZlcmZsb3cteCcsXG4gICdvdmVyZmxvdy15JyxcbiAgJ3BhZGRpbmcnLFxuICAncGFkZGluZy1ibG9jaycsXG4gICdwYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdwYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3BhZGRpbmctYm90dG9tJyxcbiAgJ3BhZGRpbmctaW5saW5lJyxcbiAgJ3BhZGRpbmctaW5saW5lLWVuZCcsXG4gICdwYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdwYWRkaW5nLWxlZnQnLFxuICAncGFkZGluZy1yaWdodCcsXG4gICdwYWRkaW5nLXRvcCcsXG4gICdwYWdlLWJyZWFrLWFmdGVyJyxcbiAgJ3BhZ2UtYnJlYWstYmVmb3JlJyxcbiAgJ3BhZ2UtYnJlYWstaW5zaWRlJyxcbiAgJ3BhdXNlJyxcbiAgJ3BhdXNlLWFmdGVyJyxcbiAgJ3BhdXNlLWJlZm9yZScsXG4gICdwZXJzcGVjdGl2ZScsXG4gICdwZXJzcGVjdGl2ZS1vcmlnaW4nLFxuICAncG9pbnRlci1ldmVudHMnLFxuICAncG9zaXRpb24nLFxuICAncXVvdGVzJyxcbiAgJ3InLFxuICAncmVzaXplJyxcbiAgJ3Jlc3QnLFxuICAncmVzdC1hZnRlcicsXG4gICdyZXN0LWJlZm9yZScsXG4gICdyaWdodCcsXG4gICdyb3RhdGUnLFxuICAncm93LWdhcCcsXG4gICdzY2FsZScsXG4gICdzY3JvbGwtbWFyZ2luJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2snLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWJvdHRvbScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1sZWZ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tcmlnaHQnLFxuICAnc2Nyb2xsLW1hcmdpbi10b3AnLFxuICAnc2Nyb2xsLXBhZGRpbmcnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2snLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJvdHRvbScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctbGVmdCcsXG4gICdzY3JvbGwtcGFkZGluZy1yaWdodCcsXG4gICdzY3JvbGwtcGFkZGluZy10b3AnLFxuICAnc2Nyb2xsLXNuYXAtYWxpZ24nLFxuICAnc2Nyb2xsLXNuYXAtc3RvcCcsXG4gICdzY3JvbGwtc25hcC10eXBlJyxcbiAgJ3Njcm9sbGJhci1jb2xvcicsXG4gICdzY3JvbGxiYXItZ3V0dGVyJyxcbiAgJ3Njcm9sbGJhci13aWR0aCcsXG4gICdzaGFwZS1pbWFnZS10aHJlc2hvbGQnLFxuICAnc2hhcGUtbWFyZ2luJyxcbiAgJ3NoYXBlLW91dHNpZGUnLFxuICAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgJ3N0b3AtY29sb3InLFxuICAnc3RvcC1vcGFjaXR5JyxcbiAgJ3N0cm9rZScsXG4gICdzdHJva2UtZGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgJ3N0cm9rZS1saW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lam9pbicsXG4gICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICdzdHJva2Utb3BhY2l0eScsXG4gICdzdHJva2Utd2lkdGgnLFxuICAnc3BlYWsnLFxuICAnc3BlYWstYXMnLFxuICAnc3JjJywgLy8gQGZvbnQtZmFjZVxuICAndGFiLXNpemUnLFxuICAndGFibGUtbGF5b3V0JyxcbiAgJ3RleHQtYW5jaG9yJyxcbiAgJ3RleHQtYWxpZ24nLFxuICAndGV4dC1hbGlnbi1hbGwnLFxuICAndGV4dC1hbGlnbi1sYXN0JyxcbiAgJ3RleHQtY29tYmluZS11cHJpZ2h0JyxcbiAgJ3RleHQtZGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24tY29sb3InLFxuICAndGV4dC1kZWNvcmF0aW9uLWxpbmUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZScsXG4gICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJyxcbiAgJ3RleHQtZW1waGFzaXMnLFxuICAndGV4dC1lbXBoYXNpcy1jb2xvcicsXG4gICd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJyxcbiAgJ3RleHQtZW1waGFzaXMtc3R5bGUnLFxuICAndGV4dC1pbmRlbnQnLFxuICAndGV4dC1qdXN0aWZ5JyxcbiAgJ3RleHQtb3JpZW50YXRpb24nLFxuICAndGV4dC1vdmVyZmxvdycsXG4gICd0ZXh0LXJlbmRlcmluZycsXG4gICd0ZXh0LXNoYWRvdycsXG4gICd0ZXh0LXRyYW5zZm9ybScsXG4gICd0ZXh0LXVuZGVybGluZS1vZmZzZXQnLFxuICAndGV4dC11bmRlcmxpbmUtcG9zaXRpb24nLFxuICAndG9wJyxcbiAgJ3RyYW5zZm9ybScsXG4gICd0cmFuc2Zvcm0tYm94JyxcbiAgJ3RyYW5zZm9ybS1vcmlnaW4nLFxuICAndHJhbnNmb3JtLXN0eWxlJyxcbiAgJ3RyYW5zaXRpb24nLFxuICAndHJhbnNpdGlvbi1kZWxheScsXG4gICd0cmFuc2l0aW9uLWR1cmF0aW9uJyxcbiAgJ3RyYW5zaXRpb24tcHJvcGVydHknLFxuICAndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAndHJhbnNsYXRlJyxcbiAgJ3VuaWNvZGUtYmlkaScsXG4gICd2ZWN0b3ItZWZmZWN0JyxcbiAgJ3ZlcnRpY2FsLWFsaWduJyxcbiAgJ3Zpc2liaWxpdHknLFxuICAndm9pY2UtYmFsYW5jZScsXG4gICd2b2ljZS1kdXJhdGlvbicsXG4gICd2b2ljZS1mYW1pbHknLFxuICAndm9pY2UtcGl0Y2gnLFxuICAndm9pY2UtcmFuZ2UnLFxuICAndm9pY2UtcmF0ZScsXG4gICd2b2ljZS1zdHJlc3MnLFxuICAndm9pY2Utdm9sdW1lJyxcbiAgJ3doaXRlLXNwYWNlJyxcbiAgJ3dpZG93cycsXG4gICd3aWR0aCcsXG4gICd3aWxsLWNoYW5nZScsXG4gICd3b3JkLWJyZWFrJyxcbiAgJ3dvcmQtc3BhY2luZycsXG4gICd3b3JkLXdyYXAnLFxuICAnd3JpdGluZy1tb2RlJyxcbiAgJ3gnLFxuICAneScsXG4gICd6LWluZGV4J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IFN0eWx1c1xuQXV0aG9yOiBCcnlhbnQgV2lsbGlhbXMgPGIubi53aWxsaWFtc0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3R5bHVzIGlzIGFuIGV4cHJlc3NpdmUsIHJvYnVzdCwgZmVhdHVyZS1yaWNoIENTUyBsYW5ndWFnZSBidWlsdCBmb3Igbm9kZWpzLlxuV2Vic2l0ZTogaHR0cHM6Ly9naXRodWIuY29tL3N0eWx1cy9zdHlsdXNcbkNhdGVnb3J5OiBjc3MsIHdlYlxuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gc3R5bHVzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcblxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46ICdcXFxcJCcgKyBobGpzLklERU5UX1JFXG4gIH07XG5cbiAgY29uc3QgQVRfS0VZV09SRFMgPSBbXG4gICAgJ2NoYXJzZXQnLFxuICAgICdjc3MnLFxuICAgICdkZWJ1ZycsXG4gICAgJ2V4dGVuZCcsXG4gICAgJ2ZvbnQtZmFjZScsXG4gICAgJ2ZvcicsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ2luY2x1ZGUnLFxuICAgICdrZXlmcmFtZXMnLFxuICAgICdtZWRpYScsXG4gICAgJ21peGluJyxcbiAgICAncGFnZScsXG4gICAgJ3dhcm4nLFxuICAgICd3aGlsZSdcbiAgXTtcblxuICBjb25zdCBMT09LQUhFQURfVEFHX0VORCA9ICcoPz1bLlxcXFxzXFxcXG5bOiwoXSknO1xuXG4gIC8vIGlsbGVnYWxzXG4gIGNvbnN0IElMTEVHQUwgPSBbXG4gICAgJ1xcXFw/JyxcbiAgICAnKFxcXFxiUmV0dXJuXFxcXGIpJywgLy8gbW9ua2V5XG4gICAgJyhcXFxcYkVuZFxcXFxiKScsIC8vIG1vbmtleVxuICAgICcoXFxcXGJlbmRcXFxcYiknLCAvLyB2YnNjcmlwdFxuICAgICcoXFxcXGJkZWZcXFxcYiknLCAvLyBncmFkbGVcbiAgICAnOycsIC8vIGEgd2hvbGUgbG90IG9mIGxhbmd1YWdlc1xuICAgICcjXFxcXHMnLCAvLyBtYXJrZG93blxuICAgICdcXFxcKlxcXFxzJywgLy8gbWFya2Rvd25cbiAgICAnPT09XFxcXHMnLCAvLyBtYXJrZG93blxuICAgICdcXFxcfCcsXG4gICAgJyUnIC8vIHByb2xvZ1xuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N0eWx1cycsXG4gICAgYWxpYXNlczogWyAnc3R5bCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogJ2lmIGVsc2UgZm9yIGluJyxcbiAgICBpbGxlZ2FsOiAnKCcgKyBJTExFR0FMLmpvaW4oJ3wnKSArICcpJyxcbiAgICBjb250YWluczogW1xuXG4gICAgICAvLyBzdHJpbmdzXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuXG4gICAgICAvLyBjb21tZW50c1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcblxuICAgICAgLy8gaGV4IGNvbG9yc1xuICAgICAgbW9kZXMuSEVYQ09MT1IsXG5cbiAgICAgIC8vIGNsYXNzIHRhZ1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFwuW2EtekEtWl1bYS16QS1aMC05Xy1dKicgKyBMT09LQUhFQURfVEFHX0VORCxcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItY2xhc3MnXG4gICAgICB9LFxuXG4gICAgICAvLyBpZCB0YWdcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcjW2EtekEtWl1bYS16QS1aMC05Xy1dKicgKyBMT09LQUhFQURfVEFHX0VORCxcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItaWQnXG4gICAgICB9LFxuXG4gICAgICAvLyB0YWdzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJyknICsgTE9PS0FIRUFEX1RBR19FTkQsXG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZydcbiAgICAgIH0sXG5cbiAgICAgIC8vIHBzdWVkbyBzZWxlY3RvcnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItcHNldWRvJyxcbiAgICAgICAgYmVnaW46ICcmPzooJyArIFBTRVVET19DTEFTU0VTLmpvaW4oJ3wnKSArICcpJyArIExPT0tBSEVBRF9UQUdfRU5EXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLFxuICAgICAgICBiZWdpbjogJyY/Oig6KT8oJyArIFBTRVVET19FTEVNRU5UUy5qb2luKCd8JykgKyAnKScgKyBMT09LQUhFQURfVEFHX0VORFxuICAgICAgfSxcblxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG5cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIixcbiAgICAgICAgYmVnaW46IC9AbWVkaWEvLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC9bezt9XS8sXG4gICAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgICRwYXR0ZXJuOiAvW2Etei1dKy8sXG4gICAgICAgICAgICBrZXl3b3JkOiBBVF9NT0RJRklFUlMsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IE1FRElBX0ZFQVRVUkVTLmpvaW4oXCIgXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb250YWluczogWyBtb2Rlcy5DU1NfTlVNQkVSX01PREUgXVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBAIGtleXdvcmRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogJ1xcQCgoLShvfG1venxtc3x3ZWJraXQpLSk/KCcgKyBBVF9LRVlXT1JEUy5qb2luKCd8JykgKyAnKSlcXFxcYidcbiAgICAgIH0sXG5cbiAgICAgIC8vIHZhcmlhYmxlc1xuICAgICAgVkFSSUFCTEUsXG5cbiAgICAgIC8vIGRpbWVuc2lvblxuICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuXG4gICAgICAvLyBmdW5jdGlvbnNcbiAgICAgIC8vICAtIG9ubHkgZnJvbSBiZWdpbm5pbmcgb2YgbGluZSArIHdoaXRlc3BhY2VcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ15bYS16QS1aXVthLXpBLVowLTlfXFwtXSpcXFxcKC4qXFxcXCknLFxuICAgICAgICBpbGxlZ2FsOiAnW1xcXFxuXScsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGJbYS16QS1aXVthLXpBLVowLTlfXFwtXSonXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIGNzcyB2YXJpYWJsZXNcbiAgICAgIG1vZGVzLkNTU19WQVJJQUJMRSxcblxuICAgICAgLy8gYXR0cmlidXRlc1xuICAgICAgLy8gIC0gb25seSBmcm9tIGJlZ2lubmluZyBvZiBsaW5lICsgd2hpdGVzcGFjZVxuICAgICAgLy8gIC0gbXVzdCBoYXZlIHdoaXRlc3BhY2UgYWZ0ZXIgaXRcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgQVRUUklCVVRFUy5qb2luKCd8JykgKyAnKVxcXFxiJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gdmFsdWUgY29udGFpbmVyXG4gICAgICAgICAgZW5kOiAvO3wkLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgbW9kZXMuSEVYQ09MT1IsXG4gICAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgbW9kZXMuSU1QT1JUQU5ULFxuICAgICAgICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICAgICAgICBdLFxuICAgICAgICAgIGlsbGVnYWw6IC9cXC4vLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3R5bHVzO1xuIiwgIi8qXG5MYW5ndWFnZTogU3ViVW5pdFxuQXV0aG9yOiBTZXJnZXkgQnJvbm5pa292IDxzZXJnZXliQGJyb25ldmljaG9rLnJ1PlxuV2Vic2l0ZTogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGhvbi1zdWJ1bml0L1xuQ2F0ZWdvcnk6IHByb3RvY29sc1xuKi9cblxuZnVuY3Rpb24gc3VidW5pdChobGpzKSB7XG4gIGNvbnN0IERFVEFJTFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcXFxbXFxuKG11bHRpcGFydCk/JyxcbiAgICBlbmQ6ICdcXFxcXVxcbidcbiAgfTtcbiAgY29uc3QgVElNRSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn0oXFxcXHMrKVxcXFxkezJ9OlxcXFxkezJ9OlxcXFxkezJ9XFwuXFxcXGQrWidcbiAgfTtcbiAgY29uc3QgUFJPR1JFU1NWQUxVRSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnKFxcXFwrfC0pXFxcXGQrJ1xuICB9O1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICByZWxldmFuY2U6IDEwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXih0ZXN0fHRlc3Rpbmd8c3VjY2Vzc3xzdWNjZXNzZnVsfGZhaWx1cmV8ZXJyb3J8c2tpcHx4ZmFpbHx1eHN1Y2Nlc3MpKDo/KVxcXFxzKyh0ZXN0KT8nIH0sXG4gICAgICB7IGJlZ2luOiAnXnByb2dyZXNzKDo/KShcXFxccyspPyhwb3B8cHVzaCk/JyB9LFxuICAgICAgeyBiZWdpbjogJ150YWdzOicgfSxcbiAgICAgIHsgYmVnaW46ICdedGltZTonIH1cbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N1YlVuaXQnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIERFVEFJTFMsXG4gICAgICBUSU1FLFxuICAgICAgUFJPR1JFU1NWQUxVRSxcbiAgICAgIEtFWVdPUkRTXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN1YnVuaXQ7XG4iLCAiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtSZWdFeHB9XG4gKiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7UmVnRXhwIHwgc3RyaW5nIH0gcmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNvdXJjZShyZSkge1xuICBpZiAoIXJlKSByZXR1cm4gbnVsbDtcbiAgaWYgKHR5cGVvZiByZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHJlO1xuXG4gIHJldHVybiByZS5zb3VyY2U7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gbG9va2FoZWFkKHJlKSB7XG4gIHJldHVybiBjb25jYXQoJyg/PScsIHJlLCAnKScpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Li4uKFJlZ0V4cCB8IHN0cmluZykgfSBhcmdzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBjb25jYXQoLi4uYXJncykge1xuICBjb25zdCBqb2luZWQgPSBhcmdzLm1hcCgoeCkgPT4gc291cmNlKHgpKS5qb2luKFwiXCIpO1xuICByZXR1cm4gam9pbmVkO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7IEFycmF5PHN0cmluZyB8IFJlZ0V4cCB8IE9iamVjdD4gfSBhcmdzXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5mdW5jdGlvbiBzdHJpcE9wdGlvbnNGcm9tQXJncyhhcmdzKSB7XG4gIGNvbnN0IG9wdHMgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG5cbiAgaWYgKHR5cGVvZiBvcHRzID09PSAnb2JqZWN0JyAmJiBvcHRzLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICBhcmdzLnNwbGljZShhcmdzLmxlbmd0aCAtIDEsIDEpO1xuICAgIHJldHVybiBvcHRzO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKiogQHR5cGVkZWYgeyB7Y2FwdHVyZT86IGJvb2xlYW59IH0gUmVnZXhFaXRoZXJPcHRpb25zICovXG5cbi8qKlxuICogQW55IG9mIHRoZSBwYXNzZWQgZXhwcmVzc3Npb25zIG1heSBtYXRjaFxuICpcbiAqIENyZWF0ZXMgYSBodWdlIHRoaXMgfCB0aGlzIHwgdGhhdCB8IHRoYXQgbWF0Y2hcbiAqIEBwYXJhbSB7KFJlZ0V4cCB8IHN0cmluZylbXSB8IFsuLi4oUmVnRXhwIHwgc3RyaW5nKVtdLCBSZWdleEVpdGhlck9wdGlvbnNdfSBhcmdzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBlaXRoZXIoLi4uYXJncykge1xuICAvKiogQHR5cGUgeyBvYmplY3QgJiB7Y2FwdHVyZT86IGJvb2xlYW59IH0gICovXG4gIGNvbnN0IG9wdHMgPSBzdHJpcE9wdGlvbnNGcm9tQXJncyhhcmdzKTtcbiAgY29uc3Qgam9pbmVkID0gJygnXG4gICAgKyAob3B0cy5jYXB0dXJlID8gXCJcIiA6IFwiPzpcIilcbiAgICArIGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJ8XCIpICsgXCIpXCI7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbmNvbnN0IGtleXdvcmRXcmFwcGVyID0ga2V5d29yZCA9PiBjb25jYXQoXG4gIC9cXGIvLFxuICBrZXl3b3JkLFxuICAvXFx3JC8udGVzdChrZXl3b3JkKSA/IC9cXGIvIDogL1xcQi9cbik7XG5cbi8vIEtleXdvcmRzIHRoYXQgcmVxdWlyZSBhIGxlYWRpbmcgZG90LlxuY29uc3QgZG90S2V5d29yZHMgPSBbXG4gICdQcm90b2NvbCcsIC8vIGNvbnRleHR1YWxcbiAgJ1R5cGUnIC8vIGNvbnRleHR1YWxcbl0ubWFwKGtleXdvcmRXcmFwcGVyKTtcblxuLy8gS2V5d29yZHMgdGhhdCBtYXkgaGF2ZSBhIGxlYWRpbmcgZG90LlxuY29uc3Qgb3B0aW9uYWxEb3RLZXl3b3JkcyA9IFtcbiAgJ2luaXQnLFxuICAnc2VsZidcbl0ubWFwKGtleXdvcmRXcmFwcGVyKTtcblxuLy8gc2hvdWxkIHJlZ2lzdGVyIGFzIGtleXdvcmQsIG5vdCB0eXBlXG5jb25zdCBrZXl3b3JkVHlwZXMgPSBbXG4gICdBbnknLFxuICAnU2VsZidcbl07XG5cbi8vIFJlZ3VsYXIga2V5d29yZHMgYW5kIGxpdGVyYWxzLlxuY29uc3Qga2V5d29yZHMgPSBbXG4gIC8vIHN0cmluZ3MgYmVsb3cgd2lsbCBiZSBmZWQgaW50byB0aGUgcmVndWxhciBga2V5d29yZHNgIGVuZ2luZSB3aGlsZSByZWdleFxuICAvLyB3aWxsIHJlc3VsdCBpbiBhZGRpdGlvbmFsIG1vZGVzIGJlaW5nIGNyZWF0ZWQgdG8gc2NhbiBmb3IgdGhvc2Uga2V5d29yZHMgdG9cbiAgLy8gYXZvaWQgY29uZmxpY3RzIHdpdGggb3RoZXIgcnVsZXNcbiAgJ2FjdG9yJyxcbiAgJ2FueScsIC8vIGNvbnRleHR1YWxcbiAgJ2Fzc29jaWF0ZWR0eXBlJyxcbiAgJ2FzeW5jJyxcbiAgJ2F3YWl0JyxcbiAgL2FzXFw/LywgLy8gb3BlcmF0b3JcbiAgL2FzIS8sIC8vIG9wZXJhdG9yXG4gICdhcycsIC8vIG9wZXJhdG9yXG4gICdib3Jyb3dpbmcnLCAvLyBjb250ZXh0dWFsXG4gICdicmVhaycsXG4gICdjYXNlJyxcbiAgJ2NhdGNoJyxcbiAgJ2NsYXNzJyxcbiAgJ2NvbnN1bWUnLCAvLyBjb250ZXh0dWFsXG4gICdjb25zdW1pbmcnLCAvLyBjb250ZXh0dWFsXG4gICdjb250aW51ZScsXG4gICdjb252ZW5pZW5jZScsIC8vIGNvbnRleHR1YWxcbiAgJ2NvcHknLCAvLyBjb250ZXh0dWFsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmVyJyxcbiAgJ2RlaW5pdCcsXG4gICdkaWRTZXQnLCAvLyBjb250ZXh0dWFsXG4gICdkaXN0cmlidXRlZCcsXG4gICdkbycsXG4gICdkeW5hbWljJywgLy8gY29udGV4dHVhbFxuICAnZWFjaCcsXG4gICdlbHNlJyxcbiAgJ2VudW0nLFxuICAnZXh0ZW5zaW9uJyxcbiAgJ2ZhbGx0aHJvdWdoJyxcbiAgL2ZpbGVwcml2YXRlXFwoc2V0XFwpLyxcbiAgJ2ZpbGVwcml2YXRlJyxcbiAgJ2ZpbmFsJywgLy8gY29udGV4dHVhbFxuICAnZm9yJyxcbiAgJ2Z1bmMnLFxuICAnZ2V0JywgLy8gY29udGV4dHVhbFxuICAnZ3VhcmQnLFxuICAnaWYnLFxuICAnaW1wb3J0JyxcbiAgJ2luZGlyZWN0JywgLy8gY29udGV4dHVhbFxuICAnaW5maXgnLCAvLyBjb250ZXh0dWFsXG4gIC9pbml0XFw/LyxcbiAgL2luaXQhLyxcbiAgJ2lub3V0JyxcbiAgL2ludGVybmFsXFwoc2V0XFwpLyxcbiAgJ2ludGVybmFsJyxcbiAgJ2luJyxcbiAgJ2lzJywgLy8gb3BlcmF0b3JcbiAgJ2lzb2xhdGVkJywgLy8gY29udGV4dHVhbFxuICAnbm9uaXNvbGF0ZWQnLCAvLyBjb250ZXh0dWFsXG4gICdsYXp5JywgLy8gY29udGV4dHVhbFxuICAnbGV0JyxcbiAgJ21hY3JvJyxcbiAgJ211dGF0aW5nJywgLy8gY29udGV4dHVhbFxuICAnbm9ubXV0YXRpbmcnLCAvLyBjb250ZXh0dWFsXG4gIC9vcGVuXFwoc2V0XFwpLywgLy8gY29udGV4dHVhbFxuICAnb3BlbicsIC8vIGNvbnRleHR1YWxcbiAgJ29wZXJhdG9yJyxcbiAgJ29wdGlvbmFsJywgLy8gY29udGV4dHVhbFxuICAnb3ZlcnJpZGUnLCAvLyBjb250ZXh0dWFsXG4gICdwYWNrYWdlJyxcbiAgJ3Bvc3RmaXgnLCAvLyBjb250ZXh0dWFsXG4gICdwcmVjZWRlbmNlZ3JvdXAnLFxuICAncHJlZml4JywgLy8gY29udGV4dHVhbFxuICAvcHJpdmF0ZVxcKHNldFxcKS8sXG4gICdwcml2YXRlJyxcbiAgJ3Byb3RvY29sJyxcbiAgL3B1YmxpY1xcKHNldFxcKS8sXG4gICdwdWJsaWMnLFxuICAncmVwZWF0JyxcbiAgJ3JlcXVpcmVkJywgLy8gY29udGV4dHVhbFxuICAncmV0aHJvd3MnLFxuICAncmV0dXJuJyxcbiAgJ3NldCcsIC8vIGNvbnRleHR1YWxcbiAgJ3NvbWUnLCAvLyBjb250ZXh0dWFsXG4gICdzdGF0aWMnLFxuICAnc3RydWN0JyxcbiAgJ3N1YnNjcmlwdCcsXG4gICdzdXBlcicsXG4gICdzd2l0Y2gnLFxuICAndGhyb3dzJyxcbiAgJ3Rocm93JyxcbiAgL3RyeVxcPy8sIC8vIG9wZXJhdG9yXG4gIC90cnkhLywgLy8gb3BlcmF0b3JcbiAgJ3RyeScsIC8vIG9wZXJhdG9yXG4gICd0eXBlYWxpYXMnLFxuICAvdW5vd25lZFxcKHNhZmVcXCkvLCAvLyBjb250ZXh0dWFsXG4gIC91bm93bmVkXFwodW5zYWZlXFwpLywgLy8gY29udGV4dHVhbFxuICAndW5vd25lZCcsIC8vIGNvbnRleHR1YWxcbiAgJ3ZhcicsXG4gICd3ZWFrJywgLy8gY29udGV4dHVhbFxuICAnd2hlcmUnLFxuICAnd2hpbGUnLFxuICAnd2lsbFNldCcgLy8gY29udGV4dHVhbFxuXTtcblxuLy8gTk9URTogQ29udGV4dHVhbCBrZXl3b3JkcyBhcmUgcmVzZXJ2ZWQgb25seSBpbiBzcGVjaWZpYyBjb250ZXh0cy5cbi8vIElkZWFsbHksIHRoZXNlIHNob3VsZCBiZSBtYXRjaGVkIHVzaW5nIG1vZGVzIHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcy5cblxuLy8gTGl0ZXJhbHMuXG5jb25zdCBsaXRlcmFscyA9IFtcbiAgJ2ZhbHNlJyxcbiAgJ25pbCcsXG4gICd0cnVlJ1xuXTtcblxuLy8gS2V5d29yZHMgdXNlZCBpbiBwcmVjZWRlbmNlIGdyb3Vwcy5cbmNvbnN0IHByZWNlZGVuY2Vncm91cEtleXdvcmRzID0gW1xuICAnYXNzaWdubWVudCcsXG4gICdhc3NvY2lhdGl2aXR5JyxcbiAgJ2hpZ2hlclRoYW4nLFxuICAnbGVmdCcsXG4gICdsb3dlclRoYW4nLFxuICAnbm9uZScsXG4gICdyaWdodCdcbl07XG5cbi8vIEtleXdvcmRzIHRoYXQgc3RhcnQgd2l0aCBhIG51bWJlciBzaWduICgjKS5cbi8vICModW4pYXZhaWxhYmxlIGlzIGhhbmRsZWQgc2VwYXJhdGVseS5cbmNvbnN0IG51bWJlclNpZ25LZXl3b3JkcyA9IFtcbiAgJyNjb2xvckxpdGVyYWwnLFxuICAnI2NvbHVtbicsXG4gICcjZHNvaGFuZGxlJyxcbiAgJyNlbHNlJyxcbiAgJyNlbHNlaWYnLFxuICAnI2VuZGlmJyxcbiAgJyNlcnJvcicsXG4gICcjZmlsZScsXG4gICcjZmlsZUlEJyxcbiAgJyNmaWxlTGl0ZXJhbCcsXG4gICcjZmlsZVBhdGgnLFxuICAnI2Z1bmN0aW9uJyxcbiAgJyNpZicsXG4gICcjaW1hZ2VMaXRlcmFsJyxcbiAgJyNrZXlQYXRoJyxcbiAgJyNsaW5lJyxcbiAgJyNzZWxlY3RvcicsXG4gICcjc291cmNlTG9jYXRpb24nLFxuICAnI3dhcm5pbmcnXG5dO1xuXG4vLyBHbG9iYWwgZnVuY3Rpb25zIGluIHRoZSBTdGFuZGFyZCBMaWJyYXJ5LlxuY29uc3QgYnVpbHRJbnMgPSBbXG4gICdhYnMnLFxuICAnYWxsJyxcbiAgJ2FueScsXG4gICdhc3NlcnQnLFxuICAnYXNzZXJ0aW9uRmFpbHVyZScsXG4gICdkZWJ1Z1ByaW50JyxcbiAgJ2R1bXAnLFxuICAnZmF0YWxFcnJvcicsXG4gICdnZXRWYUxpc3QnLFxuICAnaXNLbm93blVuaXF1ZWx5UmVmZXJlbmNlZCcsXG4gICdtYXgnLFxuICAnbWluJyxcbiAgJ251bWVyaWNDYXN0JyxcbiAgJ3BvaW50d2lzZU1heCcsXG4gICdwb2ludHdpc2VNaW4nLFxuICAncHJlY29uZGl0aW9uJyxcbiAgJ3ByZWNvbmRpdGlvbkZhaWx1cmUnLFxuICAncHJpbnQnLFxuICAncmVhZExpbmUnLFxuICAncmVwZWF0RWxlbWVudCcsXG4gICdzZXF1ZW5jZScsXG4gICdzdHJpZGUnLFxuICAnc3dhcCcsXG4gICdzd2lmdF91bmJveEZyb21Td2lmdFZhbHVlV2l0aFR5cGUnLFxuICAndHJhbnNjb2RlJyxcbiAgJ3R5cGUnLFxuICAndW5zYWZlQml0Q2FzdCcsXG4gICd1bnNhZmVEb3duY2FzdCcsXG4gICd3aXRoRXh0ZW5kZWRMaWZldGltZScsXG4gICd3aXRoVW5zYWZlTXV0YWJsZVBvaW50ZXInLFxuICAnd2l0aFVuc2FmZVBvaW50ZXInLFxuICAnd2l0aFZhTGlzdCcsXG4gICd3aXRob3V0QWN0dWFsbHlFc2NhcGluZycsXG4gICd6aXAnXG5dO1xuXG4vLyBWYWxpZCBmaXJzdCBjaGFyYWN0ZXJzIGZvciBvcGVyYXRvcnMuXG5jb25zdCBvcGVyYXRvckhlYWQgPSBlaXRoZXIoXG4gIC9bLz1cXC0rISolPD4mfF5+P10vLFxuICAvW1xcdTAwQTEtXFx1MDBBN10vLFxuICAvW1xcdTAwQTlcXHUwMEFCXS8sXG4gIC9bXFx1MDBBQ1xcdTAwQUVdLyxcbiAgL1tcXHUwMEIwXFx1MDBCMV0vLFxuICAvW1xcdTAwQjZcXHUwMEJCXFx1MDBCRlxcdTAwRDdcXHUwMEY3XS8sXG4gIC9bXFx1MjAxNi1cXHUyMDE3XS8sXG4gIC9bXFx1MjAyMC1cXHUyMDI3XS8sXG4gIC9bXFx1MjAzMC1cXHUyMDNFXS8sXG4gIC9bXFx1MjA0MS1cXHUyMDUzXS8sXG4gIC9bXFx1MjA1NS1cXHUyMDVFXS8sXG4gIC9bXFx1MjE5MC1cXHUyM0ZGXS8sXG4gIC9bXFx1MjUwMC1cXHUyNzc1XS8sXG4gIC9bXFx1Mjc5NC1cXHUyQkZGXS8sXG4gIC9bXFx1MkUwMC1cXHUyRTdGXS8sXG4gIC9bXFx1MzAwMS1cXHUzMDAzXS8sXG4gIC9bXFx1MzAwOC1cXHUzMDIwXS8sXG4gIC9bXFx1MzAzMF0vXG4pO1xuXG4vLyBWYWxpZCBjaGFyYWN0ZXJzIGZvciBvcGVyYXRvcnMuXG5jb25zdCBvcGVyYXRvckNoYXJhY3RlciA9IGVpdGhlcihcbiAgb3BlcmF0b3JIZWFkLFxuICAvW1xcdTAzMDAtXFx1MDM2Rl0vLFxuICAvW1xcdTFEQzAtXFx1MURGRl0vLFxuICAvW1xcdTIwRDAtXFx1MjBGRl0vLFxuICAvW1xcdUZFMDAtXFx1RkUwRl0vLFxuICAvW1xcdUZFMjAtXFx1RkUyRl0vXG4gIC8vIFRPRE86IFRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyBhcmUgYWxzbyBhbGxvd2VkLCBidXQgdGhlIHJlZ2V4IGlzbid0IHN1cHBvcnRlZCB5ZXQuXG4gIC8vIC9bXFx1e0UwMTAwfS1cXHV7RTAxRUZ9XS91XG4pO1xuXG4vLyBWYWxpZCBvcGVyYXRvci5cbmNvbnN0IG9wZXJhdG9yID0gY29uY2F0KG9wZXJhdG9ySGVhZCwgb3BlcmF0b3JDaGFyYWN0ZXIsICcqJyk7XG5cbi8vIFZhbGlkIGZpcnN0IGNoYXJhY3RlcnMgZm9yIGlkZW50aWZpZXJzLlxuY29uc3QgaWRlbnRpZmllckhlYWQgPSBlaXRoZXIoXG4gIC9bYS16QS1aX10vLFxuICAvW1xcdTAwQThcXHUwMEFBXFx1MDBBRFxcdTAwQUZcXHUwMEIyLVxcdTAwQjVcXHUwMEI3LVxcdTAwQkFdLyxcbiAgL1tcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAwRkZdLyxcbiAgL1tcXHUwMTAwLVxcdTAyRkZcXHUwMzcwLVxcdTE2N0ZcXHUxNjgxLVxcdTE4MERcXHUxODBGLVxcdTFEQkZdLyxcbiAgL1tcXHUxRTAwLVxcdTFGRkZdLyxcbiAgL1tcXHUyMDBCLVxcdTIwMERcXHUyMDJBLVxcdTIwMkVcXHUyMDNGLVxcdTIwNDBcXHUyMDU0XFx1MjA2MC1cXHUyMDZGXS8sXG4gIC9bXFx1MjA3MC1cXHUyMENGXFx1MjEwMC1cXHUyMThGXFx1MjQ2MC1cXHUyNEZGXFx1Mjc3Ni1cXHUyNzkzXS8sXG4gIC9bXFx1MkMwMC1cXHUyREZGXFx1MkU4MC1cXHUyRkZGXS8sXG4gIC9bXFx1MzAwNC1cXHUzMDA3XFx1MzAyMS1cXHUzMDJGXFx1MzAzMS1cXHUzMDNGXFx1MzA0MC1cXHVEN0ZGXS8sXG4gIC9bXFx1RjkwMC1cXHVGRDNEXFx1RkQ0MC1cXHVGRENGXFx1RkRGMC1cXHVGRTFGXFx1RkUzMC1cXHVGRTQ0XS8sXG4gIC9bXFx1RkU0Ny1cXHVGRUZFXFx1RkYwMC1cXHVGRkZEXS8gLy8gU2hvdWxkIGJlIC9bXFx1RkU0Ny1cXHVGRkZEXS8sIGJ1dCB3ZSBoYXZlIHRvIGV4Y2x1ZGUgRkVGRi5cbiAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSBhbHNvIGFsbG93ZWQsIGJ1dCB0aGUgcmVnZXhlcyBhcmVuJ3Qgc3VwcG9ydGVkIHlldC5cbiAgLy8gL1tcXHV7MTAwMDB9LVxcdXsxRkZGRH1cXHV7MjAwMDAtXFx1ezJGRkZEfVxcdXszMDAwMH0tXFx1ezNGRkZEfVxcdXs0MDAwMH0tXFx1ezRGRkZEfV0vdSxcbiAgLy8gL1tcXHV7NTAwMDB9LVxcdXs1RkZGRH1cXHV7NjAwMDAtXFx1ezZGRkZEfVxcdXs3MDAwMH0tXFx1ezdGRkZEfVxcdXs4MDAwMH0tXFx1ezhGRkZEfV0vdSxcbiAgLy8gL1tcXHV7OTAwMDB9LVxcdXs5RkZGRH1cXHV7QTAwMDAtXFx1e0FGRkZEfVxcdXtCMDAwMH0tXFx1e0JGRkZEfVxcdXtDMDAwMH0tXFx1e0NGRkZEfV0vdSxcbiAgLy8gL1tcXHV7RDAwMDB9LVxcdXtERkZGRH1cXHV7RTAwMDAtXFx1e0VGRkZEfV0vdVxuKTtcblxuLy8gVmFsaWQgY2hhcmFjdGVycyBmb3IgaWRlbnRpZmllcnMuXG5jb25zdCBpZGVudGlmaWVyQ2hhcmFjdGVyID0gZWl0aGVyKFxuICBpZGVudGlmaWVySGVhZCxcbiAgL1xcZC8sXG4gIC9bXFx1MDMwMC1cXHUwMzZGXFx1MURDMC1cXHUxREZGXFx1MjBEMC1cXHUyMEZGXFx1RkUyMC1cXHVGRTJGXS9cbik7XG5cbi8vIFZhbGlkIGlkZW50aWZpZXIuXG5jb25zdCBpZGVudGlmaWVyID0gY29uY2F0KGlkZW50aWZpZXJIZWFkLCBpZGVudGlmaWVyQ2hhcmFjdGVyLCAnKicpO1xuXG4vLyBWYWxpZCB0eXBlIGlkZW50aWZpZXIuXG5jb25zdCB0eXBlSWRlbnRpZmllciA9IGNvbmNhdCgvW0EtWl0vLCBpZGVudGlmaWVyQ2hhcmFjdGVyLCAnKicpO1xuXG4vLyBCdWlsdC1pbiBhdHRyaWJ1dGVzLCB3aGljaCBhcmUgaGlnaGxpZ2h0ZWQgYXMga2V5d29yZHMuXG4vLyBAYXZhaWxhYmxlIGlzIGhhbmRsZWQgc2VwYXJhdGVseS5cbi8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9kb2N1bWVudGF0aW9uL3RoZS1zd2lmdC1wcm9ncmFtbWluZy1sYW5ndWFnZS9hdHRyaWJ1dGVzXG5jb25zdCBrZXl3b3JkQXR0cmlidXRlcyA9IFtcbiAgJ2F0dGFjaGVkJyxcbiAgJ2F1dG9jbG9zdXJlJyxcbiAgY29uY2F0KC9jb252ZW50aW9uXFwoLywgZWl0aGVyKCdzd2lmdCcsICdibG9jaycsICdjJyksIC9cXCkvKSxcbiAgJ2Rpc2NhcmRhYmxlUmVzdWx0JyxcbiAgJ2R5bmFtaWNDYWxsYWJsZScsXG4gICdkeW5hbWljTWVtYmVyTG9va3VwJyxcbiAgJ2VzY2FwaW5nJyxcbiAgJ2ZyZWVzdGFuZGluZycsXG4gICdmcm96ZW4nLFxuICAnR0tJbnNwZWN0YWJsZScsXG4gICdJQkFjdGlvbicsXG4gICdJQkRlc2lnbmFibGUnLFxuICAnSUJJbnNwZWN0YWJsZScsXG4gICdJQk91dGxldCcsXG4gICdJQlNlZ3VlQWN0aW9uJyxcbiAgJ2lubGluYWJsZScsXG4gICdtYWluJyxcbiAgJ25vbm9iamMnLFxuICAnTlNBcHBsaWNhdGlvbk1haW4nLFxuICAnTlNDb3B5aW5nJyxcbiAgJ05TTWFuYWdlZCcsXG4gIGNvbmNhdCgvb2JqY1xcKC8sIGlkZW50aWZpZXIsIC9cXCkvKSxcbiAgJ29iamMnLFxuICAnb2JqY01lbWJlcnMnLFxuICAncHJvcGVydHlXcmFwcGVyJyxcbiAgJ3JlcXVpcmVzX3N0b3JlZF9wcm9wZXJ0eV9pbml0cycsXG4gICdyZXN1bHRCdWlsZGVyJyxcbiAgJ1NlbmRhYmxlJyxcbiAgJ3Rlc3RhYmxlJyxcbiAgJ1VJQXBwbGljYXRpb25NYWluJyxcbiAgJ3VuY2hlY2tlZCcsXG4gICd1bmtub3duJyxcbiAgJ3VzYWJsZUZyb21JbmxpbmUnLFxuICAnd2Fybl91bnF1YWxpZmllZF9hY2Nlc3MnXG5dO1xuXG4vLyBDb250ZXh0dWFsIGtleXdvcmRzIHVzZWQgaW4gQGF2YWlsYWJsZSBhbmQgIyh1bilhdmFpbGFibGUuXG5jb25zdCBhdmFpbGFiaWxpdHlLZXl3b3JkcyA9IFtcbiAgJ2lPUycsXG4gICdpT1NBcHBsaWNhdGlvbkV4dGVuc2lvbicsXG4gICdtYWNPUycsXG4gICdtYWNPU0FwcGxpY2F0aW9uRXh0ZW5zaW9uJyxcbiAgJ21hY0NhdGFseXN0JyxcbiAgJ21hY0NhdGFseXN0QXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAnd2F0Y2hPUycsXG4gICd3YXRjaE9TQXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAndHZPUycsXG4gICd0dk9TQXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAnc3dpZnQnXG5dO1xuXG4vKlxuTGFuZ3VhZ2U6IFN3aWZ0XG5EZXNjcmlwdGlvbjogU3dpZnQgaXMgYSBnZW5lcmFsLXB1cnBvc2UgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYnVpbHQgdXNpbmcgYSBtb2Rlcm4gYXBwcm9hY2ggdG8gc2FmZXR5LCBwZXJmb3JtYW5jZSwgYW5kIHNvZnR3YXJlIGRlc2lnbiBwYXR0ZXJucy5cbkF1dGhvcjogU3RldmVuIFZhbiBJbXBlIDxzdGV2ZW4udmFuaW1wZUBpY2xvdWQuY29tPlxuQ29udHJpYnV0b3JzOiBDaHJpcyBFaWRob2YgPGNocmlzQGVpZGhvZi5ubD4sIE5hdGUgQ29vayA8bmF0ZWNvb2tAZ21haWwuY29tPiwgQWxleGFuZGVyIExpY2h0ZXIgPG1hbm5pTEBnbXgubmV0PiwgUmljaGFyZCBHaWJzb24gPGdpYnNvbjA0MkBnaXRodWI+XG5XZWJzaXRlOiBodHRwczovL3N3aWZ0Lm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc3lzdGVtXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzd2lmdChobGpzKSB7XG4gIGNvbnN0IFdISVRFU1BBQ0UgPSB7XG4gICAgbWF0Y2g6IC9cXHMrLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjSUQ0MTFcbiAgY29uc3QgQkxPQ0tfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnL1xcXFwqJyxcbiAgICAnXFxcXCovJyxcbiAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgKTtcbiAgY29uc3QgQ09NTUVOVFMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIEJMT0NLX0NPTU1FTlRcbiAgXTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0xleGljYWxTdHJ1Y3R1cmUuaHRtbCNJRDQxM1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL3p6U3VtbWFyeU9mVGhlR3JhbW1hci5odG1sXG4gIGNvbnN0IERPVF9LRVlXT1JEID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvXFwuLyxcbiAgICAgIGVpdGhlciguLi5kb3RLZXl3b3JkcywgLi4ub3B0aW9uYWxEb3RLZXl3b3JkcylcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAyOiBcImtleXdvcmRcIiB9XG4gIH07XG4gIGNvbnN0IEtFWVdPUkRfR1VBUkQgPSB7XG4gICAgLy8gQ29uc3VtZSAua2V5d29yZCB0byBwcmV2ZW50IGhpZ2hsaWdodGluZyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGFzIGtleXdvcmRzLlxuICAgIG1hdGNoOiBjb25jYXQoL1xcLi8sIGVpdGhlciguLi5rZXl3b3JkcykpLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBQTEFJTl9LRVlXT1JEUyA9IGtleXdvcmRzXG4gICAgLmZpbHRlcihrdyA9PiB0eXBlb2Yga3cgPT09ICdzdHJpbmcnKVxuICAgIC5jb25jYXQoWyBcIl98MFwiIF0pOyAvLyBzZWVtcyBjb21tb24sIHNvIDAgcmVsZXZhbmNlXG4gIGNvbnN0IFJFR0VYX0tFWVdPUkRTID0ga2V5d29yZHNcbiAgICAuZmlsdGVyKGt3ID0+IHR5cGVvZiBrdyAhPT0gJ3N0cmluZycpIC8vIGZpbmQgcmVnZXhcbiAgICAuY29uY2F0KGtleXdvcmRUeXBlcylcbiAgICAubWFwKGtleXdvcmRXcmFwcGVyKTtcbiAgY29uc3QgS0VZV09SRCA9IHsgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgIG1hdGNoOiBlaXRoZXIoLi4uUkVHRVhfS0VZV09SRFMsIC4uLm9wdGlvbmFsRG90S2V5d29yZHMpXG4gICAgfVxuICBdIH07XG4gIC8vIGZpbmQgYWxsIHRoZSByZWd1bGFyIGtleXdvcmRzXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBlaXRoZXIoXG4gICAgICAvXFxiXFx3Ky8sIC8vIHJlZ3VsYXIga2V5d29yZHNcbiAgICAgIC8jXFx3Ky8gLy8gbnVtYmVyIGtleXdvcmRzXG4gICAgKSxcbiAgICBrZXl3b3JkOiBQTEFJTl9LRVlXT1JEU1xuICAgICAgLmNvbmNhdChudW1iZXJTaWduS2V5d29yZHMpLFxuICAgIGxpdGVyYWw6IGxpdGVyYWxzXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRfTU9ERVMgPSBbXG4gICAgRE9UX0tFWVdPUkQsXG4gICAgS0VZV09SRF9HVUFSRCxcbiAgICBLRVlXT1JEXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGxlL3N3aWZ0L3RyZWUvbWFpbi9zdGRsaWIvcHVibGljL2NvcmVcbiAgY29uc3QgQlVJTFRfSU5fR1VBUkQgPSB7XG4gICAgLy8gQ29uc3VtZSAuYnVpbHRfaW4gdG8gcHJldmVudCBoaWdobGlnaHRpbmcgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cbiAgICBtYXRjaDogY29uY2F0KC9cXC4vLCBlaXRoZXIoLi4uYnVpbHRJbnMpKSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQlVJTFRfSU4gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIG1hdGNoOiBjb25jYXQoL1xcYi8sIGVpdGhlciguLi5idWlsdElucyksIC8oPz1cXCgpLylcbiAgfTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIEJVSUxUX0lOX0dVQVJELFxuICAgIEJVSUxUX0lOXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjSUQ0MThcbiAgY29uc3QgT1BFUkFUT1JfR1VBUkQgPSB7XG4gICAgLy8gUHJldmVudCAtPiBmcm9tIGJlaW5nIGhpZ2hsaWdodGluZyBhcyBhbiBvcGVyYXRvci5cbiAgICBtYXRjaDogLy0+LyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgT1BFUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3BlcmF0b3InLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogb3BlcmF0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gZG90LW9wZXJhdG9yOiBvbmx5IG9wZXJhdG9ycyB0aGF0IHN0YXJ0IHdpdGggYSBkb3QgYXJlIGFsbG93ZWQgdG8gdXNlIGRvdHMgYXNcbiAgICAgICAgLy8gY2hhcmFjdGVycyAoLi4uLCAuLi48LCAuKiwgZXRjKS4gU28gdGhlcmUgcnVsZSBoZXJlIGlzOiBhIGRvdCBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZVxuICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgbWF5IGFsc28gaW5jbHVkZSBkb3RzLlxuICAgICAgICBtYXRjaDogYFxcXFwuKFxcXFwufCR7b3BlcmF0b3JDaGFyYWN0ZXJ9KStgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IE9QRVJBVE9SUyA9IFtcbiAgICBPUEVSQVRPUl9HVUFSRCxcbiAgICBPUEVSQVRPUlxuICBdO1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvTGV4aWNhbFN0cnVjdHVyZS5odG1sI2dyYW1tYXJfbnVtZXJpYy1saXRlcmFsXG4gIC8vIFRPRE86IFVwZGF0ZSBmb3IgbGVhZGluZyBgLWAgYWZ0ZXIgbG9va2JlaGluZCBpcyBzdXBwb3J0ZWQgZXZlcnl3aGVyZVxuICBjb25zdCBkZWNpbWFsRGlnaXRzID0gJyhbMC05XV8qKSsnO1xuICBjb25zdCBoZXhEaWdpdHMgPSAnKFswLTlhLWZBLUZdXyopKyc7XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBkZWNpbWFsLWxpdGVyYWwpXG4gICAgICB7IG1hdGNoOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSkpP2AgKyBgKFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBoZXhhZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBoZXhhZGVjaW1hbC1saXRlcmFsKVxuICAgICAgeyBtYXRjaDogYFxcXFxiMHgoJHtoZXhEaWdpdHN9KShcXFxcLigke2hleERpZ2l0c30pKT9gICsgYChbcFBdWystXT8oJHtkZWNpbWFsRGlnaXRzfSkpP1xcXFxiYCB9LFxuICAgICAgLy8gb2N0YWwtbGl0ZXJhbFxuICAgICAgeyBtYXRjaDogL1xcYjBvKFswLTddXyopK1xcYi8gfSxcbiAgICAgIC8vIGJpbmFyeS1saXRlcmFsXG4gICAgICB7IG1hdGNoOiAvXFxiMGIoWzAxXV8qKStcXGIvIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjZ3JhbW1hcl9zdHJpbmctbGl0ZXJhbFxuICBjb25zdCBFU0NBUEVEX0NIQVJBQ1RFUiA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogY29uY2F0KC9cXFxcLywgcmF3RGVsaW1pdGVyLCAvWzBcXFxcdG5yXCInXS8pIH0sXG4gICAgICB7IG1hdGNoOiBjb25jYXQoL1xcXFwvLCByYXdEZWxpbWl0ZXIsIC91XFx7WzAtOWEtZkEtRl17MSw4fVxcfS8pIH1cbiAgICBdXG4gIH0pO1xuICBjb25zdCBFU0NBUEVEX05FV0xJTkUgPSAocmF3RGVsaW1pdGVyID0gXCJcIikgPT4gKHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgbWF0Y2g6IGNvbmNhdCgvXFxcXC8sIHJhd0RlbGltaXRlciwgL1tcXHQgXSooPzpbXFxyXFxuXXxcXHJcXG4pLylcbiAgfSk7XG4gIGNvbnN0IElOVEVSUE9MQVRJT04gPSAocmF3RGVsaW1pdGVyID0gXCJcIikgPT4gKHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgbGFiZWw6IFwiaW50ZXJwb2xcIixcbiAgICBiZWdpbjogY29uY2F0KC9cXFxcLywgcmF3RGVsaW1pdGVyLCAvXFwoLyksXG4gICAgZW5kOiAvXFwpL1xuICB9KTtcbiAgY29uc3QgTVVMVElMSU5FX1NUUklORyA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGJlZ2luOiBjb25jYXQocmF3RGVsaW1pdGVyLCAvXCJcIlwiLyksXG4gICAgZW5kOiBjb25jYXQoL1wiXCJcIi8sIHJhd0RlbGltaXRlciksXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEVTQ0FQRURfQ0hBUkFDVEVSKHJhd0RlbGltaXRlciksXG4gICAgICBFU0NBUEVEX05FV0xJTkUocmF3RGVsaW1pdGVyKSxcbiAgICAgIElOVEVSUE9MQVRJT04ocmF3RGVsaW1pdGVyKVxuICAgIF1cbiAgfSk7XG4gIGNvbnN0IFNJTkdMRV9MSU5FX1NUUklORyA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGJlZ2luOiBjb25jYXQocmF3RGVsaW1pdGVyLCAvXCIvKSxcbiAgICBlbmQ6IGNvbmNhdCgvXCIvLCByYXdEZWxpbWl0ZXIpLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBFU0NBUEVEX0NIQVJBQ1RFUihyYXdEZWxpbWl0ZXIpLFxuICAgICAgSU5URVJQT0xBVElPTihyYXdEZWxpbWl0ZXIpXG4gICAgXVxuICB9KTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIE1VTFRJTElORV9TVFJJTkcoKSxcbiAgICAgIE1VTFRJTElORV9TVFJJTkcoXCIjXCIpLFxuICAgICAgTVVMVElMSU5FX1NUUklORyhcIiMjXCIpLFxuICAgICAgTVVMVElMSU5FX1NUUklORyhcIiMjI1wiKSxcbiAgICAgIFNJTkdMRV9MSU5FX1NUUklORygpLFxuICAgICAgU0lOR0xFX0xJTkVfU1RSSU5HKFwiI1wiKSxcbiAgICAgIFNJTkdMRV9MSU5FX1NUUklORyhcIiMjXCIpLFxuICAgICAgU0lOR0xFX0xJTkVfU1RSSU5HKFwiIyMjXCIpXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJFR0VYUF9DT05URU5UUyA9IFtcbiAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAge1xuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IEJBUkVfUkVHRVhQX0xJVEVSQUwgPSB7XG4gICAgYmVnaW46IC9cXC9bXlxcc10oPz1bXi9cXG5dKlxcLykvLFxuICAgIGVuZDogL1xcLy8sXG4gICAgY29udGFpbnM6IFJFR0VYUF9DT05URU5UU1xuICB9O1xuXG4gIGNvbnN0IEVYVEVOREVEX1JFR0VYUF9MSVRFUkFMID0gKHJhd0RlbGltaXRlcikgPT4ge1xuICAgIGNvbnN0IGJlZ2luID0gY29uY2F0KHJhd0RlbGltaXRlciwgL1xcLy8pO1xuICAgIGNvbnN0IGVuZCA9IGNvbmNhdCgvXFwvLywgcmF3RGVsaW1pdGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgYmVnaW4sXG4gICAgICBlbmQsXG4gICAgICBjb250YWluczogW1xuICAgICAgICAuLi5SRUdFWFBfQ09OVEVOVFMsXG4gICAgICAgIHtcbiAgICAgICAgICBzY29wZTogXCJjb21tZW50XCIsXG4gICAgICAgICAgYmVnaW46IGAjKD8hLioke2VuZH0pYCxcbiAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svZG9jdW1lbnRhdGlvbi90aGUtc3dpZnQtcHJvZ3JhbW1pbmctbGFuZ3VhZ2UvbGV4aWNhbHN0cnVjdHVyZS8jUmVndWxhci1FeHByZXNzaW9uLUxpdGVyYWxzXG4gIGNvbnN0IFJFR0VYUCA9IHtcbiAgICBzY29wZTogXCJyZWdleHBcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgRVhURU5ERURfUkVHRVhQX0xJVEVSQUwoJyMjIycpLFxuICAgICAgRVhURU5ERURfUkVHRVhQX0xJVEVSQUwoJyMjJyksXG4gICAgICBFWFRFTkRFRF9SRUdFWFBfTElURVJBTCgnIycpLFxuICAgICAgQkFSRV9SRUdFWFBfTElURVJBTFxuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0xleGljYWxTdHJ1Y3R1cmUuaHRtbCNJRDQxMlxuICBjb25zdCBRVU9URURfSURFTlRJRklFUiA9IHsgbWF0Y2g6IGNvbmNhdCgvYC8sIGlkZW50aWZpZXIsIC9gLykgfTtcbiAgY29uc3QgSU1QTElDSVRfUEFSQU1FVEVSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBtYXRjaDogL1xcJFxcZCsvXG4gIH07XG4gIGNvbnN0IFBST1BFUlRZX1dSQVBQRVJfUFJPSkVDVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgbWF0Y2g6IGBcXFxcJCR7aWRlbnRpZmllckNoYXJhY3Rlcn0rYFxuICB9O1xuICBjb25zdCBJREVOVElGSUVSUyA9IFtcbiAgICBRVU9URURfSURFTlRJRklFUixcbiAgICBJTVBMSUNJVF9QQVJBTUVURVIsXG4gICAgUFJPUEVSVFlfV1JBUFBFUl9QUk9KRUNUSU9OXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9BdHRyaWJ1dGVzLmh0bWxcbiAgY29uc3QgQVZBSUxBQkxFX0FUVFJJQlVURSA9IHtcbiAgICBtYXRjaDogLyhAfCModW4pPylhdmFpbGFibGUvLFxuICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IGF2YWlsYWJpbGl0eUtleXdvcmRzLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgU1RSSU5HXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdIH1cbiAgfTtcblxuICBjb25zdCBLRVlXT1JEX0FUVFJJQlVURSA9IHtcbiAgICBzY29wZTogJ2tleXdvcmQnLFxuICAgIG1hdGNoOiBjb25jYXQoL0AvLCBlaXRoZXIoLi4ua2V5d29yZEF0dHJpYnV0ZXMpLCBsb29rYWhlYWQoZWl0aGVyKC9cXCgvLCAvXFxzKy8pKSksXG4gIH07XG5cbiAgY29uc3QgVVNFUl9ERUZJTkVEX0FUVFJJQlVURSA9IHtcbiAgICBzY29wZTogJ21ldGEnLFxuICAgIG1hdGNoOiBjb25jYXQoL0AvLCBpZGVudGlmaWVyKVxuICB9O1xuXG4gIGNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICAgQVZBSUxBQkxFX0FUVFJJQlVURSxcbiAgICBLRVlXT1JEX0FUVFJJQlVURSxcbiAgICBVU0VSX0RFRklORURfQVRUUklCVVRFXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9UeXBlcy5odG1sXG4gIGNvbnN0IFRZUEUgPSB7XG4gICAgbWF0Y2g6IGxvb2thaGVhZCgvXFxiW0EtWl0vKSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8gQ29tbW9uIEFwcGxlIGZyYW1ld29ya3MsIGZvciByZWxldmFuY2UgYm9vc3RcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIG1hdGNoOiBjb25jYXQoLyhBVnxDQXxDRnxDR3xDSXxDTHxDTXxDTnxDVHxNS3xNUHxNVEt8TVRMfE5TfFNDTnxTS3xVSXxXS3xYQykvLCBpZGVudGlmaWVyQ2hhcmFjdGVyLCAnKycpXG4gICAgICB9LFxuICAgICAgeyAvLyBUeXBlIGlkZW50aWZpZXJcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIG1hdGNoOiB0eXBlSWRlbnRpZmllcixcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyAvLyBPcHRpb25hbCB0eXBlXG4gICAgICAgIG1hdGNoOiAvWz8hXSsvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8vIFZhcmlhZGljIHBhcmFtZXRlclxuICAgICAgICBtYXRjaDogL1xcLlxcLlxcLi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gUHJvdG9jb2wgY29tcG9zaXRpb25cbiAgICAgICAgbWF0Y2g6IGNvbmNhdCgvXFxzKyZcXHMrLywgbG9va2FoZWFkKHR5cGVJZGVudGlmaWVyKSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgR0VORVJJQ19BUkdVTUVOVFMgPSB7XG4gICAgYmVnaW46IC88LyxcbiAgICBlbmQ6IC8+LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC4uLkNPTU1FTlRTLFxuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLkFUVFJJQlVURVMsXG4gICAgICBPUEVSQVRPUl9HVUFSRCxcbiAgICAgIFRZUEVcbiAgICBdXG4gIH07XG4gIFRZUEUuY29udGFpbnMucHVzaChHRU5FUklDX0FSR1VNRU5UUyk7XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9FeHByZXNzaW9ucy5odG1sI0lENTUyXG4gIC8vIFByZXZlbnRzIGVsZW1lbnQgbmFtZXMgZnJvbSBiZWluZyBoaWdobGlnaHRlZCBhcyBrZXl3b3Jkcy5cbiAgY29uc3QgVFVQTEVfRUxFTUVOVF9OQU1FID0ge1xuICAgIG1hdGNoOiBjb25jYXQoaWRlbnRpZmllciwgL1xccyo6LyksXG4gICAga2V5d29yZHM6IFwiX3wwXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIC8vIE1hdGNoZXMgdHVwbGVzIGFzIHdlbGwgYXMgdGhlIHBhcmFtZXRlciBsaXN0IG9mIGEgZnVuY3Rpb24gdHlwZS5cbiAgY29uc3QgVFVQTEUgPSB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgJ3NlbGYnLFxuICAgICAgVFVQTEVfRUxFTUVOVF9OQU1FLFxuICAgICAgLi4uQ09NTUVOVFMsXG4gICAgICBSRUdFWFAsXG4gICAgICAuLi5LRVlXT1JEX01PREVTLFxuICAgICAgLi4uQlVJTFRfSU5TLFxuICAgICAgLi4uT1BFUkFUT1JTLFxuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgLi4uSURFTlRJRklFUlMsXG4gICAgICAuLi5BVFRSSUJVVEVTLFxuICAgICAgVFlQRVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBHRU5FUklDX1BBUkFNRVRFUlMgPSB7XG4gICAgYmVnaW46IC88LyxcbiAgICBlbmQ6IC8+LyxcbiAgICBrZXl3b3JkczogJ3JlcGVhdCBlYWNoJyxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uQ09NTUVOVFMsXG4gICAgICBUWVBFXG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTl9QQVJBTUVURVJfTkFNRSA9IHtcbiAgICBiZWdpbjogZWl0aGVyKFxuICAgICAgbG9va2FoZWFkKGNvbmNhdChpZGVudGlmaWVyLCAvXFxzKjovKSksXG4gICAgICBsb29rYWhlYWQoY29uY2F0KGlkZW50aWZpZXIsIC9cXHMrLywgaWRlbnRpZmllciwgL1xccyo6LykpXG4gICAgKSxcbiAgICBlbmQ6IC86LyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIG1hdGNoOiAvXFxiX1xcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgIG1hdGNoOiBpZGVudGlmaWVyXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTl9QQVJBTUVURVJTID0ge1xuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgRlVOQ1RJT05fUEFSQU1FVEVSX05BTUUsXG4gICAgICAuLi5DT01NRU5UUyxcbiAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICAuLi5PUEVSQVRPUlMsXG4gICAgICBOVU1CRVIsXG4gICAgICBTVFJJTkcsXG4gICAgICAuLi5BVFRSSUJVVEVTLFxuICAgICAgVFlQRSxcbiAgICAgIFRVUExFXG4gICAgXSxcbiAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgIGlsbGVnYWw6IC9bXCInXS9cbiAgfTtcbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9EZWNsYXJhdGlvbnMuaHRtbCNJRDM2MlxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svZG9jdW1lbnRhdGlvbi90aGUtc3dpZnQtcHJvZ3JhbW1pbmctbGFuZ3VhZ2UvZGVjbGFyYXRpb25zLyNNYWNyby1EZWNsYXJhdGlvblxuICBjb25zdCBGVU5DVElPTl9PUl9NQUNSTyA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhmdW5jfG1hY3JvKS8sXG4gICAgICAvXFxzKy8sXG4gICAgICBlaXRoZXIoUVVPVEVEX0lERU5USUZJRVIubWF0Y2gsIGlkZW50aWZpZXIsIG9wZXJhdG9yKVxuICAgIF0sXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEdFTkVSSUNfUEFSQU1FVEVSUyxcbiAgICAgIEZVTkNUSU9OX1BBUkFNRVRFUlMsXG4gICAgICBXSElURVNQQUNFXG4gICAgXSxcbiAgICBpbGxlZ2FsOiBbXG4gICAgICAvXFxbLyxcbiAgICAgIC8lL1xuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzc1XG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvRGVjbGFyYXRpb25zLmh0bWwjSUQzNzlcbiAgY29uc3QgSU5JVF9TVUJTQ1JJUFQgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXGIoPzpzdWJzY3JpcHR8aW5pdFs/IV0/KS8sXG4gICAgICAvXFxzKig/PVs8KF0pLyxcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAxOiBcImtleXdvcmRcIiB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBHRU5FUklDX1BBUkFNRVRFUlMsXG4gICAgICBGVU5DVElPTl9QQVJBTUVURVJTLFxuICAgICAgV0hJVEVTUEFDRVxuICAgIF0sXG4gICAgaWxsZWdhbDogL1xcW3wlL1xuICB9O1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzgwXG4gIGNvbnN0IE9QRVJBVE9SX0RFQ0xBUkFUSU9OID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvb3BlcmF0b3IvLFxuICAgICAgL1xccysvLFxuICAgICAgb3BlcmF0b3JcbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlXCJcbiAgICB9XG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9EZWNsYXJhdGlvbnMuaHRtbCNJRDU1MFxuICBjb25zdCBQUkVDRURFTkNFR1JPVVAgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgIC9wcmVjZWRlbmNlZ3JvdXAvLFxuICAgICAgL1xccysvLFxuICAgICAgdHlwZUlkZW50aWZpZXJcbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbIFRZUEUgXSxcbiAgICBrZXl3b3JkczogW1xuICAgICAgLi4ucHJlY2VkZW5jZWdyb3VwS2V5d29yZHMsXG4gICAgICAuLi5saXRlcmFsc1xuICAgIF0sXG4gICAgZW5kOiAvfS9cbiAgfTtcblxuICBjb25zdCBUWVBFX0RFQ0xBUkFUSU9OID0ge1xuICAgIGJlZ2luOiBbXG4gICAgICAvKHN0cnVjdHxwcm90b2NvbHxjbGFzc3xleHRlbnNpb258ZW51bXxhY3RvcikvLFxuICAgICAgL1xccysvLFxuICAgICAgaWRlbnRpZmllcixcbiAgICAgIC9cXHMqLyxcbiAgICBdLFxuICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEdFTkVSSUNfUEFSQU1FVEVSUyxcbiAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogXCJ0aXRsZS5jbGFzcy5pbmhlcml0ZWRcIixcbiAgICAgICAgICAgIG1hdGNoOiB0eXBlSWRlbnRpZmllcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIH0sXG4gICAgXVxuICB9O1xuXG4gIC8vIEFkZCBzdXBwb3J0ZWQgc3VibW9kZXMgdG8gc3RyaW5nIGludGVycG9sYXRpb24uXG4gIGZvciAoY29uc3QgdmFyaWFudCBvZiBTVFJJTkcudmFyaWFudHMpIHtcbiAgICBjb25zdCBpbnRlcnBvbGF0aW9uID0gdmFyaWFudC5jb250YWlucy5maW5kKG1vZGUgPT4gbW9kZS5sYWJlbCA9PT0gXCJpbnRlcnBvbFwiKTtcbiAgICAvLyBUT0RPOiBJbnRlcnBvbGF0aW9uIGNhbiBjb250YWluIGFueSBleHByZXNzaW9uLCBzbyB0aGVyZSdzIHJvb20gZm9yIGltcHJvdmVtZW50IGhlcmUuXG4gICAgaW50ZXJwb2xhdGlvbi5rZXl3b3JkcyA9IEtFWVdPUkRTO1xuICAgIGNvbnN0IHN1Ym1vZGVzID0gW1xuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLkJVSUxUX0lOUyxcbiAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgIE5VTUJFUixcbiAgICAgIFNUUklORyxcbiAgICAgIC4uLklERU5USUZJRVJTXG4gICAgXTtcbiAgICBpbnRlcnBvbGF0aW9uLmNvbnRhaW5zID0gW1xuICAgICAgLi4uc3VibW9kZXMsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgLi4uc3VibW9kZXNcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTd2lmdCcsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAuLi5DT01NRU5UUyxcbiAgICAgIEZVTkNUSU9OX09SX01BQ1JPLFxuICAgICAgSU5JVF9TVUJTQ1JJUFQsXG4gICAgICBUWVBFX0RFQ0xBUkFUSU9OLFxuICAgICAgT1BFUkFUT1JfREVDTEFSQVRJT04sXG4gICAgICBQUkVDRURFTkNFR1JPVVAsXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbXBvcnQnLFxuICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgY29udGFpbnM6IFsgLi4uQ09NTUVOVFMgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgUkVHRVhQLFxuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLkJVSUxUX0lOUyxcbiAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgIE5VTUJFUixcbiAgICAgIFNUUklORyxcbiAgICAgIC4uLklERU5USUZJRVJTLFxuICAgICAgLi4uQVRUUklCVVRFUyxcbiAgICAgIFRZUEUsXG4gICAgICBUVVBMRVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzd2lmdDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFRhZ2dlciBTY3JpcHRcbkF1dGhvcjogUGhpbGlwcCBXb2xmZXIgPHBoLndvbGZlckBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IEhpZ2hsaWdodGluZyBmb3IgdGhlIFRhZ2dlciBTY3JpcHQgYXMgdXNlZCBieSBNdXNpY0JyYWlueiBQaWNhcmQuXG5XZWJzaXRlOiBodHRwczovL3BpY2FyZC5tdXNpY2JyYWluei5vcmdcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiAqL1xuZnVuY3Rpb24gdGFnZ2Vyc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgTk9PUCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICBiZWdpbjogL1xcJG5vb3BcXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgYmVnaW46IC9cXFxcWygpXS8gfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW46IC9cXFxcWygpXS8gfSxcbiAgICAgICAgICAnc2VsZidcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAvXFwkW19hLXpBLVowLTldKyg/PVxcKCkvXG4gIH07XG5cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvJVtfYS16QS1aMC05Ol0rJS9cbiAgfTtcblxuICBjb25zdCBFU0NBUEVfU0VRVUVOQ0VfVU5JQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAvXFxcXHVbYS1mQS1GMC05XXs0fS9cbiAgfTtcblxuICBjb25zdCBFU0NBUEVfU0VRVUVOQ0UgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogL1xcXFxbXFxcXG50JCUsKCldL1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1RhZ2dlciBTY3JpcHQnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOT09QLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIEVTQ0FQRV9TRVFVRU5DRSxcbiAgICAgIEVTQ0FQRV9TRVFVRU5DRV9VTklDT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRhZ2dlcnNjcmlwdDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFlBTUxcbkRlc2NyaXB0aW9uOiBZZXQgQW5vdGhlciBNYXJrZG93biBMYW5ndWFnZVxuQXV0aG9yOiBTdGVmYW4gV2llbmVydCA8c3R3aWVuZXJ0QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogQ2FybCBCYXh0ZXIgPGNhcmxAY2JheC50ZWNoPlxuUmVxdWlyZXM6IHJ1YnkuanNcbldlYnNpdGU6IGh0dHBzOi8veWFtbC5vcmdcbkNhdGVnb3J5OiBjb21tb24sIGNvbmZpZ1xuKi9cbmZ1bmN0aW9uIHlhbWwoaGxqcykge1xuICBjb25zdCBMSVRFUkFMUyA9ICd0cnVlIGZhbHNlIHllcyBubyBudWxsJztcblxuICAvLyBZQU1MIHNwZWMgYWxsb3dzIG5vbi1yZXNlcnZlZCBVUkkgY2hhcmFjdGVycyBpbiB0YWdzLlxuICBjb25zdCBVUklfQ0hBUkFDVEVSUyA9ICdbXFxcXHcjOy8/OkAmPSskLC5+KlxcJygpW1xcXFxdXSsnO1xuXG4gIC8vIERlZmluZSBrZXlzIGFzIHN0YXJ0aW5nIHdpdGggYSB3b3JkIGNoYXJhY3RlclxuICAvLyAuLi5jb250YWluaW5nIHdvcmQgY2hhcnMsIHNwYWNlcywgY29sb25zLCBmb3J3YXJkLXNsYXNoZXMsIGh5cGhlbnMgYW5kIHBlcmlvZHNcbiAgLy8gLi4uYW5kIGVuZGluZyB3aXRoIGEgY29sb24gZm9sbG93ZWQgaW1tZWRpYXRlbHkgYnkgYSBzcGFjZSwgdGFiIG9yIG5ld2xpbmUuXG4gIC8vIFRoZSBZQU1MIHNwZWMgYWxsb3dzIGZvciBtdWNoIG1vcmUgdGhhbiB0aGlzLCBidXQgdGhpcyBjb3ZlcnMgbW9zdCB1c2UtY2FzZXMuXG4gIGNvbnN0IEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gYWRkZWQgYnJhY2tldHMgc3VwcG9ydCBcbiAgICAgIHsgYmVnaW46IC9cXHdbXFx3IDooKVxcLi8tXSo6KD89WyBcXHRdfCQpLyB9LFxuICAgICAgeyAvLyBkb3VibGUgcXVvdGVkIGtleXMgLSB3aXRoIGJyYWNrZXRzXG4gICAgICAgIGJlZ2luOiAvXCJcXHdbXFx3IDooKVxcLi8tXSpcIjooPz1bIFxcdF18JCkvIH0sXG4gICAgICB7IC8vIHNpbmdsZSBxdW90ZWQga2V5cyAtIHdpdGggYnJhY2tldHNcbiAgICAgICAgYmVnaW46IC8nXFx3W1xcdyA6KClcXC4vLV0qJzooPz1bIFxcdF18JCkvIH0sXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFRFTVBMQVRFX1ZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgLy8gamluamEgdGVtcGxhdGVzIEFuc2libGVcbiAgICAgICAgYmVnaW46IC9cXHtcXHsvLFxuICAgICAgICBlbmQ6IC9cXH1cXH0vXG4gICAgICB9LFxuICAgICAgeyAvLyBSdWJ5IGkxOG5cbiAgICAgICAgYmVnaW46IC8lXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9L1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogL1xcUysvIH1cbiAgICBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBURU1QTEFURV9WQVJJQUJMRVNcbiAgICBdXG4gIH07XG5cbiAgLy8gU3RyaW5ncyBpbnNpZGUgb2YgdmFsdWUgY29udGFpbmVycyAob2JqZWN0cykgY2FuJ3QgY29udGFpbiBicmFjZXMsXG4gIC8vIGJyYWNrZXRzLCBvciBjb21tYXNcbiAgY29uc3QgQ09OVEFJTkVSX1NUUklORyA9IGhsanMuaW5oZXJpdChTVFJJTkcsIHsgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBiZWdpbjogLycvLFxuICAgICAgZW5kOiAvJy9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgZW5kOiAvXCIvXG4gICAgfSxcbiAgICB7IGJlZ2luOiAvW15cXHMse31bXFxdXSsvIH1cbiAgXSB9KTtcblxuICBjb25zdCBEQVRFX1JFID0gJ1swLTldezR9KC1bMC05XVswLTldKXswLDJ9JztcbiAgY29uc3QgVElNRV9SRSA9ICcoW1R0IFxcXFx0XVswLTldWzAtOV0/KDpbMC05XVswLTldKXsyfSk/JztcbiAgY29uc3QgRlJBQ1RJT05fUkUgPSAnKFxcXFwuWzAtOV0qKT8nO1xuICBjb25zdCBaT05FX1JFID0gJyhbIFxcXFx0XSkqKFp8Wy0rXVswLTldWzAtOV0/KDpbMC05XVswLTldKT8pPyc7XG4gIGNvbnN0IFRJTUVTVEFNUCA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnXFxcXGInICsgREFURV9SRSArIFRJTUVfUkUgKyBGUkFDVElPTl9SRSArIFpPTkVfUkUgKyAnXFxcXGInXG4gIH07XG5cbiAgY29uc3QgVkFMVUVfQ09OVEFJTkVSID0ge1xuICAgIGVuZDogJywnLFxuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IExJVEVSQUxTLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBPQkpFQ1QgPSB7XG4gICAgYmVnaW46IC9cXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFsgVkFMVUVfQ09OVEFJTkVSIF0sXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQVJSQVkgPSB7XG4gICAgYmVnaW46ICdcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbIFZBTFVFX0NPTlRBSU5FUiBdLFxuICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgTU9ERVMgPSBbXG4gICAgS0VZLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgYmVnaW46ICdeLS0tXFxcXHMqJCcsXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfSxcbiAgICB7IC8vIG11bHRpIGxpbmUgc3RyaW5nXG4gICAgICAvLyBCbG9ja3Mgc3RhcnQgd2l0aCBhIHwgb3IgPiBmb2xsb3dlZCBieSBhIG5ld2xpbmVcbiAgICAgIC8vXG4gICAgICAvLyBJbmRlbnRhdGlvbiBvZiBzdWJzZXF1ZW50IGxpbmVzIG11c3QgYmUgdGhlIHNhbWUgdG9cbiAgICAgIC8vIGJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgYmxvY2tcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBiZWdpbjogJ1tcXFxcfD5dKFsxLTldP1srLV0pP1sgXSpcXFxcbiggKylbXiBdW15cXFxcbl0qXFxcXG4oXFxcXDJbXlxcXFxuXStcXFxcbj8pKidcbiAgICB9LFxuICAgIHsgLy8gUnVieS9SYWlscyBlcmJcbiAgICAgIGJlZ2luOiAnPCVbJT0tXT8nLFxuICAgICAgZW5kOiAnWyUtXT8lPicsXG4gICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgeyAvLyBuYW1lZCB0YWdzXG4gICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgIGJlZ2luOiAnIVxcXFx3KyEnICsgVVJJX0NIQVJBQ1RFUlNcbiAgICB9LFxuICAgIC8vIGh0dHBzOi8veWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjc4NDA2NFxuICAgIHsgLy8gdmVyYmF0aW0gdGFnc1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJyE8JyArIFVSSV9DSEFSQUNURVJTICsgXCI+XCJcbiAgICB9LFxuICAgIHsgLy8gcHJpbWFyeSB0YWdzXG4gICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgIGJlZ2luOiAnIScgKyBVUklfQ0hBUkFDVEVSU1xuICAgIH0sXG4gICAgeyAvLyBzZWNvbmRhcnkgdGFnc1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJyEhJyArIFVSSV9DSEFSQUNURVJTXG4gICAgfSxcbiAgICB7IC8vIGZyYWdtZW50IGlkICZyZWZcbiAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgYmVnaW46ICcmJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICckJ1xuICAgIH0sXG4gICAgeyAvLyBmcmFnbWVudCByZWZlcmVuY2UgKnJlZlxuICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICBiZWdpbjogJ1xcXFwqJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICckJ1xuICAgIH0sXG4gICAgeyAvLyBhcnJheSBsaXN0aW5nXG4gICAgICBjbGFzc05hbWU6ICdidWxsZXQnLFxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHwkIGhhY2sgd2hlbiB3ZSBoYXZlIHByb3BlciBsb29rLWFoZWFkIHN1cHBvcnRcbiAgICAgIGJlZ2luOiAnLSg/PVsgXXwkKScsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgYmVnaW5LZXl3b3JkczogTElURVJBTFMsXG4gICAgICBrZXl3b3JkczogeyBsaXRlcmFsOiBMSVRFUkFMUyB9XG4gICAgfSxcbiAgICBUSU1FU1RBTVAsXG4gICAgLy8gbnVtYmVycyBhcmUgYW55IHZhbGlkIEMtc3R5bGUgbnVtYmVyIHRoYXRcbiAgICAvLyBzaXQgaXNvbGF0ZWQgZnJvbSBvdGhlciB3b3Jkc1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5DX05VTUJFUl9SRSArICdcXFxcYicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIE9CSkVDVCxcbiAgICBBUlJBWSxcbiAgICBTVFJJTkdcbiAgXTtcblxuICBjb25zdCBWQUxVRV9NT0RFUyA9IFsgLi4uTU9ERVMgXTtcbiAgVkFMVUVfTU9ERVMucG9wKCk7XG4gIFZBTFVFX01PREVTLnB1c2goQ09OVEFJTkVSX1NUUklORyk7XG4gIFZBTFVFX0NPTlRBSU5FUi5jb250YWlucyA9IFZBTFVFX01PREVTO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1lBTUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAneW1sJyBdLFxuICAgIGNvbnRhaW5zOiBNT0RFU1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHlhbWw7XG4iLCAiLypcbkxhbmd1YWdlOiBUZXN0IEFueXRoaW5nIFByb3RvY29sXG5EZXNjcmlwdGlvbjogVEFQLCB0aGUgVGVzdCBBbnl0aGluZyBQcm90b2NvbCwgaXMgYSBzaW1wbGUgdGV4dC1iYXNlZCBpbnRlcmZhY2UgYmV0d2VlbiB0ZXN0aW5nIG1vZHVsZXMgaW4gYSB0ZXN0IGhhcm5lc3MuXG5SZXF1aXJlczogeWFtbC5qc1xuQXV0aG9yOiBTZXJnZXkgQnJvbm5pa292IDxzZXJnZXliQGJyb25ldmljaG9rLnJ1PlxuV2Vic2l0ZTogaHR0cHM6Ly90ZXN0YW55dGhpbmcub3JnXG4qL1xuXG5mdW5jdGlvbiB0YXAoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdUZXN0IEFueXRoaW5nIFByb3RvY29sJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgLy8gdmVyc2lvbiBvZiBmb3JtYXQgYW5kIHRvdGFsIGFtb3VudCBvZiB0ZXN0Y2FzZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15UQVAgdmVyc2lvbiAoXFxcXGQrKSQnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ14xXFxcXC5cXFxcLihcXFxcZCspJCcgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gWUFNTCBibG9ja1xuICAgICAge1xuICAgICAgICBiZWdpbjogLy0tLSQvLFxuICAgICAgICBlbmQ6ICdcXFxcLlxcXFwuXFxcXC4kJyxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6ICd5YW1sJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gdGVzdGNhc2UgbnVtYmVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnIChcXFxcZCspICdcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0Y2FzZSBzdGF0dXMgYW5kIGRlc2NyaXB0aW9uXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15vaycgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXm5vdCBvaycgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRhcDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFRjbFxuRGVzY3JpcHRpb246IFRjbCBpcyBhIHZlcnkgc2ltcGxlIHByb2dyYW1taW5nIGxhbmd1YWdlLlxuQXV0aG9yOiBSYWRlayBMaXNrYSA8cmFkZWtsaXNrYUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy50Y2wudGsvYWJvdXQvbGFuZ3VhZ2UuaHRtbFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gdGNsKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBUQ0xfSURFTlQgPSAvW2EtekEtWl9dW2EtekEtWjAtOV9dKi87XG5cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYWZ0ZXJcIixcbiAgICBcImFwcGVuZFwiLFxuICAgIFwiYXBwbHlcIixcbiAgICBcImFycmF5XCIsXG4gICAgXCJhdXRvX2V4ZWNva1wiLFxuICAgIFwiYXV0b19pbXBvcnRcIixcbiAgICBcImF1dG9fbG9hZFwiLFxuICAgIFwiYXV0b19ta2luZGV4XCIsXG4gICAgXCJhdXRvX21raW5kZXhfb2xkXCIsXG4gICAgXCJhdXRvX3F1YWxpZnlcIixcbiAgICBcImF1dG9fcmVzZXRcIixcbiAgICBcImJnZXJyb3JcIixcbiAgICBcImJpbmFyeVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjZFwiLFxuICAgIFwiY2hhblwiLFxuICAgIFwiY2xvY2tcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb25jYXRcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJkZGVcIixcbiAgICBcImRpY3RcIixcbiAgICBcImVuY29kaW5nXCIsXG4gICAgXCJlb2ZcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJldmFsXCIsXG4gICAgXCJleGVjXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJleHByXCIsXG4gICAgXCJmYmxvY2tlZFwiLFxuICAgIFwiZmNvbmZpZ3VyZVwiLFxuICAgIFwiZmNvcHlcIixcbiAgICBcImZpbGVcIixcbiAgICBcImZpbGVldmVudFwiLFxuICAgIFwiZmlsZW5hbWVcIixcbiAgICBcImZsdXNoXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcImZvcm1hdFwiLFxuICAgIFwiZ2V0c1wiLFxuICAgIFwiZ2xvYlwiLFxuICAgIFwiZ2xvYmFsXCIsXG4gICAgXCJoaXN0b3J5XCIsXG4gICAgXCJodHRwXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW5jclwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwiaW50ZXJwXCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJsYXBwZW5kfDEwXCIsXG4gICAgXCJsYXNzaWdufDEwXCIsXG4gICAgXCJsaW5kZXh8MTBcIixcbiAgICBcImxpbnNlcnR8MTBcIixcbiAgICBcImxpc3RcIixcbiAgICBcImxsZW5ndGh8MTBcIixcbiAgICBcImxvYWRcIixcbiAgICBcImxyYW5nZXwxMFwiLFxuICAgIFwibHJlcGVhdHwxMFwiLFxuICAgIFwibHJlcGxhY2V8MTBcIixcbiAgICBcImxyZXZlcnNlfDEwXCIsXG4gICAgXCJsc2VhcmNofDEwXCIsXG4gICAgXCJsc2V0fDEwXCIsXG4gICAgXCJsc29ydHwxMFwiLFxuICAgIFwibWF0aGZ1bmNcIixcbiAgICBcIm1hdGhvcFwiLFxuICAgIFwibWVtb3J5XCIsXG4gICAgXCJtc2djYXRcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwib3BlblwiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwicGFycmF5XCIsXG4gICAgXCJwaWRcIixcbiAgICBcInBrZzo6Y3JlYXRlXCIsXG4gICAgXCJwa2dfbWtJbmRleFwiLFxuICAgIFwicGxhdGZvcm1cIixcbiAgICBcInBsYXRmb3JtOjpzaGVsbFwiLFxuICAgIFwicHJvY1wiLFxuICAgIFwicHV0c1wiLFxuICAgIFwicHdkXCIsXG4gICAgXCJyZWFkXCIsXG4gICAgXCJyZWZjaGFuXCIsXG4gICAgXCJyZWdleHBcIixcbiAgICBcInJlZ2lzdHJ5XCIsXG4gICAgXCJyZWdzdWJ8MTBcIixcbiAgICBcInJlbmFtZVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzYWZlXCIsXG4gICAgXCJzY2FuXCIsXG4gICAgXCJzZWVrXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInNvY2tldFwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJzdWJzdFwiLFxuICAgIFwic3dpdGNoXCIsXG4gICAgXCJ0Y2xfZW5kT2ZXb3JkXCIsXG4gICAgXCJ0Y2xfZmluZExpYnJhcnlcIixcbiAgICBcInRjbF9zdGFydE9mTmV4dFdvcmRcIixcbiAgICBcInRjbF9zdGFydE9mUHJldmlvdXNXb3JkXCIsXG4gICAgXCJ0Y2xfd29yZEJyZWFrQWZ0ZXJcIixcbiAgICBcInRjbF93b3JkQnJlYWtCZWZvcmVcIixcbiAgICBcInRjbHRlc3RcIixcbiAgICBcInRjbHZhcnNcIixcbiAgICBcInRlbGxcIixcbiAgICBcInRpbWVcIixcbiAgICBcInRtXCIsXG4gICAgXCJ0cmFjZVwiLFxuICAgIFwidW5rbm93blwiLFxuICAgIFwidW5sb2FkXCIsXG4gICAgXCJ1bnNldFwiLFxuICAgIFwidXBkYXRlXCIsXG4gICAgXCJ1cGxldmVsXCIsXG4gICAgXCJ1cHZhclwiLFxuICAgIFwidmFyaWFibGVcIixcbiAgICBcInZ3YWl0XCIsXG4gICAgXCJ3aGlsZVwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVGNsJyxcbiAgICBhbGlhc2VzOiBbICd0aycgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnO1sgXFxcXHRdKiMnLCAnJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKCdeWyBcXFxcdF0qIycsICckJyksXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdwcm9jJyxcbiAgICAgICAgZW5kOiAnW1xcXFx7XScsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgYmVnaW46ICdbIFxcXFx0XFxcXG5cXFxccl0rKDo6KT9bYS16QS1aX10oKDo6KT9bYS16QS1aMC05X10pKicsXG4gICAgICAgICAgICBlbmQ6ICdbIFxcXFx0XFxcXG5cXFxccl0nLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgICAvXFwkLyxcbiAgICAgICAgICAgIHJlZ2V4Lm9wdGlvbmFsKC86Oi8pLFxuICAgICAgICAgICAgVENMX0lERU5ULFxuICAgICAgICAgICAgJyg6OicsXG4gICAgICAgICAgICBUQ0xfSURFTlQsXG4gICAgICAgICAgICAnKSonXG4gICAgICAgICAgKSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxceyg6Oik/W2EtekEtWl9dKCg6Oik/W2EtekEtWjAtOV9dKSonLFxuICAgICAgICAgICAgZW5kOiAnXFxcXH0nLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgTlVNQkVSIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgICAgICB2YXJpYW50czogWyBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pIF1cbiAgICAgIH0sXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGNsO1xuIiwgIi8qXG5MYW5ndWFnZTogVGhyaWZ0XG5BdXRob3I6IE9sZWcgRWZpbW92IDxlZmltb3ZvdkBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVGhyaWZ0IG1lc3NhZ2UgZGVmaW5pdGlvbiBmb3JtYXRcbldlYnNpdGU6IGh0dHBzOi8vdGhyaWZ0LmFwYWNoZS5vcmdcbkNhdGVnb3J5OiBwcm90b2NvbHNcbiovXG5cbmZ1bmN0aW9uIHRocmlmdChobGpzKSB7XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiYm9vbFwiLFxuICAgIFwiYnl0ZVwiLFxuICAgIFwiaTE2XCIsXG4gICAgXCJpMzJcIixcbiAgICBcImk2NFwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcImJpbmFyeVwiXG4gIF07XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJzZXJ2aWNlXCIsXG4gICAgXCJleGNlcHRpb25cIixcbiAgICBcInZvaWRcIixcbiAgICBcIm9uZXdheVwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJsaXN0XCIsXG4gICAgXCJtYXBcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJvcHRpb25hbFwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1RocmlmdCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3N0cnVjdCBlbnVtIHNlcnZpY2UgZXhjZXB0aW9uJyxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgICAgICAgICAgLy8gaGFjazogZWF0aW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHRpdGxlXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICAgIH0gfSlcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYihzZXR8bGlzdHxtYXApXFxcXHMqPCcsXG4gICAgICAgIGtleXdvcmRzOiB7IHR5cGU6IFtcbiAgICAgICAgICAuLi5UWVBFUyxcbiAgICAgICAgICBcInNldFwiLFxuICAgICAgICAgIFwibGlzdFwiLFxuICAgICAgICAgIFwibWFwXCJcbiAgICAgICAgXSB9LFxuICAgICAgICBlbmQ6ICc+JyxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGhyaWZ0O1xuIiwgIi8qXG5MYW5ndWFnZTogVFBcbkF1dGhvcjogSmF5IFN0cnliaXMgPGpheS5zdHJ5YmlzQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBGQU5VQyBUUCBwcm9ncmFtbWluZyBsYW5ndWFnZSAoVFBQKS5cbkNhdGVnb3J5OiBoYXJkd2FyZVxuKi9cblxuZnVuY3Rpb24gdHAoaGxqcykge1xuICBjb25zdCBUUElEID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdbMS05XVswLTldKicsIC8qIG5vIGxlYWRpbmcgemVyb3MgKi9cbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgVFBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnOlteXFxcXF1dKydcbiAgfTtcbiAgY29uc3QgVFBEQVRBID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJyhBUnxQfFBBWUxPQUR8UFJ8UnxTUnxSU1J8TEJMfFZSfFVBTE18TUVTU0FHRXxVVE9PTHxVRlJBTUV8VElNRVJ8J1xuICAgICsgJ1RJTUVSX09WRVJGTE9XfEpPSU5UX01BWF9TUEVFRHxSRVNVTUVfUFJPR3xESUFHX1JFQylcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBUUElELFxuICAgICAgVFBMQUJFTFxuICAgIF1cbiAgfTtcbiAgY29uc3QgVFBJTyA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgYmVnaW46ICcoQUl8QU98REl8RE98RnxSSXxST3xVSXxVT3xHSXxHT3xTSXxTTylcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBUUElELFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgLyogZm9yIHBvcyBzZWN0aW9uIGF0IGJvdHRvbSAqL1xuICAgICAgVFBMQUJFTFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcIkFCT1JUXCIsXG4gICAgXCJBQ0NcIixcbiAgICBcIkFESlVTVFwiLFxuICAgIFwiQU5EXCIsXG4gICAgXCJBUF9MRFwiLFxuICAgIFwiQlJFQUtcIixcbiAgICBcIkNBTExcIixcbiAgICBcIkNOVFwiLFxuICAgIFwiQ09MXCIsXG4gICAgXCJDT05ESVRJT05cIixcbiAgICBcIkNPTkZJR1wiLFxuICAgIFwiREFcIixcbiAgICBcIkRCXCIsXG4gICAgXCJESVZcIixcbiAgICBcIkRFVEVDVFwiLFxuICAgIFwiRUxTRVwiLFxuICAgIFwiRU5EXCIsXG4gICAgXCJFTkRGT1JcIixcbiAgICBcIkVSUl9OVU1cIixcbiAgICBcIkVSUk9SX1BST0dcIixcbiAgICBcIkZJTkVcIixcbiAgICBcIkZPUlwiLFxuICAgIFwiR1BcIixcbiAgICBcIkdVQVJEXCIsXG4gICAgXCJJTkNcIixcbiAgICBcIklGXCIsXG4gICAgXCJKTVBcIixcbiAgICBcIkxJTkVBUl9NQVhfU1BFRURcIixcbiAgICBcIkxPQ0tcIixcbiAgICBcIk1PRFwiLFxuICAgIFwiTU9OSVRPUlwiLFxuICAgIFwiT0ZGU0VUXCIsXG4gICAgXCJPZmZzZXRcIixcbiAgICBcIk9SXCIsXG4gICAgXCJPVkVSUklERVwiLFxuICAgIFwiUEFVU0VcIixcbiAgICBcIlBSRUdcIixcbiAgICBcIlBUSFwiLFxuICAgIFwiUlRfTERcIixcbiAgICBcIlJVTlwiLFxuICAgIFwiU0VMRUNUXCIsXG4gICAgXCJTS0lQXCIsXG4gICAgXCJTa2lwXCIsXG4gICAgXCJUQVwiLFxuICAgIFwiVEJcIixcbiAgICBcIlRPXCIsXG4gICAgXCJUT09MX09GRlNFVFwiLFxuICAgIFwiVG9vbF9PZmZzZXRcIixcbiAgICBcIlVGXCIsXG4gICAgXCJVVFwiLFxuICAgIFwiVUZSQU1FX05VTVwiLFxuICAgIFwiVVRPT0xfTlVNXCIsXG4gICAgXCJVTkxPQ0tcIixcbiAgICBcIldBSVRcIixcbiAgICBcIlhcIixcbiAgICBcIllcIixcbiAgICBcIlpcIixcbiAgICBcIldcIixcbiAgICBcIlBcIixcbiAgICBcIlJcIixcbiAgICBcIlNUUkxFTlwiLFxuICAgIFwiU1VCU1RSXCIsXG4gICAgXCJGSU5EU1RSXCIsXG4gICAgXCJWT0ZGU0VUXCIsXG4gICAgXCJQUk9HXCIsXG4gICAgXCJBVFRSXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiUE9TXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJPTlwiLFxuICAgIFwiT0ZGXCIsXG4gICAgXCJtYXhfc3BlZWRcIixcbiAgICBcIkxQT1NcIixcbiAgICBcIkpQT1NcIixcbiAgICBcIkVOQUJMRVwiLFxuICAgIFwiRElTQUJMRVwiLFxuICAgIFwiU1RBUlRcIixcbiAgICBcIlNUT1BcIixcbiAgICBcIlJFU0VUXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdUUCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUUERBVEEsXG4gICAgICBUUElPLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcvKFBST0d8QVRUUnxNTnxQT1N8RU5EKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLyogdGhpcyBpcyBmb3IgY2FzZXMgbGlrZSAsQ0FMTCAqL1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcoQ0FMTHxSVU58UE9JTlRfTE9HSUN8TEJMKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLyogdGhpcyBpcyBmb3IgY2FzZXMgbGlrZSBDTlQxMDAgd2hlcmUgdGhlIGRlZmF1bHQgbGV4ZW1lcyBkbyBub3RcbiAgICAgICAgICogc2VwYXJhdGUgdGhlIGtleXdvcmQgYW5kIHRoZSBudW1iZXIgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoQUNDfENOVHxTa2lwfE9mZnNldHxQU1BEfFJUX0xEfEFQX0xEfFRvb2xfT2Zmc2V0KSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8qIHRvIGNhdGNoIG51bWJlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIHdvcmQgYm91bmRhcnkgb24gdGhlIGxlZnQgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcZCsoc2VjfG1zZWN8bW0vc2VjfGNtL21pbnxpbmNoL21pbnxkZWcvc2VjfG1tfGlufGNtKT9cXFxcYicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnWzskXScpLFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJ1s7JF0nKSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLS1lZzonLCAnJCcpLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXCRbQS1aYS16MC05X10rJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0cDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFR3aWdcblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogTHVrZSBIb2xkZXIgPGx1a2VtaEBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVHdpZyBpcyBhIHRlbXBsYXRpbmcgbGFuZ3VhZ2UgZm9yIFBIUFxuV2Vic2l0ZTogaHR0cHM6Ly90d2lnLnN5bWZvbnkuY29tXG5DYXRlZ29yeTogdGVtcGxhdGVcbiovXG5cbmZ1bmN0aW9uIHR3aWcoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEZVTkNUSU9OX05BTUVTID0gW1xuICAgIFwiYWJzb2x1dGVfdXJsXCIsXG4gICAgXCJhc3NldHwwXCIsXG4gICAgXCJhc3NldF92ZXJzaW9uXCIsXG4gICAgXCJhdHRyaWJ1dGVcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJjb25zdGFudFwiLFxuICAgIFwiY29udHJvbGxlcnwwXCIsXG4gICAgXCJjb3VudHJ5X3RpbWV6b25lc1wiLFxuICAgIFwiY3NyZl90b2tlblwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImRhdGVcIixcbiAgICBcImR1bXBcIixcbiAgICBcImV4cHJlc3Npb25cIixcbiAgICBcImZvcm18MFwiLFxuICAgIFwiZm9ybV9lbmRcIixcbiAgICBcImZvcm1fZXJyb3JzXCIsXG4gICAgXCJmb3JtX2hlbHBcIixcbiAgICBcImZvcm1fbGFiZWxcIixcbiAgICBcImZvcm1fcmVzdFwiLFxuICAgIFwiZm9ybV9yb3dcIixcbiAgICBcImZvcm1fc3RhcnRcIixcbiAgICBcImZvcm1fd2lkZ2V0XCIsXG4gICAgXCJodG1sX2NsYXNzZXNcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImlzX2dyYW50ZWRcIixcbiAgICBcImxvZ291dF9wYXRoXCIsXG4gICAgXCJsb2dvdXRfdXJsXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwicGFyZW50XCIsXG4gICAgXCJwYXRofDBcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJlbGF0aXZlX3BhdGhcIixcbiAgICBcInJlbmRlclwiLFxuICAgIFwicmVuZGVyX2VzaVwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJ0ZW1wbGF0ZV9mcm9tX3N0cmluZ1wiLFxuICAgIFwidXJsfDBcIlxuICBdO1xuXG4gIGNvbnN0IEZJTFRFUlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFiYnJfY2xhc3NcIixcbiAgICBcImFiYnJfbWV0aG9kXCIsXG4gICAgXCJiYXRjaFwiLFxuICAgIFwiY2FwaXRhbGl6ZVwiLFxuICAgIFwiY29sdW1uXCIsXG4gICAgXCJjb252ZXJ0X2VuY29kaW5nXCIsXG4gICAgXCJjb3VudHJ5X25hbWVcIixcbiAgICBcImN1cnJlbmN5X25hbWVcIixcbiAgICBcImN1cnJlbmN5X3N5bWJvbFwiLFxuICAgIFwiZGF0YV91cmlcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRhdGVfbW9kaWZ5XCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJlc2NhcGVcIixcbiAgICBcImZpbGVfZXhjZXJwdFwiLFxuICAgIFwiZmlsZV9saW5rXCIsXG4gICAgXCJmaWxlX3JlbGF0aXZlXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZpcnN0XCIsXG4gICAgXCJmb3JtYXRcIixcbiAgICBcImZvcm1hdF9hcmdzXCIsXG4gICAgXCJmb3JtYXRfYXJnc19hc190ZXh0XCIsXG4gICAgXCJmb3JtYXRfY3VycmVuY3lcIixcbiAgICBcImZvcm1hdF9kYXRlXCIsXG4gICAgXCJmb3JtYXRfZGF0ZXRpbWVcIixcbiAgICBcImZvcm1hdF9maWxlXCIsXG4gICAgXCJmb3JtYXRfZmlsZV9mcm9tX3RleHRcIixcbiAgICBcImZvcm1hdF9udW1iZXJcIixcbiAgICBcImZvcm1hdF90aW1lXCIsXG4gICAgXCJodG1sX3RvX21hcmtkb3duXCIsXG4gICAgXCJodW1hbml6ZVwiLFxuICAgIFwiaW5reV90b19odG1sXCIsXG4gICAgXCJpbmxpbmVfY3NzXCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJqc29uX2VuY29kZVwiLFxuICAgIFwia2V5c1wiLFxuICAgIFwibGFuZ3VhZ2VfbmFtZVwiLFxuICAgIFwibGFzdFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsb2NhbGVfbmFtZVwiLFxuICAgIFwibG93ZXJcIixcbiAgICBcIm1hcFwiLFxuICAgIFwibWFya2Rvd25cIixcbiAgICBcIm1hcmtkb3duX3RvX2h0bWxcIixcbiAgICBcIm1lcmdlXCIsXG4gICAgXCJubDJiclwiLFxuICAgIFwibnVtYmVyX2Zvcm1hdFwiLFxuICAgIFwicmF3XCIsXG4gICAgXCJyZWR1Y2VcIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInJldmVyc2VcIixcbiAgICBcInJvdW5kXCIsXG4gICAgXCJzbGljZVwiLFxuICAgIFwic2x1Z1wiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3BhY2VsZXNzXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3RyaXB0YWdzXCIsXG4gICAgXCJ0aW1lem9uZV9uYW1lXCIsXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyYW5zY2hvaWNlXCIsXG4gICAgXCJ0cmltXCIsXG4gICAgXCJ1fDBcIixcbiAgICBcInVwcGVyXCIsXG4gICAgXCJ1cmxfZW5jb2RlXCIsXG4gICAgXCJ5YW1sX2R1bXBcIixcbiAgICBcInlhbWxfZW5jb2RlXCJcbiAgXTtcblxuICBsZXQgVEFHX05BTUVTID0gW1xuICAgIFwiYXBwbHlcIixcbiAgICBcImF1dG9lc2NhcGVcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJjYWNoZVwiLFxuICAgIFwiZGVwcmVjYXRlZFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVtYmVkXCIsXG4gICAgXCJleHRlbmRzXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZsdXNoXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcm1fdGhlbWVcIixcbiAgICBcImZyb21cIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcIm1hY3JvXCIsXG4gICAgXCJzYW5kYm94XCIsXG4gICAgXCJzZXRcIixcbiAgICBcInN0b3B3YXRjaFwiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyYW5zX2RlZmF1bHRfZG9tYWluXCIsXG4gICAgXCJ0cmFuc2Nob2ljZVwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2ZXJiYXRpbVwiLFxuICAgIFwid2l0aFwiXG4gIF07XG5cbiAgVEFHX05BTUVTID0gVEFHX05BTUVTLmNvbmNhdChUQUdfTkFNRVMubWFwKHQgPT4gYGVuZCR7dH1gKSk7XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiL1xuICAgICAgfSxcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIHNjb3BlOiBcIm51bWJlclwiLFxuICAgIG1hdGNoOiAvXFxkKy9cbiAgfTtcblxuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFNUUklORyxcbiAgICAgIE5VTUJFUlxuICAgIF1cbiAgfTtcblxuXG4gIGNvbnN0IEZVTkNUSU9OUyA9IHtcbiAgICBiZWdpbktleXdvcmRzOiBGVU5DVElPTl9OQU1FUy5qb2luKFwiIFwiKSxcbiAgICBrZXl3b3JkczogeyBuYW1lOiBGVU5DVElPTl9OQU1FUyB9LFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogWyBQQVJBTVMgXVxuICB9O1xuXG4gIGNvbnN0IEZJTFRFUiA9IHtcbiAgICBtYXRjaDogL1xcfCg/PVtBLVphLXpfXSs6PykvLFxuICAgIGJlZ2luU2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9bQS1aYS16X10rOj8vLFxuICAgICAgICBrZXl3b3JkczogRklMVEVSU1xuICAgICAgfSxcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgdGFnTmFtZWQgPSAodGFnbmFtZXMsIHsgcmVsZXZhbmNlIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYmVnaW5TY29wZToge1xuICAgICAgICAxOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgMzogJ25hbWUnXG4gICAgICB9LFxuICAgICAgcmVsZXZhbmNlOiByZWxldmFuY2UgfHwgMixcbiAgICAgIGVuZFNjb3BlOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgIGJlZ2luOiBbXG4gICAgICAgIC9cXHslLyxcbiAgICAgICAgL1xccyovLFxuICAgICAgICByZWdleC5laXRoZXIoLi4udGFnbmFtZXMpXG4gICAgICBdLFxuICAgICAgZW5kOiAvJVxcfS8sXG4gICAgICBrZXl3b3JkczogXCJpblwiLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgRklMVEVSLFxuICAgICAgICBGVU5DVElPTlMsXG4gICAgICAgIFNUUklORyxcbiAgICAgICAgTlVNQkVSXG4gICAgICBdXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBDVVNUT01fVEFHX1JFID0gL1thLXpfXSsvO1xuICBjb25zdCBUQUcgPSB0YWdOYW1lZChUQUdfTkFNRVMsIHsgcmVsZXZhbmNlOiAyIH0pO1xuICBjb25zdCBDVVNUT01fVEFHID0gdGFnTmFtZWQoWyBDVVNUT01fVEFHX1JFIF0sIHsgcmVsZXZhbmNlOiAxIH0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1R3aWcnLFxuICAgIGFsaWFzZXM6IFsgJ2NyYWZ0Y21zJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoL1xceyMvLCAvI1xcfS8pLFxuICAgICAgVEFHLFxuICAgICAgQ1VTVE9NX1RBRyxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogL1xce1xcey8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgIEZJTFRFUixcbiAgICAgICAgICBGVU5DVElPTlMsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIE5VTUJFUlxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHR3aWc7XG4iLCAiY29uc3QgSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbmNvbnN0IEtFWVdPUkRTID0gW1xuICBcImFzXCIsIC8vIGZvciBleHBvcnRzXG4gIFwiaW5cIixcbiAgXCJvZlwiLFxuICBcImlmXCIsXG4gIFwiZm9yXCIsXG4gIFwid2hpbGVcIixcbiAgXCJmaW5hbGx5XCIsXG4gIFwidmFyXCIsXG4gIFwibmV3XCIsXG4gIFwiZnVuY3Rpb25cIixcbiAgXCJkb1wiLFxuICBcInJldHVyblwiLFxuICBcInZvaWRcIixcbiAgXCJlbHNlXCIsXG4gIFwiYnJlYWtcIixcbiAgXCJjYXRjaFwiLFxuICBcImluc3RhbmNlb2ZcIixcbiAgXCJ3aXRoXCIsXG4gIFwidGhyb3dcIixcbiAgXCJjYXNlXCIsXG4gIFwiZGVmYXVsdFwiLFxuICBcInRyeVwiLFxuICBcInN3aXRjaFwiLFxuICBcImNvbnRpbnVlXCIsXG4gIFwidHlwZW9mXCIsXG4gIFwiZGVsZXRlXCIsXG4gIFwibGV0XCIsXG4gIFwieWllbGRcIixcbiAgXCJjb25zdFwiLFxuICBcImNsYXNzXCIsXG4gIC8vIEpTIGhhbmRsZXMgdGhlc2Ugd2l0aCBhIHNwZWNpYWwgcnVsZVxuICAvLyBcImdldFwiLFxuICAvLyBcInNldFwiLFxuICBcImRlYnVnZ2VyXCIsXG4gIFwiYXN5bmNcIixcbiAgXCJhd2FpdFwiLFxuICBcInN0YXRpY1wiLFxuICBcImltcG9ydFwiLFxuICBcImZyb21cIixcbiAgXCJleHBvcnRcIixcbiAgXCJleHRlbmRzXCJcbl07XG5jb25zdCBMSVRFUkFMUyA9IFtcbiAgXCJ0cnVlXCIsXG4gIFwiZmFsc2VcIixcbiAgXCJudWxsXCIsXG4gIFwidW5kZWZpbmVkXCIsXG4gIFwiTmFOXCIsXG4gIFwiSW5maW5pdHlcIlxuXTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHNcbmNvbnN0IFRZUEVTID0gW1xuICAvLyBGdW5kYW1lbnRhbCBvYmplY3RzXG4gIFwiT2JqZWN0XCIsXG4gIFwiRnVuY3Rpb25cIixcbiAgXCJCb29sZWFuXCIsXG4gIFwiU3ltYm9sXCIsXG4gIC8vIG51bWJlcnMgYW5kIGRhdGVzXG4gIFwiTWF0aFwiLFxuICBcIkRhdGVcIixcbiAgXCJOdW1iZXJcIixcbiAgXCJCaWdJbnRcIixcbiAgLy8gdGV4dFxuICBcIlN0cmluZ1wiLFxuICBcIlJlZ0V4cFwiLFxuICAvLyBJbmRleGVkIGNvbGxlY3Rpb25zXG4gIFwiQXJyYXlcIixcbiAgXCJGbG9hdDMyQXJyYXlcIixcbiAgXCJGbG9hdDY0QXJyYXlcIixcbiAgXCJJbnQ4QXJyYXlcIixcbiAgXCJVaW50OEFycmF5XCIsXG4gIFwiVWludDhDbGFtcGVkQXJyYXlcIixcbiAgXCJJbnQxNkFycmF5XCIsXG4gIFwiSW50MzJBcnJheVwiLFxuICBcIlVpbnQxNkFycmF5XCIsXG4gIFwiVWludDMyQXJyYXlcIixcbiAgXCJCaWdJbnQ2NEFycmF5XCIsXG4gIFwiQmlnVWludDY0QXJyYXlcIixcbiAgLy8gS2V5ZWQgY29sbGVjdGlvbnNcbiAgXCJTZXRcIixcbiAgXCJNYXBcIixcbiAgXCJXZWFrU2V0XCIsXG4gIFwiV2Vha01hcFwiLFxuICAvLyBTdHJ1Y3R1cmVkIGRhdGFcbiAgXCJBcnJheUJ1ZmZlclwiLFxuICBcIlNoYXJlZEFycmF5QnVmZmVyXCIsXG4gIFwiQXRvbWljc1wiLFxuICBcIkRhdGFWaWV3XCIsXG4gIFwiSlNPTlwiLFxuICAvLyBDb250cm9sIGFic3RyYWN0aW9uIG9iamVjdHNcbiAgXCJQcm9taXNlXCIsXG4gIFwiR2VuZXJhdG9yXCIsXG4gIFwiR2VuZXJhdG9yRnVuY3Rpb25cIixcbiAgXCJBc3luY0Z1bmN0aW9uXCIsXG4gIC8vIFJlZmxlY3Rpb25cbiAgXCJSZWZsZWN0XCIsXG4gIFwiUHJveHlcIixcbiAgLy8gSW50ZXJuYXRpb25hbGl6YXRpb25cbiAgXCJJbnRsXCIsXG4gIC8vIFdlYkFzc2VtYmx5XG4gIFwiV2ViQXNzZW1ibHlcIlxuXTtcblxuY29uc3QgRVJST1JfVFlQRVMgPSBbXG4gIFwiRXJyb3JcIixcbiAgXCJFdmFsRXJyb3JcIixcbiAgXCJJbnRlcm5hbEVycm9yXCIsXG4gIFwiUmFuZ2VFcnJvclwiLFxuICBcIlJlZmVyZW5jZUVycm9yXCIsXG4gIFwiU3ludGF4RXJyb3JcIixcbiAgXCJUeXBlRXJyb3JcIixcbiAgXCJVUklFcnJvclwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTl9HTE9CQUxTID0gW1xuICBcInNldEludGVydmFsXCIsXG4gIFwic2V0VGltZW91dFwiLFxuICBcImNsZWFySW50ZXJ2YWxcIixcbiAgXCJjbGVhclRpbWVvdXRcIixcblxuICBcInJlcXVpcmVcIixcbiAgXCJleHBvcnRzXCIsXG5cbiAgXCJldmFsXCIsXG4gIFwiaXNGaW5pdGVcIixcbiAgXCJpc05hTlwiLFxuICBcInBhcnNlRmxvYXRcIixcbiAgXCJwYXJzZUludFwiLFxuICBcImRlY29kZVVSSVwiLFxuICBcImRlY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVuY29kZVVSSVwiLFxuICBcImVuY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVzY2FwZVwiLFxuICBcInVuZXNjYXBlXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX1ZBUklBQkxFUyA9IFtcbiAgXCJhcmd1bWVudHNcIixcbiAgXCJ0aGlzXCIsXG4gIFwic3VwZXJcIixcbiAgXCJjb25zb2xlXCIsXG4gIFwid2luZG93XCIsXG4gIFwiZG9jdW1lbnRcIixcbiAgXCJsb2NhbFN0b3JhZ2VcIixcbiAgXCJzZXNzaW9uU3RvcmFnZVwiLFxuICBcIm1vZHVsZVwiLFxuICBcImdsb2JhbFwiIC8vIE5vZGUuanNcbl07XG5cbmNvbnN0IEJVSUxUX0lOUyA9IFtdLmNvbmNhdChcbiAgQlVJTFRfSU5fR0xPQkFMUyxcbiAgVFlQRVMsXG4gIEVSUk9SX1RZUEVTXG4pO1xuXG4vKlxuTGFuZ3VhZ2U6IEphdmFTY3JpcHRcbkRlc2NyaXB0aW9uOiBKYXZhU2NyaXB0IChKUykgaXMgYSBsaWdodHdlaWdodCwgaW50ZXJwcmV0ZWQsIG9yIGp1c3QtaW4tdGltZSBjb21waWxlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aXRoIGZpcnN0LWNsYXNzIGZ1bmN0aW9ucy5cbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZywgd2ViXG5XZWJzaXRlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0XG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvKipcbiAgICogVGFrZXMgYSBzdHJpbmcgbGlrZSBcIjxCb29nZXJcIiBhbmQgY2hlY2tzIHRvIHNlZVxuICAgKiBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIFwiPC9Cb29nZXJcIiBsYXRlciBpbiB0aGVcbiAgICogY29udGVudC5cbiAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgKiBAcGFyYW0ge3thZnRlcjpudW1iZXJ9fSBwYXJhbTFcbiAgICovXG4gIGNvbnN0IGhhc0Nsb3NpbmdUYWcgPSAobWF0Y2gsIHsgYWZ0ZXIgfSkgPT4ge1xuICAgIGNvbnN0IHRhZyA9IFwiPC9cIiArIG1hdGNoWzBdLnNsaWNlKDEpO1xuICAgIGNvbnN0IHBvcyA9IG1hdGNoLmlucHV0LmluZGV4T2YodGFnLCBhZnRlcik7XG4gICAgcmV0dXJuIHBvcyAhPT0gLTE7XG4gIH07XG5cbiAgY29uc3QgSURFTlRfUkUkMSA9IElERU5UX1JFO1xuICBjb25zdCBGUkFHTUVOVCA9IHtcbiAgICBiZWdpbjogJzw+JyxcbiAgICBlbmQ6ICc8Lz4nXG4gIH07XG4gIC8vIHRvIGF2b2lkIHNvbWUgc3BlY2lhbCBjYXNlcyBpbnNpZGUgaXNUcnVseU9wZW5pbmdUYWdcbiAgY29uc3QgWE1MX1NFTEZfQ0xPU0lORyA9IC88W0EtWmEtejAtOVxcXFwuXzotXStcXHMqXFwvPi87XG4gIGNvbnN0IFhNTF9UQUcgPSB7XG4gICAgYmVnaW46IC88W0EtWmEtejAtOVxcXFwuXzotXSsvLFxuICAgIGVuZDogL1xcL1tBLVphLXowLTlcXFxcLl86LV0rPnxcXC8+LyxcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICAgICAqL1xuICAgIGlzVHJ1bHlPcGVuaW5nVGFnOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBhZnRlck1hdGNoSW5kZXggPSBtYXRjaFswXS5sZW5ndGggKyBtYXRjaC5pbmRleDtcbiAgICAgIGNvbnN0IG5leHRDaGFyID0gbWF0Y2guaW5wdXRbYWZ0ZXJNYXRjaEluZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSFRNTCBzaG91bGQgbm90IGluY2x1ZGUgYW5vdGhlciByYXcgYDxgIGluc2lkZSBhIHRhZ1xuICAgICAgICAvLyBuZXN0ZWQgdHlwZT9cbiAgICAgICAgLy8gYDxBcnJheTxBcnJheTxudW1iZXI+PmAsIGV0Yy5cbiAgICAgICAgbmV4dENoYXIgPT09IFwiPFwiIHx8XG4gICAgICAgIC8vIHRoZSAsIGdpdmVzIGF3YXkgdGhhdCB0aGlzIGlzIG5vdCBIVE1MXG4gICAgICAgIC8vIGA8VCwgQSBleHRlbmRzIGtleW9mIFQsIFY+YFxuICAgICAgICBuZXh0Q2hhciA9PT0gXCIsXCJcbiAgICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYDxzb21ldGhpbmc+YFxuICAgICAgLy8gUXVpdGUgcG9zc2libHkgYSB0YWcsIGxldHMgbG9vayBmb3IgYSBtYXRjaGluZyBjbG9zaW5nIHRhZy4uLlxuICAgICAgaWYgKG5leHRDaGFyID09PSBcIj5cIikge1xuICAgICAgICAvLyBpZiB3ZSBjYW5ub3QgZmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgdGFnLCB0aGVuIHdlXG4gICAgICAgIC8vIHdpbGwgaWdub3JlIGl0XG4gICAgICAgIGlmICghaGFzQ2xvc2luZ1RhZyhtYXRjaCwgeyBhZnRlcjogYWZ0ZXJNYXRjaEluZGV4IH0pKSB7XG4gICAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBgPGJsYWggLz5gIChzZWxmLWNsb3NpbmcpXG4gICAgICAvLyBoYW5kbGVkIGJ5IHNpbXBsZVNlbGZDbG9zaW5nIHJ1bGVcblxuICAgICAgbGV0IG07XG4gICAgICBjb25zdCBhZnRlck1hdGNoID0gbWF0Y2guaW5wdXQuc3Vic3RyaW5nKGFmdGVyTWF0Y2hJbmRleCk7XG5cbiAgICAgIC8vIHNvbWUgbW9yZSB0ZW1wbGF0ZSB0eXBpbmcgc3R1ZmZcbiAgICAgIC8vICA8VCA9IGFueT4oa2V5Pzogc3RyaW5nKSA9PiBNb2RpZnk8XG4gICAgICBpZiAoKG0gPSBhZnRlck1hdGNoLm1hdGNoKC9eXFxzKj0vKSkpIHtcbiAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBgPEZyb20gZXh0ZW5kcyBzdHJpbmc+YFxuICAgICAgLy8gdGVjaG5pY2FsbHkgdGhpcyBjb3VsZCBiZSBIVE1MLCBidXQgaXQgc21lbGxzIGxpa2UgYSB0eXBlXG4gICAgICAvLyBOT1RFOiBUaGlzIGlzIHVnaCwgYnV0IGFkZGVkIHNwZWNpZmljYWxseSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzI3NlxuICAgICAgaWYgKChtID0gYWZ0ZXJNYXRjaC5tYXRjaCgvXlxccytleHRlbmRzXFxzKy8pKSkge1xuICAgICAgICBpZiAobS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogQlVJTFRfSU5fVkFSSUFCTEVTXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1saXRlcmFscy1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxEaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG4gIC8vIERlY2ltYWxJbnRlZ2VyTGl0ZXJhbCwgaW5jbHVkaW5nIEFubmV4IEIgTm9uT2N0YWxEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZGRpdGlvbmFsLXN5bnRheC1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxJbnRlZ2VyID0gYDB8WzEtOV0oXz9bMC05XSkqfDBbMC03XSpbODldWzAtOV0qYDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIERlY2ltYWxMaXRlcmFsXG4gICAgICB7IGJlZ2luOiBgKFxcXFxiKCR7ZGVjaW1hbEludGVnZXJ9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICAgIGBbZUVdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxJbnRlZ2VyfSlcXFxcYigoJHtmcmFjfSlcXFxcYnxcXFxcLik/fCgke2ZyYWN9KVxcXFxiYCB9LFxuXG4gICAgICAvLyBEZWNpbWFsQmlnSW50ZWdlckxpdGVyYWxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigwfFsxLTldKF8/WzAtOV0pKiluXFxcXGJgIH0sXG5cbiAgICAgIC8vIE5vbkRlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW29PXVswLTddKF8/WzAtN10pKm4/XFxcXGJcIiB9LFxuXG4gICAgICAvLyBMZWdhY3lPY3RhbEludGVnZXJMaXRlcmFsIChkb2VzIG5vdCBpbmNsdWRlIHVuZGVyc2NvcmUgc2VwYXJhdG9ycylcbiAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWRkaXRpb25hbC1zeW50YXgtbnVtZXJpYy1saXRlcmFsc1xuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbMC03XStuP1xcXFxiXCIgfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1xcXFwkXFxcXHsnLFxuICAgIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBjb250YWluczogW10gLy8gZGVmaW5lZCBsYXRlclxuICB9O1xuICBjb25zdCBIVE1MX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2h0bWxgJyxcbiAgICBlbmQ6ICcnLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnYCcsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICBTVUJTVFxuICAgICAgXSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NTX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2Nzc2AnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdjc3MnXG4gICAgfVxuICB9O1xuICBjb25zdCBHUkFQSFFMX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2dxbGAnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdncmFwaHFsJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVEVNUExBVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdgJyxcbiAgICBlbmQ6ICdgJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IEpTRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICdcXFxcKi8nLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyg/PUBbQS1aYS16XSspJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHsnLFxuICAgICAgICAgICAgICBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSQxICsgJyg/PVxcXFxzKigtKXwkKScsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGVhdCBzcGFjZXMgKG5vdCBuZXdsaW5lcykgc28gd2UgY2FuIGZpbmRcbiAgICAgICAgICAgIC8vIHR5cGVzIG9yIHZhcmlhYmxlc1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogLyg/PVteXFxuXSlcXHMvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gICk7XG4gIGNvbnN0IENPTU1FTlQgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgSlNET0NfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IFNVQlNUX0lOVEVSTkFMUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBIVE1MX1RFTVBMQVRFLFxuICAgIENTU19URU1QTEFURSxcbiAgICBHUkFQSFFMX1RFTVBMQVRFLFxuICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAvLyBTa2lwIG51bWJlcnMgd2hlbiB0aGV5IGFyZSBwYXJ0IG9mIGEgdmFyaWFibGUgbmFtZVxuICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgIE5VTUJFUixcbiAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsOlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMjg4XG4gICAgLy8gaGxqcy5SRUdFWFBfTU9ERVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFNVQlNUX0lOVEVSTkFMU1xuICAgIC5jb25jYXQoe1xuICAgICAgLy8gd2UgbmVlZCB0byBwYWlyIHVwIHt9IGluc2lkZSBvdXIgc3Vic3QgdG8gcHJldmVudFxuICAgICAgLy8gaXQgZnJvbSBlbmRpbmcgdG9vIGVhcmx5IGJ5IG1hdGNoaW5nIGFub3RoZXIgfVxuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9LyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgXCJzZWxmXCJcbiAgICAgIF0uY29uY2F0KFNVQlNUX0lOVEVSTkFMUylcbiAgICB9KTtcbiAgY29uc3QgU1VCU1RfQU5EX0NPTU1FTlRTID0gW10uY29uY2F0KENPTU1FTlQsIFNVQlNULmNvbnRhaW5zKTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1RfQU5EX0NPTU1FTlRTLmNvbmNhdChbXG4gICAgLy8gZWF0IHJlY3Vyc2l2ZSBwYXJlbnMgaW4gc3ViIGV4cHJlc3Npb25zXG4gICAge1xuICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcInNlbGZcIl0uY29uY2F0KFNVQlNUX0FORF9DT01NRU5UUylcbiAgICB9XG4gIF0pO1xuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAvLyBjb252ZXJ0IHRoaXMgdG8gbmVnYXRpdmUgbG9va2JlaGluZCBpbiB2MTJcbiAgICBiZWdpbjogLyhcXHMqKVxcKC8sIC8vIHRvIG1hdGNoIHRoZSBwYXJtcyB3aXRoIFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgY29udGFpbnM6IFBBUkFNU19DT05UQUlOU1xuICB9O1xuXG4gIC8vIEVTNiBjbGFzc2VzXG4gIGNvbnN0IENMQVNTX09SX0VYVEVORFMgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIGNsYXNzIENhciBleHRlbmRzIHZlaGljbGVcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICAvZXh0ZW5kcy8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIHJlZ2V4LmNvbmNhdChJREVOVF9SRSQxLCBcIihcIiwgcmVnZXguY29uY2F0KC9cXC4vLCBJREVOVF9SRSQxKSwgXCIpKlwiKVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgICAgICA1OiBcImtleXdvcmRcIixcbiAgICAgICAgICA3OiBcInRpdGxlLmNsYXNzLmluaGVyaXRlZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjbGFzcyBDYXJcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfUkVGRVJFTkNFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDpcbiAgICByZWdleC5laXRoZXIoXG4gICAgICAvLyBIYXJkIGNvZGVkIGV4Y2VwdGlvbnNcbiAgICAgIC9cXGJKU09OLyxcbiAgICAgIC8vIEZsb2F0MzJBcnJheSwgT3V0VFxuICAgICAgL1xcYltBLVpdW2Etel0rKFtBLVpdW2Etel0qfFxcZCkqLyxcbiAgICAgIC8vIENTU0ZhY3RvcnksIENTU0ZhY3RvcnlUXG4gICAgICAvXFxiW0EtWl17Mix9KFtBLVpdW2Etel0rfFxcZCkrKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gRlBzLCBGUHNUXG4gICAgICAvXFxiW0EtWl17Mix9W2Etel0rKFtBLVpdW2Etel0rfFxcZCkqKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gUFxuICAgICAgLy8gc2luZ2xlIGxldHRlcnMgYXJlIG5vdCBoaWdobGlnaHRlZFxuICAgICAgLy8gQkxBSFxuICAgICAgLy8gdGhpcyB3aWxsIGJlIGZsYWdnZWQgYXMgYSBVUFBFUl9DQVNFX0NPTlNUQU5UIGluc3RlYWRcbiAgICApLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBfOiBbXG4gICAgICAgIC8vIHNlIHdlIHN0aWxsIGdldCByZWxldmFuY2UgY3JlZGl0IGZvciBKUyBsaWJyYXJ5IGNsYXNzZXNcbiAgICAgICAgLi4uVFlQRVMsXG4gICAgICAgIC4uLkVSUk9SX1RZUEVTXG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFVTRV9TVFJJQ1QgPSB7XG4gICAgbGFiZWw6IFwidXNlX3N0cmljdFwiLFxuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIHJlbGV2YW5jZTogMTAsXG4gICAgYmVnaW46IC9eXFxzKlsnXCJddXNlIChzdHJpY3R8YXNtKVsnXCJdL1xuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvZnVuY3Rpb24vLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC8oPz1cXHMqXFwoKS9cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGFub255bW91cyBmdW5jdGlvblxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9mdW5jdGlvbi8sXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdLFxuICAgIGlsbGVnYWw6IC8lL1xuICB9O1xuXG4gIGNvbnN0IFVQUEVSX0NBU0VfQ09OU1RBTlQgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiAvXFxiW0EtWl1bQS1aXzAtOV0rXFxiLyxcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGUuY29uc3RhbnRcIlxuICB9O1xuXG4gIGZ1bmN0aW9uIG5vbmVPZihsaXN0KSB7XG4gICAgcmV0dXJuIHJlZ2V4LmNvbmNhdChcIig/IVwiLCBsaXN0LmpvaW4oXCJ8XCIpLCBcIilcIik7XG4gIH1cblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIG5vbmVPZihbXG4gICAgICAgIC4uLkJVSUxUX0lOX0dMT0JBTFMsXG4gICAgICAgIFwic3VwZXJcIixcbiAgICAgICAgXCJpbXBvcnRcIlxuICAgICAgXS5tYXAoeCA9PiBgJHt4fVxcXFxzKlxcXFwoYCkpLFxuICAgICAgSURFTlRfUkUkMSwgcmVnZXgubG9va2FoZWFkKC9cXHMqXFwoLykpLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXC4vLCByZWdleC5sb29rYWhlYWQoXG4gICAgICByZWdleC5jb25jYXQoSURFTlRfUkUkMSwgLyg/IVswLTlBLVphLXokXyhdKS8pXG4gICAgKSksXG4gICAgZW5kOiBJREVOVF9SRSQxLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogXCJwcm90b3R5cGVcIixcbiAgICBjbGFzc05hbWU6IFwicHJvcGVydHlcIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBHRVRURVJfT1JfU0VUVEVSID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvZ2V0fHNldC8sXG4gICAgICAvXFxzKy8sXG4gICAgICBJREVOVF9SRSQxLFxuICAgICAgLyg/PVxcKCkvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBlYXQgdG8gYXZvaWQgZW1wdHkgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoXFwpL1xuICAgICAgfSxcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DX0xFQURfSU5fUkUgPSAnKFxcXFwoJyArXG4gICAgJ1teKCldKihcXFxcKCcgK1xuICAgICdbXigpXSooXFxcXCgnICtcbiAgICAnW14oKV0qJyArXG4gICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAnXFxcXClbXigpXSopKicgK1xuICAgICdcXFxcKXwnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJylcXFxccyo9Pic7XG5cbiAgY29uc3QgRlVOQ1RJT05fVkFSSUFCTEUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9jb25zdHx2YXJ8bGV0LywgL1xccysvLFxuICAgICAgSURFTlRfUkUkMSwgL1xccyovLFxuICAgICAgLz1cXHMqLyxcbiAgICAgIC8oYXN5bmNcXHMqKT8vLCAvLyBhc3luYyBpcyBvcHRpb25hbFxuICAgICAgcmVnZXgubG9va2FoZWFkKEZVTkNfTEVBRF9JTl9SRSlcbiAgICBdLFxuICAgIGtleXdvcmRzOiBcImFzeW5jXCIsXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKYXZhU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbJ2pzJywgJ2pzeCcsICdtanMnLCAnY2pzJ10sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgLy8gdGhpcyB3aWxsIGJlIGV4dGVuZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICBleHBvcnRzOiB7IFBBUkFNU19DT05UQUlOUywgQ0xBU1NfUkVGRVJFTkNFIH0sXG4gICAgaWxsZWdhbDogLyMoPyFbJF9BLXpdKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGxhYmVsOiBcInNoZWJhbmdcIixcbiAgICAgICAgYmluYXJ5OiBcIm5vZGVcIixcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9KSxcbiAgICAgIFVTRV9TVFJJQ1QsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgSFRNTF9URU1QTEFURSxcbiAgICAgIENTU19URU1QTEFURSxcbiAgICAgIEdSQVBIUUxfVEVNUExBVEUsXG4gICAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgLy8gU2tpcCBudW1iZXJzIHdoZW4gdGhleSBhcmUgcGFydCBvZiBhIHZhcmlhYmxlIG5hbWVcbiAgICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IElERU5UX1JFJDEgKyByZWdleC5sb29rYWhlYWQoJzonKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fVkFSSUFCTEUsXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09NTUVOVCxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gY291bnQgdGhlIHBhcmVucyB0byBtYWtlIHN1cmUgd2UgYWN0dWFsbHkgaGF2ZSB0aGVcbiAgICAgICAgICAgIC8vIGNvcnJlY3QgYm91bmRpbmcgKCApIGJlZm9yZSB0aGUgPT4uICBUaGVyZSBjb3VsZCBiZSBhbnkgbnVtYmVyIG9mXG4gICAgICAgICAgICAvLyBzdWItZXhwcmVzc2lvbnMgaW5zaWRlIGFsc28gc3Vycm91bmRlZCBieSBwYXJlbnMuXG4gICAgICAgICAgICBiZWdpbjogRlVOQ19MRUFEX0lOX1JFLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccyo9PicsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXChcXHMqXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogUEFSQU1TX0NPTlRBSU5TXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIGNvdWxkIGJlIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGFyYW1zIHRvIGEgZnVuY3Rpb24gY2FsbFxuICAgICAgICAgICAgYmVnaW46IC8sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC9cXHMrLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBKU1hcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHsgYmVnaW46IEZSQUdNRU5ULmJlZ2luLCBlbmQ6IEZSQUdNRU5ULmVuZCB9LFxuICAgICAgICAgICAgICB7IG1hdGNoOiBYTUxfU0VMRl9DTE9TSU5HIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogWE1MX1RBRy5iZWdpbixcbiAgICAgICAgICAgICAgICAvLyB3ZSBjYXJlZnVsbHkgY2hlY2sgdGhlIG9wZW5pbmcgdGFnIHRvIHNlZSBpZiBpdCB0cnVseVxuICAgICAgICAgICAgICAgIC8vIGlzIGEgdGFnIGFuZCBub3QgYSBmYWxzZSBwb3NpdGl2ZVxuICAgICAgICAgICAgICAgICdvbjpiZWdpbic6IFhNTF9UQUcuaXNUcnVseU9wZW5pbmdUYWcsXG4gICAgICAgICAgICAgICAgZW5kOiBYTUxfVEFHLmVuZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBYTUxfVEFHLmJlZ2luLFxuICAgICAgICAgICAgICAgIGVuZDogWE1MX1RBRy5lbmQsXG4gICAgICAgICAgICAgICAgc2tpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICAvLyBwcmV2ZW50IHRoaXMgZnJvbSBnZXR0aW5nIHN3YWxsb3dlZCB1cCBieSBmdW5jdGlvblxuICAgICAgICAvLyBzaW5jZSB0aGV5IGFwcGVhciBcImZ1bmN0aW9uIGxpa2VcIlxuICAgICAgICBiZWdpbktleXdvcmRzOiBcIndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3JcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjb3VudCB0aGUgcGFyZW5zIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZSBjb3JyZWN0XG4gICAgICAgIC8vIGJvdW5kaW5nICggKS4gIFRoZXJlIGNvdWxkIGJlIGFueSBudW1iZXIgb2Ygc3ViLWV4cHJlc3Npb25zIGluc2lkZVxuICAgICAgICAvLyBhbHNvIHN1cnJvdW5kZWQgYnkgcGFyZW5zLlxuICAgICAgICBiZWdpbjogJ1xcXFxiKD8hZnVuY3Rpb24pJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArXG4gICAgICAgICAgJ1xcXFwoJyArIC8vIGZpcnN0IHBhcmVuc1xuICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICAgJ1teKCldKicgK1xuICAgICAgICAgICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAgICAgICAnXFxcXClbXigpXSopKicgK1xuICAgICAgICAgICdcXFxcKVxcXFxzKlxcXFx7JywgLy8gZW5kIHBhcmVuc1xuICAgICAgICByZXR1cm5CZWdpbjp0cnVlLFxuICAgICAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBJREVOVF9SRSQxLCBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2F0Y2ggLi4uIHNvIGl0IHdvbid0IHRyaWdnZXIgdGhlIHByb3BlcnR5IHJ1bGUgYmVsb3dcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXC5cXC5cXC4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBQUk9QRVJUWV9BQ0NFU1MsXG4gICAgICAvLyBoYWNrOiBwcmV2ZW50cyBkZXRlY3Rpb24gb2Yga2V5d29yZHMgaW4gc29tZSBjaXJjdW1zdGFuY2VzXG4gICAgICAvLyAua2V5d29yZCgpXG4gICAgICAvLyAka2V5d29yZCA9IHhcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6ICdcXFxcJCcgKyBJREVOVF9SRSQxLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbIC9cXGJjb25zdHJ1Y3Rvcig/PVxccypcXCgpLyBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMTogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fQ0FMTCxcbiAgICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgICBDTEFTU19PUl9FWFRFTkRTLFxuICAgICAgR0VUVEVSX09SX1NFVFRFUixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxuLypcbkxhbmd1YWdlOiBUeXBlU2NyaXB0XG5BdXRob3I6IFBhbnUgSG9yc21hbGFodGkgPHBhbnUuaG9yc21hbGFodGlAaWtpLmZpPlxuQ29udHJpYnV0b3JzOiBJa2UgS3UgPGRlbXBmaUB5YWhvby5jb20+XG5EZXNjcmlwdGlvbjogVHlwZVNjcmlwdCBpcyBhIHN0cmljdCBzdXBlcnNldCBvZiBKYXZhU2NyaXB0XG5XZWJzaXRlOiBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmdcbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZ1xuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gdHlwZXNjcmlwdChobGpzKSB7XG4gIGNvbnN0IHRzTGFuZ3VhZ2UgPSBqYXZhc2NyaXB0KGhsanMpO1xuXG4gIGNvbnN0IElERU5UX1JFJDEgPSBJREVOVF9SRTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJhbnlcIixcbiAgICBcInZvaWRcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwiYm9vbGVhblwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJvYmplY3RcIixcbiAgICBcIm5ldmVyXCIsXG4gICAgXCJzeW1ib2xcIixcbiAgICBcImJpZ2ludFwiLFxuICAgIFwidW5rbm93blwiXG4gIF07XG4gIGNvbnN0IE5BTUVTUEFDRSA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL25hbWVzcGFjZS8sXG4gICAgICAvXFxzKy8sXG4gICAgICBobGpzLklERU5UX1JFXG4gICAgXSxcbiAgICBiZWdpblNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgIH1cbiAgfTtcbiAgY29uc3QgSU5URVJGQUNFID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICdpbnRlcmZhY2UnLFxuICAgIGVuZDogL1xcey8sXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ2ludGVyZmFjZSBleHRlbmRzJyxcbiAgICAgIGJ1aWx0X2luOiBUWVBFU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFsgdHNMYW5ndWFnZS5leHBvcnRzLkNMQVNTX1JFRkVSRU5DRSBdXG4gIH07XG4gIGNvbnN0IFVTRV9TVFJJQ1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgcmVsZXZhbmNlOiAxMCxcbiAgICBiZWdpbjogL15cXHMqWydcIl11c2Ugc3RyaWN0WydcIl0vXG4gIH07XG4gIGNvbnN0IFRTX1NQRUNJRklDX0tFWVdPUkRTID0gW1xuICAgIFwidHlwZVwiLFxuICAgIC8vIFwibmFtZXNwYWNlXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcInB1YmxpY1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwicmVhZG9ubHlcIixcbiAgICBcImVudW1cIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJzYXRpc2ZpZXNcIlxuICBdO1xuXG4gIC8qXG4gICAgbmFtZXNwYWNlIGlzIGEgVFMga2V5d29yZCBidXQgaXQncyBmaW5lIHRvIHVzZSBpdCBhcyBhIHZhcmlhYmxlIG5hbWUgdG9vLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSAnZm9vJztcbiAgICBjb25zdCBuYW1lc3BhY2UgPSAnYmFyJztcbiAgKi9cblxuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUy5jb25jYXQoVFNfU1BFQ0lGSUNfS0VZV09SRFMpLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIGJ1aWx0X2luOiBCVUlMVF9JTlMuY29uY2F0KFRZUEVTKSxcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IEJVSUxUX0lOX1ZBUklBQkxFU1xuICB9O1xuICBjb25zdCBERUNPUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAJyArIElERU5UX1JFJDEsXG4gIH07XG5cbiAgY29uc3Qgc3dhcE1vZGUgPSAobW9kZSwgbGFiZWwsIHJlcGxhY2VtZW50KSA9PiB7XG4gICAgY29uc3QgaW5keCA9IG1vZGUuY29udGFpbnMuZmluZEluZGV4KG0gPT4gbS5sYWJlbCA9PT0gbGFiZWwpO1xuICAgIGlmIChpbmR4ID09PSAtMSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJjYW4gbm90IGZpbmQgbW9kZSB0byByZXBsYWNlXCIpOyB9XG5cbiAgICBtb2RlLmNvbnRhaW5zLnNwbGljZShpbmR4LCAxLCByZXBsYWNlbWVudCk7XG4gIH07XG5cblxuICAvLyB0aGlzIHNob3VsZCB1cGRhdGUgYW55d2hlcmUga2V5d29yZHMgaXMgdXNlZCBzaW5jZVxuICAvLyBpdCB3aWxsIGJlIHRoZSBzYW1lIGFjdHVhbCBKUyBvYmplY3RcbiAgT2JqZWN0LmFzc2lnbih0c0xhbmd1YWdlLmtleXdvcmRzLCBLRVlXT1JEUyQxKTtcblxuICB0c0xhbmd1YWdlLmV4cG9ydHMuUEFSQU1TX0NPTlRBSU5TLnB1c2goREVDT1JBVE9SKTtcblxuICAvLyBoaWdobGlnaHQgdGhlIGZ1bmN0aW9uIHBhcmFtc1xuICBjb25zdCBBVFRSSUJVVEVfSElHSExJR0hUID0gdHNMYW5ndWFnZS5jb250YWlucy5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IFwiYXR0clwiKTtcbiAgdHNMYW5ndWFnZS5leHBvcnRzLlBBUkFNU19DT05UQUlOUy5wdXNoKFtcbiAgICB0c0xhbmd1YWdlLmV4cG9ydHMuQ0xBU1NfUkVGRVJFTkNFLCAvLyBjbGFzcyByZWZlcmVuY2UgZm9yIGhpZ2hsaWdodGluZyB0aGUgcGFyYW1zIHR5cGVzXG4gICAgQVRUUklCVVRFX0hJR0hMSUdIVCwgLy8gaGlnaGxpZ2h0IHRoZSBwYXJhbXMga2V5XG4gIF0pO1xuICB0c0xhbmd1YWdlLmNvbnRhaW5zID0gdHNMYW5ndWFnZS5jb250YWlucy5jb25jYXQoW1xuICAgIERFQ09SQVRPUixcbiAgICBOQU1FU1BBQ0UsXG4gICAgSU5URVJGQUNFLFxuICBdKTtcblxuICAvLyBUUyBnZXRzIGEgc2ltcGxlciBzaGViYW5nIHJ1bGUgdGhhbiBKU1xuICBzd2FwTW9kZSh0c0xhbmd1YWdlLCBcInNoZWJhbmdcIiwgaGxqcy5TSEVCQU5HKCkpO1xuICAvLyBKUyB1c2Ugc3RyaWN0IHJ1bGUgcHVycG9zZWx5IGV4Y2x1ZGVzIGBhc21gIHdoaWNoIG1ha2VzIG5vIHNlbnNlXG4gIHN3YXBNb2RlKHRzTGFuZ3VhZ2UsIFwidXNlX3N0cmljdFwiLCBVU0VfU1RSSUNUKTtcblxuICBjb25zdCBmdW5jdGlvbkRlY2xhcmF0aW9uID0gdHNMYW5ndWFnZS5jb250YWlucy5maW5kKG0gPT4gbS5sYWJlbCA9PT0gXCJmdW5jLmRlZlwiKTtcbiAgZnVuY3Rpb25EZWNsYXJhdGlvbi5yZWxldmFuY2UgPSAwOyAvLyAoKSA9PiB7fSBpcyBtb3JlIHR5cGljYWwgaW4gVHlwZVNjcmlwdFxuXG4gIE9iamVjdC5hc3NpZ24odHNMYW5ndWFnZSwge1xuICAgIG5hbWU6ICdUeXBlU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAndHMnLFxuICAgICAgJ3RzeCcsXG4gICAgICAnbXRzJyxcbiAgICAgICdjdHMnXG4gICAgXVxuICB9KTtcblxuICByZXR1cm4gdHNMYW5ndWFnZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0eXBlc2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogVmFsYVxuQXV0aG9yOiBBbnRvbm8gVmFzaWxqZXYgPGFudG9uby52YXNpbGpldkBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVmFsYSBpcyBhIG5ldyBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IGFpbXMgdG8gYnJpbmcgbW9kZXJuIHByb2dyYW1taW5nIGxhbmd1YWdlIGZlYXR1cmVzIHRvIEdOT01FIGRldmVsb3BlcnMgd2l0aG91dCBpbXBvc2luZyBhbnkgYWRkaXRpb25hbCBydW50aW1lIHJlcXVpcmVtZW50cyBhbmQgd2l0aG91dCB1c2luZyBhIGRpZmZlcmVudCBBQkkgY29tcGFyZWQgdG8gYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMgd3JpdHRlbiBpbiBDLlxuV2Vic2l0ZTogaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9WYWxhXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG5mdW5jdGlvbiB2YWxhKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmFsYScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIFZhbHVlIHR5cGVzXG4gICAgICAgICdjaGFyIHVjaGFyIHVuaWNoYXIgaW50IHVpbnQgbG9uZyB1bG9uZyBzaG9ydCB1c2hvcnQgaW50OCBpbnQxNiBpbnQzMiBpbnQ2NCB1aW50OCAnXG4gICAgICAgICsgJ3VpbnQxNiB1aW50MzIgdWludDY0IGZsb2F0IGRvdWJsZSBib29sIHN0cnVjdCBlbnVtIHN0cmluZyB2b2lkICdcbiAgICAgICAgLy8gUmVmZXJlbmNlIHR5cGVzXG4gICAgICAgICsgJ3dlYWsgdW5vd25lZCBvd25lZCAnXG4gICAgICAgIC8vIE1vZGlmaWVyc1xuICAgICAgICArICdhc3luYyBzaWduYWwgc3RhdGljIGFic3RyYWN0IGludGVyZmFjZSBvdmVycmlkZSB2aXJ0dWFsIGRlbGVnYXRlICdcbiAgICAgICAgLy8gQ29udHJvbCBTdHJ1Y3R1cmVzXG4gICAgICAgICsgJ2lmIHdoaWxlIGRvIGZvciBmb3JlYWNoIGVsc2Ugc3dpdGNoIGNhc2UgYnJlYWsgZGVmYXVsdCByZXR1cm4gdHJ5IGNhdGNoICdcbiAgICAgICAgLy8gVmlzaWJpbGl0eVxuICAgICAgICArICdwdWJsaWMgcHJpdmF0ZSBwcm90ZWN0ZWQgaW50ZXJuYWwgJ1xuICAgICAgICAvLyBPdGhlclxuICAgICAgICArICd1c2luZyBuZXcgdGhpcyBnZXQgc2V0IGNvbnN0IHN0ZG91dCBzdGRpbiBzdGRlcnIgdmFyJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnREJ1cyBHTGliIENDb2RlIEdlZSBPYmplY3QgR3RrIFBvc2l4JyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdmYWxzZSB0cnVlIG51bGwnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UgbmFtZXNwYWNlJyxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1teLDpcXFxcblxcXFxzXFxcXC5dJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiJyxcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXiMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsYTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFZpc3VhbCBCYXNpYyAuTkVUXG5EZXNjcmlwdGlvbjogVmlzdWFsIEJhc2ljIC5ORVQgKFZCLk5FVCkgaXMgYSBtdWx0aS1wYXJhZGlnbSwgb2JqZWN0LW9yaWVudGVkIHByb2dyYW1taW5nIGxhbmd1YWdlLCBpbXBsZW1lbnRlZCBvbiB0aGUgLk5FVCBGcmFtZXdvcmsuXG5BdXRob3JzOiBQb3JlbiBDaGlhbmcgPHJlbi5jaGlhbmdAZ21haWwuY29tPiwgSmFuIFBpbHplclxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZG90bmV0L3Zpc3VhbC1iYXNpYy9nZXR0aW5nLXN0YXJ0ZWRcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiB2Ym5ldChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLyoqXG4gICAqIENoYXJhY3RlciBMaXRlcmFsXG4gICAqIEVpdGhlciBhIHNpbmdsZSBjaGFyYWN0ZXIgKFwiYVwiQykgb3IgYW4gZXNjYXBlZCBkb3VibGUgcXVvdGUgKFwiXCJcIlwiQykuXG4gICAqL1xuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1wiKFwiXCJ8W14vbl0pXCJDXFxiL1xuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICAvLyBkb3VibGUgcXVvdGUgZXNjYXBlXG4gICAgICAgIGJlZ2luOiAvXCJcIi8gfVxuICAgIF1cbiAgfTtcblxuICAvKiogRGF0ZSBMaXRlcmFscyBjb25zaXN0IG9mIGEgZGF0ZSwgYSB0aW1lLCBvciBib3RoIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLCBzdXJyb3VuZGVkIGJ5ICMgKi9cbiAgY29uc3QgTU1fRERfWVlZWSA9IC9cXGR7MSwyfVxcL1xcZHsxLDJ9XFwvXFxkezR9LztcbiAgY29uc3QgWVlZWV9NTV9ERCA9IC9cXGR7NH0tXFxkezEsMn0tXFxkezEsMn0vO1xuICBjb25zdCBUSU1FXzEySCA9IC8oXFxkfDFbMDEyXSkoOlxcZCspezAsMn0gKihBTXxQTSkvO1xuICBjb25zdCBUSU1FXzI0SCA9IC9cXGR7MSwyfSg6XFxkezEsMn0pezEsMn0vO1xuICBjb25zdCBEQVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIC8vICNZWVlZLU1NLUREIyAoSVNPLURhdGUpIG9yICNNL0QvWVlZWSMgKFVTLURhdGUpXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoLyMgKi8sIHJlZ2V4LmVpdGhlcihZWVlZX01NX0RELCBNTV9ERF9ZWVlZKSwgLyAqIy8pIH0sXG4gICAgICB7XG4gICAgICAgIC8vICNIOm1tWzpzc10jICgyNGggVGltZSlcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvIyAqLywgVElNRV8yNEgsIC8gKiMvKSB9LFxuICAgICAge1xuICAgICAgICAvLyAjaFs6bW1bOnNzXV0gQSMgKDEyaCBUaW1lKVxuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC8jICovLCBUSU1FXzEySCwgLyAqIy8pIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGRhdGUgcGx1cyB0aW1lXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLyMgKi8sXG4gICAgICAgICAgcmVnZXguZWl0aGVyKFlZWVlfTU1fREQsIE1NX0REX1lZWVkpLFxuICAgICAgICAgIC8gKy8sXG4gICAgICAgICAgcmVnZXguZWl0aGVyKFRJTUVfMTJILCBUSU1FXzI0SCksXG4gICAgICAgICAgLyAqIy9cbiAgICAgICAgKSB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICAvLyBGbG9hdFxuICAgICAgICBiZWdpbjogL1xcYlxcZFtcXGRfXSooKFxcLltcXGRfXSsoRVsrLV0/W1xcZF9dKyk/KXwoRVsrLV0/W1xcZF9dKykpW1JGREAhI10/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBJbnRlZ2VyIChiYXNlIDEwKVxuICAgICAgICBiZWdpbjogL1xcYlxcZFtcXGRfXSooKFU/W1NJTF0pfFslJl0pPy8gfSxcbiAgICAgIHtcbiAgICAgICAgLy8gSW50ZWdlciAoYmFzZSAxNilcbiAgICAgICAgYmVnaW46IC8mSFtcXGRBLUZfXSsoKFU/W1NJTF0pfFslJl0pPy8gfSxcbiAgICAgIHtcbiAgICAgICAgLy8gSW50ZWdlciAoYmFzZSA4KVxuICAgICAgICBiZWdpbjogLyZPWzAtN19dKygoVT9bU0lMXSl8WyUmXSk/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBJbnRlZ2VyIChiYXNlIDIpXG4gICAgICAgIGJlZ2luOiAvJkJbMDFfXSsoKFU/W1NJTF0pfFslJl0pPy8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsYWJlbCcsXG4gICAgYmVnaW46IC9eXFx3KzovXG4gIH07XG5cbiAgY29uc3QgRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoLycnJy8sIC8kLywgeyBjb250YWluczogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICBiZWdpbjogLzxcXC8/LyxcbiAgICAgIGVuZDogLz4vXG4gICAgfVxuICBdIH0pO1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQobnVsbCwgLyQvLCB7IHZhcmlhbnRzOiBbXG4gICAgeyBiZWdpbjogLycvIH0sXG4gICAge1xuICAgICAgLy8gVE9ETzogVXNlIG11bHRpLWNsYXNzIGZvciBsZWFkaW5nIHNwYWNlc1xuICAgICAgYmVnaW46IC8oW1xcdCBdfF4pUkVNKD89XFxzKS8gfVxuICBdIH0pO1xuXG4gIGNvbnN0IERJUkVDVElWRVMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgLy8gVE9ETzogVXNlIG11bHRpLWNsYXNzIGZvciBpbmRlbnRhdGlvbiBvbmNlIGF2YWlsYWJsZVxuICAgIGJlZ2luOiAvW1xcdCBdKiMoY29uc3R8ZGlzYWJsZXxlbHNlfGVsc2VpZnxlbmFibGV8ZW5kfGV4dGVybmFsc291cmNlfGlmfHJlZ2lvbilcXGIvLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6XG4gICAgICAgICdjb25zdCBkaXNhYmxlIGVsc2UgZWxzZWlmIGVuYWJsZSBlbmQgZXh0ZXJuYWxzb3VyY2UgaWYgcmVnaW9uIHRoZW4nIH0sXG4gICAgY29udGFpbnM6IFsgQ09NTUVOVCBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmlzdWFsIEJhc2ljIC5ORVQnLFxuICAgIGFsaWFzZXM6IFsgJ3ZiJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY2xhc3NOYW1lQWxpYXNlczogeyBsYWJlbDogJ3N5bWJvbCcgfSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2FkZGhhbmRsZXIgYWxpYXMgYWdncmVnYXRlIGFuc2kgYXMgYXN5bmMgYXNzZW1ibHkgYXV0byBiaW5hcnkgYnkgYnlyZWYgYnl2YWwgJyAvKiBhLWIgKi9cbiAgICAgICAgKyAnY2FsbCBjYXNlIGNhdGNoIGNsYXNzIGNvbXBhcmUgY29uc3QgY29udGludWUgY3VzdG9tIGRlY2xhcmUgZGVmYXVsdCBkZWxlZ2F0ZSBkaW0gZGlzdGluY3QgZG8gJyAvKiBjLWQgKi9cbiAgICAgICAgKyAnZWFjaCBlcXVhbHMgZWxzZSBlbHNlaWYgZW5kIGVudW0gZXJhc2UgZXJyb3IgZXZlbnQgZXhpdCBleHBsaWNpdCBmaW5hbGx5IGZvciBmcmllbmQgZnJvbSBmdW5jdGlvbiAnIC8qIGUtZiAqL1xuICAgICAgICArICdnZXQgZ2xvYmFsIGdvdG8gZ3JvdXAgaGFuZGxlcyBpZiBpbXBsZW1lbnRzIGltcG9ydHMgaW4gaW5oZXJpdHMgaW50ZXJmYWNlIGludG8gaXRlcmF0b3IgJyAvKiBnLWkgKi9cbiAgICAgICAgKyAnam9pbiBrZXkgbGV0IGxpYiBsb29wIG1lIG1pZCBtb2R1bGUgbXVzdGluaGVyaXQgbXVzdG92ZXJyaWRlIG15YmFzZSBteWNsYXNzICcgLyogai1tICovXG4gICAgICAgICsgJ25hbWVzcGFjZSBuYXJyb3dpbmcgbmV3IG5leHQgbm90aW5oZXJpdGFibGUgbm90b3ZlcnJpZGFibGUgJyAvKiBuICovXG4gICAgICAgICsgJ29mIG9mZiBvbiBvcGVyYXRvciBvcHRpb24gb3B0aW9uYWwgb3JkZXIgb3ZlcmxvYWRzIG92ZXJyaWRhYmxlIG92ZXJyaWRlcyAnIC8qIG8gKi9cbiAgICAgICAgKyAncGFyYW1hcnJheSBwYXJ0aWFsIHByZXNlcnZlIHByaXZhdGUgcHJvcGVydHkgcHJvdGVjdGVkIHB1YmxpYyAnIC8qIHAgKi9cbiAgICAgICAgKyAncmFpc2VldmVudCByZWFkb25seSByZWRpbSByZW1vdmVoYW5kbGVyIHJlc3VtZSByZXR1cm4gJyAvKiByICovXG4gICAgICAgICsgJ3NlbGVjdCBzZXQgc2hhZG93cyBzaGFyZWQgc2tpcCBzdGF0aWMgc3RlcCBzdG9wIHN0cnVjdHVyZSBzdHJpY3Qgc3ViIHN5bmNsb2NrICcgLyogcyAqL1xuICAgICAgICArICd0YWtlIHRleHQgdGhlbiB0aHJvdyB0byB0cnkgdW5pY29kZSB1bnRpbCB1c2luZyB3aGVuIHdoZXJlIHdoaWxlIHdpZGVuaW5nIHdpdGggd2l0aGV2ZW50cyB3cml0ZW9ubHkgeWllbGQnIC8qIHQteSAqLyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvLyBPcGVyYXRvcnMgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZG90bmV0L3Zpc3VhbC1iYXNpYy9sYW5ndWFnZS1yZWZlcmVuY2Uvb3BlcmF0b3JzXG4gICAgICAgICdhZGRyZXNzb2YgYW5kIGFuZGFsc28gYXdhaXQgZGlyZWN0Y2FzdCBnZXR0eXBlIGdldHhtbG5hbWVzcGFjZSBpcyBpc2ZhbHNlIGlzbm90IGlzdHJ1ZSBsaWtlIG1vZCBuYW1lb2YgbmV3IG5vdCBvciBvcmVsc2UgdHJ5Y2FzdCB0eXBlb2YgeG9yICdcbiAgICAgICAgLy8gVHlwZSBDb252ZXJzaW9uIEZ1bmN0aW9ucyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9kb3RuZXQvdmlzdWFsLWJhc2ljL2xhbmd1YWdlLXJlZmVyZW5jZS9mdW5jdGlvbnMvdHlwZS1jb252ZXJzaW9uLWZ1bmN0aW9uc1xuICAgICAgICArICdjYm9vbCBjYnl0ZSBjY2hhciBjZGF0ZSBjZGJsIGNkZWMgY2ludCBjbG5nIGNvYmogY3NieXRlIGNzaG9ydCBjc25nIGNzdHIgY3VpbnQgY3VsbmcgY3VzaG9ydCcsXG4gICAgICB0eXBlOlxuICAgICAgICAvLyBEYXRhIHR5cGVzIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2RvdG5ldC92aXN1YWwtYmFzaWMvbGFuZ3VhZ2UtcmVmZXJlbmNlL2RhdGEtdHlwZXNcbiAgICAgICAgJ2Jvb2xlYW4gYnl0ZSBjaGFyIGRhdGUgZGVjaW1hbCBkb3VibGUgaW50ZWdlciBsb25nIG9iamVjdCBzYnl0ZSBzaG9ydCBzaW5nbGUgc3RyaW5nIHVpbnRlZ2VyIHVsb25nIHVzaG9ydCcsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBub3RoaW5nJ1xuICAgIH0sXG4gICAgaWxsZWdhbDpcbiAgICAgICcvL3xcXFxce3xcXFxcfXxlbmRpZnxnb3N1Ynx2YXJpYW50fHdlbmR8XlxcXFwkICcgLyogcmVzZXJ2ZWQgZGVwcmVjYXRlZCBrZXl3b3JkcyAqLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ0hBUkFDVEVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgREFURSxcbiAgICAgIE5VTUJFUixcbiAgICAgIExBQkVMLFxuICAgICAgRE9DX0NPTU1FTlQsXG4gICAgICBDT01NRU5ULFxuICAgICAgRElSRUNUSVZFU1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2Ym5ldDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFZCU2NyaXB0XG5EZXNjcmlwdGlvbjogVkJTY3JpcHQgKFwiTWljcm9zb2Z0IFZpc3VhbCBCYXNpYyBTY3JpcHRpbmcgRWRpdGlvblwiKSBpcyBhbiBBY3RpdmUgU2NyaXB0aW5nIGxhbmd1YWdlIGRldmVsb3BlZCBieSBNaWNyb3NvZnQgdGhhdCBpcyBtb2RlbGVkIG9uIFZpc3VhbCBCYXNpYy5cbkF1dGhvcjogTmlraXRhIExlZHlhZXYgPGxlbmlraXRhQHlhbmRleC5ydT5cbkNvbnRyaWJ1dG9yczogTWljaGFsIEdhYnJ1a2lld2ljeiA8bWdhYnJ1QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZCU2NyaXB0XG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gdmJzY3JpcHQoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEJVSUxUX0lOX0ZVTkNUSU9OUyA9IFtcbiAgICBcImxjYXNlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwidmFydHlwZVwiLFxuICAgIFwiaW5zdHJyZXZcIixcbiAgICBcInVib3VuZFwiLFxuICAgIFwic2V0bG9jYWxlXCIsXG4gICAgXCJnZXRvYmplY3RcIixcbiAgICBcInJnYlwiLFxuICAgIFwiZ2V0cmVmXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcIndlZWtkYXluYW1lXCIsXG4gICAgXCJybmRcIixcbiAgICBcImRhdGVhZGRcIixcbiAgICBcIm1vbnRobmFtZVwiLFxuICAgIFwibm93XCIsXG4gICAgXCJkYXlcIixcbiAgICBcIm1pbnV0ZVwiLFxuICAgIFwiaXNhcnJheVwiLFxuICAgIFwiY2Jvb2xcIixcbiAgICBcInJvdW5kXCIsXG4gICAgXCJmb3JtYXRjdXJyZW5jeVwiLFxuICAgIFwiY29udmVyc2lvbnNcIixcbiAgICBcImNzbmdcIixcbiAgICBcInRpbWV2YWx1ZVwiLFxuICAgIFwic2Vjb25kXCIsXG4gICAgXCJ5ZWFyXCIsXG4gICAgXCJzcGFjZVwiLFxuICAgIFwiYWJzXCIsXG4gICAgXCJjbG5nXCIsXG4gICAgXCJ0aW1lc2VyaWFsXCIsXG4gICAgXCJmaXhzXCIsXG4gICAgXCJsZW5cIixcbiAgICBcImFzY1wiLFxuICAgIFwiaXNlbXB0eVwiLFxuICAgIFwibWF0aHNcIixcbiAgICBcImRhdGVzZXJpYWxcIixcbiAgICBcImF0blwiLFxuICAgIFwidGltZXJcIixcbiAgICBcImlzb2JqZWN0XCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcIndlZWtkYXlcIixcbiAgICBcImRhdGV2YWx1ZVwiLFxuICAgIFwiY2N1clwiLFxuICAgIFwiaXNkYXRlXCIsXG4gICAgXCJpbnN0clwiLFxuICAgIFwiZGF0ZWRpZmZcIixcbiAgICBcImZvcm1hdGRhdGV0aW1lXCIsXG4gICAgXCJyZXBsYWNlXCIsXG4gICAgXCJpc251bGxcIixcbiAgICBcInJpZ2h0XCIsXG4gICAgXCJzZ25cIixcbiAgICBcImFycmF5XCIsXG4gICAgXCJzbnVtZXJpY1wiLFxuICAgIFwibG9nXCIsXG4gICAgXCJjZGJsXCIsXG4gICAgXCJoZXhcIixcbiAgICBcImNoclwiLFxuICAgIFwibGJvdW5kXCIsXG4gICAgXCJtc2dib3hcIixcbiAgICBcInVjYXNlXCIsXG4gICAgXCJnZXRsb2NhbGVcIixcbiAgICBcImNvc1wiLFxuICAgIFwiY2RhdGVcIixcbiAgICBcImNieXRlXCIsXG4gICAgXCJydHJpbVwiLFxuICAgIFwiam9pblwiLFxuICAgIFwiaG91clwiLFxuICAgIFwib2N0XCIsXG4gICAgXCJ0eXBlbmFtZVwiLFxuICAgIFwidHJpbVwiLFxuICAgIFwic3RyY29tcFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJjcmVhdGVvYmplY3RcIixcbiAgICBcImxvYWRwaWN0dXJlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcImZvcm1hdG51bWJlclwiLFxuICAgIFwibWlkXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwiY2ludFwiLFxuICAgIFwic2luXCIsXG4gICAgXCJkYXRlcGFydFwiLFxuICAgIFwibHRyaW1cIixcbiAgICBcInNxclwiLFxuICAgIFwidGltZVwiLFxuICAgIFwiZGVyaXZlZFwiLFxuICAgIFwiZXZhbFwiLFxuICAgIFwiZGF0ZVwiLFxuICAgIFwiZm9ybWF0cGVyY2VudFwiLFxuICAgIFwiZXhwXCIsXG4gICAgXCJpbnB1dGJveFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwiYXNjd1wiLFxuICAgIFwiY2hyd1wiLFxuICAgIFwicmVnZXhwXCIsXG4gICAgXCJjc3RyXCIsXG4gICAgXCJlcnJcIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTl9PQkpFQ1RTID0gW1xuICAgIFwic2VydmVyXCIsXG4gICAgXCJyZXNwb25zZVwiLFxuICAgIFwicmVxdWVzdFwiLFxuICAgIC8vIHRha2Ugbm8gYXJndW1lbnRzIHNvIGNhbiBiZSBjYWxsZWQgd2l0aG91dCAoKVxuICAgIFwic2NyaXB0ZW5naW5lXCIsXG4gICAgXCJzY3JpcHRlbmdpbmVidWlsZHZlcnNpb25cIixcbiAgICBcInNjcmlwdGVuZ2luZW1pbm9ydmVyc2lvblwiLFxuICAgIFwic2NyaXB0ZW5naW5lbWFqb3J2ZXJzaW9uXCJcbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTl9DQUxMID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQocmVnZXguZWl0aGVyKC4uLkJVSUxUX0lOX0ZVTkNUSU9OUyksIFwiXFxcXHMqXFxcXChcIiksXG4gICAgLy8gcmVsZXZhbmNlIDAgYmVjYXVzZSB0aGlzIGlzIGFjdGluZyBhcyBhIGJlZ2luS2V5d29yZHMgcmVhbGx5XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOiBCVUlMVF9JTl9GVU5DVElPTlMgfVxuICB9O1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm5vdGhpbmdcIixcbiAgICBcImVtcHR5XCJcbiAgXTtcblxuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImNhbGxcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiZGltXCIsXG4gICAgXCJkb1wiLFxuICAgIFwibG9vcFwiLFxuICAgIFwiZXJhc2VcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImV4ZWN1dGVnbG9iYWxcIixcbiAgICBcImV4aXRcIixcbiAgICBcImZvclwiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwibmV4dFwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcImlmXCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJvblwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwiZXhwbGljaXRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvcGVydHlcIixcbiAgICBcImxldFwiLFxuICAgIFwiZ2V0XCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJhbmRvbWl6ZVwiLFxuICAgIFwicmVkaW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInN0b3BcIixcbiAgICBcInN1YlwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcIndlbmRcIixcbiAgICBcIndpdGhcIixcbiAgICBcImVuZFwiLFxuICAgIFwidG9cIixcbiAgICBcImVsc2VpZlwiLFxuICAgIFwiaXNcIixcbiAgICBcIm9yXCIsXG4gICAgXCJ4b3JcIixcbiAgICBcImFuZFwiLFxuICAgIFwibm90XCIsXG4gICAgXCJjbGFzc19pbml0aWFsaXplXCIsXG4gICAgXCJjbGFzc190ZXJtaW5hdGVcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcInByZXNlcnZlXCIsXG4gICAgXCJpblwiLFxuICAgIFwibWVcIixcbiAgICBcImJ5dmFsXCIsXG4gICAgXCJieXJlZlwiLFxuICAgIFwic3RlcFwiLFxuICAgIFwicmVzdW1lXCIsXG4gICAgXCJnb3RvXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdWQlNjcmlwdCcsXG4gICAgYWxpYXNlczogWyAndmJzJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUX0lOX09CSkVDVFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgaWxsZWdhbDogJy8vJyxcbiAgICBjb250YWluczogW1xuICAgICAgQlVJTFRfSU5fQ0FMTCxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF0gfSksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC8nLyxcbiAgICAgICAgLyQvLFxuICAgICAgICB7IHJlbGV2YW5jZTogMCB9XG4gICAgICApLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZic2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogVkJTY3JpcHQgaW4gSFRNTFxuUmVxdWlyZXM6IHhtbC5qcywgdmJzY3JpcHQuanNcbkF1dGhvcjogSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG5EZXNjcmlwdGlvbjogXCJCcmlkZ2VcIiBsYW5ndWFnZSBkZWZpbmluZyBmcmFnbWVudHMgb2YgVkJTY3JpcHQgaW4gSFRNTCB3aXRoaW4gPCUgLi4gJT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZCU2NyaXB0XG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG5mdW5jdGlvbiB2YnNjcmlwdEh0bWwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdWQlNjcmlwdCBpbiBIVE1MJyxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8JScsXG4gICAgICAgIGVuZDogJyU+JyxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6ICd2YnNjcmlwdCdcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmJzY3JpcHRIdG1sO1xuIiwgIi8qXG5MYW5ndWFnZTogVmVyaWxvZ1xuQXV0aG9yOiBKb24gRXZhbnMgPGpvbkBjcmFmdHlqb24uY29tPlxuQ29udHJpYnV0b3JzOiBCb29uZSBTZXZlcnNvbiA8Ym9vbmUuc2V2ZXJzb25AZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFZlcmlsb2cgaXMgYSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBsYW5ndWFnZSB1c2VkIGluIGVsZWN0cm9uaWMgZGVzaWduIGF1dG9tYXRpb24gdG8gZGVzY3JpYmUgZGlnaXRhbCBhbmQgbWl4ZWQtc2lnbmFsIHN5c3RlbXMuIFRoaXMgaGlnaGxpZ2h0ZXIgc3VwcG9ydHMgVmVyaWxvZyBhbmQgU3lzdGVtVmVyaWxvZyB0aHJvdWdoIElFRUUgMTgwMC0yMDEyLlxuV2Vic2l0ZTogaHR0cDovL3d3dy52ZXJpbG9nLmNvbVxuQ2F0ZWdvcnk6IGhhcmR3YXJlXG4qL1xuXG5mdW5jdGlvbiB2ZXJpbG9nKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogL1xcJD9bXFx3XSsoXFwkW1xcd10rKSovLFxuICAgIGtleXdvcmQ6IFtcbiAgICAgIFwiYWNjZXB0X29uXCIsXG4gICAgICBcImFsaWFzXCIsXG4gICAgICBcImFsd2F5c1wiLFxuICAgICAgXCJhbHdheXNfY29tYlwiLFxuICAgICAgXCJhbHdheXNfZmZcIixcbiAgICAgIFwiYWx3YXlzX2xhdGNoXCIsXG4gICAgICBcImFuZFwiLFxuICAgICAgXCJhc3NlcnRcIixcbiAgICAgIFwiYXNzaWduXCIsXG4gICAgICBcImFzc3VtZVwiLFxuICAgICAgXCJhdXRvbWF0aWNcIixcbiAgICAgIFwiYmVmb3JlXCIsXG4gICAgICBcImJlZ2luXCIsXG4gICAgICBcImJpbmRcIixcbiAgICAgIFwiYmluc1wiLFxuICAgICAgXCJiaW5zb2ZcIixcbiAgICAgIFwiYml0XCIsXG4gICAgICBcImJyZWFrXCIsXG4gICAgICBcImJ1ZnwwXCIsXG4gICAgICBcImJ1ZmlmMFwiLFxuICAgICAgXCJidWZpZjFcIixcbiAgICAgIFwiYnl0ZVwiLFxuICAgICAgXCJjYXNlXCIsXG4gICAgICBcImNhc2V4XCIsXG4gICAgICBcImNhc2V6XCIsXG4gICAgICBcImNlbGxcIixcbiAgICAgIFwiY2hhbmRsZVwiLFxuICAgICAgXCJjaGVja2VyXCIsXG4gICAgICBcImNsYXNzXCIsXG4gICAgICBcImNsb2NraW5nXCIsXG4gICAgICBcImNtb3NcIixcbiAgICAgIFwiY29uZmlnXCIsXG4gICAgICBcImNvbnN0XCIsXG4gICAgICBcImNvbnN0cmFpbnRcIixcbiAgICAgIFwiY29udGV4dFwiLFxuICAgICAgXCJjb250aW51ZVwiLFxuICAgICAgXCJjb3ZlclwiLFxuICAgICAgXCJjb3Zlcmdyb3VwXCIsXG4gICAgICBcImNvdmVycG9pbnRcIixcbiAgICAgIFwiY3Jvc3NcIixcbiAgICAgIFwiZGVhc3NpZ25cIixcbiAgICAgIFwiZGVmYXVsdFwiLFxuICAgICAgXCJkZWZwYXJhbVwiLFxuICAgICAgXCJkZXNpZ25cIixcbiAgICAgIFwiZGlzYWJsZVwiLFxuICAgICAgXCJkaXN0XCIsXG4gICAgICBcImRvXCIsXG4gICAgICBcImVkZ2VcIixcbiAgICAgIFwiZWxzZVwiLFxuICAgICAgXCJlbmRcIixcbiAgICAgIFwiZW5kY2FzZVwiLFxuICAgICAgXCJlbmRjaGVja2VyXCIsXG4gICAgICBcImVuZGNsYXNzXCIsXG4gICAgICBcImVuZGNsb2NraW5nXCIsXG4gICAgICBcImVuZGNvbmZpZ1wiLFxuICAgICAgXCJlbmRmdW5jdGlvblwiLFxuICAgICAgXCJlbmRnZW5lcmF0ZVwiLFxuICAgICAgXCJlbmRncm91cFwiLFxuICAgICAgXCJlbmRpbnRlcmZhY2VcIixcbiAgICAgIFwiZW5kbW9kdWxlXCIsXG4gICAgICBcImVuZHBhY2thZ2VcIixcbiAgICAgIFwiZW5kcHJpbWl0aXZlXCIsXG4gICAgICBcImVuZHByb2dyYW1cIixcbiAgICAgIFwiZW5kcHJvcGVydHlcIixcbiAgICAgIFwiZW5kc3BlY2lmeVwiLFxuICAgICAgXCJlbmRzZXF1ZW5jZVwiLFxuICAgICAgXCJlbmR0YWJsZVwiLFxuICAgICAgXCJlbmR0YXNrXCIsXG4gICAgICBcImVudW1cIixcbiAgICAgIFwiZXZlbnRcIixcbiAgICAgIFwiZXZlbnR1YWxseVwiLFxuICAgICAgXCJleHBlY3RcIixcbiAgICAgIFwiZXhwb3J0XCIsXG4gICAgICBcImV4dGVuZHNcIixcbiAgICAgIFwiZXh0ZXJuXCIsXG4gICAgICBcImZpbmFsXCIsXG4gICAgICBcImZpcnN0X21hdGNoXCIsXG4gICAgICBcImZvclwiLFxuICAgICAgXCJmb3JjZVwiLFxuICAgICAgXCJmb3JlYWNoXCIsXG4gICAgICBcImZvcmV2ZXJcIixcbiAgICAgIFwiZm9ya1wiLFxuICAgICAgXCJmb3Jram9pblwiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJnZW5lcmF0ZXw1XCIsXG4gICAgICBcImdlbnZhclwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiaGlnaHowXCIsXG4gICAgICBcImhpZ2h6MVwiLFxuICAgICAgXCJpZlwiLFxuICAgICAgXCJpZmZcIixcbiAgICAgIFwiaWZub25lXCIsXG4gICAgICBcImlnbm9yZV9iaW5zXCIsXG4gICAgICBcImlsbGVnYWxfYmluc1wiLFxuICAgICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgICBcImltcGxpZXNcIixcbiAgICAgIFwiaW1wb3J0XCIsXG4gICAgICBcImluY2RpclwiLFxuICAgICAgXCJpbmNsdWRlXCIsXG4gICAgICBcImluaXRpYWxcIixcbiAgICAgIFwiaW5vdXRcIixcbiAgICAgIFwiaW5wdXRcIixcbiAgICAgIFwiaW5zaWRlXCIsXG4gICAgICBcImluc3RhbmNlXCIsXG4gICAgICBcImludFwiLFxuICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICBcImludGVyY29ubmVjdFwiLFxuICAgICAgXCJpbnRlcmZhY2VcIixcbiAgICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgICBcImpvaW5cIixcbiAgICAgIFwiam9pbl9hbnlcIixcbiAgICAgIFwiam9pbl9ub25lXCIsXG4gICAgICBcImxhcmdlXCIsXG4gICAgICBcImxldFwiLFxuICAgICAgXCJsaWJsaXN0XCIsXG4gICAgICBcImxpYnJhcnlcIixcbiAgICAgIFwibG9jYWxcIixcbiAgICAgIFwibG9jYWxwYXJhbVwiLFxuICAgICAgXCJsb2dpY1wiLFxuICAgICAgXCJsb25naW50XCIsXG4gICAgICBcIm1hY3JvbW9kdWxlXCIsXG4gICAgICBcIm1hdGNoZXNcIixcbiAgICAgIFwibWVkaXVtXCIsXG4gICAgICBcIm1vZHBvcnRcIixcbiAgICAgIFwibW9kdWxlXCIsXG4gICAgICBcIm5hbmRcIixcbiAgICAgIFwibmVnZWRnZVwiLFxuICAgICAgXCJuZXR0eXBlXCIsXG4gICAgICBcIm5ld1wiLFxuICAgICAgXCJuZXh0dGltZVwiLFxuICAgICAgXCJubW9zXCIsXG4gICAgICBcIm5vclwiLFxuICAgICAgXCJub3Nob3djYW5jZWxsZWRcIixcbiAgICAgIFwibm90XCIsXG4gICAgICBcIm5vdGlmMFwiLFxuICAgICAgXCJub3RpZjFcIixcbiAgICAgIFwib3JcIixcbiAgICAgIFwib3V0cHV0XCIsXG4gICAgICBcInBhY2thZ2VcIixcbiAgICAgIFwicGFja2VkXCIsXG4gICAgICBcInBhcmFtZXRlclwiLFxuICAgICAgXCJwbW9zXCIsXG4gICAgICBcInBvc2VkZ2VcIixcbiAgICAgIFwicHJpbWl0aXZlXCIsXG4gICAgICBcInByaW9yaXR5XCIsXG4gICAgICBcInByb2dyYW1cIixcbiAgICAgIFwicHJvcGVydHlcIixcbiAgICAgIFwicHJvdGVjdGVkXCIsXG4gICAgICBcInB1bGwwXCIsXG4gICAgICBcInB1bGwxXCIsXG4gICAgICBcInB1bGxkb3duXCIsXG4gICAgICBcInB1bGx1cFwiLFxuICAgICAgXCJwdWxzZXN0eWxlX29uZGV0ZWN0XCIsXG4gICAgICBcInB1bHNlc3R5bGVfb25ldmVudFwiLFxuICAgICAgXCJwdXJlXCIsXG4gICAgICBcInJhbmRcIixcbiAgICAgIFwicmFuZGNcIixcbiAgICAgIFwicmFuZGNhc2VcIixcbiAgICAgIFwicmFuZHNlcXVlbmNlXCIsXG4gICAgICBcInJjbW9zXCIsXG4gICAgICBcInJlYWxcIixcbiAgICAgIFwicmVhbHRpbWVcIixcbiAgICAgIFwicmVmXCIsXG4gICAgICBcInJlZ1wiLFxuICAgICAgXCJyZWplY3Rfb25cIixcbiAgICAgIFwicmVsZWFzZVwiLFxuICAgICAgXCJyZXBlYXRcIixcbiAgICAgIFwicmVzdHJpY3RcIixcbiAgICAgIFwicmV0dXJuXCIsXG4gICAgICBcInJubW9zXCIsXG4gICAgICBcInJwbW9zXCIsXG4gICAgICBcInJ0cmFuXCIsXG4gICAgICBcInJ0cmFuaWYwXCIsXG4gICAgICBcInJ0cmFuaWYxXCIsXG4gICAgICBcInNfYWx3YXlzXCIsXG4gICAgICBcInNfZXZlbnR1YWxseVwiLFxuICAgICAgXCJzX25leHR0aW1lXCIsXG4gICAgICBcInNfdW50aWxcIixcbiAgICAgIFwic191bnRpbF93aXRoXCIsXG4gICAgICBcInNjYWxhcmVkXCIsXG4gICAgICBcInNlcXVlbmNlXCIsXG4gICAgICBcInNob3J0aW50XCIsXG4gICAgICBcInNob3J0cmVhbFwiLFxuICAgICAgXCJzaG93Y2FuY2VsbGVkXCIsXG4gICAgICBcInNpZ25lZFwiLFxuICAgICAgXCJzbWFsbFwiLFxuICAgICAgXCJzb2Z0XCIsXG4gICAgICBcInNvbHZlXCIsXG4gICAgICBcInNwZWNpZnlcIixcbiAgICAgIFwic3BlY3BhcmFtXCIsXG4gICAgICBcInN0YXRpY1wiLFxuICAgICAgXCJzdHJpbmdcIixcbiAgICAgIFwic3Ryb25nXCIsXG4gICAgICBcInN0cm9uZzBcIixcbiAgICAgIFwic3Ryb25nMVwiLFxuICAgICAgXCJzdHJ1Y3RcIixcbiAgICAgIFwic3VwZXJcIixcbiAgICAgIFwic3VwcGx5MFwiLFxuICAgICAgXCJzdXBwbHkxXCIsXG4gICAgICBcInN5bmNfYWNjZXB0X29uXCIsXG4gICAgICBcInN5bmNfcmVqZWN0X29uXCIsXG4gICAgICBcInRhYmxlXCIsXG4gICAgICBcInRhZ2dlZFwiLFxuICAgICAgXCJ0YXNrXCIsXG4gICAgICBcInRoaXNcIixcbiAgICAgIFwidGhyb3VnaG91dFwiLFxuICAgICAgXCJ0aW1lXCIsXG4gICAgICBcInRpbWVwcmVjaXNpb25cIixcbiAgICAgIFwidGltZXVuaXRcIixcbiAgICAgIFwidHJhblwiLFxuICAgICAgXCJ0cmFuaWYwXCIsXG4gICAgICBcInRyYW5pZjFcIixcbiAgICAgIFwidHJpXCIsXG4gICAgICBcInRyaTBcIixcbiAgICAgIFwidHJpMVwiLFxuICAgICAgXCJ0cmlhbmRcIixcbiAgICAgIFwidHJpb3JcIixcbiAgICAgIFwidHJpcmVnXCIsXG4gICAgICBcInR5cGVcIixcbiAgICAgIFwidHlwZWRlZlwiLFxuICAgICAgXCJ1bmlvblwiLFxuICAgICAgXCJ1bmlxdWVcIixcbiAgICAgIFwidW5pcXVlMFwiLFxuICAgICAgXCJ1bnNpZ25lZFwiLFxuICAgICAgXCJ1bnRpbFwiLFxuICAgICAgXCJ1bnRpbF93aXRoXCIsXG4gICAgICBcInVudHlwZWRcIixcbiAgICAgIFwidXNlXCIsXG4gICAgICBcInV3aXJlXCIsXG4gICAgICBcInZhclwiLFxuICAgICAgXCJ2ZWN0b3JlZFwiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZvaWRcIixcbiAgICAgIFwid2FpdFwiLFxuICAgICAgXCJ3YWl0X29yZGVyXCIsXG4gICAgICBcIndhbmRcIixcbiAgICAgIFwid2Vha1wiLFxuICAgICAgXCJ3ZWFrMFwiLFxuICAgICAgXCJ3ZWFrMVwiLFxuICAgICAgXCJ3aGlsZVwiLFxuICAgICAgXCJ3aWxkY2FyZFwiLFxuICAgICAgXCJ3aXJlXCIsXG4gICAgICBcIndpdGhcIixcbiAgICAgIFwid2l0aGluXCIsXG4gICAgICBcIndvclwiLFxuICAgICAgXCJ4bm9yXCIsXG4gICAgICBcInhvclwiXG4gICAgXSxcbiAgICBsaXRlcmFsOiBbICdudWxsJyBdLFxuICAgIGJ1aWx0X2luOiBbXG4gICAgICBcIiRmaW5pc2hcIixcbiAgICAgIFwiJHN0b3BcIixcbiAgICAgIFwiJGV4aXRcIixcbiAgICAgIFwiJGZhdGFsXCIsXG4gICAgICBcIiRlcnJvclwiLFxuICAgICAgXCIkd2FybmluZ1wiLFxuICAgICAgXCIkaW5mb1wiLFxuICAgICAgXCIkcmVhbHRpbWVcIixcbiAgICAgIFwiJHRpbWVcIixcbiAgICAgIFwiJHByaW50dGltZXNjYWxlXCIsXG4gICAgICBcIiRiaXRzdG9yZWFsXCIsXG4gICAgICBcIiRiaXRzdG9zaG9ydHJlYWxcIixcbiAgICAgIFwiJGl0b3JcIixcbiAgICAgIFwiJHNpZ25lZFwiLFxuICAgICAgXCIkY2FzdFwiLFxuICAgICAgXCIkYml0c1wiLFxuICAgICAgXCIkc3RpbWVcIixcbiAgICAgIFwiJHRpbWVmb3JtYXRcIixcbiAgICAgIFwiJHJlYWx0b2JpdHNcIixcbiAgICAgIFwiJHNob3J0cmVhbHRvYml0c1wiLFxuICAgICAgXCIkcnRvaVwiLFxuICAgICAgXCIkdW5zaWduZWRcIixcbiAgICAgIFwiJGFzc2VydG9uXCIsXG4gICAgICBcIiRhc3NlcnRraWxsXCIsXG4gICAgICBcIiRhc3NlcnRwYXNzb25cIixcbiAgICAgIFwiJGFzc2VydGZhaWxvblwiLFxuICAgICAgXCIkYXNzZXJ0bm9udmFjdW91c29uXCIsXG4gICAgICBcIiRhc3NlcnRvZmZcIixcbiAgICAgIFwiJGFzc2VydGNvbnRyb2xcIixcbiAgICAgIFwiJGFzc2VydHBhc3NvZmZcIixcbiAgICAgIFwiJGFzc2VydGZhaWxvZmZcIixcbiAgICAgIFwiJGFzc2VydHZhY3VvdXNvZmZcIixcbiAgICAgIFwiJGlzdW5ib3VuZGVkXCIsXG4gICAgICBcIiRzYW1wbGVkXCIsXG4gICAgICBcIiRmZWxsXCIsXG4gICAgICBcIiRjaGFuZ2VkXCIsXG4gICAgICBcIiRwYXN0X2djbGtcIixcbiAgICAgIFwiJGZlbGxfZ2Nsa1wiLFxuICAgICAgXCIkY2hhbmdlZF9nY2xrXCIsXG4gICAgICBcIiRyaXNpbmdfZ2Nsa1wiLFxuICAgICAgXCIkc3RlYWR5X2djbGtcIixcbiAgICAgIFwiJGNvdmVyYWdlX2NvbnRyb2xcIixcbiAgICAgIFwiJGNvdmVyYWdlX2dldFwiLFxuICAgICAgXCIkY292ZXJhZ2Vfc2F2ZVwiLFxuICAgICAgXCIkc2V0X2NvdmVyYWdlX2RiX25hbWVcIixcbiAgICAgIFwiJHJvc2VcIixcbiAgICAgIFwiJHN0YWJsZVwiLFxuICAgICAgXCIkcGFzdFwiLFxuICAgICAgXCIkcm9zZV9nY2xrXCIsXG4gICAgICBcIiRzdGFibGVfZ2Nsa1wiLFxuICAgICAgXCIkZnV0dXJlX2djbGtcIixcbiAgICAgIFwiJGZhbGxpbmdfZ2Nsa1wiLFxuICAgICAgXCIkY2hhbmdpbmdfZ2Nsa1wiLFxuICAgICAgXCIkZGlzcGxheVwiLFxuICAgICAgXCIkY292ZXJhZ2VfZ2V0X21heFwiLFxuICAgICAgXCIkY292ZXJhZ2VfbWVyZ2VcIixcbiAgICAgIFwiJGdldF9jb3ZlcmFnZVwiLFxuICAgICAgXCIkbG9hZF9jb3ZlcmFnZV9kYlwiLFxuICAgICAgXCIkdHlwZW5hbWVcIixcbiAgICAgIFwiJHVucGFja2VkX2RpbWVuc2lvbnNcIixcbiAgICAgIFwiJGxlZnRcIixcbiAgICAgIFwiJGxvd1wiLFxuICAgICAgXCIkaW5jcmVtZW50XCIsXG4gICAgICBcIiRjbG9nMlwiLFxuICAgICAgXCIkbG5cIixcbiAgICAgIFwiJGxvZzEwXCIsXG4gICAgICBcIiRleHBcIixcbiAgICAgIFwiJHNxcnRcIixcbiAgICAgIFwiJHBvd1wiLFxuICAgICAgXCIkZmxvb3JcIixcbiAgICAgIFwiJGNlaWxcIixcbiAgICAgIFwiJHNpblwiLFxuICAgICAgXCIkY29zXCIsXG4gICAgICBcIiR0YW5cIixcbiAgICAgIFwiJGNvdW50Yml0c1wiLFxuICAgICAgXCIkb25laG90XCIsXG4gICAgICBcIiRpc3Vua25vd25cIixcbiAgICAgIFwiJGZhdGFsXCIsXG4gICAgICBcIiR3YXJuaW5nXCIsXG4gICAgICBcIiRkaW1lbnNpb25zXCIsXG4gICAgICBcIiRyaWdodFwiLFxuICAgICAgXCIkaGlnaFwiLFxuICAgICAgXCIkc2l6ZVwiLFxuICAgICAgXCIkYXNpblwiLFxuICAgICAgXCIkYWNvc1wiLFxuICAgICAgXCIkYXRhblwiLFxuICAgICAgXCIkYXRhbjJcIixcbiAgICAgIFwiJGh5cG90XCIsXG4gICAgICBcIiRzaW5oXCIsXG4gICAgICBcIiRjb3NoXCIsXG4gICAgICBcIiR0YW5oXCIsXG4gICAgICBcIiRhc2luaFwiLFxuICAgICAgXCIkYWNvc2hcIixcbiAgICAgIFwiJGF0YW5oXCIsXG4gICAgICBcIiRjb3VudG9uZXNcIixcbiAgICAgIFwiJG9uZWhvdDBcIixcbiAgICAgIFwiJGVycm9yXCIsXG4gICAgICBcIiRpbmZvXCIsXG4gICAgICBcIiRyYW5kb21cIixcbiAgICAgIFwiJGRpc3RfY2hpX3NxdWFyZVwiLFxuICAgICAgXCIkZGlzdF9lcmxhbmdcIixcbiAgICAgIFwiJGRpc3RfZXhwb25lbnRpYWxcIixcbiAgICAgIFwiJGRpc3Rfbm9ybWFsXCIsXG4gICAgICBcIiRkaXN0X3BvaXNzb25cIixcbiAgICAgIFwiJGRpc3RfdFwiLFxuICAgICAgXCIkZGlzdF91bmlmb3JtXCIsXG4gICAgICBcIiRxX2luaXRpYWxpemVcIixcbiAgICAgIFwiJHFfcmVtb3ZlXCIsXG4gICAgICBcIiRxX2V4YW1cIixcbiAgICAgIFwiJGFzeW5jJGFuZCRhcnJheVwiLFxuICAgICAgXCIkYXN5bmMkbmFuZCRhcnJheVwiLFxuICAgICAgXCIkYXN5bmMkb3IkYXJyYXlcIixcbiAgICAgIFwiJGFzeW5jJG5vciRhcnJheVwiLFxuICAgICAgXCIkc3luYyRhbmQkYXJyYXlcIixcbiAgICAgIFwiJHN5bmMkbmFuZCRhcnJheVwiLFxuICAgICAgXCIkc3luYyRvciRhcnJheVwiLFxuICAgICAgXCIkc3luYyRub3IkYXJyYXlcIixcbiAgICAgIFwiJHFfYWRkXCIsXG4gICAgICBcIiRxX2Z1bGxcIixcbiAgICAgIFwiJHBzcHJpbnRmXCIsXG4gICAgICBcIiRhc3luYyRhbmQkcGxhbmVcIixcbiAgICAgIFwiJGFzeW5jJG5hbmQkcGxhbmVcIixcbiAgICAgIFwiJGFzeW5jJG9yJHBsYW5lXCIsXG4gICAgICBcIiRhc3luYyRub3IkcGxhbmVcIixcbiAgICAgIFwiJHN5bmMkYW5kJHBsYW5lXCIsXG4gICAgICBcIiRzeW5jJG5hbmQkcGxhbmVcIixcbiAgICAgIFwiJHN5bmMkb3IkcGxhbmVcIixcbiAgICAgIFwiJHN5bmMkbm9yJHBsYW5lXCIsXG4gICAgICBcIiRzeXN0ZW1cIixcbiAgICAgIFwiJGRpc3BsYXlcIixcbiAgICAgIFwiJGRpc3BsYXliXCIsXG4gICAgICBcIiRkaXNwbGF5aFwiLFxuICAgICAgXCIkZGlzcGxheW9cIixcbiAgICAgIFwiJHN0cm9iZVwiLFxuICAgICAgXCIkc3Ryb2JlYlwiLFxuICAgICAgXCIkc3Ryb2JlaFwiLFxuICAgICAgXCIkc3Ryb2Jlb1wiLFxuICAgICAgXCIkd3JpdGVcIixcbiAgICAgIFwiJHJlYWRtZW1iXCIsXG4gICAgICBcIiRyZWFkbWVtaFwiLFxuICAgICAgXCIkd3JpdGVtZW1oXCIsXG4gICAgICBcIiR2YWx1ZSRwbHVzYXJnc1wiLFxuICAgICAgXCIkZHVtcHZhcnNcIixcbiAgICAgIFwiJGR1bXBvblwiLFxuICAgICAgXCIkZHVtcGxpbWl0XCIsXG4gICAgICBcIiRkdW1wcG9ydHNcIixcbiAgICAgIFwiJGR1bXBwb3J0c29uXCIsXG4gICAgICBcIiRkdW1wcG9ydHNsaW1pdFwiLFxuICAgICAgXCIkd3JpdGViXCIsXG4gICAgICBcIiR3cml0ZWhcIixcbiAgICAgIFwiJHdyaXRlb1wiLFxuICAgICAgXCIkbW9uaXRvclwiLFxuICAgICAgXCIkbW9uaXRvcmJcIixcbiAgICAgIFwiJG1vbml0b3JoXCIsXG4gICAgICBcIiRtb25pdG9yb1wiLFxuICAgICAgXCIkd3JpdGVtZW1iXCIsXG4gICAgICBcIiRkdW1wZmlsZVwiLFxuICAgICAgXCIkZHVtcG9mZlwiLFxuICAgICAgXCIkZHVtcGFsbFwiLFxuICAgICAgXCIkZHVtcGZsdXNoXCIsXG4gICAgICBcIiRkdW1wcG9ydHNvZmZcIixcbiAgICAgIFwiJGR1bXBwb3J0c2FsbFwiLFxuICAgICAgXCIkZHVtcHBvcnRzZmx1c2hcIixcbiAgICAgIFwiJGZjbG9zZVwiLFxuICAgICAgXCIkZmRpc3BsYXlcIixcbiAgICAgIFwiJGZkaXNwbGF5YlwiLFxuICAgICAgXCIkZmRpc3BsYXloXCIsXG4gICAgICBcIiRmZGlzcGxheW9cIixcbiAgICAgIFwiJGZzdHJvYmVcIixcbiAgICAgIFwiJGZzdHJvYmViXCIsXG4gICAgICBcIiRmc3Ryb2JlaFwiLFxuICAgICAgXCIkZnN0cm9iZW9cIixcbiAgICAgIFwiJHN3cml0ZVwiLFxuICAgICAgXCIkc3dyaXRlYlwiLFxuICAgICAgXCIkc3dyaXRlaFwiLFxuICAgICAgXCIkc3dyaXRlb1wiLFxuICAgICAgXCIkZnNjYW5mXCIsXG4gICAgICBcIiRmcmVhZFwiLFxuICAgICAgXCIkZnNlZWtcIixcbiAgICAgIFwiJGZmbHVzaFwiLFxuICAgICAgXCIkZmVvZlwiLFxuICAgICAgXCIkZm9wZW5cIixcbiAgICAgIFwiJGZ3cml0ZVwiLFxuICAgICAgXCIkZndyaXRlYlwiLFxuICAgICAgXCIkZndyaXRlaFwiLFxuICAgICAgXCIkZndyaXRlb1wiLFxuICAgICAgXCIkZm1vbml0b3JcIixcbiAgICAgIFwiJGZtb25pdG9yYlwiLFxuICAgICAgXCIkZm1vbml0b3JoXCIsXG4gICAgICBcIiRmbW9uaXRvcm9cIixcbiAgICAgIFwiJHNmb3JtYXRcIixcbiAgICAgIFwiJHNmb3JtYXRmXCIsXG4gICAgICBcIiRmZ2V0Y1wiLFxuICAgICAgXCIkdW5nZXRjXCIsXG4gICAgICBcIiRmZ2V0c1wiLFxuICAgICAgXCIkc3NjYW5mXCIsXG4gICAgICBcIiRyZXdpbmRcIixcbiAgICAgIFwiJGZ0ZWxsXCIsXG4gICAgICBcIiRmZXJyb3JcIlxuICAgIF1cbiAgfTtcbiAgY29uc3QgQlVJTFRfSU5fQ09OU1RBTlRTID0gW1xuICAgIFwiX19GSUxFX19cIixcbiAgICBcIl9fTElORV9fXCJcbiAgXTtcbiAgY29uc3QgRElSRUNUSVZFUyA9IFtcbiAgICBcImJlZ2luX2tleXdvcmRzXCIsXG4gICAgXCJjZWxsZGVmaW5lXCIsXG4gICAgXCJkZWZhdWx0X25ldHR5cGVcIixcbiAgICBcImRlZmF1bHRfZGVjYXlfdGltZVwiLFxuICAgIFwiZGVmYXVsdF90cmlyZWdfc3RyZW5ndGhcIixcbiAgICBcImRlZmluZVwiLFxuICAgIFwiZGVsYXlfbW9kZV9kaXN0cmlidXRlZFwiLFxuICAgIFwiZGVsYXlfbW9kZV9wYXRoXCIsXG4gICAgXCJkZWxheV9tb2RlX3VuaXRcIixcbiAgICBcImRlbGF5X21vZGVfemVyb1wiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZWxzaWZcIixcbiAgICBcImVuZF9rZXl3b3Jkc1wiLFxuICAgIFwiZW5kY2VsbGRlZmluZVwiLFxuICAgIFwiZW5kaWZcIixcbiAgICBcImlmZGVmXCIsXG4gICAgXCJpZm5kZWZcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImxpbmVcIixcbiAgICBcIm5vdW5jb25uZWN0ZWRfZHJpdmVcIixcbiAgICBcInByYWdtYVwiLFxuICAgIFwicmVzZXRhbGxcIixcbiAgICBcInRpbWVzY2FsZVwiLFxuICAgIFwidW5jb25uZWN0ZWRfZHJpdmVcIixcbiAgICBcInVuZGVmXCIsXG4gICAgXCJ1bmRlZmluZWFsbFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmVyaWxvZycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3YnLFxuICAgICAgJ3N2JyxcbiAgICAgICdzdmgnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9cXGIoKFxcZCsnKFtiaG9kQkhPRF0pKVswLTl4elhaYS1mQS1GX10rKS8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxCKCgnKFtiaG9kQkhPRF0pKVswLTl4elhaYS1mQS1GX10rKS8gfSxcbiAgICAgICAgICB7IC8vIGRlY2ltYWxcbiAgICAgICAgICAgIGJlZ2luOiAvXFxiWzAtOV1bMC05X10qLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8qIHBhcmFtZXRlcnMgdG8gaW5zdGFuY2VzICovXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICcjXFxcXCgoPyFwYXJhbWV0ZXIpLitcXFxcKScgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwuXFxcXHcrJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICd2YXJpYWJsZS5jb25zdGFudCcsXG4gICAgICAgIG1hdGNoOiByZWdleC5jb25jYXQoL2AvLCByZWdleC5laXRoZXIoLi4uQlVJTFRfSU5fQ09OU1RBTlRTKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC9gLywgcmVnZXguZWl0aGVyKC4uLkRJUkVDVElWRVMpKSxcbiAgICAgICAgZW5kOiAvJHxcXC9cXC98XFwvXFwqLyxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogRElSRUNUSVZFU1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2ZXJpbG9nO1xuIiwgIi8qXG5MYW5ndWFnZTogVkhETFxuQXV0aG9yOiBJZ29yIEthbG5pdHNreSA8aWdvckBrYWxuaXRza3kub3JnPlxuQ29udHJpYnV0b3JzOiBEYW5pZWwgQy5LLiBLaG8gPGRhbmllbC5raG9AdGF1aG9wLmNvbT4sIEd1aWxsYXVtZSBTYXZhdG9uIDxndWlsbGF1bWUuc2F2YXRvbkBlc2VvLmZyPlxuRGVzY3JpcHRpb246IFZIREwgaXMgYSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBsYW5ndWFnZSB1c2VkIGluIGVsZWN0cm9uaWMgZGVzaWduIGF1dG9tYXRpb24gdG8gZGVzY3JpYmUgZGlnaXRhbCBhbmQgbWl4ZWQtc2lnbmFsIHN5c3RlbXMuXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WSERMXG5DYXRlZ29yeTogaGFyZHdhcmVcbiovXG5cbmZ1bmN0aW9uIHZoZGwoaGxqcykge1xuICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIFZIREwgbnVtZXJpYyBsaXRlcmFscy5cblxuICAvLyBEZWNpbWFsIGxpdGVyYWw6XG4gIGNvbnN0IElOVEVHRVJfUkUgPSAnXFxcXGQoX3xcXFxcZCkqJztcbiAgY29uc3QgRVhQT05FTlRfUkUgPSAnW2VFXVstK10/JyArIElOVEVHRVJfUkU7XG4gIGNvbnN0IERFQ0lNQUxfTElURVJBTF9SRSA9IElOVEVHRVJfUkUgKyAnKFxcXFwuJyArIElOVEVHRVJfUkUgKyAnKT8nICsgJygnICsgRVhQT05FTlRfUkUgKyAnKT8nO1xuICAvLyBCYXNlZCBsaXRlcmFsOlxuICBjb25zdCBCQVNFRF9JTlRFR0VSX1JFID0gJ1xcXFx3Kyc7XG4gIGNvbnN0IEJBU0VEX0xJVEVSQUxfUkUgPSBJTlRFR0VSX1JFICsgJyMnICsgQkFTRURfSU5URUdFUl9SRSArICcoXFxcXC4nICsgQkFTRURfSU5URUdFUl9SRSArICcpPycgKyAnIycgKyAnKCcgKyBFWFBPTkVOVF9SRSArICcpPyc7XG5cbiAgY29uc3QgTlVNQkVSX1JFID0gJ1xcXFxiKCcgKyBCQVNFRF9MSVRFUkFMX1JFICsgJ3wnICsgREVDSU1BTF9MSVRFUkFMX1JFICsgJyknO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhY2Nlc3NcIixcbiAgICBcImFmdGVyXCIsXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiYWxsXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFzc2VydFwiLFxuICAgIFwiYXNzdW1lXCIsXG4gICAgXCJhc3N1bWVfZ3VhcmFudGVlXCIsXG4gICAgXCJhdHRyaWJ1dGVcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJibG9ja1wiLFxuICAgIFwiYm9keVwiLFxuICAgIFwiYnVmZmVyXCIsXG4gICAgXCJidXNcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNvbXBvbmVudFwiLFxuICAgIFwiY29uZmlndXJhdGlvblwiLFxuICAgIFwiY29uc3RhbnRcIixcbiAgICBcImNvbnRleHRcIixcbiAgICBcImNvdmVyXCIsXG4gICAgXCJkaXNjb25uZWN0XCIsXG4gICAgXCJkb3dudG9cIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImVsc2VcIixcbiAgICBcImVsc2lmXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImVudGl0eVwiLFxuICAgIFwiZXhpdFwiLFxuICAgIFwiZmFpcm5lc3NcIixcbiAgICBcImZpbGVcIixcbiAgICBcImZvclwiLFxuICAgIFwiZm9yY2VcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJnZW5lcmF0ZVwiLFxuICAgIFwiZ2VuZXJpY1wiLFxuICAgIFwiZ3JvdXBcIixcbiAgICBcImd1YXJkZWRcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXB1cmVcIixcbiAgICBcImluXCIsXG4gICAgXCJpbmVydGlhbFwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImlzXCIsXG4gICAgXCJsYWJlbFwiLFxuICAgIFwibGlicmFyeVwiLFxuICAgIFwibGlua2FnZVwiLFxuICAgIFwibGl0ZXJhbFwiLFxuICAgIFwibG9vcFwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIm5hbmRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibmV4dFwiLFxuICAgIFwibm9yXCIsXG4gICAgXCJub3RcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm9mXCIsXG4gICAgXCJvblwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm90aGVyc1wiLFxuICAgIFwib3V0XCIsXG4gICAgXCJwYWNrYWdlXCIsXG4gICAgXCJwYXJhbWV0ZXJcIixcbiAgICBcInBvcnRcIixcbiAgICBcInBvc3Rwb25lZFwiLFxuICAgIFwicHJvY2VkdXJlXCIsXG4gICAgXCJwcm9jZXNzXCIsXG4gICAgXCJwcm9wZXJ0eVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwdXJlXCIsXG4gICAgXCJyYW5nZVwiLFxuICAgIFwicmVjb3JkXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwicmVqZWN0XCIsXG4gICAgXCJyZWxlYXNlXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInJlcG9ydFwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInJlc3RyaWN0X2d1YXJhbnRlZVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJyb2xcIixcbiAgICBcInJvclwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZXF1ZW5jZVwiLFxuICAgIFwic2V2ZXJpdHlcIixcbiAgICBcInNoYXJlZFwiLFxuICAgIFwic2lnbmFsXCIsXG4gICAgXCJzbGFcIixcbiAgICBcInNsbFwiLFxuICAgIFwic3JhXCIsXG4gICAgXCJzcmxcIixcbiAgICBcInN0cm9uZ1wiLFxuICAgIFwic3VidHlwZVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICBcInRyYW5zcG9ydFwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidW5hZmZlY3RlZFwiLFxuICAgIFwidW5pdHNcIixcbiAgICBcInVudGlsXCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInZhcmlhYmxlXCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJ2bW9kZVwiLFxuICAgIFwidnByb3BcIixcbiAgICBcInZ1bml0XCIsXG4gICAgXCJ3YWl0XCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwieG5vclwiLFxuICAgIFwieG9yXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYm9vbGVhblwiLFxuICAgIFwiYml0XCIsXG4gICAgXCJjaGFyYWN0ZXJcIixcbiAgICBcImludGVnZXJcIixcbiAgICBcInRpbWVcIixcbiAgICBcImRlbGF5X2xlbmd0aFwiLFxuICAgIFwibmF0dXJhbFwiLFxuICAgIFwicG9zaXRpdmVcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwiYml0X3ZlY3RvclwiLFxuICAgIFwiZmlsZV9vcGVuX2tpbmRcIixcbiAgICBcImZpbGVfb3Blbl9zdGF0dXNcIixcbiAgICBcInN0ZF9sb2dpY1wiLFxuICAgIFwic3RkX2xvZ2ljX3ZlY3RvclwiLFxuICAgIFwidW5zaWduZWRcIixcbiAgICBcInNpZ25lZFwiLFxuICAgIFwiYm9vbGVhbl92ZWN0b3JcIixcbiAgICBcImludGVnZXJfdmVjdG9yXCIsXG4gICAgXCJzdGRfdWxvZ2ljXCIsXG4gICAgXCJzdGRfdWxvZ2ljX3ZlY3RvclwiLFxuICAgIFwidW5yZXNvbHZlZF91bnNpZ25lZFwiLFxuICAgIFwidV91bnNpZ25lZFwiLFxuICAgIFwidW5yZXNvbHZlZF9zaWduZWRcIixcbiAgICBcInVfc2lnbmVkXCIsXG4gICAgXCJyZWFsX3ZlY3RvclwiLFxuICAgIFwidGltZV92ZWN0b3JcIlxuICBdO1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAvLyBzZXZlcml0eV9sZXZlbFxuICAgIFwiZmFsc2VcIixcbiAgICBcInRydWVcIixcbiAgICBcIm5vdGVcIixcbiAgICBcIndhcm5pbmdcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJmYWlsdXJlXCIsXG4gICAgLy8gdGV4dGlvXG4gICAgXCJsaW5lXCIsXG4gICAgXCJ0ZXh0XCIsXG4gICAgXCJzaWRlXCIsXG4gICAgXCJ3aWR0aFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVkhETCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGlsbGVnYWw6IC9cXHsvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCAvLyBWSERMLTIwMDggYmxvY2sgY29tbWVudGluZy5cbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IE5VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJyhVfFh8MHwxfFp8V3xMfEh8LSlcXCcnLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdcXCdbQS1aYS16XShfP1tBLVphLXowLTldKSonLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2aGRsO1xuIiwgIi8qXG5MYW5ndWFnZTogVmltIFNjcmlwdFxuQXV0aG9yOiBKdW4gWWFuZyA8eWFuZ2p2bkAxMjYuY29tPlxuRGVzY3JpcHRpb246IGZ1bGwga2V5d29yZCBhbmQgYnVpbHQtaW4gZnJvbSBodHRwOi8vdmltZG9jLnNvdXJjZWZvcmdlLm5ldC9odG1sZG9jL1xuV2Vic2l0ZTogaHR0cHM6Ly93d3cudmltLm9yZ1xuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gdmltKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmltIFNjcmlwdCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvWyEjQFxcd10rLyxcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIGV4cHJlc3MgdmVyc2lvbiBleGNlcHQ6ICEgJiAqIDwgPSA+ICEhICMgQCBAQFxuICAgICAgICAnTnwwIFB8MCBYfDAgYXwwIGFiIGFiYyBhYm8gYWwgYW0gYW58MCBhciBhcmdhIGFyZ2QgYXJnZSBhcmdkbyBhcmdnIGFyZ2wgYXJndSBhcyBhdSBhdWcgYXVuIGJ8MCBiTiBiYSBiYWQgYmQgYmUgYmVsIGJmIGJsIGJtIGJuIGJvIGJwIGJyIGJyZWEgYnJlYWthIGJyZWFrZCBicmVha2wgYnJvIGJ1ZmRvIGJ1ZmZlcnMgYnVuIGJ3IGN8MCBjTiBjTmYgY2EgY2FiYyBjYWRkYiBjYWQgY2FkZGYgY2FsIGNhdCBjYiBjYyBjY2wgY2QgY2UgY2V4IGNmIGNmaXIgY2dldGIgY2dldGUgY2cgY2hhbmdlcyBjaGQgY2hlIGNoZWNrdCBjbCBjbGEgY2xvIGNtIGNtYXBjIGNtZSBjbiBjbmV3IGNuZiBjbm8gY25vcmVhIGNub3JlbWUgY28gY29sIGNvbG8gY29tIGNvbWMgY29tcCBjb24gY29uZiBjb3BlICdcbiAgICAgICAgKyAnY3AgY3BmIGNxIGNyIGNzIGNzdCBjdSBjdW5hIGN1bm1lIGN3IGRlbG0gZGViIGRlYnVnZyBkZWxjIGRlbGYgZGlmIGRpZmZnIGRpZmZvIGRpZmZwIGRpZmZwdSBkaWZmcyBkaWZmdGhpcyBkaWcgZGkgZGwgZGVsbCBkaiBkbGkgZG8gZG9hdXRvYSBkcCBkciBkcyBkc3AgZXwwIGVhIGVjIGVjaG9lIGVjaG9oIGVjaG9tIGVjaG9uIGVsIGVsc2VpIGVtIGVuIGVuZGZvIGVuZGYgZW5kdCBlbmR3IGVuZSBleCBleGUgZXhpIGV4dSBmfDAgZmlsZXMgZmlsZXQgZmluIGZpbmEgZmluaSBmaXIgZml4IGZvIGZvbGRjIGZvbGRkIGZvbGRkb2MgZm9sZG8gZm9yIGZ1IGdvIGdyIGdyZXBhIGd1IGd2IGhhIGhlbHBmIGhlbHBnIGhlbHB0IGhpIGhpZCBoaXMgaWEgaWFiYyBpZiBpaiBpbCBpbSBpbWFwYyAnXG4gICAgICAgICsgJ2ltZSBpbm8gaW5vcmVhIGlub3JlbWUgaW50IGlzIGlzcCBpdSBpdW5hIGl1bm1lIGp8MCBqdSBrfDAga2VlcGEga2VlIGtlZXBqIGxOIGxOZiBsfDAgbGFkIGxhZGRiIGxhZGRmIGxhIGxhbiBsYXQgbGIgbGMgbGNoIGxjbCBsY3MgbGUgbGVmdGEgbGV0IGxleCBsZiBsZmlyIGxnZXRiIGxnZXRlIGxnIGxnciBsZ3JlcGEgbGggbGwgbGxhIGxsaSBsbWFrIGxtIGxtYXBjIGxuZSBsbmV3IGxuZiBsbiBsb2FkayBsbyBsb2MgbG9ja3YgbG9sIGxvcGUgbHAgbHBmIGxyIGxzIGx0IGx1IGx1YSBsdWFkIGx1YWYgbHYgbHZpbWdyZXBhIGx3IG18MCBtYSBtYWsgbWFwIG1hcGMgbWFya3MgbWF0IG1lIG1lbnV0IG1lcyBtayBta3MgbWtzcCBta3YgbWt2aWUgbW9kIG16IG16ZiBuYmMgbmIgbmJzIG5ldyBubSBubWFwYyBubWUgbm4gbm5vcmVtZSBub2Egbm8gbm9oIG5vcmVhIG5vcmVtZSBub3JtIG51IG51biBudW5tZSBvbCBvfDAgb20gb21hcGMgb21lIG9uIG9ubyBvbm9yZW1lIG9wdCBvdSBvdW5tZSBvdyBwfDAgJ1xuICAgICAgICArICdwcm9mZCBwcm9mIHBybyBwcm9tcHRyIHBjIHBlZCBwZSBwZXJsZCBwbyBwb3B1IHBwIHByZSBwcmV2IHBzIHB0IHB0TiBwdGYgcHRqIHB0bCBwdG4gcHRwIHB0ciBwdHMgcHUgcHcgcHkzIHB5dGhvbjMgcHkzZCBweTNmIHB5IHB5ZCBweWYgcXVpdGEgcWEgcmVjIHJlZCByZWRpIHJlZHIgcmVkcmF3cyByZWcgcmVzIHJldCByZXR1IHJldyByaSByaWdodGIgcnViIHJ1YnlkIHJ1YnlmIHJ1bmQgcnUgcnYgc04gc2FuIHNhIHNhbCBzYXYgc2Igc2JOIHNiYSBzYmYgc2JsIHNibSBzYm4gc2JwIHNiciBzY3JpcCBzY3JpcHRlIHNjcyBzZSBzZXRmIHNldGcgc2V0bCBzZiBzZmlyIHNoIHNpbSBzaWcgc2lsIHNsIHNsYSBzbSBzbWFwIHNtYXBjIHNtZSBzbiBzbmkgc25vIHNub3Igc25vcmVtZSBzb3IgJ1xuICAgICAgICArICdzbyBzcGVsbGQgc3BlIHNwZWxsaSBzcGVsbHIgc3BlbGx1IHNwZWxsdyBzcCBzcHIgc3JlIHN0IHN0YSBzdGFydGcgc3RhcnRyIHN0YXIgc3RvcGkgc3RqIHN0cyBzdW4gc3VubSBzdW5tZSBzdXMgc3Ygc3cgc3kgc3ludGkgc3luYyB0TiB0YWJOIHRhYmMgdGFiZG8gdGFiZSB0YWJmIHRhYmZpciB0YWJsIHRhYm0gdGFibmV3ICdcbiAgICAgICAgKyAndGFibiB0YWJvIHRhYnAgdGFiciB0YWJzIHRhYiB0YSB0YWdzIHRjIHRjbGQgdGNsZiB0ZSB0ZiB0aCB0aiB0bCB0bSB0biB0byB0cCB0ciB0cnkgdHMgdHUgdXwwIHVuZG9qIHVuZG9sIHVuYSB1bmggdW5sIHVubG8gdW5tIHVubWUgdW5zIHVwIHZlIHZlcmIgdmVydCB2aW0gdmltZ3JlcGEgdmkgdml1IHZpZSB2bSB2bWFwYyB2bWUgdm5lIHZuIHZub3JlbWUgdnMgdnUgdnVubWUgd2luZG8gd3wwIHdOIHdhIHdoIHdpIHdpbmMgd2lucCB3biB3cCB3cSB3cWEgd3Mgd3Ugd3YgeHwwIHhhIHhtYXBjIHhtIHhtZSB4biB4bm9yZW1lIHh1IHh1bm1lIHl8MCB6fDAgfiAnXG4gICAgICAgIC8vIGZ1bGwgdmVyc2lvblxuICAgICAgICArICdOZXh0IFByaW50IGFwcGVuZCBhYmJyZXZpYXRlIGFiY2xlYXIgYWJvdmVsZWZ0IGFsbCBhbWVudSBhbm9yZW1lbnUgYXJncyBhcmdhZGQgYXJnZGVsZXRlIGFyZ2VkaXQgYXJnZ2xvYmFsIGFyZ2xvY2FsIGFyZ3VtZW50IGFzY2lpIGF1dG9jbWQgYXVncm91cCBhdW5tZW51IGJ1ZmZlciBiTmV4dCBiYWxsIGJhZGQgYmRlbGV0ZSBiZWhhdmUgYmVsb3dyaWdodCBiZmlyc3QgYmxhc3QgYm1vZGlmaWVkIGJuZXh0IGJvdHJpZ2h0IGJwcmV2aW91cyBicmV3aW5kIGJyZWFrIGJyZWFrYWRkIGJyZWFrZGVsIGJyZWFrbGlzdCBicm93c2UgYnVubG9hZCAnXG4gICAgICAgICsgJ2J3aXBlb3V0IGNoYW5nZSBjTmV4dCBjTmZpbGUgY2FiYnJldiBjYWJjbGVhciBjYWRkYnVmZmVyIGNhZGRleHByIGNhZGRmaWxlIGNhbGwgY2F0Y2ggY2J1ZmZlciBjY2xvc2UgY2VudGVyIGNleHByIGNmaWxlIGNmaXJzdCBjZ2V0YnVmZmVyIGNnZXRleHByIGNnZXRmaWxlIGNoZGlyIGNoZWNrcGF0aCBjaGVja3RpbWUgY2xpc3QgY2xhc3QgY2xvc2UgY21hcCBjbWFwY2xlYXIgY21lbnUgY25leHQgY25ld2VyIGNuZmlsZSBjbm9yZW1hcCBjbm9yZWFiYnJldiBjbm9yZW1lbnUgY29weSBjb2xkZXIgY29sb3JzY2hlbWUgY29tbWFuZCBjb21jbGVhciBjb21waWxlciBjb250aW51ZSBjb25maXJtIGNvcGVuIGNwcmV2aW91cyBjcGZpbGUgY3F1aXQgY3Jld2luZCBjc2NvcGUgY3N0YWcgY3VubWFwICdcbiAgICAgICAgKyAnY3VuYWJicmV2IGN1bm1lbnUgY3dpbmRvdyBkZWxldGUgZGVsbWFya3MgZGVidWcgZGVidWdncmVlZHkgZGVsY29tbWFuZCBkZWxmdW5jdGlvbiBkaWZmdXBkYXRlIGRpZmZnZXQgZGlmZm9mZiBkaWZmcGF0Y2ggZGlmZnB1dCBkaWZmc3BsaXQgZGlncmFwaHMgZGlzcGxheSBkZWxldGVsIGRqdW1wIGRsaXN0IGRvYXV0b2NtZCBkb2F1dG9hbGwgZGVsZXRlcCBkcm9wIGRzZWFyY2ggZHNwbGl0IGVkaXQgZWFybGllciBlY2hvIGVjaG9lcnIgZWNob2hsIGVjaG9tc2cgZWxzZSBlbHNlaWYgZW1lbnUgZW5kaWYgZW5kZm9yICdcbiAgICAgICAgKyAnZW5kZnVuY3Rpb24gZW5kdHJ5IGVuZHdoaWxlIGVuZXcgZXhlY3V0ZSBleGl0IGV4dXNhZ2UgZmlsZSBmaWxldHlwZSBmaW5kIGZpbmFsbHkgZmluaXNoIGZpcnN0IGZpeGRlbCBmb2xkIGZvbGRjbG9zZSBmb2xkZG9vcGVuIGZvbGRkb2Nsb3NlZCBmb2xkb3BlbiBmdW5jdGlvbiBnbG9iYWwgZ290byBncmVwIGdyZXBhZGQgZ3VpIGd2aW0gaGFyZGNvcHkgaGVscCBoZWxwZmluZCBoZWxwZ3JlcCBoZWxwdGFncyBoaWdobGlnaHQgaGlkZSBoaXN0b3J5IGluc2VydCBpYWJicmV2IGlhYmNsZWFyIGlqdW1wIGlsaXN0IGltYXAgJ1xuICAgICAgICArICdpbWFwY2xlYXIgaW1lbnUgaW5vcmVtYXAgaW5vcmVhYmJyZXYgaW5vcmVtZW51IGludHJvIGlzZWFyY2ggaXNwbGl0IGl1bm1hcCBpdW5hYmJyZXYgaXVubWVudSBqb2luIGp1bXBzIGtlZXBhbHQga2VlcG1hcmtzIGtlZXBqdW1wcyBsTmV4dCBsTmZpbGUgbGlzdCBsYWRkZXhwciBsYWRkYnVmZmVyIGxhZGRmaWxlIGxhc3QgbGFuZ3VhZ2UgbGF0ZXIgbGJ1ZmZlciBsY2QgbGNoZGlyIGxjbG9zZSBsY3Njb3BlIGxlZnQgbGVmdGFib3ZlIGxleHByIGxmaWxlIGxmaXJzdCBsZ2V0YnVmZmVyIGxnZXRleHByIGxnZXRmaWxlIGxncmVwIGxncmVwYWRkIGxoZWxwZ3JlcCBsbGFzdCBsbGlzdCBsbWFrZSBsbWFwIGxtYXBjbGVhciBsbmV4dCBsbmV3ZXIgbG5maWxlIGxub3JlbWFwIGxvYWRrZXltYXAgbG9hZHZpZXcgJ1xuICAgICAgICArICdsb2NrbWFya3MgbG9ja3ZhciBsb2xkZXIgbG9wZW4gbHByZXZpb3VzIGxwZmlsZSBscmV3aW5kIGx0YWcgbHVubWFwIGx1YWRvIGx1YWZpbGUgbHZpbWdyZXAgbHZpbWdyZXBhZGQgbHdpbmRvdyBtb3ZlIG1hcmsgbWFrZSBtYXBjbGVhciBtYXRjaCBtZW51IG1lbnV0cmFuc2xhdGUgbWVzc2FnZXMgbWtleHJjIG1rc2Vzc2lvbiBta3NwZWxsIG1rdmltcmMgbWt2aWV3IG1vZGUgbXpzY2hlbWUgbXpmaWxlIG5iY2xvc2UgbmJrZXkgbmJzYXJ0IG5leHQgbm1hcCBubWFwY2xlYXIgbm1lbnUgbm5vcmVtYXAgJ1xuICAgICAgICArICdubm9yZW1lbnUgbm9hdXRvY21kIG5vcmVtYXAgbm9obHNlYXJjaCBub3JlYWJicmV2IG5vcmVtZW51IG5vcm1hbCBudW1iZXIgbnVubWFwIG51bm1lbnUgb2xkZmlsZXMgb3BlbiBvbWFwIG9tYXBjbGVhciBvbWVudSBvbmx5IG9ub3JlbWFwIG9ub3JlbWVudSBvcHRpb25zIG91bm1hcCBvdW5tZW51IG93bnN5bnRheCBwcmludCBwcm9mZGVsIHByb2ZpbGUgcHJvbXB0ZmluZCBwcm9tcHRyZXBsIHBjbG9zZSBwZWRpdCBwZXJsIHBlcmxkbyBwb3AgcG9wdXAgcHBvcCBwcmVzZXJ2ZSBwcmV2aW91cyBwc2VhcmNoIHB0YWcgcHROZXh0ICdcbiAgICAgICAgKyAncHRmaXJzdCBwdGp1bXAgcHRsYXN0IHB0bmV4dCBwdHByZXZpb3VzIHB0cmV3aW5kIHB0c2VsZWN0IHB1dCBwd2QgcHkzZG8gcHkzZmlsZSBweXRob24gcHlkbyBweWZpbGUgcXVpdCBxdWl0YWxsIHFhbGwgcmVhZCByZWNvdmVyIHJlZG8gcmVkaXIgcmVkcmF3IHJlZHJhd3N0YXR1cyByZWdpc3RlcnMgcmVzaXplIHJldGFiIHJldHVybiByZXdpbmQgcmlnaHQgcmlnaHRiZWxvdyBydWJ5IHJ1YnlkbyBydWJ5ZmlsZSBydW5kbyBydW50aW1lIHJ2aW1pbmZvIHN1YnN0aXR1dGUgc05leHQgc2FuZGJveCBzYXJndW1lbnQgc2FsbCBzYXZlYXMgc2J1ZmZlciBzYk5leHQgc2JhbGwgc2JmaXJzdCBzYmxhc3Qgc2Jtb2RpZmllZCBzYm5leHQgc2JwcmV2aW91cyBzYnJld2luZCBzY3JpcHRuYW1lcyBzY3JpcHRlbmNvZGluZyAnXG4gICAgICAgICsgJ3Njc2NvcGUgc2V0IHNldGZpbGV0eXBlIHNldGdsb2JhbCBzZXRsb2NhbCBzZmluZCBzZmlyc3Qgc2hlbGwgc2ltYWx0IHNpZ24gc2lsZW50IHNsZWVwIHNsYXN0IHNtYWdpYyBzbWFwY2xlYXIgc21lbnUgc25leHQgc25pZmYgc25vbWFnaWMgc25vcmVtYXAgc25vcmVtZW51IHNvcnQgc291cmNlIHNwZWxsZHVtcCBzcGVsbGdvb2Qgc3BlbGxpbmZvIHNwZWxscmVwYWxsIHNwZWxsdW5kbyBzcGVsbHdyb25nIHNwbGl0IHNwcmV2aW91cyBzcmV3aW5kIHN0b3Agc3RhZyBzdGFydGdyZXBsYWNlIHN0YXJ0cmVwbGFjZSAnXG4gICAgICAgICsgJ3N0YXJ0aW5zZXJ0IHN0b3BpbnNlcnQgc3RqdW1wIHN0c2VsZWN0IHN1bmhpZGUgc3VubWFwIHN1bm1lbnUgc3VzcGVuZCBzdmlldyBzd2FwbmFtZSBzeW50YXggc3ludGltZSBzeW5jYmluZCB0TmV4dCB0YWJOZXh0IHRhYmNsb3NlIHRhYmVkaXQgdGFiZmluZCB0YWJmaXJzdCB0YWJsYXN0IHRhYm1vdmUgdGFibmV4dCB0YWJvbmx5IHRhYnByZXZpb3VzIHRhYnJld2luZCB0YWcgdGNsIHRjbGRvIHRjbGZpbGUgdGVhcm9mZiB0Zmlyc3QgdGhyb3cgdGp1bXAgdGxhc3QgdG1lbnUgdG5leHQgdG9wbGVmdCB0cHJldmlvdXMgJyArICd0cmV3aW5kIHRzZWxlY3QgdHVubWVudSB1bmRvIHVuZG9qb2luIHVuZG9saXN0IHVuYWJicmV2aWF0ZSB1bmhpZGUgdW5sZXQgdW5sb2NrdmFyIHVubWFwIHVubWVudSB1bnNpbGVudCB1cGRhdGUgdmdsb2JhbCB2ZXJzaW9uIHZlcmJvc2UgdmVydGljYWwgdmltZ3JlcCB2aW1ncmVwYWRkIHZpc3VhbCB2aXVzYWdlIHZpZXcgdm1hcCB2bWFwY2xlYXIgdm1lbnUgdm5ldyAnXG4gICAgICAgICsgJ3Zub3JlbWFwIHZub3JlbWVudSB2c3BsaXQgdnVubWFwIHZ1bm1lbnUgd3JpdGUgd05leHQgd2FsbCB3aGlsZSB3aW5zaXplIHdpbmNtZCB3aW5wb3Mgd25leHQgd3ByZXZpb3VzIHdxYWxsIHdzdmVyYiB3dW5kbyB3dmltaW5mbyB4aXQgeGFsbCB4bWFwY2xlYXIgeG1hcCB4bWVudSB4bm9yZW1hcCB4bm9yZW1lbnUgeHVubWFwIHh1bm1lbnUgeWFuaycsXG4gICAgICBidWlsdF9pbjogLy8gYnVpbHQgaW4gZnVuY1xuICAgICAgICAnc3luSUR0cmFucyBhdGFuMiByYW5nZSBtYXRjaGFyZyBkaWRfZmlsZXR5cGUgYXNpbiBmZWVka2V5cyB4b3IgYXJndiAnXG4gICAgICAgICsgJ2NvbXBsZXRlX2NoZWNrIGFkZCBnZXR3aW5wb3N4IGdldHFmbGlzdCBnZXR3aW5wb3N5IHNjcmVlbmNvbCAnXG4gICAgICAgICsgJ2NsZWFybWF0Y2hlcyBlbXB0eSBleHRlbmQgZ2V0Y21kcG9zIG16ZXZhbCBnYXJiYWdlY29sbGVjdCBzZXRyZWcgJ1xuICAgICAgICArICdjZWlsIHNxcnQgZGlmZl9obElEIGlucHV0c2VjcmV0IGdldCBnZXRmcGVybSBnZXRwaWQgZmlsZXdyaXRhYmxlICdcbiAgICAgICAgKyAnc2hpZnR3aWR0aCBtYXggc2luaCBpc2RpcmVjdG9yeSBzeW5JRCBzeXN0ZW0gaW5wdXRyZXN0b3JlIHdpbmxpbmUgJ1xuICAgICAgICArICdhdGFuIHZpc3VhbG1vZGUgaW5wdXRsaXN0IHRhYnBhZ2V3aW5uciByb3VuZCBnZXRyZWd0eXBlIG1hcGNoZWNrICdcbiAgICAgICAgKyAnaGFzbWFwdG8gaGlzdGRlbCBhcmdpZHggZmluZGZpbGUgc2hhMjU2IGV4aXN0cyB0b3VwcGVyIGdldGNtZGxpbmUgJ1xuICAgICAgICArICd0YWdsaXN0IHN0cmluZyBnZXRtYXRjaGVzIGJ1Zm5yIHN0cmZ0aW1lIHdpbndpZHRoIGJ1ZmV4aXN0cyAnXG4gICAgICAgICsgJ3N0cnRyYW5zIHRhYnBhZ2VidWZsaXN0IHNldGNtZHBvcyByZW1vdGVfcmVhZCBwcmludGYgc2V0bG9jbGlzdCAnXG4gICAgICAgICsgJ2dldHBvcyBnZXRsaW5lIGJ1Zndpbm5yIGZsb2F0Mm5yIGxlbiBnZXRjbWR0eXBlIGRpZmZfZmlsbGVyIGx1YWV2YWwgJ1xuICAgICAgICArICdyZXNvbHZlIGxpYmNhbGxuciBmb2xkY2xvc2VkZW5kIHJldmVyc2UgZmlsdGVyIGhhc19rZXkgYnVmbmFtZSAnXG4gICAgICAgICsgJ3N0cjJmbG9hdCBzdHJsZW4gc2V0bGluZSBnZXRjaGFybW9kIHNldGJ1ZnZhciBpbmRleCBzZWFyY2hwb3MgJ1xuICAgICAgICArICdzaGVsbGVzY2FwZSB1bmRvZmlsZSBmb2xkY2xvc2VkIHNldHFmbGlzdCBidWZsaXN0ZWQgc3RyY2hhcnMgc3RyMm5yICdcbiAgICAgICAgKyAndmlydGNvbCBmbG9vciByZW1vdmUgdW5kb3RyZWUgcmVtb3RlX2V4cHIgd2luaGVpZ2h0IGdldHRhYndpbnZhciAnXG4gICAgICAgICsgJ3JlbHRpbWUgY3Vyc29yIHRhYnBhZ2VuciBmaW5kZGlyIGxvY2FsdGltZSBhY29zIGdldGxvY2xpc3Qgc2VhcmNoICdcbiAgICAgICAgKyAndGFuaCBtYXRjaGVuZCByZW5hbWUgZ2V0dGFidmFyIHN0cmRpc3BsYXl3aWR0aCB0eXBlIGFicyBweTNldmFsICdcbiAgICAgICAgKyAnc2V0d2ludmFyIHRvbG93ZXIgd2lsZG1lbnVtb2RlIGxvZzEwIHNwZWxsc3VnZ2VzdCBidWZsb2FkZWQgJ1xuICAgICAgICArICdzeW5jb25jZWFsZWQgbmV4dG5vbmJsYW5rIHNlcnZlcjJjbGllbnQgY29tcGxldGUgc2V0dGFid2ludmFyICdcbiAgICAgICAgKyAnZXhlY3V0YWJsZSBpbnB1dCB3aW5jb2wgc2V0bWF0Y2hlcyBnZXRmdHlwZSBobElEIGlucHV0c2F2ZSAnXG4gICAgICAgICsgJ3NlYXJjaHBhaXIgb3Igc2NyZWVucm93IGxpbmUgc2V0dGFidmFyIGhpc3RhZGQgZGVlcGNvcHkgc3RycGFydCAnXG4gICAgICAgICsgJ3JlbW90ZV9wZWVrIGFuZCBldmFsIGdldGZ0aW1lIHN1Ym1hdGNoIHNjcmVlbmNoYXIgd2luc2F2ZXZpZXcgJ1xuICAgICAgICArICdtYXRjaGFkZCBta2RpciBzY3JlZW5hdHRyIGdldGZvbnRuYW1lIGxpYmNhbGwgcmVsdGltZXN0ciBnZXRmc2l6ZSAnXG4gICAgICAgICsgJ3dpbm5yIGludmVydCBwb3cgZ2V0YnVmbGluZSBieXRlMmxpbmUgc291bmRmb2xkIHJlcGVhdCBmbmFtZWVzY2FwZSAnXG4gICAgICAgICsgJ3RhZ2ZpbGVzIHNpbiBzdHJ3aWR0aCBzcGVsbGJhZHdvcmQgdHJ1bmMgbWFwYXJnIGxvZyBsaXNwaW5kZW50ICdcbiAgICAgICAgKyAnaG9zdG5hbWUgc2V0cG9zIGdsb2JwYXRoIHJlbW90ZV9mb3JlZ3JvdW5kIGdldGNoYXIgc3luSURhdHRyICdcbiAgICAgICAgKyAnZm5hbWVtb2RpZnkgY3Njb3BlX2Nvbm5lY3Rpb24gc3RyaWR4IHdpbmJ1Zm5yIGluZGVudCBtaW4gJ1xuICAgICAgICArICdjb21wbGV0ZV9hZGQgbnIyY2hhciBzZWFyY2hwYWlycG9zIGlucHV0ZGlhbG9nIHZhbHVlcyBtYXRjaGxpc3QgJ1xuICAgICAgICArICdpdGVtcyBobGV4aXN0cyBzdHJyaWR4IGJyb3dzZWRpciBleHBhbmQgZm1vZCBwYXRoc2hvcnRlbiBsaW5lMmJ5dGUgJ1xuICAgICAgICArICdhcmdjIGNvdW50IGdldHdpbnZhciBnbG9iIGZvbGR0ZXh0cmVzdWx0IGdldHJlZyBmb3JlZ3JvdW5kIGNvc2ggJ1xuICAgICAgICArICdtYXRjaGRlbGV0ZSBoYXMgY2hhcjJuciBzaW1wbGlmeSBoaXN0Z2V0IHNlYXJjaGRlY2wgaWNvbnYgJ1xuICAgICAgICArICd3aW5yZXN0Y21kIHB1bXZpc2libGUgd3JpdGVmaWxlIGZvbGRsZXZlbCBoYXNsb2NhbGRpciBrZXlzIGNvcyAnXG4gICAgICAgICsgJ21hdGNoc3RyIGZvbGR0ZXh0IGhpc3RuciB0YW4gdGVtcG5hbWUgZ2V0Y3dkIGJ5dGVpZHggZ2V0YnVmdmFyICdcbiAgICAgICAgKyAnaXNsb2NrZWQgZXNjYXBlIGV2ZW50aGFuZGxlciByZW1vdGVfc2VuZCBzZXJ2ZXJsaXN0IHdpbnJlc3R2aWV3ICdcbiAgICAgICAgKyAnc3luc3RhY2sgcHlldmFsIHByZXZub25ibGFuayByZWFkZmlsZSBjaW5kZW50IGZpbGVyZWFkYWJsZSBjaGFuZ2VuciAnXG4gICAgICAgICsgJ2V4cCdcbiAgICB9LFxuICAgIGlsbGVnYWw6IC87LyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuXG4gICAgICAvKlxuICAgICAgQSBkb3VibGUgcXVvdGUgY2FuIHN0YXJ0IGVpdGhlciBhIHN0cmluZyBvciBhIGxpbmUgY29tbWVudC4gU3RyaW5ncyBhcmVcbiAgICAgIGVuZGVkIGJlZm9yZSB0aGUgZW5kIG9mIGEgbGluZSBieSBhbm90aGVyIGRvdWJsZSBxdW90ZSBhbmQgY2FuIGNvbnRhaW5cbiAgICAgIGVzY2FwZWQgZG91YmxlLXF1b3RlcyBhbmQgcG9zdC1lc2NhcGVkIGxpbmUgYnJlYWtzLlxuXG4gICAgICBBbHNvLCBhbnkgZG91YmxlIHF1b3RlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lIGlzIGEgY29tbWVudCBidXQgd2VcbiAgICAgIGRvbid0IGhhbmRsZSB0aGF0IHByb3Blcmx5IGF0IHRoZSBtb21lbnQ6IGFueSBkb3VibGUgcXVvdGUgaW5zaWRlIHdpbGxcbiAgICAgIHR1cm4gdGhlbSBpbnRvIGEgc3RyaW5nLiBIYW5kbGluZyBpdCBwcm9wZXJseSB3aWxsIHJlcXVpcmUgYSBzbWFydGVyXG4gICAgICBwYXJzZXIuXG4gICAgICAqL1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogL1wiKFxcXFxcInxcXG5cXFxcfFteXCJcXG5dKSpcIi9cbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoJ1wiJywgJyQnKSxcblxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvW2J3dGdsc2F2XTpbXFx3XFxkX10rL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvXFxiKD86ZnVuY3Rpb258ZnVuY3Rpb24hKS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIGhsanMuSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogLzxbXFx3LV0rPi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmltO1xuIiwgIi8qXG5MYW5ndWFnZTogV2ViQXNzZW1ibHlcbldlYnNpdGU6IGh0dHBzOi8vd2ViYXNzZW1ibHkub3JnXG5EZXNjcmlwdGlvbjogIFdhc20gaXMgZGVzaWduZWQgYXMgYSBwb3J0YWJsZSBjb21waWxhdGlvbiB0YXJnZXQgZm9yIHByb2dyYW1taW5nIGxhbmd1YWdlcywgZW5hYmxpbmcgZGVwbG95bWVudCBvbiB0aGUgd2ViIGZvciBjbGllbnQgYW5kIHNlcnZlciBhcHBsaWNhdGlvbnMuXG5DYXRlZ29yeTogd2ViLCBjb21tb25cbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gd2FzbShobGpzKSB7XG4gIGhsanMucmVnZXg7XG4gIGNvbnN0IEJMT0NLX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoL1xcKDsvLCAvO1xcKS8pO1xuICBCTE9DS19DT01NRU5ULmNvbnRhaW5zLnB1c2goXCJzZWxmXCIpO1xuICBjb25zdCBMSU5FX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoLzs7LywgLyQvKTtcblxuICBjb25zdCBLV1MgPSBbXG4gICAgXCJhbnlmdW5jXCIsXG4gICAgXCJibG9ja1wiLFxuICAgIFwiYnJcIixcbiAgICBcImJyX2lmXCIsXG4gICAgXCJicl90YWJsZVwiLFxuICAgIFwiY2FsbFwiLFxuICAgIFwiY2FsbF9pbmRpcmVjdFwiLFxuICAgIFwiZGF0YVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZWxlbVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcImZ1bmNcIixcbiAgICBcImdsb2JhbC5nZXRcIixcbiAgICBcImdsb2JhbC5zZXRcIixcbiAgICBcImxvY2FsLmdldFwiLFxuICAgIFwibG9jYWwuc2V0XCIsXG4gICAgXCJsb2NhbC50ZWVcIixcbiAgICBcImdldF9nbG9iYWxcIixcbiAgICBcImdldF9sb2NhbFwiLFxuICAgIFwiZ2xvYmFsXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJsb2NhbFwiLFxuICAgIFwibG9vcFwiLFxuICAgIFwibWVtb3J5XCIsXG4gICAgXCJtZW1vcnkuZ3Jvd1wiLFxuICAgIFwibWVtb3J5LnNpemVcIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwibXV0XCIsXG4gICAgXCJub3BcIixcbiAgICBcIm9mZnNldFwiLFxuICAgIFwicGFyYW1cIixcbiAgICBcInJlc3VsdFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcInNldF9nbG9iYWxcIixcbiAgICBcInNldF9sb2NhbFwiLFxuICAgIFwic3RhcnRcIixcbiAgICBcInRhYmxlXCIsXG4gICAgXCJ0ZWVfbG9jYWxcIixcbiAgICBcInRoZW5cIixcbiAgICBcInR5cGVcIixcbiAgICBcInVucmVhY2hhYmxlXCJcbiAgXTtcblxuICBjb25zdCBGVU5DVElPTl9SRUZFUkVOQ0UgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgIC8oPzpmdW5jfGNhbGx8Y2FsbF9pbmRpcmVjdCkvLFxuICAgICAgL1xccysvLFxuICAgICAgL1xcJFteXFxzKV0rL1xuICAgIF0sXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH1cbiAgfTtcblxuICBjb25zdCBBUkdVTUVOVCA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBiZWdpbjogL1xcJFtcXHdfXSsvXG4gIH07XG5cbiAgY29uc3QgUEFSRU5TID0ge1xuICAgIG1hdGNoOiAvKFxcKCg/ITspfFxcKSkrLyxcbiAgICBjbGFzc05hbWU6IFwicHVuY3R1YXRpb25cIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiBcIm51bWJlclwiLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICAvLyBib3Jyb3dlZCBmcm9tIFByaXNtLCBUT0RPOiBzcGxpdCBvdXQgaW50byB2YXJpYW50c1xuICAgIG1hdGNoOiAvWystXT9cXGIoPzpcXGQoPzpfP1xcZCkqKD86XFwuXFxkKD86Xz9cXGQpKik/KD86W2VFXVsrLV0/XFxkKD86Xz9cXGQpKik/fDB4W1xcZGEtZkEtRl0oPzpfP1tcXGRhLWZBLUZdKSooPzpcXC5bXFxkYS1mQS1GXSg/Ol8/W1xcZGEtZkEtRF0pKik/KD86W3BQXVsrLV0/XFxkKD86Xz9cXGQpKik/KVxcYnxcXGJpbmZcXGJ8XFxibmFuKD86OjB4W1xcZGEtZkEtRl0oPzpfP1tcXGRhLWZBLURdKSopP1xcYi9cbiAgfTtcblxuICBjb25zdCBUWVBFID0ge1xuICAgIC8vIGxvb2stYWhlYWQgcHJldmVudHMgdXMgZnJvbSBnb2JibGluZyB1cCBvcGNvZGVzXG4gICAgbWF0Y2g6IC8oaTMyfGk2NHxmMzJ8ZjY0KSg/IVxcLikvLFxuICAgIGNsYXNzTmFtZTogXCJ0eXBlXCJcbiAgfTtcblxuICBjb25zdCBNQVRIX09QRVJBVElPTlMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIixcbiAgICAvLyBib3Jyb3dlZCBmcm9tIFByaXNtLCBUT0RPOiBzcGxpdCBvdXQgaW50byB2YXJpYW50c1xuICAgIG1hdGNoOiAvXFxiKGYzMnxmNjR8aTMyfGk2NCkoPzpcXC4oPzphYnN8YWRkfGFuZHxjZWlsfGNsenxjb25zdHxjb252ZXJ0X1tzdV1cXC9pKD86MzJ8NjQpfGNvcHlzaWdufGN0enxkZW1vdGVcXC9mNjR8ZGl2KD86X1tzdV0pP3xlcXo/fGV4dGVuZF9bc3VdXFwvaTMyfGZsb29yfGdlKD86X1tzdV0pP3xndCg/Ol9bc3VdKT98bGUoPzpfW3N1XSk/fGxvYWQoPzooPzo4fDE2fDMyKV9bc3VdKT98bHQoPzpfW3N1XSk/fG1heHxtaW58bXVsfG5lYXJlc3R8bmVnP3xvcnxwb3BjbnR8cHJvbW90ZVxcL2YzMnxyZWludGVycHJldFxcL1tmaV0oPzozMnw2NCl8cmVtX1tzdV18cm90W2xyXXxzaGx8c2hyX1tzdV18c3RvcmUoPzo4fDE2fDMyKT98c3FydHxzdWJ8dHJ1bmMoPzpfW3N1XVxcL2YoPzozMnw2NCkpP3x3cmFwXFwvaTY0fHhvcikpXFxiL1xuICB9O1xuXG4gIGNvbnN0IE9GRlNFVF9BTElHTiA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyg/Om9mZnNldHxhbGlnbikvLFxuICAgICAgL1xccyovLFxuICAgICAgLz0vXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJvcGVyYXRvclwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1dlYkFzc2VtYmx5JyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3Ll0rLyxcbiAgICAgIGtleXdvcmQ6IEtXU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIExJTkVfQ09NTUVOVCxcbiAgICAgIEJMT0NLX0NPTU1FTlQsXG4gICAgICBPRkZTRVRfQUxJR04sXG4gICAgICBBUkdVTUVOVCxcbiAgICAgIFBBUkVOUyxcbiAgICAgIEZVTkNUSU9OX1JFRkVSRU5DRSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBUWVBFLFxuICAgICAgTUFUSF9PUEVSQVRJT05TLFxuICAgICAgTlVNQkVSXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHdhc207XG4iLCAiLypcbkxhbmd1YWdlOiBXcmVuXG5EZXNjcmlwdGlvbjogVGhpbmsgU21hbGx0YWxrIGluIGEgTHVhLXNpemVkIHBhY2thZ2Ugd2l0aCBhIGRhc2ggb2YgRXJsYW5nIGFuZCB3cmFwcGVkIHVwIGluIGEgZmFtaWxpYXIsIG1vZGVybiBzeW50YXguXG5DYXRlZ29yeTogc2NyaXB0aW5nXG5BdXRob3I6IEBqb3NoZ29lYmVsXG5NYWludGFpbmVyOiBAam9zaGdvZWJlbFxuV2Vic2l0ZTogaHR0cHM6Ly93cmVuLmlvL1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHdyZW4oaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UX1JFID0gL1thLXpBLVpdXFx3Ki87XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYXNcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY29uc3RydWN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3JlaWduXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJpblwiLFxuICAgIFwiaXNcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJ2YXJcIixcbiAgICBcIndoaWxlXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiXG4gIF07XG4gIGNvbnN0IExBTkdVQUdFX1ZBUlMgPSBbXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJzdXBlclwiXG4gIF07XG4gIGNvbnN0IENPUkVfQ0xBU1NFUyA9IFtcbiAgICBcIkJvb2xcIixcbiAgICBcIkNsYXNzXCIsXG4gICAgXCJGaWJlclwiLFxuICAgIFwiRm5cIixcbiAgICBcIkxpc3RcIixcbiAgICBcIk1hcFwiLFxuICAgIFwiTnVsbFwiLFxuICAgIFwiTnVtXCIsXG4gICAgXCJPYmplY3RcIixcbiAgICBcIlJhbmdlXCIsXG4gICAgXCJTZXF1ZW5jZVwiLFxuICAgIFwiU3RyaW5nXCIsXG4gICAgXCJTeXN0ZW1cIlxuICBdO1xuICBjb25zdCBPUEVSQVRPUlMgPSBbXG4gICAgXCItXCIsXG4gICAgXCJ+XCIsXG4gICAgL1xcKi8sXG4gICAgXCIlXCIsXG4gICAgL1xcLlxcLlxcLi8sXG4gICAgL1xcLlxcLi8sXG4gICAgL1xcKy8sXG4gICAgXCI8PFwiLFxuICAgIFwiPj5cIixcbiAgICBcIj49XCIsXG4gICAgXCI8PVwiLFxuICAgIFwiPFwiLFxuICAgIFwiPlwiLFxuICAgIC9cXF4vLFxuICAgIC8hPS8sXG4gICAgLyEvLFxuICAgIC9cXGJpc1xcYi8sXG4gICAgXCI9PVwiLFxuICAgIFwiJiZcIixcbiAgICBcIiZcIixcbiAgICAvXFx8XFx8LyxcbiAgICAvXFx8LyxcbiAgICAvXFw/Oi8sXG4gICAgXCI9XCJcbiAgXTtcbiAgY29uc3QgRlVOQ1RJT04gPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiByZWdleC5jb25jYXQoL1xcYig/IShpZnx3aGlsZXxmb3J8ZWxzZXxzdXBlcilcXGIpLywgSURFTlRfUkUsIC8oPz1cXHMqWyh7XSkvKSxcbiAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIlxuICB9O1xuICBjb25zdCBGVU5DVElPTl9ERUZJTklUSU9OID0ge1xuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICByZWdleC5laXRoZXIoXG4gICAgICAgIHJlZ2V4LmNvbmNhdCgvXFxiKD8hKGlmfHdoaWxlfGZvcnxlbHNlfHN1cGVyKVxcYikvLCBJREVOVF9SRSksXG4gICAgICAgIHJlZ2V4LmVpdGhlciguLi5PUEVSQVRPUlMpXG4gICAgICApLFxuICAgICAgLyg/PVxccypcXChbXildK1xcKVxccypcXHspLyksXG4gICAgY2xhc3NOYW1lOiBcInRpdGxlLmZ1bmN0aW9uXCIsXG4gICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBzY29wZTogXCJwYXJhbXNcIixcbiAgICAgICAgICAgIG1hdGNoOiBJREVOVF9SRVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0gfVxuICB9O1xuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICBJREVOVF9SRSxcbiAgICAgICAgL1xccytpc1xccysvLFxuICAgICAgICBJREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSURFTlRfUkVcbiAgICAgIF0gfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICB9O1xuXG4gIGNvbnN0IE9QRVJBVE9SID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogcmVnZXguZWl0aGVyKC4uLk9QRVJBVE9SUyksXG4gICAgY2xhc3NOYW1lOiBcIm9wZXJhdG9yXCJcbiAgfTtcblxuICBjb25zdCBUUklQTEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogXCJzdHJpbmdcIixcbiAgICBiZWdpbjogL1wiXCJcIi8sXG4gICAgZW5kOiAvXCJcIlwiL1xuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogXCJwcm9wZXJ0eVwiLFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcLi8sIHJlZ2V4Lmxvb2thaGVhZChJREVOVF9SRSkpLFxuICAgIGVuZDogSURFTlRfUkUsXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZJRUxEID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogcmVnZXguY29uY2F0KC9cXGJfLywgSURFTlRfUkUpLFxuICAgIHNjb3BlOiBcInZhcmlhYmxlXCJcbiAgfTtcblxuICAvLyBDYW1lbENhc2VcbiAgY29uc3QgQ0xBU1NfUkVGRVJFTkNFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogL1xcYltBLVpdK1thLXpdKyhbQS1aXStbYS16XSspKi8sXG4gICAgc2NvcGU6IFwidGl0bGUuY2xhc3NcIixcbiAgICBrZXl3b3JkczogeyBfOiBDT1JFX0NMQVNTRVMgfVxuICB9O1xuXG4gIC8vIFRPRE86IGFkZCBjdXN0b20gbnVtYmVyIG1vZGVzXG4gIGNvbnN0IE5VTUJFUiA9IGhsanMuQ19OVU1CRVJfTU9ERTtcblxuICBjb25zdCBTRVRURVIgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIElERU5UX1JFLFxuICAgICAgL1xccyovLFxuICAgICAgLz0vLFxuICAgICAgL1xccyovLFxuICAgICAgL1xcKC8sXG4gICAgICBJREVOVF9SRSxcbiAgICAgIC9cXClcXHMqXFx7L1xuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwidGl0bGUuZnVuY3Rpb25cIixcbiAgICAgIDM6IFwib3BlcmF0b3JcIixcbiAgICAgIDY6IFwicGFyYW1zXCJcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgQ09NTUVOVF9ET0NTID0gaGxqcy5DT01NRU5UKFxuICAgIC9cXC9cXCpcXCovLFxuICAgIC9cXCpcXC8vLFxuICAgIHsgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9AW2Etel0rLyxcbiAgICAgICAgc2NvcGU6IFwiZG9jdGFnXCJcbiAgICAgIH0sXG4gICAgICBcInNlbGZcIlxuICAgIF0gfVxuICApO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBzY29wZTogXCJzdWJzdFwiLFxuICAgIGJlZ2luOiAvJVxcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBjb250YWluczogW1xuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBGSUVMRCxcbiAgICAgIE9QRVJBVE9SXG4gICAgXVxuICB9O1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgc2NvcGU6IFwic3RyaW5nXCIsXG4gICAgYmVnaW46IC9cIi8sXG4gICAgZW5kOiAvXCIvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBTVUJTVCxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwiY2hhci5lc2NhcGVcIixcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiAvXFxcXFxcXFx8XFxcXFtcIjAlYWJlZm5ydHZdLyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXFxceFswLTlBLUZdezJ9LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXFxcdVswLTlBLUZdezR9LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXFxcVVswLTlBLUZdezh9LyB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zLnB1c2goU1RSSU5HKTtcblxuICBjb25zdCBBTExfS1dTID0gW1xuICAgIC4uLktFWVdPUkRTLFxuICAgIC4uLkxBTkdVQUdFX1ZBUlMsXG4gICAgLi4uTElURVJBTFNcbiAgXTtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICBcIlxcXFxiKD8hXCIsXG4gICAgICBBTExfS1dTLmpvaW4oXCJ8XCIpLFxuICAgICAgXCJcXFxcYilcIixcbiAgICAgIC9bYS16QS1aX11cXHcqKD86Wz8hXXxcXGIpL1xuICAgICksXG4gICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCJcbiAgfTtcblxuICAvLyBUT0RPOiByZWNvbnNpZGVyIHRoaXMgaW4gdGhlIGZ1dHVyZVxuICBjb25zdCBBVFRSSUJVVEUgPSB7XG4gICAgLy8gc2NvcGU6IFwibWV0YVwiLFxuICAgIHNjb3BlOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgIC8jIT8vLFxuICAgICAgICAgIC9bQS1aYS16X10rKD89XFwoKS9cbiAgICAgICAgXSxcbiAgICAgICAgYmVnaW5TY29wZToge1xuICAgICAgICAgIC8vIDI6IFwiYXR0clwiXG4gICAgICAgIH0sXG4gICAgICAgIGtleXdvcmRzOiB7IGxpdGVyYWw6IExJVEVSQUxTIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gTlVNQkVSLFxuICAgICAgICAgIC8vIFZBUklBQkxFXG4gICAgICAgIF0sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyMhPy8sXG4gICAgICAgICAgL1tBLVphLXpfXSsvXG4gICAgICAgIF0sXG4gICAgICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgICAgICAvLyAyOiBcImF0dHJcIlxuICAgICAgICB9LFxuICAgICAgICBlbmQ6IC8kL1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiV3JlblwiLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogTEFOR1VBR0VfVkFSUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFLFxuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgVFJJUExFX1NUUklORyxcbiAgICAgIENPTU1FTlRfRE9DUyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDTEFTU19SRUZFUkVOQ0UsXG4gICAgICBDTEFTU19ERUZJTklUSU9OLFxuICAgICAgU0VUVEVSLFxuICAgICAgRlVOQ1RJT05fREVGSU5JVElPTixcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgT1BFUkFUT1IsXG4gICAgICBGSUVMRCxcbiAgICAgIFBST1BFUlRZLFxuICAgICAgVkFSSUFCTEVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd3JlbjtcbiIsICIvKlxuTGFuZ3VhZ2U6IEludGVsIHg4NiBBc3NlbWJseVxuQXV0aG9yOiBpbm5vY2VuYXQgPGlubm9jZW5hdEBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogeDg2IGFzc2VtYmx5IGxhbmd1YWdlIHVzaW5nIEludGVsJ3MgbW5lbW9uaWMgYW5kIE5BU00gc3ludGF4XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9YODZfYXNzZW1ibHlfbGFuZ3VhZ2VcbkNhdGVnb3J5OiBhc3NlbWJsZXJcbiovXG5cbmZ1bmN0aW9uIHg4NmFzbShobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0ludGVsIHg4NiBBc3NlbWJseScsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICdbLiVdPycgKyBobGpzLklERU5UX1JFLFxuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2xvY2sgcmVwIHJlcGUgcmVweiByZXBuZSByZXBueiB4YXF1aXJlIHhyZWxlYXNlIGJuZCBub2JuZCAnXG4gICAgICAgICsgJ2FhYSBhYWQgYWFtIGFhcyBhZGMgYWRkIGFuZCBhcnBsIGJiMF9yZXNldCBiYjFfcmVzZXQgYm91bmQgYnNmIGJzciBic3dhcCBidCBidGMgYnRyIGJ0cyBjYWxsIGNidyBjZHEgY2RxZSBjbGMgY2xkIGNsaSBjbHRzIGNtYyBjbXAgY21wc2IgY21wc2QgY21wc3EgY21wc3cgY21weGNoZyBjbXB4Y2hnNDg2IGNtcHhjaGc4YiBjbXB4Y2hnMTZiIGNwdWlkIGNwdV9yZWFkIGNwdV93cml0ZSBjcW8gY3dkIGN3ZGUgZGFhIGRhcyBkZWMgZGl2IGRtaW50IGVtbXMgZW50ZXIgZXF1IGYyeG0xIGZhYnMgZmFkZCBmYWRkcCBmYmxkIGZic3RwIGZjaHMgZmNsZXggZmNtb3ZiIGZjbW92YmUgZmNtb3ZlIGZjbW92bmIgZmNtb3ZuYmUgZmNtb3ZuZSBmY21vdm51IGZjbW92dSBmY29tIGZjb21pIGZjb21pcCBmY29tcCBmY29tcHAgZmNvcyBmZGVjc3RwIGZkaXNpIGZkaXYgZmRpdnAgZmRpdnIgZmRpdnJwIGZlbW1zIGZlbmkgZmZyZWUgZmZyZWVwIGZpYWRkIGZpY29tIGZpY29tcCBmaWRpdiBmaWRpdnIgZmlsZCBmaW11bCBmaW5jc3RwIGZpbml0IGZpc3QgZmlzdHAgZmlzdHRwIGZpc3ViIGZpc3ViciBmbGQgZmxkMSBmbGRjdyBmbGRlbnYgZmxkbDJlIGZsZGwydCBmbGRsZzIgZmxkbG4yIGZsZHBpIGZsZHogZm11bCBmbXVscCBmbmNsZXggZm5kaXNpIGZuZW5pIGZuaW5pdCBmbm9wIGZuc2F2ZSBmbnN0Y3cgZm5zdGVudiBmbnN0c3cgZnBhdGFuIGZwcmVtIGZwcmVtMSBmcHRhbiBmcm5kaW50IGZyc3RvciBmc2F2ZSBmc2NhbGUgZnNldHBtIGZzaW4gZnNpbmNvcyBmc3FydCBmc3QgZnN0Y3cgZnN0ZW52IGZzdHAgZnN0c3cgZnN1YiBmc3VicCBmc3ViciBmc3VicnAgZnRzdCBmdWNvbSBmdWNvbWkgZnVjb21pcCBmdWNvbXAgZnVjb21wcCBmeGFtIGZ4Y2ggZnh0cmFjdCBmeWwyeCBmeWwyeHAxIGhsdCBpYnRzIGljZWJwIGlkaXYgaW11bCBpbiBpbmMgaW5jYmluIGluc2IgaW5zZCBpbnN3IGludCBpbnQwMSBpbnQxIGludDAzIGludDMgaW50byBpbnZkIGludnBjaWQgaW52bHBnIGludmxwZ2EgaXJldCBpcmV0ZCBpcmV0cSBpcmV0dyBqY3h6IGplY3h6IGpyY3h6IGptcCBqbXBlIGxhaGYgbGFyIGxkcyBsZWEgbGVhdmUgbGVzIGxmZW5jZSBsZnMgbGdkdCBsZ3MgbGlkdCBsbGR0IGxtc3cgbG9hZGFsbCBsb2FkYWxsMjg2IGxvZHNiIGxvZHNkIGxvZHNxIGxvZHN3IGxvb3AgbG9vcGUgbG9vcG5lIGxvb3BueiBsb29weiBsc2wgbHNzIGx0ciBtZmVuY2UgbW9uaXRvciBtb3YgbW92ZCBtb3ZxIG1vdnNiIG1vdnNkIG1vdnNxIG1vdnN3IG1vdnN4IG1vdnN4ZCBtb3Z6eCBtdWwgbXdhaXQgbmVnIG5vcCBub3Qgb3Igb3V0IG91dHNiIG91dHNkIG91dHN3IHBhY2tzc2R3IHBhY2tzc3diIHBhY2t1c3diIHBhZGRiIHBhZGRkIHBhZGRzYiBwYWRkc2l3IHBhZGRzdyBwYWRkdXNiIHBhZGR1c3cgcGFkZHcgcGFuZCBwYW5kbiBwYXVzZSBwYXZlYiBwYXZndXNiIHBjbXBlcWIgcGNtcGVxZCBwY21wZXF3IHBjbXBndGIgcGNtcGd0ZCBwY21wZ3R3IHBkaXN0aWIgcGYyaWQgcGZhY2MgcGZhZGQgcGZjbXBlcSBwZmNtcGdlIHBmY21wZ3QgcGZtYXggcGZtaW4gcGZtdWwgcGZyY3AgcGZyY3BpdDEgcGZyY3BpdDIgcGZyc3FpdDEgcGZyc3FydCBwZnN1YiBwZnN1YnIgcGkyZmQgcG1hY2hyaXcgcG1hZGR3ZCBwbWFndyBwbXVsaHJpdyBwbXVsaHJ3YSBwbXVsaHJ3YyBwbXVsaHcgcG11bGx3IHBtdmdlemIgcG12bHpiIHBtdm56YiBwbXZ6YiBwb3AgcG9wYSBwb3BhZCBwb3BhdyBwb3BmIHBvcGZkIHBvcGZxIHBvcGZ3IHBvciBwcmVmZXRjaCBwcmVmZXRjaHcgcHNsbGQgcHNsbHEgcHNsbHcgcHNyYWQgcHNyYXcgcHNybGQgcHNybHEgcHNybHcgcHN1YmIgcHN1YmQgcHN1YnNiIHBzdWJzaXcgcHN1YnN3IHBzdWJ1c2IgcHN1YnVzdyBwc3VidyBwdW5wY2toYncgcHVucGNraGRxIHB1bnBja2h3ZCBwdW5wY2tsYncgcHVucGNrbGRxIHB1bnBja2x3ZCBwdXNoIHB1c2hhIHB1c2hhZCBwdXNoYXcgcHVzaGYgcHVzaGZkIHB1c2hmcSBwdXNoZncgcHhvciByY2wgcmNyIHJkc2hyIHJkbXNyIHJkcG1jIHJkdHNjIHJkdHNjcCByZXQgcmV0ZiByZXRuIHJvbCByb3IgcmRtIHJzZGMgcnNsZHQgcnNtIHJzdHMgc2FoZiBzYWwgc2FsYyBzYXIgc2JiIHNjYXNiIHNjYXNkIHNjYXNxIHNjYXN3IHNmZW5jZSBzZ2R0IHNobCBzaGxkIHNociBzaHJkIHNpZHQgc2xkdCBza2luaXQgc21pIHNtaW50IHNtaW50b2xkIHNtc3cgc3RjIHN0ZCBzdGkgc3Rvc2Igc3Rvc2Qgc3Rvc3Egc3Rvc3cgc3RyIHN1YiBzdmRjIHN2bGR0IHN2dHMgc3dhcGdzIHN5c2NhbGwgc3lzZW50ZXIgc3lzZXhpdCBzeXNyZXQgdGVzdCB1ZDAgdWQxIHVkMmIgdWQyIHVkMmEgdW1vdiB2ZXJyIHZlcncgZndhaXQgd2JpbnZkIHdyc2hyIHdybXNyIHhhZGQgeGJ0cyB4Y2hnIHhsYXRiIHhsYXQgeG9yIGNtb3ZlIGNtb3Z6IGNtb3ZuZSBjbW92bnogY21vdmEgY21vdm5iZSBjbW92YWUgY21vdm5iIGNtb3ZiIGNtb3ZuYWUgY21vdmJlIGNtb3ZuYSBjbW92ZyBjbW92bmxlIGNtb3ZnZSBjbW92bmwgY21vdmwgY21vdm5nZSBjbW92bGUgY21vdm5nIGNtb3ZjIGNtb3ZuYyBjbW92byBjbW92bm8gY21vdnMgY21vdm5zIGNtb3ZwIGNtb3ZwZSBjbW92bnAgY21vdnBvIGplIGp6IGpuZSBqbnogamEgam5iZSBqYWUgam5iIGpiIGpuYWUgamJlIGpuYSBqZyBqbmxlIGpnZSBqbmwgamwgam5nZSBqbGUgam5nIGpjIGpuYyBqbyBqbm8ganMgam5zIGpwbyBqbnAganBlIGpwIHNldGUgc2V0eiBzZXRuZSBzZXRueiBzZXRhIHNldG5iZSBzZXRhZSBzZXRuYiBzZXRuYyBzZXRiIHNldG5hZSBzZXRjc2V0IHNldGJlIHNldG5hIHNldGcgc2V0bmxlIHNldGdlIHNldG5sIHNldGwgc2V0bmdlIHNldGxlIHNldG5nIHNldHMgc2V0bnMgc2V0byBzZXRubyBzZXRwZSBzZXRwIHNldHBvIHNldG5wIGFkZHBzIGFkZHNzIGFuZG5wcyBhbmRwcyBjbXBlcXBzIGNtcGVxc3MgY21wbGVwcyBjbXBsZXNzIGNtcGx0cHMgY21wbHRzcyBjbXBuZXFwcyBjbXBuZXFzcyBjbXBubGVwcyBjbXBubGVzcyBjbXBubHRwcyBjbXBubHRzcyBjbXBvcmRwcyBjbXBvcmRzcyBjbXB1bm9yZHBzIGNtcHVub3Jkc3MgY21wcHMgY21wc3MgY29taXNzIGN2dHBpMnBzIGN2dHBzMnBpIGN2dHNpMnNzIGN2dHNzMnNpIGN2dHRwczJwaSBjdnR0c3Myc2kgZGl2cHMgZGl2c3MgbGRteGNzciBtYXhwcyBtYXhzcyBtaW5wcyBtaW5zcyBtb3ZhcHMgbW92aHBzIG1vdmxocHMgbW92bHBzIG1vdmhscHMgbW92bXNrcHMgbW92bnRwcyBtb3ZzcyBtb3Z1cHMgbXVscHMgbXVsc3Mgb3JwcyByY3BwcyByY3BzcyByc3FydHBzIHJzcXJ0c3Mgc2h1ZnBzIHNxcnRwcyBzcXJ0c3Mgc3RteGNzciBzdWJwcyBzdWJzcyB1Y29taXNzIHVucGNraHBzIHVucGNrbHBzIHhvcnBzIGZ4cnN0b3IgZnhyc3RvcjY0IGZ4c2F2ZSBmeHNhdmU2NCB4Z2V0YnYgeHNldGJ2IHhzYXZlIHhzYXZlNjQgeHNhdmVvcHQgeHNhdmVvcHQ2NCB4cnN0b3IgeHJzdG9yNjQgcHJlZmV0Y2hudGEgcHJlZmV0Y2h0MCBwcmVmZXRjaHQxIHByZWZldGNodDIgbWFza21vdnEgbW92bnRxIHBhdmdiIHBhdmd3IHBleHRydyBwaW5zcncgcG1heHN3IHBtYXh1YiBwbWluc3cgcG1pbnViIHBtb3Ztc2tiIHBtdWxodXcgcHNhZGJ3IHBzaHVmdyBwZjJpdyBwZm5hY2MgcGZwbmFjYyBwaTJmdyBwc3dhcGQgbWFza21vdmRxdSBjbGZsdXNoIG1vdm50ZHEgbW92bnRpIG1vdm50cGQgbW92ZHFhIG1vdmRxdSBtb3ZkcTJxIG1vdnEyZHEgcGFkZHEgcG11bHVkcSBwc2h1ZmQgcHNodWZodyBwc2h1Zmx3IHBzbGxkcSBwc3JsZHEgcHN1YnEgcHVucGNraHFkcSBwdW5wY2tscWRxIGFkZHBkIGFkZHNkIGFuZG5wZCBhbmRwZCBjbXBlcXBkIGNtcGVxc2QgY21wbGVwZCBjbXBsZXNkIGNtcGx0cGQgY21wbHRzZCBjbXBuZXFwZCBjbXBuZXFzZCBjbXBubGVwZCBjbXBubGVzZCBjbXBubHRwZCBjbXBubHRzZCBjbXBvcmRwZCBjbXBvcmRzZCBjbXB1bm9yZHBkIGNtcHVub3Jkc2QgY21wcGQgY29taXNkIGN2dGRxMnBkIGN2dGRxMnBzIGN2dHBkMmRxIGN2dHBkMnBpIGN2dHBkMnBzIGN2dHBpMnBkIGN2dHBzMmRxIGN2dHBzMnBkIGN2dHNkMnNpIGN2dHNkMnNzIGN2dHNpMnNkIGN2dHNzMnNkIGN2dHRwZDJwaSBjdnR0cGQyZHEgY3Z0dHBzMmRxIGN2dHRzZDJzaSBkaXZwZCBkaXZzZCBtYXhwZCBtYXhzZCBtaW5wZCBtaW5zZCBtb3ZhcGQgbW92aHBkIG1vdmxwZCBtb3Ztc2twZCBtb3Z1cGQgbXVscGQgbXVsc2Qgb3JwZCBzaHVmcGQgc3FydHBkIHNxcnRzZCBzdWJwZCBzdWJzZCB1Y29taXNkIHVucGNraHBkIHVucGNrbHBkIHhvcnBkIGFkZHN1YnBkIGFkZHN1YnBzIGhhZGRwZCBoYWRkcHMgaHN1YnBkIGhzdWJwcyBsZGRxdSBtb3ZkZHVwIG1vdnNoZHVwIG1vdnNsZHVwIGNsZ2kgc3RnaSB2bWNhbGwgdm1jbGVhciB2bWZ1bmMgdm1sYXVuY2ggdm1sb2FkIHZtbWNhbGwgdm1wdHJsZCB2bXB0cnN0IHZtcmVhZCB2bXJlc3VtZSB2bXJ1biB2bXNhdmUgdm13cml0ZSB2bXhvZmYgdm14b24gaW52ZXB0IGludnZwaWQgcGFic2IgcGFic3cgcGFic2QgcGFsaWduciBwaGFkZHcgcGhhZGRkIHBoYWRkc3cgcGhzdWJ3IHBoc3ViZCBwaHN1YnN3IHBtYWRkdWJzdyBwbXVsaHJzdyBwc2h1ZmIgcHNpZ25iIHBzaWdudyBwc2lnbmQgZXh0cnEgaW5zZXJ0cSBtb3ZudHNkIG1vdm50c3MgbHpjbnQgYmxlbmRwZCBibGVuZHBzIGJsZW5kdnBkIGJsZW5kdnBzIGRwcGQgZHBwcyBleHRyYWN0cHMgaW5zZXJ0cHMgbW92bnRkcWEgbXBzYWRidyBwYWNrdXNkdyBwYmxlbmR2YiBwYmxlbmR3IHBjbXBlcXEgcGV4dHJiIHBleHRyZCBwZXh0cnEgcGhtaW5wb3N1dyBwaW5zcmIgcGluc3JkIHBpbnNycSBwbWF4c2IgcG1heHNkIHBtYXh1ZCBwbWF4dXcgcG1pbnNiIHBtaW5zZCBwbWludWQgcG1pbnV3IHBtb3ZzeGJ3IHBtb3ZzeGJkIHBtb3ZzeGJxIHBtb3ZzeHdkIHBtb3ZzeHdxIHBtb3ZzeGRxIHBtb3Z6eGJ3IHBtb3Z6eGJkIHBtb3Z6eGJxIHBtb3Z6eHdkIHBtb3Z6eHdxIHBtb3Z6eGRxIHBtdWxkcSBwbXVsbGQgcHRlc3Qgcm91bmRwZCByb3VuZHBzIHJvdW5kc2Qgcm91bmRzcyBjcmMzMiBwY21wZXN0cmkgcGNtcGVzdHJtIHBjbXBpc3RyaSBwY21waXN0cm0gcGNtcGd0cSBwb3BjbnQgZ2V0c2VjIHBmcmNwdiBwZnJzcXJ0diBtb3ZiZSBhZXNlbmMgYWVzZW5jbGFzdCBhZXNkZWMgYWVzZGVjbGFzdCBhZXNpbWMgYWVza2V5Z2VuYXNzaXN0IHZhZXNlbmMgdmFlc2VuY2xhc3QgdmFlc2RlYyB2YWVzZGVjbGFzdCB2YWVzaW1jIHZhZXNrZXlnZW5hc3Npc3QgdmFkZHBkIHZhZGRwcyB2YWRkc2QgdmFkZHNzIHZhZGRzdWJwZCB2YWRkc3VicHMgdmFuZHBkIHZhbmRwcyB2YW5kbnBkIHZhbmRucHMgdmJsZW5kcGQgdmJsZW5kcHMgdmJsZW5kdnBkIHZibGVuZHZwcyB2YnJvYWRjYXN0c3MgdmJyb2FkY2FzdHNkIHZicm9hZGNhc3RmMTI4IHZjbXBlcV9vc3BkIHZjbXBlcXBkIHZjbXBsdF9vc3BkIHZjbXBsdHBkIHZjbXBsZV9vc3BkIHZjbXBsZXBkIHZjbXB1bm9yZF9xcGQgdmNtcHVub3JkcGQgdmNtcG5lcV91cXBkIHZjbXBuZXFwZCB2Y21wbmx0X3VzcGQgdmNtcG5sdHBkIHZjbXBubGVfdXNwZCB2Y21wbmxlcGQgdmNtcG9yZF9xcGQgdmNtcG9yZHBkIHZjbXBlcV91cXBkIHZjbXBuZ2VfdXNwZCB2Y21wbmdlcGQgdmNtcG5ndF91c3BkIHZjbXBuZ3RwZCB2Y21wZmFsc2Vfb3FwZCB2Y21wZmFsc2VwZCB2Y21wbmVxX29xcGQgdmNtcGdlX29zcGQgdmNtcGdlcGQgdmNtcGd0X29zcGQgdmNtcGd0cGQgdmNtcHRydWVfdXFwZCB2Y21wdHJ1ZXBkIHZjbXBsdF9vcXBkIHZjbXBsZV9vcXBkIHZjbXB1bm9yZF9zcGQgdmNtcG5lcV91c3BkIHZjbXBubHRfdXFwZCB2Y21wbmxlX3VxcGQgdmNtcG9yZF9zcGQgdmNtcGVxX3VzcGQgdmNtcG5nZV91cXBkIHZjbXBuZ3RfdXFwZCB2Y21wZmFsc2Vfb3NwZCB2Y21wbmVxX29zcGQgdmNtcGdlX29xcGQgdmNtcGd0X29xcGQgdmNtcHRydWVfdXNwZCB2Y21wcGQgdmNtcGVxX29zcHMgdmNtcGVxcHMgdmNtcGx0X29zcHMgdmNtcGx0cHMgdmNtcGxlX29zcHMgdmNtcGxlcHMgdmNtcHVub3JkX3FwcyB2Y21wdW5vcmRwcyB2Y21wbmVxX3VxcHMgdmNtcG5lcXBzIHZjbXBubHRfdXNwcyB2Y21wbmx0cHMgdmNtcG5sZV91c3BzIHZjbXBubGVwcyB2Y21wb3JkX3FwcyB2Y21wb3JkcHMgdmNtcGVxX3VxcHMgdmNtcG5nZV91c3BzIHZjbXBuZ2VwcyB2Y21wbmd0X3VzcHMgdmNtcG5ndHBzIHZjbXBmYWxzZV9vcXBzIHZjbXBmYWxzZXBzIHZjbXBuZXFfb3FwcyB2Y21wZ2Vfb3NwcyB2Y21wZ2VwcyB2Y21wZ3Rfb3NwcyB2Y21wZ3RwcyB2Y21wdHJ1ZV91cXBzIHZjbXB0cnVlcHMgdmNtcGx0X29xcHMgdmNtcGxlX29xcHMgdmNtcHVub3JkX3NwcyB2Y21wbmVxX3VzcHMgdmNtcG5sdF91cXBzIHZjbXBubGVfdXFwcyB2Y21wb3JkX3NwcyB2Y21wZXFfdXNwcyB2Y21wbmdlX3VxcHMgdmNtcG5ndF91cXBzIHZjbXBmYWxzZV9vc3BzIHZjbXBuZXFfb3NwcyB2Y21wZ2Vfb3FwcyB2Y21wZ3Rfb3FwcyB2Y21wdHJ1ZV91c3BzIHZjbXBwcyB2Y21wZXFfb3NzZCB2Y21wZXFzZCB2Y21wbHRfb3NzZCB2Y21wbHRzZCB2Y21wbGVfb3NzZCB2Y21wbGVzZCB2Y21wdW5vcmRfcXNkIHZjbXB1bm9yZHNkIHZjbXBuZXFfdXFzZCB2Y21wbmVxc2QgdmNtcG5sdF91c3NkIHZjbXBubHRzZCB2Y21wbmxlX3Vzc2QgdmNtcG5sZXNkIHZjbXBvcmRfcXNkIHZjbXBvcmRzZCB2Y21wZXFfdXFzZCB2Y21wbmdlX3Vzc2QgdmNtcG5nZXNkIHZjbXBuZ3RfdXNzZCB2Y21wbmd0c2QgdmNtcGZhbHNlX29xc2QgdmNtcGZhbHNlc2QgdmNtcG5lcV9vcXNkIHZjbXBnZV9vc3NkIHZjbXBnZXNkIHZjbXBndF9vc3NkIHZjbXBndHNkIHZjbXB0cnVlX3Vxc2QgdmNtcHRydWVzZCB2Y21wbHRfb3FzZCB2Y21wbGVfb3FzZCB2Y21wdW5vcmRfc3NkIHZjbXBuZXFfdXNzZCB2Y21wbmx0X3Vxc2QgdmNtcG5sZV91cXNkIHZjbXBvcmRfc3NkIHZjbXBlcV91c3NkIHZjbXBuZ2VfdXFzZCB2Y21wbmd0X3Vxc2QgdmNtcGZhbHNlX29zc2QgdmNtcG5lcV9vc3NkIHZjbXBnZV9vcXNkIHZjbXBndF9vcXNkIHZjbXB0cnVlX3Vzc2QgdmNtcHNkIHZjbXBlcV9vc3NzIHZjbXBlcXNzIHZjbXBsdF9vc3NzIHZjbXBsdHNzIHZjbXBsZV9vc3NzIHZjbXBsZXNzIHZjbXB1bm9yZF9xc3MgdmNtcHVub3Jkc3MgdmNtcG5lcV91cXNzIHZjbXBuZXFzcyB2Y21wbmx0X3Vzc3MgdmNtcG5sdHNzIHZjbXBubGVfdXNzcyB2Y21wbmxlc3MgdmNtcG9yZF9xc3MgdmNtcG9yZHNzIHZjbXBlcV91cXNzIHZjbXBuZ2VfdXNzcyB2Y21wbmdlc3MgdmNtcG5ndF91c3NzIHZjbXBuZ3RzcyB2Y21wZmFsc2Vfb3FzcyB2Y21wZmFsc2VzcyB2Y21wbmVxX29xc3MgdmNtcGdlX29zc3MgdmNtcGdlc3MgdmNtcGd0X29zc3MgdmNtcGd0c3MgdmNtcHRydWVfdXFzcyB2Y21wdHJ1ZXNzIHZjbXBsdF9vcXNzIHZjbXBsZV9vcXNzIHZjbXB1bm9yZF9zc3MgdmNtcG5lcV91c3NzIHZjbXBubHRfdXFzcyB2Y21wbmxlX3Vxc3MgdmNtcG9yZF9zc3MgdmNtcGVxX3Vzc3MgdmNtcG5nZV91cXNzIHZjbXBuZ3RfdXFzcyB2Y21wZmFsc2Vfb3NzcyB2Y21wbmVxX29zc3MgdmNtcGdlX29xc3MgdmNtcGd0X29xc3MgdmNtcHRydWVfdXNzcyB2Y21wc3MgdmNvbWlzZCB2Y29taXNzIHZjdnRkcTJwZCB2Y3Z0ZHEycHMgdmN2dHBkMmRxIHZjdnRwZDJwcyB2Y3Z0cHMyZHEgdmN2dHBzMnBkIHZjdnRzZDJzaSB2Y3Z0c2Qyc3MgdmN2dHNpMnNkIHZjdnRzaTJzcyB2Y3Z0c3Myc2QgdmN2dHNzMnNpIHZjdnR0cGQyZHEgdmN2dHRwczJkcSB2Y3Z0dHNkMnNpIHZjdnR0c3Myc2kgdmRpdnBkIHZkaXZwcyB2ZGl2c2QgdmRpdnNzIHZkcHBkIHZkcHBzIHZleHRyYWN0ZjEyOCB2ZXh0cmFjdHBzIHZoYWRkcGQgdmhhZGRwcyB2aHN1YnBkIHZoc3VicHMgdmluc2VydGYxMjggdmluc2VydHBzIHZsZGRxdSB2bGRxcXUgdmxkbXhjc3Igdm1hc2ttb3ZkcXUgdm1hc2ttb3ZwcyB2bWFza21vdnBkIHZtYXhwZCB2bWF4cHMgdm1heHNkIHZtYXhzcyB2bWlucGQgdm1pbnBzIHZtaW5zZCB2bWluc3Mgdm1vdmFwZCB2bW92YXBzIHZtb3ZkIHZtb3ZxIHZtb3ZkZHVwIHZtb3ZkcWEgdm1vdnFxYSB2bW92ZHF1IHZtb3ZxcXUgdm1vdmhscHMgdm1vdmhwZCB2bW92aHBzIHZtb3ZsaHBzIHZtb3ZscGQgdm1vdmxwcyB2bW92bXNrcGQgdm1vdm1za3BzIHZtb3ZudGRxIHZtb3ZudHFxIHZtb3ZudGRxYSB2bW92bnRwZCB2bW92bnRwcyB2bW92c2Qgdm1vdnNoZHVwIHZtb3ZzbGR1cCB2bW92c3Mgdm1vdnVwZCB2bW92dXBzIHZtcHNhZGJ3IHZtdWxwZCB2bXVscHMgdm11bHNkIHZtdWxzcyB2b3JwZCB2b3JwcyB2cGFic2IgdnBhYnN3IHZwYWJzZCB2cGFja3Nzd2IgdnBhY2tzc2R3IHZwYWNrdXN3YiB2cGFja3VzZHcgdnBhZGRiIHZwYWRkdyB2cGFkZGQgdnBhZGRxIHZwYWRkc2IgdnBhZGRzdyB2cGFkZHVzYiB2cGFkZHVzdyB2cGFsaWduciB2cGFuZCB2cGFuZG4gdnBhdmdiIHZwYXZndyB2cGJsZW5kdmIgdnBibGVuZHcgdnBjbXBlc3RyaSB2cGNtcGVzdHJtIHZwY21waXN0cmkgdnBjbXBpc3RybSB2cGNtcGVxYiB2cGNtcGVxdyB2cGNtcGVxZCB2cGNtcGVxcSB2cGNtcGd0YiB2cGNtcGd0dyB2cGNtcGd0ZCB2cGNtcGd0cSB2cGVybWlscGQgdnBlcm1pbHBzIHZwZXJtMmYxMjggdnBleHRyYiB2cGV4dHJ3IHZwZXh0cmQgdnBleHRycSB2cGhhZGR3IHZwaGFkZGQgdnBoYWRkc3cgdnBobWlucG9zdXcgdnBoc3VidyB2cGhzdWJkIHZwaHN1YnN3IHZwaW5zcmIgdnBpbnNydyB2cGluc3JkIHZwaW5zcnEgdnBtYWRkd2QgdnBtYWRkdWJzdyB2cG1heHNiIHZwbWF4c3cgdnBtYXhzZCB2cG1heHViIHZwbWF4dXcgdnBtYXh1ZCB2cG1pbnNiIHZwbWluc3cgdnBtaW5zZCB2cG1pbnViIHZwbWludXcgdnBtaW51ZCB2cG1vdm1za2IgdnBtb3ZzeGJ3IHZwbW92c3hiZCB2cG1vdnN4YnEgdnBtb3ZzeHdkIHZwbW92c3h3cSB2cG1vdnN4ZHEgdnBtb3Z6eGJ3IHZwbW92enhiZCB2cG1vdnp4YnEgdnBtb3Z6eHdkIHZwbW92enh3cSB2cG1vdnp4ZHEgdnBtdWxodXcgdnBtdWxocnN3IHZwbXVsaHcgdnBtdWxsdyB2cG11bGxkIHZwbXVsdWRxIHZwbXVsZHEgdnBvciB2cHNhZGJ3IHZwc2h1ZmIgdnBzaHVmZCB2cHNodWZodyB2cHNodWZsdyB2cHNpZ25iIHZwc2lnbncgdnBzaWduZCB2cHNsbGRxIHZwc3JsZHEgdnBzbGx3IHZwc2xsZCB2cHNsbHEgdnBzcmF3IHZwc3JhZCB2cHNybHcgdnBzcmxkIHZwc3JscSB2cHRlc3QgdnBzdWJiIHZwc3VidyB2cHN1YmQgdnBzdWJxIHZwc3Vic2IgdnBzdWJzdyB2cHN1YnVzYiB2cHN1YnVzdyB2cHVucGNraGJ3IHZwdW5wY2tod2QgdnB1bnBja2hkcSB2cHVucGNraHFkcSB2cHVucGNrbGJ3IHZwdW5wY2tsd2QgdnB1bnBja2xkcSB2cHVucGNrbHFkcSB2cHhvciB2cmNwcHMgdnJjcHNzIHZyc3FydHBzIHZyc3FydHNzIHZyb3VuZHBkIHZyb3VuZHBzIHZyb3VuZHNkIHZyb3VuZHNzIHZzaHVmcGQgdnNodWZwcyB2c3FydHBkIHZzcXJ0cHMgdnNxcnRzZCB2c3FydHNzIHZzdG14Y3NyIHZzdWJwZCB2c3VicHMgdnN1YnNkIHZzdWJzcyB2dGVzdHBzIHZ0ZXN0cGQgdnVjb21pc2QgdnVjb21pc3MgdnVucGNraHBkIHZ1bnBja2hwcyB2dW5wY2tscGQgdnVucGNrbHBzIHZ4b3JwZCB2eG9ycHMgdnplcm9hbGwgdnplcm91cHBlciBwY2xtdWxscWxxZHEgcGNsbXVsaHFscWRxIHBjbG11bGxxaHFkcSBwY2xtdWxocWhxZHEgcGNsbXVscWRxIHZwY2xtdWxscWxxZHEgdnBjbG11bGhxbHFkcSB2cGNsbXVsbHFocWRxIHZwY2xtdWxocWhxZHEgdnBjbG11bHFkcSB2Zm1hZGQxMzJwcyB2Zm1hZGQxMzJwZCB2Zm1hZGQzMTJwcyB2Zm1hZGQzMTJwZCB2Zm1hZGQyMTNwcyB2Zm1hZGQyMTNwZCB2Zm1hZGQxMjNwcyB2Zm1hZGQxMjNwZCB2Zm1hZGQyMzFwcyB2Zm1hZGQyMzFwZCB2Zm1hZGQzMjFwcyB2Zm1hZGQzMjFwZCB2Zm1hZGRzdWIxMzJwcyB2Zm1hZGRzdWIxMzJwZCB2Zm1hZGRzdWIzMTJwcyB2Zm1hZGRzdWIzMTJwZCB2Zm1hZGRzdWIyMTNwcyB2Zm1hZGRzdWIyMTNwZCB2Zm1hZGRzdWIxMjNwcyB2Zm1hZGRzdWIxMjNwZCB2Zm1hZGRzdWIyMzFwcyB2Zm1hZGRzdWIyMzFwZCB2Zm1hZGRzdWIzMjFwcyB2Zm1hZGRzdWIzMjFwZCB2Zm1zdWIxMzJwcyB2Zm1zdWIxMzJwZCB2Zm1zdWIzMTJwcyB2Zm1zdWIzMTJwZCB2Zm1zdWIyMTNwcyB2Zm1zdWIyMTNwZCB2Zm1zdWIxMjNwcyB2Zm1zdWIxMjNwZCB2Zm1zdWIyMzFwcyB2Zm1zdWIyMzFwZCB2Zm1zdWIzMjFwcyB2Zm1zdWIzMjFwZCB2Zm1zdWJhZGQxMzJwcyB2Zm1zdWJhZGQxMzJwZCB2Zm1zdWJhZGQzMTJwcyB2Zm1zdWJhZGQzMTJwZCB2Zm1zdWJhZGQyMTNwcyB2Zm1zdWJhZGQyMTNwZCB2Zm1zdWJhZGQxMjNwcyB2Zm1zdWJhZGQxMjNwZCB2Zm1zdWJhZGQyMzFwcyB2Zm1zdWJhZGQyMzFwZCB2Zm1zdWJhZGQzMjFwcyB2Zm1zdWJhZGQzMjFwZCB2Zm5tYWRkMTMycHMgdmZubWFkZDEzMnBkIHZmbm1hZGQzMTJwcyB2Zm5tYWRkMzEycGQgdmZubWFkZDIxM3BzIHZmbm1hZGQyMTNwZCB2Zm5tYWRkMTIzcHMgdmZubWFkZDEyM3BkIHZmbm1hZGQyMzFwcyB2Zm5tYWRkMjMxcGQgdmZubWFkZDMyMXBzIHZmbm1hZGQzMjFwZCB2Zm5tc3ViMTMycHMgdmZubXN1YjEzMnBkIHZmbm1zdWIzMTJwcyB2Zm5tc3ViMzEycGQgdmZubXN1YjIxM3BzIHZmbm1zdWIyMTNwZCB2Zm5tc3ViMTIzcHMgdmZubXN1YjEyM3BkIHZmbm1zdWIyMzFwcyB2Zm5tc3ViMjMxcGQgdmZubXN1YjMyMXBzIHZmbm1zdWIzMjFwZCB2Zm1hZGQxMzJzcyB2Zm1hZGQxMzJzZCB2Zm1hZGQzMTJzcyB2Zm1hZGQzMTJzZCB2Zm1hZGQyMTNzcyB2Zm1hZGQyMTNzZCB2Zm1hZGQxMjNzcyB2Zm1hZGQxMjNzZCB2Zm1hZGQyMzFzcyB2Zm1hZGQyMzFzZCB2Zm1hZGQzMjFzcyB2Zm1hZGQzMjFzZCB2Zm1zdWIxMzJzcyB2Zm1zdWIxMzJzZCB2Zm1zdWIzMTJzcyB2Zm1zdWIzMTJzZCB2Zm1zdWIyMTNzcyB2Zm1zdWIyMTNzZCB2Zm1zdWIxMjNzcyB2Zm1zdWIxMjNzZCB2Zm1zdWIyMzFzcyB2Zm1zdWIyMzFzZCB2Zm1zdWIzMjFzcyB2Zm1zdWIzMjFzZCB2Zm5tYWRkMTMyc3MgdmZubWFkZDEzMnNkIHZmbm1hZGQzMTJzcyB2Zm5tYWRkMzEyc2QgdmZubWFkZDIxM3NzIHZmbm1hZGQyMTNzZCB2Zm5tYWRkMTIzc3MgdmZubWFkZDEyM3NkIHZmbm1hZGQyMzFzcyB2Zm5tYWRkMjMxc2QgdmZubWFkZDMyMXNzIHZmbm1hZGQzMjFzZCB2Zm5tc3ViMTMyc3MgdmZubXN1YjEzMnNkIHZmbm1zdWIzMTJzcyB2Zm5tc3ViMzEyc2QgdmZubXN1YjIxM3NzIHZmbm1zdWIyMTNzZCB2Zm5tc3ViMTIzc3MgdmZubXN1YjEyM3NkIHZmbm1zdWIyMzFzcyB2Zm5tc3ViMjMxc2QgdmZubXN1YjMyMXNzIHZmbm1zdWIzMjFzZCByZGZzYmFzZSByZGdzYmFzZSByZHJhbmQgd3Jmc2Jhc2Ugd3Jnc2Jhc2UgdmN2dHBoMnBzIHZjdnRwczJwaCBhZGN4IGFkb3ggcmRzZWVkIGNsYWMgc3RhYyB4c3RvcmUgeGNyeXB0ZWNiIHhjcnlwdGNiYyB4Y3J5cHRjdHIgeGNyeXB0Y2ZiIHhjcnlwdG9mYiBtb250bXVsIHhzaGExIHhzaGEyNTYgbGx3cGNiIHNsd3BjYiBsd3B2YWwgbHdwaW5zIHZmbWFkZHBkIHZmbWFkZHBzIHZmbWFkZHNkIHZmbWFkZHNzIHZmbWFkZHN1YnBkIHZmbWFkZHN1YnBzIHZmbXN1YmFkZHBkIHZmbXN1YmFkZHBzIHZmbXN1YnBkIHZmbXN1YnBzIHZmbXN1YnNkIHZmbXN1YnNzIHZmbm1hZGRwZCB2Zm5tYWRkcHMgdmZubWFkZHNkIHZmbm1hZGRzcyB2Zm5tc3VicGQgdmZubXN1YnBzIHZmbm1zdWJzZCB2Zm5tc3Vic3MgdmZyY3pwZCB2ZnJjenBzIHZmcmN6c2QgdmZyY3pzcyB2cGNtb3YgdnBjb21iIHZwY29tZCB2cGNvbXEgdnBjb211YiB2cGNvbXVkIHZwY29tdXEgdnBjb211dyB2cGNvbXcgdnBoYWRkYmQgdnBoYWRkYnEgdnBoYWRkYncgdnBoYWRkZHEgdnBoYWRkdWJkIHZwaGFkZHVicSB2cGhhZGR1YncgdnBoYWRkdWRxIHZwaGFkZHV3ZCB2cGhhZGR1d3EgdnBoYWRkd2QgdnBoYWRkd3EgdnBoc3ViYncgdnBoc3ViZHEgdnBoc3Vid2QgdnBtYWNzZGQgdnBtYWNzZHFoIHZwbWFjc2RxbCB2cG1hY3NzZGQgdnBtYWNzc2RxaCB2cG1hY3NzZHFsIHZwbWFjc3N3ZCB2cG1hY3Nzd3cgdnBtYWNzd2QgdnBtYWNzd3cgdnBtYWRjc3N3ZCB2cG1hZGNzd2QgdnBwZXJtIHZwcm90YiB2cHJvdGQgdnByb3RxIHZwcm90dyB2cHNoYWIgdnBzaGFkIHZwc2hhcSB2cHNoYXcgdnBzaGxiIHZwc2hsZCB2cHNobHEgdnBzaGx3IHZicm9hZGNhc3RpMTI4IHZwYmxlbmRkIHZwYnJvYWRjYXN0YiB2cGJyb2FkY2FzdHcgdnBicm9hZGNhc3RkIHZwYnJvYWRjYXN0cSB2cGVybWQgdnBlcm1wZCB2cGVybXBzIHZwZXJtcSB2cGVybTJpMTI4IHZleHRyYWN0aTEyOCB2aW5zZXJ0aTEyOCB2cG1hc2ttb3ZkIHZwbWFza21vdnEgdnBzbGx2ZCB2cHNsbHZxIHZwc3JhdmQgdnBzcmx2ZCB2cHNybHZxIHZnYXRoZXJkcGQgdmdhdGhlcnFwZCB2Z2F0aGVyZHBzIHZnYXRoZXJxcHMgdnBnYXRoZXJkZCB2cGdhdGhlcnFkIHZwZ2F0aGVyZHEgdnBnYXRoZXJxcSB4YWJvcnQgeGJlZ2luIHhlbmQgeHRlc3QgYW5kbiBiZXh0ciBibGNpIGJsY2ljIGJsc2kgYmxzaWMgYmxjZmlsbCBibHNmaWxsIGJsY21zayBibHNtc2sgYmxzciBibGNzIGJ6aGkgbXVseCBwZGVwIHBleHQgcm9yeCBzYXJ4IHNobHggc2hyeCB0emNudCB0em1zayB0MW1za2MgdmFsaWduZCB2YWxpZ25xIHZibGVuZG1wZCB2YmxlbmRtcHMgdmJyb2FkY2FzdGYzMng0IHZicm9hZGNhc3RmNjR4NCB2YnJvYWRjYXN0aTMyeDQgdmJyb2FkY2FzdGk2NHg0IHZjb21wcmVzc3BkIHZjb21wcmVzc3BzIHZjdnRwZDJ1ZHEgdmN2dHBzMnVkcSB2Y3Z0c2QydXNpIHZjdnRzczJ1c2kgdmN2dHRwZDJ1ZHEgdmN2dHRwczJ1ZHEgdmN2dHRzZDJ1c2kgdmN2dHRzczJ1c2kgdmN2dHVkcTJwZCB2Y3Z0dWRxMnBzIHZjdnR1c2kyc2QgdmN2dHVzaTJzcyB2ZXhwYW5kcGQgdmV4cGFuZHBzIHZleHRyYWN0ZjMyeDQgdmV4dHJhY3RmNjR4NCB2ZXh0cmFjdGkzMng0IHZleHRyYWN0aTY0eDQgdmZpeHVwaW1tcGQgdmZpeHVwaW1tcHMgdmZpeHVwaW1tc2QgdmZpeHVwaW1tc3MgdmdldGV4cHBkIHZnZXRleHBwcyB2Z2V0ZXhwc2QgdmdldGV4cHNzIHZnZXRtYW50cGQgdmdldG1hbnRwcyB2Z2V0bWFudHNkIHZnZXRtYW50c3Mgdmluc2VydGYzMng0IHZpbnNlcnRmNjR4NCB2aW5zZXJ0aTMyeDQgdmluc2VydGk2NHg0IHZtb3ZkcWEzMiB2bW92ZHFhNjQgdm1vdmRxdTMyIHZtb3ZkcXU2NCB2cGFic3EgdnBhbmRkIHZwYW5kbmQgdnBhbmRucSB2cGFuZHEgdnBibGVuZG1kIHZwYmxlbmRtcSB2cGNtcGx0ZCB2cGNtcGxlZCB2cGNtcG5lcWQgdnBjbXBubHRkIHZwY21wbmxlZCB2cGNtcGQgdnBjbXBsdHEgdnBjbXBsZXEgdnBjbXBuZXFxIHZwY21wbmx0cSB2cGNtcG5sZXEgdnBjbXBxIHZwY21wZXF1ZCB2cGNtcGx0dWQgdnBjbXBsZXVkIHZwY21wbmVxdWQgdnBjbXBubHR1ZCB2cGNtcG5sZXVkIHZwY21wdWQgdnBjbXBlcXVxIHZwY21wbHR1cSB2cGNtcGxldXEgdnBjbXBuZXF1cSB2cGNtcG5sdHVxIHZwY21wbmxldXEgdnBjbXB1cSB2cGNvbXByZXNzZCB2cGNvbXByZXNzcSB2cGVybWkyZCB2cGVybWkycGQgdnBlcm1pMnBzIHZwZXJtaTJxIHZwZXJtdDJkIHZwZXJtdDJwZCB2cGVybXQycHMgdnBlcm10MnEgdnBleHBhbmRkIHZwZXhwYW5kcSB2cG1heHNxIHZwbWF4dXEgdnBtaW5zcSB2cG1pbnVxIHZwbW92ZGIgdnBtb3ZkdyB2cG1vdnFiIHZwbW92cWQgdnBtb3ZxdyB2cG1vdnNkYiB2cG1vdnNkdyB2cG1vdnNxYiB2cG1vdnNxZCB2cG1vdnNxdyB2cG1vdnVzZGIgdnBtb3Z1c2R3IHZwbW92dXNxYiB2cG1vdnVzcWQgdnBtb3Z1c3F3IHZwb3JkIHZwb3JxIHZwcm9sZCB2cHJvbHEgdnByb2x2ZCB2cHJvbHZxIHZwcm9yZCB2cHJvcnEgdnByb3J2ZCB2cHJvcnZxIHZwc2NhdHRlcmRkIHZwc2NhdHRlcmRxIHZwc2NhdHRlcnFkIHZwc2NhdHRlcnFxIHZwc3JhcSB2cHNyYXZxIHZwdGVybmxvZ2QgdnB0ZXJubG9ncSB2cHRlc3RtZCB2cHRlc3RtcSB2cHRlc3RubWQgdnB0ZXN0bm1xIHZweG9yZCB2cHhvcnEgdnJjcDE0cGQgdnJjcDE0cHMgdnJjcDE0c2QgdnJjcDE0c3MgdnJuZHNjYWxlcGQgdnJuZHNjYWxlcHMgdnJuZHNjYWxlc2QgdnJuZHNjYWxlc3MgdnJzcXJ0MTRwZCB2cnNxcnQxNHBzIHZyc3FydDE0c2QgdnJzcXJ0MTRzcyB2c2NhbGVmcGQgdnNjYWxlZnBzIHZzY2FsZWZzZCB2c2NhbGVmc3MgdnNjYXR0ZXJkcGQgdnNjYXR0ZXJkcHMgdnNjYXR0ZXJxcGQgdnNjYXR0ZXJxcHMgdnNodWZmMzJ4NCB2c2h1ZmY2NHgyIHZzaHVmaTMyeDQgdnNodWZpNjR4MiBrYW5kbncga2FuZHcga21vdncga25vdHcga29ydGVzdHcga29ydyBrc2hpZnRsdyBrc2hpZnRydyBrdW5wY2tidyBreG5vcncga3hvcncgdnBicm9hZGNhc3RtYjJxIHZwYnJvYWRjYXN0bXcyZCB2cGNvbmZsaWN0ZCB2cGNvbmZsaWN0cSB2cGx6Y250ZCB2cGx6Y250cSB2ZXhwMnBkIHZleHAycHMgdnJjcDI4cGQgdnJjcDI4cHMgdnJjcDI4c2QgdnJjcDI4c3MgdnJzcXJ0MjhwZCB2cnNxcnQyOHBzIHZyc3FydDI4c2QgdnJzcXJ0MjhzcyB2Z2F0aGVycGYwZHBkIHZnYXRoZXJwZjBkcHMgdmdhdGhlcnBmMHFwZCB2Z2F0aGVycGYwcXBzIHZnYXRoZXJwZjFkcGQgdmdhdGhlcnBmMWRwcyB2Z2F0aGVycGYxcXBkIHZnYXRoZXJwZjFxcHMgdnNjYXR0ZXJwZjBkcGQgdnNjYXR0ZXJwZjBkcHMgdnNjYXR0ZXJwZjBxcGQgdnNjYXR0ZXJwZjBxcHMgdnNjYXR0ZXJwZjFkcGQgdnNjYXR0ZXJwZjFkcHMgdnNjYXR0ZXJwZjFxcGQgdnNjYXR0ZXJwZjFxcHMgcHJlZmV0Y2h3dDEgYm5kbWsgYm5kY2wgYm5kY3UgYm5kY24gYm5kbW92IGJuZGxkeCBibmRzdHggc2hhMXJuZHM0IHNoYTFuZXh0ZSBzaGExbXNnMSBzaGExbXNnMiBzaGEyNTZybmRzMiBzaGEyNTZtc2cxIHNoYTI1Nm1zZzIgaGludF9ub3AwIGhpbnRfbm9wMSBoaW50X25vcDIgaGludF9ub3AzIGhpbnRfbm9wNCBoaW50X25vcDUgaGludF9ub3A2IGhpbnRfbm9wNyBoaW50X25vcDggaGludF9ub3A5IGhpbnRfbm9wMTAgaGludF9ub3AxMSBoaW50X25vcDEyIGhpbnRfbm9wMTMgaGludF9ub3AxNCBoaW50X25vcDE1IGhpbnRfbm9wMTYgaGludF9ub3AxNyBoaW50X25vcDE4IGhpbnRfbm9wMTkgaGludF9ub3AyMCBoaW50X25vcDIxIGhpbnRfbm9wMjIgaGludF9ub3AyMyBoaW50X25vcDI0IGhpbnRfbm9wMjUgaGludF9ub3AyNiBoaW50X25vcDI3IGhpbnRfbm9wMjggaGludF9ub3AyOSBoaW50X25vcDMwIGhpbnRfbm9wMzEgaGludF9ub3AzMiBoaW50X25vcDMzIGhpbnRfbm9wMzQgaGludF9ub3AzNSBoaW50X25vcDM2IGhpbnRfbm9wMzcgaGludF9ub3AzOCBoaW50X25vcDM5IGhpbnRfbm9wNDAgaGludF9ub3A0MSBoaW50X25vcDQyIGhpbnRfbm9wNDMgaGludF9ub3A0NCBoaW50X25vcDQ1IGhpbnRfbm9wNDYgaGludF9ub3A0NyBoaW50X25vcDQ4IGhpbnRfbm9wNDkgaGludF9ub3A1MCBoaW50X25vcDUxIGhpbnRfbm9wNTIgaGludF9ub3A1MyBoaW50X25vcDU0IGhpbnRfbm9wNTUgaGludF9ub3A1NiBoaW50X25vcDU3IGhpbnRfbm9wNTggaGludF9ub3A1OSBoaW50X25vcDYwIGhpbnRfbm9wNjEgaGludF9ub3A2MiBoaW50X25vcDYzJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvLyBJbnN0cnVjdGlvbiBwb2ludGVyXG4gICAgICAgICdpcCBlaXAgcmlwICdcbiAgICAgICAgLy8gOC1iaXQgcmVnaXN0ZXJzXG4gICAgICAgICsgJ2FsIGFoIGJsIGJoIGNsIGNoIGRsIGRoIHNpbCBkaWwgYnBsIHNwbCByOGIgcjliIHIxMGIgcjExYiByMTJiIHIxM2IgcjE0YiByMTViICdcbiAgICAgICAgLy8gMTYtYml0IHJlZ2lzdGVyc1xuICAgICAgICArICdheCBieCBjeCBkeCBzaSBkaSBicCBzcCByOHcgcjl3IHIxMHcgcjExdyByMTJ3IHIxM3cgcjE0dyByMTV3ICdcbiAgICAgICAgLy8gMzItYml0IHJlZ2lzdGVyc1xuICAgICAgICArICdlYXggZWJ4IGVjeCBlZHggZXNpIGVkaSBlYnAgZXNwIGVpcCByOGQgcjlkIHIxMGQgcjExZCByMTJkIHIxM2QgcjE0ZCByMTVkICdcbiAgICAgICAgLy8gNjQtYml0IHJlZ2lzdGVyc1xuICAgICAgICArICdyYXggcmJ4IHJjeCByZHggcnNpIHJkaSByYnAgcnNwIHI4IHI5IHIxMCByMTEgcjEyIHIxMyByMTQgcjE1ICdcbiAgICAgICAgLy8gU2VnbWVudCByZWdpc3RlcnNcbiAgICAgICAgKyAnY3MgZHMgZXMgZnMgZ3Mgc3MgJ1xuICAgICAgICAvLyBGbG9hdGluZyBwb2ludCBzdGFjayByZWdpc3RlcnNcbiAgICAgICAgKyAnc3Qgc3QwIHN0MSBzdDIgc3QzIHN0NCBzdDUgc3Q2IHN0NyAnXG4gICAgICAgIC8vIE1NWCBSZWdpc3RlcnNcbiAgICAgICAgKyAnbW0wIG1tMSBtbTIgbW0zIG1tNCBtbTUgbW02IG1tNyAnXG4gICAgICAgIC8vIFNTRSByZWdpc3RlcnNcbiAgICAgICAgKyAneG1tMCAgeG1tMSAgeG1tMiAgeG1tMyAgeG1tNCAgeG1tNSAgeG1tNiAgeG1tNyAgeG1tOCAgeG1tOSB4bW0xMCAgeG1tMTEgeG1tMTIgeG1tMTMgeG1tMTQgeG1tMTUgJ1xuICAgICAgICArICd4bW0xNiB4bW0xNyB4bW0xOCB4bW0xOSB4bW0yMCB4bW0yMSB4bW0yMiB4bW0yMyB4bW0yNCB4bW0yNSB4bW0yNiB4bW0yNyB4bW0yOCB4bW0yOSB4bW0zMCB4bW0zMSAnXG4gICAgICAgIC8vIEFWWCByZWdpc3RlcnNcbiAgICAgICAgKyAneW1tMCAgeW1tMSAgeW1tMiAgeW1tMyAgeW1tNCAgeW1tNSAgeW1tNiAgeW1tNyAgeW1tOCAgeW1tOSB5bW0xMCAgeW1tMTEgeW1tMTIgeW1tMTMgeW1tMTQgeW1tMTUgJ1xuICAgICAgICArICd5bW0xNiB5bW0xNyB5bW0xOCB5bW0xOSB5bW0yMCB5bW0yMSB5bW0yMiB5bW0yMyB5bW0yNCB5bW0yNSB5bW0yNiB5bW0yNyB5bW0yOCB5bW0yOSB5bW0zMCB5bW0zMSAnXG4gICAgICAgIC8vIEFWWC01MTJGIHJlZ2lzdGVyc1xuICAgICAgICArICd6bW0wICB6bW0xICB6bW0yICB6bW0zICB6bW00ICB6bW01ICB6bW02ICB6bW03ICB6bW04ICB6bW05IHptbTEwICB6bW0xMSB6bW0xMiB6bW0xMyB6bW0xNCB6bW0xNSAnXG4gICAgICAgICsgJ3ptbTE2IHptbTE3IHptbTE4IHptbTE5IHptbTIwIHptbTIxIHptbTIyIHptbTIzIHptbTI0IHptbTI1IHptbTI2IHptbTI3IHptbTI4IHptbTI5IHptbTMwIHptbTMxICdcbiAgICAgICAgLy8gQVZYLTUxMkYgbWFzayByZWdpc3RlcnNcbiAgICAgICAgKyAnazAgazEgazIgazMgazQgazUgazYgazcgJ1xuICAgICAgICAvLyBCb3VuZCAoTVBYKSByZWdpc3RlclxuICAgICAgICArICdibmQwIGJuZDEgYm5kMiBibmQzICdcbiAgICAgICAgLy8gU3BlY2lhbCByZWdpc3RlclxuICAgICAgICArICdjcjAgY3IxIGNyMiBjcjMgY3I0IGNyOCBkcjAgZHIxIGRyMiBkcjMgZHI4IHRyMyB0cjQgdHI1IHRyNiB0cjcgJ1xuICAgICAgICAvLyBOQVNNIGFsdHJlZyBwYWNrYWdlXG4gICAgICAgICsgJ3IwIHIxIHIyIHIzIHI0IHI1IHI2IHI3IHIwYiByMWIgcjJiIHIzYiByNGIgcjViIHI2YiByN2IgJ1xuICAgICAgICArICdyMHcgcjF3IHIydyByM3cgcjR3IHI1dyByNncgcjd3IHIwZCByMWQgcjJkIHIzZCByNGQgcjVkIHI2ZCByN2QgJ1xuICAgICAgICArICdyMGggcjFoIHIyaCByM2ggJ1xuICAgICAgICArICdyMGwgcjFsIHIybCByM2wgcjRsIHI1bCByNmwgcjdsIHI4bCByOWwgcjEwbCByMTFsIHIxMmwgcjEzbCByMTRsIHIxNWwgJ1xuXG4gICAgICAgICsgJ2RiIGR3IGRkIGRxIGR0IGRkcSBkbyBkeSBkeiAnXG4gICAgICAgICsgJ3Jlc2IgcmVzdyByZXNkIHJlc3EgcmVzdCByZXNkcSByZXNvIHJlc3kgcmVzeiAnXG4gICAgICAgICsgJ2luY2JpbiBlcXUgdGltZXMgJ1xuICAgICAgICArICdieXRlIHdvcmQgZHdvcmQgcXdvcmQgbm9zcGxpdCByZWwgYWJzIHNlZyB3cnQgc3RyaWN0IG5lYXIgZmFyIGEzMiBwdHInLFxuXG4gICAgICBtZXRhOlxuICAgICAgICAnJWRlZmluZSAleGRlZmluZSAlKyAldW5kZWYgJWRlZnN0ciAlZGVmdG9rICVhc3NpZ24gJXN0cmNhdCAlc3RybGVuICVzdWJzdHIgJXJvdGF0ZSAlZWxpZiAlZWxzZSAlZW5kaWYgJ1xuICAgICAgICArICclaWYgJWlmbWFjcm8gJWlmY3R4ICVpZmlkbiAlaWZpZG5pICVpZmlkICVpZm51bSAlaWZzdHIgJWlmdG9rZW4gJWlmZW1wdHkgJWlmZW52ICVlcnJvciAld2FybmluZyAlZmF0YWwgJXJlcCAnXG4gICAgICAgICsgJyVlbmRyZXAgJWluY2x1ZGUgJXB1c2ggJXBvcCAlcmVwbCAlcGF0aHNlYXJjaCAlZGVwZW5kICV1c2UgJWFyZyAlc3RhY2tzaXplICVsb2NhbCAlbGluZSAlY29tbWVudCAlZW5kY29tbWVudCAnXG4gICAgICAgICsgJy5ub2xpc3QgJ1xuICAgICAgICArICdfX0ZJTEVfXyBfX0xJTkVfXyBfX1NFQ1RfXyAgX19CSVRTX18gX19PVVRQVVRfRk9STUFUX18gX19EQVRFX18gX19USU1FX18gX19EQVRFX05VTV9fIF9fVElNRV9OVU1fXyAnXG4gICAgICAgICsgJ19fVVRDX0RBVEVfXyBfX1VUQ19USU1FX18gX19VVENfREFURV9OVU1fXyBfX1VUQ19USU1FX05VTV9fICBfX1BBU1NfXyBzdHJ1YyBlbmRzdHJ1YyBpc3RydWMgYXQgaWVuZCAnXG4gICAgICAgICsgJ2FsaWduIGFsaWduYiBzZWN0YWxpZ24gZGF6IG5vZGF6IHVwIGRvd24gemVybyBkZWZhdWx0IG9wdGlvbiBhc3N1bWUgcHVibGljICdcblxuICAgICAgICArICdiaXRzIHVzZTE2IHVzZTMyIHVzZTY0IGRlZmF1bHQgc2VjdGlvbiBzZWdtZW50IGFic29sdXRlIGV4dGVybiBnbG9iYWwgY29tbW9uIGNwdSBmbG9hdCAnXG4gICAgICAgICsgJ19fdXRmMTZfXyBfX3V0ZjE2bGVfXyBfX3V0ZjE2YmVfXyBfX3V0ZjMyX18gX191dGYzMmxlX18gX191dGYzMmJlX18gJ1xuICAgICAgICArICdfX2Zsb2F0OF9fIF9fZmxvYXQxNl9fIF9fZmxvYXQzMl9fIF9fZmxvYXQ2NF9fIF9fZmxvYXQ4MG1fXyBfX2Zsb2F0ODBlX18gX19mbG9hdDEyOGxfXyBfX2Zsb2F0MTI4aF9fICdcbiAgICAgICAgKyAnX19JbmZpbml0eV9fIF9fUU5hTl9fIF9fU05hTl9fIEluZiBOYU4gUU5hTiBTTmFOIGZsb2F0OCBmbG9hdDE2IGZsb2F0MzIgZmxvYXQ2NCBmbG9hdDgwbSBmbG9hdDgwZSAnXG4gICAgICAgICsgJ2Zsb2F0MTI4bCBmbG9hdDEyOGggX19GTE9BVF9EQVpfXyBfX0ZMT0FUX1JPVU5EX18gX19GTE9BVF9fJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgLy8gRmxvYXQgbnVtYmVyIGFuZCB4ODcgQkNEXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcYig/OihbMC05XVswLTlfXSopP1xcXFwuWzAtOV9dKig/OltlRV1bKy1dP1swLTlfXSspP3wnXG4gICAgICAgICAgICAgICAgICAgKyAnKDBbWHhdKT9bMC05XVswLTlfXSooXFxcXC5bMC05X10qKT8oPzpbcFBdKD86WystXT9bMC05X10rKT8pPylcXFxcYicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgLy8gSGV4IG51bWJlciBpbiAkXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcJFswLTldWzAtOUEtRmEtZl0qJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG5cbiAgICAgICAgICAvLyBOdW1iZXIgaW4gSCxELFQsUSxPLEIsWSBzdWZmaXhcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoPzpbMC05QS1GYS1mXVswLTlBLUZhLWZfXSpbSGhdfFswLTldWzAtOV9dKltEZFR0XT98WzAtN11bMC03X10qW1FxT29dfFswLTFdWzAtMV9dKltCYll5XSlcXFxcYicgfSxcblxuICAgICAgICAgIC8vIE51bWJlciBpbiBYLEQsVCxRLE8sQixZIHByZWZpeFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYig/OjBbWHhdWzAtOUEtRmEtZl9dK3wwW0RkVHRdWzAtOV9dK3wwW1FxT29dWzAtN19dK3wwW0JiWXldWzAtMV9dKylcXFxcYicgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gRG91YmxlIHF1b3RlIHN0cmluZ1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAvLyBTaW5nbGUtcXVvdGVkIHN0cmluZ1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgICAgIGVuZDogJ1teXFxcXFxcXFxdXFwnJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gQmFja3F1b3RlZCBzdHJpbmdcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ2AnLFxuICAgICAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1gJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIC8vIEdsb2JhbCBsYWJlbCBhbmQgbG9jYWwgbGFiZWxcbiAgICAgICAgICB7IGJlZ2luOiAnXlxcXFxzKltBLVphLXouXz9dW0EtWmEtejAtOV8kI0B+Lj9dKig6fFxcXFxzK2xhYmVsKScgfSxcbiAgICAgICAgICAvLyBNYWNyby1sb2NhbCBsYWJlbFxuICAgICAgICAgIHsgYmVnaW46ICdeXFxcXHMqJSVbQS1aYS16MC05XyQjQH4uP10qOicgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBNYWNybyBwYXJhbWV0ZXJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogJyVbMC05XSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBNYWNybyBwYXJhbWV0ZXJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogJyUhXFxTKycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxccypcXC5bXFx3Xy1dKy9cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0geDg2YXNtO1xuIiwgIi8qXG5MYW5ndWFnZTogWExcbkF1dGhvcjogQ2hyaXN0b3BoZSBkZSBEaW5lY2hpbiA8Y2hyaXN0b3BoZUB0YW9keW5lLmNvbT5cbkRlc2NyaXB0aW9uOiBBbiBleHRlbnNpYmxlIHByb2dyYW1taW5nIGxhbmd1YWdlLCBiYXNlZCBvbiBwYXJzZSB0cmVlIHJld3JpdGluZ1xuV2Vic2l0ZTogaHR0cDovL3hsci5zZi5uZXRcbiovXG5cbmZ1bmN0aW9uIHhsKGhsanMpIHtcbiAgY29uc3QgS1dTID0gW1xuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcImRvXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcImZvclwiLFxuICAgIFwibG9vcFwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJ3aXRoXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiYXNcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJieVwiLFxuICAgIFwiZGF0YVwiLFxuICAgIFwiY29uc3RhbnRcIixcbiAgICBcImludGVnZXJcIixcbiAgICBcInJlYWxcIixcbiAgICBcInRleHRcIixcbiAgICBcIm5hbWVcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcInN5bWJvbFwiLFxuICAgIFwiaW5maXhcIixcbiAgICBcInByZWZpeFwiLFxuICAgIFwicG9zdGZpeFwiLFxuICAgIFwiYmxvY2tcIixcbiAgICBcInRyZWVcIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJpblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJyZW1cIixcbiAgICBcImFuZFwiLFxuICAgIFwib3JcIixcbiAgICBcInhvclwiLFxuICAgIFwibm90XCIsXG4gICAgXCJhYnNcIixcbiAgICBcInNpZ25cIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJjZWlsXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJzaW5cIixcbiAgICBcImNvc1wiLFxuICAgIFwidGFuXCIsXG4gICAgXCJhc2luXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhdGFuXCIsXG4gICAgXCJleHBcIixcbiAgICBcImV4cG0xXCIsXG4gICAgXCJsb2dcIixcbiAgICBcImxvZzJcIixcbiAgICBcImxvZzEwXCIsXG4gICAgXCJsb2cxcFwiLFxuICAgIFwicGlcIixcbiAgICBcImF0XCIsXG4gICAgXCJ0ZXh0X2xlbmd0aFwiLFxuICAgIFwidGV4dF9yYW5nZVwiLFxuICAgIFwidGV4dF9maW5kXCIsXG4gICAgXCJ0ZXh0X3JlcGxhY2VcIixcbiAgICBcImNvbnRhaW5zXCIsXG4gICAgXCJwYWdlXCIsXG4gICAgXCJzbGlkZVwiLFxuICAgIFwiYmFzaWNfc2xpZGVcIixcbiAgICBcInRpdGxlX3NsaWRlXCIsXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwic3VidGl0bGVcIixcbiAgICBcImZhZGVfaW5cIixcbiAgICBcImZhZGVfb3V0XCIsXG4gICAgXCJmYWRlX2F0XCIsXG4gICAgXCJjbGVhcl9jb2xvclwiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImxpbmVfY29sb3JcIixcbiAgICBcImxpbmVfd2lkdGhcIixcbiAgICBcInRleHR1cmVfd3JhcFwiLFxuICAgIFwidGV4dHVyZV90cmFuc2Zvcm1cIixcbiAgICBcInRleHR1cmVcIixcbiAgICBcInNjYWxlXz94XCIsXG4gICAgXCJzY2FsZV8/eVwiLFxuICAgIFwic2NhbGVfP3o/XCIsXG4gICAgXCJ0cmFuc2xhdGVfP3hcIixcbiAgICBcInRyYW5zbGF0ZV8/eVwiLFxuICAgIFwidHJhbnNsYXRlXz96P1wiLFxuICAgIFwicm90YXRlXz94XCIsXG4gICAgXCJyb3RhdGVfP3lcIixcbiAgICBcInJvdGF0ZV8/ej9cIixcbiAgICBcInJlY3RhbmdsZVwiLFxuICAgIFwiY2lyY2xlXCIsXG4gICAgXCJlbGxpcHNlXCIsXG4gICAgXCJzcGhlcmVcIixcbiAgICBcInBhdGhcIixcbiAgICBcImxpbmVfdG9cIixcbiAgICBcIm1vdmVfdG9cIixcbiAgICBcInF1YWRfdG9cIixcbiAgICBcImN1cnZlX3RvXCIsXG4gICAgXCJ0aGVtZVwiLFxuICAgIFwiYmFja2dyb3VuZFwiLFxuICAgIFwiY29udGVudHNcIixcbiAgICBcImxvY2FsbHlcIixcbiAgICBcInRpbWVcIixcbiAgICBcIm1vdXNlXz94XCIsXG4gICAgXCJtb3VzZV8/eVwiLFxuICAgIFwibW91c2VfYnV0dG9uc1wiXG4gIF07XG4gIGNvbnN0IEJVSUxUSU5fTU9EVUxFUyA9IFtcbiAgICBcIk9iamVjdExvYWRlclwiLFxuICAgIFwiQW5pbWF0ZVwiLFxuICAgIFwiTW92aWVDcmVkaXRzXCIsXG4gICAgXCJTbGlkZXNcIixcbiAgICBcIkZpbHRlcnNcIixcbiAgICBcIlNoYWRpbmdcIixcbiAgICBcIk1hdGVyaWFsc1wiLFxuICAgIFwiTGVuc0ZsYXJlXCIsXG4gICAgXCJNYXBwaW5nXCIsXG4gICAgXCJWTENBdWRpb1ZpZGVvXCIsXG4gICAgXCJTdGVyZW9EZWNvZGVyXCIsXG4gICAgXCJQb2ludENsb3VkXCIsXG4gICAgXCJOZXR3b3JrQWNjZXNzXCIsXG4gICAgXCJSZW1vdGVDb250cm9sXCIsXG4gICAgXCJSZWdFeHBcIixcbiAgICBcIkNocm9tYUtleVwiLFxuICAgIFwiU25vd2ZhbGxcIixcbiAgICBcIk5vZGVKU1wiLFxuICAgIFwiU3BlZWNoXCIsXG4gICAgXCJDaGFydHNcIlxuICBdO1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICBcInRydWVcIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJuaWxcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogL1thLXpBLVpdW2EtekEtWjAtOV8/XSovLFxuICAgIGtleXdvcmQ6IEtXUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLmNvbmNhdChCVUlMVElOX01PRFVMRVMpXG4gIH07XG5cbiAgY29uc3QgRE9VQkxFX1FVT1RFX1RFWFQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1wiJyxcbiAgICBlbmQ6ICdcIicsXG4gICAgaWxsZWdhbDogJ1xcXFxuJ1xuICB9O1xuICBjb25zdCBTSU5HTEVfUVVPVEVfVEVYVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFwnJyxcbiAgICBlbmQ6ICdcXCcnLFxuICAgIGlsbGVnYWw6ICdcXFxcbidcbiAgfTtcbiAgY29uc3QgTE9OR19URVhUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICc8PCcsXG4gICAgZW5kOiAnPj4nXG4gIH07XG4gIGNvbnN0IEJBU0VEX05VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnWzAtOV0rI1swLTlBLVpfXSsoXFxcXC5bMC05LUEtWl9dKyk/Iz8oW0VlXVsrLV0/WzAtOV0rKT8nXG4gIH07XG4gIGNvbnN0IElNUE9SVCA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnaW1wb3J0JyxcbiAgICBlbmQ6ICckJyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFsgRE9VQkxFX1FVT1RFX1RFWFQgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTl9ERUZJTklUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbjogL1thLXpdW15cXG5dKi0+LyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBlbmQ6IC8tPi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgc3RhcnRzOiB7XG4gICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgICAgIH0gfSlcbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1hMJyxcbiAgICBhbGlhc2VzOiBbICd0YW8nIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgRE9VQkxFX1FVT1RFX1RFWFQsXG4gICAgICBTSU5HTEVfUVVPVEVfVEVYVCxcbiAgICAgIExPTkdfVEVYVCxcbiAgICAgIEZVTkNUSU9OX0RFRklOSVRJT04sXG4gICAgICBJTVBPUlQsXG4gICAgICBCQVNFRF9OVU1CRVIsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHhsO1xuIiwgIi8qXG5MYW5ndWFnZTogWFF1ZXJ5XG5BdXRob3I6IERpcmsgS2lyc3RlbiA8ZGtAYmFzZXgub3JnPlxuQ29udHJpYnV0b3I6IER1bmNhbiBQYXRlcnNvblxuRGVzY3JpcHRpb246IFN1cHBvcnRzIFhRdWVyeSAzLjEgaW5jbHVkaW5nIFhRdWVyeSBVcGRhdGUgMywgc28gYWxzbyBYUGF0aCAoYXMgaXQgaXMgYSBzdXBlcnNldClcblJlZmFjdG9yZWQgdG8gcHJvY2VzcyB4bWwgY29uc3RydWN0b3Igc3ludGF4IGFuZCBmdW5jdGlvbi1ib2RpZXMuIEFkZGVkIG1pc3NpbmcgZGF0YS10eXBlcywgeHBhdGggb3BlcmFuZHMsIGluYnVpbHQgZnVuY3Rpb25zLCBhbmQgcXVlcnkgcHJvbG9nc1xuV2Vic2l0ZTogaHR0cHM6Ly93d3cudzMub3JnL1hNTC9RdWVyeS9cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHhxdWVyeShfaGxqcykge1xuICAvLyBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3hxdWVyeS8jaWQtdGVybWluYWwtZGVsaW1pdGF0aW9uXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwibW9kdWxlXCIsXG4gICAgXCJzY2hlbWFcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwiYm91bmRhcnktc3BhY2VcIixcbiAgICBcInByZXNlcnZlXCIsXG4gICAgXCJuby1wcmVzZXJ2ZVwiLFxuICAgIFwic3RyaXBcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImNvbGxhdGlvblwiLFxuICAgIFwiYmFzZS11cmlcIixcbiAgICBcIm9yZGVyaW5nXCIsXG4gICAgXCJjb250ZXh0XCIsXG4gICAgXCJkZWNpbWFsLWZvcm1hdFwiLFxuICAgIFwiZGVjaW1hbC1zZXBhcmF0b3JcIixcbiAgICBcImNvcHktbmFtZXNwYWNlc1wiLFxuICAgIFwiZW1wdHktc2VxdWVuY2VcIixcbiAgICBcImV4Y2VwdFwiLFxuICAgIFwiZXhwb25lbnQtc2VwYXJhdG9yXCIsXG4gICAgXCJleHRlcm5hbFwiLFxuICAgIFwiZ3JvdXBpbmctc2VwYXJhdG9yXCIsXG4gICAgXCJpbmhlcml0XCIsXG4gICAgXCJuby1pbmhlcml0XCIsXG4gICAgXCJsYXhcIixcbiAgICBcIm1pbnVzLXNpZ25cIixcbiAgICBcInBlci1taWxsZVwiLFxuICAgIFwicGVyY2VudFwiLFxuICAgIFwic2NoZW1hLWF0dHJpYnV0ZVwiLFxuICAgIFwic2NoZW1hLWVsZW1lbnRcIixcbiAgICBcInN0cmljdFwiLFxuICAgIFwidW5vcmRlcmVkXCIsXG4gICAgXCJ6ZXJvLWRpZ2l0XCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcInZhbGlkYXRlXCIsXG4gICAgXCJ2YXJpYWJsZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiaW5cIixcbiAgICBcImxldFwiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJncm91cFwiLFxuICAgIFwiYnlcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcInR1bWJsaW5nXCIsXG4gICAgXCJzbGlkaW5nXCIsXG4gICAgXCJ3aW5kb3dcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJvbmx5XCIsXG4gICAgXCJlbmRcIixcbiAgICBcInByZXZpb3VzXCIsXG4gICAgXCJuZXh0XCIsXG4gICAgXCJzdGFibGVcIixcbiAgICBcImFzY2VuZGluZ1wiLFxuICAgIFwiZGVzY2VuZGluZ1wiLFxuICAgIFwiYWxsb3dpbmdcIixcbiAgICBcImVtcHR5XCIsXG4gICAgXCJncmVhdGVzdFwiLFxuICAgIFwibGVhc3RcIixcbiAgICBcInNvbWVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJzYXRpc2ZpZXNcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwidHlwZXN3aXRjaFwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJvclwiLFxuICAgIFwidG9cIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJpbnRlcnNlY3RcIixcbiAgICBcImluc3RhbmNlXCIsXG4gICAgXCJvZlwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcImFzXCIsXG4gICAgXCJjYXN0YWJsZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludG9cIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInZhbHVlXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcImNvcHlcIixcbiAgICBcIm1vZGlmeVwiLFxuICAgIFwidXBkYXRlXCJcbiAgXTtcblxuICAvLyBOb2RlIFR5cGVzIChzb3J0ZWQgYnkgaW5oZXJpdGFuY2UpXG4gIC8vIGF0b21pYyB0eXBlcyAoc29ydGVkIGJ5IGluaGVyaXRhbmNlKVxuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcIml0ZW1cIixcbiAgICBcImRvY3VtZW50LW5vZGVcIixcbiAgICBcIm5vZGVcIixcbiAgICBcImF0dHJpYnV0ZVwiLFxuICAgIFwiZG9jdW1lbnRcIixcbiAgICBcImVsZW1lbnRcIixcbiAgICBcImNvbW1lbnRcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwibmFtZXNwYWNlLW5vZGVcIixcbiAgICBcInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb25cIixcbiAgICBcInRleHRcIixcbiAgICBcImNvbnN0cnVjdGlvblwiLFxuICAgIFwieHM6YW55QXRvbWljVHlwZVwiLFxuICAgIFwieHM6dW50eXBlZEF0b21pY1wiLFxuICAgIFwieHM6ZHVyYXRpb25cIixcbiAgICBcInhzOnRpbWVcIixcbiAgICBcInhzOmRlY2ltYWxcIixcbiAgICBcInhzOmZsb2F0XCIsXG4gICAgXCJ4czpkb3VibGVcIixcbiAgICBcInhzOmdZZWFyTW9udGhcIixcbiAgICBcInhzOmdZZWFyXCIsXG4gICAgXCJ4czpnTW9udGhEYXlcIixcbiAgICBcInhzOmdNb250aFwiLFxuICAgIFwieHM6Z0RheVwiLFxuICAgIFwieHM6Ym9vbGVhblwiLFxuICAgIFwieHM6YmFzZTY0QmluYXJ5XCIsXG4gICAgXCJ4czpoZXhCaW5hcnlcIixcbiAgICBcInhzOmFueVVSSVwiLFxuICAgIFwieHM6UU5hbWVcIixcbiAgICBcInhzOk5PVEFUSU9OXCIsXG4gICAgXCJ4czpkYXRlVGltZVwiLFxuICAgIFwieHM6ZGF0ZVRpbWVTdGFtcFwiLFxuICAgIFwieHM6ZGF0ZVwiLFxuICAgIFwieHM6c3RyaW5nXCIsXG4gICAgXCJ4czpub3JtYWxpemVkU3RyaW5nXCIsXG4gICAgXCJ4czp0b2tlblwiLFxuICAgIFwieHM6bGFuZ3VhZ2VcIixcbiAgICBcInhzOk5NVE9LRU5cIixcbiAgICBcInhzOk5hbWVcIixcbiAgICBcInhzOk5DTmFtZVwiLFxuICAgIFwieHM6SURcIixcbiAgICBcInhzOklEUkVGXCIsXG4gICAgXCJ4czpFTlRJVFlcIixcbiAgICBcInhzOmludGVnZXJcIixcbiAgICBcInhzOm5vblBvc2l0aXZlSW50ZWdlclwiLFxuICAgIFwieHM6bmVnYXRpdmVJbnRlZ2VyXCIsXG4gICAgXCJ4czpsb25nXCIsXG4gICAgXCJ4czppbnRcIixcbiAgICBcInhzOnNob3J0XCIsXG4gICAgXCJ4czpieXRlXCIsXG4gICAgXCJ4czpub25OZWdhdGl2ZUludGVnZXJcIixcbiAgICBcInhzOnVuaXNpZ25lZExvbmdcIixcbiAgICBcInhzOnVuc2lnbmVkSW50XCIsXG4gICAgXCJ4czp1bnNpZ25lZFNob3J0XCIsXG4gICAgXCJ4czp1bnNpZ25lZEJ5dGVcIixcbiAgICBcInhzOnBvc2l0aXZlSW50ZWdlclwiLFxuICAgIFwieHM6eWVhck1vbnRoRHVyYXRpb25cIixcbiAgICBcInhzOmRheVRpbWVEdXJhdGlvblwiXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJlcVwiLFxuICAgIFwibmVcIixcbiAgICBcImx0XCIsXG4gICAgXCJsZVwiLFxuICAgIFwiZ3RcIixcbiAgICBcImdlXCIsXG4gICAgXCJpc1wiLFxuICAgIFwic2VsZjo6XCIsXG4gICAgXCJjaGlsZDo6XCIsXG4gICAgXCJkZXNjZW5kYW50OjpcIixcbiAgICBcImRlc2NlbmRhbnQtb3Itc2VsZjo6XCIsXG4gICAgXCJhdHRyaWJ1dGU6OlwiLFxuICAgIFwiZm9sbG93aW5nOjpcIixcbiAgICBcImZvbGxvd2luZy1zaWJsaW5nOjpcIixcbiAgICBcInBhcmVudDo6XCIsXG4gICAgXCJhbmNlc3Rvcjo6XCIsXG4gICAgXCJhbmNlc3Rvci1vci1zZWxmOjpcIixcbiAgICBcInByZWNlZGluZzo6XCIsXG4gICAgXCJwcmVjZWRpbmctc2libGluZzo6XCIsXG4gICAgXCJOYU5cIlxuICBdO1xuXG4gIC8vIGZ1bmN0aW9ucyAoVE9ETzogZmluZCByZWdleCBmb3Igb3A6IHdpdGhvdXQgYnJlYWtpbmcgYnVpbGQpXG4gIGNvbnN0IEJVSUxUX0lOID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYmFycmF5Oi8sXG4gICAgICAgIGVuZDogLyg/OmFwcGVuZHxmaWx0ZXJ8ZmxhdHRlbnxmb2xkLSg/OmxlZnR8cmlnaHQpfGZvci1lYWNoKD86LXBhaXIpP3xnZXR8aGVhZHxpbnNlcnQtYmVmb3JlfGpvaW58cHV0fHJlbW92ZXxyZXZlcnNlfHNpemV8c29ydHxzdWJhcnJheXx0YWlsKVxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxibWFwOi8sXG4gICAgICAgIGVuZDogLyg/OmNvbnRhaW5zfGVudHJ5fGZpbmR8Zm9yLWVhY2h8Z2V0fGtleXN8bWVyZ2V8cHV0fHJlbW92ZXxzaXplKVxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxibWF0aDovLFxuICAgICAgICBlbmQ6IC8oPzphKD86Y29zfHNpbnx0YW5bMl0/KXxjb3N8ZXhwKD86MTApP3xsb2coPzoxMCk/fHBpfHBvd3xzaW58c3FydHx0YW4pXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJvcDovLFxuICAgICAgICBlbmQ6IC9cXCgvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYmZuOi8sXG4gICAgICAgIGVuZDogL1xcKC8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICAvLyBkbyBub3QgaGlnaGxpZ2h0IGluYnVpbHQgc3RyaW5ncyBhcyB2YXJpYWJsZSBvciB4bWwgZWxlbWVudCBuYW1lc1xuICAgICAgeyBiZWdpbjogL1tePC8kOidcIi1dXFxiKD86YWJzfGFjY3VtdWxhdG9yLSg/OmFmdGVyfGJlZm9yZSl8YWRqdXN0LSg/OmRhdGUoPzpUaW1lKT98dGltZSktdG8tdGltZXpvbmV8YW5hbHl6ZS1zdHJpbmd8YXBwbHl8YXZhaWxhYmxlLSg/OmVudmlyb25tZW50LXZhcmlhYmxlc3xzeXN0ZW0tcHJvcGVydGllcyl8YXZnfGJhc2UtdXJpfGJvb2xlYW58Y2VpbGluZ3xjb2RlcG9pbnRzPy0oPzplcXVhbHx0by1zdHJpbmcpfGNvbGxhdGlvbi1rZXl8Y29sbGVjdGlvbnxjb21wYXJlfGNvbmNhdHxjb250YWlucyg/Oi10b2tlbik/fGNvcHktb2Z8Y291bnR8Y3VycmVudCg/Oi0pPyg/OmRhdGUoPzpUaW1lKT98dGltZXxncm91cCg/OmluZy1rZXkpP3xvdXRwdXQtdXJpfG1lcmdlLSg/Omdyb3VwfGtleSkpP2RhdGF8ZGF0ZVRpbWV8ZGF5cz8tZnJvbS0oPzpkYXRlKD86VGltZSk/fGR1cmF0aW9uKXxkZWVwLWVxdWFsfGRlZmF1bHQtKD86Y29sbGF0aW9ufGxhbmd1YWdlKXxkaXN0aW5jdC12YWx1ZXN8ZG9jdW1lbnQoPzotdXJpKT98ZG9jKD86LWF2YWlsYWJsZSk/fGVsZW1lbnQtKD86YXZhaWxhYmxlfHdpdGgtaWQpfGVtcHR5fGVuY29kZS1mb3ItdXJpfGVuZHMtd2l0aHxlbnZpcm9ubWVudC12YXJpYWJsZXxlcnJvcnxlc2NhcGUtaHRtbC11cml8ZXhhY3RseS1vbmV8ZXhpc3RzfGZhbHNlfGZpbHRlcnxmbG9vcnxmb2xkLSg/OmxlZnR8cmlnaHQpfGZvci1lYWNoKD86LXBhaXIpP3xmb3JtYXQtKD86ZGF0ZSg/OlRpbWUpP3x0aW1lfGludGVnZXJ8bnVtYmVyKXxmdW5jdGlvbi0oPzphcml0eXxhdmFpbGFibGV8bG9va3VwfG5hbWUpfGdlbmVyYXRlLWlkfGhhcy1jaGlsZHJlbnxoZWFkfGhvdXJzLWZyb20tKD86ZGF0ZVRpbWV8ZHVyYXRpb258dGltZSl8aWQoPzpyZWYpP3xpbXBsaWNpdC10aW1lem9uZXxpbi1zY29wZS1wcmVmaXhlc3xpbmRleC1vZnxpbm5lcm1vc3R8aW5zZXJ0LWJlZm9yZXxpcmktdG8tdXJpfGpzb24tKD86ZG9jfHRvLXhtbCl8a2V5fGxhbmd8bGFzdHxsb2FkLXhxdWVyeS1tb2R1bGV8bG9jYWwtbmFtZSg/Oi1mcm9tLVFOYW1lKT98KD86bG93ZXJ8dXBwZXIpLWNhc2V8bWF0Y2hlc3xtYXh8bWludXRlcy1mcm9tLSg/OmRhdGVUaW1lfGR1cmF0aW9ufHRpbWUpfG1pbnxtb250aHM/LWZyb20tKD86ZGF0ZSg/OlRpbWUpP3xkdXJhdGlvbil8bmFtZSg/OnNwYWNlLXVyaS0/KD86Zm9yLXByZWZpeHxmcm9tLVFOYW1lKT8pP3xuaWxsZWR8bm9kZS1uYW1lfG5vcm1hbGl6ZS0oPzpzcGFjZXx1bmljb2RlKXxub3R8bnVtYmVyfG9uZS1vci1tb3JlfG91dGVybW9zdHxwYXJzZS0oPzppZXRmLWRhdGV8anNvbil8cGF0aHxwb3NpdGlvbnwoPzpwcmVmaXgtZnJvbS0pP1FOYW1lfHJhbmRvbS1udW1iZXItZ2VuZXJhdG9yfHJlZ2V4LWdyb3VwfHJlbW92ZXxyZXBsYWNlfHJlc29sdmUtKD86UU5hbWV8dXJpKXxyZXZlcnNlfHJvb3R8cm91bmQoPzotaGFsZi10by1ldmVuKT98c2Vjb25kcy1mcm9tLSg/OmRhdGVUaW1lfGR1cmF0aW9ufHRpbWUpfHNuYXBzaG90fHNvcnR8c3RhcnRzLXdpdGh8c3RhdGljLWJhc2UtdXJpfHN0cmVhbS1hdmFpbGFibGV8c3RyaW5nLT8oPzpqb2lufGxlbmd0aHx0by1jb2RlcG9pbnRzKT98c3Vic2VxdWVuY2V8c3Vic3RyaW5nLT8oPzphZnRlcnxiZWZvcmUpP3xzdW18c3lzdGVtLXByb3BlcnR5fHRhaWx8dGltZXpvbmUtZnJvbS0oPzpkYXRlKD86VGltZSk/fHRpbWUpfHRva2VuaXplfHRyYWNlfHRyYW5zKD86Zm9ybXxsYXRlKXx0cnVlfHR5cGUtYXZhaWxhYmxlfHVub3JkZXJlZHx1bnBhcnNlZC0oPzplbnRpdHl8dGV4dCk/LT8oPzpwdWJsaWMtaWR8dXJpfGF2YWlsYWJsZXxsaW5lcyk/fHVyaS1jb2xsZWN0aW9ufHhtbC10by1qc29ufHllYXJzPy1mcm9tLSg/OmRhdGUoPzpUaW1lKT98ZHVyYXRpb24pfHplcm8tb3Itb25lKVxcYi8gfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJsb2NhbDovLFxuICAgICAgICBlbmQ6IC9cXCgvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYnppcDovLFxuICAgICAgICBlbmQ6IC8oPzp6aXAtZmlsZXwoPzp4bWx8aHRtbHx0ZXh0fGJpbmFyeSktZW50cnl8ICg/OnVwZGF0ZS0pP2VudHJpZXMpXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGIoPzp1dGlsfGRifGZ1bmN0eHxhcHB8eGRtcHx4bWxkYik6LyxcbiAgICAgICAgZW5kOiAvXFwoLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBUSVRMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IC9cXGJ4cXVlcnkgdmVyc2lvbiBcIlsxM11cXC5bMDFdXCJcXHM/KD86ZW5jb2RpbmcgXCIuK1wiKT8vLFxuICAgIGVuZDogLzsvXG4gIH07XG5cbiAgY29uc3QgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL1skXVtcXHdcXC06XSsvXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46IC8oXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXCJcIi8sXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvJycvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC8lW1xcd1xcLTpdKy9cbiAgfTtcblxuICBjb25zdCBDT01NRU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgIGJlZ2luOiAvXFwoOi8sXG4gICAgZW5kOiAvOlxcKS8sXG4gICAgcmVsZXZhbmNlOiAxMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICBiZWdpbjogL0BcXHcrL1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3hxdWVyeS8jaWQtY29tcHV0ZWRDb25zdHJ1Y3RvcnNcbiAgLy8gbW9jaGE6IGNvbXB1dGVkX2luYnVpbHRcbiAgLy8gc2VlIGh0dHBzOi8vd3d3LnJlZ2V4cGFsLmNvbS8/ZmFtPTk5NzQ5XG4gIGNvbnN0IENPTVBVVEVEID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICdlbGVtZW50IGF0dHJpYnV0ZSBjb21tZW50IGRvY3VtZW50IHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24nLFxuICAgIGVuZDogL1xcey8sXG4gICAgZXhjbHVkZUVuZDogdHJ1ZVxuICB9O1xuXG4gIC8vIG1vY2hhOiBkaXJlY3RfbWV0aG9kXG4gIGNvbnN0IERJUkVDVCA9IHtcbiAgICBiZWdpbjogLzwoW1xcdy5fOi1dKykoXFxzK1xcUyo9KCd8XCIpLiooJ3xcIikpPz4vLFxuICAgIGVuZDogLyhcXC9bXFx3Ll86LV0rPikvLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcey8sXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAneHF1ZXJ5J1xuICAgICAgfSxcbiAgICAgICdzZWxmJ1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBDT05UQUlOUyA9IFtcbiAgICBWQVIsXG4gICAgQlVJTFRfSU4sXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBDT01NRU5ULFxuICAgIEFOTk9UQVRJT04sXG4gICAgVElUTEUsXG4gICAgQ09NUFVURUQsXG4gICAgRElSRUNUXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnWFF1ZXJ5JyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAneHBhdGgnLFxuICAgICAgJ3hxJyxcbiAgICAgICd4cW0nXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBpbGxlZ2FsOiAvKHByb2MpfChhYnN0cmFjdCl8KGV4dGVuZHMpfCh1bnRpbCl8KCMpLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bYS16QS1aJF1bYS16QS1aMC05XzotXSovLFxuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICB0eXBlOiBUWVBFUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogQ09OVEFJTlNcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB4cXVlcnk7XG4iLCAiLypcbiBMYW5ndWFnZTogWmVwaGlyXG4gRGVzY3JpcHRpb246IFplcGhpciwgYW4gb3BlbiBzb3VyY2UsIGhpZ2gtbGV2ZWwgbGFuZ3VhZ2UgZGVzaWduZWQgdG8gZWFzZSB0aGUgY3JlYXRpb24gYW5kIG1haW50YWluYWJpbGl0eSBvZiBleHRlbnNpb25zIGZvciBQSFAgd2l0aCBhIGZvY3VzIG9uIHR5cGUgYW5kIG1lbW9yeSBzYWZldHkuXG4gQXV0aG9yOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPlxuIFdlYnNpdGU6IGh0dHBzOi8vemVwaGlyLWxhbmcuY29tL2VuXG4gQ2F0ZWdvcnk6IHdlYlxuIEF1ZGl0OiAyMDIwXG4gKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHplcGhpcihobGpzKSB7XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pXG4gICAgXVxuICB9O1xuICBjb25zdCBUSVRMRV9NT0RFID0gaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREU7XG4gIGNvbnN0IE5VTUJFUiA9IHsgdmFyaWFudHM6IFtcbiAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgXSB9O1xuICBjb25zdCBLRVlXT1JEUyA9XG4gICAgLy8gY2xhc3NlcyBhbmQgb2JqZWN0c1xuICAgICduYW1lc3BhY2UgY2xhc3MgaW50ZXJmYWNlIHVzZSBleHRlbmRzICdcbiAgICArICdmdW5jdGlvbiByZXR1cm4gJ1xuICAgICsgJ2Fic3RyYWN0IGZpbmFsIHB1YmxpYyBwcm90ZWN0ZWQgcHJpdmF0ZSBzdGF0aWMgZGVwcmVjYXRlZCAnXG4gICAgLy8gZXJyb3IgaGFuZGxpbmdcbiAgICArICd0aHJvdyB0cnkgY2F0Y2ggRXhjZXB0aW9uICdcbiAgICAvLyBrZXl3b3JkLWlzaCB0aGluZ3MgdGhlaXIgd2Vic2l0ZSBkb2VzIE5PVCBzZWVtIHRvIGhpZ2hsaWdodCAoaW4gdGhlaXIgb3duIHNuaXBwZXRzKVxuICAgIC8vICd0eXBlb2YgZmV0Y2ggaW4gJyArXG4gICAgLy8gb3BlcmF0b3JzL2hlbHBlcnNcbiAgICArICdlY2hvIGVtcHR5IGlzc2V0IGluc3RhbmNlb2YgdW5zZXQgJ1xuICAgIC8vIGFzc2lnbm1lbnQvdmFyaWFibGVzXG4gICAgKyAnbGV0IHZhciBuZXcgY29uc3Qgc2VsZiAnXG4gICAgLy8gY29udHJvbFxuICAgICsgJ3JlcXVpcmUgJ1xuICAgICsgJ2lmIGVsc2UgZWxzZWlmIHN3aXRjaCBjYXNlIGRlZmF1bHQgJ1xuICAgICsgJ2RvIHdoaWxlIGxvb3AgZm9yIGNvbnRpbnVlIGJyZWFrICdcbiAgICArICdsaWtlbHkgdW5saWtlbHkgJ1xuICAgIC8vIG1hZ2ljIGNvbnN0YW50c1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGFsY29uL3plcGhpci9ibG9iL21hc3Rlci9MaWJyYXJ5L0V4cHJlc3Npb24vQ29uc3RhbnRzLnBocFxuICAgICsgJ19fTElORV9fIF9fRklMRV9fIF9fRElSX18gX19GVU5DVElPTl9fIF9fQ0xBU1NfXyBfX1RSQUlUX18gX19NRVRIT0RfXyBfX05BTUVTUEFDRV9fICdcbiAgICAvLyB0eXBlcyAtIGh0dHBzOi8vZG9jcy56ZXBoaXItbGFuZy5jb20vMC4xMi9lbi90eXBlc1xuICAgICsgJ2FycmF5IGJvb2xlYW4gZmxvYXQgZG91YmxlIGludGVnZXIgb2JqZWN0IHJlc291cmNlIHN0cmluZyAnXG4gICAgKyAnY2hhciBsb25nIHVuc2lnbmVkIGJvb2wgaW50IHVpbnQgdWxvbmcgdWNoYXIgJ1xuICAgIC8vIGJ1aWx0LWluc1xuICAgICsgJ3RydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQnO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1plcGhpcicsXG4gICAgYWxpYXNlczogWyAnemVwJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvXFwvXFwqLyxcbiAgICAgICAgL1xcKlxcLy8sXG4gICAgICAgIHsgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgYmVnaW46IC9AW0EtWmEtel0rL1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLzw8PFsnXCJdP1xcdytbJ1wiXT8kLyxcbiAgICAgICAgZW5kOiAvXlxcdys7LyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHN3YWxsb3cgY29tcG9zZWQgaWRlbnRpZmllcnMgdG8gYXZvaWQgcGFyc2luZyB0aGVtIGFzIGtleXdvcmRzXG4gICAgICAgIGJlZ2luOiAvKDo6fC0+KStbYS16QS1aX1xceDdmLVxceGZmXVthLXpBLVowLTlfXFx4N2YtXFx4ZmZdKi8gfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24gZm4nLFxuICAgICAgICBlbmQ6IC9bO3tdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogL1xcJHxcXFt8JS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBOVU1CRVJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6IC9bOigkXCJdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnIH0sXG4gICAgICAgICAgVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmFtZXNwYWNlJyxcbiAgICAgICAgZW5kOiAvOy8sXG4gICAgICAgIGlsbGVnYWw6IC9bLiddLyxcbiAgICAgICAgY29udGFpbnM6IFsgVElUTEVfTU9ERSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAndXNlJyxcbiAgICAgICAgZW5kOiAvOy8sXG4gICAgICAgIGNvbnRhaW5zOiBbIFRJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC89Pi8gLy8gTm8gbWFya3VwLCBqdXN0IGEgcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gemVwaGlyO1xuIiwgInZhciBobGpzID0gcmVxdWlyZSgnLi9jb3JlJyk7XG5cbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnMWMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy8xYycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYWJuZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2FibmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FjY2Vzc2xvZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2FjY2Vzc2xvZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYWN0aW9uc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYWN0aW9uc2NyaXB0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhZGEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hZGEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FuZ2Vsc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYW5nZWxzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FwYWNoZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2FwYWNoZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXBwbGVzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hcHBsZXNjcmlwdCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXJjYWRlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXJjYWRlJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhcmR1aW5vJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXJkdWlubycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXJtYXNtJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXJtYXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4bWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy94bWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FzY2lpZG9jJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXNjaWlkb2MnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FzcGVjdGonLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hc3BlY3RqJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhdXRvaG90a2V5JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXV0b2hvdGtleScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXV0b2l0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXV0b2l0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhdnJhc20nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hdnJhc20nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2F3aycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2F3aycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXhhcHRhJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXhhcHRhJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdiYXNoJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYmFzaCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYmFzaWMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9iYXNpYycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYm5mJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYm5mJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdicmFpbmZ1Y2snLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9icmFpbmZ1Y2snKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2MnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjYWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jYWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NhcG5wcm90bycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NhcG5wcm90bycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY2V5bG9uJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY2V5bG9uJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjbGVhbicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NsZWFuJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjbG9qdXJlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY2xvanVyZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY2xvanVyZS1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY2xvanVyZS1yZXBsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjbWFrZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NtYWtlJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjb2ZmZWVzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jb2ZmZWVzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NvcScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NvcScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY29zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY29zJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjcHAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jcHAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NybXNoJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY3Jtc2gnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NyeXN0YWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jcnlzdGFsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjc2hhcnAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jc2hhcnAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NzcCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NzcCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY3NzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY3NzJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWFya2Rvd24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXJrZG93bicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZGFydCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RhcnQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RlbHBoaScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RlbHBoaScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZGlmZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RpZmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RqYW5nbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RqYW5nbycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZG5zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZG5zJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkb2NrZXJmaWxlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZG9ja2VyZmlsZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZG9zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZG9zJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkc2NvbmZpZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RzY29uZmlnJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkdHMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9kdHMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2R1c3QnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9kdXN0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdlYm5mJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZWJuZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZWxpeGlyJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZWxpeGlyJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdlbG0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9lbG0nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3J1YnknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9ydWJ5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdlcmInLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9lcmInKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VybGFuZy1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZXJsYW5nLXJlcGwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VybGFuZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2VybGFuZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZXhjZWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9leGNlbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZml4JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZml4JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdmbGl4JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZmxpeCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZm9ydHJhbicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2ZvcnRyYW4nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2ZzaGFycCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2ZzaGFycCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ2FtcycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2dhbXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2dhdXNzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ2F1c3MnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2djb2RlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ2NvZGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2doZXJraW4nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9naGVya2luJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnbHNsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ2xzbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ21sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ21sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2dvJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnb2xvJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ29sbycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ3JhZGxlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3JhZGxlJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdncmFwaHFsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3JhcGhxbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ3Jvb3Z5JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3Jvb3Z5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdoYW1sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaGFtbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaGFuZGxlYmFycycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2hhbmRsZWJhcnMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hhc2tlbGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9oYXNrZWxsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdoYXhlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaGF4ZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaHNwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaHNwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdodHRwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaHR0cCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaHknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9oeScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaW5mb3JtNycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2luZm9ybTcnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2luaScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2luaScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaXJwZjkwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaXJwZjkwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdpc2JsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaXNibCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnamF2YScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2phdmEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2phdmFzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qYXZhc2NyaXB0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqYm9zcy1jbGknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qYm9zcy1jbGknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2pzb24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qc29uJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqdWxpYScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2p1bGlhJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqdWxpYS1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvanVsaWEtcmVwbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgna290bGluJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMva290bGluJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsYXNzbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xhc3NvJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsYXRleCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xhdGV4JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsZGlmJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbGRpZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbGVhZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xlYWYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xlc3MnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sZXNzJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsaXNwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbGlzcCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbGl2ZWNvZGVzZXJ2ZXInLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9saXZlY29kZXNlcnZlcicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbGl2ZXNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xpdmVzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xsdm0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sbHZtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsc2wnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sc2wnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2x1YScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2x1YScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWFrZWZpbGUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYWtlZmlsZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWF0aGVtYXRpY2EnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXRoZW1hdGljYScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWF0bGFiJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbWF0bGFiJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdtYXhpbWEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXhpbWEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ21lbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL21lbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWVyY3VyeScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL21lcmN1cnknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ21pcHNhc20nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9taXBzYXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdtaXphcicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL21pemFyJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwZXJsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGVybCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbW9qb2xpY2lvdXMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tb2pvbGljaW91cycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbW9ua2V5JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbW9ua2V5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdtb29uc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbW9vbnNjcmlwdCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbjFxbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL24xcWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ25lc3RlZHRleHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9uZXN0ZWR0ZXh0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCduZ2lueCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL25naW54JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCduaW0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9uaW0nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ25peCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL25peCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbm9kZS1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbm9kZS1yZXBsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCduc2lzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbnNpcycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnb2JqZWN0aXZlYycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL29iamVjdGl2ZWMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ29jYW1sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvb2NhbWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ29wZW5zY2FkJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvb3BlbnNjYWQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ294eWdlbmUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9veHlnZW5lJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwYXJzZXIzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGFyc2VyMycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGYnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGdzcWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wZ3NxbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGhwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGhwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwaHAtdGVtcGxhdGUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9waHAtdGVtcGxhdGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3BsYWludGV4dCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3BsYWludGV4dCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncG9ueScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3BvbnknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Bvd2Vyc2hlbGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wb3dlcnNoZWxsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwcm9jZXNzaW5nJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHJvY2Vzc2luZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHJvZmlsZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Byb2ZpbGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Byb2xvZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Byb2xvZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHJvcGVydGllcycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Byb3BlcnRpZXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Byb3RvYnVmJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHJvdG9idWYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3B1cHBldCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3B1cHBldCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHVyZWJhc2ljJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHVyZWJhc2ljJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdweXRob24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9weXRob24nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3B5dGhvbi1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHl0aG9uLXJlcGwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3EnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9xJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdxbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9xbWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3InLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9yJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdyZWFzb25tbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3JlYXNvbm1sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdyaWInLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9yaWInKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JvYm9jb25mJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcm9ib2NvbmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JvdXRlcm9zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcm91dGVyb3MnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JzbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3JzbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncnVsZXNsYW5ndWFnZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3J1bGVzbGFuZ3VhZ2UnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3J1c3QnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9ydXN0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzYXMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zYXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NjYWxhJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc2NhbGEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NjaGVtZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3NjaGVtZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc2NpbGFiJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc2NpbGFiJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzY3NzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc2NzcycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc2hlbGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zaGVsbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc21hbGknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zbWFsaScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc21hbGx0YWxrJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc21hbGx0YWxrJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zbWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NxZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3NxZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc3FsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3FsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzdGFuJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3RhbicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc3RhdGEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zdGF0YScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc3RlcDIxJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3RlcDIxJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzdHlsdXMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zdHlsdXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3N1YnVuaXQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zdWJ1bml0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzd2lmdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3N3aWZ0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0YWdnZXJzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy90YWdnZXJzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3lhbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy95YW1sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0YXAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy90YXAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3RjbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3RjbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndGhyaWZ0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdGhyaWZ0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0cCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3RwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0d2lnJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdHdpZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndHlwZXNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3R5cGVzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3ZhbGEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92YWxhJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2Ym5ldCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3ZibmV0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2YnNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Zic2NyaXB0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2YnNjcmlwdC1odG1sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdmJzY3JpcHQtaHRtbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndmVyaWxvZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Zlcmlsb2cnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3ZoZGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92aGRsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2aW0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92aW0nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3dhc20nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy93YXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd3cmVuJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvd3JlbicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgneDg2YXNtJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMveDg2YXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4bCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3hsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4cXVlcnknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy94cXVlcnknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3plcGhpcicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3plcGhpcicpKTtcblxuaGxqcy5IaWdobGlnaHRKUyA9IGhsanNcbmhsanMuZGVmYXVsdCA9IGhsanNcbm1vZHVsZS5leHBvcnRzID0gaGxqczsiLCAiLyoqXG4gKiBAbGljZW5zZSBNSVRcbiAqIHRvcGJhciAxLjAuMCwgMjAyMS0wMS0wNlxuICogaHR0cDovL2J1dW5ndXllbi5naXRodWIuaW8vdG9wYmFyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQnV1IE5ndXllblxuICovXG4oZnVuY3Rpb24gKHdpbmRvdywgZG9jdW1lbnQpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGF1bGlyaXNoLzE1Nzk2NzFcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGFzdFRpbWUgPSAwO1xuICAgIHZhciB2ZW5kb3JzID0gW1wibXNcIiwgXCJtb3pcIiwgXCJ3ZWJraXRcIiwgXCJvXCJdO1xuICAgIGZvciAodmFyIHggPSAwOyB4IDwgdmVuZG9ycy5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ICsreCkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9XG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgXCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcIl07XG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPVxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArIFwiQ2FuY2VsQW5pbWF0aW9uRnJhbWVcIl0gfHxcbiAgICAgICAgd2luZG93W3ZlbmRvcnNbeF0gKyBcIkNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZVwiXTtcbiAgICB9XG4gICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKVxuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uIChjYWxsYmFjaywgZWxlbWVudCkge1xuICAgICAgICB2YXIgY3VyclRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgdmFyIHRpbWVUb0NhbGwgPSBNYXRoLm1heCgwLCAxNiAtIChjdXJyVGltZSAtIGxhc3RUaW1lKSk7XG4gICAgICAgIHZhciBpZCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjYWxsYmFjayhjdXJyVGltZSArIHRpbWVUb0NhbGwpO1xuICAgICAgICB9LCB0aW1lVG9DYWxsKTtcbiAgICAgICAgbGFzdFRpbWUgPSBjdXJyVGltZSArIHRpbWVUb0NhbGw7XG4gICAgICAgIHJldHVybiBpZDtcbiAgICAgIH07XG4gICAgaWYgKCF3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUpXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICAgIH07XG4gIH0pKCk7XG5cbiAgdmFyIGNhbnZhcyxcbiAgICBwcm9ncmVzc1RpbWVySWQsXG4gICAgZmFkZVRpbWVySWQsXG4gICAgY3VycmVudFByb2dyZXNzLFxuICAgIHNob3dpbmcsXG4gICAgYWRkRXZlbnQgPSBmdW5jdGlvbiAoZWxlbSwgdHlwZSwgaGFuZGxlcikge1xuICAgICAgaWYgKGVsZW0uYWRkRXZlbnRMaXN0ZW5lcikgZWxlbS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIsIGZhbHNlKTtcbiAgICAgIGVsc2UgaWYgKGVsZW0uYXR0YWNoRXZlbnQpIGVsZW0uYXR0YWNoRXZlbnQoXCJvblwiICsgdHlwZSwgaGFuZGxlcik7XG4gICAgICBlbHNlIGVsZW1bXCJvblwiICsgdHlwZV0gPSBoYW5kbGVyO1xuICAgIH0sXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIGF1dG9SdW46IHRydWUsXG4gICAgICBiYXJUaGlja25lc3M6IDMsXG4gICAgICBiYXJDb2xvcnM6IHtcbiAgICAgICAgMDogXCJyZ2JhKDI2LCAgMTg4LCAxNTYsIC45KVwiLFxuICAgICAgICBcIi4yNVwiOiBcInJnYmEoNTIsICAxNTIsIDIxOSwgLjkpXCIsXG4gICAgICAgIFwiLjUwXCI6IFwicmdiYSgyNDEsIDE5NiwgMTUsICAuOSlcIixcbiAgICAgICAgXCIuNzVcIjogXCJyZ2JhKDIzMCwgMTI2LCAzNCwgIC45KVwiLFxuICAgICAgICBcIjEuMFwiOiBcInJnYmEoMjExLCA4NCwgIDAsICAgLjkpXCIsXG4gICAgICB9LFxuICAgICAgc2hhZG93Qmx1cjogMTAsXG4gICAgICBzaGFkb3dDb2xvcjogXCJyZ2JhKDAsICAgMCwgICAwLCAgIC42KVwiLFxuICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgIH0sXG4gICAgcmVwYWludCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgY2FudmFzLmhlaWdodCA9IG9wdGlvbnMuYmFyVGhpY2tuZXNzICogNTsgLy8gbmVlZCBzcGFjZSBmb3Igc2hhZG93XG5cbiAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICAgICAgY3R4LnNoYWRvd0JsdXIgPSBvcHRpb25zLnNoYWRvd0JsdXI7XG4gICAgICBjdHguc2hhZG93Q29sb3IgPSBvcHRpb25zLnNoYWRvd0NvbG9yO1xuXG4gICAgICB2YXIgbGluZUdyYWRpZW50ID0gY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIDAsIGNhbnZhcy53aWR0aCwgMCk7XG4gICAgICBmb3IgKHZhciBzdG9wIGluIG9wdGlvbnMuYmFyQ29sb3JzKVxuICAgICAgICBsaW5lR3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3AsIG9wdGlvbnMuYmFyQ29sb3JzW3N0b3BdKTtcbiAgICAgIGN0eC5saW5lV2lkdGggPSBvcHRpb25zLmJhclRoaWNrbmVzcztcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGN0eC5tb3ZlVG8oMCwgb3B0aW9ucy5iYXJUaGlja25lc3MgLyAyKTtcbiAgICAgIGN0eC5saW5lVG8oXG4gICAgICAgIE1hdGguY2VpbChjdXJyZW50UHJvZ3Jlc3MgKiBjYW52YXMud2lkdGgpLFxuICAgICAgICBvcHRpb25zLmJhclRoaWNrbmVzcyAvIDJcbiAgICAgICk7XG4gICAgICBjdHguc3Ryb2tlU3R5bGUgPSBsaW5lR3JhZGllbnQ7XG4gICAgICBjdHguc3Ryb2tlKCk7XG4gICAgfSxcbiAgICBjcmVhdGVDYW52YXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgdmFyIHN0eWxlID0gY2FudmFzLnN0eWxlO1xuICAgICAgc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XG4gICAgICBzdHlsZS50b3AgPSBzdHlsZS5sZWZ0ID0gc3R5bGUucmlnaHQgPSBzdHlsZS5tYXJnaW4gPSBzdHlsZS5wYWRkaW5nID0gMDtcbiAgICAgIHN0eWxlLnpJbmRleCA9IDEwMDAwMTtcbiAgICAgIHN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgIGlmIChvcHRpb25zLmNsYXNzTmFtZSkgY2FudmFzLmNsYXNzTGlzdC5hZGQob3B0aW9ucy5jbGFzc05hbWUpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpO1xuICAgICAgYWRkRXZlbnQod2luZG93LCBcInJlc2l6ZVwiLCByZXBhaW50KTtcbiAgICB9LFxuICAgIHRvcGJhciA9IHtcbiAgICAgIGNvbmZpZzogZnVuY3Rpb24gKG9wdHMpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG9wdHMpXG4gICAgICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSkgb3B0aW9uc1trZXldID0gb3B0c1trZXldO1xuICAgICAgfSxcbiAgICAgIHNob3c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHNob3dpbmcpIHJldHVybjtcbiAgICAgICAgc2hvd2luZyA9IHRydWU7XG4gICAgICAgIGlmIChmYWRlVGltZXJJZCAhPT0gbnVsbCkgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZhZGVUaW1lcklkKTtcbiAgICAgICAgaWYgKCFjYW52YXMpIGNyZWF0ZUNhbnZhcygpO1xuICAgICAgICBjYW52YXMuc3R5bGUub3BhY2l0eSA9IDE7XG4gICAgICAgIGNhbnZhcy5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgICB0b3BiYXIucHJvZ3Jlc3MoMCk7XG4gICAgICAgIGlmIChvcHRpb25zLmF1dG9SdW4pIHtcbiAgICAgICAgICAoZnVuY3Rpb24gbG9vcCgpIHtcbiAgICAgICAgICAgIHByb2dyZXNzVGltZXJJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobG9vcCk7XG4gICAgICAgICAgICB0b3BiYXIucHJvZ3Jlc3MoXG4gICAgICAgICAgICAgIFwiK1wiICsgMC4wNSAqIE1hdGgucG93KDEgLSBNYXRoLnNxcnQoY3VycmVudFByb2dyZXNzKSwgMilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb2dyZXNzOiBmdW5jdGlvbiAodG8pIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0byA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIGN1cnJlbnRQcm9ncmVzcztcbiAgICAgICAgaWYgKHR5cGVvZiB0byA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHRvID1cbiAgICAgICAgICAgICh0by5pbmRleE9mKFwiK1wiKSA+PSAwIHx8IHRvLmluZGV4T2YoXCItXCIpID49IDBcbiAgICAgICAgICAgICAgPyBjdXJyZW50UHJvZ3Jlc3NcbiAgICAgICAgICAgICAgOiAwKSArIHBhcnNlRmxvYXQodG8pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRQcm9ncmVzcyA9IHRvID4gMSA/IDEgOiB0bztcbiAgICAgICAgcmVwYWludCgpO1xuICAgICAgICByZXR1cm4gY3VycmVudFByb2dyZXNzO1xuICAgICAgfSxcbiAgICAgIGhpZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFzaG93aW5nKSByZXR1cm47XG4gICAgICAgIHNob3dpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHByb2dyZXNzVGltZXJJZCAhPSBudWxsKSB7XG4gICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHByb2dyZXNzVGltZXJJZCk7XG4gICAgICAgICAgcHJvZ3Jlc3NUaW1lcklkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICAoZnVuY3Rpb24gbG9vcCgpIHtcbiAgICAgICAgICBpZiAodG9wYmFyLnByb2dyZXNzKFwiKy4xXCIpID49IDEpIHtcbiAgICAgICAgICAgIGNhbnZhcy5zdHlsZS5vcGFjaXR5IC09IDAuMDU7XG4gICAgICAgICAgICBpZiAoY2FudmFzLnN0eWxlLm9wYWNpdHkgPD0gMC4wNSkge1xuICAgICAgICAgICAgICBjYW52YXMuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICBmYWRlVGltZXJJZCA9IG51bGw7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZmFkZVRpbWVySWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGxvb3ApO1xuICAgICAgICB9KSgpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gIGlmICh0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gdG9wYmFyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG4gICAgZGVmaW5lKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0b3BiYXI7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy50b3BiYXIgPSB0b3BiYXI7XG4gIH1cbn0uY2FsbCh0aGlzLCB3aW5kb3csIGRvY3VtZW50KSk7XG4iLCAiaW1wb3J0ICQgZnJvbSBcImpxdWVyeVwiO1xud2luZG93LiQgPSAkO1xud2luZG93LmpRdWVyeSA9ICQ7XG5cbmltcG9ydCBcImJvb3RzdHJhcFwiO1xuXG5pbXBvcnQgaGxqcyBmcm9tIFwiaGlnaGxpZ2h0LmpzXCI7XG4kKGZ1bmN0aW9uICgpIHsgaGxqcy5oaWdobGlnaHRBbGwoKTsgfSlcblxuaW1wb3J0IFwiLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgXCIuL2tteF9hbmltXCI7XG5cbi8vIElmIHlvdSB3YW50IHRvIHVzZSBQaG9lbml4IGNoYW5uZWxzLCBydW4gYG1peCBoZWxwIHBoeC5nZW4uY2hhbm5lbGBcbi8vIHRvIGdldCBzdGFydGVkIGFuZCB0aGVuIHVuY29tbWVudCB0aGUgbGluZSBiZWxvdy5cbi8vIGltcG9ydCBcIi4vdXNlcl9zb2NrZXQuanNcIlxuXG4vLyBJbmNsdWRlIHBob2VuaXhfaHRtbCB0byBoYW5kbGUgbWV0aG9kPVBVVC9ERUxFVEUgaW4gZm9ybXMgYW5kIGJ1dHRvbnMuXG5pbXBvcnQgXCJwaG9lbml4X2h0bWxcIjtcbi8vIEVzdGFibGlzaCBQaG9lbml4IFNvY2tldCBhbmQgTGl2ZVZpZXcgY29uZmlndXJhdGlvbi5cbmltcG9ydCB7U29ja2V0fSBmcm9tIFwicGhvZW5peFwiO1xuaW1wb3J0IHtMaXZlU29ja2V0fSBmcm9tIFwicGhvZW5peF9saXZlX3ZpZXdcIjtcbmltcG9ydCB0b3BiYXIgZnJvbSBcIi4uL3ZlbmRvci90b3BiYXJcIjtcblxubGV0IGNzcmZUb2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJtZXRhW25hbWU9J2NzcmYtdG9rZW4nXVwiKS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xubGV0IGxpdmVTb2NrZXQgPSBuZXcgTGl2ZVNvY2tldChcIi9saXZlXCIsIFNvY2tldCwge3BhcmFtczoge19jc3JmX3Rva2VuOiBjc3JmVG9rZW59fSk7XG5cbi8vIFNob3cgcHJvZ3Jlc3MgYmFyIG9uIGxpdmUgbmF2aWdhdGlvbiBhbmQgZm9ybSBzdWJtaXRzXG50b3BiYXIuY29uZmlnKHtiYXJDb2xvcnM6IHswOiBcIiMyOWRcIn0sIHNoYWRvd0NvbG9yOiBcInJnYmEoMCwgMCwgMCwgLjMpXCJ9KTtcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicGh4OnBhZ2UtbG9hZGluZy1zdGFydFwiLCBpbmZvID0+IHRvcGJhci5zaG93KCkpO1xud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwaHg6cGFnZS1sb2FkaW5nLXN0b3BcIiwgaW5mbyA9PiB0b3BiYXIuaGlkZSgpKTtcblxuLy8gY29ubmVjdCBpZiB0aGVyZSBhcmUgYW55IExpdmVWaWV3cyBvbiB0aGUgcGFnZVxubGl2ZVNvY2tldC5jb25uZWN0KCk7XG5cbi8vIGV4cG9zZSBsaXZlU29ja2V0IG9uIHdpbmRvdyBmb3Igd2ViIGNvbnNvbGUgZGVidWcgbG9ncyBhbmQgbGF0ZW5jeSBzaW11bGF0aW9uOlxuLy8gPj4gbGl2ZVNvY2tldC5lbmFibGVEZWJ1ZygpXG4vLyA+PiBsaXZlU29ja2V0LmVuYWJsZUxhdGVuY3lTaW0oMTAwMCkgIC8vIGVuYWJsZWQgZm9yIGR1cmF0aW9uIG9mIGJyb3dzZXIgc2Vzc2lvblxuLy8gPj4gbGl2ZVNvY2tldC5kaXNhYmxlTGF0ZW5jeVNpbSgpXG53aW5kb3cubGl2ZVNvY2tldCA9IGxpdmVTb2NrZXQ7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZW51bXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGlmaWVycy9pbmRleC5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IHBvcHBlckdlbmVyYXRvciwgZGV0ZWN0T3ZlcmZsb3csIGNyZWF0ZVBvcHBlciBhcyBjcmVhdGVQb3BwZXJCYXNlIH0gZnJvbSBcIi4vY3JlYXRlUG9wcGVyLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIH0gZnJvbSBcIi4vcG9wcGVyLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckxpdGUgfSBmcm9tIFwiLi9wb3BwZXItbGl0ZS5qc1wiOyIsICJleHBvcnQgdmFyIHRvcCA9ICd0b3AnO1xuZXhwb3J0IHZhciBib3R0b20gPSAnYm90dG9tJztcbmV4cG9ydCB2YXIgcmlnaHQgPSAncmlnaHQnO1xuZXhwb3J0IHZhciBsZWZ0ID0gJ2xlZnQnO1xuZXhwb3J0IHZhciBhdXRvID0gJ2F1dG8nO1xuZXhwb3J0IHZhciBiYXNlUGxhY2VtZW50cyA9IFt0b3AsIGJvdHRvbSwgcmlnaHQsIGxlZnRdO1xuZXhwb3J0IHZhciBzdGFydCA9ICdzdGFydCc7XG5leHBvcnQgdmFyIGVuZCA9ICdlbmQnO1xuZXhwb3J0IHZhciBjbGlwcGluZ1BhcmVudHMgPSAnY2xpcHBpbmdQYXJlbnRzJztcbmV4cG9ydCB2YXIgdmlld3BvcnQgPSAndmlld3BvcnQnO1xuZXhwb3J0IHZhciBwb3BwZXIgPSAncG9wcGVyJztcbmV4cG9ydCB2YXIgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZSc7XG5leHBvcnQgdmFyIHZhcmlhdGlvblBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovYmFzZVBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50ICsgXCItXCIgKyBzdGFydCwgcGxhY2VtZW50ICsgXCItXCIgKyBlbmRdKTtcbn0sIFtdKTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9bXS5jb25jYXQoYmFzZVBsYWNlbWVudHMsIFthdXRvXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50LCBwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pOyAvLyBtb2RpZmllcnMgdGhhdCBuZWVkIHRvIHJlYWQgdGhlIERPTVxuXG5leHBvcnQgdmFyIGJlZm9yZVJlYWQgPSAnYmVmb3JlUmVhZCc7XG5leHBvcnQgdmFyIHJlYWQgPSAncmVhZCc7XG5leHBvcnQgdmFyIGFmdGVyUmVhZCA9ICdhZnRlclJlYWQnOyAvLyBwdXJlLWxvZ2ljIG1vZGlmaWVyc1xuXG5leHBvcnQgdmFyIGJlZm9yZU1haW4gPSAnYmVmb3JlTWFpbic7XG5leHBvcnQgdmFyIG1haW4gPSAnbWFpbic7XG5leHBvcnQgdmFyIGFmdGVyTWFpbiA9ICdhZnRlck1haW4nOyAvLyBtb2RpZmllciB3aXRoIHRoZSBwdXJwb3NlIHRvIHdyaXRlIHRvIHRoZSBET00gKG9yIHdyaXRlIGludG8gYSBmcmFtZXdvcmsgc3RhdGUpXG5cbmV4cG9ydCB2YXIgYmVmb3JlV3JpdGUgPSAnYmVmb3JlV3JpdGUnO1xuZXhwb3J0IHZhciB3cml0ZSA9ICd3cml0ZSc7XG5leHBvcnQgdmFyIGFmdGVyV3JpdGUgPSAnYWZ0ZXJXcml0ZSc7XG5leHBvcnQgdmFyIG1vZGlmaWVyUGhhc2VzID0gW2JlZm9yZVJlYWQsIHJlYWQsIGFmdGVyUmVhZCwgYmVmb3JlTWFpbiwgbWFpbiwgYWZ0ZXJNYWluLCBiZWZvcmVXcml0ZSwgd3JpdGUsIGFmdGVyV3JpdGVdOyIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXROb2RlTmFtZShlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50ID8gKGVsZW1lbnQubm9kZU5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuXG4gIGlmIChub2RlLnRvU3RyaW5nKCkgIT09ICdbb2JqZWN0IFdpbmRvd10nKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgcmV0dXJuIG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdyA6IHdpbmRvdztcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufSIsICJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5FbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5IVE1MRWxlbWVudDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNTaGFkb3dSb290KG5vZGUpIHtcbiAgLy8gSUUgMTEgaGFzIG5vIFNoYWRvd1Jvb3RcbiAgaWYgKHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLlNoYWRvd1Jvb3Q7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgU2hhZG93Um9vdDtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfTsiLCAiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjsgLy8gVGhpcyBtb2RpZmllciB0YWtlcyB0aGUgc3R5bGVzIHByZXBhcmVkIGJ5IHRoZSBgY29tcHV0ZVN0eWxlc2AgbW9kaWZpZXJcbi8vIGFuZCBhcHBsaWVzIHRoZW0gdG8gdGhlIEhUTUxFbGVtZW50cyBzdWNoIGFzIHBvcHBlciBhbmQgYXJyb3dcblxuZnVuY3Rpb24gYXBwbHlTdHlsZXMoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlO1xuICBPYmplY3Qua2V5cyhzdGF0ZS5lbGVtZW50cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgIHZhciBzdHlsZSA9IHN0YXRlLnN0eWxlc1tuYW1lXSB8fCB7fTtcbiAgICB2YXIgYXR0cmlidXRlcyA9IHN0YXRlLmF0dHJpYnV0ZXNbbmFtZV0gfHwge307XG4gICAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1tuYW1lXTsgLy8gYXJyb3cgaXMgb3B0aW9uYWwgKyB2aXJ0dWFsIGVsZW1lbnRzXG5cbiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgIWdldE5vZGVOYW1lKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBGbG93IGRvZXNuJ3Qgc3VwcG9ydCB0byBleHRlbmQgdGhpcyBwcm9wZXJ0eSwgYnV0IGl0J3MgdGhlIG1vc3RcbiAgICAvLyBlZmZlY3RpdmUgd2F5IHRvIGFwcGx5IHN0eWxlcyB0byBhbiBIVE1MRWxlbWVudFxuICAgIC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXVxuXG5cbiAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlKTtcbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgdmFsdWUgPSBhdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUgPT09IHRydWUgPyAnJyA6IHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZTtcbiAgdmFyIGluaXRpYWxTdHlsZXMgPSB7XG4gICAgcG9wcGVyOiB7XG4gICAgICBwb3NpdGlvbjogc3RhdGUub3B0aW9ucy5zdHJhdGVneSxcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHRvcDogJzAnLFxuICAgICAgbWFyZ2luOiAnMCdcbiAgICB9LFxuICAgIGFycm93OiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJ1xuICAgIH0sXG4gICAgcmVmZXJlbmNlOiB7fVxuICB9O1xuICBPYmplY3QuYXNzaWduKHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZSwgaW5pdGlhbFN0eWxlcy5wb3BwZXIpO1xuICBzdGF0ZS5zdHlsZXMgPSBpbml0aWFsU3R5bGVzO1xuXG4gIGlmIChzdGF0ZS5lbGVtZW50cy5hcnJvdykge1xuICAgIE9iamVjdC5hc3NpZ24oc3RhdGUuZWxlbWVudHMuYXJyb3cuc3R5bGUsIGluaXRpYWxTdHlsZXMuYXJyb3cpO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBPYmplY3Qua2V5cyhzdGF0ZS5lbGVtZW50cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1tuYW1lXTtcbiAgICAgIHZhciBhdHRyaWJ1dGVzID0gc3RhdGUuYXR0cmlidXRlc1tuYW1lXSB8fCB7fTtcbiAgICAgIHZhciBzdHlsZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhzdGF0ZS5zdHlsZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBzdGF0ZS5zdHlsZXNbbmFtZV0gOiBpbml0aWFsU3R5bGVzW25hbWVdKTsgLy8gU2V0IGFsbCB2YWx1ZXMgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIHVuc2V0IHRoZW1cblxuICAgICAgdmFyIHN0eWxlID0gc3R5bGVQcm9wZXJ0aWVzLnJlZHVjZShmdW5jdGlvbiAoc3R5bGUsIHByb3BlcnR5KSB7XG4gICAgICAgIHN0eWxlW3Byb3BlcnR5XSA9ICcnO1xuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgICB9LCB7fSk7IC8vIGFycm93IGlzIG9wdGlvbmFsICsgdmlydHVhbCBlbGVtZW50c1xuXG4gICAgICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgIWdldE5vZGVOYW1lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50LnN0eWxlLCBzdHlsZSk7XG4gICAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnYXBwbHlTdHlsZXMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ3dyaXRlJyxcbiAgZm46IGFwcGx5U3R5bGVzLFxuICBlZmZlY3Q6IGVmZmVjdCxcbiAgcmVxdWlyZXM6IFsnY29tcHV0ZVN0eWxlcyddXG59OyIsICJpbXBvcnQgeyBhdXRvIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59IiwgImV4cG9ydCB2YXIgbWF4ID0gTWF0aC5tYXg7XG5leHBvcnQgdmFyIG1pbiA9IE1hdGgubWluO1xuZXhwb3J0IHZhciByb3VuZCA9IE1hdGgucm91bmQ7IiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVBU3RyaW5nKCkge1xuICB2YXIgdWFEYXRhID0gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7XG5cbiAgaWYgKHVhRGF0YSAhPSBudWxsICYmIHVhRGF0YS5icmFuZHMgJiYgQXJyYXkuaXNBcnJheSh1YURhdGEuYnJhbmRzKSkge1xuICAgIHJldHVybiB1YURhdGEuYnJhbmRzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0uYnJhbmQgKyBcIi9cIiArIGl0ZW0udmVyc2lvbjtcbiAgICB9KS5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbn0iLCAiaW1wb3J0IGdldFVBU3RyaW5nIGZyb20gXCIuLi91dGlscy91c2VyQWdlbnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzTGF5b3V0Vmlld3BvcnQoKSB7XG4gIHJldHVybiAhL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChnZXRVQVN0cmluZygpKTtcbn0iLCAiaW1wb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBpc0xheW91dFZpZXdwb3J0IGZyb20gXCIuL2lzTGF5b3V0Vmlld3BvcnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBpbmNsdWRlU2NhbGUsIGlzRml4ZWRTdHJhdGVneSkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc0ZpeGVkU3RyYXRlZ3kgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWRTdHJhdGVneSA9IGZhbHNlO1xuICB9XG5cbiAgdmFyIGNsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgc2NhbGVYID0gMTtcbiAgdmFyIHNjYWxlWSA9IDE7XG5cbiAgaWYgKGluY2x1ZGVTY2FsZSAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgc2NhbGVYID0gZWxlbWVudC5vZmZzZXRXaWR0aCA+IDAgPyByb3VuZChjbGllbnRSZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMSA6IDE7XG4gICAgc2NhbGVZID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgPiAwID8gcm91bmQoY2xpZW50UmVjdC5oZWlnaHQpIC8gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMSA6IDE7XG4gIH1cblxuICB2YXIgX3JlZiA9IGlzRWxlbWVudChlbGVtZW50KSA/IGdldFdpbmRvdyhlbGVtZW50KSA6IHdpbmRvdyxcbiAgICAgIHZpc3VhbFZpZXdwb3J0ID0gX3JlZi52aXN1YWxWaWV3cG9ydDtcblxuICB2YXIgYWRkVmlzdWFsT2Zmc2V0cyA9ICFpc0xheW91dFZpZXdwb3J0KCkgJiYgaXNGaXhlZFN0cmF0ZWd5O1xuICB2YXIgeCA9IChjbGllbnRSZWN0LmxlZnQgKyAoYWRkVmlzdWFsT2Zmc2V0cyAmJiB2aXN1YWxWaWV3cG9ydCA/IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQgOiAwKSkgLyBzY2FsZVg7XG4gIHZhciB5ID0gKGNsaWVudFJlY3QudG9wICsgKGFkZFZpc3VhbE9mZnNldHMgJiYgdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3AgOiAwKSkgLyBzY2FsZVk7XG4gIHZhciB3aWR0aCA9IGNsaWVudFJlY3Qud2lkdGggLyBzY2FsZVg7XG4gIHZhciBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlWTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgdG9wOiB5LFxuICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgIGxlZnQ6IHgsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59IiwgImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iLCAiaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGFpbnMocGFyZW50LCBjaGlsZCkge1xuICB2YXIgcm9vdE5vZGUgPSBjaGlsZC5nZXRSb290Tm9kZSAmJiBjaGlsZC5nZXRSb290Tm9kZSgpOyAvLyBGaXJzdCwgYXR0ZW1wdCB3aXRoIGZhc3RlciBuYXRpdmUgbWV0aG9kXG5cbiAgaWYgKHBhcmVudC5jb250YWlucyhjaGlsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyB0aGVuIGZhbGxiYWNrIHRvIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiB3aXRoIFNoYWRvdyBET00gc3VwcG9ydFxuICBlbHNlIGlmIChyb290Tm9kZSAmJiBpc1NoYWRvd1Jvb3Qocm9vdE5vZGUpKSB7XG4gICAgICB2YXIgbmV4dCA9IGNoaWxkO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuZXh0ICYmIHBhcmVudC5pc1NhbWVOb2RlKG5leHQpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBuZWVkIGEgYmV0dGVyIHdheSB0byBoYW5kbGUgdGhpcy4uLlxuXG5cbiAgICAgICAgbmV4dCA9IG5leHQucGFyZW50Tm9kZSB8fCBuZXh0Lmhvc3Q7XG4gICAgICB9IHdoaWxlIChuZXh0KTtcbiAgICB9IC8vIEdpdmUgdXAsIHRoZSByZXN1bHQgaXMgZmFsc2VcblxuXG4gIHJldHVybiBmYWxzZTtcbn0iLCAiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0V2luZG93KGVsZW1lbnQpLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG59IiwgImltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNUYWJsZUVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gWyd0YWJsZScsICd0ZCcsICd0aCddLmluZGV4T2YoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpID49IDA7XG59IiwgImltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSB7XG4gIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgcmV0dXJuICgoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gIGVsZW1lbnQuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50O1xufSIsICJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgeyBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRQYXJlbnROb2RlKGVsZW1lbnQpIHtcbiAgaWYgKGdldE5vZGVOYW1lKGVsZW1lbnQpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiAoLy8gdGhpcyBpcyBhIHF1aWNrZXIgKGJ1dCBsZXNzIHR5cGUgc2FmZSkgd2F5IHRvIHNhdmUgcXVpdGUgc29tZSBieXRlcyBmcm9tIHRoZSBidW5kbGVcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG4gICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gICAgZWxlbWVudC5hc3NpZ25lZFNsb3QgfHwgLy8gc3RlcCBpbnRvIHRoZSBzaGFkb3cgRE9NIG9mIHRoZSBwYXJlbnQgb2YgYSBzbG90dGVkIG5vZGVcbiAgICBlbGVtZW50LnBhcmVudE5vZGUgfHwgKCAvLyBET00gRWxlbWVudCBkZXRlY3RlZFxuICAgIGlzU2hhZG93Um9vdChlbGVtZW50KSA/IGVsZW1lbnQuaG9zdCA6IG51bGwpIHx8IC8vIFNoYWRvd1Jvb3QgZGV0ZWN0ZWRcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogSFRNTEVsZW1lbnQgaXMgYSBOb2RlXG4gICAgZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpIC8vIGZhbGxiYWNrXG5cbiAgKTtcbn0iLCAiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCwgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGlzVGFibGVFbGVtZW50IGZyb20gXCIuL2lzVGFibGVFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgZ2V0VUFTdHJpbmcgZnJvbSBcIi4uL3V0aWxzL3VzZXJBZ2VudC5qc1wiO1xuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvODM3XG4gIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lm9mZnNldFBhcmVudDtcbn0gLy8gYC5vZmZzZXRQYXJlbnRgIHJlcG9ydHMgYG51bGxgIGZvciBmaXhlZCBlbGVtZW50cywgd2hpbGUgYWJzb2x1dGUgZWxlbWVudHNcbi8vIHJldHVybiB0aGUgY29udGFpbmluZyBibG9ja1xuXG5cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIHZhciBpc0ZpcmVmb3ggPSAvZmlyZWZveC9pLnRlc3QoZ2V0VUFTdHJpbmcoKSk7XG4gIHZhciBpc0lFID0gL1RyaWRlbnQvaS50ZXN0KGdldFVBU3RyaW5nKCkpO1xuXG4gIGlmIChpc0lFICYmIGlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAvLyBJbiBJRSA5LCAxMCBhbmQgMTEgZml4ZWQgZWxlbWVudHMgY29udGFpbmluZyBibG9jayBpcyBhbHdheXMgZXN0YWJsaXNoZWQgYnkgdGhlIHZpZXdwb3J0XG4gICAgdmFyIGVsZW1lbnRDc3MgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuXG4gICAgaWYgKGVsZW1lbnRDc3MucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG5cbiAgaWYgKGlzU2hhZG93Um9vdChjdXJyZW50Tm9kZSkpIHtcbiAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLmhvc3Q7XG4gIH1cblxuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgWydodG1sJywgJ2JvZHknXS5pbmRleE9mKGdldE5vZGVOYW1lKGN1cnJlbnROb2RlKSkgPCAwKSB7XG4gICAgdmFyIGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpOyAvLyBUaGlzIGlzIG5vbi1leGhhdXN0aXZlIGJ1dCBjb3ZlcnMgdGhlIG1vc3QgY29tbW9uIENTUyBwcm9wZXJ0aWVzIHRoYXRcbiAgICAvLyBjcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG5cbiAgICBpZiAoY3NzLnRyYW5zZm9ybSAhPT0gJ25vbmUnIHx8IGNzcy5wZXJzcGVjdGl2ZSAhPT0gJ25vbmUnIHx8IGNzcy5jb250YWluID09PSAncGFpbnQnIHx8IFsndHJhbnNmb3JtJywgJ3BlcnNwZWN0aXZlJ10uaW5kZXhPZihjc3Mud2lsbENoYW5nZSkgIT09IC0xIHx8IGlzRmlyZWZveCAmJiBjc3Mud2lsbENoYW5nZSA9PT0gJ2ZpbHRlcicgfHwgaXNGaXJlZm94ICYmIGNzcy5maWx0ZXIgJiYgY3NzLmZpbHRlciAhPT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50KTtcbiAgfVxuXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdodG1sJyB8fCBnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpID09PSAnYm9keScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luZG93O1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBsYWNlbWVudCkgPj0gMCA/ICd4JyA6ICd5Jztcbn0iLCAiaW1wb3J0IHsgbWF4IGFzIG1hdGhNYXgsIG1pbiBhcyBtYXRoTWluIH0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhpbihtaW4sIHZhbHVlLCBtYXgpIHtcbiAgcmV0dXJuIG1hdGhNYXgobWluLCBtYXRoTWluKHZhbHVlLCBtYXgpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3aXRoaW5NYXhDbGFtcChtaW4sIHZhbHVlLCBtYXgpIHtcbiAgdmFyIHYgPSB3aXRoaW4obWluLCB2YWx1ZSwgbWF4KTtcbiAgcmV0dXJuIHYgPiBtYXggPyBtYXggOiB2O1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRGcmVzaFNpZGVPYmplY3QoKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwXG4gIH07XG59IiwgImltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4vZ2V0RnJlc2hTaWRlT2JqZWN0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZVBhZGRpbmdPYmplY3QocGFkZGluZ09iamVjdCkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZ2V0RnJlc2hTaWRlT2JqZWN0KCksIHBhZGRpbmdPYmplY3QpO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBleHBhbmRUb0hhc2hNYXAodmFsdWUsIGtleXMpIHtcbiAgcmV0dXJuIGtleXMucmVkdWNlKGZ1bmN0aW9uIChoYXNoTWFwLCBrZXkpIHtcbiAgICBoYXNoTWFwW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gaGFzaE1hcDtcbiAgfSwge30pO1xufSIsICJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4uL2RvbS11dGlscy9jb250YWlucy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4gfSBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuLi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4uL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qc1wiO1xuaW1wb3J0IHsgbGVmdCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB0b3AsIGJvdHRvbSB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB0b1BhZGRpbmdPYmplY3QgPSBmdW5jdGlvbiB0b1BhZGRpbmdPYmplY3QocGFkZGluZywgc3RhdGUpIHtcbiAgcGFkZGluZyA9IHR5cGVvZiBwYWRkaW5nID09PSAnZnVuY3Rpb24nID8gcGFkZGluZyhPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHBhZGRpbmc7XG4gIHJldHVybiBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xufTtcblxuZnVuY3Rpb24gYXJyb3coX3JlZikge1xuICB2YXIgX3N0YXRlJG1vZGlmaWVyc0RhdGEkO1xuXG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93O1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cztcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBheGlzID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KGJhc2VQbGFjZW1lbnQpO1xuICB2YXIgaXNWZXJ0aWNhbCA9IFtsZWZ0LCByaWdodF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSA+PSAwO1xuICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICBpZiAoIWFycm93RWxlbWVudCB8fCAhcG9wcGVyT2Zmc2V0cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gdG9QYWRkaW5nT2JqZWN0KG9wdGlvbnMucGFkZGluZywgc3RhdGUpO1xuICB2YXIgYXJyb3dSZWN0ID0gZ2V0TGF5b3V0UmVjdChhcnJvd0VsZW1lbnQpO1xuICB2YXIgbWluUHJvcCA9IGF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gIHZhciBtYXhQcm9wID0gYXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gIHZhciBlbmREaWZmID0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2xlbl0gKyBzdGF0ZS5yZWN0cy5yZWZlcmVuY2VbYXhpc10gLSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucG9wcGVyW2xlbl07XG4gIHZhciBzdGFydERpZmYgPSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdO1xuICB2YXIgYXJyb3dPZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQoYXJyb3dFbGVtZW50KTtcbiAgdmFyIGNsaWVudFNpemUgPSBhcnJvd09mZnNldFBhcmVudCA/IGF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudEhlaWdodCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50V2lkdGggfHwgMCA6IDA7XG4gIHZhciBjZW50ZXJUb1JlZmVyZW5jZSA9IGVuZERpZmYgLyAyIC0gc3RhcnREaWZmIC8gMjsgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBwb3BwZXIgaWYgdGhlIGNlbnRlciBwb2ludCBpc1xuICAvLyBvdXRzaWRlIG9mIHRoZSBwb3BwZXIgYm91bmRzXG5cbiAgdmFyIG1pbiA9IHBhZGRpbmdPYmplY3RbbWluUHJvcF07XG4gIHZhciBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dSZWN0W2xlbl0gLSBwYWRkaW5nT2JqZWN0W21heFByb3BdO1xuICB2YXIgY2VudGVyID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd1JlY3RbbGVuXSAvIDIgKyBjZW50ZXJUb1JlZmVyZW5jZTtcbiAgdmFyIG9mZnNldCA9IHdpdGhpbihtaW4sIGNlbnRlciwgbWF4KTsgLy8gUHJldmVudHMgYnJlYWtpbmcgc3ludGF4IGhpZ2hsaWdodGluZy4uLlxuXG4gIHZhciBheGlzUHJvcCA9IGF4aXM7XG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSAoX3N0YXRlJG1vZGlmaWVyc0RhdGEkID0ge30sIF9zdGF0ZSRtb2RpZmllcnNEYXRhJFtheGlzUHJvcF0gPSBvZmZzZXQsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJC5jZW50ZXJPZmZzZXQgPSBvZmZzZXQgLSBjZW50ZXIsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJCk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmMi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZWxlbWVudCA9IG9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGFycm93RWxlbWVudCA9IF9vcHRpb25zJGVsZW1lbnQgPT09IHZvaWQgMCA/ICdbZGF0YS1wb3BwZXItYXJyb3ddJyA6IF9vcHRpb25zJGVsZW1lbnQ7XG5cbiAgaWYgKGFycm93RWxlbWVudCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIENTUyBzZWxlY3RvclxuXG5cbiAgaWYgKHR5cGVvZiBhcnJvd0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgYXJyb3dFbGVtZW50ID0gc3RhdGUuZWxlbWVudHMucG9wcGVyLnF1ZXJ5U2VsZWN0b3IoYXJyb3dFbGVtZW50KTtcblxuICAgIGlmICghYXJyb3dFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb250YWlucyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIsIGFycm93RWxlbWVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzdGF0ZS5lbGVtZW50cy5hcnJvdyA9IGFycm93RWxlbWVudDtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2Fycm93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IGFycm93LFxuICBlZmZlY3Q6IGVmZmVjdCxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddXG59OyIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn0iLCAiaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLCBlbmQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB1bnNldFNpZGVzID0ge1xuICB0b3A6ICdhdXRvJyxcbiAgcmlnaHQ6ICdhdXRvJyxcbiAgYm90dG9tOiAnYXV0bycsXG4gIGxlZnQ6ICdhdXRvJ1xufTsgLy8gUm91bmQgdGhlIG9mZnNldHMgdG8gdGhlIG5lYXJlc3Qgc3VpdGFibGUgc3VicGl4ZWwgYmFzZWQgb24gdGhlIERQUi5cbi8vIFpvb21pbmcgY2FuIGNoYW5nZSB0aGUgRFBSLCBidXQgaXQgc2VlbXMgdG8gcmVwb3J0IGEgdmFsdWUgdGhhdCB3aWxsXG4vLyBjbGVhbmx5IGRpdmlkZSB0aGUgdmFsdWVzIGludG8gdGhlIGFwcHJvcHJpYXRlIHN1YnBpeGVscy5cblxuZnVuY3Rpb24gcm91bmRPZmZzZXRzQnlEUFIoX3JlZiwgd2luKSB7XG4gIHZhciB4ID0gX3JlZi54LFxuICAgICAgeSA9IF9yZWYueTtcbiAgdmFyIGRwciA9IHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG4gIHJldHVybiB7XG4gICAgeDogcm91bmQoeCAqIGRwcikgLyBkcHIgfHwgMCxcbiAgICB5OiByb3VuZCh5ICogZHByKSAvIGRwciB8fCAwXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb1N0eWxlcyhfcmVmMikge1xuICB2YXIgX09iamVjdCRhc3NpZ24yO1xuXG4gIHZhciBwb3BwZXIgPSBfcmVmMi5wb3BwZXIsXG4gICAgICBwb3BwZXJSZWN0ID0gX3JlZjIucG9wcGVyUmVjdCxcbiAgICAgIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICAgIHZhcmlhdGlvbiA9IF9yZWYyLnZhcmlhdGlvbixcbiAgICAgIG9mZnNldHMgPSBfcmVmMi5vZmZzZXRzLFxuICAgICAgcG9zaXRpb24gPSBfcmVmMi5wb3NpdGlvbixcbiAgICAgIGdwdUFjY2VsZXJhdGlvbiA9IF9yZWYyLmdwdUFjY2VsZXJhdGlvbixcbiAgICAgIGFkYXB0aXZlID0gX3JlZjIuYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHMgPSBfcmVmMi5yb3VuZE9mZnNldHMsXG4gICAgICBpc0ZpeGVkID0gX3JlZjIuaXNGaXhlZDtcbiAgdmFyIF9vZmZzZXRzJHggPSBvZmZzZXRzLngsXG4gICAgICB4ID0gX29mZnNldHMkeCA9PT0gdm9pZCAwID8gMCA6IF9vZmZzZXRzJHgsXG4gICAgICBfb2Zmc2V0cyR5ID0gb2Zmc2V0cy55LFxuICAgICAgeSA9IF9vZmZzZXRzJHkgPT09IHZvaWQgMCA/IDAgOiBfb2Zmc2V0cyR5O1xuXG4gIHZhciBfcmVmMyA9IHR5cGVvZiByb3VuZE9mZnNldHMgPT09ICdmdW5jdGlvbicgPyByb3VuZE9mZnNldHMoe1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9KSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjMueDtcbiAgeSA9IF9yZWYzLnk7XG4gIHZhciBoYXNYID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneCcpO1xuICB2YXIgaGFzWSA9IG9mZnNldHMuaGFzT3duUHJvcGVydHkoJ3knKTtcbiAgdmFyIHNpZGVYID0gbGVmdDtcbiAgdmFyIHNpZGVZID0gdG9wO1xuICB2YXIgd2luID0gd2luZG93O1xuXG4gIGlmIChhZGFwdGl2ZSkge1xuICAgIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKTtcbiAgICB2YXIgaGVpZ2h0UHJvcCA9ICdjbGllbnRIZWlnaHQnO1xuICAgIHZhciB3aWR0aFByb3AgPSAnY2xpZW50V2lkdGgnO1xuXG4gICAgaWYgKG9mZnNldFBhcmVudCA9PT0gZ2V0V2luZG93KHBvcHBlcikpIHtcbiAgICAgIG9mZnNldFBhcmVudCA9IGdldERvY3VtZW50RWxlbWVudChwb3BwZXIpO1xuXG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgICBoZWlnaHRQcm9wID0gJ3Njcm9sbEhlaWdodCc7XG4gICAgICAgIHdpZHRoUHJvcCA9ICdzY3JvbGxXaWR0aCc7XG4gICAgICB9XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYXN0XTogZm9yY2UgdHlwZSByZWZpbmVtZW50LCB3ZSBjb21wYXJlIG9mZnNldFBhcmVudCB3aXRoIHdpbmRvdyBhYm92ZSwgYnV0IEZsb3cgZG9lc24ndCBkZXRlY3QgaXRcblxuXG4gICAgb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50O1xuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gdG9wIHx8IChwbGFjZW1lbnQgPT09IGxlZnQgfHwgcGxhY2VtZW50ID09PSByaWdodCkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVZID0gYm90dG9tO1xuICAgICAgdmFyIG9mZnNldFkgPSBpc0ZpeGVkICYmIG9mZnNldFBhcmVudCA9PT0gd2luICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgICAgIG9mZnNldFBhcmVudFtoZWlnaHRQcm9wXTtcbiAgICAgIHkgLT0gb2Zmc2V0WSAtIHBvcHBlclJlY3QuaGVpZ2h0O1xuICAgICAgeSAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gbGVmdCB8fCAocGxhY2VtZW50ID09PSB0b3AgfHwgcGxhY2VtZW50ID09PSBib3R0b20pICYmIHZhcmlhdGlvbiA9PT0gZW5kKSB7XG4gICAgICBzaWRlWCA9IHJpZ2h0O1xuICAgICAgdmFyIG9mZnNldFggPSBpc0ZpeGVkICYmIG9mZnNldFBhcmVudCA9PT0gd2luICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC53aWR0aCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgb2Zmc2V0UGFyZW50W3dpZHRoUHJvcF07XG4gICAgICB4IC09IG9mZnNldFggLSBwb3BwZXJSZWN0LndpZHRoO1xuICAgICAgeCAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHBvc2l0aW9uOiBwb3NpdGlvblxuICB9LCBhZGFwdGl2ZSAmJiB1bnNldFNpZGVzKTtcblxuICB2YXIgX3JlZjQgPSByb3VuZE9mZnNldHMgPT09IHRydWUgPyByb3VuZE9mZnNldHNCeURQUih7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH0sIGdldFdpbmRvdyhwb3BwZXIpKSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjQueDtcbiAgeSA9IF9yZWY0Lnk7XG5cbiAgaWYgKGdwdUFjY2VsZXJhdGlvbikge1xuICAgIHZhciBfT2JqZWN0JGFzc2lnbjtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIChfT2JqZWN0JGFzc2lnbiA9IHt9LCBfT2JqZWN0JGFzc2lnbltzaWRlWV0gPSBoYXNZID8gJzAnIDogJycsIF9PYmplY3QkYXNzaWduW3NpZGVYXSA9IGhhc1ggPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ24udHJhbnNmb3JtID0gKHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpIDw9IDEgPyBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiIDogXCJ0cmFuc2xhdGUzZChcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4LCAwKVwiLCBfT2JqZWN0JGFzc2lnbikpO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduMiA9IHt9LCBfT2JqZWN0JGFzc2lnbjJbc2lkZVldID0gaGFzWSA/IHkgKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yW3NpZGVYXSA9IGhhc1ggPyB4ICsgXCJweFwiIDogJycsIF9PYmplY3QkYXNzaWduMi50cmFuc2Zvcm0gPSAnJywgX09iamVjdCRhc3NpZ24yKSk7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVTdHlsZXMoX3JlZjUpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjUuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjUub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJGdwdUFjY2VsZXJhdCA9IG9wdGlvbnMuZ3B1QWNjZWxlcmF0aW9uLFxuICAgICAgZ3B1QWNjZWxlcmF0aW9uID0gX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZ3B1QWNjZWxlcmF0LFxuICAgICAgX29wdGlvbnMkYWRhcHRpdmUgPSBvcHRpb25zLmFkYXB0aXZlLFxuICAgICAgYWRhcHRpdmUgPSBfb3B0aW9ucyRhZGFwdGl2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJGFkYXB0aXZlLFxuICAgICAgX29wdGlvbnMkcm91bmRPZmZzZXRzID0gb3B0aW9ucy5yb3VuZE9mZnNldHMsXG4gICAgICByb3VuZE9mZnNldHMgPSBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRyb3VuZE9mZnNldHM7XG4gIHZhciBjb21tb25TdHlsZXMgPSB7XG4gICAgcGxhY2VtZW50OiBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCksXG4gICAgdmFyaWF0aW9uOiBnZXRWYXJpYXRpb24oc3RhdGUucGxhY2VtZW50KSxcbiAgICBwb3BwZXI6IHN0YXRlLmVsZW1lbnRzLnBvcHBlcixcbiAgICBwb3BwZXJSZWN0OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgZ3B1QWNjZWxlcmF0aW9uOiBncHVBY2NlbGVyYXRpb24sXG4gICAgaXNGaXhlZDogc3RhdGUub3B0aW9ucy5zdHJhdGVneSA9PT0gJ2ZpeGVkJ1xuICB9O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zdHlsZXMucG9wcGVyLCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyxcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgYWRhcHRpdmU6IGFkYXB0aXZlLFxuICAgICAgcm91bmRPZmZzZXRzOiByb3VuZE9mZnNldHNcbiAgICB9KSkpO1xuICB9XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3cgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5hcnJvdyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5hcnJvdywgbWFwVG9TdHlsZXMoT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCB7XG4gICAgICBvZmZzZXRzOiBzdGF0ZS5tb2RpZmllcnNEYXRhLmFycm93LFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBhZGFwdGl2ZTogZmFsc2UsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBzdGF0ZS5hdHRyaWJ1dGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyLCB7XG4gICAgJ2RhdGEtcG9wcGVyLXBsYWNlbWVudCc6IHN0YXRlLnBsYWNlbWVudFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2NvbXB1dGVTdHlsZXMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ2JlZm9yZVdyaXRlJyxcbiAgZm46IGNvbXB1dGVTdHlsZXMsXG4gIGRhdGE6IHt9XG59OyIsICJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0V2luZG93LmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHBhc3NpdmUgPSB7XG4gIHBhc3NpdmU6IHRydWVcbn07XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBpbnN0YW5jZSA9IF9yZWYuaW5zdGFuY2UsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkc2Nyb2xsID0gb3B0aW9ucy5zY3JvbGwsXG4gICAgICBzY3JvbGwgPSBfb3B0aW9ucyRzY3JvbGwgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRzY3JvbGwsXG4gICAgICBfb3B0aW9ucyRyZXNpemUgPSBvcHRpb25zLnJlc2l6ZSxcbiAgICAgIHJlc2l6ZSA9IF9vcHRpb25zJHJlc2l6ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJlc2l6ZTtcbiAgdmFyIHdpbmRvdyA9IGdldFdpbmRvdyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIpO1xuICB2YXIgc2Nyb2xsUGFyZW50cyA9IFtdLmNvbmNhdChzdGF0ZS5zY3JvbGxQYXJlbnRzLnJlZmVyZW5jZSwgc3RhdGUuc2Nyb2xsUGFyZW50cy5wb3BwZXIpO1xuXG4gIGlmIChzY3JvbGwpIHtcbiAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24gKHNjcm9sbFBhcmVudCkge1xuICAgICAgc2Nyb2xsUGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfSk7XG4gIH1cblxuICBpZiAocmVzaXplKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmIChzY3JvbGwpIHtcbiAgICAgIHNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2Nyb2xsUGFyZW50KSB7XG4gICAgICAgIHNjcm9sbFBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc2l6ZSkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfVxuICB9O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZXZlbnRMaXN0ZW5lcnMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ3dyaXRlJyxcbiAgZm46IGZ1bmN0aW9uIGZuKCkge30sXG4gIGVmZmVjdDogZWZmZWN0LFxuICBkYXRhOiB7fVxufTsiLCAidmFyIGhhc2ggPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59IiwgInZhciBoYXNoID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xuICAgIHJldHVybiBoYXNoW21hdGNoZWRdO1xuICB9KTtcbn0iLCAiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbChub2RlKSB7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3cobm9kZSk7XG4gIHZhciBzY3JvbGxMZWZ0ID0gd2luLnBhZ2VYT2Zmc2V0O1xuICB2YXIgc2Nyb2xsVG9wID0gd2luLnBhZ2VZT2Zmc2V0O1xuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IHNjcm9sbExlZnQsXG4gICAgc2Nyb2xsVG9wOiBzY3JvbGxUb3BcbiAgfTtcbn0iLCAiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSB7XG4gIC8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbiAgLy8gaW5jb3JyZWN0IGZvciBSVEwuXG4gIC8vIFBvcHBlciAxIGlzIGJyb2tlbiBpbiB0aGlzIGNhc2UgYW5kIG5ldmVyIGhhZCBhIGJ1ZyByZXBvcnQgc28gbGV0J3MgYXNzdW1lXG4gIC8vIGl0J3Mgbm90IGFuIGlzc3VlLiBJIGRvbid0IHRoaW5rIGFueW9uZSBldmVyIHNwZWNpZmllcyB3aWR0aCBvbiA8aHRtbD5cbiAgLy8gYW55d2F5LlxuICAvLyBCcm93c2VycyB3aGVyZSB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBjYXVzZSBhbiBpc3N1ZSByZXBvcnQgYDBgIGZvclxuICAvLyB0aGlzIChlLmcuIEVkZ2UgMjAxOSwgSUUxMSwgU2FmYXJpKVxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldFdpbmRvd1Njcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xufSIsICJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGxCYXJYIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbEJhclguanNcIjtcbmltcG9ydCBpc0xheW91dFZpZXdwb3J0IGZyb20gXCIuL2lzTGF5b3V0Vmlld3BvcnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICB2YXIgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgdmFyIHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICB2YXIgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICB2YXIgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIHZhciB4ID0gMDtcbiAgdmFyIHkgPSAwO1xuXG4gIGlmICh2aXN1YWxWaWV3cG9ydCkge1xuICAgIHdpZHRoID0gdmlzdWFsVmlld3BvcnQud2lkdGg7XG4gICAgaGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQuaGVpZ2h0O1xuICAgIHZhciBsYXlvdXRWaWV3cG9ydCA9IGlzTGF5b3V0Vmlld3BvcnQoKTtcblxuICAgIGlmIChsYXlvdXRWaWV3cG9ydCB8fCAhbGF5b3V0Vmlld3BvcnQgJiYgc3RyYXRlZ3kgPT09ICdmaXhlZCcpIHtcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgeSA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSxcbiAgICB5OiB5XG4gIH07XG59IiwgImltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsQmFyWCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IHsgbWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjsgLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxuLy8gb2YgdGhlIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCByZWN0IGJvdW5kcyBpZiBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICB2YXIgX2VsZW1lbnQkb3duZXJEb2N1bWVuO1xuXG4gIHZhciBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICB2YXIgd2luU2Nyb2xsID0gZ2V0V2luZG93U2Nyb2xsKGVsZW1lbnQpO1xuICB2YXIgYm9keSA9IChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keTtcbiAgdmFyIHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkgPyBib2R5LnNjcm9sbFdpZHRoIDogMCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKTtcbiAgdmFyIGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkgPyBib2R5LnNjcm9sbEhlaWdodCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudEhlaWdodCA6IDApO1xuICB2YXIgeCA9IC13aW5TY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIHZhciB5ID0gLXdpblNjcm9sbC5zY3JvbGxUb3A7XG5cbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSB8fCBodG1sKS5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgeCArPSBtYXgoaHRtbC5jbGllbnRXaWR0aCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKSAtIHdpZHRoO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59IiwgImltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU2Nyb2xsUGFyZW50KGVsZW1lbnQpIHtcbiAgLy8gRmlyZWZveCB3YW50cyB1cyB0byBjaGVjayBgLXhgIGFuZCBgLXlgIHZhcmlhdGlvbnMgYXMgd2VsbFxuICB2YXIgX2dldENvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLFxuICAgICAgb3ZlcmZsb3cgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvdyxcbiAgICAgIG92ZXJmbG93WCA9IF9nZXRDb21wdXRlZFN0eWxlLm92ZXJmbG93WCxcbiAgICAgIG92ZXJmbG93WSA9IF9nZXRDb21wdXRlZFN0eWxlLm92ZXJmbG93WTtcblxuICByZXR1cm4gL2F1dG98c2Nyb2xsfG92ZXJsYXl8aGlkZGVuLy50ZXN0KG92ZXJmbG93ICsgb3ZlcmZsb3dZICsgb3ZlcmZsb3dYKTtcbn0iLCAiaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGlzU2Nyb2xsUGFyZW50IGZyb20gXCIuL2lzU2Nyb2xsUGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQobm9kZSkge1xuICBpZiAoWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5kZXhPZihnZXROb2RlTmFtZShub2RlKSkgPj0gMCkge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cblxuICBpZiAoaXNIVE1MRWxlbWVudChub2RlKSAmJiBpc1Njcm9sbFBhcmVudChub2RlKSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKG5vZGUpKTtcbn0iLCAiaW1wb3J0IGdldFNjcm9sbFBhcmVudCBmcm9tIFwiLi9nZXRTY3JvbGxQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgaXNTY3JvbGxQYXJlbnQgZnJvbSBcIi4vaXNTY3JvbGxQYXJlbnQuanNcIjtcbi8qXG5naXZlbiBhIERPTSBlbGVtZW50LCByZXR1cm4gdGhlIGxpc3Qgb2YgYWxsIHNjcm9sbCBwYXJlbnRzLCB1cCB0aGUgbGlzdCBvZiBhbmNlc29yc1xudW50aWwgd2UgZ2V0IHRvIHRoZSB0b3Agd2luZG93IG9iamVjdC4gVGhpcyBsaXN0IGlzIHdoYXQgd2UgYXR0YWNoIHNjcm9sbCBsaXN0ZW5lcnNcbnRvLCBiZWNhdXNlIGlmIGFueSBvZiB0aGVzZSBwYXJlbnQgZWxlbWVudHMgc2Nyb2xsLCB3ZSdsbCBuZWVkIHRvIHJlLWNhbGN1bGF0ZSB0aGVcbnJlZmVyZW5jZSBlbGVtZW50J3MgcG9zaXRpb24uXG4qL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0U2Nyb2xsUGFyZW50cyhlbGVtZW50LCBsaXN0KSB7XG4gIHZhciBfZWxlbWVudCRvd25lckRvY3VtZW47XG5cbiAgaWYgKGxpc3QgPT09IHZvaWQgMCkge1xuICAgIGxpc3QgPSBbXTtcbiAgfVxuXG4gIHZhciBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCk7XG4gIHZhciBpc0JvZHkgPSBzY3JvbGxQYXJlbnQgPT09ICgoX2VsZW1lbnQkb3duZXJEb2N1bWVuID0gZWxlbWVudC5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2VsZW1lbnQkb3duZXJEb2N1bWVuLmJvZHkpO1xuICB2YXIgd2luID0gZ2V0V2luZG93KHNjcm9sbFBhcmVudCk7XG4gIHZhciB0YXJnZXQgPSBpc0JvZHkgPyBbd2luXS5jb25jYXQod2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc1Njcm9sbFBhcmVudChzY3JvbGxQYXJlbnQpID8gc2Nyb2xsUGFyZW50IDogW10pIDogc2Nyb2xsUGFyZW50O1xuICB2YXIgdXBkYXRlZExpc3QgPSBsaXN0LmNvbmNhdCh0YXJnZXQpO1xuICByZXR1cm4gaXNCb2R5ID8gdXBkYXRlZExpc3QgOiAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogaXNCb2R5IHRlbGxzIHVzIHRhcmdldCB3aWxsIGJlIGFuIEhUTUxFbGVtZW50IGhlcmVcbiAgdXBkYXRlZExpc3QuY29uY2F0KGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUodGFyZ2V0KSkpO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZWN0VG9DbGllbnRSZWN0KHJlY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHJlY3QsIHtcbiAgICBsZWZ0OiByZWN0LngsXG4gICAgdG9wOiByZWN0LnksXG4gICAgcmlnaHQ6IHJlY3QueCArIHJlY3Qud2lkdGgsXG4gICAgYm90dG9tOiByZWN0LnkgKyByZWN0LmhlaWdodFxuICB9KTtcbn0iLCAiaW1wb3J0IHsgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWaWV3cG9ydFJlY3QgZnJvbSBcIi4vZ2V0Vmlld3BvcnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRSZWN0IGZyb20gXCIuL2dldERvY3VtZW50UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4vY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4uL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCB7IG1heCwgbWluIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgdmFyIHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgZmFsc2UsIHN0cmF0ZWd5ID09PSAnZml4ZWQnKTtcbiAgcmVjdC50b3AgPSByZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICByZWN0LmxlZnQgPSByZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIHJlY3QuYm90dG9tID0gcmVjdC50b3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmVjdC5yaWdodCA9IHJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHJlY3Qud2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoO1xuICByZWN0LmhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICByZWN0LnggPSByZWN0LmxlZnQ7XG4gIHJlY3QueSA9IHJlY3QudG9wO1xuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQsIHN0cmF0ZWd5KSB7XG4gIHJldHVybiBjbGlwcGluZ1BhcmVudCA9PT0gdmlld3BvcnQgPyByZWN0VG9DbGllbnRSZWN0KGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkpIDogaXNFbGVtZW50KGNsaXBwaW5nUGFyZW50KSA/IGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSkgOiByZWN0VG9DbGllbnRSZWN0KGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpKTtcbn0gLy8gQSBcImNsaXBwaW5nIHBhcmVudFwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIHtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xuICB2YXIgY2FuRXNjYXBlQ2xpcHBpbmcgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSA+PSAwO1xuICB2YXIgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzE0MTRcblxuXG4gIHJldHVybiBjbGlwcGluZ1BhcmVudHMuZmlsdGVyKGZ1bmN0aW9uIChjbGlwcGluZ1BhcmVudCkge1xuICAgIHJldHVybiBpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpICYmIGNvbnRhaW5zKGNsaXBwaW5nUGFyZW50LCBjbGlwcGVyRWxlbWVudCkgJiYgZ2V0Tm9kZU5hbWUoY2xpcHBpbmdQYXJlbnQpICE9PSAnYm9keSc7XG4gIH0pO1xufSAvLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBwYXJlbnRzXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KGVsZW1lbnQsIGJvdW5kYXJ5LCByb290Qm91bmRhcnksIHN0cmF0ZWd5KSB7XG4gIHZhciBtYWluQ2xpcHBpbmdQYXJlbnRzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ1BhcmVudHMnID8gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIDogW10uY29uY2F0KGJvdW5kYXJ5KTtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IFtdLmNvbmNhdChtYWluQ2xpcHBpbmdQYXJlbnRzLCBbcm9vdEJvdW5kYXJ5XSk7XG4gIHZhciBmaXJzdENsaXBwaW5nUGFyZW50ID0gY2xpcHBpbmdQYXJlbnRzWzBdO1xuICB2YXIgY2xpcHBpbmdSZWN0ID0gY2xpcHBpbmdQYXJlbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjUmVjdCwgY2xpcHBpbmdQYXJlbnQpIHtcbiAgICB2YXIgcmVjdCA9IGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSk7XG4gICAgYWNjUmVjdC50b3AgPSBtYXgocmVjdC50b3AsIGFjY1JlY3QudG9wKTtcbiAgICBhY2NSZWN0LnJpZ2h0ID0gbWluKHJlY3QucmlnaHQsIGFjY1JlY3QucmlnaHQpO1xuICAgIGFjY1JlY3QuYm90dG9tID0gbWluKHJlY3QuYm90dG9tLCBhY2NSZWN0LmJvdHRvbSk7XG4gICAgYWNjUmVjdC5sZWZ0ID0gbWF4KHJlY3QubGVmdCwgYWNjUmVjdC5sZWZ0KTtcbiAgICByZXR1cm4gYWNjUmVjdDtcbiAgfSwgZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgZmlyc3RDbGlwcGluZ1BhcmVudCwgc3RyYXRlZ3kpKTtcbiAgY2xpcHBpbmdSZWN0LndpZHRoID0gY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC5oZWlnaHQgPSBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgY2xpcHBpbmdSZWN0LnggPSBjbGlwcGluZ1JlY3QubGVmdDtcbiAgY2xpcHBpbmdSZWN0LnkgPSBjbGlwcGluZ1JlY3QudG9wO1xuICByZXR1cm4gY2xpcHBpbmdSZWN0O1xufSIsICJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgc3RhcnQsIGVuZCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcHV0ZU9mZnNldHMoX3JlZikge1xuICB2YXIgcmVmZXJlbmNlID0gX3JlZi5yZWZlcmVuY2UsXG4gICAgICBlbGVtZW50ID0gX3JlZi5lbGVtZW50LFxuICAgICAgcGxhY2VtZW50ID0gX3JlZi5wbGFjZW1lbnQ7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gcGxhY2VtZW50ID8gZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpIDogbnVsbDtcbiAgdmFyIHZhcmlhdGlvbiA9IHBsYWNlbWVudCA/IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpIDogbnVsbDtcbiAgdmFyIGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBlbGVtZW50LndpZHRoIC8gMjtcbiAgdmFyIGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZWxlbWVudC5oZWlnaHQgLyAyO1xuICB2YXIgb2Zmc2V0cztcblxuICBzd2l0Y2ggKGJhc2VQbGFjZW1lbnQpIHtcbiAgICBjYXNlIHRvcDpcbiAgICAgIG9mZnNldHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZWxlbWVudC5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgYm90dG9tOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIHJpZ2h0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggKyByZWZlcmVuY2Uud2lkdGgsXG4gICAgICAgIHk6IGNvbW1vbllcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgbGVmdDpcbiAgICAgIG9mZnNldHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54IC0gZWxlbWVudC53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIG9mZnNldHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54LFxuICAgICAgICB5OiByZWZlcmVuY2UueVxuICAgICAgfTtcbiAgfVxuXG4gIHZhciBtYWluQXhpcyA9IGJhc2VQbGFjZW1lbnQgPyBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCkgOiBudWxsO1xuXG4gIGlmIChtYWluQXhpcyAhPSBudWxsKSB7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG5cbiAgICBzd2l0Y2ggKHZhcmlhdGlvbikge1xuICAgICAgY2FzZSBzdGFydDpcbiAgICAgICAgb2Zmc2V0c1ttYWluQXhpc10gPSBvZmZzZXRzW21haW5BeGlzXSAtIChyZWZlcmVuY2VbbGVuXSAvIDIgLSBlbGVtZW50W2xlbl0gLyAyKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgZW5kOlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdICsgKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2Zmc2V0cztcbn0iLCAiaW1wb3J0IGdldENsaXBwaW5nUmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldENsaXBwaW5nUmVjdC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGNvbXB1dGVPZmZzZXRzIGZyb20gXCIuL2NvbXB1dGVPZmZzZXRzLmpzXCI7XG5pbXBvcnQgcmVjdFRvQ2xpZW50UmVjdCBmcm9tIFwiLi9yZWN0VG9DbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgeyBjbGlwcGluZ1BhcmVudHMsIHJlZmVyZW5jZSwgcG9wcGVyLCBib3R0b20sIHRvcCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB2aWV3cG9ydCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4uL2RvbS11dGlscy9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuL21lcmdlUGFkZGluZ09iamVjdC5qc1wiO1xuaW1wb3J0IGV4cGFuZFRvSGFzaE1hcCBmcm9tIFwiLi9leHBhbmRUb0hhc2hNYXAuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIF9vcHRpb25zJHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zJHBsYWNlbWVudCA9PT0gdm9pZCAwID8gc3RhdGUucGxhY2VtZW50IDogX29wdGlvbnMkcGxhY2VtZW50LFxuICAgICAgX29wdGlvbnMkc3RyYXRlZ3kgPSBfb3B0aW9ucy5zdHJhdGVneSxcbiAgICAgIHN0cmF0ZWd5ID0gX29wdGlvbnMkc3RyYXRlZ3kgPT09IHZvaWQgMCA/IHN0YXRlLnN0cmF0ZWd5IDogX29wdGlvbnMkc3RyYXRlZ3ksXG4gICAgICBfb3B0aW9ucyRib3VuZGFyeSA9IF9vcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgYm91bmRhcnkgPSBfb3B0aW9ucyRib3VuZGFyeSA9PT0gdm9pZCAwID8gY2xpcHBpbmdQYXJlbnRzIDogX29wdGlvbnMkYm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRyb290Qm91bmRhcnkgPSBfb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBfb3B0aW9ucyRyb290Qm91bmRhcnkgPT09IHZvaWQgMCA/IHZpZXdwb3J0IDogX29wdGlvbnMkcm9vdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkZWxlbWVudENvbnRlID0gX29wdGlvbnMuZWxlbWVudENvbnRleHQsXG4gICAgICBlbGVtZW50Q29udGV4dCA9IF9vcHRpb25zJGVsZW1lbnRDb250ZSA9PT0gdm9pZCAwID8gcG9wcGVyIDogX29wdGlvbnMkZWxlbWVudENvbnRlLFxuICAgICAgX29wdGlvbnMkYWx0Qm91bmRhcnkgPSBfb3B0aW9ucy5hbHRCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5ID0gX29wdGlvbnMkYWx0Qm91bmRhcnkgPT09IHZvaWQgMCA/IGZhbHNlIDogX29wdGlvbnMkYWx0Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRwYWRkaW5nID0gX29wdGlvbnMucGFkZGluZyxcbiAgICAgIHBhZGRpbmcgPSBfb3B0aW9ucyRwYWRkaW5nID09PSB2b2lkIDAgPyAwIDogX29wdGlvbnMkcGFkZGluZztcbiAgdmFyIHBhZGRpbmdPYmplY3QgPSBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xuICB2YXIgYWx0Q29udGV4dCA9IGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgPyByZWZlcmVuY2UgOiBwb3BwZXI7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgdmFyIGNsaXBwaW5nQ2xpZW50UmVjdCA9IGdldENsaXBwaW5nUmVjdChpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50IDogZWxlbWVudC5jb250ZXh0RWxlbWVudCB8fCBnZXREb2N1bWVudEVsZW1lbnQoc3RhdGUuZWxlbWVudHMucG9wcGVyKSwgYm91bmRhcnksIHJvb3RCb3VuZGFyeSwgc3RyYXRlZ3kpO1xuICB2YXIgcmVmZXJlbmNlQ2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChzdGF0ZS5lbGVtZW50cy5yZWZlcmVuY2UpO1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHJlZmVyZW5jZUNsaWVudFJlY3QsXG4gICAgZWxlbWVudDogcG9wcGVyUmVjdCxcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJyxcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KTtcbiAgdmFyIHBvcHBlckNsaWVudFJlY3QgPSByZWN0VG9DbGllbnRSZWN0KE9iamVjdC5hc3NpZ24oe30sIHBvcHBlclJlY3QsIHBvcHBlck9mZnNldHMpKTtcbiAgdmFyIGVsZW1lbnRDbGllbnRSZWN0ID0gZWxlbWVudENvbnRleHQgPT09IHBvcHBlciA/IHBvcHBlckNsaWVudFJlY3QgOiByZWZlcmVuY2VDbGllbnRSZWN0OyAvLyBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyByZWN0XG4gIC8vIDAgb3IgbmVnYXRpdmUgPSB3aXRoaW4gdGhlIGNsaXBwaW5nIHJlY3RcblxuICB2YXIgb3ZlcmZsb3dPZmZzZXRzID0ge1xuICAgIHRvcDogY2xpcHBpbmdDbGllbnRSZWN0LnRvcCAtIGVsZW1lbnRDbGllbnRSZWN0LnRvcCArIHBhZGRpbmdPYmplY3QudG9wLFxuICAgIGJvdHRvbTogZWxlbWVudENsaWVudFJlY3QuYm90dG9tIC0gY2xpcHBpbmdDbGllbnRSZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tLFxuICAgIGxlZnQ6IGNsaXBwaW5nQ2xpZW50UmVjdC5sZWZ0IC0gZWxlbWVudENsaWVudFJlY3QubGVmdCArIHBhZGRpbmdPYmplY3QubGVmdCxcbiAgICByaWdodDogZWxlbWVudENsaWVudFJlY3QucmlnaHQgLSBjbGlwcGluZ0NsaWVudFJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0XG4gIH07XG4gIHZhciBvZmZzZXREYXRhID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQ7IC8vIE9mZnNldHMgY2FuIGJlIGFwcGxpZWQgb25seSB0byB0aGUgcG9wcGVyIGVsZW1lbnRcblxuICBpZiAoZWxlbWVudENvbnRleHQgPT09IHBvcHBlciAmJiBvZmZzZXREYXRhKSB7XG4gICAgdmFyIG9mZnNldCA9IG9mZnNldERhdGFbcGxhY2VtZW50XTtcbiAgICBPYmplY3Qua2V5cyhvdmVyZmxvd09mZnNldHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgdmFyIG11bHRpcGx5ID0gW3JpZ2h0LCBib3R0b21dLmluZGV4T2Yoa2V5KSA+PSAwID8gMSA6IC0xO1xuICAgICAgdmFyIGF4aXMgPSBbdG9wLCBib3R0b21dLmluZGV4T2Yoa2V5KSA+PSAwID8gJ3knIDogJ3gnO1xuICAgICAgb3ZlcmZsb3dPZmZzZXRzW2tleV0gKz0gb2Zmc2V0W2F4aXNdICogbXVsdGlwbHk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gb3ZlcmZsb3dPZmZzZXRzO1xufSIsICJpbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgdmFyaWF0aW9uUGxhY2VtZW50cywgYmFzZVBsYWNlbWVudHMsIHBsYWNlbWVudHMgYXMgYWxsUGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMuYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBfb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMucGFkZGluZyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMuZmxpcFZhcmlhdGlvbnMsXG4gICAgICBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPSBfb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPT09IHZvaWQgMCA/IGFsbFBsYWNlbWVudHMgOiBfb3B0aW9ucyRhbGxvd2VkQXV0b1A7XG4gIHZhciB2YXJpYXRpb24gPSBnZXRWYXJpYXRpb24ocGxhY2VtZW50KTtcbiAgdmFyIHBsYWNlbWVudHMgPSB2YXJpYXRpb24gPyBmbGlwVmFyaWF0aW9ucyA/IHZhcmlhdGlvblBsYWNlbWVudHMgOiB2YXJpYXRpb25QbGFjZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSB2YXJpYXRpb247XG4gIH0pIDogYmFzZVBsYWNlbWVudHM7XG4gIHZhciBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWxsb3dlZEF1dG9QbGFjZW1lbnRzLmluZGV4T2YocGxhY2VtZW50KSA+PSAwO1xuICB9KTtcblxuICBpZiAoYWxsb3dlZFBsYWNlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzO1xuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdOiBGbG93IHNlZW1zIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCB0d28gYXJyYXkgdW5pb25zLi4uXG5cblxuICB2YXIgb3ZlcmZsb3dzID0gYWxsb3dlZFBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICAgIGFjY1twbGFjZW1lbnRdID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nXG4gICAgfSlbZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpXTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvdmVyZmxvd3MpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dzW2FdIC0gb3ZlcmZsb3dzW2JdO1xuICB9KTtcbn0iLCAiaW1wb3J0IGdldE9wcG9zaXRlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBjb21wdXRlQXV0b1BsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IGJvdHRvbSwgdG9wLCBzdGFydCwgcmlnaHQsIGxlZnQsIGF1dG8gfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmZ1bmN0aW9uIGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBpZiAoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdmFyIG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cblxuZnVuY3Rpb24gZmxpcChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyRtYWluQXhpcyA9IG9wdGlvbnMubWFpbkF4aXMsXG4gICAgICBjaGVja01haW5BeGlzID0gX29wdGlvbnMkbWFpbkF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRtYWluQXhpcyxcbiAgICAgIF9vcHRpb25zJGFsdEF4aXMgPSBvcHRpb25zLmFsdEF4aXMsXG4gICAgICBjaGVja0FsdEF4aXMgPSBfb3B0aW9ucyRhbHRBeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWx0QXhpcyxcbiAgICAgIHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyA9IG9wdGlvbnMuZmFsbGJhY2tQbGFjZW1lbnRzLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyxcbiAgICAgIGJvdW5kYXJ5ID0gb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IG9wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnkgPSBvcHRpb25zLmFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkZmxpcFZhcmlhdGlvID0gb3B0aW9ucy5mbGlwVmFyaWF0aW9ucyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMkZmxpcFZhcmlhdGlvID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZmxpcFZhcmlhdGlvLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHM7XG4gIHZhciBwcmVmZXJyZWRQbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHByZWZlcnJlZFBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSBiYXNlUGxhY2VtZW50ID09PSBwcmVmZXJyZWRQbGFjZW1lbnQ7XG4gIHZhciBmYWxsYmFja1BsYWNlbWVudHMgPSBzcGVjaWZpZWRGYWxsYmFja1BsYWNlbWVudHMgfHwgKGlzQmFzZVBsYWNlbWVudCB8fCAhZmxpcFZhcmlhdGlvbnMgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KV0gOiBnZXRFeHBhbmRlZEZhbGxiYWNrUGxhY2VtZW50cyhwcmVmZXJyZWRQbGFjZW1lbnQpKTtcbiAgdmFyIHBsYWNlbWVudHMgPSBbcHJlZmVycmVkUGxhY2VtZW50XS5jb25jYXQoZmFsbGJhY2tQbGFjZW1lbnRzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvID8gY29tcHV0ZUF1dG9QbGFjZW1lbnQoc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nLFxuICAgICAgZmxpcFZhcmlhdGlvbnM6IGZsaXBWYXJpYXRpb25zLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBhbGxvd2VkQXV0b1BsYWNlbWVudHNcbiAgICB9KSA6IHBsYWNlbWVudCk7XG4gIH0sIFtdKTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgY2hlY2tzTWFwID0gbmV3IE1hcCgpO1xuICB2YXIgbWFrZUZhbGxiYWNrQ2hlY2tzID0gdHJ1ZTtcbiAgdmFyIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHNbMF07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwbGFjZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBsYWNlbWVudCA9IHBsYWNlbWVudHNbaV07XG5cbiAgICB2YXIgX2Jhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICB2YXIgaXNTdGFydFZhcmlhdGlvbiA9IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSBzdGFydDtcbiAgICB2YXIgaXNWZXJ0aWNhbCA9IFt0b3AsIGJvdHRvbV0uaW5kZXhPZihfYmFzZVBsYWNlbWVudCkgPj0gMDtcbiAgICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICB2YXIgb3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5OiBhbHRCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmdcbiAgICB9KTtcbiAgICB2YXIgbWFpblZhcmlhdGlvblNpZGUgPSBpc1ZlcnRpY2FsID8gaXNTdGFydFZhcmlhdGlvbiA/IHJpZ2h0IDogbGVmdCA6IGlzU3RhcnRWYXJpYXRpb24gPyBib3R0b20gOiB0b3A7XG5cbiAgICBpZiAocmVmZXJlbmNlUmVjdFtsZW5dID4gcG9wcGVyUmVjdFtsZW5dKSB7XG4gICAgICBtYWluVmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB9XG5cbiAgICB2YXIgYWx0VmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB2YXIgY2hlY2tzID0gW107XG5cbiAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbX2Jhc2VQbGFjZW1lbnRdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja0FsdEF4aXMpIHtcbiAgICAgIGNoZWNrcy5wdXNoKG92ZXJmbG93W21haW5WYXJpYXRpb25TaWRlXSA8PSAwLCBvdmVyZmxvd1thbHRWYXJpYXRpb25TaWRlXSA8PSAwKTtcbiAgICB9XG5cbiAgICBpZiAoY2hlY2tzLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgcmV0dXJuIGNoZWNrO1xuICAgIH0pKSB7XG4gICAgICBmaXJzdEZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICBtYWtlRmFsbGJhY2tDaGVja3MgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNoZWNrc01hcC5zZXQocGxhY2VtZW50LCBjaGVja3MpO1xuICB9XG5cbiAgaWYgKG1ha2VGYWxsYmFja0NoZWNrcykge1xuICAgIC8vIGAyYCBtYXkgYmUgZGVzaXJlZCBpbiBzb21lIGNhc2VzIFx1MjAxMyByZXNlYXJjaCBsYXRlclxuICAgIHZhciBudW1iZXJPZkNoZWNrcyA9IGZsaXBWYXJpYXRpb25zID8gMyA6IDE7XG5cbiAgICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChfaSkge1xuICAgICAgdmFyIGZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnRzLmZpbmQoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgICAgICB2YXIgY2hlY2tzID0gY2hlY2tzTWFwLmdldChwbGFjZW1lbnQpO1xuXG4gICAgICAgIGlmIChjaGVja3MpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tzLnNsaWNlKDAsIF9pKS5ldmVyeShmdW5jdGlvbiAoY2hlY2spIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVjaztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChmaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IGZpdHRpbmdQbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiBcImJyZWFrXCI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAodmFyIF9pID0gbnVtYmVyT2ZDaGVja3M7IF9pID4gMDsgX2ktLSkge1xuICAgICAgdmFyIF9yZXQgPSBfbG9vcChfaSk7XG5cbiAgICAgIGlmIChfcmV0ID09PSBcImJyZWFrXCIpIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGF0ZS5wbGFjZW1lbnQgIT09IGZpcnN0Rml0dGluZ1BsYWNlbWVudCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0uX3NraXAgPSB0cnVlO1xuICAgIHN0YXRlLnBsYWNlbWVudCA9IGZpcnN0Rml0dGluZ1BsYWNlbWVudDtcbiAgICBzdGF0ZS5yZXNldCA9IHRydWU7XG4gIH1cbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2ZsaXAnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogZmxpcCxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXSxcbiAgZGF0YToge1xuICAgIF9za2lwOiBmYWxzZVxuICB9XG59OyIsICJpbXBvcnQgeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcblxuZnVuY3Rpb24gZ2V0U2lkZU9mZnNldHMob3ZlcmZsb3csIHJlY3QsIHByZXZlbnRlZE9mZnNldHMpIHtcbiAgaWYgKHByZXZlbnRlZE9mZnNldHMgPT09IHZvaWQgMCkge1xuICAgIHByZXZlbnRlZE9mZnNldHMgPSB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQgLSBwcmV2ZW50ZWRPZmZzZXRzLnksXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCArIHByZXZlbnRlZE9mZnNldHMueCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0ICsgcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoIC0gcHJldmVudGVkT2Zmc2V0cy54XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChvdmVyZmxvdykge1xuICByZXR1cm4gW3RvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdF0uc29tZShmdW5jdGlvbiAoc2lkZSkge1xuICAgIHJldHVybiBvdmVyZmxvd1tzaWRlXSA+PSAwO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaGlkZShfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBwcmV2ZW50ZWRPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wcmV2ZW50T3ZlcmZsb3c7XG4gIHZhciByZWZlcmVuY2VPdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gIH0pO1xuICB2YXIgcG9wcGVyQWx0T3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGFsdEJvdW5kYXJ5OiB0cnVlXG4gIH0pO1xuICB2YXIgcmVmZXJlbmNlQ2xpcHBpbmdPZmZzZXRzID0gZ2V0U2lkZU9mZnNldHMocmVmZXJlbmNlT3ZlcmZsb3csIHJlZmVyZW5jZVJlY3QpO1xuICB2YXIgcG9wcGVyRXNjYXBlT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHBvcHBlckFsdE92ZXJmbG93LCBwb3BwZXJSZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKTtcbiAgdmFyIGlzUmVmZXJlbmNlSGlkZGVuID0gaXNBbnlTaWRlRnVsbHlDbGlwcGVkKHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyk7XG4gIHZhciBoYXNQb3BwZXJFc2NhcGVkID0gaXNBbnlTaWRlRnVsbHlDbGlwcGVkKHBvcHBlckVzY2FwZU9mZnNldHMpO1xuICBzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdID0ge1xuICAgIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0czogcmVmZXJlbmNlQ2xpcHBpbmdPZmZzZXRzLFxuICAgIHBvcHBlckVzY2FwZU9mZnNldHM6IHBvcHBlckVzY2FwZU9mZnNldHMsXG4gICAgaXNSZWZlcmVuY2VIaWRkZW46IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgIGhhc1BvcHBlckVzY2FwZWQ6IGhhc1BvcHBlckVzY2FwZWRcbiAgfTtcbiAgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5hdHRyaWJ1dGVzLnBvcHBlciwge1xuICAgICdkYXRhLXBvcHBlci1yZWZlcmVuY2UtaGlkZGVuJzogaXNSZWZlcmVuY2VIaWRkZW4sXG4gICAgJ2RhdGEtcG9wcGVyLWVzY2FwZWQnOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnaGlkZScsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIHJlcXVpcmVzSWZFeGlzdHM6IFsncHJldmVudE92ZXJmbG93J10sXG4gIGZuOiBoaWRlXG59OyIsICJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgcGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyIsICJpbXBvcnQgY29tcHV0ZU9mZnNldHMgZnJvbSBcIi4uL3V0aWxzL2NvbXB1dGVPZmZzZXRzLmpzXCI7XG5cbmZ1bmN0aW9uIHBvcHBlck9mZnNldHMoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgLy8gT2Zmc2V0cyBhcmUgdGhlIGFjdHVhbCBwb3NpdGlvbiB0aGUgcG9wcGVyIG5lZWRzIHRvIGhhdmUgdG8gYmVcbiAgLy8gcHJvcGVybHkgcG9zaXRpb25lZCBuZWFyIGl0cyByZWZlcmVuY2UgZWxlbWVudFxuICAvLyBUaGlzIGlzIHRoZSBtb3N0IGJhc2ljIHBsYWNlbWVudCwgYW5kIHdpbGwgYmUgYWRqdXN0ZWQgYnlcbiAgLy8gdGhlIG1vZGlmaWVycyBpbiB0aGUgbmV4dCBzdGVwXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiBzdGF0ZS5yZWN0cy5yZWZlcmVuY2UsXG4gICAgZWxlbWVudDogc3RhdGUucmVjdHMucG9wcGVyLFxuICAgIHN0cmF0ZWd5OiAnYWJzb2x1dGUnLFxuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncG9wcGVyT2Zmc2V0cycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAncmVhZCcsXG4gIGZuOiBwb3BwZXJPZmZzZXRzLFxuICBkYXRhOiB7fVxufTsiLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0QWx0QXhpcyhheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneCcgPyAneScgOiAneCc7XG59IiwgImltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgc3RhcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRBbHRBeGlzIGZyb20gXCIuLi91dGlscy9nZXRBbHRBeGlzLmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4sIHdpdGhpbk1heENsYW1wIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuLi91dGlscy9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4uL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qc1wiO1xuaW1wb3J0IHsgbWluIGFzIG1hdGhNaW4sIG1heCBhcyBtYXRoTWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gcHJldmVudE92ZXJmbG93KF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgX29wdGlvbnMkbWFpbkF4aXMgPSBvcHRpb25zLm1haW5BeGlzLFxuICAgICAgY2hlY2tNYWluQXhpcyA9IF9vcHRpb25zJG1haW5BeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkbWFpbkF4aXMsXG4gICAgICBfb3B0aW9ucyRhbHRBeGlzID0gb3B0aW9ucy5hbHRBeGlzLFxuICAgICAgY2hlY2tBbHRBeGlzID0gX29wdGlvbnMkYWx0QXhpcyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgX29wdGlvbnMkdGV0aGVyID0gb3B0aW9ucy50ZXRoZXIsXG4gICAgICB0ZXRoZXIgPSBfb3B0aW9ucyR0ZXRoZXIgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyR0ZXRoZXIsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXJPZmZzZXQgPSBvcHRpb25zLnRldGhlck9mZnNldCxcbiAgICAgIHRldGhlck9mZnNldCA9IF9vcHRpb25zJHRldGhlck9mZnNldCA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHRldGhlck9mZnNldDtcbiAgdmFyIG92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgcGFkZGluZzogcGFkZGluZyxcbiAgICBhbHRCb3VuZGFyeTogYWx0Qm91bmRhcnlcbiAgfSk7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSAhdmFyaWF0aW9uO1xuICB2YXIgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCk7XG4gIHZhciBhbHRBeGlzID0gZ2V0QWx0QXhpcyhtYWluQXhpcyk7XG4gIHZhciBwb3BwZXJPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciB0ZXRoZXJPZmZzZXRWYWx1ZSA9IHR5cGVvZiB0ZXRoZXJPZmZzZXQgPT09ICdmdW5jdGlvbicgPyB0ZXRoZXJPZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiB0ZXRoZXJPZmZzZXQ7XG4gIHZhciBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUgPSB0eXBlb2YgdGV0aGVyT2Zmc2V0VmFsdWUgPT09ICdudW1iZXInID8ge1xuICAgIG1haW5BeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZSxcbiAgICBhbHRBeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZVxuICB9IDogT2JqZWN0LmFzc2lnbih7XG4gICAgbWFpbkF4aXM6IDAsXG4gICAgYWx0QXhpczogMFxuICB9LCB0ZXRoZXJPZmZzZXRWYWx1ZSk7XG4gIHZhciBvZmZzZXRNb2RpZmllclN0YXRlID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQgPyBzdGF0ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtzdGF0ZS5wbGFjZW1lbnRdIDogbnVsbDtcbiAgdmFyIGRhdGEgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKCFwb3BwZXJPZmZzZXRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICB2YXIgX29mZnNldE1vZGlmaWVyU3RhdGUkO1xuXG4gICAgdmFyIG1haW5TaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gICAgdmFyIGFsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgdmFyIG9mZnNldCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdO1xuICAgIHZhciBtaW4gPSBvZmZzZXQgKyBvdmVyZmxvd1ttYWluU2lkZV07XG4gICAgdmFyIG1heCA9IG9mZnNldCAtIG92ZXJmbG93W2FsdFNpZGVdO1xuICAgIHZhciBhZGRpdGl2ZSA9IHRldGhlciA/IC1wb3BwZXJSZWN0W2xlbl0gLyAyIDogMDtcbiAgICB2YXIgbWluTGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IHJlZmVyZW5jZVJlY3RbbGVuXSA6IHBvcHBlclJlY3RbbGVuXTtcbiAgICB2YXIgbWF4TGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IC1wb3BwZXJSZWN0W2xlbl0gOiAtcmVmZXJlbmNlUmVjdFtsZW5dOyAvLyBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGFycm93IGluIHRoZSBjYWxjdWxhdGlvbiBzbyB0aGUgYXJyb3cgZG9lc24ndCBnb1xuICAgIC8vIG91dHNpZGUgdGhlIHJlZmVyZW5jZSBib3VuZHNcblxuICAgIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgICB2YXIgYXJyb3dSZWN0ID0gdGV0aGVyICYmIGFycm93RWxlbWVudCA/IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KSA6IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nT2JqZWN0ID0gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddID8gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddLnBhZGRpbmcgOiBnZXRGcmVzaFNpZGVPYmplY3QoKTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWluID0gYXJyb3dQYWRkaW5nT2JqZWN0W21haW5TaWRlXTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWF4ID0gYXJyb3dQYWRkaW5nT2JqZWN0W2FsdFNpZGVdOyAvLyBJZiB0aGUgcmVmZXJlbmNlIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gdGhlIGFycm93IGxlbmd0aCwgd2UgZG9uJ3Qgd2FudFxuICAgIC8vIHRvIGluY2x1ZGUgaXRzIGZ1bGwgc2l6ZSBpbiB0aGUgY2FsY3VsYXRpb24uIElmIHRoZSByZWZlcmVuY2UgaXMgc21hbGxcbiAgICAvLyBhbmQgbmVhciB0aGUgZWRnZSBvZiBhIGJvdW5kYXJ5LCB0aGUgcG9wcGVyIGNhbiBvdmVyZmxvdyBldmVuIGlmIHRoZVxuICAgIC8vIHJlZmVyZW5jZSBpcyBub3Qgb3ZlcmZsb3dpbmcgYXMgd2VsbCAoZS5nLiB2aXJ0dWFsIGVsZW1lbnRzIHdpdGggbm9cbiAgICAvLyB3aWR0aCBvciBoZWlnaHQpXG5cbiAgICB2YXIgYXJyb3dMZW4gPSB3aXRoaW4oMCwgcmVmZXJlbmNlUmVjdFtsZW5dLCBhcnJvd1JlY3RbbGVuXSk7XG4gICAgdmFyIG1pbk9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IHJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgLSBhZGRpdGl2ZSAtIGFycm93TGVuIC0gYXJyb3dQYWRkaW5nTWluIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzIDogbWluTGVuIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXM7XG4gICAgdmFyIG1heE9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IC1yZWZlcmVuY2VSZWN0W2xlbl0gLyAyICsgYWRkaXRpdmUgKyBhcnJvd0xlbiArIGFycm93UGFkZGluZ01heCArIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZS5tYWluQXhpcyA6IG1heExlbiArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzO1xuICAgIHZhciBhcnJvd09mZnNldFBhcmVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93ICYmIGdldE9mZnNldFBhcmVudChzdGF0ZS5lbGVtZW50cy5hcnJvdyk7XG4gICAgdmFyIGNsaWVudE9mZnNldCA9IGFycm93T2Zmc2V0UGFyZW50ID8gbWFpbkF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFRvcCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50TGVmdCB8fCAwIDogMDtcbiAgICB2YXIgb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IChfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQgPSBvZmZzZXRNb2RpZmllclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBvZmZzZXRNb2RpZmllclN0YXRlW21haW5BeGlzXSkgIT0gbnVsbCA/IF9vZmZzZXRNb2RpZmllclN0YXRlJCA6IDA7XG4gICAgdmFyIHRldGhlck1pbiA9IG9mZnNldCArIG1pbk9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWUgLSBjbGllbnRPZmZzZXQ7XG4gICAgdmFyIHRldGhlck1heCA9IG9mZnNldCArIG1heE9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWU7XG4gICAgdmFyIHByZXZlbnRlZE9mZnNldCA9IHdpdGhpbih0ZXRoZXIgPyBtYXRoTWluKG1pbiwgdGV0aGVyTWluKSA6IG1pbiwgb2Zmc2V0LCB0ZXRoZXIgPyBtYXRoTWF4KG1heCwgdGV0aGVyTWF4KSA6IG1heCk7XG4gICAgcG9wcGVyT2Zmc2V0c1ttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQ7XG4gICAgZGF0YVttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQgLSBvZmZzZXQ7XG4gIH1cblxuICBpZiAoY2hlY2tBbHRBeGlzKSB7XG4gICAgdmFyIF9vZmZzZXRNb2RpZmllclN0YXRlJDI7XG5cbiAgICB2YXIgX21haW5TaWRlID0gbWFpbkF4aXMgPT09ICd4JyA/IHRvcCA6IGxlZnQ7XG5cbiAgICB2YXIgX2FsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYm90dG9tIDogcmlnaHQ7XG5cbiAgICB2YXIgX29mZnNldCA9IHBvcHBlck9mZnNldHNbYWx0QXhpc107XG5cbiAgICB2YXIgX2xlbiA9IGFsdEF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHZhciBfbWluID0gX29mZnNldCArIG92ZXJmbG93W19tYWluU2lkZV07XG5cbiAgICB2YXIgX21heCA9IF9vZmZzZXQgLSBvdmVyZmxvd1tfYWx0U2lkZV07XG5cbiAgICB2YXIgaXNPcmlnaW5TaWRlID0gW3RvcCwgbGVmdF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG5cbiAgICB2YXIgX29mZnNldE1vZGlmaWVyVmFsdWUgPSAoX29mZnNldE1vZGlmaWVyU3RhdGUkMiA9IG9mZnNldE1vZGlmaWVyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9mZnNldE1vZGlmaWVyU3RhdGVbYWx0QXhpc10pICE9IG51bGwgPyBfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQyIDogMDtcblxuICAgIHZhciBfdGV0aGVyTWluID0gaXNPcmlnaW5TaWRlID8gX21pbiA6IF9vZmZzZXQgLSByZWZlcmVuY2VSZWN0W19sZW5dIC0gcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXM7XG5cbiAgICB2YXIgX3RldGhlck1heCA9IGlzT3JpZ2luU2lkZSA/IF9vZmZzZXQgKyByZWZlcmVuY2VSZWN0W19sZW5dICsgcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXMgOiBfbWF4O1xuXG4gICAgdmFyIF9wcmV2ZW50ZWRPZmZzZXQgPSB0ZXRoZXIgJiYgaXNPcmlnaW5TaWRlID8gd2l0aGluTWF4Q2xhbXAoX3RldGhlck1pbiwgX29mZnNldCwgX3RldGhlck1heCkgOiB3aXRoaW4odGV0aGVyID8gX3RldGhlck1pbiA6IF9taW4sIF9vZmZzZXQsIHRldGhlciA/IF90ZXRoZXJNYXggOiBfbWF4KTtcblxuICAgIHBvcHBlck9mZnNldHNbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0O1xuICAgIGRhdGFbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0IC0gX29mZnNldDtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IHByZXZlbnRPdmVyZmxvdyxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXVxufTsiLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0SFRNTEVsZW1lbnRTY3JvbGwoZWxlbWVudCkge1xuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICBzY3JvbGxUb3A6IGVsZW1lbnQuc2Nyb2xsVG9wXG4gIH07XG59IiwgImltcG9ydCBnZXRXaW5kb3dTY3JvbGwgZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRIVE1MRWxlbWVudFNjcm9sbCBmcm9tIFwiLi9nZXRIVE1MRWxlbWVudFNjcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Tm9kZVNjcm9sbChub2RlKSB7XG4gIGlmIChub2RlID09PSBnZXRXaW5kb3cobm9kZSkgfHwgIWlzSFRNTEVsZW1lbnQobm9kZSkpIHtcbiAgICByZXR1cm4gZ2V0V2luZG93U2Nyb2xsKG5vZGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBnZXRIVE1MRWxlbWVudFNjcm9sbChub2RlKTtcbiAgfVxufSIsICJpbXBvcnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gXCIuL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGdldE5vZGVTY3JvbGwgZnJvbSBcIi4vZ2V0Tm9kZVNjcm9sbC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnRTY2FsZWQoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMTtcbiAgdmFyIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDE7XG4gIHJldHVybiBzY2FsZVggIT09IDEgfHwgc2NhbGVZICE9PSAxO1xufSAvLyBSZXR1cm5zIHRoZSBjb21wb3NpdGUgcmVjdCBvZiBhbiBlbGVtZW50IHJlbGF0aXZlIHRvIGl0cyBvZmZzZXRQYXJlbnQuXG4vLyBDb21wb3NpdGUgbWVhbnMgaXQgdGFrZXMgaW50byBhY2NvdW50IHRyYW5zZm9ybXMgYXMgd2VsbCBhcyBsYXlvdXQuXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcG9zaXRlUmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50LCBpc0ZpeGVkKSB7XG4gIGlmIChpc0ZpeGVkID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkID0gZmFsc2U7XG4gIH1cblxuICB2YXIgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnRJc1NjYWxlZCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc0VsZW1lbnRTY2FsZWQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50SXNTY2FsZWQsIGlzRml4ZWQpO1xuICB2YXIgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIHZhciBvZmZzZXRzID0ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xuXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTA3OFxuICAgIGlzU2Nyb2xsUGFyZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBvZmZzZXRzID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSk7XG4gICAgICBvZmZzZXRzLnggKz0gb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgKz0gb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgeDogcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLngsXG4gICAgeTogcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn0iLCAiaW1wb3J0IHsgbW9kaWZpZXJQaGFzZXMgfSBmcm9tIFwiLi4vZW51bXMuanNcIjsgLy8gc291cmNlOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTg3NTI1NVxuXG5mdW5jdGlvbiBvcmRlcihtb2RpZmllcnMpIHtcbiAgdmFyIG1hcCA9IG5ldyBNYXAoKTtcbiAgdmFyIHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgbWFwLnNldChtb2RpZmllci5uYW1lLCBtb2RpZmllcik7XG4gIH0pOyAvLyBPbiB2aXNpdGluZyBvYmplY3QsIGNoZWNrIGZvciBpdHMgZGVwZW5kZW5jaWVzIGFuZCB2aXNpdCB0aGVtIHJlY3Vyc2l2ZWx5XG5cbiAgZnVuY3Rpb24gc29ydChtb2RpZmllcikge1xuICAgIHZpc2l0ZWQuYWRkKG1vZGlmaWVyLm5hbWUpO1xuICAgIHZhciByZXF1aXJlcyA9IFtdLmNvbmNhdChtb2RpZmllci5yZXF1aXJlcyB8fCBbXSwgbW9kaWZpZXIucmVxdWlyZXNJZkV4aXN0cyB8fCBbXSk7XG4gICAgcmVxdWlyZXMuZm9yRWFjaChmdW5jdGlvbiAoZGVwKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKGRlcCkpIHtcbiAgICAgICAgdmFyIGRlcE1vZGlmaWVyID0gbWFwLmdldChkZXApO1xuXG4gICAgICAgIGlmIChkZXBNb2RpZmllcikge1xuICAgICAgICAgIHNvcnQoZGVwTW9kaWZpZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmVzdWx0LnB1c2gobW9kaWZpZXIpO1xuICB9XG5cbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgaWYgKCF2aXNpdGVkLmhhcyhtb2RpZmllci5uYW1lKSkge1xuICAgICAgLy8gY2hlY2sgZm9yIHZpc2l0ZWQgb2JqZWN0XG4gICAgICBzb3J0KG1vZGlmaWVyKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvcmRlck1vZGlmaWVycyhtb2RpZmllcnMpIHtcbiAgLy8gb3JkZXIgYmFzZWQgb24gZGVwZW5kZW5jaWVzXG4gIHZhciBvcmRlcmVkTW9kaWZpZXJzID0gb3JkZXIobW9kaWZpZXJzKTsgLy8gb3JkZXIgYmFzZWQgb24gcGhhc2VcblxuICByZXR1cm4gbW9kaWZpZXJQaGFzZXMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBoYXNlKSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQob3JkZXJlZE1vZGlmaWVycy5maWx0ZXIoZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgICByZXR1cm4gbW9kaWZpZXIucGhhc2UgPT09IHBoYXNlO1xuICAgIH0pKTtcbiAgfSwgW10pO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWJvdW5jZShmbikge1xuICB2YXIgcGVuZGluZztcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXBlbmRpbmcpIHtcbiAgICAgIHBlbmRpbmcgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHJlc29sdmUoZm4oKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlbmRpbmc7XG4gIH07XG59IiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQnlOYW1lKG1vZGlmaWVycykge1xuICB2YXIgbWVyZ2VkID0gbW9kaWZpZXJzLnJlZHVjZShmdW5jdGlvbiAobWVyZ2VkLCBjdXJyZW50KSB7XG4gICAgdmFyIGV4aXN0aW5nID0gbWVyZ2VkW2N1cnJlbnQubmFtZV07XG4gICAgbWVyZ2VkW2N1cnJlbnQubmFtZV0gPSBleGlzdGluZyA/IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLCBjdXJyZW50LCB7XG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZy5vcHRpb25zLCBjdXJyZW50Lm9wdGlvbnMpLFxuICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3RpbmcuZGF0YSwgY3VycmVudC5kYXRhKVxuICAgIH0pIDogY3VycmVudDtcbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9LCB7fSk7IC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBPYmplY3QudmFsdWVzXG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbWVyZ2VkW2tleV07XG4gIH0pO1xufSIsICJpbXBvcnQgZ2V0Q29tcG9zaXRlUmVjdCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0Q29tcG9zaXRlUmVjdC5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4vZG9tLXV0aWxzL2dldExheW91dFJlY3QuanNcIjtcbmltcG9ydCBsaXN0U2Nyb2xsUGFyZW50cyBmcm9tIFwiLi9kb20tdXRpbHMvbGlzdFNjcm9sbFBhcmVudHMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IG9yZGVyTW9kaWZpZXJzIGZyb20gXCIuL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzXCI7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcIi4vdXRpbHMvZGVib3VuY2UuanNcIjtcbmltcG9ydCBtZXJnZUJ5TmFtZSBmcm9tIFwiLi91dGlscy9tZXJnZUJ5TmFtZS5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgeyBpc0VsZW1lbnQgfSBmcm9tIFwiLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xudmFyIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgbW9kaWZpZXJzOiBbXSxcbiAgc3RyYXRlZ3k6ICdhYnNvbHV0ZSdcbn07XG5cbmZ1bmN0aW9uIGFyZVZhbGlkRWxlbWVudHMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gIWFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiAhKGVsZW1lbnQgJiYgdHlwZW9mIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3BwZXJHZW5lcmF0b3IoZ2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoZ2VuZXJhdG9yT3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgZ2VuZXJhdG9yT3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9nZW5lcmF0b3JPcHRpb25zID0gZ2VuZXJhdG9yT3B0aW9ucyxcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZiA9IF9nZW5lcmF0b3JPcHRpb25zLmRlZmF1bHRNb2RpZmllcnMsXG4gICAgICBkZWZhdWx0TW9kaWZpZXJzID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmID09PSB2b2lkIDAgPyBbXSA6IF9nZW5lcmF0b3JPcHRpb25zJGRlZixcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZjIgPSBfZ2VuZXJhdG9yT3B0aW9ucy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGRlZmF1bHRPcHRpb25zID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmMiA9PT0gdm9pZCAwID8gREVGQVVMVF9PUFRJT05TIDogX2dlbmVyYXRvck9wdGlvbnMkZGVmMjtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVBvcHBlcihyZWZlcmVuY2UsIHBvcHBlciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICAgIG9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICB2YXIgc3RhdGUgPSB7XG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgb3JkZXJlZE1vZGlmaWVyczogW10sXG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIGRlZmF1bHRPcHRpb25zKSxcbiAgICAgIG1vZGlmaWVyc0RhdGE6IHt9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgIHBvcHBlcjogcG9wcGVyXG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBzdHlsZXM6IHt9XG4gICAgfTtcbiAgICB2YXIgZWZmZWN0Q2xlYW51cEZucyA9IFtdO1xuICAgIHZhciBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHZhciBpbnN0YW5jZSA9IHtcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgIHNldE9wdGlvbnM6IGZ1bmN0aW9uIHNldE9wdGlvbnMoc2V0T3B0aW9uc0FjdGlvbikge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzZXRPcHRpb25zQWN0aW9uID09PSAnZnVuY3Rpb24nID8gc2V0T3B0aW9uc0FjdGlvbihzdGF0ZS5vcHRpb25zKSA6IHNldE9wdGlvbnNBY3Rpb247XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgc3RhdGUub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBzdGF0ZS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgc3RhdGUuc2Nyb2xsUGFyZW50cyA9IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGlzRWxlbWVudChyZWZlcmVuY2UpID8gbGlzdFNjcm9sbFBhcmVudHMocmVmZXJlbmNlKSA6IHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCA/IGxpc3RTY3JvbGxQYXJlbnRzKHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkgOiBbXSxcbiAgICAgICAgICBwb3BwZXI6IGxpc3RTY3JvbGxQYXJlbnRzKHBvcHBlcilcbiAgICAgICAgfTsgLy8gT3JkZXJzIHRoZSBtb2RpZmllcnMgYmFzZWQgb24gdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCBgcGhhc2VgXG4gICAgICAgIC8vIHByb3BlcnRpZXNcblxuICAgICAgICB2YXIgb3JkZXJlZE1vZGlmaWVycyA9IG9yZGVyTW9kaWZpZXJzKG1lcmdlQnlOYW1lKFtdLmNvbmNhdChkZWZhdWx0TW9kaWZpZXJzLCBzdGF0ZS5vcHRpb25zLm1vZGlmaWVycykpKTsgLy8gU3RyaXAgb3V0IGRpc2FibGVkIG1vZGlmaWVyc1xuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobSkge1xuICAgICAgICAgIHJldHVybiBtLmVuYWJsZWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBydW5Nb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnVwZGF0ZSgpO1xuICAgICAgfSxcbiAgICAgIC8vIFN5bmMgdXBkYXRlIFx1MjAxMyBpdCB3aWxsIGFsd2F5cyBiZSBleGVjdXRlZCwgZXZlbiBpZiBub3QgbmVjZXNzYXJ5LiBUaGlzXG4gICAgICAvLyBpcyB1c2VmdWwgZm9yIGxvdyBmcmVxdWVuY3kgdXBkYXRlcyB3aGVyZSBzeW5jIGJlaGF2aW9yIHNpbXBsaWZpZXMgdGhlXG4gICAgICAvLyBsb2dpYy5cbiAgICAgIC8vIEZvciBoaWdoIGZyZXF1ZW5jeSB1cGRhdGVzIChlLmcuIGByZXNpemVgIGFuZCBgc2Nyb2xsYCBldmVudHMpLCBhbHdheXNcbiAgICAgIC8vIHByZWZlciB0aGUgYXN5bmMgUG9wcGVyI3VwZGF0ZSBtZXRob2RcbiAgICAgIGZvcmNlVXBkYXRlOiBmdW5jdGlvbiBmb3JjZVVwZGF0ZSgpIHtcbiAgICAgICAgaWYgKGlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIF9zdGF0ZSRlbGVtZW50cyA9IHN0YXRlLmVsZW1lbnRzLFxuICAgICAgICAgICAgcmVmZXJlbmNlID0gX3N0YXRlJGVsZW1lbnRzLnJlZmVyZW5jZSxcbiAgICAgICAgICAgIHBvcHBlciA9IF9zdGF0ZSRlbGVtZW50cy5wb3BwZXI7IC8vIERvbid0IHByb2NlZWQgaWYgYHJlZmVyZW5jZWAgb3IgYHBvcHBlcmAgYXJlIG5vdCB2YWxpZCBlbGVtZW50c1xuICAgICAgICAvLyBhbnltb3JlXG5cbiAgICAgICAgaWYgKCFhcmVWYWxpZEVsZW1lbnRzKHJlZmVyZW5jZSwgcG9wcGVyKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBTdG9yZSB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXIgcmVjdHMgdG8gYmUgcmVhZCBieSBtb2RpZmllcnNcblxuXG4gICAgICAgIHN0YXRlLnJlY3RzID0ge1xuICAgICAgICAgIHJlZmVyZW5jZTogZ2V0Q29tcG9zaXRlUmVjdChyZWZlcmVuY2UsIGdldE9mZnNldFBhcmVudChwb3BwZXIpLCBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnKSxcbiAgICAgICAgICBwb3BwZXI6IGdldExheW91dFJlY3QocG9wcGVyKVxuICAgICAgICB9OyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byByZXNldCB0aGUgY3VycmVudCB1cGRhdGUgY3ljbGUuIFRoZVxuICAgICAgICAvLyBtb3N0IGNvbW1vbiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB0aGUgYGZsaXBgIG1vZGlmaWVyIGNoYW5naW5nIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQsIHdoaWNoIHRoZW4gbmVlZHMgdG8gcmUtcnVuIGFsbCB0aGUgbW9kaWZpZXJzLCBiZWNhdXNlIHRoZVxuICAgICAgICAvLyBsb2dpYyB3YXMgcHJldmlvdXNseSByYW4gZm9yIHRoZSBwcmV2aW91cyBwbGFjZW1lbnQgYW5kIGlzIHRoZXJlZm9yZVxuICAgICAgICAvLyBzdGFsZS9pbmNvcnJlY3RcblxuICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5wbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDsgLy8gT24gZWFjaCB1cGRhdGUgY3ljbGUsIHRoZSBgbW9kaWZpZXJzRGF0YWAgcHJvcGVydHkgZm9yIGVhY2ggbW9kaWZpZXJcbiAgICAgICAgLy8gaXMgZmlsbGVkIHdpdGggdGhlIGluaXRpYWwgZGF0YSBzcGVjaWZpZWQgYnkgdGhlIG1vZGlmaWVyLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIGl0IGRvZXNuJ3QgcGVyc2lzdCBhbmQgaXMgZnJlc2ggb24gZWFjaCB1cGRhdGUuXG4gICAgICAgIC8vIFRvIGVuc3VyZSBwZXJzaXN0ZW50IGRhdGEsIHVzZSBgJHtuYW1lfSNwZXJzaXN0ZW50YFxuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUubW9kaWZpZXJzRGF0YVttb2RpZmllci5uYW1lXSA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGlmaWVyLmRhdGEpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBpZiAoc3RhdGUucmVzZXQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHN0YXRlLnJlc2V0ID0gZmFsc2U7XG4gICAgICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZSA9IHN0YXRlLm9yZGVyZWRNb2RpZmllcnNbaW5kZXhdLFxuICAgICAgICAgICAgICBmbiA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5mbixcbiAgICAgICAgICAgICAgX3N0YXRlJG9yZGVyZWRNb2RpZmllMiA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5vcHRpb25zLFxuICAgICAgICAgICAgICBfb3B0aW9ucyA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPT09IHZvaWQgMCA/IHt9IDogX3N0YXRlJG9yZGVyZWRNb2RpZmllMixcbiAgICAgICAgICAgICAgbmFtZSA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5uYW1lO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgc3RhdGUgPSBmbih7XG4gICAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgICAgb3B0aW9uczogX29wdGlvbnMsXG4gICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIGluc3RhbmNlOiBpbnN0YW5jZVxuICAgICAgICAgICAgfSkgfHwgc3RhdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gQXN5bmMgYW5kIG9wdGltaXN0aWNhbGx5IG9wdGltaXplZCB1cGRhdGUgXHUyMDEzIGl0IHdpbGwgbm90IGJlIGV4ZWN1dGVkIGlmXG4gICAgICAvLyBub3QgbmVjZXNzYXJ5IChkZWJvdW5jZWQgdG8gcnVuIGF0IG1vc3Qgb25jZS1wZXItdGljaylcbiAgICAgIHVwZGF0ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICBpbnN0YW5jZS5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgIHJlc29sdmUoc3RhdGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgY2xlYW51cE1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICBpc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghYXJlVmFsaWRFbGVtZW50cyhyZWZlcmVuY2UsIHBvcHBlcikpIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG5cbiAgICBpbnN0YW5jZS5zZXRPcHRpb25zKG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgICBpZiAoIWlzRGVzdHJveWVkICYmIG9wdGlvbnMub25GaXJzdFVwZGF0ZSkge1xuICAgICAgICBvcHRpb25zLm9uRmlyc3RVcGRhdGUoc3RhdGUpO1xuICAgICAgfVxuICAgIH0pOyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIGJlZm9yZSB0aGUgZmlyc3RcbiAgICAvLyB1cGRhdGUgY3ljbGUgcnVucy4gVGhleSB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSB1cGRhdGVcbiAgICAvLyBjeWNsZS4gVGhpcyBpcyB1c2VmdWwgd2hlbiBhIG1vZGlmaWVyIGFkZHMgc29tZSBwZXJzaXN0ZW50IGRhdGEgdGhhdFxuICAgIC8vIG90aGVyIG1vZGlmaWVycyBuZWVkIHRvIHVzZSwgYnV0IHRoZSBtb2RpZmllciBpcyBydW4gYWZ0ZXIgdGhlIGRlcGVuZGVudFxuICAgIC8vIG9uZS5cblxuICAgIGZ1bmN0aW9uIHJ1bk1vZGlmaWVyRWZmZWN0cygpIHtcbiAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgICAgICAgIF9yZWYkb3B0aW9ucyA9IF9yZWYub3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfcmVmJG9wdGlvbnMgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRvcHRpb25zLFxuICAgICAgICAgICAgZWZmZWN0ID0gX3JlZi5lZmZlY3Q7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBlZmZlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgY2xlYW51cEZuID0gZWZmZWN0KHtcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB2YXIgbm9vcEZuID0gZnVuY3Rpb24gbm9vcEZuKCkge307XG5cbiAgICAgICAgICBlZmZlY3RDbGVhbnVwRm5zLnB1c2goY2xlYW51cEZuIHx8IG5vb3BGbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSk7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xufVxuZXhwb3J0IHZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKCk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgZGV0ZWN0T3ZlcmZsb3cgfTsiLCAiaW1wb3J0IHsgcG9wcGVyR2VuZXJhdG9yLCBkZXRlY3RPdmVyZmxvdyB9IGZyb20gXCIuL2NyZWF0ZVBvcHBlci5qc1wiO1xuaW1wb3J0IGV2ZW50TGlzdGVuZXJzIGZyb20gXCIuL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qc1wiO1xuaW1wb3J0IHBvcHBlck9mZnNldHMgZnJvbSBcIi4vbW9kaWZpZXJzL3BvcHBlck9mZnNldHMuanNcIjtcbmltcG9ydCBjb21wdXRlU3R5bGVzIGZyb20gXCIuL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzXCI7XG5pbXBvcnQgYXBwbHlTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzXCI7XG52YXIgZGVmYXVsdE1vZGlmaWVycyA9IFtldmVudExpc3RlbmVycywgcG9wcGVyT2Zmc2V0cywgY29tcHV0ZVN0eWxlcywgYXBwbHlTdHlsZXNdO1xudmFyIGNyZWF0ZVBvcHBlciA9IC8qI19fUFVSRV9fKi9wb3BwZXJHZW5lcmF0b3Ioe1xuICBkZWZhdWx0TW9kaWZpZXJzOiBkZWZhdWx0TW9kaWZpZXJzXG59KTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBjcmVhdGVQb3BwZXIsIHBvcHBlckdlbmVyYXRvciwgZGVmYXVsdE1vZGlmaWVycywgZGV0ZWN0T3ZlcmZsb3cgfTsiLCAiaW1wb3J0IHsgcG9wcGVyR2VuZXJhdG9yLCBkZXRlY3RPdmVyZmxvdyB9IGZyb20gXCIuL2NyZWF0ZVBvcHBlci5qc1wiO1xuaW1wb3J0IGV2ZW50TGlzdGVuZXJzIGZyb20gXCIuL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qc1wiO1xuaW1wb3J0IHBvcHBlck9mZnNldHMgZnJvbSBcIi4vbW9kaWZpZXJzL3BvcHBlck9mZnNldHMuanNcIjtcbmltcG9ydCBjb21wdXRlU3R5bGVzIGZyb20gXCIuL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzXCI7XG5pbXBvcnQgYXBwbHlTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzXCI7XG5pbXBvcnQgb2Zmc2V0IGZyb20gXCIuL21vZGlmaWVycy9vZmZzZXQuanNcIjtcbmltcG9ydCBmbGlwIGZyb20gXCIuL21vZGlmaWVycy9mbGlwLmpzXCI7XG5pbXBvcnQgcHJldmVudE92ZXJmbG93IGZyb20gXCIuL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBhcnJvdyBmcm9tIFwiLi9tb2RpZmllcnMvYXJyb3cuanNcIjtcbmltcG9ydCBoaWRlIGZyb20gXCIuL21vZGlmaWVycy9oaWRlLmpzXCI7XG52YXIgZGVmYXVsdE1vZGlmaWVycyA9IFtldmVudExpc3RlbmVycywgcG9wcGVyT2Zmc2V0cywgY29tcHV0ZVN0eWxlcywgYXBwbHlTdHlsZXMsIG9mZnNldCwgZmxpcCwgcHJldmVudE92ZXJmbG93LCBhcnJvdywgaGlkZV07XG52YXIgY3JlYXRlUG9wcGVyID0gLyojX19QVVJFX18qL3BvcHBlckdlbmVyYXRvcih7XG4gIGRlZmF1bHRNb2RpZmllcnM6IGRlZmF1bHRNb2RpZmllcnNcbn0pOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IGNyZWF0ZVBvcHBlciwgcG9wcGVyR2VuZXJhdG9yLCBkZWZhdWx0TW9kaWZpZXJzLCBkZXRlY3RPdmVyZmxvdyB9OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IGNyZWF0ZVBvcHBlciBhcyBjcmVhdGVQb3BwZXJMaXRlIH0gZnJvbSBcIi4vcG9wcGVyLWxpdGUuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RpZmllcnMvaW5kZXguanNcIjsiLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIGRvbS9kYXRhLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBlbGVtZW50TWFwID0gbmV3IE1hcCgpXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc2V0KGVsZW1lbnQsIGtleSwgaW5zdGFuY2UpIHtcbiAgICBpZiAoIWVsZW1lbnRNYXAuaGFzKGVsZW1lbnQpKSB7XG4gICAgICBlbGVtZW50TWFwLnNldChlbGVtZW50LCBuZXcgTWFwKCkpXG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VNYXAgPSBlbGVtZW50TWFwLmdldChlbGVtZW50KVxuXG4gICAgLy8gbWFrZSBpdCBjbGVhciB3ZSBvbmx5IHdhbnQgb25lIGluc3RhbmNlIHBlciBlbGVtZW50XG4gICAgLy8gY2FuIGJlIHJlbW92ZWQgbGF0ZXIgd2hlbiBtdWx0aXBsZSBrZXkvaW5zdGFuY2VzIGFyZSBmaW5lIHRvIGJlIHVzZWRcbiAgICBpZiAoIWluc3RhbmNlTWFwLmhhcyhrZXkpICYmIGluc3RhbmNlTWFwLnNpemUgIT09IDApIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKGBCb290c3RyYXAgZG9lc24ndCBhbGxvdyBtb3JlIHRoYW4gb25lIGluc3RhbmNlIHBlciBlbGVtZW50LiBCb3VuZCBpbnN0YW5jZTogJHtBcnJheS5mcm9tKGluc3RhbmNlTWFwLmtleXMoKSlbMF19LmApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbnN0YW5jZU1hcC5zZXQoa2V5LCBpbnN0YW5jZSlcbiAgfSxcblxuICBnZXQoZWxlbWVudCwga2V5KSB7XG4gICAgaWYgKGVsZW1lbnRNYXAuaGFzKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudE1hcC5nZXQoZWxlbWVudCkuZ2V0KGtleSkgfHwgbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG5cbiAgcmVtb3ZlKGVsZW1lbnQsIGtleSkge1xuICAgIGlmICghZWxlbWVudE1hcC5oYXMoZWxlbWVudCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbmNlTWFwID0gZWxlbWVudE1hcC5nZXQoZWxlbWVudClcblxuICAgIGluc3RhbmNlTWFwLmRlbGV0ZShrZXkpXG5cbiAgICAvLyBmcmVlIHVwIGVsZW1lbnQgcmVmZXJlbmNlcyBpZiB0aGVyZSBhcmUgbm8gaW5zdGFuY2VzIGxlZnQgZm9yIGFuIGVsZW1lbnRcbiAgICBpZiAoaW5zdGFuY2VNYXAuc2l6ZSA9PT0gMCkge1xuICAgICAgZWxlbWVudE1hcC5kZWxldGUoZWxlbWVudClcbiAgICB9XG4gIH1cbn1cbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9pbmRleC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmNvbnN0IE1BWF9VSUQgPSAxXzAwMF8wMDBcbmNvbnN0IE1JTExJU0VDT05EU19NVUxUSVBMSUVSID0gMTAwMFxuY29uc3QgVFJBTlNJVElPTl9FTkQgPSAndHJhbnNpdGlvbmVuZCdcblxuLyoqXG4gKiBQcm9wZXJseSBlc2NhcGUgSURzIHNlbGVjdG9ycyB0byBoYW5kbGUgd2VpcmQgSURzXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHBhcnNlU2VsZWN0b3IgPSBzZWxlY3RvciA9PiB7XG4gIGlmIChzZWxlY3RvciAmJiB3aW5kb3cuQ1NTICYmIHdpbmRvdy5DU1MuZXNjYXBlKSB7XG4gICAgLy8gZG9jdW1lbnQucXVlcnlTZWxlY3RvciBuZWVkcyBlc2NhcGluZyB0byBoYW5kbGUgSURzIChodG1sNSspIGNvbnRhaW5pbmcgZm9yIGluc3RhbmNlIC9cbiAgICBzZWxlY3RvciA9IHNlbGVjdG9yLnJlcGxhY2UoLyMoW15cXHNcIiMnXSspL2csIChtYXRjaCwgaWQpID0+IGAjJHtDU1MuZXNjYXBlKGlkKX1gKVxuICB9XG5cbiAgcmV0dXJuIHNlbGVjdG9yXG59XG5cbi8vIFNob3V0LW91dCBBbmd1cyBDcm9sbCAoaHR0cHM6Ly9nb28uZ2wvcHh3UUdwKVxuY29uc3QgdG9UeXBlID0gb2JqZWN0ID0+IHtcbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBvYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgJHtvYmplY3R9YFxuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpLm1hdGNoKC9cXHMoW2Etel0rKS9pKVsxXS50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogUHVibGljIFV0aWwgQVBJXG4gKi9cblxuY29uc3QgZ2V0VUlEID0gcHJlZml4ID0+IHtcbiAgZG8ge1xuICAgIHByZWZpeCArPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNQVhfVUlEKVxuICB9IHdoaWxlIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmVmaXgpKVxuXG4gIHJldHVybiBwcmVmaXhcbn1cblxuY29uc3QgZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuXG4gIC8vIEdldCB0cmFuc2l0aW9uLWR1cmF0aW9uIG9mIHRoZSBlbGVtZW50XG4gIGxldCB7IHRyYW5zaXRpb25EdXJhdGlvbiwgdHJhbnNpdGlvbkRlbGF5IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVxuXG4gIGNvbnN0IGZsb2F0VHJhbnNpdGlvbkR1cmF0aW9uID0gTnVtYmVyLnBhcnNlRmxvYXQodHJhbnNpdGlvbkR1cmF0aW9uKVxuICBjb25zdCBmbG9hdFRyYW5zaXRpb25EZWxheSA9IE51bWJlci5wYXJzZUZsb2F0KHRyYW5zaXRpb25EZWxheSlcblxuICAvLyBSZXR1cm4gMCBpZiBlbGVtZW50IG9yIHRyYW5zaXRpb24gZHVyYXRpb24gaXMgbm90IGZvdW5kXG4gIGlmICghZmxvYXRUcmFuc2l0aW9uRHVyYXRpb24gJiYgIWZsb2F0VHJhbnNpdGlvbkRlbGF5KSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuXG4gIC8vIElmIG11bHRpcGxlIGR1cmF0aW9ucyBhcmUgZGVmaW5lZCwgdGFrZSB0aGUgZmlyc3RcbiAgdHJhbnNpdGlvbkR1cmF0aW9uID0gdHJhbnNpdGlvbkR1cmF0aW9uLnNwbGl0KCcsJylbMF1cbiAgdHJhbnNpdGlvbkRlbGF5ID0gdHJhbnNpdGlvbkRlbGF5LnNwbGl0KCcsJylbMF1cblxuICByZXR1cm4gKE51bWJlci5wYXJzZUZsb2F0KHRyYW5zaXRpb25EdXJhdGlvbikgKyBOdW1iZXIucGFyc2VGbG9hdCh0cmFuc2l0aW9uRGVsYXkpKSAqIE1JTExJU0VDT05EU19NVUxUSVBMSUVSXG59XG5cbmNvbnN0IHRyaWdnZXJUcmFuc2l0aW9uRW5kID0gZWxlbWVudCA9PiB7XG4gIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoVFJBTlNJVElPTl9FTkQpKVxufVxuXG5jb25zdCBpc0VsZW1lbnQgPSBvYmplY3QgPT4ge1xuICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmplY3QuanF1ZXJ5ICE9PSAndW5kZWZpbmVkJykge1xuICAgIG9iamVjdCA9IG9iamVjdFswXVxuICB9XG5cbiAgcmV0dXJuIHR5cGVvZiBvYmplY3Qubm9kZVR5cGUgIT09ICd1bmRlZmluZWQnXG59XG5cbmNvbnN0IGdldEVsZW1lbnQgPSBvYmplY3QgPT4ge1xuICAvLyBpdCdzIGEgalF1ZXJ5IG9iamVjdCBvciBhIG5vZGUgZWxlbWVudFxuICBpZiAoaXNFbGVtZW50KG9iamVjdCkpIHtcbiAgICByZXR1cm4gb2JqZWN0LmpxdWVyeSA/IG9iamVjdFswXSA6IG9iamVjdFxuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnICYmIG9iamVjdC5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocGFyc2VTZWxlY3RvcihvYmplY3QpKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgaXNWaXNpYmxlID0gZWxlbWVudCA9PiB7XG4gIGlmICghaXNFbGVtZW50KGVsZW1lbnQpIHx8IGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRJc1Zpc2libGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3Zpc2liaWxpdHknKSA9PT0gJ3Zpc2libGUnXG4gIC8vIEhhbmRsZSBgZGV0YWlsc2AgZWxlbWVudCBhcyBpdHMgY29udGVudCBtYXkgZmFsc2llIGFwcGVhciB2aXNpYmxlIHdoZW4gaXQgaXMgY2xvc2VkXG4gIGNvbnN0IGNsb3NlZERldGFpbHMgPSBlbGVtZW50LmNsb3Nlc3QoJ2RldGFpbHM6bm90KFtvcGVuXSknKVxuXG4gIGlmICghY2xvc2VkRGV0YWlscykge1xuICAgIHJldHVybiBlbGVtZW50SXNWaXNpYmxlXG4gIH1cblxuICBpZiAoY2xvc2VkRGV0YWlscyAhPT0gZWxlbWVudCkge1xuICAgIGNvbnN0IHN1bW1hcnkgPSBlbGVtZW50LmNsb3Nlc3QoJ3N1bW1hcnknKVxuICAgIGlmIChzdW1tYXJ5ICYmIHN1bW1hcnkucGFyZW50Tm9kZSAhPT0gY2xvc2VkRGV0YWlscykge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKHN1bW1hcnkgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50SXNWaXNpYmxlXG59XG5cbmNvbnN0IGlzRGlzYWJsZWQgPSBlbGVtZW50ID0+IHtcbiAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIGVsZW1lbnQuZGlzYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuZGlzYWJsZWRcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gJ2ZhbHNlJ1xufVxuXG5jb25zdCBmaW5kU2hhZG93Um9vdCA9IGVsZW1lbnQgPT4ge1xuICBpZiAoIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hdHRhY2hTaGFkb3cpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gQ2FuIGZpbmQgdGhlIHNoYWRvdyByb290IG90aGVyd2lzZSBpdCdsbCByZXR1cm4gdGhlIGRvY3VtZW50XG4gIGlmICh0eXBlb2YgZWxlbWVudC5nZXRSb290Tm9kZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHJvb3QgPSBlbGVtZW50LmdldFJvb3ROb2RlKClcbiAgICByZXR1cm4gcm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgPyByb290IDogbnVsbFxuICB9XG5cbiAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgfVxuXG4gIC8vIHdoZW4gd2UgZG9uJ3QgZmluZCBhIHNoYWRvdyByb290XG4gIGlmICghZWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBmaW5kU2hhZG93Um9vdChlbGVtZW50LnBhcmVudE5vZGUpXG59XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuXG4vKipcbiAqIFRyaWNrIHRvIHJlc3RhcnQgYW4gZWxlbWVudCdzIGFuaW1hdGlvblxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm4gdm9pZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly93d3cuY2hhcmlzdGhlby5pby9ibG9nLzIwMjEvMDIvcmVzdGFydC1hLWNzcy1hbmltYXRpb24td2l0aC1qYXZhc2NyaXB0LyNyZXN0YXJ0aW5nLWEtY3NzLWFuaW1hdGlvblxuICovXG5jb25zdCByZWZsb3cgPSBlbGVtZW50ID0+IHtcbiAgZWxlbWVudC5vZmZzZXRIZWlnaHQgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbn1cblxuY29uc3QgZ2V0alF1ZXJ5ID0gKCkgPT4ge1xuICBpZiAod2luZG93LmpRdWVyeSAmJiAhZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnMtbm8tanF1ZXJ5JykpIHtcbiAgICByZXR1cm4gd2luZG93LmpRdWVyeVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgRE9NQ29udGVudExvYWRlZENhbGxiYWNrcyA9IFtdXG5cbmNvbnN0IG9uRE9NQ29udGVudExvYWRlZCA9IGNhbGxiYWNrID0+IHtcbiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykge1xuICAgIC8vIGFkZCBsaXN0ZW5lciBvbiB0aGUgZmlyc3QgY2FsbCB3aGVuIHRoZSBkb2N1bWVudCBpcyBpbiBsb2FkaW5nIHN0YXRlXG4gICAgaWYgKCFET01Db250ZW50TG9hZGVkQ2FsbGJhY2tzLmxlbmd0aCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBET01Db250ZW50TG9hZGVkQ2FsbGJhY2tzKSB7XG4gICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIERPTUNvbnRlbnRMb2FkZWRDYWxsYmFja3MucHVzaChjYWxsYmFjaylcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpXG4gIH1cbn1cblxuY29uc3QgaXNSVEwgPSAoKSA9PiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyID09PSAncnRsJ1xuXG5jb25zdCBkZWZpbmVKUXVlcnlQbHVnaW4gPSBwbHVnaW4gPT4ge1xuICBvbkRPTUNvbnRlbnRMb2FkZWQoKCkgPT4ge1xuICAgIGNvbnN0ICQgPSBnZXRqUXVlcnkoKVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICgkKSB7XG4gICAgICBjb25zdCBuYW1lID0gcGx1Z2luLk5BTUVcbiAgICAgIGNvbnN0IEpRVUVSWV9OT19DT05GTElDVCA9ICQuZm5bbmFtZV1cbiAgICAgICQuZm5bbmFtZV0gPSBwbHVnaW4ualF1ZXJ5SW50ZXJmYWNlXG4gICAgICAkLmZuW25hbWVdLkNvbnN0cnVjdG9yID0gcGx1Z2luXG4gICAgICAkLmZuW25hbWVdLm5vQ29uZmxpY3QgPSAoKSA9PiB7XG4gICAgICAgICQuZm5bbmFtZV0gPSBKUVVFUllfTk9fQ09ORkxJQ1RcbiAgICAgICAgcmV0dXJuIHBsdWdpbi5qUXVlcnlJbnRlcmZhY2VcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbmNvbnN0IGV4ZWN1dGUgPSAocG9zc2libGVDYWxsYmFjaywgYXJncyA9IFtdLCBkZWZhdWx0VmFsdWUgPSBwb3NzaWJsZUNhbGxiYWNrKSA9PiB7XG4gIHJldHVybiB0eXBlb2YgcG9zc2libGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyA/IHBvc3NpYmxlQ2FsbGJhY2soLi4uYXJncykgOiBkZWZhdWx0VmFsdWVcbn1cblxuY29uc3QgZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbiA9IChjYWxsYmFjaywgdHJhbnNpdGlvbkVsZW1lbnQsIHdhaXRGb3JUcmFuc2l0aW9uID0gdHJ1ZSkgPT4ge1xuICBpZiAoIXdhaXRGb3JUcmFuc2l0aW9uKSB7XG4gICAgZXhlY3V0ZShjYWxsYmFjaylcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGR1cmF0aW9uUGFkZGluZyA9IDVcbiAgY29uc3QgZW11bGF0ZWREdXJhdGlvbiA9IGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRyYW5zaXRpb25FbGVtZW50KSArIGR1cmF0aW9uUGFkZGluZ1xuXG4gIGxldCBjYWxsZWQgPSBmYWxzZVxuXG4gIGNvbnN0IGhhbmRsZXIgPSAoeyB0YXJnZXQgfSkgPT4ge1xuICAgIGlmICh0YXJnZXQgIT09IHRyYW5zaXRpb25FbGVtZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjYWxsZWQgPSB0cnVlXG4gICAgdHJhbnNpdGlvbkVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihUUkFOU0lUSU9OX0VORCwgaGFuZGxlcilcbiAgICBleGVjdXRlKGNhbGxiYWNrKVxuICB9XG5cbiAgdHJhbnNpdGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihUUkFOU0lUSU9OX0VORCwgaGFuZGxlcilcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKCFjYWxsZWQpIHtcbiAgICAgIHRyaWdnZXJUcmFuc2l0aW9uRW5kKHRyYW5zaXRpb25FbGVtZW50KVxuICAgIH1cbiAgfSwgZW11bGF0ZWREdXJhdGlvbilcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByZXZpb3VzL25leHQgZWxlbWVudCBvZiBhIGxpc3QuXG4gKlxuICogQHBhcmFtIHthcnJheX0gbGlzdCAgICBUaGUgbGlzdCBvZiBlbGVtZW50c1xuICogQHBhcmFtIGFjdGl2ZUVsZW1lbnQgICBUaGUgYWN0aXZlIGVsZW1lbnRcbiAqIEBwYXJhbSBzaG91bGRHZXROZXh0ICAgQ2hvb3NlIHRvIGdldCBuZXh0IG9yIHByZXZpb3VzIGVsZW1lbnRcbiAqIEBwYXJhbSBpc0N5Y2xlQWxsb3dlZFxuICogQHJldHVybiB7RWxlbWVudHxlbGVtfSBUaGUgcHJvcGVyIGVsZW1lbnRcbiAqL1xuY29uc3QgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQgPSAobGlzdCwgYWN0aXZlRWxlbWVudCwgc2hvdWxkR2V0TmV4dCwgaXNDeWNsZUFsbG93ZWQpID0+IHtcbiAgY29uc3QgbGlzdExlbmd0aCA9IGxpc3QubGVuZ3RoXG4gIGxldCBpbmRleCA9IGxpc3QuaW5kZXhPZihhY3RpdmVFbGVtZW50KVxuXG4gIC8vIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGV4aXN0IGluIHRoZSBsaXN0IHJldHVybiBhbiBlbGVtZW50XG4gIC8vIGRlcGVuZGluZyBvbiB0aGUgZGlyZWN0aW9uIGFuZCBpZiBjeWNsZSBpcyBhbGxvd2VkXG4gIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gIXNob3VsZEdldE5leHQgJiYgaXNDeWNsZUFsbG93ZWQgPyBsaXN0W2xpc3RMZW5ndGggLSAxXSA6IGxpc3RbMF1cbiAgfVxuXG4gIGluZGV4ICs9IHNob3VsZEdldE5leHQgPyAxIDogLTFcblxuICBpZiAoaXNDeWNsZUFsbG93ZWQpIHtcbiAgICBpbmRleCA9IChpbmRleCArIGxpc3RMZW5ndGgpICUgbGlzdExlbmd0aFxuICB9XG5cbiAgcmV0dXJuIGxpc3RbTWF0aC5tYXgoMCwgTWF0aC5taW4oaW5kZXgsIGxpc3RMZW5ndGggLSAxKSldXG59XG5cbmV4cG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbixcbiAgZXhlY3V0ZSxcbiAgZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbixcbiAgZmluZFNoYWRvd1Jvb3QsXG4gIGdldEVsZW1lbnQsXG4gIGdldGpRdWVyeSxcbiAgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQsXG4gIGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50LFxuICBnZXRVSUQsXG4gIGlzRGlzYWJsZWQsXG4gIGlzRWxlbWVudCxcbiAgaXNSVEwsXG4gIGlzVmlzaWJsZSxcbiAgbm9vcCxcbiAgb25ET01Db250ZW50TG9hZGVkLFxuICBwYXJzZVNlbGVjdG9yLFxuICByZWZsb3csXG4gIHRyaWdnZXJUcmFuc2l0aW9uRW5kLFxuICB0b1R5cGVcbn1cbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgZG9tL2V2ZW50LWhhbmRsZXIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgeyBnZXRqUXVlcnkgfSBmcm9tICcuLi91dGlsL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IG5hbWVzcGFjZVJlZ2V4ID0gL1teLl0qKD89XFwuLiopXFwufC4qL1xuY29uc3Qgc3RyaXBOYW1lUmVnZXggPSAvXFwuLiovXG5jb25zdCBzdHJpcFVpZFJlZ2V4ID0gLzo6XFxkKyQvXG5jb25zdCBldmVudFJlZ2lzdHJ5ID0ge30gLy8gRXZlbnRzIHN0b3JhZ2VcbmxldCB1aWRFdmVudCA9IDFcbmNvbnN0IGN1c3RvbUV2ZW50cyA9IHtcbiAgbW91c2VlbnRlcjogJ21vdXNlb3ZlcicsXG4gIG1vdXNlbGVhdmU6ICdtb3VzZW91dCdcbn1cblxuY29uc3QgbmF0aXZlRXZlbnRzID0gbmV3IFNldChbXG4gICdjbGljaycsXG4gICdkYmxjbGljaycsXG4gICdtb3VzZXVwJyxcbiAgJ21vdXNlZG93bicsXG4gICdjb250ZXh0bWVudScsXG4gICdtb3VzZXdoZWVsJyxcbiAgJ0RPTU1vdXNlU2Nyb2xsJyxcbiAgJ21vdXNlb3ZlcicsXG4gICdtb3VzZW91dCcsXG4gICdtb3VzZW1vdmUnLFxuICAnc2VsZWN0c3RhcnQnLFxuICAnc2VsZWN0ZW5kJyxcbiAgJ2tleWRvd24nLFxuICAna2V5cHJlc3MnLFxuICAna2V5dXAnLFxuICAnb3JpZW50YXRpb25jaGFuZ2UnLFxuICAndG91Y2hzdGFydCcsXG4gICd0b3VjaG1vdmUnLFxuICAndG91Y2hlbmQnLFxuICAndG91Y2hjYW5jZWwnLFxuICAncG9pbnRlcmRvd24nLFxuICAncG9pbnRlcm1vdmUnLFxuICAncG9pbnRlcnVwJyxcbiAgJ3BvaW50ZXJsZWF2ZScsXG4gICdwb2ludGVyY2FuY2VsJyxcbiAgJ2dlc3R1cmVzdGFydCcsXG4gICdnZXN0dXJlY2hhbmdlJyxcbiAgJ2dlc3R1cmVlbmQnLFxuICAnZm9jdXMnLFxuICAnYmx1cicsXG4gICdjaGFuZ2UnLFxuICAncmVzZXQnLFxuICAnc2VsZWN0JyxcbiAgJ3N1Ym1pdCcsXG4gICdmb2N1c2luJyxcbiAgJ2ZvY3Vzb3V0JyxcbiAgJ2xvYWQnLFxuICAndW5sb2FkJyxcbiAgJ2JlZm9yZXVubG9hZCcsXG4gICdyZXNpemUnLFxuICAnbW92ZScsXG4gICdET01Db250ZW50TG9hZGVkJyxcbiAgJ3JlYWR5c3RhdGVjaGFuZ2UnLFxuICAnZXJyb3InLFxuICAnYWJvcnQnLFxuICAnc2Nyb2xsJ1xuXSlcblxuLyoqXG4gKiBQcml2YXRlIG1ldGhvZHNcbiAqL1xuXG5mdW5jdGlvbiBtYWtlRXZlbnRVaWQoZWxlbWVudCwgdWlkKSB7XG4gIHJldHVybiAodWlkICYmIGAke3VpZH06OiR7dWlkRXZlbnQrK31gKSB8fCBlbGVtZW50LnVpZEV2ZW50IHx8IHVpZEV2ZW50Kytcbn1cblxuZnVuY3Rpb24gZ2V0RWxlbWVudEV2ZW50cyhlbGVtZW50KSB7XG4gIGNvbnN0IHVpZCA9IG1ha2VFdmVudFVpZChlbGVtZW50KVxuXG4gIGVsZW1lbnQudWlkRXZlbnQgPSB1aWRcbiAgZXZlbnRSZWdpc3RyeVt1aWRdID0gZXZlbnRSZWdpc3RyeVt1aWRdIHx8IHt9XG5cbiAgcmV0dXJuIGV2ZW50UmVnaXN0cnlbdWlkXVxufVxuXG5mdW5jdGlvbiBib290c3RyYXBIYW5kbGVyKGVsZW1lbnQsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gICAgaHlkcmF0ZU9iaihldmVudCwgeyBkZWxlZ2F0ZVRhcmdldDogZWxlbWVudCB9KVxuXG4gICAgaWYgKGhhbmRsZXIub25lT2ZmKSB7XG4gICAgICBFdmVudEhhbmRsZXIub2ZmKGVsZW1lbnQsIGV2ZW50LnR5cGUsIGZuKVxuICAgIH1cblxuICAgIHJldHVybiBmbi5hcHBseShlbGVtZW50LCBbZXZlbnRdKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJvb3RzdHJhcERlbGVnYXRpb25IYW5kbGVyKGVsZW1lbnQsIHNlbGVjdG9yLCBmbikge1xuICByZXR1cm4gZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICAgIGNvbnN0IGRvbUVsZW1lbnRzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKVxuXG4gICAgZm9yIChsZXQgeyB0YXJnZXQgfSA9IGV2ZW50OyB0YXJnZXQgJiYgdGFyZ2V0ICE9PSB0aGlzOyB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZSkge1xuICAgICAgZm9yIChjb25zdCBkb21FbGVtZW50IG9mIGRvbUVsZW1lbnRzKSB7XG4gICAgICAgIGlmIChkb21FbGVtZW50ICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgaHlkcmF0ZU9iaihldmVudCwgeyBkZWxlZ2F0ZVRhcmdldDogdGFyZ2V0IH0pXG5cbiAgICAgICAgaWYgKGhhbmRsZXIub25lT2ZmKSB7XG4gICAgICAgICAgRXZlbnRIYW5kbGVyLm9mZihlbGVtZW50LCBldmVudC50eXBlLCBzZWxlY3RvciwgZm4pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGFyZ2V0LCBbZXZlbnRdKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSGFuZGxlcihldmVudHMsIGNhbGxhYmxlLCBkZWxlZ2F0aW9uU2VsZWN0b3IgPSBudWxsKSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKGV2ZW50cylcbiAgICAuZmluZChldmVudCA9PiBldmVudC5jYWxsYWJsZSA9PT0gY2FsbGFibGUgJiYgZXZlbnQuZGVsZWdhdGlvblNlbGVjdG9yID09PSBkZWxlZ2F0aW9uU2VsZWN0b3IpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhcmFtZXRlcnMob3JpZ2luYWxUeXBlRXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbikge1xuICBjb25zdCBpc0RlbGVnYXRlZCA9IHR5cGVvZiBoYW5kbGVyID09PSAnc3RyaW5nJ1xuICAvLyBUT0RPOiB0b29sdGlwIHBhc3NlcyBgZmFsc2VgIGluc3RlYWQgb2Ygc2VsZWN0b3IsIHNvIHdlIG5lZWQgdG8gY2hlY2tcbiAgY29uc3QgY2FsbGFibGUgPSBpc0RlbGVnYXRlZCA/IGRlbGVnYXRpb25GdW5jdGlvbiA6IChoYW5kbGVyIHx8IGRlbGVnYXRpb25GdW5jdGlvbilcbiAgbGV0IHR5cGVFdmVudCA9IGdldFR5cGVFdmVudChvcmlnaW5hbFR5cGVFdmVudClcblxuICBpZiAoIW5hdGl2ZUV2ZW50cy5oYXModHlwZUV2ZW50KSkge1xuICAgIHR5cGVFdmVudCA9IG9yaWdpbmFsVHlwZUV2ZW50XG4gIH1cblxuICByZXR1cm4gW2lzRGVsZWdhdGVkLCBjYWxsYWJsZSwgdHlwZUV2ZW50XVxufVxuXG5mdW5jdGlvbiBhZGRIYW5kbGVyKGVsZW1lbnQsIG9yaWdpbmFsVHlwZUV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24sIG9uZU9mZikge1xuICBpZiAodHlwZW9mIG9yaWdpbmFsVHlwZUV2ZW50ICE9PSAnc3RyaW5nJyB8fCAhZWxlbWVudCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbGV0IFtpc0RlbGVnYXRlZCwgY2FsbGFibGUsIHR5cGVFdmVudF0gPSBub3JtYWxpemVQYXJhbWV0ZXJzKG9yaWdpbmFsVHlwZUV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24pXG5cbiAgLy8gaW4gY2FzZSBvZiBtb3VzZWVudGVyIG9yIG1vdXNlbGVhdmUgd3JhcCB0aGUgaGFuZGxlciB3aXRoaW4gYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBmb3IgaXRzIERPTSBwb3NpdGlvblxuICAvLyB0aGlzIHByZXZlbnRzIHRoZSBoYW5kbGVyIGZyb20gYmVpbmcgZGlzcGF0Y2hlZCB0aGUgc2FtZSB3YXkgYXMgbW91c2VvdmVyIG9yIG1vdXNlb3V0IGRvZXNcbiAgaWYgKG9yaWdpbmFsVHlwZUV2ZW50IGluIGN1c3RvbUV2ZW50cykge1xuICAgIGNvbnN0IHdyYXBGdW5jdGlvbiA9IGZuID0+IHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgaWYgKCFldmVudC5yZWxhdGVkVGFyZ2V0IHx8IChldmVudC5yZWxhdGVkVGFyZ2V0ICE9PSBldmVudC5kZWxlZ2F0ZVRhcmdldCAmJiAhZXZlbnQuZGVsZWdhdGVUYXJnZXQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYWxsYWJsZSA9IHdyYXBGdW5jdGlvbihjYWxsYWJsZSlcbiAgfVxuXG4gIGNvbnN0IGV2ZW50cyA9IGdldEVsZW1lbnRFdmVudHMoZWxlbWVudClcbiAgY29uc3QgaGFuZGxlcnMgPSBldmVudHNbdHlwZUV2ZW50XSB8fCAoZXZlbnRzW3R5cGVFdmVudF0gPSB7fSlcbiAgY29uc3QgcHJldmlvdXNGdW5jdGlvbiA9IGZpbmRIYW5kbGVyKGhhbmRsZXJzLCBjYWxsYWJsZSwgaXNEZWxlZ2F0ZWQgPyBoYW5kbGVyIDogbnVsbClcblxuICBpZiAocHJldmlvdXNGdW5jdGlvbikge1xuICAgIHByZXZpb3VzRnVuY3Rpb24ub25lT2ZmID0gcHJldmlvdXNGdW5jdGlvbi5vbmVPZmYgJiYgb25lT2ZmXG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHVpZCA9IG1ha2VFdmVudFVpZChjYWxsYWJsZSwgb3JpZ2luYWxUeXBlRXZlbnQucmVwbGFjZShuYW1lc3BhY2VSZWdleCwgJycpKVxuICBjb25zdCBmbiA9IGlzRGVsZWdhdGVkID9cbiAgICBib290c3RyYXBEZWxlZ2F0aW9uSGFuZGxlcihlbGVtZW50LCBoYW5kbGVyLCBjYWxsYWJsZSkgOlxuICAgIGJvb3RzdHJhcEhhbmRsZXIoZWxlbWVudCwgY2FsbGFibGUpXG5cbiAgZm4uZGVsZWdhdGlvblNlbGVjdG9yID0gaXNEZWxlZ2F0ZWQgPyBoYW5kbGVyIDogbnVsbFxuICBmbi5jYWxsYWJsZSA9IGNhbGxhYmxlXG4gIGZuLm9uZU9mZiA9IG9uZU9mZlxuICBmbi51aWRFdmVudCA9IHVpZFxuICBoYW5kbGVyc1t1aWRdID0gZm5cblxuICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodHlwZUV2ZW50LCBmbiwgaXNEZWxlZ2F0ZWQpXG59XG5cbmZ1bmN0aW9uIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25TZWxlY3Rvcikge1xuICBjb25zdCBmbiA9IGZpbmRIYW5kbGVyKGV2ZW50c1t0eXBlRXZlbnRdLCBoYW5kbGVyLCBkZWxlZ2F0aW9uU2VsZWN0b3IpXG5cbiAgaWYgKCFmbikge1xuICAgIHJldHVyblxuICB9XG5cbiAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGVFdmVudCwgZm4sIEJvb2xlYW4oZGVsZWdhdGlvblNlbGVjdG9yKSlcbiAgZGVsZXRlIGV2ZW50c1t0eXBlRXZlbnRdW2ZuLnVpZEV2ZW50XVxufVxuXG5mdW5jdGlvbiByZW1vdmVOYW1lc3BhY2VkSGFuZGxlcnMoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIG5hbWVzcGFjZSkge1xuICBjb25zdCBzdG9yZUVsZW1lbnRFdmVudCA9IGV2ZW50c1t0eXBlRXZlbnRdIHx8IHt9XG5cbiAgZm9yIChjb25zdCBbaGFuZGxlcktleSwgZXZlbnRdIG9mIE9iamVjdC5lbnRyaWVzKHN0b3JlRWxlbWVudEV2ZW50KSkge1xuICAgIGlmIChoYW5kbGVyS2V5LmluY2x1ZGVzKG5hbWVzcGFjZSkpIHtcbiAgICAgIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGV2ZW50LmNhbGxhYmxlLCBldmVudC5kZWxlZ2F0aW9uU2VsZWN0b3IpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFR5cGVFdmVudChldmVudCkge1xuICAvLyBhbGxvdyB0byBnZXQgdGhlIG5hdGl2ZSBldmVudHMgZnJvbSBuYW1lc3BhY2VkIGV2ZW50cyAoJ2NsaWNrLmJzLmJ1dHRvbicgLS0+ICdjbGljaycpXG4gIGV2ZW50ID0gZXZlbnQucmVwbGFjZShzdHJpcE5hbWVSZWdleCwgJycpXG4gIHJldHVybiBjdXN0b21FdmVudHNbZXZlbnRdIHx8IGV2ZW50XG59XG5cbmNvbnN0IEV2ZW50SGFuZGxlciA9IHtcbiAgb24oZWxlbWVudCwgZXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbikge1xuICAgIGFkZEhhbmRsZXIoZWxlbWVudCwgZXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbiwgZmFsc2UpXG4gIH0sXG5cbiAgb25lKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24pIHtcbiAgICBhZGRIYW5kbGVyKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24sIHRydWUpXG4gIH0sXG5cbiAgb2ZmKGVsZW1lbnQsIG9yaWdpbmFsVHlwZUV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24pIHtcbiAgICBpZiAodHlwZW9mIG9yaWdpbmFsVHlwZUV2ZW50ICE9PSAnc3RyaW5nJyB8fCAhZWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgW2lzRGVsZWdhdGVkLCBjYWxsYWJsZSwgdHlwZUV2ZW50XSA9IG5vcm1hbGl6ZVBhcmFtZXRlcnMob3JpZ2luYWxUeXBlRXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbilcbiAgICBjb25zdCBpbk5hbWVzcGFjZSA9IHR5cGVFdmVudCAhPT0gb3JpZ2luYWxUeXBlRXZlbnRcbiAgICBjb25zdCBldmVudHMgPSBnZXRFbGVtZW50RXZlbnRzKGVsZW1lbnQpXG4gICAgY29uc3Qgc3RvcmVFbGVtZW50RXZlbnQgPSBldmVudHNbdHlwZUV2ZW50XSB8fCB7fVxuICAgIGNvbnN0IGlzTmFtZXNwYWNlID0gb3JpZ2luYWxUeXBlRXZlbnQuc3RhcnRzV2l0aCgnLicpXG5cbiAgICBpZiAodHlwZW9mIGNhbGxhYmxlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gU2ltcGxlc3QgY2FzZTogaGFuZGxlciBpcyBwYXNzZWQsIHJlbW92ZSB0aGF0IGxpc3RlbmVyIE9OTFkuXG4gICAgICBpZiAoIU9iamVjdC5rZXlzKHN0b3JlRWxlbWVudEV2ZW50KS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGNhbGxhYmxlLCBpc0RlbGVnYXRlZCA/IGhhbmRsZXIgOiBudWxsKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzTmFtZXNwYWNlKSB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnRFdmVudCBvZiBPYmplY3Qua2V5cyhldmVudHMpKSB7XG4gICAgICAgIHJlbW92ZU5hbWVzcGFjZWRIYW5kbGVycyhlbGVtZW50LCBldmVudHMsIGVsZW1lbnRFdmVudCwgb3JpZ2luYWxUeXBlRXZlbnQuc2xpY2UoMSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5SGFuZGxlcnMsIGV2ZW50XSBvZiBPYmplY3QuZW50cmllcyhzdG9yZUVsZW1lbnRFdmVudCkpIHtcbiAgICAgIGNvbnN0IGhhbmRsZXJLZXkgPSBrZXlIYW5kbGVycy5yZXBsYWNlKHN0cmlwVWlkUmVnZXgsICcnKVxuXG4gICAgICBpZiAoIWluTmFtZXNwYWNlIHx8IG9yaWdpbmFsVHlwZUV2ZW50LmluY2x1ZGVzKGhhbmRsZXJLZXkpKSB7XG4gICAgICAgIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGV2ZW50LmNhbGxhYmxlLCBldmVudC5kZWxlZ2F0aW9uU2VsZWN0b3IpXG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHRyaWdnZXIoZWxlbWVudCwgZXZlbnQsIGFyZ3MpIHtcbiAgICBpZiAodHlwZW9mIGV2ZW50ICE9PSAnc3RyaW5nJyB8fCAhZWxlbWVudCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCAkID0gZ2V0alF1ZXJ5KClcbiAgICBjb25zdCB0eXBlRXZlbnQgPSBnZXRUeXBlRXZlbnQoZXZlbnQpXG4gICAgY29uc3QgaW5OYW1lc3BhY2UgPSBldmVudCAhPT0gdHlwZUV2ZW50XG5cbiAgICBsZXQgalF1ZXJ5RXZlbnQgPSBudWxsXG4gICAgbGV0IGJ1YmJsZXMgPSB0cnVlXG4gICAgbGV0IG5hdGl2ZURpc3BhdGNoID0gdHJ1ZVxuICAgIGxldCBkZWZhdWx0UHJldmVudGVkID0gZmFsc2VcblxuICAgIGlmIChpbk5hbWVzcGFjZSAmJiAkKSB7XG4gICAgICBqUXVlcnlFdmVudCA9ICQuRXZlbnQoZXZlbnQsIGFyZ3MpXG5cbiAgICAgICQoZWxlbWVudCkudHJpZ2dlcihqUXVlcnlFdmVudClcbiAgICAgIGJ1YmJsZXMgPSAhalF1ZXJ5RXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKVxuICAgICAgbmF0aXZlRGlzcGF0Y2ggPSAhalF1ZXJ5RXZlbnQuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKVxuICAgICAgZGVmYXVsdFByZXZlbnRlZCA9IGpRdWVyeUV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpXG4gICAgfVxuXG4gICAgY29uc3QgZXZ0ID0gaHlkcmF0ZU9iaihuZXcgRXZlbnQoZXZlbnQsIHsgYnViYmxlcywgY2FuY2VsYWJsZTogdHJ1ZSB9KSwgYXJncylcblxuICAgIGlmIChkZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cblxuICAgIGlmIChuYXRpdmVEaXNwYXRjaCkge1xuICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2dClcbiAgICB9XG5cbiAgICBpZiAoZXZ0LmRlZmF1bHRQcmV2ZW50ZWQgJiYgalF1ZXJ5RXZlbnQpIHtcbiAgICAgIGpRdWVyeUV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG5cbiAgICByZXR1cm4gZXZ0XG4gIH1cbn1cblxuZnVuY3Rpb24gaHlkcmF0ZU9iaihvYmosIG1ldGEgPSB7fSkge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhtZXRhKSkge1xuICAgIHRyeSB7XG4gICAgICBvYmpba2V5XSA9IHZhbHVlXG4gICAgfSBjYXRjaCB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9ialxufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudEhhbmRsZXJcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgZG9tL21hbmlwdWxhdG9yLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuZnVuY3Rpb24gbm9ybWFsaXplRGF0YSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09ICd0cnVlJykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodmFsdWUgPT09ICdmYWxzZScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gTnVtYmVyKHZhbHVlKS50b1N0cmluZygpKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSlcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICdudWxsJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQodmFsdWUpKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVEYXRhS2V5KGtleSkge1xuICByZXR1cm4ga2V5LnJlcGxhY2UoL1tBLVpdL2csIGNociA9PiBgLSR7Y2hyLnRvTG93ZXJDYXNlKCl9YClcbn1cblxuY29uc3QgTWFuaXB1bGF0b3IgPSB7XG4gIHNldERhdGFBdHRyaWJ1dGUoZWxlbWVudCwga2V5LCB2YWx1ZSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGBkYXRhLWJzLSR7bm9ybWFsaXplRGF0YUtleShrZXkpfWAsIHZhbHVlKVxuICB9LFxuXG4gIHJlbW92ZURhdGFBdHRyaWJ1dGUoZWxlbWVudCwga2V5KSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYGRhdGEtYnMtJHtub3JtYWxpemVEYXRhS2V5KGtleSl9YClcbiAgfSxcblxuICBnZXREYXRhQXR0cmlidXRlcyhlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzID0ge31cbiAgICBjb25zdCBic0tleXMgPSBPYmplY3Qua2V5cyhlbGVtZW50LmRhdGFzZXQpLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgoJ2JzJykgJiYgIWtleS5zdGFydHNXaXRoKCdic0NvbmZpZycpKVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYnNLZXlzKSB7XG4gICAgICBsZXQgcHVyZUtleSA9IGtleS5yZXBsYWNlKC9eYnMvLCAnJylcbiAgICAgIHB1cmVLZXkgPSBwdXJlS2V5LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgcHVyZUtleS5zbGljZSgxLCBwdXJlS2V5Lmxlbmd0aClcbiAgICAgIGF0dHJpYnV0ZXNbcHVyZUtleV0gPSBub3JtYWxpemVEYXRhKGVsZW1lbnQuZGF0YXNldFtrZXldKVxuICAgIH1cblxuICAgIHJldHVybiBhdHRyaWJ1dGVzXG4gIH0sXG5cbiAgZ2V0RGF0YUF0dHJpYnV0ZShlbGVtZW50LCBrZXkpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplRGF0YShlbGVtZW50LmdldEF0dHJpYnV0ZShgZGF0YS1icy0ke25vcm1hbGl6ZURhdGFLZXkoa2V5KX1gKSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYW5pcHVsYXRvclxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCB1dGlsL2NvbmZpZy5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBNYW5pcHVsYXRvciBmcm9tICcuLi9kb20vbWFuaXB1bGF0b3IuanMnXG5pbXBvcnQgeyBpc0VsZW1lbnQsIHRvVHlwZSB9IGZyb20gJy4vaW5kZXguanMnXG5cbi8qKlxuICogQ2xhc3MgZGVmaW5pdGlvblxuICovXG5cbmNsYXNzIENvbmZpZyB7XG4gIC8vIEdldHRlcnNcbiAgc3RhdGljIGdldCBEZWZhdWx0KCkge1xuICAgIHJldHVybiB7fVxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBoYXZlIHRvIGltcGxlbWVudCB0aGUgc3RhdGljIG1ldGhvZCBcIk5BTUVcIiwgZm9yIGVhY2ggY29tcG9uZW50IScpXG4gIH1cblxuICBfZ2V0Q29uZmlnKGNvbmZpZykge1xuICAgIGNvbmZpZyA9IHRoaXMuX21lcmdlQ29uZmlnT2JqKGNvbmZpZylcbiAgICBjb25maWcgPSB0aGlzLl9jb25maWdBZnRlck1lcmdlKGNvbmZpZylcbiAgICB0aGlzLl90eXBlQ2hlY2tDb25maWcoY29uZmlnKVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9tZXJnZUNvbmZpZ09iaihjb25maWcsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBqc29uQ29uZmlnID0gaXNFbGVtZW50KGVsZW1lbnQpID8gTWFuaXB1bGF0b3IuZ2V0RGF0YUF0dHJpYnV0ZShlbGVtZW50LCAnY29uZmlnJykgOiB7fSAvLyB0cnkgdG8gcGFyc2VcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsXG4gICAgICAuLi4odHlwZW9mIGpzb25Db25maWcgPT09ICdvYmplY3QnID8ganNvbkNvbmZpZyA6IHt9KSxcbiAgICAgIC4uLihpc0VsZW1lbnQoZWxlbWVudCkgPyBNYW5pcHVsYXRvci5nZXREYXRhQXR0cmlidXRlcyhlbGVtZW50KSA6IHt9KSxcbiAgICAgIC4uLih0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0JyA/IGNvbmZpZyA6IHt9KVxuICAgIH1cbiAgfVxuXG4gIF90eXBlQ2hlY2tDb25maWcoY29uZmlnLCBjb25maWdUeXBlcyA9IHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpIHtcbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eSwgZXhwZWN0ZWRUeXBlc10gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnVHlwZXMpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbmZpZ1twcm9wZXJ0eV1cbiAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IGlzRWxlbWVudCh2YWx1ZSkgPyAnZWxlbWVudCcgOiB0b1R5cGUodmFsdWUpXG5cbiAgICAgIGlmICghbmV3IFJlZ0V4cChleHBlY3RlZFR5cGVzKS50ZXN0KHZhbHVlVHlwZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBgJHt0aGlzLmNvbnN0cnVjdG9yLk5BTUUudG9VcHBlckNhc2UoKX06IE9wdGlvbiBcIiR7cHJvcGVydHl9XCIgcHJvdmlkZWQgdHlwZSBcIiR7dmFsdWVUeXBlfVwiIGJ1dCBleHBlY3RlZCB0eXBlIFwiJHtleHBlY3RlZFR5cGVzfVwiLmBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDb25maWdcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgYmFzZS1jb21wb25lbnQuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRGF0YSBmcm9tICcuL2RvbS9kYXRhLmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL3V0aWwvY29uZmlnLmpzJ1xuaW1wb3J0IHsgZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbiwgZ2V0RWxlbWVudCB9IGZyb20gJy4vdXRpbC9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBWRVJTSU9OID0gJzUuMy4zJ1xuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBCYXNlQ29tcG9uZW50IGV4dGVuZHMgQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgZWxlbWVudCA9IGdldEVsZW1lbnQoZWxlbWVudClcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5fZ2V0Q29uZmlnKGNvbmZpZylcblxuICAgIERhdGEuc2V0KHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksIHRoaXMpXG4gIH1cblxuICAvLyBQdWJsaWNcbiAgZGlzcG9zZSgpIHtcbiAgICBEYXRhLnJlbW92ZSh0aGlzLl9lbGVtZW50LCB0aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZKVxuICAgIEV2ZW50SGFuZGxlci5vZmYodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpXG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkge1xuICAgICAgdGhpc1twcm9wZXJ0eU5hbWVdID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIF9xdWV1ZUNhbGxiYWNrKGNhbGxiYWNrLCBlbGVtZW50LCBpc0FuaW1hdGVkID0gdHJ1ZSkge1xuICAgIGV4ZWN1dGVBZnRlclRyYW5zaXRpb24oY2FsbGJhY2ssIGVsZW1lbnQsIGlzQW5pbWF0ZWQpXG4gIH1cblxuICBfZ2V0Q29uZmlnKGNvbmZpZykge1xuICAgIGNvbmZpZyA9IHRoaXMuX21lcmdlQ29uZmlnT2JqKGNvbmZpZywgdGhpcy5fZWxlbWVudClcbiAgICBjb25maWcgPSB0aGlzLl9jb25maWdBZnRlck1lcmdlKGNvbmZpZylcbiAgICB0aGlzLl90eXBlQ2hlY2tDb25maWcoY29uZmlnKVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIC8vIFN0YXRpY1xuICBzdGF0aWMgZ2V0SW5zdGFuY2UoZWxlbWVudCkge1xuICAgIHJldHVybiBEYXRhLmdldChnZXRFbGVtZW50KGVsZW1lbnQpLCB0aGlzLkRBVEFfS0VZKVxuICB9XG5cbiAgc3RhdGljIGdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgY29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnN0YW5jZShlbGVtZW50KSB8fCBuZXcgdGhpcyhlbGVtZW50LCB0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0JyA/IGNvbmZpZyA6IG51bGwpXG4gIH1cblxuICBzdGF0aWMgZ2V0IFZFUlNJT04oKSB7XG4gICAgcmV0dXJuIFZFUlNJT05cbiAgfVxuXG4gIHN0YXRpYyBnZXQgREFUQV9LRVkoKSB7XG4gICAgcmV0dXJuIGBicy4ke3RoaXMuTkFNRX1gXG4gIH1cblxuICBzdGF0aWMgZ2V0IEVWRU5UX0tFWSgpIHtcbiAgICByZXR1cm4gYC4ke3RoaXMuREFUQV9LRVl9YFxuICB9XG5cbiAgc3RhdGljIGV2ZW50TmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIGAke25hbWV9JHt0aGlzLkVWRU5UX0tFWX1gXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQmFzZUNvbXBvbmVudFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBkb20vc2VsZWN0b3ItZW5naW5lLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW1wb3J0IHsgaXNEaXNhYmxlZCwgaXNWaXNpYmxlLCBwYXJzZVNlbGVjdG9yIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcydcblxuY29uc3QgZ2V0U2VsZWN0b3IgPSBlbGVtZW50ID0+IHtcbiAgbGV0IHNlbGVjdG9yID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdGFyZ2V0JylcblxuICBpZiAoIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSAnIycpIHtcbiAgICBsZXQgaHJlZkF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJylcblxuICAgIC8vIFRoZSBvbmx5IHZhbGlkIGNvbnRlbnQgdGhhdCBjb3VsZCBkb3VibGUgYXMgYSBzZWxlY3RvciBhcmUgSURzIG9yIGNsYXNzZXMsXG4gICAgLy8gc28gZXZlcnl0aGluZyBzdGFydGluZyB3aXRoIGAjYCBvciBgLmAuIElmIGEgXCJyZWFsXCIgVVJMIGlzIHVzZWQgYXMgdGhlIHNlbGVjdG9yLFxuICAgIC8vIGBkb2N1bWVudC5xdWVyeVNlbGVjdG9yYCB3aWxsIHJpZ2h0ZnVsbHkgY29tcGxhaW4gaXQgaXMgaW52YWxpZC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8zMjI3M1xuICAgIGlmICghaHJlZkF0dHJpYnV0ZSB8fCAoIWhyZWZBdHRyaWJ1dGUuaW5jbHVkZXMoJyMnKSAmJiAhaHJlZkF0dHJpYnV0ZS5zdGFydHNXaXRoKCcuJykpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lIENNUyBwdXRzIG91dCBhIGZ1bGwgVVJMIHdpdGggdGhlIGFuY2hvciBhcHBlbmRlZFxuICAgIGlmIChocmVmQXR0cmlidXRlLmluY2x1ZGVzKCcjJykgJiYgIWhyZWZBdHRyaWJ1dGUuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICBocmVmQXR0cmlidXRlID0gYCMke2hyZWZBdHRyaWJ1dGUuc3BsaXQoJyMnKVsxXX1gXG4gICAgfVxuXG4gICAgc2VsZWN0b3IgPSBocmVmQXR0cmlidXRlICYmIGhyZWZBdHRyaWJ1dGUgIT09ICcjJyA/IGhyZWZBdHRyaWJ1dGUudHJpbSgpIDogbnVsbFxuICB9XG5cbiAgcmV0dXJuIHNlbGVjdG9yID8gc2VsZWN0b3Iuc3BsaXQoJywnKS5tYXAoc2VsID0+IHBhcnNlU2VsZWN0b3Ioc2VsKSkuam9pbignLCcpIDogbnVsbFxufVxuXG5jb25zdCBTZWxlY3RvckVuZ2luZSA9IHtcbiAgZmluZChzZWxlY3RvciwgZWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgIHJldHVybiBbXS5jb25jYXQoLi4uRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbC5jYWxsKGVsZW1lbnQsIHNlbGVjdG9yKSlcbiAgfSxcblxuICBmaW5kT25lKHNlbGVjdG9yLCBlbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgcmV0dXJuIEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3IuY2FsbChlbGVtZW50LCBzZWxlY3RvcilcbiAgfSxcblxuICBjaGlsZHJlbihlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgIHJldHVybiBbXS5jb25jYXQoLi4uZWxlbWVudC5jaGlsZHJlbikuZmlsdGVyKGNoaWxkID0+IGNoaWxkLm1hdGNoZXMoc2VsZWN0b3IpKVxuICB9LFxuXG4gIHBhcmVudHMoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgICBjb25zdCBwYXJlbnRzID0gW11cbiAgICBsZXQgYW5jZXN0b3IgPSBlbGVtZW50LnBhcmVudE5vZGUuY2xvc2VzdChzZWxlY3RvcilcblxuICAgIHdoaWxlIChhbmNlc3Rvcikge1xuICAgICAgcGFyZW50cy5wdXNoKGFuY2VzdG9yKVxuICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnROb2RlLmNsb3Nlc3Qoc2VsZWN0b3IpXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudHNcbiAgfSxcblxuICBwcmV2KGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgbGV0IHByZXZpb3VzID0gZWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXG5cbiAgICB3aGlsZSAocHJldmlvdXMpIHtcbiAgICAgIGlmIChwcmV2aW91cy5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgICByZXR1cm4gW3ByZXZpb3VzXVxuICAgICAgfVxuXG4gICAgICBwcmV2aW91cyA9IHByZXZpb3VzLnByZXZpb3VzRWxlbWVudFNpYmxpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gW11cbiAgfSxcbiAgLy8gVE9ETzogdGhpcyBpcyBub3cgdW51c2VkOyByZW1vdmUgbGF0ZXIgYWxvbmcgd2l0aCBwcmV2KClcbiAgbmV4dChlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgIGxldCBuZXh0ID0gZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcblxuICAgIHdoaWxlIChuZXh0KSB7XG4gICAgICBpZiAobmV4dC5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgICByZXR1cm4gW25leHRdXG4gICAgICB9XG5cbiAgICAgIG5leHQgPSBuZXh0Lm5leHRFbGVtZW50U2libGluZ1xuICAgIH1cblxuICAgIHJldHVybiBbXVxuICB9LFxuXG4gIGZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpIHtcbiAgICBjb25zdCBmb2N1c2FibGVzID0gW1xuICAgICAgJ2EnLFxuICAgICAgJ2J1dHRvbicsXG4gICAgICAnaW5wdXQnLFxuICAgICAgJ3RleHRhcmVhJyxcbiAgICAgICdzZWxlY3QnLFxuICAgICAgJ2RldGFpbHMnLFxuICAgICAgJ1t0YWJpbmRleF0nLFxuICAgICAgJ1tjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJ1xuICAgIF0ubWFwKHNlbGVjdG9yID0+IGAke3NlbGVjdG9yfTpub3QoW3RhYmluZGV4Xj1cIi1cIl0pYCkuam9pbignLCcpXG5cbiAgICByZXR1cm4gdGhpcy5maW5kKGZvY3VzYWJsZXMsIGVsZW1lbnQpLmZpbHRlcihlbCA9PiAhaXNEaXNhYmxlZChlbCkgJiYgaXNWaXNpYmxlKGVsKSlcbiAgfSxcblxuICBnZXRTZWxlY3RvckZyb21FbGVtZW50KGVsZW1lbnQpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGdldFNlbGVjdG9yKGVsZW1lbnQpXG5cbiAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBTZWxlY3RvckVuZ2luZS5maW5kT25lKHNlbGVjdG9yKSA/IHNlbGVjdG9yIDogbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG5cbiAgZ2V0RWxlbWVudEZyb21TZWxlY3RvcihlbGVtZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBnZXRTZWxlY3RvcihlbGVtZW50KVxuXG4gICAgcmV0dXJuIHNlbGVjdG9yID8gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShzZWxlY3RvcikgOiBudWxsXG4gIH0sXG5cbiAgZ2V0TXVsdGlwbGVFbGVtZW50c0Zyb21TZWxlY3RvcihlbGVtZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBnZXRTZWxlY3RvcihlbGVtZW50KVxuXG4gICAgcmV0dXJuIHNlbGVjdG9yID8gU2VsZWN0b3JFbmdpbmUuZmluZChzZWxlY3RvcikgOiBbXVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlbGVjdG9yRW5naW5lXG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvY29tcG9uZW50LWZ1bmN0aW9ucy5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBFdmVudEhhbmRsZXIgZnJvbSAnLi4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgU2VsZWN0b3JFbmdpbmUgZnJvbSAnLi4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7IGlzRGlzYWJsZWQgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG5jb25zdCBlbmFibGVEaXNtaXNzVHJpZ2dlciA9IChjb21wb25lbnQsIG1ldGhvZCA9ICdoaWRlJykgPT4ge1xuICBjb25zdCBjbGlja0V2ZW50ID0gYGNsaWNrLmRpc21pc3Mke2NvbXBvbmVudC5FVkVOVF9LRVl9YFxuICBjb25zdCBuYW1lID0gY29tcG9uZW50Lk5BTUVcblxuICBFdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIGNsaWNrRXZlbnQsIGBbZGF0YS1icy1kaXNtaXNzPVwiJHtuYW1lfVwiXWAsIGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChbJ0EnLCAnQVJFQSddLmluY2x1ZGVzKHRoaXMudGFnTmFtZSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG5cbiAgICBpZiAoaXNEaXNhYmxlZCh0aGlzKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0ID0gU2VsZWN0b3JFbmdpbmUuZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0aGlzKSB8fCB0aGlzLmNsb3Nlc3QoYC4ke25hbWV9YClcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudC5nZXRPckNyZWF0ZUluc3RhbmNlKHRhcmdldClcblxuICAgIC8vIE1ldGhvZCBhcmd1bWVudCBpcyBsZWZ0LCBmb3IgQWxlcnQgYW5kIG9ubHksIGFzIGl0IGRvZXNuJ3QgaW1wbGVtZW50IHRoZSAnaGlkZScgbWV0aG9kXG4gICAgaW5zdGFuY2VbbWV0aG9kXSgpXG4gIH0pXG59XG5cbmV4cG9ydCB7XG4gIGVuYWJsZURpc21pc3NUcmlnZ2VyXG59XG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIGFsZXJ0LmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSAnLi9iYXNlLWNvbXBvbmVudC5qcydcbmltcG9ydCBFdmVudEhhbmRsZXIgZnJvbSAnLi9kb20vZXZlbnQtaGFuZGxlci5qcydcbmltcG9ydCB7IGVuYWJsZURpc21pc3NUcmlnZ2VyIH0gZnJvbSAnLi91dGlsL2NvbXBvbmVudC1mdW5jdGlvbnMuanMnXG5pbXBvcnQgeyBkZWZpbmVKUXVlcnlQbHVnaW4gfSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICdhbGVydCdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLmFsZXJ0J1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcblxuY29uc3QgRVZFTlRfQ0xPU0UgPSBgY2xvc2Uke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTE9TRUQgPSBgY2xvc2VkJHtFVkVOVF9LRVl9YFxuY29uc3QgQ0xBU1NfTkFNRV9GQURFID0gJ2ZhZGUnXG5jb25zdCBDTEFTU19OQU1FX1NIT1cgPSAnc2hvdydcblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQWxlcnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBjbG9zZSgpIHtcbiAgICBjb25zdCBjbG9zZUV2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfQ0xPU0UpXG5cbiAgICBpZiAoY2xvc2VFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgY29uc3QgaXNBbmltYXRlZCA9IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRkFERSlcbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKCgpID0+IHRoaXMuX2Rlc3Ryb3lFbGVtZW50KCksIHRoaXMuX2VsZW1lbnQsIGlzQW5pbWF0ZWQpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9kZXN0cm95RWxlbWVudCgpIHtcbiAgICB0aGlzLl9lbGVtZW50LnJlbW92ZSgpXG4gICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfQ0xPU0VEKVxuICAgIHRoaXMuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBBbGVydC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGFbY29uZmlnXSA9PT0gdW5kZWZpbmVkIHx8IGNvbmZpZy5zdGFydHNXaXRoKCdfJykgfHwgY29uZmlnID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgIH1cblxuICAgICAgZGF0YVtjb25maWddKHRoaXMpXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuZW5hYmxlRGlzbWlzc1RyaWdnZXIoQWxlcnQsICdjbG9zZScpXG5cbi8qKlxuICogalF1ZXJ5XG4gKi9cblxuZGVmaW5lSlF1ZXJ5UGx1Z2luKEFsZXJ0KVxuXG5leHBvcnQgZGVmYXVsdCBBbGVydFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBidXR0b24uanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IHsgZGVmaW5lSlF1ZXJ5UGx1Z2luIH0gZnJvbSAnLi91dGlsL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnYnV0dG9uJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMuYnV0dG9uJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5cbmNvbnN0IENMQVNTX05BTUVfQUNUSVZFID0gJ2FjdGl2ZSdcbmNvbnN0IFNFTEVDVE9SX0RBVEFfVE9HR0xFID0gJ1tkYXRhLWJzLXRvZ2dsZT1cImJ1dHRvblwiXSdcbmNvbnN0IEVWRU5UX0NMSUNLX0RBVEFfQVBJID0gYGNsaWNrJHtFVkVOVF9LRVl9JHtEQVRBX0FQSV9LRVl9YFxuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBCdXR0b24gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICB0b2dnbGUoKSB7XG4gICAgLy8gVG9nZ2xlIGNsYXNzIGFuZCBzeW5jIHRoZSBgYXJpYS1wcmVzc2VkYCBhdHRyaWJ1dGUgd2l0aCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgLnRvZ2dsZSgpYCBtZXRob2RcbiAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKENMQVNTX05BTUVfQUNUSVZFKSlcbiAgfVxuXG4gIC8vIFN0YXRpY1xuICBzdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGF0YSA9IEJ1dHRvbi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpXG5cbiAgICAgIGlmIChjb25maWcgPT09ICd0b2dnbGUnKSB7XG4gICAgICAgIGRhdGFbY29uZmlnXSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIGV2ZW50ID0+IHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuXG4gIGNvbnN0IGJ1dHRvbiA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KFNFTEVDVE9SX0RBVEFfVE9HR0xFKVxuICBjb25zdCBkYXRhID0gQnV0dG9uLmdldE9yQ3JlYXRlSW5zdGFuY2UoYnV0dG9uKVxuXG4gIGRhdGEudG9nZ2xlKClcbn0pXG5cbi8qKlxuICogalF1ZXJ5XG4gKi9cblxuZGVmaW5lSlF1ZXJ5UGx1Z2luKEJ1dHRvbilcblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uXG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvc3dpcGUuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4uL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy5qcydcbmltcG9ydCB7IGV4ZWN1dGUgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnc3dpcGUnXG5jb25zdCBFVkVOVF9LRVkgPSAnLmJzLnN3aXBlJ1xuY29uc3QgRVZFTlRfVE9VQ0hTVEFSVCA9IGB0b3VjaHN0YXJ0JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfVE9VQ0hNT1ZFID0gYHRvdWNobW92ZSR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1RPVUNIRU5EID0gYHRvdWNoZW5kJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfUE9JTlRFUkRPV04gPSBgcG9pbnRlcmRvd24ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9QT0lOVEVSVVAgPSBgcG9pbnRlcnVwJHtFVkVOVF9LRVl9YFxuY29uc3QgUE9JTlRFUl9UWVBFX1RPVUNIID0gJ3RvdWNoJ1xuY29uc3QgUE9JTlRFUl9UWVBFX1BFTiA9ICdwZW4nXG5jb25zdCBDTEFTU19OQU1FX1BPSU5URVJfRVZFTlQgPSAncG9pbnRlci1ldmVudCdcbmNvbnN0IFNXSVBFX1RIUkVTSE9MRCA9IDQwXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGVuZENhbGxiYWNrOiBudWxsLFxuICBsZWZ0Q2FsbGJhY2s6IG51bGwsXG4gIHJpZ2h0Q2FsbGJhY2s6IG51bGxcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIGVuZENhbGxiYWNrOiAnKGZ1bmN0aW9ufG51bGwpJyxcbiAgbGVmdENhbGxiYWNrOiAnKGZ1bmN0aW9ufG51bGwpJyxcbiAgcmlnaHRDYWxsYmFjazogJyhmdW5jdGlvbnxudWxsKSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgU3dpcGUgZXh0ZW5kcyBDb25maWcge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50LCBjb25maWcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnRcblxuICAgIGlmICghZWxlbWVudCB8fCAhU3dpcGUuaXNTdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5fZ2V0Q29uZmlnKGNvbmZpZylcbiAgICB0aGlzLl9kZWx0YVggPSAwXG4gICAgdGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHMgPSBCb29sZWFuKHdpbmRvdy5Qb2ludGVyRXZlbnQpXG4gICAgdGhpcy5faW5pdEV2ZW50cygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIGRpc3Bvc2UoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9mZih0aGlzLl9lbGVtZW50LCBFVkVOVF9LRVkpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9zdGFydChldmVudCkge1xuICAgIGlmICghdGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHMpIHtcbiAgICAgIHRoaXMuX2RlbHRhWCA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WFxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZXZlbnRJc1BvaW50ZXJQZW5Ub3VjaChldmVudCkpIHtcbiAgICAgIHRoaXMuX2RlbHRhWCA9IGV2ZW50LmNsaWVudFhcbiAgICB9XG4gIH1cblxuICBfZW5kKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2V2ZW50SXNQb2ludGVyUGVuVG91Y2goZXZlbnQpKSB7XG4gICAgICB0aGlzLl9kZWx0YVggPSBldmVudC5jbGllbnRYIC0gdGhpcy5fZGVsdGFYXG4gICAgfVxuXG4gICAgdGhpcy5faGFuZGxlU3dpcGUoKVxuICAgIGV4ZWN1dGUodGhpcy5fY29uZmlnLmVuZENhbGxiYWNrKVxuICB9XG5cbiAgX21vdmUoZXZlbnQpIHtcbiAgICB0aGlzLl9kZWx0YVggPSBldmVudC50b3VjaGVzICYmIGV2ZW50LnRvdWNoZXMubGVuZ3RoID4gMSA/XG4gICAgICAwIDpcbiAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCAtIHRoaXMuX2RlbHRhWFxuICB9XG5cbiAgX2hhbmRsZVN3aXBlKCkge1xuICAgIGNvbnN0IGFic0RlbHRhWCA9IE1hdGguYWJzKHRoaXMuX2RlbHRhWClcblxuICAgIGlmIChhYnNEZWx0YVggPD0gU1dJUEVfVEhSRVNIT0xEKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBhYnNEZWx0YVggLyB0aGlzLl9kZWx0YVhcblxuICAgIHRoaXMuX2RlbHRhWCA9IDBcblxuICAgIGlmICghZGlyZWN0aW9uKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBleGVjdXRlKGRpcmVjdGlvbiA+IDAgPyB0aGlzLl9jb25maWcucmlnaHRDYWxsYmFjayA6IHRoaXMuX2NvbmZpZy5sZWZ0Q2FsbGJhY2spXG4gIH1cblxuICBfaW5pdEV2ZW50cygpIHtcbiAgICBpZiAodGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHMpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9QT0lOVEVSRE9XTiwgZXZlbnQgPT4gdGhpcy5fc3RhcnQoZXZlbnQpKVxuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1BPSU5URVJVUCwgZXZlbnQgPT4gdGhpcy5fZW5kKGV2ZW50KSlcblxuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfUE9JTlRFUl9FVkVOVClcbiAgICB9IGVsc2Uge1xuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1RPVUNIU1RBUlQsIGV2ZW50ID0+IHRoaXMuX3N0YXJ0KGV2ZW50KSlcbiAgICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9UT1VDSE1PVkUsIGV2ZW50ID0+IHRoaXMuX21vdmUoZXZlbnQpKVxuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1RPVUNIRU5ELCBldmVudCA9PiB0aGlzLl9lbmQoZXZlbnQpKVxuICAgIH1cbiAgfVxuXG4gIF9ldmVudElzUG9pbnRlclBlblRvdWNoKGV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1cHBvcnRQb2ludGVyRXZlbnRzICYmIChldmVudC5wb2ludGVyVHlwZSA9PT0gUE9JTlRFUl9UWVBFX1BFTiB8fCBldmVudC5wb2ludGVyVHlwZSA9PT0gUE9JTlRFUl9UWVBFX1RPVUNIKVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBpc1N1cHBvcnRlZCgpIHtcbiAgICByZXR1cm4gJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDBcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTd2lwZVxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBjYXJvdXNlbC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgTWFuaXB1bGF0b3IgZnJvbSAnLi9kb20vbWFuaXB1bGF0b3IuanMnXG5pbXBvcnQgU2VsZWN0b3JFbmdpbmUgZnJvbSAnLi9kb20vc2VsZWN0b3ItZW5naW5lLmpzJ1xuaW1wb3J0IHtcbiAgZGVmaW5lSlF1ZXJ5UGx1Z2luLFxuICBnZXROZXh0QWN0aXZlRWxlbWVudCxcbiAgaXNSVEwsXG4gIGlzVmlzaWJsZSxcbiAgcmVmbG93LFxuICB0cmlnZ2VyVHJhbnNpdGlvbkVuZFxufSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5pbXBvcnQgU3dpcGUgZnJvbSAnLi91dGlsL3N3aXBlLmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnY2Fyb3VzZWwnXG5jb25zdCBEQVRBX0tFWSA9ICdicy5jYXJvdXNlbCdcbmNvbnN0IEVWRU5UX0tFWSA9IGAuJHtEQVRBX0tFWX1gXG5jb25zdCBEQVRBX0FQSV9LRVkgPSAnLmRhdGEtYXBpJ1xuXG5jb25zdCBBUlJPV19MRUZUX0tFWSA9ICdBcnJvd0xlZnQnXG5jb25zdCBBUlJPV19SSUdIVF9LRVkgPSAnQXJyb3dSaWdodCdcbmNvbnN0IFRPVUNIRVZFTlRfQ09NUEFUX1dBSVQgPSA1MDAgLy8gVGltZSBmb3IgbW91c2UgY29tcGF0IGV2ZW50cyB0byBmaXJlIGFmdGVyIHRvdWNoXG5cbmNvbnN0IE9SREVSX05FWFQgPSAnbmV4dCdcbmNvbnN0IE9SREVSX1BSRVYgPSAncHJldidcbmNvbnN0IERJUkVDVElPTl9MRUZUID0gJ2xlZnQnXG5jb25zdCBESVJFQ1RJT05fUklHSFQgPSAncmlnaHQnXG5cbmNvbnN0IEVWRU5UX1NMSURFID0gYHNsaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0xJRCA9IGBzbGlkJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfS0VZRE9XTiA9IGBrZXlkb3duJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfTU9VU0VFTlRFUiA9IGBtb3VzZWVudGVyJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfTU9VU0VMRUFWRSA9IGBtb3VzZWxlYXZlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfRFJBR19TVEFSVCA9IGBkcmFnc3RhcnQke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9MT0FEX0RBVEFfQVBJID0gYGxvYWQke0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19EQVRBX0FQSSA9IGBjbGljayR7RVZFTlRfS0VZfSR7REFUQV9BUElfS0VZfWBcblxuY29uc3QgQ0xBU1NfTkFNRV9DQVJPVVNFTCA9ICdjYXJvdXNlbCdcbmNvbnN0IENMQVNTX05BTUVfQUNUSVZFID0gJ2FjdGl2ZSdcbmNvbnN0IENMQVNTX05BTUVfU0xJREUgPSAnc2xpZGUnXG5jb25zdCBDTEFTU19OQU1FX0VORCA9ICdjYXJvdXNlbC1pdGVtLWVuZCdcbmNvbnN0IENMQVNTX05BTUVfU1RBUlQgPSAnY2Fyb3VzZWwtaXRlbS1zdGFydCdcbmNvbnN0IENMQVNTX05BTUVfTkVYVCA9ICdjYXJvdXNlbC1pdGVtLW5leHQnXG5jb25zdCBDTEFTU19OQU1FX1BSRVYgPSAnY2Fyb3VzZWwtaXRlbS1wcmV2J1xuXG5jb25zdCBTRUxFQ1RPUl9BQ1RJVkUgPSAnLmFjdGl2ZSdcbmNvbnN0IFNFTEVDVE9SX0lURU0gPSAnLmNhcm91c2VsLWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9BQ1RJVkVfSVRFTSA9IFNFTEVDVE9SX0FDVElWRSArIFNFTEVDVE9SX0lURU1cbmNvbnN0IFNFTEVDVE9SX0lURU1fSU1HID0gJy5jYXJvdXNlbC1pdGVtIGltZydcbmNvbnN0IFNFTEVDVE9SX0lORElDQVRPUlMgPSAnLmNhcm91c2VsLWluZGljYXRvcnMnXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1NMSURFID0gJ1tkYXRhLWJzLXNsaWRlXSwgW2RhdGEtYnMtc2xpZGUtdG9dJ1xuY29uc3QgU0VMRUNUT1JfREFUQV9SSURFID0gJ1tkYXRhLWJzLXJpZGU9XCJjYXJvdXNlbFwiXSdcblxuY29uc3QgS0VZX1RPX0RJUkVDVElPTiA9IHtcbiAgW0FSUk9XX0xFRlRfS0VZXTogRElSRUNUSU9OX1JJR0hULFxuICBbQVJST1dfUklHSFRfS0VZXTogRElSRUNUSU9OX0xFRlRcbn1cblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgaW50ZXJ2YWw6IDUwMDAsXG4gIGtleWJvYXJkOiB0cnVlLFxuICBwYXVzZTogJ2hvdmVyJyxcbiAgcmlkZTogZmFsc2UsXG4gIHRvdWNoOiB0cnVlLFxuICB3cmFwOiB0cnVlXG59XG5cbmNvbnN0IERlZmF1bHRUeXBlID0ge1xuICBpbnRlcnZhbDogJyhudW1iZXJ8Ym9vbGVhbiknLCAvLyBUT0RPOnY2IHJlbW92ZSBib29sZWFuIHN1cHBvcnRcbiAga2V5Ym9hcmQ6ICdib29sZWFuJyxcbiAgcGF1c2U6ICcoc3RyaW5nfGJvb2xlYW4pJyxcbiAgcmlkZTogJyhib29sZWFufHN0cmluZyknLFxuICB0b3VjaDogJ2Jvb2xlYW4nLFxuICB3cmFwOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQ2Fyb3VzZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5faW50ZXJ2YWwgPSBudWxsXG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudCA9IG51bGxcbiAgICB0aGlzLl9pc1NsaWRpbmcgPSBmYWxzZVxuICAgIHRoaXMudG91Y2hUaW1lb3V0ID0gbnVsbFxuICAgIHRoaXMuX3N3aXBlSGVscGVyID0gbnVsbFxuXG4gICAgdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX0lORElDQVRPUlMsIHRoaXMuX2VsZW1lbnQpXG4gICAgdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5yaWRlID09PSBDTEFTU19OQU1FX0NBUk9VU0VMKSB7XG4gICAgICB0aGlzLmN5Y2xlKClcbiAgICB9XG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIG5leHQoKSB7XG4gICAgdGhpcy5fc2xpZGUoT1JERVJfTkVYVClcbiAgfVxuXG4gIG5leHRXaGVuVmlzaWJsZSgpIHtcbiAgICAvLyBGSVhNRSBUT0RPIHVzZSBgZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlYFxuICAgIC8vIERvbid0IGNhbGwgbmV4dCB3aGVuIHRoZSBwYWdlIGlzbid0IHZpc2libGVcbiAgICAvLyBvciB0aGUgY2Fyb3VzZWwgb3IgaXRzIHBhcmVudCBpc24ndCB2aXNpYmxlXG4gICAgaWYgKCFkb2N1bWVudC5oaWRkZW4gJiYgaXNWaXNpYmxlKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICB0aGlzLm5leHQoKVxuICAgIH1cbiAgfVxuXG4gIHByZXYoKSB7XG4gICAgdGhpcy5fc2xpZGUoT1JERVJfUFJFVilcbiAgfVxuXG4gIHBhdXNlKCkge1xuICAgIGlmICh0aGlzLl9pc1NsaWRpbmcpIHtcbiAgICAgIHRyaWdnZXJUcmFuc2l0aW9uRW5kKHRoaXMuX2VsZW1lbnQpXG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpXG4gIH1cblxuICBjeWNsZSgpIHtcbiAgICB0aGlzLl9jbGVhckludGVydmFsKClcbiAgICB0aGlzLl91cGRhdGVJbnRlcnZhbCgpXG5cbiAgICB0aGlzLl9pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHRoaXMubmV4dFdoZW5WaXNpYmxlKCksIHRoaXMuX2NvbmZpZy5pbnRlcnZhbClcbiAgfVxuXG4gIF9tYXliZUVuYWJsZUN5Y2xlKCkge1xuICAgIGlmICghdGhpcy5fY29uZmlnLnJpZGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc1NsaWRpbmcpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbmUodGhpcy5fZWxlbWVudCwgRVZFTlRfU0xJRCwgKCkgPT4gdGhpcy5jeWNsZSgpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jeWNsZSgpXG4gIH1cblxuICB0byhpbmRleCkge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXMoKVxuICAgIGlmIChpbmRleCA+IGl0ZW1zLmxlbmd0aCAtIDEgfHwgaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNTbGlkaW5nKSB7XG4gICAgICBFdmVudEhhbmRsZXIub25lKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NMSUQsICgpID0+IHRoaXMudG8oaW5kZXgpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fZ2V0QWN0aXZlKCkpXG4gICAgaWYgKGFjdGl2ZUluZGV4ID09PSBpbmRleCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgb3JkZXIgPSBpbmRleCA+IGFjdGl2ZUluZGV4ID8gT1JERVJfTkVYVCA6IE9SREVSX1BSRVZcblxuICAgIHRoaXMuX3NsaWRlKG9yZGVyLCBpdGVtc1tpbmRleF0pXG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGlmICh0aGlzLl9zd2lwZUhlbHBlcikge1xuICAgICAgdGhpcy5fc3dpcGVIZWxwZXIuZGlzcG9zZSgpXG4gICAgfVxuXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIGNvbmZpZy5kZWZhdWx0SW50ZXJ2YWwgPSBjb25maWcuaW50ZXJ2YWxcbiAgICByZXR1cm4gY29uZmlnXG4gIH1cblxuICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5rZXlib2FyZCkge1xuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0tFWURPV04sIGV2ZW50ID0+IHRoaXMuX2tleWRvd24oZXZlbnQpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcucGF1c2UgPT09ICdob3ZlcicpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9NT1VTRUVOVEVSLCAoKSA9PiB0aGlzLnBhdXNlKCkpXG4gICAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudCwgRVZFTlRfTU9VU0VMRUFWRSwgKCkgPT4gdGhpcy5fbWF5YmVFbmFibGVDeWNsZSgpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcudG91Y2ggJiYgU3dpcGUuaXNTdXBwb3J0ZWQoKSkge1xuICAgICAgdGhpcy5fYWRkVG91Y2hFdmVudExpc3RlbmVycygpXG4gICAgfVxuICB9XG5cbiAgX2FkZFRvdWNoRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgZm9yIChjb25zdCBpbWcgb2YgU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9JVEVNX0lNRywgdGhpcy5fZWxlbWVudCkpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbihpbWcsIEVWRU5UX0RSQUdfU1RBUlQsIGV2ZW50ID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpXG4gICAgfVxuXG4gICAgY29uc3QgZW5kQ2FsbEJhY2sgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fY29uZmlnLnBhdXNlICE9PSAnaG92ZXInKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiBpdCdzIGEgdG91Y2gtZW5hYmxlZCBkZXZpY2UsIG1vdXNlZW50ZXIvbGVhdmUgYXJlIGZpcmVkIGFzXG4gICAgICAvLyBwYXJ0IG9mIHRoZSBtb3VzZSBjb21wYXRpYmlsaXR5IGV2ZW50cyBvbiBmaXJzdCB0YXAgLSB0aGUgY2Fyb3VzZWxcbiAgICAgIC8vIHdvdWxkIHN0b3AgY3ljbGluZyB1bnRpbCB1c2VyIHRhcHBlZCBvdXQgb2YgaXQ7XG4gICAgICAvLyBoZXJlLCB3ZSBsaXN0ZW4gZm9yIHRvdWNoZW5kLCBleHBsaWNpdGx5IHBhdXNlIHRoZSBjYXJvdXNlbFxuICAgICAgLy8gKGFzIGlmIGl0J3MgdGhlIHNlY29uZCB0aW1lIHdlIHRhcCBvbiBpdCwgbW91c2VlbnRlciBjb21wYXQgZXZlbnRcbiAgICAgIC8vIGlzIE5PVCBmaXJlZCkgYW5kIGFmdGVyIGEgdGltZW91dCAodG8gYWxsb3cgZm9yIG1vdXNlIGNvbXBhdGliaWxpdHlcbiAgICAgIC8vIGV2ZW50cyB0byBmaXJlKSB3ZSBleHBsaWNpdGx5IHJlc3RhcnQgY3ljbGluZ1xuXG4gICAgICB0aGlzLnBhdXNlKClcbiAgICAgIGlmICh0aGlzLnRvdWNoVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpXG4gICAgICB9XG5cbiAgICAgIHRoaXMudG91Y2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9tYXliZUVuYWJsZUN5Y2xlKCksIFRPVUNIRVZFTlRfQ09NUEFUX1dBSVQgKyB0aGlzLl9jb25maWcuaW50ZXJ2YWwpXG4gICAgfVxuXG4gICAgY29uc3Qgc3dpcGVDb25maWcgPSB7XG4gICAgICBsZWZ0Q2FsbGJhY2s6ICgpID0+IHRoaXMuX3NsaWRlKHRoaXMuX2RpcmVjdGlvblRvT3JkZXIoRElSRUNUSU9OX0xFRlQpKSxcbiAgICAgIHJpZ2h0Q2FsbGJhY2s6ICgpID0+IHRoaXMuX3NsaWRlKHRoaXMuX2RpcmVjdGlvblRvT3JkZXIoRElSRUNUSU9OX1JJR0hUKSksXG4gICAgICBlbmRDYWxsYmFjazogZW5kQ2FsbEJhY2tcbiAgICB9XG5cbiAgICB0aGlzLl9zd2lwZUhlbHBlciA9IG5ldyBTd2lwZSh0aGlzLl9lbGVtZW50LCBzd2lwZUNvbmZpZylcbiAgfVxuXG4gIF9rZXlkb3duKGV2ZW50KSB7XG4gICAgaWYgKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZXZlbnQudGFyZ2V0LnRhZ05hbWUpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBLRVlfVE9fRElSRUNUSU9OW2V2ZW50LmtleV1cbiAgICBpZiAoZGlyZWN0aW9uKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB0aGlzLl9zbGlkZSh0aGlzLl9kaXJlY3Rpb25Ub09yZGVyKGRpcmVjdGlvbikpXG4gICAgfVxuICB9XG5cbiAgX2dldEl0ZW1JbmRleChlbGVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEl0ZW1zKCkuaW5kZXhPZihlbGVtZW50KVxuICB9XG5cbiAgX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQoaW5kZXgpIHtcbiAgICBpZiAoIXRoaXMuX2luZGljYXRvcnNFbGVtZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmVJbmRpY2F0b3IgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX0FDVElWRSwgdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpXG5cbiAgICBhY3RpdmVJbmRpY2F0b3IuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0FDVElWRSlcbiAgICBhY3RpdmVJbmRpY2F0b3IucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnKVxuXG4gICAgY29uc3QgbmV3QWN0aXZlSW5kaWNhdG9yID0gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShgW2RhdGEtYnMtc2xpZGUtdG89XCIke2luZGV4fVwiXWAsIHRoaXMuX2luZGljYXRvcnNFbGVtZW50KVxuXG4gICAgaWYgKG5ld0FjdGl2ZUluZGljYXRvcikge1xuICAgICAgbmV3QWN0aXZlSW5kaWNhdG9yLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9BQ1RJVkUpXG4gICAgICBuZXdBY3RpdmVJbmRpY2F0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnLCAndHJ1ZScpXG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZUludGVydmFsKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9hY3RpdmVFbGVtZW50IHx8IHRoaXMuX2dldEFjdGl2ZSgpXG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRJbnRlcnZhbCA9IE51bWJlci5wYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1icy1pbnRlcnZhbCcpLCAxMClcblxuICAgIHRoaXMuX2NvbmZpZy5pbnRlcnZhbCA9IGVsZW1lbnRJbnRlcnZhbCB8fCB0aGlzLl9jb25maWcuZGVmYXVsdEludGVydmFsXG4gIH1cblxuICBfc2xpZGUob3JkZXIsIGVsZW1lbnQgPSBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2lzU2xpZGluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMuX2dldEFjdGl2ZSgpXG4gICAgY29uc3QgaXNOZXh0ID0gb3JkZXIgPT09IE9SREVSX05FWFRcbiAgICBjb25zdCBuZXh0RWxlbWVudCA9IGVsZW1lbnQgfHwgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQodGhpcy5fZ2V0SXRlbXMoKSwgYWN0aXZlRWxlbWVudCwgaXNOZXh0LCB0aGlzLl9jb25maWcud3JhcClcblxuICAgIGlmIChuZXh0RWxlbWVudCA9PT0gYWN0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbmV4dEVsZW1lbnRJbmRleCA9IHRoaXMuX2dldEl0ZW1JbmRleChuZXh0RWxlbWVudClcblxuICAgIGNvbnN0IHRyaWdnZXJFdmVudCA9IGV2ZW50TmFtZSA9PiB7XG4gICAgICByZXR1cm4gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgZXZlbnROYW1lLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IG5leHRFbGVtZW50LFxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX29yZGVyVG9EaXJlY3Rpb24ob3JkZXIpLFxuICAgICAgICBmcm9tOiB0aGlzLl9nZXRJdGVtSW5kZXgoYWN0aXZlRWxlbWVudCksXG4gICAgICAgIHRvOiBuZXh0RWxlbWVudEluZGV4XG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHNsaWRlRXZlbnQgPSB0cmlnZ2VyRXZlbnQoRVZFTlRfU0xJREUpXG5cbiAgICBpZiAoc2xpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIWFjdGl2ZUVsZW1lbnQgfHwgIW5leHRFbGVtZW50KSB7XG4gICAgICAvLyBTb21lIHdlaXJkbmVzcyBpcyBoYXBwZW5pbmcsIHNvIHdlIGJhaWxcbiAgICAgIC8vIFRPRE86IGNoYW5nZSB0ZXN0cyB0aGF0IHVzZSBlbXB0eSBkaXZzIHRvIGF2b2lkIHRoaXMgY2hlY2tcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGlzQ3ljbGluZyA9IEJvb2xlYW4odGhpcy5faW50ZXJ2YWwpXG4gICAgdGhpcy5wYXVzZSgpXG5cbiAgICB0aGlzLl9pc1NsaWRpbmcgPSB0cnVlXG5cbiAgICB0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KG5leHRFbGVtZW50SW5kZXgpXG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudCA9IG5leHRFbGVtZW50XG5cbiAgICBjb25zdCBkaXJlY3Rpb25hbENsYXNzTmFtZSA9IGlzTmV4dCA/IENMQVNTX05BTUVfU1RBUlQgOiBDTEFTU19OQU1FX0VORFxuICAgIGNvbnN0IG9yZGVyQ2xhc3NOYW1lID0gaXNOZXh0ID8gQ0xBU1NfTkFNRV9ORVhUIDogQ0xBU1NfTkFNRV9QUkVWXG5cbiAgICBuZXh0RWxlbWVudC5jbGFzc0xpc3QuYWRkKG9yZGVyQ2xhc3NOYW1lKVxuXG4gICAgcmVmbG93KG5leHRFbGVtZW50KVxuXG4gICAgYWN0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGRpcmVjdGlvbmFsQ2xhc3NOYW1lKVxuICAgIG5leHRFbGVtZW50LmNsYXNzTGlzdC5hZGQoZGlyZWN0aW9uYWxDbGFzc05hbWUpXG5cbiAgICBjb25zdCBjb21wbGV0ZUNhbGxCYWNrID0gKCkgPT4ge1xuICAgICAgbmV4dEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShkaXJlY3Rpb25hbENsYXNzTmFtZSwgb3JkZXJDbGFzc05hbWUpXG4gICAgICBuZXh0RWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfQUNUSVZFKVxuXG4gICAgICBhY3RpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9BQ1RJVkUsIG9yZGVyQ2xhc3NOYW1lLCBkaXJlY3Rpb25hbENsYXNzTmFtZSlcblxuICAgICAgdGhpcy5faXNTbGlkaW5nID0gZmFsc2VcblxuICAgICAgdHJpZ2dlckV2ZW50KEVWRU5UX1NMSUQpXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZUNhbGxCYWNrLCBhY3RpdmVFbGVtZW50LCB0aGlzLl9pc0FuaW1hdGVkKCkpXG5cbiAgICBpZiAoaXNDeWNsaW5nKSB7XG4gICAgICB0aGlzLmN5Y2xlKClcbiAgICB9XG4gIH1cblxuICBfaXNBbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TTElERSlcbiAgfVxuXG4gIF9nZXRBY3RpdmUoKSB7XG4gICAgcmV0dXJuIFNlbGVjdG9yRW5naW5lLmZpbmRPbmUoU0VMRUNUT1JfQUNUSVZFX0lURU0sIHRoaXMuX2VsZW1lbnQpXG4gIH1cblxuICBfZ2V0SXRlbXMoKSB7XG4gICAgcmV0dXJuIFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfSVRFTSwgdGhpcy5fZWxlbWVudClcbiAgfVxuXG4gIF9jbGVhckludGVydmFsKCkge1xuICAgIGlmICh0aGlzLl9pbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbClcbiAgICAgIHRoaXMuX2ludGVydmFsID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIF9kaXJlY3Rpb25Ub09yZGVyKGRpcmVjdGlvbikge1xuICAgIGlmIChpc1JUTCgpKSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBESVJFQ1RJT05fTEVGVCA/IE9SREVSX1BSRVYgOiBPUkRFUl9ORVhUXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gRElSRUNUSU9OX0xFRlQgPyBPUkRFUl9ORVhUIDogT1JERVJfUFJFVlxuICB9XG5cbiAgX29yZGVyVG9EaXJlY3Rpb24ob3JkZXIpIHtcbiAgICBpZiAoaXNSVEwoKSkge1xuICAgICAgcmV0dXJuIG9yZGVyID09PSBPUkRFUl9QUkVWID8gRElSRUNUSU9OX0xFRlQgOiBESVJFQ1RJT05fUklHSFRcbiAgICB9XG5cbiAgICByZXR1cm4gb3JkZXIgPT09IE9SREVSX1BSRVYgPyBESVJFQ1RJT05fUklHSFQgOiBESVJFQ1RJT05fTEVGVFxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gQ2Fyb3VzZWwuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnbnVtYmVyJykge1xuICAgICAgICBkYXRhLnRvKGNvbmZpZylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoZGF0YVtjb25maWddID09PSB1bmRlZmluZWQgfHwgY29uZmlnLnN0YXJ0c1dpdGgoJ18nKSB8fCBjb25maWcgPT09ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke2NvbmZpZ31cImApXG4gICAgICAgIH1cblxuICAgICAgICBkYXRhW2NvbmZpZ10oKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBEYXRhIEFQSSBpbXBsZW1lbnRhdGlvblxuICovXG5cbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfQ0xJQ0tfREFUQV9BUEksIFNFTEVDVE9SX0RBVEFfU0xJREUsIGZ1bmN0aW9uIChldmVudCkge1xuICBjb25zdCB0YXJnZXQgPSBTZWxlY3RvckVuZ2luZS5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKHRoaXMpXG5cbiAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9DQVJPVVNFTCkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICBjb25zdCBjYXJvdXNlbCA9IENhcm91c2VsLmdldE9yQ3JlYXRlSW5zdGFuY2UodGFyZ2V0KVxuICBjb25zdCBzbGlkZUluZGV4ID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtc2xpZGUtdG8nKVxuXG4gIGlmIChzbGlkZUluZGV4KSB7XG4gICAgY2Fyb3VzZWwudG8oc2xpZGVJbmRleClcbiAgICBjYXJvdXNlbC5fbWF5YmVFbmFibGVDeWNsZSgpXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoTWFuaXB1bGF0b3IuZ2V0RGF0YUF0dHJpYnV0ZSh0aGlzLCAnc2xpZGUnKSA9PT0gJ25leHQnKSB7XG4gICAgY2Fyb3VzZWwubmV4dCgpXG4gICAgY2Fyb3VzZWwuX21heWJlRW5hYmxlQ3ljbGUoKVxuICAgIHJldHVyblxuICB9XG5cbiAgY2Fyb3VzZWwucHJldigpXG4gIGNhcm91c2VsLl9tYXliZUVuYWJsZUN5Y2xlKClcbn0pXG5cbkV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX0xPQURfREFUQV9BUEksICgpID0+IHtcbiAgY29uc3QgY2Fyb3VzZWxzID0gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9EQVRBX1JJREUpXG5cbiAgZm9yIChjb25zdCBjYXJvdXNlbCBvZiBjYXJvdXNlbHMpIHtcbiAgICBDYXJvdXNlbC5nZXRPckNyZWF0ZUluc3RhbmNlKGNhcm91c2VsKVxuICB9XG59KVxuXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihDYXJvdXNlbClcblxuZXhwb3J0IGRlZmF1bHQgQ2Fyb3VzZWxcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgY29sbGFwc2UuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbixcbiAgZ2V0RWxlbWVudCxcbiAgcmVmbG93XG59IGZyb20gJy4vdXRpbC9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ2NvbGxhcHNlJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMuY29sbGFwc2UnXG5jb25zdCBFVkVOVF9LRVkgPSBgLiR7REFUQV9LRVl9YFxuY29uc3QgREFUQV9BUElfS0VZID0gJy5kYXRhLWFwaSdcblxuY29uc3QgRVZFTlRfU0hPVyA9IGBzaG93JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPV04gPSBgc2hvd24ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURFID0gYGhpZGUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURERU4gPSBgaGlkZGVuJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfQ0xJQ0tfREFUQV9BUEkgPSBgY2xpY2ske0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5cbmNvbnN0IENMQVNTX05BTUVfU0hPVyA9ICdzaG93J1xuY29uc3QgQ0xBU1NfTkFNRV9DT0xMQVBTRSA9ICdjb2xsYXBzZSdcbmNvbnN0IENMQVNTX05BTUVfQ09MTEFQU0lORyA9ICdjb2xsYXBzaW5nJ1xuY29uc3QgQ0xBU1NfTkFNRV9DT0xMQVBTRUQgPSAnY29sbGFwc2VkJ1xuY29uc3QgQ0xBU1NfTkFNRV9ERUVQRVJfQ0hJTERSRU4gPSBgOnNjb3BlIC4ke0NMQVNTX05BTUVfQ09MTEFQU0V9IC4ke0NMQVNTX05BTUVfQ09MTEFQU0V9YFxuY29uc3QgQ0xBU1NfTkFNRV9IT1JJWk9OVEFMID0gJ2NvbGxhcHNlLWhvcml6b250YWwnXG5cbmNvbnN0IFdJRFRIID0gJ3dpZHRoJ1xuY29uc3QgSEVJR0hUID0gJ2hlaWdodCdcblxuY29uc3QgU0VMRUNUT1JfQUNUSVZFUyA9ICcuY29sbGFwc2Uuc2hvdywgLmNvbGxhcHNlLmNvbGxhcHNpbmcnXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSA9ICdbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXSdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgcGFyZW50OiBudWxsLFxuICB0b2dnbGU6IHRydWVcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIHBhcmVudDogJyhudWxsfGVsZW1lbnQpJyxcbiAgdG9nZ2xlOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQ29sbGFwc2UgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcbiAgICB0aGlzLl90cmlnZ2VyQXJyYXkgPSBbXVxuXG4gICAgY29uc3QgdG9nZ2xlTGlzdCA9IFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfREFUQV9UT0dHTEUpXG5cbiAgICBmb3IgKGNvbnN0IGVsZW0gb2YgdG9nZ2xlTGlzdCkge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSBTZWxlY3RvckVuZ2luZS5nZXRTZWxlY3RvckZyb21FbGVtZW50KGVsZW0pXG4gICAgICBjb25zdCBmaWx0ZXJFbGVtZW50ID0gU2VsZWN0b3JFbmdpbmUuZmluZChzZWxlY3RvcilcbiAgICAgICAgLmZpbHRlcihmb3VuZEVsZW1lbnQgPT4gZm91bmRFbGVtZW50ID09PSB0aGlzLl9lbGVtZW50KVxuXG4gICAgICBpZiAoc2VsZWN0b3IgIT09IG51bGwgJiYgZmlsdGVyRWxlbWVudC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckFycmF5LnB1c2goZWxlbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9pbml0aWFsaXplQ2hpbGRyZW4oKVxuXG4gICAgaWYgKCF0aGlzLl9jb25maWcucGFyZW50KSB7XG4gICAgICB0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fdHJpZ2dlckFycmF5LCB0aGlzLl9pc1Nob3duKCkpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy50b2dnbGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlKClcbiAgICB9XG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5faXNTaG93bigpKSB7XG4gICAgICB0aGlzLmhpZGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKVxuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgaWYgKHRoaXMuX2lzVHJhbnNpdGlvbmluZyB8fCB0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGxldCBhY3RpdmVDaGlsZHJlbiA9IFtdXG5cbiAgICAvLyBmaW5kIGFjdGl2ZSBjaGlsZHJlblxuICAgIGlmICh0aGlzLl9jb25maWcucGFyZW50KSB7XG4gICAgICBhY3RpdmVDaGlsZHJlbiA9IHRoaXMuX2dldEZpcnN0TGV2ZWxDaGlsZHJlbihTRUxFQ1RPUl9BQ1RJVkVTKVxuICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCAhPT0gdGhpcy5fZWxlbWVudClcbiAgICAgICAgLm1hcChlbGVtZW50ID0+IENvbGxhcHNlLmdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgeyB0b2dnbGU6IGZhbHNlIH0pKVxuICAgIH1cblxuICAgIGlmIChhY3RpdmVDaGlsZHJlbi5sZW5ndGggJiYgYWN0aXZlQ2hpbGRyZW5bMF0uX2lzVHJhbnNpdGlvbmluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1cpXG4gICAgaWYgKHN0YXJ0RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhY3RpdmVJbnN0YW5jZSBvZiBhY3RpdmVDaGlsZHJlbikge1xuICAgICAgYWN0aXZlSW5zdGFuY2UuaGlkZSgpXG4gICAgfVxuXG4gICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5fZ2V0RGltZW5zaW9uKClcblxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0NPTExBUFNFKVxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0NPTExBUFNJTkcpXG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSAwXG5cbiAgICB0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fdHJpZ2dlckFycmF5LCB0cnVlKVxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IHRydWVcblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcblxuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfQ09MTEFQU0lORylcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0NPTExBUFNFLCBDTEFTU19OQU1FX1NIT1cpXG5cbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGVbZGltZW5zaW9uXSA9ICcnXG5cbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1dOKVxuICAgIH1cblxuICAgIGNvbnN0IGNhcGl0YWxpemVkRGltZW5zaW9uID0gZGltZW5zaW9uWzBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoMSlcbiAgICBjb25zdCBzY3JvbGxTaXplID0gYHNjcm9sbCR7Y2FwaXRhbGl6ZWREaW1lbnNpb259YFxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgdGhpcy5fZWxlbWVudCwgdHJ1ZSlcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSBgJHt0aGlzLl9lbGVtZW50W3Njcm9sbFNpemVdfXB4YFxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBpZiAodGhpcy5faXNUcmFuc2l0aW9uaW5nIHx8ICF0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0RXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURFKVxuICAgIGlmIChzdGFydEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGRpbWVuc2lvbiA9IHRoaXMuX2dldERpbWVuc2lvbigpXG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSBgJHt0aGlzLl9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW2RpbWVuc2lvbl19cHhgXG5cbiAgICByZWZsb3codGhpcy5fZWxlbWVudClcblxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0NPTExBUFNJTkcpXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfQ09MTEFQU0UsIENMQVNTX05BTUVfU0hPVylcblxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0aGlzLl90cmlnZ2VyQXJyYXkpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKHRyaWdnZXIpXG5cbiAgICAgIGlmIChlbGVtZW50ICYmICF0aGlzLl9pc1Nob3duKGVsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhbdHJpZ2dlcl0sIGZhbHNlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IHRydWVcblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0NPTExBUFNJTkcpXG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9DT0xMQVBTRSlcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJRERFTilcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSAnJ1xuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgdGhpcy5fZWxlbWVudCwgdHJ1ZSlcbiAgfVxuXG4gIF9pc1Nob3duKGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfU0hPVylcbiAgfVxuXG4gIC8vIFByaXZhdGVcbiAgX2NvbmZpZ0FmdGVyTWVyZ2UoY29uZmlnKSB7XG4gICAgY29uZmlnLnRvZ2dsZSA9IEJvb2xlYW4oY29uZmlnLnRvZ2dsZSkgLy8gQ29lcmNlIHN0cmluZyB2YWx1ZXNcbiAgICBjb25maWcucGFyZW50ID0gZ2V0RWxlbWVudChjb25maWcucGFyZW50KVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9nZXREaW1lbnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfSE9SSVpPTlRBTCkgPyBXSURUSCA6IEhFSUdIVFxuICB9XG5cbiAgX2luaXRpYWxpemVDaGlsZHJlbigpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5wYXJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fZ2V0Rmlyc3RMZXZlbENoaWxkcmVuKFNFTEVDVE9SX0RBVEFfVE9HR0xFKVxuXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IoZWxlbWVudClcblxuICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhbZWxlbWVudF0sIHRoaXMuX2lzU2hvd24oc2VsZWN0ZWQpKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9nZXRGaXJzdExldmVsQ2hpbGRyZW4oc2VsZWN0b3IpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFNlbGVjdG9yRW5naW5lLmZpbmQoQ0xBU1NfTkFNRV9ERUVQRVJfQ0hJTERSRU4sIHRoaXMuX2NvbmZpZy5wYXJlbnQpXG4gICAgLy8gcmVtb3ZlIGNoaWxkcmVuIGlmIGdyZWF0ZXIgZGVwdGhcbiAgICByZXR1cm4gU2VsZWN0b3JFbmdpbmUuZmluZChzZWxlY3RvciwgdGhpcy5fY29uZmlnLnBhcmVudCkuZmlsdGVyKGVsZW1lbnQgPT4gIWNoaWxkcmVuLmluY2x1ZGVzKGVsZW1lbnQpKVxuICB9XG5cbiAgX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0cmlnZ2VyQXJyYXksIGlzT3Blbikge1xuICAgIGlmICghdHJpZ2dlckFycmF5Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRyaWdnZXJBcnJheSkge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKENMQVNTX05BTUVfQ09MTEFQU0VELCAhaXNPcGVuKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgY29uc3QgX2NvbmZpZyA9IHt9XG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnICYmIC9zaG93fGhpZGUvLnRlc3QoY29uZmlnKSkge1xuICAgICAgX2NvbmZpZy50b2dnbGUgPSBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGF0YSA9IENvbGxhcHNlLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcywgX2NvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVtjb25maWddID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGFbY29uZmlnXSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIGZ1bmN0aW9uIChldmVudCkge1xuICAvLyBwcmV2ZW50RGVmYXVsdCBvbmx5IGZvciA8YT4gZWxlbWVudHMgKHdoaWNoIGNoYW5nZSB0aGUgVVJMKSBub3QgaW5zaWRlIHRoZSBjb2xsYXBzaWJsZSBlbGVtZW50XG4gIGlmIChldmVudC50YXJnZXQudGFnTmFtZSA9PT0gJ0EnIHx8IChldmVudC5kZWxlZ2F0ZVRhcmdldCAmJiBldmVudC5kZWxlZ2F0ZVRhcmdldC50YWdOYW1lID09PSAnQScpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIFNlbGVjdG9yRW5naW5lLmdldE11bHRpcGxlRWxlbWVudHNGcm9tU2VsZWN0b3IodGhpcykpIHtcbiAgICBDb2xsYXBzZS5nZXRPckNyZWF0ZUluc3RhbmNlKGVsZW1lbnQsIHsgdG9nZ2xlOiBmYWxzZSB9KS50b2dnbGUoKVxuICB9XG59KVxuXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihDb2xsYXBzZSlcblxuZXhwb3J0IGRlZmF1bHQgQ29sbGFwc2VcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgZHJvcGRvd24uanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgKiBhcyBQb3BwZXIgZnJvbSAnQHBvcHBlcmpzL2NvcmUnXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IE1hbmlwdWxhdG9yIGZyb20gJy4vZG9tL21hbmlwdWxhdG9yLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbixcbiAgZXhlY3V0ZSxcbiAgZ2V0RWxlbWVudCxcbiAgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQsXG4gIGlzRGlzYWJsZWQsXG4gIGlzRWxlbWVudCxcbiAgaXNSVEwsXG4gIGlzVmlzaWJsZSxcbiAgbm9vcFxufSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICdkcm9wZG93bidcbmNvbnN0IERBVEFfS0VZID0gJ2JzLmRyb3Bkb3duJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5cbmNvbnN0IEVTQ0FQRV9LRVkgPSAnRXNjYXBlJ1xuY29uc3QgVEFCX0tFWSA9ICdUYWInXG5jb25zdCBBUlJPV19VUF9LRVkgPSAnQXJyb3dVcCdcbmNvbnN0IEFSUk9XX0RPV05fS0VZID0gJ0Fycm93RG93bidcbmNvbnN0IFJJR0hUX01PVVNFX0JVVFRPTiA9IDIgLy8gTW91c2VFdmVudC5idXR0b24gdmFsdWUgZm9yIHRoZSBzZWNvbmRhcnkgYnV0dG9uLCB1c3VhbGx5IHRoZSByaWdodCBidXR0b25cblxuY29uc3QgRVZFTlRfSElERSA9IGBoaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElEREVOID0gYGhpZGRlbiR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1NIT1cgPSBgc2hvdyR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1NIT1dOID0gYHNob3duJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfQ0xJQ0tfREFUQV9BUEkgPSBgY2xpY2ske0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9LRVlET1dOX0RBVEFfQVBJID0gYGtleWRvd24ke0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9LRVlVUF9EQVRBX0FQSSA9IGBrZXl1cCR7RVZFTlRfS0VZfSR7REFUQV9BUElfS0VZfWBcblxuY29uc3QgQ0xBU1NfTkFNRV9TSE9XID0gJ3Nob3cnXG5jb25zdCBDTEFTU19OQU1FX0RST1BVUCA9ICdkcm9wdXAnXG5jb25zdCBDTEFTU19OQU1FX0RST1BFTkQgPSAnZHJvcGVuZCdcbmNvbnN0IENMQVNTX05BTUVfRFJPUFNUQVJUID0gJ2Ryb3BzdGFydCdcbmNvbnN0IENMQVNTX05BTUVfRFJPUFVQX0NFTlRFUiA9ICdkcm9wdXAtY2VudGVyJ1xuY29uc3QgQ0xBU1NfTkFNRV9EUk9QRE9XTl9DRU5URVIgPSAnZHJvcGRvd24tY2VudGVyJ1xuXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSA9ICdbZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiXTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKSdcbmNvbnN0IFNFTEVDVE9SX0RBVEFfVE9HR0xFX1NIT1dOID0gYCR7U0VMRUNUT1JfREFUQV9UT0dHTEV9LiR7Q0xBU1NfTkFNRV9TSE9XfWBcbmNvbnN0IFNFTEVDVE9SX01FTlUgPSAnLmRyb3Bkb3duLW1lbnUnXG5jb25zdCBTRUxFQ1RPUl9OQVZCQVIgPSAnLm5hdmJhcidcbmNvbnN0IFNFTEVDVE9SX05BVkJBUl9OQVYgPSAnLm5hdmJhci1uYXYnXG5jb25zdCBTRUxFQ1RPUl9WSVNJQkxFX0lURU1TID0gJy5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpOm5vdCg6ZGlzYWJsZWQpJ1xuXG5jb25zdCBQTEFDRU1FTlRfVE9QID0gaXNSVEwoKSA/ICd0b3AtZW5kJyA6ICd0b3Atc3RhcnQnXG5jb25zdCBQTEFDRU1FTlRfVE9QRU5EID0gaXNSVEwoKSA/ICd0b3Atc3RhcnQnIDogJ3RvcC1lbmQnXG5jb25zdCBQTEFDRU1FTlRfQk9UVE9NID0gaXNSVEwoKSA/ICdib3R0b20tZW5kJyA6ICdib3R0b20tc3RhcnQnXG5jb25zdCBQTEFDRU1FTlRfQk9UVE9NRU5EID0gaXNSVEwoKSA/ICdib3R0b20tc3RhcnQnIDogJ2JvdHRvbS1lbmQnXG5jb25zdCBQTEFDRU1FTlRfUklHSFQgPSBpc1JUTCgpID8gJ2xlZnQtc3RhcnQnIDogJ3JpZ2h0LXN0YXJ0J1xuY29uc3QgUExBQ0VNRU5UX0xFRlQgPSBpc1JUTCgpID8gJ3JpZ2h0LXN0YXJ0JyA6ICdsZWZ0LXN0YXJ0J1xuY29uc3QgUExBQ0VNRU5UX1RPUENFTlRFUiA9ICd0b3AnXG5jb25zdCBQTEFDRU1FTlRfQk9UVE9NQ0VOVEVSID0gJ2JvdHRvbSdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgYXV0b0Nsb3NlOiB0cnVlLFxuICBib3VuZGFyeTogJ2NsaXBwaW5nUGFyZW50cycsXG4gIGRpc3BsYXk6ICdkeW5hbWljJyxcbiAgb2Zmc2V0OiBbMCwgMl0sXG4gIHBvcHBlckNvbmZpZzogbnVsbCxcbiAgcmVmZXJlbmNlOiAndG9nZ2xlJ1xufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYXV0b0Nsb3NlOiAnKGJvb2xlYW58c3RyaW5nKScsXG4gIGJvdW5kYXJ5OiAnKHN0cmluZ3xlbGVtZW50KScsXG4gIGRpc3BsYXk6ICdzdHJpbmcnLFxuICBvZmZzZXQ6ICcoYXJyYXl8c3RyaW5nfGZ1bmN0aW9uKScsXG4gIHBvcHBlckNvbmZpZzogJyhudWxsfG9iamVjdHxmdW5jdGlvbiknLFxuICByZWZlcmVuY2U6ICcoc3RyaW5nfGVsZW1lbnR8b2JqZWN0KSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgRHJvcGRvd24gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5fcG9wcGVyID0gbnVsbFxuICAgIHRoaXMuX3BhcmVudCA9IHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSAvLyBkcm9wZG93biB3cmFwcGVyXG4gICAgLy8gVE9ETzogdjYgcmV2ZXJ0ICMzNzAxMSAmIGNoYW5nZSBtYXJrdXAgaHR0cHM6Ly9nZXRib290c3RyYXAuY29tL2RvY3MvNS4zL2Zvcm1zL2lucHV0LWdyb3VwL1xuICAgIHRoaXMuX21lbnUgPSBTZWxlY3RvckVuZ2luZS5uZXh0KHRoaXMuX2VsZW1lbnQsIFNFTEVDVE9SX01FTlUpWzBdIHx8XG4gICAgICBTZWxlY3RvckVuZ2luZS5wcmV2KHRoaXMuX2VsZW1lbnQsIFNFTEVDVE9SX01FTlUpWzBdIHx8XG4gICAgICBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX01FTlUsIHRoaXMuX3BhcmVudClcbiAgICB0aGlzLl9pbk5hdmJhciA9IHRoaXMuX2RldGVjdE5hdmJhcigpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNTaG93bigpID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coKVxuICB9XG5cbiAgc2hvdygpIHtcbiAgICBpZiAoaXNEaXNhYmxlZCh0aGlzLl9lbGVtZW50KSB8fCB0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7XG4gICAgICByZWxhdGVkVGFyZ2V0OiB0aGlzLl9lbGVtZW50XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvd0V2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPVywgcmVsYXRlZFRhcmdldClcblxuICAgIGlmIChzaG93RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fY3JlYXRlUG9wcGVyKClcblxuICAgIC8vIElmIHRoaXMgaXMgYSB0b3VjaC1lbmFibGVkIGRldmljZSB3ZSBhZGQgZXh0cmFcbiAgICAvLyBlbXB0eSBtb3VzZW92ZXIgbGlzdGVuZXJzIHRvIHRoZSBib2R5J3MgaW1tZWRpYXRlIGNoaWxkcmVuO1xuICAgIC8vIG9ubHkgbmVlZGVkIGJlY2F1c2Ugb2YgYnJva2VuIGV2ZW50IGRlbGVnYXRpb24gb24gaU9TXG4gICAgLy8gaHR0cHM6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDE0LzAyL21vdXNlX2V2ZW50X2J1Yi5odG1sXG4gICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAhdGhpcy5fcGFyZW50LmNsb3Nlc3QoU0VMRUNUT1JfTkFWQkFSX05BVikpIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKGVsZW1lbnQsICdtb3VzZW92ZXInLCBub29wKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnQuZm9jdXMoKVxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgdHJ1ZSlcblxuICAgIHRoaXMuX21lbnUuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfU0hPVylcbiAgICBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9TSE9XTiwgcmVsYXRlZFRhcmdldClcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKGlzRGlzYWJsZWQodGhpcy5fZWxlbWVudCkgfHwgIXRoaXMuX2lzU2hvd24oKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXMuX2VsZW1lbnRcbiAgICB9XG5cbiAgICB0aGlzLl9jb21wbGV0ZUhpZGUocmVsYXRlZFRhcmdldClcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgaWYgKHRoaXMuX3BvcHBlcikge1xuICAgICAgdGhpcy5fcG9wcGVyLmRlc3Ryb3koKVxuICAgIH1cblxuICAgIHN1cGVyLmRpc3Bvc2UoKVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIHRoaXMuX2luTmF2YmFyID0gdGhpcy5fZGV0ZWN0TmF2YmFyKClcbiAgICBpZiAodGhpcy5fcG9wcGVyKSB7XG4gICAgICB0aGlzLl9wb3BwZXIudXBkYXRlKClcbiAgICB9XG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9jb21wbGV0ZUhpZGUocmVsYXRlZFRhcmdldCkge1xuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREUsIHJlbGF0ZWRUYXJnZXQpXG4gICAgaWYgKGhpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBJZiB0aGlzIGlzIGEgdG91Y2gtZW5hYmxlZCBkZXZpY2Ugd2UgcmVtb3ZlIHRoZSBleHRyYVxuICAgIC8vIGVtcHR5IG1vdXNlb3ZlciBsaXN0ZW5lcnMgd2UgYWRkZWQgZm9yIGlPUyBzdXBwb3J0XG4gICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIFtdLmNvbmNhdCguLi5kb2N1bWVudC5ib2R5LmNoaWxkcmVuKSkge1xuICAgICAgICBFdmVudEhhbmRsZXIub2ZmKGVsZW1lbnQsICdtb3VzZW92ZXInLCBub29wKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9wb3BwZXIpIHtcbiAgICAgIHRoaXMuX3BvcHBlci5kZXN0cm95KClcbiAgICB9XG5cbiAgICB0aGlzLl9tZW51LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX1NIT1cpXG4gICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKVxuICAgIE1hbmlwdWxhdG9yLnJlbW92ZURhdGFBdHRyaWJ1dGUodGhpcy5fbWVudSwgJ3BvcHBlcicpXG4gICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfSElEREVOLCByZWxhdGVkVGFyZ2V0KVxuICB9XG5cbiAgX2dldENvbmZpZyhjb25maWcpIHtcbiAgICBjb25maWcgPSBzdXBlci5fZ2V0Q29uZmlnKGNvbmZpZylcblxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZmVyZW5jZSA9PT0gJ29iamVjdCcgJiYgIWlzRWxlbWVudChjb25maWcucmVmZXJlbmNlKSAmJlxuICAgICAgdHlwZW9mIGNvbmZpZy5yZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICAvLyBQb3BwZXIgdmlydHVhbCBlbGVtZW50cyByZXF1aXJlIGEgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG1ldGhvZFxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtOQU1FLnRvVXBwZXJDYXNlKCl9OiBPcHRpb24gXCJyZWZlcmVuY2VcIiBwcm92aWRlZCB0eXBlIFwib2JqZWN0XCIgd2l0aG91dCBhIHJlcXVpcmVkIFwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0XCIgbWV0aG9kLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG5cbiAgX2NyZWF0ZVBvcHBlcigpIHtcbiAgICBpZiAodHlwZW9mIFBvcHBlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgZHJvcGRvd25zIHJlcXVpcmUgUG9wcGVyIChodHRwczovL3BvcHBlci5qcy5vcmcpJylcbiAgICB9XG5cbiAgICBsZXQgcmVmZXJlbmNlRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRcblxuICAgIGlmICh0aGlzLl9jb25maWcucmVmZXJlbmNlID09PSAncGFyZW50Jykge1xuICAgICAgcmVmZXJlbmNlRWxlbWVudCA9IHRoaXMuX3BhcmVudFxuICAgIH0gZWxzZSBpZiAoaXNFbGVtZW50KHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UpKSB7XG4gICAgICByZWZlcmVuY2VFbGVtZW50ID0gZ2V0RWxlbWVudCh0aGlzLl9jb25maWcucmVmZXJlbmNlKVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICByZWZlcmVuY2VFbGVtZW50ID0gdGhpcy5fY29uZmlnLnJlZmVyZW5jZVxuICAgIH1cblxuICAgIGNvbnN0IHBvcHBlckNvbmZpZyA9IHRoaXMuX2dldFBvcHBlckNvbmZpZygpXG4gICAgdGhpcy5fcG9wcGVyID0gUG9wcGVyLmNyZWF0ZVBvcHBlcihyZWZlcmVuY2VFbGVtZW50LCB0aGlzLl9tZW51LCBwb3BwZXJDb25maWcpXG4gIH1cblxuICBfaXNTaG93bigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudS5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TSE9XKVxuICB9XG5cbiAgX2dldFBsYWNlbWVudCgpIHtcbiAgICBjb25zdCBwYXJlbnREcm9wZG93biA9IHRoaXMuX3BhcmVudFxuXG4gICAgaWYgKHBhcmVudERyb3Bkb3duLmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19OQU1FX0RST1BFTkQpKSB7XG4gICAgICByZXR1cm4gUExBQ0VNRU5UX1JJR0hUXG4gICAgfVxuXG4gICAgaWYgKHBhcmVudERyb3Bkb3duLmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19OQU1FX0RST1BTVEFSVCkpIHtcbiAgICAgIHJldHVybiBQTEFDRU1FTlRfTEVGVFxuICAgIH1cblxuICAgIGlmIChwYXJlbnREcm9wZG93bi5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9EUk9QVVBfQ0VOVEVSKSkge1xuICAgICAgcmV0dXJuIFBMQUNFTUVOVF9UT1BDRU5URVJcbiAgICB9XG5cbiAgICBpZiAocGFyZW50RHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRFJPUERPV05fQ0VOVEVSKSkge1xuICAgICAgcmV0dXJuIFBMQUNFTUVOVF9CT1RUT01DRU5URVJcbiAgICB9XG5cbiAgICAvLyBXZSBuZWVkIHRvIHRyaW0gdGhlIHZhbHVlIGJlY2F1c2UgY3VzdG9tIHByb3BlcnRpZXMgY2FuIGFsc28gaW5jbHVkZSBzcGFjZXNcbiAgICBjb25zdCBpc0VuZCA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5fbWVudSkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1icy1wb3NpdGlvbicpLnRyaW0oKSA9PT0gJ2VuZCdcblxuICAgIGlmIChwYXJlbnREcm9wZG93bi5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9EUk9QVVApKSB7XG4gICAgICByZXR1cm4gaXNFbmQgPyBQTEFDRU1FTlRfVE9QRU5EIDogUExBQ0VNRU5UX1RPUFxuICAgIH1cblxuICAgIHJldHVybiBpc0VuZCA/IFBMQUNFTUVOVF9CT1RUT01FTkQgOiBQTEFDRU1FTlRfQk9UVE9NXG4gIH1cblxuICBfZGV0ZWN0TmF2YmFyKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50LmNsb3Nlc3QoU0VMRUNUT1JfTkFWQkFSKSAhPT0gbnVsbFxuICB9XG5cbiAgX2dldE9mZnNldCgpIHtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gdGhpcy5fY29uZmlnXG5cbiAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBvZmZzZXQuc3BsaXQoJywnKS5tYXAodmFsdWUgPT4gTnVtYmVyLnBhcnNlSW50KHZhbHVlLCAxMCkpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBwb3BwZXJEYXRhID0+IG9mZnNldChwb3BwZXJEYXRhLCB0aGlzLl9lbGVtZW50KVxuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXRcbiAgfVxuXG4gIF9nZXRQb3BwZXJDb25maWcoKSB7XG4gICAgY29uc3QgZGVmYXVsdEJzUG9wcGVyQ29uZmlnID0ge1xuICAgICAgcGxhY2VtZW50OiB0aGlzLl9nZXRQbGFjZW1lbnQoKSxcbiAgICAgIG1vZGlmaWVyczogW3tcbiAgICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBib3VuZGFyeTogdGhpcy5fY29uZmlnLmJvdW5kYXJ5XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvZmZzZXQnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgb2Zmc2V0OiB0aGlzLl9nZXRPZmZzZXQoKVxuICAgICAgICB9XG4gICAgICB9XVxuICAgIH1cblxuICAgIC8vIERpc2FibGUgUG9wcGVyIGlmIHdlIGhhdmUgYSBzdGF0aWMgZGlzcGxheSBvciBEcm9wZG93biBpcyBpbiBOYXZiYXJcbiAgICBpZiAodGhpcy5faW5OYXZiYXIgfHwgdGhpcy5fY29uZmlnLmRpc3BsYXkgPT09ICdzdGF0aWMnKSB7XG4gICAgICBNYW5pcHVsYXRvci5zZXREYXRhQXR0cmlidXRlKHRoaXMuX21lbnUsICdwb3BwZXInLCAnc3RhdGljJykgLy8gVE9ETzogdjYgcmVtb3ZlXG4gICAgICBkZWZhdWx0QnNQb3BwZXJDb25maWcubW9kaWZpZXJzID0gW3tcbiAgICAgICAgbmFtZTogJ2FwcGx5U3R5bGVzJyxcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICAgIH1dXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRCc1BvcHBlckNvbmZpZyxcbiAgICAgIC4uLmV4ZWN1dGUodGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZywgW2RlZmF1bHRCc1BvcHBlckNvbmZpZ10pXG4gICAgfVxuICB9XG5cbiAgX3NlbGVjdE1lbnVJdGVtKHsga2V5LCB0YXJnZXQgfSkge1xuICAgIGNvbnN0IGl0ZW1zID0gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9WSVNJQkxFX0lURU1TLCB0aGlzLl9tZW51KS5maWx0ZXIoZWxlbWVudCA9PiBpc1Zpc2libGUoZWxlbWVudCkpXG5cbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gaWYgdGFyZ2V0IGlzbid0IGluY2x1ZGVkIGluIGl0ZW1zIChlLmcuIHdoZW4gZXhwYW5kaW5nIHRoZSBkcm9wZG93bilcbiAgICAvLyBhbGxvdyBjeWNsaW5nIHRvIGdldCB0aGUgbGFzdCBpdGVtIGluIGNhc2Uga2V5IGVxdWFscyBBUlJPV19VUF9LRVlcbiAgICBnZXROZXh0QWN0aXZlRWxlbWVudChpdGVtcywgdGFyZ2V0LCBrZXkgPT09IEFSUk9XX0RPV05fS0VZLCAhaXRlbXMuaW5jbHVkZXModGFyZ2V0KSkuZm9jdXMoKVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gRHJvcGRvd24uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2NvbmZpZ10gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgIH1cblxuICAgICAgZGF0YVtjb25maWddKClcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGNsZWFyTWVudXMoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuYnV0dG9uID09PSBSSUdIVF9NT1VTRV9CVVRUT04gfHwgKGV2ZW50LnR5cGUgPT09ICdrZXl1cCcgJiYgZXZlbnQua2V5ICE9PSBUQUJfS0VZKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgb3BlblRvZ2dsZXMgPSBTZWxlY3RvckVuZ2luZS5maW5kKFNFTEVDVE9SX0RBVEFfVE9HR0xFX1NIT1dOKVxuXG4gICAgZm9yIChjb25zdCB0b2dnbGUgb2Ygb3BlblRvZ2dsZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBEcm9wZG93bi5nZXRJbnN0YW5jZSh0b2dnbGUpXG4gICAgICBpZiAoIWNvbnRleHQgfHwgY29udGV4dC5fY29uZmlnLmF1dG9DbG9zZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tcG9zZWRQYXRoID0gZXZlbnQuY29tcG9zZWRQYXRoKClcbiAgICAgIGNvbnN0IGlzTWVudVRhcmdldCA9IGNvbXBvc2VkUGF0aC5pbmNsdWRlcyhjb250ZXh0Ll9tZW51KVxuICAgICAgaWYgKFxuICAgICAgICBjb21wb3NlZFBhdGguaW5jbHVkZXMoY29udGV4dC5fZWxlbWVudCkgfHxcbiAgICAgICAgKGNvbnRleHQuX2NvbmZpZy5hdXRvQ2xvc2UgPT09ICdpbnNpZGUnICYmICFpc01lbnVUYXJnZXQpIHx8XG4gICAgICAgIChjb250ZXh0Ll9jb25maWcuYXV0b0Nsb3NlID09PSAnb3V0c2lkZScgJiYgaXNNZW51VGFyZ2V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIFRhYiBuYXZpZ2F0aW9uIHRocm91Z2ggdGhlIGRyb3Bkb3duIG1lbnUgb3IgZXZlbnRzIGZyb20gY29udGFpbmVkIGlucHV0cyBzaG91bGRuJ3QgY2xvc2UgdGhlIG1lbnVcbiAgICAgIGlmIChjb250ZXh0Ll9tZW51LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgKChldmVudC50eXBlID09PSAna2V5dXAnICYmIGV2ZW50LmtleSA9PT0gVEFCX0tFWSkgfHwgL2lucHV0fHNlbGVjdHxvcHRpb258dGV4dGFyZWF8Zm9ybS9pLnRlc3QoZXZlbnQudGFyZ2V0LnRhZ05hbWUpKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0geyByZWxhdGVkVGFyZ2V0OiBjb250ZXh0Ll9lbGVtZW50IH1cblxuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgcmVsYXRlZFRhcmdldC5jbGlja0V2ZW50ID0gZXZlbnRcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5fY29tcGxldGVIaWRlKHJlbGF0ZWRUYXJnZXQpXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRhdGFBcGlLZXlkb3duSGFuZGxlcihldmVudCkge1xuICAgIC8vIElmIG5vdCBhbiBVUCB8IERPV04gfCBFU0NBUEUga2V5ID0+IG5vdCBhIGRyb3Bkb3duIGNvbW1hbmRcbiAgICAvLyBJZiBpbnB1dC90ZXh0YXJlYSAmJiBpZiBrZXkgaXMgb3RoZXIgdGhhbiBFU0NBUEUgPT4gbm90IGEgZHJvcGRvd24gY29tbWFuZFxuXG4gICAgY29uc3QgaXNJbnB1dCA9IC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZXZlbnQudGFyZ2V0LnRhZ05hbWUpXG4gICAgY29uc3QgaXNFc2NhcGVFdmVudCA9IGV2ZW50LmtleSA9PT0gRVNDQVBFX0tFWVxuICAgIGNvbnN0IGlzVXBPckRvd25FdmVudCA9IFtBUlJPV19VUF9LRVksIEFSUk9XX0RPV05fS0VZXS5pbmNsdWRlcyhldmVudC5rZXkpXG5cbiAgICBpZiAoIWlzVXBPckRvd25FdmVudCAmJiAhaXNFc2NhcGVFdmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzSW5wdXQgJiYgIWlzRXNjYXBlRXZlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgIC8vIFRPRE86IHY2IHJldmVydCAjMzcwMTEgJiBjaGFuZ2UgbWFya3VwIGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzUuMy9mb3Jtcy9pbnB1dC1ncm91cC9cbiAgICBjb25zdCBnZXRUb2dnbGVCdXR0b24gPSB0aGlzLm1hdGNoZXMoU0VMRUNUT1JfREFUQV9UT0dHTEUpID9cbiAgICAgIHRoaXMgOlxuICAgICAgKFNlbGVjdG9yRW5naW5lLnByZXYodGhpcywgU0VMRUNUT1JfREFUQV9UT0dHTEUpWzBdIHx8XG4gICAgICAgIFNlbGVjdG9yRW5naW5lLm5leHQodGhpcywgU0VMRUNUT1JfREFUQV9UT0dHTEUpWzBdIHx8XG4gICAgICAgIFNlbGVjdG9yRW5naW5lLmZpbmRPbmUoU0VMRUNUT1JfREFUQV9UT0dHTEUsIGV2ZW50LmRlbGVnYXRlVGFyZ2V0LnBhcmVudE5vZGUpKVxuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBEcm9wZG93bi5nZXRPckNyZWF0ZUluc3RhbmNlKGdldFRvZ2dsZUJ1dHRvbilcblxuICAgIGlmIChpc1VwT3JEb3duRXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBpbnN0YW5jZS5zaG93KClcbiAgICAgIGluc3RhbmNlLl9zZWxlY3RNZW51SXRlbShldmVudClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5faXNTaG93bigpKSB7IC8vIGVsc2UgaXMgZXNjYXBlIGFuZCB3ZSBjaGVjayBpZiBpdCBpcyBzaG93blxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGluc3RhbmNlLmhpZGUoKVxuICAgICAgZ2V0VG9nZ2xlQnV0dG9uLmZvY3VzKClcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEYXRhIEFQSSBpbXBsZW1lbnRhdGlvblxuICovXG5cbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZRE9XTl9EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIERyb3Bkb3duLmRhdGFBcGlLZXlkb3duSGFuZGxlcilcbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZRE9XTl9EQVRBX0FQSSwgU0VMRUNUT1JfTUVOVSwgRHJvcGRvd24uZGF0YUFwaUtleWRvd25IYW5kbGVyKVxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgRHJvcGRvd24uY2xlYXJNZW51cylcbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZVVBfREFUQV9BUEksIERyb3Bkb3duLmNsZWFyTWVudXMpXG5FdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0NMSUNLX0RBVEFfQVBJLCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgRHJvcGRvd24uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzKS50b2dnbGUoKVxufSlcblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oRHJvcGRvd24pXG5cbmV4cG9ydCBkZWZhdWx0IERyb3Bkb3duXG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvYmFja2Ryb3AuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4uL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy5qcydcbmltcG9ydCB7XG4gIGV4ZWN1dGUsIGV4ZWN1dGVBZnRlclRyYW5zaXRpb24sIGdldEVsZW1lbnQsIHJlZmxvd1xufSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnYmFja2Ryb3AnXG5jb25zdCBDTEFTU19OQU1FX0ZBREUgPSAnZmFkZSdcbmNvbnN0IENMQVNTX05BTUVfU0hPVyA9ICdzaG93J1xuY29uc3QgRVZFTlRfTU9VU0VET1dOID0gYG1vdXNlZG93bi5icy4ke05BTUV9YFxuXG5jb25zdCBEZWZhdWx0ID0ge1xuICBjbGFzc05hbWU6ICdtb2RhbC1iYWNrZHJvcCcsXG4gIGNsaWNrQ2FsbGJhY2s6IG51bGwsXG4gIGlzQW5pbWF0ZWQ6IGZhbHNlLFxuICBpc1Zpc2libGU6IHRydWUsIC8vIGlmIGZhbHNlLCB3ZSB1c2UgdGhlIGJhY2tkcm9wIGhlbHBlciB3aXRob3V0IGFkZGluZyBhbnkgZWxlbWVudCB0byB0aGUgZG9tXG4gIHJvb3RFbGVtZW50OiAnYm9keScgLy8gZ2l2ZSB0aGUgY2hvaWNlIHRvIHBsYWNlIGJhY2tkcm9wIHVuZGVyIGRpZmZlcmVudCBlbGVtZW50c1xufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgY2xpY2tDYWxsYmFjazogJyhmdW5jdGlvbnxudWxsKScsXG4gIGlzQW5pbWF0ZWQ6ICdib29sZWFuJyxcbiAgaXNWaXNpYmxlOiAnYm9vbGVhbicsXG4gIHJvb3RFbGVtZW50OiAnKGVsZW1lbnR8c3RyaW5nKSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQmFja2Ryb3AgZXh0ZW5kcyBDb25maWcge1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5fZ2V0Q29uZmlnKGNvbmZpZylcbiAgICB0aGlzLl9pc0FwcGVuZGVkID0gZmFsc2VcbiAgICB0aGlzLl9lbGVtZW50ID0gbnVsbFxuICB9XG5cbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRcbiAgfVxuXG4gIHN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRUeXBlXG4gIH1cblxuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBzaG93KGNhbGxiYWNrKSB7XG4gICAgaWYgKCF0aGlzLl9jb25maWcuaXNWaXNpYmxlKSB7XG4gICAgICBleGVjdXRlKGNhbGxiYWNrKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fYXBwZW5kKClcblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9nZXRFbGVtZW50KClcbiAgICBpZiAodGhpcy5fY29uZmlnLmlzQW5pbWF0ZWQpIHtcbiAgICAgIHJlZmxvdyhlbGVtZW50KVxuICAgIH1cblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG5cbiAgICB0aGlzLl9lbXVsYXRlQW5pbWF0aW9uKCgpID0+IHtcbiAgICAgIGV4ZWN1dGUoY2FsbGJhY2spXG4gICAgfSlcbiAgfVxuXG4gIGhpZGUoY2FsbGJhY2spIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5pc1Zpc2libGUpIHtcbiAgICAgIGV4ZWN1dGUoY2FsbGJhY2spXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9nZXRFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX1NIT1cpXG5cbiAgICB0aGlzLl9lbXVsYXRlQW5pbWF0aW9uKCgpID0+IHtcbiAgICAgIHRoaXMuZGlzcG9zZSgpXG4gICAgICBleGVjdXRlKGNhbGxiYWNrKVxuICAgIH0pXG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGlmICghdGhpcy5faXNBcHBlbmRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgRXZlbnRIYW5kbGVyLm9mZih0aGlzLl9lbGVtZW50LCBFVkVOVF9NT1VTRURPV04pXG5cbiAgICB0aGlzLl9lbGVtZW50LnJlbW92ZSgpXG4gICAgdGhpcy5faXNBcHBlbmRlZCA9IGZhbHNlXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9nZXRFbGVtZW50KCkge1xuICAgIGlmICghdGhpcy5fZWxlbWVudCkge1xuICAgICAgY29uc3QgYmFja2Ryb3AgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgYmFja2Ryb3AuY2xhc3NOYW1lID0gdGhpcy5fY29uZmlnLmNsYXNzTmFtZVxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkKSB7XG4gICAgICAgIGJhY2tkcm9wLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9GQURFKVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9lbGVtZW50ID0gYmFja2Ryb3BcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFxuICB9XG5cbiAgX2NvbmZpZ0FmdGVyTWVyZ2UoY29uZmlnKSB7XG4gICAgLy8gdXNlIGdldEVsZW1lbnQoKSB3aXRoIHRoZSBkZWZhdWx0IFwiYm9keVwiIHRvIGdldCBhIGZyZXNoIEVsZW1lbnQgb24gZWFjaCBpbnN0YW50aWF0aW9uXG4gICAgY29uZmlnLnJvb3RFbGVtZW50ID0gZ2V0RWxlbWVudChjb25maWcucm9vdEVsZW1lbnQpXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG5cbiAgX2FwcGVuZCgpIHtcbiAgICBpZiAodGhpcy5faXNBcHBlbmRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2dldEVsZW1lbnQoKVxuICAgIHRoaXMuX2NvbmZpZy5yb290RWxlbWVudC5hcHBlbmQoZWxlbWVudClcblxuICAgIEV2ZW50SGFuZGxlci5vbihlbGVtZW50LCBFVkVOVF9NT1VTRURPV04sICgpID0+IHtcbiAgICAgIGV4ZWN1dGUodGhpcy5fY29uZmlnLmNsaWNrQ2FsbGJhY2spXG4gICAgfSlcblxuICAgIHRoaXMuX2lzQXBwZW5kZWQgPSB0cnVlXG4gIH1cblxuICBfZW11bGF0ZUFuaW1hdGlvbihjYWxsYmFjaykge1xuICAgIGV4ZWN1dGVBZnRlclRyYW5zaXRpb24oY2FsbGJhY2ssIHRoaXMuX2dldEVsZW1lbnQoKSwgdGhpcy5fY29uZmlnLmlzQW5pbWF0ZWQpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQmFja2Ryb3BcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9mb2N1c3RyYXAuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4uL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4uL2RvbS9zZWxlY3Rvci1lbmdpbmUuanMnXG5pbXBvcnQgQ29uZmlnIGZyb20gJy4vY29uZmlnLmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnZm9jdXN0cmFwJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMuZm9jdXN0cmFwJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IEVWRU5UX0ZPQ1VTSU4gPSBgZm9jdXNpbiR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0tFWURPV05fVEFCID0gYGtleWRvd24udGFiJHtFVkVOVF9LRVl9YFxuXG5jb25zdCBUQUJfS0VZID0gJ1RhYidcbmNvbnN0IFRBQl9OQVZfRk9SV0FSRCA9ICdmb3J3YXJkJ1xuY29uc3QgVEFCX05BVl9CQUNLV0FSRCA9ICdiYWNrd2FyZCdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgYXV0b2ZvY3VzOiB0cnVlLFxuICB0cmFwRWxlbWVudDogbnVsbCAvLyBUaGUgZWxlbWVudCB0byB0cmFwIGZvY3VzIGluc2lkZSBvZlxufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYXV0b2ZvY3VzOiAnYm9vbGVhbicsXG4gIHRyYXBFbGVtZW50OiAnZWxlbWVudCdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgRm9jdXNUcmFwIGV4dGVuZHMgQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuX2NvbmZpZyA9IHRoaXMuX2dldENvbmZpZyhjb25maWcpXG4gICAgdGhpcy5faXNBY3RpdmUgPSBmYWxzZVxuICAgIHRoaXMuX2xhc3RUYWJOYXZEaXJlY3Rpb24gPSBudWxsXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIGFjdGl2YXRlKCkge1xuICAgIGlmICh0aGlzLl9pc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy50cmFwRWxlbWVudC5mb2N1cygpXG4gICAgfVxuXG4gICAgRXZlbnRIYW5kbGVyLm9mZihkb2N1bWVudCwgRVZFTlRfS0VZKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcbiAgICBFdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0ZPQ1VTSU4sIGV2ZW50ID0+IHRoaXMuX2hhbmRsZUZvY3VzaW4oZXZlbnQpKVxuICAgIEV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZRE9XTl9UQUIsIGV2ZW50ID0+IHRoaXMuX2hhbmRsZUtleWRvd24oZXZlbnQpKVxuXG4gICAgdGhpcy5faXNBY3RpdmUgPSB0cnVlXG4gIH1cblxuICBkZWFjdGl2YXRlKCkge1xuICAgIGlmICghdGhpcy5faXNBY3RpdmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2lzQWN0aXZlID0gZmFsc2VcbiAgICBFdmVudEhhbmRsZXIub2ZmKGRvY3VtZW50LCBFVkVOVF9LRVkpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9oYW5kbGVGb2N1c2luKGV2ZW50KSB7XG4gICAgY29uc3QgeyB0cmFwRWxlbWVudCB9ID0gdGhpcy5fY29uZmlnXG5cbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBkb2N1bWVudCB8fCBldmVudC50YXJnZXQgPT09IHRyYXBFbGVtZW50IHx8IHRyYXBFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzID0gU2VsZWN0b3JFbmdpbmUuZm9jdXNhYmxlQ2hpbGRyZW4odHJhcEVsZW1lbnQpXG5cbiAgICBpZiAoZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0cmFwRWxlbWVudC5mb2N1cygpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9sYXN0VGFiTmF2RGlyZWN0aW9uID09PSBUQUJfTkFWX0JBQ0tXQVJEKSB7XG4gICAgICBlbGVtZW50c1tlbGVtZW50cy5sZW5ndGggLSAxXS5mb2N1cygpXG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnRzWzBdLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlS2V5ZG93bihldmVudCkge1xuICAgIGlmIChldmVudC5rZXkgIT09IFRBQl9LRVkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2xhc3RUYWJOYXZEaXJlY3Rpb24gPSBldmVudC5zaGlmdEtleSA/IFRBQl9OQVZfQkFDS1dBUkQgOiBUQUJfTkFWX0ZPUldBUkRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGb2N1c1RyYXBcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9zY3JvbGxCYXIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgTWFuaXB1bGF0b3IgZnJvbSAnLi4vZG9tL21hbmlwdWxhdG9yLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4uL2RvbS9zZWxlY3Rvci1lbmdpbmUuanMnXG5pbXBvcnQgeyBpc0VsZW1lbnQgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IFNFTEVDVE9SX0ZJWEVEX0NPTlRFTlQgPSAnLmZpeGVkLXRvcCwgLmZpeGVkLWJvdHRvbSwgLmlzLWZpeGVkLCAuc3RpY2t5LXRvcCdcbmNvbnN0IFNFTEVDVE9SX1NUSUNLWV9DT05URU5UID0gJy5zdGlja3ktdG9wJ1xuY29uc3QgUFJPUEVSVFlfUEFERElORyA9ICdwYWRkaW5nLXJpZ2h0J1xuY29uc3QgUFJPUEVSVFlfTUFSR0lOID0gJ21hcmdpbi1yaWdodCdcblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgU2Nyb2xsQmFySGVscGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmJvZHlcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBnZXRXaWR0aCgpIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2luZG93L2lubmVyV2lkdGgjdXNhZ2Vfbm90ZXNcbiAgICBjb25zdCBkb2N1bWVudFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgcmV0dXJuIE1hdGguYWJzKHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnRXaWR0aClcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldFdpZHRoKClcbiAgICB0aGlzLl9kaXNhYmxlT3ZlckZsb3coKVxuICAgIC8vIGdpdmUgcGFkZGluZyB0byBlbGVtZW50IHRvIGJhbGFuY2UgdGhlIGhpZGRlbiBzY3JvbGxiYXIgd2lkdGhcbiAgICB0aGlzLl9zZXRFbGVtZW50QXR0cmlidXRlcyh0aGlzLl9lbGVtZW50LCBQUk9QRVJUWV9QQURESU5HLCBjYWxjdWxhdGVkVmFsdWUgPT4gY2FsY3VsYXRlZFZhbHVlICsgd2lkdGgpXG4gICAgLy8gdHJpY2s6IFdlIGFkanVzdCBwb3NpdGl2ZSBwYWRkaW5nUmlnaHQgYW5kIG5lZ2F0aXZlIG1hcmdpblJpZ2h0IHRvIHN0aWNreS10b3AgZWxlbWVudHMgdG8ga2VlcCBzaG93aW5nIGZ1bGx3aWR0aFxuICAgIHRoaXMuX3NldEVsZW1lbnRBdHRyaWJ1dGVzKFNFTEVDVE9SX0ZJWEVEX0NPTlRFTlQsIFBST1BFUlRZX1BBRERJTkcsIGNhbGN1bGF0ZWRWYWx1ZSA9PiBjYWxjdWxhdGVkVmFsdWUgKyB3aWR0aClcbiAgICB0aGlzLl9zZXRFbGVtZW50QXR0cmlidXRlcyhTRUxFQ1RPUl9TVElDS1lfQ09OVEVOVCwgUFJPUEVSVFlfTUFSR0lOLCBjYWxjdWxhdGVkVmFsdWUgPT4gY2FsY3VsYXRlZFZhbHVlIC0gd2lkdGgpXG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKHRoaXMuX2VsZW1lbnQsICdvdmVyZmxvdycpXG4gICAgdGhpcy5fcmVzZXRFbGVtZW50QXR0cmlidXRlcyh0aGlzLl9lbGVtZW50LCBQUk9QRVJUWV9QQURESU5HKVxuICAgIHRoaXMuX3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXMoU0VMRUNUT1JfRklYRURfQ09OVEVOVCwgUFJPUEVSVFlfUEFERElORylcbiAgICB0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKFNFTEVDVE9SX1NUSUNLWV9DT05URU5ULCBQUk9QRVJUWV9NQVJHSU4pXG4gIH1cblxuICBpc092ZXJmbG93aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmdldFdpZHRoKCkgPiAwXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9kaXNhYmxlT3ZlckZsb3coKSB7XG4gICAgdGhpcy5fc2F2ZUluaXRpYWxBdHRyaWJ1dGUodGhpcy5fZWxlbWVudCwgJ292ZXJmbG93JylcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgfVxuXG4gIF9zZXRFbGVtZW50QXR0cmlidXRlcyhzZWxlY3Rvciwgc3R5bGVQcm9wZXJ0eSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuZ2V0V2lkdGgoKVxuICAgIGNvbnN0IG1hbmlwdWxhdGlvbkNhbGxCYWNrID0gZWxlbWVudCA9PiB7XG4gICAgICBpZiAoZWxlbWVudCAhPT0gdGhpcy5fZWxlbWVudCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+IGVsZW1lbnQuY2xpZW50V2lkdGggKyBzY3JvbGxiYXJXaWR0aCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fc2F2ZUluaXRpYWxBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVQcm9wZXJ0eSlcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoc3R5bGVQcm9wZXJ0eSlcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoc3R5bGVQcm9wZXJ0eSwgYCR7Y2FsbGJhY2soTnVtYmVyLnBhcnNlRmxvYXQoY2FsY3VsYXRlZFZhbHVlKSl9cHhgKVxuICAgIH1cblxuICAgIHRoaXMuX2FwcGx5TWFuaXB1bGF0aW9uQ2FsbGJhY2soc2VsZWN0b3IsIG1hbmlwdWxhdGlvbkNhbGxCYWNrKVxuICB9XG5cbiAgX3NhdmVJbml0aWFsQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlUHJvcGVydHkpIHtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHlsZVByb3BlcnR5KVxuICAgIGlmIChhY3R1YWxWYWx1ZSkge1xuICAgICAgTWFuaXB1bGF0b3Iuc2V0RGF0YUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZVByb3BlcnR5LCBhY3R1YWxWYWx1ZSlcbiAgICB9XG4gIH1cblxuICBfcmVzZXRFbGVtZW50QXR0cmlidXRlcyhzZWxlY3Rvciwgc3R5bGVQcm9wZXJ0eSkge1xuICAgIGNvbnN0IG1hbmlwdWxhdGlvbkNhbGxCYWNrID0gZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IE1hbmlwdWxhdG9yLmdldERhdGFBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVQcm9wZXJ0eSlcbiAgICAgIC8vIFdlIG9ubHkgd2FudCB0byByZW1vdmUgdGhlIHByb3BlcnR5IGlmIHRoZSB2YWx1ZSBpcyBgbnVsbGA7IHRoZSB2YWx1ZSBjYW4gYWxzbyBiZSB6ZXJvXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzdHlsZVByb3BlcnR5KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgTWFuaXB1bGF0b3IucmVtb3ZlRGF0YUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZVByb3BlcnR5KVxuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShzdHlsZVByb3BlcnR5LCB2YWx1ZSlcbiAgICB9XG5cbiAgICB0aGlzLl9hcHBseU1hbmlwdWxhdGlvbkNhbGxiYWNrKHNlbGVjdG9yLCBtYW5pcHVsYXRpb25DYWxsQmFjaylcbiAgfVxuXG4gIF9hcHBseU1hbmlwdWxhdGlvbkNhbGxiYWNrKHNlbGVjdG9yLCBjYWxsQmFjaykge1xuICAgIGlmIChpc0VsZW1lbnQoc2VsZWN0b3IpKSB7XG4gICAgICBjYWxsQmFjayhzZWxlY3RvcilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc2VsIG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoc2VsZWN0b3IsIHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICBjYWxsQmFjayhzZWwpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNjcm9sbEJhckhlbHBlclxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBtb2RhbC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgU2VsZWN0b3JFbmdpbmUgZnJvbSAnLi9kb20vc2VsZWN0b3ItZW5naW5lLmpzJ1xuaW1wb3J0IEJhY2tkcm9wIGZyb20gJy4vdXRpbC9iYWNrZHJvcC5qcydcbmltcG9ydCB7IGVuYWJsZURpc21pc3NUcmlnZ2VyIH0gZnJvbSAnLi91dGlsL2NvbXBvbmVudC1mdW5jdGlvbnMuanMnXG5pbXBvcnQgRm9jdXNUcmFwIGZyb20gJy4vdXRpbC9mb2N1c3RyYXAuanMnXG5pbXBvcnQge1xuICBkZWZpbmVKUXVlcnlQbHVnaW4sIGlzUlRMLCBpc1Zpc2libGUsIHJlZmxvd1xufSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5pbXBvcnQgU2Nyb2xsQmFySGVscGVyIGZyb20gJy4vdXRpbC9zY3JvbGxiYXIuanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICdtb2RhbCdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLm1vZGFsJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5jb25zdCBFU0NBUEVfS0VZID0gJ0VzY2FwZSdcblxuY29uc3QgRVZFTlRfSElERSA9IGBoaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElERV9QUkVWRU5URUQgPSBgaGlkZVByZXZlbnRlZCR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0hJRERFTiA9IGBoaWRkZW4ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9TSE9XID0gYHNob3cke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9TSE9XTiA9IGBzaG93biR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1JFU0laRSA9IGByZXNpemUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19ESVNNSVNTID0gYGNsaWNrLmRpc21pc3Mke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9NT1VTRURPV05fRElTTUlTUyA9IGBtb3VzZWRvd24uZGlzbWlzcyR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0tFWURPV05fRElTTUlTUyA9IGBrZXlkb3duLmRpc21pc3Mke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19EQVRBX0FQSSA9IGBjbGljayR7RVZFTlRfS0VZfSR7REFUQV9BUElfS0VZfWBcblxuY29uc3QgQ0xBU1NfTkFNRV9PUEVOID0gJ21vZGFsLW9wZW4nXG5jb25zdCBDTEFTU19OQU1FX0ZBREUgPSAnZmFkZSdcbmNvbnN0IENMQVNTX05BTUVfU0hPVyA9ICdzaG93J1xuY29uc3QgQ0xBU1NfTkFNRV9TVEFUSUMgPSAnbW9kYWwtc3RhdGljJ1xuXG5jb25zdCBPUEVOX1NFTEVDVE9SID0gJy5tb2RhbC5zaG93J1xuY29uc3QgU0VMRUNUT1JfRElBTE9HID0gJy5tb2RhbC1kaWFsb2cnXG5jb25zdCBTRUxFQ1RPUl9NT0RBTF9CT0RZID0gJy5tb2RhbC1ib2R5J1xuY29uc3QgU0VMRUNUT1JfREFUQV9UT0dHTEUgPSAnW2RhdGEtYnMtdG9nZ2xlPVwibW9kYWxcIl0nXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGJhY2tkcm9wOiB0cnVlLFxuICBmb2N1czogdHJ1ZSxcbiAga2V5Ym9hcmQ6IHRydWVcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIGJhY2tkcm9wOiAnKGJvb2xlYW58c3RyaW5nKScsXG4gIGZvY3VzOiAnYm9vbGVhbicsXG4gIGtleWJvYXJkOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgTW9kYWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5fZGlhbG9nID0gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShTRUxFQ1RPUl9ESUFMT0csIHRoaXMuX2VsZW1lbnQpXG4gICAgdGhpcy5fYmFja2Ryb3AgPSB0aGlzLl9pbml0aWFsaXplQmFja0Ryb3AoKVxuICAgIHRoaXMuX2ZvY3VzdHJhcCA9IHRoaXMuX2luaXRpYWxpemVGb2N1c1RyYXAoKVxuICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IGZhbHNlXG4gICAgdGhpcy5fc2Nyb2xsQmFyID0gbmV3IFNjcm9sbEJhckhlbHBlcigpXG5cbiAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZShyZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdyhyZWxhdGVkVGFyZ2V0KVxuICB9XG5cbiAgc2hvdyhyZWxhdGVkVGFyZ2V0KSB7XG4gICAgaWYgKHRoaXMuX2lzU2hvd24gfHwgdGhpcy5faXNUcmFuc2l0aW9uaW5nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBzaG93RXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9TSE9XLCB7XG4gICAgICByZWxhdGVkVGFyZ2V0XG4gICAgfSlcblxuICAgIGlmIChzaG93RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5faXNTaG93biA9IHRydWVcbiAgICB0aGlzLl9pc1RyYW5zaXRpb25pbmcgPSB0cnVlXG5cbiAgICB0aGlzLl9zY3JvbGxCYXIuaGlkZSgpXG5cbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9PUEVOKVxuXG4gICAgdGhpcy5fYWRqdXN0RGlhbG9nKClcblxuICAgIHRoaXMuX2JhY2tkcm9wLnNob3coKCkgPT4gdGhpcy5fc2hvd0VsZW1lbnQocmVsYXRlZFRhcmdldCkpXG4gIH1cblxuICBoaWRlKCkge1xuICAgIGlmICghdGhpcy5faXNTaG93biB8fCB0aGlzLl9pc1RyYW5zaXRpb25pbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREUpXG5cbiAgICBpZiAoaGlkZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IHRydWVcbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjaygoKSA9PiB0aGlzLl9oaWRlTW9kYWwoKSwgdGhpcy5fZWxlbWVudCwgdGhpcy5faXNBbmltYXRlZCgpKVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICBFdmVudEhhbmRsZXIub2ZmKHdpbmRvdywgRVZFTlRfS0VZKVxuICAgIEV2ZW50SGFuZGxlci5vZmYodGhpcy5fZGlhbG9nLCBFVkVOVF9LRVkpXG5cbiAgICB0aGlzLl9iYWNrZHJvcC5kaXNwb3NlKClcbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG5cbiAgICBzdXBlci5kaXNwb3NlKClcbiAgfVxuXG4gIGhhbmRsZVVwZGF0ZSgpIHtcbiAgICB0aGlzLl9hZGp1c3REaWFsb2coKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuICBfaW5pdGlhbGl6ZUJhY2tEcm9wKCkge1xuICAgIHJldHVybiBuZXcgQmFja2Ryb3Aoe1xuICAgICAgaXNWaXNpYmxlOiBCb29sZWFuKHRoaXMuX2NvbmZpZy5iYWNrZHJvcCksIC8vICdzdGF0aWMnIG9wdGlvbiB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gdHJ1ZSwgYW5kIGJvb2xlYW5zIHdpbGwga2VlcCB0aGVpciB2YWx1ZSxcbiAgICAgIGlzQW5pbWF0ZWQ6IHRoaXMuX2lzQW5pbWF0ZWQoKVxuICAgIH0pXG4gIH1cblxuICBfaW5pdGlhbGl6ZUZvY3VzVHJhcCgpIHtcbiAgICByZXR1cm4gbmV3IEZvY3VzVHJhcCh7XG4gICAgICB0cmFwRWxlbWVudDogdGhpcy5fZWxlbWVudFxuICAgIH0pXG4gIH1cblxuICBfc2hvd0VsZW1lbnQocmVsYXRlZFRhcmdldCkge1xuICAgIC8vIHRyeSB0byBhcHBlbmQgZHluYW1pYyBtb2RhbFxuICAgIGlmICghZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLl9lbGVtZW50KSkge1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5fZWxlbWVudClcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG4gICAgdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJylcbiAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1tb2RhbCcsIHRydWUpXG4gICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnZGlhbG9nJylcbiAgICB0aGlzLl9lbGVtZW50LnNjcm9sbFRvcCA9IDBcblxuICAgIGNvbnN0IG1vZGFsQm9keSA9IFNlbGVjdG9yRW5naW5lLmZpbmRPbmUoU0VMRUNUT1JfTU9EQUxfQk9EWSwgdGhpcy5fZGlhbG9nKVxuICAgIGlmIChtb2RhbEJvZHkpIHtcbiAgICAgIG1vZGFsQm9keS5zY3JvbGxUb3AgPSAwXG4gICAgfVxuXG4gICAgcmVmbG93KHRoaXMuX2VsZW1lbnQpXG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgY29uc3QgdHJhbnNpdGlvbkNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5mb2N1cykge1xuICAgICAgICB0aGlzLl9mb2N1c3RyYXAuYWN0aXZhdGUoKVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9pc1RyYW5zaXRpb25pbmcgPSBmYWxzZVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPV04sIHtcbiAgICAgICAgcmVsYXRlZFRhcmdldFxuICAgICAgfSlcbiAgICB9XG5cbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKHRyYW5zaXRpb25Db21wbGV0ZSwgdGhpcy5fZGlhbG9nLCB0aGlzLl9pc0FuaW1hdGVkKCkpXG4gIH1cblxuICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0tFWURPV05fRElTTUlTUywgZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRVNDQVBFX0tFWSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5rZXlib2FyZCkge1xuICAgICAgICB0aGlzLmhpZGUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fdHJpZ2dlckJhY2tkcm9wVHJhbnNpdGlvbigpXG4gICAgfSlcblxuICAgIEV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX1JFU0laRSwgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2lzU2hvd24gJiYgIXRoaXMuX2lzVHJhbnNpdGlvbmluZykge1xuICAgICAgICB0aGlzLl9hZGp1c3REaWFsb2coKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudCwgRVZFTlRfTU9VU0VET1dOX0RJU01JU1MsIGV2ZW50ID0+IHtcbiAgICAgIC8vIGEgYmFkIHRyaWNrIHRvIHNlZ3JlZ2F0ZSBjbGlja3MgdGhhdCBtYXkgc3RhcnQgaW5zaWRlIGRpYWxvZyBidXQgZW5kIG91dHNpZGUsIGFuZCBhdm9pZCBsaXN0ZW4gdG8gc2Nyb2xsYmFyIGNsaWNrc1xuICAgICAgRXZlbnRIYW5kbGVyLm9uZSh0aGlzLl9lbGVtZW50LCBFVkVOVF9DTElDS19ESVNNSVNTLCBldmVudDIgPT4ge1xuICAgICAgICBpZiAodGhpcy5fZWxlbWVudCAhPT0gZXZlbnQudGFyZ2V0IHx8IHRoaXMuX2VsZW1lbnQgIT09IGV2ZW50Mi50YXJnZXQpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XG4gICAgICAgICAgdGhpcy5fdHJpZ2dlckJhY2tkcm9wVHJhbnNpdGlvbigpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmJhY2tkcm9wKSB7XG4gICAgICAgICAgdGhpcy5oaWRlKClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgX2hpZGVNb2RhbCgpIHtcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCB0cnVlKVxuICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLW1vZGFsJylcbiAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgncm9sZScpXG4gICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcblxuICAgIHRoaXMuX2JhY2tkcm9wLmhpZGUoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfT1BFTilcbiAgICAgIHRoaXMuX3Jlc2V0QWRqdXN0bWVudHMoKVxuICAgICAgdGhpcy5fc2Nyb2xsQmFyLnJlc2V0KClcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJRERFTilcbiAgICB9KVxuICB9XG5cbiAgX2lzQW5pbWF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRkFERSlcbiAgfVxuXG4gIF90cmlnZ2VyQmFja2Ryb3BUcmFuc2l0aW9uKCkge1xuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREVfUFJFVkVOVEVEKVxuICAgIGlmIChoaWRlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgaXNNb2RhbE92ZXJmbG93aW5nID0gdGhpcy5fZWxlbWVudC5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaW5pdGlhbE92ZXJmbG93WSA9IHRoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3dZXG4gICAgLy8gcmV0dXJuIGlmIHRoZSBmb2xsb3dpbmcgYmFja2dyb3VuZCB0cmFuc2l0aW9uIGhhc24ndCB5ZXQgY29tcGxldGVkXG4gICAgaWYgKGluaXRpYWxPdmVyZmxvd1kgPT09ICdoaWRkZW4nIHx8IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfU1RBVElDKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFpc01vZGFsT3ZlcmZsb3dpbmcpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3dZID0gJ2hpZGRlbidcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9TVEFUSUMpXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjaygoKSA9PiB7XG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TVEFUSUMpXG4gICAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS5vdmVyZmxvd1kgPSBpbml0aWFsT3ZlcmZsb3dZXG4gICAgICB9LCB0aGlzLl9kaWFsb2cpXG4gICAgfSwgdGhpcy5fZGlhbG9nKVxuXG4gICAgdGhpcy5fZWxlbWVudC5mb2N1cygpXG4gIH1cblxuICAvKipcbiAgICogVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcbiAgICovXG5cbiAgX2FkanVzdERpYWxvZygpIHtcbiAgICBjb25zdCBpc01vZGFsT3ZlcmZsb3dpbmcgPSB0aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuX3Njcm9sbEJhci5nZXRXaWR0aCgpXG4gICAgY29uc3QgaXNCb2R5T3ZlcmZsb3dpbmcgPSBzY3JvbGxiYXJXaWR0aCA+IDBcblxuICAgIGlmIChpc0JvZHlPdmVyZmxvd2luZyAmJiAhaXNNb2RhbE92ZXJmbG93aW5nKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGlzUlRMKCkgPyAncGFkZGluZ0xlZnQnIDogJ3BhZGRpbmdSaWdodCdcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGVbcHJvcGVydHldID0gYCR7c2Nyb2xsYmFyV2lkdGh9cHhgXG4gICAgfVxuXG4gICAgaWYgKCFpc0JvZHlPdmVyZmxvd2luZyAmJiBpc01vZGFsT3ZlcmZsb3dpbmcpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gaXNSVEwoKSA/ICdwYWRkaW5nUmlnaHQnIDogJ3BhZGRpbmdMZWZ0J1xuICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZVtwcm9wZXJ0eV0gPSBgJHtzY3JvbGxiYXJXaWR0aH1weGBcbiAgICB9XG4gIH1cblxuICBfcmVzZXRBZGp1c3RtZW50cygpIHtcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJydcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodCA9ICcnXG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcsIHJlbGF0ZWRUYXJnZXQpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBNb2RhbC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10ocmVsYXRlZFRhcmdldClcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5FdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0NMSUNLX0RBVEFfQVBJLCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldCA9IFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodGhpcylcblxuICBpZiAoWydBJywgJ0FSRUEnXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgRXZlbnRIYW5kbGVyLm9uZSh0YXJnZXQsIEVWRU5UX1NIT1csIHNob3dFdmVudCA9PiB7XG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBFdmVudEhhbmRsZXIub25lKHRhcmdldCwgRVZFTlRfSElEREVOLCAoKSA9PiB7XG4gICAgICBpZiAoaXNWaXNpYmxlKHRoaXMpKSB7XG4gICAgICAgIHRoaXMuZm9jdXMoKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG5cbiAgLy8gYXZvaWQgY29uZmxpY3Qgd2hlbiBjbGlja2luZyBtb2RhbCB0b2dnbGVyIHdoaWxlIGFub3RoZXIgb25lIGlzIG9wZW5cbiAgY29uc3QgYWxyZWFkeU9wZW4gPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKE9QRU5fU0VMRUNUT1IpXG4gIGlmIChhbHJlYWR5T3Blbikge1xuICAgIE1vZGFsLmdldEluc3RhbmNlKGFscmVhZHlPcGVuKS5oaWRlKClcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBNb2RhbC5nZXRPckNyZWF0ZUluc3RhbmNlKHRhcmdldClcblxuICBkYXRhLnRvZ2dsZSh0aGlzKVxufSlcblxuZW5hYmxlRGlzbWlzc1RyaWdnZXIoTW9kYWwpXG5cbi8qKlxuICogalF1ZXJ5XG4gKi9cblxuZGVmaW5lSlF1ZXJ5UGx1Z2luKE1vZGFsKVxuXG5leHBvcnQgZGVmYXVsdCBNb2RhbFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBvZmZjYW52YXMuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCBCYWNrZHJvcCBmcm9tICcuL3V0aWwvYmFja2Ryb3AuanMnXG5pbXBvcnQgeyBlbmFibGVEaXNtaXNzVHJpZ2dlciB9IGZyb20gJy4vdXRpbC9jb21wb25lbnQtZnVuY3Rpb25zLmpzJ1xuaW1wb3J0IEZvY3VzVHJhcCBmcm9tICcuL3V0aWwvZm9jdXN0cmFwLmpzJ1xuaW1wb3J0IHtcbiAgZGVmaW5lSlF1ZXJ5UGx1Z2luLFxuICBpc0Rpc2FibGVkLFxuICBpc1Zpc2libGVcbn0gZnJvbSAnLi91dGlsL2luZGV4LmpzJ1xuaW1wb3J0IFNjcm9sbEJhckhlbHBlciBmcm9tICcuL3V0aWwvc2Nyb2xsYmFyLmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnb2ZmY2FudmFzJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMub2ZmY2FudmFzJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5jb25zdCBFVkVOVF9MT0FEX0RBVEFfQVBJID0gYGxvYWQke0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFU0NBUEVfS0VZID0gJ0VzY2FwZSdcblxuY29uc3QgQ0xBU1NfTkFNRV9TSE9XID0gJ3Nob3cnXG5jb25zdCBDTEFTU19OQU1FX1NIT1dJTkcgPSAnc2hvd2luZydcbmNvbnN0IENMQVNTX05BTUVfSElESU5HID0gJ2hpZGluZydcbmNvbnN0IENMQVNTX05BTUVfQkFDS0RST1AgPSAnb2ZmY2FudmFzLWJhY2tkcm9wJ1xuY29uc3QgT1BFTl9TRUxFQ1RPUiA9ICcub2ZmY2FudmFzLnNob3cnXG5cbmNvbnN0IEVWRU5UX1NIT1cgPSBgc2hvdyR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1NIT1dOID0gYHNob3duJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElERSA9IGBoaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElERV9QUkVWRU5URUQgPSBgaGlkZVByZXZlbnRlZCR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0hJRERFTiA9IGBoaWRkZW4ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9SRVNJWkUgPSBgcmVzaXplJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfQ0xJQ0tfREFUQV9BUEkgPSBgY2xpY2ske0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9LRVlET1dOX0RJU01JU1MgPSBga2V5ZG93bi5kaXNtaXNzJHtFVkVOVF9LRVl9YFxuXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSA9ICdbZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIl0nXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGJhY2tkcm9wOiB0cnVlLFxuICBrZXlib2FyZDogdHJ1ZSxcbiAgc2Nyb2xsOiBmYWxzZVxufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYmFja2Ryb3A6ICcoYm9vbGVhbnxzdHJpbmcpJyxcbiAga2V5Ym9hcmQ6ICdib29sZWFuJyxcbiAgc2Nyb2xsOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgT2ZmY2FudmFzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIGNvbmZpZykge1xuICAgIHN1cGVyKGVsZW1lbnQsIGNvbmZpZylcblxuICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuX2JhY2tkcm9wID0gdGhpcy5faW5pdGlhbGl6ZUJhY2tEcm9wKClcbiAgICB0aGlzLl9mb2N1c3RyYXAgPSB0aGlzLl9pbml0aWFsaXplRm9jdXNUcmFwKClcbiAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZShyZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdyhyZWxhdGVkVGFyZ2V0KVxuICB9XG5cbiAgc2hvdyhyZWxhdGVkVGFyZ2V0KSB7XG4gICAgaWYgKHRoaXMuX2lzU2hvd24pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHNob3dFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1csIHsgcmVsYXRlZFRhcmdldCB9KVxuXG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9pc1Nob3duID0gdHJ1ZVxuICAgIHRoaXMuX2JhY2tkcm9wLnNob3coKVxuXG4gICAgaWYgKCF0aGlzLl9jb25maWcuc2Nyb2xsKSB7XG4gICAgICBuZXcgU2Nyb2xsQmFySGVscGVyKCkuaGlkZSgpXG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbW9kYWwnLCB0cnVlKVxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfU0hPV0lORylcblxuICAgIGNvbnN0IGNvbXBsZXRlQ2FsbEJhY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2NvbmZpZy5zY3JvbGwgfHwgdGhpcy5fY29uZmlnLmJhY2tkcm9wKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzdHJhcC5hY3RpdmF0ZSgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XSU5HKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPV04sIHsgcmVsYXRlZFRhcmdldCB9KVxuICAgIH1cblxuICAgIHRoaXMuX3F1ZXVlQ2FsbGJhY2soY29tcGxldGVDYWxsQmFjaywgdGhpcy5fZWxlbWVudCwgdHJ1ZSlcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKCF0aGlzLl9pc1Nob3duKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBoaWRlRXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURFKVxuXG4gICAgaWYgKGhpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG4gICAgdGhpcy5fZWxlbWVudC5ibHVyKClcbiAgICB0aGlzLl9pc1Nob3duID0gZmFsc2VcbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9ISURJTkcpXG4gICAgdGhpcy5fYmFja2Ryb3AuaGlkZSgpXG5cbiAgICBjb25zdCBjb21wbGV0ZUNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfU0hPVywgQ0xBU1NfTkFNRV9ISURJTkcpXG4gICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1tb2RhbCcpXG4gICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgncm9sZScpXG5cbiAgICAgIGlmICghdGhpcy5fY29uZmlnLnNjcm9sbCkge1xuICAgICAgICBuZXcgU2Nyb2xsQmFySGVscGVyKCkucmVzZXQoKVxuICAgICAgfVxuXG4gICAgICBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURERU4pXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZUNhbGxiYWNrLCB0aGlzLl9lbGVtZW50LCB0cnVlKVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLl9iYWNrZHJvcC5kaXNwb3NlKClcbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9pbml0aWFsaXplQmFja0Ryb3AoKSB7XG4gICAgY29uc3QgY2xpY2tDYWxsYmFjayA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XG4gICAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREVfUFJFVkVOVEVEKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5oaWRlKClcbiAgICB9XG5cbiAgICAvLyAnc3RhdGljJyBvcHRpb24gd2lsbCBiZSB0cmFuc2xhdGVkIHRvIHRydWUsIGFuZCBib29sZWFucyB3aWxsIGtlZXAgdGhlaXIgdmFsdWVcbiAgICBjb25zdCBpc1Zpc2libGUgPSBCb29sZWFuKHRoaXMuX2NvbmZpZy5iYWNrZHJvcClcblxuICAgIHJldHVybiBuZXcgQmFja2Ryb3Aoe1xuICAgICAgY2xhc3NOYW1lOiBDTEFTU19OQU1FX0JBQ0tEUk9QLFxuICAgICAgaXNWaXNpYmxlLFxuICAgICAgaXNBbmltYXRlZDogdHJ1ZSxcbiAgICAgIHJvb3RFbGVtZW50OiB0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICBjbGlja0NhbGxiYWNrOiBpc1Zpc2libGUgPyBjbGlja0NhbGxiYWNrIDogbnVsbFxuICAgIH0pXG4gIH1cblxuICBfaW5pdGlhbGl6ZUZvY3VzVHJhcCgpIHtcbiAgICByZXR1cm4gbmV3IEZvY3VzVHJhcCh7XG4gICAgICB0cmFwRWxlbWVudDogdGhpcy5fZWxlbWVudFxuICAgIH0pXG4gIH1cblxuICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0tFWURPV05fRElTTUlTUywgZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRVNDQVBFX0tFWSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5rZXlib2FyZCkge1xuICAgICAgICB0aGlzLmhpZGUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfSElERV9QUkVWRU5URUQpXG4gICAgfSlcbiAgfVxuXG4gIC8vIFN0YXRpY1xuICBzdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGF0YSA9IE9mZmNhbnZhcy5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YVtjb25maWddID09PSB1bmRlZmluZWQgfHwgY29uZmlnLnN0YXJ0c1dpdGgoJ18nKSB8fCBjb25maWcgPT09ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10odGhpcylcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5FdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0NMSUNLX0RBVEFfQVBJLCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldCA9IFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodGhpcylcblxuICBpZiAoWydBJywgJ0FSRUEnXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgaWYgKGlzRGlzYWJsZWQodGhpcykpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIEV2ZW50SGFuZGxlci5vbmUodGFyZ2V0LCBFVkVOVF9ISURERU4sICgpID0+IHtcbiAgICAvLyBmb2N1cyBvbiB0cmlnZ2VyIHdoZW4gaXQgaXMgY2xvc2VkXG4gICAgaWYgKGlzVmlzaWJsZSh0aGlzKSkge1xuICAgICAgdGhpcy5mb2N1cygpXG4gICAgfVxuICB9KVxuXG4gIC8vIGF2b2lkIGNvbmZsaWN0IHdoZW4gY2xpY2tpbmcgYSB0b2dnbGVyIG9mIGFuIG9mZmNhbnZhcywgd2hpbGUgYW5vdGhlciBpcyBvcGVuXG4gIGNvbnN0IGFscmVhZHlPcGVuID0gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShPUEVOX1NFTEVDVE9SKVxuICBpZiAoYWxyZWFkeU9wZW4gJiYgYWxyZWFkeU9wZW4gIT09IHRhcmdldCkge1xuICAgIE9mZmNhbnZhcy5nZXRJbnN0YW5jZShhbHJlYWR5T3BlbikuaGlkZSgpXG4gIH1cblxuICBjb25zdCBkYXRhID0gT2ZmY2FudmFzLmdldE9yQ3JlYXRlSW5zdGFuY2UodGFyZ2V0KVxuICBkYXRhLnRvZ2dsZSh0aGlzKVxufSlcblxuRXZlbnRIYW5kbGVyLm9uKHdpbmRvdywgRVZFTlRfTE9BRF9EQVRBX0FQSSwgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoT1BFTl9TRUxFQ1RPUikpIHtcbiAgICBPZmZjYW52YXMuZ2V0T3JDcmVhdGVJbnN0YW5jZShzZWxlY3Rvcikuc2hvdygpXG4gIH1cbn0pXG5cbkV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX1JFU0laRSwgKCkgPT4ge1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgU2VsZWN0b3JFbmdpbmUuZmluZCgnW2FyaWEtbW9kYWxdW2NsYXNzKj1zaG93XVtjbGFzcyo9b2ZmY2FudmFzLV0nKSkge1xuICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uICE9PSAnZml4ZWQnKSB7XG4gICAgICBPZmZjYW52YXMuZ2V0T3JDcmVhdGVJbnN0YW5jZShlbGVtZW50KS5oaWRlKClcbiAgICB9XG4gIH1cbn0pXG5cbmVuYWJsZURpc21pc3NUcmlnZ2VyKE9mZmNhbnZhcylcblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oT2ZmY2FudmFzKVxuXG5leHBvcnQgZGVmYXVsdCBPZmZjYW52YXNcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9zYW5pdGl6ZXIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBqcy1kb2NzLXN0YXJ0IGFsbG93LWxpc3RcbmNvbnN0IEFSSUFfQVRUUklCVVRFX1BBVFRFUk4gPSAvXmFyaWEtW1xcdy1dKiQvaVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdEFsbG93bGlzdCA9IHtcbiAgLy8gR2xvYmFsIGF0dHJpYnV0ZXMgYWxsb3dlZCBvbiBhbnkgc3VwcGxpZWQgZWxlbWVudCBiZWxvdy5cbiAgJyonOiBbJ2NsYXNzJywgJ2RpcicsICdpZCcsICdsYW5nJywgJ3JvbGUnLCBBUklBX0FUVFJJQlVURV9QQVRURVJOXSxcbiAgYTogWyd0YXJnZXQnLCAnaHJlZicsICd0aXRsZScsICdyZWwnXSxcbiAgYXJlYTogW10sXG4gIGI6IFtdLFxuICBicjogW10sXG4gIGNvbDogW10sXG4gIGNvZGU6IFtdLFxuICBkZDogW10sXG4gIGRpdjogW10sXG4gIGRsOiBbXSxcbiAgZHQ6IFtdLFxuICBlbTogW10sXG4gIGhyOiBbXSxcbiAgaDE6IFtdLFxuICBoMjogW10sXG4gIGgzOiBbXSxcbiAgaDQ6IFtdLFxuICBoNTogW10sXG4gIGg2OiBbXSxcbiAgaTogW10sXG4gIGltZzogWydzcmMnLCAnc3Jjc2V0JywgJ2FsdCcsICd0aXRsZScsICd3aWR0aCcsICdoZWlnaHQnXSxcbiAgbGk6IFtdLFxuICBvbDogW10sXG4gIHA6IFtdLFxuICBwcmU6IFtdLFxuICBzOiBbXSxcbiAgc21hbGw6IFtdLFxuICBzcGFuOiBbXSxcbiAgc3ViOiBbXSxcbiAgc3VwOiBbXSxcbiAgc3Ryb25nOiBbXSxcbiAgdTogW10sXG4gIHVsOiBbXVxufVxuLy8ganMtZG9jcy1lbmQgYWxsb3ctbGlzdFxuXG5jb25zdCB1cmlBdHRyaWJ1dGVzID0gbmV3IFNldChbXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2NpdGUnLFxuICAnaHJlZicsXG4gICdpdGVtdHlwZScsXG4gICdsb25nZGVzYycsXG4gICdwb3N0ZXInLFxuICAnc3JjJyxcbiAgJ3hsaW5rOmhyZWYnXG5dKVxuXG4vKipcbiAqIEEgcGF0dGVybiB0aGF0IHJlY29nbml6ZXMgVVJMcyB0aGF0IGFyZSBzYWZlIHdydC4gWFNTIGluIFVSTCBuYXZpZ2F0aW9uXG4gKiBjb250ZXh0cy5cbiAqXG4gKiBTaG91dC1vdXQgdG8gQW5ndWxhciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTUuMi44L3BhY2thZ2VzL2NvcmUvc3JjL3Nhbml0aXphdGlvbi91cmxfc2FuaXRpemVyLnRzI0wzOFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9iZXR0ZXItcmVnZXhcbmNvbnN0IFNBRkVfVVJMX1BBVFRFUk4gPSAvXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOi8/I10qKD86Wy8/I118JCkpL2lcblxuY29uc3QgYWxsb3dlZEF0dHJpYnV0ZSA9IChhdHRyaWJ1dGUsIGFsbG93ZWRBdHRyaWJ1dGVMaXN0KSA9PiB7XG4gIGNvbnN0IGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuXG4gIGlmIChhbGxvd2VkQXR0cmlidXRlTGlzdC5pbmNsdWRlcyhhdHRyaWJ1dGVOYW1lKSkge1xuICAgIGlmICh1cmlBdHRyaWJ1dGVzLmhhcyhhdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oU0FGRV9VUkxfUEFUVEVSTi50ZXN0KGF0dHJpYnV0ZS5ub2RlVmFsdWUpKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBDaGVjayBpZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB2YWxpZGF0ZXMgdGhlIGF0dHJpYnV0ZS5cbiAgcmV0dXJuIGFsbG93ZWRBdHRyaWJ1dGVMaXN0LmZpbHRlcihhdHRyaWJ1dGVSZWdleCA9PiBhdHRyaWJ1dGVSZWdleCBpbnN0YW5jZW9mIFJlZ0V4cClcbiAgICAuc29tZShyZWdleCA9PiByZWdleC50ZXN0KGF0dHJpYnV0ZU5hbWUpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVIdG1sKHVuc2FmZUh0bWwsIGFsbG93TGlzdCwgc2FuaXRpemVGdW5jdGlvbikge1xuICBpZiAoIXVuc2FmZUh0bWwubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuc2FmZUh0bWxcbiAgfVxuXG4gIGlmIChzYW5pdGl6ZUZ1bmN0aW9uICYmIHR5cGVvZiBzYW5pdGl6ZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHNhbml0aXplRnVuY3Rpb24odW5zYWZlSHRtbClcbiAgfVxuXG4gIGNvbnN0IGRvbVBhcnNlciA9IG5ldyB3aW5kb3cuRE9NUGFyc2VyKClcbiAgY29uc3QgY3JlYXRlZERvY3VtZW50ID0gZG9tUGFyc2VyLnBhcnNlRnJvbVN0cmluZyh1bnNhZmVIdG1sLCAndGV4dC9odG1sJylcbiAgY29uc3QgZWxlbWVudHMgPSBbXS5jb25jYXQoLi4uY3JlYXRlZERvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnKicpKVxuXG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgIGNvbnN0IGVsZW1lbnROYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG5cbiAgICBpZiAoIU9iamVjdC5rZXlzKGFsbG93TGlzdCkuaW5jbHVkZXMoZWxlbWVudE5hbWUpKSB7XG4gICAgICBlbGVtZW50LnJlbW92ZSgpXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZUxpc3QgPSBbXS5jb25jYXQoLi4uZWxlbWVudC5hdHRyaWJ1dGVzKVxuICAgIGNvbnN0IGFsbG93ZWRBdHRyaWJ1dGVzID0gW10uY29uY2F0KGFsbG93TGlzdFsnKiddIHx8IFtdLCBhbGxvd0xpc3RbZWxlbWVudE5hbWVdIHx8IFtdKVxuXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlTGlzdCkge1xuICAgICAgaWYgKCFhbGxvd2VkQXR0cmlidXRlKGF0dHJpYnV0ZSwgYWxsb3dlZEF0dHJpYnV0ZXMpKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZS5ub2RlTmFtZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlZERvY3VtZW50LmJvZHkuaW5uZXJIVE1MXG59XG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvdGVtcGxhdGUtZmFjdG9yeS5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBTZWxlY3RvckVuZ2luZSBmcm9tICcuLi9kb20vc2VsZWN0b3ItZW5naW5lLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy5qcydcbmltcG9ydCB7IERlZmF1bHRBbGxvd2xpc3QsIHNhbml0aXplSHRtbCB9IGZyb20gJy4vc2FuaXRpemVyLmpzJ1xuaW1wb3J0IHsgZXhlY3V0ZSwgZ2V0RWxlbWVudCwgaXNFbGVtZW50IH0gZnJvbSAnLi9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ1RlbXBsYXRlRmFjdG9yeSdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgYWxsb3dMaXN0OiBEZWZhdWx0QWxsb3dsaXN0LFxuICBjb250ZW50OiB7fSwgLy8geyBzZWxlY3RvciA6IHRleHQgLCAgc2VsZWN0b3IyIDogdGV4dDIgLCB9XG4gIGV4dHJhQ2xhc3M6ICcnLFxuICBodG1sOiBmYWxzZSxcbiAgc2FuaXRpemU6IHRydWUsXG4gIHNhbml0aXplRm46IG51bGwsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59XG5cbmNvbnN0IERlZmF1bHRUeXBlID0ge1xuICBhbGxvd0xpc3Q6ICdvYmplY3QnLFxuICBjb250ZW50OiAnb2JqZWN0JyxcbiAgZXh0cmFDbGFzczogJyhzdHJpbmd8ZnVuY3Rpb24pJyxcbiAgaHRtbDogJ2Jvb2xlYW4nLFxuICBzYW5pdGl6ZTogJ2Jvb2xlYW4nLFxuICBzYW5pdGl6ZUZuOiAnKG51bGx8ZnVuY3Rpb24pJyxcbiAgdGVtcGxhdGU6ICdzdHJpbmcnXG59XG5cbmNvbnN0IERlZmF1bHRDb250ZW50VHlwZSA9IHtcbiAgZW50cnk6ICcoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb258bnVsbCknLFxuICBzZWxlY3RvcjogJyhzdHJpbmd8ZWxlbWVudCknXG59XG5cbi8qKlxuICogQ2xhc3MgZGVmaW5pdGlvblxuICovXG5cbmNsYXNzIFRlbXBsYXRlRmFjdG9yeSBleHRlbmRzIENvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLl9jb25maWcgPSB0aGlzLl9nZXRDb25maWcoY29uZmlnKVxuICB9XG5cbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRcbiAgfVxuXG4gIHN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRUeXBlXG4gIH1cblxuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBnZXRDb250ZW50KCkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX2NvbmZpZy5jb250ZW50KVxuICAgICAgLm1hcChjb25maWcgPT4gdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24oY29uZmlnKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgfVxuXG4gIGhhc0NvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29udGVudCgpLmxlbmd0aCA+IDBcbiAgfVxuXG4gIGNoYW5nZUNvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuX2NoZWNrQ29udGVudChjb250ZW50KVxuICAgIHRoaXMuX2NvbmZpZy5jb250ZW50ID0geyAuLi50aGlzLl9jb25maWcuY29udGVudCwgLi4uY29udGVudCB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHRvSHRtbCgpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRlbXBsYXRlV3JhcHBlci5pbm5lckhUTUwgPSB0aGlzLl9tYXliZVNhbml0aXplKHRoaXMuX2NvbmZpZy50ZW1wbGF0ZSlcblxuICAgIGZvciAoY29uc3QgW3NlbGVjdG9yLCB0ZXh0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9jb25maWcuY29udGVudCkpIHtcbiAgICAgIHRoaXMuX3NldENvbnRlbnQodGVtcGxhdGVXcmFwcGVyLCB0ZXh0LCBzZWxlY3RvcilcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHRlbXBsYXRlV3JhcHBlci5jaGlsZHJlblswXVxuICAgIGNvbnN0IGV4dHJhQ2xhc3MgPSB0aGlzLl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbih0aGlzLl9jb25maWcuZXh0cmFDbGFzcylcblxuICAgIGlmIChleHRyYUNsYXNzKSB7XG4gICAgICB0ZW1wbGF0ZS5jbGFzc0xpc3QuYWRkKC4uLmV4dHJhQ2xhc3Muc3BsaXQoJyAnKSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGVcbiAgfVxuXG4gIC8vIFByaXZhdGVcbiAgX3R5cGVDaGVja0NvbmZpZyhjb25maWcpIHtcbiAgICBzdXBlci5fdHlwZUNoZWNrQ29uZmlnKGNvbmZpZylcbiAgICB0aGlzLl9jaGVja0NvbnRlbnQoY29uZmlnLmNvbnRlbnQpXG4gIH1cblxuICBfY2hlY2tDb250ZW50KGFyZykge1xuICAgIGZvciAoY29uc3QgW3NlbGVjdG9yLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyhhcmcpKSB7XG4gICAgICBzdXBlci5fdHlwZUNoZWNrQ29uZmlnKHsgc2VsZWN0b3IsIGVudHJ5OiBjb250ZW50IH0sIERlZmF1bHRDb250ZW50VHlwZSlcbiAgICB9XG4gIH1cblxuICBfc2V0Q29udGVudCh0ZW1wbGF0ZSwgY29udGVudCwgc2VsZWN0b3IpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZUVsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKHNlbGVjdG9yLCB0ZW1wbGF0ZSlcblxuICAgIGlmICghdGVtcGxhdGVFbGVtZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb250ZW50ID0gdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24oY29udGVudClcblxuICAgIGlmICghY29udGVudCkge1xuICAgICAgdGVtcGxhdGVFbGVtZW50LnJlbW92ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaXNFbGVtZW50KGNvbnRlbnQpKSB7XG4gICAgICB0aGlzLl9wdXRFbGVtZW50SW5UZW1wbGF0ZShnZXRFbGVtZW50KGNvbnRlbnQpLCB0ZW1wbGF0ZUVsZW1lbnQpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLmh0bWwpIHtcbiAgICAgIHRlbXBsYXRlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9tYXliZVNhbml0aXplKGNvbnRlbnQpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0ZW1wbGF0ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBjb250ZW50XG4gIH1cblxuICBfbWF5YmVTYW5pdGl6ZShhcmcpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnNhbml0aXplID8gc2FuaXRpemVIdG1sKGFyZywgdGhpcy5fY29uZmlnLmFsbG93TGlzdCwgdGhpcy5fY29uZmlnLnNhbml0aXplRm4pIDogYXJnXG4gIH1cblxuICBfcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGUoYXJnLCBbdGhpc10pXG4gIH1cblxuICBfcHV0RWxlbWVudEluVGVtcGxhdGUoZWxlbWVudCwgdGVtcGxhdGVFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5odG1sKSB7XG4gICAgICB0ZW1wbGF0ZUVsZW1lbnQuaW5uZXJIVE1MID0gJydcbiAgICAgIHRlbXBsYXRlRWxlbWVudC5hcHBlbmQoZWxlbWVudClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRlbXBsYXRlRWxlbWVudC50ZXh0Q29udGVudCA9IGVsZW1lbnQudGV4dENvbnRlbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0ZUZhY3RvcnlcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdG9vbHRpcC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCAqIGFzIFBvcHBlciBmcm9tICdAcG9wcGVyanMvY29yZSdcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgTWFuaXB1bGF0b3IgZnJvbSAnLi9kb20vbWFuaXB1bGF0b3IuanMnXG5pbXBvcnQge1xuICBkZWZpbmVKUXVlcnlQbHVnaW4sIGV4ZWN1dGUsIGZpbmRTaGFkb3dSb290LCBnZXRFbGVtZW50LCBnZXRVSUQsIGlzUlRMLCBub29wXG59IGZyb20gJy4vdXRpbC9pbmRleC5qcydcbmltcG9ydCB7IERlZmF1bHRBbGxvd2xpc3QgfSBmcm9tICcuL3V0aWwvc2FuaXRpemVyLmpzJ1xuaW1wb3J0IFRlbXBsYXRlRmFjdG9yeSBmcm9tICcuL3V0aWwvdGVtcGxhdGUtZmFjdG9yeS5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ3Rvb2x0aXAnXG5jb25zdCBESVNBTExPV0VEX0FUVFJJQlVURVMgPSBuZXcgU2V0KFsnc2FuaXRpemUnLCAnYWxsb3dMaXN0JywgJ3Nhbml0aXplRm4nXSlcblxuY29uc3QgQ0xBU1NfTkFNRV9GQURFID0gJ2ZhZGUnXG5jb25zdCBDTEFTU19OQU1FX01PREFMID0gJ21vZGFsJ1xuY29uc3QgQ0xBU1NfTkFNRV9TSE9XID0gJ3Nob3cnXG5cbmNvbnN0IFNFTEVDVE9SX1RPT0xUSVBfSU5ORVIgPSAnLnRvb2x0aXAtaW5uZXInXG5jb25zdCBTRUxFQ1RPUl9NT0RBTCA9IGAuJHtDTEFTU19OQU1FX01PREFMfWBcblxuY29uc3QgRVZFTlRfTU9EQUxfSElERSA9ICdoaWRlLmJzLm1vZGFsJ1xuXG5jb25zdCBUUklHR0VSX0hPVkVSID0gJ2hvdmVyJ1xuY29uc3QgVFJJR0dFUl9GT0NVUyA9ICdmb2N1cydcbmNvbnN0IFRSSUdHRVJfQ0xJQ0sgPSAnY2xpY2snXG5jb25zdCBUUklHR0VSX01BTlVBTCA9ICdtYW51YWwnXG5cbmNvbnN0IEVWRU5UX0hJREUgPSAnaGlkZSdcbmNvbnN0IEVWRU5UX0hJRERFTiA9ICdoaWRkZW4nXG5jb25zdCBFVkVOVF9TSE9XID0gJ3Nob3cnXG5jb25zdCBFVkVOVF9TSE9XTiA9ICdzaG93bidcbmNvbnN0IEVWRU5UX0lOU0VSVEVEID0gJ2luc2VydGVkJ1xuY29uc3QgRVZFTlRfQ0xJQ0sgPSAnY2xpY2snXG5jb25zdCBFVkVOVF9GT0NVU0lOID0gJ2ZvY3VzaW4nXG5jb25zdCBFVkVOVF9GT0NVU09VVCA9ICdmb2N1c291dCdcbmNvbnN0IEVWRU5UX01PVVNFRU5URVIgPSAnbW91c2VlbnRlcidcbmNvbnN0IEVWRU5UX01PVVNFTEVBVkUgPSAnbW91c2VsZWF2ZSdcblxuY29uc3QgQXR0YWNobWVudE1hcCA9IHtcbiAgQVVUTzogJ2F1dG8nLFxuICBUT1A6ICd0b3AnLFxuICBSSUdIVDogaXNSVEwoKSA/ICdsZWZ0JyA6ICdyaWdodCcsXG4gIEJPVFRPTTogJ2JvdHRvbScsXG4gIExFRlQ6IGlzUlRMKCkgPyAncmlnaHQnIDogJ2xlZnQnXG59XG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGFsbG93TGlzdDogRGVmYXVsdEFsbG93bGlzdCxcbiAgYW5pbWF0aW9uOiB0cnVlLFxuICBib3VuZGFyeTogJ2NsaXBwaW5nUGFyZW50cycsXG4gIGNvbnRhaW5lcjogZmFsc2UsXG4gIGN1c3RvbUNsYXNzOiAnJyxcbiAgZGVsYXk6IDAsXG4gIGZhbGxiYWNrUGxhY2VtZW50czogWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXSxcbiAgaHRtbDogZmFsc2UsXG4gIG9mZnNldDogWzAsIDZdLFxuICBwbGFjZW1lbnQ6ICd0b3AnLFxuICBwb3BwZXJDb25maWc6IG51bGwsXG4gIHNhbml0aXplOiB0cnVlLFxuICBzYW5pdGl6ZUZuOiBudWxsLFxuICBzZWxlY3RvcjogZmFsc2UsXG4gIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz1cInRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiPicgK1xuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nLFxuICB0aXRsZTogJycsXG4gIHRyaWdnZXI6ICdob3ZlciBmb2N1cydcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIGFsbG93TGlzdDogJ29iamVjdCcsXG4gIGFuaW1hdGlvbjogJ2Jvb2xlYW4nLFxuICBib3VuZGFyeTogJyhzdHJpbmd8ZWxlbWVudCknLFxuICBjb250YWluZXI6ICcoc3RyaW5nfGVsZW1lbnR8Ym9vbGVhbiknLFxuICBjdXN0b21DbGFzczogJyhzdHJpbmd8ZnVuY3Rpb24pJyxcbiAgZGVsYXk6ICcobnVtYmVyfG9iamVjdCknLFxuICBmYWxsYmFja1BsYWNlbWVudHM6ICdhcnJheScsXG4gIGh0bWw6ICdib29sZWFuJyxcbiAgb2Zmc2V0OiAnKGFycmF5fHN0cmluZ3xmdW5jdGlvbiknLFxuICBwbGFjZW1lbnQ6ICcoc3RyaW5nfGZ1bmN0aW9uKScsXG4gIHBvcHBlckNvbmZpZzogJyhudWxsfG9iamVjdHxmdW5jdGlvbiknLFxuICBzYW5pdGl6ZTogJ2Jvb2xlYW4nLFxuICBzYW5pdGl6ZUZuOiAnKG51bGx8ZnVuY3Rpb24pJyxcbiAgc2VsZWN0b3I6ICcoc3RyaW5nfGJvb2xlYW4pJyxcbiAgdGVtcGxhdGU6ICdzdHJpbmcnLFxuICB0aXRsZTogJyhzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbiknLFxuICB0cmlnZ2VyOiAnc3RyaW5nJ1xufVxuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBUb29sdGlwIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIGNvbmZpZykge1xuICAgIGlmICh0eXBlb2YgUG9wcGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQm9vdHN0cmFwXFwncyB0b29sdGlwcyByZXF1aXJlIFBvcHBlciAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKScpXG4gICAgfVxuXG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgLy8gUHJpdmF0ZVxuICAgIHRoaXMuX2lzRW5hYmxlZCA9IHRydWVcbiAgICB0aGlzLl90aW1lb3V0ID0gMFxuICAgIHRoaXMuX2lzSG92ZXJlZCA9IG51bGxcbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyID0ge31cbiAgICB0aGlzLl9wb3BwZXIgPSBudWxsXG4gICAgdGhpcy5fdGVtcGxhdGVGYWN0b3J5ID0gbnVsbFxuICAgIHRoaXMuX25ld0NvbnRlbnQgPSBudWxsXG5cbiAgICAvLyBQcm90ZWN0ZWRcbiAgICB0aGlzLnRpcCA9IG51bGxcblxuICAgIHRoaXMuX3NldExpc3RlbmVycygpXG5cbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5zZWxlY3Rvcikge1xuICAgICAgdGhpcy5fZml4VGl0bGUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIEdldHRlcnNcbiAgc3RhdGljIGdldCBEZWZhdWx0KCkge1xuICAgIHJldHVybiBEZWZhdWx0XG4gIH1cblxuICBzdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCkge1xuICAgIHJldHVybiBEZWZhdWx0VHlwZVxuICB9XG5cbiAgc3RhdGljIGdldCBOQU1FKCkge1xuICAgIHJldHVybiBOQU1FXG4gIH1cblxuICAvLyBQdWJsaWNcbiAgZW5hYmxlKCkge1xuICAgIHRoaXMuX2lzRW5hYmxlZCA9IHRydWVcbiAgfVxuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5faXNFbmFibGVkID0gZmFsc2VcbiAgfVxuXG4gIHRvZ2dsZUVuYWJsZWQoKSB7XG4gICAgdGhpcy5faXNFbmFibGVkID0gIXRoaXMuX2lzRW5hYmxlZFxuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICghdGhpcy5faXNFbmFibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyLmNsaWNrID0gIXRoaXMuX2FjdGl2ZVRyaWdnZXIuY2xpY2tcbiAgICBpZiAodGhpcy5faXNTaG93bigpKSB7XG4gICAgICB0aGlzLl9sZWF2ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9lbnRlcigpXG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KVxuXG4gICAgRXZlbnRIYW5kbGVyLm9mZih0aGlzLl9lbGVtZW50LmNsb3Nlc3QoU0VMRUNUT1JfTU9EQUwpLCBFVkVOVF9NT0RBTF9ISURFLCB0aGlzLl9oaWRlTW9kYWxIYW5kbGVyKVxuXG4gICAgaWYgKHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWJzLW9yaWdpbmFsLXRpdGxlJykpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWJzLW9yaWdpbmFsLXRpdGxlJykpXG4gICAgfVxuXG4gICAgdGhpcy5fZGlzcG9zZVBvcHBlcigpXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICBzaG93KCkge1xuICAgIGlmICh0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgdXNlIHNob3cgb24gdmlzaWJsZSBlbGVtZW50cycpXG4gICAgfVxuXG4gICAgaWYgKCEodGhpcy5faXNXaXRoQ29udGVudCgpICYmIHRoaXMuX2lzRW5hYmxlZCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHNob3dFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKEVWRU5UX1NIT1cpKVxuICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBmaW5kU2hhZG93Um9vdCh0aGlzLl9lbGVtZW50KVxuICAgIGNvbnN0IGlzSW5UaGVEb20gPSAoc2hhZG93Um9vdCB8fCB0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5jb250YWlucyh0aGlzLl9lbGVtZW50KVxuXG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkIHx8ICFpc0luVGhlRG9tKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBUT0RPOiB2NiByZW1vdmUgdGhpcyBvciBtYWtlIGl0IG9wdGlvbmFsXG4gICAgdGhpcy5fZGlzcG9zZVBvcHBlcigpXG5cbiAgICBjb25zdCB0aXAgPSB0aGlzLl9nZXRUaXBFbGVtZW50KClcblxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgdGlwLmdldEF0dHJpYnV0ZSgnaWQnKSlcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSB0aGlzLl9jb25maWdcblxuICAgIGlmICghdGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb250YWlucyh0aGlzLnRpcCkpIHtcbiAgICAgIGNvbnRhaW5lci5hcHBlbmQodGlwKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfSU5TRVJURUQpKVxuICAgIH1cblxuICAgIHRoaXMuX3BvcHBlciA9IHRoaXMuX2NyZWF0ZVBvcHBlcih0aXApXG5cbiAgICB0aXAuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG5cbiAgICAvLyBJZiB0aGlzIGlzIGEgdG91Y2gtZW5hYmxlZCBkZXZpY2Ugd2UgYWRkIGV4dHJhXG4gICAgLy8gZW1wdHkgbW91c2VvdmVyIGxpc3RlbmVycyB0byB0aGUgYm9keSdzIGltbWVkaWF0ZSBjaGlsZHJlbjtcbiAgICAvLyBvbmx5IG5lZWRlZCBiZWNhdXNlIG9mIGJyb2tlbiBldmVudCBkZWxlZ2F0aW9uIG9uIGlPU1xuICAgIC8vIGh0dHBzOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxNC8wMi9tb3VzZV9ldmVudF9idWIuaHRtbFxuICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKGVsZW1lbnQsICdtb3VzZW92ZXInLCBub29wKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfU0hPV04pKVxuXG4gICAgICBpZiAodGhpcy5faXNIb3ZlcmVkID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLl9sZWF2ZSgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2lzSG92ZXJlZCA9IGZhbHNlXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgdGhpcy50aXAsIHRoaXMuX2lzQW5pbWF0ZWQoKSlcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKCF0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKEVWRU5UX0hJREUpKVxuICAgIGlmIChoaWRlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdGlwID0gdGhpcy5fZ2V0VGlwRWxlbWVudCgpXG4gICAgdGlwLmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgLy8gSWYgdGhpcyBpcyBhIHRvdWNoLWVuYWJsZWQgZGV2aWNlIHdlIHJlbW92ZSB0aGUgZXh0cmFcbiAgICAvLyBlbXB0eSBtb3VzZW92ZXIgbGlzdGVuZXJzIHdlIGFkZGVkIGZvciBpT1Mgc3VwcG9ydFxuICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9mZihlbGVtZW50LCAnbW91c2VvdmVyJywgbm9vcClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyW1RSSUdHRVJfQ0xJQ0tdID0gZmFsc2VcbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyW1RSSUdHRVJfRk9DVVNdID0gZmFsc2VcbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyW1RSSUdHRVJfSE9WRVJdID0gZmFsc2VcbiAgICB0aGlzLl9pc0hvdmVyZWQgPSBudWxsIC8vIGl0IGlzIGEgdHJpY2sgdG8gc3VwcG9ydCBtYW51YWwgdHJpZ2dlcmluZ1xuXG4gICAgY29uc3QgY29tcGxldGUgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNXaXRoQWN0aXZlVHJpZ2dlcigpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX2lzSG92ZXJlZCkge1xuICAgICAgICB0aGlzLl9kaXNwb3NlUG9wcGVyKClcbiAgICAgIH1cblxuICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfSElEREVOKSlcbiAgICB9XG5cbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKGNvbXBsZXRlLCB0aGlzLnRpcCwgdGhpcy5faXNBbmltYXRlZCgpKVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIGlmICh0aGlzLl9wb3BwZXIpIHtcbiAgICAgIHRoaXMuX3BvcHBlci51cGRhdGUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIFByb3RlY3RlZFxuICBfaXNXaXRoQ29udGVudCgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLl9nZXRUaXRsZSgpKVxuICB9XG5cbiAgX2dldFRpcEVsZW1lbnQoKSB7XG4gICAgaWYgKCF0aGlzLnRpcCkge1xuICAgICAgdGhpcy50aXAgPSB0aGlzLl9jcmVhdGVUaXBFbGVtZW50KHRoaXMuX25ld0NvbnRlbnQgfHwgdGhpcy5fZ2V0Q29udGVudEZvclRlbXBsYXRlKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGlwXG4gIH1cblxuICBfY3JlYXRlVGlwRWxlbWVudChjb250ZW50KSB7XG4gICAgY29uc3QgdGlwID0gdGhpcy5fZ2V0VGVtcGxhdGVGYWN0b3J5KGNvbnRlbnQpLnRvSHRtbCgpXG5cbiAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyBjaGVjayBpbiB2NlxuICAgIGlmICghdGlwKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHRpcC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfRkFERSwgQ0xBU1NfTkFNRV9TSE9XKVxuICAgIC8vIFRPRE86IHY2IHRoZSBmb2xsb3dpbmcgY2FuIGJlIGFjaGlldmVkIHdpdGggQ1NTIG9ubHlcbiAgICB0aXAuY2xhc3NMaXN0LmFkZChgYnMtJHt0aGlzLmNvbnN0cnVjdG9yLk5BTUV9LWF1dG9gKVxuXG4gICAgY29uc3QgdGlwSWQgPSBnZXRVSUQodGhpcy5jb25zdHJ1Y3Rvci5OQU1FKS50b1N0cmluZygpXG5cbiAgICB0aXAuc2V0QXR0cmlidXRlKCdpZCcsIHRpcElkKVxuXG4gICAgaWYgKHRoaXMuX2lzQW5pbWF0ZWQoKSkge1xuICAgICAgdGlwLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9GQURFKVxuICAgIH1cblxuICAgIHJldHVybiB0aXBcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuX25ld0NvbnRlbnQgPSBjb250ZW50XG4gICAgaWYgKHRoaXMuX2lzU2hvd24oKSkge1xuICAgICAgdGhpcy5fZGlzcG9zZVBvcHBlcigpXG4gICAgICB0aGlzLnNob3coKVxuICAgIH1cbiAgfVxuXG4gIF9nZXRUZW1wbGF0ZUZhY3RvcnkoY29udGVudCkge1xuICAgIGlmICh0aGlzLl90ZW1wbGF0ZUZhY3RvcnkpIHtcbiAgICAgIHRoaXMuX3RlbXBsYXRlRmFjdG9yeS5jaGFuZ2VDb250ZW50KGNvbnRlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RlbXBsYXRlRmFjdG9yeSA9IG5ldyBUZW1wbGF0ZUZhY3Rvcnkoe1xuICAgICAgICAuLi50aGlzLl9jb25maWcsXG4gICAgICAgIC8vIHRoZSBgY29udGVudGAgdmFyIGhhcyB0byBiZSBhZnRlciBgdGhpcy5fY29uZmlnYFxuICAgICAgICAvLyB0byBvdmVycmlkZSBjb25maWcuY29udGVudCBpbiBjYXNlIG9mIHBvcG92ZXJcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgZXh0cmFDbGFzczogdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odGhpcy5fY29uZmlnLmN1c3RvbUNsYXNzKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVGYWN0b3J5XG4gIH1cblxuICBfZ2V0Q29udGVudEZvclRlbXBsYXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBbU0VMRUNUT1JfVE9PTFRJUF9JTk5FUl06IHRoaXMuX2dldFRpdGxlKClcbiAgICB9XG4gIH1cblxuICBfZ2V0VGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKHRoaXMuX2NvbmZpZy50aXRsZSkgfHwgdGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtb3JpZ2luYWwtdGl0bGUnKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuICBfaW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0KGV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuZ2V0T3JDcmVhdGVJbnN0YW5jZShldmVudC5kZWxlZ2F0ZVRhcmdldCwgdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSlcbiAgfVxuXG4gIF9pc0FuaW1hdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuYW5pbWF0aW9uIHx8ICh0aGlzLnRpcCAmJiB0aGlzLnRpcC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9GQURFKSlcbiAgfVxuXG4gIF9pc1Nob3duKCkge1xuICAgIHJldHVybiB0aGlzLnRpcCAmJiB0aGlzLnRpcC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TSE9XKVxuICB9XG5cbiAgX2NyZWF0ZVBvcHBlcih0aXApIHtcbiAgICBjb25zdCBwbGFjZW1lbnQgPSBleGVjdXRlKHRoaXMuX2NvbmZpZy5wbGFjZW1lbnQsIFt0aGlzLCB0aXAsIHRoaXMuX2VsZW1lbnRdKVxuICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBBdHRhY2htZW50TWFwW3BsYWNlbWVudC50b1VwcGVyQ2FzZSgpXVxuICAgIHJldHVybiBQb3BwZXIuY3JlYXRlUG9wcGVyKHRoaXMuX2VsZW1lbnQsIHRpcCwgdGhpcy5fZ2V0UG9wcGVyQ29uZmlnKGF0dGFjaG1lbnQpKVxuICB9XG5cbiAgX2dldE9mZnNldCgpIHtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gdGhpcy5fY29uZmlnXG5cbiAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBvZmZzZXQuc3BsaXQoJywnKS5tYXAodmFsdWUgPT4gTnVtYmVyLnBhcnNlSW50KHZhbHVlLCAxMCkpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBwb3BwZXJEYXRhID0+IG9mZnNldChwb3BwZXJEYXRhLCB0aGlzLl9lbGVtZW50KVxuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXRcbiAgfVxuXG4gIF9yZXNvbHZlUG9zc2libGVGdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4gZXhlY3V0ZShhcmcsIFt0aGlzLl9lbGVtZW50XSlcbiAgfVxuXG4gIF9nZXRQb3BwZXJDb25maWcoYXR0YWNobWVudCkge1xuICAgIGNvbnN0IGRlZmF1bHRCc1BvcHBlckNvbmZpZyA9IHtcbiAgICAgIHBsYWNlbWVudDogYXR0YWNobWVudCxcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2ZsaXAnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGZhbGxiYWNrUGxhY2VtZW50czogdGhpcy5fY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdvZmZzZXQnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5fZ2V0T2Zmc2V0KClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBib3VuZGFyeTogdGhpcy5fY29uZmlnLmJvdW5kYXJ5XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2Fycm93JyxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBlbGVtZW50OiBgLiR7dGhpcy5jb25zdHJ1Y3Rvci5OQU1FfS1hcnJvd2BcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJlU2V0UGxhY2VtZW50JyxcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiAnYmVmb3JlTWFpbicsXG4gICAgICAgICAgZm46IGRhdGEgPT4ge1xuICAgICAgICAgICAgLy8gUHJlLXNldCBQb3BwZXIncyBwbGFjZW1lbnQgYXR0cmlidXRlIGluIG9yZGVyIHRvIHJlYWQgdGhlIGFycm93IHNpemVzIHByb3Blcmx5LlxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBQb3BwZXIgbWl4ZXMgdXAgdGhlIHdpZHRoIGFuZCBoZWlnaHQgZGltZW5zaW9ucyBzaW5jZSB0aGUgaW5pdGlhbCBhcnJvdyBzdHlsZSBpcyBmb3IgdG9wIHBsYWNlbWVudFxuICAgICAgICAgICAgdGhpcy5fZ2V0VGlwRWxlbWVudCgpLnNldEF0dHJpYnV0ZSgnZGF0YS1wb3BwZXItcGxhY2VtZW50JywgZGF0YS5zdGF0ZS5wbGFjZW1lbnQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRCc1BvcHBlckNvbmZpZyxcbiAgICAgIC4uLmV4ZWN1dGUodGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZywgW2RlZmF1bHRCc1BvcHBlckNvbmZpZ10pXG4gICAgfVxuICB9XG5cbiAgX3NldExpc3RlbmVycygpIHtcbiAgICBjb25zdCB0cmlnZ2VycyA9IHRoaXMuX2NvbmZpZy50cmlnZ2VyLnNwbGl0KCcgJylcblxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycykge1xuICAgICAgaWYgKHRyaWdnZXIgPT09ICdjbGljaycpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKEVWRU5UX0NMSUNLKSwgdGhpcy5fY29uZmlnLnNlbGVjdG9yLCBldmVudCA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2luaXRpYWxpemVPbkRlbGVnYXRlZFRhcmdldChldmVudClcbiAgICAgICAgICBjb250ZXh0LnRvZ2dsZSgpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHRyaWdnZXIgIT09IFRSSUdHRVJfTUFOVUFMKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50SW4gPSB0cmlnZ2VyID09PSBUUklHR0VSX0hPVkVSID9cbiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShFVkVOVF9NT1VTRUVOVEVSKSA6XG4gICAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfRk9DVVNJTilcbiAgICAgICAgY29uc3QgZXZlbnRPdXQgPSB0cmlnZ2VyID09PSBUUklHR0VSX0hPVkVSID9cbiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShFVkVOVF9NT1VTRUxFQVZFKSA6XG4gICAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfRk9DVVNPVVQpXG5cbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIGV2ZW50SW4sIHRoaXMuX2NvbmZpZy5zZWxlY3RvciwgZXZlbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQoZXZlbnQpXG4gICAgICAgICAgY29udGV4dC5fYWN0aXZlVHJpZ2dlcltldmVudC50eXBlID09PSAnZm9jdXNpbicgPyBUUklHR0VSX0ZPQ1VTIDogVFJJR0dFUl9IT1ZFUl0gPSB0cnVlXG4gICAgICAgICAgY29udGV4dC5fZW50ZXIoKVxuICAgICAgICB9KVxuICAgICAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudCwgZXZlbnRPdXQsIHRoaXMuX2NvbmZpZy5zZWxlY3RvciwgZXZlbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQoZXZlbnQpXG4gICAgICAgICAgY29udGV4dC5fYWN0aXZlVHJpZ2dlcltldmVudC50eXBlID09PSAnZm9jdXNvdXQnID8gVFJJR0dFUl9GT0NVUyA6IFRSSUdHRVJfSE9WRVJdID1cbiAgICAgICAgICAgIGNvbnRleHQuX2VsZW1lbnQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldClcblxuICAgICAgICAgIGNvbnRleHQuX2xlYXZlKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9oaWRlTW9kYWxIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5oaWRlKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudC5jbG9zZXN0KFNFTEVDVE9SX01PREFMKSwgRVZFTlRfTU9EQUxfSElERSwgdGhpcy5faGlkZU1vZGFsSGFuZGxlcilcbiAgfVxuXG4gIF9maXhUaXRsZSgpIHtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCd0aXRsZScpXG5cbiAgICBpZiAoIXRpdGxlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgJiYgIXRoaXMuX2VsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRpdGxlKVxuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLW9yaWdpbmFsLXRpdGxlJywgdGl0bGUpIC8vIERPIE5PVCBVU0UgSVQuIElzIG9ubHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJylcbiAgfVxuXG4gIF9lbnRlcigpIHtcbiAgICBpZiAodGhpcy5faXNTaG93bigpIHx8IHRoaXMuX2lzSG92ZXJlZCkge1xuICAgICAgdGhpcy5faXNIb3ZlcmVkID0gdHJ1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5faXNIb3ZlcmVkID0gdHJ1ZVxuXG4gICAgdGhpcy5fc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNIb3ZlcmVkKSB7XG4gICAgICAgIHRoaXMuc2hvdygpXG4gICAgICB9XG4gICAgfSwgdGhpcy5fY29uZmlnLmRlbGF5LnNob3cpXG4gIH1cblxuICBfbGVhdmUoKSB7XG4gICAgaWYgKHRoaXMuX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5faXNIb3ZlcmVkID0gZmFsc2VcblxuICAgIHRoaXMuX3NldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc0hvdmVyZWQpIHtcbiAgICAgICAgdGhpcy5oaWRlKClcbiAgICAgIH1cbiAgICB9LCB0aGlzLl9jb25maWcuZGVsYXkuaGlkZSlcbiAgfVxuXG4gIF9zZXRUaW1lb3V0KGhhbmRsZXIsIHRpbWVvdXQpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dClcbiAgICB0aGlzLl90aW1lb3V0ID0gc2V0VGltZW91dChoYW5kbGVyLCB0aW1lb3V0KVxuICB9XG5cbiAgX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fYWN0aXZlVHJpZ2dlcikuaW5jbHVkZXModHJ1ZSlcbiAgfVxuXG4gIF9nZXRDb25maWcoY29uZmlnKSB7XG4gICAgY29uc3QgZGF0YUF0dHJpYnV0ZXMgPSBNYW5pcHVsYXRvci5nZXREYXRhQXR0cmlidXRlcyh0aGlzLl9lbGVtZW50KVxuXG4gICAgZm9yIChjb25zdCBkYXRhQXR0cmlidXRlIG9mIE9iamVjdC5rZXlzKGRhdGFBdHRyaWJ1dGVzKSkge1xuICAgICAgaWYgKERJU0FMTE9XRURfQVRUUklCVVRFUy5oYXMoZGF0YUF0dHJpYnV0ZSkpIHtcbiAgICAgICAgZGVsZXRlIGRhdGFBdHRyaWJ1dGVzW2RhdGFBdHRyaWJ1dGVdXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uZmlnID0ge1xuICAgICAgLi4uZGF0YUF0dHJpYnV0ZXMsXG4gICAgICAuLi4odHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uZmlnID8gY29uZmlnIDoge30pXG4gICAgfVxuICAgIGNvbmZpZyA9IHRoaXMuX21lcmdlQ29uZmlnT2JqKGNvbmZpZylcbiAgICBjb25maWcgPSB0aGlzLl9jb25maWdBZnRlck1lcmdlKGNvbmZpZylcbiAgICB0aGlzLl90eXBlQ2hlY2tDb25maWcoY29uZmlnKVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIGNvbmZpZy5jb250YWluZXIgPSBjb25maWcuY29udGFpbmVyID09PSBmYWxzZSA/IGRvY3VtZW50LmJvZHkgOiBnZXRFbGVtZW50KGNvbmZpZy5jb250YWluZXIpXG5cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5kZWxheSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbmZpZy5kZWxheSA9IHtcbiAgICAgICAgc2hvdzogY29uZmlnLmRlbGF5LFxuICAgICAgICBoaWRlOiBjb25maWcuZGVsYXlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbmZpZy50aXRsZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbmZpZy50aXRsZSA9IGNvbmZpZy50aXRsZS50b1N0cmluZygpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjb25maWcuY29udGVudCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbmZpZy5jb250ZW50ID0gY29uZmlnLmNvbnRlbnQudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9nZXREZWxlZ2F0ZUNvbmZpZygpIHtcbiAgICBjb25zdCBjb25maWcgPSB7fVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnKSkge1xuICAgICAgaWYgKHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFtrZXldICE9PSB2YWx1ZSkge1xuICAgICAgICBjb25maWdba2V5XSA9IHZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uZmlnLnNlbGVjdG9yID0gZmFsc2VcbiAgICBjb25maWcudHJpZ2dlciA9ICdtYW51YWwnXG5cbiAgICAvLyBJbiB0aGUgZnV0dXJlIGNhbiBiZSByZXBsYWNlZCB3aXRoOlxuICAgIC8vIGNvbnN0IGtleXNXaXRoRGlmZmVyZW50VmFsdWVzID0gT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnKS5maWx0ZXIoZW50cnkgPT4gdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0W2VudHJ5WzBdXSAhPT0gdGhpcy5fY29uZmlnW2VudHJ5WzBdXSlcbiAgICAvLyBgT2JqZWN0LmZyb21FbnRyaWVzKGtleXNXaXRoRGlmZmVyZW50VmFsdWVzKWBcbiAgICByZXR1cm4gY29uZmlnXG4gIH1cblxuICBfZGlzcG9zZVBvcHBlcigpIHtcbiAgICBpZiAodGhpcy5fcG9wcGVyKSB7XG4gICAgICB0aGlzLl9wb3BwZXIuZGVzdHJveSgpXG4gICAgICB0aGlzLl9wb3BwZXIgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGlwKSB7XG4gICAgICB0aGlzLnRpcC5yZW1vdmUoKVxuICAgICAgdGhpcy50aXAgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gVG9vbHRpcC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10oKVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oVG9vbHRpcClcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBwb3BvdmVyLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW1wb3J0IFRvb2x0aXAgZnJvbSAnLi90b29sdGlwLmpzJ1xuaW1wb3J0IHsgZGVmaW5lSlF1ZXJ5UGx1Z2luIH0gZnJvbSAnLi91dGlsL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAncG9wb3ZlcidcblxuY29uc3QgU0VMRUNUT1JfVElUTEUgPSAnLnBvcG92ZXItaGVhZGVyJ1xuY29uc3QgU0VMRUNUT1JfQ09OVEVOVCA9ICcucG9wb3Zlci1ib2R5J1xuXG5jb25zdCBEZWZhdWx0ID0ge1xuICAuLi5Ub29sdGlwLkRlZmF1bHQsXG4gIGNvbnRlbnQ6ICcnLFxuICBvZmZzZXQ6IFswLCA4XSxcbiAgcGxhY2VtZW50OiAncmlnaHQnLFxuICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJwb3BvdmVyXCIgcm9sZT1cInRvb2x0aXBcIj4nICtcbiAgICAnPGRpdiBjbGFzcz1cInBvcG92ZXItYXJyb3dcIj48L2Rpdj4nICtcbiAgICAnPGgzIGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48L2gzPicgK1xuICAgICc8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+PC9kaXY+JyArXG4gICAgJzwvZGl2PicsXG4gIHRyaWdnZXI6ICdjbGljaydcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIC4uLlRvb2x0aXAuRGVmYXVsdFR5cGUsXG4gIGNvbnRlbnQ6ICcobnVsbHxzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbiknXG59XG5cbi8qKlxuICogQ2xhc3MgZGVmaW5pdGlvblxuICovXG5cbmNsYXNzIFBvcG92ZXIgZXh0ZW5kcyBUb29sdGlwIHtcbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRcbiAgfVxuXG4gIHN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRUeXBlXG4gIH1cblxuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIE92ZXJyaWRlc1xuICBfaXNXaXRoQ29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VGl0bGUoKSB8fCB0aGlzLl9nZXRDb250ZW50KClcbiAgfVxuXG4gIC8vIFByaXZhdGVcbiAgX2dldENvbnRlbnRGb3JUZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW1NFTEVDVE9SX1RJVExFXTogdGhpcy5fZ2V0VGl0bGUoKSxcbiAgICAgIFtTRUxFQ1RPUl9DT05URU5UXTogdGhpcy5fZ2V0Q29udGVudCgpXG4gICAgfVxuICB9XG5cbiAgX2dldENvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKHRoaXMuX2NvbmZpZy5jb250ZW50KVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gUG9wb3Zlci5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10oKVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oUG9wb3ZlcilcblxuZXhwb3J0IGRlZmF1bHQgUG9wb3ZlclxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBzY3JvbGxzcHkuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbiwgZ2V0RWxlbWVudCwgaXNEaXNhYmxlZCwgaXNWaXNpYmxlXG59IGZyb20gJy4vdXRpbC9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ3Njcm9sbHNweSdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLnNjcm9sbHNweSdcbmNvbnN0IEVWRU5UX0tFWSA9IGAuJHtEQVRBX0tFWX1gXG5jb25zdCBEQVRBX0FQSV9LRVkgPSAnLmRhdGEtYXBpJ1xuXG5jb25zdCBFVkVOVF9BQ1RJVkFURSA9IGBhY3RpdmF0ZSR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0NMSUNLID0gYGNsaWNrJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfTE9BRF9EQVRBX0FQSSA9IGBsb2FkJHtFVkVOVF9LRVl9JHtEQVRBX0FQSV9LRVl9YFxuXG5jb25zdCBDTEFTU19OQU1FX0RST1BET1dOX0lURU0gPSAnZHJvcGRvd24taXRlbSdcbmNvbnN0IENMQVNTX05BTUVfQUNUSVZFID0gJ2FjdGl2ZSdcblxuY29uc3QgU0VMRUNUT1JfREFUQV9TUFkgPSAnW2RhdGEtYnMtc3B5PVwic2Nyb2xsXCJdJ1xuY29uc3QgU0VMRUNUT1JfVEFSR0VUX0xJTktTID0gJ1tocmVmXSdcbmNvbnN0IFNFTEVDVE9SX05BVl9MSVNUX0dST1VQID0gJy5uYXYsIC5saXN0LWdyb3VwJ1xuY29uc3QgU0VMRUNUT1JfTkFWX0xJTktTID0gJy5uYXYtbGluaydcbmNvbnN0IFNFTEVDVE9SX05BVl9JVEVNUyA9ICcubmF2LWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9MSVNUX0lURU1TID0gJy5saXN0LWdyb3VwLWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9MSU5LX0lURU1TID0gYCR7U0VMRUNUT1JfTkFWX0xJTktTfSwgJHtTRUxFQ1RPUl9OQVZfSVRFTVN9ID4gJHtTRUxFQ1RPUl9OQVZfTElOS1N9LCAke1NFTEVDVE9SX0xJU1RfSVRFTVN9YFxuY29uc3QgU0VMRUNUT1JfRFJPUERPV04gPSAnLmRyb3Bkb3duJ1xuY29uc3QgU0VMRUNUT1JfRFJPUERPV05fVE9HR0xFID0gJy5kcm9wZG93bi10b2dnbGUnXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIG9mZnNldDogbnVsbCwgLy8gVE9ETzogdjYgQGRlcHJlY2F0ZWQsIGtlZXAgaXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnNcbiAgcm9vdE1hcmdpbjogJzBweCAwcHggLTI1JScsXG4gIHNtb290aFNjcm9sbDogZmFsc2UsXG4gIHRhcmdldDogbnVsbCxcbiAgdGhyZXNob2xkOiBbMC4xLCAwLjUsIDFdXG59XG5cbmNvbnN0IERlZmF1bHRUeXBlID0ge1xuICBvZmZzZXQ6ICcobnVtYmVyfG51bGwpJywgLy8gVE9ETyB2NiBAZGVwcmVjYXRlZCwga2VlcCBpdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29uc1xuICByb290TWFyZ2luOiAnc3RyaW5nJyxcbiAgc21vb3RoU2Nyb2xsOiAnYm9vbGVhbicsXG4gIHRhcmdldDogJ2VsZW1lbnQnLFxuICB0aHJlc2hvbGQ6ICdhcnJheSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgU2Nyb2xsU3B5IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIGNvbmZpZykge1xuICAgIHN1cGVyKGVsZW1lbnQsIGNvbmZpZylcblxuICAgIC8vIHRoaXMuX2VsZW1lbnQgaXMgdGhlIG9ic2VydmFibGVzQ29udGFpbmVyIGFuZCBjb25maWcudGFyZ2V0IHRoZSBtZW51IGxpbmtzIHdyYXBwZXJcbiAgICB0aGlzLl90YXJnZXRMaW5rcyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuX29ic2VydmFibGVTZWN0aW9ucyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuX3Jvb3RFbGVtZW50ID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9lbGVtZW50KS5vdmVyZmxvd1kgPT09ICd2aXNpYmxlJyA/IG51bGwgOiB0aGlzLl9lbGVtZW50XG4gICAgdGhpcy5fYWN0aXZlVGFyZ2V0ID0gbnVsbFxuICAgIHRoaXMuX29ic2VydmVyID0gbnVsbFxuICAgIHRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YSA9IHtcbiAgICAgIHZpc2libGVFbnRyeVRvcDogMCxcbiAgICAgIHBhcmVudFNjcm9sbFRvcDogMFxuICAgIH1cbiAgICB0aGlzLnJlZnJlc2goKSAvLyBpbml0aWFsaXplXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5faW5pdGlhbGl6ZVRhcmdldHNBbmRPYnNlcnZhYmxlcygpXG4gICAgdGhpcy5fbWF5YmVFbmFibGVTbW9vdGhTY3JvbGwoKVxuXG4gICAgaWYgKHRoaXMuX29ic2VydmVyKSB7XG4gICAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSB0aGlzLl9nZXROZXdPYnNlcnZlcigpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHRoaXMuX29ic2VydmFibGVTZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZShzZWN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIC8vIFRPRE86IG9uIHY2IHRhcmdldCBzaG91bGQgYmUgZ2l2ZW4gZXhwbGljaXRseSAmIHJlbW92ZSB0aGUge3RhcmdldDogJ3NzLXRhcmdldCd9IGNhc2VcbiAgICBjb25maWcudGFyZ2V0ID0gZ2V0RWxlbWVudChjb25maWcudGFyZ2V0KSB8fCBkb2N1bWVudC5ib2R5XG5cbiAgICAvLyBUT0RPOiB2NiBPbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLiBVc2Ugcm9vdE1hcmdpbiBvbmx5XG4gICAgY29uZmlnLnJvb3RNYXJnaW4gPSBjb25maWcub2Zmc2V0ID8gYCR7Y29uZmlnLm9mZnNldH1weCAwcHggLTMwJWAgOiBjb25maWcucm9vdE1hcmdpblxuXG4gICAgaWYgKHR5cGVvZiBjb25maWcudGhyZXNob2xkID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZmlnLnRocmVzaG9sZCA9IGNvbmZpZy50aHJlc2hvbGQuc3BsaXQoJywnKS5tYXAodmFsdWUgPT4gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpKVxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9tYXliZUVuYWJsZVNtb290aFNjcm9sbCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5zbW9vdGhTY3JvbGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHVucmVnaXN0ZXIgYW55IHByZXZpb3VzIGxpc3RlbmVyc1xuICAgIEV2ZW50SGFuZGxlci5vZmYodGhpcy5fY29uZmlnLnRhcmdldCwgRVZFTlRfQ0xJQ0spXG5cbiAgICBFdmVudEhhbmRsZXIub24odGhpcy5fY29uZmlnLnRhcmdldCwgRVZFTlRfQ0xJQ0ssIFNFTEVDVE9SX1RBUkdFVF9MSU5LUywgZXZlbnQgPT4ge1xuICAgICAgY29uc3Qgb2JzZXJ2YWJsZVNlY3Rpb24gPSB0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMuZ2V0KGV2ZW50LnRhcmdldC5oYXNoKVxuICAgICAgaWYgKG9ic2VydmFibGVTZWN0aW9uKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX3Jvb3RFbGVtZW50IHx8IHdpbmRvd1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBvYnNlcnZhYmxlU2VjdGlvbi5vZmZzZXRUb3AgLSB0aGlzLl9lbGVtZW50Lm9mZnNldFRvcFxuICAgICAgICBpZiAocm9vdC5zY3JvbGxUbykge1xuICAgICAgICAgIHJvb3Quc2Nyb2xsVG8oeyB0b3A6IGhlaWdodCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaHJvbWUgNjAgZG9lc24ndCBzdXBwb3J0IGBzY3JvbGxUb2BcbiAgICAgICAgcm9vdC5zY3JvbGxUb3AgPSBoZWlnaHRcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgX2dldE5ld09ic2VydmVyKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICByb290OiB0aGlzLl9yb290RWxlbWVudCxcbiAgICAgIHRocmVzaG9sZDogdGhpcy5fY29uZmlnLnRocmVzaG9sZCxcbiAgICAgIHJvb3RNYXJnaW46IHRoaXMuX2NvbmZpZy5yb290TWFyZ2luXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlbnRyaWVzID0+IHRoaXMuX29ic2VydmVyQ2FsbGJhY2soZW50cmllcyksIG9wdGlvbnMpXG4gIH1cblxuICAvLyBUaGUgbG9naWMgb2Ygc2VsZWN0aW9uXG4gIF9vYnNlcnZlckNhbGxiYWNrKGVudHJpZXMpIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZW50cnkgPT4gdGhpcy5fdGFyZ2V0TGlua3MuZ2V0KGAjJHtlbnRyeS50YXJnZXQuaWR9YClcbiAgICBjb25zdCBhY3RpdmF0ZSA9IGVudHJ5ID0+IHtcbiAgICAgIHRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YS52aXNpYmxlRW50cnlUb3AgPSBlbnRyeS50YXJnZXQub2Zmc2V0VG9wXG4gICAgICB0aGlzLl9wcm9jZXNzKHRhcmdldEVsZW1lbnQoZW50cnkpKVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudFNjcm9sbFRvcCA9ICh0aGlzLl9yb290RWxlbWVudCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbFRvcFxuICAgIGNvbnN0IHVzZXJTY3JvbGxzRG93biA9IHBhcmVudFNjcm9sbFRvcCA+PSB0aGlzLl9wcmV2aW91c1Njcm9sbERhdGEucGFyZW50U2Nyb2xsVG9wXG4gICAgdGhpcy5fcHJldmlvdXNTY3JvbGxEYXRhLnBhcmVudFNjcm9sbFRvcCA9IHBhcmVudFNjcm9sbFRvcFxuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoIWVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVRhcmdldCA9IG51bGxcbiAgICAgICAgdGhpcy5fY2xlYXJBY3RpdmVDbGFzcyh0YXJnZXRFbGVtZW50KGVudHJ5KSlcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyeUlzTG93ZXJUaGFuUHJldmlvdXMgPSBlbnRyeS50YXJnZXQub2Zmc2V0VG9wID49IHRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YS52aXNpYmxlRW50cnlUb3BcbiAgICAgIC8vIGlmIHdlIGFyZSBzY3JvbGxpbmcgZG93biwgcGljayB0aGUgYmlnZ2VyIG9mZnNldFRvcFxuICAgICAgaWYgKHVzZXJTY3JvbGxzRG93biAmJiBlbnRyeUlzTG93ZXJUaGFuUHJldmlvdXMpIHtcbiAgICAgICAgYWN0aXZhdGUoZW50cnkpXG4gICAgICAgIC8vIGlmIHBhcmVudCBpc24ndCBzY3JvbGxlZCwgbGV0J3Mga2VlcCB0aGUgZmlyc3QgdmlzaWJsZSBpdGVtLCBicmVha2luZyB0aGUgaXRlcmF0aW9uXG4gICAgICAgIGlmICghcGFyZW50U2Nyb2xsVG9wKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBpZiB3ZSBhcmUgc2Nyb2xsaW5nIHVwLCBwaWNrIHRoZSBzbWFsbGVzdCBvZmZzZXRUb3BcbiAgICAgIGlmICghdXNlclNjcm9sbHNEb3duICYmICFlbnRyeUlzTG93ZXJUaGFuUHJldmlvdXMpIHtcbiAgICAgICAgYWN0aXZhdGUoZW50cnkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2luaXRpYWxpemVUYXJnZXRzQW5kT2JzZXJ2YWJsZXMoKSB7XG4gICAgdGhpcy5fdGFyZ2V0TGlua3MgPSBuZXcgTWFwKClcbiAgICB0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMgPSBuZXcgTWFwKClcblxuICAgIGNvbnN0IHRhcmdldExpbmtzID0gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9UQVJHRVRfTElOS1MsIHRoaXMuX2NvbmZpZy50YXJnZXQpXG5cbiAgICBmb3IgKGNvbnN0IGFuY2hvciBvZiB0YXJnZXRMaW5rcykge1xuICAgICAgLy8gZW5zdXJlIHRoYXQgdGhlIGFuY2hvciBoYXMgYW4gaWQgYW5kIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgaWYgKCFhbmNob3IuaGFzaCB8fCBpc0Rpc2FibGVkKGFuY2hvcikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZVNlY3Rpb24gPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKGRlY29kZVVSSShhbmNob3IuaGFzaCksIHRoaXMuX2VsZW1lbnQpXG5cbiAgICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBvYnNlcnZhYmxlU2VjdGlvbiBleGlzdHMgJiBpcyB2aXNpYmxlXG4gICAgICBpZiAoaXNWaXNpYmxlKG9ic2VydmFibGVTZWN0aW9uKSkge1xuICAgICAgICB0aGlzLl90YXJnZXRMaW5rcy5zZXQoZGVjb2RlVVJJKGFuY2hvci5oYXNoKSwgYW5jaG9yKVxuICAgICAgICB0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMuc2V0KGFuY2hvci5oYXNoLCBvYnNlcnZhYmxlU2VjdGlvbilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfcHJvY2Vzcyh0YXJnZXQpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlVGFyZ2V0ID09PSB0YXJnZXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2NsZWFyQWN0aXZlQ2xhc3ModGhpcy5fY29uZmlnLnRhcmdldClcbiAgICB0aGlzLl9hY3RpdmVUYXJnZXQgPSB0YXJnZXRcbiAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0FDVElWRSlcbiAgICB0aGlzLl9hY3RpdmF0ZVBhcmVudHModGFyZ2V0KVxuXG4gICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfQUNUSVZBVEUsIHsgcmVsYXRlZFRhcmdldDogdGFyZ2V0IH0pXG4gIH1cblxuICBfYWN0aXZhdGVQYXJlbnRzKHRhcmdldCkge1xuICAgIC8vIEFjdGl2YXRlIGRyb3Bkb3duIHBhcmVudHNcbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19OQU1FX0RST1BET1dOX0lURU0pKSB7XG4gICAgICBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX0RST1BET1dOX1RPR0dMRSwgdGFyZ2V0LmNsb3Nlc3QoU0VMRUNUT1JfRFJPUERPV04pKVxuICAgICAgICAuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0FDVElWRSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbGlzdEdyb3VwIG9mIFNlbGVjdG9yRW5naW5lLnBhcmVudHModGFyZ2V0LCBTRUxFQ1RPUl9OQVZfTElTVF9HUk9VUCkpIHtcbiAgICAgIC8vIFNldCB0cmlnZ2VyZWQgbGlua3MgcGFyZW50cyBhcyBhY3RpdmVcbiAgICAgIC8vIFdpdGggYm90aCA8dWw+IGFuZCA8bmF2PiBtYXJrdXAgYSBwYXJlbnQgaXMgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgYW55IG5hdiBhbmNlc3RvclxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIFNlbGVjdG9yRW5naW5lLnByZXYobGlzdEdyb3VwLCBTRUxFQ1RPUl9MSU5LX0lURU1TKSkge1xuICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9BQ1RJVkUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2NsZWFyQWN0aXZlQ2xhc3MocGFyZW50KSB7XG4gICAgcGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9BQ1RJVkUpXG5cbiAgICBjb25zdCBhY3RpdmVOb2RlcyA9IFNlbGVjdG9yRW5naW5lLmZpbmQoYCR7U0VMRUNUT1JfVEFSR0VUX0xJTktTfS4ke0NMQVNTX05BTUVfQUNUSVZFfWAsIHBhcmVudClcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgYWN0aXZlTm9kZXMpIHtcbiAgICAgIG5vZGUuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0FDVElWRSlcbiAgICB9XG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBTY3JvbGxTcHkuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGFbY29uZmlnXSA9PT0gdW5kZWZpbmVkIHx8IGNvbmZpZy5zdGFydHNXaXRoKCdfJykgfHwgY29uZmlnID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgIH1cblxuICAgICAgZGF0YVtjb25maWddKClcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5FdmVudEhhbmRsZXIub24od2luZG93LCBFVkVOVF9MT0FEX0RBVEFfQVBJLCAoKSA9PiB7XG4gIGZvciAoY29uc3Qgc3B5IG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfREFUQV9TUFkpKSB7XG4gICAgU2Nyb2xsU3B5LmdldE9yQ3JlYXRlSW5zdGFuY2Uoc3B5KVxuICB9XG59KVxuXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihTY3JvbGxTcHkpXG5cbmV4cG9ydCBkZWZhdWx0IFNjcm9sbFNweVxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCB0YWIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7IGRlZmluZUpRdWVyeVBsdWdpbiwgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQsIGlzRGlzYWJsZWQgfSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICd0YWInXG5jb25zdCBEQVRBX0tFWSA9ICdicy50YWInXG5jb25zdCBFVkVOVF9LRVkgPSBgLiR7REFUQV9LRVl9YFxuXG5jb25zdCBFVkVOVF9ISURFID0gYGhpZGUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURERU4gPSBgaGlkZGVuJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPVyA9IGBzaG93JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPV04gPSBgc2hvd24ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19EQVRBX0FQSSA9IGBjbGljayR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0tFWURPV04gPSBga2V5ZG93biR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0xPQURfREFUQV9BUEkgPSBgbG9hZCR7RVZFTlRfS0VZfWBcblxuY29uc3QgQVJST1dfTEVGVF9LRVkgPSAnQXJyb3dMZWZ0J1xuY29uc3QgQVJST1dfUklHSFRfS0VZID0gJ0Fycm93UmlnaHQnXG5jb25zdCBBUlJPV19VUF9LRVkgPSAnQXJyb3dVcCdcbmNvbnN0IEFSUk9XX0RPV05fS0VZID0gJ0Fycm93RG93bidcbmNvbnN0IEhPTUVfS0VZID0gJ0hvbWUnXG5jb25zdCBFTkRfS0VZID0gJ0VuZCdcblxuY29uc3QgQ0xBU1NfTkFNRV9BQ1RJVkUgPSAnYWN0aXZlJ1xuY29uc3QgQ0xBU1NfTkFNRV9GQURFID0gJ2ZhZGUnXG5jb25zdCBDTEFTU19OQU1FX1NIT1cgPSAnc2hvdydcbmNvbnN0IENMQVNTX0RST1BET1dOID0gJ2Ryb3Bkb3duJ1xuXG5jb25zdCBTRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEUgPSAnLmRyb3Bkb3duLXRvZ2dsZSdcbmNvbnN0IFNFTEVDVE9SX0RST1BET1dOX01FTlUgPSAnLmRyb3Bkb3duLW1lbnUnXG5jb25zdCBOT1RfU0VMRUNUT1JfRFJPUERPV05fVE9HR0xFID0gYDpub3QoJHtTRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEV9KWBcblxuY29uc3QgU0VMRUNUT1JfVEFCX1BBTkVMID0gJy5saXN0LWdyb3VwLCAubmF2LCBbcm9sZT1cInRhYmxpc3RcIl0nXG5jb25zdCBTRUxFQ1RPUl9PVVRFUiA9ICcubmF2LWl0ZW0sIC5saXN0LWdyb3VwLWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9JTk5FUiA9IGAubmF2LWxpbmske05PVF9TRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEV9LCAubGlzdC1ncm91cC1pdGVtJHtOT1RfU0VMRUNUT1JfRFJPUERPV05fVE9HR0xFfSwgW3JvbGU9XCJ0YWJcIl0ke05PVF9TRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEV9YFxuY29uc3QgU0VMRUNUT1JfREFUQV9UT0dHTEUgPSAnW2RhdGEtYnMtdG9nZ2xlPVwidGFiXCJdLCBbZGF0YS1icy10b2dnbGU9XCJwaWxsXCJdLCBbZGF0YS1icy10b2dnbGU9XCJsaXN0XCJdJyAvLyBUT0RPOiBjb3VsZCBvbmx5IGJlIGB0YWJgIGluIHY2XG5jb25zdCBTRUxFQ1RPUl9JTk5FUl9FTEVNID0gYCR7U0VMRUNUT1JfSU5ORVJ9LCAke1NFTEVDVE9SX0RBVEFfVE9HR0xFfWBcblxuY29uc3QgU0VMRUNUT1JfREFUQV9UT0dHTEVfQUNUSVZFID0gYC4ke0NMQVNTX05BTUVfQUNUSVZFfVtkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXSwgLiR7Q0xBU1NfTkFNRV9BQ1RJVkV9W2RhdGEtYnMtdG9nZ2xlPVwicGlsbFwiXSwgLiR7Q0xBU1NfTkFNRV9BQ1RJVkV9W2RhdGEtYnMtdG9nZ2xlPVwibGlzdFwiXWBcblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgVGFiIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQpIHtcbiAgICBzdXBlcihlbGVtZW50KVxuICAgIHRoaXMuX3BhcmVudCA9IHRoaXMuX2VsZW1lbnQuY2xvc2VzdChTRUxFQ1RPUl9UQUJfUEFORUwpXG5cbiAgICBpZiAoIXRoaXMuX3BhcmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgICAvLyBUT0RPOiBzaG91bGQgdGhyb3cgZXhjZXB0aW9uIGluIHY2XG4gICAgICAvLyB0aHJvdyBuZXcgVHlwZUVycm9yKGAke2VsZW1lbnQub3V0ZXJIVE1MfSBoYXMgbm90IGEgdmFsaWQgcGFyZW50ICR7U0VMRUNUT1JfSU5ORVJfRUxFTX1gKVxuICAgIH1cblxuICAgIC8vIFNldCB1cCBpbml0aWFsIGFyaWEgYXR0cmlidXRlc1xuICAgIHRoaXMuX3NldEluaXRpYWxBdHRyaWJ1dGVzKHRoaXMuX3BhcmVudCwgdGhpcy5fZ2V0Q2hpbGRyZW4oKSlcblxuICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9LRVlET1dOLCBldmVudCA9PiB0aGlzLl9rZXlkb3duKGV2ZW50KSlcbiAgfVxuXG4gIC8vIEdldHRlcnNcbiAgc3RhdGljIGdldCBOQU1FKCkge1xuICAgIHJldHVybiBOQU1FXG4gIH1cblxuICAvLyBQdWJsaWNcbiAgc2hvdygpIHsgLy8gU2hvd3MgdGhpcyBlbGVtIGFuZCBkZWFjdGl2YXRlIHRoZSBhY3RpdmUgc2libGluZyBpZiBleGlzdHNcbiAgICBjb25zdCBpbm5lckVsZW0gPSB0aGlzLl9lbGVtZW50XG4gICAgaWYgKHRoaXMuX2VsZW1Jc0FjdGl2ZShpbm5lckVsZW0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggZm9yIGFjdGl2ZSB0YWIgb24gc2FtZSBwYXJlbnQgdG8gZGVhY3RpdmF0ZSBpdFxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuX2dldEFjdGl2ZUVsZW0oKVxuXG4gICAgY29uc3QgaGlkZUV2ZW50ID0gYWN0aXZlID9cbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKGFjdGl2ZSwgRVZFTlRfSElERSwgeyByZWxhdGVkVGFyZ2V0OiBpbm5lckVsZW0gfSkgOlxuICAgICAgbnVsbFxuXG4gICAgY29uc3Qgc2hvd0V2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIoaW5uZXJFbGVtLCBFVkVOVF9TSE9XLCB7IHJlbGF0ZWRUYXJnZXQ6IGFjdGl2ZSB9KVxuXG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkIHx8IChoaWRlRXZlbnQgJiYgaGlkZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9kZWFjdGl2YXRlKGFjdGl2ZSwgaW5uZXJFbGVtKVxuICAgIHRoaXMuX2FjdGl2YXRlKGlubmVyRWxlbSwgYWN0aXZlKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuICBfYWN0aXZhdGUoZWxlbWVudCwgcmVsYXRlZEVsZW0pIHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0FDVElWRSlcblxuICAgIHRoaXMuX2FjdGl2YXRlKFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IoZWxlbWVudCkpIC8vIFNlYXJjaCBhbmQgYWN0aXZhdGUvc2hvdyB0aGUgcHJvcGVyIHNlY3Rpb25cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgIT09ICd0YWInKSB7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCB0cnVlKVxuICAgICAgdGhpcy5fdG9nZ2xlRHJvcERvd24oZWxlbWVudCwgdHJ1ZSlcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKGVsZW1lbnQsIEVWRU5UX1NIT1dOLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHJlbGF0ZWRFbGVtXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRoaXMuX3F1ZXVlQ2FsbGJhY2soY29tcGxldGUsIGVsZW1lbnQsIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRkFERSkpXG4gIH1cblxuICBfZGVhY3RpdmF0ZShlbGVtZW50LCByZWxhdGVkRWxlbSkge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfQUNUSVZFKVxuICAgIGVsZW1lbnQuYmx1cigpXG5cbiAgICB0aGlzLl9kZWFjdGl2YXRlKFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IoZWxlbWVudCkpIC8vIFNlYXJjaCBhbmQgZGVhY3RpdmF0ZSB0aGUgc2hvd24gc2VjdGlvbiB0b29cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgIT09ICd0YWInKSB7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX1NIT1cpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGZhbHNlKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJylcbiAgICAgIHRoaXMuX3RvZ2dsZURyb3BEb3duKGVsZW1lbnQsIGZhbHNlKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIoZWxlbWVudCwgRVZFTlRfSElEREVOLCB7IHJlbGF0ZWRUYXJnZXQ6IHJlbGF0ZWRFbGVtIH0pXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgZWxlbWVudCwgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9GQURFKSlcbiAgfVxuXG4gIF9rZXlkb3duKGV2ZW50KSB7XG4gICAgaWYgKCEoW0FSUk9XX0xFRlRfS0VZLCBBUlJPV19SSUdIVF9LRVksIEFSUk9XX1VQX0tFWSwgQVJST1dfRE9XTl9LRVksIEhPTUVfS0VZLCBFTkRfS0VZXS5pbmNsdWRlcyhldmVudC5rZXkpKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkvLyBzdG9wUHJvcGFnYXRpb24vcHJldmVudERlZmF1bHQgYm90aCBhZGRlZCB0byBzdXBwb3J0IHVwL2Rvd24ga2V5cyB3aXRob3V0IHNjcm9sbGluZyB0aGUgcGFnZVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fZ2V0Q2hpbGRyZW4oKS5maWx0ZXIoZWxlbWVudCA9PiAhaXNEaXNhYmxlZChlbGVtZW50KSlcbiAgICBsZXQgbmV4dEFjdGl2ZUVsZW1lbnRcblxuICAgIGlmIChbSE9NRV9LRVksIEVORF9LRVldLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIG5leHRBY3RpdmVFbGVtZW50ID0gY2hpbGRyZW5bZXZlbnQua2V5ID09PSBIT01FX0tFWSA/IDAgOiBjaGlsZHJlbi5sZW5ndGggLSAxXVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc05leHQgPSBbQVJST1dfUklHSFRfS0VZLCBBUlJPV19ET1dOX0tFWV0uaW5jbHVkZXMoZXZlbnQua2V5KVxuICAgICAgbmV4dEFjdGl2ZUVsZW1lbnQgPSBnZXROZXh0QWN0aXZlRWxlbWVudChjaGlsZHJlbiwgZXZlbnQudGFyZ2V0LCBpc05leHQsIHRydWUpXG4gICAgfVxuXG4gICAgaWYgKG5leHRBY3RpdmVFbGVtZW50KSB7XG4gICAgICBuZXh0QWN0aXZlRWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSlcbiAgICAgIFRhYi5nZXRPckNyZWF0ZUluc3RhbmNlKG5leHRBY3RpdmVFbGVtZW50KS5zaG93KClcbiAgICB9XG4gIH1cblxuICBfZ2V0Q2hpbGRyZW4oKSB7IC8vIGNvbGxlY3Rpb24gb2YgaW5uZXIgZWxlbWVudHNcbiAgICByZXR1cm4gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9JTk5FUl9FTEVNLCB0aGlzLl9wYXJlbnQpXG4gIH1cblxuICBfZ2V0QWN0aXZlRWxlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q2hpbGRyZW4oKS5maW5kKGNoaWxkID0+IHRoaXMuX2VsZW1Jc0FjdGl2ZShjaGlsZCkpIHx8IG51bGxcbiAgfVxuXG4gIF9zZXRJbml0aWFsQXR0cmlidXRlcyhwYXJlbnQsIGNoaWxkcmVuKSB7XG4gICAgdGhpcy5fc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMocGFyZW50LCAncm9sZScsICd0YWJsaXN0JylcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuX3NldEluaXRpYWxBdHRyaWJ1dGVzT25DaGlsZChjaGlsZClcbiAgICB9XG4gIH1cblxuICBfc2V0SW5pdGlhbEF0dHJpYnV0ZXNPbkNoaWxkKGNoaWxkKSB7XG4gICAgY2hpbGQgPSB0aGlzLl9nZXRJbm5lckVsZW1lbnQoY2hpbGQpXG4gICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLl9lbGVtSXNBY3RpdmUoY2hpbGQpXG4gICAgY29uc3Qgb3V0ZXJFbGVtID0gdGhpcy5fZ2V0T3V0ZXJFbGVtZW50KGNoaWxkKVxuICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGlzQWN0aXZlKVxuXG4gICAgaWYgKG91dGVyRWxlbSAhPT0gY2hpbGQpIHtcbiAgICAgIHRoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKG91dGVyRWxlbSwgJ3JvbGUnLCAncHJlc2VudGF0aW9uJylcbiAgICB9XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJylcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRBdHRyaWJ1dGVJZk5vdEV4aXN0cyhjaGlsZCwgJ3JvbGUnLCAndGFiJylcblxuICAgIC8vIHNldCBhdHRyaWJ1dGVzIHRvIHRoZSByZWxhdGVkIHBhbmVsIHRvb1xuICAgIHRoaXMuX3NldEluaXRpYWxBdHRyaWJ1dGVzT25UYXJnZXRQYW5lbChjaGlsZClcbiAgfVxuXG4gIF9zZXRJbml0aWFsQXR0cmlidXRlc09uVGFyZ2V0UGFuZWwoY2hpbGQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBTZWxlY3RvckVuZ2luZS5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKGNoaWxkKVxuXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKHRhcmdldCwgJ3JvbGUnLCAndGFicGFuZWwnKVxuXG4gICAgaWYgKGNoaWxkLmlkKSB7XG4gICAgICB0aGlzLl9zZXRBdHRyaWJ1dGVJZk5vdEV4aXN0cyh0YXJnZXQsICdhcmlhLWxhYmVsbGVkYnknLCBgJHtjaGlsZC5pZH1gKVxuICAgIH1cbiAgfVxuXG4gIF90b2dnbGVEcm9wRG93bihlbGVtZW50LCBvcGVuKSB7XG4gICAgY29uc3Qgb3V0ZXJFbGVtID0gdGhpcy5fZ2V0T3V0ZXJFbGVtZW50KGVsZW1lbnQpXG4gICAgaWYgKCFvdXRlckVsZW0uY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX0RST1BET1dOKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9nZ2xlID0gKHNlbGVjdG9yLCBjbGFzc05hbWUpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKHNlbGVjdG9yLCBvdXRlckVsZW0pXG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoY2xhc3NOYW1lLCBvcGVuKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZShTRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEUsIENMQVNTX05BTUVfQUNUSVZFKVxuICAgIHRvZ2dsZShTRUxFQ1RPUl9EUk9QRE9XTl9NRU5VLCBDTEFTU19OQU1FX1NIT1cpXG4gICAgb3V0ZXJFbGVtLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIG9wZW4pXG4gIH1cblxuICBfc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMoZWxlbWVudCwgYXR0cmlidXRlLCB2YWx1ZSkge1xuICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSlcbiAgICB9XG4gIH1cblxuICBfZWxlbUlzQWN0aXZlKGVsZW0pIHtcbiAgICByZXR1cm4gZWxlbS5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9BQ1RJVkUpXG4gIH1cblxuICAvLyBUcnkgdG8gZ2V0IHRoZSBpbm5lciBlbGVtZW50ICh1c3VhbGx5IHRoZSAubmF2LWxpbmspXG4gIF9nZXRJbm5lckVsZW1lbnQoZWxlbSkge1xuICAgIHJldHVybiBlbGVtLm1hdGNoZXMoU0VMRUNUT1JfSU5ORVJfRUxFTSkgPyBlbGVtIDogU2VsZWN0b3JFbmdpbmUuZmluZE9uZShTRUxFQ1RPUl9JTk5FUl9FTEVNLCBlbGVtKVxuICB9XG5cbiAgLy8gVHJ5IHRvIGdldCB0aGUgb3V0ZXIgZWxlbWVudCAodXN1YWxseSB0aGUgLm5hdi1pdGVtKVxuICBfZ2V0T3V0ZXJFbGVtZW50KGVsZW0pIHtcbiAgICByZXR1cm4gZWxlbS5jbG9zZXN0KFNFTEVDVE9SX09VVEVSKSB8fCBlbGVtXG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBUYWIuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzKVxuXG4gICAgICBpZiAodHlwZW9mIGNvbmZpZyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhW2NvbmZpZ10gPT09IHVuZGVmaW5lZCB8fCBjb25maWcuc3RhcnRzV2l0aCgnXycpIHx8IGNvbmZpZyA9PT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke2NvbmZpZ31cImApXG4gICAgICB9XG5cbiAgICAgIGRhdGFbY29uZmlnXSgpXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIGZ1bmN0aW9uIChldmVudCkge1xuICBpZiAoWydBJywgJ0FSRUEnXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgaWYgKGlzRGlzYWJsZWQodGhpcykpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIFRhYi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpLnNob3coKVxufSlcblxuLyoqXG4gKiBJbml0aWFsaXplIG9uIGZvY3VzXG4gKi9cbkV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX0xPQURfREFUQV9BUEksICgpID0+IHtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfREFUQV9UT0dHTEVfQUNUSVZFKSkge1xuICAgIFRhYi5nZXRPckNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpXG4gIH1cbn0pXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihUYWIpXG5cbmV4cG9ydCBkZWZhdWx0IFRhYlxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCB0b2FzdC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgeyBlbmFibGVEaXNtaXNzVHJpZ2dlciB9IGZyb20gJy4vdXRpbC9jb21wb25lbnQtZnVuY3Rpb25zLmpzJ1xuaW1wb3J0IHsgZGVmaW5lSlF1ZXJ5UGx1Z2luLCByZWZsb3cgfSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICd0b2FzdCdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLnRvYXN0J1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcblxuY29uc3QgRVZFTlRfTU9VU0VPVkVSID0gYG1vdXNlb3ZlciR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX01PVVNFT1VUID0gYG1vdXNlb3V0JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfRk9DVVNJTiA9IGBmb2N1c2luJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfRk9DVVNPVVQgPSBgZm9jdXNvdXQke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURFID0gYGhpZGUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURERU4gPSBgaGlkZGVuJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPVyA9IGBzaG93JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPV04gPSBgc2hvd24ke0VWRU5UX0tFWX1gXG5cbmNvbnN0IENMQVNTX05BTUVfRkFERSA9ICdmYWRlJ1xuY29uc3QgQ0xBU1NfTkFNRV9ISURFID0gJ2hpZGUnIC8vIEBkZXByZWNhdGVkIC0ga2VwdCBoZXJlIG9ubHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5jb25zdCBDTEFTU19OQU1FX1NIT1cgPSAnc2hvdydcbmNvbnN0IENMQVNTX05BTUVfU0hPV0lORyA9ICdzaG93aW5nJ1xuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYW5pbWF0aW9uOiAnYm9vbGVhbicsXG4gIGF1dG9oaWRlOiAnYm9vbGVhbicsXG4gIGRlbGF5OiAnbnVtYmVyJ1xufVxuXG5jb25zdCBEZWZhdWx0ID0ge1xuICBhbmltYXRpb246IHRydWUsXG4gIGF1dG9oaWRlOiB0cnVlLFxuICBkZWxheTogNTAwMFxufVxuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBUb2FzdCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50LCBjb25maWcpIHtcbiAgICBzdXBlcihlbGVtZW50LCBjb25maWcpXG5cbiAgICB0aGlzLl90aW1lb3V0ID0gbnVsbFxuICAgIHRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb24gPSBmYWxzZVxuICAgIHRoaXMuX2hhc0tleWJvYXJkSW50ZXJhY3Rpb24gPSBmYWxzZVxuICAgIHRoaXMuX3NldExpc3RlbmVycygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHNob3coKSB7XG4gICAgY29uc3Qgc2hvd0V2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPVylcblxuICAgIGlmIChzaG93RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJUaW1lb3V0KClcblxuICAgIGlmICh0aGlzLl9jb25maWcuYW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9GQURFKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfU0hPV0lORylcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1dOKVxuXG4gICAgICB0aGlzLl9tYXliZVNjaGVkdWxlSGlkZSgpXG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfSElERSkgLy8gQGRlcHJlY2F0ZWRcbiAgICByZWZsb3codGhpcy5fZWxlbWVudClcbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9TSE9XLCBDTEFTU19OQU1FX1NIT1dJTkcpXG5cbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKGNvbXBsZXRlLCB0aGlzLl9lbGVtZW50LCB0aGlzLl9jb25maWcuYW5pbWF0aW9uKVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bigpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBoaWRlRXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURFKVxuXG4gICAgaWYgKGhpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBjb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0hJREUpIC8vIEBkZXByZWNhdGVkXG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XSU5HLCBDTEFTU19OQU1FX1NIT1cpXG4gICAgICBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURERU4pXG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfU0hPV0lORylcbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKGNvbXBsZXRlLCB0aGlzLl9lbGVtZW50LCB0aGlzLl9jb25maWcuYW5pbWF0aW9uKVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLl9jbGVhclRpbWVvdXQoKVxuXG4gICAgaWYgKHRoaXMuaXNTaG93bigpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuICAgIH1cblxuICAgIHN1cGVyLmRpc3Bvc2UoKVxuICB9XG5cbiAgaXNTaG93bigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TSE9XKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuXG4gIF9tYXliZVNjaGVkdWxlSGlkZSgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5hdXRvaGlkZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb24gfHwgdGhpcy5faGFzS2V5Ym9hcmRJbnRlcmFjdGlvbikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5oaWRlKClcbiAgICB9LCB0aGlzLl9jb25maWcuZGVsYXkpXG4gIH1cblxuICBfb25JbnRlcmFjdGlvbihldmVudCwgaXNJbnRlcmFjdGluZykge1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnbW91c2VvdmVyJzpcbiAgICAgIGNhc2UgJ21vdXNlb3V0Jzoge1xuICAgICAgICB0aGlzLl9oYXNNb3VzZUludGVyYWN0aW9uID0gaXNJbnRlcmFjdGluZ1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdmb2N1c2luJzpcbiAgICAgIGNhc2UgJ2ZvY3Vzb3V0Jzoge1xuICAgICAgICB0aGlzLl9oYXNLZXlib2FyZEludGVyYWN0aW9uID0gaXNJbnRlcmFjdGluZ1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSW50ZXJhY3RpbmcpIHtcbiAgICAgIHRoaXMuX2NsZWFyVGltZW91dCgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBuZXh0RWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXRcbiAgICBpZiAodGhpcy5fZWxlbWVudCA9PT0gbmV4dEVsZW1lbnQgfHwgdGhpcy5fZWxlbWVudC5jb250YWlucyhuZXh0RWxlbWVudCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX21heWJlU2NoZWR1bGVIaWRlKClcbiAgfVxuXG4gIF9zZXRMaXN0ZW5lcnMoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX01PVVNFT1ZFUiwgZXZlbnQgPT4gdGhpcy5fb25JbnRlcmFjdGlvbihldmVudCwgdHJ1ZSkpXG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX01PVVNFT1VULCBldmVudCA9PiB0aGlzLl9vbkludGVyYWN0aW9uKGV2ZW50LCBmYWxzZSkpXG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0ZPQ1VTSU4sIGV2ZW50ID0+IHRoaXMuX29uSW50ZXJhY3Rpb24oZXZlbnQsIHRydWUpKVxuICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9GT0NVU09VVCwgZXZlbnQgPT4gdGhpcy5fb25JbnRlcmFjdGlvbihldmVudCwgZmFsc2UpKVxuICB9XG5cbiAgX2NsZWFyVGltZW91dCgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dClcbiAgICB0aGlzLl90aW1lb3V0ID0gbnVsbFxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gVG9hc3QuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke2NvbmZpZ31cImApXG4gICAgICAgIH1cblxuICAgICAgICBkYXRhW2NvbmZpZ10odGhpcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5lbmFibGVEaXNtaXNzVHJpZ2dlcihUb2FzdClcblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oVG9hc3QpXG5cbmV4cG9ydCBkZWZhdWx0IFRvYXN0XG4iLCAiLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9wYWNrYWdlcy5odG1sI3BhY2thZ2VzX3dyaXRpbmdfZHVhbF9wYWNrYWdlc193aGlsZV9hdm9pZGluZ19vcl9taW5pbWl6aW5nX2hhemFyZHNcbmltcG9ydCBIaWdobGlnaHRKUyBmcm9tICcuLi9saWIvaW5kZXguanMnO1xuZXhwb3J0IHsgSGlnaGxpZ2h0SlMgfTtcbmV4cG9ydCBkZWZhdWx0IEhpZ2hsaWdodEpTO1xuIiwgImltcG9ydCAkIGZyb20gXCJqcXVlcnlcIlxuXG4kKGZ1bmN0aW9uICgpIHtcbiAgJChcInNlbGVjdC50cmVlXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgZG9jdW1lbnQubG9jYXRpb24gPSB0aGlzLnZhbHVlO1xuICB9KTtcbn0pO1xuIiwgImltcG9ydCAkIGZyb20gXCJqcXVlcnlcIjtcbmltcG9ydCBrbXhfY29sb3JzIGZyb20gXCIuL2tteF9jb2xvcnNcIjtcblxuZnVuY3Rpb24gZ2V0UmFuZG9tSW50KG1heCkge1xuICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbWF4KTtcbn1cblxuJChmdW5jdGlvbigpIHtcbiAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgaSA9IGdldFJhbmRvbUludChrbXhfY29sb3JzLmluZGV4Lmxlbmd0aCk7XG4gICAgY29uc3QgbmFtZSA9IGtteF9jb2xvcnMuaW5kZXhbaV07XG4gICAgY29uc3QgY29sb3IgPSBrbXhfY29sb3JzW25hbWVdO1xuICAgIGNvbnN0IHggPSAoZ2V0UmFuZG9tSW50KDk5KSAtIDQ4KSAqIDAuMDAyO1xuICAgICQoXCJhXCIpLmNzcyhcInRleHQtc2hhZG93XCIsIFwiMCAwIDBcIik7XG4gICAgJChcImE6aG92ZXJcIikuY3NzKFwidGV4dC1zaGFkb3dcIiwgeCArIFwiZW0gMCAwIFwiICsgY29sb3IpO1xuICB9LCAyMDApO1xufSk7XG4iLCAiY29uc3Qga214X2NvbG9ycyA9IHtcbiAgXCJrbXgtYmxhY2tcIjogICBcIiMxZTFmMWRcIixcbiAgXCJrbXgtYmx1ZVwiOiAgICBcIiM1YTYwZjlcIixcbiAgXCJrbXgtYmx1ZTFcIjogICBcIiM2ZjcyZjlcIixcbiAgXCJrbXgtYmx1ZTJcIjogICBcIiM5Yzk5ZmRcIixcbiAgXCJrbXgtYmx1ZTNcIjogICBcIiM1YTYwZjlcIixcbiAgXCJrbXgtYmx1ZTRcIjogICBcIiM2ZjcyZjlcIixcbiAgXCJrbXgtYmx1ZTVcIjogICBcIiM5Yzk5ZmRcIixcbiAgXCJpbmRleFwiOiBbXG4gICAgXCJrbXgtYmxhY2tcIixcbiAgICBcImtteC1ibHVlXCIsXG4gICAgXCJrbXgtYmx1ZTFcIixcbiAgICBcImtteC1ibHVlMlwiLFxuICAgIFwia214LWJsdWUzXCIsXG4gICAgXCJrbXgtYmx1ZTRcIixcbiAgICBcImtteC1ibHVlNVwiLFxuICAgIFwia214LWN5YW5cIixcbiAgICBcImtteC1jeWFuMVwiLFxuICAgIFwia214LWdyZWVuXCIsXG4gICAgXCJrbXgtZ3JlZW4xXCIsXG4gICAgXCJrbXgtb3JhbmdlXCIsXG4gICAgXCJrbXgtb3JhbmdlMVwiLFxuICAgIFwia214LW9yYW5nZTJcIixcbiAgICBcImtteC1waW5rXCIsXG4gICAgXCJrbXgtd2hpdGVcIixcbiAgICBcImtteC13aGl0ZTFcIixcbiAgICBcImtteC13aGl0ZTJcIixcbiAgICBcImtteC15ZWxsb3dcIixcbiAgICBcImtteC15ZWxsb3cxXCIsXG4gICAgXCJrbXgteWVsbG93MlwiLFxuICAgIFwia214LXllbGxvdzNcIlxuICBdLFxuICBcImtteC1jeWFuXCI6ICAgIFwiI2Q0ZjNmNlwiLFxuICBcImtteC1jeWFuMVwiOiAgIFwiI2Q0ZjNmNlwiLFxuICBcImtteC1ncmVlblwiOiAgIFwiI2M0ZWQzYVwiLFxuICBcImtteC1ncmVlbjFcIjogIFwiI2M0ZWQzYVwiLFxuICBcImtteC1vcmFuZ2VcIjogIFwiI2Y4NjgxY1wiLFxuICBcImtteC1vcmFuZ2UxXCI6IFwiI2ZhNzczNFwiLFxuICBcImtteC1vcmFuZ2UyXCI6IFwiI2ZmYTUzMlwiLFxuICBcImtteC1waW5rXCI6ICAgIFwiI2ZjOWVmOVwiLFxuICBcImtteC13aGl0ZVwiOiAgIFwiI2Y1ZjhmNFwiLFxuICBcImtteC13aGl0ZTFcIjogIFwiI2ZmZjlmMlwiLFxuICBcImtteC13aGl0ZTJcIjogIFwiI2ZmZmZmZlwiLFxuICBcImtteC15ZWxsb3dcIjogIFwiI2VjZmU0OVwiLFxuICBcImtteC15ZWxsb3cxXCI6IFwiI2ZmZjQzZVwiLFxuICBcImtteC15ZWxsb3cyXCI6ICBcIiNlY2ZlNDlcIixcbiAgXCJrbXgteWVsbG93M1wiOiBcIiNmZmY0M2VcIlxufTtcbmV4cG9ydCBkZWZhdWx0IGtteF9jb2xvcnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5cbihmdW5jdGlvbigpIHtcbiAgdmFyIFBvbHlmaWxsRXZlbnQgPSBldmVudENvbnN0cnVjdG9yKCk7XG5cbiAgZnVuY3Rpb24gZXZlbnRDb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdy5DdXN0b21FdmVudCA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gd2luZG93LkN1c3RvbUV2ZW50O1xuICAgIC8vIElFPD05IFN1cHBvcnRcbiAgICBmdW5jdGlvbiBDdXN0b21FdmVudChldmVudCwgcGFyYW1zKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMgfHwge2J1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiB1bmRlZmluZWR9O1xuICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgICAgZXZ0LmluaXRDdXN0b21FdmVudChldmVudCwgcGFyYW1zLmJ1YmJsZXMsIHBhcmFtcy5jYW5jZWxhYmxlLCBwYXJhbXMuZGV0YWlsKTtcbiAgICAgIHJldHVybiBldnQ7XG4gICAgfVxuICAgIEN1c3RvbUV2ZW50LnByb3RvdHlwZSA9IHdpbmRvdy5FdmVudC5wcm90b3R5cGU7XG4gICAgcmV0dXJuIEN1c3RvbUV2ZW50O1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRIaWRkZW5JbnB1dChuYW1lLCB2YWx1ZSkge1xuICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcbiAgICBpbnB1dC50eXBlID0gXCJoaWRkZW5cIjtcbiAgICBpbnB1dC5uYW1lID0gbmFtZTtcbiAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKGVsZW1lbnQsIHRhcmdldE1vZGlmaWVyS2V5KSB7XG4gICAgdmFyIHRvID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRvXCIpLFxuICAgICAgICBtZXRob2QgPSBidWlsZEhpZGRlbklucHV0KFwiX21ldGhvZFwiLCBlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtbWV0aG9kXCIpKSxcbiAgICAgICAgY3NyZiA9IGJ1aWxkSGlkZGVuSW5wdXQoXCJfY3NyZl90b2tlblwiLCBlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtY3NyZlwiKSksXG4gICAgICAgIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiKSxcbiAgICAgICAgc3VibWl0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpLFxuICAgICAgICB0YXJnZXQgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcInRhcmdldFwiKTtcblxuICAgIGZvcm0ubWV0aG9kID0gKGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1tZXRob2RcIikgPT09IFwiZ2V0XCIpID8gXCJnZXRcIiA6IFwicG9zdFwiO1xuICAgIGZvcm0uYWN0aW9uID0gdG87XG4gICAgZm9ybS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG5cbiAgICBpZiAodGFyZ2V0KSBmb3JtLnRhcmdldCA9IHRhcmdldDtcbiAgICBlbHNlIGlmICh0YXJnZXRNb2RpZmllcktleSkgZm9ybS50YXJnZXQgPSBcIl9ibGFua1wiO1xuXG4gICAgZm9ybS5hcHBlbmRDaGlsZChjc3JmKTtcbiAgICBmb3JtLmFwcGVuZENoaWxkKG1ldGhvZCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcblxuICAgIC8vIEluc2VydCBhIGJ1dHRvbiBhbmQgY2xpY2sgaXQgaW5zdGVhZCBvZiB1c2luZyBgZm9ybS5zdWJtaXRgXG4gICAgLy8gYmVjYXVzZSB0aGUgYHN1Ym1pdGAgZnVuY3Rpb24gZG9lcyBub3QgZW1pdCBhIGBzdWJtaXRgIGV2ZW50LlxuICAgIHN1Ym1pdC50eXBlID0gXCJzdWJtaXRcIjtcbiAgICBmb3JtLmFwcGVuZENoaWxkKHN1Ym1pdCk7XG4gICAgc3VibWl0LmNsaWNrKCk7XG4gIH1cblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uKGUpIHtcbiAgICB2YXIgZWxlbWVudCA9IGUudGFyZ2V0O1xuICAgIGlmIChlLmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcblxuICAgIHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQuZ2V0QXR0cmlidXRlKSB7XG4gICAgICB2YXIgcGhvZW5peExpbmtFdmVudCA9IG5ldyBQb2x5ZmlsbEV2ZW50KCdwaG9lbml4LmxpbmsuY2xpY2snLCB7XG4gICAgICAgIFwiYnViYmxlc1wiOiB0cnVlLCBcImNhbmNlbGFibGVcIjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghZWxlbWVudC5kaXNwYXRjaEV2ZW50KHBob2VuaXhMaW5rRXZlbnQpKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW1ldGhvZFwiKSkge1xuICAgICAgICBoYW5kbGVDbGljayhlbGVtZW50LCBlLm1ldGFLZXkgfHwgZS5zaGlmdEtleSk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIGZhbHNlKTtcblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGhvZW5peC5saW5rLmNsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgbWVzc2FnZSA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtY29uZmlybVwiKTtcbiAgICBpZihtZXNzYWdlICYmICF3aW5kb3cuY29uZmlybShtZXNzYWdlKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfSwgZmFsc2UpO1xufSkoKTtcbiIsICIvLyB3cmFwcyB2YWx1ZSBpbiBjbG9zdXJlIG9yIHJldHVybnMgY2xvc3VyZVxuZXhwb3J0IGxldCBjbG9zdXJlID0gKHZhbHVlKSA9PiB7XG4gIGlmKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiKXtcbiAgICByZXR1cm4gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBsZXQgY2xvc3VyZSA9IGZ1bmN0aW9uICgpeyByZXR1cm4gdmFsdWUgfVxuICAgIHJldHVybiBjbG9zdXJlXG4gIH1cbn1cbiIsICJleHBvcnQgY29uc3QgZ2xvYmFsU2VsZiA9IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IG51bGxcbmV4cG9ydCBjb25zdCBwaHhXaW5kb3cgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDogbnVsbFxuZXhwb3J0IGNvbnN0IGdsb2JhbCA9IGdsb2JhbFNlbGYgfHwgcGh4V2luZG93IHx8IGdsb2JhbFxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVlNOID0gXCIyLjAuMFwiXG5leHBvcnQgY29uc3QgU09DS0VUX1NUQVRFUyA9IHtjb25uZWN0aW5nOiAwLCBvcGVuOiAxLCBjbG9zaW5nOiAyLCBjbG9zZWQ6IDN9XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FT1VUID0gMTAwMDBcbmV4cG9ydCBjb25zdCBXU19DTE9TRV9OT1JNQUwgPSAxMDAwXG5leHBvcnQgY29uc3QgQ0hBTk5FTF9TVEFURVMgPSB7XG4gIGNsb3NlZDogXCJjbG9zZWRcIixcbiAgZXJyb3JlZDogXCJlcnJvcmVkXCIsXG4gIGpvaW5lZDogXCJqb2luZWRcIixcbiAgam9pbmluZzogXCJqb2luaW5nXCIsXG4gIGxlYXZpbmc6IFwibGVhdmluZ1wiLFxufVxuZXhwb3J0IGNvbnN0IENIQU5ORUxfRVZFTlRTID0ge1xuICBjbG9zZTogXCJwaHhfY2xvc2VcIixcbiAgZXJyb3I6IFwicGh4X2Vycm9yXCIsXG4gIGpvaW46IFwicGh4X2pvaW5cIixcbiAgcmVwbHk6IFwicGh4X3JlcGx5XCIsXG4gIGxlYXZlOiBcInBoeF9sZWF2ZVwiXG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU1BPUlRTID0ge1xuICBsb25ncG9sbDogXCJsb25ncG9sbFwiLFxuICB3ZWJzb2NrZXQ6IFwid2Vic29ja2V0XCJcbn1cbmV4cG9ydCBjb25zdCBYSFJfU1RBVEVTID0ge1xuICBjb21wbGV0ZTogNFxufVxuIiwgIi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIFB1c2hcbiAqIEBwYXJhbSB7Q2hhbm5lbH0gY2hhbm5lbCAtIFRoZSBDaGFubmVsXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQsIGZvciBleGFtcGxlIGBcInBoeF9qb2luXCJgXG4gKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZCAtIFRoZSBwYXlsb2FkLCBmb3IgZXhhbXBsZSBge3VzZXJfaWQ6IDEyM31gXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZW91dCAtIFRoZSBwdXNoIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1c2gge1xuICBjb25zdHJ1Y3RvcihjaGFubmVsLCBldmVudCwgcGF5bG9hZCwgdGltZW91dCl7XG4gICAgdGhpcy5jaGFubmVsID0gY2hhbm5lbFxuICAgIHRoaXMuZXZlbnQgPSBldmVudFxuICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQgfHwgZnVuY3Rpb24gKCl7IHJldHVybiB7fSB9XG4gICAgdGhpcy5yZWNlaXZlZFJlc3AgPSBudWxsXG4gICAgdGhpcy50aW1lb3V0ID0gdGltZW91dFxuICAgIHRoaXMudGltZW91dFRpbWVyID0gbnVsbFxuICAgIHRoaXMucmVjSG9va3MgPSBbXVxuICAgIHRoaXMuc2VudCA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVvdXRcbiAgICovXG4gIHJlc2VuZCh0aW1lb3V0KXtcbiAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgdGhpcy5yZXNldCgpXG4gICAgdGhpcy5zZW5kKClcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgc2VuZCgpe1xuICAgIGlmKHRoaXMuaGFzUmVjZWl2ZWQoXCJ0aW1lb3V0XCIpKXsgcmV0dXJuIH1cbiAgICB0aGlzLnN0YXJ0VGltZW91dCgpXG4gICAgdGhpcy5zZW50ID0gdHJ1ZVxuICAgIHRoaXMuY2hhbm5lbC5zb2NrZXQucHVzaCh7XG4gICAgICB0b3BpYzogdGhpcy5jaGFubmVsLnRvcGljLFxuICAgICAgZXZlbnQ6IHRoaXMuZXZlbnQsXG4gICAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQoKSxcbiAgICAgIHJlZjogdGhpcy5yZWYsXG4gICAgICBqb2luX3JlZjogdGhpcy5jaGFubmVsLmpvaW5SZWYoKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHsqfSBzdGF0dXNcbiAgICogQHBhcmFtIHsqfSBjYWxsYmFja1xuICAgKi9cbiAgcmVjZWl2ZShzdGF0dXMsIGNhbGxiYWNrKXtcbiAgICBpZih0aGlzLmhhc1JlY2VpdmVkKHN0YXR1cykpe1xuICAgICAgY2FsbGJhY2sodGhpcy5yZWNlaXZlZFJlc3AucmVzcG9uc2UpXG4gICAgfVxuXG4gICAgdGhpcy5yZWNIb29rcy5wdXNoKHtzdGF0dXMsIGNhbGxiYWNrfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICByZXNldCgpe1xuICAgIHRoaXMuY2FuY2VsUmVmRXZlbnQoKVxuICAgIHRoaXMucmVmID0gbnVsbFxuICAgIHRoaXMucmVmRXZlbnQgPSBudWxsXG4gICAgdGhpcy5yZWNlaXZlZFJlc3AgPSBudWxsXG4gICAgdGhpcy5zZW50ID0gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgbWF0Y2hSZWNlaXZlKHtzdGF0dXMsIHJlc3BvbnNlLCBfcmVmfSl7XG4gICAgdGhpcy5yZWNIb29rcy5maWx0ZXIoaCA9PiBoLnN0YXR1cyA9PT0gc3RhdHVzKVxuICAgICAgLmZvckVhY2goaCA9PiBoLmNhbGxiYWNrKHJlc3BvbnNlKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY2FuY2VsUmVmRXZlbnQoKXtcbiAgICBpZighdGhpcy5yZWZFdmVudCl7IHJldHVybiB9XG4gICAgdGhpcy5jaGFubmVsLm9mZih0aGlzLnJlZkV2ZW50KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjYW5jZWxUaW1lb3V0KCl7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFRpbWVyKVxuICAgIHRoaXMudGltZW91dFRpbWVyID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdGFydFRpbWVvdXQoKXtcbiAgICBpZih0aGlzLnRpbWVvdXRUaW1lcil7IHRoaXMuY2FuY2VsVGltZW91dCgpIH1cbiAgICB0aGlzLnJlZiA9IHRoaXMuY2hhbm5lbC5zb2NrZXQubWFrZVJlZigpXG4gICAgdGhpcy5yZWZFdmVudCA9IHRoaXMuY2hhbm5lbC5yZXBseUV2ZW50TmFtZSh0aGlzLnJlZilcblxuICAgIHRoaXMuY2hhbm5lbC5vbih0aGlzLnJlZkV2ZW50LCBwYXlsb2FkID0+IHtcbiAgICAgIHRoaXMuY2FuY2VsUmVmRXZlbnQoKVxuICAgICAgdGhpcy5jYW5jZWxUaW1lb3V0KClcbiAgICAgIHRoaXMucmVjZWl2ZWRSZXNwID0gcGF5bG9hZFxuICAgICAgdGhpcy5tYXRjaFJlY2VpdmUocGF5bG9hZClcbiAgICB9KVxuXG4gICAgdGhpcy50aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlcihcInRpbWVvdXRcIiwge30pXG4gICAgfSwgdGhpcy50aW1lb3V0KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBoYXNSZWNlaXZlZChzdGF0dXMpe1xuICAgIHJldHVybiB0aGlzLnJlY2VpdmVkUmVzcCAmJiB0aGlzLnJlY2VpdmVkUmVzcC5zdGF0dXMgPT09IHN0YXR1c1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB0cmlnZ2VyKHN0YXR1cywgcmVzcG9uc2Upe1xuICAgIHRoaXMuY2hhbm5lbC50cmlnZ2VyKHRoaXMucmVmRXZlbnQsIHtzdGF0dXMsIHJlc3BvbnNlfSlcbiAgfVxufVxuIiwgIi8qKlxuICpcbiAqIENyZWF0ZXMgYSB0aW1lciB0aGF0IGFjY2VwdHMgYSBgdGltZXJDYWxjYCBmdW5jdGlvbiB0byBwZXJmb3JtXG4gKiBjYWxjdWxhdGVkIHRpbWVvdXQgcmV0cmllcywgc3VjaCBhcyBleHBvbmVudGlhbCBiYWNrb2ZmLlxuICpcbiAqIEBleGFtcGxlXG4gKiBsZXQgcmVjb25uZWN0VGltZXIgPSBuZXcgVGltZXIoKCkgPT4gdGhpcy5jb25uZWN0KCksIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgcmV0dXJuIFsxMDAwLCA1MDAwLCAxMDAwMF1bdHJpZXMgLSAxXSB8fCAxMDAwMFxuICogfSlcbiAqIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcbiAqIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDUwMDBcbiAqIHJlY29ubmVjdFRpbWVyLnJlc2V0KClcbiAqIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHtGdW5jdGlvbn0gdGltZXJDYWxjXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpbWVyIHtcbiAgY29uc3RydWN0b3IoY2FsbGJhY2ssIHRpbWVyQ2FsYyl7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgdGhpcy50aW1lckNhbGMgPSB0aW1lckNhbGNcbiAgICB0aGlzLnRpbWVyID0gbnVsbFxuICAgIHRoaXMudHJpZXMgPSAwXG4gIH1cblxuICByZXNldCgpe1xuICAgIHRoaXMudHJpZXMgPSAwXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyBhbnkgcHJldmlvdXMgc2NoZWR1bGVUaW1lb3V0IGFuZCBzY2hlZHVsZXMgY2FsbGJhY2tcbiAgICovXG4gIHNjaGVkdWxlVGltZW91dCgpe1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxuXG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50cmllcyA9IHRoaXMudHJpZXMgKyAxXG4gICAgICB0aGlzLmNhbGxiYWNrKClcbiAgICB9LCB0aGlzLnRpbWVyQ2FsYyh0aGlzLnRyaWVzICsgMSkpXG4gIH1cbn1cbiIsICJpbXBvcnQge2Nsb3N1cmV9IGZyb20gXCIuL3V0aWxzXCJcbmltcG9ydCB7XG4gIENIQU5ORUxfRVZFTlRTLFxuICBDSEFOTkVMX1NUQVRFUyxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IFB1c2ggZnJvbSBcIi4vcHVzaFwiXG5pbXBvcnQgVGltZXIgZnJvbSBcIi4vdGltZXJcIlxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9waWNcbiAqIEBwYXJhbSB7KE9iamVjdHxmdW5jdGlvbil9IHBhcmFtc1xuICogQHBhcmFtIHtTb2NrZXR9IHNvY2tldFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaGFubmVsIHtcbiAgY29uc3RydWN0b3IodG9waWMsIHBhcmFtcywgc29ja2V0KXtcbiAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuY2xvc2VkXG4gICAgdGhpcy50b3BpYyA9IHRvcGljXG4gICAgdGhpcy5wYXJhbXMgPSBjbG9zdXJlKHBhcmFtcyB8fCB7fSlcbiAgICB0aGlzLnNvY2tldCA9IHNvY2tldFxuICAgIHRoaXMuYmluZGluZ3MgPSBbXVxuICAgIHRoaXMuYmluZGluZ1JlZiA9IDBcbiAgICB0aGlzLnRpbWVvdXQgPSB0aGlzLnNvY2tldC50aW1lb3V0XG4gICAgdGhpcy5qb2luZWRPbmNlID0gZmFsc2VcbiAgICB0aGlzLmpvaW5QdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMuam9pbiwgdGhpcy5wYXJhbXMsIHRoaXMudGltZW91dClcbiAgICB0aGlzLnB1c2hCdWZmZXIgPSBbXVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VSZWZzID0gW11cblxuICAgIHRoaXMucmVqb2luVGltZXIgPSBuZXcgVGltZXIoKCkgPT4ge1xuICAgICAgaWYodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSl7IHRoaXMucmVqb2luKCkgfVxuICAgIH0sIHRoaXMuc29ja2V0LnJlam9pbkFmdGVyTXMpXG4gICAgdGhpcy5zdGF0ZUNoYW5nZVJlZnMucHVzaCh0aGlzLnNvY2tldC5vbkVycm9yKCgpID0+IHRoaXMucmVqb2luVGltZXIucmVzZXQoKSkpXG4gICAgdGhpcy5zdGF0ZUNoYW5nZVJlZnMucHVzaCh0aGlzLnNvY2tldC5vbk9wZW4oKCkgPT4ge1xuICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpXG4gICAgICBpZih0aGlzLmlzRXJyb3JlZCgpKXsgdGhpcy5yZWpvaW4oKSB9XG4gICAgfSlcbiAgICApXG4gICAgdGhpcy5qb2luUHVzaC5yZWNlaXZlKFwib2tcIiwgKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmpvaW5lZFxuICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpXG4gICAgICB0aGlzLnB1c2hCdWZmZXIuZm9yRWFjaChwdXNoRXZlbnQgPT4gcHVzaEV2ZW50LnNlbmQoKSlcbiAgICAgIHRoaXMucHVzaEJ1ZmZlciA9IFtdXG4gICAgfSlcbiAgICB0aGlzLmpvaW5QdXNoLnJlY2VpdmUoXCJlcnJvclwiLCAoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZFxuICAgICAgaWYodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSl7IHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgfVxuICAgIH0pXG4gICAgdGhpcy5vbkNsb3NlKCgpID0+IHtcbiAgICAgIHRoaXMucmVqb2luVGltZXIucmVzZXQoKVxuICAgICAgaWYodGhpcy5zb2NrZXQuaGFzTG9nZ2VyKCkpIHRoaXMuc29ja2V0LmxvZyhcImNoYW5uZWxcIiwgYGNsb3NlICR7dGhpcy50b3BpY30gJHt0aGlzLmpvaW5SZWYoKX1gKVxuICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmNsb3NlZFxuICAgICAgdGhpcy5zb2NrZXQucmVtb3ZlKHRoaXMpXG4gICAgfSlcbiAgICB0aGlzLm9uRXJyb3IocmVhc29uID0+IHtcbiAgICAgIGlmKHRoaXMuc29ja2V0Lmhhc0xvZ2dlcigpKSB0aGlzLnNvY2tldC5sb2coXCJjaGFubmVsXCIsIGBlcnJvciAke3RoaXMudG9waWN9YCwgcmVhc29uKVxuICAgICAgaWYodGhpcy5pc0pvaW5pbmcoKSl7IHRoaXMuam9pblB1c2gucmVzZXQoKSB9XG4gICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZFxuICAgICAgaWYodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSl7IHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgfVxuICAgIH0pXG4gICAgdGhpcy5qb2luUHVzaC5yZWNlaXZlKFwidGltZW91dFwiLCAoKSA9PiB7XG4gICAgICBpZih0aGlzLnNvY2tldC5oYXNMb2dnZXIoKSkgdGhpcy5zb2NrZXQubG9nKFwiY2hhbm5lbFwiLCBgdGltZW91dCAke3RoaXMudG9waWN9ICgke3RoaXMuam9pblJlZigpfSlgLCB0aGlzLmpvaW5QdXNoLnRpbWVvdXQpXG4gICAgICBsZXQgbGVhdmVQdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMubGVhdmUsIGNsb3N1cmUoe30pLCB0aGlzLnRpbWVvdXQpXG4gICAgICBsZWF2ZVB1c2guc2VuZCgpXG4gICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZFxuICAgICAgdGhpcy5qb2luUHVzaC5yZXNldCgpXG4gICAgICBpZih0aGlzLnNvY2tldC5pc0Nvbm5lY3RlZCgpKXsgdGhpcy5yZWpvaW5UaW1lci5zY2hlZHVsZVRpbWVvdXQoKSB9XG4gICAgfSlcbiAgICB0aGlzLm9uKENIQU5ORUxfRVZFTlRTLnJlcGx5LCAocGF5bG9hZCwgcmVmKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIodGhpcy5yZXBseUV2ZW50TmFtZShyZWYpLCBwYXlsb2FkKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogSm9pbiB0aGUgY2hhbm5lbFxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWVvdXRcbiAgICogQHJldHVybnMge1B1c2h9XG4gICAqL1xuICBqb2luKHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpe1xuICAgIGlmKHRoaXMuam9pbmVkT25jZSl7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0cmllZCB0byBqb2luIG11bHRpcGxlIHRpbWVzLiAnam9pbicgY2FuIG9ubHkgYmUgY2FsbGVkIGEgc2luZ2xlIHRpbWUgcGVyIGNoYW5uZWwgaW5zdGFuY2VcIilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50aW1lb3V0ID0gdGltZW91dFxuICAgICAgdGhpcy5qb2luZWRPbmNlID0gdHJ1ZVxuICAgICAgdGhpcy5yZWpvaW4oKVxuICAgICAgcmV0dXJuIHRoaXMuam9pblB1c2hcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSG9vayBpbnRvIGNoYW5uZWwgY2xvc2VcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIG9uQ2xvc2UoY2FsbGJhY2spe1xuICAgIHRoaXMub24oQ0hBTk5FTF9FVkVOVFMuY2xvc2UsIGNhbGxiYWNrKVxuICB9XG5cbiAgLyoqXG4gICAqIEhvb2sgaW50byBjaGFubmVsIGVycm9yc1xuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICAgKi9cbiAgb25FcnJvcihjYWxsYmFjayl7XG4gICAgcmV0dXJuIHRoaXMub24oQ0hBTk5FTF9FVkVOVFMuZXJyb3IsIHJlYXNvbiA9PiBjYWxsYmFjayhyZWFzb24pKVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgb24gY2hhbm5lbCBldmVudHNcbiAgICpcbiAgICogU3Vic2NyaXB0aW9uIHJldHVybnMgYSByZWYgY291bnRlciwgd2hpY2ggY2FuIGJlIHVzZWQgbGF0ZXIgdG9cbiAgICogdW5zdWJzY3JpYmUgdGhlIGV4YWN0IGV2ZW50IGxpc3RlbmVyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJlZjEgPSBjaGFubmVsLm9uKFwiZXZlbnRcIiwgZG9fc3R1ZmYpXG4gICAqIGNvbnN0IHJlZjIgPSBjaGFubmVsLm9uKFwiZXZlbnRcIiwgZG9fb3RoZXJfc3R1ZmYpXG4gICAqIGNoYW5uZWwub2ZmKFwiZXZlbnRcIiwgcmVmMSlcbiAgICogLy8gU2luY2UgdW5zdWJzY3JpcHRpb24sIGRvX3N0dWZmIHdvbid0IGZpcmUsXG4gICAqIC8vIHdoaWxlIGRvX290aGVyX3N0dWZmIHdpbGwga2VlcCBmaXJpbmcgb24gdGhlIFwiZXZlbnRcIlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICogQHJldHVybnMge2ludGVnZXJ9IHJlZlxuICAgKi9cbiAgb24oZXZlbnQsIGNhbGxiYWNrKXtcbiAgICBsZXQgcmVmID0gdGhpcy5iaW5kaW5nUmVmKytcbiAgICB0aGlzLmJpbmRpbmdzLnB1c2goe2V2ZW50LCByZWYsIGNhbGxiYWNrfSlcbiAgICByZXR1cm4gcmVmXG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmVzIG9mZiBvZiBjaGFubmVsIGV2ZW50c1xuICAgKlxuICAgKiBVc2UgdGhlIHJlZiByZXR1cm5lZCBmcm9tIGEgY2hhbm5lbC5vbigpIHRvIHVuc3Vic2NyaWJlIG9uZVxuICAgKiBoYW5kbGVyLCBvciBwYXNzIG5vdGhpbmcgZm9yIHRoZSByZWYgdG8gdW5zdWJzY3JpYmUgYWxsXG4gICAqIGhhbmRsZXJzIGZvciB0aGUgZ2l2ZW4gZXZlbnQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFVuc3Vic2NyaWJlIHRoZSBkb19zdHVmZiBoYW5kbGVyXG4gICAqIGNvbnN0IHJlZjEgPSBjaGFubmVsLm9uKFwiZXZlbnRcIiwgZG9fc3R1ZmYpXG4gICAqIGNoYW5uZWwub2ZmKFwiZXZlbnRcIiwgcmVmMSlcbiAgICpcbiAgICogLy8gVW5zdWJzY3JpYmUgYWxsIGhhbmRsZXJzIGZyb20gZXZlbnRcbiAgICogY2hhbm5lbC5vZmYoXCJldmVudFwiKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSByZWZcbiAgICovXG4gIG9mZihldmVudCwgcmVmKXtcbiAgICB0aGlzLmJpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5maWx0ZXIoKGJpbmQpID0+IHtcbiAgICAgIHJldHVybiAhKGJpbmQuZXZlbnQgPT09IGV2ZW50ICYmICh0eXBlb2YgcmVmID09PSBcInVuZGVmaW5lZFwiIHx8IHJlZiA9PT0gYmluZC5yZWYpKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNhblB1c2goKXsgcmV0dXJuIHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkgJiYgdGhpcy5pc0pvaW5lZCgpIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBtZXNzYWdlIGBldmVudGAgdG8gcGhvZW5peCB3aXRoIHRoZSBwYXlsb2FkIGBwYXlsb2FkYC5cbiAgICogUGhvZW5peCByZWNlaXZlcyB0aGlzIGluIHRoZSBgaGFuZGxlX2luKGV2ZW50LCBwYXlsb2FkLCBzb2NrZXQpYFxuICAgKiBmdW5jdGlvbi4gaWYgcGhvZW5peCByZXBsaWVzIG9yIGl0IHRpbWVzIG91dCAoZGVmYXVsdCAxMDAwMG1zKSxcbiAgICogdGhlbiBvcHRpb25hbGx5IHRoZSByZXBseSBjYW4gYmUgcmVjZWl2ZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNoYW5uZWwucHVzaChcImV2ZW50XCIpXG4gICAqICAgLnJlY2VpdmUoXCJva1wiLCBwYXlsb2FkID0+IGNvbnNvbGUubG9nKFwicGhvZW5peCByZXBsaWVkOlwiLCBwYXlsb2FkKSlcbiAgICogICAucmVjZWl2ZShcImVycm9yXCIsIGVyciA9PiBjb25zb2xlLmxvZyhcInBob2VuaXggZXJyb3JlZFwiLCBlcnIpKVxuICAgKiAgIC5yZWNlaXZlKFwidGltZW91dFwiLCAoKSA9PiBjb25zb2xlLmxvZyhcInRpbWVkIG91dCBwdXNoaW5nXCIpKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IHBheWxvYWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0XVxuICAgKiBAcmV0dXJucyB7UHVzaH1cbiAgICovXG4gIHB1c2goZXZlbnQsIHBheWxvYWQsIHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpe1xuICAgIHBheWxvYWQgPSBwYXlsb2FkIHx8IHt9XG4gICAgaWYoIXRoaXMuam9pbmVkT25jZSl7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHRyaWVkIHRvIHB1c2ggJyR7ZXZlbnR9JyB0byAnJHt0aGlzLnRvcGljfScgYmVmb3JlIGpvaW5pbmcuIFVzZSBjaGFubmVsLmpvaW4oKSBiZWZvcmUgcHVzaGluZyBldmVudHNgKVxuICAgIH1cbiAgICBsZXQgcHVzaEV2ZW50ID0gbmV3IFB1c2godGhpcywgZXZlbnQsIGZ1bmN0aW9uICgpeyByZXR1cm4gcGF5bG9hZCB9LCB0aW1lb3V0KVxuICAgIGlmKHRoaXMuY2FuUHVzaCgpKXtcbiAgICAgIHB1c2hFdmVudC5zZW5kKClcbiAgICB9IGVsc2Uge1xuICAgICAgcHVzaEV2ZW50LnN0YXJ0VGltZW91dCgpXG4gICAgICB0aGlzLnB1c2hCdWZmZXIucHVzaChwdXNoRXZlbnQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHB1c2hFdmVudFxuICB9XG5cbiAgLyoqIExlYXZlcyB0aGUgY2hhbm5lbFxuICAgKlxuICAgKiBVbnN1YnNjcmliZXMgZnJvbSBzZXJ2ZXIgZXZlbnRzLCBhbmRcbiAgICogaW5zdHJ1Y3RzIGNoYW5uZWwgdG8gdGVybWluYXRlIG9uIHNlcnZlclxuICAgKlxuICAgKiBUcmlnZ2VycyBvbkNsb3NlKCkgaG9va3NcbiAgICpcbiAgICogVG8gcmVjZWl2ZSBsZWF2ZSBhY2tub3dsZWRnZW1lbnRzLCB1c2UgdGhlIGByZWNlaXZlYFxuICAgKiBob29rIHRvIGJpbmQgdG8gdGhlIHNlcnZlciBhY2ssIGllOlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjaGFubmVsLmxlYXZlKCkucmVjZWl2ZShcIm9rXCIsICgpID0+IGFsZXJ0KFwibGVmdCFcIikgKVxuICAgKlxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWVvdXRcbiAgICogQHJldHVybnMge1B1c2h9XG4gICAqL1xuICBsZWF2ZSh0aW1lb3V0ID0gdGhpcy50aW1lb3V0KXtcbiAgICB0aGlzLnJlam9pblRpbWVyLnJlc2V0KClcbiAgICB0aGlzLmpvaW5QdXNoLmNhbmNlbFRpbWVvdXQoKVxuXG4gICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmxlYXZpbmdcbiAgICBsZXQgb25DbG9zZSA9ICgpID0+IHtcbiAgICAgIGlmKHRoaXMuc29ja2V0Lmhhc0xvZ2dlcigpKSB0aGlzLnNvY2tldC5sb2coXCJjaGFubmVsXCIsIGBsZWF2ZSAke3RoaXMudG9waWN9YClcbiAgICAgIHRoaXMudHJpZ2dlcihDSEFOTkVMX0VWRU5UUy5jbG9zZSwgXCJsZWF2ZVwiKVxuICAgIH1cbiAgICBsZXQgbGVhdmVQdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMubGVhdmUsIGNsb3N1cmUoe30pLCB0aW1lb3V0KVxuICAgIGxlYXZlUHVzaC5yZWNlaXZlKFwib2tcIiwgKCkgPT4gb25DbG9zZSgpKVxuICAgICAgLnJlY2VpdmUoXCJ0aW1lb3V0XCIsICgpID0+IG9uQ2xvc2UoKSlcbiAgICBsZWF2ZVB1c2guc2VuZCgpXG4gICAgaWYoIXRoaXMuY2FuUHVzaCgpKXsgbGVhdmVQdXNoLnRyaWdnZXIoXCJva1wiLCB7fSkgfVxuXG4gICAgcmV0dXJuIGxlYXZlUHVzaFxuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRhYmxlIG1lc3NhZ2UgaG9va1xuICAgKlxuICAgKiBSZWNlaXZlcyBhbGwgZXZlbnRzIGZvciBzcGVjaWFsaXplZCBtZXNzYWdlIGhhbmRsaW5nXG4gICAqIGJlZm9yZSBkaXNwYXRjaGluZyB0byB0aGUgY2hhbm5lbCBjYWxsYmFja3MuXG4gICAqXG4gICAqIE11c3QgcmV0dXJuIHRoZSBwYXlsb2FkLCBtb2RpZmllZCBvciB1bm1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZFxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IHJlZlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fVxuICAgKi9cbiAgb25NZXNzYWdlKF9ldmVudCwgcGF5bG9hZCwgX3JlZil7IHJldHVybiBwYXlsb2FkIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGlzTWVtYmVyKHRvcGljLCBldmVudCwgcGF5bG9hZCwgam9pblJlZil7XG4gICAgaWYodGhpcy50b3BpYyAhPT0gdG9waWMpeyByZXR1cm4gZmFsc2UgfVxuXG4gICAgaWYoam9pblJlZiAmJiBqb2luUmVmICE9PSB0aGlzLmpvaW5SZWYoKSl7XG4gICAgICBpZih0aGlzLnNvY2tldC5oYXNMb2dnZXIoKSkgdGhpcy5zb2NrZXQubG9nKFwiY2hhbm5lbFwiLCBcImRyb3BwaW5nIG91dGRhdGVkIG1lc3NhZ2VcIiwge3RvcGljLCBldmVudCwgcGF5bG9hZCwgam9pblJlZn0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGpvaW5SZWYoKXsgcmV0dXJuIHRoaXMuam9pblB1c2gucmVmIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJlam9pbih0aW1lb3V0ID0gdGhpcy50aW1lb3V0KXtcbiAgICBpZih0aGlzLmlzTGVhdmluZygpKXsgcmV0dXJuIH1cbiAgICB0aGlzLnNvY2tldC5sZWF2ZU9wZW5Ub3BpYyh0aGlzLnRvcGljKVxuICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5qb2luaW5nXG4gICAgdGhpcy5qb2luUHVzaC5yZXNlbmQodGltZW91dClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdHJpZ2dlcihldmVudCwgcGF5bG9hZCwgcmVmLCBqb2luUmVmKXtcbiAgICBsZXQgaGFuZGxlZFBheWxvYWQgPSB0aGlzLm9uTWVzc2FnZShldmVudCwgcGF5bG9hZCwgcmVmLCBqb2luUmVmKVxuICAgIGlmKHBheWxvYWQgJiYgIWhhbmRsZWRQYXlsb2FkKXsgdGhyb3cgbmV3IEVycm9yKFwiY2hhbm5lbCBvbk1lc3NhZ2UgY2FsbGJhY2tzIG11c3QgcmV0dXJuIHRoZSBwYXlsb2FkLCBtb2RpZmllZCBvciB1bm1vZGlmaWVkXCIpIH1cblxuICAgIGxldCBldmVudEJpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5maWx0ZXIoYmluZCA9PiBiaW5kLmV2ZW50ID09PSBldmVudClcblxuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBldmVudEJpbmRpbmdzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGxldCBiaW5kID0gZXZlbnRCaW5kaW5nc1tpXVxuICAgICAgYmluZC5jYWxsYmFjayhoYW5kbGVkUGF5bG9hZCwgcmVmLCBqb2luUmVmIHx8IHRoaXMuam9pblJlZigpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcmVwbHlFdmVudE5hbWUocmVmKXsgcmV0dXJuIGBjaGFuX3JlcGx5XyR7cmVmfWAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaXNDbG9zZWQoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmNsb3NlZCB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBpc0Vycm9yZWQoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmVycm9yZWQgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaXNKb2luZWQoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5lZCB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBpc0pvaW5pbmcoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5pbmcgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaXNMZWF2aW5nKCl7IHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5sZWF2aW5nIH1cbn1cbiIsICJpbXBvcnQge1xuICBnbG9iYWwsXG4gIFhIUl9TVEFURVNcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWpheCB7XG5cbiAgc3RhdGljIHJlcXVlc3QobWV0aG9kLCBlbmRQb2ludCwgYWNjZXB0LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICBpZihnbG9iYWwuWERvbWFpblJlcXVlc3Qpe1xuICAgICAgbGV0IHJlcSA9IG5ldyBnbG9iYWwuWERvbWFpblJlcXVlc3QoKSAvLyBJRTgsIElFOVxuICAgICAgcmV0dXJuIHRoaXMueGRvbWFpblJlcXVlc3QocmVxLCBtZXRob2QsIGVuZFBvaW50LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVxID0gbmV3IGdsb2JhbC5YTUxIdHRwUmVxdWVzdCgpIC8vIElFNyssIEZpcmVmb3gsIENocm9tZSwgT3BlcmEsIFNhZmFyaVxuICAgICAgcmV0dXJuIHRoaXMueGhyUmVxdWVzdChyZXEsIG1ldGhvZCwgZW5kUG9pbnQsIGFjY2VwdCwgYm9keSwgdGltZW91dCwgb250aW1lb3V0LCBjYWxsYmFjaylcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgeGRvbWFpblJlcXVlc3QocmVxLCBtZXRob2QsIGVuZFBvaW50LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICByZXEudGltZW91dCA9IHRpbWVvdXRcbiAgICByZXEub3BlbihtZXRob2QsIGVuZFBvaW50KVxuICAgIHJlcS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSB0aGlzLnBhcnNlSlNPTihyZXEucmVzcG9uc2VUZXh0KVxuICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzcG9uc2UpXG4gICAgfVxuICAgIGlmKG9udGltZW91dCl7IHJlcS5vbnRpbWVvdXQgPSBvbnRpbWVvdXQgfVxuXG4gICAgLy8gV29yayBhcm91bmQgYnVnIGluIElFOSB0aGF0IHJlcXVpcmVzIGFuIGF0dGFjaGVkIG9ucHJvZ3Jlc3MgaGFuZGxlclxuICAgIHJlcS5vbnByb2dyZXNzID0gKCkgPT4geyB9XG5cbiAgICByZXEuc2VuZChib2R5KVxuICAgIHJldHVybiByZXFcbiAgfVxuXG4gIHN0YXRpYyB4aHJSZXF1ZXN0KHJlcSwgbWV0aG9kLCBlbmRQb2ludCwgYWNjZXB0LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICByZXEub3BlbihtZXRob2QsIGVuZFBvaW50LCB0cnVlKVxuICAgIHJlcS50aW1lb3V0ID0gdGltZW91dFxuICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIGFjY2VwdClcbiAgICByZXEub25lcnJvciA9ICgpID0+IGNhbGxiYWNrICYmIGNhbGxiYWNrKG51bGwpXG4gICAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGlmKHJlcS5yZWFkeVN0YXRlID09PSBYSFJfU1RBVEVTLmNvbXBsZXRlICYmIGNhbGxiYWNrKXtcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gdGhpcy5wYXJzZUpTT04ocmVxLnJlc3BvbnNlVGV4dClcbiAgICAgICAgY2FsbGJhY2socmVzcG9uc2UpXG4gICAgICB9XG4gICAgfVxuICAgIGlmKG9udGltZW91dCl7IHJlcS5vbnRpbWVvdXQgPSBvbnRpbWVvdXQgfVxuXG4gICAgcmVxLnNlbmQoYm9keSlcbiAgICByZXR1cm4gcmVxXG4gIH1cblxuICBzdGF0aWMgcGFyc2VKU09OKHJlc3Ape1xuICAgIGlmKCFyZXNwIHx8IHJlc3AgPT09IFwiXCIpeyByZXR1cm4gbnVsbCB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcClcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgIGNvbnNvbGUgJiYgY29uc29sZS5sb2coXCJmYWlsZWQgdG8gcGFyc2UgSlNPTiByZXNwb25zZVwiLCByZXNwKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgc2VyaWFsaXplKG9iaiwgcGFyZW50S2V5KXtcbiAgICBsZXQgcXVlcnlTdHIgPSBbXVxuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICBpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSl7IGNvbnRpbnVlIH1cbiAgICAgIGxldCBwYXJhbUtleSA9IHBhcmVudEtleSA/IGAke3BhcmVudEtleX1bJHtrZXl9XWAgOiBrZXlcbiAgICAgIGxldCBwYXJhbVZhbCA9IG9ialtrZXldXG4gICAgICBpZih0eXBlb2YgcGFyYW1WYWwgPT09IFwib2JqZWN0XCIpe1xuICAgICAgICBxdWVyeVN0ci5wdXNoKHRoaXMuc2VyaWFsaXplKHBhcmFtVmFsLCBwYXJhbUtleSkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVN0ci5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChwYXJhbUtleSkgKyBcIj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbVZhbCkpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0ci5qb2luKFwiJlwiKVxuICB9XG5cbiAgc3RhdGljIGFwcGVuZFBhcmFtcyh1cmwsIHBhcmFtcyl7XG4gICAgaWYoT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPT09IDApeyByZXR1cm4gdXJsIH1cblxuICAgIGxldCBwcmVmaXggPSB1cmwubWF0Y2goL1xcPy8pID8gXCImXCIgOiBcIj9cIlxuICAgIHJldHVybiBgJHt1cmx9JHtwcmVmaXh9JHt0aGlzLnNlcmlhbGl6ZShwYXJhbXMpfWBcbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIFNPQ0tFVF9TVEFURVMsXG4gIFRSQU5TUE9SVFNcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IEFqYXggZnJvbSBcIi4vYWpheFwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvbmdQb2xsIHtcblxuICBjb25zdHJ1Y3RvcihlbmRQb2ludCl7XG4gICAgdGhpcy5lbmRQb2ludCA9IG51bGxcbiAgICB0aGlzLnRva2VuID0gbnVsbFxuICAgIHRoaXMuc2tpcEhlYXJ0YmVhdCA9IHRydWVcbiAgICB0aGlzLnJlcXMgPSBuZXcgU2V0KClcbiAgICB0aGlzLm9ub3BlbiA9IGZ1bmN0aW9uICgpeyB9IC8vIG5vb3BcbiAgICB0aGlzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgdGhpcy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgdGhpcy5vbmNsb3NlID0gZnVuY3Rpb24gKCl7IH0gLy8gbm9vcFxuICAgIHRoaXMucG9sbEVuZHBvaW50ID0gdGhpcy5ub3JtYWxpemVFbmRwb2ludChlbmRQb2ludClcbiAgICB0aGlzLnJlYWR5U3RhdGUgPSBTT0NLRVRfU1RBVEVTLmNvbm5lY3RpbmdcbiAgICB0aGlzLnBvbGwoKVxuICB9XG5cbiAgbm9ybWFsaXplRW5kcG9pbnQoZW5kUG9pbnQpe1xuICAgIHJldHVybiAoZW5kUG9pbnRcbiAgICAgIC5yZXBsYWNlKFwid3M6Ly9cIiwgXCJodHRwOi8vXCIpXG4gICAgICAucmVwbGFjZShcIndzczovL1wiLCBcImh0dHBzOi8vXCIpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKFwiKC4qKVxcL1wiICsgVFJBTlNQT1JUUy53ZWJzb2NrZXQpLCBcIiQxL1wiICsgVFJBTlNQT1JUUy5sb25ncG9sbCkpXG4gIH1cblxuICBlbmRwb2ludFVSTCgpe1xuICAgIHJldHVybiBBamF4LmFwcGVuZFBhcmFtcyh0aGlzLnBvbGxFbmRwb2ludCwge3Rva2VuOiB0aGlzLnRva2VufSlcbiAgfVxuXG4gIGNsb3NlQW5kUmV0cnkoY29kZSwgcmVhc29uLCB3YXNDbGVhbil7XG4gICAgdGhpcy5jbG9zZShjb2RlLCByZWFzb24sIHdhc0NsZWFuKVxuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFNPQ0tFVF9TVEFURVMuY29ubmVjdGluZ1xuICB9XG5cbiAgb250aW1lb3V0KCl7XG4gICAgdGhpcy5vbmVycm9yKFwidGltZW91dFwiKVxuICAgIHRoaXMuY2xvc2VBbmRSZXRyeSgxMDA1LCBcInRpbWVvdXRcIiwgZmFsc2UpXG4gIH1cblxuICBpc0FjdGl2ZSgpeyByZXR1cm4gdGhpcy5yZWFkeVN0YXRlID09PSBTT0NLRVRfU1RBVEVTLm9wZW4gfHwgdGhpcy5yZWFkeVN0YXRlID09PSBTT0NLRVRfU1RBVEVTLmNvbm5lY3RpbmcgfVxuXG4gIHBvbGwoKXtcbiAgICB0aGlzLmFqYXgoXCJHRVRcIiwgbnVsbCwgKCkgPT4gdGhpcy5vbnRpbWVvdXQoKSwgcmVzcCA9PiB7XG4gICAgICBpZihyZXNwKXtcbiAgICAgICAgdmFyIHtzdGF0dXMsIHRva2VuLCBtZXNzYWdlc30gPSByZXNwXG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdHVzID0gMFxuICAgICAgfVxuXG4gICAgICBzd2l0Y2goc3RhdHVzKXtcbiAgICAgICAgY2FzZSAyMDA6XG4gICAgICAgICAgbWVzc2FnZXMuZm9yRWFjaChtc2cgPT4ge1xuICAgICAgICAgICAgLy8gVGFza3MgYXJlIHdoYXQgdGhpbmdzIGxpa2UgZXZlbnQgaGFuZGxlcnMsIHNldFRpbWVvdXQgY2FsbGJhY2tzLFxuICAgICAgICAgICAgLy8gcHJvbWlzZSByZXNvbHZlcyBhbmQgbW9yZSBhcmUgcnVuIHdpdGhpbi5cbiAgICAgICAgICAgIC8vIEluIG1vZGVybiBicm93c2VycywgdGhlcmUgYXJlIHR3byBkaWZmZXJlbnQga2luZHMgb2YgdGFza3MsXG4gICAgICAgICAgICAvLyBtaWNyb3Rhc2tzIGFuZCBtYWNyb3Rhc2tzLlxuICAgICAgICAgICAgLy8gTWljcm90YXNrcyBhcmUgbWFpbmx5IHVzZWQgZm9yIFByb21pc2VzLCB3aGlsZSBtYWNyb3Rhc2tzIGFyZVxuICAgICAgICAgICAgLy8gdXNlZCBmb3IgZXZlcnl0aGluZyBlbHNlLlxuICAgICAgICAgICAgLy8gTWljcm90YXNrcyBhbHdheXMgaGF2ZSBwcmlvcml0eSBvdmVyIG1hY3JvdGFza3MuIElmIHRoZSBKUyBlbmdpbmVcbiAgICAgICAgICAgIC8vIGlzIGxvb2tpbmcgZm9yIGEgdGFzayB0byBydW4sIGl0IHdpbGwgYWx3YXlzIHRyeSB0byBlbXB0eSB0aGVcbiAgICAgICAgICAgIC8vIG1pY3JvdGFzayBxdWV1ZSBiZWZvcmUgYXR0ZW1wdGluZyB0byBydW4gYW55dGhpbmcgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIG1hY3JvdGFzayBxdWV1ZS5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBGb3IgdGhlIFdlYlNvY2tldCB0cmFuc3BvcnQsIG1lc3NhZ2VzIGFsd2F5cyBhcnJpdmUgaW4gdGhlaXIgb3duXG4gICAgICAgICAgICAvLyBldmVudC4gVGhpcyBtZWFucyB0aGF0IGlmIGFueSBwcm9taXNlcyBhcmUgcmVzb2x2ZWQgZnJvbSB3aXRoaW4sXG4gICAgICAgICAgICAvLyB0aGVpciBjYWxsYmFja3Mgd2lsbCBhbHdheXMgZmluaXNoIGV4ZWN1dGlvbiBieSB0aGUgdGltZSB0aGVcbiAgICAgICAgICAgIC8vIG5leHQgbWVzc2FnZSBldmVudCBoYW5kbGVyIGlzIHJ1bi5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBJbiBvcmRlciB0byBlbXVsYXRlIHRoaXMgYmVoYXZpb3VyLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBlYWNoXG4gICAgICAgICAgICAvLyBvbm1lc3NhZ2UgaGFuZGxlciBpcyBydW4gd2l0aGluIGl0J3Mgb3duIG1hY3JvdGFzay5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vbm1lc3NhZ2Uoe2RhdGE6IG1zZ30pLCAwKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5wb2xsKClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDIwNDpcbiAgICAgICAgICB0aGlzLnBvbGwoKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgNDEwOlxuICAgICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFNPQ0tFVF9TVEFURVMub3BlblxuICAgICAgICAgIHRoaXMub25vcGVuKHt9KVxuICAgICAgICAgIHRoaXMucG9sbCgpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgdGhpcy5vbmVycm9yKDQwMylcbiAgICAgICAgICB0aGlzLmNsb3NlKDEwMDgsIFwiZm9yYmlkZGVuXCIsIGZhbHNlKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSA1MDA6XG4gICAgICAgICAgdGhpcy5vbmVycm9yKDUwMClcbiAgICAgICAgICB0aGlzLmNsb3NlQW5kUmV0cnkoMTAxMSwgXCJpbnRlcm5hbCBzZXJ2ZXIgZXJyb3JcIiwgNTAwKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgdW5oYW5kbGVkIHBvbGwgc3RhdHVzICR7c3RhdHVzfWApXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNlbmQoYm9keSl7XG4gICAgdGhpcy5hamF4KFwiUE9TVFwiLCBib2R5LCAoKSA9PiB0aGlzLm9uZXJyb3IoXCJ0aW1lb3V0XCIpLCByZXNwID0+IHtcbiAgICAgIGlmKCFyZXNwIHx8IHJlc3Auc3RhdHVzICE9PSAyMDApe1xuICAgICAgICB0aGlzLm9uZXJyb3IocmVzcCAmJiByZXNwLnN0YXR1cylcbiAgICAgICAgdGhpcy5jbG9zZUFuZFJldHJ5KDEwMTEsIFwiaW50ZXJuYWwgc2VydmVyIGVycm9yXCIsIGZhbHNlKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjbG9zZShjb2RlLCByZWFzb24sIHdhc0NsZWFuKXtcbiAgICBmb3IobGV0IHJlcSBvZiB0aGlzLnJlcXMpeyByZXEuYWJvcnQoKSB9XG4gICAgdGhpcy5yZWFkeVN0YXRlID0gU09DS0VUX1NUQVRFUy5jbG9zZWRcbiAgICBsZXQgb3B0cyA9IE9iamVjdC5hc3NpZ24oe2NvZGU6IDEwMDAsIHJlYXNvbjogdW5kZWZpbmVkLCB3YXNDbGVhbjogdHJ1ZX0sIHtjb2RlLCByZWFzb24sIHdhc0NsZWFufSlcbiAgICBpZih0eXBlb2YoQ2xvc2VFdmVudCkgIT09IFwidW5kZWZpbmVkXCIpe1xuICAgICAgdGhpcy5vbmNsb3NlKG5ldyBDbG9zZUV2ZW50KFwiY2xvc2VcIiwgb3B0cykpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25jbG9zZShvcHRzKVxuICAgIH1cbiAgfVxuXG4gIGFqYXgobWV0aG9kLCBib2R5LCBvbkNhbGxlclRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICBsZXQgcmVxXG4gICAgbGV0IG9udGltZW91dCA9ICgpID0+IHtcbiAgICAgIHRoaXMucmVxcy5kZWxldGUocmVxKVxuICAgICAgb25DYWxsZXJUaW1lb3V0KClcbiAgICB9XG4gICAgcmVxID0gQWpheC5yZXF1ZXN0KG1ldGhvZCwgdGhpcy5lbmRwb2ludFVSTCgpLCBcImFwcGxpY2F0aW9uL2pzb25cIiwgYm9keSwgdGhpcy50aW1lb3V0LCBvbnRpbWVvdXQsIHJlc3AgPT4ge1xuICAgICAgdGhpcy5yZXFzLmRlbGV0ZShyZXEpXG4gICAgICBpZih0aGlzLmlzQWN0aXZlKCkpeyBjYWxsYmFjayhyZXNwKSB9XG4gICAgfSlcbiAgICB0aGlzLnJlcXMuYWRkKHJlcSlcbiAgfVxufVxuIiwgIi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIFByZXNlbmNlXG4gKiBAcGFyYW0ge0NoYW5uZWx9IGNoYW5uZWwgLSBUaGUgQ2hhbm5lbFxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgb3B0aW9ucyxcbiAqICAgICAgICBmb3IgZXhhbXBsZSBge2V2ZW50czoge3N0YXRlOiBcInN0YXRlXCIsIGRpZmY6IFwiZGlmZlwifX1gXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByZXNlbmNlIHtcblxuICBjb25zdHJ1Y3RvcihjaGFubmVsLCBvcHRzID0ge30pe1xuICAgIGxldCBldmVudHMgPSBvcHRzLmV2ZW50cyB8fCB7c3RhdGU6IFwicHJlc2VuY2Vfc3RhdGVcIiwgZGlmZjogXCJwcmVzZW5jZV9kaWZmXCJ9XG4gICAgdGhpcy5zdGF0ZSA9IHt9XG4gICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXVxuICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWxcbiAgICB0aGlzLmpvaW5SZWYgPSBudWxsXG4gICAgdGhpcy5jYWxsZXIgPSB7XG4gICAgICBvbkpvaW46IGZ1bmN0aW9uICgpeyB9LFxuICAgICAgb25MZWF2ZTogZnVuY3Rpb24gKCl7IH0sXG4gICAgICBvblN5bmM6IGZ1bmN0aW9uICgpeyB9XG4gICAgfVxuXG4gICAgdGhpcy5jaGFubmVsLm9uKGV2ZW50cy5zdGF0ZSwgbmV3U3RhdGUgPT4ge1xuICAgICAgbGV0IHtvbkpvaW4sIG9uTGVhdmUsIG9uU3luY30gPSB0aGlzLmNhbGxlclxuXG4gICAgICB0aGlzLmpvaW5SZWYgPSB0aGlzLmNoYW5uZWwuam9pblJlZigpXG4gICAgICB0aGlzLnN0YXRlID0gUHJlc2VuY2Uuc3luY1N0YXRlKHRoaXMuc3RhdGUsIG5ld1N0YXRlLCBvbkpvaW4sIG9uTGVhdmUpXG5cbiAgICAgIHRoaXMucGVuZGluZ0RpZmZzLmZvckVhY2goZGlmZiA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpXG4gICAgICB9KVxuICAgICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXVxuICAgICAgb25TeW5jKClcbiAgICB9KVxuXG4gICAgdGhpcy5jaGFubmVsLm9uKGV2ZW50cy5kaWZmLCBkaWZmID0+IHtcbiAgICAgIGxldCB7b25Kb2luLCBvbkxlYXZlLCBvblN5bmN9ID0gdGhpcy5jYWxsZXJcblxuICAgICAgaWYodGhpcy5pblBlbmRpbmdTeW5jU3RhdGUoKSl7XG4gICAgICAgIHRoaXMucGVuZGluZ0RpZmZzLnB1c2goZGlmZilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpXG4gICAgICAgIG9uU3luYygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uSm9pbihjYWxsYmFjayl7IHRoaXMuY2FsbGVyLm9uSm9pbiA9IGNhbGxiYWNrIH1cblxuICBvbkxlYXZlKGNhbGxiYWNrKXsgdGhpcy5jYWxsZXIub25MZWF2ZSA9IGNhbGxiYWNrIH1cblxuICBvblN5bmMoY2FsbGJhY2speyB0aGlzLmNhbGxlci5vblN5bmMgPSBjYWxsYmFjayB9XG5cbiAgbGlzdChieSl7IHJldHVybiBQcmVzZW5jZS5saXN0KHRoaXMuc3RhdGUsIGJ5KSB9XG5cbiAgaW5QZW5kaW5nU3luY1N0YXRlKCl7XG4gICAgcmV0dXJuICF0aGlzLmpvaW5SZWYgfHwgKHRoaXMuam9pblJlZiAhPT0gdGhpcy5jaGFubmVsLmpvaW5SZWYoKSlcbiAgfVxuXG4gIC8vIGxvd2VyLWxldmVsIHB1YmxpYyBzdGF0aWMgQVBJXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3luYyB0aGUgbGlzdCBvZiBwcmVzZW5jZXMgb24gdGhlIHNlcnZlclxuICAgKiB3aXRoIHRoZSBjbGllbnQncyBzdGF0ZS4gQW4gb3B0aW9uYWwgYG9uSm9pbmAgYW5kIGBvbkxlYXZlYCBjYWxsYmFjayBjYW5cbiAgICogYmUgcHJvdmlkZWQgdG8gcmVhY3QgdG8gY2hhbmdlcyBpbiB0aGUgY2xpZW50J3MgbG9jYWwgcHJlc2VuY2VzIGFjcm9zc1xuICAgKiBkaXNjb25uZWN0cyBhbmQgcmVjb25uZWN0cyB3aXRoIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcmVzZW5jZX1cbiAgICovXG4gIHN0YXRpYyBzeW5jU3RhdGUoY3VycmVudFN0YXRlLCBuZXdTdGF0ZSwgb25Kb2luLCBvbkxlYXZlKXtcbiAgICBsZXQgc3RhdGUgPSB0aGlzLmNsb25lKGN1cnJlbnRTdGF0ZSlcbiAgICBsZXQgam9pbnMgPSB7fVxuICAgIGxldCBsZWF2ZXMgPSB7fVxuXG4gICAgdGhpcy5tYXAoc3RhdGUsIChrZXksIHByZXNlbmNlKSA9PiB7XG4gICAgICBpZighbmV3U3RhdGVba2V5XSl7XG4gICAgICAgIGxlYXZlc1trZXldID0gcHJlc2VuY2VcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMubWFwKG5ld1N0YXRlLCAoa2V5LCBuZXdQcmVzZW5jZSkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnRQcmVzZW5jZSA9IHN0YXRlW2tleV1cbiAgICAgIGlmKGN1cnJlbnRQcmVzZW5jZSl7XG4gICAgICAgIGxldCBuZXdSZWZzID0gbmV3UHJlc2VuY2UubWV0YXMubWFwKG0gPT4gbS5waHhfcmVmKVxuICAgICAgICBsZXQgY3VyUmVmcyA9IGN1cnJlbnRQcmVzZW5jZS5tZXRhcy5tYXAobSA9PiBtLnBoeF9yZWYpXG4gICAgICAgIGxldCBqb2luZWRNZXRhcyA9IG5ld1ByZXNlbmNlLm1ldGFzLmZpbHRlcihtID0+IGN1clJlZnMuaW5kZXhPZihtLnBoeF9yZWYpIDwgMClcbiAgICAgICAgbGV0IGxlZnRNZXRhcyA9IGN1cnJlbnRQcmVzZW5jZS5tZXRhcy5maWx0ZXIobSA9PiBuZXdSZWZzLmluZGV4T2YobS5waHhfcmVmKSA8IDApXG4gICAgICAgIGlmKGpvaW5lZE1ldGFzLmxlbmd0aCA+IDApe1xuICAgICAgICAgIGpvaW5zW2tleV0gPSBuZXdQcmVzZW5jZVxuICAgICAgICAgIGpvaW5zW2tleV0ubWV0YXMgPSBqb2luZWRNZXRhc1xuICAgICAgICB9XG4gICAgICAgIGlmKGxlZnRNZXRhcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICBsZWF2ZXNba2V5XSA9IHRoaXMuY2xvbmUoY3VycmVudFByZXNlbmNlKVxuICAgICAgICAgIGxlYXZlc1trZXldLm1ldGFzID0gbGVmdE1ldGFzXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGpvaW5zW2tleV0gPSBuZXdQcmVzZW5jZVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMuc3luY0RpZmYoc3RhdGUsIHtqb2luczogam9pbnMsIGxlYXZlczogbGVhdmVzfSwgb25Kb2luLCBvbkxlYXZlKVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFVzZWQgdG8gc3luYyBhIGRpZmYgb2YgcHJlc2VuY2Ugam9pbiBhbmQgbGVhdmVcbiAgICogZXZlbnRzIGZyb20gdGhlIHNlcnZlciwgYXMgdGhleSBoYXBwZW4uIExpa2UgYHN5bmNTdGF0ZWAsIGBzeW5jRGlmZmBcbiAgICogYWNjZXB0cyBvcHRpb25hbCBgb25Kb2luYCBhbmQgYG9uTGVhdmVgIGNhbGxiYWNrcyB0byByZWFjdCB0byBhIHVzZXJcbiAgICogam9pbmluZyBvciBsZWF2aW5nIGZyb20gYSBkZXZpY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcmVzZW5jZX1cbiAgICovXG4gIHN0YXRpYyBzeW5jRGlmZihzdGF0ZSwgZGlmZiwgb25Kb2luLCBvbkxlYXZlKXtcbiAgICBsZXQge2pvaW5zLCBsZWF2ZXN9ID0gdGhpcy5jbG9uZShkaWZmKVxuICAgIGlmKCFvbkpvaW4peyBvbkpvaW4gPSBmdW5jdGlvbiAoKXsgfSB9XG4gICAgaWYoIW9uTGVhdmUpeyBvbkxlYXZlID0gZnVuY3Rpb24gKCl7IH0gfVxuXG4gICAgdGhpcy5tYXAoam9pbnMsIChrZXksIG5ld1ByZXNlbmNlKSA9PiB7XG4gICAgICBsZXQgY3VycmVudFByZXNlbmNlID0gc3RhdGVba2V5XVxuICAgICAgc3RhdGVba2V5XSA9IHRoaXMuY2xvbmUobmV3UHJlc2VuY2UpXG4gICAgICBpZihjdXJyZW50UHJlc2VuY2Upe1xuICAgICAgICBsZXQgam9pbmVkUmVmcyA9IHN0YXRlW2tleV0ubWV0YXMubWFwKG0gPT4gbS5waHhfcmVmKVxuICAgICAgICBsZXQgY3VyTWV0YXMgPSBjdXJyZW50UHJlc2VuY2UubWV0YXMuZmlsdGVyKG0gPT4gam9pbmVkUmVmcy5pbmRleE9mKG0ucGh4X3JlZikgPCAwKVxuICAgICAgICBzdGF0ZVtrZXldLm1ldGFzLnVuc2hpZnQoLi4uY3VyTWV0YXMpXG4gICAgICB9XG4gICAgICBvbkpvaW4oa2V5LCBjdXJyZW50UHJlc2VuY2UsIG5ld1ByZXNlbmNlKVxuICAgIH0pXG4gICAgdGhpcy5tYXAobGVhdmVzLCAoa2V5LCBsZWZ0UHJlc2VuY2UpID0+IHtcbiAgICAgIGxldCBjdXJyZW50UHJlc2VuY2UgPSBzdGF0ZVtrZXldXG4gICAgICBpZighY3VycmVudFByZXNlbmNlKXsgcmV0dXJuIH1cbiAgICAgIGxldCByZWZzVG9SZW1vdmUgPSBsZWZ0UHJlc2VuY2UubWV0YXMubWFwKG0gPT4gbS5waHhfcmVmKVxuICAgICAgY3VycmVudFByZXNlbmNlLm1ldGFzID0gY3VycmVudFByZXNlbmNlLm1ldGFzLmZpbHRlcihwID0+IHtcbiAgICAgICAgcmV0dXJuIHJlZnNUb1JlbW92ZS5pbmRleE9mKHAucGh4X3JlZikgPCAwXG4gICAgICB9KVxuICAgICAgb25MZWF2ZShrZXksIGN1cnJlbnRQcmVzZW5jZSwgbGVmdFByZXNlbmNlKVxuICAgICAgaWYoY3VycmVudFByZXNlbmNlLm1ldGFzLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZVtrZXldXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gc3RhdGVcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcmVzZW5jZXMsIHdpdGggc2VsZWN0ZWQgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcmVzZW5jZXNcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2hvb3NlclxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJlc2VuY2V9XG4gICAqL1xuICBzdGF0aWMgbGlzdChwcmVzZW5jZXMsIGNob29zZXIpe1xuICAgIGlmKCFjaG9vc2VyKXsgY2hvb3NlciA9IGZ1bmN0aW9uIChrZXksIHByZXMpeyByZXR1cm4gcHJlcyB9IH1cblxuICAgIHJldHVybiB0aGlzLm1hcChwcmVzZW5jZXMsIChrZXksIHByZXNlbmNlKSA9PiB7XG4gICAgICByZXR1cm4gY2hvb3NlcihrZXksIHByZXNlbmNlKVxuICAgIH0pXG4gIH1cblxuICAvLyBwcml2YXRlXG5cbiAgc3RhdGljIG1hcChvYmosIGZ1bmMpe1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLm1hcChrZXkgPT4gZnVuYyhrZXksIG9ialtrZXldKSlcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZShvYmopeyByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKSB9XG59XG4iLCAiLyogVGhlIGRlZmF1bHQgc2VyaWFsaXplciBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIG1lc3NhZ2VzICovXG5pbXBvcnQge1xuICBDSEFOTkVMX0VWRU5UU1xufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIEhFQURFUl9MRU5HVEg6IDEsXG4gIE1FVEFfTEVOR1RIOiA0LFxuICBLSU5EUzoge3B1c2g6IDAsIHJlcGx5OiAxLCBicm9hZGNhc3Q6IDJ9LFxuXG4gIGVuY29kZShtc2csIGNhbGxiYWNrKXtcbiAgICBpZihtc2cucGF5bG9hZC5jb25zdHJ1Y3RvciA9PT0gQXJyYXlCdWZmZXIpe1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHRoaXMuYmluYXJ5RW5jb2RlKG1zZykpXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBwYXlsb2FkID0gW21zZy5qb2luX3JlZiwgbXNnLnJlZiwgbXNnLnRvcGljLCBtc2cuZXZlbnQsIG1zZy5wYXlsb2FkXVxuICAgICAgcmV0dXJuIGNhbGxiYWNrKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKVxuICAgIH1cbiAgfSxcblxuICBkZWNvZGUocmF3UGF5bG9hZCwgY2FsbGJhY2spe1xuICAgIGlmKHJhd1BheWxvYWQuY29uc3RydWN0b3IgPT09IEFycmF5QnVmZmVyKXtcbiAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLmJpbmFyeURlY29kZShyYXdQYXlsb2FkKSlcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IFtqb2luX3JlZiwgcmVmLCB0b3BpYywgZXZlbnQsIHBheWxvYWRdID0gSlNPTi5wYXJzZShyYXdQYXlsb2FkKVxuICAgICAgcmV0dXJuIGNhbGxiYWNrKHtqb2luX3JlZiwgcmVmLCB0b3BpYywgZXZlbnQsIHBheWxvYWR9KVxuICAgIH1cbiAgfSxcblxuICAvLyBwcml2YXRlXG5cbiAgYmluYXJ5RW5jb2RlKG1lc3NhZ2Upe1xuICAgIGxldCB7am9pbl9yZWYsIHJlZiwgZXZlbnQsIHRvcGljLCBwYXlsb2FkfSA9IG1lc3NhZ2VcbiAgICBsZXQgbWV0YUxlbmd0aCA9IHRoaXMuTUVUQV9MRU5HVEggKyBqb2luX3JlZi5sZW5ndGggKyByZWYubGVuZ3RoICsgdG9waWMubGVuZ3RoICsgZXZlbnQubGVuZ3RoXG4gICAgbGV0IGhlYWRlciA9IG5ldyBBcnJheUJ1ZmZlcih0aGlzLkhFQURFUl9MRU5HVEggKyBtZXRhTGVuZ3RoKVxuICAgIGxldCB2aWV3ID0gbmV3IERhdGFWaWV3KGhlYWRlcilcbiAgICBsZXQgb2Zmc2V0ID0gMFxuXG4gICAgdmlldy5zZXRVaW50OChvZmZzZXQrKywgdGhpcy5LSU5EUy5wdXNoKSAvLyBraW5kXG4gICAgdmlldy5zZXRVaW50OChvZmZzZXQrKywgam9pbl9yZWYubGVuZ3RoKVxuICAgIHZpZXcuc2V0VWludDgob2Zmc2V0KyssIHJlZi5sZW5ndGgpXG4gICAgdmlldy5zZXRVaW50OChvZmZzZXQrKywgdG9waWMubGVuZ3RoKVxuICAgIHZpZXcuc2V0VWludDgob2Zmc2V0KyssIGV2ZW50Lmxlbmd0aClcbiAgICBBcnJheS5mcm9tKGpvaW5fcmVmLCBjaGFyID0+IHZpZXcuc2V0VWludDgob2Zmc2V0KyssIGNoYXIuY2hhckNvZGVBdCgwKSkpXG4gICAgQXJyYXkuZnJvbShyZWYsIGNoYXIgPT4gdmlldy5zZXRVaW50OChvZmZzZXQrKywgY2hhci5jaGFyQ29kZUF0KDApKSlcbiAgICBBcnJheS5mcm9tKHRvcGljLCBjaGFyID0+IHZpZXcuc2V0VWludDgob2Zmc2V0KyssIGNoYXIuY2hhckNvZGVBdCgwKSkpXG4gICAgQXJyYXkuZnJvbShldmVudCwgY2hhciA9PiB2aWV3LnNldFVpbnQ4KG9mZnNldCsrLCBjaGFyLmNoYXJDb2RlQXQoMCkpKVxuXG4gICAgdmFyIGNvbWJpbmVkID0gbmV3IFVpbnQ4QXJyYXkoaGVhZGVyLmJ5dGVMZW5ndGggKyBwYXlsb2FkLmJ5dGVMZW5ndGgpXG4gICAgY29tYmluZWQuc2V0KG5ldyBVaW50OEFycmF5KGhlYWRlciksIDApXG4gICAgY29tYmluZWQuc2V0KG5ldyBVaW50OEFycmF5KHBheWxvYWQpLCBoZWFkZXIuYnl0ZUxlbmd0aClcblxuICAgIHJldHVybiBjb21iaW5lZC5idWZmZXJcbiAgfSxcblxuICBiaW5hcnlEZWNvZGUoYnVmZmVyKXtcbiAgICBsZXQgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpXG4gICAgbGV0IGtpbmQgPSB2aWV3LmdldFVpbnQ4KDApXG4gICAgbGV0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICAgIHN3aXRjaChraW5kKXtcbiAgICAgIGNhc2UgdGhpcy5LSU5EUy5wdXNoOiByZXR1cm4gdGhpcy5kZWNvZGVQdXNoKGJ1ZmZlciwgdmlldywgZGVjb2RlcilcbiAgICAgIGNhc2UgdGhpcy5LSU5EUy5yZXBseTogcmV0dXJuIHRoaXMuZGVjb2RlUmVwbHkoYnVmZmVyLCB2aWV3LCBkZWNvZGVyKVxuICAgICAgY2FzZSB0aGlzLktJTkRTLmJyb2FkY2FzdDogcmV0dXJuIHRoaXMuZGVjb2RlQnJvYWRjYXN0KGJ1ZmZlciwgdmlldywgZGVjb2RlcilcbiAgICB9XG4gIH0sXG5cbiAgZGVjb2RlUHVzaChidWZmZXIsIHZpZXcsIGRlY29kZXIpe1xuICAgIGxldCBqb2luUmVmU2l6ZSA9IHZpZXcuZ2V0VWludDgoMSlcbiAgICBsZXQgdG9waWNTaXplID0gdmlldy5nZXRVaW50OCgyKVxuICAgIGxldCBldmVudFNpemUgPSB2aWV3LmdldFVpbnQ4KDMpXG4gICAgbGV0IG9mZnNldCA9IHRoaXMuSEVBREVSX0xFTkdUSCArIHRoaXMuTUVUQV9MRU5HVEggLSAxIC8vIHB1c2hlcyBoYXZlIG5vIHJlZlxuICAgIGxldCBqb2luUmVmID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgam9pblJlZlNpemUpKVxuICAgIG9mZnNldCA9IG9mZnNldCArIGpvaW5SZWZTaXplXG4gICAgbGV0IHRvcGljID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgdG9waWNTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyB0b3BpY1NpemVcbiAgICBsZXQgZXZlbnQgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBldmVudFNpemUpKVxuICAgIG9mZnNldCA9IG9mZnNldCArIGV2ZW50U2l6ZVxuICAgIGxldCBkYXRhID0gYnVmZmVyLnNsaWNlKG9mZnNldCwgYnVmZmVyLmJ5dGVMZW5ndGgpXG4gICAgcmV0dXJuIHtqb2luX3JlZjogam9pblJlZiwgcmVmOiBudWxsLCB0b3BpYzogdG9waWMsIGV2ZW50OiBldmVudCwgcGF5bG9hZDogZGF0YX1cbiAgfSxcblxuICBkZWNvZGVSZXBseShidWZmZXIsIHZpZXcsIGRlY29kZXIpe1xuICAgIGxldCBqb2luUmVmU2l6ZSA9IHZpZXcuZ2V0VWludDgoMSlcbiAgICBsZXQgcmVmU2l6ZSA9IHZpZXcuZ2V0VWludDgoMilcbiAgICBsZXQgdG9waWNTaXplID0gdmlldy5nZXRVaW50OCgzKVxuICAgIGxldCBldmVudFNpemUgPSB2aWV3LmdldFVpbnQ4KDQpXG4gICAgbGV0IG9mZnNldCA9IHRoaXMuSEVBREVSX0xFTkdUSCArIHRoaXMuTUVUQV9MRU5HVEhcbiAgICBsZXQgam9pblJlZiA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIGpvaW5SZWZTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyBqb2luUmVmU2l6ZVxuICAgIGxldCByZWYgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyByZWZTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyByZWZTaXplXG4gICAgbGV0IHRvcGljID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgdG9waWNTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyB0b3BpY1NpemVcbiAgICBsZXQgZXZlbnQgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBldmVudFNpemUpKVxuICAgIG9mZnNldCA9IG9mZnNldCArIGV2ZW50U2l6ZVxuICAgIGxldCBkYXRhID0gYnVmZmVyLnNsaWNlKG9mZnNldCwgYnVmZmVyLmJ5dGVMZW5ndGgpXG4gICAgbGV0IHBheWxvYWQgPSB7c3RhdHVzOiBldmVudCwgcmVzcG9uc2U6IGRhdGF9XG4gICAgcmV0dXJuIHtqb2luX3JlZjogam9pblJlZiwgcmVmOiByZWYsIHRvcGljOiB0b3BpYywgZXZlbnQ6IENIQU5ORUxfRVZFTlRTLnJlcGx5LCBwYXlsb2FkOiBwYXlsb2FkfVxuICB9LFxuXG4gIGRlY29kZUJyb2FkY2FzdChidWZmZXIsIHZpZXcsIGRlY29kZXIpe1xuICAgIGxldCB0b3BpY1NpemUgPSB2aWV3LmdldFVpbnQ4KDEpXG4gICAgbGV0IGV2ZW50U2l6ZSA9IHZpZXcuZ2V0VWludDgoMilcbiAgICBsZXQgb2Zmc2V0ID0gdGhpcy5IRUFERVJfTEVOR1RIICsgMlxuICAgIGxldCB0b3BpYyA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIHRvcGljU2l6ZSkpXG4gICAgb2Zmc2V0ID0gb2Zmc2V0ICsgdG9waWNTaXplXG4gICAgbGV0IGV2ZW50ID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgZXZlbnRTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyBldmVudFNpemVcbiAgICBsZXQgZGF0YSA9IGJ1ZmZlci5zbGljZShvZmZzZXQsIGJ1ZmZlci5ieXRlTGVuZ3RoKVxuXG4gICAgcmV0dXJuIHtqb2luX3JlZjogbnVsbCwgcmVmOiBudWxsLCB0b3BpYzogdG9waWMsIGV2ZW50OiBldmVudCwgcGF5bG9hZDogZGF0YX1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIGdsb2JhbCxcbiAgcGh4V2luZG93LFxuICBDSEFOTkVMX0VWRU5UUyxcbiAgREVGQVVMVF9USU1FT1VULFxuICBERUZBVUxUX1ZTTixcbiAgU09DS0VUX1NUQVRFUyxcbiAgVFJBTlNQT1JUUyxcbiAgV1NfQ0xPU0VfTk9STUFMXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCB7XG4gIGNsb3N1cmVcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5pbXBvcnQgQWpheCBmcm9tIFwiLi9hamF4XCJcbmltcG9ydCBDaGFubmVsIGZyb20gXCIuL2NoYW5uZWxcIlxuaW1wb3J0IExvbmdQb2xsIGZyb20gXCIuL2xvbmdwb2xsXCJcbmltcG9ydCBTZXJpYWxpemVyIGZyb20gXCIuL3NlcmlhbGl6ZXJcIlxuaW1wb3J0IFRpbWVyIGZyb20gXCIuL3RpbWVyXCJcblxuLyoqIEluaXRpYWxpemVzIHRoZSBTb2NrZXQgKlxuICpcbiAqIEZvciBJRTggc3VwcG9ydCB1c2UgYW4gRVM1LXNoaW0gKGh0dHBzOi8vZ2l0aHViLmNvbS9lcy1zaGltcy9lczUtc2hpbSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZW5kUG9pbnQgLSBUaGUgc3RyaW5nIFdlYlNvY2tldCBlbmRwb2ludCwgaWUsIGBcIndzOi8vZXhhbXBsZS5jb20vc29ja2V0XCJgLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBcIndzczovL2V4YW1wbGUuY29tXCJgXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFwiL3NvY2tldFwiYCAoaW5oZXJpdGVkIGhvc3QgJiBwcm90b2NvbClcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy50cmFuc3BvcnRdIC0gVGhlIFdlYnNvY2tldCBUcmFuc3BvcnQsIGZvciBleGFtcGxlIFdlYlNvY2tldCBvciBQaG9lbml4LkxvbmdQb2xsLlxuICpcbiAqIERlZmF1bHRzIHRvIFdlYlNvY2tldCB3aXRoIGF1dG9tYXRpYyBMb25nUG9sbCBmYWxsYmFjay5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRzLmVuY29kZV0gLSBUaGUgZnVuY3Rpb24gdG8gZW5jb2RlIG91dGdvaW5nIG1lc3NhZ2VzLlxuICpcbiAqIERlZmF1bHRzIHRvIEpTT04gZW5jb2Rlci5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy5kZWNvZGVdIC0gVGhlIGZ1bmN0aW9uIHRvIGRlY29kZSBpbmNvbWluZyBtZXNzYWdlcy5cbiAqXG4gKiBEZWZhdWx0cyB0byBKU09OOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIChwYXlsb2FkLCBjYWxsYmFjaykgPT4gY2FsbGJhY2soSlNPTi5wYXJzZShwYXlsb2FkKSlcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0cy50aW1lb3V0XSAtIFRoZSBkZWZhdWx0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHRyaWdnZXIgcHVzaCB0aW1lb3V0cy5cbiAqXG4gKiBEZWZhdWx0cyBgREVGQVVMVF9USU1FT1VUYFxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLmhlYXJ0YmVhdEludGVydmFsTXNdIC0gVGhlIG1pbGxpc2VjIGludGVydmFsIHRvIHNlbmQgYSBoZWFydGJlYXQgbWVzc2FnZVxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLnJlY29ubmVjdEFmdGVyTXNdIC0gVGhlIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgbWlsbGlzZWNcbiAqIHNvY2tldCByZWNvbm5lY3QgaW50ZXJ2YWwuXG4gKlxuICogRGVmYXVsdHMgdG8gc3RlcHBlZCBiYWNrb2ZmIG9mOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgcmV0dXJuIFsxMCwgNTAsIDEwMCwgMTUwLCAyMDAsIDI1MCwgNTAwLCAxMDAwLCAyMDAwXVt0cmllcyAtIDFdIHx8IDUwMDBcbiAqIH1cbiAqIGBgYGBcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdHMucmVqb2luQWZ0ZXJNc10gLSBUaGUgb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBtaWxsaXNlY1xuICogcmVqb2luIGludGVydmFsIGZvciBpbmRpdmlkdWFsIGNoYW5uZWxzLlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgcmV0dXJuIFsxMDAwLCAyMDAwLCA1MDAwXVt0cmllcyAtIDFdIHx8IDEwMDAwXG4gKiB9XG4gKiBgYGBgXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdHMubG9nZ2VyXSAtIFRoZSBvcHRpb25hbCBmdW5jdGlvbiBmb3Igc3BlY2lhbGl6ZWQgbG9nZ2luZywgaWU6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogZnVuY3Rpb24oa2luZCwgbXNnLCBkYXRhKSB7XG4gKiAgIGNvbnNvbGUubG9nKGAke2tpbmR9OiAke21zZ31gLCBkYXRhKVxuICogfVxuICogYGBgXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLmxvbmdwb2xsZXJUaW1lb3V0XSAtIFRoZSBtYXhpbXVtIHRpbWVvdXQgb2YgYSBsb25nIHBvbGwgQUpBWCByZXF1ZXN0LlxuICpcbiAqIERlZmF1bHRzIHRvIDIwcyAoZG91YmxlIHRoZSBzZXJ2ZXIgbG9uZyBwb2xsIHRpbWVyKS5cbiAqXG4gKiBAcGFyYW0geyhPYmplY3R8ZnVuY3Rpb24pfSBbb3B0cy5wYXJhbXNdIC0gVGhlIG9wdGlvbmFsIHBhcmFtcyB0byBwYXNzIHdoZW4gY29ubmVjdGluZ1xuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmJpbmFyeVR5cGVdIC0gVGhlIGJpbmFyeSB0eXBlIHRvIHVzZSBmb3IgYmluYXJ5IFdlYlNvY2tldCBmcmFtZXMuXG4gKlxuICogRGVmYXVsdHMgdG8gXCJhcnJheWJ1ZmZlclwiXG4gKlxuICogQHBhcmFtIHt2c259IFtvcHRzLnZzbl0gLSBUaGUgc2VyaWFsaXplcidzIHByb3RvY29sIHZlcnNpb24gdG8gc2VuZCBvbiBjb25uZWN0LlxuICpcbiAqIERlZmF1bHRzIHRvIERFRkFVTFRfVlNOLlxuKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNvY2tldCB7XG4gIGNvbnN0cnVjdG9yKGVuZFBvaW50LCBvcHRzID0ge30pe1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MgPSB7b3BlbjogW10sIGNsb3NlOiBbXSwgZXJyb3I6IFtdLCBtZXNzYWdlOiBbXX1cbiAgICB0aGlzLmNoYW5uZWxzID0gW11cbiAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXVxuICAgIHRoaXMucmVmID0gMFxuICAgIHRoaXMudGltZW91dCA9IG9wdHMudGltZW91dCB8fCBERUZBVUxUX1RJTUVPVVRcbiAgICB0aGlzLnRyYW5zcG9ydCA9IG9wdHMudHJhbnNwb3J0IHx8IGdsb2JhbC5XZWJTb2NrZXQgfHwgTG9uZ1BvbGxcbiAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbnMgPSAwXG4gICAgdGhpcy5kZWZhdWx0RW5jb2RlciA9IFNlcmlhbGl6ZXIuZW5jb2RlLmJpbmQoU2VyaWFsaXplcilcbiAgICB0aGlzLmRlZmF1bHREZWNvZGVyID0gU2VyaWFsaXplci5kZWNvZGUuYmluZChTZXJpYWxpemVyKVxuICAgIHRoaXMuY2xvc2VXYXNDbGVhbiA9IGZhbHNlXG4gICAgdGhpcy5iaW5hcnlUeXBlID0gb3B0cy5iaW5hcnlUeXBlIHx8IFwiYXJyYXlidWZmZXJcIlxuICAgIHRoaXMuY29ubmVjdENsb2NrID0gMVxuICAgIGlmKHRoaXMudHJhbnNwb3J0ICE9PSBMb25nUG9sbCl7XG4gICAgICB0aGlzLmVuY29kZSA9IG9wdHMuZW5jb2RlIHx8IHRoaXMuZGVmYXVsdEVuY29kZXJcbiAgICAgIHRoaXMuZGVjb2RlID0gb3B0cy5kZWNvZGUgfHwgdGhpcy5kZWZhdWx0RGVjb2RlclxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVuY29kZSA9IHRoaXMuZGVmYXVsdEVuY29kZXJcbiAgICAgIHRoaXMuZGVjb2RlID0gdGhpcy5kZWZhdWx0RGVjb2RlclxuICAgIH1cbiAgICBsZXQgYXdhaXRpbmdDb25uZWN0aW9uT25QYWdlU2hvdyA9IG51bGxcbiAgICBpZihwaHhXaW5kb3cgJiYgcGh4V2luZG93LmFkZEV2ZW50TGlzdGVuZXIpe1xuICAgICAgcGh4V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCBfZSA9PiB7XG4gICAgICAgIGlmKHRoaXMuY29ubil7XG4gICAgICAgICAgdGhpcy5kaXNjb25uZWN0KClcbiAgICAgICAgICBhd2FpdGluZ0Nvbm5lY3Rpb25PblBhZ2VTaG93ID0gdGhpcy5jb25uZWN0Q2xvY2tcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHBoeFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicGFnZXNob3dcIiwgX2UgPT4ge1xuICAgICAgICBpZihhd2FpdGluZ0Nvbm5lY3Rpb25PblBhZ2VTaG93ID09PSB0aGlzLmNvbm5lY3RDbG9jayl7XG4gICAgICAgICAgYXdhaXRpbmdDb25uZWN0aW9uT25QYWdlU2hvdyA9IG51bGxcbiAgICAgICAgICB0aGlzLmNvbm5lY3QoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLmhlYXJ0YmVhdEludGVydmFsTXMgPSBvcHRzLmhlYXJ0YmVhdEludGVydmFsTXMgfHwgMzAwMDBcbiAgICB0aGlzLnJlam9pbkFmdGVyTXMgPSAodHJpZXMpID0+IHtcbiAgICAgIGlmKG9wdHMucmVqb2luQWZ0ZXJNcyl7XG4gICAgICAgIHJldHVybiBvcHRzLnJlam9pbkFmdGVyTXModHJpZXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gWzEwMDAsIDIwMDAsIDUwMDBdW3RyaWVzIC0gMV0gfHwgMTAwMDBcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZWNvbm5lY3RBZnRlck1zID0gKHRyaWVzKSA9PiB7XG4gICAgICBpZihvcHRzLnJlY29ubmVjdEFmdGVyTXMpe1xuICAgICAgICByZXR1cm4gb3B0cy5yZWNvbm5lY3RBZnRlck1zKHRyaWVzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsxMCwgNTAsIDEwMCwgMTUwLCAyMDAsIDI1MCwgNTAwLCAxMDAwLCAyMDAwXVt0cmllcyAtIDFdIHx8IDUwMDBcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRzLmxvZ2dlciB8fCBudWxsXG4gICAgdGhpcy5sb25ncG9sbGVyVGltZW91dCA9IG9wdHMubG9uZ3BvbGxlclRpbWVvdXQgfHwgMjAwMDBcbiAgICB0aGlzLnBhcmFtcyA9IGNsb3N1cmUob3B0cy5wYXJhbXMgfHwge30pXG4gICAgdGhpcy5lbmRQb2ludCA9IGAke2VuZFBvaW50fS8ke1RSQU5TUE9SVFMud2Vic29ja2V0fWBcbiAgICB0aGlzLnZzbiA9IG9wdHMudnNuIHx8IERFRkFVTFRfVlNOXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lb3V0VGltZXIgPSBudWxsXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IG51bGxcbiAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsXG4gICAgdGhpcy5yZWNvbm5lY3RUaW1lciA9IG5ldyBUaW1lcigoKSA9PiB7XG4gICAgICB0aGlzLnRlYXJkb3duKCgpID0+IHRoaXMuY29ubmVjdCgpKVxuICAgIH0sIHRoaXMucmVjb25uZWN0QWZ0ZXJNcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBMb25nUG9sbCB0cmFuc3BvcnQgcmVmZXJlbmNlXG4gICAqL1xuICBnZXRMb25nUG9sbFRyYW5zcG9ydCgpeyByZXR1cm4gTG9uZ1BvbGwgfVxuXG4gIC8qKlxuICAgKiBEaXNjb25uZWN0cyBhbmQgcmVwbGFjZXMgdGhlIGFjdGl2ZSB0cmFuc3BvcnRcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbmV3VHJhbnNwb3J0IC0gVGhlIG5ldyB0cmFuc3BvcnQgY2xhc3MgdG8gaW5zdGFudGlhdGVcbiAgICpcbiAgICovXG4gIHJlcGxhY2VUcmFuc3BvcnQobmV3VHJhbnNwb3J0KXtcbiAgICB0aGlzLmNvbm5lY3RDbG9jaysrXG4gICAgdGhpcy5jbG9zZVdhc0NsZWFuID0gdHJ1ZVxuICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKVxuICAgIHRoaXMuc2VuZEJ1ZmZlciA9IFtdXG4gICAgaWYodGhpcy5jb25uKXtcbiAgICAgIHRoaXMuY29ubi5jbG9zZSgpXG4gICAgICB0aGlzLmNvbm4gPSBudWxsXG4gICAgfVxuICAgIHRoaXMudHJhbnNwb3J0ID0gbmV3VHJhbnNwb3J0XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc29ja2V0IHByb3RvY29sXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBwcm90b2NvbCgpeyByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wubWF0Y2goL15odHRwcy8pID8gXCJ3c3NcIiA6IFwid3NcIiB9XG5cbiAgLyoqXG4gICAqIFRoZSBmdWxseSBxdWFsaWZpZWQgc29ja2V0IHVybFxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZW5kUG9pbnRVUkwoKXtcbiAgICBsZXQgdXJpID0gQWpheC5hcHBlbmRQYXJhbXMoXG4gICAgICBBamF4LmFwcGVuZFBhcmFtcyh0aGlzLmVuZFBvaW50LCB0aGlzLnBhcmFtcygpKSwge3ZzbjogdGhpcy52c259KVxuICAgIGlmKHVyaS5jaGFyQXQoMCkgIT09IFwiL1wiKXsgcmV0dXJuIHVyaSB9XG4gICAgaWYodXJpLmNoYXJBdCgxKSA9PT0gXCIvXCIpeyByZXR1cm4gYCR7dGhpcy5wcm90b2NvbCgpfToke3VyaX1gIH1cblxuICAgIHJldHVybiBgJHt0aGlzLnByb3RvY29sKCl9Oi8vJHtsb2NhdGlvbi5ob3N0fSR7dXJpfWBcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNjb25uZWN0cyB0aGUgc29ja2V0XG4gICAqXG4gICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQ2xvc2VFdmVudCNTdGF0dXNfY29kZXMgZm9yIHZhbGlkIHN0YXR1cyBjb2Rlcy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBPcHRpb25hbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgc29ja2V0IGlzIGRpc2Nvbm5lY3RlZC5cbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBjb2RlIC0gQSBzdGF0dXMgY29kZSBmb3IgZGlzY29ubmVjdGlvbiAoT3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gQSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSByZWFzb24gdG8gZGlzY29ubmVjdC4gKE9wdGlvbmFsKVxuICAgKi9cbiAgZGlzY29ubmVjdChjYWxsYmFjaywgY29kZSwgcmVhc29uKXtcbiAgICB0aGlzLmNvbm5lY3RDbG9jaysrXG4gICAgdGhpcy5jbG9zZVdhc0NsZWFuID0gdHJ1ZVxuICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKVxuICAgIHRoaXMudGVhcmRvd24oY2FsbGJhY2ssIGNvZGUsIHJlYXNvbilcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtcyB0byBzZW5kIHdoZW4gY29ubmVjdGluZywgZm9yIGV4YW1wbGUgYHt1c2VyX2lkOiB1c2VyVG9rZW59YFxuICAgKlxuICAgKiBQYXNzaW5nIHBhcmFtcyB0byBjb25uZWN0IGlzIGRlcHJlY2F0ZWQ7IHBhc3MgdGhlbSBpbiB0aGUgU29ja2V0IGNvbnN0cnVjdG9yIGluc3RlYWQ6XG4gICAqIGBuZXcgU29ja2V0KFwiL3NvY2tldFwiLCB7cGFyYW1zOiB7dXNlcl9pZDogdXNlclRva2VufX0pYC5cbiAgICovXG4gIGNvbm5lY3QocGFyYW1zKXtcbiAgICBpZihwYXJhbXMpe1xuICAgICAgY29uc29sZSAmJiBjb25zb2xlLmxvZyhcInBhc3NpbmcgcGFyYW1zIHRvIGNvbm5lY3QgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCBwYXNzIDpwYXJhbXMgdG8gdGhlIFNvY2tldCBjb25zdHJ1Y3RvclwiKVxuICAgICAgdGhpcy5wYXJhbXMgPSBjbG9zdXJlKHBhcmFtcylcbiAgICB9XG4gICAgaWYodGhpcy5jb25uKXsgcmV0dXJuIH1cblxuICAgIHRoaXMuY29ubmVjdENsb2NrKytcbiAgICB0aGlzLmNsb3NlV2FzQ2xlYW4gPSBmYWxzZVxuICAgIHRoaXMuY29ubiA9IG5ldyB0aGlzLnRyYW5zcG9ydCh0aGlzLmVuZFBvaW50VVJMKCkpXG4gICAgdGhpcy5jb25uLmJpbmFyeVR5cGUgPSB0aGlzLmJpbmFyeVR5cGVcbiAgICB0aGlzLmNvbm4udGltZW91dCA9IHRoaXMubG9uZ3BvbGxlclRpbWVvdXRcbiAgICB0aGlzLmNvbm4ub25vcGVuID0gKCkgPT4gdGhpcy5vbkNvbm5PcGVuKClcbiAgICB0aGlzLmNvbm4ub25lcnJvciA9IGVycm9yID0+IHRoaXMub25Db25uRXJyb3IoZXJyb3IpXG4gICAgdGhpcy5jb25uLm9ubWVzc2FnZSA9IGV2ZW50ID0+IHRoaXMub25Db25uTWVzc2FnZShldmVudClcbiAgICB0aGlzLmNvbm4ub25jbG9zZSA9IGV2ZW50ID0+IHRoaXMub25Db25uQ2xvc2UoZXZlbnQpXG4gIH1cblxuICAvKipcbiAgICogTG9ncyB0aGUgbWVzc2FnZS4gT3ZlcnJpZGUgYHRoaXMubG9nZ2VyYCBmb3Igc3BlY2lhbGl6ZWQgbG9nZ2luZy4gbm9vcHMgYnkgZGVmYXVsdFxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2luZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbXNnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhXG4gICAqL1xuICBsb2coa2luZCwgbXNnLCBkYXRhKXsgdGhpcy5sb2dnZXIoa2luZCwgbXNnLCBkYXRhKSB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhIGxvZ2dlciBoYXMgYmVlbiBzZXQgb24gdGhpcyBzb2NrZXQuXG4gICAqL1xuICBoYXNMb2dnZXIoKXsgcmV0dXJuIHRoaXMubG9nZ2VyICE9PSBudWxsIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGNhbGxiYWNrcyBmb3IgY29ubmVjdGlvbiBvcGVuIGV2ZW50c1xuICAgKlxuICAgKiBAZXhhbXBsZSBzb2NrZXQub25PcGVuKGZ1bmN0aW9uKCl7IGNvbnNvbGUuaW5mbyhcInRoZSBzb2NrZXQgd2FzIG9wZW5lZFwiKSB9KVxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICAgKi9cbiAgb25PcGVuKGNhbGxiYWNrKXtcbiAgICBsZXQgcmVmID0gdGhpcy5tYWtlUmVmKClcbiAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm9wZW4ucHVzaChbcmVmLCBjYWxsYmFja10pXG4gICAgcmV0dXJuIHJlZlxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBjYWxsYmFja3MgZm9yIGNvbm5lY3Rpb24gY2xvc2UgZXZlbnRzXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqL1xuICBvbkNsb3NlKGNhbGxiYWNrKXtcbiAgICBsZXQgcmVmID0gdGhpcy5tYWtlUmVmKClcbiAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmNsb3NlLnB1c2goW3JlZiwgY2FsbGJhY2tdKVxuICAgIHJldHVybiByZWZcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgY2FsbGJhY2tzIGZvciBjb25uZWN0aW9uIGVycm9yIGV2ZW50c1xuICAgKlxuICAgKiBAZXhhbXBsZSBzb2NrZXQub25FcnJvcihmdW5jdGlvbihlcnJvcil7IGFsZXJ0KFwiQW4gZXJyb3Igb2NjdXJyZWRcIikgfSlcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIG9uRXJyb3IoY2FsbGJhY2spe1xuICAgIGxldCByZWYgPSB0aGlzLm1ha2VSZWYoKVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MuZXJyb3IucHVzaChbcmVmLCBjYWxsYmFja10pXG4gICAgcmV0dXJuIHJlZlxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBjYWxsYmFja3MgZm9yIGNvbm5lY3Rpb24gbWVzc2FnZSBldmVudHNcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIG9uTWVzc2FnZShjYWxsYmFjayl7XG4gICAgbGV0IHJlZiA9IHRoaXMubWFrZVJlZigpXG4gICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5tZXNzYWdlLnB1c2goW3JlZiwgY2FsbGJhY2tdKVxuICAgIHJldHVybiByZWZcbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5ncyB0aGUgc2VydmVyIGFuZCBpbnZva2VzIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBSVFQgaW4gbWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGluZyB3YXMgcHVzaGVkIG9yIGZhbHNlIGlmIHVuYWJsZSB0byBiZSBwdXNoZWQuXG4gICAqL1xuICBwaW5nKGNhbGxiYWNrKXtcbiAgICBpZighdGhpcy5pc0Nvbm5lY3RlZCgpKXsgcmV0dXJuIGZhbHNlIH1cbiAgICBsZXQgcmVmID0gdGhpcy5tYWtlUmVmKClcbiAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgIHRoaXMucHVzaCh7dG9waWM6IFwicGhvZW5peFwiLCBldmVudDogXCJoZWFydGJlYXRcIiwgcGF5bG9hZDoge30sIHJlZjogcmVmfSlcbiAgICBsZXQgb25Nc2dSZWYgPSB0aGlzLm9uTWVzc2FnZShtc2cgPT4ge1xuICAgICAgaWYobXNnLnJlZiA9PT0gcmVmKXtcbiAgICAgICAgdGhpcy5vZmYoW29uTXNnUmVmXSlcbiAgICAgICAgY2FsbGJhY2soRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG5cbiAgY2xlYXJIZWFydGJlYXRzKCl7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuaGVhcnRiZWF0VGltZXIpXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuaGVhcnRiZWF0VGltZW91dFRpbWVyKVxuICB9XG5cbiAgb25Db25uT3Blbigpe1xuICAgIGlmKHRoaXMuaGFzTG9nZ2VyKCkpIHRoaXMubG9nKFwidHJhbnNwb3J0XCIsIGBjb25uZWN0ZWQgdG8gJHt0aGlzLmVuZFBvaW50VVJMKCl9YClcbiAgICB0aGlzLmNsb3NlV2FzQ2xlYW4gPSBmYWxzZVxuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9ucysrXG4gICAgdGhpcy5mbHVzaFNlbmRCdWZmZXIoKVxuICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKVxuICAgIHRoaXMucmVzZXRIZWFydGJlYXQoKVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3Mub3Blbi5mb3JFYWNoKChbLCBjYWxsYmFja10pID0+IGNhbGxiYWNrKCkpXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG5cbiAgaGVhcnRiZWF0VGltZW91dCgpe1xuICAgIGlmKHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZil7XG4gICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsXG4gICAgICBpZih0aGlzLmhhc0xvZ2dlcigpKXsgdGhpcy5sb2coXCJ0cmFuc3BvcnRcIiwgXCJoZWFydGJlYXQgdGltZW91dC4gQXR0ZW1wdGluZyB0byByZS1lc3RhYmxpc2ggY29ubmVjdGlvblwiKSB9XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuRXJyb3IoKVxuICAgICAgdGhpcy5jbG9zZVdhc0NsZWFuID0gZmFsc2VcbiAgICAgIHRoaXMudGVhcmRvd24oKCkgPT4gdGhpcy5yZWNvbm5lY3RUaW1lci5zY2hlZHVsZVRpbWVvdXQoKSwgV1NfQ0xPU0VfTk9STUFMLCBcImhlYXJ0YmVhdCB0aW1lb3V0XCIpXG4gICAgfVxuICB9XG5cbiAgcmVzZXRIZWFydGJlYXQoKXtcbiAgICBpZih0aGlzLmNvbm4gJiYgdGhpcy5jb25uLnNraXBIZWFydGJlYXQpeyByZXR1cm4gfVxuICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IG51bGxcbiAgICB0aGlzLmNsZWFySGVhcnRiZWF0cygpXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZW5kSGVhcnRiZWF0KCksIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcylcbiAgfVxuXG4gIHRlYXJkb3duKGNhbGxiYWNrLCBjb2RlLCByZWFzb24pe1xuICAgIGlmKCF0aGlzLmNvbm4pe1xuICAgICAgcmV0dXJuIGNhbGxiYWNrICYmIGNhbGxiYWNrKClcbiAgICB9XG5cbiAgICB0aGlzLndhaXRGb3JCdWZmZXJEb25lKCgpID0+IHtcbiAgICAgIGlmKHRoaXMuY29ubil7XG4gICAgICAgIGlmKGNvZGUpeyB0aGlzLmNvbm4uY2xvc2UoY29kZSwgcmVhc29uIHx8IFwiXCIpIH0gZWxzZSB7IHRoaXMuY29ubi5jbG9zZSgpIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy53YWl0Rm9yU29ja2V0Q2xvc2VkKCgpID0+IHtcbiAgICAgICAgaWYodGhpcy5jb25uKXtcbiAgICAgICAgICB0aGlzLmNvbm4ub25vcGVuID0gZnVuY3Rpb24gKCl7IH0gLy8gbm9vcFxuICAgICAgICAgIHRoaXMuY29ubi5vbmVycm9yID0gZnVuY3Rpb24gKCl7IH0gLy8gbm9vcFxuICAgICAgICAgIHRoaXMuY29ubi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgICAgICAgdGhpcy5jb25uLm9uY2xvc2UgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgICAgICAgdGhpcy5jb25uID0gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgd2FpdEZvckJ1ZmZlckRvbmUoY2FsbGJhY2ssIHRyaWVzID0gMSl7XG4gICAgaWYodHJpZXMgPT09IDUgfHwgIXRoaXMuY29ubiB8fCAhdGhpcy5jb25uLmJ1ZmZlcmVkQW1vdW50KXtcbiAgICAgIGNhbGxiYWNrKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy53YWl0Rm9yQnVmZmVyRG9uZShjYWxsYmFjaywgdHJpZXMgKyAxKVxuICAgIH0sIDE1MCAqIHRyaWVzKVxuICB9XG5cbiAgd2FpdEZvclNvY2tldENsb3NlZChjYWxsYmFjaywgdHJpZXMgPSAxKXtcbiAgICBpZih0cmllcyA9PT0gNSB8fCAhdGhpcy5jb25uIHx8IHRoaXMuY29ubi5yZWFkeVN0YXRlID09PSBTT0NLRVRfU1RBVEVTLmNsb3NlZCl7XG4gICAgICBjYWxsYmFjaygpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMud2FpdEZvclNvY2tldENsb3NlZChjYWxsYmFjaywgdHJpZXMgKyAxKVxuICAgIH0sIDE1MCAqIHRyaWVzKVxuICB9XG5cbiAgb25Db25uQ2xvc2UoZXZlbnQpe1xuICAgIGxldCBjbG9zZUNvZGUgPSBldmVudCAmJiBldmVudC5jb2RlXG4gICAgaWYodGhpcy5oYXNMb2dnZXIoKSkgdGhpcy5sb2coXCJ0cmFuc3BvcnRcIiwgXCJjbG9zZVwiLCBldmVudClcbiAgICB0aGlzLnRyaWdnZXJDaGFuRXJyb3IoKVxuICAgIHRoaXMuY2xlYXJIZWFydGJlYXRzKClcbiAgICBpZighdGhpcy5jbG9zZVdhc0NsZWFuICYmIGNsb3NlQ29kZSAhPT0gMTAwMCl7XG4gICAgICB0aGlzLnJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpXG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MuY2xvc2UuZm9yRWFjaCgoWywgY2FsbGJhY2tdKSA9PiBjYWxsYmFjayhldmVudCkpXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIG9uQ29ubkVycm9yKGVycm9yKXtcbiAgICBpZih0aGlzLmhhc0xvZ2dlcigpKSB0aGlzLmxvZyhcInRyYW5zcG9ydFwiLCBlcnJvcilcbiAgICBsZXQgdHJhbnNwb3J0QmVmb3JlID0gdGhpcy50cmFuc3BvcnRcbiAgICBsZXQgZXN0YWJsaXNoZWRCZWZvcmUgPSB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbnNcbiAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmVycm9yLmZvckVhY2goKFssIGNhbGxiYWNrXSkgPT4ge1xuICAgICAgY2FsbGJhY2soZXJyb3IsIHRyYW5zcG9ydEJlZm9yZSwgZXN0YWJsaXNoZWRCZWZvcmUpXG4gICAgfSlcbiAgICBpZih0cmFuc3BvcnRCZWZvcmUgPT09IHRoaXMudHJhbnNwb3J0IHx8IGVzdGFibGlzaGVkQmVmb3JlID4gMCl7XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuRXJyb3IoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdHJpZ2dlckNoYW5FcnJvcigpe1xuICAgIHRoaXMuY2hhbm5lbHMuZm9yRWFjaChjaGFubmVsID0+IHtcbiAgICAgIGlmKCEoY2hhbm5lbC5pc0Vycm9yZWQoKSB8fCBjaGFubmVsLmlzTGVhdmluZygpIHx8IGNoYW5uZWwuaXNDbG9zZWQoKSkpe1xuICAgICAgICBjaGFubmVsLnRyaWdnZXIoQ0hBTk5FTF9FVkVOVFMuZXJyb3IpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgY29ubmVjdGlvblN0YXRlKCl7XG4gICAgc3dpdGNoKHRoaXMuY29ubiAmJiB0aGlzLmNvbm4ucmVhZHlTdGF0ZSl7XG4gICAgICBjYXNlIFNPQ0tFVF9TVEFURVMuY29ubmVjdGluZzogcmV0dXJuIFwiY29ubmVjdGluZ1wiXG4gICAgICBjYXNlIFNPQ0tFVF9TVEFURVMub3BlbjogcmV0dXJuIFwib3BlblwiXG4gICAgICBjYXNlIFNPQ0tFVF9TVEFURVMuY2xvc2luZzogcmV0dXJuIFwiY2xvc2luZ1wiXG4gICAgICBkZWZhdWx0OiByZXR1cm4gXCJjbG9zZWRcIlxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGlzQ29ubmVjdGVkKCl7IHJldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0ZSgpID09PSBcIm9wZW5cIiB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqXG4gICAqIEBwYXJhbSB7Q2hhbm5lbH1cbiAgICovXG4gIHJlbW92ZShjaGFubmVsKXtcbiAgICB0aGlzLm9mZihjaGFubmVsLnN0YXRlQ2hhbmdlUmVmcylcbiAgICB0aGlzLmNoYW5uZWxzID0gdGhpcy5jaGFubmVscy5maWx0ZXIoYyA9PiBjLmpvaW5SZWYoKSAhPT0gY2hhbm5lbC5qb2luUmVmKCkpXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBgb25PcGVuYCwgYG9uQ2xvc2VgLCBgb25FcnJvcixgIGFuZCBgb25NZXNzYWdlYCByZWdpc3RyYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge3JlZnN9IC0gbGlzdCBvZiByZWZzIHJldHVybmVkIGJ5IGNhbGxzIHRvXG4gICAqICAgICAgICAgICAgICAgICBgb25PcGVuYCwgYG9uQ2xvc2VgLCBgb25FcnJvcixgIGFuZCBgb25NZXNzYWdlYFxuICAgKi9cbiAgb2ZmKHJlZnMpe1xuICAgIGZvcihsZXQga2V5IGluIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3Mpe1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrc1trZXldID0gdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrc1trZXldLmZpbHRlcigoW3JlZl0pID0+IHtcbiAgICAgICAgcmV0dXJuIHJlZnMuaW5kZXhPZihyZWYpID09PSAtMVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbmV3IGNoYW5uZWwgZm9yIHRoZSBnaXZlbiB0b3BpY1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9waWNcbiAgICogQHBhcmFtIHtPYmplY3R9IGNoYW5QYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgY2hhbm5lbFxuICAgKiBAcmV0dXJucyB7Q2hhbm5lbH1cbiAgICovXG4gIGNoYW5uZWwodG9waWMsIGNoYW5QYXJhbXMgPSB7fSl7XG4gICAgbGV0IGNoYW4gPSBuZXcgQ2hhbm5lbCh0b3BpYywgY2hhblBhcmFtcywgdGhpcylcbiAgICB0aGlzLmNoYW5uZWxzLnB1c2goY2hhbilcbiAgICByZXR1cm4gY2hhblxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhXG4gICAqL1xuICBwdXNoKGRhdGEpe1xuICAgIGlmKHRoaXMuaGFzTG9nZ2VyKCkpe1xuICAgICAgbGV0IHt0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiwgam9pbl9yZWZ9ID0gZGF0YVxuICAgICAgdGhpcy5sb2coXCJwdXNoXCIsIGAke3RvcGljfSAke2V2ZW50fSAoJHtqb2luX3JlZn0sICR7cmVmfSlgLCBwYXlsb2FkKVxuICAgIH1cblxuICAgIGlmKHRoaXMuaXNDb25uZWN0ZWQoKSl7XG4gICAgICB0aGlzLmVuY29kZShkYXRhLCByZXN1bHQgPT4gdGhpcy5jb25uLnNlbmQocmVzdWx0KSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kQnVmZmVyLnB1c2goKCkgPT4gdGhpcy5lbmNvZGUoZGF0YSwgcmVzdWx0ID0+IHRoaXMuY29ubi5zZW5kKHJlc3VsdCkpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5leHQgbWVzc2FnZSByZWYsIGFjY291bnRpbmcgZm9yIG92ZXJmbG93c1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgbWFrZVJlZigpe1xuICAgIGxldCBuZXdSZWYgPSB0aGlzLnJlZiArIDFcbiAgICBpZihuZXdSZWYgPT09IHRoaXMucmVmKXsgdGhpcy5yZWYgPSAwIH0gZWxzZSB7IHRoaXMucmVmID0gbmV3UmVmIH1cblxuICAgIHJldHVybiB0aGlzLnJlZi50b1N0cmluZygpXG4gIH1cblxuICBzZW5kSGVhcnRiZWF0KCl7XG4gICAgaWYodGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmICYmICF0aGlzLmlzQ29ubmVjdGVkKCkpeyByZXR1cm4gfVxuICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IHRoaXMubWFrZVJlZigpXG4gICAgdGhpcy5wdXNoKHt0b3BpYzogXCJwaG9lbml4XCIsIGV2ZW50OiBcImhlYXJ0YmVhdFwiLCBwYXlsb2FkOiB7fSwgcmVmOiB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWZ9KVxuICAgIHRoaXMuaGVhcnRiZWF0VGltZW91dFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmhlYXJ0YmVhdFRpbWVvdXQoKSwgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zKVxuICB9XG5cbiAgZmx1c2hTZW5kQnVmZmVyKCl7XG4gICAgaWYodGhpcy5pc0Nvbm5lY3RlZCgpICYmIHRoaXMuc2VuZEJ1ZmZlci5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMuc2VuZEJ1ZmZlci5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKCkpXG4gICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXVxuICAgIH1cbiAgfVxuXG4gIG9uQ29ubk1lc3NhZ2UocmF3TWVzc2FnZSl7XG4gICAgdGhpcy5kZWNvZGUocmF3TWVzc2FnZS5kYXRhLCBtc2cgPT4ge1xuICAgICAgbGV0IHt0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiwgam9pbl9yZWZ9ID0gbXNnXG4gICAgICBpZihyZWYgJiYgcmVmID09PSB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYpe1xuICAgICAgICB0aGlzLmNsZWFySGVhcnRiZWF0cygpXG4gICAgICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IG51bGxcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZW5kSGVhcnRiZWF0KCksIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcylcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5oYXNMb2dnZXIoKSkgdGhpcy5sb2coXCJyZWNlaXZlXCIsIGAke3BheWxvYWQuc3RhdHVzIHx8IFwiXCJ9ICR7dG9waWN9ICR7ZXZlbnR9ICR7cmVmICYmIFwiKFwiICsgcmVmICsgXCIpXCIgfHwgXCJcIn1gLCBwYXlsb2FkKVxuXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGFubmVscy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLmNoYW5uZWxzW2ldXG4gICAgICAgIGlmKCFjaGFubmVsLmlzTWVtYmVyKHRvcGljLCBldmVudCwgcGF5bG9hZCwgam9pbl9yZWYpKXsgY29udGludWUgfVxuICAgICAgICBjaGFubmVsLnRyaWdnZXIoZXZlbnQsIHBheWxvYWQsIHJlZiwgam9pbl9yZWYpXG4gICAgICB9XG5cbiAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm1lc3NhZ2UubGVuZ3RoOyBpKyspe1xuICAgICAgICBsZXQgWywgY2FsbGJhY2tdID0gdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5tZXNzYWdlW2ldXG4gICAgICAgIGNhbGxiYWNrKG1zZylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbGVhdmVPcGVuVG9waWModG9waWMpe1xuICAgIGxldCBkdXBDaGFubmVsID0gdGhpcy5jaGFubmVscy5maW5kKGMgPT4gYy50b3BpYyA9PT0gdG9waWMgJiYgKGMuaXNKb2luZWQoKSB8fCBjLmlzSm9pbmluZygpKSlcbiAgICBpZihkdXBDaGFubmVsKXtcbiAgICAgIGlmKHRoaXMuaGFzTG9nZ2VyKCkpIHRoaXMubG9nKFwidHJhbnNwb3J0XCIsIGBsZWF2aW5nIGR1cGxpY2F0ZSB0b3BpYyBcIiR7dG9waWN9XCJgKVxuICAgICAgZHVwQ2hhbm5lbC5sZWF2ZSgpXG4gICAgfVxuICB9XG59IiwgIlxuZXhwb3J0IGNvbnN0IENPTlNFQ1VUSVZFX1JFTE9BRFMgPSBcImNvbnNlY3V0aXZlLXJlbG9hZHNcIlxuZXhwb3J0IGNvbnN0IE1BWF9SRUxPQURTID0gMTBcbmV4cG9ydCBjb25zdCBSRUxPQURfSklUVEVSX01JTiA9IDUwMDBcbmV4cG9ydCBjb25zdCBSRUxPQURfSklUVEVSX01BWCA9IDEwMDAwXG5leHBvcnQgY29uc3QgRkFJTFNBRkVfSklUVEVSID0gMzAwMDBcbmV4cG9ydCBjb25zdCBQSFhfRVZFTlRfQ0xBU1NFUyA9IFtcbiAgXCJwaHgtY2xpY2stbG9hZGluZ1wiLCBcInBoeC1jaGFuZ2UtbG9hZGluZ1wiLCBcInBoeC1zdWJtaXQtbG9hZGluZ1wiLFxuICBcInBoeC1rZXlkb3duLWxvYWRpbmdcIiwgXCJwaHgta2V5dXAtbG9hZGluZ1wiLCBcInBoeC1ibHVyLWxvYWRpbmdcIiwgXCJwaHgtZm9jdXMtbG9hZGluZ1wiXG5dXG5leHBvcnQgY29uc3QgUEhYX0NPTVBPTkVOVCA9IFwiZGF0YS1waHgtY29tcG9uZW50XCJcbmV4cG9ydCBjb25zdCBQSFhfTElWRV9MSU5LID0gXCJkYXRhLXBoeC1saW5rXCJcbmV4cG9ydCBjb25zdCBQSFhfVFJBQ0tfU1RBVElDID0gXCJ0cmFjay1zdGF0aWNcIlxuZXhwb3J0IGNvbnN0IFBIWF9MSU5LX1NUQVRFID0gXCJkYXRhLXBoeC1saW5rLXN0YXRlXCJcbmV4cG9ydCBjb25zdCBQSFhfUkVGID0gXCJkYXRhLXBoeC1yZWZcIlxuZXhwb3J0IGNvbnN0IFBIWF9SRUZfU1JDID0gXCJkYXRhLXBoeC1yZWYtc3JjXCJcbmV4cG9ydCBjb25zdCBQSFhfVFJBQ0tfVVBMT0FEUyA9IFwidHJhY2stdXBsb2Fkc1wiXG5leHBvcnQgY29uc3QgUEhYX1VQTE9BRF9SRUYgPSBcImRhdGEtcGh4LXVwbG9hZC1yZWZcIlxuZXhwb3J0IGNvbnN0IFBIWF9QUkVGTElHSFRFRF9SRUZTID0gXCJkYXRhLXBoeC1wcmVmbGlnaHRlZC1yZWZzXCJcbmV4cG9ydCBjb25zdCBQSFhfRE9ORV9SRUZTID0gXCJkYXRhLXBoeC1kb25lLXJlZnNcIlxuZXhwb3J0IGNvbnN0IFBIWF9EUk9QX1RBUkdFVCA9IFwiZHJvcC10YXJnZXRcIlxuZXhwb3J0IGNvbnN0IFBIWF9BQ1RJVkVfRU5UUllfUkVGUyA9IFwiZGF0YS1waHgtYWN0aXZlLXJlZnNcIlxuZXhwb3J0IGNvbnN0IFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCA9IFwicGh4OmxpdmUtZmlsZTp1cGRhdGVkXCJcbmV4cG9ydCBjb25zdCBQSFhfU0tJUCA9IFwiZGF0YS1waHgtc2tpcFwiXG5leHBvcnQgY29uc3QgUEhYX1BSVU5FID0gXCJkYXRhLXBoeC1wcnVuZVwiXG5leHBvcnQgY29uc3QgUEhYX1BBR0VfTE9BRElORyA9IFwicGFnZS1sb2FkaW5nXCJcbmV4cG9ydCBjb25zdCBQSFhfQ09OTkVDVEVEX0NMQVNTID0gXCJwaHgtY29ubmVjdGVkXCJcbmV4cG9ydCBjb25zdCBQSFhfRElTQ09OTkVDVEVEX0NMQVNTID0gXCJwaHgtbG9hZGluZ1wiXG5leHBvcnQgY29uc3QgUEhYX05PX0ZFRURCQUNLX0NMQVNTID0gXCJwaHgtbm8tZmVlZGJhY2tcIlxuZXhwb3J0IGNvbnN0IFBIWF9FUlJPUl9DTEFTUyA9IFwicGh4LWVycm9yXCJcbmV4cG9ydCBjb25zdCBQSFhfUEFSRU5UX0lEID0gXCJkYXRhLXBoeC1wYXJlbnQtaWRcIlxuZXhwb3J0IGNvbnN0IFBIWF9NQUlOID0gXCJkYXRhLXBoeC1tYWluXCJcbmV4cG9ydCBjb25zdCBQSFhfUk9PVF9JRCA9IFwiZGF0YS1waHgtcm9vdC1pZFwiXG5leHBvcnQgY29uc3QgUEhYX1RSSUdHRVJfQUNUSU9OID0gXCJ0cmlnZ2VyLWFjdGlvblwiXG5leHBvcnQgY29uc3QgUEhYX0ZFRURCQUNLX0ZPUiA9IFwiZmVlZGJhY2stZm9yXCJcbmV4cG9ydCBjb25zdCBQSFhfSEFTX0ZPQ1VTRUQgPSBcInBoeC1oYXMtZm9jdXNlZFwiXG5leHBvcnQgY29uc3QgRk9DVVNBQkxFX0lOUFVUUyA9IFtcInRleHRcIiwgXCJ0ZXh0YXJlYVwiLCBcIm51bWJlclwiLCBcImVtYWlsXCIsIFwicGFzc3dvcmRcIiwgXCJzZWFyY2hcIiwgXCJ0ZWxcIiwgXCJ1cmxcIiwgXCJkYXRlXCIsIFwidGltZVwiLCBcImRhdGV0aW1lLWxvY2FsXCIsIFwiY29sb3JcIiwgXCJyYW5nZVwiXVxuZXhwb3J0IGNvbnN0IENIRUNLQUJMRV9JTlBVVFMgPSBbXCJjaGVja2JveFwiLCBcInJhZGlvXCJdXG5leHBvcnQgY29uc3QgUEhYX0hBU19TVUJNSVRURUQgPSBcInBoeC1oYXMtc3VibWl0dGVkXCJcbmV4cG9ydCBjb25zdCBQSFhfU0VTU0lPTiA9IFwiZGF0YS1waHgtc2Vzc2lvblwiXG5leHBvcnQgY29uc3QgUEhYX1ZJRVdfU0VMRUNUT1IgPSBgWyR7UEhYX1NFU1NJT059XWBcbmV4cG9ydCBjb25zdCBQSFhfU1RJQ0tZID0gXCJkYXRhLXBoeC1zdGlja3lcIlxuZXhwb3J0IGNvbnN0IFBIWF9TVEFUSUMgPSBcImRhdGEtcGh4LXN0YXRpY1wiXG5leHBvcnQgY29uc3QgUEhYX1JFQURPTkxZID0gXCJkYXRhLXBoeC1yZWFkb25seVwiXG5leHBvcnQgY29uc3QgUEhYX0RJU0FCTEVEID0gXCJkYXRhLXBoeC1kaXNhYmxlZFwiXG5leHBvcnQgY29uc3QgUEhYX0RJU0FCTEVfV0lUSCA9IFwiZGlzYWJsZS13aXRoXCJcbmV4cG9ydCBjb25zdCBQSFhfRElTQUJMRV9XSVRIX1JFU1RPUkUgPSBcImRhdGEtcGh4LWRpc2FibGUtd2l0aC1yZXN0b3JlXCJcbmV4cG9ydCBjb25zdCBQSFhfSE9PSyA9IFwiaG9va1wiXG5leHBvcnQgY29uc3QgUEhYX0RFQk9VTkNFID0gXCJkZWJvdW5jZVwiXG5leHBvcnQgY29uc3QgUEhYX1RIUk9UVExFID0gXCJ0aHJvdHRsZVwiXG5leHBvcnQgY29uc3QgUEhYX1VQREFURSA9IFwidXBkYXRlXCJcbmV4cG9ydCBjb25zdCBQSFhfS0VZID0gXCJrZXlcIlxuZXhwb3J0IGNvbnN0IFBIWF9QUklWQVRFID0gXCJwaHhQcml2YXRlXCJcbmV4cG9ydCBjb25zdCBQSFhfQVVUT19SRUNPVkVSID0gXCJhdXRvLXJlY292ZXJcIlxuZXhwb3J0IGNvbnN0IFBIWF9MVl9ERUJVRyA9IFwicGh4OmxpdmUtc29ja2V0OmRlYnVnXCJcbmV4cG9ydCBjb25zdCBQSFhfTFZfUFJPRklMRSA9IFwicGh4OmxpdmUtc29ja2V0OnByb2ZpbGluZ1wiXG5leHBvcnQgY29uc3QgUEhYX0xWX0xBVEVOQ1lfU0lNID0gXCJwaHg6bGl2ZS1zb2NrZXQ6bGF0ZW5jeS1zaW1cIlxuZXhwb3J0IGNvbnN0IFBIWF9QUk9HUkVTUyA9IFwicHJvZ3Jlc3NcIlxuZXhwb3J0IGNvbnN0IExPQURFUl9USU1FT1VUID0gMVxuZXhwb3J0IGNvbnN0IEJFRk9SRV9VTkxPQURfTE9BREVSX1RJTUVPVVQgPSAyMDBcbmV4cG9ydCBjb25zdCBCSU5ESU5HX1BSRUZJWCA9IFwicGh4LVwiXG5leHBvcnQgY29uc3QgUFVTSF9USU1FT1VUID0gMzAwMDBcbmV4cG9ydCBjb25zdCBMSU5LX0hFQURFUiA9IFwieC1yZXF1ZXN0ZWQtd2l0aFwiXG5leHBvcnQgY29uc3QgUkVTUE9OU0VfVVJMX0hFQURFUiA9IFwieC1yZXNwb25zZS11cmxcIlxuZXhwb3J0IGNvbnN0IERFQk9VTkNFX1RSSUdHRVIgPSBcImRlYm91bmNlLXRyaWdnZXJcIlxuZXhwb3J0IGNvbnN0IFRIUk9UVExFRCA9IFwidGhyb3R0bGVkXCJcbmV4cG9ydCBjb25zdCBERUJPVU5DRV9QUkVWX0tFWSA9IFwiZGVib3VuY2UtcHJldi1rZXlcIlxuZXhwb3J0IGNvbnN0IERFRkFVTFRTID0ge1xuICBkZWJvdW5jZTogMzAwLFxuICB0aHJvdHRsZTogMzAwXG59XG5cbi8vIFJlbmRlcmVkXG5leHBvcnQgY29uc3QgRFlOQU1JQ1MgPSBcImRcIlxuZXhwb3J0IGNvbnN0IFNUQVRJQyA9IFwic1wiXG5leHBvcnQgY29uc3QgQ09NUE9ORU5UUyA9IFwiY1wiXG5leHBvcnQgY29uc3QgRVZFTlRTID0gXCJlXCJcbmV4cG9ydCBjb25zdCBSRVBMWSA9IFwiclwiXG5leHBvcnQgY29uc3QgVElUTEUgPSBcInRcIlxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFUyA9IFwicFwiXG4iLCAiaW1wb3J0IHtcbiAgbG9nRXJyb3Jcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbnRyeVVwbG9hZGVyIHtcbiAgY29uc3RydWN0b3IoZW50cnksIGNodW5rU2l6ZSwgbGl2ZVNvY2tldCl7XG4gICAgdGhpcy5saXZlU29ja2V0ID0gbGl2ZVNvY2tldFxuICAgIHRoaXMuZW50cnkgPSBlbnRyeVxuICAgIHRoaXMub2Zmc2V0ID0gMFxuICAgIHRoaXMuY2h1bmtTaXplID0gY2h1bmtTaXplXG4gICAgdGhpcy5jaHVua1RpbWVyID0gbnVsbFxuICAgIHRoaXMudXBsb2FkQ2hhbm5lbCA9IGxpdmVTb2NrZXQuY2hhbm5lbChgbHZ1OiR7ZW50cnkucmVmfWAsIHt0b2tlbjogZW50cnkubWV0YWRhdGEoKX0pXG4gIH1cblxuICBlcnJvcihyZWFzb24pe1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmNodW5rVGltZXIpXG4gICAgdGhpcy51cGxvYWRDaGFubmVsLmxlYXZlKClcbiAgICB0aGlzLmVudHJ5LmVycm9yKHJlYXNvbilcbiAgfVxuXG4gIHVwbG9hZCgpe1xuICAgIHRoaXMudXBsb2FkQ2hhbm5lbC5vbkVycm9yKHJlYXNvbiA9PiB0aGlzLmVycm9yKHJlYXNvbikpXG4gICAgdGhpcy51cGxvYWRDaGFubmVsLmpvaW4oKVxuICAgICAgLnJlY2VpdmUoXCJva1wiLCBfZGF0YSA9PiB0aGlzLnJlYWROZXh0Q2h1bmsoKSlcbiAgICAgIC5yZWNlaXZlKFwiZXJyb3JcIiwgcmVhc29uID0+IHRoaXMuZXJyb3IocmVhc29uKSlcbiAgfVxuXG4gIGlzRG9uZSgpeyByZXR1cm4gdGhpcy5vZmZzZXQgPj0gdGhpcy5lbnRyeS5maWxlLnNpemUgfVxuXG4gIHJlYWROZXh0Q2h1bmsoKXtcbiAgICBsZXQgcmVhZGVyID0gbmV3IHdpbmRvdy5GaWxlUmVhZGVyKClcbiAgICBsZXQgYmxvYiA9IHRoaXMuZW50cnkuZmlsZS5zbGljZSh0aGlzLm9mZnNldCwgdGhpcy5jaHVua1NpemUgKyB0aGlzLm9mZnNldClcbiAgICByZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgIGlmKGUudGFyZ2V0LmVycm9yID09PSBudWxsKXtcbiAgICAgICAgdGhpcy5vZmZzZXQgKz0gZS50YXJnZXQucmVzdWx0LmJ5dGVMZW5ndGhcbiAgICAgICAgdGhpcy5wdXNoQ2h1bmsoZS50YXJnZXQucmVzdWx0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGxvZ0Vycm9yKFwiUmVhZCBlcnJvcjogXCIgKyBlLnRhcmdldC5lcnJvcilcbiAgICAgIH1cbiAgICB9XG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpXG4gIH1cblxuICBwdXNoQ2h1bmsoY2h1bmspe1xuICAgIGlmKCF0aGlzLnVwbG9hZENoYW5uZWwuaXNKb2luZWQoKSl7IHJldHVybiB9XG4gICAgdGhpcy51cGxvYWRDaGFubmVsLnB1c2goXCJjaHVua1wiLCBjaHVuaylcbiAgICAgIC5yZWNlaXZlKFwib2tcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLmVudHJ5LnByb2dyZXNzKCh0aGlzLm9mZnNldCAvIHRoaXMuZW50cnkuZmlsZS5zaXplKSAqIDEwMClcbiAgICAgICAgaWYoIXRoaXMuaXNEb25lKCkpe1xuICAgICAgICAgIHRoaXMuY2h1bmtUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWFkTmV4dENodW5rKCksIHRoaXMubGl2ZVNvY2tldC5nZXRMYXRlbmN5U2ltKCkgfHwgMClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIFBIWF9WSUVXX1NFTEVDVE9SXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCBFbnRyeVVwbG9hZGVyIGZyb20gXCIuL2VudHJ5X3VwbG9hZGVyXCJcblxuZXhwb3J0IGxldCBsb2dFcnJvciA9IChtc2csIG9iaikgPT4gY29uc29sZS5lcnJvciAmJiBjb25zb2xlLmVycm9yKG1zZywgb2JqKVxuXG5leHBvcnQgbGV0IGlzQ2lkID0gKGNpZCkgPT4ge1xuICBsZXQgdHlwZSA9IHR5cGVvZihjaWQpXG4gIHJldHVybiB0eXBlID09PSBcIm51bWJlclwiIHx8ICh0eXBlID09PSBcInN0cmluZ1wiICYmIC9eKDB8WzEtOV1cXGQqKSQvLnRlc3QoY2lkKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdER1cGxpY2F0ZUlkcygpe1xuICBsZXQgaWRzID0gbmV3IFNldCgpXG4gIGxldCBlbGVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIqW2lkXVwiKVxuICBmb3IobGV0IGkgPSAwLCBsZW4gPSBlbGVtcy5sZW5ndGg7IGkgPCBsZW47IGkrKyl7XG4gICAgaWYoaWRzLmhhcyhlbGVtc1tpXS5pZCkpe1xuICAgICAgY29uc29sZS5lcnJvcihgTXVsdGlwbGUgSURzIGRldGVjdGVkOiAke2VsZW1zW2ldLmlkfS4gRW5zdXJlIHVuaXF1ZSBlbGVtZW50IGlkcy5gKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZHMuYWRkKGVsZW1zW2ldLmlkKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgbGV0IGRlYnVnID0gKHZpZXcsIGtpbmQsIG1zZywgb2JqKSA9PiB7XG4gIGlmKHZpZXcubGl2ZVNvY2tldC5pc0RlYnVnRW5hYmxlZCgpKXtcbiAgICBjb25zb2xlLmxvZyhgJHt2aWV3LmlkfSAke2tpbmR9OiAke21zZ30gLSBgLCBvYmopXG4gIH1cbn1cblxuLy8gd3JhcHMgdmFsdWUgaW4gY2xvc3VyZSBvciByZXR1cm5zIGNsb3N1cmVcbmV4cG9ydCBsZXQgY2xvc3VyZSA9ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIiA/IHZhbCA6IGZ1bmN0aW9uICgpeyByZXR1cm4gdmFsIH1cblxuZXhwb3J0IGxldCBjbG9uZSA9IChvYmopID0+IHsgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSkgfVxuXG5leHBvcnQgbGV0IGNsb3Nlc3RQaHhCaW5kaW5nID0gKGVsLCBiaW5kaW5nLCBib3JkZXJFbCkgPT4ge1xuICBkbyB7XG4gICAgaWYoZWwubWF0Y2hlcyhgWyR7YmluZGluZ31dYCkpeyByZXR1cm4gZWwgfVxuICAgIGVsID0gZWwucGFyZW50RWxlbWVudCB8fCBlbC5wYXJlbnROb2RlXG4gIH0gd2hpbGUoZWwgIT09IG51bGwgJiYgZWwubm9kZVR5cGUgPT09IDEgJiYgISgoYm9yZGVyRWwgJiYgYm9yZGVyRWwuaXNTYW1lTm9kZShlbCkpIHx8IGVsLm1hdGNoZXMoUEhYX1ZJRVdfU0VMRUNUT1IpKSlcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGxldCBpc09iamVjdCA9IChvYmopID0+IHtcbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiICYmICEob2JqIGluc3RhbmNlb2YgQXJyYXkpXG59XG5cbmV4cG9ydCBsZXQgaXNFcXVhbE9iaiA9IChvYmoxLCBvYmoyKSA9PiBKU09OLnN0cmluZ2lmeShvYmoxKSA9PT0gSlNPTi5zdHJpbmdpZnkob2JqMilcblxuZXhwb3J0IGxldCBpc0VtcHR5ID0gKG9iaikgPT4ge1xuICBmb3IobGV0IHggaW4gb2JqKXsgcmV0dXJuIGZhbHNlIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGxldCBtYXliZSA9IChlbCwgY2FsbGJhY2spID0+IGVsICYmIGNhbGxiYWNrKGVsKVxuXG5leHBvcnQgbGV0IGNoYW5uZWxVcGxvYWRlciA9IGZ1bmN0aW9uIChlbnRyaWVzLCBvbkVycm9yLCByZXNwLCBsaXZlU29ja2V0KXtcbiAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICBsZXQgZW50cnlVcGxvYWRlciA9IG5ldyBFbnRyeVVwbG9hZGVyKGVudHJ5LCByZXNwLmNvbmZpZy5jaHVua19zaXplLCBsaXZlU29ja2V0KVxuICAgIGVudHJ5VXBsb2FkZXIudXBsb2FkKClcbiAgfSlcbn1cbiIsICJsZXQgQnJvd3NlciA9IHtcbiAgY2FuUHVzaFN0YXRlKCl7IHJldHVybiAodHlwZW9mIChoaXN0b3J5LnB1c2hTdGF0ZSkgIT09IFwidW5kZWZpbmVkXCIpIH0sXG5cbiAgZHJvcExvY2FsKGxvY2FsU3RvcmFnZSwgbmFtZXNwYWNlLCBzdWJrZXkpe1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmxvY2FsS2V5KG5hbWVzcGFjZSwgc3Via2V5KSlcbiAgfSxcblxuICB1cGRhdGVMb2NhbChsb2NhbFN0b3JhZ2UsIG5hbWVzcGFjZSwgc3Via2V5LCBpbml0aWFsLCBmdW5jKXtcbiAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0TG9jYWwobG9jYWxTdG9yYWdlLCBuYW1lc3BhY2UsIHN1YmtleSlcbiAgICBsZXQga2V5ID0gdGhpcy5sb2NhbEtleShuYW1lc3BhY2UsIHN1YmtleSlcbiAgICBsZXQgbmV3VmFsID0gY3VycmVudCA9PT0gbnVsbCA/IGluaXRpYWwgOiBmdW5jKGN1cnJlbnQpXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxuICAgIHJldHVybiBuZXdWYWxcbiAgfSxcblxuICBnZXRMb2NhbChsb2NhbFN0b3JhZ2UsIG5hbWVzcGFjZSwgc3Via2V5KXtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsS2V5KG5hbWVzcGFjZSwgc3Via2V5KSkpXG4gIH0sXG5cbiAgdXBkYXRlQ3VycmVudFN0YXRlKGNhbGxiYWNrKXtcbiAgICBpZighdGhpcy5jYW5QdXNoU3RhdGUoKSl7IHJldHVybiB9XG4gICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoY2FsbGJhY2soaGlzdG9yeS5zdGF0ZSB8fCB7fSksIFwiXCIsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKVxuICB9LFxuXG4gIHB1c2hTdGF0ZShraW5kLCBtZXRhLCB0byl7XG4gICAgaWYodGhpcy5jYW5QdXNoU3RhdGUoKSl7XG4gICAgICBpZih0byAhPT0gd2luZG93LmxvY2F0aW9uLmhyZWYpe1xuICAgICAgICBpZihtZXRhLnR5cGUgPT0gXCJyZWRpcmVjdFwiICYmIG1ldGEuc2Nyb2xsKXtcbiAgICAgICAgICAvLyBJZiB3ZSdyZSByZWRpcmVjdGluZyBzdG9yZSB0aGUgY3VycmVudCBzY3JvbGxZIGZvciB0aGUgY3VycmVudCBoaXN0b3J5IHN0YXRlLlxuICAgICAgICAgIGxldCBjdXJyZW50U3RhdGUgPSBoaXN0b3J5LnN0YXRlIHx8IHt9XG4gICAgICAgICAgY3VycmVudFN0YXRlLnNjcm9sbCA9IG1ldGEuc2Nyb2xsXG4gICAgICAgICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoY3VycmVudFN0YXRlLCBcIlwiLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBtZXRhLnNjcm9sbCAvLyBPbmx5IHN0b3JlIHRoZSBzY3JvbGwgaW4gdGhlIHJlZGlyZWN0IGNhc2UuXG4gICAgICAgIGhpc3Rvcnlba2luZCArIFwiU3RhdGVcIl0obWV0YSwgXCJcIiwgdG8gfHwgbnVsbCkgLy8gSUUgd2lsbCBjb2VyY2UgdW5kZWZpbmVkIHRvIHN0cmluZ1xuICAgICAgICBsZXQgaGFzaEVsID0gdGhpcy5nZXRIYXNoVGFyZ2V0RWwod2luZG93LmxvY2F0aW9uLmhhc2gpXG5cbiAgICAgICAgaWYoaGFzaEVsKXtcbiAgICAgICAgICBoYXNoRWwuc2Nyb2xsSW50b1ZpZXcoKVxuICAgICAgICB9IGVsc2UgaWYobWV0YS50eXBlID09PSBcInJlZGlyZWN0XCIpe1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgMClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZGlyZWN0KHRvKVxuICAgIH1cbiAgfSxcblxuICBzZXRDb29raWUobmFtZSwgdmFsdWUpe1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YFxuICB9LFxuXG4gIGdldENvb2tpZShuYW1lKXtcbiAgICByZXR1cm4gZG9jdW1lbnQuY29va2llLnJlcGxhY2UobmV3IFJlZ0V4cChgKD86KD86XnwuKjtcXHMqKSR7bmFtZX1cXHMqXFw9XFxzKihbXjtdKikuKiQpfF4uKiRgKSwgXCIkMVwiKVxuICB9LFxuXG4gIHJlZGlyZWN0KHRvVVJMLCBmbGFzaCl7XG4gICAgaWYoZmxhc2gpeyBCcm93c2VyLnNldENvb2tpZShcIl9fcGhvZW5peF9mbGFzaF9fXCIsIGZsYXNoICsgXCI7IG1heC1hZ2U9NjAwMDA7IHBhdGg9L1wiKSB9XG4gICAgd2luZG93LmxvY2F0aW9uID0gdG9VUkxcbiAgfSxcblxuICBsb2NhbEtleShuYW1lc3BhY2UsIHN1YmtleSl7IHJldHVybiBgJHtuYW1lc3BhY2V9LSR7c3Via2V5fWAgfSxcblxuICBnZXRIYXNoVGFyZ2V0RWwobWF5YmVIYXNoKXtcbiAgICBsZXQgaGFzaCA9IG1heWJlSGFzaC50b1N0cmluZygpLnN1YnN0cmluZygxKVxuICAgIGlmKGhhc2ggPT09IFwiXCIpeyByZXR1cm4gfVxuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBhW25hbWU9XCIke2hhc2h9XCJdYClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCcm93c2VyXG4iLCAiaW1wb3J0IHtcbiAgQ0hFQ0tBQkxFX0lOUFVUUyxcbiAgREVCT1VOQ0VfUFJFVl9LRVksXG4gIERFQk9VTkNFX1RSSUdHRVIsXG4gIEZPQ1VTQUJMRV9JTlBVVFMsXG4gIFBIWF9DT01QT05FTlQsXG4gIFBIWF9FVkVOVF9DTEFTU0VTLFxuICBQSFhfSEFTX0ZPQ1VTRUQsXG4gIFBIWF9IQVNfU1VCTUlUVEVELFxuICBQSFhfTUFJTixcbiAgUEhYX05PX0ZFRURCQUNLX0NMQVNTLFxuICBQSFhfUEFSRU5UX0lELFxuICBQSFhfUFJJVkFURSxcbiAgUEhYX1JFRixcbiAgUEhYX1JFRl9TUkMsXG4gIFBIWF9ST09UX0lELFxuICBQSFhfU0VTU0lPTixcbiAgUEhYX1NUQVRJQyxcbiAgUEhYX1VQTE9BRF9SRUYsXG4gIFBIWF9WSUVXX1NFTEVDVE9SLFxuICBQSFhfU1RJQ0tZLFxuICBUSFJPVFRMRURcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IHtcbiAgbG9nRXJyb3Jcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5sZXQgRE9NID0ge1xuICBieUlkKGlkKXsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSB8fCBsb2dFcnJvcihgbm8gaWQgZm91bmQgZm9yICR7aWR9YCkgfSxcblxuICByZW1vdmVDbGFzcyhlbCwgY2xhc3NOYW1lKXtcbiAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSlcbiAgICBpZihlbC5jbGFzc0xpc3QubGVuZ3RoID09PSAwKXsgZWwucmVtb3ZlQXR0cmlidXRlKFwiY2xhc3NcIikgfVxuICB9LFxuXG4gIGFsbChub2RlLCBxdWVyeSwgY2FsbGJhY2spe1xuICAgIGlmKCFub2RlKXsgcmV0dXJuIFtdIH1cbiAgICBsZXQgYXJyYXkgPSBBcnJheS5mcm9tKG5vZGUucXVlcnlTZWxlY3RvckFsbChxdWVyeSkpXG4gICAgcmV0dXJuIGNhbGxiYWNrID8gYXJyYXkuZm9yRWFjaChjYWxsYmFjaykgOiBhcnJheVxuICB9LFxuXG4gIGNoaWxkTm9kZUxlbmd0aChodG1sKXtcbiAgICBsZXQgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIilcbiAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSBodG1sXG4gICAgcmV0dXJuIHRlbXBsYXRlLmNvbnRlbnQuY2hpbGRFbGVtZW50Q291bnRcbiAgfSxcblxuICBpc1VwbG9hZElucHV0KGVsKXsgcmV0dXJuIGVsLnR5cGUgPT09IFwiZmlsZVwiICYmIGVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRikgIT09IG51bGwgfSxcblxuICBmaW5kVXBsb2FkSW5wdXRzKG5vZGUpeyByZXR1cm4gdGhpcy5hbGwobm9kZSwgYGlucHV0W3R5cGU9XCJmaWxlXCJdWyR7UEhYX1VQTE9BRF9SRUZ9XWApIH0sXG5cbiAgZmluZENvbXBvbmVudE5vZGVMaXN0KG5vZGUsIGNpZCl7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyV2l0aGluU2FtZUxpdmVWaWV3KHRoaXMuYWxsKG5vZGUsIGBbJHtQSFhfQ09NUE9ORU5UfT1cIiR7Y2lkfVwiXWApLCBub2RlKVxuICB9LFxuXG4gIGlzUGh4RGVzdHJveWVkKG5vZGUpe1xuICAgIHJldHVybiBub2RlLmlkICYmIERPTS5wcml2YXRlKG5vZGUsIFwiZGVzdHJveWVkXCIpID8gdHJ1ZSA6IGZhbHNlXG4gIH0sXG5cbiAgbWFya1BoeENoaWxkRGVzdHJveWVkKGVsKXtcbiAgICBpZih0aGlzLmlzUGh4Q2hpbGQoZWwpKXsgZWwuc2V0QXR0cmlidXRlKFBIWF9TRVNTSU9OLCBcIlwiKSB9XG4gICAgdGhpcy5wdXRQcml2YXRlKGVsLCBcImRlc3Ryb3llZFwiLCB0cnVlKVxuICB9LFxuXG4gIGZpbmRQaHhDaGlsZHJlbkluRnJhZ21lbnQoaHRtbCwgcGFyZW50SWQpe1xuICAgIGxldCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKVxuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IGh0bWxcbiAgICByZXR1cm4gdGhpcy5maW5kUGh4Q2hpbGRyZW4odGVtcGxhdGUuY29udGVudCwgcGFyZW50SWQpXG4gIH0sXG5cbiAgaXNJZ25vcmVkKGVsLCBwaHhVcGRhdGUpe1xuICAgIHJldHVybiAoZWwuZ2V0QXR0cmlidXRlKHBoeFVwZGF0ZSkgfHwgZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1waHgtdXBkYXRlXCIpKSA9PT0gXCJpZ25vcmVcIlxuICB9LFxuXG4gIGlzUGh4VXBkYXRlKGVsLCBwaHhVcGRhdGUsIHVwZGF0ZVR5cGVzKXtcbiAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlICYmIHVwZGF0ZVR5cGVzLmluZGV4T2YoZWwuZ2V0QXR0cmlidXRlKHBoeFVwZGF0ZSkpID49IDBcbiAgfSxcblxuICBmaW5kUGh4U3RpY2t5KGVsKXsgcmV0dXJuIHRoaXMuYWxsKGVsLCBgWyR7UEhYX1NUSUNLWX1dYCkgfSxcblxuICBmaW5kUGh4Q2hpbGRyZW4oZWwsIHBhcmVudElkKXtcbiAgICByZXR1cm4gdGhpcy5hbGwoZWwsIGAke1BIWF9WSUVXX1NFTEVDVE9SfVske1BIWF9QQVJFTlRfSUR9PVwiJHtwYXJlbnRJZH1cIl1gKVxuICB9LFxuXG4gIGZpbmRQYXJlbnRDSURzKG5vZGUsIGNpZHMpe1xuICAgIGxldCBpbml0aWFsID0gbmV3IFNldChjaWRzKVxuICAgIHJldHVybiBjaWRzLnJlZHVjZSgoYWNjLCBjaWQpID0+IHtcbiAgICAgIGxldCBzZWxlY3RvciA9IGBbJHtQSFhfQ09NUE9ORU5UfT1cIiR7Y2lkfVwiXSBbJHtQSFhfQ09NUE9ORU5UfV1gXG5cbiAgICAgIHRoaXMuZmlsdGVyV2l0aGluU2FtZUxpdmVWaWV3KHRoaXMuYWxsKG5vZGUsIHNlbGVjdG9yKSwgbm9kZSlcbiAgICAgICAgLm1hcChlbCA9PiBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVCkpKVxuICAgICAgICAuZm9yRWFjaChjaGlsZENJRCA9PiBhY2MuZGVsZXRlKGNoaWxkQ0lEKSlcblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIGluaXRpYWwpXG4gIH0sXG5cbiAgZmlsdGVyV2l0aGluU2FtZUxpdmVWaWV3KG5vZGVzLCBwYXJlbnQpe1xuICAgIGlmKHBhcmVudC5xdWVyeVNlbGVjdG9yKFBIWF9WSUVXX1NFTEVDVE9SKSl7XG4gICAgICByZXR1cm4gbm9kZXMuZmlsdGVyKGVsID0+IHRoaXMud2l0aGluU2FtZUxpdmVWaWV3KGVsLCBwYXJlbnQpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9kZXNcbiAgICB9XG4gIH0sXG5cbiAgd2l0aGluU2FtZUxpdmVWaWV3KG5vZGUsIHBhcmVudCl7XG4gICAgd2hpbGUobm9kZSA9IG5vZGUucGFyZW50Tm9kZSl7XG4gICAgICBpZihub2RlLmlzU2FtZU5vZGUocGFyZW50KSl7IHJldHVybiB0cnVlIH1cbiAgICAgIGlmKG5vZGUuZ2V0QXR0cmlidXRlKFBIWF9TRVNTSU9OKSAhPT0gbnVsbCl7IHJldHVybiBmYWxzZSB9XG4gICAgfVxuICB9LFxuXG4gIHByaXZhdGUoZWwsIGtleSl7IHJldHVybiBlbFtQSFhfUFJJVkFURV0gJiYgZWxbUEhYX1BSSVZBVEVdW2tleV0gfSxcblxuICBkZWxldGVQcml2YXRlKGVsLCBrZXkpeyBlbFtQSFhfUFJJVkFURV0gJiYgZGVsZXRlIChlbFtQSFhfUFJJVkFURV1ba2V5XSkgfSxcblxuICBwdXRQcml2YXRlKGVsLCBrZXksIHZhbHVlKXtcbiAgICBpZighZWxbUEhYX1BSSVZBVEVdKXsgZWxbUEhYX1BSSVZBVEVdID0ge30gfVxuICAgIGVsW1BIWF9QUklWQVRFXVtrZXldID0gdmFsdWVcbiAgfSxcblxuICB1cGRhdGVQcml2YXRlKGVsLCBrZXksIGRlZmF1bHRWYWwsIHVwZGF0ZUZ1bmMpe1xuICAgIGxldCBleGlzdGluZyA9IHRoaXMucHJpdmF0ZShlbCwga2V5KVxuICAgIGlmKGV4aXN0aW5nID09PSB1bmRlZmluZWQpe1xuICAgICAgdGhpcy5wdXRQcml2YXRlKGVsLCBrZXksIHVwZGF0ZUZ1bmMoZGVmYXVsdFZhbCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHV0UHJpdmF0ZShlbCwga2V5LCB1cGRhdGVGdW5jKGV4aXN0aW5nKSlcbiAgICB9XG4gIH0sXG5cbiAgY29weVByaXZhdGVzKHRhcmdldCwgc291cmNlKXtcbiAgICBpZihzb3VyY2VbUEhYX1BSSVZBVEVdKXtcbiAgICAgIHRhcmdldFtQSFhfUFJJVkFURV0gPSBzb3VyY2VbUEhYX1BSSVZBVEVdXG4gICAgfVxuICB9LFxuXG4gIHB1dFRpdGxlKHN0cil7XG4gICAgbGV0IHRpdGxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwidGl0bGVcIilcbiAgICBsZXQge3ByZWZpeCwgc3VmZml4fSA9IHRpdGxlRWwuZGF0YXNldFxuICAgIGRvY3VtZW50LnRpdGxlID0gYCR7cHJlZml4IHx8IFwiXCJ9JHtzdHJ9JHtzdWZmaXggfHwgXCJcIn1gXG4gIH0sXG5cbiAgZGVib3VuY2UoZWwsIGV2ZW50LCBwaHhEZWJvdW5jZSwgZGVmYXVsdERlYm91bmNlLCBwaHhUaHJvdHRsZSwgZGVmYXVsdFRocm90dGxlLCBhc3luY0ZpbHRlciwgY2FsbGJhY2spe1xuICAgIGxldCBkZWJvdW5jZSA9IGVsLmdldEF0dHJpYnV0ZShwaHhEZWJvdW5jZSlcbiAgICBsZXQgdGhyb3R0bGUgPSBlbC5nZXRBdHRyaWJ1dGUocGh4VGhyb3R0bGUpXG4gICAgaWYoZGVib3VuY2UgPT09IFwiXCIpeyBkZWJvdW5jZSA9IGRlZmF1bHREZWJvdW5jZSB9XG4gICAgaWYodGhyb3R0bGUgPT09IFwiXCIpeyB0aHJvdHRsZSA9IGRlZmF1bHRUaHJvdHRsZSB9XG4gICAgbGV0IHZhbHVlID0gZGVib3VuY2UgfHwgdGhyb3R0bGVcbiAgICBzd2l0Y2godmFsdWUpe1xuICAgICAgY2FzZSBudWxsOiByZXR1cm4gY2FsbGJhY2soKVxuXG4gICAgICBjYXNlIFwiYmx1clwiOlxuICAgICAgICBpZih0aGlzLm9uY2UoZWwsIFwiZGVib3VuY2UtYmx1clwiKSl7XG4gICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgKCkgPT4gY2FsbGJhY2soKSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGV0IHRpbWVvdXQgPSBwYXJzZUludCh2YWx1ZSlcbiAgICAgICAgbGV0IHRyaWdnZXIgPSAoKSA9PiB0aHJvdHRsZSA/IHRoaXMuZGVsZXRlUHJpdmF0ZShlbCwgVEhST1RUTEVEKSA6IGNhbGxiYWNrKClcbiAgICAgICAgbGV0IGN1cnJlbnRDeWNsZSA9IHRoaXMuaW5jQ3ljbGUoZWwsIERFQk9VTkNFX1RSSUdHRVIsIHRyaWdnZXIpXG4gICAgICAgIGlmKGlzTmFOKHRpbWVvdXQpKXsgcmV0dXJuIGxvZ0Vycm9yKGBpbnZhbGlkIHRocm90dGxlL2RlYm91bmNlIHZhbHVlOiAke3ZhbHVlfWApIH1cbiAgICAgICAgaWYodGhyb3R0bGUpe1xuICAgICAgICAgIGxldCBuZXdLZXlEb3duID0gZmFsc2VcbiAgICAgICAgICBpZihldmVudC50eXBlID09PSBcImtleWRvd25cIil7XG4gICAgICAgICAgICBsZXQgcHJldktleSA9IHRoaXMucHJpdmF0ZShlbCwgREVCT1VOQ0VfUFJFVl9LRVkpXG4gICAgICAgICAgICB0aGlzLnB1dFByaXZhdGUoZWwsIERFQk9VTkNFX1BSRVZfS0VZLCBldmVudC5rZXkpXG4gICAgICAgICAgICBuZXdLZXlEb3duID0gcHJldktleSAhPT0gZXZlbnQua2V5XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYoIW5ld0tleURvd24gJiYgdGhpcy5wcml2YXRlKGVsLCBUSFJPVFRMRUQpKXtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWxsYmFjaygpXG4gICAgICAgICAgICB0aGlzLnB1dFByaXZhdGUoZWwsIFRIUk9UVExFRCwgdHJ1ZSlcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZihhc3luY0ZpbHRlcigpKXsgdGhpcy50cmlnZ2VyQ3ljbGUoZWwsIERFQk9VTkNFX1RSSUdHRVIpIH1cbiAgICAgICAgICAgIH0sIHRpbWVvdXQpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYoYXN5bmNGaWx0ZXIoKSl7IHRoaXMudHJpZ2dlckN5Y2xlKGVsLCBERUJPVU5DRV9UUklHR0VSLCBjdXJyZW50Q3ljbGUpIH1cbiAgICAgICAgICB9LCB0aW1lb3V0KVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvcm0gPSBlbC5mb3JtXG4gICAgICAgIGlmKGZvcm0gJiYgdGhpcy5vbmNlKGZvcm0sIFwiYmluZC1kZWJvdW5jZVwiKSl7XG4gICAgICAgICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKFwic3VibWl0XCIsICgpID0+IHtcbiAgICAgICAgICAgIEFycmF5LmZyb20oKG5ldyBGb3JtRGF0YShmb3JtKSkuZW50cmllcygpLCAoW25hbWVdKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBpbnB1dCA9IGZvcm0ucXVlcnlTZWxlY3RvcihgW25hbWU9XCIke25hbWV9XCJdYClcbiAgICAgICAgICAgICAgdGhpcy5pbmNDeWNsZShpbnB1dCwgREVCT1VOQ0VfVFJJR0dFUilcbiAgICAgICAgICAgICAgdGhpcy5kZWxldGVQcml2YXRlKGlucHV0LCBUSFJPVFRMRUQpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5vbmNlKGVsLCBcImJpbmQtZGVib3VuY2VcIikpe1xuICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsICgpID0+IHRoaXMudHJpZ2dlckN5Y2xlKGVsLCBERUJPVU5DRV9UUklHR0VSKSlcbiAgICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB0cmlnZ2VyQ3ljbGUoZWwsIGtleSwgY3VycmVudEN5Y2xlKXtcbiAgICBsZXQgW2N5Y2xlLCB0cmlnZ2VyXSA9IHRoaXMucHJpdmF0ZShlbCwga2V5KVxuICAgIGlmKCFjdXJyZW50Q3ljbGUpeyBjdXJyZW50Q3ljbGUgPSBjeWNsZSB9XG4gICAgaWYoY3VycmVudEN5Y2xlID09PSBjeWNsZSl7XG4gICAgICB0aGlzLmluY0N5Y2xlKGVsLCBrZXkpXG4gICAgICB0cmlnZ2VyKClcbiAgICB9XG4gIH0sXG5cbiAgb25jZShlbCwga2V5KXtcbiAgICBpZih0aGlzLnByaXZhdGUoZWwsIGtleSkgPT09IHRydWUpeyByZXR1cm4gZmFsc2UgfVxuICAgIHRoaXMucHV0UHJpdmF0ZShlbCwga2V5LCB0cnVlKVxuICAgIHJldHVybiB0cnVlXG4gIH0sXG5cbiAgaW5jQ3ljbGUoZWwsIGtleSwgdHJpZ2dlciA9IGZ1bmN0aW9uICgpeyB9KXtcbiAgICBsZXQgW2N1cnJlbnRDeWNsZV0gPSB0aGlzLnByaXZhdGUoZWwsIGtleSkgfHwgWzAsIHRyaWdnZXJdXG4gICAgY3VycmVudEN5Y2xlKytcbiAgICB0aGlzLnB1dFByaXZhdGUoZWwsIGtleSwgW2N1cnJlbnRDeWNsZSwgdHJpZ2dlcl0pXG4gICAgcmV0dXJuIGN1cnJlbnRDeWNsZVxuICB9LFxuXG4gIGRpc2NhcmRFcnJvcihjb250YWluZXIsIGVsLCBwaHhGZWVkYmFja0Zvcil7XG4gICAgbGV0IGZpZWxkID0gZWwuZ2V0QXR0cmlidXRlICYmIGVsLmdldEF0dHJpYnV0ZShwaHhGZWVkYmFja0ZvcilcbiAgICAvLyBUT0RPOiBSZW1vdmUgaWQgbG9va3VwIGFmdGVyIHdlIHVwZGF0ZSBQaG9lbml4IHRvIHVzZSBpbnB1dF9uYW1lIGluc3RlYWQgb2YgaW5wdXRfaWRcbiAgICBsZXQgaW5wdXQgPSBmaWVsZCAmJiBjb250YWluZXIucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtmaWVsZH1cIl0sIFtuYW1lPVwiJHtmaWVsZH1cIl1gKVxuICAgIGlmKCFpbnB1dCl7IHJldHVybiB9XG5cbiAgICBpZighKHRoaXMucHJpdmF0ZShpbnB1dCwgUEhYX0hBU19GT0NVU0VEKSB8fCB0aGlzLnByaXZhdGUoaW5wdXQuZm9ybSwgUEhYX0hBU19TVUJNSVRURUQpKSl7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKFBIWF9OT19GRUVEQkFDS19DTEFTUylcbiAgICB9XG4gIH0sXG5cbiAgc2hvd0Vycm9yKGlucHV0RWwsIHBoeEZlZWRiYWNrRm9yKXtcbiAgICBpZihpbnB1dEVsLmlkIHx8IGlucHV0RWwubmFtZSl7XG4gICAgICB0aGlzLmFsbChpbnB1dEVsLmZvcm0sIGBbJHtwaHhGZWVkYmFja0Zvcn09XCIke2lucHV0RWwuaWR9XCJdLCBbJHtwaHhGZWVkYmFja0Zvcn09XCIke2lucHV0RWwubmFtZX1cIl1gLCAoZWwpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVDbGFzcyhlbCwgUEhYX05PX0ZFRURCQUNLX0NMQVNTKVxuICAgICAgfSlcbiAgICB9XG4gIH0sXG5cbiAgaXNQaHhDaGlsZChub2RlKXtcbiAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoUEhYX1BBUkVOVF9JRClcbiAgfSxcblxuICBpc1BoeFN0aWNreShub2RlKXtcbiAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoUEhYX1NUSUNLWSkgIT09IG51bGxcbiAgfSxcblxuICBmaXJzdFBoeENoaWxkKGVsKXtcbiAgICByZXR1cm4gdGhpcy5pc1BoeENoaWxkKGVsKSA/IGVsIDogdGhpcy5hbGwoZWwsIGBbJHtQSFhfUEFSRU5UX0lEfV1gKVswXVxuICB9LFxuXG4gIGRpc3BhdGNoRXZlbnQodGFyZ2V0LCBuYW1lLCBvcHRzID0ge30pe1xuICAgIGxldCBidWJibGVzID0gb3B0cy5idWJibGVzID09PSB1bmRlZmluZWQgPyB0cnVlIDogISFvcHRzLmJ1YmJsZXNcbiAgICBsZXQgZXZlbnRPcHRzID0ge2J1YmJsZXM6IGJ1YmJsZXMsIGNhbmNlbGFibGU6IHRydWUsIGRldGFpbDogb3B0cy5kZXRhaWwgfHwge319XG4gICAgbGV0IGV2ZW50ID0gbmFtZSA9PT0gXCJjbGlja1wiID8gbmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiLCBldmVudE9wdHMpIDogbmV3IEN1c3RvbUV2ZW50KG5hbWUsIGV2ZW50T3B0cylcbiAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudClcbiAgfSxcblxuICBjbG9uZU5vZGUobm9kZSwgaHRtbCl7XG4gICAgaWYodHlwZW9mIChodG1sKSA9PT0gXCJ1bmRlZmluZWRcIil7XG4gICAgICByZXR1cm4gbm9kZS5jbG9uZU5vZGUodHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGNsb25lZCA9IG5vZGUuY2xvbmVOb2RlKGZhbHNlKVxuICAgICAgY2xvbmVkLmlubmVySFRNTCA9IGh0bWxcbiAgICAgIHJldHVybiBjbG9uZWRcbiAgICB9XG4gIH0sXG5cbiAgbWVyZ2VBdHRycyh0YXJnZXQsIHNvdXJjZSwgb3B0cyA9IHt9KXtcbiAgICBsZXQgZXhjbHVkZSA9IG9wdHMuZXhjbHVkZSB8fCBbXVxuICAgIGxldCBpc0lnbm9yZWQgPSBvcHRzLmlzSWdub3JlZFxuICAgIGxldCBzb3VyY2VBdHRycyA9IHNvdXJjZS5hdHRyaWJ1dGVzXG4gICAgZm9yKGxldCBpID0gc291cmNlQXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pe1xuICAgICAgbGV0IG5hbWUgPSBzb3VyY2VBdHRyc1tpXS5uYW1lXG4gICAgICBpZihleGNsdWRlLmluZGV4T2YobmFtZSkgPCAwKXsgdGFyZ2V0LnNldEF0dHJpYnV0ZShuYW1lLCBzb3VyY2UuZ2V0QXR0cmlidXRlKG5hbWUpKSB9XG4gICAgfVxuXG4gICAgbGV0IHRhcmdldEF0dHJzID0gdGFyZ2V0LmF0dHJpYnV0ZXNcbiAgICBmb3IobGV0IGkgPSB0YXJnZXRBdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7XG4gICAgICBsZXQgbmFtZSA9IHRhcmdldEF0dHJzW2ldLm5hbWVcbiAgICAgIGlmKGlzSWdub3JlZCl7XG4gICAgICAgIGlmKG5hbWUuc3RhcnRzV2l0aChcImRhdGEtXCIpICYmICFzb3VyY2UuaGFzQXR0cmlidXRlKG5hbWUpKXsgdGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZShuYW1lKSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZighc291cmNlLmhhc0F0dHJpYnV0ZShuYW1lKSl7IHRhcmdldC5yZW1vdmVBdHRyaWJ1dGUobmFtZSkgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBtZXJnZUZvY3VzZWRJbnB1dCh0YXJnZXQsIHNvdXJjZSl7XG4gICAgLy8gc2tpcCBzZWxlY3RzIGJlY2F1c2UgRkYgd2lsbCByZXNldCBoaWdobGlnaHRlZCBpbmRleCBmb3IgYW55IHNldEF0dHJpYnV0ZVxuICAgIGlmKCEodGFyZ2V0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpKXsgRE9NLm1lcmdlQXR0cnModGFyZ2V0LCBzb3VyY2UsIHtleGNsdWRlOiBbXCJ2YWx1ZVwiXX0pIH1cbiAgICBpZihzb3VyY2UucmVhZE9ubHkpe1xuICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShcInJlYWRvbmx5XCIsIHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoXCJyZWFkb25seVwiKVxuICAgIH1cbiAgfSxcblxuICBoYXNTZWxlY3Rpb25SYW5nZShlbCl7XG4gICAgcmV0dXJuIGVsLnNldFNlbGVjdGlvblJhbmdlICYmIChlbC50eXBlID09PSBcInRleHRcIiB8fCBlbC50eXBlID09PSBcInRleHRhcmVhXCIpXG4gIH0sXG5cbiAgcmVzdG9yZUZvY3VzKGZvY3VzZWQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpe1xuICAgIGlmKCFET00uaXNUZXh0dWFsSW5wdXQoZm9jdXNlZCkpeyByZXR1cm4gfVxuICAgIGxldCB3YXNGb2N1c2VkID0gZm9jdXNlZC5tYXRjaGVzKFwiOmZvY3VzXCIpXG4gICAgaWYoZm9jdXNlZC5yZWFkT25seSl7IGZvY3VzZWQuYmx1cigpIH1cbiAgICBpZighd2FzRm9jdXNlZCl7IGZvY3VzZWQuZm9jdXMoKSB9XG4gICAgaWYodGhpcy5oYXNTZWxlY3Rpb25SYW5nZShmb2N1c2VkKSl7XG4gICAgICBmb2N1c2VkLnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpXG4gICAgfVxuICB9LFxuXG4gIGlzRm9ybUlucHV0KGVsKXsgcmV0dXJuIC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhKSQvaS50ZXN0KGVsLnRhZ05hbWUpICYmIGVsLnR5cGUgIT09IFwiYnV0dG9uXCIgfSxcblxuICBzeW5jQXR0cnNUb1Byb3BzKGVsKXtcbiAgICBpZihlbCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgQ0hFQ0tBQkxFX0lOUFVUUy5pbmRleE9mKGVsLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSkgPj0gMCl7XG4gICAgICBlbC5jaGVja2VkID0gZWwuZ2V0QXR0cmlidXRlKFwiY2hlY2tlZFwiKSAhPT0gbnVsbFxuICAgIH1cbiAgfSxcblxuICBpc1RleHR1YWxJbnB1dChlbCl7IHJldHVybiBGT0NVU0FCTEVfSU5QVVRTLmluZGV4T2YoZWwudHlwZSkgPj0gMCB9LFxuXG4gIGlzTm93VHJpZ2dlckZvcm1FeHRlcm5hbChlbCwgcGh4VHJpZ2dlckV4dGVybmFsKXtcbiAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlICYmIGVsLmdldEF0dHJpYnV0ZShwaHhUcmlnZ2VyRXh0ZXJuYWwpICE9PSBudWxsXG4gIH0sXG5cbiAgc3luY1BlbmRpbmdSZWYoZnJvbUVsLCB0b0VsLCBkaXNhYmxlV2l0aCl7XG4gICAgbGV0IHJlZiA9IGZyb21FbC5nZXRBdHRyaWJ1dGUoUEhYX1JFRilcbiAgICBpZihyZWYgPT09IG51bGwpeyByZXR1cm4gdHJ1ZSB9XG4gICAgbGV0IHJlZlNyYyA9IGZyb21FbC5nZXRBdHRyaWJ1dGUoUEhYX1JFRl9TUkMpXG5cbiAgICBpZihET00uaXNGb3JtSW5wdXQoZnJvbUVsKSB8fCBmcm9tRWwuZ2V0QXR0cmlidXRlKGRpc2FibGVXaXRoKSAhPT0gbnVsbCl7XG4gICAgICBpZihET00uaXNVcGxvYWRJbnB1dChmcm9tRWwpKXsgRE9NLm1lcmdlQXR0cnMoZnJvbUVsLCB0b0VsLCB7aXNJZ25vcmVkOiB0cnVlfSkgfVxuICAgICAgRE9NLnB1dFByaXZhdGUoZnJvbUVsLCBQSFhfUkVGLCB0b0VsKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIFBIWF9FVkVOVF9DTEFTU0VTLmZvckVhY2goY2xhc3NOYW1lID0+IHtcbiAgICAgICAgZnJvbUVsLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpICYmIHRvRWwuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpXG4gICAgICB9KVxuICAgICAgdG9FbC5zZXRBdHRyaWJ1dGUoUEhYX1JFRiwgcmVmKVxuICAgICAgdG9FbC5zZXRBdHRyaWJ1dGUoUEhYX1JFRl9TUkMsIHJlZlNyYylcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9LFxuXG4gIGNsZWFuQ2hpbGROb2Rlcyhjb250YWluZXIsIHBoeFVwZGF0ZSl7XG4gICAgaWYoRE9NLmlzUGh4VXBkYXRlKGNvbnRhaW5lciwgcGh4VXBkYXRlLCBbXCJhcHBlbmRcIiwgXCJwcmVwZW5kXCJdKSl7XG4gICAgICBsZXQgdG9SZW1vdmUgPSBbXVxuICAgICAgY29udGFpbmVyLmNoaWxkTm9kZXMuZm9yRWFjaChjaGlsZE5vZGUgPT4ge1xuICAgICAgICBpZighY2hpbGROb2RlLmlkKXtcbiAgICAgICAgICAvLyBTa2lwIHdhcm5pbmcgaWYgaXQncyBhbiBlbXB0eSB0ZXh0IG5vZGUgKGUuZy4gYSBuZXctbGluZSlcbiAgICAgICAgICBsZXQgaXNFbXB0eVRleHROb2RlID0gY2hpbGROb2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiBjaGlsZE5vZGUubm9kZVZhbHVlLnRyaW0oKSA9PT0gXCJcIlxuICAgICAgICAgIGlmKCFpc0VtcHR5VGV4dE5vZGUpe1xuICAgICAgICAgICAgbG9nRXJyb3IoXCJvbmx5IEhUTUwgZWxlbWVudCB0YWdzIHdpdGggYW4gaWQgYXJlIGFsbG93ZWQgaW5zaWRlIGNvbnRhaW5lcnMgd2l0aCBwaHgtdXBkYXRlLlxcblxcblwiICtcbiAgICAgICAgICAgICAgYHJlbW92aW5nIGlsbGVnYWwgbm9kZTogXCIkeyhjaGlsZE5vZGUub3V0ZXJIVE1MIHx8IGNoaWxkTm9kZS5ub2RlVmFsdWUpLnRyaW0oKX1cIlxcblxcbmApXG4gICAgICAgICAgfVxuICAgICAgICAgIHRvUmVtb3ZlLnB1c2goY2hpbGROb2RlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgdG9SZW1vdmUuZm9yRWFjaChjaGlsZE5vZGUgPT4gY2hpbGROb2RlLnJlbW92ZSgpKVxuICAgIH1cbiAgfSxcblxuICByZXBsYWNlUm9vdENvbnRhaW5lcihjb250YWluZXIsIHRhZ05hbWUsIGF0dHJzKXtcbiAgICBsZXQgcmV0YWluZWRBdHRycyA9IG5ldyBTZXQoW1wiaWRcIiwgUEhYX1NFU1NJT04sIFBIWF9TVEFUSUMsIFBIWF9NQUlOLCBQSFhfUk9PVF9JRF0pXG4gICAgaWYoY29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtcbiAgICAgIEFycmF5LmZyb20oY29udGFpbmVyLmF0dHJpYnV0ZXMpXG4gICAgICAgIC5maWx0ZXIoYXR0ciA9PiAhcmV0YWluZWRBdHRycy5oYXMoYXR0ci5uYW1lLnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICAuZm9yRWFjaChhdHRyID0+IGNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKSlcblxuICAgICAgT2JqZWN0LmtleXMoYXR0cnMpXG4gICAgICAgIC5maWx0ZXIobmFtZSA9PiAhcmV0YWluZWRBdHRycy5oYXMobmFtZS50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgLmZvckVhY2goYXR0ciA9PiBjb250YWluZXIuc2V0QXR0cmlidXRlKGF0dHIsIGF0dHJzW2F0dHJdKSlcblxuICAgICAgcmV0dXJuIGNvbnRhaW5lclxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpXG4gICAgICBPYmplY3Qua2V5cyhhdHRycykuZm9yRWFjaChhdHRyID0+IG5ld0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoYXR0ciwgYXR0cnNbYXR0cl0pKVxuICAgICAgcmV0YWluZWRBdHRycy5mb3JFYWNoKGF0dHIgPT4gbmV3Q29udGFpbmVyLnNldEF0dHJpYnV0ZShhdHRyLCBjb250YWluZXIuZ2V0QXR0cmlidXRlKGF0dHIpKSlcbiAgICAgIG5ld0NvbnRhaW5lci5pbm5lckhUTUwgPSBjb250YWluZXIuaW5uZXJIVE1MXG4gICAgICBjb250YWluZXIucmVwbGFjZVdpdGgobmV3Q29udGFpbmVyKVxuICAgICAgcmV0dXJuIG5ld0NvbnRhaW5lclxuICAgIH1cbiAgfSxcblxuICBnZXRTdGlja3koZWwsIG5hbWUsIGRlZmF1bHRWYWwpe1xuICAgIGxldCBvcCA9IChET00ucHJpdmF0ZShlbCwgXCJzdGlja3lcIikgfHwgW10pLmZpbmQoKFtleGlzdGluZ05hbWUsIF0pID0+IG5hbWUgPT09IGV4aXN0aW5nTmFtZSlcbiAgICBpZihvcCl7XG4gICAgICBsZXQgW19uYW1lLCBfb3AsIHN0YXNoZWRSZXN1bHRdID0gb3BcbiAgICAgIHJldHVybiBzdGFzaGVkUmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlb2YoZGVmYXVsdFZhbCkgPT09IFwiZnVuY3Rpb25cIiA/IGRlZmF1bHRWYWwoKSA6IGRlZmF1bHRWYWxcbiAgICB9XG4gIH0sXG5cbiAgZGVsZXRlU3RpY2t5KGVsLCBuYW1lKXtcbiAgICB0aGlzLnVwZGF0ZVByaXZhdGUoZWwsIFwic3RpY2t5XCIsIFtdLCBvcHMgPT4ge1xuICAgICAgcmV0dXJuIG9wcy5maWx0ZXIoKFtleGlzdGluZ05hbWUsIF9dKSA9PiBleGlzdGluZ05hbWUgIT09IG5hbWUpXG4gICAgfSlcbiAgfSxcblxuICBwdXRTdGlja3koZWwsIG5hbWUsIG9wKXtcbiAgICBsZXQgc3Rhc2hlZFJlc3VsdCA9IG9wKGVsKVxuICAgIHRoaXMudXBkYXRlUHJpdmF0ZShlbCwgXCJzdGlja3lcIiwgW10sIG9wcyA9PiB7XG4gICAgICBsZXQgZXhpc3RpbmdJbmRleCA9IG9wcy5maW5kSW5kZXgoKFtleGlzdGluZ05hbWUsIF0pID0+IG5hbWUgPT09IGV4aXN0aW5nTmFtZSlcbiAgICAgIGlmKGV4aXN0aW5nSW5kZXggPj0gMCl7XG4gICAgICAgIG9wc1tleGlzdGluZ0luZGV4XSA9IFtuYW1lLCBvcCwgc3Rhc2hlZFJlc3VsdF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wcy5wdXNoKFtuYW1lLCBvcCwgc3Rhc2hlZFJlc3VsdF0pXG4gICAgICB9XG4gICAgICByZXR1cm4gb3BzXG4gICAgfSlcbiAgfSxcblxuICBhcHBseVN0aWNreU9wZXJhdGlvbnMoZWwpe1xuICAgIGxldCBvcHMgPSBET00ucHJpdmF0ZShlbCwgXCJzdGlja3lcIilcbiAgICBpZighb3BzKXsgcmV0dXJuIH1cblxuICAgIG9wcy5mb3JFYWNoKChbbmFtZSwgb3AsIF9zdGFzaGVkXSkgPT4gdGhpcy5wdXRTdGlja3koZWwsIG5hbWUsIG9wKSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBET01cbiIsICJpbXBvcnQge1xuICBQSFhfQUNUSVZFX0VOVFJZX1JFRlMsXG4gIFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCxcbiAgUEhYX1BSRUZMSUdIVEVEX1JFRlNcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IHtcbiAgY2hhbm5lbFVwbG9hZGVyLFxuICBsb2dFcnJvclxufSBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCBMaXZlVXBsb2FkZXIgZnJvbSBcIi4vbGl2ZV91cGxvYWRlclwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwbG9hZEVudHJ5IHtcbiAgc3RhdGljIGlzQWN0aXZlKGZpbGVFbCwgZmlsZSl7XG4gICAgbGV0IGlzTmV3ID0gZmlsZS5fcGh4UmVmID09PSB1bmRlZmluZWRcbiAgICBsZXQgYWN0aXZlUmVmcyA9IGZpbGVFbC5nZXRBdHRyaWJ1dGUoUEhYX0FDVElWRV9FTlRSWV9SRUZTKS5zcGxpdChcIixcIilcbiAgICBsZXQgaXNBY3RpdmUgPSBhY3RpdmVSZWZzLmluZGV4T2YoTGl2ZVVwbG9hZGVyLmdlbkZpbGVSZWYoZmlsZSkpID49IDBcbiAgICByZXR1cm4gZmlsZS5zaXplID4gMCAmJiAoaXNOZXcgfHwgaXNBY3RpdmUpXG4gIH1cblxuICBzdGF0aWMgaXNQcmVmbGlnaHRlZChmaWxlRWwsIGZpbGUpe1xuICAgIGxldCBwcmVmbGlnaHRlZFJlZnMgPSBmaWxlRWwuZ2V0QXR0cmlidXRlKFBIWF9QUkVGTElHSFRFRF9SRUZTKS5zcGxpdChcIixcIilcbiAgICBsZXQgaXNQcmVmbGlnaHRlZCA9IHByZWZsaWdodGVkUmVmcy5pbmRleE9mKExpdmVVcGxvYWRlci5nZW5GaWxlUmVmKGZpbGUpKSA+PSAwXG4gICAgcmV0dXJuIGlzUHJlZmxpZ2h0ZWQgJiYgdGhpcy5pc0FjdGl2ZShmaWxlRWwsIGZpbGUpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihmaWxlRWwsIGZpbGUsIHZpZXcpe1xuICAgIHRoaXMucmVmID0gTGl2ZVVwbG9hZGVyLmdlbkZpbGVSZWYoZmlsZSlcbiAgICB0aGlzLmZpbGVFbCA9IGZpbGVFbFxuICAgIHRoaXMuZmlsZSA9IGZpbGVcbiAgICB0aGlzLnZpZXcgPSB2aWV3XG4gICAgdGhpcy5tZXRhID0gbnVsbFxuICAgIHRoaXMuX2lzQ2FuY2VsbGVkID0gZmFsc2VcbiAgICB0aGlzLl9pc0RvbmUgPSBmYWxzZVxuICAgIHRoaXMuX3Byb2dyZXNzID0gMFxuICAgIHRoaXMuX2xhc3RQcm9ncmVzc1NlbnQgPSAtMVxuICAgIHRoaXMuX29uRG9uZSA9IGZ1bmN0aW9uICgpeyB9XG4gICAgdGhpcy5fb25FbFVwZGF0ZWQgPSB0aGlzLm9uRWxVcGRhdGVkLmJpbmQodGhpcylcbiAgICB0aGlzLmZpbGVFbC5hZGRFdmVudExpc3RlbmVyKFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCwgdGhpcy5fb25FbFVwZGF0ZWQpXG4gIH1cblxuICBtZXRhZGF0YSgpeyByZXR1cm4gdGhpcy5tZXRhIH1cblxuICBwcm9ncmVzcyhwcm9ncmVzcyl7XG4gICAgdGhpcy5fcHJvZ3Jlc3MgPSBNYXRoLmZsb29yKHByb2dyZXNzKVxuICAgIGlmKHRoaXMuX3Byb2dyZXNzID4gdGhpcy5fbGFzdFByb2dyZXNzU2VudCl7XG4gICAgICBpZih0aGlzLl9wcm9ncmVzcyA+PSAxMDApe1xuICAgICAgICB0aGlzLl9wcm9ncmVzcyA9IDEwMFxuICAgICAgICB0aGlzLl9sYXN0UHJvZ3Jlc3NTZW50ID0gMTAwXG4gICAgICAgIHRoaXMuX2lzRG9uZSA9IHRydWVcbiAgICAgICAgdGhpcy52aWV3LnB1c2hGaWxlUHJvZ3Jlc3ModGhpcy5maWxlRWwsIHRoaXMucmVmLCAxMDAsICgpID0+IHtcbiAgICAgICAgICBMaXZlVXBsb2FkZXIudW50cmFja0ZpbGUodGhpcy5maWxlRWwsIHRoaXMuZmlsZSlcbiAgICAgICAgICB0aGlzLl9vbkRvbmUoKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fbGFzdFByb2dyZXNzU2VudCA9IHRoaXMuX3Byb2dyZXNzXG4gICAgICAgIHRoaXMudmlldy5wdXNoRmlsZVByb2dyZXNzKHRoaXMuZmlsZUVsLCB0aGlzLnJlZiwgdGhpcy5fcHJvZ3Jlc3MpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCl7XG4gICAgdGhpcy5faXNDYW5jZWxsZWQgPSB0cnVlXG4gICAgdGhpcy5faXNEb25lID0gdHJ1ZVxuICAgIHRoaXMuX29uRG9uZSgpXG4gIH1cblxuICBpc0RvbmUoKXsgcmV0dXJuIHRoaXMuX2lzRG9uZSB9XG5cbiAgZXJyb3IocmVhc29uID0gXCJmYWlsZWRcIil7XG4gICAgdGhpcy52aWV3LnB1c2hGaWxlUHJvZ3Jlc3ModGhpcy5maWxlRWwsIHRoaXMucmVmLCB7ZXJyb3I6IHJlYXNvbn0pXG4gICAgTGl2ZVVwbG9hZGVyLmNsZWFyRmlsZXModGhpcy5maWxlRWwpXG4gIH1cblxuICAvL3ByaXZhdGVcblxuICBvbkRvbmUoY2FsbGJhY2spe1xuICAgIHRoaXMuX29uRG9uZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuZmlsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoUEhYX0xJVkVfRklMRV9VUERBVEVELCB0aGlzLl9vbkVsVXBkYXRlZClcbiAgICAgIGNhbGxiYWNrKClcbiAgICB9XG4gIH1cblxuICBvbkVsVXBkYXRlZCgpe1xuICAgIGxldCBhY3RpdmVSZWZzID0gdGhpcy5maWxlRWwuZ2V0QXR0cmlidXRlKFBIWF9BQ1RJVkVfRU5UUllfUkVGUykuc3BsaXQoXCIsXCIpXG4gICAgaWYoYWN0aXZlUmVmcy5pbmRleE9mKHRoaXMucmVmKSA9PT0gLTEpeyB0aGlzLmNhbmNlbCgpIH1cbiAgfVxuXG4gIHRvUHJlZmxpZ2h0UGF5bG9hZCgpe1xuICAgIHJldHVybiB7XG4gICAgICBsYXN0X21vZGlmaWVkOiB0aGlzLmZpbGUubGFzdE1vZGlmaWVkLFxuICAgICAgbmFtZTogdGhpcy5maWxlLm5hbWUsXG4gICAgICBzaXplOiB0aGlzLmZpbGUuc2l6ZSxcbiAgICAgIHR5cGU6IHRoaXMuZmlsZS50eXBlLFxuICAgICAgcmVmOiB0aGlzLnJlZlxuICAgIH1cbiAgfVxuXG4gIHVwbG9hZGVyKHVwbG9hZGVycyl7XG4gICAgaWYodGhpcy5tZXRhLnVwbG9hZGVyKXtcbiAgICAgIGxldCBjYWxsYmFjayA9IHVwbG9hZGVyc1t0aGlzLm1ldGEudXBsb2FkZXJdIHx8IGxvZ0Vycm9yKGBubyB1cGxvYWRlciBjb25maWd1cmVkIGZvciAke3RoaXMubWV0YS51cGxvYWRlcn1gKVxuICAgICAgcmV0dXJuIHtuYW1lOiB0aGlzLm1ldGEudXBsb2FkZXIsIGNhbGxiYWNrOiBjYWxsYmFja31cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtuYW1lOiBcImNoYW5uZWxcIiwgY2FsbGJhY2s6IGNoYW5uZWxVcGxvYWRlcn1cbiAgICB9XG4gIH1cblxuICB6aXBQb3N0RmxpZ2h0KHJlc3Ape1xuICAgIHRoaXMubWV0YSA9IHJlc3AuZW50cmllc1t0aGlzLnJlZl1cbiAgICBpZighdGhpcy5tZXRhKXsgbG9nRXJyb3IoYG5vIHByZWZsaWdodCB1cGxvYWQgcmVzcG9uc2UgcmV0dXJuZWQgd2l0aCByZWYgJHt0aGlzLnJlZn1gLCB7aW5wdXQ6IHRoaXMuZmlsZUVsLCByZXNwb25zZTogcmVzcH0pIH1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIFBIWF9ET05FX1JFRlMsXG4gIFBIWF9QUkVGTElHSFRFRF9SRUZTLFxuICBQSFhfVVBMT0FEX1JFRlxufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5pbXBvcnQge1xufSBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCBET00gZnJvbSBcIi4vZG9tXCJcbmltcG9ydCBVcGxvYWRFbnRyeSBmcm9tIFwiLi91cGxvYWRfZW50cnlcIlxuXG5sZXQgbGl2ZVVwbG9hZGVyRmlsZVJlZiA9IDBcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl2ZVVwbG9hZGVyIHtcbiAgc3RhdGljIGdlbkZpbGVSZWYoZmlsZSl7XG4gICAgbGV0IHJlZiA9IGZpbGUuX3BoeFJlZlxuICAgIGlmKHJlZiAhPT0gdW5kZWZpbmVkKXtcbiAgICAgIHJldHVybiByZWZcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZS5fcGh4UmVmID0gKGxpdmVVcGxvYWRlckZpbGVSZWYrKykudG9TdHJpbmcoKVxuICAgICAgcmV0dXJuIGZpbGUuX3BoeFJlZlxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRFbnRyeURhdGFVUkwoaW5wdXRFbCwgcmVmLCBjYWxsYmFjayl7XG4gICAgbGV0IGZpbGUgPSB0aGlzLmFjdGl2ZUZpbGVzKGlucHV0RWwpLmZpbmQoZmlsZSA9PiB0aGlzLmdlbkZpbGVSZWYoZmlsZSkgPT09IHJlZilcbiAgICBjYWxsYmFjayhVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKVxuICB9XG5cbiAgc3RhdGljIGhhc1VwbG9hZHNJblByb2dyZXNzKGZvcm1FbCl7XG4gICAgbGV0IGFjdGl2ZSA9IDBcbiAgICBET00uZmluZFVwbG9hZElucHV0cyhmb3JtRWwpLmZvckVhY2goaW5wdXQgPT4ge1xuICAgICAgaWYoaW5wdXQuZ2V0QXR0cmlidXRlKFBIWF9QUkVGTElHSFRFRF9SRUZTKSAhPT0gaW5wdXQuZ2V0QXR0cmlidXRlKFBIWF9ET05FX1JFRlMpKXtcbiAgICAgICAgYWN0aXZlKytcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBhY3RpdmUgPiAwXG4gIH1cblxuICBzdGF0aWMgc2VyaWFsaXplVXBsb2FkcyhpbnB1dEVsKXtcbiAgICBsZXQgZmlsZXMgPSB0aGlzLmFjdGl2ZUZpbGVzKGlucHV0RWwpXG4gICAgbGV0IGZpbGVEYXRhID0ge31cbiAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGVudHJ5ID0ge3BhdGg6IGlucHV0RWwubmFtZX1cbiAgICAgIGxldCB1cGxvYWRSZWYgPSBpbnB1dEVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRilcbiAgICAgIGZpbGVEYXRhW3VwbG9hZFJlZl0gPSBmaWxlRGF0YVt1cGxvYWRSZWZdIHx8IFtdXG4gICAgICBlbnRyeS5yZWYgPSB0aGlzLmdlbkZpbGVSZWYoZmlsZSlcbiAgICAgIGVudHJ5Lm5hbWUgPSBmaWxlLm5hbWUgfHwgZW50cnkucmVmXG4gICAgICBlbnRyeS50eXBlID0gZmlsZS50eXBlXG4gICAgICBlbnRyeS5zaXplID0gZmlsZS5zaXplXG4gICAgICBmaWxlRGF0YVt1cGxvYWRSZWZdLnB1c2goZW50cnkpXG4gICAgfSlcbiAgICByZXR1cm4gZmlsZURhdGFcbiAgfVxuXG4gIHN0YXRpYyBjbGVhckZpbGVzKGlucHV0RWwpe1xuICAgIGlucHV0RWwudmFsdWUgPSBudWxsXG4gICAgaW5wdXRFbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX1VQTE9BRF9SRUYpXG4gICAgRE9NLnB1dFByaXZhdGUoaW5wdXRFbCwgXCJmaWxlc1wiLCBbXSlcbiAgfVxuXG4gIHN0YXRpYyB1bnRyYWNrRmlsZShpbnB1dEVsLCBmaWxlKXtcbiAgICBET00ucHV0UHJpdmF0ZShpbnB1dEVsLCBcImZpbGVzXCIsIERPTS5wcml2YXRlKGlucHV0RWwsIFwiZmlsZXNcIikuZmlsdGVyKGYgPT4gIU9iamVjdC5pcyhmLCBmaWxlKSkpXG4gIH1cblxuICBzdGF0aWMgdHJhY2tGaWxlcyhpbnB1dEVsLCBmaWxlcyl7XG4gICAgaWYoaW5wdXRFbC5nZXRBdHRyaWJ1dGUoXCJtdWx0aXBsZVwiKSAhPT0gbnVsbCl7XG4gICAgICBsZXQgbmV3RmlsZXMgPSBmaWxlcy5maWx0ZXIoZmlsZSA9PiAhdGhpcy5hY3RpdmVGaWxlcyhpbnB1dEVsKS5maW5kKGYgPT4gT2JqZWN0LmlzKGYsIGZpbGUpKSlcbiAgICAgIERPTS5wdXRQcml2YXRlKGlucHV0RWwsIFwiZmlsZXNcIiwgdGhpcy5hY3RpdmVGaWxlcyhpbnB1dEVsKS5jb25jYXQobmV3RmlsZXMpKVxuICAgICAgaW5wdXRFbC52YWx1ZSA9IG51bGxcbiAgICB9IGVsc2Uge1xuICAgICAgRE9NLnB1dFByaXZhdGUoaW5wdXRFbCwgXCJmaWxlc1wiLCBmaWxlcylcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYWN0aXZlRmlsZUlucHV0cyhmb3JtRWwpe1xuICAgIGxldCBmaWxlSW5wdXRzID0gRE9NLmZpbmRVcGxvYWRJbnB1dHMoZm9ybUVsKVxuICAgIHJldHVybiBBcnJheS5mcm9tKGZpbGVJbnB1dHMpLmZpbHRlcihlbCA9PiBlbC5maWxlcyAmJiB0aGlzLmFjdGl2ZUZpbGVzKGVsKS5sZW5ndGggPiAwKVxuICB9XG5cbiAgc3RhdGljIGFjdGl2ZUZpbGVzKGlucHV0KXtcbiAgICByZXR1cm4gKERPTS5wcml2YXRlKGlucHV0LCBcImZpbGVzXCIpIHx8IFtdKS5maWx0ZXIoZiA9PiBVcGxvYWRFbnRyeS5pc0FjdGl2ZShpbnB1dCwgZikpXG4gIH1cblxuICBzdGF0aWMgaW5wdXRzQXdhaXRpbmdQcmVmbGlnaHQoZm9ybUVsKXtcbiAgICBsZXQgZmlsZUlucHV0cyA9IERPTS5maW5kVXBsb2FkSW5wdXRzKGZvcm1FbClcbiAgICByZXR1cm4gQXJyYXkuZnJvbShmaWxlSW5wdXRzKS5maWx0ZXIoaW5wdXQgPT4gdGhpcy5maWxlc0F3YWl0aW5nUHJlZmxpZ2h0KGlucHV0KS5sZW5ndGggPiAwKVxuICB9XG5cbiAgc3RhdGljIGZpbGVzQXdhaXRpbmdQcmVmbGlnaHQoaW5wdXQpe1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbGVzKGlucHV0KS5maWx0ZXIoZiA9PiAhVXBsb2FkRW50cnkuaXNQcmVmbGlnaHRlZChpbnB1dCwgZikpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihpbnB1dEVsLCB2aWV3LCBvbkNvbXBsZXRlKXtcbiAgICB0aGlzLnZpZXcgPSB2aWV3XG4gICAgdGhpcy5vbkNvbXBsZXRlID0gb25Db21wbGV0ZVxuICAgIHRoaXMuX2VudHJpZXMgPVxuICAgICAgQXJyYXkuZnJvbShMaXZlVXBsb2FkZXIuZmlsZXNBd2FpdGluZ1ByZWZsaWdodChpbnB1dEVsKSB8fCBbXSlcbiAgICAgICAgLm1hcChmaWxlID0+IG5ldyBVcGxvYWRFbnRyeShpbnB1dEVsLCBmaWxlLCB2aWV3KSlcblxuICAgIHRoaXMubnVtRW50cmllc0luUHJvZ3Jlc3MgPSB0aGlzLl9lbnRyaWVzLmxlbmd0aFxuICB9XG5cbiAgZW50cmllcygpeyByZXR1cm4gdGhpcy5fZW50cmllcyB9XG5cbiAgaW5pdEFkYXB0ZXJVcGxvYWQocmVzcCwgb25FcnJvciwgbGl2ZVNvY2tldCl7XG4gICAgdGhpcy5fZW50cmllcyA9XG4gICAgICB0aGlzLl9lbnRyaWVzLm1hcChlbnRyeSA9PiB7XG4gICAgICAgIGVudHJ5LnppcFBvc3RGbGlnaHQocmVzcClcbiAgICAgICAgZW50cnkub25Eb25lKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm51bUVudHJpZXNJblByb2dyZXNzLS1cbiAgICAgICAgICBpZih0aGlzLm51bUVudHJpZXNJblByb2dyZXNzID09PSAwKXsgdGhpcy5vbkNvbXBsZXRlKCkgfVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gZW50cnlcbiAgICAgIH0pXG5cbiAgICBsZXQgZ3JvdXBlZEVudHJpZXMgPSB0aGlzLl9lbnRyaWVzLnJlZHVjZSgoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgbGV0IHtuYW1lLCBjYWxsYmFja30gPSBlbnRyeS51cGxvYWRlcihsaXZlU29ja2V0LnVwbG9hZGVycylcbiAgICAgIGFjY1tuYW1lXSA9IGFjY1tuYW1lXSB8fCB7Y2FsbGJhY2s6IGNhbGxiYWNrLCBlbnRyaWVzOiBbXX1cbiAgICAgIGFjY1tuYW1lXS5lbnRyaWVzLnB1c2goZW50cnkpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG5cbiAgICBmb3IobGV0IG5hbWUgaW4gZ3JvdXBlZEVudHJpZXMpe1xuICAgICAgbGV0IHtjYWxsYmFjaywgZW50cmllc30gPSBncm91cGVkRW50cmllc1tuYW1lXVxuICAgICAgY2FsbGJhY2soZW50cmllcywgb25FcnJvciwgcmVzcCwgbGl2ZVNvY2tldClcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBQSFhfQUNUSVZFX0VOVFJZX1JFRlMsXG4gIFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCxcbiAgUEhYX1BSRUZMSUdIVEVEX1JFRlMsXG4gIFBIWF9VUExPQURfUkVGXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCBMaXZlVXBsb2FkZXIgZnJvbSBcIi4vbGl2ZV91cGxvYWRlclwiXG5cbmxldCBIb29rcyA9IHtcbiAgTGl2ZUZpbGVVcGxvYWQ6IHtcbiAgICBhY3RpdmVSZWZzKCl7IHJldHVybiB0aGlzLmVsLmdldEF0dHJpYnV0ZShQSFhfQUNUSVZFX0VOVFJZX1JFRlMpIH0sXG5cbiAgICBwcmVmbGlnaHRlZFJlZnMoKXsgcmV0dXJuIHRoaXMuZWwuZ2V0QXR0cmlidXRlKFBIWF9QUkVGTElHSFRFRF9SRUZTKSB9LFxuXG4gICAgbW91bnRlZCgpeyB0aGlzLnByZWZsaWdodGVkV2FzID0gdGhpcy5wcmVmbGlnaHRlZFJlZnMoKSB9LFxuXG4gICAgdXBkYXRlZCgpe1xuICAgICAgbGV0IG5ld1ByZWZsaWdodHMgPSB0aGlzLnByZWZsaWdodGVkUmVmcygpXG4gICAgICBpZih0aGlzLnByZWZsaWdodGVkV2FzICE9PSBuZXdQcmVmbGlnaHRzKXtcbiAgICAgICAgdGhpcy5wcmVmbGlnaHRlZFdhcyA9IG5ld1ByZWZsaWdodHNcbiAgICAgICAgaWYobmV3UHJlZmxpZ2h0cyA9PT0gXCJcIil7XG4gICAgICAgICAgdGhpcy5fX3ZpZXcuY2FuY2VsU3VibWl0KHRoaXMuZWwuZm9ybSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZih0aGlzLmFjdGl2ZVJlZnMoKSA9PT0gXCJcIil7IHRoaXMuZWwudmFsdWUgPSBudWxsIH1cbiAgICAgIHRoaXMuZWwuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoUEhYX0xJVkVfRklMRV9VUERBVEVEKSlcbiAgICB9XG4gIH0sXG5cbiAgTGl2ZUltZ1ByZXZpZXc6IHtcbiAgICBtb3VudGVkKCl7XG4gICAgICB0aGlzLnJlZiA9IHRoaXMuZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1waHgtZW50cnktcmVmXCIpXG4gICAgICB0aGlzLmlucHV0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRikpXG4gICAgICBMaXZlVXBsb2FkZXIuZ2V0RW50cnlEYXRhVVJMKHRoaXMuaW5wdXRFbCwgdGhpcy5yZWYsIHVybCA9PiB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsXG4gICAgICAgIHRoaXMuZWwuc3JjID0gdXJsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZGVzdHJveWVkKCl7XG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMudXJsKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBIb29rc1xuIiwgImltcG9ydCB7XG4gIG1heWJlXG59IGZyb20gXCIuL3V0aWxzXCJcblxuaW1wb3J0IERPTSBmcm9tIFwiLi9kb21cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBET01Qb3N0TW9ycGhSZXN0b3JlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lckJlZm9yZSwgY29udGFpbmVyQWZ0ZXIsIHVwZGF0ZVR5cGUpe1xuICAgIGxldCBpZHNCZWZvcmUgPSBuZXcgU2V0KClcbiAgICBsZXQgaWRzQWZ0ZXIgPSBuZXcgU2V0KFsuLi5jb250YWluZXJBZnRlci5jaGlsZHJlbl0ubWFwKGNoaWxkID0+IGNoaWxkLmlkKSlcblxuICAgIGxldCBlbGVtZW50c1RvTW9kaWZ5ID0gW11cblxuICAgIEFycmF5LmZyb20oY29udGFpbmVyQmVmb3JlLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIGlmKGNoaWxkLmlkKXsgLy8gYWxsIG9mIG91ciBjaGlsZHJlbiBzaG91bGQgYmUgZWxlbWVudHMgd2l0aCBpZHNcbiAgICAgICAgaWRzQmVmb3JlLmFkZChjaGlsZC5pZClcbiAgICAgICAgaWYoaWRzQWZ0ZXIuaGFzKGNoaWxkLmlkKSl7XG4gICAgICAgICAgbGV0IHByZXZpb3VzRWxlbWVudElkID0gY2hpbGQucHJldmlvdXNFbGVtZW50U2libGluZyAmJiBjaGlsZC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmlkXG4gICAgICAgICAgZWxlbWVudHNUb01vZGlmeS5wdXNoKHtlbGVtZW50SWQ6IGNoaWxkLmlkLCBwcmV2aW91c0VsZW1lbnRJZDogcHJldmlvdXNFbGVtZW50SWR9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIHRoaXMuY29udGFpbmVySWQgPSBjb250YWluZXJBZnRlci5pZFxuICAgIHRoaXMudXBkYXRlVHlwZSA9IHVwZGF0ZVR5cGVcbiAgICB0aGlzLmVsZW1lbnRzVG9Nb2RpZnkgPSBlbGVtZW50c1RvTW9kaWZ5XG4gICAgdGhpcy5lbGVtZW50SWRzVG9BZGQgPSBbLi4uaWRzQWZ0ZXJdLmZpbHRlcihpZCA9PiAhaWRzQmVmb3JlLmhhcyhpZCkpXG4gIH1cblxuICAvLyBXZSBkbyB0aGUgZm9sbG93aW5nIHRvIG9wdGltaXplIGFwcGVuZC9wcmVwZW5kIG9wZXJhdGlvbnM6XG4gIC8vICAgMSkgVHJhY2sgaWRzIG9mIG1vZGlmaWVkIGVsZW1lbnRzICYgb2YgbmV3IGVsZW1lbnRzXG4gIC8vICAgMikgQWxsIHRoZSBtb2RpZmllZCBlbGVtZW50cyBhcmUgcHV0IGJhY2sgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24gaW4gdGhlIERPTSB0cmVlXG4gIC8vICAgICAgYnkgc3RvcmluZyB0aGUgaWQgb2YgdGhlaXIgcHJldmlvdXMgc2libGluZ1xuICAvLyAgIDMpIE5ldyBlbGVtZW50cyBhcmUgZ29pbmcgdG8gYmUgcHV0IGluIHRoZSByaWdodCBwbGFjZSBieSBtb3JwaGRvbSBkdXJpbmcgYXBwZW5kLlxuICAvLyAgICAgIEZvciBwcmVwZW5kLCB3ZSBtb3ZlIHRoZW0gdG8gdGhlIGZpcnN0IHBvc2l0aW9uIGluIHRoZSBjb250YWluZXJcbiAgcGVyZm9ybSgpe1xuICAgIGxldCBjb250YWluZXIgPSBET00uYnlJZCh0aGlzLmNvbnRhaW5lcklkKVxuICAgIHRoaXMuZWxlbWVudHNUb01vZGlmeS5mb3JFYWNoKGVsZW1lbnRUb01vZGlmeSA9PiB7XG4gICAgICBpZihlbGVtZW50VG9Nb2RpZnkucHJldmlvdXNFbGVtZW50SWQpe1xuICAgICAgICBtYXliZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50VG9Nb2RpZnkucHJldmlvdXNFbGVtZW50SWQpLCBwcmV2aW91c0VsZW0gPT4ge1xuICAgICAgICAgIG1heWJlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRUb01vZGlmeS5lbGVtZW50SWQpLCBlbGVtID0+IHtcbiAgICAgICAgICAgIGxldCBpc0luUmlnaHRQbGFjZSA9IGVsZW0ucHJldmlvdXNFbGVtZW50U2libGluZyAmJiBlbGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuaWQgPT0gcHJldmlvdXNFbGVtLmlkXG4gICAgICAgICAgICBpZighaXNJblJpZ2h0UGxhY2Upe1xuICAgICAgICAgICAgICBwcmV2aW91c0VsZW0uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJlbmRcIiwgZWxlbSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgY29udGFpbmVyXG4gICAgICAgIG1heWJlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRUb01vZGlmeS5lbGVtZW50SWQpLCBlbGVtID0+IHtcbiAgICAgICAgICBsZXQgaXNJblJpZ2h0UGxhY2UgPSBlbGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgPT0gbnVsbFxuICAgICAgICAgIGlmKCFpc0luUmlnaHRQbGFjZSl7XG4gICAgICAgICAgICBjb250YWluZXIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJiZWdpblwiLCBlbGVtKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYodGhpcy51cGRhdGVUeXBlID09IFwicHJlcGVuZFwiKXtcbiAgICAgIHRoaXMuZWxlbWVudElkc1RvQWRkLnJldmVyc2UoKS5mb3JFYWNoKGVsZW1JZCA9PiB7XG4gICAgICAgIG1heWJlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1JZCksIGVsZW0gPT4gY29udGFpbmVyLmluc2VydEFkamFjZW50RWxlbWVudChcImFmdGVyYmVnaW5cIiwgZWxlbSkpXG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuIiwgInZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFID0gMTE7XG5cbmZ1bmN0aW9uIG1vcnBoQXR0cnMoZnJvbU5vZGUsIHRvTm9kZSkge1xuICAgIHZhciB0b05vZGVBdHRycyA9IHRvTm9kZS5hdHRyaWJ1dGVzO1xuICAgIHZhciBhdHRyO1xuICAgIHZhciBhdHRyTmFtZTtcbiAgICB2YXIgYXR0ck5hbWVzcGFjZVVSSTtcbiAgICB2YXIgYXR0clZhbHVlO1xuICAgIHZhciBmcm9tVmFsdWU7XG5cbiAgICAvLyBkb2N1bWVudC1mcmFnbWVudHMgZG9udCBoYXZlIGF0dHJpYnV0ZXMgc28gbGV0cyBub3QgZG8gYW55dGhpbmdcbiAgICBpZiAodG9Ob2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFIHx8IGZyb21Ob2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGF0dHJpYnV0ZXMgb24gb3JpZ2luYWwgRE9NIGVsZW1lbnRcbiAgICBmb3IgKHZhciBpID0gdG9Ob2RlQXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgYXR0ciA9IHRvTm9kZUF0dHJzW2ldO1xuICAgICAgICBhdHRyTmFtZSA9IGF0dHIubmFtZTtcbiAgICAgICAgYXR0ck5hbWVzcGFjZVVSSSA9IGF0dHIubmFtZXNwYWNlVVJJO1xuICAgICAgICBhdHRyVmFsdWUgPSBhdHRyLnZhbHVlO1xuXG4gICAgICAgIGlmIChhdHRyTmFtZXNwYWNlVVJJKSB7XG4gICAgICAgICAgICBhdHRyTmFtZSA9IGF0dHIubG9jYWxOYW1lIHx8IGF0dHJOYW1lO1xuICAgICAgICAgICAgZnJvbVZhbHVlID0gZnJvbU5vZGUuZ2V0QXR0cmlidXRlTlMoYXR0ck5hbWVzcGFjZVVSSSwgYXR0ck5hbWUpO1xuXG4gICAgICAgICAgICBpZiAoZnJvbVZhbHVlICE9PSBhdHRyVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXR0ci5wcmVmaXggPT09ICd4bWxucycpe1xuICAgICAgICAgICAgICAgICAgICBhdHRyTmFtZSA9IGF0dHIubmFtZTsgLy8gSXQncyBub3QgYWxsb3dlZCB0byBzZXQgYW4gYXR0cmlidXRlIHdpdGggdGhlIFhNTE5TIG5hbWVzcGFjZSB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGB4bWxuc2AgcHJlZml4XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZyb21Ob2RlLnNldEF0dHJpYnV0ZU5TKGF0dHJOYW1lc3BhY2VVUkksIGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZnJvbVZhbHVlID0gZnJvbU5vZGUuZ2V0QXR0cmlidXRlKGF0dHJOYW1lKTtcblxuICAgICAgICAgICAgaWYgKGZyb21WYWx1ZSAhPT0gYXR0clZhbHVlKSB7XG4gICAgICAgICAgICAgICAgZnJvbU5vZGUuc2V0QXR0cmlidXRlKGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBleHRyYSBhdHRyaWJ1dGVzIGZvdW5kIG9uIHRoZSBvcmlnaW5hbCBET00gZWxlbWVudCB0aGF0XG4gICAgLy8gd2VyZW4ndCBmb3VuZCBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gICAgdmFyIGZyb21Ob2RlQXR0cnMgPSBmcm9tTm9kZS5hdHRyaWJ1dGVzO1xuXG4gICAgZm9yICh2YXIgZCA9IGZyb21Ob2RlQXR0cnMubGVuZ3RoIC0gMTsgZCA+PSAwOyBkLS0pIHtcbiAgICAgICAgYXR0ciA9IGZyb21Ob2RlQXR0cnNbZF07XG4gICAgICAgIGF0dHJOYW1lID0gYXR0ci5uYW1lO1xuICAgICAgICBhdHRyTmFtZXNwYWNlVVJJID0gYXR0ci5uYW1lc3BhY2VVUkk7XG5cbiAgICAgICAgaWYgKGF0dHJOYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgIGF0dHJOYW1lID0gYXR0ci5sb2NhbE5hbWUgfHwgYXR0ck5hbWU7XG5cbiAgICAgICAgICAgIGlmICghdG9Ob2RlLmhhc0F0dHJpYnV0ZU5TKGF0dHJOYW1lc3BhY2VVUkksIGF0dHJOYW1lKSkge1xuICAgICAgICAgICAgICAgIGZyb21Ob2RlLnJlbW92ZUF0dHJpYnV0ZU5TKGF0dHJOYW1lc3BhY2VVUkksIGF0dHJOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdG9Ob2RlLmhhc0F0dHJpYnV0ZShhdHRyTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBmcm9tTm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ck5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG52YXIgcmFuZ2U7IC8vIENyZWF0ZSBhIHJhbmdlIG9iamVjdCBmb3IgZWZmaWNlbnRseSByZW5kZXJpbmcgc3RyaW5ncyB0byBlbGVtZW50cy5cbnZhciBOU19YSFRNTCA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJztcblxudmFyIGRvYyA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBkb2N1bWVudDtcbnZhciBIQVNfVEVNUExBVEVfU1VQUE9SVCA9ICEhZG9jICYmICdjb250ZW50JyBpbiBkb2MuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbnZhciBIQVNfUkFOR0VfU1VQUE9SVCA9ICEhZG9jICYmIGRvYy5jcmVhdGVSYW5nZSAmJiAnY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50JyBpbiBkb2MuY3JlYXRlUmFuZ2UoKTtcblxuZnVuY3Rpb24gY3JlYXRlRnJhZ21lbnRGcm9tVGVtcGxhdGUoc3RyKSB7XG4gICAgdmFyIHRlbXBsYXRlID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gc3RyO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXNbMF07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZyYWdtZW50RnJvbVJhbmdlKHN0cikge1xuICAgIGlmICghcmFuZ2UpIHtcbiAgICAgICAgcmFuZ2UgPSBkb2MuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZShkb2MuYm9keSk7XG4gICAgfVxuXG4gICAgdmFyIGZyYWdtZW50ID0gcmFuZ2UuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHN0cik7XG4gICAgcmV0dXJuIGZyYWdtZW50LmNoaWxkTm9kZXNbMF07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZyYWdtZW50RnJvbVdyYXAoc3RyKSB7XG4gICAgdmFyIGZyYWdtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2JvZHknKTtcbiAgICBmcmFnbWVudC5pbm5lckhUTUwgPSBzdHI7XG4gICAgcmV0dXJuIGZyYWdtZW50LmNoaWxkTm9kZXNbMF07XG59XG5cbi8qKlxuICogVGhpcyBpcyBhYm91dCB0aGUgc2FtZVxuICogdmFyIGh0bWwgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHN0ciwgJ3RleHQvaHRtbCcpO1xuICogcmV0dXJuIGh0bWwuYm9keS5maXJzdENoaWxkO1xuICpcbiAqIEBtZXRob2QgdG9FbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKi9cbmZ1bmN0aW9uIHRvRWxlbWVudChzdHIpIHtcbiAgICBzdHIgPSBzdHIudHJpbSgpO1xuICAgIGlmIChIQVNfVEVNUExBVEVfU1VQUE9SVCkge1xuICAgICAgLy8gYXZvaWQgcmVzdHJpY3Rpb25zIG9uIGNvbnRlbnQgZm9yIHRoaW5ncyBsaWtlIGA8dHI+PHRoPkhpPC90aD48L3RyPmAgd2hpY2hcbiAgICAgIC8vIGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCBkb2Vzbid0IHN1cHBvcnRcbiAgICAgIC8vIDx0ZW1wbGF0ZT4gc3VwcG9ydCBub3QgYXZhaWxhYmxlIGluIElFXG4gICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGVtcGxhdGUoc3RyKTtcbiAgICB9IGVsc2UgaWYgKEhBU19SQU5HRV9TVVBQT1JUKSB7XG4gICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tUmFuZ2Uoc3RyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tV3JhcChzdHIpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0d28gbm9kZSdzIG5hbWVzIGFyZSB0aGUgc2FtZS5cbiAqXG4gKiBOT1RFOiBXZSBkb24ndCBib3RoZXIgY2hlY2tpbmcgYG5hbWVzcGFjZVVSSWAgYmVjYXVzZSB5b3Ugd2lsbCBuZXZlciBmaW5kIHR3byBIVE1MIGVsZW1lbnRzIHdpdGggdGhlIHNhbWVcbiAqICAgICAgIG5vZGVOYW1lIGFuZCBkaWZmZXJlbnQgbmFtZXNwYWNlIFVSSXMuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBhXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGIgVGhlIHRhcmdldCBlbGVtZW50XG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBjb21wYXJlTm9kZU5hbWVzKGZyb21FbCwgdG9FbCkge1xuICAgIHZhciBmcm9tTm9kZU5hbWUgPSBmcm9tRWwubm9kZU5hbWU7XG4gICAgdmFyIHRvTm9kZU5hbWUgPSB0b0VsLm5vZGVOYW1lO1xuICAgIHZhciBmcm9tQ29kZVN0YXJ0LCB0b0NvZGVTdGFydDtcblxuICAgIGlmIChmcm9tTm9kZU5hbWUgPT09IHRvTm9kZU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnJvbUNvZGVTdGFydCA9IGZyb21Ob2RlTmFtZS5jaGFyQ29kZUF0KDApO1xuICAgIHRvQ29kZVN0YXJ0ID0gdG9Ob2RlTmFtZS5jaGFyQ29kZUF0KDApO1xuXG4gICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGEgdmlydHVhbCBET00gbm9kZSBvciBTVkcgbm9kZSB0aGVuIHdlIG1heVxuICAgIC8vIG5lZWQgdG8gbm9ybWFsaXplIHRoZSB0YWcgbmFtZSBiZWZvcmUgY29tcGFyaW5nLiBOb3JtYWwgSFRNTCBlbGVtZW50cyB0aGF0IGFyZVxuICAgIC8vIGluIHRoZSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIlxuICAgIC8vIGFyZSBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZVxuICAgIGlmIChmcm9tQ29kZVN0YXJ0IDw9IDkwICYmIHRvQ29kZVN0YXJ0ID49IDk3KSB7IC8vIGZyb20gaXMgdXBwZXIgYW5kIHRvIGlzIGxvd2VyXG4gICAgICAgIHJldHVybiBmcm9tTm9kZU5hbWUgPT09IHRvTm9kZU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICB9IGVsc2UgaWYgKHRvQ29kZVN0YXJ0IDw9IDkwICYmIGZyb21Db2RlU3RhcnQgPj0gOTcpIHsgLy8gdG8gaXMgdXBwZXIgYW5kIGZyb20gaXMgbG93ZXJcbiAgICAgICAgcmV0dXJuIHRvTm9kZU5hbWUgPT09IGZyb21Ob2RlTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGVsZW1lbnQsIG9wdGlvbmFsbHkgd2l0aCBhIGtub3duIG5hbWVzcGFjZSBVUkkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgdGhlIGVsZW1lbnQgbmFtZSwgZS5nLiAnZGl2JyBvciAnc3ZnJ1xuICogQHBhcmFtIHtzdHJpbmd9IFtuYW1lc3BhY2VVUkldIHRoZSBlbGVtZW50J3MgbmFtZXNwYWNlIFVSSSwgaS5lLiB0aGUgdmFsdWUgb2ZcbiAqIGl0cyBgeG1sbnNgIGF0dHJpYnV0ZSBvciBpdHMgaW5mZXJyZWQgbmFtZXNwYWNlLlxuICpcbiAqIEByZXR1cm4ge0VsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnROUyhuYW1lLCBuYW1lc3BhY2VVUkkpIHtcbiAgICByZXR1cm4gIW5hbWVzcGFjZVVSSSB8fCBuYW1lc3BhY2VVUkkgPT09IE5TX1hIVE1MID9cbiAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQobmFtZSkgOlxuICAgICAgICBkb2MuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZVVSSSwgbmFtZSk7XG59XG5cbi8qKlxuICogQ29waWVzIHRoZSBjaGlsZHJlbiBvZiBvbmUgRE9NIGVsZW1lbnQgdG8gYW5vdGhlciBET00gZWxlbWVudFxuICovXG5mdW5jdGlvbiBtb3ZlQ2hpbGRyZW4oZnJvbUVsLCB0b0VsKSB7XG4gICAgdmFyIGN1ckNoaWxkID0gZnJvbUVsLmZpcnN0Q2hpbGQ7XG4gICAgd2hpbGUgKGN1ckNoaWxkKSB7XG4gICAgICAgIHZhciBuZXh0Q2hpbGQgPSBjdXJDaGlsZC5uZXh0U2libGluZztcbiAgICAgICAgdG9FbC5hcHBlbmRDaGlsZChjdXJDaGlsZCk7XG4gICAgICAgIGN1ckNoaWxkID0gbmV4dENoaWxkO1xuICAgIH1cbiAgICByZXR1cm4gdG9FbDtcbn1cblxuZnVuY3Rpb24gc3luY0Jvb2xlYW5BdHRyUHJvcChmcm9tRWwsIHRvRWwsIG5hbWUpIHtcbiAgICBpZiAoZnJvbUVsW25hbWVdICE9PSB0b0VsW25hbWVdKSB7XG4gICAgICAgIGZyb21FbFtuYW1lXSA9IHRvRWxbbmFtZV07XG4gICAgICAgIGlmIChmcm9tRWxbbmFtZV0pIHtcbiAgICAgICAgICAgIGZyb21FbC5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZnJvbUVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxudmFyIHNwZWNpYWxFbEhhbmRsZXJzID0ge1xuICAgIE9QVElPTjogZnVuY3Rpb24oZnJvbUVsLCB0b0VsKSB7XG4gICAgICAgIHZhciBwYXJlbnROb2RlID0gZnJvbUVsLnBhcmVudE5vZGU7XG4gICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICB2YXIgcGFyZW50TmFtZSA9IHBhcmVudE5vZGUubm9kZU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnROYW1lID09PSAnT1BUR1JPVVAnKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICBwYXJlbnROYW1lID0gcGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyZW50TmFtZSA9PT0gJ1NFTEVDVCcgJiYgIXBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCdtdWx0aXBsZScpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZyb21FbC5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykgJiYgIXRvRWwuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgTVMgRWRnZSBidWcgd2hlcmUgdGhlICdzZWxlY3RlZCcgYXR0cmlidXRlIGNhbiBvbmx5IGJlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZWQgaWYgc2V0IHRvIGEgbm9uLWVtcHR5IHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy8xMjA4NzY3OS9cbiAgICAgICAgICAgICAgICAgICAgZnJvbUVsLnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCAnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgZnJvbUVsLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXNldCBzZWxlY3QgZWxlbWVudCdzIHNlbGVjdGVkSW5kZXggdG8gLTEsIG90aGVyd2lzZSBzZXR0aW5nXG4gICAgICAgICAgICAgICAgLy8gZnJvbUVsLnNlbGVjdGVkIHVzaW5nIHRoZSBzeW5jQm9vbGVhbkF0dHJQcm9wIGJlbG93IGhhcyBubyBlZmZlY3QuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGNvcnJlY3Qgc2VsZWN0ZWRJbmRleCB3aWxsIGJlIHNldCBpbiB0aGUgU0VMRUNUIHNwZWNpYWwgaGFuZGxlciBiZWxvdy5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLnNlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzeW5jQm9vbGVhbkF0dHJQcm9wKGZyb21FbCwgdG9FbCwgJ3NlbGVjdGVkJyk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBUaGUgXCJ2YWx1ZVwiIGF0dHJpYnV0ZSBpcyBzcGVjaWFsIGZvciB0aGUgPGlucHV0PiBlbGVtZW50IHNpbmNlIGl0IHNldHNcbiAgICAgKiB0aGUgaW5pdGlhbCB2YWx1ZS4gQ2hhbmdpbmcgdGhlIFwidmFsdWVcIiBhdHRyaWJ1dGUgd2l0aG91dCBjaGFuZ2luZyB0aGVcbiAgICAgKiBcInZhbHVlXCIgcHJvcGVydHkgd2lsbCBoYXZlIG5vIGVmZmVjdCBzaW5jZSBpdCBpcyBvbmx5IHVzZWQgdG8gdGhlIHNldCB0aGVcbiAgICAgKiBpbml0aWFsIHZhbHVlLiAgU2ltaWxhciBmb3IgdGhlIFwiY2hlY2tlZFwiIGF0dHJpYnV0ZSwgYW5kIFwiZGlzYWJsZWRcIi5cbiAgICAgKi9cbiAgICBJTlBVVDogZnVuY3Rpb24oZnJvbUVsLCB0b0VsKSB7XG4gICAgICAgIHN5bmNCb29sZWFuQXR0clByb3AoZnJvbUVsLCB0b0VsLCAnY2hlY2tlZCcpO1xuICAgICAgICBzeW5jQm9vbGVhbkF0dHJQcm9wKGZyb21FbCwgdG9FbCwgJ2Rpc2FibGVkJyk7XG5cbiAgICAgICAgaWYgKGZyb21FbC52YWx1ZSAhPT0gdG9FbC52YWx1ZSkge1xuICAgICAgICAgICAgZnJvbUVsLnZhbHVlID0gdG9FbC52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdG9FbC5oYXNBdHRyaWJ1dGUoJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgIGZyb21FbC5yZW1vdmVBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgVEVYVEFSRUE6IGZ1bmN0aW9uKGZyb21FbCwgdG9FbCkge1xuICAgICAgICB2YXIgbmV3VmFsdWUgPSB0b0VsLnZhbHVlO1xuICAgICAgICBpZiAoZnJvbUVsLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgZnJvbUVsLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZmlyc3RDaGlsZCA9IGZyb21FbC5maXJzdENoaWxkO1xuICAgICAgICBpZiAoZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgLy8gTmVlZGVkIGZvciBJRS4gQXBwYXJlbnRseSBJRSBzZXRzIHRoZSBwbGFjZWhvbGRlciBhcyB0aGVcbiAgICAgICAgICAgIC8vIG5vZGUgdmFsdWUgYW5kIHZpc2UgdmVyc2EuIFRoaXMgaWdub3JlcyBhbiBlbXB0eSB1cGRhdGUuXG4gICAgICAgICAgICB2YXIgb2xkVmFsdWUgPSBmaXJzdENoaWxkLm5vZGVWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKG9sZFZhbHVlID09IG5ld1ZhbHVlIHx8ICghbmV3VmFsdWUgJiYgb2xkVmFsdWUgPT0gZnJvbUVsLnBsYWNlaG9sZGVyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU0VMRUNUOiBmdW5jdGlvbihmcm9tRWwsIHRvRWwpIHtcbiAgICAgICAgaWYgKCF0b0VsLmhhc0F0dHJpYnV0ZSgnbXVsdGlwbGUnKSkge1xuICAgICAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gbG9vcCB0aHJvdWdoIGNoaWxkcmVuIG9mIGZyb21FbCwgbm90IHRvRWwgc2luY2Ugbm9kZXMgY2FuIGJlIG1vdmVkXG4gICAgICAgICAgICAvLyBmcm9tIHRvRWwgdG8gZnJvbUVsIGRpcmVjdGx5IHdoZW4gbW9ycGhpbmcuXG4gICAgICAgICAgICAvLyBBdCB0aGUgdGltZSB0aGlzIHNwZWNpYWwgaGFuZGxlciBpcyBpbnZva2VkLCBhbGwgY2hpbGRyZW4gaGF2ZSBhbHJlYWR5IGJlZW4gbW9ycGhlZFxuICAgICAgICAgICAgLy8gYW5kIGFwcGVuZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIGZyb21FbCwgc28gdXNpbmcgZnJvbUVsIGhlcmUgaXMgc2FmZSBhbmQgY29ycmVjdC5cbiAgICAgICAgICAgIHZhciBjdXJDaGlsZCA9IGZyb21FbC5maXJzdENoaWxkO1xuICAgICAgICAgICAgdmFyIG9wdGdyb3VwO1xuICAgICAgICAgICAgdmFyIG5vZGVOYW1lO1xuICAgICAgICAgICAgd2hpbGUoY3VyQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICBub2RlTmFtZSA9IGN1ckNoaWxkLm5vZGVOYW1lICYmIGN1ckNoaWxkLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGVOYW1lID09PSAnT1BUR1JPVVAnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGdyb3VwID0gY3VyQ2hpbGQ7XG4gICAgICAgICAgICAgICAgICAgIGN1ckNoaWxkID0gb3B0Z3JvdXAuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZU5hbWUgPT09ICdPUFRJT04nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQ2hpbGQuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VyQ2hpbGQgPSBjdXJDaGlsZC5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJDaGlsZCAmJiBvcHRncm91cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VyQ2hpbGQgPSBvcHRncm91cC5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGdyb3VwID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnJvbUVsLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICB9XG4gICAgfVxufTtcblxudmFyIEVMRU1FTlRfTk9ERSA9IDE7XG52YXIgRE9DVU1FTlRfRlJBR01FTlRfTk9ERSQxID0gMTE7XG52YXIgVEVYVF9OT0RFID0gMztcbnZhciBDT01NRU5UX05PREUgPSA4O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxuZnVuY3Rpb24gZGVmYXVsdEdldE5vZGVLZXkobm9kZSkge1xuICBpZiAobm9kZSkge1xuICAgICAgcmV0dXJuIChub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgnaWQnKSkgfHwgbm9kZS5pZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3JwaGRvbUZhY3RvcnkobW9ycGhBdHRycykge1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1vcnBoZG9tKGZyb21Ob2RlLCB0b05vZGUsIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRvTm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmIChmcm9tTm9kZS5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudCcgfHwgZnJvbU5vZGUubm9kZU5hbWUgPT09ICdIVE1MJyB8fCBmcm9tTm9kZS5ub2RlTmFtZSA9PT0gJ0JPRFknKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRvTm9kZUh0bWwgPSB0b05vZGU7XG4gICAgICAgICAgICAgICAgdG9Ob2RlID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKTtcbiAgICAgICAgICAgICAgICB0b05vZGUuaW5uZXJIVE1MID0gdG9Ob2RlSHRtbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9Ob2RlID0gdG9FbGVtZW50KHRvTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZ2V0Tm9kZUtleSA9IG9wdGlvbnMuZ2V0Tm9kZUtleSB8fCBkZWZhdWx0R2V0Tm9kZUtleTtcbiAgICAgICAgdmFyIG9uQmVmb3JlTm9kZUFkZGVkID0gb3B0aW9ucy5vbkJlZm9yZU5vZGVBZGRlZCB8fCBub29wO1xuICAgICAgICB2YXIgb25Ob2RlQWRkZWQgPSBvcHRpb25zLm9uTm9kZUFkZGVkIHx8IG5vb3A7XG4gICAgICAgIHZhciBvbkJlZm9yZUVsVXBkYXRlZCA9IG9wdGlvbnMub25CZWZvcmVFbFVwZGF0ZWQgfHwgbm9vcDtcbiAgICAgICAgdmFyIG9uRWxVcGRhdGVkID0gb3B0aW9ucy5vbkVsVXBkYXRlZCB8fCBub29wO1xuICAgICAgICB2YXIgb25CZWZvcmVOb2RlRGlzY2FyZGVkID0gb3B0aW9ucy5vbkJlZm9yZU5vZGVEaXNjYXJkZWQgfHwgbm9vcDtcbiAgICAgICAgdmFyIG9uTm9kZURpc2NhcmRlZCA9IG9wdGlvbnMub25Ob2RlRGlzY2FyZGVkIHx8IG5vb3A7XG4gICAgICAgIHZhciBvbkJlZm9yZUVsQ2hpbGRyZW5VcGRhdGVkID0gb3B0aW9ucy5vbkJlZm9yZUVsQ2hpbGRyZW5VcGRhdGVkIHx8IG5vb3A7XG4gICAgICAgIHZhciBjaGlsZHJlbk9ubHkgPSBvcHRpb25zLmNoaWxkcmVuT25seSA9PT0gdHJ1ZTtcblxuICAgICAgICAvLyBUaGlzIG9iamVjdCBpcyB1c2VkIGFzIGEgbG9va3VwIHRvIHF1aWNrbHkgZmluZCBhbGwga2V5ZWQgZWxlbWVudHMgaW4gdGhlIG9yaWdpbmFsIERPTSB0cmVlLlxuICAgICAgICB2YXIgZnJvbU5vZGVzTG9va3VwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdmFyIGtleWVkUmVtb3ZhbExpc3QgPSBbXTtcblxuICAgICAgICBmdW5jdGlvbiBhZGRLZXllZFJlbW92YWwoa2V5KSB7XG4gICAgICAgICAgICBrZXllZFJlbW92YWxMaXN0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHdhbGtEaXNjYXJkZWRDaGlsZE5vZGVzKG5vZGUsIHNraXBLZXllZE5vZGVzKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICAgICAgdmFyIGN1ckNoaWxkID0gbm9kZS5maXJzdENoaWxkO1xuICAgICAgICAgICAgICAgIHdoaWxlIChjdXJDaGlsZCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBrZXkgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNraXBLZXllZE5vZGVzICYmIChrZXkgPSBnZXROb2RlS2V5KGN1ckNoaWxkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBza2lwcGluZyBrZXllZCBub2RlcyB0aGVuIHdlIGFkZCB0aGUga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBhIGxpc3Qgc28gdGhhdCBpdCBjYW4gYmUgaGFuZGxlZCBhdCB0aGUgdmVyeSBlbmQuXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRLZXllZFJlbW92YWwoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgcmVwb3J0IHRoZSBub2RlIGFzIGRpc2NhcmRlZCBpZiBpdCBpcyBub3Qga2V5ZWQuIFdlIGRvIHRoaXMgYmVjYXVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCB3ZSBsb29wIHRocm91Z2ggYWxsIGtleWVkIGVsZW1lbnRzIHRoYXQgd2VyZSB1bm1hdGNoZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVuIGRpc2NhcmQgdGhlbSBpbiBvbmUgZmluYWwgcGFzcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uTm9kZURpc2NhcmRlZChjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQ2hpbGQuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtEaXNjYXJkZWRDaGlsZE5vZGVzKGN1ckNoaWxkLCBza2lwS2V5ZWROb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjdXJDaGlsZCA9IGN1ckNoaWxkLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZW1vdmVzIGEgRE9NIG5vZGUgb3V0IG9mIHRoZSBvcmlnaW5hbCBET01cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtICB7Tm9kZX0gbm9kZSBUaGUgbm9kZSB0byByZW1vdmVcbiAgICAgICAgICogQHBhcmFtICB7Tm9kZX0gcGFyZW50Tm9kZSBUaGUgbm9kZXMgcGFyZW50XG4gICAgICAgICAqIEBwYXJhbSAge0Jvb2xlYW59IHNraXBLZXllZE5vZGVzIElmIHRydWUgdGhlbiBlbGVtZW50cyB3aXRoIGtleXMgd2lsbCBiZSBza2lwcGVkIGFuZCBub3QgZGlzY2FyZGVkLlxuICAgICAgICAgKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiByZW1vdmVOb2RlKG5vZGUsIHBhcmVudE5vZGUsIHNraXBLZXllZE5vZGVzKSB7XG4gICAgICAgICAgICBpZiAob25CZWZvcmVOb2RlRGlzY2FyZGVkKG5vZGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvbk5vZGVEaXNjYXJkZWQobm9kZSk7XG4gICAgICAgICAgICB3YWxrRGlzY2FyZGVkQ2hpbGROb2Rlcyhub2RlLCBza2lwS2V5ZWROb2Rlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLyBUcmVlV2Fsa2VyIGltcGxlbWVudGF0aW9uIGlzIG5vIGZhc3RlciwgYnV0IGtlZXBpbmcgdGhpcyBhcm91bmQgaW4gY2FzZSB0aGlzIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAvLyBmdW5jdGlvbiBpbmRleFRyZWUocm9vdCkge1xuICAgICAgICAvLyAgICAgdmFyIHRyZWVXYWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgICAvLyAgICAgICAgIHJvb3QsXG4gICAgICAgIC8vICAgICAgICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQpO1xuICAgICAgICAvL1xuICAgICAgICAvLyAgICAgdmFyIGVsO1xuICAgICAgICAvLyAgICAgd2hpbGUoKGVsID0gdHJlZVdhbGtlci5uZXh0Tm9kZSgpKSkge1xuICAgICAgICAvLyAgICAgICAgIHZhciBrZXkgPSBnZXROb2RlS2V5KGVsKTtcbiAgICAgICAgLy8gICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGZyb21Ob2Rlc0xvb2t1cFtrZXldID0gZWw7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gLy8gTm9kZUl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIGlzIG5vIGZhc3RlciwgYnV0IGtlZXBpbmcgdGhpcyBhcm91bmQgaW4gY2FzZSB0aGlzIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAvL1xuICAgICAgICAvLyBmdW5jdGlvbiBpbmRleFRyZWUobm9kZSkge1xuICAgICAgICAvLyAgICAgdmFyIG5vZGVJdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihub2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7XG4gICAgICAgIC8vICAgICB2YXIgZWw7XG4gICAgICAgIC8vICAgICB3aGlsZSgoZWwgPSBub2RlSXRlcmF0b3IubmV4dE5vZGUoKSkpIHtcbiAgICAgICAgLy8gICAgICAgICB2YXIga2V5ID0gZ2V0Tm9kZUtleShlbCk7XG4gICAgICAgIC8vICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAvLyAgICAgICAgICAgICBmcm9tTm9kZXNMb29rdXBba2V5XSA9IGVsO1xuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluZGV4VHJlZShub2RlKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUkMSkge1xuICAgICAgICAgICAgICAgIHZhciBjdXJDaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoY3VyQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IGdldE5vZGVLZXkoY3VyQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tTm9kZXNMb29rdXBba2V5XSA9IGN1ckNoaWxkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2FsayByZWN1cnNpdmVseVxuICAgICAgICAgICAgICAgICAgICBpbmRleFRyZWUoY3VyQ2hpbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGN1ckNoaWxkID0gY3VyQ2hpbGQubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5kZXhUcmVlKGZyb21Ob2RlKTtcblxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVOb2RlQWRkZWQoZWwpIHtcbiAgICAgICAgICAgIG9uTm9kZUFkZGVkKGVsKTtcblxuICAgICAgICAgICAgdmFyIGN1ckNoaWxkID0gZWwuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgIHdoaWxlIChjdXJDaGlsZCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXh0U2libGluZyA9IGN1ckNoaWxkLm5leHRTaWJsaW5nO1xuXG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IGdldE5vZGVLZXkoY3VyQ2hpbGQpO1xuICAgICAgICAgICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVubWF0Y2hlZEZyb21FbCA9IGZyb21Ob2Rlc0xvb2t1cFtrZXldO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgZHVwbGljYXRlICNpZCBub2RlIGluIGNhY2hlLCByZXBsYWNlIGBlbGAgd2l0aCBjYWNoZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgbW9ycGggaXQgdG8gdGhlIGNoaWxkIG5vZGUuXG4gICAgICAgICAgICAgICAgICAgIGlmICh1bm1hdGNoZWRGcm9tRWwgJiYgY29tcGFyZU5vZGVOYW1lcyhjdXJDaGlsZCwgdW5tYXRjaGVkRnJvbUVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VyQ2hpbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodW5tYXRjaGVkRnJvbUVsLCBjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3JwaEVsKHVubWF0Y2hlZEZyb21FbCwgY3VyQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU5vZGVBZGRlZChjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgLy8gcmVjdXJzaXZlbHkgY2FsbCBmb3IgY3VyQ2hpbGQgYW5kIGl0J3MgY2hpbGRyZW4gdG8gc2VlIGlmIHdlIGZpbmQgc29tZXRoaW5nIGluXG4gICAgICAgICAgICAgICAgICAvLyBmcm9tTm9kZXNMb29rdXBcbiAgICAgICAgICAgICAgICAgIGhhbmRsZU5vZGVBZGRlZChjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VyQ2hpbGQgPSBuZXh0U2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGNsZWFudXBGcm9tRWwoZnJvbUVsLCBjdXJGcm9tTm9kZUNoaWxkLCBjdXJGcm9tTm9kZUtleSkge1xuICAgICAgICAgICAgLy8gV2UgaGF2ZSBwcm9jZXNzZWQgYWxsIG9mIHRoZSBcInRvIG5vZGVzXCIuIElmIGN1ckZyb21Ob2RlQ2hpbGQgaXNcbiAgICAgICAgICAgIC8vIG5vbi1udWxsIHRoZW4gd2Ugc3RpbGwgaGF2ZSBzb21lIGZyb20gbm9kZXMgbGVmdCBvdmVyIHRoYXQgbmVlZFxuICAgICAgICAgICAgLy8gdG8gYmUgcmVtb3ZlZFxuICAgICAgICAgICAgd2hpbGUgKGN1ckZyb21Ob2RlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICB2YXIgZnJvbU5leHRTaWJsaW5nID0gY3VyRnJvbU5vZGVDaGlsZC5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICBpZiAoKGN1ckZyb21Ob2RlS2V5ID0gZ2V0Tm9kZUtleShjdXJGcm9tTm9kZUNoaWxkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vZGUgaXMga2V5ZWQgaXQgbWlnaHQgYmUgbWF0Y2hlZCB1cCBsYXRlciBzbyB3ZSBkZWZlclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWN0dWFsIHJlbW92YWwgdG8gbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5ZWRSZW1vdmFsKGN1ckZyb21Ob2RlS2V5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBza2lwIG5lc3RlZCBrZXllZCBub2RlcyBmcm9tIGJlaW5nIHJlbW92ZWQgc2luY2UgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgc3RpbGwgYSBjaGFuY2UgdGhleSB3aWxsIGJlIG1hdGNoZWQgdXAgbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZShjdXJGcm9tTm9kZUNoaWxkLCBmcm9tRWwsIHRydWUgLyogc2tpcCBrZXllZCBub2RlcyAqLyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQgPSBmcm9tTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBtb3JwaEVsKGZyb21FbCwgdG9FbCwgY2hpbGRyZW5Pbmx5KSB7XG4gICAgICAgICAgICB2YXIgdG9FbEtleSA9IGdldE5vZGVLZXkodG9FbCk7XG5cbiAgICAgICAgICAgIGlmICh0b0VsS2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgYW4gZWxlbWVudCB3aXRoIGFuIElEIGlzIGJlaW5nIG1vcnBoZWQgdGhlbiBpdCB3aWxsIGJlIGluIHRoZSBmaW5hbFxuICAgICAgICAgICAgICAgIC8vIERPTSBzbyBjbGVhciBpdCBvdXQgb2YgdGhlIHNhdmVkIGVsZW1lbnRzIGNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgICBkZWxldGUgZnJvbU5vZGVzTG9va3VwW3RvRWxLZXldO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuT25seSkge1xuICAgICAgICAgICAgICAgIC8vIG9wdGlvbmFsXG4gICAgICAgICAgICAgICAgaWYgKG9uQmVmb3JlRWxVcGRhdGVkKGZyb21FbCwgdG9FbCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgYXR0cmlidXRlcyBvbiBvcmlnaW5hbCBET00gZWxlbWVudCBmaXJzdFxuICAgICAgICAgICAgICAgIG1vcnBoQXR0cnMoZnJvbUVsLCB0b0VsKTtcbiAgICAgICAgICAgICAgICAvLyBvcHRpb25hbFxuICAgICAgICAgICAgICAgIG9uRWxVcGRhdGVkKGZyb21FbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25CZWZvcmVFbENoaWxkcmVuVXBkYXRlZChmcm9tRWwsIHRvRWwpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZnJvbUVsLm5vZGVOYW1lICE9PSAnVEVYVEFSRUEnKSB7XG4gICAgICAgICAgICAgIG1vcnBoQ2hpbGRyZW4oZnJvbUVsLCB0b0VsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNwZWNpYWxFbEhhbmRsZXJzLlRFWFRBUkVBKGZyb21FbCwgdG9FbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBtb3JwaENoaWxkcmVuKGZyb21FbCwgdG9FbCkge1xuICAgICAgICAgICAgdmFyIGN1clRvTm9kZUNoaWxkID0gdG9FbC5maXJzdENoaWxkO1xuICAgICAgICAgICAgdmFyIGN1ckZyb21Ob2RlQ2hpbGQgPSBmcm9tRWwuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgIHZhciBjdXJUb05vZGVLZXk7XG4gICAgICAgICAgICB2YXIgY3VyRnJvbU5vZGVLZXk7XG5cbiAgICAgICAgICAgIHZhciBmcm9tTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB2YXIgdG9OZXh0U2libGluZztcbiAgICAgICAgICAgIHZhciBtYXRjaGluZ0Zyb21FbDtcblxuICAgICAgICAgICAgLy8gd2FsayB0aGUgY2hpbGRyZW5cbiAgICAgICAgICAgIG91dGVyOiB3aGlsZSAoY3VyVG9Ob2RlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICB0b05leHRTaWJsaW5nID0gY3VyVG9Ob2RlQ2hpbGQubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgY3VyVG9Ob2RlS2V5ID0gZ2V0Tm9kZUtleShjdXJUb05vZGVDaGlsZCk7XG5cbiAgICAgICAgICAgICAgICAvLyB3YWxrIHRoZSBmcm9tTm9kZSBjaGlsZHJlbiBhbGwgdGhlIHdheSB0aHJvdWdoXG4gICAgICAgICAgICAgICAgd2hpbGUgKGN1ckZyb21Ob2RlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbU5leHRTaWJsaW5nID0gY3VyRnJvbU5vZGVDaGlsZC5uZXh0U2libGluZztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyVG9Ob2RlQ2hpbGQuaXNTYW1lTm9kZSAmJiBjdXJUb05vZGVDaGlsZC5pc1NhbWVOb2RlKGN1ckZyb21Ob2RlQ2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJUb05vZGVDaGlsZCA9IHRvTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJGcm9tTm9kZUNoaWxkID0gZnJvbU5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjdXJGcm9tTm9kZUtleSA9IGdldE5vZGVLZXkoY3VyRnJvbU5vZGVDaGlsZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ckZyb21Ob2RlVHlwZSA9IGN1ckZyb21Ob2RlQ2hpbGQubm9kZVR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtZWFucyBpZiB0aGUgY3VyRnJvbU5vZGVDaGlsZCBkb2VzbnQgaGF2ZSBhIG1hdGNoIHdpdGggdGhlIGN1clRvTm9kZUNoaWxkXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc0NvbXBhdGlibGUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckZyb21Ob2RlVHlwZSA9PT0gY3VyVG9Ob2RlQ2hpbGQubm9kZVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJGcm9tTm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJvdGggbm9kZXMgYmVpbmcgY29tcGFyZWQgYXJlIEVsZW1lbnQgbm9kZXNcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJUb05vZGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHRhcmdldCBub2RlIGhhcyBhIGtleSBzbyB3ZSB3YW50IHRvIG1hdGNoIGl0IHVwIHdpdGggdGhlIGNvcnJlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgb3JpZ2luYWwgRE9NIHRyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1clRvTm9kZUtleSAhPT0gY3VyRnJvbU5vZGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjdXJyZW50IGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsIERPTSB0cmVlIGRvZXMgbm90IGhhdmUgYSBtYXRjaGluZyBrZXkgc29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCdzIGNoZWNrIG91ciBsb29rdXAgdG8gc2VlIGlmIHRoZXJlIGlzIGEgbWF0Y2hpbmcgZWxlbWVudCBpbiB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPTSB0cmVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG1hdGNoaW5nRnJvbUVsID0gZnJvbU5vZGVzTG9va3VwW2N1clRvTm9kZUtleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb21OZXh0U2libGluZyA9PT0gbWF0Y2hpbmdGcm9tRWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBzaW5nbGUgZWxlbWVudCByZW1vdmFscy4gVG8gYXZvaWQgcmVtb3ZpbmcgdGhlIG9yaWdpbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPTSBub2RlIG91dCBvZiB0aGUgdHJlZSAoc2luY2UgdGhhdCBjYW4gYnJlYWsgQ1NTIHRyYW5zaXRpb25zLCBldGMuKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Ugd2lsbCBpbnN0ZWFkIGRpc2NhcmQgdGhlIGN1cnJlbnQgbm9kZSBhbmQgd2FpdCB1bnRpbCB0aGUgbmV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRpb24gdG8gcHJvcGVybHkgbWF0Y2ggdXAgdGhlIGtleWVkIHRhcmdldCBlbGVtZW50IHdpdGggaXRzIG1hdGNoaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsIHRyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZm91bmQgYSBtYXRjaGluZyBrZXllZCBlbGVtZW50IHNvbWV3aGVyZSBpbiB0aGUgb3JpZ2luYWwgRE9NIHRyZWUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExldCdzIG1vdmUgdGhlIG9yaWdpbmFsIERPTSBub2RlIGludG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIG1vcnBoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0LlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFdlIHVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiByZXBsYWNlQ2hpbGQgYmVjYXVzZSB3ZSB3YW50IHRvIGdvIHRocm91Z2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGByZW1vdmVOb2RlKClgIGZ1bmN0aW9uIGZvciB0aGUgbm9kZSB0aGF0IGlzIGJlaW5nIGRpc2NhcmRlZCBzbyB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBsaWZlY3ljbGUgaG9va3MgYXJlIGNvcnJlY3RseSBpbnZva2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21FbC5pbnNlcnRCZWZvcmUobWF0Y2hpbmdGcm9tRWwsIGN1ckZyb21Ob2RlQ2hpbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb21OZXh0U2libGluZyA9IGN1ckZyb21Ob2RlQ2hpbGQubmV4dFNpYmxpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckZyb21Ob2RlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB0aGUgbm9kZSBpcyBrZXllZCBpdCBtaWdodCBiZSBtYXRjaGVkIHVwIGxhdGVyIHNvIHdlIGRlZmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWN0dWFsIHJlbW92YWwgdG8gbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEtleWVkUmVtb3ZhbChjdXJGcm9tTm9kZUtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBza2lwIG5lc3RlZCBrZXllZCBub2RlcyBmcm9tIGJlaW5nIHJlbW92ZWQgc2luY2UgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgIHN0aWxsIGEgY2hhbmNlIHRoZXkgd2lsbCBiZSBtYXRjaGVkIHVwIGxhdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2RlKGN1ckZyb21Ob2RlQ2hpbGQsIGZyb21FbCwgdHJ1ZSAvKiBza2lwIGtleWVkIG5vZGVzICovKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQgPSBtYXRjaGluZ0Zyb21FbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBub2RlcyBhcmUgbm90IGNvbXBhdGlibGUgc2luY2UgdGhlIFwidG9cIiBub2RlIGhhcyBhIGtleSBhbmQgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBubyBtYXRjaGluZyBrZXllZCBub2RlIGluIHRoZSBzb3VyY2UgdHJlZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJGcm9tTm9kZUtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgb3JpZ2luYWwgaGFzIGEga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJsZSA9IGlzQ29tcGF0aWJsZSAhPT0gZmFsc2UgJiYgY29tcGFyZU5vZGVOYW1lcyhjdXJGcm9tTm9kZUNoaWxkLCBjdXJUb05vZGVDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCBjb21wYXRpYmxlIERPTSBlbGVtZW50cyBzbyB0cmFuc2Zvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgXCJmcm9tXCIgbm9kZSB0byBtYXRjaCB0aGUgY3VycmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXQgRE9NIG5vZGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1PUlBIXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcnBoRWwoY3VyRnJvbU5vZGVDaGlsZCwgY3VyVG9Ob2RlQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJGcm9tTm9kZVR5cGUgPT09IFRFWFRfTk9ERSB8fCBjdXJGcm9tTm9kZVR5cGUgPT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQm90aCBub2RlcyBiZWluZyBjb21wYXJlZCBhcmUgVGV4dCBvciBDb21tZW50IG5vZGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW1wbHkgdXBkYXRlIG5vZGVWYWx1ZSBvbiB0aGUgb3JpZ2luYWwgbm9kZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYW5nZSB0aGUgdGV4dCB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJGcm9tTm9kZUNoaWxkLm5vZGVWYWx1ZSAhPT0gY3VyVG9Ob2RlQ2hpbGQubm9kZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQubm9kZVZhbHVlID0gY3VyVG9Ob2RlQ2hpbGQubm9kZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBib3RoIHRoZSBcInRvXCIgY2hpbGQgYW5kIHRoZSBcImZyb21cIiBjaGlsZCBzaW5jZSB3ZSBmb3VuZCBhIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RoaW5nIGVsc2UgdG8gZG8gYXMgd2UgYWxyZWFkeSByZWN1cnNpdmVseSBjYWxsZWQgbW9ycGhDaGlsZHJlbiBhYm92ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY3VyVG9Ob2RlQ2hpbGQgPSB0b05leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VyRnJvbU5vZGVDaGlsZCA9IGZyb21OZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTm8gY29tcGF0aWJsZSBtYXRjaCBzbyByZW1vdmUgdGhlIG9sZCBub2RlIGZyb20gdGhlIERPTSBhbmQgY29udGludWUgdHJ5aW5nIHRvIGZpbmQgYVxuICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaCBpbiB0aGUgb3JpZ2luYWwgRE9NLiBIb3dldmVyLCB3ZSBvbmx5IGRvIHRoaXMgaWYgdGhlIGZyb20gbm9kZSBpcyBub3Qga2V5ZWRcbiAgICAgICAgICAgICAgICAgICAgLy8gc2luY2UgaXQgaXMgcG9zc2libGUgdGhhdCBhIGtleWVkIG5vZGUgbWlnaHQgbWF0Y2ggdXAgd2l0aCBhIG5vZGUgc29tZXdoZXJlIGVsc2UgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRhcmdldCB0cmVlIGFuZCB3ZSBkb24ndCB3YW50IHRvIGRpc2NhcmQgaXQganVzdCB5ZXQgc2luY2UgaXQgc3RpbGwgbWlnaHQgZmluZCBhXG4gICAgICAgICAgICAgICAgICAgIC8vIGhvbWUgaW4gdGhlIGZpbmFsIERPTSB0cmVlLiBBZnRlciBldmVyeXRoaW5nIGlzIGRvbmUgd2Ugd2lsbCByZW1vdmUgYW55IGtleWVkIG5vZGVzXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgZGlkbid0IGZpbmQgYSBob21lXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJGcm9tTm9kZUtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vZGUgaXMga2V5ZWQgaXQgbWlnaHQgYmUgbWF0Y2hlZCB1cCBsYXRlciBzbyB3ZSBkZWZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFjdHVhbCByZW1vdmFsIHRvIGxhdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRLZXllZFJlbW92YWwoY3VyRnJvbU5vZGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2Ugc2tpcCBuZXN0ZWQga2V5ZWQgbm9kZXMgZnJvbSBiZWluZyByZW1vdmVkIHNpbmNlIHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBzdGlsbCBhIGNoYW5jZSB0aGV5IHdpbGwgYmUgbWF0Y2hlZCB1cCBsYXRlclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZShjdXJGcm9tTm9kZUNoaWxkLCBmcm9tRWwsIHRydWUgLyogc2tpcCBrZXllZCBub2RlcyAqLyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjdXJGcm9tTm9kZUNoaWxkID0gZnJvbU5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIH0gLy8gRU5EOiB3aGlsZShjdXJGcm9tTm9kZUNoaWxkKSB7fVxuXG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZ290IHRoaXMgZmFyIHRoZW4gd2UgZGlkIG5vdCBmaW5kIGEgY2FuZGlkYXRlIG1hdGNoIGZvclxuICAgICAgICAgICAgICAgIC8vIG91ciBcInRvIG5vZGVcIiBhbmQgd2UgZXhoYXVzdGVkIGFsbCBvZiB0aGUgY2hpbGRyZW4gXCJmcm9tXCJcbiAgICAgICAgICAgICAgICAvLyBub2Rlcy4gVGhlcmVmb3JlLCB3ZSB3aWxsIGp1c3QgYXBwZW5kIHRoZSBjdXJyZW50IFwidG9cIiBub2RlXG4gICAgICAgICAgICAgICAgLy8gdG8gdGhlIGVuZFxuICAgICAgICAgICAgICAgIGlmIChjdXJUb05vZGVLZXkgJiYgKG1hdGNoaW5nRnJvbUVsID0gZnJvbU5vZGVzTG9va3VwW2N1clRvTm9kZUtleV0pICYmIGNvbXBhcmVOb2RlTmFtZXMobWF0Y2hpbmdGcm9tRWwsIGN1clRvTm9kZUNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICBmcm9tRWwuYXBwZW5kQ2hpbGQobWF0Y2hpbmdGcm9tRWwpO1xuICAgICAgICAgICAgICAgICAgICAvLyBNT1JQSFxuICAgICAgICAgICAgICAgICAgICBtb3JwaEVsKG1hdGNoaW5nRnJvbUVsLCBjdXJUb05vZGVDaGlsZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9uQmVmb3JlTm9kZUFkZGVkUmVzdWx0ID0gb25CZWZvcmVOb2RlQWRkZWQoY3VyVG9Ob2RlQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob25CZWZvcmVOb2RlQWRkZWRSZXN1bHQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob25CZWZvcmVOb2RlQWRkZWRSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJUb05vZGVDaGlsZCA9IG9uQmVmb3JlTm9kZUFkZGVkUmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyVG9Ob2RlQ2hpbGQuYWN0dWFsaXplKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyVG9Ob2RlQ2hpbGQgPSBjdXJUb05vZGVDaGlsZC5hY3R1YWxpemUoZnJvbUVsLm93bmVyRG9jdW1lbnQgfHwgZG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb21FbC5hcHBlbmRDaGlsZChjdXJUb05vZGVDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVOb2RlQWRkZWQoY3VyVG9Ob2RlQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VyVG9Ob2RlQ2hpbGQgPSB0b05leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQgPSBmcm9tTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNsZWFudXBGcm9tRWwoZnJvbUVsLCBjdXJGcm9tTm9kZUNoaWxkLCBjdXJGcm9tTm9kZUtleSk7XG5cbiAgICAgICAgICAgIHZhciBzcGVjaWFsRWxIYW5kbGVyID0gc3BlY2lhbEVsSGFuZGxlcnNbZnJvbUVsLm5vZGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChzcGVjaWFsRWxIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgc3BlY2lhbEVsSGFuZGxlcihmcm9tRWwsIHRvRWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IC8vIEVORDogbW9ycGhDaGlsZHJlbiguLi4pXG5cbiAgICAgICAgdmFyIG1vcnBoZWROb2RlID0gZnJvbU5vZGU7XG4gICAgICAgIHZhciBtb3JwaGVkTm9kZVR5cGUgPSBtb3JwaGVkTm9kZS5ub2RlVHlwZTtcbiAgICAgICAgdmFyIHRvTm9kZVR5cGUgPSB0b05vZGUubm9kZVR5cGU7XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbk9ubHkpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgZ2l2ZW4gdHdvIERPTSBub2RlcyB0aGF0IGFyZSBub3RcbiAgICAgICAgICAgIC8vIGNvbXBhdGlibGUgKGUuZy4gPGRpdj4gLS0+IDxzcGFuPiBvciA8ZGl2PiAtLT4gVEVYVClcbiAgICAgICAgICAgIGlmIChtb3JwaGVkTm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgIGlmICh0b05vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wYXJlTm9kZU5hbWVzKGZyb21Ob2RlLCB0b05vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk5vZGVEaXNjYXJkZWQoZnJvbU5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9ycGhlZE5vZGUgPSBtb3ZlQ2hpbGRyZW4oZnJvbU5vZGUsIGNyZWF0ZUVsZW1lbnROUyh0b05vZGUubm9kZU5hbWUsIHRvTm9kZS5uYW1lc3BhY2VVUkkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEdvaW5nIGZyb20gYW4gZWxlbWVudCBub2RlIHRvIGEgdGV4dCBub2RlXG4gICAgICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlID0gdG9Ob2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobW9ycGhlZE5vZGVUeXBlID09PSBURVhUX05PREUgfHwgbW9ycGhlZE5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHsgLy8gVGV4dCBvciBjb21tZW50IG5vZGVcbiAgICAgICAgICAgICAgICBpZiAodG9Ob2RlVHlwZSA9PT0gbW9ycGhlZE5vZGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb3JwaGVkTm9kZS5ub2RlVmFsdWUgIT09IHRvTm9kZS5ub2RlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlLm5vZGVWYWx1ZSA9IHRvTm9kZS5ub2RlVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9ycGhlZE5vZGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGV4dCBub2RlIHRvIHNvbWV0aGluZyBlbHNlXG4gICAgICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlID0gdG9Ob2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3JwaGVkTm9kZSA9PT0gdG9Ob2RlKSB7XG4gICAgICAgICAgICAvLyBUaGUgXCJ0byBub2RlXCIgd2FzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIFwiZnJvbSBub2RlXCIgc28gd2UgaGFkIHRvXG4gICAgICAgICAgICAvLyB0b3NzIG91dCB0aGUgXCJmcm9tIG5vZGVcIiBhbmQgdXNlIHRoZSBcInRvIG5vZGVcIlxuICAgICAgICAgICAgb25Ob2RlRGlzY2FyZGVkKGZyb21Ob2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0b05vZGUuaXNTYW1lTm9kZSAmJiB0b05vZGUuaXNTYW1lTm9kZShtb3JwaGVkTm9kZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vcnBoRWwobW9ycGhlZE5vZGUsIHRvTm9kZSwgY2hpbGRyZW5Pbmx5KTtcblxuICAgICAgICAgICAgLy8gV2Ugbm93IG5lZWQgdG8gbG9vcCBvdmVyIGFueSBrZXllZCBub2RlcyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmVcbiAgICAgICAgICAgIC8vIHJlbW92ZWQuIFdlIG9ubHkgZG8gdGhlIHJlbW92YWwgaWYgd2Uga25vdyB0aGF0IHRoZSBrZXllZCBub2RlXG4gICAgICAgICAgICAvLyBuZXZlciBmb3VuZCBhIG1hdGNoLiBXaGVuIGEga2V5ZWQgbm9kZSBpcyBtYXRjaGVkIHVwIHdlIHJlbW92ZVxuICAgICAgICAgICAgLy8gaXQgb3V0IG9mIGZyb21Ob2Rlc0xvb2t1cCBhbmQgd2UgdXNlIGZyb21Ob2Rlc0xvb2t1cCB0byBkZXRlcm1pbmVcbiAgICAgICAgICAgIC8vIGlmIGEga2V5ZWQgbm9kZSBoYXMgYmVlbiBtYXRjaGVkIHVwIG9yIG5vdFxuICAgICAgICAgICAgaWYgKGtleWVkUmVtb3ZhbExpc3QpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpPTAsIGxlbj1rZXllZFJlbW92YWxMaXN0Lmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxUb1JlbW92ZSA9IGZyb21Ob2Rlc0xvb2t1cFtrZXllZFJlbW92YWxMaXN0W2ldXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsVG9SZW1vdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUoZWxUb1JlbW92ZSwgZWxUb1JlbW92ZS5wYXJlbnROb2RlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoaWxkcmVuT25seSAmJiBtb3JwaGVkTm9kZSAhPT0gZnJvbU5vZGUgJiYgZnJvbU5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgaWYgKG1vcnBoZWROb2RlLmFjdHVhbGl6ZSkge1xuICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlID0gbW9ycGhlZE5vZGUuYWN0dWFsaXplKGZyb21Ob2RlLm93bmVyRG9jdW1lbnQgfHwgZG9jKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHdlIGhhZCB0byBzd2FwIG91dCB0aGUgZnJvbSBub2RlIHdpdGggYSBuZXcgbm9kZSBiZWNhdXNlIHRoZSBvbGRcbiAgICAgICAgICAgIC8vIG5vZGUgd2FzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBub2RlIHRoZW4gd2UgbmVlZCB0b1xuICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgb2xkIERPTSBub2RlIGluIHRoZSBvcmlnaW5hbCBET00gdHJlZS4gVGhpcyBpcyBvbmx5XG4gICAgICAgICAgICAvLyBwb3NzaWJsZSBpZiB0aGUgb3JpZ2luYWwgRE9NIG5vZGUgd2FzIHBhcnQgb2YgYSBET00gdHJlZSB3aGljaFxuICAgICAgICAgICAgLy8gd2Uga25vdyBpcyB0aGUgY2FzZSBpZiBpdCBoYXMgYSBwYXJlbnQgbm9kZS5cbiAgICAgICAgICAgIGZyb21Ob2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG1vcnBoZWROb2RlLCBmcm9tTm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9ycGhlZE5vZGU7XG4gICAgfTtcbn1cblxudmFyIG1vcnBoZG9tID0gbW9ycGhkb21GYWN0b3J5KG1vcnBoQXR0cnMpO1xuXG5leHBvcnQgZGVmYXVsdCBtb3JwaGRvbTtcbiIsICJpbXBvcnQge1xuICBQSFhfQ09NUE9ORU5ULFxuICBQSFhfRElTQUJMRV9XSVRILFxuICBQSFhfRkVFREJBQ0tfRk9SLFxuICBQSFhfUFJVTkUsXG4gIFBIWF9ST09UX0lELFxuICBQSFhfU0VTU0lPTixcbiAgUEhYX1NLSVAsXG4gIFBIWF9TVEFUSUMsXG4gIFBIWF9UUklHR0VSX0FDVElPTixcbiAgUEhYX1VQREFURVxufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5pbXBvcnQge1xuICBkZXRlY3REdXBsaWNhdGVJZHMsXG4gIGlzQ2lkXG59IGZyb20gXCIuL3V0aWxzXCJcblxuaW1wb3J0IERPTSBmcm9tIFwiLi9kb21cIlxuaW1wb3J0IERPTVBvc3RNb3JwaFJlc3RvcmVyIGZyb20gXCIuL2RvbV9wb3N0X21vcnBoX3Jlc3RvcmVyXCJcbmltcG9ydCBtb3JwaGRvbSBmcm9tIFwibW9ycGhkb21cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBET01QYXRjaCB7XG4gIHN0YXRpYyBwYXRjaEVsKGZyb21FbCwgdG9FbCwgYWN0aXZlRWxlbWVudCl7XG4gICAgbW9ycGhkb20oZnJvbUVsLCB0b0VsLCB7XG4gICAgICBjaGlsZHJlbk9ubHk6IGZhbHNlLFxuICAgICAgb25CZWZvcmVFbFVwZGF0ZWQ6IChmcm9tRWwsIHRvRWwpID0+IHtcbiAgICAgICAgaWYoYWN0aXZlRWxlbWVudCAmJiBhY3RpdmVFbGVtZW50LmlzU2FtZU5vZGUoZnJvbUVsKSAmJiBET00uaXNGb3JtSW5wdXQoZnJvbUVsKSl7XG4gICAgICAgICAgRE9NLm1lcmdlRm9jdXNlZElucHV0KGZyb21FbCwgdG9FbClcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25zdHJ1Y3Rvcih2aWV3LCBjb250YWluZXIsIGlkLCBodG1sLCB0YXJnZXRDSUQpe1xuICAgIHRoaXMudmlldyA9IHZpZXdcbiAgICB0aGlzLmxpdmVTb2NrZXQgPSB2aWV3LmxpdmVTb2NrZXRcbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lclxuICAgIHRoaXMuaWQgPSBpZFxuICAgIHRoaXMucm9vdElEID0gdmlldy5yb290LmlkXG4gICAgdGhpcy5odG1sID0gaHRtbFxuICAgIHRoaXMudGFyZ2V0Q0lEID0gdGFyZ2V0Q0lEXG4gICAgdGhpcy5jaWRQYXRjaCA9IGlzQ2lkKHRoaXMudGFyZ2V0Q0lEKVxuICAgIHRoaXMuY2FsbGJhY2tzID0ge1xuICAgICAgYmVmb3JlYWRkZWQ6IFtdLCBiZWZvcmV1cGRhdGVkOiBbXSwgYmVmb3JlcGh4Q2hpbGRBZGRlZDogW10sXG4gICAgICBhZnRlcmFkZGVkOiBbXSwgYWZ0ZXJ1cGRhdGVkOiBbXSwgYWZ0ZXJkaXNjYXJkZWQ6IFtdLCBhZnRlcnBoeENoaWxkQWRkZWQ6IFtdLFxuICAgICAgYWZ0ZXJ0cmFuc2l0aW9uc0Rpc2NhcmRlZDogW11cbiAgICB9XG4gIH1cblxuICBiZWZvcmUoa2luZCwgY2FsbGJhY2speyB0aGlzLmNhbGxiYWNrc1tgYmVmb3JlJHtraW5kfWBdLnB1c2goY2FsbGJhY2spIH1cbiAgYWZ0ZXIoa2luZCwgY2FsbGJhY2speyB0aGlzLmNhbGxiYWNrc1tgYWZ0ZXIke2tpbmR9YF0ucHVzaChjYWxsYmFjaykgfVxuXG4gIHRyYWNrQmVmb3JlKGtpbmQsIC4uLmFyZ3Mpe1xuICAgIHRoaXMuY2FsbGJhY2tzW2BiZWZvcmUke2tpbmR9YF0uZm9yRWFjaChjYWxsYmFjayA9PiBjYWxsYmFjayguLi5hcmdzKSlcbiAgfVxuXG4gIHRyYWNrQWZ0ZXIoa2luZCwgLi4uYXJncyl7XG4gICAgdGhpcy5jYWxsYmFja3NbYGFmdGVyJHtraW5kfWBdLmZvckVhY2goY2FsbGJhY2sgPT4gY2FsbGJhY2soLi4uYXJncykpXG4gIH1cblxuICBtYXJrUHJ1bmFibGVDb250ZW50Rm9yUmVtb3ZhbCgpe1xuICAgIERPTS5hbGwodGhpcy5jb250YWluZXIsIFwiW3BoeC11cGRhdGU9YXBwZW5kXSA+ICosIFtwaHgtdXBkYXRlPXByZXBlbmRdID4gKlwiLCBlbCA9PiB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoUEhYX1BSVU5FLCBcIlwiKVxuICAgIH0pXG4gIH1cblxuICBwZXJmb3JtKCl7XG4gICAgbGV0IHt2aWV3LCBsaXZlU29ja2V0LCBjb250YWluZXIsIGh0bWx9ID0gdGhpc1xuICAgIGxldCB0YXJnZXRDb250YWluZXIgPSB0aGlzLmlzQ0lEUGF0Y2goKSA/IHRoaXMudGFyZ2V0Q0lEQ29udGFpbmVyKGh0bWwpIDogY29udGFpbmVyXG4gICAgaWYodGhpcy5pc0NJRFBhdGNoKCkgJiYgIXRhcmdldENvbnRhaW5lcil7IHJldHVybiB9XG5cbiAgICBsZXQgZm9jdXNlZCA9IGxpdmVTb2NrZXQuZ2V0QWN0aXZlRWxlbWVudCgpXG4gICAgbGV0IHtzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kfSA9IGZvY3VzZWQgJiYgRE9NLmhhc1NlbGVjdGlvblJhbmdlKGZvY3VzZWQpID8gZm9jdXNlZCA6IHt9XG4gICAgbGV0IHBoeFVwZGF0ZSA9IGxpdmVTb2NrZXQuYmluZGluZyhQSFhfVVBEQVRFKVxuICAgIGxldCBwaHhGZWVkYmFja0ZvciA9IGxpdmVTb2NrZXQuYmluZGluZyhQSFhfRkVFREJBQ0tfRk9SKVxuICAgIGxldCBkaXNhYmxlV2l0aCA9IGxpdmVTb2NrZXQuYmluZGluZyhQSFhfRElTQUJMRV9XSVRIKVxuICAgIGxldCBwaHhUcmlnZ2VyRXh0ZXJuYWwgPSBsaXZlU29ja2V0LmJpbmRpbmcoUEhYX1RSSUdHRVJfQUNUSU9OKVxuICAgIGxldCBwaHhSZW1vdmUgPSBsaXZlU29ja2V0LmJpbmRpbmcoXCJyZW1vdmVcIilcbiAgICBsZXQgYWRkZWQgPSBbXVxuICAgIGxldCB1cGRhdGVzID0gW11cbiAgICBsZXQgYXBwZW5kUHJlcGVuZFVwZGF0ZXMgPSBbXVxuICAgIGxldCBwZW5kaW5nUmVtb3ZlcyA9IFtdXG4gICAgbGV0IGV4dGVybmFsRm9ybVRyaWdnZXJlZCA9IG51bGxcblxuICAgIGxldCBkaWZmSFRNTCA9IGxpdmVTb2NrZXQudGltZShcInByZW1vcnBoIGNvbnRhaW5lciBwcmVwXCIsICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkRGlmZkhUTUwoY29udGFpbmVyLCBodG1sLCBwaHhVcGRhdGUsIHRhcmdldENvbnRhaW5lcilcbiAgICB9KVxuXG4gICAgdGhpcy50cmFja0JlZm9yZShcImFkZGVkXCIsIGNvbnRhaW5lcilcbiAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBjb250YWluZXIsIGNvbnRhaW5lcilcblxuICAgIGxpdmVTb2NrZXQudGltZShcIm1vcnBoZG9tXCIsICgpID0+IHtcbiAgICAgIG1vcnBoZG9tKHRhcmdldENvbnRhaW5lciwgZGlmZkhUTUwsIHtcbiAgICAgICAgY2hpbGRyZW5Pbmx5OiB0YXJnZXRDb250YWluZXIuZ2V0QXR0cmlidXRlKFBIWF9DT01QT05FTlQpID09PSBudWxsLFxuICAgICAgICBnZXROb2RlS2V5OiAobm9kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBET00uaXNQaHhEZXN0cm95ZWQobm9kZSkgPyBudWxsIDogbm9kZS5pZFxuICAgICAgICB9LFxuICAgICAgICBvbkJlZm9yZU5vZGVBZGRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy50cmFja0JlZm9yZShcImFkZGVkXCIsIGVsKVxuICAgICAgICAgIHJldHVybiBlbFxuICAgICAgICB9LFxuICAgICAgICBvbk5vZGVBZGRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgLy8gaGFjayB0byBmaXggU2FmYXJpIGhhbmRsaW5nIG9mIGltZyBzcmNzZXQgYW5kIHZpZGVvIHRhZ3NcbiAgICAgICAgICBpZihlbCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQgJiYgZWwuc3Jjc2V0KXtcbiAgICAgICAgICAgIGVsLnNyY3NldCA9IGVsLnNyY3NldFxuICAgICAgICAgIH0gZWxzZSBpZihlbCBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnQgJiYgZWwuYXV0b3BsYXkpe1xuICAgICAgICAgICAgZWwucGxheSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKERPTS5pc05vd1RyaWdnZXJGb3JtRXh0ZXJuYWwoZWwsIHBoeFRyaWdnZXJFeHRlcm5hbCkpe1xuICAgICAgICAgICAgZXh0ZXJuYWxGb3JtVHJpZ2dlcmVkID0gZWxcbiAgICAgICAgICB9XG4gICAgICAgICAgLy9pbnB1dCBoYW5kbGluZ1xuICAgICAgICAgIERPTS5kaXNjYXJkRXJyb3IodGFyZ2V0Q29udGFpbmVyLCBlbCwgcGh4RmVlZGJhY2tGb3IpXG4gICAgICAgICAgLy8gbmVzdGVkIHZpZXcgaGFuZGxpbmdcbiAgICAgICAgICBpZigoRE9NLmlzUGh4Q2hpbGQoZWwpICYmIHZpZXcub3duc0VsZW1lbnQoZWwpKSB8fCBET00uaXNQaHhTdGlja3koZWwpICYmIHZpZXcub3duc0VsZW1lbnQoZWwucGFyZW50Tm9kZSkpe1xuICAgICAgICAgICAgdGhpcy50cmFja0FmdGVyKFwicGh4Q2hpbGRBZGRlZFwiLCBlbClcbiAgICAgICAgICB9XG4gICAgICAgICAgYWRkZWQucHVzaChlbClcbiAgICAgICAgfSxcbiAgICAgICAgb25Ob2RlRGlzY2FyZGVkOiAoZWwpID0+IHtcbiAgICAgICAgICAvLyBuZXN0ZWQgdmlldyBoYW5kbGluZ1xuICAgICAgICAgIGlmKERPTS5pc1BoeENoaWxkKGVsKSB8fCBET00uaXNQaHhTdGlja3koZWwpKXsgbGl2ZVNvY2tldC5kZXN0cm95Vmlld0J5RWwoZWwpIH1cbiAgICAgICAgICB0aGlzLnRyYWNrQWZ0ZXIoXCJkaXNjYXJkZWRcIiwgZWwpXG4gICAgICAgIH0sXG4gICAgICAgIG9uQmVmb3JlTm9kZURpc2NhcmRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgaWYoZWwuZ2V0QXR0cmlidXRlICYmIGVsLmdldEF0dHJpYnV0ZShQSFhfUFJVTkUpICE9PSBudWxsKXsgcmV0dXJuIHRydWUgfVxuICAgICAgICAgIGlmKGVsLnBhcmVudE5vZGUgIT09IG51bGwgJiYgRE9NLmlzUGh4VXBkYXRlKGVsLnBhcmVudE5vZGUsIHBoeFVwZGF0ZSwgW1wiYXBwZW5kXCIsIFwicHJlcGVuZFwiXSkgJiYgZWwuaWQpeyByZXR1cm4gZmFsc2UgfVxuICAgICAgICAgIGlmKGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUocGh4UmVtb3ZlKSl7XG4gICAgICAgICAgICBwZW5kaW5nUmVtb3Zlcy5wdXNoKGVsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKHRoaXMuc2tpcENJRFNpYmxpbmcoZWwpKXsgcmV0dXJuIGZhbHNlIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBvbkVsVXBkYXRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgaWYoRE9NLmlzTm93VHJpZ2dlckZvcm1FeHRlcm5hbChlbCwgcGh4VHJpZ2dlckV4dGVybmFsKSl7XG4gICAgICAgICAgICBleHRlcm5hbEZvcm1UcmlnZ2VyZWQgPSBlbFxuICAgICAgICAgIH1cbiAgICAgICAgICB1cGRhdGVzLnB1c2goZWwpXG4gICAgICAgIH0sXG4gICAgICAgIG9uQmVmb3JlRWxVcGRhdGVkOiAoZnJvbUVsLCB0b0VsKSA9PiB7XG4gICAgICAgICAgRE9NLmNsZWFuQ2hpbGROb2Rlcyh0b0VsLCBwaHhVcGRhdGUpXG4gICAgICAgICAgaWYodGhpcy5za2lwQ0lEU2libGluZyh0b0VsKSl7IHJldHVybiBmYWxzZSB9XG4gICAgICAgICAgaWYoRE9NLmlzUGh4U3RpY2t5KGZyb21FbCkpeyByZXR1cm4gZmFsc2UgfVxuICAgICAgICAgIGlmKERPTS5pc0lnbm9yZWQoZnJvbUVsLCBwaHhVcGRhdGUpKXtcbiAgICAgICAgICAgIHRoaXMudHJhY2tCZWZvcmUoXCJ1cGRhdGVkXCIsIGZyb21FbCwgdG9FbClcbiAgICAgICAgICAgIERPTS5tZXJnZUF0dHJzKGZyb21FbCwgdG9FbCwge2lzSWdub3JlZDogdHJ1ZX0pXG4gICAgICAgICAgICB1cGRhdGVzLnB1c2goZnJvbUVsKVxuICAgICAgICAgICAgRE9NLmFwcGx5U3RpY2t5T3BlcmF0aW9ucyhmcm9tRWwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYoZnJvbUVsLnR5cGUgPT09IFwibnVtYmVyXCIgJiYgKGZyb21FbC52YWxpZGl0eSAmJiBmcm9tRWwudmFsaWRpdHkuYmFkSW5wdXQpKXsgcmV0dXJuIGZhbHNlIH1cbiAgICAgICAgICBpZighRE9NLnN5bmNQZW5kaW5nUmVmKGZyb21FbCwgdG9FbCwgZGlzYWJsZVdpdGgpKXtcbiAgICAgICAgICAgIGlmKERPTS5pc1VwbG9hZElucHV0KGZyb21FbCkpe1xuICAgICAgICAgICAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBmcm9tRWwsIHRvRWwpXG4gICAgICAgICAgICAgIHVwZGF0ZXMucHVzaChmcm9tRWwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBET00uYXBwbHlTdGlja3lPcGVyYXRpb25zKGZyb21FbClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG5lc3RlZCB2aWV3IGhhbmRsaW5nXG4gICAgICAgICAgaWYoRE9NLmlzUGh4Q2hpbGQodG9FbCkpe1xuICAgICAgICAgICAgbGV0IHByZXZTZXNzaW9uID0gZnJvbUVsLmdldEF0dHJpYnV0ZShQSFhfU0VTU0lPTilcbiAgICAgICAgICAgIERPTS5tZXJnZUF0dHJzKGZyb21FbCwgdG9FbCwge2V4Y2x1ZGU6IFtQSFhfU1RBVElDXX0pXG4gICAgICAgICAgICBpZihwcmV2U2Vzc2lvbiAhPT0gXCJcIil7IGZyb21FbC5zZXRBdHRyaWJ1dGUoUEhYX1NFU1NJT04sIHByZXZTZXNzaW9uKSB9XG4gICAgICAgICAgICBmcm9tRWwuc2V0QXR0cmlidXRlKFBIWF9ST09UX0lELCB0aGlzLnJvb3RJRClcbiAgICAgICAgICAgIERPTS5hcHBseVN0aWNreU9wZXJhdGlvbnMoZnJvbUVsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaW5wdXQgaGFuZGxpbmdcbiAgICAgICAgICBET00uY29weVByaXZhdGVzKHRvRWwsIGZyb21FbClcbiAgICAgICAgICBET00uZGlzY2FyZEVycm9yKHRhcmdldENvbnRhaW5lciwgdG9FbCwgcGh4RmVlZGJhY2tGb3IpXG5cbiAgICAgICAgICBsZXQgaXNGb2N1c2VkRm9ybUVsID0gZm9jdXNlZCAmJiBmcm9tRWwuaXNTYW1lTm9kZShmb2N1c2VkKSAmJiBET00uaXNGb3JtSW5wdXQoZnJvbUVsKVxuICAgICAgICAgIGlmKGlzRm9jdXNlZEZvcm1FbCl7XG4gICAgICAgICAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBmcm9tRWwsIHRvRWwpXG4gICAgICAgICAgICBET00ubWVyZ2VGb2N1c2VkSW5wdXQoZnJvbUVsLCB0b0VsKVxuICAgICAgICAgICAgRE9NLnN5bmNBdHRyc1RvUHJvcHMoZnJvbUVsKVxuICAgICAgICAgICAgdXBkYXRlcy5wdXNoKGZyb21FbClcbiAgICAgICAgICAgIERPTS5hcHBseVN0aWNreU9wZXJhdGlvbnMoZnJvbUVsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmKERPTS5pc1BoeFVwZGF0ZSh0b0VsLCBwaHhVcGRhdGUsIFtcImFwcGVuZFwiLCBcInByZXBlbmRcIl0pKXtcbiAgICAgICAgICAgICAgYXBwZW5kUHJlcGVuZFVwZGF0ZXMucHVzaChuZXcgRE9NUG9zdE1vcnBoUmVzdG9yZXIoZnJvbUVsLCB0b0VsLCB0b0VsLmdldEF0dHJpYnV0ZShwaHhVcGRhdGUpKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIERPTS5zeW5jQXR0cnNUb1Byb3BzKHRvRWwpXG4gICAgICAgICAgICBET00uYXBwbHlTdGlja3lPcGVyYXRpb25zKHRvRWwpXG4gICAgICAgICAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBmcm9tRWwsIHRvRWwpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaWYobGl2ZVNvY2tldC5pc0RlYnVnRW5hYmxlZCgpKXsgZGV0ZWN0RHVwbGljYXRlSWRzKCkgfVxuXG4gICAgaWYoYXBwZW5kUHJlcGVuZFVwZGF0ZXMubGVuZ3RoID4gMCl7XG4gICAgICBsaXZlU29ja2V0LnRpbWUoXCJwb3N0LW1vcnBoIGFwcGVuZC9wcmVwZW5kIHJlc3RvcmF0aW9uXCIsICgpID0+IHtcbiAgICAgICAgYXBwZW5kUHJlcGVuZFVwZGF0ZXMuZm9yRWFjaCh1cGRhdGUgPT4gdXBkYXRlLnBlcmZvcm0oKSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgbGl2ZVNvY2tldC5zaWxlbmNlRXZlbnRzKCgpID0+IERPTS5yZXN0b3JlRm9jdXMoZm9jdXNlZCwgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCkpXG4gICAgRE9NLmRpc3BhdGNoRXZlbnQoZG9jdW1lbnQsIFwicGh4OnVwZGF0ZVwiKVxuICAgIGFkZGVkLmZvckVhY2goZWwgPT4gdGhpcy50cmFja0FmdGVyKFwiYWRkZWRcIiwgZWwpKVxuICAgIHVwZGF0ZXMuZm9yRWFjaChlbCA9PiB0aGlzLnRyYWNrQWZ0ZXIoXCJ1cGRhdGVkXCIsIGVsKSlcblxuICAgIGlmKHBlbmRpbmdSZW1vdmVzLmxlbmd0aCA+IDApe1xuICAgICAgbGl2ZVNvY2tldC50cmFuc2l0aW9uUmVtb3ZlcyhwZW5kaW5nUmVtb3ZlcylcbiAgICAgIGxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIHBlbmRpbmdSZW1vdmVzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGxldCBjaGlsZCA9IERPTS5maXJzdFBoeENoaWxkKGVsKVxuICAgICAgICAgIGlmKGNoaWxkKXsgbGl2ZVNvY2tldC5kZXN0cm95Vmlld0J5RWwoY2hpbGQpIH1cbiAgICAgICAgICBlbC5yZW1vdmUoKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnRyYWNrQWZ0ZXIoXCJ0cmFuc2l0aW9uc0Rpc2NhcmRlZFwiLCBwZW5kaW5nUmVtb3ZlcylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYoZXh0ZXJuYWxGb3JtVHJpZ2dlcmVkKXtcbiAgICAgIGxpdmVTb2NrZXQuZGlzY29ubmVjdCgpXG4gICAgICBleHRlcm5hbEZvcm1UcmlnZ2VyZWQuc3VibWl0KClcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlzQ0lEUGF0Y2goKXsgcmV0dXJuIHRoaXMuY2lkUGF0Y2ggfVxuXG4gIHNraXBDSURTaWJsaW5nKGVsKXtcbiAgICByZXR1cm4gZWwubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIGVsLmdldEF0dHJpYnV0ZShQSFhfU0tJUCkgIT09IG51bGxcbiAgfVxuXG4gIHRhcmdldENJRENvbnRhaW5lcihodG1sKXtcbiAgICBpZighdGhpcy5pc0NJRFBhdGNoKCkpeyByZXR1cm4gfVxuICAgIGxldCBbZmlyc3QsIC4uLnJlc3RdID0gRE9NLmZpbmRDb21wb25lbnROb2RlTGlzdCh0aGlzLmNvbnRhaW5lciwgdGhpcy50YXJnZXRDSUQpXG4gICAgaWYocmVzdC5sZW5ndGggPT09IDAgJiYgRE9NLmNoaWxkTm9kZUxlbmd0aChodG1sKSA9PT0gMSl7XG4gICAgICByZXR1cm4gZmlyc3RcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpcnN0ICYmIGZpcnN0LnBhcmVudE5vZGVcbiAgICB9XG4gIH1cblxuICAvLyBidWlsZHMgSFRNTCBmb3IgbW9ycGhkb20gcGF0Y2hcbiAgLy8gLSBmb3IgZnVsbCBwYXRjaGVzIG9mIExpdmVWaWV3IG9yIGEgY29tcG9uZW50IHdpdGggYSBzaW5nbGVcbiAgLy8gICByb290IG5vZGUsIHNpbXBseSByZXR1cm5zIHRoZSBIVE1MXG4gIC8vIC0gZm9yIHBhdGNoZXMgb2YgYSBjb21wb25lbnQgd2l0aCBtdWx0aXBsZSByb290IG5vZGVzLCB0aGVcbiAgLy8gICBwYXJlbnQgbm9kZSBiZWNvbWVzIHRoZSB0YXJnZXQgY29udGFpbmVyIGFuZCBub24tY29tcG9uZW50XG4gIC8vICAgc2libGluZ3MgYXJlIG1hcmtlZCBhcyBza2lwLlxuICBidWlsZERpZmZIVE1MKGNvbnRhaW5lciwgaHRtbCwgcGh4VXBkYXRlLCB0YXJnZXRDb250YWluZXIpe1xuICAgIGxldCBpc0NJRFBhdGNoID0gdGhpcy5pc0NJRFBhdGNoKClcbiAgICBsZXQgaXNDSURXaXRoU2luZ2xlUm9vdCA9IGlzQ0lEUGF0Y2ggJiYgdGFyZ2V0Q29udGFpbmVyLmdldEF0dHJpYnV0ZShQSFhfQ09NUE9ORU5UKSA9PT0gdGhpcy50YXJnZXRDSUQudG9TdHJpbmcoKVxuICAgIGlmKCFpc0NJRFBhdGNoIHx8IGlzQ0lEV2l0aFNpbmdsZVJvb3Qpe1xuICAgICAgcmV0dXJuIGh0bWxcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29tcG9uZW50IHBhdGNoIHdpdGggbXVsdGlwbGUgQ0lEIHJvb3RzXG4gICAgICBsZXQgZGlmZkNvbnRhaW5lciA9IG51bGxcbiAgICAgIGxldCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKVxuICAgICAgZGlmZkNvbnRhaW5lciA9IERPTS5jbG9uZU5vZGUodGFyZ2V0Q29udGFpbmVyKVxuICAgICAgbGV0IFtmaXJzdENvbXBvbmVudCwgLi4ucmVzdF0gPSBET00uZmluZENvbXBvbmVudE5vZGVMaXN0KGRpZmZDb250YWluZXIsIHRoaXMudGFyZ2V0Q0lEKVxuICAgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gaHRtbFxuICAgICAgcmVzdC5mb3JFYWNoKGVsID0+IGVsLnJlbW92ZSgpKVxuICAgICAgQXJyYXkuZnJvbShkaWZmQ29udGFpbmVyLmNoaWxkTm9kZXMpLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICAvLyB3ZSBjYW4gb25seSBza2lwIHRyYWNrYWJsZSBub2RlcyB3aXRoIGFuIElEXG4gICAgICAgIGlmKGNoaWxkLmlkICYmIGNoaWxkLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBjaGlsZC5nZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVCkgIT09IHRoaXMudGFyZ2V0Q0lELnRvU3RyaW5nKCkpe1xuICAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZShQSFhfU0tJUCwgXCJcIilcbiAgICAgICAgICBjaGlsZC5pbm5lckhUTUwgPSBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBBcnJheS5mcm9tKHRlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2RlcykuZm9yRWFjaChlbCA9PiBkaWZmQ29udGFpbmVyLmluc2VydEJlZm9yZShlbCwgZmlyc3RDb21wb25lbnQpKVxuICAgICAgZmlyc3RDb21wb25lbnQucmVtb3ZlKClcbiAgICAgIHJldHVybiBkaWZmQ29udGFpbmVyLm91dGVySFRNTFxuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIENPTVBPTkVOVFMsXG4gIERZTkFNSUNTLFxuICBURU1QTEFURVMsXG4gIEVWRU5UUyxcbiAgUEhYX0NPTVBPTkVOVCxcbiAgUEhYX1NLSVAsXG4gIFJFUExZLFxuICBTVEFUSUMsXG4gIFRJVExFXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCB7XG4gIGlzT2JqZWN0LFxuICBsb2dFcnJvcixcbiAgaXNDaWQsXG59IGZyb20gXCIuL3V0aWxzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVuZGVyZWQge1xuICBzdGF0aWMgZXh0cmFjdChkaWZmKXtcbiAgICBsZXQge1tSRVBMWV06IHJlcGx5LCBbRVZFTlRTXTogZXZlbnRzLCBbVElUTEVdOiB0aXRsZX0gPSBkaWZmXG4gICAgZGVsZXRlIGRpZmZbUkVQTFldXG4gICAgZGVsZXRlIGRpZmZbRVZFTlRTXVxuICAgIGRlbGV0ZSBkaWZmW1RJVExFXVxuICAgIHJldHVybiB7ZGlmZiwgdGl0bGUsIHJlcGx5OiByZXBseSB8fCBudWxsLCBldmVudHM6IGV2ZW50cyB8fCBbXX1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHZpZXdJZCwgcmVuZGVyZWQpe1xuICAgIHRoaXMudmlld0lkID0gdmlld0lkXG4gICAgdGhpcy5yZW5kZXJlZCA9IHt9XG4gICAgdGhpcy5tZXJnZURpZmYocmVuZGVyZWQpXG4gIH1cblxuICBwYXJlbnRWaWV3SWQoKXsgcmV0dXJuIHRoaXMudmlld0lkIH1cblxuICB0b1N0cmluZyhvbmx5Q2lkcyl7XG4gICAgcmV0dXJuIHRoaXMucmVjdXJzaXZlVG9TdHJpbmcodGhpcy5yZW5kZXJlZCwgdGhpcy5yZW5kZXJlZFtDT01QT05FTlRTXSwgb25seUNpZHMpXG4gIH1cblxuICByZWN1cnNpdmVUb1N0cmluZyhyZW5kZXJlZCwgY29tcG9uZW50cyA9IHJlbmRlcmVkW0NPTVBPTkVOVFNdLCBvbmx5Q2lkcyl7XG4gICAgb25seUNpZHMgPSBvbmx5Q2lkcyA/IG5ldyBTZXQob25seUNpZHMpIDogbnVsbFxuICAgIGxldCBvdXRwdXQgPSB7YnVmZmVyOiBcIlwiLCBjb21wb25lbnRzOiBjb21wb25lbnRzLCBvbmx5Q2lkczogb25seUNpZHN9XG4gICAgdGhpcy50b091dHB1dEJ1ZmZlcihyZW5kZXJlZCwgbnVsbCwgb3V0cHV0KVxuICAgIHJldHVybiBvdXRwdXQuYnVmZmVyXG4gIH1cblxuICBjb21wb25lbnRDSURzKGRpZmYpeyByZXR1cm4gT2JqZWN0LmtleXMoZGlmZltDT01QT05FTlRTXSB8fCB7fSkubWFwKGkgPT4gcGFyc2VJbnQoaSkpIH1cblxuICBpc0NvbXBvbmVudE9ubHlEaWZmKGRpZmYpe1xuICAgIGlmKCFkaWZmW0NPTVBPTkVOVFNdKXsgcmV0dXJuIGZhbHNlIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGlmZikubGVuZ3RoID09PSAxXG4gIH1cblxuICBnZXRDb21wb25lbnQoZGlmZiwgY2lkKXsgcmV0dXJuIGRpZmZbQ09NUE9ORU5UU11bY2lkXSB9XG5cbiAgbWVyZ2VEaWZmKGRpZmYpe1xuICAgIGxldCBuZXdjID0gZGlmZltDT01QT05FTlRTXVxuICAgIGxldCBjYWNoZSA9IHt9XG4gICAgZGVsZXRlIGRpZmZbQ09NUE9ORU5UU11cbiAgICB0aGlzLnJlbmRlcmVkID0gdGhpcy5tdXRhYmxlTWVyZ2UodGhpcy5yZW5kZXJlZCwgZGlmZilcbiAgICB0aGlzLnJlbmRlcmVkW0NPTVBPTkVOVFNdID0gdGhpcy5yZW5kZXJlZFtDT01QT05FTlRTXSB8fCB7fVxuXG4gICAgaWYobmV3Yyl7XG4gICAgICBsZXQgb2xkYyA9IHRoaXMucmVuZGVyZWRbQ09NUE9ORU5UU11cblxuICAgICAgZm9yKGxldCBjaWQgaW4gbmV3Yyl7XG4gICAgICAgIG5ld2NbY2lkXSA9IHRoaXMuY2FjaGVkRmluZENvbXBvbmVudChjaWQsIG5ld2NbY2lkXSwgb2xkYywgbmV3YywgY2FjaGUpXG4gICAgICB9XG5cbiAgICAgIGZvcihsZXQgY2lkIGluIG5ld2MpeyBvbGRjW2NpZF0gPSBuZXdjW2NpZF0gfVxuICAgICAgZGlmZltDT01QT05FTlRTXSA9IG5ld2NcbiAgICB9XG4gIH1cblxuICBjYWNoZWRGaW5kQ29tcG9uZW50KGNpZCwgY2RpZmYsIG9sZGMsIG5ld2MsIGNhY2hlKXtcbiAgICBpZihjYWNoZVtjaWRdKXtcbiAgICAgIHJldHVybiBjYWNoZVtjaWRdXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZGlmZiwgc3RhdCwgc2NpZCA9IGNkaWZmW1NUQVRJQ11cblxuICAgICAgaWYoaXNDaWQoc2NpZCkpe1xuICAgICAgICBsZXQgdGRpZmZcblxuICAgICAgICBpZihzY2lkID4gMCl7XG4gICAgICAgICAgdGRpZmYgPSB0aGlzLmNhY2hlZEZpbmRDb21wb25lbnQoc2NpZCwgbmV3Y1tzY2lkXSwgb2xkYywgbmV3YywgY2FjaGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGRpZmYgPSBvbGRjWy1zY2lkXVxuICAgICAgICB9XG5cbiAgICAgICAgc3RhdCA9IHRkaWZmW1NUQVRJQ11cbiAgICAgICAgbmRpZmYgPSB0aGlzLmNsb25lTWVyZ2UodGRpZmYsIGNkaWZmKVxuICAgICAgICBuZGlmZltTVEFUSUNdID0gc3RhdFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmRpZmYgPSBjZGlmZltTVEFUSUNdICE9PSB1bmRlZmluZWQgPyBjZGlmZiA6IHRoaXMuY2xvbmVNZXJnZShvbGRjW2NpZF0gfHwge30sIGNkaWZmKVxuICAgICAgfVxuXG4gICAgICBjYWNoZVtjaWRdID0gbmRpZmZcbiAgICAgIHJldHVybiBuZGlmZlxuICAgIH1cbiAgfVxuXG4gIG11dGFibGVNZXJnZSh0YXJnZXQsIHNvdXJjZSl7XG4gICAgaWYoc291cmNlW1NUQVRJQ10gIT09IHVuZGVmaW5lZCl7XG4gICAgICByZXR1cm4gc291cmNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9NdXRhYmxlTWVyZ2UodGFyZ2V0LCBzb3VyY2UpXG4gICAgICByZXR1cm4gdGFyZ2V0XG4gICAgfVxuICB9XG5cbiAgZG9NdXRhYmxlTWVyZ2UodGFyZ2V0LCBzb3VyY2Upe1xuICAgIGZvcihsZXQga2V5IGluIHNvdXJjZSl7XG4gICAgICBsZXQgdmFsID0gc291cmNlW2tleV1cbiAgICAgIGxldCB0YXJnZXRWYWwgPSB0YXJnZXRba2V5XVxuICAgICAgaWYoaXNPYmplY3QodmFsKSAmJiB2YWxbU1RBVElDXSA9PT0gdW5kZWZpbmVkICYmIGlzT2JqZWN0KHRhcmdldFZhbCkpe1xuICAgICAgICB0aGlzLmRvTXV0YWJsZU1lcmdlKHRhcmdldFZhbCwgdmFsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbG9uZU1lcmdlKHRhcmdldCwgc291cmNlKXtcbiAgICBsZXQgbWVyZ2VkID0gey4uLnRhcmdldCwgLi4uc291cmNlfVxuICAgIGZvcihsZXQga2V5IGluIG1lcmdlZCl7XG4gICAgICBsZXQgdmFsID0gc291cmNlW2tleV1cbiAgICAgIGxldCB0YXJnZXRWYWwgPSB0YXJnZXRba2V5XVxuICAgICAgaWYoaXNPYmplY3QodmFsKSAmJiB2YWxbU1RBVElDXSA9PT0gdW5kZWZpbmVkICYmIGlzT2JqZWN0KHRhcmdldFZhbCkpe1xuICAgICAgICBtZXJnZWRba2V5XSA9IHRoaXMuY2xvbmVNZXJnZSh0YXJnZXRWYWwsIHZhbClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlZFxuICB9XG5cbiAgY29tcG9uZW50VG9TdHJpbmcoY2lkKXsgcmV0dXJuIHRoaXMucmVjdXJzaXZlQ0lEVG9TdHJpbmcodGhpcy5yZW5kZXJlZFtDT01QT05FTlRTXSwgY2lkKSB9XG5cbiAgcHJ1bmVDSURzKGNpZHMpe1xuICAgIGNpZHMuZm9yRWFjaChjaWQgPT4gZGVsZXRlIHRoaXMucmVuZGVyZWRbQ09NUE9ORU5UU11bY2lkXSlcbiAgfVxuXG4gIC8vIHByaXZhdGVcblxuICBnZXQoKXsgcmV0dXJuIHRoaXMucmVuZGVyZWQgfVxuXG4gIGlzTmV3RmluZ2VycHJpbnQoZGlmZiA9IHt9KXsgcmV0dXJuICEhZGlmZltTVEFUSUNdIH1cblxuICB0ZW1wbGF0ZVN0YXRpYyhwYXJ0LCB0ZW1wbGF0ZXMpe1xuICAgIGlmKHR5cGVvZiAocGFydCkgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZXNbcGFydF1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcnRcbiAgICB9XG4gIH1cblxuICB0b091dHB1dEJ1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpe1xuICAgIGlmKHJlbmRlcmVkW0RZTkFNSUNTXSl7IHJldHVybiB0aGlzLmNvbXByZWhlbnNpb25Ub0J1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpIH1cbiAgICBsZXQge1tTVEFUSUNdOiBzdGF0aWNzfSA9IHJlbmRlcmVkXG4gICAgc3RhdGljcyA9IHRoaXMudGVtcGxhdGVTdGF0aWMoc3RhdGljcywgdGVtcGxhdGVzKVxuXG4gICAgb3V0cHV0LmJ1ZmZlciArPSBzdGF0aWNzWzBdXG4gICAgZm9yKGxldCBpID0gMTsgaSA8IHN0YXRpY3MubGVuZ3RoOyBpKyspe1xuICAgICAgdGhpcy5keW5hbWljVG9CdWZmZXIocmVuZGVyZWRbaSAtIDFdLCB0ZW1wbGF0ZXMsIG91dHB1dClcbiAgICAgIG91dHB1dC5idWZmZXIgKz0gc3RhdGljc1tpXVxuICAgIH1cbiAgfVxuXG4gIGNvbXByZWhlbnNpb25Ub0J1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpe1xuICAgIGxldCB7W0RZTkFNSUNTXTogZHluYW1pY3MsIFtTVEFUSUNdOiBzdGF0aWNzfSA9IHJlbmRlcmVkXG4gICAgc3RhdGljcyA9IHRoaXMudGVtcGxhdGVTdGF0aWMoc3RhdGljcywgdGVtcGxhdGVzKVxuICAgIGxldCBjb21wVGVtcGxhdGVzID0gdGVtcGxhdGVzIHx8IHJlbmRlcmVkW1RFTVBMQVRFU11cblxuICAgIGZvcihsZXQgZCA9IDA7IGQgPCBkeW5hbWljcy5sZW5ndGg7IGQrKyl7XG4gICAgICBsZXQgZHluYW1pYyA9IGR5bmFtaWNzW2RdXG4gICAgICBvdXRwdXQuYnVmZmVyICs9IHN0YXRpY3NbMF1cbiAgICAgIGZvcihsZXQgaSA9IDE7IGkgPCBzdGF0aWNzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5keW5hbWljVG9CdWZmZXIoZHluYW1pY1tpIC0gMV0sIGNvbXBUZW1wbGF0ZXMsIG91dHB1dClcbiAgICAgICAgb3V0cHV0LmJ1ZmZlciArPSBzdGF0aWNzW2ldXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZHluYW1pY1RvQnVmZmVyKHJlbmRlcmVkLCB0ZW1wbGF0ZXMsIG91dHB1dCl7XG4gICAgaWYodHlwZW9mIChyZW5kZXJlZCkgPT09IFwibnVtYmVyXCIpe1xuICAgICAgb3V0cHV0LmJ1ZmZlciArPSB0aGlzLnJlY3Vyc2l2ZUNJRFRvU3RyaW5nKG91dHB1dC5jb21wb25lbnRzLCByZW5kZXJlZCwgb3V0cHV0Lm9ubHlDaWRzKVxuICAgIH0gZWxzZSBpZihpc09iamVjdChyZW5kZXJlZCkpe1xuICAgICAgdGhpcy50b091dHB1dEJ1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5idWZmZXIgKz0gcmVuZGVyZWRcbiAgICB9XG4gIH1cblxuICByZWN1cnNpdmVDSURUb1N0cmluZyhjb21wb25lbnRzLCBjaWQsIG9ubHlDaWRzKXtcbiAgICBsZXQgY29tcG9uZW50ID0gY29tcG9uZW50c1tjaWRdIHx8IGxvZ0Vycm9yKGBubyBjb21wb25lbnQgZm9yIENJRCAke2NpZH1gLCBjb21wb25lbnRzKVxuICAgIGxldCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKVxuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IHRoaXMucmVjdXJzaXZlVG9TdHJpbmcoY29tcG9uZW50LCBjb21wb25lbnRzLCBvbmx5Q2lkcylcbiAgICBsZXQgY29udGFpbmVyID0gdGVtcGxhdGUuY29udGVudFxuICAgIGxldCBza2lwID0gb25seUNpZHMgJiYgIW9ubHlDaWRzLmhhcyhjaWQpXG5cbiAgICBsZXQgW2hhc0NoaWxkTm9kZXMsIGhhc0NoaWxkQ29tcG9uZW50c10gPVxuICAgICAgQXJyYXkuZnJvbShjb250YWluZXIuY2hpbGROb2RlcykucmVkdWNlKChbaGFzTm9kZXMsIGhhc0NvbXBvbmVudHNdLCBjaGlsZCwgaSkgPT4ge1xuICAgICAgICBpZihjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpe1xuICAgICAgICAgIGlmKGNoaWxkLmdldEF0dHJpYnV0ZShQSFhfQ09NUE9ORU5UKSl7XG4gICAgICAgICAgICByZXR1cm4gW2hhc05vZGVzLCB0cnVlXVxuICAgICAgICAgIH1cbiAgICAgICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVCwgY2lkKVxuICAgICAgICAgIGlmKCFjaGlsZC5pZCl7IGNoaWxkLmlkID0gYCR7dGhpcy5wYXJlbnRWaWV3SWQoKX0tJHtjaWR9LSR7aX1gIH1cbiAgICAgICAgICBpZihza2lwKXtcbiAgICAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZShQSFhfU0tJUCwgXCJcIilcbiAgICAgICAgICAgIGNoaWxkLmlubmVySFRNTCA9IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFt0cnVlLCBoYXNDb21wb25lbnRzXVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKGNoaWxkLm5vZGVWYWx1ZS50cmltKCkgIT09IFwiXCIpe1xuICAgICAgICAgICAgbG9nRXJyb3IoXCJvbmx5IEhUTUwgZWxlbWVudCB0YWdzIGFyZSBhbGxvd2VkIGF0IHRoZSByb290IG9mIGNvbXBvbmVudHMuXFxuXFxuXCIgK1xuICAgICAgICAgICAgICBgZ290OiBcIiR7Y2hpbGQubm9kZVZhbHVlLnRyaW0oKX1cIlxcblxcbmAgK1xuICAgICAgICAgICAgICBcIndpdGhpbjpcXG5cIiwgdGVtcGxhdGUuaW5uZXJIVE1MLnRyaW0oKSlcbiAgICAgICAgICAgIGNoaWxkLnJlcGxhY2VXaXRoKHRoaXMuY3JlYXRlU3BhbihjaGlsZC5ub2RlVmFsdWUsIGNpZCkpXG4gICAgICAgICAgICByZXR1cm4gW3RydWUsIGhhc0NvbXBvbmVudHNdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICByZXR1cm4gW2hhc05vZGVzLCBoYXNDb21wb25lbnRzXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgW2ZhbHNlLCBmYWxzZV0pXG5cbiAgICBpZighaGFzQ2hpbGROb2RlcyAmJiAhaGFzQ2hpbGRDb21wb25lbnRzKXtcbiAgICAgIGxvZ0Vycm9yKFwiZXhwZWN0ZWQgYXQgbGVhc3Qgb25lIEhUTUwgZWxlbWVudCB0YWcgaW5zaWRlIGEgY29tcG9uZW50LCBidXQgdGhlIGNvbXBvbmVudCBpcyBlbXB0eTpcXG5cIixcbiAgICAgICAgdGVtcGxhdGUuaW5uZXJIVE1MLnRyaW0oKSlcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNwYW4oXCJcIiwgY2lkKS5vdXRlckhUTUxcbiAgICB9IGVsc2UgaWYoIWhhc0NoaWxkTm9kZXMgJiYgaGFzQ2hpbGRDb21wb25lbnRzKXtcbiAgICAgIGxvZ0Vycm9yKFwiZXhwZWN0ZWQgYXQgbGVhc3Qgb25lIEhUTUwgZWxlbWVudCB0YWcgZGlyZWN0bHkgaW5zaWRlIGEgY29tcG9uZW50LCBidXQgb25seSBzdWJjb21wb25lbnRzIHdlcmUgZm91bmQuIEEgY29tcG9uZW50IG11c3QgcmVuZGVyIGF0IGxlYXN0IG9uZSBIVE1MIHRhZyBkaXJlY3RseSBpbnNpZGUgaXRzZWxmLlwiLFxuICAgICAgICB0ZW1wbGF0ZS5pbm5lckhUTUwudHJpbSgpKVxuICAgICAgcmV0dXJuIHRlbXBsYXRlLmlubmVySFRNTFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUuaW5uZXJIVE1MXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU3Bhbih0ZXh0LCBjaWQpe1xuICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIilcbiAgICBzcGFuLmlubmVyVGV4dCA9IHRleHRcbiAgICBzcGFuLnNldEF0dHJpYnV0ZShQSFhfQ09NUE9ORU5ULCBjaWQpXG4gICAgcmV0dXJuIHNwYW5cbiAgfVxufVxuIiwgImxldCB2aWV3SG9va0lEID0gMVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlld0hvb2sge1xuICBzdGF0aWMgbWFrZUlEKCl7IHJldHVybiB2aWV3SG9va0lEKysgfVxuICBzdGF0aWMgZWxlbWVudElEKGVsKXsgcmV0dXJuIGVsLnBoeEhvb2tJZCB9XG5cbiAgY29uc3RydWN0b3IodmlldywgZWwsIGNhbGxiYWNrcyl7XG4gICAgdGhpcy5fX3ZpZXcgPSB2aWV3XG4gICAgdGhpcy5saXZlU29ja2V0ID0gdmlldy5saXZlU29ja2V0XG4gICAgdGhpcy5fX2NhbGxiYWNrcyA9IGNhbGxiYWNrc1xuICAgIHRoaXMuX19saXN0ZW5lcnMgPSBuZXcgU2V0KClcbiAgICB0aGlzLl9faXNEaXNjb25uZWN0ZWQgPSBmYWxzZVxuICAgIHRoaXMuZWwgPSBlbFxuICAgIHRoaXMuZWwucGh4SG9va0lkID0gdGhpcy5jb25zdHJ1Y3Rvci5tYWtlSUQoKVxuICAgIGZvcihsZXQga2V5IGluIHRoaXMuX19jYWxsYmFja3MpeyB0aGlzW2tleV0gPSB0aGlzLl9fY2FsbGJhY2tzW2tleV0gfVxuICB9XG5cbiAgX19tb3VudGVkKCl7IHRoaXMubW91bnRlZCAmJiB0aGlzLm1vdW50ZWQoKSB9XG4gIF9fdXBkYXRlZCgpeyB0aGlzLnVwZGF0ZWQgJiYgdGhpcy51cGRhdGVkKCkgfVxuICBfX2JlZm9yZVVwZGF0ZSgpeyB0aGlzLmJlZm9yZVVwZGF0ZSAmJiB0aGlzLmJlZm9yZVVwZGF0ZSgpIH1cbiAgX19kZXN0cm95ZWQoKXsgdGhpcy5kZXN0cm95ZWQgJiYgdGhpcy5kZXN0cm95ZWQoKSB9XG4gIF9fcmVjb25uZWN0ZWQoKXtcbiAgICBpZih0aGlzLl9faXNEaXNjb25uZWN0ZWQpe1xuICAgICAgdGhpcy5fX2lzRGlzY29ubmVjdGVkID0gZmFsc2VcbiAgICAgIHRoaXMucmVjb25uZWN0ZWQgJiYgdGhpcy5yZWNvbm5lY3RlZCgpXG4gICAgfVxuICB9XG4gIF9fZGlzY29ubmVjdGVkKCl7XG4gICAgdGhpcy5fX2lzRGlzY29ubmVjdGVkID0gdHJ1ZVxuICAgIHRoaXMuZGlzY29ubmVjdGVkICYmIHRoaXMuZGlzY29ubmVjdGVkKClcbiAgfVxuXG4gIHB1c2hFdmVudChldmVudCwgcGF5bG9hZCA9IHt9LCBvblJlcGx5ID0gZnVuY3Rpb24gKCl7IH0pe1xuICAgIHJldHVybiB0aGlzLl9fdmlldy5wdXNoSG9va0V2ZW50KG51bGwsIGV2ZW50LCBwYXlsb2FkLCBvblJlcGx5KVxuICB9XG5cbiAgcHVzaEV2ZW50VG8ocGh4VGFyZ2V0LCBldmVudCwgcGF5bG9hZCA9IHt9LCBvblJlcGx5ID0gZnVuY3Rpb24gKCl7IH0pe1xuICAgIHJldHVybiB0aGlzLl9fdmlldy53aXRoaW5UYXJnZXRzKHBoeFRhcmdldCwgKHZpZXcsIHRhcmdldEN0eCkgPT4ge1xuICAgICAgcmV0dXJuIHZpZXcucHVzaEhvb2tFdmVudCh0YXJnZXRDdHgsIGV2ZW50LCBwYXlsb2FkLCBvblJlcGx5KVxuICAgIH0pXG4gIH1cblxuICBoYW5kbGVFdmVudChldmVudCwgY2FsbGJhY2spe1xuICAgIGxldCBjYWxsYmFja1JlZiA9IChjdXN0b21FdmVudCwgYnlwYXNzKSA9PiBieXBhc3MgPyBldmVudCA6IGNhbGxiYWNrKGN1c3RvbUV2ZW50LmRldGFpbClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcGh4OiR7ZXZlbnR9YCwgY2FsbGJhY2tSZWYpXG4gICAgdGhpcy5fX2xpc3RlbmVycy5hZGQoY2FsbGJhY2tSZWYpXG4gICAgcmV0dXJuIGNhbGxiYWNrUmVmXG4gIH1cblxuICByZW1vdmVIYW5kbGVFdmVudChjYWxsYmFja1JlZil7XG4gICAgbGV0IGV2ZW50ID0gY2FsbGJhY2tSZWYobnVsbCwgdHJ1ZSlcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihgcGh4OiR7ZXZlbnR9YCwgY2FsbGJhY2tSZWYpXG4gICAgdGhpcy5fX2xpc3RlbmVycy5kZWxldGUoY2FsbGJhY2tSZWYpXG4gIH1cblxuICB1cGxvYWQobmFtZSwgZmlsZXMpe1xuICAgIHJldHVybiB0aGlzLl9fdmlldy5kaXNwYXRjaFVwbG9hZHMobmFtZSwgZmlsZXMpXG4gIH1cblxuICB1cGxvYWRUbyhwaHhUYXJnZXQsIG5hbWUsIGZpbGVzKXtcbiAgICByZXR1cm4gdGhpcy5fX3ZpZXcud2l0aGluVGFyZ2V0cyhwaHhUYXJnZXQsIHZpZXcgPT4gdmlldy5kaXNwYXRjaFVwbG9hZHMobmFtZSwgZmlsZXMpKVxuICB9XG5cbiAgX19jbGVhbnVwX18oKXtcbiAgICB0aGlzLl9fbGlzdGVuZXJzLmZvckVhY2goY2FsbGJhY2tSZWYgPT4gdGhpcy5yZW1vdmVIYW5kbGVFdmVudChjYWxsYmFja1JlZikpXG4gIH1cbn1cbiIsICJpbXBvcnQgRE9NIGZyb20gXCIuL2RvbVwiXG5cbmxldCBKUyA9IHtcbiAgZXhlYyhldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZGVmYXVsdHMpe1xuICAgIGxldCBbZGVmYXVsdEtpbmQsIGRlZmF1bHRBcmdzXSA9IGRlZmF1bHRzIHx8IFtudWxsLCB7fV1cbiAgICBsZXQgY29tbWFuZHMgPSBwaHhFdmVudC5jaGFyQXQoMCkgPT09IFwiW1wiID9cbiAgICAgIEpTT04ucGFyc2UocGh4RXZlbnQpIDogW1tkZWZhdWx0S2luZCwgZGVmYXVsdEFyZ3NdXVxuXG4gICAgY29tbWFuZHMuZm9yRWFjaCgoW2tpbmQsIGFyZ3NdKSA9PiB7XG4gICAgICBpZihraW5kID09PSBkZWZhdWx0S2luZCAmJiBkZWZhdWx0QXJncy5kYXRhKXtcbiAgICAgICAgYXJncy5kYXRhID0gT2JqZWN0LmFzc2lnbihhcmdzLmRhdGEgfHwge30sIGRlZmF1bHRBcmdzLmRhdGEpXG4gICAgICB9XG4gICAgICB0aGlzLmZpbHRlclRvRWxzKHNvdXJjZUVsLCBhcmdzKS5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgdGhpc1tgZXhlY18ke2tpbmR9YF0oZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCBhcmdzKVxuICAgICAgfSlcbiAgICB9KVxuICB9LFxuXG4gIGlzVmlzaWJsZShlbCl7XG4gICAgcmV0dXJuICEhKGVsLm9mZnNldFdpZHRoIHx8IGVsLm9mZnNldEhlaWdodCB8fCBlbC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCA+IDApXG4gIH0sXG5cbiAgLy8gcHJpdmF0ZVxuXG4gIC8vIGNvbW1hbmRzXG5cbiAgZXhlY19kaXNwYXRjaChldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIHt0bywgZXZlbnQsIGRldGFpbCwgYnViYmxlc30pe1xuICAgIGRldGFpbCA9IGRldGFpbCB8fCB7fVxuICAgIGRldGFpbC5kaXNwYXRjaGVyID0gc291cmNlRWxcbiAgICBET00uZGlzcGF0Y2hFdmVudChlbCwgZXZlbnQsIHtkZXRhaWwsIGJ1YmJsZXN9KVxuICB9LFxuXG4gIGV4ZWNfcHVzaChldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIGFyZ3Mpe1xuICAgIGlmKCF2aWV3LmlzQ29ubmVjdGVkKCkpeyByZXR1cm4gfVxuXG4gICAgbGV0IHtldmVudCwgZGF0YSwgdGFyZ2V0LCBwYWdlX2xvYWRpbmcsIGxvYWRpbmcsIHZhbHVlLCBkaXNwYXRjaGVyfSA9IGFyZ3NcbiAgICBsZXQgcHVzaE9wdHMgPSB7bG9hZGluZywgdmFsdWUsIHRhcmdldCwgcGFnZV9sb2FkaW5nOiAhIXBhZ2VfbG9hZGluZ31cbiAgICBsZXQgdGFyZ2V0U3JjID0gZXZlbnRUeXBlID09PSBcImNoYW5nZVwiICYmIGRpc3BhdGNoZXIgPyBkaXNwYXRjaGVyIDogc291cmNlRWxcbiAgICBsZXQgcGh4VGFyZ2V0ID0gdGFyZ2V0IHx8IHRhcmdldFNyYy5nZXRBdHRyaWJ1dGUodmlldy5iaW5kaW5nKFwidGFyZ2V0XCIpKSB8fCB0YXJnZXRTcmNcbiAgICB2aWV3LndpdGhpblRhcmdldHMocGh4VGFyZ2V0LCAodGFyZ2V0VmlldywgdGFyZ2V0Q3R4KSA9PiB7XG4gICAgICBpZihldmVudFR5cGUgPT09IFwiY2hhbmdlXCIpe1xuICAgICAgICBsZXQge25ld0NpZCwgX3RhcmdldCwgY2FsbGJhY2t9ID0gYXJnc1xuICAgICAgICBfdGFyZ2V0ID0gX3RhcmdldCB8fCAoc291cmNlRWwgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ID8gc291cmNlRWwubmFtZSA6IHVuZGVmaW5lZClcbiAgICAgICAgaWYoX3RhcmdldCl7IHB1c2hPcHRzLl90YXJnZXQgPSBfdGFyZ2V0IH1cbiAgICAgICAgdGFyZ2V0Vmlldy5wdXNoSW5wdXQoc291cmNlRWwsIHRhcmdldEN0eCwgbmV3Q2lkLCBldmVudCB8fCBwaHhFdmVudCwgcHVzaE9wdHMsIGNhbGxiYWNrKVxuICAgICAgfSBlbHNlIGlmKGV2ZW50VHlwZSA9PT0gXCJzdWJtaXRcIil7XG4gICAgICAgIHRhcmdldFZpZXcuc3VibWl0Rm9ybShzb3VyY2VFbCwgdGFyZ2V0Q3R4LCBldmVudCB8fCBwaHhFdmVudCwgcHVzaE9wdHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRWaWV3LnB1c2hFdmVudChldmVudFR5cGUsIHNvdXJjZUVsLCB0YXJnZXRDdHgsIGV2ZW50IHx8IHBoeEV2ZW50LCBkYXRhLCBwdXNoT3B0cylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuXG4gIGV4ZWNfYWRkX2NsYXNzKGV2ZW50VHlwZSwgcGh4RXZlbnQsIHZpZXcsIHNvdXJjZUVsLCBlbCwge25hbWVzLCB0cmFuc2l0aW9uLCB0aW1lfSl7XG4gICAgdGhpcy5hZGRPclJlbW92ZUNsYXNzZXMoZWwsIG5hbWVzLCBbXSwgdHJhbnNpdGlvbiwgdGltZSwgdmlldylcbiAgfSxcblxuICBleGVjX3JlbW92ZV9jbGFzcyhldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIHtuYW1lcywgdHJhbnNpdGlvbiwgdGltZX0pe1xuICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBbXSwgbmFtZXMsIHRyYW5zaXRpb24sIHRpbWUsIHZpZXcpXG4gIH0sXG5cbiAgZXhlY190cmFuc2l0aW9uKGV2ZW50VHlwZSwgcGh4RXZlbnQsIHZpZXcsIHNvdXJjZUVsLCBlbCwge3RpbWUsIHRyYW5zaXRpb259KXtcbiAgICBsZXQgW3RyYW5zaXRpb25fc3RhcnQsIHJ1bm5pbmcsIHRyYW5zaXRpb25fZW5kXSA9IHRyYW5zaXRpb25cbiAgICBsZXQgb25TdGFydCA9ICgpID0+IHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCB0cmFuc2l0aW9uX3N0YXJ0LmNvbmNhdChydW5uaW5nKSwgW10pXG4gICAgbGV0IG9uRG9uZSA9ICgpID0+IHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCB0cmFuc2l0aW9uX2VuZCwgdHJhbnNpdGlvbl9zdGFydC5jb25jYXQocnVubmluZykpXG4gICAgdmlldy50cmFuc2l0aW9uKHRpbWUsIG9uU3RhcnQsIG9uRG9uZSlcbiAgfSxcblxuICBleGVjX3RvZ2dsZShldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIHtkaXNwbGF5LCBpbnMsIG91dHMsIHRpbWV9KXtcbiAgICB0aGlzLnRvZ2dsZShldmVudFR5cGUsIHZpZXcsIGVsLCBkaXNwbGF5LCBpbnMsIG91dHMsIHRpbWUpXG4gIH0sXG5cbiAgZXhlY19zaG93KGV2ZW50VHlwZSwgcGh4RXZlbnQsIHZpZXcsIHNvdXJjZUVsLCBlbCwge2Rpc3BsYXksIHRyYW5zaXRpb24sIHRpbWV9KXtcbiAgICB0aGlzLnNob3coZXZlbnRUeXBlLCB2aWV3LCBlbCwgZGlzcGxheSwgdHJhbnNpdGlvbiwgdGltZSlcbiAgfSxcblxuICBleGVjX2hpZGUoZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCB7ZGlzcGxheSwgdHJhbnNpdGlvbiwgdGltZX0pe1xuICAgIHRoaXMuaGlkZShldmVudFR5cGUsIHZpZXcsIGVsLCBkaXNwbGF5LCB0cmFuc2l0aW9uLCB0aW1lKVxuICB9LFxuXG4gIGV4ZWNfc2V0X2F0dHIoZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCB7YXR0cjogW2F0dHIsIHZhbF19KXtcbiAgICB0aGlzLnNldE9yUmVtb3ZlQXR0cnMoZWwsIFtbYXR0ciwgdmFsXV0sIFtdKVxuICB9LFxuXG4gIGV4ZWNfcmVtb3ZlX2F0dHIoZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCB7YXR0cn0pe1xuICAgIHRoaXMuc2V0T3JSZW1vdmVBdHRycyhlbCwgW10sIFthdHRyXSlcbiAgfSxcblxuICAvLyB1dGlscyBmb3IgY29tbWFuZHNcblxuICBzaG93KGV2ZW50VHlwZSwgdmlldywgZWwsIGRpc3BsYXksIHRyYW5zaXRpb24sIHRpbWUpe1xuICAgIGlmKCF0aGlzLmlzVmlzaWJsZShlbCkpe1xuICAgICAgdGhpcy50b2dnbGUoZXZlbnRUeXBlLCB2aWV3LCBlbCwgZGlzcGxheSwgdHJhbnNpdGlvbiwgbnVsbCwgdGltZSlcbiAgICB9XG4gIH0sXG5cbiAgaGlkZShldmVudFR5cGUsIHZpZXcsIGVsLCBkaXNwbGF5LCB0cmFuc2l0aW9uLCB0aW1lKXtcbiAgICBpZih0aGlzLmlzVmlzaWJsZShlbCkpe1xuICAgICAgdGhpcy50b2dnbGUoZXZlbnRUeXBlLCB2aWV3LCBlbCwgZGlzcGxheSwgbnVsbCwgdHJhbnNpdGlvbiwgdGltZSlcbiAgICB9XG4gIH0sXG5cbiAgdG9nZ2xlKGV2ZW50VHlwZSwgdmlldywgZWwsIGRpc3BsYXksIGlucywgb3V0cywgdGltZSl7XG4gICAgbGV0IFtpbkNsYXNzZXMsIGluU3RhcnRDbGFzc2VzLCBpbkVuZENsYXNzZXNdID0gaW5zIHx8IFtbXSwgW10sIFtdXVxuICAgIGxldCBbb3V0Q2xhc3Nlcywgb3V0U3RhcnRDbGFzc2VzLCBvdXRFbmRDbGFzc2VzXSA9IG91dHMgfHwgW1tdLCBbXSwgW11dXG4gICAgaWYoaW5DbGFzc2VzLmxlbmd0aCA+IDAgfHwgb3V0Q2xhc3Nlcy5sZW5ndGggPiAwKXtcbiAgICAgIGlmKHRoaXMuaXNWaXNpYmxlKGVsKSl7XG4gICAgICAgIGxldCBvblN0YXJ0ID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBvdXRTdGFydENsYXNzZXMsIGluQ2xhc3Nlcy5jb25jYXQoaW5TdGFydENsYXNzZXMpLmNvbmNhdChpbkVuZENsYXNzZXMpKVxuICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGRPclJlbW92ZUNsYXNzZXMoZWwsIG91dENsYXNzZXMsIFtdKVxuICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgb3V0RW5kQ2xhc3Nlcywgb3V0U3RhcnRDbGFzc2VzKSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGh4OmhpZGUtc3RhcnRcIikpXG4gICAgICAgIHZpZXcudHJhbnNpdGlvbih0aW1lLCBvblN0YXJ0LCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRPclJlbW92ZUNsYXNzZXMoZWwsIFtdLCBvdXRDbGFzc2VzLmNvbmNhdChvdXRFbmRDbGFzc2VzKSlcbiAgICAgICAgICBET00ucHV0U3RpY2t5KGVsLCBcInRvZ2dsZVwiLCBjdXJyZW50RWwgPT4gY3VycmVudEVsLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIilcbiAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpoaWRlLWVuZFwiKSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKGV2ZW50VHlwZSA9PT0gXCJyZW1vdmVcIil7IHJldHVybiB9XG4gICAgICAgIGxldCBvblN0YXJ0ID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBpblN0YXJ0Q2xhc3Nlcywgb3V0Q2xhc3Nlcy5jb25jYXQob3V0U3RhcnRDbGFzc2VzKS5jb25jYXQob3V0RW5kQ2xhc3NlcykpXG4gICAgICAgICAgRE9NLnB1dFN0aWNreShlbCwgXCJ0b2dnbGVcIiwgY3VycmVudEVsID0+IGN1cnJlbnRFbC5zdHlsZS5kaXNwbGF5ID0gKGRpc3BsYXkgfHwgXCJibG9ja1wiKSlcbiAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBpbkNsYXNzZXMsIFtdKVxuICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgaW5FbmRDbGFzc2VzLCBpblN0YXJ0Q2xhc3NlcykpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpzaG93LXN0YXJ0XCIpKVxuICAgICAgICB2aWV3LnRyYW5zaXRpb24odGltZSwgb25TdGFydCwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBbXSwgaW5DbGFzc2VzLmNvbmNhdChpbkVuZENsYXNzZXMpKVxuICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGh4OnNob3ctZW5kXCIpKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZih0aGlzLmlzVmlzaWJsZShlbCkpe1xuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpoaWRlLXN0YXJ0XCIpKVxuICAgICAgICAgIERPTS5wdXRTdGlja3koZWwsIFwidG9nZ2xlXCIsIGN1cnJlbnRFbCA9PiBjdXJyZW50RWwuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiKVxuICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGh4OmhpZGUtZW5kXCIpKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwaHg6c2hvdy1zdGFydFwiKSlcbiAgICAgICAgICBET00ucHV0U3RpY2t5KGVsLCBcInRvZ2dsZVwiLCBjdXJyZW50RWwgPT4gY3VycmVudEVsLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5IHx8IFwiYmxvY2tcIilcbiAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpzaG93LWVuZFwiKSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBhZGRzLCByZW1vdmVzLCB0cmFuc2l0aW9uLCB0aW1lLCB2aWV3KXtcbiAgICBsZXQgW3RyYW5zaXRpb25fcnVuLCB0cmFuc2l0aW9uX3N0YXJ0LCB0cmFuc2l0aW9uX2VuZF0gPSB0cmFuc2l0aW9uIHx8IFtbXSwgW10sIFtdXVxuICAgIGlmKHRyYW5zaXRpb25fcnVuLmxlbmd0aCA+IDApe1xuICAgICAgbGV0IG9uU3RhcnQgPSAoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgdHJhbnNpdGlvbl9zdGFydC5jb25jYXQodHJhbnNpdGlvbl9ydW4pLCBbXSlcbiAgICAgIGxldCBvbkRvbmUgPSAoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgYWRkcy5jb25jYXQodHJhbnNpdGlvbl9lbmQpLCByZW1vdmVzLmNvbmNhdCh0cmFuc2l0aW9uX3J1bikuY29uY2F0KHRyYW5zaXRpb25fc3RhcnQpKVxuICAgICAgcmV0dXJuIHZpZXcudHJhbnNpdGlvbih0aW1lLCBvblN0YXJ0LCBvbkRvbmUpXG4gICAgfVxuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgbGV0IFtwcmV2QWRkcywgcHJldlJlbW92ZXNdID0gRE9NLmdldFN0aWNreShlbCwgXCJjbGFzc2VzXCIsIFtbXSwgW11dKVxuICAgICAgbGV0IGtlZXBBZGRzID0gYWRkcy5maWx0ZXIobmFtZSA9PiBwcmV2QWRkcy5pbmRleE9mKG5hbWUpIDwgMCAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKG5hbWUpKVxuICAgICAgbGV0IGtlZXBSZW1vdmVzID0gcmVtb3Zlcy5maWx0ZXIobmFtZSA9PiBwcmV2UmVtb3Zlcy5pbmRleE9mKG5hbWUpIDwgMCAmJiBlbC5jbGFzc0xpc3QuY29udGFpbnMobmFtZSkpXG4gICAgICBsZXQgbmV3QWRkcyA9IHByZXZBZGRzLmZpbHRlcihuYW1lID0+IHJlbW92ZXMuaW5kZXhPZihuYW1lKSA8IDApLmNvbmNhdChrZWVwQWRkcylcbiAgICAgIGxldCBuZXdSZW1vdmVzID0gcHJldlJlbW92ZXMuZmlsdGVyKG5hbWUgPT4gYWRkcy5pbmRleE9mKG5hbWUpIDwgMCkuY29uY2F0KGtlZXBSZW1vdmVzKVxuXG4gICAgICBET00ucHV0U3RpY2t5KGVsLCBcImNsYXNzZXNcIiwgY3VycmVudEVsID0+IHtcbiAgICAgICAgY3VycmVudEVsLmNsYXNzTGlzdC5yZW1vdmUoLi4ubmV3UmVtb3ZlcylcbiAgICAgICAgY3VycmVudEVsLmNsYXNzTGlzdC5hZGQoLi4ubmV3QWRkcylcbiAgICAgICAgcmV0dXJuIFtuZXdBZGRzLCBuZXdSZW1vdmVzXVxuICAgICAgfSlcbiAgICB9KVxuICB9LFxuXG4gIHNldE9yUmVtb3ZlQXR0cnMoZWwsIHNldHMsIHJlbW92ZXMpe1xuICAgIGxldCBbcHJldlNldHMsIHByZXZSZW1vdmVzXSA9IERPTS5nZXRTdGlja3koZWwsIFwiYXR0cnNcIiwgW1tdLCBbXV0pXG5cbiAgICBsZXQgYWx0ZXJlZEF0dHJzID0gc2V0cy5tYXAoKFthdHRyLCBfdmFsXSkgPT4gYXR0cikuY29uY2F0KHJlbW92ZXMpO1xuICAgIGxldCBuZXdTZXRzID0gcHJldlNldHMuZmlsdGVyKChbYXR0ciwgX3ZhbF0pID0+ICFhbHRlcmVkQXR0cnMuaW5jbHVkZXMoYXR0cikpLmNvbmNhdChzZXRzKTtcbiAgICBsZXQgbmV3UmVtb3ZlcyA9IHByZXZSZW1vdmVzLmZpbHRlcigoYXR0cikgPT4gIWFsdGVyZWRBdHRycy5pbmNsdWRlcyhhdHRyKSkuY29uY2F0KHJlbW92ZXMpO1xuXG4gICAgRE9NLnB1dFN0aWNreShlbCwgXCJhdHRyc1wiLCBjdXJyZW50RWwgPT4ge1xuICAgICAgbmV3UmVtb3Zlcy5mb3JFYWNoKGF0dHIgPT4gY3VycmVudEVsLnJlbW92ZUF0dHJpYnV0ZShhdHRyKSlcbiAgICAgIG5ld1NldHMuZm9yRWFjaCgoW2F0dHIsIHZhbF0pID0+IGN1cnJlbnRFbC5zZXRBdHRyaWJ1dGUoYXR0ciwgdmFsKSlcbiAgICAgIHJldHVybiBbbmV3U2V0cywgbmV3UmVtb3Zlc11cbiAgICB9KVxuICB9LFxuXG4gIGhhc0FsbENsYXNzZXMoZWwsIGNsYXNzZXMpeyByZXR1cm4gY2xhc3Nlcy5ldmVyeShuYW1lID0+IGVsLmNsYXNzTGlzdC5jb250YWlucyhuYW1lKSkgfSxcblxuICBpc1RvZ2dsZWRPdXQoZWwsIG91dENsYXNzZXMpe1xuICAgIHJldHVybiAhdGhpcy5pc1Zpc2libGUoZWwpIHx8IHRoaXMuaGFzQWxsQ2xhc3NlcyhlbCwgb3V0Q2xhc3NlcylcbiAgfSxcblxuICBmaWx0ZXJUb0Vscyhzb3VyY2VFbCwge3RvfSl7XG4gICAgcmV0dXJuIHRvID8gRE9NLmFsbChkb2N1bWVudCwgdG8pIDogW3NvdXJjZUVsXVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEpTXG4iLCAiaW1wb3J0IHtcbiAgQkVGT1JFX1VOTE9BRF9MT0FERVJfVElNRU9VVCxcbiAgQ0hFQ0tBQkxFX0lOUFVUUyxcbiAgQ09OU0VDVVRJVkVfUkVMT0FEUyxcbiAgUEhYX0FVVE9fUkVDT1ZFUixcbiAgUEhYX0NPTVBPTkVOVCxcbiAgUEhYX0NPTk5FQ1RFRF9DTEFTUyxcbiAgUEhYX0RJU0FCTEVfV0lUSCxcbiAgUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFLFxuICBQSFhfRElTQUJMRUQsXG4gIFBIWF9ESVNDT05ORUNURURfQ0xBU1MsXG4gIFBIWF9FVkVOVF9DTEFTU0VTLFxuICBQSFhfRVJST1JfQ0xBU1MsXG4gIFBIWF9GRUVEQkFDS19GT1IsXG4gIFBIWF9IQVNfU1VCTUlUVEVELFxuICBQSFhfSE9PSyxcbiAgUEhYX1BBR0VfTE9BRElORyxcbiAgUEhYX1BBUkVOVF9JRCxcbiAgUEhYX1BST0dSRVNTLFxuICBQSFhfUkVBRE9OTFksXG4gIFBIWF9SRUYsXG4gIFBIWF9SRUZfU1JDLFxuICBQSFhfUk9PVF9JRCxcbiAgUEhYX1NFU1NJT04sXG4gIFBIWF9TVEFUSUMsXG4gIFBIWF9UUkFDS19TVEFUSUMsXG4gIFBIWF9UUkFDS19VUExPQURTLFxuICBQSFhfVVBEQVRFLFxuICBQSFhfVVBMT0FEX1JFRixcbiAgUEhYX1ZJRVdfU0VMRUNUT1IsXG4gIFBVU0hfVElNRU9VVCxcbiAgUEhYX01BSU4sXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCB7XG4gIGNsb25lLFxuICBjbG9zZXN0UGh4QmluZGluZyxcbiAgaXNFbXB0eSxcbiAgaXNFcXVhbE9iaixcbiAgbG9nRXJyb3IsXG4gIG1heWJlLFxuICBpc0NpZCxcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5pbXBvcnQgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCJcbmltcG9ydCBET00gZnJvbSBcIi4vZG9tXCJcbmltcG9ydCBET01QYXRjaCBmcm9tIFwiLi9kb21fcGF0Y2hcIlxuaW1wb3J0IExpdmVVcGxvYWRlciBmcm9tIFwiLi9saXZlX3VwbG9hZGVyXCJcbmltcG9ydCBSZW5kZXJlZCBmcm9tIFwiLi9yZW5kZXJlZFwiXG5pbXBvcnQgVmlld0hvb2sgZnJvbSBcIi4vdmlld19ob29rXCJcbmltcG9ydCBKUyBmcm9tIFwiLi9qc1wiXG5cbmxldCBzZXJpYWxpemVGb3JtID0gKGZvcm0sIG1ldGEsIG9ubHlOYW1lcyA9IFtdKSA9PiB7XG4gIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YShmb3JtKVxuICBsZXQgdG9SZW1vdmUgPSBbXVxuXG4gIGZvcm1EYXRhLmZvckVhY2goKHZhbCwga2V5LCBfaW5kZXgpID0+IHtcbiAgICBpZih2YWwgaW5zdGFuY2VvZiBGaWxlKXsgdG9SZW1vdmUucHVzaChrZXkpIH1cbiAgfSlcblxuICAvLyBDbGVhbnVwIGFmdGVyIGJ1aWxkaW5nIGZpbGVEYXRhXG4gIHRvUmVtb3ZlLmZvckVhY2goa2V5ID0+IGZvcm1EYXRhLmRlbGV0ZShrZXkpKVxuXG4gIGxldCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yKGxldCBba2V5LCB2YWxdIG9mIGZvcm1EYXRhLmVudHJpZXMoKSl7XG4gICAgaWYob25seU5hbWVzLmxlbmd0aCA9PT0gMCB8fCBvbmx5TmFtZXMuaW5kZXhPZihrZXkpID49IDApe1xuICAgICAgcGFyYW1zLmFwcGVuZChrZXksIHZhbClcbiAgICB9XG4gIH1cbiAgZm9yKGxldCBtZXRhS2V5IGluIG1ldGEpeyBwYXJhbXMuYXBwZW5kKG1ldGFLZXksIG1ldGFbbWV0YUtleV0pIH1cblxuICByZXR1cm4gcGFyYW1zLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlldyB7XG4gIGNvbnN0cnVjdG9yKGVsLCBsaXZlU29ja2V0LCBwYXJlbnRWaWV3LCBmbGFzaCl7XG4gICAgdGhpcy5saXZlU29ja2V0ID0gbGl2ZVNvY2tldFxuICAgIHRoaXMuZmxhc2ggPSBmbGFzaFxuICAgIHRoaXMucGFyZW50ID0gcGFyZW50Vmlld1xuICAgIHRoaXMucm9vdCA9IHBhcmVudFZpZXcgPyBwYXJlbnRWaWV3LnJvb3QgOiB0aGlzXG4gICAgdGhpcy5lbCA9IGVsXG4gICAgdGhpcy5pZCA9IHRoaXMuZWwuaWRcbiAgICB0aGlzLnJlZiA9IDBcbiAgICB0aGlzLmNoaWxkSm9pbnMgPSAwXG4gICAgdGhpcy5sb2FkZXJUaW1lciA9IG51bGxcbiAgICB0aGlzLnBlbmRpbmdEaWZmcyA9IFtdXG4gICAgdGhpcy5wcnVuaW5nQ0lEcyA9IFtdXG4gICAgdGhpcy5yZWRpcmVjdCA9IGZhbHNlXG4gICAgdGhpcy5ocmVmID0gbnVsbFxuICAgIHRoaXMuam9pbkNvdW50ID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5qb2luQ291bnQgLSAxIDogMFxuICAgIHRoaXMuam9pblBlbmRpbmcgPSB0cnVlXG4gICAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZVxuICAgIHRoaXMuam9pbkNhbGxiYWNrID0gZnVuY3Rpb24ob25Eb25lKXsgb25Eb25lICYmIG9uRG9uZSgpIH1cbiAgICB0aGlzLnN0b3BDYWxsYmFjayA9IGZ1bmN0aW9uKCl7IH1cbiAgICB0aGlzLnBlbmRpbmdKb2luT3BzID0gdGhpcy5wYXJlbnQgPyBudWxsIDogW11cbiAgICB0aGlzLnZpZXdIb29rcyA9IHt9XG4gICAgdGhpcy51cGxvYWRlcnMgPSB7fVxuICAgIHRoaXMuZm9ybVN1Ym1pdHMgPSBbXVxuICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLnBhcmVudCA/IG51bGwgOiB7fVxuICAgIHRoaXMucm9vdC5jaGlsZHJlblt0aGlzLmlkXSA9IHt9XG4gICAgdGhpcy5jaGFubmVsID0gdGhpcy5saXZlU29ja2V0LmNoYW5uZWwoYGx2OiR7dGhpcy5pZH1gLCAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdDogdGhpcy5yZWRpcmVjdCA/IHRoaXMuaHJlZiA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXJsOiB0aGlzLnJlZGlyZWN0ID8gdW5kZWZpbmVkIDogdGhpcy5ocmVmIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcGFyYW1zOiB0aGlzLmNvbm5lY3RQYXJhbXMoKSxcbiAgICAgICAgc2Vzc2lvbjogdGhpcy5nZXRTZXNzaW9uKCksXG4gICAgICAgIHN0YXRpYzogdGhpcy5nZXRTdGF0aWMoKSxcbiAgICAgICAgZmxhc2g6IHRoaXMuZmxhc2hcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuc2hvd0xvYWRlcih0aGlzLmxpdmVTb2NrZXQubG9hZGVyVGltZW91dClcbiAgICB0aGlzLmJpbmRDaGFubmVsKClcbiAgfVxuXG4gIHNldEhyZWYoaHJlZil7IHRoaXMuaHJlZiA9IGhyZWYgfVxuXG4gIHNldFJlZGlyZWN0KGhyZWYpe1xuICAgIHRoaXMucmVkaXJlY3QgPSB0cnVlXG4gICAgdGhpcy5ocmVmID0gaHJlZlxuICB9XG5cbiAgaXNNYWluKCl7IHJldHVybiB0aGlzLmVsLmhhc0F0dHJpYnV0ZShQSFhfTUFJTikgfVxuXG4gIGNvbm5lY3RQYXJhbXMoKXtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5saXZlU29ja2V0LnBhcmFtcyh0aGlzLmVsKVxuICAgIGxldCBtYW5pZmVzdCA9XG4gICAgICBET00uYWxsKGRvY3VtZW50LCBgWyR7dGhpcy5iaW5kaW5nKFBIWF9UUkFDS19TVEFUSUMpfV1gKVxuICAgICAgICAubWFwKG5vZGUgPT4gbm9kZS5zcmMgfHwgbm9kZS5ocmVmKS5maWx0ZXIodXJsID0+IHR5cGVvZiAodXJsKSA9PT0gXCJzdHJpbmdcIilcblxuICAgIGlmKG1hbmlmZXN0Lmxlbmd0aCA+IDApeyBwYXJhbXNbXCJfdHJhY2tfc3RhdGljXCJdID0gbWFuaWZlc3QgfVxuICAgIHBhcmFtc1tcIl9tb3VudHNcIl0gPSB0aGlzLmpvaW5Db3VudFxuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG5cbiAgaXNDb25uZWN0ZWQoKXsgcmV0dXJuIHRoaXMuY2hhbm5lbC5jYW5QdXNoKCkgfVxuXG4gIGdldFNlc3Npb24oKXsgcmV0dXJuIHRoaXMuZWwuZ2V0QXR0cmlidXRlKFBIWF9TRVNTSU9OKSB9XG5cbiAgZ2V0U3RhdGljKCl7XG4gICAgbGV0IHZhbCA9IHRoaXMuZWwuZ2V0QXR0cmlidXRlKFBIWF9TVEFUSUMpXG4gICAgcmV0dXJuIHZhbCA9PT0gXCJcIiA/IG51bGwgOiB2YWxcbiAgfVxuXG4gIGRlc3Ryb3koY2FsbGJhY2sgPSBmdW5jdGlvbiAoKXsgfSl7XG4gICAgdGhpcy5kZXN0cm95QWxsQ2hpbGRyZW4oKVxuICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZVxuICAgIGRlbGV0ZSB0aGlzLnJvb3QuY2hpbGRyZW5bdGhpcy5pZF1cbiAgICBpZih0aGlzLnBhcmVudCl7IGRlbGV0ZSB0aGlzLnJvb3QuY2hpbGRyZW5bdGhpcy5wYXJlbnQuaWRdW3RoaXMuaWRdIH1cbiAgICBjbGVhclRpbWVvdXQodGhpcy5sb2FkZXJUaW1lcilcbiAgICBsZXQgb25GaW5pc2hlZCA9ICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKClcbiAgICAgIGZvcihsZXQgaWQgaW4gdGhpcy52aWV3SG9va3Mpe1xuICAgICAgICB0aGlzLmRlc3Ryb3lIb29rKHRoaXMudmlld0hvb2tzW2lkXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBET00ubWFya1BoeENoaWxkRGVzdHJveWVkKHRoaXMuZWwpXG5cbiAgICB0aGlzLmxvZyhcImRlc3Ryb3llZFwiLCAoKSA9PiBbXCJ0aGUgY2hpbGQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwYXJlbnRcIl0pXG4gICAgdGhpcy5jaGFubmVsLmxlYXZlKClcbiAgICAgIC5yZWNlaXZlKFwib2tcIiwgb25GaW5pc2hlZClcbiAgICAgIC5yZWNlaXZlKFwiZXJyb3JcIiwgb25GaW5pc2hlZClcbiAgICAgIC5yZWNlaXZlKFwidGltZW91dFwiLCBvbkZpbmlzaGVkKVxuICB9XG5cbiAgc2V0Q29udGFpbmVyQ2xhc3NlcyguLi5jbGFzc2VzKXtcbiAgICB0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICBQSFhfQ09OTkVDVEVEX0NMQVNTLFxuICAgICAgUEhYX0RJU0NPTk5FQ1RFRF9DTEFTUyxcbiAgICAgIFBIWF9FUlJPUl9DTEFTU1xuICAgIClcbiAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoLi4uY2xhc3NlcylcbiAgfVxuXG4gIHNob3dMb2FkZXIodGltZW91dCl7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubG9hZGVyVGltZXIpXG4gICAgaWYodGltZW91dCl7XG4gICAgICB0aGlzLmxvYWRlclRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dMb2FkZXIoKSwgdGltZW91dClcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yKGxldCBpZCBpbiB0aGlzLnZpZXdIb29rcyl7IHRoaXMudmlld0hvb2tzW2lkXS5fX2Rpc2Nvbm5lY3RlZCgpIH1cbiAgICAgIHRoaXMuc2V0Q29udGFpbmVyQ2xhc3NlcyhQSFhfRElTQ09OTkVDVEVEX0NMQVNTKVxuICAgIH1cbiAgfVxuXG4gIGhpZGVMb2FkZXIoKXtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5sb2FkZXJUaW1lcilcbiAgICB0aGlzLnNldENvbnRhaW5lckNsYXNzZXMoUEhYX0NPTk5FQ1RFRF9DTEFTUylcbiAgfVxuXG4gIHRyaWdnZXJSZWNvbm5lY3RlZCgpe1xuICAgIGZvcihsZXQgaWQgaW4gdGhpcy52aWV3SG9va3MpeyB0aGlzLnZpZXdIb29rc1tpZF0uX19yZWNvbm5lY3RlZCgpIH1cbiAgfVxuXG4gIGxvZyhraW5kLCBtc2dDYWxsYmFjayl7XG4gICAgdGhpcy5saXZlU29ja2V0LmxvZyh0aGlzLCBraW5kLCBtc2dDYWxsYmFjaylcbiAgfVxuXG4gIHRyYW5zaXRpb24odGltZSwgb25TdGFydCwgb25Eb25lID0gZnVuY3Rpb24oKXt9KXtcbiAgICB0aGlzLmxpdmVTb2NrZXQudHJhbnNpdGlvbih0aW1lLCBvblN0YXJ0LCBvbkRvbmUpXG4gIH1cblxuICB3aXRoaW5UYXJnZXRzKHBoeFRhcmdldCwgY2FsbGJhY2spe1xuICAgIGlmKHBoeFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50IHx8IHBoeFRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpe1xuICAgICAgcmV0dXJuIHRoaXMubGl2ZVNvY2tldC5vd25lcihwaHhUYXJnZXQsIHZpZXcgPT4gY2FsbGJhY2sodmlldywgcGh4VGFyZ2V0KSlcbiAgICB9XG5cbiAgICBpZihpc0NpZChwaHhUYXJnZXQpKXtcbiAgICAgIGxldCB0YXJnZXRzID0gRE9NLmZpbmRDb21wb25lbnROb2RlTGlzdCh0aGlzLmVsLCBwaHhUYXJnZXQpXG4gICAgICBpZih0YXJnZXRzLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgIGxvZ0Vycm9yKGBubyBjb21wb25lbnQgZm91bmQgbWF0Y2hpbmcgcGh4LXRhcmdldCBvZiAke3BoeFRhcmdldH1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsbGJhY2sodGhpcywgcGFyc2VJbnQocGh4VGFyZ2V0KSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRhcmdldHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocGh4VGFyZ2V0KSlcbiAgICAgIGlmKHRhcmdldHMubGVuZ3RoID09PSAwKXsgbG9nRXJyb3IoYG5vdGhpbmcgZm91bmQgbWF0Y2hpbmcgdGhlIHBoeC10YXJnZXQgc2VsZWN0b3IgXCIke3BoeFRhcmdldH1cImApIH1cbiAgICAgIHRhcmdldHMuZm9yRWFjaCh0YXJnZXQgPT4gdGhpcy5saXZlU29ja2V0Lm93bmVyKHRhcmdldCwgdmlldyA9PiBjYWxsYmFjayh2aWV3LCB0YXJnZXQpKSlcbiAgICB9XG4gIH1cblxuICBhcHBseURpZmYodHlwZSwgcmF3RGlmZiwgY2FsbGJhY2spe1xuICAgIHRoaXMubG9nKHR5cGUsICgpID0+IFtcIlwiLCBjbG9uZShyYXdEaWZmKV0pXG4gICAgbGV0IHtkaWZmLCByZXBseSwgZXZlbnRzLCB0aXRsZX0gPSBSZW5kZXJlZC5leHRyYWN0KHJhd0RpZmYpXG4gICAgaWYodGl0bGUpeyBET00ucHV0VGl0bGUodGl0bGUpIH1cblxuICAgIGNhbGxiYWNrKHtkaWZmLCByZXBseSwgZXZlbnRzfSlcbiAgICByZXR1cm4gcmVwbHlcbiAgfVxuXG4gIG9uSm9pbihyZXNwKXtcbiAgICBsZXQge3JlbmRlcmVkLCBjb250YWluZXJ9ID0gcmVzcFxuICAgIGlmKGNvbnRhaW5lcil7XG4gICAgICBsZXQgW3RhZywgYXR0cnNdID0gY29udGFpbmVyXG4gICAgICB0aGlzLmVsID0gRE9NLnJlcGxhY2VSb290Q29udGFpbmVyKHRoaXMuZWwsIHRhZywgYXR0cnMpXG4gICAgfVxuICAgIHRoaXMuY2hpbGRKb2lucyA9IDBcbiAgICB0aGlzLmpvaW5QZW5kaW5nID0gdHJ1ZVxuICAgIHRoaXMuZmxhc2ggPSBudWxsXG5cbiAgICBCcm93c2VyLmRyb3BMb2NhbCh0aGlzLmxpdmVTb2NrZXQubG9jYWxTdG9yYWdlLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIENPTlNFQ1VUSVZFX1JFTE9BRFMpXG4gICAgdGhpcy5hcHBseURpZmYoXCJtb3VudFwiLCByZW5kZXJlZCwgKHtkaWZmLCBldmVudHN9KSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVkID0gbmV3IFJlbmRlcmVkKHRoaXMuaWQsIGRpZmYpXG4gICAgICBsZXQgaHRtbCA9IHRoaXMucmVuZGVyQ29udGFpbmVyKG51bGwsIFwiam9pblwiKVxuICAgICAgdGhpcy5kcm9wUGVuZGluZ1JlZnMoKVxuICAgICAgbGV0IGZvcm1zID0gdGhpcy5mb3Jtc0ZvclJlY292ZXJ5KGh0bWwpXG4gICAgICB0aGlzLmpvaW5Db3VudCsrXG5cbiAgICAgIGlmKGZvcm1zLmxlbmd0aCA+IDApe1xuICAgICAgICBmb3Jtcy5mb3JFYWNoKChbZm9ybSwgbmV3Rm9ybSwgbmV3Q2lkXSwgaSkgPT4ge1xuICAgICAgICAgIHRoaXMucHVzaEZvcm1SZWNvdmVyeShmb3JtLCBuZXdDaWQsIHJlc3AgPT4ge1xuICAgICAgICAgICAgaWYoaSA9PT0gZm9ybXMubGVuZ3RoIC0gMSl7XG4gICAgICAgICAgICAgIHRoaXMub25Kb2luQ29tcGxldGUocmVzcCwgaHRtbCwgZXZlbnRzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uSm9pbkNvbXBsZXRlKHJlc3AsIGh0bWwsIGV2ZW50cylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZHJvcFBlbmRpbmdSZWZzKCl7XG4gICAgRE9NLmFsbChkb2N1bWVudCwgYFske1BIWF9SRUZfU1JDfT1cIiR7dGhpcy5pZH1cIl1bJHtQSFhfUkVGfV1gLCBlbCA9PiB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX1JFRilcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShQSFhfUkVGX1NSQylcbiAgICB9KVxuICB9XG5cbiAgb25Kb2luQ29tcGxldGUoe2xpdmVfcGF0Y2h9LCBodG1sLCBldmVudHMpe1xuICAgIC8vIEluIG9yZGVyIHRvIHByb3ZpZGUgYSBiZXR0ZXIgZXhwZXJpZW5jZSwgd2Ugd2FudCB0byBqb2luXG4gICAgLy8gYWxsIExpdmVWaWV3cyBmaXJzdCBhbmQgb25seSB0aGVuIGFwcGx5IHRoZWlyIHBhdGNoZXMuXG4gICAgaWYodGhpcy5qb2luQ291bnQgPiAxIHx8ICh0aGlzLnBhcmVudCAmJiAhdGhpcy5wYXJlbnQuaXNKb2luUGVuZGluZygpKSl7XG4gICAgICByZXR1cm4gdGhpcy5hcHBseUpvaW5QYXRjaChsaXZlX3BhdGNoLCBodG1sLCBldmVudHMpXG4gICAgfVxuXG4gICAgLy8gT25lIGRvd25zaWRlIG9mIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCB3ZSBuZWVkIHRvIGZpbmQgcGh4Q2hpbGRyZW5cbiAgICAvLyBpbiB0aGUgaHRtbCBmcmFnbWVudCwgaW5zdGVhZCBvZiBkaXJlY3RseSBvbiB0aGUgRE9NLiBUaGUgZnJhZ21lbnRcbiAgICAvLyBhbHNvIGRvZXMgbm90IGluY2x1ZGUgUEhYX1NUQVRJQywgc28gd2UgbmVlZCB0byBjb3B5IGl0IG92ZXIgZnJvbVxuICAgIC8vIHRoZSBET00uXG4gICAgbGV0IG5ld0NoaWxkcmVuID0gRE9NLmZpbmRQaHhDaGlsZHJlbkluRnJhZ21lbnQoaHRtbCwgdGhpcy5pZCkuZmlsdGVyKHRvRWwgPT4ge1xuICAgICAgbGV0IGZyb21FbCA9IHRvRWwuaWQgJiYgdGhpcy5lbC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke3RvRWwuaWR9XCJdYClcbiAgICAgIGxldCBwaHhTdGF0aWMgPSBmcm9tRWwgJiYgZnJvbUVsLmdldEF0dHJpYnV0ZShQSFhfU1RBVElDKVxuICAgICAgaWYocGh4U3RhdGljKXsgdG9FbC5zZXRBdHRyaWJ1dGUoUEhYX1NUQVRJQywgcGh4U3RhdGljKSB9XG4gICAgICByZXR1cm4gdGhpcy5qb2luQ2hpbGQodG9FbClcbiAgICB9KVxuXG4gICAgaWYobmV3Q2hpbGRyZW4ubGVuZ3RoID09PSAwKXtcbiAgICAgIGlmKHRoaXMucGFyZW50KXtcbiAgICAgICAgdGhpcy5yb290LnBlbmRpbmdKb2luT3BzLnB1c2goW3RoaXMsICgpID0+IHRoaXMuYXBwbHlKb2luUGF0Y2gobGl2ZV9wYXRjaCwgaHRtbCwgZXZlbnRzKV0pXG4gICAgICAgIHRoaXMucGFyZW50LmFja0pvaW4odGhpcylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25BbGxDaGlsZEpvaW5zQ29tcGxldGUoKVxuICAgICAgICB0aGlzLmFwcGx5Sm9pblBhdGNoKGxpdmVfcGF0Y2gsIGh0bWwsIGV2ZW50cylcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb290LnBlbmRpbmdKb2luT3BzLnB1c2goW3RoaXMsICgpID0+IHRoaXMuYXBwbHlKb2luUGF0Y2gobGl2ZV9wYXRjaCwgaHRtbCwgZXZlbnRzKV0pXG4gICAgfVxuICB9XG5cbiAgYXR0YWNoVHJ1ZURvY0VsKCl7XG4gICAgdGhpcy5lbCA9IERPTS5ieUlkKHRoaXMuaWQpXG4gICAgdGhpcy5lbC5zZXRBdHRyaWJ1dGUoUEhYX1JPT1RfSUQsIHRoaXMucm9vdC5pZClcbiAgfVxuXG4gIGFwcGx5Sm9pblBhdGNoKGxpdmVfcGF0Y2gsIGh0bWwsIGV2ZW50cyl7XG4gICAgdGhpcy5hdHRhY2hUcnVlRG9jRWwoKVxuICAgIGxldCBwYXRjaCA9IG5ldyBET01QYXRjaCh0aGlzLCB0aGlzLmVsLCB0aGlzLmlkLCBodG1sLCBudWxsKVxuICAgIHBhdGNoLm1hcmtQcnVuYWJsZUNvbnRlbnRGb3JSZW1vdmFsKClcbiAgICB0aGlzLnBlcmZvcm1QYXRjaChwYXRjaCwgZmFsc2UpXG4gICAgdGhpcy5qb2luTmV3Q2hpbGRyZW4oKVxuICAgIERPTS5hbGwodGhpcy5lbCwgYFske3RoaXMuYmluZGluZyhQSFhfSE9PSyl9XSwgW2RhdGEtcGh4LSR7UEhYX0hPT0t9XWAsIGhvb2tFbCA9PiB7XG4gICAgICBsZXQgaG9vayA9IHRoaXMuYWRkSG9vayhob29rRWwpXG4gICAgICBpZihob29rKXsgaG9vay5fX21vdW50ZWQoKSB9XG4gICAgfSlcblxuICAgIHRoaXMuam9pblBlbmRpbmcgPSBmYWxzZVxuICAgIHRoaXMubGl2ZVNvY2tldC5kaXNwYXRjaEV2ZW50cyhldmVudHMpXG4gICAgdGhpcy5hcHBseVBlbmRpbmdVcGRhdGVzKClcblxuICAgIGlmKGxpdmVfcGF0Y2gpe1xuICAgICAgbGV0IHtraW5kLCB0b30gPSBsaXZlX3BhdGNoXG4gICAgICB0aGlzLmxpdmVTb2NrZXQuaGlzdG9yeVBhdGNoKHRvLCBraW5kKVxuICAgIH1cbiAgICB0aGlzLmhpZGVMb2FkZXIoKVxuICAgIGlmKHRoaXMuam9pbkNvdW50ID4gMSl7IHRoaXMudHJpZ2dlclJlY29ubmVjdGVkKCkgfVxuICAgIHRoaXMuc3RvcENhbGxiYWNrKClcbiAgfVxuXG4gIHRyaWdnZXJCZWZvcmVVcGRhdGVIb29rKGZyb21FbCwgdG9FbCl7XG4gICAgdGhpcy5saXZlU29ja2V0LnRyaWdnZXJET00oXCJvbkJlZm9yZUVsVXBkYXRlZFwiLCBbZnJvbUVsLCB0b0VsXSlcbiAgICBsZXQgaG9vayA9IHRoaXMuZ2V0SG9vayhmcm9tRWwpXG4gICAgbGV0IGlzSWdub3JlZCA9IGhvb2sgJiYgRE9NLmlzSWdub3JlZChmcm9tRWwsIHRoaXMuYmluZGluZyhQSFhfVVBEQVRFKSlcbiAgICBpZihob29rICYmICFmcm9tRWwuaXNFcXVhbE5vZGUodG9FbCkgJiYgIShpc0lnbm9yZWQgJiYgaXNFcXVhbE9iaihmcm9tRWwuZGF0YXNldCwgdG9FbC5kYXRhc2V0KSkpe1xuICAgICAgaG9vay5fX2JlZm9yZVVwZGF0ZSgpXG4gICAgICByZXR1cm4gaG9va1xuICAgIH1cbiAgfVxuXG4gIHBlcmZvcm1QYXRjaChwYXRjaCwgcHJ1bmVDaWRzKXtcbiAgICBsZXQgcmVtb3ZlZEVscyA9IFtdXG4gICAgbGV0IHBoeENoaWxkcmVuQWRkZWQgPSBmYWxzZVxuICAgIGxldCB1cGRhdGVkSG9va0lkcyA9IG5ldyBTZXQoKVxuXG4gICAgcGF0Y2guYWZ0ZXIoXCJhZGRlZFwiLCBlbCA9PiB7XG4gICAgICB0aGlzLmxpdmVTb2NrZXQudHJpZ2dlckRPTShcIm9uTm9kZUFkZGVkXCIsIFtlbF0pXG5cbiAgICAgIGxldCBuZXdIb29rID0gdGhpcy5hZGRIb29rKGVsKVxuICAgICAgaWYobmV3SG9vayl7IG5ld0hvb2suX19tb3VudGVkKCkgfVxuICAgIH0pXG5cbiAgICBwYXRjaC5hZnRlcihcInBoeENoaWxkQWRkZWRcIiwgZWwgPT4ge1xuICAgICAgaWYoRE9NLmlzUGh4U3RpY2t5KGVsKSl7XG4gICAgICAgIHRoaXMubGl2ZVNvY2tldC5qb2luUm9vdFZpZXdzKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBoeENoaWxkcmVuQWRkZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcblxuICAgIHBhdGNoLmJlZm9yZShcInVwZGF0ZWRcIiwgKGZyb21FbCwgdG9FbCkgPT4ge1xuICAgICAgbGV0IGhvb2sgPSB0aGlzLnRyaWdnZXJCZWZvcmVVcGRhdGVIb29rKGZyb21FbCwgdG9FbClcbiAgICAgIGlmKGhvb2speyB1cGRhdGVkSG9va0lkcy5hZGQoZnJvbUVsLmlkKSB9XG4gICAgfSlcblxuICAgIHBhdGNoLmFmdGVyKFwidXBkYXRlZFwiLCBlbCA9PiB7XG4gICAgICBpZih1cGRhdGVkSG9va0lkcy5oYXMoZWwuaWQpKXsgdGhpcy5nZXRIb29rKGVsKS5fX3VwZGF0ZWQoKSB9XG4gICAgfSlcblxuICAgIHBhdGNoLmFmdGVyKFwiZGlzY2FyZGVkXCIsIChlbCkgPT4ge1xuICAgICAgaWYoZWwubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKXsgcmVtb3ZlZEVscy5wdXNoKGVsKSB9XG4gICAgfSlcblxuICAgIHBhdGNoLmFmdGVyKFwidHJhbnNpdGlvbnNEaXNjYXJkZWRcIiwgZWxzID0+IHRoaXMuYWZ0ZXJFbGVtZW50c1JlbW92ZWQoZWxzLCBwcnVuZUNpZHMpKVxuICAgIHBhdGNoLnBlcmZvcm0oKVxuICAgIHRoaXMuYWZ0ZXJFbGVtZW50c1JlbW92ZWQocmVtb3ZlZEVscywgcHJ1bmVDaWRzKVxuXG4gICAgcmV0dXJuIHBoeENoaWxkcmVuQWRkZWRcbiAgfVxuXG4gIGFmdGVyRWxlbWVudHNSZW1vdmVkKGVsZW1lbnRzLCBwcnVuZUNpZHMpe1xuICAgIGxldCBkZXN0cm95ZWRDSURzID0gW11cbiAgICBlbGVtZW50cy5mb3JFYWNoKHBhcmVudCA9PiB7XG4gICAgICBsZXQgY29tcG9uZW50cyA9IERPTS5hbGwocGFyZW50LCBgWyR7UEhYX0NPTVBPTkVOVH1dYClcbiAgICAgIGxldCBob29rcyA9IERPTS5hbGwocGFyZW50LCBgWyR7dGhpcy5iaW5kaW5nKFBIWF9IT09LKX1dYClcbiAgICAgIGNvbXBvbmVudHMuY29uY2F0KHBhcmVudCkuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGxldCBjaWQgPSB0aGlzLmNvbXBvbmVudElEKGVsKVxuICAgICAgICBpZihpc0NpZChjaWQpICYmIGRlc3Ryb3llZENJRHMuaW5kZXhPZihjaWQpID09PSAtMSl7IGRlc3Ryb3llZENJRHMucHVzaChjaWQpIH1cbiAgICAgIH0pXG4gICAgICBob29rcy5jb25jYXQocGFyZW50KS5mb3JFYWNoKGhvb2tFbCA9PiB7XG4gICAgICAgIGxldCBob29rID0gdGhpcy5nZXRIb29rKGhvb2tFbClcbiAgICAgICAgaG9vayAmJiB0aGlzLmRlc3Ryb3lIb29rKGhvb2spXG4gICAgICB9KVxuICAgIH0pXG4gICAgLy8gV2Ugc2hvdWxkIG5vdCBwcnVuZUNpZHMgb24gam9pbnMuIE90aGVyd2lzZSwgaW4gY2FzZSBvZlxuICAgIC8vIHJlam9pbnMsIHdlIG1heSBub3RpZnkgY2lkcyB0aGF0IG5vIGxvbmdlciBiZWxvbmcgdG8gdGhlXG4gICAgLy8gY3VycmVudCBMaXZlVmlldyB0byBiZSByZW1vdmVkLlxuICAgIGlmKHBydW5lQ2lkcyl7XG4gICAgICB0aGlzLm1heWJlUHVzaENvbXBvbmVudHNEZXN0cm95ZWQoZGVzdHJveWVkQ0lEcylcbiAgICB9XG4gIH1cblxuICBqb2luTmV3Q2hpbGRyZW4oKXtcbiAgICBET00uZmluZFBoeENoaWxkcmVuKHRoaXMuZWwsIHRoaXMuaWQpLmZvckVhY2goZWwgPT4gdGhpcy5qb2luQ2hpbGQoZWwpKVxuICB9XG5cbiAgZ2V0Q2hpbGRCeUlkKGlkKXsgcmV0dXJuIHRoaXMucm9vdC5jaGlsZHJlblt0aGlzLmlkXVtpZF0gfVxuXG4gIGdldERlc2NlbmRlbnRCeUVsKGVsKXtcbiAgICBpZihlbC5pZCA9PT0gdGhpcy5pZCl7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltlbC5nZXRBdHRyaWJ1dGUoUEhYX1BBUkVOVF9JRCldW2VsLmlkXVxuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3lEZXNjZW5kZW50KGlkKXtcbiAgICBmb3IobGV0IHBhcmVudElkIGluIHRoaXMucm9vdC5jaGlsZHJlbil7XG4gICAgICBmb3IobGV0IGNoaWxkSWQgaW4gdGhpcy5yb290LmNoaWxkcmVuW3BhcmVudElkXSl7XG4gICAgICAgIGlmKGNoaWxkSWQgPT09IGlkKXsgcmV0dXJuIHRoaXMucm9vdC5jaGlsZHJlbltwYXJlbnRJZF1bY2hpbGRJZF0uZGVzdHJveSgpIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBqb2luQ2hpbGQoZWwpe1xuICAgIGxldCBjaGlsZCA9IHRoaXMuZ2V0Q2hpbGRCeUlkKGVsLmlkKVxuICAgIGlmKCFjaGlsZCl7XG4gICAgICBsZXQgdmlldyA9IG5ldyBWaWV3KGVsLCB0aGlzLmxpdmVTb2NrZXQsIHRoaXMpXG4gICAgICB0aGlzLnJvb3QuY2hpbGRyZW5bdGhpcy5pZF1bdmlldy5pZF0gPSB2aWV3XG4gICAgICB2aWV3LmpvaW4oKVxuICAgICAgdGhpcy5jaGlsZEpvaW5zKytcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaXNKb2luUGVuZGluZygpeyByZXR1cm4gdGhpcy5qb2luUGVuZGluZyB9XG5cbiAgYWNrSm9pbihfY2hpbGQpe1xuICAgIHRoaXMuY2hpbGRKb2lucy0tXG5cbiAgICBpZih0aGlzLmNoaWxkSm9pbnMgPT09IDApe1xuICAgICAgaWYodGhpcy5wYXJlbnQpe1xuICAgICAgICB0aGlzLnBhcmVudC5hY2tKb2luKHRoaXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uQWxsQ2hpbGRKb2luc0NvbXBsZXRlKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFsbENoaWxkSm9pbnNDb21wbGV0ZSgpe1xuICAgIHRoaXMuam9pbkNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHRoaXMucGVuZGluZ0pvaW5PcHMuZm9yRWFjaCgoW3ZpZXcsIG9wXSkgPT4ge1xuICAgICAgICBpZighdmlldy5pc0Rlc3Ryb3llZCgpKXsgb3AoKSB9XG4gICAgICB9KVxuICAgICAgdGhpcy5wZW5kaW5nSm9pbk9wcyA9IFtdXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZShkaWZmLCBldmVudHMpe1xuICAgIGlmKHRoaXMuaXNKb2luUGVuZGluZygpIHx8ICh0aGlzLmxpdmVTb2NrZXQuaGFzUGVuZGluZ0xpbmsoKSAmJiAhRE9NLmlzUGh4U3RpY2t5KHRoaXMuZWwpKSl7XG4gICAgICByZXR1cm4gdGhpcy5wZW5kaW5nRGlmZnMucHVzaCh7ZGlmZiwgZXZlbnRzfSlcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVkLm1lcmdlRGlmZihkaWZmKVxuICAgIGxldCBwaHhDaGlsZHJlbkFkZGVkID0gZmFsc2VcblxuICAgIC8vIFdoZW4gdGhlIGRpZmYgb25seSBjb250YWlucyBjb21wb25lbnQgZGlmZnMsIHRoZW4gd2FsayBjb21wb25lbnRzXG4gICAgLy8gYW5kIHBhdGNoIG9ubHkgdGhlIHBhcmVudCBjb21wb25lbnQgY29udGFpbmVycyBmb3VuZCBpbiB0aGUgZGlmZi5cbiAgICAvLyBPdGhlcndpc2UsIHBhdGNoIGVudGlyZSBMViBjb250YWluZXIuXG4gICAgaWYodGhpcy5yZW5kZXJlZC5pc0NvbXBvbmVudE9ubHlEaWZmKGRpZmYpKXtcbiAgICAgIHRoaXMubGl2ZVNvY2tldC50aW1lKFwiY29tcG9uZW50IHBhdGNoIGNvbXBsZXRlXCIsICgpID0+IHtcbiAgICAgICAgbGV0IHBhcmVudENpZHMgPSBET00uZmluZFBhcmVudENJRHModGhpcy5lbCwgdGhpcy5yZW5kZXJlZC5jb21wb25lbnRDSURzKGRpZmYpKVxuICAgICAgICBwYXJlbnRDaWRzLmZvckVhY2gocGFyZW50Q0lEID0+IHtcbiAgICAgICAgICBpZih0aGlzLmNvbXBvbmVudFBhdGNoKHRoaXMucmVuZGVyZWQuZ2V0Q29tcG9uZW50KGRpZmYsIHBhcmVudENJRCksIHBhcmVudENJRCkpeyBwaHhDaGlsZHJlbkFkZGVkID0gdHJ1ZSB9XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZighaXNFbXB0eShkaWZmKSl7XG4gICAgICB0aGlzLmxpdmVTb2NrZXQudGltZShcImZ1bGwgcGF0Y2ggY29tcGxldGVcIiwgKCkgPT4ge1xuICAgICAgICBsZXQgaHRtbCA9IHRoaXMucmVuZGVyQ29udGFpbmVyKGRpZmYsIFwidXBkYXRlXCIpXG4gICAgICAgIGxldCBwYXRjaCA9IG5ldyBET01QYXRjaCh0aGlzLCB0aGlzLmVsLCB0aGlzLmlkLCBodG1sLCBudWxsKVxuICAgICAgICBwaHhDaGlsZHJlbkFkZGVkID0gdGhpcy5wZXJmb3JtUGF0Y2gocGF0Y2gsIHRydWUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRoaXMubGl2ZVNvY2tldC5kaXNwYXRjaEV2ZW50cyhldmVudHMpXG4gICAgaWYocGh4Q2hpbGRyZW5BZGRlZCl7IHRoaXMuam9pbk5ld0NoaWxkcmVuKCkgfVxuICB9XG5cbiAgcmVuZGVyQ29udGFpbmVyKGRpZmYsIGtpbmQpe1xuICAgIHJldHVybiB0aGlzLmxpdmVTb2NrZXQudGltZShgdG9TdHJpbmcgZGlmZiAoJHtraW5kfSlgLCAoKSA9PiB7XG4gICAgICBsZXQgdGFnID0gdGhpcy5lbC50YWdOYW1lXG4gICAgICAvLyBEb24ndCBza2lwIGFueSBjb21wb25lbnQgaW4gdGhlIGRpZmYgbm9yIGFueSBtYXJrZWQgYXMgcHJ1bmVkXG4gICAgICAvLyAoYXMgdGhleSBtYXkgaGF2ZSBiZWVuIGFkZGVkIGJhY2spXG4gICAgICBsZXQgY2lkcyA9IGRpZmYgPyB0aGlzLnJlbmRlcmVkLmNvbXBvbmVudENJRHMoZGlmZikuY29uY2F0KHRoaXMucHJ1bmluZ0NJRHMpIDogbnVsbFxuICAgICAgbGV0IGh0bWwgPSB0aGlzLnJlbmRlcmVkLnRvU3RyaW5nKGNpZHMpXG4gICAgICByZXR1cm4gYDwke3RhZ30+JHtodG1sfTwvJHt0YWd9PmBcbiAgICB9KVxuICB9XG5cbiAgY29tcG9uZW50UGF0Y2goZGlmZiwgY2lkKXtcbiAgICBpZihpc0VtcHR5KGRpZmYpKSByZXR1cm4gZmFsc2VcbiAgICBsZXQgaHRtbCA9IHRoaXMucmVuZGVyZWQuY29tcG9uZW50VG9TdHJpbmcoY2lkKVxuICAgIGxldCBwYXRjaCA9IG5ldyBET01QYXRjaCh0aGlzLCB0aGlzLmVsLCB0aGlzLmlkLCBodG1sLCBjaWQpXG4gICAgbGV0IGNoaWxkcmVuQWRkZWQgPSB0aGlzLnBlcmZvcm1QYXRjaChwYXRjaCwgdHJ1ZSlcbiAgICByZXR1cm4gY2hpbGRyZW5BZGRlZFxuICB9XG5cbiAgZ2V0SG9vayhlbCl7IHJldHVybiB0aGlzLnZpZXdIb29rc1tWaWV3SG9vay5lbGVtZW50SUQoZWwpXSB9XG5cbiAgYWRkSG9vayhlbCl7XG4gICAgaWYoVmlld0hvb2suZWxlbWVudElEKGVsKSB8fCAhZWwuZ2V0QXR0cmlidXRlKXsgcmV0dXJuIH1cbiAgICBsZXQgaG9va05hbWUgPSBlbC5nZXRBdHRyaWJ1dGUoYGRhdGEtcGh4LSR7UEhYX0hPT0t9YCkgfHwgZWwuZ2V0QXR0cmlidXRlKHRoaXMuYmluZGluZyhQSFhfSE9PSykpXG4gICAgaWYoaG9va05hbWUgJiYgIXRoaXMub3duc0VsZW1lbnQoZWwpKXsgcmV0dXJuIH1cbiAgICBsZXQgY2FsbGJhY2tzID0gdGhpcy5saXZlU29ja2V0LmdldEhvb2tDYWxsYmFja3MoaG9va05hbWUpXG5cbiAgICBpZihjYWxsYmFja3Mpe1xuICAgICAgaWYoIWVsLmlkKXsgbG9nRXJyb3IoYG5vIERPTSBJRCBmb3IgaG9vayBcIiR7aG9va05hbWV9XCIuIEhvb2tzIHJlcXVpcmUgYSB1bmlxdWUgSUQgb24gZWFjaCBlbGVtZW50LmAsIGVsKSB9XG4gICAgICBsZXQgaG9vayA9IG5ldyBWaWV3SG9vayh0aGlzLCBlbCwgY2FsbGJhY2tzKVxuICAgICAgdGhpcy52aWV3SG9va3NbVmlld0hvb2suZWxlbWVudElEKGhvb2suZWwpXSA9IGhvb2tcbiAgICAgIHJldHVybiBob29rXG4gICAgfSBlbHNlIGlmKGhvb2tOYW1lICE9PSBudWxsKXtcbiAgICAgIGxvZ0Vycm9yKGB1bmtub3duIGhvb2sgZm91bmQgZm9yIFwiJHtob29rTmFtZX1cImAsIGVsKVxuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3lIb29rKGhvb2spe1xuICAgIGhvb2suX19kZXN0cm95ZWQoKVxuICAgIGhvb2suX19jbGVhbnVwX18oKVxuICAgIGRlbGV0ZSB0aGlzLnZpZXdIb29rc1tWaWV3SG9vay5lbGVtZW50SUQoaG9vay5lbCldXG4gIH1cblxuICBhcHBseVBlbmRpbmdVcGRhdGVzKCl7XG4gICAgdGhpcy5wZW5kaW5nRGlmZnMuZm9yRWFjaCgoe2RpZmYsIGV2ZW50c30pID0+IHRoaXMudXBkYXRlKGRpZmYsIGV2ZW50cykpXG4gICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXVxuICB9XG5cbiAgb25DaGFubmVsKGV2ZW50LCBjYil7XG4gICAgdGhpcy5saXZlU29ja2V0Lm9uQ2hhbm5lbCh0aGlzLmNoYW5uZWwsIGV2ZW50LCByZXNwID0+IHtcbiAgICAgIGlmKHRoaXMuaXNKb2luUGVuZGluZygpKXtcbiAgICAgICAgdGhpcy5yb290LnBlbmRpbmdKb2luT3BzLnB1c2goW3RoaXMsICgpID0+IGNiKHJlc3ApXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGl2ZVNvY2tldC5yZXF1ZXN0RE9NVXBkYXRlKCgpID0+IGNiKHJlc3ApKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBiaW5kQ2hhbm5lbCgpe1xuICAgIC8vIFRoZSBkaWZmIGV2ZW50IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSByZWd1bGFyIHVwZGF0ZSBvcGVyYXRpb25zLlxuICAgIC8vIEFsbCBvdGhlciBvcGVyYXRpb25zIGFyZSBxdWV1ZWQgdG8gYmUgYXBwbGllZCBvbmx5IGFmdGVyIGpvaW4uXG4gICAgdGhpcy5saXZlU29ja2V0Lm9uQ2hhbm5lbCh0aGlzLmNoYW5uZWwsIFwiZGlmZlwiLCAocmF3RGlmZikgPT4ge1xuICAgICAgdGhpcy5saXZlU29ja2V0LnJlcXVlc3RET01VcGRhdGUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFwcGx5RGlmZihcInVwZGF0ZVwiLCByYXdEaWZmLCAoe2RpZmYsIGV2ZW50c30pID0+IHRoaXMudXBkYXRlKGRpZmYsIGV2ZW50cykpXG4gICAgICB9KVxuICAgIH0pXG4gICAgdGhpcy5vbkNoYW5uZWwoXCJyZWRpcmVjdFwiLCAoe3RvLCBmbGFzaH0pID0+IHRoaXMub25SZWRpcmVjdCh7dG8sIGZsYXNofSkpXG4gICAgdGhpcy5vbkNoYW5uZWwoXCJsaXZlX3BhdGNoXCIsIChyZWRpcikgPT4gdGhpcy5vbkxpdmVQYXRjaChyZWRpcikpXG4gICAgdGhpcy5vbkNoYW5uZWwoXCJsaXZlX3JlZGlyZWN0XCIsIChyZWRpcikgPT4gdGhpcy5vbkxpdmVSZWRpcmVjdChyZWRpcikpXG4gICAgdGhpcy5jaGFubmVsLm9uRXJyb3IocmVhc29uID0+IHRoaXMub25FcnJvcihyZWFzb24pKVxuICAgIHRoaXMuY2hhbm5lbC5vbkNsb3NlKHJlYXNvbiA9PiB0aGlzLm9uQ2xvc2UocmVhc29uKSlcbiAgfVxuXG4gIGRlc3Ryb3lBbGxDaGlsZHJlbigpe1xuICAgIGZvcihsZXQgaWQgaW4gdGhpcy5yb290LmNoaWxkcmVuW3RoaXMuaWRdKXtcbiAgICAgIHRoaXMuZ2V0Q2hpbGRCeUlkKGlkKS5kZXN0cm95KClcbiAgICB9XG4gIH1cblxuICBvbkxpdmVSZWRpcmVjdChyZWRpcil7XG4gICAgbGV0IHt0bywga2luZCwgZmxhc2h9ID0gcmVkaXJcbiAgICBsZXQgdXJsID0gdGhpcy5leHBhbmRVUkwodG8pXG4gICAgdGhpcy5saXZlU29ja2V0Lmhpc3RvcnlSZWRpcmVjdCh1cmwsIGtpbmQsIGZsYXNoKVxuICB9XG5cbiAgb25MaXZlUGF0Y2gocmVkaXIpe1xuICAgIGxldCB7dG8sIGtpbmR9ID0gcmVkaXJcbiAgICB0aGlzLmhyZWYgPSB0aGlzLmV4cGFuZFVSTCh0bylcbiAgICB0aGlzLmxpdmVTb2NrZXQuaGlzdG9yeVBhdGNoKHRvLCBraW5kKVxuICB9XG5cbiAgZXhwYW5kVVJMKHRvKXtcbiAgICByZXR1cm4gdG8uc3RhcnRzV2l0aChcIi9cIikgPyBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fSR7dG99YCA6IHRvXG4gIH1cblxuICBvblJlZGlyZWN0KHt0bywgZmxhc2h9KXsgdGhpcy5saXZlU29ja2V0LnJlZGlyZWN0KHRvLCBmbGFzaCkgfVxuXG4gIGlzRGVzdHJveWVkKCl7IHJldHVybiB0aGlzLmRlc3Ryb3llZCB9XG5cbiAgam9pbihjYWxsYmFjayl7XG4gICAgaWYodGhpcy5pc01haW4oKSl7XG4gICAgICB0aGlzLnN0b3BDYWxsYmFjayA9IHRoaXMubGl2ZVNvY2tldC53aXRoUGFnZUxvYWRpbmcoe3RvOiB0aGlzLmhyZWYsIGtpbmQ6IFwiaW5pdGlhbFwifSlcbiAgICB9XG4gICAgdGhpcy5qb2luQ2FsbGJhY2sgPSAob25Eb25lKSA9PiB7XG4gICAgICBvbkRvbmUgPSBvbkRvbmUgfHwgZnVuY3Rpb24oKXt9XG4gICAgICBjYWxsYmFjayA/IGNhbGxiYWNrKHRoaXMuam9pbkNvdW50LCBvbkRvbmUpIDogb25Eb25lKClcbiAgICB9XG4gICAgdGhpcy5saXZlU29ja2V0LndyYXBQdXNoKHRoaXMsIHt0aW1lb3V0OiBmYWxzZX0sICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNoYW5uZWwuam9pbigpXG4gICAgICAgIC5yZWNlaXZlKFwib2tcIiwgZGF0YSA9PiB7XG4gICAgICAgICAgaWYoIXRoaXMuaXNEZXN0cm95ZWQoKSl7XG4gICAgICAgICAgICB0aGlzLmxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB0aGlzLm9uSm9pbihkYXRhKSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5yZWNlaXZlKFwiZXJyb3JcIiwgcmVzcCA9PiAhdGhpcy5pc0Rlc3Ryb3llZCgpICYmIHRoaXMub25Kb2luRXJyb3IocmVzcCkpXG4gICAgICAgIC5yZWNlaXZlKFwidGltZW91dFwiLCAoKSA9PiAhdGhpcy5pc0Rlc3Ryb3llZCgpICYmIHRoaXMub25Kb2luRXJyb3Ioe3JlYXNvbjogXCJ0aW1lb3V0XCJ9KSlcbiAgICB9KVxuICB9XG5cbiAgb25Kb2luRXJyb3IocmVzcCl7XG4gICAgaWYocmVzcC5yZWFzb24gPT09IFwidW5hdXRob3JpemVkXCIgfHwgcmVzcC5yZWFzb24gPT09IFwic3RhbGVcIil7XG4gICAgICB0aGlzLmxvZyhcImVycm9yXCIsICgpID0+IFtcInVuYXV0aG9yaXplZCBsaXZlX3JlZGlyZWN0LiBGYWxsaW5nIGJhY2sgdG8gcGFnZSByZXF1ZXN0XCIsIHJlc3BdKVxuICAgICAgcmV0dXJuIHRoaXMub25SZWRpcmVjdCh7dG86IHRoaXMuaHJlZn0pXG4gICAgfVxuICAgIGlmKHJlc3AucmVkaXJlY3QgfHwgcmVzcC5saXZlX3JlZGlyZWN0KXtcbiAgICAgIHRoaXMuam9pblBlbmRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jaGFubmVsLmxlYXZlKClcbiAgICB9XG4gICAgaWYocmVzcC5yZWRpcmVjdCl7IHJldHVybiB0aGlzLm9uUmVkaXJlY3QocmVzcC5yZWRpcmVjdCkgfVxuICAgIGlmKHJlc3AubGl2ZV9yZWRpcmVjdCl7IHJldHVybiB0aGlzLm9uTGl2ZVJlZGlyZWN0KHJlc3AubGl2ZV9yZWRpcmVjdCkgfVxuICAgIHRoaXMubG9nKFwiZXJyb3JcIiwgKCkgPT4gW1widW5hYmxlIHRvIGpvaW5cIiwgcmVzcF0pXG4gICAgaWYodGhpcy5saXZlU29ja2V0LmlzQ29ubmVjdGVkKCkpeyB0aGlzLmxpdmVTb2NrZXQucmVsb2FkV2l0aEppdHRlcih0aGlzKSB9XG4gIH1cblxuICBvbkNsb3NlKHJlYXNvbil7XG4gICAgaWYodGhpcy5pc0Rlc3Ryb3llZCgpKXsgcmV0dXJuIH1cbiAgICBpZih0aGlzLmxpdmVTb2NrZXQuaGFzUGVuZGluZ0xpbmsoKSAmJiByZWFzb24gIT09IFwibGVhdmVcIil7XG4gICAgICByZXR1cm4gdGhpcy5saXZlU29ja2V0LnJlbG9hZFdpdGhKaXR0ZXIodGhpcylcbiAgICB9XG4gICAgdGhpcy5kZXN0cm95QWxsQ2hpbGRyZW4oKVxuICAgIHRoaXMubGl2ZVNvY2tldC5kcm9wQWN0aXZlRWxlbWVudCh0aGlzKVxuICAgIC8vIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgY2FuIGJlIG51bGwgaW4gSW50ZXJuZXQgRXhwbG9yZXIgMTFcbiAgICBpZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KXsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkgfVxuICAgIGlmKHRoaXMubGl2ZVNvY2tldC5pc1VubG9hZGVkKCkpe1xuICAgICAgdGhpcy5zaG93TG9hZGVyKEJFRk9SRV9VTkxPQURfTE9BREVSX1RJTUVPVVQpXG4gICAgfVxuICB9XG5cbiAgb25FcnJvcihyZWFzb24pe1xuICAgIHRoaXMub25DbG9zZShyZWFzb24pXG4gICAgaWYodGhpcy5saXZlU29ja2V0LmlzQ29ubmVjdGVkKCkpeyB0aGlzLmxvZyhcImVycm9yXCIsICgpID0+IFtcInZpZXcgY3Jhc2hlZFwiLCByZWFzb25dKSB9XG4gICAgaWYoIXRoaXMubGl2ZVNvY2tldC5pc1VubG9hZGVkKCkpeyB0aGlzLmRpc3BsYXlFcnJvcigpIH1cbiAgfVxuXG4gIGRpc3BsYXlFcnJvcigpe1xuICAgIGlmKHRoaXMuaXNNYWluKCkpeyBET00uZGlzcGF0Y2hFdmVudCh3aW5kb3csIFwicGh4OnBhZ2UtbG9hZGluZy1zdGFydFwiLCB7ZGV0YWlsOiB7dG86IHRoaXMuaHJlZiwga2luZDogXCJlcnJvclwifX0pIH1cbiAgICB0aGlzLnNob3dMb2FkZXIoKVxuICAgIHRoaXMuc2V0Q29udGFpbmVyQ2xhc3NlcyhQSFhfRElTQ09OTkVDVEVEX0NMQVNTLCBQSFhfRVJST1JfQ0xBU1MpXG4gIH1cblxuICBwdXNoV2l0aFJlcGx5KHJlZkdlbmVyYXRvciwgZXZlbnQsIHBheWxvYWQsIG9uUmVwbHkgPSBmdW5jdGlvbiAoKXsgfSl7XG4gICAgaWYoIXRoaXMuaXNDb25uZWN0ZWQoKSl7IHJldHVybiB9XG5cbiAgICBsZXQgW3JlZiwgW2VsXSwgb3B0c10gPSByZWZHZW5lcmF0b3IgPyByZWZHZW5lcmF0b3IoKSA6IFtudWxsLCBbXSwge31dXG4gICAgbGV0IG9uTG9hZGluZ0RvbmUgPSBmdW5jdGlvbigpeyB9XG4gICAgaWYob3B0cy5wYWdlX2xvYWRpbmcgfHwgKGVsICYmIChlbC5nZXRBdHRyaWJ1dGUodGhpcy5iaW5kaW5nKFBIWF9QQUdFX0xPQURJTkcpKSAhPT0gbnVsbCkpKXtcbiAgICAgIG9uTG9hZGluZ0RvbmUgPSB0aGlzLmxpdmVTb2NrZXQud2l0aFBhZ2VMb2FkaW5nKHtraW5kOiBcImVsZW1lbnRcIiwgdGFyZ2V0OiBlbH0pXG4gICAgfVxuXG4gICAgaWYodHlwZW9mIChwYXlsb2FkLmNpZCkgIT09IFwibnVtYmVyXCIpeyBkZWxldGUgcGF5bG9hZC5jaWQgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxpdmVTb2NrZXQud3JhcFB1c2godGhpcywge3RpbWVvdXQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5uZWwucHVzaChldmVudCwgcGF5bG9hZCwgUFVTSF9USU1FT1VUKS5yZWNlaXZlKFwib2tcIiwgcmVzcCA9PiB7XG4gICAgICAgICAgaWYocmVmICE9PSBudWxsKXsgdGhpcy51bmRvUmVmcyhyZWYpIH1cbiAgICAgICAgICBsZXQgZmluaXNoID0gKGhvb2tSZXBseSkgPT4ge1xuICAgICAgICAgICAgaWYocmVzcC5yZWRpcmVjdCl7IHRoaXMub25SZWRpcmVjdChyZXNwLnJlZGlyZWN0KSB9XG4gICAgICAgICAgICBpZihyZXNwLmxpdmVfcGF0Y2gpeyB0aGlzLm9uTGl2ZVBhdGNoKHJlc3AubGl2ZV9wYXRjaCkgfVxuICAgICAgICAgICAgaWYocmVzcC5saXZlX3JlZGlyZWN0KXsgdGhpcy5vbkxpdmVSZWRpcmVjdChyZXNwLmxpdmVfcmVkaXJlY3QpIH1cbiAgICAgICAgICAgIG9uTG9hZGluZ0RvbmUoKVxuICAgICAgICAgICAgb25SZXBseShyZXNwLCBob29rUmVwbHkpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKHJlc3AuZGlmZil7XG4gICAgICAgICAgICB0aGlzLmxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBob29rUmVwbHkgPSB0aGlzLmFwcGx5RGlmZihcInVwZGF0ZVwiLCByZXNwLmRpZmYsICh7ZGlmZiwgZXZlbnRzfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGRpZmYsIGV2ZW50cylcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgZmluaXNoKGhvb2tSZXBseSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbmlzaChudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgdW5kb1JlZnMocmVmKXtcbiAgICBET00uYWxsKGRvY3VtZW50LCBgWyR7UEhYX1JFRl9TUkN9PVwiJHt0aGlzLmlkfVwiXVske1BIWF9SRUZ9PVwiJHtyZWZ9XCJdYCwgZWwgPT4ge1xuICAgICAgbGV0IGRpc2FibGVkVmFsID0gZWwuZ2V0QXR0cmlidXRlKFBIWF9ESVNBQkxFRClcbiAgICAgIC8vIHJlbW92ZSByZWZzXG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX1JFRilcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShQSFhfUkVGX1NSQylcbiAgICAgIC8vIHJlc3RvcmUgaW5wdXRzXG4gICAgICBpZihlbC5nZXRBdHRyaWJ1dGUoUEhYX1JFQURPTkxZKSAhPT0gbnVsbCl7XG4gICAgICAgIGVsLnJlYWRPbmx5ID0gZmFsc2VcbiAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKFBIWF9SRUFET05MWSlcbiAgICAgIH1cbiAgICAgIGlmKGRpc2FibGVkVmFsICE9PSBudWxsKXtcbiAgICAgICAgZWwuZGlzYWJsZWQgPSBkaXNhYmxlZFZhbCA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2VcbiAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKFBIWF9ESVNBQkxFRClcbiAgICAgIH1cbiAgICAgIC8vIHJlbW92ZSBjbGFzc2VzXG4gICAgICBQSFhfRVZFTlRfQ0xBU1NFUy5mb3JFYWNoKGNsYXNzTmFtZSA9PiBET00ucmVtb3ZlQ2xhc3MoZWwsIGNsYXNzTmFtZSkpXG4gICAgICAvLyByZXN0b3JlIGRpc2FibGVzXG4gICAgICBsZXQgZGlzYWJsZVJlc3RvcmUgPSBlbC5nZXRBdHRyaWJ1dGUoUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFKVxuICAgICAgaWYoZGlzYWJsZVJlc3RvcmUgIT09IG51bGwpe1xuICAgICAgICBlbC5pbm5lclRleHQgPSBkaXNhYmxlUmVzdG9yZVxuICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFKVxuICAgICAgfVxuICAgICAgbGV0IHRvRWwgPSBET00ucHJpdmF0ZShlbCwgUEhYX1JFRilcbiAgICAgIGlmKHRvRWwpe1xuICAgICAgICBsZXQgaG9vayA9IHRoaXMudHJpZ2dlckJlZm9yZVVwZGF0ZUhvb2soZWwsIHRvRWwpXG4gICAgICAgIERPTVBhdGNoLnBhdGNoRWwoZWwsIHRvRWwsIHRoaXMubGl2ZVNvY2tldC5nZXRBY3RpdmVFbGVtZW50KCkpXG4gICAgICAgIGlmKGhvb2speyBob29rLl9fdXBkYXRlZCgpIH1cbiAgICAgICAgRE9NLmRlbGV0ZVByaXZhdGUoZWwsIFBIWF9SRUYpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHB1dFJlZihlbGVtZW50cywgZXZlbnQsIG9wdHMgPSB7fSl7XG4gICAgbGV0IG5ld1JlZiA9IHRoaXMucmVmKytcbiAgICBsZXQgZGlzYWJsZVdpdGggPSB0aGlzLmJpbmRpbmcoUEhYX0RJU0FCTEVfV0lUSClcbiAgICBpZihvcHRzLmxvYWRpbmcpeyBlbGVtZW50cyA9IGVsZW1lbnRzLmNvbmNhdChET00uYWxsKGRvY3VtZW50LCBvcHRzLmxvYWRpbmcpKX1cblxuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZChgcGh4LSR7ZXZlbnR9LWxvYWRpbmdgKVxuICAgICAgZWwuc2V0QXR0cmlidXRlKFBIWF9SRUYsIG5ld1JlZilcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShQSFhfUkVGX1NSQywgdGhpcy5lbC5pZClcbiAgICAgIGxldCBkaXNhYmxlVGV4dCA9IGVsLmdldEF0dHJpYnV0ZShkaXNhYmxlV2l0aClcbiAgICAgIGlmKGRpc2FibGVUZXh0ICE9PSBudWxsKXtcbiAgICAgICAgaWYoIWVsLmdldEF0dHJpYnV0ZShQSFhfRElTQUJMRV9XSVRIX1JFU1RPUkUpKXtcbiAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFLCBlbC5pbm5lclRleHQpXG4gICAgICAgIH1cbiAgICAgICAgaWYoZGlzYWJsZVRleHQgIT09IFwiXCIpeyBlbC5pbm5lclRleHQgPSBkaXNhYmxlVGV4dCB9XG4gICAgICAgIGVsLnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsIFwiXCIpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gW25ld1JlZiwgZWxlbWVudHMsIG9wdHNdXG4gIH1cblxuICBjb21wb25lbnRJRChlbCl7XG4gICAgbGV0IGNpZCA9IGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVClcbiAgICByZXR1cm4gY2lkID8gcGFyc2VJbnQoY2lkKSA6IG51bGxcbiAgfVxuXG4gIHRhcmdldENvbXBvbmVudElEKHRhcmdldCwgdGFyZ2V0Q3R4LCBvcHRzID0ge30pe1xuICAgIGlmKGlzQ2lkKHRhcmdldEN0eCkpeyByZXR1cm4gdGFyZ2V0Q3R4IH1cblxuICAgIGxldCBjaWRPclNlbGVjdG9yID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoXCJ0YXJnZXRcIikpXG4gICAgaWYoaXNDaWQoY2lkT3JTZWxlY3Rvcikpe1xuICAgICAgcmV0dXJuIHBhcnNlSW50KGNpZE9yU2VsZWN0b3IpXG4gICAgfSBlbHNlIGlmKHRhcmdldEN0eCAmJiAoY2lkT3JTZWxlY3RvciAhPT0gbnVsbCB8fCBvcHRzLnRhcmdldCkpe1xuICAgICAgcmV0dXJuIHRoaXMuY2xvc2VzdENvbXBvbmVudElEKHRhcmdldEN0eClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBjbG9zZXN0Q29tcG9uZW50SUQodGFyZ2V0Q3R4KXtcbiAgICBpZihpc0NpZCh0YXJnZXRDdHgpKXtcbiAgICAgIHJldHVybiB0YXJnZXRDdHhcbiAgICB9IGVsc2UgaWYodGFyZ2V0Q3R4KXtcbiAgICAgIHJldHVybiBtYXliZSh0YXJnZXRDdHguY2xvc2VzdChgWyR7UEhYX0NPTVBPTkVOVH1dYCksIGVsID0+IHRoaXMub3duc0VsZW1lbnQoZWwpICYmIHRoaXMuY29tcG9uZW50SUQoZWwpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHB1c2hIb29rRXZlbnQodGFyZ2V0Q3R4LCBldmVudCwgcGF5bG9hZCwgb25SZXBseSl7XG4gICAgaWYoIXRoaXMuaXNDb25uZWN0ZWQoKSl7XG4gICAgICB0aGlzLmxvZyhcImhvb2tcIiwgKCkgPT4gW1widW5hYmxlIHRvIHB1c2ggaG9vayBldmVudC4gTGl2ZVZpZXcgbm90IGNvbm5lY3RlZFwiLCBldmVudCwgcGF5bG9hZF0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgbGV0IFtyZWYsIGVscywgb3B0c10gPSB0aGlzLnB1dFJlZihbXSwgXCJob29rXCIpXG4gICAgdGhpcy5wdXNoV2l0aFJlcGx5KCgpID0+IFtyZWYsIGVscywgb3B0c10sIFwiZXZlbnRcIiwge1xuICAgICAgdHlwZTogXCJob29rXCIsXG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICB2YWx1ZTogcGF5bG9hZCxcbiAgICAgIGNpZDogdGhpcy5jbG9zZXN0Q29tcG9uZW50SUQodGFyZ2V0Q3R4KVxuICAgIH0sIChyZXNwLCByZXBseSkgPT4gb25SZXBseShyZXBseSwgcmVmKSlcblxuICAgIHJldHVybiByZWZcbiAgfVxuXG4gIGV4dHJhY3RNZXRhKGVsLCBtZXRhLCB2YWx1ZSl7XG4gICAgbGV0IHByZWZpeCA9IHRoaXMuYmluZGluZyhcInZhbHVlLVwiKVxuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBlbC5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmKCFtZXRhKXsgbWV0YSA9IHt9IH1cbiAgICAgIGxldCBuYW1lID0gZWwuYXR0cmlidXRlc1tpXS5uYW1lXG4gICAgICBpZihuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSl7IG1ldGFbbmFtZS5yZXBsYWNlKHByZWZpeCwgXCJcIildID0gZWwuZ2V0QXR0cmlidXRlKG5hbWUpIH1cbiAgICB9XG4gICAgaWYoZWwudmFsdWUgIT09IHVuZGVmaW5lZCl7XG4gICAgICBpZighbWV0YSl7IG1ldGEgPSB7fSB9XG4gICAgICBtZXRhLnZhbHVlID0gZWwudmFsdWVcblxuICAgICAgaWYoZWwudGFnTmFtZSA9PT0gXCJJTlBVVFwiICYmIENIRUNLQUJMRV9JTlBVVFMuaW5kZXhPZihlbC50eXBlKSA+PSAwICYmICFlbC5jaGVja2VkKXtcbiAgICAgICAgZGVsZXRlIG1ldGEudmFsdWVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYodmFsdWUpe1xuICAgICAgaWYoIW1ldGEpeyBtZXRhID0ge30gfVxuICAgICAgZm9yKGxldCBrZXkgaW4gdmFsdWUpeyBtZXRhW2tleV0gPSB2YWx1ZVtrZXldIH1cbiAgICB9XG4gICAgcmV0dXJuIG1ldGFcbiAgfVxuXG4gIHB1c2hFdmVudCh0eXBlLCBlbCwgdGFyZ2V0Q3R4LCBwaHhFdmVudCwgbWV0YSwgb3B0cyA9IHt9KXtcbiAgICB0aGlzLnB1c2hXaXRoUmVwbHkoKCkgPT4gdGhpcy5wdXRSZWYoW2VsXSwgdHlwZSwgb3B0cyksIFwiZXZlbnRcIiwge1xuICAgICAgdHlwZTogdHlwZSxcbiAgICAgIGV2ZW50OiBwaHhFdmVudCxcbiAgICAgIHZhbHVlOiB0aGlzLmV4dHJhY3RNZXRhKGVsLCBtZXRhLCBvcHRzLnZhbHVlKSxcbiAgICAgIGNpZDogdGhpcy50YXJnZXRDb21wb25lbnRJRChlbCwgdGFyZ2V0Q3R4LCBvcHRzKVxuICAgIH0pXG4gIH1cblxuICBwdXNoRmlsZVByb2dyZXNzKGZpbGVFbCwgZW50cnlSZWYsIHByb2dyZXNzLCBvblJlcGx5ID0gZnVuY3Rpb24gKCl7IH0pe1xuICAgIHRoaXMubGl2ZVNvY2tldC53aXRoaW5Pd25lcnMoZmlsZUVsLmZvcm0sICh2aWV3LCB0YXJnZXRDdHgpID0+IHtcbiAgICAgIHZpZXcucHVzaFdpdGhSZXBseShudWxsLCBcInByb2dyZXNzXCIsIHtcbiAgICAgICAgZXZlbnQ6IGZpbGVFbC5nZXRBdHRyaWJ1dGUodmlldy5iaW5kaW5nKFBIWF9QUk9HUkVTUykpLFxuICAgICAgICByZWY6IGZpbGVFbC5nZXRBdHRyaWJ1dGUoUEhYX1VQTE9BRF9SRUYpLFxuICAgICAgICBlbnRyeV9yZWY6IGVudHJ5UmVmLFxuICAgICAgICBwcm9ncmVzczogcHJvZ3Jlc3MsXG4gICAgICAgIGNpZDogdmlldy50YXJnZXRDb21wb25lbnRJRChmaWxlRWwuZm9ybSwgdGFyZ2V0Q3R4KVxuICAgICAgfSwgb25SZXBseSlcbiAgICB9KVxuICB9XG5cbiAgcHVzaElucHV0KGlucHV0RWwsIHRhcmdldEN0eCwgZm9yY2VDaWQsIHBoeEV2ZW50LCBvcHRzLCBjYWxsYmFjayl7XG4gICAgbGV0IHVwbG9hZHNcbiAgICBsZXQgY2lkID0gaXNDaWQoZm9yY2VDaWQpID8gZm9yY2VDaWQgOiB0aGlzLnRhcmdldENvbXBvbmVudElEKGlucHV0RWwuZm9ybSwgdGFyZ2V0Q3R4KVxuICAgIGxldCByZWZHZW5lcmF0b3IgPSAoKSA9PiB0aGlzLnB1dFJlZihbaW5wdXRFbCwgaW5wdXRFbC5mb3JtXSwgXCJjaGFuZ2VcIiwgb3B0cylcbiAgICBsZXQgZm9ybURhdGFcbiAgICBpZihpbnB1dEVsLmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoXCJjaGFuZ2VcIikpKXtcbiAgICAgIGZvcm1EYXRhID0gc2VyaWFsaXplRm9ybShpbnB1dEVsLmZvcm0sIHtfdGFyZ2V0OiBvcHRzLl90YXJnZXR9LCBbaW5wdXRFbC5uYW1lXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybURhdGEgPSBzZXJpYWxpemVGb3JtKGlucHV0RWwuZm9ybSwge190YXJnZXQ6IG9wdHMuX3RhcmdldH0pXG4gICAgfVxuICAgIGlmKERPTS5pc1VwbG9hZElucHV0KGlucHV0RWwpICYmIGlucHV0RWwuZmlsZXMgJiYgaW5wdXRFbC5maWxlcy5sZW5ndGggPiAwKXtcbiAgICAgIExpdmVVcGxvYWRlci50cmFja0ZpbGVzKGlucHV0RWwsIEFycmF5LmZyb20oaW5wdXRFbC5maWxlcykpXG4gICAgfVxuICAgIHVwbG9hZHMgPSBMaXZlVXBsb2FkZXIuc2VyaWFsaXplVXBsb2FkcyhpbnB1dEVsKVxuICAgIGxldCBldmVudCA9IHtcbiAgICAgIHR5cGU6IFwiZm9ybVwiLFxuICAgICAgZXZlbnQ6IHBoeEV2ZW50LFxuICAgICAgdmFsdWU6IGZvcm1EYXRhLFxuICAgICAgdXBsb2FkczogdXBsb2FkcyxcbiAgICAgIGNpZDogY2lkXG4gICAgfVxuICAgIHRoaXMucHVzaFdpdGhSZXBseShyZWZHZW5lcmF0b3IsIFwiZXZlbnRcIiwgZXZlbnQsIHJlc3AgPT4ge1xuICAgICAgRE9NLnNob3dFcnJvcihpbnB1dEVsLCB0aGlzLmxpdmVTb2NrZXQuYmluZGluZyhQSFhfRkVFREJBQ0tfRk9SKSlcbiAgICAgIGlmKERPTS5pc1VwbG9hZElucHV0KGlucHV0RWwpICYmIGlucHV0RWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1waHgtYXV0by11cGxvYWRcIikgIT09IG51bGwpe1xuICAgICAgICBpZihMaXZlVXBsb2FkZXIuZmlsZXNBd2FpdGluZ1ByZWZsaWdodChpbnB1dEVsKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICBsZXQgW3JlZiwgX2Vsc10gPSByZWZHZW5lcmF0b3IoKVxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXMoaW5wdXRFbC5mb3JtLCB0YXJnZXRDdHgsIHJlZiwgY2lkLCAoX3VwbG9hZHMpID0+IHtcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlc3ApXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJBd2FpdGluZ1N1Ym1pdChpbnB1dEVsLmZvcm0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzcClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdHJpZ2dlckF3YWl0aW5nU3VibWl0KGZvcm1FbCl7XG4gICAgbGV0IGF3YWl0aW5nU3VibWl0ID0gdGhpcy5nZXRTY2hlZHVsZWRTdWJtaXQoZm9ybUVsKVxuICAgIGlmKGF3YWl0aW5nU3VibWl0KXtcbiAgICAgIGxldCBbX2VsLCBfcmVmLCBfb3B0cywgY2FsbGJhY2tdID0gYXdhaXRpbmdTdWJtaXRcbiAgICAgIHRoaXMuY2FuY2VsU3VibWl0KGZvcm1FbClcbiAgICAgIGNhbGxiYWNrKClcbiAgICB9XG4gIH1cblxuICBnZXRTY2hlZHVsZWRTdWJtaXQoZm9ybUVsKXtcbiAgICByZXR1cm4gdGhpcy5mb3JtU3VibWl0cy5maW5kKChbZWwsIF9yZWYsIF9vcHRzLCBfY2FsbGJhY2tdKSA9PiBlbC5pc1NhbWVOb2RlKGZvcm1FbCkpXG4gIH1cblxuICBzY2hlZHVsZVN1Ym1pdChmb3JtRWwsIHJlZiwgb3B0cywgY2FsbGJhY2spe1xuICAgIGlmKHRoaXMuZ2V0U2NoZWR1bGVkU3VibWl0KGZvcm1FbCkpeyByZXR1cm4gdHJ1ZSB9XG4gICAgdGhpcy5mb3JtU3VibWl0cy5wdXNoKFtmb3JtRWwsIHJlZiwgb3B0cywgY2FsbGJhY2tdKVxuICB9XG5cbiAgY2FuY2VsU3VibWl0KGZvcm1FbCl7XG4gICAgdGhpcy5mb3JtU3VibWl0cyA9IHRoaXMuZm9ybVN1Ym1pdHMuZmlsdGVyKChbZWwsIHJlZiwgX2NhbGxiYWNrXSkgPT4ge1xuICAgICAgaWYoZWwuaXNTYW1lTm9kZShmb3JtRWwpKXtcbiAgICAgICAgdGhpcy51bmRvUmVmcyhyZWYpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHVzaEZvcm1TdWJtaXQoZm9ybUVsLCB0YXJnZXRDdHgsIHBoeEV2ZW50LCBvcHRzLCBvblJlcGx5KXtcbiAgICBsZXQgZmlsdGVySWdub3JlZCA9IGVsID0+IHtcbiAgICAgIGxldCB1c2VySWdub3JlZCA9IGNsb3Nlc3RQaHhCaW5kaW5nKGVsLCBgJHt0aGlzLmJpbmRpbmcoUEhYX1VQREFURSl9PWlnbm9yZWAsIGVsLmZvcm0pXG4gICAgICByZXR1cm4gISh1c2VySWdub3JlZCB8fCBjbG9zZXN0UGh4QmluZGluZyhlbCwgXCJkYXRhLXBoeC11cGRhdGU9aWdub3JlXCIsIGVsLmZvcm0pKVxuICAgIH1cbiAgICBsZXQgZmlsdGVyRGlzYWJsZXMgPSBlbCA9PiB7XG4gICAgICByZXR1cm4gZWwuaGFzQXR0cmlidXRlKHRoaXMuYmluZGluZyhQSFhfRElTQUJMRV9XSVRIKSlcbiAgICB9XG4gICAgbGV0IGZpbHRlckJ1dHRvbiA9IGVsID0+IGVsLnRhZ05hbWUgPT0gXCJCVVRUT05cIlxuXG4gICAgbGV0IGZpbHRlcklucHV0ID0gZWwgPT4gW1wiSU5QVVRcIiwgXCJURVhUQVJFQVwiLCBcIlNFTEVDVFwiXS5pbmNsdWRlcyhlbC50YWdOYW1lKVxuXG4gICAgbGV0IHJlZkdlbmVyYXRvciA9ICgpID0+IHtcbiAgICAgIGxldCBmb3JtRWxlbWVudHMgPSBBcnJheS5mcm9tKGZvcm1FbC5lbGVtZW50cylcbiAgICAgIGxldCBkaXNhYmxlcyA9IGZvcm1FbGVtZW50cy5maWx0ZXIoZmlsdGVyRGlzYWJsZXMpXG4gICAgICBsZXQgYnV0dG9ucyA9IGZvcm1FbGVtZW50cy5maWx0ZXIoZmlsdGVyQnV0dG9uKS5maWx0ZXIoZmlsdGVySWdub3JlZClcbiAgICAgIGxldCBpbnB1dHMgPSBmb3JtRWxlbWVudHMuZmlsdGVyKGZpbHRlcklucHV0KS5maWx0ZXIoZmlsdGVySWdub3JlZClcblxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoUEhYX0RJU0FCTEVELCBidXR0b24uZGlzYWJsZWQpXG4gICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWVcbiAgICAgIH0pXG4gICAgICBpbnB1dHMuZm9yRWFjaChpbnB1dCA9PiB7XG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShQSFhfUkVBRE9OTFksIGlucHV0LnJlYWRPbmx5KVxuICAgICAgICBpbnB1dC5yZWFkT25seSA9IHRydWVcbiAgICAgICAgaWYoaW5wdXQuZmlsZXMpe1xuICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShQSFhfRElTQUJMRUQsIGlucHV0LmRpc2FibGVkKVxuICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgZm9ybUVsLnNldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX1BBR0VfTE9BRElORyksIFwiXCIpXG4gICAgICByZXR1cm4gdGhpcy5wdXRSZWYoW2Zvcm1FbF0uY29uY2F0KGRpc2FibGVzKS5jb25jYXQoYnV0dG9ucykuY29uY2F0KGlucHV0cyksIFwic3VibWl0XCIsIG9wdHMpXG4gICAgfVxuXG4gICAgbGV0IGNpZCA9IHRoaXMudGFyZ2V0Q29tcG9uZW50SUQoZm9ybUVsLCB0YXJnZXRDdHgpXG4gICAgaWYoTGl2ZVVwbG9hZGVyLmhhc1VwbG9hZHNJblByb2dyZXNzKGZvcm1FbCkpe1xuICAgICAgbGV0IFtyZWYsIF9lbHNdID0gcmVmR2VuZXJhdG9yKClcbiAgICAgIGxldCBwdXNoID0gKCkgPT4gdGhpcy5wdXNoRm9ybVN1Ym1pdChmb3JtRWwsIHRhcmdldEN0eCwgcGh4RXZlbnQsIG9wdHMsIG9uUmVwbHkpXG4gICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVN1Ym1pdChmb3JtRWwsIHJlZiwgb3B0cywgcHVzaClcbiAgICB9IGVsc2UgaWYoTGl2ZVVwbG9hZGVyLmlucHV0c0F3YWl0aW5nUHJlZmxpZ2h0KGZvcm1FbCkubGVuZ3RoID4gMCl7XG4gICAgICBsZXQgW3JlZiwgZWxzXSA9IHJlZkdlbmVyYXRvcigpXG4gICAgICBsZXQgcHJveHlSZWZHZW4gPSAoKSA9PiBbcmVmLCBlbHMsIG9wdHNdXG4gICAgICB0aGlzLnVwbG9hZEZpbGVzKGZvcm1FbCwgdGFyZ2V0Q3R4LCByZWYsIGNpZCwgKF91cGxvYWRzKSA9PiB7XG4gICAgICAgIGxldCBmb3JtRGF0YSA9IHNlcmlhbGl6ZUZvcm0oZm9ybUVsLCB7fSlcbiAgICAgICAgdGhpcy5wdXNoV2l0aFJlcGx5KHByb3h5UmVmR2VuLCBcImV2ZW50XCIsIHtcbiAgICAgICAgICB0eXBlOiBcImZvcm1cIixcbiAgICAgICAgICBldmVudDogcGh4RXZlbnQsXG4gICAgICAgICAgdmFsdWU6IGZvcm1EYXRhLFxuICAgICAgICAgIGNpZDogY2lkXG4gICAgICAgIH0sIG9uUmVwbHkpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZm9ybURhdGEgPSBzZXJpYWxpemVGb3JtKGZvcm1FbCwge30pXG4gICAgICB0aGlzLnB1c2hXaXRoUmVwbHkocmVmR2VuZXJhdG9yLCBcImV2ZW50XCIsIHtcbiAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgIGV2ZW50OiBwaHhFdmVudCxcbiAgICAgICAgdmFsdWU6IGZvcm1EYXRhLFxuICAgICAgICBjaWQ6IGNpZFxuICAgICAgfSwgb25SZXBseSlcbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlcyhmb3JtRWwsIHRhcmdldEN0eCwgcmVmLCBjaWQsIG9uQ29tcGxldGUpe1xuICAgIGxldCBqb2luQ291bnRBdFVwbG9hZCA9IHRoaXMuam9pbkNvdW50XG4gICAgbGV0IGlucHV0RWxzID0gTGl2ZVVwbG9hZGVyLmFjdGl2ZUZpbGVJbnB1dHMoZm9ybUVsKVxuICAgIGxldCBudW1GaWxlSW5wdXRzSW5Qcm9ncmVzcyA9IGlucHV0RWxzLmxlbmd0aFxuXG4gICAgLy8gZ2V0IGVhY2ggZmlsZSBpbnB1dFxuICAgIGlucHV0RWxzLmZvckVhY2goaW5wdXRFbCA9PiB7XG4gICAgICBsZXQgdXBsb2FkZXIgPSBuZXcgTGl2ZVVwbG9hZGVyKGlucHV0RWwsIHRoaXMsICgpID0+IHtcbiAgICAgICAgbnVtRmlsZUlucHV0c0luUHJvZ3Jlc3MtLVxuICAgICAgICBpZihudW1GaWxlSW5wdXRzSW5Qcm9ncmVzcyA9PT0gMCl7IG9uQ29tcGxldGUoKSB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy51cGxvYWRlcnNbaW5wdXRFbF0gPSB1cGxvYWRlclxuICAgICAgbGV0IGVudHJpZXMgPSB1cGxvYWRlci5lbnRyaWVzKCkubWFwKGVudHJ5ID0+IGVudHJ5LnRvUHJlZmxpZ2h0UGF5bG9hZCgpKVxuXG4gICAgICBsZXQgcGF5bG9hZCA9IHtcbiAgICAgICAgcmVmOiBpbnB1dEVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRiksXG4gICAgICAgIGVudHJpZXM6IGVudHJpZXMsXG4gICAgICAgIGNpZDogdGhpcy50YXJnZXRDb21wb25lbnRJRChpbnB1dEVsLmZvcm0sIHRhcmdldEN0eClcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2coXCJ1cGxvYWRcIiwgKCkgPT4gW1wic2VuZGluZyBwcmVmbGlnaHQgcmVxdWVzdFwiLCBwYXlsb2FkXSlcblxuICAgICAgdGhpcy5wdXNoV2l0aFJlcGx5KG51bGwsIFwiYWxsb3dfdXBsb2FkXCIsIHBheWxvYWQsIHJlc3AgPT4ge1xuICAgICAgICB0aGlzLmxvZyhcInVwbG9hZFwiLCAoKSA9PiBbXCJnb3QgcHJlZmxpZ2h0IHJlc3BvbnNlXCIsIHJlc3BdKVxuICAgICAgICBpZihyZXNwLmVycm9yKXtcbiAgICAgICAgICB0aGlzLnVuZG9SZWZzKHJlZilcbiAgICAgICAgICBsZXQgW2VudHJ5X3JlZiwgcmVhc29uXSA9IHJlc3AuZXJyb3JcbiAgICAgICAgICB0aGlzLmxvZyhcInVwbG9hZFwiLCAoKSA9PiBbYGVycm9yIGZvciBlbnRyeSAke2VudHJ5X3JlZn1gLCByZWFzb25dKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBvbkVycm9yID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwub25FcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgIGlmKHRoaXMuam9pbkNvdW50ID09PSBqb2luQ291bnRBdFVwbG9hZCl7IGNhbGxiYWNrKCkgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdXBsb2FkZXIuaW5pdEFkYXB0ZXJVcGxvYWQocmVzcCwgb25FcnJvciwgdGhpcy5saXZlU29ja2V0KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBkaXNwYXRjaFVwbG9hZHMobmFtZSwgZmlsZXNPckJsb2JzKXtcbiAgICBsZXQgaW5wdXRzID0gRE9NLmZpbmRVcGxvYWRJbnB1dHModGhpcy5lbCkuZmlsdGVyKGVsID0+IGVsLm5hbWUgPT09IG5hbWUpXG4gICAgaWYoaW5wdXRzLmxlbmd0aCA9PT0gMCl7IGxvZ0Vycm9yKGBubyBsaXZlIGZpbGUgaW5wdXRzIGZvdW5kIG1hdGNoaW5nIHRoZSBuYW1lIFwiJHtuYW1lfVwiYCkgfVxuICAgIGVsc2UgaWYoaW5wdXRzLmxlbmd0aCA+IDEpeyBsb2dFcnJvcihgZHVwbGljYXRlIGxpdmUgZmlsZSBpbnB1dHMgZm91bmQgbWF0Y2hpbmcgdGhlIG5hbWUgXCIke25hbWV9XCJgKSB9XG4gICAgZWxzZSB7IERPTS5kaXNwYXRjaEV2ZW50KGlucHV0c1swXSwgUEhYX1RSQUNLX1VQTE9BRFMsIHtkZXRhaWw6IHtmaWxlczogZmlsZXNPckJsb2JzfX0pIH1cbiAgfVxuXG4gIHB1c2hGb3JtUmVjb3ZlcnkoZm9ybSwgbmV3Q2lkLCBjYWxsYmFjayl7XG4gICAgdGhpcy5saXZlU29ja2V0LndpdGhpbk93bmVycyhmb3JtLCAodmlldywgdGFyZ2V0Q3R4KSA9PiB7XG4gICAgICBsZXQgaW5wdXQgPSBmb3JtLmVsZW1lbnRzWzBdXG4gICAgICBsZXQgcGh4RXZlbnQgPSBmb3JtLmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX0FVVE9fUkVDT1ZFUikpIHx8IGZvcm0uZ2V0QXR0cmlidXRlKHRoaXMuYmluZGluZyhcImNoYW5nZVwiKSlcblxuICAgICAgSlMuZXhlYyhcImNoYW5nZVwiLCBwaHhFdmVudCwgdmlldywgaW5wdXQsIFtcInB1c2hcIiwge190YXJnZXQ6IGlucHV0Lm5hbWUsIG5ld0NpZDogbmV3Q2lkLCBjYWxsYmFjazogY2FsbGJhY2t9XSlcbiAgICB9KVxuICB9XG5cbiAgcHVzaExpbmtQYXRjaChocmVmLCB0YXJnZXRFbCwgY2FsbGJhY2spe1xuICAgIGxldCBsaW5rUmVmID0gdGhpcy5saXZlU29ja2V0LnNldFBlbmRpbmdMaW5rKGhyZWYpXG4gICAgbGV0IHJlZkdlbiA9IHRhcmdldEVsID8gKCkgPT4gdGhpcy5wdXRSZWYoW3RhcmdldEVsXSwgXCJjbGlja1wiKSA6IG51bGxcbiAgICBsZXQgZmFsbGJhY2sgPSAoKSA9PiB0aGlzLmxpdmVTb2NrZXQucmVkaXJlY3Qod2luZG93LmxvY2F0aW9uLmhyZWYpXG5cbiAgICBsZXQgcHVzaCA9IHRoaXMucHVzaFdpdGhSZXBseShyZWZHZW4sIFwibGl2ZV9wYXRjaFwiLCB7dXJsOiBocmVmfSwgcmVzcCA9PiB7XG4gICAgICB0aGlzLmxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGlmKHJlc3AubGlua19yZWRpcmVjdCl7XG4gICAgICAgICAgdGhpcy5saXZlU29ja2V0LnJlcGxhY2VNYWluKGhyZWYsIG51bGwsIGNhbGxiYWNrLCBsaW5rUmVmKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKHRoaXMubGl2ZVNvY2tldC5jb21taXRQZW5kaW5nTGluayhsaW5rUmVmKSl7XG4gICAgICAgICAgICB0aGlzLmhyZWYgPSBocmVmXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYXBwbHlQZW5kaW5nVXBkYXRlcygpXG4gICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2sobGlua1JlZilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaWYocHVzaCl7XG4gICAgICBwdXNoLnJlY2VpdmUoXCJ0aW1lb3V0XCIsIGZhbGxiYWNrKVxuICAgIH0gZWxzZSB7XG4gICAgICBmYWxsYmFjaygpXG4gICAgfVxuICB9XG5cbiAgZm9ybXNGb3JSZWNvdmVyeShodG1sKXtcbiAgICBpZih0aGlzLmpvaW5Db3VudCA9PT0gMCl7IHJldHVybiBbXSB9XG5cbiAgICBsZXQgcGh4Q2hhbmdlID0gdGhpcy5iaW5kaW5nKFwiY2hhbmdlXCIpXG4gICAgbGV0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpXG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gaHRtbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIERPTS5hbGwodGhpcy5lbCwgYGZvcm1bJHtwaHhDaGFuZ2V9XWApXG4gICAgICAgIC5maWx0ZXIoZm9ybSA9PiBmb3JtLmlkICYmIHRoaXMub3duc0VsZW1lbnQoZm9ybSkpXG4gICAgICAgIC5maWx0ZXIoZm9ybSA9PiBmb3JtLmVsZW1lbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIC5maWx0ZXIoZm9ybSA9PiBmb3JtLmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX0FVVE9fUkVDT1ZFUikpICE9PSBcImlnbm9yZVwiKVxuICAgICAgICAubWFwKGZvcm0gPT4ge1xuICAgICAgICAgIGxldCBuZXdGb3JtID0gdGVtcGxhdGUuY29udGVudC5xdWVyeVNlbGVjdG9yKGBmb3JtW2lkPVwiJHtmb3JtLmlkfVwiXVske3BoeENoYW5nZX09XCIke2Zvcm0uZ2V0QXR0cmlidXRlKHBoeENoYW5nZSl9XCJdYClcbiAgICAgICAgICBpZihuZXdGb3JtKXtcbiAgICAgICAgICAgIHJldHVybiBbZm9ybSwgbmV3Rm9ybSwgdGhpcy50YXJnZXRDb21wb25lbnRJRChuZXdGb3JtKV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtmb3JtLCBudWxsLCBudWxsXVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoW2Zvcm0sIG5ld0Zvcm0sIG5ld0NpZF0pID0+IG5ld0Zvcm0pXG4gICAgKVxuICB9XG5cbiAgbWF5YmVQdXNoQ29tcG9uZW50c0Rlc3Ryb3llZChkZXN0cm95ZWRDSURzKXtcbiAgICBsZXQgd2lsbERlc3Ryb3lDSURzID0gZGVzdHJveWVkQ0lEcy5maWx0ZXIoY2lkID0+IHtcbiAgICAgIHJldHVybiBET00uZmluZENvbXBvbmVudE5vZGVMaXN0KHRoaXMuZWwsIGNpZCkubGVuZ3RoID09PSAwXG4gICAgfSlcbiAgICBpZih3aWxsRGVzdHJveUNJRHMubGVuZ3RoID4gMCl7XG4gICAgICB0aGlzLnBydW5pbmdDSURzLnB1c2goLi4ud2lsbERlc3Ryb3lDSURzKVxuXG4gICAgICB0aGlzLnB1c2hXaXRoUmVwbHkobnVsbCwgXCJjaWRzX3dpbGxfZGVzdHJveVwiLCB7Y2lkczogd2lsbERlc3Ryb3lDSURzfSwgKCkgPT4ge1xuICAgICAgICAvLyBUaGUgY2lkcyBhcmUgZWl0aGVyIGJhY2sgb24gdGhlIHBhZ2Ugb3IgdGhleSB3aWxsIGJlIGZ1bGx5IHJlbW92ZWQsXG4gICAgICAgIC8vIHNvIHdlIGNhbiByZW1vdmUgdGhlbSBmcm9tIHRoZSBwcnVuaW5nQ0lEcy5cbiAgICAgICAgdGhpcy5wcnVuaW5nQ0lEcyA9IHRoaXMucHJ1bmluZ0NJRHMuZmlsdGVyKGNpZCA9PiB3aWxsRGVzdHJveUNJRHMuaW5kZXhPZihjaWQpICE9PSAtMSlcblxuICAgICAgICAvLyBTZWUgaWYgYW55IG9mIHRoZSBjaWRzIHdlIHdhbnRlZCB0byBkZXN0cm95IHdlcmUgYWRkZWQgYmFjayxcbiAgICAgICAgLy8gaWYgdGhleSB3ZXJlIGFkZGVkIGJhY2ssIHdlIGRvbid0IGFjdHVhbGx5IGRlc3Ryb3kgdGhlbS5cbiAgICAgICAgbGV0IGNvbXBsZXRlbHlEZXN0cm95Q0lEcyA9IHdpbGxEZXN0cm95Q0lEcy5maWx0ZXIoY2lkID0+IHtcbiAgICAgICAgICByZXR1cm4gRE9NLmZpbmRDb21wb25lbnROb2RlTGlzdCh0aGlzLmVsLCBjaWQpLmxlbmd0aCA9PT0gMFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmKGNvbXBsZXRlbHlEZXN0cm95Q0lEcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICB0aGlzLnB1c2hXaXRoUmVwbHkobnVsbCwgXCJjaWRzX2Rlc3Ryb3llZFwiLCB7Y2lkczogY29tcGxldGVseURlc3Ryb3lDSURzfSwgKHJlc3ApID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWQucHJ1bmVDSURzKHJlc3AuY2lkcylcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG93bnNFbGVtZW50KGVsKXtcbiAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlKFBIWF9QQVJFTlRfSUQpID09PSB0aGlzLmlkIHx8XG4gICAgICBtYXliZShlbC5jbG9zZXN0KFBIWF9WSUVXX1NFTEVDVE9SKSwgbm9kZSA9PiBub2RlLmlkKSA9PT0gdGhpcy5pZFxuICB9XG5cbiAgc3VibWl0Rm9ybShmb3JtLCB0YXJnZXRDdHgsIHBoeEV2ZW50LCBvcHRzID0ge30pe1xuICAgIERPTS5wdXRQcml2YXRlKGZvcm0sIFBIWF9IQVNfU1VCTUlUVEVELCB0cnVlKVxuICAgIGxldCBwaHhGZWVkYmFjayA9IHRoaXMubGl2ZVNvY2tldC5iaW5kaW5nKFBIWF9GRUVEQkFDS19GT1IpXG4gICAgbGV0IGlucHV0cyA9IEFycmF5LmZyb20oZm9ybS5lbGVtZW50cylcbiAgICB0aGlzLmxpdmVTb2NrZXQuYmx1ckFjdGl2ZUVsZW1lbnQodGhpcylcbiAgICB0aGlzLnB1c2hGb3JtU3VibWl0KGZvcm0sIHRhcmdldEN0eCwgcGh4RXZlbnQsIG9wdHMsICgpID0+IHtcbiAgICAgIGlucHV0cy5mb3JFYWNoKGlucHV0ID0+IERPTS5zaG93RXJyb3IoaW5wdXQsIHBoeEZlZWRiYWNrKSlcbiAgICAgIHRoaXMubGl2ZVNvY2tldC5yZXN0b3JlUHJldmlvdXNseUFjdGl2ZUZvY3VzKClcbiAgICB9KVxuICB9XG5cbiAgYmluZGluZyhraW5kKXsgcmV0dXJuIHRoaXMubGl2ZVNvY2tldC5iaW5kaW5nKGtpbmQpIH1cbn1cbiIsICIvKiogSW5pdGlhbGl6ZXMgdGhlIExpdmVTb2NrZXRcbiAqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGVuZFBvaW50IC0gVGhlIHN0cmluZyBXZWJTb2NrZXQgZW5kcG9pbnQsIGllLCBgXCJ3c3M6Ly9leGFtcGxlLmNvbS9saXZlXCJgLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBcIi9saXZlXCJgIChpbmhlcml0ZWQgaG9zdCAmIHByb3RvY29sKVxuICogQHBhcmFtIHtQaG9lbml4LlNvY2tldH0gc29ja2V0IC0gdGhlIHJlcXVpcmVkIFBob2VuaXggU29ja2V0IGNsYXNzIGltcG9ydGVkIGZyb20gXCJwaG9lbml4XCIuIEZvciBleGFtcGxlOlxuICpcbiAqICAgICBpbXBvcnQge1NvY2tldH0gZnJvbSBcInBob2VuaXhcIlxuICogICAgIGltcG9ydCB7TGl2ZVNvY2tldH0gZnJvbSBcInBob2VuaXhfbGl2ZV92aWV3XCJcbiAqICAgICBsZXQgbGl2ZVNvY2tldCA9IG5ldyBMaXZlU29ja2V0KFwiL2xpdmVcIiwgU29ja2V0LCB7Li4ufSlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbi4gT3V0c2lkZSBvZiBrZXlzIGxpc3RlZCBiZWxvdywgYWxsXG4gKiBjb25maWd1cmF0aW9uIGlzIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgUGhvZW5peCBTb2NrZXQgY29uc3RydWN0b3IuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHMuZGVmYXVsdHNdIC0gVGhlIG9wdGlvbmFsIGRlZmF1bHRzIHRvIHVzZSBmb3IgdmFyaW91cyBiaW5kaW5ncyxcbiAqIHN1Y2ggYXMgYHBoeC1kZWJvdW5jZWAuIFN1cHBvcnRzIHRoZSBmb2xsb3dpbmcga2V5czpcbiAqXG4gKiAgIC0gZGVib3VuY2UgLSB0aGUgbWlsbGlzZWNvbmQgcGh4LWRlYm91bmNlIHRpbWUuIERlZmF1bHRzIDMwMFxuICogICAtIHRocm90dGxlIC0gdGhlIG1pbGxpc2Vjb25kIHBoeC10aHJvdHRsZSB0aW1lLiBEZWZhdWx0cyAzMDBcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy5wYXJhbXNdIC0gVGhlIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBwYXNzaW5nIGNvbm5lY3QgcGFyYW1zLlxuICogVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIHRoZSBlbGVtZW50IGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIExpdmVWaWV3LiBGb3IgZXhhbXBsZTpcbiAqXG4gKiAgICAgKGVsKSA9PiB7dmlldzogZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1teS12aWV3LW5hbWVcIiwgdG9rZW46IHdpbmRvdy5teVRva2VufVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5iaW5kaW5nUHJlZml4XSAtIFRoZSBvcHRpb25hbCBwcmVmaXggdG8gdXNlIGZvciBhbGwgcGh4IERPTSBhbm5vdGF0aW9ucy5cbiAqIERlZmF1bHRzIHRvIFwicGh4LVwiLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzLmhvb2tzXSAtIFRoZSBvcHRpb25hbCBvYmplY3QgZm9yIHJlZmVyZW5jaW5nIExpdmVWaWV3IGhvb2sgY2FsbGJhY2tzLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzLnVwbG9hZGVyc10gLSBUaGUgb3B0aW9uYWwgb2JqZWN0IGZvciByZWZlcmVuY2luZyBMaXZlVmlldyB1cGxvYWRlciBjYWxsYmFja3MuXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtvcHRzLmxvYWRlclRpbWVvdXRdIC0gVGhlIG9wdGlvbmFsIGRlbGF5IGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBhcHBseVxuICogbG9hZGluZyBzdGF0ZXMuXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtvcHRzLm1heFJlbG9hZHNdIC0gVGhlIG1heGltdW0gcmVsb2FkcyBiZWZvcmUgZW50ZXJpbmcgZmFpbHNhZmUgbW9kZS5cbiAqIEBwYXJhbSB7aW50ZWdlcn0gW29wdHMucmVsb2FkSml0dGVyTWluXSAtIFRoZSBtaW5pbXVtIHRpbWUgYmV0d2VlbiBub3JtYWwgcmVsb2FkIGF0dGVtcHRzLlxuICogQHBhcmFtIHtpbnRlZ2VyfSBbb3B0cy5yZWxvYWRKaXR0ZXJNYXhdIC0gVGhlIG1heGltdW0gdGltZSBiZXR3ZWVuIG5vcm1hbCByZWxvYWQgYXR0ZW1wdHMuXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtvcHRzLmZhaWxzYWZlSml0dGVyXSAtIFRoZSB0aW1lIGJldHdlZW4gcmVsb2FkIGF0dGVtcHRzIGluIGZhaWxzYWZlIG1vZGUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy52aWV3TG9nZ2VyXSAtIFRoZSBvcHRpb25hbCBmdW5jdGlvbiB0byBsb2cgZGVidWcgaW5mb3JtYXRpb24uIEZvciBleGFtcGxlOlxuICpcbiAqICAgICAodmlldywga2luZCwgbXNnLCBvYmopID0+IGNvbnNvbGUubG9nKGAke3ZpZXcuaWR9ICR7a2luZH06ICR7bXNnfSAtIGAsIG9iailcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHMubWV0YWRhdGFdIC0gVGhlIG9wdGlvbmFsIG9iamVjdCBtYXBwaW5nIGV2ZW50IG5hbWVzIHRvIGZ1bmN0aW9ucyBmb3JcbiAqIHBvcHVsYXRpbmcgZXZlbnQgbWV0YWRhdGEuIEZvciBleGFtcGxlOlxuICpcbiAqICAgICBtZXRhZGF0YToge1xuICogICAgICAgY2xpY2s6IChlLCBlbCkgPT4ge1xuICogICAgICAgICByZXR1cm4ge1xuICogICAgICAgICAgIGN0cmxLZXk6IGUuY3RybEtleSxcbiAqICAgICAgICAgICBtZXRhS2V5OiBlLm1ldGFLZXksXG4gKiAgICAgICAgICAgZGV0YWlsOiBlLmRldGFpbCB8fCAxLFxuICogICAgICAgICB9XG4gKiAgICAgICB9LFxuICogICAgICAga2V5ZG93bjogKGUsIGVsKSA9PiB7XG4gKiAgICAgICAgIHJldHVybiB7XG4gKiAgICAgICAgICAga2V5OiBlLmtleSxcbiAqICAgICAgICAgICBjdHJsS2V5OiBlLmN0cmxLZXksXG4gKiAgICAgICAgICAgbWV0YUtleTogZS5tZXRhS2V5LFxuICogICAgICAgICAgIHNoaWZ0S2V5OiBlLnNoaWZ0S2V5XG4gKiAgICAgICAgIH1cbiAqICAgICAgIH1cbiAqICAgICB9XG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHMuc2Vzc2lvblN0b3JhZ2VdIC0gQW4gb3B0aW9uYWwgU3RvcmFnZSBjb21wYXRpYmxlIG9iamVjdFxuICogVXNlZnVsIHdoZW4gTGl2ZVZpZXcgd29uJ3QgaGF2ZSBhY2Nlc3MgdG8gYHNlc3Npb25TdG9yYWdlYC4gIEZvciBleGFtcGxlLCBUaGlzIGNvdWxkXG4gKiBoYXBwZW4gaWYgYSBzaXRlIGxvYWRzIGEgY3Jvc3MtZG9tYWluIExpdmVWaWV3IGluIGFuIGlmcmFtZS4gIEV4YW1wbGUgdXNhZ2U6XG4gKlxuICogICAgIGNsYXNzIEluTWVtb3J5U3RvcmFnZSB7XG4gKiAgICAgICBjb25zdHJ1Y3RvcigpIHsgdGhpcy5zdG9yYWdlID0ge30gfVxuICogICAgICAgZ2V0SXRlbShrZXlOYW1lKSB7IHJldHVybiB0aGlzLnN0b3JhZ2Vba2V5TmFtZV0gfVxuICogICAgICAgcmVtb3ZlSXRlbShrZXlOYW1lKSB7IGRlbGV0ZSB0aGlzLnN0b3JhZ2Vba2V5TmFtZV0gfVxuICogICAgICAgc2V0SXRlbShrZXlOYW1lLCBrZXlWYWx1ZSkgeyB0aGlzLnN0b3JhZ2Vba2V5TmFtZV0gPSBrZXlWYWx1ZSB9XG4gKiAgICAgfVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cy5sb2NhbFN0b3JhZ2VdIC0gQW4gb3B0aW9uYWwgU3RvcmFnZSBjb21wYXRpYmxlIG9iamVjdFxuICogVXNlZnVsIGZvciB3aGVuIExpdmVWaWV3IHdvbid0IGhhdmUgYWNjZXNzIHRvIGBsb2NhbFN0b3JhZ2VgLlxuICogU2VlIGBvcHRzLnNlc3Npb25TdG9yYWdlYCBmb3IgZXhhbXBsZXMuXG4qL1xuXG5pbXBvcnQge1xuICBCSU5ESU5HX1BSRUZJWCxcbiAgQ09OU0VDVVRJVkVfUkVMT0FEUyxcbiAgREVGQVVMVFMsXG4gIEZBSUxTQUZFX0pJVFRFUixcbiAgTE9BREVSX1RJTUVPVVQsXG4gIE1BWF9SRUxPQURTLFxuICBQSFhfREVCT1VOQ0UsXG4gIFBIWF9EUk9QX1RBUkdFVCxcbiAgUEhYX0hBU19GT0NVU0VELFxuICBQSFhfS0VZLFxuICBQSFhfTElOS19TVEFURSxcbiAgUEhYX0xJVkVfTElOSyxcbiAgUEhYX0xWX0RFQlVHLFxuICBQSFhfTFZfTEFURU5DWV9TSU0sXG4gIFBIWF9MVl9QUk9GSUxFLFxuICBQSFhfTUFJTixcbiAgUEhYX1BBUkVOVF9JRCxcbiAgUEhYX1ZJRVdfU0VMRUNUT1IsXG4gIFBIWF9ST09UX0lELFxuICBQSFhfVEhST1RUTEUsXG4gIFBIWF9UUkFDS19VUExPQURTLFxuICBQSFhfU0VTU0lPTixcbiAgUkVMT0FEX0pJVFRFUl9NSU4sXG4gIFJFTE9BRF9KSVRURVJfTUFYLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5pbXBvcnQge1xuICBjbG9uZSxcbiAgY2xvc2VzdFBoeEJpbmRpbmcsXG4gIGNsb3N1cmUsXG4gIGRlYnVnLFxuICBpc09iamVjdCxcbiAgbWF5YmVcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5pbXBvcnQgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCJcbmltcG9ydCBET00gZnJvbSBcIi4vZG9tXCJcbmltcG9ydCBIb29rcyBmcm9tIFwiLi9ob29rc1wiXG5pbXBvcnQgTGl2ZVVwbG9hZGVyIGZyb20gXCIuL2xpdmVfdXBsb2FkZXJcIlxuaW1wb3J0IFZpZXcgZnJvbSBcIi4vdmlld1wiXG5pbXBvcnQgSlMgZnJvbSBcIi4vanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXZlU29ja2V0IHtcbiAgY29uc3RydWN0b3IodXJsLCBwaHhTb2NrZXQsIG9wdHMgPSB7fSl7XG4gICAgdGhpcy51bmxvYWRlZCA9IGZhbHNlXG4gICAgaWYoIXBoeFNvY2tldCB8fCBwaHhTb2NrZXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJPYmplY3RcIil7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgYSBwaG9lbml4IFNvY2tldCBtdXN0IGJlIHByb3ZpZGVkIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIExpdmVTb2NrZXQgY29uc3RydWN0b3IuIEZvciBleGFtcGxlOlxuXG4gICAgICAgICAgaW1wb3J0IHtTb2NrZXR9IGZyb20gXCJwaG9lbml4XCJcbiAgICAgICAgICBpbXBvcnQge0xpdmVTb2NrZXR9IGZyb20gXCJwaG9lbml4X2xpdmVfdmlld1wiXG4gICAgICAgICAgbGV0IGxpdmVTb2NrZXQgPSBuZXcgTGl2ZVNvY2tldChcIi9saXZlXCIsIFNvY2tldCwgey4uLn0pXG4gICAgICBgKVxuICAgIH1cbiAgICB0aGlzLnNvY2tldCA9IG5ldyBwaHhTb2NrZXQodXJsLCBvcHRzKVxuICAgIHRoaXMuYmluZGluZ1ByZWZpeCA9IG9wdHMuYmluZGluZ1ByZWZpeCB8fCBCSU5ESU5HX1BSRUZJWFxuICAgIHRoaXMub3B0cyA9IG9wdHNcbiAgICB0aGlzLnBhcmFtcyA9IGNsb3N1cmUob3B0cy5wYXJhbXMgfHwge30pXG4gICAgdGhpcy52aWV3TG9nZ2VyID0gb3B0cy52aWV3TG9nZ2VyXG4gICAgdGhpcy5tZXRhZGF0YUNhbGxiYWNrcyA9IG9wdHMubWV0YWRhdGEgfHwge31cbiAgICB0aGlzLmRlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihjbG9uZShERUZBVUxUUyksIG9wdHMuZGVmYXVsdHMgfHwge30pXG4gICAgdGhpcy5hY3RpdmVFbGVtZW50ID0gbnVsbFxuICAgIHRoaXMucHJldkFjdGl2ZSA9IG51bGxcbiAgICB0aGlzLnNpbGVuY2VkID0gZmFsc2VcbiAgICB0aGlzLm1haW4gPSBudWxsXG4gICAgdGhpcy5vdXRnb2luZ01haW5FbCA9IG51bGxcbiAgICB0aGlzLmNsaWNrU3RhcnRlZEF0VGFyZ2V0ID0gbnVsbFxuICAgIHRoaXMubGlua1JlZiA9IDFcbiAgICB0aGlzLnJvb3RzID0ge31cbiAgICB0aGlzLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgIHRoaXMucGVuZGluZ0xpbmsgPSBudWxsXG4gICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSBjbG9uZSh3aW5kb3cubG9jYXRpb24pXG4gICAgdGhpcy5ob29rcyA9IG9wdHMuaG9va3MgfHwge31cbiAgICB0aGlzLnVwbG9hZGVycyA9IG9wdHMudXBsb2FkZXJzIHx8IHt9XG4gICAgdGhpcy5sb2FkZXJUaW1lb3V0ID0gb3B0cy5sb2FkZXJUaW1lb3V0IHx8IExPQURFUl9USU1FT1VUXG4gICAgdGhpcy5yZWxvYWRXaXRoSml0dGVyVGltZXIgPSBudWxsXG4gICAgdGhpcy5tYXhSZWxvYWRzID0gb3B0cy5tYXhSZWxvYWRzIHx8IE1BWF9SRUxPQURTXG4gICAgdGhpcy5yZWxvYWRKaXR0ZXJNaW4gPSBvcHRzLnJlbG9hZEppdHRlck1pbiB8fCBSRUxPQURfSklUVEVSX01JTlxuICAgIHRoaXMucmVsb2FkSml0dGVyTWF4ID0gb3B0cy5yZWxvYWRKaXR0ZXJNYXggfHwgUkVMT0FEX0pJVFRFUl9NQVhcbiAgICB0aGlzLmZhaWxzYWZlSml0dGVyID0gb3B0cy5mYWlsc2FmZUppdHRlciB8fCBGQUlMU0FGRV9KSVRURVJcbiAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IG9wdHMubG9jYWxTdG9yYWdlIHx8IHdpbmRvdy5sb2NhbFN0b3JhZ2VcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlID0gb3B0cy5zZXNzaW9uU3RvcmFnZSB8fCB3aW5kb3cuc2Vzc2lvblN0b3JhZ2VcbiAgICB0aGlzLmJvdW5kVG9wTGV2ZWxFdmVudHMgPSBmYWxzZVxuICAgIHRoaXMuZG9tQ2FsbGJhY2tzID0gT2JqZWN0LmFzc2lnbih7b25Ob2RlQWRkZWQ6IGNsb3N1cmUoKSwgb25CZWZvcmVFbFVwZGF0ZWQ6IGNsb3N1cmUoKX0sIG9wdHMuZG9tIHx8IHt9KVxuICAgIHRoaXMudHJhbnNpdGlvbnMgPSBuZXcgVHJhbnNpdGlvblNldCgpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCBfZSA9PiB7XG4gICAgICB0aGlzLnVubG9hZGVkID0gdHJ1ZVxuICAgIH0pXG4gICAgdGhpcy5zb2NrZXQub25PcGVuKCgpID0+IHtcbiAgICAgIGlmKHRoaXMuaXNVbmxvYWRlZCgpKXtcbiAgICAgICAgLy8gcmVsb2FkIHBhZ2UgaWYgYmVpbmcgcmVzdG9yZWQgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUgYW5kIGJyb3dzZXIgZG9lcyBub3QgZW1pdCBcInBhZ2VzaG93XCJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIHB1YmxpY1xuXG4gIGlzUHJvZmlsZUVuYWJsZWQoKXsgcmV0dXJuIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShQSFhfTFZfUFJPRklMRSkgPT09IFwidHJ1ZVwiIH1cblxuICBpc0RlYnVnRW5hYmxlZCgpeyByZXR1cm4gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFBIWF9MVl9ERUJVRykgPT09IFwidHJ1ZVwiIH1cblxuICBpc0RlYnVnRGlzYWJsZWQoKXsgcmV0dXJuIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShQSFhfTFZfREVCVUcpID09PSBcImZhbHNlXCIgfVxuXG4gIGVuYWJsZURlYnVnKCl7IHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShQSFhfTFZfREVCVUcsIFwidHJ1ZVwiKSB9XG5cbiAgZW5hYmxlUHJvZmlsaW5nKCl7IHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShQSFhfTFZfUFJPRklMRSwgXCJ0cnVlXCIpIH1cblxuICBkaXNhYmxlRGVidWcoKXsgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFBIWF9MVl9ERUJVRywgXCJmYWxzZVwiKSB9XG5cbiAgZGlzYWJsZVByb2ZpbGluZygpeyB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oUEhYX0xWX1BST0ZJTEUpIH1cblxuICBlbmFibGVMYXRlbmN5U2ltKHVwcGVyQm91bmRNcyl7XG4gICAgdGhpcy5lbmFibGVEZWJ1ZygpXG4gICAgY29uc29sZS5sb2coXCJsYXRlbmN5IHNpbXVsYXRvciBlbmFibGVkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhpcyBicm93c2VyIHNlc3Npb24uIENhbGwgZGlzYWJsZUxhdGVuY3lTaW0oKSB0byBkaXNhYmxlXCIpXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFBIWF9MVl9MQVRFTkNZX1NJTSwgdXBwZXJCb3VuZE1zKVxuICB9XG5cbiAgZGlzYWJsZUxhdGVuY3lTaW0oKXsgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFBIWF9MVl9MQVRFTkNZX1NJTSkgfVxuXG4gIGdldExhdGVuY3lTaW0oKXtcbiAgICBsZXQgc3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFBIWF9MVl9MQVRFTkNZX1NJTSlcbiAgICByZXR1cm4gc3RyID8gcGFyc2VJbnQoc3RyKSA6IG51bGxcbiAgfVxuXG4gIGdldFNvY2tldCgpeyByZXR1cm4gdGhpcy5zb2NrZXQgfVxuXG4gIGNvbm5lY3QoKXtcbiAgICAvLyBlbmFibGUgZGVidWcgYnkgZGVmYXVsdCBpZiBvbiBsb2NhbGhvc3QgYW5kIG5vdCBleHBsaWNpdGx5IGRpc2FibGVkXG4gICAgaWYod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSBcImxvY2FsaG9zdFwiICYmICF0aGlzLmlzRGVidWdEaXNhYmxlZCgpKXsgdGhpcy5lbmFibGVEZWJ1ZygpIH1cbiAgICBsZXQgZG9Db25uZWN0ID0gKCkgPT4ge1xuICAgICAgaWYodGhpcy5qb2luUm9vdFZpZXdzKCkpe1xuICAgICAgICB0aGlzLmJpbmRUb3BMZXZlbEV2ZW50cygpXG4gICAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QoKVxuICAgICAgfSBlbHNlIGlmKHRoaXMubWFpbil7XG4gICAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QoKVxuICAgICAgfVxuICAgIH1cbiAgICBpZihbXCJjb21wbGV0ZVwiLCBcImxvYWRlZFwiLCBcImludGVyYWN0aXZlXCJdLmluZGV4T2YoZG9jdW1lbnQucmVhZHlTdGF0ZSkgPj0gMCl7XG4gICAgICBkb0Nvbm5lY3QoKVxuICAgIH0gZWxzZSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLCAoKSA9PiBkb0Nvbm5lY3QoKSlcbiAgICB9XG4gIH1cblxuICBkaXNjb25uZWN0KGNhbGxiYWNrKXtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5yZWxvYWRXaXRoSml0dGVyVGltZXIpXG4gICAgdGhpcy5zb2NrZXQuZGlzY29ubmVjdChjYWxsYmFjaylcbiAgfVxuXG4gIHJlcGxhY2VUcmFuc3BvcnQodHJhbnNwb3J0KXtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5yZWxvYWRXaXRoSml0dGVyVGltZXIpXG4gICAgdGhpcy5zb2NrZXQucmVwbGFjZVRyYW5zcG9ydCh0cmFuc3BvcnQpXG4gICAgdGhpcy5jb25uZWN0KClcbiAgfVxuXG4gIGV4ZWNKUyhlbCwgZW5jb2RlZEpTLCBldmVudFR5cGUgPSBudWxsKXtcbiAgICB0aGlzLm93bmVyKGVsLCB2aWV3ID0+IEpTLmV4ZWMoZXZlbnRUeXBlLCBlbmNvZGVkSlMsIHZpZXcsIGVsKSlcbiAgfVxuXG4gIC8vIHByaXZhdGVcblxuICB0cmlnZ2VyRE9NKGtpbmQsIGFyZ3MpeyB0aGlzLmRvbUNhbGxiYWNrc1traW5kXSguLi5hcmdzKSB9XG5cbiAgdGltZShuYW1lLCBmdW5jKXtcbiAgICBpZighdGhpcy5pc1Byb2ZpbGVFbmFibGVkKCkgfHwgIWNvbnNvbGUudGltZSl7IHJldHVybiBmdW5jKCkgfVxuICAgIGNvbnNvbGUudGltZShuYW1lKVxuICAgIGxldCByZXN1bHQgPSBmdW5jKClcbiAgICBjb25zb2xlLnRpbWVFbmQobmFtZSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBsb2codmlldywga2luZCwgbXNnQ2FsbGJhY2spe1xuICAgIGlmKHRoaXMudmlld0xvZ2dlcil7XG4gICAgICBsZXQgW21zZywgb2JqXSA9IG1zZ0NhbGxiYWNrKClcbiAgICAgIHRoaXMudmlld0xvZ2dlcih2aWV3LCBraW5kLCBtc2csIG9iailcbiAgICB9IGVsc2UgaWYodGhpcy5pc0RlYnVnRW5hYmxlZCgpKXtcbiAgICAgIGxldCBbbXNnLCBvYmpdID0gbXNnQ2FsbGJhY2soKVxuICAgICAgZGVidWcodmlldywga2luZCwgbXNnLCBvYmopXG4gICAgfVxuICB9XG5cbiAgcmVxdWVzdERPTVVwZGF0ZShjYWxsYmFjayl7XG4gICAgdGhpcy50cmFuc2l0aW9ucy5hZnRlcihjYWxsYmFjaylcbiAgfVxuXG4gIHRyYW5zaXRpb24odGltZSwgb25TdGFydCwgb25Eb25lID0gZnVuY3Rpb24oKXt9KXtcbiAgICB0aGlzLnRyYW5zaXRpb25zLmFkZFRyYW5zaXRpb24odGltZSwgb25TdGFydCwgb25Eb25lKVxuICB9XG5cbiAgb25DaGFubmVsKGNoYW5uZWwsIGV2ZW50LCBjYil7XG4gICAgY2hhbm5lbC5vbihldmVudCwgZGF0YSA9PiB7XG4gICAgICBsZXQgbGF0ZW5jeSA9IHRoaXMuZ2V0TGF0ZW5jeVNpbSgpXG4gICAgICBpZighbGF0ZW5jeSl7XG4gICAgICAgIGNiKGRhdGEpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgc2ltdWxhdGluZyAke2xhdGVuY3l9bXMgb2YgbGF0ZW5jeSBmcm9tIHNlcnZlciB0byBjbGllbnRgKVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGNiKGRhdGEpLCBsYXRlbmN5KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB3cmFwUHVzaCh2aWV3LCBvcHRzLCBwdXNoKXtcbiAgICBsZXQgbGF0ZW5jeSA9IHRoaXMuZ2V0TGF0ZW5jeVNpbSgpXG4gICAgbGV0IG9sZEpvaW5Db3VudCA9IHZpZXcuam9pbkNvdW50XG4gICAgaWYoIWxhdGVuY3kpe1xuICAgICAgaWYodGhpcy5pc0Nvbm5lY3RlZCgpICYmIG9wdHMudGltZW91dCl7XG4gICAgICAgIHJldHVybiBwdXNoKCkucmVjZWl2ZShcInRpbWVvdXRcIiwgKCkgPT4ge1xuICAgICAgICAgIGlmKHZpZXcuam9pbkNvdW50ID09PSBvbGRKb2luQ291bnQgJiYgIXZpZXcuaXNEZXN0cm95ZWQoKSl7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZFdpdGhKaXR0ZXIodmlldywgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZyh2aWV3LCBcInRpbWVvdXRcIiwgKCkgPT4gW1wicmVjZWl2ZWQgdGltZW91dCB3aGlsZSBjb21tdW5pY2F0aW5nIHdpdGggc2VydmVyLiBGYWxsaW5nIGJhY2sgdG8gaGFyZCByZWZyZXNoIGZvciByZWNvdmVyeVwiXSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHB1c2goKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGBzaW11bGF0aW5nICR7bGF0ZW5jeX1tcyBvZiBsYXRlbmN5IGZyb20gY2xpZW50IHRvIHNlcnZlcmApXG4gICAgbGV0IGZha2VQdXNoID0ge1xuICAgICAgcmVjZWl2ZXM6IFtdLFxuICAgICAgcmVjZWl2ZShraW5kLCBjYil7IHRoaXMucmVjZWl2ZXMucHVzaChba2luZCwgY2JdKSB9XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYodmlldy5pc0Rlc3Ryb3llZCgpKXsgcmV0dXJuIH1cbiAgICAgIGZha2VQdXNoLnJlY2VpdmVzLnJlZHVjZSgoYWNjLCBba2luZCwgY2JdKSA9PiBhY2MucmVjZWl2ZShraW5kLCBjYiksIHB1c2goKSlcbiAgICB9LCBsYXRlbmN5KVxuICAgIHJldHVybiBmYWtlUHVzaFxuICB9XG5cbiAgcmVsb2FkV2l0aEppdHRlcih2aWV3LCBsb2cpe1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnJlbG9hZFdpdGhKaXR0ZXJUaW1lcilcbiAgICB0aGlzLmRpc2Nvbm5lY3QoKVxuICAgIGxldCBtaW5NcyA9IHRoaXMucmVsb2FkSml0dGVyTWluXG4gICAgbGV0IG1heE1zID0gdGhpcy5yZWxvYWRKaXR0ZXJNYXhcbiAgICBsZXQgYWZ0ZXJNcyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXhNcyAtIG1pbk1zICsgMSkpICsgbWluTXNcbiAgICBsZXQgdHJpZXMgPSBCcm93c2VyLnVwZGF0ZUxvY2FsKHRoaXMubG9jYWxTdG9yYWdlLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIENPTlNFQ1VUSVZFX1JFTE9BRFMsIDAsIGNvdW50ID0+IGNvdW50ICsgMSlcbiAgICBpZih0cmllcyA+IHRoaXMubWF4UmVsb2Fkcyl7XG4gICAgICBhZnRlck1zID0gdGhpcy5mYWlsc2FmZUppdHRlclxuICAgIH1cbiAgICB0aGlzLnJlbG9hZFdpdGhKaXR0ZXJUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gaWYgdmlldyBoYXMgcmVjb3ZlcmVkLCBzdWNoIGFzIHRyYW5zcG9ydCByZXBsYWNlZCwgdGhlbiBjYW5jZWxcbiAgICAgIGlmKHZpZXcuaXNEZXN0cm95ZWQoKSB8fCB2aWV3LmlzQ29ubmVjdGVkKCkpeyByZXR1cm4gfVxuICAgICAgdmlldy5kZXN0cm95KClcbiAgICAgIGxvZyA/IGxvZygpIDogdGhpcy5sb2codmlldywgXCJqb2luXCIsICgpID0+IFtgZW5jb3VudGVyZWQgJHt0cmllc30gY29uc2VjdXRpdmUgcmVsb2Fkc2BdKVxuICAgICAgaWYodHJpZXMgPiB0aGlzLm1heFJlbG9hZHMpe1xuICAgICAgICB0aGlzLmxvZyh2aWV3LCBcImpvaW5cIiwgKCkgPT4gW2BleGNlZWRlZCAke3RoaXMubWF4UmVsb2Fkc30gY29uc2VjdXRpdmUgcmVsb2Fkcy4gRW50ZXJpbmcgZmFpbHNhZmUgbW9kZWBdKVxuICAgICAgfVxuICAgICAgaWYodGhpcy5oYXNQZW5kaW5nTGluaygpKXtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gdGhpcy5wZW5kaW5nTGlua1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG4gICAgfSwgYWZ0ZXJNcylcbiAgfVxuXG4gIGdldEhvb2tDYWxsYmFja3MobmFtZSl7XG4gICAgcmV0dXJuIG5hbWUgJiYgbmFtZS5zdGFydHNXaXRoKFwiUGhvZW5peC5cIikgPyBIb29rc1tuYW1lLnNwbGl0KFwiLlwiKVsxXV0gOiB0aGlzLmhvb2tzW25hbWVdXG4gIH1cblxuICBpc1VubG9hZGVkKCl7IHJldHVybiB0aGlzLnVubG9hZGVkIH1cblxuICBpc0Nvbm5lY3RlZCgpeyByZXR1cm4gdGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSB9XG5cbiAgZ2V0QmluZGluZ1ByZWZpeCgpeyByZXR1cm4gdGhpcy5iaW5kaW5nUHJlZml4IH1cblxuICBiaW5kaW5nKGtpbmQpeyByZXR1cm4gYCR7dGhpcy5nZXRCaW5kaW5nUHJlZml4KCl9JHtraW5kfWAgfVxuXG4gIGNoYW5uZWwodG9waWMsIHBhcmFtcyl7IHJldHVybiB0aGlzLnNvY2tldC5jaGFubmVsKHRvcGljLCBwYXJhbXMpIH1cblxuICBqb2luUm9vdFZpZXdzKCl7XG4gICAgbGV0IHJvb3RzRm91bmQgPSBmYWxzZVxuICAgIERPTS5hbGwoZG9jdW1lbnQsIGAke1BIWF9WSUVXX1NFTEVDVE9SfTpub3QoWyR7UEhYX1BBUkVOVF9JRH1dKWAsIHJvb3RFbCA9PiB7XG4gICAgICBpZighdGhpcy5nZXRSb290QnlJZChyb290RWwuaWQpKXtcbiAgICAgICAgbGV0IHZpZXcgPSB0aGlzLm5ld1Jvb3RWaWV3KHJvb3RFbClcbiAgICAgICAgdmlldy5zZXRIcmVmKHRoaXMuZ2V0SHJlZigpKVxuICAgICAgICB2aWV3LmpvaW4oKVxuICAgICAgICBpZihyb290RWwuaGFzQXR0cmlidXRlKFBIWF9NQUlOKSl7IHRoaXMubWFpbiA9IHZpZXcgfVxuICAgICAgfVxuICAgICAgcm9vdHNGb3VuZCA9IHRydWVcbiAgICB9KVxuICAgIHJldHVybiByb290c0ZvdW5kXG4gIH1cblxuICByZWRpcmVjdCh0bywgZmxhc2gpe1xuICAgIHRoaXMuZGlzY29ubmVjdCgpXG4gICAgQnJvd3Nlci5yZWRpcmVjdCh0bywgZmxhc2gpXG4gIH1cblxuICByZXBsYWNlTWFpbihocmVmLCBmbGFzaCwgY2FsbGJhY2sgPSBudWxsLCBsaW5rUmVmID0gdGhpcy5zZXRQZW5kaW5nTGluayhocmVmKSl7XG4gICAgdGhpcy5vdXRnb2luZ01haW5FbCA9IHRoaXMub3V0Z29pbmdNYWluRWwgfHwgdGhpcy5tYWluLmVsXG4gICAgbGV0IG5ld01haW5FbCA9IERPTS5jbG9uZU5vZGUodGhpcy5vdXRnb2luZ01haW5FbCwgXCJcIilcbiAgICB0aGlzLm1haW4uc2hvd0xvYWRlcih0aGlzLmxvYWRlclRpbWVvdXQpXG4gICAgdGhpcy5tYWluLmRlc3Ryb3koKVxuXG4gICAgdGhpcy5tYWluID0gdGhpcy5uZXdSb290VmlldyhuZXdNYWluRWwsIGZsYXNoKVxuICAgIHRoaXMubWFpbi5zZXRSZWRpcmVjdChocmVmKVxuICAgIHRoaXMudHJhbnNpdGlvblJlbW92ZXMoKVxuICAgIHRoaXMubWFpbi5qb2luKChqb2luQ291bnQsIG9uRG9uZSkgPT4ge1xuICAgICAgaWYoam9pbkNvdW50ID09PSAxICYmIHRoaXMuY29tbWl0UGVuZGluZ0xpbmsobGlua1JlZikpe1xuICAgICAgICB0aGlzLnJlcXVlc3RET01VcGRhdGUoKCkgPT4ge1xuICAgICAgICAgIERPTS5maW5kUGh4U3RpY2t5KGRvY3VtZW50KS5mb3JFYWNoKGVsID0+IG5ld01haW5FbC5hcHBlbmRDaGlsZChlbCkpXG4gICAgICAgICAgdGhpcy5vdXRnb2luZ01haW5FbC5yZXBsYWNlV2l0aChuZXdNYWluRWwpXG4gICAgICAgICAgdGhpcy5vdXRnb2luZ01haW5FbCA9IG51bGxcbiAgICAgICAgICBjYWxsYmFjayAmJiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spXG4gICAgICAgICAgb25Eb25lKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdHJhbnNpdGlvblJlbW92ZXMoZWxlbWVudHMpe1xuICAgIGxldCByZW1vdmVBdHRyID0gdGhpcy5iaW5kaW5nKFwicmVtb3ZlXCIpXG4gICAgZWxlbWVudHMgPSBlbGVtZW50cyB8fCBET00uYWxsKGRvY3VtZW50LCBgWyR7cmVtb3ZlQXR0cn1dYClcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGlmKGRvY3VtZW50LmJvZHkuY29udGFpbnMoZWwpKXsgLy8gc2tpcCBjaGlsZHJlbiBhbHJlYWR5IHJlbW92ZWRcbiAgICAgICAgdGhpcy5leGVjSlMoZWwsIGVsLmdldEF0dHJpYnV0ZShyZW1vdmVBdHRyKSwgXCJyZW1vdmVcIilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgaXNQaHhWaWV3KGVsKXsgcmV0dXJuIGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUoUEhYX1NFU1NJT04pICE9PSBudWxsIH1cblxuICBuZXdSb290VmlldyhlbCwgZmxhc2gpe1xuICAgIGxldCB2aWV3ID0gbmV3IFZpZXcoZWwsIHRoaXMsIG51bGwsIGZsYXNoKVxuICAgIHRoaXMucm9vdHNbdmlldy5pZF0gPSB2aWV3XG4gICAgcmV0dXJuIHZpZXdcbiAgfVxuXG4gIG93bmVyKGNoaWxkRWwsIGNhbGxiYWNrKXtcbiAgICBsZXQgdmlldyA9IG1heWJlKGNoaWxkRWwuY2xvc2VzdChQSFhfVklFV19TRUxFQ1RPUiksIGVsID0+IHRoaXMuZ2V0Vmlld0J5RWwoZWwpKSB8fCB0aGlzLm1haW5cbiAgICBpZih2aWV3KXsgY2FsbGJhY2sodmlldykgfVxuICB9XG5cbiAgd2l0aGluT3duZXJzKGNoaWxkRWwsIGNhbGxiYWNrKXtcbiAgICB0aGlzLm93bmVyKGNoaWxkRWwsIHZpZXcgPT4gY2FsbGJhY2sodmlldywgY2hpbGRFbCkpXG4gIH1cblxuICBnZXRWaWV3QnlFbChlbCl7XG4gICAgbGV0IHJvb3RJZCA9IGVsLmdldEF0dHJpYnV0ZShQSFhfUk9PVF9JRClcbiAgICByZXR1cm4gbWF5YmUodGhpcy5nZXRSb290QnlJZChyb290SWQpLCByb290ID0+IHJvb3QuZ2V0RGVzY2VuZGVudEJ5RWwoZWwpKVxuICB9XG5cbiAgZ2V0Um9vdEJ5SWQoaWQpeyByZXR1cm4gdGhpcy5yb290c1tpZF0gfVxuXG4gIGRlc3Ryb3lBbGxWaWV3cygpe1xuICAgIGZvcihsZXQgaWQgaW4gdGhpcy5yb290cyl7XG4gICAgICB0aGlzLnJvb3RzW2lkXS5kZXN0cm95KClcbiAgICAgIGRlbGV0ZSB0aGlzLnJvb3RzW2lkXVxuICAgIH1cbiAgICB0aGlzLm1haW4gPSBudWxsXG4gIH1cblxuICBkZXN0cm95Vmlld0J5RWwoZWwpe1xuICAgIGxldCByb290ID0gdGhpcy5nZXRSb290QnlJZChlbC5nZXRBdHRyaWJ1dGUoUEhYX1JPT1RfSUQpKVxuICAgIGlmKHJvb3QgJiYgcm9vdC5pZCA9PT0gZWwuaWQpe1xuICAgICAgcm9vdC5kZXN0cm95KClcbiAgICAgIGRlbGV0ZSB0aGlzLnJvb3RzW3Jvb3QuaWRdXG4gICAgfSBlbHNlIGlmKHJvb3Qpe1xuICAgICAgcm9vdC5kZXN0cm95RGVzY2VuZGVudChlbC5pZClcbiAgICB9XG4gIH1cblxuICBzZXRBY3RpdmVFbGVtZW50KHRhcmdldCl7XG4gICAgaWYodGhpcy5hY3RpdmVFbGVtZW50ID09PSB0YXJnZXQpeyByZXR1cm4gfVxuICAgIHRoaXMuYWN0aXZlRWxlbWVudCA9IHRhcmdldFxuICAgIGxldCBjYW5jZWwgPSAoKSA9PiB7XG4gICAgICBpZih0YXJnZXQgPT09IHRoaXMuYWN0aXZlRWxlbWVudCl7IHRoaXMuYWN0aXZlRWxlbWVudCA9IG51bGwgfVxuICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMpXG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIHRoaXMpXG4gICAgfVxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBjYW5jZWwpXG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBjYW5jZWwpXG4gIH1cblxuICBnZXRBY3RpdmVFbGVtZW50KCl7XG4gICAgaWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYm9keSl7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50IHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBjYW4gYmUgbnVsbCBpbiBJbnRlcm5ldCBFeHBsb3JlciAxMVxuICAgICAgcmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgZG9jdW1lbnQuYm9keVxuICAgIH1cbiAgfVxuXG4gIGRyb3BBY3RpdmVFbGVtZW50KHZpZXcpe1xuICAgIGlmKHRoaXMucHJldkFjdGl2ZSAmJiB2aWV3Lm93bnNFbGVtZW50KHRoaXMucHJldkFjdGl2ZSkpe1xuICAgICAgdGhpcy5wcmV2QWN0aXZlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHJlc3RvcmVQcmV2aW91c2x5QWN0aXZlRm9jdXMoKXtcbiAgICBpZih0aGlzLnByZXZBY3RpdmUgJiYgdGhpcy5wcmV2QWN0aXZlICE9PSBkb2N1bWVudC5ib2R5KXtcbiAgICAgIHRoaXMucHJldkFjdGl2ZS5mb2N1cygpXG4gICAgfVxuICB9XG5cbiAgYmx1ckFjdGl2ZUVsZW1lbnQoKXtcbiAgICB0aGlzLnByZXZBY3RpdmUgPSB0aGlzLmdldEFjdGl2ZUVsZW1lbnQoKVxuICAgIGlmKHRoaXMucHJldkFjdGl2ZSAhPT0gZG9jdW1lbnQuYm9keSl7IHRoaXMucHJldkFjdGl2ZS5ibHVyKCkgfVxuICB9XG5cbiAgYmluZFRvcExldmVsRXZlbnRzKCl7XG4gICAgaWYodGhpcy5ib3VuZFRvcExldmVsRXZlbnRzKXsgcmV0dXJuIH1cblxuICAgIHRoaXMuYm91bmRUb3BMZXZlbEV2ZW50cyA9IHRydWVcbiAgICAvLyBlbnRlciBmYWlsc2FmZSByZWxvYWQgaWYgc2VydmVyIGhhcyBnb25lIGF3YXkgaW50ZW50aW9uYWxseSwgc3VjaCBhcyBcImRpc2Nvbm5lY3RcIiBicm9hZGNhc3RcbiAgICB0aGlzLnNvY2tldC5vbkNsb3NlKGV2ZW50ID0+IHtcbiAgICAgIGlmKGV2ZW50ICYmIGV2ZW50LmNvZGUgPT09IDEwMDAgJiYgdGhpcy5tYWluKXtcbiAgICAgICAgdGhpcy5yZWxvYWRXaXRoSml0dGVyKHRoaXMubWFpbilcbiAgICAgIH1cbiAgICB9KVxuICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uICgpeyB9KSAvLyBlbnN1cmUgYWxsIGNsaWNrIGV2ZW50cyBidWJibGUgZm9yIG1vYmlsZSBTYWZhcmlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsIGUgPT4ge1xuICAgICAgaWYoZS5wZXJzaXN0ZWQpeyAvLyByZWxvYWQgcGFnZSBpZiBiZWluZyByZXN0b3JlZCBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZVxuICAgICAgICB0aGlzLmdldFNvY2tldCgpLmRpc2Nvbm5lY3QoKVxuICAgICAgICB0aGlzLndpdGhQYWdlTG9hZGluZyh7dG86IHdpbmRvdy5sb2NhdGlvbi5ocmVmLCBraW5kOiBcInJlZGlyZWN0XCJ9KVxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cbiAgICB9LCB0cnVlKVxuICAgIHRoaXMuYmluZE5hdigpXG4gICAgdGhpcy5iaW5kQ2xpY2tzKClcbiAgICB0aGlzLmJpbmRGb3JtcygpXG4gICAgdGhpcy5iaW5kKHtrZXl1cDogXCJrZXl1cFwiLCBrZXlkb3duOiBcImtleWRvd25cIn0sIChlLCB0eXBlLCB2aWV3LCB0YXJnZXRFbCwgcGh4RXZlbnQsIGV2ZW50VGFyZ2V0KSA9PiB7XG4gICAgICBsZXQgbWF0Y2hLZXkgPSB0YXJnZXRFbC5nZXRBdHRyaWJ1dGUodGhpcy5iaW5kaW5nKFBIWF9LRVkpKVxuICAgICAgbGV0IHByZXNzZWRLZXkgPSBlLmtleSAmJiBlLmtleS50b0xvd2VyQ2FzZSgpIC8vIGNocm9tZSBjbGlja2VkIGF1dG9jb21wbGV0ZXMgc2VuZCBhIGtleWRvd24gd2l0aG91dCBrZXlcbiAgICAgIGlmKG1hdGNoS2V5ICYmIG1hdGNoS2V5LnRvTG93ZXJDYXNlKCkgIT09IHByZXNzZWRLZXkpeyByZXR1cm4gfVxuXG4gICAgICBsZXQgZGF0YSA9IHtrZXk6IGUua2V5LCAuLi50aGlzLmV2ZW50TWV0YSh0eXBlLCBlLCB0YXJnZXRFbCl9XG4gICAgICBKUy5leGVjKHR5cGUsIHBoeEV2ZW50LCB2aWV3LCB0YXJnZXRFbCwgW1wicHVzaFwiLCB7ZGF0YX1dKVxuICAgIH0pXG4gICAgdGhpcy5iaW5kKHtibHVyOiBcImZvY3Vzb3V0XCIsIGZvY3VzOiBcImZvY3VzaW5cIn0sIChlLCB0eXBlLCB2aWV3LCB0YXJnZXRFbCwgcGh4RXZlbnQsIGV2ZW50VGFyZ2V0KSA9PiB7XG4gICAgICBpZighZXZlbnRUYXJnZXQpe1xuICAgICAgICBsZXQgZGF0YSA9IHtrZXk6IGUua2V5LCAuLi50aGlzLmV2ZW50TWV0YSh0eXBlLCBlLCB0YXJnZXRFbCl9XG4gICAgICAgIEpTLmV4ZWModHlwZSwgcGh4RXZlbnQsIHZpZXcsIHRhcmdldEVsLCBbXCJwdXNoXCIsIHtkYXRhfV0pXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmJpbmQoe2JsdXI6IFwiYmx1clwiLCBmb2N1czogXCJmb2N1c1wifSwgKGUsIHR5cGUsIHZpZXcsIHRhcmdldEVsLCB0YXJnZXRDdHgsIHBoeEV2ZW50LCBwaHhUYXJnZXQpID0+IHtcbiAgICAgIC8vIGJsdXIgYW5kIGZvY3VzIGFyZSB0cmlnZ2VyZWQgb24gZG9jdW1lbnQgYW5kIHdpbmRvdy4gRGlzY2FyZCBvbmUgdG8gYXZvaWQgZHVwc1xuICAgICAgaWYocGh4VGFyZ2V0ID09PSBcIndpbmRvd1wiKXtcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmV2ZW50TWV0YSh0eXBlLCBlLCB0YXJnZXRFbClcbiAgICAgICAgSlMuZXhlYyh0eXBlLCBwaHhFdmVudCwgdmlldywgdGFyZ2V0RWwsIFtcInB1c2hcIiwge2RhdGF9XSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZHJhZ292ZXJcIiwgZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJkcm9wXCIsIGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBsZXQgZHJvcFRhcmdldElkID0gbWF5YmUoY2xvc2VzdFBoeEJpbmRpbmcoZS50YXJnZXQsIHRoaXMuYmluZGluZyhQSFhfRFJPUF9UQVJHRVQpKSwgdHJ1ZVRhcmdldCA9PiB7XG4gICAgICAgIHJldHVybiB0cnVlVGFyZ2V0LmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX0RST1BfVEFSR0VUKSlcbiAgICAgIH0pXG4gICAgICBsZXQgZHJvcFRhcmdldCA9IGRyb3BUYXJnZXRJZCAmJiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkcm9wVGFyZ2V0SWQpXG4gICAgICBsZXQgZmlsZXMgPSBBcnJheS5mcm9tKGUuZGF0YVRyYW5zZmVyLmZpbGVzIHx8IFtdKVxuICAgICAgaWYoIWRyb3BUYXJnZXQgfHwgZHJvcFRhcmdldC5kaXNhYmxlZCB8fCBmaWxlcy5sZW5ndGggPT09IDAgfHwgIShkcm9wVGFyZ2V0LmZpbGVzIGluc3RhbmNlb2YgRmlsZUxpc3QpKXsgcmV0dXJuIH1cblxuICAgICAgTGl2ZVVwbG9hZGVyLnRyYWNrRmlsZXMoZHJvcFRhcmdldCwgZmlsZXMpXG4gICAgICBkcm9wVGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwge2J1YmJsZXM6IHRydWV9KSlcbiAgICB9KVxuICAgIHRoaXMub24oUEhYX1RSQUNLX1VQTE9BRFMsIGUgPT4ge1xuICAgICAgbGV0IHVwbG9hZFRhcmdldCA9IGUudGFyZ2V0XG4gICAgICBpZighRE9NLmlzVXBsb2FkSW5wdXQodXBsb2FkVGFyZ2V0KSl7IHJldHVybiB9XG4gICAgICBsZXQgZmlsZXMgPSBBcnJheS5mcm9tKGUuZGV0YWlsLmZpbGVzIHx8IFtdKS5maWx0ZXIoZiA9PiBmIGluc3RhbmNlb2YgRmlsZSB8fCBmIGluc3RhbmNlb2YgQmxvYilcbiAgICAgIExpdmVVcGxvYWRlci50cmFja0ZpbGVzKHVwbG9hZFRhcmdldCwgZmlsZXMpXG4gICAgICB1cGxvYWRUYXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7YnViYmxlczogdHJ1ZX0pKVxuICAgIH0pXG4gIH1cblxuICBldmVudE1ldGEoZXZlbnROYW1lLCBlLCB0YXJnZXRFbCl7XG4gICAgbGV0IGNhbGxiYWNrID0gdGhpcy5tZXRhZGF0YUNhbGxiYWNrc1tldmVudE5hbWVdXG4gICAgcmV0dXJuIGNhbGxiYWNrID8gY2FsbGJhY2soZSwgdGFyZ2V0RWwpIDoge31cbiAgfVxuXG4gIHNldFBlbmRpbmdMaW5rKGhyZWYpe1xuICAgIHRoaXMubGlua1JlZisrXG4gICAgdGhpcy5wZW5kaW5nTGluayA9IGhyZWZcbiAgICByZXR1cm4gdGhpcy5saW5rUmVmXG4gIH1cblxuICBjb21taXRQZW5kaW5nTGluayhsaW5rUmVmKXtcbiAgICBpZih0aGlzLmxpbmtSZWYgIT09IGxpbmtSZWYpe1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaHJlZiA9IHRoaXMucGVuZGluZ0xpbmtcbiAgICAgIHRoaXMucGVuZGluZ0xpbmsgPSBudWxsXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldEhyZWYoKXsgcmV0dXJuIHRoaXMuaHJlZiB9XG5cbiAgaGFzUGVuZGluZ0xpbmsoKXsgcmV0dXJuICEhdGhpcy5wZW5kaW5nTGluayB9XG5cbiAgYmluZChldmVudHMsIGNhbGxiYWNrKXtcbiAgICBmb3IobGV0IGV2ZW50IGluIGV2ZW50cyl7XG4gICAgICBsZXQgYnJvd3NlckV2ZW50TmFtZSA9IGV2ZW50c1tldmVudF1cblxuICAgICAgdGhpcy5vbihicm93c2VyRXZlbnROYW1lLCBlID0+IHtcbiAgICAgICAgbGV0IGJpbmRpbmcgPSB0aGlzLmJpbmRpbmcoZXZlbnQpXG4gICAgICAgIGxldCB3aW5kb3dCaW5kaW5nID0gdGhpcy5iaW5kaW5nKGB3aW5kb3ctJHtldmVudH1gKVxuICAgICAgICBsZXQgdGFyZ2V0UGh4RXZlbnQgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUgJiYgZS50YXJnZXQuZ2V0QXR0cmlidXRlKGJpbmRpbmcpXG4gICAgICAgIGlmKHRhcmdldFBoeEV2ZW50KXtcbiAgICAgICAgICB0aGlzLmRlYm91bmNlKGUudGFyZ2V0LCBlLCBicm93c2VyRXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLndpdGhpbk93bmVycyhlLnRhcmdldCwgdmlldyA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKGUsIGV2ZW50LCB2aWV3LCBlLnRhcmdldCwgdGFyZ2V0UGh4RXZlbnQsIG51bGwpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgRE9NLmFsbChkb2N1bWVudCwgYFske3dpbmRvd0JpbmRpbmd9XWAsIGVsID0+IHtcbiAgICAgICAgICAgIGxldCBwaHhFdmVudCA9IGVsLmdldEF0dHJpYnV0ZSh3aW5kb3dCaW5kaW5nKVxuICAgICAgICAgICAgdGhpcy5kZWJvdW5jZShlbCwgZSwgYnJvd3NlckV2ZW50TmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLndpdGhpbk93bmVycyhlbCwgdmlldyA9PiB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSwgZXZlbnQsIHZpZXcsIGVsLCBwaHhFdmVudCwgXCJ3aW5kb3dcIilcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBiaW5kQ2xpY2tzKCl7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgZSA9PiB0aGlzLmNsaWNrU3RhcnRlZEF0VGFyZ2V0ID0gZS50YXJnZXQpXG4gICAgdGhpcy5iaW5kQ2xpY2soXCJjbGlja1wiLCBcImNsaWNrXCIsIGZhbHNlKVxuICAgIHRoaXMuYmluZENsaWNrKFwibW91c2Vkb3duXCIsIFwiY2FwdHVyZS1jbGlja1wiLCB0cnVlKVxuICB9XG5cbiAgYmluZENsaWNrKGV2ZW50TmFtZSwgYmluZGluZ05hbWUsIGNhcHR1cmUpe1xuICAgIGxldCBjbGljayA9IHRoaXMuYmluZGluZyhiaW5kaW5nTmFtZSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGUgPT4ge1xuICAgICAgbGV0IHRhcmdldCA9IG51bGxcbiAgICAgIGlmKGNhcHR1cmUpe1xuICAgICAgICB0YXJnZXQgPSBlLnRhcmdldC5tYXRjaGVzKGBbJHtjbGlja31dYCkgPyBlLnRhcmdldCA6IGUudGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoYFske2NsaWNrfV1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGNsaWNrU3RhcnRlZEF0VGFyZ2V0ID0gdGhpcy5jbGlja1N0YXJ0ZWRBdFRhcmdldCB8fCBlLnRhcmdldFxuICAgICAgICB0YXJnZXQgPSBjbG9zZXN0UGh4QmluZGluZyhjbGlja1N0YXJ0ZWRBdFRhcmdldCwgY2xpY2spXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hDbGlja0F3YXkoZSwgY2xpY2tTdGFydGVkQXRUYXJnZXQpXG4gICAgICAgIHRoaXMuY2xpY2tTdGFydGVkQXRUYXJnZXQgPSBudWxsXG4gICAgICB9XG4gICAgICBsZXQgcGh4RXZlbnQgPSB0YXJnZXQgJiYgdGFyZ2V0LmdldEF0dHJpYnV0ZShjbGljaylcbiAgICAgIGlmKCFwaHhFdmVudCl7IHJldHVybiB9XG4gICAgICBpZih0YXJnZXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSA9PT0gXCIjXCIpeyBlLnByZXZlbnREZWZhdWx0KCkgfVxuXG4gICAgICB0aGlzLmRlYm91bmNlKHRhcmdldCwgZSwgXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMud2l0aGluT3duZXJzKHRhcmdldCwgdmlldyA9PiB7XG4gICAgICAgICAgSlMuZXhlYyhcImNsaWNrXCIsIHBoeEV2ZW50LCB2aWV3LCB0YXJnZXQsIFtcInB1c2hcIiwge2RhdGE6IHRoaXMuZXZlbnRNZXRhKFwiY2xpY2tcIiwgZSwgdGFyZ2V0KX1dKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9LCBjYXB0dXJlKVxuICB9XG5cbiAgZGlzcGF0Y2hDbGlja0F3YXkoZSwgY2xpY2tTdGFydGVkQXQpe1xuICAgIGxldCBwaHhDbGlja0F3YXkgPSB0aGlzLmJpbmRpbmcoXCJjbGljay1hd2F5XCIpXG4gICAgRE9NLmFsbChkb2N1bWVudCwgYFske3BoeENsaWNrQXdheX1dYCwgZWwgPT4ge1xuICAgICAgaWYoIShlbC5pc1NhbWVOb2RlKGNsaWNrU3RhcnRlZEF0KSB8fCBlbC5jb250YWlucyhjbGlja1N0YXJ0ZWRBdCkpKXtcbiAgICAgICAgdGhpcy53aXRoaW5Pd25lcnMoZS50YXJnZXQsIHZpZXcgPT4ge1xuICAgICAgICAgIGxldCBwaHhFdmVudCA9IGVsLmdldEF0dHJpYnV0ZShwaHhDbGlja0F3YXkpXG4gICAgICAgICAgaWYoSlMuaXNWaXNpYmxlKGVsKSl7XG4gICAgICAgICAgICBKUy5leGVjKFwiY2xpY2tcIiwgcGh4RXZlbnQsIHZpZXcsIGVsLCBbXCJwdXNoXCIsIHtkYXRhOiB0aGlzLmV2ZW50TWV0YShcImNsaWNrXCIsIGUsIGUudGFyZ2V0KX1dKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYmluZE5hdigpe1xuICAgIGlmKCFCcm93c2VyLmNhblB1c2hTdGF0ZSgpKXsgcmV0dXJuIH1cbiAgICBpZihoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uKXsgaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9IFwibWFudWFsXCIgfVxuICAgIGxldCBzY3JvbGxUaW1lciA9IG51bGxcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBfZSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZXIpXG4gICAgICBzY3JvbGxUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBCcm93c2VyLnVwZGF0ZUN1cnJlbnRTdGF0ZShzdGF0ZSA9PiBPYmplY3QuYXNzaWduKHN0YXRlLCB7c2Nyb2xsOiB3aW5kb3cuc2Nyb2xsWX0pKVxuICAgICAgfSwgMTAwKVxuICAgIH0pXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb3BzdGF0ZVwiLCBldmVudCA9PiB7XG4gICAgICBpZighdGhpcy5yZWdpc3Rlck5ld0xvY2F0aW9uKHdpbmRvdy5sb2NhdGlvbikpeyByZXR1cm4gfVxuICAgICAgbGV0IHt0eXBlLCBpZCwgcm9vdCwgc2Nyb2xsfSA9IGV2ZW50LnN0YXRlIHx8IHt9XG4gICAgICBsZXQgaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmXG5cbiAgICAgIHRoaXMucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGlmKHRoaXMubWFpbi5pc0Nvbm5lY3RlZCgpICYmICh0eXBlID09PSBcInBhdGNoXCIgJiYgaWQgPT09IHRoaXMubWFpbi5pZCkpe1xuICAgICAgICAgIHRoaXMubWFpbi5wdXNoTGlua1BhdGNoKGhyZWYsIG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXBsYWNlTWFpbihocmVmLCBudWxsLCAoKSA9PiB7XG4gICAgICAgICAgICBpZihyb290KXsgdGhpcy5yZXBsYWNlUm9vdEhpc3RvcnkoKSB9XG4gICAgICAgICAgICBpZih0eXBlb2Yoc2Nyb2xsKSA9PT0gXCJudW1iZXJcIil7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCBzY3JvbGwpXG4gICAgICAgICAgICAgIH0sIDApIC8vIHRoZSBib2R5IG5lZWRzIHRvIHJlbmRlciBiZWZvcmUgd2Ugc2Nyb2xsLlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSwgZmFsc2UpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAgICAgIGxldCB0YXJnZXQgPSBjbG9zZXN0UGh4QmluZGluZyhlLnRhcmdldCwgUEhYX0xJVkVfTElOSylcbiAgICAgIGxldCB0eXBlID0gdGFyZ2V0ICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoUEhYX0xJVkVfTElOSylcbiAgICAgIGxldCB3YW50c05ld1RhYiA9IGUubWV0YUtleSB8fCBlLmN0cmxLZXkgfHwgZS5idXR0b24gPT09IDFcbiAgICAgIGlmKCF0eXBlIHx8ICF0aGlzLmlzQ29ubmVjdGVkKCkgfHwgIXRoaXMubWFpbiB8fCB3YW50c05ld1RhYil7IHJldHVybiB9XG5cbiAgICAgIGxldCBocmVmID0gdGFyZ2V0LmhyZWZcbiAgICAgIGxldCBsaW5rU3RhdGUgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFBIWF9MSU5LX1NUQVRFKVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpIC8vIGRvIG5vdCBidWJibGUgY2xpY2sgdG8gcmVndWxhciBwaHgtY2xpY2sgYmluZGluZ3NcbiAgICAgIGlmKHRoaXMucGVuZGluZ0xpbmsgPT09IGhyZWYpeyByZXR1cm4gfVxuXG4gICAgICB0aGlzLnJlcXVlc3RET01VcGRhdGUoKCkgPT4ge1xuICAgICAgICBpZih0eXBlID09PSBcInBhdGNoXCIpe1xuICAgICAgICAgIHRoaXMucHVzaEhpc3RvcnlQYXRjaChocmVmLCBsaW5rU3RhdGUsIHRhcmdldClcbiAgICAgICAgfSBlbHNlIGlmKHR5cGUgPT09IFwicmVkaXJlY3RcIil7XG4gICAgICAgICAgdGhpcy5oaXN0b3J5UmVkaXJlY3QoaHJlZiwgbGlua1N0YXRlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtQSFhfTElWRV9MSU5LfSB0byBiZSBcInBhdGNoXCIgb3IgXCJyZWRpcmVjdFwiLCBnb3Q6ICR7dHlwZX1gKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sIGZhbHNlKVxuICB9XG5cbiAgZGlzcGF0Y2hFdmVudChldmVudCwgcGF5bG9hZCA9IHt9KXtcbiAgICBET00uZGlzcGF0Y2hFdmVudCh3aW5kb3csIGBwaHg6JHtldmVudH1gLCB7ZGV0YWlsOiBwYXlsb2FkfSlcbiAgfVxuXG4gIGRpc3BhdGNoRXZlbnRzKGV2ZW50cyl7XG4gICAgZXZlbnRzLmZvckVhY2goKFtldmVudCwgcGF5bG9hZF0pID0+IHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCwgcGF5bG9hZCkpXG4gIH1cblxuICB3aXRoUGFnZUxvYWRpbmcoaW5mbywgY2FsbGJhY2spe1xuICAgIERPTS5kaXNwYXRjaEV2ZW50KHdpbmRvdywgXCJwaHg6cGFnZS1sb2FkaW5nLXN0YXJ0XCIsIHtkZXRhaWw6IGluZm99KVxuICAgIGxldCBkb25lID0gKCkgPT4gRE9NLmRpc3BhdGNoRXZlbnQod2luZG93LCBcInBoeDpwYWdlLWxvYWRpbmctc3RvcFwiLCB7ZGV0YWlsOiBpbmZvfSlcbiAgICByZXR1cm4gY2FsbGJhY2sgPyBjYWxsYmFjayhkb25lKSA6IGRvbmVcbiAgfVxuXG4gIHB1c2hIaXN0b3J5UGF0Y2goaHJlZiwgbGlua1N0YXRlLCB0YXJnZXRFbCl7XG4gICAgdGhpcy53aXRoUGFnZUxvYWRpbmcoe3RvOiBocmVmLCBraW5kOiBcInBhdGNoXCJ9LCBkb25lID0+IHtcbiAgICAgIHRoaXMubWFpbi5wdXNoTGlua1BhdGNoKGhyZWYsIHRhcmdldEVsLCBsaW5rUmVmID0+IHtcbiAgICAgICAgdGhpcy5oaXN0b3J5UGF0Y2goaHJlZiwgbGlua1N0YXRlLCBsaW5rUmVmKVxuICAgICAgICBkb25lKClcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGhpc3RvcnlQYXRjaChocmVmLCBsaW5rU3RhdGUsIGxpbmtSZWYgPSB0aGlzLnNldFBlbmRpbmdMaW5rKGhyZWYpKXtcbiAgICBpZighdGhpcy5jb21taXRQZW5kaW5nTGluayhsaW5rUmVmKSl7IHJldHVybiB9XG5cbiAgICBCcm93c2VyLnB1c2hTdGF0ZShsaW5rU3RhdGUsIHt0eXBlOiBcInBhdGNoXCIsIGlkOiB0aGlzLm1haW4uaWR9LCBocmVmKVxuICAgIHRoaXMucmVnaXN0ZXJOZXdMb2NhdGlvbih3aW5kb3cubG9jYXRpb24pXG4gIH1cblxuICBoaXN0b3J5UmVkaXJlY3QoaHJlZiwgbGlua1N0YXRlLCBmbGFzaCl7XG4gICAgbGV0IHNjcm9sbCA9IHdpbmRvdy5zY3JvbGxZXG4gICAgdGhpcy53aXRoUGFnZUxvYWRpbmcoe3RvOiBocmVmLCBraW5kOiBcInJlZGlyZWN0XCJ9LCBkb25lID0+IHtcbiAgICAgIHRoaXMucmVwbGFjZU1haW4oaHJlZiwgZmxhc2gsICgpID0+IHtcbiAgICAgICAgQnJvd3Nlci5wdXNoU3RhdGUobGlua1N0YXRlLCB7dHlwZTogXCJyZWRpcmVjdFwiLCBpZDogdGhpcy5tYWluLmlkLCBzY3JvbGw6IHNjcm9sbH0sIGhyZWYpXG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZXdMb2NhdGlvbih3aW5kb3cubG9jYXRpb24pXG4gICAgICAgIGRvbmUoKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgcmVwbGFjZVJvb3RIaXN0b3J5KCl7XG4gICAgQnJvd3Nlci5wdXNoU3RhdGUoXCJyZXBsYWNlXCIsIHtyb290OiB0cnVlLCB0eXBlOiBcInBhdGNoXCIsIGlkOiB0aGlzLm1haW4uaWR9KVxuICB9XG5cbiAgcmVnaXN0ZXJOZXdMb2NhdGlvbihuZXdMb2NhdGlvbil7XG4gICAgbGV0IHtwYXRobmFtZSwgc2VhcmNofSA9IHRoaXMuY3VycmVudExvY2F0aW9uXG4gICAgaWYocGF0aG5hbWUgKyBzZWFyY2ggPT09IG5ld0xvY2F0aW9uLnBhdGhuYW1lICsgbmV3TG9jYXRpb24uc2VhcmNoKXtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IGNsb25lKG5ld0xvY2F0aW9uKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBiaW5kRm9ybXMoKXtcbiAgICBsZXQgaXRlcmF0aW9ucyA9IDBcbiAgICB0aGlzLm9uKFwic3VibWl0XCIsIGUgPT4ge1xuICAgICAgbGV0IHBoeEV2ZW50ID0gZS50YXJnZXQuZ2V0QXR0cmlidXRlKHRoaXMuYmluZGluZyhcInN1Ym1pdFwiKSlcbiAgICAgIGlmKCFwaHhFdmVudCl7IHJldHVybiB9XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUudGFyZ2V0LmRpc2FibGVkID0gdHJ1ZVxuICAgICAgdGhpcy53aXRoaW5Pd25lcnMoZS50YXJnZXQsIHZpZXcgPT4ge1xuICAgICAgICBKUy5leGVjKFwic3VibWl0XCIsIHBoeEV2ZW50LCB2aWV3LCBlLnRhcmdldCwgW1wicHVzaFwiLCB7fV0pXG4gICAgICB9KVxuICAgIH0sIGZhbHNlKVxuXG4gICAgZm9yKGxldCB0eXBlIG9mIFtcImNoYW5nZVwiLCBcImlucHV0XCJdKXtcbiAgICAgIHRoaXMub24odHlwZSwgZSA9PiB7XG4gICAgICAgIGxldCBwaHhDaGFuZ2UgPSB0aGlzLmJpbmRpbmcoXCJjaGFuZ2VcIilcbiAgICAgICAgbGV0IGlucHV0ID0gZS50YXJnZXRcbiAgICAgICAgbGV0IGlucHV0RXZlbnQgPSBpbnB1dC5nZXRBdHRyaWJ1dGUocGh4Q2hhbmdlKVxuICAgICAgICBsZXQgZm9ybUV2ZW50ID0gaW5wdXQuZm9ybSAmJiBpbnB1dC5mb3JtLmdldEF0dHJpYnV0ZShwaHhDaGFuZ2UpXG4gICAgICAgIGxldCBwaHhFdmVudCA9IGlucHV0RXZlbnQgfHwgZm9ybUV2ZW50XG4gICAgICAgIGlmKCFwaHhFdmVudCl7IHJldHVybiB9XG4gICAgICAgIGlmKGlucHV0LnR5cGUgPT09IFwibnVtYmVyXCIgJiYgaW5wdXQudmFsaWRpdHkgJiYgaW5wdXQudmFsaWRpdHkuYmFkSW5wdXQpeyByZXR1cm4gfVxuXG4gICAgICAgIGxldCBkaXNwYXRjaGVyID0gaW5wdXRFdmVudCA/IGlucHV0IDogaW5wdXQuZm9ybVxuICAgICAgICBsZXQgY3VycmVudEl0ZXJhdGlvbnMgPSBpdGVyYXRpb25zXG4gICAgICAgIGl0ZXJhdGlvbnMrK1xuICAgICAgICBsZXQge2F0OiBhdCwgdHlwZTogbGFzdFR5cGV9ID0gRE9NLnByaXZhdGUoaW5wdXQsIFwicHJldi1pdGVyYXRpb25cIikgfHwge31cbiAgICAgICAgLy8gZGV0ZWN0IGR1cCBiZWNhdXNlIHNvbWUgYnJvd3NlcnMgZGlzcGF0Y2ggYm90aCBcImlucHV0XCIgYW5kIFwiY2hhbmdlXCJcbiAgICAgICAgaWYoYXQgPT09IGN1cnJlbnRJdGVyYXRpb25zIC0gMSAmJiB0eXBlICE9PSBsYXN0VHlwZSl7IHJldHVybiB9XG5cbiAgICAgICAgRE9NLnB1dFByaXZhdGUoaW5wdXQsIFwicHJldi1pdGVyYXRpb25cIiwge2F0OiBjdXJyZW50SXRlcmF0aW9ucywgdHlwZTogdHlwZX0pXG5cbiAgICAgICAgdGhpcy5kZWJvdW5jZShpbnB1dCwgZSwgdHlwZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMud2l0aGluT3duZXJzKGRpc3BhdGNoZXIsIHZpZXcgPT4ge1xuICAgICAgICAgICAgRE9NLnB1dFByaXZhdGUoaW5wdXQsIFBIWF9IQVNfRk9DVVNFRCwgdHJ1ZSlcbiAgICAgICAgICAgIGlmKCFET00uaXNUZXh0dWFsSW5wdXQoaW5wdXQpKXtcbiAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVFbGVtZW50KGlucHV0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgSlMuZXhlYyhcImNoYW5nZVwiLCBwaHhFdmVudCwgdmlldywgaW5wdXQsIFtcInB1c2hcIiwge190YXJnZXQ6IGUudGFyZ2V0Lm5hbWUsIGRpc3BhdGNoZXI6IGRpc3BhdGNoZXJ9XSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSwgZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgZGVib3VuY2UoZWwsIGV2ZW50LCBldmVudFR5cGUsIGNhbGxiYWNrKXtcbiAgICBpZihldmVudFR5cGUgPT09IFwiYmx1clwiIHx8IGV2ZW50VHlwZSA9PT0gXCJmb2N1c291dFwiKXsgcmV0dXJuIGNhbGxiYWNrKCkgfVxuXG4gICAgbGV0IHBoeERlYm91bmNlID0gdGhpcy5iaW5kaW5nKFBIWF9ERUJPVU5DRSlcbiAgICBsZXQgcGh4VGhyb3R0bGUgPSB0aGlzLmJpbmRpbmcoUEhYX1RIUk9UVExFKVxuICAgIGxldCBkZWZhdWx0RGVib3VuY2UgPSB0aGlzLmRlZmF1bHRzLmRlYm91bmNlLnRvU3RyaW5nKClcbiAgICBsZXQgZGVmYXVsdFRocm90dGxlID0gdGhpcy5kZWZhdWx0cy50aHJvdHRsZS50b1N0cmluZygpXG5cbiAgICB0aGlzLndpdGhpbk93bmVycyhlbCwgdmlldyA9PiB7XG4gICAgICBsZXQgYXN5bmNGaWx0ZXIgPSAoKSA9PiAhdmlldy5pc0Rlc3Ryb3llZCgpICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnMoZWwpXG4gICAgICBET00uZGVib3VuY2UoZWwsIGV2ZW50LCBwaHhEZWJvdW5jZSwgZGVmYXVsdERlYm91bmNlLCBwaHhUaHJvdHRsZSwgZGVmYXVsdFRocm90dGxlLCBhc3luY0ZpbHRlciwgKCkgPT4ge1xuICAgICAgICBjYWxsYmFjaygpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBzaWxlbmNlRXZlbnRzKGNhbGxiYWNrKXtcbiAgICB0aGlzLnNpbGVuY2VkID0gdHJ1ZVxuICAgIGNhbGxiYWNrKClcbiAgICB0aGlzLnNpbGVuY2VkID0gZmFsc2VcbiAgfVxuXG4gIG9uKGV2ZW50LCBjYWxsYmFjayl7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGUgPT4ge1xuICAgICAgaWYoIXRoaXMuc2lsZW5jZWQpeyBjYWxsYmFjayhlKSB9XG4gICAgfSlcbiAgfVxufVxuXG5jbGFzcyBUcmFuc2l0aW9uU2V0IHtcbiAgY29uc3RydWN0b3IoKXtcbiAgICB0aGlzLnRyYW5zaXRpb25zID0gbmV3IFNldCgpXG4gICAgdGhpcy5wZW5kaW5nT3BzID0gW11cbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIHJlc2V0KCl7XG4gICAgdGhpcy50cmFuc2l0aW9ucy5mb3JFYWNoKHRpbWVyID0+IHtcbiAgICAgIGNhbmNlbFRpbWVvdXQodGltZXIpXG4gICAgICB0aGlzLnRyYW5zaXRpb25zLmRlbGV0ZSh0aW1lcilcbiAgICB9KVxuICAgIHRoaXMuZmx1c2hQZW5kaW5nT3BzKClcbiAgfVxuXG4gIGFmdGVyKGNhbGxiYWNrKXtcbiAgICBpZih0aGlzLnNpemUoKSA9PT0gMCl7XG4gICAgICBjYWxsYmFjaygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHVzaFBlbmRpbmdPcChjYWxsYmFjaylcbiAgICB9XG4gIH1cblxuICBhZGRUcmFuc2l0aW9uKHRpbWUsIG9uU3RhcnQsIG9uRG9uZSl7XG4gICAgb25TdGFydCgpXG4gICAgbGV0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zaXRpb25zLmRlbGV0ZSh0aW1lcilcbiAgICAgIG9uRG9uZSgpXG4gICAgICBpZih0aGlzLnNpemUoKSA9PT0gMCl7IHRoaXMuZmx1c2hQZW5kaW5nT3BzKCkgfVxuICAgIH0sIHRpbWUpXG4gICAgdGhpcy50cmFuc2l0aW9ucy5hZGQodGltZXIpXG4gIH1cblxuICBwdXNoUGVuZGluZ09wKG9wKXsgdGhpcy5wZW5kaW5nT3BzLnB1c2gob3ApIH1cblxuICBzaXplKCl7IHJldHVybiB0aGlzLnRyYW5zaXRpb25zLnNpemUgfVxuXG4gIGZsdXNoUGVuZGluZ09wcygpe1xuICAgIHRoaXMucGVuZGluZ09wcy5mb3JFYWNoKG9wID0+IG9wKCkpXG4gICAgdGhpcy5wZW5kaW5nT3BzID0gW11cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFVQSxPQUFFLFNBQVVBLFNBQVEsU0FBVTtBQUU3QjtBQUVBLFlBQUssT0FBTyxXQUFXLFlBQVksT0FBTyxPQUFPLFlBQVksVUFBVztBQVN2RSxpQkFBTyxVQUFVQSxRQUFPLFdBQ3ZCLFFBQVNBLFNBQVEsSUFBSyxJQUN0QixTQUFVLEdBQUk7QUFDYixnQkFBSyxDQUFDLEVBQUUsVUFBVztBQUNsQixvQkFBTSxJQUFJLE1BQU8sMENBQTJDO0FBQUEsWUFDN0Q7QUFDQSxtQkFBTyxRQUFTLENBQUU7QUFBQSxVQUNuQjtBQUFBLFFBQ0YsT0FBTztBQUNOLGtCQUFTQSxPQUFPO0FBQUEsUUFDakI7QUFBQSxNQUdELEdBQUssT0FBTyxXQUFXLGNBQWMsU0FBUyxTQUFNLFNBQVVDLFNBQVEsVUFBVztBQU1qRjtBQUVBLFlBQUksTUFBTSxDQUFDO0FBRVgsWUFBSSxXQUFXLE9BQU87QUFFdEIsWUFBSSxRQUFRLElBQUk7QUFFaEIsWUFBSSxPQUFPLElBQUksT0FBTyxTQUFVLE9BQVE7QUFDdkMsaUJBQU8sSUFBSSxLQUFLLEtBQU0sS0FBTTtBQUFBLFFBQzdCLElBQUksU0FBVSxPQUFRO0FBQ3JCLGlCQUFPLElBQUksT0FBTyxNQUFPLENBQUMsR0FBRyxLQUFNO0FBQUEsUUFDcEM7QUFHQSxZQUFJLE9BQU8sSUFBSTtBQUVmLFlBQUksVUFBVSxJQUFJO0FBRWxCLFlBQUksYUFB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QUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixrQkFBa0I7QUFBQSxVQUNsQixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxTQUFTO0FBQUEsY0FDUDtBQUFBLGNBQ0E7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1I7QUFBQTtBQUFBLFlBRUE7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNY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LFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNB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VUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBR0EsY0FBTSxpQkFBaUI7QUFBQSxVQUNyQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGFBQWE7QUFBQSxVQUNqQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFB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QTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFD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O0FBQUEsWUFDYjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ3BRakI7QUFBQTtBQVVBLGVBQVMsUUFBUSxNQUFNO0FBQ3JCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sWUFB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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmLFNBQVM7QUFBQSxV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QjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sZ0JBQWdCO0FBQUEsVUFDcEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0saUJBQWlCO0FBQUEsVUFDckI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixVQUFVO0FBQUEsWUFDVixTQUFTO0FBQUEsWUFDVCxTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsY0FDUixHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUE7QUFBQSxjQUVIO0FBQUEsY0FDQTtBQUFBLGNBQ0EsR0FBRztBQUFBLGNBQ0gsR0FBRztBQUFBLFlBQ0w7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBO0FBQUEsWUFDQSxLQUFLLFFBQVE7QUFBQTtBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUN0WmpCO0FBQUE7QUFTQSxlQUFTLE1BQU0sTUFBTTtBQUNuQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsU0FBUztBQUFBO0FBQUEsVUFFVCxVQUFVO0FBQUEsWUFDUixVQUFVO0FBQUEsWUFDVixTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSyxRQUFRLE9BQU8sS0FBSyxFQUFFLFdBQVcsR0FBRyxDQUFDO0FBQUEsWUFDMUMsS0FBSyxRQUFRLEtB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QVc7QUFFdEUsY0FBTSxhQUFhO0FBQUEsVUFDakI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsUUFDRjtBQUVBLGNBQU0sVUFBVTtBQUFBLFVBQ2Q7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmLFNBQVM7QUFBQSxVQUNULE1BQU07QUFBQSxVQUNOLFNBQVM7QUFBQTtBQUFBLFVBRVQsVUFBVTtBQUFBLFFBU1o7QUFFQSxjQUFNLHNCQUFz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V0FBVztBQUFBLFFBQ2Y7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFJQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQ0EsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUdBLFVBQU0sUUFBUTtBQUFBO0FBQUEsUUFFWjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7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O0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUdBLGNBQU0saUJBQWlCO0FBQUEsVUFDckI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxhQUFhO0FBQUEsVUFDakI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBaUI7QUFBQSxVQUNyQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVB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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLHFCQUFxQjtBQUFBLFVBQ3pCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FB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QU0sWUFBWTtBQUFBLFFBQ2hCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFFQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFFQSxVQUFNLE9BQU87QUFBQSxRQUNYLEdBQUc7QUFBQSxRQUNILEdBQUc7QUFBQSxNQUNMO0FBS0EsVUFBTSxpQkFBaUI7QUFBQSxRQUNyQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLEVBQUUsS0FBSyxFQUFFLFFBQVE7QUFHakIsVUFBTSxpQkFBaUI7QUFBQSxRQUNyQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBR2pCLFVBQU0sa0JBQWtCO0FBQUEsUUFDdEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBRWpCLFVBQU0sYUFBYTtBQUFBLFFBQ2pCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFD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QTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmLFNBQVM7QUFBQSxVQUNULFVBQ0UsZUFDRyxPQUFPLHVCQUF1QixFQUM5QixPQUFPO0FBQUE7QUFBQSxZQUVOO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUE7QUFBQSxZQUVBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRixDQUFDO0FBQUEsVUFDTCxVQUFVO0FBQUEsUUFDWjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxZQUNSO0FBQUEsWUFDQSxLQUFLO0FBQUEsY0FDSDtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsZ0JBQ0UsYUFBYTtBQUFBLGdCQUNiLFdBQVc7QUFBQSxjQUNiO0FBQUEsWUFDRjtBQUFBLFlBQ0EsS0FBSztBQUFBLGNBQ0g7QUFBQSxjQUNBO0FBQUEsY0FBSyxFQUFFLFVBQVU7QUFBQSxnQkFDZjtBQUFBLGtCQUNFLGFBQWE7QUFBQSxrQkFDYixPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGtCQUNMLFdBQVc7QUFBQSxnQkFDYjtBQUFBLGNBQ0YsRUFBRTtBQUFBLFlBQ0o7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxlQUFlO0FBQUEsY0FDZixLQUFLO0FBQUEsY0FDTCxZQUFZO0FBQUEsY0FDWixVQUFVO0FBQUEsZ0JBQ1IsRUFBRSxlQUFlLHFCQUFxQjtBQUFBLGdCQUN0QyxLQUFLO0FBQUEsY0FDUDtBQUFBLFlBQ0Y7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQSxjQUFFLE9BQU87QUFBQTtBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNyUWpCO0FBQUE7QUFPQSxlQUFTLE9BQU8sTUFBTTtBQUNwQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVB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QUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtB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QUFBLFVBQ25CLFdBQVc7QUFBQSxVQUNYLGVBQWU7QUFBQSxVQUNmLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFNBQVM7QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxVQUNQO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixrQkFBa0I7QUFBQSxVQUNsQixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixVQUFVO0FBQUEsWUFDVixTQUFTO0FBQUEsWUFDVCxTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsVUFDWjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUE7QUFBQTtBQUFBLFlBR0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUM3akJqQjtBQUFBO0FBSUEsZUFBUyxPQUFPLE9BQU87QUFDckIsZUFBTyxJQUFJLE9BQU8sTUFBTSxRQUFRLHlCQUF5QixNQUFNLEdBQUcsR0FBRztBQUFBLE1BQ3ZFO0FBTUEsZUFBUyxPQUFPLElBQUk7QUFDbEIsWUFBSSxDQUFDLEdBQUksUUFBTztBQUNoQixZQUFJLE9BQU8sT0FBTyxTQUFVLFFBQU87QUFFbkMsZUFBTyxHQUFHO0FBQUEsTUFDWjtBQU1BLGVBQVMsVUFBVSxJQUFJO0FBQ3JCLGVBQU8sT0FBTyxPQUFPLElBQUksR0FBRztBQUFBLE1BQzlCO0FBTUEsZUFBUyxVQUFVLE1BQU07QUFDdkIsY0FBTSxTQUFTLEtBQUssSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDakQsZUFBTztBQUFBLE1BQ1Q7QUFNQSxlQUFTLHFCQUFxQixNQUFNO0FBQ2xDLGNBQU0sT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBRWpDLFlBQUksT0FBTyxTQUFTLFlBQVksS0FBSyxnQkFBZ0IsUUFBUTtBQUMzRCxlQUFLLE9BQU8sS0FBSyxTQUFTLEdBQUcsQ0FBQztBQUM5QixpQkFBTztBQUFBLFFBQ1QsT0FBTztBQUNMLGlCQUFPLENBQUM7QUFBQSxRQUNWO0FBQUEsTUFDRjtBQVdBLGVBQVMsVUFBVSxNQUFNO0FBRXZCLGNBQU0sT0FBTyxxQkFBcUIsSUFBSTtBQUN0QyxjQUFNLFNBQVMsT0FDVixLQUFLLFVBQVUsS0FBSyxRQUNyQixLQUFLLElBQUksQ0FBQyxNQUFNLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFDM0MsZUFBTztBQUFBLE1BQ1Q7QUFZQSxlQUFTLE9BQU8sTUFBTTtBQUNwQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLG9CQUFvQjtBQUFBO0FBQUEsVUFFeEIsT0FBTztBQUFBLFVBQ1AsT0FBTztBQUFBLFFBQ1Q7QUFFQSxjQUFNLHdCQUF3QjtBQUFBLFVBQzVCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sc0JBQXNCO0FBQUEsVUFDMUI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFJQSxjQUFNLGNBQWM7QUFBQTtBQUFBLFVBRWxCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBS2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FB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VUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxVQUFVO0FBQUEsVUFDZDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxxQkFBcUI7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxV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Q0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVB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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUE7QUFBQSxVQUVmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixxQkFBcUI7QUFBQSxZQUNyQixTQUFTO0FBQUEsWUFDVCxNQUFNO0FBQUEsWUFDTixTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsS0FBSyxRQUFRO0FBQUEsY0FDWCxRQUFRO0FBQUEsY0FDUixXQUFXO0FBQUEsWUFDYixDQUFDO0FBQUEsWUFDRDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQTtBQUFBLGNBRUUsV0FBVztBQUFBLGNBQ1gsT0FBTyxXQUFXO0FBQUEsY0FDbEIsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUE7QUFBQTtBQUFBLGNB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QSxRQUNmO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBSUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUNBLFVBQU0sV0FBVztBQUFBLFFBQ2Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxVQUFNLFFBQVE7QUFBQTtBQUFBLFFBRVo7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFB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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFpQkEsY0FBTSxlQUFlO0FBQUEsVUFDbkI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFpQkEsY0FBTSxnQkFBZ0I7QUFBQSxVQUNwQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2YsVUFBVTtBQUFBLFVBQ1YsU0FBUztBQUFBLFVBQ1QsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFFBQ1o7QUFHQSxjQUFNLFVBQVU7QUFBQSxVQUNkLFVBQVU7QUFBQSxVQUNWLFNBQVM7QUFBQSxRQUNYO0FBR0EsY0FB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QUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFFQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFFQSxVQUFNLE9BQU87QUFBQSxRQUNYLEdBQUc7QUFBQSxRQUNILEdBQUc7QUFBQSxNQUNMO0FBS0EsVUFBTSxpQkFBaUI7QUFBQSxRQUNyQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLEVBQUUsS0FBSyxFQUFFLFFBQVE7QUFHakIsVUFBTSxpQkFBaUI7QUFBQSxRQUNyQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBR2pCLFVBQU0sa0JBQWtCO0FBQUEsUUFDdEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBRWpCLFVBQU0sYUFBYTtBQUFBLFFBQ2pCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFB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LFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBSUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUNBLFVBQU0sV0FBVztBQUFBLFFBQ2Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxVQUFNLFFBQVE7QUFBQTtBQUFBLFFBRVo7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBO0FBQUEsUUFFQTtBQUFBLE1BQ0Y7QUFFQSxVQUFNLGNBQWM7QUFBQSxRQUNsQjtBQUFBLFFBQ0E7QUFB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QUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxR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Q0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVB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QUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsVUFBVTtBQUFBLFlBQ1YsU0FBUztBQUFBLFVBQ1g7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxZQUNSLEtBQUssUUFBUSxRQUFR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O0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFD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QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sWUFBWTtBQUFBLFVBQ2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxZQUNULFNBQVM7QUFBQSxZQUNULE1BQU07QUFBQSxZQUNOLFVBQVU7QUFBQSxVQUNaO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsV0FBVztBQUFBO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsY0FDTCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxjQUNF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Q0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxzQkFBc0I7QUFBQSxVQUMxQixPQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBLE1BQU0sT0FBTyxTQUFTLEtBQUssUUFBUTtBQUFBLFVBQ3JDO0FBQUEsVUFDQSxPQUFPO0FBQUEsWUFDTCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFJQSxjQUFNLG1CQUFtQjtBQUN6QixjQUFNLHNCQUFzQjtBQUFBLFVBQzFCLE9BQU87QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFVBQ0EsT0FBTztBQUFBLFlBQ0wsR0FBRztBQUFBLFlBQ0gsR0FBRztBQUFBLFlBQ0gsR0FBRztBQUFBLFVBQ0w7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFVBQ1g7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxjQUNIO0FBQUEsY0FDQTtBQUFBLGNBQ0EsRUFBRSxXQUFXLEVBQUU7QUFBQSxZQUNqQjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxFQUFFLGVBQWUsOERBQStEO0FBQUEsWUFDaEY7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLEtBQUs7QUFBQSxVQUNQO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUM1aUJqQjtBQUFBO0FBUUEsZUFBUyxXQUFXLE1BQU07QUFDeEIsY0FBTSxZQUFZO0FBQUEsVUFDaEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFFBQ1Q7QUFDQSxjQUFNLGdCQUFnQjtBQUN0QixjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxNQUFNO0FBQUEsVUFDVjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEs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QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBTUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxZQUFZO0FBQUE7QUFBQTtBQUFBLFVBR2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBUUEsY0FBTSxXQUFXLENBQUMsVUFBVTtBQUUxQixnQkFBTSxTQUFTLENBQUM7QUFDaEIsZ0JBQU0sUUFBUSxVQUFRO0FBQ3BCLG1CQUFPLEtBQUssSUFBSTtBQUNoQixnQkFBSSxLQUFLLFlBQVksTUFBTSxNQUFNO0FBQy9CLHFCQUFPLEtBQUssS0FBSyxZQUFZLENBQUM7QUFBQSxZQUNoQyxPQUFPO0FBQ0wscUJBQU8sS0FBSyxLQUFLLFlBQVksQ0FBQztBQUFBLFlBQ2hDO0FBQUEsVUFDRixDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixTQUFTO0FBQUEsVUFDVCxTQUFTLFNBQVMsUUFBUTtBQUFBLFVBQzFCLFVBQVU7QUFBQSxRQUNaO0FBSUEsY0FBTSxvQkFBb0IsQ0FBQyxVQUFVO0FBQ25DLGlCQUFPLE1BQU0sSUFBSSxVQUFRO0FBQ3ZCLG1CQUFPLEtBQUssUUFBUSxVQUFVLEVBQUU7QUFBQSxVQUNsQyxDQUFDO0FBQUEsUUFDSDtBQUVBLGNBQU0sbUJBQW1CLEVBQUUsVUFBVTtBQUFBLFVBQ25DO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsTUFBTSxPQUFPLFlBQVksR0FBRztBQUFBO0FBQUEsY0FFNUIsTUFBTSxPQUFPLE9BQU8sa0JBQWtCLFNBQVMsRUFBRSxLQUFLLE1BQU0sR0FBRyxNQUFNO0FBQUEsY0FDckU7QUFBQSxZQUNGO0FBQUEsWUFDQSxPQUFPO0FBQUEsY0FDTCxHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxRQUNGLEVBQUU7QUFFRixjQUFNLHFCQUFxQixNQUFNLE9BQU8sVUFBVSxZQUFZO0FBRTlELGNBQU0sc0NBQXNDLEVBQUUsVUFBVTtBQUFBLFVBQ3REO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTCxNQUFNO0FBQUEsZ0JBQ0o7QUFBQSxnQkFDQSxNQUFNLFVBQVUsYUFBYTtBQUFBLGNBQy9CO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFBQSxZQUNBLE9BQU8sRUFBRSxHQUFHLG9CQUFxQjtBQUFBLFVBQ25DO0FBQUEsVUFDQTtBQUFBLFlBQ0UsT0FBTztBQUFBLGNBQ0w7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFlBQ0EsT0FBTyxFQUFFLEdBQUcsb0JBQXFCO0FBQUEsVUFDbkM7QUFBQSxVQUNBO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsTUFBTTtBQUFBLGdCQUNKO0FBQUEsZ0JBQ0EsTUFBTSxVQUFVLGFBQWE7QUFBQSxjQUMvQjtBQUFBLGNBQ0E7QUFBQSxZQUNGO0FBQUEsWUFDQSxPQUFPO0FBQUEsY0FDTCxHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxVQUNBO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsTUFBTTtBQUFBLGdCQUNKO0FBQUEsZ0JBQ0EsTUFBTSxVQUFVLGFBQWE7QUFBQSxjQUMvQjtBQUFBLFlBQ0Y7QUFBQSxZQUNBLE9BQU8sRUFBRSxHQUFHLGNBQWU7QUFBQSxVQUM3QjtBQUFBLFVBQ0E7QUFBQSxZQUNFLE9BQU87QUFBQSxjQUNMO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxZQUNGO0FBQUEsWUFDQSxPQUFPO0FBQUEsY0FDTCxHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxRQUNGLEVBQUU7QUFFRixjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCLE9BQU87QUFBQSxVQUNQLE9BQU8sTUFBTSxPQUFPLFVBQVUsTUFBTSxVQUFVLEdBQUcsR0FBRyxNQUFNLFVBQVUsUUFBUSxDQUFDO0FBQUEsUUFDL0U7QUFDQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxZQUNMO0FBQUE7QUFBQSxZQUVBLE1BQU0sT0FBTyx5QkFBeUIsa0JBQWtCLEdBQUcsRUFBRSxLQUFLLE1BQU0sR0FBRyxLQUFLLGtCQUFrQixTQUFTLEVBQUUsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUFBLFlBQ2pJO0FBQUEsWUFDQSxNQUFNLE9BQU8sWUFBWSxHQUFHO0FBQUEsWUFDNUIsTUFBTSxVQUFVLFFBQVE7QUFBQSxVQUMxQjtBQUFBLFVBQ0EsT0FBTyxFQUFFLEdBQUcsd0JBQXlCO0FBQUEsVUFDckMsVUFBVSxDQUFFLFdBQVk7QUFBQSxRQUMxQjtBQUNBLG9CQUFZLFNBQVMsS0FBSyxlQUFlO0FBRXpDLGNBQU0scUJBQXFCO0FBQUEsVUFDekI7QUFBQSxVQUNBO0FBQUEsVUFDQSxLQUFLO0FBQUEsVUFDTDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYTtBQUFBLFVBQ2pCLE9BQU8sTUFBTSxPQUFPLFVBQVUseUJBQXlCO0FBQUEsVUFDdkQsWUFBWTtBQUFBLFVBQ1osS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLGNBQ1A7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsY0FDTCxVQUFVO0FBQUEsZ0JBQ1IsU0FBUztBQUFBLGdCQUNULFNBQVM7QUFBQSxrQkFDUDtBQUFBLGtCQUNBO0FBQUEsZ0JBQ0Y7QUFBQSxjQUNGO0FBQUEsY0FDQSxVQUFVO0FBQUEsZ0JBQ1I7QUFBQSxnQkFDQSxHQUFHO0FBQUEsY0FDTDtBQUFBLFlBQ0Y7QUFBQSxZQUNBLEdBQUc7QUFBQSxZQUNIO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUssUUFBUSxNQUFNLEdBQUc7QUFBQSxZQUN0QixLQUFLO0FBQUEsY0FDSDtBQUFBLGNBQ0E7QUFBQSxjQUNBLEVBQUUsVUFBVTtBQUFBLGdCQUNWO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLE9BQU87QUFBQSxnQkFDVDtBQUFBLGNBQ0YsRUFBRTtBQUFBLFlBQ0o7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxVQUFVO0FBQUEsY0FDVixRQUFRO0FBQUEsZ0JBQ04sT0FBTztBQUFBLGdCQUNQLEtBQUssS0FBSztBQUFBLGdCQUNWLFVBQVU7QUFBQSxrQkFDUjtBQUFBLG9CQUNFLE9BQU87QUFBQSxvQkFDUCxPQUFPO0FBQUEsb0JBQ1AsWUFBWTtBQUFBLGtCQUNkO0FBQUEsZ0JBQ0Y7QUFBQSxjQUNGO0FBQUEsWUFDRjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxnQkFDTDtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGO0FBQUEsY0FDQSxPQUFPO0FBQUEsZ0JBQ0wsR0FBRztBQUFBLGdCQUNILEdBQUc7QUFBQSxjQUNMO0FBQUEsWUFDRjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsY0FDWCxlQUFlO0FBQUEsY0FDZixLQUFLO0FBQUEsY0FDTCxZQUFZO0FBQUEsY0FDWixTQUFTO0FBQUEsY0FDVCxVQUFVO0FBQUEsZ0JBQ1IsRUFBRSxlQUFlLE1BQU87QUFBQSxnQkFDeEIsS0FBSztBQUFBLGdCQUNMO0FBQUEsa0JBQ0UsT0FBTztBQUFBO0FBQUEsa0JBQ1AsWUFBWTtBQUFBLGdCQUNkO0FBQUEsZ0JBQ0E7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsT0FBTztBQUFBLGtCQUNQLEtBQUs7QUFBQSxrQkFDTCxjQUFjO0FBQUEsa0JBQ2QsWUFBWTtBQUFBLGtCQUNaLFVBQVU7QUFBQSxrQkFDVixVQUFVO0FBQUEsb0JBQ1I7QUFBQSxvQkFDQTtBQUFBLG9CQUNBO0FBQUEsb0JBQ0EsS0FBSztBQUFBLG9CQUNMO0FBQUEsb0JBQ0E7QUFBQSxrQkFDRjtBQUFBLGdCQUNGO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxVQUFVO0FBQUEsZ0JBQ1I7QUFBQSxrQkFDRSxlQUFlO0FBQUEsa0JBQ2YsU0FBUztBQUFBLGdCQUNYO0FBQUEsZ0JBQ0E7QUFBQSxrQkFDRSxlQUFlO0FBQUEsa0JBQ2YsU0FBUztBQUFBLGdCQUNYO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1gsS0FBSztBQUFBLGNBQ0wsWUFBWTtBQUFBLGNBQ1osVUFBVTtBQUFBLGdCQUNSLEVBQUUsZUFBZSxxQkFBcUI7QUFBQSxnQkFDdEMsS0FBSztBQUFBLGNBQ1A7QUFBQSxZQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFJQTtBQUFBLGNBQ0UsZUFBZTtBQUFBLGNBQ2YsV0FBVztBQUFBLGNBQ1gsS0FBSztBQUFBLGNBQ0wsU0FBUztBQUFBLGNBQ1QsVUFBVSxDQUFFLEtBQUssUUFBUSxLQUFLLHVCQUF1QixFQUFFLE9BQU8sY0FBYyxDQUFDLENBQUU7QUFBQSxZQUNqRjtBQUFBLFlBQ0E7QUFBQSxjQUNFLGVBQWU7QUFBQSxjQUNmLFdBQVc7QUFBQSxjQUNYLEtBQUs7QUFBQSxjQUNMLFVBQVU7QUFBQTtBQUFBLGdCQUVSO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLE9BQU87QUFBQSxnQkFDVDtBQUFBO0FBQUEsZ0JBRUEsS0FBSztBQUFBLGNBQ1A7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNwbUJqQjtBQUFBO0FBUUEsZUFBUyxZQUFZLE1BQU07QUFDekIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sYUFBYTtBQUFBLFVBQ2IsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLGFBQWE7QUFBQSxjQUNiLFVBQVU7QUFBQTtBQUFBO0FBQUEsZ0JBR1I7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGtCQUNMLE1BQU07QUFBQSxnQkFDUjtBQUFBLGdCQUNBO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLEtBQUs7QUFBQSxrQkFDTCxNQUFNO0FBQUEsZ0JBQ1I7QUFBQSxnQkFDQTtBQUFBLGtCQUNFLE9BQU87QUFBQSxrQkFDUCxLQUFLO0FBQUEsa0JBQ0wsTUFBTTtBQUFBLGdCQUNSO0FBQUEsZ0JBQ0EsS0FBSyxRQUFRLEtBQUssa0JBQWtCO0FBQUEsa0JBQ2xDLFNBQVM7QUFBQSxrQkFDVCxXQUFXO0FBQUEsa0JBQ1gsVUFBVTtBQUFBLGtCQUNWLE1BQU07QUFBQSxnQkFDUixDQUFDO0FBQUEsZ0JBQ0QsS0FBSyxRQUFRLEtBQUssbUJBQW1CO0FBQUEsa0JBQ25DLFNBQVM7QUFBQSxrQkFDVCxXQUFXO0FBQUEsa0JBQ1gsVUFBVTtBQUFBLGtCQUNWLE1BQU07QUFBQSxnQkFDUixDQUFDO0FBQUEsY0FDSDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNyRGpCO0FBQUE7QUFPQSxlQUFTLFVBQVUsTUFBTTtBQUN2QixlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxtQkFBbUI7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNsQmpCO0FBQUE7QUFTQSxlQUFTLEtBQUssTUFBTTtBQUNsQixjQUFNLFdBQVc7QUFBQSxVQUNmLFNBQ0U7QUFBQSxVQUtGLE1BQ0U7QUFBQSxVQUNGLFNBQ0U7QUFBQSxRQUNKO0FBRUEsY0FBTSwyQkFBMkI7QUFBQSxVQUMvQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sb0JBQW9CO0FBQUEsVUFDeEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVSxDQUFFLEtBQUssZ0JBQWlCO0FBQUEsUUFDcEM7QUFFQSxjQUFNLHlCQUF5QjtBQUFBLFVBQzdCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLFVBQVUsQ0FBRSxLQUFLLGdCQUFpQjtBQUFBLFVBQ2xDLFdBQVc7QUFBQSxRQUNiO0FBRUEsY0FBTSxZQUFZO0FBQUEsVUFDaEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsV0FBVztBQUFBLFFBQ2I7QUFFQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixPQUFPLEtBQUssV0FBVztBQUFBLFVBQ3ZCLFdBQVc7QUFBQSxRQUNiO0FBRUEsY0FBTSxjQUFjO0FBQUEsVUFDbEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsV0FBVztBQUFBLFFBQ2I7QUFhQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDekZqQjtBQUFBO0FBU0EsZUFBUyxXQUFXLE1BQU07QUFDeEIsY0FBTSxRQUFRO0FBQUEsVUFDWjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBR0EsY0FBTSxjQUNKO0FBWUYsY0FBTSx1QkFDSjtBQVFGLGNBQU0sV0FBVztBQUFBLFVBQ2YsVUFBVTtBQUFBLFVBQ1YsU0FDRTtBQUFBO0FBQUEsVUFJRixVQUNFO0FBQUE7QUFBQSxRQVNKO0FBRUEsY0FBTSxnQkFBZ0I7QUFFdEIsY0FBTSxrQkFBa0I7QUFBQSxVQUN0QixPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sTUFBTTtBQUFBLFVBQ1YsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1IsRUFBRSxPQUFPLE9BQU87QUFBQSxZQUNoQjtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBLEVBQUUsT0FBTyxvQkFBb0I7QUFBQSxVQUMvQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxlQUFlO0FBQUEsVUFDbkIsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLFlBQ1A7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsY0FBTSxjQUFjO0FBQUEsVUFDbEIsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLFlBQ1A7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVBLGNBQU0sY0FBYztBQUFBLFVBQ2xCLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQTtBQUFBLFlBRVIsRUFBRSxPQUFPLDBGQUEwRjtBQUFBO0FBQUEsWUFFbkcsRUFBRSxPQUFPLGdHQUFnRztBQUFBLFVBQzNHO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYSxLQUFLO0FBQUEsVUFDdEIsS0FBSyxRQUFRLE1BQU0sSUFBSTtBQUFBLFVBQ3ZCO0FBQUEsWUFDRSxVQUFVO0FBQUE7QUFBQSxjQUVSO0FBQUEsZ0JBQ0UsT0FBTztBQUFBLGdCQUNQLEtBQUs7QUFBQSxjQUNQO0FBQUE7QUFBQSxjQUVBO0FBQUEsZ0JBQ0UsT0FBTztBQUFBLGdCQUNQLEtBQUs7QUFBQSxjQUNQO0FBQUEsWUFDRjtBQUFBLFlBQ0EsVUFBVSxDQUFFLFdBQVk7QUFBQSxVQUMxQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLFVBQVUsQ0FBRSxFQUFFLE9BQU8sSUFBSSxPQUFPLGFBQWEsZ0JBQWdCLEVBQUUsQ0FBRTtBQUFBLFFBQ25FO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixXQUFXO0FBQUEsVUFDWCxlQUFlO0FBQUEsVUFDZixLQUFLO0FBQUEsVUFDTCxZQUFZO0FBQUEsVUFDWixXQUFXO0FBQUEsVUFDWCxVQUFVLENBQUUsS0FBSyxVQUFXO0FBQUEsUUFDOUI7QUFFQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxZQUFZO0FBQUEsVUFDWixhQUFhO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLGNBQ1gsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFdBQVc7QUFBQSxjQUNYLFdBQVc7QUFBQSxjQUNYLFVBQVUsQ0FBRSxHQUFJO0FBQUEsWUFDbEI7QUFBQTtBQUFBLFVBRUY7QUFBQSxRQUNGO0FBR0EsY0FBTSxXQUFXO0FBQUEsVUFDZixPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxhQUFhO0FBQUEsVUFDYixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBR0EsY0FBTSxlQUFlLEVBQUUsVUFBVTtBQUFBO0FBQUEsVUFFL0I7QUFBQSxZQUNFLFdBQVc7QUFBQSxZQUNYLE9BQU8sSUFBSSxPQUFPLHNCQUFzQixNQUFNO0FBQUEsVUFDaEQ7QUFBQSxVQUNBO0FBQUEsWUFDRSxXQUFXO0FBQUEsWUFDWCxPQUFPO0FBQUEsWUFDUCxXQUFXO0FBQUEsVUFDYjtBQUFBLFFBQ0YsRUFBRTtBQUVGLGNBQU0sYUFBYTtBQUFBLFVBQ2pCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLFdBQVc7QUFBQSxRQUNiO0FBSUEsY0FBTSxhQUFhO0FBQUEsVUFDakIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsYUFBYTtBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU8sSUFBSTtBQUFBLGdCQUNULFNBQVMsUUFBUSxTQUFTLEVBQUU7QUFBQSxrQkFBUTtBQUFBLGtCQUFPO0FBQUEsZ0JBQzNDO0FBQUEsZ0JBQUc7QUFBQSxjQUFNO0FBQUEsY0FDWCxZQUFZO0FBQUEsY0FDWixXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0EsS0FBSyxRQUFRLEtBQUssWUFBWSxFQUFFLFlBQVksS0FBSyxDQUFDO0FBQUEsVUFDcEQ7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBaUI7QUFBQTtBQUFBLFVBRXJCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBLEtBQUs7QUFBQSxVQUNMO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLGNBQWM7QUFBQSxVQUNkLFlBQVk7QUFBQSxVQUNaLFdBQVc7QUFBQSxVQUNYLFVBQVUsQ0FBQyxFQUFFO0FBQUEsWUFDWDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPLE1BQU0sTUFBTSxLQUFLLEdBQUcsSUFBSTtBQUFBLGNBQy9CLFdBQVc7QUFBQSxjQUNYLFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVBLG1CQUFXLFNBQVMsUUFBUSxPQUFPO0FBRW5DLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFNBQVM7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxrQkFBa0I7QUFBQSxVQUNsQixVQUFVO0FBQUEsVUFDVixVQUFVLGVBQWU7QUFBQSxZQUN2QjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUM1VGpCO0FBQUE7QUFRQSxlQUFTLFdBQVcsTUFBTTtBQUN4QixjQUFNLFFBQVEsS0FBSztBQUNuQixjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxV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QTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFLQSxjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2YsVUFBVTtBQUFBLFVBQ1YsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFVBQ1YsU0FBUztBQUFBLFVBQ1QsTUFBTTtBQUFBLFFBQ1I7QUFFQSxjQUFNLFNBQVM7QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxRQUFRO0FBQUEsVUFDWixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFD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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sUUFBUTtBQUFBLFVBQ1o7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QixPQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBLEtBQUs7QUFBQSxVQUNQO0FBQUEsVUFDQSxPQUFPO0FBQUEsWUFDTCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsWUFDVixNQUFNO0FBQUEsVUFDUjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0w7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxjQUNFLGVBQWU7QUFBQSxjQUNmLEtBQUs7QUFBQSxZQUNQO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDcEpqQjtBQUFBO0FBUUEsZUFBUyxjQUFjLE1BQU07QUFDM0IsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFlBQ1IsU0FDRTtBQUFBLFlBbUNGLFVBQ0U7QUFBQSxVQUtKO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsVUFBVTtBQUFBLGdCQUNSO0FBQUE7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsV0FBVztBQUFBLGdCQUNiO0FBQUEsZ0JBQ0EsRUFBRSxPQUFPLGVBQWU7QUFBQSxjQUMxQjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMzRWpCO0FBQUE7QUFVQSxlQUFTLEtBQUssTUFBTTtBQUNsQixjQUFNLFFBQVEsS0FBSztBQUduQixjQUFNLGlCQUFpQjtBQUN2QixjQUFNLHNCQUFzQixNQUFNLE9BQU8sZ0JBQWdCLEtBQUssbUJBQW1CO0FBQ2pGLGNBQU0sV0FBVyxNQUFNLE9BQU8sZ0JBQWdCLEtBQUssUUFBUTtBQUUzRCxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCLFdBQVc7QUFBQSxVQUNYLFdBQVc7QUFBQSxVQUNYLE9BQU8sTUFBTTtBQUFBLFlBQ1g7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsTUFBTSxVQUFVLE9BQU87QUFBQSxVQUFDO0FBQUEsUUFDNUI7QUFDQSxjQUFNLGdCQUFnQjtBQUN0QixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQTtBQUFBLFVBRWY7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxRQUFRO0FBQUEsVUFDWjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTLENBQUUsSUFBSztBQUFBLFVBQ2hCLFVBQVU7QUFBQSxZQUNSLFVBQVUsS0FBSyxXQUFXO0FBQUEsWUFDMUIsTUFBTTtBQUFBLFlBQ04sU0FBUztB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QSxlQUFTLElBQUksTUFBTTtBQUNqQixjQUFNLFFBQVEsS0FBSztBQUVuQixjQUFNLGVBQWU7QUFBQSxVQUNuQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBR0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtB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QSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxPQUFPO0FBQUEsUUFDWCxHQUFHO0FBQUEsUUFDSCxHQUFHO0FBQUEsTUFDTDtBQUtBLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBR2pCLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUdqQixVQUFNLGtCQUFrQjtBQUFBLFFBQ3RCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUVqQixVQUFNLGFBQWE7QUFBQSxRQUNqQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7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QTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sVUFBVTtBQUFBLFVBQ2Q7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFJQSxjQUFNLGVBQWU7QUFBQSxVQUNuQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBLEtBQUssUUFBUSxTQUFTLEVBQUUsV0FBVyxTQUFTLENBQUM7QUFBQSxZQUM3QztBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLGNBQ0wsU0FBUztBQUFBLFlBQ1g7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxVQUNQO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxZQUNULFVBQVU7QUFBQSxZQUNWLFNBQVM7QUFBQSxVQUNYO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVM7QUFBQTtBQUFBLFlBRVA7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBO0FBQUEsWUFDQTtBQUFBO0FBQUE7QUFBQSxZQUVBO0FBQUE7QUFBQSxZQUVBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNybUZqQjtBQUFBO0FBc0JBLGVBQVMsSUFBSSxNQUFNO0FBQ2pCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sZUFBZSxLQUFLLFFBQVEsTUFBTSxHQUFHO0FBQzNDLGNBQU0sU0FBUztBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFVBQVUsQ0FBRSxFQUFFLE9BQU8sS0FBSyxDQUFFO0FBQUEsWUFDOUI7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0sb0JBQW9CO0FBQUEsVUFDeEIsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVSxDQUFFLEVBQUUsT0FBTyxLQUFLLENBQUU7QUFBQSxRQUM5QjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLHFCQUFxQjtBQUFBLFVBQ3pCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBS0EsY0FBTSxxQkFBcUI7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLDBCQUEwQjtBQUFBLFVBQzlCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBSUEsY0FBTSxTQUFTO0FBQUEsVUFDYjtBQUFBLFVBQ0E7QUFBQSxVQUNB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QSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQVVBLGNBQU0sWUFBWTtBQUFBLFVBQ2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGdCQUFnQjtBQUFBLFVBQ3BCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sZ0JBQWdCLEtBQUs7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsWUFDRSxXQUFXO0FBQUEsWUFDWCxVQUFVO0FBQUEsY0FDUjtBQUFBLGdCQUNFLE9BQU87QUFBQSxnQkFDUCxPQUFPO0FBQUEsY0FDVDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVB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QSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUVBLFVBQU0sV0FBVztBQUFBLFFBQ2Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUVBLFVBQU0sT0FBTztBQUFBLFFBQ1gsR0FBRztBQUFBLFFBQ0gsR0FBRztBQUFBLE1BQ0w7QUFLQSxVQUFNLGlCQUFpQjtBQUFBLFFBQ3JCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUdqQixVQUFNLGlCQUFpQjtBQUFBLFFBQ3JCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxNQUNGLEVBQUUsS0FBSyxFQUFFLFFBQVE7QUFHakIsVUFBTSxrQkFBa0I7QUFBQSxRQUN0QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLEVBQUUsS0FBSyxFQUFFLFFBQVE7QUFFakIsVUFBTSxhQUFhO0FBQUEsUUFDakI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7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O0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsTUFDRjtBQU1BLFVBQU0sV0FBVztBQUFBLFFBQ2Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxVQUFNLDBCQUEwQjtBQUFBLFFBQzlCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUlBLFVBQU0scUJBQXFCO0FBQUEsUUFDekI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBR0EsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxVQUFNLGVBQWU7QUFBQSxRQUNuQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUdBLFVBQU0sb0JBQW9CO0FBQUEs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QTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFD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QTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUE7QUFBQSxjQUVFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxZQUNUO0FBQUEsWUFDQTtBQUFBO0FBQUE7QUFBQSxjQUdFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxZQUNUO0FBQUEsWUFDQTtBQUFBO0FBQUEsY0FFRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0EsS0FBSyxRQUFRLE1BQU0sTUFBTTtBQUFBLFlBQ3pCLEtBQUssUUFBUSxLQUFLLE1BQU07QUFBQSxZQUN4QixLQUFLLFFBQVEsU0FBUyxHQUFHO0FBQUEsWUFDekIsS0FBSztBQUFBLFlBQ0w7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMzS2pCO0FBQUE7QUFTQSxlQUFTLEtBQUssTUFBTTtBQUNsQixjQUFNLFFBQVEsS0FBSztBQUNuQixjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxVQUFVO0FBQUEsVUFDZDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLFlBQUksWUFBWTtBQUFBLFVBQ2Q7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLG9CQUFZLFVBQVUsT0FBTyxVQUFVLElBQUksT0FBSyxNQUFNLENBQUMs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QUFBO0FBQUEsUUFJQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQ0EsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUdBLFVBQU0sUUFBUTtBQUFBO0FBQUEsUUFFWjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUE7QUFBQSxRQUVBO0FBQUEsTUFDRjtBQUVBLFVBQU0sY0FBYztBQUFBLFFBQ2xCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFFQSxVQUFNLG1CQUFtQjtBQUFBLFFBQ3ZCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FB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QUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sZ0JBQWdCO0FBQUEsVUFDcEIsT0FBTyxNQUFNLE9BQU8sTUFBTSxPQUFPLEdBQUcsa0JBQWtCLEdBQUcsU0FBUztBQUFBO0FBQUEsVUFFbEUsV0FBVztBQUFBLFVBQ1gsVUFBVSxFQUFFLFVB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QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxTQUFTLENBQUUsTUFBTztBQUFBLFVBQ2xCLFVBQVU7QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxjQUFNLHFCQUFxQjtBQUFBLFVBQ3pCO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGFBQWE7QUFBQSxVQUNqQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sU0FBUztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxVQUNBLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxVQUFVLENBQUUsS0FBSyxnQkFBaUI7QUFBQSxjQUNsQyxVQUFVO0FBQUEsZ0JBQ1IsRUFBRSxPQUFPLDBDQUEwQztBQUFBLGdCQUNuRCxFQUFFLE9BQU8sdUNBQXVDO0FBQUEsZ0JBQ2hEO0FBQUE7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsV0FBVztBQUFBLGdCQUNiO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQTtBQUFBLFlBRUE7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLFVBQVU7QUFBQSxnQkFDUixFQUFFLE9BQU8seUJBQXlCO0FBQUEsZ0JBQ2xDO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLFdBQVc7QUFBQSxnQkFDYjtBQUFBLGNBQ0Y7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsT0FBTyxNQUFNLE9BQU8sS0FBSyxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztBQUFBLFlBQzlEO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsT0FBTyxNQUFNLE9BQU8sS0FBSyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUM7QUFBQSxjQUNwRCxLQUFLO0FBQUEsY0FDTCxXQUFXO0FBQUEsY0FDWCxVQUFVO0FBQUEsWUFDWjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ3JpQmpCO0FBQUE7QUFTQSxlQUFTLEtBQUssTUFBTTtBQUlsQixjQUFNLGFBQWE7QUFDbkIsY0FBTSxjQUFjLGNBQWM7QUFDbEMsY0FBTSxxQkFBcUIsYUFBYSxTQUFTLGFBQWEsUUFBYSxjQUFjO0FBRXpGLGNBQU0sbUJBQW1CO0FBQ3pCLGNBQU0sbUJBQW1CLGFBQWEsTUFBTSxtQkFBbUIsU0FBUyxtQkFBbUIsU0FBbUIsY0FBYztBQUU1SCxjQUFNLFlBQVksU0FBUyxtQkFBbUIsTUFBTSxxQkFBcUI7QUFFekUsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBO0FBQUEsVUFFZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxZQUNULFVBQVU7QUFBQSxZQUNWLFNBQVM7QUFBQSxVQUNYO0FBQUEsVUFDQSxTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUE7QUFBQSxZQUNMLEtBQUssUUFBUSxNQUFNLEdBQUc7QUFBQSxZQUN0QixLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxVQUFVLENBQUUsS0FBSyxnQkFBaUI7QUFBQSxZQUNwQztBQUFBLFlBQ0E7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLFVBQVUsQ0FBRSxLQUFLLGdCQUFpQjtBQUFBLFlBQ3BDO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDdk5qQjtBQUFBO0FBUUEsZUFBUyxJQUFJLE1BQU07QUFDakIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFlBQ1IsVUFBVTtBQUFBLFlBQ1Y7QUFBQTtBQUFBLGNBRUU7QUFBQTtBQUFBLFlBa0JGO0FBQUE7QUFBQSxjQUNFO0FBQUE7QUFBQSxVQW1DSjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0w7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFNBQVM7QUFBQSxZQUNYO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQVlBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0EsS0FBSyxRQUFRLEtBQUssR0FBRztBQUFBLFlBRXJCO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxnQkFDTDtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0EsS0FBSztBQUFBLGNBQ1A7QUFBQSxjQUNBLFdBQVc7QUFBQSxnQkFDVCxHQUFHO0FBQUEsZ0JBQ0gsR0FBRztBQUFBLGNBQ0w7QUFBQSxjQUNBLEtBQUs7QUFBQSxjQUNMLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQSxnQkFDUjtBQUFBLGtCQUNFLFdBQVc7QUFBQSxrQkFDWCxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGdCQUNQO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ2hJakI7QUFBQTtBQVNBLGVBQVMsS0FBSyxNQUFNO0FBQ2xCLGFBQUs7QUFDTCxjQUFNLGdCQUFnQixLQUFLLFFBQVEsT0FBTyxLQUFLO0FBQy9DLHNCQUFjLFNBQVMsS0FBSyxNQUFNO0FBQ2xDLGNBQU0sZUFBZSxLQUFLLFFBQVEsTUFBTSxHQUFHO0FBRTNDLGNBQU0sTUFBTTtBQUFBLFVBQ1Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLHFCQUFxQjtBQUFBLFVBQ3pCLE9BQU87QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxXQUFXO0FBQUEsWUFDVCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxTQUFTO0FBQUEsVUFDYixPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsVUFDWCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sU0FBUztBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsV0FBVztBQUFBO0FBQUEsVUFFWCxPQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sT0FBTztBQUFBO0FBQUEsVUFFWCxPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sa0JBQWtCO0FBQUEsVUFDdEIsV0FBVztBQUFBO0FBQUEsVUFFWCxPQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sZUFBZTtBQUFBLFVBQ25CLE9BQU87QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxXQUFXO0FBQUEsWUFDVCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixVQUFVO0FBQUEsWUFDVixTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsS0FBSztBQUFBLFlBQ0w7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzFJakI7QUFBQTtBQVVBLGVBQVMsS0FBSyxNQUFNO0FBQ2xCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sV0FBVztBQUNqQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGdCQUFnQjtBQUFBLFVBQ3BCO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGVBQWU7QUFBQSxVQUNuQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2YsV0FBVztBQUFBLFVBQ1gsT0FBTyxNQUFNLE9BQU8scUNBQXFDLFVBQVUsYUFBYTtBQUFBLFVBQ2hGLFdBQVc7QUFBQSxRQUNiO0FBQ0EsY0FBTSxzQkFBc0I7QUFBQSxVQUMxQixPQUFPLE1BQU07QUFBQSxZQUNYLE1BQU07QUFBQSxjQUNKLE1BQU0sT0FBTyxxQ0FBcUMsUUFBUTtBQUFBLGNBQzFELE1BQU0sT0FBTyxHQUFHLFNBQVM7QUFBQSxZQUMzQjtBQUFBLFlBQ0E7QUFBQSxVQUF1QjtBQUFBLFVBQ3pCLFdBQVc7QUFBQSxVQUNYLFFBQVEsRUFBRSxVQUFVO0FBQUEsWUFDbEI7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFVBQVU7QUFBQSxnQkFDUjtBQUFBLGtCQUNFLFdBQVc7QUFBQSxrQkFDWCxPQUFPO0FBQUEsa0JBQ1AsT0FBTztBQUFBLGdCQUNUO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxVQUNGLEVBQUU7QUFBQSxRQUNKO0FBQ0EsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QixVQUFVO0FBQUEsWUFDUixFQUFFLE9BQU87QUFBQSxjQUNQO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsWUFDRixFQUFFO0FBQUEsWUFDRixFQUFFLE9BQU87QUFBQSxjQUNQO0FBQUEsY0FDQTtBQUFBLFlBQ0YsRUFBRTtBQUFBLFVBQ0o7QUFBQSxVQUNBLE9BQU87QUFBQSxZQUNMLEdBQUc7QUFBQSxZQUNILEdBQUc7QUFBQSxVQUNMO0FBQUEsVUFDQSxVQUFVO0FBQUEsUUFDWjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2YsV0FBVztBQUFBLFVBQ1gsT0FBTyxNQUFNLE9BQU8sR0FBRyxTQUFTO0FBQUEsVUFDaEMsV0FBVztBQUFBLFFBQ2I7QUFFQSxjQUFNLGdCQUFnQjtBQUFBLFVBQ3BCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxRQUNQO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixXQUFXO0FBQUEsVUFDWCxPQUFPLE1BQU0sT0FBTyxNQUFNLE1BQU0sVUFBVSxRQUFRLENBQUM7QUFBQSxVQUNuRCxLQUFLO0FBQUEsVUFDTCxjQUFjO0FBQUEsVUFDZCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sUUFBUTtBQUFBLFVBQ1osV0FBVztBQUFBLFVBQ1gsT0FBTyxNQUFNLE9BQU8sT0FBTyxRQUFRO0FBQUEsVUFDbkMsT0FBTztBQUFBLFFBQ1Q7QUFHQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxVQUNQLFVBQVUsRUFBRSxHQUFHLGFBQWE7QUFBQSxRQUM5QjtBQUdBLGNBQU0sU0FBUyxLQUFLO0FBRXBCLGNBQU0sU0FBUztBQUFBLFVBQ2IsT0FBTztBQUFBLFlBQ0w7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxPQUFPO0FBQUEsWUFDTCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGVBQWUsS0FBSztBQUFBLFVBQ3hCO0FBQUEsVUFDQTtBQUFBLFVBQ0EsRUFBRSxVQUFVO0FBQUEsWUFDVjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUEsVUFDRixFQUFFO0FBQUEsUUFDSjtBQUNBLGNBQU0sUUFBUTtBQUFBLFVBQ1osT0FBTztBQUFBLFVBQ1AsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFNBQVM7QUFBQSxVQUNiLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsVUFBVTtBQUFBLGdCQUNSLEVBQUUsT0FBTyx1QkFBdUI7QUFBQSxnQkFDaEMsRUFBRSxPQUFPLGlCQUFpQjtBQUFBLGdCQUMxQixFQUFFLE9BQU8saUJBQWlCO0FBQUEsZ0JBQzFCLEVBQUUsT0FBTyxpQkFBaUI7QUFBQSxjQUM1QjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0sU0FBUyxLQUFLLE1BQU07QUFFMUIsY0FBTSxVQUFVO0FBQUEsVUFDZCxHQUFHO0FBQUEsVUFDSCxHQUFHO0FBQUEsVUFDSCxHQUFHO0FBQUEsUUFDTDtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2YsV0FBVztBQUFBLFVBQ1gsT0FBTyxNQUFNO0FBQUEsWUFDWDtBQUFBLFlBQ0EsUUFBUSxLQUFLLEdBQUc7QUFBQSxZQUNoQjtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxXQUFXO0FBQUEsUUFDYjtBQUdBLGNBQU0sWUFBWTtBQUFBO0FBQUEsVUFFaEIsT0FBTztBQUFBLFVBQ1AsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxnQkFDTDtBQUFBLGdCQUNBO0FBQUEsY0FDRjtBQUFBLGNBQ0EsWUFBWTtBQUFBO0FBQUEsY0FFWjtBQUFBLGNBQ0EsVUFBVSxFQUFFLFNBQVMsU0FBUztBQUFBLGNBQzlCLFVBQVU7QUFBQTtBQUFBO0FBQUEsY0FHVjtBQUFBLGNBQ0EsS0FBSztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsZ0JBQ0w7QUFBQSxnQkFDQTtBQUFBLGNBQ0Y7QUFBQSxjQUNBLFlBQVk7QUFBQTtBQUFBLGNBRVo7QUFBQSxjQUNBLEtBQUs7QUFBQSxZQUNQO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxxQkFBcUI7QUFBQSxZQUNyQixTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDN1NqQjtBQUFBO0FBUUEsZUFBUyxPQUFPLE1BQU07QUFDcEIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFlBQ1IsVUFBVSxVQUFVLEtBQUs7QUFBQSxZQUN6QixTQUNFO0FBQUEsWUFFRjtBQUFBO0FBQUEsY0FFRTtBQUFBO0FBQUEsWUF5Q0YsTUFDRTtBQUFBLFVBYUo7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxjQUNIO0FBQUEsY0FDQTtBQUFBLGNBQ0EsRUFBRSxXQUFXLEVBQUU7QUFBQSxZQUNqQjtBQUFBLFlBQ0E7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQTtBQUFBLGdCQUVSO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUVQLFdBQVc7QUFBQSxnQkFDYjtBQUFBO0FBQUEsZ0JBR0E7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsV0FBVztBQUFBLGdCQUNiO0FBQUE7QUFBQSxnQkFHQSxFQUFFLE9BQU8sbUdBQW1HO0FBQUE7QUFBQSxnQkFHNUcsRUFBRSxPQUFPLDRFQUE0RTtBQUFBLGNBQ3ZGO0FBQUEsWUFDRjtBQUFBO0FBQUEsWUFFQSxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsVUFBVTtBQUFBO0FBQUEsZ0JBRVI7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGdCQUNQO0FBQUE7QUFBQSxnQkFFQTtBQUFBLGtCQUNFLE9BQU87QUFBQSxrQkFDUCxLQUFLO0FBQUEsZ0JBQ1A7QUFBQSxjQUNGO0FBQUEsY0FDQSxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQTtBQUFBLGdCQUVSLEVBQUUsT0FBTyxtREFBbUQ7QUFBQTtBQUFBLGdCQUU1RCxFQUFFLE9BQU8sOEJBQThCO0FBQUEsY0FDekM7QUFBQSxjQUNBLFdBQVc7QUFBQSxZQUNiO0FBQUE7QUFBQSxZQUVBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBO0FBQUEsWUFFQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ3hKakI7QUFBQTtBQU9BLGVBQVMsR0FBRyxNQUFNO0FBQ2hCLGNBQU0sTUFBTTtBQUFBLFVBQ1Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxrQkFBa0I7QUFBQSxVQUN0QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2YsVUFBVTtBQUFBLFVBQ1YsU0FBUztBQUFBLFVBQ1QsU0FBUztBQUFBLFVBQ1QsVUFBVSxVQUFVLE9BQU8sZUFBZTtBQUFBLFFBQzVDO0FBRUEsY0FBTSxvQkFBb0I7QUFBQSxVQUN4QixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxTQUFTO0FBQUEsUUFDWDtBQUNBLGNBQU0sb0JBQW9CO0FBQUEsVUFDeEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsU0FBUztBQUFBLFFBQ1g7QUFDQSxjQUFNLFlBQVk7QUFBQSxVQUNoQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsUUFDUDtBQUNBLGNBQU0sZUFBZTtBQUFBLFVBQ25CLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBQ0EsY0FBTSxTQUFTO0FBQUEsVUFDYixlQUFlO0FBQUEsVUFDZixLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFDVixVQUFVLENBQUUsaUJBQWtCO0FBQUEsUUFDaEM7QUFDQSxjQUFNLHNCQUFzQjtBQUFBLFVBQzFCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLGFBQWE7QUFBQSxVQUNiLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxZQUNSLEtBQUssUUFBUSxLQUFLLFlBQVksRUFBRSxRQUFRO0FBQUEsY0FDdEMsZ0JBQWdCO0FBQUEsY0FDaEIsVUFBVTtBQUFBLFlBQ1osRUFBRSxDQUFDO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTLENBQUUsS0FBTTtBQUFBLFVBQ2pCLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLEtBQUs7QUFBQSxVQUNQO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUM1TWpCO0FBQUE7QUFZQSxlQUFTLE9BQU8sT0FBTztBQUVyQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFJQSxjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVB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O0lBSXZCLGNBQWMsTUFBTSxTQUFTLFFBQU87QUFDbEMsY0FBQTtBQUNBLFVBQUksUUFBUSxXQUFXLE1BQU07QUFDM0IsYUFBSyxZQUFZLE9BQU8sS0FBQTtBQUN4QixlQUFBO0FBQ0EsWUFBRyxLQUFLLEtBQUEsTUFBVyxHQUFFO0FBQUUsZUFBSyxnQkFBQTtRQUFBO01BQUEsR0FDM0IsSUFBQTtBQUNILFdBQUssWUFBWSxJQUFJLEtBQUE7SUFBQTtJQUd2QixjQUFjLElBQUc7QUFBRSxXQUFLLFdBQVcsS0FBSyxFQUFBO0lBQUE7SUFFeEMsT0FBTTtBQUFFLGFBQU8sS0FBSyxZQUFZO0lBQUE7SUFFaEMsa0JBQWlCO0FBQ2YsV0FBSyxXQUFXLFFBQVEsQ0FBQSxPQUFNLEdBQUEsQ0FBQTtBQUM5QixXQUFLLGFBQWEsQ0FBQTtJQUFBO0VBQUE7OztBakh0MEJ0QixzQkFBbUI7QUFwQm5CLFNBQU8sSUFBSSxlQUFBSTtBQUNYLFNBQU8sU0FBUyxlQUFBQTtBQUtoQixxQkFBQUEsU0FBRSxXQUFZO0FBQUUsZUFBSyxhQUFhO0FBQUEsRUFBRyxDQUFDO0FBZ0J0QyxNQUFJLFlBQVksU0FBUyxjQUFjLHlCQUF5QixFQUFFLGFBQWEsU0FBUztBQUN4RixNQUFJLGFBQWEsSUFBSSxXQUFXLFNBQVMsUUFBUSxFQUFDLFFBQVEsRUFBQyxhQUFhLFVBQVMsRUFBQyxDQUFDO0FBR25GLGdCQUFBQyxRQUFPLE9BQU8sRUFBQyxXQUFXLEVBQUMsR0FBRyxPQUFNLEdBQUcsYUFBYSxvQkFBbUIsQ0FBQztBQUN4RSxTQUFPLGlCQUFpQiwwQkFBMEIsVUFBUSxjQUFBQSxRQUFPLEtBQUssQ0FBQztBQUN2RSxTQUFPLGlCQUFpQix5QkFBeUIsVUFBUSxjQUFBQSxRQUFPLEtBQUssQ0FBQztBQUd0RSxhQUFXLFFBQVE7QUFNbkIsU0FBTyxhQUFhOyIsCiAgIm5hbWVzIjogWyJnbG9iYWwiLCAid2luZG93IiwgImlzRnVuY3Rpb24iLCAiaXNXaW5kb3ciLCAiZG9jdW1lbnQiLCAiZG9jIiwgInRvVHlwZSIsICJjbG9uZSIsICJhcnIiLCAicHVzaCIsICJkb2N1bWVudEVsZW1lbnQiLCAicnF1aWNrRXhwciIsICJpIiwgImZuIiwgIm1hdGNoZXMiLCAibm9kZSIsICJzdGFydCIsICJkaXIiLCAiaGFzaCIsICJmaW5kIiwgImVsZW0iLCAic2VsZiIsICJ2YWx1ZSIsICJkZWZlcnJlZCIsICJEYXRhIiwgImRhdGEiLCAibm9kZU5hbWUiLCAibmFtZSIsICJlbmQiLCAiaW5kZXgiLCAibGVuZ3RoIiwgIm1heCIsICJsb2NhdGlvbiIsICJ2YWwiLCAiY29tcGxldGVkIiwgIm9mZnNldCIsICJ0b3AiLCAibWV0aG9kIiwgInR5cGUiLCAib2Zmc2V0IiwgImVuZCIsICJzY29wZU5hbWUiLCAidmVyc2lvbiIsICJnbG9iYWwiLCAiaSIsICJoaWdobGlnaHQiLCAidG9wIiwgInJlc3VsdCIsICJtYXgiLCAicmVxdWlyZV9jIiwgIk5BTUUiLCAiVElUTEUiLCAiZW5kIiwgImNvbnRhaW5zIiwgImVuZCIsICJOQU1FIiwgImVuZCIsICJ2YXJpYW50cyIsICJWRVJTSU9OIiwgIk5BTUUiLCAiVElUTEUiLCAiVElUTEUiLCAiVElUTEUiLCAiTkFNRSIsICJOQU1FIiwgImVuZCIsICJUWVBFUyIsICJUSVRMRSIsICJ3aW5kb3ciLCAiZG9jdW1lbnQiLCAidG9wYmFyIiwgImltcG9ydF9qcXVlcnkiLCAiY3JlYXRlUG9wcGVyIiwgIm5hbWUiLCAic3R5bGUiLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJnZXRDb21wdXRlZFN0eWxlIiwgIndpbmRvdyIsICJtaW4iLCAibWF4IiwgInRvUGFkZGluZ09iamVjdCIsICJwb3BwZXJPZmZzZXRzIiwgIm1pbiIsICJtYXgiLCAib2Zmc2V0IiwgImVmZmVjdCIsICJwb3BwZXIiLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJlZmZlY3QiLCAid2luZG93IiwgImhhc2giLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJnZXRDb21wdXRlZFN0eWxlIiwgImNsaXBwaW5nUGFyZW50cyIsICJnZXRDb21wdXRlZFN0eWxlIiwgInJlZmVyZW5jZSIsICJwb3BwZXJPZmZzZXRzIiwgIm9mZnNldCIsICJwbGFjZW1lbnRzIiwgInBsYWNlbWVudCIsICJwbGFjZW1lbnRzIiwgInBsYWNlbWVudCIsICJfbG9vcCIsICJfaSIsICJjaGVja3MiLCAib2Zmc2V0IiwgInBvcHBlck9mZnNldHMiLCAib2Zmc2V0IiwgIm1pbiIsICJtYXgiLCAiZm4iLCAibWVyZ2VkIiwgImRlZmF1bHRNb2RpZmllcnMiLCAiY3JlYXRlUG9wcGVyIiwgInJlZmVyZW5jZSIsICJwb3BwZXIiLCAib3B0aW9ucyIsICJmbiIsICJzdGF0ZSIsICJlZmZlY3QiLCAibm9vcEZuIiwgImNyZWF0ZVBvcHBlciIsICJkZWZhdWx0TW9kaWZpZXJzIiwgImNyZWF0ZVBvcHBlciIsICJlbGVtZW50TWFwIiwgIk1hcCIsICJzZXQiLCAiZWxlbWVudCIsICJrZXkiLCAiaW5zdGFuY2UiLCAiaGFzIiwgImluc3RhbmNlTWFwIiwgImdldCIsICJzaXplIiwgImNvbnNvbGUiLCAiZXJyb3IiLCAiQXJyYXkiLCAiZnJvbSIsICJrZXlzIiwgInJlbW92ZSIsICJkZWxldGUiLCAiTUFYX1VJRCIsICJNSUxMSVNFQ09ORFNfTVVMVElQTElFUiIsICJUUkFOU0lUSU9OX0VORCIsICJwYXJzZVNlbGVjdG9yIiwgInNlbGVjdG9yIiwgIndpbmRvdyIsICJDU1MiLCAiZXNjYXBlIiwgInJlcGxhY2UiLCAibWF0Y2giLCAiaWQiLCAidG9UeXBlIiwgIm9iamVjdCIsICJ1bmRlZmluZWQiLCAiT2JqZWN0IiwgInByb3RvdHlwZSIsICJ0b1N0cmluZyIsICJjYWxsIiwgInRvTG93ZXJDYXNlIiwgImdldFVJRCIsICJwcmVmaXgiLCAiTWF0aCIsICJmbG9vciIsICJyYW5kb20iLCAiZG9jdW1lbnQiLCAiZ2V0RWxlbWVudEJ5SWQiLCAiZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQiLCAidHJhbnNpdGlvbkR1cmF0aW9uIiwgInRyYW5zaXRpb25EZWxheSIsICJnZXRDb21wdXRlZFN0eWxlIiwgImZsb2F0VHJhbnNpdGlvbkR1cmF0aW9uIiwgIk51bWJlciIsICJwYXJzZUZsb2F0IiwgImZsb2F0VHJhbnNpdGlvbkRlbGF5IiwgInNwbGl0IiwgInRyaWdnZXJUcmFuc2l0aW9uRW5kIiwgImRpc3BhdGNoRXZlbnQiLCAiRXZlbnQiLCAiaXNFbGVtZW50IiwgImpxdWVyeSIsICJub2RlVHlwZSIsICJnZXRFbGVtZW50IiwgImxlbmd0aCIsICJxdWVyeVNlbGVjdG9yIiwgImlzVmlzaWJsZSIsICJnZXRDbGllbnRSZWN0cyIsICJlbGVtZW50SXNWaXNpYmxlIiwgImdldFByb3BlcnR5VmFsdWUiLCAiY2xvc2VkRGV0YWlscyIsICJjbG9zZXN0IiwgInN1bW1hcnkiLCAicGFyZW50Tm9kZSIsICJpc0Rpc2FibGVkIiwgIk5vZGUiLCAiRUxFTUVOVF9OT0RFIiwgImNsYXNzTGlzdCIsICJjb250YWlucyIsICJkaXNhYmxlZCIsICJoYXNBdHRyaWJ1dGUiLCAiZ2V0QXR0cmlidXRlIiwgImZpbmRTaGFkb3dSb290IiwgImRvY3VtZW50RWxlbWVudCIsICJhdHRhY2hTaGFkb3ciLCAiZ2V0Um9vdE5vZGUiLCAicm9vdCIsICJTaGFkb3dSb290IiwgIm5vb3AiLCAicmVmbG93IiwgIm9mZnNldEhlaWdodCIsICJnZXRqUXVlcnkiLCAialF1ZXJ5IiwgImJvZHkiLCAiRE9NQ29udGVudExvYWRlZENhbGxiYWNrcyIsICJvbkRPTUNvbnRlbnRMb2FkZWQiLCAiY2FsbGJhY2siLCAicmVhZHlTdGF0ZSIsICJhZGRFdmVudExpc3RlbmVyIiwgInB1c2giLCAiaXNSVEwiLCAiZGlyIiwgImRlZmluZUpRdWVyeVBsdWdpbiIsICJwbHVnaW4iLCAiJCIsICJuYW1lIiwgIk5BTUUiLCAiSlFVRVJZX05PX0NPTkZMSUNUIiwgImZuIiwgImpRdWVyeUludGVyZmFjZSIsICJDb25zdHJ1Y3RvciIsICJub0NvbmZsaWN0IiwgImV4ZWN1dGUiLCAicG9zc2libGVDYWxsYmFjayIsICJhcmdzIiwgImRlZmF1bHRWYWx1ZSIsICJleGVjdXRlQWZ0ZXJUcmFuc2l0aW9uIiwgInRyYW5zaXRpb25FbGVtZW50IiwgIndhaXRGb3JUcmFuc2l0aW9uIiwgImR1cmF0aW9uUGFkZGluZyIsICJlbXVsYXRlZER1cmF0aW9uIiwgImNhbGxlZCIsICJoYW5kbGVyIiwgInRhcmdldCIsICJyZW1vdmVFdmVudExpc3RlbmVyIiwgInNldFRpbWVvdXQiLCAiZ2V0TmV4dEFjdGl2ZUVsZW1lbnQiLCAibGlzdCIsICJhY3RpdmVFbGVtZW50IiwgInNob3VsZEdldE5leHQiLCAiaXNDeWNsZUFsbG93ZWQiLCAibGlzdExlbmd0aCIsICJpbmRleCIsICJpbmRleE9mIiwgIm1heCIsICJtaW4iLCAibmFtZXNwYWNlUmVnZXgiLCAic3RyaXBOYW1lUmVnZXgiLCAic3RyaXBVaWRSZWdleCIsICJldmVudFJlZ2lzdHJ5IiwgInVpZEV2ZW50IiwgImN1c3RvbUV2ZW50cyIsICJtb3VzZWVudGVyIiwgIm1vdXNlbGVhdmUiLCAibmF0aXZlRXZlbnRzIiwgIlNldCIsICJtYWtlRXZlbnRVaWQiLCAidWlkIiwgImdldEVsZW1lbnRFdmVudHMiLCAiYm9vdHN0cmFwSGFuZGxlciIsICJldmVudCIsICJoeWRyYXRlT2JqIiwgImRlbGVnYXRlVGFyZ2V0IiwgIm9uZU9mZiIsICJFdmVudEhhbmRsZXIiLCAib2ZmIiwgInR5cGUiLCAiYXBwbHkiLCAiYm9vdHN0cmFwRGVsZWdhdGlvbkhhbmRsZXIiLCAiZG9tRWxlbWVudHMiLCAicXVlcnlTZWxlY3RvckFsbCIsICJkb21FbGVtZW50IiwgImZpbmRIYW5kbGVyIiwgImV2ZW50cyIsICJjYWxsYWJsZSIsICJkZWxlZ2F0aW9uU2VsZWN0b3IiLCAidmFsdWVzIiwgImZpbmQiLCAibm9ybWFsaXplUGFyYW1ldGVycyIsICJvcmlnaW5hbFR5cGVFdmVudCIsICJkZWxlZ2F0aW9uRnVuY3Rpb24iLCAiaXNEZWxlZ2F0ZWQiLCAidHlwZUV2ZW50IiwgImdldFR5cGVFdmVudCIsICJhZGRIYW5kbGVyIiwgIndyYXBGdW5jdGlvbiIsICJyZWxhdGVkVGFyZ2V0IiwgImhhbmRsZXJzIiwgInByZXZpb3VzRnVuY3Rpb24iLCAicmVtb3ZlSGFuZGxlciIsICJCb29sZWFuIiwgInJlbW92ZU5hbWVzcGFjZWRIYW5kbGVycyIsICJuYW1lc3BhY2UiLCAic3RvcmVFbGVtZW50RXZlbnQiLCAiaGFuZGxlcktleSIsICJlbnRyaWVzIiwgImluY2x1ZGVzIiwgIm9uIiwgIm9uZSIsICJpbk5hbWVzcGFjZSIsICJpc05hbWVzcGFjZSIsICJzdGFydHNXaXRoIiwgImVsZW1lbnRFdmVudCIsICJzbGljZSIsICJrZXlIYW5kbGVycyIsICJ0cmlnZ2VyIiwgImpRdWVyeUV2ZW50IiwgImJ1YmJsZXMiLCAibmF0aXZlRGlzcGF0Y2giLCAiZGVmYXVsdFByZXZlbnRlZCIsICJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsICJpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCIsICJpc0RlZmF1bHRQcmV2ZW50ZWQiLCAiZXZ0IiwgImNhbmNlbGFibGUiLCAicHJldmVudERlZmF1bHQiLCAib2JqIiwgIm1ldGEiLCAidmFsdWUiLCAiX3VudXNlZCIsICJkZWZpbmVQcm9wZXJ0eSIsICJjb25maWd1cmFibGUiLCAibm9ybWFsaXplRGF0YSIsICJKU09OIiwgInBhcnNlIiwgImRlY29kZVVSSUNvbXBvbmVudCIsICJub3JtYWxpemVEYXRhS2V5IiwgImNociIsICJNYW5pcHVsYXRvciIsICJzZXREYXRhQXR0cmlidXRlIiwgInNldEF0dHJpYnV0ZSIsICJyZW1vdmVEYXRhQXR0cmlidXRlIiwgInJlbW92ZUF0dHJpYnV0ZSIsICJnZXREYXRhQXR0cmlidXRlcyIsICJhdHRyaWJ1dGVzIiwgImJzS2V5cyIsICJkYXRhc2V0IiwgImZpbHRlciIsICJwdXJlS2V5IiwgImNoYXJBdCIsICJnZXREYXRhQXR0cmlidXRlIiwgIkNvbmZpZyIsICJEZWZhdWx0IiwgIkRlZmF1bHRUeXBlIiwgIkVycm9yIiwgIl9nZXRDb25maWciLCAiY29uZmlnIiwgIl9tZXJnZUNvbmZpZ09iaiIsICJfY29uZmlnQWZ0ZXJNZXJnZSIsICJfdHlwZUNoZWNrQ29uZmlnIiwgImpzb25Db25maWciLCAiY29uc3RydWN0b3IiLCAiY29uZmlnVHlwZXMiLCAicHJvcGVydHkiLCAiZXhwZWN0ZWRUeXBlcyIsICJ2YWx1ZVR5cGUiLCAiUmVnRXhwIiwgInRlc3QiLCAiVHlwZUVycm9yIiwgInRvVXBwZXJDYXNlIiwgIlZFUlNJT04iLCAiQmFzZUNvbXBvbmVudCIsICJfZWxlbWVudCIsICJfY29uZmlnIiwgIkRhdGEiLCAiREFUQV9LRVkiLCAiZGlzcG9zZSIsICJFVkVOVF9LRVkiLCAicHJvcGVydHlOYW1lIiwgImdldE93blByb3BlcnR5TmFtZXMiLCAiX3F1ZXVlQ2FsbGJhY2siLCAiaXNBbmltYXRlZCIsICJnZXRJbnN0YW5jZSIsICJnZXRPckNyZWF0ZUluc3RhbmNlIiwgImV2ZW50TmFtZSIsICJnZXRTZWxlY3RvciIsICJocmVmQXR0cmlidXRlIiwgInRyaW0iLCAibWFwIiwgInNlbCIsICJqb2luIiwgIlNlbGVjdG9yRW5naW5lIiwgImNvbmNhdCIsICJFbGVtZW50IiwgImZpbmRPbmUiLCAiY2hpbGRyZW4iLCAiY2hpbGQiLCAibWF0Y2hlcyIsICJwYXJlbnRzIiwgImFuY2VzdG9yIiwgInByZXYiLCAicHJldmlvdXMiLCAicHJldmlvdXNFbGVtZW50U2libGluZyIsICJuZXh0IiwgIm5leHRFbGVtZW50U2libGluZyIsICJmb2N1c2FibGVDaGlsZHJlbiIsICJmb2N1c2FibGVzIiwgImVsIiwgImdldFNlbGVjdG9yRnJvbUVsZW1lbnQiLCAiZ2V0RWxlbWVudEZyb21TZWxlY3RvciIsICJnZXRNdWx0aXBsZUVsZW1lbnRzRnJvbVNlbGVjdG9yIiwgImVuYWJsZURpc21pc3NUcmlnZ2VyIiwgImNvbXBvbmVudCIsICJtZXRob2QiLCAiY2xpY2tFdmVudCIsICJ0YWdOYW1lIiwgIkVWRU5UX0NMT1NFIiwgIkVWRU5UX0NMT1NFRCIsICJDTEFTU19OQU1FX0ZBREUiLCAiQ0xBU1NfTkFNRV9TSE9XIiwgIkFsZXJ0IiwgImNsb3NlIiwgImNsb3NlRXZlbnQiLCAiX2Rlc3Ryb3lFbGVtZW50IiwgImVhY2giLCAiZGF0YSIsICJEQVRBX0FQSV9LRVkiLCAiQ0xBU1NfTkFNRV9BQ1RJVkUiLCAiU0VMRUNUT1JfREFUQV9UT0dHTEUiLCAiRVZFTlRfQ0xJQ0tfREFUQV9BUEkiLCAiQnV0dG9uIiwgInRvZ2dsZSIsICJidXR0b24iLCAiRVZFTlRfVE9VQ0hTVEFSVCIsICJFVkVOVF9UT1VDSE1PVkUiLCAiRVZFTlRfVE9VQ0hFTkQiLCAiRVZFTlRfUE9JTlRFUkRPV04iLCAiRVZFTlRfUE9JTlRFUlVQIiwgIlBPSU5URVJfVFlQRV9UT1VDSCIsICJQT0lOVEVSX1RZUEVfUEVOIiwgIkNMQVNTX05BTUVfUE9JTlRFUl9FVkVOVCIsICJTV0lQRV9USFJFU0hPTEQiLCAiZW5kQ2FsbGJhY2siLCAibGVmdENhbGxiYWNrIiwgInJpZ2h0Q2FsbGJhY2siLCAiU3dpcGUiLCAiaXNTdXBwb3J0ZWQiLCAiX2RlbHRhWCIsICJfc3VwcG9ydFBvaW50ZXJFdmVudHMiLCAiUG9pbnRlckV2ZW50IiwgIl9pbml0RXZlbnRzIiwgIl9zdGFydCIsICJ0b3VjaGVzIiwgImNsaWVudFgiLCAiX2V2ZW50SXNQb2ludGVyUGVuVG91Y2giLCAiX2VuZCIsICJfaGFuZGxlU3dpcGUiLCAiX21vdmUiLCAiYWJzRGVsdGFYIiwgImFicyIsICJkaXJlY3Rpb24iLCAiYWRkIiwgInBvaW50ZXJUeXBlIiwgIm5hdmlnYXRvciIsICJtYXhUb3VjaFBvaW50cyIsICJBUlJPV19MRUZUX0tFWSIsICJBUlJPV19SSUdIVF9LRVkiLCAiVE9VQ0hFVkVOVF9DT01QQVRfV0FJVCIsICJPUkRFUl9ORVhUIiwgIk9SREVSX1BSRVYiLCAiRElSRUNUSU9OX0xFRlQiLCAiRElSRUNUSU9OX1JJR0hUIiwgIkVWRU5UX1NMSURFIiwgIkVWRU5UX1NMSUQiLCAiRVZFTlRfS0VZRE9XTiIsICJFVkVOVF9NT1VTRUVOVEVSIiwgIkVWRU5UX01PVVNFTEVBVkUiLCAiRVZFTlRfRFJBR19TVEFSVCIsICJFVkVOVF9MT0FEX0RBVEFfQVBJIiwgIkNMQVNTX05BTUVfQ0FST1VTRUwiLCAiQ0xBU1NfTkFNRV9TTElERSIsICJDTEFTU19OQU1FX0VORCIsICJDTEFTU19OQU1FX1NUQVJUIiwgIkNMQVNTX05BTUVfTkVYVCIsICJDTEFTU19OQU1FX1BSRVYiLCAiU0VMRUNUT1JfQUNUSVZFIiwgIlNFTEVDVE9SX0lURU0iLCAiU0VMRUNUT1JfQUNUSVZFX0lURU0iLCAiU0VMRUNUT1JfSVRFTV9JTUciLCAiU0VMRUNUT1JfSU5ESUNBVE9SUyIsICJTRUxFQ1RPUl9EQVRBX1NMSURFIiwgIlNFTEVDVE9SX0RBVEFfUklERSIsICJLRVlfVE9fRElSRUNUSU9OIiwgImludGVydmFsIiwgImtleWJvYXJkIiwgInBhdXNlIiwgInJpZGUiLCAidG91Y2giLCAid3JhcCIsICJDYXJvdXNlbCIsICJfaW50ZXJ2YWwiLCAiX2FjdGl2ZUVsZW1lbnQiLCAiX2lzU2xpZGluZyIsICJ0b3VjaFRpbWVvdXQiLCAiX3N3aXBlSGVscGVyIiwgIl9pbmRpY2F0b3JzRWxlbWVudCIsICJfYWRkRXZlbnRMaXN0ZW5lcnMiLCAiY3ljbGUiLCAiX3NsaWRlIiwgIm5leHRXaGVuVmlzaWJsZSIsICJoaWRkZW4iLCAiX2NsZWFySW50ZXJ2YWwiLCAiX3VwZGF0ZUludGVydmFsIiwgInNldEludGVydmFsIiwgIl9tYXliZUVuYWJsZUN5Y2xlIiwgInRvIiwgIml0ZW1zIiwgIl9nZXRJdGVtcyIsICJhY3RpdmVJbmRleCIsICJfZ2V0SXRlbUluZGV4IiwgIl9nZXRBY3RpdmUiLCAib3JkZXIiLCAiZGVmYXVsdEludGVydmFsIiwgIl9rZXlkb3duIiwgIl9hZGRUb3VjaEV2ZW50TGlzdGVuZXJzIiwgImltZyIsICJlbmRDYWxsQmFjayIsICJjbGVhclRpbWVvdXQiLCAic3dpcGVDb25maWciLCAiX2RpcmVjdGlvblRvT3JkZXIiLCAiX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQiLCAiYWN0aXZlSW5kaWNhdG9yIiwgIm5ld0FjdGl2ZUluZGljYXRvciIsICJlbGVtZW50SW50ZXJ2YWwiLCAicGFyc2VJbnQiLCAiaXNOZXh0IiwgIm5leHRFbGVtZW50IiwgIm5leHRFbGVtZW50SW5kZXgiLCAidHJpZ2dlckV2ZW50IiwgIl9vcmRlclRvRGlyZWN0aW9uIiwgInNsaWRlRXZlbnQiLCAiaXNDeWNsaW5nIiwgImRpcmVjdGlvbmFsQ2xhc3NOYW1lIiwgIm9yZGVyQ2xhc3NOYW1lIiwgImNvbXBsZXRlQ2FsbEJhY2siLCAiX2lzQW5pbWF0ZWQiLCAiY2xlYXJJbnRlcnZhbCIsICJjYXJvdXNlbCIsICJzbGlkZUluZGV4IiwgImNhcm91c2VscyIsICJFVkVOVF9TSE9XIiwgIkVWRU5UX1NIT1dOIiwgIkVWRU5UX0hJREUiLCAiRVZFTlRfSElEREVOIiwgIkNMQVNTX05BTUVfQ09MTEFQU0UiLCAiQ0xBU1NfTkFNRV9DT0xMQVBTSU5HIiwgIkNMQVNTX05BTUVfQ09MTEFQU0VEIiwgIkNMQVNTX05BTUVfREVFUEVSX0NISUxEUkVOIiwgIkNMQVNTX05BTUVfSE9SSVpPTlRBTCIsICJXSURUSCIsICJIRUlHSFQiLCAiU0VMRUNUT1JfQUNUSVZFUyIsICJwYXJlbnQiLCAiQ29sbGFwc2UiLCAiX2lzVHJhbnNpdGlvbmluZyIsICJfdHJpZ2dlckFycmF5IiwgInRvZ2dsZUxpc3QiLCAiZWxlbSIsICJmaWx0ZXJFbGVtZW50IiwgImZvdW5kRWxlbWVudCIsICJfaW5pdGlhbGl6ZUNoaWxkcmVuIiwgIl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MiLCAiX2lzU2hvd24iLCAiaGlkZSIsICJzaG93IiwgImFjdGl2ZUNoaWxkcmVuIiwgIl9nZXRGaXJzdExldmVsQ2hpbGRyZW4iLCAic3RhcnRFdmVudCIsICJhY3RpdmVJbnN0YW5jZSIsICJkaW1lbnNpb24iLCAiX2dldERpbWVuc2lvbiIsICJzdHlsZSIsICJjb21wbGV0ZSIsICJjYXBpdGFsaXplZERpbWVuc2lvbiIsICJzY3JvbGxTaXplIiwgImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsICJzZWxlY3RlZCIsICJ0cmlnZ2VyQXJyYXkiLCAiaXNPcGVuIiwgIkVTQ0FQRV9LRVkiLCAiVEFCX0tFWSIsICJBUlJPV19VUF9LRVkiLCAiQVJST1dfRE9XTl9LRVkiLCAiUklHSFRfTU9VU0VfQlVUVE9OIiwgIkVWRU5UX0tFWURPV05fREFUQV9BUEkiLCAiRVZFTlRfS0VZVVBfREFUQV9BUEkiLCAiQ0xBU1NfTkFNRV9EUk9QVVAiLCAiQ0xBU1NfTkFNRV9EUk9QRU5EIiwgIkNMQVNTX05BTUVfRFJPUFNUQVJUIiwgIkNMQVNTX05BTUVfRFJPUFVQX0NFTlRFUiIsICJDTEFTU19OQU1FX0RST1BET1dOX0NFTlRFUiIsICJTRUxFQ1RPUl9EQVRBX1RPR0dMRV9TSE9XTiIsICJTRUxFQ1RPUl9NRU5VIiwgIlNFTEVDVE9SX05BVkJBUiIsICJTRUxFQ1RPUl9OQVZCQVJfTkFWIiwgIlNFTEVDVE9SX1ZJU0lCTEVfSVRFTVMiLCAiUExBQ0VNRU5UX1RPUCIsICJQTEFDRU1FTlRfVE9QRU5EIiwgIlBMQUNFTUVOVF9CT1RUT00iLCAiUExBQ0VNRU5UX0JPVFRPTUVORCIsICJQTEFDRU1FTlRfUklHSFQiLCAiUExBQ0VNRU5UX0xFRlQiLCAiUExBQ0VNRU5UX1RPUENFTlRFUiIsICJQTEFDRU1FTlRfQk9UVE9NQ0VOVEVSIiwgImF1dG9DbG9zZSIsICJib3VuZGFyeSIsICJkaXNwbGF5IiwgIm9mZnNldCIsICJwb3BwZXJDb25maWciLCAicmVmZXJlbmNlIiwgIkRyb3Bkb3duIiwgIl9wb3BwZXIiLCAiX3BhcmVudCIsICJfbWVudSIsICJfaW5OYXZiYXIiLCAiX2RldGVjdE5hdmJhciIsICJzaG93RXZlbnQiLCAiX2NyZWF0ZVBvcHBlciIsICJmb2N1cyIsICJfY29tcGxldGVIaWRlIiwgImRlc3Ryb3kiLCAidXBkYXRlIiwgImhpZGVFdmVudCIsICJQb3BwZXIiLCAicmVmZXJlbmNlRWxlbWVudCIsICJfZ2V0UG9wcGVyQ29uZmlnIiwgImNyZWF0ZVBvcHBlciIsICJfZ2V0UGxhY2VtZW50IiwgInBhcmVudERyb3Bkb3duIiwgImlzRW5kIiwgIl9nZXRPZmZzZXQiLCAicG9wcGVyRGF0YSIsICJkZWZhdWx0QnNQb3BwZXJDb25maWciLCAicGxhY2VtZW50IiwgIm1vZGlmaWVycyIsICJvcHRpb25zIiwgImVuYWJsZWQiLCAiX3NlbGVjdE1lbnVJdGVtIiwgImNsZWFyTWVudXMiLCAib3BlblRvZ2dsZXMiLCAiY29udGV4dCIsICJjb21wb3NlZFBhdGgiLCAiaXNNZW51VGFyZ2V0IiwgImRhdGFBcGlLZXlkb3duSGFuZGxlciIsICJpc0lucHV0IiwgImlzRXNjYXBlRXZlbnQiLCAiaXNVcE9yRG93bkV2ZW50IiwgImdldFRvZ2dsZUJ1dHRvbiIsICJzdG9wUHJvcGFnYXRpb24iLCAiRVZFTlRfTU9VU0VET1dOIiwgImNsYXNzTmFtZSIsICJjbGlja0NhbGxiYWNrIiwgInJvb3RFbGVtZW50IiwgIkJhY2tkcm9wIiwgIl9pc0FwcGVuZGVkIiwgIl9hcHBlbmQiLCAiX2dldEVsZW1lbnQiLCAiX2VtdWxhdGVBbmltYXRpb24iLCAiYmFja2Ryb3AiLCAiY3JlYXRlRWxlbWVudCIsICJhcHBlbmQiLCAiRVZFTlRfRk9DVVNJTiIsICJFVkVOVF9LRVlET1dOX1RBQiIsICJUQUJfTkFWX0ZPUldBUkQiLCAiVEFCX05BVl9CQUNLV0FSRCIsICJhdXRvZm9jdXMiLCAidHJhcEVsZW1lbnQiLCAiRm9jdXNUcmFwIiwgIl9pc0FjdGl2ZSIsICJfbGFzdFRhYk5hdkRpcmVjdGlvbiIsICJhY3RpdmF0ZSIsICJfaGFuZGxlRm9jdXNpbiIsICJfaGFuZGxlS2V5ZG93biIsICJkZWFjdGl2YXRlIiwgImVsZW1lbnRzIiwgInNoaWZ0S2V5IiwgIlNFTEVDVE9SX0ZJWEVEX0NPTlRFTlQiLCAiU0VMRUNUT1JfU1RJQ0tZX0NPTlRFTlQiLCAiUFJPUEVSVFlfUEFERElORyIsICJQUk9QRVJUWV9NQVJHSU4iLCAiU2Nyb2xsQmFySGVscGVyIiwgImdldFdpZHRoIiwgImRvY3VtZW50V2lkdGgiLCAiY2xpZW50V2lkdGgiLCAiaW5uZXJXaWR0aCIsICJ3aWR0aCIsICJfZGlzYWJsZU92ZXJGbG93IiwgIl9zZXRFbGVtZW50QXR0cmlidXRlcyIsICJjYWxjdWxhdGVkVmFsdWUiLCAicmVzZXQiLCAiX3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXMiLCAiaXNPdmVyZmxvd2luZyIsICJfc2F2ZUluaXRpYWxBdHRyaWJ1dGUiLCAib3ZlcmZsb3ciLCAic3R5bGVQcm9wZXJ0eSIsICJzY3JvbGxiYXJXaWR0aCIsICJtYW5pcHVsYXRpb25DYWxsQmFjayIsICJzZXRQcm9wZXJ0eSIsICJfYXBwbHlNYW5pcHVsYXRpb25DYWxsYmFjayIsICJhY3R1YWxWYWx1ZSIsICJyZW1vdmVQcm9wZXJ0eSIsICJjYWxsQmFjayIsICJFVkVOVF9ISURFX1BSRVZFTlRFRCIsICJFVkVOVF9SRVNJWkUiLCAiRVZFTlRfQ0xJQ0tfRElTTUlTUyIsICJFVkVOVF9NT1VTRURPV05fRElTTUlTUyIsICJFVkVOVF9LRVlET1dOX0RJU01JU1MiLCAiQ0xBU1NfTkFNRV9PUEVOIiwgIkNMQVNTX05BTUVfU1RBVElDIiwgIk9QRU5fU0VMRUNUT1IiLCAiU0VMRUNUT1JfRElBTE9HIiwgIlNFTEVDVE9SX01PREFMX0JPRFkiLCAiTW9kYWwiLCAiX2RpYWxvZyIsICJfYmFja2Ryb3AiLCAiX2luaXRpYWxpemVCYWNrRHJvcCIsICJfZm9jdXN0cmFwIiwgIl9pbml0aWFsaXplRm9jdXNUcmFwIiwgIl9zY3JvbGxCYXIiLCAiX2FkanVzdERpYWxvZyIsICJfc2hvd0VsZW1lbnQiLCAiX2hpZGVNb2RhbCIsICJoYW5kbGVVcGRhdGUiLCAic2Nyb2xsVG9wIiwgIm1vZGFsQm9keSIsICJ0cmFuc2l0aW9uQ29tcGxldGUiLCAiX3RyaWdnZXJCYWNrZHJvcFRyYW5zaXRpb24iLCAiZXZlbnQyIiwgIl9yZXNldEFkanVzdG1lbnRzIiwgImlzTW9kYWxPdmVyZmxvd2luZyIsICJzY3JvbGxIZWlnaHQiLCAiY2xpZW50SGVpZ2h0IiwgImluaXRpYWxPdmVyZmxvd1kiLCAib3ZlcmZsb3dZIiwgImlzQm9keU92ZXJmbG93aW5nIiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIsICJhbHJlYWR5T3BlbiIsICJDTEFTU19OQU1FX1NIT1dJTkciLCAiQ0xBU1NfTkFNRV9ISURJTkciLCAiQ0xBU1NfTkFNRV9CQUNLRFJPUCIsICJzY3JvbGwiLCAiT2ZmY2FudmFzIiwgImJsdXIiLCAiY29tcGxldGVDYWxsYmFjayIsICJwb3NpdGlvbiIsICJBUklBX0FUVFJJQlVURV9QQVRURVJOIiwgIkRlZmF1bHRBbGxvd2xpc3QiLCAiYSIsICJhcmVhIiwgImIiLCAiYnIiLCAiY29sIiwgImNvZGUiLCAiZGQiLCAiZGl2IiwgImRsIiwgImR0IiwgImVtIiwgImhyIiwgImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1IiwgImg2IiwgImkiLCAibGkiLCAib2wiLCAicCIsICJwcmUiLCAicyIsICJzbWFsbCIsICJzcGFuIiwgInN1YiIsICJzdXAiLCAic3Ryb25nIiwgInUiLCAidWwiLCAidXJpQXR0cmlidXRlcyIsICJTQUZFX1VSTF9QQVRURVJOIiwgImFsbG93ZWRBdHRyaWJ1dGUiLCAiYXR0cmlidXRlIiwgImFsbG93ZWRBdHRyaWJ1dGVMaXN0IiwgImF0dHJpYnV0ZU5hbWUiLCAibm9kZU5hbWUiLCAibm9kZVZhbHVlIiwgImF0dHJpYnV0ZVJlZ2V4IiwgInNvbWUiLCAicmVnZXgiLCAic2FuaXRpemVIdG1sIiwgInVuc2FmZUh0bWwiLCAiYWxsb3dMaXN0IiwgInNhbml0aXplRnVuY3Rpb24iLCAiZG9tUGFyc2VyIiwgIkRPTVBhcnNlciIsICJjcmVhdGVkRG9jdW1lbnQiLCAicGFyc2VGcm9tU3RyaW5nIiwgImVsZW1lbnROYW1lIiwgImF0dHJpYnV0ZUxpc3QiLCAiYWxsb3dlZEF0dHJpYnV0ZXMiLCAiaW5uZXJIVE1MIiwgImNvbnRlbnQiLCAiZXh0cmFDbGFzcyIsICJodG1sIiwgInNhbml0aXplIiwgInNhbml0aXplRm4iLCAidGVtcGxhdGUiLCAiRGVmYXVsdENvbnRlbnRUeXBlIiwgImVudHJ5IiwgIlRlbXBsYXRlRmFjdG9yeSIsICJnZXRDb250ZW50IiwgIl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbiIsICJoYXNDb250ZW50IiwgImNoYW5nZUNvbnRlbnQiLCAiX2NoZWNrQ29udGVudCIsICJ0b0h0bWwiLCAidGVtcGxhdGVXcmFwcGVyIiwgIl9tYXliZVNhbml0aXplIiwgInRleHQiLCAiX3NldENvbnRlbnQiLCAiYXJnIiwgInRlbXBsYXRlRWxlbWVudCIsICJfcHV0RWxlbWVudEluVGVtcGxhdGUiLCAidGV4dENvbnRlbnQiLCAiRElTQUxMT1dFRF9BVFRSSUJVVEVTIiwgIkNMQVNTX05BTUVfTU9EQUwiLCAiU0VMRUNUT1JfVE9PTFRJUF9JTk5FUiIsICJTRUxFQ1RPUl9NT0RBTCIsICJFVkVOVF9NT0RBTF9ISURFIiwgIlRSSUdHRVJfSE9WRVIiLCAiVFJJR0dFUl9GT0NVUyIsICJUUklHR0VSX0NMSUNLIiwgIlRSSUdHRVJfTUFOVUFMIiwgIkVWRU5UX0lOU0VSVEVEIiwgIkVWRU5UX0NMSUNLIiwgIkVWRU5UX0ZPQ1VTT1VUIiwgIkF0dGFjaG1lbnRNYXAiLCAiQVVUTyIsICJUT1AiLCAiUklHSFQiLCAiQk9UVE9NIiwgIkxFRlQiLCAiYW5pbWF0aW9uIiwgImNvbnRhaW5lciIsICJjdXN0b21DbGFzcyIsICJkZWxheSIsICJmYWxsYmFja1BsYWNlbWVudHMiLCAidGl0bGUiLCAiVG9vbHRpcCIsICJfaXNFbmFibGVkIiwgIl90aW1lb3V0IiwgIl9pc0hvdmVyZWQiLCAiX2FjdGl2ZVRyaWdnZXIiLCAiX3RlbXBsYXRlRmFjdG9yeSIsICJfbmV3Q29udGVudCIsICJ0aXAiLCAiX3NldExpc3RlbmVycyIsICJfZml4VGl0bGUiLCAiZW5hYmxlIiwgImRpc2FibGUiLCAidG9nZ2xlRW5hYmxlZCIsICJjbGljayIsICJfbGVhdmUiLCAiX2VudGVyIiwgIl9oaWRlTW9kYWxIYW5kbGVyIiwgIl9kaXNwb3NlUG9wcGVyIiwgIl9pc1dpdGhDb250ZW50IiwgInNoYWRvd1Jvb3QiLCAiaXNJblRoZURvbSIsICJvd25lckRvY3VtZW50IiwgIl9nZXRUaXBFbGVtZW50IiwgIl9pc1dpdGhBY3RpdmVUcmlnZ2VyIiwgIl9nZXRUaXRsZSIsICJfY3JlYXRlVGlwRWxlbWVudCIsICJfZ2V0Q29udGVudEZvclRlbXBsYXRlIiwgIl9nZXRUZW1wbGF0ZUZhY3RvcnkiLCAidGlwSWQiLCAic2V0Q29udGVudCIsICJfaW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0IiwgIl9nZXREZWxlZ2F0ZUNvbmZpZyIsICJhdHRhY2htZW50IiwgInBoYXNlIiwgInN0YXRlIiwgInRyaWdnZXJzIiwgImV2ZW50SW4iLCAiZXZlbnRPdXQiLCAiX3NldFRpbWVvdXQiLCAidGltZW91dCIsICJkYXRhQXR0cmlidXRlcyIsICJkYXRhQXR0cmlidXRlIiwgIlNFTEVDVE9SX1RJVExFIiwgIlNFTEVDVE9SX0NPTlRFTlQiLCAiUG9wb3ZlciIsICJfZ2V0Q29udGVudCIsICJFVkVOVF9BQ1RJVkFURSIsICJDTEFTU19OQU1FX0RST1BET1dOX0lURU0iLCAiU0VMRUNUT1JfREFUQV9TUFkiLCAiU0VMRUNUT1JfVEFSR0VUX0xJTktTIiwgIlNFTEVDVE9SX05BVl9MSVNUX0dST1VQIiwgIlNFTEVDVE9SX05BVl9MSU5LUyIsICJTRUxFQ1RPUl9OQVZfSVRFTVMiLCAiU0VMRUNUT1JfTElTVF9JVEVNUyIsICJTRUxFQ1RPUl9MSU5LX0lURU1TIiwgIlNFTEVDVE9SX0RST1BET1dOIiwgIlNFTEVDVE9SX0RST1BET1dOX1RPR0dMRSIsICJyb290TWFyZ2luIiwgInNtb290aFNjcm9sbCIsICJ0aHJlc2hvbGQiLCAiU2Nyb2xsU3B5IiwgIl90YXJnZXRMaW5rcyIsICJfb2JzZXJ2YWJsZVNlY3Rpb25zIiwgIl9yb290RWxlbWVudCIsICJfYWN0aXZlVGFyZ2V0IiwgIl9vYnNlcnZlciIsICJfcHJldmlvdXNTY3JvbGxEYXRhIiwgInZpc2libGVFbnRyeVRvcCIsICJwYXJlbnRTY3JvbGxUb3AiLCAicmVmcmVzaCIsICJfaW5pdGlhbGl6ZVRhcmdldHNBbmRPYnNlcnZhYmxlcyIsICJfbWF5YmVFbmFibGVTbW9vdGhTY3JvbGwiLCAiZGlzY29ubmVjdCIsICJfZ2V0TmV3T2JzZXJ2ZXIiLCAic2VjdGlvbiIsICJvYnNlcnZlIiwgIm9ic2VydmFibGVTZWN0aW9uIiwgImhhc2giLCAiaGVpZ2h0IiwgIm9mZnNldFRvcCIsICJzY3JvbGxUbyIsICJ0b3AiLCAiYmVoYXZpb3IiLCAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCAiX29ic2VydmVyQ2FsbGJhY2siLCAidGFyZ2V0RWxlbWVudCIsICJfcHJvY2VzcyIsICJ1c2VyU2Nyb2xsc0Rvd24iLCAiaXNJbnRlcnNlY3RpbmciLCAiX2NsZWFyQWN0aXZlQ2xhc3MiLCAiZW50cnlJc0xvd2VyVGhhblByZXZpb3VzIiwgInRhcmdldExpbmtzIiwgImFuY2hvciIsICJkZWNvZGVVUkkiLCAiX2FjdGl2YXRlUGFyZW50cyIsICJsaXN0R3JvdXAiLCAiaXRlbSIsICJhY3RpdmVOb2RlcyIsICJub2RlIiwgInNweSIsICJIT01FX0tFWSIsICJFTkRfS0VZIiwgIkNMQVNTX0RST1BET1dOIiwgIlNFTEVDVE9SX0RST1BET1dOX01FTlUiLCAiTk9UX1NFTEVDVE9SX0RST1BET1dOX1RPR0dMRSIsICJTRUxFQ1RPUl9UQUJfUEFORUwiLCAiU0VMRUNUT1JfT1VURVIiLCAiU0VMRUNUT1JfSU5ORVIiLCAiU0VMRUNUT1JfSU5ORVJfRUxFTSIsICJTRUxFQ1RPUl9EQVRBX1RPR0dMRV9BQ1RJVkUiLCAiVGFiIiwgIl9zZXRJbml0aWFsQXR0cmlidXRlcyIsICJfZ2V0Q2hpbGRyZW4iLCAiaW5uZXJFbGVtIiwgIl9lbGVtSXNBY3RpdmUiLCAiYWN0aXZlIiwgIl9nZXRBY3RpdmVFbGVtIiwgIl9kZWFjdGl2YXRlIiwgIl9hY3RpdmF0ZSIsICJyZWxhdGVkRWxlbSIsICJfdG9nZ2xlRHJvcERvd24iLCAibmV4dEFjdGl2ZUVsZW1lbnQiLCAicHJldmVudFNjcm9sbCIsICJfc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMiLCAiX3NldEluaXRpYWxBdHRyaWJ1dGVzT25DaGlsZCIsICJfZ2V0SW5uZXJFbGVtZW50IiwgImlzQWN0aXZlIiwgIm91dGVyRWxlbSIsICJfZ2V0T3V0ZXJFbGVtZW50IiwgIl9zZXRJbml0aWFsQXR0cmlidXRlc09uVGFyZ2V0UGFuZWwiLCAib3BlbiIsICJFVkVOVF9NT1VTRU9WRVIiLCAiRVZFTlRfTU9VU0VPVVQiLCAiQ0xBU1NfTkFNRV9ISURFIiwgImF1dG9oaWRlIiwgIlRvYXN0IiwgIl9oYXNNb3VzZUludGVyYWN0aW9uIiwgIl9oYXNLZXlib2FyZEludGVyYWN0aW9uIiwgIl9jbGVhclRpbWVvdXQiLCAiX21heWJlU2NoZWR1bGVIaWRlIiwgImlzU2hvd24iLCAiX29uSW50ZXJhY3Rpb24iLCAiaXNJbnRlcmFjdGluZyIsICJIaWdobGlnaHRKUyIsICIkIiwgImltcG9ydF9qcXVlcnkiLCAibWF4IiwgIiQiLCAiQ3VzdG9tRXZlbnQiLCAiY2xvc3VyZTIiLCAib2Zmc2V0IiwgImxpdmVTb2NrZXQiLCAiY2xvc3VyZSIsICJoYXNoIiwgImRlYm91bmNlIiwgIm5vb3AiLCAiJCIsICJ0b3BiYXIiXQp9Cg==
+//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9qcXVlcnkvZGlzdC9qcXVlcnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2NvcmUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy8xYy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FibmYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hY2Nlc3Nsb2cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hY3Rpb25zY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hZGEuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hbmdlbHNjcmlwdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwYWNoZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FwcGxlc2NyaXB0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXJjYWRlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXJkdWluby5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FybWFzbS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3htbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2FzY2lpZG9jLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYXNwZWN0ai5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2F1dG9ob3RrZXkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hdXRvaXQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hdnJhc20uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9hd2suanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9heGFwdGEuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9iYXNoLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvYmFzaWMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ibmYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9icmFpbmZ1Y2suanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2FsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2FwbnByb3RvLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2V5bG9uLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2xlYW4uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jbG9qdXJlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY2xvanVyZS1yZXBsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvY21ha2UuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb2ZmZWVzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb3EuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jb3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jcHAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jcm1zaC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2NyeXN0YWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc2hhcnAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc3AuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9jc3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFya2Rvd24uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kYXJ0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGVscGhpLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZGlmZi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RqYW5nby5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2Rucy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2RvY2tlcmZpbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kb3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9kc2NvbmZpZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2R0cy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2R1c3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9lYm5mLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZWxpeGlyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZWxtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVieS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2VyYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2VybGFuZy1yZXBsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXJsYW5nLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZXhjZWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9maXguanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9mbGl4LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZm9ydHJhbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2ZzaGFycC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dhbXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nYXVzcy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2djb2RlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ2hlcmtpbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dsc2wuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nbWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9nby5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2dvbG8uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ncmFkbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9ncmFwaHFsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvZ3Jvb3Z5LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaGFtbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hhbmRsZWJhcnMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oYXNrZWxsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvaGF4ZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2hzcC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2h0dHAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9oeS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2luZm9ybTcuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9pbmkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9pcnBmOTAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9pc2JsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvamF2YS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2phdmFzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qYm9zcy1jbGkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qc29uLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvanVsaWEuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9qdWxpYS1yZXBsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMva290bGluLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGFzc28uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sYXRleC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xkaWYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sZWFmLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbGVzcy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xpc3AuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9saXZlY29kZXNlcnZlci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL2xpdmVzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9sbHZtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbHNsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbHVhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWFrZWZpbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tYXRoZW1hdGljYS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21hdGxhYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21heGltYS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21lbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL21lcmN1cnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9taXBzYXNtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbWl6YXIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wZXJsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbW9qb2xpY2lvdXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb25rZXkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9tb29uc2NyaXB0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvbjFxbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25lc3RlZHRleHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9uZ2lueC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25pbS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25peC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25vZGUtcmVwbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL25zaXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vYmplY3RpdmVjLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvb2NhbWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9vcGVuc2NhZC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL294eWdlbmUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wYXJzZXIzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcGYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wZ3NxbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BocC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BocC10ZW1wbGF0ZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BsYWludGV4dC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3BvbnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wb3dlcnNoZWxsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvY2Vzc2luZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Byb2ZpbGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm9sb2cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wcm9wZXJ0aWVzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcHJvdG9idWYuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wdXBwZXQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9wdXJlYmFzaWMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9weXRob24uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9weXRob24tcmVwbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3EuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9xbWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcmVhc29ubWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yaWIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9yb2JvY29uZi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3JvdXRlcm9zLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnNsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvcnVsZXNsYW5ndWFnZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3J1c3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zYXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zY2FsYS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NjaGVtZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NjaWxhYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Njc3MuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy9zaGVsbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3NtYWxpLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21hbGx0YWxrLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc21sLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3FmLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3FsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3Rhbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N0YXRhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3RlcDIxLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3R5bHVzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvc3VidW5pdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3N3aWZ0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdGFnZ2Vyc2NyaXB0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveWFtbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RhcC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RjbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RocmlmdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3RwLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdHdpZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3R5cGVzY3JpcHQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YWxhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmJuZXQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92YnNjcmlwdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3Zic2NyaXB0LWh0bWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy92ZXJpbG9nLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMvdmhkbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3ZpbS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9saWIvbGFuZ3VhZ2VzL3dhc20uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy93cmVuLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveDg2YXNtLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL2xpYi9sYW5ndWFnZXMveGwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy94cXVlcnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2xhbmd1YWdlcy96ZXBoaXIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvbGliL2luZGV4LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy92ZW5kb3IvdG9wYmFyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9qcy9hcHAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvaW5kZXguanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZW51bXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldE5vZGVOYW1lLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2luc3RhbmNlT2YuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvbWF0aC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy91c2VyQWdlbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzTGF5b3V0Vmlld3BvcnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0TGF5b3V0UmVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvY29udGFpbnMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldENvbXB1dGVkU3R5bGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2lzVGFibGVFbGVtZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFBhcmVudE5vZGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvd2l0aGluLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZXhwYW5kVG9IYXNoTWFwLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9hcnJvdy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRWYXJpYXRpb24uanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2NvbXB1dGVTdHlsZXMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2V2ZW50TGlzdGVuZXJzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlUGxhY2VtZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2dldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRXaW5kb3dTY3JvbGwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFdpbmRvd1Njcm9sbEJhclguanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldFZpZXdwb3J0UmVjdC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0RG9jdW1lbnRSZWN0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9pc1Njcm9sbFBhcmVudC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9kb20tdXRpbHMvZ2V0U2Nyb2xsUGFyZW50LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9saXN0U2Nyb2xsUGFyZW50cy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9yZWN0VG9DbGllbnRSZWN0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDbGlwcGluZ1JlY3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvY29tcHV0ZU9mZnNldHMuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2ZsaXAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL2hpZGUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvbW9kaWZpZXJzL29mZnNldC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9tb2RpZmllcnMvcG9wcGVyT2Zmc2V0cy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi91dGlscy9nZXRBbHRBeGlzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9AcG9wcGVyanMvY29yZS9saWIvZG9tLXV0aWxzL2dldEhUTUxFbGVtZW50U2Nyb2xsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXROb2RlU2Nyb2xsLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2RvbS11dGlscy9nZXRDb21wb3NpdGVSZWN0LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL2RlYm91bmNlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL3V0aWxzL21lcmdlQnlOYW1lLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvQHBvcHBlcmpzL2NvcmUvbGliL2NyZWF0ZVBvcHBlci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXItbGl0ZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL0Bwb3BwZXJqcy9jb3JlL2xpYi9wb3BwZXIuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2RvbS9kYXRhLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy91dGlsL2luZGV4LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9kb20vZXZlbnQtaGFuZGxlci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvZG9tL21hbmlwdWxhdG9yLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy91dGlsL2NvbmZpZy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvYmFzZS1jb21wb25lbnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2RvbS9zZWxlY3Rvci1lbmdpbmUuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL3V0aWwvY29tcG9uZW50LWZ1bmN0aW9ucy5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvYWxlcnQuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2J1dHRvbi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC9zd2lwZS5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvY2Fyb3VzZWwuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL2NvbGxhcHNlLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9kcm9wZG93bi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC9iYWNrZHJvcC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC9mb2N1c3RyYXAuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL3V0aWwvc2Nyb2xsYmFyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9tb2RhbC5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvb2ZmY2FudmFzLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy91dGlsL3Nhbml0aXplci5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdXRpbC90ZW1wbGF0ZS1mYWN0b3J5LmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy90b29sdGlwLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9wb3BvdmVyLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL2pzL3NyYy9zY3JvbGxzcHkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9ib290c3RyYXAvanMvc3JjL3RhYi5qcyIsICIuLi8uLi8uLi9hc3NldHMvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9qcy9zcmMvdG9hc3QuanMiLCAiLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9oaWdobGlnaHQuanMvZXMvaW5kZXguanMiLCAiLi4vLi4vLi4vYXNzZXRzL2pzL3JlcG9zaXRvcnkuanMiLCAiLi4vLi4vLi4vYXNzZXRzL2pzL2tteF9hbmltLmpzIiwgIi4uLy4uLy4uL2Fzc2V0cy9qcy9rbXhfY29sb3JzLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9odG1sL3ByaXYvc3RhdGljL3Bob2VuaXhfaHRtbC5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvdXRpbHMuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2NvbnN0YW50cy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvcHVzaC5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvdGltZXIuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2NoYW5uZWwuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2FqYXguanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4L2Fzc2V0cy9qcy9waG9lbml4L2xvbmdwb2xsLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peC9hc3NldHMvanMvcGhvZW5peC9wcmVzZW5jZS5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvc2VyaWFsaXplci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXgvYXNzZXRzL2pzL3Bob2VuaXgvc29ja2V0LmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L2NvbnN0YW50cy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9lbnRyeV91cGxvYWRlci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy91dGlscy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9icm93c2VyLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L2RvbS5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy91cGxvYWRfZW50cnkuanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4X2xpdmVfdmlldy9hc3NldHMvanMvcGhvZW5peF9saXZlX3ZpZXcvbGl2ZV91cGxvYWRlci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9ob29rcy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9kb21fcG9zdF9tb3JwaF9yZXN0b3Jlci5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9ub2RlX21vZHVsZXMvbW9ycGhkb20vZGlzdC9tb3JwaGRvbS1lc20uanMiLCAiLi4vLi4vLi4vZGVwcy9waG9lbml4X2xpdmVfdmlldy9hc3NldHMvanMvcGhvZW5peF9saXZlX3ZpZXcvZG9tX3BhdGNoLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L3JlbmRlcmVkLmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L3ZpZXdfaG9vay5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy9qcy5qcyIsICIuLi8uLi8uLi9kZXBzL3Bob2VuaXhfbGl2ZV92aWV3L2Fzc2V0cy9qcy9waG9lbml4X2xpdmVfdmlldy92aWV3LmpzIiwgIi4uLy4uLy4uL2RlcHMvcGhvZW5peF9saXZlX3ZpZXcvYXNzZXRzL2pzL3Bob2VuaXhfbGl2ZV92aWV3L2xpdmVfc29ja2V0LmpzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuNy4xXG4gKiBodHRwczovL2pxdWVyeS5jb20vXG4gKlxuICogQ29weXJpZ2h0IE9wZW5KUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cHM6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBEYXRlOiAyMDIzLTA4LTI4VDEzOjM3WlxuICovXG4oIGZ1bmN0aW9uKCBnbG9iYWwsIGZhY3RvcnkgKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0aWYgKCB0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdC8vIEZvciBDb21tb25KUyBhbmQgQ29tbW9uSlMtbGlrZSBlbnZpcm9ubWVudHMgd2hlcmUgYSBwcm9wZXIgYHdpbmRvd2Bcblx0XHQvLyBpcyBwcmVzZW50LCBleGVjdXRlIHRoZSBmYWN0b3J5IGFuZCBnZXQgalF1ZXJ5LlxuXHRcdC8vIEZvciBlbnZpcm9ubWVudHMgdGhhdCBkbyBub3QgaGF2ZSBhIGB3aW5kb3dgIHdpdGggYSBgZG9jdW1lbnRgXG5cdFx0Ly8gKHN1Y2ggYXMgTm9kZS5qcyksIGV4cG9zZSBhIGZhY3RvcnkgYXMgbW9kdWxlLmV4cG9ydHMuXG5cdFx0Ly8gVGhpcyBhY2NlbnR1YXRlcyB0aGUgbmVlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgcmVhbCBgd2luZG93YC5cblx0XHQvLyBlLmcuIHZhciBqUXVlcnkgPSByZXF1aXJlKFwianF1ZXJ5XCIpKHdpbmRvdyk7XG5cdFx0Ly8gU2VlIHRpY2tldCB0cmFjLTE0NTQ5IGZvciBtb3JlIGluZm8uXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBnbG9iYWwuZG9jdW1lbnQgP1xuXHRcdFx0ZmFjdG9yeSggZ2xvYmFsLCB0cnVlICkgOlxuXHRcdFx0ZnVuY3Rpb24oIHcgKSB7XG5cdFx0XHRcdGlmICggIXcuZG9jdW1lbnQgKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCBcImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnRcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWN0b3J5KCB3ICk7XG5cdFx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGZhY3RvcnkoIGdsb2JhbCApO1xuXHR9XG5cbi8vIFBhc3MgdGhpcyBpZiB3aW5kb3cgaXMgbm90IGRlZmluZWQgeWV0XG59ICkoIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB0aGlzLCBmdW5jdGlvbiggd2luZG93LCBub0dsb2JhbCApIHtcblxuLy8gRWRnZSA8PSAxMiAtIDEzKywgRmlyZWZveCA8PTE4IC0gNDUrLCBJRSAxMCAtIDExLCBTYWZhcmkgNS4xIC0gOSssIGlPUyA2IC0gOS4xXG4vLyB0aHJvdyBleGNlcHRpb25zIHdoZW4gbm9uLXN0cmljdCBjb2RlIChlLmcuLCBBU1AuTkVUIDQuNSkgYWNjZXNzZXMgc3RyaWN0IG1vZGVcbi8vIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyICh0cmFjLTEzMzM1KS4gQnV0IGFzIG9mIGpRdWVyeSAzLjAgKDIwMTYpLCBzdHJpY3QgbW9kZSBzaG91bGQgYmUgY29tbW9uXG4vLyBlbm91Z2ggdGhhdCBhbGwgc3VjaCBhdHRlbXB0cyBhcmUgZ3VhcmRlZCBpbiBhIHRyeSBibG9jay5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgYXJyID0gW107XG5cbnZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxudmFyIHNsaWNlID0gYXJyLnNsaWNlO1xuXG52YXIgZmxhdCA9IGFyci5mbGF0ID8gZnVuY3Rpb24oIGFycmF5ICkge1xuXHRyZXR1cm4gYXJyLmZsYXQuY2FsbCggYXJyYXkgKTtcbn0gOiBmdW5jdGlvbiggYXJyYXkgKSB7XG5cdHJldHVybiBhcnIuY29uY2F0LmFwcGx5KCBbXSwgYXJyYXkgKTtcbn07XG5cblxudmFyIHB1c2ggPSBhcnIucHVzaDtcblxudmFyIGluZGV4T2YgPSBhcnIuaW5kZXhPZjtcblxudmFyIGNsYXNzMnR5cGUgPSB7fTtcblxudmFyIHRvU3RyaW5nID0gY2xhc3MydHlwZS50b1N0cmluZztcblxudmFyIGhhc093biA9IGNsYXNzMnR5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBmblRvU3RyaW5nID0gaGFzT3duLnRvU3RyaW5nO1xuXG52YXIgT2JqZWN0RnVuY3Rpb25TdHJpbmcgPSBmblRvU3RyaW5nLmNhbGwoIE9iamVjdCApO1xuXG52YXIgc3VwcG9ydCA9IHt9O1xuXG52YXIgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uIGlzRnVuY3Rpb24oIG9iaiApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTU3LCBGaXJlZm94IDw9NTJcblx0XHQvLyBJbiBzb21lIGJyb3dzZXJzLCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgPG9iamVjdD4gZWxlbWVudHNcblx0XHQvLyAoaS5lLiwgYHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcIm9iamVjdFwiICkgPT09IFwiZnVuY3Rpb25cImApLlxuXHRcdC8vIFdlIGRvbid0IHdhbnQgdG8gY2xhc3NpZnkgKmFueSogRE9NIG5vZGUgYXMgYSBmdW5jdGlvbi5cblx0XHQvLyBTdXBwb3J0OiBRdFdlYiA8PTMuOC41LCBXZWJLaXQgPD01MzQuMzQsIHdraHRtbHRvcGRmIHRvb2wgPD0wLjEyLjVcblx0XHQvLyBQbHVzIGZvciBvbGQgV2ViS2l0LCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgY29sbGVjdGlvbnNcblx0XHQvLyAoZS5nLiwgYHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImRpdlwiKSA9PT0gXCJmdW5jdGlvblwiYCkuIChnaC00NzU2KVxuXHRcdHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIG9iai5ub2RlVHlwZSAhPT0gXCJudW1iZXJcIiAmJlxuXHRcdFx0dHlwZW9mIG9iai5pdGVtICE9PSBcImZ1bmN0aW9uXCI7XG5cdH07XG5cblxudmFyIGlzV2luZG93ID0gZnVuY3Rpb24gaXNXaW5kb3coIG9iaiApIHtcblx0XHRyZXR1cm4gb2JqICE9IG51bGwgJiYgb2JqID09PSBvYmoud2luZG93O1xuXHR9O1xuXG5cbnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDtcblxuXG5cblx0dmFyIHByZXNlcnZlZFNjcmlwdEF0dHJpYnV0ZXMgPSB7XG5cdFx0dHlwZTogdHJ1ZSxcblx0XHRzcmM6IHRydWUsXG5cdFx0bm9uY2U6IHRydWUsXG5cdFx0bm9Nb2R1bGU6IHRydWVcblx0fTtcblxuXHRmdW5jdGlvbiBET01FdmFsKCBjb2RlLCBub2RlLCBkb2MgKSB7XG5cdFx0ZG9jID0gZG9jIHx8IGRvY3VtZW50O1xuXG5cdFx0dmFyIGksIHZhbCxcblx0XHRcdHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCBcInNjcmlwdFwiICk7XG5cblx0XHRzY3JpcHQudGV4dCA9IGNvZGU7XG5cdFx0aWYgKCBub2RlICkge1xuXHRcdFx0Zm9yICggaSBpbiBwcmVzZXJ2ZWRTY3JpcHRBdHRyaWJ1dGVzICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNjQrLCBFZGdlIDE4K1xuXHRcdFx0XHQvLyBTb21lIGJyb3dzZXJzIGRvbid0IHN1cHBvcnQgdGhlIFwibm9uY2VcIiBwcm9wZXJ0eSBvbiBzY3JpcHRzLlxuXHRcdFx0XHQvLyBPbiB0aGUgb3RoZXIgaGFuZCwganVzdCB1c2luZyBgZ2V0QXR0cmlidXRlYCBpcyBub3QgZW5vdWdoIGFzXG5cdFx0XHRcdC8vIHRoZSBgbm9uY2VgIGF0dHJpYnV0ZSBpcyByZXNldCB0byBhbiBlbXB0eSBzdHJpbmcgd2hlbmV2ZXIgaXRcblx0XHRcdFx0Ly8gYmVjb21lcyBicm93c2luZy1jb250ZXh0IGNvbm5lY3RlZC5cblx0XHRcdFx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvMjM2OVxuXHRcdFx0XHQvLyBTZWUgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jbm9uY2UtYXR0cmlidXRlc1xuXHRcdFx0XHQvLyBUaGUgYG5vZGUuZ2V0QXR0cmlidXRlYCBjaGVjayB3YXMgYWRkZWQgZm9yIHRoZSBzYWtlIG9mXG5cdFx0XHRcdC8vIGBqUXVlcnkuZ2xvYmFsRXZhbGAgc28gdGhhdCBpdCBjYW4gZmFrZSBhIG5vbmNlLWNvbnRhaW5pbmcgbm9kZVxuXHRcdFx0XHQvLyB2aWEgYW4gb2JqZWN0LlxuXHRcdFx0XHR2YWwgPSBub2RlWyBpIF0gfHwgbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoIGkgKTtcblx0XHRcdFx0aWYgKCB2YWwgKSB7XG5cdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZSggaSwgdmFsICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZG9jLmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdCApLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHNjcmlwdCApO1xuXHR9XG5cblxuZnVuY3Rpb24gdG9UeXBlKCBvYmogKSB7XG5cdGlmICggb2JqID09IG51bGwgKSB7XG5cdFx0cmV0dXJuIG9iaiArIFwiXCI7XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9Mi4zIG9ubHkgKGZ1bmN0aW9uaXNoIFJlZ0V4cClcblx0cmV0dXJuIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiID9cblx0XHRjbGFzczJ0eXBlWyB0b1N0cmluZy5jYWxsKCBvYmogKSBdIHx8IFwib2JqZWN0XCIgOlxuXHRcdHR5cGVvZiBvYmo7XG59XG4vKiBnbG9iYWwgU3ltYm9sICovXG4vLyBEZWZpbmluZyB0aGlzIGdsb2JhbCBpbiAuZXNsaW50cmMuanNvbiB3b3VsZCBjcmVhdGUgYSBkYW5nZXIgb2YgdXNpbmcgdGhlIGdsb2JhbFxuLy8gdW5ndWFyZGVkIGluIGFub3RoZXIgcGxhY2UsIGl0IHNlZW1zIHNhZmVyIHRvIGRlZmluZSBnbG9iYWwgb25seSBmb3IgdGhpcyBtb2R1bGVcblxuXG5cbnZhciB2ZXJzaW9uID0gXCIzLjcuMVwiLFxuXG5cdHJodG1sU3VmZml4ID0gL0hUTUwkL2ksXG5cblx0Ly8gRGVmaW5lIGEgbG9jYWwgY29weSBvZiBqUXVlcnlcblx0alF1ZXJ5ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkge1xuXG5cdFx0Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnXG5cdFx0Ly8gTmVlZCBpbml0IGlmIGpRdWVyeSBpcyBjYWxsZWQgKGp1c3QgYWxsb3cgZXJyb3IgdG8gYmUgdGhyb3duIGlmIG5vdCBpbmNsdWRlZClcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApO1xuXHR9O1xuXG5qUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0ge1xuXG5cdC8vIFRoZSBjdXJyZW50IHZlcnNpb24gb2YgalF1ZXJ5IGJlaW5nIHVzZWRcblx0anF1ZXJ5OiB2ZXJzaW9uLFxuXG5cdGNvbnN0cnVjdG9yOiBqUXVlcnksXG5cblx0Ly8gVGhlIGRlZmF1bHQgbGVuZ3RoIG9mIGEgalF1ZXJ5IG9iamVjdCBpcyAwXG5cdGxlbmd0aDogMCxcblxuXHR0b0FycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1Jcblx0Ly8gR2V0IHRoZSB3aG9sZSBtYXRjaGVkIGVsZW1lbnQgc2V0IGFzIGEgY2xlYW4gYXJyYXlcblx0Z2V0OiBmdW5jdGlvbiggbnVtICkge1xuXG5cdFx0Ly8gUmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgaW4gYSBjbGVhbiBhcnJheVxuXHRcdGlmICggbnVtID09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiBqdXN0IHRoZSBvbmUgZWxlbWVudCBmcm9tIHRoZSBzZXRcblx0XHRyZXR1cm4gbnVtIDwgMCA/IHRoaXNbIG51bSArIHRoaXMubGVuZ3RoIF0gOiB0aGlzWyBudW0gXTtcblx0fSxcblxuXHQvLyBUYWtlIGFuIGFycmF5IG9mIGVsZW1lbnRzIGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrXG5cdC8vIChyZXR1cm5pbmcgdGhlIG5ldyBtYXRjaGVkIGVsZW1lbnQgc2V0KVxuXHRwdXNoU3RhY2s6IGZ1bmN0aW9uKCBlbGVtcyApIHtcblxuXHRcdC8vIEJ1aWxkIGEgbmV3IGpRdWVyeSBtYXRjaGVkIGVsZW1lbnQgc2V0XG5cdFx0dmFyIHJldCA9IGpRdWVyeS5tZXJnZSggdGhpcy5jb25zdHJ1Y3RvcigpLCBlbGVtcyApO1xuXG5cdFx0Ly8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSlcblx0XHRyZXQucHJldk9iamVjdCA9IHRoaXM7XG5cblx0XHQvLyBSZXR1cm4gdGhlIG5ld2x5LWZvcm1lZCBlbGVtZW50IHNldFxuXHRcdHJldHVybiByZXQ7XG5cdH0sXG5cblx0Ly8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC5cblx0ZWFjaDogZnVuY3Rpb24oIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZWFjaCggdGhpcywgY2FsbGJhY2sgKTtcblx0fSxcblxuXHRtYXA6IGZ1bmN0aW9uKCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5tYXAoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRzbGljZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBzbGljZS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgKTtcblx0fSxcblxuXHRmaXJzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIDAgKTtcblx0fSxcblxuXHRsYXN0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5lcSggLTEgKTtcblx0fSxcblxuXHRldmVuOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5ncmVwKCB0aGlzLCBmdW5jdGlvbiggX2VsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gKCBpICsgMSApICUgMjtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRvZGQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5LmdyZXAoIHRoaXMsIGZ1bmN0aW9uKCBfZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiBpICUgMjtcblx0XHR9ICkgKTtcblx0fSxcblxuXHRlcTogZnVuY3Rpb24oIGkgKSB7XG5cdFx0dmFyIGxlbiA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0aiA9ICtpICsgKCBpIDwgMCA/IGxlbiA6IDAgKTtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGogPj0gMCAmJiBqIDwgbGVuID8gWyB0aGlzWyBqIF0gXSA6IFtdICk7XG5cdH0sXG5cblx0ZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wcmV2T2JqZWN0IHx8IHRoaXMuY29uc3RydWN0b3IoKTtcblx0fSxcblxuXHQvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG5cdC8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90IGxpa2UgYSBqUXVlcnkgbWV0aG9kLlxuXHRwdXNoOiBwdXNoLFxuXHRzb3J0OiBhcnIuc29ydCxcblx0c3BsaWNlOiBhcnIuc3BsaWNlXG59O1xuXG5qUXVlcnkuZXh0ZW5kID0galF1ZXJ5LmZuLmV4dGVuZCA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgb3B0aW9ucywgbmFtZSwgc3JjLCBjb3B5LCBjb3B5SXNBcnJheSwgY2xvbmUsXG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWyAwIF0gfHwge30sXG5cdFx0aSA9IDEsXG5cdFx0bGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCxcblx0XHRkZWVwID0gZmFsc2U7XG5cblx0Ly8gSGFuZGxlIGEgZGVlcCBjb3B5IHNpdHVhdGlvblxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGRlZXAgPSB0YXJnZXQ7XG5cblx0XHQvLyBTa2lwIHRoZSBib29sZWFuIGFuZCB0aGUgdGFyZ2V0XG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWyBpIF0gfHwge307XG5cdFx0aSsrO1xuXHR9XG5cblx0Ly8gSGFuZGxlIGNhc2Ugd2hlbiB0YXJnZXQgaXMgYSBzdHJpbmcgb3Igc29tZXRoaW5nIChwb3NzaWJsZSBpbiBkZWVwIGNvcHkpXG5cdGlmICggdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIiAmJiAhaXNGdW5jdGlvbiggdGFyZ2V0ICkgKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHQvLyBFeHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWRcblx0aWYgKCBpID09PSBsZW5ndGggKSB7XG5cdFx0dGFyZ2V0ID0gdGhpcztcblx0XHRpLS07XG5cdH1cblxuXHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblxuXHRcdC8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXNcblx0XHRpZiAoICggb3B0aW9ucyA9IGFyZ3VtZW50c1sgaSBdICkgIT0gbnVsbCApIHtcblxuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdFx0XHRjb3B5ID0gb3B0aW9uc1sgbmFtZSBdO1xuXG5cdFx0XHRcdC8vIFByZXZlbnQgT2JqZWN0LnByb3RvdHlwZSBwb2xsdXRpb25cblx0XHRcdFx0Ly8gUHJldmVudCBuZXZlci1lbmRpbmcgbG9vcFxuXHRcdFx0XHRpZiAoIG5hbWUgPT09IFwiX19wcm90b19fXCIgfHwgdGFyZ2V0ID09PSBjb3B5ICkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIHBsYWluIG9iamVjdHMgb3IgYXJyYXlzXG5cdFx0XHRcdGlmICggZGVlcCAmJiBjb3B5ICYmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvcHkgKSB8fFxuXHRcdFx0XHRcdCggY29weUlzQXJyYXkgPSBBcnJheS5pc0FycmF5KCBjb3B5ICkgKSApICkge1xuXHRcdFx0XHRcdHNyYyA9IHRhcmdldFsgbmFtZSBdO1xuXG5cdFx0XHRcdFx0Ly8gRW5zdXJlIHByb3BlciB0eXBlIGZvciB0aGUgc291cmNlIHZhbHVlXG5cdFx0XHRcdFx0aWYgKCBjb3B5SXNBcnJheSAmJiAhQXJyYXkuaXNBcnJheSggc3JjICkgKSB7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IFtdO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoICFjb3B5SXNBcnJheSAmJiAhalF1ZXJ5LmlzUGxhaW5PYmplY3QoIHNyYyApICkge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSB7fTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmM7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cblx0XHRcdFx0XHQvLyBOZXZlciBtb3ZlIG9yaWdpbmFsIG9iamVjdHMsIGNsb25lIHRoZW1cblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGRlZXAsIGNsb25lLCBjb3B5ICk7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgYnJpbmcgaW4gdW5kZWZpbmVkIHZhbHVlc1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0dGFyZ2V0WyBuYW1lIF0gPSBjb3B5O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3Rcblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBVbmlxdWUgZm9yIGVhY2ggY29weSBvZiBqUXVlcnkgb24gdGhlIHBhZ2Vcblx0ZXhwYW5kbzogXCJqUXVlcnlcIiArICggdmVyc2lvbiArIE1hdGgucmFuZG9tKCkgKS5yZXBsYWNlKCAvXFxEL2csIFwiXCIgKSxcblxuXHQvLyBBc3N1bWUgalF1ZXJ5IGlzIHJlYWR5IHdpdGhvdXQgdGhlIHJlYWR5IG1vZHVsZVxuXHRpc1JlYWR5OiB0cnVlLFxuXG5cdGVycm9yOiBmdW5jdGlvbiggbXNnICkge1xuXHRcdHRocm93IG5ldyBFcnJvciggbXNnICk7XG5cdH0sXG5cblx0bm9vcDogZnVuY3Rpb24oKSB7fSxcblxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBwcm90bywgQ3RvcjtcblxuXHRcdC8vIERldGVjdCBvYnZpb3VzIG5lZ2F0aXZlc1xuXHRcdC8vIFVzZSB0b1N0cmluZyBpbnN0ZWFkIG9mIGpRdWVyeS50eXBlIHRvIGNhdGNoIGhvc3Qgb2JqZWN0c1xuXHRcdGlmICggIW9iaiB8fCB0b1N0cmluZy5jYWxsKCBvYmogKSAhPT0gXCJbb2JqZWN0IE9iamVjdF1cIiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRwcm90byA9IGdldFByb3RvKCBvYmogKTtcblxuXHRcdC8vIE9iamVjdHMgd2l0aCBubyBwcm90b3R5cGUgKGUuZy4sIGBPYmplY3QuY3JlYXRlKCBudWxsIClgKSBhcmUgcGxhaW5cblx0XHRpZiAoICFwcm90byApIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdC8vIE9iamVjdHMgd2l0aCBwcm90b3R5cGUgYXJlIHBsYWluIGlmZiB0aGV5IHdlcmUgY29uc3RydWN0ZWQgYnkgYSBnbG9iYWwgT2JqZWN0IGZ1bmN0aW9uXG5cdFx0Q3RvciA9IGhhc093bi5jYWxsKCBwcm90bywgXCJjb25zdHJ1Y3RvclwiICkgJiYgcHJvdG8uY29uc3RydWN0b3I7XG5cdFx0cmV0dXJuIHR5cGVvZiBDdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgZm5Ub1N0cmluZy5jYWxsKCBDdG9yICkgPT09IE9iamVjdEZ1bmN0aW9uU3RyaW5nO1xuXHR9LFxuXG5cdGlzRW1wdHlPYmplY3Q6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0dmFyIG5hbWU7XG5cblx0XHRmb3IgKCBuYW1lIGluIG9iaiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cblx0Ly8gRXZhbHVhdGVzIGEgc2NyaXB0IGluIGEgcHJvdmlkZWQgY29udGV4dDsgZmFsbHMgYmFjayB0byB0aGUgZ2xvYmFsIG9uZVxuXHQvLyBpZiBub3Qgc3BlY2lmaWVkLlxuXHRnbG9iYWxFdmFsOiBmdW5jdGlvbiggY29kZSwgb3B0aW9ucywgZG9jICkge1xuXHRcdERPTUV2YWwoIGNvZGUsIHsgbm9uY2U6IG9wdGlvbnMgJiYgb3B0aW9ucy5ub25jZSB9LCBkb2MgKTtcblx0fSxcblxuXHRlYWNoOiBmdW5jdGlvbiggb2JqLCBjYWxsYmFjayApIHtcblx0XHR2YXIgbGVuZ3RoLCBpID0gMDtcblxuXHRcdGlmICggaXNBcnJheUxpa2UoIG9iaiApICkge1xuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgaSBdLCBpLCBvYmpbIGkgXSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKCBpIGluIG9iaiApIHtcblx0XHRcdFx0aWYgKCBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb2JqO1xuXHR9LFxuXG5cblx0Ly8gUmV0cmlldmUgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzXG5cdHRleHQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBub2RlLFxuXHRcdFx0cmV0ID0gXCJcIixcblx0XHRcdGkgPSAwLFxuXHRcdFx0bm9kZVR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0aWYgKCAhbm9kZVR5cGUgKSB7XG5cblx0XHRcdC8vIElmIG5vIG5vZGVUeXBlLCB0aGlzIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFycmF5XG5cdFx0XHR3aGlsZSAoICggbm9kZSA9IGVsZW1bIGkrKyBdICkgKSB7XG5cblx0XHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcblx0XHRcdFx0cmV0ICs9IGpRdWVyeS50ZXh0KCBub2RlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICggbm9kZVR5cGUgPT09IDEgfHwgbm9kZVR5cGUgPT09IDExICkge1xuXHRcdFx0cmV0dXJuIGVsZW0udGV4dENvbnRlbnQ7XG5cdFx0fVxuXHRcdGlmICggbm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kb2N1bWVudEVsZW1lbnQudGV4dENvbnRlbnQ7XG5cdFx0fVxuXHRcdGlmICggbm9kZVR5cGUgPT09IDMgfHwgbm9kZVR5cGUgPT09IDQgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5ub2RlVmFsdWU7XG5cdFx0fVxuXG5cdFx0Ly8gRG8gbm90IGluY2x1ZGUgY29tbWVudCBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9uIG5vZGVzXG5cblx0XHRyZXR1cm4gcmV0O1xuXHR9LFxuXG5cdC8vIHJlc3VsdHMgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcblx0bWFrZUFycmF5OiBmdW5jdGlvbiggYXJyLCByZXN1bHRzICkge1xuXHRcdHZhciByZXQgPSByZXN1bHRzIHx8IFtdO1xuXG5cdFx0aWYgKCBhcnIgIT0gbnVsbCApIHtcblx0XHRcdGlmICggaXNBcnJheUxpa2UoIE9iamVjdCggYXJyICkgKSApIHtcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCByZXQsXG5cdFx0XHRcdFx0dHlwZW9mIGFyciA9PT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0XHRbIGFyciBdIDogYXJyXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmNhbGwoIHJldCwgYXJyICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHRpbkFycmF5OiBmdW5jdGlvbiggZWxlbSwgYXJyLCBpICkge1xuXHRcdHJldHVybiBhcnIgPT0gbnVsbCA/IC0xIDogaW5kZXhPZi5jYWxsKCBhcnIsIGVsZW0sIGkgKTtcblx0fSxcblxuXHRpc1hNTERvYzogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIG5hbWVzcGFjZSA9IGVsZW0gJiYgZWxlbS5uYW1lc3BhY2VVUkksXG5cdFx0XHRkb2NFbGVtID0gZWxlbSAmJiAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkuZG9jdW1lbnRFbGVtZW50O1xuXG5cdFx0Ly8gQXNzdW1lIEhUTUwgd2hlbiBkb2N1bWVudEVsZW1lbnQgZG9lc24ndCB5ZXQgZXhpc3QsIHN1Y2ggYXMgaW5zaWRlXG5cdFx0Ly8gZG9jdW1lbnQgZnJhZ21lbnRzLlxuXHRcdHJldHVybiAhcmh0bWxTdWZmaXgudGVzdCggbmFtZXNwYWNlIHx8IGRvY0VsZW0gJiYgZG9jRWxlbS5ub2RlTmFtZSB8fCBcIkhUTUxcIiApO1xuXHR9LFxuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seSwgUGhhbnRvbUpTIDEgb25seVxuXHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdG1lcmdlOiBmdW5jdGlvbiggZmlyc3QsIHNlY29uZCApIHtcblx0XHR2YXIgbGVuID0gK3NlY29uZC5sZW5ndGgsXG5cdFx0XHRqID0gMCxcblx0XHRcdGkgPSBmaXJzdC5sZW5ndGg7XG5cblx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdGZpcnN0WyBpKysgXSA9IHNlY29uZFsgaiBdO1xuXHRcdH1cblxuXHRcdGZpcnN0Lmxlbmd0aCA9IGk7XG5cblx0XHRyZXR1cm4gZmlyc3Q7XG5cdH0sXG5cblx0Z3JlcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgaW52ZXJ0ICkge1xuXHRcdHZhciBjYWxsYmFja0ludmVyc2UsXG5cdFx0XHRtYXRjaGVzID0gW10sXG5cdFx0XHRpID0gMCxcblx0XHRcdGxlbmd0aCA9IGVsZW1zLmxlbmd0aCxcblx0XHRcdGNhbGxiYWNrRXhwZWN0ID0gIWludmVydDtcblxuXHRcdC8vIEdvIHRocm91Z2ggdGhlIGFycmF5LCBvbmx5IHNhdmluZyB0aGUgaXRlbXNcblx0XHQvLyB0aGF0IHBhc3MgdGhlIHZhbGlkYXRvciBmdW5jdGlvblxuXHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0Y2FsbGJhY2tJbnZlcnNlID0gIWNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpICk7XG5cdFx0XHRpZiAoIGNhbGxiYWNrSW52ZXJzZSAhPT0gY2FsbGJhY2tFeHBlY3QgKSB7XG5cdFx0XHRcdG1hdGNoZXMucHVzaCggZWxlbXNbIGkgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBtYXRjaGVzO1xuXHR9LFxuXG5cdC8vIGFyZyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seVxuXHRtYXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2ssIGFyZyApIHtcblx0XHR2YXIgbGVuZ3RoLCB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0cmV0ID0gW107XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgdHJhbnNsYXRpbmcgZWFjaCBvZiB0aGUgaXRlbXMgdG8gdGhlaXIgbmV3IHZhbHVlc1xuXHRcdGlmICggaXNBcnJheUxpa2UoIGVsZW1zICkgKSB7XG5cdFx0XHRsZW5ndGggPSBlbGVtcy5sZW5ndGg7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjayggZWxlbXNbIGkgXSwgaSwgYXJnICk7XG5cblx0XHRcdFx0aWYgKCB2YWx1ZSAhPSBudWxsICkge1xuXHRcdFx0XHRcdHJldC5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBHbyB0aHJvdWdoIGV2ZXJ5IGtleSBvbiB0aGUgb2JqZWN0LFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKCBpIGluIGVsZW1zICkge1xuXHRcdFx0XHR2YWx1ZSA9IGNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpLCBhcmcgKTtcblxuXHRcdFx0XHRpZiAoIHZhbHVlICE9IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0LnB1c2goIHZhbHVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGbGF0dGVuIGFueSBuZXN0ZWQgYXJyYXlzXG5cdFx0cmV0dXJuIGZsYXQoIHJldCApO1xuXHR9LFxuXG5cdC8vIEEgZ2xvYmFsIEdVSUQgY291bnRlciBmb3Igb2JqZWN0c1xuXHRndWlkOiAxLFxuXG5cdC8vIGpRdWVyeS5zdXBwb3J0IGlzIG5vdCB1c2VkIGluIENvcmUgYnV0IG90aGVyIHByb2plY3RzIGF0dGFjaCB0aGVpclxuXHQvLyBwcm9wZXJ0aWVzIHRvIGl0IHNvIGl0IG5lZWRzIHRvIGV4aXN0LlxuXHRzdXBwb3J0OiBzdXBwb3J0XG59ICk7XG5cbmlmICggdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICkge1xuXHRqUXVlcnkuZm5bIFN5bWJvbC5pdGVyYXRvciBdID0gYXJyWyBTeW1ib2wuaXRlcmF0b3IgXTtcbn1cblxuLy8gUG9wdWxhdGUgdGhlIGNsYXNzMnR5cGUgbWFwXG5qUXVlcnkuZWFjaCggXCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbFwiLnNwbGl0KCBcIiBcIiApLFxuXHRmdW5jdGlvbiggX2ksIG5hbWUgKSB7XG5cdFx0Y2xhc3MydHlwZVsgXCJbb2JqZWN0IFwiICsgbmFtZSArIFwiXVwiIF0gPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cdH0gKTtcblxuZnVuY3Rpb24gaXNBcnJheUxpa2UoIG9iaiApIHtcblxuXHQvLyBTdXBwb3J0OiByZWFsIGlPUyA4LjIgb25seSAobm90IHJlcHJvZHVjaWJsZSBpbiBzaW11bGF0b3IpXG5cdC8vIGBpbmAgY2hlY2sgdXNlZCB0byBwcmV2ZW50IEpJVCBlcnJvciAoZ2gtMjE0NSlcblx0Ly8gaGFzT3duIGlzbid0IHVzZWQgaGVyZSBkdWUgdG8gZmFsc2UgbmVnYXRpdmVzXG5cdC8vIHJlZ2FyZGluZyBOb2RlbGlzdCBsZW5ndGggaW4gSUVcblx0dmFyIGxlbmd0aCA9ICEhb2JqICYmIFwibGVuZ3RoXCIgaW4gb2JqICYmIG9iai5sZW5ndGgsXG5cdFx0dHlwZSA9IHRvVHlwZSggb2JqICk7XG5cblx0aWYgKCBpc0Z1bmN0aW9uKCBvYmogKSB8fCBpc1dpbmRvdyggb2JqICkgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cmV0dXJuIHR5cGUgPT09IFwiYXJyYXlcIiB8fCBsZW5ndGggPT09IDAgfHxcblx0XHR0eXBlb2YgbGVuZ3RoID09PSBcIm51bWJlclwiICYmIGxlbmd0aCA+IDAgJiYgKCBsZW5ndGggLSAxICkgaW4gb2JqO1xufVxuXG5cbmZ1bmN0aW9uIG5vZGVOYW1lKCBlbGVtLCBuYW1lICkge1xuXG5cdHJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG59XG52YXIgcG9wID0gYXJyLnBvcDtcblxuXG52YXIgc29ydCA9IGFyci5zb3J0O1xuXG5cbnZhciBzcGxpY2UgPSBhcnIuc3BsaWNlO1xuXG5cbnZhciB3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiO1xuXG5cbnZhciBydHJpbUNTUyA9IG5ldyBSZWdFeHAoXG5cdFwiXlwiICsgd2hpdGVzcGFjZSArIFwiK3woKD86XnxbXlxcXFxcXFxcXSkoPzpcXFxcXFxcXC4pKilcIiArIHdoaXRlc3BhY2UgKyBcIiskXCIsXG5cdFwiZ1wiXG4pO1xuXG5cblxuXG4vLyBOb3RlOiBhbiBlbGVtZW50IGRvZXMgbm90IGNvbnRhaW4gaXRzZWxmXG5qUXVlcnkuY29udGFpbnMgPSBmdW5jdGlvbiggYSwgYiApIHtcblx0dmFyIGJ1cCA9IGIgJiYgYi5wYXJlbnROb2RlO1xuXG5cdHJldHVybiBhID09PSBidXAgfHwgISEoIGJ1cCAmJiBidXAubm9kZVR5cGUgPT09IDEgJiYgKFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExK1xuXHRcdC8vIElFIGRvZXNuJ3QgaGF2ZSBgY29udGFpbnNgIG9uIFNWRy5cblx0XHRhLmNvbnRhaW5zID9cblx0XHRcdGEuY29udGFpbnMoIGJ1cCApIDpcblx0XHRcdGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gJiYgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYnVwICkgJiAxNlxuXHQpICk7XG59O1xuXG5cblxuXG4vLyBDU1Mgc3RyaW5nL2lkZW50aWZpZXIgc2VyaWFsaXphdGlvblxuLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjb21tb24tc2VyaWFsaXppbmctaWRpb21zXG52YXIgcmNzc2VzY2FwZSA9IC8oW1xcMC1cXHgxZlxceDdmXXxeLT9cXGQpfF4tJHxbXlxceDgwLVxcdUZGRkZcXHctXS9nO1xuXG5mdW5jdGlvbiBmY3NzZXNjYXBlKCBjaCwgYXNDb2RlUG9pbnQgKSB7XG5cdGlmICggYXNDb2RlUG9pbnQgKSB7XG5cblx0XHQvLyBVKzAwMDAgTlVMTCBiZWNvbWVzIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVJcblx0XHRpZiAoIGNoID09PSBcIlxcMFwiICkge1xuXHRcdFx0cmV0dXJuIFwiXFx1RkZGRFwiO1xuXHRcdH1cblxuXHRcdC8vIENvbnRyb2wgY2hhcmFjdGVycyBhbmQgKGRlcGVuZGVudCB1cG9uIHBvc2l0aW9uKSBudW1iZXJzIGdldCBlc2NhcGVkIGFzIGNvZGUgcG9pbnRzXG5cdFx0cmV0dXJuIGNoLnNsaWNlKCAwLCAtMSApICsgXCJcXFxcXCIgKyBjaC5jaGFyQ29kZUF0KCBjaC5sZW5ndGggLSAxICkudG9TdHJpbmcoIDE2ICkgKyBcIiBcIjtcblx0fVxuXG5cdC8vIE90aGVyIHBvdGVudGlhbGx5LXNwZWNpYWwgQVNDSUkgY2hhcmFjdGVycyBnZXQgYmFja3NsYXNoLWVzY2FwZWRcblx0cmV0dXJuIFwiXFxcXFwiICsgY2g7XG59XG5cbmpRdWVyeS5lc2NhcGVTZWxlY3RvciA9IGZ1bmN0aW9uKCBzZWwgKSB7XG5cdHJldHVybiAoIHNlbCArIFwiXCIgKS5yZXBsYWNlKCByY3NzZXNjYXBlLCBmY3NzZXNjYXBlICk7XG59O1xuXG5cblxuXG52YXIgcHJlZmVycmVkRG9jID0gZG9jdW1lbnQsXG5cdHB1c2hOYXRpdmUgPSBwdXNoO1xuXG4oIGZ1bmN0aW9uKCkge1xuXG52YXIgaSxcblx0RXhwcixcblx0b3V0ZXJtb3N0Q29udGV4dCxcblx0c29ydElucHV0LFxuXHRoYXNEdXBsaWNhdGUsXG5cdHB1c2ggPSBwdXNoTmF0aXZlLFxuXG5cdC8vIExvY2FsIGRvY3VtZW50IHZhcnNcblx0ZG9jdW1lbnQsXG5cdGRvY3VtZW50RWxlbWVudCxcblx0ZG9jdW1lbnRJc0hUTUwsXG5cdHJidWdneVFTQSxcblx0bWF0Y2hlcyxcblxuXHQvLyBJbnN0YW5jZS1zcGVjaWZpYyBkYXRhXG5cdGV4cGFuZG8gPSBqUXVlcnkuZXhwYW5kbyxcblx0ZGlycnVucyA9IDAsXG5cdGRvbmUgPSAwLFxuXHRjbGFzc0NhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0dG9rZW5DYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdGNvbXBpbGVyQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRub25uYXRpdmVTZWxlY3RvckNhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0c29ydE9yZGVyID0gZnVuY3Rpb24oIGEsIGIgKSB7XG5cdFx0aWYgKCBhID09PSBiICkge1xuXHRcdFx0aGFzRHVwbGljYXRlID0gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIDA7XG5cdH0sXG5cblx0Ym9vbGVhbnMgPSBcImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxcIiArXG5cdFx0XCJsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkXCIsXG5cblx0Ly8gUmVndWxhciBleHByZXNzaW9uc1xuXG5cdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTMvI2lkZW50LXRva2VuLWRpYWdyYW1cblx0aWRlbnRpZmllciA9IFwiKD86XFxcXFxcXFxbXFxcXGRhLWZBLUZdezEsNn1cIiArIHdoaXRlc3BhY2UgK1xuXHRcdFwiP3xcXFxcXFxcXFteXFxcXHJcXFxcblxcXFxmXXxbXFxcXHctXXxbXlxcMC1cXFxceDdmXSkrXCIsXG5cblx0Ly8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cHM6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jYXR0cmlidXRlLXNlbGVjdG9yc1xuXHRhdHRyaWJ1dGVzID0gXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKihcIiArIGlkZW50aWZpZXIgKyBcIikoPzpcIiArIHdoaXRlc3BhY2UgK1xuXG5cdFx0Ly8gT3BlcmF0b3IgKGNhcHR1cmUgMilcblx0XHRcIiooWypeJHwhfl0/PSlcIiArIHdoaXRlc3BhY2UgK1xuXG5cdFx0Ly8gXCJBdHRyaWJ1dGUgdmFsdWVzIG11c3QgYmUgQ1NTIGlkZW50aWZpZXJzIFtjYXB0dXJlIDVdIG9yIHN0cmluZ3MgW2NhcHR1cmUgMyBvciBjYXB0dXJlIDRdXCJcblx0XHRcIiooPzonKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcJ10pKiknfFxcXCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFxcXFwiXSkqKVxcXCJ8KFwiICsgaWRlbnRpZmllciArIFwiKSl8KVwiICtcblx0XHR3aGl0ZXNwYWNlICsgXCIqXFxcXF1cIixcblxuXHRwc2V1ZG9zID0gXCI6KFwiICsgaWRlbnRpZmllciArIFwiKSg/OlxcXFwoKFwiICtcblxuXHRcdC8vIFRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHNlbGVjdG9ycyBuZWVkaW5nIHRva2VuaXplIGluIHRoZSBwcmVGaWx0ZXIsIHByZWZlciBhcmd1bWVudHM6XG5cdFx0Ly8gMS4gcXVvdGVkIChjYXB0dXJlIDM7IGNhcHR1cmUgNCBvciBjYXB0dXJlIDUpXG5cdFx0XCIoJygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwiKXxcIiArXG5cblx0XHQvLyAyLiBzaW1wbGUgKGNhcHR1cmUgNilcblx0XHRcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXCgpW1xcXFxdXXxcIiArIGF0dHJpYnV0ZXMgKyBcIikqKXxcIiArXG5cblx0XHQvLyAzLiBhbnl0aGluZyBlbHNlIChjYXB0dXJlIDIpXG5cdFx0XCIuKlwiICtcblx0XHRcIilcXFxcKXwpXCIsXG5cblx0Ly8gTGVhZGluZyBhbmQgbm9uLWVzY2FwZWQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgY2FwdHVyaW5nIHNvbWUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIGxhdHRlclxuXHRyd2hpdGVzcGFjZSA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcIitcIiwgXCJnXCIgKSxcblxuXHRyY29tbWEgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiosXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblx0cmxlYWRpbmdDb21iaW5hdG9yID0gbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFs+K35dfFwiICsgd2hpdGVzcGFjZSArIFwiKVwiICtcblx0XHR3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblx0cmRlc2NlbmQgPSBuZXcgUmVnRXhwKCB3aGl0ZXNwYWNlICsgXCJ8PlwiICksXG5cblx0cnBzZXVkbyA9IG5ldyBSZWdFeHAoIHBzZXVkb3MgKSxcblx0cmlkZW50aWZpZXIgPSBuZXcgUmVnRXhwKCBcIl5cIiArIGlkZW50aWZpZXIgKyBcIiRcIiApLFxuXG5cdG1hdGNoRXhwciA9IHtcblx0XHRJRDogbmV3IFJlZ0V4cCggXCJeIyhcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdENMQVNTOiBuZXcgUmVnRXhwKCBcIl5cXFxcLihcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdFRBRzogbmV3IFJlZ0V4cCggXCJeKFwiICsgaWRlbnRpZmllciArIFwifFsqXSlcIiApLFxuXHRcdEFUVFI6IG5ldyBSZWdFeHAoIFwiXlwiICsgYXR0cmlidXRlcyApLFxuXHRcdFBTRVVETzogbmV3IFJlZ0V4cCggXCJeXCIgKyBwc2V1ZG9zICksXG5cdFx0Q0hJTEQ6IG5ldyBSZWdFeHAoXG5cdFx0XHRcIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcXFwoXCIgK1xuXHRcdFx0XHR3aGl0ZXNwYWNlICsgXCIqKGV2ZW58b2RkfCgoWystXXwpKFxcXFxkKilufClcIiArIHdoaXRlc3BhY2UgKyBcIiooPzooWystXXwpXCIgK1xuXHRcdFx0XHR3aGl0ZXNwYWNlICsgXCIqKFxcXFxkKyl8KSlcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpXCIsIFwiaVwiICksXG5cdFx0Ym9vbDogbmV3IFJlZ0V4cCggXCJeKD86XCIgKyBib29sZWFucyArIFwiKSRcIiwgXCJpXCIgKSxcblxuXHRcdC8vIEZvciB1c2UgaW4gbGlicmFyaWVzIGltcGxlbWVudGluZyAuaXMoKVxuXHRcdC8vIFdlIHVzZSB0aGlzIGZvciBQT1MgbWF0Y2hpbmcgaW4gYHNlbGVjdGBcblx0XHRuZWVkc0NvbnRleHQ6IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcXFwoXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKigoPzotXFxcXGQpP1xcXFxkKilcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpKD89W14tXXwkKVwiLCBcImlcIiApXG5cdH0sXG5cblx0cmlucHV0cyA9IC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksXG5cdHJoZWFkZXIgPSAvXmhcXGQkL2ksXG5cblx0Ly8gRWFzaWx5LXBhcnNlYWJsZS9yZXRyaWV2YWJsZSBJRCBvciBUQUcgb3IgQ0xBU1Mgc2VsZWN0b3JzXG5cdHJxdWlja0V4cHIgPSAvXig/OiMoW1xcdy1dKyl8KFxcdyspfFxcLihbXFx3LV0rKSkkLyxcblxuXHRyc2libGluZyA9IC9bK35dLyxcblxuXHQvLyBDU1MgZXNjYXBlc1xuXHQvLyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI2VzY2FwZWQtY2hhcmFjdGVyc1xuXHRydW5lc2NhcGUgPSBuZXcgUmVnRXhwKCBcIlxcXFxcXFxcW1xcXFxkYS1mQS1GXXsxLDZ9XCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIj98XFxcXFxcXFwoW15cXFxcclxcXFxuXFxcXGZdKVwiLCBcImdcIiApLFxuXHRmdW5lc2NhcGUgPSBmdW5jdGlvbiggZXNjYXBlLCBub25IZXggKSB7XG5cdFx0dmFyIGhpZ2ggPSBcIjB4XCIgKyBlc2NhcGUuc2xpY2UoIDEgKSAtIDB4MTAwMDA7XG5cblx0XHRpZiAoIG5vbkhleCApIHtcblxuXHRcdFx0Ly8gU3RyaXAgdGhlIGJhY2tzbGFzaCBwcmVmaXggZnJvbSBhIG5vbi1oZXggZXNjYXBlIHNlcXVlbmNlXG5cdFx0XHRyZXR1cm4gbm9uSGV4O1xuXHRcdH1cblxuXHRcdC8vIFJlcGxhY2UgYSBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ugd2l0aCB0aGUgZW5jb2RlZCBVbmljb2RlIGNvZGUgcG9pbnRcblx0XHQvLyBTdXBwb3J0OiBJRSA8PTExK1xuXHRcdC8vIEZvciB2YWx1ZXMgb3V0c2lkZSB0aGUgQmFzaWMgTXVsdGlsaW5ndWFsIFBsYW5lIChCTVApLCBtYW51YWxseSBjb25zdHJ1Y3QgYVxuXHRcdC8vIHN1cnJvZ2F0ZSBwYWlyXG5cdFx0cmV0dXJuIGhpZ2ggPCAwID9cblx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggKyAweDEwMDAwICkgOlxuXHRcdFx0U3RyaW5nLmZyb21DaGFyQ29kZSggaGlnaCA+PiAxMCB8IDB4RDgwMCwgaGlnaCAmIDB4M0ZGIHwgMHhEQzAwICk7XG5cdH0sXG5cblx0Ly8gVXNlZCBmb3IgaWZyYW1lczsgc2VlIGBzZXREb2N1bWVudGAuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSssIEVkZ2UgMTIgLSAxOCtcblx0Ly8gUmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIHdyYXBwZXIgY2F1c2VzIGEgXCJQZXJtaXNzaW9uIERlbmllZFwiXG5cdC8vIGVycm9yIGluIElFL0VkZ2UuXG5cdHVubG9hZEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcblx0XHRzZXREb2N1bWVudCgpO1xuXHR9LFxuXG5cdGluRGlzYWJsZWRGaWVsZHNldCA9IGFkZENvbWJpbmF0b3IoXG5cdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gdHJ1ZSAmJiBub2RlTmFtZSggZWxlbSwgXCJmaWVsZHNldFwiICk7XG5cdFx0fSxcblx0XHR7IGRpcjogXCJwYXJlbnROb2RlXCIsIG5leHQ6IFwibGVnZW5kXCIgfVxuXHQpO1xuXG4vLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuLy8gQWNjZXNzaW5nIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgY2FuIHRocm93IHVuZXhwZWN0ZWRseVxuLy8gaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEzMzkzXG5mdW5jdGlvbiBzYWZlQWN0aXZlRWxlbWVudCgpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0fSBjYXRjaCAoIGVyciApIHsgfVxufVxuXG4vLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKVxudHJ5IHtcblx0cHVzaC5hcHBseShcblx0XHQoIGFyciA9IHNsaWNlLmNhbGwoIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzICkgKSxcblx0XHRwcmVmZXJyZWREb2MuY2hpbGROb2Rlc1xuXHQpO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdGFyclsgcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMubGVuZ3RoIF0ubm9kZVR5cGU7XG59IGNhdGNoICggZSApIHtcblx0cHVzaCA9IHtcblx0XHRhcHBseTogZnVuY3Rpb24oIHRhcmdldCwgZWxzICkge1xuXHRcdFx0cHVzaE5hdGl2ZS5hcHBseSggdGFyZ2V0LCBzbGljZS5jYWxsKCBlbHMgKSApO1xuXHRcdH0sXG5cdFx0Y2FsbDogZnVuY3Rpb24oIHRhcmdldCApIHtcblx0XHRcdHB1c2hOYXRpdmUuYXBwbHkoIHRhcmdldCwgc2xpY2UuY2FsbCggYXJndW1lbnRzLCAxICkgKTtcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIGZpbmQoIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkge1xuXHR2YXIgbSwgaSwgZWxlbSwgbmlkLCBtYXRjaCwgZ3JvdXBzLCBuZXdTZWxlY3Rvcixcblx0XHRuZXdDb250ZXh0ID0gY29udGV4dCAmJiBjb250ZXh0Lm93bmVyRG9jdW1lbnQsXG5cblx0XHQvLyBub2RlVHlwZSBkZWZhdWx0cyB0byA5LCBzaW5jZSBjb250ZXh0IGRlZmF1bHRzIHRvIGRvY3VtZW50XG5cdFx0bm9kZVR5cGUgPSBjb250ZXh0ID8gY29udGV4dC5ub2RlVHlwZSA6IDk7XG5cblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cblx0Ly8gUmV0dXJuIGVhcmx5IGZyb20gY2FsbHMgd2l0aCBpbnZhbGlkIHNlbGVjdG9yIG9yIGNvbnRleHRcblx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgIT09IFwic3RyaW5nXCIgfHwgIXNlbGVjdG9yIHx8XG5cdFx0bm9kZVR5cGUgIT09IDEgJiYgbm9kZVR5cGUgIT09IDkgJiYgbm9kZVR5cGUgIT09IDExICkge1xuXG5cdFx0cmV0dXJuIHJlc3VsdHM7XG5cdH1cblxuXHQvLyBUcnkgdG8gc2hvcnRjdXQgZmluZCBvcGVyYXRpb25zIChhcyBvcHBvc2VkIHRvIGZpbHRlcnMpIGluIEhUTUwgZG9jdW1lbnRzXG5cdGlmICggIXNlZWQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGNvbnRleHQgKTtcblx0XHRjb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDtcblxuXHRcdGlmICggZG9jdW1lbnRJc0hUTUwgKSB7XG5cblx0XHRcdC8vIElmIHRoZSBzZWxlY3RvciBpcyBzdWZmaWNpZW50bHkgc2ltcGxlLCB0cnkgdXNpbmcgYSBcImdldCpCeSpcIiBET00gbWV0aG9kXG5cdFx0XHQvLyAoZXhjZXB0aW5nIERvY3VtZW50RnJhZ21lbnQgY29udGV4dCwgd2hlcmUgdGhlIG1ldGhvZHMgZG9uJ3QgZXhpc3QpXG5cdFx0XHRpZiAoIG5vZGVUeXBlICE9PSAxMSAmJiAoIG1hdGNoID0gcnF1aWNrRXhwci5leGVjKCBzZWxlY3RvciApICkgKSB7XG5cblx0XHRcdFx0Ly8gSUQgc2VsZWN0b3Jcblx0XHRcdFx0aWYgKCAoIG0gPSBtYXRjaFsgMSBdICkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb2N1bWVudCBjb250ZXh0XG5cdFx0XHRcdFx0aWYgKCBub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRcdGlmICggKCBlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggbSApICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgOSBvbmx5XG5cdFx0XHRcdFx0XHRcdC8vIGdldEVsZW1lbnRCeUlkIGNhbiBtYXRjaCBlbGVtZW50cyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdFx0aWYgKCBlbGVtLmlkID09PSBtICkge1xuXHRcdFx0XHRcdFx0XHRcdHB1c2guY2FsbCggcmVzdWx0cywgZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEVsZW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDkgb25seVxuXHRcdFx0XHRcdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgY2FuIG1hdGNoIGVsZW1lbnRzIGJ5IG5hbWUgaW5zdGVhZCBvZiBJRFxuXHRcdFx0XHRcdFx0aWYgKCBuZXdDb250ZXh0ICYmICggZWxlbSA9IG5ld0NvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG0gKSApICYmXG5cdFx0XHRcdFx0XHRcdGZpbmQuY29udGFpbnMoIGNvbnRleHQsIGVsZW0gKSAmJlxuXHRcdFx0XHRcdFx0XHRlbGVtLmlkID09PSBtICkge1xuXG5cdFx0XHRcdFx0XHRcdHB1c2guY2FsbCggcmVzdWx0cywgZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVHlwZSBzZWxlY3RvclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFsgMiBdICkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHNlbGVjdG9yICkgKTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblxuXHRcdFx0XHQvLyBDbGFzcyBzZWxlY3RvclxuXHRcdFx0XHR9IGVsc2UgaWYgKCAoIG0gPSBtYXRjaFsgMyBdICkgJiYgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbSApICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVGFrZSBhZHZhbnRhZ2Ugb2YgcXVlcnlTZWxlY3RvckFsbFxuXHRcdFx0aWYgKCAhbm9ubmF0aXZlU2VsZWN0b3JDYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdICYmXG5cdFx0XHRcdCggIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIHNlbGVjdG9yICkgKSApIHtcblxuXHRcdFx0XHRuZXdTZWxlY3RvciA9IHNlbGVjdG9yO1xuXHRcdFx0XHRuZXdDb250ZXh0ID0gY29udGV4dDtcblxuXHRcdFx0XHQvLyBxU0EgY29uc2lkZXJzIGVsZW1lbnRzIG91dHNpZGUgYSBzY29waW5nIHJvb3Qgd2hlbiBldmFsdWF0aW5nIGNoaWxkIG9yXG5cdFx0XHRcdC8vIGRlc2NlbmRhbnQgY29tYmluYXRvcnMsIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQuXG5cdFx0XHRcdC8vIEluIHN1Y2ggY2FzZXMsIHdlIHdvcmsgYXJvdW5kIHRoZSBiZWhhdmlvciBieSBwcmVmaXhpbmcgZXZlcnkgc2VsZWN0b3IgaW4gdGhlXG5cdFx0XHRcdC8vIGxpc3Qgd2l0aCBhbiBJRCBzZWxlY3RvciByZWZlcmVuY2luZyB0aGUgc2NvcGUgY29udGV4dC5cblx0XHRcdFx0Ly8gVGhlIHRlY2huaXF1ZSBoYXMgdG8gYmUgdXNlZCBhcyB3ZWxsIHdoZW4gYSBsZWFkaW5nIGNvbWJpbmF0b3IgaXMgdXNlZFxuXHRcdFx0XHQvLyBhcyBzdWNoIHNlbGVjdG9ycyBhcmUgbm90IHJlY29nbml6ZWQgYnkgcXVlcnlTZWxlY3RvckFsbC5cblx0XHRcdFx0Ly8gVGhhbmtzIHRvIEFuZHJldyBEdXBvbnQgZm9yIHRoaXMgdGVjaG5pcXVlLlxuXHRcdFx0XHRpZiAoIG5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdFx0KCByZGVzY2VuZC50ZXN0KCBzZWxlY3RvciApIHx8IHJsZWFkaW5nQ29tYmluYXRvci50ZXN0KCBzZWxlY3RvciApICkgKSB7XG5cblx0XHRcdFx0XHQvLyBFeHBhbmQgY29udGV4dCBmb3Igc2libGluZyBzZWxlY3RvcnNcblx0XHRcdFx0XHRuZXdDb250ZXh0ID0gcnNpYmxpbmcudGVzdCggc2VsZWN0b3IgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHxcblx0XHRcdFx0XHRcdGNvbnRleHQ7XG5cblx0XHRcdFx0XHQvLyBXZSBjYW4gdXNlIDpzY29wZSBpbnN0ZWFkIG9mIHRoZSBJRCBoYWNrIGlmIHRoZSBicm93c2VyXG5cdFx0XHRcdFx0Ly8gc3VwcG9ydHMgaXQgJiBpZiB3ZSdyZSBub3QgY2hhbmdpbmcgdGhlIGNvbnRleHQuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlblxuXHRcdFx0XHRcdC8vIHN0cmljdC1jb21wYXJpbmcgdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRcdFx0XHRpZiAoIG5ld0NvbnRleHQgIT0gY29udGV4dCB8fCAhc3VwcG9ydC5zY29wZSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gQ2FwdHVyZSB0aGUgY29udGV4dCBJRCwgc2V0dGluZyBpdCBmaXJzdCBpZiBuZWNlc3Nhcnlcblx0XHRcdFx0XHRcdGlmICggKCBuaWQgPSBjb250ZXh0LmdldEF0dHJpYnV0ZSggXCJpZFwiICkgKSApIHtcblx0XHRcdFx0XHRcdFx0bmlkID0galF1ZXJ5LmVzY2FwZVNlbGVjdG9yKCBuaWQgKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRleHQuc2V0QXR0cmlidXRlKCBcImlkXCIsICggbmlkID0gZXhwYW5kbyApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gUHJlZml4IGV2ZXJ5IHNlbGVjdG9yIGluIHRoZSBsaXN0XG5cdFx0XHRcdFx0Z3JvdXBzID0gdG9rZW5pemUoIHNlbGVjdG9yICk7XG5cdFx0XHRcdFx0aSA9IGdyb3Vwcy5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRncm91cHNbIGkgXSA9ICggbmlkID8gXCIjXCIgKyBuaWQgOiBcIjpzY29wZVwiICkgKyBcIiBcIiArXG5cdFx0XHRcdFx0XHRcdHRvU2VsZWN0b3IoIGdyb3Vwc1sgaSBdICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdG5ld1NlbGVjdG9yID0gZ3JvdXBzLmpvaW4oIFwiLFwiICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsXG5cdFx0XHRcdFx0XHRuZXdDb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIG5ld1NlbGVjdG9yIClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHR9IGNhdGNoICggcXNhRXJyb3IgKSB7XG5cdFx0XHRcdFx0bm9ubmF0aXZlU2VsZWN0b3JDYWNoZSggc2VsZWN0b3IsIHRydWUgKTtcblx0XHRcdFx0fSBmaW5hbGx5IHtcblx0XHRcdFx0XHRpZiAoIG5pZCA9PT0gZXhwYW5kbyApIHtcblx0XHRcdFx0XHRcdGNvbnRleHQucmVtb3ZlQXR0cmlidXRlKCBcImlkXCIgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBBbGwgb3RoZXJzXG5cdHJldHVybiBzZWxlY3QoIHNlbGVjdG9yLnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiQxXCIgKSwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApO1xufVxuXG4vKipcbiAqIENyZWF0ZSBrZXktdmFsdWUgY2FjaGVzIG9mIGxpbWl0ZWQgc2l6ZVxuICogQHJldHVybnMge2Z1bmN0aW9uKHN0cmluZywgb2JqZWN0KX0gUmV0dXJucyB0aGUgT2JqZWN0IGRhdGEgYWZ0ZXIgc3RvcmluZyBpdCBvbiBpdHNlbGYgd2l0aFxuICpcdHByb3BlcnR5IG5hbWUgdGhlIChzcGFjZS1zdWZmaXhlZCkgc3RyaW5nIGFuZCAoaWYgdGhlIGNhY2hlIGlzIGxhcmdlciB0aGFuIEV4cHIuY2FjaGVMZW5ndGgpXG4gKlx0ZGVsZXRpbmcgdGhlIG9sZGVzdCBlbnRyeVxuICovXG5mdW5jdGlvbiBjcmVhdGVDYWNoZSgpIHtcblx0dmFyIGtleXMgPSBbXTtcblxuXHRmdW5jdGlvbiBjYWNoZSgga2V5LCB2YWx1ZSApIHtcblxuXHRcdC8vIFVzZSAoa2V5ICsgXCIgXCIpIHRvIGF2b2lkIGNvbGxpc2lvbiB3aXRoIG5hdGl2ZSBwcm90b3R5cGUgcHJvcGVydGllc1xuXHRcdC8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9zaXp6bGUvaXNzdWVzLzE1Nylcblx0XHRpZiAoIGtleXMucHVzaCgga2V5ICsgXCIgXCIgKSA+IEV4cHIuY2FjaGVMZW5ndGggKSB7XG5cblx0XHRcdC8vIE9ubHkga2VlcCB0aGUgbW9zdCByZWNlbnQgZW50cmllc1xuXHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlzLnNoaWZ0KCkgXTtcblx0XHR9XG5cdFx0cmV0dXJuICggY2FjaGVbIGtleSArIFwiIFwiIF0gPSB2YWx1ZSApO1xuXHR9XG5cdHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBNYXJrIGEgZnVuY3Rpb24gZm9yIHNwZWNpYWwgdXNlIGJ5IGpRdWVyeSBzZWxlY3RvciBtb2R1bGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBtYXJrXG4gKi9cbmZ1bmN0aW9uIG1hcmtGdW5jdGlvbiggZm4gKSB7XG5cdGZuWyBleHBhbmRvIF0gPSB0cnVlO1xuXHRyZXR1cm4gZm47XG59XG5cbi8qKlxuICogU3VwcG9ydCB0ZXN0aW5nIHVzaW5nIGFuIGVsZW1lbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFBhc3NlZCB0aGUgY3JlYXRlZCBlbGVtZW50IGFuZCByZXR1cm5zIGEgYm9vbGVhbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0KCBmbiApIHtcblx0dmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJmaWVsZHNldFwiICk7XG5cblx0dHJ5IHtcblx0XHRyZXR1cm4gISFmbiggZWwgKTtcblx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9IGZpbmFsbHkge1xuXG5cdFx0Ly8gUmVtb3ZlIGZyb20gaXRzIHBhcmVudCBieSBkZWZhdWx0XG5cdFx0aWYgKCBlbC5wYXJlbnROb2RlICkge1xuXHRcdFx0ZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggZWwgKTtcblx0XHR9XG5cblx0XHQvLyByZWxlYXNlIG1lbW9yeSBpbiBJRVxuXHRcdGVsID0gbnVsbDtcblx0fVxufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgaW5wdXQgdHlwZXNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUlucHV0UHNldWRvKCB0eXBlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIG5vZGVOYW1lKCBlbGVtLCBcImlucHV0XCIgKSAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBidXR0b25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICovXG5mdW5jdGlvbiBjcmVhdGVCdXR0b25Qc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gKCBub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgfHwgbm9kZU5hbWUoIGVsZW0sIFwiYnV0dG9uXCIgKSApICYmXG5cdFx0XHRlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciA6ZW5hYmxlZC86ZGlzYWJsZWRcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gZGlzYWJsZWQgdHJ1ZSBmb3IgOmRpc2FibGVkOyBmYWxzZSBmb3IgOmVuYWJsZWRcbiAqL1xuZnVuY3Rpb24gY3JlYXRlRGlzYWJsZWRQc2V1ZG8oIGRpc2FibGVkICkge1xuXG5cdC8vIEtub3duIDpkaXNhYmxlZCBmYWxzZSBwb3NpdGl2ZXM6IGZpZWxkc2V0W2Rpc2FibGVkXSA+IGxlZ2VuZDpudGgtb2YtdHlwZShuKzIpIDpjYW4tZGlzYWJsZVxuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBPbmx5IGNlcnRhaW4gZWxlbWVudHMgY2FuIG1hdGNoIDplbmFibGVkIG9yIDpkaXNhYmxlZFxuXHRcdC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI3NlbGVjdG9yLWVuYWJsZWRcblx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNzZWxlY3Rvci1kaXNhYmxlZFxuXHRcdGlmICggXCJmb3JtXCIgaW4gZWxlbSApIHtcblxuXHRcdFx0Ly8gQ2hlY2sgZm9yIGluaGVyaXRlZCBkaXNhYmxlZG5lc3Mgb24gcmVsZXZhbnQgbm9uLWRpc2FibGVkIGVsZW1lbnRzOlxuXHRcdFx0Ly8gKiBsaXN0ZWQgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzIGluIGEgZGlzYWJsZWQgZmllbGRzZXRcblx0XHRcdC8vICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNjYXRlZ29yeS1saXN0ZWRcblx0XHRcdC8vICAgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNjb25jZXB0LWZlLWRpc2FibGVkXG5cdFx0XHQvLyAqIG9wdGlvbiBlbGVtZW50cyBpbiBhIGRpc2FibGVkIG9wdGdyb3VwXG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY29uY2VwdC1vcHRpb24tZGlzYWJsZWRcblx0XHRcdC8vIEFsbCBzdWNoIGVsZW1lbnRzIGhhdmUgYSBcImZvcm1cIiBwcm9wZXJ0eS5cblx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICYmIGVsZW0uZGlzYWJsZWQgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdC8vIE9wdGlvbiBlbGVtZW50cyBkZWZlciB0byBhIHBhcmVudCBvcHRncm91cCBpZiBwcmVzZW50XG5cdFx0XHRcdGlmICggXCJsYWJlbFwiIGluIGVsZW0gKSB7XG5cdFx0XHRcdFx0aWYgKCBcImxhYmVsXCIgaW4gZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW0ucGFyZW50Tm9kZS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA2IC0gMTErXG5cdFx0XHRcdC8vIFVzZSB0aGUgaXNEaXNhYmxlZCBzaG9ydGN1dCBwcm9wZXJ0eSB0byBjaGVjayBmb3IgZGlzYWJsZWQgZmllbGRzZXQgYW5jZXN0b3JzXG5cdFx0XHRcdHJldHVybiBlbGVtLmlzRGlzYWJsZWQgPT09IGRpc2FibGVkIHx8XG5cblx0XHRcdFx0XHQvLyBXaGVyZSB0aGVyZSBpcyBubyBpc0Rpc2FibGVkLCBjaGVjayBtYW51YWxseVxuXHRcdFx0XHRcdGVsZW0uaXNEaXNhYmxlZCAhPT0gIWRpc2FibGVkICYmXG5cdFx0XHRcdFx0XHRpbkRpc2FibGVkRmllbGRzZXQoIGVsZW0gKSA9PT0gZGlzYWJsZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblxuXHRcdC8vIFRyeSB0byB3aW5ub3cgb3V0IGVsZW1lbnRzIHRoYXQgY2FuJ3QgYmUgZGlzYWJsZWQgYmVmb3JlIHRydXN0aW5nIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eS5cblx0XHQvLyBTb21lIHZpY3RpbXMgZ2V0IGNhdWdodCBpbiBvdXIgbmV0IChsYWJlbCwgbGVnZW5kLCBtZW51LCB0cmFjayksIGJ1dCBpdCBzaG91bGRuJ3Rcblx0XHQvLyBldmVuIGV4aXN0IG9uIHRoZW0sIGxldCBhbG9uZSBoYXZlIGEgYm9vbGVhbiB2YWx1ZS5cblx0XHR9IGVsc2UgaWYgKCBcImxhYmVsXCIgaW4gZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSBkaXNhYmxlZDtcblx0XHR9XG5cblx0XHQvLyBSZW1haW5pbmcgZWxlbWVudHMgYXJlIG5laXRoZXIgOmVuYWJsZWQgbm9yIDpkaXNhYmxlZFxuXHRcdHJldHVybiBmYWxzZTtcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gdXNlIGluIHBzZXVkb3MgZm9yIHBvc2l0aW9uYWxzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICovXG5mdW5jdGlvbiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmbiApIHtcblx0cmV0dXJuIG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIGFyZ3VtZW50ICkge1xuXHRcdGFyZ3VtZW50ID0gK2FyZ3VtZW50O1xuXHRcdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCBtYXRjaGVzICkge1xuXHRcdFx0dmFyIGosXG5cdFx0XHRcdG1hdGNoSW5kZXhlcyA9IGZuKCBbXSwgc2VlZC5sZW5ndGgsIGFyZ3VtZW50ICksXG5cdFx0XHRcdGkgPSBtYXRjaEluZGV4ZXMubGVuZ3RoO1xuXG5cdFx0XHQvLyBNYXRjaCBlbGVtZW50cyBmb3VuZCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4ZXNcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoIHNlZWRbICggaiA9IG1hdGNoSW5kZXhlc1sgaSBdICkgXSApIHtcblx0XHRcdFx0XHRzZWVkWyBqIF0gPSAhKCBtYXRjaGVzWyBqIF0gPSBzZWVkWyBqIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSApO1xufVxuXG4vKipcbiAqIENoZWNrcyBhIG5vZGUgZm9yIHZhbGlkaXR5IGFzIGEgalF1ZXJ5IHNlbGVjdG9yIGNvbnRleHRcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3Q9fSBjb250ZXh0XG4gKiBAcmV0dXJucyB7RWxlbWVudHxPYmplY3R8Qm9vbGVhbn0gVGhlIGlucHV0IG5vZGUgaWYgYWNjZXB0YWJsZSwgb3RoZXJ3aXNlIGEgZmFsc3kgdmFsdWVcbiAqL1xuZnVuY3Rpb24gdGVzdENvbnRleHQoIGNvbnRleHQgKSB7XG5cdHJldHVybiBjb250ZXh0ICYmIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnRleHQ7XG59XG5cbi8qKlxuICogU2V0cyBkb2N1bWVudC1yZWxhdGVkIHZhcmlhYmxlcyBvbmNlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGRvY3VtZW50XG4gKiBAcGFyYW0ge0VsZW1lbnR8T2JqZWN0fSBbbm9kZV0gQW4gZWxlbWVudCBvciBkb2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqL1xuZnVuY3Rpb24gc2V0RG9jdW1lbnQoIG5vZGUgKSB7XG5cdHZhciBzdWJXaW5kb3csXG5cdFx0ZG9jID0gbm9kZSA/IG5vZGUub3duZXJEb2N1bWVudCB8fCBub2RlIDogcHJlZmVycmVkRG9jO1xuXG5cdC8vIFJldHVybiBlYXJseSBpZiBkb2MgaXMgaW52YWxpZCBvciBhbHJlYWR5IHNlbGVjdGVkXG5cdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdGlmICggZG9jID09IGRvY3VtZW50IHx8IGRvYy5ub2RlVHlwZSAhPT0gOSB8fCAhZG9jLmRvY3VtZW50RWxlbWVudCApIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQ7XG5cdH1cblxuXHQvLyBVcGRhdGUgZ2xvYmFsIHZhcmlhYmxlc1xuXHRkb2N1bWVudCA9IGRvYztcblx0ZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXHRkb2N1bWVudElzSFRNTCA9ICFqUXVlcnkuaXNYTUxEb2MoIGRvY3VtZW50ICk7XG5cblx0Ly8gU3VwcG9ydDogaU9TIDcgb25seSwgSUUgOSAtIDExK1xuXHQvLyBPbGRlciBicm93c2VycyBkaWRuJ3Qgc3VwcG9ydCB1bnByZWZpeGVkIGBtYXRjaGVzYC5cblx0bWF0Y2hlcyA9IGRvY3VtZW50RWxlbWVudC5tYXRjaGVzIHx8XG5cdFx0ZG9jdW1lbnRFbGVtZW50LndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY3VtZW50RWxlbWVudC5tc01hdGNoZXNTZWxlY3RvcjtcblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErLCBFZGdlIDEyIC0gMTgrXG5cdC8vIEFjY2Vzc2luZyBpZnJhbWUgZG9jdW1lbnRzIGFmdGVyIHVubG9hZCB0aHJvd3MgXCJwZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yc1xuXHQvLyAoc2VlIHRyYWMtMTM5MzYpLlxuXHQvLyBMaW1pdCB0aGUgZml4IHRvIElFICYgRWRnZSBMZWdhY3k7IGRlc3BpdGUgRWRnZSAxNSsgaW1wbGVtZW50aW5nIGBtYXRjaGVzYCxcblx0Ly8gYWxsIElFIDkrIGFuZCBFZGdlIExlZ2FjeSB2ZXJzaW9ucyBpbXBsZW1lbnQgYG1zTWF0Y2hlc1NlbGVjdG9yYCBhcyB3ZWxsLlxuXHRpZiAoIGRvY3VtZW50RWxlbWVudC5tc01hdGNoZXNTZWxlY3RvciAmJlxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRwcmVmZXJyZWREb2MgIT0gZG9jdW1lbnQgJiZcblx0XHQoIHN1YldpbmRvdyA9IGRvY3VtZW50LmRlZmF1bHRWaWV3ICkgJiYgc3ViV2luZG93LnRvcCAhPT0gc3ViV2luZG93ICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4K1xuXHRcdHN1YldpbmRvdy5hZGRFdmVudExpc3RlbmVyKCBcInVubG9hZFwiLCB1bmxvYWRIYW5kbGVyICk7XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRSA8MTBcblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudEJ5SWQgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lXG5cdC8vIFRoZSBicm9rZW4gZ2V0RWxlbWVudEJ5SWQgbWV0aG9kcyBkb24ndCBwaWNrIHVwIHByb2dyYW1tYXRpY2FsbHktc2V0IG5hbWVzLFxuXHQvLyBzbyB1c2UgYSByb3VuZGFib3V0IGdldEVsZW1lbnRzQnlOYW1lIHRlc3Rcblx0c3VwcG9ydC5nZXRCeUlkID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCBlbCApLmlkID0galF1ZXJ5LmV4cGFuZG87XG5cdFx0cmV0dXJuICFkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSB8fFxuXHRcdFx0IWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCBqUXVlcnkuZXhwYW5kbyApLmxlbmd0aDtcblx0fSApO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDkgb25seVxuXHQvLyBDaGVjayB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkbyBtYXRjaGVzU2VsZWN0b3Jcblx0Ly8gb24gYSBkaXNjb25uZWN0ZWQgbm9kZS5cblx0c3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXHRcdHJldHVybiBtYXRjaGVzLmNhbGwoIGVsLCBcIipcIiApO1xuXHR9ICk7XG5cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4K1xuXHQvLyBJRS9FZGdlIGRvbid0IHN1cHBvcnQgdGhlIDpzY29wZSBwc2V1ZG8tY2xhc3MuXG5cdHN1cHBvcnQuc2NvcGUgPSBhc3NlcnQoIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpzY29wZVwiICk7XG5cdH0gKTtcblxuXHQvLyBTdXBwb3J0OiBDaHJvbWUgMTA1IC0gMTExIG9ubHksIFNhZmFyaSAxNS40IC0gMTYuMyBvbmx5XG5cdC8vIE1ha2Ugc3VyZSB0aGUgYDpoYXMoKWAgYXJndW1lbnQgaXMgcGFyc2VkIHVuZm9yZ2l2aW5nbHkuXG5cdC8vIFdlIGluY2x1ZGUgYCpgIGluIHRoZSB0ZXN0IHRvIGRldGVjdCBidWdneSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBhcmVcblx0Ly8gX3NlbGVjdGl2ZWx5XyBmb3JnaXZpbmcgKHNwZWNpZmljYWxseSB3aGVuIHRoZSBsaXN0IGluY2x1ZGVzIGF0IGxlYXN0XG5cdC8vIG9uZSB2YWxpZCBzZWxlY3RvcikuXG5cdC8vIE5vdGUgdGhhdCB3ZSB0cmVhdCBjb21wbGV0ZSBsYWNrIG9mIHN1cHBvcnQgZm9yIGA6aGFzKClgIGFzIGlmIGl0IHdlcmVcblx0Ly8gc3BlYy1jb21wbGlhbnQgc3VwcG9ydCwgd2hpY2ggaXMgZmluZSBiZWNhdXNlIHVzZSBvZiBgOmhhcygpYCBpbiBzdWNoXG5cdC8vIGVudmlyb25tZW50cyB3aWxsIGZhaWwgaW4gdGhlIHFTQSBwYXRoIGFuZCBmYWxsIGJhY2sgdG8galF1ZXJ5IHRyYXZlcnNhbFxuXHQvLyBhbnl3YXkuXG5cdHN1cHBvcnQuY3NzSGFzID0gYXNzZXJ0KCBmdW5jdGlvbigpIHtcblx0XHR0cnkge1xuXHRcdFx0ZG9jdW1lbnQucXVlcnlTZWxlY3RvciggXCI6aGFzKCosOmpxZmFrZSlcIiApO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gY2F0Y2ggKCBlICkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9ICk7XG5cblx0Ly8gSUQgZmlsdGVyIGFuZCBmaW5kXG5cdGlmICggc3VwcG9ydC5nZXRCeUlkICkge1xuXHRcdEV4cHIuZmlsdGVyLklEID0gZnVuY3Rpb24oIGlkICkge1xuXHRcdFx0dmFyIGF0dHJJZCA9IGlkLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggXCJpZFwiICkgPT09IGF0dHJJZDtcblx0XHRcdH07XG5cdFx0fTtcblx0XHRFeHByLmZpbmQuSUQgPSBmdW5jdGlvbiggaWQsIGNvbnRleHQgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0XHR2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7XG5cdFx0XHRcdHJldHVybiBlbGVtID8gWyBlbGVtIF0gOiBbXTtcblx0XHRcdH1cblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdEV4cHIuZmlsdGVyLklEID0gIGZ1bmN0aW9uKCBpZCApIHtcblx0XHRcdHZhciBhdHRySWQgPSBpZC5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgbm9kZSA9IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZU5vZGUgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRyZXR1cm4gbm9kZSAmJiBub2RlLnZhbHVlID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA2IC0gNyBvbmx5XG5cdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgaXMgbm90IHJlbGlhYmxlIGFzIGEgZmluZCBzaG9ydGN1dFxuXHRcdEV4cHIuZmluZC5JRCA9IGZ1bmN0aW9uKCBpZCwgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRcdHZhciBub2RlLCBpLCBlbGVtcyxcblx0XHRcdFx0XHRlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcblxuXHRcdFx0XHRpZiAoIGVsZW0gKSB7XG5cblx0XHRcdFx0XHQvLyBWZXJpZnkgdGhlIGlkIGF0dHJpYnV0ZVxuXHRcdFx0XHRcdG5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdGlmICggbm9kZSAmJiBub2RlLnZhbHVlID09PSBpZCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBbIGVsZW0gXTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBGYWxsIGJhY2sgb24gZ2V0RWxlbWVudHNCeU5hbWVcblx0XHRcdFx0XHRlbGVtcyA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeU5hbWUoIGlkICk7XG5cdFx0XHRcdFx0aSA9IDA7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdFx0aWYgKCBub2RlICYmIG5vZGUudmFsdWUgPT09IGlkICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gWyBlbGVtIF07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIFtdO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvLyBUYWdcblx0RXhwci5maW5kLlRBRyA9IGZ1bmN0aW9uKCB0YWcsIGNvbnRleHQgKSB7XG5cdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdC8vIERvY3VtZW50RnJhZ21lbnQgbm9kZXMgZG9uJ3QgaGF2ZSBnRUJUTlxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgKTtcblx0XHR9XG5cdH07XG5cblx0Ly8gQ2xhc3Ncblx0RXhwci5maW5kLkNMQVNTID0gZnVuY3Rpb24oIGNsYXNzTmFtZSwgY29udGV4dCApIHtcblx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCBjbGFzc05hbWUgKTtcblx0XHR9XG5cdH07XG5cblx0LyogUVNBL21hdGNoZXNTZWxlY3RvclxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gUVNBIGFuZCBtYXRjaGVzU2VsZWN0b3Igc3VwcG9ydFxuXG5cdHJidWdneVFTQSA9IFtdO1xuXG5cdC8vIEJ1aWxkIFFTQSByZWdleFxuXHQvLyBSZWdleCBzdHJhdGVneSBhZG9wdGVkIGZyb20gRGllZ28gUGVyaW5pXG5cdGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdFx0dmFyIGlucHV0O1xuXG5cdFx0ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCBlbCApLmlubmVySFRNTCA9XG5cdFx0XHRcIjxhIGlkPSdcIiArIGV4cGFuZG8gKyBcIicgaHJlZj0nJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjwvYT5cIiArXG5cdFx0XHRcIjxzZWxlY3QgaWQ9J1wiICsgZXhwYW5kbyArIFwiLVxcclxcXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+XCIgK1xuXHRcdFx0XCI8b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiO1xuXG5cdFx0Ly8gU3VwcG9ydDogaU9TIDw9NyAtIDggb25seVxuXHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBhbmQgXCJ2YWx1ZVwiIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHkgaW4gc29tZSBYTUwgZG9jdW1lbnRzXG5cdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJbc2VsZWN0ZWRdXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKig/OnZhbHVlfFwiICsgYm9vbGVhbnMgKyBcIilcIiApO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IGlPUyA8PTcgLSA4IG9ubHlcblx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltpZH49XCIgKyBleHBhbmRvICsgXCItXVwiICkubGVuZ3RoICkge1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwifj1cIiApO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IGlPUyA4IG9ubHlcblx0XHQvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODUxXG5cdFx0Ly8gSW4tcGFnZSBgc2VsZWN0b3IjaWQgc2libGluZy1jb21iaW5hdG9yIHNlbGVjdG9yYCBmYWlsc1xuXHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiYSNcIiArIGV4cGFuZG8gKyBcIisqXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCIuIy4rWyt+XVwiICk7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MTA1KywgRmlyZWZveCA8PTEwNCssIFNhZmFyaSA8PTE1LjQrXG5cdFx0Ly8gSW4gc29tZSBvZiB0aGUgZG9jdW1lbnQga2luZHMsIHRoZXNlIHNlbGVjdG9ycyB3b3VsZG4ndCB3b3JrIG5hdGl2ZWx5LlxuXHRcdC8vIFRoaXMgaXMgcHJvYmFibHkgT0sgYnV0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3ZSB3YW50IHRvIG1haW50YWluXG5cdFx0Ly8gaGFuZGxpbmcgdGhlbSB0aHJvdWdoIGpRdWVyeSB0cmF2ZXJzYWwgaW4galF1ZXJ5IDMueC5cblx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpjaGVja2VkXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCI6Y2hlY2tlZFwiICk7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogV2luZG93cyA4IE5hdGl2ZSBBcHBzXG5cdFx0Ly8gVGhlIHR5cGUgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgcmVzdHJpY3RlZCBkdXJpbmcgLmlubmVySFRNTCBhc3NpZ25tZW50XG5cdFx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0XHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCBcImhpZGRlblwiICk7XG5cdFx0ZWwuYXBwZW5kQ2hpbGQoIGlucHV0ICkuc2V0QXR0cmlidXRlKCBcIm5hbWVcIiwgXCJEXCIgKTtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDkgLSAxMStcblx0XHQvLyBJRSdzIDpkaXNhYmxlZCBzZWxlY3RvciBkb2VzIG5vdCBwaWNrIHVwIHRoZSBjaGlsZHJlbiBvZiBkaXNhYmxlZCBmaWVsZHNldHNcblx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0xMDUrLCBGaXJlZm94IDw9MTA0KywgU2FmYXJpIDw9MTUuNCtcblx0XHQvLyBJbiBzb21lIG9mIHRoZSBkb2N1bWVudCBraW5kcywgdGhlc2Ugc2VsZWN0b3JzIHdvdWxkbid0IHdvcmsgbmF0aXZlbHkuXG5cdFx0Ly8gVGhpcyBpcyBwcm9iYWJseSBPSyBidXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdlIHdhbnQgdG8gbWFpbnRhaW5cblx0XHQvLyBoYW5kbGluZyB0aGVtIHRocm91Z2ggalF1ZXJ5IHRyYXZlcnNhbCBpbiBqUXVlcnkgMy54LlxuXHRcdGRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZCggZWwgKS5kaXNhYmxlZCA9IHRydWU7XG5cdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpkaXNhYmxlZFwiICkubGVuZ3RoICE9PSAyICkge1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiOmVuYWJsZWRcIiwgXCI6ZGlzYWJsZWRcIiApO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFIDExL0VkZ2UgZG9uJ3QgZmluZCBlbGVtZW50cyBvbiBhIGBbbmFtZT0nJ11gIHF1ZXJ5IGluIHNvbWUgY2FzZXMuXG5cdFx0Ly8gQWRkaW5nIGEgdGVtcG9yYXJ5IGF0dHJpYnV0ZSB0byB0aGUgZG9jdW1lbnQgYmVmb3JlIHRoZSBzZWxlY3Rpb24gd29ya3Ncblx0XHQvLyBhcm91bmQgdGhlIGlzc3VlLlxuXHRcdC8vIEludGVyZXN0aW5nbHksIElFIDEwICYgb2xkZXIgZG9uJ3Qgc2VlbSB0byBoYXZlIHRoZSBpc3N1ZS5cblx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRcdGlucHV0LnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiXCIgKTtcblx0XHRlbC5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltuYW1lPScnXVwiICkubGVuZ3RoICkge1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiXFxcXFtcIiArIHdoaXRlc3BhY2UgKyBcIipuYW1lXCIgKyB3aGl0ZXNwYWNlICsgXCIqPVwiICtcblx0XHRcdFx0d2hpdGVzcGFjZSArIFwiKig/OicnfFxcXCJcXFwiKVwiICk7XG5cdFx0fVxuXHR9ICk7XG5cblx0aWYgKCAhc3VwcG9ydC5jc3NIYXMgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgMTA1IC0gMTEwKywgU2FmYXJpIDE1LjQgLSAxNi4zK1xuXHRcdC8vIE91ciByZWd1bGFyIGB0cnktY2F0Y2hgIG1lY2hhbmlzbSBmYWlscyB0byBkZXRlY3QgbmF0aXZlbHktdW5zdXBwb3J0ZWRcblx0XHQvLyBwc2V1ZG8tY2xhc3NlcyBpbnNpZGUgYDpoYXMoKWAgKHN1Y2ggYXMgYDpoYXMoOmNvbnRhaW5zKFwiRm9vXCIpKWApXG5cdFx0Ly8gaW4gYnJvd3NlcnMgdGhhdCBwYXJzZSB0aGUgYDpoYXMoKWAgYXJndW1lbnQgYXMgYSBmb3JnaXZpbmcgc2VsZWN0b3IgbGlzdC5cblx0XHQvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLyNyZWxhdGlvbmFsIG5vdyByZXF1aXJlcyB0aGUgYXJndW1lbnRcblx0XHQvLyB0byBiZSBwYXJzZWQgdW5mb3JnaXZpbmdseSwgYnV0IGJyb3dzZXJzIGhhdmUgbm90IHlldCBmdWxseSBhZGp1c3RlZC5cblx0XHRyYnVnZ3lRU0EucHVzaCggXCI6aGFzXCIgKTtcblx0fVxuXG5cdHJidWdneVFTQSA9IHJidWdneVFTQS5sZW5ndGggJiYgbmV3IFJlZ0V4cCggcmJ1Z2d5UVNBLmpvaW4oIFwifFwiICkgKTtcblxuXHQvKiBTb3J0aW5nXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBEb2N1bWVudCBvcmRlciBzb3J0aW5nXG5cdHNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkge1xuXG5cdFx0Ly8gRmxhZyBmb3IgZHVwbGljYXRlIHJlbW92YWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Ly8gU29ydCBvbiBtZXRob2QgZXhpc3RlbmNlIGlmIG9ubHkgb25lIGlucHV0IGhhcyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuXHRcdHZhciBjb21wYXJlID0gIWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gLSAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtcblx0XHRpZiAoIGNvbXBhcmUgKSB7XG5cdFx0XHRyZXR1cm4gY29tcGFyZTtcblx0XHR9XG5cblx0XHQvLyBDYWxjdWxhdGUgcG9zaXRpb24gaWYgYm90aCBpbnB1dHMgYmVsb25nIHRvIHRoZSBzYW1lIGRvY3VtZW50XG5cdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRjb21wYXJlID0gKCBhLm93bmVyRG9jdW1lbnQgfHwgYSApID09ICggYi5vd25lckRvY3VtZW50IHx8IGIgKSA/XG5cdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBiICkgOlxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugd2Uga25vdyB0aGV5IGFyZSBkaXNjb25uZWN0ZWRcblx0XHRcdDE7XG5cblx0XHQvLyBEaXNjb25uZWN0ZWQgbm9kZXNcblx0XHRpZiAoIGNvbXBhcmUgJiAxIHx8XG5cdFx0XHQoICFzdXBwb3J0LnNvcnREZXRhY2hlZCAmJiBiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBhICkgPT09IGNvbXBhcmUgKSApIHtcblxuXHRcdFx0Ly8gQ2hvb3NlIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgaXMgcmVsYXRlZCB0byBvdXIgcHJlZmVycmVkIGRvY3VtZW50XG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0aWYgKCBhID09PSBkb2N1bWVudCB8fCBhLm93bmVyRG9jdW1lbnQgPT0gcHJlZmVycmVkRG9jICYmXG5cdFx0XHRcdGZpbmQuY29udGFpbnMoIHByZWZlcnJlZERvYywgYSApICkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRpZiAoIGIgPT09IGRvY3VtZW50IHx8IGIub3duZXJEb2N1bWVudCA9PSBwcmVmZXJyZWREb2MgJiZcblx0XHRcdFx0ZmluZC5jb250YWlucyggcHJlZmVycmVkRG9jLCBiICkgKSB7XG5cdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBNYWludGFpbiBvcmlnaW5hbCBvcmRlclxuXHRcdFx0cmV0dXJuIHNvcnRJbnB1dCA/XG5cdFx0XHRcdCggaW5kZXhPZi5jYWxsKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YuY2FsbCggc29ydElucHV0LCBiICkgKSA6XG5cdFx0XHRcdDA7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbXBhcmUgJiA0ID8gLTEgOiAxO1xuXHR9O1xuXG5cdHJldHVybiBkb2N1bWVudDtcbn1cblxuZmluZC5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1lbnRzICkge1xuXHRyZXR1cm4gZmluZCggZXhwciwgbnVsbCwgbnVsbCwgZWxlbWVudHMgKTtcbn07XG5cbmZpbmQubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XG5cdHNldERvY3VtZW50KCBlbGVtICk7XG5cblx0aWYgKCBkb2N1bWVudElzSFRNTCAmJlxuXHRcdCFub25uYXRpdmVTZWxlY3RvckNhY2hlWyBleHByICsgXCIgXCIgXSAmJlxuXHRcdCggIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIGV4cHIgKSApICkge1xuXG5cdFx0dHJ5IHtcblx0XHRcdHZhciByZXQgPSBtYXRjaGVzLmNhbGwoIGVsZW0sIGV4cHIgKTtcblxuXHRcdFx0Ly8gSUUgOSdzIG1hdGNoZXNTZWxlY3RvciByZXR1cm5zIGZhbHNlIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuXHRcdFx0aWYgKCByZXQgfHwgc3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCB8fFxuXG5cdFx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcblx0XHRcdFx0XHQvLyBmcmFnbWVudCBpbiBJRSA5XG5cdFx0XHRcdFx0ZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRvY3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdG5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUoIGV4cHIsIHRydWUgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZmluZCggZXhwciwgZG9jdW1lbnQsIG51bGwsIFsgZWxlbSBdICkubGVuZ3RoID4gMDtcbn07XG5cbmZpbmQuY29udGFpbnMgPSBmdW5jdGlvbiggY29udGV4dCwgZWxlbSApIHtcblxuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0aWYgKCAoIGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGNvbnRleHQgKTtcblx0fVxuXHRyZXR1cm4galF1ZXJ5LmNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICk7XG59O1xuXG5cbmZpbmQuYXR0ciA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRpZiAoICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKSAhPSBkb2N1bWVudCApIHtcblx0XHRzZXREb2N1bWVudCggZWxlbSApO1xuXHR9XG5cblx0dmFyIGZuID0gRXhwci5hdHRySGFuZGxlWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSxcblxuXHRcdC8vIERvbid0IGdldCBmb29sZWQgYnkgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzIChzZWUgdHJhYy0xMzgwNylcblx0XHR2YWwgPSBmbiAmJiBoYXNPd24uY2FsbCggRXhwci5hdHRySGFuZGxlLCBuYW1lLnRvTG93ZXJDYXNlKCkgKSA/XG5cdFx0XHRmbiggZWxlbSwgbmFtZSwgIWRvY3VtZW50SXNIVE1MICkgOlxuXHRcdFx0dW5kZWZpbmVkO1xuXG5cdGlmICggdmFsICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0cmV0dXJuIHZhbDtcblx0fVxuXG5cdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xufTtcblxuZmluZC5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdHRocm93IG5ldyBFcnJvciggXCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiBcIiArIG1zZyApO1xufTtcblxuLyoqXG4gKiBEb2N1bWVudCBzb3J0aW5nIGFuZCByZW1vdmluZyBkdXBsaWNhdGVzXG4gKiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0c1xuICovXG5qUXVlcnkudW5pcXVlU29ydCA9IGZ1bmN0aW9uKCByZXN1bHRzICkge1xuXHR2YXIgZWxlbSxcblx0XHRkdXBsaWNhdGVzID0gW10sXG5cdFx0aiA9IDAsXG5cdFx0aSA9IDA7XG5cblx0Ly8gVW5sZXNzIHdlICprbm93KiB3ZSBjYW4gZGV0ZWN0IGR1cGxpY2F0ZXMsIGFzc3VtZSB0aGVpciBwcmVzZW5jZVxuXHQvL1xuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wK1xuXHQvLyBUZXN0aW5nIGZvciBkZXRlY3RpbmcgZHVwbGljYXRlcyBpcyB1bnByZWRpY3RhYmxlIHNvIGluc3RlYWQgYXNzdW1lIHdlIGNhbid0XG5cdC8vIGRlcGVuZCBvbiBkdXBsaWNhdGUgZGV0ZWN0aW9uIGluIGFsbCBicm93c2VycyB3aXRob3V0IGEgc3RhYmxlIHNvcnQuXG5cdGhhc0R1cGxpY2F0ZSA9ICFzdXBwb3J0LnNvcnRTdGFibGU7XG5cdHNvcnRJbnB1dCA9ICFzdXBwb3J0LnNvcnRTdGFibGUgJiYgc2xpY2UuY2FsbCggcmVzdWx0cywgMCApO1xuXHRzb3J0LmNhbGwoIHJlc3VsdHMsIHNvcnRPcmRlciApO1xuXG5cdGlmICggaGFzRHVwbGljYXRlICkge1xuXHRcdHdoaWxlICggKCBlbGVtID0gcmVzdWx0c1sgaSsrIF0gKSApIHtcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSBdICkge1xuXHRcdFx0XHRqID0gZHVwbGljYXRlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0c3BsaWNlLmNhbGwoIHJlc3VsdHMsIGR1cGxpY2F0ZXNbIGogXSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdC8vIENsZWFyIGlucHV0IGFmdGVyIHNvcnRpbmcgdG8gcmVsZWFzZSBvYmplY3RzXG5cdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9wdWxsLzIyNVxuXHRzb3J0SW5wdXQgPSBudWxsO1xuXG5cdHJldHVybiByZXN1bHRzO1xufTtcblxualF1ZXJ5LmZuLnVuaXF1ZVNvcnQgPSBmdW5jdGlvbigpIHtcblx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkudW5pcXVlU29ydCggc2xpY2UuYXBwbHkoIHRoaXMgKSApICk7XG59O1xuXG5FeHByID0galF1ZXJ5LmV4cHIgPSB7XG5cblx0Ly8gQ2FuIGJlIGFkanVzdGVkIGJ5IHRoZSB1c2VyXG5cdGNhY2hlTGVuZ3RoOiA1MCxcblxuXHRjcmVhdGVQc2V1ZG86IG1hcmtGdW5jdGlvbixcblxuXHRtYXRjaDogbWF0Y2hFeHByLFxuXG5cdGF0dHJIYW5kbGU6IHt9LFxuXG5cdGZpbmQ6IHt9LFxuXG5cdHJlbGF0aXZlOiB7XG5cdFx0XCI+XCI6IHsgZGlyOiBcInBhcmVudE5vZGVcIiwgZmlyc3Q6IHRydWUgfSxcblx0XHRcIiBcIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiIH0sXG5cdFx0XCIrXCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiflwiOiB7IGRpcjogXCJwcmV2aW91c1NpYmxpbmdcIiB9XG5cdH0sXG5cblx0cHJlRmlsdGVyOiB7XG5cdFx0QVRUUjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0bWF0Y2hbIDEgXSA9IG1hdGNoWyAxIF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblxuXHRcdFx0Ly8gTW92ZSB0aGUgZ2l2ZW4gdmFsdWUgdG8gbWF0Y2hbM10gd2hldGhlciBxdW90ZWQgb3IgdW5xdW90ZWRcblx0XHRcdG1hdGNoWyAzIF0gPSAoIG1hdGNoWyAzIF0gfHwgbWF0Y2hbIDQgXSB8fCBtYXRjaFsgNSBdIHx8IFwiXCIgKVxuXHRcdFx0XHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblxuXHRcdFx0aWYgKCBtYXRjaFsgMiBdID09PSBcIn49XCIgKSB7XG5cdFx0XHRcdG1hdGNoWyAzIF0gPSBcIiBcIiArIG1hdGNoWyAzIF0gKyBcIiBcIjtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1hdGNoLnNsaWNlKCAwLCA0ICk7XG5cdFx0fSxcblxuXHRcdENISUxEOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cblx0XHRcdC8qIG1hdGNoZXMgZnJvbSBtYXRjaEV4cHJbXCJDSElMRFwiXVxuXHRcdFx0XHQxIHR5cGUgKG9ubHl8bnRofC4uLilcblx0XHRcdFx0MiB3aGF0IChjaGlsZHxvZi10eXBlKVxuXHRcdFx0XHQzIGFyZ3VtZW50IChldmVufG9kZHxcXGQqfFxcZCpuKFsrLV1cXGQrKT98Li4uKVxuXHRcdFx0XHQ0IHhuLWNvbXBvbmVudCBvZiB4bit5IGFyZ3VtZW50IChbKy1dP1xcZCpufClcblx0XHRcdFx0NSBzaWduIG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ2IHggb2YgeG4tY29tcG9uZW50XG5cdFx0XHRcdDcgc2lnbiBvZiB5LWNvbXBvbmVudFxuXHRcdFx0XHQ4IHkgb2YgeS1jb21wb25lbnRcblx0XHRcdCovXG5cdFx0XHRtYXRjaFsgMSBdID0gbWF0Y2hbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoIG1hdGNoWyAxIF0uc2xpY2UoIDAsIDMgKSA9PT0gXCJudGhcIiApIHtcblxuXHRcdFx0XHQvLyBudGgtKiByZXF1aXJlcyBhcmd1bWVudFxuXHRcdFx0XHRpZiAoICFtYXRjaFsgMyBdICkge1xuXHRcdFx0XHRcdGZpbmQuZXJyb3IoIG1hdGNoWyAwIF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHByLmZpbHRlci5DSElMRFxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXG5cdFx0XHRcdG1hdGNoWyA0IF0gPSArKCBtYXRjaFsgNCBdID9cblx0XHRcdFx0XHRtYXRjaFsgNSBdICsgKCBtYXRjaFsgNiBdIHx8IDEgKSA6XG5cdFx0XHRcdFx0MiAqICggbWF0Y2hbIDMgXSA9PT0gXCJldmVuXCIgfHwgbWF0Y2hbIDMgXSA9PT0gXCJvZGRcIiApXG5cdFx0XHRcdCk7XG5cdFx0XHRcdG1hdGNoWyA1IF0gPSArKCAoIG1hdGNoWyA3IF0gKyBtYXRjaFsgOCBdICkgfHwgbWF0Y2hbIDMgXSA9PT0gXCJvZGRcIiApO1xuXG5cdFx0XHQvLyBvdGhlciB0eXBlcyBwcm9oaWJpdCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIG1hdGNoWyAzIF0gKSB7XG5cdFx0XHRcdGZpbmQuZXJyb3IoIG1hdGNoWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1hdGNoO1xuXHRcdH0sXG5cblx0XHRQU0VVRE86IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdHZhciBleGNlc3MsXG5cdFx0XHRcdHVucXVvdGVkID0gIW1hdGNoWyA2IF0gJiYgbWF0Y2hbIDIgXTtcblxuXHRcdFx0aWYgKCBtYXRjaEV4cHIuQ0hJTEQudGVzdCggbWF0Y2hbIDAgXSApICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWNjZXB0IHF1b3RlZCBhcmd1bWVudHMgYXMtaXNcblx0XHRcdGlmICggbWF0Y2hbIDMgXSApIHtcblx0XHRcdFx0bWF0Y2hbIDIgXSA9IG1hdGNoWyA0IF0gfHwgbWF0Y2hbIDUgXSB8fCBcIlwiO1xuXG5cdFx0XHQvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggdW5xdW90ZWQgJiYgcnBzZXVkby50ZXN0KCB1bnF1b3RlZCApICYmXG5cblx0XHRcdFx0Ly8gR2V0IGV4Y2VzcyBmcm9tIHRva2VuaXplIChyZWN1cnNpdmVseSlcblx0XHRcdFx0KCBleGNlc3MgPSB0b2tlbml6ZSggdW5xdW90ZWQsIHRydWUgKSApICYmXG5cblx0XHRcdFx0Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBjbG9zaW5nIHBhcmVudGhlc2lzXG5cdFx0XHRcdCggZXhjZXNzID0gdW5xdW90ZWQuaW5kZXhPZiggXCIpXCIsIHVucXVvdGVkLmxlbmd0aCAtIGV4Y2VzcyApIC0gdW5xdW90ZWQubGVuZ3RoICkgKSB7XG5cblx0XHRcdFx0Ly8gZXhjZXNzIGlzIGEgbmVnYXRpdmUgaW5kZXhcblx0XHRcdFx0bWF0Y2hbIDAgXSA9IG1hdGNoWyAwIF0uc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0XHRtYXRjaFsgMiBdID0gdW5xdW90ZWQuc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXR1cm4gb25seSBjYXB0dXJlcyBuZWVkZWQgYnkgdGhlIHBzZXVkbyBmaWx0ZXIgbWV0aG9kICh0eXBlIGFuZCBhcmd1bWVudClcblx0XHRcdHJldHVybiBtYXRjaC5zbGljZSggMCwgMyApO1xuXHRcdH1cblx0fSxcblxuXHRmaWx0ZXI6IHtcblxuXHRcdFRBRzogZnVuY3Rpb24oIG5vZGVOYW1lU2VsZWN0b3IgKSB7XG5cdFx0XHR2YXIgZXhwZWN0ZWROb2RlTmFtZSA9IG5vZGVOYW1lU2VsZWN0b3IucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lU2VsZWN0b3IgPT09IFwiKlwiID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gOlxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gbm9kZU5hbWUoIGVsZW0sIGV4cGVjdGVkTm9kZU5hbWUgKTtcblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0Q0xBU1M6IGZ1bmN0aW9uKCBjbGFzc05hbWUgKSB7XG5cdFx0XHR2YXIgcGF0dGVybiA9IGNsYXNzQ2FjaGVbIGNsYXNzTmFtZSArIFwiIFwiIF07XG5cblx0XHRcdHJldHVybiBwYXR0ZXJuIHx8XG5cdFx0XHRcdCggcGF0dGVybiA9IG5ldyBSZWdFeHAoIFwiKF58XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyBjbGFzc05hbWUgK1xuXHRcdFx0XHRcdFwiKFwiICsgd2hpdGVzcGFjZSArIFwifCQpXCIgKSApICYmXG5cdFx0XHRcdGNsYXNzQ2FjaGUoIGNsYXNzTmFtZSwgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhdHRlcm4udGVzdChcblx0XHRcdFx0XHRcdHR5cGVvZiBlbGVtLmNsYXNzTmFtZSA9PT0gXCJzdHJpbmdcIiAmJiBlbGVtLmNsYXNzTmFtZSB8fFxuXHRcdFx0XHRcdFx0XHR0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGUgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdFx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZSggXCJjbGFzc1wiICkgfHxcblx0XHRcdFx0XHRcdFx0XCJcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gKTtcblx0XHR9LFxuXG5cdFx0QVRUUjogZnVuY3Rpb24oIG5hbWUsIG9wZXJhdG9yLCBjaGVjayApIHtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIHJlc3VsdCA9IGZpbmQuYXR0ciggZWxlbSwgbmFtZSApO1xuXG5cdFx0XHRcdGlmICggcmVzdWx0ID09IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIiE9XCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCAhb3BlcmF0b3IgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXN1bHQgKz0gXCJcIjtcblxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcIj1cIiApIHtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0ID09PSBjaGVjaztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcIiE9XCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdCAhPT0gY2hlY2s7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBvcGVyYXRvciA9PT0gXCJePVwiICkge1xuXHRcdFx0XHRcdHJldHVybiBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA9PT0gMDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcIio9XCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNoZWNrICYmIHJlc3VsdC5pbmRleE9mKCBjaGVjayApID4gLTE7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBvcGVyYXRvciA9PT0gXCIkPVwiICkge1xuXHRcdFx0XHRcdHJldHVybiBjaGVjayAmJiByZXN1bHQuc2xpY2UoIC1jaGVjay5sZW5ndGggKSA9PT0gY2hlY2s7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBvcGVyYXRvciA9PT0gXCJ+PVwiICkge1xuXHRcdFx0XHRcdHJldHVybiAoIFwiIFwiICsgcmVzdWx0LnJlcGxhY2UoIHJ3aGl0ZXNwYWNlLCBcIiBcIiApICsgXCIgXCIgKVxuXHRcdFx0XHRcdFx0LmluZGV4T2YoIGNoZWNrICkgPiAtMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIG9wZXJhdG9yID09PSBcInw9XCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdCA9PT0gY2hlY2sgfHwgcmVzdWx0LnNsaWNlKCAwLCBjaGVjay5sZW5ndGggKyAxICkgPT09IGNoZWNrICsgXCItXCI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRDSElMRDogZnVuY3Rpb24oIHR5cGUsIHdoYXQsIF9hcmd1bWVudCwgZmlyc3QsIGxhc3QgKSB7XG5cdFx0XHR2YXIgc2ltcGxlID0gdHlwZS5zbGljZSggMCwgMyApICE9PSBcIm50aFwiLFxuXHRcdFx0XHRmb3J3YXJkID0gdHlwZS5zbGljZSggLTQgKSAhPT0gXCJsYXN0XCIsXG5cdFx0XHRcdG9mVHlwZSA9IHdoYXQgPT09IFwib2YtdHlwZVwiO1xuXG5cdFx0XHRyZXR1cm4gZmlyc3QgPT09IDEgJiYgbGFzdCA9PT0gMCA/XG5cblx0XHRcdFx0Ly8gU2hvcnRjdXQgZm9yIDpudGgtKihuKVxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gISFlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRcdH0gOlxuXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdHZhciBjYWNoZSwgb3V0ZXJDYWNoZSwgbm9kZSwgbm9kZUluZGV4LCBzdGFydCxcblx0XHRcdFx0XHRcdGRpciA9IHNpbXBsZSAhPT0gZm9yd2FyZCA/IFwibmV4dFNpYmxpbmdcIiA6IFwicHJldmlvdXNTaWJsaW5nXCIsXG5cdFx0XHRcdFx0XHRwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUsXG5cdFx0XHRcdFx0XHRuYW1lID0gb2ZUeXBlICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxcblx0XHRcdFx0XHRcdHVzZUNhY2hlID0gIXhtbCAmJiAhb2ZUeXBlLFxuXHRcdFx0XHRcdFx0ZGlmZiA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdC8vIDooZmlyc3R8bGFzdHxvbmx5KS0oY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0XHRcdGlmICggc2ltcGxlICkge1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoIGRpciApIHtcblx0XHRcdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9IG5vZGVbIGRpciBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG9mVHlwZSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGVOYW1lKCBub2RlLCBuYW1lICkgOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBSZXZlcnNlIGRpcmVjdGlvbiBmb3IgOm9ubHktKiAoaWYgd2UgaGF2ZW4ndCB5ZXQgZG9uZSBzbylcblx0XHRcdFx0XHRcdFx0XHRzdGFydCA9IGRpciA9IHR5cGUgPT09IFwib25seVwiICYmICFzdGFydCAmJiBcIm5leHRTaWJsaW5nXCI7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdHN0YXJ0ID0gWyBmb3J3YXJkID8gcGFyZW50LmZpcnN0Q2hpbGQgOiBwYXJlbnQubGFzdENoaWxkIF07XG5cblx0XHRcdFx0XHRcdC8vIG5vbi14bWwgOm50aC1jaGlsZCguLi4pIHN0b3JlcyBjYWNoZSBkYXRhIG9uIGBwYXJlbnRgXG5cdFx0XHRcdFx0XHRpZiAoIGZvcndhcmQgJiYgdXNlQ2FjaGUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gU2VlayBgZWxlbWAgZnJvbSBhIHByZXZpb3VzbHktY2FjaGVkIGluZGV4XG5cdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBwYXJlbnRbIGV4cGFuZG8gXSB8fCAoIHBhcmVudFsgZXhwYW5kbyBdID0ge30gKTtcblx0XHRcdFx0XHRcdFx0Y2FjaGUgPSBvdXRlckNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbIDEgXTtcblx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleCAmJiBjYWNoZVsgMiBdO1xuXHRcdFx0XHRcdFx0XHRub2RlID0gbm9kZUluZGV4ICYmIHBhcmVudC5jaGlsZE5vZGVzWyBub2RlSW5kZXggXTtcblxuXHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIEZhbGxiYWNrIHRvIHNlZWtpbmcgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdFx0KCBkaWZmID0gbm9kZUluZGV4ID0gMCApIHx8IHN0YXJ0LnBvcCgpICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBXaGVuIGZvdW5kLCBjYWNoZSBpbmRleGVzIG9uIGBwYXJlbnRgIGFuZCBicmVha1xuXHRcdFx0XHRcdFx0XHRcdGlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiArK2RpZmYgJiYgbm9kZSA9PT0gZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGVbIHR5cGUgXSA9IFsgZGlycnVucywgbm9kZUluZGV4LCBkaWZmIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBVc2UgcHJldmlvdXNseS1jYWNoZWQgZWxlbWVudCBpbmRleCBpZiBhdmFpbGFibGVcblx0XHRcdFx0XHRcdFx0aWYgKCB1c2VDYWNoZSApIHtcblx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlID0gZWxlbVsgZXhwYW5kbyBdIHx8ICggZWxlbVsgZXhwYW5kbyBdID0ge30gKTtcblx0XHRcdFx0XHRcdFx0XHRjYWNoZSA9IG91dGVyQ2FjaGVbIHR5cGUgXSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0XHRub2RlSW5kZXggPSBjYWNoZVsgMCBdID09PSBkaXJydW5zICYmIGNhY2hlWyAxIF07XG5cdFx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleDtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC8vIHhtbCA6bnRoLWNoaWxkKC4uLilcblx0XHRcdFx0XHRcdFx0Ly8gb3IgOm50aC1sYXN0LWNoaWxkKC4uLikgb3IgOm50aCgtbGFzdCk/LW9mLXR5cGUoLi4uKVxuXHRcdFx0XHRcdFx0XHRpZiAoIGRpZmYgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gVXNlIHRoZSBzYW1lIGxvb3AgYXMgYWJvdmUgdG8gc2VlayBgZWxlbWAgZnJvbSB0aGUgc3RhcnRcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdCggZGlmZiA9IG5vZGVJbmRleCA9IDAgKSB8fCBzdGFydC5wb3AoKSApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoICggb2ZUeXBlID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZU5hbWUoIG5vZGUsIG5hbWUgKSA6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGUubm9kZVR5cGUgPT09IDEgKSAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQrK2RpZmYgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gQ2FjaGUgdGhlIGluZGV4IG9mIGVhY2ggZW5jb3VudGVyZWQgZWxlbWVudFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHVzZUNhY2hlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBub2RlWyBleHBhbmRvIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggbm9kZVsgZXhwYW5kbyBdID0ge30gKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlWyB0eXBlIF0gPSBbIGRpcnJ1bnMsIGRpZmYgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggbm9kZSA9PT0gZWxlbSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSB0aGUgb2Zmc2V0LCB0aGVuIGNoZWNrIGFnYWluc3QgY3ljbGUgc2l6ZVxuXHRcdFx0XHRcdFx0ZGlmZiAtPSBsYXN0O1xuXHRcdFx0XHRcdFx0cmV0dXJuIGRpZmYgPT09IGZpcnN0IHx8ICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRQU0VVRE86IGZ1bmN0aW9uKCBwc2V1ZG8sIGFyZ3VtZW50ICkge1xuXG5cdFx0XHQvLyBwc2V1ZG8tY2xhc3MgbmFtZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmVcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI3BzZXVkby1jbGFzc2VzXG5cdFx0XHQvLyBQcmlvcml0aXplIGJ5IGNhc2Ugc2Vuc2l0aXZpdHkgaW4gY2FzZSBjdXN0b20gcHNldWRvcyBhcmUgYWRkZWQgd2l0aCB1cHBlcmNhc2UgbGV0dGVyc1xuXHRcdFx0Ly8gUmVtZW1iZXIgdGhhdCBzZXRGaWx0ZXJzIGluaGVyaXRzIGZyb20gcHNldWRvc1xuXHRcdFx0dmFyIGFyZ3MsXG5cdFx0XHRcdGZuID0gRXhwci5wc2V1ZG9zWyBwc2V1ZG8gXSB8fCBFeHByLnNldEZpbHRlcnNbIHBzZXVkby50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0XHRmaW5kLmVycm9yKCBcInVuc3VwcG9ydGVkIHBzZXVkbzogXCIgKyBwc2V1ZG8gKTtcblxuXHRcdFx0Ly8gVGhlIHVzZXIgbWF5IHVzZSBjcmVhdGVQc2V1ZG8gdG8gaW5kaWNhdGUgdGhhdFxuXHRcdFx0Ly8gYXJndW1lbnRzIGFyZSBuZWVkZWQgdG8gY3JlYXRlIHRoZSBmaWx0ZXIgZnVuY3Rpb25cblx0XHRcdC8vIGp1c3QgYXMgalF1ZXJ5IGRvZXNcblx0XHRcdGlmICggZm5bIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0cmV0dXJuIGZuKCBhcmd1bWVudCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBCdXQgbWFpbnRhaW4gc3VwcG9ydCBmb3Igb2xkIHNpZ25hdHVyZXNcblx0XHRcdGlmICggZm4ubGVuZ3RoID4gMSApIHtcblx0XHRcdFx0YXJncyA9IFsgcHNldWRvLCBwc2V1ZG8sIFwiXCIsIGFyZ3VtZW50IF07XG5cdFx0XHRcdHJldHVybiBFeHByLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoIHBzZXVkby50b0xvd2VyQ2FzZSgpICkgP1xuXHRcdFx0XHRcdG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHRcdFx0XHR2YXIgaWR4LFxuXHRcdFx0XHRcdFx0XHRtYXRjaGVkID0gZm4oIHNlZWQsIGFyZ3VtZW50ICksXG5cdFx0XHRcdFx0XHRcdGkgPSBtYXRjaGVkLmxlbmd0aDtcblx0XHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0XHRpZHggPSBpbmRleE9mLmNhbGwoIHNlZWQsIG1hdGNoZWRbIGkgXSApO1xuXHRcdFx0XHRcdFx0XHRzZWVkWyBpZHggXSA9ICEoIG1hdGNoZXNbIGlkeCBdID0gbWF0Y2hlZFsgaSBdICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmbiggZWxlbSwgMCwgYXJncyApO1xuXHRcdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBmbjtcblx0XHR9XG5cdH0sXG5cblx0cHNldWRvczoge1xuXG5cdFx0Ly8gUG90ZW50aWFsbHkgY29tcGxleCBwc2V1ZG9zXG5cdFx0bm90OiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblxuXHRcdFx0Ly8gVHJpbSB0aGUgc2VsZWN0b3IgcGFzc2VkIHRvIGNvbXBpbGVcblx0XHRcdC8vIHRvIGF2b2lkIHRyZWF0aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG5cdFx0XHQvLyBzcGFjZXMgYXMgY29tYmluYXRvcnNcblx0XHRcdHZhciBpbnB1dCA9IFtdLFxuXHRcdFx0XHRyZXN1bHRzID0gW10sXG5cdFx0XHRcdG1hdGNoZXIgPSBjb21waWxlKCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbUNTUywgXCIkMVwiICkgKTtcblxuXHRcdFx0cmV0dXJuIG1hdGNoZXJbIGV4cGFuZG8gXSA/XG5cdFx0XHRcdG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMsIF9jb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdFx0XHR1bm1hdGNoZWQgPSBtYXRjaGVyKCBzZWVkLCBudWxsLCB4bWwsIFtdICksXG5cdFx0XHRcdFx0XHRpID0gc2VlZC5sZW5ndGg7XG5cblx0XHRcdFx0XHQvLyBNYXRjaCBlbGVtZW50cyB1bm1hdGNoZWQgYnkgYG1hdGNoZXJgXG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoICggZWxlbSA9IHVubWF0Y2hlZFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdHNlZWRbIGkgXSA9ICEoIG1hdGNoZXNbIGkgXSA9IGVsZW0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdGlucHV0WyAwIF0gPSBlbGVtO1xuXHRcdFx0XHRcdG1hdGNoZXIoIGlucHV0LCBudWxsLCB4bWwsIHJlc3VsdHMgKTtcblxuXHRcdFx0XHRcdC8vIERvbid0IGtlZXAgdGhlIGVsZW1lbnRcblx0XHRcdFx0XHQvLyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvc2l6emxlL2lzc3Vlcy8yOTkpXG5cdFx0XHRcdFx0aW5wdXRbIDAgXSA9IG51bGw7XG5cdFx0XHRcdFx0cmV0dXJuICFyZXN1bHRzLnBvcCgpO1xuXHRcdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdGhhczogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBmaW5kKCBzZWxlY3RvciwgZWxlbSApLmxlbmd0aCA+IDA7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdGNvbnRhaW5zOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuICggZWxlbS50ZXh0Q29udGVudCB8fCBqUXVlcnkudGV4dCggZWxlbSApICkuaW5kZXhPZiggdGV4dCApID4gLTE7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdC8vIFwiV2hldGhlciBhbiBlbGVtZW50IGlzIHJlcHJlc2VudGVkIGJ5IGEgOmxhbmcoKSBzZWxlY3RvclxuXHRcdC8vIGlzIGJhc2VkIHNvbGVseSBvbiB0aGUgZWxlbWVudCdzIGxhbmd1YWdlIHZhbHVlXG5cdFx0Ly8gYmVpbmcgZXF1YWwgdG8gdGhlIGlkZW50aWZpZXIgQyxcblx0XHQvLyBvciBiZWdpbm5pbmcgd2l0aCB0aGUgaWRlbnRpZmllciBDIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IFwiLVwiLlxuXHRcdC8vIFRoZSBtYXRjaGluZyBvZiBDIGFnYWluc3QgdGhlIGVsZW1lbnQncyBsYW5ndWFnZSB2YWx1ZSBpcyBwZXJmb3JtZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LlxuXHRcdC8vIFRoZSBpZGVudGlmaWVyIEMgZG9lcyBub3QgaGF2ZSB0byBiZSBhIHZhbGlkIGxhbmd1YWdlIG5hbWUuXCJcblx0XHQvLyBodHRwczovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNsYW5nLXBzZXVkb1xuXHRcdGxhbmc6IG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIGxhbmcgKSB7XG5cblx0XHRcdC8vIGxhbmcgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXJcblx0XHRcdGlmICggIXJpZGVudGlmaWVyLnRlc3QoIGxhbmcgfHwgXCJcIiApICkge1xuXHRcdFx0XHRmaW5kLmVycm9yKCBcInVuc3VwcG9ydGVkIGxhbmc6IFwiICsgbGFuZyApO1xuXHRcdFx0fVxuXHRcdFx0bGFuZyA9IGxhbmcucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgZWxlbUxhbmc7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoICggZWxlbUxhbmcgPSBkb2N1bWVudElzSFRNTCA/XG5cdFx0XHRcdFx0XHRlbGVtLmxhbmcgOlxuXHRcdFx0XHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIFwieG1sOmxhbmdcIiApIHx8IGVsZW0uZ2V0QXR0cmlidXRlKCBcImxhbmdcIiApICkgKSB7XG5cblx0XHRcdFx0XHRcdGVsZW1MYW5nID0gZWxlbUxhbmcudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtTGFuZyA9PT0gbGFuZyB8fCBlbGVtTGFuZy5pbmRleE9mKCBsYW5nICsgXCItXCIgKSA9PT0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gd2hpbGUgKCAoIGVsZW0gPSBlbGVtLnBhcmVudE5vZGUgKSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH07XG5cdFx0fSApLFxuXG5cdFx0Ly8gTWlzY2VsbGFuZW91c1xuXHRcdHRhcmdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0XHRcdHJldHVybiBoYXNoICYmIGhhc2guc2xpY2UoIDEgKSA9PT0gZWxlbS5pZDtcblx0XHR9LFxuXG5cdFx0cm9vdDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gZG9jdW1lbnRFbGVtZW50O1xuXHRcdH0sXG5cblx0XHRmb2N1czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gc2FmZUFjdGl2ZUVsZW1lbnQoKSAmJlxuXHRcdFx0XHRkb2N1bWVudC5oYXNGb2N1cygpICYmXG5cdFx0XHRcdCEhKCBlbGVtLnR5cGUgfHwgZWxlbS5ocmVmIHx8IH5lbGVtLnRhYkluZGV4ICk7XG5cdFx0fSxcblxuXHRcdC8vIEJvb2xlYW4gcHJvcGVydGllc1xuXHRcdGVuYWJsZWQ6IGNyZWF0ZURpc2FibGVkUHNldWRvKCBmYWxzZSApLFxuXHRcdGRpc2FibGVkOiBjcmVhdGVEaXNhYmxlZFBzZXVkbyggdHJ1ZSApLFxuXG5cdFx0Y2hlY2tlZDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIEluIENTUzMsIDpjaGVja2VkIHNob3VsZCByZXR1cm4gYm90aCBjaGVja2VkIGFuZCBzZWxlY3RlZCBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMTEvUkVDLWNzczMtc2VsZWN0b3JzLTIwMTEwOTI5LyNjaGVja2VkXG5cdFx0XHRyZXR1cm4gKCBub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgJiYgISFlbGVtLmNoZWNrZWQgKSB8fFxuXHRcdFx0XHQoIG5vZGVOYW1lKCBlbGVtLCBcIm9wdGlvblwiICkgJiYgISFlbGVtLnNlbGVjdGVkICk7XG5cdFx0fSxcblxuXHRcdHNlbGVjdGVkOiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD0xMStcblx0XHRcdC8vIEFjY2Vzc2luZyB0aGUgc2VsZWN0ZWRJbmRleCBwcm9wZXJ0eVxuXHRcdFx0Ly8gZm9yY2VzIHRoZSBicm93c2VyIHRvIHRyZWF0IHRoZSBkZWZhdWx0IG9wdGlvbiBhc1xuXHRcdFx0Ly8gc2VsZWN0ZWQgd2hlbiBpbiBhbiBvcHRncm91cC5cblx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdFx0XHRcdGVsZW0ucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZWxlbS5zZWxlY3RlZCA9PT0gdHJ1ZTtcblx0XHR9LFxuXG5cdFx0Ly8gQ29udGVudHNcblx0XHRlbXB0eTogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2VtcHR5LXBzZXVkb1xuXHRcdFx0Ly8gOmVtcHR5IGlzIG5lZ2F0ZWQgYnkgZWxlbWVudCAoMSkgb3IgY29udGVudCBub2RlcyAodGV4dDogMzsgY2RhdGE6IDQ7IGVudGl0eSByZWY6IDUpLFxuXHRcdFx0Ly8gICBidXQgbm90IGJ5IG90aGVycyAoY29tbWVudDogODsgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbjogNzsgZXRjLilcblx0XHRcdC8vIG5vZGVUeXBlIDwgNiB3b3JrcyBiZWNhdXNlIGF0dHJpYnV0ZXMgKDIpIGRvIG5vdCBhcHBlYXIgYXMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPCA2ICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdHBhcmVudDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gIUV4cHIucHNldWRvcy5lbXB0eSggZWxlbSApO1xuXHRcdH0sXG5cblx0XHQvLyBFbGVtZW50L2lucHV0IHR5cGVzXG5cdFx0aGVhZGVyOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiByaGVhZGVyLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTtcblx0XHR9LFxuXG5cdFx0aW5wdXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIHJpbnB1dHMudGVzdCggZWxlbS5ub2RlTmFtZSApO1xuXHRcdH0sXG5cblx0XHRidXR0b246IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lKCBlbGVtLCBcImlucHV0XCIgKSAmJiBlbGVtLnR5cGUgPT09IFwiYnV0dG9uXCIgfHxcblx0XHRcdFx0bm9kZU5hbWUoIGVsZW0sIFwiYnV0dG9uXCIgKTtcblx0XHR9LFxuXG5cdFx0dGV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgYXR0cjtcblx0XHRcdHJldHVybiBub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgJiYgZWxlbS50eXBlID09PSBcInRleHRcIiAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDwxMCBvbmx5XG5cdFx0XHRcdC8vIE5ldyBIVE1MNSBhdHRyaWJ1dGUgdmFsdWVzIChlLmcuLCBcInNlYXJjaFwiKSBhcHBlYXJcblx0XHRcdFx0Ly8gd2l0aCBlbGVtLnR5cGUgPT09IFwidGV4dFwiXG5cdFx0XHRcdCggKCBhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoIFwidHlwZVwiICkgKSA9PSBudWxsIHx8XG5cdFx0XHRcdFx0YXR0ci50b0xvd2VyQ2FzZSgpID09PSBcInRleHRcIiApO1xuXHRcdH0sXG5cblx0XHQvLyBQb3NpdGlvbi1pbi1jb2xsZWN0aW9uXG5cdFx0Zmlyc3Q6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIFsgMCBdO1xuXHRcdH0gKSxcblxuXHRcdGxhc3Q6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBfbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gWyBsZW5ndGggLSAxIF07XG5cdFx0fSApLFxuXG5cdFx0ZXE6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBfbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0cmV0dXJuIFsgYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudCBdO1xuXHRcdH0gKSxcblxuXHRcdGV2ZW46IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRvZGQ6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMTtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRsdDogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpO1xuXG5cdFx0XHRpZiAoIGFyZ3VtZW50IDwgMCApIHtcblx0XHRcdFx0aSA9IGFyZ3VtZW50ICsgbGVuZ3RoO1xuXHRcdFx0fSBlbHNlIGlmICggYXJndW1lbnQgPiBsZW5ndGggKSB7XG5cdFx0XHRcdGkgPSBsZW5ndGg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpID0gYXJndW1lbnQ7XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoIDsgLS1pID49IDA7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRndDogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpID0gYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudDtcblx0XHRcdGZvciAoIDsgKytpIDwgbGVuZ3RoOyApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSApXG5cdH1cbn07XG5cbkV4cHIucHNldWRvcy5udGggPSBFeHByLnBzZXVkb3MuZXE7XG5cbi8vIEFkZCBidXR0b24vaW5wdXQgdHlwZSBwc2V1ZG9zXG5mb3IgKCBpIGluIHsgcmFkaW86IHRydWUsIGNoZWNrYm94OiB0cnVlLCBmaWxlOiB0cnVlLCBwYXNzd29yZDogdHJ1ZSwgaW1hZ2U6IHRydWUgfSApIHtcblx0RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVJbnB1dFBzZXVkbyggaSApO1xufVxuZm9yICggaSBpbiB7IHN1Ym1pdDogdHJ1ZSwgcmVzZXQ6IHRydWUgfSApIHtcblx0RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVCdXR0b25Qc2V1ZG8oIGkgKTtcbn1cblxuLy8gRWFzeSBBUEkgZm9yIGNyZWF0aW5nIG5ldyBzZXRGaWx0ZXJzXG5mdW5jdGlvbiBzZXRGaWx0ZXJzKCkge31cbnNldEZpbHRlcnMucHJvdG90eXBlID0gRXhwci5maWx0ZXJzID0gRXhwci5wc2V1ZG9zO1xuRXhwci5zZXRGaWx0ZXJzID0gbmV3IHNldEZpbHRlcnMoKTtcblxuZnVuY3Rpb24gdG9rZW5pemUoIHNlbGVjdG9yLCBwYXJzZU9ubHkgKSB7XG5cdHZhciBtYXRjaGVkLCBtYXRjaCwgdG9rZW5zLCB0eXBlLFxuXHRcdHNvRmFyLCBncm91cHMsIHByZUZpbHRlcnMsXG5cdFx0Y2FjaGVkID0gdG9rZW5DYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdO1xuXG5cdGlmICggY2FjaGVkICkge1xuXHRcdHJldHVybiBwYXJzZU9ubHkgPyAwIDogY2FjaGVkLnNsaWNlKCAwICk7XG5cdH1cblxuXHRzb0ZhciA9IHNlbGVjdG9yO1xuXHRncm91cHMgPSBbXTtcblx0cHJlRmlsdGVycyA9IEV4cHIucHJlRmlsdGVyO1xuXG5cdHdoaWxlICggc29GYXIgKSB7XG5cblx0XHQvLyBDb21tYSBhbmQgZmlyc3QgcnVuXG5cdFx0aWYgKCAhbWF0Y2hlZCB8fCAoIG1hdGNoID0gcmNvbW1hLmV4ZWMoIHNvRmFyICkgKSApIHtcblx0XHRcdGlmICggbWF0Y2ggKSB7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgY29uc3VtZSB0cmFpbGluZyBjb21tYXMgYXMgdmFsaWRcblx0XHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbIDAgXS5sZW5ndGggKSB8fCBzb0Zhcjtcblx0XHRcdH1cblx0XHRcdGdyb3Vwcy5wdXNoKCAoIHRva2VucyA9IFtdICkgKTtcblx0XHR9XG5cblx0XHRtYXRjaGVkID0gZmFsc2U7XG5cblx0XHQvLyBDb21iaW5hdG9yc1xuXHRcdGlmICggKCBtYXRjaCA9IHJsZWFkaW5nQ29tYmluYXRvci5leGVjKCBzb0ZhciApICkgKSB7XG5cdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdHRva2Vucy5wdXNoKCB7XG5cdFx0XHRcdHZhbHVlOiBtYXRjaGVkLFxuXG5cdFx0XHRcdC8vIENhc3QgZGVzY2VuZGFudCBjb21iaW5hdG9ycyB0byBzcGFjZVxuXHRcdFx0XHR0eXBlOiBtYXRjaFsgMCBdLnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiBcIiApXG5cdFx0XHR9ICk7XG5cdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdH1cblxuXHRcdC8vIEZpbHRlcnNcblx0XHRmb3IgKCB0eXBlIGluIEV4cHIuZmlsdGVyICkge1xuXHRcdFx0aWYgKCAoIG1hdGNoID0gbWF0Y2hFeHByWyB0eXBlIF0uZXhlYyggc29GYXIgKSApICYmICggIXByZUZpbHRlcnNbIHR5cGUgXSB8fFxuXHRcdFx0XHQoIG1hdGNoID0gcHJlRmlsdGVyc1sgdHlwZSBdKCBtYXRjaCApICkgKSApIHtcblx0XHRcdFx0bWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7XG5cdFx0XHRcdHRva2Vucy5wdXNoKCB7XG5cdFx0XHRcdFx0dmFsdWU6IG1hdGNoZWQsXG5cdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRtYXRjaGVzOiBtYXRjaFxuXHRcdFx0XHR9ICk7XG5cdFx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCAhbWF0Y2hlZCApIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBpbnZhbGlkIGV4Y2Vzc1xuXHQvLyBpZiB3ZSdyZSBqdXN0IHBhcnNpbmdcblx0Ly8gT3RoZXJ3aXNlLCB0aHJvdyBhbiBlcnJvciBvciByZXR1cm4gdG9rZW5zXG5cdGlmICggcGFyc2VPbmx5ICkge1xuXHRcdHJldHVybiBzb0Zhci5sZW5ndGg7XG5cdH1cblxuXHRyZXR1cm4gc29GYXIgP1xuXHRcdGZpbmQuZXJyb3IoIHNlbGVjdG9yICkgOlxuXG5cdFx0Ly8gQ2FjaGUgdGhlIHRva2Vuc1xuXHRcdHRva2VuQ2FjaGUoIHNlbGVjdG9yLCBncm91cHMgKS5zbGljZSggMCApO1xufVxuXG5mdW5jdGlvbiB0b1NlbGVjdG9yKCB0b2tlbnMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdHNlbGVjdG9yID0gXCJcIjtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0c2VsZWN0b3IgKz0gdG9rZW5zWyBpIF0udmFsdWU7XG5cdH1cblx0cmV0dXJuIHNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiBhZGRDb21iaW5hdG9yKCBtYXRjaGVyLCBjb21iaW5hdG9yLCBiYXNlICkge1xuXHR2YXIgZGlyID0gY29tYmluYXRvci5kaXIsXG5cdFx0c2tpcCA9IGNvbWJpbmF0b3IubmV4dCxcblx0XHRrZXkgPSBza2lwIHx8IGRpcixcblx0XHRjaGVja05vbkVsZW1lbnRzID0gYmFzZSAmJiBrZXkgPT09IFwicGFyZW50Tm9kZVwiLFxuXHRcdGRvbmVOYW1lID0gZG9uZSsrO1xuXG5cdHJldHVybiBjb21iaW5hdG9yLmZpcnN0ID9cblxuXHRcdC8vIENoZWNrIGFnYWluc3QgY2xvc2VzdCBhbmNlc3Rvci9wcmVjZWRpbmcgZWxlbWVudFxuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0gOlxuXG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBhbGwgYW5jZXN0b3IvcHJlY2VkaW5nIGVsZW1lbnRzXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciBvbGRDYWNoZSwgb3V0ZXJDYWNoZSxcblx0XHRcdFx0bmV3Q2FjaGUgPSBbIGRpcnJ1bnMsIGRvbmVOYW1lIF07XG5cblx0XHRcdC8vIFdlIGNhbid0IHNldCBhcmJpdHJhcnkgZGF0YSBvbiBYTUwgbm9kZXMsIHNvIHRoZXkgZG9uJ3QgYmVuZWZpdCBmcm9tIGNvbWJpbmF0b3IgY2FjaGluZ1xuXHRcdFx0aWYgKCB4bWwgKSB7XG5cdFx0XHRcdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtWyBkaXIgXSApICkge1xuXHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IGVsZW1bIGV4cGFuZG8gXSB8fCAoIGVsZW1bIGV4cGFuZG8gXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdGlmICggc2tpcCAmJiBub2RlTmFtZSggZWxlbSwgc2tpcCApICkge1xuXHRcdFx0XHRcdFx0XHRlbGVtID0gZWxlbVsgZGlyIF0gfHwgZWxlbTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoICggb2xkQ2FjaGUgPSBvdXRlckNhY2hlWyBrZXkgXSApICYmXG5cdFx0XHRcdFx0XHRcdG9sZENhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgb2xkQ2FjaGVbIDEgXSA9PT0gZG9uZU5hbWUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQXNzaWduIHRvIG5ld0NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0cmV0dXJuICggbmV3Q2FjaGVbIDIgXSA9IG9sZENhY2hlWyAyIF0gKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUmV1c2UgbmV3Y2FjaGUgc28gcmVzdWx0cyBiYWNrLXByb3BhZ2F0ZSB0byBwcmV2aW91cyBlbGVtZW50c1xuXHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlWyBrZXkgXSA9IG5ld0NhY2hlO1xuXG5cdFx0XHRcdFx0XHRcdC8vIEEgbWF0Y2ggbWVhbnMgd2UncmUgZG9uZTsgYSBmYWlsIG1lYW5zIHdlIGhhdmUgdG8ga2VlcCBjaGVja2luZ1xuXHRcdFx0XHRcdFx0XHRpZiAoICggbmV3Q2FjaGVbIDIgXSA9IG1hdGNoZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7XG5cdHJldHVybiBtYXRjaGVycy5sZW5ndGggPiAxID9cblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIGkgPSBtYXRjaGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAhbWF0Y2hlcnNbIGkgXSggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IDpcblx0XHRtYXRjaGVyc1sgMCBdO1xufVxuXG5mdW5jdGlvbiBtdWx0aXBsZUNvbnRleHRzKCBzZWxlY3RvciwgY29udGV4dHMsIHJlc3VsdHMgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSBjb250ZXh0cy5sZW5ndGg7XG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGZpbmQoIHNlbGVjdG9yLCBjb250ZXh0c1sgaSBdLCByZXN1bHRzICk7XG5cdH1cblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbmZ1bmN0aW9uIGNvbmRlbnNlKCB1bm1hdGNoZWQsIG1hcCwgZmlsdGVyLCBjb250ZXh0LCB4bWwgKSB7XG5cdHZhciBlbGVtLFxuXHRcdG5ld1VubWF0Y2hlZCA9IFtdLFxuXHRcdGkgPSAwLFxuXHRcdGxlbiA9IHVubWF0Y2hlZC5sZW5ndGgsXG5cdFx0bWFwcGVkID0gbWFwICE9IG51bGw7XG5cblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0aWYgKCAoIGVsZW0gPSB1bm1hdGNoZWRbIGkgXSApICkge1xuXHRcdFx0aWYgKCAhZmlsdGVyIHx8IGZpbHRlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdG5ld1VubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdGlmICggbWFwcGVkICkge1xuXHRcdFx0XHRcdG1hcC5wdXNoKCBpICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gbmV3VW5tYXRjaGVkO1xufVxuXG5mdW5jdGlvbiBzZXRNYXRjaGVyKCBwcmVGaWx0ZXIsIHNlbGVjdG9yLCBtYXRjaGVyLCBwb3N0RmlsdGVyLCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKSB7XG5cdGlmICggcG9zdEZpbHRlciAmJiAhcG9zdEZpbHRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaWx0ZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmlsdGVyICk7XG5cdH1cblx0aWYgKCBwb3N0RmluZGVyICYmICFwb3N0RmluZGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0cG9zdEZpbmRlciA9IHNldE1hdGNoZXIoIHBvc3RGaW5kZXIsIHBvc3RTZWxlY3RvciApO1xuXHR9XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCByZXN1bHRzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0dmFyIHRlbXAsIGksIGVsZW0sIG1hdGNoZXJPdXQsXG5cdFx0XHRwcmVNYXAgPSBbXSxcblx0XHRcdHBvc3RNYXAgPSBbXSxcblx0XHRcdHByZWV4aXN0aW5nID0gcmVzdWx0cy5sZW5ndGgsXG5cblx0XHRcdC8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250ZXh0XG5cdFx0XHRlbGVtcyA9IHNlZWQgfHxcblx0XHRcdFx0bXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IgfHwgXCIqXCIsXG5cdFx0XHRcdFx0Y29udGV4dC5ub2RlVHlwZSA/IFsgY29udGV4dCBdIDogY29udGV4dCwgW10gKSxcblxuXHRcdFx0Ly8gUHJlZmlsdGVyIHRvIGdldCBtYXRjaGVyIGlucHV0LCBwcmVzZXJ2aW5nIGEgbWFwIGZvciBzZWVkLXJlc3VsdHMgc3luY2hyb25pemF0aW9uXG5cdFx0XHRtYXRjaGVySW4gPSBwcmVGaWx0ZXIgJiYgKCBzZWVkIHx8ICFzZWxlY3RvciApID9cblx0XHRcdFx0Y29uZGVuc2UoIGVsZW1zLCBwcmVNYXAsIHByZUZpbHRlciwgY29udGV4dCwgeG1sICkgOlxuXHRcdFx0XHRlbGVtcztcblxuXHRcdGlmICggbWF0Y2hlciApIHtcblxuXHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIHBvc3RGaW5kZXIsIG9yIGZpbHRlcmVkIHNlZWQsIG9yIG5vbi1zZWVkIHBvc3RGaWx0ZXJcblx0XHRcdC8vIG9yIHByZWV4aXN0aW5nIHJlc3VsdHMsXG5cdFx0XHRtYXRjaGVyT3V0ID0gcG9zdEZpbmRlciB8fCAoIHNlZWQgPyBwcmVGaWx0ZXIgOiBwcmVleGlzdGluZyB8fCBwb3N0RmlsdGVyICkgP1xuXG5cdFx0XHRcdC8vIC4uLmludGVybWVkaWF0ZSBwcm9jZXNzaW5nIGlzIG5lY2Vzc2FyeVxuXHRcdFx0XHRbXSA6XG5cblx0XHRcdFx0Ly8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5XG5cdFx0XHRcdHJlc3VsdHM7XG5cblx0XHRcdC8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzXG5cdFx0XHRtYXRjaGVyKCBtYXRjaGVySW4sIG1hdGNoZXJPdXQsIGNvbnRleHQsIHhtbCApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gbWF0Y2hlckluO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHBvc3RGaWx0ZXJcblx0XHRpZiAoIHBvc3RGaWx0ZXIgKSB7XG5cdFx0XHR0ZW1wID0gY29uZGVuc2UoIG1hdGNoZXJPdXQsIHBvc3RNYXAgKTtcblx0XHRcdHBvc3RGaWx0ZXIoIHRlbXAsIFtdLCBjb250ZXh0LCB4bWwgKTtcblxuXHRcdFx0Ly8gVW4tbWF0Y2ggZmFpbGluZyBlbGVtZW50cyBieSBtb3ZpbmcgdGhlbSBiYWNrIHRvIG1hdGNoZXJJblxuXHRcdFx0aSA9IHRlbXAubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggKCBlbGVtID0gdGVtcFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlck91dFsgcG9zdE1hcFsgaSBdIF0gPSAhKCBtYXRjaGVySW5bIHBvc3RNYXBbIGkgXSBdID0gZWxlbSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHtcblx0XHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXG5cdFx0XHRcdFx0Ly8gR2V0IHRoZSBmaW5hbCBtYXRjaGVyT3V0IGJ5IGNvbmRlbnNpbmcgdGhpcyBpbnRlcm1lZGlhdGUgaW50byBwb3N0RmluZGVyIGNvbnRleHRzXG5cdFx0XHRcdFx0dGVtcCA9IFtdO1xuXHRcdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdGlmICggKCBlbGVtID0gbWF0Y2hlck91dFsgaSBdICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUmVzdG9yZSBtYXRjaGVySW4gc2luY2UgZWxlbSBpcyBub3QgeWV0IGEgZmluYWwgbWF0Y2hcblx0XHRcdFx0XHRcdFx0dGVtcC5wdXNoKCAoIG1hdGNoZXJJblsgaSBdID0gZWxlbSApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsICggbWF0Y2hlck91dCA9IFtdICksIHRlbXAsIHhtbCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gTW92ZSBtYXRjaGVkIGVsZW1lbnRzIGZyb20gc2VlZCB0byByZXN1bHRzIHRvIGtlZXAgdGhlbSBzeW5jaHJvbml6ZWRcblx0XHRcdFx0aSA9IG1hdGNoZXJPdXQubGVuZ3RoO1xuXHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRpZiAoICggZWxlbSA9IG1hdGNoZXJPdXRbIGkgXSApICYmXG5cdFx0XHRcdFx0XHQoIHRlbXAgPSBwb3N0RmluZGVyID8gaW5kZXhPZi5jYWxsKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbIGkgXSApID4gLTEgKSB7XG5cblx0XHRcdFx0XHRcdHNlZWRbIHRlbXAgXSA9ICEoIHJlc3VsdHNbIHRlbXAgXSA9IGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5kZXIgaWYgZGVmaW5lZFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gY29uZGVuc2UoXG5cdFx0XHRcdG1hdGNoZXJPdXQgPT09IHJlc3VsdHMgP1xuXHRcdFx0XHRcdG1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGluZywgbWF0Y2hlck91dC5sZW5ndGggKSA6XG5cdFx0XHRcdFx0bWF0Y2hlck91dFxuXHRcdFx0KTtcblx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgcmVzdWx0cywgbWF0Y2hlck91dCwgeG1sICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBtYXRjaGVyT3V0ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9ICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMgKSB7XG5cdHZhciBjaGVja0NvbnRleHQsIG1hdGNoZXIsIGosXG5cdFx0bGVuID0gdG9rZW5zLmxlbmd0aCxcblx0XHRsZWFkaW5nUmVsYXRpdmUgPSBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIDAgXS50eXBlIF0sXG5cdFx0aW1wbGljaXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlWyBcIiBcIiBdLFxuXHRcdGkgPSBsZWFkaW5nUmVsYXRpdmUgPyAxIDogMCxcblxuXHRcdC8vIFRoZSBmb3VuZGF0aW9uYWwgbWF0Y2hlciBlbnN1cmVzIHRoYXQgZWxlbWVudHMgYXJlIHJlYWNoYWJsZSBmcm9tIHRvcC1sZXZlbCBjb250ZXh0KHMpXG5cdFx0bWF0Y2hDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gY2hlY2tDb250ZXh0O1xuXHRcdH0sIGltcGxpY2l0UmVsYXRpdmUsIHRydWUgKSxcblx0XHRtYXRjaEFueUNvbnRleHQgPSBhZGRDb21iaW5hdG9yKCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBpbmRleE9mLmNhbGwoIGNoZWNrQ29udGV4dCwgZWxlbSApID4gLTE7XG5cdFx0fSwgaW1wbGljaXRSZWxhdGl2ZSwgdHJ1ZSApLFxuXHRcdG1hdGNoZXJzID0gWyBmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0dmFyIHJldCA9ICggIWxlYWRpbmdSZWxhdGl2ZSAmJiAoIHhtbCB8fCBjb250ZXh0ICE9IG91dGVybW9zdENvbnRleHQgKSApIHx8IChcblx0XHRcdFx0KCBjaGVja0NvbnRleHQgPSBjb250ZXh0ICkubm9kZVR5cGUgP1xuXHRcdFx0XHRcdG1hdGNoQ29udGV4dCggZWxlbSwgY29udGV4dCwgeG1sICkgOlxuXHRcdFx0XHRcdG1hdGNoQW55Q29udGV4dCggZWxlbSwgY29udGV4dCwgeG1sICkgKTtcblxuXHRcdFx0Ly8gQXZvaWQgaGFuZ2luZyBvbnRvIGVsZW1lbnRcblx0XHRcdC8vIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9zaXp6bGUvaXNzdWVzLzI5OSlcblx0XHRcdGNoZWNrQ29udGV4dCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH0gXTtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoICggbWF0Y2hlciA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgaSBdLnR5cGUgXSApICkge1xuXHRcdFx0bWF0Y2hlcnMgPSBbIGFkZENvbWJpbmF0b3IoIGVsZW1lbnRNYXRjaGVyKCBtYXRjaGVycyApLCBtYXRjaGVyICkgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlciA9IEV4cHIuZmlsdGVyWyB0b2tlbnNbIGkgXS50eXBlIF0uYXBwbHkoIG51bGwsIHRva2Vuc1sgaSBdLm1hdGNoZXMgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIHNwZWNpYWwgdXBvbiBzZWVpbmcgYSBwb3NpdGlvbmFsIG1hdGNoZXJcblx0XHRcdGlmICggbWF0Y2hlclsgZXhwYW5kbyBdICkge1xuXG5cdFx0XHRcdC8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlmIGFueSkgZm9yIHByb3BlciBoYW5kbGluZ1xuXHRcdFx0XHRqID0gKytpO1xuXHRcdFx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgaiBdLnR5cGUgXSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gc2V0TWF0Y2hlcihcblx0XHRcdFx0XHRpID4gMSAmJiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSxcblx0XHRcdFx0XHRpID4gMSAmJiB0b1NlbGVjdG9yKFxuXG5cdFx0XHRcdFx0XHQvLyBJZiB0aGUgcHJlY2VkaW5nIHRva2VuIHdhcyBhIGRlc2NlbmRhbnQgY29tYmluYXRvciwgaW5zZXJ0IGFuIGltcGxpY2l0IGFueS1lbGVtZW50IGAqYFxuXHRcdFx0XHRcdFx0dG9rZW5zLnNsaWNlKCAwLCBpIC0gMSApXG5cdFx0XHRcdFx0XHRcdC5jb25jYXQoIHsgdmFsdWU6IHRva2Vuc1sgaSAtIDIgXS50eXBlID09PSBcIiBcIiA/IFwiKlwiIDogXCJcIiB9IClcblx0XHRcdFx0XHQpLnJlcGxhY2UoIHJ0cmltQ1NTLCBcIiQxXCIgKSxcblx0XHRcdFx0XHRtYXRjaGVyLFxuXHRcdFx0XHRcdGkgPCBqICYmIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMuc2xpY2UoIGksIGogKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgbWF0Y2hlckZyb21Ub2tlbnMoICggdG9rZW5zID0gdG9rZW5zLnNsaWNlKCBqICkgKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgdG9TZWxlY3RvciggdG9rZW5zIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdG1hdGNoZXJzLnB1c2goIG1hdGNoZXIgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApIHtcblx0dmFyIGJ5U2V0ID0gc2V0TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRzLCBvdXRlcm1vc3QgKSB7XG5cdFx0XHR2YXIgZWxlbSwgaiwgbWF0Y2hlcixcblx0XHRcdFx0bWF0Y2hlZENvdW50ID0gMCxcblx0XHRcdFx0aSA9IFwiMFwiLFxuXHRcdFx0XHR1bm1hdGNoZWQgPSBzZWVkICYmIFtdLFxuXHRcdFx0XHRzZXRNYXRjaGVkID0gW10sXG5cdFx0XHRcdGNvbnRleHRCYWNrdXAgPSBvdXRlcm1vc3RDb250ZXh0LFxuXG5cdFx0XHRcdC8vIFdlIG11c3QgYWx3YXlzIGhhdmUgZWl0aGVyIHNlZWQgZWxlbWVudHMgb3Igb3V0ZXJtb3N0IGNvbnRleHRcblx0XHRcdFx0ZWxlbXMgPSBzZWVkIHx8IGJ5RWxlbWVudCAmJiBFeHByLmZpbmQuVEFHKCBcIipcIiwgb3V0ZXJtb3N0ICksXG5cblx0XHRcdFx0Ly8gVXNlIGludGVnZXIgZGlycnVucyBpZmYgdGhpcyBpcyB0aGUgb3V0ZXJtb3N0IG1hdGNoZXJcblx0XHRcdFx0ZGlycnVuc1VuaXF1ZSA9ICggZGlycnVucyArPSBjb250ZXh0QmFja3VwID09IG51bGwgPyAxIDogTWF0aC5yYW5kb20oKSB8fCAwLjEgKSxcblx0XHRcdFx0bGVuID0gZWxlbXMubGVuZ3RoO1xuXG5cdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dCA9PSBkb2N1bWVudCB8fCBjb250ZXh0IHx8IG91dGVybW9zdDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIGVsZW1lbnRzIHBhc3NpbmcgZWxlbWVudE1hdGNoZXJzIGRpcmVjdGx5IHRvIHJlc3VsdHNcblx0XHRcdC8vIFN1cHBvcnQ6IGlPUyA8PTcgLSA5IG9ubHlcblx0XHRcdC8vIFRvbGVyYXRlIE5vZGVMaXN0IHByb3BlcnRpZXMgKElFOiBcImxlbmd0aFwiOyBTYWZhcmk6IDxudW1iZXI+KSBtYXRjaGluZ1xuXHRcdFx0Ly8gZWxlbWVudHMgYnkgaWQuIChzZWUgdHJhYy0xNDE0Milcblx0XHRcdGZvciAoIDsgaSAhPT0gbGVuICYmICggZWxlbSA9IGVsZW1zWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0XHRcdGlmICggYnlFbGVtZW50ICYmIGVsZW0gKSB7XG5cdFx0XHRcdFx0aiA9IDA7XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdFx0XHQvLyBJRS9FZGdlIHNvbWV0aW1lcyB0aHJvdyBhIFwiUGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvciB3aGVuIHN0cmljdC1jb21wYXJpbmdcblx0XHRcdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0XHRcdGlmICggIWNvbnRleHQgJiYgZWxlbS5vd25lckRvY3VtZW50ICE9IGRvY3VtZW50ICkge1xuXHRcdFx0XHRcdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0XHRcdFx0XHRcdHhtbCA9ICFkb2N1bWVudElzSFRNTDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0d2hpbGUgKCAoIG1hdGNoZXIgPSBlbGVtZW50TWF0Y2hlcnNbIGorKyBdICkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0sIGNvbnRleHQgfHwgZG9jdW1lbnQsIHhtbCApICkge1xuXHRcdFx0XHRcdFx0XHRwdXNoLmNhbGwoIHJlc3VsdHMsIGVsZW0gKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRcdFx0ZGlycnVucyA9IGRpcnJ1bnNVbmlxdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVHJhY2sgdW5tYXRjaGVkIGVsZW1lbnRzIGZvciBzZXQgZmlsdGVyc1xuXHRcdFx0XHRpZiAoIGJ5U2V0ICkge1xuXG5cdFx0XHRcdFx0Ly8gVGhleSB3aWxsIGhhdmUgZ29uZSB0aHJvdWdoIGFsbCBwb3NzaWJsZSBtYXRjaGVyc1xuXHRcdFx0XHRcdGlmICggKCBlbGVtID0gIW1hdGNoZXIgJiYgZWxlbSApICkge1xuXHRcdFx0XHRcdFx0bWF0Y2hlZENvdW50LS07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gTGVuZ3RoZW4gdGhlIGFycmF5IGZvciBldmVyeSBlbGVtZW50LCBtYXRjaGVkIG9yIG5vdFxuXHRcdFx0XHRcdGlmICggc2VlZCApIHtcblx0XHRcdFx0XHRcdHVubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIGBpYCBpcyBub3cgdGhlIGNvdW50IG9mIGVsZW1lbnRzIHZpc2l0ZWQgYWJvdmUsIGFuZCBhZGRpbmcgaXQgdG8gYG1hdGNoZWRDb3VudGBcblx0XHRcdC8vIG1ha2VzIHRoZSBsYXR0ZXIgbm9ubmVnYXRpdmUuXG5cdFx0XHRtYXRjaGVkQ291bnQgKz0gaTtcblxuXHRcdFx0Ly8gQXBwbHkgc2V0IGZpbHRlcnMgdG8gdW5tYXRjaGVkIGVsZW1lbnRzXG5cdFx0XHQvLyBOT1RFOiBUaGlzIGNhbiBiZSBza2lwcGVkIGlmIHRoZXJlIGFyZSBubyB1bm1hdGNoZWQgZWxlbWVudHMgKGkuZS4sIGBtYXRjaGVkQ291bnRgXG5cdFx0XHQvLyBlcXVhbHMgYGlgKSwgdW5sZXNzIHdlIGRpZG4ndCB2aXNpdCBfYW55XyBlbGVtZW50cyBpbiB0aGUgYWJvdmUgbG9vcCBiZWNhdXNlIHdlIGhhdmVcblx0XHRcdC8vIG5vIGVsZW1lbnQgbWF0Y2hlcnMgYW5kIG5vIHNlZWQuXG5cdFx0XHQvLyBJbmNyZW1lbnRpbmcgYW4gaW5pdGlhbGx5LXN0cmluZyBcIjBcIiBgaWAgYWxsb3dzIGBpYCB0byByZW1haW4gYSBzdHJpbmcgb25seSBpbiB0aGF0XG5cdFx0XHQvLyBjYXNlLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBhIFwiMDBcIiBgbWF0Y2hlZENvdW50YCB0aGF0IGRpZmZlcnMgZnJvbSBgaWAgYnV0IGlzIGFsc29cblx0XHRcdC8vIG51bWVyaWNhbGx5IHplcm8uXG5cdFx0XHRpZiAoIGJ5U2V0ICYmIGkgIT09IG1hdGNoZWRDb3VudCApIHtcblx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdHdoaWxlICggKCBtYXRjaGVyID0gc2V0TWF0Y2hlcnNbIGorKyBdICkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlciggdW5tYXRjaGVkLCBzZXRNYXRjaGVkLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICggc2VlZCApIHtcblxuXHRcdFx0XHRcdC8vIFJlaW50ZWdyYXRlIGVsZW1lbnQgbWF0Y2hlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHNvcnRpbmdcblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRDb3VudCA+IDAgKSB7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCAhKCB1bm1hdGNoZWRbIGkgXSB8fCBzZXRNYXRjaGVkWyBpIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRNYXRjaGVkWyBpIF0gPSBwb3AuY2FsbCggcmVzdWx0cyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gRGlzY2FyZCBpbmRleCBwbGFjZWhvbGRlciB2YWx1ZXMgdG8gZ2V0IG9ubHkgYWN0dWFsIG1hdGNoZXNcblx0XHRcdFx0XHRzZXRNYXRjaGVkID0gY29uZGVuc2UoIHNldE1hdGNoZWQgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFkZCBtYXRjaGVzIHRvIHJlc3VsdHNcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2V0TWF0Y2hlZCApO1xuXG5cdFx0XHRcdC8vIFNlZWRsZXNzIHNldCBtYXRjaGVzIHN1Y2NlZWRpbmcgbXVsdGlwbGUgc3VjY2Vzc2Z1bCBtYXRjaGVycyBzdGlwdWxhdGUgc29ydGluZ1xuXHRcdFx0XHRpZiAoIG91dGVybW9zdCAmJiAhc2VlZCAmJiBzZXRNYXRjaGVkLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0XHQoIG1hdGNoZWRDb3VudCArIHNldE1hdGNoZXJzLmxlbmd0aCApID4gMSApIHtcblxuXHRcdFx0XHRcdGpRdWVyeS51bmlxdWVTb3J0KCByZXN1bHRzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gT3ZlcnJpZGUgbWFuaXB1bGF0aW9uIG9mIGdsb2JhbHMgYnkgbmVzdGVkIG1hdGNoZXJzXG5cdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblx0XHRcdFx0ZGlycnVucyA9IGRpcnJ1bnNVbmlxdWU7XG5cdFx0XHRcdG91dGVybW9zdENvbnRleHQgPSBjb250ZXh0QmFja3VwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdW5tYXRjaGVkO1xuXHRcdH07XG5cblx0cmV0dXJuIGJ5U2V0ID9cblx0XHRtYXJrRnVuY3Rpb24oIHN1cGVyTWF0Y2hlciApIDpcblx0XHRzdXBlck1hdGNoZXI7XG59XG5cbmZ1bmN0aW9uIGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHtcblx0dmFyIGksXG5cdFx0c2V0TWF0Y2hlcnMgPSBbXSxcblx0XHRlbGVtZW50TWF0Y2hlcnMgPSBbXSxcblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlWyBzZWxlY3RvciArIFwiIFwiIF07XG5cblx0aWYgKCAhY2FjaGVkICkge1xuXG5cdFx0Ly8gR2VuZXJhdGUgYSBmdW5jdGlvbiBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZWFjaCBlbGVtZW50XG5cdFx0aWYgKCAhbWF0Y2ggKSB7XG5cdFx0XHRtYXRjaCA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdH1cblx0XHRpID0gbWF0Y2gubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0Y2FjaGVkID0gbWF0Y2hlckZyb21Ub2tlbnMoIG1hdGNoWyBpIF0gKTtcblx0XHRcdGlmICggY2FjaGVkWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdHNldE1hdGNoZXJzLnB1c2goIGNhY2hlZCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbWVudE1hdGNoZXJzLnB1c2goIGNhY2hlZCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhY2hlIHRoZSBjb21waWxlZCBmdW5jdGlvblxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGUoIHNlbGVjdG9yLFxuXHRcdFx0bWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzICkgKTtcblxuXHRcdC8vIFNhdmUgc2VsZWN0b3IgYW5kIHRva2VuaXphdGlvblxuXHRcdGNhY2hlZC5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHR9XG5cdHJldHVybiBjYWNoZWQ7XG59XG5cbi8qKlxuICogQSBsb3ctbGV2ZWwgc2VsZWN0aW9uIGZ1bmN0aW9uIHRoYXQgd29ya3Mgd2l0aCBqUXVlcnkncyBjb21waWxlZFxuICogIHNlbGVjdG9yIGZ1bmN0aW9uc1xuICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IHNlbGVjdG9yIEEgc2VsZWN0b3Igb3IgYSBwcmUtY29tcGlsZWRcbiAqICBzZWxlY3RvciBmdW5jdGlvbiBidWlsdCB3aXRoIGpRdWVyeSBzZWxlY3RvciBjb21waWxlXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGNvbnRleHRcbiAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHRzXVxuICogQHBhcmFtIHtBcnJheX0gW3NlZWRdIEEgc2V0IG9mIGVsZW1lbnRzIHRvIG1hdGNoIGFnYWluc3RcbiAqL1xuZnVuY3Rpb24gc2VsZWN0KCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHtcblx0dmFyIGksIHRva2VucywgdG9rZW4sIHR5cGUsIGZpbmQsXG5cdFx0Y29tcGlsZWQgPSB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiAmJiBzZWxlY3Rvcixcblx0XHRtYXRjaCA9ICFzZWVkICYmIHRva2VuaXplKCAoIHNlbGVjdG9yID0gY29tcGlsZWQuc2VsZWN0b3IgfHwgc2VsZWN0b3IgKSApO1xuXG5cdHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuXG5cdC8vIFRyeSB0byBtaW5pbWl6ZSBvcGVyYXRpb25zIGlmIHRoZXJlIGlzIG9ubHkgb25lIHNlbGVjdG9yIGluIHRoZSBsaXN0IGFuZCBubyBzZWVkXG5cdC8vICh0aGUgbGF0dGVyIG9mIHdoaWNoIGd1YXJhbnRlZXMgdXMgY29udGV4dClcblx0aWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7XG5cblx0XHQvLyBSZWR1Y2UgY29udGV4dCBpZiB0aGUgbGVhZGluZyBjb21wb3VuZCBzZWxlY3RvciBpcyBhbiBJRFxuXHRcdHRva2VucyA9IG1hdGNoWyAwIF0gPSBtYXRjaFsgMCBdLnNsaWNlKCAwICk7XG5cdFx0aWYgKCB0b2tlbnMubGVuZ3RoID4gMiAmJiAoIHRva2VuID0gdG9rZW5zWyAwIF0gKS50eXBlID09PSBcIklEXCIgJiZcblx0XHRcdFx0Y29udGV4dC5ub2RlVHlwZSA9PT0gOSAmJiBkb2N1bWVudElzSFRNTCAmJiBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIDEgXS50eXBlIF0gKSB7XG5cblx0XHRcdGNvbnRleHQgPSAoIEV4cHIuZmluZC5JRChcblx0XHRcdFx0dG9rZW4ubWF0Y2hlc1sgMCBdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICksXG5cdFx0XHRcdGNvbnRleHRcblx0XHRcdCkgfHwgW10gKVsgMCBdO1xuXHRcdFx0aWYgKCAhY29udGV4dCApIHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cblx0XHRcdC8vIFByZWNvbXBpbGVkIG1hdGNoZXJzIHdpbGwgc3RpbGwgdmVyaWZ5IGFuY2VzdHJ5LCBzbyBzdGVwIHVwIGEgbGV2ZWxcblx0XHRcdH0gZWxzZSBpZiAoIGNvbXBpbGVkICkge1xuXHRcdFx0XHRjb250ZXh0ID0gY29udGV4dC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRzZWxlY3RvciA9IHNlbGVjdG9yLnNsaWNlKCB0b2tlbnMuc2hpZnQoKS52YWx1ZS5sZW5ndGggKTtcblx0XHR9XG5cblx0XHQvLyBGZXRjaCBhIHNlZWQgc2V0IGZvciByaWdodC10by1sZWZ0IG1hdGNoaW5nXG5cdFx0aSA9IG1hdGNoRXhwci5uZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSA/IDAgOiB0b2tlbnMubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG9rZW4gPSB0b2tlbnNbIGkgXTtcblxuXHRcdFx0Ly8gQWJvcnQgaWYgd2UgaGl0IGEgY29tYmluYXRvclxuXHRcdFx0aWYgKCBFeHByLnJlbGF0aXZlWyAoIHR5cGUgPSB0b2tlbi50eXBlICkgXSApIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRpZiAoICggZmluZCA9IEV4cHIuZmluZFsgdHlwZSBdICkgKSB7XG5cblx0XHRcdFx0Ly8gU2VhcmNoLCBleHBhbmRpbmcgY29udGV4dCBmb3IgbGVhZGluZyBzaWJsaW5nIGNvbWJpbmF0b3JzXG5cdFx0XHRcdGlmICggKCBzZWVkID0gZmluZChcblx0XHRcdFx0XHR0b2tlbi5tYXRjaGVzWyAwIF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKSxcblx0XHRcdFx0XHRyc2libGluZy50ZXN0KCB0b2tlbnNbIDAgXS50eXBlICkgJiZcblx0XHRcdFx0XHRcdHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBjb250ZXh0XG5cdFx0XHRcdCkgKSApIHtcblxuXHRcdFx0XHRcdC8vIElmIHNlZWQgaXMgZW1wdHkgb3Igbm8gdG9rZW5zIHJlbWFpbiwgd2UgY2FuIHJldHVybiBlYXJseVxuXHRcdFx0XHRcdHRva2Vucy5zcGxpY2UoIGksIDEgKTtcblx0XHRcdFx0XHRzZWxlY3RvciA9IHNlZWQubGVuZ3RoICYmIHRvU2VsZWN0b3IoIHRva2VucyApO1xuXHRcdFx0XHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2VlZCApO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBDb21waWxlIGFuZCBleGVjdXRlIGEgZmlsdGVyaW5nIGZ1bmN0aW9uIGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcblx0Ly8gUHJvdmlkZSBgbWF0Y2hgIHRvIGF2b2lkIHJldG9rZW5pemF0aW9uIGlmIHdlIG1vZGlmaWVkIHRoZSBzZWxlY3RvciBhYm92ZVxuXHQoIGNvbXBpbGVkIHx8IGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCApICkoXG5cdFx0c2VlZCxcblx0XHRjb250ZXh0LFxuXHRcdCFkb2N1bWVudElzSFRNTCxcblx0XHRyZXN1bHRzLFxuXHRcdCFjb250ZXh0IHx8IHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8IGNvbnRleHRcblx0KTtcblx0cmV0dXJuIHJlc3VsdHM7XG59XG5cbi8vIE9uZS10aW1lIGFzc2lnbm1lbnRzXG5cbi8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgLSA0LjErXG4vLyBTb3J0IHN0YWJpbGl0eVxuc3VwcG9ydC5zb3J0U3RhYmxlID0gZXhwYW5kby5zcGxpdCggXCJcIiApLnNvcnQoIHNvcnRPcmRlciApLmpvaW4oIFwiXCIgKSA9PT0gZXhwYW5kbztcblxuLy8gSW5pdGlhbGl6ZSBhZ2FpbnN0IHRoZSBkZWZhdWx0IGRvY3VtZW50XG5zZXREb2N1bWVudCgpO1xuXG4vLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIC0gNC4xK1xuLy8gRGV0YWNoZWQgbm9kZXMgY29uZm91bmRpbmdseSBmb2xsb3cgKmVhY2ggb3RoZXIqXG5zdXBwb3J0LnNvcnREZXRhY2hlZCA9IGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdC8vIFNob3VsZCByZXR1cm4gMSwgYnV0IHJldHVybnMgNCAoZm9sbG93aW5nKVxuXHRyZXR1cm4gZWwuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZmllbGRzZXRcIiApICkgJiAxO1xufSApO1xuXG5qUXVlcnkuZmluZCA9IGZpbmQ7XG5cbi8vIERlcHJlY2F0ZWRcbmpRdWVyeS5leHByWyBcIjpcIiBdID0galF1ZXJ5LmV4cHIucHNldWRvcztcbmpRdWVyeS51bmlxdWUgPSBqUXVlcnkudW5pcXVlU29ydDtcblxuLy8gVGhlc2UgaGF2ZSBhbHdheXMgYmVlbiBwcml2YXRlLCBidXQgdGhleSB1c2VkIHRvIGJlIGRvY3VtZW50ZWQgYXMgcGFydCBvZlxuLy8gU2l6emxlIHNvIGxldCdzIG1haW50YWluIHRoZW0gZm9yIG5vdyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcHVycG9zZXMuXG5maW5kLmNvbXBpbGUgPSBjb21waWxlO1xuZmluZC5zZWxlY3QgPSBzZWxlY3Q7XG5maW5kLnNldERvY3VtZW50ID0gc2V0RG9jdW1lbnQ7XG5maW5kLnRva2VuaXplID0gdG9rZW5pemU7XG5cbmZpbmQuZXNjYXBlID0galF1ZXJ5LmVzY2FwZVNlbGVjdG9yO1xuZmluZC5nZXRUZXh0ID0galF1ZXJ5LnRleHQ7XG5maW5kLmlzWE1MID0galF1ZXJ5LmlzWE1MRG9jO1xuZmluZC5zZWxlY3RvcnMgPSBqUXVlcnkuZXhwcjtcbmZpbmQuc3VwcG9ydCA9IGpRdWVyeS5zdXBwb3J0O1xuZmluZC51bmlxdWVTb3J0ID0galF1ZXJ5LnVuaXF1ZVNvcnQ7XG5cblx0LyogZXNsaW50LWVuYWJsZSAqL1xuXG59ICkoKTtcblxuXG52YXIgZGlyID0gZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7XG5cdHZhciBtYXRjaGVkID0gW10sXG5cdFx0dHJ1bmNhdGUgPSB1bnRpbCAhPT0gdW5kZWZpbmVkO1xuXG5cdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSAmJiBlbGVtLm5vZGVUeXBlICE9PSA5ICkge1xuXHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdGlmICggdHJ1bmNhdGUgJiYgalF1ZXJ5KCBlbGVtICkuaXMoIHVudGlsICkgKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0bWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBtYXRjaGVkO1xufTtcblxuXG52YXIgc2libGluZ3MgPSBmdW5jdGlvbiggbiwgZWxlbSApIHtcblx0dmFyIG1hdGNoZWQgPSBbXTtcblxuXHRmb3IgKCA7IG47IG4gPSBuLm5leHRTaWJsaW5nICkge1xuXHRcdGlmICggbi5ub2RlVHlwZSA9PT0gMSAmJiBuICE9PSBlbGVtICkge1xuXHRcdFx0bWF0Y2hlZC5wdXNoKCBuICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG1hdGNoZWQ7XG59O1xuXG5cbnZhciBybmVlZHNDb250ZXh0ID0galF1ZXJ5LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0O1xuXG52YXIgcnNpbmdsZVRhZyA9ICggL148KFthLXpdW15cXC9cXDA+OlxceDIwXFx0XFxyXFxuXFxmXSopW1xceDIwXFx0XFxyXFxuXFxmXSpcXC8/Pig/OjxcXC9cXDE+fCkkL2kgKTtcblxuXG5cbi8vIEltcGxlbWVudCB0aGUgaWRlbnRpY2FsIGZ1bmN0aW9uYWxpdHkgZm9yIGZpbHRlciBhbmQgbm90XG5mdW5jdGlvbiB3aW5ub3coIGVsZW1lbnRzLCBxdWFsaWZpZXIsIG5vdCApIHtcblx0aWYgKCBpc0Z1bmN0aW9uKCBxdWFsaWZpZXIgKSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdyZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiAhIXF1YWxpZmllci5jYWxsKCBlbGVtLCBpLCBlbGVtICkgIT09IG5vdDtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBTaW5nbGUgZWxlbWVudFxuXHRpZiAoIHF1YWxpZmllci5ub2RlVHlwZSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdyZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiAoIGVsZW0gPT09IHF1YWxpZmllciApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gQXJyYXlsaWtlIG9mIGVsZW1lbnRzIChqUXVlcnksIGFyZ3VtZW50cywgQXJyYXkpXG5cdGlmICggdHlwZW9mIHF1YWxpZmllciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdyZXAoIGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiAoIGluZGV4T2YuY2FsbCggcXVhbGlmaWVyLCBlbGVtICkgPiAtMSApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gRmlsdGVyZWQgZGlyZWN0bHkgZm9yIGJvdGggc2ltcGxlIGFuZCBjb21wbGV4IHNlbGVjdG9yc1xuXHRyZXR1cm4galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cywgbm90ICk7XG59XG5cbmpRdWVyeS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgZWxlbXMsIG5vdCApIHtcblx0dmFyIGVsZW0gPSBlbGVtc1sgMCBdO1xuXG5cdGlmICggbm90ICkge1xuXHRcdGV4cHIgPSBcIjpub3QoXCIgKyBleHByICsgXCIpXCI7XG5cdH1cblxuXHRpZiAoIGVsZW1zLmxlbmd0aCA9PT0gMSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdHJldHVybiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGVsZW0sIGV4cHIgKSA/IFsgZWxlbSBdIDogW107XG5cdH1cblxuXHRyZXR1cm4galF1ZXJ5LmZpbmQubWF0Y2hlcyggZXhwciwgalF1ZXJ5LmdyZXAoIGVsZW1zLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZWxlbS5ub2RlVHlwZSA9PT0gMTtcblx0fSApICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgaSwgcmV0LFxuXHRcdFx0bGVuID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRzZWxmID0gdGhpcztcblxuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkoIHNlbGVjdG9yICkuZmlsdGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggc2VsZlsgaSBdLCB0aGlzICkgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gKSApO1xuXHRcdH1cblxuXHRcdHJldCA9IHRoaXMucHVzaFN0YWNrKCBbXSApO1xuXG5cdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGpRdWVyeS5maW5kKCBzZWxlY3Rvciwgc2VsZlsgaSBdLCByZXQgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbGVuID4gMSA/IGpRdWVyeS51bmlxdWVTb3J0KCByZXQgKSA6IHJldDtcblx0fSxcblx0ZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3coIHRoaXMsIHNlbGVjdG9yIHx8IFtdLCBmYWxzZSApICk7XG5cdH0sXG5cdG5vdDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggd2lubm93KCB0aGlzLCBzZWxlY3RvciB8fCBbXSwgdHJ1ZSApICk7XG5cdH0sXG5cdGlzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuICEhd2lubm93KFxuXHRcdFx0dGhpcyxcblxuXHRcdFx0Ly8gSWYgdGhpcyBpcyBhIHBvc2l0aW9uYWwvcmVsYXRpdmUgc2VsZWN0b3IsIGNoZWNrIG1lbWJlcnNoaXAgaW4gdGhlIHJldHVybmVkIHNldFxuXHRcdFx0Ly8gc28gJChcInA6Zmlyc3RcIikuaXMoXCJwOmxhc3RcIikgd29uJ3QgcmV0dXJuIHRydWUgZm9yIGEgZG9jIHdpdGggdHdvIFwicFwiLlxuXHRcdFx0dHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICYmIHJuZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSA/XG5cdFx0XHRcdGpRdWVyeSggc2VsZWN0b3IgKSA6XG5cdFx0XHRcdHNlbGVjdG9yIHx8IFtdLFxuXHRcdFx0ZmFsc2Vcblx0XHQpLmxlbmd0aDtcblx0fVxufSApO1xuXG5cbi8vIEluaXRpYWxpemUgYSBqUXVlcnkgb2JqZWN0XG5cblxuLy8gQSBjZW50cmFsIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBqUXVlcnkoZG9jdW1lbnQpXG52YXIgcm9vdGpRdWVyeSxcblxuXHQvLyBBIHNpbXBsZSB3YXkgdG8gY2hlY2sgZm9yIEhUTUwgc3RyaW5nc1xuXHQvLyBQcmlvcml0aXplICNpZCBvdmVyIDx0YWc+IHRvIGF2b2lkIFhTUyB2aWEgbG9jYXRpb24uaGFzaCAodHJhYy05NTIxKVxuXHQvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAodHJhYy0xMTI5MDogbXVzdCBzdGFydCB3aXRoIDwpXG5cdC8vIFNob3J0Y3V0IHNpbXBsZSAjaWQgY2FzZSBmb3Igc3BlZWRcblx0cnF1aWNrRXhwciA9IC9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKnwjKFtcXHctXSspKSQvLFxuXG5cdGluaXQgPSBqUXVlcnkuZm4uaW5pdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCwgcm9vdCApIHtcblx0XHR2YXIgbWF0Y2gsIGVsZW07XG5cblx0XHQvLyBIQU5ETEU6ICQoXCJcIiksICQobnVsbCksICQodW5kZWZpbmVkKSwgJChmYWxzZSlcblx0XHRpZiAoICFzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIE1ldGhvZCBpbml0KCkgYWNjZXB0cyBhbiBhbHRlcm5hdGUgcm9vdGpRdWVyeVxuXHRcdC8vIHNvIG1pZ3JhdGUgY2FuIHN1cHBvcnQgalF1ZXJ5LnN1YiAoZ2gtMjEwMSlcblx0XHRyb290ID0gcm9vdCB8fCByb290alF1ZXJ5O1xuXG5cdFx0Ly8gSGFuZGxlIEhUTUwgc3RyaW5nc1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0aWYgKCBzZWxlY3RvclsgMCBdID09PSBcIjxcIiAmJlxuXHRcdFx0XHRzZWxlY3Rvclsgc2VsZWN0b3IubGVuZ3RoIC0gMSBdID09PSBcIj5cIiAmJlxuXHRcdFx0XHRzZWxlY3Rvci5sZW5ndGggPj0gMyApIHtcblxuXHRcdFx0XHQvLyBBc3N1bWUgdGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+IGFyZSBIVE1MIGFuZCBza2lwIHRoZSByZWdleCBjaGVja1xuXHRcdFx0XHRtYXRjaCA9IFsgbnVsbCwgc2VsZWN0b3IsIG51bGwgXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkIGZvciAjaWRcblx0XHRcdGlmICggbWF0Y2ggJiYgKCBtYXRjaFsgMSBdIHx8ICFjb250ZXh0ICkgKSB7XG5cblx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwpIC0+ICQoYXJyYXkpXG5cdFx0XHRcdGlmICggbWF0Y2hbIDEgXSApIHtcblx0XHRcdFx0XHRjb250ZXh0ID0gY29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNvbnRleHRbIDAgXSA6IGNvbnRleHQ7XG5cblx0XHRcdFx0XHQvLyBPcHRpb24gdG8gcnVuIHNjcmlwdHMgaXMgdHJ1ZSBmb3IgYmFjay1jb21wYXRcblx0XHRcdFx0XHQvLyBJbnRlbnRpb25hbGx5IGxldCB0aGUgZXJyb3IgYmUgdGhyb3duIGlmIHBhcnNlSFRNTCBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcywgalF1ZXJ5LnBhcnNlSFRNTChcblx0XHRcdFx0XHRcdG1hdGNoWyAxIF0sXG5cdFx0XHRcdFx0XHRjb250ZXh0ICYmIGNvbnRleHQubm9kZVR5cGUgPyBjb250ZXh0Lm93bmVyRG9jdW1lbnQgfHwgY29udGV4dCA6IGRvY3VtZW50LFxuXHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdCkgKTtcblxuXHRcdFx0XHRcdC8vIEhBTkRMRTogJChodG1sLCBwcm9wcylcblx0XHRcdFx0XHRpZiAoIHJzaW5nbGVUYWcudGVzdCggbWF0Y2hbIDEgXSApICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb250ZXh0ICkgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCBtYXRjaCBpbiBjb250ZXh0ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFByb3BlcnRpZXMgb2YgY29udGV4dCBhcmUgY2FsbGVkIGFzIG1ldGhvZHMgaWYgcG9zc2libGVcblx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCB0aGlzWyBtYXRjaCBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpc1sgbWF0Y2ggXSggY29udGV4dFsgbWF0Y2ggXSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIC4uLmFuZCBvdGhlcndpc2Ugc2V0IGFzIGF0dHJpYnV0ZXNcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmF0dHIoIG1hdGNoLCBjb250ZXh0WyBtYXRjaCBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoI2lkKVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggbWF0Y2hbIDIgXSApO1xuXG5cdFx0XHRcdFx0aWYgKCBlbGVtICkge1xuXG5cdFx0XHRcdFx0XHQvLyBJbmplY3QgdGhlIGVsZW1lbnQgZGlyZWN0bHkgaW50byB0aGUgalF1ZXJ5IG9iamVjdFxuXHRcdFx0XHRcdFx0dGhpc1sgMCBdID0gZWxlbTtcblx0XHRcdFx0XHRcdHRoaXMubGVuZ3RoID0gMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsICQoLi4uKSlcblx0XHRcdH0gZWxzZSBpZiAoICFjb250ZXh0IHx8IGNvbnRleHQuanF1ZXJ5ICkge1xuXHRcdFx0XHRyZXR1cm4gKCBjb250ZXh0IHx8IHJvb3QgKS5maW5kKCBzZWxlY3RvciApO1xuXG5cdFx0XHQvLyBIQU5ETEU6ICQoZXhwciwgY29udGV4dClcblx0XHRcdC8vICh3aGljaCBpcyBqdXN0IGVxdWl2YWxlbnQgdG86ICQoY29udGV4dCkuZmluZChleHByKVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuY29uc3RydWN0b3IoIGNvbnRleHQgKS5maW5kKCBzZWxlY3RvciApO1xuXHRcdFx0fVxuXG5cdFx0Ly8gSEFORExFOiAkKERPTUVsZW1lbnQpXG5cdFx0fSBlbHNlIGlmICggc2VsZWN0b3Iubm9kZVR5cGUgKSB7XG5cdFx0XHR0aGlzWyAwIF0gPSBzZWxlY3Rvcjtcblx0XHRcdHRoaXMubGVuZ3RoID0gMTtcblx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0Ly8gSEFORExFOiAkKGZ1bmN0aW9uKVxuXHRcdC8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeVxuXHRcdH0gZWxzZSBpZiAoIGlzRnVuY3Rpb24oIHNlbGVjdG9yICkgKSB7XG5cdFx0XHRyZXR1cm4gcm9vdC5yZWFkeSAhPT0gdW5kZWZpbmVkID9cblx0XHRcdFx0cm9vdC5yZWFkeSggc2VsZWN0b3IgKSA6XG5cblx0XHRcdFx0Ly8gRXhlY3V0ZSBpbW1lZGlhdGVseSBpZiByZWFkeSBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRzZWxlY3RvciggalF1ZXJ5ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpRdWVyeS5tYWtlQXJyYXkoIHNlbGVjdG9yLCB0aGlzICk7XG5cdH07XG5cbi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb25cbmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuO1xuXG4vLyBJbml0aWFsaXplIGNlbnRyYWwgcmVmZXJlbmNlXG5yb290alF1ZXJ5ID0galF1ZXJ5KCBkb2N1bWVudCApO1xuXG5cbnZhciBycGFyZW50c3ByZXYgPSAvXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxcblxuXHQvLyBNZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldFxuXHRndWFyYW50ZWVkVW5pcXVlID0ge1xuXHRcdGNoaWxkcmVuOiB0cnVlLFxuXHRcdGNvbnRlbnRzOiB0cnVlLFxuXHRcdG5leHQ6IHRydWUsXG5cdFx0cHJldjogdHJ1ZVxuXHR9O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGhhczogZnVuY3Rpb24oIHRhcmdldCApIHtcblx0XHR2YXIgdGFyZ2V0cyA9IGpRdWVyeSggdGFyZ2V0LCB0aGlzICksXG5cdFx0XHRsID0gdGFyZ2V0cy5sZW5ndGg7XG5cblx0XHRyZXR1cm4gdGhpcy5maWx0ZXIoIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggdGhpcywgdGFyZ2V0c1sgaSBdICkgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0Y2xvc2VzdDogZnVuY3Rpb24oIHNlbGVjdG9ycywgY29udGV4dCApIHtcblx0XHR2YXIgY3VyLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRtYXRjaGVkID0gW10sXG5cdFx0XHR0YXJnZXRzID0gdHlwZW9mIHNlbGVjdG9ycyAhPT0gXCJzdHJpbmdcIiAmJiBqUXVlcnkoIHNlbGVjdG9ycyApO1xuXG5cdFx0Ly8gUG9zaXRpb25hbCBzZWxlY3RvcnMgbmV2ZXIgbWF0Y2gsIHNpbmNlIHRoZXJlJ3Mgbm8gX3NlbGVjdGlvbl8gY29udGV4dFxuXHRcdGlmICggIXJuZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3JzICkgKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZvciAoIGN1ciA9IHRoaXNbIGkgXTsgY3VyICYmIGN1ciAhPT0gY29udGV4dDsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cblx0XHRcdFx0XHQvLyBBbHdheXMgc2tpcCBkb2N1bWVudCBmcmFnbWVudHNcblx0XHRcdFx0XHRpZiAoIGN1ci5ub2RlVHlwZSA8IDExICYmICggdGFyZ2V0cyA/XG5cdFx0XHRcdFx0XHR0YXJnZXRzLmluZGV4KCBjdXIgKSA+IC0xIDpcblxuXHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcGFzcyBub24tZWxlbWVudHMgdG8galF1ZXJ5I2ZpbmRcblx0XHRcdFx0XHRcdGN1ci5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGN1ciwgc2VsZWN0b3JzICkgKSApIHtcblxuXHRcdFx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZVNvcnQoIG1hdGNoZWQgKSA6IG1hdGNoZWQgKTtcblx0fSxcblxuXHQvLyBEZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgd2l0aGluIHRoZSBzZXRcblx0aW5kZXg6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gTm8gYXJndW1lbnQsIHJldHVybiBpbmRleCBpbiBwYXJlbnRcblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuICggdGhpc1sgMCBdICYmIHRoaXNbIDAgXS5wYXJlbnROb2RlICkgPyB0aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aCA6IC0xO1xuXHRcdH1cblxuXHRcdC8vIEluZGV4IGluIHNlbGVjdG9yXG5cdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBpbmRleE9mLmNhbGwoIGpRdWVyeSggZWxlbSApLCB0aGlzWyAwIF0gKTtcblx0XHR9XG5cblx0XHQvLyBMb2NhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGVsZW1lbnRcblx0XHRyZXR1cm4gaW5kZXhPZi5jYWxsKCB0aGlzLFxuXG5cdFx0XHQvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWRcblx0XHRcdGVsZW0uanF1ZXJ5ID8gZWxlbVsgMCBdIDogZWxlbVxuXHRcdCk7XG5cdH0sXG5cblx0YWRkOiBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKFxuXHRcdFx0alF1ZXJ5LnVuaXF1ZVNvcnQoXG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcy5nZXQoKSwgalF1ZXJ5KCBzZWxlY3RvciwgY29udGV4dCApIClcblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdGFkZEJhY2s6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgP1xuXHRcdFx0dGhpcy5wcmV2T2JqZWN0IDogdGhpcy5wcmV2T2JqZWN0LmZpbHRlciggc2VsZWN0b3IgKVxuXHRcdCk7XG5cdH1cbn0gKTtcblxuZnVuY3Rpb24gc2libGluZyggY3VyLCBkaXIgKSB7XG5cdHdoaWxlICggKCBjdXIgPSBjdXJbIGRpciBdICkgJiYgY3VyLm5vZGVUeXBlICE9PSAxICkge31cblx0cmV0dXJuIGN1cjtcbn1cblxualF1ZXJ5LmVhY2goIHtcblx0cGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdHJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7XG5cdH0sXG5cdHBhcmVudHM6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiICk7XG5cdH0sXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIF9pLCB1bnRpbCApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInBhcmVudE5vZGVcIiwgdW50aWwgKTtcblx0fSxcblx0bmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmcoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIgKTtcblx0fSxcblx0cHJldkFsbDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0VW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJuZXh0U2libGluZ1wiLCB1bnRpbCApO1xuXHR9LFxuXHRwcmV2VW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiwgdW50aWwgKTtcblx0fSxcblx0c2libGluZ3M6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5ncyggKCBlbGVtLnBhcmVudE5vZGUgfHwge30gKS5maXJzdENoaWxkLCBlbGVtICk7XG5cdH0sXG5cdGNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZ3MoIGVsZW0uZmlyc3RDaGlsZCApO1xuXHR9LFxuXHRjb250ZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0aWYgKCBlbGVtLmNvbnRlbnREb2N1bWVudCAhPSBudWxsICYmXG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExK1xuXHRcdFx0Ly8gPG9iamVjdD4gZWxlbWVudHMgd2l0aCBubyBgZGF0YWAgYXR0cmlidXRlIGhhcyBhbiBvYmplY3Rcblx0XHRcdC8vIGBjb250ZW50RG9jdW1lbnRgIHdpdGggYSBgbnVsbGAgcHJvdG90eXBlLlxuXHRcdFx0Z2V0UHJvdG8oIGVsZW0uY29udGVudERvY3VtZW50ICkgKSB7XG5cblx0XHRcdHJldHVybiBlbGVtLmNvbnRlbnREb2N1bWVudDtcblx0XHR9XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seSwgaU9TIDcgb25seSwgQW5kcm9pZCBCcm93c2VyIDw9NC4zIG9ubHlcblx0XHQvLyBUcmVhdCB0aGUgdGVtcGxhdGUgZWxlbWVudCBhcyBhIHJlZ3VsYXIgb25lIGluIGJyb3dzZXJzIHRoYXRcblx0XHQvLyBkb24ndCBzdXBwb3J0IGl0LlxuXHRcdGlmICggbm9kZU5hbWUoIGVsZW0sIFwidGVtcGxhdGVcIiApICkge1xuXHRcdFx0ZWxlbSA9IGVsZW0uY29udGVudCB8fCBlbGVtO1xuXHRcdH1cblxuXHRcdHJldHVybiBqUXVlcnkubWVyZ2UoIFtdLCBlbGVtLmNoaWxkTm9kZXMgKTtcblx0fVxufSwgZnVuY3Rpb24oIG5hbWUsIGZuICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCB1bnRpbCwgc2VsZWN0b3IgKSB7XG5cdFx0dmFyIG1hdGNoZWQgPSBqUXVlcnkubWFwKCB0aGlzLCBmbiwgdW50aWwgKTtcblxuXHRcdGlmICggbmFtZS5zbGljZSggLTUgKSAhPT0gXCJVbnRpbFwiICkge1xuXHRcdFx0c2VsZWN0b3IgPSB1bnRpbDtcblx0XHR9XG5cblx0XHRpZiAoIHNlbGVjdG9yICYmIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdG1hdGNoZWQgPSBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgbWF0Y2hlZCApO1xuXHRcdH1cblxuXHRcdGlmICggdGhpcy5sZW5ndGggPiAxICkge1xuXG5cdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlc1xuXHRcdFx0aWYgKCAhZ3VhcmFudGVlZFVuaXF1ZVsgbmFtZSBdICkge1xuXHRcdFx0XHRqUXVlcnkudW5pcXVlU29ydCggbWF0Y2hlZCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXZlcnNlIG9yZGVyIGZvciBwYXJlbnRzKiBhbmQgcHJldi1kZXJpdmF0aXZlc1xuXHRcdFx0aWYgKCBycGFyZW50c3ByZXYudGVzdCggbmFtZSApICkge1xuXHRcdFx0XHRtYXRjaGVkLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIG1hdGNoZWQgKTtcblx0fTtcbn0gKTtcbnZhciBybm90aHRtbHdoaXRlID0gKCAvW15cXHgyMFxcdFxcclxcblxcZl0rL2cgKTtcblxuXG5cbi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBvcHRpb25zIGludG8gT2JqZWN0LWZvcm1hdHRlZCBvbmVzXG5mdW5jdGlvbiBjcmVhdGVPcHRpb25zKCBvcHRpb25zICkge1xuXHR2YXIgb2JqZWN0ID0ge307XG5cdGpRdWVyeS5lYWNoKCBvcHRpb25zLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW10sIGZ1bmN0aW9uKCBfLCBmbGFnICkge1xuXHRcdG9iamVjdFsgZmxhZyBdID0gdHJ1ZTtcblx0fSApO1xuXHRyZXR1cm4gb2JqZWN0O1xufVxuXG4vKlxuICogQ3JlYXRlIGEgY2FsbGJhY2sgbGlzdCB1c2luZyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6XG4gKlxuICpcdG9wdGlvbnM6IGFuIG9wdGlvbmFsIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIG9wdGlvbnMgdGhhdCB3aWxsIGNoYW5nZSBob3dcbiAqXHRcdFx0dGhlIGNhbGxiYWNrIGxpc3QgYmVoYXZlcyBvciBhIG1vcmUgdHJhZGl0aW9uYWwgb3B0aW9uIG9iamVjdFxuICpcbiAqIEJ5IGRlZmF1bHQgYSBjYWxsYmFjayBsaXN0IHdpbGwgYWN0IGxpa2UgYW4gZXZlbnQgY2FsbGJhY2sgbGlzdCBhbmQgY2FuIGJlXG4gKiBcImZpcmVkXCIgbXVsdGlwbGUgdGltZXMuXG4gKlxuICogUG9zc2libGUgb3B0aW9uczpcbiAqXG4gKlx0b25jZTpcdFx0XHR3aWxsIGVuc3VyZSB0aGUgY2FsbGJhY2sgbGlzdCBjYW4gb25seSBiZSBmaXJlZCBvbmNlIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdG1lbW9yeTpcdFx0XHR3aWxsIGtlZXAgdHJhY2sgb2YgcHJldmlvdXMgdmFsdWVzIGFuZCB3aWxsIGNhbGwgYW55IGNhbGxiYWNrIGFkZGVkXG4gKlx0XHRcdFx0XHRhZnRlciB0aGUgbGlzdCBoYXMgYmVlbiBmaXJlZCByaWdodCBhd2F5IHdpdGggdGhlIGxhdGVzdCBcIm1lbW9yaXplZFwiXG4gKlx0XHRcdFx0XHR2YWx1ZXMgKGxpa2UgYSBEZWZlcnJlZClcbiAqXG4gKlx0dW5pcXVlOlx0XHRcdHdpbGwgZW5zdXJlIGEgY2FsbGJhY2sgY2FuIG9ubHkgYmUgYWRkZWQgb25jZSAobm8gZHVwbGljYXRlIGluIHRoZSBsaXN0KVxuICpcbiAqXHRzdG9wT25GYWxzZTpcdGludGVycnVwdCBjYWxsaW5ncyB3aGVuIGEgY2FsbGJhY2sgcmV0dXJucyBmYWxzZVxuICpcbiAqL1xualF1ZXJ5LkNhbGxiYWNrcyA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdC8vIENvbnZlcnQgb3B0aW9ucyBmcm9tIFN0cmluZy1mb3JtYXR0ZWQgdG8gT2JqZWN0LWZvcm1hdHRlZCBpZiBuZWVkZWRcblx0Ly8gKHdlIGNoZWNrIGluIGNhY2hlIGZpcnN0KVxuXHRvcHRpb25zID0gdHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIgP1xuXHRcdGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSA6XG5cdFx0alF1ZXJ5LmV4dGVuZCgge30sIG9wdGlvbnMgKTtcblxuXHR2YXIgLy8gRmxhZyB0byBrbm93IGlmIGxpc3QgaXMgY3VycmVudGx5IGZpcmluZ1xuXHRcdGZpcmluZyxcblxuXHRcdC8vIExhc3QgZmlyZSB2YWx1ZSBmb3Igbm9uLWZvcmdldHRhYmxlIGxpc3RzXG5cdFx0bWVtb3J5LFxuXG5cdFx0Ly8gRmxhZyB0byBrbm93IGlmIGxpc3Qgd2FzIGFscmVhZHkgZmlyZWRcblx0XHRmaXJlZCxcblxuXHRcdC8vIEZsYWcgdG8gcHJldmVudCBmaXJpbmdcblx0XHRsb2NrZWQsXG5cblx0XHQvLyBBY3R1YWwgY2FsbGJhY2sgbGlzdFxuXHRcdGxpc3QgPSBbXSxcblxuXHRcdC8vIFF1ZXVlIG9mIGV4ZWN1dGlvbiBkYXRhIGZvciByZXBlYXRhYmxlIGxpc3RzXG5cdFx0cXVldWUgPSBbXSxcblxuXHRcdC8vIEluZGV4IG9mIGN1cnJlbnRseSBmaXJpbmcgY2FsbGJhY2sgKG1vZGlmaWVkIGJ5IGFkZC9yZW1vdmUgYXMgbmVlZGVkKVxuXHRcdGZpcmluZ0luZGV4ID0gLTEsXG5cblx0XHQvLyBGaXJlIGNhbGxiYWNrc1xuXHRcdGZpcmUgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRW5mb3JjZSBzaW5nbGUtZmlyaW5nXG5cdFx0XHRsb2NrZWQgPSBsb2NrZWQgfHwgb3B0aW9ucy5vbmNlO1xuXG5cdFx0XHQvLyBFeGVjdXRlIGNhbGxiYWNrcyBmb3IgYWxsIHBlbmRpbmcgZXhlY3V0aW9ucyxcblx0XHRcdC8vIHJlc3BlY3RpbmcgZmlyaW5nSW5kZXggb3ZlcnJpZGVzIGFuZCBydW50aW1lIGNoYW5nZXNcblx0XHRcdGZpcmVkID0gZmlyaW5nID0gdHJ1ZTtcblx0XHRcdGZvciAoIDsgcXVldWUubGVuZ3RoOyBmaXJpbmdJbmRleCA9IC0xICkge1xuXHRcdFx0XHRtZW1vcnkgPSBxdWV1ZS5zaGlmdCgpO1xuXHRcdFx0XHR3aGlsZSAoICsrZmlyaW5nSW5kZXggPCBsaXN0Lmxlbmd0aCApIHtcblxuXHRcdFx0XHRcdC8vIFJ1biBjYWxsYmFjayBhbmQgY2hlY2sgZm9yIGVhcmx5IHRlcm1pbmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBsaXN0WyBmaXJpbmdJbmRleCBdLmFwcGx5KCBtZW1vcnlbIDAgXSwgbWVtb3J5WyAxIF0gKSA9PT0gZmFsc2UgJiZcblx0XHRcdFx0XHRcdG9wdGlvbnMuc3RvcE9uRmFsc2UgKSB7XG5cblx0XHRcdFx0XHRcdC8vIEp1bXAgdG8gZW5kIGFuZCBmb3JnZXQgdGhlIGRhdGEgc28gLmFkZCBkb2Vzbid0IHJlLWZpcmVcblx0XHRcdFx0XHRcdGZpcmluZ0luZGV4ID0gbGlzdC5sZW5ndGg7XG5cdFx0XHRcdFx0XHRtZW1vcnkgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gRm9yZ2V0IHRoZSBkYXRhIGlmIHdlJ3JlIGRvbmUgd2l0aCBpdFxuXHRcdFx0aWYgKCAhb3B0aW9ucy5tZW1vcnkgKSB7XG5cdFx0XHRcdG1lbW9yeSA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRmaXJpbmcgPSBmYWxzZTtcblxuXHRcdFx0Ly8gQ2xlYW4gdXAgaWYgd2UncmUgZG9uZSBmaXJpbmcgZm9yIGdvb2Rcblx0XHRcdGlmICggbG9ja2VkICkge1xuXG5cdFx0XHRcdC8vIEtlZXAgYW4gZW1wdHkgbGlzdCBpZiB3ZSBoYXZlIGRhdGEgZm9yIGZ1dHVyZSBhZGQgY2FsbHNcblx0XHRcdFx0aWYgKCBtZW1vcnkgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IFtdO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSwgdGhpcyBvYmplY3QgaXMgc3BlbnRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsaXN0ID0gXCJcIjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvLyBBY3R1YWwgQ2FsbGJhY2tzIG9iamVjdFxuXHRcdHNlbGYgPSB7XG5cblx0XHRcdC8vIEFkZCBhIGNhbGxiYWNrIG9yIGEgY29sbGVjdGlvbiBvZiBjYWxsYmFja3MgdG8gdGhlIGxpc3Rcblx0XHRcdGFkZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggbGlzdCApIHtcblxuXHRcdFx0XHRcdC8vIElmIHdlIGhhdmUgbWVtb3J5IGZyb20gYSBwYXN0IHJ1biwgd2Ugc2hvdWxkIGZpcmUgYWZ0ZXIgYWRkaW5nXG5cdFx0XHRcdFx0aWYgKCBtZW1vcnkgJiYgIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmluZ0luZGV4ID0gbGlzdC5sZW5ndGggLSAxO1xuXHRcdFx0XHRcdFx0cXVldWUucHVzaCggbWVtb3J5ICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0KCBmdW5jdGlvbiBhZGQoIGFyZ3MgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggYXJncywgZnVuY3Rpb24oIF8sIGFyZyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCBhcmcgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoICFvcHRpb25zLnVuaXF1ZSB8fCAhc2VsZi5oYXMoIGFyZyApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGlzdC5wdXNoKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGFyZyAmJiBhcmcubGVuZ3RoICYmIHRvVHlwZSggYXJnICkgIT09IFwic3RyaW5nXCIgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBJbnNwZWN0IHJlY3Vyc2l2ZWx5XG5cdFx0XHRcdFx0XHRcdFx0YWRkKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdH0gKSggYXJndW1lbnRzICk7XG5cblx0XHRcdFx0XHRpZiAoIG1lbW9yeSAmJiAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIFJlbW92ZSBhIGNhbGxiYWNrIGZyb20gdGhlIGxpc3Rcblx0XHRcdHJlbW92ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0dmFyIGluZGV4O1xuXHRcdFx0XHRcdHdoaWxlICggKCBpbmRleCA9IGpRdWVyeS5pbkFycmF5KCBhcmcsIGxpc3QsIGluZGV4ICkgKSA+IC0xICkge1xuXHRcdFx0XHRcdFx0bGlzdC5zcGxpY2UoIGluZGV4LCAxICk7XG5cblx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmaXJpbmcgaW5kZXhlc1xuXHRcdFx0XHRcdFx0aWYgKCBpbmRleCA8PSBmaXJpbmdJbmRleCApIHtcblx0XHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXgtLTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBDaGVjayBpZiBhIGdpdmVuIGNhbGxiYWNrIGlzIGluIHRoZSBsaXN0LlxuXHRcdFx0Ly8gSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHJldHVybiB3aGV0aGVyIG9yIG5vdCBsaXN0IGhhcyBjYWxsYmFja3MgYXR0YWNoZWQuXG5cdFx0XHRoYXM6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0cmV0dXJuIGZuID9cblx0XHRcdFx0XHRqUXVlcnkuaW5BcnJheSggZm4sIGxpc3QgKSA+IC0xIDpcblx0XHRcdFx0XHRsaXN0Lmxlbmd0aCA+IDA7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBSZW1vdmUgYWxsIGNhbGxiYWNrcyBmcm9tIHRoZSBsaXN0XG5cdFx0XHRlbXB0eTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggbGlzdCApIHtcblx0XHRcdFx0XHRsaXN0ID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBEaXNhYmxlIC5maXJlIGFuZCAuYWRkXG5cdFx0XHQvLyBBYm9ydCBhbnkgY3VycmVudC9wZW5kaW5nIGV4ZWN1dGlvbnNcblx0XHRcdC8vIENsZWFyIGFsbCBjYWxsYmFja3MgYW5kIHZhbHVlc1xuXHRcdFx0ZGlzYWJsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxvY2tlZCA9IHF1ZXVlID0gW107XG5cdFx0XHRcdGxpc3QgPSBtZW1vcnkgPSBcIlwiO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHRkaXNhYmxlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhbGlzdDtcblx0XHRcdH0sXG5cblx0XHRcdC8vIERpc2FibGUgLmZpcmVcblx0XHRcdC8vIEFsc28gZGlzYWJsZSAuYWRkIHVubGVzcyB3ZSBoYXZlIG1lbW9yeSAoc2luY2UgaXQgd291bGQgaGF2ZSBubyBlZmZlY3QpXG5cdFx0XHQvLyBBYm9ydCBhbnkgcGVuZGluZyBleGVjdXRpb25zXG5cdFx0XHRsb2NrOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0bG9ja2VkID0gcXVldWUgPSBbXTtcblx0XHRcdFx0aWYgKCAhbWVtb3J5ICYmICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IG1lbW9yeSA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0bG9ja2VkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICEhbG9ja2VkO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gQ2FsbCBhbGwgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZVdpdGg6IGZ1bmN0aW9uKCBjb250ZXh0LCBhcmdzICkge1xuXHRcdFx0XHRpZiAoICFsb2NrZWQgKSB7XG5cdFx0XHRcdFx0YXJncyA9IGFyZ3MgfHwgW107XG5cdFx0XHRcdFx0YXJncyA9IFsgY29udGV4dCwgYXJncy5zbGljZSA/IGFyZ3Muc2xpY2UoKSA6IGFyZ3MgXTtcblx0XHRcdFx0XHRxdWV1ZS5wdXNoKCBhcmdzICk7XG5cdFx0XHRcdFx0aWYgKCAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIENhbGwgYWxsIHRoZSBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzXG5cdFx0XHRmaXJlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0c2VsZi5maXJlV2l0aCggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gVG8ga25vdyBpZiB0aGUgY2FsbGJhY2tzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbGxlZCBhdCBsZWFzdCBvbmNlXG5cdFx0XHRmaXJlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhIWZpcmVkO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0cmV0dXJuIHNlbGY7XG59O1xuXG5cbmZ1bmN0aW9uIElkZW50aXR5KCB2ICkge1xuXHRyZXR1cm4gdjtcbn1cbmZ1bmN0aW9uIFRocm93ZXIoIGV4ICkge1xuXHR0aHJvdyBleDtcbn1cblxuZnVuY3Rpb24gYWRvcHRWYWx1ZSggdmFsdWUsIHJlc29sdmUsIHJlamVjdCwgbm9WYWx1ZSApIHtcblx0dmFyIG1ldGhvZDtcblxuXHR0cnkge1xuXG5cdFx0Ly8gQ2hlY2sgZm9yIHByb21pc2UgYXNwZWN0IGZpcnN0IHRvIHByaXZpbGVnZSBzeW5jaHJvbm91cyBiZWhhdmlvclxuXHRcdGlmICggdmFsdWUgJiYgaXNGdW5jdGlvbiggKCBtZXRob2QgPSB2YWx1ZS5wcm9taXNlICkgKSApIHtcblx0XHRcdG1ldGhvZC5jYWxsKCB2YWx1ZSApLmRvbmUoIHJlc29sdmUgKS5mYWlsKCByZWplY3QgKTtcblxuXHRcdC8vIE90aGVyIHRoZW5hYmxlc1xuXHRcdH0gZWxzZSBpZiAoIHZhbHVlICYmIGlzRnVuY3Rpb24oICggbWV0aG9kID0gdmFsdWUudGhlbiApICkgKSB7XG5cdFx0XHRtZXRob2QuY2FsbCggdmFsdWUsIHJlc29sdmUsIHJlamVjdCApO1xuXG5cdFx0Ly8gT3RoZXIgbm9uLXRoZW5hYmxlc1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIENvbnRyb2wgYHJlc29sdmVgIGFyZ3VtZW50cyBieSBsZXR0aW5nIEFycmF5I3NsaWNlIGNhc3QgYm9vbGVhbiBgbm9WYWx1ZWAgdG8gaW50ZWdlcjpcblx0XHRcdC8vICogZmFsc2U6IFsgdmFsdWUgXS5zbGljZSggMCApID0+IHJlc29sdmUoIHZhbHVlIClcblx0XHRcdC8vICogdHJ1ZTogWyB2YWx1ZSBdLnNsaWNlKCAxICkgPT4gcmVzb2x2ZSgpXG5cdFx0XHRyZXNvbHZlLmFwcGx5KCB1bmRlZmluZWQsIFsgdmFsdWUgXS5zbGljZSggbm9WYWx1ZSApICk7XG5cdFx0fVxuXG5cdC8vIEZvciBQcm9taXNlcy9BKywgY29udmVydCBleGNlcHRpb25zIGludG8gcmVqZWN0aW9uc1xuXHQvLyBTaW5jZSBqUXVlcnkud2hlbiBkb2Vzbid0IHVud3JhcCB0aGVuYWJsZXMsIHdlIGNhbiBza2lwIHRoZSBleHRyYSBjaGVja3MgYXBwZWFyaW5nIGluXG5cdC8vIERlZmVycmVkI3RoZW4gdG8gY29uZGl0aW9uYWxseSBzdXBwcmVzcyByZWplY3Rpb24uXG5cdH0gY2F0Y2ggKCB2YWx1ZSApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIG9ubHlcblx0XHQvLyBTdHJpY3QgbW9kZSBmdW5jdGlvbnMgaW52b2tlZCB3aXRob3V0IC5jYWxsLy5hcHBseSBnZXQgZ2xvYmFsLW9iamVjdCBjb250ZXh0XG5cdFx0cmVqZWN0LmFwcGx5KCB1bmRlZmluZWQsIFsgdmFsdWUgXSApO1xuXHR9XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHREZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMgKSB7XG5cdFx0dmFyIHR1cGxlcyA9IFtcblxuXHRcdFx0XHQvLyBhY3Rpb24sIGFkZCBsaXN0ZW5lciwgY2FsbGJhY2tzLFxuXHRcdFx0XHQvLyAuLi4gLnRoZW4gaGFuZGxlcnMsIGFyZ3VtZW50IGluZGV4LCBbZmluYWwgc3RhdGVdXG5cdFx0XHRcdFsgXCJub3RpZnlcIiwgXCJwcm9ncmVzc1wiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm1lbW9yeVwiICksXG5cdFx0XHRcdFx0alF1ZXJ5LkNhbGxiYWNrcyggXCJtZW1vcnlcIiApLCAyIF0sXG5cdFx0XHRcdFsgXCJyZXNvbHZlXCIsIFwiZG9uZVwiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcblx0XHRcdFx0XHRqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSwgMCwgXCJyZXNvbHZlZFwiIF0sXG5cdFx0XHRcdFsgXCJyZWplY3RcIiwgXCJmYWlsXCIsIGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXHRcdFx0XHRcdGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLCAxLCBcInJlamVjdGVkXCIgXVxuXHRcdFx0XSxcblx0XHRcdHN0YXRlID0gXCJwZW5kaW5nXCIsXG5cdFx0XHRwcm9taXNlID0ge1xuXHRcdFx0XHRzdGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHN0YXRlO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRhbHdheXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGRlZmVycmVkLmRvbmUoIGFyZ3VtZW50cyApLmZhaWwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRcImNhdGNoXCI6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0XHRyZXR1cm4gcHJvbWlzZS50aGVuKCBudWxsLCBmbiApO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIEtlZXAgcGlwZSBmb3IgYmFjay1jb21wYXRcblx0XHRcdFx0cGlwZTogZnVuY3Rpb24oIC8qIGZuRG9uZSwgZm5GYWlsLCBmblByb2dyZXNzICovICkge1xuXHRcdFx0XHRcdHZhciBmbnMgPSBhcmd1bWVudHM7XG5cblx0XHRcdFx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCBmdW5jdGlvbiggbmV3RGVmZXIgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggdHVwbGVzLCBmdW5jdGlvbiggX2ksIHR1cGxlICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE1hcCB0dXBsZXMgKHByb2dyZXNzLCBkb25lLCBmYWlsKSB0byBhcmd1bWVudHMgKGRvbmUsIGZhaWwsIHByb2dyZXNzKVxuXHRcdFx0XHRcdFx0XHR2YXIgZm4gPSBpc0Z1bmN0aW9uKCBmbnNbIHR1cGxlWyA0IF0gXSApICYmIGZuc1sgdHVwbGVbIDQgXSBdO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkLnByb2dyZXNzKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLm5vdGlmeSB9KVxuXHRcdFx0XHRcdFx0XHQvLyBkZWZlcnJlZC5kb25lKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLnJlc29sdmUgfSlcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWQuZmFpbChmdW5jdGlvbigpIHsgYmluZCB0byBuZXdEZWZlciBvciBuZXdEZWZlci5yZWplY3QgfSlcblx0XHRcdFx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAxIF0gXSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkID0gZm4gJiYgZm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdFx0XHRcdGlmICggcmV0dXJuZWQgJiYgaXNGdW5jdGlvbiggcmV0dXJuZWQucHJvbWlzZSApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQucHJvbWlzZSgpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5wcm9ncmVzcyggbmV3RGVmZXIubm90aWZ5IClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmRvbmUoIG5ld0RlZmVyLnJlc29sdmUgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0ICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXShcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm4gPyBbIHJldHVybmVkIF0gOiBhcmd1bWVudHNcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHRmbnMgPSBudWxsO1xuXHRcdFx0XHRcdH0gKS5wcm9taXNlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoZW46IGZ1bmN0aW9uKCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcyApIHtcblx0XHRcdFx0XHR2YXIgbWF4RGVwdGggPSAwO1xuXHRcdFx0XHRcdGZ1bmN0aW9uIHJlc29sdmUoIGRlcHRoLCBkZWZlcnJlZCwgaGFuZGxlciwgc3BlY2lhbCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzLFxuXHRcdFx0XHRcdFx0XHRcdGFyZ3MgPSBhcmd1bWVudHMsXG5cdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdyA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkLCB0aGVuO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4zLjMuM1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBkb3VibGUtcmVzb2x1dGlvbiBhdHRlbXB0c1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCA8IG1heERlcHRoICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkID0gaGFuZGxlci5hcHBseSggdGhhdCwgYXJncyApO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4xXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC00OFxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCByZXR1cm5lZCA9PT0gZGVmZXJyZWQucHJvbWlzZSgpICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCBcIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvblwiICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb25zIDIuMy4zLjEsIDMuNVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTRcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTc1XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBSZXRyaWV2ZSBgdGhlbmAgb25seSBvbmNlXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGVuID0gcmV0dXJuZWQgJiZcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy40XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTY0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgY2hlY2sgb2JqZWN0cyBhbmQgZnVuY3Rpb25zIGZvciB0aGVuYWJpbGl0eVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoIHR5cGVvZiByZXR1cm5lZCA9PT0gXCJvYmplY3RcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiByZXR1cm5lZCA9PT0gXCJmdW5jdGlvblwiICkgJiZcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQudGhlbjtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGEgcmV0dXJuZWQgdGhlbmFibGVcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggdGhlbiApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFNwZWNpYWwgcHJvY2Vzc29ycyAobm90aWZ5KSBqdXN0IHdhaXQgZm9yIHJlc29sdXRpb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoZW4uY2FsbChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBUaHJvd2VyLCBzcGVjaWFsIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE5vcm1hbCBwcm9jZXNzb3JzIChyZXNvbHZlKSBhbHNvIGhvb2sgaW50byBwcm9ncmVzc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIGRpc3JlZ2FyZCBvbGRlciByZXNvbHV0aW9uIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1heERlcHRoKys7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGVuLmNhbGwoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgSWRlbnRpdHksIHNwZWNpYWwgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgVGhyb3dlciwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBIYW5kbGUgYWxsIG90aGVyIHJldHVybmVkIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuZCBtdWx0aXBsZSB2YWx1ZXMgKG5vbi1zcGVjIGJlaGF2aW9yKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGhhbmRsZXIgIT09IElkZW50aXR5ICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgcmV0dXJuZWQgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFByb2Nlc3MgdGhlIHZhbHVlKHMpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIERlZmF1bHQgcHJvY2VzcyBpcyByZXNvbHZlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCggc3BlY2lhbCB8fCBkZWZlcnJlZC5yZXNvbHZlV2l0aCApKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgbm9ybWFsIHByb2Nlc3NvcnMgKHJlc29sdmUpIGNhdGNoIGFuZCByZWplY3QgZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdHByb2Nlc3MgPSBzcGVjaWFsID9cblx0XHRcdFx0XHRcdFx0XHRcdG1pZ2h0VGhyb3cgOlxuXHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayggZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cHJvY2Vzcy5lcnJvciApO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy40LjFcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC02MVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBwb3N0LXJlc29sdXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggZGVwdGggKyAxID49IG1heERlcHRoICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBhbmQgbXVsdGlwbGUgdmFsdWVzIChub24tc3BlYyBiZWhhdmlvcilcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggaGFuZGxlciAhPT0gVGhyb3dlciApIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhhdCA9IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgZSBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9O1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb24gMi4zLjMuMy4xXG5cdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTU3XG5cdFx0XHRcdFx0XHRcdC8vIFJlLXJlc29sdmUgcHJvbWlzZXMgaW1tZWRpYXRlbHkgdG8gZG9kZ2UgZmFsc2UgcmVqZWN0aW9uIGZyb21cblx0XHRcdFx0XHRcdFx0Ly8gc3Vic2VxdWVudCBlcnJvcnNcblx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCApIHtcblx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzKCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBDYWxsIGFuIG9wdGlvbmFsIGhvb2sgdG8gcmVjb3JkIHRoZSBlcnJvciwgaW4gY2FzZSBvZiBleGNlcHRpb25cblx0XHRcdFx0XHRcdFx0XHQvLyBzaW5jZSBpdCdzIG90aGVyd2lzZSBsb3N0IHdoZW4gZXhlY3V0aW9uIGdvZXMgYXN5bmNcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5EZWZlcnJlZC5nZXRFcnJvckhvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzLmVycm9yID0galF1ZXJ5LkRlZmVycmVkLmdldEVycm9ySG9vaygpO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gVGhlIGRlcHJlY2F0ZWQgYWxpYXMgb2YgdGhlIGFib3ZlLiBXaGlsZSB0aGUgbmFtZSBzdWdnZXN0c1xuXHRcdFx0XHRcdFx0XHRcdC8vIHJldHVybmluZyB0aGUgc3RhY2ssIG5vdCBhbiBlcnJvciBpbnN0YW5jZSwgalF1ZXJ5IGp1c3QgcGFzc2VzXG5cdFx0XHRcdFx0XHRcdFx0Ly8gaXQgZGlyZWN0bHkgdG8gYGNvbnNvbGUud2FybmAgc28gYm90aCB3aWxsIHdvcms7IGFuIGluc3RhbmNlXG5cdFx0XHRcdFx0XHRcdFx0Ly8ganVzdCBiZXR0ZXIgY29vcGVyYXRlcyB3aXRoIHNvdXJjZSBtYXBzLlxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGpRdWVyeS5EZWZlcnJlZC5nZXRTdGFja0hvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9jZXNzLmVycm9yID0galF1ZXJ5LkRlZmVycmVkLmdldFN0YWNrSG9vaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR3aW5kb3cuc2V0VGltZW91dCggcHJvY2VzcyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoIGZ1bmN0aW9uKCBuZXdEZWZlciApIHtcblxuXHRcdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvblByb2dyZXNzICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25Qcm9ncmVzcyA6XG5cdFx0XHRcdFx0XHRcdFx0XHRJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlci5ub3RpZnlXaXRoXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5hZGQoIC4uLiApXG5cdFx0XHRcdFx0XHR0dXBsZXNbIDEgXVsgMyBdLmFkZChcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZShcblx0XHRcdFx0XHRcdFx0XHQwLFxuXHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyLFxuXHRcdFx0XHRcdFx0XHRcdGlzRnVuY3Rpb24oIG9uRnVsZmlsbGVkICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25GdWxmaWxsZWQgOlxuXHRcdFx0XHRcdFx0XHRcdFx0SWRlbnRpdHlcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAyIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvblJlamVjdGVkICkgP1xuXHRcdFx0XHRcdFx0XHRcdFx0b25SZWplY3RlZCA6XG5cdFx0XHRcdFx0XHRcdFx0XHRUaHJvd2VyXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fSApLnByb21pc2UoKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBHZXQgYSBwcm9taXNlIGZvciB0aGlzIGRlZmVycmVkXG5cdFx0XHRcdC8vIElmIG9iaiBpcyBwcm92aWRlZCwgdGhlIHByb21pc2UgYXNwZWN0IGlzIGFkZGVkIHRvIHRoZSBvYmplY3Rcblx0XHRcdFx0cHJvbWlzZTogZnVuY3Rpb24oIG9iaiApIHtcblx0XHRcdFx0XHRyZXR1cm4gb2JqICE9IG51bGwgPyBqUXVlcnkuZXh0ZW5kKCBvYmosIHByb21pc2UgKSA6IHByb21pc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWZlcnJlZCA9IHt9O1xuXG5cdFx0Ly8gQWRkIGxpc3Qtc3BlY2lmaWMgbWV0aG9kc1xuXHRcdGpRdWVyeS5lYWNoKCB0dXBsZXMsIGZ1bmN0aW9uKCBpLCB0dXBsZSApIHtcblx0XHRcdHZhciBsaXN0ID0gdHVwbGVbIDIgXSxcblx0XHRcdFx0c3RhdGVTdHJpbmcgPSB0dXBsZVsgNSBdO1xuXG5cdFx0XHQvLyBwcm9taXNlLnByb2dyZXNzID0gbGlzdC5hZGRcblx0XHRcdC8vIHByb21pc2UuZG9uZSA9IGxpc3QuYWRkXG5cdFx0XHQvLyBwcm9taXNlLmZhaWwgPSBsaXN0LmFkZFxuXHRcdFx0cHJvbWlzZVsgdHVwbGVbIDEgXSBdID0gbGlzdC5hZGQ7XG5cblx0XHRcdC8vIEhhbmRsZSBzdGF0ZVxuXHRcdFx0aWYgKCBzdGF0ZVN0cmluZyApIHtcblx0XHRcdFx0bGlzdC5hZGQoXG5cdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0XHRcdC8vIHN0YXRlID0gXCJyZXNvbHZlZFwiIChpLmUuLCBmdWxmaWxsZWQpXG5cdFx0XHRcdFx0XHQvLyBzdGF0ZSA9IFwicmVqZWN0ZWRcIlxuXHRcdFx0XHRcdFx0c3RhdGUgPSBzdGF0ZVN0cmluZztcblx0XHRcdFx0XHR9LFxuXG5cdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfY2FsbGJhY2tzLmRpc2FibGVcblx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfY2FsbGJhY2tzLmRpc2FibGVcblx0XHRcdFx0XHR0dXBsZXNbIDMgLSBpIF1bIDIgXS5kaXNhYmxlLFxuXG5cdFx0XHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuZGlzYWJsZVxuXHRcdFx0XHRcdC8vIGZ1bGZpbGxlZF9oYW5kbGVycy5kaXNhYmxlXG5cdFx0XHRcdFx0dHVwbGVzWyAzIC0gaSBdWyAzIF0uZGlzYWJsZSxcblxuXHRcdFx0XHRcdC8vIHByb2dyZXNzX2NhbGxiYWNrcy5sb2NrXG5cdFx0XHRcdFx0dHVwbGVzWyAwIF1bIDIgXS5sb2NrLFxuXG5cdFx0XHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMubG9ja1xuXHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAzIF0ubG9ja1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBwcm9ncmVzc19oYW5kbGVycy5maXJlXG5cdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuZmlyZVxuXHRcdFx0Ly8gcmVqZWN0ZWRfaGFuZGxlcnMuZmlyZVxuXHRcdFx0bGlzdC5hZGQoIHR1cGxlWyAzIF0uZmlyZSApO1xuXG5cdFx0XHQvLyBkZWZlcnJlZC5ub3RpZnkgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQubm90aWZ5V2l0aCguLi4pIH1cblx0XHRcdC8vIGRlZmVycmVkLnJlc29sdmUgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQucmVzb2x2ZVdpdGgoLi4uKSB9XG5cdFx0XHQvLyBkZWZlcnJlZC5yZWplY3QgPSBmdW5jdGlvbigpIHsgZGVmZXJyZWQucmVqZWN0V2l0aCguLi4pIH1cblx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMCBdIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdKCB0aGlzID09PSBkZWZlcnJlZCA/IHVuZGVmaW5lZCA6IHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH07XG5cblx0XHRcdC8vIGRlZmVycmVkLm5vdGlmeVdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHQvLyBkZWZlcnJlZC5yZXNvbHZlV2l0aCA9IGxpc3QuZmlyZVdpdGhcblx0XHRcdC8vIGRlZmVycmVkLnJlamVjdFdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDAgXSArIFwiV2l0aFwiIF0gPSBsaXN0LmZpcmVXaXRoO1xuXHRcdH0gKTtcblxuXHRcdC8vIE1ha2UgdGhlIGRlZmVycmVkIGEgcHJvbWlzZVxuXHRcdHByb21pc2UucHJvbWlzZSggZGVmZXJyZWQgKTtcblxuXHRcdC8vIENhbGwgZ2l2ZW4gZnVuYyBpZiBhbnlcblx0XHRpZiAoIGZ1bmMgKSB7XG5cdFx0XHRmdW5jLmNhbGwoIGRlZmVycmVkLCBkZWZlcnJlZCApO1xuXHRcdH1cblxuXHRcdC8vIEFsbCBkb25lIVxuXHRcdHJldHVybiBkZWZlcnJlZDtcblx0fSxcblxuXHQvLyBEZWZlcnJlZCBoZWxwZXJcblx0d2hlbjogZnVuY3Rpb24oIHNpbmdsZVZhbHVlICkge1xuXHRcdHZhclxuXG5cdFx0XHQvLyBjb3VudCBvZiB1bmNvbXBsZXRlZCBzdWJvcmRpbmF0ZXNcblx0XHRcdHJlbWFpbmluZyA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cblx0XHRcdC8vIGNvdW50IG9mIHVucHJvY2Vzc2VkIGFyZ3VtZW50c1xuXHRcdFx0aSA9IHJlbWFpbmluZyxcblxuXHRcdFx0Ly8gc3Vib3JkaW5hdGUgZnVsZmlsbG1lbnQgZGF0YVxuXHRcdFx0cmVzb2x2ZUNvbnRleHRzID0gQXJyYXkoIGkgKSxcblx0XHRcdHJlc29sdmVWYWx1ZXMgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSxcblxuXHRcdFx0Ly8gdGhlIHByaW1hcnkgRGVmZXJyZWRcblx0XHRcdHByaW1hcnkgPSBqUXVlcnkuRGVmZXJyZWQoKSxcblxuXHRcdFx0Ly8gc3Vib3JkaW5hdGUgY2FsbGJhY2sgZmFjdG9yeVxuXHRcdFx0dXBkYXRlRnVuYyA9IGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0XHRcdHJlc29sdmVDb250ZXh0c1sgaSBdID0gdGhpcztcblx0XHRcdFx0XHRyZXNvbHZlVmFsdWVzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApIDogdmFsdWU7XG5cdFx0XHRcdFx0aWYgKCAhKCAtLXJlbWFpbmluZyApICkge1xuXHRcdFx0XHRcdFx0cHJpbWFyeS5yZXNvbHZlV2l0aCggcmVzb2x2ZUNvbnRleHRzLCByZXNvbHZlVmFsdWVzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fTtcblxuXHRcdC8vIFNpbmdsZS0gYW5kIGVtcHR5IGFyZ3VtZW50cyBhcmUgYWRvcHRlZCBsaWtlIFByb21pc2UucmVzb2x2ZVxuXHRcdGlmICggcmVtYWluaW5nIDw9IDEgKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCBzaW5nbGVWYWx1ZSwgcHJpbWFyeS5kb25lKCB1cGRhdGVGdW5jKCBpICkgKS5yZXNvbHZlLCBwcmltYXJ5LnJlamVjdCxcblx0XHRcdFx0IXJlbWFpbmluZyApO1xuXG5cdFx0XHQvLyBVc2UgLnRoZW4oKSB0byB1bndyYXAgc2Vjb25kYXJ5IHRoZW5hYmxlcyAoY2YuIGdoLTMwMDApXG5cdFx0XHRpZiAoIHByaW1hcnkuc3RhdGUoKSA9PT0gXCJwZW5kaW5nXCIgfHxcblx0XHRcdFx0aXNGdW5jdGlvbiggcmVzb2x2ZVZhbHVlc1sgaSBdICYmIHJlc29sdmVWYWx1ZXNbIGkgXS50aGVuICkgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHByaW1hcnkudGhlbigpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE11bHRpcGxlIGFyZ3VtZW50cyBhcmUgYWdncmVnYXRlZCBsaWtlIFByb21pc2UuYWxsIGFycmF5IGVsZW1lbnRzXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCByZXNvbHZlVmFsdWVzWyBpIF0sIHVwZGF0ZUZ1bmMoIGkgKSwgcHJpbWFyeS5yZWplY3QgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcHJpbWFyeS5wcm9taXNlKCk7XG5cdH1cbn0gKTtcblxuXG4vLyBUaGVzZSB1c3VhbGx5IGluZGljYXRlIGEgcHJvZ3JhbW1lciBtaXN0YWtlIGR1cmluZyBkZXZlbG9wbWVudCxcbi8vIHdhcm4gYWJvdXQgdGhlbSBBU0FQIHJhdGhlciB0aGFuIHN3YWxsb3dpbmcgdGhlbSBieSBkZWZhdWx0LlxudmFyIHJlcnJvck5hbWVzID0gL14oRXZhbHxJbnRlcm5hbHxSYW5nZXxSZWZlcmVuY2V8U3ludGF4fFR5cGV8VVJJKUVycm9yJC87XG5cbi8vIElmIGBqUXVlcnkuRGVmZXJyZWQuZ2V0RXJyb3JIb29rYCBpcyBkZWZpbmVkLCBgYXN5bmNFcnJvcmAgaXMgYW4gZXJyb3Jcbi8vIGNhcHR1cmVkIGJlZm9yZSB0aGUgYXN5bmMgYmFycmllciB0byBnZXQgdGhlIG9yaWdpbmFsIGVycm9yIGNhdXNlXG4vLyB3aGljaCBtYXkgb3RoZXJ3aXNlIGJlIGhpZGRlbi5cbmpRdWVyeS5EZWZlcnJlZC5leGNlcHRpb25Ib29rID0gZnVuY3Rpb24oIGVycm9yLCBhc3luY0Vycm9yICkge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDggLSA5IG9ubHlcblx0Ly8gQ29uc29sZSBleGlzdHMgd2hlbiBkZXYgdG9vbHMgYXJlIG9wZW4sIHdoaWNoIGNhbiBoYXBwZW4gYXQgYW55IHRpbWVcblx0aWYgKCB3aW5kb3cuY29uc29sZSAmJiB3aW5kb3cuY29uc29sZS53YXJuICYmIGVycm9yICYmIHJlcnJvck5hbWVzLnRlc3QoIGVycm9yLm5hbWUgKSApIHtcblx0XHR3aW5kb3cuY29uc29sZS53YXJuKCBcImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246IFwiICsgZXJyb3IubWVzc2FnZSxcblx0XHRcdGVycm9yLnN0YWNrLCBhc3luY0Vycm9yICk7XG5cdH1cbn07XG5cblxuXG5cbmpRdWVyeS5yZWFkeUV4Y2VwdGlvbiA9IGZ1bmN0aW9uKCBlcnJvciApIHtcblx0d2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdHRocm93IGVycm9yO1xuXHR9ICk7XG59O1xuXG5cblxuXG4vLyBUaGUgZGVmZXJyZWQgdXNlZCBvbiBET00gcmVhZHlcbnZhciByZWFkeUxpc3QgPSBqUXVlcnkuRGVmZXJyZWQoKTtcblxualF1ZXJ5LmZuLnJlYWR5ID0gZnVuY3Rpb24oIGZuICkge1xuXG5cdHJlYWR5TGlzdFxuXHRcdC50aGVuKCBmbiApXG5cblx0XHQvLyBXcmFwIGpRdWVyeS5yZWFkeUV4Y2VwdGlvbiBpbiBhIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIGxvb2t1cFxuXHRcdC8vIGhhcHBlbnMgYXQgdGhlIHRpbWUgb2YgZXJyb3IgaGFuZGxpbmcgaW5zdGVhZCBvZiBjYWxsYmFja1xuXHRcdC8vIHJlZ2lzdHJhdGlvbi5cblx0XHQuY2F0Y2goIGZ1bmN0aW9uKCBlcnJvciApIHtcblx0XHRcdGpRdWVyeS5yZWFkeUV4Y2VwdGlvbiggZXJyb3IgKTtcblx0XHR9ICk7XG5cblx0cmV0dXJuIHRoaXM7XG59O1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy5cblx0aXNSZWFkeTogZmFsc2UsXG5cblx0Ly8gQSBjb3VudGVyIHRvIHRyYWNrIGhvdyBtYW55IGl0ZW1zIHRvIHdhaXQgZm9yIGJlZm9yZVxuXHQvLyB0aGUgcmVhZHkgZXZlbnQgZmlyZXMuIFNlZSB0cmFjLTY3ODFcblx0cmVhZHlXYWl0OiAxLFxuXG5cdC8vIEhhbmRsZSB3aGVuIHRoZSBET00gaXMgcmVhZHlcblx0cmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkge1xuXG5cdFx0Ly8gQWJvcnQgaWYgdGhlcmUgYXJlIHBlbmRpbmcgaG9sZHMgb3Igd2UncmUgYWxyZWFkeSByZWFkeVxuXHRcdGlmICggd2FpdCA9PT0gdHJ1ZSA/IC0talF1ZXJ5LnJlYWR5V2FpdCA6IGpRdWVyeS5pc1JlYWR5ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeVxuXHRcdGpRdWVyeS5pc1JlYWR5ID0gdHJ1ZTtcblxuXHRcdC8vIElmIGEgbm9ybWFsIERPTSBSZWFkeSBldmVudCBmaXJlZCwgZGVjcmVtZW50LCBhbmQgd2FpdCBpZiBuZWVkIGJlXG5cdFx0aWYgKCB3YWl0ICE9PSB0cnVlICYmIC0talF1ZXJ5LnJlYWR5V2FpdCA+IDAgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gSWYgdGhlcmUgYXJlIGZ1bmN0aW9ucyBib3VuZCwgdG8gZXhlY3V0ZVxuXHRcdHJlYWR5TGlzdC5yZXNvbHZlV2l0aCggZG9jdW1lbnQsIFsgalF1ZXJ5IF0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkucmVhZHkudGhlbiA9IHJlYWR5TGlzdC50aGVuO1xuXG4vLyBUaGUgcmVhZHkgZXZlbnQgaGFuZGxlciBhbmQgc2VsZiBjbGVhbnVwIG1ldGhvZFxuZnVuY3Rpb24gY29tcGxldGVkKCkge1xuXHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgY29tcGxldGVkICk7XG5cdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCBcImxvYWRcIiwgY29tcGxldGVkICk7XG5cdGpRdWVyeS5yZWFkeSgpO1xufVxuXG4vLyBDYXRjaCBjYXNlcyB3aGVyZSAkKGRvY3VtZW50KS5yZWFkeSgpIGlzIGNhbGxlZFxuLy8gYWZ0ZXIgdGhlIGJyb3dzZXIgZXZlbnQgaGFzIGFscmVhZHkgb2NjdXJyZWQuXG4vLyBTdXBwb3J0OiBJRSA8PTkgLSAxMCBvbmx5XG4vLyBPbGRlciBJRSBzb21ldGltZXMgc2lnbmFscyBcImludGVyYWN0aXZlXCIgdG9vIHNvb25cbmlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiIHx8XG5cdCggZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gXCJsb2FkaW5nXCIgJiYgIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCApICkge1xuXG5cdC8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeVxuXHR3aW5kb3cuc2V0VGltZW91dCggalF1ZXJ5LnJlYWR5ICk7XG5cbn0gZWxzZSB7XG5cblx0Ly8gVXNlIHRoZSBoYW5keSBldmVudCBjYWxsYmFja1xuXHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgY29tcGxldGVkICk7XG5cblx0Ly8gQSBmYWxsYmFjayB0byB3aW5kb3cub25sb2FkLCB0aGF0IHdpbGwgYWx3YXlzIHdvcmtcblx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIFwibG9hZFwiLCBjb21wbGV0ZWQgKTtcbn1cblxuXG5cblxuLy8gTXVsdGlmdW5jdGlvbmFsIG1ldGhvZCB0byBnZXQgYW5kIHNldCB2YWx1ZXMgb2YgYSBjb2xsZWN0aW9uXG4vLyBUaGUgdmFsdWUvcyBjYW4gb3B0aW9uYWxseSBiZSBleGVjdXRlZCBpZiBpdCdzIGEgZnVuY3Rpb25cbnZhciBhY2Nlc3MgPSBmdW5jdGlvbiggZWxlbXMsIGZuLCBrZXksIHZhbHVlLCBjaGFpbmFibGUsIGVtcHR5R2V0LCByYXcgKSB7XG5cdHZhciBpID0gMCxcblx0XHRsZW4gPSBlbGVtcy5sZW5ndGgsXG5cdFx0YnVsayA9IGtleSA9PSBudWxsO1xuXG5cdC8vIFNldHMgbWFueSB2YWx1ZXNcblx0aWYgKCB0b1R5cGUoIGtleSApID09PSBcIm9iamVjdFwiICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cdFx0Zm9yICggaSBpbiBrZXkgKSB7XG5cdFx0XHRhY2Nlc3MoIGVsZW1zLCBmbiwgaSwga2V5WyBpIF0sIHRydWUsIGVtcHR5R2V0LCByYXcgKTtcblx0XHR9XG5cblx0Ly8gU2V0cyBvbmUgdmFsdWVcblx0fSBlbHNlIGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHtcblx0XHRjaGFpbmFibGUgPSB0cnVlO1xuXG5cdFx0aWYgKCAhaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJhdyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBidWxrICkge1xuXG5cdFx0XHQvLyBCdWxrIG9wZXJhdGlvbnMgcnVuIGFnYWluc3QgdGhlIGVudGlyZSBzZXRcblx0XHRcdGlmICggcmF3ICkge1xuXHRcdFx0XHRmbi5jYWxsKCBlbGVtcywgdmFsdWUgKTtcblx0XHRcdFx0Zm4gPSBudWxsO1xuXG5cdFx0XHQvLyAuLi5leGNlcHQgd2hlbiBleGVjdXRpbmcgZnVuY3Rpb24gdmFsdWVzXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRidWxrID0gZm47XG5cdFx0XHRcdGZuID0gZnVuY3Rpb24oIGVsZW0sIF9rZXksIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiBidWxrLmNhbGwoIGpRdWVyeSggZWxlbSApLCB2YWx1ZSApO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0Zm4oXG5cdFx0XHRcdFx0ZWxlbXNbIGkgXSwga2V5LCByYXcgP1xuXHRcdFx0XHRcdFx0dmFsdWUgOlxuXHRcdFx0XHRcdFx0dmFsdWUuY2FsbCggZWxlbXNbIGkgXSwgaSwgZm4oIGVsZW1zWyBpIF0sIGtleSApIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIGNoYWluYWJsZSApIHtcblx0XHRyZXR1cm4gZWxlbXM7XG5cdH1cblxuXHQvLyBHZXRzXG5cdGlmICggYnVsayApIHtcblx0XHRyZXR1cm4gZm4uY2FsbCggZWxlbXMgKTtcblx0fVxuXG5cdHJldHVybiBsZW4gPyBmbiggZWxlbXNbIDAgXSwga2V5ICkgOiBlbXB0eUdldDtcbn07XG5cblxuLy8gTWF0Y2hlcyBkYXNoZWQgc3RyaW5nIGZvciBjYW1lbGl6aW5nXG52YXIgcm1zUHJlZml4ID0gL14tbXMtLyxcblx0cmRhc2hBbHBoYSA9IC8tKFthLXpdKS9nO1xuXG4vLyBVc2VkIGJ5IGNhbWVsQ2FzZSBhcyBjYWxsYmFjayB0byByZXBsYWNlKClcbmZ1bmN0aW9uIGZjYW1lbENhc2UoIF9hbGwsIGxldHRlciApIHtcblx0cmV0dXJuIGxldHRlci50b1VwcGVyQ2FzZSgpO1xufVxuXG4vLyBDb252ZXJ0IGRhc2hlZCB0byBjYW1lbENhc2U7IHVzZWQgYnkgdGhlIGNzcyBhbmQgZGF0YSBtb2R1bGVzXG4vLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG4vLyBNaWNyb3NvZnQgZm9yZ290IHRvIGh1bXAgdGhlaXIgdmVuZG9yIHByZWZpeCAodHJhYy05NTcyKVxuZnVuY3Rpb24gY2FtZWxDYXNlKCBzdHJpbmcgKSB7XG5cdHJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCBcIm1zLVwiICkucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApO1xufVxudmFyIGFjY2VwdERhdGEgPSBmdW5jdGlvbiggb3duZXIgKSB7XG5cblx0Ly8gQWNjZXB0cyBvbmx5OlxuXHQvLyAgLSBOb2RlXG5cdC8vICAgIC0gTm9kZS5FTEVNRU5UX05PREVcblx0Ly8gICAgLSBOb2RlLkRPQ1VNRU5UX05PREVcblx0Ly8gIC0gT2JqZWN0XG5cdC8vICAgIC0gQW55XG5cdHJldHVybiBvd25lci5ub2RlVHlwZSA9PT0gMSB8fCBvd25lci5ub2RlVHlwZSA9PT0gOSB8fCAhKCArb3duZXIubm9kZVR5cGUgKTtcbn07XG5cblxuXG5cbmZ1bmN0aW9uIERhdGEoKSB7XG5cdHRoaXMuZXhwYW5kbyA9IGpRdWVyeS5leHBhbmRvICsgRGF0YS51aWQrKztcbn1cblxuRGF0YS51aWQgPSAxO1xuXG5EYXRhLnByb3RvdHlwZSA9IHtcblxuXHRjYWNoZTogZnVuY3Rpb24oIG93bmVyICkge1xuXG5cdFx0Ly8gQ2hlY2sgaWYgdGhlIG93bmVyIG9iamVjdCBhbHJlYWR5IGhhcyBhIGNhY2hlXG5cdFx0dmFyIHZhbHVlID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0Ly8gSWYgbm90LCBjcmVhdGUgb25lXG5cdFx0aWYgKCAhdmFsdWUgKSB7XG5cdFx0XHR2YWx1ZSA9IHt9O1xuXG5cdFx0XHQvLyBXZSBjYW4gYWNjZXB0IGRhdGEgZm9yIG5vbi1lbGVtZW50IG5vZGVzIGluIG1vZGVybiBicm93c2Vycyxcblx0XHRcdC8vIGJ1dCB3ZSBzaG91bGQgbm90LCBzZWUgdHJhYy04MzM1LlxuXHRcdFx0Ly8gQWx3YXlzIHJldHVybiBhbiBlbXB0eSBvYmplY3QuXG5cdFx0XHRpZiAoIGFjY2VwdERhdGEoIG93bmVyICkgKSB7XG5cblx0XHRcdFx0Ly8gSWYgaXQgaXMgYSBub2RlIHVubGlrZWx5IHRvIGJlIHN0cmluZ2lmeS1lZCBvciBsb29wZWQgb3ZlclxuXHRcdFx0XHQvLyB1c2UgcGxhaW4gYXNzaWdubWVudFxuXHRcdFx0XHRpZiAoIG93bmVyLm5vZGVUeXBlICkge1xuXHRcdFx0XHRcdG93bmVyWyB0aGlzLmV4cGFuZG8gXSA9IHZhbHVlO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBzZWN1cmUgaXQgaW4gYSBub24tZW51bWVyYWJsZSBwcm9wZXJ0eVxuXHRcdFx0XHQvLyBjb25maWd1cmFibGUgbXVzdCBiZSB0cnVlIHRvIGFsbG93IHRoZSBwcm9wZXJ0eSB0byBiZVxuXHRcdFx0XHQvLyBkZWxldGVkIHdoZW4gZGF0YSBpcyByZW1vdmVkXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBvd25lciwgdGhpcy5leHBhbmRvLCB7XG5cdFx0XHRcdFx0XHR2YWx1ZTogdmFsdWUsXG5cdFx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWVcblx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH0sXG5cdHNldDogZnVuY3Rpb24oIG93bmVyLCBkYXRhLCB2YWx1ZSApIHtcblx0XHR2YXIgcHJvcCxcblx0XHRcdGNhY2hlID0gdGhpcy5jYWNoZSggb3duZXIgKTtcblxuXHRcdC8vIEhhbmRsZTogWyBvd25lciwga2V5LCB2YWx1ZSBdIGFyZ3Ncblx0XHQvLyBBbHdheXMgdXNlIGNhbWVsQ2FzZSBrZXkgKGdoLTIyNTcpXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGNhY2hlWyBjYW1lbENhc2UoIGRhdGEgKSBdID0gdmFsdWU7XG5cblx0XHQvLyBIYW5kbGU6IFsgb3duZXIsIHsgcHJvcGVydGllcyB9IF0gYXJnc1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIENvcHkgdGhlIHByb3BlcnRpZXMgb25lLWJ5LW9uZSB0byB0aGUgY2FjaGUgb2JqZWN0XG5cdFx0XHRmb3IgKCBwcm9wIGluIGRhdGEgKSB7XG5cdFx0XHRcdGNhY2hlWyBjYW1lbENhc2UoIHByb3AgKSBdID0gZGF0YVsgcHJvcCBdO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gY2FjaGU7XG5cdH0sXG5cdGdldDogZnVuY3Rpb24oIG93bmVyLCBrZXkgKSB7XG5cdFx0cmV0dXJuIGtleSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMuY2FjaGUoIG93bmVyICkgOlxuXG5cdFx0XHQvLyBBbHdheXMgdXNlIGNhbWVsQ2FzZSBrZXkgKGdoLTIyNTcpXG5cdFx0XHRvd25lclsgdGhpcy5leHBhbmRvIF0gJiYgb3duZXJbIHRoaXMuZXhwYW5kbyBdWyBjYW1lbENhc2UoIGtleSApIF07XG5cdH0sXG5cdGFjY2VzczogZnVuY3Rpb24oIG93bmVyLCBrZXksIHZhbHVlICkge1xuXG5cdFx0Ly8gSW4gY2FzZXMgd2hlcmUgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBObyBrZXkgd2FzIHNwZWNpZmllZFxuXHRcdC8vICAgMi4gQSBzdHJpbmcga2V5IHdhcyBzcGVjaWZpZWQsIGJ1dCBubyB2YWx1ZSBwcm92aWRlZFxuXHRcdC8vXG5cdFx0Ly8gVGFrZSB0aGUgXCJyZWFkXCIgcGF0aCBhbmQgYWxsb3cgdGhlIGdldCBtZXRob2QgdG8gZGV0ZXJtaW5lXG5cdFx0Ly8gd2hpY2ggdmFsdWUgdG8gcmV0dXJuLCByZXNwZWN0aXZlbHkgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBUaGUgZW50aXJlIGNhY2hlIG9iamVjdFxuXHRcdC8vICAgMi4gVGhlIGRhdGEgc3RvcmVkIGF0IHRoZSBrZXlcblx0XHQvL1xuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHxcblx0XHRcdFx0KCAoIGtleSAmJiB0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiICkgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCApICkge1xuXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXQoIG93bmVyLCBrZXkgKTtcblx0XHR9XG5cblx0XHQvLyBXaGVuIHRoZSBrZXkgaXMgbm90IGEgc3RyaW5nLCBvciBib3RoIGEga2V5IGFuZCB2YWx1ZVxuXHRcdC8vIGFyZSBzcGVjaWZpZWQsIHNldCBvciBleHRlbmQgKGV4aXN0aW5nIG9iamVjdHMpIHdpdGggZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBBbiBvYmplY3Qgb2YgcHJvcGVydGllc1xuXHRcdC8vICAgMi4gQSBrZXkgYW5kIHZhbHVlXG5cdFx0Ly9cblx0XHR0aGlzLnNldCggb3duZXIsIGtleSwgdmFsdWUgKTtcblxuXHRcdC8vIFNpbmNlIHRoZSBcInNldFwiIHBhdGggY2FuIGhhdmUgdHdvIHBvc3NpYmxlIGVudHJ5IHBvaW50c1xuXHRcdC8vIHJldHVybiB0aGUgZXhwZWN0ZWQgZGF0YSBiYXNlZCBvbiB3aGljaCBwYXRoIHdhcyB0YWtlblsqXVxuXHRcdHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBrZXk7XG5cdH0sXG5cdHJlbW92ZTogZnVuY3Rpb24oIG93bmVyLCBrZXkgKSB7XG5cdFx0dmFyIGksXG5cdFx0XHRjYWNoZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblxuXHRcdGlmICggY2FjaGUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIGtleSAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0IGFycmF5IG9yIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2Yga2V5c1xuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCBrZXkgKSApIHtcblxuXHRcdFx0XHQvLyBJZiBrZXkgaXMgYW4gYXJyYXkgb2Yga2V5cy4uLlxuXHRcdFx0XHQvLyBXZSBhbHdheXMgc2V0IGNhbWVsQ2FzZSBrZXlzLCBzbyByZW1vdmUgdGhhdC5cblx0XHRcdFx0a2V5ID0ga2V5Lm1hcCggY2FtZWxDYXNlICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRrZXkgPSBjYW1lbENhc2UoIGtleSApO1xuXG5cdFx0XHRcdC8vIElmIGEga2V5IHdpdGggdGhlIHNwYWNlcyBleGlzdHMsIHVzZSBpdC5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCBjcmVhdGUgYW4gYXJyYXkgYnkgbWF0Y2hpbmcgbm9uLXdoaXRlc3BhY2Vcblx0XHRcdFx0a2V5ID0ga2V5IGluIGNhY2hlID9cblx0XHRcdFx0XHRbIGtleSBdIDpcblx0XHRcdFx0XHQoIGtleS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdICk7XG5cdFx0XHR9XG5cblx0XHRcdGkgPSBrZXkubGVuZ3RoO1xuXG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlbIGkgXSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSB0aGUgZXhwYW5kbyBpZiB0aGVyZSdzIG5vIG1vcmUgZGF0YVxuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHwgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGNhY2hlICkgKSB7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDVcblx0XHRcdC8vIFdlYmtpdCAmIEJsaW5rIHBlcmZvcm1hbmNlIHN1ZmZlcnMgd2hlbiBkZWxldGluZyBwcm9wZXJ0aWVzXG5cdFx0XHQvLyBmcm9tIERPTSBub2Rlcywgc28gc2V0IHRvIHVuZGVmaW5lZCBpbnN0ZWFkXG5cdFx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0zNzg2MDcgKGJ1ZyByZXN0cmljdGVkKVxuXHRcdFx0aWYgKCBvd25lci5ub2RlVHlwZSApIHtcblx0XHRcdFx0b3duZXJbIHRoaXMuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGVsZXRlIG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBvd25lciApIHtcblx0XHR2YXIgY2FjaGUgPSBvd25lclsgdGhpcy5leHBhbmRvIF07XG5cdFx0cmV0dXJuIGNhY2hlICE9PSB1bmRlZmluZWQgJiYgIWpRdWVyeS5pc0VtcHR5T2JqZWN0KCBjYWNoZSApO1xuXHR9XG59O1xudmFyIGRhdGFQcml2ID0gbmV3IERhdGEoKTtcblxudmFyIGRhdGFVc2VyID0gbmV3IERhdGEoKTtcblxuXG5cbi8vXHRJbXBsZW1lbnRhdGlvbiBTdW1tYXJ5XG4vL1xuLy9cdDEuIEVuZm9yY2UgQVBJIHN1cmZhY2UgYW5kIHNlbWFudGljIGNvbXBhdGliaWxpdHkgd2l0aCAxLjkueCBicmFuY2hcbi8vXHQyLiBJbXByb3ZlIHRoZSBtb2R1bGUncyBtYWludGFpbmFiaWxpdHkgYnkgcmVkdWNpbmcgdGhlIHN0b3JhZ2Vcbi8vXHRcdHBhdGhzIHRvIGEgc2luZ2xlIG1lY2hhbmlzbS5cbi8vXHQzLiBVc2UgdGhlIHNhbWUgc2luZ2xlIG1lY2hhbmlzbSB0byBzdXBwb3J0IFwicHJpdmF0ZVwiIGFuZCBcInVzZXJcIiBkYXRhLlxuLy9cdDQuIF9OZXZlcl8gZXhwb3NlIFwicHJpdmF0ZVwiIGRhdGEgdG8gdXNlciBjb2RlIChUT0RPOiBEcm9wIF9kYXRhLCBfcmVtb3ZlRGF0YSlcbi8vXHQ1LiBBdm9pZCBleHBvc2luZyBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9uIHVzZXIgb2JqZWN0cyAoZWcuIGV4cGFuZG8gcHJvcGVydGllcylcbi8vXHQ2LiBQcm92aWRlIGEgY2xlYXIgcGF0aCBmb3IgaW1wbGVtZW50YXRpb24gdXBncmFkZSB0byBXZWFrTWFwIGluIDIwMTRcblxudmFyIHJicmFjZSA9IC9eKD86XFx7W1xcd1xcV10qXFx9fFxcW1tcXHdcXFddKlxcXSkkLyxcblx0cm11bHRpRGFzaCA9IC9bQS1aXS9nO1xuXG5mdW5jdGlvbiBnZXREYXRhKCBkYXRhICkge1xuXHRpZiAoIGRhdGEgPT09IFwidHJ1ZVwiICkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aWYgKCBkYXRhID09PSBcImZhbHNlXCIgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aWYgKCBkYXRhID09PSBcIm51bGxcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIE9ubHkgY29udmVydCB0byBhIG51bWJlciBpZiBpdCBkb2Vzbid0IGNoYW5nZSB0aGUgc3RyaW5nXG5cdGlmICggZGF0YSA9PT0gK2RhdGEgKyBcIlwiICkge1xuXHRcdHJldHVybiArZGF0YTtcblx0fVxuXG5cdGlmICggcmJyYWNlLnRlc3QoIGRhdGEgKSApIHtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZSggZGF0YSApO1xuXHR9XG5cblx0cmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGRhdGFBdHRyKCBlbGVtLCBrZXksIGRhdGEgKSB7XG5cdHZhciBuYW1lO1xuXG5cdC8vIElmIG5vdGhpbmcgd2FzIGZvdW5kIGludGVybmFsbHksIHRyeSB0byBmZXRjaCBhbnlcblx0Ly8gZGF0YSBmcm9tIHRoZSBIVE1MNSBkYXRhLSogYXR0cmlidXRlXG5cdGlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0bmFtZSA9IFwiZGF0YS1cIiArIGtleS5yZXBsYWNlKCBybXVsdGlEYXNoLCBcIi0kJlwiICkudG9Mb3dlckNhc2UoKTtcblx0XHRkYXRhID0gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKTtcblxuXHRcdGlmICggdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRkYXRhID0gZ2V0RGF0YSggZGF0YSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7fVxuXG5cdFx0XHQvLyBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBkYXRhIHNvIGl0IGlzbid0IGNoYW5nZWQgbGF0ZXJcblx0XHRcdGRhdGFVc2VyLnNldCggZWxlbSwga2V5LCBkYXRhICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRhdGEgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBkYXRhO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkYXRhVXNlci5oYXNEYXRhKCBlbGVtICkgfHwgZGF0YVByaXYuaGFzRGF0YSggZWxlbSApO1xuXHR9LFxuXG5cdGRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhVXNlci5hY2Nlc3MoIGVsZW0sIG5hbWUsIGRhdGEgKTtcblx0fSxcblxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRkYXRhVXNlci5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fSxcblxuXHQvLyBUT0RPOiBOb3cgdGhhdCBhbGwgY2FsbHMgdG8gX2RhdGEgYW5kIF9yZW1vdmVEYXRhIGhhdmUgYmVlbiByZXBsYWNlZFxuXHQvLyB3aXRoIGRpcmVjdCBjYWxscyB0byBkYXRhUHJpdiBtZXRob2RzLCB0aGVzZSBjYW4gYmUgZGVwcmVjYXRlZC5cblx0X2RhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIG5hbWUsIGRhdGEgKTtcblx0fSxcblxuXHRfcmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBuYW1lICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRkYXRhOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHtcblx0XHR2YXIgaSwgbmFtZSwgZGF0YSxcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRhdHRycyA9IGVsZW0gJiYgZWxlbS5hdHRyaWJ1dGVzO1xuXG5cdFx0Ly8gR2V0cyBhbGwgdmFsdWVzXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdGhpcy5sZW5ndGggKSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhVXNlci5nZXQoIGVsZW0gKTtcblxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgIWRhdGFQcml2LmdldCggZWxlbSwgXCJoYXNEYXRhQXR0cnNcIiApICkge1xuXHRcdFx0XHRcdGkgPSBhdHRycy5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdFx0XHRcdC8vIFRoZSBhdHRycyBlbGVtZW50cyBjYW4gYmUgbnVsbCAodHJhYy0xNDg5NClcblx0XHRcdFx0XHRcdGlmICggYXR0cnNbIGkgXSApIHtcblx0XHRcdFx0XHRcdFx0bmFtZSA9IGF0dHJzWyBpIF0ubmFtZTtcblx0XHRcdFx0XHRcdFx0aWYgKCBuYW1lLmluZGV4T2YoIFwiZGF0YS1cIiApID09PSAwICkge1xuXHRcdFx0XHRcdFx0XHRcdG5hbWUgPSBjYW1lbENhc2UoIG5hbWUuc2xpY2UoIDUgKSApO1xuXHRcdFx0XHRcdFx0XHRcdGRhdGFBdHRyKCBlbGVtLCBuYW1lLCBkYXRhWyBuYW1lIF0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkYXRhUHJpdi5zZXQoIGVsZW0sIFwiaGFzRGF0YUF0dHJzXCIsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZGF0YTtcblx0XHR9XG5cblx0XHQvLyBTZXRzIG11bHRpcGxlIHZhbHVlc1xuXHRcdGlmICggdHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRkYXRhVXNlci5zZXQoIHRoaXMsIGtleSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHZhciBkYXRhO1xuXG5cdFx0XHQvLyBUaGUgY2FsbGluZyBqUXVlcnkgb2JqZWN0IChlbGVtZW50IG1hdGNoZXMpIGlzIG5vdCBlbXB0eVxuXHRcdFx0Ly8gKGFuZCB0aGVyZWZvcmUgaGFzIGFuIGVsZW1lbnQgYXBwZWFycyBhdCB0aGlzWyAwIF0pIGFuZCB0aGVcblx0XHRcdC8vIGB2YWx1ZWAgcGFyYW1ldGVyIHdhcyBub3QgdW5kZWZpbmVkLiBBbiBlbXB0eSBqUXVlcnkgb2JqZWN0XG5cdFx0XHQvLyB3aWxsIHJlc3VsdCBpbiBgdW5kZWZpbmVkYCBmb3IgZWxlbSA9IHRoaXNbIDAgXSB3aGljaCB3aWxsXG5cdFx0XHQvLyB0aHJvdyBhbiBleGNlcHRpb24gaWYgYW4gYXR0ZW1wdCB0byByZWFkIGEgZGF0YSBjYWNoZSBpcyBtYWRlLlxuXHRcdFx0aWYgKCBlbGVtICYmIHZhbHVlID09PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBnZXQgZGF0YSBmcm9tIHRoZSBjYWNoZVxuXHRcdFx0XHQvLyBUaGUga2V5IHdpbGwgYWx3YXlzIGJlIGNhbWVsQ2FzZWQgaW4gRGF0YVxuXHRcdFx0XHRkYXRhID0gZGF0YVVzZXIuZ2V0KCBlbGVtLCBrZXkgKTtcblx0XHRcdFx0aWYgKCBkYXRhICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBdHRlbXB0IHRvIFwiZGlzY292ZXJcIiB0aGUgZGF0YSBpblxuXHRcdFx0XHQvLyBIVE1MNSBjdXN0b20gZGF0YS0qIGF0dHJzXG5cdFx0XHRcdGRhdGEgPSBkYXRhQXR0ciggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gV2UgdHJpZWQgcmVhbGx5IGhhcmQsIGJ1dCB0aGUgZGF0YSBkb2Vzbid0IGV4aXN0LlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCB0aGUgZGF0YS4uLlxuXHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvLyBXZSBhbHdheXMgc3RvcmUgdGhlIGNhbWVsQ2FzZWQga2V5XG5cdFx0XHRcdGRhdGFVc2VyLnNldCggdGhpcywga2V5LCB2YWx1ZSApO1xuXHRcdFx0fSApO1xuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSwgbnVsbCwgdHJ1ZSApO1xuXHR9LFxuXG5cdHJlbW92ZURhdGE6IGZ1bmN0aW9uKCBrZXkgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRkYXRhVXNlci5yZW1vdmUoIHRoaXMsIGtleSApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5cbmpRdWVyeS5leHRlbmQoIHtcblx0cXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBxdWV1ZTtcblxuXHRcdGlmICggZWxlbSApIHtcblx0XHRcdHR5cGUgPSAoIHR5cGUgfHwgXCJmeFwiICkgKyBcInF1ZXVlXCI7XG5cdFx0XHRxdWV1ZSA9IGRhdGFQcml2LmdldCggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHQvLyBTcGVlZCB1cCBkZXF1ZXVlIGJ5IGdldHRpbmcgb3V0IHF1aWNrbHkgaWYgdGhpcyBpcyBqdXN0IGEgbG9va3VwXG5cdFx0XHRpZiAoIGRhdGEgKSB7XG5cdFx0XHRcdGlmICggIXF1ZXVlIHx8IEFycmF5LmlzQXJyYXkoIGRhdGEgKSApIHtcblx0XHRcdFx0XHRxdWV1ZSA9IGRhdGFQcml2LmFjY2VzcyggZWxlbSwgdHlwZSwgalF1ZXJ5Lm1ha2VBcnJheSggZGF0YSApICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cXVldWUucHVzaCggZGF0YSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcXVldWUgfHwgW107XG5cdFx0fVxuXHR9LFxuXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggZWxlbSwgdHlwZSApLFxuXHRcdFx0c3RhcnRMZW5ndGggPSBxdWV1ZS5sZW5ndGgsXG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCksXG5cdFx0XHRob29rcyA9IGpRdWVyeS5fcXVldWVIb29rcyggZWxlbSwgdHlwZSApLFxuXHRcdFx0bmV4dCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggZWxlbSwgdHlwZSApO1xuXHRcdFx0fTtcblxuXHRcdC8vIElmIHRoZSBmeCBxdWV1ZSBpcyBkZXF1ZXVlZCwgYWx3YXlzIHJlbW92ZSB0aGUgcHJvZ3Jlc3Mgc2VudGluZWxcblx0XHRpZiAoIGZuID09PSBcImlucHJvZ3Jlc3NcIiApIHtcblx0XHRcdGZuID0gcXVldWUuc2hpZnQoKTtcblx0XHRcdHN0YXJ0TGVuZ3RoLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBmbiApIHtcblxuXHRcdFx0Ly8gQWRkIGEgcHJvZ3Jlc3Mgc2VudGluZWwgdG8gcHJldmVudCB0aGUgZnggcXVldWUgZnJvbSBiZWluZ1xuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBkZXF1ZXVlZFxuXHRcdFx0aWYgKCB0eXBlID09PSBcImZ4XCIgKSB7XG5cdFx0XHRcdHF1ZXVlLnVuc2hpZnQoIFwiaW5wcm9ncmVzc1wiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENsZWFyIHVwIHRoZSBsYXN0IHF1ZXVlIHN0b3AgZnVuY3Rpb25cblx0XHRcdGRlbGV0ZSBob29rcy5zdG9wO1xuXHRcdFx0Zm4uY2FsbCggZWxlbSwgbmV4dCwgaG9va3MgKTtcblx0XHR9XG5cblx0XHRpZiAoICFzdGFydExlbmd0aCAmJiBob29rcyApIHtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUoKTtcblx0XHR9XG5cdH0sXG5cblx0Ly8gTm90IHB1YmxpYyAtIGdlbmVyYXRlIGEgcXVldWVIb29rcyBvYmplY3QsIG9yIHJldHVybiB0aGUgY3VycmVudCBvbmVcblx0X3F1ZXVlSG9va3M6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHZhciBrZXkgPSB0eXBlICsgXCJxdWV1ZUhvb2tzXCI7XG5cdFx0cmV0dXJuIGRhdGFQcml2LmdldCggZWxlbSwga2V5ICkgfHwgZGF0YVByaXYuYWNjZXNzKCBlbGVtLCBrZXksIHtcblx0XHRcdGVtcHR5OiBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKS5hZGQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFsgdHlwZSArIFwicXVldWVcIiwga2V5IF0gKTtcblx0XHRcdH0gKVxuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHF1ZXVlOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgc2V0dGVyID0gMjtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRkYXRhID0gdHlwZTtcblx0XHRcdHR5cGUgPSBcImZ4XCI7XG5cdFx0XHRzZXR0ZXItLTtcblx0XHR9XG5cblx0XHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggPCBzZXR0ZXIgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LnF1ZXVlKCB0aGlzWyAwIF0sIHR5cGUgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZGF0YSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMgOlxuXHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIHF1ZXVlID0galF1ZXJ5LnF1ZXVlKCB0aGlzLCB0eXBlLCBkYXRhICk7XG5cblx0XHRcdFx0Ly8gRW5zdXJlIGEgaG9va3MgZm9yIHRoaXMgcXVldWVcblx0XHRcdFx0alF1ZXJ5Ll9xdWV1ZUhvb2tzKCB0aGlzLCB0eXBlICk7XG5cblx0XHRcdFx0aWYgKCB0eXBlID09PSBcImZ4XCIgJiYgcXVldWVbIDAgXSAhPT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHR9LFxuXHRkZXF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0fSApO1xuXHR9LFxuXHRjbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdH0sXG5cblx0Ly8gR2V0IGEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHF1ZXVlcyBvZiBhIGNlcnRhaW4gdHlwZVxuXHQvLyBhcmUgZW1wdGllZCAoZnggaXMgdGhlIHR5cGUgYnkgZGVmYXVsdClcblx0cHJvbWlzZTogZnVuY3Rpb24oIHR5cGUsIG9iaiApIHtcblx0XHR2YXIgdG1wLFxuXHRcdFx0Y291bnQgPSAxLFxuXHRcdFx0ZGVmZXIgPSBqUXVlcnkuRGVmZXJyZWQoKSxcblx0XHRcdGVsZW1lbnRzID0gdGhpcyxcblx0XHRcdGkgPSB0aGlzLmxlbmd0aCxcblx0XHRcdHJlc29sdmUgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAhKCAtLWNvdW50ICkgKSB7XG5cdFx0XHRcdFx0ZGVmZXIucmVzb2x2ZVdpdGgoIGVsZW1lbnRzLCBbIGVsZW1lbnRzIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRvYmogPSB0eXBlO1xuXHRcdFx0dHlwZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHR0bXAgPSBkYXRhUHJpdi5nZXQoIGVsZW1lbnRzWyBpIF0sIHR5cGUgKyBcInF1ZXVlSG9va3NcIiApO1xuXHRcdFx0aWYgKCB0bXAgJiYgdG1wLmVtcHR5ICkge1xuXHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0XHR0bXAuZW1wdHkuYWRkKCByZXNvbHZlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJlc29sdmUoKTtcblx0XHRyZXR1cm4gZGVmZXIucHJvbWlzZSggb2JqICk7XG5cdH1cbn0gKTtcbnZhciBwbnVtID0gKCAvWystXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVsrLV0/XFxkK3wpLyApLnNvdXJjZTtcblxudmFyIHJjc3NOdW0gPSBuZXcgUmVnRXhwKCBcIl4oPzooWystXSk9fCkoXCIgKyBwbnVtICsgXCIpKFthLXolXSopJFwiLCBcImlcIiApO1xuXG5cbnZhciBjc3NFeHBhbmQgPSBbIFwiVG9wXCIsIFwiUmlnaHRcIiwgXCJCb3R0b21cIiwgXCJMZWZ0XCIgXTtcblxudmFyIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuXG5cblx0dmFyIGlzQXR0YWNoZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApO1xuXHRcdH0sXG5cdFx0Y29tcG9zZWQgPSB7IGNvbXBvc2VkOiB0cnVlIH07XG5cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxMiAtIDE4KywgaU9TIDEwLjAgLSAxMC4yIG9ubHlcblx0Ly8gQ2hlY2sgYXR0YWNobWVudCBhY3Jvc3Mgc2hhZG93IERPTSBib3VuZGFyaWVzIHdoZW4gcG9zc2libGUgKGdoLTM1MDQpXG5cdC8vIFN1cHBvcnQ6IGlPUyAxMC4wLTEwLjIgb25seVxuXHQvLyBFYXJseSBpT1MgMTAgdmVyc2lvbnMgc3VwcG9ydCBgYXR0YWNoU2hhZG93YCBidXQgbm90IGBnZXRSb290Tm9kZWAsXG5cdC8vIGxlYWRpbmcgdG8gZXJyb3JzLiBXZSBuZWVkIHRvIGNoZWNrIGZvciBgZ2V0Um9vdE5vZGVgLlxuXHRpZiAoIGRvY3VtZW50RWxlbWVudC5nZXRSb290Tm9kZSApIHtcblx0XHRpc0F0dGFjaGVkID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKSB8fFxuXHRcdFx0XHRlbGVtLmdldFJvb3ROb2RlKCBjb21wb3NlZCApID09PSBlbGVtLm93bmVyRG9jdW1lbnQ7XG5cdFx0fTtcblx0fVxudmFyIGlzSGlkZGVuV2l0aGluVHJlZSA9IGZ1bmN0aW9uKCBlbGVtLCBlbCApIHtcblxuXHRcdC8vIGlzSGlkZGVuV2l0aGluVHJlZSBtaWdodCBiZSBjYWxsZWQgZnJvbSBqUXVlcnkjZmlsdGVyIGZ1bmN0aW9uO1xuXHRcdC8vIGluIHRoYXQgY2FzZSwgZWxlbWVudCB3aWxsIGJlIHNlY29uZCBhcmd1bWVudFxuXHRcdGVsZW0gPSBlbCB8fCBlbGVtO1xuXG5cdFx0Ly8gSW5saW5lIHN0eWxlIHRydW1wcyBhbGxcblx0XHRyZXR1cm4gZWxlbS5zdHlsZS5kaXNwbGF5ID09PSBcIm5vbmVcIiB8fFxuXHRcdFx0ZWxlbS5zdHlsZS5kaXNwbGF5ID09PSBcIlwiICYmXG5cblx0XHRcdC8vIE90aGVyd2lzZSwgY2hlY2sgY29tcHV0ZWQgc3R5bGVcblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD00MyAtIDQ1XG5cdFx0XHQvLyBEaXNjb25uZWN0ZWQgZWxlbWVudHMgY2FuIGhhdmUgY29tcHV0ZWQgZGlzcGxheTogbm9uZSwgc28gZmlyc3QgY29uZmlybSB0aGF0IGVsZW0gaXNcblx0XHRcdC8vIGluIHRoZSBkb2N1bWVudC5cblx0XHRcdGlzQXR0YWNoZWQoIGVsZW0gKSAmJlxuXG5cdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApID09PSBcIm5vbmVcIjtcblx0fTtcblxuXG5cbmZ1bmN0aW9uIGFkanVzdENTUyggZWxlbSwgcHJvcCwgdmFsdWVQYXJ0cywgdHdlZW4gKSB7XG5cdHZhciBhZGp1c3RlZCwgc2NhbGUsXG5cdFx0bWF4SXRlcmF0aW9ucyA9IDIwLFxuXHRcdGN1cnJlbnRWYWx1ZSA9IHR3ZWVuID9cblx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gdHdlZW4uY3VyKCk7XG5cdFx0XHR9IDpcblx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4galF1ZXJ5LmNzcyggZWxlbSwgcHJvcCwgXCJcIiApO1xuXHRcdFx0fSxcblx0XHRpbml0aWFsID0gY3VycmVudFZhbHVlKCksXG5cdFx0dW5pdCA9IHZhbHVlUGFydHMgJiYgdmFsdWVQYXJ0c1sgMyBdIHx8ICggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdID8gXCJcIiA6IFwicHhcIiApLFxuXG5cdFx0Ly8gU3RhcnRpbmcgdmFsdWUgY29tcHV0YXRpb24gaXMgcmVxdWlyZWQgZm9yIHBvdGVudGlhbCB1bml0IG1pc21hdGNoZXNcblx0XHRpbml0aWFsSW5Vbml0ID0gZWxlbS5ub2RlVHlwZSAmJlxuXHRcdFx0KCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gfHwgdW5pdCAhPT0gXCJweFwiICYmICtpbml0aWFsICkgJiZcblx0XHRcdHJjc3NOdW0uZXhlYyggalF1ZXJ5LmNzcyggZWxlbSwgcHJvcCApICk7XG5cblx0aWYgKCBpbml0aWFsSW5Vbml0ICYmIGluaXRpYWxJblVuaXRbIDMgXSAhPT0gdW5pdCApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD01NFxuXHRcdC8vIEhhbHZlIHRoZSBpdGVyYXRpb24gdGFyZ2V0IHZhbHVlIHRvIHByZXZlbnQgaW50ZXJmZXJlbmNlIGZyb20gQ1NTIHVwcGVyIGJvdW5kcyAoZ2gtMjE0NClcblx0XHRpbml0aWFsID0gaW5pdGlhbCAvIDI7XG5cblx0XHQvLyBUcnVzdCB1bml0cyByZXBvcnRlZCBieSBqUXVlcnkuY3NzXG5cdFx0dW5pdCA9IHVuaXQgfHwgaW5pdGlhbEluVW5pdFsgMyBdO1xuXG5cdFx0Ly8gSXRlcmF0aXZlbHkgYXBwcm94aW1hdGUgZnJvbSBhIG5vbnplcm8gc3RhcnRpbmcgcG9pbnRcblx0XHRpbml0aWFsSW5Vbml0ID0gK2luaXRpYWwgfHwgMTtcblxuXHRcdHdoaWxlICggbWF4SXRlcmF0aW9ucy0tICkge1xuXG5cdFx0XHQvLyBFdmFsdWF0ZSBhbmQgdXBkYXRlIG91ciBiZXN0IGd1ZXNzIChkb3VibGluZyBndWVzc2VzIHRoYXQgemVybyBvdXQpLlxuXHRcdFx0Ly8gRmluaXNoIGlmIHRoZSBzY2FsZSBlcXVhbHMgb3IgY3Jvc3NlcyAxIChtYWtpbmcgdGhlIG9sZCpuZXcgcHJvZHVjdCBub24tcG9zaXRpdmUpLlxuXHRcdFx0alF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wLCBpbml0aWFsSW5Vbml0ICsgdW5pdCApO1xuXHRcdFx0aWYgKCAoIDEgLSBzY2FsZSApICogKCAxIC0gKCBzY2FsZSA9IGN1cnJlbnRWYWx1ZSgpIC8gaW5pdGlhbCB8fCAwLjUgKSApIDw9IDAgKSB7XG5cdFx0XHRcdG1heEl0ZXJhdGlvbnMgPSAwO1xuXHRcdFx0fVxuXHRcdFx0aW5pdGlhbEluVW5pdCA9IGluaXRpYWxJblVuaXQgLyBzY2FsZTtcblxuXHRcdH1cblxuXHRcdGluaXRpYWxJblVuaXQgPSBpbml0aWFsSW5Vbml0ICogMjtcblx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIGluaXRpYWxJblVuaXQgKyB1bml0ICk7XG5cblx0XHQvLyBNYWtlIHN1cmUgd2UgdXBkYXRlIHRoZSB0d2VlbiBwcm9wZXJ0aWVzIGxhdGVyIG9uXG5cdFx0dmFsdWVQYXJ0cyA9IHZhbHVlUGFydHMgfHwgW107XG5cdH1cblxuXHRpZiAoIHZhbHVlUGFydHMgKSB7XG5cdFx0aW5pdGlhbEluVW5pdCA9ICtpbml0aWFsSW5Vbml0IHx8ICtpbml0aWFsIHx8IDA7XG5cblx0XHQvLyBBcHBseSByZWxhdGl2ZSBvZmZzZXQgKCs9Ly09KSBpZiBzcGVjaWZpZWRcblx0XHRhZGp1c3RlZCA9IHZhbHVlUGFydHNbIDEgXSA/XG5cdFx0XHRpbml0aWFsSW5Vbml0ICsgKCB2YWx1ZVBhcnRzWyAxIF0gKyAxICkgKiB2YWx1ZVBhcnRzWyAyIF0gOlxuXHRcdFx0K3ZhbHVlUGFydHNbIDIgXTtcblx0XHRpZiAoIHR3ZWVuICkge1xuXHRcdFx0dHdlZW4udW5pdCA9IHVuaXQ7XG5cdFx0XHR0d2Vlbi5zdGFydCA9IGluaXRpYWxJblVuaXQ7XG5cdFx0XHR0d2Vlbi5lbmQgPSBhZGp1c3RlZDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGFkanVzdGVkO1xufVxuXG5cbnZhciBkZWZhdWx0RGlzcGxheU1hcCA9IHt9O1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0RGlzcGxheSggZWxlbSApIHtcblx0dmFyIHRlbXAsXG5cdFx0ZG9jID0gZWxlbS5vd25lckRvY3VtZW50LFxuXHRcdG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZSxcblx0XHRkaXNwbGF5ID0gZGVmYXVsdERpc3BsYXlNYXBbIG5vZGVOYW1lIF07XG5cblx0aWYgKCBkaXNwbGF5ICkge1xuXHRcdHJldHVybiBkaXNwbGF5O1xuXHR9XG5cblx0dGVtcCA9IGRvYy5ib2R5LmFwcGVuZENoaWxkKCBkb2MuY3JlYXRlRWxlbWVudCggbm9kZU5hbWUgKSApO1xuXHRkaXNwbGF5ID0galF1ZXJ5LmNzcyggdGVtcCwgXCJkaXNwbGF5XCIgKTtcblxuXHR0ZW1wLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRlbXAgKTtcblxuXHRpZiAoIGRpc3BsYXkgPT09IFwibm9uZVwiICkge1xuXHRcdGRpc3BsYXkgPSBcImJsb2NrXCI7XG5cdH1cblx0ZGVmYXVsdERpc3BsYXlNYXBbIG5vZGVOYW1lIF0gPSBkaXNwbGF5O1xuXG5cdHJldHVybiBkaXNwbGF5O1xufVxuXG5mdW5jdGlvbiBzaG93SGlkZSggZWxlbWVudHMsIHNob3cgKSB7XG5cdHZhciBkaXNwbGF5LCBlbGVtLFxuXHRcdHZhbHVlcyA9IFtdLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cblx0Ly8gRGV0ZXJtaW5lIG5ldyBkaXNwbGF5IHZhbHVlIGZvciBlbGVtZW50cyB0aGF0IG5lZWQgdG8gY2hhbmdlXG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0ZWxlbSA9IGVsZW1lbnRzWyBpbmRleCBdO1xuXHRcdGlmICggIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRkaXNwbGF5ID0gZWxlbS5zdHlsZS5kaXNwbGF5O1xuXHRcdGlmICggc2hvdyApIHtcblxuXHRcdFx0Ly8gU2luY2Ugd2UgZm9yY2UgdmlzaWJpbGl0eSB1cG9uIGNhc2NhZGUtaGlkZGVuIGVsZW1lbnRzLCBhbiBpbW1lZGlhdGUgKGFuZCBzbG93KVxuXHRcdFx0Ly8gY2hlY2sgaXMgcmVxdWlyZWQgaW4gdGhpcyBmaXJzdCBsb29wIHVubGVzcyB3ZSBoYXZlIGEgbm9uZW1wdHkgZGlzcGxheSB2YWx1ZSAoZWl0aGVyXG5cdFx0XHQvLyBpbmxpbmUgb3IgYWJvdXQtdG8tYmUtcmVzdG9yZWQpXG5cdFx0XHRpZiAoIGRpc3BsYXkgPT09IFwibm9uZVwiICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBkYXRhUHJpdi5nZXQoIGVsZW0sIFwiZGlzcGxheVwiICkgfHwgbnVsbDtcblx0XHRcdFx0aWYgKCAhdmFsdWVzWyBpbmRleCBdICkge1xuXHRcdFx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmICggZWxlbS5zdHlsZS5kaXNwbGF5ID09PSBcIlwiICYmIGlzSGlkZGVuV2l0aGluVHJlZSggZWxlbSApICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBnZXREZWZhdWx0RGlzcGxheSggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGRpc3BsYXkgIT09IFwibm9uZVwiICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBcIm5vbmVcIjtcblxuXHRcdFx0XHQvLyBSZW1lbWJlciB3aGF0IHdlJ3JlIG92ZXJ3cml0aW5nXG5cdFx0XHRcdGRhdGFQcml2LnNldCggZWxlbSwgXCJkaXNwbGF5XCIsIGRpc3BsYXkgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBTZXQgdGhlIGRpc3BsYXkgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3AgdG8gYXZvaWQgY29uc3RhbnQgcmVmbG93XG5cdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCB2YWx1ZXNbIGluZGV4IF0gIT0gbnVsbCApIHtcblx0XHRcdGVsZW1lbnRzWyBpbmRleCBdLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZXNbIGluZGV4IF07XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVsZW1lbnRzO1xufVxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHNob3c6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBzaG93SGlkZSggdGhpcywgdHJ1ZSApO1xuXHR9LFxuXHRoaWRlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2hvd0hpZGUoIHRoaXMgKTtcblx0fSxcblx0dG9nZ2xlOiBmdW5jdGlvbiggc3RhdGUgKSB7XG5cdFx0aWYgKCB0eXBlb2Ygc3RhdGUgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdFx0cmV0dXJuIHN0YXRlID8gdGhpcy5zaG93KCkgOiB0aGlzLmhpZGUoKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggaXNIaWRkZW5XaXRoaW5UcmVlKCB0aGlzICkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnNob3coKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cbn0gKTtcbnZhciByY2hlY2thYmxlVHlwZSA9ICggL14oPzpjaGVja2JveHxyYWRpbykkL2kgKTtcblxudmFyIHJ0YWdOYW1lID0gKCAvPChbYS16XVteXFwvXFwwPlxceDIwXFx0XFxyXFxuXFxmXSopL2kgKTtcblxudmFyIHJzY3JpcHRUeXBlID0gKCAvXiR8Xm1vZHVsZSR8XFwvKD86amF2YXxlY21hKXNjcmlwdC9pICk7XG5cblxuXG4oIGZ1bmN0aW9uKCkge1xuXHR2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0ZGl2ID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSApLFxuXHRcdGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seVxuXHQvLyBDaGVjayBzdGF0ZSBsb3N0IGlmIHRoZSBuYW1lIGlzIHNldCAodHJhYy0xMTIxNylcblx0Ly8gU3VwcG9ydDogV2luZG93cyBXZWIgQXBwcyAoV1dBKVxuXHQvLyBgbmFtZWAgYW5kIGB0eXBlYCBtdXN0IHVzZSAuc2V0QXR0cmlidXRlIGZvciBXV0EgKHRyYWMtMTQ5MDEpXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwicmFkaW9cIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwiY2hlY2tlZFwiLCBcImNoZWNrZWRcIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcInRcIiApO1xuXG5cdGRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4xIG9ubHlcblx0Ly8gT2xkZXIgV2ViS2l0IGRvZXNuJ3QgY2xvbmUgY2hlY2tlZCBzdGF0ZSBjb3JyZWN0bHkgaW4gZnJhZ21lbnRzXG5cdHN1cHBvcnQuY2hlY2tDbG9uZSA9IGRpdi5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gTWFrZSBzdXJlIHRleHRhcmVhIChhbmQgY2hlY2tib3gpIGRlZmF1bHRWYWx1ZSBpcyBwcm9wZXJseSBjbG9uZWRcblx0ZGl2LmlubmVySFRNTCA9IFwiPHRleHRhcmVhPng8L3RleHRhcmVhPlwiO1xuXHRzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gISFkaXYuY2xvbmVOb2RlKCB0cnVlICkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHQvLyBJRSA8PTkgcmVwbGFjZXMgPG9wdGlvbj4gdGFncyB3aXRoIHRoZWlyIGNvbnRlbnRzIHdoZW4gaW5zZXJ0ZWQgb3V0c2lkZSBvZlxuXHQvLyB0aGUgc2VsZWN0IGVsZW1lbnQuXG5cdGRpdi5pbm5lckhUTUwgPSBcIjxvcHRpb24+PC9vcHRpb24+XCI7XG5cdHN1cHBvcnQub3B0aW9uID0gISFkaXYubGFzdENoaWxkO1xufSApKCk7XG5cblxuLy8gV2UgaGF2ZSB0byBjbG9zZSB0aGVzZSB0YWdzIHRvIHN1cHBvcnQgWEhUTUwgKHRyYWMtMTMyMDApXG52YXIgd3JhcE1hcCA9IHtcblxuXHQvLyBYSFRNTCBwYXJzZXJzIGRvIG5vdCBtYWdpY2FsbHkgaW5zZXJ0IGVsZW1lbnRzIGluIHRoZVxuXHQvLyBzYW1lIHdheSB0aGF0IHRhZyBzb3VwIHBhcnNlcnMgZG8uIFNvIHdlIGNhbm5vdCBzaG9ydGVuXG5cdC8vIHRoaXMgYnkgb21pdHRpbmcgPHRib2R5PiBvciBvdGhlciByZXF1aXJlZCBlbGVtZW50cy5cblx0dGhlYWQ6IFsgMSwgXCI8dGFibGU+XCIsIFwiPC90YWJsZT5cIiBdLFxuXHRjb2w6IFsgMiwgXCI8dGFibGU+PGNvbGdyb3VwPlwiLCBcIjwvY29sZ3JvdXA+PC90YWJsZT5cIiBdLFxuXHR0cjogWyAyLCBcIjx0YWJsZT48dGJvZHk+XCIsIFwiPC90Ym9keT48L3RhYmxlPlwiIF0sXG5cdHRkOiBbIDMsIFwiPHRhYmxlPjx0Ym9keT48dHI+XCIsIFwiPC90cj48L3Rib2R5PjwvdGFibGU+XCIgXSxcblxuXHRfZGVmYXVsdDogWyAwLCBcIlwiLCBcIlwiIF1cbn07XG5cbndyYXBNYXAudGJvZHkgPSB3cmFwTWFwLnRmb290ID0gd3JhcE1hcC5jb2xncm91cCA9IHdyYXBNYXAuY2FwdGlvbiA9IHdyYXBNYXAudGhlYWQ7XG53cmFwTWFwLnRoID0gd3JhcE1hcC50ZDtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbmlmICggIXN1cHBvcnQub3B0aW9uICkge1xuXHR3cmFwTWFwLm9wdGdyb3VwID0gd3JhcE1hcC5vcHRpb24gPSBbIDEsIFwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPlwiLCBcIjwvc2VsZWN0PlwiIF07XG59XG5cblxuZnVuY3Rpb24gZ2V0QWxsKCBjb250ZXh0LCB0YWcgKSB7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHQvLyBVc2UgdHlwZW9mIHRvIGF2b2lkIHplcm8tYXJndW1lbnQgbWV0aG9kIGludm9jYXRpb24gb24gaG9zdCBvYmplY3RzICh0cmFjLTE1MTUxKVxuXHR2YXIgcmV0O1xuXG5cdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0cmV0ID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnIHx8IFwiKlwiICk7XG5cblx0fSBlbHNlIGlmICggdHlwZW9mIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRyZXQgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIHRhZyB8fCBcIipcIiApO1xuXG5cdH0gZWxzZSB7XG5cdFx0cmV0ID0gW107XG5cdH1cblxuXHRpZiAoIHRhZyA9PT0gdW5kZWZpbmVkIHx8IHRhZyAmJiBub2RlTmFtZSggY29udGV4dCwgdGFnICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5tZXJnZSggWyBjb250ZXh0IF0sIHJldCApO1xuXHR9XG5cblx0cmV0dXJuIHJldDtcbn1cblxuXG4vLyBNYXJrIHNjcmlwdHMgYXMgaGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWRcbmZ1bmN0aW9uIHNldEdsb2JhbEV2YWwoIGVsZW1zLCByZWZFbGVtZW50cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGwgPSBlbGVtcy5sZW5ndGg7XG5cblx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdGRhdGFQcml2LnNldChcblx0XHRcdGVsZW1zWyBpIF0sXG5cdFx0XHRcImdsb2JhbEV2YWxcIixcblx0XHRcdCFyZWZFbGVtZW50cyB8fCBkYXRhUHJpdi5nZXQoIHJlZkVsZW1lbnRzWyBpIF0sIFwiZ2xvYmFsRXZhbFwiIClcblx0XHQpO1xuXHR9XG59XG5cblxudmFyIHJodG1sID0gLzx8JiM/XFx3KzsvO1xuXG5mdW5jdGlvbiBidWlsZEZyYWdtZW50KCBlbGVtcywgY29udGV4dCwgc2NyaXB0cywgc2VsZWN0aW9uLCBpZ25vcmVkICkge1xuXHR2YXIgZWxlbSwgdG1wLCB0YWcsIHdyYXAsIGF0dGFjaGVkLCBqLFxuXHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0bm9kZXMgPSBbXSxcblx0XHRpID0gMCxcblx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRlbGVtID0gZWxlbXNbIGkgXTtcblxuXHRcdGlmICggZWxlbSB8fCBlbGVtID09PSAwICkge1xuXG5cdFx0XHQvLyBBZGQgbm9kZXMgZGlyZWN0bHlcblx0XHRcdGlmICggdG9UeXBlKCBlbGVtICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgZWxlbS5ub2RlVHlwZSA/IFsgZWxlbSBdIDogZWxlbSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IG5vbi1odG1sIGludG8gYSB0ZXh0IG5vZGVcblx0XHRcdH0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XG5cdFx0XHRcdG5vZGVzLnB1c2goIGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IGh0bWwgaW50byBET00gbm9kZXNcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRtcCA9IHRtcCB8fCBmcmFnbWVudC5hcHBlbmRDaGlsZCggY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKTtcblxuXHRcdFx0XHQvLyBEZXNlcmlhbGl6ZSBhIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9uXG5cdFx0XHRcdHRhZyA9ICggcnRhZ05hbWUuZXhlYyggZWxlbSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcblx0XHRcdFx0dG1wLmlubmVySFRNTCA9IHdyYXBbIDEgXSArIGpRdWVyeS5odG1sUHJlZmlsdGVyKCBlbGVtICkgKyB3cmFwWyAyIF07XG5cblx0XHRcdFx0Ly8gRGVzY2VuZCB0aHJvdWdoIHdyYXBwZXJzIHRvIHRoZSByaWdodCBjb250ZW50XG5cdFx0XHRcdGogPSB3cmFwWyAwIF07XG5cdFx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRcdHRtcCA9IHRtcC5sYXN0Q2hpbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIG5vZGVzLCB0bXAuY2hpbGROb2RlcyApO1xuXG5cdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSB0b3AtbGV2ZWwgY29udGFpbmVyXG5cdFx0XHRcdHRtcCA9IGZyYWdtZW50LmZpcnN0Q2hpbGQ7XG5cblx0XHRcdFx0Ly8gRW5zdXJlIHRoZSBjcmVhdGVkIG5vZGVzIGFyZSBvcnBoYW5lZCAodHJhYy0xMjM5Milcblx0XHRcdFx0dG1wLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZW1vdmUgd3JhcHBlciBmcm9tIGZyYWdtZW50XG5cdGZyYWdtZW50LnRleHRDb250ZW50ID0gXCJcIjtcblxuXHRpID0gMDtcblx0d2hpbGUgKCAoIGVsZW0gPSBub2Rlc1sgaSsrIF0gKSApIHtcblxuXHRcdC8vIFNraXAgZWxlbWVudHMgYWxyZWFkeSBpbiB0aGUgY29udGV4dCBjb2xsZWN0aW9uICh0cmFjLTQwODcpXG5cdFx0aWYgKCBzZWxlY3Rpb24gJiYgalF1ZXJ5LmluQXJyYXkoIGVsZW0sIHNlbGVjdGlvbiApID4gLTEgKSB7XG5cdFx0XHRpZiAoIGlnbm9yZWQgKSB7XG5cdFx0XHRcdGlnbm9yZWQucHVzaCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0YXR0YWNoZWQgPSBpc0F0dGFjaGVkKCBlbGVtICk7XG5cblx0XHQvLyBBcHBlbmQgdG8gZnJhZ21lbnRcblx0XHR0bXAgPSBnZXRBbGwoIGZyYWdtZW50LmFwcGVuZENoaWxkKCBlbGVtICksIFwic2NyaXB0XCIgKTtcblxuXHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRpZiAoIGF0dGFjaGVkICkge1xuXHRcdFx0c2V0R2xvYmFsRXZhbCggdG1wICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FwdHVyZSBleGVjdXRhYmxlc1xuXHRcdGlmICggc2NyaXB0cyApIHtcblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSB0bXBbIGorKyBdICkgKSB7XG5cdFx0XHRcdGlmICggcnNjcmlwdFR5cGUudGVzdCggZWxlbS50eXBlIHx8IFwiXCIgKSApIHtcblx0XHRcdFx0XHRzY3JpcHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmcmFnbWVudDtcbn1cblxuXG52YXIgcnR5cGVuYW1lc3BhY2UgPSAvXihbXi5dKikoPzpcXC4oLispfCkvO1xuXG5mdW5jdGlvbiByZXR1cm5UcnVlKCkge1xuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmV0dXJuRmFsc2UoKSB7XG5cdHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gb24oIGVsZW0sIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIG9uZSApIHtcblx0dmFyIG9yaWdGbiwgdHlwZTtcblxuXHQvLyBUeXBlcyBjYW4gYmUgYSBtYXAgb2YgdHlwZXMvaGFuZGxlcnNcblx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyAoIHR5cGVzLU9iamVjdCwgc2VsZWN0b3IsIGRhdGEgKVxuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLU9iamVjdCwgZGF0YSApXG5cdFx0XHRkYXRhID0gZGF0YSB8fCBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0b24oIGVsZW0sIHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIGVsZW07XG5cdH1cblxuXHRpZiAoIGRhdGEgPT0gbnVsbCAmJiBmbiA9PSBudWxsICkge1xuXG5cdFx0Ly8gKCB0eXBlcywgZm4gKVxuXHRcdGZuID0gc2VsZWN0b3I7XG5cdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHR9IGVsc2UgaWYgKCBmbiA9PSBudWxsICkge1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBzZWxlY3RvciwgZm4gKVxuXHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBkYXRhLCBmbiApXG5cdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRkYXRhID0gc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XG5cdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0fSBlbHNlIGlmICggIWZuICkge1xuXHRcdHJldHVybiBlbGVtO1xuXHR9XG5cblx0aWYgKCBvbmUgPT09IDEgKSB7XG5cdFx0b3JpZ0ZuID0gZm47XG5cdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cblx0XHRcdC8vIENhbiB1c2UgYW4gZW1wdHkgc2V0LCBzaW5jZSBldmVudCBjb250YWlucyB0aGUgaW5mb1xuXHRcdFx0alF1ZXJ5KCkub2ZmKCBldmVudCApO1xuXHRcdFx0cmV0dXJuIG9yaWdGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fTtcblxuXHRcdC8vIFVzZSBzYW1lIGd1aWQgc28gY2FsbGVyIGNhbiByZW1vdmUgdXNpbmcgb3JpZ0ZuXG5cdFx0Zm4uZ3VpZCA9IG9yaWdGbi5ndWlkIHx8ICggb3JpZ0ZuLmd1aWQgPSBqUXVlcnkuZ3VpZCsrICk7XG5cdH1cblx0cmV0dXJuIGVsZW0uZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0alF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZXMsIGZuLCBkYXRhLCBzZWxlY3RvciApO1xuXHR9ICk7XG59XG5cbi8qXG4gKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBldmVudHMgLS0gbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuXG4gKiBQcm9wcyB0byBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkgZm9yIG1hbnkgb2YgdGhlIGlkZWFzLlxuICovXG5qUXVlcnkuZXZlbnQgPSB7XG5cblx0Z2xvYmFsOiB7fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgZGF0YSwgc2VsZWN0b3IgKSB7XG5cblx0XHR2YXIgaGFuZGxlT2JqSW4sIGV2ZW50SGFuZGxlLCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuZ2V0KCBlbGVtICk7XG5cblx0XHQvLyBPbmx5IGF0dGFjaCBldmVudHMgdG8gb2JqZWN0cyB0aGF0IGFjY2VwdCBkYXRhXG5cdFx0aWYgKCAhYWNjZXB0RGF0YSggZWxlbSApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENhbGxlciBjYW4gcGFzcyBpbiBhbiBvYmplY3Qgb2YgY3VzdG9tIGRhdGEgaW4gbGlldSBvZiB0aGUgaGFuZGxlclxuXHRcdGlmICggaGFuZGxlci5oYW5kbGVyICkge1xuXHRcdFx0aGFuZGxlT2JqSW4gPSBoYW5kbGVyO1xuXHRcdFx0aGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7XG5cdFx0XHRzZWxlY3RvciA9IGhhbmRsZU9iakluLnNlbGVjdG9yO1xuXHRcdH1cblxuXHRcdC8vIEVuc3VyZSB0aGF0IGludmFsaWQgc2VsZWN0b3JzIHRocm93IGV4Y2VwdGlvbnMgYXQgYXR0YWNoIHRpbWVcblx0XHQvLyBFdmFsdWF0ZSBhZ2FpbnN0IGRvY3VtZW50RWxlbWVudCBpbiBjYXNlIGVsZW0gaXMgYSBub24tZWxlbWVudCBub2RlIChlLmcuLCBkb2N1bWVudClcblx0XHRpZiAoIHNlbGVjdG9yICkge1xuXHRcdFx0alF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBkb2N1bWVudEVsZW1lbnQsIHNlbGVjdG9yICk7XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXG5cdFx0aWYgKCAhaGFuZGxlci5ndWlkICkge1xuXHRcdFx0aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKztcblx0XHR9XG5cblx0XHQvLyBJbml0IHRoZSBlbGVtZW50J3MgZXZlbnQgc3RydWN0dXJlIGFuZCBtYWluIGhhbmRsZXIsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG5cdFx0aWYgKCAhKCBldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgKSApIHtcblx0XHRcdGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cyA9IE9iamVjdC5jcmVhdGUoIG51bGwgKTtcblx0XHR9XG5cdFx0aWYgKCAhKCBldmVudEhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZSApICkge1xuXHRcdFx0ZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGUgPSBmdW5jdGlvbiggZSApIHtcblxuXHRcdFx0XHQvLyBEaXNjYXJkIHRoZSBzZWNvbmQgZXZlbnQgb2YgYSBqUXVlcnkuZXZlbnQudHJpZ2dlcigpIGFuZFxuXHRcdFx0XHQvLyB3aGVuIGFuIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhIHBhZ2UgaGFzIHVubG9hZGVkXG5cdFx0XHRcdHJldHVybiB0eXBlb2YgalF1ZXJ5ICE9PSBcInVuZGVmaW5lZFwiICYmIGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgIT09IGUudHlwZSA/XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmFwcGx5KCBlbGVtLCBhcmd1bWVudHMgKSA6IHVuZGVmaW5lZDtcblx0XHRcdH07XG5cdFx0fVxuXG5cdFx0Ly8gSGFuZGxlIG11bHRpcGxlIGV2ZW50cyBzZXBhcmF0ZWQgYnkgYSBzcGFjZVxuXHRcdHR5cGVzID0gKCB0eXBlcyB8fCBcIlwiICkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbIHQgXSApIHx8IFtdO1xuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG1wWyAxIF07XG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bXBbIDIgXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBUaGVyZSAqbXVzdCogYmUgYSB0eXBlLCBubyBhdHRhY2hpbmcgbmFtZXNwYWNlLW9ubHkgaGFuZGxlcnNcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBldmVudCBjaGFuZ2VzIGl0cyB0eXBlLCB1c2UgdGhlIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMgZm9yIHRoZSBjaGFuZ2VkIHR5cGVcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXG5cdFx0XHQvLyBJZiBzZWxlY3RvciBkZWZpbmVkLCBkZXRlcm1pbmUgc3BlY2lhbCBldmVudCBhcGkgdHlwZSwgb3RoZXJ3aXNlIGdpdmVuIHR5cGVcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblxuXHRcdFx0Ly8gVXBkYXRlIHNwZWNpYWwgYmFzZWQgb24gbmV3bHkgcmVzZXQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIGhhbmRsZU9iaiBpcyBwYXNzZWQgdG8gYWxsIGV2ZW50IGhhbmRsZXJzXG5cdFx0XHRoYW5kbGVPYmogPSBqUXVlcnkuZXh0ZW5kKCB7XG5cdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdG9yaWdUeXBlOiBvcmlnVHlwZSxcblx0XHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdFx0aGFuZGxlcjogaGFuZGxlcixcblx0XHRcdFx0Z3VpZDogaGFuZGxlci5ndWlkLFxuXHRcdFx0XHRzZWxlY3Rvcjogc2VsZWN0b3IsXG5cdFx0XHRcdG5lZWRzQ29udGV4dDogc2VsZWN0b3IgJiYgalF1ZXJ5LmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICksXG5cdFx0XHRcdG5hbWVzcGFjZTogbmFtZXNwYWNlcy5qb2luKCBcIi5cIiApXG5cdFx0XHR9LCBoYW5kbGVPYmpJbiApO1xuXG5cdFx0XHQvLyBJbml0IHRoZSBldmVudCBoYW5kbGVyIHF1ZXVlIGlmIHdlJ3JlIHRoZSBmaXJzdFxuXHRcdFx0aWYgKCAhKCBoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdICkgKSB7XG5cdFx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gPSBbXTtcblx0XHRcdFx0aGFuZGxlcnMuZGVsZWdhdGVDb3VudCA9IDA7XG5cblx0XHRcdFx0Ly8gT25seSB1c2UgYWRkRXZlbnRMaXN0ZW5lciBpZiB0aGUgc3BlY2lhbCBldmVudHMgaGFuZGxlciByZXR1cm5zIGZhbHNlXG5cdFx0XHRcdGlmICggIXNwZWNpYWwuc2V0dXAgfHxcblx0XHRcdFx0XHRzcGVjaWFsLnNldHVwLmNhbGwoIGVsZW0sIGRhdGEsIG5hbWVzcGFjZXMsIGV2ZW50SGFuZGxlICkgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0aWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGV2ZW50SGFuZGxlICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggc3BlY2lhbC5hZGQgKSB7XG5cdFx0XHRcdHNwZWNpYWwuYWRkLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApO1xuXG5cdFx0XHRcdGlmICggIWhhbmRsZU9iai5oYW5kbGVyLmd1aWQgKSB7XG5cdFx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCA9IGhhbmRsZXIuZ3VpZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgdG8gdGhlIGVsZW1lbnQncyBoYW5kbGVyIGxpc3QsIGRlbGVnYXRlcyBpbiBmcm9udFxuXHRcdFx0aWYgKCBzZWxlY3RvciApIHtcblx0XHRcdFx0aGFuZGxlcnMuc3BsaWNlKCBoYW5kbGVycy5kZWxlZ2F0ZUNvdW50KyssIDAsIGhhbmRsZU9iaiApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZXZlbnRzIGhhdmUgZXZlciBiZWVuIHVzZWQsIGZvciBldmVudCBvcHRpbWl6YXRpb25cblx0XHRcdGpRdWVyeS5ldmVudC5nbG9iYWxbIHR5cGUgXSA9IHRydWU7XG5cdFx0fVxuXG5cdH0sXG5cblx0Ly8gRGV0YWNoIGFuIGV2ZW50IG9yIHNldCBvZiBldmVudHMgZnJvbSBhbiBlbGVtZW50XG5cdHJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBzZWxlY3RvciwgbWFwcGVkVHlwZXMgKSB7XG5cblx0XHR2YXIgaiwgb3JpZ0NvdW50LCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuaGFzRGF0YSggZWxlbSApICYmIGRhdGFQcml2LmdldCggZWxlbSApO1xuXG5cdFx0aWYgKCAhZWxlbURhdGEgfHwgISggZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzICkgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gT25jZSBmb3IgZWFjaCB0eXBlLm5hbWVzcGFjZSBpbiB0eXBlczsgdHlwZSBtYXkgYmUgb21pdHRlZFxuXHRcdHR5cGVzID0gKCB0eXBlcyB8fCBcIlwiICkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbIHQgXSApIHx8IFtdO1xuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG1wWyAxIF07XG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bXBbIDIgXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBVbmJpbmQgYWxsIGV2ZW50cyAob24gdGhpcyBuYW1lc3BhY2UsIGlmIHByb3ZpZGVkKSBmb3IgdGhlIGVsZW1lbnRcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKyB0eXBlc1sgdCBdLCBoYW5kbGVyLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gfHwgW107XG5cdFx0XHR0bXAgPSB0bXBbIDIgXSAmJlxuXHRcdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKCBcIlxcXFwuKD86LipcXFxcLnwpXCIgKSArIFwiKFxcXFwufCQpXCIgKTtcblxuXHRcdFx0Ly8gUmVtb3ZlIG1hdGNoaW5nIGV2ZW50c1xuXHRcdFx0b3JpZ0NvdW50ID0gaiA9IGhhbmRsZXJzLmxlbmd0aDtcblx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaiBdO1xuXG5cdFx0XHRcdGlmICggKCBtYXBwZWRUeXBlcyB8fCBvcmlnVHlwZSA9PT0gaGFuZGxlT2JqLm9yaWdUeXBlICkgJiZcblx0XHRcdFx0XHQoICFoYW5kbGVyIHx8IGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSAmJlxuXHRcdFx0XHRcdCggIXRtcCB8fCB0bXAudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkgJiZcblx0XHRcdFx0XHQoICFzZWxlY3RvciB8fCBzZWxlY3RvciA9PT0gaGFuZGxlT2JqLnNlbGVjdG9yIHx8XG5cdFx0XHRcdFx0XHRzZWxlY3RvciA9PT0gXCIqKlwiICYmIGhhbmRsZU9iai5zZWxlY3RvciApICkge1xuXHRcdFx0XHRcdGhhbmRsZXJzLnNwbGljZSggaiwgMSApO1xuXG5cdFx0XHRcdFx0aWYgKCBoYW5kbGVPYmouc2VsZWN0b3IgKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVycy5kZWxlZ2F0ZUNvdW50LS07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggc3BlY2lhbC5yZW1vdmUgKSB7XG5cdFx0XHRcdFx0XHRzcGVjaWFsLnJlbW92ZS5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVtb3ZlIGdlbmVyaWMgZXZlbnQgaGFuZGxlciBpZiB3ZSByZW1vdmVkIHNvbWV0aGluZyBhbmQgbm8gbW9yZSBoYW5kbGVycyBleGlzdFxuXHRcdFx0Ly8gKGF2b2lkcyBwb3RlbnRpYWwgZm9yIGVuZGxlc3MgcmVjdXJzaW9uIGR1cmluZyByZW1vdmFsIG9mIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMpXG5cdFx0XHRpZiAoIG9yaWdDb3VudCAmJiAhaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnRlYXJkb3duIHx8XG5cdFx0XHRcdFx0c3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzLCBlbGVtRGF0YS5oYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGVsZW1EYXRhLmhhbmRsZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVsZXRlIGV2ZW50c1sgdHlwZSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSBkYXRhIGFuZCB0aGUgZXhwYW5kbyBpZiBpdCdzIG5vIGxvbmdlciB1c2VkXG5cdFx0aWYgKCBqUXVlcnkuaXNFbXB0eU9iamVjdCggZXZlbnRzICkgKSB7XG5cdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIFwiaGFuZGxlIGV2ZW50c1wiICk7XG5cdFx0fVxuXHR9LFxuXG5cdGRpc3BhdGNoOiBmdW5jdGlvbiggbmF0aXZlRXZlbnQgKSB7XG5cblx0XHR2YXIgaSwgaiwgcmV0LCBtYXRjaGVkLCBoYW5kbGVPYmosIGhhbmRsZXJRdWV1ZSxcblx0XHRcdGFyZ3MgPSBuZXcgQXJyYXkoIGFyZ3VtZW50cy5sZW5ndGggKSxcblxuXHRcdFx0Ly8gTWFrZSBhIHdyaXRhYmxlIGpRdWVyeS5FdmVudCBmcm9tIHRoZSBuYXRpdmUgZXZlbnQgb2JqZWN0XG5cdFx0XHRldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICksXG5cblx0XHRcdGhhbmRsZXJzID0gKFxuXHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsIClcblx0XHRcdClbIGV2ZW50LnR5cGUgXSB8fCBbXSxcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZXZlbnQudHlwZSBdIHx8IHt9O1xuXG5cdFx0Ly8gVXNlIHRoZSBmaXgtZWQgalF1ZXJ5LkV2ZW50IHJhdGhlciB0aGFuIHRoZSAocmVhZC1vbmx5KSBuYXRpdmUgZXZlbnRcblx0XHRhcmdzWyAwIF0gPSBldmVudDtcblxuXHRcdGZvciAoIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrICkge1xuXHRcdFx0YXJnc1sgaSBdID0gYXJndW1lbnRzWyBpIF07XG5cdFx0fVxuXG5cdFx0ZXZlbnQuZGVsZWdhdGVUYXJnZXQgPSB0aGlzO1xuXG5cdFx0Ly8gQ2FsbCB0aGUgcHJlRGlzcGF0Y2ggaG9vayBmb3IgdGhlIG1hcHBlZCB0eXBlLCBhbmQgbGV0IGl0IGJhaWwgaWYgZGVzaXJlZFxuXHRcdGlmICggc3BlY2lhbC5wcmVEaXNwYXRjaCAmJiBzcGVjaWFsLnByZURpc3BhdGNoLmNhbGwoIHRoaXMsIGV2ZW50ICkgPT09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERldGVybWluZSBoYW5kbGVyc1xuXHRcdGhhbmRsZXJRdWV1ZSA9IGpRdWVyeS5ldmVudC5oYW5kbGVycy5jYWxsKCB0aGlzLCBldmVudCwgaGFuZGxlcnMgKTtcblxuXHRcdC8vIFJ1biBkZWxlZ2F0ZXMgZmlyc3Q7IHRoZXkgbWF5IHdhbnQgdG8gc3RvcCBwcm9wYWdhdGlvbiBiZW5lYXRoIHVzXG5cdFx0aSA9IDA7XG5cdFx0d2hpbGUgKCAoIG1hdGNoZWQgPSBoYW5kbGVyUXVldWVbIGkrKyBdICkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRldmVudC5jdXJyZW50VGFyZ2V0ID0gbWF0Y2hlZC5lbGVtO1xuXG5cdFx0XHRqID0gMDtcblx0XHRcdHdoaWxlICggKCBoYW5kbGVPYmogPSBtYXRjaGVkLmhhbmRsZXJzWyBqKysgXSApICYmXG5cdFx0XHRcdCFldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXG5cdFx0XHRcdC8vIElmIHRoZSBldmVudCBpcyBuYW1lc3BhY2VkLCB0aGVuIGVhY2ggaGFuZGxlciBpcyBvbmx5IGludm9rZWQgaWYgaXQgaXNcblx0XHRcdFx0Ly8gc3BlY2lhbGx5IHVuaXZlcnNhbCBvciBpdHMgbmFtZXNwYWNlcyBhcmUgYSBzdXBlcnNldCBvZiB0aGUgZXZlbnQncy5cblx0XHRcdFx0aWYgKCAhZXZlbnQucm5hbWVzcGFjZSB8fCBoYW5kbGVPYmoubmFtZXNwYWNlID09PSBmYWxzZSB8fFxuXHRcdFx0XHRcdGV2ZW50LnJuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkge1xuXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xuXHRcdFx0XHRcdGV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTtcblxuXHRcdFx0XHRcdHJldCA9ICggKCBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgaGFuZGxlT2JqLm9yaWdUeXBlIF0gfHwge30gKS5oYW5kbGUgfHxcblx0XHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyICkuYXBwbHkoIG1hdGNoZWQuZWxlbSwgYXJncyApO1xuXG5cdFx0XHRcdFx0aWYgKCByZXQgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdGlmICggKCBldmVudC5yZXN1bHQgPSByZXQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGwgdGhlIHBvc3REaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGVcblx0XHRpZiAoIHNwZWNpYWwucG9zdERpc3BhdGNoICkge1xuXHRcdFx0c3BlY2lhbC5wb3N0RGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZXZlbnQucmVzdWx0O1xuXHR9LFxuXG5cdGhhbmRsZXJzOiBmdW5jdGlvbiggZXZlbnQsIGhhbmRsZXJzICkge1xuXHRcdHZhciBpLCBoYW5kbGVPYmosIHNlbCwgbWF0Y2hlZEhhbmRsZXJzLCBtYXRjaGVkU2VsZWN0b3JzLFxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW10sXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcblx0XHRcdGN1ciA9IGV2ZW50LnRhcmdldDtcblxuXHRcdC8vIEZpbmQgZGVsZWdhdGUgaGFuZGxlcnNcblx0XHRpZiAoIGRlbGVnYXRlQ291bnQgJiZcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05XG5cdFx0XHQvLyBCbGFjay1ob2xlIFNWRyA8dXNlPiBpbnN0YW5jZSB0cmVlcyAodHJhYy0xMzE4MClcblx0XHRcdGN1ci5ub2RlVHlwZSAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDJcblx0XHRcdC8vIFN1cHByZXNzIHNwZWMtdmlvbGF0aW5nIGNsaWNrcyBpbmRpY2F0aW5nIGEgbm9uLXByaW1hcnkgcG9pbnRlciBidXR0b24gKHRyYWMtMzg2MSlcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50LXR5cGUtY2xpY2tcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdC8vIC4uLmJ1dCBub3QgYXJyb3cga2V5IFwiY2xpY2tzXCIgb2YgcmFkaW8gaW5wdXRzLCB3aGljaCBjYW4gaGF2ZSBgYnV0dG9uYCAtMSAoZ2gtMjM0Mylcblx0XHRcdCEoIGV2ZW50LnR5cGUgPT09IFwiY2xpY2tcIiAmJiBldmVudC5idXR0b24gPj0gMSApICkge1xuXG5cdFx0XHRmb3IgKCA7IGN1ciAhPT0gdGhpczsgY3VyID0gY3VyLnBhcmVudE5vZGUgfHwgdGhpcyApIHtcblxuXHRcdFx0XHQvLyBEb24ndCBjaGVjayBub24tZWxlbWVudHMgKHRyYWMtMTMyMDgpXG5cdFx0XHRcdC8vIERvbid0IHByb2Nlc3MgY2xpY2tzIG9uIGRpc2FibGVkIGVsZW1lbnRzICh0cmFjLTY5MTEsIHRyYWMtODE2NSwgdHJhYy0xMTM4MiwgdHJhYy0xMTc2NClcblx0XHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPT09IDEgJiYgISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGN1ci5kaXNhYmxlZCA9PT0gdHJ1ZSApICkge1xuXHRcdFx0XHRcdG1hdGNoZWRIYW5kbGVycyA9IFtdO1xuXHRcdFx0XHRcdG1hdGNoZWRTZWxlY3RvcnMgPSB7fTtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGRlbGVnYXRlQ291bnQ7IGkrKyApIHtcblx0XHRcdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIERvbid0IGNvbmZsaWN0IHdpdGggT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzICh0cmFjLTEzMjAzKVxuXHRcdFx0XHRcdFx0c2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yICsgXCIgXCI7XG5cblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPSBoYW5kbGVPYmoubmVlZHNDb250ZXh0ID9cblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHNlbCwgdGhpcyApLmluZGV4KCBjdXIgKSA+IC0xIDpcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZCggc2VsLCB0aGlzLCBudWxsLCBbIGN1ciBdICkubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZEhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRIYW5kbGVycy5sZW5ndGggKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVyUXVldWUucHVzaCggeyBlbGVtOiBjdXIsIGhhbmRsZXJzOiBtYXRjaGVkSGFuZGxlcnMgfSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFkZCB0aGUgcmVtYWluaW5nIChkaXJlY3RseS1ib3VuZCkgaGFuZGxlcnNcblx0XHRjdXIgPSB0aGlzO1xuXHRcdGlmICggZGVsZWdhdGVDb3VudCA8IGhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKCB7IGVsZW06IGN1ciwgaGFuZGxlcnM6IGhhbmRsZXJzLnNsaWNlKCBkZWxlZ2F0ZUNvdW50ICkgfSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBoYW5kbGVyUXVldWU7XG5cdH0sXG5cblx0YWRkUHJvcDogZnVuY3Rpb24oIG5hbWUsIGhvb2sgKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBqUXVlcnkuRXZlbnQucHJvdG90eXBlLCBuYW1lLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXG5cdFx0XHRnZXQ6IGlzRnVuY3Rpb24oIGhvb2sgKSA/XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGhvb2soIHRoaXMub3JpZ2luYWxFdmVudCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFsgbmFtZSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggdGhpcywgbmFtZSwge1xuXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHdyaXRhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHZhbHVlOiB2YWx1ZVxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGZpeDogZnVuY3Rpb24oIG9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0cmV0dXJuIG9yaWdpbmFsRXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gP1xuXHRcdFx0b3JpZ2luYWxFdmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7XG5cdH0sXG5cblx0c3BlY2lhbDoge1xuXHRcdGxvYWQ6IHtcblxuXHRcdFx0Ly8gUHJldmVudCB0cmlnZ2VyZWQgaW1hZ2UubG9hZCBldmVudHMgZnJvbSBidWJibGluZyB0byB3aW5kb3cubG9hZFxuXHRcdFx0bm9CdWJibGU6IHRydWVcblx0XHR9LFxuXHRcdGNsaWNrOiB7XG5cblx0XHRcdC8vIFV0aWxpemUgbmF0aXZlIGV2ZW50IHRvIGVuc3VyZSBjb3JyZWN0IHN0YXRlIGZvciBjaGVja2FibGUgaW5wdXRzXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7XG5cblx0XHRcdFx0Ly8gRm9yIG11dHVhbCBjb21wcmVzc2liaWxpdHkgd2l0aCBfZGVmYXVsdCwgcmVwbGFjZSBgdGhpc2AgYWNjZXNzIHdpdGggYSBsb2NhbCB2YXIuXG5cdFx0XHRcdC8vIGB8fCBkYXRhYCBpcyBkZWFkIGNvZGUgbWVhbnQgb25seSB0byBwcmVzZXJ2ZSB0aGUgdmFyaWFibGUgdGhyb3VnaCBtaW5pZmljYXRpb24uXG5cdFx0XHRcdHZhciBlbCA9IHRoaXMgfHwgZGF0YTtcblxuXHRcdFx0XHQvLyBDbGFpbSB0aGUgZmlyc3QgaGFuZGxlclxuXHRcdFx0XHRpZiAoIHJjaGVja2FibGVUeXBlLnRlc3QoIGVsLnR5cGUgKSAmJlxuXHRcdFx0XHRcdGVsLmNsaWNrICYmIG5vZGVOYW1lKCBlbCwgXCJpbnB1dFwiICkgKSB7XG5cblx0XHRcdFx0XHQvLyBkYXRhUHJpdi5zZXQoIGVsLCBcImNsaWNrXCIsIC4uLiApXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIsIHRydWUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbiggZGF0YSApIHtcblxuXHRcdFx0XHQvLyBGb3IgbXV0dWFsIGNvbXByZXNzaWJpbGl0eSB3aXRoIF9kZWZhdWx0LCByZXBsYWNlIGB0aGlzYCBhY2Nlc3Mgd2l0aCBhIGxvY2FsIHZhci5cblx0XHRcdFx0Ly8gYHx8IGRhdGFgIGlzIGRlYWQgY29kZSBtZWFudCBvbmx5IHRvIHByZXNlcnZlIHRoZSB2YXJpYWJsZSB0aHJvdWdoIG1pbmlmaWNhdGlvbi5cblx0XHRcdFx0dmFyIGVsID0gdGhpcyB8fCBkYXRhO1xuXG5cdFx0XHRcdC8vIEZvcmNlIHNldHVwIGJlZm9yZSB0cmlnZ2VyaW5nIGEgY2xpY2tcblx0XHRcdFx0aWYgKCByY2hlY2thYmxlVHlwZS50ZXN0KCBlbC50eXBlICkgJiZcblx0XHRcdFx0XHRlbC5jbGljayAmJiBub2RlTmFtZSggZWwsIFwiaW5wdXRcIiApICkge1xuXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBub24tZmFsc2UgdG8gYWxsb3cgbm9ybWFsIGV2ZW50LXBhdGggcHJvcGFnYXRpb25cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBGb3IgY3Jvc3MtYnJvd3NlciBjb25zaXN0ZW5jeSwgc3VwcHJlc3MgbmF0aXZlIC5jbGljaygpIG9uIGxpbmtzXG5cdFx0XHQvLyBBbHNvIHByZXZlbnQgaXQgaWYgd2UncmUgY3VycmVudGx5IGluc2lkZSBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRcdF9kZWZhdWx0OiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cdFx0XHRcdHJldHVybiByY2hlY2thYmxlVHlwZS50ZXN0KCB0YXJnZXQudHlwZSApICYmXG5cdFx0XHRcdFx0dGFyZ2V0LmNsaWNrICYmIG5vZGVOYW1lKCB0YXJnZXQsIFwiaW5wdXRcIiApICYmXG5cdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCB0YXJnZXQsIFwiY2xpY2tcIiApIHx8XG5cdFx0XHRcdFx0bm9kZU5hbWUoIHRhcmdldCwgXCJhXCIgKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0YmVmb3JldW5sb2FkOiB7XG5cdFx0XHRwb3N0RGlzcGF0Y2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDIwK1xuXHRcdFx0XHQvLyBGaXJlZm94IGRvZXNuJ3QgYWxlcnQgaWYgdGhlIHJldHVyblZhbHVlIGZpZWxkIGlzIG5vdCBzZXQuXG5cdFx0XHRcdGlmICggZXZlbnQucmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgZXZlbnQub3JpZ2luYWxFdmVudCApIHtcblx0XHRcdFx0XHRldmVudC5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlID0gZXZlbnQucmVzdWx0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG4vLyBFbnN1cmUgdGhlIHByZXNlbmNlIG9mIGFuIGV2ZW50IGxpc3RlbmVyIHRoYXQgaGFuZGxlcyBtYW51YWxseS10cmlnZ2VyZWRcbi8vIHN5bnRoZXRpYyBldmVudHMgYnkgaW50ZXJydXB0aW5nIHByb2dyZXNzIHVudGlsIHJlaW52b2tlZCBpbiByZXNwb25zZSB0b1xuLy8gKm5hdGl2ZSogZXZlbnRzIHRoYXQgaXQgZmlyZXMgZGlyZWN0bHksIGVuc3VyaW5nIHRoYXQgc3RhdGUgY2hhbmdlcyBoYXZlXG4vLyBhbHJlYWR5IG9jY3VycmVkIGJlZm9yZSBvdGhlciBsaXN0ZW5lcnMgYXJlIGludm9rZWQuXG5mdW5jdGlvbiBsZXZlcmFnZU5hdGl2ZSggZWwsIHR5cGUsIGlzU2V0dXAgKSB7XG5cblx0Ly8gTWlzc2luZyBgaXNTZXR1cGAgaW5kaWNhdGVzIGEgdHJpZ2dlciBjYWxsLCB3aGljaCBtdXN0IGZvcmNlIHNldHVwIHRocm91Z2ggalF1ZXJ5LmV2ZW50LmFkZFxuXHRpZiAoICFpc1NldHVwICkge1xuXHRcdGlmICggZGF0YVByaXYuZ2V0KCBlbCwgdHlwZSApID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBlbCwgdHlwZSwgcmV0dXJuVHJ1ZSApO1xuXHRcdH1cblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBSZWdpc3RlciB0aGUgY29udHJvbGxlciBhcyBhIHNwZWNpYWwgdW5pdmVyc2FsIGhhbmRsZXIgZm9yIGFsbCBldmVudCBuYW1lc3BhY2VzXG5cdGRhdGFQcml2LnNldCggZWwsIHR5cGUsIGZhbHNlICk7XG5cdGpRdWVyeS5ldmVudC5hZGQoIGVsLCB0eXBlLCB7XG5cdFx0bmFtZXNwYWNlOiBmYWxzZSxcblx0XHRoYW5kbGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHR2YXIgcmVzdWx0LFxuXHRcdFx0XHRzYXZlZCA9IGRhdGFQcml2LmdldCggdGhpcywgdHlwZSApO1xuXG5cdFx0XHRpZiAoICggZXZlbnQuaXNUcmlnZ2VyICYgMSApICYmIHRoaXNbIHR5cGUgXSApIHtcblxuXHRcdFx0XHQvLyBJbnRlcnJ1cHQgcHJvY2Vzc2luZyBvZiB0aGUgb3V0ZXIgc3ludGhldGljIC50cmlnZ2VyKCllZCBldmVudFxuXHRcdFx0XHRpZiAoICFzYXZlZCApIHtcblxuXHRcdFx0XHRcdC8vIFN0b3JlIGFyZ3VtZW50cyBmb3IgdXNlIHdoZW4gaGFuZGxpbmcgdGhlIGlubmVyIG5hdGl2ZSBldmVudFxuXHRcdFx0XHRcdC8vIFRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBhcmd1bWVudCAoYW4gZXZlbnQgb2JqZWN0KSwgc28gdGhpcyBhcnJheVxuXHRcdFx0XHRcdC8vIHdpbGwgbm90IGJlIGNvbmZ1c2VkIHdpdGggYSBsZWZ0b3ZlciBjYXB0dXJlIG9iamVjdC5cblx0XHRcdFx0XHRzYXZlZCA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwgc2F2ZWQgKTtcblxuXHRcdFx0XHRcdC8vIFRyaWdnZXIgdGhlIG5hdGl2ZSBldmVudCBhbmQgY2FwdHVyZSBpdHMgcmVzdWx0XG5cdFx0XHRcdFx0dGhpc1sgdHlwZSBdKCk7XG5cdFx0XHRcdFx0cmVzdWx0ID0gZGF0YVByaXYuZ2V0KCB0aGlzLCB0eXBlICk7XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCB0eXBlLCBmYWxzZSApO1xuXG5cdFx0XHRcdFx0aWYgKCBzYXZlZCAhPT0gcmVzdWx0ICkge1xuXG5cdFx0XHRcdFx0XHQvLyBDYW5jZWwgdGhlIG91dGVyIHN5bnRoZXRpYyBldmVudFxuXHRcdFx0XHRcdFx0ZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGlzIGlzIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCBmb3IgYW4gZXZlbnQgd2l0aCBhIGJ1YmJsaW5nIHN1cnJvZ2F0ZVxuXHRcdFx0XHQvLyAoZm9jdXMgb3IgYmx1ciksIGFzc3VtZSB0aGF0IHRoZSBzdXJyb2dhdGUgYWxyZWFkeSBwcm9wYWdhdGVkIGZyb20gdHJpZ2dlcmluZ1xuXHRcdFx0XHQvLyB0aGUgbmF0aXZlIGV2ZW50IGFuZCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcgYWdhaW4gaGVyZS5cblx0XHRcdFx0Ly8gVGhpcyB0ZWNobmljYWxseSBnZXRzIHRoZSBvcmRlcmluZyB3cm9uZyB3LnIudC4gdG8gYC50cmlnZ2VyKClgIChpbiB3aGljaCB0aGVcblx0XHRcdFx0Ly8gYnViYmxpbmcgc3Vycm9nYXRlIHByb3BhZ2F0ZXMgKmFmdGVyKiB0aGUgbm9uLWJ1YmJsaW5nIGJhc2UpLCBidXQgdGhhdCBzZWVtc1xuXHRcdFx0XHQvLyBsZXNzIGJhZCB0aGFuIGR1cGxpY2F0aW9uLlxuXHRcdFx0XHR9IGVsc2UgaWYgKCAoIGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge30gKS5kZWxlZ2F0ZVR5cGUgKSB7XG5cdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyBpcyBhIG5hdGl2ZSBldmVudCB0cmlnZ2VyZWQgYWJvdmUsIGV2ZXJ5dGhpbmcgaXMgbm93IGluIG9yZGVyXG5cdFx0XHQvLyBGaXJlIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCB3aXRoIHRoZSBvcmlnaW5hbCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIHNhdmVkICkge1xuXG5cdFx0XHRcdC8vIC4uLmFuZCBjYXB0dXJlIHRoZSByZXN1bHRcblx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCB0eXBlLCBqUXVlcnkuZXZlbnQudHJpZ2dlcihcblx0XHRcdFx0XHRzYXZlZFsgMCBdLFxuXHRcdFx0XHRcdHNhdmVkLnNsaWNlKCAxICksXG5cdFx0XHRcdFx0dGhpc1xuXHRcdFx0XHQpICk7XG5cblx0XHRcdFx0Ly8gQWJvcnQgaGFuZGxpbmcgb2YgdGhlIG5hdGl2ZSBldmVudCBieSBhbGwgalF1ZXJ5IGhhbmRsZXJzIHdoaWxlIGFsbG93aW5nXG5cdFx0XHRcdC8vIG5hdGl2ZSBoYW5kbGVycyBvbiB0aGUgc2FtZSBlbGVtZW50IHRvIHJ1bi4gT24gdGFyZ2V0LCB0aGlzIGlzIGFjaGlldmVkXG5cdFx0XHRcdC8vIGJ5IHN0b3BwaW5nIGltbWVkaWF0ZSBwcm9wYWdhdGlvbiBqdXN0IG9uIHRoZSBqUXVlcnkgZXZlbnQuIEhvd2V2ZXIsXG5cdFx0XHRcdC8vIHRoZSBuYXRpdmUgZXZlbnQgaXMgcmUtd3JhcHBlZCBieSBhIGpRdWVyeSBvbmUgb24gZWFjaCBsZXZlbCBvZiB0aGVcblx0XHRcdFx0Ly8gcHJvcGFnYXRpb24gc28gdGhlIG9ubHkgd2F5IHRvIHN0b3AgaXQgZm9yIGpRdWVyeSBpcyB0byBzdG9wIGl0IGZvclxuXHRcdFx0XHQvLyBldmVyeW9uZSB2aWEgbmF0aXZlIGBzdG9wUHJvcGFnYXRpb24oKWAuIFRoaXMgaXMgbm90IGEgcHJvYmxlbSBmb3Jcblx0XHRcdFx0Ly8gZm9jdXMvYmx1ciB3aGljaCBkb24ndCBidWJibGUsIGJ1dCBpdCBkb2VzIGFsc28gc3RvcCBjbGljayBvbiBjaGVja2JveGVzXG5cdFx0XHRcdC8vIGFuZCByYWRpb3MuIFdlIGFjY2VwdCB0aGlzIGxpbWl0YXRpb24uXG5cdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9ICk7XG59XG5cbmpRdWVyeS5yZW1vdmVFdmVudCA9IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBoYW5kbGUgKSB7XG5cblx0Ly8gVGhpcyBcImlmXCIgaXMgbmVlZGVkIGZvciBwbGFpbiBvYmplY3RzXG5cdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xuXHRcdGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgaGFuZGxlICk7XG5cdH1cbn07XG5cbmpRdWVyeS5FdmVudCA9IGZ1bmN0aW9uKCBzcmMsIHByb3BzICkge1xuXG5cdC8vIEFsbG93IGluc3RhbnRpYXRpb24gd2l0aG91dCB0aGUgJ25ldycga2V5d29yZFxuXHRpZiAoICEoIHRoaXMgaW5zdGFuY2VvZiBqUXVlcnkuRXZlbnQgKSApIHtcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5FdmVudCggc3JjLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gRXZlbnQgb2JqZWN0XG5cdGlmICggc3JjICYmIHNyYy50eXBlICkge1xuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcblx0XHR0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXG5cdFx0Ly8gYnkgYSBoYW5kbGVyIGxvd2VyIGRvd24gdGhlIHRyZWU7IHJlZmxlY3QgdGhlIGNvcnJlY3QgdmFsdWUuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fFxuXHRcdFx0XHRzcmMuZGVmYXVsdFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTIuMyBvbmx5XG5cdFx0XHRcdHNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0cmV0dXJuVHJ1ZSA6XG5cdFx0XHRyZXR1cm5GYWxzZTtcblxuXHRcdC8vIENyZWF0ZSB0YXJnZXQgcHJvcGVydGllc1xuXHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA8PTYgLSA3IG9ubHlcblx0XHQvLyBUYXJnZXQgc2hvdWxkIG5vdCBiZSBhIHRleHQgbm9kZSAodHJhYy01MDQsIHRyYWMtMTMxNDMpXG5cdFx0dGhpcy50YXJnZXQgPSAoIHNyYy50YXJnZXQgJiYgc3JjLnRhcmdldC5ub2RlVHlwZSA9PT0gMyApID9cblx0XHRcdHNyYy50YXJnZXQucGFyZW50Tm9kZSA6XG5cdFx0XHRzcmMudGFyZ2V0O1xuXG5cdFx0dGhpcy5jdXJyZW50VGFyZ2V0ID0gc3JjLmN1cnJlbnRUYXJnZXQ7XG5cdFx0dGhpcy5yZWxhdGVkVGFyZ2V0ID0gc3JjLnJlbGF0ZWRUYXJnZXQ7XG5cblx0Ly8gRXZlbnQgdHlwZVxuXHR9IGVsc2Uge1xuXHRcdHRoaXMudHlwZSA9IHNyYztcblx0fVxuXG5cdC8vIFB1dCBleHBsaWNpdGx5IHByb3ZpZGVkIHByb3BlcnRpZXMgb250byB0aGUgZXZlbnQgb2JqZWN0XG5cdGlmICggcHJvcHMgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggdGhpcywgcHJvcHMgKTtcblx0fVxuXG5cdC8vIENyZWF0ZSBhIHRpbWVzdGFtcCBpZiBpbmNvbWluZyBldmVudCBkb2Vzbid0IGhhdmUgb25lXG5cdHRoaXMudGltZVN0YW1wID0gc3JjICYmIHNyYy50aW1lU3RhbXAgfHwgRGF0ZS5ub3coKTtcblxuXHQvLyBNYXJrIGl0IGFzIGZpeGVkXG5cdHRoaXNbIGpRdWVyeS5leHBhbmRvIF0gPSB0cnVlO1xufTtcblxuLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmluZGluZy5odG1sXG5qUXVlcnkuRXZlbnQucHJvdG90eXBlID0ge1xuXHRjb25zdHJ1Y3RvcjogalF1ZXJ5LkV2ZW50LFxuXHRpc0RlZmF1bHRQcmV2ZW50ZWQ6IHJldHVybkZhbHNlLFxuXHRpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblx0aXNTaW11bGF0ZWQ6IGZhbHNlLFxuXG5cdHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcblxuXHRcdHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiAhdGhpcy5pc1NpbXVsYXRlZCApIHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH0sXG5cdHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiAhdGhpcy5pc1NpbXVsYXRlZCApIHtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdH1cblxuXHRcdHRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH1cbn07XG5cbi8vIEluY2x1ZGVzIGFsbCBjb21tb24gZXZlbnQgcHJvcHMgaW5jbHVkaW5nIEtleUV2ZW50IGFuZCBNb3VzZUV2ZW50IHNwZWNpZmljIHByb3BzXG5qUXVlcnkuZWFjaCgge1xuXHRhbHRLZXk6IHRydWUsXG5cdGJ1YmJsZXM6IHRydWUsXG5cdGNhbmNlbGFibGU6IHRydWUsXG5cdGNoYW5nZWRUb3VjaGVzOiB0cnVlLFxuXHRjdHJsS2V5OiB0cnVlLFxuXHRkZXRhaWw6IHRydWUsXG5cdGV2ZW50UGhhc2U6IHRydWUsXG5cdG1ldGFLZXk6IHRydWUsXG5cdHBhZ2VYOiB0cnVlLFxuXHRwYWdlWTogdHJ1ZSxcblx0c2hpZnRLZXk6IHRydWUsXG5cdHZpZXc6IHRydWUsXG5cdFwiY2hhclwiOiB0cnVlLFxuXHRjb2RlOiB0cnVlLFxuXHRjaGFyQ29kZTogdHJ1ZSxcblx0a2V5OiB0cnVlLFxuXHRrZXlDb2RlOiB0cnVlLFxuXHRidXR0b246IHRydWUsXG5cdGJ1dHRvbnM6IHRydWUsXG5cdGNsaWVudFg6IHRydWUsXG5cdGNsaWVudFk6IHRydWUsXG5cdG9mZnNldFg6IHRydWUsXG5cdG9mZnNldFk6IHRydWUsXG5cdHBvaW50ZXJJZDogdHJ1ZSxcblx0cG9pbnRlclR5cGU6IHRydWUsXG5cdHNjcmVlblg6IHRydWUsXG5cdHNjcmVlblk6IHRydWUsXG5cdHRhcmdldFRvdWNoZXM6IHRydWUsXG5cdHRvRWxlbWVudDogdHJ1ZSxcblx0dG91Y2hlczogdHJ1ZSxcblx0d2hpY2g6IHRydWVcbn0sIGpRdWVyeS5ldmVudC5hZGRQcm9wICk7XG5cbmpRdWVyeS5lYWNoKCB7IGZvY3VzOiBcImZvY3VzaW5cIiwgYmx1cjogXCJmb2N1c291dFwiIH0sIGZ1bmN0aW9uKCB0eXBlLCBkZWxlZ2F0ZVR5cGUgKSB7XG5cblx0ZnVuY3Rpb24gZm9jdXNNYXBwZWRIYW5kbGVyKCBuYXRpdmVFdmVudCApIHtcblx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErXG5cdFx0XHQvLyBBdHRhY2ggYSBzaW5nbGUgZm9jdXNpbi9mb2N1c291dCBoYW5kbGVyIG9uIHRoZSBkb2N1bWVudCB3aGlsZSBzb21lb25lIHdhbnRzXG5cdFx0XHQvLyBmb2N1cy9ibHVyLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGZvcm1lciBhcmUgc3luY2hyb25vdXMgaW4gSUUgd2hpbGUgdGhlIGxhdHRlclxuXHRcdFx0Ly8gYXJlIGFzeW5jLiBJbiBvdGhlciBicm93c2VycywgYWxsIHRob3NlIGhhbmRsZXJzIGFyZSBpbnZva2VkIHN5bmNocm9ub3VzbHkuXG5cblx0XHRcdC8vIGBoYW5kbGVgIGZyb20gcHJpdmF0ZSBkYXRhIHdvdWxkIGFscmVhZHkgd3JhcCB0aGUgZXZlbnQsIGJ1dCB3ZSBuZWVkXG5cdFx0XHQvLyB0byBjaGFuZ2UgdGhlIGB0eXBlYCBoZXJlLlxuXHRcdFx0dmFyIGhhbmRsZSA9IGRhdGFQcml2LmdldCggdGhpcywgXCJoYW5kbGVcIiApLFxuXHRcdFx0XHRldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICk7XG5cdFx0XHRldmVudC50eXBlID0gbmF0aXZlRXZlbnQudHlwZSA9PT0gXCJmb2N1c2luXCIgPyBcImZvY3VzXCIgOiBcImJsdXJcIjtcblx0XHRcdGV2ZW50LmlzU2ltdWxhdGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gRmlyc3QsIGhhbmRsZSBmb2N1c2luL2ZvY3Vzb3V0XG5cdFx0XHRoYW5kbGUoIG5hdGl2ZUV2ZW50ICk7XG5cblx0XHRcdC8vIC4uLnRoZW4sIGhhbmRsZSBmb2N1cy9ibHVyXG5cdFx0XHQvL1xuXHRcdFx0Ly8gZm9jdXMvYmx1ciBkb24ndCBidWJibGUgd2hpbGUgZm9jdXNpbi9mb2N1c291dCBkbzsgc2ltdWxhdGUgdGhlIGZvcm1lciBieSBvbmx5XG5cdFx0XHQvLyBpbnZva2luZyB0aGUgaGFuZGxlciBhdCB0aGUgbG93ZXIgbGV2ZWwuXG5cdFx0XHRpZiAoIGV2ZW50LnRhcmdldCA9PT0gZXZlbnQuY3VycmVudFRhcmdldCApIHtcblxuXHRcdFx0XHQvLyBUaGUgc2V0dXAgcGFydCBjYWxscyBgbGV2ZXJhZ2VOYXRpdmVgLCB3aGljaCwgaW4gdHVybiwgY2FsbHNcblx0XHRcdFx0Ly8gYGpRdWVyeS5ldmVudC5hZGRgLCBzbyBldmVudCBoYW5kbGUgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBzZXRcblx0XHRcdFx0Ly8gYnkgdGhpcyBwb2ludC5cblx0XHRcdFx0aGFuZGxlKCBldmVudCApO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIEZvciBub24tSUUgYnJvd3NlcnMsIGF0dGFjaCBhIHNpbmdsZSBjYXB0dXJpbmcgaGFuZGxlciBvbiB0aGUgZG9jdW1lbnRcblx0XHRcdC8vIHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dC5cblx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggZGVsZWdhdGVUeXBlLCBuYXRpdmVFdmVudC50YXJnZXQsXG5cdFx0XHRcdGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICkgKTtcblx0XHR9XG5cdH1cblxuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdID0ge1xuXG5cdFx0Ly8gVXRpbGl6ZSBuYXRpdmUgZXZlbnQgaWYgcG9zc2libGUgc28gYmx1ci9mb2N1cyBzZXF1ZW5jZSBpcyBjb3JyZWN0XG5cdFx0c2V0dXA6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHR2YXIgYXR0YWNoZXM7XG5cblx0XHRcdC8vIENsYWltIHRoZSBmaXJzdCBoYW5kbGVyXG5cdFx0XHQvLyBkYXRhUHJpdi5zZXQoIHRoaXMsIFwiZm9jdXNcIiwgLi4uIClcblx0XHRcdC8vIGRhdGFQcml2LnNldCggdGhpcywgXCJibHVyXCIsIC4uLiApXG5cdFx0XHRsZXZlcmFnZU5hdGl2ZSggdGhpcywgdHlwZSwgdHJ1ZSApO1xuXG5cdFx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErXG5cdFx0XHRcdC8vIFdlIHVzZSB0aGUgc2FtZSBuYXRpdmUgaGFuZGxlciBmb3IgZm9jdXNpbiAmIGZvY3VzIChhbmQgZm9jdXNvdXQgJiBibHVyKVxuXHRcdFx0XHQvLyBzbyB3ZSBuZWVkIHRvIGNvb3JkaW5hdGUgc2V0dXAgJiB0ZWFyZG93biBwYXJ0cyBiZXR3ZWVuIHRob3NlIGV2ZW50cy5cblx0XHRcdFx0Ly8gVXNlIGBkZWxlZ2F0ZVR5cGVgIGFzIHRoZSBrZXkgYXMgYHR5cGVgIGlzIGFscmVhZHkgdXNlZCBieSBgbGV2ZXJhZ2VOYXRpdmVgLlxuXHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFQcml2LmdldCggdGhpcywgZGVsZWdhdGVUeXBlICk7XG5cdFx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRcdHRoaXMuYWRkRXZlbnRMaXN0ZW5lciggZGVsZWdhdGVUeXBlLCBmb2N1c01hcHBlZEhhbmRsZXIgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIHRoaXMsIGRlbGVnYXRlVHlwZSwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdHRyaWdnZXI6IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBGb3JjZSBzZXR1cCBiZWZvcmUgdHJpZ2dlclxuXHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIG5vbi1mYWxzZSB0byBhbGxvdyBub3JtYWwgZXZlbnQtcGF0aCBwcm9wYWdhdGlvblxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdHRlYXJkb3duOiBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBhdHRhY2hlcztcblxuXHRcdFx0aWYgKCBkb2N1bWVudC5kb2N1bWVudE1vZGUgKSB7XG5cdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuZ2V0KCB0aGlzLCBkZWxlZ2F0ZVR5cGUgKSAtIDE7XG5cdFx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRcdHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lciggZGVsZWdhdGVUeXBlLCBmb2N1c01hcHBlZEhhbmRsZXIgKTtcblx0XHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIHRoaXMsIGRlbGVnYXRlVHlwZSApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgZGVsZWdhdGVUeXBlLCBhdHRhY2hlcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBpbmRpY2F0ZSBzdGFuZGFyZCB0ZWFyZG93biBzaG91bGQgYmUgYXBwbGllZFxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdC8vIFN1cHByZXNzIG5hdGl2ZSBmb2N1cyBvciBibHVyIGlmIHdlJ3JlIGN1cnJlbnRseSBpbnNpZGVcblx0XHQvLyBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRfZGVmYXVsdDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0cmV0dXJuIGRhdGFQcml2LmdldCggZXZlbnQudGFyZ2V0LCB0eXBlICk7XG5cdFx0fSxcblxuXHRcdGRlbGVnYXRlVHlwZTogZGVsZWdhdGVUeXBlXG5cdH07XG5cblx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTQ0XG5cdC8vIEZpcmVmb3ggZG9lc24ndCBoYXZlIGZvY3VzKGluIHwgb3V0KSBldmVudHNcblx0Ly8gUmVsYXRlZCB0aWNrZXQgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc3ODdcblx0Ly9cblx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9NDggLSA0OSwgU2FmYXJpIDw9OS4wIC0gOS4xXG5cdC8vIGZvY3VzKGluIHwgb3V0KSBldmVudHMgZmlyZSBhZnRlciBmb2N1cyAmIGJsdXIgZXZlbnRzLFxuXHQvLyB3aGljaCBpcyBzcGVjIHZpb2xhdGlvbiAtIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWZvY3VzZXZlbnQtZXZlbnQtb3JkZXJcblx0Ly8gUmVsYXRlZCB0aWNrZXQgLSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NDk4NTdcblx0Ly9cblx0Ly8gU3VwcG9ydDogSUUgOSAtIDExK1xuXHQvLyBUbyBwcmVzZXJ2ZSByZWxhdGl2ZSBmb2N1c2luL2ZvY3VzICYgZm9jdXNvdXQvYmx1ciBldmVudCBvcmRlciBndWFyYW50ZWVkIG9uIHRoZSAzLnggYnJhbmNoLFxuXHQvLyBhdHRhY2ggYSBzaW5nbGUgaGFuZGxlciBmb3IgYm90aCBldmVudHMgaW4gSUUuXG5cdGpRdWVyeS5ldmVudC5zcGVjaWFsWyBkZWxlZ2F0ZVR5cGUgXSA9IHtcblx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIEhhbmRsZTogcmVndWxhciBub2RlcyAodmlhIGB0aGlzLm93bmVyRG9jdW1lbnRgKSwgd2luZG93XG5cdFx0XHQvLyAodmlhIGB0aGlzLmRvY3VtZW50YCkgJiBkb2N1bWVudCAodmlhIGB0aGlzYCkuXG5cdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMuZG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0ZGF0YUhvbGRlciA9IGRvY3VtZW50LmRvY3VtZW50TW9kZSA/IHRoaXMgOiBkb2MsXG5cdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuZ2V0KCBkYXRhSG9sZGVyLCBkZWxlZ2F0ZVR5cGUgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExK1xuXHRcdFx0Ly8gV2UgdXNlIHRoZSBzYW1lIG5hdGl2ZSBoYW5kbGVyIGZvciBmb2N1c2luICYgZm9jdXMgKGFuZCBmb2N1c291dCAmIGJsdXIpXG5cdFx0XHQvLyBzbyB3ZSBuZWVkIHRvIGNvb3JkaW5hdGUgc2V0dXAgJiB0ZWFyZG93biBwYXJ0cyBiZXR3ZWVuIHRob3NlIGV2ZW50cy5cblx0XHRcdC8vIFVzZSBgZGVsZWdhdGVUeXBlYCBhcyB0aGUga2V5IGFzIGB0eXBlYCBpcyBhbHJlYWR5IHVzZWQgYnkgYGxldmVyYWdlTmF0aXZlYC5cblx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblx0XHRcdFx0XHR0aGlzLmFkZEV2ZW50TGlzdGVuZXIoIGRlbGVnYXRlVHlwZSwgZm9jdXNNYXBwZWRIYW5kbGVyICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZG9jLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGZvY3VzTWFwcGVkSGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRkYXRhUHJpdi5zZXQoIGRhdGFIb2xkZXIsIGRlbGVnYXRlVHlwZSwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7XG5cdFx0fSxcblx0XHR0ZWFyZG93bjogZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMuZG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0ZGF0YUhvbGRlciA9IGRvY3VtZW50LmRvY3VtZW50TW9kZSA/IHRoaXMgOiBkb2MsXG5cdFx0XHRcdGF0dGFjaGVzID0gZGF0YVByaXYuZ2V0KCBkYXRhSG9sZGVyLCBkZWxlZ2F0ZVR5cGUgKSAtIDE7XG5cblx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRpZiAoIGRvY3VtZW50LmRvY3VtZW50TW9kZSApIHtcblx0XHRcdFx0XHR0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIGRlbGVnYXRlVHlwZSwgZm9jdXNNYXBwZWRIYW5kbGVyICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIGZvY3VzTWFwcGVkSGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGFQcml2LnJlbW92ZSggZGF0YUhvbGRlciwgZGVsZWdhdGVUeXBlICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIGRhdGFIb2xkZXIsIGRlbGVnYXRlVHlwZSwgYXR0YWNoZXMgKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG59ICk7XG5cbi8vIENyZWF0ZSBtb3VzZWVudGVyL2xlYXZlIGV2ZW50cyB1c2luZyBtb3VzZW92ZXIvb3V0IGFuZCBldmVudC10aW1lIGNoZWNrc1xuLy8gc28gdGhhdCBldmVudCBkZWxlZ2F0aW9uIHdvcmtzIGluIGpRdWVyeS5cbi8vIERvIHRoZSBzYW1lIGZvciBwb2ludGVyZW50ZXIvcG9pbnRlcmxlYXZlIGFuZCBwb2ludGVyb3Zlci9wb2ludGVyb3V0XG4vL1xuLy8gU3VwcG9ydDogU2FmYXJpIDcgb25seVxuLy8gU2FmYXJpIHNlbmRzIG1vdXNlZW50ZXIgdG9vIG9mdGVuOyBzZWU6XG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00NzAyNThcbi8vIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZyAoaXQgZXhpc3RlZCBpbiBvbGRlciBDaHJvbWUgdmVyc2lvbnMgYXMgd2VsbCkuXG5qUXVlcnkuZWFjaCgge1xuXHRtb3VzZWVudGVyOiBcIm1vdXNlb3ZlclwiLFxuXHRtb3VzZWxlYXZlOiBcIm1vdXNlb3V0XCIsXG5cdHBvaW50ZXJlbnRlcjogXCJwb2ludGVyb3ZlclwiLFxuXHRwb2ludGVybGVhdmU6IFwicG9pbnRlcm91dFwiXG59LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgb3JpZyBdID0ge1xuXHRcdGRlbGVnYXRlVHlwZTogZml4LFxuXHRcdGJpbmRUeXBlOiBmaXgsXG5cblx0XHRoYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdHZhciByZXQsXG5cdFx0XHRcdHRhcmdldCA9IHRoaXMsXG5cdFx0XHRcdHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0LFxuXHRcdFx0XHRoYW5kbGVPYmogPSBldmVudC5oYW5kbGVPYmo7XG5cblx0XHRcdC8vIEZvciBtb3VzZWVudGVyL2xlYXZlIGNhbGwgdGhlIGhhbmRsZXIgaWYgcmVsYXRlZCBpcyBvdXRzaWRlIHRoZSB0YXJnZXQuXG5cdFx0XHQvLyBOQjogTm8gcmVsYXRlZFRhcmdldCBpZiB0aGUgbW91c2UgbGVmdC9lbnRlcmVkIHRoZSBicm93c2VyIHdpbmRvd1xuXHRcdFx0aWYgKCAhcmVsYXRlZCB8fCAoIHJlbGF0ZWQgIT09IHRhcmdldCAmJiAhalF1ZXJ5LmNvbnRhaW5zKCB0YXJnZXQsIHJlbGF0ZWQgKSApICkge1xuXHRcdFx0XHRldmVudC50eXBlID0gaGFuZGxlT2JqLm9yaWdUeXBlO1xuXHRcdFx0XHRyZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdGV2ZW50LnR5cGUgPSBmaXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblx0fTtcbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdG9uOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gb24oIHRoaXMsIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0b25lOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gb24oIHRoaXMsIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIDEgKTtcblx0fSxcblx0b2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHtcblx0XHR2YXIgaGFuZGxlT2JqLCB0eXBlO1xuXHRcdGlmICggdHlwZXMgJiYgdHlwZXMucHJldmVudERlZmF1bHQgJiYgdHlwZXMuaGFuZGxlT2JqICkge1xuXG5cdFx0XHQvLyAoIGV2ZW50ICkgIGRpc3BhdGNoZWQgalF1ZXJ5LkV2ZW50XG5cdFx0XHRoYW5kbGVPYmogPSB0eXBlcy5oYW5kbGVPYmo7XG5cdFx0XHRqUXVlcnkoIHR5cGVzLmRlbGVnYXRlVGFyZ2V0ICkub2ZmKFxuXHRcdFx0XHRoYW5kbGVPYmoubmFtZXNwYWNlID9cblx0XHRcdFx0XHRoYW5kbGVPYmoub3JpZ1R5cGUgKyBcIi5cIiArIGhhbmRsZU9iai5uYW1lc3BhY2UgOlxuXHRcdFx0XHRcdGhhbmRsZU9iai5vcmlnVHlwZSxcblx0XHRcdFx0aGFuZGxlT2JqLnNlbGVjdG9yLFxuXHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlclxuXHRcdFx0KTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcy1vYmplY3QgWywgc2VsZWN0b3JdIClcblx0XHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XG5cdFx0XHRcdHRoaXMub2ZmKCB0eXBlLCBzZWxlY3RvciwgdHlwZXNbIHR5cGUgXSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXHRcdGlmICggc2VsZWN0b3IgPT09IGZhbHNlIHx8IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJmdW5jdGlvblwiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzIFssIGZuXSApXG5cdFx0XHRmbiA9IHNlbGVjdG9yO1xuXHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmICggZm4gPT09IGZhbHNlICkge1xuXHRcdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCB0eXBlcywgZm4sIHNlbGVjdG9yICk7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cblxudmFyXG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMCAtIDExLCBFZGdlIDEyIC0gMTMgb25seVxuXHQvLyBJbiBJRS9FZGdlIHVzaW5nIHJlZ2V4IGdyb3VwcyBoZXJlIGNhdXNlcyBzZXZlcmUgc2xvd2Rvd25zLlxuXHQvLyBTZWUgaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy8xNzM2NTEyL1xuXHRybm9Jbm5lcmh0bWwgPSAvPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxcblxuXHQvLyBjaGVja2VkPVwiY2hlY2tlZFwiIG9yIGNoZWNrZWRcblx0cmNoZWNrZWQgPSAvY2hlY2tlZFxccyooPzpbXj1dfD1cXHMqLmNoZWNrZWQuKS9pLFxuXG5cdHJjbGVhblNjcmlwdCA9IC9eXFxzKjwhXFxbQ0RBVEFcXFt8XFxdXFxdPlxccyokL2c7XG5cbi8vIFByZWZlciBhIHRib2R5IG92ZXIgaXRzIHBhcmVudCB0YWJsZSBmb3IgY29udGFpbmluZyBuZXcgcm93c1xuZnVuY3Rpb24gbWFuaXB1bGF0aW9uVGFyZ2V0KCBlbGVtLCBjb250ZW50ICkge1xuXHRpZiAoIG5vZGVOYW1lKCBlbGVtLCBcInRhYmxlXCIgKSAmJlxuXHRcdG5vZGVOYW1lKCBjb250ZW50Lm5vZGVUeXBlICE9PSAxMSA/IGNvbnRlbnQgOiBjb250ZW50LmZpcnN0Q2hpbGQsIFwidHJcIiApICkge1xuXG5cdFx0cmV0dXJuIGpRdWVyeSggZWxlbSApLmNoaWxkcmVuKCBcInRib2R5XCIgKVsgMCBdIHx8IGVsZW07XG5cdH1cblxuXHRyZXR1cm4gZWxlbTtcbn1cblxuLy8gUmVwbGFjZS9yZXN0b3JlIHRoZSB0eXBlIGF0dHJpYnV0ZSBvZiBzY3JpcHQgZWxlbWVudHMgZm9yIHNhZmUgRE9NIG1hbmlwdWxhdGlvblxuZnVuY3Rpb24gZGlzYWJsZVNjcmlwdCggZWxlbSApIHtcblx0ZWxlbS50eXBlID0gKCBlbGVtLmdldEF0dHJpYnV0ZSggXCJ0eXBlXCIgKSAhPT0gbnVsbCApICsgXCIvXCIgKyBlbGVtLnR5cGU7XG5cdHJldHVybiBlbGVtO1xufVxuZnVuY3Rpb24gcmVzdG9yZVNjcmlwdCggZWxlbSApIHtcblx0aWYgKCAoIGVsZW0udHlwZSB8fCBcIlwiICkuc2xpY2UoIDAsIDUgKSA9PT0gXCJ0cnVlL1wiICkge1xuXHRcdGVsZW0udHlwZSA9IGVsZW0udHlwZS5zbGljZSggNSApO1xuXHR9IGVsc2Uge1xuXHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBcInR5cGVcIiApO1xuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBpLCBsLCB0eXBlLCBwZGF0YU9sZCwgdWRhdGFPbGQsIHVkYXRhQ3VyLCBldmVudHM7XG5cblx0aWYgKCBkZXN0Lm5vZGVUeXBlICE9PSAxICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIDEuIENvcHkgcHJpdmF0ZSBkYXRhOiBldmVudHMsIGhhbmRsZXJzLCBldGMuXG5cdGlmICggZGF0YVByaXYuaGFzRGF0YSggc3JjICkgKSB7XG5cdFx0cGRhdGFPbGQgPSBkYXRhUHJpdi5nZXQoIHNyYyApO1xuXHRcdGV2ZW50cyA9IHBkYXRhT2xkLmV2ZW50cztcblxuXHRcdGlmICggZXZlbnRzICkge1xuXHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBkZXN0LCBcImhhbmRsZSBldmVudHNcIiApO1xuXG5cdFx0XHRmb3IgKCB0eXBlIGluIGV2ZW50cyApIHtcblx0XHRcdFx0Zm9yICggaSA9IDAsIGwgPSBldmVudHNbIHR5cGUgXS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggZGVzdCwgdHlwZSwgZXZlbnRzWyB0eXBlIF1bIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gMi4gQ29weSB1c2VyIGRhdGFcblx0aWYgKCBkYXRhVXNlci5oYXNEYXRhKCBzcmMgKSApIHtcblx0XHR1ZGF0YU9sZCA9IGRhdGFVc2VyLmFjY2Vzcyggc3JjICk7XG5cdFx0dWRhdGFDdXIgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgdWRhdGFPbGQgKTtcblxuXHRcdGRhdGFVc2VyLnNldCggZGVzdCwgdWRhdGFDdXIgKTtcblx0fVxufVxuXG4vLyBGaXggSUUgYnVncywgc2VlIHN1cHBvcnQgdGVzdHNcbmZ1bmN0aW9uIGZpeElucHV0KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBub2RlTmFtZSA9IGRlc3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblxuXHQvLyBGYWlscyB0byBwZXJzaXN0IHRoZSBjaGVja2VkIHN0YXRlIG9mIGEgY2xvbmVkIGNoZWNrYm94IG9yIHJhZGlvIGJ1dHRvbi5cblx0aWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmIHJjaGVja2FibGVUeXBlLnRlc3QoIHNyYy50eXBlICkgKSB7XG5cdFx0ZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7XG5cblx0Ly8gRmFpbHMgdG8gcmV0dXJuIHRoZSBzZWxlY3RlZCBvcHRpb24gdG8gdGhlIGRlZmF1bHQgc2VsZWN0ZWQgc3RhdGUgd2hlbiBjbG9uaW5nIG9wdGlvbnNcblx0fSBlbHNlIGlmICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiB8fCBub2RlTmFtZSA9PT0gXCJ0ZXh0YXJlYVwiICkge1xuXHRcdGRlc3QuZGVmYXVsdFZhbHVlID0gc3JjLmRlZmF1bHRWYWx1ZTtcblx0fVxufVxuXG5mdW5jdGlvbiBkb21NYW5pcCggY29sbGVjdGlvbiwgYXJncywgY2FsbGJhY2ssIGlnbm9yZWQgKSB7XG5cblx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRhcmdzID0gZmxhdCggYXJncyApO1xuXG5cdHZhciBmcmFnbWVudCwgZmlyc3QsIHNjcmlwdHMsIGhhc1NjcmlwdHMsIG5vZGUsIGRvYyxcblx0XHRpID0gMCxcblx0XHRsID0gY29sbGVjdGlvbi5sZW5ndGgsXG5cdFx0aU5vQ2xvbmUgPSBsIC0gMSxcblx0XHR2YWx1ZSA9IGFyZ3NbIDAgXSxcblx0XHR2YWx1ZUlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdC8vIFdlIGNhbid0IGNsb25lTm9kZSBmcmFnbWVudHMgdGhhdCBjb250YWluIGNoZWNrZWQsIGluIFdlYktpdFxuXHRpZiAoIHZhbHVlSXNGdW5jdGlvbiB8fFxuXHRcdFx0KCBsID4gMSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0IXN1cHBvcnQuY2hlY2tDbG9uZSAmJiByY2hlY2tlZC50ZXN0KCB2YWx1ZSApICkgKSB7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb24uZWFjaCggZnVuY3Rpb24oIGluZGV4ICkge1xuXHRcdFx0dmFyIHNlbGYgPSBjb2xsZWN0aW9uLmVxKCBpbmRleCApO1xuXHRcdFx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdGFyZ3NbIDAgXSA9IHZhbHVlLmNhbGwoIHRoaXMsIGluZGV4LCBzZWxmLmh0bWwoKSApO1xuXHRcdFx0fVxuXHRcdFx0ZG9tTWFuaXAoIHNlbGYsIGFyZ3MsIGNhbGxiYWNrLCBpZ25vcmVkICk7XG5cdFx0fSApO1xuXHR9XG5cblx0aWYgKCBsICkge1xuXHRcdGZyYWdtZW50ID0gYnVpbGRGcmFnbWVudCggYXJncywgY29sbGVjdGlvblsgMCBdLm93bmVyRG9jdW1lbnQsIGZhbHNlLCBjb2xsZWN0aW9uLCBpZ25vcmVkICk7XG5cdFx0Zmlyc3QgPSBmcmFnbWVudC5maXJzdENoaWxkO1xuXG5cdFx0aWYgKCBmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSApIHtcblx0XHRcdGZyYWdtZW50ID0gZmlyc3Q7XG5cdFx0fVxuXG5cdFx0Ly8gUmVxdWlyZSBlaXRoZXIgbmV3IGNvbnRlbnQgb3IgYW4gaW50ZXJlc3QgaW4gaWdub3JlZCBlbGVtZW50cyB0byBpbnZva2UgdGhlIGNhbGxiYWNrXG5cdFx0aWYgKCBmaXJzdCB8fCBpZ25vcmVkICkge1xuXHRcdFx0c2NyaXB0cyA9IGpRdWVyeS5tYXAoIGdldEFsbCggZnJhZ21lbnQsIFwic2NyaXB0XCIgKSwgZGlzYWJsZVNjcmlwdCApO1xuXHRcdFx0aGFzU2NyaXB0cyA9IHNjcmlwdHMubGVuZ3RoO1xuXG5cdFx0XHQvLyBVc2UgdGhlIG9yaWdpbmFsIGZyYWdtZW50IGZvciB0aGUgbGFzdCBpdGVtXG5cdFx0XHQvLyBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXBcblx0XHRcdC8vIGJlaW5nIGVtcHRpZWQgaW5jb3JyZWN0bHkgaW4gY2VydGFpbiBzaXR1YXRpb25zICh0cmFjLTgwNzApLlxuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRub2RlID0gZnJhZ21lbnQ7XG5cblx0XHRcdFx0aWYgKCBpICE9PSBpTm9DbG9uZSApIHtcblx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHQvLyBLZWVwIHJlZmVyZW5jZXMgdG8gY2xvbmVkIHNjcmlwdHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggc2NyaXB0cywgZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYWxsYmFjay5jYWxsKCBjb2xsZWN0aW9uWyBpIF0sIG5vZGUsIGkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXHRcdFx0XHRkb2MgPSBzY3JpcHRzWyBzY3JpcHRzLmxlbmd0aCAtIDEgXS5vd25lckRvY3VtZW50O1xuXG5cdFx0XHRcdC8vIFJlLWVuYWJsZSBzY3JpcHRzXG5cdFx0XHRcdGpRdWVyeS5tYXAoIHNjcmlwdHMsIHJlc3RvcmVTY3JpcHQgKTtcblxuXHRcdFx0XHQvLyBFdmFsdWF0ZSBleGVjdXRhYmxlIHNjcmlwdHMgb24gZmlyc3QgZG9jdW1lbnQgaW5zZXJ0aW9uXG5cdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgaGFzU2NyaXB0czsgaSsrICkge1xuXHRcdFx0XHRcdG5vZGUgPSBzY3JpcHRzWyBpIF07XG5cdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBub2RlLnR5cGUgfHwgXCJcIiApICYmXG5cdFx0XHRcdFx0XHQhZGF0YVByaXYuYWNjZXNzKCBub2RlLCBcImdsb2JhbEV2YWxcIiApICYmXG5cdFx0XHRcdFx0XHRqUXVlcnkuY29udGFpbnMoIGRvYywgbm9kZSApICkge1xuXG5cdFx0XHRcdFx0XHRpZiAoIG5vZGUuc3JjICYmICggbm9kZS50eXBlIHx8IFwiXCIgKS50b0xvd2VyQ2FzZSgpICAhPT0gXCJtb2R1bGVcIiApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBPcHRpb25hbCBBSkFYIGRlcGVuZGVuY3ksIGJ1dCB3b24ndCBydW4gc2NyaXB0cyBpZiBub3QgcHJlc2VudFxuXHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5fZXZhbFVybCAmJiAhbm9kZS5ub01vZHVsZSApIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuX2V2YWxVcmwoIG5vZGUuc3JjLCB7XG5cdFx0XHRcdFx0XHRcdFx0XHRub25jZTogbm9kZS5ub25jZSB8fCBub2RlLmdldEF0dHJpYnV0ZSggXCJub25jZVwiIClcblx0XHRcdFx0XHRcdFx0XHR9LCBkb2MgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBVbndyYXAgYSBDREFUQSBzZWN0aW9uIGNvbnRhaW5pbmcgc2NyaXB0IGNvbnRlbnRzLiBUaGlzIHNob3VsZG4ndCBiZVxuXHRcdFx0XHRcdFx0XHQvLyBuZWVkZWQgYXMgaW4gWE1MIGRvY3VtZW50cyB0aGV5J3JlIGFscmVhZHkgbm90IHZpc2libGUgd2hlblxuXHRcdFx0XHRcdFx0XHQvLyBpbnNwZWN0aW5nIGVsZW1lbnQgY29udGVudHMgYW5kIGluIEhUTUwgZG9jdW1lbnRzIHRoZXkgaGF2ZSBub1xuXHRcdFx0XHRcdFx0XHQvLyBtZWFuaW5nIGJ1dCB3ZSdyZSBwcmVzZXJ2aW5nIHRoYXQgbG9naWMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuXHRcdFx0XHRcdFx0XHQvLyBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBjb21wbGV0ZWx5IGluIDQuMC4gU2VlIGdoLTQ5MDQuXG5cdFx0XHRcdFx0XHRcdERPTUV2YWwoIG5vZGUudGV4dENvbnRlbnQucmVwbGFjZSggcmNsZWFuU2NyaXB0LCBcIlwiICksIG5vZGUsIGRvYyApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjb2xsZWN0aW9uO1xufVxuXG5mdW5jdGlvbiByZW1vdmUoIGVsZW0sIHNlbGVjdG9yLCBrZWVwRGF0YSApIHtcblx0dmFyIG5vZGUsXG5cdFx0bm9kZXMgPSBzZWxlY3RvciA/IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBlbGVtICkgOiBlbGVtLFxuXHRcdGkgPSAwO1xuXG5cdGZvciAoIDsgKCBub2RlID0gbm9kZXNbIGkgXSApICE9IG51bGw7IGkrKyApIHtcblx0XHRpZiAoICFrZWVwRGF0YSAmJiBub2RlLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBub2RlICkgKTtcblx0XHR9XG5cblx0XHRpZiAoIG5vZGUucGFyZW50Tm9kZSApIHtcblx0XHRcdGlmICgga2VlcERhdGEgJiYgaXNBdHRhY2hlZCggbm9kZSApICkge1xuXHRcdFx0XHRzZXRHbG9iYWxFdmFsKCBnZXRBbGwoIG5vZGUsIFwic2NyaXB0XCIgKSApO1xuXHRcdFx0fVxuXHRcdFx0bm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBub2RlICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0aHRtbFByZWZpbHRlcjogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0cmV0dXJuIGh0bWw7XG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uKCBlbGVtLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHtcblx0XHR2YXIgaSwgbCwgc3JjRWxlbWVudHMsIGRlc3RFbGVtZW50cyxcblx0XHRcdGNsb25lID0gZWxlbS5jbG9uZU5vZGUoIHRydWUgKSxcblx0XHRcdGluUGFnZSA9IGlzQXR0YWNoZWQoIGVsZW0gKTtcblxuXHRcdC8vIEZpeCBJRSBjbG9uaW5nIGlzc3Vlc1xuXHRcdGlmICggIXN1cHBvcnQubm9DbG9uZUNoZWNrZWQgJiYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGVsZW0ubm9kZVR5cGUgPT09IDExICkgJiZcblx0XHRcdFx0IWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBXZSBlc2NoZXcgalF1ZXJ5I2ZpbmQgaGVyZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29uczpcblx0XHRcdC8vIGh0dHBzOi8vanNwZXJmLmNvbS9nZXRhbGwtdnMtc2l6emxlLzJcblx0XHRcdGRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTtcblx0XHRcdHNyY0VsZW1lbnRzID0gZ2V0QWxsKCBlbGVtICk7XG5cblx0XHRcdGZvciAoIGkgPSAwLCBsID0gc3JjRWxlbWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRmaXhJbnB1dCggc3JjRWxlbWVudHNbIGkgXSwgZGVzdEVsZW1lbnRzWyBpIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb3B5IHRoZSBldmVudHMgZnJvbSB0aGUgb3JpZ2luYWwgdG8gdGhlIGNsb25lXG5cdFx0aWYgKCBkYXRhQW5kRXZlbnRzICkge1xuXHRcdFx0aWYgKCBkZWVwRGF0YUFuZEV2ZW50cyApIHtcblx0XHRcdFx0c3JjRWxlbWVudHMgPSBzcmNFbGVtZW50cyB8fCBnZXRBbGwoIGVsZW0gKTtcblx0XHRcdFx0ZGVzdEVsZW1lbnRzID0gZGVzdEVsZW1lbnRzIHx8IGdldEFsbCggY2xvbmUgKTtcblxuXHRcdFx0XHRmb3IgKCBpID0gMCwgbCA9IHNyY0VsZW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRjbG9uZUNvcHlFdmVudCggc3JjRWxlbWVudHNbIGkgXSwgZGVzdEVsZW1lbnRzWyBpIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2xvbmVDb3B5RXZlbnQoIGVsZW0sIGNsb25lICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUHJlc2VydmUgc2NyaXB0IGV2YWx1YXRpb24gaGlzdG9yeVxuXHRcdGRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUsIFwic2NyaXB0XCIgKTtcblx0XHRpZiAoIGRlc3RFbGVtZW50cy5sZW5ndGggPiAwICkge1xuXHRcdFx0c2V0R2xvYmFsRXZhbCggZGVzdEVsZW1lbnRzLCAhaW5QYWdlICYmIGdldEFsbCggZWxlbSwgXCJzY3JpcHRcIiApICk7XG5cdFx0fVxuXG5cdFx0Ly8gUmV0dXJuIHRoZSBjbG9uZWQgc2V0XG5cdFx0cmV0dXJuIGNsb25lO1xuXHR9LFxuXG5cdGNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkge1xuXHRcdHZhciBkYXRhLCBlbGVtLCB0eXBlLFxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRmb3IgKCA7ICggZWxlbSA9IGVsZW1zWyBpIF0gKSAhPT0gdW5kZWZpbmVkOyBpKysgKSB7XG5cdFx0XHRpZiAoIGFjY2VwdERhdGEoIGVsZW0gKSApIHtcblx0XHRcdFx0aWYgKCAoIGRhdGEgPSBlbGVtWyBkYXRhUHJpdi5leHBhbmRvIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGRhdGEuZXZlbnRzICkge1xuXHRcdFx0XHRcdFx0Zm9yICggdHlwZSBpbiBkYXRhLmV2ZW50cyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWRcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGRhdGEuaGFuZGxlICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0zNSAtIDQ1K1xuXHRcdFx0XHRcdC8vIEFzc2lnbiB1bmRlZmluZWQgaW5zdGVhZCBvZiB1c2luZyBkZWxldGUsIHNlZSBEYXRhI3JlbW92ZVxuXHRcdFx0XHRcdGVsZW1bIGRhdGFQcml2LmV4cGFuZG8gXSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIGVsZW1bIGRhdGFVc2VyLmV4cGFuZG8gXSApIHtcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDUrXG5cdFx0XHRcdFx0Ly8gQXNzaWduIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIHVzaW5nIGRlbGV0ZSwgc2VlIERhdGEjcmVtb3ZlXG5cdFx0XHRcdFx0ZWxlbVsgZGF0YVVzZXIuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0ZGV0YWNoOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHJlbW92ZSggdGhpcywgc2VsZWN0b3IsIHRydWUgKTtcblx0fSxcblxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gcmVtb3ZlKCB0aGlzLCBzZWxlY3RvciApO1xuXHR9LFxuXG5cdHRleHQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdGpRdWVyeS50ZXh0KCB0aGlzICkgOlxuXHRcdFx0XHR0aGlzLmVtcHR5KCkuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnRleHRDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICk7XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fSxcblxuXHRhcHBlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7XG5cdFx0XHRcdHRhcmdldC5hcHBlbmRDaGlsZCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRwcmVwZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IG1hbmlwdWxhdGlvblRhcmdldCggdGhpcywgZWxlbSApO1xuXHRcdFx0XHR0YXJnZXQuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0YXJnZXQuZmlyc3RDaGlsZCApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRiZWZvcmU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGFmdGVyOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcy5uZXh0U2libGluZyApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRlbXB0eTogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGVsZW0sXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKCBlbGVtID0gdGhpc1sgaSBdICkgIT0gbnVsbDsgaSsrICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdC8vIFByZXZlbnQgbWVtb3J5IGxlYWtzXG5cdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggZWxlbSwgZmFsc2UgKSApO1xuXG5cdFx0XHRcdC8vIFJlbW92ZSBhbnkgcmVtYWluaW5nIG5vZGVzXG5cdFx0XHRcdGVsZW0udGV4dENvbnRlbnQgPSBcIlwiO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdGNsb25lOiBmdW5jdGlvbiggZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0ZGF0YUFuZEV2ZW50cyA9IGRhdGFBbmRFdmVudHMgPT0gbnVsbCA/IGZhbHNlIDogZGF0YUFuZEV2ZW50cztcblx0XHRkZWVwRGF0YUFuZEV2ZW50cyA9IGRlZXBEYXRhQW5kRXZlbnRzID09IG51bGwgPyBkYXRhQW5kRXZlbnRzIDogZGVlcERhdGFBbmRFdmVudHM7XG5cblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTtcblx0XHR9ICk7XG5cdH0sXG5cblx0aHRtbDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHZhciBlbGVtID0gdGhpc1sgMCBdIHx8IHt9LFxuXHRcdFx0XHRpID0gMCxcblx0XHRcdFx0bCA9IHRoaXMubGVuZ3RoO1xuXG5cdFx0XHRpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0cmV0dXJuIGVsZW0uaW5uZXJIVE1MO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZWUgaWYgd2UgY2FuIHRha2UgYSBzaG9ydGN1dCBhbmQganVzdCB1c2UgaW5uZXJIVE1MXG5cdFx0XHRpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAhcm5vSW5uZXJodG1sLnRlc3QoIHZhbHVlICkgJiZcblx0XHRcdFx0IXdyYXBNYXBbICggcnRhZ05hbWUuZXhlYyggdmFsdWUgKSB8fCBbIFwiXCIsIFwiXCIgXSApWyAxIF0udG9Mb3dlckNhc2UoKSBdICkge1xuXG5cdFx0XHRcdHZhbHVlID0galF1ZXJ5Lmh0bWxQcmVmaWx0ZXIoIHZhbHVlICk7XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRlbGVtID0gdGhpc1sgaSBdIHx8IHt9O1xuXG5cdFx0XHRcdFx0XHQvLyBSZW1vdmUgZWxlbWVudCBub2RlcyBhbmQgcHJldmVudCBtZW1vcnkgbGVha3Ncblx0XHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtLCBmYWxzZSApICk7XG5cdFx0XHRcdFx0XHRcdGVsZW0uaW5uZXJIVE1MID0gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0ZWxlbSA9IDA7XG5cblx0XHRcdFx0Ly8gSWYgdXNpbmcgaW5uZXJIVE1MIHRocm93cyBhbiBleGNlcHRpb24sIHVzZSB0aGUgZmFsbGJhY2sgbWV0aG9kXG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge31cblx0XHRcdH1cblxuXHRcdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0XHR0aGlzLmVtcHR5KCkuYXBwZW5kKCB2YWx1ZSApO1xuXHRcdFx0fVxuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoICk7XG5cdH0sXG5cblx0cmVwbGFjZVdpdGg6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBpZ25vcmVkID0gW107XG5cblx0XHQvLyBNYWtlIHRoZSBjaGFuZ2VzLCByZXBsYWNpbmcgZWFjaCBub24taWdub3JlZCBjb250ZXh0IGVsZW1lbnQgd2l0aCB0aGUgbmV3IGNvbnRlbnRcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgcGFyZW50ID0gdGhpcy5wYXJlbnROb2RlO1xuXG5cdFx0XHRpZiAoIGpRdWVyeS5pbkFycmF5KCB0aGlzLCBpZ25vcmVkICkgPCAwICkge1xuXHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIHRoaXMgKSApO1xuXHRcdFx0XHRpZiAoIHBhcmVudCApIHtcblx0XHRcdFx0XHRwYXJlbnQucmVwbGFjZUNoaWxkKCBlbGVtLCB0aGlzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEZvcmNlIGNhbGxiYWNrIGludm9jYXRpb25cblx0XHR9LCBpZ25vcmVkICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goIHtcblx0YXBwZW5kVG86IFwiYXBwZW5kXCIsXG5cdHByZXBlbmRUbzogXCJwcmVwZW5kXCIsXG5cdGluc2VydEJlZm9yZTogXCJiZWZvcmVcIixcblx0aW5zZXJ0QWZ0ZXI6IFwiYWZ0ZXJcIixcblx0cmVwbGFjZUFsbDogXCJyZXBsYWNlV2l0aFwiXG59LCBmdW5jdGlvbiggbmFtZSwgb3JpZ2luYWwgKSB7XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHZhciBlbGVtcyxcblx0XHRcdHJldCA9IFtdLFxuXHRcdFx0aW5zZXJ0ID0galF1ZXJ5KCBzZWxlY3RvciApLFxuXHRcdFx0bGFzdCA9IGluc2VydC5sZW5ndGggLSAxLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRmb3IgKCA7IGkgPD0gbGFzdDsgaSsrICkge1xuXHRcdFx0ZWxlbXMgPSBpID09PSBsYXN0ID8gdGhpcyA6IHRoaXMuY2xvbmUoIHRydWUgKTtcblx0XHRcdGpRdWVyeSggaW5zZXJ0WyBpIF0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHQvLyAuZ2V0KCkgYmVjYXVzZSBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRwdXNoLmFwcGx5KCByZXQsIGVsZW1zLmdldCgpICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCByZXQgKTtcblx0fTtcbn0gKTtcbnZhciBybnVtbm9ucHggPSBuZXcgUmVnRXhwKCBcIl4oXCIgKyBwbnVtICsgXCIpKD8hcHgpW2EteiVdKyRcIiwgXCJpXCIgKTtcblxudmFyIHJjdXN0b21Qcm9wID0gL14tLS87XG5cblxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5LCBGaXJlZm94IDw9MzAgKHRyYWMtMTUwOTgsIHRyYWMtMTQxNTApXG5cdFx0Ly8gSUUgdGhyb3dzIG9uIGVsZW1lbnRzIGNyZWF0ZWQgaW4gcG9wdXBzXG5cdFx0Ly8gRkYgbWVhbndoaWxlIHRocm93cyBvbiBmcmFtZSBlbGVtZW50cyB0aHJvdWdoIFwiZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZVwiXG5cdFx0dmFyIHZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cblx0XHRpZiAoICF2aWV3IHx8ICF2aWV3Lm9wZW5lciApIHtcblx0XHRcdHZpZXcgPSB3aW5kb3c7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSggZWxlbSApO1xuXHR9O1xuXG52YXIgc3dhcCA9IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBjYWxsYmFjayApIHtcblx0dmFyIHJldCwgbmFtZSxcblx0XHRvbGQgPSB7fTtcblxuXHQvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXNcblx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdG9sZFsgbmFtZSBdID0gZWxlbS5zdHlsZVsgbmFtZSBdO1xuXHRcdGVsZW0uc3R5bGVbIG5hbWUgXSA9IG9wdGlvbnNbIG5hbWUgXTtcblx0fVxuXG5cdHJldCA9IGNhbGxiYWNrLmNhbGwoIGVsZW0gKTtcblxuXHQvLyBSZXZlcnQgdGhlIG9sZCB2YWx1ZXNcblx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdGVsZW0uc3R5bGVbIG5hbWUgXSA9IG9sZFsgbmFtZSBdO1xuXHR9XG5cblx0cmV0dXJuIHJldDtcbn07XG5cblxudmFyIHJib3hTdHlsZSA9IG5ldyBSZWdFeHAoIGNzc0V4cGFuZC5qb2luKCBcInxcIiApLCBcImlcIiApO1xuXG5cblxuKCBmdW5jdGlvbigpIHtcblxuXHQvLyBFeGVjdXRpbmcgYm90aCBwaXhlbFBvc2l0aW9uICYgYm94U2l6aW5nUmVsaWFibGUgdGVzdHMgcmVxdWlyZSBvbmx5IG9uZSBsYXlvdXRcblx0Ly8gc28gdGhleSdyZSBleGVjdXRlZCBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgdGhlIHNlY29uZCBjb21wdXRhdGlvbi5cblx0ZnVuY3Rpb24gY29tcHV0ZVN0eWxlVGVzdHMoKSB7XG5cblx0XHQvLyBUaGlzIGlzIGEgc2luZ2xldG9uLCB3ZSBuZWVkIHRvIGV4ZWN1dGUgaXQgb25seSBvbmNlXG5cdFx0aWYgKCAhZGl2ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7XCIgK1xuXHRcdFx0XCJtYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjBcIjtcblx0XHRkaXYuc3R5bGUuY3NzVGV4dCA9XG5cdFx0XHRcInBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDtcIiArXG5cdFx0XHRcIm1hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7XCIgK1xuXHRcdFx0XCJ3aWR0aDo2MCU7dG9wOjElXCI7XG5cdFx0ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKCBjb250YWluZXIgKS5hcHBlbmRDaGlsZCggZGl2ICk7XG5cblx0XHR2YXIgZGl2U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggZGl2ICk7XG5cdFx0cGl4ZWxQb3NpdGlvblZhbCA9IGRpdlN0eWxlLnRvcCAhPT0gXCIxJVwiO1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seSwgRmlyZWZveCA8PTMgLSA0NFxuXHRcdHJlbGlhYmxlTWFyZ2luTGVmdFZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUubWFyZ2luTGVmdCApID09PSAxMjtcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIC0gNC4zIG9ubHksIFNhZmFyaSA8PTkuMSAtIDEwLjEsIGlPUyA8PTcuMCAtIDkuM1xuXHRcdC8vIFNvbWUgc3R5bGVzIGNvbWUgYmFjayB3aXRoIHBlcmNlbnRhZ2UgdmFsdWVzLCBldmVuIHRob3VnaCB0aGV5IHNob3VsZG4ndFxuXHRcdGRpdi5zdHlsZS5yaWdodCA9IFwiNjAlXCI7XG5cdFx0cGl4ZWxCb3hTdHlsZXNWYWwgPSByb3VuZFBpeGVsTWVhc3VyZXMoIGRpdlN0eWxlLnJpZ2h0ICkgPT09IDM2O1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExIG9ubHlcblx0XHQvLyBEZXRlY3QgbWlzcmVwb3J0aW5nIG9mIGNvbnRlbnQgZGltZW5zaW9ucyBmb3IgYm94LXNpemluZzpib3JkZXItYm94IGVsZW1lbnRzXG5cdFx0Ym94U2l6aW5nUmVsaWFibGVWYWwgPSByb3VuZFBpeGVsTWVhc3VyZXMoIGRpdlN0eWxlLndpZHRoICkgPT09IDM2O1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSBvbmx5XG5cdFx0Ly8gRGV0ZWN0IG92ZXJmbG93OnNjcm9sbCBzY3Jld2luZXNzIChnaC0zNjk5KVxuXHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTY0XG5cdFx0Ly8gRG9uJ3QgZ2V0IHRyaWNrZWQgd2hlbiB6b29tIGFmZmVjdHMgb2Zmc2V0V2lkdGggKGdoLTQwMjkpXG5cdFx0ZGl2LnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuXHRcdHNjcm9sbGJveFNpemVWYWwgPSByb3VuZFBpeGVsTWVhc3VyZXMoIGRpdi5vZmZzZXRXaWR0aCAvIDMgKSA9PT0gMTI7XG5cblx0XHRkb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoIGNvbnRhaW5lciApO1xuXG5cdFx0Ly8gTnVsbGlmeSB0aGUgZGl2IHNvIGl0IHdvdWxkbid0IGJlIHN0b3JlZCBpbiB0aGUgbWVtb3J5IGFuZFxuXHRcdC8vIGl0IHdpbGwgYWxzbyBiZSBhIHNpZ24gdGhhdCBjaGVja3MgYWxyZWFkeSBwZXJmb3JtZWRcblx0XHRkaXYgPSBudWxsO1xuXHR9XG5cblx0ZnVuY3Rpb24gcm91bmRQaXhlbE1lYXN1cmVzKCBtZWFzdXJlICkge1xuXHRcdHJldHVybiBNYXRoLnJvdW5kKCBwYXJzZUZsb2F0KCBtZWFzdXJlICkgKTtcblx0fVxuXG5cdHZhciBwaXhlbFBvc2l0aW9uVmFsLCBib3hTaXppbmdSZWxpYWJsZVZhbCwgc2Nyb2xsYm94U2l6ZVZhbCwgcGl4ZWxCb3hTdHlsZXNWYWwsXG5cdFx0cmVsaWFibGVUckRpbWVuc2lvbnNWYWwsIHJlbGlhYmxlTWFyZ2luTGVmdFZhbCxcblx0XHRjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICksXG5cdFx0ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApO1xuXG5cdC8vIEZpbmlzaCBlYXJseSBpbiBsaW1pdGVkIChub24tYnJvd3NlcikgZW52aXJvbm1lbnRzXG5cdGlmICggIWRpdi5zdHlsZSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSBvbmx5XG5cdC8vIFN0eWxlIG9mIGNsb25lZCBlbGVtZW50IGFmZmVjdHMgc291cmNlIGVsZW1lbnQgY2xvbmVkICh0cmFjLTg5MDgpXG5cdGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9IFwiY29udGVudC1ib3hcIjtcblx0ZGl2LmNsb25lTm9kZSggdHJ1ZSApLnN0eWxlLmJhY2tncm91bmRDbGlwID0gXCJcIjtcblx0c3VwcG9ydC5jbGVhckNsb25lU3R5bGUgPSBkaXYuc3R5bGUuYmFja2dyb3VuZENsaXAgPT09IFwiY29udGVudC1ib3hcIjtcblxuXHRqUXVlcnkuZXh0ZW5kKCBzdXBwb3J0LCB7XG5cdFx0Ym94U2l6aW5nUmVsaWFibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBib3hTaXppbmdSZWxpYWJsZVZhbDtcblx0XHR9LFxuXHRcdHBpeGVsQm94U3R5bGVzOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcGl4ZWxCb3hTdHlsZXNWYWw7XG5cdFx0fSxcblx0XHRwaXhlbFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcGl4ZWxQb3NpdGlvblZhbDtcblx0XHR9LFxuXHRcdHJlbGlhYmxlTWFyZ2luTGVmdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHJlbGlhYmxlTWFyZ2luTGVmdFZhbDtcblx0XHR9LFxuXHRcdHNjcm9sbGJveFNpemU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBzY3JvbGxib3hTaXplVmFsO1xuXHRcdH0sXG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTErLCBFZGdlIDE1IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBtaXNyZXBvcnQgYGdldENvbXB1dGVkU3R5bGVgIG9mIHRhYmxlIHJvd3Mgd2l0aCB3aWR0aC9oZWlnaHRcblx0XHQvLyBzZXQgaW4gQ1NTIHdoaWxlIGBvZmZzZXQqYCBwcm9wZXJ0aWVzIHJlcG9ydCBjb3JyZWN0IHZhbHVlcy5cblx0XHQvLyBCZWhhdmlvciBpbiBJRSA5IGlzIG1vcmUgc3VidGxlIHRoYW4gaW4gbmV3ZXIgdmVyc2lvbnMgJiBpdCBwYXNzZXNcblx0XHQvLyBzb21lIHZlcnNpb25zIG9mIHRoaXMgdGVzdDsgbWFrZSBzdXJlIG5vdCB0byBtYWtlIGl0IHBhc3MgdGhlcmUhXG5cdFx0Ly9cblx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDcwK1xuXHRcdC8vIE9ubHkgRmlyZWZveCBpbmNsdWRlcyBib3JkZXIgd2lkdGhzXG5cdFx0Ly8gaW4gY29tcHV0ZWQgZGltZW5zaW9ucy4gKGdoLTQ1MjkpXG5cdFx0cmVsaWFibGVUckRpbWVuc2lvbnM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIHRhYmxlLCB0ciwgdHJDaGlsZCwgdHJTdHlsZTtcblx0XHRcdGlmICggcmVsaWFibGVUckRpbWVuc2lvbnNWYWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcInRhYmxlXCIgKTtcblx0XHRcdFx0dHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcInRyXCIgKTtcblx0XHRcdFx0dHJDaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKTtcblxuXHRcdFx0XHR0YWJsZS5zdHlsZS5jc3NUZXh0ID0gXCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZVwiO1xuXHRcdFx0XHR0ci5zdHlsZS5jc3NUZXh0ID0gXCJib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JvcmRlcjoxcHggc29saWRcIjtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgODYrXG5cdFx0XHRcdC8vIEhlaWdodCBzZXQgdGhyb3VnaCBjc3NUZXh0IGRvZXMgbm90IGdldCBhcHBsaWVkLlxuXHRcdFx0XHQvLyBDb21wdXRlZCBoZWlnaHQgdGhlbiBjb21lcyBiYWNrIGFzIDAuXG5cdFx0XHRcdHRyLnN0eWxlLmhlaWdodCA9IFwiMXB4XCI7XG5cdFx0XHRcdHRyQ2hpbGQuc3R5bGUuaGVpZ2h0ID0gXCI5cHhcIjtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDggQ2hyb21lIDg2K1xuXHRcdFx0XHQvLyBJbiBvdXIgYm9keUJhY2tncm91bmQuaHRtbCBpZnJhbWUsXG5cdFx0XHRcdC8vIGRpc3BsYXkgZm9yIGFsbCBkaXYgZWxlbWVudHMgaXMgc2V0IHRvIFwiaW5saW5lXCIsXG5cdFx0XHRcdC8vIHdoaWNoIGNhdXNlcyBhIHByb2JsZW0gb25seSBpbiBBbmRyb2lkIDggQ2hyb21lIDg2LlxuXHRcdFx0XHQvLyBFbnN1cmluZyB0aGUgZGl2IGlzIGBkaXNwbGF5OiBibG9ja2Bcblx0XHRcdFx0Ly8gZ2V0cyBhcm91bmQgdGhpcyBpc3N1ZS5cblx0XHRcdFx0dHJDaGlsZC5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuXG5cdFx0XHRcdGRvY3VtZW50RWxlbWVudFxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdGFibGUgKVxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdHIgKVxuXHRcdFx0XHRcdC5hcHBlbmRDaGlsZCggdHJDaGlsZCApO1xuXG5cdFx0XHRcdHRyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggdHIgKTtcblx0XHRcdFx0cmVsaWFibGVUckRpbWVuc2lvbnNWYWwgPSAoIHBhcnNlSW50KCB0clN0eWxlLmhlaWdodCwgMTAgKSArXG5cdFx0XHRcdFx0cGFyc2VJbnQoIHRyU3R5bGUuYm9yZGVyVG9wV2lkdGgsIDEwICkgK1xuXHRcdFx0XHRcdHBhcnNlSW50KCB0clN0eWxlLmJvcmRlckJvdHRvbVdpZHRoLCAxMCApICkgPT09IHRyLm9mZnNldEhlaWdodDtcblxuXHRcdFx0XHRkb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoIHRhYmxlICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVsaWFibGVUckRpbWVuc2lvbnNWYWw7XG5cdFx0fVxuXHR9ICk7XG59ICkoKTtcblxuXG5mdW5jdGlvbiBjdXJDU1MoIGVsZW0sIG5hbWUsIGNvbXB1dGVkICkge1xuXHR2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwgcmV0LFxuXHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKSxcblxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNTErXG5cdFx0Ly8gUmV0cmlldmluZyBzdHlsZSBiZWZvcmUgY29tcHV0ZWQgc29tZWhvd1xuXHRcdC8vIGZpeGVzIGFuIGlzc3VlIHdpdGggZ2V0dGluZyB3cm9uZyB2YWx1ZXNcblx0XHQvLyBvbiBkZXRhY2hlZCBlbGVtZW50c1xuXHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRjb21wdXRlZCA9IGNvbXB1dGVkIHx8IGdldFN0eWxlcyggZWxlbSApO1xuXG5cdC8vIGdldFByb3BlcnR5VmFsdWUgaXMgbmVlZGVkIGZvcjpcblx0Ly8gICAuY3NzKCdmaWx0ZXInKSAoSUUgOSBvbmx5LCB0cmFjLTEyNTM3KVxuXHQvLyAgIC5jc3MoJy0tY3VzdG9tUHJvcGVydHkpIChnaC0zMTQ0KVxuXHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTErXG5cdFx0Ly8gSUUgb25seSBzdXBwb3J0cyBgXCJmbG9hdFwiYCBpbiBgZ2V0UHJvcGVydHlWYWx1ZWA7IGluIGNvbXB1dGVkIHN0eWxlc1xuXHRcdC8vIGl0J3Mgb25seSBhdmFpbGFibGUgYXMgYFwiY3NzRmxvYXRcImAuIFdlIG5vIGxvbmdlciBtb2RpZnkgcHJvcGVydGllc1xuXHRcdC8vIHNlbnQgdG8gYC5jc3MoKWAgYXBhcnQgZnJvbSBjYW1lbENhc2luZywgc28gd2UgbmVlZCB0byBjaGVjayBib3RoLlxuXHRcdC8vIE5vcm1hbGx5LCB0aGlzIHdvdWxkIGNyZWF0ZSBkaWZmZXJlbmNlIGluIGJlaGF2aW9yOiBpZlxuXHRcdC8vIGBnZXRQcm9wZXJ0eVZhbHVlYCByZXR1cm5zIGFuIGVtcHR5IHN0cmluZywgdGhlIHZhbHVlIHJldHVybmVkXG5cdFx0Ly8gYnkgYC5jc3MoKWAgd291bGQgYmUgYHVuZGVmaW5lZGAuIFRoaXMgaXMgdXN1YWxseSB0aGUgY2FzZSBmb3Jcblx0XHQvLyBkaXNjb25uZWN0ZWQgZWxlbWVudHMuIEhvd2V2ZXIsIGluIElFIGV2ZW4gZGlzY29ubmVjdGVkIGVsZW1lbnRzXG5cdFx0Ly8gd2l0aCBubyBzdHlsZXMgcmV0dXJuIGBcIm5vbmVcImAgZm9yIGBnZXRQcm9wZXJ0eVZhbHVlKCBcImZsb2F0XCIgKWBcblx0XHRyZXQgPSBjb21wdXRlZC5nZXRQcm9wZXJ0eVZhbHVlKCBuYW1lICkgfHwgY29tcHV0ZWRbIG5hbWUgXTtcblxuXHRcdGlmICggaXNDdXN0b21Qcm9wICYmIHJldCApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCAxMDUrLCBDaHJvbWUgPD0xMDUrXG5cdFx0XHQvLyBTcGVjIHJlcXVpcmVzIHRyaW1taW5nIHdoaXRlc3BhY2UgZm9yIGN1c3RvbSBwcm9wZXJ0aWVzIChnaC00OTI2KS5cblx0XHRcdC8vIEZpcmVmb3ggb25seSB0cmltcyBsZWFkaW5nIHdoaXRlc3BhY2UuIENocm9tZSBqdXN0IGNvbGxhcHNlc1xuXHRcdFx0Ly8gYm90aCBsZWFkaW5nICYgdHJhaWxpbmcgd2hpdGVzcGFjZSB0byBhIHNpbmdsZSBzcGFjZS5cblx0XHRcdC8vXG5cdFx0XHQvLyBGYWxsIGJhY2sgdG8gYHVuZGVmaW5lZGAgaWYgZW1wdHkgc3RyaW5nIHJldHVybmVkLlxuXHRcdFx0Ly8gVGhpcyBjb2xsYXBzZXMgYSBtaXNzaW5nIGRlZmluaXRpb24gd2l0aCBwcm9wZXJ0eSBkZWZpbmVkXG5cdFx0XHQvLyBhbmQgc2V0IHRvIGFuIGVtcHR5IHN0cmluZyBidXQgdGhlcmUncyBubyBzdGFuZGFyZCBBUElcblx0XHRcdC8vIGFsbG93aW5nIHVzIHRvIGRpZmZlcmVudGlhdGUgdGhlbSB3aXRob3V0IGEgcGVyZm9ybWFuY2UgcGVuYWx0eVxuXHRcdFx0Ly8gYW5kIHJldHVybmluZyBgdW5kZWZpbmVkYCBhbGlnbnMgd2l0aCBvbGRlciBqUXVlcnkuXG5cdFx0XHQvL1xuXHRcdFx0Ly8gcnRyaW1DU1MgdHJlYXRzIFUrMDAwRCBDQVJSSUFHRSBSRVRVUk4gYW5kIFUrMDAwQyBGT1JNIEZFRURcblx0XHRcdC8vIGFzIHdoaXRlc3BhY2Ugd2hpbGUgQ1NTIGRvZXMgbm90LCBidXQgdGhpcyBpcyBub3QgYSBwcm9ibGVtXG5cdFx0XHQvLyBiZWNhdXNlIENTUyBwcmVwcm9jZXNzaW5nIHJlcGxhY2VzIHRoZW0gd2l0aCBVKzAwMEEgTElORSBGRUVEXG5cdFx0XHQvLyAod2hpY2ggKmlzKiBDU1Mgd2hpdGVzcGFjZSlcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTMvI2lucHV0LXByZXByb2Nlc3Npbmdcblx0XHRcdHJldCA9IHJldC5yZXBsYWNlKCBydHJpbUNTUywgXCIkMVwiICkgfHwgdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdGlmICggcmV0ID09PSBcIlwiICYmICFpc0F0dGFjaGVkKCBlbGVtICkgKSB7XG5cdFx0XHRyZXQgPSBqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUgKTtcblx0XHR9XG5cblx0XHQvLyBBIHRyaWJ1dGUgdG8gdGhlIFwiYXdlc29tZSBoYWNrIGJ5IERlYW4gRWR3YXJkc1wiXG5cdFx0Ly8gQW5kcm9pZCBCcm93c2VyIHJldHVybnMgcGVyY2VudGFnZSBmb3Igc29tZSB2YWx1ZXMsXG5cdFx0Ly8gYnV0IHdpZHRoIHNlZW1zIHRvIGJlIHJlbGlhYmx5IHBpeGVscy5cblx0XHQvLyBUaGlzIGlzIGFnYWluc3QgdGhlIENTU09NIGRyYWZ0IHNwZWM6XG5cdFx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNyZXNvbHZlZC12YWx1ZXNcblx0XHRpZiAoICFzdXBwb3J0LnBpeGVsQm94U3R5bGVzKCkgJiYgcm51bW5vbnB4LnRlc3QoIHJldCApICYmIHJib3hTdHlsZS50ZXN0KCBuYW1lICkgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcblx0XHRcdHdpZHRoID0gc3R5bGUud2lkdGg7XG5cdFx0XHRtaW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoO1xuXHRcdFx0bWF4V2lkdGggPSBzdHlsZS5tYXhXaWR0aDtcblxuXHRcdFx0Ly8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dFxuXHRcdFx0c3R5bGUubWluV2lkdGggPSBzdHlsZS5tYXhXaWR0aCA9IHN0eWxlLndpZHRoID0gcmV0O1xuXHRcdFx0cmV0ID0gY29tcHV0ZWQud2lkdGg7XG5cblx0XHRcdC8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXNcblx0XHRcdHN0eWxlLndpZHRoID0gd2lkdGg7XG5cdFx0XHRzdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoO1xuXHRcdFx0c3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0ICE9PSB1bmRlZmluZWQgP1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHRcdC8vIElFIHJldHVybnMgekluZGV4IHZhbHVlIGFzIGFuIGludGVnZXIuXG5cdFx0cmV0ICsgXCJcIiA6XG5cdFx0cmV0O1xufVxuXG5cbmZ1bmN0aW9uIGFkZEdldEhvb2tJZiggY29uZGl0aW9uRm4sIGhvb2tGbiApIHtcblxuXHQvLyBEZWZpbmUgdGhlIGhvb2ssIHdlJ2xsIGNoZWNrIG9uIHRoZSBmaXJzdCBydW4gaWYgaXQncyByZWFsbHkgbmVlZGVkLlxuXHRyZXR1cm4ge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGNvbmRpdGlvbkZuKCkgKSB7XG5cblx0XHRcdFx0Ly8gSG9vayBub3QgbmVlZGVkIChvciBpdCdzIG5vdCBwb3NzaWJsZSB0byB1c2UgaXQgZHVlXG5cdFx0XHRcdC8vIHRvIG1pc3NpbmcgZGVwZW5kZW5jeSksIHJlbW92ZSBpdC5cblx0XHRcdFx0ZGVsZXRlIHRoaXMuZ2V0O1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIEhvb2sgbmVlZGVkOyByZWRlZmluZSBpdCBzbyB0aGF0IHRoZSBzdXBwb3J0IHRlc3QgaXMgbm90IGV4ZWN1dGVkIGFnYWluLlxuXHRcdFx0cmV0dXJuICggdGhpcy5nZXQgPSBob29rRm4gKS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fVxuXHR9O1xufVxuXG5cbnZhciBjc3NQcmVmaXhlcyA9IFsgXCJXZWJraXRcIiwgXCJNb3pcIiwgXCJtc1wiIF0sXG5cdGVtcHR5U3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkuc3R5bGUsXG5cdHZlbmRvclByb3BzID0ge307XG5cbi8vIFJldHVybiBhIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBvciB1bmRlZmluZWRcbmZ1bmN0aW9uIHZlbmRvclByb3BOYW1lKCBuYW1lICkge1xuXG5cdC8vIENoZWNrIGZvciB2ZW5kb3IgcHJlZml4ZWQgbmFtZXNcblx0dmFyIGNhcE5hbWUgPSBuYW1lWyAwIF0udG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoIDEgKSxcblx0XHRpID0gY3NzUHJlZml4ZXMubGVuZ3RoO1xuXG5cdHdoaWxlICggaS0tICkge1xuXHRcdG5hbWUgPSBjc3NQcmVmaXhlc1sgaSBdICsgY2FwTmFtZTtcblx0XHRpZiAoIG5hbWUgaW4gZW1wdHlTdHlsZSApIHtcblx0XHRcdHJldHVybiBuYW1lO1xuXHRcdH1cblx0fVxufVxuXG4vLyBSZXR1cm4gYSBwb3RlbnRpYWxseS1tYXBwZWQgalF1ZXJ5LmNzc1Byb3BzIG9yIHZlbmRvciBwcmVmaXhlZCBwcm9wZXJ0eVxuZnVuY3Rpb24gZmluYWxQcm9wTmFtZSggbmFtZSApIHtcblx0dmFyIGZpbmFsID0galF1ZXJ5LmNzc1Byb3BzWyBuYW1lIF0gfHwgdmVuZG9yUHJvcHNbIG5hbWUgXTtcblxuXHRpZiAoIGZpbmFsICkge1xuXHRcdHJldHVybiBmaW5hbDtcblx0fVxuXHRpZiAoIG5hbWUgaW4gZW1wdHlTdHlsZSApIHtcblx0XHRyZXR1cm4gbmFtZTtcblx0fVxuXHRyZXR1cm4gdmVuZG9yUHJvcHNbIG5hbWUgXSA9IHZlbmRvclByb3BOYW1lKCBuYW1lICkgfHwgbmFtZTtcbn1cblxuXG52YXJcblxuXHQvLyBTd2FwcGFibGUgaWYgZGlzcGxheSBpcyBub25lIG9yIHN0YXJ0cyB3aXRoIHRhYmxlXG5cdC8vIGV4Y2VwdCBcInRhYmxlXCIsIFwidGFibGUtY2VsbFwiLCBvciBcInRhYmxlLWNhcHRpb25cIlxuXHQvLyBTZWUgaGVyZSBmb3IgZGlzcGxheSB2YWx1ZXM6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvQ1NTL2Rpc3BsYXlcblx0cmRpc3BsYXlzd2FwID0gL14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFxuXHRjc3NTaG93ID0geyBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLCB2aXNpYmlsaXR5OiBcImhpZGRlblwiLCBkaXNwbGF5OiBcImJsb2NrXCIgfSxcblx0Y3NzTm9ybWFsVHJhbnNmb3JtID0ge1xuXHRcdGxldHRlclNwYWNpbmc6IFwiMFwiLFxuXHRcdGZvbnRXZWlnaHQ6IFwiNDAwXCJcblx0fTtcblxuZnVuY3Rpb24gc2V0UG9zaXRpdmVOdW1iZXIoIF9lbGVtLCB2YWx1ZSwgc3VidHJhY3QgKSB7XG5cblx0Ly8gQW55IHJlbGF0aXZlICgrLy0pIHZhbHVlcyBoYXZlIGFscmVhZHkgYmVlblxuXHQvLyBub3JtYWxpemVkIGF0IHRoaXMgcG9pbnRcblx0dmFyIG1hdGNoZXMgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICk7XG5cdHJldHVybiBtYXRjaGVzID9cblxuXHRcdC8vIEd1YXJkIGFnYWluc3QgdW5kZWZpbmVkIFwic3VidHJhY3RcIiwgZS5nLiwgd2hlbiB1c2VkIGFzIGluIGNzc0hvb2tzXG5cdFx0TWF0aC5tYXgoIDAsIG1hdGNoZXNbIDIgXSAtICggc3VidHJhY3QgfHwgMCApICkgKyAoIG1hdGNoZXNbIDMgXSB8fCBcInB4XCIgKSA6XG5cdFx0dmFsdWU7XG59XG5cbmZ1bmN0aW9uIGJveE1vZGVsQWRqdXN0bWVudCggZWxlbSwgZGltZW5zaW9uLCBib3gsIGlzQm9yZGVyQm94LCBzdHlsZXMsIGNvbXB1dGVkVmFsICkge1xuXHR2YXIgaSA9IGRpbWVuc2lvbiA9PT0gXCJ3aWR0aFwiID8gMSA6IDAsXG5cdFx0ZXh0cmEgPSAwLFxuXHRcdGRlbHRhID0gMCxcblx0XHRtYXJnaW5EZWx0YSA9IDA7XG5cblx0Ly8gQWRqdXN0bWVudCBtYXkgbm90IGJlIG5lY2Vzc2FyeVxuXHRpZiAoIGJveCA9PT0gKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApICkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXG5cdFx0Ly8gQm90aCBib3ggbW9kZWxzIGV4Y2x1ZGUgbWFyZ2luXG5cdFx0Ly8gQ291bnQgbWFyZ2luIGRlbHRhIHNlcGFyYXRlbHkgdG8gb25seSBhZGQgaXQgYWZ0ZXIgc2Nyb2xsIGd1dHRlciBhZGp1c3RtZW50LlxuXHRcdC8vIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgbmVnYXRpdmUgbWFyZ2lucyB3b3JrIHdpdGggYG91dGVySGVpZ2h0KCB0cnVlIClgIChnaC0zOTgyKS5cblx0XHRpZiAoIGJveCA9PT0gXCJtYXJnaW5cIiApIHtcblx0XHRcdG1hcmdpbkRlbHRhICs9IGpRdWVyeS5jc3MoIGVsZW0sIGJveCArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblx0XHR9XG5cblx0XHQvLyBJZiB3ZSBnZXQgaGVyZSB3aXRoIGEgY29udGVudC1ib3gsIHdlJ3JlIHNlZWtpbmcgXCJwYWRkaW5nXCIgb3IgXCJib3JkZXJcIiBvciBcIm1hcmdpblwiXG5cdFx0aWYgKCAhaXNCb3JkZXJCb3ggKSB7XG5cblx0XHRcdC8vIEFkZCBwYWRkaW5nXG5cdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gRm9yIFwiYm9yZGVyXCIgb3IgXCJtYXJnaW5cIiwgYWRkIGJvcmRlclxuXHRcdFx0aWYgKCBib3ggIT09IFwicGFkZGluZ1wiICkge1xuXHRcdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXG5cdFx0XHQvLyBCdXQgc3RpbGwga2VlcCB0cmFjayBvZiBpdCBvdGhlcndpc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGV4dHJhICs9IGpRdWVyeS5jc3MoIGVsZW0sIFwiYm9yZGVyXCIgKyBjc3NFeHBhbmRbIGkgXSArIFwiV2lkdGhcIiwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHQvLyBJZiB3ZSBnZXQgaGVyZSB3aXRoIGEgYm9yZGVyLWJveCAoY29udGVudCArIHBhZGRpbmcgKyBib3JkZXIpLCB3ZSdyZSBzZWVraW5nIFwiY29udGVudFwiIG9yXG5cdFx0Ly8gXCJwYWRkaW5nXCIgb3IgXCJtYXJnaW5cIlxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIEZvciBcImNvbnRlbnRcIiwgc3VidHJhY3QgcGFkZGluZ1xuXHRcdFx0aWYgKCBib3ggPT09IFwiY29udGVudFwiICkge1xuXHRcdFx0XHRkZWx0YSAtPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRm9yIFwiY29udGVudFwiIG9yIFwicGFkZGluZ1wiLCBzdWJ0cmFjdCBib3JkZXJcblx0XHRcdGlmICggYm94ICE9PSBcIm1hcmdpblwiICkge1xuXHRcdFx0XHRkZWx0YSAtPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEFjY291bnQgZm9yIHBvc2l0aXZlIGNvbnRlbnQtYm94IHNjcm9sbCBndXR0ZXIgd2hlbiByZXF1ZXN0ZWQgYnkgcHJvdmlkaW5nIGNvbXB1dGVkVmFsXG5cdGlmICggIWlzQm9yZGVyQm94ICYmIGNvbXB1dGVkVmFsID49IDAgKSB7XG5cblx0XHQvLyBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgaXMgYSByb3VuZGVkIHN1bSBvZiBjb250ZW50LCBwYWRkaW5nLCBzY3JvbGwgZ3V0dGVyLCBhbmQgYm9yZGVyXG5cdFx0Ly8gQXNzdW1pbmcgaW50ZWdlciBzY3JvbGwgZ3V0dGVyLCBzdWJ0cmFjdCB0aGUgcmVzdCBhbmQgcm91bmQgZG93blxuXHRcdGRlbHRhICs9IE1hdGgubWF4KCAwLCBNYXRoLmNlaWwoXG5cdFx0XHRlbGVtWyBcIm9mZnNldFwiICsgZGltZW5zaW9uWyAwIF0udG9VcHBlckNhc2UoKSArIGRpbWVuc2lvbi5zbGljZSggMSApIF0gLVxuXHRcdFx0Y29tcHV0ZWRWYWwgLVxuXHRcdFx0ZGVsdGEgLVxuXHRcdFx0ZXh0cmEgLVxuXHRcdFx0MC41XG5cblx0XHQvLyBJZiBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgaXMgdW5rbm93biwgdGhlbiB3ZSBjYW4ndCBkZXRlcm1pbmUgY29udGVudC1ib3ggc2Nyb2xsIGd1dHRlclxuXHRcdC8vIFVzZSBhbiBleHBsaWNpdCB6ZXJvIHRvIGF2b2lkIE5hTiAoZ2gtMzk2NClcblx0XHQpICkgfHwgMDtcblx0fVxuXG5cdHJldHVybiBkZWx0YSArIG1hcmdpbkRlbHRhO1xufVxuXG5mdW5jdGlvbiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICkge1xuXG5cdC8vIFN0YXJ0IHdpdGggY29tcHV0ZWQgc3R5bGVcblx0dmFyIHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApLFxuXG5cdFx0Ly8gVG8gYXZvaWQgZm9yY2luZyBhIHJlZmxvdywgb25seSBmZXRjaCBib3hTaXppbmcgaWYgd2UgbmVlZCBpdCAoZ2gtNDMyMikuXG5cdFx0Ly8gRmFrZSBjb250ZW50LWJveCB1bnRpbCB3ZSBrbm93IGl0J3MgbmVlZGVkIHRvIGtub3cgdGhlIHRydWUgdmFsdWUuXG5cdFx0Ym94U2l6aW5nTmVlZGVkID0gIXN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGUoKSB8fCBleHRyYSxcblx0XHRpc0JvcmRlckJveCA9IGJveFNpemluZ05lZWRlZCAmJlxuXHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJib3hTaXppbmdcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImJvcmRlci1ib3hcIixcblx0XHR2YWx1ZUlzQm9yZGVyQm94ID0gaXNCb3JkZXJCb3gsXG5cblx0XHR2YWwgPSBjdXJDU1MoIGVsZW0sIGRpbWVuc2lvbiwgc3R5bGVzICksXG5cdFx0b2Zmc2V0UHJvcCA9IFwib2Zmc2V0XCIgKyBkaW1lbnNpb25bIDAgXS50b1VwcGVyQ2FzZSgpICsgZGltZW5zaW9uLnNsaWNlKCAxICk7XG5cblx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTU0XG5cdC8vIFJldHVybiBhIGNvbmZvdW5kaW5nIG5vbi1waXhlbCB2YWx1ZSBvciBmZWlnbiBpZ25vcmFuY2UsIGFzIGFwcHJvcHJpYXRlLlxuXHRpZiAoIHJudW1ub25weC50ZXN0KCB2YWwgKSApIHtcblx0XHRpZiAoICFleHRyYSApIHtcblx0XHRcdHJldHVybiB2YWw7XG5cdFx0fVxuXHRcdHZhbCA9IFwiYXV0b1wiO1xuXHR9XG5cblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHQvLyBVc2Ugb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGZvciB3aGVuIGJveCBzaXppbmcgaXMgdW5yZWxpYWJsZS5cblx0Ly8gSW4gdGhvc2UgY2FzZXMsIHRoZSBjb21wdXRlZCB2YWx1ZSBjYW4gYmUgdHJ1c3RlZCB0byBiZSBib3JkZXItYm94LlxuXHRpZiAoICggIXN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGUoKSAmJiBpc0JvcmRlckJveCB8fFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgMTAgLSAxMSssIEVkZ2UgMTUgLSAxOCtcblx0XHQvLyBJRS9FZGdlIG1pc3JlcG9ydCBgZ2V0Q29tcHV0ZWRTdHlsZWAgb2YgdGFibGUgcm93cyB3aXRoIHdpZHRoL2hlaWdodFxuXHRcdC8vIHNldCBpbiBDU1Mgd2hpbGUgYG9mZnNldCpgIHByb3BlcnRpZXMgcmVwb3J0IGNvcnJlY3QgdmFsdWVzLlxuXHRcdC8vIEludGVyZXN0aW5nbHksIGluIHNvbWUgY2FzZXMgSUUgOSBkb2Vzbid0IHN1ZmZlciBmcm9tIHRoaXMgaXNzdWUuXG5cdFx0IXN1cHBvcnQucmVsaWFibGVUckRpbWVuc2lvbnMoKSAmJiBub2RlTmFtZSggZWxlbSwgXCJ0clwiICkgfHxcblxuXHRcdC8vIEZhbGwgYmFjayB0byBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgd2hlbiB2YWx1ZSBpcyBcImF1dG9cIlxuXHRcdC8vIFRoaXMgaGFwcGVucyBmb3IgaW5saW5lIGVsZW1lbnRzIHdpdGggbm8gZXhwbGljaXQgc2V0dGluZyAoZ2gtMzU3MSlcblx0XHR2YWwgPT09IFwiYXV0b1wiIHx8XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4xIC0gNC4zIG9ubHlcblx0XHQvLyBBbHNvIHVzZSBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgZm9yIG1pc3JlcG9ydGVkIGlubGluZSBkaW1lbnNpb25zIChnaC0zNjAyKVxuXHRcdCFwYXJzZUZsb2F0KCB2YWwgKSAmJiBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImlubGluZVwiICkgJiZcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyB2aXNpYmxlICYgY29ubmVjdGVkXG5cdFx0ZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCApIHtcblxuXHRcdGlzQm9yZGVyQm94ID0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3hTaXppbmdcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImJvcmRlci1ib3hcIjtcblxuXHRcdC8vIFdoZXJlIGF2YWlsYWJsZSwgb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGFwcHJveGltYXRlIGJvcmRlciBib3ggZGltZW5zaW9ucy5cblx0XHQvLyBXaGVyZSBub3QgYXZhaWxhYmxlIChlLmcuLCBTVkcpLCBhc3N1bWUgdW5yZWxpYWJsZSBib3gtc2l6aW5nIGFuZCBpbnRlcnByZXQgdGhlXG5cdFx0Ly8gcmV0cmlldmVkIHZhbHVlIGFzIGEgY29udGVudCBib3ggZGltZW5zaW9uLlxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBvZmZzZXRQcm9wIGluIGVsZW07XG5cdFx0aWYgKCB2YWx1ZUlzQm9yZGVyQm94ICkge1xuXHRcdFx0dmFsID0gZWxlbVsgb2Zmc2V0UHJvcCBdO1xuXHRcdH1cblx0fVxuXG5cdC8vIE5vcm1hbGl6ZSBcIlwiIGFuZCBhdXRvXG5cdHZhbCA9IHBhcnNlRmxvYXQoIHZhbCApIHx8IDA7XG5cblx0Ly8gQWRqdXN0IGZvciB0aGUgZWxlbWVudCdzIGJveCBtb2RlbFxuXHRyZXR1cm4gKCB2YWwgK1xuXHRcdGJveE1vZGVsQWRqdXN0bWVudChcblx0XHRcdGVsZW0sXG5cdFx0XHRkaW1lbnNpb24sXG5cdFx0XHRleHRyYSB8fCAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICksXG5cdFx0XHR2YWx1ZUlzQm9yZGVyQm94LFxuXHRcdFx0c3R5bGVzLFxuXG5cdFx0XHQvLyBQcm92aWRlIHRoZSBjdXJyZW50IGNvbXB1dGVkIHNpemUgdG8gcmVxdWVzdCBzY3JvbGwgZ3V0dGVyIGNhbGN1bGF0aW9uIChnaC0zNTg5KVxuXHRcdFx0dmFsXG5cdFx0KVxuXHQpICsgXCJweFwiO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG5cdC8vIGJlaGF2aW9yIG9mIGdldHRpbmcgYW5kIHNldHRpbmcgYSBzdHlsZSBwcm9wZXJ0eVxuXHRjc3NIb29rczoge1xuXHRcdG9wYWNpdHk6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdFx0Ly8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHlcblx0XHRcdFx0XHR2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCBcIm9wYWNpdHlcIiApO1xuXHRcdFx0XHRcdHJldHVybiByZXQgPT09IFwiXCIgPyBcIjFcIiA6IHJldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvLyBEb24ndCBhdXRvbWF0aWNhbGx5IGFkZCBcInB4XCIgdG8gdGhlc2UgcG9zc2libHktdW5pdGxlc3MgcHJvcGVydGllc1xuXHRjc3NOdW1iZXI6IHtcblx0XHRhbmltYXRpb25JdGVyYXRpb25Db3VudDogdHJ1ZSxcblx0XHRhc3BlY3RSYXRpbzogdHJ1ZSxcblx0XHRib3JkZXJJbWFnZVNsaWNlOiB0cnVlLFxuXHRcdGNvbHVtbkNvdW50OiB0cnVlLFxuXHRcdGZsZXhHcm93OiB0cnVlLFxuXHRcdGZsZXhTaHJpbms6IHRydWUsXG5cdFx0Zm9udFdlaWdodDogdHJ1ZSxcblx0XHRncmlkQXJlYTogdHJ1ZSxcblx0XHRncmlkQ29sdW1uOiB0cnVlLFxuXHRcdGdyaWRDb2x1bW5FbmQ6IHRydWUsXG5cdFx0Z3JpZENvbHVtblN0YXJ0OiB0cnVlLFxuXHRcdGdyaWRSb3c6IHRydWUsXG5cdFx0Z3JpZFJvd0VuZDogdHJ1ZSxcblx0XHRncmlkUm93U3RhcnQ6IHRydWUsXG5cdFx0bGluZUhlaWdodDogdHJ1ZSxcblx0XHRvcGFjaXR5OiB0cnVlLFxuXHRcdG9yZGVyOiB0cnVlLFxuXHRcdG9ycGhhbnM6IHRydWUsXG5cdFx0c2NhbGU6IHRydWUsXG5cdFx0d2lkb3dzOiB0cnVlLFxuXHRcdHpJbmRleDogdHJ1ZSxcblx0XHR6b29tOiB0cnVlLFxuXG5cdFx0Ly8gU1ZHLXJlbGF0ZWRcblx0XHRmaWxsT3BhY2l0eTogdHJ1ZSxcblx0XHRmbG9vZE9wYWNpdHk6IHRydWUsXG5cdFx0c3RvcE9wYWNpdHk6IHRydWUsXG5cdFx0c3Ryb2tlTWl0ZXJsaW1pdDogdHJ1ZSxcblx0XHRzdHJva2VPcGFjaXR5OiB0cnVlXG5cdH0sXG5cblx0Ly8gQWRkIGluIHByb3BlcnRpZXMgd2hvc2UgbmFtZXMgeW91IHdpc2ggdG8gZml4IGJlZm9yZVxuXHQvLyBzZXR0aW5nIG9yIGdldHRpbmcgdGhlIHZhbHVlXG5cdGNzc1Byb3BzOiB7fSxcblxuXHQvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZVxuXHRzdHlsZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBleHRyYSApIHtcblxuXHRcdC8vIERvbid0IHNldCBzdHlsZXMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggIWVsZW0gfHwgZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4IHx8ICFlbGVtLnN0eWxlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZVxuXHRcdHZhciByZXQsIHR5cGUsIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBjYW1lbENhc2UoIG5hbWUgKSxcblx0XHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKSxcblx0XHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZS4gV2UgZG9uJ3Rcblx0XHQvLyB3YW50IHRvIHF1ZXJ5IHRoZSB2YWx1ZSBpZiBpdCBpcyBhIENTUyBjdXN0b20gcHJvcGVydHlcblx0XHQvLyBzaW5jZSB0aGV5IGFyZSB1c2VyLWRlZmluZWQuXG5cdFx0aWYgKCAhaXNDdXN0b21Qcm9wICkge1xuXHRcdFx0bmFtZSA9IGZpbmFsUHJvcE5hbWUoIG9yaWdOYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gR2V0cyBob29rIGZvciB0aGUgcHJlZml4ZWQgdmVyc2lvbiwgdGhlbiB1bnByZWZpeGVkIHZlcnNpb25cblx0XHRob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05hbWUgXTtcblxuXHRcdC8vIENoZWNrIGlmIHdlJ3JlIHNldHRpbmcgYSB2YWx1ZVxuXHRcdGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cblx0XHRcdC8vIENvbnZlcnQgXCIrPVwiIG9yIFwiLT1cIiB0byByZWxhdGl2ZSBudW1iZXJzICh0cmFjLTczNDUpXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwic3RyaW5nXCIgJiYgKCByZXQgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICkgKSAmJiByZXRbIDEgXSApIHtcblx0XHRcdFx0dmFsdWUgPSBhZGp1c3RDU1MoIGVsZW0sIG5hbWUsIHJldCApO1xuXG5cdFx0XHRcdC8vIEZpeGVzIGJ1ZyB0cmFjLTkyMzdcblx0XHRcdFx0dHlwZSA9IFwibnVtYmVyXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IG51bGwgYW5kIE5hTiB2YWx1ZXMgYXJlbid0IHNldCAodHJhYy03MTE2KVxuXHRcdFx0aWYgKCB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlICE9PSB2YWx1ZSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIG51bWJlciB3YXMgcGFzc2VkIGluLCBhZGQgdGhlIHVuaXQgKGV4Y2VwdCBmb3IgY2VydGFpbiBDU1MgcHJvcGVydGllcylcblx0XHRcdC8vIFRoZSBpc0N1c3RvbVByb3AgY2hlY2sgY2FuIGJlIHJlbW92ZWQgaW4galF1ZXJ5IDQuMCB3aGVuIHdlIG9ubHkgYXV0by1hcHBlbmRcblx0XHRcdC8vIFwicHhcIiB0byBhIGZldyBoYXJkY29kZWQgdmFsdWVzLlxuXHRcdFx0aWYgKCB0eXBlID09PSBcIm51bWJlclwiICYmICFpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRcdHZhbHVlICs9IHJldCAmJiByZXRbIDMgXSB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIG9yaWdOYW1lIF0gPyBcIlwiIDogXCJweFwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGJhY2tncm91bmQtKiBwcm9wcyBhZmZlY3Qgb3JpZ2luYWwgY2xvbmUncyB2YWx1ZXNcblx0XHRcdGlmICggIXN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlICYmIHZhbHVlID09PSBcIlwiICYmIG5hbWUuaW5kZXhPZiggXCJiYWNrZ3JvdW5kXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IFwiaW5oZXJpdFwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWVcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoIFwic2V0XCIgaW4gaG9va3MgKSB8fFxuXHRcdFx0XHQoIHZhbHVlID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0aWYgKCBpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRcdFx0c3R5bGUuc2V0UHJvcGVydHkoIG5hbWUsIHZhbHVlICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcblx0XHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJlxuXHRcdFx0XHQoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgZmFsc2UsIGV4dHJhICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0XG5cdFx0XHRyZXR1cm4gc3R5bGVbIG5hbWUgXTtcblx0XHR9XG5cdH0sXG5cblx0Y3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEsIHN0eWxlcyApIHtcblx0XHR2YXIgdmFsLCBudW0sIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBjYW1lbENhc2UoIG5hbWUgKSxcblx0XHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKTtcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZS4gV2UgZG9uJ3Rcblx0XHQvLyB3YW50IHRvIG1vZGlmeSB0aGUgdmFsdWUgaWYgaXQgaXMgYSBDU1MgY3VzdG9tIHByb3BlcnR5XG5cdFx0Ly8gc2luY2UgdGhleSBhcmUgdXNlci1kZWZpbmVkLlxuXHRcdGlmICggIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdG5hbWUgPSBmaW5hbFByb3BOYW1lKCBvcmlnTmFtZSApO1xuXHRcdH1cblxuXHRcdC8vIFRyeSBwcmVmaXhlZCBuYW1lIGZvbGxvd2VkIGJ5IHRoZSB1bnByZWZpeGVkIG5hbWVcblx0XHRob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05hbWUgXTtcblxuXHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBmcm9tIHRoZXJlXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsID0gaG9va3MuZ2V0KCBlbGVtLCB0cnVlLCBleHRyYSApO1xuXHRcdH1cblxuXHRcdC8vIE90aGVyd2lzZSwgaWYgYSB3YXkgdG8gZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBleGlzdHMsIHVzZSB0aGF0XG5cdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgbmFtZSwgc3R5bGVzICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBcIm5vcm1hbFwiIHRvIGNvbXB1dGVkIHZhbHVlXG5cdFx0aWYgKCB2YWwgPT09IFwibm9ybWFsXCIgJiYgbmFtZSBpbiBjc3NOb3JtYWxUcmFuc2Zvcm0gKSB7XG5cdFx0XHR2YWwgPSBjc3NOb3JtYWxUcmFuc2Zvcm1bIG5hbWUgXTtcblx0XHR9XG5cblx0XHQvLyBNYWtlIG51bWVyaWMgaWYgZm9yY2VkIG9yIGEgcXVhbGlmaWVyIHdhcyBwcm92aWRlZCBhbmQgdmFsIGxvb2tzIG51bWVyaWNcblx0XHRpZiAoIGV4dHJhID09PSBcIlwiIHx8IGV4dHJhICkge1xuXHRcdFx0bnVtID0gcGFyc2VGbG9hdCggdmFsICk7XG5cdFx0XHRyZXR1cm4gZXh0cmEgPT09IHRydWUgfHwgaXNGaW5pdGUoIG51bSApID8gbnVtIHx8IDAgOiB2YWw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbDtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcImhlaWdodFwiLCBcIndpZHRoXCIgXSwgZnVuY3Rpb24oIF9pLCBkaW1lbnNpb24gKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgZGltZW5zaW9uIF0gPSB7XG5cdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkge1xuXHRcdFx0aWYgKCBjb21wdXRlZCApIHtcblxuXHRcdFx0XHQvLyBDZXJ0YWluIGVsZW1lbnRzIGNhbiBoYXZlIGRpbWVuc2lvbiBpbmZvIGlmIHdlIGludmlzaWJseSBzaG93IHRoZW1cblx0XHRcdFx0Ly8gYnV0IGl0IG11c3QgaGF2ZSBhIGN1cnJlbnQgZGlzcGxheSBzdHlsZSB0aGF0IHdvdWxkIGJlbmVmaXRcblx0XHRcdFx0cmV0dXJuIHJkaXNwbGF5c3dhcC50ZXN0KCBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApICkgJiZcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA4K1xuXHRcdFx0XHRcdC8vIFRhYmxlIGNvbHVtbnMgaW4gU2FmYXJpIGhhdmUgbm9uLXplcm8gb2Zmc2V0V2lkdGggJiB6ZXJvXG5cdFx0XHRcdFx0Ly8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggdW5sZXNzIGRpc3BsYXkgaXMgY2hhbmdlZC5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0XHRcdFx0XHQvLyBSdW5uaW5nIGdldEJvdW5kaW5nQ2xpZW50UmVjdCBvbiBhIGRpc2Nvbm5lY3RlZCBub2RlXG5cdFx0XHRcdFx0Ly8gaW4gSUUgdGhyb3dzIGFuIGVycm9yLlxuXHRcdFx0XHRcdCggIWVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggfHwgIWVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKSA/XG5cdFx0XHRcdFx0c3dhcCggZWxlbSwgY3NzU2hvdywgZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZ2V0V2lkdGhPckhlaWdodCggZWxlbSwgZGltZW5zaW9uLCBleHRyYSApO1xuXHRcdFx0XHRcdH0gKSA6XG5cdFx0XHRcdFx0Z2V0V2lkdGhPckhlaWdodCggZWxlbSwgZGltZW5zaW9uLCBleHRyYSApO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSB7XG5cdFx0XHR2YXIgbWF0Y2hlcyxcblx0XHRcdFx0c3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cblx0XHRcdFx0Ly8gT25seSByZWFkIHN0eWxlcy5wb3NpdGlvbiBpZiB0aGUgdGVzdCBoYXMgYSBjaGFuY2UgdG8gZmFpbFxuXHRcdFx0XHQvLyB0byBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LlxuXHRcdFx0XHRzY3JvbGxib3hTaXplQnVnZ3kgPSAhc3VwcG9ydC5zY3JvbGxib3hTaXplKCkgJiZcblx0XHRcdFx0XHRzdHlsZXMucG9zaXRpb24gPT09IFwiYWJzb2x1dGVcIixcblxuXHRcdFx0XHQvLyBUbyBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LCBvbmx5IGZldGNoIGJveFNpemluZyBpZiB3ZSBuZWVkIGl0IChnaC0zOTkxKVxuXHRcdFx0XHRib3hTaXppbmdOZWVkZWQgPSBzY3JvbGxib3hTaXplQnVnZ3kgfHwgZXh0cmEsXG5cdFx0XHRcdGlzQm9yZGVyQm94ID0gYm94U2l6aW5nTmVlZGVkICYmXG5cdFx0XHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJib3hTaXppbmdcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImJvcmRlci1ib3hcIixcblx0XHRcdFx0c3VidHJhY3QgPSBleHRyYSA/XG5cdFx0XHRcdFx0Ym94TW9kZWxBZGp1c3RtZW50KFxuXHRcdFx0XHRcdFx0ZWxlbSxcblx0XHRcdFx0XHRcdGRpbWVuc2lvbixcblx0XHRcdFx0XHRcdGV4dHJhLFxuXHRcdFx0XHRcdFx0aXNCb3JkZXJCb3gsXG5cdFx0XHRcdFx0XHRzdHlsZXNcblx0XHRcdFx0XHQpIDpcblx0XHRcdFx0XHQwO1xuXG5cdFx0XHQvLyBBY2NvdW50IGZvciB1bnJlbGlhYmxlIGJvcmRlci1ib3ggZGltZW5zaW9ucyBieSBjb21wYXJpbmcgb2Zmc2V0KiB0byBjb21wdXRlZCBhbmRcblx0XHRcdC8vIGZha2luZyBhIGNvbnRlbnQtYm94IHRvIGdldCBib3JkZXIgYW5kIHBhZGRpbmcgKGdoLTM2OTkpXG5cdFx0XHRpZiAoIGlzQm9yZGVyQm94ICYmIHNjcm9sbGJveFNpemVCdWdneSApIHtcblx0XHRcdFx0c3VidHJhY3QgLT0gTWF0aC5jZWlsKFxuXHRcdFx0XHRcdGVsZW1bIFwib2Zmc2V0XCIgKyBkaW1lbnNpb25bIDAgXS50b1VwcGVyQ2FzZSgpICsgZGltZW5zaW9uLnNsaWNlKCAxICkgXSAtXG5cdFx0XHRcdFx0cGFyc2VGbG9hdCggc3R5bGVzWyBkaW1lbnNpb24gXSApIC1cblx0XHRcdFx0XHRib3hNb2RlbEFkanVzdG1lbnQoIGVsZW0sIGRpbWVuc2lvbiwgXCJib3JkZXJcIiwgZmFsc2UsIHN0eWxlcyApIC1cblx0XHRcdFx0XHQwLjVcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29udmVydCB0byBwaXhlbHMgaWYgdmFsdWUgYWRqdXN0bWVudCBpcyBuZWVkZWRcblx0XHRcdGlmICggc3VidHJhY3QgJiYgKCBtYXRjaGVzID0gcmNzc051bS5leGVjKCB2YWx1ZSApICkgJiZcblx0XHRcdFx0KCBtYXRjaGVzWyAzIF0gfHwgXCJweFwiICkgIT09IFwicHhcIiApIHtcblxuXHRcdFx0XHRlbGVtLnN0eWxlWyBkaW1lbnNpb24gXSA9IHZhbHVlO1xuXHRcdFx0XHR2YWx1ZSA9IGpRdWVyeS5jc3MoIGVsZW0sIGRpbWVuc2lvbiApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gc2V0UG9zaXRpdmVOdW1iZXIoIGVsZW0sIHZhbHVlLCBzdWJ0cmFjdCApO1xuXHRcdH1cblx0fTtcbn0gKTtcblxualF1ZXJ5LmNzc0hvb2tzLm1hcmdpbkxlZnQgPSBhZGRHZXRIb29rSWYoIHN1cHBvcnQucmVsaWFibGVNYXJnaW5MZWZ0LFxuXHRmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0aWYgKCBjb21wdXRlZCApIHtcblx0XHRcdHJldHVybiAoIHBhcnNlRmxvYXQoIGN1ckNTUyggZWxlbSwgXCJtYXJnaW5MZWZ0XCIgKSApIHx8XG5cdFx0XHRcdGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG5cdFx0XHRcdFx0c3dhcCggZWxlbSwgeyBtYXJnaW5MZWZ0OiAwIH0sIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcblx0XHRcdFx0XHR9IClcblx0XHRcdCkgKyBcInB4XCI7XG5cdFx0fVxuXHR9XG4pO1xuXG4vLyBUaGVzZSBob29rcyBhcmUgdXNlZCBieSBhbmltYXRlIHRvIGV4cGFuZCBwcm9wZXJ0aWVzXG5qUXVlcnkuZWFjaCgge1xuXHRtYXJnaW46IFwiXCIsXG5cdHBhZGRpbmc6IFwiXCIsXG5cdGJvcmRlcjogXCJXaWR0aFwiXG59LCBmdW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XG5cdFx0ZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgaSA9IDAsXG5cdFx0XHRcdGV4cGFuZGVkID0ge30sXG5cblx0XHRcdFx0Ly8gQXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYgbm90IGEgc3RyaW5nXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoIFwiIFwiICkgOiBbIHZhbHVlIF07XG5cblx0XHRcdGZvciAoIDsgaSA8IDQ7IGkrKyApIHtcblx0XHRcdFx0ZXhwYW5kZWRbIHByZWZpeCArIGNzc0V4cGFuZFsgaSBdICsgc3VmZml4IF0gPVxuXHRcdFx0XHRcdHBhcnRzWyBpIF0gfHwgcGFydHNbIGkgLSAyIF0gfHwgcGFydHNbIDAgXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGV4cGFuZGVkO1xuXHRcdH1cblx0fTtcblxuXHRpZiAoIHByZWZpeCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdLnNldCA9IHNldFBvc2l0aXZlTnVtYmVyO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0Y3NzOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0dmFyIHN0eWxlcywgbGVuLFxuXHRcdFx0XHRtYXAgPSB7fSxcblx0XHRcdFx0aSA9IDA7XG5cblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSggbmFtZSApICkge1xuXHRcdFx0XHRzdHlsZXMgPSBnZXRTdHlsZXMoIGVsZW0gKTtcblx0XHRcdFx0bGVuID0gbmFtZS5sZW5ndGg7XG5cblx0XHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0bWFwWyBuYW1lWyBpIF0gXSA9IGpRdWVyeS5jc3MoIGVsZW0sIG5hbWVbIGkgXSwgZmFsc2UsIHN0eWxlcyApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG1hcDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7XG5cdFx0fSwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH1cbn0gKTtcblxuXG5mdW5jdGlvbiBUd2VlbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcgKSB7XG5cdHJldHVybiBuZXcgVHdlZW4ucHJvdG90eXBlLmluaXQoIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICk7XG59XG5qUXVlcnkuVHdlZW4gPSBUd2VlbjtcblxuVHdlZW4ucHJvdG90eXBlID0ge1xuXHRjb25zdHJ1Y3RvcjogVHdlZW4sXG5cdGluaXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZywgdW5pdCApIHtcblx0XHR0aGlzLmVsZW0gPSBlbGVtO1xuXHRcdHRoaXMucHJvcCA9IHByb3A7XG5cdFx0dGhpcy5lYXNpbmcgPSBlYXNpbmcgfHwgalF1ZXJ5LmVhc2luZy5fZGVmYXVsdDtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XG5cdFx0dGhpcy5lbmQgPSBlbmQ7XG5cdFx0dGhpcy51bml0ID0gdW5pdCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0fSxcblx0Y3VyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0cmV0dXJuIGhvb2tzICYmIGhvb2tzLmdldCA/XG5cdFx0XHRob29rcy5nZXQoIHRoaXMgKSA6XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XG5cdH0sXG5cdHJ1bjogZnVuY3Rpb24oIHBlcmNlbnQgKSB7XG5cdFx0dmFyIGVhc2VkLFxuXHRcdFx0aG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0galF1ZXJ5LmVhc2luZ1sgdGhpcy5lYXNpbmcgXShcblx0XHRcdFx0cGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9uICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0gcGVyY2VudDtcblx0XHR9XG5cdFx0dGhpcy5ub3cgPSAoIHRoaXMuZW5kIC0gdGhpcy5zdGFydCApICogZWFzZWQgKyB0aGlzLnN0YXJ0O1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcblx0XHRcdHRoaXMub3B0aW9ucy5zdGVwLmNhbGwoIHRoaXMuZWxlbSwgdGhpcy5ub3csIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnNldCApIHtcblx0XHRcdGhvb2tzLnNldCggdGhpcyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KCB0aGlzICk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59O1xuXG5Ud2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7XG5cblR3ZWVuLnByb3BIb29rcyA9IHtcblx0X2RlZmF1bHQ6IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRcdHZhciByZXN1bHQ7XG5cblx0XHRcdC8vIFVzZSBhIHByb3BlcnR5IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5IHdoZW4gaXQgaXMgbm90IGEgRE9NIGVsZW1lbnQsXG5cdFx0XHQvLyBvciB3aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHN0eWxlIHByb3BlcnR5IHRoYXQgZXhpc3RzLlxuXHRcdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICE9PSAxIHx8XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSAhPSBudWxsICYmIHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBQYXNzaW5nIGFuIGVtcHR5IHN0cmluZyBhcyBhIDNyZCBwYXJhbWV0ZXIgdG8gLmNzcyB3aWxsIGF1dG9tYXRpY2FsbHlcblx0XHRcdC8vIGF0dGVtcHQgYSBwYXJzZUZsb2F0IGFuZCBmYWxsYmFjayB0byBhIHN0cmluZyBpZiB0aGUgcGFyc2UgZmFpbHMuXG5cdFx0XHQvLyBTaW1wbGUgdmFsdWVzIHN1Y2ggYXMgXCIxMHB4XCIgYXJlIHBhcnNlZCB0byBGbG9hdDtcblx0XHRcdC8vIGNvbXBsZXggdmFsdWVzIHN1Y2ggYXMgXCJyb3RhdGUoMXJhZClcIiBhcmUgcmV0dXJuZWQgYXMtaXMuXG5cdFx0XHRyZXN1bHQgPSBqUXVlcnkuY3NzKCB0d2Vlbi5lbGVtLCB0d2Vlbi5wcm9wLCBcIlwiICk7XG5cblx0XHRcdC8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgXCJhdXRvXCIgYXJlIGNvbnZlcnRlZCB0byAwLlxuXHRcdFx0cmV0dXJuICFyZXN1bHQgfHwgcmVzdWx0ID09PSBcImF1dG9cIiA/IDAgOiByZXN1bHQ7XG5cdFx0fSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblxuXHRcdFx0Ly8gVXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQuXG5cdFx0XHQvLyBVc2UgY3NzSG9vayBpZiBpdHMgdGhlcmUuXG5cdFx0XHQvLyBVc2UgLnN0eWxlIGlmIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3BlcnRpZXMgd2hlcmUgYXZhaWxhYmxlLlxuXHRcdFx0aWYgKCBqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdICkge1xuXHRcdFx0XHRqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdKCB0d2VlbiApO1xuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoXG5cdFx0XHRcdGpRdWVyeS5jc3NIb29rc1sgdHdlZW4ucHJvcCBdIHx8XG5cdFx0XHRcdFx0dHdlZW4uZWxlbS5zdHlsZVsgZmluYWxQcm9wTmFtZSggdHdlZW4ucHJvcCApIF0gIT0gbnVsbCApICkge1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIHR3ZWVuLm5vdyArIHR3ZWVuLnVuaXQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbi8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG4vLyBQYW5pYyBiYXNlZCBhcHByb2FjaCB0byBzZXR0aW5nIHRoaW5ncyBvbiBkaXNjb25uZWN0ZWQgbm9kZXNcblR3ZWVuLnByb3BIb29rcy5zY3JvbGxUb3AgPSBUd2Vlbi5wcm9wSG9va3Muc2Nyb2xsTGVmdCA9IHtcblx0c2V0OiBmdW5jdGlvbiggdHdlZW4gKSB7XG5cdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICYmIHR3ZWVuLmVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5lYXNpbmcgPSB7XG5cdGxpbmVhcjogZnVuY3Rpb24oIHAgKSB7XG5cdFx0cmV0dXJuIHA7XG5cdH0sXG5cdHN3aW5nOiBmdW5jdGlvbiggcCApIHtcblx0XHRyZXR1cm4gMC41IC0gTWF0aC5jb3MoIHAgKiBNYXRoLlBJICkgLyAyO1xuXHR9LFxuXHRfZGVmYXVsdDogXCJzd2luZ1wiXG59O1xuXG5qUXVlcnkuZnggPSBUd2Vlbi5wcm90b3R5cGUuaW5pdDtcblxuLy8gQmFjayBjb21wYXQgPDEuOCBleHRlbnNpb24gcG9pbnRcbmpRdWVyeS5meC5zdGVwID0ge307XG5cblxuXG5cbnZhclxuXHRmeE5vdywgaW5Qcm9ncmVzcyxcblx0cmZ4dHlwZXMgPSAvXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sXG5cdHJydW4gPSAvcXVldWVIb29rcyQvO1xuXG5mdW5jdGlvbiBzY2hlZHVsZSgpIHtcblx0aWYgKCBpblByb2dyZXNzICkge1xuXHRcdGlmICggZG9jdW1lbnQuaGlkZGVuID09PSBmYWxzZSAmJiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lICkge1xuXHRcdFx0d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSggc2NoZWR1bGUgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0d2luZG93LnNldFRpbWVvdXQoIHNjaGVkdWxlLCBqUXVlcnkuZnguaW50ZXJ2YWwgKTtcblx0XHR9XG5cblx0XHRqUXVlcnkuZngudGljaygpO1xuXHR9XG59XG5cbi8vIEFuaW1hdGlvbnMgY3JlYXRlZCBzeW5jaHJvbm91c2x5IHdpbGwgcnVuIHN5bmNocm9ub3VzbHlcbmZ1bmN0aW9uIGNyZWF0ZUZ4Tm93KCkge1xuXHR3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24oKSB7XG5cdFx0ZnhOb3cgPSB1bmRlZmluZWQ7XG5cdH0gKTtcblx0cmV0dXJuICggZnhOb3cgPSBEYXRlLm5vdygpICk7XG59XG5cbi8vIEdlbmVyYXRlIHBhcmFtZXRlcnMgdG8gY3JlYXRlIGEgc3RhbmRhcmQgYW5pbWF0aW9uXG5mdW5jdGlvbiBnZW5GeCggdHlwZSwgaW5jbHVkZVdpZHRoICkge1xuXHR2YXIgd2hpY2gsXG5cdFx0aSA9IDAsXG5cdFx0YXR0cnMgPSB7IGhlaWdodDogdHlwZSB9O1xuXG5cdC8vIElmIHdlIGluY2x1ZGUgd2lkdGgsIHN0ZXAgdmFsdWUgaXMgMSB0byBkbyBhbGwgY3NzRXhwYW5kIHZhbHVlcyxcblx0Ly8gb3RoZXJ3aXNlIHN0ZXAgdmFsdWUgaXMgMiB0byBza2lwIG92ZXIgTGVmdCBhbmQgUmlnaHRcblx0aW5jbHVkZVdpZHRoID0gaW5jbHVkZVdpZHRoID8gMSA6IDA7XG5cdGZvciAoIDsgaSA8IDQ7IGkgKz0gMiAtIGluY2x1ZGVXaWR0aCApIHtcblx0XHR3aGljaCA9IGNzc0V4cGFuZFsgaSBdO1xuXHRcdGF0dHJzWyBcIm1hcmdpblwiICsgd2hpY2ggXSA9IGF0dHJzWyBcInBhZGRpbmdcIiArIHdoaWNoIF0gPSB0eXBlO1xuXHR9XG5cblx0aWYgKCBpbmNsdWRlV2lkdGggKSB7XG5cdFx0YXR0cnMub3BhY2l0eSA9IGF0dHJzLndpZHRoID0gdHlwZTtcblx0fVxuXG5cdHJldHVybiBhdHRycztcbn1cblxuZnVuY3Rpb24gY3JlYXRlVHdlZW4oIHZhbHVlLCBwcm9wLCBhbmltYXRpb24gKSB7XG5cdHZhciB0d2Vlbixcblx0XHRjb2xsZWN0aW9uID0gKCBBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXSB8fCBbXSApLmNvbmNhdCggQW5pbWF0aW9uLnR3ZWVuZXJzWyBcIipcIiBdICksXG5cdFx0aW5kZXggPSAwLFxuXHRcdGxlbmd0aCA9IGNvbGxlY3Rpb24ubGVuZ3RoO1xuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGlmICggKCB0d2VlbiA9IGNvbGxlY3Rpb25bIGluZGV4IF0uY2FsbCggYW5pbWF0aW9uLCBwcm9wLCB2YWx1ZSApICkgKSB7XG5cblx0XHRcdC8vIFdlJ3JlIGRvbmUgd2l0aCB0aGlzIHByb3BlcnR5XG5cdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRQcmVmaWx0ZXIoIGVsZW0sIHByb3BzLCBvcHRzICkge1xuXHR2YXIgcHJvcCwgdmFsdWUsIHRvZ2dsZSwgaG9va3MsIG9sZGZpcmUsIHByb3BUd2VlbiwgcmVzdG9yZURpc3BsYXksIGRpc3BsYXksXG5cdFx0aXNCb3ggPSBcIndpZHRoXCIgaW4gcHJvcHMgfHwgXCJoZWlnaHRcIiBpbiBwcm9wcyxcblx0XHRhbmltID0gdGhpcyxcblx0XHRvcmlnID0ge30sXG5cdFx0c3R5bGUgPSBlbGVtLnN0eWxlLFxuXHRcdGhpZGRlbiA9IGVsZW0ubm9kZVR5cGUgJiYgaXNIaWRkZW5XaXRoaW5UcmVlKCBlbGVtICksXG5cdFx0ZGF0YVNob3cgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIFwiZnhzaG93XCIgKTtcblxuXHQvLyBRdWV1ZS1za2lwcGluZyBhbmltYXRpb25zIGhpamFjayB0aGUgZnggaG9va3Ncblx0aWYgKCAhb3B0cy5xdWV1ZSApIHtcblx0XHRob29rcyA9IGpRdWVyeS5fcXVldWVIb29rcyggZWxlbSwgXCJmeFwiICk7XG5cdFx0aWYgKCBob29rcy51bnF1ZXVlZCA9PSBudWxsICkge1xuXHRcdFx0aG9va3MudW5xdWV1ZWQgPSAwO1xuXHRcdFx0b2xkZmlyZSA9IGhvb2tzLmVtcHR5LmZpcmU7XG5cdFx0XHRob29rcy5lbXB0eS5maXJlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggIWhvb2tzLnVucXVldWVkICkge1xuXHRcdFx0XHRcdG9sZGZpcmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0aG9va3MudW5xdWV1ZWQrKztcblxuXHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRW5zdXJlIHRoZSBjb21wbGV0ZSBoYW5kbGVyIGlzIGNhbGxlZCBiZWZvcmUgdGhpcyBjb21wbGV0ZXNcblx0XHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0aG9va3MudW5xdWV1ZWQtLTtcblx0XHRcdFx0aWYgKCAhalF1ZXJ5LnF1ZXVlKCBlbGVtLCBcImZ4XCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdFx0aG9va3MuZW1wdHkuZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gRGV0ZWN0IHNob3cvaGlkZSBhbmltYXRpb25zXG5cdGZvciAoIHByb3AgaW4gcHJvcHMgKSB7XG5cdFx0dmFsdWUgPSBwcm9wc1sgcHJvcCBdO1xuXHRcdGlmICggcmZ4dHlwZXMudGVzdCggdmFsdWUgKSApIHtcblx0XHRcdGRlbGV0ZSBwcm9wc1sgcHJvcCBdO1xuXHRcdFx0dG9nZ2xlID0gdG9nZ2xlIHx8IHZhbHVlID09PSBcInRvZ2dsZVwiO1xuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gKCBoaWRkZW4gPyBcImhpZGVcIiA6IFwic2hvd1wiICkgKSB7XG5cblx0XHRcdFx0Ly8gUHJldGVuZCB0byBiZSBoaWRkZW4gaWYgdGhpcyBpcyBhIFwic2hvd1wiIGFuZFxuXHRcdFx0XHQvLyB0aGVyZSBpcyBzdGlsbCBkYXRhIGZyb20gYSBzdG9wcGVkIHNob3cvaGlkZVxuXHRcdFx0XHRpZiAoIHZhbHVlID09PSBcInNob3dcIiAmJiBkYXRhU2hvdyAmJiBkYXRhU2hvd1sgcHJvcCBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gdHJ1ZTtcblxuXHRcdFx0XHQvLyBJZ25vcmUgYWxsIG90aGVyIG5vLW9wIHNob3cvaGlkZSBkYXRhXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdG9yaWdbIHByb3AgXSA9IGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gfHwgalF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQmFpbCBvdXQgaWYgdGhpcyBpcyBhIG5vLW9wIGxpa2UgLmhpZGUoKS5oaWRlKClcblx0cHJvcFR3ZWVuID0gIWpRdWVyeS5pc0VtcHR5T2JqZWN0KCBwcm9wcyApO1xuXHRpZiAoICFwcm9wVHdlZW4gJiYgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIG9yaWcgKSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBSZXN0cmljdCBcIm92ZXJmbG93XCIgYW5kIFwiZGlzcGxheVwiIHN0eWxlcyBkdXJpbmcgYm94IGFuaW1hdGlvbnNcblx0aWYgKCBpc0JveCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEsIEVkZ2UgMTIgLSAxNVxuXHRcdC8vIFJlY29yZCBhbGwgMyBvdmVyZmxvdyBhdHRyaWJ1dGVzIGJlY2F1c2UgSUUgZG9lcyBub3QgaW5mZXIgdGhlIHNob3J0aGFuZFxuXHRcdC8vIGZyb20gaWRlbnRpY2FsbHktdmFsdWVkIG92ZXJmbG93WCBhbmQgb3ZlcmZsb3dZIGFuZCBFZGdlIGp1c3QgbWlycm9yc1xuXHRcdC8vIHRoZSBvdmVyZmxvd1ggdmFsdWUgdGhlcmUuXG5cdFx0b3B0cy5vdmVyZmxvdyA9IFsgc3R5bGUub3ZlcmZsb3csIHN0eWxlLm92ZXJmbG93WCwgc3R5bGUub3ZlcmZsb3dZIF07XG5cblx0XHQvLyBJZGVudGlmeSBhIGRpc3BsYXkgdHlwZSwgcHJlZmVycmluZyBvbGQgc2hvdy9oaWRlIGRhdGEgb3ZlciB0aGUgQ1NTIGNhc2NhZGVcblx0XHRyZXN0b3JlRGlzcGxheSA9IGRhdGFTaG93ICYmIGRhdGFTaG93LmRpc3BsYXk7XG5cdFx0aWYgKCByZXN0b3JlRGlzcGxheSA9PSBudWxsICkge1xuXHRcdFx0cmVzdG9yZURpc3BsYXkgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIFwiZGlzcGxheVwiICk7XG5cdFx0fVxuXHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXHRcdGlmICggZGlzcGxheSA9PT0gXCJub25lXCIgKSB7XG5cdFx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ICkge1xuXHRcdFx0XHRkaXNwbGF5ID0gcmVzdG9yZURpc3BsYXk7XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIEdldCBub25lbXB0eSB2YWx1ZShzKSBieSB0ZW1wb3JhcmlseSBmb3JjaW5nIHZpc2liaWxpdHlcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdLCB0cnVlICk7XG5cdFx0XHRcdHJlc3RvcmVEaXNwbGF5ID0gZWxlbS5zdHlsZS5kaXNwbGF5IHx8IHJlc3RvcmVEaXNwbGF5O1xuXHRcdFx0XHRkaXNwbGF5ID0galF1ZXJ5LmNzcyggZWxlbSwgXCJkaXNwbGF5XCIgKTtcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQW5pbWF0ZSBpbmxpbmUgZWxlbWVudHMgYXMgaW5saW5lLWJsb2NrXG5cdFx0aWYgKCBkaXNwbGF5ID09PSBcImlubGluZVwiIHx8IGRpc3BsYXkgPT09IFwiaW5saW5lLWJsb2NrXCIgJiYgcmVzdG9yZURpc3BsYXkgIT0gbnVsbCApIHtcblx0XHRcdGlmICggalF1ZXJ5LmNzcyggZWxlbSwgXCJmbG9hdFwiICkgPT09IFwibm9uZVwiICkge1xuXG5cdFx0XHRcdC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGRpc3BsYXkgdmFsdWUgYXQgdGhlIGVuZCBvZiBwdXJlIHNob3cvaGlkZSBhbmltYXRpb25zXG5cdFx0XHRcdGlmICggIXByb3BUd2VlbiApIHtcblx0XHRcdFx0XHRhbmltLmRvbmUoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0c3R5bGUuZGlzcGxheSA9IHJlc3RvcmVEaXNwbGF5O1xuXHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5ID0gc3R5bGUuZGlzcGxheTtcblx0XHRcdFx0XHRcdHJlc3RvcmVEaXNwbGF5ID0gZGlzcGxheSA9PT0gXCJub25lXCIgPyBcIlwiIDogZGlzcGxheTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0c3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBvcHRzLm92ZXJmbG93ICkge1xuXHRcdHN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcblx0XHRhbmltLmFsd2F5cyggZnVuY3Rpb24oKSB7XG5cdFx0XHRzdHlsZS5vdmVyZmxvdyA9IG9wdHMub3ZlcmZsb3dbIDAgXTtcblx0XHRcdHN0eWxlLm92ZXJmbG93WCA9IG9wdHMub3ZlcmZsb3dbIDEgXTtcblx0XHRcdHN0eWxlLm92ZXJmbG93WSA9IG9wdHMub3ZlcmZsb3dbIDIgXTtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBJbXBsZW1lbnQgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0cHJvcFR3ZWVuID0gZmFsc2U7XG5cdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblxuXHRcdC8vIEdlbmVyYWwgc2hvdy9oaWRlIHNldHVwIGZvciB0aGlzIGVsZW1lbnQgYW5pbWF0aW9uXG5cdFx0aWYgKCAhcHJvcFR3ZWVuICkge1xuXHRcdFx0aWYgKCBkYXRhU2hvdyApIHtcblx0XHRcdFx0aWYgKCBcImhpZGRlblwiIGluIGRhdGFTaG93ICkge1xuXHRcdFx0XHRcdGhpZGRlbiA9IGRhdGFTaG93LmhpZGRlbjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGF0YVNob3cgPSBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIFwiZnhzaG93XCIsIHsgZGlzcGxheTogcmVzdG9yZURpc3BsYXkgfSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdG9yZSBoaWRkZW4vdmlzaWJsZSBmb3IgdG9nZ2xlIHNvIGAuc3RvcCgpLnRvZ2dsZSgpYCBcInJldmVyc2VzXCJcblx0XHRcdGlmICggdG9nZ2xlICkge1xuXHRcdFx0XHRkYXRhU2hvdy5oaWRkZW4gPSAhaGlkZGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTaG93IGVsZW1lbnRzIGJlZm9yZSBhbmltYXRpbmcgdGhlbVxuXHRcdFx0aWYgKCBoaWRkZW4gKSB7XG5cdFx0XHRcdHNob3dIaWRlKCBbIGVsZW0gXSwgdHJ1ZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBlc2xpbnQtZGlzYWJsZSBuby1sb29wLWZ1bmMgKi9cblxuXHRcdFx0YW5pbS5kb25lKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvKiBlc2xpbnQtZW5hYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRcdC8vIFRoZSBmaW5hbCBzdGVwIG9mIGEgXCJoaWRlXCIgYW5pbWF0aW9uIGlzIGFjdHVhbGx5IGhpZGluZyB0aGUgZWxlbWVudFxuXHRcdFx0XHRpZiAoICFoaWRkZW4gKSB7XG5cdFx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBcImZ4c2hvd1wiICk7XG5cdFx0XHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Ly8gUGVyLXByb3BlcnR5IHNldHVwXG5cdFx0cHJvcFR3ZWVuID0gY3JlYXRlVHdlZW4oIGhpZGRlbiA/IGRhdGFTaG93WyBwcm9wIF0gOiAwLCBwcm9wLCBhbmltICk7XG5cdFx0aWYgKCAhKCBwcm9wIGluIGRhdGFTaG93ICkgKSB7XG5cdFx0XHRkYXRhU2hvd1sgcHJvcCBdID0gcHJvcFR3ZWVuLnN0YXJ0O1xuXHRcdFx0aWYgKCBoaWRkZW4gKSB7XG5cdFx0XHRcdHByb3BUd2Vlbi5lbmQgPSBwcm9wVHdlZW4uc3RhcnQ7XG5cdFx0XHRcdHByb3BUd2Vlbi5zdGFydCA9IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIHByb3BGaWx0ZXIoIHByb3BzLCBzcGVjaWFsRWFzaW5nICkge1xuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xuXG5cdC8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNzc0hvb2sgcGFzc1xuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcblx0XHRuYW1lID0gY2FtZWxDYXNlKCBpbmRleCApO1xuXHRcdGVhc2luZyA9IHNwZWNpYWxFYXNpbmdbIG5hbWUgXTtcblx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdO1xuXHRcdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRcdGVhc2luZyA9IHZhbHVlWyAxIF07XG5cdFx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdID0gdmFsdWVbIDAgXTtcblx0XHR9XG5cblx0XHRpZiAoIGluZGV4ICE9PSBuYW1lICkge1xuXHRcdFx0cHJvcHNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBpbmRleCBdO1xuXHRcdH1cblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF07XG5cdFx0aWYgKCBob29rcyAmJiBcImV4cGFuZFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsdWUgPSBob29rcy5leHBhbmQoIHZhbHVlICk7XG5cdFx0XHRkZWxldGUgcHJvcHNbIG5hbWUgXTtcblxuXHRcdFx0Ly8gTm90IHF1aXRlICQuZXh0ZW5kLCB0aGlzIHdvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBrZXlzLlxuXHRcdFx0Ly8gUmV1c2luZyAnaW5kZXgnIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgY29ycmVjdCBcIm5hbWVcIlxuXHRcdFx0Zm9yICggaW5kZXggaW4gdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggISggaW5kZXggaW4gcHJvcHMgKSApIHtcblx0XHRcdFx0XHRwcm9wc1sgaW5kZXggXSA9IHZhbHVlWyBpbmRleCBdO1xuXHRcdFx0XHRcdHNwZWNpYWxFYXNpbmdbIGluZGV4IF0gPSBlYXNpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3BlY2lhbEVhc2luZ1sgbmFtZSBdID0gZWFzaW5nO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBBbmltYXRpb24oIGVsZW0sIHByb3BlcnRpZXMsIG9wdGlvbnMgKSB7XG5cdHZhciByZXN1bHQsXG5cdFx0c3RvcHBlZCxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gQW5pbWF0aW9uLnByZWZpbHRlcnMubGVuZ3RoLFxuXHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCkuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRG9uJ3QgbWF0Y2ggZWxlbSBpbiB0aGUgOmFuaW1hdGVkIHNlbGVjdG9yXG5cdFx0XHRkZWxldGUgdGljay5lbGVtO1xuXHRcdH0gKSxcblx0XHR0aWNrID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdHZhciBjdXJyZW50VGltZSA9IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRcdHJlbWFpbmluZyA9IE1hdGgubWF4KCAwLCBhbmltYXRpb24uc3RhcnRUaW1lICsgYW5pbWF0aW9uLmR1cmF0aW9uIC0gY3VycmVudFRpbWUgKSxcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDIuMyBvbmx5XG5cdFx0XHRcdC8vIEFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSBgMSAtICggMC41IHx8IDAgKWAgKHRyYWMtMTI0OTcpXG5cdFx0XHRcdHRlbXAgPSByZW1haW5pbmcgLyBhbmltYXRpb24uZHVyYXRpb24gfHwgMCxcblx0XHRcdFx0cGVyY2VudCA9IDEgLSB0ZW1wLFxuXHRcdFx0XHRpbmRleCA9IDAsXG5cdFx0XHRcdGxlbmd0aCA9IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoO1xuXG5cdFx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggcGVyY2VudCApO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgcGVyY2VudCwgcmVtYWluaW5nIF0gKTtcblxuXHRcdFx0Ly8gSWYgdGhlcmUncyBtb3JlIHRvIGRvLCB5aWVsZFxuXHRcdFx0aWYgKCBwZXJjZW50IDwgMSAmJiBsZW5ndGggKSB7XG5cdFx0XHRcdHJldHVybiByZW1haW5pbmc7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHRoaXMgd2FzIGFuIGVtcHR5IGFuaW1hdGlvbiwgc3ludGhlc2l6ZSBhIGZpbmFsIHByb2dyZXNzIG5vdGlmaWNhdGlvblxuXHRcdFx0aWYgKCAhbGVuZ3RoICkge1xuXHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgMSwgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlc29sdmUgdGhlIGFuaW1hdGlvbiBhbmQgcmVwb3J0IGl0cyBjb25jbHVzaW9uXG5cdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggZWxlbSwgWyBhbmltYXRpb24gXSApO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0sXG5cdFx0YW5pbWF0aW9uID0gZGVmZXJyZWQucHJvbWlzZSgge1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdHByb3BzOiBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcGVydGllcyApLFxuXHRcdFx0b3B0czogalF1ZXJ5LmV4dGVuZCggdHJ1ZSwge1xuXHRcdFx0XHRzcGVjaWFsRWFzaW5nOiB7fSxcblx0XHRcdFx0ZWFzaW5nOiBqUXVlcnkuZWFzaW5nLl9kZWZhdWx0XG5cdFx0XHR9LCBvcHRpb25zICksXG5cdFx0XHRvcmlnaW5hbFByb3BlcnRpZXM6IHByb3BlcnRpZXMsXG5cdFx0XHRvcmlnaW5hbE9wdGlvbnM6IG9wdGlvbnMsXG5cdFx0XHRzdGFydFRpbWU6IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbixcblx0XHRcdHR3ZWVuczogW10sXG5cdFx0XHRjcmVhdGVUd2VlbjogZnVuY3Rpb24oIHByb3AsIGVuZCApIHtcblx0XHRcdFx0dmFyIHR3ZWVuID0galF1ZXJ5LlR3ZWVuKCBlbGVtLCBhbmltYXRpb24ub3B0cywgcHJvcCwgZW5kLFxuXHRcdFx0XHRcdGFuaW1hdGlvbi5vcHRzLnNwZWNpYWxFYXNpbmdbIHByb3AgXSB8fCBhbmltYXRpb24ub3B0cy5lYXNpbmcgKTtcblx0XHRcdFx0YW5pbWF0aW9uLnR3ZWVucy5wdXNoKCB0d2VlbiApO1xuXHRcdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0XHR9LFxuXHRcdFx0c3RvcDogZnVuY3Rpb24oIGdvdG9FbmQgKSB7XG5cdFx0XHRcdHZhciBpbmRleCA9IDAsXG5cblx0XHRcdFx0XHQvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdGhlIGVuZCwgd2Ugd2FudCB0byBydW4gYWxsIHRoZSB0d2VlbnNcblx0XHRcdFx0XHQvLyBvdGhlcndpc2Ugd2Ugc2tpcCB0aGlzIHBhcnRcblx0XHRcdFx0XHRsZW5ndGggPSBnb3RvRW5kID8gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGggOiAwO1xuXHRcdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0c3RvcHBlZCA9IHRydWU7XG5cdFx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uLnR3ZWVuc1sgaW5kZXggXS5ydW4oIDEgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlc29sdmUgd2hlbiB3ZSBwbGF5ZWQgdGhlIGxhc3QgZnJhbWU7IG90aGVyd2lzZSwgcmVqZWN0XG5cdFx0XHRcdGlmICggZ290b0VuZCApIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgMSwgMCBdICk7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBnb3RvRW5kIF0gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSApLFxuXHRcdHByb3BzID0gYW5pbWF0aW9uLnByb3BzO1xuXG5cdHByb3BGaWx0ZXIoIHByb3BzLCBhbmltYXRpb24ub3B0cy5zcGVjaWFsRWFzaW5nICk7XG5cblx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRyZXN1bHQgPSBBbmltYXRpb24ucHJlZmlsdGVyc1sgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIGVsZW0sIHByb3BzLCBhbmltYXRpb24ub3B0cyApO1xuXHRcdGlmICggcmVzdWx0ICkge1xuXHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCByZXN1bHQuc3RvcCApICkge1xuXHRcdFx0XHRqUXVlcnkuX3F1ZXVlSG9va3MoIGFuaW1hdGlvbi5lbGVtLCBhbmltYXRpb24ub3B0cy5xdWV1ZSApLnN0b3AgPVxuXHRcdFx0XHRcdHJlc3VsdC5zdG9wLmJpbmQoIHJlc3VsdCApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cdH1cblxuXHRqUXVlcnkubWFwKCBwcm9wcywgY3JlYXRlVHdlZW4sIGFuaW1hdGlvbiApO1xuXG5cdGlmICggaXNGdW5jdGlvbiggYW5pbWF0aW9uLm9wdHMuc3RhcnQgKSApIHtcblx0XHRhbmltYXRpb24ub3B0cy5zdGFydC5jYWxsKCBlbGVtLCBhbmltYXRpb24gKTtcblx0fVxuXG5cdC8vIEF0dGFjaCBjYWxsYmFja3MgZnJvbSBvcHRpb25zXG5cdGFuaW1hdGlvblxuXHRcdC5wcm9ncmVzcyggYW5pbWF0aW9uLm9wdHMucHJvZ3Jlc3MgKVxuXHRcdC5kb25lKCBhbmltYXRpb24ub3B0cy5kb25lLCBhbmltYXRpb24ub3B0cy5jb21wbGV0ZSApXG5cdFx0LmZhaWwoIGFuaW1hdGlvbi5vcHRzLmZhaWwgKVxuXHRcdC5hbHdheXMoIGFuaW1hdGlvbi5vcHRzLmFsd2F5cyApO1xuXG5cdGpRdWVyeS5meC50aW1lcihcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aWNrLCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0YW5pbTogYW5pbWF0aW9uLFxuXHRcdFx0cXVldWU6IGFuaW1hdGlvbi5vcHRzLnF1ZXVlXG5cdFx0fSApXG5cdCk7XG5cblx0cmV0dXJuIGFuaW1hdGlvbjtcbn1cblxualF1ZXJ5LkFuaW1hdGlvbiA9IGpRdWVyeS5leHRlbmQoIEFuaW1hdGlvbiwge1xuXG5cdHR3ZWVuZXJzOiB7XG5cdFx0XCIqXCI6IFsgZnVuY3Rpb24oIHByb3AsIHZhbHVlICkge1xuXHRcdFx0dmFyIHR3ZWVuID0gdGhpcy5jcmVhdGVUd2VlbiggcHJvcCwgdmFsdWUgKTtcblx0XHRcdGFkanVzdENTUyggdHdlZW4uZWxlbSwgcHJvcCwgcmNzc051bS5leGVjKCB2YWx1ZSApLCB0d2VlbiApO1xuXHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdH0gXVxuXHR9LFxuXG5cdHR3ZWVuZXI6IGZ1bmN0aW9uKCBwcm9wcywgY2FsbGJhY2sgKSB7XG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBwcm9wcyApICkge1xuXHRcdFx0Y2FsbGJhY2sgPSBwcm9wcztcblx0XHRcdHByb3BzID0gWyBcIipcIiBdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRwcm9wcyA9IHByb3BzLm1hdGNoKCBybm90aHRtbHdoaXRlICk7XG5cdFx0fVxuXG5cdFx0dmFyIHByb3AsXG5cdFx0XHRpbmRleCA9IDAsXG5cdFx0XHRsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cblx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0cHJvcCA9IHByb3BzWyBpbmRleCBdO1xuXHRcdFx0QW5pbWF0aW9uLnR3ZWVuZXJzWyBwcm9wIF0gPSBBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXSB8fCBbXTtcblx0XHRcdEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdLnVuc2hpZnQoIGNhbGxiYWNrICk7XG5cdFx0fVxuXHR9LFxuXG5cdHByZWZpbHRlcnM6IFsgZGVmYXVsdFByZWZpbHRlciBdLFxuXG5cdHByZWZpbHRlcjogZnVuY3Rpb24oIGNhbGxiYWNrLCBwcmVwZW5kICkge1xuXHRcdGlmICggcHJlcGVuZCApIHtcblx0XHRcdEFuaW1hdGlvbi5wcmVmaWx0ZXJzLnVuc2hpZnQoIGNhbGxiYWNrICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdEFuaW1hdGlvbi5wcmVmaWx0ZXJzLnB1c2goIGNhbGxiYWNrICk7XG5cdFx0fVxuXHR9XG59ICk7XG5cbmpRdWVyeS5zcGVlZCA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHtcblx0dmFyIG9wdCA9IHNwZWVkICYmIHR5cGVvZiBzcGVlZCA9PT0gXCJvYmplY3RcIiA/IGpRdWVyeS5leHRlbmQoIHt9LCBzcGVlZCApIDoge1xuXHRcdGNvbXBsZXRlOiBmbiB8fCAhZm4gJiYgZWFzaW5nIHx8XG5cdFx0XHRpc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLFxuXHRcdGR1cmF0aW9uOiBzcGVlZCxcblx0XHRlYXNpbmc6IGZuICYmIGVhc2luZyB8fCBlYXNpbmcgJiYgIWlzRnVuY3Rpb24oIGVhc2luZyApICYmIGVhc2luZ1xuXHR9O1xuXG5cdC8vIEdvIHRvIHRoZSBlbmQgc3RhdGUgaWYgZnggYXJlIG9mZlxuXHRpZiAoIGpRdWVyeS5meC5vZmYgKSB7XG5cdFx0b3B0LmR1cmF0aW9uID0gMDtcblxuXHR9IGVsc2Uge1xuXHRcdGlmICggdHlwZW9mIG9wdC5kdXJhdGlvbiAhPT0gXCJudW1iZXJcIiApIHtcblx0XHRcdGlmICggb3B0LmR1cmF0aW9uIGluIGpRdWVyeS5meC5zcGVlZHMgKSB7XG5cdFx0XHRcdG9wdC5kdXJhdGlvbiA9IGpRdWVyeS5meC5zcGVlZHNbIG9wdC5kdXJhdGlvbiBdO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIE5vcm1hbGl6ZSBvcHQucXVldWUgLSB0cnVlL3VuZGVmaW5lZC9udWxsIC0+IFwiZnhcIlxuXHRpZiAoIG9wdC5xdWV1ZSA9PSBudWxsIHx8IG9wdC5xdWV1ZSA9PT0gdHJ1ZSApIHtcblx0XHRvcHQucXVldWUgPSBcImZ4XCI7XG5cdH1cblxuXHQvLyBRdWV1ZWluZ1xuXHRvcHQub2xkID0gb3B0LmNvbXBsZXRlO1xuXG5cdG9wdC5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggb3B0Lm9sZCApICkge1xuXHRcdFx0b3B0Lm9sZC5jYWxsKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBvcHQucXVldWUgKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgb3B0LnF1ZXVlICk7XG5cdFx0fVxuXHR9O1xuXG5cdHJldHVybiBvcHQ7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGZhZGVUbzogZnVuY3Rpb24oIHNwZWVkLCB0bywgZWFzaW5nLCBjYWxsYmFjayApIHtcblxuXHRcdC8vIFNob3cgYW55IGhpZGRlbiBlbGVtZW50cyBhZnRlciBzZXR0aW5nIG9wYWNpdHkgdG8gMFxuXHRcdHJldHVybiB0aGlzLmZpbHRlciggaXNIaWRkZW5XaXRoaW5UcmVlICkuY3NzKCBcIm9wYWNpdHlcIiwgMCApLnNob3coKVxuXG5cdFx0XHQvLyBBbmltYXRlIHRvIHRoZSB2YWx1ZSBzcGVjaWZpZWRcblx0XHRcdC5lbmQoKS5hbmltYXRlKCB7IG9wYWNpdHk6IHRvIH0sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XG5cdH0sXG5cdGFuaW1hdGU6IGZ1bmN0aW9uKCBwcm9wLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHtcblx0XHR2YXIgZW1wdHkgPSBqUXVlcnkuaXNFbXB0eU9iamVjdCggcHJvcCApLFxuXHRcdFx0b3B0YWxsID0galF1ZXJ5LnNwZWVkKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApLFxuXHRcdFx0ZG9BbmltYXRpb24gPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvLyBPcGVyYXRlIG9uIGEgY29weSBvZiBwcm9wIHNvIHBlci1wcm9wZXJ0eSBlYXNpbmcgd29uJ3QgYmUgbG9zdFxuXHRcdFx0XHR2YXIgYW5pbSA9IEFuaW1hdGlvbiggdGhpcywgalF1ZXJ5LmV4dGVuZCgge30sIHByb3AgKSwgb3B0YWxsICk7XG5cblx0XHRcdFx0Ly8gRW1wdHkgYW5pbWF0aW9ucywgb3IgZmluaXNoaW5nIHJlc29sdmVzIGltbWVkaWF0ZWx5XG5cdFx0XHRcdGlmICggZW1wdHkgfHwgZGF0YVByaXYuZ2V0KCB0aGlzLCBcImZpbmlzaFwiICkgKSB7XG5cdFx0XHRcdFx0YW5pbS5zdG9wKCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRkb0FuaW1hdGlvbi5maW5pc2ggPSBkb0FuaW1hdGlvbjtcblxuXHRcdHJldHVybiBlbXB0eSB8fCBvcHRhbGwucXVldWUgPT09IGZhbHNlID9cblx0XHRcdHRoaXMuZWFjaCggZG9BbmltYXRpb24gKSA6XG5cdFx0XHR0aGlzLnF1ZXVlKCBvcHRhbGwucXVldWUsIGRvQW5pbWF0aW9uICk7XG5cdH0sXG5cdHN0b3A6IGZ1bmN0aW9uKCB0eXBlLCBjbGVhclF1ZXVlLCBnb3RvRW5kICkge1xuXHRcdHZhciBzdG9wUXVldWUgPSBmdW5jdGlvbiggaG9va3MgKSB7XG5cdFx0XHR2YXIgc3RvcCA9IGhvb2tzLnN0b3A7XG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdHN0b3AoIGdvdG9FbmQgKTtcblx0XHR9O1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGdvdG9FbmQgPSBjbGVhclF1ZXVlO1xuXHRcdFx0Y2xlYXJRdWV1ZSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGNsZWFyUXVldWUgKSB7XG5cdFx0XHR0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBkZXF1ZXVlID0gdHJ1ZSxcblx0XHRcdFx0aW5kZXggPSB0eXBlICE9IG51bGwgJiYgdHlwZSArIFwicXVldWVIb29rc1wiLFxuXHRcdFx0XHR0aW1lcnMgPSBqUXVlcnkudGltZXJzLFxuXHRcdFx0XHRkYXRhID0gZGF0YVByaXYuZ2V0KCB0aGlzICk7XG5cblx0XHRcdGlmICggaW5kZXggKSB7XG5cdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgKSB7XG5cdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvciAoIGluZGV4IGluIGRhdGEgKSB7XG5cdFx0XHRcdFx0aWYgKCBkYXRhWyBpbmRleCBdICYmIGRhdGFbIGluZGV4IF0uc3RvcCAmJiBycnVuLnRlc3QoIGluZGV4ICkgKSB7XG5cdFx0XHRcdFx0XHRzdG9wUXVldWUoIGRhdGFbIGluZGV4IF0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJlxuXHRcdFx0XHRcdCggdHlwZSA9PSBudWxsIHx8IHRpbWVyc1sgaW5kZXggXS5xdWV1ZSA9PT0gdHlwZSApICkge1xuXG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggZ290b0VuZCApO1xuXHRcdFx0XHRcdGRlcXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXJ0IHRoZSBuZXh0IGluIHRoZSBxdWV1ZSBpZiB0aGUgbGFzdCBzdGVwIHdhc24ndCBmb3JjZWQuXG5cdFx0XHQvLyBUaW1lcnMgY3VycmVudGx5IHdpbGwgY2FsbCB0aGVpciBjb21wbGV0ZSBjYWxsYmFja3MsIHdoaWNoXG5cdFx0XHQvLyB3aWxsIGRlcXVldWUgYnV0IG9ubHkgaWYgdGhleSB3ZXJlIGdvdG9FbmQuXG5cdFx0XHRpZiAoIGRlcXVldWUgfHwgIWdvdG9FbmQgKSB7XG5cdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXHRmaW5pc2g6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdGlmICggdHlwZSAhPT0gZmFsc2UgKSB7XG5cdFx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGluZGV4LFxuXHRcdFx0XHRkYXRhID0gZGF0YVByaXYuZ2V0KCB0aGlzICksXG5cdFx0XHRcdHF1ZXVlID0gZGF0YVsgdHlwZSArIFwicXVldWVcIiBdLFxuXHRcdFx0XHRob29rcyA9IGRhdGFbIHR5cGUgKyBcInF1ZXVlSG9va3NcIiBdLFxuXHRcdFx0XHR0aW1lcnMgPSBqUXVlcnkudGltZXJzLFxuXHRcdFx0XHRsZW5ndGggPSBxdWV1ZSA/IHF1ZXVlLmxlbmd0aCA6IDA7XG5cblx0XHRcdC8vIEVuYWJsZSBmaW5pc2hpbmcgZmxhZyBvbiBwcml2YXRlIGRhdGFcblx0XHRcdGRhdGEuZmluaXNoID0gdHJ1ZTtcblxuXHRcdFx0Ly8gRW1wdHkgdGhlIHF1ZXVlIGZpcnN0XG5cdFx0XHRqUXVlcnkucXVldWUoIHRoaXMsIHR5cGUsIFtdICk7XG5cblx0XHRcdGlmICggaG9va3MgJiYgaG9va3Muc3RvcCApIHtcblx0XHRcdFx0aG9va3Muc3RvcC5jYWxsKCB0aGlzLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIExvb2sgZm9yIGFueSBhY3RpdmUgYW5pbWF0aW9ucywgYW5kIGZpbmlzaCB0aGVtXG5cdFx0XHRmb3IgKCBpbmRleCA9IHRpbWVycy5sZW5ndGg7IGluZGV4LS07ICkge1xuXHRcdFx0XHRpZiAoIHRpbWVyc1sgaW5kZXggXS5lbGVtID09PSB0aGlzICYmIHRpbWVyc1sgaW5kZXggXS5xdWV1ZSA9PT0gdHlwZSApIHtcblx0XHRcdFx0XHR0aW1lcnNbIGluZGV4IF0uYW5pbS5zdG9wKCB0cnVlICk7XG5cdFx0XHRcdFx0dGltZXJzLnNwbGljZSggaW5kZXgsIDEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBMb29rIGZvciBhbnkgYW5pbWF0aW9ucyBpbiB0aGUgb2xkIHF1ZXVlIGFuZCBmaW5pc2ggdGhlbVxuXHRcdFx0Zm9yICggaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdFx0aWYgKCBxdWV1ZVsgaW5kZXggXSAmJiBxdWV1ZVsgaW5kZXggXS5maW5pc2ggKSB7XG5cdFx0XHRcdFx0cXVldWVbIGluZGV4IF0uZmluaXNoLmNhbGwoIHRoaXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBUdXJuIG9mZiBmaW5pc2hpbmcgZmxhZ1xuXHRcdFx0ZGVsZXRlIGRhdGEuZmluaXNoO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcInRvZ2dsZVwiLCBcInNob3dcIiwgXCJoaWRlXCIgXSwgZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXHR2YXIgY3NzRm4gPSBqUXVlcnkuZm5bIG5hbWUgXTtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHNwZWVkID09IG51bGwgfHwgdHlwZW9mIHNwZWVkID09PSBcImJvb2xlYW5cIiA/XG5cdFx0XHRjc3NGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICkgOlxuXHRcdFx0dGhpcy5hbmltYXRlKCBnZW5GeCggbmFtZSwgdHJ1ZSApLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9O1xufSApO1xuXG4vLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3RvbSBhbmltYXRpb25zXG5qUXVlcnkuZWFjaCgge1xuXHRzbGlkZURvd246IGdlbkZ4KCBcInNob3dcIiApLFxuXHRzbGlkZVVwOiBnZW5GeCggXCJoaWRlXCIgKSxcblx0c2xpZGVUb2dnbGU6IGdlbkZ4KCBcInRvZ2dsZVwiICksXG5cdGZhZGVJbjogeyBvcGFjaXR5OiBcInNob3dcIiB9LFxuXHRmYWRlT3V0OiB7IG9wYWNpdHk6IFwiaGlkZVwiIH0sXG5cdGZhZGVUb2dnbGU6IHsgb3BhY2l0eTogXCJ0b2dnbGVcIiB9XG59LCBmdW5jdGlvbiggbmFtZSwgcHJvcHMgKSB7XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiB0aGlzLmFuaW1hdGUoIHByb3BzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9O1xufSApO1xuXG5qUXVlcnkudGltZXJzID0gW107XG5qUXVlcnkuZngudGljayA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgdGltZXIsXG5cdFx0aSA9IDAsXG5cdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycztcblxuXHRmeE5vdyA9IERhdGUubm93KCk7XG5cblx0Zm9yICggOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkge1xuXHRcdHRpbWVyID0gdGltZXJzWyBpIF07XG5cblx0XHQvLyBSdW4gdGhlIHRpbWVyIGFuZCBzYWZlbHkgcmVtb3ZlIGl0IHdoZW4gZG9uZSAoYWxsb3dpbmcgZm9yIGV4dGVybmFsIHJlbW92YWwpXG5cdFx0aWYgKCAhdGltZXIoKSAmJiB0aW1lcnNbIGkgXSA9PT0gdGltZXIgKSB7XG5cdFx0XHR0aW1lcnMuc3BsaWNlKCBpLS0sIDEgKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoICF0aW1lcnMubGVuZ3RoICkge1xuXHRcdGpRdWVyeS5meC5zdG9wKCk7XG5cdH1cblx0ZnhOb3cgPSB1bmRlZmluZWQ7XG59O1xuXG5qUXVlcnkuZngudGltZXIgPSBmdW5jdGlvbiggdGltZXIgKSB7XG5cdGpRdWVyeS50aW1lcnMucHVzaCggdGltZXIgKTtcblx0alF1ZXJ5LmZ4LnN0YXJ0KCk7XG59O1xuXG5qUXVlcnkuZnguaW50ZXJ2YWwgPSAxMztcbmpRdWVyeS5meC5zdGFydCA9IGZ1bmN0aW9uKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aW5Qcm9ncmVzcyA9IHRydWU7XG5cdHNjaGVkdWxlKCk7XG59O1xuXG5qUXVlcnkuZnguc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRpblByb2dyZXNzID0gbnVsbDtcbn07XG5cbmpRdWVyeS5meC5zcGVlZHMgPSB7XG5cdHNsb3c6IDYwMCxcblx0ZmFzdDogMjAwLFxuXG5cdC8vIERlZmF1bHQgc3BlZWRcblx0X2RlZmF1bHQ6IDQwMFxufTtcblxuXG4vLyBCYXNlZCBvZmYgb2YgdGhlIHBsdWdpbiBieSBDbGludCBIZWxmZXJzLCB3aXRoIHBlcm1pc3Npb24uXG5qUXVlcnkuZm4uZGVsYXkgPSBmdW5jdGlvbiggdGltZSwgdHlwZSApIHtcblx0dGltZSA9IGpRdWVyeS5meCA/IGpRdWVyeS5meC5zcGVlZHNbIHRpbWUgXSB8fCB0aW1lIDogdGltZTtcblx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXG5cdHJldHVybiB0aGlzLnF1ZXVlKCB0eXBlLCBmdW5jdGlvbiggbmV4dCwgaG9va3MgKSB7XG5cdFx0dmFyIHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCggbmV4dCwgdGltZSApO1xuXHRcdGhvb2tzLnN0b3AgPSBmdW5jdGlvbigpIHtcblx0XHRcdHdpbmRvdy5jbGVhclRpbWVvdXQoIHRpbWVvdXQgKTtcblx0XHR9O1xuXHR9ICk7XG59O1xuXG5cbiggZnVuY3Rpb24oKSB7XG5cdHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApLFxuXHRcdHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwic2VsZWN0XCIgKSxcblx0XHRvcHQgPSBzZWxlY3QuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwib3B0aW9uXCIgKSApO1xuXG5cdGlucHV0LnR5cGUgPSBcImNoZWNrYm94XCI7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMyBvbmx5XG5cdC8vIERlZmF1bHQgdmFsdWUgZm9yIGEgY2hlY2tib3ggc2hvdWxkIGJlIFwib25cIlxuXHRzdXBwb3J0LmNoZWNrT24gPSBpbnB1dC52YWx1ZSAhPT0gXCJcIjtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gTXVzdCBhY2Nlc3Mgc2VsZWN0ZWRJbmRleCB0byBtYWtlIGRlZmF1bHQgb3B0aW9ucyBzZWxlY3Rcblx0c3VwcG9ydC5vcHRTZWxlY3RlZCA9IG9wdC5zZWxlY3RlZDtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcblx0Ly8gQW4gaW5wdXQgbG9zZXMgaXRzIHZhbHVlIGFmdGVyIGJlY29taW5nIGEgcmFkaW9cblx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0aW5wdXQudmFsdWUgPSBcInRcIjtcblx0aW5wdXQudHlwZSA9IFwicmFkaW9cIjtcblx0c3VwcG9ydC5yYWRpb1ZhbHVlID0gaW5wdXQudmFsdWUgPT09IFwidFwiO1xufSApKCk7XG5cblxudmFyIGJvb2xIb29rLFxuXHRhdHRySGFuZGxlID0galF1ZXJ5LmV4cHIuYXR0ckhhbmRsZTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRhdHRyOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgalF1ZXJ5LmF0dHIsIG5hbWUsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApO1xuXHR9LFxuXG5cdHJlbW92ZUF0dHI6IGZ1bmN0aW9uKCBuYW1lICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIHRoaXMsIG5hbWUgKTtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmV4dGVuZCgge1xuXHRhdHRyOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUgKSB7XG5cdFx0dmFyIHJldCwgaG9va3MsXG5cdFx0XHRuVHlwZSA9IGVsZW0ubm9kZVR5cGU7XG5cblx0XHQvLyBEb24ndCBnZXQvc2V0IGF0dHJpYnV0ZXMgb24gdGV4dCwgY29tbWVudCBhbmQgYXR0cmlidXRlIG5vZGVzXG5cdFx0aWYgKCBuVHlwZSA9PT0gMyB8fCBuVHlwZSA9PT0gOCB8fCBuVHlwZSA9PT0gMiApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBGYWxsYmFjayB0byBwcm9wIHdoZW4gYXR0cmlidXRlcyBhcmUgbm90IHN1cHBvcnRlZFxuXHRcdGlmICggdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlID09PSBcInVuZGVmaW5lZFwiICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5wcm9wKCBlbGVtLCBuYW1lLCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdC8vIEF0dHJpYnV0ZSBob29rcyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgbG93ZXJjYXNlIHZlcnNpb25cblx0XHQvLyBHcmFiIG5lY2Vzc2FyeSBob29rIGlmIG9uZSBpcyBkZWZpbmVkXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5hdHRySG9va3NbIG5hbWUudG9Mb3dlckNhc2UoKSBdIHx8XG5cdFx0XHRcdCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC50ZXN0KCBuYW1lICkgPyBib29sSG9vayA6IHVuZGVmaW5lZCApO1xuXHRcdH1cblxuXHRcdGlmICggdmFsdWUgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdmFsdWUgPT09IG51bGwgKSB7XG5cdFx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBob29rcyAmJiBcInNldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApICkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIHZhbHVlICsgXCJcIiApO1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJiAoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgbmFtZSApICkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblxuXHRcdHJldCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdC8vIE5vbi1leGlzdGVudCBhdHRyaWJ1dGVzIHJldHVybiBudWxsLCB3ZSBub3JtYWxpemUgdG8gdW5kZWZpbmVkXG5cdFx0cmV0dXJuIHJldCA9PSBudWxsID8gdW5kZWZpbmVkIDogcmV0O1xuXHR9LFxuXG5cdGF0dHJIb29rczoge1xuXHRcdHR5cGU6IHtcblx0XHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0XHRpZiAoICFzdXBwb3J0LnJhZGlvVmFsdWUgJiYgdmFsdWUgPT09IFwicmFkaW9cIiAmJlxuXHRcdFx0XHRcdG5vZGVOYW1lKCBlbGVtLCBcImlucHV0XCIgKSApIHtcblx0XHRcdFx0XHR2YXIgdmFsID0gZWxlbS52YWx1ZTtcblx0XHRcdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIHZhbHVlICk7XG5cdFx0XHRcdFx0aWYgKCB2YWwgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLnZhbHVlID0gdmFsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdHZhciBuYW1lLFxuXHRcdFx0aSA9IDAsXG5cblx0XHRcdC8vIEF0dHJpYnV0ZSBuYW1lcyBjYW4gY29udGFpbiBub24tSFRNTCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnNcblx0XHRcdC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2F0dHJpYnV0ZXMtMlxuXHRcdFx0YXR0ck5hbWVzID0gdmFsdWUgJiYgdmFsdWUubWF0Y2goIHJub3RodG1sd2hpdGUgKTtcblxuXHRcdGlmICggYXR0ck5hbWVzICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHR3aGlsZSAoICggbmFtZSA9IGF0dHJOYW1lc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0ZWxlbS5yZW1vdmVBdHRyaWJ1dGUoIG5hbWUgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0gKTtcblxuLy8gSG9va3MgZm9yIGJvb2xlYW4gYXR0cmlidXRlc1xuYm9vbEhvb2sgPSB7XG5cdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBuYW1lICkge1xuXHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXG5cdFx0XHQvLyBSZW1vdmUgYm9vbGVhbiBhdHRyaWJ1dGVzIHdoZW4gc2V0IHRvIGZhbHNlXG5cdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggZWxlbSwgbmFtZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgbmFtZSApO1xuXHRcdH1cblx0XHRyZXR1cm4gbmFtZTtcblx0fVxufTtcblxualF1ZXJ5LmVhY2goIGpRdWVyeS5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKCAvXFx3Ky9nICksIGZ1bmN0aW9uKCBfaSwgbmFtZSApIHtcblx0dmFyIGdldHRlciA9IGF0dHJIYW5kbGVbIG5hbWUgXSB8fCBqUXVlcnkuZmluZC5hdHRyO1xuXG5cdGF0dHJIYW5kbGVbIG5hbWUgXSA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHR2YXIgcmV0LCBoYW5kbGUsXG5cdFx0XHRsb3dlcmNhc2VOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0aWYgKCAhaXNYTUwgKSB7XG5cblx0XHRcdC8vIEF2b2lkIGFuIGluZmluaXRlIGxvb3AgYnkgdGVtcG9yYXJpbHkgcmVtb3ZpbmcgdGhpcyBmdW5jdGlvbiBmcm9tIHRoZSBnZXR0ZXJcblx0XHRcdGhhbmRsZSA9IGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXTtcblx0XHRcdGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXSA9IHJldDtcblx0XHRcdHJldCA9IGdldHRlciggZWxlbSwgbmFtZSwgaXNYTUwgKSAhPSBudWxsID9cblx0XHRcdFx0bG93ZXJjYXNlTmFtZSA6XG5cdFx0XHRcdG51bGw7XG5cdFx0XHRhdHRySGFuZGxlWyBsb3dlcmNhc2VOYW1lIF0gPSBoYW5kbGU7XG5cdFx0fVxuXHRcdHJldHVybiByZXQ7XG5cdH07XG59ICk7XG5cblxuXG5cbnZhciByZm9jdXNhYmxlID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxcblx0cmNsaWNrYWJsZSA9IC9eKD86YXxhcmVhKSQvaTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRwcm9wOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgalF1ZXJ5LnByb3AsIG5hbWUsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApO1xuXHR9LFxuXG5cdHJlbW92ZVByb3A6IGZ1bmN0aW9uKCBuYW1lICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGVsZXRlIHRoaXNbIGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZSBdO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHByb3A6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHR2YXIgcmV0LCBob29rcyxcblx0XHRcdG5UeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRcdC8vIERvbid0IGdldC9zZXQgcHJvcGVydGllcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcblx0XHRpZiAoIG5UeXBlID09PSAzIHx8IG5UeXBlID09PSA4IHx8IG5UeXBlID09PSAyICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggblR5cGUgIT09IDEgfHwgIWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBGaXggbmFtZSBhbmQgYXR0YWNoIGhvb2tzXG5cdFx0XHRuYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lO1xuXHRcdFx0aG9va3MgPSBqUXVlcnkucHJvcEhvb2tzWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCBob29rcyAmJiBcInNldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApICkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuICggZWxlbVsgbmFtZSBdID0gdmFsdWUgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgKCByZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSApICE9PSBudWxsICkge1xuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbVsgbmFtZSBdO1xuXHR9LFxuXG5cdHByb3BIb29rczoge1xuXHRcdHRhYkluZGV4OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0XHRcdFx0Ly8gZWxlbS50YWJJbmRleCBkb2Vzbid0IGFsd2F5cyByZXR1cm4gdGhlXG5cdFx0XHRcdC8vIGNvcnJlY3QgdmFsdWUgd2hlbiBpdCBoYXNuJ3QgYmVlbiBleHBsaWNpdGx5IHNldFxuXHRcdFx0XHQvLyBVc2UgcHJvcGVyIGF0dHJpYnV0ZSByZXRyaWV2YWwgKHRyYWMtMTIwNzIpXG5cdFx0XHRcdHZhciB0YWJpbmRleCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIFwidGFiaW5kZXhcIiApO1xuXG5cdFx0XHRcdGlmICggdGFiaW5kZXggKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhcnNlSW50KCB0YWJpbmRleCwgMTAgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRyZm9jdXNhYmxlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSB8fFxuXHRcdFx0XHRcdHJjbGlja2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApICYmXG5cdFx0XHRcdFx0ZWxlbS5ocmVmXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRwcm9wRml4OiB7XG5cdFx0XCJmb3JcIjogXCJodG1sRm9yXCIsXG5cdFx0XCJjbGFzc1wiOiBcImNsYXNzTmFtZVwiXG5cdH1cbn0gKTtcblxuLy8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG4vLyBBY2Nlc3NpbmcgdGhlIHNlbGVjdGVkSW5kZXggcHJvcGVydHlcbi8vIGZvcmNlcyB0aGUgYnJvd3NlciB0byByZXNwZWN0IHNldHRpbmcgc2VsZWN0ZWRcbi8vIG9uIHRoZSBvcHRpb25cbi8vIFRoZSBnZXR0ZXIgZW5zdXJlcyBhIGRlZmF1bHQgb3B0aW9uIGlzIHNlbGVjdGVkXG4vLyB3aGVuIGluIGFuIG9wdGdyb3VwXG4vLyBlc2xpbnQgcnVsZSBcIm5vLXVudXNlZC1leHByZXNzaW9uc1wiIGlzIGRpc2FibGVkIGZvciB0aGlzIGNvZGVcbi8vIHNpbmNlIGl0IGNvbnNpZGVycyBzdWNoIGFjY2Vzc2lvbnMgbm9vcFxuaWYgKCAhc3VwcG9ydC5vcHRTZWxlY3RlZCApIHtcblx0alF1ZXJ5LnByb3BIb29rcy5zZWxlY3RlZCA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvKiBlc2xpbnQgbm8tdW51c2VkLWV4cHJlc3Npb25zOiBcIm9mZlwiICovXG5cblx0XHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRpZiAoIHBhcmVudCAmJiBwYXJlbnQucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0cGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcblx0XHRcdH1cblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH0sXG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0LyogZXNsaW50IG5vLXVudXNlZC1leHByZXNzaW9uczogXCJvZmZcIiAqL1xuXG5cdFx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cdFx0XHRcdHBhcmVudC5zZWxlY3RlZEluZGV4O1xuXG5cdFx0XHRcdGlmICggcGFyZW50LnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdFx0cGFyZW50LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxualF1ZXJ5LmVhY2goIFtcblx0XCJ0YWJJbmRleFwiLFxuXHRcInJlYWRPbmx5XCIsXG5cdFwibWF4TGVuZ3RoXCIsXG5cdFwiY2VsbFNwYWNpbmdcIixcblx0XCJjZWxsUGFkZGluZ1wiLFxuXHRcInJvd1NwYW5cIixcblx0XCJjb2xTcGFuXCIsXG5cdFwidXNlTWFwXCIsXG5cdFwiZnJhbWVCb3JkZXJcIixcblx0XCJjb250ZW50RWRpdGFibGVcIlxuXSwgZnVuY3Rpb24oKSB7XG5cdGpRdWVyeS5wcm9wRml4WyB0aGlzLnRvTG93ZXJDYXNlKCkgXSA9IHRoaXM7XG59ICk7XG5cblxuXG5cblx0Ly8gU3RyaXAgYW5kIGNvbGxhcHNlIHdoaXRlc3BhY2UgYWNjb3JkaW5nIHRvIEhUTUwgc3BlY1xuXHQvLyBodHRwczovL2luZnJhLnNwZWMud2hhdHdnLm9yZy8jc3RyaXAtYW5kLWNvbGxhcHNlLWFzY2lpLXdoaXRlc3BhY2Vcblx0ZnVuY3Rpb24gc3RyaXBBbmRDb2xsYXBzZSggdmFsdWUgKSB7XG5cdFx0dmFyIHRva2VucyA9IHZhbHVlLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW107XG5cdFx0cmV0dXJuIHRva2Vucy5qb2luKCBcIiBcIiApO1xuXHR9XG5cblxuZnVuY3Rpb24gZ2V0Q2xhc3MoIGVsZW0gKSB7XG5cdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSAmJiBlbGVtLmdldEF0dHJpYnV0ZSggXCJjbGFzc1wiICkgfHwgXCJcIjtcbn1cblxuZnVuY3Rpb24gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICkge1xuXHRpZiAoIEFycmF5LmlzQXJyYXkoIHZhbHVlICkgKSB7XG5cdFx0cmV0dXJuIHZhbHVlO1xuXHR9XG5cdGlmICggdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdO1xuXHR9XG5cdHJldHVybiBbXTtcbn1cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRhZGRDbGFzczogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBjbGFzc05hbWVzLCBjdXIsIGN1clZhbHVlLCBjbGFzc05hbWUsIGksIGZpbmFsVmFsdWU7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuYWRkQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGNsYXNzTmFtZXMgPSBjbGFzc2VzVG9BcnJheSggdmFsdWUgKTtcblxuXHRcdGlmICggY2xhc3NOYW1lcy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0Y3VyVmFsdWUgPSBnZXRDbGFzcyggdGhpcyApO1xuXHRcdFx0XHRjdXIgPSB0aGlzLm5vZGVUeXBlID09PSAxICYmICggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBjdXJWYWx1ZSApICsgXCIgXCIgKTtcblxuXHRcdFx0XHRpZiAoIGN1ciApIHtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGNsYXNzTmFtZXMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpIF07XG5cdFx0XHRcdFx0XHRpZiAoIGN1ci5pbmRleE9mKCBcIiBcIiArIGNsYXNzTmFtZSArIFwiIFwiICkgPCAwICkge1xuXHRcdFx0XHRcdFx0XHRjdXIgKz0gY2xhc3NOYW1lICsgXCIgXCI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gT25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0gc3RyaXBBbmRDb2xsYXBzZSggY3VyICk7XG5cdFx0XHRcdFx0aWYgKCBjdXJWYWx1ZSAhPT0gZmluYWxWYWx1ZSApIHtcblx0XHRcdFx0XHRcdHRoaXMuc2V0QXR0cmlidXRlKCBcImNsYXNzXCIsIGZpbmFsVmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRyZW1vdmVDbGFzczogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBjbGFzc05hbWVzLCBjdXIsIGN1clZhbHVlLCBjbGFzc05hbWUsIGksIGZpbmFsVmFsdWU7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hdHRyKCBcImNsYXNzXCIsIFwiXCIgKTtcblx0XHR9XG5cblx0XHRjbGFzc05hbWVzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRpZiAoIGNsYXNzTmFtZXMubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGN1clZhbHVlID0gZ2V0Q2xhc3MoIHRoaXMgKTtcblxuXHRcdFx0XHQvLyBUaGlzIGV4cHJlc3Npb24gaXMgaGVyZSBmb3IgYmV0dGVyIGNvbXByZXNzaWJpbGl0eSAoc2VlIGFkZENsYXNzKVxuXHRcdFx0XHRjdXIgPSB0aGlzLm5vZGVUeXBlID09PSAxICYmICggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBjdXJWYWx1ZSApICsgXCIgXCIgKTtcblxuXHRcdFx0XHRpZiAoIGN1ciApIHtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGNsYXNzTmFtZXMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSAqYWxsKiBpbnN0YW5jZXNcblx0XHRcdFx0XHRcdHdoaWxlICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhc3NOYW1lICsgXCIgXCIgKSA+IC0xICkge1xuXHRcdFx0XHRcdFx0XHRjdXIgPSBjdXIucmVwbGFjZSggXCIgXCIgKyBjbGFzc05hbWUgKyBcIiBcIiwgXCIgXCIgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUsIHN0YXRlVmFsICkge1xuXHRcdHZhciBjbGFzc05hbWVzLCBjbGFzc05hbWUsIGksIHNlbGYsXG5cdFx0XHR0eXBlID0gdHlwZW9mIHZhbHVlLFxuXHRcdFx0aXNWYWxpZFZhbHVlID0gdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCB2YWx1ZSApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnRvZ2dsZUNsYXNzKFxuXHRcdFx0XHRcdHZhbHVlLmNhbGwoIHRoaXMsIGksIGdldENsYXNzKCB0aGlzICksIHN0YXRlVmFsICksXG5cdFx0XHRcdFx0c3RhdGVWYWxcblx0XHRcdFx0KTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRpZiAoIHR5cGVvZiBzdGF0ZVZhbCA9PT0gXCJib29sZWFuXCIgJiYgaXNWYWxpZFZhbHVlICkge1xuXHRcdFx0cmV0dXJuIHN0YXRlVmFsID8gdGhpcy5hZGRDbGFzcyggdmFsdWUgKSA6IHRoaXMucmVtb3ZlQ2xhc3MoIHZhbHVlICk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NOYW1lcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzVmFsaWRWYWx1ZSApIHtcblxuXHRcdFx0XHQvLyBUb2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lc1xuXHRcdFx0XHRzZWxmID0galF1ZXJ5KCB0aGlzICk7XG5cblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBjbGFzc05hbWVzLmxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRcdGNsYXNzTmFtZSA9IGNsYXNzTmFtZXNbIGkgXTtcblxuXHRcdFx0XHRcdC8vIENoZWNrIGVhY2ggY2xhc3NOYW1lIGdpdmVuLCBzcGFjZSBzZXBhcmF0ZWQgbGlzdFxuXHRcdFx0XHRcdGlmICggc2VsZi5oYXNDbGFzcyggY2xhc3NOYW1lICkgKSB7XG5cdFx0XHRcdFx0XHRzZWxmLnJlbW92ZUNsYXNzKCBjbGFzc05hbWUgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0c2VsZi5hZGRDbGFzcyggY2xhc3NOYW1lICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdC8vIFRvZ2dsZSB3aG9sZSBjbGFzcyBuYW1lXG5cdFx0XHR9IGVsc2UgaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGUgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdFx0XHRjbGFzc05hbWUgPSBnZXRDbGFzcyggdGhpcyApO1xuXHRcdFx0XHRpZiAoIGNsYXNzTmFtZSApIHtcblxuXHRcdFx0XHRcdC8vIFN0b3JlIGNsYXNzTmFtZSBpZiBzZXRcblx0XHRcdFx0XHRkYXRhUHJpdi5zZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiLCBjbGFzc05hbWUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIElmIHRoZSBlbGVtZW50IGhhcyBhIGNsYXNzIG5hbWUgb3IgaWYgd2UncmUgcGFzc2VkIGBmYWxzZWAsXG5cdFx0XHRcdC8vIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBjbGFzc25hbWUgKGlmIHRoZXJlIHdhcyBvbmUsIHRoZSBhYm92ZSBzYXZlZCBpdCkuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBicmluZyBiYWNrIHdoYXRldmVyIHdhcyBwcmV2aW91c2x5IHNhdmVkIChpZiBhbnl0aGluZyksXG5cdFx0XHRcdC8vIGZhbGxpbmcgYmFjayB0byB0aGUgZW1wdHkgc3RyaW5nIGlmIG5vdGhpbmcgd2FzIHN0b3JlZC5cblx0XHRcdFx0aWYgKCB0aGlzLnNldEF0dHJpYnV0ZSApIHtcblx0XHRcdFx0XHR0aGlzLnNldEF0dHJpYnV0ZSggXCJjbGFzc1wiLFxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lIHx8IHZhbHVlID09PSBmYWxzZSA/XG5cdFx0XHRcdFx0XHRcdFwiXCIgOlxuXHRcdFx0XHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiICkgfHwgXCJcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0aGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgY2xhc3NOYW1lLCBlbGVtLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRjbGFzc05hbWUgPSBcIiBcIiArIHNlbGVjdG9yICsgXCIgXCI7XG5cdFx0d2hpbGUgKCAoIGVsZW0gPSB0aGlzWyBpKysgXSApICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdCggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBnZXRDbGFzcyggZWxlbSApICkgKyBcIiBcIiApLmluZGV4T2YoIGNsYXNzTmFtZSApID4gLTEgKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufSApO1xuXG5cblxuXG52YXIgcnJldHVybiA9IC9cXHIvZztcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHR2YWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgaG9va3MsIHJldCwgdmFsdWVJc0Z1bmN0aW9uLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXTtcblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRcdGhvb2tzID0galF1ZXJ5LnZhbEhvb2tzWyBlbGVtLnR5cGUgXSB8fFxuXHRcdFx0XHRcdGpRdWVyeS52YWxIb29rc1sgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdFx0aWYgKCBob29rcyAmJlxuXHRcdFx0XHRcdFwiZ2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0XHQoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgXCJ2YWx1ZVwiICkgKSAhPT0gdW5kZWZpbmVkXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXQgPSBlbGVtLnZhbHVlO1xuXG5cdFx0XHRcdC8vIEhhbmRsZSBtb3N0IGNvbW1vbiBzdHJpbmcgY2FzZXNcblx0XHRcdFx0aWYgKCB0eXBlb2YgcmV0ID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0XHRcdHJldHVybiByZXQucmVwbGFjZSggcnJldHVybiwgXCJcIiApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSGFuZGxlIGNhc2VzIHdoZXJlIHZhbHVlIGlzIG51bGwvdW5kZWYgb3IgbnVtYmVyXG5cdFx0XHRcdHJldHVybiByZXQgPT0gbnVsbCA/IFwiXCIgOiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YWx1ZUlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHR2YXIgdmFsO1xuXG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGksIGpRdWVyeSggdGhpcyApLnZhbCgpICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YWwgPSB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVHJlYXQgbnVsbC91bmRlZmluZWQgYXMgXCJcIjsgY29udmVydCBudW1iZXJzIHRvIHN0cmluZ1xuXHRcdFx0aWYgKCB2YWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dmFsID0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0dmFsICs9IFwiXCI7XG5cblx0XHRcdH0gZWxzZSBpZiAoIEFycmF5LmlzQXJyYXkoIHZhbCApICkge1xuXHRcdFx0XHR2YWwgPSBqUXVlcnkubWFwKCB2YWwsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gdmFsdWUgPT0gbnVsbCA/IFwiXCIgOiB2YWx1ZSArIFwiXCI7XG5cdFx0XHRcdH0gKTtcblx0XHRcdH1cblxuXHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIHRoaXMudHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sgdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdC8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFsbCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nXG5cdFx0XHRpZiAoICFob29rcyB8fCAhKCBcInNldFwiIGluIGhvb2tzICkgfHwgaG9va3Muc2V0KCB0aGlzLCB2YWwsIFwidmFsdWVcIiApID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHRoaXMudmFsdWUgPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0dmFsSG9va3M6IHtcblx0XHRvcHRpb246IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdFx0dmFyIHZhbCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIFwidmFsdWVcIiApO1xuXHRcdFx0XHRyZXR1cm4gdmFsICE9IG51bGwgP1xuXHRcdFx0XHRcdHZhbCA6XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTEwIC0gMTEgb25seVxuXHRcdFx0XHRcdC8vIG9wdGlvbi50ZXh0IHRocm93cyBleGNlcHRpb25zICh0cmFjLTE0Njg2LCB0cmFjLTE0ODU4KVxuXHRcdFx0XHRcdC8vIFN0cmlwIGFuZCBjb2xsYXBzZSB3aGl0ZXNwYWNlXG5cdFx0XHRcdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jc3RyaXAtYW5kLWNvbGxhcHNlLXdoaXRlc3BhY2Vcblx0XHRcdFx0XHRzdHJpcEFuZENvbGxhcHNlKCBqUXVlcnkudGV4dCggZWxlbSApICk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRzZWxlY3Q6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciB2YWx1ZSwgb3B0aW9uLCBpLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0aW5kZXggPSBlbGVtLnNlbGVjdGVkSW5kZXgsXG5cdFx0XHRcdFx0b25lID0gZWxlbS50eXBlID09PSBcInNlbGVjdC1vbmVcIixcblx0XHRcdFx0XHR2YWx1ZXMgPSBvbmUgPyBudWxsIDogW10sXG5cdFx0XHRcdFx0bWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0aWYgKCBpbmRleCA8IDAgKSB7XG5cdFx0XHRcdFx0aSA9IG1heDtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGkgPSBvbmUgPyBpbmRleCA6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBzZWxlY3RlZCBvcHRpb25zXG5cdFx0XHRcdGZvciAoIDsgaSA8IG1heDsgaSsrICkge1xuXHRcdFx0XHRcdG9wdGlvbiA9IG9wdGlvbnNbIGkgXTtcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0Ly8gSUU4LTkgZG9lc24ndCB1cGRhdGUgc2VsZWN0ZWQgYWZ0ZXIgZm9ybSByZXNldCAodHJhYy0yNTUxKVxuXHRcdFx0XHRcdGlmICggKCBvcHRpb24uc2VsZWN0ZWQgfHwgaSA9PT0gaW5kZXggKSAmJlxuXG5cdFx0XHRcdFx0XHRcdC8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXBcblx0XHRcdFx0XHRcdFx0IW9wdGlvbi5kaXNhYmxlZCAmJlxuXHRcdFx0XHRcdFx0XHQoICFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fFxuXHRcdFx0XHRcdFx0XHRcdCFub2RlTmFtZSggb3B0aW9uLnBhcmVudE5vZGUsIFwib3B0Z3JvdXBcIiApICkgKSB7XG5cblx0XHRcdFx0XHRcdC8vIEdldCB0aGUgc3BlY2lmaWMgdmFsdWUgZm9yIHRoZSBvcHRpb25cblx0XHRcdFx0XHRcdHZhbHVlID0galF1ZXJ5KCBvcHRpb24gKS52YWwoKTtcblxuXHRcdFx0XHRcdFx0Ly8gV2UgZG9uJ3QgbmVlZCBhbiBhcnJheSBmb3Igb25lIHNlbGVjdHNcblx0XHRcdFx0XHRcdGlmICggb25lICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIE11bHRpLVNlbGVjdHMgcmV0dXJuIGFuIGFycmF5XG5cdFx0XHRcdFx0XHR2YWx1ZXMucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRcdHZhciBvcHRpb25TZXQsIG9wdGlvbixcblx0XHRcdFx0XHRvcHRpb25zID0gZWxlbS5vcHRpb25zLFxuXHRcdFx0XHRcdHZhbHVlcyA9IGpRdWVyeS5tYWtlQXJyYXkoIHZhbHVlICksXG5cdFx0XHRcdFx0aSA9IG9wdGlvbnMubGVuZ3RoO1xuXG5cdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdG9wdGlvbiA9IG9wdGlvbnNbIGkgXTtcblxuXHRcdFx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbmQtYXNzaWduICovXG5cblx0XHRcdFx0XHRpZiAoIG9wdGlvbi5zZWxlY3RlZCA9XG5cdFx0XHRcdFx0XHRqUXVlcnkuaW5BcnJheSggalF1ZXJ5LnZhbEhvb2tzLm9wdGlvbi5nZXQoIG9wdGlvbiApLCB2YWx1ZXMgKSA+IC0xXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvcHRpb25TZXQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8qIGVzbGludC1lbmFibGUgbm8tY29uZC1hc3NpZ24gKi9cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEZvcmNlIGJyb3dzZXJzIHRvIGJlaGF2ZSBjb25zaXN0ZW50bHkgd2hlbiBub24tbWF0Y2hpbmcgdmFsdWUgaXMgc2V0XG5cdFx0XHRcdGlmICggIW9wdGlvblNldCApIHtcblx0XHRcdFx0XHRlbGVtLnNlbGVjdGVkSW5kZXggPSAtMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgZ2V0dGVyL3NldHRlclxualF1ZXJ5LmVhY2goIFsgXCJyYWRpb1wiLCBcImNoZWNrYm94XCIgXSwgZnVuY3Rpb24oKSB7XG5cdGpRdWVyeS52YWxIb29rc1sgdGhpcyBdID0ge1xuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KCBlbGVtICkudmFsKCksIHZhbHVlICkgPiAtMSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0aWYgKCAhc3VwcG9ydC5jaGVja09uICkge1xuXHRcdGpRdWVyeS52YWxIb29rc1sgdGhpcyBdLmdldCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCBcInZhbHVlXCIgKSA9PT0gbnVsbCA/IFwib25cIiA6IGVsZW0udmFsdWU7XG5cdFx0fTtcblx0fVxufSApO1xuXG5cblxuXG4vLyBSZXR1cm4galF1ZXJ5IGZvciBhdHRyaWJ1dGVzLW9ubHkgaW5jbHVzaW9uXG52YXIgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb247XG5cbnZhciBub25jZSA9IHsgZ3VpZDogRGF0ZS5ub3coKSB9O1xuXG52YXIgcnF1ZXJ5ID0gKCAvXFw/LyApO1xuXG5cblxuLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZ1xualF1ZXJ5LnBhcnNlWE1MID0gZnVuY3Rpb24oIGRhdGEgKSB7XG5cdHZhciB4bWwsIHBhcnNlckVycm9yRWxlbTtcblx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIElFIHRocm93cyBvbiBwYXJzZUZyb21TdHJpbmcgd2l0aCBpbnZhbGlkIGlucHV0LlxuXHR0cnkge1xuXHRcdHhtbCA9ICggbmV3IHdpbmRvdy5ET01QYXJzZXIoKSApLnBhcnNlRnJvbVN0cmluZyggZGF0YSwgXCJ0ZXh0L3htbFwiICk7XG5cdH0gY2F0Y2ggKCBlICkge31cblxuXHRwYXJzZXJFcnJvckVsZW0gPSB4bWwgJiYgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcInBhcnNlcmVycm9yXCIgKVsgMCBdO1xuXHRpZiAoICF4bWwgfHwgcGFyc2VyRXJyb3JFbGVtICkge1xuXHRcdGpRdWVyeS5lcnJvciggXCJJbnZhbGlkIFhNTDogXCIgKyAoXG5cdFx0XHRwYXJzZXJFcnJvckVsZW0gP1xuXHRcdFx0XHRqUXVlcnkubWFwKCBwYXJzZXJFcnJvckVsZW0uY2hpbGROb2RlcywgZnVuY3Rpb24oIGVsICkge1xuXHRcdFx0XHRcdHJldHVybiBlbC50ZXh0Q29udGVudDtcblx0XHRcdFx0fSApLmpvaW4oIFwiXFxuXCIgKSA6XG5cdFx0XHRcdGRhdGFcblx0XHQpICk7XG5cdH1cblx0cmV0dXJuIHhtbDtcbn07XG5cblxudmFyIHJmb2N1c01vcnBoID0gL14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLFxuXHRzdG9wUHJvcGFnYXRpb25DYWxsYmFjayA9IGZ1bmN0aW9uKCBlICkge1xuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH07XG5cbmpRdWVyeS5leHRlbmQoIGpRdWVyeS5ldmVudCwge1xuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCBldmVudCwgZGF0YSwgZWxlbSwgb25seUhhbmRsZXJzICkge1xuXG5cdFx0dmFyIGksIGN1ciwgdG1wLCBidWJibGVUeXBlLCBvbnR5cGUsIGhhbmRsZSwgc3BlY2lhbCwgbGFzdEVsZW1lbnQsXG5cdFx0XHRldmVudFBhdGggPSBbIGVsZW0gfHwgZG9jdW1lbnQgXSxcblx0XHRcdHR5cGUgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwidHlwZVwiICkgPyBldmVudC50eXBlIDogZXZlbnQsXG5cdFx0XHRuYW1lc3BhY2VzID0gaGFzT3duLmNhbGwoIGV2ZW50LCBcIm5hbWVzcGFjZVwiICkgPyBldmVudC5uYW1lc3BhY2Uuc3BsaXQoIFwiLlwiICkgOiBbXTtcblxuXHRcdGN1ciA9IGxhc3RFbGVtZW50ID0gdG1wID0gZWxlbSA9IGVsZW0gfHwgZG9jdW1lbnQ7XG5cblx0XHQvLyBEb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIGZvY3VzL2JsdXIgbW9ycGhzIHRvIGZvY3VzaW4vb3V0OyBlbnN1cmUgd2UncmUgbm90IGZpcmluZyB0aGVtIHJpZ2h0IG5vd1xuXHRcdGlmICggcmZvY3VzTW9ycGgudGVzdCggdHlwZSArIGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIHR5cGUuaW5kZXhPZiggXCIuXCIgKSA+IC0xICkge1xuXG5cdFx0XHQvLyBOYW1lc3BhY2VkIHRyaWdnZXI7IGNyZWF0ZSBhIHJlZ2V4cCB0byBtYXRjaCBldmVudCB0eXBlIGluIGhhbmRsZSgpXG5cdFx0XHRuYW1lc3BhY2VzID0gdHlwZS5zcGxpdCggXCIuXCIgKTtcblx0XHRcdHR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7XG5cdFx0XHRuYW1lc3BhY2VzLnNvcnQoKTtcblx0XHR9XG5cdFx0b250eXBlID0gdHlwZS5pbmRleE9mKCBcIjpcIiApIDwgMCAmJiBcIm9uXCIgKyB0eXBlO1xuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGEgalF1ZXJ5LkV2ZW50IG9iamVjdCwgT2JqZWN0LCBvciBqdXN0IGFuIGV2ZW50IHR5cGUgc3RyaW5nXG5cdFx0ZXZlbnQgPSBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSA/XG5cdFx0XHRldmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlLCB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiYgZXZlbnQgKTtcblxuXHRcdC8vIFRyaWdnZXIgYml0bWFzazogJiAxIGZvciBuYXRpdmUgaGFuZGxlcnM7ICYgMiBmb3IgalF1ZXJ5IChhbHdheXMgdHJ1ZSlcblx0XHRldmVudC5pc1RyaWdnZXIgPSBvbmx5SGFuZGxlcnMgPyAyIDogMztcblx0XHRldmVudC5uYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmpvaW4oIFwiLlwiICk7XG5cdFx0ZXZlbnQucm5hbWVzcGFjZSA9IGV2ZW50Lm5hbWVzcGFjZSA/XG5cdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKCBcIlxcXFwuKD86LipcXFxcLnwpXCIgKSArIFwiKFxcXFwufCQpXCIgKSA6XG5cdFx0XHRudWxsO1xuXG5cdFx0Ly8gQ2xlYW4gdXAgdGhlIGV2ZW50IGluIGNhc2UgaXQgaXMgYmVpbmcgcmV1c2VkXG5cdFx0ZXZlbnQucmVzdWx0ID0gdW5kZWZpbmVkO1xuXHRcdGlmICggIWV2ZW50LnRhcmdldCApIHtcblx0XHRcdGV2ZW50LnRhcmdldCA9IGVsZW07XG5cdFx0fVxuXG5cdFx0Ly8gQ2xvbmUgYW55IGluY29taW5nIGRhdGEgYW5kIHByZXBlbmQgdGhlIGV2ZW50LCBjcmVhdGluZyB0aGUgaGFuZGxlciBhcmcgbGlzdFxuXHRcdGRhdGEgPSBkYXRhID09IG51bGwgP1xuXHRcdFx0WyBldmVudCBdIDpcblx0XHRcdGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEsIFsgZXZlbnQgXSApO1xuXG5cdFx0Ly8gQWxsb3cgc3BlY2lhbCBldmVudHMgdG8gZHJhdyBvdXRzaWRlIHRoZSBsaW5lc1xuXHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiBzcGVjaWFsLnRyaWdnZXIgJiYgc3BlY2lhbC50cmlnZ2VyLmFwcGx5KCBlbGVtLCBkYXRhICkgPT09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERldGVybWluZSBldmVudCBwcm9wYWdhdGlvbiBwYXRoIGluIGFkdmFuY2UsIHBlciBXM0MgZXZlbnRzIHNwZWMgKHRyYWMtOTk1MSlcblx0XHQvLyBCdWJibGUgdXAgdG8gZG9jdW1lbnQsIHRoZW4gdG8gd2luZG93OyB3YXRjaCBmb3IgYSBnbG9iYWwgb3duZXJEb2N1bWVudCB2YXIgKHRyYWMtOTcyNClcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIXNwZWNpYWwubm9CdWJibGUgJiYgIWlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdGJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlwZSB8fCB0eXBlO1xuXHRcdFx0aWYgKCAhcmZvY3VzTW9ycGgudGVzdCggYnViYmxlVHlwZSArIHR5cGUgKSApIHtcblx0XHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKCA7IGN1cjsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0dG1wID0gY3VyO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPbmx5IGFkZCB3aW5kb3cgaWYgd2UgZ290IHRvIGRvY3VtZW50IChlLmcuLCBub3QgcGxhaW4gb2JqIG9yIGRldGFjaGVkIERPTSlcblx0XHRcdGlmICggdG1wID09PSAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCApICkge1xuXHRcdFx0XHRldmVudFBhdGgucHVzaCggdG1wLmRlZmF1bHRWaWV3IHx8IHRtcC5wYXJlbnRXaW5kb3cgfHwgd2luZG93ICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmlyZSBoYW5kbGVycyBvbiB0aGUgZXZlbnQgcGF0aFxuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKCBjdXIgPSBldmVudFBhdGhbIGkrKyBdICkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRsYXN0RWxlbWVudCA9IGN1cjtcblx0XHRcdGV2ZW50LnR5cGUgPSBpID4gMSA/XG5cdFx0XHRcdGJ1YmJsZVR5cGUgOlxuXHRcdFx0XHRzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGU7XG5cblx0XHRcdC8vIGpRdWVyeSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSAoIGRhdGFQcml2LmdldCggY3VyLCBcImV2ZW50c1wiICkgfHwgT2JqZWN0LmNyZWF0ZSggbnVsbCApIClbIGV2ZW50LnR5cGUgXSAmJlxuXHRcdFx0XHRkYXRhUHJpdi5nZXQoIGN1ciwgXCJoYW5kbGVcIiApO1xuXHRcdFx0aWYgKCBoYW5kbGUgKSB7XG5cdFx0XHRcdGhhbmRsZS5hcHBseSggY3VyLCBkYXRhICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE5hdGl2ZSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSBvbnR5cGUgJiYgY3VyWyBvbnR5cGUgXTtcblx0XHRcdGlmICggaGFuZGxlICYmIGhhbmRsZS5hcHBseSAmJiBhY2NlcHREYXRhKCBjdXIgKSApIHtcblx0XHRcdFx0ZXZlbnQucmVzdWx0ID0gaGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcblx0XHRcdFx0aWYgKCBldmVudC5yZXN1bHQgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZXZlbnQudHlwZSA9IHR5cGU7XG5cblx0XHQvLyBJZiBub2JvZHkgcHJldmVudGVkIHRoZSBkZWZhdWx0IGFjdGlvbiwgZG8gaXQgbm93XG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmICFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSApIHtcblxuXHRcdFx0aWYgKCAoICFzcGVjaWFsLl9kZWZhdWx0IHx8XG5cdFx0XHRcdHNwZWNpYWwuX2RlZmF1bHQuYXBwbHkoIGV2ZW50UGF0aC5wb3AoKSwgZGF0YSApID09PSBmYWxzZSApICYmXG5cdFx0XHRcdGFjY2VwdERhdGEoIGVsZW0gKSApIHtcblxuXHRcdFx0XHQvLyBDYWxsIGEgbmF0aXZlIERPTSBtZXRob2Qgb24gdGhlIHRhcmdldCB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGV2ZW50LlxuXHRcdFx0XHQvLyBEb24ndCBkbyBkZWZhdWx0IGFjdGlvbnMgb24gd2luZG93LCB0aGF0J3Mgd2hlcmUgZ2xvYmFsIHZhcmlhYmxlcyBiZSAodHJhYy02MTcwKVxuXHRcdFx0XHRpZiAoIG9udHlwZSAmJiBpc0Z1bmN0aW9uKCBlbGVtWyB0eXBlIF0gKSAmJiAhaXNXaW5kb3coIGVsZW0gKSApIHtcblxuXHRcdFx0XHRcdC8vIERvbid0IHJlLXRyaWdnZXIgYW4gb25GT08gZXZlbnQgd2hlbiB3ZSBjYWxsIGl0cyBGT08oKSBtZXRob2Rcblx0XHRcdFx0XHR0bXAgPSBlbGVtWyBvbnR5cGUgXTtcblxuXHRcdFx0XHRcdGlmICggdG1wICkge1xuXHRcdFx0XHRcdFx0ZWxlbVsgb250eXBlIF0gPSBudWxsO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFByZXZlbnQgcmUtdHJpZ2dlcmluZyBvZiB0aGUgc2FtZSBldmVudCwgc2luY2Ugd2UgYWxyZWFkeSBidWJibGVkIGl0IGFib3ZlXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IHR5cGU7XG5cblx0XHRcdFx0XHRpZiAoIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRcdFx0XHRsYXN0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBzdG9wUHJvcGFnYXRpb25DYWxsYmFjayApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGVsZW1bIHR5cGUgXSgpO1xuXG5cdFx0XHRcdFx0aWYgKCBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXHRcdFx0XHRcdFx0bGFzdEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgc3RvcFByb3BhZ2F0aW9uQ2FsbGJhY2sgKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlcmVkID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRcdFx0aWYgKCB0bXAgKSB7XG5cdFx0XHRcdFx0XHRlbGVtWyBvbnR5cGUgXSA9IHRtcDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZXZlbnQucmVzdWx0O1xuXHR9LFxuXG5cdC8vIFBpZ2d5YmFjayBvbiBhIGRvbm9yIGV2ZW50IHRvIHNpbXVsYXRlIGEgZGlmZmVyZW50IG9uZVxuXHQvLyBVc2VkIG9ubHkgZm9yIGBmb2N1cyhpbiB8IG91dClgIGV2ZW50c1xuXHRzaW11bGF0ZTogZnVuY3Rpb24oIHR5cGUsIGVsZW0sIGV2ZW50ICkge1xuXHRcdHZhciBlID0galF1ZXJ5LmV4dGVuZChcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoKSxcblx0XHRcdGV2ZW50LFxuXHRcdFx0e1xuXHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRpc1NpbXVsYXRlZDogdHJ1ZVxuXHRcdFx0fVxuXHRcdCk7XG5cblx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggZSwgbnVsbCwgZWxlbSApO1xuXHR9XG5cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIHRoaXMgKTtcblx0XHR9ICk7XG5cdH0sXG5cdHRyaWdnZXJIYW5kbGVyOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgZWxlbSA9IHRoaXNbIDAgXTtcblx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmV2ZW50LnRyaWdnZXIoIHR5cGUsIGRhdGEsIGVsZW0sIHRydWUgKTtcblx0XHR9XG5cdH1cbn0gKTtcblxuXG52YXJcblx0cmJyYWNrZXQgPSAvXFxbXFxdJC8sXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcblx0cnN1Ym1pdHRlclR5cGVzID0gL14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFxuXHRyc3VibWl0dGFibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHtcblx0dmFyIG5hbWU7XG5cblx0aWYgKCBBcnJheS5pc0FycmF5KCBvYmogKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLlxuXHRcdGpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkge1xuXHRcdFx0aWYgKCB0cmFkaXRpb25hbCB8fCByYnJhY2tldC50ZXN0KCBwcmVmaXggKSApIHtcblxuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXG5cdFx0XHRcdGFkZCggcHJlZml4LCB2ICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gSXRlbSBpcyBub24tc2NhbGFyIChhcnJheSBvciBvYmplY3QpLCBlbmNvZGUgaXRzIG51bWVyaWMgaW5kZXguXG5cdFx0XHRcdGJ1aWxkUGFyYW1zKFxuXHRcdFx0XHRcdHByZWZpeCArIFwiW1wiICsgKCB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICE9IG51bGwgPyBpIDogXCJcIiApICsgXCJdXCIsXG5cdFx0XHRcdFx0dixcblx0XHRcdFx0XHR0cmFkaXRpb25hbCxcblx0XHRcdFx0XHRhZGRcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0fSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIHRvVHlwZSggb2JqICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyBuYW1lICsgXCJdXCIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uXG5cdFx0YWRkKCBwcmVmaXgsIG9iaiApO1xuXHR9XG59XG5cbi8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mXG4vLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmdcbmpRdWVyeS5wYXJhbSA9IGZ1bmN0aW9uKCBhLCB0cmFkaXRpb25hbCApIHtcblx0dmFyIHByZWZpeCxcblx0XHRzID0gW10sXG5cdFx0YWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWVPckZ1bmN0aW9uICkge1xuXG5cdFx0XHQvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHVzZSBpdHMgcmV0dXJuIHZhbHVlXG5cdFx0XHR2YXIgdmFsdWUgPSBpc0Z1bmN0aW9uKCB2YWx1ZU9yRnVuY3Rpb24gKSA/XG5cdFx0XHRcdHZhbHVlT3JGdW5jdGlvbigpIDpcblx0XHRcdFx0dmFsdWVPckZ1bmN0aW9uO1xuXG5cdFx0XHRzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArIFwiPVwiICtcblx0XHRcdFx0ZW5jb2RlVVJJQ29tcG9uZW50KCB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICk7XG5cdFx0fTtcblxuXHRpZiAoIGEgPT0gbnVsbCApIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdC8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuXG5cdGlmICggQXJyYXkuaXNBcnJheSggYSApIHx8ICggYS5qcXVlcnkgJiYgIWpRdWVyeS5pc1BsYWluT2JqZWN0KCBhICkgKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSB0aGUgZm9ybSBlbGVtZW50c1xuXHRcdGpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHtcblx0XHRcdGFkZCggdGhpcy5uYW1lLCB0aGlzLnZhbHVlICk7XG5cdFx0fSApO1xuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBJZiB0cmFkaXRpb25hbCwgZW5jb2RlIHRoZSBcIm9sZFwiIHdheSAodGhlIHdheSAxLjMuMiBvciBvbGRlclxuXHRcdC8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LlxuXHRcdGZvciAoIHByZWZpeCBpbiBhICkge1xuXHRcdFx0YnVpbGRQYXJhbXMoIHByZWZpeCwgYVsgcHJlZml4IF0sIHRyYWRpdGlvbmFsLCBhZGQgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uXG5cdHJldHVybiBzLmpvaW4oIFwiJlwiICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHNlcmlhbGl6ZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7XG5cdH0sXG5cdHNlcmlhbGl6ZUFycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBDYW4gYWRkIHByb3BIb29rIGZvciBcImVsZW1lbnRzXCIgdG8gZmlsdGVyIG9yIGFkZCBmb3JtIGVsZW1lbnRzXG5cdFx0XHR2YXIgZWxlbWVudHMgPSBqUXVlcnkucHJvcCggdGhpcywgXCJlbGVtZW50c1wiICk7XG5cdFx0XHRyZXR1cm4gZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCBlbGVtZW50cyApIDogdGhpcztcblx0XHR9ICkuZmlsdGVyKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0eXBlID0gdGhpcy50eXBlO1xuXG5cdFx0XHQvLyBVc2UgLmlzKCBcIjpkaXNhYmxlZFwiICkgc28gdGhhdCBmaWVsZHNldFtkaXNhYmxlZF0gd29ya3Ncblx0XHRcdHJldHVybiB0aGlzLm5hbWUgJiYgIWpRdWVyeSggdGhpcyApLmlzKCBcIjpkaXNhYmxlZFwiICkgJiZcblx0XHRcdFx0cnN1Ym1pdHRhYmxlLnRlc3QoIHRoaXMubm9kZU5hbWUgKSAmJiAhcnN1Ym1pdHRlclR5cGVzLnRlc3QoIHR5cGUgKSAmJlxuXHRcdFx0XHQoIHRoaXMuY2hlY2tlZCB8fCAhcmNoZWNrYWJsZVR5cGUudGVzdCggdHlwZSApICk7XG5cdFx0fSApLm1hcCggZnVuY3Rpb24oIF9pLCBlbGVtICkge1xuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xuXG5cdFx0XHRpZiAoIHZhbCA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24oIHZhbCApIHtcblx0XHRcdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0fSApLmdldCgpO1xuXHR9XG59ICk7XG5cblxudmFyXG5cdHIyMCA9IC8lMjAvZyxcblx0cmhhc2ggPSAvIy4qJC8sXG5cdHJhbnRpQ2FjaGUgPSAvKFs/Jl0pXz1bXiZdKi8sXG5cdHJoZWFkZXJzID0gL14oLio/KTpbIFxcdF0qKFteXFxyXFxuXSopJC9tZyxcblxuXHQvLyB0cmFjLTc2NTMsIHRyYWMtODEyNSwgdHJhYy04MTUyOiBsb2NhbCBwcm90b2NvbCBkZXRlY3Rpb25cblx0cmxvY2FsUHJvdG9jb2wgPSAvXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxcblx0cm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8sXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcblxuXHQvKiBQcmVmaWx0ZXJzXG5cdCAqIDEpIFRoZXkgYXJlIHVzZWZ1bCB0byBpbnRyb2R1Y2UgY3VzdG9tIGRhdGFUeXBlcyAoc2VlIGFqYXgvanNvbnAuanMgZm9yIGFuIGV4YW1wbGUpXG5cdCAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6XG5cdCAqICAgIC0gQkVGT1JFIGFza2luZyBmb3IgYSB0cmFuc3BvcnRcblx0ICogICAgLSBBRlRFUiBwYXJhbSBzZXJpYWxpemF0aW9uIChzLmRhdGEgaXMgYSBzdHJpbmcgaWYgcy5wcm9jZXNzRGF0YSBpcyB0cnVlKVxuXHQgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlXG5cdCAqIDQpIHRoZSBjYXRjaGFsbCBzeW1ib2wgXCIqXCIgY2FuIGJlIHVzZWRcblx0ICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHByZWZpbHRlcnMgPSB7fSxcblxuXHQvKiBUcmFuc3BvcnRzIGJpbmRpbmdzXG5cdCAqIDEpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogMikgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiAzKSBzZWxlY3Rpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBnbyB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHRyYW5zcG9ydHMgPSB7fSxcblxuXHQvLyBBdm9pZCBjb21tZW50LXByb2xvZyBjaGFyIHNlcXVlbmNlICh0cmFjLTEwMDk4KTsgbXVzdCBhcHBlYXNlIGxpbnQgYW5kIGV2YWRlIGNvbXByZXNzaW9uXG5cdGFsbFR5cGVzID0gXCIqL1wiLmNvbmNhdCggXCIqXCIgKSxcblxuXHQvLyBBbmNob3IgdGFnIGZvciBwYXJzaW5nIHRoZSBkb2N1bWVudCBvcmlnaW5cblx0b3JpZ2luQW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJhXCIgKTtcblxub3JpZ2luQW5jaG9yLmhyZWYgPSBsb2NhdGlvbi5ocmVmO1xuXG4vLyBCYXNlIFwiY29uc3RydWN0b3JcIiBmb3IgalF1ZXJ5LmFqYXhQcmVmaWx0ZXIgYW5kIGpRdWVyeS5hamF4VHJhbnNwb3J0XG5mdW5jdGlvbiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSApIHtcblxuXHQvLyBkYXRhVHlwZUV4cHJlc3Npb24gaXMgb3B0aW9uYWwgYW5kIGRlZmF1bHRzIHRvIFwiKlwiXG5cdHJldHVybiBmdW5jdGlvbiggZGF0YVR5cGVFeHByZXNzaW9uLCBmdW5jICkge1xuXG5cdFx0aWYgKCB0eXBlb2YgZGF0YVR5cGVFeHByZXNzaW9uICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0ZnVuYyA9IGRhdGFUeXBlRXhwcmVzc2lvbjtcblx0XHRcdGRhdGFUeXBlRXhwcmVzc2lvbiA9IFwiKlwiO1xuXHRcdH1cblxuXHRcdHZhciBkYXRhVHlwZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0ZGF0YVR5cGVzID0gZGF0YVR5cGVFeHByZXNzaW9uLnRvTG93ZXJDYXNlKCkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXTtcblxuXHRcdGlmICggaXNGdW5jdGlvbiggZnVuYyApICkge1xuXG5cdFx0XHQvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgZGF0YVR5cGVFeHByZXNzaW9uXG5cdFx0XHR3aGlsZSAoICggZGF0YVR5cGUgPSBkYXRhVHlwZXNbIGkrKyBdICkgKSB7XG5cblx0XHRcdFx0Ly8gUHJlcGVuZCBpZiByZXF1ZXN0ZWRcblx0XHRcdFx0aWYgKCBkYXRhVHlwZVsgMCBdID09PSBcIitcIiApIHtcblx0XHRcdFx0XHRkYXRhVHlwZSA9IGRhdGFUeXBlLnNsaWNlKCAxICkgfHwgXCIqXCI7XG5cdFx0XHRcdFx0KCBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW10gKS51bnNoaWZ0KCBmdW5jICk7XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCggc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdICkucHVzaCggZnVuYyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufVxuXG4vLyBCYXNlIGluc3BlY3Rpb24gZnVuY3Rpb24gZm9yIHByZWZpbHRlcnMgYW5kIHRyYW5zcG9ydHNcbmZ1bmN0aW9uIGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKSB7XG5cblx0dmFyIGluc3BlY3RlZCA9IHt9LFxuXHRcdHNlZWtpbmdUcmFuc3BvcnQgPSAoIHN0cnVjdHVyZSA9PT0gdHJhbnNwb3J0cyApO1xuXG5cdGZ1bmN0aW9uIGluc3BlY3QoIGRhdGFUeXBlICkge1xuXHRcdHZhciBzZWxlY3RlZDtcblx0XHRpbnNwZWN0ZWRbIGRhdGFUeXBlIF0gPSB0cnVlO1xuXHRcdGpRdWVyeS5lYWNoKCBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW10sIGZ1bmN0aW9uKCBfLCBwcmVmaWx0ZXJPckZhY3RvcnkgKSB7XG5cdFx0XHR2YXIgZGF0YVR5cGVPclRyYW5zcG9ydCA9IHByZWZpbHRlck9yRmFjdG9yeSggb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApO1xuXHRcdFx0aWYgKCB0eXBlb2YgZGF0YVR5cGVPclRyYW5zcG9ydCA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0XHQhc2Vla2luZ1RyYW5zcG9ydCAmJiAhaW5zcGVjdGVkWyBkYXRhVHlwZU9yVHJhbnNwb3J0IF0gKSB7XG5cblx0XHRcdFx0b3B0aW9ucy5kYXRhVHlwZXMudW5zaGlmdCggZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0XHRpbnNwZWN0KCBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSBpZiAoIHNlZWtpbmdUcmFuc3BvcnQgKSB7XG5cdFx0XHRcdHJldHVybiAhKCBzZWxlY3RlZCA9IGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdFx0cmV0dXJuIHNlbGVjdGVkO1xuXHR9XG5cblx0cmV0dXJuIGluc3BlY3QoIG9wdGlvbnMuZGF0YVR5cGVzWyAwIF0gKSB8fCAhaW5zcGVjdGVkWyBcIipcIiBdICYmIGluc3BlY3QoIFwiKlwiICk7XG59XG5cbi8vIEEgc3BlY2lhbCBleHRlbmQgZm9yIGFqYXggb3B0aW9uc1xuLy8gdGhhdCB0YWtlcyBcImZsYXRcIiBvcHRpb25zIChub3QgdG8gYmUgZGVlcCBleHRlbmRlZClcbi8vIEZpeGVzIHRyYWMtOTg4N1xuZnVuY3Rpb24gYWpheEV4dGVuZCggdGFyZ2V0LCBzcmMgKSB7XG5cdHZhciBrZXksIGRlZXAsXG5cdFx0ZmxhdE9wdGlvbnMgPSBqUXVlcnkuYWpheFNldHRpbmdzLmZsYXRPcHRpb25zIHx8IHt9O1xuXG5cdGZvciAoIGtleSBpbiBzcmMgKSB7XG5cdFx0aWYgKCBzcmNbIGtleSBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHQoIGZsYXRPcHRpb25zWyBrZXkgXSA/IHRhcmdldCA6ICggZGVlcCB8fCAoIGRlZXAgPSB7fSApICkgKVsga2V5IF0gPSBzcmNbIGtleSBdO1xuXHRcdH1cblx0fVxuXHRpZiAoIGRlZXAgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggdHJ1ZSwgdGFyZ2V0LCBkZWVwICk7XG5cdH1cblxuXHRyZXR1cm4gdGFyZ2V0O1xufVxuXG4vKiBIYW5kbGVzIHJlc3BvbnNlcyB0byBhbiBhamF4IHJlcXVlc3Q6XG4gKiAtIGZpbmRzIHRoZSByaWdodCBkYXRhVHlwZSAobWVkaWF0ZXMgYmV0d2VlbiBjb250ZW50LXR5cGUgYW5kIGV4cGVjdGVkIGRhdGFUeXBlKVxuICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlXG4gKi9cbmZ1bmN0aW9uIGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKSB7XG5cblx0dmFyIGN0LCB0eXBlLCBmaW5hbERhdGFUeXBlLCBmaXJzdERhdGFUeXBlLFxuXHRcdGNvbnRlbnRzID0gcy5jb250ZW50cyxcblx0XHRkYXRhVHlwZXMgPSBzLmRhdGFUeXBlcztcblxuXHQvLyBSZW1vdmUgYXV0byBkYXRhVHlwZSBhbmQgZ2V0IGNvbnRlbnQtdHlwZSBpbiB0aGUgcHJvY2Vzc1xuXHR3aGlsZSAoIGRhdGFUeXBlc1sgMCBdID09PSBcIipcIiApIHtcblx0XHRkYXRhVHlwZXMuc2hpZnQoKTtcblx0XHRpZiAoIGN0ID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRjdCA9IHMubWltZVR5cGUgfHwganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiQ29udGVudC1UeXBlXCIgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGVcblx0aWYgKCBjdCApIHtcblx0XHRmb3IgKCB0eXBlIGluIGNvbnRlbnRzICkge1xuXHRcdFx0aWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHtcblx0XHRcdFx0ZGF0YVR5cGVzLnVuc2hpZnQoIHR5cGUgKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSByZXNwb25zZSBmb3IgdGhlIGV4cGVjdGVkIGRhdGFUeXBlXG5cdGlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkge1xuXHRcdGZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTtcblx0fSBlbHNlIHtcblxuXHRcdC8vIFRyeSBjb252ZXJ0aWJsZSBkYXRhVHlwZXNcblx0XHRmb3IgKCB0eXBlIGluIHJlc3BvbnNlcyApIHtcblx0XHRcdGlmICggIWRhdGFUeXBlc1sgMCBdIHx8IHMuY29udmVydGVyc1sgdHlwZSArIFwiIFwiICsgZGF0YVR5cGVzWyAwIF0gXSApIHtcblx0XHRcdFx0ZmluYWxEYXRhVHlwZSA9IHR5cGU7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCAhZmlyc3REYXRhVHlwZSApIHtcblx0XHRcdFx0Zmlyc3REYXRhVHlwZSA9IHR5cGU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gT3IganVzdCB1c2UgZmlyc3Qgb25lXG5cdFx0ZmluYWxEYXRhVHlwZSA9IGZpbmFsRGF0YVR5cGUgfHwgZmlyc3REYXRhVHlwZTtcblx0fVxuXG5cdC8vIElmIHdlIGZvdW5kIGEgZGF0YVR5cGVcblx0Ly8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWRcblx0Ly8gYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuXHRpZiAoIGZpbmFsRGF0YVR5cGUgKSB7XG5cdFx0aWYgKCBmaW5hbERhdGFUeXBlICE9PSBkYXRhVHlwZXNbIDAgXSApIHtcblx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCBmaW5hbERhdGFUeXBlICk7XG5cdFx0fVxuXHRcdHJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTtcblx0fVxufVxuXG4vKiBDaGFpbiBjb252ZXJzaW9ucyBnaXZlbiB0aGUgcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlc3BvbnNlXG4gKiBBbHNvIHNldHMgdGhlIHJlc3BvbnNlWFhYIGZpZWxkcyBvbiB0aGUganFYSFIgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICkge1xuXHR2YXIgY29udjIsIGN1cnJlbnQsIGNvbnYsIHRtcCwgcHJldixcblx0XHRjb252ZXJ0ZXJzID0ge30sXG5cblx0XHQvLyBXb3JrIHdpdGggYSBjb3B5IG9mIGRhdGFUeXBlcyBpbiBjYXNlIHdlIG5lZWQgdG8gbW9kaWZ5IGl0IGZvciBjb252ZXJzaW9uXG5cdFx0ZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMuc2xpY2UoKTtcblxuXHQvLyBDcmVhdGUgY29udmVydGVycyBtYXAgd2l0aCBsb3dlcmNhc2VkIGtleXNcblx0aWYgKCBkYXRhVHlwZXNbIDEgXSApIHtcblx0XHRmb3IgKCBjb252IGluIHMuY29udmVydGVycyApIHtcblx0XHRcdGNvbnZlcnRlcnNbIGNvbnYudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBjb252IF07XG5cdFx0fVxuXHR9XG5cblx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdC8vIENvbnZlcnQgdG8gZWFjaCBzZXF1ZW50aWFsIGRhdGFUeXBlXG5cdHdoaWxlICggY3VycmVudCApIHtcblxuXHRcdGlmICggcy5yZXNwb25zZUZpZWxkc1sgY3VycmVudCBdICkge1xuXHRcdFx0anFYSFJbIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSBdID0gcmVzcG9uc2U7XG5cdFx0fVxuXG5cdFx0Ly8gQXBwbHkgdGhlIGRhdGFGaWx0ZXIgaWYgcHJvdmlkZWRcblx0XHRpZiAoICFwcmV2ICYmIGlzU3VjY2VzcyAmJiBzLmRhdGFGaWx0ZXIgKSB7XG5cdFx0XHRyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTtcblx0XHR9XG5cblx0XHRwcmV2ID0gY3VycmVudDtcblx0XHRjdXJyZW50ID0gZGF0YVR5cGVzLnNoaWZ0KCk7XG5cblx0XHRpZiAoIGN1cnJlbnQgKSB7XG5cblx0XHRcdC8vIFRoZXJlJ3Mgb25seSB3b3JrIHRvIGRvIGlmIGN1cnJlbnQgZGF0YVR5cGUgaXMgbm9uLWF1dG9cblx0XHRcdGlmICggY3VycmVudCA9PT0gXCIqXCIgKSB7XG5cblx0XHRcdFx0Y3VycmVudCA9IHByZXY7XG5cblx0XHRcdC8vIENvbnZlcnQgcmVzcG9uc2UgaWYgcHJldiBkYXRhVHlwZSBpcyBub24tYXV0byBhbmQgZGlmZmVycyBmcm9tIGN1cnJlbnRcblx0XHRcdH0gZWxzZSBpZiAoIHByZXYgIT09IFwiKlwiICYmIHByZXYgIT09IGN1cnJlbnQgKSB7XG5cblx0XHRcdFx0Ly8gU2VlayBhIGRpcmVjdCBjb252ZXJ0ZXJcblx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIGN1cnJlbnQgXSB8fCBjb252ZXJ0ZXJzWyBcIiogXCIgKyBjdXJyZW50IF07XG5cblx0XHRcdFx0Ly8gSWYgbm9uZSBmb3VuZCwgc2VlayBhIHBhaXJcblx0XHRcdFx0aWYgKCAhY29udiApIHtcblx0XHRcdFx0XHRmb3IgKCBjb252MiBpbiBjb252ZXJ0ZXJzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBJZiBjb252MiBvdXRwdXRzIGN1cnJlbnRcblx0XHRcdFx0XHRcdHRtcCA9IGNvbnYyLnNwbGl0KCBcIiBcIiApO1xuXHRcdFx0XHRcdFx0aWYgKCB0bXBbIDEgXSA9PT0gY3VycmVudCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBJZiBwcmV2IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYWNjZXB0ZWQgaW5wdXRcblx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIHRtcFsgMCBdIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJzWyBcIiogXCIgKyB0bXBbIDAgXSBdO1xuXHRcdFx0XHRcdFx0XHRpZiAoIGNvbnYgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBDb25kZW5zZSBlcXVpdmFsZW5jZSBjb252ZXJ0ZXJzXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjb252ID09PSB0cnVlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIGNvbnYyIF07XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGluc2VydCB0aGUgaW50ZXJtZWRpYXRlIGRhdGFUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggY29udmVydGVyc1sgY29udjIgXSAhPT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnQgPSB0bXBbIDAgXTtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0bXBbIDEgXSApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFwcGx5IGNvbnZlcnRlciAoaWYgbm90IGFuIGVxdWl2YWxlbmNlKVxuXHRcdFx0XHRpZiAoIGNvbnYgIT09IHRydWUgKSB7XG5cblx0XHRcdFx0XHQvLyBVbmxlc3MgZXJyb3JzIGFyZSBhbGxvd2VkIHRvIGJ1YmJsZSwgY2F0Y2ggYW5kIHJldHVybiB0aGVtXG5cdFx0XHRcdFx0aWYgKCBjb252ICYmIHMudGhyb3dzICkge1xuXHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZSA9IGNvbnYoIHJlc3BvbnNlICk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZTogXCJwYXJzZXJlcnJvclwiLFxuXHRcdFx0XHRcdFx0XHRcdGVycm9yOiBjb252ID8gZSA6IFwiTm8gY29udmVyc2lvbiBmcm9tIFwiICsgcHJldiArIFwiIHRvIFwiICsgY3VycmVudFxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7IHN0YXRlOiBcInN1Y2Nlc3NcIiwgZGF0YTogcmVzcG9uc2UgfTtcbn1cblxualF1ZXJ5LmV4dGVuZCgge1xuXG5cdC8vIENvdW50ZXIgZm9yIGhvbGRpbmcgdGhlIG51bWJlciBvZiBhY3RpdmUgcXVlcmllc1xuXHRhY3RpdmU6IDAsXG5cblx0Ly8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdFxuXHRsYXN0TW9kaWZpZWQ6IHt9LFxuXHRldGFnOiB7fSxcblxuXHRhamF4U2V0dGluZ3M6IHtcblx0XHR1cmw6IGxvY2F0aW9uLmhyZWYsXG5cdFx0dHlwZTogXCJHRVRcIixcblx0XHRpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBsb2NhdGlvbi5wcm90b2NvbCApLFxuXHRcdGdsb2JhbDogdHJ1ZSxcblx0XHRwcm9jZXNzRGF0YTogdHJ1ZSxcblx0XHRhc3luYzogdHJ1ZSxcblx0XHRjb250ZW50VHlwZTogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLThcIixcblxuXHRcdC8qXG5cdFx0dGltZW91dDogMCxcblx0XHRkYXRhOiBudWxsLFxuXHRcdGRhdGFUeXBlOiBudWxsLFxuXHRcdHVzZXJuYW1lOiBudWxsLFxuXHRcdHBhc3N3b3JkOiBudWxsLFxuXHRcdGNhY2hlOiBudWxsLFxuXHRcdHRocm93czogZmFsc2UsXG5cdFx0dHJhZGl0aW9uYWw6IGZhbHNlLFxuXHRcdGhlYWRlcnM6IHt9LFxuXHRcdCovXG5cblx0XHRhY2NlcHRzOiB7XG5cdFx0XHRcIipcIjogYWxsVHlwZXMsXG5cdFx0XHR0ZXh0OiBcInRleHQvcGxhaW5cIixcblx0XHRcdGh0bWw6IFwidGV4dC9odG1sXCIsXG5cdFx0XHR4bWw6IFwiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbFwiLFxuXHRcdFx0anNvbjogXCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHRcIlxuXHRcdH0sXG5cblx0XHRjb250ZW50czoge1xuXHRcdFx0eG1sOiAvXFxieG1sXFxiLyxcblx0XHRcdGh0bWw6IC9cXGJodG1sLyxcblx0XHRcdGpzb246IC9cXGJqc29uXFxiL1xuXHRcdH0sXG5cblx0XHRyZXNwb25zZUZpZWxkczoge1xuXHRcdFx0eG1sOiBcInJlc3BvbnNlWE1MXCIsXG5cdFx0XHR0ZXh0OiBcInJlc3BvbnNlVGV4dFwiLFxuXHRcdFx0anNvbjogXCJyZXNwb25zZUpTT05cIlxuXHRcdH0sXG5cblx0XHQvLyBEYXRhIGNvbnZlcnRlcnNcblx0XHQvLyBLZXlzIHNlcGFyYXRlIHNvdXJjZSAob3IgY2F0Y2hhbGwgXCIqXCIpIGFuZCBkZXN0aW5hdGlvbiB0eXBlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG5cdFx0Y29udmVydGVyczoge1xuXG5cdFx0XHQvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHRcblx0XHRcdFwiKiB0ZXh0XCI6IFN0cmluZyxcblxuXHRcdFx0Ly8gVGV4dCB0byBodG1sICh0cnVlID0gbm8gdHJhbnNmb3JtYXRpb24pXG5cdFx0XHRcInRleHQgaHRtbFwiOiB0cnVlLFxuXG5cdFx0XHQvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uXG5cdFx0XHRcInRleHQganNvblwiOiBKU09OLnBhcnNlLFxuXG5cdFx0XHQvLyBQYXJzZSB0ZXh0IGFzIHhtbFxuXHRcdFx0XCJ0ZXh0IHhtbFwiOiBqUXVlcnkucGFyc2VYTUxcblx0XHR9LFxuXG5cdFx0Ly8gRm9yIG9wdGlvbnMgdGhhdCBzaG91bGRuJ3QgYmUgZGVlcCBleHRlbmRlZDpcblx0XHQvLyB5b3UgY2FuIGFkZCB5b3VyIG93biBjdXN0b20gb3B0aW9ucyBoZXJlIGlmXG5cdFx0Ly8gYW5kIHdoZW4geW91IGNyZWF0ZSBvbmUgdGhhdCBzaG91bGRuJ3QgYmVcblx0XHQvLyBkZWVwIGV4dGVuZGVkIChzZWUgYWpheEV4dGVuZClcblx0XHRmbGF0T3B0aW9uczoge1xuXHRcdFx0dXJsOiB0cnVlLFxuXHRcdFx0Y29udGV4dDogdHJ1ZVxuXHRcdH1cblx0fSxcblxuXHQvLyBDcmVhdGVzIGEgZnVsbCBmbGVkZ2VkIHNldHRpbmdzIG9iamVjdCBpbnRvIHRhcmdldFxuXHQvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuXG5cdC8vIElmIHRhcmdldCBpcyBvbWl0dGVkLCB3cml0ZXMgaW50byBhamF4U2V0dGluZ3MuXG5cdGFqYXhTZXR1cDogZnVuY3Rpb24oIHRhcmdldCwgc2V0dGluZ3MgKSB7XG5cdFx0cmV0dXJuIHNldHRpbmdzID9cblxuXHRcdFx0Ly8gQnVpbGRpbmcgYSBzZXR0aW5ncyBvYmplY3Rcblx0XHRcdGFqYXhFeHRlbmQoIGFqYXhFeHRlbmQoIHRhcmdldCwgalF1ZXJ5LmFqYXhTZXR0aW5ncyApLCBzZXR0aW5ncyApIDpcblxuXHRcdFx0Ly8gRXh0ZW5kaW5nIGFqYXhTZXR0aW5nc1xuXHRcdFx0YWpheEV4dGVuZCggalF1ZXJ5LmFqYXhTZXR0aW5ncywgdGFyZ2V0ICk7XG5cdH0sXG5cblx0YWpheFByZWZpbHRlcjogYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzICksXG5cdGFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLFxuXG5cdC8vIE1haW4gbWV0aG9kXG5cdGFqYXg6IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMgKSB7XG5cblx0XHQvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZVxuXHRcdGlmICggdHlwZW9mIHVybCA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdG9wdGlvbnMgPSB1cmw7XG5cdFx0XHR1cmwgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gRm9yY2Ugb3B0aW9ucyB0byBiZSBhbiBvYmplY3Rcblx0XHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRcdHZhciB0cmFuc3BvcnQsXG5cblx0XHRcdC8vIFVSTCB3aXRob3V0IGFudGktY2FjaGUgcGFyYW1cblx0XHRcdGNhY2hlVVJMLFxuXG5cdFx0XHQvLyBSZXNwb25zZSBoZWFkZXJzXG5cdFx0XHRyZXNwb25zZUhlYWRlcnNTdHJpbmcsXG5cdFx0XHRyZXNwb25zZUhlYWRlcnMsXG5cblx0XHRcdC8vIHRpbWVvdXQgaGFuZGxlXG5cdFx0XHR0aW1lb3V0VGltZXIsXG5cblx0XHRcdC8vIFVybCBjbGVhbnVwIHZhclxuXHRcdFx0dXJsQW5jaG9yLFxuXG5cdFx0XHQvLyBSZXF1ZXN0IHN0YXRlIChiZWNvbWVzIGZhbHNlIHVwb24gc2VuZCBhbmQgdHJ1ZSB1cG9uIGNvbXBsZXRpb24pXG5cdFx0XHRjb21wbGV0ZWQsXG5cblx0XHRcdC8vIFRvIGtub3cgaWYgZ2xvYmFsIGV2ZW50cyBhcmUgdG8gYmUgZGlzcGF0Y2hlZFxuXHRcdFx0ZmlyZUdsb2JhbHMsXG5cblx0XHRcdC8vIExvb3AgdmFyaWFibGVcblx0XHRcdGksXG5cblx0XHRcdC8vIHVuY2FjaGVkIHBhcnQgb2YgdGhlIHVybFxuXHRcdFx0dW5jYWNoZWQsXG5cblx0XHRcdC8vIENyZWF0ZSB0aGUgZmluYWwgb3B0aW9ucyBvYmplY3Rcblx0XHRcdHMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLFxuXG5cdFx0XHQvLyBDYWxsYmFja3MgY29udGV4dFxuXHRcdFx0Y2FsbGJhY2tDb250ZXh0ID0gcy5jb250ZXh0IHx8IHMsXG5cblx0XHRcdC8vIENvbnRleHQgZm9yIGdsb2JhbCBldmVudHMgaXMgY2FsbGJhY2tDb250ZXh0IGlmIGl0IGlzIGEgRE9NIG5vZGUgb3IgalF1ZXJ5IGNvbGxlY3Rpb25cblx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dCA9IHMuY29udGV4dCAmJlxuXHRcdFx0XHQoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQuanF1ZXJ5ICkgP1xuXHRcdFx0XHRqUXVlcnkoIGNhbGxiYWNrQ29udGV4dCApIDpcblx0XHRcdFx0alF1ZXJ5LmV2ZW50LFxuXG5cdFx0XHQvLyBEZWZlcnJlZHNcblx0XHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkID0galF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksXG5cblx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRzdGF0dXNDb2RlID0gcy5zdGF0dXNDb2RlIHx8IHt9LFxuXG5cdFx0XHQvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKVxuXHRcdFx0cmVxdWVzdEhlYWRlcnMgPSB7fSxcblx0XHRcdHJlcXVlc3RIZWFkZXJzTmFtZXMgPSB7fSxcblxuXHRcdFx0Ly8gRGVmYXVsdCBhYm9ydCBtZXNzYWdlXG5cdFx0XHRzdHJBYm9ydCA9IFwiY2FuY2VsZWRcIixcblxuXHRcdFx0Ly8gRmFrZSB4aHJcblx0XHRcdGpxWEhSID0ge1xuXHRcdFx0XHRyZWFkeVN0YXRlOiAwLFxuXG5cdFx0XHRcdC8vIEJ1aWxkcyBoZWFkZXJzIGhhc2h0YWJsZSBpZiBuZWVkZWRcblx0XHRcdFx0Z2V0UmVzcG9uc2VIZWFkZXI6IGZ1bmN0aW9uKCBrZXkgKSB7XG5cdFx0XHRcdFx0dmFyIG1hdGNoO1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkICkge1xuXHRcdFx0XHRcdFx0aWYgKCAhcmVzcG9uc2VIZWFkZXJzICkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZUhlYWRlcnMgPSB7fTtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKCAoIG1hdGNoID0gcmhlYWRlcnMuZXhlYyggcmVzcG9uc2VIZWFkZXJzU3RyaW5nICkgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRyZXNwb25zZUhlYWRlcnNbIG1hdGNoWyAxIF0udG9Mb3dlckNhc2UoKSArIFwiIFwiIF0gPVxuXHRcdFx0XHRcdFx0XHRcdFx0KCByZXNwb25zZUhlYWRlcnNbIG1hdGNoWyAxIF0udG9Mb3dlckNhc2UoKSArIFwiIFwiIF0gfHwgW10gKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuY29uY2F0KCBtYXRjaFsgMiBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdG1hdGNoID0gcmVzcG9uc2VIZWFkZXJzWyBrZXkudG9Mb3dlckNhc2UoKSArIFwiIFwiIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBtYXRjaCA9PSBudWxsID8gbnVsbCA6IG1hdGNoLmpvaW4oIFwiLCBcIiApO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIFJhdyBzdHJpbmdcblx0XHRcdFx0Z2V0QWxsUmVzcG9uc2VIZWFkZXJzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29tcGxldGVkID8gcmVzcG9uc2VIZWFkZXJzU3RyaW5nIDogbnVsbDtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBDYWNoZXMgdGhlIGhlYWRlclxuXHRcdFx0XHRzZXRSZXF1ZXN0SGVhZGVyOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0XHRcdFx0aWYgKCBjb21wbGV0ZWQgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdG5hbWUgPSByZXF1ZXN0SGVhZGVyc05hbWVzWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSA9XG5cdFx0XHRcdFx0XHRcdHJlcXVlc3RIZWFkZXJzTmFtZXNbIG5hbWUudG9Mb3dlckNhc2UoKSBdIHx8IG5hbWU7XG5cdFx0XHRcdFx0XHRyZXF1ZXN0SGVhZGVyc1sgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIE92ZXJyaWRlcyByZXNwb25zZSBjb250ZW50LXR5cGUgaGVhZGVyXG5cdFx0XHRcdG92ZXJyaWRlTWltZVR5cGU6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRzLm1pbWVUeXBlID0gdHlwZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdFx0c3RhdHVzQ29kZTogZnVuY3Rpb24oIG1hcCApIHtcblx0XHRcdFx0XHR2YXIgY29kZTtcblx0XHRcdFx0XHRpZiAoIG1hcCApIHtcblx0XHRcdFx0XHRcdGlmICggY29tcGxldGVkICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIEV4ZWN1dGUgdGhlIGFwcHJvcHJpYXRlIGNhbGxiYWNrc1xuXHRcdFx0XHRcdFx0XHRqcVhIUi5hbHdheXMoIG1hcFsganFYSFIuc3RhdHVzIF0gKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gTGF6eS1hZGQgdGhlIG5ldyBjYWxsYmFja3MgaW4gYSB3YXkgdGhhdCBwcmVzZXJ2ZXMgb2xkIG9uZXNcblx0XHRcdFx0XHRcdFx0Zm9yICggY29kZSBpbiBtYXAgKSB7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdHVzQ29kZVsgY29kZSBdID0gWyBzdGF0dXNDb2RlWyBjb2RlIF0sIG1hcFsgY29kZSBdIF07XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FuY2VsIHRoZSByZXF1ZXN0XG5cdFx0XHRcdGFib3J0OiBmdW5jdGlvbiggc3RhdHVzVGV4dCApIHtcblx0XHRcdFx0XHR2YXIgZmluYWxUZXh0ID0gc3RhdHVzVGV4dCB8fCBzdHJBYm9ydDtcblx0XHRcdFx0XHRpZiAoIHRyYW5zcG9ydCApIHtcblx0XHRcdFx0XHRcdHRyYW5zcG9ydC5hYm9ydCggZmluYWxUZXh0ICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGRvbmUoIDAsIGZpbmFsVGV4dCApO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0Ly8gQXR0YWNoIGRlZmVycmVkc1xuXHRcdGRlZmVycmVkLnByb21pc2UoIGpxWEhSICk7XG5cblx0XHQvLyBBZGQgcHJvdG9jb2wgaWYgbm90IHByb3ZpZGVkIChwcmVmaWx0ZXJzIG1pZ2h0IGV4cGVjdCBpdClcblx0XHQvLyBIYW5kbGUgZmFsc3kgdXJsIGluIHRoZSBzZXR0aW5ncyBvYmplY3QgKHRyYWMtMTAwOTM6IGNvbnNpc3RlbmN5IHdpdGggb2xkIHNpZ25hdHVyZSlcblx0XHQvLyBXZSBhbHNvIHVzZSB0aGUgdXJsIHBhcmFtZXRlciBpZiBhdmFpbGFibGVcblx0XHRzLnVybCA9ICggKCB1cmwgfHwgcy51cmwgfHwgbG9jYXRpb24uaHJlZiApICsgXCJcIiApXG5cdFx0XHQucmVwbGFjZSggcnByb3RvY29sLCBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiApO1xuXG5cdFx0Ly8gQWxpYXMgbWV0aG9kIG9wdGlvbiB0byB0eXBlIGFzIHBlciB0aWNrZXQgdHJhYy0xMjAwNFxuXHRcdHMudHlwZSA9IG9wdGlvbnMubWV0aG9kIHx8IG9wdGlvbnMudHlwZSB8fCBzLm1ldGhvZCB8fCBzLnR5cGU7XG5cblx0XHQvLyBFeHRyYWN0IGRhdGFUeXBlcyBsaXN0XG5cdFx0cy5kYXRhVHlwZXMgPSAoIHMuZGF0YVR5cGUgfHwgXCIqXCIgKS50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgWyBcIlwiIF07XG5cblx0XHQvLyBBIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyIHdoZW4gdGhlIG9yaWdpbiBkb2Vzbid0IG1hdGNoIHRoZSBjdXJyZW50IG9yaWdpbi5cblx0XHRpZiAoIHMuY3Jvc3NEb21haW4gPT0gbnVsbCApIHtcblx0XHRcdHVybEFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiYVwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OCAtIDExLCBFZGdlIDEyIC0gMTVcblx0XHRcdC8vIElFIHRocm93cyBleGNlcHRpb24gb24gYWNjZXNzaW5nIHRoZSBocmVmIHByb3BlcnR5IGlmIHVybCBpcyBtYWxmb3JtZWQsXG5cdFx0XHQvLyBlLmcuIGh0dHA6Ly9leGFtcGxlLmNvbTo4MHgvXG5cdFx0XHR0cnkge1xuXHRcdFx0XHR1cmxBbmNob3IuaHJlZiA9IHMudXJsO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OCAtIDExIG9ubHlcblx0XHRcdFx0Ly8gQW5jaG9yJ3MgaG9zdCBwcm9wZXJ0eSBpc24ndCBjb3JyZWN0bHkgc2V0IHdoZW4gcy51cmwgaXMgcmVsYXRpdmVcblx0XHRcdFx0dXJsQW5jaG9yLmhyZWYgPSB1cmxBbmNob3IuaHJlZjtcblx0XHRcdFx0cy5jcm9zc0RvbWFpbiA9IG9yaWdpbkFuY2hvci5wcm90b2NvbCArIFwiLy9cIiArIG9yaWdpbkFuY2hvci5ob3N0ICE9PVxuXHRcdFx0XHRcdHVybEFuY2hvci5wcm90b2NvbCArIFwiLy9cIiArIHVybEFuY2hvci5ob3N0O1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gSWYgdGhlcmUgaXMgYW4gZXJyb3IgcGFyc2luZyB0aGUgVVJMLCBhc3N1bWUgaXQgaXMgY3Jvc3NEb21haW4sXG5cdFx0XHRcdC8vIGl0IGNhbiBiZSByZWplY3RlZCBieSB0aGUgdHJhbnNwb3J0IGlmIGl0IGlzIGludmFsaWRcblx0XHRcdFx0cy5jcm9zc0RvbWFpbiA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBkYXRhIGlmIG5vdCBhbHJlYWR5IGEgc3RyaW5nXG5cdFx0aWYgKCBzLmRhdGEgJiYgcy5wcm9jZXNzRGF0YSAmJiB0eXBlb2Ygcy5kYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cy5kYXRhID0galF1ZXJ5LnBhcmFtKCBzLmRhdGEsIHMudHJhZGl0aW9uYWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwcmVmaWx0ZXJzXG5cdFx0aW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XG5cblx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZVxuXHRcdGlmICggY29tcGxldGVkICkge1xuXHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdH1cblxuXHRcdC8vIFdlIGNhbiBmaXJlIGdsb2JhbCBldmVudHMgYXMgb2Ygbm93IGlmIGFza2VkIHRvXG5cdFx0Ly8gRG9uJ3QgZmlyZSBldmVudHMgaWYgalF1ZXJ5LmV2ZW50IGlzIHVuZGVmaW5lZCBpbiBhbiBBTUQtdXNhZ2Ugc2NlbmFyaW8gKHRyYWMtMTUxMTgpXG5cdFx0ZmlyZUdsb2JhbHMgPSBqUXVlcnkuZXZlbnQgJiYgcy5nbG9iYWw7XG5cblx0XHQvLyBXYXRjaCBmb3IgYSBuZXcgc2V0IG9mIHJlcXVlc3RzXG5cdFx0aWYgKCBmaXJlR2xvYmFscyAmJiBqUXVlcnkuYWN0aXZlKysgPT09IDAgKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggXCJhamF4U3RhcnRcIiApO1xuXHRcdH1cblxuXHRcdC8vIFVwcGVyY2FzZSB0aGUgdHlwZVxuXHRcdHMudHlwZSA9IHMudHlwZS50b1VwcGVyQ2FzZSgpO1xuXG5cdFx0Ly8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnRcblx0XHRzLmhhc0NvbnRlbnQgPSAhcm5vQ29udGVudC50ZXN0KCBzLnR5cGUgKTtcblxuXHRcdC8vIFNhdmUgdGhlIFVSTCBpbiBjYXNlIHdlJ3JlIHRveWluZyB3aXRoIHRoZSBJZi1Nb2RpZmllZC1TaW5jZVxuXHRcdC8vIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciBsYXRlciBvblxuXHRcdC8vIFJlbW92ZSBoYXNoIHRvIHNpbXBsaWZ5IHVybCBtYW5pcHVsYXRpb25cblx0XHRjYWNoZVVSTCA9IHMudXJsLnJlcGxhY2UoIHJoYXNoLCBcIlwiICk7XG5cblx0XHQvLyBNb3JlIG9wdGlvbnMgaGFuZGxpbmcgZm9yIHJlcXVlc3RzIHdpdGggbm8gY29udGVudFxuXHRcdGlmICggIXMuaGFzQ29udGVudCApIHtcblxuXHRcdFx0Ly8gUmVtZW1iZXIgdGhlIGhhc2ggc28gd2UgY2FuIHB1dCBpdCBiYWNrXG5cdFx0XHR1bmNhY2hlZCA9IHMudXJsLnNsaWNlKCBjYWNoZVVSTC5sZW5ndGggKTtcblxuXHRcdFx0Ly8gSWYgZGF0YSBpcyBhdmFpbGFibGUgYW5kIHNob3VsZCBiZSBwcm9jZXNzZWQsIGFwcGVuZCBkYXRhIHRvIHVybFxuXHRcdFx0aWYgKCBzLmRhdGEgJiYgKCBzLnByb2Nlc3NEYXRhIHx8IHR5cGVvZiBzLmRhdGEgPT09IFwic3RyaW5nXCIgKSApIHtcblx0XHRcdFx0Y2FjaGVVUkwgKz0gKCBycXVlcnkudGVzdCggY2FjaGVVUkwgKSA/IFwiJlwiIDogXCI/XCIgKSArIHMuZGF0YTtcblxuXHRcdFx0XHQvLyB0cmFjLTk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxuXHRcdFx0XHRkZWxldGUgcy5kYXRhO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgb3IgdXBkYXRlIGFudGktY2FjaGUgcGFyYW0gaWYgbmVlZGVkXG5cdFx0XHRpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRjYWNoZVVSTCA9IGNhY2hlVVJMLnJlcGxhY2UoIHJhbnRpQ2FjaGUsIFwiJDFcIiApO1xuXHRcdFx0XHR1bmNhY2hlZCA9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBcIl89XCIgKyAoIG5vbmNlLmd1aWQrKyApICtcblx0XHRcdFx0XHR1bmNhY2hlZDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUHV0IGhhc2ggYW5kIGFudGktY2FjaGUgb24gdGhlIFVSTCB0aGF0IHdpbGwgYmUgcmVxdWVzdGVkIChnaC0xNzMyKVxuXHRcdFx0cy51cmwgPSBjYWNoZVVSTCArIHVuY2FjaGVkO1xuXG5cdFx0Ly8gQ2hhbmdlICclMjAnIHRvICcrJyBpZiB0aGlzIGlzIGVuY29kZWQgZm9ybSBib2R5IGNvbnRlbnQgKGdoLTI2NTgpXG5cdFx0fSBlbHNlIGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiZcblx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiICkuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICkge1xuXHRcdFx0cy5kYXRhID0gcy5kYXRhLnJlcGxhY2UoIHIyMCwgXCIrXCIgKTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1sgMCBdIF0gP1xuXHRcdFx0XHRzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWyAwIF0gXSArXG5cdFx0XHRcdFx0KCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiZcblx0XHRcdCggcy5iZWZvcmVTZW5kLmNhbGwoIGNhbGxiYWNrQ29udGV4dCwganFYSFIsIHMgKSA9PT0gZmFsc2UgfHwgY29tcGxldGVkICkgKSB7XG5cblx0XHRcdC8vIEFib3J0IGlmIG5vdCBkb25lIGFscmVhZHkgYW5kIHJldHVyblxuXHRcdFx0cmV0dXJuIGpxWEhSLmFib3J0KCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWJvcnRpbmcgaXMgbm8gbG9uZ2VyIGEgY2FuY2VsbGF0aW9uXG5cdFx0c3RyQWJvcnQgPSBcImFib3J0XCI7XG5cblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHNcblx0XHRjb21wbGV0ZURlZmVycmVkLmFkZCggcy5jb21wbGV0ZSApO1xuXHRcdGpxWEhSLmRvbmUoIHMuc3VjY2VzcyApO1xuXHRcdGpxWEhSLmZhaWwoIHMuZXJyb3IgKTtcblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGFqYXhTZW5kLCBzdG9wIHRoZXJlXG5cdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGpxWEhSLmFib3J0KCBcInRpbWVvdXRcIiApO1xuXHRcdFx0XHR9LCBzLnRpbWVvdXQgKTtcblx0XHRcdH1cblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29tcGxldGVkID0gZmFsc2U7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gUmV0aHJvdyBwb3N0LWNvbXBsZXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUHJvcGFnYXRlIG90aGVycyBhcyByZXN1bHRzXG5cdFx0XHRcdGRvbmUoIC0xLCBlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lXG5cdFx0ZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBuYXRpdmVTdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7XG5cdFx0XHR2YXIgaXNTdWNjZXNzLCBzdWNjZXNzLCBlcnJvciwgcmVzcG9uc2UsIG1vZGlmaWVkLFxuXHRcdFx0XHRzdGF0dXNUZXh0ID0gbmF0aXZlU3RhdHVzVGV4dDtcblxuXHRcdFx0Ly8gSWdub3JlIHJlcGVhdCBpbnZvY2F0aW9uc1xuXHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29tcGxldGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gQ2xlYXIgdGltZW91dCBpZiBpdCBleGlzdHNcblx0XHRcdGlmICggdGltZW91dFRpbWVyICkge1xuXHRcdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb25cblx0XHRcdC8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhlIGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpXG5cdFx0XHR0cmFuc3BvcnQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnNcblx0XHRcdHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IGhlYWRlcnMgfHwgXCJcIjtcblxuXHRcdFx0Ly8gU2V0IHJlYWR5U3RhdGVcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7XG5cblx0XHRcdC8vIERldGVybWluZSBpZiBzdWNjZXNzZnVsXG5cdFx0XHRpc1N1Y2Nlc3MgPSBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNDtcblxuXHRcdFx0Ly8gR2V0IHJlc3BvbnNlIGRhdGFcblx0XHRcdGlmICggcmVzcG9uc2VzICkge1xuXHRcdFx0XHRyZXNwb25zZSA9IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVXNlIGEgbm9vcCBjb252ZXJ0ZXIgZm9yIG1pc3Npbmcgc2NyaXB0IGJ1dCBub3QgaWYganNvbnBcblx0XHRcdGlmICggIWlzU3VjY2VzcyAmJlxuXHRcdFx0XHRqUXVlcnkuaW5BcnJheSggXCJzY3JpcHRcIiwgcy5kYXRhVHlwZXMgKSA+IC0xICYmXG5cdFx0XHRcdGpRdWVyeS5pbkFycmF5KCBcImpzb25cIiwgcy5kYXRhVHlwZXMgKSA8IDAgKSB7XG5cdFx0XHRcdHMuY29udmVydGVyc1sgXCJ0ZXh0IHNjcmlwdFwiIF0gPSBmdW5jdGlvbigpIHt9O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb252ZXJ0IG5vIG1hdHRlciB3aGF0ICh0aGF0IHdheSByZXNwb25zZVhYWCBmaWVsZHMgYXJlIGFsd2F5cyBzZXQpXG5cdFx0XHRyZXNwb25zZSA9IGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSwganFYSFIsIGlzU3VjY2VzcyApO1xuXG5cdFx0XHQvLyBJZiBzdWNjZXNzZnVsLCBoYW5kbGUgdHlwZSBjaGFpbmluZ1xuXHRcdFx0aWYgKCBpc1N1Y2Nlc3MgKSB7XG5cblx0XHRcdFx0Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS5cblx0XHRcdFx0aWYgKCBzLmlmTW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0bW9kaWZpZWQgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggXCJMYXN0LU1vZGlmaWVkXCIgKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcImV0YWdcIiApO1xuXHRcdFx0XHRcdGlmICggbW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIGlmIG5vIGNvbnRlbnRcblx0XHRcdFx0aWYgKCBzdGF0dXMgPT09IDIwNCB8fCBzLnR5cGUgPT09IFwiSEVBRFwiICkge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcIm5vY29udGVudFwiO1xuXG5cdFx0XHRcdC8vIGlmIG5vdCBtb2RpZmllZFxuXHRcdFx0XHR9IGVsc2UgaWYgKCBzdGF0dXMgPT09IDMwNCApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub3Rtb2RpZmllZFwiO1xuXG5cdFx0XHRcdC8vIElmIHdlIGhhdmUgZGF0YSwgbGV0J3MgY29udmVydCBpdFxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0ZTtcblx0XHRcdFx0XHRzdWNjZXNzID0gcmVzcG9uc2UuZGF0YTtcblx0XHRcdFx0XHRlcnJvciA9IHJlc3BvbnNlLmVycm9yO1xuXHRcdFx0XHRcdGlzU3VjY2VzcyA9ICFlcnJvcjtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHQvLyBFeHRyYWN0IGVycm9yIGZyb20gc3RhdHVzVGV4dCBhbmQgbm9ybWFsaXplIGZvciBub24tYWJvcnRzXG5cdFx0XHRcdGVycm9yID0gc3RhdHVzVGV4dDtcblx0XHRcdFx0aWYgKCBzdGF0dXMgfHwgIXN0YXR1c1RleHQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwiZXJyb3JcIjtcblx0XHRcdFx0XHRpZiAoIHN0YXR1cyA8IDAgKSB7XG5cdFx0XHRcdFx0XHRzdGF0dXMgPSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdFxuXHRcdFx0anFYSFIuc3RhdHVzID0gc3RhdHVzO1xuXHRcdFx0anFYSFIuc3RhdHVzVGV4dCA9ICggbmF0aXZlU3RhdHVzVGV4dCB8fCBzdGF0dXNUZXh0ICkgKyBcIlwiO1xuXG5cdFx0XHQvLyBTdWNjZXNzL0Vycm9yXG5cdFx0XHRpZiAoIGlzU3VjY2VzcyApIHtcblx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBzdWNjZXNzLCBzdGF0dXNUZXh0LCBqcVhIUiBdICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQsIGVycm9yIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdGpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTtcblx0XHRcdHN0YXR1c0NvZGUgPSB1bmRlZmluZWQ7XG5cblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBpc1N1Y2Nlc3MgPyBcImFqYXhTdWNjZXNzXCIgOiBcImFqYXhFcnJvclwiLFxuXHRcdFx0XHRcdFsganFYSFIsIHMsIGlzU3VjY2VzcyA/IHN1Y2Nlc3MgOiBlcnJvciBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbXBsZXRlXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkLmZpcmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQgXSApO1xuXG5cdFx0XHRpZiAoIGZpcmVHbG9iYWxzICkge1xuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggXCJhamF4Q29tcGxldGVcIiwgWyBqcVhIUiwgcyBdICk7XG5cblx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyXG5cdFx0XHRcdGlmICggISggLS1qUXVlcnkuYWN0aXZlICkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIFwiYWpheFN0b3BcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGpxWEhSO1xuXHR9LFxuXG5cdGdldEpTT046IGZ1bmN0aW9uKCB1cmwsIGRhdGEsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIGRhdGEsIGNhbGxiYWNrLCBcImpzb25cIiApO1xuXHR9LFxuXG5cdGdldFNjcmlwdDogZnVuY3Rpb24oIHVybCwgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5nZXQoIHVybCwgdW5kZWZpbmVkLCBjYWxsYmFjaywgXCJzY3JpcHRcIiApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiZ2V0XCIsIFwicG9zdFwiIF0sIGZ1bmN0aW9uKCBfaSwgbWV0aG9kICkge1xuXHRqUXVlcnlbIG1ldGhvZCBdID0gZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5cGUgKSB7XG5cblx0XHQvLyBTaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZFxuXHRcdGlmICggaXNGdW5jdGlvbiggZGF0YSApICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7XG5cdFx0XHRjYWxsYmFjayA9IGRhdGE7XG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIFRoZSB1cmwgY2FuIGJlIGFuIG9wdGlvbnMgb2JqZWN0ICh3aGljaCB0aGVuIG11c3QgaGF2ZSAudXJsKVxuXHRcdHJldHVybiBqUXVlcnkuYWpheCggalF1ZXJ5LmV4dGVuZCgge1xuXHRcdFx0dXJsOiB1cmwsXG5cdFx0XHR0eXBlOiBtZXRob2QsXG5cdFx0XHRkYXRhVHlwZTogdHlwZSxcblx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFja1xuXHRcdH0sIGpRdWVyeS5pc1BsYWluT2JqZWN0KCB1cmwgKSAmJiB1cmwgKSApO1xuXHR9O1xufSApO1xuXG5qUXVlcnkuYWpheFByZWZpbHRlciggZnVuY3Rpb24oIHMgKSB7XG5cdHZhciBpO1xuXHRmb3IgKCBpIGluIHMuaGVhZGVycyApIHtcblx0XHRpZiAoIGkudG9Mb3dlckNhc2UoKSA9PT0gXCJjb250ZW50LXR5cGVcIiApIHtcblx0XHRcdHMuY29udGVudFR5cGUgPSBzLmhlYWRlcnNbIGkgXSB8fCBcIlwiO1xuXHRcdH1cblx0fVxufSApO1xuXG5cbmpRdWVyeS5fZXZhbFVybCA9IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMsIGRvYyApIHtcblx0cmV0dXJuIGpRdWVyeS5hamF4KCB7XG5cdFx0dXJsOiB1cmwsXG5cblx0XHQvLyBNYWtlIHRoaXMgZXhwbGljaXQsIHNpbmNlIHVzZXIgY2FuIG92ZXJyaWRlIHRoaXMgdGhyb3VnaCBhamF4U2V0dXAgKHRyYWMtMTEyNjQpXG5cdFx0dHlwZTogXCJHRVRcIixcblx0XHRkYXRhVHlwZTogXCJzY3JpcHRcIixcblx0XHRjYWNoZTogdHJ1ZSxcblx0XHRhc3luYzogZmFsc2UsXG5cdFx0Z2xvYmFsOiBmYWxzZSxcblxuXHRcdC8vIE9ubHkgZXZhbHVhdGUgdGhlIHJlc3BvbnNlIGlmIGl0IGlzIHN1Y2Nlc3NmdWwgKGdoLTQxMjYpXG5cdFx0Ly8gZGF0YUZpbHRlciBpcyBub3QgaW52b2tlZCBmb3IgZmFpbHVyZSByZXNwb25zZXMsIHNvIHVzaW5nIGl0IGluc3RlYWRcblx0XHQvLyBvZiB0aGUgZGVmYXVsdCBjb252ZXJ0ZXIgaXMga2x1ZGd5IGJ1dCBpdCB3b3Jrcy5cblx0XHRjb252ZXJ0ZXJzOiB7XG5cdFx0XHRcInRleHQgc2NyaXB0XCI6IGZ1bmN0aW9uKCkge31cblx0XHR9LFxuXHRcdGRhdGFGaWx0ZXI6IGZ1bmN0aW9uKCByZXNwb25zZSApIHtcblx0XHRcdGpRdWVyeS5nbG9iYWxFdmFsKCByZXNwb25zZSwgb3B0aW9ucywgZG9jICk7XG5cdFx0fVxuXHR9ICk7XG59O1xuXG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0d3JhcEFsbDogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0dmFyIHdyYXA7XG5cblx0XHRpZiAoIHRoaXNbIDAgXSApIHtcblx0XHRcdGlmICggaXNGdW5jdGlvbiggaHRtbCApICkge1xuXHRcdFx0XHRodG1sID0gaHRtbC5jYWxsKCB0aGlzWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmRcblx0XHRcdHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbIDAgXS5vd25lckRvY3VtZW50ICkuZXEoIDAgKS5jbG9uZSggdHJ1ZSApO1xuXG5cdFx0XHRpZiAoIHRoaXNbIDAgXS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR3cmFwLmluc2VydEJlZm9yZSggdGhpc1sgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdHdyYXAubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIGVsZW0gPSB0aGlzO1xuXG5cdFx0XHRcdHdoaWxlICggZWxlbS5maXJzdEVsZW1lbnRDaGlsZCApIHtcblx0XHRcdFx0XHRlbGVtID0gZWxlbS5maXJzdEVsZW1lbnRDaGlsZDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbGVtO1xuXHRcdFx0fSApLmFwcGVuZCggdGhpcyApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBodG1sICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkud3JhcElubmVyKCBodG1sLmNhbGwoIHRoaXMsIGkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKSxcblx0XHRcdFx0Y29udGVudHMgPSBzZWxmLmNvbnRlbnRzKCk7XG5cblx0XHRcdGlmICggY29udGVudHMubGVuZ3RoICkge1xuXHRcdFx0XHRjb250ZW50cy53cmFwQWxsKCBodG1sICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHNlbGYuYXBwZW5kKCBodG1sICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdHdyYXA6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHZhciBodG1sSXNGdW5jdGlvbiA9IGlzRnVuY3Rpb24oIGh0bWwgKTtcblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0alF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaHRtbElzRnVuY3Rpb24gPyBodG1sLmNhbGwoIHRoaXMsIGkgKSA6IGh0bWwgKTtcblx0XHR9ICk7XG5cdH0sXG5cblx0dW53cmFwOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dGhpcy5wYXJlbnQoIHNlbGVjdG9yICkubm90KCBcImJvZHlcIiApLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5KCB0aGlzICkucmVwbGFjZVdpdGgoIHRoaXMuY2hpbGROb2RlcyApO1xuXHRcdH0gKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufSApO1xuXG5cbmpRdWVyeS5leHByLnBzZXVkb3MuaGlkZGVuID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHJldHVybiAhalF1ZXJ5LmV4cHIucHNldWRvcy52aXNpYmxlKCBlbGVtICk7XG59O1xualF1ZXJ5LmV4cHIucHNldWRvcy52aXNpYmxlID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHJldHVybiAhISggZWxlbS5vZmZzZXRXaWR0aCB8fCBlbGVtLm9mZnNldEhlaWdodCB8fCBlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICk7XG59O1xuXG5cblxuXG5qUXVlcnkuYWpheFNldHRpbmdzLnhociA9IGZ1bmN0aW9uKCkge1xuXHR0cnkge1xuXHRcdHJldHVybiBuZXcgd2luZG93LlhNTEh0dHBSZXF1ZXN0KCk7XG5cdH0gY2F0Y2ggKCBlICkge31cbn07XG5cbnZhciB4aHJTdWNjZXNzU3RhdHVzID0ge1xuXG5cdFx0Ly8gRmlsZSBwcm90b2NvbCBhbHdheXMgeWllbGRzIHN0YXR1cyBjb2RlIDAsIGFzc3VtZSAyMDBcblx0XHQwOiAyMDAsXG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHRcdC8vIHRyYWMtMTQ1MDogc29tZXRpbWVzIElFIHJldHVybnMgMTIyMyB3aGVuIGl0IHNob3VsZCBiZSAyMDRcblx0XHQxMjIzOiAyMDRcblx0fSxcblx0eGhyU3VwcG9ydGVkID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTtcblxuc3VwcG9ydC5jb3JzID0gISF4aHJTdXBwb3J0ZWQgJiYgKCBcIndpdGhDcmVkZW50aWFsc1wiIGluIHhoclN1cHBvcnRlZCApO1xuc3VwcG9ydC5hamF4ID0geGhyU3VwcG9ydGVkID0gISF4aHJTdXBwb3J0ZWQ7XG5cbmpRdWVyeS5hamF4VHJhbnNwb3J0KCBmdW5jdGlvbiggb3B0aW9ucyApIHtcblx0dmFyIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrO1xuXG5cdC8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3Rcblx0aWYgKCBzdXBwb3J0LmNvcnMgfHwgeGhyU3VwcG9ydGVkICYmICFvcHRpb25zLmNyb3NzRG9tYWluICkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggaGVhZGVycywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHZhciBpLFxuXHRcdFx0XHRcdHhociA9IG9wdGlvbnMueGhyKCk7XG5cblx0XHRcdFx0eGhyLm9wZW4oXG5cdFx0XHRcdFx0b3B0aW9ucy50eXBlLFxuXHRcdFx0XHRcdG9wdGlvbnMudXJsLFxuXHRcdFx0XHRcdG9wdGlvbnMuYXN5bmMsXG5cdFx0XHRcdFx0b3B0aW9ucy51c2VybmFtZSxcblx0XHRcdFx0XHRvcHRpb25zLnBhc3N3b3JkXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0Ly8gQXBwbHkgY3VzdG9tIGZpZWxkcyBpZiBwcm92aWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdGZvciAoIGkgaW4gb3B0aW9ucy54aHJGaWVsZHMgKSB7XG5cdFx0XHRcdFx0XHR4aHJbIGkgXSA9IG9wdGlvbnMueGhyRmllbGRzWyBpIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMubWltZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUgKSB7XG5cdFx0XHRcdFx0eGhyLm92ZXJyaWRlTWltZVR5cGUoIG9wdGlvbnMubWltZVR5cGUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFgtUmVxdWVzdGVkLVdpdGggaGVhZGVyXG5cdFx0XHRcdC8vIEZvciBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmVcblx0XHRcdFx0Ly8gYWtpbiB0byBhIGppZ3NhdyBwdXp6bGUsIHdlIHNpbXBseSBuZXZlciBzZXQgaXQgdG8gYmUgc3VyZS5cblx0XHRcdFx0Ly8gKGl0IGNhbiBhbHdheXMgYmUgc2V0IG9uIGEgcGVyLXJlcXVlc3QgYmFzaXMgb3IgZXZlbiB1c2luZyBhamF4U2V0dXApXG5cdFx0XHRcdC8vIEZvciBzYW1lLWRvbWFpbiByZXF1ZXN0cywgd29uJ3QgY2hhbmdlIGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLlxuXHRcdFx0XHRpZiAoICFvcHRpb25zLmNyb3NzRG9tYWluICYmICFoZWFkZXJzWyBcIlgtUmVxdWVzdGVkLVdpdGhcIiBdICkge1xuXHRcdFx0XHRcdGhlYWRlcnNbIFwiWC1SZXF1ZXN0ZWQtV2l0aFwiIF0gPSBcIlhNTEh0dHBSZXF1ZXN0XCI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTZXQgaGVhZGVyc1xuXHRcdFx0XHRmb3IgKCBpIGluIGhlYWRlcnMgKSB7XG5cdFx0XHRcdFx0eGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQ2FsbGJhY2tcblx0XHRcdFx0Y2FsbGJhY2sgPSBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdFx0XHRjYWxsYmFjayA9IGVycm9yQ2FsbGJhY2sgPSB4aHIub25sb2FkID1cblx0XHRcdFx0XHRcdFx0XHR4aHIub25lcnJvciA9IHhoci5vbmFib3J0ID0geGhyLm9udGltZW91dCA9XG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiYWJvcnRcIiApIHtcblx0XHRcdFx0XHRcdFx0XHR4aHIuYWJvcnQoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdHlwZSA9PT0gXCJlcnJvclwiICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHRcdFx0XHQvLyBPbiBhIG1hbnVhbCBuYXRpdmUgYWJvcnQsIElFOSB0aHJvd3Ncblx0XHRcdFx0XHRcdFx0XHQvLyBlcnJvcnMgb24gYW55IHByb3BlcnR5IGFjY2VzcyB0aGF0IGlzIG5vdCByZWFkeVN0YXRlXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCB0eXBlb2YgeGhyLnN0YXR1cyAhPT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCAwLCBcImVycm9yXCIgKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRmlsZTogcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgMDsgc2VlIHRyYWMtODYwNSwgdHJhYy0xNDIwN1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzVGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHJTdWNjZXNzU3RhdHVzWyB4aHIuc3RhdHVzIF0gfHwgeGhyLnN0YXR1cyxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXNUZXh0LFxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSUU5IGhhcyBubyBYSFIyIGJ1dCB0aHJvd3Mgb24gYmluYXJ5ICh0cmFjLTExNDI2KVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gRm9yIFhIUjIgbm9uLXRleHQsIGxldCB0aGUgY2FsbGVyIGhhbmRsZSBpdCAoZ2gtMjQ5OClcblx0XHRcdFx0XHRcdFx0XHRcdCggeGhyLnJlc3BvbnNlVHlwZSB8fCBcInRleHRcIiApICE9PSBcInRleHRcIiAgfHxcblx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiB4aHIucmVzcG9uc2VUZXh0ICE9PSBcInN0cmluZ1wiID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0eyBiaW5hcnk6IHhoci5yZXNwb25zZSB9IDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0eyB0ZXh0OiB4aHIucmVzcG9uc2VUZXh0IH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKClcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fTtcblxuXHRcdFx0XHQvLyBMaXN0ZW4gdG8gZXZlbnRzXG5cdFx0XHRcdHhoci5vbmxvYWQgPSBjYWxsYmFjaygpO1xuXHRcdFx0XHRlcnJvckNhbGxiYWNrID0geGhyLm9uZXJyb3IgPSB4aHIub250aW1lb3V0ID0gY2FsbGJhY2soIFwiZXJyb3JcIiApO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDkgb25seVxuXHRcdFx0XHQvLyBVc2Ugb25yZWFkeXN0YXRlY2hhbmdlIHRvIHJlcGxhY2Ugb25hYm9ydFxuXHRcdFx0XHQvLyB0byBoYW5kbGUgdW5jYXVnaHQgYWJvcnRzXG5cdFx0XHRcdGlmICggeGhyLm9uYWJvcnQgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHR4aHIub25hYm9ydCA9IGVycm9yQ2FsbGJhY2s7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBDaGVjayByZWFkeVN0YXRlIGJlZm9yZSB0aW1lb3V0IGFzIGl0IGNoYW5nZXNcblx0XHRcdFx0XHRcdGlmICggeGhyLnJlYWR5U3RhdGUgPT09IDQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQWxsb3cgb25lcnJvciB0byBiZSBjYWxsZWQgZmlyc3QsXG5cdFx0XHRcdFx0XHRcdC8vIGJ1dCB0aGF0IHdpbGwgbm90IGhhbmRsZSBhIG5hdGl2ZSBhYm9ydFxuXHRcdFx0XHRcdFx0XHQvLyBBbHNvLCBzYXZlIGVycm9yQ2FsbGJhY2sgdG8gYSB2YXJpYWJsZVxuXHRcdFx0XHRcdFx0XHQvLyBhcyB4aHIub25lcnJvciBjYW5ub3QgYmUgYWNjZXNzZWRcblx0XHRcdFx0XHRcdFx0d2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvckNhbGxiYWNrKCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIENyZWF0ZSB0aGUgYWJvcnQgY2FsbGJhY2tcblx0XHRcdFx0Y2FsbGJhY2sgPSBjYWxsYmFjayggXCJhYm9ydFwiICk7XG5cblx0XHRcdFx0dHJ5IHtcblxuXHRcdFx0XHRcdC8vIERvIHNlbmQgdGhlIHJlcXVlc3QgKHRoaXMgbWF5IHJhaXNlIGFuIGV4Y2VwdGlvbilcblx0XHRcdFx0XHR4aHIuc2VuZCggb3B0aW9ucy5oYXNDb250ZW50ICYmIG9wdGlvbnMuZGF0YSB8fCBudWxsICk7XG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXG5cdFx0XHRcdFx0Ly8gdHJhYy0xNDY4MzogT25seSByZXRocm93IGlmIHRoaXMgaGFzbid0IGJlZW4gbm90aWZpZWQgYXMgYW4gZXJyb3IgeWV0XG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxuLy8gUHJldmVudCBhdXRvLWV4ZWN1dGlvbiBvZiBzY3JpcHRzIHdoZW4gbm8gZXhwbGljaXQgZGF0YVR5cGUgd2FzIHByb3ZpZGVkIChTZWUgZ2gtMjQzMilcbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHMuY29udGVudHMuc2NyaXB0ID0gZmFsc2U7XG5cdH1cbn0gKTtcblxuLy8gSW5zdGFsbCBzY3JpcHQgZGF0YVR5cGVcbmpRdWVyeS5hamF4U2V0dXAoIHtcblx0YWNjZXB0czoge1xuXHRcdHNjcmlwdDogXCJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIFwiICtcblx0XHRcdFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0XCJcblx0fSxcblx0Y29udGVudHM6IHtcblx0XHRzY3JpcHQ6IC9cXGIoPzpqYXZhfGVjbWEpc2NyaXB0XFxiL1xuXHR9LFxuXHRjb252ZXJ0ZXJzOiB7XG5cdFx0XCJ0ZXh0IHNjcmlwdFwiOiBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRcdGpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7XG5cdFx0XHRyZXR1cm4gdGV4dDtcblx0XHR9XG5cdH1cbn0gKTtcblxuLy8gSGFuZGxlIGNhY2hlJ3Mgc3BlY2lhbCBjYXNlIGFuZCBjcm9zc0RvbWFpblxualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xuXHRpZiAoIHMuY2FjaGUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRzLmNhY2hlID0gZmFsc2U7XG5cdH1cblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHMudHlwZSA9IFwiR0VUXCI7XG5cdH1cbn0gKTtcblxuLy8gQmluZCBzY3JpcHQgdGFnIGhhY2sgdHJhbnNwb3J0XG5qUXVlcnkuYWpheFRyYW5zcG9ydCggXCJzY3JpcHRcIiwgZnVuY3Rpb24oIHMgKSB7XG5cblx0Ly8gVGhpcyB0cmFuc3BvcnQgb25seSBkZWFscyB3aXRoIGNyb3NzIGRvbWFpbiBvciBmb3JjZWQtYnktYXR0cnMgcmVxdWVzdHNcblx0aWYgKCBzLmNyb3NzRG9tYWluIHx8IHMuc2NyaXB0QXR0cnMgKSB7XG5cdFx0dmFyIHNjcmlwdCwgY2FsbGJhY2s7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNlbmQ6IGZ1bmN0aW9uKCBfLCBjb21wbGV0ZSApIHtcblx0XHRcdFx0c2NyaXB0ID0galF1ZXJ5KCBcIjxzY3JpcHQ+XCIgKVxuXHRcdFx0XHRcdC5hdHRyKCBzLnNjcmlwdEF0dHJzIHx8IHt9IClcblx0XHRcdFx0XHQucHJvcCggeyBjaGFyc2V0OiBzLnNjcmlwdENoYXJzZXQsIHNyYzogcy51cmwgfSApXG5cdFx0XHRcdFx0Lm9uKCBcImxvYWQgZXJyb3JcIiwgY2FsbGJhY2sgPSBmdW5jdGlvbiggZXZ0ICkge1xuXHRcdFx0XHRcdFx0c2NyaXB0LnJlbW92ZSgpO1xuXHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSBudWxsO1xuXHRcdFx0XHRcdFx0aWYgKCBldnQgKSB7XG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCBldnQudHlwZSA9PT0gXCJlcnJvclwiID8gNDA0IDogMjAwLCBldnQudHlwZSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gKTtcblxuXHRcdFx0XHQvLyBVc2UgbmF0aXZlIERPTSBtYW5pcHVsYXRpb24gdG8gYXZvaWQgb3VyIGRvbU1hbmlwIEFKQVggdHJpY2tlcnlcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCggc2NyaXB0WyAwIF0gKTtcblx0XHRcdH0sXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxudmFyIG9sZENhbGxiYWNrcyA9IFtdLFxuXHRyanNvbnAgPSAvKD0pXFw/KD89JnwkKXxcXD9cXD8vO1xuXG4vLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzXG5qUXVlcnkuYWpheFNldHVwKCB7XG5cdGpzb25wOiBcImNhbGxiYWNrXCIsXG5cdGpzb25wQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBjYWxsYmFjayA9IG9sZENhbGxiYWNrcy5wb3AoKSB8fCAoIGpRdWVyeS5leHBhbmRvICsgXCJfXCIgKyAoIG5vbmNlLmd1aWQrKyApICk7XG5cdFx0dGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7XG5cdFx0cmV0dXJuIGNhbGxiYWNrO1xuXHR9XG59ICk7XG5cbi8vIERldGVjdCwgbm9ybWFsaXplIG9wdGlvbnMgYW5kIGluc3RhbGwgY2FsbGJhY2tzIGZvciBqc29ucCByZXF1ZXN0c1xualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwianNvbiBqc29ucFwiLCBmdW5jdGlvbiggcywgb3JpZ2luYWxTZXR0aW5ncywganFYSFIgKSB7XG5cblx0dmFyIGNhbGxiYWNrTmFtZSwgb3ZlcndyaXR0ZW4sIHJlc3BvbnNlQ29udGFpbmVyLFxuXHRcdGpzb25Qcm9wID0gcy5qc29ucCAhPT0gZmFsc2UgJiYgKCByanNvbnAudGVzdCggcy51cmwgKSA/XG5cdFx0XHRcInVybFwiIDpcblx0XHRcdHR5cGVvZiBzLmRhdGEgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0KCBzLmNvbnRlbnRUeXBlIHx8IFwiXCIgKVxuXHRcdFx0XHRcdC5pbmRleE9mKCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiICkgPT09IDAgJiZcblx0XHRcdFx0cmpzb25wLnRlc3QoIHMuZGF0YSApICYmIFwiZGF0YVwiXG5cdFx0KTtcblxuXHQvLyBIYW5kbGUgaWZmIHRoZSBleHBlY3RlZCBkYXRhIHR5cGUgaXMgXCJqc29ucFwiIG9yIHdlIGhhdmUgYSBwYXJhbWV0ZXIgdG8gc2V0XG5cdGlmICgganNvblByb3AgfHwgcy5kYXRhVHlwZXNbIDAgXSA9PT0gXCJqc29ucFwiICkge1xuXG5cdFx0Ly8gR2V0IGNhbGxiYWNrIG5hbWUsIHJlbWVtYmVyaW5nIHByZWV4aXN0aW5nIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBpdFxuXHRcdGNhbGxiYWNrTmFtZSA9IHMuanNvbnBDYWxsYmFjayA9IGlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID9cblx0XHRcdHMuanNvbnBDYWxsYmFjaygpIDpcblx0XHRcdHMuanNvbnBDYWxsYmFjaztcblxuXHRcdC8vIEluc2VydCBjYWxsYmFjayBpbnRvIHVybCBvciBmb3JtIGRhdGFcblx0XHRpZiAoIGpzb25Qcm9wICkge1xuXHRcdFx0c1sganNvblByb3AgXSA9IHNbIGpzb25Qcm9wIF0ucmVwbGFjZSggcmpzb25wLCBcIiQxXCIgKyBjYWxsYmFja05hbWUgKTtcblx0XHR9IGVsc2UgaWYgKCBzLmpzb25wICE9PSBmYWxzZSApIHtcblx0XHRcdHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmpzb25wICsgXCI9XCIgKyBjYWxsYmFja05hbWU7XG5cdFx0fVxuXG5cdFx0Ly8gVXNlIGRhdGEgY29udmVydGVyIHRvIHJldHJpZXZlIGpzb24gYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvblxuXHRcdHMuY29udmVydGVyc1sgXCJzY3JpcHQganNvblwiIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIXJlc3BvbnNlQ29udGFpbmVyICkge1xuXHRcdFx0XHRqUXVlcnkuZXJyb3IoIGNhbGxiYWNrTmFtZSArIFwiIHdhcyBub3QgY2FsbGVkXCIgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZUNvbnRhaW5lclsgMCBdO1xuXHRcdH07XG5cblx0XHQvLyBGb3JjZSBqc29uIGRhdGFUeXBlXG5cdFx0cy5kYXRhVHlwZXNbIDAgXSA9IFwianNvblwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja1xuXHRcdG92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTtcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IGFyZ3VtZW50cztcblx0XHR9O1xuXG5cdFx0Ly8gQ2xlYW4tdXAgZnVuY3Rpb24gKGZpcmVzIGFmdGVyIGNvbnZlcnRlcnMpXG5cdFx0anFYSFIuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gSWYgcHJldmlvdXMgdmFsdWUgZGlkbid0IGV4aXN0IC0gcmVtb3ZlIGl0XG5cdFx0XHRpZiAoIG92ZXJ3cml0dGVuID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdGpRdWVyeSggd2luZG93ICkucmVtb3ZlUHJvcCggY2FsbGJhY2tOYW1lICk7XG5cblx0XHRcdC8vIE90aGVyd2lzZSByZXN0b3JlIHByZWV4aXN0aW5nIHZhbHVlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gb3ZlcndyaXR0ZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNhdmUgYmFjayBhcyBmcmVlXG5cdFx0XHRpZiAoIHNbIGNhbGxiYWNrTmFtZSBdICkge1xuXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHJlLXVzaW5nIHRoZSBvcHRpb25zIGRvZXNuJ3Qgc2NyZXcgdGhpbmdzIGFyb3VuZFxuXHRcdFx0XHRzLmpzb25wQ2FsbGJhY2sgPSBvcmlnaW5hbFNldHRpbmdzLmpzb25wQ2FsbGJhY2s7XG5cblx0XHRcdFx0Ly8gU2F2ZSB0aGUgY2FsbGJhY2sgbmFtZSBmb3IgZnV0dXJlIHVzZVxuXHRcdFx0XHRvbGRDYWxsYmFja3MucHVzaCggY2FsbGJhY2tOYW1lICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZVxuXHRcdFx0aWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBpc0Z1bmN0aW9uKCBvdmVyd3JpdHRlbiApICkge1xuXHRcdFx0XHRvdmVyd3JpdHRlbiggcmVzcG9uc2VDb250YWluZXJbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IG92ZXJ3cml0dGVuID0gdW5kZWZpbmVkO1xuXHRcdH0gKTtcblxuXHRcdC8vIERlbGVnYXRlIHRvIHNjcmlwdFxuXHRcdHJldHVybiBcInNjcmlwdFwiO1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFN1cHBvcnQ6IFNhZmFyaSA4IG9ubHlcbi8vIEluIFNhZmFyaSA4IGRvY3VtZW50cyBjcmVhdGVkIHZpYSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnRcbi8vIGNvbGxhcHNlIHNpYmxpbmcgZm9ybXM6IHRoZSBzZWNvbmQgb25lIGJlY29tZXMgYSBjaGlsZCBvZiB0aGUgZmlyc3Qgb25lLlxuLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIHNlY3VyaXR5IG1lYXN1cmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIFNhZmFyaSA4LlxuLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMzN1xuc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgPSAoIGZ1bmN0aW9uKCkge1xuXHR2YXIgYm9keSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCggXCJcIiApLmJvZHk7XG5cdGJvZHkuaW5uZXJIVE1MID0gXCI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPlwiO1xuXHRyZXR1cm4gYm9keS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMjtcbn0gKSgpO1xuXG5cbi8vIEFyZ3VtZW50IFwiZGF0YVwiIHNob3VsZCBiZSBzdHJpbmcgb2YgaHRtbFxuLy8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LFxuLy8gZGVmYXVsdHMgdG8gZG9jdW1lbnRcbi8vIGtlZXBTY3JpcHRzIChvcHRpb25hbCk6IElmIHRydWUsIHdpbGwgaW5jbHVkZSBzY3JpcHRzIHBhc3NlZCBpbiB0aGUgaHRtbCBzdHJpbmdcbmpRdWVyeS5wYXJzZUhUTUwgPSBmdW5jdGlvbiggZGF0YSwgY29udGV4dCwga2VlcFNjcmlwdHMgKSB7XG5cdGlmICggdHlwZW9mIGRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGtlZXBTY3JpcHRzID0gY29udGV4dDtcblx0XHRjb250ZXh0ID0gZmFsc2U7XG5cdH1cblxuXHR2YXIgYmFzZSwgcGFyc2VkLCBzY3JpcHRzO1xuXG5cdGlmICggIWNvbnRleHQgKSB7XG5cblx0XHQvLyBTdG9wIHNjcmlwdHMgb3IgaW5saW5lIGV2ZW50IGhhbmRsZXJzIGZyb20gYmVpbmcgZXhlY3V0ZWQgaW1tZWRpYXRlbHlcblx0XHQvLyBieSB1c2luZyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvblxuXHRcdGlmICggc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgKSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCBcIlwiICk7XG5cblx0XHRcdC8vIFNldCB0aGUgYmFzZSBocmVmIGZvciB0aGUgY3JlYXRlZCBkb2N1bWVudFxuXHRcdFx0Ly8gc28gYW55IHBhcnNlZCBlbGVtZW50cyB3aXRoIFVSTHNcblx0XHRcdC8vIGFyZSBiYXNlZCBvbiB0aGUgZG9jdW1lbnQncyBVUkwgKGdoLTI5NjUpXG5cdFx0XHRiYXNlID0gY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImJhc2VcIiApO1xuXHRcdFx0YmFzZS5ocmVmID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjtcblx0XHRcdGNvbnRleHQuaGVhZC5hcHBlbmRDaGlsZCggYmFzZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQ7XG5cdFx0fVxuXHR9XG5cblx0cGFyc2VkID0gcnNpbmdsZVRhZy5leGVjKCBkYXRhICk7XG5cdHNjcmlwdHMgPSAha2VlcFNjcmlwdHMgJiYgW107XG5cblx0Ly8gU2luZ2xlIHRhZ1xuXHRpZiAoIHBhcnNlZCApIHtcblx0XHRyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIHBhcnNlZFsgMSBdICkgXTtcblx0fVxuXG5cdHBhcnNlZCA9IGJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzICk7XG5cblx0aWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkge1xuXHRcdGpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIHBhcnNlZC5jaGlsZE5vZGVzICk7XG59O1xuXG5cbi8qKlxuICogTG9hZCBhIHVybCBpbnRvIGEgcGFnZVxuICovXG5qUXVlcnkuZm4ubG9hZCA9IGZ1bmN0aW9uKCB1cmwsIHBhcmFtcywgY2FsbGJhY2sgKSB7XG5cdHZhciBzZWxlY3RvciwgdHlwZSwgcmVzcG9uc2UsXG5cdFx0c2VsZiA9IHRoaXMsXG5cdFx0b2ZmID0gdXJsLmluZGV4T2YoIFwiIFwiICk7XG5cblx0aWYgKCBvZmYgPiAtMSApIHtcblx0XHRzZWxlY3RvciA9IHN0cmlwQW5kQ29sbGFwc2UoIHVybC5zbGljZSggb2ZmICkgKTtcblx0XHR1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApO1xuXHR9XG5cblx0Ly8gSWYgaXQncyBhIGZ1bmN0aW9uXG5cdGlmICggaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XG5cblx0XHQvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZDtcblxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXG5cdH0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSBcIm9iamVjdFwiICkge1xuXHRcdHR5cGUgPSBcIlBPU1RcIjtcblx0fVxuXG5cdC8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5LCBtYWtlIHRoZSByZXF1ZXN0XG5cdGlmICggc2VsZi5sZW5ndGggPiAwICkge1xuXHRcdGpRdWVyeS5hamF4KCB7XG5cdFx0XHR1cmw6IHVybCxcblxuXHRcdFx0Ly8gSWYgXCJ0eXBlXCIgdmFyaWFibGUgaXMgdW5kZWZpbmVkLCB0aGVuIFwiR0VUXCIgbWV0aG9kIHdpbGwgYmUgdXNlZC5cblx0XHRcdC8vIE1ha2UgdmFsdWUgb2YgdGhpcyBmaWVsZCBleHBsaWNpdCBzaW5jZVxuXHRcdFx0Ly8gdXNlciBjYW4gb3ZlcnJpZGUgaXQgdGhyb3VnaCBhamF4U2V0dXAgbWV0aG9kXG5cdFx0XHR0eXBlOiB0eXBlIHx8IFwiR0VUXCIsXG5cdFx0XHRkYXRhVHlwZTogXCJodG1sXCIsXG5cdFx0XHRkYXRhOiBwYXJhbXNcblx0XHR9ICkuZG9uZSggZnVuY3Rpb24oIHJlc3BvbnNlVGV4dCApIHtcblxuXHRcdFx0Ly8gU2F2ZSByZXNwb25zZSBmb3IgdXNlIGluIGNvbXBsZXRlIGNhbGxiYWNrXG5cdFx0XHRyZXNwb25zZSA9IGFyZ3VtZW50cztcblxuXHRcdFx0c2VsZi5odG1sKCBzZWxlY3RvciA/XG5cblx0XHRcdFx0Ly8gSWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkLCBsb2NhdGUgdGhlIHJpZ2h0IGVsZW1lbnRzIGluIGEgZHVtbXkgZGl2XG5cdFx0XHRcdC8vIEV4Y2x1ZGUgc2NyaXB0cyB0byBhdm9pZCBJRSAnUGVybWlzc2lvbiBEZW5pZWQnIGVycm9yc1xuXHRcdFx0XHRqUXVlcnkoIFwiPGRpdj5cIiApLmFwcGVuZCggalF1ZXJ5LnBhcnNlSFRNTCggcmVzcG9uc2VUZXh0ICkgKS5maW5kKCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdXNlIHRoZSBmdWxsIHJlc3VsdFxuXHRcdFx0XHRyZXNwb25zZVRleHQgKTtcblxuXHRcdC8vIElmIHRoZSByZXF1ZXN0IHN1Y2NlZWRzLCB0aGlzIGZ1bmN0aW9uIGdldHMgXCJkYXRhXCIsIFwic3RhdHVzXCIsIFwianFYSFJcIlxuXHRcdC8vIGJ1dCB0aGV5IGFyZSBpZ25vcmVkIGJlY2F1c2UgcmVzcG9uc2Ugd2FzIHNldCBhYm92ZS5cblx0XHQvLyBJZiBpdCBmYWlscywgdGhpcyBmdW5jdGlvbiBnZXRzIFwianFYSFJcIiwgXCJzdGF0dXNcIiwgXCJlcnJvclwiXG5cdFx0fSApLmFsd2F5cyggY2FsbGJhY2sgJiYgZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7XG5cdFx0XHRzZWxmLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjYWxsYmFjay5hcHBseSggdGhpcywgcmVzcG9uc2UgfHwgWyBqcVhIUi5yZXNwb25zZVRleHQsIHN0YXR1cywganFYSFIgXSApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblx0fVxuXG5cdHJldHVybiB0aGlzO1xufTtcblxuXG5cblxualF1ZXJ5LmV4cHIucHNldWRvcy5hbmltYXRlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4galF1ZXJ5LmdyZXAoIGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTtcblx0fSApLmxlbmd0aDtcbn07XG5cblxuXG5cbmpRdWVyeS5vZmZzZXQgPSB7XG5cdHNldE9mZnNldDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGkgKSB7XG5cdFx0dmFyIGN1clBvc2l0aW9uLCBjdXJMZWZ0LCBjdXJDU1NUb3AsIGN1clRvcCwgY3VyT2Zmc2V0LCBjdXJDU1NMZWZ0LCBjYWxjdWxhdGVQb3NpdGlvbixcblx0XHRcdHBvc2l0aW9uID0galF1ZXJ5LmNzcyggZWxlbSwgXCJwb3NpdGlvblwiICksXG5cdFx0XHRjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksXG5cdFx0XHRwcm9wcyA9IHt9O1xuXG5cdFx0Ly8gU2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbVxuXHRcdGlmICggcG9zaXRpb24gPT09IFwic3RhdGljXCIgKSB7XG5cdFx0XHRlbGVtLnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuXHRcdH1cblxuXHRcdGN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCk7XG5cdFx0Y3VyQ1NTVG9wID0galF1ZXJ5LmNzcyggZWxlbSwgXCJ0b3BcIiApO1xuXHRcdGN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImxlZnRcIiApO1xuXHRcdGNhbGN1bGF0ZVBvc2l0aW9uID0gKCBwb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiIHx8IHBvc2l0aW9uID09PSBcImZpeGVkXCIgKSAmJlxuXHRcdFx0KCBjdXJDU1NUb3AgKyBjdXJDU1NMZWZ0ICkuaW5kZXhPZiggXCJhdXRvXCIgKSA+IC0xO1xuXG5cdFx0Ly8gTmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXJcblx0XHQvLyB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcblx0XHRpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkge1xuXHRcdFx0Y3VyUG9zaXRpb24gPSBjdXJFbGVtLnBvc2l0aW9uKCk7XG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XG5cdFx0XHRjdXJMZWZ0ID0gY3VyUG9zaXRpb24ubGVmdDtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJUb3AgPSBwYXJzZUZsb2F0KCBjdXJDU1NUb3AgKSB8fCAwO1xuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xuXHRcdH1cblxuXHRcdGlmICggaXNGdW5jdGlvbiggb3B0aW9ucyApICkge1xuXG5cdFx0XHQvLyBVc2UgalF1ZXJ5LmV4dGVuZCBoZXJlIHRvIGFsbG93IG1vZGlmaWNhdGlvbiBvZiBjb29yZGluYXRlcyBhcmd1bWVudCAoZ2gtMTg0OClcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGpRdWVyeS5leHRlbmQoIHt9LCBjdXJPZmZzZXQgKSApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0aW9ucy50b3AgIT0gbnVsbCApIHtcblx0XHRcdHByb3BzLnRvcCA9ICggb3B0aW9ucy50b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7XG5cdFx0fVxuXHRcdGlmICggb3B0aW9ucy5sZWZ0ICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy5sZWZ0ID0gKCBvcHRpb25zLmxlZnQgLSBjdXJPZmZzZXQubGVmdCApICsgY3VyTGVmdDtcblx0XHR9XG5cblx0XHRpZiAoIFwidXNpbmdcIiBpbiBvcHRpb25zICkge1xuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdGN1ckVsZW0uY3NzKCBwcm9wcyApO1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdC8vIG9mZnNldCgpIHJlbGF0ZXMgYW4gZWxlbWVudCdzIGJvcmRlciBib3ggdG8gdGhlIGRvY3VtZW50IG9yaWdpblxuXHRvZmZzZXQ6IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdFx0Ly8gUHJlc2VydmUgY2hhaW5pbmcgZm9yIHNldHRlclxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiBvcHRpb25zID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHR0aGlzIDpcblx0XHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0XHRqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApO1xuXHRcdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0dmFyIHJlY3QsIHdpbixcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF07XG5cblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiB6ZXJvcyBmb3IgZGlzY29ubmVjdGVkIGFuZCBoaWRkZW4gKGRpc3BsYXk6IG5vbmUpIGVsZW1lbnRzIChnaC0yMzEwKVxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGFcblx0XHQvLyBkaXNjb25uZWN0ZWQgbm9kZSBpbiBJRSB0aHJvd3MgYW4gZXJyb3Jcblx0XHRpZiAoICFlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cdFx0fVxuXG5cdFx0Ly8gR2V0IGRvY3VtZW50LXJlbGF0aXZlIHBvc2l0aW9uIGJ5IGFkZGluZyB2aWV3cG9ydCBzY3JvbGwgdG8gdmlld3BvcnQtcmVsYXRpdmUgZ0JDUlxuXHRcdHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdHdpbiA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldztcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiByZWN0LnRvcCArIHdpbi5wYWdlWU9mZnNldCxcblx0XHRcdGxlZnQ6IHJlY3QubGVmdCArIHdpbi5wYWdlWE9mZnNldFxuXHRcdH07XG5cdH0sXG5cblx0Ly8gcG9zaXRpb24oKSByZWxhdGVzIGFuIGVsZW1lbnQncyBtYXJnaW4gYm94IHRvIGl0cyBvZmZzZXQgcGFyZW50J3MgcGFkZGluZyBib3hcblx0Ly8gVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgYmVoYXZpb3Igb2YgQ1NTIGFic29sdXRlIHBvc2l0aW9uaW5nXG5cdHBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoICF0aGlzWyAwIF0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIG9mZnNldFBhcmVudCwgb2Zmc2V0LCBkb2MsXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdLFxuXHRcdFx0cGFyZW50T2Zmc2V0ID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcblxuXHRcdC8vIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIGFyZSBvZmZzZXQgZnJvbSB0aGUgdmlld3BvcnQsIHdoaWNoIGl0c2VsZiBhbHdheXMgaGFzIHplcm8gb2Zmc2V0XG5cdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcInBvc2l0aW9uXCIgKSA9PT0gXCJmaXhlZFwiICkge1xuXG5cdFx0XHQvLyBBc3N1bWUgcG9zaXRpb246Zml4ZWQgaW1wbGllcyBhdmFpbGFiaWxpdHkgb2YgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG5cdFx0XHRvZmZzZXQgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdG9mZnNldCA9IHRoaXMub2Zmc2V0KCk7XG5cblx0XHRcdC8vIEFjY291bnQgZm9yIHRoZSAqcmVhbCogb2Zmc2V0IHBhcmVudCwgd2hpY2ggY2FuIGJlIHRoZSBkb2N1bWVudCBvciBpdHMgcm9vdCBlbGVtZW50XG5cdFx0XHQvLyB3aGVuIGEgc3RhdGljYWxseSBwb3NpdGlvbmVkIGVsZW1lbnQgaXMgaWRlbnRpZmllZFxuXHRcdFx0ZG9jID0gZWxlbS5vd25lckRvY3VtZW50O1xuXHRcdFx0b2Zmc2V0UGFyZW50ID0gZWxlbS5vZmZzZXRQYXJlbnQgfHwgZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdHdoaWxlICggb2Zmc2V0UGFyZW50ICYmXG5cdFx0XHRcdCggb2Zmc2V0UGFyZW50ID09PSBkb2MuYm9keSB8fCBvZmZzZXRQYXJlbnQgPT09IGRvYy5kb2N1bWVudEVsZW1lbnQgKSAmJlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwicG9zaXRpb25cIiApID09PSBcInN0YXRpY1wiICkge1xuXG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBvZmZzZXRQYXJlbnQgJiYgb2Zmc2V0UGFyZW50ICE9PSBlbGVtICYmIG9mZnNldFBhcmVudC5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSBib3JkZXJzIGludG8gaXRzIG9mZnNldCwgc2luY2UgdGhleSBhcmUgb3V0c2lkZSBpdHMgY29udGVudCBvcmlnaW5cblx0XHRcdFx0cGFyZW50T2Zmc2V0ID0galF1ZXJ5KCBvZmZzZXRQYXJlbnQgKS5vZmZzZXQoKTtcblx0XHRcdFx0cGFyZW50T2Zmc2V0LnRvcCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwiYm9yZGVyVG9wV2lkdGhcIiwgdHJ1ZSApO1xuXHRcdFx0XHRwYXJlbnRPZmZzZXQubGVmdCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwiYm9yZGVyTGVmdFdpZHRoXCIsIHRydWUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTdWJ0cmFjdCBwYXJlbnQgb2Zmc2V0cyBhbmQgZWxlbWVudCBtYXJnaW5zXG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogb2Zmc2V0LnRvcCAtIHBhcmVudE9mZnNldC50b3AgLSBqUXVlcnkuY3NzKCBlbGVtLCBcIm1hcmdpblRvcFwiLCB0cnVlICksXG5cdFx0XHRsZWZ0OiBvZmZzZXQubGVmdCAtIHBhcmVudE9mZnNldC5sZWZ0IC0galF1ZXJ5LmNzcyggZWxlbSwgXCJtYXJnaW5MZWZ0XCIsIHRydWUgKVxuXHRcdH07XG5cdH0sXG5cblx0Ly8gVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gZG9jdW1lbnRFbGVtZW50IGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6XG5cdC8vIDEpIEZvciB0aGUgZWxlbWVudCBpbnNpZGUgdGhlIGlmcmFtZSB3aXRob3V0IG9mZnNldFBhcmVudCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm5cblx0Ly8gICAgZG9jdW1lbnRFbGVtZW50IG9mIHRoZSBwYXJlbnQgd2luZG93XG5cdC8vIDIpIEZvciB0aGUgaGlkZGVuIG9yIGRldGFjaGVkIGVsZW1lbnRcblx0Ly8gMykgRm9yIGJvZHkgb3IgaHRtbCBlbGVtZW50LCBpLmUuIGluIGNhc2Ugb2YgdGhlIGh0bWwgbm9kZSAtIGl0IHdpbGwgcmV0dXJuIGl0c2VsZlxuXHQvL1xuXHQvLyBidXQgdGhvc2UgZXhjZXB0aW9ucyB3ZXJlIG5ldmVyIHByZXNlbnRlZCBhcyBhIHJlYWwgbGlmZSB1c2UtY2FzZXNcblx0Ly8gYW5kIG1pZ2h0IGJlIGNvbnNpZGVyZWQgYXMgbW9yZSBwcmVmZXJhYmxlIHJlc3VsdHMuXG5cdC8vXG5cdC8vIFRoaXMgbG9naWMsIGhvd2V2ZXIsIGlzIG5vdCBndWFyYW50ZWVkIGFuZCBjYW4gY2hhbmdlIGF0IGFueSBwb2ludCBpbiB0aGUgZnV0dXJlXG5cdG9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudDtcblxuXHRcdFx0d2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgalF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcInBvc2l0aW9uXCIgKSA9PT0gXCJzdGF0aWNcIiApIHtcblx0XHRcdFx0b2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50Lm9mZnNldFBhcmVudDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG9mZnNldFBhcmVudCB8fCBkb2N1bWVudEVsZW1lbnQ7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgc2Nyb2xsTGVmdDogXCJwYWdlWE9mZnNldFwiLCBzY3JvbGxUb3A6IFwicGFnZVlPZmZzZXRcIiB9LCBmdW5jdGlvbiggbWV0aG9kLCBwcm9wICkge1xuXHR2YXIgdG9wID0gXCJwYWdlWU9mZnNldFwiID09PSBwcm9wO1xuXG5cdGpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBtZXRob2QsIHZhbCApIHtcblxuXHRcdFx0Ly8gQ29hbGVzY2UgZG9jdW1lbnRzIGFuZCB3aW5kb3dzXG5cdFx0XHR2YXIgd2luO1xuXHRcdFx0aWYgKCBpc1dpbmRvdyggZWxlbSApICkge1xuXHRcdFx0XHR3aW4gPSBlbGVtO1xuXHRcdFx0fSBlbHNlIGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0d2luID0gZWxlbS5kZWZhdWx0Vmlldztcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHdpbiA/IHdpblsgcHJvcCBdIDogZWxlbVsgbWV0aG9kIF07XG5cdFx0XHR9XG5cblx0XHRcdGlmICggd2luICkge1xuXHRcdFx0XHR3aW4uc2Nyb2xsVG8oXG5cdFx0XHRcdFx0IXRvcCA/IHZhbCA6IHdpbi5wYWdlWE9mZnNldCxcblx0XHRcdFx0XHR0b3AgPyB2YWwgOiB3aW4ucGFnZVlPZmZzZXRcblx0XHRcdFx0KTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbVsgbWV0aG9kIF0gPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSwgbWV0aG9kLCB2YWwsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fTtcbn0gKTtcblxuLy8gU3VwcG9ydDogU2FmYXJpIDw9NyAtIDkuMSwgQ2hyb21lIDw9MzcgLSA0OVxuLy8gQWRkIHRoZSB0b3AvbGVmdCBjc3NIb29rcyB1c2luZyBqUXVlcnkuZm4ucG9zaXRpb25cbi8vIFdlYmtpdCBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4NFxuLy8gQmxpbmsgYnVnOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODkzNDdcbi8vIGdldENvbXB1dGVkU3R5bGUgcmV0dXJucyBwZXJjZW50IHdoZW4gc3BlY2lmaWVkIGZvciB0b3AvbGVmdC9ib3R0b20vcmlnaHQ7XG4vLyByYXRoZXIgdGhhbiBtYWtlIHRoZSBjc3MgbW9kdWxlIGRlcGVuZCBvbiB0aGUgb2Zmc2V0IG1vZHVsZSwganVzdCBjaGVjayBmb3IgaXQgaGVyZVxualF1ZXJ5LmVhY2goIFsgXCJ0b3BcIiwgXCJsZWZ0XCIgXSwgZnVuY3Rpb24oIF9pLCBwcm9wICkge1xuXHRqUXVlcnkuY3NzSG9va3NbIHByb3AgXSA9IGFkZEdldEhvb2tJZiggc3VwcG9ydC5waXhlbFBvc2l0aW9uLFxuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcblx0XHRcdGlmICggY29tcHV0ZWQgKSB7XG5cdFx0XHRcdGNvbXB1dGVkID0gY3VyQ1NTKCBlbGVtLCBwcm9wICk7XG5cblx0XHRcdFx0Ly8gSWYgY3VyQ1NTIHJldHVybnMgcGVyY2VudGFnZSwgZmFsbGJhY2sgdG8gb2Zmc2V0XG5cdFx0XHRcdHJldHVybiBybnVtbm9ucHgudGVzdCggY29tcHV0ZWQgKSA/XG5cdFx0XHRcdFx0alF1ZXJ5KCBlbGVtICkucG9zaXRpb24oKVsgcHJvcCBdICsgXCJweFwiIDpcblx0XHRcdFx0XHRjb21wdXRlZDtcblx0XHRcdH1cblx0XHR9XG5cdCk7XG59ICk7XG5cblxuLy8gQ3JlYXRlIGlubmVySGVpZ2h0LCBpbm5lcldpZHRoLCBoZWlnaHQsIHdpZHRoLCBvdXRlckhlaWdodCBhbmQgb3V0ZXJXaWR0aCBtZXRob2RzXG5qUXVlcnkuZWFjaCggeyBIZWlnaHQ6IFwiaGVpZ2h0XCIsIFdpZHRoOiBcIndpZHRoXCIgfSwgZnVuY3Rpb24oIG5hbWUsIHR5cGUgKSB7XG5cdGpRdWVyeS5lYWNoKCB7XG5cdFx0cGFkZGluZzogXCJpbm5lclwiICsgbmFtZSxcblx0XHRjb250ZW50OiB0eXBlLFxuXHRcdFwiXCI6IFwib3V0ZXJcIiArIG5hbWVcblx0fSwgZnVuY3Rpb24oIGRlZmF1bHRFeHRyYSwgZnVuY05hbWUgKSB7XG5cblx0XHQvLyBNYXJnaW4gaXMgb25seSBmb3Igb3V0ZXJIZWlnaHQsIG91dGVyV2lkdGhcblx0XHRqUXVlcnkuZm5bIGZ1bmNOYW1lIF0gPSBmdW5jdGlvbiggbWFyZ2luLCB2YWx1ZSApIHtcblx0XHRcdHZhciBjaGFpbmFibGUgPSBhcmd1bWVudHMubGVuZ3RoICYmICggZGVmYXVsdEV4dHJhIHx8IHR5cGVvZiBtYXJnaW4gIT09IFwiYm9vbGVhblwiICksXG5cdFx0XHRcdGV4dHJhID0gZGVmYXVsdEV4dHJhIHx8ICggbWFyZ2luID09PSB0cnVlIHx8IHZhbHVlID09PSB0cnVlID8gXCJtYXJnaW5cIiA6IFwiYm9yZGVyXCIgKTtcblxuXHRcdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIHR5cGUsIHZhbHVlICkge1xuXHRcdFx0XHR2YXIgZG9jO1xuXG5cdFx0XHRcdGlmICggaXNXaW5kb3coIGVsZW0gKSApIHtcblxuXHRcdFx0XHRcdC8vICQoIHdpbmRvdyApLm91dGVyV2lkdGgvSGVpZ2h0IHJldHVybiB3L2ggaW5jbHVkaW5nIHNjcm9sbGJhcnMgKGdoLTE3MjkpXG5cdFx0XHRcdFx0cmV0dXJuIGZ1bmNOYW1lLmluZGV4T2YoIFwib3V0ZXJcIiApID09PSAwID9cblx0XHRcdFx0XHRcdGVsZW1bIFwiaW5uZXJcIiArIG5hbWUgXSA6XG5cdFx0XHRcdFx0XHRlbGVtLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgXCJjbGllbnRcIiArIG5hbWUgXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHRcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdGRvYyA9IGVsZW0uZG9jdW1lbnRFbGVtZW50O1xuXG5cdFx0XHRcdFx0Ly8gRWl0aGVyIHNjcm9sbFtXaWR0aC9IZWlnaHRdIG9yIG9mZnNldFtXaWR0aC9IZWlnaHRdIG9yIGNsaWVudFtXaWR0aC9IZWlnaHRdLFxuXHRcdFx0XHRcdC8vIHdoaWNoZXZlciBpcyBncmVhdGVzdFxuXHRcdFx0XHRcdHJldHVybiBNYXRoLm1heChcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJzY3JvbGxcIiArIG5hbWUgXSwgZG9jWyBcInNjcm9sbFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZWxlbS5ib2R5WyBcIm9mZnNldFwiICsgbmFtZSBdLCBkb2NbIFwib2Zmc2V0XCIgKyBuYW1lIF0sXG5cdFx0XHRcdFx0XHRkb2NbIFwiY2xpZW50XCIgKyBuYW1lIF1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXG5cdFx0XHRcdFx0Ly8gR2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudCwgcmVxdWVzdGluZyBidXQgbm90IGZvcmNpbmcgcGFyc2VGbG9hdFxuXHRcdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIHR5cGUsIGV4dHJhICkgOlxuXG5cdFx0XHRcdFx0Ly8gU2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudFxuXHRcdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgdHlwZSwgdmFsdWUsIGV4dHJhICk7XG5cdFx0XHR9LCB0eXBlLCBjaGFpbmFibGUgPyBtYXJnaW4gOiB1bmRlZmluZWQsIGNoYWluYWJsZSApO1xuXHRcdH07XG5cdH0gKTtcbn0gKTtcblxuXG5qUXVlcnkuZWFjaCggW1xuXHRcImFqYXhTdGFydFwiLFxuXHRcImFqYXhTdG9wXCIsXG5cdFwiYWpheENvbXBsZXRlXCIsXG5cdFwiYWpheEVycm9yXCIsXG5cdFwiYWpheFN1Y2Nlc3NcIixcblx0XCJhamF4U2VuZFwiXG5dLCBmdW5jdGlvbiggX2ksIHR5cGUgKSB7XG5cdGpRdWVyeS5mblsgdHlwZSBdID0gZnVuY3Rpb24oIGZuICkge1xuXHRcdHJldHVybiB0aGlzLm9uKCB0eXBlLCBmbiApO1xuXHR9O1xufSApO1xuXG5cblxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cblx0YmluZDogZnVuY3Rpb24oIHR5cGVzLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZXMsIG51bGwsIGRhdGEsIGZuICk7XG5cdH0sXG5cdHVuYmluZDogZnVuY3Rpb24oIHR5cGVzLCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vZmYoIHR5cGVzLCBudWxsLCBmbiApO1xuXHR9LFxuXG5cdGRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmRlbGVnYXRlOiBmdW5jdGlvbiggc2VsZWN0b3IsIHR5cGVzLCBmbiApIHtcblxuXHRcdC8vICggbmFtZXNwYWNlICkgb3IgKCBzZWxlY3RvciwgdHlwZXMgWywgZm5dIClcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/XG5cdFx0XHR0aGlzLm9mZiggc2VsZWN0b3IsIFwiKipcIiApIDpcblx0XHRcdHRoaXMub2ZmKCB0eXBlcywgc2VsZWN0b3IgfHwgXCIqKlwiLCBmbiApO1xuXHR9LFxuXG5cdGhvdmVyOiBmdW5jdGlvbiggZm5PdmVyLCBmbk91dCApIHtcblx0XHRyZXR1cm4gdGhpc1xuXHRcdFx0Lm9uKCBcIm1vdXNlZW50ZXJcIiwgZm5PdmVyIClcblx0XHRcdC5vbiggXCJtb3VzZWxlYXZlXCIsIGZuT3V0IHx8IGZuT3ZlciApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKFxuXHQoIFwiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgXCIgK1xuXHRcIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIFwiICtcblx0XCJjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51XCIgKS5zcGxpdCggXCIgXCIgKSxcblx0ZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXG5cdFx0Ly8gSGFuZGxlIGV2ZW50IGJpbmRpbmdcblx0XHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBkYXRhLCBmbiApIHtcblx0XHRcdHJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMCA/XG5cdFx0XHRcdHRoaXMub24oIG5hbWUsIG51bGwsIGRhdGEsIGZuICkgOlxuXHRcdFx0XHR0aGlzLnRyaWdnZXIoIG5hbWUgKTtcblx0XHR9O1xuXHR9XG4pO1xuXG5cblxuXG4vLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHlcbi8vIE1ha2Ugc3VyZSB3ZSB0cmltIEJPTSBhbmQgTkJTUFxuLy8gUmVxdWlyZSB0aGF0IHRoZSBcIndoaXRlc3BhY2UgcnVuXCIgc3RhcnRzIGZyb20gYSBub24td2hpdGVzcGFjZVxuLy8gdG8gYXZvaWQgTyhOXjIpIGJlaGF2aW9yIHdoZW4gdGhlIGVuZ2luZSB3b3VsZCB0cnkgbWF0Y2hpbmcgXCJcXHMrJFwiIGF0IGVhY2ggc3BhY2UgcG9zaXRpb24uXG52YXIgcnRyaW0gPSAvXltcXHNcXHVGRUZGXFx4QTBdK3woW15cXHNcXHVGRUZGXFx4QTBdKVtcXHNcXHVGRUZGXFx4QTBdKyQvZztcblxuLy8gQmluZCBhIGZ1bmN0aW9uIHRvIGEgY29udGV4dCwgb3B0aW9uYWxseSBwYXJ0aWFsbHkgYXBwbHlpbmcgYW55XG4vLyBhcmd1bWVudHMuXG4vLyBqUXVlcnkucHJveHkgaXMgZGVwcmVjYXRlZCB0byBwcm9tb3RlIHN0YW5kYXJkcyAoc3BlY2lmaWNhbGx5IEZ1bmN0aW9uI2JpbmQpXG4vLyBIb3dldmVyLCBpdCBpcyBub3Qgc2xhdGVkIGZvciByZW1vdmFsIGFueSB0aW1lIHNvb25cbmpRdWVyeS5wcm94eSA9IGZ1bmN0aW9uKCBmbiwgY29udGV4dCApIHtcblx0dmFyIHRtcCwgYXJncywgcHJveHk7XG5cblx0aWYgKCB0eXBlb2YgY29udGV4dCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHR0bXAgPSBmblsgY29udGV4dCBdO1xuXHRcdGNvbnRleHQgPSBmbjtcblx0XHRmbiA9IHRtcDtcblx0fVxuXG5cdC8vIFF1aWNrIGNoZWNrIHRvIGRldGVybWluZSBpZiB0YXJnZXQgaXMgY2FsbGFibGUsIGluIHRoZSBzcGVjXG5cdC8vIHRoaXMgdGhyb3dzIGEgVHlwZUVycm9yLCBidXQgd2Ugd2lsbCBqdXN0IHJldHVybiB1bmRlZmluZWQuXG5cdGlmICggIWlzRnVuY3Rpb24oIGZuICkgKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdC8vIFNpbXVsYXRlZCBiaW5kXG5cdGFyZ3MgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMsIDIgKTtcblx0cHJveHkgPSBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZm4uYXBwbHkoIGNvbnRleHQgfHwgdGhpcywgYXJncy5jb25jYXQoIHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApICkgKTtcblx0fTtcblxuXHQvLyBTZXQgdGhlIGd1aWQgb2YgdW5pcXVlIGhhbmRsZXIgdG8gdGhlIHNhbWUgb2Ygb3JpZ2luYWwgaGFuZGxlciwgc28gaXQgY2FuIGJlIHJlbW92ZWRcblx0cHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IGpRdWVyeS5ndWlkKys7XG5cblx0cmV0dXJuIHByb3h5O1xufTtcblxualF1ZXJ5LmhvbGRSZWFkeSA9IGZ1bmN0aW9uKCBob2xkICkge1xuXHRpZiAoIGhvbGQgKSB7XG5cdFx0alF1ZXJ5LnJlYWR5V2FpdCsrO1xuXHR9IGVsc2Uge1xuXHRcdGpRdWVyeS5yZWFkeSggdHJ1ZSApO1xuXHR9XG59O1xualF1ZXJ5LmlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xualF1ZXJ5LnBhcnNlSlNPTiA9IEpTT04ucGFyc2U7XG5qUXVlcnkubm9kZU5hbWUgPSBub2RlTmFtZTtcbmpRdWVyeS5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbmpRdWVyeS5pc1dpbmRvdyA9IGlzV2luZG93O1xualF1ZXJ5LmNhbWVsQ2FzZSA9IGNhbWVsQ2FzZTtcbmpRdWVyeS50eXBlID0gdG9UeXBlO1xuXG5qUXVlcnkubm93ID0gRGF0ZS5ub3c7XG5cbmpRdWVyeS5pc051bWVyaWMgPSBmdW5jdGlvbiggb2JqICkge1xuXG5cdC8vIEFzIG9mIGpRdWVyeSAzLjAsIGlzTnVtZXJpYyBpcyBsaW1pdGVkIHRvXG5cdC8vIHN0cmluZ3MgYW5kIG51bWJlcnMgKHByaW1pdGl2ZXMgb3Igb2JqZWN0cylcblx0Ly8gdGhhdCBjYW4gYmUgY29lcmNlZCB0byBmaW5pdGUgbnVtYmVycyAoZ2gtMjY2Milcblx0dmFyIHR5cGUgPSBqUXVlcnkudHlwZSggb2JqICk7XG5cdHJldHVybiAoIHR5cGUgPT09IFwibnVtYmVyXCIgfHwgdHlwZSA9PT0gXCJzdHJpbmdcIiApICYmXG5cblx0XHQvLyBwYXJzZUZsb2F0IE5hTnMgbnVtZXJpYy1jYXN0IGZhbHNlIHBvc2l0aXZlcyAoXCJcIilcblx0XHQvLyAuLi5idXQgbWlzaW50ZXJwcmV0cyBsZWFkaW5nLW51bWJlciBzdHJpbmdzLCBwYXJ0aWN1bGFybHkgaGV4IGxpdGVyYWxzIChcIjB4Li4uXCIpXG5cdFx0Ly8gc3VidHJhY3Rpb24gZm9yY2VzIGluZmluaXRpZXMgdG8gTmFOXG5cdFx0IWlzTmFOKCBvYmogLSBwYXJzZUZsb2F0KCBvYmogKSApO1xufTtcblxualF1ZXJ5LnRyaW0gPSBmdW5jdGlvbiggdGV4dCApIHtcblx0cmV0dXJuIHRleHQgPT0gbnVsbCA/XG5cdFx0XCJcIiA6XG5cdFx0KCB0ZXh0ICsgXCJcIiApLnJlcGxhY2UoIHJ0cmltLCBcIiQxXCIgKTtcbn07XG5cblxuXG4vLyBSZWdpc3RlciBhcyBhIG5hbWVkIEFNRCBtb2R1bGUsIHNpbmNlIGpRdWVyeSBjYW4gYmUgY29uY2F0ZW5hdGVkIHdpdGggb3RoZXJcbi8vIGZpbGVzIHRoYXQgbWF5IHVzZSBkZWZpbmUsIGJ1dCBub3QgdmlhIGEgcHJvcGVyIGNvbmNhdGVuYXRpb24gc2NyaXB0IHRoYXRcbi8vIHVuZGVyc3RhbmRzIGFub255bW91cyBBTUQgbW9kdWxlcy4gQSBuYW1lZCBBTUQgaXMgc2FmZXN0IGFuZCBtb3N0IHJvYnVzdFxuLy8gd2F5IHRvIHJlZ2lzdGVyLiBMb3dlcmNhc2UganF1ZXJ5IGlzIHVzZWQgYmVjYXVzZSBBTUQgbW9kdWxlIG5hbWVzIGFyZVxuLy8gZGVyaXZlZCBmcm9tIGZpbGUgbmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93ZXJjYXNlXG4vLyBmaWxlIG5hbWUuIERvIHRoaXMgYWZ0ZXIgY3JlYXRpbmcgdGhlIGdsb2JhbCBzbyB0aGF0IGlmIGFuIEFNRCBtb2R1bGUgd2FudHNcbi8vIHRvIGNhbGwgbm9Db25mbGljdCB0byBoaWRlIHRoaXMgdmVyc2lvbiBvZiBqUXVlcnksIGl0IHdpbGwgd29yay5cblxuLy8gTm90ZSB0aGF0IGZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCBsaWJyYXJpZXMgdGhhdCBhcmUgbm90IGpRdWVyeSBzaG91bGRcbi8vIGRlY2xhcmUgdGhlbXNlbHZlcyBhcyBhbm9ueW1vdXMgbW9kdWxlcywgYW5kIGF2b2lkIHNldHRpbmcgYSBnbG9iYWwgaWYgYW5cbi8vIEFNRCBsb2FkZXIgaXMgcHJlc2VudC4galF1ZXJ5IGlzIGEgc3BlY2lhbCBjYXNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvd2lraS9VcGRhdGluZy1leGlzdGluZy1saWJyYXJpZXMjd2lraS1hbm9uXG5cbmlmICggdHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQgKSB7XG5cdGRlZmluZSggXCJqcXVlcnlcIiwgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnk7XG5cdH0gKTtcbn1cblxuXG5cblxudmFyXG5cblx0Ly8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF9qUXVlcnkgPSB3aW5kb3cualF1ZXJ5LFxuXG5cdC8vIE1hcCBvdmVyIHRoZSAkIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF8kID0gd2luZG93LiQ7XG5cbmpRdWVyeS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oIGRlZXAgKSB7XG5cdGlmICggd2luZG93LiQgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cuJCA9IF8kO1xuXHR9XG5cblx0aWYgKCBkZWVwICYmIHdpbmRvdy5qUXVlcnkgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cualF1ZXJ5ID0gX2pRdWVyeTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnk7XG59O1xuXG4vLyBFeHBvc2UgalF1ZXJ5IGFuZCAkIGlkZW50aWZpZXJzLCBldmVuIGluIEFNRFxuLy8gKHRyYWMtNzEwMiNjb21tZW50OjEwLCBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9wdWxsLzU1Nylcbi8vIGFuZCBDb21tb25KUyBmb3IgYnJvd3NlciBlbXVsYXRvcnMgKHRyYWMtMTM1NjYpXG5pZiAoIHR5cGVvZiBub0dsb2JhbCA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblx0d2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0galF1ZXJ5O1xufVxuXG5cblxuXG5yZXR1cm4galF1ZXJ5O1xufSApO1xuIiwgIi8qIGVzbGludC1kaXNhYmxlIG5vLW11bHRpLWFzc2lnbiAqL1xuXG5mdW5jdGlvbiBkZWVwRnJlZXplKG9iaikge1xuICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgb2JqLmNsZWFyID1cbiAgICAgIG9iai5kZWxldGUgPVxuICAgICAgb2JqLnNldCA9XG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21hcCBpcyByZWFkLW9ubHknKTtcbiAgICAgICAgfTtcbiAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBTZXQpIHtcbiAgICBvYmouYWRkID1cbiAgICAgIG9iai5jbGVhciA9XG4gICAgICBvYmouZGVsZXRlID1cbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignc2V0IGlzIHJlYWQtb25seScpO1xuICAgICAgICB9O1xuICB9XG5cbiAgLy8gRnJlZXplIHNlbGZcbiAgT2JqZWN0LmZyZWV6ZShvYmopO1xuXG4gIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIGNvbnN0IHByb3AgPSBvYmpbbmFtZV07XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiBwcm9wO1xuXG4gICAgLy8gRnJlZXplIHByb3AgaWYgaXQgaXMgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uIGFuZCBhbHNvIG5vdCBhbHJlYWR5IGZyb3plblxuICAgIGlmICgodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJykgJiYgIU9iamVjdC5pc0Zyb3plbihwcm9wKSkge1xuICAgICAgZGVlcEZyZWV6ZShwcm9wKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBvYmo7XG59XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5DYWxsYmFja1Jlc3BvbnNlfSBDYWxsYmFja1Jlc3BvbnNlICovXG4vKiogQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGUgKi9cbi8qKiBAaW1wbGVtZW50cyBDYWxsYmFja1Jlc3BvbnNlICovXG5cbmNsYXNzIFJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihtb2RlKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgIGlmIChtb2RlLmRhdGEgPT09IHVuZGVmaW5lZCkgbW9kZS5kYXRhID0ge307XG5cbiAgICB0aGlzLmRhdGEgPSBtb2RlLmRhdGE7XG4gICAgdGhpcy5pc01hdGNoSWdub3JlZCA9IGZhbHNlO1xuICB9XG5cbiAgaWdub3JlTWF0Y2goKSB7XG4gICAgdGhpcy5pc01hdGNoSWdub3JlZCA9IHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVzY2FwZUhUTUwodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLnJlcGxhY2UoLyYvZywgJyZhbXA7JylcbiAgICAucmVwbGFjZSgvPC9nLCAnJmx0OycpXG4gICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgIC5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JylcbiAgICAucmVwbGFjZSgvJy9nLCAnJiN4Mjc7Jyk7XG59XG5cbi8qKlxuICogcGVyZm9ybXMgYSBzaGFsbG93IG1lcmdlIG9mIG11bHRpcGxlIG9iamVjdHMgaW50byBvbmVcbiAqXG4gKiBAdGVtcGxhdGUgVFxuICogQHBhcmFtIHtUfSBvcmlnaW5hbFxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLGFueT5bXX0gb2JqZWN0c1xuICogQHJldHVybnMge1R9IGEgc2luZ2xlIG5ldyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gaW5oZXJpdCQxKG9yaWdpbmFsLCAuLi5vYmplY3RzKSB7XG4gIC8qKiBAdHlwZSBSZWNvcmQ8c3RyaW5nLGFueT4gKi9cbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBvcmlnaW5hbCkge1xuICAgIHJlc3VsdFtrZXldID0gb3JpZ2luYWxba2V5XTtcbiAgfVxuICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24ob2JqKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiAvKiogQHR5cGUge1R9ICovIChyZXN1bHQpO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFJlbmRlcmVyXG4gKiBAcHJvcGVydHkgeyh0ZXh0OiBzdHJpbmcpID0+IHZvaWR9IGFkZFRleHRcbiAqIEBwcm9wZXJ0eSB7KG5vZGU6IE5vZGUpID0+IHZvaWR9IG9wZW5Ob2RlXG4gKiBAcHJvcGVydHkgeyhub2RlOiBOb2RlKSA9PiB2b2lkfSBjbG9zZU5vZGVcbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nfSB2YWx1ZVxuICovXG5cbi8qKiBAdHlwZWRlZiB7e3Njb3BlPzogc3RyaW5nLCBsYW5ndWFnZT86IHN0cmluZywgc3VibGFuZ3VhZ2U/OiBib29sZWFufX0gTm9kZSAqL1xuLyoqIEB0eXBlZGVmIHt7d2FsazogKHI6IFJlbmRlcmVyKSA9PiB2b2lkfX0gVHJlZSAqL1xuLyoqICovXG5cbmNvbnN0IFNQQU5fQ0xPU0UgPSAnPC9zcGFuPic7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIG5vZGUgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiA8c3Bhbj5cbiAqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbmNvbnN0IGVtaXRzV3JhcHBpbmdUYWdzID0gKG5vZGUpID0+IHtcbiAgLy8gcmFyZWx5IHdlIGNhbiBoYXZlIGEgc3VibGFuZ3VhZ2Ugd2hlcmUgbGFuZ3VhZ2UgaXMgdW5kZWZpbmVkXG4gIC8vIFRPRE86IHRyYWNrIGRvd24gd2h5XG4gIHJldHVybiAhIW5vZGUuc2NvcGU7XG59O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHt7cHJlZml4OnN0cmluZ319IG9wdGlvbnNcbiAqL1xuY29uc3Qgc2NvcGVUb0NTU0NsYXNzID0gKG5hbWUsIHsgcHJlZml4IH0pID0+IHtcbiAgLy8gc3ViLWxhbmd1YWdlXG4gIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJsYW5ndWFnZTpcIikpIHtcbiAgICByZXR1cm4gbmFtZS5yZXBsYWNlKFwibGFuZ3VhZ2U6XCIsIFwibGFuZ3VhZ2UtXCIpO1xuICB9XG4gIC8vIHRpZXJlZCBzY29wZTogY29tbWVudC5saW5lXG4gIGlmIChuYW1lLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgIGNvbnN0IHBpZWNlcyA9IG5hbWUuc3BsaXQoXCIuXCIpO1xuICAgIHJldHVybiBbXG4gICAgICBgJHtwcmVmaXh9JHtwaWVjZXMuc2hpZnQoKX1gLFxuICAgICAgLi4uKHBpZWNlcy5tYXAoKHgsIGkpID0+IGAke3h9JHtcIl9cIi5yZXBlYXQoaSArIDEpfWApKVxuICAgIF0uam9pbihcIiBcIik7XG4gIH1cbiAgLy8gc2ltcGxlIHNjb3BlXG4gIHJldHVybiBgJHtwcmVmaXh9JHtuYW1lfWA7XG59O1xuXG4vKiogQHR5cGUge1JlbmRlcmVyfSAqL1xuY2xhc3MgSFRNTFJlbmRlcmVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgSFRNTFJlbmRlcmVyXG4gICAqXG4gICAqIEBwYXJhbSB7VHJlZX0gcGFyc2VUcmVlIC0gdGhlIHBhcnNlIHRyZWUgKG11c3Qgc3VwcG9ydCBgd2Fsa2AgQVBJKVxuICAgKiBAcGFyYW0ge3tjbGFzc1ByZWZpeDogc3RyaW5nfX0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IocGFyc2VUcmVlLCBvcHRpb25zKSB7XG4gICAgdGhpcy5idWZmZXIgPSBcIlwiO1xuICAgIHRoaXMuY2xhc3NQcmVmaXggPSBvcHRpb25zLmNsYXNzUHJlZml4O1xuICAgIHBhcnNlVHJlZS53YWxrKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGV4dHMgdG8gdGhlIG91dHB1dCBzdHJlYW1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgKi9cbiAgYWRkVGV4dCh0ZXh0KSB7XG4gICAgdGhpcy5idWZmZXIgKz0gZXNjYXBlSFRNTCh0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBvcGVuIHRvIHRoZSBvdXRwdXQgc3RyZWFtIChpZiBuZWVkZWQpXG4gICAqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAqL1xuICBvcGVuTm9kZShub2RlKSB7XG4gICAgaWYgKCFlbWl0c1dyYXBwaW5nVGFncyhub2RlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2xhc3NOYW1lID0gc2NvcGVUb0NTU0NsYXNzKG5vZGUuc2NvcGUsXG4gICAgICB7IHByZWZpeDogdGhpcy5jbGFzc1ByZWZpeCB9KTtcbiAgICB0aGlzLnNwYW4oY2xhc3NOYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbm9kZSBjbG9zZSB0byB0aGUgb3V0cHV0IHN0cmVhbSAoaWYgbmVlZGVkKVxuICAgKlxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGUgKi9cbiAgY2xvc2VOb2RlKG5vZGUpIHtcbiAgICBpZiAoIWVtaXRzV3JhcHBpbmdUYWdzKG5vZGUpKSByZXR1cm47XG5cbiAgICB0aGlzLmJ1ZmZlciArPSBTUEFOX0NMT1NFO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybnMgdGhlIGFjY3VtdWxhdGVkIGJ1ZmZlclxuICAqL1xuICB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXI7XG4gIH1cblxuICAvLyBoZWxwZXJzXG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHNwYW4gZWxlbWVudFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lICovXG4gIHNwYW4oY2xhc3NOYW1lKSB7XG4gICAgdGhpcy5idWZmZXIgKz0gYDxzcGFuIGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+YDtcbiAgfVxufVxuXG4vKiogQHR5cGVkZWYge3tzY29wZT86IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcsIGNoaWxkcmVuOiBOb2RlW119IHwgc3RyaW5nfSBOb2RlICovXG4vKiogQHR5cGVkZWYge3tzY29wZT86IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcsIGNoaWxkcmVuOiBOb2RlW119IH0gRGF0YU5vZGUgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5FbWl0dGVyfSBFbWl0dGVyICovXG4vKiogICovXG5cbi8qKiBAcmV0dXJucyB7RGF0YU5vZGV9ICovXG5jb25zdCBuZXdOb2RlID0gKG9wdHMgPSB7fSkgPT4ge1xuICAvKiogQHR5cGUgRGF0YU5vZGUgKi9cbiAgY29uc3QgcmVzdWx0ID0geyBjaGlsZHJlbjogW10gfTtcbiAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIG9wdHMpO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY2xhc3MgVG9rZW5UcmVlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqIEB0eXBlIERhdGFOb2RlICovXG4gICAgdGhpcy5yb290Tm9kZSA9IG5ld05vZGUoKTtcbiAgICB0aGlzLnN0YWNrID0gW3RoaXMucm9vdE5vZGVdO1xuICB9XG5cbiAgZ2V0IHRvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja1t0aGlzLnN0YWNrLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgZ2V0IHJvb3QoKSB7IHJldHVybiB0aGlzLnJvb3ROb2RlOyB9XG5cbiAgLyoqIEBwYXJhbSB7Tm9kZX0gbm9kZSAqL1xuICBhZGQobm9kZSkge1xuICAgIHRoaXMudG9wLmNoaWxkcmVuLnB1c2gobm9kZSk7XG4gIH1cblxuICAvKiogQHBhcmFtIHtzdHJpbmd9IHNjb3BlICovXG4gIG9wZW5Ob2RlKHNjb3BlKSB7XG4gICAgLyoqIEB0eXBlIE5vZGUgKi9cbiAgICBjb25zdCBub2RlID0gbmV3Tm9kZSh7IHNjb3BlIH0pO1xuICAgIHRoaXMuYWRkKG5vZGUpO1xuICAgIHRoaXMuc3RhY2sucHVzaChub2RlKTtcbiAgfVxuXG4gIGNsb3NlTm9kZSgpIHtcbiAgICBpZiAodGhpcy5zdGFjay5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGFjay5wb3AoKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjbG9zZUFsbE5vZGVzKCkge1xuICAgIHdoaWxlICh0aGlzLmNsb3NlTm9kZSgpKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5yb290Tm9kZSwgbnVsbCwgNCk7XG4gIH1cblxuICAvKipcbiAgICogQHR5cGVkZWYgeyBpbXBvcnQoXCIuL2h0bWxfcmVuZGVyZXJcIikuUmVuZGVyZXIgfSBSZW5kZXJlclxuICAgKiBAcGFyYW0ge1JlbmRlcmVyfSBidWlsZGVyXG4gICAqL1xuICB3YWxrKGJ1aWxkZXIpIHtcbiAgICAvLyB0aGlzIGRvZXMgbm90XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuX3dhbGsoYnVpbGRlciwgdGhpcy5yb290Tm9kZSk7XG4gICAgLy8gdGhpcyB3b3Jrc1xuICAgIC8vIHJldHVybiBUb2tlblRyZWUuX3dhbGsoYnVpbGRlciwgdGhpcy5yb290Tm9kZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtSZW5kZXJlcn0gYnVpbGRlclxuICAgKiBAcGFyYW0ge05vZGV9IG5vZGVcbiAgICovXG4gIHN0YXRpYyBfd2FsayhidWlsZGVyLCBub2RlKSB7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBidWlsZGVyLmFkZFRleHQobm9kZSk7XG4gICAgfSBlbHNlIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBidWlsZGVyLm9wZW5Ob2RlKG5vZGUpO1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gdGhpcy5fd2FsayhidWlsZGVyLCBjaGlsZCkpO1xuICAgICAgYnVpbGRlci5jbG9zZU5vZGUobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Tm9kZX0gbm9kZVxuICAgKi9cbiAgc3RhdGljIF9jb2xsYXBzZShub2RlKSB7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSBcInN0cmluZ1wiKSByZXR1cm47XG4gICAgaWYgKCFub2RlLmNoaWxkcmVuKSByZXR1cm47XG5cbiAgICBpZiAobm9kZS5jaGlsZHJlbi5ldmVyeShlbCA9PiB0eXBlb2YgZWwgPT09IFwic3RyaW5nXCIpKSB7XG4gICAgICAvLyBub2RlLnRleHQgPSBub2RlLmNoaWxkcmVuLmpvaW4oXCJcIik7XG4gICAgICAvLyBkZWxldGUgbm9kZS5jaGlsZHJlbjtcbiAgICAgIG5vZGUuY2hpbGRyZW4gPSBbbm9kZS5jaGlsZHJlbi5qb2luKFwiXCIpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICBUb2tlblRyZWUuX2NvbGxhcHNlKGNoaWxkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAgQ3VycmVudGx5IHRoaXMgaXMgYWxsIHByaXZhdGUgQVBJLCBidXQgdGhpcyBpcyB0aGUgbWluaW1hbCBBUEkgbmVjZXNzYXJ5XG4gIHRoYXQgYW4gRW1pdHRlciBtdXN0IGltcGxlbWVudCB0byBmdWxseSBzdXBwb3J0IHRoZSBwYXJzZXIuXG5cbiAgTWluaW1hbCBpbnRlcmZhY2U6XG5cbiAgLSBhZGRUZXh0KHRleHQpXG4gIC0gX19hZGRTdWJsYW5ndWFnZShlbWl0dGVyLCBzdWJMYW5ndWFnZU5hbWUpXG4gIC0gc3RhcnRTY29wZShzY29wZSlcbiAgLSBlbmRTY29wZSgpXG4gIC0gZmluYWxpemUoKVxuICAtIHRvSFRNTCgpXG5cbiovXG5cbi8qKlxuICogQGltcGxlbWVudHMge0VtaXR0ZXJ9XG4gKi9cbmNsYXNzIFRva2VuVHJlZUVtaXR0ZXIgZXh0ZW5kcyBUb2tlblRyZWUge1xuICAvKipcbiAgICogQHBhcmFtIHsqfSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gICAqL1xuICBhZGRUZXh0KHRleHQpIHtcbiAgICBpZiAodGV4dCA9PT0gXCJcIikgeyByZXR1cm47IH1cblxuICAgIHRoaXMuYWRkKHRleHQpO1xuICB9XG5cbiAgLyoqIEBwYXJhbSB7c3RyaW5nfSBzY29wZSAqL1xuICBzdGFydFNjb3BlKHNjb3BlKSB7XG4gICAgdGhpcy5vcGVuTm9kZShzY29wZSk7XG4gIH1cblxuICBlbmRTY29wZSgpIHtcbiAgICB0aGlzLmNsb3NlTm9kZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RW1pdHRlciAmIHtyb290OiBEYXRhTm9kZX19IGVtaXR0ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICovXG4gIF9fYWRkU3VibGFuZ3VhZ2UoZW1pdHRlciwgbmFtZSkge1xuICAgIC8qKiBAdHlwZSBEYXRhTm9kZSAqL1xuICAgIGNvbnN0IG5vZGUgPSBlbWl0dGVyLnJvb3Q7XG4gICAgaWYgKG5hbWUpIG5vZGUuc2NvcGUgPSBgbGFuZ3VhZ2U6JHtuYW1lfWA7XG5cbiAgICB0aGlzLmFkZChub2RlKTtcbiAgfVxuXG4gIHRvSFRNTCgpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IG5ldyBIVE1MUmVuZGVyZXIodGhpcywgdGhpcy5vcHRpb25zKTtcbiAgICByZXR1cm4gcmVuZGVyZXIudmFsdWUoKTtcbiAgfVxuXG4gIGZpbmFsaXplKCkge1xuICAgIHRoaXMuY2xvc2VBbGxOb2RlcygpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICogKi9cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBzb3VyY2UocmUpIHtcbiAgaWYgKCFyZSkgcmV0dXJuIG51bGw7XG4gIGlmICh0eXBlb2YgcmUgPT09IFwic3RyaW5nXCIpIHJldHVybiByZTtcblxuICByZXR1cm4gcmUuc291cmNlO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVnRXhwIHwgc3RyaW5nIH0gcmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGxvb2thaGVhZChyZSkge1xuICByZXR1cm4gY29uY2F0KCcoPz0nLCByZSwgJyknKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBhbnlOdW1iZXJPZlRpbWVzKHJlKSB7XG4gIHJldHVybiBjb25jYXQoJyg/OicsIHJlLCAnKSonKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBvcHRpb25hbChyZSkge1xuICByZXR1cm4gY29uY2F0KCcoPzonLCByZSwgJyk/Jyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHsuLi4oUmVnRXhwIHwgc3RyaW5nKSB9IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNvbmNhdCguLi5hcmdzKSB7XG4gIGNvbnN0IGpvaW5lZCA9IGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJcIik7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHsgQXJyYXk8c3RyaW5nIHwgUmVnRXhwIHwgT2JqZWN0PiB9IGFyZ3NcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpIHtcbiAgY29uc3Qgb3B0cyA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcblxuICBpZiAodHlwZW9mIG9wdHMgPT09ICdvYmplY3QnICYmIG9wdHMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgIGFyZ3Muc3BsaWNlKGFyZ3MubGVuZ3RoIC0gMSwgMSk7XG4gICAgcmV0dXJuIG9wdHM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbi8qKiBAdHlwZWRlZiB7IHtjYXB0dXJlPzogYm9vbGVhbn0gfSBSZWdleEVpdGhlck9wdGlvbnMgKi9cblxuLyoqXG4gKiBBbnkgb2YgdGhlIHBhc3NlZCBleHByZXNzc2lvbnMgbWF5IG1hdGNoXG4gKlxuICogQ3JlYXRlcyBhIGh1Z2UgdGhpcyB8IHRoaXMgfCB0aGF0IHwgdGhhdCBtYXRjaFxuICogQHBhcmFtIHsoUmVnRXhwIHwgc3RyaW5nKVtdIHwgWy4uLihSZWdFeHAgfCBzdHJpbmcpW10sIFJlZ2V4RWl0aGVyT3B0aW9uc119IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVpdGhlciguLi5hcmdzKSB7XG4gIC8qKiBAdHlwZSB7IG9iamVjdCAmIHtjYXB0dXJlPzogYm9vbGVhbn0gfSAgKi9cbiAgY29uc3Qgb3B0cyA9IHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpO1xuICBjb25zdCBqb2luZWQgPSAnKCdcbiAgICArIChvcHRzLmNhcHR1cmUgPyBcIlwiIDogXCI/OlwiKVxuICAgICsgYXJncy5tYXAoKHgpID0+IHNvdXJjZSh4KSkuam9pbihcInxcIikgKyBcIilcIjtcbiAgcmV0dXJuIGpvaW5lZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZ30gcmVcbiAqIEByZXR1cm5zIHtudW1iZXJ9XG4gKi9cbmZ1bmN0aW9uIGNvdW50TWF0Y2hHcm91cHMocmUpIHtcbiAgcmV0dXJuIChuZXcgUmVnRXhwKHJlLnRvU3RyaW5nKCkgKyAnfCcpKS5leGVjKCcnKS5sZW5ndGggLSAxO1xufVxuXG4vKipcbiAqIERvZXMgbGV4ZW1lIHN0YXJ0IHdpdGggYSByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2ggYXQgdGhlIGJlZ2lubmluZ1xuICogQHBhcmFtIHtSZWdFeHB9IHJlXG4gKiBAcGFyYW0ge3N0cmluZ30gbGV4ZW1lXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0c1dpdGgocmUsIGxleGVtZSkge1xuICBjb25zdCBtYXRjaCA9IHJlICYmIHJlLmV4ZWMobGV4ZW1lKTtcbiAgcmV0dXJuIG1hdGNoICYmIG1hdGNoLmluZGV4ID09PSAwO1xufVxuXG4vLyBCQUNLUkVGX1JFIG1hdGNoZXMgYW4gb3BlbiBwYXJlbnRoZXNpcyBvciBiYWNrcmVmZXJlbmNlLiBUbyBhdm9pZFxuLy8gYW4gaW5jb3JyZWN0IHBhcnNlLCBpdCBhZGRpdGlvbmFsbHkgbWF0Y2hlcyB0aGUgZm9sbG93aW5nOlxuLy8gLSBbLi4uXSBlbGVtZW50cywgd2hlcmUgdGhlIG1lYW5pbmcgb2YgcGFyZW50aGVzZXMgYW5kIGVzY2FwZXMgY2hhbmdlXG4vLyAtIG90aGVyIGVzY2FwZSBzZXF1ZW5jZXMsIHNvIHdlIGRvIG5vdCBtaXNwYXJzZSBlc2NhcGUgc2VxdWVuY2VzIGFzXG4vLyAgIGludGVyZXN0aW5nIGVsZW1lbnRzXG4vLyAtIG5vbi1tYXRjaGluZyBvciBsb29rYWhlYWQgcGFyZW50aGVzZXMsIHdoaWNoIGRvIG5vdCBjYXB0dXJlLiBUaGVzZVxuLy8gICBmb2xsb3cgdGhlICcoJyB3aXRoIGEgJz8nLlxuY29uc3QgQkFDS1JFRl9SRSA9IC9cXFsoPzpbXlxcXFxcXF1dfFxcXFwuKSpcXF18XFwoXFw/P3xcXFxcKFsxLTldWzAtOV0qKXxcXFxcLi87XG5cbi8vICoqSU5URVJOQUwqKiBOb3QgaW50ZW5kZWQgZm9yIG91dHNpZGUgdXNhZ2Vcbi8vIGpvaW4gbG9naWNhbGx5IGNvbXB1dGVzIHJlZ2V4cHMuam9pbihzZXBhcmF0b3IpLCBidXQgZml4ZXMgdGhlXG4vLyBiYWNrcmVmZXJlbmNlcyBzbyB0aGV5IGNvbnRpbnVlIHRvIG1hdGNoLlxuLy8gaXQgYWxzbyBwbGFjZXMgZWFjaCBpbmRpdmlkdWFsIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbnRvIGl0J3Mgb3duXG4vLyBtYXRjaCBncm91cCwga2VlcGluZyB0cmFjayBvZiB0aGUgc2VxdWVuY2luZyBvZiB0aG9zZSBtYXRjaCBncm91cHNcbi8vIGlzIGN1cnJlbnRseSBhbiBleGVyY2lzZSBmb3IgdGhlIGNhbGxlci4gOi0pXG4vKipcbiAqIEBwYXJhbSB7KHN0cmluZyB8IFJlZ0V4cClbXX0gcmVnZXhwc1xuICogQHBhcmFtIHt7am9pbldpdGg6IHN0cmluZ319IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIF9yZXdyaXRlQmFja3JlZmVyZW5jZXMocmVnZXhwcywgeyBqb2luV2l0aCB9KSB7XG4gIGxldCBudW1DYXB0dXJlcyA9IDA7XG5cbiAgcmV0dXJuIHJlZ2V4cHMubWFwKChyZWdleCkgPT4ge1xuICAgIG51bUNhcHR1cmVzICs9IDE7XG4gICAgY29uc3Qgb2Zmc2V0ID0gbnVtQ2FwdHVyZXM7XG4gICAgbGV0IHJlID0gc291cmNlKHJlZ2V4KTtcbiAgICBsZXQgb3V0ID0gJyc7XG5cbiAgICB3aGlsZSAocmUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBCQUNLUkVGX1JFLmV4ZWMocmUpO1xuICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICBvdXQgKz0gcmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgb3V0ICs9IHJlLnN1YnN0cmluZygwLCBtYXRjaC5pbmRleCk7XG4gICAgICByZSA9IHJlLnN1YnN0cmluZyhtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICBpZiAobWF0Y2hbMF1bMF0gPT09ICdcXFxcJyAmJiBtYXRjaFsxXSkge1xuICAgICAgICAvLyBBZGp1c3QgdGhlIGJhY2tyZWZlcmVuY2UuXG4gICAgICAgIG91dCArPSAnXFxcXCcgKyBTdHJpbmcoTnVtYmVyKG1hdGNoWzFdKSArIG9mZnNldCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXQgKz0gbWF0Y2hbMF07XG4gICAgICAgIGlmIChtYXRjaFswXSA9PT0gJygnKSB7XG4gICAgICAgICAgbnVtQ2FwdHVyZXMrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9KS5tYXAocmUgPT4gYCgke3JlfSlgKS5qb2luKGpvaW5XaXRoKTtcbn1cblxuLyoqIEB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLk1vZGV9IE1vZGUgKi9cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Nb2RlQ2FsbGJhY2t9IE1vZGVDYWxsYmFjayAqL1xuXG4vLyBDb21tb24gcmVnZXhwc1xuY29uc3QgTUFUQ0hfTk9USElOR19SRSA9IC9cXGJcXEIvO1xuY29uc3QgSURFTlRfUkUgPSAnW2EtekEtWl1cXFxcdyonO1xuY29uc3QgVU5ERVJTQ09SRV9JREVOVF9SRSA9ICdbYS16QS1aX11cXFxcdyonO1xuY29uc3QgTlVNQkVSX1JFID0gJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8nO1xuY29uc3QgQ19OVU1CRVJfUkUgPSAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOV0rfChcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKik/fFxcXFwuXFxcXGQrKShbZUVdWy0rXT9cXFxcZCspPyknOyAvLyAweC4uLiwgMC4uLiwgZGVjaW1hbCwgZmxvYXRcbmNvbnN0IEJJTkFSWV9OVU1CRVJfUkUgPSAnXFxcXGIoMGJbMDFdKyknOyAvLyAwYi4uLlxuY29uc3QgUkVfU1RBUlRFUlNfUkUgPSAnIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcXFwqfFxcXFwqPXxcXFxcK3xcXFxcKz18LHwtfC09fC89fC98Onw7fDw8fDw8PXw8PXw8fD09PXw9PXw9fD4+Pj18Pj49fD49fD4+Pnw+Pnw+fFxcXFw/fFxcXFxbfFxcXFx7fFxcXFwofFxcXFxefFxcXFxePXxcXFxcfHxcXFxcfD18XFxcXHxcXFxcfHx+JztcblxuLyoqXG4qIEBwYXJhbSB7IFBhcnRpYWw8TW9kZT4gJiB7YmluYXJ5Pzogc3RyaW5nIHwgUmVnRXhwfSB9IG9wdHNcbiovXG5jb25zdCBTSEVCQU5HID0gKG9wdHMgPSB7fSkgPT4ge1xuICBjb25zdCBiZWdpblNoZWJhbmcgPSAvXiMhWyBdKlxcLy87XG4gIGlmIChvcHRzLmJpbmFyeSkge1xuICAgIG9wdHMuYmVnaW4gPSBjb25jYXQoXG4gICAgICBiZWdpblNoZWJhbmcsXG4gICAgICAvLipcXGIvLFxuICAgICAgb3B0cy5iaW5hcnksXG4gICAgICAvXFxiLiovKTtcbiAgfVxuICByZXR1cm4gaW5oZXJpdCQxKHtcbiAgICBzY29wZTogJ21ldGEnLFxuICAgIGJlZ2luOiBiZWdpblNoZWJhbmcsXG4gICAgZW5kOiAvJC8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIC8qKiBAdHlwZSB7TW9kZUNhbGxiYWNrfSAqL1xuICAgIFwib246YmVnaW5cIjogKG0sIHJlc3ApID0+IHtcbiAgICAgIGlmIChtLmluZGV4ICE9PSAwKSByZXNwLmlnbm9yZU1hdGNoKCk7XG4gICAgfVxuICB9LCBvcHRzKTtcbn07XG5cbi8vIENvbW1vbiBtb2Rlc1xuY29uc3QgQkFDS1NMQVNIX0VTQ0FQRSA9IHtcbiAgYmVnaW46ICdcXFxcXFxcXFtcXFxcc1xcXFxTXScsIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IEFQT1NfU1RSSU5HX01PREUgPSB7XG4gIHNjb3BlOiAnc3RyaW5nJyxcbiAgYmVnaW46ICdcXCcnLFxuICBlbmQ6ICdcXCcnLFxuICBpbGxlZ2FsOiAnXFxcXG4nLFxuICBjb250YWluczogW0JBQ0tTTEFTSF9FU0NBUEVdXG59O1xuY29uc3QgUVVPVEVfU1RSSU5HX01PREUgPSB7XG4gIHNjb3BlOiAnc3RyaW5nJyxcbiAgYmVnaW46ICdcIicsXG4gIGVuZDogJ1wiJyxcbiAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgY29udGFpbnM6IFtCQUNLU0xBU0hfRVNDQVBFXVxufTtcbmNvbnN0IFBIUkFTQUxfV09SRFNfTU9ERSA9IHtcbiAgYmVnaW46IC9cXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlvdXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxcYi9cbn07XG4vKipcbiAqIENyZWF0ZXMgYSBjb21tZW50IG1vZGVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IFJlZ0V4cH0gYmVnaW5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgUmVnRXhwfSBlbmRcbiAqIEBwYXJhbSB7TW9kZSB8IHt9fSBbbW9kZU9wdGlvbnNdXG4gKiBAcmV0dXJucyB7UGFydGlhbDxNb2RlPn1cbiAqL1xuY29uc3QgQ09NTUVOVCA9IGZ1bmN0aW9uKGJlZ2luLCBlbmQsIG1vZGVPcHRpb25zID0ge30pIHtcbiAgY29uc3QgbW9kZSA9IGluaGVyaXQkMShcbiAgICB7XG4gICAgICBzY29wZTogJ2NvbW1lbnQnLFxuICAgICAgYmVnaW4sXG4gICAgICBlbmQsXG4gICAgICBjb250YWluczogW11cbiAgICB9LFxuICAgIG1vZGVPcHRpb25zXG4gICk7XG4gIG1vZGUuY29udGFpbnMucHVzaCh7XG4gICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgIC8vIGhhY2sgdG8gYXZvaWQgdGhlIHNwYWNlIGZyb20gYmVpbmcgaW5jbHVkZWQuIHRoZSBzcGFjZSBpcyBuZWNlc3NhcnkgdG9cbiAgICAvLyBtYXRjaCBoZXJlIHRvIHByZXZlbnQgdGhlIHBsYWluIHRleHQgcnVsZSBiZWxvdyBmcm9tIGdvYmJsaW5nIHVwIGRvY3RhZ3NcbiAgICBiZWdpbjogJ1sgXSooPz0oVE9ET3xGSVhNRXxOT1RFfEJVR3xPUFRJTUlaRXxIQUNLfFhYWCk6KScsXG4gICAgZW5kOiAvKFRPRE98RklYTUV8Tk9URXxCVUd8T1BUSU1JWkV8SEFDS3xYWFgpOi8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9KTtcbiAgY29uc3QgRU5HTElTSF9XT1JEID0gZWl0aGVyKFxuICAgIC8vIGxpc3Qgb2YgY29tbW9uIDEgYW5kIDIgbGV0dGVyIHdvcmRzIGluIEVuZ2xpc2hcbiAgICBcIklcIixcbiAgICBcImFcIixcbiAgICBcImlzXCIsXG4gICAgXCJzb1wiLFxuICAgIFwidXNcIixcbiAgICBcInRvXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiaWZcIixcbiAgICBcImluXCIsXG4gICAgXCJpdFwiLFxuICAgIFwib25cIixcbiAgICAvLyBub3RlOiB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3Qgb2YgY29udHJhY3Rpb25zLCBqdXN0IHBvcHVsYXIgb25lc1xuICAgIC9bQS1aYS16XStbJ10oZHx2ZXxyZXxsbHx0fHN8bikvLCAvLyBjb250cmFjdGlvbnMgLSBjYW4ndCB3ZSdkIHRoZXkncmUgbGV0J3MsIGV0Y1xuICAgIC9bQS1aYS16XStbLV1bYS16XSsvLCAvLyBgbm8td2F5YCwgZXRjLlxuICAgIC9bQS1aYS16XVthLXpdezIsfS8gLy8gYWxsb3cgY2FwaXRhbGl6ZWQgd29yZHMgYXQgYmVnaW5uaW5nIG9mIHNlbnRlbmNlc1xuICApO1xuICAvLyBsb29raW5nIGxpa2UgcGxhaW4gdGV4dCwgbW9yZSBsaWtlbHkgdG8gYmUgYSBjb21tZW50XG4gIG1vZGUuY29udGFpbnMucHVzaChcbiAgICB7XG4gICAgICAvLyBUT0RPOiBob3cgdG8gaW5jbHVkZSBcIiwgKCwgKSB3aXRob3V0IGJyZWFraW5nIGdyYW1tYXJzIHRoYXQgdXNlIHRoZXNlIGZvclxuICAgICAgLy8gY29tbWVudCBkZWxpbWl0ZXJzP1xuICAgICAgLy8gYmVnaW46IC9bIF0rKFsoKVwiXT8oW0EtWmEteictXXszLH18aXN8YXxJfHNvfHVzfFt0VF1bb09dfGF0fGlmfGlufGl0fG9uKVsuXT9bKClcIjpdPyhbLl1bIF18WyBdfFxcKSkpezN9L1xuICAgICAgLy8gLS0tXG5cbiAgICAgIC8vIHRoaXMgdHJpZXMgdG8gZmluZCBzZXF1ZW5jZXMgb2YgMyBlbmdsaXNoIHdvcmRzIGluIGEgcm93ICh3aXRob3V0IGFueVxuICAgICAgLy8gXCJwcm9ncmFtbWluZ1wiIHR5cGUgc3ludGF4KSB0aGlzIGdpdmVzIHVzIGEgc3Ryb25nIHNpZ25hbCB0aGF0IHdlJ3ZlXG4gICAgICAvLyBUUlVMWSBmb3VuZCBhIGNvbW1lbnQgLSB2cyBwZXJoYXBzIHNjYW5uaW5nIHdpdGggdGhlIHdyb25nIGxhbmd1YWdlLlxuICAgICAgLy8gSXQncyBwb3NzaWJsZSB0byBmaW5kIHNvbWV0aGluZyB0aGF0IExPT0tTIGxpa2UgdGhlIHN0YXJ0IG9mIHRoZVxuICAgICAgLy8gY29tbWVudCAtIGJ1dCB0aGVuIGlmIHRoZXJlIGlzIG5vIHJlYWRhYmxlIHRleHQgLSBnb29kIGNoYW5jZSBpdCBpcyBhXG4gICAgICAvLyBmYWxzZSBtYXRjaCBhbmQgbm90IGEgY29tbWVudC5cbiAgICAgIC8vXG4gICAgICAvLyBmb3IgYSB2aXN1YWwgZXhhbXBsZSBwbGVhc2Ugc2VlOlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjgyN1xuXG4gICAgICBiZWdpbjogY29uY2F0KFxuICAgICAgICAvWyBdKy8sIC8vIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHVzIGdvYmJsaW5nIHVwIGRvY3RhZ3MgbGlrZSAvKiBAYXV0aG9yIEJvYiBNY2dpbGwgKi9cbiAgICAgICAgJygnLFxuICAgICAgICBFTkdMSVNIX1dPUkQsXG4gICAgICAgIC9bLl0/WzpdPyhbLl1bIF18WyBdKS8sXG4gICAgICAgICcpezN9JykgLy8gbG9vayBmb3IgMyB3b3JkcyBpbiBhIHJvd1xuICAgIH1cbiAgKTtcbiAgcmV0dXJuIG1vZGU7XG59O1xuY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IENPTU1FTlQoJy8vJywgJyQnKTtcbmNvbnN0IENfQkxPQ0tfQ09NTUVOVF9NT0RFID0gQ09NTUVOVCgnL1xcXFwqJywgJ1xcXFwqLycpO1xuY29uc3QgSEFTSF9DT01NRU5UX01PREUgPSBDT01NRU5UKCcjJywgJyQnKTtcbmNvbnN0IE5VTUJFUl9NT0RFID0ge1xuICBzY29wZTogJ251bWJlcicsXG4gIGJlZ2luOiBOVU1CRVJfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IENfTlVNQkVSX01PREUgPSB7XG4gIHNjb3BlOiAnbnVtYmVyJyxcbiAgYmVnaW46IENfTlVNQkVSX1JFLFxuICByZWxldmFuY2U6IDBcbn07XG5jb25zdCBCSU5BUllfTlVNQkVSX01PREUgPSB7XG4gIHNjb3BlOiAnbnVtYmVyJyxcbiAgYmVnaW46IEJJTkFSWV9OVU1CRVJfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IFJFR0VYUF9NT0RFID0ge1xuICBzY29wZTogXCJyZWdleHBcIixcbiAgYmVnaW46IC9cXC8oPz1bXi9cXG5dKlxcLykvLFxuICBlbmQ6IC9cXC9bZ2ltdXldKi8sXG4gIGNvbnRhaW5zOiBbXG4gICAgQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICB7XG4gICAgICBiZWdpbjogL1xcWy8sXG4gICAgICBlbmQ6IC9cXF0vLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgY29udGFpbnM6IFtCQUNLU0xBU0hfRVNDQVBFXVxuICAgIH1cbiAgXVxufTtcbmNvbnN0IFRJVExFX01PREUgPSB7XG4gIHNjb3BlOiAndGl0bGUnLFxuICBiZWdpbjogSURFTlRfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcbmNvbnN0IFVOREVSU0NPUkVfVElUTEVfTU9ERSA9IHtcbiAgc2NvcGU6ICd0aXRsZScsXG4gIGJlZ2luOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICByZWxldmFuY2U6IDBcbn07XG5jb25zdCBNRVRIT0RfR1VBUkQgPSB7XG4gIC8vIGV4Y2x1ZGVzIG1ldGhvZCBuYW1lcyBmcm9tIGtleXdvcmQgcHJvY2Vzc2luZ1xuICBiZWdpbjogJ1xcXFwuXFxcXHMqJyArIFVOREVSU0NPUkVfSURFTlRfUkUsXG4gIHJlbGV2YW5jZTogMFxufTtcblxuLyoqXG4gKiBBZGRzIGVuZCBzYW1lIGFzIGJlZ2luIG1lY2hhbmljcyB0byBhIG1vZGVcbiAqXG4gKiBZb3VyIG1vZGUgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IGEgc2luZ2xlICgpIG1hdGNoIGdyb3VwIGFzIHRoYXQgZmlyc3QgbWF0Y2hcbiAqIGdyb3VwIGlzIHdoYXQgaXMgdXNlZCBmb3IgY29tcGFyaXNvblxuICogQHBhcmFtIHtQYXJ0aWFsPE1vZGU+fSBtb2RlXG4gKi9cbmNvbnN0IEVORF9TQU1FX0FTX0JFR0lOID0gZnVuY3Rpb24obW9kZSkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihtb2RlLFxuICAgIHtcbiAgICAgIC8qKiBAdHlwZSB7TW9kZUNhbGxiYWNrfSAqL1xuICAgICAgJ29uOmJlZ2luJzogKG0sIHJlc3ApID0+IHsgcmVzcC5kYXRhLl9iZWdpbk1hdGNoID0gbVsxXTsgfSxcbiAgICAgIC8qKiBAdHlwZSB7TW9kZUNhbGxiYWNrfSAqL1xuICAgICAgJ29uOmVuZCc6IChtLCByZXNwKSA9PiB7IGlmIChyZXNwLmRhdGEuX2JlZ2luTWF0Y2ggIT09IG1bMV0pIHJlc3AuaWdub3JlTWF0Y2goKTsgfVxuICAgIH0pO1xufTtcblxudmFyIE1PREVTID0gLyojX19QVVJFX18qL09iamVjdC5mcmVlemUoe1xuICBfX3Byb3RvX186IG51bGwsXG4gIEFQT1NfU1RSSU5HX01PREU6IEFQT1NfU1RSSU5HX01PREUsXG4gIEJBQ0tTTEFTSF9FU0NBUEU6IEJBQ0tTTEFTSF9FU0NBUEUsXG4gIEJJTkFSWV9OVU1CRVJfTU9ERTogQklOQVJZX05VTUJFUl9NT0RFLFxuICBCSU5BUllfTlVNQkVSX1JFOiBCSU5BUllfTlVNQkVSX1JFLFxuICBDT01NRU5UOiBDT01NRU5ULFxuICBDX0JMT0NLX0NPTU1FTlRfTU9ERTogQ19CTE9DS19DT01NRU5UX01PREUsXG4gIENfTElORV9DT01NRU5UX01PREU6IENfTElORV9DT01NRU5UX01PREUsXG4gIENfTlVNQkVSX01PREU6IENfTlVNQkVSX01PREUsXG4gIENfTlVNQkVSX1JFOiBDX05VTUJFUl9SRSxcbiAgRU5EX1NBTUVfQVNfQkVHSU46IEVORF9TQU1FX0FTX0JFR0lOLFxuICBIQVNIX0NPTU1FTlRfTU9ERTogSEFTSF9DT01NRU5UX01PREUsXG4gIElERU5UX1JFOiBJREVOVF9SRSxcbiAgTUFUQ0hfTk9USElOR19SRTogTUFUQ0hfTk9USElOR19SRSxcbiAgTUVUSE9EX0dVQVJEOiBNRVRIT0RfR1VBUkQsXG4gIE5VTUJFUl9NT0RFOiBOVU1CRVJfTU9ERSxcbiAgTlVNQkVSX1JFOiBOVU1CRVJfUkUsXG4gIFBIUkFTQUxfV09SRFNfTU9ERTogUEhSQVNBTF9XT1JEU19NT0RFLFxuICBRVU9URV9TVFJJTkdfTU9ERTogUVVPVEVfU1RSSU5HX01PREUsXG4gIFJFR0VYUF9NT0RFOiBSRUdFWFBfTU9ERSxcbiAgUkVfU1RBUlRFUlNfUkU6IFJFX1NUQVJURVJTX1JFLFxuICBTSEVCQU5HOiBTSEVCQU5HLFxuICBUSVRMRV9NT0RFOiBUSVRMRV9NT0RFLFxuICBVTkRFUlNDT1JFX0lERU5UX1JFOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICBVTkRFUlNDT1JFX1RJVExFX01PREU6IFVOREVSU0NPUkVfVElUTEVfTU9ERVxufSk7XG5cbi8qKlxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ2FsbGJhY2tSZXNwb25zZX0gQ2FsbGJhY2tSZXNwb25zZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZXJFeHR9IENvbXBpbGVyRXh0XG4qL1xuXG4vLyBHcmFtbWFyIGV4dGVuc2lvbnMgLyBwbHVnaW5zXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI4MzNcblxuLy8gR3JhbW1hciBleHRlbnNpb25zIGFsbG93IFwic3ludGFjdGljIHN1Z2FyXCIgdG8gYmUgYWRkZWQgdG8gdGhlIGdyYW1tYXIgbW9kZXNcbi8vIHdpdGhvdXQgcmVxdWlyaW5nIGFueSB1bmRlcmx5aW5nIGNoYW5nZXMgdG8gdGhlIGNvbXBpbGVyIGludGVybmFscy5cblxuLy8gYGNvbXBpbGVNYXRjaGAgYmVpbmcgdGhlIHBlcmZlY3Qgc21hbGwgZXhhbXBsZSBvZiBub3cgYWxsb3dpbmcgYSBncmFtbWFyXG4vLyBhdXRob3IgdG8gd3JpdGUgYG1hdGNoYCB3aGVuIHRoZXkgZGVzaXJlIHRvIG1hdGNoIGEgc2luZ2xlIGV4cHJlc3Npb24gcmF0aGVyXG4vLyB0aGFuIGJlaW5nIGZvcmNlZCB0byB1c2UgYGJlZ2luYC4gIFRoZSBleHRlbnNpb24gdGhlbiBqdXN0IG1vdmVzIGBtYXRjaGAgaW50b1xuLy8gYGJlZ2luYCB3aGVuIGl0IHJ1bnMuICBJZSwgbm8gZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkLCBidXQgd2UndmUganVzdCBtYWRlXG4vLyB0aGUgZXhwZXJpZW5jZSBvZiB3cml0aW5nIChhbmQgcmVhZGluZyBncmFtbWFycykgYSBsaXR0bGUgYml0IG5pY2VyLlxuXG4vLyAtLS0tLS1cblxuLy8gVE9ETzogV2UgbmVlZCBuZWdhdGl2ZSBsb29rLWJlaGluZCBzdXBwb3J0IHRvIGRvIHRoaXMgcHJvcGVybHlcbi8qKlxuICogU2tpcCBhIG1hdGNoIGlmIGl0IGhhcyBhIHByZWNlZGluZyBkb3RcbiAqXG4gKiBUaGlzIGlzIHVzZWQgZm9yIGBiZWdpbktleXdvcmRzYCB0byBwcmV2ZW50IG1hdGNoaW5nIGV4cHJlc3Npb25zIHN1Y2ggYXNcbiAqIGBib2Iua2V5d29yZC5kbygpYC4gVGhlIG1vZGUgY29tcGlsZXIgYXV0b21hdGljYWxseSB3aXJlcyB0aGlzIHVwIGFzIGFcbiAqIHNwZWNpYWwgX2ludGVybmFsXyAnb246YmVnaW4nIGNhbGxiYWNrIGZvciBtb2RlcyB3aXRoIGBiZWdpbktleXdvcmRzYFxuICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICovXG5mdW5jdGlvbiBza2lwSWZIYXNQcmVjZWRpbmdEb3QobWF0Y2gsIHJlc3BvbnNlKSB7XG4gIGNvbnN0IGJlZm9yZSA9IG1hdGNoLmlucHV0W21hdGNoLmluZGV4IC0gMV07XG4gIGlmIChiZWZvcmUgPT09IFwiLlwiKSB7XG4gICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAdHlwZSB7Q29tcGlsZXJFeHR9XG4gKi9cbmZ1bmN0aW9uIHNjb3BlQ2xhc3NOYW1lKG1vZGUsIF9wYXJlbnQpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICBpZiAobW9kZS5jbGFzc05hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIG1vZGUuc2NvcGUgPSBtb2RlLmNsYXNzTmFtZTtcbiAgICBkZWxldGUgbW9kZS5jbGFzc05hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBgYmVnaW5LZXl3b3Jkc2Agc3ludGFjdGljIHN1Z2FyXG4gKiBAdHlwZSB7Q29tcGlsZXJFeHR9XG4gKi9cbmZ1bmN0aW9uIGJlZ2luS2V5d29yZHMobW9kZSwgcGFyZW50KSB7XG4gIGlmICghcGFyZW50KSByZXR1cm47XG4gIGlmICghbW9kZS5iZWdpbktleXdvcmRzKSByZXR1cm47XG5cbiAgLy8gZm9yIGxhbmd1YWdlcyB3aXRoIGtleXdvcmRzIHRoYXQgaW5jbHVkZSBub24td29yZCBjaGFyYWN0ZXJzIGNoZWNraW5nIGZvclxuICAvLyBhIHdvcmQgYm91bmRhcnkgaXMgbm90IHN1ZmZpY2llbnQsIHNvIGluc3RlYWQgd2UgY2hlY2sgZm9yIGEgd29yZCBib3VuZGFyeVxuICAvLyBvciB3aGl0ZXNwYWNlIC0gdGhpcyBkb2VzIG5vIGhhcm0gaW4gYW55IGNhc2Ugc2luY2Ugb3VyIGtleXdvcmQgZW5naW5lXG4gIC8vIGRvZXNuJ3QgYWxsb3cgc3BhY2VzIGluIGtleXdvcmRzIGFueXdheXMgYW5kIHdlIHN0aWxsIGNoZWNrIGZvciB0aGUgYm91bmRhcnlcbiAgLy8gZmlyc3RcbiAgbW9kZS5iZWdpbiA9ICdcXFxcYignICsgbW9kZS5iZWdpbktleXdvcmRzLnNwbGl0KCcgJykuam9pbignfCcpICsgJykoPyFcXFxcLikoPz1cXFxcYnxcXFxccyknO1xuICBtb2RlLl9fYmVmb3JlQmVnaW4gPSBza2lwSWZIYXNQcmVjZWRpbmdEb3Q7XG4gIG1vZGUua2V5d29yZHMgPSBtb2RlLmtleXdvcmRzIHx8IG1vZGUuYmVnaW5LZXl3b3JkcztcbiAgZGVsZXRlIG1vZGUuYmVnaW5LZXl3b3JkcztcblxuICAvLyBwcmV2ZW50cyBkb3VibGUgcmVsZXZhbmNlLCB0aGUga2V5d29yZHMgdGhlbXNlbHZlcyBwcm92aWRlXG4gIC8vIHJlbGV2YW5jZSwgdGhlIG1vZGUgZG9lc24ndCBuZWVkIHRvIGRvdWJsZSBpdFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZpbmVkXG4gIGlmIChtb2RlLnJlbGV2YW5jZSA9PT0gdW5kZWZpbmVkKSBtb2RlLnJlbGV2YW5jZSA9IDA7XG59XG5cbi8qKlxuICogQWxsb3cgYGlsbGVnYWxgIHRvIGNvbnRhaW4gYW4gYXJyYXkgb2YgaWxsZWdhbCB2YWx1ZXNcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gY29tcGlsZUlsbGVnYWwobW9kZSwgX3BhcmVudCkge1xuICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZS5pbGxlZ2FsKSkgcmV0dXJuO1xuXG4gIG1vZGUuaWxsZWdhbCA9IGVpdGhlciguLi5tb2RlLmlsbGVnYWwpO1xufVxuXG4vKipcbiAqIGBtYXRjaGAgdG8gbWF0Y2ggYSBzaW5nbGUgZXhwcmVzc2lvbiBmb3IgcmVhZGFiaWxpdHlcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gY29tcGlsZU1hdGNoKG1vZGUsIF9wYXJlbnQpIHtcbiAgaWYgKCFtb2RlLm1hdGNoKSByZXR1cm47XG4gIGlmIChtb2RlLmJlZ2luIHx8IG1vZGUuZW5kKSB0aHJvdyBuZXcgRXJyb3IoXCJiZWdpbiAmIGVuZCBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIG1hdGNoXCIpO1xuXG4gIG1vZGUuYmVnaW4gPSBtb2RlLm1hdGNoO1xuICBkZWxldGUgbW9kZS5tYXRjaDtcbn1cblxuLyoqXG4gKiBwcm92aWRlcyB0aGUgZGVmYXVsdCAxIHJlbGV2YW5jZSB0byBhbGwgbW9kZXNcbiAqIEB0eXBlIHtDb21waWxlckV4dH1cbiAqL1xuZnVuY3Rpb24gY29tcGlsZVJlbGV2YW5jZShtb2RlLCBfcGFyZW50KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcbiAgaWYgKG1vZGUucmVsZXZhbmNlID09PSB1bmRlZmluZWQpIG1vZGUucmVsZXZhbmNlID0gMTtcbn1cblxuLy8gYWxsb3cgYmVmb3JlTWF0Y2ggdG8gYWN0IGFzIGEgXCJxdWFsaWZpZXJcIiBmb3IgdGhlIG1hdGNoXG4vLyB0aGUgZnVsbCBtYXRjaCBiZWdpbiBtdXN0IGJlIFtiZWZvcmVNYXRjaF1bYmVnaW5dXG5jb25zdCBiZWZvcmVNYXRjaEV4dCA9IChtb2RlLCBwYXJlbnQpID0+IHtcbiAgaWYgKCFtb2RlLmJlZm9yZU1hdGNoKSByZXR1cm47XG4gIC8vIHN0YXJ0cyBjb25mbGljdHMgd2l0aCBlbmRzUGFyZW50IHdoaWNoIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjaGlsZFxuICAvLyBydWxlIGlzIG5vdCBtYXRjaGVkIG11bHRpcGxlIHRpbWVzXG4gIGlmIChtb2RlLnN0YXJ0cykgdGhyb3cgbmV3IEVycm9yKFwiYmVmb3JlTWF0Y2ggY2Fubm90IGJlIHVzZWQgd2l0aCBzdGFydHNcIik7XG5cbiAgY29uc3Qgb3JpZ2luYWxNb2RlID0gT2JqZWN0LmFzc2lnbih7fSwgbW9kZSk7XG4gIE9iamVjdC5rZXlzKG1vZGUpLmZvckVhY2goKGtleSkgPT4geyBkZWxldGUgbW9kZVtrZXldOyB9KTtcblxuICBtb2RlLmtleXdvcmRzID0gb3JpZ2luYWxNb2RlLmtleXdvcmRzO1xuICBtb2RlLmJlZ2luID0gY29uY2F0KG9yaWdpbmFsTW9kZS5iZWZvcmVNYXRjaCwgbG9va2FoZWFkKG9yaWdpbmFsTW9kZS5iZWdpbikpO1xuICBtb2RlLnN0YXJ0cyA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE9iamVjdC5hc3NpZ24ob3JpZ2luYWxNb2RlLCB7IGVuZHNQYXJlbnQ6IHRydWUgfSlcbiAgICBdXG4gIH07XG4gIG1vZGUucmVsZXZhbmNlID0gMDtcblxuICBkZWxldGUgb3JpZ2luYWxNb2RlLmJlZm9yZU1hdGNoO1xufTtcblxuLy8ga2V5d29yZHMgdGhhdCBzaG91bGQgaGF2ZSBubyBkZWZhdWx0IHJlbGV2YW5jZSB2YWx1ZVxuY29uc3QgQ09NTU9OX0tFWVdPUkRTID0gW1xuICAnb2YnLFxuICAnYW5kJyxcbiAgJ2ZvcicsXG4gICdpbicsXG4gICdub3QnLFxuICAnb3InLFxuICAnaWYnLFxuICAndGhlbicsXG4gICdwYXJlbnQnLCAvLyBjb21tb24gdmFyaWFibGUgbmFtZVxuICAnbGlzdCcsIC8vIGNvbW1vbiB2YXJpYWJsZSBuYW1lXG4gICd2YWx1ZScgLy8gY29tbW9uIHZhcmlhYmxlIG5hbWVcbl07XG5cbmNvbnN0IERFRkFVTFRfS0VZV09SRF9TQ09QRSA9IFwia2V5d29yZFwiO1xuXG4vKipcbiAqIEdpdmVuIHJhdyBrZXl3b3JkcyBmcm9tIGEgbGFuZ3VhZ2UgZGVmaW5pdGlvbiwgY29tcGlsZSB0aGVtLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgUmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+IHwgQXJyYXk8c3RyaW5nPn0gcmF3S2V5d29yZHNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FzZUluc2Vuc2l0aXZlXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGVLZXl3b3JkcyhyYXdLZXl3b3JkcywgY2FzZUluc2Vuc2l0aXZlLCBzY29wZU5hbWUgPSBERUZBVUxUX0tFWVdPUkRfU0NPUEUpIHtcbiAgLyoqIEB0eXBlIHtpbXBvcnQoXCJoaWdobGlnaHQuanMvcHJpdmF0ZVwiKS5LZXl3b3JkRGljdH0gKi9cbiAgY29uc3QgY29tcGlsZWRLZXl3b3JkcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbiAgLy8gaW5wdXQgY2FuIGJlIGEgc3RyaW5nIG9mIGtleXdvcmRzLCBhbiBhcnJheSBvZiBrZXl3b3Jkcywgb3IgYSBvYmplY3Qgd2l0aFxuICAvLyBuYW1lZCBrZXlzIHJlcHJlc2VudGluZyBzY29wZU5hbWUgKHdoaWNoIGNhbiB0aGVuIHBvaW50IHRvIGEgc3RyaW5nIG9yIGFycmF5KVxuICBpZiAodHlwZW9mIHJhd0tleXdvcmRzID09PSAnc3RyaW5nJykge1xuICAgIGNvbXBpbGVMaXN0KHNjb3BlTmFtZSwgcmF3S2V5d29yZHMuc3BsaXQoXCIgXCIpKTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJhd0tleXdvcmRzKSkge1xuICAgIGNvbXBpbGVMaXN0KHNjb3BlTmFtZSwgcmF3S2V5d29yZHMpO1xuICB9IGVsc2Uge1xuICAgIE9iamVjdC5rZXlzKHJhd0tleXdvcmRzKS5mb3JFYWNoKGZ1bmN0aW9uKHNjb3BlTmFtZSkge1xuICAgICAgLy8gY29sbGFwc2UgYWxsIG91ciBvYmplY3RzIGJhY2sgaW50byB0aGUgcGFyZW50IG9iamVjdFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgY29tcGlsZWRLZXl3b3JkcyxcbiAgICAgICAgY29tcGlsZUtleXdvcmRzKHJhd0tleXdvcmRzW3Njb3BlTmFtZV0sIGNhc2VJbnNlbnNpdGl2ZSwgc2NvcGVOYW1lKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY29tcGlsZWRLZXl3b3JkcztcblxuICAvLyAtLS1cblxuICAvKipcbiAgICogQ29tcGlsZXMgYW4gaW5kaXZpZHVhbCBsaXN0IG9mIGtleXdvcmRzXG4gICAqXG4gICAqIEV4OiBcImZvciBpZiB3aGVuIHdoaWxlfDVcIlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVOYW1lXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0ga2V5d29yZExpc3RcbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVMaXN0KHNjb3BlTmFtZSwga2V5d29yZExpc3QpIHtcbiAgICBpZiAoY2FzZUluc2Vuc2l0aXZlKSB7XG4gICAgICBrZXl3b3JkTGlzdCA9IGtleXdvcmRMaXN0Lm1hcCh4ID0+IHgudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuICAgIGtleXdvcmRMaXN0LmZvckVhY2goZnVuY3Rpb24oa2V5d29yZCkge1xuICAgICAgY29uc3QgcGFpciA9IGtleXdvcmQuc3BsaXQoJ3wnKTtcbiAgICAgIGNvbXBpbGVkS2V5d29yZHNbcGFpclswXV0gPSBbc2NvcGVOYW1lLCBzY29yZUZvcktleXdvcmQocGFpclswXSwgcGFpclsxXSldO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcHJvcGVyIHNjb3JlIGZvciBhIGdpdmVuIGtleXdvcmRcbiAqXG4gKiBBbHNvIHRha2VzIGludG8gYWNjb3VudCBjb21tZW50IGtleXdvcmRzLCB3aGljaCB3aWxsIGJlIHNjb3JlZCAwIFVOTEVTU1xuICogYW5vdGhlciBzY29yZSBoYXMgYmVlbiBtYW51YWxseSBhc3NpZ25lZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXl3b3JkXG4gKiBAcGFyYW0ge3N0cmluZ30gW3Byb3ZpZGVkU2NvcmVdXG4gKi9cbmZ1bmN0aW9uIHNjb3JlRm9yS2V5d29yZChrZXl3b3JkLCBwcm92aWRlZFNjb3JlKSB7XG4gIC8vIG1hbnVhbCBzY29yZXMgYWx3YXlzIHdpbiBvdmVyIGNvbW1vbiBrZXl3b3Jkc1xuICAvLyBzbyB5b3UgY2FuIGZvcmNlIGEgc2NvcmUgb2YgMSBpZiB5b3UgcmVhbGx5IGluc2lzdFxuICBpZiAocHJvdmlkZWRTY29yZSkge1xuICAgIHJldHVybiBOdW1iZXIocHJvdmlkZWRTY29yZSk7XG4gIH1cblxuICByZXR1cm4gY29tbW9uS2V5d29yZChrZXl3b3JkKSA/IDAgOiAxO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBnaXZlbiBrZXl3b3JkIGlzIGNvbW1vbiBvciBub3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5d29yZCAqL1xuZnVuY3Rpb24gY29tbW9uS2V5d29yZChrZXl3b3JkKSB7XG4gIHJldHVybiBDT01NT05fS0VZV09SRFMuaW5jbHVkZXMoa2V5d29yZC50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLypcblxuRm9yIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgcGxlYXNlIHNlZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHQuanMvaXNzdWVzLzI4ODAjaXNzdWVjb21tZW50LTc0NzI3NTQxOVxuXG4qL1xuXG4vKipcbiAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBib29sZWFuPn1cbiAqL1xuY29uc3Qgc2VlbkRlcHJlY2F0aW9ucyA9IHt9O1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlXG4gKi9cbmNvbnN0IGVycm9yID0gKG1lc3NhZ2UpID0+IHtcbiAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqIEBwYXJhbSB7YW55fSBhcmdzXG4gKi9cbmNvbnN0IHdhcm4gPSAobWVzc2FnZSwgLi4uYXJncykgPT4ge1xuICBjb25zb2xlLmxvZyhgV0FSTjogJHttZXNzYWdlfWAsIC4uLmFyZ3MpO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvblxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VcbiAqL1xuY29uc3QgZGVwcmVjYXRlZCA9ICh2ZXJzaW9uLCBtZXNzYWdlKSA9PiB7XG4gIGlmIChzZWVuRGVwcmVjYXRpb25zW2Ake3ZlcnNpb259LyR7bWVzc2FnZX1gXSkgcmV0dXJuO1xuXG4gIGNvbnNvbGUubG9nKGBEZXByZWNhdGVkIGFzIG9mICR7dmVyc2lvbn0uICR7bWVzc2FnZX1gKTtcbiAgc2VlbkRlcHJlY2F0aW9uc1tgJHt2ZXJzaW9ufS8ke21lc3NhZ2V9YF0gPSB0cnVlO1xufTtcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdGhyb3ctbGl0ZXJhbCAqL1xuXG4vKipcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkNvbXBpbGVkTW9kZX0gQ29tcGlsZWRNb2RlXG4qL1xuXG5jb25zdCBNdWx0aUNsYXNzRXJyb3IgPSBuZXcgRXJyb3IoKTtcblxuLyoqXG4gKiBSZW51bWJlcnMgbGFiZWxlZCBzY29wZSBuYW1lcyB0byBhY2NvdW50IGZvciBhZGRpdGlvbmFsIGlubmVyIG1hdGNoXG4gKiBncm91cHMgdGhhdCBvdGhlcndpc2Ugd291bGQgYnJlYWsgZXZlcnl0aGluZy5cbiAqXG4gKiBMZXRzIHNheSB3ZSAzIG1hdGNoIHNjb3BlczpcbiAqXG4gKiAgIHsgMSA9PiAuLi4sIDIgPT4gLi4uLCAzID0+IC4uLiB9XG4gKlxuICogU28gd2hhdCB3ZSBuZWVkIGlzIGEgY2xlYW4gbWF0Y2ggbGlrZSB0aGlzOlxuICpcbiAqICAgKGEpKGIpKGMpID0+IFsgXCJhXCIsIFwiYlwiLCBcImNcIiBdXG4gKlxuICogQnV0IHRoaXMgZmFsbHMgYXBhcnQgd2l0aCBpbm5lciBtYXRjaCBncm91cHM6XG4gKlxuICogKGEpKCgoYikpKShjKSA9PiBbXCJhXCIsIFwiYlwiLCBcImJcIiwgXCJiXCIsIFwiY1wiIF1cbiAqXG4gKiBPdXIgc2NvcGVzIGFyZSBub3cgXCJvdXQgb2YgYWxpZ25tZW50XCIgYW5kIHdlJ3JlIHJlcGVhdGluZyBgYmAgMyB0aW1lcy5cbiAqIFdoYXQgbmVlZHMgdG8gaGFwcGVuIGlzIHRoZSBudW1iZXJzIGFyZSByZW1hcHBlZDpcbiAqXG4gKiAgIHsgMSA9PiAuLi4sIDIgPT4gLi4uLCA1ID0+IC4uLiB9XG4gKlxuICogV2UgYWxzbyBuZWVkIHRvIGtub3cgdGhhdCB0aGUgT05MWSBncm91cHMgdGhhdCBzaG91bGQgYmUgb3V0cHV0XG4gKiBhcmUgMSwgMiwgYW5kIDUuICBUaGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhpcyBiZWhhdmlvci5cbiAqXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICogQHBhcmFtIHtBcnJheTxSZWdFeHAgfCBzdHJpbmc+fSByZWdleGVzXG4gKiBAcGFyYW0ge3trZXk6IFwiYmVnaW5TY29wZVwifFwiZW5kU2NvcGVcIn19IG9wdHNcbiAqL1xuZnVuY3Rpb24gcmVtYXBTY29wZU5hbWVzKG1vZGUsIHJlZ2V4ZXMsIHsga2V5IH0pIHtcbiAgbGV0IG9mZnNldCA9IDA7XG4gIGNvbnN0IHNjb3BlTmFtZXMgPSBtb2RlW2tleV07XG4gIC8qKiBAdHlwZSBSZWNvcmQ8bnVtYmVyLGJvb2xlYW4+ICovXG4gIGNvbnN0IGVtaXQgPSB7fTtcbiAgLyoqIEB0eXBlIFJlY29yZDxudW1iZXIsc3RyaW5nPiAqL1xuICBjb25zdCBwb3NpdGlvbnMgPSB7fTtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSByZWdleGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgcG9zaXRpb25zW2kgKyBvZmZzZXRdID0gc2NvcGVOYW1lc1tpXTtcbiAgICBlbWl0W2kgKyBvZmZzZXRdID0gdHJ1ZTtcbiAgICBvZmZzZXQgKz0gY291bnRNYXRjaEdyb3VwcyhyZWdleGVzW2kgLSAxXSk7XG4gIH1cbiAgLy8gd2UgdXNlIF9lbWl0IHRvIGtlZXAgdHJhY2sgb2Ygd2hpY2ggbWF0Y2ggZ3JvdXBzIGFyZSBcInRvcC1sZXZlbFwiIHRvIGF2b2lkIGRvdWJsZVxuICAvLyBvdXRwdXQgZnJvbSBpbnNpZGUgbWF0Y2ggZ3JvdXBzXG4gIG1vZGVba2V5XSA9IHBvc2l0aW9ucztcbiAgbW9kZVtrZXldLl9lbWl0ID0gZW1pdDtcbiAgbW9kZVtrZXldLl9tdWx0aSA9IHRydWU7XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGVcbiAqL1xuZnVuY3Rpb24gYmVnaW5NdWx0aUNsYXNzKG1vZGUpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGUuYmVnaW4pKSByZXR1cm47XG5cbiAgaWYgKG1vZGUuc2tpcCB8fCBtb2RlLmV4Y2x1ZGVCZWdpbiB8fCBtb2RlLnJldHVybkJlZ2luKSB7XG4gICAgZXJyb3IoXCJza2lwLCBleGNsdWRlQmVnaW4sIHJldHVybkJlZ2luIG5vdCBjb21wYXRpYmxlIHdpdGggYmVnaW5TY29wZToge31cIik7XG4gICAgdGhyb3cgTXVsdGlDbGFzc0Vycm9yO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBtb2RlLmJlZ2luU2NvcGUgIT09IFwib2JqZWN0XCIgfHwgbW9kZS5iZWdpblNjb3BlID09PSBudWxsKSB7XG4gICAgZXJyb3IoXCJiZWdpblNjb3BlIG11c3QgYmUgb2JqZWN0XCIpO1xuICAgIHRocm93IE11bHRpQ2xhc3NFcnJvcjtcbiAgfVxuXG4gIHJlbWFwU2NvcGVOYW1lcyhtb2RlLCBtb2RlLmJlZ2luLCB7IGtleTogXCJiZWdpblNjb3BlXCIgfSk7XG4gIG1vZGUuYmVnaW4gPSBfcmV3cml0ZUJhY2tyZWZlcmVuY2VzKG1vZGUuYmVnaW4sIHsgam9pbldpdGg6IFwiXCIgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGVcbiAqL1xuZnVuY3Rpb24gZW5kTXVsdGlDbGFzcyhtb2RlKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShtb2RlLmVuZCkpIHJldHVybjtcblxuICBpZiAobW9kZS5za2lwIHx8IG1vZGUuZXhjbHVkZUVuZCB8fCBtb2RlLnJldHVybkVuZCkge1xuICAgIGVycm9yKFwic2tpcCwgZXhjbHVkZUVuZCwgcmV0dXJuRW5kIG5vdCBjb21wYXRpYmxlIHdpdGggZW5kU2NvcGU6IHt9XCIpO1xuICAgIHRocm93IE11bHRpQ2xhc3NFcnJvcjtcbiAgfVxuXG4gIGlmICh0eXBlb2YgbW9kZS5lbmRTY29wZSAhPT0gXCJvYmplY3RcIiB8fCBtb2RlLmVuZFNjb3BlID09PSBudWxsKSB7XG4gICAgZXJyb3IoXCJlbmRTY29wZSBtdXN0IGJlIG9iamVjdFwiKTtcbiAgICB0aHJvdyBNdWx0aUNsYXNzRXJyb3I7XG4gIH1cblxuICByZW1hcFNjb3BlTmFtZXMobW9kZSwgbW9kZS5lbmQsIHsga2V5OiBcImVuZFNjb3BlXCIgfSk7XG4gIG1vZGUuZW5kID0gX3Jld3JpdGVCYWNrcmVmZXJlbmNlcyhtb2RlLmVuZCwgeyBqb2luV2l0aDogXCJcIiB9KTtcbn1cblxuLyoqXG4gKiB0aGlzIGV4aXN0cyBvbmx5IHRvIGFsbG93IGBzY29wZToge31gIHRvIGJlIHVzZWQgYmVzaWRlIGBtYXRjaDpgXG4gKiBPdGhlcndpc2UgYGJlZ2luU2NvcGVgIHdvdWxkIG5lY2Vzc2FyeSBhbmQgdGhhdCB3b3VsZCBsb29rIHdlaXJkXG5cbiAge1xuICAgIG1hdGNoOiBbIC9kZWYvLCAvXFx3Ky8gXVxuICAgIHNjb3BlOiB7IDE6IFwia2V5d29yZFwiICwgMjogXCJ0aXRsZVwiIH1cbiAgfVxuXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICovXG5mdW5jdGlvbiBzY29wZVN1Z2FyKG1vZGUpIHtcbiAgaWYgKG1vZGUuc2NvcGUgJiYgdHlwZW9mIG1vZGUuc2NvcGUgPT09IFwib2JqZWN0XCIgJiYgbW9kZS5zY29wZSAhPT0gbnVsbCkge1xuICAgIG1vZGUuYmVnaW5TY29wZSA9IG1vZGUuc2NvcGU7XG4gICAgZGVsZXRlIG1vZGUuc2NvcGU7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZVxuICovXG5mdW5jdGlvbiBNdWx0aUNsYXNzKG1vZGUpIHtcbiAgc2NvcGVTdWdhcihtb2RlKTtcblxuICBpZiAodHlwZW9mIG1vZGUuYmVnaW5TY29wZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIG1vZGUuYmVnaW5TY29wZSA9IHsgX3dyYXA6IG1vZGUuYmVnaW5TY29wZSB9O1xuICB9XG4gIGlmICh0eXBlb2YgbW9kZS5lbmRTY29wZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIG1vZGUuZW5kU2NvcGUgPSB7IF93cmFwOiBtb2RlLmVuZFNjb3BlIH07XG4gIH1cblxuICBiZWdpbk11bHRpQ2xhc3MobW9kZSk7XG4gIGVuZE11bHRpQ2xhc3MobW9kZSk7XG59XG5cbi8qKlxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuTW9kZX0gTW9kZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRNb2RlfSBDb21waWxlZE1vZGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkxhbmd1YWdlfSBMYW5ndWFnZVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSExKU1BsdWdpbn0gSExKU1BsdWdpblxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQ29tcGlsZWRMYW5ndWFnZX0gQ29tcGlsZWRMYW5ndWFnZVxuKi9cblxuLy8gY29tcGlsYXRpb25cblxuLyoqXG4gKiBDb21waWxlcyBhIGxhbmd1YWdlIGRlZmluaXRpb24gcmVzdWx0XG4gKlxuICogR2l2ZW4gdGhlIHJhdyByZXN1bHQgb2YgYSBsYW5ndWFnZSBkZWZpbml0aW9uIChMYW5ndWFnZSksIGNvbXBpbGVzIHRoaXMgc29cbiAqIHRoYXQgaXQgaXMgcmVhZHkgZm9yIGhpZ2hsaWdodGluZyBjb2RlLlxuICogQHBhcmFtIHtMYW5ndWFnZX0gbGFuZ3VhZ2VcbiAqIEByZXR1cm5zIHtDb21waWxlZExhbmd1YWdlfVxuICovXG5mdW5jdGlvbiBjb21waWxlTGFuZ3VhZ2UobGFuZ3VhZ2UpIHtcbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHJlZ2V4IHdpdGggdGhlIGNhc2Ugc2Vuc2l0aXZpdHkgb2YgdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICpcbiAgICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2dsb2JhbF1cbiAgICovXG4gIGZ1bmN0aW9uIGxhbmdSZSh2YWx1ZSwgZ2xvYmFsKSB7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoXG4gICAgICBzb3VyY2UodmFsdWUpLFxuICAgICAgJ20nXG4gICAgICArIChsYW5ndWFnZS5jYXNlX2luc2Vuc2l0aXZlID8gJ2knIDogJycpXG4gICAgICArIChsYW5ndWFnZS51bmljb2RlUmVnZXggPyAndScgOiAnJylcbiAgICAgICsgKGdsb2JhbCA/ICdnJyA6ICcnKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICBTdG9yZXMgbXVsdGlwbGUgcmVndWxhciBleHByZXNzaW9ucyBhbmQgYWxsb3dzIHlvdSB0byBxdWlja2x5IHNlYXJjaCBmb3JcbiAgICB0aGVtIGFsbCBpbiBhIHN0cmluZyBzaW11bHRhbmVvdXNseSAtIHJldHVybmluZyB0aGUgZmlyc3QgbWF0Y2guICBJdCBkb2VzXG4gICAgdGhpcyBieSBjcmVhdGluZyBhIGh1Z2UgKGF8YnxjKSByZWdleCAtIGVhY2ggaW5kaXZpZHVhbCBpdGVtIHdyYXBwZWQgd2l0aCAoKVxuICAgIGFuZCBqb2luZWQgYnkgYHxgIC0gdXNpbmcgbWF0Y2ggZ3JvdXBzIHRvIHRyYWNrIHBvc2l0aW9uLiAgV2hlbiBhIG1hdGNoIGlzXG4gICAgZm91bmQgY2hlY2tpbmcgd2hpY2ggcG9zaXRpb24gaW4gdGhlIGFycmF5IGhhcyBjb250ZW50IGFsbG93cyB1cyB0byBmaWd1cmVcbiAgICBvdXQgd2hpY2ggb2YgdGhlIG9yaWdpbmFsIHJlZ2V4ZXMgLyBtYXRjaCBncm91cHMgdHJpZ2dlcmVkIHRoZSBtYXRjaC5cblxuICAgIFRoZSBtYXRjaCBvYmplY3QgaXRzZWxmICh0aGUgcmVzdWx0IG9mIGBSZWdleC5leGVjYCkgaXMgcmV0dXJuZWQgYnV0IGFsc29cbiAgICBlbmhhbmNlZCBieSBtZXJnaW5nIGluIGFueSBtZXRhLWRhdGEgdGhhdCB3YXMgcmVnaXN0ZXJlZCB3aXRoIHRoZSByZWdleC5cbiAgICBUaGlzIGlzIGhvdyB3ZSBrZWVwIHRyYWNrIG9mIHdoaWNoIG1vZGUgbWF0Y2hlZCwgYW5kIHdoYXQgdHlwZSBvZiBydWxlXG4gICAgKGBpbGxlZ2FsYCwgYGJlZ2luYCwgZW5kLCBldGMpLlxuICAqL1xuICBjbGFzcyBNdWx0aVJlZ2V4IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRoaXMubWF0Y2hJbmRleGVzID0ge307XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLnJlZ2V4ZXMgPSBbXTtcbiAgICAgIHRoaXMubWF0Y2hBdCA9IDE7XG4gICAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgYWRkUnVsZShyZSwgb3B0cykge1xuICAgICAgb3B0cy5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb24rKztcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMubWF0Y2hJbmRleGVzW3RoaXMubWF0Y2hBdF0gPSBvcHRzO1xuICAgICAgdGhpcy5yZWdleGVzLnB1c2goW29wdHMsIHJlXSk7XG4gICAgICB0aGlzLm1hdGNoQXQgKz0gY291bnRNYXRjaEdyb3VwcyhyZSkgKyAxO1xuICAgIH1cblxuICAgIGNvbXBpbGUoKSB7XG4gICAgICBpZiAodGhpcy5yZWdleGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyBhdm9pZHMgdGhlIG5lZWQgdG8gY2hlY2sgbGVuZ3RoIGV2ZXJ5IHRpbWUgZXhlYyBpcyBjYWxsZWRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB0aGlzLmV4ZWMgPSAoKSA9PiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3QgdGVybWluYXRvcnMgPSB0aGlzLnJlZ2V4ZXMubWFwKGVsID0+IGVsWzFdKTtcbiAgICAgIHRoaXMubWF0Y2hlclJlID0gbGFuZ1JlKF9yZXdyaXRlQmFja3JlZmVyZW5jZXModGVybWluYXRvcnMsIHsgam9pbldpdGg6ICd8JyB9KSwgdHJ1ZSk7XG4gICAgICB0aGlzLmxhc3RJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLyoqIEBwYXJhbSB7c3RyaW5nfSBzICovXG4gICAgZXhlYyhzKSB7XG4gICAgICB0aGlzLm1hdGNoZXJSZS5sYXN0SW5kZXggPSB0aGlzLmxhc3RJbmRleDtcbiAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5tYXRjaGVyUmUuZXhlYyhzKTtcbiAgICAgIGlmICghbWF0Y2gpIHsgcmV0dXJuIG51bGw7IH1cblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmaW5lZFxuICAgICAgY29uc3QgaSA9IG1hdGNoLmZpbmRJbmRleCgoZWwsIGkpID0+IGkgPiAwICYmIGVsICE9PSB1bmRlZmluZWQpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgbWF0Y2hEYXRhID0gdGhpcy5tYXRjaEluZGV4ZXNbaV07XG4gICAgICAvLyB0cmltIG9mZiBhbnkgZWFybGllciBub24tcmVsZXZhbnQgbWF0Y2ggZ3JvdXBzIChpZSwgdGhlIG90aGVyIHJlZ2V4XG4gICAgICAvLyBtYXRjaCBncm91cHMgdGhhdCBtYWtlIHVwIHRoZSBtdWx0aS1tYXRjaGVyKVxuICAgICAgbWF0Y2guc3BsaWNlKDAsIGkpO1xuXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihtYXRjaCwgbWF0Y2hEYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgIENyZWF0ZWQgdG8gc29sdmUgdGhlIGtleSBkZWZpY2llbnRseSB3aXRoIE11bHRpUmVnZXggLSB0aGVyZSBpcyBubyB3YXkgdG9cbiAgICB0ZXN0IGZvciBtdWx0aXBsZSBtYXRjaGVzIGF0IGEgc2luZ2xlIGxvY2F0aW9uLiAgV2h5IHdvdWxkIHdlIG5lZWQgdG8gZG9cbiAgICB0aGF0PyAgSW4gdGhlIGZ1dHVyZSBhIG1vcmUgZHluYW1pYyBlbmdpbmUgd2lsbCBhbGxvdyBjZXJ0YWluIG1hdGNoZXMgdG8gYmVcbiAgICBpZ25vcmVkLiAgQW4gZXhhbXBsZTogaWYgd2UgbWF0Y2hlZCBzYXkgdGhlIDNyZCByZWdleCBpbiBhIGxhcmdlIGdyb3VwIGJ1dFxuICAgIGRlY2lkZWQgdG8gaWdub3JlIGl0IC0gd2UnZCBuZWVkIHRvIHN0YXJ0ZWQgdGVzdGluZyBhZ2FpbiBhdCB0aGUgNHRoXG4gICAgcmVnZXguLi4gYnV0IE11bHRpUmVnZXggaXRzZWxmIGdpdmVzIHVzIG5vIHJlYWwgd2F5IHRvIGRvIHRoYXQuXG5cbiAgICBTbyB3aGF0IHRoaXMgY2xhc3MgY3JlYXRlcyBNdWx0aVJlZ2V4cyBvbiB0aGUgZmx5IGZvciB3aGF0ZXZlciBzZWFyY2hcbiAgICBwb3NpdGlvbiB0aGV5IGFyZSBuZWVkZWQuXG5cbiAgICBOT1RFOiBUaGVzZSBhZGRpdGlvbmFsIE11bHRpUmVnZXggb2JqZWN0cyBhcmUgY3JlYXRlZCBkeW5hbWljYWxseS4gIEZvciBtb3N0XG4gICAgZ3JhbW1hcnMgbW9zdCBvZiB0aGUgdGltZSB3ZSB3aWxsIG5ldmVyIGFjdHVhbGx5IG5lZWQgYW55dGhpbmcgbW9yZSB0aGFuIHRoZVxuICAgIGZpcnN0IE11bHRpUmVnZXggLSBzbyB0aGlzIHNob3VsZG4ndCBoYXZlIHRvbyBtdWNoIG92ZXJoZWFkLlxuXG4gICAgU2F5IHRoaXMgaXMgb3VyIHNlYXJjaCBncm91cCwgYW5kIHdlIG1hdGNoIHJlZ2V4MywgYnV0IHdpc2ggdG8gaWdub3JlIGl0LlxuXG4gICAgICByZWdleDEgfCByZWdleDIgfCByZWdleDMgfCByZWdleDQgfCByZWdleDUgICAgJyBpZSwgc3RhcnRBdCA9IDBcblxuICAgIFdoYXQgd2UgbmVlZCBpcyBhIG5ldyBNdWx0aVJlZ2V4IHRoYXQgb25seSBpbmNsdWRlcyB0aGUgcmVtYWluaW5nXG4gICAgcG9zc2liaWxpdGllczpcblxuICAgICAgcmVnZXg0IHwgcmVnZXg1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgaWUsIHN0YXJ0QXQgPSAzXG5cbiAgICBUaGlzIGNsYXNzIHdyYXBzIGFsbCB0aGF0IGNvbXBsZXhpdHkgdXAgaW4gYSBzaW1wbGUgQVBJLi4uIGBzdGFydEF0YCBkZWNpZGVzXG4gICAgd2hlcmUgaW4gdGhlIGFycmF5IG9mIGV4cHJlc3Npb25zIHRvIHN0YXJ0IGRvaW5nIHRoZSBtYXRjaGluZy4gSXRcbiAgICBhdXRvLWluY3JlbWVudHMsIHNvIGlmIGEgbWF0Y2ggaXMgZm91bmQgYXQgcG9zaXRpb24gMiwgdGhlbiBzdGFydEF0IHdpbGwgYmVcbiAgICBzZXQgdG8gMy4gIElmIHRoZSBlbmQgaXMgcmVhY2hlZCBzdGFydEF0IHdpbGwgcmV0dXJuIHRvIDAuXG5cbiAgICBNT1NUIG9mIHRoZSB0aW1lIHRoZSBwYXJzZXIgd2lsbCBiZSBzZXR0aW5nIHN0YXJ0QXQgbWFudWFsbHkgdG8gMC5cbiAgKi9cbiAgY2xhc3MgUmVzdW1hYmxlTXVsdGlSZWdleCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLnJ1bGVzID0gW107XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLm11bHRpUmVnZXhlcyA9IFtdO1xuICAgICAgdGhpcy5jb3VudCA9IDA7XG5cbiAgICAgIHRoaXMubGFzdEluZGV4ID0gMDtcbiAgICAgIHRoaXMucmVnZXhJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdldE1hdGNoZXIoaW5kZXgpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpUmVnZXhlc1tpbmRleF0pIHJldHVybiB0aGlzLm11bHRpUmVnZXhlc1tpbmRleF07XG5cbiAgICAgIGNvbnN0IG1hdGNoZXIgPSBuZXcgTXVsdGlSZWdleCgpO1xuICAgICAgdGhpcy5ydWxlcy5zbGljZShpbmRleCkuZm9yRWFjaCgoW3JlLCBvcHRzXSkgPT4gbWF0Y2hlci5hZGRSdWxlKHJlLCBvcHRzKSk7XG4gICAgICBtYXRjaGVyLmNvbXBpbGUoKTtcbiAgICAgIHRoaXMubXVsdGlSZWdleGVzW2luZGV4XSA9IG1hdGNoZXI7XG4gICAgICByZXR1cm4gbWF0Y2hlcjtcbiAgICB9XG5cbiAgICByZXN1bWluZ1NjYW5BdFNhbWVQb3NpdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlZ2V4SW5kZXggIT09IDA7XG4gICAgfVxuXG4gICAgY29uc2lkZXJBbGwoKSB7XG4gICAgICB0aGlzLnJlZ2V4SW5kZXggPSAwO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBhZGRSdWxlKHJlLCBvcHRzKSB7XG4gICAgICB0aGlzLnJ1bGVzLnB1c2goW3JlLCBvcHRzXSk7XG4gICAgICBpZiAob3B0cy50eXBlID09PSBcImJlZ2luXCIpIHRoaXMuY291bnQrKztcbiAgICB9XG5cbiAgICAvKiogQHBhcmFtIHtzdHJpbmd9IHMgKi9cbiAgICBleGVjKHMpIHtcbiAgICAgIGNvbnN0IG0gPSB0aGlzLmdldE1hdGNoZXIodGhpcy5yZWdleEluZGV4KTtcbiAgICAgIG0ubGFzdEluZGV4ID0gdGhpcy5sYXN0SW5kZXg7XG4gICAgICBsZXQgcmVzdWx0ID0gbS5leGVjKHMpO1xuXG4gICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIGJlY2F1c2Ugd2UgaGF2ZSBubyBlYXN5IHdheSB0byBzYXkgXCJyZXN1bWUgc2Nhbm5pbmcgYXQgdGhlXG4gICAgICAvLyBleGlzdGluZyBwb3NpdGlvbiBidXQgYWxzbyBza2lwIHRoZSBjdXJyZW50IHJ1bGUgT05MWVwiLiBXaGF0IGhhcHBlbnMgaXNcbiAgICAgIC8vIGFsbCBwcmlvciBydWxlcyBhcmUgYWxzbyBza2lwcGVkIHdoaWNoIGNhbiByZXN1bHQgaW4gbWF0Y2hpbmcgdGhlIHdyb25nXG4gICAgICAvLyB0aGluZy4gRXhhbXBsZSBvZiBtYXRjaGluZyBcImJvb2dlclwiOlxuXG4gICAgICAvLyBvdXIgbWF0Y2hlciBpcyBbc3RyaW5nLCBcImJvb2dlclwiLCBudW1iZXJdXG4gICAgICAvL1xuICAgICAgLy8gLi4uLmJvb2dlci4uLi5cblxuICAgICAgLy8gaWYgXCJib29nZXJcIiBpcyBpZ25vcmVkIHRoZW4gd2UnZCByZWFsbHkgbmVlZCBhIHJlZ2V4IHRvIHNjYW4gZnJvbSB0aGVcbiAgICAgIC8vIFNBTUUgcG9zaXRpb24gZm9yIG9ubHk6IFtzdHJpbmcsIG51bWJlcl0gYnV0IGlnbm9yaW5nIFwiYm9vZ2VyXCIgKGlmIGl0XG4gICAgICAvLyB3YXMgdGhlIGZpcnN0IG1hdGNoKSwgYSBzaW1wbGUgcmVzdW1lIHdvdWxkIHNjYW4gYWhlYWQgd2hvIGtub3dzIGhvd1xuICAgICAgLy8gZmFyIGxvb2tpbmcgb25seSBmb3IgXCJudW1iZXJcIiwgaWdub3JpbmcgcG90ZW50aWFsIHN0cmluZyBtYXRjaGVzIChvclxuICAgICAgLy8gZnV0dXJlIFwiYm9vZ2VyXCIgbWF0Y2hlcyB0aGF0IG1pZ2h0IGJlIHZhbGlkLilcblxuICAgICAgLy8gU28gd2hhdCB3ZSBkbzogV2UgZXhlY3V0ZSB0d28gbWF0Y2hlcnMsIG9uZSByZXN1bWluZyBhdCB0aGUgc2FtZVxuICAgICAgLy8gcG9zaXRpb24sIGJ1dCB0aGUgc2Vjb25kIGZ1bGwgbWF0Y2hlciBzdGFydGluZyBhdCB0aGUgcG9zaXRpb24gYWZ0ZXI6XG5cbiAgICAgIC8vICAgICAvLS0tIHJlc3VtZSBmaXJzdCByZWdleCBtYXRjaCBoZXJlIChmb3IgW251bWJlcl0pXG4gICAgICAvLyAgICAgfC8tLS0tIGZ1bGwgbWF0Y2ggaGVyZSBmb3IgW3N0cmluZywgXCJib29nZXJcIiwgbnVtYmVyXVxuICAgICAgLy8gICAgIHZ2XG4gICAgICAvLyAuLi4uYm9vZ2VyLi4uLlxuXG4gICAgICAvLyBXaGljaCBldmVyIHJlc3VsdHMgaW4gYSBtYXRjaCBmaXJzdCBpcyB0aGVuIHVzZWQuIFNvIHRoaXMgMy00IHN0ZXBcbiAgICAgIC8vIHByb2Nlc3MgZXNzZW50aWFsbHkgYWxsb3dzIHVzIHRvIHNheSBcIm1hdGNoIGF0IHRoaXMgcG9zaXRpb24sIGV4Y2x1ZGluZ1xuICAgICAgLy8gYSBwcmlvciBydWxlIHRoYXQgd2FzIGlnbm9yZWRcIi5cbiAgICAgIC8vXG4gICAgICAvLyAxLiBNYXRjaCBcImJvb2dlclwiIGZpcnN0LCBpZ25vcmUuIEFsc28gcHJvdmVzIHRoYXQgW3N0cmluZ10gZG9lcyBub24gbWF0Y2guXG4gICAgICAvLyAyLiBSZXN1bWUgbWF0Y2hpbmcgZm9yIFtudW1iZXJdXG4gICAgICAvLyAzLiBNYXRjaCBhdCBpbmRleCArIDEgZm9yIFtzdHJpbmcsIFwiYm9vZ2VyXCIsIG51bWJlcl1cbiAgICAgIC8vIDQuIElmICMyIGFuZCAjMyByZXN1bHQgaW4gbWF0Y2hlcywgd2hpY2ggY2FtZSBmaXJzdD9cbiAgICAgIGlmICh0aGlzLnJlc3VtaW5nU2NhbkF0U2FtZVBvc2l0aW9uKCkpIHtcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuaW5kZXggPT09IHRoaXMubGFzdEluZGV4KSA7IGVsc2UgeyAvLyB1c2UgdGhlIHNlY29uZCBtYXRjaGVyIHJlc3VsdFxuICAgICAgICAgIGNvbnN0IG0yID0gdGhpcy5nZXRNYXRjaGVyKDApO1xuICAgICAgICAgIG0yLmxhc3RJbmRleCA9IHRoaXMubGFzdEluZGV4ICsgMTtcbiAgICAgICAgICByZXN1bHQgPSBtMi5leGVjKHMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWdleEluZGV4ICs9IHJlc3VsdC5wb3NpdGlvbiArIDE7XG4gICAgICAgIGlmICh0aGlzLnJlZ2V4SW5kZXggPT09IHRoaXMuY291bnQpIHtcbiAgICAgICAgICAvLyB3cmFwLWFyb3VuZCB0byBjb25zaWRlcmluZyBhbGwgbWF0Y2hlcyBhZ2FpblxuICAgICAgICAgIHRoaXMuY29uc2lkZXJBbGwoKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIG1vZGUsIGJ1aWxkcyBhIGh1Z2UgUmVzdW1hYmxlTXVsdGlSZWdleCB0aGF0IGNhbiBiZSB1c2VkIHRvIHdhbGtcbiAgICogdGhlIGNvbnRlbnQgYW5kIGZpbmQgbWF0Y2hlcy5cbiAgICpcbiAgICogQHBhcmFtIHtDb21waWxlZE1vZGV9IG1vZGVcbiAgICogQHJldHVybnMge1Jlc3VtYWJsZU11bHRpUmVnZXh9XG4gICAqL1xuICBmdW5jdGlvbiBidWlsZE1vZGVSZWdleChtb2RlKSB7XG4gICAgY29uc3QgbW0gPSBuZXcgUmVzdW1hYmxlTXVsdGlSZWdleCgpO1xuXG4gICAgbW9kZS5jb250YWlucy5mb3JFYWNoKHRlcm0gPT4gbW0uYWRkUnVsZSh0ZXJtLmJlZ2luLCB7IHJ1bGU6IHRlcm0sIHR5cGU6IFwiYmVnaW5cIiB9KSk7XG5cbiAgICBpZiAobW9kZS50ZXJtaW5hdG9yRW5kKSB7XG4gICAgICBtbS5hZGRSdWxlKG1vZGUudGVybWluYXRvckVuZCwgeyB0eXBlOiBcImVuZFwiIH0pO1xuICAgIH1cbiAgICBpZiAobW9kZS5pbGxlZ2FsKSB7XG4gICAgICBtbS5hZGRSdWxlKG1vZGUuaWxsZWdhbCwgeyB0eXBlOiBcImlsbGVnYWxcIiB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW07XG4gIH1cblxuICAvKiogc2tpcCB2cyBhYm9ydCB2cyBpZ25vcmVcbiAgICpcbiAgICogQHNraXAgICAtIFRoZSBtb2RlIGlzIHN0aWxsIGVudGVyZWQgYW5kIGV4aXRlZCBub3JtYWxseSAoYW5kIGNvbnRhaW5zIHJ1bGVzIGFwcGx5KSxcbiAgICogICAgICAgICAgIGJ1dCBhbGwgY29udGVudCBpcyBoZWxkIGFuZCBhZGRlZCB0byB0aGUgcGFyZW50IGJ1ZmZlciByYXRoZXIgdGhhbiBiZWluZ1xuICAgKiAgICAgICAgICAgb3V0cHV0IHdoZW4gdGhlIG1vZGUgZW5kcy4gIE1vc3RseSB1c2VkIHdpdGggYHN1Ymxhbmd1YWdlYCB0byBidWlsZCB1cFxuICAgKiAgICAgICAgICAgYSBzaW5nbGUgbGFyZ2UgYnVmZmVyIHRoYW4gY2FuIGJlIHBhcnNlZCBieSBzdWJsYW5ndWFnZS5cbiAgICpcbiAgICogICAgICAgICAgICAgLSBUaGUgbW9kZSBiZWdpbiBhbmRzIGVuZHMgbm9ybWFsbHkuXG4gICAqICAgICAgICAgICAgIC0gQ29udGVudCBtYXRjaGVkIGlzIGFkZGVkIHRvIHRoZSBwYXJlbnQgbW9kZSBidWZmZXIuXG4gICAqICAgICAgICAgICAgIC0gVGhlIHBhcnNlciBjdXJzb3IgaXMgbW92ZWQgZm9yd2FyZCBub3JtYWxseS5cbiAgICpcbiAgICogQGFib3J0ICAtIEEgaGFjayBwbGFjZWhvbGRlciB1bnRpbCB3ZSBoYXZlIGlnbm9yZS4gIEFib3J0cyB0aGUgbW9kZSAoYXMgaWYgaXRcbiAgICogICAgICAgICAgIG5ldmVyIG1hdGNoZWQpIGJ1dCBET0VTIE5PVCBjb250aW51ZSB0byBtYXRjaCBzdWJzZXF1ZW50IGBjb250YWluc2BcbiAgICogICAgICAgICAgIG1vZGVzLiAgQWJvcnQgaXMgYmFkL3N1Ym9wdGltYWwgYmVjYXVzZSBpdCBjYW4gcmVzdWx0IGluIG1vZGVzXG4gICAqICAgICAgICAgICBmYXJ0aGVyIGRvd24gbm90IGdldHRpbmcgYXBwbGllZCBiZWNhdXNlIGFuIGVhcmxpZXIgcnVsZSBlYXRzIHRoZVxuICAgKiAgICAgICAgICAgY29udGVudCBidXQgdGhlbiBhYm9ydHMuXG4gICAqXG4gICAqICAgICAgICAgICAgIC0gVGhlIG1vZGUgZG9lcyBub3QgYmVnaW4uXG4gICAqICAgICAgICAgICAgIC0gQ29udGVudCBtYXRjaGVkIGJ5IGBiZWdpbmAgaXMgYWRkZWQgdG8gdGhlIG1vZGUgYnVmZmVyLlxuICAgKiAgICAgICAgICAgICAtIFRoZSBwYXJzZXIgY3Vyc29yIGlzIG1vdmVkIGZvcndhcmQgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBpZ25vcmUgLSBJZ25vcmVzIHRoZSBtb2RlIChhcyBpZiBpdCBuZXZlciBtYXRjaGVkKSBhbmQgY29udGludWVzIHRvIG1hdGNoIGFueVxuICAgKiAgICAgICAgICAgc3Vic2VxdWVudCBgY29udGFpbnNgIG1vZGVzLiAgSWdub3JlIGlzbid0IHRlY2huaWNhbGx5IHBvc3NpYmxlIHdpdGhcbiAgICogICAgICAgICAgIHRoZSBjdXJyZW50IHBhcnNlciBpbXBsZW1lbnRhdGlvbi5cbiAgICpcbiAgICogICAgICAgICAgICAgLSBUaGUgbW9kZSBkb2VzIG5vdCBiZWdpbi5cbiAgICogICAgICAgICAgICAgLSBDb250ZW50IG1hdGNoZWQgYnkgYGJlZ2luYCBpcyBpZ25vcmVkLlxuICAgKiAgICAgICAgICAgICAtIFRoZSBwYXJzZXIgY3Vyc29yIGlzIG5vdCBtb3ZlZCBmb3J3YXJkLlxuICAgKi9cblxuICAvKipcbiAgICogQ29tcGlsZXMgYW4gaW5kaXZpZHVhbCBtb2RlXG4gICAqXG4gICAqIFRoaXMgY2FuIHJhaXNlIGFuIGVycm9yIGlmIHRoZSBtb2RlIGNvbnRhaW5zIGNlcnRhaW4gZGV0ZWN0YWJsZSBrbm93biBsb2dpY1xuICAgKiBpc3N1ZXMuXG4gICAqIEBwYXJhbSB7TW9kZX0gbW9kZVxuICAgKiBAcGFyYW0ge0NvbXBpbGVkTW9kZSB8IG51bGx9IFtwYXJlbnRdXG4gICAqIEByZXR1cm5zIHtDb21waWxlZE1vZGUgfCBuZXZlcn1cbiAgICovXG4gIGZ1bmN0aW9uIGNvbXBpbGVNb2RlKG1vZGUsIHBhcmVudCkge1xuICAgIGNvbnN0IGNtb2RlID0gLyoqIEB0eXBlIENvbXBpbGVkTW9kZSAqLyAobW9kZSk7XG4gICAgaWYgKG1vZGUuaXNDb21waWxlZCkgcmV0dXJuIGNtb2RlO1xuXG4gICAgW1xuICAgICAgc2NvcGVDbGFzc05hbWUsXG4gICAgICAvLyBkbyB0aGlzIGVhcmx5IHNvIGNvbXBpbGVyIGV4dGVuc2lvbnMgZ2VuZXJhbGx5IGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXRcbiAgICAgIC8vIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIG1hdGNoL2JlZ2luXG4gICAgICBjb21waWxlTWF0Y2gsXG4gICAgICBNdWx0aUNsYXNzLFxuICAgICAgYmVmb3JlTWF0Y2hFeHRcbiAgICBdLmZvckVhY2goZXh0ID0+IGV4dChtb2RlLCBwYXJlbnQpKTtcblxuICAgIGxhbmd1YWdlLmNvbXBpbGVyRXh0ZW5zaW9ucy5mb3JFYWNoKGV4dCA9PiBleHQobW9kZSwgcGFyZW50KSk7XG5cbiAgICAvLyBfX2JlZm9yZUJlZ2luIGlzIGNvbnNpZGVyZWQgcHJpdmF0ZSBBUEksIGludGVybmFsIHVzZSBvbmx5XG4gICAgbW9kZS5fX2JlZm9yZUJlZ2luID0gbnVsbDtcblxuICAgIFtcbiAgICAgIGJlZ2luS2V5d29yZHMsXG4gICAgICAvLyBkbyB0aGlzIGxhdGVyIHNvIGNvbXBpbGVyIGV4dGVuc2lvbnMgdGhhdCBjb21lIGVhcmxpZXIgaGF2ZSBhY2Nlc3MgdG8gdGhlXG4gICAgICAvLyByYXcgYXJyYXkgaWYgdGhleSB3YW50ZWQgdG8gcGVyaGFwcyBtYW5pcHVsYXRlIGl0LCBldGMuXG4gICAgICBjb21waWxlSWxsZWdhbCxcbiAgICAgIC8vIGRlZmF1bHQgdG8gMSByZWxldmFuY2UgaWYgbm90IHNwZWNpZmllZFxuICAgICAgY29tcGlsZVJlbGV2YW5jZVxuICAgIF0uZm9yRWFjaChleHQgPT4gZXh0KG1vZGUsIHBhcmVudCkpO1xuXG4gICAgbW9kZS5pc0NvbXBpbGVkID0gdHJ1ZTtcblxuICAgIGxldCBrZXl3b3JkUGF0dGVybiA9IG51bGw7XG4gICAgaWYgKHR5cGVvZiBtb2RlLmtleXdvcmRzID09PSBcIm9iamVjdFwiICYmIG1vZGUua2V5d29yZHMuJHBhdHRlcm4pIHtcbiAgICAgIC8vIHdlIG5lZWQgYSBjb3B5IGJlY2F1c2Uga2V5d29yZHMgbWlnaHQgYmUgY29tcGlsZWQgbXVsdGlwbGUgdGltZXNcbiAgICAgIC8vIHNvIHdlIGNhbid0IGdvIGRlbGV0aW5nICRwYXR0ZXJuIGZyb20gdGhlIG9yaWdpbmFsIG9uIHRoZSBmaXJzdFxuICAgICAgLy8gcGFzc1xuICAgICAgbW9kZS5rZXl3b3JkcyA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGUua2V5d29yZHMpO1xuICAgICAga2V5d29yZFBhdHRlcm4gPSBtb2RlLmtleXdvcmRzLiRwYXR0ZXJuO1xuICAgICAgZGVsZXRlIG1vZGUua2V5d29yZHMuJHBhdHRlcm47XG4gICAgfVxuICAgIGtleXdvcmRQYXR0ZXJuID0ga2V5d29yZFBhdHRlcm4gfHwgL1xcdysvO1xuXG4gICAgaWYgKG1vZGUua2V5d29yZHMpIHtcbiAgICAgIG1vZGUua2V5d29yZHMgPSBjb21waWxlS2V5d29yZHMobW9kZS5rZXl3b3JkcywgbGFuZ3VhZ2UuY2FzZV9pbnNlbnNpdGl2ZSk7XG4gICAgfVxuXG4gICAgY21vZGUua2V5d29yZFBhdHRlcm5SZSA9IGxhbmdSZShrZXl3b3JkUGF0dGVybiwgdHJ1ZSk7XG5cbiAgICBpZiAocGFyZW50KSB7XG4gICAgICBpZiAoIW1vZGUuYmVnaW4pIG1vZGUuYmVnaW4gPSAvXFxCfFxcYi87XG4gICAgICBjbW9kZS5iZWdpblJlID0gbGFuZ1JlKGNtb2RlLmJlZ2luKTtcbiAgICAgIGlmICghbW9kZS5lbmQgJiYgIW1vZGUuZW5kc1dpdGhQYXJlbnQpIG1vZGUuZW5kID0gL1xcQnxcXGIvO1xuICAgICAgaWYgKG1vZGUuZW5kKSBjbW9kZS5lbmRSZSA9IGxhbmdSZShjbW9kZS5lbmQpO1xuICAgICAgY21vZGUudGVybWluYXRvckVuZCA9IHNvdXJjZShjbW9kZS5lbmQpIHx8ICcnO1xuICAgICAgaWYgKG1vZGUuZW5kc1dpdGhQYXJlbnQgJiYgcGFyZW50LnRlcm1pbmF0b3JFbmQpIHtcbiAgICAgICAgY21vZGUudGVybWluYXRvckVuZCArPSAobW9kZS5lbmQgPyAnfCcgOiAnJykgKyBwYXJlbnQudGVybWluYXRvckVuZDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1vZGUuaWxsZWdhbCkgY21vZGUuaWxsZWdhbFJlID0gbGFuZ1JlKC8qKiBAdHlwZSB7UmVnRXhwIHwgc3RyaW5nfSAqLyAobW9kZS5pbGxlZ2FsKSk7XG4gICAgaWYgKCFtb2RlLmNvbnRhaW5zKSBtb2RlLmNvbnRhaW5zID0gW107XG5cbiAgICBtb2RlLmNvbnRhaW5zID0gW10uY29uY2F0KC4uLm1vZGUuY29udGFpbnMubWFwKGZ1bmN0aW9uKGMpIHtcbiAgICAgIHJldHVybiBleHBhbmRPckNsb25lTW9kZShjID09PSAnc2VsZicgPyBtb2RlIDogYyk7XG4gICAgfSkpO1xuICAgIG1vZGUuY29udGFpbnMuZm9yRWFjaChmdW5jdGlvbihjKSB7IGNvbXBpbGVNb2RlKC8qKiBAdHlwZSBNb2RlICovIChjKSwgY21vZGUpOyB9KTtcblxuICAgIGlmIChtb2RlLnN0YXJ0cykge1xuICAgICAgY29tcGlsZU1vZGUobW9kZS5zdGFydHMsIHBhcmVudCk7XG4gICAgfVxuXG4gICAgY21vZGUubWF0Y2hlciA9IGJ1aWxkTW9kZVJlZ2V4KGNtb2RlKTtcbiAgICByZXR1cm4gY21vZGU7XG4gIH1cblxuICBpZiAoIWxhbmd1YWdlLmNvbXBpbGVyRXh0ZW5zaW9ucykgbGFuZ3VhZ2UuY29tcGlsZXJFeHRlbnNpb25zID0gW107XG5cbiAgLy8gc2VsZiBpcyBub3QgdmFsaWQgYXQgdGhlIHRvcC1sZXZlbFxuICBpZiAobGFuZ3VhZ2UuY29udGFpbnMgJiYgbGFuZ3VhZ2UuY29udGFpbnMuaW5jbHVkZXMoJ3NlbGYnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUjogY29udGFpbnMgYHNlbGZgIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHRvcC1sZXZlbCBvZiBhIGxhbmd1YWdlLiAgU2VlIGRvY3VtZW50YXRpb24uXCIpO1xuICB9XG5cbiAgLy8gd2UgbmVlZCBhIG51bGwgb2JqZWN0LCB3aGljaCBpbmhlcml0IHdpbGwgZ3VhcmFudGVlXG4gIGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXMgPSBpbmhlcml0JDEobGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlcyB8fCB7fSk7XG5cbiAgcmV0dXJuIGNvbXBpbGVNb2RlKC8qKiBAdHlwZSBNb2RlICovIChsYW5ndWFnZSkpO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBtb2RlIGhhcyBhIGRlcGVuZGVuY3kgb24gaXQncyBwYXJlbnQgb3Igbm90XG4gKlxuICogSWYgYSBtb2RlIGRvZXMgaGF2ZSBhIHBhcmVudCBkZXBlbmRlbmN5IHRoZW4gb2Z0ZW4gd2UgbmVlZCB0byBjbG9uZSBpdCBpZlxuICogaXQncyB1c2VkIGluIG11bHRpcGxlIHBsYWNlcyBzbyB0aGF0IGVhY2ggY29weSBwb2ludHMgdG8gdGhlIGNvcnJlY3QgcGFyZW50LFxuICogd2hlcmUtYXMgbW9kZXMgd2l0aG91dCBhIHBhcmVudCBjYW4gb2Z0ZW4gc2FmZWx5IGJlIHJlLXVzZWQgYXQgdGhlIGJvdHRvbSBvZlxuICogYSBtb2RlIGNoYWluLlxuICpcbiAqIEBwYXJhbSB7TW9kZSB8IG51bGx9IG1vZGVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIGlzIHRoZXJlIGEgZGVwZW5kZW5jeSBvbiB0aGUgcGFyZW50P1xuICogKi9cbmZ1bmN0aW9uIGRlcGVuZGVuY3lPblBhcmVudChtb2RlKSB7XG4gIGlmICghbW9kZSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBtb2RlLmVuZHNXaXRoUGFyZW50IHx8IGRlcGVuZGVuY3lPblBhcmVudChtb2RlLnN0YXJ0cyk7XG59XG5cbi8qKlxuICogRXhwYW5kcyBhIG1vZGUgb3IgY2xvbmVzIGl0IGlmIG5lY2Vzc2FyeVxuICpcbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBtb2RlcyB3aXRoIHBhcmVudGFsIGRlcGVuZGVuY2VpcyAoc2VlIG5vdGVzIG9uXG4gKiBgZGVwZW5kZW5jeU9uUGFyZW50YCkgYW5kIGZvciBub2RlcyB0aGF0IGhhdmUgYHZhcmlhbnRzYCAtIHdoaWNoIG11c3QgdGhlbiBiZVxuICogZXhwbG9kZWQgaW50byB0aGVpciBvd24gaW5kaXZpZHVhbCBtb2RlcyBhdCBjb21waWxlIHRpbWUuXG4gKlxuICogQHBhcmFtIHtNb2RlfSBtb2RlXG4gKiBAcmV0dXJucyB7TW9kZSB8IE1vZGVbXX1cbiAqICovXG5mdW5jdGlvbiBleHBhbmRPckNsb25lTW9kZShtb2RlKSB7XG4gIGlmIChtb2RlLnZhcmlhbnRzICYmICFtb2RlLmNhY2hlZFZhcmlhbnRzKSB7XG4gICAgbW9kZS5jYWNoZWRWYXJpYW50cyA9IG1vZGUudmFyaWFudHMubWFwKGZ1bmN0aW9uKHZhcmlhbnQpIHtcbiAgICAgIHJldHVybiBpbmhlcml0JDEobW9kZSwgeyB2YXJpYW50czogbnVsbCB9LCB2YXJpYW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEVYUEFORFxuICAvLyBpZiB3ZSBoYXZlIHZhcmlhbnRzIHRoZW4gZXNzZW50aWFsbHkgXCJyZXBsYWNlXCIgdGhlIG1vZGUgd2l0aCB0aGUgdmFyaWFudHNcbiAgLy8gdGhpcyBoYXBwZW5zIGluIGNvbXBpbGVNb2RlLCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tXG4gIGlmIChtb2RlLmNhY2hlZFZhcmlhbnRzKSB7XG4gICAgcmV0dXJuIG1vZGUuY2FjaGVkVmFyaWFudHM7XG4gIH1cblxuICAvLyBDTE9ORVxuICAvLyBpZiB3ZSBoYXZlIGRlcGVuZGVuY2llcyBvbiBwYXJlbnRzIHRoZW4gd2UgbmVlZCBhIHVuaXF1ZVxuICAvLyBpbnN0YW5jZSBvZiBvdXJzZWx2ZXMsIHNvIHdlIGNhbiBiZSByZXVzZWQgd2l0aCBtYW55XG4gIC8vIGRpZmZlcmVudCBwYXJlbnRzIHdpdGhvdXQgaXNzdWVcbiAgaWYgKGRlcGVuZGVuY3lPblBhcmVudChtb2RlKSkge1xuICAgIHJldHVybiBpbmhlcml0JDEobW9kZSwgeyBzdGFydHM6IG1vZGUuc3RhcnRzID8gaW5oZXJpdCQxKG1vZGUuc3RhcnRzKSA6IG51bGwgfSk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmlzRnJvemVuKG1vZGUpKSB7XG4gICAgcmV0dXJuIGluaGVyaXQkMShtb2RlKTtcbiAgfVxuXG4gIC8vIG5vIHNwZWNpYWwgZGVwZW5kZW5jeSBpc3N1ZXMsIGp1c3QgcmV0dXJuIG91cnNlbHZlc1xuICByZXR1cm4gbW9kZTtcbn1cblxudmFyIHZlcnNpb24gPSBcIjExLjEwLjBcIjtcblxuY2xhc3MgSFRNTEluamVjdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFzb24sIGh0bWwpIHtcbiAgICBzdXBlcihyZWFzb24pO1xuICAgIHRoaXMubmFtZSA9IFwiSFRNTEluamVjdGlvbkVycm9yXCI7XG4gICAgdGhpcy5odG1sID0gaHRtbDtcbiAgfVxufVxuXG4vKlxuU3ludGF4IGhpZ2hsaWdodGluZyB3aXRoIGxhbmd1YWdlIGF1dG9kZXRlY3Rpb24uXG5odHRwczovL2hpZ2hsaWdodGpzLm9yZy9cbiovXG5cblxuXG4vKipcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLk1vZGV9IE1vZGVcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkNvbXBpbGVkTW9kZX0gQ29tcGlsZWRNb2RlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5Db21waWxlZFNjb3BlfSBDb21waWxlZFNjb3BlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5MYW5ndWFnZX0gTGFuZ3VhZ2VcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkhMSlNBcGl9IEhMSlNBcGlcbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLkhMSlNQbHVnaW59IEhMSlNQbHVnaW5cbkB0eXBlZGVmIHtpbXBvcnQoJ2hpZ2hsaWdodC5qcycpLlBsdWdpbkV2ZW50fSBQbHVnaW5FdmVudFxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSExKU09wdGlvbnN9IEhMSlNPcHRpb25zXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5MYW5ndWFnZUZufSBMYW5ndWFnZUZuXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5IaWdobGlnaHRlZEhUTUxFbGVtZW50fSBIaWdobGlnaHRlZEhUTUxFbGVtZW50XG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMnKS5CZWZvcmVIaWdobGlnaHRDb250ZXh0fSBCZWZvcmVIaWdobGlnaHRDb250ZXh0XG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLk1hdGNoVHlwZX0gTWF0Y2hUeXBlXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLktleXdvcmREYXRhfSBLZXl3b3JkRGF0YVxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzL3ByaXZhdGUnKS5FbmhhbmNlZE1hdGNofSBFbmhhbmNlZE1hdGNoXG5AdHlwZWRlZiB7aW1wb3J0KCdoaWdobGlnaHQuanMvcHJpdmF0ZScpLkFubm90YXRlZEVycm9yfSBBbm5vdGF0ZWRFcnJvclxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuQXV0b0hpZ2hsaWdodFJlc3VsdH0gQXV0b0hpZ2hsaWdodFJlc3VsdFxuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSGlnaGxpZ2h0T3B0aW9uc30gSGlnaGxpZ2h0T3B0aW9uc1xuQHR5cGVkZWYge2ltcG9ydCgnaGlnaGxpZ2h0LmpzJykuSGlnaGxpZ2h0UmVzdWx0fSBIaWdobGlnaHRSZXN1bHRcbiovXG5cblxuY29uc3QgZXNjYXBlID0gZXNjYXBlSFRNTDtcbmNvbnN0IGluaGVyaXQgPSBpbmhlcml0JDE7XG5jb25zdCBOT19NQVRDSCA9IFN5bWJvbChcIm5vbWF0Y2hcIik7XG5jb25zdCBNQVhfS0VZV09SRF9ISVRTID0gNztcblxuLyoqXG4gKiBAcGFyYW0ge2FueX0gaGxqcyAtIG9iamVjdCB0aGF0IGlzIGV4dGVuZGVkIChsZWdhY3kpXG4gKiBAcmV0dXJucyB7SExKU0FwaX1cbiAqL1xuY29uc3QgSExKUyA9IGZ1bmN0aW9uKGhsanMpIHtcbiAgLy8gR2xvYmFsIGludGVybmFsIHZhcmlhYmxlcyB1c2VkIHdpdGhpbiB0aGUgaGlnaGxpZ2h0LmpzIGxpYnJhcnkuXG4gIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgTGFuZ3VhZ2U+fSAqL1xuICBjb25zdCBsYW5ndWFnZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59ICovXG4gIGNvbnN0IGFsaWFzZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAvKiogQHR5cGUge0hMSlNQbHVnaW5bXX0gKi9cbiAgY29uc3QgcGx1Z2lucyA9IFtdO1xuXG4gIC8vIHNhZmUvcHJvZHVjdGlvbiBtb2RlIC0gc3dhbGxvd3MgbW9yZSBlcnJvcnMsIHRyaWVzIHRvIGtlZXAgcnVubmluZ1xuICAvLyBldmVuIGlmIGEgc2luZ2xlIHN5bnRheCBvciBwYXJzZSBoaXRzIGEgZmF0YWwgZXJyb3JcbiAgbGV0IFNBRkVfTU9ERSA9IHRydWU7XG4gIGNvbnN0IExBTkdVQUdFX05PVF9GT1VORCA9IFwiQ291bGQgbm90IGZpbmQgdGhlIGxhbmd1YWdlICd7fScsIGRpZCB5b3UgZm9yZ2V0IHRvIGxvYWQvaW5jbHVkZSBhIGxhbmd1YWdlIG1vZHVsZT9cIjtcbiAgLyoqIEB0eXBlIHtMYW5ndWFnZX0gKi9cbiAgY29uc3QgUExBSU5URVhUX0xBTkdVQUdFID0geyBkaXNhYmxlQXV0b2RldGVjdDogdHJ1ZSwgbmFtZTogJ1BsYWluIHRleHQnLCBjb250YWluczogW10gfTtcblxuICAvLyBHbG9iYWwgb3B0aW9ucyB1c2VkIHdoZW4gd2l0aGluIGV4dGVybmFsIEFQSXMuIFRoaXMgaXMgbW9kaWZpZWQgd2hlblxuICAvLyBjYWxsaW5nIHRoZSBgaGxqcy5jb25maWd1cmVgIGZ1bmN0aW9uLlxuICAvKiogQHR5cGUgSExKU09wdGlvbnMgKi9cbiAgbGV0IG9wdGlvbnMgPSB7XG4gICAgaWdub3JlVW5lc2NhcGVkSFRNTDogZmFsc2UsXG4gICAgdGhyb3dVbmVzY2FwZWRIVE1MOiBmYWxzZSxcbiAgICBub0hpZ2hsaWdodFJlOiAvXihuby0/aGlnaGxpZ2h0KSQvaSxcbiAgICBsYW5ndWFnZURldGVjdFJlOiAvXFxibGFuZyg/OnVhZ2UpPy0oW1xcdy1dKylcXGIvaSxcbiAgICBjbGFzc1ByZWZpeDogJ2hsanMtJyxcbiAgICBjc3NTZWxlY3RvcjogJ3ByZSBjb2RlJyxcbiAgICBsYW5ndWFnZXM6IG51bGwsXG4gICAgLy8gYmV0YSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHN1YmplY3QgdG8gY2hhbmdlLCB3ZWxjb21lIHRvIGRpc2N1c3NcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8xMDg2XG4gICAgX19lbWl0dGVyOiBUb2tlblRyZWVFbWl0dGVyXG4gIH07XG5cbiAgLyogVXRpbGl0eSBmdW5jdGlvbnMgKi9cblxuICAvKipcbiAgICogVGVzdHMgYSBsYW5ndWFnZSBuYW1lIHRvIHNlZSBpZiBoaWdobGlnaHRpbmcgc2hvdWxkIGJlIHNraXBwZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmd1YWdlTmFtZVxuICAgKi9cbiAgZnVuY3Rpb24gc2hvdWxkTm90SGlnaGxpZ2h0KGxhbmd1YWdlTmFtZSkge1xuICAgIHJldHVybiBvcHRpb25zLm5vSGlnaGxpZ2h0UmUudGVzdChsYW5ndWFnZU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7SGlnaGxpZ2h0ZWRIVE1MRWxlbWVudH0gYmxvY2sgLSB0aGUgSFRNTCBlbGVtZW50IHRvIGRldGVybWluZSBsYW5ndWFnZSBmb3JcbiAgICovXG4gIGZ1bmN0aW9uIGJsb2NrTGFuZ3VhZ2UoYmxvY2spIHtcbiAgICBsZXQgY2xhc3NlcyA9IGJsb2NrLmNsYXNzTmFtZSArICcgJztcblxuICAgIGNsYXNzZXMgKz0gYmxvY2sucGFyZW50Tm9kZSA/IGJsb2NrLnBhcmVudE5vZGUuY2xhc3NOYW1lIDogJyc7XG5cbiAgICAvLyBsYW5ndWFnZS0qIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBub24tcHJlZml4ZWQgY2xhc3MgbmFtZXMuXG4gICAgY29uc3QgbWF0Y2ggPSBvcHRpb25zLmxhbmd1YWdlRGV0ZWN0UmUuZXhlYyhjbGFzc2VzKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UobWF0Y2hbMV0pO1xuICAgICAgaWYgKCFsYW5ndWFnZSkge1xuICAgICAgICB3YXJuKExBTkdVQUdFX05PVF9GT1VORC5yZXBsYWNlKFwie31cIiwgbWF0Y2hbMV0pKTtcbiAgICAgICAgd2FybihcIkZhbGxpbmcgYmFjayB0byBuby1oaWdobGlnaHQgbW9kZSBmb3IgdGhpcyBibG9jay5cIiwgYmxvY2spO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxhbmd1YWdlID8gbWF0Y2hbMV0gOiAnbm8taGlnaGxpZ2h0JztcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhc3Nlc1xuICAgICAgLnNwbGl0KC9cXHMrLylcbiAgICAgIC5maW5kKChfY2xhc3MpID0+IHNob3VsZE5vdEhpZ2hsaWdodChfY2xhc3MpIHx8IGdldExhbmd1YWdlKF9jbGFzcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvcmUgaGlnaGxpZ2h0aW5nIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBPTEQgQVBJXG4gICAqIGhpZ2hsaWdodChsYW5nLCBjb2RlLCBpZ25vcmVJbGxlZ2FscywgY29udGludWF0aW9uKVxuICAgKlxuICAgKiBORVcgQVBJXG4gICAqIGhpZ2hsaWdodChjb2RlLCB7bGFuZywgaWdub3JlSWxsZWdhbHN9KVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29kZU9yTGFuZ3VhZ2VOYW1lIC0gdGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgaGlnaGxpZ2h0aW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgSGlnaGxpZ2h0T3B0aW9uc30gb3B0aW9uc09yQ29kZSAtIHRoZSBjb2RlIHRvIGhpZ2hsaWdodFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpZ25vcmVJbGxlZ2Fsc10gLSB3aGV0aGVyIHRvIGlnbm9yZSBpbGxlZ2FsIG1hdGNoZXMsIGRlZmF1bHQgaXMgdG8gYmFpbFxuICAgKlxuICAgKiBAcmV0dXJucyB7SGlnaGxpZ2h0UmVzdWx0fSBSZXN1bHQgLSBhbiBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSByZXN1bHRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGxhbmd1YWdlIC0gdGhlIGxhbmd1YWdlIG5hbWVcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IHJlbGV2YW5jZSAtIHRoZSByZWxldmFuY2Ugc2NvcmVcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHZhbHVlIC0gdGhlIGhpZ2hsaWdodGVkIEhUTUwgY29kZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30gY29kZSAtIHRoZSBvcmlnaW5hbCByYXcgY29kZVxuICAgKiBAcHJvcGVydHkge0NvbXBpbGVkTW9kZX0gdG9wIC0gdG9wIG9mIHRoZSBjdXJyZW50IG1vZGUgc3RhY2tcbiAgICogQHByb3BlcnR5IHtib29sZWFufSBpbGxlZ2FsIC0gaW5kaWNhdGVzIHdoZXRoZXIgYW55IGlsbGVnYWwgbWF0Y2hlcyB3ZXJlIGZvdW5kXG4gICovXG4gIGZ1bmN0aW9uIGhpZ2hsaWdodChjb2RlT3JMYW5ndWFnZU5hbWUsIG9wdGlvbnNPckNvZGUsIGlnbm9yZUlsbGVnYWxzKSB7XG4gICAgbGV0IGNvZGUgPSBcIlwiO1xuICAgIGxldCBsYW5ndWFnZU5hbWUgPSBcIlwiO1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yQ29kZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgY29kZSA9IGNvZGVPckxhbmd1YWdlTmFtZTtcbiAgICAgIGlnbm9yZUlsbGVnYWxzID0gb3B0aW9uc09yQ29kZS5pZ25vcmVJbGxlZ2FscztcbiAgICAgIGxhbmd1YWdlTmFtZSA9IG9wdGlvbnNPckNvZGUubGFuZ3VhZ2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG9sZCBBUElcbiAgICAgIGRlcHJlY2F0ZWQoXCIxMC43LjBcIiwgXCJoaWdobGlnaHQobGFuZywgY29kZSwgLi4uYXJncykgaGFzIGJlZW4gZGVwcmVjYXRlZC5cIik7XG4gICAgICBkZXByZWNhdGVkKFwiMTAuNy4wXCIsIFwiUGxlYXNlIHVzZSBoaWdobGlnaHQoY29kZSwgb3B0aW9ucykgaW5zdGVhZC5cXG5odHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8yMjc3XCIpO1xuICAgICAgbGFuZ3VhZ2VOYW1lID0gY29kZU9yTGFuZ3VhZ2VOYW1lO1xuICAgICAgY29kZSA9IG9wdGlvbnNPckNvZGU7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzE0OVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZmluZWRcbiAgICBpZiAoaWdub3JlSWxsZWdhbHMgPT09IHVuZGVmaW5lZCkgeyBpZ25vcmVJbGxlZ2FscyA9IHRydWU7IH1cblxuICAgIC8qKiBAdHlwZSB7QmVmb3JlSGlnaGxpZ2h0Q29udGV4dH0gKi9cbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgY29kZSxcbiAgICAgIGxhbmd1YWdlOiBsYW5ndWFnZU5hbWVcbiAgICB9O1xuICAgIC8vIHRoZSBwbHVnaW4gY2FuIGNoYW5nZSB0aGUgZGVzaXJlZCBsYW5ndWFnZSBvciB0aGUgY29kZSB0byBiZSBoaWdobGlnaHRlZFxuICAgIC8vIGp1c3QgYmUgY2hhbmdpbmcgdGhlIG9iamVjdCBpdCB3YXMgcGFzc2VkXG4gICAgZmlyZShcImJlZm9yZTpoaWdobGlnaHRcIiwgY29udGV4dCk7XG5cbiAgICAvLyBhIGJlZm9yZSBwbHVnaW4gY2FuIHVzdXJwIHRoZSByZXN1bHQgY29tcGxldGVseSBieSBwcm92aWRpbmcgaXQncyBvd25cbiAgICAvLyBpbiB3aGljaCBjYXNlIHdlIGRvbid0IGV2ZW4gbmVlZCB0byBjYWxsIGhpZ2hsaWdodFxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnRleHQucmVzdWx0XG4gICAgICA/IGNvbnRleHQucmVzdWx0XG4gICAgICA6IF9oaWdobGlnaHQoY29udGV4dC5sYW5ndWFnZSwgY29udGV4dC5jb2RlLCBpZ25vcmVJbGxlZ2Fscyk7XG5cbiAgICByZXN1bHQuY29kZSA9IGNvbnRleHQuY29kZTtcbiAgICAvLyB0aGUgcGx1Z2luIGNhbiBjaGFuZ2UgYW55dGhpbmcgaW4gcmVzdWx0IHRvIHN1aXRlIGl0XG4gICAgZmlyZShcImFmdGVyOmhpZ2hsaWdodFwiLCByZXN1bHQpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBwcml2YXRlIGhpZ2hsaWdodCB0aGF0J3MgdXNlZCBpbnRlcm5hbGx5IGFuZCBkb2VzIG5vdCBmaXJlIGNhbGxiYWNrc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VOYW1lIC0gdGhlIGxhbmd1YWdlIHRvIHVzZSBmb3IgaGlnaGxpZ2h0aW5nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb2RlVG9IaWdobGlnaHQgLSB0aGUgY29kZSB0byBoaWdobGlnaHRcbiAgICogQHBhcmFtIHtib29sZWFuP30gW2lnbm9yZUlsbGVnYWxzXSAtIHdoZXRoZXIgdG8gaWdub3JlIGlsbGVnYWwgbWF0Y2hlcywgZGVmYXVsdCBpcyB0byBiYWlsXG4gICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlP30gW2NvbnRpbnVhdGlvbl0gLSBjdXJyZW50IGNvbnRpbnVhdGlvbiBtb2RlLCBpZiBhbnlcbiAgICogQHJldHVybnMge0hpZ2hsaWdodFJlc3VsdH0gLSByZXN1bHQgb2YgdGhlIGhpZ2hsaWdodCBvcGVyYXRpb25cbiAgKi9cbiAgZnVuY3Rpb24gX2hpZ2hsaWdodChsYW5ndWFnZU5hbWUsIGNvZGVUb0hpZ2hsaWdodCwgaWdub3JlSWxsZWdhbHMsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGtleXdvcmRIaXRzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybiBrZXl3b3JkIGRhdGEgaWYgYSBtYXRjaCBpcyBhIGtleXdvcmRcbiAgICAgKiBAcGFyYW0ge0NvbXBpbGVkTW9kZX0gbW9kZSAtIGN1cnJlbnQgbW9kZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtYXRjaFRleHQgLSB0aGUgdGV4dHVhbCBtYXRjaFxuICAgICAqIEByZXR1cm5zIHtLZXl3b3JkRGF0YSB8IGZhbHNlfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGtleXdvcmREYXRhKG1vZGUsIG1hdGNoVGV4dCkge1xuICAgICAgcmV0dXJuIG1vZGUua2V5d29yZHNbbWF0Y2hUZXh0XTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzS2V5d29yZHMoKSB7XG4gICAgICBpZiAoIXRvcC5rZXl3b3Jkcykge1xuICAgICAgICBlbWl0dGVyLmFkZFRleHQobW9kZUJ1ZmZlcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XG4gICAgICB0b3Aua2V5d29yZFBhdHRlcm5SZS5sYXN0SW5kZXggPSAwO1xuICAgICAgbGV0IG1hdGNoID0gdG9wLmtleXdvcmRQYXR0ZXJuUmUuZXhlYyhtb2RlQnVmZmVyKTtcbiAgICAgIGxldCBidWYgPSBcIlwiO1xuXG4gICAgICB3aGlsZSAobWF0Y2gpIHtcbiAgICAgICAgYnVmICs9IG1vZGVCdWZmZXIuc3Vic3RyaW5nKGxhc3RJbmRleCwgbWF0Y2guaW5kZXgpO1xuICAgICAgICBjb25zdCB3b3JkID0gbGFuZ3VhZ2UuY2FzZV9pbnNlbnNpdGl2ZSA/IG1hdGNoWzBdLnRvTG93ZXJDYXNlKCkgOiBtYXRjaFswXTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGtleXdvcmREYXRhKHRvcCwgd29yZCk7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgY29uc3QgW2tpbmQsIGtleXdvcmRSZWxldmFuY2VdID0gZGF0YTtcbiAgICAgICAgICBlbWl0dGVyLmFkZFRleHQoYnVmKTtcbiAgICAgICAgICBidWYgPSBcIlwiO1xuXG4gICAgICAgICAga2V5d29yZEhpdHNbd29yZF0gPSAoa2V5d29yZEhpdHNbd29yZF0gfHwgMCkgKyAxO1xuICAgICAgICAgIGlmIChrZXl3b3JkSGl0c1t3b3JkXSA8PSBNQVhfS0VZV09SRF9ISVRTKSByZWxldmFuY2UgKz0ga2V5d29yZFJlbGV2YW5jZTtcbiAgICAgICAgICBpZiAoa2luZC5zdGFydHNXaXRoKFwiX1wiKSkge1xuICAgICAgICAgICAgLy8gXyBpbXBsaWVkIGZvciByZWxldmFuY2Ugb25seSwgZG8gbm90IGhpZ2hsaWdodFxuICAgICAgICAgICAgLy8gYnkgYXBwbHlpbmcgYSBjbGFzcyBuYW1lXG4gICAgICAgICAgICBidWYgKz0gbWF0Y2hbMF07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNzc0NsYXNzID0gbGFuZ3VhZ2UuY2xhc3NOYW1lQWxpYXNlc1traW5kXSB8fCBraW5kO1xuICAgICAgICAgICAgZW1pdEtleXdvcmQobWF0Y2hbMF0sIGNzc0NsYXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVmICs9IG1hdGNoWzBdO1xuICAgICAgICB9XG4gICAgICAgIGxhc3RJbmRleCA9IHRvcC5rZXl3b3JkUGF0dGVyblJlLmxhc3RJbmRleDtcbiAgICAgICAgbWF0Y2ggPSB0b3Aua2V5d29yZFBhdHRlcm5SZS5leGVjKG1vZGVCdWZmZXIpO1xuICAgICAgfVxuICAgICAgYnVmICs9IG1vZGVCdWZmZXIuc3Vic3RyaW5nKGxhc3RJbmRleCk7XG4gICAgICBlbWl0dGVyLmFkZFRleHQoYnVmKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzU3ViTGFuZ3VhZ2UoKSB7XG4gICAgICBpZiAobW9kZUJ1ZmZlciA9PT0gXCJcIikgcmV0dXJuO1xuICAgICAgLyoqIEB0eXBlIEhpZ2hsaWdodFJlc3VsdCAqL1xuICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG5cbiAgICAgIGlmICh0eXBlb2YgdG9wLnN1Ykxhbmd1YWdlID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoIWxhbmd1YWdlc1t0b3Auc3ViTGFuZ3VhZ2VdKSB7XG4gICAgICAgICAgZW1pdHRlci5hZGRUZXh0KG1vZGVCdWZmZXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSBfaGlnaGxpZ2h0KHRvcC5zdWJMYW5ndWFnZSwgbW9kZUJ1ZmZlciwgdHJ1ZSwgY29udGludWF0aW9uc1t0b3Auc3ViTGFuZ3VhZ2VdKTtcbiAgICAgICAgY29udGludWF0aW9uc1t0b3Auc3ViTGFuZ3VhZ2VdID0gLyoqIEB0eXBlIHtDb21waWxlZE1vZGV9ICovIChyZXN1bHQuX3RvcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBoaWdobGlnaHRBdXRvKG1vZGVCdWZmZXIsIHRvcC5zdWJMYW5ndWFnZS5sZW5ndGggPyB0b3Auc3ViTGFuZ3VhZ2UgOiBudWxsKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ291bnRpbmcgZW1iZWRkZWQgbGFuZ3VhZ2Ugc2NvcmUgdG93YXJkcyB0aGUgaG9zdCBsYW5ndWFnZSBtYXkgYmUgZGlzYWJsZWRcbiAgICAgIC8vIHdpdGggemVyb2luZyB0aGUgY29udGFpbmluZyBtb2RlIHJlbGV2YW5jZS4gVXNlIGNhc2UgaW4gcG9pbnQgaXMgTWFya2Rvd24gdGhhdFxuICAgICAgLy8gYWxsb3dzIFhNTCBldmVyeXdoZXJlIGFuZCBtYWtlcyBldmVyeSBYTUwgc25pcHBldCB0byBoYXZlIGEgbXVjaCBsYXJnZXIgTWFya2Rvd25cbiAgICAgIC8vIHNjb3JlLlxuICAgICAgaWYgKHRvcC5yZWxldmFuY2UgPiAwKSB7XG4gICAgICAgIHJlbGV2YW5jZSArPSByZXN1bHQucmVsZXZhbmNlO1xuICAgICAgfVxuICAgICAgZW1pdHRlci5fX2FkZFN1Ymxhbmd1YWdlKHJlc3VsdC5fZW1pdHRlciwgcmVzdWx0Lmxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzQnVmZmVyKCkge1xuICAgICAgaWYgKHRvcC5zdWJMYW5ndWFnZSAhPSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3NTdWJMYW5ndWFnZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvY2Vzc0tleXdvcmRzKCk7XG4gICAgICB9XG4gICAgICBtb2RlQnVmZmVyID0gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBlbWl0S2V5d29yZChrZXl3b3JkLCBzY29wZSkge1xuICAgICAgaWYgKGtleXdvcmQgPT09IFwiXCIpIHJldHVybjtcblxuICAgICAgZW1pdHRlci5zdGFydFNjb3BlKHNjb3BlKTtcbiAgICAgIGVtaXR0ZXIuYWRkVGV4dChrZXl3b3JkKTtcbiAgICAgIGVtaXR0ZXIuZW5kU2NvcGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0NvbXBpbGVkU2NvcGV9IHNjb3BlXG4gICAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVtaXRNdWx0aUNsYXNzKHNjb3BlLCBtYXRjaCkge1xuICAgICAgbGV0IGkgPSAxO1xuICAgICAgY29uc3QgbWF4ID0gbWF0Y2gubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpIDw9IG1heCkge1xuICAgICAgICBpZiAoIXNjb3BlLl9lbWl0W2ldKSB7IGkrKzsgY29udGludWU7IH1cbiAgICAgICAgY29uc3Qga2xhc3MgPSBsYW5ndWFnZS5jbGFzc05hbWVBbGlhc2VzW3Njb3BlW2ldXSB8fCBzY29wZVtpXTtcbiAgICAgICAgY29uc3QgdGV4dCA9IG1hdGNoW2ldO1xuICAgICAgICBpZiAoa2xhc3MpIHtcbiAgICAgICAgICBlbWl0S2V5d29yZCh0ZXh0LCBrbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IHRleHQ7XG4gICAgICAgICAgcHJvY2Vzc0tleXdvcmRzKCk7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlfSBtb2RlIC0gbmV3IG1vZGUgdG8gc3RhcnRcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3RhcnROZXdNb2RlKG1vZGUsIG1hdGNoKSB7XG4gICAgICBpZiAobW9kZS5zY29wZSAmJiB0eXBlb2YgbW9kZS5zY29wZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBlbWl0dGVyLm9wZW5Ob2RlKGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXNbbW9kZS5zY29wZV0gfHwgbW9kZS5zY29wZSk7XG4gICAgICB9XG4gICAgICBpZiAobW9kZS5iZWdpblNjb3BlKSB7XG4gICAgICAgIC8vIGJlZ2luU2NvcGUganVzdCB3cmFwcyB0aGUgYmVnaW4gbWF0Y2ggaXRzZWxmIGluIGEgc2NvcGVcbiAgICAgICAgaWYgKG1vZGUuYmVnaW5TY29wZS5fd3JhcCkge1xuICAgICAgICAgIGVtaXRLZXl3b3JkKG1vZGVCdWZmZXIsIGxhbmd1YWdlLmNsYXNzTmFtZUFsaWFzZXNbbW9kZS5iZWdpblNjb3BlLl93cmFwXSB8fCBtb2RlLmJlZ2luU2NvcGUuX3dyYXApO1xuICAgICAgICAgIG1vZGVCdWZmZXIgPSBcIlwiO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGUuYmVnaW5TY29wZS5fbXVsdGkpIHtcbiAgICAgICAgICAvLyBhdCB0aGlzIHBvaW50IG1vZGVCdWZmZXIgc2hvdWxkIGp1c3QgYmUgdGhlIG1hdGNoXG4gICAgICAgICAgZW1pdE11bHRpQ2xhc3MobW9kZS5iZWdpblNjb3BlLCBtYXRjaCk7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdG9wID0gT2JqZWN0LmNyZWF0ZShtb2RlLCB7IHBhcmVudDogeyB2YWx1ZTogdG9wIH0gfSk7XG4gICAgICByZXR1cm4gdG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7Q29tcGlsZWRNb2RlIH0gbW9kZSAtIHRoZSBtb2RlIHRvIHBvdGVudGlhbGx5IGVuZFxuICAgICAqIEBwYXJhbSB7UmVnRXhwTWF0Y2hBcnJheX0gbWF0Y2ggLSB0aGUgbGF0ZXN0IG1hdGNoXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1hdGNoUGx1c1JlbWFpbmRlciAtIG1hdGNoIHBsdXMgcmVtYWluZGVyIG9mIGNvbnRlbnRcbiAgICAgKiBAcmV0dXJucyB7Q29tcGlsZWRNb2RlIHwgdm9pZH0gLSB0aGUgbmV4dCBtb2RlLCBvciBpZiB2b2lkIGNvbnRpbnVlIG9uIGluIGN1cnJlbnQgbW9kZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVuZE9mTW9kZShtb2RlLCBtYXRjaCwgbWF0Y2hQbHVzUmVtYWluZGVyKSB7XG4gICAgICBsZXQgbWF0Y2hlZCA9IHN0YXJ0c1dpdGgobW9kZS5lbmRSZSwgbWF0Y2hQbHVzUmVtYWluZGVyKTtcblxuICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgaWYgKG1vZGVbXCJvbjplbmRcIl0pIHtcbiAgICAgICAgICBjb25zdCByZXNwID0gbmV3IFJlc3BvbnNlKG1vZGUpO1xuICAgICAgICAgIG1vZGVbXCJvbjplbmRcIl0obWF0Y2gsIHJlc3ApO1xuICAgICAgICAgIGlmIChyZXNwLmlzTWF0Y2hJZ25vcmVkKSBtYXRjaGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICAgIHdoaWxlIChtb2RlLmVuZHNQYXJlbnQgJiYgbW9kZS5wYXJlbnQpIHtcbiAgICAgICAgICAgIG1vZGUgPSBtb2RlLnBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIGV2ZW4gaWYgb246ZW5kIGZpcmVzIGFuIGBpZ25vcmVgIGl0J3Mgc3RpbGwgcG9zc2libGVcbiAgICAgIC8vIHRoYXQgd2UgbWlnaHQgdHJpZ2dlciB0aGUgZW5kIG5vZGUgYmVjYXVzZSBvZiBhIHBhcmVudCBtb2RlXG4gICAgICBpZiAobW9kZS5lbmRzV2l0aFBhcmVudCkge1xuICAgICAgICByZXR1cm4gZW5kT2ZNb2RlKG1vZGUucGFyZW50LCBtYXRjaCwgbWF0Y2hQbHVzUmVtYWluZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgbWF0Y2hpbmcgYnV0IHRoZW4gaWdub3JpbmcgYSBzZXF1ZW5jZSBvZiB0ZXh0XG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGV4ZW1lIC0gc3RyaW5nIGNvbnRhaW5pbmcgZnVsbCBtYXRjaCB0ZXh0XG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9JZ25vcmUobGV4ZW1lKSB7XG4gICAgICBpZiAodG9wLm1hdGNoZXIucmVnZXhJbmRleCA9PT0gMCkge1xuICAgICAgICAvLyBubyBtb3JlIHJlZ2V4ZXMgdG8gcG90ZW50aWFsbHkgbWF0Y2ggaGVyZSwgc28gd2UgbW92ZSB0aGUgY3Vyc29yIGZvcndhcmQgb25lXG4gICAgICAgIC8vIHNwYWNlXG4gICAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lWzBdO1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vIG5lZWQgdG8gbW92ZSB0aGUgY3Vyc29yLCB3ZSBzdGlsbCBoYXZlIGFkZGl0aW9uYWwgcmVnZXhlcyB0byB0cnkgYW5kXG4gICAgICAgIC8vIG1hdGNoIGF0IHRoaXMgdmVyeSBzcG90XG4gICAgICAgIHJlc3VtZVNjYW5BdFNhbWVQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSB0aGUgc3RhcnQgb2YgYSBuZXcgcG90ZW50aWFsIG1vZGUgbWF0Y2hcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RW5oYW5jZWRNYXRjaH0gbWF0Y2ggLSB0aGUgY3VycmVudCBtYXRjaFxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IGhvdyBmYXIgdG8gYWR2YW5jZSB0aGUgcGFyc2UgY3Vyc29yXG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9CZWdpbk1hdGNoKG1hdGNoKSB7XG4gICAgICBjb25zdCBsZXhlbWUgPSBtYXRjaFswXTtcbiAgICAgIGNvbnN0IG5ld01vZGUgPSBtYXRjaC5ydWxlO1xuXG4gICAgICBjb25zdCByZXNwID0gbmV3IFJlc3BvbnNlKG5ld01vZGUpO1xuICAgICAgLy8gZmlyc3QgaW50ZXJuYWwgYmVmb3JlIGNhbGxiYWNrcywgdGhlbiB0aGUgcHVibGljIG9uZXNcbiAgICAgIGNvbnN0IGJlZm9yZUNhbGxiYWNrcyA9IFtuZXdNb2RlLl9fYmVmb3JlQmVnaW4sIG5ld01vZGVbXCJvbjpiZWdpblwiXV07XG4gICAgICBmb3IgKGNvbnN0IGNiIG9mIGJlZm9yZUNhbGxiYWNrcykge1xuICAgICAgICBpZiAoIWNiKSBjb250aW51ZTtcbiAgICAgICAgY2IobWF0Y2gsIHJlc3ApO1xuICAgICAgICBpZiAocmVzcC5pc01hdGNoSWdub3JlZCkgcmV0dXJuIGRvSWdub3JlKGxleGVtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdNb2RlLnNraXApIHtcbiAgICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAobmV3TW9kZS5leGNsdWRlQmVnaW4pIHtcbiAgICAgICAgICBtb2RlQnVmZmVyICs9IGxleGVtZTtcbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgIGlmICghbmV3TW9kZS5yZXR1cm5CZWdpbiAmJiAhbmV3TW9kZS5leGNsdWRlQmVnaW4pIHtcbiAgICAgICAgICBtb2RlQnVmZmVyID0gbGV4ZW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzdGFydE5ld01vZGUobmV3TW9kZSwgbWF0Y2gpO1xuICAgICAgcmV0dXJuIG5ld01vZGUucmV0dXJuQmVnaW4gPyAwIDogbGV4ZW1lLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgdGhlIHBvdGVudGlhbCBlbmQgb2YgbW9kZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaCAtIHRoZSBjdXJyZW50IG1hdGNoXG4gICAgICovXG4gICAgZnVuY3Rpb24gZG9FbmRNYXRjaChtYXRjaCkge1xuICAgICAgY29uc3QgbGV4ZW1lID0gbWF0Y2hbMF07XG4gICAgICBjb25zdCBtYXRjaFBsdXNSZW1haW5kZXIgPSBjb2RlVG9IaWdobGlnaHQuc3Vic3RyaW5nKG1hdGNoLmluZGV4KTtcblxuICAgICAgY29uc3QgZW5kTW9kZSA9IGVuZE9mTW9kZSh0b3AsIG1hdGNoLCBtYXRjaFBsdXNSZW1haW5kZXIpO1xuICAgICAgaWYgKCFlbmRNb2RlKSB7IHJldHVybiBOT19NQVRDSDsgfVxuXG4gICAgICBjb25zdCBvcmlnaW4gPSB0b3A7XG4gICAgICBpZiAodG9wLmVuZFNjb3BlICYmIHRvcC5lbmRTY29wZS5fd3JhcCkge1xuICAgICAgICBwcm9jZXNzQnVmZmVyKCk7XG4gICAgICAgIGVtaXRLZXl3b3JkKGxleGVtZSwgdG9wLmVuZFNjb3BlLl93cmFwKTtcbiAgICAgIH0gZWxzZSBpZiAodG9wLmVuZFNjb3BlICYmIHRvcC5lbmRTY29wZS5fbXVsdGkpIHtcbiAgICAgICAgcHJvY2Vzc0J1ZmZlcigpO1xuICAgICAgICBlbWl0TXVsdGlDbGFzcyh0b3AuZW5kU2NvcGUsIG1hdGNoKTtcbiAgICAgIH0gZWxzZSBpZiAob3JpZ2luLnNraXApIHtcbiAgICAgICAgbW9kZUJ1ZmZlciArPSBsZXhlbWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIShvcmlnaW4ucmV0dXJuRW5kIHx8IG9yaWdpbi5leGNsdWRlRW5kKSkge1xuICAgICAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgICB9XG4gICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgaWYgKG9yaWdpbi5leGNsdWRlRW5kKSB7XG4gICAgICAgICAgbW9kZUJ1ZmZlciA9IGxleGVtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG8ge1xuICAgICAgICBpZiAodG9wLnNjb3BlKSB7XG4gICAgICAgICAgZW1pdHRlci5jbG9zZU5vZGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRvcC5za2lwICYmICF0b3Auc3ViTGFuZ3VhZ2UpIHtcbiAgICAgICAgICByZWxldmFuY2UgKz0gdG9wLnJlbGV2YW5jZTtcbiAgICAgICAgfVxuICAgICAgICB0b3AgPSB0b3AucGFyZW50O1xuICAgICAgfSB3aGlsZSAodG9wICE9PSBlbmRNb2RlLnBhcmVudCk7XG4gICAgICBpZiAoZW5kTW9kZS5zdGFydHMpIHtcbiAgICAgICAgc3RhcnROZXdNb2RlKGVuZE1vZGUuc3RhcnRzLCBtYXRjaCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gb3JpZ2luLnJldHVybkVuZCA/IDAgOiBsZXhlbWUubGVuZ3RoO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NDb250aW51YXRpb25zKCkge1xuICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgZm9yIChsZXQgY3VycmVudCA9IHRvcDsgY3VycmVudCAhPT0gbGFuZ3VhZ2U7IGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudCkge1xuICAgICAgICBpZiAoY3VycmVudC5zY29wZSkge1xuICAgICAgICAgIGxpc3QudW5zaGlmdChjdXJyZW50LnNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4gZW1pdHRlci5vcGVuTm9kZShpdGVtKSk7XG4gICAgfVxuXG4gICAgLyoqIEB0eXBlIHt7dHlwZT86IE1hdGNoVHlwZSwgaW5kZXg/OiBudW1iZXIsIHJ1bGU/OiBNb2RlfX19ICovXG4gICAgbGV0IGxhc3RNYXRjaCA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogIFByb2Nlc3MgYW4gaW5kaXZpZHVhbCBtYXRjaFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHRCZWZvcmVNYXRjaCAtIHRleHQgcHJlY2VkaW5nIHRoZSBtYXRjaCAoc2luY2UgdGhlIGxhc3QgbWF0Y2gpXG4gICAgICogQHBhcmFtIHtFbmhhbmNlZE1hdGNofSBbbWF0Y2hdIC0gdGhlIG1hdGNoIGl0c2VsZlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb2Nlc3NMZXhlbWUodGV4dEJlZm9yZU1hdGNoLCBtYXRjaCkge1xuICAgICAgY29uc3QgbGV4ZW1lID0gbWF0Y2ggJiYgbWF0Y2hbMF07XG5cbiAgICAgIC8vIGFkZCBub24tbWF0Y2hlZCB0ZXh0IHRvIHRoZSBjdXJyZW50IG1vZGUgYnVmZmVyXG4gICAgICBtb2RlQnVmZmVyICs9IHRleHRCZWZvcmVNYXRjaDtcblxuICAgICAgaWYgKGxleGVtZSA9PSBudWxsKSB7XG4gICAgICAgIHByb2Nlc3NCdWZmZXIoKTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG5cbiAgICAgIC8vIHdlJ3ZlIGZvdW5kIGEgMCB3aWR0aCBtYXRjaCBhbmQgd2UncmUgc3R1Y2ssIHNvIHdlIG5lZWQgdG8gYWR2YW5jZVxuICAgICAgLy8gdGhpcyBoYXBwZW5zIHdoZW4gd2UgaGF2ZSBiYWRseSBiZWhhdmVkIHJ1bGVzIHRoYXQgaGF2ZSBvcHRpb25hbCBtYXRjaGVycyB0byB0aGUgZGVncmVlIHRoYXRcbiAgICAgIC8vIHNvbWV0aW1lcyB0aGV5IGNhbiBlbmQgdXAgbWF0Y2hpbmcgbm90aGluZyBhdCBhbGxcbiAgICAgIC8vIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjE0MFxuICAgICAgaWYgKGxhc3RNYXRjaC50eXBlID09PSBcImJlZ2luXCIgJiYgbWF0Y2gudHlwZSA9PT0gXCJlbmRcIiAmJiBsYXN0TWF0Y2guaW5kZXggPT09IG1hdGNoLmluZGV4ICYmIGxleGVtZSA9PT0gXCJcIikge1xuICAgICAgICAvLyBzcGl0IHRoZSBcInNraXBwZWRcIiBjaGFyYWN0ZXIgdGhhdCBvdXIgcmVnZXggY2hva2VkIG9uIGJhY2sgaW50byB0aGUgb3V0cHV0IHNlcXVlbmNlXG4gICAgICAgIG1vZGVCdWZmZXIgKz0gY29kZVRvSGlnaGxpZ2h0LnNsaWNlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIDEpO1xuICAgICAgICBpZiAoIVNBRkVfTU9ERSkge1xuICAgICAgICAgIC8qKiBAdHlwZSB7QW5ub3RhdGVkRXJyb3J9ICovXG4gICAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKGAwIHdpZHRoIG1hdGNoIHJlZ2V4ICgke2xhbmd1YWdlTmFtZX0pYCk7XG4gICAgICAgICAgZXJyLmxhbmd1YWdlTmFtZSA9IGxhbmd1YWdlTmFtZTtcbiAgICAgICAgICBlcnIuYmFkUnVsZSA9IGxhc3RNYXRjaC5ydWxlO1xuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICAgIGxhc3RNYXRjaCA9IG1hdGNoO1xuXG4gICAgICBpZiAobWF0Y2gudHlwZSA9PT0gXCJiZWdpblwiKSB7XG4gICAgICAgIHJldHVybiBkb0JlZ2luTWF0Y2gobWF0Y2gpO1xuICAgICAgfSBlbHNlIGlmIChtYXRjaC50eXBlID09PSBcImlsbGVnYWxcIiAmJiAhaWdub3JlSWxsZWdhbHMpIHtcbiAgICAgICAgLy8gaWxsZWdhbCBtYXRjaCwgd2UgZG8gbm90IGNvbnRpbnVlIHByb2Nlc3NpbmdcbiAgICAgICAgLyoqIEB0eXBlIHtBbm5vdGF0ZWRFcnJvcn0gKi9cbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCdJbGxlZ2FsIGxleGVtZSBcIicgKyBsZXhlbWUgKyAnXCIgZm9yIG1vZGUgXCInICsgKHRvcC5zY29wZSB8fCAnPHVubmFtZWQ+JykgKyAnXCInKTtcbiAgICAgICAgZXJyLm1vZGUgPSB0b3A7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZWxzZSBpZiAobWF0Y2gudHlwZSA9PT0gXCJlbmRcIikge1xuICAgICAgICBjb25zdCBwcm9jZXNzZWQgPSBkb0VuZE1hdGNoKG1hdGNoKTtcbiAgICAgICAgaWYgKHByb2Nlc3NlZCAhPT0gTk9fTUFUQ0gpIHtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGVkZ2UgY2FzZSBmb3Igd2hlbiBpbGxlZ2FsIG1hdGNoZXMgJCAoZW5kIG9mIGxpbmUpIHdoaWNoIGlzIHRlY2huaWNhbGx5XG4gICAgICAvLyBhIDAgd2lkdGggbWF0Y2ggYnV0IG5vdCBhIGJlZ2luL2VuZCBtYXRjaCBzbyBpdCdzIG5vdCBjYXVnaHQgYnkgdGhlXG4gICAgICAvLyBmaXJzdCBoYW5kbGVyICh3aGVuIGlnbm9yZUlsbGVnYWxzIGlzIHRydWUpXG4gICAgICBpZiAobWF0Y2gudHlwZSA9PT0gXCJpbGxlZ2FsXCIgJiYgbGV4ZW1lID09PSBcIlwiKSB7XG4gICAgICAgIC8vIGFkdmFuY2Ugc28gd2UgYXJlbid0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3BcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG5cbiAgICAgIC8vIGluZmluaXRlIGxvb3BzIGFyZSBCQUQsIHRoaXMgaXMgYSBsYXN0IGRpdGNoIGNhdGNoIGFsbC4gaWYgd2UgaGF2ZSBhXG4gICAgICAvLyBkZWNlbnQgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgeWV0IG91ciBpbmRleCAoY3Vyc29yIHBvc2l0aW9uIGluIG91clxuICAgICAgLy8gcGFyc2luZykgc3RpbGwgM3ggYmVoaW5kIG91ciBpbmRleCB0aGVuIHNvbWV0aGluZyBpcyB2ZXJ5IHdyb25nXG4gICAgICAvLyBzbyB3ZSBiYWlsXG4gICAgICBpZiAoaXRlcmF0aW9ucyA+IDEwMDAwMCAmJiBpdGVyYXRpb25zID4gbWF0Y2guaW5kZXggKiAzKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcigncG90ZW50aWFsIGluZmluaXRlIGxvb3AsIHdheSBtb3JlIGl0ZXJhdGlvbnMgdGhhbiBtYXRjaGVzJyk7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgLypcbiAgICAgIFdoeSBtaWdodCBiZSBmaW5kIG91cnNlbHZlcyBoZXJlPyAgQW4gcG90ZW50aWFsIGVuZCBtYXRjaCB0aGF0IHdhc1xuICAgICAgdHJpZ2dlcmVkIGJ1dCBjb3VsZCBub3QgYmUgY29tcGxldGVkLiAgSUUsIGBkb0VuZE1hdGNoYCByZXR1cm5lZCBOT19NQVRDSC5cbiAgICAgICh0aGlzIGNvdWxkIGJlIGJlY2F1c2UgYSBjYWxsYmFjayByZXF1ZXN0cyB0aGUgbWF0Y2ggYmUgaWdub3JlZCwgZXRjKVxuXG4gICAgICBUaGlzIGNhdXNlcyBubyByZWFsIGhhcm0gb3RoZXIgdGhhbiBzdG9wcGluZyBhIGZldyB0aW1lcyB0b28gbWFueS5cbiAgICAgICovXG5cbiAgICAgIG1vZGVCdWZmZXIgKz0gbGV4ZW1lO1xuICAgICAgcmV0dXJuIGxleGVtZS5sZW5ndGg7XG4gICAgfVxuXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZShsYW5ndWFnZU5hbWUpO1xuICAgIGlmICghbGFuZ3VhZ2UpIHtcbiAgICAgIGVycm9yKExBTkdVQUdFX05PVF9GT1VORC5yZXBsYWNlKFwie31cIiwgbGFuZ3VhZ2VOYW1lKSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGFuZ3VhZ2U6IFwiJyArIGxhbmd1YWdlTmFtZSArICdcIicpO1xuICAgIH1cblxuICAgIGNvbnN0IG1kID0gY29tcGlsZUxhbmd1YWdlKGxhbmd1YWdlKTtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgLyoqIEB0eXBlIHtDb21waWxlZE1vZGV9ICovXG4gICAgbGV0IHRvcCA9IGNvbnRpbnVhdGlvbiB8fCBtZDtcbiAgICAvKiogQHR5cGUgUmVjb3JkPHN0cmluZyxDb21waWxlZE1vZGU+ICovXG4gICAgY29uc3QgY29udGludWF0aW9ucyA9IHt9OyAvLyBrZWVwIGNvbnRpbnVhdGlvbnMgZm9yIHN1Yi1sYW5ndWFnZXNcbiAgICBjb25zdCBlbWl0dGVyID0gbmV3IG9wdGlvbnMuX19lbWl0dGVyKG9wdGlvbnMpO1xuICAgIHByb2Nlc3NDb250aW51YXRpb25zKCk7XG4gICAgbGV0IG1vZGVCdWZmZXIgPSAnJztcbiAgICBsZXQgcmVsZXZhbmNlID0gMDtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIGxldCBpdGVyYXRpb25zID0gMDtcbiAgICBsZXQgcmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uID0gZmFsc2U7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKCFsYW5ndWFnZS5fX2VtaXRUb2tlbnMpIHtcbiAgICAgICAgdG9wLm1hdGNoZXIuY29uc2lkZXJBbGwoKTtcblxuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgaXRlcmF0aW9ucysrO1xuICAgICAgICAgIGlmIChyZXN1bWVTY2FuQXRTYW1lUG9zaXRpb24pIHtcbiAgICAgICAgICAgIC8vIG9ubHkgcmVnZXhlcyBub3QgbWF0Y2hlZCBwcmV2aW91c2x5IHdpbGwgbm93IGJlXG4gICAgICAgICAgICAvLyBjb25zaWRlcmVkIGZvciBhIHBvdGVudGlhbCBtYXRjaFxuICAgICAgICAgICAgcmVzdW1lU2NhbkF0U2FtZVBvc2l0aW9uID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvcC5tYXRjaGVyLmNvbnNpZGVyQWxsKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRvcC5tYXRjaGVyLmxhc3RJbmRleCA9IGluZGV4O1xuXG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0b3AubWF0Y2hlci5leGVjKGNvZGVUb0hpZ2hsaWdodCk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coXCJtYXRjaFwiLCBtYXRjaFswXSwgbWF0Y2gucnVsZSAmJiBtYXRjaC5ydWxlLmJlZ2luKVxuXG4gICAgICAgICAgaWYgKCFtYXRjaCkgYnJlYWs7XG5cbiAgICAgICAgICBjb25zdCBiZWZvcmVNYXRjaCA9IGNvZGVUb0hpZ2hsaWdodC5zdWJzdHJpbmcoaW5kZXgsIG1hdGNoLmluZGV4KTtcbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWRDb3VudCA9IHByb2Nlc3NMZXhlbWUoYmVmb3JlTWF0Y2gsIG1hdGNoKTtcbiAgICAgICAgICBpbmRleCA9IG1hdGNoLmluZGV4ICsgcHJvY2Vzc2VkQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgcHJvY2Vzc0xleGVtZShjb2RlVG9IaWdobGlnaHQuc3Vic3RyaW5nKGluZGV4KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYW5ndWFnZS5fX2VtaXRUb2tlbnMoY29kZVRvSGlnaGxpZ2h0LCBlbWl0dGVyKTtcbiAgICAgIH1cblxuICAgICAgZW1pdHRlci5maW5hbGl6ZSgpO1xuICAgICAgcmVzdWx0ID0gZW1pdHRlci50b0hUTUwoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlTmFtZSxcbiAgICAgICAgdmFsdWU6IHJlc3VsdCxcbiAgICAgICAgcmVsZXZhbmNlLFxuICAgICAgICBpbGxlZ2FsOiBmYWxzZSxcbiAgICAgICAgX2VtaXR0ZXI6IGVtaXR0ZXIsXG4gICAgICAgIF90b3A6IHRvcFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZSAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcygnSWxsZWdhbCcpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlTmFtZSxcbiAgICAgICAgICB2YWx1ZTogZXNjYXBlKGNvZGVUb0hpZ2hsaWdodCksXG4gICAgICAgICAgaWxsZWdhbDogdHJ1ZSxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgX2lsbGVnYWxCeToge1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UsXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGNvbnRleHQ6IGNvZGVUb0hpZ2hsaWdodC5zbGljZShpbmRleCAtIDEwMCwgaW5kZXggKyAxMDApLFxuICAgICAgICAgICAgbW9kZTogZXJyLm1vZGUsXG4gICAgICAgICAgICByZXN1bHRTb0ZhcjogcmVzdWx0XG4gICAgICAgICAgfSxcbiAgICAgICAgICBfZW1pdHRlcjogZW1pdHRlclxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChTQUZFX01PREUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsYW5ndWFnZTogbGFuZ3VhZ2VOYW1lLFxuICAgICAgICAgIHZhbHVlOiBlc2NhcGUoY29kZVRvSGlnaGxpZ2h0KSxcbiAgICAgICAgICBpbGxlZ2FsOiBmYWxzZSxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgZXJyb3JSYWlzZWQ6IGVycixcbiAgICAgICAgICBfZW1pdHRlcjogZW1pdHRlcixcbiAgICAgICAgICBfdG9wOiB0b3BcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJucyBhIHZhbGlkIGhpZ2hsaWdodCByZXN1bHQsIHdpdGhvdXQgYWN0dWFsbHkgZG9pbmcgYW55IGFjdHVhbCB3b3JrLFxuICAgKiBhdXRvIGhpZ2hsaWdodCBzdGFydHMgd2l0aCB0aGlzIGFuZCBpdCdzIHBvc3NpYmxlIGZvciBzbWFsbCBzbmlwcGV0cyB0aGF0XG4gICAqIGF1dG8tZGV0ZWN0aW9uIG1heSBub3QgZmluZCBhIGJldHRlciBtYXRjaFxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29kZVxuICAgKiBAcmV0dXJucyB7SGlnaGxpZ2h0UmVzdWx0fVxuICAgKi9cbiAgZnVuY3Rpb24ganVzdFRleHRIaWdobGlnaHRSZXN1bHQoY29kZSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHZhbHVlOiBlc2NhcGUoY29kZSksXG4gICAgICBpbGxlZ2FsOiBmYWxzZSxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIF90b3A6IFBMQUlOVEVYVF9MQU5HVUFHRSxcbiAgICAgIF9lbWl0dGVyOiBuZXcgb3B0aW9ucy5fX2VtaXR0ZXIob3B0aW9ucylcbiAgICB9O1xuICAgIHJlc3VsdC5fZW1pdHRlci5hZGRUZXh0KGNvZGUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgSGlnaGxpZ2h0aW5nIHdpdGggbGFuZ3VhZ2UgZGV0ZWN0aW9uLiBBY2NlcHRzIGEgc3RyaW5nIHdpdGggdGhlIGNvZGUgdG9cbiAgaGlnaGxpZ2h0LiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcblxuICAtIGxhbmd1YWdlIChkZXRlY3RlZCBsYW5ndWFnZSlcbiAgLSByZWxldmFuY2UgKGludClcbiAgLSB2YWx1ZSAoYW4gSFRNTCBzdHJpbmcgd2l0aCBoaWdobGlnaHRpbmcgbWFya3VwKVxuICAtIHNlY29uZEJlc3QgKG9iamVjdCB3aXRoIHRoZSBzYW1lIHN0cnVjdHVyZSBmb3Igc2Vjb25kLWJlc3QgaGV1cmlzdGljYWxseVxuICAgIGRldGVjdGVkIGxhbmd1YWdlLCBtYXkgYmUgYWJzZW50KVxuXG4gICAgQHBhcmFtIHtzdHJpbmd9IGNvZGVcbiAgICBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtsYW5ndWFnZVN1YnNldF1cbiAgICBAcmV0dXJucyB7QXV0b0hpZ2hsaWdodFJlc3VsdH1cbiAgKi9cbiAgZnVuY3Rpb24gaGlnaGxpZ2h0QXV0byhjb2RlLCBsYW5ndWFnZVN1YnNldCkge1xuICAgIGxhbmd1YWdlU3Vic2V0ID0gbGFuZ3VhZ2VTdWJzZXQgfHwgb3B0aW9ucy5sYW5ndWFnZXMgfHwgT2JqZWN0LmtleXMobGFuZ3VhZ2VzKTtcbiAgICBjb25zdCBwbGFpbnRleHQgPSBqdXN0VGV4dEhpZ2hsaWdodFJlc3VsdChjb2RlKTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBsYW5ndWFnZVN1YnNldC5maWx0ZXIoZ2V0TGFuZ3VhZ2UpLmZpbHRlcihhdXRvRGV0ZWN0aW9uKS5tYXAobmFtZSA9PlxuICAgICAgX2hpZ2hsaWdodChuYW1lLCBjb2RlLCBmYWxzZSlcbiAgICApO1xuICAgIHJlc3VsdHMudW5zaGlmdChwbGFpbnRleHQpOyAvLyBwbGFpbnRleHQgaXMgYWx3YXlzIGFuIG9wdGlvblxuXG4gICAgY29uc3Qgc29ydGVkID0gcmVzdWx0cy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAvLyBzb3J0IGJhc2Ugb24gcmVsZXZhbmNlXG4gICAgICBpZiAoYS5yZWxldmFuY2UgIT09IGIucmVsZXZhbmNlKSByZXR1cm4gYi5yZWxldmFuY2UgLSBhLnJlbGV2YW5jZTtcblxuICAgICAgLy8gYWx3YXlzIGF3YXJkIHRoZSB0aWUgdG8gdGhlIGJhc2UgbGFuZ3VhZ2VcbiAgICAgIC8vIGllIGlmIEMrKyBhbmQgQXJkdWlubyBhcmUgdGllZCwgaXQncyBtb3JlIGxpa2VseSB0byBiZSBDKytcbiAgICAgIGlmIChhLmxhbmd1YWdlICYmIGIubGFuZ3VhZ2UpIHtcbiAgICAgICAgaWYgKGdldExhbmd1YWdlKGEubGFuZ3VhZ2UpLnN1cGVyc2V0T2YgPT09IGIubGFuZ3VhZ2UpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChnZXRMYW5ndWFnZShiLmxhbmd1YWdlKS5zdXBlcnNldE9mID09PSBhLmxhbmd1YWdlKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSBzYXkgdGhleSBhcmUgZXF1YWwsIHdoaWNoIGhhcyB0aGUgZWZmZWN0IG9mIHNvcnRpbmcgb25cbiAgICAgIC8vIHJlbGV2YW5jZSB3aGlsZSBwcmVzZXJ2aW5nIHRoZSBvcmlnaW5hbCBvcmRlcmluZyAtIHdoaWNoIGlzIGhvdyB0aWVzXG4gICAgICAvLyBoYXZlIGhpc3RvcmljYWxseSBiZWVuIHNldHRsZWQsIGllIHRoZSBsYW5ndWFnZSB0aGF0IGNvbWVzIGZpcnN0IGFsd2F5c1xuICAgICAgLy8gd2lucyBpbiB0aGUgY2FzZSBvZiBhIHRpZVxuICAgICAgcmV0dXJuIDA7XG4gICAgfSk7XG5cbiAgICBjb25zdCBbYmVzdCwgc2Vjb25kQmVzdF0gPSBzb3J0ZWQ7XG5cbiAgICAvKiogQHR5cGUge0F1dG9IaWdobGlnaHRSZXN1bHR9ICovXG4gICAgY29uc3QgcmVzdWx0ID0gYmVzdDtcbiAgICByZXN1bHQuc2Vjb25kQmVzdCA9IHNlY29uZEJlc3Q7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBuZXcgY2xhc3MgbmFtZSBmb3IgYmxvY2sgZ2l2ZW4gdGhlIGxhbmd1YWdlIG5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2N1cnJlbnRMYW5nXVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3Jlc3VsdExhbmddXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVDbGFzc05hbWUoZWxlbWVudCwgY3VycmVudExhbmcsIHJlc3VsdExhbmcpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IChjdXJyZW50TGFuZyAmJiBhbGlhc2VzW2N1cnJlbnRMYW5nXSkgfHwgcmVzdWx0TGFuZztcblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhsanNcIik7XG4gICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGBsYW5ndWFnZS0ke2xhbmd1YWdlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIGEgRE9NIG5vZGUgY29udGFpbmluZyBjb2RlLlxuICAgKlxuICAgKiBAcGFyYW0ge0hpZ2hsaWdodGVkSFRNTEVsZW1lbnR9IGVsZW1lbnQgLSB0aGUgSFRNTCBlbGVtZW50IHRvIGhpZ2hsaWdodFxuICAqL1xuICBmdW5jdGlvbiBoaWdobGlnaHRFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAvKiogQHR5cGUgSFRNTEVsZW1lbnQgKi9cbiAgICBsZXQgbm9kZSA9IG51bGw7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBibG9ja0xhbmd1YWdlKGVsZW1lbnQpO1xuXG4gICAgaWYgKHNob3VsZE5vdEhpZ2hsaWdodChsYW5ndWFnZSkpIHJldHVybjtcblxuICAgIGZpcmUoXCJiZWZvcmU6aGlnaGxpZ2h0RWxlbWVudFwiLFxuICAgICAgeyBlbDogZWxlbWVudCwgbGFuZ3VhZ2UgfSk7XG5cbiAgICBpZiAoZWxlbWVudC5kYXRhc2V0LmhpZ2hsaWdodGVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIkVsZW1lbnQgcHJldmlvdXNseSBoaWdobGlnaHRlZC4gVG8gaGlnaGxpZ2h0IGFnYWluLCBmaXJzdCB1bnNldCBgZGF0YXNldC5oaWdobGlnaHRlZGAuXCIsIGVsZW1lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHdlIHNob3VsZCBiZSBhbGwgdGV4dCwgbm8gY2hpbGQgbm9kZXMgKHVuZXNjYXBlZCBIVE1MKSAtIHRoaXMgaXMgcG9zc2libHlcbiAgICAvLyBhbiBIVE1MIGluamVjdGlvbiBhdHRhY2sgLSBpdCdzIGxpa2VseSB0b28gbGF0ZSBpZiB0aGlzIGlzIGFscmVhZHkgaW5cbiAgICAvLyBwcm9kdWN0aW9uICh0aGUgY29kZSBoYXMgbGlrZWx5IGFscmVhZHkgZG9uZSBpdHMgZGFtYWdlIGJ5IHRoZSB0aW1lXG4gICAgLy8gd2UncmUgc2VlaW5nIGl0KS4uLiBidXQgd2UgeWVsbCBsb3VkbHkgYWJvdXQgdGhpcyBzbyB0aGF0IGhvcGVmdWxseSBpdCdzXG4gICAgLy8gbW9yZSBsaWtlbHkgdG8gYmUgY2F1Z2h0IGluIGRldmVsb3BtZW50IGJlZm9yZSBtYWtpbmcgaXQgdG8gcHJvZHVjdGlvblxuICAgIGlmIChlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICghb3B0aW9ucy5pZ25vcmVVbmVzY2FwZWRIVE1MKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIk9uZSBvZiB5b3VyIGNvZGUgYmxvY2tzIGluY2x1ZGVzIHVuZXNjYXBlZCBIVE1MLiBUaGlzIGlzIGEgcG90ZW50aWFsbHkgc2VyaW91cyBzZWN1cml0eSByaXNrLlwiKTtcbiAgICAgICAgY29uc29sZS53YXJuKFwiaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy93aWtpL3NlY3VyaXR5XCIpO1xuICAgICAgICBjb25zb2xlLndhcm4oXCJUaGUgZWxlbWVudCB3aXRoIHVuZXNjYXBlZCBIVE1MOlwiKTtcbiAgICAgICAgY29uc29sZS53YXJuKGVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMudGhyb3dVbmVzY2FwZWRIVE1MKSB7XG4gICAgICAgIGNvbnN0IGVyciA9IG5ldyBIVE1MSW5qZWN0aW9uRXJyb3IoXG4gICAgICAgICAgXCJPbmUgb2YgeW91ciBjb2RlIGJsb2NrcyBpbmNsdWRlcyB1bmVzY2FwZWQgSFRNTC5cIixcbiAgICAgICAgICBlbGVtZW50LmlubmVySFRNTFxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IGVsZW1lbnQ7XG4gICAgY29uc3QgdGV4dCA9IG5vZGUudGV4dENvbnRlbnQ7XG4gICAgY29uc3QgcmVzdWx0ID0gbGFuZ3VhZ2UgPyBoaWdobGlnaHQodGV4dCwgeyBsYW5ndWFnZSwgaWdub3JlSWxsZWdhbHM6IHRydWUgfSkgOiBoaWdobGlnaHRBdXRvKHRleHQpO1xuXG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSByZXN1bHQudmFsdWU7XG4gICAgZWxlbWVudC5kYXRhc2V0LmhpZ2hsaWdodGVkID0gXCJ5ZXNcIjtcbiAgICB1cGRhdGVDbGFzc05hbWUoZWxlbWVudCwgbGFuZ3VhZ2UsIHJlc3VsdC5sYW5ndWFnZSk7XG4gICAgZWxlbWVudC5yZXN1bHQgPSB7XG4gICAgICBsYW5ndWFnZTogcmVzdWx0Lmxhbmd1YWdlLFxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHdpdGggdmVyc2lvbiAxMS4wXG4gICAgICByZTogcmVzdWx0LnJlbGV2YW5jZSxcbiAgICAgIHJlbGV2YW5jZTogcmVzdWx0LnJlbGV2YW5jZVxuICAgIH07XG4gICAgaWYgKHJlc3VsdC5zZWNvbmRCZXN0KSB7XG4gICAgICBlbGVtZW50LnNlY29uZEJlc3QgPSB7XG4gICAgICAgIGxhbmd1YWdlOiByZXN1bHQuc2Vjb25kQmVzdC5sYW5ndWFnZSxcbiAgICAgICAgcmVsZXZhbmNlOiByZXN1bHQuc2Vjb25kQmVzdC5yZWxldmFuY2VcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZmlyZShcImFmdGVyOmhpZ2hsaWdodEVsZW1lbnRcIiwgeyBlbDogZWxlbWVudCwgcmVzdWx0LCB0ZXh0IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgaGlnaGxpZ2h0LmpzIGdsb2JhbCBvcHRpb25zIHdpdGggdGhlIHBhc3NlZCBvcHRpb25zXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxITEpTT3B0aW9ucz59IHVzZXJPcHRpb25zXG4gICAqL1xuICBmdW5jdGlvbiBjb25maWd1cmUodXNlck9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gaW5oZXJpdChvcHRpb25zLCB1c2VyT3B0aW9ucyk7XG4gIH1cblxuICAvLyBUT0RPOiByZW1vdmUgdjEyLCBkZXByZWNhdGVkXG4gIGNvbnN0IGluaXRIaWdobGlnaHRpbmcgPSAoKSA9PiB7XG4gICAgaGlnaGxpZ2h0QWxsKCk7XG4gICAgZGVwcmVjYXRlZChcIjEwLjYuMFwiLCBcImluaXRIaWdobGlnaHRpbmcoKSBkZXByZWNhdGVkLiAgVXNlIGhpZ2hsaWdodEFsbCgpIG5vdy5cIik7XG4gIH07XG5cbiAgLy8gVE9ETzogcmVtb3ZlIHYxMiwgZGVwcmVjYXRlZFxuICBmdW5jdGlvbiBpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkge1xuICAgIGhpZ2hsaWdodEFsbCgpO1xuICAgIGRlcHJlY2F0ZWQoXCIxMC42LjBcIiwgXCJpbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCkgZGVwcmVjYXRlZC4gIFVzZSBoaWdobGlnaHRBbGwoKSBub3cuXCIpO1xuICB9XG5cbiAgbGV0IHdhbnRzSGlnaGxpZ2h0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGF1dG8taGlnaGxpZ2h0cyBhbGwgcHJlPmNvZGUgZWxlbWVudHMgb24gdGhlIHBhZ2VcbiAgICovXG4gIGZ1bmN0aW9uIGhpZ2hsaWdodEFsbCgpIHtcbiAgICAvLyBpZiB3ZSBhcmUgY2FsbGVkIHRvbyBlYXJseSBpbiB0aGUgbG9hZGluZyBwcm9jZXNzXG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09IFwibG9hZGluZ1wiKSB7XG4gICAgICB3YW50c0hpZ2hsaWdodCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYmxvY2tzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChvcHRpb25zLmNzc1NlbGVjdG9yKTtcbiAgICBibG9ja3MuZm9yRWFjaChoaWdobGlnaHRFbGVtZW50KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGJvb3QoKSB7XG4gICAgLy8gaWYgYSBoaWdobGlnaHQgd2FzIHJlcXVlc3RlZCBiZWZvcmUgRE9NIHdhcyBsb2FkZWQsIGRvIG5vd1xuICAgIGlmICh3YW50c0hpZ2hsaWdodCkgaGlnaGxpZ2h0QWxsKCk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgd2UgYXJlIGluIHRoZSBicm93c2VyIGVudmlyb25tZW50XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYm9vdCwgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgbGFuZ3VhZ2UgZ3JhbW1hciBtb2R1bGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmd1YWdlTmFtZVxuICAgKiBAcGFyYW0ge0xhbmd1YWdlRm59IGxhbmd1YWdlRGVmaW5pdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gcmVnaXN0ZXJMYW5ndWFnZShsYW5ndWFnZU5hbWUsIGxhbmd1YWdlRGVmaW5pdGlvbikge1xuICAgIGxldCBsYW5nID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgbGFuZyA9IGxhbmd1YWdlRGVmaW5pdGlvbihobGpzKTtcbiAgICB9IGNhdGNoIChlcnJvciQxKSB7XG4gICAgICBlcnJvcihcIkxhbmd1YWdlIGRlZmluaXRpb24gZm9yICd7fScgY291bGQgbm90IGJlIHJlZ2lzdGVyZWQuXCIucmVwbGFjZShcInt9XCIsIGxhbmd1YWdlTmFtZSkpO1xuICAgICAgLy8gaGFyZCBvciBzb2Z0IGVycm9yXG4gICAgICBpZiAoIVNBRkVfTU9ERSkgeyB0aHJvdyBlcnJvciQxOyB9IGVsc2UgeyBlcnJvcihlcnJvciQxKTsgfVxuICAgICAgLy8gbGFuZ3VhZ2VzIHRoYXQgaGF2ZSBzZXJpb3VzIGVycm9ycyBhcmUgcmVwbGFjZWQgd2l0aCBlc3NlbnRpYWxseSBhXG4gICAgICAvLyBcInBsYWludGV4dFwiIHN0YW5kLWluIHNvIHRoYXQgdGhlIGNvZGUgYmxvY2tzIHdpbGwgc3RpbGwgZ2V0IG5vcm1hbFxuICAgICAgLy8gY3NzIGNsYXNzZXMgYXBwbGllZCB0byB0aGVtIC0gYW5kIG9uZSBiYWQgbGFuZ3VhZ2Ugd29uJ3QgYnJlYWsgdGhlXG4gICAgICAvLyBlbnRpcmUgaGlnaGxpZ2h0ZXJcbiAgICAgIGxhbmcgPSBQTEFJTlRFWFRfTEFOR1VBR0U7XG4gICAgfVxuICAgIC8vIGdpdmUgaXQgYSB0ZW1wb3JhcnkgbmFtZSBpZiBpdCBkb2Vzbid0IGhhdmUgb25lIGluIHRoZSBtZXRhLWRhdGFcbiAgICBpZiAoIWxhbmcubmFtZSkgbGFuZy5uYW1lID0gbGFuZ3VhZ2VOYW1lO1xuICAgIGxhbmd1YWdlc1tsYW5ndWFnZU5hbWVdID0gbGFuZztcbiAgICBsYW5nLnJhd0RlZmluaXRpb24gPSBsYW5ndWFnZURlZmluaXRpb24uYmluZChudWxsLCBobGpzKTtcblxuICAgIGlmIChsYW5nLmFsaWFzZXMpIHtcbiAgICAgIHJlZ2lzdGVyQWxpYXNlcyhsYW5nLmFsaWFzZXMsIHsgbGFuZ3VhZ2VOYW1lIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSBsYW5ndWFnZSBncmFtbWFyIG1vZHVsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VOYW1lXG4gICAqL1xuICBmdW5jdGlvbiB1bnJlZ2lzdGVyTGFuZ3VhZ2UobGFuZ3VhZ2VOYW1lKSB7XG4gICAgZGVsZXRlIGxhbmd1YWdlc1tsYW5ndWFnZU5hbWVdO1xuICAgIGZvciAoY29uc3QgYWxpYXMgb2YgT2JqZWN0LmtleXMoYWxpYXNlcykpIHtcbiAgICAgIGlmIChhbGlhc2VzW2FsaWFzXSA9PT0gbGFuZ3VhZ2VOYW1lKSB7XG4gICAgICAgIGRlbGV0ZSBhbGlhc2VzW2FsaWFzXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge3N0cmluZ1tdfSBMaXN0IG9mIGxhbmd1YWdlIGludGVybmFsIG5hbWVzXG4gICAqL1xuICBmdW5jdGlvbiBsaXN0TGFuZ3VhZ2VzKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhsYW5ndWFnZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMge0xhbmd1YWdlIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UobmFtZSkge1xuICAgIG5hbWUgPSAobmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gbGFuZ3VhZ2VzW25hbWVdIHx8IGxhbmd1YWdlc1thbGlhc2VzW25hbWVdXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gYWxpYXNMaXN0IC0gc2luZ2xlIGFsaWFzIG9yIGxpc3Qgb2YgYWxpYXNlc1xuICAgKiBAcGFyYW0ge3tsYW5ndWFnZU5hbWU6IHN0cmluZ319IG9wdHNcbiAgICovXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyQWxpYXNlcyhhbGlhc0xpc3QsIHsgbGFuZ3VhZ2VOYW1lIH0pIHtcbiAgICBpZiAodHlwZW9mIGFsaWFzTGlzdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGFsaWFzTGlzdCA9IFthbGlhc0xpc3RdO1xuICAgIH1cbiAgICBhbGlhc0xpc3QuZm9yRWFjaChhbGlhcyA9PiB7IGFsaWFzZXNbYWxpYXMudG9Mb3dlckNhc2UoKV0gPSBsYW5ndWFnZU5hbWU7IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBsYW5ndWFnZSBoYXMgYXV0by1kZXRlY3Rpb24gZW5hYmxlZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIG5hbWUgb2YgdGhlIGxhbmd1YWdlXG4gICAqL1xuICBmdW5jdGlvbiBhdXRvRGV0ZWN0aW9uKG5hbWUpIHtcbiAgICBjb25zdCBsYW5nID0gZ2V0TGFuZ3VhZ2UobmFtZSk7XG4gICAgcmV0dXJuIGxhbmcgJiYgIWxhbmcuZGlzYWJsZUF1dG9kZXRlY3Q7XG4gIH1cblxuICAvKipcbiAgICogVXBncmFkZXMgdGhlIG9sZCBoaWdobGlnaHRCbG9jayBwbHVnaW5zIHRvIHRoZSBuZXdcbiAgICogaGlnaGxpZ2h0RWxlbWVudCBBUElcbiAgICogQHBhcmFtIHtITEpTUGx1Z2lufSBwbHVnaW5cbiAgICovXG4gIGZ1bmN0aW9uIHVwZ3JhZGVQbHVnaW5BUEkocGx1Z2luKSB7XG4gICAgLy8gVE9ETzogcmVtb3ZlIHdpdGggdjEyXG4gICAgaWYgKHBsdWdpbltcImJlZm9yZTpoaWdobGlnaHRCbG9ja1wiXSAmJiAhcGx1Z2luW1wiYmVmb3JlOmhpZ2hsaWdodEVsZW1lbnRcIl0pIHtcbiAgICAgIHBsdWdpbltcImJlZm9yZTpoaWdobGlnaHRFbGVtZW50XCJdID0gKGRhdGEpID0+IHtcbiAgICAgICAgcGx1Z2luW1wiYmVmb3JlOmhpZ2hsaWdodEJsb2NrXCJdKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oeyBibG9jazogZGF0YS5lbCB9LCBkYXRhKVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHBsdWdpbltcImFmdGVyOmhpZ2hsaWdodEJsb2NrXCJdICYmICFwbHVnaW5bXCJhZnRlcjpoaWdobGlnaHRFbGVtZW50XCJdKSB7XG4gICAgICBwbHVnaW5bXCJhZnRlcjpoaWdobGlnaHRFbGVtZW50XCJdID0gKGRhdGEpID0+IHtcbiAgICAgICAgcGx1Z2luW1wiYWZ0ZXI6aGlnaGxpZ2h0QmxvY2tcIl0oXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7IGJsb2NrOiBkYXRhLmVsIH0sIGRhdGEpXG4gICAgICAgICk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0hMSlNQbHVnaW59IHBsdWdpblxuICAgKi9cbiAgZnVuY3Rpb24gYWRkUGx1Z2luKHBsdWdpbikge1xuICAgIHVwZ3JhZGVQbHVnaW5BUEkocGx1Z2luKTtcbiAgICBwbHVnaW5zLnB1c2gocGx1Z2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0hMSlNQbHVnaW59IHBsdWdpblxuICAgKi9cbiAgZnVuY3Rpb24gcmVtb3ZlUGx1Z2luKHBsdWdpbikge1xuICAgIGNvbnN0IGluZGV4ID0gcGx1Z2lucy5pbmRleE9mKHBsdWdpbik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgcGx1Z2lucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1BsdWdpbkV2ZW50fSBldmVudFxuICAgKiBAcGFyYW0ge2FueX0gYXJnc1xuICAgKi9cbiAgZnVuY3Rpb24gZmlyZShldmVudCwgYXJncykge1xuICAgIGNvbnN0IGNiID0gZXZlbnQ7XG4gICAgcGx1Z2lucy5mb3JFYWNoKGZ1bmN0aW9uKHBsdWdpbikge1xuICAgICAgaWYgKHBsdWdpbltjYl0pIHtcbiAgICAgICAgcGx1Z2luW2NiXShhcmdzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBERVBSRUNBVEVEXG4gICAqIEBwYXJhbSB7SGlnaGxpZ2h0ZWRIVE1MRWxlbWVudH0gZWxcbiAgICovXG4gIGZ1bmN0aW9uIGRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrKGVsKSB7XG4gICAgZGVwcmVjYXRlZChcIjEwLjcuMFwiLCBcImhpZ2hsaWdodEJsb2NrIHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiB2MTIuMFwiKTtcbiAgICBkZXByZWNhdGVkKFwiMTAuNy4wXCIsIFwiUGxlYXNlIHVzZSBoaWdobGlnaHRFbGVtZW50IG5vdy5cIik7XG5cbiAgICByZXR1cm4gaGlnaGxpZ2h0RWxlbWVudChlbCk7XG4gIH1cblxuICAvKiBJbnRlcmZhY2UgZGVmaW5pdGlvbiAqL1xuICBPYmplY3QuYXNzaWduKGhsanMsIHtcbiAgICBoaWdobGlnaHQsXG4gICAgaGlnaGxpZ2h0QXV0byxcbiAgICBoaWdobGlnaHRBbGwsXG4gICAgaGlnaGxpZ2h0RWxlbWVudCxcbiAgICAvLyBUT0RPOiBSZW1vdmUgd2l0aCB2MTIgQVBJXG4gICAgaGlnaGxpZ2h0QmxvY2s6IGRlcHJlY2F0ZUhpZ2hsaWdodEJsb2NrLFxuICAgIGNvbmZpZ3VyZSxcbiAgICBpbml0SGlnaGxpZ2h0aW5nLFxuICAgIGluaXRIaWdobGlnaHRpbmdPbkxvYWQsXG4gICAgcmVnaXN0ZXJMYW5ndWFnZSxcbiAgICB1bnJlZ2lzdGVyTGFuZ3VhZ2UsXG4gICAgbGlzdExhbmd1YWdlcyxcbiAgICBnZXRMYW5ndWFnZSxcbiAgICByZWdpc3RlckFsaWFzZXMsXG4gICAgYXV0b0RldGVjdGlvbixcbiAgICBpbmhlcml0LFxuICAgIGFkZFBsdWdpbixcbiAgICByZW1vdmVQbHVnaW5cbiAgfSk7XG5cbiAgaGxqcy5kZWJ1Z01vZGUgPSBmdW5jdGlvbigpIHsgU0FGRV9NT0RFID0gZmFsc2U7IH07XG4gIGhsanMuc2FmZU1vZGUgPSBmdW5jdGlvbigpIHsgU0FGRV9NT0RFID0gdHJ1ZTsgfTtcbiAgaGxqcy52ZXJzaW9uU3RyaW5nID0gdmVyc2lvbjtcblxuICBobGpzLnJlZ2V4ID0ge1xuICAgIGNvbmNhdDogY29uY2F0LFxuICAgIGxvb2thaGVhZDogbG9va2FoZWFkLFxuICAgIGVpdGhlcjogZWl0aGVyLFxuICAgIG9wdGlvbmFsOiBvcHRpb25hbCxcbiAgICBhbnlOdW1iZXJPZlRpbWVzOiBhbnlOdW1iZXJPZlRpbWVzXG4gIH07XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gTU9ERVMpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgaWYgKHR5cGVvZiBNT0RFU1trZXldID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBkZWVwRnJlZXplKE1PREVTW2tleV0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIG1lcmdlIGFsbCB0aGUgbW9kZXMvcmVnZXhlcyBpbnRvIG91ciBtYWluIG9iamVjdFxuICBPYmplY3QuYXNzaWduKGhsanMsIE1PREVTKTtcblxuICByZXR1cm4gaGxqcztcbn07XG5cbi8vIE90aGVyIG5hbWVzIGZvciB0aGUgdmFyaWFibGUgbWF5IGJyZWFrIGJ1aWxkIHNjcmlwdFxuY29uc3QgaGlnaGxpZ2h0ID0gSExKUyh7fSk7XG5cbi8vIHJldHVybnMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGhpZ2hsaWdodGVyIHRvIGJlIHVzZWQgZm9yIGV4dGVuc2lvbnNcbi8vIGNoZWNrIGh0dHBzOi8vZ2l0aHViLmNvbS93b29vcm0vbG93bGlnaHQvaXNzdWVzLzQ3XG5oaWdobGlnaHQubmV3SW5zdGFuY2UgPSAoKSA9PiBITEpTKHt9KTtcblxubW9kdWxlLmV4cG9ydHMgPSBoaWdobGlnaHQ7XG5oaWdobGlnaHQuSGlnaGxpZ2h0SlMgPSBoaWdobGlnaHQ7XG5oaWdobGlnaHQuZGVmYXVsdCA9IGhpZ2hsaWdodDtcbiIsICIvKlxuTGFuZ3VhZ2U6IDFDOkVudGVycHJpc2VcbkF1dGhvcjogU3RhbmlzbGF2IEJlbG92IDxzdGJlbG92QGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBidWlsdC1pbiBsYW5ndWFnZSAxQzpFbnRlcnByaXNlICh2NywgdjgpXG5DYXRlZ29yeTogZW50ZXJwcmlzZVxuKi9cblxuZnVuY3Rpb24gXzFjKGhsanMpIHtcbiAgLy8gXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM4XHUwNDM5IFx1MDQzRlx1MDQzMFx1MDQ0Mlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRCBcdTA0MzRcdTA0M0JcdTA0NEYgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzOFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzMlxuICBjb25zdCBVTkRFUlNDT1JFX0lERU5UX1JFID0gJ1tBLVphLXpcdTA0MTAtXHUwNDJGXHUwNDMwLVx1MDQ0Rlx1MDQ1MVx1MDQwMV9dW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXzAtOV0rJztcblxuICAvLyB2NyBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzMCwgXHUwNDNFXHUwNDQyXHUwNDQxXHUwNDQzXHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRFXHUwNDQ5XHUwNDM4XHUwNDM1IFx1MDQzMiB2OCA9PT4ga2V5d29yZFxuICBjb25zdCB2N19rZXl3b3JkcyA9XG4gICdcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0MzUgJztcblxuICAvLyB2OCBcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDMwID09PiBrZXl3b3JkXG4gIGNvbnN0IHY4X2tleXdvcmRzID1cbiAgJ1x1MDQzMlx1MDQzRVx1MDQzN1x1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MiBcdTA0MzJcdTA0NEJcdTA0MzdcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDMyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQzNFx1MDQzQlx1MDQ0RiBcdTA0MzVcdTA0NDFcdTA0M0JcdTA0MzggXHUwNDM4IFx1MDQzOFx1MDQzNyBcdTA0MzhcdTA0M0JcdTA0MzggXHUwNDM4XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1IFx1MDQzOFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzNVx1MDQ0MVx1MDQzQlx1MDQzOCBcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNBXHUwNDMwXHUwNDM2XHUwNDM0XHUwNDNFXHUwNDMzXHUwNDNFIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQzQlx1MDQzOCAnXG4gICsgJ1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQzRVx1MDQzRlx1MDQ0Qlx1MDQ0Mlx1MDQzQVx1MDQzOCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDZcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDM1IFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzOSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDIFx1MDQzRlx1MDQzRSBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNGXHUwNDRCXHUwNDQyXHUwNDNBXHUwNDMwIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0JcdTA0MzZcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDM0XHUwNDMwIFx1MDQ0Nlx1MDQzOFx1MDQzQVx1MDQzQiBcdTA0NERcdTA0M0FcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NDIgJztcblxuICAvLyBrZXl3b3JkIDogXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzMFxuICBjb25zdCBLRVlXT1JEID0gdjdfa2V5d29yZHMgKyB2OF9rZXl3b3JkcztcblxuICAvLyB2NyBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDRCLCBcdTA0M0VcdTA0NDJcdTA0NDFcdTA0NDNcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NEVcdTA0NDlcdTA0MzhcdTA0MzUgXHUwNDMyIHY4ID09PiBtZXRhLWtleXdvcmRcbiAgY29uc3QgdjdfbWV0YV9rZXl3b3JkcyA9XG4gICdcdTA0MzdcdTA0MzBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgJztcblxuICAvLyB2OCBcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDMwIFx1MDQzMiBcdTA0MzhcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQwXHUwNDMwLCBcdTA0MzRcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0MzBcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDM4XHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4LCBcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDUgPT0+IG1ldGEta2V5d29yZFxuICBjb25zdCB2OF9tZXRhX2tleXdvcmRzID1cbiAgJ1x1MDQzMlx1MDQzNVx1MDQzMVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0MzJcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M0UgXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDNDXHUwNDNFXHUwNDMxXHUwNDM4XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyIFx1MDQzQ1x1MDQzRVx1MDQzMVx1MDQzOFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MCAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDNFXHUwNDMxXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRDIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNCAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzQlx1MDQzNSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDAgXHUwNDQyXHUwNDNFXHUwNDNCXHUwNDQxXHUwNDQyXHUwNDRCXHUwNDM5XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0Mlx1MDQzRVx1MDQzQlx1MDQ0MVx1MDQ0Mlx1MDQ0Qlx1MDQzOVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQ0Rlx1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0NDJcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDIgJztcblxuICAvLyBtZXRhLWtleXdvcmQgOiBcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDMwIFx1MDQzMiBcdTA0MzhcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQwXHUwNDMwLCBcdTA0MzRcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0MzBcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDM4XHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4LCBcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDVcbiAgY29uc3QgTUVUQUtFWVdPUkQgPSB2N19tZXRhX2tleXdvcmRzICsgdjhfbWV0YV9rZXl3b3JkcztcblxuICAvLyB2NyBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDRCID09PiBidWlsdF9pblxuICBjb25zdCB2N19zeXN0ZW1fY29uc3RhbnRzID1cbiAgJ1x1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0NiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0EgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDQzXHUwNDNCXHUwNDRGXHUwNDQ2XHUwNDM4XHUwNDM4ICc7XG5cbiAgLy8gdjcgXHUwNDQzXHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQ0QiBcdTA0MzNcdTA0M0JcdTA0M0VcdTA0MzFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0UgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0M0VcdTA0NDJcdTA0NDFcdTA0NDNcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NEVcdTA0NDlcdTA0MzhcdTA0MzUgXHUwNDMyIHY4ID09PiBidWlsdF9pblxuICBjb25zdCB2N19nbG9iYWxfY29udGV4dF9tZXRob2RzID1cbiAgJ2Fuc2l0b29lbSBvZW10b2Fuc2kgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDNFIFx1MDQzMlx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzQgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiAnXG4gICsgJ1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQzRVx1MDQzNCBcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDYgXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFIFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDM3XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzOFx1MDQzMSBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0MzRcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzMFx1MDQzMVx1MDQzOCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0MzFcdTA0MzggXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NEZcdTA0NDZcdTA0MzAgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXHUwNDNCXHUwNDNFXHUwNDMzIFx1MDQzQlx1MDQzRVx1MDQzMzEwIFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzRVx1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQzRSBcdTA0M0RcdTA0MzBcdTA0MzdcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDM3XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyIFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzOFx1MDQzNCAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0MiBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDMxXHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzMCBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDNBXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0Nlx1MDQzMCAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzRcdTA0M0RcdTA0NEZcdTA0MzNcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM0XHUwNDNEXHUwNDRGXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4IFx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzMCBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0VcdTA0MzZcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyICdcbiAgKyAnXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Rlx1MDQzN1x1MDQ0Qlx1MDQzQSBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0M0FcdTA0M0RcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNEXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0QyBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0RcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0ZcdTA0M0UgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzN1x1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCAnXG4gICsgJ1x1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0MyBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzVcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDNGXHUwNDNFIFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQ0OFx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzRCBcdTA0NDhcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0QgJztcblxuICAvLyB2OCBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0NEIgXHUwNDMzXHUwNDNCXHUwNDNFXHUwNDMxXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMCA9PT4gYnVpbHRfaW5cbiAgY29uc3QgdjhfZ2xvYmFsX2NvbnRleHRfbWV0aG9kcyA9XG4gICdhY29zIGFzaW4gYXRhbiBiYXNlNjRcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgYmFzZTY0XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDMwIGNvcyBleHAgbG9nIGxvZzEwIHBvdyBzaW4gc3FydCB0YW4geG1sXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IHhtbFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMCAnXG4gICsgJ3htbFx1MDQ0Mlx1MDQzOFx1MDQzRiB4bWxcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0NDcgXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDNBXHUwNDNEXHUwNDNFIFx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0VcdTA0M0ZcdTA0MzBcdTA0NDFcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMxXHUwNDQzXHUwNDNCXHUwNDM1XHUwNDMyXHUwNDNFIFx1MDQzMlx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0MyBcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgJ1xuICArICdcdTA0MzJcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDMyXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFIFx1MDQzMlx1MDQzRVx1MDQzN1x1MDQzQ1x1MDQzRVx1MDQzNlx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhtbCBcdTA0MzJcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDEgXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0MzJcdTA0NEJcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJ1xuICArICdcdTA0MzJcdTA0NEJcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDMwIFx1MDQzMlx1MDQ0Qlx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0MzNcdTA0M0VcdTA0MzQgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NEMgXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDRDXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwICdcbiAgKyAnXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDRDXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4IFx1MDQzNFx1MDQzRVx1MDQzMVx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0NiBcdTA0MzdcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0MzRcdTA0M0JcdTA0NEZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM3XHUwNDMwXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0M1x1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQzN1x1MDQzMFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQ0RVx1MDQ0RVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MyBcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0FcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDQyXHUwNDRDanNvbiBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0NDJcdTA0NEN4bWwgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDQzanNvbiBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJ1xuICArICdcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzIgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NDMgXHUwNDM3XHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRFICdcbiAgKyAnXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0MCBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDNFIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQzN1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOFx1MDQzMlx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0MCBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgJ1xuICArICdcdTA0MzhcdTA0Mzd4bWxcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzAgXHUwNDM4XHUwNDNDXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDQyXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eGR0byBcdTA0MzhcdTA0M0NcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0NENcdTA0NEVcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzUgJ1xuICArICdcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzFcdTA0MzhcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDNcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzAgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDQzICdcbiAgKyAnXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNCXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzNFx1MDQzRFx1MDQ0RiBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0FcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDNDXHUwNDM1XHUwNDQxXHUwNDRGXHUwNDQ2XHUwNDMwIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0QiAnXG4gICsgJ1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0NDdcdTA0MzBcdTA0NDFcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDNEXHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDM4IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNBXHUwNDM4IFx1MDQzQlx1MDQzNVx1MDQzMiBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDEgXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Rlx1MDQ0NiBcdTA0M0NcdTA0MzhcdTA0M0QgXHUwNDNDXHUwNDM4XHUwNDNEXHUwNDQzXHUwNDQyXHUwNDMwIFx1MDQzQ1x1MDQzRVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzggJ1xuICArICdcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0M0RcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0NEJ4bWwgXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDNFXHUwNDNBXHUwNDNEXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDM1IFx1MDQzRFx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzRFx1MDQzMFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzBcdTA0M0MgXHUwNDNEXHUwNDMwXHUwNDM5XHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQ0RiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDRGXHUwNDQ2XHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzRVx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQ0M1x1MDQ0Mlx1MDQ0QiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0M0JcdTA0M0VcdTA0M0RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0MFx1MDQzNVx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiAnXG4gICsgJ1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzNVx1MDQzOSBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzggXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDdcdTA0MzVcdTA0MzNcdTA0M0VcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgJ1xuICArICdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzhcdTA0MzdcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRFIFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzRVx1MDQzMiBcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDNcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzVcdTA0MzlcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NEIgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM1XHUwNDM5ICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQzRFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzMCBcdTA0M0RcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDVcdTA0M0VcdTA0MzRcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCICdcbiAgKyAnXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRFx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDAgXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxIFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0NDNcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0NDBcdTA0NEJcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRVx1MDQzQVx1MDQ0MCBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOCAnXG4gICsgJ1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQzN1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzhcdTA0M0FcdTA0M0VcdTA0MzZcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDQzIFx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0MyBcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NENcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NDNcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0UgJ1xuICArICdcdTA0M0VcdTA0NDJcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDZcdTA0MzhcdTA0NEUgXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM5XHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQiBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0NEVcdTA0NEVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDMgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzhcdTA0M0FcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzVcdTA0M0RcdTA0MzdcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM2XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzOFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzNFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0NEJcdTA0NDFcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNBXHUwNDM4ICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEVcdTA0M0VcdTA0MzFcdTA0M0VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M0FcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM1IFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDY29tXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q3htbFx1MDQ0Mlx1MDQzOFx1MDQzRiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQzXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDNFXHUwNDMyIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzRlx1MDQ0Rlx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQ0MVx1MDQ0Qlx1MDQzRlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0M0VcdTA0MzZcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQ0Qlx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQ0Qlx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0M0FcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzNFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQ0RFx1MDQzQVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0MzFcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDM4XHUwNDM5XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDNBXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQ0MVx1MDQzNVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0MzBcdTA0NDFcdTA0M0FcdTA0NDNcdTA0MzJcdTA0NDFcdTA0MzVcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0NEJcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDQzXHUwNDMyXHUwNDQxXHUwNDM1XHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQ0MyAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzNcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0NDNcdTA0NEVcdTA0NDFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0NDMgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDQzXHUwNDRFXHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNBXHUwNDQzXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzhcdTA0MzlcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDIgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NDlcdTA0NDNcdTA0NEVcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NDMgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDNBXHUwNDNEXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzRVx1MDQ0Mlx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQ0M1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0VcdTA0NDJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzFcdTA0MzVcdTA0MzdcdTA0M0VcdTA0M0ZcdTA0MzBcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0MzlcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNEXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDMzXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQxXHUwNDQxXHUwNDRCXHUwNDNCXHUwNDNFXHUwNDNBIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQ0M1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzggJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNGXHUwNDQzXHUwNDQyXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQ0Qlx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzQVx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRFICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDMwXHUwNDM4XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMG9kYXRhIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQ0M1x1MDQ0MFx1MDQ0M1x1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0MyBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NDNcdTA0NEVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0NEUgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NDNcdTA0NEVcdTA0M0VcdTA0M0ZcdTA0NDZcdTA0MzhcdTA0NEVcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzVcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzUgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDNGXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDRCIFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMiBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzAgJ1xuICArICdcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0Qlx1MDQ0Mlx1MDQzOFx1MDQ0Rlx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDQzXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzOFx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQyBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0JcdTA0MzZcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NEJcdTA0MzdcdTA0M0VcdTA0MzIgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDanNvbiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NEN4bWwgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDQzanNvbiBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzlcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDM0XHUwNDNCXHUwNDRGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQiBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0VcdTA0NDBcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzhcdTA0M0NcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDQwXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNEXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQzRFx1MDQzNFx1MDQzMCBcdTA0NDFcdTA0MzhcdTA0MzNcdTA0M0RcdTA0MzBcdTA0M0IgXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCIFx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0JcdTA0MzVcdTA0NDJcdTA0M0RcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggJ1xuICArICdcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDQzXHUwNDQ0XHUwNDM1XHUwNDQwXHUwNDRCXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzMyBcdTA0NDFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0NDRcdTA0MzBcdTA0MzFcdTA0NDBcdTA0MzhcdTA0M0FcdTA0NDN4ZHRvIFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQzQiBcdTA0NDFcdTA0M0VcdTA0M0FcdTA0NDBcdTA0M0JcdTA0M0YgXHUwNDQxXHUwNDNFXHUwNDNBXHUwNDQwXHUwNDNGIFx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQ0Mlx1MDQ0QyAnXG4gICsgJ1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0NDFcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNCBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzAgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDMwXHUwNDNEXHUwNDQ3XHUwNDM4XHUwNDMyXHUwNDMwXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRGXHUwNDNEXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzN1x1MDQzMFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0RcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM4XHUwNDNEXHUwNDMwXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRGXHUwNDQxICdcbiAgKyAnXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDMwIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0QiBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDMgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQ0QyBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDFcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NEMgXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDQ1XHUwNDNFXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0OFx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzRCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDMwXHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDMwXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzMFx1MDQ0Rlx1MDQ0M1x1MDQzRFx1MDQzOFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzBcdTA0NEZcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0NcdTA0MzhcdTA0M0JcdTA0M0JcdTA0MzhcdTA0NDFcdTA0MzVcdTA0M0FcdTA0NDNcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzhcdTA0MzlcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQ4XHUwNDQwXHUwNDM4XHUwNDQ0XHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCAnXG4gICsgJ1x1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0M1x1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDNcdTA0NDlcdTA0MzhcdTA0MzlcdTA0NEZcdTA0MzdcdTA0NEJcdTA0M0EgXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQzXHUwNDQ5XHUwNDM4XHUwNDM5XHUwNDRGXHUwNDM3XHUwNDRCXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0NDcgXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDMwIFx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzMyBcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgJ1xuICArICdcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzhcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzAgXHUwNDQzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDRCIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0QiBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNFXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMxXHUwNDM1XHUwNDM3XHUwNDNFXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0M1x1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzRVx1MDQzMiBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0NEVcdTA0NEVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDMgJ1xuICArICdcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEZcdTA0MzdcdTA0MzBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDhcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0M0ZcdTA0NEZcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0MzAgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDQxXHUwNDRCXHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQzRVx1MDQzNlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQzOVx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0M1x1MDQ0RVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0M1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0NcdTA0M0VcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDM3XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzNVx1MDQzN1x1MDQzRVx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMCAnXG4gICsgJ1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzRVx1MDQzRFx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRVx1MDQzRlx1MDQ0Nlx1MDQzOFx1MDQzOVx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMCBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzhcdTA0M0JcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzlcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgJ1xuICArICdcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0NDNcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0MzVcdTA0MzkgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM1XHUwNDM5ICdcbiAgKyAnXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDQxXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDNDXHUwNDM4IFx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzBcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0MzBvZGF0YSBcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NENcdTA0NDdcdTA0MzBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0NEZcdTA0NDFcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEIgXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwICdcbiAgKyAnXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyIFx1MDQ0Nlx1MDQzNVx1MDQzQiBcdTA0NDdcdTA0MzBcdTA0NDEgXHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDRGXHUwNDQxIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzRlx1MDQzRVx1MDQ0Rlx1MDQ0MVx1MDQ0MVx1MDQzNVx1MDQzMFx1MDQzRFx1MDQ0MVx1MDQzMCBcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0UgXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDXHUwNDRFIFx1MDQ0RFx1MDQ0Mlx1MDQzRVx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMCAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0MzNcdTA0M0JcdTA0M0VcdTA0MzFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0UgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwID09PiBidWlsdF9pblxuICBjb25zdCB2OF9nbG9iYWxfY29udGV4dF9wcm9wZXJ0eSA9XG4gICd3c1x1MDQ0MVx1MDQ0MVx1MDQ0Qlx1MDQzQlx1MDQzQVx1MDQzOCBcdTA0MzFcdTA0MzhcdTA0MzFcdTA0M0JcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0MzBcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0VcdTA0M0EgXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDMwXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMVx1MDQzOFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQzNVx1MDQzOSBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0NEIgJ1xuICArICdcdTA0MzJcdTA0M0RcdTA0MzVcdTA0NDhcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDM4IFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQ0QiBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0ZcdTA0M0FcdTA0MzggXHUwNDMzXHUwNDNCXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDRCXHUwNDM5XHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxIFx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzMlx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0QyAnXG4gICsgJ1x1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzVcdTA0NDNcdTA0MzJcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzOCBcdTA0MzhcdTA0M0RcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDM5XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0QiBcdTA0M0FcdTA0NDBcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0VcdTA0NDJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0FcdTA0M0JcdTA0MzBcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDRCXHUwNDQ1XHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDRCIFx1MDQzRlx1MDQzMFx1MDQzRFx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzRVx1MDQ0MSBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDQxXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDQxXHUwNDMwIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0NEJcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDQ1XHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNBICdcbiAgKyAnXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCXHUwNDNFXHUwNDMxXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQ0Qlx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzlcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNFXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMxXHUwNDMwXHUwNDM3XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzNFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M0FcdTA0MzBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0M0EgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDdcdTA0MzBcdTA0NEZcdTA0MzRcdTA0MzBcdTA0NDJcdTA0MzAgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzMVx1MDQ0M1x1MDQ0NVx1MDQzM1x1MDQzMFx1MDQzQlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0MVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDB4ZHRvIFx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzOCBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzBcdTA0MzNcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0M0VcdTA0M0RcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQzQ1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQzNVx1MDQzNFx1MDQzOFx1MDQzMCAnXG4gICsgJ1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzQ1x1MDQ0QiBcdTA0NDFcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0NEIgXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDM1XHUwNDQ0XHUwNDNFXHUwNDNEXHUwNDM4XHUwNDM4IFx1MDQ0NFx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOFx1MDQzQVx1MDQzMHhkdG8gXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM4IFx1MDQ0NFx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzNVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0EgJ1xuICArICdcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDIFx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQ0NVx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQSBcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0M0FcdTA0MzhcdTA0NDVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzBcdTA0M0NcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzhcdTA0NDVcdTA0NDFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzIgJ1xuICArICdcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0JcdTA0MzhcdTA0NDlcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0M0FcdTA0MzhcdTA0NDVcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0M0VcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBICc7XG5cbiAgLy8gYnVpbHRfaW4gOiBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDM4XHUwNDNCXHUwNDM4IFx1MDQzMVx1MDQzOFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NEIgKFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0QiwgXHUwNDNBXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDRCLCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzgpXG4gIGNvbnN0IEJVSUxUSU4gPVxuICB2N19zeXN0ZW1fY29uc3RhbnRzXG4gICsgdjdfZ2xvYmFsX2NvbnRleHRfbWV0aG9kcyArIHY4X2dsb2JhbF9jb250ZXh0X21ldGhvZHNcbiAgKyB2OF9nbG9iYWxfY29udGV4dF9wcm9wZXJ0eTtcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDRCIFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX3NldHNfb2ZfdmFsdWVzID1cbiAgJ3dlYlx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzMCB3aW5kb3dzXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQyXHUwNDMwIHdpbmRvd3NcdTA0NDhcdTA0NDBcdTA0MzhcdTA0NDRcdTA0NDJcdTA0NEIgXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDMwXHUwNDNBXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDNFXHUwNDNBIFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0RiBcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0M0JcdTA0NEIgXHUwNDQ2XHUwNDMyXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNCXHUwNDRGIFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQ0Qlx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0RiAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0M0RcdTA0NEJcdTA0MzUgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19pbnRlcmZhY2UgPVxuICAnXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM1XHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQ1IFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRFx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzNSBcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzkgJ1xuICArICdcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMyXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNFXHUwNDMyIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Qlx1MDQ0MVx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiAnXG4gICsgJ1x1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQ0M1x1MDQ0Mlx1MDQzQVx1MDQzMFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEYgJ1xuICArICdcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzVcdTA0MzlcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzUgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0NFx1MDQzQlx1MDQzMFx1MDQzNlx1MDQzQVx1MDQzMCBcdTA0MzJcdTA0M0JcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDNcdTA0MzdcdTA0NEJcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzQSBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0NDdcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0NEJcdTA0MzhcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NEIgXHUwNDM0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzNFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDJcdTA0MzBcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzBcdTA0M0JcdTA0M0NcdTA0MzVcdTA0MzZcdTA0MzRcdTA0NDNcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0NcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Qlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MFx1MDQ0M1x1MDQ0Mlx1MDQzQVx1MDQzOCAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQ0M1x1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzNVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQzMVx1MDQzOFx1MDQ0MFx1MDQzNlx1MDQzNVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MzhcdTA0NEZcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzUgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNFXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDNBXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDNGXHUwNDQzXHUwNDM3XHUwNDRCXHUwNDQwXHUwNDRDXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzMFx1MDQzRFx1MDQzNCBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0NDNcdTA0M0NcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzkgXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0VcdTA0NDBcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0MFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDBcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDM1ICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDMzXHUwNDM1XHUwNDNEXHUwNDM0XHUwNDM1XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzQSBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0M0FcdTA0MzhcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQxXHUwNDQzXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0Nlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQ0M1x1MDQzN1x1MDQ0Qlx1MDQ0MFx1MDQ0Q1x1MDQzQVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgJ1xuICArICdcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0M0FcdTA0MzBcdTA0MzdcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM4IFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQ0MVx1MDQ0Qlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQ0M1x1MDQzQlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCIFx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQ0Qlx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOCBcdTA0M0ZcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDNBXHUwNDMwXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDMwXHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzQVx1MDQzMFx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0Qlx1MDQzM1x1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0M0FcdTA0MzBcdTA0M0NcdTA0MzBcdTA0NDFcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzBcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRFx1MDQzRVx1MDQzRlx1MDQzQVx1MDQzOFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOFx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0M0ZcdTA0MzBcdTA0M0RcdTA0MzVcdTA0M0JcdTA0MzhcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0NEIgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNBXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzNVx1MDQzOVx1MDQzQVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQzNSBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzVcdTA0MzlcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0M0NcdTA0M0VcdTA0NDJcdTA0NDBcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDNcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0VcdTA0M0MgJ1xuICArICdcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggXHUwNDNGXHUwNDNFXHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDNBXHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM3XHUwNDNFXHUwNDNEXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzNVx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzOCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDRGXHUwNDMzXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDNFXHUwNDRGXHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzVcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0UgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMyXHUwNDRCXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMyXHUwNDRCXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzhcdTA0MzdcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMwXHUwNDNGXHUwNDM1XHUwNDQ3XHUwNDMwXHUwNDQyXHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzMFx1MDQzRFx1MDQzNFx1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0NcdTA0MzBcdTA0NDFcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0M0NcdTA0M0VcdTA0NDJcdTA0NDBcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0VcdTA0M0FcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDNBXHUwNDNEXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNBXHUwNDM4XHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDM3XHUwNDQwXHUwNDMwXHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMVx1MDQzNVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDBcdTA0MzBcdTA0MzdcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDZcdTA0MzUgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNBXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4ICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDMzXHUwNDNCXHUwNDMwXHUwNDM2XHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzNlx1MDQzOFx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzMCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0NDFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NDcgXHUwNDQxXHUwNDNBXHUwNDMyXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDNFXHUwNDM1XHUwNDMyXHUwNDRCXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM4XHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDMyXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDMwXHUwNDQ1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQzRVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzMFx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzOFx1MDQzMlx1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0MzBcdTA0NEZcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0MzBcdTA0M0RcdTA0MzQgXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNFXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxXHUwNDNFXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGIFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzQlx1MDQzQVx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0M0ZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzRcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDQ4XHUwNDNBXHUwNDMwXHUwNDNCXHUwNDRCXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzOFx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOVx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQ0Rlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzhcdTA0MzhcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNDXHUwNDMwXHUwNDQwXHUwNDNBXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQ0MFx1MDQzQVx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0VcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0MzNcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzhcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDRGXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDMwXHUwNDMzXHUwNDM1XHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzM1x1MDQzNVx1MDQzRFx1MDQzNFx1MDQ0Qlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzNcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQVx1MDQzOFx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0MzJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEIgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0MzJcdTA0NEZcdTA0MzdcdTA0MzhcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0MzNcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNDXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzNVx1MDQzQVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0VcdTA0M0RcdTA0NEJcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEIgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0OFx1MDQzQVx1MDQzMFx1MDQzQlx1MDQ0Qlx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiAnXG4gICsgJ1x1MDQ0NFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOFx1MDQ0Mlx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzNFx1MDQzMFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQ0QiBcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0M0FcdTA0M0RcdTA0M0VcdTA0M0ZcdTA0M0FcdTA0MzggXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDRCXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCIFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzMlx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQzNSBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzRcdTA0M0RcdTA0NEZcdTA0NDhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NEJcdTA0MzJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzggJ1xuICArICdcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM4XHUwNDNEXHUwNDMwXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDRCICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0FcdTA0M0JcdTA0MzBcdTA0MzRcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDNFXHUwNDMyID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfb2JqZWN0c19wcm9wZXJ0aWVzID1cbiAgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQzNFx1MDQzMlx1MDQzOFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQ0M1x1MDQ0NVx1MDQzM1x1MDQzMFx1MDQzQlx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzOCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDJcdTA0M0VcdTA0NDdcdTA0M0FcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NDBcdTA0NDhcdTA0NDBcdTA0NDNcdTA0NDJcdTA0MzBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQzMCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0ZcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDRCIFx1MDQzRVx1MDQzMVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzMCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2V4Y2hhbmdlX3BsYW5zID1cbiAgJ1x1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0NEJcdTA0MzlcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDQyXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0M1x1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzkgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfdGFidWxhcl9kb2N1bWVudCA9XG4gICdcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCIFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0VcdTA0NDJcdTA0M0RcdTA0M0VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDMzXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQzNVx1MDQzOVx1MDQzRlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQzOCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0NDNcdTA0NDBcdTA0NDFcdTA0M0VcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDQwXHUwNDM4XHUwNDQxXHUwNDQzXHUwNDNEXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzOFx1MDQzOFx1MDQ0Rlx1MDQ0N1x1MDQzNVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0NVx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzJcdTA0NEJcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDQxXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDRCICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQ0MVx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDFcdTA0M0NcdTA0MzVcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0MzdcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0Mlx1MDQzOCBcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDYgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfc2hlZHVsZXIgPVxuICAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOSBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19mb3JtYXR0ZWRfZG9jdW1lbnQgPVxuICAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3F1ZXJ5ID1cbiAgJ1x1MDQzRVx1MDQzMVx1MDQ0NVx1MDQzRVx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzhcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDIFx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3JlcG9ydF9idWlsZGVyID1cbiAgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0M0VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMiAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0MzAgXHUwNDQxIFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMFx1MDQzQ1x1MDQzOCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2ZpbGVzID1cbiAgJ1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzRlx1MDQzQVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQ0MyBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0QyBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19xdWVyeV9idWlsZGVyID1cbiAgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Rlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzcgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfZGF0YV9hbmFseXNpcyA9XG4gICdcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzAgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDNCXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzMFx1MDQzMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEJcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0NEJcdTA0NDVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQ2XHUwNDM4XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzMlx1MDQzRVx1MDQ0MFx1MDQzNVx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzQVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0FcdTA0MzhcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDNFXHUwNDQ2XHUwNDM4XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDNEXHUwNDNBXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNCXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzRFx1MDQzQVx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQzRFx1MDQzRVx1MDQzN1x1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0NcdTA0MzVcdTA0NDBcdTA0NEJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0NDFcdTA0MzVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDZcdTA0MzhcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDZcdTA0MzhcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0VcdTA0NDdcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDhcdTA0MzBcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzVcdTA0MzlcdTA0MzBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDQ4XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIHhtbCwganNvbiwgeHMsIGRvbSwgeGR0bywgd2ViLVx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzOFx1MDQ0MVx1MDQ0QiA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3htbF9qc29uX3hzX2RvbV94ZHRvX3dzID1cbiAgJ3dzXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0MnhwYXRoeHMgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCanNvbiBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4cyBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0NEJcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0JcdTA0Mzh4cyBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0MzB4ZHRvICdcbiAgKyAnXHUwNDM0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRGZG9tIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMHhzIFx1MDQzN1x1MDQzMFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0OFx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0QnhzIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOHhzICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4eHMgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDMweHMgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM4XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4eHMgXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEeHMgJ1xuICArICdcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0M0RcdTA0MzBcdTA0NDFcdTA0M0JcdTA0MzVcdTA0MzRcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0M0NcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0JcdTA0NENcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0MzNcdTA0M0V4cyBcdTA0M0RcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4bWwgXHUwNDNEXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDRCXHUwNDM1XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4eHMgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyeHMgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDMzXHUwNDNFeHMgJ1xuICArICdcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0NEJcdTA0M0VcdTA0NDJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDNcdTA0MzdcdTA0M0JcdTA0M0VcdTA0MzJkb20gXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBanNvbiBcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0NEZcdTA0MzJcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzVkb20gXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDRCeG1sIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhtbCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZqc29uICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDNEXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFeG1sIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0QnhzIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQzOHhtbCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBkb214cGF0aCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NDNcdTA0MzdcdTA0M0JcdTA0MzBkb20gXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDMweG1sIFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMHhtbCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyAnXG4gICsgJ1x1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Qmpzb24gXHUwNDREXHUwNDNBXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyanNvbiAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0MzAgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4IFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2RhdGFfY29tcG9zaXRpb25fc3lzdGVtID1cbiAgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzhcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQxXHUwNDNFXHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0MVx1MDQ0M1x1MDQ0MFx1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzFcdTA0NDNcdTA0NDVcdTA0MzNcdTA0MzBcdTA0M0JcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0M0FcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMyXHUwNDRCXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzRlx1MDQzRlx1MDQ0Qlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzdcdTA0MzBcdTA0MzNcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MzlcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzRVx1MDQzMVx1MDQzQlx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0M0FcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0MVx1MDQzMlx1MDQ0Rlx1MDQzN1x1MDQzOFx1MDQzRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0JcdTA0MzVcdTA0MzNcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NEJcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0NEJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOVx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDMyXHUwNDNFXHUwNDQxXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzdcdTA0MzhcdTA0NDZcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzVcdTA0NDFcdTA0NDNcdTA0NDBcdTA0NDFcdTA0M0VcdTA0MzJcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzNcdTA0NDBcdTA0NDNcdTA0M0ZcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQxXHUwNDQzXHUwNDQwXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDMyXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0M1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLSBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0MzAgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19lbWFpbCA9XG4gICdcdTA0MzJcdTA0MzBcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzMlx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzRFx1MDQzNWFzY2lpXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDJcdTA0M0VcdTA0M0FcdTA0M0VcdTA0M0JcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0NEIgJ1xuICArICdcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCIFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX2xvZ2Jvb2sgPVxuICAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM3XHUwNDMwXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzN1x1MDQzMFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOFx1MDQzNlx1MDQ0M1x1MDQ0MFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0NDNcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0M0RcdTA0NENcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDRGID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfY3J5cHRvZ3JhcGh5ID1cbiAgJ1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzQlx1MDQzOFx1MDQ0OVx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzQVx1MDQ0MFx1MDQzOFx1MDQzRlx1MDQ0Mlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQzOCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0FcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDJcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0MzggXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4ICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFpJUCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX3ppcCA9XG4gICdcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzJ6aXBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzUgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDM4XHUwNDRGemlwIFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzNFx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RnppcCBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzJcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0NDNcdTA0NDJcdTA0MzVcdTA0MzlcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0M0VcdTA0MzJ6aXAgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDNFXHUwNDM0XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDMyemlwICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQzXHUwNDQyXHUwNDM1XHUwNDM5emlwIFx1MDQ0M1x1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQzRFx1MDQ0Q1x1MDQ0MVx1MDQzNlx1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0RnppcCAnO1xuXG4gIC8vIHY4IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgLVxuICAvLyBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzAgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1LCBcdTA0MjRcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzUgXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGLCBcdTA0MTBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzUgXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1LFxuICAvLyBcdTA0MTRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzUgXHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGLCBcdTA0MTJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDNBXHUwNDM4LCBcdTA0MThcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDIsIFx1MDQyMFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzMCBcdTA0NDEgXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDNDXHUwNDM4IFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzQ1x1MDQzOCA9PT4gY2xhc3NcbiAgY29uc3Qgdjhfc3lzdGVtX2VudW1zX290aGVyID1cbiAgJ1x1MDQzN1x1MDQzMlx1MDQ0M1x1MDQzQVx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzNVx1MDQzRVx1MDQzRlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDVcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0FcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzUgXHUwNDNGXHUwNDNFXHUwNDM3XHUwNDM4XHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDMyXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzQVx1MDQzMVx1MDQzMFx1MDQzOVx1MDQ0Mlx1MDQzRVx1MDQzMiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQzXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNGXHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNGXHUwNDNFXHUwNDNBIFx1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0NFx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0VcdTA0MzRcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NDdcdTA0MzhcdTA0M0FcdTA0MzBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0NDVcdTA0NDNcdTA0MzJcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQzXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDNEXHUwNDRDXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM3XHUwNDMwXHUwNDQ5XHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGZnRwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgPT0+IGNsYXNzXG4gIGNvbnN0IHY4X3N5c3RlbV9lbnVtc19yZXF1ZXN0X3NjaGVtYSA9XG4gICdcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NEZcdTA0MzRcdTA0M0FcdTA0MzBcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDMwXHUwNDNDXHUwNDM4XHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzQVx1MDQzOFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MVx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDNcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEJcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0NEJcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDMwICc7XG5cbiAgLy8gdjggXHUwNDQxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQ0N1x1MDQzOFx1MDQ0MVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAtIFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMCBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfcHJvcGVydGllc19vZl9tZXRhZGF0YV9vYmplY3RzID1cbiAgJ2h0dHBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzQgXHUwNDMwXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQzMFx1MDQzMlx1MDQ0Mlx1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0N1x1MDQzOCBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NEZcdTA0MzdcdTA0NEJcdTA0M0FcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDM4XHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQwXHUwNDQ1XHUwNDM4XHUwNDM4IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzRlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNCXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM1XHUwNDM5IFx1MDQzOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNSAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzRlx1MDQzQlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzFcdTA0NEJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzNFx1MDQ0N1x1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzMCBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0NEZcdTA0MzVcdTA0M0NcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwICdcbiAgKyAnXHUwNDNEXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzRFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M0RcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0NDdcdTA0MzggXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDNFXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzJcdTA0MzhcdTA0MzRcdTA0MzBcdTA0NDVcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0MzggXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDQ3XHUwNDM4ICdcbiAgKyAnXHUwNDNFXHUwNDQxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNFXHUwNDMxXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMCBcdTA0M0VcdTA0NDFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDRCXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDMxXHUwNDM4XHUwNDM3XHUwNDNEXHUwNDM1XHUwNDQxXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDQxXHUwNDMwIFx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzMFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5ICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDMyXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM3XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDMwXHUwNDM1XHUwNDNDXHUwNDRCXHUwNDQ1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzOVx1MDQzRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzNSBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0RcdTA0MzBcdTA0MzRcdTA0M0JcdTA0MzVcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0MzAgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMwXHUwNDQzXHUwNDQyXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4XHUwNDNFXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDQwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyXHUwNDMwIFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQzOFx1MDQzN1x1MDQzOFx1MDQ0Mlx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0MzdcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzlcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0NDBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MzhcdTA0MzdcdTA0MzhcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzBcdTA0MzJcdTA0NDJcdTA0M0VcdTA0M0RcdTA0NDNcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4XHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQ1x1MDQzRVx1MDQzNFx1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOCAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQzOFx1MDQzRFx1MDQ0NVx1MDQ0MFx1MDQzRVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzMlx1MDQ0Qlx1MDQzN1x1MDQzRVx1MDQzMlx1MDQzRVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQzRlx1MDQzQlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0Qlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzOFx1MDQ0NVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzNVx1MDQzRFx1MDQ0MiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDFcdTA0MzVcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0VcdTA0MzIgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0MzJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzUgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDQxXHUwNDNFXHUwNDMyXHUwNDNDXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0MVx1MDQzRVx1MDQzMlx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQ0NFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzMCAnXG4gICsgJ1x1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQ0M1x1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzRlx1MDQzRVx1MDQ0M1x1MDQzQ1x1MDQzRVx1MDQzQlx1MDQ0N1x1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzhcdTA0M0FcdTA0M0VcdTA0MzRcdTA0M0VcdTA0MzJcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDVcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0EgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDNGXHUwNDNCXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNFXHUwNDMyICdcbiAgKyAnXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDM4XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzMlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzNSBcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDQxXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDMyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBXHUwNDM1IFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzQlx1MDQzOFx1MDQ0Nlx1MDQ0Qlx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNBXHUwNDNFXHUwNDM0XHUwNDMwXHUwNDQxXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDMwIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMCBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzFcdTA0MzhcdTA0MzdcdTA0M0RcdTA0MzVcdTA0NDFcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzAgJ1xuICArICdcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0RcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDBcdTA0MzBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDQ3XHUwNDM4IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0NDNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzJcdTA0MzhcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgJztcblxuICAvLyB2OCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIC0gXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDRCXHUwNDM1ID09PiBjbGFzc1xuICBjb25zdCB2OF9zeXN0ZW1fZW51bXNfZGlmZmVyZW50cyA9XG4gICdcdTA0MzJcdTA0MzBcdTA0MzZcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NENcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzVcdTA0M0NcdTA0NEJcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDQ0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQ0Mlx1MDQzMFx1MDQzMVx1MDQzMFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzMFx1MDQzRFx1MDQ0Mlx1MDQzRVx1MDQ0MVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzQlx1MDQzOFx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQlx1MDQzRVx1MDQzNlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0RcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzRcdTA0MzAgXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNEXHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRCXHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDMwXHUwNDNCXHUwNDMwIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Nlx1MDQ0QiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0FcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzhcdTA0M0RcdTA0M0FcdTA0MzggJ1xuICArICdcdTA0MzJcdTA0MzhcdTA0MzRcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNBXHUwNDM4IFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0MVx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0MzJcdTA0MzhcdTA0MzRcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDMyXHUwNDM4XHUwNDM0XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDNFXHUwNDMyXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzMlx1MDQzOFx1MDQzNFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0Mlx1MDQzMCBcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0NcdTA0MzBcdTA0NEZcdTA0MzRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0MzAgXHUwNDM0XHUwNDNFXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4XHUwNDNDXHUwNDRCXHUwNDM5XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDNBICdcbiAgKyAnXHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1Ynl0ZW9yZGVybWFyayBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0NcdTA0MzVcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQ0XHUwNDM4XHUwNDMzXHUwNDQzXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzQVx1MDQzQlx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0OFx1MDQzMCBcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzJcdTA0M0VcdTA0MzdcdTA0MzJcdTA0NDBcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzAgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzB4YmFzZSBcdTA0M0FcdTA0M0VcdTA0MzRcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDNEXHUwNDMwXHUwNDNGXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDMwIFx1MDQzRFx1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOCBcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDM4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNGXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNCXHUwNDM4XHUwNDQwXHUwNDMwXHUwNDM3XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDNFXHUwNDMyIFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzQVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzBcdTA0MzJcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDEgXHUwNDQwXHUwNDM1XHUwNDM2XHUwNDM4XHUwNDNDXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQzXHUwNDQxXHUwNDNBXHUwNDMwXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MFx1MDQzNVx1MDQzNlx1MDQzOFx1MDQzQ1x1MDQzRVx1MDQzQVx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiBcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0VcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0JcdTA0M0VcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgJ1xuICArICdcdTA0NDBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0M0RcdTA0M0VcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0M0ZcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0MzAgXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDRDXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDQxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0MVx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0Rlx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0NEZcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzFcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDRcdTA0MzhcdTA0MzNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzhcdTA0MzFcdTA0MzBcdTA0MzdcdTA0NEJcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzFcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MzB3aW5kb3dzIFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQzRVx1MDQzMVx1MDQzQVx1MDQzRVx1MDQzNFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOCBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDQ4XHUwNDNEXHUwNDM1XHUwNDM5XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDRCIFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzRlx1MDQzQlx1MDQzMFx1MDQ0Mlx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQ0QiBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0JcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDhcdTA0MzhlbnRlciAnXG4gICsgJ1x1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0RFx1MDQzQlx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzRVx1MDQzMlx1MDQ0Qlx1MDQzRlx1MDQzRVx1MDQzQlx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOFx1MDQzRVx1MDQzMVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0NFx1MDQzOFx1MDQzM1x1MDQ0M1x1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOFx1MDQzMVx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDNcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0M0RcdTA0NENcdTA0MzhcdTA0MzdcdTA0M0VcdTA0M0JcdTA0NEZcdTA0NDZcdTA0MzhcdTA0MzhcdTA0NDJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzdcdTA0MzBcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzkgXHUwNDQ1XHUwNDM1XHUwNDQ4XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Qic7XG5cbiAgLy8gY2xhc3M6IFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0RcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDBcdTA0NEIgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5LCBcdTA0NDFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIChcdTA0NDFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzBcdTA0NDIgXHUwNDM0XHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RiwgXHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQ5XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzQSBcdTA0M0FcdTA0M0VcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0M0MgXHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDM3IFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0Qlx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNSlcbiAgY29uc3QgQ0xBU1MgPVxuICB2OF9zeXN0ZW1fc2V0c19vZl92YWx1ZXNcbiAgKyB2OF9zeXN0ZW1fZW51bXNfaW50ZXJmYWNlXG4gICsgdjhfc3lzdGVtX2VudW1zX29iamVjdHNfcHJvcGVydGllc1xuICArIHY4X3N5c3RlbV9lbnVtc19leGNoYW5nZV9wbGFuc1xuICArIHY4X3N5c3RlbV9lbnVtc190YWJ1bGFyX2RvY3VtZW50XG4gICsgdjhfc3lzdGVtX2VudW1zX3NoZWR1bGVyXG4gICsgdjhfc3lzdGVtX2VudW1zX2Zvcm1hdHRlZF9kb2N1bWVudFxuICArIHY4X3N5c3RlbV9lbnVtc19xdWVyeVxuICArIHY4X3N5c3RlbV9lbnVtc19yZXBvcnRfYnVpbGRlclxuICArIHY4X3N5c3RlbV9lbnVtc19maWxlc1xuICArIHY4X3N5c3RlbV9lbnVtc19xdWVyeV9idWlsZGVyXG4gICsgdjhfc3lzdGVtX2VudW1zX2RhdGFfYW5hbHlzaXNcbiAgKyB2OF9zeXN0ZW1fZW51bXNfeG1sX2pzb25feHNfZG9tX3hkdG9fd3NcbiAgKyB2OF9zeXN0ZW1fZW51bXNfZGF0YV9jb21wb3NpdGlvbl9zeXN0ZW1cbiAgKyB2OF9zeXN0ZW1fZW51bXNfZW1haWxcbiAgKyB2OF9zeXN0ZW1fZW51bXNfbG9nYm9va1xuICArIHY4X3N5c3RlbV9lbnVtc19jcnlwdG9ncmFwaHlcbiAgKyB2OF9zeXN0ZW1fZW51bXNfemlwXG4gICsgdjhfc3lzdGVtX2VudW1zX290aGVyXG4gICsgdjhfc3lzdGVtX2VudW1zX3JlcXVlc3Rfc2NoZW1hXG4gICsgdjhfc3lzdGVtX2VudW1zX3Byb3BlcnRpZXNfb2ZfbWV0YWRhdGFfb2JqZWN0c1xuICArIHY4X3N5c3RlbV9lbnVtc19kaWZmZXJlbnRzO1xuXG4gIC8vIHY4IFx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzOFx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NEIgKFx1MDQ0MyBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDRDIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MCwgXHUwNDREXHUwNDNBXHUwNDM3XHUwNDM1XHUwNDNDXHUwNDNGXHUwNDNCXHUwNDRGXHUwNDQwXHUwNDRCIFx1MDQ0MVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0RVx1MDQ0Mlx1MDQ0MVx1MDQ0RiBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0M0VcdTA0M0MgXHUwNDFEXHUwNDFFXHUwNDEyXHUwNDJCXHUwNDE5KSA9PT4gdHlwZVxuICBjb25zdCB2OF9zaGFyZWRfb2JqZWN0ID1cbiAgJ2NvbVx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBmdHBcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgaHR0cFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBodHRwXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyIGh0dHBcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgd3NcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYgd3NcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0M0FcdTA0NDFcdTA0MzggeGJhc2UgXHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RnhzICdcbiAgKyAnXHUwNDMxXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzMVx1MDQ0M1x1MDQ0NFx1MDQzNVx1MDQ0MFx1MDQzNFx1MDQzMlx1MDQzRVx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4cyBcdTA0MzJcdTA0NEJcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDMzXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDQxXHUwNDNCXHUwNDQzXHUwNDQ3XHUwNDMwXHUwNDM5XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDM1XHUwNDNCIFx1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQ0Rlx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMCAnXG4gICsgJ1x1MDQzM1x1MDQzNVx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzRVx1MDQzRVx1MDQ0MFx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzMFx1MDQ0Mlx1MDQ0QiBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzBcdTA0NEZcdTA0NDFcdTA0NDVcdTA0MzVcdTA0M0NcdTA0MzAgXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDMwXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eHMgXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQ0XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzNFx1MDQzMlx1MDQzRVx1MDQzOFx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MzRcdTA0MzVcdTA0M0RcdTA0MzRcdTA0NDBcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzAgJ1xuICArICdcdTA0MzRcdTA0MzhcdTA0MzBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0NcdTA0M0NcdTA0MzAgXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDNDXHUwNDMwXHUwNDMzXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDMwIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQzMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzAgXHUwNDM0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDQ4XHUwNDQwXHUwNDM4XHUwNDQ0XHUwNDQyXHUwNDMwIFx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzQlx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0RiAnXG4gICsgJ1x1MDQzNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQzRVx1MDQzNFx1MDQzMCBcdTA0MzRcdTA0MzhcdTA0MzBcdTA0M0ZcdTA0MzBcdTA0MzdcdTA0M0VcdTA0M0QgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyZG9tIFx1MDQzNFx1MDQzRVx1MDQzQVx1MDQ0M1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mmh0bWwgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGeHMgXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDQzXHUwNDMyXHUwNDM1XHUwNDM0XHUwNDNFXHUwNDNDXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1ICdcbiAgKyAnXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDZG9tIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q2Zhc3RpbmZvc2V0IFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q2h0bWwgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDanNvbiBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NEN4bWwgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDemlwXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NENcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tICdcbiAgKyAnXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxIFx1MDQzN1x1MDQzMFx1MDQ0OVx1MDQzOFx1MDQ0OVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQzRVx1MDQzNVx1MDQ0MVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNW9wZW5zc2wgXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDM5XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQ0XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQ0Mlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0Mlx1MDQzMCBcdTA0MzhcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0NDBcdTA0NDJ4cyBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0MzAgJ1xuICArICdcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzVcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDM4XHUwNDNEXHUwNDQyXHUwNDM1XHUwNDQwXHUwNDNEXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDNFXHUwNDQ3XHUwNDQyXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ0XHUwNDM4XHUwNDNCXHUwNDRDIFx1MDQzOFx1MDQzRFx1MDQ0Mlx1MDQzNVx1MDQ0MFx1MDQzRFx1MDQzNVx1MDQ0Mlx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQ0MVx1MDQzOCBcdTA0MzhcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0M0RcdTA0MzVcdTA0NDJcdTA0NDFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDM4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGXHUwNDM0XHUwNDNCXHUwNDRGXHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgJ1xuICArICdcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDJcdTA0MzB4cyBcdTA0MzhcdTA0NDFcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0MzFcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0MzZcdTA0NDNcdTA0NDBcdTA0M0RcdTA0MzBcdTA0M0JcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDM4XHUwNDNBXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzQVx1MDQzMCBcdTA0M0FcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEIgXHUwNDNBXHUwNDMyXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDRCXHUwNDM0XHUwNDMyXHUwNDNFXHUwNDM4XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzQVx1MDQzMlx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQ0Qlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzOCBcdTA0M0FcdTA0MzJcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NEJcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzAgJ1xuICArICdcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0NDlcdTA0MzhcdTA0M0FcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDQ5XHUwNDM4XHUwNDNBXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNBXHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzRVx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0Rlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQzRFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0NDNcdTA0M0FcdTA0NDJcdTA0M0VcdTA0NDBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzlcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzggXHUwNDNCXHUwNDM4XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzFcdTA0M0JcdTA0MzBcdTA0NDFcdTA0NDJcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJ1xuICArICdcdTA0M0NcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNDXHUwNDMwXHUwNDQxXHUwNDNBXHUwNDMweHMgXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM1XHUwNDM0XHUwNDM2XHUwNDM1XHUwNDQwXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQzRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ3htbCBcdTA0M0RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzlcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM5XHUwNDNBXHUwNDM4XHUwNDQxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4anNvbiAnXG4gICsgJ1x1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzMFx1MDQzQVx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzRVx1MDQzQSBcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDJcdTA0M0FcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0NDhcdTA0MzhcdTA0NDRcdTA0NDBcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDNFXHUwNDMxXHUwNDQ1XHUwNDNFXHUwNDM0XHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDMwZG9tIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQzMHhzIFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQ0Rlx1MDQzMlx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRFx1MDQzRVx1MDQ0Mlx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOHhzICdcbiAgKyAnXHUwNDNFXHUwNDMxXHUwNDRBXHUwNDRGXHUwNDMyXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDREXHUwNDNCXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMweHMgXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4ICdcbiAgKyAnXHUwNDNFXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM4XHUwNDQxXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDRGXHUwNDQxXHUwNDNFXHUwNDMxXHUwNDRCXHUwNDQyXHUwNDM4XHUwNDRGXHUwNDNFXHUwNDQyXHUwNDNBXHUwNDMwXHUwNDM3XHUwNDMyXHUwNDM0XHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNGXHUwNDM1XHUwNDM2XHUwNDQzXHUwNDQwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0Mlx1MDQzQVx1MDQzOFx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0NFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzMlx1MDQzMFx1MDQzNVx1MDQzQ1x1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCBcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0M0VcdTA0MzIgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDMwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDNFXHUwNDMyeHMgXHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDMzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDRCXHUwNDNDXHUwNDNFXHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM4eHMgJ1xuICArICdcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0VcdTA0MzNcdTA0NDBcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0Mzh4cyBcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4cyBcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MzBcdTA0MzJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzB4cyBcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0MzBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBkb20gJ1xuICArICdcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cGF0aHhzIFx1MDQzRVx1MDQ0Mlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0M0ZcdTA0MzBcdTA0M0FcdTA0MzVcdTA0NDJcdTA0M0VcdTA0NDJcdTA0M0VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzBcdTA0MzVcdTA0M0NcdTA0NEJcdTA0NDVcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0VcdTA0MzIgXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDMyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOGpzb24gXHUwNDNGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDRCXHUwNDM3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDM4eG1sIFx1MDQzRlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQ0MFx1MDQ0Qlx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhtbCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzV4cyBcdTA0M0ZcdTA0M0JcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDlcdTA0MzhcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDMwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3XHUwNDMwXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1ICdcbiAgKyAnXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDNDXHUwNDNGXHUwNDNFXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDM4XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q2RvbSBcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0MzdcdTA0MzBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0MzAgXHUwNDNGXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFx1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQzRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMFx1MDQzMFx1MDQzRFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQzN1x1MDQzMFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSAnXG4gICsgJ1x1MDQzRlx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzOFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ3htbCBcdTA0M0ZcdTA0M0VcdTA0NDJcdTA0M0VcdTA0M0EgXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBXHUwNDMyXHUwNDNGXHUwNDMwXHUwNDNDXHUwNDRGXHUwNDQyXHUwNDM4IFx1MDQzRlx1MDQzRVx1MDQ0N1x1MDQ0Mlx1MDQzMCBcdTA0M0ZcdTA0M0VcdTA0NDdcdTA0NDJcdTA0M0VcdTA0MzJcdTA0M0VcdTA0MzVcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDNFXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1eHNsIFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzQVx1MDQzQVx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzRFx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQ0M3htbCAnXG4gICsgJ1x1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQzMlx1MDQ0Qlx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzN1x1MDQ0M1x1MDQzQlx1MDQ0Q1x1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NVx1MDQzMlx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzQlx1MDQzNVx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQ0RVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDBcdTA0MzJcdTA0NEJcdTA0MzJcdTA0M0VcdTA0MzRcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MzJcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgJ1xuICArICdcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0NDFcdTA0NDFcdTA0M0VcdTA0NDBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDRCXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDNDXHUwNDM1XHUwNDNEZG9tIFx1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQVx1MDQzMCBcdTA0NDBcdTA0MzBcdTA0NDFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzNcdTA0M0JcdTA0MzBcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzdcdTA0MzBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwNDQwXHUwNDMwXHUwNDQxXHUwNDQ4XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDM4XHUwNDNDXHUwNDRGeG1sICdcbiAgKyAnXHUwNDQwXHUwNDM1XHUwNDM3XHUwNDQzXHUwNDNCXHUwNDRDXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzMlx1MDQzRVx1MDQzNFx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzOFx1MDQzMFx1MDQzM1x1MDQ0MFx1MDQzMFx1MDQzQ1x1MDQzQ1x1MDQzMCBcdTA0NDFcdTA0MzJcdTA0NEZcdTA0MzdcdTA0NENcdTA0M0ZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MzAgXHUwNDQxXHUwNDMyXHUwNDRGXHUwNDM3XHUwNDRDXHUwNDNGXHUwNDNFXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDQzIFx1MDQ0MVx1MDQzMlx1MDQ0Rlx1MDQzN1x1MDQ0Q1x1MDQzRlx1MDQzRVx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0M1x1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0MzBcdTA0M0JcdTA0MzhcdTA0MzdcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDB4ZHRvICdcbiAgKyAnXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDNCXHUwNDM4XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDMwd2luZG93cyBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0FcdTA0M0JcdTA0MzhcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDM4XHUwNDNGXHUwNDQyXHUwNDNFXHUwNDMzXHUwNDQwXHUwNDMwXHUwNDQ0XHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQ0Qlx1MDQ0M1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Rlx1MDQ0RVx1MDQ0OVx1MDQzOFx1MDQ0NVx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzMndpbmRvd3MgJ1xuICArICdcdTA0NDFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0NEJcdTA0NDNcdTA0MzRcdTA0M0VcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NEZcdTA0NEVcdTA0NDlcdTA0MzhcdTA0NDVcdTA0NDZcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzJcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQxXHUwNDM2XHUwNDMwXHUwNDQyXHUwNDM4XHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzOFx1MDQzRFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0RiBcdTA0NDFcdTA0M0VcdTA0M0VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0M0ZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NEUgXHUwNDQxXHUwNDNFXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDM1XHUwNDNBXHUwNDNCXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQ4ICdcbiAgKyAnXHUwNDQxXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzNFx1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzMFx1MDQzQlx1MDQzMCBcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0MzRcdTA0MzBcdTA0NDBcdTA0NDJcdTA0M0RcdTA0NEJcdTA0MzlcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzQgXHUwNDQxXHUwNDQ1XHUwNDM1XHUwNDNDXHUwNDMweG1sIFx1MDQ0MVx1MDQ0NVx1MDQzNVx1MDQzQ1x1MDQzMFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzRVx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzQVx1MDQzOFx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgJ1xuICArICdcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgXHUwNDQyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDQzXHUwNDM1XHUwNDNDXHUwNDNFXHUwNDM1XHUwNDNGXHUwNDQwXHUwNDM4XHUwNDNCXHUwNDNFXHUwNDM2XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NXhtbCBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0M0FcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDAgXHUwNDQ0XHUwNDMwXHUwNDMxXHUwNDQwXHUwNDM4XHUwNDNBXHUwNDMweGR0byBcdTA0NDRcdTA0MzBcdTA0MzlcdTA0M0IgXHUwNDQ0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDNFXHUwNDMyXHUwNDRCXHUwNDM5XHUwNDNGXHUwNDNFXHUwNDQyXHUwNDNFXHUwNDNBICdcbiAgKyAnXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDM0XHUwNDNCXHUwNDM4XHUwNDNEXHUwNDRCeHMgXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDM3XHUwNDQwXHUwNDRGXHUwNDM0XHUwNDNFXHUwNDMyXHUwNDM0XHUwNDQwXHUwNDNFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDM5XHUwNDQ3XHUwNDMwXHUwNDQxXHUwNDQyXHUwNDM4eHMgXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNDXHUwNDMwXHUwNDNBXHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMwXHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFXHUwNDMzXHUwNDNFXHUwNDMyXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDMwXHUwNDRFXHUwNDQ5XHUwNDM1XHUwNDMzXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgJ1xuICArICdcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzhcdTA0NDFcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NEVcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyBcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0M0NcdTA0MzBcdTA0M0FcdTA0NDFcdTA0MzhcdTA0M0NcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzlcdTA0MzRcdTA0M0JcdTA0MzhcdTA0M0RcdTA0NEJ4cyBcdTA0NDRcdTA0MzBcdTA0NDFcdTA0MzVcdTA0NDJcdTA0M0NcdTA0MzhcdTA0M0RcdTA0MzhcdTA0M0NcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0M0VcdTA0MzNcdTA0M0VcdTA0MzJcdTA0M0FcdTA0M0JcdTA0NEVcdTA0NDdcdTA0MzBcdTA0NEVcdTA0NDlcdTA0MzVcdTA0MzNcdTA0M0VcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZ4cyAnXG4gICsgJ1x1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzMFx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQ0RnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzQ1x1MDQzOFx1MDQzRFx1MDQzOFx1MDQzQ1x1MDQzMFx1MDQzQlx1MDQ0Q1x1MDQzRFx1MDQzRVx1MDQzOVx1MDQzNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQ0QnhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0Nlx1MDQzMHhzIFx1MDQ0NFx1MDQzMFx1MDQ0MVx1MDQzNVx1MDQ0Mlx1MDQzRVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzQVx1MDQzRVx1MDQzQlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQzN1x1MDQ0MFx1MDQ0Rlx1MDQzNFx1MDQzRVx1MDQzMnhzICdcbiAgKyAnXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGeHMgXHUwNDQ0XHUwNDMwXHUwNDQxXHUwNDM1XHUwNDQyXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDMxXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDQxXHUwNDM4XHUwNDNDXHUwNDMyXHUwNDNFXHUwNDNCXHUwNDNFXHUwNDMyeHMgXHUwNDQ0XHUwNDM4XHUwNDNCXHUwNDRDXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQ0NFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQzMFx1MDQ0Rlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQVx1MDQzMCBcdTA0NDRcdTA0M0VcdTA0NDBcdTA0M0NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgJ1xuICArICdcdTA0NDRcdTA0NDBcdTA0MzBcdTA0MzNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJ4cyBcdTA0NDVcdTA0MzVcdTA0NDhcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDNCXHUwNDM4XHUwNDQ5XHUwNDM1XHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGIFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0MiBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVmYXN0aW5mb3NldCBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVodG1sIFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNWpzb24gXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1eG1sIFx1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNXppcFx1MDQ0NFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQzMCAnXG4gICsgJ1x1MDQ0N1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcdTA0NDdcdTA0NDJcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzVcdTA0NDJcdTA0MzVcdTA0M0FcdTA0NDFcdTA0NDJcdTA0MzAgXHUwNDQ3XHUwNDQyXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDQzXHUwNDM3XHUwNDNCXHUwNDNFXHUwNDMyZG9tIFx1MDQ0OFx1MDQ0MFx1MDQzOFx1MDQ0NFx1MDQ0MiBcdTA0NERcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M0JcdTA0NENcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0ZcdTA0M0VcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDUgJztcblxuICAvLyB2OCBcdTA0NDNcdTA0M0RcdTA0MzhcdTA0MzJcdTA0MzVcdTA0NDBcdTA0NDFcdTA0MzBcdTA0M0JcdTA0NENcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNBXHUwNDNFXHUwNDNCXHUwNDNCXHUwNDM1XHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzN1x1MDQzRFx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOSA9PT4gdHlwZVxuICBjb25zdCB2OF91bml2ZXJzYWxfY29sbGVjdGlvbiA9XG4gICdjb21zYWZlYXJyYXkgXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMiBcdTA0NDFcdTA0M0VcdTA0M0VcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzUgXHUwNDQxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM5IFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0M1x1MDQzQVx1MDQ0Mlx1MDQ0M1x1MDQ0MFx1MDQzMCBcdTA0NDJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzkgXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDNBXHUwNDQyXHUwNDQzXHUwNDQwXHUwNDMwICdcbiAgKyAnXHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDQxXHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDNEXHUwNDNEXHUwNDNFXHUwNDM1XHUwNDQxXHUwNDNFXHUwNDNFXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1IFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQ0MVx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQzQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMiAnO1xuXG4gIC8vIHR5cGUgOiBcdTA0MzJcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDRCXG4gIGNvbnN0IFRZUEUgPVxuICB2OF9zaGFyZWRfb2JqZWN0XG4gICsgdjhfdW5pdmVyc2FsX2NvbGxlY3Rpb247XG5cbiAgLy8gbGl0ZXJhbCA6IFx1MDQzRlx1MDQ0MFx1MDQzOFx1MDQzQ1x1MDQzOFx1MDQ0Mlx1MDQzOFx1MDQzMlx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0NDJcdTA0MzhcdTA0M0ZcdTA0NEJcbiAgY29uc3QgTElURVJBTCA9ICdudWxsIFx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQzRFx1MDQzMCBcdTA0M0JcdTA0M0VcdTA0MzZcdTA0NEMgXHUwNDNEXHUwNDM1XHUwNDNFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDNFJztcblxuICAvLyBudW1iZXIgOiBcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzBcbiAgY29uc3QgTlVNQkVSUyA9IGhsanMuaW5oZXJpdChobGpzLk5VTUJFUl9NT0RFKTtcblxuICAvLyBzdHJpbmcgOiBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzhcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCJ8XFxcXHwnLFxuICAgIGVuZDogJ1wifCQnLFxuICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF1cbiAgfTtcblxuICAvLyBudW1iZXIgOiBcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEJcbiAgY29uc3QgREFURSA9IHtcbiAgICBiZWdpbjogXCInXCIsXG4gICAgZW5kOiBcIidcIixcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxkezR9KFtcXFxcLlxcXFxcXFxcLzotXT9cXFxcZHsyfSl7MCw1fSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgUFVOQ1RVQVRJT04gPSB7XG4gICAgbWF0Y2g6IC9bOygpK1xcLTo9LF0vLFxuICAgIGNsYXNzTmFtZTogXCJwdW5jdHVhdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8vIGNvbW1lbnQgOiBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzhcbiAgY29uc3QgQ09NTUVOVFMgPSBobGpzLmluaGVyaXQoaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFKTtcblxuICAvLyBtZXRhIDogXHUwNDM4XHUwNDNEXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDQzXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzRVx1MDQ0MFx1MDQzMCwgXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDQyXHUwNDM4XHUwNDMyXHUwNDRCIFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzRlx1MDQzOFx1MDQzQlx1MDQ0Rlx1MDQ0Nlx1MDQzOFx1MDQzOFxuICBjb25zdCBNRVRBID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuXG4gICAgYmVnaW46ICcjfCYnLFxuICAgIGVuZDogJyQnLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkQgKyBNRVRBS0VZV09SRFxuICAgIH0sXG4gICAgY29udGFpbnM6IFsgQ09NTUVOVFMgXVxuICB9O1xuXG4gIC8vIHN5bWJvbCA6IFx1MDQzQ1x1MDQzNVx1MDQ0Mlx1MDQzQVx1MDQzMCBnb3RvXG4gIGNvbnN0IFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnficsXG4gICAgZW5kOiAnO3w6JyxcbiAgICBleGNsdWRlRW5kOiB0cnVlXG4gIH07XG5cbiAgLy8gZnVuY3Rpb24gOiBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0NEZcdTA0MzJcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDM0XHUwNDQzXHUwNDQwIFx1MDQzOCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzlcbiAgY29uc3QgRlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXHUwNDNGXHUwNDQwXHUwNDNFXHUwNDQ2XHUwNDM1XHUwNDM0XHUwNDQzXHUwNDQwXHUwNDMwfFx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQ0RicsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6ICdcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0MzAgXHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDRGJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NEJ8XHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4JyxcbiAgICAgICAga2V5d29yZHM6ICdcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NEIgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4J1xuICAgICAgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgICBlbmQ6ICcsJyxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgICAgICRwYXR0ZXJuOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICBrZXl3b3JkOiAnXHUwNDM3XHUwNDNEXHUwNDMwXHUwNDQ3JyxcbiAgICAgICAgICAgICAgbGl0ZXJhbDogTElURVJBTFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIERBVEVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIENPTU1FTlRTXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBVTkRFUlNDT1JFX0lERU5UX1JFIH0pXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJzFDOkVudGVycHJpc2UnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiBVTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAga2V5d29yZDogS0VZV09SRCxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVElOLFxuICAgICAgY2xhc3M6IENMQVNTLFxuICAgICAgdHlwZTogVFlQRSxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBNRVRBLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBDT01NRU5UUyxcbiAgICAgIFNZTUJPTCxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBTVFJJTkdTLFxuICAgICAgREFURSxcbiAgICAgIFBVTkNUVUFUSU9OXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IF8xYztcbiIsICIvKlxuTGFuZ3VhZ2U6IEF1Z21lbnRlZCBCYWNrdXMtTmF1ciBGb3JtXG5BdXRob3I6IEFsZXggTWNLaWJiZW4gPGFsZXhAbnVsbHNjb3BlLm5ldD5cbldlYnNpdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0XG5DYXRlZ29yeTogc3ludGF4XG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFibmYoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UID0gL15bYS16QS1aXVthLXpBLVowLTktXSovO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiQUxQSEFcIixcbiAgICBcIkJJVFwiLFxuICAgIFwiQ0hBUlwiLFxuICAgIFwiQ1JcIixcbiAgICBcIkNSTEZcIixcbiAgICBcIkNUTFwiLFxuICAgIFwiRElHSVRcIixcbiAgICBcIkRRVU9URVwiLFxuICAgIFwiSEVYRElHXCIsXG4gICAgXCJIVEFCXCIsXG4gICAgXCJMRlwiLFxuICAgIFwiTFdTUFwiLFxuICAgIFwiT0NURVRcIixcbiAgICBcIlNQXCIsXG4gICAgXCJWQ0hBUlwiLFxuICAgIFwiV1NQXCJcbiAgXTtcblxuICBjb25zdCBDT01NRU5UID0gaGxqcy5DT01NRU5UKC87LywgLyQvKTtcblxuICBjb25zdCBURVJNSU5BTF9CSU5BUlkgPSB7XG4gICAgc2NvcGU6IFwic3ltYm9sXCIsXG4gICAgbWF0Y2g6IC8lYlswLTFdKygtWzAtMV0rfChcXC5bMC0xXSspKyk/L1xuICB9O1xuXG4gIGNvbnN0IFRFUk1JTkFMX0RFQ0lNQUwgPSB7XG4gICAgc2NvcGU6IFwic3ltYm9sXCIsXG4gICAgbWF0Y2g6IC8lZFswLTldKygtWzAtOV0rfChcXC5bMC05XSspKyk/L1xuICB9O1xuXG4gIGNvbnN0IFRFUk1JTkFMX0hFWEFERUNJTUFMID0ge1xuICAgIHNjb3BlOiBcInN5bWJvbFwiLFxuICAgIG1hdGNoOiAvJXhbMC05QS1GXSsoLVswLTlBLUZdK3woXFwuWzAtOUEtRl0rKSspPy9cbiAgfTtcblxuICBjb25zdCBDQVNFX1NFTlNJVElWSVRZID0ge1xuICAgIHNjb3BlOiBcInN5bWJvbFwiLFxuICAgIG1hdGNoOiAvJVtzaV0oPz1cIi4qXCIpL1xuICB9O1xuXG4gIGNvbnN0IFJVTEVfREVDTEFSQVRJT04gPSB7XG4gICAgc2NvcGU6IFwiYXR0cmlidXRlXCIsXG4gICAgbWF0Y2g6IHJlZ2V4LmNvbmNhdChJREVOVCwgLyg/PVxccyo9KS8pXG4gIH07XG5cbiAgY29uc3QgQVNTSUdOTUVOVCA9IHtcbiAgICBzY29wZTogXCJvcGVyYXRvclwiLFxuICAgIG1hdGNoOiAvPVxcLz8vXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXVnbWVudGVkIEJhY2t1cy1OYXVyIEZvcm0nLFxuICAgIGlsbGVnYWw6IC9bIUAjJF4mJyw/K35gfDpdLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEFTU0lHTk1FTlQsXG4gICAgICBSVUxFX0RFQ0xBUkFUSU9OLFxuICAgICAgQ09NTUVOVCxcbiAgICAgIFRFUk1JTkFMX0JJTkFSWSxcbiAgICAgIFRFUk1JTkFMX0RFQ0lNQUwsXG4gICAgICBURVJNSU5BTF9IRVhBREVDSU1BTCxcbiAgICAgIENBU0VfU0VOU0lUSVZJVFksXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhYm5mO1xuIiwgIi8qXG4gTGFuZ3VhZ2U6IEFwYWNoZSBBY2Nlc3MgTG9nXG4gQXV0aG9yOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPlxuIERlc2NyaXB0aW9uOiBBcGFjaGUvTmdpbnggQWNjZXNzIExvZ3NcbiBXZWJzaXRlOiBodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvbG9ncy5odG1sI2FjY2Vzc2xvZ1xuIENhdGVnb3J5OiB3ZWIsIGxvZ3NcbiBBdWRpdDogMjAyMFxuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhY2Nlc3Nsb2coaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvTWV0aG9kc1xuICBjb25zdCBIVFRQX1ZFUkJTID0gW1xuICAgIFwiR0VUXCIsXG4gICAgXCJQT1NUXCIsXG4gICAgXCJIRUFEXCIsXG4gICAgXCJQVVRcIixcbiAgICBcIkRFTEVURVwiLFxuICAgIFwiQ09OTkVDVFwiLFxuICAgIFwiT1BUSU9OU1wiLFxuICAgIFwiUEFUQ0hcIixcbiAgICBcIlRSQUNFXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXBhY2hlIEFjY2VzcyBMb2cnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBJUFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogL15cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSg6XFxkezEsNX0pP1xcYi8sXG4gICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgfSxcbiAgICAgIC8vIE90aGVyIG51bWJlcnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IC9cXGJcXGQrXFxiLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gUmVxdWVzdHNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXCIvLCByZWdleC5laXRoZXIoLi4uSFRUUF9WRVJCUykpLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIGtleXdvcmRzOiBIVFRQX1ZFUkJTLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiA1LFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvSFRUUFxcL1sxMl1cXC5cXGQnLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIERhdGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIC8vIGRhdGVzIG11c3QgaGF2ZSBhIGNlcnRhaW4gbGVuZ3RoLCB0aGlzIHByZXZlbnRzIG1hdGNoaW5nXG4gICAgICAgIC8vIHNpbXBsZSBhcnJheSBhY2Nlc3NlcyBhWzEyM10gYW5kIFtdIGFuZCBvdGhlciBjb21tb24gcGF0dGVybnNcbiAgICAgICAgLy8gZm91bmQgaW4gb3RoZXIgbGFuZ3VhZ2VzXG4gICAgICAgIGJlZ2luOiAvXFxbXFxkW15cXF1cXG5dezgsfVxcXS8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICByZWxldmFuY2U6IDFcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgICAgZW5kOiAvXFxdLyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIFVzZXIgYWdlbnQgLyByZWxldmFuY2UgYm9vc3RcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cIk1vemlsbGFcXC9cXGRcXC5cXGQgXFwoLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAzXG4gICAgICB9LFxuICAgICAgLy8gU3RyaW5nc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFjY2Vzc2xvZztcbiIsICIvKlxuTGFuZ3VhZ2U6IEFjdGlvblNjcmlwdFxuQXV0aG9yOiBBbGV4YW5kZXIgTXlhZHplbCA8bXlhZHplbEBnbWFpbC5jb20+XG5DYXRlZ29yeTogc2NyaXB0aW5nXG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFjdGlvbnNjcmlwdChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSURFTlRfUkUgPSAvW2EtekEtWl8kXVthLXpBLVowLTlfJF0qLztcbiAgY29uc3QgUEtHX05BTUVfUkUgPSByZWdleC5jb25jYXQoXG4gICAgSURFTlRfUkUsXG4gICAgcmVnZXguY29uY2F0KFwiKFxcXFwuXCIsIElERU5UX1JFLCBcIikqXCIpXG4gICk7XG4gIGNvbnN0IElERU5UX0ZVTkNfUkVUVVJOX1RZUEVfUkUgPSAvKFsqXXxbYS16QS1aXyRdW2EtekEtWjAtOV8kXSopLztcblxuICBjb25zdCBBUzNfUkVTVF9BUkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdyZXN0X2FyZycsXG4gICAgYmVnaW46IC9bLl17M30vLFxuICAgIGVuZDogSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYXNcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZvclwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcImdldFwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluc3RhbmNlb2ZcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwiaW50ZXJuYWxcIixcbiAgICBcImlzXCIsXG4gICAgXCJuYW1lc3BhY2VcIixcbiAgICBcIm5hdGl2ZVwiLFxuICAgIFwibmV3XCIsXG4gICAgXCJvdmVycmlkZVwiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInRoaXNcIixcbiAgICBcInRocm93XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2YXJcIixcbiAgICBcInZvaWRcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJ3aXRoXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwidW5kZWZpbmVkXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBY3Rpb25TY3JpcHQnLFxuICAgIGFsaWFzZXM6IFsgJ2FzJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL1xcYnBhY2thZ2UvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBQS0dfTkFNRV9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvXFxiKD86Y2xhc3N8aW50ZXJmYWNlfGV4dGVuZHN8aW1wbGVtZW50cykvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbXBvcnQgaW5jbHVkZScsXG4gICAgICAgIGVuZDogLzsvLFxuICAgICAgICBrZXl3b3JkczogeyBrZXl3b3JkOiAnaW1wb3J0IGluY2x1ZGUnIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsXG4gICAgICAgIGVuZDogL1t7O10vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIEFTM19SRVNUX0FSR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoLzpcXHMqLywgSURFTlRfRlVOQ19SRVRVUk5fVFlQRV9SRSkgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5NRVRIT0RfR1VBUkRcbiAgICBdLFxuICAgIGlsbGVnYWw6IC8jL1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFjdGlvbnNjcmlwdDtcbiIsICIvKlxuTGFuZ3VhZ2U6IEFkYVxuQXV0aG9yOiBMYXJzIFNjaHVsbmEgPGthcnRvZmZlbGJyZWkubWl0Lm11c2thdG51c3NAZ21haWwub3JnPlxuRGVzY3JpcHRpb246IEFkYSBpcyBhIGdlbmVyYWwtcHVycG9zZSBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IGhhcyBncmVhdCBzdXBwb3J0IGZvciBzYWZ0ZXkgY3JpdGljYWwgYW5kIHJlYWwtdGltZSBhcHBsaWNhdGlvbnMuXG4gICAgICAgICAgICAgSXQgaGFzIGJlZW4gZGV2ZWxvcGVkIGJ5IHRoZSBEb0QgYW5kIHRodXMgaGFzIGJlZW4gdXNlZCBpbiBtaWxpdGFyeSBhbmQgc2FmZXR5LWNyaXRpY2FsIGFwcGxpY2F0aW9ucyAobGlrZSBjaXZpbCBhdmlhdGlvbikuXG4gICAgICAgICAgICAgVGhlIGZpcnN0IHZlcnNpb24gYXBwZWFyZWQgaW4gdGhlIDgwcywgYnV0IGl0J3Mgc3RpbGwgYWN0aXZlbHkgZGV2ZWxvcGVkIHRvZGF5IHdpdGhcbiAgICAgICAgICAgICB0aGUgbmV3ZXN0IHN0YW5kYXJkIGJlaW5nIEFkYTIwMTIuXG4qL1xuXG4vLyBXZSB0cnkgdG8gc3VwcG9ydCBmdWxsIEFkYTIwMTJcbi8vXG4vLyBXZSBoaWdobGlnaHQgYWxsIGFwcGVhcmFuY2VzIG9mIHR5cGVzLCBrZXl3b3JkcywgbGl0ZXJhbHMgKHN0cmluZywgY2hhciwgbnVtYmVyLCBib29sKVxuLy8gYW5kIHRpdGxlcyAodXNlciBkZWZpbmVkIGZ1bmN0aW9uL3Byb2NlZHVyZS9wYWNrYWdlKVxuLy8gQ1NTIGNsYXNzZXMgYXJlIHNldCBhY2NvcmRpbmdseVxuLy9cbi8vIExhbmd1YWdlcyBjYXVzaW5nIHByb2JsZW1zIGZvciBsYW5ndWFnZSBkZXRlY3Rpb246XG4vLyB4bWwgKGJyb2tlbiBieSBGb28gOiBCYXIgdHlwZSksIGVsbSAoYnJva2VuIGJ5IEZvbyA6IEJhciB0eXBlKSwgdmJzY3JpcHQtaHRtbCAoYnJva2VuIGJ5IGJvZHkga2V5d29yZClcbi8vIHNxbCAoYWRhIGRlZmF1bHQudHh0IGhhcyBhIGxvdCBvZiBzcWwga2V5d29yZHMpXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhZGEoaGxqcykge1xuICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIEFkYSBudW1lcmljIGxpdGVyYWxzLlxuICAvLyBzdG9sZW4gZm9ybSB0aGUgVkhETCBoaWdobGlnaHRlclxuXG4gIC8vIERlY2ltYWwgbGl0ZXJhbDpcbiAgY29uc3QgSU5URUdFUl9SRSA9ICdcXFxcZChffFxcXFxkKSonO1xuICBjb25zdCBFWFBPTkVOVF9SRSA9ICdbZUVdWy0rXT8nICsgSU5URUdFUl9SRTtcbiAgY29uc3QgREVDSU1BTF9MSVRFUkFMX1JFID0gSU5URUdFUl9SRSArICcoXFxcXC4nICsgSU5URUdFUl9SRSArICcpPycgKyAnKCcgKyBFWFBPTkVOVF9SRSArICcpPyc7XG5cbiAgLy8gQmFzZWQgbGl0ZXJhbDpcbiAgY29uc3QgQkFTRURfSU5URUdFUl9SRSA9ICdcXFxcdysnO1xuICBjb25zdCBCQVNFRF9MSVRFUkFMX1JFID0gSU5URUdFUl9SRSArICcjJyArIEJBU0VEX0lOVEVHRVJfUkUgKyAnKFxcXFwuJyArIEJBU0VEX0lOVEVHRVJfUkUgKyAnKT8nICsgJyMnICsgJygnICsgRVhQT05FTlRfUkUgKyAnKT8nO1xuXG4gIGNvbnN0IE5VTUJFUl9SRSA9ICdcXFxcYignICsgQkFTRURfTElURVJBTF9SRSArICd8JyArIERFQ0lNQUxfTElURVJBTF9SRSArICcpJztcblxuICAvLyBJZGVudGlmaWVyIHJlZ2V4XG4gIGNvbnN0IElEX1JFR0VYID0gJ1tBLVphLXpdKF8/W0EtWmEtejAtOS5dKSonO1xuXG4gIC8vIGJhZCBjaGFycywgb25seSBhbGxvd2VkIGluIGxpdGVyYWxzXG4gIGNvbnN0IEJBRF9DSEFSUyA9IGBbXVxcXFx7XFxcXH0lIydcImA7XG5cbiAgLy8gQWRhIGRvZXNuJ3QgaGF2ZSBibG9jayBjb21tZW50cywgb25seSBsaW5lIGNvbW1lbnRzXG4gIGNvbnN0IENPTU1FTlRTID0gaGxqcy5DT01NRU5UKCctLScsICckJyk7XG5cbiAgLy8gdmFyaWFibGUgZGVjbGFyYXRpb25zIG9mIHRoZSBmb3JtXG4gIC8vIEZvbyA6IEJhciA6PSBCYXo7XG4gIC8vIHdoZXJlIG9ubHkgQmFyIHdpbGwgYmUgaGlnaGxpZ2h0ZWRcbiAgY29uc3QgVkFSX0RFQ0xTID0ge1xuICAgIC8vIFRPRE86IFRoZXNlIHNwYWNlcyBhcmUgbm90IHJlcXVpcmVkIGJ5IHRoZSBBZGEgc3ludGF4XG4gICAgLy8gaG93ZXZlciwgSSBoYXZlIHlldCB0byBzZWUgaGFuZHdyaXR0ZW4gQWRhIGNvZGUgd2hlcmVcbiAgICAvLyBzb21lb25lIGRvZXMgbm90IHB1dCBzcGFjZXMgYXJvdW5kIDpcbiAgICBiZWdpbjogJ1xcXFxzKzpcXFxccysnLFxuICAgIGVuZDogJ1xcXFxzKig6PXw7fFxcXFwpfD0+fCQpJyxcbiAgICAvLyBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAvLyByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBpbGxlZ2FsOiBCQURfQ0hBUlMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgLy8gd29ya2Fyb3VuZCB0byBhdm9pZCBoaWdobGlnaHRpbmdcbiAgICAgICAgLy8gbmFtZWQgbG9vcHMgYW5kIGRlY2xhcmUgYmxvY2tzXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdsb29wIGZvciBkZWNsYXJlIG90aGVycycsXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHByb3Blcmx5IGhpZ2hsaWdodCBhbGwgbW9kaWZpZXJzXG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbm90IG51bGwgY29uc3RhbnQgYWNjZXNzIGZ1bmN0aW9uIHByb2NlZHVyZSBpbiBvdXQgYWxpYXNlZCBleGNlcHRpb24nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46IElEX1JFR0VYLFxuICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhYm9ydFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwibmV3XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcImFic1wiLFxuICAgIFwiZWxzaWZcIixcbiAgICBcIm5vdFwiLFxuICAgIFwicmV2ZXJzZVwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImVuZFwiLFxuICAgIFwiYWNjZXB0XCIsXG4gICAgXCJlbnRyeVwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJhY2Nlc3NcIixcbiAgICBcImV4Y2VwdGlvblwiLFxuICAgIFwib2ZcIixcbiAgICBcInNlcGFyYXRlXCIsXG4gICAgXCJhbGlhc2VkXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJvclwiLFxuICAgIFwic29tZVwiLFxuICAgIFwiYWxsXCIsXG4gICAgXCJvdGhlcnNcIixcbiAgICBcInN1YnR5cGVcIixcbiAgICBcImFuZFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJvdXRcIixcbiAgICBcInN5bmNocm9uaXplZFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJvdmVycmlkaW5nXCIsXG4gICAgXCJhdFwiLFxuICAgIFwidGFnZ2VkXCIsXG4gICAgXCJnZW5lcmljXCIsXG4gICAgXCJwYWNrYWdlXCIsXG4gICAgXCJ0YXNrXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwicHJhZ21hXCIsXG4gICAgXCJ0ZXJtaW5hdGVcIixcbiAgICBcImJvZHlcIixcbiAgICBcInByaXZhdGVcIixcbiAgICBcInRoZW5cIixcbiAgICBcImlmXCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcInR5cGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImluXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcImNvbnN0YW50XCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImlzXCIsXG4gICAgXCJyYWlzZVwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJyYW5nZVwiLFxuICAgIFwiZGVsYXlcIixcbiAgICBcImxpbWl0ZWRcIixcbiAgICBcInJlY29yZFwiLFxuICAgIFwid2hlblwiLFxuICAgIFwiZGVsdGFcIixcbiAgICBcImxvb3BcIixcbiAgICBcInJlbVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcImRpZ2l0c1wiLFxuICAgIFwicmVuYW1lc1wiLFxuICAgIFwid2l0aFwiLFxuICAgIFwiZG9cIixcbiAgICBcIm1vZFwiLFxuICAgIFwicmVxdWV1ZVwiLFxuICAgIFwieG9yXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBZGEnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogW1xuICAgICAgICBcIlRydWVcIixcbiAgICAgICAgXCJGYWxzZVwiXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVFMsXG4gICAgICAvLyBzdHJpbmdzIFwiZm9vYmFyXCJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1wiXCIvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2hhcmFjdGVycyAnJ1xuICAgICAge1xuICAgICAgICAvLyBjaGFyYWN0ZXIgbGl0ZXJhbHMgYWx3YXlzIGNvbnRhaW4gb25lIGNoYXJcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC8nLicvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBudW1iZXIgbGl0ZXJhbHNcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IE5VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBBdHRyaWJ1dGVzXG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiBcIidcIiArIElEX1JFR0VYXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBwYWNrYWdlIGRlZmluaXRpb24sIG1heWJlIGluc2lkZSBnZW5lcmljXG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICcoXFxcXGJ3aXRoXFxcXHMrKT8oXFxcXGJwcml2YXRlXFxcXHMrKT9cXFxcYnBhY2thZ2VcXFxccysoXFxcXGJib2R5XFxcXHMrKT8nLFxuICAgICAgICBlbmQ6ICcoaXN8JCknLFxuICAgICAgICBrZXl3b3JkczogJ3BhY2thZ2UgYm9keScsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogQkFEX0NIQVJTXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBmdW5jdGlvbi9wcm9jZWR1cmUgZGVjbGFyYXRpb24vZGVmaW5pdGlvblxuICAgICAgICAvLyBtYXliZSBpbnNpZGUgZ2VuZXJpY1xuICAgICAgICBiZWdpbjogJyhcXFxcYih3aXRofG92ZXJyaWRpbmcpXFxcXHMrKT9cXFxcYihmdW5jdGlvbnxwcm9jZWR1cmUpXFxcXHMrJyxcbiAgICAgICAgZW5kOiAnKFxcXFxiaXN8XFxcXGJ3aXRofFxcXFxicmVuYW1lc3xcXFxcKVxcXFxzKjspJyxcbiAgICAgICAga2V5d29yZHM6ICdvdmVycmlkaW5nIGZ1bmN0aW9uIHByb2NlZHVyZSB3aXRoIGlzIHJlbmFtZXMgcmV0dXJuJyxcbiAgICAgICAgLy8gd2UgbmVlZCB0byByZS1tYXRjaCB0aGUgJ2Z1bmN0aW9uJyBrZXl3b3JkLCBzbyB0aGF0XG4gICAgICAgIC8vIHRoZSB0aXRsZSBtb2RlIGJlbG93IG1hdGNoZXMgb25seSBleGFjdGx5IG9uY2VcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOlxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIENPTU1FTlRTLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAvLyBuYW1lIG9mIHRoZSBmdW5jdGlvbi9wcm9jZWR1cmVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogJyhcXFxcYndpdGhcXFxccyspP1xcXFxiKGZ1bmN0aW9ufHByb2NlZHVyZSlcXFxccysnLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6ICcoXFxcXCh8XFxcXHMrfCQpJyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlNcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAvLyAnc2VsZidcbiAgICAgICAgICAgICAgICAgIC8vIC8vIHBhcmFtZXRlciB0eXBlc1xuICAgICAgICAgICAgICAgICAgVkFSX0RFQ0xTLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdHlwZVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcYnJldHVyblxcXFxzKycsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogJyhcXFxccyt8O3wkKScsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiAncmV0dXJuJyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBhcmUgZG9uZSB3aXRoIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBpbGxlZ2FsOiBCQURfQ0hBUlNcblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIG5ldyB0eXBlIGRlY2xhcmF0aW9uc1xuICAgICAgICAvLyBtYXliZSBpbnNpZGUgZ2VuZXJpY1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihzdWIpP3R5cGVcXFxccysnLFxuICAgICAgICBlbmQ6ICdcXFxccysnLFxuICAgICAgICBrZXl3b3JkczogJ3R5cGUnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGlsbGVnYWw6IEJBRF9DSEFSU1xuICAgICAgfSxcblxuICAgICAgLy8gc2VlIGNvbW1lbnQgYWJvdmUgdGhlIGRlZmluaXRpb25cbiAgICAgIFZBUl9ERUNMU1xuXG4gICAgICAvLyBubyBtYXJrdXBcbiAgICAgIC8vIHJlbGV2YW5jZSBib29zdGVycyBmb3Igc21hbGwgc25pcHBldHNcbiAgICAgIC8vIHtiZWdpbjogJ1xcXFxzKj0+XFxcXHMqJ30sXG4gICAgICAvLyB7YmVnaW46ICdcXFxccyo6PVxcXFxzKid9LFxuICAgICAgLy8ge2JlZ2luOiAnXFxcXHMrOj1cXFxccysnfSxcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYWRhO1xuIiwgIi8qXG5MYW5ndWFnZTogQW5nZWxTY3JpcHRcbkF1dGhvcjogTWVsaXNzYSBHZWVscyA8bWVsaXNzYUBuaW1ibGUudG9vbHM+XG5DYXRlZ29yeTogc2NyaXB0aW5nXG5XZWJzaXRlOiBodHRwczovL3d3dy5hbmdlbGNvZGUuY29tL2FuZ2Vsc2NyaXB0L1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFuZ2Vsc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgYnVpbHRJblR5cGVNb2RlID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJ1xcXFxiKHZvaWR8Ym9vbHxpbnQ4fGludDE2fGludDMyfGludDY0fGludHx1aW50OHx1aW50MTZ8dWludDMyfHVpbnQ2NHx1aW50fHN0cmluZ3xyZWZ8YXJyYXl8ZG91YmxlfGZsb2F0fGF1dG98ZGljdGlvbmFyeSknXG4gIH07XG5cbiAgY29uc3Qgb2JqZWN0SGFuZGxlTW9kZSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnW2EtekEtWjAtOV9dK0AnXG4gIH07XG5cbiAgY29uc3QgZ2VuZXJpY01vZGUgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46ICc8JyxcbiAgICBlbmQ6ICc+JyxcbiAgICBjb250YWluczogW1xuICAgICAgYnVpbHRJblR5cGVNb2RlLFxuICAgICAgb2JqZWN0SGFuZGxlTW9kZVxuICAgIF1cbiAgfTtcblxuICBidWlsdEluVHlwZU1vZGUuY29udGFpbnMgPSBbIGdlbmVyaWNNb2RlIF07XG4gIG9iamVjdEhhbmRsZU1vZGUuY29udGFpbnMgPSBbIGdlbmVyaWNNb2RlIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJmb3JcIixcbiAgICBcImlufDBcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcImRvfDBcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcImNhc2VcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwib3JcIixcbiAgICBcImFuZFwiLFxuICAgIFwieG9yXCIsXG4gICAgXCJub3RcIixcbiAgICBcImdldHwwXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5vdXR8MTBcIixcbiAgICBcIm91dFwiLFxuICAgIFwib3ZlcnJpZGVcIixcbiAgICBcInNldHwwXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJkZWZhdWx0fDBcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJzaGFyZWRcIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJtaXhpbnwxMFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwiZnVuY2RlZlwiLFxuICAgIFwidGhpc1wiLFxuICAgIFwic3VwZXJcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJhYnN0cmFjdHwwXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcImV4cGxpY2l0XCIsXG4gICAgXCJwcm9wZXJ0eVwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQW5nZWxTY3JpcHQnLFxuICAgIGFsaWFzZXM6IFsgJ2FzYycgXSxcblxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcblxuICAgIC8vIGF2b2lkIGNsb3NlIGRldGVjdGlvbiB3aXRoIEMjIGFuZCBKU1xuICAgIGlsbGVnYWw6ICcoXnVzaW5nXFxcXHMrW0EtWmEtejAtOV9cXFxcLl0rOyR8XFxcXGJmdW5jdGlvblxcXFxzKlteXFxcXChdKScsXG5cbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyAnc3RyaW5ncydcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuXG4gICAgICAvLyBcIlwiXCJoZXJlZG9jIHN0cmluZ3NcIlwiXCJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuXG4gICAgICB7IC8vIFwic3RyaW5nc1wiXG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG5cbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSwgLy8gc2luZ2xlLWxpbmUgY29tbWVudHNcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsIC8vIGNvbW1lbnQgYmxvY2tzXG5cbiAgICAgIHsgLy8gbWV0YWRhdGFcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqXFxcXFsnLFxuICAgICAgICBlbmQ6ICdcXFxcXSdcbiAgICAgIH0sXG5cbiAgICAgIHsgLy8gaW50ZXJmYWNlIG9yIG5hbWVzcGFjZSBkZWNsYXJhdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW50ZXJmYWNlIG5hbWVzcGFjZScsXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGlsbGVnYWw6ICdbOy5cXFxcLV0nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgLy8gaW50ZXJmYWNlIG9yIG5hbWVzcGFjZSBuYW1lXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICAgICAgYmVnaW46ICdbYS16QS1aMC05X10rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgeyAvLyBjbGFzcyBkZWNsYXJhdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MnLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBpbGxlZ2FsOiAnWzsuXFxcXC1dJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IC8vIGNsYXNzIG5hbWVcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICBiZWdpbjogJ1thLXpBLVowLTlfXSsnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnWzosXVxcXFxzKicsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdbYS16QS1aMC05X10rJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcblxuICAgICAgYnVpbHRJblR5cGVNb2RlLCAvLyBidWlsdC1pbiB0eXBlc1xuICAgICAgb2JqZWN0SGFuZGxlTW9kZSwgLy8gb2JqZWN0IGhhbmRsZXNcblxuICAgICAgeyAvLyBsaXRlcmFsc1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihudWxsfHRydWV8ZmFsc2UpJ1xuICAgICAgfSxcblxuICAgICAgeyAvLyBudW1iZXJzXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICcoLT8pKFxcXFxiMFt4WGJCb09kRF1bYS1mQS1GMC05XSt8KFxcXFxiXFxcXGQrKFxcXFwuXFxcXGQqKT9mP3xcXFxcLlxcXFxkK2Y/KShbZUVdWy0rXT9cXFxcZCtmPyk/KSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYW5nZWxzY3JpcHQ7XG4iLCAiLypcbkxhbmd1YWdlOiBBcGFjaGUgY29uZmlnXG5BdXRob3I6IFJ1c2xhbiBLZWJhIDxydWtlYmFAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbldlYnNpdGU6IGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZ1xuRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gZm9yIEFwYWNoZSBjb25maWd1cmF0aW9uIGZpbGVzIChodHRwZC5jb25mICYgLmh0YWNjZXNzKVxuQ2F0ZWdvcnk6IGNvbmZpZywgd2ViXG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGFwYWNoZShobGpzKSB7XG4gIGNvbnN0IE5VTUJFUl9SRUYgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogL1skJV1cXGQrL1xuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogL1xcYlxcZCsvXG4gIH07XG4gIGNvbnN0IElQX0FERFJFU1MgPSB7XG4gICAgY2xhc3NOYW1lOiBcIm51bWJlclwiLFxuICAgIGJlZ2luOiAvXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM30oOlxcZHsxLDV9KT8vXG4gIH07XG4gIGNvbnN0IFBPUlRfTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogXCJudW1iZXJcIixcbiAgICBiZWdpbjogLzpcXGR7MSw1fS9cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXBhY2hlIGNvbmZpZycsXG4gICAgYWxpYXNlczogWyAnYXBhY2hlY29uZicgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgYmVnaW46IC88XFwvPy8sXG4gICAgICAgIGVuZDogLz4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIElQX0FERFJFU1MsXG4gICAgICAgICAgUE9SVF9OVU1CRVIsXG4gICAgICAgICAgLy8gbG93IHJlbGV2YW5jZSBwcmV2ZW50cyB1cyBmcm9tIGNsYW1pbmcgWE1ML0hUTUwgd2hlcmUgdGhpcyBydWxlIHdvdWxkXG4gICAgICAgICAgLy8gbWF0Y2ggc3RyaW5ncyBpbnNpZGUgb2YgWE1MIHRhZ3NcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyByZWxldmFuY2U6IDAgfSlcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAvLyBrZXl3b3JkcyBhcmVuXHUyMDE5dCBuZWVkZWQgZm9yIGhpZ2hsaWdodGluZyBwZXIgc2UsIHRoZXkgb25seSBib29zdCByZWxldmFuY2VcbiAgICAgICAgLy8gZm9yIGEgdmVyeSBnZW5lcmFsbHkgZGVmaW5lZCBtb2RlIChzdGFydHMgd2l0aCBhIHdvcmQsIGVuZHMgd2l0aCBsaW5lLWVuZFxuICAgICAgICBrZXl3b3JkczogeyBfOiBbXG4gICAgICAgICAgXCJvcmRlclwiLFxuICAgICAgICAgIFwiZGVueVwiLFxuICAgICAgICAgIFwiYWxsb3dcIixcbiAgICAgICAgICBcInNldGVudlwiLFxuICAgICAgICAgIFwicmV3cml0ZXJ1bGVcIixcbiAgICAgICAgICBcInJld3JpdGVlbmdpbmVcIixcbiAgICAgICAgICBcInJld3JpdGVjb25kXCIsXG4gICAgICAgICAgXCJkb2N1bWVudHJvb3RcIixcbiAgICAgICAgICBcInNldGhhbmRsZXJcIixcbiAgICAgICAgICBcImVycm9yZG9jdW1lbnRcIixcbiAgICAgICAgICBcImxvYWRtb2R1bGVcIixcbiAgICAgICAgICBcIm9wdGlvbnNcIixcbiAgICAgICAgICBcImhlYWRlclwiLFxuICAgICAgICAgIFwibGlzdGVuXCIsXG4gICAgICAgICAgXCJzZXJ2ZXJyb290XCIsXG4gICAgICAgICAgXCJzZXJ2ZXJuYW1lXCJcbiAgICAgICAgXSB9LFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAga2V5d29yZHM6IHsgbGl0ZXJhbDogJ29uIG9mZiBhbGwgZGVueSBhbGxvdycgfSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgYmVnaW46IC9cXHNcXFsvLFxuICAgICAgICAgICAgICBlbmQ6IC9cXF0kL1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICBiZWdpbjogL1tcXCQlXVxcey8sXG4gICAgICAgICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgICAgIE5VTUJFUl9SRUZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIElQX0FERFJFU1MsXG4gICAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvXFxTL1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFwYWNoZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IEFwcGxlU2NyaXB0XG5BdXRob3JzOiBOYXRoYW4gR3JpZ2cgPG5hdGhhbkBuYXRoYW5hbXkub3JnPiwgRHIuIERyYW5nIDxkcmRyYW5nQGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBzY3JpcHRpbmdcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2FyY2hpdmUvZG9jdW1lbnRhdGlvbi9BcHBsZVNjcmlwdC9Db25jZXB0dWFsL0FwcGxlU2NyaXB0TGFuZ0d1aWRlL2ludHJvZHVjdGlvbi9BU0xSX2ludHJvLmh0bWxcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXBwbGVzY3JpcHQoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFNUUklORyA9IGhsanMuaW5oZXJpdChcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSk7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBTVFJJTkdcbiAgICBdXG4gIH07XG4gIGNvbnN0IENPTU1FTlRfTU9ERV8xID0gaGxqcy5DT01NRU5UKC8tLS8sIC8kLyk7XG4gIGNvbnN0IENPTU1FTlRfTU9ERV8yID0gaGxqcy5DT01NRU5UKFxuICAgIC9cXChcXCovLFxuICAgIC9cXCpcXCkvLFxuICAgIHsgY29udGFpbnM6IFtcbiAgICAgICdzZWxmJywgLy8gYWxsb3cgbmVzdGluZ1xuICAgICAgQ09NTUVOVF9NT0RFXzFcbiAgICBdIH1cbiAgKTtcbiAgY29uc3QgQ09NTUVOVFMgPSBbXG4gICAgQ09NTUVOVF9NT0RFXzEsXG4gICAgQ09NTUVOVF9NT0RFXzIsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRfUEFUVEVSTlMgPSBbXG4gICAgL2FwYXJ0IGZyb20vLFxuICAgIC9hc2lkZSBmcm9tLyxcbiAgICAvaW5zdGVhZCBvZi8sXG4gICAgL291dCBvZi8sXG4gICAgL2dyZWF0ZXIgdGhhbi8sXG4gICAgL2lzbid0fChkb2Vzbid0fGRvZXMgbm90KSAoZXF1YWx8Y29tZSBiZWZvcmV8Y29tZSBhZnRlcnxjb250YWluKS8sXG4gICAgLyhncmVhdGVyfGxlc3MpIHRoYW4oIG9yIGVxdWFsKT8vLFxuICAgIC8oc3RhcnRzP3xlbmRzfGJlZ2lucz8pIHdpdGgvLFxuICAgIC9jb250YWluZWQgYnkvLFxuICAgIC9jb21lcyAoYmVmb3JlfGFmdGVyKS8sXG4gICAgL2EgKHJlZnxyZWZlcmVuY2UpLyxcbiAgICAvUE9TSVggKGZpbGV8cGF0aCkvLFxuICAgIC8oZGF0ZXx0aW1lKSBzdHJpbmcvLFxuICAgIC9xdW90ZWQgZm9ybS9cbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTl9QQVRURVJOUyA9IFtcbiAgICAvY2xpcGJvYXJkIGluZm8vLFxuICAgIC90aGUgY2xpcGJvYXJkLyxcbiAgICAvaW5mbyBmb3IvLFxuICAgIC9saXN0IChkaXNrc3xmb2xkZXIpLyxcbiAgICAvbW91bnQgdm9sdW1lLyxcbiAgICAvcGF0aCB0by8sXG4gICAgLyhjbG9zZXxvcGVuIGZvcikgYWNjZXNzLyxcbiAgICAvKGdldHxzZXQpIGVvZi8sXG4gICAgL2N1cnJlbnQgZGF0ZS8sXG4gICAgL2RvIHNoZWxsIHNjcmlwdC8sXG4gICAgL2dldCB2b2x1bWUgc2V0dGluZ3MvLFxuICAgIC9yYW5kb20gbnVtYmVyLyxcbiAgICAvc2V0IHZvbHVtZS8sXG4gICAgL3N5c3RlbSBhdHRyaWJ1dGUvLFxuICAgIC9zeXN0ZW0gaW5mby8sXG4gICAgL3RpbWUgdG8gR01ULyxcbiAgICAvKGxvYWR8cnVufHN0b3JlKSBzY3JpcHQvLFxuICAgIC9zY3JpcHRpbmcgY29tcG9uZW50cy8sXG4gICAgL0FTQ0lJIChjaGFyYWN0ZXJ8bnVtYmVyKS8sXG4gICAgL2xvY2FsaXplZCBzdHJpbmcvLFxuICAgIC9jaG9vc2UgKGFwcGxpY2F0aW9ufGNvbG9yfGZpbGV8ZmlsZSBuYW1lfGZvbGRlcnxmcm9tIGxpc3R8cmVtb3RlIGFwcGxpY2F0aW9ufFVSTCkvLFxuICAgIC9kaXNwbGF5IChhbGVydHxkaWFsb2cpL1xuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0FwcGxlU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbICdvc2FzY3JpcHQnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhYm91dCBhYm92ZSBhZnRlciBhZ2FpbnN0IGFuZCBhcm91bmQgYXMgYXQgYmFjayBiZWZvcmUgYmVnaW5uaW5nICdcbiAgICAgICAgKyAnYmVoaW5kIGJlbG93IGJlbmVhdGggYmVzaWRlIGJldHdlZW4gYnV0IGJ5IGNvbnNpZGVyaW5nICdcbiAgICAgICAgKyAnY29udGFpbiBjb250YWlucyBjb250aW51ZSBjb3B5IGRpdiBkb2VzIGVpZ2h0aCBlbHNlIGVuZCBlcXVhbCAnXG4gICAgICAgICsgJ2VxdWFscyBlcnJvciBldmVyeSBleGl0IGZpZnRoIGZpcnN0IGZvciBmb3VydGggZnJvbSBmcm9udCAnXG4gICAgICAgICsgJ2dldCBnaXZlbiBnbG9iYWwgaWYgaWdub3JpbmcgaW4gaW50byBpcyBpdCBpdHMgbGFzdCBsb2NhbCBtZSAnXG4gICAgICAgICsgJ21pZGRsZSBtb2QgbXkgbmludGggbm90IG9mIG9uIG9udG8gb3Igb3ZlciBwcm9wIHByb3BlcnR5IHB1dCByZWYgJ1xuICAgICAgICArICdyZWZlcmVuY2UgcmVwZWF0IHJldHVybmluZyBzY3JpcHQgc2Vjb25kIHNldCBzZXZlbnRoIHNpbmNlICdcbiAgICAgICAgKyAnc2l4dGggc29tZSB0ZWxsIHRlbnRoIHRoYXQgdGhlfDAgdGhlbiB0aGlyZCB0aHJvdWdoIHRocnUgJ1xuICAgICAgICArICd0aW1lb3V0IHRpbWVzIHRvIHRyYW5zYWN0aW9uIHRyeSB1bnRpbCB3aGVyZSB3aGlsZSB3aG9zZSB3aXRoICdcbiAgICAgICAgKyAnd2l0aG91dCcsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnQXBwbGVTY3JpcHQgZmFsc2UgbGluZWZlZWQgcmV0dXJuIHBpIHF1b3RlIHJlc3VsdCBzcGFjZSB0YWIgdHJ1ZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ2FsaWFzIGFwcGxpY2F0aW9uIGJvb2xlYW4gY2xhc3MgY29uc3RhbnQgZGF0ZSBmaWxlIGludGVnZXIgbGlzdCAnXG4gICAgICAgICsgJ251bWJlciByZWFsIHJlY29yZCBzdHJpbmcgdGV4dCAnXG4gICAgICAgICsgJ2FjdGl2YXRlIGJlZXAgY291bnQgZGVsYXkgbGF1bmNoIGxvZyBvZmZzZXQgcmVhZCByb3VuZCAnXG4gICAgICAgICsgJ3J1biBzYXkgc3VtbWFyaXplIHdyaXRlICdcbiAgICAgICAgKyAnY2hhcmFjdGVyIGNoYXJhY3RlcnMgY29udGVudHMgZGF5IGZyb250bW9zdCBpZCBpdGVtIGxlbmd0aCAnXG4gICAgICAgICsgJ21vbnRoIG5hbWV8MCBwYXJhZ3JhcGggcGFyYWdyYXBocyByZXN0IHJldmVyc2UgcnVubmluZyB0aW1lIHZlcnNpb24gJ1xuICAgICAgICArICd3ZWVrZGF5IHdvcmQgd29yZHMgeWVhcidcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBTVFJJTkcsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvXFxiLyxcbiAgICAgICAgICByZWdleC5laXRoZXIoLi4uQlVJTFRfSU5fUEFUVEVSTlMpLFxuICAgICAgICAgIC9cXGIvXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IC9eXFxzKnJldHVyblxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICBiZWdpbjpcbiAgICAgICAgICAvXFxiKHRleHQgaXRlbSBkZWxpbWl0ZXJzfGN1cnJlbnQgYXBwbGljYXRpb258bWlzc2luZyB2YWx1ZSlcXGIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvXFxiLyxcbiAgICAgICAgICByZWdleC5laXRoZXIoLi4uS0VZV09SRF9QQVRURVJOUyksXG4gICAgICAgICAgL1xcYi9cbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ29uJyxcbiAgICAgICAgaWxsZWdhbDogL1skez07XFxuXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAgUEFSQU1TXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAuLi5DT01NRU5UU1xuICAgIF0sXG4gICAgaWxsZWdhbDogL1xcL1xcL3wtPnw9PnxcXFtcXFsvXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwbGVzY3JpcHQ7XG4iLCAiLypcbiBMYW5ndWFnZTogQXJjR0lTIEFyY2FkZVxuIENhdGVnb3J5OiBzY3JpcHRpbmdcbiBBdXRob3I6IEpvaG4gRm9zdGVyIDxqZm9zdGVyQGVzcmkuY29tPlxuIFdlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVycy5hcmNnaXMuY29tL2FyY2FkZS9cbiBEZXNjcmlwdGlvbjogQXJjR0lTIEFyY2FkZSBpcyBhbiBleHByZXNzaW9uIGxhbmd1YWdlIHVzZWQgaW4gbWFueSBFc3JpIEFyY0dJUyBwcm9kdWN0cyBzdWNoIGFzIFBybywgT25saW5lLCBTZXJ2ZXIsIFJ1bnRpbWUsIEphdmFTY3JpcHQsIGFuZCBQeXRob25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhcmNhZGUoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UX1JFID0gJ1tBLVphLXpfXVswLTlBLVphLXpfXSonO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBbXG4gICAgICBcImJyZWFrXCIsXG4gICAgICBcImNhc2VcIixcbiAgICAgIFwiY2F0Y2hcIixcbiAgICAgIFwiY29udGludWVcIixcbiAgICAgIFwiZGVidWdnZXJcIixcbiAgICAgIFwiZG9cIixcbiAgICAgIFwiZWxzZVwiLFxuICAgICAgXCJleHBvcnRcIixcbiAgICAgIFwiZm9yXCIsXG4gICAgICBcImZ1bmN0aW9uXCIsXG4gICAgICBcImlmXCIsXG4gICAgICBcImltcG9ydFwiLFxuICAgICAgXCJpblwiLFxuICAgICAgXCJuZXdcIixcbiAgICAgIFwicmV0dXJuXCIsXG4gICAgICBcInN3aXRjaFwiLFxuICAgICAgXCJ0cnlcIixcbiAgICAgIFwidmFyXCIsXG4gICAgICBcInZvaWRcIixcbiAgICAgIFwid2hpbGVcIlxuICAgIF0sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgXCJCYWNrU2xhc2hcIixcbiAgICAgIFwiRG91YmxlUXVvdGVcIixcbiAgICAgIFwiRm9yd2FyZFNsYXNoXCIsXG4gICAgICBcIkluZmluaXR5XCIsXG4gICAgICBcIk5hTlwiLFxuICAgICAgXCJOZXdMaW5lXCIsXG4gICAgICBcIlBJXCIsXG4gICAgICBcIlNpbmdsZVF1b3RlXCIsXG4gICAgICBcIlRhYlwiLFxuICAgICAgXCJUZXh0Rm9ybWF0dGluZ1wiLFxuICAgICAgXCJmYWxzZVwiLFxuICAgICAgXCJudWxsXCIsXG4gICAgICBcInRydWVcIixcbiAgICAgIFwidW5kZWZpbmVkXCJcbiAgICBdLFxuICAgIGJ1aWx0X2luOiBbXG4gICAgICBcIkFic1wiLFxuICAgICAgXCJBY29zXCIsXG4gICAgICBcIkFsbFwiLFxuICAgICAgXCJBbmdsZVwiLFxuICAgICAgXCJBbnlcIixcbiAgICAgIFwiQXJlYVwiLFxuICAgICAgXCJBcmVhR2VvZGV0aWNcIixcbiAgICAgIFwiQXJyYXlcIixcbiAgICAgIFwiQXNpblwiLFxuICAgICAgXCJBdGFuXCIsXG4gICAgICBcIkF0YW4yXCIsXG4gICAgICBcIkF0dGFjaG1lbnRzXCIsXG4gICAgICBcIkF2ZXJhZ2VcIixcbiAgICAgIFwiQmFja1wiLFxuICAgICAgXCJCZWFyaW5nXCIsXG4gICAgICBcIkJvb2xlYW5cIixcbiAgICAgIFwiQnVmZmVyXCIsXG4gICAgICBcIkJ1ZmZlckdlb2RldGljXCIsXG4gICAgICBcIkNlaWxcIixcbiAgICAgIFwiQ2VudHJvaWRcIixcbiAgICAgIFwiQ2hhbmdlVGltZVpvbmVcIixcbiAgICAgIFwiQ2xpcFwiLFxuICAgICAgXCJDb25jYXRlbmF0ZVwiLFxuICAgICAgXCJDb25zb2xlXCIsXG4gICAgICBcIkNvbnN0cmFpblwiLFxuICAgICAgXCJDb250YWluc1wiLFxuICAgICAgXCJDb252ZXJ0RGlyZWN0aW9uXCIsXG4gICAgICBcIkNvbnZleEh1bGxcIixcbiAgICAgIFwiQ29zXCIsXG4gICAgICBcIkNvdW50XCIsXG4gICAgICBcIkNyb3NzZXNcIixcbiAgICAgIFwiQ3V0XCIsXG4gICAgICBcIkRhdGV8MFwiLFxuICAgICAgXCJEYXRlQWRkXCIsXG4gICAgICBcIkRhdGVEaWZmXCIsXG4gICAgICBcIkRhdGVPbmx5XCIsXG4gICAgICBcIkRheVwiLFxuICAgICAgXCJEZWNvZGVcIixcbiAgICAgIFwiRGVmYXVsdFZhbHVlXCIsXG4gICAgICBcIkRlbnNpZnlcIixcbiAgICAgIFwiRGVuc2lmeUdlb2RldGljXCIsXG4gICAgICBcIkRpY3Rpb25hcnlcIixcbiAgICAgIFwiRGlmZmVyZW5jZVwiLFxuICAgICAgXCJEaXNqb2ludFwiLFxuICAgICAgXCJEaXN0YW5jZVwiLFxuICAgICAgXCJEaXN0YW5jZUdlb2RldGljXCIsXG4gICAgICBcIkRpc3RpbmN0XCIsXG4gICAgICBcIkRvbWFpblwiLFxuICAgICAgXCJEb21haW5Db2RlXCIsXG4gICAgICBcIkRvbWFpbk5hbWVcIixcbiAgICAgIFwiRW52ZWxvcGVJbnRlcnNlY3RzXCIsXG4gICAgICBcIkVxdWFsc1wiLFxuICAgICAgXCJFcmFzZVwiLFxuICAgICAgXCJFeHBcIixcbiAgICAgIFwiRXhwZWN0c1wiLFxuICAgICAgXCJFeHRlbnRcIixcbiAgICAgIFwiRmVhdHVyZVwiLFxuICAgICAgXCJGZWF0dXJlU2V0XCIsXG4gICAgICBcIkZlYXR1cmVTZXRCeUFzc29jaWF0aW9uXCIsXG4gICAgICBcIkZlYXR1cmVTZXRCeUlkXCIsXG4gICAgICBcIkZlYXR1cmVTZXRCeU5hbWVcIixcbiAgICAgIFwiRmVhdHVyZVNldEJ5UG9ydGFsSXRlbVwiLFxuICAgICAgXCJGZWF0dXJlU2V0QnlSZWxhdGlvbnNoaXBDbGFzc1wiLFxuICAgICAgXCJGZWF0dXJlU2V0QnlSZWxhdGlvbnNoaXBOYW1lXCIsXG4gICAgICBcIkZpbHRlclwiLFxuICAgICAgXCJGaW5kXCIsXG4gICAgICBcIkZpcnN0fDBcIixcbiAgICAgIFwiRmxvb3JcIixcbiAgICAgIFwiRnJvbUNoYXJDb2RlXCIsXG4gICAgICBcIkZyb21Db2RlUG9pbnRcIixcbiAgICAgIFwiRnJvbUpTT05cIixcbiAgICAgIFwiRnJvbnRcIixcbiAgICAgIFwiR2RiVmVyc2lvblwiLFxuICAgICAgXCJHZW5lcmFsaXplXCIsXG4gICAgICBcIkdlb21ldHJ5XCIsXG4gICAgICBcIkdldEVudmlyb25tZW50XCIsXG4gICAgICBcIkdldEZlYXR1cmVTZXRcIixcbiAgICAgIFwiR2V0RmVhdHVyZVNldEluZm9cIixcbiAgICAgIFwiR2V0VXNlclwiLFxuICAgICAgXCJHcm91cEJ5XCIsXG4gICAgICBcIkd1aWRcIixcbiAgICAgIFwiSGFzS2V5XCIsXG4gICAgICBcIkhhc1ZhbHVlXCIsXG4gICAgICBcIkhhc2hcIixcbiAgICAgIFwiSG91clwiLFxuICAgICAgXCJJSWZcIixcbiAgICAgIFwiSVNPTW9udGhcIixcbiAgICAgIFwiSVNPV2Vla1wiLFxuICAgICAgXCJJU09XZWVrZGF5XCIsXG4gICAgICBcIklTT1llYXJcIixcbiAgICAgIFwiSW5jbHVkZXNcIixcbiAgICAgIFwiSW5kZXhPZlwiLFxuICAgICAgXCJJbnNlcnRcIixcbiAgICAgIFwiSW50ZXJzZWN0aW9uXCIsXG4gICAgICBcIkludGVyc2VjdHNcIixcbiAgICAgIFwiSXNFbXB0eVwiLFxuICAgICAgXCJJc05hblwiLFxuICAgICAgXCJJc1NlbGZJbnRlcnNlY3RpbmdcIixcbiAgICAgIFwiSXNTaW1wbGVcIixcbiAgICAgIFwiTGVmdHwwXCIsXG4gICAgICBcIkxlbmd0aFwiLFxuICAgICAgXCJMZW5ndGgzRFwiLFxuICAgICAgXCJMZW5ndGhHZW9kZXRpY1wiLFxuICAgICAgXCJMb2dcIixcbiAgICAgIFwiTG93ZXJcIixcbiAgICAgIFwiTWFwXCIsXG4gICAgICBcIk1heFwiLFxuICAgICAgXCJNZWFuXCIsXG4gICAgICBcIk1pZFwiLFxuICAgICAgXCJNaWxsaXNlY29uZFwiLFxuICAgICAgXCJNaW5cIixcbiAgICAgIFwiTWludXRlXCIsXG4gICAgICBcIk1vbnRoXCIsXG4gICAgICBcIk11bHRpUGFydFRvU2luZ2xlUGFydFwiLFxuICAgICAgXCJNdWx0aXBvaW50XCIsXG4gICAgICBcIk5lYXJlc3RDb29yZGluYXRlXCIsXG4gICAgICBcIk5lYXJlc3RWZXJ0ZXhcIixcbiAgICAgIFwiTmV4dFNlcXVlbmNlVmFsdWVcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICAgXCJOb3dcIixcbiAgICAgIFwiTnVtYmVyXCIsXG4gICAgICBcIk9mZnNldFwiLFxuICAgICAgXCJPcmRlckJ5XCIsXG4gICAgICBcIk92ZXJsYXBzXCIsXG4gICAgICBcIlBvaW50XCIsXG4gICAgICBcIlBvbHlnb25cIixcbiAgICAgIFwiUG9seWxpbmVcIixcbiAgICAgIFwiUG9wXCIsXG4gICAgICBcIlBvcnRhbFwiLFxuICAgICAgXCJQb3dcIixcbiAgICAgIFwiUHJvcGVyXCIsXG4gICAgICBcIlB1c2hcIixcbiAgICAgIFwiUmFuZG9tXCIsXG4gICAgICBcIlJlZHVjZVwiLFxuICAgICAgXCJSZWxhdGVcIixcbiAgICAgIFwiUmVwbGFjZVwiLFxuICAgICAgXCJSZXNpemVcIixcbiAgICAgIFwiUmV2ZXJzZVwiLFxuICAgICAgXCJSaWdodHwwXCIsXG4gICAgICBcIlJpbmdJc0Nsb2Nrd2lzZVwiLFxuICAgICAgXCJSb3RhdGVcIixcbiAgICAgIFwiUm91bmRcIixcbiAgICAgIFwiU2NoZW1hXCIsXG4gICAgICBcIlNlY29uZFwiLFxuICAgICAgXCJTZXRHZW9tZXRyeVwiLFxuICAgICAgXCJTaW1wbGlmeVwiLFxuICAgICAgXCJTaW5cIixcbiAgICAgIFwiU2xpY2VcIixcbiAgICAgIFwiU29ydFwiLFxuICAgICAgXCJTcGxpY2VcIixcbiAgICAgIFwiU3BsaXRcIixcbiAgICAgIFwiU3FydFwiLFxuICAgICAgXCJTdGFuZGFyZGl6ZUd1aWRcIixcbiAgICAgIFwiU3RkZXZcIixcbiAgICAgIFwiU3VidHlwZUNvZGVcIixcbiAgICAgIFwiU3VidHlwZU5hbWVcIixcbiAgICAgIFwiU3VidHlwZXNcIixcbiAgICAgIFwiU3VtXCIsXG4gICAgICBcIlN5bW1ldHJpY0RpZmZlcmVuY2VcIixcbiAgICAgIFwiVGFuXCIsXG4gICAgICBcIlRleHRcIixcbiAgICAgIFwiVGltZVwiLFxuICAgICAgXCJUaW1lWm9uZVwiLFxuICAgICAgXCJUaW1lWm9uZU9mZnNldFwiLFxuICAgICAgXCJUaW1lc3RhbXBcIixcbiAgICAgIFwiVG9DaGFyQ29kZVwiLFxuICAgICAgXCJUb0NvZGVQb2ludFwiLFxuICAgICAgXCJUb0hleFwiLFxuICAgICAgXCJUb0xvY2FsXCIsXG4gICAgICBcIlRvVVRDXCIsXG4gICAgICBcIlRvZGF5XCIsXG4gICAgICBcIlRvcHwwXCIsXG4gICAgICBcIlRvdWNoZXNcIixcbiAgICAgIFwiVHJhY2tBY2NlbGVyYXRpb25BdFwiLFxuICAgICAgXCJUcmFja0FjY2VsZXJhdGlvbldpbmRvd1wiLFxuICAgICAgXCJUcmFja0N1cnJlbnRBY2NlbGVyYXRpb25cIixcbiAgICAgIFwiVHJhY2tDdXJyZW50RGlzdGFuY2VcIixcbiAgICAgIFwiVHJhY2tDdXJyZW50U3BlZWRcIixcbiAgICAgIFwiVHJhY2tDdXJyZW50VGltZVwiLFxuICAgICAgXCJUcmFja0Rpc3RhbmNlQXRcIixcbiAgICAgIFwiVHJhY2tEaXN0YW5jZVdpbmRvd1wiLFxuICAgICAgXCJUcmFja0R1cmF0aW9uXCIsXG4gICAgICBcIlRyYWNrRmllbGRXaW5kb3dcIixcbiAgICAgIFwiVHJhY2tHZW9tZXRyeVdpbmRvd1wiLFxuICAgICAgXCJUcmFja0luZGV4XCIsXG4gICAgICBcIlRyYWNrU3BlZWRBdFwiLFxuICAgICAgXCJUcmFja1NwZWVkV2luZG93XCIsXG4gICAgICBcIlRyYWNrU3RhcnRUaW1lXCIsXG4gICAgICBcIlRyYWNrV2luZG93XCIsXG4gICAgICBcIlRyaW1cIixcbiAgICAgIFwiVHlwZU9mXCIsXG4gICAgICBcIlVuaW9uXCIsXG4gICAgICBcIlVwcGVyXCIsXG4gICAgICBcIlVybEVuY29kZVwiLFxuICAgICAgXCJWYXJpYW5jZVwiLFxuICAgICAgXCJXZWVrXCIsXG4gICAgICBcIldlZWtkYXlcIixcbiAgICAgIFwiV2hlbnwwXCIsXG4gICAgICBcIldpdGhpblwiLFxuICAgICAgXCJZZWFyfDBcIixcbiAgICBdXG4gIH07XG4gIGNvbnN0IFBST0ZJTEVfVkFSUyA9IFtcbiAgICBcImFnZ3JlZ2F0ZWRGZWF0dXJlc1wiLFxuICAgIFwiYW5hbHl0aWNcIixcbiAgICBcImNvbmZpZ1wiLFxuICAgIFwiZGF0YXBvaW50XCIsXG4gICAgXCJkYXRhc3RvcmVcIixcbiAgICBcImVkaXRjb250ZXh0XCIsXG4gICAgXCJmZWF0dXJlXCIsXG4gICAgXCJmZWF0dXJlU2V0XCIsXG4gICAgXCJmZWVkZmVhdHVyZVwiLFxuICAgIFwiZmVuY2VmZWF0dXJlXCIsXG4gICAgXCJmZW5jZW5vdGlmaWNhdGlvbnR5cGVcIixcbiAgICBcImpvaW5cIixcbiAgICBcImxheWVyXCIsXG4gICAgXCJsb2NhdGlvbnVwZGF0ZVwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtZWFzdXJlXCIsXG4gICAgXCJtZWFzdXJlXCIsXG4gICAgXCJvcmlnaW5hbEZlYXR1cmVcIixcbiAgICBcInJlY29yZFwiLFxuICAgIFwicmVmZXJlbmNlXCIsXG4gICAgXCJyb3dpbmRleFwiLFxuICAgIFwic291cmNlZGF0YXN0b3JlXCIsXG4gICAgXCJzb3VyY2VmZWF0dXJlXCIsXG4gICAgXCJzb3VyY2VsYXllclwiLFxuICAgIFwidGFyZ2V0XCIsXG4gICAgXCJ0YXJnZXRkYXRhc3RvcmVcIixcbiAgICBcInRhcmdldGZlYXR1cmVcIixcbiAgICBcInRhcmdldGxheWVyXCIsXG4gICAgXCJ2YWx1ZVwiLFxuICAgIFwidmlld1wiXG4gIF07XG4gIGNvbnN0IFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgcmVnZXguZWl0aGVyKC4uLlBST0ZJTEVfVkFSUylcbiAgfTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwW2JCXVswMV0rKScgfSxcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwW29PXVswLTddKyknIH0sXG4gICAgICB7IGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46ICdcXFxcJFxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfScsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXSAvLyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IFRFTVBMQVRFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnYCcsXG4gICAgZW5kOiAnYCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUXG4gICAgXVxuICB9O1xuICBTVUJTVC5jb250YWlucyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgTlVNQkVSLFxuICAgIGhsanMuUkVHRVhQX01PREVcbiAgXTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1QuY29udGFpbnMuY29uY2F0KFtcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERVxuICBdKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBcmNHSVMgQXJjYWRlJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBTWU1CT0wsXG4gICAgICBOVU1CRVIsXG4gICAgICB7IC8vIG9iamVjdCBhdHRyIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogL1t7LF1cXHMqLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSArICdcXFxccyo6JyxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gXCJ2YWx1ZVwiIGNvbnRhaW5lclxuICAgICAgICBiZWdpbjogJygnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXGIocmV0dXJuKVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIGJlZ2luOiAnKFxcXFwoLio/XFxcXCl8JyArIElERU5UX1JFICsgJylcXFxccyo9PicsXG4gICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGVuZDogJ1xcXFxzKj0+JyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7IGJlZ2luOiBJREVOVF9SRSB9LFxuICAgICAgICAgICAgICAgICAgeyBiZWdpbjogL1xcKFxccypcXCkvIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uJyxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIixcbiAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBQQVJBTVNfQ09OVEFJTlNcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIGlsbGVnYWw6IC9cXFt8JS9cbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAvXFwkWyguXS8gfVxuICAgIF0sXG4gICAgaWxsZWdhbDogLyMoPyEhKS9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcmNhZGU7XG4iLCAiLypcbkxhbmd1YWdlOiBDKytcbkNhdGVnb3J5OiBjb21tb24sIHN5c3RlbVxuV2Vic2l0ZTogaHR0cHM6Ly9pc29jcHAub3JnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY1BsdXNQbHVzKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvLyBhZGRlZCBmb3IgaGlzdG9yaWMgcmVhc29ucyBiZWNhdXNlIGBobGpzLkNfTElORV9DT01NRU5UX01PREVgIGRvZXNcbiAgLy8gbm90IGluY2x1ZGUgc3VjaCBzdXBwb3J0IG5vciBjYW4gd2UgYmUgc3VyZSBhbGwgdGhlIGdyYW1tYXJzIGRlcGVuZGluZ1xuICAvLyBvbiBpdCB3b3VsZCBkZXNpcmUgdGhpcyBiZWhhdmlvclxuICBjb25zdCBDX0xJTkVfQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKCcvLycsICckJywgeyBjb250YWluczogWyB7IGJlZ2luOiAvXFxcXFxcbi8gfSBdIH0pO1xuICBjb25zdCBERUNMVFlQRV9BVVRPX1JFID0gJ2RlY2x0eXBlXFxcXChhdXRvXFxcXCknO1xuICBjb25zdCBOQU1FU1BBQ0VfUkUgPSAnW2EtekEtWl9dXFxcXHcqOjonO1xuICBjb25zdCBURU1QTEFURV9BUkdVTUVOVF9SRSA9ICc8W148Pl0rPic7XG4gIGNvbnN0IEZVTkNUSU9OX1RZUEVfUkUgPSAnKD8hc3RydWN0KSgnXG4gICAgKyBERUNMVFlQRV9BVVRPX1JFICsgJ3wnXG4gICAgKyByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpXG4gICAgKyAnW2EtekEtWl9dXFxcXHcqJyArIHJlZ2V4Lm9wdGlvbmFsKFRFTVBMQVRFX0FSR1VNRU5UX1JFKVxuICArICcpJztcblxuICBjb25zdCBDUFBfUFJJTUlUSVZFX1RZUEVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIGJlZ2luOiAnXFxcXGJbYS16XFxcXGRfXSpfdFxcXFxiJ1xuICB9O1xuXG4gIC8vIGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNlLmNvbS93L2NwcC9sYW5ndWFnZS9lc2NhcGVcbiAgLy8gXFxcXCBcXHggXFx4RkYgXFx1MjgzNyBcXHUwMDMyMzc0NyBcXDM3NFxuICBjb25zdCBDSEFSQUNURVJfRVNDQVBFUyA9ICdcXFxcXFxcXCh4WzAtOUEtRmEtZl17Mn18dVswLTlBLUZhLWZdezQsOH18WzAtN117M318XFxcXFMpJztcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVfEwpP1wiJyxcbiAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcodTg/fFV8TCk/XFwnKCcgKyBDSEFSQUNURVJfRVNDQVBFUyArICd8LiknLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnLidcbiAgICAgIH0sXG4gICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgYmVnaW46IC8oPzp1OD98VXxMKT9SXCIoW14oKVxcXFwgXXswLDE2fSlcXCgvLFxuICAgICAgICBlbmQ6IC9cXCkoW14oKVxcXFwgXXswLDE2fSlcIi9cbiAgICAgIH0pXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gRmxvYXRpbmctcG9pbnQgbGl0ZXJhbC5cbiAgICAgIHsgYmVnaW46XG4gICAgICAgIFwiWystXT8oPzpcIiAvLyBMZWFkaW5nIHNpZ24uXG4gICAgICAgICAgLy8gRGVjaW1hbC5cbiAgICAgICAgICArIFwiKD86XCJcbiAgICAgICAgICAgICtcIlswLTldKD86Jz9bMC05XSkqXFxcXC4oPzpbMC05XSg/Oic/WzAtOV0pKik/XCJcbiAgICAgICAgICAgICsgXCJ8XFxcXC5bMC05XSg/Oic/WzAtOV0pKlwiXG4gICAgICAgICAgKyBcIikoPzpbRWVdWystXT9bMC05XSg/Oic/WzAtOV0pKik/XCJcbiAgICAgICAgICArIFwifFswLTldKD86Jz9bMC05XSkqW0VlXVsrLV0/WzAtOV0oPzonP1swLTldKSpcIlxuICAgICAgICAgIC8vIEhleGFkZWNpbWFsLlxuICAgICAgICAgICsgXCJ8MFtYeF0oPzpcIlxuICAgICAgICAgICAgK1wiWzAtOUEtRmEtZl0oPzonP1swLTlBLUZhLWZdKSooPzpcXFxcLig/OlswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqKT8pP1wiXG4gICAgICAgICAgICArIFwifFxcXFwuWzAtOUEtRmEtZl0oPzonP1swLTlBLUZhLWZdKSpcIlxuICAgICAgICAgICsgXCIpW1BwXVsrLV0/WzAtOV0oPzonP1swLTldKSpcIlxuICAgICAgICArIFwiKSg/OlwiIC8vIExpdGVyYWwgc3VmZml4ZXMuXG4gICAgICAgICAgKyBcIltGZl0oPzoxNnwzMnw2NHwxMjgpP1wiXG4gICAgICAgICAgKyBcInwoQkZ8YmYpMTZcIlxuICAgICAgICAgICsgXCJ8W0xsXVwiXG4gICAgICAgICAgKyBcInxcIiAvLyBMaXRlcmFsIHN1ZmZpeCBpcyBvcHRpb25hbC5cbiAgICAgICAgKyBcIilcIlxuICAgICAgfSxcbiAgICAgIC8vIEludGVnZXIgbGl0ZXJhbC5cbiAgICAgIHsgYmVnaW46XG4gICAgICAgIFwiWystXT9cXFxcYig/OlwiIC8vIExlYWRpbmcgc2lnbi5cbiAgICAgICAgICArIFwiMFtCYl1bMDFdKD86Jz9bMDFdKSpcIiAvLyBCaW5hcnkuXG4gICAgICAgICAgKyBcInwwW1h4XVswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqXCIgLy8gSGV4YWRlY2ltYWwuXG4gICAgICAgICAgKyBcInwwKD86Jz9bMC03XSkqXCIgLy8gT2N0YWwgb3IganVzdCBhIGxvbmUgemVyby5cbiAgICAgICAgICArIFwifFsxLTldKD86Jz9bMC05XSkqXCIgLy8gRGVjaW1hbC5cbiAgICAgICAgKyBcIikoPzpcIiAvLyBMaXRlcmFsIHN1ZmZpeGVzLlxuICAgICAgICAgICsgXCJbVXVdKD86TEw/fGxsPylcIlxuICAgICAgICAgICsgXCJ8W1V1XVtael0/XCJcbiAgICAgICAgICArIFwifCg/OkxMP3xsbD8pW1V1XT9cIlxuICAgICAgICAgICsgXCJ8W1p6XVtVdV1cIlxuICAgICAgICAgICsgXCJ8XCIgLy8gTGl0ZXJhbCBzdWZmaXggaXMgb3B0aW9uYWwuXG4gICAgICAgICsgXCIpXCJcbiAgICAgICAgLy8gTm90ZTogdGhlcmUgYXJlIHVzZXItZGVmaW5lZCBsaXRlcmFsIHN1ZmZpeGVzIHRvbywgYnV0IHBlcmhhcHMgaGF2aW5nIHRoZSBjdXN0b20gc3VmZml4IG5vdCBwYXJ0IG9mIHRoZVxuICAgICAgICAvLyBsaXRlcmFsIGhpZ2hsaWdodCBhY3R1YWxseSBtYWtlcyBpdCBzdGFuZCBvdXQgbW9yZS5cbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBSRVBST0NFU1NPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNcXHMqW2Etel0rXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAnaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgJ1xuICAgICAgICArICdwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZScgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcXFxcXG4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLmluaGVyaXQoU1RSSU5HUywgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLzwuKj8+L1xuICAgICAgfSxcbiAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFRJVExFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIGJlZ2luOiByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpICsgaGxqcy5JREVOVF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9USVRMRSA9IHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSkgKyBobGpzLklERU5UX1JFICsgJ1xcXFxzKlxcXFwoJztcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBSRVNFUlZFRF9LRVlXT1JEUyA9IFtcbiAgICAnYWxpZ25hcycsXG4gICAgJ2FsaWdub2YnLFxuICAgICdhbmQnLFxuICAgICdhbmRfZXEnLFxuICAgICdhc20nLFxuICAgICdhdG9taWNfY2FuY2VsJyxcbiAgICAnYXRvbWljX2NvbW1pdCcsXG4gICAgJ2F0b21pY19ub2V4Y2VwdCcsXG4gICAgJ2F1dG8nLFxuICAgICdiaXRhbmQnLFxuICAgICdiaXRvcicsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FzZScsXG4gICAgJ2NhdGNoJyxcbiAgICAnY2xhc3MnLFxuICAgICdjb19hd2FpdCcsXG4gICAgJ2NvX3JldHVybicsXG4gICAgJ2NvX3lpZWxkJyxcbiAgICAnY29tcGwnLFxuICAgICdjb25jZXB0JyxcbiAgICAnY29uc3RfY2FzdHwxMCcsXG4gICAgJ2NvbnN0ZXZhbCcsXG4gICAgJ2NvbnN0ZXhwcicsXG4gICAgJ2NvbnN0aW5pdCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnZGVjbHR5cGUnLFxuICAgICdkZWZhdWx0JyxcbiAgICAnZGVsZXRlJyxcbiAgICAnZG8nLFxuICAgICdkeW5hbWljX2Nhc3R8MTAnLFxuICAgICdlbHNlJyxcbiAgICAnZW51bScsXG4gICAgJ2V4cGxpY2l0JyxcbiAgICAnZXhwb3J0JyxcbiAgICAnZXh0ZXJuJyxcbiAgICAnZmFsc2UnLFxuICAgICdmaW5hbCcsXG4gICAgJ2ZvcicsXG4gICAgJ2ZyaWVuZCcsXG4gICAgJ2dvdG8nLFxuICAgICdpZicsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ2lubGluZScsXG4gICAgJ21vZHVsZScsXG4gICAgJ211dGFibGUnLFxuICAgICduYW1lc3BhY2UnLFxuICAgICduZXcnLFxuICAgICdub2V4Y2VwdCcsXG4gICAgJ25vdCcsXG4gICAgJ25vdF9lcScsXG4gICAgJ251bGxwdHInLFxuICAgICdvcGVyYXRvcicsXG4gICAgJ29yJyxcbiAgICAnb3JfZXEnLFxuICAgICdvdmVycmlkZScsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdwdWJsaWMnLFxuICAgICdyZWZsZXhwcicsXG4gICAgJ3JlZ2lzdGVyJyxcbiAgICAncmVpbnRlcnByZXRfY2FzdHwxMCcsXG4gICAgJ3JlcXVpcmVzJyxcbiAgICAncmV0dXJuJyxcbiAgICAnc2l6ZW9mJyxcbiAgICAnc3RhdGljX2Fzc2VydCcsXG4gICAgJ3N0YXRpY19jYXN0fDEwJyxcbiAgICAnc3RydWN0JyxcbiAgICAnc3dpdGNoJyxcbiAgICAnc3luY2hyb25pemVkJyxcbiAgICAndGVtcGxhdGUnLFxuICAgICd0aGlzJyxcbiAgICAndGhyZWFkX2xvY2FsJyxcbiAgICAndGhyb3cnLFxuICAgICd0cmFuc2FjdGlvbl9zYWZlJyxcbiAgICAndHJhbnNhY3Rpb25fc2FmZV9keW5hbWljJyxcbiAgICAndHJ1ZScsXG4gICAgJ3RyeScsXG4gICAgJ3R5cGVkZWYnLFxuICAgICd0eXBlaWQnLFxuICAgICd0eXBlbmFtZScsXG4gICAgJ3VuaW9uJyxcbiAgICAndXNpbmcnLFxuICAgICd2aXJ0dWFsJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICd3aGlsZScsXG4gICAgJ3hvcicsXG4gICAgJ3hvcl9lcSdcbiAgXTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBSRVNFUlZFRF9UWVBFUyA9IFtcbiAgICAnYm9vbCcsXG4gICAgJ2NoYXInLFxuICAgICdjaGFyMTZfdCcsXG4gICAgJ2NoYXIzMl90JyxcbiAgICAnY2hhcjhfdCcsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2Zsb2F0JyxcbiAgICAnaW50JyxcbiAgICAnbG9uZycsXG4gICAgJ3Nob3J0JyxcbiAgICAndm9pZCcsXG4gICAgJ3djaGFyX3QnLFxuICAgICd1bnNpZ25lZCcsXG4gICAgJ3NpZ25lZCcsXG4gICAgJ2NvbnN0JyxcbiAgICAnc3RhdGljJ1xuICBdO1xuXG4gIGNvbnN0IFRZUEVfSElOVFMgPSBbXG4gICAgJ2FueScsXG4gICAgJ2F1dG9fcHRyJyxcbiAgICAnYmFycmllcicsXG4gICAgJ2JpbmFyeV9zZW1hcGhvcmUnLFxuICAgICdiaXRzZXQnLFxuICAgICdjb21wbGV4JyxcbiAgICAnY29uZGl0aW9uX3ZhcmlhYmxlJyxcbiAgICAnY29uZGl0aW9uX3ZhcmlhYmxlX2FueScsXG4gICAgJ2NvdW50aW5nX3NlbWFwaG9yZScsXG4gICAgJ2RlcXVlJyxcbiAgICAnZmFsc2VfdHlwZScsXG4gICAgJ2Z1dHVyZScsXG4gICAgJ2ltYWdpbmFyeScsXG4gICAgJ2luaXRpYWxpemVyX2xpc3QnLFxuICAgICdpc3RyaW5nc3RyZWFtJyxcbiAgICAnanRocmVhZCcsXG4gICAgJ2xhdGNoJyxcbiAgICAnbG9ja19ndWFyZCcsXG4gICAgJ211bHRpbWFwJyxcbiAgICAnbXVsdGlzZXQnLFxuICAgICdtdXRleCcsXG4gICAgJ29wdGlvbmFsJyxcbiAgICAnb3N0cmluZ3N0cmVhbScsXG4gICAgJ3BhY2thZ2VkX3Rhc2snLFxuICAgICdwYWlyJyxcbiAgICAncHJvbWlzZScsXG4gICAgJ3ByaW9yaXR5X3F1ZXVlJyxcbiAgICAncXVldWUnLFxuICAgICdyZWN1cnNpdmVfbXV0ZXgnLFxuICAgICdyZWN1cnNpdmVfdGltZWRfbXV0ZXgnLFxuICAgICdzY29wZWRfbG9jaycsXG4gICAgJ3NldCcsXG4gICAgJ3NoYXJlZF9mdXR1cmUnLFxuICAgICdzaGFyZWRfbG9jaycsXG4gICAgJ3NoYXJlZF9tdXRleCcsXG4gICAgJ3NoYXJlZF90aW1lZF9tdXRleCcsXG4gICAgJ3NoYXJlZF9wdHInLFxuICAgICdzdGFjaycsXG4gICAgJ3N0cmluZ192aWV3JyxcbiAgICAnc3RyaW5nc3RyZWFtJyxcbiAgICAndGltZWRfbXV0ZXgnLFxuICAgICd0aHJlYWQnLFxuICAgICd0cnVlX3R5cGUnLFxuICAgICd0dXBsZScsXG4gICAgJ3VuaXF1ZV9sb2NrJyxcbiAgICAndW5pcXVlX3B0cicsXG4gICAgJ3Vub3JkZXJlZF9tYXAnLFxuICAgICd1bm9yZGVyZWRfbXVsdGltYXAnLFxuICAgICd1bm9yZGVyZWRfbXVsdGlzZXQnLFxuICAgICd1bm9yZGVyZWRfc2V0JyxcbiAgICAndmFyaWFudCcsXG4gICAgJ3ZlY3RvcicsXG4gICAgJ3dlYWtfcHRyJyxcbiAgICAnd3N0cmluZycsXG4gICAgJ3dzdHJpbmdfdmlldydcbiAgXTtcblxuICBjb25zdCBGVU5DVElPTl9ISU5UUyA9IFtcbiAgICAnYWJvcnQnLFxuICAgICdhYnMnLFxuICAgICdhY29zJyxcbiAgICAnYXBwbHknLFxuICAgICdhc19jb25zdCcsXG4gICAgJ2FzaW4nLFxuICAgICdhdGFuJyxcbiAgICAnYXRhbjInLFxuICAgICdjYWxsb2MnLFxuICAgICdjZWlsJyxcbiAgICAnY2VycicsXG4gICAgJ2NpbicsXG4gICAgJ2Nsb2cnLFxuICAgICdjb3MnLFxuICAgICdjb3NoJyxcbiAgICAnY291dCcsXG4gICAgJ2RlY2x2YWwnLFxuICAgICdlbmRsJyxcbiAgICAnZXhjaGFuZ2UnLFxuICAgICdleGl0JyxcbiAgICAnZXhwJyxcbiAgICAnZmFicycsXG4gICAgJ2Zsb29yJyxcbiAgICAnZm1vZCcsXG4gICAgJ2ZvcndhcmQnLFxuICAgICdmcHJpbnRmJyxcbiAgICAnZnB1dHMnLFxuICAgICdmcmVlJyxcbiAgICAnZnJleHAnLFxuICAgICdmc2NhbmYnLFxuICAgICdmdXR1cmUnLFxuICAgICdpbnZva2UnLFxuICAgICdpc2FsbnVtJyxcbiAgICAnaXNhbHBoYScsXG4gICAgJ2lzY250cmwnLFxuICAgICdpc2RpZ2l0JyxcbiAgICAnaXNncmFwaCcsXG4gICAgJ2lzbG93ZXInLFxuICAgICdpc3ByaW50JyxcbiAgICAnaXNwdW5jdCcsXG4gICAgJ2lzc3BhY2UnLFxuICAgICdpc3VwcGVyJyxcbiAgICAnaXN4ZGlnaXQnLFxuICAgICdsYWJzJyxcbiAgICAnbGF1bmRlcicsXG4gICAgJ2xkZXhwJyxcbiAgICAnbG9nJyxcbiAgICAnbG9nMTAnLFxuICAgICdtYWtlX3BhaXInLFxuICAgICdtYWtlX3NoYXJlZCcsXG4gICAgJ21ha2Vfc2hhcmVkX2Zvcl9vdmVyd3JpdGUnLFxuICAgICdtYWtlX3R1cGxlJyxcbiAgICAnbWFrZV91bmlxdWUnLFxuICAgICdtYWxsb2MnLFxuICAgICdtZW1jaHInLFxuICAgICdtZW1jbXAnLFxuICAgICdtZW1jcHknLFxuICAgICdtZW1zZXQnLFxuICAgICdtb2RmJyxcbiAgICAnbW92ZScsXG4gICAgJ3BvdycsXG4gICAgJ3ByaW50ZicsXG4gICAgJ3B1dGNoYXInLFxuICAgICdwdXRzJyxcbiAgICAncmVhbGxvYycsXG4gICAgJ3NjYW5mJyxcbiAgICAnc2luJyxcbiAgICAnc2luaCcsXG4gICAgJ3NucHJpbnRmJyxcbiAgICAnc3ByaW50ZicsXG4gICAgJ3NxcnQnLFxuICAgICdzc2NhbmYnLFxuICAgICdzdGQnLFxuICAgICdzdGRlcnInLFxuICAgICdzdGRpbicsXG4gICAgJ3N0ZG91dCcsXG4gICAgJ3N0cmNhdCcsXG4gICAgJ3N0cmNocicsXG4gICAgJ3N0cmNtcCcsXG4gICAgJ3N0cmNweScsXG4gICAgJ3N0cmNzcG4nLFxuICAgICdzdHJsZW4nLFxuICAgICdzdHJuY2F0JyxcbiAgICAnc3RybmNtcCcsXG4gICAgJ3N0cm5jcHknLFxuICAgICdzdHJwYnJrJyxcbiAgICAnc3RycmNocicsXG4gICAgJ3N0cnNwbicsXG4gICAgJ3N0cnN0cicsXG4gICAgJ3N3YXAnLFxuICAgICd0YW4nLFxuICAgICd0YW5oJyxcbiAgICAndGVybWluYXRlJyxcbiAgICAndG9fdW5kZXJseWluZycsXG4gICAgJ3RvbG93ZXInLFxuICAgICd0b3VwcGVyJyxcbiAgICAndmZwcmludGYnLFxuICAgICd2aXNpdCcsXG4gICAgJ3ZwcmludGYnLFxuICAgICd2c3ByaW50ZidcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAnTlVMTCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbG9wdCcsXG4gICAgJ251bGxwdHInLFxuICAgICd0cnVlJ1xuICBdO1xuXG4gIC8vIGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNlLmNvbS93L2NwcC9rZXl3b3JkXG4gIGNvbnN0IEJVSUxUX0lOID0gWyAnX1ByYWdtYScgXTtcblxuICBjb25zdCBDUFBfS0VZV09SRFMgPSB7XG4gICAgdHlwZTogUkVTRVJWRURfVFlQRVMsXG4gICAga2V5d29yZDogUkVTRVJWRURfS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOLFxuICAgIF90eXBlX2hpbnRzOiBUWVBFX0hJTlRTXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fRElTUEFUQ0ggPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24uZGlzcGF0Y2gnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgLy8gT25seSBmb3IgcmVsZXZhbmNlLCBub3QgaGlnaGxpZ2h0aW5nLlxuICAgICAgX2hpbnQ6IEZVTkNUSU9OX0hJTlRTIH0sXG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgIC9cXGIvLFxuICAgICAgLyg/IWRlY2x0eXBlKS8sXG4gICAgICAvKD8haWYpLyxcbiAgICAgIC8oPyFmb3IpLyxcbiAgICAgIC8oPyFzd2l0Y2gpLyxcbiAgICAgIC8oPyF3aGlsZSkvLFxuICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvKDxbXjw+XSs+fClcXHMqXFwoLykpXG4gIH07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05UQUlOUyA9IFtcbiAgICBGVU5DVElPTl9ESVNQQVRDSCxcbiAgICBQUkVQUk9DRVNTT1IsXG4gICAgQ1BQX1BSSU1JVElWRV9UWVBFUyxcbiAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgTlVNQkVSUyxcbiAgICBTVFJJTkdTXG4gIF07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05URVhUID0ge1xuICAgIC8vIFRoaXMgbW9kZSBjb3ZlcnMgZXhwcmVzc2lvbiBjb250ZXh0IHdoZXJlIHdlIGNhbid0IGV4cGVjdCBhIGZ1bmN0aW9uXG4gICAgLy8gZGVmaW5pdGlvbiBhbmQgc2hvdWxkbid0IGhpZ2hsaWdodCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2Ugb25lOlxuICAgIC8vIGByZXR1cm4gc29tZSgpYCwgYGVsc2UgaWYoKWAsIGAoeCpzdW0oMSwgMikpYFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgIGVuZDogLzsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcgdGhyb3cgcmV0dXJuIGVsc2UnLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfVxuICAgIF0sXG4gICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OX0NPTlRBSU5TLmNvbmNhdChbICdzZWxmJyBdKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSksXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVDTEFSQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAnKCcgKyBGVU5DVElPTl9UWVBFX1JFICsgJ1tcXFxcKiZcXFxcc10rKSsnICsgRlVOQ1RJT05fVElUTEUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgZW5kOiAvW3s7PV0vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvW15cXHdcXHNcXComOjw+Ll0vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IC8vIHRvIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjb25mdXNlZCBhcyB0aGUgZnVuY3Rpb24gdGl0bGVcbiAgICAgICAgYmVnaW46IERFQ0xUWVBFX0FVVE9fUkUsXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFsgVElUTEVfTU9ERSBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBuZWVkZWQgYmVjYXVzZSB3ZSBkbyBub3QgaGF2ZSBsb29rLWJlaGluZCBvbiB0aGUgYmVsb3cgcnVsZVxuICAgICAgLy8gdG8gcHJldmVudCBpdCBmcm9tIGdyYWJiaW5nIHRoZSBmaW5hbCA6IGluIGEgOjogcGFpclxuICAgICAge1xuICAgICAgICBiZWdpbjogLzo6LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gaW5pdGlhbGl6ZXJzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgTlVNQkVSU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gYWxsb3cgZm9yIG11bHRpcGxlIGRlY2xhcmF0aW9ucywgZS5nLjpcbiAgICAgIC8vIGV4dGVybiB2b2lkIGYoaW50KSwgZyhjaGFyKTtcbiAgICAgIHtcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBtYXRjaDogLywvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVMsXG4gICAgICAgICAgLy8gQ291bnQgbWF0Y2hpbmcgcGFyZW50aGVzZXMuXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVNcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTLFxuICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBQUkVQUk9DRVNTT1JcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQysrJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY2MnLFxuICAgICAgJ2MrKycsXG4gICAgICAnaCsrJyxcbiAgICAgICdocHAnLFxuICAgICAgJ2hoJyxcbiAgICAgICdoeHgnLFxuICAgICAgJ2N4eCdcbiAgICBdLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjbGFzc05hbWVBbGlhc2VzOiB7ICdmdW5jdGlvbi5kaXNwYXRjaCc6ICdidWlsdF9pbicgfSxcbiAgICBjb250YWluczogW10uY29uY2F0KFxuICAgICAgRVhQUkVTU0lPTl9DT05URVhULFxuICAgICAgRlVOQ1RJT05fREVDTEFSQVRJT04sXG4gICAgICBGVU5DVElPTl9ESVNQQVRDSCxcbiAgICAgIEVYUFJFU1NJT05fQ09OVEFJTlMsXG4gICAgICBbXG4gICAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgICAgeyAvLyBjb250YWluZXJzOiBpZSwgYHZlY3RvciA8aW50PiByb29tcyAoOSk7YFxuICAgICAgICAgIGJlZ2luOiAnXFxcXGIoZGVxdWV8bGlzdHxxdWV1ZXxwcmlvcml0eV9xdWV1ZXxwYWlyfHN0YWNrfHZlY3RvcnxtYXB8c2V0fGJpdHNldHxtdWx0aXNldHxtdWx0aW1hcHx1bm9yZGVyZWRfbWFwfHVub3JkZXJlZF9zZXR8dW5vcmRlcmVkX211bHRpc2V0fHVub3JkZXJlZF9tdWx0aW1hcHxhcnJheXx0dXBsZXxvcHRpb25hbHx2YXJpYW50fGZ1bmN0aW9uKVxcXFxzKjwoPyE8KScsXG4gICAgICAgICAgZW5kOiAnPicsXG4gICAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEUyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgQ1BQX1BSSU1JVElWRV9UWVBFU1xuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgLy8gZXh0cmEgY29tcGxleGl0eSB0byBkZWFsIHdpdGggYGVudW0gY2xhc3NgIGFuZCBgZW51bSBzdHJ1Y3RgXG4gICAgICAgICAgICAvXFxiKD86ZW51bSg/OlxccysoPzpjbGFzc3xzdHJ1Y3QpKT98Y2xhc3N8c3RydWN0fHVuaW9uKS8sXG4gICAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgICAvXFx3Ky9cbiAgICAgICAgICBdLFxuICAgICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgICAgMTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgMzogJ3RpdGxlLmNsYXNzJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSlcbiAgfTtcbn1cblxuLypcbkxhbmd1YWdlOiBBcmR1aW5vXG5BdXRob3I6IFN0ZWZhbmlhIE1lbGxhaSA8cy5tZWxsYWlAYXJkdWluby5jYz5cbkRlc2NyaXB0aW9uOiBUaGUgQXJkdWlub1x1MDBBRSBMYW5ndWFnZSBpcyBhIHN1cGVyc2V0IG9mIEMrKy4gVGhpcyBydWxlcyBhcmUgZGVzaWduZWQgdG8gaGlnaGxpZ2h0IHRoZSBBcmR1aW5vXHUwMEFFIHNvdXJjZSBjb2RlLiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZSBzZWUgaHR0cDovL3d3dy5hcmR1aW5vLmNjLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuYXJkdWluby5jY1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXJkdWlubyhobGpzKSB7XG4gIGNvbnN0IEFSRFVJTk9fS1cgPSB7XG4gICAgdHlwZTogW1xuICAgICAgXCJib29sZWFuXCIsXG4gICAgICBcImJ5dGVcIixcbiAgICAgIFwid29yZFwiLFxuICAgICAgXCJTdHJpbmdcIlxuICAgIF0sXG4gICAgYnVpbHRfaW46IFtcbiAgICAgIFwiS2V5Ym9hcmRDb250cm9sbGVyXCIsXG4gICAgICBcIk1vdXNlQ29udHJvbGxlclwiLFxuICAgICAgXCJTb2Z0d2FyZVNlcmlhbFwiLFxuICAgICAgXCJFdGhlcm5ldFNlcnZlclwiLFxuICAgICAgXCJFdGhlcm5ldENsaWVudFwiLFxuICAgICAgXCJMaXF1aWRDcnlzdGFsXCIsXG4gICAgICBcIlJvYm90Q29udHJvbFwiLFxuICAgICAgXCJHU01Wb2ljZUNhbGxcIixcbiAgICAgIFwiRXRoZXJuZXRVRFBcIixcbiAgICAgIFwiRXNwbG9yYVRGVFwiLFxuICAgICAgXCJIdHRwQ2xpZW50XCIsXG4gICAgICBcIlJvYm90TW90b3JcIixcbiAgICAgIFwiV2lGaUNsaWVudFwiLFxuICAgICAgXCJHU01TY2FubmVyXCIsXG4gICAgICBcIkZpbGVTeXN0ZW1cIixcbiAgICAgIFwiU2NoZWR1bGVyXCIsXG4gICAgICBcIkdTTVNlcnZlclwiLFxuICAgICAgXCJZdW5DbGllbnRcIixcbiAgICAgIFwiWXVuU2VydmVyXCIsXG4gICAgICBcIklQQWRkcmVzc1wiLFxuICAgICAgXCJHU01DbGllbnRcIixcbiAgICAgIFwiR1NNTW9kZW1cIixcbiAgICAgIFwiS2V5Ym9hcmRcIixcbiAgICAgIFwiRXRoZXJuZXRcIixcbiAgICAgIFwiQ29uc29sZVwiLFxuICAgICAgXCJHU01CYW5kXCIsXG4gICAgICBcIkVzcGxvcmFcIixcbiAgICAgIFwiU3RlcHBlclwiLFxuICAgICAgXCJQcm9jZXNzXCIsXG4gICAgICBcIldpRmlVRFBcIixcbiAgICAgIFwiR1NNX1NNU1wiLFxuICAgICAgXCJNYWlsYm94XCIsXG4gICAgICBcIlVTQkhvc3RcIixcbiAgICAgIFwiRmlybWF0YVwiLFxuICAgICAgXCJQSW1hZ2VcIixcbiAgICAgIFwiQ2xpZW50XCIsXG4gICAgICBcIlNlcnZlclwiLFxuICAgICAgXCJHU01QSU5cIixcbiAgICAgIFwiRmlsZUlPXCIsXG4gICAgICBcIkJyaWRnZVwiLFxuICAgICAgXCJTZXJpYWxcIixcbiAgICAgIFwiRUVQUk9NXCIsXG4gICAgICBcIlN0cmVhbVwiLFxuICAgICAgXCJNb3VzZVwiLFxuICAgICAgXCJBdWRpb1wiLFxuICAgICAgXCJTZXJ2b1wiLFxuICAgICAgXCJGaWxlXCIsXG4gICAgICBcIlRhc2tcIixcbiAgICAgIFwiR1BSU1wiLFxuICAgICAgXCJXaUZpXCIsXG4gICAgICBcIldpcmVcIixcbiAgICAgIFwiVEZUXCIsXG4gICAgICBcIkdTTVwiLFxuICAgICAgXCJTUElcIixcbiAgICAgIFwiU0RcIlxuICAgIF0sXG4gICAgX2hpbnRzOiBbXG4gICAgICBcInNldHVwXCIsXG4gICAgICBcImxvb3BcIixcbiAgICAgIFwicnVuU2hlbGxDb21tYW5kQXN5bmNocm9ub3VzbHlcIixcbiAgICAgIFwiYW5hbG9nV3JpdGVSZXNvbHV0aW9uXCIsXG4gICAgICBcInJldHJpZXZlQ2FsbGluZ051bWJlclwiLFxuICAgICAgXCJwcmludEZpcm13YXJlVmVyc2lvblwiLFxuICAgICAgXCJhbmFsb2dSZWFkUmVzb2x1dGlvblwiLFxuICAgICAgXCJzZW5kRGlnaXRhbFBvcnRQYWlyXCIsXG4gICAgICBcIm5vTGlzdGVuT25Mb2NhbGhvc3RcIixcbiAgICAgIFwicmVhZEpveXN0aWNrQnV0dG9uXCIsXG4gICAgICBcInNldEZpcm13YXJlVmVyc2lvblwiLFxuICAgICAgXCJyZWFkSm95c3RpY2tTd2l0Y2hcIixcbiAgICAgIFwic2Nyb2xsRGlzcGxheVJpZ2h0XCIsXG4gICAgICBcImdldFZvaWNlQ2FsbFN0YXR1c1wiLFxuICAgICAgXCJzY3JvbGxEaXNwbGF5TGVmdFwiLFxuICAgICAgXCJ3cml0ZU1pY3Jvc2Vjb25kc1wiLFxuICAgICAgXCJkZWxheU1pY3Jvc2Vjb25kc1wiLFxuICAgICAgXCJiZWdpblRyYW5zbWlzc2lvblwiLFxuICAgICAgXCJnZXRTaWduYWxTdHJlbmd0aFwiLFxuICAgICAgXCJydW5Bc3luY2hyb25vdXNseVwiLFxuICAgICAgXCJnZXRBc3luY2hyb25vdXNseVwiLFxuICAgICAgXCJsaXN0ZW5PbkxvY2FsaG9zdFwiLFxuICAgICAgXCJnZXRDdXJyZW50Q2FycmllclwiLFxuICAgICAgXCJyZWFkQWNjZWxlcm9tZXRlclwiLFxuICAgICAgXCJtZXNzYWdlQXZhaWxhYmxlXCIsXG4gICAgICBcInNlbmREaWdpdGFsUG9ydHNcIixcbiAgICAgIFwibGluZUZvbGxvd0NvbmZpZ1wiLFxuICAgICAgXCJjb3VudHJ5TmFtZVdyaXRlXCIsXG4gICAgICBcInJ1blNoZWxsQ29tbWFuZFwiLFxuICAgICAgXCJyZWFkU3RyaW5nVW50aWxcIixcbiAgICAgIFwicmV3aW5kRGlyZWN0b3J5XCIsXG4gICAgICBcInJlYWRUZW1wZXJhdHVyZVwiLFxuICAgICAgXCJzZXRDbG9ja0RpdmlkZXJcIixcbiAgICAgIFwicmVhZExpZ2h0U2Vuc29yXCIsXG4gICAgICBcImVuZFRyYW5zbWlzc2lvblwiLFxuICAgICAgXCJhbmFsb2dSZWZlcmVuY2VcIixcbiAgICAgIFwiZGV0YWNoSW50ZXJydXB0XCIsXG4gICAgICBcImNvdW50cnlOYW1lUmVhZFwiLFxuICAgICAgXCJhdHRhY2hJbnRlcnJ1cHRcIixcbiAgICAgIFwiZW5jcnlwdGlvblR5cGVcIixcbiAgICAgIFwicmVhZEJ5dGVzVW50aWxcIixcbiAgICAgIFwicm9ib3ROYW1lV3JpdGVcIixcbiAgICAgIFwicmVhZE1pY3JvcGhvbmVcIixcbiAgICAgIFwicm9ib3ROYW1lUmVhZFwiLFxuICAgICAgXCJjaXR5TmFtZVdyaXRlXCIsXG4gICAgICBcInVzZXJOYW1lV3JpdGVcIixcbiAgICAgIFwicmVhZEpveXN0aWNrWVwiLFxuICAgICAgXCJyZWFkSm95c3RpY2tYXCIsXG4gICAgICBcIm1vdXNlUmVsZWFzZWRcIixcbiAgICAgIFwib3Blbk5leHRGaWxlXCIsXG4gICAgICBcInNjYW5OZXR3b3Jrc1wiLFxuICAgICAgXCJub0ludGVycnVwdHNcIixcbiAgICAgIFwiZGlnaXRhbFdyaXRlXCIsXG4gICAgICBcImJlZ2luU3BlYWtlclwiLFxuICAgICAgXCJtb3VzZVByZXNzZWRcIixcbiAgICAgIFwiaXNBY3Rpb25Eb25lXCIsXG4gICAgICBcIm1vdXNlRHJhZ2dlZFwiLFxuICAgICAgXCJkaXNwbGF5TG9nb3NcIixcbiAgICAgIFwibm9BdXRvc2Nyb2xsXCIsXG4gICAgICBcImFkZFBhcmFtZXRlclwiLFxuICAgICAgXCJyZW1vdGVOdW1iZXJcIixcbiAgICAgIFwiZ2V0TW9kaWZpZXJzXCIsXG4gICAgICBcImtleWJvYXJkUmVhZFwiLFxuICAgICAgXCJ1c2VyTmFtZVJlYWRcIixcbiAgICAgIFwid2FpdENvbnRpbnVlXCIsXG4gICAgICBcInByb2Nlc3NJbnB1dFwiLFxuICAgICAgXCJwYXJzZUNvbW1hbmRcIixcbiAgICAgIFwicHJpbnRWZXJzaW9uXCIsXG4gICAgICBcInJlYWROZXR3b3Jrc1wiLFxuICAgICAgXCJ3cml0ZU1lc3NhZ2VcIixcbiAgICAgIFwiYmxpbmtWZXJzaW9uXCIsXG4gICAgICBcImNpdHlOYW1lUmVhZFwiLFxuICAgICAgXCJyZWFkTWVzc2FnZVwiLFxuICAgICAgXCJzZXREYXRhTW9kZVwiLFxuICAgICAgXCJwYXJzZVBhY2tldFwiLFxuICAgICAgXCJpc0xpc3RlbmluZ1wiLFxuICAgICAgXCJzZXRCaXRPcmRlclwiLFxuICAgICAgXCJiZWdpblBhY2tldFwiLFxuICAgICAgXCJpc0RpcmVjdG9yeVwiLFxuICAgICAgXCJtb3RvcnNXcml0ZVwiLFxuICAgICAgXCJkcmF3Q29tcGFzc1wiLFxuICAgICAgXCJkaWdpdGFsUmVhZFwiLFxuICAgICAgXCJjbGVhclNjcmVlblwiLFxuICAgICAgXCJzZXJpYWxFdmVudFwiLFxuICAgICAgXCJyaWdodFRvTGVmdFwiLFxuICAgICAgXCJzZXRUZXh0U2l6ZVwiLFxuICAgICAgXCJsZWZ0VG9SaWdodFwiLFxuICAgICAgXCJyZXF1ZXN0RnJvbVwiLFxuICAgICAgXCJrZXlSZWxlYXNlZFwiLFxuICAgICAgXCJjb21wYXNzUmVhZFwiLFxuICAgICAgXCJhbmFsb2dXcml0ZVwiLFxuICAgICAgXCJpbnRlcnJ1cHRzXCIsXG4gICAgICBcIldpRmlTZXJ2ZXJcIixcbiAgICAgIFwiZGlzY29ubmVjdFwiLFxuICAgICAgXCJwbGF5TWVsb2R5XCIsXG4gICAgICBcInBhcnNlRmxvYXRcIixcbiAgICAgIFwiYXV0b3Njcm9sbFwiLFxuICAgICAgXCJnZXRQSU5Vc2VkXCIsXG4gICAgICBcInNldFBJTlVzZWRcIixcbiAgICAgIFwic2V0VGltZW91dFwiLFxuICAgICAgXCJzZW5kQW5hbG9nXCIsXG4gICAgICBcInJlYWRTbGlkZXJcIixcbiAgICAgIFwiYW5hbG9nUmVhZFwiLFxuICAgICAgXCJiZWdpbldyaXRlXCIsXG4gICAgICBcImNyZWF0ZUNoYXJcIixcbiAgICAgIFwibW90b3JzU3RvcFwiLFxuICAgICAgXCJrZXlQcmVzc2VkXCIsXG4gICAgICBcInRlbXBvV3JpdGVcIixcbiAgICAgIFwicmVhZEJ1dHRvblwiLFxuICAgICAgXCJzdWJuZXRNYXNrXCIsXG4gICAgICBcImRlYnVnUHJpbnRcIixcbiAgICAgIFwibWFjQWRkcmVzc1wiLFxuICAgICAgXCJ3cml0ZUdyZWVuXCIsXG4gICAgICBcInJhbmRvbVNlZWRcIixcbiAgICAgIFwiYXR0YWNoR1BSU1wiLFxuICAgICAgXCJyZWFkU3RyaW5nXCIsXG4gICAgICBcInNlbmRTdHJpbmdcIixcbiAgICAgIFwicmVtb3RlUG9ydFwiLFxuICAgICAgXCJyZWxlYXNlQWxsXCIsXG4gICAgICBcIm1vdXNlTW92ZWRcIixcbiAgICAgIFwiYmFja2dyb3VuZFwiLFxuICAgICAgXCJnZXRYQ2hhbmdlXCIsXG4gICAgICBcImdldFlDaGFuZ2VcIixcbiAgICAgIFwiYW5zd2VyQ2FsbFwiLFxuICAgICAgXCJnZXRSZXN1bHRcIixcbiAgICAgIFwidm9pY2VDYWxsXCIsXG4gICAgICBcImVuZFBhY2tldFwiLFxuICAgICAgXCJjb25zdHJhaW5cIixcbiAgICAgIFwiZ2V0U29ja2V0XCIsXG4gICAgICBcIndyaXRlSlNPTlwiLFxuICAgICAgXCJnZXRCdXR0b25cIixcbiAgICAgIFwiYXZhaWxhYmxlXCIsXG4gICAgICBcImNvbm5lY3RlZFwiLFxuICAgICAgXCJmaW5kVW50aWxcIixcbiAgICAgIFwicmVhZEJ5dGVzXCIsXG4gICAgICBcImV4aXRWYWx1ZVwiLFxuICAgICAgXCJyZWFkR3JlZW5cIixcbiAgICAgIFwid3JpdGVCbHVlXCIsXG4gICAgICBcInN0YXJ0TG9vcFwiLFxuICAgICAgXCJJUEFkZHJlc3NcIixcbiAgICAgIFwiaXNQcmVzc2VkXCIsXG4gICAgICBcInNlbmRTeXNleFwiLFxuICAgICAgXCJwYXVzZU1vZGVcIixcbiAgICAgIFwiZ2F0ZXdheUlQXCIsXG4gICAgICBcInNldEN1cnNvclwiLFxuICAgICAgXCJnZXRPZW1LZXlcIixcbiAgICAgIFwidHVuZVdyaXRlXCIsXG4gICAgICBcIm5vRGlzcGxheVwiLFxuICAgICAgXCJsb2FkSW1hZ2VcIixcbiAgICAgIFwic3dpdGNoUElOXCIsXG4gICAgICBcIm9uUmVxdWVzdFwiLFxuICAgICAgXCJvblJlY2VpdmVcIixcbiAgICAgIFwiY2hhbmdlUElOXCIsXG4gICAgICBcInBsYXlGaWxlXCIsXG4gICAgICBcIm5vQnVmZmVyXCIsXG4gICAgICBcInBhcnNlSW50XCIsXG4gICAgICBcIm92ZXJmbG93XCIsXG4gICAgICBcImNoZWNrUElOXCIsXG4gICAgICBcImtub2JSZWFkXCIsXG4gICAgICBcImJlZ2luVEZUXCIsXG4gICAgICBcImJpdENsZWFyXCIsXG4gICAgICBcInVwZGF0ZUlSXCIsXG4gICAgICBcImJpdFdyaXRlXCIsXG4gICAgICBcInBvc2l0aW9uXCIsXG4gICAgICBcIndyaXRlUkdCXCIsXG4gICAgICBcImhpZ2hCeXRlXCIsXG4gICAgICBcIndyaXRlUmVkXCIsXG4gICAgICBcInNldFNwZWVkXCIsXG4gICAgICBcInJlYWRCbHVlXCIsXG4gICAgICBcIm5vU3Ryb2tlXCIsXG4gICAgICBcInJlbW90ZUlQXCIsXG4gICAgICBcInRyYW5zZmVyXCIsXG4gICAgICBcInNodXRkb3duXCIsXG4gICAgICBcImhhbmdDYWxsXCIsXG4gICAgICBcImJlZ2luU01TXCIsXG4gICAgICBcImVuZFdyaXRlXCIsXG4gICAgICBcImF0dGFjaGVkXCIsXG4gICAgICBcIm1haW50YWluXCIsXG4gICAgICBcIm5vQ3Vyc29yXCIsXG4gICAgICBcImNoZWNrUmVnXCIsXG4gICAgICBcImNoZWNrUFVLXCIsXG4gICAgICBcInNoaWZ0T3V0XCIsXG4gICAgICBcImlzVmFsaWRcIixcbiAgICAgIFwic2hpZnRJblwiLFxuICAgICAgXCJwdWxzZUluXCIsXG4gICAgICBcImNvbm5lY3RcIixcbiAgICAgIFwicHJpbnRsblwiLFxuICAgICAgXCJsb2NhbElQXCIsXG4gICAgICBcInBpbk1vZGVcIixcbiAgICAgIFwiZ2V0SU1FSVwiLFxuICAgICAgXCJkaXNwbGF5XCIsXG4gICAgICBcIm5vQmxpbmtcIixcbiAgICAgIFwicHJvY2Vzc1wiLFxuICAgICAgXCJnZXRCYW5kXCIsXG4gICAgICBcInJ1bm5pbmdcIixcbiAgICAgIFwiYmVnaW5TRFwiLFxuICAgICAgXCJkcmF3Qk1QXCIsXG4gICAgICBcImxvd0J5dGVcIixcbiAgICAgIFwic2V0QmFuZFwiLFxuICAgICAgXCJyZWxlYXNlXCIsXG4gICAgICBcImJpdFJlYWRcIixcbiAgICAgIFwicHJlcGFyZVwiLFxuICAgICAgXCJwb2ludFRvXCIsXG4gICAgICBcInJlYWRSZWRcIixcbiAgICAgIFwic2V0TW9kZVwiLFxuICAgICAgXCJub0ZpbGxcIixcbiAgICAgIFwicmVtb3ZlXCIsXG4gICAgICBcImxpc3RlblwiLFxuICAgICAgXCJzdHJva2VcIixcbiAgICAgIFwiZGV0YWNoXCIsXG4gICAgICBcImF0dGFjaFwiLFxuICAgICAgXCJub1RvbmVcIixcbiAgICAgIFwiZXhpc3RzXCIsXG4gICAgICBcImJ1ZmZlclwiLFxuICAgICAgXCJoZWlnaHRcIixcbiAgICAgIFwiYml0U2V0XCIsXG4gICAgICBcImNpcmNsZVwiLFxuICAgICAgXCJjb25maWdcIixcbiAgICAgIFwiY3Vyc29yXCIsXG4gICAgICBcInJhbmRvbVwiLFxuICAgICAgXCJJUnJlYWRcIixcbiAgICAgIFwic2V0RE5TXCIsXG4gICAgICBcImVuZFNNU1wiLFxuICAgICAgXCJnZXRLZXlcIixcbiAgICAgIFwibWljcm9zXCIsXG4gICAgICBcIm1pbGxpc1wiLFxuICAgICAgXCJiZWdpblwiLFxuICAgICAgXCJwcmludFwiLFxuICAgICAgXCJ3cml0ZVwiLFxuICAgICAgXCJyZWFkeVwiLFxuICAgICAgXCJmbHVzaFwiLFxuICAgICAgXCJ3aWR0aFwiLFxuICAgICAgXCJpc1BJTlwiLFxuICAgICAgXCJibGlua1wiLFxuICAgICAgXCJjbGVhclwiLFxuICAgICAgXCJwcmVzc1wiLFxuICAgICAgXCJta2RpclwiLFxuICAgICAgXCJybWRpclwiLFxuICAgICAgXCJjbG9zZVwiLFxuICAgICAgXCJwb2ludFwiLFxuICAgICAgXCJ5aWVsZFwiLFxuICAgICAgXCJpbWFnZVwiLFxuICAgICAgXCJCU1NJRFwiLFxuICAgICAgXCJjbGlja1wiLFxuICAgICAgXCJkZWxheVwiLFxuICAgICAgXCJyZWFkXCIsXG4gICAgICBcInRleHRcIixcbiAgICAgIFwibW92ZVwiLFxuICAgICAgXCJwZWVrXCIsXG4gICAgICBcImJlZXBcIixcbiAgICAgIFwicmVjdFwiLFxuICAgICAgXCJsaW5lXCIsXG4gICAgICBcIm9wZW5cIixcbiAgICAgIFwic2Vla1wiLFxuICAgICAgXCJmaWxsXCIsXG4gICAgICBcInNpemVcIixcbiAgICAgIFwidHVyblwiLFxuICAgICAgXCJzdG9wXCIsXG4gICAgICBcImhvbWVcIixcbiAgICAgIFwiZmluZFwiLFxuICAgICAgXCJzdGVwXCIsXG4gICAgICBcInRvbmVcIixcbiAgICAgIFwic3FydFwiLFxuICAgICAgXCJSU1NJXCIsXG4gICAgICBcIlNTSURcIixcbiAgICAgIFwiZW5kXCIsXG4gICAgICBcImJpdFwiLFxuICAgICAgXCJ0YW5cIixcbiAgICAgIFwiY29zXCIsXG4gICAgICBcInNpblwiLFxuICAgICAgXCJwb3dcIixcbiAgICAgIFwibWFwXCIsXG4gICAgICBcImFic1wiLFxuICAgICAgXCJtYXhcIixcbiAgICAgIFwibWluXCIsXG4gICAgICBcImdldFwiLFxuICAgICAgXCJydW5cIixcbiAgICAgIFwicHV0XCJcbiAgICBdLFxuICAgIGxpdGVyYWw6IFtcbiAgICAgIFwiRElHSVRBTF9NRVNTQUdFXCIsXG4gICAgICBcIkZJUk1BVEFfU1RSSU5HXCIsXG4gICAgICBcIkFOQUxPR19NRVNTQUdFXCIsXG4gICAgICBcIlJFUE9SVF9ESUdJVEFMXCIsXG4gICAgICBcIlJFUE9SVF9BTkFMT0dcIixcbiAgICAgIFwiSU5QVVRfUFVMTFVQXCIsXG4gICAgICBcIlNFVF9QSU5fTU9ERVwiLFxuICAgICAgXCJJTlRFUk5BTDJWNTZcIixcbiAgICAgIFwiU1lTVEVNX1JFU0VUXCIsXG4gICAgICBcIkxFRF9CVUlMVElOXCIsXG4gICAgICBcIklOVEVSTkFMMVYxXCIsXG4gICAgICBcIlNZU0VYX1NUQVJUXCIsXG4gICAgICBcIklOVEVSTkFMXCIsXG4gICAgICBcIkVYVEVSTkFMXCIsXG4gICAgICBcIkRFRkFVTFRcIixcbiAgICAgIFwiT1VUUFVUXCIsXG4gICAgICBcIklOUFVUXCIsXG4gICAgICBcIkhJR0hcIixcbiAgICAgIFwiTE9XXCJcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQVJEVUlOTyA9IGNQbHVzUGx1cyhobGpzKTtcblxuICBjb25zdCBrd3MgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsYW55Pn0gKi8gKEFSRFVJTk8ua2V5d29yZHMpO1xuXG4gIGt3cy50eXBlID0gW1xuICAgIC4uLmt3cy50eXBlLFxuICAgIC4uLkFSRFVJTk9fS1cudHlwZVxuICBdO1xuICBrd3MubGl0ZXJhbCA9IFtcbiAgICAuLi5rd3MubGl0ZXJhbCxcbiAgICAuLi5BUkRVSU5PX0tXLmxpdGVyYWxcbiAgXTtcbiAga3dzLmJ1aWx0X2luID0gW1xuICAgIC4uLmt3cy5idWlsdF9pbixcbiAgICAuLi5BUkRVSU5PX0tXLmJ1aWx0X2luXG4gIF07XG4gIGt3cy5faGludHMgPSBBUkRVSU5PX0tXLl9oaW50cztcblxuICBBUkRVSU5PLm5hbWUgPSAnQXJkdWlubyc7XG4gIEFSRFVJTk8uYWxpYXNlcyA9IFsgJ2lubycgXTtcbiAgQVJEVUlOTy5zdXBlcnNldE9mID0gXCJjcHBcIjtcblxuICByZXR1cm4gQVJEVUlOTztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcmR1aW5vO1xuIiwgIi8qXG5MYW5ndWFnZTogQVJNIEFzc2VtYmx5XG5BdXRob3I6IERhbiBQYW56YXJlbGxhIDxhbHNvZWxwQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBBUk0gQXNzZW1ibHkgaW5jbHVkaW5nIFRodW1iIGFuZCBUaHVtYjIgaW5zdHJ1Y3Rpb25zXG5DYXRlZ29yeTogYXNzZW1ibGVyXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXJtYXNtKGhsanMpIHtcbiAgLy8gbG9jYWwgbGFiZWxzOiAlP1tGQl0/W0FUXT9cXGR7MSwyfVxcdytcblxuICBjb25zdCBDT01NRU5UID0geyB2YXJpYW50czogW1xuICAgIGhsanMuQ09NTUVOVCgnXlsgXFxcXHRdKig/PSMpJywgJyQnLCB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBleGNsdWRlQmVnaW46IHRydWVcbiAgICB9KSxcbiAgICBobGpzLkNPTU1FTlQoJ1s7QF0nLCAnJCcsIHsgcmVsZXZhbmNlOiAwIH0pLFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gIF0gfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBUk0gQXNzZW1ibHknLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAnYXJtJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1xcXFwuPycgKyBobGpzLklERU5UX1JFLFxuICAgICAgbWV0YTpcbiAgICAgICAgLy8gR05VIHByZXByb2NzXG4gICAgICAgICcuMmJ5dGUgLjRieXRlIC5hbGlnbiAuYXNjaWkgLmFzY2l6IC5iYWxpZ24gLmJ5dGUgLmNvZGUgLmRhdGEgLmVsc2UgLmVuZCAuZW5kaWYgLmVuZG0gLmVuZHIgLmVxdSAuZXJyIC5leGl0bSAuZXh0ZXJuIC5nbG9iYWwgLmh3b3JkIC5pZiAuaWZkZWYgLmlmbmRlZiAuaW5jbHVkZSAuaXJwIC5sb25nIC5tYWNybyAucmVwdCAucmVxIC5zZWN0aW9uIC5zZXQgLnNraXAgLnNwYWNlIC50ZXh0IC53b3JkIC5hcm0gLnRodW1iIC5jb2RlMTYgLmNvZGUzMiAuZm9yY2VfdGh1bWIgLnRodW1iX2Z1bmMgLmx0b3JnICdcbiAgICAgICAgLy8gQVJNIGRpcmVjdGl2ZXNcbiAgICAgICAgKyAnQUxJQVMgQUxJR04gQVJNIEFSRUEgQVNTRVJUIEFUVFIgQ04gQ09ERSBDT0RFMTYgQ09ERTMyIENPTU1PTiBDUCBEQVRBIERDQiBEQ0QgRENEVSBEQ0RPIERDRkQgRENGRFUgRENJIERDUSBEQ1FVIERDVyBEQ1dVIEROIEVMSUYgRUxTRSBFTkQgRU5ERlVOQyBFTkRJRiBFTkRQIEVOVFJZIEVRVSBFWFBPUlQgRVhQT1JUQVMgRVhURVJOIEZJRUxEIEZJTEwgRlVOQ1RJT04gR0JMQSBHQkxMIEdCTFMgR0VUIEdMT0JBTCBJRiBJTVBPUlQgSU5DQklOIElOQ0xVREUgSU5GTyBLRUVQIExDTEEgTENMTCBMQ0xTIExUT1JHIE1BQ1JPIE1BUCBNRU5EIE1FWElUIE5PRlAgT1BUIFBSRVNFUlZFOCBQUk9DIFFOIFJFQURPTkxZIFJFTE9DIFJFUVVJUkUgUkVRVUlSRTggUkxJU1QgRk4gUk9VVCBTRVRBIFNFVEwgU0VUUyBTTiBTUEFDRSBTVUJUIFRIVU1CIFRIVU1CWCBUVEwgV0hJTEUgV0VORCAnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdyMCByMSByMiByMyByNCByNSByNiByNyByOCByOSByMTAgcjExIHIxMiByMTMgcjE0IHIxNSAnIC8vIHN0YW5kYXJkIHJlZ2lzdGVyc1xuICAgICAgICArICd3MCB3MSB3MiB3MyB3NCB3NSB3NiB3NyB3OCB3OSB3MTAgdzExIHcxMiB3MTMgdzE0IHcxNSAnIC8vIDMyIGJpdCBBUk12OCByZWdpc3RlcnNcbiAgICAgICAgKyAndzE2IHcxNyB3MTggdzE5IHcyMCB3MjEgdzIyIHcyMyB3MjQgdzI1IHcyNiB3MjcgdzI4IHcyOSB3MzAgJ1xuICAgICAgICArICd4MCB4MSB4MiB4MyB4NCB4NSB4NiB4NyB4OCB4OSB4MTAgeDExIHgxMiB4MTMgeDE0IHgxNSAnIC8vIDY0IGJpdCBBUk12OCByZWdpc3RlcnNcbiAgICAgICAgKyAneDE2IHgxNyB4MTggeDE5IHgyMCB4MjEgeDIyIHgyMyB4MjQgeDI1IHgyNiB4MjcgeDI4IHgyOSB4MzAgJ1xuICAgICAgICArICdwYyBsciBzcCBpcCBzbCBzYiBmcCAnIC8vIHR5cGljYWwgcmVncyBwbHVzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgKyAnYTEgYTIgYTMgYTQgdjEgdjIgdjMgdjQgdjUgdjYgdjcgdjggZjAgZjEgZjIgZjMgZjQgZjUgZjYgZjcgJyAvLyBtb3JlIHJlZ3MgYW5kIGZwXG4gICAgICAgICsgJ3AwIHAxIHAyIHAzIHA0IHA1IHA2IHA3IHA4IHA5IHAxMCBwMTEgcDEyIHAxMyBwMTQgcDE1ICcgLy8gY29wcm9jZXNzb3IgcmVnc1xuICAgICAgICArICdjMCBjMSBjMiBjMyBjNCBjNSBjNiBjNyBjOCBjOSBjMTAgYzExIGMxMiBjMTMgYzE0IGMxNSAnIC8vIG1vcmUgY29wcm9jXG4gICAgICAgICsgJ3EwIHExIHEyIHEzIHE0IHE1IHE2IHE3IHE4IHE5IHExMCBxMTEgcTEyIHExMyBxMTQgcTE1ICcgLy8gYWR2YW5jZWQgU0lNRCBORU9OIHJlZ3NcblxuICAgICAgICAvLyBwcm9ncmFtIHN0YXR1cyByZWdpc3RlcnNcbiAgICAgICAgKyAnY3Bzcl9jIGNwc3JfeCBjcHNyX3MgY3Bzcl9mIGNwc3JfY3ggY3Bzcl9jeHMgY3Bzcl94cyBjcHNyX3hzZiBjcHNyX3NmIGNwc3JfY3hzZiAnXG4gICAgICAgICsgJ3Nwc3JfYyBzcHNyX3ggc3Bzcl9zIHNwc3JfZiBzcHNyX2N4IHNwc3JfY3hzIHNwc3JfeHMgc3Bzcl94c2Ygc3Bzcl9zZiBzcHNyX2N4c2YgJ1xuXG4gICAgICAgIC8vIE5FT04gYW5kIFZGUCByZWdpc3RlcnNcbiAgICAgICAgKyAnczAgczEgczIgczMgczQgczUgczYgczcgczggczkgczEwIHMxMSBzMTIgczEzIHMxNCBzMTUgJ1xuICAgICAgICArICdzMTYgczE3IHMxOCBzMTkgczIwIHMyMSBzMjIgczIzIHMyNCBzMjUgczI2IHMyNyBzMjggczI5IHMzMCBzMzEgJ1xuICAgICAgICArICdkMCBkMSBkMiBkMyBkNCBkNSBkNiBkNyBkOCBkOSBkMTAgZDExIGQxMiBkMTMgZDE0IGQxNSAnXG4gICAgICAgICsgJ2QxNiBkMTcgZDE4IGQxOSBkMjAgZDIxIGQyMiBkMjMgZDI0IGQyNSBkMjYgZDI3IGQyOCBkMjkgZDMwIGQzMSAnXG5cbiAgICAgICAgKyAne1BDfSB7VkFSfSB7VFJVRX0ge0ZBTFNFfSB7T1BUfSB7Q09ORklHfSB7RU5ESUFOfSB7Q09ERVNJWkV9IHtDUFV9IHtGUFV9IHtBUkNISVRFQ1RVUkV9IHtQQ1NUT1JFT0ZGU0VUfSB7QVJNQVNNX1ZFUlNJT059IHtJTlRFUn0ge1JPUEl9IHtSV1BJfSB7U1dTVH0ge05PU1dTVH0gLiBAJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyAvLyBtbmVtb25pY3NcbiAgICAgICAgICAgICsgJ2FkY3wnXG4gICAgICAgICAgICArICcocWQ/fHNoP3x1W3FoXT8pP2FkZCg4fDE2KT98dXNhZGE/OHwocXxzaD98dVtxaF0/KT8oYXN8c2EpeHwnXG4gICAgICAgICAgICArICdhbmR8YWRybD98c2JjfHJzW2JjXXxhc3J8YltseF0/fGJseHxieGp8Y2JuP3p8dGJbYmhdfGJpY3wnXG4gICAgICAgICAgICArICdiZmN8YmZpfFtzdV1iZnh8YmtwdHxjZHAyP3xjbHp8Y2xyZXh8Y21wfGNtbnxjcHNpW2VkXXxjcHN8J1xuICAgICAgICAgICAgKyAnc2V0ZW5kfGRiZ3xkbWJ8ZHNifGVvcnxpc2J8aXRbdGVdezAsM318bHNsfGxzcnxyb3J8cnJ4fCdcbiAgICAgICAgICAgICsgJ2xkbSgoW2lkXVthYl0pfGZbZHNdKT98bGRyKChzfGV4KT9bYmhkXSk/fG1vdnQ/fG12bnxtcmF8bWFyfCdcbiAgICAgICAgICAgICsgJ211bHxbdXNdbXVsbHxzbXVsW2J3dF1bYnRdfHNtdVthc11kfHNtbXVsfHNtbWxhfCdcbiAgICAgICAgICAgICsgJ21sYXx1bWxhYWx8c21sYWw/KFt3YnRdW2J0XXxkKXxtbHN8c21sc2w/W2RzXXxzbWN8c3ZjfHNldnwnXG4gICAgICAgICAgICArICdtaWEoW2J0XXsyfXxwaCk/fG1ycj9jMj98bWNycjI/fG1yc3xtc3J8b3JyfG9ybnxwa2godGJ8YnQpfHJiaXR8J1xuICAgICAgICAgICAgKyAncmV2KDE2fHNoKT98c2VsfFtzdV1zYXQoMTYpP3xub3B8cG9wfHB1c2h8cmZlKFtpZF1bYWJdKT98J1xuICAgICAgICAgICAgKyAnc3RtKFtpZF1bYWJdKT98c3RyKGV4KT9bYmhkXT98KHFkPyk/c3VifChzaD98cXx1W3FoXT8pP3N1Yig4fDE2KXwnXG4gICAgICAgICAgICArICdbc3VdeHQoYT9ofGE/YigxNik/KXxzcnMoW2lkXVthYl0pP3xzd3BiP3xzd2l8c21pfHRzdHx0ZXF8J1xuICAgICAgICAgICAgKyAnd2ZlfHdmaXx5aWVsZCdcbiAgICAgICAgKyAnKSdcbiAgICAgICAgKyAnKGVxfG5lfGNzfGNjfG1pfHBsfHZzfHZjfGhpfGxzfGdlfGx0fGd0fGxlfGFsfGhzfGxvKT8nIC8vIGNvbmRpdGlvbiBjb2Rlc1xuICAgICAgICArICdbc3B0cnhdPycgLy8gbGVnYWwgcG9zdGZpeGVzXG4gICAgICAgICsgJyg/PVxcXFxzKScgLy8gZm9sbG93ZWQgYnkgc3BhY2VcbiAgICAgIH0sXG4gICAgICBDT01NRU5ULFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdbXlxcXFxcXFxcXVxcJycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFx8JyxcbiAgICAgICAgZW5kOiAnXFxcXHwnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyAvLyBoZXhcbiAgICAgICAgICAgIGJlZ2luOiAnWyMkPV0/MHhbMC05YS1mXSsnIH0sXG4gICAgICAgICAgeyAvLyBiaW5cbiAgICAgICAgICAgIGJlZ2luOiAnWyMkPV0/MGJbMDFdKycgfSxcbiAgICAgICAgICB7IC8vIGxpdGVyYWxcbiAgICAgICAgICAgIGJlZ2luOiAnWyMkPV1cXFxcZCsnIH0sXG4gICAgICAgICAgeyAvLyBiYXJlIG51bWJlclxuICAgICAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkKycgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyAvLyBHTlUgQVJNIHN5bnRheFxuICAgICAgICAgICAgYmVnaW46ICdeWyBcXFxcdF0qW2Etel9cXFxcLlxcXFwkXVthLXowLTlfXFxcXC5cXFxcJF0rOicgfSxcbiAgICAgICAgICB7IC8vIEFSTSBzeW50YXhcbiAgICAgICAgICAgIGJlZ2luOiAnXlthLXpfXFxcXC5cXFxcJF1bYS16MC05X1xcXFwuXFxcXCRdKycgfSxcbiAgICAgICAgICB7IC8vIGxhYmVsIHJlZmVyZW5jZVxuICAgICAgICAgICAgYmVnaW46ICdbPSNdXFxcXHcrJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhcm1hc207XG4iLCAiLypcbkxhbmd1YWdlOiBIVE1MLCBYTUxcbldlYnNpdGU6IGh0dHBzOi8vd3d3LnczLm9yZy9YTUwvXG5DYXRlZ29yeTogY29tbW9uLCB3ZWJcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24geG1sKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvLyBYTUwgbmFtZXMgY2FuIGhhdmUgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxldHRlcnM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi94bWwvI05ULU5hbWVDaGFyXG4gIC8vIE9USEVSX05BTUVfQ0hBUlMgPSAvWzpcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0vO1xuICAvLyBFbGVtZW50IG5hbWVzIHN0YXJ0IHdpdGggTkFNRV9TVEFSVF9DSEFSIGZvbGxvd2VkIGJ5IG9wdGlvbmFsIG90aGVyIFVuaWNvZGUgbGV0dGVycywgQVNDSUkgZGlnaXRzLCBoeXBoZW5zLCB1bmRlcnNjb3JlcywgYW5kIHBlcmlvZHNcbiAgLy8gY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXS8sIHJlZ2V4Lm9wdGlvbmFsKC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSo6LyksIC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSovKTs7XG4gIC8vIGNvbnN0IFhNTF9JREVOVF9SRSA9IC9bQS1aX2EtejpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0rLztcbiAgLy8gY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tBLVpfYS16XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMkZGXFx1MDM3MC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZEXS8sIHJlZ2V4Lm9wdGlvbmFsKC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSo6LyksIC9bQS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRFxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZGXFx1MjAzRi1cXHUyMDQwXSovKTtcbiAgLy8gaG93ZXZlciwgdG8gY2F0ZXIgZm9yIHBlcmZvcm1hbmNlIGFuZCBtb3JlIFVuaWNvZGUgc3VwcG9ydCByZWx5IHNpbXBseSBvbiB0aGUgVW5pY29kZSBsZXR0ZXIgY2xhc3NcbiAgY29uc3QgVEFHX05BTUVfUkUgPSByZWdleC5jb25jYXQoL1tcXHB7TH1fXS91LCByZWdleC5vcHRpb25hbCgvW1xccHtMfTAtOV8uLV0qOi91KSwgL1tcXHB7TH0wLTlfLi1dKi91KTtcbiAgY29uc3QgWE1MX0lERU5UX1JFID0gL1tcXHB7TH0wLTkuXzotXSsvdTtcbiAgY29uc3QgWE1MX0VOVElUSUVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46IC8mW2Etel0rO3wmI1swLTldKzt8JiN4W2EtZjAtOV0rOy9cbiAgfTtcbiAgY29uc3QgWE1MX01FVEFfS0VZV09SRFMgPSB7XG4gICAgYmVnaW46IC9cXHMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogLyM/W2Etel9dW2EtejEtOV8tXSsvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgWE1MX01FVEFfUEFSX0tFWVdPUkRTID0gaGxqcy5pbmhlcml0KFhNTF9NRVRBX0tFWVdPUkRTLCB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS9cbiAgfSk7XG4gIGNvbnN0IEFQT1NfTUVUQV9TVFJJTkdfTU9ERSA9IGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KTtcbiAgY29uc3QgUVVPVEVfTUVUQV9TVFJJTkdfTU9ERSA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSk7XG4gIGNvbnN0IFRBR19JTlRFUk5BTFMgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgaWxsZWdhbDogLzwvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IFhNTF9JREVOVF9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLz1cXHMqLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICAgICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogWyBYTUxfRU5USVRJRVMgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogWyBYTUxfRU5USVRJRVMgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IGJlZ2luOiAvW15cXHNcIic9PD5gXSsvIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0hUTUwsIFhNTCcsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2h0bWwnLFxuICAgICAgJ3hodG1sJyxcbiAgICAgICdyc3MnLFxuICAgICAgJ2F0b20nLFxuICAgICAgJ3hqYicsXG4gICAgICAneHNkJyxcbiAgICAgICd4c2wnLFxuICAgICAgJ3BsaXN0JyxcbiAgICAgICd3c2YnLFxuICAgICAgJ3N2ZydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgdW5pY29kZVJlZ2V4OiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogLzwhW2Etel0vLFxuICAgICAgICBlbmQ6IC8+LyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBYTUxfTUVUQV9LRVlXT1JEUyxcbiAgICAgICAgICBRVU9URV9NRVRBX1NUUklOR19NT0RFLFxuICAgICAgICAgIEFQT1NfTUVUQV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICBYTUxfTUVUQV9QQVJfS0VZV09SRFMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICAgICAgZW5kOiAvXFxdLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgICAgICAgICBiZWdpbjogLzwhW2Etel0vLFxuICAgICAgICAgICAgICAgIGVuZDogLz4vLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICBYTUxfTUVUQV9LRVlXT1JEUyxcbiAgICAgICAgICAgICAgICAgIFhNTF9NRVRBX1BBUl9LRVlXT1JEUyxcbiAgICAgICAgICAgICAgICAgIFFVT1RFX01FVEFfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgICAgICBBUE9TX01FVEFfU1RSSU5HX01PREVcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC88IS0tLyxcbiAgICAgICAgLy0tPi8sXG4gICAgICAgIHsgcmVsZXZhbmNlOiAxMCB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzwhXFxbQ0RBVEFcXFsvLFxuICAgICAgICBlbmQ6IC9cXF1cXF0+LyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIFhNTF9FTlRJVElFUyxcbiAgICAgIC8vIHhtbCBwcm9jZXNzaW5nIGluc3RydWN0aW9uc1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgZW5kOiAvXFw/Pi8sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC88XFw/eG1sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBRVU9URV9NRVRBX1NUUklOR19NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLzxcXD9bYS16XVthLXowLTldKy8sXG4gICAgICAgICAgfVxuICAgICAgICBdXG5cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIC8qXG4gICAgICAgIFRoZSBsb29rYWhlYWQgcGF0dGVybiAoPz0uLi4pIGVuc3VyZXMgdGhhdCAnYmVnaW4nIG9ubHkgbWF0Y2hlc1xuICAgICAgICAnPHN0eWxlJyBhcyBhIHNpbmdsZSB3b3JkLCBmb2xsb3dlZCBieSBhIHdoaXRlc3BhY2Ugb3IgYW5cbiAgICAgICAgZW5kaW5nIGJyYWNrZXQuXG4gICAgICAgICovXG4gICAgICAgIGJlZ2luOiAvPHN0eWxlKD89XFxzfD4pLyxcbiAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgIGtleXdvcmRzOiB7IG5hbWU6ICdzdHlsZScgfSxcbiAgICAgICAgY29udGFpbnM6IFsgVEFHX0lOVEVSTkFMUyBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC88XFwvc3R5bGU+LyxcbiAgICAgICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6IFtcbiAgICAgICAgICAgICdjc3MnLFxuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIC8vIFNlZSB0aGUgY29tbWVudCBpbiB0aGUgPHN0eWxlIHRhZyBhYm91dCB0aGUgbG9va2FoZWFkIHBhdHRlcm5cbiAgICAgICAgYmVnaW46IC88c2NyaXB0KD89XFxzfD4pLyxcbiAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgIGtleXdvcmRzOiB7IG5hbWU6ICdzY3JpcHQnIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFRBR19JTlRFUk5BTFMgXSxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvPFxcL3NjcmlwdD4vLFxuICAgICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogW1xuICAgICAgICAgICAgJ2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJ2hhbmRsZWJhcnMnLFxuICAgICAgICAgICAgJ3htbCdcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB3ZSBuZWVkIHRoaXMgZm9yIG5vdyBmb3IgalNYXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiAvPD58PFxcLz4vXG4gICAgICB9LFxuICAgICAgLy8gb3BlbiB0YWdcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGFnJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvPC8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAgIFRBR19OQU1FX1JFLFxuICAgICAgICAgICAgLy8gPHRhZy8+XG4gICAgICAgICAgICAvLyA8dGFnPlxuICAgICAgICAgICAgLy8gPHRhZyAuLi5cbiAgICAgICAgICAgIHJlZ2V4LmVpdGhlcigvXFwvPi8sIC8+LywgL1xccy8pXG4gICAgICAgICAgKSlcbiAgICAgICAgKSxcbiAgICAgICAgZW5kOiAvXFwvPz4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IFRBR19OQU1FX1JFLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgc3RhcnRzOiBUQUdfSU5URVJOQUxTXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2xvc2UgdGFnXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLzxcXC8vLFxuICAgICAgICAgIHJlZ2V4Lmxvb2thaGVhZChyZWdleC5jb25jYXQoXG4gICAgICAgICAgICBUQUdfTkFNRV9SRSwgLz4vXG4gICAgICAgICAgKSlcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiBUQUdfTkFNRV9SRSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC8+LyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0geG1sO1xuIiwgIi8qXG5MYW5ndWFnZTogQXNjaWlEb2NcblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogRGFuIEFsbGVuIDxkYW4uai5hbGxlbkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vYXNjaWlkb2Mub3JnXG5EZXNjcmlwdGlvbjogQSBzZW1hbnRpYywgdGV4dC1iYXNlZCBkb2N1bWVudCBmb3JtYXQgdGhhdCBjYW4gYmUgZXhwb3J0ZWQgdG8gSFRNTCwgRG9jQm9vayBhbmQgb3RoZXIgYmFja2VuZHMuXG5DYXRlZ29yeTogbWFya3VwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXNjaWlkb2MoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEhPUklaT05UQUxfUlVMRSA9IHtcbiAgICBiZWdpbjogJ15cXCd7Myx9WyBcXFxcdF0qJCcsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICBjb25zdCBFU0NBUEVEX0ZPUk1BVFRJTkcgPSBbXG4gICAgLy8gZXNjYXBlZCBjb25zdHJhaW5lZCBmb3JtYXR0aW5nIG1hcmtzIChpLmUuLCBcXCogXFxfIG9yIFxcYClcbiAgICB7IGJlZ2luOiAvXFxcXFsqX2BdLyB9LFxuICAgIC8vIGVzY2FwZWQgdW5jb25zdHJhaW5lZCBmb3JtYXR0aW5nIG1hcmtzIChpLmUuLCBcXFxcKiogXFxcXF9fIG9yIFxcXFxgYClcbiAgICAvLyBtdXN0IGlnbm9yZSB1bnRpbCB0aGUgbmV4dCBmb3JtYXR0aW5nIG1hcmtzXG4gICAgLy8gdGhpcyBydWxlIG1pZ2h0IG5vdCBiZSAxMDAlIGNvbXBsaWFudCB3aXRoIEFzY2lpZG9jdG9yIDIuMCBidXQgd2UgYXJlIGVudGVyaW5nIHVuZGVmaW5lZCBiZWhhdmlvciB0ZXJyaXRvcnkuLi5cbiAgICB7IGJlZ2luOiAvXFxcXFxcXFxcXCp7Mn1bXlxcbl0qP1xcKnsyfS8gfSxcbiAgICB7IGJlZ2luOiAvXFxcXFxcXFxfezJ9W15cXG5dKl97Mn0vIH0sXG4gICAgeyBiZWdpbjogL1xcXFxcXFxcYHsyfVteXFxuXSpgezJ9LyB9LFxuICAgIC8vIGd1YXJkOiBjb25zdHJhaW5lZCBmb3JtYXR0aW5nIG1hcmsgbWF5IG5vdCBiZSBwcmVjZWRlZCBieSBcIjpcIiwgXCI7XCIgb3JcbiAgICAvLyBcIn1cIi4gbWF0Y2ggdGhlc2Ugc28gdGhlIGNvbnN0cmFpbmVkIHJ1bGUgZG9lc24ndCBzZWUgdGhlbVxuICAgIHsgYmVnaW46IC9bOjt9XVsqX2BdKD8hWypfYF0pLyB9XG4gIF07XG4gIGNvbnN0IFNUUk9ORyA9IFtcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBzdHJvbmcgKHNpbmdsZSBsaW5lKVxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cm9uZycsXG4gICAgICBiZWdpbjogL1xcKnsyfShbXlxcbl0rPylcXCp7Mn0vXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBzdHJvbmcgKG11bHRpLWxpbmUpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3Ryb25nJyxcbiAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgIC9cXCpcXCovLFxuICAgICAgICAvKChcXCooPyFcXCopfFxcXFxbXlxcbl18W14qXFxuXFxcXF0pK1xcbikrLyxcbiAgICAgICAgLyhcXCooPyFcXCopfFxcXFxbXlxcbl18W14qXFxuXFxcXF0pKi8sXG4gICAgICAgIC9cXCpcXCovXG4gICAgICApLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgc3Ryb25nIChzaW5nbGUgbGluZSlcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJvbmcnLFxuICAgICAgLy8gbXVzdCBub3QgcHJlY2VkZSBvciBmb2xsb3cgYSB3b3JkIGNoYXJhY3RlclxuICAgICAgYmVnaW46IC9cXEJcXCooXFxTfFxcU1teXFxuXSo/XFxTKVxcKig/IVxcdykvXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgc3Ryb25nIChtdWx0aS1saW5lKVxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cm9uZycsXG4gICAgICAvLyBtdXN0IG5vdCBwcmVjZWRlIG9yIGZvbGxvdyBhIHdvcmQgY2hhcmFjdGVyXG4gICAgICBiZWdpbjogL1xcKlteXFxzXShbXlxcbl0rXFxuKSsoW15cXG5dKylcXCovXG4gICAgfVxuICBdO1xuICBjb25zdCBFTVBIQVNJUyA9IFtcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBlbXBoYXNpcyAoc2luZ2xlIGxpbmUpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgICAgYmVnaW46IC9fezJ9KFteXFxuXSs/KV97Mn0vXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgdW5jb25zdHJhaW5lZCBlbXBoYXNpcyAobXVsdGktbGluZSlcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdlbXBoYXNpcycsXG4gICAgICBiZWdpbjogcmVnZXguY29uY2F0KFxuICAgICAgICAvX18vLFxuICAgICAgICAvKChfKD8hXyl8XFxcXFteXFxuXXxbXl9cXG5cXFxcXSkrXFxuKSsvLFxuICAgICAgICAvKF8oPyFfKXxcXFxcW15cXG5dfFteX1xcblxcXFxdKSovLFxuICAgICAgICAvX18vXG4gICAgICApLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgZW1waGFzaXMgKHNpbmdsZSBsaW5lKVxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2VtcGhhc2lzJyxcbiAgICAgIC8vIG11c3Qgbm90IHByZWNlZGUgb3IgZm9sbG93IGEgd29yZCBjaGFyYWN0ZXJcbiAgICAgIGJlZ2luOiAvXFxiXyhcXFN8XFxTW15cXG5dKj9cXFMpXyg/IVxcdykvXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgZW1waGFzaXMgKG11bHRpLWxpbmUpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgICAgLy8gbXVzdCBub3QgcHJlY2VkZSBvciBmb2xsb3cgYSB3b3JkIGNoYXJhY3RlclxuICAgICAgYmVnaW46IC9fW15cXHNdKFteXFxuXStcXG4pKyhbXlxcbl0rKV8vXG4gICAgfSxcbiAgICAvLyBpbmxpbmUgY29uc3RyYWluZWQgZW1waGFzaXMgdXNpbmcgc2luZ2xlIHF1b3RlIChsZWdhY3kpXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnZW1waGFzaXMnLFxuICAgICAgLy8gbXVzdCBub3QgZm9sbG93IGEgd29yZCBjaGFyYWN0ZXIgb3IgYmUgZm9sbG93ZWQgYnkgYSBzaW5nbGUgcXVvdGUgb3Igc3BhY2VcbiAgICAgIGJlZ2luOiAnXFxcXEJcXCcoPyFbXFwnXFxcXHNdKScsXG4gICAgICBlbmQ6ICcoXFxcXG57Mn18XFwnKScsXG4gICAgICAvLyBhbGxvdyBlc2NhcGVkIHNpbmdsZSBxdW90ZSBmb2xsb3dlZCBieSB3b3JkIGNoYXJcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ1xcXFxcXFxcXFwnXFxcXHcnLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfVxuICBdO1xuICBjb25zdCBBRE1PTklUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdeKE5PVEV8VElQfElNUE9SVEFOVHxXQVJOSU5HfENBVVRJT04pOlxcXFxzKycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICBjb25zdCBCVUxMRVRfTElTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdidWxsZXQnLFxuICAgIGJlZ2luOiAnXihcXFxcKit8LSt8XFxcXC4rfFteXFxcXG5dKz86OilcXFxccysnXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXNjaWlEb2MnLFxuICAgIGFsaWFzZXM6IFsgJ2Fkb2MnIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC8vIGJsb2NrIGNvbW1lbnRcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ14vezQsfVxcXFxuJyxcbiAgICAgICAgJ1xcXFxuL3s0LH0kJyxcbiAgICAgICAgLy8gY2FuIGFsc28gYmUgZG9uZSBhcy4uLlxuICAgICAgICAvLyAnXi97NCx9JCcsXG4gICAgICAgIC8vICdeL3s0LH0kJyxcbiAgICAgICAgeyByZWxldmFuY2U6IDEwIH1cbiAgICAgICksXG4gICAgICAvLyBsaW5lIGNvbW1lbnRcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ14vLycsXG4gICAgICAgICckJyxcbiAgICAgICAgeyByZWxldmFuY2U6IDAgfVxuICAgICAgKSxcbiAgICAgIC8vIHRpdGxlXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXC5cXFxcdy4qJCdcbiAgICAgIH0sXG4gICAgICAvLyBleGFtcGxlLCBhZG1vbml0aW9uICYgc2lkZWJhciBibG9ja3NcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeWz1cXFxcKl17NCx9XFxcXG4nLFxuICAgICAgICBlbmQ6ICdcXFxcbl5bPVxcXFwqXXs0LH0kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIGhlYWRpbmdzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdeKD17MSw2fSlbIFxcdF0uKz8oWyBcXHRdXFxcXDEpPyQnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ15bXlxcXFxbXFxcXF1cXFxcbl0rP1xcXFxuWz1cXFxcLX5cXFxcXlxcXFwrXXsyLH0kJyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBkb2N1bWVudCBhdHRyaWJ1dGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ146Lis/OicsXG4gICAgICAgIGVuZDogJ1xcXFxzJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIGJsb2NrIGF0dHJpYnV0ZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxbLis/XFxcXF0kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gcXVvdGVibG9ja3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncXVvdGUnLFxuICAgICAgICBiZWdpbjogJ15fezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5fezQsfSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gbGlzdGluZyBhbmQgbGl0ZXJhbCBibG9ja3NcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIGJlZ2luOiAnXltcXFxcLVxcXFwuXXs0LH1cXFxcbicsXG4gICAgICAgIGVuZDogJ1xcXFxuW1xcXFwtXFxcXC5dezQsfSQnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gcGFzc3Rocm91Z2ggYmxvY2tzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXlxcXFwrezQsfVxcXFxuJyxcbiAgICAgICAgZW5kOiAnXFxcXG5cXFxcK3s0LH0kJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICAgICAgZW5kOiAnPicsXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG5cbiAgICAgIEJVTExFVF9MSVNULFxuICAgICAgQURNT05JVElPTixcbiAgICAgIC4uLkVTQ0FQRURfRk9STUFUVElORyxcbiAgICAgIC4uLlNUUk9ORyxcbiAgICAgIC4uLkVNUEhBU0lTLFxuXG4gICAgICAvLyBpbmxpbmUgc21hcnQgcXVvdGVzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogXCJgYC4rPycnXCIgfSxcbiAgICAgICAgICB7IGJlZ2luOiBcImAuKz8nXCIgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gaW5saW5lIHVuY29uc3RyYWluZWQgZW1waGFzaXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29kZScsXG4gICAgICAgIGJlZ2luOiAvYHsyfS8sXG4gICAgICAgIGVuZDogLyhcXG57Mn18YHsyfSkvXG4gICAgICB9LFxuICAgICAgLy8gaW5saW5lIGNvZGUgc25pcHBldHMgKFRPRE8gc2hvdWxkIGdldCBzYW1lIHRyZWF0bWVudCBhcyBzdHJvbmcgYW5kIGVtcGhhc2lzKVxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb2RlJyxcbiAgICAgICAgYmVnaW46ICcoYC4rP2B8XFxcXCsuKz9cXFxcKyknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBpbmRlbnRlZCBsaXRlcmFsIGJsb2NrXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvZGUnLFxuICAgICAgICBiZWdpbjogJ15bIFxcXFx0XScsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBIT1JJWk9OVEFMX1JVTEUsXG4gICAgICAvLyBpbWFnZXMgYW5kIGxpbmtzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKGxpbms6KT8oaHR0cHxodHRwc3xmdHB8ZmlsZXxpcmN8aW1hZ2U6Pyk6XFxcXFMrP1xcXFxbW15bXSo/XFxcXF0nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJyhsaW5rfGltYWdlOj8pOicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpbmsnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcdycsXG4gICAgICAgICAgICBlbmQ6ICdbXlxcXFxbXSsnLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgICAgICBlbmQ6ICdcXFxcXScsXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFzY2lpZG9jO1xuIiwgIi8qXG5MYW5ndWFnZTogQXNwZWN0SlxuQXV0aG9yOiBIYWthbiBPemxlciA8b3psZXIuaGFrYW5AZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvYXNwZWN0ai9cbkRlc2NyaXB0aW9uOiBTeW50YXggSGlnaGxpZ2h0aW5nIGZvciB0aGUgQXNwZWN0SiBMYW5ndWFnZSB3aGljaCBpcyBhIGdlbmVyYWwtcHVycG9zZSBhc3BlY3Qtb3JpZW50ZWQgZXh0ZW5zaW9uIHRvIHRoZSBKYXZhIHByb2dyYW1taW5nIGxhbmd1YWdlLlxuQ2F0ZWdvcnk6IHN5c3RlbVxuQXVkaXQ6IDIwMjBcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhc3BlY3RqKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImZhbHNlXCIsXG4gICAgXCJzeW5jaHJvbml6ZWRcIixcbiAgICBcImludFwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcIm51bGxcIixcbiAgICBcImlmXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwibG9uZ1wiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInN0cmljdGZwXCIsXG4gICAgXCJmaW5hbGx5XCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwibmF0aXZlXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJleHRlbmRzXCIsXG4gICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwidHJhbnNpZW50XCIsXG4gICAgXCJuZXdcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJzdXBlclwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImFzc2VydFwiLFxuICAgIFwic2hvcnRcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInRoaXNcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcInRocm93c1wiLFxuICAgIFwicHJpdmlsZWdlZFwiLFxuICAgIFwiYXNwZWN0T2ZcIixcbiAgICBcImFkdmljZWV4ZWN1dGlvblwiLFxuICAgIFwicHJvY2VlZFwiLFxuICAgIFwiY2Zsb3diZWxvd1wiLFxuICAgIFwiY2Zsb3dcIixcbiAgICBcImluaXRpYWxpemF0aW9uXCIsXG4gICAgXCJwcmVpbml0aWFsaXphdGlvblwiLFxuICAgIFwic3RhdGljaW5pdGlhbGl6YXRpb25cIixcbiAgICBcIndpdGhpbmNvZGVcIixcbiAgICBcInRhcmdldFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJleGVjdXRpb25cIixcbiAgICBcImdldFdpdGhpblR5cGVOYW1lXCIsXG4gICAgXCJoYW5kbGVyXCIsXG4gICAgXCJ0aGlzSm9pblBvaW50XCIsXG4gICAgXCJ0aGlzSm9pblBvaW50U3RhdGljUGFydFwiLFxuICAgIFwidGhpc0VuY2xvc2luZ0pvaW5Qb2ludFN0YXRpY1BhcnRcIixcbiAgICBcImRlY2xhcmVcIixcbiAgICBcInBhcmVudHNcIixcbiAgICBcIndhcm5pbmdcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJzb2Z0XCIsXG4gICAgXCJwcmVjZWRlbmNlXCIsXG4gICAgXCJ0aGlzQXNwZWN0SW5zdGFuY2VcIlxuICBdO1xuICBjb25zdCBTSE9SVEtFWVMgPSBbXG4gICAgXCJnZXRcIixcbiAgICBcInNldFwiLFxuICAgIFwiYXJnc1wiLFxuICAgIFwiY2FsbFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQXNwZWN0SicsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC88XFwvfCMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC9cXC9cXCpcXCovLFxuICAgICAgICAvXFwqXFwvLyxcbiAgICAgICAge1xuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAvLyBlYXQgdXAgQCdzIGluIGVtYWlscyB0byBwcmV2ZW50IHRoZW0gdG8gYmUgcmVjb2duaXplZCBhcyBkb2N0YWdzXG4gICAgICAgICAgICAgIGJlZ2luOiAvXFx3K0AvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICAgICAgICAgIGJlZ2luOiAvQFtBLVphLXpdKy9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnYXNwZWN0JyxcbiAgICAgICAgZW5kOiAvW3s7PV0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvWzo7XCJcXFtcXF1dLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMgcGVydHlwZXdpdGhpbiBwZXJ0aGlzIHBlcnRhcmdldCBwZXJjZmxvd2JlbG93IHBlcmNmbG93IGlzc2luZ2xldG9uJyB9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoW15cXCldKi8sXG4gICAgICAgICAgICBlbmQ6IC9bKV0rLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUy5jb25jYXQoU0hPUlRLRVlTKSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLFxuICAgICAgICBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAga2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLFxuICAgICAgICBpbGxlZ2FsOiAvWzpcIlxcW1xcXV0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW5LZXl3b3JkczogJ2V4dGVuZHMgaW1wbGVtZW50cycgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBBc3BlY3RKIENvbnN0cnVjdHNcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3BvaW50Y3V0IGFmdGVyIGJlZm9yZSBhcm91bmQgdGhyb3dpbmcgcmV0dXJuaW5nJyxcbiAgICAgICAgZW5kOiAvWyldLyxcbiAgICAgICAgZXhjbHVkZUVuZDogZmFsc2UsXG4gICAgICAgIGlsbGVnYWw6IC9bXCJcXFtcXF1dLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSwgL1xccypcXCgvKSxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9bOl0vLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZW5kOiAvW3s7XS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZXhjbHVkZUVuZDogZmFsc2UsXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgaWxsZWdhbDogL1tcIlxcW1xcXV0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLCAvXFxzKlxcKC8pLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLmNvbmNhdChTSE9SVEtFWVMpLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHRoaXMgcHJldmVudHMgJ25ldyBOYW1lKC4uLiksIG9yIHRocm93IC4uLicgZnJvbSBiZWluZyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0aGUgZnVuY3Rpb24gY2xhc3MgaXMgYSBiaXQgZGlmZmVyZW50IGZvciBBc3BlY3RKIGNvbXBhcmVkIHRvIHRoZSBKYXZhIGxhbmd1YWdlXG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46IC9cXHcrICtcXHcrKFxcLlxcdyspP1xccypcXChbXlxcKV0qXFwpXFxzKigodGhyb3dzKVtcXHdcXHMsXSspP1tcXHs7XS8sXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSwgL1xccypcXCgvKSxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgLy8gYW5ub3RhdGlvbiBpcyBhbHNvIHVzZWQgaW4gdGhpcyBsYW5ndWFnZVxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9AW0EtWmEtel0rL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhc3BlY3RqO1xuIiwgIi8qXG5MYW5ndWFnZTogQXV0b0hvdGtleVxuQXV0aG9yOiBTZW9uZ3dvbiBMZWUgPGRsaW1waWRAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IEF1dG9Ib3RrZXkgbGFuZ3VhZ2UgZGVmaW5pdGlvblxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGF1dG9ob3RrZXkoaGxqcykge1xuICBjb25zdCBCQUNLVElDS19FU0NBUEUgPSB7IGJlZ2luOiAnYFtcXFxcc1xcXFxTXScgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBdXRvSG90a2V5JyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGFsaWFzZXM6IFsgJ2FoaycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ0JyZWFrIENvbnRpbnVlIENyaXRpY2FsIEV4aXQgRXhpdEFwcCBHb3N1YiBHb3RvIE5ldyBPbkV4aXQgUGF1c2UgcmV0dXJuIFNldEJhdGNoTGluZXMgU2V0VGltZXIgU3VzcGVuZCBUaHJlYWQgVGhyb3cgVW50aWwgYWhrX2lkIGFoa19jbGFzcyBhaGtfcGlkIGFoa19leGUgYWhrX2dyb3VwJyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIE5PVCBBTkQgT1InLFxuICAgICAgYnVpbHRfaW46ICdDb21TcGVjIENsaXBib2FyZCBDbGlwYm9hcmRBbGwgRXJyb3JMZXZlbCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBCQUNLVElDS19FU0NBUEUsXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBjb250YWluczogWyBCQUNLVElDS19FU0NBUEUgXSB9KSxcbiAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywgeyByZWxldmFuY2U6IDAgfSksXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gc3Vic3Qgd291bGQgYmUgdGhlIG1vc3QgYWNjdXJhdGUgaG93ZXZlciBmYWlscyB0aGUgcG9pbnQgb2ZcbiAgICAgICAgLy8gaGlnaGxpZ2h0aW5nLiB2YXJpYWJsZSBpcyBjb21wYXJhYmx5IHRoZSBtb3N0IGFjY3VyYXRlIHRoYXQgYWN0dWFsbHlcbiAgICAgICAgLy8gaGFzIHNvbWUgZWZmZWN0XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46ICclW2EtekEtWjAtOSNfJEBdKyUnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKlxcXFx3K1xcXFxzKigsfCUpJ1xuICAgICAgICAvLyBJIGRvbid0IHJlYWxseSBrbm93IGlmIHRoaXMgaXMgdG90YWxseSByZWxldmFudFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gc3ltYm9sIHdvdWxkIGJlIG1vc3QgYWNjdXJhdGUgaG93ZXZlciBpcyBoaWdobGlnaHRlZCBqdXN0IGxpa2VcbiAgICAgICAgLy8gYnVpbHRfaW4gYW5kIHRoYXQgbWFrZXMgdXAgYSBsb3Qgb2YgQXV0b0hvdGtleSBjb2RlIG1lYW5pbmcgdGhhdCBpdFxuICAgICAgICAvLyB3b3VsZCBmYWlsIHRvIGhpZ2hsaWdodCBhbnl0aGluZ1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15bXlxcXFxuXCI7XSs6Oig/IT0pJyB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXlteXFxcXG5cIjtdKzooPyE9KScsXG4gICAgICAgICAgICAvLyB6ZXJvIHJlbGV2YW5jZSBhcyBpdCBjYXRjaGVzIGEgbG90IG9mIHRoaW5nc1xuICAgICAgICAgICAgLy8gZm9sbG93ZWQgYnkgYSBzaW5nbGUgJzonIGluIG1hbnkgbGFuZ3VhZ2VzXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ15cXFxccyojXFxcXHcrJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJ0FfW2EtekEtWjAtOV0rJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gY29uc2VjdXRpdmUgY29tbWFzLCBub3QgZm9yIGhpZ2hsaWdodGluZyBidXQganVzdCBmb3IgcmVsZXZhbmNlXG4gICAgICAgIGJlZ2luOiAnLFxcXFxzKiwnIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXV0b2hvdGtleTtcbiIsICIvKlxuTGFuZ3VhZ2U6IEF1dG9JdFxuQXV0aG9yOiBNYW5oIFR1YW4gPGp1bm9va3lvQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBBdXRvSXQgbGFuZ3VhZ2UgZGVmaW5pdGlvblxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGF1dG9pdChobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gJ0J5UmVmIENhc2UgQ29uc3QgQ29udGludWVDYXNlIENvbnRpbnVlTG9vcCAnXG4gICAgICAgICsgJ0RpbSBEbyBFbHNlIEVsc2VJZiBFbmRGdW5jIEVuZElmIEVuZFNlbGVjdCAnXG4gICAgICAgICsgJ0VuZFN3aXRjaCBFbmRXaXRoIEVudW0gRXhpdCBFeGl0TG9vcCBGb3IgRnVuYyAnXG4gICAgICAgICsgJ0dsb2JhbCBJZiBJbiBMb2NhbCBOZXh0IFJlRGltIFJldHVybiBTZWxlY3QgU3RhdGljICdcbiAgICAgICAgKyAnU3RlcCBTd2l0Y2ggVGhlbiBUbyBVbnRpbCBWb2xhdGlsZSBXRW5kIFdoaWxlIFdpdGgnO1xuXG4gIGNvbnN0IERJUkVDVElWRVMgPSBbXG4gICAgXCJFbmRSZWdpb25cIixcbiAgICBcImZvcmNlZGVmXCIsXG4gICAgXCJmb3JjZXJlZlwiLFxuICAgIFwiaWdub3JlZnVuY1wiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5jbHVkZS1vbmNlXCIsXG4gICAgXCJOb1RyYXlJY29uXCIsXG4gICAgXCJPbkF1dG9JdFN0YXJ0UmVnaXN0ZXJcIixcbiAgICBcInByYWdtYVwiLFxuICAgIFwiUmVnaW9uXCIsXG4gICAgXCJSZXF1aXJlQWRtaW5cIixcbiAgICBcIlRpZHlfT2ZmXCIsXG4gICAgXCJUaWR5X09uXCIsXG4gICAgXCJUaWR5X1BhcmFtZXRlcnNcIlxuICBdO1xuXG4gIGNvbnN0IExJVEVSQUwgPSAnVHJ1ZSBGYWxzZSBBbmQgTnVsbCBOb3QgT3IgRGVmYXVsdCc7XG5cbiAgY29uc3QgQlVJTFRfSU4gPVxuICAgICAgICAgICdBYnMgQUNvcyBBZGxpYlJlZ2lzdGVyIEFkbGliVW5SZWdpc3RlciBBc2MgQXNjVyBBU2luIEFzc2lnbiBBVGFuIEF1dG9JdFNldE9wdGlvbiBBdXRvSXRXaW5HZXRUaXRsZSBBdXRvSXRXaW5TZXRUaXRsZSBCZWVwIEJpbmFyeSBCaW5hcnlMZW4gQmluYXJ5TWlkIEJpbmFyeVRvU3RyaW5nIEJpdEFORCBCaXROT1QgQml0T1IgQml0Um90YXRlIEJpdFNoaWZ0IEJpdFhPUiBCbG9ja0lucHV0IEJyZWFrIENhbGwgQ0RUcmF5IENlaWxpbmcgQ2hyIENoclcgQ2xpcEdldCBDbGlwUHV0IENvbnNvbGVSZWFkIENvbnNvbGVXcml0ZSBDb25zb2xlV3JpdGVFcnJvciBDb250cm9sQ2xpY2sgQ29udHJvbENvbW1hbmQgQ29udHJvbERpc2FibGUgQ29udHJvbEVuYWJsZSBDb250cm9sRm9jdXMgQ29udHJvbEdldEZvY3VzIENvbnRyb2xHZXRIYW5kbGUgQ29udHJvbEdldFBvcyBDb250cm9sR2V0VGV4dCBDb250cm9sSGlkZSBDb250cm9sTGlzdFZpZXcgQ29udHJvbE1vdmUgQ29udHJvbFNlbmQgQ29udHJvbFNldFRleHQgQ29udHJvbFNob3cgQ29udHJvbFRyZWVWaWV3IENvcyBEZWMgRGlyQ29weSBEaXJDcmVhdGUgRGlyR2V0U2l6ZSBEaXJNb3ZlIERpclJlbW92ZSBEbGxDYWxsIERsbENhbGxBZGRyZXNzIERsbENhbGxiYWNrRnJlZSBEbGxDYWxsYmFja0dldFB0ciBEbGxDYWxsYmFja1JlZ2lzdGVyIERsbENsb3NlIERsbE9wZW4gRGxsU3RydWN0Q3JlYXRlIERsbFN0cnVjdEdldERhdGEgRGxsU3RydWN0R2V0UHRyIERsbFN0cnVjdEdldFNpemUgRGxsU3RydWN0U2V0RGF0YSBEcml2ZUdldERyaXZlIERyaXZlR2V0RmlsZVN5c3RlbSBEcml2ZUdldExhYmVsIERyaXZlR2V0U2VyaWFsIERyaXZlR2V0VHlwZSBEcml2ZU1hcEFkZCBEcml2ZU1hcERlbCBEcml2ZU1hcEdldCBEcml2ZVNldExhYmVsIERyaXZlU3BhY2VGcmVlIERyaXZlU3BhY2VUb3RhbCBEcml2ZVN0YXR1cyBFbnZHZXQgRW52U2V0IEVudlVwZGF0ZSBFdmFsIEV4ZWN1dGUgRXhwIEZpbGVDaGFuZ2VEaXIgRmlsZUNsb3NlIEZpbGVDb3B5IEZpbGVDcmVhdGVOVEZTTGluayBGaWxlQ3JlYXRlU2hvcnRjdXQgRmlsZURlbGV0ZSBGaWxlRXhpc3RzIEZpbGVGaW5kRmlyc3RGaWxlIEZpbGVGaW5kTmV4dEZpbGUgRmlsZUZsdXNoIEZpbGVHZXRBdHRyaWIgRmlsZUdldEVuY29kaW5nIEZpbGVHZXRMb25nTmFtZSBGaWxlR2V0UG9zIEZpbGVHZXRTaG9ydGN1dCBGaWxlR2V0U2hvcnROYW1lIEZpbGVHZXRTaXplIEZpbGVHZXRUaW1lIEZpbGVHZXRWZXJzaW9uIEZpbGVJbnN0YWxsIEZpbGVNb3ZlIEZpbGVPcGVuIEZpbGVPcGVuRGlhbG9nIEZpbGVSZWFkIEZpbGVSZWFkTGluZSBGaWxlUmVhZFRvQXJyYXkgRmlsZVJlY3ljbGUgRmlsZVJlY3ljbGVFbXB0eSBGaWxlU2F2ZURpYWxvZyBGaWxlU2VsZWN0Rm9sZGVyIEZpbGVTZXRBdHRyaWIgRmlsZVNldEVuZCBGaWxlU2V0UG9zIEZpbGVTZXRUaW1lIEZpbGVXcml0ZSBGaWxlV3JpdGVMaW5lIEZsb29yIEZ0cFNldFByb3h5IEZ1bmNOYW1lIEdVSUNyZWF0ZSBHVUlDdHJsQ3JlYXRlQXZpIEdVSUN0cmxDcmVhdGVCdXR0b24gR1VJQ3RybENyZWF0ZUNoZWNrYm94IEdVSUN0cmxDcmVhdGVDb21ibyBHVUlDdHJsQ3JlYXRlQ29udGV4dE1lbnUgR1VJQ3RybENyZWF0ZURhdGUgR1VJQ3RybENyZWF0ZUR1bW15IEdVSUN0cmxDcmVhdGVFZGl0IEdVSUN0cmxDcmVhdGVHcmFwaGljIEdVSUN0cmxDcmVhdGVHcm91cCBHVUlDdHJsQ3JlYXRlSWNvbiBHVUlDdHJsQ3JlYXRlSW5wdXQgR1VJQ3RybENyZWF0ZUxhYmVsIEdVSUN0cmxDcmVhdGVMaXN0IEdVSUN0cmxDcmVhdGVMaXN0VmlldyBHVUlDdHJsQ3JlYXRlTGlzdFZpZXdJdGVtIEdVSUN0cmxDcmVhdGVNZW51IEdVSUN0cmxDcmVhdGVNZW51SXRlbSBHVUlDdHJsQ3JlYXRlTW9udGhDYWwgR1VJQ3RybENyZWF0ZU9iaiBHVUlDdHJsQ3JlYXRlUGljIEdVSUN0cmxDcmVhdGVQcm9ncmVzcyBHVUlDdHJsQ3JlYXRlUmFkaW8gR1VJQ3RybENyZWF0ZVNsaWRlciBHVUlDdHJsQ3JlYXRlVGFiIEdVSUN0cmxDcmVhdGVUYWJJdGVtIEdVSUN0cmxDcmVhdGVUcmVlVmlldyBHVUlDdHJsQ3JlYXRlVHJlZVZpZXdJdGVtIEdVSUN0cmxDcmVhdGVVcGRvd24gR1VJQ3RybERlbGV0ZSBHVUlDdHJsR2V0SGFuZGxlIEdVSUN0cmxHZXRTdGF0ZSBHVUlDdHJsUmVhZCBHVUlDdHJsUmVjdk1zZyBHVUlDdHJsUmVnaXN0ZXJMaXN0Vmlld1NvcnQgR1VJQ3RybFNlbmRNc2cgR1VJQ3RybFNlbmRUb0R1bW15IEdVSUN0cmxTZXRCa0NvbG9yIEdVSUN0cmxTZXRDb2xvciBHVUlDdHJsU2V0Q3Vyc29yIEdVSUN0cmxTZXREYXRhIEdVSUN0cmxTZXREZWZCa0NvbG9yIEdVSUN0cmxTZXREZWZDb2xvciBHVUlDdHJsU2V0Rm9udCBHVUlDdHJsU2V0R3JhcGhpYyBHVUlDdHJsU2V0SW1hZ2UgR1VJQ3RybFNldExpbWl0IEdVSUN0cmxTZXRPbkV2ZW50IEdVSUN0cmxTZXRQb3MgR1VJQ3RybFNldFJlc2l6aW5nIEdVSUN0cmxTZXRTdGF0ZSBHVUlDdHJsU2V0U3R5bGUgR1VJQ3RybFNldFRpcCBHVUlEZWxldGUgR1VJR2V0Q3Vyc29ySW5mbyBHVUlHZXRNc2cgR1VJR2V0U3R5bGUgR1VJUmVnaXN0ZXJNc2cgR1VJU2V0QWNjZWxlcmF0b3JzIEdVSVNldEJrQ29sb3IgR1VJU2V0Q29vcmQgR1VJU2V0Q3Vyc29yIEdVSVNldEZvbnQgR1VJU2V0SGVscCBHVUlTZXRJY29uIEdVSVNldE9uRXZlbnQgR1VJU2V0U3RhdGUgR1VJU2V0U3R5bGUgR1VJU3RhcnRHcm91cCBHVUlTd2l0Y2ggSGV4IEhvdEtleVNldCBIdHRwU2V0UHJveHkgSHR0cFNldFVzZXJBZ2VudCBIV25kIEluZXRDbG9zZSBJbmV0R2V0IEluZXRHZXRJbmZvIEluZXRHZXRTaXplIEluZXRSZWFkIEluaURlbGV0ZSBJbmlSZWFkIEluaVJlYWRTZWN0aW9uIEluaVJlYWRTZWN0aW9uTmFtZXMgSW5pUmVuYW1lU2VjdGlvbiBJbmlXcml0ZSBJbmlXcml0ZVNlY3Rpb24gSW5wdXRCb3ggSW50IElzQWRtaW4gSXNBcnJheSBJc0JpbmFyeSBJc0Jvb2wgSXNEZWNsYXJlZCBJc0RsbFN0cnVjdCBJc0Zsb2F0IElzRnVuYyBJc0hXbmQgSXNJbnQgSXNLZXl3b3JkIElzTnVtYmVyIElzT2JqIElzUHRyIElzU3RyaW5nIExvZyBNZW1HZXRTdGF0cyBNb2QgTW91c2VDbGljayBNb3VzZUNsaWNrRHJhZyBNb3VzZURvd24gTW91c2VHZXRDdXJzb3IgTW91c2VHZXRQb3MgTW91c2VNb3ZlIE1vdXNlVXAgTW91c2VXaGVlbCBNc2dCb3ggTnVtYmVyIE9iakNyZWF0ZSBPYmpDcmVhdGVJbnRlcmZhY2UgT2JqRXZlbnQgT2JqR2V0IE9iak5hbWUgT25BdXRvSXRFeGl0UmVnaXN0ZXIgT25BdXRvSXRFeGl0VW5SZWdpc3RlciBQaW5nIFBpeGVsQ2hlY2tzdW0gUGl4ZWxHZXRDb2xvciBQaXhlbFNlYXJjaCBQcm9jZXNzQ2xvc2UgUHJvY2Vzc0V4aXN0cyBQcm9jZXNzR2V0U3RhdHMgUHJvY2Vzc0xpc3QgUHJvY2Vzc1NldFByaW9yaXR5IFByb2Nlc3NXYWl0IFByb2Nlc3NXYWl0Q2xvc2UgUHJvZ3Jlc3NPZmYgUHJvZ3Jlc3NPbiBQcm9ncmVzc1NldCBQdHIgUmFuZG9tIFJlZ0RlbGV0ZSBSZWdFbnVtS2V5IFJlZ0VudW1WYWwgUmVnUmVhZCBSZWdXcml0ZSBSb3VuZCBSdW4gUnVuQXMgUnVuQXNXYWl0IFJ1bldhaXQgU2VuZCBTZW5kS2VlcEFjdGl2ZSBTZXRFcnJvciBTZXRFeHRlbmRlZCBTaGVsbEV4ZWN1dGUgU2hlbGxFeGVjdXRlV2FpdCBTaHV0ZG93biBTaW4gU2xlZXAgU291bmRQbGF5IFNvdW5kU2V0V2F2ZVZvbHVtZSBTcGxhc2hJbWFnZU9uIFNwbGFzaE9mZiBTcGxhc2hUZXh0T24gU3FydCBTUmFuZG9tIFN0YXR1c2JhckdldFRleHQgU3RkZXJyUmVhZCBTdGRpbldyaXRlIFN0ZGlvQ2xvc2UgU3Rkb3V0UmVhZCBTdHJpbmcgU3RyaW5nQWRkQ1IgU3RyaW5nQ29tcGFyZSBTdHJpbmdGb3JtYXQgU3RyaW5nRnJvbUFTQ0lJQXJyYXkgU3RyaW5nSW5TdHIgU3RyaW5nSXNBbE51bSBTdHJpbmdJc0FscGhhIFN0cmluZ0lzQVNDSUkgU3RyaW5nSXNEaWdpdCBTdHJpbmdJc0Zsb2F0IFN0cmluZ0lzSW50IFN0cmluZ0lzTG93ZXIgU3RyaW5nSXNTcGFjZSBTdHJpbmdJc1VwcGVyIFN0cmluZ0lzWERpZ2l0IFN0cmluZ0xlZnQgU3RyaW5nTGVuIFN0cmluZ0xvd2VyIFN0cmluZ01pZCBTdHJpbmdSZWdFeHAgU3RyaW5nUmVnRXhwUmVwbGFjZSBTdHJpbmdSZXBsYWNlIFN0cmluZ1JldmVyc2UgU3RyaW5nUmlnaHQgU3RyaW5nU3BsaXQgU3RyaW5nU3RyaXBDUiBTdHJpbmdTdHJpcFdTIFN0cmluZ1RvQVNDSUlBcnJheSBTdHJpbmdUb0JpbmFyeSBTdHJpbmdUcmltTGVmdCBTdHJpbmdUcmltUmlnaHQgU3RyaW5nVXBwZXIgVGFuIFRDUEFjY2VwdCBUQ1BDbG9zZVNvY2tldCBUQ1BDb25uZWN0IFRDUExpc3RlbiBUQ1BOYW1lVG9JUCBUQ1BSZWN2IFRDUFNlbmQgVENQU2h1dGRvd24sIFVEUFNodXRkb3duIFRDUFN0YXJ0dXAsIFVEUFN0YXJ0dXAgVGltZXJEaWZmIFRpbWVySW5pdCBUb29sVGlwIFRyYXlDcmVhdGVJdGVtIFRyYXlDcmVhdGVNZW51IFRyYXlHZXRNc2cgVHJheUl0ZW1EZWxldGUgVHJheUl0ZW1HZXRIYW5kbGUgVHJheUl0ZW1HZXRTdGF0ZSBUcmF5SXRlbUdldFRleHQgVHJheUl0ZW1TZXRPbkV2ZW50IFRyYXlJdGVtU2V0U3RhdGUgVHJheUl0ZW1TZXRUZXh0IFRyYXlTZXRDbGljayBUcmF5U2V0SWNvbiBUcmF5U2V0T25FdmVudCBUcmF5U2V0UGF1c2VJY29uIFRyYXlTZXRTdGF0ZSBUcmF5U2V0VG9vbFRpcCBUcmF5VGlwIFVCb3VuZCBVRFBCaW5kIFVEUENsb3NlU29ja2V0IFVEUE9wZW4gVURQUmVjdiBVRFBTZW5kIFZhckdldFR5cGUgV2luQWN0aXZhdGUgV2luQWN0aXZlIFdpbkNsb3NlIFdpbkV4aXN0cyBXaW5GbGFzaCBXaW5HZXRDYXJldFBvcyBXaW5HZXRDbGFzc0xpc3QgV2luR2V0Q2xpZW50U2l6ZSBXaW5HZXRIYW5kbGUgV2luR2V0UG9zIFdpbkdldFByb2Nlc3MgV2luR2V0U3RhdGUgV2luR2V0VGV4dCBXaW5HZXRUaXRsZSBXaW5LaWxsIFdpbkxpc3QgV2luTWVudVNlbGVjdEl0ZW0gV2luTWluaW1pemVBbGwgV2luTWluaW1pemVBbGxVbmRvIFdpbk1vdmUgV2luU2V0T25Ub3AgV2luU2V0U3RhdGUgV2luU2V0VGl0bGUgV2luU2V0VHJhbnMgV2luV2FpdCBXaW5XYWl0QWN0aXZlIFdpbldhaXRDbG9zZSBXaW5XYWl0Tm90QWN0aXZlJztcblxuICBjb25zdCBDT01NRU5UID0geyB2YXJpYW50czogW1xuICAgIGhsanMuQ09NTUVOVCgnOycsICckJywgeyByZWxldmFuY2U6IDAgfSksXG4gICAgaGxqcy5DT01NRU5UKCcjY3MnLCAnI2NlJyksXG4gICAgaGxqcy5DT01NRU5UKCcjY29tbWVudHMtc3RhcnQnLCAnI2NvbW1lbnRzLWVuZCcpXG4gIF0gfTtcblxuICBjb25zdCBWQVJJQUJMRSA9IHsgYmVnaW46ICdcXFxcJFtBLXowLTlfXSsnIH07XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1wiXCIvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLycnLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVIgPSB7IHZhcmlhbnRzOiBbXG4gICAgaGxqcy5CSU5BUllfTlVNQkVSX01PREUsXG4gICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gIF0gfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICcjJyxcbiAgICBlbmQ6ICckJyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOiBESVJFQ1RJVkVTIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5jbHVkZScsXG4gICAgICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdpbmNsdWRlJyB9LFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICAgICAgICAgIGVuZDogJz4nXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cIlwiLyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogLycnLyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgU1RSSU5HLFxuICAgICAgQ09NTUVOVFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDT05TVEFOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIC8vIGJlZ2luOiAnQCcsXG4gICAgLy8gZW5kOiAnJCcsXG4gICAgLy8ga2V5d29yZHM6ICdBcHBEYXRhQ29tbW9uRGlyIEFwcERhdGFEaXIgQXV0b0l0RXhlIEF1dG9JdFBJRCBBdXRvSXRWZXJzaW9uIEF1dG9JdFg2NCBDT01fRXZlbnRPYmogQ29tbW9uRmlsZXNEaXIgQ29tcGlsZWQgQ29tcHV0ZXJOYW1lIENvbVNwZWMgQ1BVQXJjaCBDUiBDUkxGIERlc2t0b3BDb21tb25EaXIgRGVza3RvcERlcHRoIERlc2t0b3BEaXIgRGVza3RvcEhlaWdodCBEZXNrdG9wUmVmcmVzaCBEZXNrdG9wV2lkdGggRG9jdW1lbnRzQ29tbW9uRGlyIGVycm9yIGV4aXRDb2RlIGV4aXRNZXRob2QgZXh0ZW5kZWQgRmF2b3JpdGVzQ29tbW9uRGlyIEZhdm9yaXRlc0RpciBHVUlfQ3RybEhhbmRsZSBHVUlfQ3RybElkIEdVSV9EcmFnRmlsZSBHVUlfRHJhZ0lkIEdVSV9Ecm9wSWQgR1VJX1dpbkhhbmRsZSBIb21lRHJpdmUgSG9tZVBhdGggSG9tZVNoYXJlIEhvdEtleVByZXNzZWQgSE9VUiBJUEFkZHJlc3MxIElQQWRkcmVzczIgSVBBZGRyZXNzMyBJUEFkZHJlc3M0IEtCTGF5b3V0IExGIExvY2FsQXBwRGF0YURpciBMb2dvbkROU0RvbWFpbiBMb2dvbkRvbWFpbiBMb2dvblNlcnZlciBNREFZIE1JTiBNT04gTVNFQyBNVUlMYW5nIE15RG9jdW1lbnRzRGlyIE51bVBhcmFtcyBPU0FyY2ggT1NCdWlsZCBPU0xhbmcgT1NTZXJ2aWNlUGFjayBPU1R5cGUgT1NWZXJzaW9uIFByb2dyYW1GaWxlc0RpciBQcm9ncmFtc0NvbW1vbkRpciBQcm9ncmFtc0RpciBTY3JpcHREaXIgU2NyaXB0RnVsbFBhdGggU2NyaXB0TGluZU51bWJlciBTY3JpcHROYW1lIFNFQyBTdGFydE1lbnVDb21tb25EaXIgU3RhcnRNZW51RGlyIFN0YXJ0dXBDb21tb25EaXIgU3RhcnR1cERpciBTV19ESVNBQkxFIFNXX0VOQUJMRSBTV19ISURFIFNXX0xPQ0sgU1dfTUFYSU1JWkUgU1dfTUlOSU1JWkUgU1dfUkVTVE9SRSBTV19TSE9XIFNXX1NIT1dERUZBVUxUIFNXX1NIT1dNQVhJTUlaRUQgU1dfU0hPV01JTklNSVpFRCBTV19TSE9XTUlOTk9BQ1RJVkUgU1dfU0hPV05BIFNXX1NIT1dOT0FDVElWQVRFIFNXX1NIT1dOT1JNQUwgU1dfVU5MT0NLIFN5c3RlbURpciBUQUIgVGVtcERpciBUUkFZX0lEIFRyYXlJY29uRmxhc2hpbmcgVHJheUljb25WaXNpYmxlIFVzZXJOYW1lIFVzZXJQcm9maWxlRGlyIFdEQVkgV2luZG93c0RpciBXb3JraW5nRGlyIFlEQVkgWUVBUicsXG4gICAgLy8gcmVsZXZhbmNlOiA1XG4gICAgYmVnaW46ICdAW0EtejAtOV9dKydcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnRnVuYycsXG4gICAgZW5kOiAnJCcsXG4gICAgaWxsZWdhbDogJ1xcXFwkfFxcXFxbfCUnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsIHsgY2xhc3NOYW1lOiBcInRpdGxlLmZ1bmN0aW9uXCIgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIE5VTUJFUlxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0F1dG9JdCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU4sXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVCxcbiAgICAgIFZBUklBQkxFLFxuICAgICAgU1RSSU5HLFxuICAgICAgTlVNQkVSLFxuICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAgQ09OU1RBTlQsXG4gICAgICBGVU5DVElPTlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBhdXRvaXQ7XG4iLCAiLypcbkxhbmd1YWdlOiBBVlIgQXNzZW1ibHlcbkF1dGhvcjogVmxhZGltaXIgRXJtYWtvdiA8dm9vb24zNDFAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGFzc2VtYmxlclxuV2Vic2l0ZTogaHR0cHM6Ly93d3cubWljcm9jaGlwLmNvbS93ZWJkb2MvYXZyYXNzZW1ibGVyL2F2cmFzc2VtYmxlci53Yl9pbnN0cnVjdGlvbl9saXN0Lmh0bWxcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBhdnJhc20oaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBVlIgQXNzZW1ibHknLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAnXFxcXC4/JyArIGhsanMuSURFTlRfUkUsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAvKiBtbmVtb25pYyAqL1xuICAgICAgICAnYWRjIGFkZCBhZGl3IGFuZCBhbmRpIGFzciBiY2xyIGJsZCBicmJjIGJyYnMgYnJjYyBicmNzIGJyZWFrIGJyZXEgYnJnZSBicmhjIGJyaHMgJ1xuICAgICAgICArICdicmlkIGJyaWUgYnJsbyBicmx0IGJybWkgYnJuZSBicnBsIGJyc2ggYnJ0YyBicnRzIGJydmMgYnJ2cyBic2V0IGJzdCBjYWxsIGNiaSBjYnIgJ1xuICAgICAgICArICdjbGMgY2xoIGNsaSBjbG4gY2xyIGNscyBjbHQgY2x2IGNseiBjb20gY3AgY3BjIGNwaSBjcHNlIGRlYyBlaWNhbGwgZWlqbXAgZWxwbSBlb3IgJ1xuICAgICAgICArICdmbXVsIGZtdWxzIGZtdWxzdSBpY2FsbCBpam1wIGluIGluYyBqbXAgbGQgbGRkIGxkaSBsZHMgbHBtIGxzbCBsc3IgbW92IG1vdncgbXVsICdcbiAgICAgICAgKyAnbXVscyBtdWxzdSBuZWcgbm9wIG9yIG9yaSBvdXQgcG9wIHB1c2ggcmNhbGwgcmV0IHJldGkgcmptcCByb2wgcm9yIHNiYyBzYnIgc2JyYyBzYnJzICdcbiAgICAgICAgKyAnc2VjIHNlaCBzYmkgc2JjaSBzYmljIHNiaXMgc2JpdyBzZWkgc2VuIHNlciBzZXMgc2V0IHNldiBzZXogc2xlZXAgc3BtIHN0IHN0ZCBzdHMgc3ViICdcbiAgICAgICAgKyAnc3ViaSBzd2FwIHRzdCB3ZHInLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIC8qIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgKi9cbiAgICAgICAgJ3IwIHIxIHIyIHIzIHI0IHI1IHI2IHI3IHI4IHI5IHIxMCByMTEgcjEyIHIxMyByMTQgcjE1IHIxNiByMTcgcjE4IHIxOSByMjAgcjIxIHIyMiAnXG4gICAgICAgICsgJ3IyMyByMjQgcjI1IHIyNiByMjcgcjI4IHIyOSByMzAgcjMxIHh8MCB4aCB4bCB5fDAgeWggeWwgenwwIHpoIHpsICdcbiAgICAgICAgLyogSU8gUmVnaXN0ZXJzIChBVE1lZ2ExMjgpICovXG4gICAgICAgICsgJ3Vjc3IxYyB1ZHIxIHVjc3IxYSB1Y3NyMWIgdWJycjFsIHVicnIxaCB1Y3NyMGMgdWJycjBoIHRjY3IzYyB0Y2NyM2EgdGNjcjNiIHRjbnQzaCAnXG4gICAgICAgICsgJ3RjbnQzbCBvY3IzYWggb2NyM2FsIG9jcjNiaCBvY3IzYmwgb2NyM2NoIG9jcjNjbCBpY3IzaCBpY3IzbCBldGltc2sgZXRpZnIgdGNjcjFjICdcbiAgICAgICAgKyAnb2NyMWNoIG9jcjFjbCB0d2NyIHR3ZHIgdHdhciB0d3NyIHR3YnIgb3NjY2FsIHhtY3JhIHhtY3JiIGVpY3JhIHNwbWNzciBzcG1jciBwb3J0ZyAnXG4gICAgICAgICsgJ2RkcmcgcGluZyBwb3J0ZiBkZHJmIHNyZWcgc3BoIHNwbCB4ZGl2IHJhbXB6IGVpY3JiIGVpbXNrIGdpbXNrIGdpY3IgZWlmciBnaWZyIHRpbXNrICdcbiAgICAgICAgKyAndGlmciBtY3VjciBtY3Vjc3IgdGNjcjAgdGNudDAgb2NyMCBhc3NyIHRjY3IxYSB0Y2NyMWIgdGNudDFoIHRjbnQxbCBvY3IxYWggb2NyMWFsICdcbiAgICAgICAgKyAnb2NyMWJoIG9jcjFibCBpY3IxaCBpY3IxbCB0Y2NyMiB0Y250MiBvY3IyIG9jZHIgd2R0Y3Igc2Zpb3IgZWVhcmggZWVhcmwgZWVkciBlZWNyICdcbiAgICAgICAgKyAncG9ydGEgZGRyYSBwaW5hIHBvcnRiIGRkcmIgcGluYiBwb3J0YyBkZHJjIHBpbmMgcG9ydGQgZGRyZCBwaW5kIHNwZHIgc3BzciBzcGNyIHVkcjAgJ1xuICAgICAgICArICd1Y3NyMGEgdWNzcjBiIHVicnIwbCBhY3NyIGFkbXV4IGFkY3NyIGFkY2ggYWRjbCBwb3J0ZSBkZHJlIHBpbmUgcGluZicsXG4gICAgICBtZXRhOlxuICAgICAgICAnLmJ5dGUgLmNzZWcgLmRiIC5kZWYgLmRldmljZSAuZHNlZyAuZHcgLmVuZG1hY3JvIC5lcXUgLmVzZWcgLmV4aXQgLmluY2x1ZGUgLmxpc3QgJ1xuICAgICAgICArICcubGlzdG1hYyAubWFjcm8gLm5vbGlzdCAub3JnIC5zZXQnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsIC8vIDB4Li4uLCBkZWNpbWFsLCBmbG9hdFxuICAgICAgaGxqcy5CSU5BUllfTlVNQkVSX01PREUsIC8vIDBiLi4uXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXCRbYS16QS1aMC05XSt8MG9bMC03XSspJyAvLyAkLi4uLCAwby4uLlxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1cXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnW15cXFxcXFxcXF1bXlxcJ10nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ15bQS1aYS16MC05Xy4kXSs6J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgIGVuZDogJyQnXG4gICAgICB9LFxuICAgICAgeyAvLyBzdWJzdGl0dXRpb24gd2l0aGluIGEgbWFjcm9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogJ0BbMC05XSsnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGF2cmFzbTtcbiIsICIvKlxuTGFuZ3VhZ2U6IEF3a1xuQXV0aG9yOiBNYXR0aGV3IERhbHkgPG1hdHRoZXdiZGFseUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2dhd2svbWFudWFsL2dhd2suaHRtbFxuRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gZm9yIEF3ayBzY3JpcHRzXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXdrKGhsanMpIHtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAvXFwkW1xcd1xcZCNAXVtcXHdcXGRfXSovIH0sXG4gICAgICB7IGJlZ2luOiAvXFwkXFx7KC4qPylcXH0vIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRTID0gJ0JFR0lOIEVORCBpZiBlbHNlIHdoaWxlIGRvIGZvciBpbiBicmVhayBjb250aW51ZSBkZWxldGUgbmV4dCBuZXh0ZmlsZSBmdW5jdGlvbiBmdW5jIGV4aXR8MTAnO1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyh1fGIpP3I/JycnLyxcbiAgICAgICAgZW5kOiAvJycnLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8odXxiKT9yP1wiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIi8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKHV8cnx1ciknLyxcbiAgICAgICAgZW5kOiAvJy8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKHV8cnx1cilcIi8sXG4gICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oYnxiciknLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKGJ8YnIpXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdBd2snLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6IEtFWVdPUkRTIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFZBUklBQkxFLFxuICAgICAgU1RSSU5HLFxuICAgICAgaGxqcy5SRUdFWFBfTU9ERSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGF3aztcbiIsICIvKlxuTGFuZ3VhZ2U6IE1pY3Jvc29mdCBYKytcbkRlc2NyaXB0aW9uOiBYKysgaXMgYSBsYW5ndWFnZSB1c2VkIGluIE1pY3Jvc29mdCBEeW5hbWljcyAzNjUsIER5bmFtaWNzIEFYLCBhbmQgQXhhcHRhLlxuQXV0aG9yOiBEbWl0cmkgUm91ZGFrb3YgPGRtaXRyaUByb3VkYWtvdi5ydT5cbldlYnNpdGU6IGh0dHBzOi8vZHluYW1pY3MubWljcm9zb2Z0LmNvbS9lbi11cy9heC1vdmVydmlldy9cbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYXhhcHRhKGhsanMpIHtcbiAgY29uc3QgSURFTlRfUkUgPSBobGpzLlVOREVSU0NPUkVfSURFTlRfUkU7XG4gIGNvbnN0IEJVSUxUX0lOX0tFWVdPUkRTID0gW1xuICAgICdhbnl0eXBlJyxcbiAgICAnYm9vbGVhbicsXG4gICAgJ2J5dGUnLFxuICAgICdjaGFyJyxcbiAgICAnY29udGFpbmVyJyxcbiAgICAnZGF0ZScsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2VudW0nLFxuICAgICdndWlkJyxcbiAgICAnaW50JyxcbiAgICAnaW50NjQnLFxuICAgICdsb25nJyxcbiAgICAncmVhbCcsXG4gICAgJ3Nob3J0JyxcbiAgICAnc3RyJyxcbiAgICAndXRjZGF0ZXRpbWUnLFxuICAgICd2YXInXG4gIF07XG5cbiAgY29uc3QgTElURVJBTF9LRVlXT1JEUyA9IFtcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbCcsXG4gICAgJ3RydWUnXG4gIF07XG5cbiAgY29uc3QgTk9STUFMX0tFWVdPUkRTID0gW1xuICAgICdhYnN0cmFjdCcsXG4gICAgJ2FzJyxcbiAgICAnYXNjJyxcbiAgICAnYXZnJyxcbiAgICAnYnJlYWsnLFxuICAgICdicmVha3BvaW50JyxcbiAgICAnYnknLFxuICAgICdieXJlZicsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NoYW5nZWNvbXBhbnknLFxuICAgICdjbGFzcycsXG4gICAgJ2NsaWVudCcsXG4gICAgJ2NsaWVudCcsXG4gICAgJ2NvbW1vbicsXG4gICAgJ2NvbnN0JyxcbiAgICAnY29udGludWUnLFxuICAgICdjb3VudCcsXG4gICAgJ2Nyb3NzY29tcGFueScsXG4gICAgJ2RlbGVnYXRlJyxcbiAgICAnZGVsZXRlX2Zyb20nLFxuICAgICdkZXNjJyxcbiAgICAnZGlzcGxheScsXG4gICAgJ2RpdicsXG4gICAgJ2RvJyxcbiAgICAnZWRpdCcsXG4gICAgJ2Vsc2UnLFxuICAgICdldmVudGhhbmRsZXInLFxuICAgICdleGlzdHMnLFxuICAgICdleHRlbmRzJyxcbiAgICAnZmluYWwnLFxuICAgICdmaW5hbGx5JyxcbiAgICAnZmlyc3RmYXN0JyxcbiAgICAnZmlyc3Rvbmx5JyxcbiAgICAnZmlyc3Rvbmx5MScsXG4gICAgJ2ZpcnN0b25seTEwJyxcbiAgICAnZmlyc3Rvbmx5MTAwJyxcbiAgICAnZmlyc3Rvbmx5MTAwMCcsXG4gICAgJ2ZsdXNoJyxcbiAgICAnZm9yJyxcbiAgICAnZm9yY2VsaXRlcmFscycsXG4gICAgJ2ZvcmNlbmVzdGVkbG9vcCcsXG4gICAgJ2ZvcmNlcGxhY2Vob2xkZXJzJyxcbiAgICAnZm9yY2VzZWxlY3RvcmRlcicsXG4gICAgJ2ZvcnVwZGF0ZScsXG4gICAgJ2Zyb20nLFxuICAgICdnZW5lcmF0ZW9ubHknLFxuICAgICdncm91cCcsXG4gICAgJ2hpbnQnLFxuICAgICdpZicsXG4gICAgJ2ltcGxlbWVudHMnLFxuICAgICdpbicsXG4gICAgJ2luZGV4JyxcbiAgICAnaW5zZXJ0X3JlY29yZHNldCcsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ2ludGVybmFsJyxcbiAgICAnaXMnLFxuICAgICdqb2luJyxcbiAgICAnbGlrZScsXG4gICAgJ21heG9mJyxcbiAgICAnbWlub2YnLFxuICAgICdtb2QnLFxuICAgICduYW1lc3BhY2UnLFxuICAgICduZXcnLFxuICAgICduZXh0JyxcbiAgICAnbm9mZXRjaCcsXG4gICAgJ25vdGV4aXN0cycsXG4gICAgJ29wdGltaXN0aWNsb2NrJyxcbiAgICAnb3JkZXInLFxuICAgICdvdXRlcicsXG4gICAgJ3Blc3NpbWlzdGljbG9jaycsXG4gICAgJ3ByaW50JyxcbiAgICAncHJpdmF0ZScsXG4gICAgJ3Byb3RlY3RlZCcsXG4gICAgJ3B1YmxpYycsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAncmVwZWF0YWJsZXJlYWQnLFxuICAgICdyZXRyeScsXG4gICAgJ3JldHVybicsXG4gICAgJ3JldmVyc2UnLFxuICAgICdzZWxlY3QnLFxuICAgICdzZXJ2ZXInLFxuICAgICdzZXR0aW5nJyxcbiAgICAnc3RhdGljJyxcbiAgICAnc3VtJyxcbiAgICAnc3VwZXInLFxuICAgICdzd2l0Y2gnLFxuICAgICd0aGlzJyxcbiAgICAndGhyb3cnLFxuICAgICd0cnknLFxuICAgICd0dHNhYm9ydCcsXG4gICAgJ3R0c2JlZ2luJyxcbiAgICAndHRzY29tbWl0JyxcbiAgICAndW5jaGVja2VkJyxcbiAgICAndXBkYXRlX3JlY29yZHNldCcsXG4gICAgJ3VzaW5nJyxcbiAgICAndmFsaWR0aW1lc3RhdGUnLFxuICAgICd2b2lkJyxcbiAgICAnd2hlcmUnLFxuICAgICd3aGlsZSdcbiAgXTtcblxuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBOT1JNQUxfS0VZV09SRFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOX0tFWVdPUkRTLFxuICAgIGxpdGVyYWw6IExJVEVSQUxfS0VZV09SRFNcbiAgfTtcblxuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC8oY2xhc3N8aW50ZXJmYWNlKVxccysvLFxuICAgICAgICBJREVOVF9SRSxcbiAgICAgICAgL1xccysoZXh0ZW5kc3xpbXBsZW1lbnRzKVxccysvLFxuICAgICAgICBJREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSURFTlRfUkVcbiAgICAgIF0gfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1grKycsXG4gICAgYWxpYXNlczogWyAneCsrJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIENMQVNTX0RFRklOSVRJT05cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXhhcHRhO1xuIiwgIi8qXG5MYW5ndWFnZTogQmFzaFxuQXV0aG9yOiB2YWggPHZhaHRlbmJlcmdAZ21haWwuY29tPlxuQ29udHJpYnV0cm9yczogQmVuamFtaW4gUGFubmVsbCA8Y29udGFjdEBzaWVycmFzb2Z0d29ya3MuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYmFzaChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgVkFSID0ge307XG4gIGNvbnN0IEJSQUNFRF9WQVIgPSB7XG4gICAgYmVnaW46IC9cXCRcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFwic2VsZlwiLFxuICAgICAge1xuICAgICAgICBiZWdpbjogLzotLyxcbiAgICAgICAgY29udGFpbnM6IFsgVkFSIF1cbiAgICAgIH0gLy8gZGVmYXVsdCB2YWx1ZXNcbiAgICBdXG4gIH07XG4gIE9iamVjdC5hc3NpZ24oVkFSLCB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1xcJFtcXHdcXGQjQF1bXFx3XFxkX10qLyxcbiAgICAgICAgLy8gbmVnYXRpdmUgbG9vay1haGVhZCB0cmllcyB0byBhdm9pZCBtYXRjaGluZyBwYXR0ZXJucyB0aGF0IGFyZSBub3RcbiAgICAgICAgLy8gUGVybCBhdCBhbGwgbGlrZSAkaWRlbnQkLCBAaWRlbnRALCBldGMuXG4gICAgICAgIGAoPyFbXFxcXHdcXFxcZF0pKD8hWyRdKWApIH0sXG4gICAgICBCUkFDRURfVkFSXG4gICAgXVxuICB9KTtcblxuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC9cXCRcXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcbiAgY29uc3QgQ09NTUVOVCA9IGhsanMuaW5oZXJpdChcbiAgICBobGpzLkNPTU1FTlQoKSxcbiAgICB7XG4gICAgICBtYXRjaDogW1xuICAgICAgICAvKF58XFxzKS8sXG4gICAgICAgIC8jLiokL1xuICAgICAgXSxcbiAgICAgIHNjb3BlOiB7XG4gICAgICAgIDI6ICdjb21tZW50J1xuICAgICAgfVxuICAgIH1cbiAgKTtcbiAgY29uc3QgSEVSRV9ET0MgPSB7XG4gICAgYmVnaW46IC88PC0/XFxzKig/PVxcdyspLyxcbiAgICBzdGFydHM6IHsgY29udGFpbnM6IFtcbiAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICBiZWdpbjogLyhcXHcrKS8sXG4gICAgICAgIGVuZDogLyhcXHcrKS8sXG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZydcbiAgICAgIH0pXG4gICAgXSB9XG4gIH07XG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zLnB1c2goUVVPVEVfU1RSSU5HKTtcbiAgY29uc3QgRVNDQVBFRF9RVU9URSA9IHtcbiAgICBtYXRjaDogL1xcXFxcIi9cbiAgfTtcbiAgY29uc3QgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLFxuICAgIGVuZDogLycvXG4gIH07XG4gIGNvbnN0IEVTQ0FQRURfQVBPUyA9IHtcbiAgICBtYXRjaDogL1xcXFwnL1xuICB9O1xuICBjb25zdCBBUklUSE1FVElDID0ge1xuICAgIGJlZ2luOiAvXFwkP1xcKFxcKC8sXG4gICAgZW5kOiAvXFwpXFwpLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcZCsjWzAtOWEtZl0rLyxcbiAgICAgICAgY2xhc3NOYW1lOiBcIm51bWJlclwiXG4gICAgICB9LFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIFZBUlxuICAgIF1cbiAgfTtcbiAgY29uc3QgU0hfTElLRV9TSEVMTFMgPSBbXG4gICAgXCJmaXNoXCIsXG4gICAgXCJiYXNoXCIsXG4gICAgXCJ6c2hcIixcbiAgICBcInNoXCIsXG4gICAgXCJjc2hcIixcbiAgICBcImtzaFwiLFxuICAgIFwidGNzaFwiLFxuICAgIFwiZGFzaFwiLFxuICAgIFwic2NzaFwiLFxuICBdO1xuICBjb25zdCBLTk9XTl9TSEVCQU5HID0gaGxqcy5TSEVCQU5HKHtcbiAgICBiaW5hcnk6IGAoJHtTSF9MSUtFX1NIRUxMUy5qb2luKFwifFwiKX0pYCxcbiAgICByZWxldmFuY2U6IDEwXG4gIH0pO1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW46IC9cXHdbXFx3XFxkX10qXFxzKlxcKFxccypcXClcXHMqXFx7LyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogWyBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiAvXFx3W1xcd1xcZF9dKi8gfSkgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImlmXCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbGlmXCIsXG4gICAgXCJmaVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcImluXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZG9uZVwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZXNhY1wiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcInNlbGVjdFwiXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiXG4gIF07XG5cbiAgLy8gdG8gY29uc3VtZSBwYXRocyB0byBwcmV2ZW50IGtleXdvcmQgbWF0Y2hlcyBpbnNpZGUgdGhlbVxuICBjb25zdCBQQVRIX01PREUgPSB7IG1hdGNoOiAvKFxcL1thLXouXy1dKykrLyB9O1xuXG4gIC8vIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2hlbGwtQnVpbHRpbi1Db21tYW5kcy5odG1sXG4gIGNvbnN0IFNIRUxMX0JVSUxUX0lOUyA9IFtcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjZFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImV2YWxcIixcbiAgICBcImV4ZWNcIixcbiAgICBcImV4aXRcIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwiZ2V0b3B0c1wiLFxuICAgIFwiaGFzaFwiLFxuICAgIFwicHdkXCIsXG4gICAgXCJyZWFkb25seVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzaGlmdFwiLFxuICAgIFwidGVzdFwiLFxuICAgIFwidGltZXNcIixcbiAgICBcInRyYXBcIixcbiAgICBcInVtYXNrXCIsXG4gICAgXCJ1bnNldFwiXG4gIF07XG5cbiAgY29uc3QgQkFTSF9CVUlMVF9JTlMgPSBbXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiYmluZFwiLFxuICAgIFwiYnVpbHRpblwiLFxuICAgIFwiY2FsbGVyXCIsXG4gICAgXCJjb21tYW5kXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJlY2hvXCIsXG4gICAgXCJlbmFibGVcIixcbiAgICBcImhlbHBcIixcbiAgICBcImxldFwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImxvZ291dFwiLFxuICAgIFwibWFwZmlsZVwiLFxuICAgIFwicHJpbnRmXCIsXG4gICAgXCJyZWFkXCIsXG4gICAgXCJyZWFkYXJyYXlcIixcbiAgICBcInNvdXJjZVwiLFxuICAgIFwic3Vkb1wiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidHlwZXNldFwiLFxuICAgIFwidWxpbWl0XCIsXG4gICAgXCJ1bmFsaWFzXCJcbiAgXTtcblxuICBjb25zdCBaU0hfQlVJTFRfSU5TID0gW1xuICAgIFwiYXV0b2xvYWRcIixcbiAgICBcImJnXCIsXG4gICAgXCJiaW5ka2V5XCIsXG4gICAgXCJieWVcIixcbiAgICBcImNhcFwiLFxuICAgIFwiY2hkaXJcIixcbiAgICBcImNsb25lXCIsXG4gICAgXCJjb21wYXJndW1lbnRzXCIsXG4gICAgXCJjb21wY2FsbFwiLFxuICAgIFwiY29tcGN0bFwiLFxuICAgIFwiY29tcGRlc2NyaWJlXCIsXG4gICAgXCJjb21wZmlsZXNcIixcbiAgICBcImNvbXBncm91cHNcIixcbiAgICBcImNvbXBxdW90ZVwiLFxuICAgIFwiY29tcHRhZ3NcIixcbiAgICBcImNvbXB0cnlcIixcbiAgICBcImNvbXB2YWx1ZXNcIixcbiAgICBcImRpcnNcIixcbiAgICBcImRpc2FibGVcIixcbiAgICBcImRpc293blwiLFxuICAgIFwiZWNob3RjXCIsXG4gICAgXCJlY2hvdGlcIixcbiAgICBcImVtdWxhdGVcIixcbiAgICBcImZjXCIsXG4gICAgXCJmZ1wiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImZ1bmN0aW9uc1wiLFxuICAgIFwiZ2V0Y2FwXCIsXG4gICAgXCJnZXRsblwiLFxuICAgIFwiaGlzdG9yeVwiLFxuICAgIFwiaW50ZWdlclwiLFxuICAgIFwiam9ic1wiLFxuICAgIFwia2lsbFwiLFxuICAgIFwibGltaXRcIixcbiAgICBcImxvZ1wiLFxuICAgIFwibm9nbG9iXCIsXG4gICAgXCJwb3BkXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicHVzaGRcIixcbiAgICBcInB1c2hsblwiLFxuICAgIFwicmVoYXNoXCIsXG4gICAgXCJzY2hlZFwiLFxuICAgIFwic2V0Y2FwXCIsXG4gICAgXCJzZXRvcHRcIixcbiAgICBcInN0YXRcIixcbiAgICBcInN1c3BlbmRcIixcbiAgICBcInR0eWN0bFwiLFxuICAgIFwidW5mdW5jdGlvblwiLFxuICAgIFwidW5oYXNoXCIsXG4gICAgXCJ1bmxpbWl0XCIsXG4gICAgXCJ1bnNldG9wdFwiLFxuICAgIFwidmFyZWRcIixcbiAgICBcIndhaXRcIixcbiAgICBcIndoZW5jZVwiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIndoaWNoXCIsXG4gICAgXCJ6Y29tcGlsZVwiLFxuICAgIFwiemZvcm1hdFwiLFxuICAgIFwiemZ0cFwiLFxuICAgIFwiemxlXCIsXG4gICAgXCJ6bW9kbG9hZFwiLFxuICAgIFwienBhcnNlb3B0c1wiLFxuICAgIFwienByb2ZcIixcbiAgICBcInpwdHlcIixcbiAgICBcInpyZWdleHBhcnNlXCIsXG4gICAgXCJ6c29ja2V0XCIsXG4gICAgXCJ6c3R5bGVcIixcbiAgICBcInp0Y3BcIlxuICBdO1xuXG4gIGNvbnN0IEdOVV9DT1JFX1VUSUxTID0gW1xuICAgIFwiY2hjb25cIixcbiAgICBcImNoZ3JwXCIsXG4gICAgXCJjaG93blwiLFxuICAgIFwiY2htb2RcIixcbiAgICBcImNwXCIsXG4gICAgXCJkZFwiLFxuICAgIFwiZGZcIixcbiAgICBcImRpclwiLFxuICAgIFwiZGlyY29sb3JzXCIsXG4gICAgXCJsblwiLFxuICAgIFwibHNcIixcbiAgICBcIm1rZGlyXCIsXG4gICAgXCJta2ZpZm9cIixcbiAgICBcIm1rbm9kXCIsXG4gICAgXCJta3RlbXBcIixcbiAgICBcIm12XCIsXG4gICAgXCJyZWFscGF0aFwiLFxuICAgIFwicm1cIixcbiAgICBcInJtZGlyXCIsXG4gICAgXCJzaHJlZFwiLFxuICAgIFwic3luY1wiLFxuICAgIFwidG91Y2hcIixcbiAgICBcInRydW5jYXRlXCIsXG4gICAgXCJ2ZGlyXCIsXG4gICAgXCJiMnN1bVwiLFxuICAgIFwiYmFzZTMyXCIsXG4gICAgXCJiYXNlNjRcIixcbiAgICBcImNhdFwiLFxuICAgIFwiY2tzdW1cIixcbiAgICBcImNvbW1cIixcbiAgICBcImNzcGxpdFwiLFxuICAgIFwiY3V0XCIsXG4gICAgXCJleHBhbmRcIixcbiAgICBcImZtdFwiLFxuICAgIFwiZm9sZFwiLFxuICAgIFwiaGVhZFwiLFxuICAgIFwiam9pblwiLFxuICAgIFwibWQ1c3VtXCIsXG4gICAgXCJubFwiLFxuICAgIFwibnVtZm10XCIsXG4gICAgXCJvZFwiLFxuICAgIFwicGFzdGVcIixcbiAgICBcInB0eFwiLFxuICAgIFwicHJcIixcbiAgICBcInNoYTFzdW1cIixcbiAgICBcInNoYTIyNHN1bVwiLFxuICAgIFwic2hhMjU2c3VtXCIsXG4gICAgXCJzaGEzODRzdW1cIixcbiAgICBcInNoYTUxMnN1bVwiLFxuICAgIFwic2h1ZlwiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3BsaXRcIixcbiAgICBcInN1bVwiLFxuICAgIFwidGFjXCIsXG4gICAgXCJ0YWlsXCIsXG4gICAgXCJ0clwiLFxuICAgIFwidHNvcnRcIixcbiAgICBcInVuZXhwYW5kXCIsXG4gICAgXCJ1bmlxXCIsXG4gICAgXCJ3Y1wiLFxuICAgIFwiYXJjaFwiLFxuICAgIFwiYmFzZW5hbWVcIixcbiAgICBcImNocm9vdFwiLFxuICAgIFwiZGF0ZVwiLFxuICAgIFwiZGlybmFtZVwiLFxuICAgIFwiZHVcIixcbiAgICBcImVjaG9cIixcbiAgICBcImVudlwiLFxuICAgIFwiZXhwclwiLFxuICAgIFwiZmFjdG9yXCIsXG4gICAgLy8gXCJmYWxzZVwiLCAvLyBrZXl3b3JkIGxpdGVyYWwgYWxyZWFkeVxuICAgIFwiZ3JvdXBzXCIsXG4gICAgXCJob3N0aWRcIixcbiAgICBcImlkXCIsXG4gICAgXCJsaW5rXCIsXG4gICAgXCJsb2duYW1lXCIsXG4gICAgXCJuaWNlXCIsXG4gICAgXCJub2h1cFwiLFxuICAgIFwibnByb2NcIixcbiAgICBcInBhdGhjaGtcIixcbiAgICBcInBpbmt5XCIsXG4gICAgXCJwcmludGVudlwiLFxuICAgIFwicHJpbnRmXCIsXG4gICAgXCJwd2RcIixcbiAgICBcInJlYWRsaW5rXCIsXG4gICAgXCJydW5jb25cIixcbiAgICBcInNlcVwiLFxuICAgIFwic2xlZXBcIixcbiAgICBcInN0YXRcIixcbiAgICBcInN0ZGJ1ZlwiLFxuICAgIFwic3R0eVwiLFxuICAgIFwidGVlXCIsXG4gICAgXCJ0ZXN0XCIsXG4gICAgXCJ0aW1lb3V0XCIsXG4gICAgLy8gXCJ0cnVlXCIsIC8vIGtleXdvcmQgbGl0ZXJhbCBhbHJlYWR5XG4gICAgXCJ0dHlcIixcbiAgICBcInVuYW1lXCIsXG4gICAgXCJ1bmxpbmtcIixcbiAgICBcInVwdGltZVwiLFxuICAgIFwidXNlcnNcIixcbiAgICBcIndob1wiLFxuICAgIFwid2hvYW1pXCIsXG4gICAgXCJ5ZXNcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0Jhc2gnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdzaCcsXG4gICAgICAnenNoJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvXFxiW2Etel1bYS16MC05Ll8tXStcXGIvLFxuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIGJ1aWx0X2luOiBbXG4gICAgICAgIC4uLlNIRUxMX0JVSUxUX0lOUyxcbiAgICAgICAgLi4uQkFTSF9CVUlMVF9JTlMsXG4gICAgICAgIC8vIFNoZWxsIG1vZGlmaWVyc1xuICAgICAgICBcInNldFwiLFxuICAgICAgICBcInNob3B0XCIsXG4gICAgICAgIC4uLlpTSF9CVUlMVF9JTlMsXG4gICAgICAgIC4uLkdOVV9DT1JFX1VUSUxTXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgS05PV05fU0hFQkFORywgLy8gdG8gY2F0Y2gga25vd24gc2hlbGxzIGFuZCBib29zdCByZWxldmFuY3lcbiAgICAgIGhsanMuU0hFQkFORygpLCAvLyB0byBjYXRjaCB1bmtub3duIHNoZWxscyBidXQgc3RpbGwgaGlnaGxpZ2h0IHRoZSBzaGViYW5nXG4gICAgICBGVU5DVElPTixcbiAgICAgIEFSSVRITUVUSUMsXG4gICAgICBDT01NRU5ULFxuICAgICAgSEVSRV9ET0MsXG4gICAgICBQQVRIX01PREUsXG4gICAgICBRVU9URV9TVFJJTkcsXG4gICAgICBFU0NBUEVEX1FVT1RFLFxuICAgICAgQVBPU19TVFJJTkcsXG4gICAgICBFU0NBUEVEX0FQT1MsXG4gICAgICBWQVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzaDtcbiIsICIvKlxuTGFuZ3VhZ2U6IEJBU0lDXG5BdXRob3I6IFJhcGhhXHUwMEVCbCBBc3NcdTAwRTluYXQgPHJhcGhAcmFwaG5ldC5uZXQ+XG5EZXNjcmlwdGlvbjogQmFzZWQgb24gdGhlIEJBU0lDIHJlZmVyZW5jZSBmcm9tIHRoZSBUYW5keSAxMDAwIGd1aWRlXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9UYW5keV8xMDAwXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYmFzaWMoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcIkFCU1wiLFxuICAgIFwiQVNDXCIsXG4gICAgXCJBTkRcIixcbiAgICBcIkFUTlwiLFxuICAgIFwiQVVUT3wwXCIsXG4gICAgXCJCRUVQXCIsXG4gICAgXCJCTE9BRHwxMFwiLFxuICAgIFwiQlNBVkV8MTBcIixcbiAgICBcIkNBTExcIixcbiAgICBcIkNBTExTXCIsXG4gICAgXCJDREJMXCIsXG4gICAgXCJDSEFJTlwiLFxuICAgIFwiQ0hESVJcIixcbiAgICBcIkNIUiR8MTBcIixcbiAgICBcIkNJTlRcIixcbiAgICBcIkNJUkNMRVwiLFxuICAgIFwiQ0xFQVJcIixcbiAgICBcIkNMT1NFXCIsXG4gICAgXCJDTFNcIixcbiAgICBcIkNPTE9SXCIsXG4gICAgXCJDT01cIixcbiAgICBcIkNPTU1PTlwiLFxuICAgIFwiQ09OVFwiLFxuICAgIFwiQ09TXCIsXG4gICAgXCJDU05HXCIsXG4gICAgXCJDU1JMSU5cIixcbiAgICBcIkNWRFwiLFxuICAgIFwiQ1ZJXCIsXG4gICAgXCJDVlNcIixcbiAgICBcIkRBVEFcIixcbiAgICBcIkRBVEUkXCIsXG4gICAgXCJERUZEQkxcIixcbiAgICBcIkRFRklOVFwiLFxuICAgIFwiREVGU05HXCIsXG4gICAgXCJERUZTVFJcIixcbiAgICBcIkRFRnwwXCIsXG4gICAgXCJTRUdcIixcbiAgICBcIlVTUlwiLFxuICAgIFwiREVMRVRFXCIsXG4gICAgXCJESU1cIixcbiAgICBcIkRSQVdcIixcbiAgICBcIkVESVRcIixcbiAgICBcIkVORFwiLFxuICAgIFwiRU5WSVJPTlwiLFxuICAgIFwiRU5WSVJPTiRcIixcbiAgICBcIkVPRlwiLFxuICAgIFwiRVFWXCIsXG4gICAgXCJFUkFTRVwiLFxuICAgIFwiRVJERVZcIixcbiAgICBcIkVSREVWJFwiLFxuICAgIFwiRVJMXCIsXG4gICAgXCJFUlJcIixcbiAgICBcIkVSUk9SXCIsXG4gICAgXCJFWFBcIixcbiAgICBcIkZJRUxEXCIsXG4gICAgXCJGSUxFU1wiLFxuICAgIFwiRklYXCIsXG4gICAgXCJGT1J8MFwiLFxuICAgIFwiRlJFXCIsXG4gICAgXCJHRVRcIixcbiAgICBcIkdPU1VCfDEwXCIsXG4gICAgXCJHT1RPXCIsXG4gICAgXCJIRVgkXCIsXG4gICAgXCJJRlwiLFxuICAgIFwiVEhFTlwiLFxuICAgIFwiRUxTRXwwXCIsXG4gICAgXCJJTktFWSRcIixcbiAgICBcIklOUFwiLFxuICAgIFwiSU5QVVRcIixcbiAgICBcIklOUFVUI1wiLFxuICAgIFwiSU5QVVQkXCIsXG4gICAgXCJJTlNUUlwiLFxuICAgIFwiSU1QXCIsXG4gICAgXCJJTlRcIixcbiAgICBcIklPQ1RMXCIsXG4gICAgXCJJT0NUTCRcIixcbiAgICBcIktFWVwiLFxuICAgIFwiT05cIixcbiAgICBcIk9GRlwiLFxuICAgIFwiTElTVFwiLFxuICAgIFwiS0lMTFwiLFxuICAgIFwiTEVGVCRcIixcbiAgICBcIkxFTlwiLFxuICAgIFwiTEVUXCIsXG4gICAgXCJMSU5FXCIsXG4gICAgXCJMTElTVFwiLFxuICAgIFwiTE9BRFwiLFxuICAgIFwiTE9DXCIsXG4gICAgXCJMT0NBVEVcIixcbiAgICBcIkxPRlwiLFxuICAgIFwiTE9HXCIsXG4gICAgXCJMUFJJTlRcIixcbiAgICBcIlVTSU5HXCIsXG4gICAgXCJMU0VUXCIsXG4gICAgXCJNRVJHRVwiLFxuICAgIFwiTUlEJFwiLFxuICAgIFwiTUtESVJcIixcbiAgICBcIk1LRCRcIixcbiAgICBcIk1LSSRcIixcbiAgICBcIk1LUyRcIixcbiAgICBcIk1PRFwiLFxuICAgIFwiTkFNRVwiLFxuICAgIFwiTkVXXCIsXG4gICAgXCJORVhUXCIsXG4gICAgXCJOT0lTRVwiLFxuICAgIFwiTk9UXCIsXG4gICAgXCJPQ1QkXCIsXG4gICAgXCJPTlwiLFxuICAgIFwiT1JcIixcbiAgICBcIlBFTlwiLFxuICAgIFwiUExBWVwiLFxuICAgIFwiU1RSSUdcIixcbiAgICBcIk9QRU5cIixcbiAgICBcIk9QVElPTlwiLFxuICAgIFwiQkFTRVwiLFxuICAgIFwiT1VUXCIsXG4gICAgXCJQQUlOVFwiLFxuICAgIFwiUEFMRVRURVwiLFxuICAgIFwiUENPUFlcIixcbiAgICBcIlBFRUtcIixcbiAgICBcIlBNQVBcIixcbiAgICBcIlBPSU5UXCIsXG4gICAgXCJQT0tFXCIsXG4gICAgXCJQT1NcIixcbiAgICBcIlBSSU5UXCIsXG4gICAgXCJQUklOVF1cIixcbiAgICBcIlBTRVRcIixcbiAgICBcIlBSRVNFVFwiLFxuICAgIFwiUFVUXCIsXG4gICAgXCJSQU5ET01JWkVcIixcbiAgICBcIlJFQURcIixcbiAgICBcIlJFTVwiLFxuICAgIFwiUkVOVU1cIixcbiAgICBcIlJFU0VUfDBcIixcbiAgICBcIlJFU1RPUkVcIixcbiAgICBcIlJFU1VNRVwiLFxuICAgIFwiUkVUVVJOfDBcIixcbiAgICBcIlJJR0hUJFwiLFxuICAgIFwiUk1ESVJcIixcbiAgICBcIlJORFwiLFxuICAgIFwiUlNFVFwiLFxuICAgIFwiUlVOXCIsXG4gICAgXCJTQVZFXCIsXG4gICAgXCJTQ1JFRU5cIixcbiAgICBcIlNHTlwiLFxuICAgIFwiU0hFTExcIixcbiAgICBcIlNJTlwiLFxuICAgIFwiU09VTkRcIixcbiAgICBcIlNQQUNFJFwiLFxuICAgIFwiU1BDXCIsXG4gICAgXCJTUVJcIixcbiAgICBcIlNURVBcIixcbiAgICBcIlNUSUNLXCIsXG4gICAgXCJTVE9QXCIsXG4gICAgXCJTVFIkXCIsXG4gICAgXCJTVFJJTkckXCIsXG4gICAgXCJTV0FQXCIsXG4gICAgXCJTWVNURU1cIixcbiAgICBcIlRBQlwiLFxuICAgIFwiVEFOXCIsXG4gICAgXCJUSU1FJFwiLFxuICAgIFwiVElNRVJcIixcbiAgICBcIlRST0ZGXCIsXG4gICAgXCJUUk9OXCIsXG4gICAgXCJUT1wiLFxuICAgIFwiVVNSXCIsXG4gICAgXCJWQUxcIixcbiAgICBcIlZBUlBUUlwiLFxuICAgIFwiVkFSUFRSJFwiLFxuICAgIFwiVklFV1wiLFxuICAgIFwiV0FJVFwiLFxuICAgIFwiV0hJTEVcIixcbiAgICBcIldFTkRcIixcbiAgICBcIldJRFRIXCIsXG4gICAgXCJXSU5ET1dcIixcbiAgICBcIldSSVRFXCIsXG4gICAgXCJYT1JcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0JBU0lDJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdeXFwuJyxcbiAgICAvLyBTdXBwb3J0IGV4cGxpY2l0bHkgdHlwZWQgdmFyaWFibGVzIHRoYXQgZW5kIHdpdGggJCUhIG9yICMuXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAnW2EtekEtWl1bYS16QS1aMC05XyQlISNdKicsXG4gICAgICBrZXl3b3JkOiBLRVlXT1JEU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJ1JFTScsICckJywgeyByZWxldmFuY2U6IDEwIH0pLFxuICAgICAgaGxqcy5DT01NRU5UKCdcXCcnLCAnJCcsIHsgcmVsZXZhbmNlOiAwIH0pLFxuICAgICAge1xuICAgICAgICAvLyBNYXRjaCBsaW5lIG51bWJlcnNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdeWzAtOV0rICcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIE1hdGNoIHR5cGVkIG51bWVyaWMgY29uc3RhbnRzICgxMDAwLCAxMi4zNCEsIDEuMmU1LCAxLjUjLCAxLjJEMilcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKyk/KFtlZEVEXVxcXFxkKyk/WyNcXCFdPycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gTWF0Y2ggaGV4YWRlY2ltYWwgbnVtYmVycyAoJkh4eHh4KVxuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJygmW2hIXVswLTlhLWZBLUZdezEsNH0pJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gTWF0Y2ggb2N0YWwgbnVtYmVycyAoJk94eHh4eHgpXG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnKCZbb09dWzAtN117MSw2fSknXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2ljO1xuIiwgIi8qXG5MYW5ndWFnZTogQmFja3VzXHUyMDEzTmF1ciBGb3JtXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYWNrdXNcdTIwMTNOYXVyX2Zvcm1cbkNhdGVnb3J5OiBzeW50YXhcbkF1dGhvcjogT2xlZyBFZmltb3YgPGVmaW1vdm92QGdtYWlsLmNvbT5cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBibmYoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdCYWNrdXNcdTIwMTNOYXVyIEZvcm0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBBdHRyaWJ1dGVcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46IC88LyxcbiAgICAgICAgZW5kOiAvPi9cbiAgICAgIH0sXG4gICAgICAvLyBTcGVjaWZpY1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzo6PS8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPC8sXG4gICAgICAgICAgICBlbmQ6IC8+L1xuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBibmY7XG4iLCAiLypcbkxhbmd1YWdlOiBCcmFpbmZ1Y2tcbkF1dGhvcjogRXZnZW55IFN0ZXBhbmlzY2hldiA8aW1ib2xrQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZXNvbGFuZ3Mub3JnL3dpa2kvQnJhaW5mdWNrXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYnJhaW5mdWNrKGhsanMpIHtcbiAgY29uc3QgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogL1srLV0rLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQnJhaW5mdWNrJyxcbiAgICBhbGlhc2VzOiBbICdiZicgXSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvW15cXFtcXF1cXC4sXFwrXFwtPD4gXFxyXFxuXS8sXG4gICAgICAgIC9bXFxbXFxdXFwuLFxcK1xcLTw+IFxcclxcbl0vLFxuICAgICAgICB7XG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWF0Y2g6IC9bIF0rW15cXFtcXF1cXC4sXFwrXFwtPD4gXFxyXFxuXS8sXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgIGJlZ2luOiAnW1xcXFxbXFxcXF1dJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1tcXFxcLixdJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0aGlzIG1vZGUgd29ya3MgYXMgdGhlIG9ubHkgcmVsZXZhbmNlIGNvdW50ZXJcbiAgICAgICAgLy8gaXQgbG9va3MgYWhlYWQgdG8gZmluZCB0aGUgc3RhcnQgb2YgYSBydW4gb2YgbGl0ZXJhbHNcbiAgICAgICAgLy8gc28gb25seSB0aGUgcnVucyBhcmUgY291bnRlZCBhcyByZWxldmFudFxuICAgICAgICBiZWdpbjogLyg/PVxcK1xcK3wtLSkvLFxuICAgICAgICBjb250YWluczogWyBMSVRFUkFMIF1cbiAgICAgIH0sXG4gICAgICBMSVRFUkFMXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJyYWluZnVjaztcbiIsICIvKlxuTGFuZ3VhZ2U6IENcbkNhdGVnb3J5OiBjb21tb24sIHN5c3RlbVxuV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ18ocHJvZ3JhbW1pbmdfbGFuZ3VhZ2UpXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gYyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gYWRkZWQgZm9yIGhpc3RvcmljIHJlYXNvbnMgYmVjYXVzZSBgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFYCBkb2VzXG4gIC8vIG5vdCBpbmNsdWRlIHN1Y2ggc3VwcG9ydCBub3IgY2FuIHdlIGJlIHN1cmUgYWxsIHRoZSBncmFtbWFycyBkZXBlbmRpbmdcbiAgLy8gb24gaXQgd291bGQgZGVzaXJlIHRoaXMgYmVoYXZpb3JcbiAgY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLy8nLCAnJCcsIHsgY29udGFpbnM6IFsgeyBiZWdpbjogL1xcXFxcXG4vIH0gXSB9KTtcbiAgY29uc3QgREVDTFRZUEVfQVVUT19SRSA9ICdkZWNsdHlwZVxcXFwoYXV0b1xcXFwpJztcbiAgY29uc3QgTkFNRVNQQUNFX1JFID0gJ1thLXpBLVpfXVxcXFx3Kjo6JztcbiAgY29uc3QgVEVNUExBVEVfQVJHVU1FTlRfUkUgPSAnPFtePD5dKz4nO1xuICBjb25zdCBGVU5DVElPTl9UWVBFX1JFID0gJygnXG4gICAgKyBERUNMVFlQRV9BVVRPX1JFICsgJ3wnXG4gICAgKyByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpXG4gICAgKyAnW2EtekEtWl9dXFxcXHcqJyArIHJlZ2V4Lm9wdGlvbmFsKFRFTVBMQVRFX0FSR1VNRU5UX1JFKVxuICArICcpJztcblxuXG4gIGNvbnN0IFRZUEVTID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXGJbYS16XFxcXGRfXSpfdFxcXFxiJyB9LFxuICAgICAgeyBtYXRjaDogL1xcYmF0b21pY19bYS16XXszLDZ9XFxiLyB9XG4gICAgXVxuXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2xhbmd1YWdlL2VzY2FwZVxuICAvLyBcXFxcIFxceCBcXHhGRiBcXHUyODM3IFxcdTAwMzIzNzQ3IFxcMzc0XG4gIGNvbnN0IENIQVJBQ1RFUl9FU0NBUEVTID0gJ1xcXFxcXFxcKHhbMC05QS1GYS1mXXsyfXx1WzAtOUEtRmEtZl17NCw4fXxbMC03XXszfXxcXFxcUyknO1xuICBjb25zdCBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcodTg/fFV8TCk/XCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyh1OD98VXxMKT9cXCcoJyArIENIQVJBQ1RFUl9FU0NBUEVTICsgXCJ8LilcIixcbiAgICAgICAgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9LFxuICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgIGJlZ2luOiAvKD86dTg/fFV8TCk/UlwiKFteKClcXFxcIF17MCwxNn0pXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpKFteKClcXFxcIF17MCwxNn0pXCIvXG4gICAgICB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKChsbHxMTHxsfEwpKHV8VSk/fCh1fFUpKGxsfExMfGx8TCk/fGZ8RnxifEIpJyB9LFxuICAgICAgeyBiZWdpbjogJygtPykoXFxcXGIwW3hYXVthLWZBLUYwLTlcXCddK3woXFxcXGJbXFxcXGRcXCddKyhcXFxcLltcXFxcZFxcJ10qKT98XFxcXC5bXFxcXGRcXCddKykoW2VFXVstK10/W1xcXFxkXFwnXSspPyknIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBSRVBST0NFU1NPUiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNcXHMqW2Etel0rXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAnaWYgZWxzZSBlbGlmIGVuZGlmIGRlZmluZSB1bmRlZiB3YXJuaW5nIGVycm9yIGxpbmUgJ1xuICAgICAgICArICdwcmFnbWEgX1ByYWdtYSBpZmRlZiBpZm5kZWYgZWxpZmRlZiBlbGlmbmRlZiBpbmNsdWRlJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChTVFJJTkdTLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvPC4qPz4vXG4gICAgICB9LFxuICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgVElUTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IHJlZ2V4Lm9wdGlvbmFsKE5BTUVTUEFDRV9SRSkgKyBobGpzLklERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX1RJVExFID0gcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKSArIGhsanMuSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnO1xuXG4gIGNvbnN0IENfS0VZV09SRFMgPSBbXG4gICAgXCJhc21cIixcbiAgICBcImF1dG9cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVudW1cIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3J0cmFuXCIsXG4gICAgXCJnb3RvXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2l6ZW9mXCIsXG4gICAgXCJ0eXBlb2ZcIixcbiAgICBcInR5cGVvZl91bnF1YWxcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwic3dpdGNoXCIsXG4gICAgXCJ0eXBlZGVmXCIsXG4gICAgXCJ1bmlvblwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJfQWxpZ25hc1wiLFxuICAgIFwiX0FsaWdub2ZcIixcbiAgICBcIl9BdG9taWNcIixcbiAgICBcIl9HZW5lcmljXCIsXG4gICAgXCJfTm9yZXR1cm5cIixcbiAgICBcIl9TdGF0aWNfYXNzZXJ0XCIsXG4gICAgXCJfVGhyZWFkX2xvY2FsXCIsXG4gICAgLy8gYWxpYXNlc1xuICAgIFwiYWxpZ25hc1wiLFxuICAgIFwiYWxpZ25vZlwiLFxuICAgIFwibm9yZXR1cm5cIixcbiAgICBcInN0YXRpY19hc3NlcnRcIixcbiAgICBcInRocmVhZF9sb2NhbFwiLFxuICAgIC8vIG5vdCBhIEMga2V5d29yZCBidXQgaXMsIGZvciBhbGwgaW50ZW50cyBhbmQgcHVycG9zZXMsIHRyZWF0ZWQgZXhhY3RseSBsaWtlIG9uZS5cbiAgICBcIl9QcmFnbWFcIlxuICBdO1xuXG4gIGNvbnN0IENfVFlQRVMgPSBbXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJzaWduZWRcIixcbiAgICBcInVuc2lnbmVkXCIsXG4gICAgXCJpbnRcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJfQm9vbFwiLFxuICAgIFwiX0JpdEludFwiLFxuICAgIFwiX0NvbXBsZXhcIixcbiAgICBcIl9JbWFnaW5hcnlcIixcbiAgICBcIl9EZWNpbWFsMzJcIixcbiAgICBcIl9EZWNpbWFsNjRcIixcbiAgICBcIl9EZWNpbWFsOTZcIixcbiAgICBcIl9EZWNpbWFsMTI4XCIsXG4gICAgXCJfRGVjaW1hbDY0eFwiLFxuICAgIFwiX0RlY2ltYWwxMjh4XCIsXG4gICAgXCJfRmxvYXQxNlwiLFxuICAgIFwiX0Zsb2F0MzJcIixcbiAgICBcIl9GbG9hdDY0XCIsXG4gICAgXCJfRmxvYXQxMjhcIixcbiAgICBcIl9GbG9hdDMyeFwiLFxuICAgIFwiX0Zsb2F0NjR4XCIsXG4gICAgXCJfRmxvYXQxMjh4XCIsXG4gICAgLy8gbW9kaWZpZXJzXG4gICAgXCJjb25zdFwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJjb25zdGV4cHJcIixcbiAgICAvLyBhbGlhc2VzXG4gICAgXCJjb21wbGV4XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJpbWFnaW5hcnlcIlxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6IENfS0VZV09SRFMsXG4gICAgdHlwZTogQ19UWVBFUyxcbiAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBOVUxMJyxcbiAgICAvLyBUT0RPOiBhcHBseSBoaW50aW5nIHdvcmsgc2ltaWxhciB0byB3aGF0IHdhcyBkb25lIGluIGNwcC5qc1xuICAgIGJ1aWx0X2luOiAnc3RkIHN0cmluZyB3c3RyaW5nIGNpbiBjb3V0IGNlcnIgY2xvZyBzdGRpbiBzdGRvdXQgc3RkZXJyIHN0cmluZ3N0cmVhbSBpc3RyaW5nc3RyZWFtIG9zdHJpbmdzdHJlYW0gJ1xuICAgICAgKyAnYXV0b19wdHIgZGVxdWUgbGlzdCBxdWV1ZSBzdGFjayB2ZWN0b3IgbWFwIHNldCBwYWlyIGJpdHNldCBtdWx0aXNldCBtdWx0aW1hcCB1bm9yZGVyZWRfc2V0ICdcbiAgICAgICsgJ3Vub3JkZXJlZF9tYXAgdW5vcmRlcmVkX211bHRpc2V0IHVub3JkZXJlZF9tdWx0aW1hcCBwcmlvcml0eV9xdWV1ZSBtYWtlX3BhaXIgYXJyYXkgc2hhcmVkX3B0ciBhYm9ydCB0ZXJtaW5hdGUgYWJzIGFjb3MgJ1xuICAgICAgKyAnYXNpbiBhdGFuMiBhdGFuIGNhbGxvYyBjZWlsIGNvc2ggY29zIGV4aXQgZXhwIGZhYnMgZmxvb3IgZm1vZCBmcHJpbnRmIGZwdXRzIGZyZWUgZnJleHAgJ1xuICAgICAgKyAnZnNjYW5mIGZ1dHVyZSBpc2FsbnVtIGlzYWxwaGEgaXNjbnRybCBpc2RpZ2l0IGlzZ3JhcGggaXNsb3dlciBpc3ByaW50IGlzcHVuY3QgaXNzcGFjZSBpc3VwcGVyICdcbiAgICAgICsgJ2lzeGRpZ2l0IHRvbG93ZXIgdG91cHBlciBsYWJzIGxkZXhwIGxvZzEwIGxvZyBtYWxsb2MgcmVhbGxvYyBtZW1jaHIgbWVtY21wIG1lbWNweSBtZW1zZXQgbW9kZiBwb3cgJ1xuICAgICAgKyAncHJpbnRmIHB1dGNoYXIgcHV0cyBzY2FuZiBzaW5oIHNpbiBzbnByaW50ZiBzcHJpbnRmIHNxcnQgc3NjYW5mIHN0cmNhdCBzdHJjaHIgc3RyY21wICdcbiAgICAgICsgJ3N0cmNweSBzdHJjc3BuIHN0cmxlbiBzdHJuY2F0IHN0cm5jbXAgc3RybmNweSBzdHJwYnJrIHN0cnJjaHIgc3Ryc3BuIHN0cnN0ciB0YW5oIHRhbiAnXG4gICAgICArICd2ZnByaW50ZiB2cHJpbnRmIHZzcHJpbnRmIGVuZGwgaW5pdGlhbGl6ZXJfbGlzdCB1bmlxdWVfcHRyJyxcbiAgfTtcblxuICBjb25zdCBFWFBSRVNTSU9OX0NPTlRBSU5TID0gW1xuICAgIFBSRVBST0NFU1NPUixcbiAgICBUWVBFUyxcbiAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgTlVNQkVSUyxcbiAgICBTVFJJTkdTXG4gIF07XG5cbiAgY29uc3QgRVhQUkVTU0lPTl9DT05URVhUID0ge1xuICAgIC8vIFRoaXMgbW9kZSBjb3ZlcnMgZXhwcmVzc2lvbiBjb250ZXh0IHdoZXJlIHdlIGNhbid0IGV4cGVjdCBhIGZ1bmN0aW9uXG4gICAgLy8gZGVmaW5pdGlvbiBhbmQgc2hvdWxkbid0IGhpZ2hsaWdodCBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2Ugb25lOlxuICAgIC8vIGByZXR1cm4gc29tZSgpYCwgYGVsc2UgaWYoKWAsIGAoeCpzdW0oMSwgMikpYFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgIGVuZDogLzsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcgdGhyb3cgcmV0dXJuIGVsc2UnLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfVxuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBFWFBSRVNTSU9OX0NPTlRBSU5TLmNvbmNhdChbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoWyAnc2VsZicgXSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0pLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFQ0xBUkFUSU9OID0ge1xuICAgIGJlZ2luOiAnKCcgKyBGVU5DVElPTl9UWVBFX1JFICsgJ1tcXFxcKiZcXFxcc10rKSsnICsgRlVOQ1RJT05fVElUTEUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgZW5kOiAvW3s7PV0vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC9bXlxcd1xcc1xcKiY6PD4uXS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8gdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGNvbmZ1c2VkIGFzIHRoZSBmdW5jdGlvbiB0aXRsZVxuICAgICAgICBiZWdpbjogREVDTFRZUEVfQVVUT19SRSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBGVU5DVElPTl9USVRMRSxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuaW5oZXJpdChUSVRMRV9NT0RFLCB7IGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiIH0pIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIGFsbG93IGZvciBtdWx0aXBsZSBkZWNsYXJhdGlvbnMsIGUuZy46XG4gICAgICAvLyBleHRlcm4gdm9pZCBmKGludCksIGcoY2hhcik7XG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgbWF0Y2g6IC8sL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgU1RSSU5HUyxcbiAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgIFRZUEVTLFxuICAgICAgICAgIC8vIENvdW50IG1hdGNoaW5nIHBhcmVudGhlc2VzLlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgICAgIE5VTUJFUlMsXG4gICAgICAgICAgICAgIFRZUEVTXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgVFlQRVMsXG4gICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIFBSRVBST0NFU1NPUlxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiQ1wiLFxuICAgIGFsaWFzZXM6IFsgJ2gnIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIC8vIFVudGlsIGRpZmZlcmVudGlhdGlvbnMgYXJlIGFkZGVkIGJldHdlZW4gYGNgIGFuZCBgY3BwYCwgYGNgIHdpbGxcbiAgICAvLyBub3QgYmUgYXV0by1kZXRlY3RlZCB0byBhdm9pZCBhdXRvLWRldGVjdCBjb25mbGljdHMgYmV0d2VlbiBDIGFuZCBDKytcbiAgICBkaXNhYmxlQXV0b2RldGVjdDogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXS5jb25jYXQoXG4gICAgICBFWFBSRVNTSU9OX0NPTlRFWFQsXG4gICAgICBGVU5DVElPTl9ERUNMQVJBVElPTixcbiAgICAgIEVYUFJFU1NJT05fQ09OVEFJTlMsXG4gICAgICBbXG4gICAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgICBiZWdpbktleXdvcmRzOiAnZW51bSBjbGFzcyBzdHJ1Y3QgdW5pb24nLFxuICAgICAgICAgIGVuZDogL1t7Ozo8Pj1dLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgeyBiZWdpbktleXdvcmRzOiBcImZpbmFsIGNsYXNzIHN0cnVjdFwiIH0sXG4gICAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF0pLFxuICAgIGV4cG9ydHM6IHtcbiAgICAgIHByZXByb2Nlc3NvcjogUFJFUFJPQ0VTU09SLFxuICAgICAgc3RyaW5nczogU1RSSU5HUyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICAgIH1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjO1xuIiwgIi8qXG5MYW5ndWFnZTogQy9BTFxuQXV0aG9yOiBLZW5uZXRoIEZ1Z2xzYW5nIENocmlzdGVuc2VuIDxrZnVnbHNhbmdAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFByb3ZpZGVzIGhpZ2hsaWdodGluZyBvZiBNaWNyb3NvZnQgRHluYW1pY3MgTkFWIEMvQUwgY29kZSBmaWxlc1xuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvZHluYW1pY3MtbmF2L3Byb2dyYW1taW5nLWluLWMtYWxcbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY2FsKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImRpdlwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJpblwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJvclwiLFxuICAgIFwibm90XCIsXG4gICAgXCJ4b3JcIixcbiAgICBcImFzc2VydGVycm9yXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZG9cIixcbiAgICBcImRvd250b1wiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJpZlwiLFxuICAgIFwib2ZcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICBcInVudGlsXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwidmFyXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSAnZmFsc2UgdHJ1ZSc7XG4gIGNvbnN0IENPTU1FTlRfTU9ERVMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgIC9cXHsvLFxuICAgICAgL1xcfS8sXG4gICAgICB7IHJlbGV2YW5jZTogMCB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFwoXFwqLyxcbiAgICAgIC9cXCpcXCkvLFxuICAgICAgeyByZWxldmFuY2U6IDEwIH1cbiAgICApXG4gIF07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJy8sXG4gICAgZW5kOiAvJy8sXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgfTtcbiAgY29uc3QgQ0hBUl9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLygjXFxkKykrL1xuICB9O1xuICBjb25zdCBEQVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYlxcXFxkKyhcXFxcLlxcXFxkKyk/KERUfER8VCknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBEQkxfUVVPVEVEX1ZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsIC8vIG5vdCBhIHN0cmluZyB0ZWNobmljYWxseSBidXQgbWFrZXMgc2Vuc2UgdG8gYmUgaGlnaGxpZ2h0ZWQgaW4gdGhlIHNhbWUgc3R5bGVcbiAgICBiZWdpbjogJ1wiJyxcbiAgICBlbmQ6ICdcIidcbiAgfTtcblxuICBjb25zdCBQUk9DRURVUkUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9wcm9jZWR1cmUvLFxuICAgICAgL1xccysvLFxuICAgICAgL1thLXpBLVpfXVtcXHdAXSovLFxuICAgICAgL1xccyovXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICBDSEFSX1NUUklORyxcbiAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAuLi5DT01NRU5UX01PREVTXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE9CSkVDVF9UWVBFUyA9IFtcbiAgICBcIlRhYmxlXCIsXG4gICAgXCJGb3JtXCIsXG4gICAgXCJSZXBvcnRcIixcbiAgICBcIkRhdGFwb3J0XCIsXG4gICAgXCJDb2RldW5pdFwiLFxuICAgIFwiWE1McG9ydFwiLFxuICAgIFwiTWVudVN1aXRlXCIsXG4gICAgXCJQYWdlXCIsXG4gICAgXCJRdWVyeVwiXG4gIF07XG4gIGNvbnN0IE9CSkVDVCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL09CSkVDVC8sXG4gICAgICAvXFxzKy8sXG4gICAgICByZWdleC5laXRoZXIoLi4uT0JKRUNUX1RZUEVTKSxcbiAgICAgIC9cXHMrLyxcbiAgICAgIC9cXGQrLyxcbiAgICAgIC9cXHMrKD89W15cXHNdKS8sXG4gICAgICAvLiovLFxuICAgICAgLyQvXG4gICAgXSxcbiAgICByZWxldmFuY2U6IDMsXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0eXBlXCIsXG4gICAgICA1OiBcIm51bWJlclwiLFxuICAgICAgNzogXCJ0aXRsZVwiXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZID0ge1xuICAgIG1hdGNoOiAvW1xcd10rKD89XFw9KS8sXG4gICAgc2NvcGU6IFwiYXR0cmlidXRlXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQy9BTCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBST1BFUlRZLFxuICAgICAgU1RSSU5HLFxuICAgICAgQ0hBUl9TVFJJTkcsXG4gICAgICBEQVRFLFxuICAgICAgREJMX1FVT1RFRF9WQVJJQUJMRSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBPQkpFQ1QsXG4gICAgICBQUk9DRURVUkVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2FsO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2FwXHUyMDE5biBQcm90b1xuQXV0aG9yOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IENhcFx1MjAxOW4gUHJvdG8gbWVzc2FnZSBkZWZpbml0aW9uIGZvcm1hdFxuV2Vic2l0ZTogaHR0cHM6Ly9jYXBucHJvdG8ub3JnL2NhcG5wLXRvb2wuaHRtbFxuQ2F0ZWdvcnk6IHByb3RvY29sc1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNhcG5wcm90byhobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwic3RydWN0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJncm91cFwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJ1c2luZ1wiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImFubm90YXRpb25cIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcImluXCIsXG4gICAgXCJvZlwiLFxuICAgIFwib25cIixcbiAgICBcImFzXCIsXG4gICAgXCJ3aXRoXCIsXG4gICAgXCJmcm9tXCIsXG4gICAgXCJmaXhlZFwiXG4gIF07XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiVm9pZFwiLFxuICAgIFwiQm9vbFwiLFxuICAgIFwiSW50OFwiLFxuICAgIFwiSW50MTZcIixcbiAgICBcIkludDMyXCIsXG4gICAgXCJJbnQ2NFwiLFxuICAgIFwiVUludDhcIixcbiAgICBcIlVJbnQxNlwiLFxuICAgIFwiVUludDMyXCIsXG4gICAgXCJVSW50NjRcIixcbiAgICBcIkZsb2F0MzJcIixcbiAgICBcIkZsb2F0NjRcIixcbiAgICBcIlRleHRcIixcbiAgICBcIkRhdGFcIixcbiAgICBcIkFueVBvaW50ZXJcIixcbiAgICBcIkFueVN0cnVjdFwiLFxuICAgIFwiQ2FwYWJpbGl0eVwiLFxuICAgIFwiTGlzdFwiXG4gIF07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIlxuICBdO1xuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC8oc3RydWN0fGVudW18aW50ZXJmYWNlKS8sXG4gICAgICAgIC9cXHMrLyxcbiAgICAgICAgaGxqcy5JREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvZXh0ZW5kcy8sXG4gICAgICAgIC9cXHMqXFwoLyxcbiAgICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICAgICAgL1xccypcXCkvXG4gICAgICBdIH1cbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2FwXHUyMDE5biBQcm90bycsXG4gICAgYWxpYXNlczogWyAnY2FwbnAnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvQDB4W1xcd1xcZF17MTZ9Oy8sXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL0BcXGQrXFxiL1xuICAgICAgfSxcbiAgICAgIENMQVNTX0RFRklOSVRJT05cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2FwbnByb3RvO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2V5bG9uXG5BdXRob3I6IEx1Y2FzIFdlcmttZWlzdGVyIDxtYWlsQGx1Y2Fzd2Vya21laXN0ZXIuZGU+XG5XZWJzaXRlOiBodHRwczovL2NleWxvbi1sYW5nLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNleWxvbihobGpzKSB7XG4gIC8vIDIuMy4gSWRlbnRpZmllcnMgYW5kIGtleXdvcmRzXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYXNzZW1ibHlcIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwib2JqZWN0XCIsXG4gICAgXCJnaXZlblwiLFxuICAgIFwidmFsdWVcIixcbiAgICBcImFzc2lnblwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcIm5ld1wiLFxuICAgIFwib2ZcIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcInNhdGlzZmllc1wiLFxuICAgIFwiYWJzdHJhY3RzXCIsXG4gICAgXCJpblwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcImFzc2VydFwiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJvdXRlclwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcImlzXCIsXG4gICAgXCJleGlzdHNcIixcbiAgICBcIm5vbmVtcHR5XCJcbiAgXTtcbiAgLy8gNy40LjEgRGVjbGFyYXRpb24gTW9kaWZpZXJzXG4gIGNvbnN0IERFQ0xBUkFUSU9OX01PRElGSUVSUyA9IFtcbiAgICBcInNoYXJlZFwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImZvcm1hbFwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiYWN0dWFsXCIsXG4gICAgXCJ2YXJpYWJsZVwiLFxuICAgIFwibGF0ZVwiLFxuICAgIFwibmF0aXZlXCIsXG4gICAgXCJkZXByZWNhdGVkXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwic2VhbGVkXCIsXG4gICAgXCJhbm5vdGF0aW9uXCIsXG4gICAgXCJzdXBwcmVzc1dhcm5pbmdzXCIsXG4gICAgXCJzbWFsbFwiXG4gIF07XG4gIC8vIDcuNC4yIERvY3VtZW50YXRpb25cbiAgY29uc3QgRE9DVU1FTlRBVElPTiA9IFtcbiAgICBcImRvY1wiLFxuICAgIFwiYnlcIixcbiAgICBcImxpY2Vuc2VcIixcbiAgICBcInNlZVwiLFxuICAgIFwidGhyb3dzXCIsXG4gICAgXCJ0YWdnZWRcIlxuICBdO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgYmVnaW46IC9gYC8sXG4gICAgZW5kOiAvYGAvLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG4gIGNvbnN0IEVYUFJFU1NJT05TID0gW1xuICAgIHtcbiAgICAgIC8vIHZlcmJhdGltIHN0cmluZ1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgIGVuZDogJ1wiXCJcIicsXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBzdHJpbmcgbGl0ZXJhbCBvciB0ZW1wbGF0ZVxuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgZW5kOiAnXCInLFxuICAgICAgY29udGFpbnM6IFsgU1VCU1QgXVxuICAgIH0sXG4gICAge1xuICAgICAgLy8gY2hhcmFjdGVyIGxpdGVyYWxcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBiZWdpbjogXCInXCIsXG4gICAgICBlbmQ6IFwiJ1wiXG4gICAgfSxcbiAgICB7XG4gICAgICAvLyBudW1lcmljIGxpdGVyYWxcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyNbMC05YS1mQS1GX10rfFxcXFwkWzAxX10rfFswLTlfXSsoPzpcXFxcLlswLTlfXSg/OltlRV1bKy1dP1xcXFxkKyk/KT9ba01HVFBtdW5wZl0/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDZXlsb24nLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUy5jb25jYXQoREVDTEFSQVRJT05fTU9ESUZJRVJTKSxcbiAgICAgIG1ldGE6IERPQ1VNRU5UQVRJT05cbiAgICB9LFxuICAgIGlsbGVnYWw6ICdcXFxcJFteMDFdfCNbXjAtOWEtZkEtRl0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nLCB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH0pLFxuICAgICAge1xuICAgICAgICAvLyBjb21waWxlciBhbm5vdGF0aW9uXG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbYS16XVxcXFx3Kig/OjpcIlteXCJdKlwiKT8nXG4gICAgICB9XG4gICAgXS5jb25jYXQoRVhQUkVTU0lPTlMpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2V5bG9uO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2xlYW5cbkF1dGhvcjogQ2FtaWwgU3RhcHMgPGluZm9AY2FtaWxzdGFwcy5ubD5cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5XZWJzaXRlOiBodHRwOi8vY2xlYW4uY3MucnUubmxcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjbGVhbihobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiaWZcIixcbiAgICBcImxldFwiLFxuICAgIFwiaW5cIixcbiAgICBcIndpdGhcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJvZlwiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImluc3RhbmNlXCIsXG4gICAgXCJvdGhlcndpc2VcIixcbiAgICBcImltcGxlbWVudGF0aW9uXCIsXG4gICAgXCJkZWZpbml0aW9uXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJxdWFsaWZpZWRcIixcbiAgICBcImFzXCIsXG4gICAgXCJzcGVjaWFsXCIsXG4gICAgXCJjb2RlXCIsXG4gICAgXCJpbmxpbmVcIixcbiAgICBcImZvcmVpZ25cIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwiY2NhbGxcIixcbiAgICBcInN0ZGNhbGxcIixcbiAgICBcImdlbmVyaWNcIixcbiAgICBcImRlcml2ZVwiLFxuICAgIFwiaW5maXhcIixcbiAgICBcImluZml4bFwiLFxuICAgIFwiaW5maXhyXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2xlYW4nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdpY2wnLFxuICAgICAgJ2RjbCdcbiAgICBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnSW50IFJlYWwgQ2hhciBCb29sJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdUcnVlIEZhbHNlJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgeyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgICBiZWdpbjogJy0+fDwtW3w6XT98IyE/fD4+PXxcXFxce1xcXFx8fFxcXFx8XFxcXH18Oj09fD06fDw+JyB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsZWFuO1xuIiwgIi8qXG5MYW5ndWFnZTogQ2xvanVyZVxuRGVzY3JpcHRpb246IENsb2p1cmUgc3ludGF4IChiYXNlZCBvbiBsaXNwLmpzKVxuQXV0aG9yOiBtZm9ybm9zXG5XZWJzaXRlOiBodHRwczovL2Nsb2p1cmUub3JnXG5DYXRlZ29yeTogbGlzcFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNsb2p1cmUoaGxqcykge1xuICBjb25zdCBTWU1CT0xTVEFSVCA9ICdhLXpBLVpfXFxcXC0hLj8rKj08PiZcXCcnO1xuICBjb25zdCBTWU1CT0xfUkUgPSAnWyNdP1snICsgU1lNQk9MU1RBUlQgKyAnXVsnICsgU1lNQk9MU1RBUlQgKyAnMC05Lzs6JCNdKic7XG4gIGNvbnN0IGdsb2JhbHMgPSAnZGVmIGRlZm9uY2UgZGVmcHJvdG9jb2wgZGVmc3RydWN0IGRlZm11bHRpIGRlZm1ldGhvZCBkZWZuLSBkZWZuIGRlZm1hY3JvIGRlZnR5cGUgZGVmcmVjb3JkJztcbiAgY29uc3Qga2V5d29yZHMgPSB7XG4gICAgJHBhdHRlcm46IFNZTUJPTF9SRSxcbiAgICBidWlsdF9pbjpcbiAgICAgIC8vIENsb2p1cmUga2V5d29yZHNcbiAgICAgIGdsb2JhbHMgKyAnICdcbiAgICAgICsgJ2NvbmQgYXBwbHkgaWYtbm90IGlmLWxldCBpZiBub3Qgbm90PSA9fDAgPHwwID58MCA8PXwwID49fDAgPT18MCArfDAgL3wwICp8MCAtfDAgcmVtICdcbiAgICAgICsgJ3F1b3QgbmVnPyBwb3M/IGRlbGF5PyBzeW1ib2w/IGtleXdvcmQ/IHRydWU/IGZhbHNlPyBpbnRlZ2VyPyBlbXB0eT8gY29sbD8gbGlzdD8gJ1xuICAgICAgKyAnc2V0PyBpZm4/IGZuPyBhc3NvY2lhdGl2ZT8gc2VxdWVudGlhbD8gc29ydGVkPyBjb3VudGVkPyByZXZlcnNpYmxlPyBudW1iZXI/IGRlY2ltYWw/ICdcbiAgICAgICsgJ2NsYXNzPyBkaXN0aW5jdD8gaXNhPyBmbG9hdD8gcmF0aW9uYWw/IHJlZHVjZWQ/IHJhdGlvPyBvZGQ/IGV2ZW4/IGNoYXI/IHNlcT8gdmVjdG9yPyAnXG4gICAgICArICdzdHJpbmc/IG1hcD8gbmlsPyBjb250YWlucz8gemVybz8gaW5zdGFuY2U/IG5vdC1ldmVyeT8gbm90LWFueT8gbGlic3BlYz8gLT4gLT4+IC4uIC4gJ1xuICAgICAgKyAnaW5jIGNvbXBhcmUgZG8gZG90aW1lcyBtYXBjYXQgdGFrZSByZW1vdmUgdGFrZS13aGlsZSBkcm9wIGxldGZuIGRyb3AtbGFzdCB0YWtlLWxhc3QgJ1xuICAgICAgKyAnZHJvcC13aGlsZSB3aGlsZSBpbnRlcm4gY29uZHAgY2FzZSByZWR1Y2VkIGN5Y2xlIHNwbGl0LWF0IHNwbGl0LXdpdGggcmVwZWF0IHJlcGxpY2F0ZSAnXG4gICAgICArICdpdGVyYXRlIHJhbmdlIG1lcmdlIHppcG1hcCBkZWNsYXJlIGxpbmUtc2VxIHNvcnQgY29tcGFyYXRvciBzb3J0LWJ5IGRvcnVuIGRvYWxsIG50aG5leHQgJ1xuICAgICAgKyAnbnRocmVzdCBwYXJ0aXRpb24gZXZhbCBkb3NlcSBhd2FpdCBhd2FpdC1mb3IgbGV0IGFnZW50IGF0b20gc2VuZCBzZW5kLW9mZiByZWxlYXNlLXBlbmRpbmctc2VuZHMgJ1xuICAgICAgKyAnYWRkLXdhdGNoIG1hcHYgZmlsdGVydiByZW1vdmUtd2F0Y2ggYWdlbnQtZXJyb3IgcmVzdGFydC1hZ2VudCBzZXQtZXJyb3ItaGFuZGxlciBlcnJvci1oYW5kbGVyICdcbiAgICAgICsgJ3NldC1lcnJvci1tb2RlISBlcnJvci1tb2RlIHNodXRkb3duLWFnZW50cyBxdW90ZSB2YXIgZm4gbG9vcCByZWN1ciB0aHJvdyB0cnkgbW9uaXRvci1lbnRlciAnXG4gICAgICArICdtb25pdG9yLWV4aXQgbWFjcm9leHBhbmQgbWFjcm9leHBhbmQtMSBmb3IgZG9zeW5jIGFuZCBvciAnXG4gICAgICArICd3aGVuIHdoZW4tbm90IHdoZW4tbGV0IGNvbXAganV4dCBwYXJ0aWFsIHNlcXVlbmNlIG1lbW9pemUgY29uc3RhbnRseSBjb21wbGVtZW50IGlkZW50aXR5IGFzc2VydCAnXG4gICAgICArICdwZWVrIHBvcCBkb3RvIHByb3h5IGZpcnN0IHJlc3QgY29ucyBjYXN0IGNvbGwgbGFzdCBidXRsYXN0ICdcbiAgICAgICsgJ3NpZ3MgcmVpZnkgc2Vjb25kIGZmaXJzdCBmbmV4dCBuZmlyc3Qgbm5leHQgbWV0YSB3aXRoLW1ldGEgbnMgaW4tbnMgY3JlYXRlLW5zIGltcG9ydCAnXG4gICAgICArICdyZWZlciBrZXlzIHNlbGVjdC1rZXlzIHZhbHMga2V5IHZhbCByc2VxIG5hbWUgbmFtZXNwYWNlIHByb21pc2UgaW50byB0cmFuc2llbnQgcGVyc2lzdGVudCEgY29uaiEgJ1xuICAgICAgKyAnYXNzb2MhIGRpc3NvYyEgcG9wISBkaXNqISB1c2UgY2xhc3MgdHlwZSBudW0gZmxvYXQgZG91YmxlIHNob3J0IGJ5dGUgYm9vbGVhbiBiaWdpbnQgYmlnaW50ZWdlciAnXG4gICAgICArICdiaWdkZWMgcHJpbnQtbWV0aG9kIHByaW50LWR1cCB0aHJvdy1pZiBwcmludGYgZm9ybWF0IGxvYWQgY29tcGlsZSBnZXQtaW4gdXBkYXRlLWluIHByIHByLW9uIG5ld2xpbmUgJ1xuICAgICAgKyAnZmx1c2ggcmVhZCBzbHVycCByZWFkLWxpbmUgc3VidmVjIHdpdGgtb3BlbiBtZW1mbiB0aW1lIHJlLWZpbmQgcmUtZ3JvdXBzIHJhbmQtaW50IHJhbmQgbW9kIGxvY2tpbmcgJ1xuICAgICAgKyAnYXNzZXJ0LXZhbGlkLWZkZWNsIGFsaWFzIHJlc29sdmUgcmVmIGRlcmVmIHJlZnNldCBzd2FwISByZXNldCEgc2V0LXZhbGlkYXRvciEgY29tcGFyZS1hbmQtc2V0ISBhbHRlci1tZXRhISAnXG4gICAgICArICdyZXNldC1tZXRhISBjb21tdXRlIGdldC12YWxpZGF0b3IgYWx0ZXIgcmVmLXNldCByZWYtaGlzdG9yeS1jb3VudCByZWYtbWluLWhpc3RvcnkgcmVmLW1heC1oaXN0b3J5IGVuc3VyZSBzeW5jIGlvISAnXG4gICAgICArICduZXcgbmV4dCBjb25qIHNldCEgdG8tYXJyYXkgZnV0dXJlIGZ1dHVyZS1jYWxsIGludG8tYXJyYXkgYXNldCBnZW4tY2xhc3MgcmVkdWNlIG1hcCBmaWx0ZXIgZmluZCBlbXB0eSAnXG4gICAgICArICdoYXNoLW1hcCBoYXNoLXNldCBzb3J0ZWQtbWFwIHNvcnRlZC1tYXAtYnkgc29ydGVkLXNldCBzb3J0ZWQtc2V0LWJ5IHZlYyB2ZWN0b3Igc2VxIGZsYXR0ZW4gcmV2ZXJzZSBhc3NvYyBkaXNzb2MgbGlzdCAnXG4gICAgICArICdkaXNqIGdldCB1bmlvbiBkaWZmZXJlbmNlIGludGVyc2VjdGlvbiBleHRlbmQgZXh0ZW5kLXR5cGUgZXh0ZW5kLXByb3RvY29sIGludCBudGggZGVsYXkgY291bnQgY29uY2F0IGNodW5rIGNodW5rLWJ1ZmZlciAnXG4gICAgICArICdjaHVuay1hcHBlbmQgY2h1bmstZmlyc3QgY2h1bmstcmVzdCBtYXggbWluIGRlYyB1bmNoZWNrZWQtaW5jLWludCB1bmNoZWNrZWQtaW5jIHVuY2hlY2tlZC1kZWMtaW5jIHVuY2hlY2tlZC1kZWMgdW5jaGVja2VkLW5lZ2F0ZSAnXG4gICAgICArICd1bmNoZWNrZWQtYWRkLWludCB1bmNoZWNrZWQtYWRkIHVuY2hlY2tlZC1zdWJ0cmFjdC1pbnQgdW5jaGVja2VkLXN1YnRyYWN0IGNodW5rLW5leHQgY2h1bmstY29ucyBjaHVua2VkLXNlcT8gcHJuIHZhcnktbWV0YSAnXG4gICAgICArICdsYXp5LXNlcSBzcHJlYWQgbGlzdCogc3RyIGZpbmQta2V5d29yZCBrZXl3b3JkIHN5bWJvbCBnZW5zeW0gZm9yY2UgcmF0aW9uYWxpemUnXG4gIH07XG5cbiAgY29uc3QgU1lNQk9MID0ge1xuICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBzY29wZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiAvWy0rXT8wW3hYXVswLTlhLWZBLUZdK04/LyB9LCAvLyBoZXhhZGVjaW1hbCAgICAgICAgICAgICAgICAgLy8gMHgyYVxuICAgICAgeyBtYXRjaDogL1stK10/MFswLTddK04/LyB9LCAvLyBvY3RhbCAgICAgICAgICAgICAgICAgICAgICAgLy8gMDUyXG4gICAgICB7IG1hdGNoOiAvWy0rXT9bMS05XVswLTldP1tyUl1bMC05YS16QS1aXStOPy8gfSwgLy8gdmFyaWFibGUgcmFkaXggZnJvbSAyIHRvIDM2IC8vIDJyMTAxMDEwLCA4cjUyLCAzNnIxNlxuICAgICAgeyBtYXRjaDogL1stK10/WzAtOV0rXFwvWzAtOV0rTj8vIH0sIC8vIHJhdGlvICAgICAgICAgICAgICAgICAgICAgICAvLyAxLzJcbiAgICAgIHsgbWF0Y2g6IC9bLStdP1swLTldKygoXFwuWzAtOV0qKFtlRV1bKy1dP1swLTldKyk/TT8pfChbZUVdWystXT9bMC05XStNP3xNKSkvIH0sIC8vIGZsb2F0ICAgICAgICAvLyAwLjQyIDQuMkUtMU0gNDJFMSA0Mk1cbiAgICAgIHsgbWF0Y2g6IC9bLStdPyhbMS05XVswLTldKnwwKU4/LyB9LCAvLyBpbnQgKGRvbid0IG1hdGNoIGxlYWRpbmcgMCkgLy8gNDIgNDJOXG4gICAgXVxuICB9O1xuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgc2NvcGU6ICdjaGFyYWN0ZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiAvXFxcXG9bMC0zXT9bMC03XXsxLDJ9LyB9LCAvLyBVbmljb2RlIE9jdGFsIDAgLSAzNzdcbiAgICAgIHsgbWF0Y2g6IC9cXFxcdVswLTlhLWZBLUZdezR9LyB9LCAvLyBVbmljb2RlIEhleCAwMDAwIC0gRkZGRlxuICAgICAgeyBtYXRjaDogL1xcXFwobmV3bGluZXxzcGFjZXx0YWJ8Zm9ybWZlZWR8YmFja3NwYWNlfHJldHVybikvIH0sIC8vIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcXFxcXFMvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0gLy8gYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJcbiAgICBdXG4gIH07XG4gIGNvbnN0IFJFR0VYID0ge1xuICAgIHNjb3BlOiAncmVnZXgnLFxuICAgIGJlZ2luOiAvI1wiLyxcbiAgICBlbmQ6IC9cIi8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgaWxsZWdhbDogbnVsbCB9KTtcbiAgY29uc3QgQ09NTUEgPSB7XG4gICAgc2NvcGU6ICdwdW5jdHVhdGlvbicsXG4gICAgbWF0Y2g6IC8sLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnOycsXG4gICAgJyQnLFxuICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgKTtcbiAgY29uc3QgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogL1xcYih0cnVlfGZhbHNlfG5pbClcXGIvXG4gIH07XG4gIGNvbnN0IENPTExFQ1RJT04gPSB7XG4gICAgYmVnaW46IFwiXFxcXFt8KCM6Oj9cIiArIFNZTUJPTF9SRSArIFwiKT9cXFxce1wiLFxuICAgIGVuZDogJ1tcXFxcXVxcXFx9XScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnWzpdezEsMn0nICsgU1lNQk9MX1JFXG4gIH07XG4gIGNvbnN0IExJU1QgPSB7XG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknXG4gIH07XG4gIGNvbnN0IEJPRFkgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IE5BTUUgPSB7XG4gICAga2V5d29yZHM6IGtleXdvcmRzLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHN0YXJ0czogQk9EWVxuICB9O1xuICBjb25zdCBERUZBVUxUX0NPTlRBSU5TID0gW1xuICAgIENPTU1BLFxuICAgIExJU1QsXG4gICAgQ0hBUkFDVEVSLFxuICAgIFJFR0VYLFxuICAgIFNUUklORyxcbiAgICBDT01NRU5ULFxuICAgIEtFWSxcbiAgICBDT0xMRUNUSU9OLFxuICAgIE5VTUJFUixcbiAgICBMSVRFUkFMLFxuICAgIFNZTUJPTFxuICBdO1xuXG4gIGNvbnN0IEdMT0JBTCA9IHtcbiAgICBiZWdpbktleXdvcmRzOiBnbG9iYWxzLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogU1lNQk9MX1JFLFxuICAgICAga2V5d29yZDogZ2xvYmFsc1xuICAgIH0sXG4gICAgZW5kOiAnKFxcXFxbfCN8XFxcXGR8XCJ8OnxcXFxce3xcXFxcKXxcXFxcKHwkKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICBiZWdpbjogU1lNQk9MX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIC8vIHdlIGNhbiBvbmx5IGhhdmUgYSBzaW5nbGUgdGl0bGVcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgfVxuICAgIF0uY29uY2F0KERFRkFVTFRfQ09OVEFJTlMpXG4gIH07XG5cbiAgTElTVC5jb250YWlucyA9IFtcbiAgICBHTE9CQUwsXG4gICAgTkFNRSxcbiAgICBCT0RZXG4gIF07XG4gIEJPRFkuY29udGFpbnMgPSBERUZBVUxUX0NPTlRBSU5TO1xuICBDT0xMRUNUSU9OLmNvbnRhaW5zID0gREVGQVVMVF9DT05UQUlOUztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDbG9qdXJlJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY2xqJyxcbiAgICAgICdlZG4nXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUEsXG4gICAgICBMSVNULFxuICAgICAgQ0hBUkFDVEVSLFxuICAgICAgUkVHRVgsXG4gICAgICBTVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgS0VZLFxuICAgICAgQ09MTEVDVElPTixcbiAgICAgIE5VTUJFUixcbiAgICAgIExJVEVSQUxcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvanVyZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IENsb2p1cmUgUkVQTFxuRGVzY3JpcHRpb246IENsb2p1cmUgUkVQTCBzZXNzaW9uc1xuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cblJlcXVpcmVzOiBjbG9qdXJlLmpzXG5XZWJzaXRlOiBodHRwczovL2Nsb2p1cmUub3JnXG5DYXRlZ29yeTogbGlzcFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNsb2p1cmVSZXBsKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ2xvanVyZSBSRVBMJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhLnByb21wdCcsXG4gICAgICAgIGJlZ2luOiAvXihbXFx3Li1dK3xcXHMqI18pPz0+LyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6ICdjbG9qdXJlJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNsb2p1cmVSZXBsO1xuIiwgIi8qXG5MYW5ndWFnZTogQ01ha2VcbkRlc2NyaXB0aW9uOiBDTWFrZSBpcyBhbiBvcGVuLXNvdXJjZSBjcm9zcy1wbGF0Zm9ybSBzeXN0ZW0gZm9yIGJ1aWxkIGF1dG9tYXRpb24uXG5BdXRob3I6IElnb3IgS2Fsbml0c2t5IDxpZ29yQGthbG5pdHNreS5vcmc+XG5XZWJzaXRlOiBodHRwczovL2NtYWtlLm9yZ1xuQ2F0ZWdvcnk6IGJ1aWxkLXN5c3RlbVxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNtYWtlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ01ha2UnLFxuICAgIGFsaWFzZXM6IFsgJ2NtYWtlLmluJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHsga2V5d29yZDpcbiAgICAgICAgLy8gc2NyaXB0aW5nIGNvbW1hbmRzXG4gICAgICAgICdicmVhayBjbWFrZV9ob3N0X3N5c3RlbV9pbmZvcm1hdGlvbiBjbWFrZV9taW5pbXVtX3JlcXVpcmVkIGNtYWtlX3BhcnNlX2FyZ3VtZW50cyAnXG4gICAgICAgICsgJ2NtYWtlX3BvbGljeSBjb25maWd1cmVfZmlsZSBjb250aW51ZSBlbHNlaWYgZWxzZSBlbmRmb3JlYWNoIGVuZGZ1bmN0aW9uIGVuZGlmIGVuZG1hY3JvICdcbiAgICAgICAgKyAnZW5kd2hpbGUgZXhlY3V0ZV9wcm9jZXNzIGZpbGUgZmluZF9maWxlIGZpbmRfbGlicmFyeSBmaW5kX3BhY2thZ2UgZmluZF9wYXRoICdcbiAgICAgICAgKyAnZmluZF9wcm9ncmFtIGZvcmVhY2ggZnVuY3Rpb24gZ2V0X2NtYWtlX3Byb3BlcnR5IGdldF9kaXJlY3RvcnlfcHJvcGVydHkgJ1xuICAgICAgICArICdnZXRfZmlsZW5hbWVfY29tcG9uZW50IGdldF9wcm9wZXJ0eSBpZiBpbmNsdWRlIGluY2x1ZGVfZ3VhcmQgbGlzdCBtYWNybyAnXG4gICAgICAgICsgJ21hcmtfYXNfYWR2YW5jZWQgbWF0aCBtZXNzYWdlIG9wdGlvbiByZXR1cm4gc2VwYXJhdGVfYXJndW1lbnRzICdcbiAgICAgICAgKyAnc2V0X2RpcmVjdG9yeV9wcm9wZXJ0aWVzIHNldF9wcm9wZXJ0eSBzZXQgc2l0ZV9uYW1lIHN0cmluZyB1bnNldCB2YXJpYWJsZV93YXRjaCB3aGlsZSAnXG4gICAgICAgIC8vIHByb2plY3QgY29tbWFuZHNcbiAgICAgICAgKyAnYWRkX2NvbXBpbGVfZGVmaW5pdGlvbnMgYWRkX2NvbXBpbGVfb3B0aW9ucyBhZGRfY3VzdG9tX2NvbW1hbmQgYWRkX2N1c3RvbV90YXJnZXQgJ1xuICAgICAgICArICdhZGRfZGVmaW5pdGlvbnMgYWRkX2RlcGVuZGVuY2llcyBhZGRfZXhlY3V0YWJsZSBhZGRfbGlicmFyeSBhZGRfbGlua19vcHRpb25zICdcbiAgICAgICAgKyAnYWRkX3N1YmRpcmVjdG9yeSBhZGRfdGVzdCBhdXhfc291cmNlX2RpcmVjdG9yeSBidWlsZF9jb21tYW5kIGNyZWF0ZV90ZXN0X3NvdXJjZWxpc3QgJ1xuICAgICAgICArICdkZWZpbmVfcHJvcGVydHkgZW5hYmxlX2xhbmd1YWdlIGVuYWJsZV90ZXN0aW5nIGV4cG9ydCBmbHRrX3dyYXBfdWkgJ1xuICAgICAgICArICdnZXRfc291cmNlX2ZpbGVfcHJvcGVydHkgZ2V0X3RhcmdldF9wcm9wZXJ0eSBnZXRfdGVzdF9wcm9wZXJ0eSBpbmNsdWRlX2RpcmVjdG9yaWVzICdcbiAgICAgICAgKyAnaW5jbHVkZV9leHRlcm5hbF9tc3Byb2plY3QgaW5jbHVkZV9yZWd1bGFyX2V4cHJlc3Npb24gaW5zdGFsbCBsaW5rX2RpcmVjdG9yaWVzICdcbiAgICAgICAgKyAnbGlua19saWJyYXJpZXMgbG9hZF9jYWNoZSBwcm9qZWN0IHF0X3dyYXBfY3BwIHF0X3dyYXBfdWkgcmVtb3ZlX2RlZmluaXRpb25zICdcbiAgICAgICAgKyAnc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzIHNldF90YXJnZXRfcHJvcGVydGllcyBzZXRfdGVzdHNfcHJvcGVydGllcyBzb3VyY2VfZ3JvdXAgJ1xuICAgICAgICArICd0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyB0YXJnZXRfY29tcGlsZV9mZWF0dXJlcyB0YXJnZXRfY29tcGlsZV9vcHRpb25zICdcbiAgICAgICAgKyAndGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMgdGFyZ2V0X2xpbmtfZGlyZWN0b3JpZXMgdGFyZ2V0X2xpbmtfbGlicmFyaWVzICdcbiAgICAgICAgKyAndGFyZ2V0X2xpbmtfb3B0aW9ucyB0YXJnZXRfc291cmNlcyB0cnlfY29tcGlsZSB0cnlfcnVuICdcbiAgICAgICAgLy8gQ1Rlc3QgY29tbWFuZHNcbiAgICAgICAgKyAnY3Rlc3RfYnVpbGQgY3Rlc3RfY29uZmlndXJlIGN0ZXN0X2NvdmVyYWdlIGN0ZXN0X2VtcHR5X2JpbmFyeV9kaXJlY3RvcnkgY3Rlc3RfbWVtY2hlY2sgJ1xuICAgICAgICArICdjdGVzdF9yZWFkX2N1c3RvbV9maWxlcyBjdGVzdF9ydW5fc2NyaXB0IGN0ZXN0X3NsZWVwIGN0ZXN0X3N0YXJ0IGN0ZXN0X3N1Ym1pdCAnXG4gICAgICAgICsgJ2N0ZXN0X3Rlc3QgY3Rlc3RfdXBkYXRlIGN0ZXN0X3VwbG9hZCAnXG4gICAgICAgIC8vIGRlcHJlY2F0ZWQgY29tbWFuZHNcbiAgICAgICAgKyAnYnVpbGRfbmFtZSBleGVjX3Byb2dyYW0gZXhwb3J0X2xpYnJhcnlfZGVwZW5kZW5jaWVzIGluc3RhbGxfZmlsZXMgaW5zdGFsbF9wcm9ncmFtcyAnXG4gICAgICAgICsgJ2luc3RhbGxfdGFyZ2V0cyBsb2FkX2NvbW1hbmQgbWFrZV9kaXJlY3Rvcnkgb3V0cHV0X3JlcXVpcmVkX2ZpbGVzIHJlbW92ZSAnXG4gICAgICAgICsgJ3N1YmRpcl9kZXBlbmRzIHN1YmRpcnMgdXNlX21hbmdsZWRfbWVzYSB1dGlsaXR5X3NvdXJjZSB2YXJpYWJsZV9yZXF1aXJlcyB3cml0ZV9maWxlICdcbiAgICAgICAgKyAncXQ1X3VzZV9tb2R1bGVzIHF0NV91c2VfcGFja2FnZSBxdDVfd3JhcF9jcHAgJ1xuICAgICAgICAvLyBjb3JlIGtleXdvcmRzXG4gICAgICAgICsgJ29uIG9mZiB0cnVlIGZhbHNlIGFuZCBvciBub3QgY29tbWFuZCBwb2xpY3kgdGFyZ2V0IHRlc3QgZXhpc3RzIGlzX25ld2VyX3RoYW4gJ1xuICAgICAgICArICdpc19kaXJlY3RvcnkgaXNfc3ltbGluayBpc19hYnNvbHV0ZSBtYXRjaGVzIGxlc3MgZ3JlYXRlciBlcXVhbCBsZXNzX2VxdWFsICdcbiAgICAgICAgKyAnZ3JlYXRlcl9lcXVhbCBzdHJsZXNzIHN0cmdyZWF0ZXIgc3RyZXF1YWwgc3RybGVzc19lcXVhbCBzdHJncmVhdGVyX2VxdWFsIHZlcnNpb25fbGVzcyAnXG4gICAgICAgICsgJ3ZlcnNpb25fZ3JlYXRlciB2ZXJzaW9uX2VxdWFsIHZlcnNpb25fbGVzc19lcXVhbCB2ZXJzaW9uX2dyZWF0ZXJfZXF1YWwgaW5fbGlzdCBkZWZpbmVkJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXCRcXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKC8jXFxbXFxbLywgL11dLyksXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY21ha2U7XG4iLCAiY29uc3QgS0VZV09SRFMgPSBbXG4gIFwiYXNcIiwgLy8gZm9yIGV4cG9ydHNcbiAgXCJpblwiLFxuICBcIm9mXCIsXG4gIFwiaWZcIixcbiAgXCJmb3JcIixcbiAgXCJ3aGlsZVwiLFxuICBcImZpbmFsbHlcIixcbiAgXCJ2YXJcIixcbiAgXCJuZXdcIixcbiAgXCJmdW5jdGlvblwiLFxuICBcImRvXCIsXG4gIFwicmV0dXJuXCIsXG4gIFwidm9pZFwiLFxuICBcImVsc2VcIixcbiAgXCJicmVha1wiLFxuICBcImNhdGNoXCIsXG4gIFwiaW5zdGFuY2VvZlwiLFxuICBcIndpdGhcIixcbiAgXCJ0aHJvd1wiLFxuICBcImNhc2VcIixcbiAgXCJkZWZhdWx0XCIsXG4gIFwidHJ5XCIsXG4gIFwic3dpdGNoXCIsXG4gIFwiY29udGludWVcIixcbiAgXCJ0eXBlb2ZcIixcbiAgXCJkZWxldGVcIixcbiAgXCJsZXRcIixcbiAgXCJ5aWVsZFwiLFxuICBcImNvbnN0XCIsXG4gIFwiY2xhc3NcIixcbiAgLy8gSlMgaGFuZGxlcyB0aGVzZSB3aXRoIGEgc3BlY2lhbCBydWxlXG4gIC8vIFwiZ2V0XCIsXG4gIC8vIFwic2V0XCIsXG4gIFwiZGVidWdnZXJcIixcbiAgXCJhc3luY1wiLFxuICBcImF3YWl0XCIsXG4gIFwic3RhdGljXCIsXG4gIFwiaW1wb3J0XCIsXG4gIFwiZnJvbVwiLFxuICBcImV4cG9ydFwiLFxuICBcImV4dGVuZHNcIlxuXTtcbmNvbnN0IExJVEVSQUxTID0gW1xuICBcInRydWVcIixcbiAgXCJmYWxzZVwiLFxuICBcIm51bGxcIixcbiAgXCJ1bmRlZmluZWRcIixcbiAgXCJOYU5cIixcbiAgXCJJbmZpbml0eVwiXG5dO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0c1xuY29uc3QgVFlQRVMgPSBbXG4gIC8vIEZ1bmRhbWVudGFsIG9iamVjdHNcbiAgXCJPYmplY3RcIixcbiAgXCJGdW5jdGlvblwiLFxuICBcIkJvb2xlYW5cIixcbiAgXCJTeW1ib2xcIixcbiAgLy8gbnVtYmVycyBhbmQgZGF0ZXNcbiAgXCJNYXRoXCIsXG4gIFwiRGF0ZVwiLFxuICBcIk51bWJlclwiLFxuICBcIkJpZ0ludFwiLFxuICAvLyB0ZXh0XG4gIFwiU3RyaW5nXCIsXG4gIFwiUmVnRXhwXCIsXG4gIC8vIEluZGV4ZWQgY29sbGVjdGlvbnNcbiAgXCJBcnJheVwiLFxuICBcIkZsb2F0MzJBcnJheVwiLFxuICBcIkZsb2F0NjRBcnJheVwiLFxuICBcIkludDhBcnJheVwiLFxuICBcIlVpbnQ4QXJyYXlcIixcbiAgXCJVaW50OENsYW1wZWRBcnJheVwiLFxuICBcIkludDE2QXJyYXlcIixcbiAgXCJJbnQzMkFycmF5XCIsXG4gIFwiVWludDE2QXJyYXlcIixcbiAgXCJVaW50MzJBcnJheVwiLFxuICBcIkJpZ0ludDY0QXJyYXlcIixcbiAgXCJCaWdVaW50NjRBcnJheVwiLFxuICAvLyBLZXllZCBjb2xsZWN0aW9uc1xuICBcIlNldFwiLFxuICBcIk1hcFwiLFxuICBcIldlYWtTZXRcIixcbiAgXCJXZWFrTWFwXCIsXG4gIC8vIFN0cnVjdHVyZWQgZGF0YVxuICBcIkFycmF5QnVmZmVyXCIsXG4gIFwiU2hhcmVkQXJyYXlCdWZmZXJcIixcbiAgXCJBdG9taWNzXCIsXG4gIFwiRGF0YVZpZXdcIixcbiAgXCJKU09OXCIsXG4gIC8vIENvbnRyb2wgYWJzdHJhY3Rpb24gb2JqZWN0c1xuICBcIlByb21pc2VcIixcbiAgXCJHZW5lcmF0b3JcIixcbiAgXCJHZW5lcmF0b3JGdW5jdGlvblwiLFxuICBcIkFzeW5jRnVuY3Rpb25cIixcbiAgLy8gUmVmbGVjdGlvblxuICBcIlJlZmxlY3RcIixcbiAgXCJQcm94eVwiLFxuICAvLyBJbnRlcm5hdGlvbmFsaXphdGlvblxuICBcIkludGxcIixcbiAgLy8gV2ViQXNzZW1ibHlcbiAgXCJXZWJBc3NlbWJseVwiXG5dO1xuXG5jb25zdCBFUlJPUl9UWVBFUyA9IFtcbiAgXCJFcnJvclwiLFxuICBcIkV2YWxFcnJvclwiLFxuICBcIkludGVybmFsRXJyb3JcIixcbiAgXCJSYW5nZUVycm9yXCIsXG4gIFwiUmVmZXJlbmNlRXJyb3JcIixcbiAgXCJTeW50YXhFcnJvclwiLFxuICBcIlR5cGVFcnJvclwiLFxuICBcIlVSSUVycm9yXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX0dMT0JBTFMgPSBbXG4gIFwic2V0SW50ZXJ2YWxcIixcbiAgXCJzZXRUaW1lb3V0XCIsXG4gIFwiY2xlYXJJbnRlcnZhbFwiLFxuICBcImNsZWFyVGltZW91dFwiLFxuXG4gIFwicmVxdWlyZVwiLFxuICBcImV4cG9ydHNcIixcblxuICBcImV2YWxcIixcbiAgXCJpc0Zpbml0ZVwiLFxuICBcImlzTmFOXCIsXG4gIFwicGFyc2VGbG9hdFwiLFxuICBcInBhcnNlSW50XCIsXG4gIFwiZGVjb2RlVVJJXCIsXG4gIFwiZGVjb2RlVVJJQ29tcG9uZW50XCIsXG4gIFwiZW5jb2RlVVJJXCIsXG4gIFwiZW5jb2RlVVJJQ29tcG9uZW50XCIsXG4gIFwiZXNjYXBlXCIsXG4gIFwidW5lc2NhcGVcIlxuXTtcblxuY29uc3QgQlVJTFRfSU5TID0gW10uY29uY2F0KFxuICBCVUlMVF9JTl9HTE9CQUxTLFxuICBUWVBFUyxcbiAgRVJST1JfVFlQRVNcbik7XG5cbi8qXG5MYW5ndWFnZTogQ29mZmVlU2NyaXB0XG5BdXRob3I6IERteXRyaWkgTmFnaXJuaWFrIDxkbmFnaXJAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPiwgQ1x1MDBFOWRyaWMgTlx1MDBFOWhcdTAwRTltaWUgPGNlZHJpYy5uZWhlbWllQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBDb2ZmZWVTY3JpcHQgaXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IHRyYW5zY29tcGlsZXMgdG8gSmF2YVNjcmlwdC4gRm9yIGluZm8gYWJvdXQgbGFuZ3VhZ2Ugc2VlIGh0dHA6Ly9jb2ZmZWVzY3JpcHQub3JnL1xuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuV2Vic2l0ZTogaHR0cHM6Ly9jb2ZmZWVzY3JpcHQub3JnXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjb2ZmZWVzY3JpcHQoaGxqcykge1xuICBjb25zdCBDT0ZGRUVfQlVJTFRfSU5TID0gW1xuICAgICducG0nLFxuICAgICdwcmludCdcbiAgXTtcbiAgY29uc3QgQ09GRkVFX0xJVEVSQUxTID0gW1xuICAgICd5ZXMnLFxuICAgICdubycsXG4gICAgJ29uJyxcbiAgICAnb2ZmJ1xuICBdO1xuICBjb25zdCBDT0ZGRUVfS0VZV09SRFMgPSBbXG4gICAgJ3RoZW4nLFxuICAgICd1bmxlc3MnLFxuICAgICd1bnRpbCcsXG4gICAgJ2xvb3AnLFxuICAgICdieScsXG4gICAgJ3doZW4nLFxuICAgICdhbmQnLFxuICAgICdvcicsXG4gICAgJ2lzJyxcbiAgICAnaXNudCcsXG4gICAgJ25vdCdcbiAgXTtcbiAgY29uc3QgTk9UX1ZBTElEX0tFWVdPUkRTID0gW1xuICAgIFwidmFyXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwic3RhdGljXCJcbiAgXTtcbiAgY29uc3QgZXhjbHVkaW5nID0gKGxpc3QpID0+XG4gICAgKGt3KSA9PiAhbGlzdC5pbmNsdWRlcyhrdyk7XG4gIGNvbnN0IEtFWVdPUkRTJDEgPSB7XG4gICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KENPRkZFRV9LRVlXT1JEUykuZmlsdGVyKGV4Y2x1ZGluZyhOT1RfVkFMSURfS0VZV09SRFMpKSxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUy5jb25jYXQoQ09GRkVFX0xJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLmNvbmNhdChDT0ZGRUVfQlVJTFRfSU5TKVxuICB9O1xuICBjb25zdCBKU19JREVOVF9SRSA9ICdbQS1aYS16JF9dWzAtOUEtWmEteiRfXSonO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC8jXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxXG4gIH07XG4gIGNvbnN0IEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfTlVNQkVSX01PREUsIHsgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICcoXFxcXHMqLyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0gfSksIC8vIGEgbnVtYmVyIHRyaWVzIHRvIGVhdCB0aGUgZm9sbG93aW5nIHNsYXNoIHRvIHByZXZlbnQgdHJlYXRpbmcgaXQgYXMgYSByZWdleHBcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvJycnLyxcbiAgICAgICAgICBlbmQ6IC8nJycvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICAgIGVuZDogLycvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogL1wiXCJcIi8sXG4gICAgICAgICAgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgICAgU1VCU1RcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLy8vJyxcbiAgICAgICAgICBlbmQ6ICcvLy8nLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJy8vW2dpbV17MCwzfSg/PVxcXFxXKScsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyByZWdleCBjYW4ndCBzdGFydCB3aXRoIHNwYWNlIHRvIHBhcnNlIHggLyAyIC8gMyBhcyB0d28gZGl2aXNpb25zXG4gICAgICAgICAgLy8gcmVnZXggY2FuJ3Qgc3RhcnQgd2l0aCAqLCBhbmQgaXQgc3VwcG9ydHMgYW4gXCJpbGxlZ2FsXCIgaW4gdGhlIG1haW4gbW9kZVxuICAgICAgICAgIGJlZ2luOiAvXFwvKD8hWyAqXSkuKj8oPyFbXFxcXF0pLlxcL1tnaW1dezAsM30oPz1cXFcpLyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7IGJlZ2luOiAnQCcgKyBKU19JREVOVF9SRSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgIH0sXG4gICAge1xuICAgICAgc3ViTGFuZ3VhZ2U6ICdqYXZhc2NyaXB0JyxcbiAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgYGAnLFxuICAgICAgICAgIGVuZDogJ2BgYCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgICAgZW5kOiAnYCdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFWFBSRVNTSU9OUztcblxuICBjb25zdCBUSVRMRSA9IGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IEpTX0lERU5UX1JFIH0pO1xuICBjb25zdCBQT1NTSUJMRV9QQVJBTVNfUkUgPSAnKFxcXFwoLipcXFxcKVxcXFxzKik/XFxcXEJbLT1dPic7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXChbXlxcXFwoXScsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgLyogV2UgbmVlZCBhbm90aGVyIGNvbnRhaW5lZCBuYW1lbGVzcyBtb2RlIHRvIG5vdCBoYXZlIGV2ZXJ5IG5lc3RlZFxuICAgIHBhaXIgb2YgcGFyZW5zIHRvIGJlIGNhbGxlZCBcInBhcmFtc1wiICovXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICBKU19JREVOVF9SRSxcbiAgICAgICAgL1xccytleHRlbmRzXFxzKy8sXG4gICAgICAgIEpTX0lERU5UX1JFXG4gICAgICBdIH0sXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICBKU19JREVOVF9SRVxuICAgICAgXSB9XG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMjogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgNDogXCJ0aXRsZS5jbGFzcy5pbmhlcml0ZWRcIlxuICAgIH0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDFcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdDb2ZmZWVTY3JpcHQnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdjb2ZmZWUnLFxuICAgICAgJ2Nzb24nLFxuICAgICAgJ2ljZWQnXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uRVhQUkVTU0lPTlMsXG4gICAgICBobGpzLkNPTU1FTlQoJyMjIycsICcjIyMnKSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKj1cXFxccyonICsgUE9TU0lCTEVfUEFSQU1TX1JFLFxuICAgICAgICBlbmQ6ICdbLT1dPicsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFRJVExFLFxuICAgICAgICAgIFBBUkFNU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBhbm9ueW1vdXMgZnVuY3Rpb24gc3RhcnRcbiAgICAgICAgYmVnaW46IC9bOlxcKCw9XVxccyovLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IFBPU1NJQkxFX1BBUkFNU19SRSxcbiAgICAgICAgICAgIGVuZDogJ1stPV0+JyxcbiAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDTEFTU19ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICBiZWdpbjogSlNfSURFTlRfUkUgKyAnOicsXG4gICAgICAgIGVuZDogJzonLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29mZmVlc2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogQ29xXG5BdXRob3I6IFN0ZXBoYW4gQm95ZXIgPHN0ZXBoYW5Ac3RlcGhhbmJveWVyLmNvbT5cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5XZWJzaXRlOiBodHRwczovL2NvcS5pbnJpYS5mclxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNvcShobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiX3wwXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYXRcIixcbiAgICBcImNvZml4XCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZXhpc3RzMlwiLFxuICAgIFwiZml4XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmFsbFwiLFxuICAgIFwiZnVuXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiSUZcIixcbiAgICBcImluXCIsXG4gICAgXCJsZXRcIixcbiAgICBcIm1hdGNoXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIlByb3BcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiU2V0XCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJUeXBlXCIsXG4gICAgXCJ1c2luZ1wiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIndpdGhcIixcbiAgICBcIkFib3J0XCIsXG4gICAgXCJBYm91dFwiLFxuICAgIFwiQWRkXCIsXG4gICAgXCJBZG1pdFwiLFxuICAgIFwiQWRtaXR0ZWRcIixcbiAgICBcIkFsbFwiLFxuICAgIFwiQXJndW1lbnRzXCIsXG4gICAgXCJBc3N1bXB0aW9uc1wiLFxuICAgIFwiQXhpb21cIixcbiAgICBcIkJhY2tcIixcbiAgICBcIkJhY2tUb1wiLFxuICAgIFwiQmFja3RyYWNrXCIsXG4gICAgXCJCaW5kXCIsXG4gICAgXCJCbGFja2xpc3RcIixcbiAgICBcIkNhbm9uaWNhbFwiLFxuICAgIFwiQ2RcIixcbiAgICBcIkNoZWNrXCIsXG4gICAgXCJDbGFzc1wiLFxuICAgIFwiQ2xhc3Nlc1wiLFxuICAgIFwiQ2xvc2VcIixcbiAgICBcIkNvZXJjaW9uXCIsXG4gICAgXCJDb2VyY2lvbnNcIixcbiAgICBcIkNvRml4cG9pbnRcIixcbiAgICBcIkNvSW5kdWN0aXZlXCIsXG4gICAgXCJDb2xsZWN0aW9uXCIsXG4gICAgXCJDb21iaW5lZFwiLFxuICAgIFwiQ29tcHV0ZVwiLFxuICAgIFwiQ29uamVjdHVyZVwiLFxuICAgIFwiQ29uamVjdHVyZXNcIixcbiAgICBcIkNvbnN0YW50XCIsXG4gICAgXCJjb25zdHJcIixcbiAgICBcIkNvbnN0cmFpbnRcIixcbiAgICBcIkNvbnN0cnVjdG9yc1wiLFxuICAgIFwiQ29udGV4dFwiLFxuICAgIFwiQ29yb2xsYXJ5XCIsXG4gICAgXCJDcmVhdGVIaW50RGJcIixcbiAgICBcIkN1dFwiLFxuICAgIFwiRGVjbGFyZVwiLFxuICAgIFwiRGVmaW5lZFwiLFxuICAgIFwiRGVmaW5pdGlvblwiLFxuICAgIFwiRGVsaW1pdFwiLFxuICAgIFwiRGVwZW5kZW5jaWVzXCIsXG4gICAgXCJEZXBlbmRlbnRcIixcbiAgICBcIkRlcml2ZVwiLFxuICAgIFwiRHJvcFwiLFxuICAgIFwiZWF1dG9cIixcbiAgICBcIkVuZFwiLFxuICAgIFwiRXF1YWxpdHlcIixcbiAgICBcIkV2YWxcIixcbiAgICBcIkV4YW1wbGVcIixcbiAgICBcIkV4aXN0ZW50aWFsXCIsXG4gICAgXCJFeGlzdGVudGlhbHNcIixcbiAgICBcIkV4aXN0aW5nXCIsXG4gICAgXCJFeHBvcnRcIixcbiAgICBcImV4cG9ydGluZ1wiLFxuICAgIFwiRXh0ZXJuXCIsXG4gICAgXCJFeHRyYWN0XCIsXG4gICAgXCJFeHRyYWN0aW9uXCIsXG4gICAgXCJGYWN0XCIsXG4gICAgXCJGaWVsZFwiLFxuICAgIFwiRmllbGRzXCIsXG4gICAgXCJGaWxlXCIsXG4gICAgXCJGaXhwb2ludFwiLFxuICAgIFwiRm9jdXNcIixcbiAgICBcImZvclwiLFxuICAgIFwiRnJvbVwiLFxuICAgIFwiRnVuY3Rpb25cIixcbiAgICBcIkZ1bmN0aW9uYWxcIixcbiAgICBcIkdlbmVyYWxpemFibGVcIixcbiAgICBcIkdsb2JhbFwiLFxuICAgIFwiR29hbFwiLFxuICAgIFwiR3JhYlwiLFxuICAgIFwiR3JhbW1hclwiLFxuICAgIFwiR3JhcGhcIixcbiAgICBcIkd1YXJkZWRcIixcbiAgICBcIkhlYXBcIixcbiAgICBcIkhpbnRcIixcbiAgICBcIkhpbnREYlwiLFxuICAgIFwiSGludHNcIixcbiAgICBcIkh5cG90aGVzZXNcIixcbiAgICBcIkh5cG90aGVzaXNcIixcbiAgICBcImlkZW50XCIsXG4gICAgXCJJZGVudGl0eVwiLFxuICAgIFwiSWZcIixcbiAgICBcIkltbWVkaWF0ZVwiLFxuICAgIFwiSW1wbGljaXRcIixcbiAgICBcIkltcG9ydFwiLFxuICAgIFwiSW5jbHVkZVwiLFxuICAgIFwiSW5kdWN0aXZlXCIsXG4gICAgXCJJbmZpeFwiLFxuICAgIFwiSW5mb1wiLFxuICAgIFwiSW5pdGlhbFwiLFxuICAgIFwiSW5saW5lXCIsXG4gICAgXCJJbnNwZWN0XCIsXG4gICAgXCJJbnN0YW5jZVwiLFxuICAgIFwiSW5zdGFuY2VzXCIsXG4gICAgXCJJbnRyb1wiLFxuICAgIFwiSW50cm9zXCIsXG4gICAgXCJJbnZlcnNpb25cIixcbiAgICBcIkludmVyc2lvbl9jbGVhclwiLFxuICAgIFwiTGFuZ3VhZ2VcIixcbiAgICBcIkxlZnRcIixcbiAgICBcIkxlbW1hXCIsXG4gICAgXCJMZXRcIixcbiAgICBcIkxpYnJhcmllc1wiLFxuICAgIFwiTGlicmFyeVwiLFxuICAgIFwiTG9hZFwiLFxuICAgIFwiTG9hZFBhdGhcIixcbiAgICBcIkxvY2FsXCIsXG4gICAgXCJMb2NhdGVcIixcbiAgICBcIkx0YWNcIixcbiAgICBcIk1MXCIsXG4gICAgXCJNb2RlXCIsXG4gICAgXCJNb2R1bGVcIixcbiAgICBcIk1vZHVsZXNcIixcbiAgICBcIk1vbm9tb3JwaGljXCIsXG4gICAgXCJNb3JwaGlzbVwiLFxuICAgIFwiTmV4dFwiLFxuICAgIFwiTm9JbmxpbmVcIixcbiAgICBcIk5vdGF0aW9uXCIsXG4gICAgXCJPYmxpZ2F0aW9uXCIsXG4gICAgXCJPYmxpZ2F0aW9uc1wiLFxuICAgIFwiT3BhcXVlXCIsXG4gICAgXCJPcGVuXCIsXG4gICAgXCJPcHRpbWl6ZVwiLFxuICAgIFwiT3B0aW9uc1wiLFxuICAgIFwiUGFyYW1ldGVyXCIsXG4gICAgXCJQYXJhbWV0ZXJzXCIsXG4gICAgXCJQYXJhbWV0cmljXCIsXG4gICAgXCJQYXRoXCIsXG4gICAgXCJQYXRoc1wiLFxuICAgIFwicGF0dGVyblwiLFxuICAgIFwiUG9seW1vcnBoaWNcIixcbiAgICBcIlByZXRlcm1cIixcbiAgICBcIlByaW50XCIsXG4gICAgXCJQcmludGluZ1wiLFxuICAgIFwiUHJvZ3JhbVwiLFxuICAgIFwiUHJvamVjdGlvbnNcIixcbiAgICBcIlByb29mXCIsXG4gICAgXCJQcm9wb3NpdGlvblwiLFxuICAgIFwiUHdkXCIsXG4gICAgXCJRZWRcIixcbiAgICBcIlF1aXRcIixcbiAgICBcIlJlY1wiLFxuICAgIFwiUmVjb3JkXCIsXG4gICAgXCJSZWN1cnNpdmVcIixcbiAgICBcIlJlZGlyZWN0XCIsXG4gICAgXCJSZWxhdGlvblwiLFxuICAgIFwiUmVtYXJrXCIsXG4gICAgXCJSZW1vdmVcIixcbiAgICBcIlJlcXVpcmVcIixcbiAgICBcIlJlc2VydmVkXCIsXG4gICAgXCJSZXNldFwiLFxuICAgIFwiUmVzb2x2ZVwiLFxuICAgIFwiUmVzdGFydFwiLFxuICAgIFwiUmV3cml0ZVwiLFxuICAgIFwiUmlnaHRcIixcbiAgICBcIlJpbmdcIixcbiAgICBcIlJpbmdzXCIsXG4gICAgXCJTYXZlXCIsXG4gICAgXCJTY2hlbWVcIixcbiAgICBcIlNjb3BlXCIsXG4gICAgXCJTY29wZXNcIixcbiAgICBcIlNjcmlwdFwiLFxuICAgIFwiU2VhcmNoXCIsXG4gICAgXCJTZWFyY2hBYm91dFwiLFxuICAgIFwiU2VhcmNoSGVhZFwiLFxuICAgIFwiU2VhcmNoUGF0dGVyblwiLFxuICAgIFwiU2VhcmNoUmV3cml0ZVwiLFxuICAgIFwiU2VjdGlvblwiLFxuICAgIFwiU2VwYXJhdGVcIixcbiAgICBcIlNldFwiLFxuICAgIFwiU2V0b2lkXCIsXG4gICAgXCJTaG93XCIsXG4gICAgXCJTb2x2ZVwiLFxuICAgIFwiU29ydGVkXCIsXG4gICAgXCJTdGVwXCIsXG4gICAgXCJTdHJhdGVnaWVzXCIsXG4gICAgXCJTdHJhdGVneVwiLFxuICAgIFwiU3RydWN0dXJlXCIsXG4gICAgXCJTdWJDbGFzc1wiLFxuICAgIFwiVGFibGVcIixcbiAgICBcIlRhYmxlc1wiLFxuICAgIFwiVGFjdGljXCIsXG4gICAgXCJUZXJtXCIsXG4gICAgXCJUZXN0XCIsXG4gICAgXCJUaGVvcmVtXCIsXG4gICAgXCJUaW1lXCIsXG4gICAgXCJUaW1lb3V0XCIsXG4gICAgXCJUcmFuc3BhcmVudFwiLFxuICAgIFwiVHlwZVwiLFxuICAgIFwiVHlwZWNsYXNzZXNcIixcbiAgICBcIlR5cGVzXCIsXG4gICAgXCJVbmRlbGltaXRcIixcbiAgICBcIlVuZG9cIixcbiAgICBcIlVuZm9jdXNcIixcbiAgICBcIlVuZm9jdXNlZFwiLFxuICAgIFwiVW5mb2xkXCIsXG4gICAgXCJVbml2ZXJzZVwiLFxuICAgIFwiVW5pdmVyc2VzXCIsXG4gICAgXCJVbnNldFwiLFxuICAgIFwiVW5zaGVsdmVcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJWYXJpYWJsZVwiLFxuICAgIFwiVmFyaWFibGVzXCIsXG4gICAgXCJWYXJpYW50XCIsXG4gICAgXCJWZXJib3NlXCIsXG4gICAgXCJWaXNpYmlsaXR5XCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwid2l0aFwiXG4gIF07XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJhYnN1cmRcIixcbiAgICBcImFkbWl0XCIsXG4gICAgXCJhZnRlclwiLFxuICAgIFwiYXBwbHlcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImFzc3VtcHRpb25cIixcbiAgICBcImF0XCIsXG4gICAgXCJhdXRvXCIsXG4gICAgXCJhdXRvcmV3cml0ZVwiLFxuICAgIFwiYXV0b3VuZm9sZFwiLFxuICAgIFwiYmVmb3JlXCIsXG4gICAgXCJib3R0b21cIixcbiAgICBcImJ0YXV0b1wiLFxuICAgIFwiYnlcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhc2VfZXFcIixcbiAgICBcImNiblwiLFxuICAgIFwiY2J2XCIsXG4gICAgXCJjaGFuZ2VcIixcbiAgICBcImNsYXNzaWNhbF9sZWZ0XCIsXG4gICAgXCJjbGFzc2ljYWxfcmlnaHRcIixcbiAgICBcImNsZWFyXCIsXG4gICAgXCJjbGVhcmJvZHlcIixcbiAgICBcImNvZml4XCIsXG4gICAgXCJjb21wYXJlXCIsXG4gICAgXCJjb21wdXRlXCIsXG4gICAgXCJjb25ncnVlbmNlXCIsXG4gICAgXCJjb25zdHJfZXFcIixcbiAgICBcImNvbnN0cnVjdG9yXCIsXG4gICAgXCJjb250cmFkaWN0XCIsXG4gICAgXCJjb250cmFkaWN0aW9uXCIsXG4gICAgXCJjdXRcIixcbiAgICBcImN1dHJld3JpdGVcIixcbiAgICBcImN5Y2xlXCIsXG4gICAgXCJkZWNpZGVcIixcbiAgICBcImRlY29tcG9zZVwiLFxuICAgIFwiZGVwZW5kZW50XCIsXG4gICAgXCJkZXN0cnVjdFwiLFxuICAgIFwiZGVzdHJ1Y3Rpb25cIixcbiAgICBcImRpbnR1aXRpb25cIixcbiAgICBcImRpc2NyaW1pbmF0ZVwiLFxuICAgIFwiZGlzY3JSXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJkdGF1dG9cIixcbiAgICBcImVhcHBseVwiLFxuICAgIFwiZWFzc3VtcHRpb25cIixcbiAgICBcImVhdXRvXCIsXG4gICAgXCJlY2FzZVwiLFxuICAgIFwiZWNvbnN0cnVjdG9yXCIsXG4gICAgXCJlZGVzdHJ1Y3RcIixcbiAgICBcImVkaXNjcmltaW5hdGVcIixcbiAgICBcImVlbGltXCIsXG4gICAgXCJlZXhhY3RcIixcbiAgICBcImVleGlzdHNcIixcbiAgICBcImVpbmR1Y3Rpb25cIixcbiAgICBcImVpbmplY3Rpb25cIixcbiAgICBcImVsZWZ0XCIsXG4gICAgXCJlbGltXCIsXG4gICAgXCJlbGltdHlwZVwiLFxuICAgIFwiZW5vdWdoXCIsXG4gICAgXCJlcXVhbGl0eVwiLFxuICAgIFwiZXJld3JpdGVcIixcbiAgICBcImVyaWdodFwiLFxuICAgIFwiZXNpbXBsaWZ5X2VxXCIsXG4gICAgXCJlc3BsaXRcIixcbiAgICBcImV2YXJcIixcbiAgICBcImV4YWN0XCIsXG4gICAgXCJleGFjdGx5X29uY2VcIixcbiAgICBcImV4ZmFsc29cIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZl9lcXVhbFwiLFxuICAgIFwiZmFpbFwiLFxuICAgIFwiZmllbGRcIixcbiAgICBcImZpZWxkX3NpbXBsaWZ5XCIsXG4gICAgXCJmaWVsZF9zaW1wbGlmeV9lcVwiLFxuICAgIFwiZmlyc3RcIixcbiAgICBcImZpcnN0b3JkZXJcIixcbiAgICBcImZpeFwiLFxuICAgIFwiZm9sZFwiLFxuICAgIFwiZm91cmllclwiLFxuICAgIFwiZnVuY3Rpb25hbFwiLFxuICAgIFwiZ2VuZXJhbGl6ZVwiLFxuICAgIFwiZ2VuZXJhbGl6aW5nXCIsXG4gICAgXCJnZmFpbFwiLFxuICAgIFwiZ2l2ZV91cFwiLFxuICAgIFwiaGFzX2V2YXJcIixcbiAgICBcImhuZlwiLFxuICAgIFwiaWR0YWNcIixcbiAgICBcImluXCIsXG4gICAgXCJpbmR1Y3Rpb25cIixcbiAgICBcImluamVjdGlvblwiLFxuICAgIFwiaW5zdGFudGlhdGVcIixcbiAgICBcImludHJvXCIsXG4gICAgXCJpbnRyb19wYXR0ZXJuXCIsXG4gICAgXCJpbnRyb3NcIixcbiAgICBcImludHVpdGlvblwiLFxuICAgIFwiaW52ZXJzaW9uXCIsXG4gICAgXCJpbnZlcnNpb25fY2xlYXJcIixcbiAgICBcImlzX2V2YXJcIixcbiAgICBcImlzX3ZhclwiLFxuICAgIFwibGFwcGx5XCIsXG4gICAgXCJsYXp5XCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJsaWFcIixcbiAgICBcImxyYVwiLFxuICAgIFwibW92ZVwiLFxuICAgIFwibmF0aXZlX2NvbXB1dGVcIixcbiAgICBcIm5pYVwiLFxuICAgIFwibnNhdHpcIixcbiAgICBcIm9tZWdhXCIsXG4gICAgXCJvbmNlXCIsXG4gICAgXCJwYXR0ZXJuXCIsXG4gICAgXCJwb3NlXCIsXG4gICAgXCJwcm9ncmVzc1wiLFxuICAgIFwicHJvb2ZcIixcbiAgICBcInBzYXR6XCIsXG4gICAgXCJxdW90ZVwiLFxuICAgIFwicmVjb3JkXCIsXG4gICAgXCJyZWRcIixcbiAgICBcInJlZmluZVwiLFxuICAgIFwicmVmbGV4aXZpdHlcIixcbiAgICBcInJlbWVtYmVyXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmVwbGFjZVwiLFxuICAgIFwicmV2ZXJ0XCIsXG4gICAgXCJyZXZnb2Fsc1wiLFxuICAgIFwicmV3cml0ZVwiLFxuICAgIFwicmV3cml0ZV9zdHJhdFwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJpbmdcIixcbiAgICBcInJpbmdfc2ltcGxpZnlcIixcbiAgICBcInJ0YXV0b1wiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzZXRvaWRfcmVmbGV4aXZpdHlcIixcbiAgICBcInNldG9pZF9yZXBsYWNlXCIsXG4gICAgXCJzZXRvaWRfcmV3cml0ZVwiLFxuICAgIFwic2V0b2lkX3N5bW1ldHJ5XCIsXG4gICAgXCJzZXRvaWRfdHJhbnNpdGl2aXR5XCIsXG4gICAgXCJzaGVsdmVcIixcbiAgICBcInNoZWx2ZV91bmlmaWFibGVcIixcbiAgICBcInNpbXBsXCIsXG4gICAgXCJzaW1wbGVcIixcbiAgICBcInNpbXBsaWZ5X2VxXCIsXG4gICAgXCJzb2x2ZVwiLFxuICAgIFwic3BlY2lhbGl6ZVwiLFxuICAgIFwic3BsaXRcIixcbiAgICBcInNwbGl0X1JhYnNcIixcbiAgICBcInNwbGl0X1JtdWx0XCIsXG4gICAgXCJzdGVwbFwiLFxuICAgIFwic3RlcHJcIixcbiAgICBcInN1YnN0XCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN3YXBcIixcbiAgICBcInN5bW1ldHJ5XCIsXG4gICAgXCJ0YWN0aWNcIixcbiAgICBcInRhdXRvXCIsXG4gICAgXCJ0aW1lXCIsXG4gICAgXCJ0aW1lb3V0XCIsXG4gICAgXCJ0b3BcIixcbiAgICBcInRyYW5zaXRpdml0eVwiLFxuICAgIFwidHJpdmlhbFwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ0cnlpZlwiLFxuICAgIFwidW5mb2xkXCIsXG4gICAgXCJ1bmlmeVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2bV9jb21wdXRlXCIsXG4gICAgXCJ3aXRoXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ29xJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXFxcXChcXFxcKicsICdcXFxcKlxcXFwpJyksXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGJlZ2luOiAnXFxcXHxcXFxccyonLFxuICAgICAgICBlbmQ6ICdcXFxcdysnXG4gICAgICB9LFxuICAgICAgeyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgICBiZWdpbjogL1stPV0+LyB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNvcTtcbiIsICIvKlxuTGFuZ3VhZ2U6IENhY2hcdTAwRTkgT2JqZWN0IFNjcmlwdFxuQXV0aG9yOiBOaWtpdGEgU2F2Y2hlbmtvIDx6aXRyb3MubGFiQGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBlbnRlcnByaXNlLCBzY3JpcHRpbmdcbldlYnNpdGU6IGh0dHBzOi8vY2Vkb2NzLmludGVyc3lzdGVtcy5jb20vbGF0ZXN0L2NzcC9kb2Nib29rL0RvY0Jvb2suVUkuUGFnZS5jbHNcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjb3MoaGxqcykge1xuICBjb25zdCBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IC8vIGVzY2FwZWRcbiAgICAgICAgICAgIGJlZ2luOiBcIlxcXCJcXFwiXCIsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6IFwibnVtYmVyXCIsXG4gICAgYmVnaW46IFwiXFxcXGIoXFxcXGQrKFxcXFwuXFxcXGQqKT98XFxcXC5cXFxcZCspXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgQ09TX0tFWVdPUkRTID1cbiAgICAncHJvcGVydHkgcGFyYW1ldGVyIGNsYXNzIGNsYXNzbWV0aG9kIGNsaWVudG1ldGhvZCBleHRlbmRzIGFzIGJyZWFrICdcbiAgICArICdjYXRjaCBjbG9zZSBjb250aW51ZSBkbyBkfDAgZWxzZSBlbHNlaWYgZm9yIGdvdG8gaGFsdCBoYW5nIGh8MCBpZiBqb2IgJ1xuICAgICsgJ2p8MCBraWxsIGt8MCBsb2NrIGx8MCBtZXJnZSBuZXcgb3BlbiBxdWl0IHF8MCByZWFkIHJ8MCByZXR1cm4gc2V0IHN8MCAnXG4gICAgKyAndGNvbW1pdCB0aHJvdyB0cm9sbGJhY2sgdHJ5IHRzdGFydCB1c2UgdmlldyB3aGlsZSB3cml0ZSB3fDAgeGVjdXRlIHh8MCAnXG4gICAgKyAnemtpbGwgem5zcGFjZSB6biB6dHJhcCB6d3JpdGUgencgenpkdW1wIHp6d3JpdGUgcHJpbnQgemJyZWFrIHppbnNlcnQgJ1xuICAgICsgJ3psb2FkIHpwcmludCB6cmVtb3ZlIHpzYXZlIHp6cHJpbnQgbXYgbXZjYWxsIG12Y3J0IG12ZGltIG12cHJpbnQgenF1aXQgJ1xuICAgICsgJ3pzeW5jIGFzY2lpJztcblxuICAvLyByZWdpc3RlcmVkIGZ1bmN0aW9uIC0gbm8gbmVlZCBpbiB0aGVtIGR1ZSB0byBhbGwgZnVuY3Rpb25zIGFyZSBoaWdobGlnaHRlZCxcbiAgLy8gYnV0IEknbGwganVzdCBsZWF2ZSB0aGlzIGhlcmUuXG5cbiAgLy8gXCIkYml0XCIsIFwiJGJpdGNvdW50XCIsXG4gIC8vIFwiJGJpdGZpbmRcIiwgXCIkYml0bG9naWNcIiwgXCIkY2FzZVwiLCBcIiRjaGFyXCIsIFwiJGNsYXNzbWV0aG9kXCIsIFwiJGNsYXNzbmFtZVwiLFxuICAvLyBcIiRjb21waWxlXCIsIFwiJGRhdGFcIiwgXCIkZGVjaW1hbFwiLCBcIiRkb3VibGVcIiwgXCIkZXh0cmFjdFwiLCBcIiRmYWN0b3JcIixcbiAgLy8gXCIkZmluZFwiLCBcIiRmbnVtYmVyXCIsIFwiJGdldFwiLCBcIiRpbmNyZW1lbnRcIiwgXCIkaW51bWJlclwiLCBcIiRpc29iamVjdFwiLFxuICAvLyBcIiRpc3ZhbGlkZG91YmxlXCIsIFwiJGlzdmFsaWRudW1cIiwgXCIkanVzdGlmeVwiLCBcIiRsZW5ndGhcIiwgXCIkbGlzdFwiLFxuICAvLyBcIiRsaXN0YnVpbGRcIiwgXCIkbGlzdGRhdGFcIiwgXCIkbGlzdGZpbmRcIiwgXCIkbGlzdGZyb21zdHJpbmdcIiwgXCIkbGlzdGdldFwiLFxuICAvLyBcIiRsaXN0bGVuZ3RoXCIsIFwiJGxpc3RuZXh0XCIsIFwiJGxpc3RzYW1lXCIsIFwiJGxpc3R0b3N0cmluZ1wiLCBcIiRsaXN0dmFsaWRcIixcbiAgLy8gXCIkbG9jYXRlXCIsIFwiJG1hdGNoXCIsIFwiJG1ldGhvZFwiLCBcIiRuYW1lXCIsIFwiJG5jb252ZXJ0XCIsIFwiJG5leHRcIixcbiAgLy8gXCIkbm9ybWFsaXplXCIsIFwiJG5vd1wiLCBcIiRudW1iZXJcIiwgXCIkb3JkZXJcIiwgXCIkcGFyYW1ldGVyXCIsIFwiJHBpZWNlXCIsXG4gIC8vIFwiJHByZWZldGNob2ZmXCIsIFwiJHByZWZldGNob25cIiwgXCIkcHJvcGVydHlcIiwgXCIkcWxlbmd0aFwiLCBcIiRxc3Vic2NyaXB0XCIsXG4gIC8vIFwiJHF1ZXJ5XCIsIFwiJHJhbmRvbVwiLCBcIiRyZXBsYWNlXCIsIFwiJHJldmVyc2VcIiwgXCIkc2NvbnZlcnRcIiwgXCIkc2VsZWN0XCIsXG4gIC8vIFwiJHNvcnRiZWdpblwiLCBcIiRzb3J0ZW5kXCIsIFwiJHN0YWNrXCIsIFwiJHRleHRcIiwgXCIkdHJhbnNsYXRlXCIsIFwiJHZpZXdcIixcbiAgLy8gXCIkd2FzY2lpXCIsIFwiJHdjaGFyXCIsIFwiJHdleHRyYWN0XCIsIFwiJHdmaW5kXCIsIFwiJHdpc3dpZGVcIiwgXCIkd2xlbmd0aFwiLFxuICAvLyBcIiR3cmV2ZXJzZVwiLCBcIiR4ZWN1dGVcIiwgXCIkemFic1wiLCBcIiR6YXJjY29zXCIsIFwiJHphcmNzaW5cIiwgXCIkemFyY3RhblwiLFxuICAvLyBcIiR6Y29zXCIsIFwiJHpjb3RcIiwgXCIkemNzY1wiLCBcIiR6ZGF0ZVwiLCBcIiR6ZGF0ZWhcIiwgXCIkemRhdGV0aW1lXCIsXG4gIC8vIFwiJHpkYXRldGltZWhcIiwgXCIkemV4cFwiLCBcIiR6aGV4XCIsIFwiJHpsblwiLCBcIiR6bG9nXCIsIFwiJHpwb3dlclwiLCBcIiR6c2VjXCIsXG4gIC8vIFwiJHpzaW5cIiwgXCIkenNxclwiLCBcIiR6dGFuXCIsIFwiJHp0aW1lXCIsIFwiJHp0aW1laFwiLCBcIiR6Ym9vbGVhblwiLFxuICAvLyBcIiR6Y29udmVydFwiLCBcIiR6Y3JjXCIsIFwiJHpjeWNcIiwgXCIkemRhc2NpaVwiLCBcIiR6ZGNoYXJcIiwgXCIkemZcIixcbiAgLy8gXCIkemlzd2lkZVwiLCBcIiR6bGFzY2lpXCIsIFwiJHpsY2hhclwiLCBcIiR6bmFtZVwiLCBcIiR6cG9zaXRpb25cIiwgXCIkenFhc2NpaVwiLFxuICAvLyBcIiR6cWNoYXJcIiwgXCIkenNlYXJjaFwiLCBcIiR6c2Vla1wiLCBcIiR6c3RyaXBcIiwgXCIkendhc2NpaVwiLCBcIiR6d2NoYXJcIixcbiAgLy8gXCIkendpZHRoXCIsIFwiJHp3cGFja1wiLCBcIiR6d2JwYWNrXCIsIFwiJHp3dW5wYWNrXCIsIFwiJHp3YnVucGFja1wiLCBcIiR6emVua2FrdVwiLFxuICAvLyBcIiRjaGFuZ2VcIiwgXCIkbXZcIiwgXCIkbXZhdFwiLCBcIiRtdmZtdFwiLCBcIiRtdmZtdHNcIiwgXCIkbXZpY29udlwiLFxuICAvLyBcIiRtdmljb252c1wiLCBcIiRtdmlubWF0XCIsIFwiJG12bG92ZXJcIiwgXCIkbXZvY29udlwiLCBcIiRtdm9jb252c1wiLCBcIiRtdnJhaXNlXCIsXG4gIC8vIFwiJG12dHJhbnNcIiwgXCIkbXZ2XCIsIFwiJG12bmFtZVwiLCBcIiR6Yml0YW5kXCIsIFwiJHpiaXRjb3VudFwiLCBcIiR6Yml0ZmluZFwiLFxuICAvLyBcIiR6Yml0Z2V0XCIsIFwiJHpiaXRsZW5cIiwgXCIkemJpdG5vdFwiLCBcIiR6Yml0b3JcIiwgXCIkemJpdHNldFwiLCBcIiR6Yml0c3RyXCIsXG4gIC8vIFwiJHpiaXR4b3JcIiwgXCIkemluY3JlbWVudFwiLCBcIiR6bmV4dFwiLCBcIiR6b3JkZXJcIiwgXCIkenByZXZpb3VzXCIsIFwiJHpzb3J0XCIsXG4gIC8vIFwiZGV2aWNlXCIsIFwiJGVjb2RlXCIsIFwiJGVzdGFja1wiLCBcIiRldHJhcFwiLCBcIiRoYWx0XCIsIFwiJGhvcm9sb2dcIixcbiAgLy8gXCIkaW9cIiwgXCIkam9iXCIsIFwiJGtleVwiLCBcIiRuYW1lc3BhY2VcIiwgXCIkcHJpbmNpcGFsXCIsIFwiJHF1aXRcIiwgXCIkcm9sZXNcIixcbiAgLy8gXCIkc3RvcmFnZVwiLCBcIiRzeXN0ZW1cIiwgXCIkdGVzdFwiLCBcIiR0aGlzXCIsIFwiJHRsZXZlbFwiLCBcIiR1c2VybmFtZVwiLFxuICAvLyBcIiR4XCIsIFwiJHlcIiwgXCIkemFcIiwgXCIkemJcIiwgXCIkemNoaWxkXCIsIFwiJHplb2ZcIiwgXCIkemVvc1wiLCBcIiR6ZXJyb3JcIixcbiAgLy8gXCIkemhvcm9sb2dcIiwgXCIkemlvXCIsIFwiJHpqb2JcIiwgXCIkem1vZGVcIiwgXCIkem5zcGFjZVwiLCBcIiR6cGFyZW50XCIsIFwiJHpwaVwiLFxuICAvLyBcIiR6cG9zXCIsIFwiJHpyZWZlcmVuY2VcIiwgXCIkenN0b3JhZ2VcIiwgXCIkenRpbWVzdGFtcFwiLCBcIiR6dGltZXpvbmVcIixcbiAgLy8gXCIkenRyYXBcIiwgXCIkenZlcnNpb25cIlxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0NhY2hcdTAwRTkgT2JqZWN0IFNjcmlwdCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbIFwiY2xzXCIgXSxcbiAgICBrZXl3b3JkczogQ09TX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOVU1CRVJTLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgICAgIGJlZ2luOiAvOy8sXG4gICAgICAgIGVuZDogXCIkXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gRnVuY3Rpb25zIGFuZCB1c2VyLWRlZmluZWQgZnVuY3Rpb25zOiB3cml0ZSAkenRpbWUoNjAqNjAqMyksICQkbXlGdW5jKDEwKSwgJCReVmFsKDEpXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogLyg/OlxcJFxcJD98XFwuXFwuKVxcXj9bYS16QS1aXSsvXG4gICAgICB9LFxuICAgICAgeyAvLyBNYWNybyBjb21tYW5kOiBxdWl0ICQkJE9LXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogL1xcJFxcJFxcJFthLXpBLVpdKy9cbiAgICAgIH0sXG4gICAgICB7IC8vIFNwZWNpYWwgKGdsb2JhbCkgdmFyaWFibGVzOiB3cml0ZSAlcmVxdWVzdC5Db250ZW50OyBCdWlsdC1pbiBjbGFzc2VzOiAlTGlicmFyeS5JbnRlZ2VyXG4gICAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgICBiZWdpbjogLyVbYS16XSsoPzpcXC5bYS16XSspKi9cbiAgICAgIH0sXG4gICAgICB7IC8vIEdsb2JhbCB2YXJpYWJsZTogc2V0IF5nbG9iYWxOYW1lID0gMTIgd3JpdGUgXmdsb2JhbE5hbWVcbiAgICAgICAgY2xhc3NOYW1lOiBcInN5bWJvbFwiLFxuICAgICAgICBiZWdpbjogL1xcXiU/W2EtekEtWl1bXFx3XSovXG4gICAgICB9LFxuICAgICAgeyAvLyBTb21lIGNvbnRyb2wgY29uc3RydWN0aW9uczogZG8gIyNjbGFzcyhQYWNrYWdlLkNsYXNzTmFtZSkuTWV0aG9kKCksICMjc3VwZXIoKVxuICAgICAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiLFxuICAgICAgICBiZWdpbjogLyMjY2xhc3N8IyNzdXBlcnwjZGVmaW5lfCNkaW0vXG4gICAgICB9LFxuICAgICAgLy8gc3ViLWxhbmd1YWdlczogYXJlIG5vdCBmdWxseSBzdXBwb3J0ZWQgYnkgaGxqcyBieSAxMS8xNS8yMDE1XG4gICAgICAvLyBsZWZ0IGZvciB0aGUgZnV0dXJlIGltcGxlbWVudGF0aW9uLlxuICAgICAge1xuICAgICAgICBiZWdpbjogLyZzcWxcXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiBcInNxbFwiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyYoanN8anNjcmlwdHxqYXZhc2NyaXB0KTwvLFxuICAgICAgICBlbmQ6IC8+LyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBzdWJMYW5ndWFnZTogXCJqYXZhc2NyaXB0XCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHRoaXMgYnJha2VzIGZpcnN0IGFuZCBsYXN0IHRhZywgYnV0IHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGVtYmVkIGEgdmFsaWQgaHRtbFxuICAgICAgICBiZWdpbjogLyZodG1sPFxccyo8LyxcbiAgICAgICAgZW5kOiAvPlxccyo+LyxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6IFwieG1sXCJcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29zO1xuIiwgIi8qXG5MYW5ndWFnZTogQysrXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbldlYnNpdGU6IGh0dHBzOi8vaXNvY3BwLm9yZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGNwcChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gYWRkZWQgZm9yIGhpc3RvcmljIHJlYXNvbnMgYmVjYXVzZSBgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFYCBkb2VzXG4gIC8vIG5vdCBpbmNsdWRlIHN1Y2ggc3VwcG9ydCBub3IgY2FuIHdlIGJlIHN1cmUgYWxsIHRoZSBncmFtbWFycyBkZXBlbmRpbmdcbiAgLy8gb24gaXQgd291bGQgZGVzaXJlIHRoaXMgYmVoYXZpb3JcbiAgY29uc3QgQ19MSU5FX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLy8nLCAnJCcsIHsgY29udGFpbnM6IFsgeyBiZWdpbjogL1xcXFxcXG4vIH0gXSB9KTtcbiAgY29uc3QgREVDTFRZUEVfQVVUT19SRSA9ICdkZWNsdHlwZVxcXFwoYXV0b1xcXFwpJztcbiAgY29uc3QgTkFNRVNQQUNFX1JFID0gJ1thLXpBLVpfXVxcXFx3Kjo6JztcbiAgY29uc3QgVEVNUExBVEVfQVJHVU1FTlRfUkUgPSAnPFtePD5dKz4nO1xuICBjb25zdCBGVU5DVElPTl9UWVBFX1JFID0gJyg/IXN0cnVjdCkoJ1xuICAgICsgREVDTFRZUEVfQVVUT19SRSArICd8J1xuICAgICsgcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKVxuICAgICsgJ1thLXpBLVpfXVxcXFx3KicgKyByZWdleC5vcHRpb25hbChURU1QTEFURV9BUkdVTUVOVF9SRSlcbiAgKyAnKSc7XG5cbiAgY29uc3QgQ1BQX1BSSU1JVElWRV9UWVBFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW2EtelxcXFxkX10qX3RcXFxcYidcbiAgfTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAvbGFuZ3VhZ2UvZXNjYXBlXG4gIC8vIFxcXFwgXFx4IFxceEZGIFxcdTI4MzcgXFx1MDAzMjM3NDcgXFwzNzRcbiAgY29uc3QgQ0hBUkFDVEVSX0VTQ0FQRVMgPSAnXFxcXFxcXFwoeFswLTlBLUZhLWZdezJ9fHVbMC05QS1GYS1mXXs0LDh9fFswLTddezN9fFxcXFxTKSc7XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyh1OD98VXxMKT9cIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVfEwpP1xcJygnICsgQ0hBUkFDVEVSX0VTQ0FQRVMgKyAnfC4pJyxcbiAgICAgICAgZW5kOiAnXFwnJyxcbiAgICAgICAgaWxsZWdhbDogJy4nXG4gICAgICB9LFxuICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgIGJlZ2luOiAvKD86dTg/fFV8TCk/UlwiKFteKClcXFxcIF17MCwxNn0pXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpKFteKClcXFxcIF17MCwxNn0pXCIvXG4gICAgICB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIEZsb2F0aW5nLXBvaW50IGxpdGVyYWwuXG4gICAgICB7IGJlZ2luOlxuICAgICAgICBcIlsrLV0/KD86XCIgLy8gTGVhZGluZyBzaWduLlxuICAgICAgICAgIC8vIERlY2ltYWwuXG4gICAgICAgICAgKyBcIig/OlwiXG4gICAgICAgICAgICArXCJbMC05XSg/Oic/WzAtOV0pKlxcXFwuKD86WzAtOV0oPzonP1swLTldKSopP1wiXG4gICAgICAgICAgICArIFwifFxcXFwuWzAtOV0oPzonP1swLTldKSpcIlxuICAgICAgICAgICsgXCIpKD86W0VlXVsrLV0/WzAtOV0oPzonP1swLTldKSopP1wiXG4gICAgICAgICAgKyBcInxbMC05XSg/Oic/WzAtOV0pKltFZV1bKy1dP1swLTldKD86Jz9bMC05XSkqXCJcbiAgICAgICAgICAvLyBIZXhhZGVjaW1hbC5cbiAgICAgICAgICArIFwifDBbWHhdKD86XCJcbiAgICAgICAgICAgICtcIlswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqKD86XFxcXC4oPzpbMC05QS1GYS1mXSg/Oic/WzAtOUEtRmEtZl0pKik/KT9cIlxuICAgICAgICAgICAgKyBcInxcXFxcLlswLTlBLUZhLWZdKD86Jz9bMC05QS1GYS1mXSkqXCJcbiAgICAgICAgICArIFwiKVtQcF1bKy1dP1swLTldKD86Jz9bMC05XSkqXCJcbiAgICAgICAgKyBcIikoPzpcIiAvLyBMaXRlcmFsIHN1ZmZpeGVzLlxuICAgICAgICAgICsgXCJbRmZdKD86MTZ8MzJ8NjR8MTI4KT9cIlxuICAgICAgICAgICsgXCJ8KEJGfGJmKTE2XCJcbiAgICAgICAgICArIFwifFtMbF1cIlxuICAgICAgICAgICsgXCJ8XCIgLy8gTGl0ZXJhbCBzdWZmaXggaXMgb3B0aW9uYWwuXG4gICAgICAgICsgXCIpXCJcbiAgICAgIH0sXG4gICAgICAvLyBJbnRlZ2VyIGxpdGVyYWwuXG4gICAgICB7IGJlZ2luOlxuICAgICAgICBcIlsrLV0/XFxcXGIoPzpcIiAvLyBMZWFkaW5nIHNpZ24uXG4gICAgICAgICAgKyBcIjBbQmJdWzAxXSg/Oic/WzAxXSkqXCIgLy8gQmluYXJ5LlxuICAgICAgICAgICsgXCJ8MFtYeF1bMC05QS1GYS1mXSg/Oic/WzAtOUEtRmEtZl0pKlwiIC8vIEhleGFkZWNpbWFsLlxuICAgICAgICAgICsgXCJ8MCg/Oic/WzAtN10pKlwiIC8vIE9jdGFsIG9yIGp1c3QgYSBsb25lIHplcm8uXG4gICAgICAgICAgKyBcInxbMS05XSg/Oic/WzAtOV0pKlwiIC8vIERlY2ltYWwuXG4gICAgICAgICsgXCIpKD86XCIgLy8gTGl0ZXJhbCBzdWZmaXhlcy5cbiAgICAgICAgICArIFwiW1V1XSg/OkxMP3xsbD8pXCJcbiAgICAgICAgICArIFwifFtVdV1bWnpdP1wiXG4gICAgICAgICAgKyBcInwoPzpMTD98bGw/KVtVdV0/XCJcbiAgICAgICAgICArIFwifFtael1bVXVdXCJcbiAgICAgICAgICArIFwifFwiIC8vIExpdGVyYWwgc3VmZml4IGlzIG9wdGlvbmFsLlxuICAgICAgICArIFwiKVwiXG4gICAgICAgIC8vIE5vdGU6IHRoZXJlIGFyZSB1c2VyLWRlZmluZWQgbGl0ZXJhbCBzdWZmaXhlcyB0b28sIGJ1dCBwZXJoYXBzIGhhdmluZyB0aGUgY3VzdG9tIHN1ZmZpeCBub3QgcGFydCBvZiB0aGVcbiAgICAgICAgLy8gbGl0ZXJhbCBoaWdobGlnaHQgYWN0dWFsbHkgbWFrZXMgaXQgc3RhbmQgb3V0IG1vcmUuXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC8jXFxzKlthLXpdK1xcYi8sXG4gICAgZW5kOiAvJC8sXG4gICAga2V5d29yZHM6IHsga2V5d29yZDpcbiAgICAgICAgJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lICdcbiAgICAgICAgKyAncHJhZ21hIF9QcmFnbWEgaWZkZWYgaWZuZGVmIGluY2x1ZGUnIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5pbmhlcml0KFNUUklOR1MsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC88Lio/Pi9cbiAgICAgIH0sXG4gICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBUSVRMRV9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICBiZWdpbjogcmVnZXgub3B0aW9uYWwoTkFNRVNQQUNFX1JFKSArIGhsanMuSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgRlVOQ1RJT05fVElUTEUgPSByZWdleC5vcHRpb25hbChOQU1FU1BBQ0VfUkUpICsgaGxqcy5JREVOVF9SRSArICdcXFxccypcXFxcKCc7XG5cbiAgLy8gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2tleXdvcmRcbiAgY29uc3QgUkVTRVJWRURfS0VZV09SRFMgPSBbXG4gICAgJ2FsaWduYXMnLFxuICAgICdhbGlnbm9mJyxcbiAgICAnYW5kJyxcbiAgICAnYW5kX2VxJyxcbiAgICAnYXNtJyxcbiAgICAnYXRvbWljX2NhbmNlbCcsXG4gICAgJ2F0b21pY19jb21taXQnLFxuICAgICdhdG9taWNfbm9leGNlcHQnLFxuICAgICdhdXRvJyxcbiAgICAnYml0YW5kJyxcbiAgICAnYml0b3InLFxuICAgICdicmVhaycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29fYXdhaXQnLFxuICAgICdjb19yZXR1cm4nLFxuICAgICdjb195aWVsZCcsXG4gICAgJ2NvbXBsJyxcbiAgICAnY29uY2VwdCcsXG4gICAgJ2NvbnN0X2Nhc3R8MTAnLFxuICAgICdjb25zdGV2YWwnLFxuICAgICdjb25zdGV4cHInLFxuICAgICdjb25zdGluaXQnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RlY2x0eXBlJyxcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2RlbGV0ZScsXG4gICAgJ2RvJyxcbiAgICAnZHluYW1pY19jYXN0fDEwJyxcbiAgICAnZWxzZScsXG4gICAgJ2VudW0nLFxuICAgICdleHBsaWNpdCcsXG4gICAgJ2V4cG9ydCcsXG4gICAgJ2V4dGVybicsXG4gICAgJ2ZhbHNlJyxcbiAgICAnZmluYWwnLFxuICAgICdmb3InLFxuICAgICdmcmllbmQnLFxuICAgICdnb3RvJyxcbiAgICAnaWYnLFxuICAgICdpbXBvcnQnLFxuICAgICdpbmxpbmUnLFxuICAgICdtb2R1bGUnLFxuICAgICdtdXRhYmxlJyxcbiAgICAnbmFtZXNwYWNlJyxcbiAgICAnbmV3JyxcbiAgICAnbm9leGNlcHQnLFxuICAgICdub3QnLFxuICAgICdub3RfZXEnLFxuICAgICdudWxscHRyJyxcbiAgICAnb3BlcmF0b3InLFxuICAgICdvcicsXG4gICAgJ29yX2VxJyxcbiAgICAnb3ZlcnJpZGUnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAncHVibGljJyxcbiAgICAncmVmbGV4cHInLFxuICAgICdyZWdpc3RlcicsXG4gICAgJ3JlaW50ZXJwcmV0X2Nhc3R8MTAnLFxuICAgICdyZXF1aXJlcycsXG4gICAgJ3JldHVybicsXG4gICAgJ3NpemVvZicsXG4gICAgJ3N0YXRpY19hc3NlcnQnLFxuICAgICdzdGF0aWNfY2FzdHwxMCcsXG4gICAgJ3N0cnVjdCcsXG4gICAgJ3N3aXRjaCcsXG4gICAgJ3N5bmNocm9uaXplZCcsXG4gICAgJ3RlbXBsYXRlJyxcbiAgICAndGhpcycsXG4gICAgJ3RocmVhZF9sb2NhbCcsXG4gICAgJ3Rocm93JyxcbiAgICAndHJhbnNhY3Rpb25fc2FmZScsXG4gICAgJ3RyYW5zYWN0aW9uX3NhZmVfZHluYW1pYycsXG4gICAgJ3RydWUnLFxuICAgICd0cnknLFxuICAgICd0eXBlZGVmJyxcbiAgICAndHlwZWlkJyxcbiAgICAndHlwZW5hbWUnLFxuICAgICd1bmlvbicsXG4gICAgJ3VzaW5nJyxcbiAgICAndmlydHVhbCcsXG4gICAgJ3ZvbGF0aWxlJyxcbiAgICAnd2hpbGUnLFxuICAgICd4b3InLFxuICAgICd4b3JfZXEnXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9lbi5jcHByZWZlcmVuY2UuY29tL3cvY3BwL2tleXdvcmRcbiAgY29uc3QgUkVTRVJWRURfVFlQRVMgPSBbXG4gICAgJ2Jvb2wnLFxuICAgICdjaGFyJyxcbiAgICAnY2hhcjE2X3QnLFxuICAgICdjaGFyMzJfdCcsXG4gICAgJ2NoYXI4X3QnLFxuICAgICdkb3VibGUnLFxuICAgICdmbG9hdCcsXG4gICAgJ2ludCcsXG4gICAgJ2xvbmcnLFxuICAgICdzaG9ydCcsXG4gICAgJ3ZvaWQnLFxuICAgICd3Y2hhcl90JyxcbiAgICAndW5zaWduZWQnLFxuICAgICdzaWduZWQnLFxuICAgICdjb25zdCcsXG4gICAgJ3N0YXRpYydcbiAgXTtcblxuICBjb25zdCBUWVBFX0hJTlRTID0gW1xuICAgICdhbnknLFxuICAgICdhdXRvX3B0cicsXG4gICAgJ2JhcnJpZXInLFxuICAgICdiaW5hcnlfc2VtYXBob3JlJyxcbiAgICAnYml0c2V0JyxcbiAgICAnY29tcGxleCcsXG4gICAgJ2NvbmRpdGlvbl92YXJpYWJsZScsXG4gICAgJ2NvbmRpdGlvbl92YXJpYWJsZV9hbnknLFxuICAgICdjb3VudGluZ19zZW1hcGhvcmUnLFxuICAgICdkZXF1ZScsXG4gICAgJ2ZhbHNlX3R5cGUnLFxuICAgICdmdXR1cmUnLFxuICAgICdpbWFnaW5hcnknLFxuICAgICdpbml0aWFsaXplcl9saXN0JyxcbiAgICAnaXN0cmluZ3N0cmVhbScsXG4gICAgJ2p0aHJlYWQnLFxuICAgICdsYXRjaCcsXG4gICAgJ2xvY2tfZ3VhcmQnLFxuICAgICdtdWx0aW1hcCcsXG4gICAgJ211bHRpc2V0JyxcbiAgICAnbXV0ZXgnLFxuICAgICdvcHRpb25hbCcsXG4gICAgJ29zdHJpbmdzdHJlYW0nLFxuICAgICdwYWNrYWdlZF90YXNrJyxcbiAgICAncGFpcicsXG4gICAgJ3Byb21pc2UnLFxuICAgICdwcmlvcml0eV9xdWV1ZScsXG4gICAgJ3F1ZXVlJyxcbiAgICAncmVjdXJzaXZlX211dGV4JyxcbiAgICAncmVjdXJzaXZlX3RpbWVkX211dGV4JyxcbiAgICAnc2NvcGVkX2xvY2snLFxuICAgICdzZXQnLFxuICAgICdzaGFyZWRfZnV0dXJlJyxcbiAgICAnc2hhcmVkX2xvY2snLFxuICAgICdzaGFyZWRfbXV0ZXgnLFxuICAgICdzaGFyZWRfdGltZWRfbXV0ZXgnLFxuICAgICdzaGFyZWRfcHRyJyxcbiAgICAnc3RhY2snLFxuICAgICdzdHJpbmdfdmlldycsXG4gICAgJ3N0cmluZ3N0cmVhbScsXG4gICAgJ3RpbWVkX211dGV4JyxcbiAgICAndGhyZWFkJyxcbiAgICAndHJ1ZV90eXBlJyxcbiAgICAndHVwbGUnLFxuICAgICd1bmlxdWVfbG9jaycsXG4gICAgJ3VuaXF1ZV9wdHInLFxuICAgICd1bm9yZGVyZWRfbWFwJyxcbiAgICAndW5vcmRlcmVkX211bHRpbWFwJyxcbiAgICAndW5vcmRlcmVkX211bHRpc2V0JyxcbiAgICAndW5vcmRlcmVkX3NldCcsXG4gICAgJ3ZhcmlhbnQnLFxuICAgICd2ZWN0b3InLFxuICAgICd3ZWFrX3B0cicsXG4gICAgJ3dzdHJpbmcnLFxuICAgICd3c3RyaW5nX3ZpZXcnXG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05fSElOVFMgPSBbXG4gICAgJ2Fib3J0JyxcbiAgICAnYWJzJyxcbiAgICAnYWNvcycsXG4gICAgJ2FwcGx5JyxcbiAgICAnYXNfY29uc3QnLFxuICAgICdhc2luJyxcbiAgICAnYXRhbicsXG4gICAgJ2F0YW4yJyxcbiAgICAnY2FsbG9jJyxcbiAgICAnY2VpbCcsXG4gICAgJ2NlcnInLFxuICAgICdjaW4nLFxuICAgICdjbG9nJyxcbiAgICAnY29zJyxcbiAgICAnY29zaCcsXG4gICAgJ2NvdXQnLFxuICAgICdkZWNsdmFsJyxcbiAgICAnZW5kbCcsXG4gICAgJ2V4Y2hhbmdlJyxcbiAgICAnZXhpdCcsXG4gICAgJ2V4cCcsXG4gICAgJ2ZhYnMnLFxuICAgICdmbG9vcicsXG4gICAgJ2Ztb2QnLFxuICAgICdmb3J3YXJkJyxcbiAgICAnZnByaW50ZicsXG4gICAgJ2ZwdXRzJyxcbiAgICAnZnJlZScsXG4gICAgJ2ZyZXhwJyxcbiAgICAnZnNjYW5mJyxcbiAgICAnZnV0dXJlJyxcbiAgICAnaW52b2tlJyxcbiAgICAnaXNhbG51bScsXG4gICAgJ2lzYWxwaGEnLFxuICAgICdpc2NudHJsJyxcbiAgICAnaXNkaWdpdCcsXG4gICAgJ2lzZ3JhcGgnLFxuICAgICdpc2xvd2VyJyxcbiAgICAnaXNwcmludCcsXG4gICAgJ2lzcHVuY3QnLFxuICAgICdpc3NwYWNlJyxcbiAgICAnaXN1cHBlcicsXG4gICAgJ2lzeGRpZ2l0JyxcbiAgICAnbGFicycsXG4gICAgJ2xhdW5kZXInLFxuICAgICdsZGV4cCcsXG4gICAgJ2xvZycsXG4gICAgJ2xvZzEwJyxcbiAgICAnbWFrZV9wYWlyJyxcbiAgICAnbWFrZV9zaGFyZWQnLFxuICAgICdtYWtlX3NoYXJlZF9mb3Jfb3ZlcndyaXRlJyxcbiAgICAnbWFrZV90dXBsZScsXG4gICAgJ21ha2VfdW5pcXVlJyxcbiAgICAnbWFsbG9jJyxcbiAgICAnbWVtY2hyJyxcbiAgICAnbWVtY21wJyxcbiAgICAnbWVtY3B5JyxcbiAgICAnbWVtc2V0JyxcbiAgICAnbW9kZicsXG4gICAgJ21vdmUnLFxuICAgICdwb3cnLFxuICAgICdwcmludGYnLFxuICAgICdwdXRjaGFyJyxcbiAgICAncHV0cycsXG4gICAgJ3JlYWxsb2MnLFxuICAgICdzY2FuZicsXG4gICAgJ3NpbicsXG4gICAgJ3NpbmgnLFxuICAgICdzbnByaW50ZicsXG4gICAgJ3NwcmludGYnLFxuICAgICdzcXJ0JyxcbiAgICAnc3NjYW5mJyxcbiAgICAnc3RkJyxcbiAgICAnc3RkZXJyJyxcbiAgICAnc3RkaW4nLFxuICAgICdzdGRvdXQnLFxuICAgICdzdHJjYXQnLFxuICAgICdzdHJjaHInLFxuICAgICdzdHJjbXAnLFxuICAgICdzdHJjcHknLFxuICAgICdzdHJjc3BuJyxcbiAgICAnc3RybGVuJyxcbiAgICAnc3RybmNhdCcsXG4gICAgJ3N0cm5jbXAnLFxuICAgICdzdHJuY3B5JyxcbiAgICAnc3RycGJyaycsXG4gICAgJ3N0cnJjaHInLFxuICAgICdzdHJzcG4nLFxuICAgICdzdHJzdHInLFxuICAgICdzd2FwJyxcbiAgICAndGFuJyxcbiAgICAndGFuaCcsXG4gICAgJ3Rlcm1pbmF0ZScsXG4gICAgJ3RvX3VuZGVybHlpbmcnLFxuICAgICd0b2xvd2VyJyxcbiAgICAndG91cHBlcicsXG4gICAgJ3ZmcHJpbnRmJyxcbiAgICAndmlzaXQnLFxuICAgICd2cHJpbnRmJyxcbiAgICAndnNwcmludGYnXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgJ05VTEwnLFxuICAgICdmYWxzZScsXG4gICAgJ251bGxvcHQnLFxuICAgICdudWxscHRyJyxcbiAgICAndHJ1ZSdcbiAgXTtcblxuICAvLyBodHRwczovL2VuLmNwcHJlZmVyZW5jZS5jb20vdy9jcHAva2V5d29yZFxuICBjb25zdCBCVUlMVF9JTiA9IFsgJ19QcmFnbWEnIF07XG5cbiAgY29uc3QgQ1BQX0tFWVdPUkRTID0ge1xuICAgIHR5cGU6IFJFU0VSVkVEX1RZUEVTLFxuICAgIGtleXdvcmQ6IFJFU0VSVkVEX0tFWVdPUkRTLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIGJ1aWx0X2luOiBCVUlMVF9JTixcbiAgICBfdHlwZV9oaW50czogVFlQRV9ISU5UU1xuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RJU1BBVENIID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uLmRpc3BhdGNoJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIC8vIE9ubHkgZm9yIHJlbGV2YW5jZSwgbm90IGhpZ2hsaWdodGluZy5cbiAgICAgIF9oaW50OiBGVU5DVElPTl9ISU5UUyB9LFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIC8oPyFkZWNsdHlwZSkvLFxuICAgICAgLyg/IWlmKS8sXG4gICAgICAvKD8hZm9yKS8sXG4gICAgICAvKD8hc3dpdGNoKS8sXG4gICAgICAvKD8hd2hpbGUpLyxcbiAgICAgIGhsanMuSURFTlRfUkUsXG4gICAgICByZWdleC5sb29rYWhlYWQoLyg8W148Pl0rPnwpXFxzKlxcKC8pKVxuICB9O1xuXG4gIGNvbnN0IEVYUFJFU1NJT05fQ09OVEFJTlMgPSBbXG4gICAgRlVOQ1RJT05fRElTUEFUQ0gsXG4gICAgUFJFUFJPQ0VTU09SLFxuICAgIENQUF9QUklNSVRJVkVfVFlQRVMsXG4gICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIE5VTUJFUlMsXG4gICAgU1RSSU5HU1xuICBdO1xuXG4gIGNvbnN0IEVYUFJFU1NJT05fQ09OVEVYVCA9IHtcbiAgICAvLyBUaGlzIG1vZGUgY292ZXJzIGV4cHJlc3Npb24gY29udGV4dCB3aGVyZSB3ZSBjYW4ndCBleHBlY3QgYSBmdW5jdGlvblxuICAgIC8vIGRlZmluaXRpb24gYW5kIHNob3VsZG4ndCBoaWdobGlnaHQgYW55dGhpbmcgdGhhdCBsb29rcyBsaWtlIG9uZTpcbiAgICAvLyBgcmV0dXJuIHNvbWUoKWAsIGBlbHNlIGlmKClgLCBgKHgqc3VtKDEsIDIpKWBcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLz0vLFxuICAgICAgICBlbmQ6IC87L1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93IHJldHVybiBlbHNlJyxcbiAgICAgICAgZW5kOiAvOy9cbiAgICAgIH1cbiAgICBdLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05fQ09OVEFJTlMuY29uY2F0KFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICBjb250YWluczogRVhQUkVTU0lPTl9DT05UQUlOUy5jb25jYXQoWyAnc2VsZicgXSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0pLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFQ0xBUkFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbjogJygnICsgRlVOQ1RJT05fVFlQRV9SRSArICdbXFxcXComXFxcXHNdKykrJyArIEZVTkNUSU9OX1RJVExFLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGVuZDogL1t7Oz1dLyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1teXFx3XFxzXFwqJjo8Pi5dLyxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY29uZnVzZWQgYXMgdGhlIGZ1bmN0aW9uIHRpdGxlXG4gICAgICAgIGJlZ2luOiBERUNMVFlQRV9BVVRPX1JFLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBGVU5DVElPTl9USVRMRSxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbIFRJVExFX01PREUgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gbmVlZGVkIGJlY2F1c2Ugd2UgZG8gbm90IGhhdmUgbG9vay1iZWhpbmQgb24gdGhlIGJlbG93IHJ1bGVcbiAgICAgIC8vIHRvIHByZXZlbnQgaXQgZnJvbSBncmFiYmluZyB0aGUgZmluYWwgOiBpbiBhIDo6IHBhaXJcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC86Oi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIC8vIGluaXRpYWxpemVyc1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzovLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgIE5VTUJFUlNcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGFsbG93IGZvciBtdWx0aXBsZSBkZWNsYXJhdGlvbnMsIGUuZy46XG4gICAgICAvLyBleHRlcm4gdm9pZCBmKGludCksIGcoY2hhcik7XG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgbWF0Y2g6IC8sL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIFNUUklOR1MsXG4gICAgICAgICAgTlVNQkVSUyxcbiAgICAgICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTLFxuICAgICAgICAgIC8vIENvdW50IG1hdGNoaW5nIHBhcmVudGhlc2VzLlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgICAgICBDX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgICAgICBDUFBfUFJJTUlUSVZFX1RZUEVTXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgQ1BQX1BSSU1JVElWRV9UWVBFUyxcbiAgICAgIENfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgUFJFUFJPQ0VTU09SXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0MrKycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2NjJyxcbiAgICAgICdjKysnLFxuICAgICAgJ2grKycsXG4gICAgICAnaHBwJyxcbiAgICAgICdoaCcsXG4gICAgICAnaHh4JyxcbiAgICAgICdjeHgnXG4gICAgXSxcbiAgICBrZXl3b3JkczogQ1BQX0tFWVdPUkRTLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY2xhc3NOYW1lQWxpYXNlczogeyAnZnVuY3Rpb24uZGlzcGF0Y2gnOiAnYnVpbHRfaW4nIH0sXG4gICAgY29udGFpbnM6IFtdLmNvbmNhdChcbiAgICAgIEVYUFJFU1NJT05fQ09OVEVYVCxcbiAgICAgIEZVTkNUSU9OX0RFQ0xBUkFUSU9OLFxuICAgICAgRlVOQ1RJT05fRElTUEFUQ0gsXG4gICAgICBFWFBSRVNTSU9OX0NPTlRBSU5TLFxuICAgICAgW1xuICAgICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICAgIHsgLy8gY29udGFpbmVyczogaWUsIGB2ZWN0b3IgPGludD4gcm9vbXMgKDkpO2BcbiAgICAgICAgICBiZWdpbjogJ1xcXFxiKGRlcXVlfGxpc3R8cXVldWV8cHJpb3JpdHlfcXVldWV8cGFpcnxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXl8dHVwbGV8b3B0aW9uYWx8dmFyaWFudHxmdW5jdGlvbilcXFxccyo8KD8hPCknLFxuICAgICAgICAgIGVuZDogJz4nLFxuICAgICAgICAgIGtleXdvcmRzOiBDUFBfS0VZV09SRFMsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgIENQUF9QUklNSVRJVkVfVFlQRVNcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgICAga2V5d29yZHM6IENQUF9LRVlXT1JEU1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgIC8vIGV4dHJhIGNvbXBsZXhpdHkgdG8gZGVhbCB3aXRoIGBlbnVtIGNsYXNzYCBhbmQgYGVudW0gc3RydWN0YFxuICAgICAgICAgICAgL1xcYig/OmVudW0oPzpcXHMrKD86Y2xhc3N8c3RydWN0KSk/fGNsYXNzfHN0cnVjdHx1bmlvbikvLFxuICAgICAgICAgICAgL1xccysvLFxuICAgICAgICAgICAgL1xcdysvXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAgIDE6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIDM6ICd0aXRsZS5jbGFzcydcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0pXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3BwO1xuIiwgIi8qXG5MYW5ndWFnZTogY3Jtc2hcbkF1dGhvcjogS3Jpc3RvZmZlciBHcm9ubHVuZCA8a2dyb25sdW5kQHN1c2UuY29tPlxuV2Vic2l0ZTogaHR0cDovL2NybXNoLmdpdGh1Yi5pb1xuRGVzY3JpcHRpb246IFN5bnRheCBIaWdobGlnaHRpbmcgZm9yIHRoZSBjcm1zaCBEU0xcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjcm1zaChobGpzKSB7XG4gIGNvbnN0IFJFU09VUkNFUyA9ICdwcmltaXRpdmUgcnNjX3RlbXBsYXRlJztcbiAgY29uc3QgQ09NTUFORFMgPSAnZ3JvdXAgY2xvbmUgbXMgbWFzdGVyIGxvY2F0aW9uIGNvbG9jYXRpb24gb3JkZXIgZmVuY2luZ190b3BvbG9neSAnXG4gICAgICArICdyc2NfdGlja2V0IGFjbF90YXJnZXQgYWNsX2dyb3VwIHVzZXIgcm9sZSAnXG4gICAgICArICd0YWcgeG1sJztcbiAgY29uc3QgUFJPUEVSVFlfU0VUUyA9ICdwcm9wZXJ0eSByc2NfZGVmYXVsdHMgb3BfZGVmYXVsdHMnO1xuICBjb25zdCBLRVlXT1JEUyA9ICdwYXJhbXMgbWV0YSBvcGVyYXRpb25zIG9wIHJ1bGUgYXR0cmlidXRlcyB1dGlsaXphdGlvbic7XG4gIGNvbnN0IE9QRVJBVE9SUyA9ICdyZWFkIHdyaXRlIGRlbnkgZGVmaW5lZCBub3RfZGVmaW5lZCBpbl9yYW5nZSBkYXRlIHNwZWMgaW4gJ1xuICAgICAgKyAncmVmIHJlZmVyZW5jZSBhdHRyaWJ1dGUgdHlwZSB4cGF0aCB2ZXJzaW9uIGFuZCBvciBsdCBndCB0YWcgJ1xuICAgICAgKyAnbHRlIGd0ZSBlcSBuZSBcXFxcJztcbiAgY29uc3QgVFlQRVMgPSAnbnVtYmVyIHN0cmluZyc7XG4gIGNvbnN0IExJVEVSQUxTID0gJ01hc3RlciBTdGFydGVkIFNsYXZlIFN0b3BwZWQgc3RhcnQgcHJvbW90ZSBkZW1vdGUgc3RvcCBtb25pdG9yIHRydWUgZmFsc2UnO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ2NybXNoJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY3JtJyxcbiAgICAgICdwY21rJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMgKyAnICcgKyBPUEVSQVRPUlMgKyAnICcgKyBUWVBFUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25vZGUnLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6ICdcXFxccyooW1xcXFx3Xy1dKzopPycsXG4gICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccypbXFxcXCRcXFxcd19dW1xcXFx3Xy1dKidcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6IFJFU09VUkNFUyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgIGVuZDogJ1xcXFxzKltcXFxcJFxcXFx3X11bXFxcXHdfLV0qJyxcbiAgICAgICAgICBzdGFydHM6IHsgZW5kOiAnXFxcXHMqQD9bXFxcXHdfXVtcXFxcd19cXFxcLjotXSonIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgQ09NTUFORFMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKVxcXFxzKycsXG4gICAgICAgIGtleXdvcmRzOiBDT01NQU5EUyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgIGVuZDogJ1tcXFxcJFxcXFx3X11bXFxcXHdfLV0qJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiBQUk9QRVJUWV9TRVRTLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgICAgICAgZW5kOiAnXFxcXHMqKFtcXFxcd18tXSs6KT8nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcob2NmfHN5c3RlbWR8c2VydmljZXxsc2IpOltcXFxcd186LV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8obXN8c3xofG0pPycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgICAgIGJlZ2luOiAnWy1dPyhpbmZpbml0eXxpbmYpJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IC8oW0EtWmEteiRfI11bXFx3Xy1dKyk9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0YWcnLFxuICAgICAgICBiZWdpbjogJzwvPycsXG4gICAgICAgIGVuZDogJy8/PicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcm1zaDtcbiIsICIvKlxuTGFuZ3VhZ2U6IENyeXN0YWxcbkF1dGhvcjogVFNVWVVTQVRPIEtpdHN1bmUgPG1ha2UuanVzdC5vbkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2NyeXN0YWwtbGFuZy5vcmdcbkNhdGVnb3J5OiBzeXN0ZW1cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjcnlzdGFsKGhsanMpIHtcbiAgY29uc3QgSU5UX1NVRkZJWCA9ICcoXz9bdWldKDh8MTZ8MzJ8NjR8MTI4KSk/JztcbiAgY29uc3QgRkxPQVRfU1VGRklYID0gJyhfP2YoMzJ8NjQpKT8nO1xuICBjb25zdCBDUllTVEFMX0lERU5UX1JFID0gJ1thLXpBLVpfXVxcXFx3KlshPz1dPyc7XG4gIGNvbnN0IENSWVNUQUxfTUVUSE9EX1JFID0gJ1thLXpBLVpfXVxcXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58Wz0hXX58PT09P3w8PT58Wzw+XT0/fFxcXFwqXFxcXCp8Wy0vKyVeJip+fF18Ly98Ly89fCZbLSsqXT0/fCZcXFxcKlxcXFwqfFxcXFxbXFxcXF1bPT9dPyc7XG4gIGNvbnN0IENSWVNUQUxfUEFUSF9SRSA9ICdbQS1aYS16X11cXFxcdyooOjpcXFxcdyspKihcXFxcP3whKT8nO1xuICBjb25zdCBDUllTVEFMX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBDUllTVEFMX0lERU5UX1JFLFxuICAgIGtleXdvcmQ6XG4gICAgICAnYWJzdHJhY3QgYWxpYXMgYW5ub3RhdGlvbiBhcyBhcz8gYXNtIGJlZ2luIGJyZWFrIGNhc2UgY2xhc3MgZGVmIGRvIGVsc2UgZWxzaWYgZW5kIGVuc3VyZSBlbnVtIGV4dGVuZCBmb3IgZnVuIGlmICdcbiAgICAgICsgJ2luY2x1ZGUgaW5zdGFuY2Vfc2l6ZW9mIGlzX2E/IGxpYiBtYWNybyBtb2R1bGUgbmV4dCBuaWw/IG9mIG91dCBwb2ludGVyb2YgcHJpdmF0ZSBwcm90ZWN0ZWQgcmVzY3VlIHJlc3BvbmRzX3RvPyAnXG4gICAgICArICdyZXR1cm4gcmVxdWlyZSBzZWxlY3Qgc2VsZiBzaXplb2Ygc3RydWN0IHN1cGVyIHRoZW4gdHlwZSB0eXBlb2YgdW5pb24gdW5pbml0aWFsaXplZCB1bmxlc3MgdW50aWwgdmVyYmF0aW0gd2hlbiB3aGlsZSB3aXRoIHlpZWxkICdcbiAgICAgICsgJ19fRElSX18gX19FTkRfTElORV9fIF9fRklMRV9fIF9fTElORV9fJyxcbiAgICBsaXRlcmFsOiAnZmFsc2UgbmlsIHRydWUnXG4gIH07XG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFNcbiAgfTtcbiAgLy8gYm9ycm93ZWQgZnJvbSBSdWJ5XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIC8vIG5lZ2F0aXZlLWxvb2sgZm9yd2FyZCBhdHRlbXBzIHRvIHByZXZlbnQgZmFsc2UgbWF0Y2hlcyBsaWtlOlxuICAgIC8vIEBpZGVudEAgb3IgJGlkZW50JCB0aGF0IG1pZ2h0IGluZGljYXRlIHRoaXMgaXMgbm90IHJ1YnkgYXQgYWxsXG4gICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCIsXG4gICAgYmVnaW46ICcoXFxcXCRcXFxcVyl8KChcXFxcJHxAQD8pKFxcXFx3KykpKD89W15AJD9dKScgKyBgKD8hW0EtWmEtel0pKD8hW0AkPyddKWBcbiAgfTtcbiAgY29uc3QgRVhQQU5TSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFx7XFxcXHsnLFxuICAgICAgICBlbmQ6ICdcXFxcfVxcXFx9J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxceyUnLFxuICAgICAgICBlbmQ6ICclXFxcXH0nXG4gICAgICB9XG4gICAgXSxcbiAgICBrZXl3b3JkczogQ1JZU1RBTF9LRVlXT1JEU1xuICB9O1xuXG4gIGZ1bmN0aW9uIHJlY3Vyc2l2ZVBhcmVuKGJlZ2luLCBlbmQpIHtcbiAgICBjb25zdFxuICAgICAgICBjb250YWlucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogYmVnaW4sXG4gICAgICAgICAgICBlbmQ6IGVuZFxuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICBjb250YWluc1swXS5jb250YWlucyA9IGNvbnRhaW5zO1xuICAgIHJldHVybiBjb250YWlucztcbiAgfVxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL2AvLFxuICAgICAgICBlbmQ6IC9gL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/XFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/XFxcXFsnLFxuICAgICAgICBlbmQ6ICdcXFxcXScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXFsnLCAnXFxcXF0nKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/XFxcXHsnLFxuICAgICAgICBlbmQ6IC9cXH0vLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oL1xcey8sIC9cXH0vKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclW1F3aV0/PCcsXG4gICAgICAgIGVuZDogJz4nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJzwnLCAnPicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVbUXdpXT9cXFxcfCcsXG4gICAgICAgIGVuZDogJ1xcXFx8J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC88PC1cXHcrJC8sXG4gICAgICAgIGVuZDogL15cXHMqXFx3KyQvXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgUV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyVxXFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclcVxcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnJXFcXFxceycsXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbigvXFx7LywgL1xcfS8pXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVxPCcsXG4gICAgICAgIGVuZDogJz4nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJzwnLCAnPicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVxXFxcXHwnLFxuICAgICAgICBlbmQ6ICdcXFxcfCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPDwtJ1xcdysnJC8sXG4gICAgICAgIGVuZDogL15cXHMqXFx3KyQvXG4gICAgICB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgUkVHRVhQID0ge1xuICAgIGJlZ2luOiAnKD8hJVxcXFx9KSgnICsgaGxqcy5SRV9TVEFSVEVSU19SRSArICd8XFxcXG58XFxcXGIoY2FzZXxpZnxzZWxlY3R8dW5sZXNzfHVudGlsfHdoZW58d2hpbGUpXFxcXGIpXFxcXHMqJyxcbiAgICBrZXl3b3JkczogJ2Nhc2UgaWYgc2VsZWN0IHVubGVzcyB1bnRpbCB3aGVuIHdoaWxlJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnLy9bYS16XSonLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJy8oPyFcXFxcLyknLFxuICAgICAgICAgICAgZW5kOiAnL1thLXpdKidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBSRUdFWFAyID0ge1xuICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUXG4gICAgXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyVyXFxcXCgnLFxuICAgICAgICBlbmQ6ICdcXFxcKScsXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbignXFxcXCgnLCAnXFxcXCknKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICclclxcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJ1xcXFxbJywgJ1xcXFxdJylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnJXJcXFxceycsXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGNvbnRhaW5zOiByZWN1cnNpdmVQYXJlbigvXFx7LywgL1xcfS8pXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVyPCcsXG4gICAgICAgIGVuZDogJz4nLFxuICAgICAgICBjb250YWluczogcmVjdXJzaXZlUGFyZW4oJzwnLCAnPicpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyVyXFxcXHwnLFxuICAgICAgICBlbmQ6ICdcXFxcfCdcbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBBVFRSSUJVVEUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAXFxcXFsnLFxuICAgIGVuZDogJ1xcXFxdJyxcbiAgICBjb250YWluczogWyBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pIF1cbiAgfTtcbiAgY29uc3QgQ1JZU1RBTF9ERUZBVUxUX0NPTlRBSU5TID0gW1xuICAgIEVYUEFOU0lPTixcbiAgICBTVFJJTkcsXG4gICAgUV9TVFJJTkcsXG4gICAgUkVHRVhQMixcbiAgICBSRUdFWFAsXG4gICAgQVRUUklCVVRFLFxuICAgIFZBUklBQkxFLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIG1vZHVsZSBzdHJ1Y3QnLFxuICAgICAgZW5kOiAnJHw7JyxcbiAgICAgIGlsbGVnYWw6IC89LyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IENSWVNUQUxfUEFUSF9SRSB9KSxcbiAgICAgICAgeyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgaW5oZXJpdGFuY2VcbiAgICAgICAgICBiZWdpbjogJzwnIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdsaWIgZW51bSB1bmlvbicsXG4gICAgICBlbmQ6ICckfDsnLFxuICAgICAgaWxsZWdhbDogLz0vLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogQ1JZU1RBTF9QQVRIX1JFIH0pXG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbktleXdvcmRzOiAnYW5ub3RhdGlvbicsXG4gICAgICBlbmQ6ICckfDsnLFxuICAgICAgaWxsZWdhbDogLz0vLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogQ1JZU1RBTF9QQVRIX1JFIH0pXG4gICAgICBdLFxuICAgICAgcmVsZXZhbmNlOiAyXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICBiZWdpbktleXdvcmRzOiAnZGVmJyxcbiAgICAgIGVuZDogL1xcQlxcYi8sXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7XG4gICAgICAgICAgYmVnaW46IENSWVNUQUxfTUVUSE9EX1JFLFxuICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW4gbWFjcm8nLFxuICAgICAgZW5kOiAvXFxCXFxiLyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHtcbiAgICAgICAgICBiZWdpbjogQ1JZU1RBTF9NRVRIT0RfUkUsXG4gICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMlxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKCF8XFxcXD8pPzonLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgYmVnaW46ICc6JyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIFNUUklORyxcbiAgICAgICAgeyBiZWdpbjogQ1JZU1RBTF9NRVRIT0RfUkUgfVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHsgYmVnaW46ICdcXFxcYjBiKFswMV9dKyknICsgSU5UX1NVRkZJWCB9LFxuICAgICAgICB7IGJlZ2luOiAnXFxcXGIwbyhbMC03X10rKScgKyBJTlRfU1VGRklYIH0sXG4gICAgICAgIHsgYmVnaW46ICdcXFxcYjB4KFtBLUZhLWYwLTlfXSspJyArIElOVF9TVUZGSVggfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxiKFsxLTldWzAtOV9dKlswLTldfFswLTldKShcXFxcLlswLTldWzAtOV9dKik/KFtlRV1fP1stK10/WzAtOV9dKik/JyArIEZMT0FUX1NVRkZJWCArICcoPyFfKScgfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxiKFsxLTldWzAtOV9dKnwwKScgKyBJTlRfU1VGRklYIH1cbiAgICAgIF0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gQ1JZU1RBTF9ERUZBVUxUX0NPTlRBSU5TO1xuICBFWFBBTlNJT04uY29udGFpbnMgPSBDUllTVEFMX0RFRkFVTFRfQ09OVEFJTlMuc2xpY2UoMSk7IC8vIHdpdGhvdXQgRVhQQU5TSU9OXG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ3J5c3RhbCcsXG4gICAgYWxpYXNlczogWyAnY3InIF0sXG4gICAga2V5d29yZHM6IENSWVNUQUxfS0VZV09SRFMsXG4gICAgY29udGFpbnM6IENSWVNUQUxfREVGQVVMVF9DT05UQUlOU1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyeXN0YWw7XG4iLCAiLypcbkxhbmd1YWdlOiBDI1xuQXV0aG9yOiBKYXNvbiBEaWFtb25kIDxqYXNvbkBkaWFtb25kLm5hbWU+XG5Db250cmlidXRvcjogTmljb2xhcyBMTE9CRVJBIDxubGxvYmVyYUBnbWFpbC5jb20+LCBQaWV0ZXIgVmFudG9ycmUgPHBpZXRlcnZhbnRvcnJlQGdtYWlsLmNvbT4sIERhdmlkIFBpbmUgPGRhdmlkLnBpbmVAbWljcm9zb2Z0LmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2RvdG5ldC9jc2hhcnAvXG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY3NoYXJwKGhsanMpIHtcbiAgY29uc3QgQlVJTFRfSU5fS0VZV09SRFMgPSBbXG4gICAgJ2Jvb2wnLFxuICAgICdieXRlJyxcbiAgICAnY2hhcicsXG4gICAgJ2RlY2ltYWwnLFxuICAgICdkZWxlZ2F0ZScsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2R5bmFtaWMnLFxuICAgICdlbnVtJyxcbiAgICAnZmxvYXQnLFxuICAgICdpbnQnLFxuICAgICdsb25nJyxcbiAgICAnbmludCcsXG4gICAgJ251aW50JyxcbiAgICAnb2JqZWN0JyxcbiAgICAnc2J5dGUnLFxuICAgICdzaG9ydCcsXG4gICAgJ3N0cmluZycsXG4gICAgJ3Vsb25nJyxcbiAgICAndWludCcsXG4gICAgJ3VzaG9ydCdcbiAgXTtcbiAgY29uc3QgRlVOQ1RJT05fTU9ESUZJRVJTID0gW1xuICAgICdwdWJsaWMnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAnc3RhdGljJyxcbiAgICAnaW50ZXJuYWwnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdhYnN0cmFjdCcsXG4gICAgJ2FzeW5jJyxcbiAgICAnZXh0ZXJuJyxcbiAgICAnb3ZlcnJpZGUnLFxuICAgICd1bnNhZmUnLFxuICAgICd2aXJ0dWFsJyxcbiAgICAnbmV3JyxcbiAgICAnc2VhbGVkJyxcbiAgICAncGFydGlhbCdcbiAgXTtcbiAgY29uc3QgTElURVJBTF9LRVlXT1JEUyA9IFtcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnbnVsbCcsXG4gICAgJ3RydWUnXG4gIF07XG4gIGNvbnN0IE5PUk1BTF9LRVlXT1JEUyA9IFtcbiAgICAnYWJzdHJhY3QnLFxuICAgICdhcycsXG4gICAgJ2Jhc2UnLFxuICAgICdicmVhaycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29uc3QnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2V2ZW50JyxcbiAgICAnZXhwbGljaXQnLFxuICAgICdleHRlcm4nLFxuICAgICdmaW5hbGx5JyxcbiAgICAnZml4ZWQnLFxuICAgICdmb3InLFxuICAgICdmb3JlYWNoJyxcbiAgICAnZ290bycsXG4gICAgJ2lmJyxcbiAgICAnaW1wbGljaXQnLFxuICAgICdpbicsXG4gICAgJ2ludGVyZmFjZScsXG4gICAgJ2ludGVybmFsJyxcbiAgICAnaXMnLFxuICAgICdsb2NrJyxcbiAgICAnbmFtZXNwYWNlJyxcbiAgICAnbmV3JyxcbiAgICAnb3BlcmF0b3InLFxuICAgICdvdXQnLFxuICAgICdvdmVycmlkZScsXG4gICAgJ3BhcmFtcycsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdwcm90ZWN0ZWQnLFxuICAgICdwdWJsaWMnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3JlY29yZCcsXG4gICAgJ3JlZicsXG4gICAgJ3JldHVybicsXG4gICAgJ3Njb3BlZCcsXG4gICAgJ3NlYWxlZCcsXG4gICAgJ3NpemVvZicsXG4gICAgJ3N0YWNrYWxsb2MnLFxuICAgICdzdGF0aWMnLFxuICAgICdzdHJ1Y3QnLFxuICAgICdzd2l0Y2gnLFxuICAgICd0aGlzJyxcbiAgICAndGhyb3cnLFxuICAgICd0cnknLFxuICAgICd0eXBlb2YnLFxuICAgICd1bmNoZWNrZWQnLFxuICAgICd1bnNhZmUnLFxuICAgICd1c2luZycsXG4gICAgJ3ZpcnR1YWwnLFxuICAgICd2b2lkJyxcbiAgICAndm9sYXRpbGUnLFxuICAgICd3aGlsZSdcbiAgXTtcbiAgY29uc3QgQ09OVEVYVFVBTF9LRVlXT1JEUyA9IFtcbiAgICAnYWRkJyxcbiAgICAnYWxpYXMnLFxuICAgICdhbmQnLFxuICAgICdhc2NlbmRpbmcnLFxuICAgICdhc3luYycsXG4gICAgJ2F3YWl0JyxcbiAgICAnYnknLFxuICAgICdkZXNjZW5kaW5nJyxcbiAgICAnZXF1YWxzJyxcbiAgICAnZnJvbScsXG4gICAgJ2dldCcsXG4gICAgJ2dsb2JhbCcsXG4gICAgJ2dyb3VwJyxcbiAgICAnaW5pdCcsXG4gICAgJ2ludG8nLFxuICAgICdqb2luJyxcbiAgICAnbGV0JyxcbiAgICAnbmFtZW9mJyxcbiAgICAnbm90JyxcbiAgICAnbm90bnVsbCcsXG4gICAgJ29uJyxcbiAgICAnb3InLFxuICAgICdvcmRlcmJ5JyxcbiAgICAncGFydGlhbCcsXG4gICAgJ3JlbW92ZScsXG4gICAgJ3NlbGVjdCcsXG4gICAgJ3NldCcsXG4gICAgJ3VubWFuYWdlZCcsXG4gICAgJ3ZhbHVlfDAnLFxuICAgICd2YXInLFxuICAgICd3aGVuJyxcbiAgICAnd2hlcmUnLFxuICAgICd3aXRoJyxcbiAgICAneWllbGQnXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogTk9STUFMX0tFWVdPUkRTLmNvbmNhdChDT05URVhUVUFMX0tFWVdPUkRTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5fS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTF9LRVlXT1JEU1xuICB9O1xuICBjb25zdCBUSVRMRV9NT0RFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogJ1thLXpBLVpdKFxcXFwuP1xcXFx3KSonIH0pO1xuICBjb25zdCBOVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdcXFxcYigwYlswMVxcJ10rKScgfSxcbiAgICAgIHsgYmVnaW46ICcoLT8pXFxcXGIoW1xcXFxkXFwnXSsoXFxcXC5bXFxcXGRcXCddKik/fFxcXFwuW1xcXFxkXFwnXSspKHV8VXxsfEx8dWx8VUx8ZnxGfGJ8QiknIH0sXG4gICAgICB7IGJlZ2luOiAnKC0/KShcXFxcYjBbeFhdW2EtZkEtRjAtOVxcJ10rfChcXFxcYltcXFxcZFxcJ10rKFxcXFwuW1xcXFxkXFwnXSopP3xcXFxcLltcXFxcZFxcJ10rKShbZUVdWy0rXT9bXFxcXGRcXCddKyk/KScgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFJBV19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1wiXCJcIihcIiopKD8hXCIpKC58XFxuKSo/XCJcIlwiXFwxLyxcbiAgICByZWxldmFuY2U6IDFcbiAgfTtcbiAgY29uc3QgVkVSQkFUSU1fU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdAXCInLFxuICAgIGVuZDogJ1wiJyxcbiAgICBjb250YWluczogWyB7IGJlZ2luOiAnXCJcIicgfSBdXG4gIH07XG4gIGNvbnN0IFZFUkJBVElNX1NUUklOR19OT19MRiA9IGhsanMuaW5oZXJpdChWRVJCQVRJTV9TVFJJTkcsIHsgaWxsZWdhbDogL1xcbi8gfSk7XG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgU1VCU1RfTk9fTEYgPSBobGpzLmluaGVyaXQoU1VCU1QsIHsgaWxsZWdhbDogL1xcbi8gfSk7XG4gIGNvbnN0IElOVEVSUE9MQVRFRF9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJFwiLyxcbiAgICBlbmQ6ICdcIicsXG4gICAgaWxsZWdhbDogL1xcbi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgYmVnaW46IC9cXHtcXHsvIH0sXG4gICAgICB7IGJlZ2luOiAvXFx9XFx9LyB9LFxuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RfTk9fTEZcbiAgICBdXG4gIH07XG4gIGNvbnN0IElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJEBcIi8sXG4gICAgZW5kOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luOiAvXFx7XFx7LyB9LFxuICAgICAgeyBiZWdpbjogL1xcfVxcfS8gfSxcbiAgICAgIHsgYmVnaW46ICdcIlwiJyB9LFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkdfTk9fTEYgPSBobGpzLmluaGVyaXQoSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORywge1xuICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7IGJlZ2luOiAvXFx7XFx7LyB9LFxuICAgICAgeyBiZWdpbjogL1xcfVxcfS8gfSxcbiAgICAgIHsgYmVnaW46ICdcIlwiJyB9LFxuICAgICAgU1VCU1RfTk9fTEZcbiAgICBdXG4gIH0pO1xuICBTVUJTVC5jb250YWlucyA9IFtcbiAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgIElOVEVSUE9MQVRFRF9TVFJJTkcsXG4gICAgVkVSQkFUSU1fU1RSSU5HLFxuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIE5VTUJFUlMsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICBdO1xuICBTVUJTVF9OT19MRi5jb250YWlucyA9IFtcbiAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HX05PX0xGLFxuICAgIElOVEVSUE9MQVRFRF9TVFJJTkcsXG4gICAgVkVSQkFUSU1fU1RSSU5HX05PX0xGLFxuICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgIE5VTUJFUlMsXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsIHsgaWxsZWdhbDogL1xcbi8gfSlcbiAgXTtcbiAgY29uc3QgU1RSSU5HID0geyB2YXJpYW50czogW1xuICAgIFJBV19TVFJJTkcsXG4gICAgSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORyxcbiAgICBJTlRFUlBPTEFURURfU1RSSU5HLFxuICAgIFZFUkJBVElNX1NUUklORyxcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICBdIH07XG5cbiAgY29uc3QgR0VORVJJQ19NT0RJRklFUiA9IHtcbiAgICBiZWdpbjogXCI8XCIsXG4gICAgZW5kOiBcIj5cIixcbiAgICBjb250YWluczogW1xuICAgICAgeyBiZWdpbktleXdvcmRzOiBcImluIG91dFwiIH0sXG4gICAgICBUSVRMRV9NT0RFXG4gICAgXVxuICB9O1xuICBjb25zdCBUWVBFX0lERU5UX1JFID0gaGxqcy5JREVOVF9SRSArICcoPCcgKyBobGpzLklERU5UX1JFICsgJyhcXFxccyosXFxcXHMqJyArIGhsanMuSURFTlRfUkUgKyAnKSo+KT8oXFxcXFtcXFxcXSk/JztcbiAgY29uc3QgQVRfSURFTlRJRklFUiA9IHtcbiAgICAvLyBwcmV2ZW50cyBleHByZXNzaW9ucyBsaWtlIGBAY2xhc3NgIGZyb20gaW5jb3JyZWN0IGZsYWdnaW5nXG4gICAgLy8gYGNsYXNzYCBhcyBhIGtleXdvcmRcbiAgICBiZWdpbjogXCJAXCIgKyBobGpzLklERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0MjJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnY3MnLFxuICAgICAgJ2MjJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC86Oi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy8vLycsXG4gICAgICAgICckJyxcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYmVnaW46ICcvLy8nLFxuICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGJlZ2luOiAnPCEtLXwtLT4nIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYmVnaW46ICc8Lz8nLFxuICAgICAgICAgICAgICAgICAgZW5kOiAnPidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdpZiBlbHNlIGVsaWYgZW5kaWYgZGVmaW5lIHVuZGVmIHdhcm5pbmcgZXJyb3IgbGluZSByZWdpb24gZW5kcmVnaW9uIHByYWdtYSBjaGVja3N1bScgfVxuICAgICAgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIE5VTUJFUlMsXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGVuZDogL1t7Oz1dLyxcbiAgICAgICAgaWxsZWdhbDogL1teXFxzOixdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6IFwid2hlcmUgY2xhc3NcIiB9LFxuICAgICAgICAgIFRJVExFX01PREUsXG4gICAgICAgICAgR0VORVJJQ19NT0RJRklFUixcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmFtZXNwYWNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBlbmQ6IC9bezs9XS8sXG4gICAgICAgIGlsbGVnYWw6IC9bXlxcczpdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBUSVRMRV9NT0RFLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdyZWNvcmQnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGVuZDogL1t7Oz1dLyxcbiAgICAgICAgaWxsZWdhbDogL1teXFxzOl0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFRJVExFX01PREUsXG4gICAgICAgICAgR0VORVJJQ19NT0RJRklFUixcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBbQXR0cmlidXRlcyhcIlwiKV1cbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKlxcXFxbKD89W1xcXFx3XSknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICBlbmQ6IC9cIi9cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEV4cHJlc3Npb24ga2V5d29yZHMgcHJldmVudCAna2V5d29yZCBOYW1lKC4uLiknIGZyb20gYmVpbmdcbiAgICAgICAgLy8gcmVjb2duaXplZCBhcyBhIGZ1bmN0aW9uIGRlZmluaXRpb25cbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25ldyByZXR1cm4gdGhyb3cgYXdhaXQgZWxzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJygnICsgVFlQRV9JREVOVF9SRSArICdcXFxccyspKycgKyBobGpzLklERU5UX1JFICsgJ1xcXFxzKig8W149XSs+XFxcXHMqKT9cXFxcKCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9cXHMqW3s7PV0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gcHJldmVudHMgdGhlc2UgZnJvbSBiZWluZyBoaWdobGlnaHRlZCBgdGl0bGVgXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogRlVOQ1RJT05fTU9ESUZJRVJTLmpvaW4oXCIgXCIpLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXFxccyooPFtePV0rPlxcXFxzKik/XFxcXCgnLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLlRJVExFX01PREUsXG4gICAgICAgICAgICAgIEdFTkVSSUNfTU9ESUZJRVJcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXChcXCkvIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBOVU1CRVJTLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgQVRfSURFTlRJRklFUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjc2hhcnA7XG4iLCAiLypcbkxhbmd1YWdlOiBDU1BcbkRlc2NyaXB0aW9uOiBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkZWZpbml0aW9uIGhpZ2hsaWdodGluZ1xuQXV0aG9yOiBUYXJhcyA8b3hkZWZAb3hkZWYuaW5mbz5cbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQ1NQXG5DYXRlZ29yeTogd2ViXG5cbnZpbTogdHM9MiBzdz0yIHN0PTJcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBjc3AoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImJhc2UtdXJpXCIsXG4gICAgXCJjaGlsZC1zcmNcIixcbiAgICBcImNvbm5lY3Qtc3JjXCIsXG4gICAgXCJkZWZhdWx0LXNyY1wiLFxuICAgIFwiZm9udC1zcmNcIixcbiAgICBcImZvcm0tYWN0aW9uXCIsXG4gICAgXCJmcmFtZS1hbmNlc3RvcnNcIixcbiAgICBcImZyYW1lLXNyY1wiLFxuICAgIFwiaW1nLXNyY1wiLFxuICAgIFwibWFuaWZlc3Qtc3JjXCIsXG4gICAgXCJtZWRpYS1zcmNcIixcbiAgICBcIm9iamVjdC1zcmNcIixcbiAgICBcInBsdWdpbi10eXBlc1wiLFxuICAgIFwicmVwb3J0LXVyaVwiLFxuICAgIFwic2FuZGJveFwiLFxuICAgIFwic2NyaXB0LXNyY1wiLFxuICAgIFwic3R5bGUtc3JjXCIsXG4gICAgXCJ0cnVzdGVkLXR5cGVzXCIsXG4gICAgXCJ1bnNhZmUtaGFzaGVzXCIsXG4gICAgXCJ3b3JrZXItc3JjXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQ1NQJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICdbYS16QS1aXVthLXpBLVowLTlfLV0qJyxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogXCInXCIsXG4gICAgICAgIGVuZDogXCInXCJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXkNvbnRlbnQnLFxuICAgICAgICBlbmQ6ICc6JyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjc3A7XG4iLCAiY29uc3QgTU9ERVMgPSAoaGxqcykgPT4ge1xuICByZXR1cm4ge1xuICAgIElNUE9SVEFOVDoge1xuICAgICAgc2NvcGU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICB9LFxuICAgIEJMT0NLX0NPTU1FTlQ6IGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgSEVYQ09MT1I6IHtcbiAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAvIygoWzAtOWEtZkEtRl17Myw0fSl8KChbMC05YS1mQS1GXXsyfSl7Myw0fSkpXFxiL1xuICAgIH0sXG4gICAgRlVOQ1RJT05fRElTUEFUQ0g6IHtcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgYmVnaW46IC9bXFx3LV0rKD89XFwoKS9cbiAgICB9LFxuICAgIEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ3NlbGVjdG9yLWF0dHInLFxuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIGlsbGVnYWw6ICckJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgXVxuICAgIH0sXG4gICAgQ1NTX05VTUJFUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUgKyAnKCcgK1xuICAgICAgICAnJXxlbXxleHxjaHxyZW0nICtcbiAgICAgICAgJ3x2d3x2aHx2bWlufHZtYXgnICtcbiAgICAgICAgJ3xjbXxtbXxpbnxwdHxwY3xweCcgK1xuICAgICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAgICd8c3xtcycgK1xuICAgICAgICAnfEh6fGtIeicgK1xuICAgICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICAgJyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgQ1NTX1ZBUklBQkxFOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYXR0clwiLFxuICAgICAgYmVnaW46IC8tLVtBLVphLXpfXVtBLVphLXowLTlfLV0qL1xuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IEhUTUxfVEFHUyA9IFtcbiAgJ2EnLFxuICAnYWJicicsXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYXVkaW8nLFxuICAnYicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnYnV0dG9uJyxcbiAgJ2NhbnZhcycsXG4gICdjYXB0aW9uJyxcbiAgJ2NpdGUnLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkZWwnLFxuICAnZGV0YWlscycsXG4gICdkZm4nLFxuICAnZGl2JyxcbiAgJ2RsJyxcbiAgJ2R0JyxcbiAgJ2VtJyxcbiAgJ2ZpZWxkc2V0JyxcbiAgJ2ZpZ2NhcHRpb24nLFxuICAnZmlndXJlJyxcbiAgJ2Zvb3RlcicsXG4gICdmb3JtJyxcbiAgJ2gxJyxcbiAgJ2gyJyxcbiAgJ2gzJyxcbiAgJ2g0JyxcbiAgJ2g1JyxcbiAgJ2g2JyxcbiAgJ2hlYWRlcicsXG4gICdoZ3JvdXAnLFxuICAnaHRtbCcsXG4gICdpJyxcbiAgJ2lmcmFtZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAnaW5zJyxcbiAgJ2tiZCcsXG4gICdsYWJlbCcsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbWFpbicsXG4gICdtYXJrJyxcbiAgJ21lbnUnLFxuICAnbmF2JyxcbiAgJ29iamVjdCcsXG4gICdvbCcsXG4gICdvcHRncm91cCcsXG4gICdvcHRpb24nLFxuICAncCcsXG4gICdwaWN0dXJlJyxcbiAgJ3EnLFxuICAncXVvdGUnLFxuICAnc2FtcCcsXG4gICdzZWN0aW9uJyxcbiAgJ3NlbGVjdCcsXG4gICdzb3VyY2UnLFxuICAnc3BhbicsXG4gICdzdHJvbmcnLFxuICAnc3VtbWFyeScsXG4gICdzdXAnLFxuICAndGFibGUnLFxuICAndGJvZHknLFxuICAndGQnLFxuICAndGV4dGFyZWEnLFxuICAndGZvb3QnLFxuICAndGgnLFxuICAndGhlYWQnLFxuICAndGltZScsXG4gICd0cicsXG4gICd1bCcsXG4gICd2YXInLFxuICAndmlkZW8nXG5dO1xuXG5jb25zdCBTVkdfVEFHUyA9IFtcbiAgJ2RlZnMnLFxuICAnZycsXG4gICdtYXJrZXInLFxuICAnbWFzaycsXG4gICdwYXR0ZXJuJyxcbiAgJ3N2ZycsXG4gICdzd2l0Y2gnLFxuICAnc3ltYm9sJyxcbiAgJ2ZlQmxlbmQnLFxuICAnZmVDb2xvck1hdHJpeCcsXG4gICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgJ2ZlQ29tcG9zaXRlJyxcbiAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAnZmVGbG9vZCcsXG4gICdmZUdhdXNzaWFuQmx1cicsXG4gICdmZUltYWdlJyxcbiAgJ2ZlTWVyZ2UnLFxuICAnZmVNb3JwaG9sb2d5JyxcbiAgJ2ZlT2Zmc2V0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2xpbmVhckdyYWRpZW50JyxcbiAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgJ3N0b3AnLFxuICAnY2lyY2xlJyxcbiAgJ2VsbGlwc2UnLFxuICAnaW1hZ2UnLFxuICAnbGluZScsXG4gICdwYXRoJyxcbiAgJ3BvbHlnb24nLFxuICAncG9seWxpbmUnLFxuICAncmVjdCcsXG4gICd0ZXh0JyxcbiAgJ3VzZScsXG4gICd0ZXh0UGF0aCcsXG4gICd0c3BhbicsXG4gICdmb3JlaWduT2JqZWN0JyxcbiAgJ2NsaXBQYXRoJ1xuXTtcblxuY29uc3QgVEFHUyA9IFtcbiAgLi4uSFRNTF9UQUdTLFxuICAuLi5TVkdfVEFHUyxcbl07XG5cbi8vIFNvcnRpbmcsIHRoZW4gcmV2ZXJzaW5nIG1ha2VzIHN1cmUgbG9uZ2VyIGF0dHJpYnV0ZXMvZWxlbWVudHMgbGlrZVxuLy8gYGZvbnQtd2VpZ2h0YCBhcmUgbWF0Y2hlZCBmdWxseSBpbnN0ZWFkIG9mIGdldHRpbmcgZmFsc2UgcG9zaXRpdmVzIG9uIHNheSBgZm9udGBcblxuY29uc3QgTUVESUFfRkVBVFVSRVMgPSBbXG4gICdhbnktaG92ZXInLFxuICAnYW55LXBvaW50ZXInLFxuICAnYXNwZWN0LXJhdGlvJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWdhbXV0JyxcbiAgJ2NvbG9yLWluZGV4JyxcbiAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAnZGV2aWNlLWhlaWdodCcsXG4gICdkZXZpY2Utd2lkdGgnLFxuICAnZGlzcGxheS1tb2RlJyxcbiAgJ2ZvcmNlZC1jb2xvcnMnLFxuICAnZ3JpZCcsXG4gICdoZWlnaHQnLFxuICAnaG92ZXInLFxuICAnaW52ZXJ0ZWQtY29sb3JzJyxcbiAgJ21vbm9jaHJvbWUnLFxuICAnb3JpZW50YXRpb24nLFxuICAnb3ZlcmZsb3ctYmxvY2snLFxuICAnb3ZlcmZsb3ctaW5saW5lJyxcbiAgJ3BvaW50ZXInLFxuICAncHJlZmVycy1jb2xvci1zY2hlbWUnLFxuICAncHJlZmVycy1jb250cmFzdCcsXG4gICdwcmVmZXJzLXJlZHVjZWQtbW90aW9uJyxcbiAgJ3ByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3knLFxuICAncmVzb2x1dGlvbicsXG4gICdzY2FuJyxcbiAgJ3NjcmlwdGluZycsXG4gICd1cGRhdGUnLFxuICAnd2lkdGgnLFxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICAnbWluLXdpZHRoJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21heC1oZWlnaHQnXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tY2xhc3Nlc1xuY29uc3QgUFNFVURPX0NMQVNTRVMgPSBbXG4gICdhY3RpdmUnLFxuICAnYW55LWxpbmsnLFxuICAnYmxhbmsnLFxuICAnY2hlY2tlZCcsXG4gICdjdXJyZW50JyxcbiAgJ2RlZmF1bHQnLFxuICAnZGVmaW5lZCcsXG4gICdkaXInLCAvLyBkaXIoKVxuICAnZGlzYWJsZWQnLFxuICAnZHJvcCcsXG4gICdlbXB0eScsXG4gICdlbmFibGVkJyxcbiAgJ2ZpcnN0JyxcbiAgJ2ZpcnN0LWNoaWxkJyxcbiAgJ2ZpcnN0LW9mLXR5cGUnLFxuICAnZnVsbHNjcmVlbicsXG4gICdmdXR1cmUnLFxuICAnZm9jdXMnLFxuICAnZm9jdXMtdmlzaWJsZScsXG4gICdmb2N1cy13aXRoaW4nLFxuICAnaGFzJywgLy8gaGFzKClcbiAgJ2hvc3QnLCAvLyBob3N0IG9yIGhvc3QoKVxuICAnaG9zdC1jb250ZXh0JywgLy8gaG9zdC1jb250ZXh0KClcbiAgJ2hvdmVyJyxcbiAgJ2luZGV0ZXJtaW5hdGUnLFxuICAnaW4tcmFuZ2UnLFxuICAnaW52YWxpZCcsXG4gICdpcycsIC8vIGlzKClcbiAgJ2xhbmcnLCAvLyBsYW5nKClcbiAgJ2xhc3QtY2hpbGQnLFxuICAnbGFzdC1vZi10eXBlJyxcbiAgJ2xlZnQnLFxuICAnbGluaycsXG4gICdsb2NhbC1saW5rJyxcbiAgJ25vdCcsIC8vIG5vdCgpXG4gICdudGgtY2hpbGQnLCAvLyBudGgtY2hpbGQoKVxuICAnbnRoLWNvbCcsIC8vIG50aC1jb2woKVxuICAnbnRoLWxhc3QtY2hpbGQnLCAvLyBudGgtbGFzdC1jaGlsZCgpXG4gICdudGgtbGFzdC1jb2wnLCAvLyBudGgtbGFzdC1jb2woKVxuICAnbnRoLWxhc3Qtb2YtdHlwZScsIC8vbnRoLWxhc3Qtb2YtdHlwZSgpXG4gICdudGgtb2YtdHlwZScsIC8vbnRoLW9mLXR5cGUoKVxuICAnb25seS1jaGlsZCcsXG4gICdvbmx5LW9mLXR5cGUnLFxuICAnb3B0aW9uYWwnLFxuICAnb3V0LW9mLXJhbmdlJyxcbiAgJ3Bhc3QnLFxuICAncGxhY2Vob2xkZXItc2hvd24nLFxuICAncmVhZC1vbmx5JyxcbiAgJ3JlYWQtd3JpdGUnLFxuICAncmVxdWlyZWQnLFxuICAncmlnaHQnLFxuICAncm9vdCcsXG4gICdzY29wZScsXG4gICd0YXJnZXQnLFxuICAndGFyZ2V0LXdpdGhpbicsXG4gICd1c2VyLWludmFsaWQnLFxuICAndmFsaWQnLFxuICAndmlzaXRlZCcsXG4gICd3aGVyZScgLy8gd2hlcmUoKVxuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWVsZW1lbnRzXG5jb25zdCBQU0VVRE9fRUxFTUVOVFMgPSBbXG4gICdhZnRlcicsXG4gICdiYWNrZHJvcCcsXG4gICdiZWZvcmUnLFxuICAnY3VlJyxcbiAgJ2N1ZS1yZWdpb24nLFxuICAnZmlyc3QtbGV0dGVyJyxcbiAgJ2ZpcnN0LWxpbmUnLFxuICAnZ3JhbW1hci1lcnJvcicsXG4gICdtYXJrZXInLFxuICAncGFydCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdzZWxlY3Rpb24nLFxuICAnc2xvdHRlZCcsXG4gICdzcGVsbGluZy1lcnJvcidcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgJ2FjY2VudC1jb2xvcicsXG4gICdhbGlnbi1jb250ZW50JyxcbiAgJ2FsaWduLWl0ZW1zJyxcbiAgJ2FsaWduLXNlbGYnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgJ2FsbCcsXG4gICdhbmltYXRpb24nLFxuICAnYW5pbWF0aW9uLWRlbGF5JyxcbiAgJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLFxuICAnYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1maWxsLW1vZGUnLFxuICAnYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcsXG4gICdhbmltYXRpb24tbmFtZScsXG4gICdhbmltYXRpb24tcGxheS1zdGF0ZScsXG4gICdhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ2FwcGVhcmFuY2UnLFxuICAnYmFja2ZhY2UtdmlzaWJpbGl0eScsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2JhY2tncm91bmQtYXR0YWNobWVudCcsXG4gICdiYWNrZ3JvdW5kLWJsZW5kLW1vZGUnLFxuICAnYmFja2dyb3VuZC1jbGlwJyxcbiAgJ2JhY2tncm91bmQtY29sb3InLFxuICAnYmFja2dyb3VuZC1pbWFnZScsXG4gICdiYWNrZ3JvdW5kLW9yaWdpbicsXG4gICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgJ2JhY2tncm91bmQtcmVwZWF0JyxcbiAgJ2JhY2tncm91bmQtc2l6ZScsXG4gICdiYXNlbGluZS1zaGlmdCcsXG4gICdibG9jay1zaXplJyxcbiAgJ2JvcmRlcicsXG4gICdib3JkZXItYmxvY2snLFxuICAnYm9yZGVyLWJsb2NrLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0JyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdHlsZScsXG4gICdib3JkZXItYmxvY2std2lkdGgnLFxuICAnYm9yZGVyLWJvdHRvbScsXG4gICdib3JkZXItYm90dG9tLWNvbG9yJyxcbiAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1zdHlsZScsXG4gICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgJ2JvcmRlci1jb2xsYXBzZScsXG4gICdib3JkZXItY29sb3InLFxuICAnYm9yZGVyLWltYWdlJyxcbiAgJ2JvcmRlci1pbWFnZS1vdXRzZXQnLFxuICAnYm9yZGVyLWltYWdlLXJlcGVhdCcsXG4gICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAnYm9yZGVyLWltYWdlLXNvdXJjZScsXG4gICdib3JkZXItaW1hZ2Utd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZScsXG4gICdib3JkZXItaW5saW5lLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXdpZHRoJyxcbiAgJ2JvcmRlci1sZWZ0JyxcbiAgJ2JvcmRlci1sZWZ0LWNvbG9yJyxcbiAgJ2JvcmRlci1sZWZ0LXN0eWxlJyxcbiAgJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgJ2JvcmRlci1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0JyxcbiAgJ2JvcmRlci1lbmQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItZW5kLXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItcmlnaHQtY29sb3InLFxuICAnYm9yZGVyLXJpZ2h0LXN0eWxlJyxcbiAgJ2JvcmRlci1yaWdodC13aWR0aCcsXG4gICdib3JkZXItc3BhY2luZycsXG4gICdib3JkZXItc3RhcnQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1zdHlsZScsXG4gICdib3JkZXItdG9wJyxcbiAgJ2JvcmRlci10b3AtY29sb3InLFxuICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXN0eWxlJyxcbiAgJ2JvcmRlci10b3Atd2lkdGgnLFxuICAnYm9yZGVyLXdpZHRoJyxcbiAgJ2JvdHRvbScsXG4gICdib3gtZGVjb3JhdGlvbi1icmVhaycsXG4gICdib3gtc2hhZG93JyxcbiAgJ2JveC1zaXppbmcnLFxuICAnYnJlYWstYWZ0ZXInLFxuICAnYnJlYWstYmVmb3JlJyxcbiAgJ2JyZWFrLWluc2lkZScsXG4gICdjeCcsXG4gICdjeScsXG4gICdjYXB0aW9uLXNpZGUnLFxuICAnY2FyZXQtY29sb3InLFxuICAnY2xlYXInLFxuICAnY2xpcCcsXG4gICdjbGlwLXBhdGgnLFxuICAnY2xpcC1ydWxlJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgJ2NvbG9yLXByb2ZpbGUnLFxuICAnY29sb3ItcmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXNjaGVtZScsXG4gICdjb2x1bW4tY291bnQnLFxuICAnY29sdW1uLWZpbGwnLFxuICAnY29sdW1uLWdhcCcsXG4gICdjb2x1bW4tcnVsZScsXG4gICdjb2x1bW4tcnVsZS1jb2xvcicsXG4gICdjb2x1bW4tcnVsZS1zdHlsZScsXG4gICdjb2x1bW4tcnVsZS13aWR0aCcsXG4gICdjb2x1bW4tc3BhbicsXG4gICdjb2x1bW4td2lkdGgnLFxuICAnY29sdW1ucycsXG4gICdjb250YWluJyxcbiAgJ2NvbnRlbnQnLFxuICAnY29udGVudC12aXNpYmlsaXR5JyxcbiAgJ2NvdW50ZXItaW5jcmVtZW50JyxcbiAgJ2NvdW50ZXItcmVzZXQnLFxuICAnY3VlJyxcbiAgJ2N1ZS1hZnRlcicsXG4gICdjdWUtYmVmb3JlJyxcbiAgJ2N1cnNvcicsXG4gICdkaXJlY3Rpb24nLFxuICAnZGlzcGxheScsXG4gICdkb21pbmFudC1iYXNlbGluZScsXG4gICdlbXB0eS1jZWxscycsXG4gICdlbmFibGUtYmFja2dyb3VuZCcsXG4gICdmaWxsJyxcbiAgJ2ZpbGwtb3BhY2l0eScsXG4gICdmaWxsLXJ1bGUnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsZXgnLFxuICAnZmxleC1iYXNpcycsXG4gICdmbGV4LWRpcmVjdGlvbicsXG4gICdmbGV4LWZsb3cnLFxuICAnZmxleC1ncm93JyxcbiAgJ2ZsZXgtc2hyaW5rJyxcbiAgJ2ZsZXgtd3JhcCcsXG4gICdmbG9hdCcsXG4gICdmbG93JyxcbiAgJ2Zsb29kLWNvbG9yJyxcbiAgJ2Zsb29kLW9wYWNpdHknLFxuICAnZm9udCcsXG4gICdmb250LWRpc3BsYXknLFxuICAnZm9udC1mYW1pbHknLFxuICAnZm9udC1mZWF0dXJlLXNldHRpbmdzJyxcbiAgJ2ZvbnQta2VybmluZycsXG4gICdmb250LWxhbmd1YWdlLW92ZXJyaWRlJyxcbiAgJ2ZvbnQtc2l6ZScsXG4gICdmb250LXNpemUtYWRqdXN0JyxcbiAgJ2ZvbnQtc21vb3RoaW5nJyxcbiAgJ2ZvbnQtc3RyZXRjaCcsXG4gICdmb250LXN0eWxlJyxcbiAgJ2ZvbnQtc3ludGhlc2lzJyxcbiAgJ2ZvbnQtdmFyaWFudCcsXG4gICdmb250LXZhcmlhbnQtY2FwcycsXG4gICdmb250LXZhcmlhbnQtZWFzdC1hc2lhbicsXG4gICdmb250LXZhcmlhbnQtbGlnYXR1cmVzJyxcbiAgJ2ZvbnQtdmFyaWFudC1udW1lcmljJyxcbiAgJ2ZvbnQtdmFyaWFudC1wb3NpdGlvbicsXG4gICdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycsXG4gICdmb250LXdlaWdodCcsXG4gICdnYXAnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICdncmlkJyxcbiAgJ2dyaWQtYXJlYScsXG4gICdncmlkLWF1dG8tY29sdW1ucycsXG4gICdncmlkLWF1dG8tZmxvdycsXG4gICdncmlkLWF1dG8tcm93cycsXG4gICdncmlkLWNvbHVtbicsXG4gICdncmlkLWNvbHVtbi1lbmQnLFxuICAnZ3JpZC1jb2x1bW4tc3RhcnQnLFxuICAnZ3JpZC1nYXAnLFxuICAnZ3JpZC1yb3cnLFxuICAnZ3JpZC1yb3ctZW5kJyxcbiAgJ2dyaWQtcm93LXN0YXJ0JyxcbiAgJ2dyaWQtdGVtcGxhdGUnLFxuICAnZ3JpZC10ZW1wbGF0ZS1hcmVhcycsXG4gICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1yb3dzJyxcbiAgJ2hhbmdpbmctcHVuY3R1YXRpb24nLFxuICAnaGVpZ2h0JyxcbiAgJ2h5cGhlbnMnLFxuICAnaWNvbicsXG4gICdpbWFnZS1vcmllbnRhdGlvbicsXG4gICdpbWFnZS1yZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVzb2x1dGlvbicsXG4gICdpbWUtbW9kZScsXG4gICdpbmxpbmUtc2l6ZScsXG4gICdpbnNldCcsXG4gICdpbnNldC1ibG9jaycsXG4gICdpbnNldC1ibG9jay1lbmQnLFxuICAnaW5zZXQtYmxvY2stc3RhcnQnLFxuICAnaW5zZXQtaW5saW5lJyxcbiAgJ2luc2V0LWlubGluZS1lbmQnLFxuICAnaW5zZXQtaW5saW5lLXN0YXJ0JyxcbiAgJ2lzb2xhdGlvbicsXG4gICdrZXJuaW5nJyxcbiAgJ2p1c3RpZnktY29udGVudCcsXG4gICdqdXN0aWZ5LWl0ZW1zJyxcbiAgJ2p1c3RpZnktc2VsZicsXG4gICdsZWZ0JyxcbiAgJ2xldHRlci1zcGFjaW5nJyxcbiAgJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgJ2xpbmUtYnJlYWsnLFxuICAnbGluZS1oZWlnaHQnLFxuICAnbGlzdC1zdHlsZScsXG4gICdsaXN0LXN0eWxlLWltYWdlJyxcbiAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nLFxuICAnbGlzdC1zdHlsZS10eXBlJyxcbiAgJ21hcmtlcicsXG4gICdtYXJrZXItZW5kJyxcbiAgJ21hcmtlci1taWQnLFxuICAnbWFya2VyLXN0YXJ0JyxcbiAgJ21hc2snLFxuICAnbWFyZ2luJyxcbiAgJ21hcmdpbi1ibG9jaycsXG4gICdtYXJnaW4tYmxvY2stZW5kJyxcbiAgJ21hcmdpbi1ibG9jay1zdGFydCcsXG4gICdtYXJnaW4tYm90dG9tJyxcbiAgJ21hcmdpbi1pbmxpbmUnLFxuICAnbWFyZ2luLWlubGluZS1lbmQnLFxuICAnbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdtYXJnaW4tbGVmdCcsXG4gICdtYXJnaW4tcmlnaHQnLFxuICAnbWFyZ2luLXRvcCcsXG4gICdtYXJrcycsXG4gICdtYXNrJyxcbiAgJ21hc2stYm9yZGVyJyxcbiAgJ21hc2stYm9yZGVyLW1vZGUnLFxuICAnbWFzay1ib3JkZXItb3V0c2V0JyxcbiAgJ21hc2stYm9yZGVyLXJlcGVhdCcsXG4gICdtYXNrLWJvcmRlci1zbGljZScsXG4gICdtYXNrLWJvcmRlci1zb3VyY2UnLFxuICAnbWFzay1ib3JkZXItd2lkdGgnLFxuICAnbWFzay1jbGlwJyxcbiAgJ21hc2stY29tcG9zaXRlJyxcbiAgJ21hc2staW1hZ2UnLFxuICAnbWFzay1tb2RlJyxcbiAgJ21hc2stb3JpZ2luJyxcbiAgJ21hc2stcG9zaXRpb24nLFxuICAnbWFzay1yZXBlYXQnLFxuICAnbWFzay1zaXplJyxcbiAgJ21hc2stdHlwZScsXG4gICdtYXgtYmxvY2stc2l6ZScsXG4gICdtYXgtaGVpZ2h0JyxcbiAgJ21heC1pbmxpbmUtc2l6ZScsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWJsb2NrLXNpemUnLFxuICAnbWluLWhlaWdodCcsXG4gICdtaW4taW5saW5lLXNpemUnLFxuICAnbWluLXdpZHRoJyxcbiAgJ21peC1ibGVuZC1tb2RlJyxcbiAgJ25hdi1kb3duJyxcbiAgJ25hdi1pbmRleCcsXG4gICduYXYtbGVmdCcsXG4gICduYXYtcmlnaHQnLFxuICAnbmF2LXVwJyxcbiAgJ25vbmUnLFxuICAnbm9ybWFsJyxcbiAgJ29iamVjdC1maXQnLFxuICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgJ29wYWNpdHknLFxuICAnb3JkZXInLFxuICAnb3JwaGFucycsXG4gICdvdXRsaW5lJyxcbiAgJ291dGxpbmUtY29sb3InLFxuICAnb3V0bGluZS1vZmZzZXQnLFxuICAnb3V0bGluZS1zdHlsZScsXG4gICdvdXRsaW5lLXdpZHRoJyxcbiAgJ292ZXJmbG93JyxcbiAgJ292ZXJmbG93LXdyYXAnLFxuICAnb3ZlcmZsb3cteCcsXG4gICdvdmVyZmxvdy15JyxcbiAgJ3BhZGRpbmcnLFxuICAncGFkZGluZy1ibG9jaycsXG4gICdwYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdwYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3BhZGRpbmctYm90dG9tJyxcbiAgJ3BhZGRpbmctaW5saW5lJyxcbiAgJ3BhZGRpbmctaW5saW5lLWVuZCcsXG4gICdwYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdwYWRkaW5nLWxlZnQnLFxuICAncGFkZGluZy1yaWdodCcsXG4gICdwYWRkaW5nLXRvcCcsXG4gICdwYWdlLWJyZWFrLWFmdGVyJyxcbiAgJ3BhZ2UtYnJlYWstYmVmb3JlJyxcbiAgJ3BhZ2UtYnJlYWstaW5zaWRlJyxcbiAgJ3BhdXNlJyxcbiAgJ3BhdXNlLWFmdGVyJyxcbiAgJ3BhdXNlLWJlZm9yZScsXG4gICdwZXJzcGVjdGl2ZScsXG4gICdwZXJzcGVjdGl2ZS1vcmlnaW4nLFxuICAncG9pbnRlci1ldmVudHMnLFxuICAncG9zaXRpb24nLFxuICAncXVvdGVzJyxcbiAgJ3InLFxuICAncmVzaXplJyxcbiAgJ3Jlc3QnLFxuICAncmVzdC1hZnRlcicsXG4gICdyZXN0LWJlZm9yZScsXG4gICdyaWdodCcsXG4gICdyb3RhdGUnLFxuICAncm93LWdhcCcsXG4gICdzY2FsZScsXG4gICdzY3JvbGwtbWFyZ2luJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2snLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWJvdHRvbScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1sZWZ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tcmlnaHQnLFxuICAnc2Nyb2xsLW1hcmdpbi10b3AnLFxuICAnc2Nyb2xsLXBhZGRpbmcnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2snLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJvdHRvbScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctbGVmdCcsXG4gICdzY3JvbGwtcGFkZGluZy1yaWdodCcsXG4gICdzY3JvbGwtcGFkZGluZy10b3AnLFxuICAnc2Nyb2xsLXNuYXAtYWxpZ24nLFxuICAnc2Nyb2xsLXNuYXAtc3RvcCcsXG4gICdzY3JvbGwtc25hcC10eXBlJyxcbiAgJ3Njcm9sbGJhci1jb2xvcicsXG4gICdzY3JvbGxiYXItZ3V0dGVyJyxcbiAgJ3Njcm9sbGJhci13aWR0aCcsXG4gICdzaGFwZS1pbWFnZS10aHJlc2hvbGQnLFxuICAnc2hhcGUtbWFyZ2luJyxcbiAgJ3NoYXBlLW91dHNpZGUnLFxuICAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgJ3N0b3AtY29sb3InLFxuICAnc3RvcC1vcGFjaXR5JyxcbiAgJ3N0cm9rZScsXG4gICdzdHJva2UtZGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgJ3N0cm9rZS1saW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lam9pbicsXG4gICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICdzdHJva2Utb3BhY2l0eScsXG4gICdzdHJva2Utd2lkdGgnLFxuICAnc3BlYWsnLFxuICAnc3BlYWstYXMnLFxuICAnc3JjJywgLy8gQGZvbnQtZmFjZVxuICAndGFiLXNpemUnLFxuICAndGFibGUtbGF5b3V0JyxcbiAgJ3RleHQtYW5jaG9yJyxcbiAgJ3RleHQtYWxpZ24nLFxuICAndGV4dC1hbGlnbi1hbGwnLFxuICAndGV4dC1hbGlnbi1sYXN0JyxcbiAgJ3RleHQtY29tYmluZS11cHJpZ2h0JyxcbiAgJ3RleHQtZGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24tY29sb3InLFxuICAndGV4dC1kZWNvcmF0aW9uLWxpbmUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZScsXG4gICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJyxcbiAgJ3RleHQtZW1waGFzaXMnLFxuICAndGV4dC1lbXBoYXNpcy1jb2xvcicsXG4gICd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJyxcbiAgJ3RleHQtZW1waGFzaXMtc3R5bGUnLFxuICAndGV4dC1pbmRlbnQnLFxuICAndGV4dC1qdXN0aWZ5JyxcbiAgJ3RleHQtb3JpZW50YXRpb24nLFxuICAndGV4dC1vdmVyZmxvdycsXG4gICd0ZXh0LXJlbmRlcmluZycsXG4gICd0ZXh0LXNoYWRvdycsXG4gICd0ZXh0LXRyYW5zZm9ybScsXG4gICd0ZXh0LXVuZGVybGluZS1vZmZzZXQnLFxuICAndGV4dC11bmRlcmxpbmUtcG9zaXRpb24nLFxuICAndG9wJyxcbiAgJ3RyYW5zZm9ybScsXG4gICd0cmFuc2Zvcm0tYm94JyxcbiAgJ3RyYW5zZm9ybS1vcmlnaW4nLFxuICAndHJhbnNmb3JtLXN0eWxlJyxcbiAgJ3RyYW5zaXRpb24nLFxuICAndHJhbnNpdGlvbi1kZWxheScsXG4gICd0cmFuc2l0aW9uLWR1cmF0aW9uJyxcbiAgJ3RyYW5zaXRpb24tcHJvcGVydHknLFxuICAndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAndHJhbnNsYXRlJyxcbiAgJ3VuaWNvZGUtYmlkaScsXG4gICd2ZWN0b3ItZWZmZWN0JyxcbiAgJ3ZlcnRpY2FsLWFsaWduJyxcbiAgJ3Zpc2liaWxpdHknLFxuICAndm9pY2UtYmFsYW5jZScsXG4gICd2b2ljZS1kdXJhdGlvbicsXG4gICd2b2ljZS1mYW1pbHknLFxuICAndm9pY2UtcGl0Y2gnLFxuICAndm9pY2UtcmFuZ2UnLFxuICAndm9pY2UtcmF0ZScsXG4gICd2b2ljZS1zdHJlc3MnLFxuICAndm9pY2Utdm9sdW1lJyxcbiAgJ3doaXRlLXNwYWNlJyxcbiAgJ3dpZG93cycsXG4gICd3aWR0aCcsXG4gICd3aWxsLWNoYW5nZScsXG4gICd3b3JkLWJyZWFrJyxcbiAgJ3dvcmQtc3BhY2luZycsXG4gICd3b3JkLXdyYXAnLFxuICAnd3JpdGluZy1tb2RlJyxcbiAgJ3gnLFxuICAneScsXG4gICd6LWluZGV4J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IENTU1xuQ2F0ZWdvcnk6IGNvbW1vbiwgY3NzLCB3ZWJcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTU1xuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gY3NzKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBtb2RlcyA9IE1PREVTKGhsanMpO1xuICBjb25zdCBWRU5ET1JfUFJFRklYID0geyBiZWdpbjogLy0od2Via2l0fG1venxtc3xvKS0oPz1bYS16XSkvIH07XG4gIGNvbnN0IEFUX01PRElGSUVSUyA9IFwiYW5kIG9yIG5vdCBvbmx5XCI7XG4gIGNvbnN0IEFUX1BST1BFUlRZX1JFID0gL0AtP1xcd1tcXHddKigtXFx3KykqLzsgLy8gQC13ZWJraXQta2V5ZnJhbWVzXG4gIGNvbnN0IElERU5UX1JFID0gJ1thLXpBLVotXVthLXpBLVowLTlfLV0qJztcbiAgY29uc3QgU1RSSU5HUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0NTUycsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvWz18J1xcJF0vLFxuICAgIGtleXdvcmRzOiB7IGtleWZyYW1lUG9zaXRpb246IFwiZnJvbSB0b1wiIH0sXG4gICAgY2xhc3NOYW1lQWxpYXNlczoge1xuICAgICAgLy8gZm9yIHZpc3VhbCBjb250aW51aXR5IHdpdGggYHRhZyB7fWAgYW5kIGJlY2F1c2Ugd2VcbiAgICAgIC8vIGRvbid0IGhhdmUgYSBncmVhdCBjbGFzcyBmb3IgdGhpcz9cbiAgICAgIGtleWZyYW1lUG9zaXRpb246IFwic2VsZWN0b3ItdGFnXCIgfSxcbiAgICBjb250YWluczogW1xuICAgICAgbW9kZXMuQkxPQ0tfQ09NTUVOVCxcbiAgICAgIFZFTkRPUl9QUkVGSVgsXG4gICAgICAvLyB0byByZWNvZ25pemUga2V5ZnJhbWUgNDAlIGV0YyB3aGljaCBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2Ygb3VyXG4gICAgICAvLyBhdHRyaWJ1dGUgdmFsdWUgbW9kZVxuICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1pZCcsXG4gICAgICAgIGJlZ2luOiAvI1tBLVphLXowLTlfLV0rLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1jbGFzcycsXG4gICAgICAgIGJlZ2luOiAnXFxcXC4nICsgSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIG1vZGVzLkFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICc6KCcgKyBQU0VVRE9fQ0xBU1NFUy5qb2luKCd8JykgKyAnKScgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnOig6KT8oJyArIFBTRVVET19FTEVNRU5UUy5qb2luKCd8JykgKyAnKScgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gd2UgbWF5IGFjdHVhbGx5IG5lZWQgdGhpcyAoMTIvMjAyMClcbiAgICAgIC8vIHsgLy8gcHNldWRvLXNlbGVjdG9yIHBhcmFtc1xuICAgICAgLy8gICBiZWdpbjogL1xcKC8sXG4gICAgICAvLyAgIGVuZDogL1xcKS8sXG4gICAgICAvLyAgIGNvbnRhaW5zOiBbIGhsanMuQ1NTX05VTUJFUl9NT0RFIF1cbiAgICAgIC8vIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH0sXG4gICAgICAvLyBhdHRyaWJ1dGUgdmFsdWVzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1s7fXtdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBtb2Rlcy5CTE9DS19DT01NRU5ULFxuICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgIG1vZGVzLklNUE9SVEFOVCxcbiAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgLi4uU1RSSU5HUyxcbiAgICAgICAgICAvLyBuZWVkZWQgdG8gaGlnaGxpZ2h0IHRoZXNlIGFzIHN0cmluZ3MgYW5kIHRvIGF2b2lkIGlzc3VlcyB3aXRoXG4gICAgICAgICAgLy8gaWxsZWdhbCBjaGFyYWN0ZXJzIHRoYXQgbWlnaHQgYmUgaW5zaWRlIHVybHMgdGhhdCB3b3VsZCB0aWdnZXIgdGhlXG4gICAgICAgICAgLy8gbGFuZ3VhZ2VzIGlsbGVnYWwgc3RhY2tcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogLyh1cmx8ZGF0YS11cmkpXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsIC8vIGZyb20ga2V5d29yZHNcbiAgICAgICAgICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOiBcInVybCBkYXRhLXVyaVwiIH0sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICAuLi5TVFJJTkdTLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIC8vIGFueSBjaGFyYWN0ZXIgb3RoZXIgdGhhbiBgKWAgYXMgaW4gYHVybCgpYCB3aWxsIGJlIHRoZSBzdGFydFxuICAgICAgICAgICAgICAgIC8vIG9mIGEgc3RyaW5nLCB3aGljaCBlbmRzIHdpdGggYClgIChmcm9tIHRoZSBwYXJlbnQgbW9kZSlcbiAgICAgICAgICAgICAgICBiZWdpbjogL1teKV0vLFxuICAgICAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IHJlZ2V4Lmxvb2thaGVhZCgvQC8pLFxuICAgICAgICBlbmQ6ICdbeztdJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBpbGxlZ2FsOiAvOi8sIC8vIGJyZWFrIG9uIExlc3MgdmFyaWFibGVzIEB2YXI6IC4uLlxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46IEFUX1BST1BFUlRZX1JFXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xccy8sXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgICAgICAkcGF0dGVybjogL1thLXotXSsvLFxuICAgICAgICAgICAgICBrZXl3b3JkOiBBVF9NT0RJRklFUlMsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZTogTUVESUFfRkVBVFVSRVMuam9pbihcIiBcIilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46IC9bYS16LV0rKD89OikvLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJhdHRyaWJ1dGVcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAuLi5TVFJJTkdTLFxuICAgICAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3NzO1xuIiwgIi8qXG5MYW5ndWFnZTogRFxuQXV0aG9yOiBBbGVrc2FuZGFyIFJ1emljaWMgPGFsZWtzYW5kYXJAcnV6aWNpYy5pbmZvPlxuRGVzY3JpcHRpb246IEQgaXMgYSBsYW5ndWFnZSB3aXRoIEMtbGlrZSBzeW50YXggYW5kIHN0YXRpYyB0eXBpbmcuIEl0IHByYWdtYXRpY2FsbHkgY29tYmluZXMgZWZmaWNpZW5jeSwgY29udHJvbCwgYW5kIG1vZGVsaW5nIHBvd2VyLCB3aXRoIHNhZmV0eSBhbmQgcHJvZ3JhbW1lciBwcm9kdWN0aXZpdHkuXG5WZXJzaW9uOiAxLjBhXG5XZWJzaXRlOiBodHRwczovL2RsYW5nLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuRGF0ZTogMjAxMi0wNC0wOFxuKi9cblxuLyoqXG4gKiBLbm93biBpc3N1ZXM6XG4gKlxuICogLSBpbnZhbGlkIGhleCBzdHJpbmcgbGl0ZXJhbHMgd2lsbCBiZSByZWNvZ25pemVkIGFzIGEgZG91YmxlIHF1b3RlZCBzdHJpbmdzXG4gKiAgIGJ1dCAneCcgYXQgdGhlIGJlZ2lubmluZyBvZiBzdHJpbmcgd2lsbCBub3QgYmUgbWF0Y2hlZFxuICpcbiAqIC0gZGVsaW1pdGVkIHN0cmluZyBsaXRlcmFscyBhcmUgbm90IGNoZWNrZWQgZm9yIG1hdGNoaW5nIGVuZCBkZWxpbWl0ZXJcbiAqICAgKG5vdCBwb3NzaWJsZSB0byBkbyB3aXRoIGpzIHJlZ2V4cClcbiAqXG4gKiAtIGNvbnRlbnQgb2YgdG9rZW4gc3RyaW5nIGlzIGNvbG9yZWQgYXMgYSBzdHJpbmcgKGkuZS4gbm8ga2V5d29yZCBjb2xvcmluZyBpbnNpZGUgYSB0b2tlbiBzdHJpbmcpXG4gKiAgIGFsc28sIGNvbnRlbnQgb2YgdG9rZW4gc3RyaW5nIGlzIG5vdCB2YWxpZGF0ZWQgdG8gY29udGFpbiBvbmx5IHZhbGlkIEQgdG9rZW5zXG4gKlxuICogLSBzcGVjaWFsIHRva2VuIHNlcXVlbmNlIHJ1bGUgaXMgbm90IHN0cmljdGx5IGZvbGxvd2luZyBEIGdyYW1tYXIgKGFueXRoaW5nIGZvbGxvd2luZyAjbGluZVxuICogICB1cCB0byB0aGUgZW5kIG9mIGxpbmUgaXMgbWF0Y2hlZCBhcyBzcGVjaWFsIHRva2VuIHNlcXVlbmNlKVxuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkKGhsanMpIHtcbiAgLyoqXG4gICAqIExhbmd1YWdlIGtleXdvcmRzXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAga2V5d29yZDpcbiAgICAgICdhYnN0cmFjdCBhbGlhcyBhbGlnbiBhc20gYXNzZXJ0IGF1dG8gYm9keSBicmVhayBieXRlIGNhc2UgY2FzdCBjYXRjaCBjbGFzcyAnXG4gICAgICArICdjb25zdCBjb250aW51ZSBkZWJ1ZyBkZWZhdWx0IGRlbGV0ZSBkZXByZWNhdGVkIGRvIGVsc2UgZW51bSBleHBvcnQgZXh0ZXJuIGZpbmFsICdcbiAgICAgICsgJ2ZpbmFsbHkgZm9yIGZvcmVhY2ggZm9yZWFjaF9yZXZlcnNlfDEwIGdvdG8gaWYgaW1tdXRhYmxlIGltcG9ydCBpbiBpbm91dCBpbnQgJ1xuICAgICAgKyAnaW50ZXJmYWNlIGludmFyaWFudCBpcyBsYXp5IG1hY3JvIG1peGluIG1vZHVsZSBuZXcgbm90aHJvdyBvdXQgb3ZlcnJpZGUgcGFja2FnZSAnXG4gICAgICArICdwcmFnbWEgcHJpdmF0ZSBwcm90ZWN0ZWQgcHVibGljIHB1cmUgcmVmIHJldHVybiBzY29wZSBzaGFyZWQgc3RhdGljIHN0cnVjdCAnXG4gICAgICArICdzdXBlciBzd2l0Y2ggc3luY2hyb25pemVkIHRlbXBsYXRlIHRoaXMgdGhyb3cgdHJ5IHR5cGVkZWYgdHlwZWlkIHR5cGVvZiB1bmlvbiAnXG4gICAgICArICd1bml0dGVzdCB2ZXJzaW9uIHZvaWQgdm9sYXRpbGUgd2hpbGUgd2l0aCBfX0ZJTEVfXyBfX0xJTkVfXyBfX2dzaGFyZWR8MTAgJ1xuICAgICAgKyAnX190aHJlYWQgX190cmFpdHMgX19EQVRFX18gX19FT0ZfXyBfX1RJTUVfXyBfX1RJTUVTVEFNUF9fIF9fVkVORE9SX18gX19WRVJTSU9OX18nLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ2Jvb2wgY2RvdWJsZSBjZW50IGNmbG9hdCBjaGFyIGNyZWFsIGRjaGFyIGRlbGVnYXRlIGRvdWJsZSBkc3RyaW5nIGZsb2F0IGZ1bmN0aW9uICdcbiAgICAgICsgJ2lkb3VibGUgaWZsb2F0IGlyZWFsIGxvbmcgcmVhbCBzaG9ydCBzdHJpbmcgdWJ5dGUgdWNlbnQgdWludCB1bG9uZyB1c2hvcnQgd2NoYXIgJ1xuICAgICAgKyAnd3N0cmluZycsXG4gICAgbGl0ZXJhbDpcbiAgICAgICdmYWxzZSBudWxsIHRydWUnXG4gIH07XG5cbiAgLyoqXG4gICAqIE51bWJlciBsaXRlcmFsIHJlZ2V4cHNcbiAgICpcbiAgICogQHR5cGUge1N0cmluZ31cbiAgICovXG4gIGNvbnN0IGRlY2ltYWxfaW50ZWdlcl9yZSA9ICcoMHxbMS05XVtcXFxcZF9dKiknO1xuICBjb25zdCBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgPSAnKDB8WzEtOV1bXFxcXGRfXSp8XFxcXGRbXFxcXGRfXSp8W1xcXFxkX10rP1xcXFxkKSc7XG4gIGNvbnN0IGJpbmFyeV9pbnRlZ2VyX3JlID0gJzBbYkJdWzAxX10rJztcbiAgY29uc3QgaGV4YWRlY2ltYWxfZGlnaXRzX3JlID0gJyhbXFxcXGRhLWZBLUZdW1xcXFxkYS1mQS1GX10qfF9bXFxcXGRhLWZBLUZdW1xcXFxkYS1mQS1GX10qKSc7XG4gIGNvbnN0IGhleGFkZWNpbWFsX2ludGVnZXJfcmUgPSAnMFt4WF0nICsgaGV4YWRlY2ltYWxfZGlnaXRzX3JlO1xuXG4gIGNvbnN0IGRlY2ltYWxfZXhwb25lbnRfcmUgPSAnKFtlRV1bKy1dPycgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKSc7XG4gIGNvbnN0IGRlY2ltYWxfZmxvYXRfcmUgPSAnKCcgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKFxcXFwuXFxcXGQqfCcgKyBkZWNpbWFsX2V4cG9uZW50X3JlICsgJyl8J1xuICAgICAgICAgICAgICAgICsgJ1xcXFxkK1xcXFwuJyArIGRlY2ltYWxfaW50ZWdlcl9ub3N1c19yZSArICd8J1xuICAgICAgICAgICAgICAgICsgJ1xcXFwuJyArIGRlY2ltYWxfaW50ZWdlcl9yZSArIGRlY2ltYWxfZXhwb25lbnRfcmUgKyAnPydcbiAgICAgICAgICAgICAgKyAnKSc7XG4gIGNvbnN0IGhleGFkZWNpbWFsX2Zsb2F0X3JlID0gJygwW3hYXSgnXG4gICAgICAgICAgICAgICAgICArIGhleGFkZWNpbWFsX2RpZ2l0c19yZSArICdcXFxcLicgKyBoZXhhZGVjaW1hbF9kaWdpdHNfcmUgKyAnfCdcbiAgICAgICAgICAgICAgICAgICsgJ1xcXFwuPycgKyBoZXhhZGVjaW1hbF9kaWdpdHNfcmVcbiAgICAgICAgICAgICAgICAgKyAnKVtwUF1bKy1dPycgKyBkZWNpbWFsX2ludGVnZXJfbm9zdXNfcmUgKyAnKSc7XG5cbiAgY29uc3QgaW50ZWdlcl9yZSA9ICcoJ1xuICAgICAgKyBkZWNpbWFsX2ludGVnZXJfcmUgKyAnfCdcbiAgICAgICsgYmluYXJ5X2ludGVnZXJfcmUgKyAnfCdcbiAgICAgICArIGhleGFkZWNpbWFsX2ludGVnZXJfcmVcbiAgICArICcpJztcblxuICBjb25zdCBmbG9hdF9yZSA9ICcoJ1xuICAgICAgKyBoZXhhZGVjaW1hbF9mbG9hdF9yZSArICd8J1xuICAgICAgKyBkZWNpbWFsX2Zsb2F0X3JlXG4gICAgKyAnKSc7XG5cbiAgLyoqXG4gICAqIEVzY2FwZSBzZXF1ZW5jZSBzdXBwb3J0ZWQgaW4gRCBzdHJpbmcgYW5kIGNoYXJhY3RlciBsaXRlcmFsc1xuICAgKlxuICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgKi9cbiAgY29uc3QgZXNjYXBlX3NlcXVlbmNlX3JlID0gJ1xcXFxcXFxcKCdcbiAgICAgICAgICAgICAgKyAnW1xcJ1wiXFxcXD9cXFxcXFxcXGFiZm5ydHZdfCcgLy8gY29tbW9uIGVzY2FwZXNcbiAgICAgICAgICAgICAgKyAndVtcXFxcZEEtRmEtZl17NH18JyAvLyBmb3VyIGhleCBkaWdpdCB1bmljb2RlIGNvZGVwb2ludFxuICAgICAgICAgICAgICArICdbMC03XXsxLDN9fCcgLy8gb25lIHRvIHRocmVlIG9jdGFsIGRpZ2l0IGFzY2lpIGNoYXIgY29kZVxuICAgICAgICAgICAgICArICd4W1xcXFxkQS1GYS1mXXsyfXwnIC8vIHR3byBoZXggZGlnaXQgYXNjaWkgY2hhciBjb2RlXG4gICAgICAgICAgICAgICsgJ1VbXFxcXGRBLUZhLWZdezh9JyAvLyBlaWdodCBoZXggZGlnaXQgdW5pY29kZSBjb2RlcG9pbnRcbiAgICAgICAgICAgICAgKyAnKXwnXG4gICAgICAgICAgICAgICsgJyZbYS16QS1aXFxcXGRdezIsfTsnOyAvLyBuYW1lZCBjaGFyYWN0ZXIgZW50aXR5XG5cbiAgLyoqXG4gICAqIEQgaW50ZWdlciBudW1iZXIgbGl0ZXJhbHNcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfSU5URUdFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYicgKyBpbnRlZ2VyX3JlICsgJyhMfHV8VXxMdXxMVXx1THxVTCk/JyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogW0RfRkxPQVRfTU9ERSBkZXNjcmlwdGlvbl1cbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfRkxPQVRfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnXFxcXGIoJ1xuICAgICAgICArIGZsb2F0X3JlICsgJyhbZkZdfEx8aXxbZkZdaXxMaSk/fCdcbiAgICAgICAgKyBpbnRlZ2VyX3JlICsgJyhpfFtmRl1pfExpKSdcbiAgICAgICsgJyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8qKlxuICAgKiBEIGNoYXJhY3RlciBsaXRlcmFsXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX0NIQVJBQ1RFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXCcoJyArIGVzY2FwZV9zZXF1ZW5jZV9yZSArICd8LiknLFxuICAgIGVuZDogJ1xcJycsXG4gICAgaWxsZWdhbDogJy4nXG4gIH07XG5cbiAgLyoqXG4gICAqIEQgc3RyaW5nIGVzY2FwZSBzZXF1ZW5jZVxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9FU0NBUEVfU0VRVUVOQ0UgPSB7XG4gICAgYmVnaW46IGVzY2FwZV9zZXF1ZW5jZV9yZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogRCBkb3VibGUgcXVvdGVkIHN0cmluZyBsaXRlcmFsXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcIicsXG4gICAgY29udGFpbnM6IFsgRF9FU0NBUEVfU0VRVUVOQ0UgXSxcbiAgICBlbmQ6ICdcIltjd2RdPydcbiAgfTtcblxuICAvKipcbiAgICogRCB3eXNpd3lnIGFuZCBkZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWxzXG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX1dZU0lXWUdfREVMSU1JVEVEX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdbcnFdXCInLFxuICAgIGVuZDogJ1wiW2N3ZF0/JyxcbiAgICByZWxldmFuY2U6IDVcbiAgfTtcblxuICAvKipcbiAgICogRCBhbHRlcm5hdGUgd3lzaXd5ZyBzdHJpbmcgbGl0ZXJhbFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9BTFRFUk5BVEVfV1lTSVdZR19TVFJJTkdfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnYCcsXG4gICAgZW5kOiAnYFtjd2RdPydcbiAgfTtcblxuICAvKipcbiAgICogRCBoZXhhZGVjaW1hbCBzdHJpbmcgbGl0ZXJhbFxuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9IRVhfU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ3hcIltcXFxcZGEtZkEtRlxcXFxzXFxcXG5cXFxccl0qXCJbY3dkXT8nLFxuICAgIHJlbGV2YW5jZTogMTBcbiAgfTtcblxuICAvKipcbiAgICogRCBkZWxpbWl0ZWQgc3RyaW5nIGxpdGVyYWxcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfVE9LRU5fU1RSSU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ3FcIlxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfVwiJ1xuICB9O1xuXG4gIC8qKlxuICAgKiBIYXNoYmFuZyBzdXBwb3J0XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX0hBU0hCQU5HX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdeIyEnLFxuICAgIGVuZDogJyQnLFxuICAgIHJlbGV2YW5jZTogNVxuICB9O1xuXG4gIC8qKlxuICAgKiBEIHNwZWNpYWwgdG9rZW4gc2VxdWVuY2VcbiAgICpcbiAgICogQHR5cGUge09iamVjdH1cbiAgICovXG4gIGNvbnN0IERfU1BFQ0lBTF9UT0tFTl9TRVFVRU5DRV9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIyhsaW5lKScsXG4gICAgZW5kOiAnJCcsXG4gICAgcmVsZXZhbmNlOiA1XG4gIH07XG5cbiAgLyoqXG4gICAqIEQgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAdHlwZSB7T2JqZWN0fVxuICAgKi9cbiAgY29uc3QgRF9BVFRSSUJVVEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ0BbYS16QS1aX11bYS16QS1aX1xcXFxkXSonXG4gIH07XG5cbiAgLyoqXG4gICAqIEQgbmVzdGluZyBjb21tZW50XG4gICAqXG4gICAqIEB0eXBlIHtPYmplY3R9XG4gICAqL1xuICBjb25zdCBEX05FU1RJTkdfQ09NTUVOVF9NT0RFID0gaGxqcy5DT01NRU5UKFxuICAgICdcXFxcL1xcXFwrJyxcbiAgICAnXFxcXCtcXFxcLycsXG4gICAge1xuICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0sXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0QnLFxuICAgIGtleXdvcmRzOiBEX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgRF9ORVNUSU5HX0NPTU1FTlRfTU9ERSxcbiAgICAgIERfSEVYX1NUUklOR19NT0RFLFxuICAgICAgRF9TVFJJTkdfTU9ERSxcbiAgICAgIERfV1lTSVdZR19ERUxJTUlURURfU1RSSU5HX01PREUsXG4gICAgICBEX0FMVEVSTkFURV9XWVNJV1lHX1NUUklOR19NT0RFLFxuICAgICAgRF9UT0tFTl9TVFJJTkdfTU9ERSxcbiAgICAgIERfRkxPQVRfTU9ERSxcbiAgICAgIERfSU5URUdFUl9NT0RFLFxuICAgICAgRF9DSEFSQUNURVJfTU9ERSxcbiAgICAgIERfSEFTSEJBTkdfTU9ERSxcbiAgICAgIERfU1BFQ0lBTF9UT0tFTl9TRVFVRU5DRV9NT0RFLFxuICAgICAgRF9BVFRSSUJVVEVfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkO1xuIiwgIi8qXG5MYW5ndWFnZTogTWFya2Rvd25cblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogSm9obiBDcmVwZXp6aSA8am9obi5jcmVwZXp6aUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi9cbkNhdGVnb3J5OiBjb21tb24sIG1hcmt1cFxuKi9cblxuZnVuY3Rpb24gbWFya2Rvd24oaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElOTElORV9IVE1MID0ge1xuICAgIGJlZ2luOiAvPFxcLz9bQS1aYS16X10vLFxuICAgIGVuZDogJz4nLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgSE9SSVpPTlRBTF9SVUxFID0ge1xuICAgIGJlZ2luOiAnXlstXFxcXCpdezMsfScsXG4gICAgZW5kOiAnJCdcbiAgfTtcbiAgY29uc3QgQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdjb2RlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gVE9ETzogZml4IHRvIGFsbG93IHRoZXNlIHRvIHdvcmsgd2l0aCBzdWJsYW5ndWFnZSBhbHNvXG4gICAgICB7IGJlZ2luOiAnKGB7Myx9KVteYF0oLnxcXFxcbikqP1xcXFwxYCpbIF0qJyB9LFxuICAgICAgeyBiZWdpbjogJyh+ezMsfSlbXn5dKC58XFxcXG4pKj9cXFxcMX4qWyBdKicgfSxcbiAgICAgIC8vIG5lZWRlZCB0byBhbGxvdyBtYXJrZG93biBhcyBhIHN1Ymxhbmd1YWdlIHRvIHdvcmtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdgYGAnLFxuICAgICAgICBlbmQ6ICdgYGArWyBdKiQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ35+ficsXG4gICAgICAgIGVuZDogJ35+fitbIF0qJCdcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnYC4rP2AnIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKD89XiggezR9fFxcXFx0KSknLFxuICAgICAgICAvLyB1c2UgY29udGFpbnMgdG8gZ29iYmxlIHVwIG11bHRpcGxlIGxpbmVzIHRvIGFsbG93IHRoZSBibG9jayB0byBiZSB3aGF0ZXZlciBzaXplXG4gICAgICAgIC8vIGJ1dCBvbmx5IGhhdmUgYSBzaW5nbGUgb3Blbi9jbG9zZSB0YWcgdnMgb25lIHBlciBsaW5lXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeKCB7NH18XFxcXHQpJyxcbiAgICAgICAgICAgIGVuZDogJyhcXFxcbikkJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBMSVNUID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1bGxldCcsXG4gICAgYmVnaW46ICdeWyBcXHRdKihbKistXXwoXFxcXGQrXFxcXC4pKSg/PVxcXFxzKyknLFxuICAgIGVuZDogJ1xcXFxzKycsXG4gICAgZXhjbHVkZUVuZDogdHJ1ZVxuICB9O1xuICBjb25zdCBMSU5LX1JFRkVSRU5DRSA9IHtcbiAgICBiZWdpbjogL15cXFtbXlxcbl0rXFxdOi8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICBlbmQ6IC9cXF0vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpbmsnLFxuICAgICAgICBiZWdpbjogLzpcXHMqLyxcbiAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgVVJMX1NDSEVNRSA9IC9bQS1aYS16XVtBLVphLXowLTkrLi1dKi87XG4gIGNvbnN0IExJTksgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIHRvbyBtdWNoIGxpa2UgbmVzdGVkIGFycmF5IGFjY2VzcyBpbiBzbyBtYW55IGxhbmd1YWdlc1xuICAgICAgLy8gdG8gaGF2ZSBhbnkgcmVhbCByZWxldmFuY2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsuKz9cXF1cXFsuKj9cXF0vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBwb3B1bGFyIGludGVybmV0IFVSTHNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsuKz9cXF1cXCgoKGRhdGF8amF2YXNjcmlwdHxtYWlsdG8pOnwoPzpodHRwfGZ0cClzPzpcXC9cXC8pLio/XFwpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXFsuKz9cXF1cXCgvLCBVUkxfU0NIRU1FLCAvOlxcL1xcLy4qP1xcKS8pLFxuICAgICAgICByZWxldmFuY2U6IDJcbiAgICAgIH0sXG4gICAgICAvLyByZWxhdGl2ZSB1cmxzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLis/XFxdXFwoWy4vPyYjXS4qP1xcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMVxuICAgICAgfSxcbiAgICAgIC8vIHdoYXRldmVyIGVsc2UsIGxvd2VyIHJlbGV2YW5jZSAobWlnaHQgbm90IGJlIGEgbGluayBhdCBhbGwpXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLio/XFxdXFwoLio/XFwpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICAvLyBlbXB0eSBzdHJpbmdzIGZvciBhbHQgb3IgbGluayB0ZXh0XG4gICAgICAgIG1hdGNoOiAvXFxbKD89XFxdKS8gfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBiZWdpbjogJ1xcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGluaycsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICdcXFxcXVxcXFwoJyxcbiAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgYmVnaW46ICdcXFxcXVxcXFxbJyxcbiAgICAgICAgZW5kOiAnXFxcXF0nLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEJPTEQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Ryb25nJyxcbiAgICBjb250YWluczogW10sIC8vIGRlZmluZWQgbGF0ZXJcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL197Mn0oPyFcXHMpLyxcbiAgICAgICAgZW5kOiAvX3syfS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwqezJ9KD8hXFxzKS8sXG4gICAgICAgIGVuZDogL1xcKnsyfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IElUQUxJQyA9IHtcbiAgICBjbGFzc05hbWU6ICdlbXBoYXNpcycsXG4gICAgY29udGFpbnM6IFtdLCAvLyBkZWZpbmVkIGxhdGVyXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCooPyFbKlxcc10pLyxcbiAgICAgICAgZW5kOiAvXFwqL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9fKD8hW19cXHNdKS8sXG4gICAgICAgIGVuZDogL18vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gMyBsZXZlbCBkZWVwIG5lc3RpbmcgaXMgbm90IGFsbG93ZWQgYmVjYXVzZSBpdCB3b3VsZCBjcmVhdGUgY29uZnVzaW9uXG4gIC8vIGluIGNhc2VzIGxpa2UgYCoqKnRlc3RpbmcqKipgIGJlY2F1c2Ugd2hlcmUgd2UgZG9uJ3Qga25vdyBpZiB0aGUgbGFzdFxuICAvLyBgKioqYCBpcyBzdGFydGluZyBhIG5ldyBib2xkL2l0YWxpYyBvciBmaW5pc2hpbmcgdGhlIGxhc3Qgb25lXG4gIGNvbnN0IEJPTERfV0lUSE9VVF9JVEFMSUMgPSBobGpzLmluaGVyaXQoQk9MRCwgeyBjb250YWluczogW10gfSk7XG4gIGNvbnN0IElUQUxJQ19XSVRIT1VUX0JPTEQgPSBobGpzLmluaGVyaXQoSVRBTElDLCB7IGNvbnRhaW5zOiBbXSB9KTtcbiAgQk9MRC5jb250YWlucy5wdXNoKElUQUxJQ19XSVRIT1VUX0JPTEQpO1xuICBJVEFMSUMuY29udGFpbnMucHVzaChCT0xEX1dJVEhPVVRfSVRBTElDKTtcblxuICBsZXQgQ09OVEFJTkFCTEUgPSBbXG4gICAgSU5MSU5FX0hUTUwsXG4gICAgTElOS1xuICBdO1xuXG4gIFtcbiAgICBCT0xELFxuICAgIElUQUxJQyxcbiAgICBCT0xEX1dJVEhPVVRfSVRBTElDLFxuICAgIElUQUxJQ19XSVRIT1VUX0JPTERcbiAgXS5mb3JFYWNoKG0gPT4ge1xuICAgIG0uY29udGFpbnMgPSBtLmNvbnRhaW5zLmNvbmNhdChDT05UQUlOQUJMRSk7XG4gIH0pO1xuXG4gIENPTlRBSU5BQkxFID0gQ09OVEFJTkFCTEUuY29uY2F0KEJPTEQsIElUQUxJQyk7XG5cbiAgY29uc3QgSEVBREVSID0ge1xuICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXiN7MSw2fScsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogQ09OVEFJTkFCTEVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKD89Xi4rP1xcXFxuWz0tXXsyLH0kKScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15bPS1dKiQnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeJyxcbiAgICAgICAgICAgIGVuZDogXCJcXFxcblwiLFxuICAgICAgICAgICAgY29udGFpbnM6IENPTlRBSU5BQkxFXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEJMT0NLUVVPVEUgPSB7XG4gICAgY2xhc3NOYW1lOiAncXVvdGUnLFxuICAgIGJlZ2luOiAnXj5cXFxccysnLFxuICAgIGNvbnRhaW5zOiBDT05UQUlOQUJMRSxcbiAgICBlbmQ6ICckJ1xuICB9O1xuXG4gIGNvbnN0IEVOVElUWSA9IHtcbiAgICAvL2h0dHBzOi8vc3BlYy5jb21tb25tYXJrLm9yZy8wLjMxLjIvI2VudGl0eS1yZWZlcmVuY2VzXG4gICAgc2NvcGU6ICdsaXRlcmFsJyxcbiAgICBtYXRjaDogLyYoW2EtekEtWjAtOV0rfCNbMC05XXsxLDd9fCNbWHhdWzAtOWEtZkEtRl17MSw2fSk7L1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01hcmtkb3duJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnbWQnLFxuICAgICAgJ21rZG93bicsXG4gICAgICAnbWtkJ1xuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEhFQURFUixcbiAgICAgIElOTElORV9IVE1MLFxuICAgICAgTElTVCxcbiAgICAgIEJPTEQsXG4gICAgICBJVEFMSUMsXG4gICAgICBCTE9DS1FVT1RFLFxuICAgICAgQ09ERSxcbiAgICAgIEhPUklaT05UQUxfUlVMRSxcbiAgICAgIExJTkssXG4gICAgICBMSU5LX1JFRkVSRU5DRSxcbiAgICAgIEVOVElUWVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXJrZG93bjtcbiIsICIvKlxuTGFuZ3VhZ2U6IERhcnRcblJlcXVpcmVzOiBtYXJrZG93bi5qc1xuQXV0aG9yOiBNYXhpbSBEaWt1biA8ZGlrbWF4QGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBEYXJ0IGEgbW9kZXJuLCBvYmplY3Qtb3JpZW50ZWQgbGFuZ3VhZ2UgZGV2ZWxvcGVkIGJ5IEdvb2dsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIGh0dHBzOi8vd3d3LmRhcnRsYW5nLm9yZy9cbldlYnNpdGU6IGh0dHBzOi8vZGFydC5kZXZcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkYXJ0KGhsanMpIHtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIHZhcmlhbnRzOiBbIHsgYmVnaW46ICdcXFxcJFtBLVphLXowLTlfXSsnIH0gXVxuICB9O1xuXG4gIGNvbnN0IEJSQUNFRF9TVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCRcXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9XG4gICAgXSxcbiAgICBrZXl3b3JkczogJ3RydWUgZmFsc2UgbnVsbCB0aGlzIGlzIG5ldyBzdXBlcidcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcXCdcXCdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCdcXCdcXCcnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ3JcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCdcXCdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCdcXCdcXCcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICBCUkFDRURfU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICBCUkFDRURfU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICBCUkFDRURfU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgU1VCU1QsXG4gICAgICAgICAgQlJBQ0VEX1NVQlNUXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIEJSQUNFRF9TVUJTVC5jb250YWlucyA9IFtcbiAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgU1RSSU5HXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU5fVFlQRVMgPSBbXG4gICAgLy8gZGFydDpjb3JlXG4gICAgJ0NvbXBhcmFibGUnLFxuICAgICdEYXRlVGltZScsXG4gICAgJ0R1cmF0aW9uJyxcbiAgICAnRnVuY3Rpb24nLFxuICAgICdJdGVyYWJsZScsXG4gICAgJ0l0ZXJhdG9yJyxcbiAgICAnTGlzdCcsXG4gICAgJ01hcCcsXG4gICAgJ01hdGNoJyxcbiAgICAnT2JqZWN0JyxcbiAgICAnUGF0dGVybicsXG4gICAgJ1JlZ0V4cCcsXG4gICAgJ1NldCcsXG4gICAgJ1N0b3B3YXRjaCcsXG4gICAgJ1N0cmluZycsXG4gICAgJ1N0cmluZ0J1ZmZlcicsXG4gICAgJ1N0cmluZ1NpbmsnLFxuICAgICdTeW1ib2wnLFxuICAgICdUeXBlJyxcbiAgICAnVXJpJyxcbiAgICAnYm9vbCcsXG4gICAgJ2RvdWJsZScsXG4gICAgJ2ludCcsXG4gICAgJ251bScsXG4gICAgLy8gZGFydDpodG1sXG4gICAgJ0VsZW1lbnQnLFxuICAgICdFbGVtZW50TGlzdCdcbiAgXTtcbiAgY29uc3QgTlVMTEFCTEVfQlVJTFRfSU5fVFlQRVMgPSBCVUlMVF9JTl9UWVBFUy5tYXAoKGUpID0+IGAke2V9P2ApO1xuXG4gIGNvbnN0IEJBU0lDX0tFWVdPUkRTID0gW1xuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImFzeW5jXCIsXG4gICAgXCJhd2FpdFwiLFxuICAgIFwiYmFzZVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJjb3ZhcmlhbnRcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlZmVycmVkXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXhwb3J0XCIsXG4gICAgXCJleHRlbmRzXCIsXG4gICAgXCJleHRlbnNpb25cIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJmYWN0b3J5XCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZvclwiLFxuICAgIFwiRnVuY3Rpb25cIixcbiAgICBcImdldFwiLFxuICAgIFwiaGlkZVwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW5cIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwiaXNcIixcbiAgICBcImxhdGVcIixcbiAgICBcImxpYnJhcnlcIixcbiAgICBcIm1peGluXCIsXG4gICAgXCJuZXdcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm9uXCIsXG4gICAgXCJvcGVyYXRvclwiLFxuICAgIFwicGFydFwiLFxuICAgIFwicmVxdWlyZWRcIixcbiAgICBcInJldGhyb3dcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic2VhbGVkXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInNob3dcIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwic3luY1wiLFxuICAgIFwidGhpc1wiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRydWVcIixcbiAgICBcInRyeVwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwidmFyXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6IEJBU0lDX0tFWVdPUkRTLFxuICAgIGJ1aWx0X2luOlxuICAgICAgQlVJTFRfSU5fVFlQRVNcbiAgICAgICAgLmNvbmNhdChOVUxMQUJMRV9CVUlMVF9JTl9UWVBFUylcbiAgICAgICAgLmNvbmNhdChbXG4gICAgICAgICAgLy8gZGFydDpjb3JlXG4gICAgICAgICAgJ05ldmVyJyxcbiAgICAgICAgICAnTnVsbCcsXG4gICAgICAgICAgJ2R5bmFtaWMnLFxuICAgICAgICAgICdwcmludCcsXG4gICAgICAgICAgLy8gZGFydDpodG1sXG4gICAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgICAncXVlcnlTZWxlY3RvcicsXG4gICAgICAgICAgJ3F1ZXJ5U2VsZWN0b3JBbGwnLFxuICAgICAgICAgICd3aW5kb3cnXG4gICAgICAgIF0pLFxuICAgICRwYXR0ZXJuOiAvW0EtWmEtel1bQS1aYS16MC05X10qXFw/Py9cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEYXJ0JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFNUUklORyxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICAgICAvXFwqXFwvLyxcbiAgICAgICAge1xuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnbWFya2Rvd24nLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvXFwvezMsfSA/LyxcbiAgICAgICAgLyQvLCB7IGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICdtYXJrZG93bicsXG4gICAgICAgICAgICBiZWdpbjogJy4nLFxuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0gfVxuICAgICAgKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbktleXdvcmRzOiAnZXh0ZW5kcyBpbXBsZW1lbnRzJyB9LFxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJz0+JyAvLyBObyBtYXJrdXAsIGp1c3QgYSByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkYXJ0O1xuIiwgIi8qXG5MYW5ndWFnZTogRGVscGhpXG5XZWJzaXRlOiBodHRwczovL3d3dy5lbWJhcmNhZGVyby5jb20vcHJvZHVjdHMvZGVscGhpXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZGVscGhpKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJleHBvcnRzXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwiZmlsZVwiLFxuICAgIFwic2hsXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwicmVjb3JkXCIsXG4gICAgXCJwcm9wZXJ0eVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJzZXRcIixcbiAgICBcImFsbHlcIixcbiAgICBcImxhYmVsXCIsXG4gICAgXCJ1c2VzXCIsXG4gICAgXCJyYWlzZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJzdG9yZWRcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJzYWZlY2FsbFwiLFxuICAgIFwidmFyXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcIm9yXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcImV4aXRcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJpbmhlcml0ZWRcIixcbiAgICBcInRvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJzdGRjYWxsXCIsXG4gICAgXCJvdmVycmlkZVwiLFxuICAgIFwic2hyXCIsXG4gICAgXCJhc21cIixcbiAgICBcImZhclwiLFxuICAgIFwicmVzb3VyY2VzdHJpbmdcIixcbiAgICBcImZpbmFsaXphdGlvblwiLFxuICAgIFwicGFja2VkXCIsXG4gICAgXCJ2aXJ0dWFsXCIsXG4gICAgXCJvdXRcIixcbiAgICBcImFuZFwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJsaWJyYXJ5XCIsXG4gICAgXCJkb1wiLFxuICAgIFwieG9yd3JpdGVcIixcbiAgICBcImdvdG9cIixcbiAgICBcIm5lYXJcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImRpdlwiLFxuICAgIFwib3ZlcmxvYWRcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwidW5pdFwiLFxuICAgIFwiYmVnaW5cIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwib25cIixcbiAgICBcImlubGluZVwiLFxuICAgIFwicmVwZWF0XCIsXG4gICAgXCJ1bnRpbFwiLFxuICAgIFwiZGVzdHJ1Y3RvclwiLFxuICAgIFwid3JpdGVcIixcbiAgICBcIm1lc3NhZ2VcIixcbiAgICBcInByb2dyYW1cIixcbiAgICBcIndpdGhcIixcbiAgICBcInJlYWRcIixcbiAgICBcImluaXRpYWxpemF0aW9uXCIsXG4gICAgXCJleGNlcHRcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcIm5pbFwiLFxuICAgIFwiaWZcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNkZWNsXCIsXG4gICAgXCJpblwiLFxuICAgIFwiZG93bnRvXCIsXG4gICAgXCJ0aHJlYWR2YXJcIixcbiAgICBcIm9mXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInBhc2NhbFwiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJjb25zdHJ1Y3RvclwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJpbXBsZW1lbnRhdGlvblwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwicHVibGlzaGVkXCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcImFic29sdXRlXCIsXG4gICAgXCJyZWludHJvZHVjZVwiLFxuICAgIFwib3BlcmF0b3JcIixcbiAgICBcImFzXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImFsaWFzXCIsXG4gICAgXCJhc3NlbWJsZXJcIixcbiAgICBcImJpdHBhY2tlZFwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJjcHBkZWNsXCIsXG4gICAgXCJjdmFyXCIsXG4gICAgXCJlbnVtZXJhdG9yXCIsXG4gICAgXCJleHBlcmltZW50YWxcIixcbiAgICBcInBsYXRmb3JtXCIsXG4gICAgXCJkZXByZWNhdGVkXCIsXG4gICAgXCJ1bmltcGxlbWVudGVkXCIsXG4gICAgXCJkeW5hbWljXCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcImZhcjE2XCIsXG4gICAgXCJmb3J3YXJkXCIsXG4gICAgXCJnZW5lcmljXCIsXG4gICAgXCJoZWxwZXJcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImludGVycnVwdFwiLFxuICAgIFwiaW9jaGVja3NcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJuYW1lXCIsXG4gICAgXCJub2RlZmF1bHRcIixcbiAgICBcIm5vcmV0dXJuXCIsXG4gICAgXCJub3N0YWNrZnJhbWVcIixcbiAgICBcIm9sZGZwY2NhbGxcIixcbiAgICBcIm90aGVyd2lzZVwiLFxuICAgIFwic2F2ZXJlZ2lzdGVyc1wiLFxuICAgIFwic29mdGZsb2F0XCIsXG4gICAgXCJzcGVjaWFsaXplXCIsXG4gICAgXCJzdHJpY3RcIixcbiAgICBcInVuYWxpZ25lZFwiLFxuICAgIFwidmFyYXJnc1wiXG4gIF07XG4gIGNvbnN0IENPTU1FTlRfTU9ERVMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuQ09NTUVOVCgvXFx7LywgL1xcfS8sIHsgcmVsZXZhbmNlOiAwIH0pLFxuICAgIGhsanMuQ09NTUVOVCgvXFwoXFwqLywgL1xcKlxcKS8sIHsgcmVsZXZhbmNlOiAxMCB9KVxuICBdO1xuICBjb25zdCBESVJFQ1RJVkUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXHtcXCQvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKFxcKlxcJC8sXG4gICAgICAgIGVuZDogL1xcKlxcKS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJy8sXG4gICAgZW5kOiAvJy8sXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgfTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIC8vIFNvdXJjZTogaHR0cHM6Ly93d3cuZnJlZXBhc2NhbC5vcmcvZG9jcy1odG1sL3JlZi9yZWZzZTYuaHRtbFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIC8vIFJlZ3VsYXIgbnVtYmVycywgZS5nLiwgMTIzLCAxMjMuNDU2LlxuICAgICAgICBtYXRjaDogL1xcYlxcZFtcXGRfXSooXFwuXFxkW1xcZF9dKik/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBIZXhhZGVjaW1hbCBub3RhdGlvbiwgZS5nLiwgJDdGLlxuICAgICAgICBtYXRjaDogL1xcJFtcXGRBLUZhLWZfXSsvIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEhleGFkZWNpbWFsIGxpdGVyYWwgd2l0aCBubyBkaWdpdHNcbiAgICAgICAgbWF0Y2g6IC9cXCQvLFxuICAgICAgICByZWxldmFuY2U6IDAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gT2N0YWwgbm90YXRpb24sIGUuZy4sICY0Mi5cbiAgICAgICAgbWF0Y2g6IC8mWzAtN11bMC03X10qLyB9LFxuICAgICAge1xuICAgICAgICAvLyBCaW5hcnkgbm90YXRpb24sIGUuZy4sICUxMDEwLlxuICAgICAgICBtYXRjaDogLyVbMDFfXSsvIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEJpbmFyeSBsaXRlcmFsIHdpdGggbm8gZGlnaXRzXG4gICAgICAgIG1hdGNoOiAvJS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCB9XG4gICAgXVxuICB9O1xuICBjb25zdCBDSEFSX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiAvI1xcZFtcXGRfXSovIH0sXG4gICAgICB7IG1hdGNoOiAvI1xcJFtcXGRBLUZhLWZdW1xcZEEtRmEtZl9dKi8gfSxcbiAgICAgIHsgbWF0Y2g6IC8jJlswLTddWzAtN19dKi8gfSxcbiAgICAgIHsgbWF0Y2g6IC8jJVswMV1bMDFfXSovIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IENMQVNTID0ge1xuICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcXFxzKj1cXFxccypjbGFzc1xcXFxzKlxcXFwoJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogWyBobGpzLlRJVExFX01PREUgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yIGRlc3RydWN0b3IgcHJvY2VkdXJlJyxcbiAgICBlbmQ6IC9bOjtdLyxcbiAgICBrZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yfDEwIGRlc3RydWN0b3J8MTAgcHJvY2VkdXJlfDEwJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5USVRMRV9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgQ0hBUl9TVFJJTkcsXG4gICAgICAgICAgRElSRUNUSVZFXG4gICAgICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gICAgICB9LFxuICAgICAgRElSRUNUSVZFXG4gICAgXS5jb25jYXQoQ09NTUVOVF9NT0RFUylcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRGVscGhpJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZHByJyxcbiAgICAgICdkZm0nLFxuICAgICAgJ3BhcycsXG4gICAgICAncGFzY2FsJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1wifFxcJFtHLVpnLXpdfFxcL1xcKnw8XFwvfFxcfC8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFNUUklORyxcbiAgICAgIENIQVJfU1RSSU5HLFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1MsXG4gICAgICBGVU5DVElPTixcbiAgICAgIERJUkVDVElWRVxuICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGVscGhpO1xuIiwgIi8qXG5MYW5ndWFnZTogRGlmZlxuRGVzY3JpcHRpb246IFVuaWZpZWQgYW5kIGNvbnRleHQgZGlmZlxuQXV0aG9yOiBWYXNpbHkgUG9sb3ZueW92IDx2YXN0QHdoaXRlYW50cy5uZXQ+XG5XZWJzaXRlOiBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2RpZmZ1dGlscy9cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkaWZmKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEaWZmJyxcbiAgICBhbGlhc2VzOiBbICdwYXRjaCcgXSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMCxcbiAgICAgICAgbWF0Y2g6IHJlZ2V4LmVpdGhlcihcbiAgICAgICAgICAvXkBAICstXFxkKyxcXGQrICtcXCtcXGQrLFxcZCsgK0BALyxcbiAgICAgICAgICAvXlxcKlxcKlxcKiArXFxkKyxcXGQrICtcXCpcXCpcXCpcXCokLyxcbiAgICAgICAgICAvXi0tLSArXFxkKyxcXGQrICstLS0tJC9cbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IHJlZ2V4LmVpdGhlcihcbiAgICAgICAgICAgICAgL0luZGV4OiAvLFxuICAgICAgICAgICAgICAvXmluZGV4LyxcbiAgICAgICAgICAgICAgLz17Myx9LyxcbiAgICAgICAgICAgICAgL14tezN9LyxcbiAgICAgICAgICAgICAgL15cXCp7M30gLyxcbiAgICAgICAgICAgICAgL15cXCt7M30vLFxuICAgICAgICAgICAgICAvXmRpZmYgLS1naXQvXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZW5kOiAvJC9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9eXFwqezE1fSQvIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYWRkaXRpb24nLFxuICAgICAgICBiZWdpbjogL15cXCsvLFxuICAgICAgICBlbmQ6IC8kL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZGVsZXRpb24nLFxuICAgICAgICBiZWdpbjogL14tLyxcbiAgICAgICAgZW5kOiAvJC9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2FkZGl0aW9uJyxcbiAgICAgICAgYmVnaW46IC9eIS8sXG4gICAgICAgIGVuZDogLyQvXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRpZmY7XG4iLCAiLypcbkxhbmd1YWdlOiBEamFuZ29cbkRlc2NyaXB0aW9uOiBEamFuZ28gaXMgYSBoaWdoLWxldmVsIFB5dGhvbiBXZWIgZnJhbWV3b3JrIHRoYXQgZW5jb3VyYWdlcyByYXBpZCBkZXZlbG9wbWVudCBhbmQgY2xlYW4sIHByYWdtYXRpYyBkZXNpZ24uXG5SZXF1aXJlczogeG1sLmpzXG5BdXRob3I6IEl2YW4gU2FnYWxhZXYgPG1hbmlhY0Bzb2Z0d2FyZW1hbmlhY3Mub3JnPlxuQ29udHJpYnV0b3JzOiBJbHlhIEJhcnlzaGV2IDxiYXJ5c2hldkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5kamFuZ29wcm9qZWN0LmNvbVxuQ2F0ZWdvcnk6IHRlbXBsYXRlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZGphbmdvKGhsanMpIHtcbiAgY29uc3QgRklMVEVSID0ge1xuICAgIGJlZ2luOiAvXFx8W0EtWmEtel0rOj8vLFxuICAgIGtleXdvcmRzOiB7IG5hbWU6XG4gICAgICAgICd0cnVuY2F0ZXdvcmRzIHJlbW92ZXRhZ3MgbGluZWJyZWFrc2JyIHllc25vIGdldF9kaWdpdCB0aW1lc2luY2UgcmFuZG9tIHN0cmlwdGFncyAnXG4gICAgICAgICsgJ2ZpbGVzaXplZm9ybWF0IGVzY2FwZSBsaW5lYnJlYWtzIGxlbmd0aF9pcyBsanVzdCByanVzdCBjdXQgdXJsaXplIGZpeF9hbXBlcnNhbmRzICdcbiAgICAgICAgKyAndGl0bGUgZmxvYXRmb3JtYXQgY2FwZmlyc3QgcHByaW50IGRpdmlzaWJsZWJ5IGFkZCBtYWtlX2xpc3QgdW5vcmRlcmVkX2xpc3QgdXJsZW5jb2RlICdcbiAgICAgICAgKyAndGltZXVudGlsIHVybGl6ZXRydW5jIHdvcmRjb3VudCBzdHJpbmdmb3JtYXQgbGluZW51bWJlcnMgc2xpY2UgZGF0ZSBkaWN0c29ydCAnXG4gICAgICAgICsgJ2RpY3Rzb3J0cmV2ZXJzZWQgZGVmYXVsdF9pZl9ub25lIHBsdXJhbGl6ZSBsb3dlciBqb2luIGNlbnRlciBkZWZhdWx0ICdcbiAgICAgICAgKyAndHJ1bmNhdGV3b3Jkc19odG1sIHVwcGVyIGxlbmd0aCBwaG9uZTJudW1lcmljIHdvcmR3cmFwIHRpbWUgYWRkc2xhc2hlcyBzbHVnaWZ5IGZpcnN0ICdcbiAgICAgICAgKyAnZXNjYXBlanMgZm9yY2VfZXNjYXBlIGlyaWVuY29kZSBsYXN0IHNhZmUgc2FmZXNlcSB0cnVuY2F0ZWNoYXJzIGxvY2FsaXplIHVubG9jYWxpemUgJ1xuICAgICAgICArICdsb2NhbHRpbWUgdXRjIHRpbWV6b25lJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0RqYW5nbycsXG4gICAgYWxpYXNlczogWyAnamluamEnIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgvXFx7JVxccypjb21tZW50XFxzKiVcXH0vLCAvXFx7JVxccyplbmRjb21tZW50XFxzKiVcXH0vKSxcbiAgICAgIGhsanMuQ09NTUVOVCgvXFx7Iy8sIC8jXFx9LyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXRhZycsXG4gICAgICAgIGJlZ2luOiAvXFx7JS8sXG4gICAgICAgIGVuZDogLyVcXH0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgYmVnaW46IC9cXHcrLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiB7IG5hbWU6XG4gICAgICAgICAgICAgICAgJ2NvbW1lbnQgZW5kY29tbWVudCBsb2FkIHRlbXBsYXRldGFnIGlmY2hhbmdlZCBlbmRpZmNoYW5nZWQgaWYgZW5kaWYgZmlyc3RvZiBmb3IgJ1xuICAgICAgICAgICAgICAgICsgJ2VuZGZvciBpZm5vdGVxdWFsIGVuZGlmbm90ZXF1YWwgd2lkdGhyYXRpbyBleHRlbmRzIGluY2x1ZGUgc3BhY2VsZXNzICdcbiAgICAgICAgICAgICAgICArICdlbmRzcGFjZWxlc3MgcmVncm91cCBpZmVxdWFsIGVuZGlmZXF1YWwgc3NpIG5vdyB3aXRoIGN5Y2xlIHVybCBmaWx0ZXIgJ1xuICAgICAgICAgICAgICAgICsgJ2VuZGZpbHRlciBkZWJ1ZyBibG9jayBlbmRibG9jayBlbHNlIGF1dG9lc2NhcGUgZW5kYXV0b2VzY2FwZSBjc3JmX3Rva2VuIGVtcHR5IGVsaWYgJ1xuICAgICAgICAgICAgICAgICsgJ2VuZHdpdGggc3RhdGljIHRyYW5zIGJsb2NrdHJhbnMgZW5kYmxvY2t0cmFucyBnZXRfc3RhdGljX3ByZWZpeCBnZXRfbWVkaWFfcHJlZml4ICdcbiAgICAgICAgICAgICAgICArICdwbHVyYWwgZ2V0X2N1cnJlbnRfbGFuZ3VhZ2UgbGFuZ3VhZ2UgZ2V0X2F2YWlsYWJsZV9sYW5ndWFnZXMgJ1xuICAgICAgICAgICAgICAgICsgJ2dldF9jdXJyZW50X2xhbmd1YWdlX2JpZGkgZ2V0X2xhbmd1YWdlX2luZm8gZ2V0X2xhbmd1YWdlX2luZm9fbGlzdCBsb2NhbGl6ZSAnXG4gICAgICAgICAgICAgICAgKyAnZW5kbG9jYWxpemUgbG9jYWx0aW1lIGVuZGxvY2FsdGltZSB0aW1lem9uZSBlbmR0aW1lem9uZSBnZXRfY3VycmVudF90aW1lem9uZSAnXG4gICAgICAgICAgICAgICAgKyAndmVyYmF0aW0nIH0sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGtleXdvcmRzOiAnaW4gYnkgYXMnLFxuICAgICAgICAgICAgICBjb250YWluczogWyBGSUxURVIgXSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7LyxcbiAgICAgICAgZW5kOiAvXFx9XFx9LyxcbiAgICAgICAgY29udGFpbnM6IFsgRklMVEVSIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZGphbmdvO1xuIiwgIi8qXG5MYW5ndWFnZTogRE5TIFpvbmVcbkF1dGhvcjogVGltIFNjaHVtYWNoZXIgPHRpbUBkYXRlbmtub3Rlbi5tZT5cbkNhdGVnb3J5OiBjb25maWdcbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1pvbmVfZmlsZVxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGRucyhobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiSU5cIixcbiAgICBcIkFcIixcbiAgICBcIkFBQUFcIixcbiAgICBcIkFGU0RCXCIsXG4gICAgXCJBUExcIixcbiAgICBcIkNBQVwiLFxuICAgIFwiQ0ROU0tFWVwiLFxuICAgIFwiQ0RTXCIsXG4gICAgXCJDRVJUXCIsXG4gICAgXCJDTkFNRVwiLFxuICAgIFwiREhDSURcIixcbiAgICBcIkRMVlwiLFxuICAgIFwiRE5BTUVcIixcbiAgICBcIkROU0tFWVwiLFxuICAgIFwiRFNcIixcbiAgICBcIkhJUFwiLFxuICAgIFwiSVBTRUNLRVlcIixcbiAgICBcIktFWVwiLFxuICAgIFwiS1hcIixcbiAgICBcIkxPQ1wiLFxuICAgIFwiTVhcIixcbiAgICBcIk5BUFRSXCIsXG4gICAgXCJOU1wiLFxuICAgIFwiTlNFQ1wiLFxuICAgIFwiTlNFQzNcIixcbiAgICBcIk5TRUMzUEFSQU1cIixcbiAgICBcIlBUUlwiLFxuICAgIFwiUlJTSUdcIixcbiAgICBcIlJQXCIsXG4gICAgXCJTSUdcIixcbiAgICBcIlNPQVwiLFxuICAgIFwiU1JWXCIsXG4gICAgXCJTU0hGUFwiLFxuICAgIFwiVEFcIixcbiAgICBcIlRLRVlcIixcbiAgICBcIlRMU0FcIixcbiAgICBcIlRTSUdcIixcbiAgICBcIlRYVFwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0ROUyBab25lJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnYmluZCcsXG4gICAgICAnem9uZSdcbiAgICBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc7JywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxcJChUVEx8R0VORVJBVEV8SU5DTFVERXxPUklHSU4pXFxiL1xuICAgICAgfSxcbiAgICAgIC8vIElQdjZcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICcoKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkoXFxcXC4oMjVbMC01XXwyWzAtNF1cXFxcZHwxXFxcXGRcXFxcZHxbMS05XT9cXFxcZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKShcXFxcLigyNVswLTVdfDJbMC00XVxcXFxkfDFcXFxcZFxcXFxkfFsxLTldP1xcXFxkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKFxcXFwuKDI1WzAtNV18MlswLTRdXFxcXGR8MVxcXFxkXFxcXGR8WzEtOV0/XFxcXGQpKXszfSkpfDopKSlcXFxcYidcbiAgICAgIH0sXG4gICAgICAvLyBJUHY0XG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnKCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXFxcXGInXG4gICAgICB9LFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuTlVNQkVSX01PREUsIHsgYmVnaW46IC9cXGJcXGQrW2Rod21dPy8gfSlcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZG5zO1xuIiwgIi8qXG5MYW5ndWFnZTogRG9ja2VyZmlsZVxuUmVxdWlyZXM6IGJhc2guanNcbkF1dGhvcjogQWxleGlzIEhcdTAwRTluYXV0IDxhbGV4aXNAaGVuYXV0Lm5ldD5cbkRlc2NyaXB0aW9uOiBsYW5ndWFnZSBkZWZpbml0aW9uIGZvciBEb2NrZXJmaWxlIGZpbGVzXG5XZWJzaXRlOiBodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvXG5DYXRlZ29yeTogY29uZmlnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZG9ja2VyZmlsZShobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiZnJvbVwiLFxuICAgIFwibWFpbnRhaW5lclwiLFxuICAgIFwiZXhwb3NlXCIsXG4gICAgXCJlbnZcIixcbiAgICBcImFyZ1wiLFxuICAgIFwidXNlclwiLFxuICAgIFwib25idWlsZFwiLFxuICAgIFwic3RvcHNpZ25hbFwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0RvY2tlcmZpbGUnLFxuICAgIGFsaWFzZXM6IFsgJ2RvY2tlcicgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAncnVuIGNtZCBlbnRyeXBvaW50IHZvbHVtZSBhZGQgY29weSB3b3JrZGlyIGxhYmVsIGhlYWx0aGNoZWNrIHNoZWxsJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvW15cXFxcXSQvLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAnYmFzaCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogJzwvJ1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRvY2tlcmZpbGU7XG4iLCAiLypcbkxhbmd1YWdlOiBCYXRjaCBmaWxlIChET1MpXG5BdXRob3I6IEFsZXhhbmRlciBNYWthcm92IDxzYW1Acm1jcmVhdGl2ZS5ydT5cbkNvbnRyaWJ1dG9yczogQW50b24gS29jaGtvdiA8YW50b24ua29jaGtvdkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXRjaF9maWxlXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZG9zKGhsanMpIHtcbiAgY29uc3QgQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAvXlxccypAP3JlbVxcYi8sIC8kLyxcbiAgICB7IHJlbGV2YW5jZTogMTAgfVxuICApO1xuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXlxcXFxzKltBLVphLXouXz9dW0EtWmEtejAtOV8kI0B+Lj9dKig6fFxcXFxzK2xhYmVsKScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcImdvdG9cIixcbiAgICBcImZvclwiLFxuICAgIFwiaW5cIixcbiAgICBcImRvXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJub3RcIixcbiAgICBcImV4aXN0XCIsXG4gICAgXCJlcnJvcmxldmVsXCIsXG4gICAgXCJkZWZpbmVkXCIsXG4gICAgXCJlcXVcIixcbiAgICBcIm5lcVwiLFxuICAgIFwibHNzXCIsXG4gICAgXCJsZXFcIixcbiAgICBcImd0clwiLFxuICAgIFwiZ2VxXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwicHJuXCIsXG4gICAgXCJudWxcIixcbiAgICBcImxwdDNcIixcbiAgICBcImxwdDJcIixcbiAgICBcImxwdDFcIixcbiAgICBcImNvblwiLFxuICAgIFwiY29tNFwiLFxuICAgIFwiY29tM1wiLFxuICAgIFwiY29tMlwiLFxuICAgIFwiY29tMVwiLFxuICAgIFwiYXV4XCIsXG4gICAgXCJzaGlmdFwiLFxuICAgIFwiY2RcIixcbiAgICBcImRpclwiLFxuICAgIFwiZWNob1wiLFxuICAgIFwic2V0bG9jYWxcIixcbiAgICBcImVuZGxvY2FsXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInBhdXNlXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJhcHBlbmRcIixcbiAgICBcImFzc29jXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiYXR0cmliXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FjbHNcIixcbiAgICBcImNkXCIsXG4gICAgXCJjaGNwXCIsXG4gICAgXCJjaGRpclwiLFxuICAgIFwiY2hrZHNrXCIsXG4gICAgXCJjaGtudGZzXCIsXG4gICAgXCJjbHNcIixcbiAgICBcImNtZFwiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImNvbXBcIixcbiAgICBcImNvbXBhY3RcIixcbiAgICBcImNvbnZlcnRcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRpclwiLFxuICAgIFwiZGlza2NvbXBcIixcbiAgICBcImRpc2tjb3B5XCIsXG4gICAgXCJkb3NrZXlcIixcbiAgICBcImVyYXNlXCIsXG4gICAgXCJmc1wiLFxuICAgIFwiZmluZFwiLFxuICAgIFwiZmluZHN0clwiLFxuICAgIFwiZm9ybWF0XCIsXG4gICAgXCJmdHlwZVwiLFxuICAgIFwiZ3JhZnRhYmxcIixcbiAgICBcImhlbHBcIixcbiAgICBcImtleWJcIixcbiAgICBcImxhYmVsXCIsXG4gICAgXCJtZFwiLFxuICAgIFwibWtkaXJcIixcbiAgICBcIm1vZGVcIixcbiAgICBcIm1vcmVcIixcbiAgICBcIm1vdmVcIixcbiAgICBcInBhdGhcIixcbiAgICBcInBhdXNlXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicG9wZFwiLFxuICAgIFwicHVzaGRcIixcbiAgICBcInByb210XCIsXG4gICAgXCJyZFwiLFxuICAgIFwicmVjb3ZlclwiLFxuICAgIFwicmVtXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInJlc3RvcmVcIixcbiAgICBcInJtZGlyXCIsXG4gICAgXCJzaGlmdFwiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3RhcnRcIixcbiAgICBcInN1YnN0XCIsXG4gICAgXCJ0aW1lXCIsXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwidHJlZVwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidmVyXCIsXG4gICAgXCJ2ZXJpZnlcIixcbiAgICBcInZvbFwiLFxuICAgIC8vIHdpbnV0aWxzXG4gICAgXCJwaW5nXCIsXG4gICAgXCJuZXRcIixcbiAgICBcImlwY29uZmlnXCIsXG4gICAgXCJ0YXNra2lsbFwiLFxuICAgIFwieGNvcHlcIixcbiAgICBcInJlblwiLFxuICAgIFwiZGVsXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnQmF0Y2ggZmlsZSAoRE9TKScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2JhdCcsXG4gICAgICAnY21kJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvJSVbXiBdfCVbXiBdKz8lfCFbXiBdKz8hL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogTEFCRUwuYmVnaW4sXG4gICAgICAgIGVuZDogJ2dvdG86ZW9mJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiAnKFtfYS16QS1aXVxcXFx3KlxcXFwuKSooW19hLXpBLVpdXFxcXHcqOik/W19hLXpBLVpdXFxcXHcqJyB9KSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJcXFxcZCsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBDT01NRU5UXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGRvcztcbiIsICIvKlxuIExhbmd1YWdlOiBkc2NvbmZpZ1xuIERlc2NyaXB0aW9uOiBkc2NvbmZpZyBiYXRjaCBjb25maWd1cmF0aW9uIGxhbmd1YWdlIGZvciBMREFQIGRpcmVjdG9yeSBzZXJ2ZXJzXG4gQ29udHJpYnV0b3JzOiBKYWNvYiBDaGlsZHJlc3MgPGphY29iY0BnbWFpbC5jb20+XG4gQ2F0ZWdvcnk6IGVudGVycHJpc2UsIGNvbmZpZ1xuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBkc2NvbmZpZyhobGpzKSB7XG4gIGNvbnN0IFFVT1RFRF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiL1xuICB9O1xuICBjb25zdCBBUE9TX1BST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC8nLyxcbiAgICBlbmQ6IC8nL1xuICB9O1xuICBjb25zdCBVTlFVT1RFRF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvW1xcd1xcLT9dKzpcXHcrLyxcbiAgICBlbmQ6IC9cXFcvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBWQUxVRUxFU1NfUFJPUEVSVFkgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcdysoXFwtXFx3KykqLyxcbiAgICBlbmQ6IC8oPz1cXFcpLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGtleXdvcmRzOiAnZHNjb25maWcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogJ15kc2NvbmZpZycsXG4gICAgICAgIGVuZDogL1xccy8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IC8obGlzdHxjcmVhdGV8Z2V0fHNldHxkZWxldGUpLShcXHcrKS8sXG4gICAgICAgIGVuZDogL1xccy8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICchQCMkJV4mKigpJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogLy0tKFxcdyspLyxcbiAgICAgICAgZW5kOiAvXFxzLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIFFVT1RFRF9QUk9QRVJUWSxcbiAgICAgIEFQT1NfUFJPUEVSVFksXG4gICAgICBVTlFVT1RFRF9QUk9QRVJUWSxcbiAgICAgIFZBTFVFTEVTU19QUk9QRVJUWSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZHNjb25maWc7XG4iLCAiLypcbkxhbmd1YWdlOiBEZXZpY2UgVHJlZVxuRGVzY3JpcHRpb246ICouZHRzIGZpbGVzIHVzZWQgaW4gdGhlIExpbnV4IGtlcm5lbFxuQXV0aG9yOiBNYXJ0aW4gQnJhdW4gPG1hcnRpbi5icmF1bkBldHR1cy5jb20+LCBNb3JpdHogRmlzY2hlciA8bW9yaXR6LmZpc2NoZXJAZXR0dXMuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9lbGludXgub3JnL0RldmljZV9UcmVlX1JlZmVyZW5jZVxuQ2F0ZWdvcnk6IGNvbmZpZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGR0cyhobGpzKSB7XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgYmVnaW46ICcoKHU4P3xVKXxMKT9cIicgfSksXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKHU4P3xVKT9SXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcJ1xcXFxcXFxcPy4nLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnLidcbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXGIoXFxcXGQrKFxcXFwuXFxcXGQqKT98XFxcXC5cXFxcZCspKHV8VXxsfEx8dWx8VUx8ZnxGKScgfSxcbiAgICAgIHsgYmVnaW46IGhsanMuQ19OVU1CRVJfUkUgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIycsXG4gICAgZW5kOiAnJCcsXG4gICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgaWZkZWYgaWZuZGVmJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2luY2x1ZGUnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2luY2x1ZGUnIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KFNUUklOR1MsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICc8JyxcbiAgICAgICAgICAgIGVuZDogJz4nLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFNUUklOR1MsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJFRkVSRU5DRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC8mW2EtelxcZF9dKlxcYi9cbiAgfTtcblxuICBjb25zdCBLRVlXT1JEID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAnL1thLXpdW2EtelxcXFxkLV0qLydcbiAgfTtcblxuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnXlxcXFxzKlthLXpBLVpfXVthLXpBLVpcXFxcZF9dKjonXG4gIH07XG5cbiAgY29uc3QgQ0VMTF9QUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogJzwnLFxuICAgIGVuZDogJz4nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOVU1CRVJTLFxuICAgICAgUkVGRVJFTkNFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUuY2xhc3MnLFxuICAgIGJlZ2luOiAvW2EtekEtWl9dW2EtekEtWlxcZF9ALV0qKD89XFxzXFx7KS8sXG4gICAgcmVsZXZhbmNlOiAwLjJcbiAgfTtcblxuICBjb25zdCBST09UX05PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUuY2xhc3MnLFxuICAgIGJlZ2luOiAvXlxcLyg/PVxccypcXHspLyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG5cbiAgLy8gVE9ETzogYGF0dHJpYnV0ZWAgbWlnaHQgYmUgdGhlIHJpZ2h0IHNjb3BlIGhlcmUsIHVuc3VyZVxuICAvLyBJJ20gbm90IHN1cmUgaWYgYWxsIHRoZXNlIGtleSBuYW1lcyBoYXZlIHNlbWFudGljIG1lYW5pbmcgb3Igbm90XG4gIGNvbnN0IEFUVFJfTk9fVkFMVUUgPSB7XG4gICAgbWF0Y2g6IC9bYS16XVthLXotLF0rKD89OykvLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBzY29wZTogXCJhdHRyXCJcbiAgfTtcbiAgY29uc3QgQVRUUiA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9bYS16XVthLXotLF0rLyxcbiAgICAgIC9cXHMqLyxcbiAgICAgIC89L1xuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwiYXR0clwiLFxuICAgICAgMzogXCJvcGVyYXRvclwiXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFBVTkMgPSB7XG4gICAgc2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICByZWxldmFuY2U6IDAsXG4gICAgLy8gYH07YCBjb21iaW5lZCBpcyBqdXN0IHRvIGF2b2lkIHRvbnMgb2YgdXNlbGVzcyBwdW5jdHVhdGlvbiBub2Rlc1xuICAgIG1hdGNoOiAvXFx9O3xbO3t9XS9cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdEZXZpY2UgVHJlZScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFJPT1RfTk9ERSxcbiAgICAgIFJFRkVSRU5DRSxcbiAgICAgIEtFWVdPUkQsXG4gICAgICBMQUJFTCxcbiAgICAgIE5PREUsXG4gICAgICBBVFRSLFxuICAgICAgQVRUUl9OT19WQUxVRSxcbiAgICAgIENFTExfUFJPUEVSVFksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgTlVNQkVSUyxcbiAgICAgIFNUUklOR1MsXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICBQVU5DLFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICc6OicsXG4gICAgICAgIGtleXdvcmRzOiBcIlwiXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGR0cztcbiIsICIvKlxuTGFuZ3VhZ2U6IER1c3RcblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogTWljaGFlbCBBbGxlbiA8bWljaGFlbC5hbGxlbkBiZW5lZml0Zm9jdXMuY29tPlxuRGVzY3JpcHRpb246IE1hdGNoZXIgZm9yIGR1c3QuanMgdGVtcGxhdGVzLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZHVzdGpzLmNvbVxuQ2F0ZWdvcnk6IHRlbXBsYXRlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZHVzdChobGpzKSB7XG4gIGNvbnN0IEVYUFJFU1NJT05fS0VZV09SRFMgPSAnaWYgZXEgbmUgbHQgbHRlIGd0IGd0ZSBzZWxlY3QgZGVmYXVsdCBtYXRoIHNlcCc7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0R1c3QnLFxuICAgIGFsaWFzZXM6IFsgJ2RzdCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1sjXFwvXS8sXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGlsbGVnYWw6IC87LyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgICAgICAgIGJlZ2luOiAvW2EtekEtWlxcLi1dKy8sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgaWxsZWdhbDogLzsvLFxuICAgICAgICBrZXl3b3JkczogRVhQUkVTU0lPTl9LRVlXT1JEU1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBkdXN0O1xuIiwgIi8qXG5MYW5ndWFnZTogRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybVxuQXV0aG9yOiBBbGV4IE1jS2liYmVuIDxhbGV4QG51bGxzY29wZS5uZXQ+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9FeHRlbmRlZF9CYWNrdXNcdTIwMTNOYXVyX2Zvcm1cbkNhdGVnb3J5OiBzeW50YXhcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBlYm5mKGhsanMpIHtcbiAgY29uc3QgY29tbWVudE1vZGUgPSBobGpzLkNPTU1FTlQoL1xcKFxcKi8sIC9cXCpcXCkvKTtcblxuICBjb25zdCBub25UZXJtaW5hbE1vZGUgPSB7XG4gICAgY2xhc3NOYW1lOiBcImF0dHJpYnV0ZVwiLFxuICAgIGJlZ2luOiAvXlsgXSpbYS16QS1aXSsoW1xcc18tXStbYS16QS1aXSspKi9cbiAgfTtcblxuICBjb25zdCBzcGVjaWFsU2VxdWVuY2VNb2RlID0ge1xuICAgIGNsYXNzTmFtZTogXCJtZXRhXCIsXG4gICAgYmVnaW46IC9cXD8uKlxcPy9cbiAgfTtcblxuICBjb25zdCBydWxlQm9keU1vZGUgPSB7XG4gICAgYmVnaW46IC89LyxcbiAgICBlbmQ6IC9bLjtdLyxcbiAgICBjb250YWluczogW1xuICAgICAgY29tbWVudE1vZGUsXG4gICAgICBzcGVjaWFsU2VxdWVuY2VNb2RlLFxuICAgICAge1xuICAgICAgICAvLyB0ZXJtaW5hbHNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ2AnLFxuICAgICAgICAgICAgZW5kOiAnYCdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRXh0ZW5kZWQgQmFja3VzLU5hdXIgRm9ybScsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGNvbW1lbnRNb2RlLFxuICAgICAgbm9uVGVybWluYWxNb2RlLFxuICAgICAgcnVsZUJvZHlNb2RlXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVibmY7XG4iLCAiLypcbkxhbmd1YWdlOiBFbGl4aXJcbkF1dGhvcjogSm9zaCBBZGFtcyA8am9zaEBpc290b3BlMTEuY29tPlxuRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gZm9yIEVsaXhpciBzb3VyY2UgY29kZSBmaWxlcyAoLmV4IGFuZCAuZXhzKS4gIEJhc2VkIG9uIHJ1YnkgbGFuZ3VhZ2Ugc3VwcG9ydC5cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5XZWJzaXRlOiBodHRwczovL2VsaXhpci1sYW5nLm9yZ1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGVsaXhpcihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgRUxJWElSX0lERU5UX1JFID0gJ1thLXpBLVpfXVthLXpBLVowLTlfLl0qKCF8XFxcXD8pPyc7XG4gIGNvbnN0IEVMSVhJUl9NRVRIT0RfUkUgPSAnW2EtekEtWl9dXFxcXHcqWyE/PV0/fFstK35dQHw8PHw+Pnw9fnw9PT0/fDw9PnxbPD5dPT98XFxcXCpcXFxcKnxbLS8rJV4mKn5gfF18XFxcXFtcXFxcXT0/JztcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhZnRlclwiLFxuICAgIFwiYWxpYXNcIixcbiAgICBcImFuZFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2F0Y2hcIixcbiAgICBcImNvbmRcIixcbiAgICBcImRlZnN0cnVjdFwiLFxuICAgIFwiZGVmZ3VhcmRcIixcbiAgICBcImRvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImZuXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcImluXCIsXG4gICAgXCJub3RcIixcbiAgICBcIm9yXCIsXG4gICAgXCJxdW90ZVwiLFxuICAgIFwicmFpc2VcIixcbiAgICBcInJlY2VpdmVcIixcbiAgICBcInJlcXVpcmVcIixcbiAgICBcInJlcmFpc2VcIixcbiAgICBcInJlc2N1ZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ1bmxlc3NcIixcbiAgICBcInVucXVvdGVcIixcbiAgICBcInVucXVvdGVfc3BsaWNpbmdcIixcbiAgICBcInVzZVwiLFxuICAgIFwid2hlblwiLFxuICAgIFwid2l0aHwwXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibmlsXCIsXG4gICAgXCJ0cnVlXCJcbiAgXTtcbiAgY29uc3QgS1dTID0ge1xuICAgICRwYXR0ZXJuOiBFTElYSVJfSURFTlRfUkUsXG4gICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgbGl0ZXJhbDogTElURVJBTFNcbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvI1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS1dTXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnKFxcXFxiMG9bMC03X10rKXwoXFxcXGIwYlswMV9dKyl8KFxcXFxiMHhbMC05YS1mQS1GX10rKXwoLT9cXFxcYlswLTldWzAtOV9dKihcXFxcLlswLTlfXSsoW2VFXVstK10/WzAtOV0rKT8pPyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICAvLyBUT0RPOiBjb3VsZCBiZSB0aWdodGVuZWRcbiAgLy8gaHR0cHM6Ly9lbGl4aXItbGFuZy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvaW50cm8vMTguaHRtbFxuICAvLyBidXQgeW91IGFsc28gbmVlZCB0byBpbmNsdWRlIGNsb3NpbmcgZGVsZW1ldGVycyBpbiB0aGUgZXNjYXBlIGxpc3QgcGVyXG4gIC8vIGluZGl2aWR1YWwgc2lnaWwgbW9kZSBmcm9tIHdoYXQgSSBjYW4gdGVsbCxcbiAgLy8gaWU6IFxcfSBtaWdodCBvciBtaWdodCBub3QgYmUgYW4gZXNjYXBlIGRlcGVuZGluZyBvbiB0aGUgc2lnaWwgdXNlZFxuICBjb25zdCBFU0NBUEVTX1JFID0gL1xcXFxbXFxzXFxTXS87XG4gIC8vIGNvbnN0IEVTQ0FQRVNfUkUgPSAvXFxcXFtcIidcXFxcYWJkZWZucnN0djBdLztcbiAgY29uc3QgQkFDS1NMQVNIX0VTQ0FQRSA9IHtcbiAgICBtYXRjaDogRVNDQVBFU19SRSxcbiAgICBzY29wZTogXCJjaGFyLmVzY2FwZVwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBTSUdJTF9ERUxJTUlURVJTID0gJ1svfChbezxcIlxcJ10nO1xuICBjb25zdCBTSUdJTF9ERUxJTUlURVJfTU9ERVMgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC9cIi8sXG4gICAgICBlbmQ6IC9cIi9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvJy8sXG4gICAgICBlbmQ6IC8nL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXC8vLFxuICAgICAgZW5kOiAvXFwvL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXHwvLFxuICAgICAgZW5kOiAvXFx8L1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdL1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9L1xuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC88LyxcbiAgICAgIGVuZDogLz4vXG4gICAgfVxuICBdO1xuICBjb25zdCBlc2NhcGVTaWdpbEVuZCA9IChlbmQpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcGU6IFwiY2hhci5lc2NhcGVcIixcbiAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcXFwvLCBlbmQpLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfTtcbiAgfTtcbiAgY29uc3QgTE9XRVJDQVNFX1NJR0lMID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICd+W2Etel0nICsgJyg/PScgKyBTSUdJTF9ERUxJTUlURVJTICsgJyknLFxuICAgIGNvbnRhaW5zOiBTSUdJTF9ERUxJTUlURVJfTU9ERVMubWFwKHggPT4gaGxqcy5pbmhlcml0KHgsXG4gICAgICB7IGNvbnRhaW5zOiBbXG4gICAgICAgIGVzY2FwZVNpZ2lsRW5kKHguZW5kKSxcbiAgICAgICAgQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgU1VCU1RcbiAgICAgIF0gfVxuICAgICkpXG4gIH07XG5cbiAgY29uc3QgVVBDQVNFX1NJR0lMID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICd+W0EtWl0nICsgJyg/PScgKyBTSUdJTF9ERUxJTUlURVJTICsgJyknLFxuICAgIGNvbnRhaW5zOiBTSUdJTF9ERUxJTUlURVJfTU9ERVMubWFwKHggPT4gaGxqcy5pbmhlcml0KHgsXG4gICAgICB7IGNvbnRhaW5zOiBbIGVzY2FwZVNpZ2lsRW5kKHguZW5kKSBdIH1cbiAgICApKVxuICB9O1xuXG4gIGNvbnN0IFJFR0VYX1NJR0lMID0ge1xuICAgIGNsYXNzTmFtZTogJ3JlZ2V4JyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ35yJyArICcoPz0nICsgU0lHSUxfREVMSU1JVEVSUyArICcpJyxcbiAgICAgICAgY29udGFpbnM6IFNJR0lMX0RFTElNSVRFUl9NT0RFUy5tYXAoeCA9PiBobGpzLmluaGVyaXQoeCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmQ6IHJlZ2V4LmNvbmNhdCh4LmVuZCwgL1t1aXNteGZVXXswLDd9LyksXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBlc2NhcGVTaWdpbEVuZCh4LmVuZCksXG4gICAgICAgICAgICAgIEJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICApKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd+UicgKyAnKD89JyArIFNJR0lMX0RFTElNSVRFUlMgKyAnKScsXG4gICAgICAgIGNvbnRhaW5zOiBTSUdJTF9ERUxJTUlURVJfTU9ERVMubWFwKHggPT4gaGxqcy5pbmhlcml0KHgsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW5kOiByZWdleC5jb25jYXQoeC5lbmQsIC9bdWlzbXhmVV17MCw3fS8pLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgZXNjYXBlU2lnaWxFbmQoeC5lbmQpIF1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLycnJy8sXG4gICAgICAgIGVuZDogLycnJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvflNcIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjb250YWluczogW10gLy8gb3ZlcnJpZGUgZGVmYXVsdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9+U1wiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogW10gLy8gb3ZlcnJpZGUgZGVmYXVsdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9+UycnJy8sXG4gICAgICAgIGVuZDogLycnJy8sXG4gICAgICAgIGNvbnRhaW5zOiBbXSAvLyBvdmVycmlkZSBkZWZhdWx0XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL35TJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW10gLy8gb3ZlcnJpZGUgZGVmYXVsdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZGVmIGRlZnAgZGVmbWFjcm8gZGVmbWFjcm9wJyxcbiAgICBlbmQ6IC9cXEJcXGIvLCAvLyB0aGUgbW9kZSBpcyBlbmRlZCBieSB0aGUgdGl0bGVcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgICAgICBiZWdpbjogRUxJWElSX0lERU5UX1JFLFxuICAgICAgICBlbmRzUGFyZW50OiB0cnVlXG4gICAgICB9KVxuICAgIF1cbiAgfTtcbiAgY29uc3QgQ0xBU1MgPSBobGpzLmluaGVyaXQoRlVOQ1RJT04sIHtcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW5LZXl3b3JkczogJ2RlZmltcGwgZGVmbW9kdWxlIGRlZnByb3RvY29sIGRlZnJlY29yZCcsXG4gICAgZW5kOiAvXFxiZG9cXGJ8JHw7L1xuICB9KTtcbiAgY29uc3QgRUxJWElSX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgU1RSSU5HLFxuICAgIFJFR0VYX1NJR0lMLFxuICAgIFVQQ0FTRV9TSUdJTCxcbiAgICBMT1dFUkNBU0VfU0lHSUwsXG4gICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICBDTEFTUyxcbiAgICBGVU5DVElPTixcbiAgICB7IGJlZ2luOiAnOjonIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiAnOig/IVtcXFxcczpdKScsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBTVFJJTkcsXG4gICAgICAgIHsgYmVnaW46IEVMSVhJUl9NRVRIT0RfUkUgfVxuICAgICAgXSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBFTElYSVJfSURFTlRfUkUgKyAnOig/ITopJyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgeyAvLyBVc2FnZSBvZiBhIG1vZHVsZSwgc3RydWN0LCBldGMuXG4gICAgICBjbGFzc05hbWU6ICd0aXRsZS5jbGFzcycsXG4gICAgICBiZWdpbjogLyhcXGJbQS1aXVthLXpBLVowLTlfXSspLyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgTlVNQkVSLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICAgIGJlZ2luOiAnKFxcXFwkXFxcXFcpfCgoXFxcXCR8QEA/KShcXFxcdyspKSdcbiAgICB9XG4gICAgLy8gLT4gaGFzIGJlZW4gcmVtb3ZlZCwgY2FwbnByb3RvIGFsd2F5cyB1c2VzIHRoaXMgZ3JhbW1hciBjb25zdHJ1Y3RcbiAgXTtcbiAgU1VCU1QuY29udGFpbnMgPSBFTElYSVJfREVGQVVMVF9DT05UQUlOUztcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdFbGl4aXInLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdleCcsXG4gICAgICAnZXhzJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtXUyxcbiAgICBjb250YWluczogRUxJWElSX0RFRkFVTFRfQ09OVEFJTlNcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlbGl4aXI7XG4iLCAiLypcbkxhbmd1YWdlOiBFbG1cbkF1dGhvcjogSmFuaXMgVm9pZ3RsYWVuZGVyIDxqYW5pcy52b2lndGxhZW5kZXJAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9lbG0tbGFuZy5vcmdcbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZWxtKGhsanMpIHtcbiAgY29uc3QgQ09NTUVOVCA9IHsgdmFyaWFudHM6IFtcbiAgICBobGpzLkNPTU1FTlQoJy0tJywgJyQnKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFx7LS8sXG4gICAgICAvLVxcfS8sXG4gICAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgICApXG4gIF0gfTtcblxuICBjb25zdCBDT05TVFJVQ1RPUiA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHdcXCddKicsIC8vIFRPRE86IG90aGVyIGNvbnN0cnVjdG9ycyAoYnVpbHQtaW4sIGluZml4KS5cbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBMSVNUID0ge1xuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJyxcbiAgICBpbGxlZ2FsOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiW0EtWl1bXFxcXHddKihcXFxcKChcXFxcLlxcXFwufCx8XFxcXHcrKVxcXFwpKT8nXG4gICAgICB9LFxuICAgICAgQ09NTUVOVFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBSRUNPUkQgPSB7XG4gICAgYmVnaW46IC9cXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IExJU1QuY29udGFpbnNcbiAgfTtcblxuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcJ1xcXFxcXFxcPy4nLFxuICAgIGVuZDogJ1xcJycsXG4gICAgaWxsZWdhbDogJy4nXG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJsZXRcIixcbiAgICBcImluXCIsXG4gICAgXCJpZlwiLFxuICAgIFwidGhlblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwib2ZcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJtb2R1bGVcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiZXhwb3NpbmdcIixcbiAgICBcInR5cGVcIixcbiAgICBcImFsaWFzXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiaW5maXhcIixcbiAgICBcImluZml4bFwiLFxuICAgIFwiaW5maXhyXCIsXG4gICAgXCJwb3J0XCIsXG4gICAgXCJlZmZlY3RcIixcbiAgICBcImNvbW1hbmRcIixcbiAgICBcInN1YnNjcmlwdGlvblwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRWxtJyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcblxuICAgICAgLy8gVG9wLWxldmVsIGNvbnN0cnVjdGlvbnMuXG5cbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3BvcnQgZWZmZWN0IG1vZHVsZScsXG4gICAgICAgIGVuZDogJ2V4cG9zaW5nJyxcbiAgICAgICAga2V5d29yZHM6ICdwb3J0IGVmZmVjdCBtb2R1bGUgd2hlcmUgY29tbWFuZCBzdWJzY3JpcHRpb24gZXhwb3NpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdpbXBvcnQnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6ICdpbXBvcnQgYXMgZXhwb3NpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICd0eXBlJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAndHlwZSBhbGlhcycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09OU1RSVUNUT1IsXG4gICAgICAgICAgTElTVCxcbiAgICAgICAgICBSRUNPUkQsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5maXggaW5maXhsIGluZml4cicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAncG9ydCcsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ3BvcnQnLFxuICAgICAgICBjb250YWluczogWyBDT01NRU5UIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIExpdGVyYWxzIGFuZCBuYW1lcy5cbiAgICAgIENIQVJBQ1RFUixcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBDT05TVFJVQ1RPUixcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICdeW19hLXpdW1xcXFx3XFwnXSonIH0pLFxuICAgICAgQ09NTUVOVCxcblxuICAgICAgeyAvLyBObyBtYXJrdXAsIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAnLT58PC0nIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC87L1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVsbTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFJ1YnlcbkRlc2NyaXB0aW9uOiBSdWJ5IGlzIGEgZHluYW1pYywgb3BlbiBzb3VyY2UgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugd2l0aCBhIGZvY3VzIG9uIHNpbXBsaWNpdHkgYW5kIHByb2R1Y3Rpdml0eS5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnJ1YnktbGFuZy5vcmcvXG5BdXRob3I6IEFudG9uIEtvdmFseW92IDxhbnRvbkBrb3ZhbHlvdi5uZXQ+XG5Db250cmlidXRvcnM6IFBldGVyIExlb25vdiA8Z29qcGVnQHlhbmRleC5ydT4sIFZhc2lseSBQb2xvdm55b3YgPHZhc3RAd2hpdGVhbnRzLm5ldD4sIExvcmVuIFNlZ2FsIDxsc2VnYWxAc29lbi5jYT4sIFBhc2NhbCBIdXJuaSA8cGhpQHJ1YnktcmVhY3RpdmUub3JnPiwgQ2VkcmljIFNvaHJhdWVyIDxzb2hyYXVlckBnb29nbGVtYWlsLmNvbT5cbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gcnVieShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgUlVCWV9NRVRIT0RfUkUgPSAnKFthLXpBLVpfXVxcXFx3KlshPz1dP3xbLSt+XUB8PDx8Pj58PX58PT09P3w8PT58Wzw+XT0/fFxcXFwqXFxcXCp8Wy0vKyVeJip+YHxdfFxcXFxbXFxcXF09PyknO1xuICAvLyBUT0RPOiBtb3ZlIGNvbmNlcHRzIGxpa2UgQ0FNRUxfQ0FTRSBpbnRvIGBtb2Rlcy5qc2BcbiAgY29uc3QgQ0xBU1NfTkFNRV9SRSA9IHJlZ2V4LmVpdGhlcihcbiAgICAvXFxiKFtBLVpdK1thLXowLTldKykrLyxcbiAgICAvLyBlbmRzIGluIGNhcHNcbiAgICAvXFxiKFtBLVpdK1thLXowLTldKykrW0EtWl0rLyxcbiAgKVxuICA7XG4gIGNvbnN0IENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUgPSByZWdleC5jb25jYXQoQ0xBU1NfTkFNRV9SRSwgLyg6OlxcdyspKi8pO1xuICAvLyB2ZXJ5IHBvcHVsYXIgcnVieSBidWlsdC1pbnMgdGhhdCBvbmUgbWlnaHQgZXZlbiBhc3N1bWVcbiAgLy8gYXJlIGFjdHVhbCBrZXl3b3JkcyAoZGVzcGl0ZSB0aGF0IG5vdCBiZWluZyB0aGUgY2FzZSlcbiAgY29uc3QgUFNFVURPX0tXUyA9IFtcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImV4dGVuZFwiLFxuICAgIFwicHJlcGVuZFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInJhaXNlXCIsXG4gICAgXCJ0aHJvd1wiXG4gIF07XG4gIGNvbnN0IFJVQllfS0VZV09SRFMgPSB7XG4gICAgXCJ2YXJpYWJsZS5jb25zdGFudFwiOiBbXG4gICAgICBcIl9fRklMRV9fXCIsXG4gICAgICBcIl9fTElORV9fXCIsXG4gICAgICBcIl9fRU5DT0RJTkdfX1wiXG4gICAgXSxcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IFtcbiAgICAgIFwic2VsZlwiLFxuICAgICAgXCJzdXBlclwiLFxuICAgIF0sXG4gICAga2V5d29yZDogW1xuICAgICAgXCJhbGlhc1wiLFxuICAgICAgXCJhbmRcIixcbiAgICAgIFwiYmVnaW5cIixcbiAgICAgIFwiQkVHSU5cIixcbiAgICAgIFwiYnJlYWtcIixcbiAgICAgIFwiY2FzZVwiLFxuICAgICAgXCJjbGFzc1wiLFxuICAgICAgXCJkZWZpbmVkXCIsXG4gICAgICBcImRvXCIsXG4gICAgICBcImVsc2VcIixcbiAgICAgIFwiZWxzaWZcIixcbiAgICAgIFwiZW5kXCIsXG4gICAgICBcIkVORFwiLFxuICAgICAgXCJlbnN1cmVcIixcbiAgICAgIFwiZm9yXCIsXG4gICAgICBcImlmXCIsXG4gICAgICBcImluXCIsXG4gICAgICBcIm1vZHVsZVwiLFxuICAgICAgXCJuZXh0XCIsXG4gICAgICBcIm5vdFwiLFxuICAgICAgXCJvclwiLFxuICAgICAgXCJyZWRvXCIsXG4gICAgICBcInJlcXVpcmVcIixcbiAgICAgIFwicmVzY3VlXCIsXG4gICAgICBcInJldHJ5XCIsXG4gICAgICBcInJldHVyblwiLFxuICAgICAgXCJ0aGVuXCIsXG4gICAgICBcInVuZGVmXCIsXG4gICAgICBcInVubGVzc1wiLFxuICAgICAgXCJ1bnRpbFwiLFxuICAgICAgXCJ3aGVuXCIsXG4gICAgICBcIndoaWxlXCIsXG4gICAgICBcInlpZWxkXCIsXG4gICAgICAuLi5QU0VVRE9fS1dTXG4gICAgXSxcbiAgICBidWlsdF9pbjogW1xuICAgICAgXCJwcm9jXCIsXG4gICAgICBcImxhbWJkYVwiLFxuICAgICAgXCJhdHRyX2FjY2Vzc29yXCIsXG4gICAgICBcImF0dHJfcmVhZGVyXCIsXG4gICAgICBcImF0dHJfd3JpdGVyXCIsXG4gICAgICBcImRlZmluZV9tZXRob2RcIixcbiAgICAgIFwicHJpdmF0ZV9jb25zdGFudFwiLFxuICAgICAgXCJtb2R1bGVfZnVuY3Rpb25cIlxuICAgIF0sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgXCJ0cnVlXCIsXG4gICAgICBcImZhbHNlXCIsXG4gICAgICBcIm5pbFwiXG4gICAgXVxuICB9O1xuICBjb25zdCBZQVJET0NUQUcgPSB7XG4gICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gIH07XG4gIGNvbnN0IElSQl9PQkpFQ1QgPSB7XG4gICAgYmVnaW46ICcjPCcsXG4gICAgZW5kOiAnPidcbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnIycsXG4gICAgICAnJCcsXG4gICAgICB7IGNvbnRhaW5zOiBbIFlBUkRPQ1RBRyBdIH1cbiAgICApLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICdePWJlZ2luJyxcbiAgICAgICdePWVuZCcsXG4gICAgICB7XG4gICAgICAgIGNvbnRhaW5zOiBbIFlBUkRPQ1RBRyBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoJ15fX0VORF9fJywgaGxqcy5NQVRDSF9OT1RISU5HX1JFKVxuICBdO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC8jXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvYC8sXG4gICAgICAgIGVuZDogL2AvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdP1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJVtxUXdXeF0/XFxbLyxcbiAgICAgICAgZW5kOiAvXFxdL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT9cXHsvLFxuICAgICAgICBlbmQ6IC9cXH0vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdPzwvLFxuICAgICAgICBlbmQ6IC8+L1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT9cXC8vLFxuICAgICAgICBlbmQ6IC9cXC8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyVbcVF3V3hdPyUvLFxuICAgICAgICBlbmQ6IC8lL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8lW3FRd1d4XT8tLyxcbiAgICAgICAgZW5kOiAvLS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJVtxUXdXeF0/XFx8LyxcbiAgICAgICAgZW5kOiAvXFx8L1xuICAgICAgfSxcbiAgICAgIC8vIGluIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbnMsIFxcQiBpbiB0aGUgYmVnaW5uaW5nIHN1cHByZXNzZXMgcmVjb2duaXRpb24gb2YgPy1zZXF1ZW5jZXNcbiAgICAgIC8vIHdoZXJlID8gaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgcHJlY2VkaW5nIGlkZW50aWZpZXIsIGFzIGluOiBgZnVuYz80YFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxcXFxkezEsM30pLyB9LFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxceFtBLUZhLWYwLTldezEsMn0pLyB9LFxuICAgICAgeyBiZWdpbjogL1xcQlxcPyhcXFxcdVxcez9bQS1GYS1mMC05XXsxLDZ9XFx9PykvIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/KFxcXFxNLVxcXFxDLXxcXFxcTS1cXFxcY3xcXFxcY1xcXFxNLXxcXFxcTS18XFxcXEMtXFxcXE0tKVtcXHgyMC1cXHg3ZV0vIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/XFxcXChjfEMtKVtcXHgyMC1cXHg3ZV0vIH0sXG4gICAgICB7IGJlZ2luOiAvXFxCXFw/XFxcXD9cXFMvIH0sXG4gICAgICAvLyBoZXJlZG9jc1xuICAgICAge1xuICAgICAgICAvLyB0aGlzIGd1YXJkIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGFuIGVudGlyZSBoZXJlZG9jIGFuZCBub3QgYSBmYWxzZVxuICAgICAgICAvLyBwb3NpdGl2ZSAoYXV0by1kZXRlY3QsIGV0Yy4pXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLzw8Wy1+XT8nPy8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKC8oXFx3KykoPz1cXFcpW15cXG5dKlxcbig/OlteXFxuXSpcXG4pKj9cXHMqXFwxXFxiLylcbiAgICAgICAgKSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvKFxcdyspLyxcbiAgICAgICAgICAgIGVuZDogLyhcXHcrKS8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBSdWJ5IHN5bnRheCBpcyB1bmRlcmRvY3VtZW50ZWQsIGJ1dCB0aGlzIGdyYW1tYXIgc2VlbXMgdG8gYmUgYWNjdXJhdGVcbiAgLy8gYXMgb2YgdmVyc2lvbiAyLjcuMiAoY29uZmlybWVkIHdpdGggKGlyYiBhbmQgYFJpcHBlci5zZXhwKC4uLilgKVxuICAvLyBodHRwczovL2RvY3MucnVieS1sYW5nLm9yZy9lbi8yLjcuMC9kb2Mvc3ludGF4L2xpdGVyYWxzX3Jkb2MuaHRtbCNsYWJlbC1OdW1iZXJzXG4gIGNvbnN0IGRlY2ltYWwgPSAnWzEtOV0oXz9bMC05XSkqfDAnO1xuICBjb25zdCBkaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBkZWNpbWFsIGludGVnZXIvZmxvYXQsIG9wdGlvbmFsbHkgZXhwb25lbnRpYWwgb3IgcmF0aW9uYWwsIG9wdGlvbmFsbHkgaW1hZ2luYXJ5XG4gICAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsfSkoXFxcXC4oJHtkaWdpdHN9KSk/KFtlRV1bKy1dPygke2RpZ2l0c30pfHIpP2k/XFxcXGJgIH0sXG5cbiAgICAgIC8vIGV4cGxpY2l0IGRlY2ltYWwvYmluYXJ5L29jdGFsL2hleGFkZWNpbWFsIGludGVnZXIsXG4gICAgICAvLyBvcHRpb25hbGx5IHJhdGlvbmFsIGFuZC9vciBpbWFnaW5hcnlcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW2REXVswLTldKF8/WzAtOV0pKnI/aT9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpyP2k/XFxcXGJcIiB9LFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbb09dWzAtN10oXz9bMC03XSkqcj9pP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW3hYXVswLTlhLWZBLUZdKF8/WzAtOWEtZkEtRl0pKnI/aT9cXFxcYlwiIH0sXG5cbiAgICAgIC8vIDAtcHJlZml4ZWQgaW1wbGljaXQgb2N0YWwgaW50ZWdlciwgb3B0aW9uYWxseSByYXRpb25hbCBhbmQvb3IgaW1hZ2luYXJ5XG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMChfP1swLTddKStyP2k/XFxcXGJcIiB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcKFxcKS8sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogLyg/PVxcKSkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTLFxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBJTkNMVURFX0VYVEVORCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhpbmNsdWRlfGV4dGVuZClcXHMrLyxcbiAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkVcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAyOiBcInRpdGxlLmNsYXNzXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUsXG4gICAgICAgICAgL1xccys8XFxzKy8sXG4gICAgICAgICAgQ0xBU1NfTkFNRV9XSVRIX05BTUVTUEFDRV9SRVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9cXGIoY2xhc3N8bW9kdWxlKVxccysvLFxuICAgICAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkVcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBSVUJZX0tFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgVVBQRVJfQ0FTRV9DT05TVEFOVCA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IC9cXGJbQS1aXVtBLVpfMC05XStcXGIvLFxuICAgIGNsYXNzTmFtZTogXCJ2YXJpYWJsZS5jb25zdGFudFwiXG4gIH07XG5cbiAgY29uc3QgTUVUSE9EX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9kZWYvLCAvXFxzKy8sXG4gICAgICBSVUJZX01FVEhPRF9SRVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE9CSkVDVF9DUkVBVElPTiA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIENMQVNTX05BTUVfV0lUSF9OQU1FU1BBQ0VfUkUsXG4gICAgICAvXFwubmV3Wy4gKF0vXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfVxuICB9O1xuXG4gIC8vIENhbWVsQ2FzZVxuICBjb25zdCBDTEFTU19SRUZFUkVOQ0UgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiBDTEFTU19OQU1FX1JFLFxuICAgIHNjb3BlOiBcInRpdGxlLmNsYXNzXCJcbiAgfTtcblxuICBjb25zdCBSVUJZX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgU1RSSU5HLFxuICAgIENMQVNTX0RFRklOSVRJT04sXG4gICAgSU5DTFVERV9FWFRFTkQsXG4gICAgT0JKRUNUX0NSRUFUSU9OLFxuICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgIE1FVEhPRF9ERUZJTklUSU9OLFxuICAgIHtcbiAgICAgIC8vIHN3YWxsb3cgbmFtZXNwYWNlIHF1YWxpZmllcnMgYmVmb3JlIHN5bWJvbHNcbiAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJyghfFxcXFw/KT86JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgIGJlZ2luOiAnOig/IVxcXFxzKScsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBTVFJJTkcsXG4gICAgICAgIHsgYmVnaW46IFJVQllfTUVUSE9EX1JFIH1cbiAgICAgIF0sXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIE5VTUJFUixcbiAgICB7XG4gICAgICAvLyBuZWdhdGl2ZS1sb29rIGZvcndhcmQgYXR0ZW1wdHMgdG8gcHJldmVudCBmYWxzZSBtYXRjaGVzIGxpa2U6XG4gICAgICAvLyBAaWRlbnRAIG9yICRpZGVudCQgdGhhdCBtaWdodCBpbmRpY2F0ZSB0aGlzIGlzIG5vdCBydWJ5IGF0IGFsbFxuICAgICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCIsXG4gICAgICBiZWdpbjogJyhcXFxcJFxcXFxXKXwoKFxcXFwkfEBAPykoXFxcXHcrKSkoPz1bXkAkP10pJyArIGAoPyFbQS1aYS16XSkoPyFbQCQ/J10pYFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgIGJlZ2luOiAvXFx8LyxcbiAgICAgIGVuZDogL1xcfC8sXG4gICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgcmVsZXZhbmNlOiAwLCAvLyB0aGlzIGNvdWxkIGJlIGEgbG90IG9mIHRoaW5ncyAoaW4gb3RoZXIgbGFuZ3VhZ2VzKSBvdGhlciB0aGFuIHBhcmFtc1xuICAgICAga2V5d29yZHM6IFJVQllfS0VZV09SRFNcbiAgICB9LFxuICAgIHsgLy8gcmVnZXhwIGNvbnRhaW5lclxuICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfHVubGVzcylcXFxccyonLFxuICAgICAga2V5d29yZHM6ICd1bmxlc3MnLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNUXG4gICAgICAgICAgXSxcbiAgICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogJy8nLFxuICAgICAgICAgICAgICBlbmQ6ICcvW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46IC8lclxcey8sXG4gICAgICAgICAgICAgIGVuZDogL1xcfVthLXpdKi9cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGJlZ2luOiAnJXJcXFxcKCcsXG4gICAgICAgICAgICAgIGVuZDogJ1xcXFwpW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46ICclciEnLFxuICAgICAgICAgICAgICBlbmQ6ICchW2Etel0qJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYmVnaW46ICclclxcXFxbJyxcbiAgICAgICAgICAgICAgZW5kOiAnXFxcXF1bYS16XSonXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLmNvbmNhdChJUkJfT0JKRUNULCBDT01NRU5UX01PREVTKSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXS5jb25jYXQoSVJCX09CSkVDVCwgQ09NTUVOVF9NT0RFUyk7XG5cbiAgU1VCU1QuY29udGFpbnMgPSBSVUJZX0RFRkFVTFRfQ09OVEFJTlM7XG4gIFBBUkFNUy5jb250YWlucyA9IFJVQllfREVGQVVMVF9DT05UQUlOUztcblxuICAvLyA+PlxuICAvLyA/PlxuICBjb25zdCBTSU1QTEVfUFJPTVBUID0gXCJbPj9dPlwiO1xuICAvLyBpcmIobWFpbik6MDAxOjA+XG4gIGNvbnN0IERFRkFVTFRfUFJPTVBUID0gXCJbXFxcXHcjXStcXFxcKFxcXFx3K1xcXFwpOlxcXFxkKzpcXFxcZCtbPipdXCI7XG4gIGNvbnN0IFJWTV9QUk9NUFQgPSBcIihcXFxcdystKT9cXFxcZCtcXFxcLlxcXFxkK1xcXFwuXFxcXGQrKHBcXFxcZCspP1teXFxcXGRdW14+XSs+XCI7XG5cbiAgY29uc3QgSVJCX0RFRkFVTFQgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC9eXFxzKj0+LyxcbiAgICAgIHN0YXJ0czoge1xuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFJVQllfREVGQVVMVF9DT05UQUlOU1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgYmVnaW46ICdeKCcgKyBTSU1QTEVfUFJPTVBUICsgXCJ8XCIgKyBERUZBVUxUX1BST01QVCArICd8JyArIFJWTV9QUk9NUFQgKyAnKSg/PVsgXSknLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFJVQllfREVGQVVMVF9DT05UQUlOU1xuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICBDT01NRU5UX01PREVTLnVuc2hpZnQoSVJCX09CSkVDVCk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUnVieScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3JiJyxcbiAgICAgICdnZW1zcGVjJyxcbiAgICAgICdwb2RzcGVjJyxcbiAgICAgICd0aG9yJyxcbiAgICAgICdpcmInXG4gICAgXSxcbiAgICBrZXl3b3JkczogUlVCWV9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogWyBobGpzLlNIRUJBTkcoeyBiaW5hcnk6IFwicnVieVwiIH0pIF1cbiAgICAgIC5jb25jYXQoSVJCX0RFRkFVTFQpXG4gICAgICAuY29uY2F0KENPTU1FTlRfTU9ERVMpXG4gICAgICAuY29uY2F0KFJVQllfREVGQVVMVF9DT05UQUlOUylcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBydWJ5O1xuIiwgIi8qXG5MYW5ndWFnZTogRVJCIChFbWJlZGRlZCBSdWJ5KVxuUmVxdWlyZXM6IHhtbC5qcywgcnVieS5qc1xuQXV0aG9yOiBMdWNhcyBNYXp6YSA8bHVjYXN0bWF6emFAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBLYXNzaW8gQm9yZ2VzIDxrYXNzaW9ib3JnZXNtQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBcIkJyaWRnZVwiIGxhbmd1YWdlIGRlZmluaW5nIGZyYWdtZW50cyBvZiBSdWJ5IGluIEhUTUwgd2l0aGluIDwlIC4uICU+XG5XZWJzaXRlOiBodHRwczovL3J1YnktZG9jLm9yZy9zdGRsaWItMi42LjUvbGliZG9jL2VyYi9yZG9jL0VSQi5odG1sXG5DYXRlZ29yeTogdGVtcGxhdGVcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBlcmIoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdFUkInLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKCc8JSMnLCAnJT4nKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8JVslPS1dPycsXG4gICAgICAgIGVuZDogJ1slLV0/JT4nLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXJiO1xuIiwgIi8qXG5MYW5ndWFnZTogRXJsYW5nIFJFUExcbkF1dGhvcjogU2VyZ2V5IElnbmF0b3YgPHNlcmdleUBpZ25hdG92LnNwYi5zdT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmVybGFuZy5vcmdcbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZXJsYW5nUmVwbChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRXJsYW5nIFJFUEwnLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgJ3NwYXduIHNwYXduX2xpbmsgc2VsZicsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnYWZ0ZXIgYW5kIGFuZGFsc298MTAgYmFuZCBiZWdpbiBibm90IGJvciBic2wgYnNyIGJ4b3IgY2FzZSBjYXRjaCBjb25kIGRpdiBlbmQgZnVuIGlmICdcbiAgICAgICAgKyAnbGV0IG5vdCBvZiBvciBvcmVsc2V8MTAgcXVlcnkgcmVjZWl2ZSByZW0gdHJ5IHdoZW4geG9yJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgICBiZWdpbjogJ15bMC05XSs+ICcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoJyUnLCAnJCcpLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKFxcXFxkKyhfXFxcXGQrKSojW2EtZkEtRjAtOV0rKF9bYS1mQS1GMC05XSspKnxcXFxcZCsoX1xcXFxkKykqKFxcXFwuXFxcXGQrKF9cXFxcZCspKik/KFtlRV1bLStdP1xcXFxkKyk/KScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgIC9cXD8oOjopPy8sXG4gICAgICAgIC8oW0EtWl1cXHcqKS8sIC8vIGF0IGxlYXN0IG9uZSBpZGVudGlmaWVyXG4gICAgICAgIC8oKDo6KVtBLVpdXFx3KikqLyAvLyBwZXJoYXBzIG1vcmVcbiAgICAgICkgfSxcbiAgICAgIHsgYmVnaW46ICctPicgfSxcbiAgICAgIHsgYmVnaW46ICdvaycgfSxcbiAgICAgIHsgYmVnaW46ICchJyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyhcXFxcYlthLXpcXCddW2EtekEtWjAtOV9cXCddKjpbYS16XFwnXVthLXpBLVowLTlfXFwnXSopfChcXFxcYlthLXpcXCddW2EtekEtWjAtOV9cXCddKiknLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnW0EtWl1bYS16QS1aMC05X1xcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVybGFuZ1JlcGw7XG4iLCAiLypcbkxhbmd1YWdlOiBFcmxhbmdcbkRlc2NyaXB0aW9uOiBFcmxhbmcgaXMgYSBnZW5lcmFsLXB1cnBvc2UgZnVuY3Rpb25hbCBsYW5ndWFnZSwgd2l0aCBzdHJpY3QgZXZhbHVhdGlvbiwgc2luZ2xlIGFzc2lnbm1lbnQsIGFuZCBkeW5hbWljIHR5cGluZy5cbkF1dGhvcjogTmlrb2xheSBaYWtoYXJvdiA8bmlrb2xheS5kZXNoQGdtYWlsLmNvbT4sIERtaXRyeSBLb3ZlZ2EgPGFyaGlib3RAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuZXJsYW5nLm9yZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBlcmxhbmcoaGxqcykge1xuICBjb25zdCBCQVNJQ19BVE9NX1JFID0gJ1thLXpcXCddW2EtekEtWjAtOV9cXCddKic7XG4gIGNvbnN0IEZVTkNUSU9OX05BTUVfUkUgPSAnKCcgKyBCQVNJQ19BVE9NX1JFICsgJzonICsgQkFTSUNfQVRPTV9SRSArICd8JyArIEJBU0lDX0FUT01fUkUgKyAnKSc7XG4gIGNvbnN0IEVSTEFOR19SRVNFUlZFRCA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2FmdGVyIGFuZCBhbmRhbHNvfDEwIGJhbmQgYmVnaW4gYm5vdCBib3IgYnNsIGJ6ciBieG9yIGNhc2UgY2F0Y2ggY29uZCBkaXYgZW5kIGZ1biBpZiAnXG4gICAgICArICdsZXQgbm90IG9mIG9yZWxzZXwxMCBxdWVyeSByZWNlaXZlIHJlbSB0cnkgd2hlbiB4b3InLFxuICAgIGxpdGVyYWw6XG4gICAgICAnZmFsc2UgdHJ1ZSdcbiAgfTtcblxuICBjb25zdCBDT01NRU5UID0gaGxqcy5DT01NRU5UKCclJywgJyQnKTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdcXFxcYihcXFxcZCsoX1xcXFxkKykqI1thLWZBLUYwLTldKyhfW2EtZkEtRjAtOV0rKSp8XFxcXGQrKF9cXFxcZCspKihcXFxcLlxcXFxkKyhfXFxcXGQrKSopPyhbZUVdWy0rXT9cXFxcZCspPyknLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBOQU1FRF9GVU4gPSB7IGJlZ2luOiAnZnVuXFxcXHMrJyArIEJBU0lDX0FUT01fUkUgKyAnL1xcXFxkKycgfTtcbiAgY29uc3QgRlVOQ1RJT05fQ0FMTCA9IHtcbiAgICBiZWdpbjogRlVOQ1RJT05fTkFNRV9SRSArICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogRlVOQ1RJT05fTkFNRV9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgLy8gXCJjb250YWluc1wiIGRlZmluZWQgbGF0ZXJcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFRVUExFID0ge1xuICAgIGJlZ2luOiAvXFx7LyxcbiAgICBlbmQ6IC9cXH0vLFxuICAgIHJlbGV2YW5jZTogMFxuICAgIC8vIFwiY29udGFpbnNcIiBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IFZBUjEgPSB7XG4gICAgYmVnaW46ICdcXFxcYl8oW0EtWl1bQS1aYS16MC05X10qKT8nLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBWQVIyID0ge1xuICAgIGJlZ2luOiAnW0EtWl1bYS16QS1aMC05X10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgUkVDT1JEX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogJyMnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyMnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIC8vIFwiY29udGFpbnNcIiBkZWZpbmVkIGxhdGVyXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBDSEFSX0xJVEVSQUwgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIG1hdGNoOiAvXFwkKFxcXFwoW14wLTldfFswLTldezEsM318KXwuKS8sXG4gIH07XG5cbiAgY29uc3QgQkxPQ0tfU1RBVEVNRU5UUyA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnZnVuIHJlY2VpdmUgaWYgdHJ5IGNhc2UnLFxuICAgIGVuZDogJ2VuZCcsXG4gICAga2V5d29yZHM6IEVSTEFOR19SRVNFUlZFRFxuICB9O1xuICBCTE9DS19TVEFURU1FTlRTLmNvbnRhaW5zID0gW1xuICAgIENPTU1FTlQsXG4gICAgTkFNRURfRlVOLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnJyB9KSxcbiAgICBCTE9DS19TVEFURU1FTlRTLFxuICAgIEZVTkNUSU9OX0NBTEwsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBOVU1CRVIsXG4gICAgVFVQTEUsXG4gICAgVkFSMSxcbiAgICBWQVIyLFxuICAgIFJFQ09SRF9BQ0NFU1MsXG4gICAgQ0hBUl9MSVRFUkFMXG4gIF07XG5cbiAgY29uc3QgQkFTSUNfTU9ERVMgPSBbXG4gICAgQ09NTUVOVCxcbiAgICBOQU1FRF9GVU4sXG4gICAgQkxPQ0tfU1RBVEVNRU5UUyxcbiAgICBGVU5DVElPTl9DQUxMLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgTlVNQkVSLFxuICAgIFRVUExFLFxuICAgIFZBUjEsXG4gICAgVkFSMixcbiAgICBSRUNPUkRfQUNDRVNTLFxuICAgIENIQVJfTElURVJBTFxuICBdO1xuICBGVU5DVElPTl9DQUxMLmNvbnRhaW5zWzFdLmNvbnRhaW5zID0gQkFTSUNfTU9ERVM7XG4gIFRVUExFLmNvbnRhaW5zID0gQkFTSUNfTU9ERVM7XG4gIFJFQ09SRF9BQ0NFU1MuY29udGFpbnNbMV0uY29udGFpbnMgPSBCQVNJQ19NT0RFUztcblxuICBjb25zdCBESVJFQ1RJVkVTID0gW1xuICAgIFwiLW1vZHVsZVwiLFxuICAgIFwiLXJlY29yZFwiLFxuICAgIFwiLXVuZGVmXCIsXG4gICAgXCItZXhwb3J0XCIsXG4gICAgXCItaWZkZWZcIixcbiAgICBcIi1pZm5kZWZcIixcbiAgICBcIi1hdXRob3JcIixcbiAgICBcIi1jb3B5cmlnaHRcIixcbiAgICBcIi1kb2NcIixcbiAgICBcIi12c25cIixcbiAgICBcIi1pbXBvcnRcIixcbiAgICBcIi1pbmNsdWRlXCIsXG4gICAgXCItaW5jbHVkZV9saWJcIixcbiAgICBcIi1jb21waWxlXCIsXG4gICAgXCItZGVmaW5lXCIsXG4gICAgXCItZWxzZVwiLFxuICAgIFwiLWVuZGlmXCIsXG4gICAgXCItZmlsZVwiLFxuICAgIFwiLWJlaGF2aW91clwiLFxuICAgIFwiLWJlaGF2aW9yXCIsXG4gICAgXCItc3BlY1wiXG4gIF07XG5cbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBCQVNJQ19NT0RFU1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0VybGFuZycsXG4gICAgYWxpYXNlczogWyAnZXJsJyBdLFxuICAgIGtleXdvcmRzOiBFUkxBTkdfUkVTRVJWRUQsXG4gICAgaWxsZWdhbDogJyg8L3xcXFxcKj18XFxcXCs9fC09fC9cXFxcKnxcXFxcKi98XFxcXChcXFxcKnxcXFxcKlxcXFwpKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ14nICsgQkFTSUNfQVRPTV9SRSArICdcXFxccypcXFxcKCcsXG4gICAgICAgIGVuZDogJy0+JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGlsbGVnYWw6ICdcXFxcKHwjfC8vfC9cXFxcKnxcXFxcXFxcXHw6fDsnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBCQVNJQ19BVE9NX1JFIH0pXG4gICAgICAgIF0sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJzt8XFxcXC4nLFxuICAgICAgICAgIGtleXdvcmRzOiBFUkxBTkdfUkVTRVJWRUQsXG4gICAgICAgICAgY29udGFpbnM6IEJBU0lDX01PREVTXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBDT01NRU5ULFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ14tJyxcbiAgICAgICAgZW5kOiAnXFxcXC4nLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgICRwYXR0ZXJuOiAnLScgKyBobGpzLklERU5UX1JFLFxuICAgICAgICAgIGtleXdvcmQ6IERJUkVDVElWRVMubWFwKHggPT4gYCR7eH18MS41YCkuam9pbihcIiBcIilcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgIH0sXG4gICAgICBOVU1CRVIsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgUkVDT1JEX0FDQ0VTUyxcbiAgICAgIFZBUjEsXG4gICAgICBWQVIyLFxuICAgICAgVFVQTEUsXG4gICAgICBDSEFSX0xJVEVSQUwsXG4gICAgICB7IGJlZ2luOiAvXFwuJC8gfSAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcmxhbmc7XG4iLCAiLypcbkxhbmd1YWdlOiBFeGNlbCBmb3JtdWxhZVxuQXV0aG9yOiBWaWN0b3IgWmhvdSA8T2lDTXVka2lwc0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+XG5EZXNjcmlwdGlvbjogRXhjZWwgZm9ybXVsYWVcbldlYnNpdGU6IGh0dHBzOi8vcHJvZHVjdHMub2ZmaWNlLmNvbS9lbi11cy9leGNlbC9cbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gZXhjZWwoaGxqcykge1xuICAvLyBidWlsdC1pbiBmdW5jdGlvbnMgaW1wb3J0ZWQgZnJvbSBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNjA1MTMwNDI3MTAvaHR0cHM6Ly9zdXBwb3J0Lm9mZmljZS5jb20vZW4tdXMvYXJ0aWNsZS9FeGNlbC1mdW5jdGlvbnMtYWxwaGFiZXRpY2FsLWIzOTQ0NTcyLTI1NWQtNGVmYi1iYjk2LWM2ZDkwMDMzZTE4OFxuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJBQlNcIixcbiAgICBcIkFDQ1JJTlRcIixcbiAgICBcIkFDQ1JJTlRNXCIsXG4gICAgXCJBQ09TXCIsXG4gICAgXCJBQ09TSFwiLFxuICAgIFwiQUNPVFwiLFxuICAgIFwiQUNPVEhcIixcbiAgICBcIkFHR1JFR0FURVwiLFxuICAgIFwiQUREUkVTU1wiLFxuICAgIFwiQU1PUkRFR1JDXCIsXG4gICAgXCJBTU9STElOQ1wiLFxuICAgIFwiQU5EXCIsXG4gICAgXCJBUkFCSUNcIixcbiAgICBcIkFSRUFTXCIsXG4gICAgXCJBU0NcIixcbiAgICBcIkFTSU5cIixcbiAgICBcIkFTSU5IXCIsXG4gICAgXCJBVEFOXCIsXG4gICAgXCJBVEFOMlwiLFxuICAgIFwiQVRBTkhcIixcbiAgICBcIkFWRURFVlwiLFxuICAgIFwiQVZFUkFHRVwiLFxuICAgIFwiQVZFUkFHRUFcIixcbiAgICBcIkFWRVJBR0VJRlwiLFxuICAgIFwiQVZFUkFHRUlGU1wiLFxuICAgIFwiQkFIVFRFWFRcIixcbiAgICBcIkJBU0VcIixcbiAgICBcIkJFU1NFTElcIixcbiAgICBcIkJFU1NFTEpcIixcbiAgICBcIkJFU1NFTEtcIixcbiAgICBcIkJFU1NFTFlcIixcbiAgICBcIkJFVEFESVNUXCIsXG4gICAgXCJCRVRBLkRJU1RcIixcbiAgICBcIkJFVEFJTlZcIixcbiAgICBcIkJFVEEuSU5WXCIsXG4gICAgXCJCSU4yREVDXCIsXG4gICAgXCJCSU4ySEVYXCIsXG4gICAgXCJCSU4yT0NUXCIsXG4gICAgXCJCSU5PTURJU1RcIixcbiAgICBcIkJJTk9NLkRJU1RcIixcbiAgICBcIkJJTk9NLkRJU1QuUkFOR0VcIixcbiAgICBcIkJJTk9NLklOVlwiLFxuICAgIFwiQklUQU5EXCIsXG4gICAgXCJCSVRMU0hJRlRcIixcbiAgICBcIkJJVE9SXCIsXG4gICAgXCJCSVRSU0hJRlRcIixcbiAgICBcIkJJVFhPUlwiLFxuICAgIFwiQ0FMTFwiLFxuICAgIFwiQ0VJTElOR1wiLFxuICAgIFwiQ0VJTElORy5NQVRIXCIsXG4gICAgXCJDRUlMSU5HLlBSRUNJU0VcIixcbiAgICBcIkNFTExcIixcbiAgICBcIkNIQVJcIixcbiAgICBcIkNISURJU1RcIixcbiAgICBcIkNISUlOVlwiLFxuICAgIFwiQ0hJVEVTVFwiLFxuICAgIFwiQ0hJU1EuRElTVFwiLFxuICAgIFwiQ0hJU1EuRElTVC5SVFwiLFxuICAgIFwiQ0hJU1EuSU5WXCIsXG4gICAgXCJDSElTUS5JTlYuUlRcIixcbiAgICBcIkNISVNRLlRFU1RcIixcbiAgICBcIkNIT09TRVwiLFxuICAgIFwiQ0xFQU5cIixcbiAgICBcIkNPREVcIixcbiAgICBcIkNPTFVNTlwiLFxuICAgIFwiQ09MVU1OU1wiLFxuICAgIFwiQ09NQklOXCIsXG4gICAgXCJDT01CSU5BXCIsXG4gICAgXCJDT01QTEVYXCIsXG4gICAgXCJDT05DQVRcIixcbiAgICBcIkNPTkNBVEVOQVRFXCIsXG4gICAgXCJDT05GSURFTkNFXCIsXG4gICAgXCJDT05GSURFTkNFLk5PUk1cIixcbiAgICBcIkNPTkZJREVOQ0UuVFwiLFxuICAgIFwiQ09OVkVSVFwiLFxuICAgIFwiQ09SUkVMXCIsXG4gICAgXCJDT1NcIixcbiAgICBcIkNPU0hcIixcbiAgICBcIkNPVFwiLFxuICAgIFwiQ09USFwiLFxuICAgIFwiQ09VTlRcIixcbiAgICBcIkNPVU5UQVwiLFxuICAgIFwiQ09VTlRCTEFOS1wiLFxuICAgIFwiQ09VTlRJRlwiLFxuICAgIFwiQ09VTlRJRlNcIixcbiAgICBcIkNPVVBEQVlCU1wiLFxuICAgIFwiQ09VUERBWVNcIixcbiAgICBcIkNPVVBEQVlTTkNcIixcbiAgICBcIkNPVVBOQ0RcIixcbiAgICBcIkNPVVBOVU1cIixcbiAgICBcIkNPVVBQQ0RcIixcbiAgICBcIkNPVkFSXCIsXG4gICAgXCJDT1ZBUklBTkNFLlBcIixcbiAgICBcIkNPVkFSSUFOQ0UuU1wiLFxuICAgIFwiQ1JJVEJJTk9NXCIsXG4gICAgXCJDU0NcIixcbiAgICBcIkNTQ0hcIixcbiAgICBcIkNVQkVLUElNRU1CRVJcIixcbiAgICBcIkNVQkVNRU1CRVJcIixcbiAgICBcIkNVQkVNRU1CRVJQUk9QRVJUWVwiLFxuICAgIFwiQ1VCRVJBTktFRE1FTUJFUlwiLFxuICAgIFwiQ1VCRVNFVFwiLFxuICAgIFwiQ1VCRVNFVENPVU5UXCIsXG4gICAgXCJDVUJFVkFMVUVcIixcbiAgICBcIkNVTUlQTVRcIixcbiAgICBcIkNVTVBSSU5DXCIsXG4gICAgXCJEQVRFXCIsXG4gICAgXCJEQVRFRElGXCIsXG4gICAgXCJEQVRFVkFMVUVcIixcbiAgICBcIkRBVkVSQUdFXCIsXG4gICAgXCJEQVlcIixcbiAgICBcIkRBWVNcIixcbiAgICBcIkRBWVMzNjBcIixcbiAgICBcIkRCXCIsXG4gICAgXCJEQkNTXCIsXG4gICAgXCJEQ09VTlRcIixcbiAgICBcIkRDT1VOVEFcIixcbiAgICBcIkREQlwiLFxuICAgIFwiREVDMkJJTlwiLFxuICAgIFwiREVDMkhFWFwiLFxuICAgIFwiREVDMk9DVFwiLFxuICAgIFwiREVDSU1BTFwiLFxuICAgIFwiREVHUkVFU1wiLFxuICAgIFwiREVMVEFcIixcbiAgICBcIkRFVlNRXCIsXG4gICAgXCJER0VUXCIsXG4gICAgXCJESVNDXCIsXG4gICAgXCJETUFYXCIsXG4gICAgXCJETUlOXCIsXG4gICAgXCJET0xMQVJcIixcbiAgICBcIkRPTExBUkRFXCIsXG4gICAgXCJET0xMQVJGUlwiLFxuICAgIFwiRFBST0RVQ1RcIixcbiAgICBcIkRTVERFVlwiLFxuICAgIFwiRFNUREVWUFwiLFxuICAgIFwiRFNVTVwiLFxuICAgIFwiRFVSQVRJT05cIixcbiAgICBcIkRWQVJcIixcbiAgICBcIkRWQVJQXCIsXG4gICAgXCJFREFURVwiLFxuICAgIFwiRUZGRUNUXCIsXG4gICAgXCJFTkNPREVVUkxcIixcbiAgICBcIkVPTU9OVEhcIixcbiAgICBcIkVSRlwiLFxuICAgIFwiRVJGLlBSRUNJU0VcIixcbiAgICBcIkVSRkNcIixcbiAgICBcIkVSRkMuUFJFQ0lTRVwiLFxuICAgIFwiRVJST1IuVFlQRVwiLFxuICAgIFwiRVVST0NPTlZFUlRcIixcbiAgICBcIkVWRU5cIixcbiAgICBcIkVYQUNUXCIsXG4gICAgXCJFWFBcIixcbiAgICBcIkVYUE9OLkRJU1RcIixcbiAgICBcIkVYUE9ORElTVFwiLFxuICAgIFwiRkFDVFwiLFxuICAgIFwiRkFDVERPVUJMRVwiLFxuICAgIFwiRkFMU0V8MFwiLFxuICAgIFwiRi5ESVNUXCIsXG4gICAgXCJGRElTVFwiLFxuICAgIFwiRi5ESVNULlJUXCIsXG4gICAgXCJGSUxURVJYTUxcIixcbiAgICBcIkZJTkRcIixcbiAgICBcIkZJTkRCXCIsXG4gICAgXCJGLklOVlwiLFxuICAgIFwiRi5JTlYuUlRcIixcbiAgICBcIkZJTlZcIixcbiAgICBcIkZJU0hFUlwiLFxuICAgIFwiRklTSEVSSU5WXCIsXG4gICAgXCJGSVhFRFwiLFxuICAgIFwiRkxPT1JcIixcbiAgICBcIkZMT09SLk1BVEhcIixcbiAgICBcIkZMT09SLlBSRUNJU0VcIixcbiAgICBcIkZPUkVDQVNUXCIsXG4gICAgXCJGT1JFQ0FTVC5FVFNcIixcbiAgICBcIkZPUkVDQVNULkVUUy5DT05GSU5UXCIsXG4gICAgXCJGT1JFQ0FTVC5FVFMuU0VBU09OQUxJVFlcIixcbiAgICBcIkZPUkVDQVNULkVUUy5TVEFUXCIsXG4gICAgXCJGT1JFQ0FTVC5MSU5FQVJcIixcbiAgICBcIkZPUk1VTEFURVhUXCIsXG4gICAgXCJGUkVRVUVOQ1lcIixcbiAgICBcIkYuVEVTVFwiLFxuICAgIFwiRlRFU1RcIixcbiAgICBcIkZWXCIsXG4gICAgXCJGVlNDSEVEVUxFXCIsXG4gICAgXCJHQU1NQVwiLFxuICAgIFwiR0FNTUEuRElTVFwiLFxuICAgIFwiR0FNTUFESVNUXCIsXG4gICAgXCJHQU1NQS5JTlZcIixcbiAgICBcIkdBTU1BSU5WXCIsXG4gICAgXCJHQU1NQUxOXCIsXG4gICAgXCJHQU1NQUxOLlBSRUNJU0VcIixcbiAgICBcIkdBVVNTXCIsXG4gICAgXCJHQ0RcIixcbiAgICBcIkdFT01FQU5cIixcbiAgICBcIkdFU1RFUFwiLFxuICAgIFwiR0VUUElWT1REQVRBXCIsXG4gICAgXCJHUk9XVEhcIixcbiAgICBcIkhBUk1FQU5cIixcbiAgICBcIkhFWDJCSU5cIixcbiAgICBcIkhFWDJERUNcIixcbiAgICBcIkhFWDJPQ1RcIixcbiAgICBcIkhMT09LVVBcIixcbiAgICBcIkhPVVJcIixcbiAgICBcIkhZUEVSTElOS1wiLFxuICAgIFwiSFlQR0VPTS5ESVNUXCIsXG4gICAgXCJIWVBHRU9NRElTVFwiLFxuICAgIFwiSUZcIixcbiAgICBcIklGRVJST1JcIixcbiAgICBcIklGTkFcIixcbiAgICBcIklGU1wiLFxuICAgIFwiSU1BQlNcIixcbiAgICBcIklNQUdJTkFSWVwiLFxuICAgIFwiSU1BUkdVTUVOVFwiLFxuICAgIFwiSU1DT05KVUdBVEVcIixcbiAgICBcIklNQ09TXCIsXG4gICAgXCJJTUNPU0hcIixcbiAgICBcIklNQ09UXCIsXG4gICAgXCJJTUNTQ1wiLFxuICAgIFwiSU1DU0NIXCIsXG4gICAgXCJJTURJVlwiLFxuICAgIFwiSU1FWFBcIixcbiAgICBcIklNTE5cIixcbiAgICBcIklNTE9HMTBcIixcbiAgICBcIklNTE9HMlwiLFxuICAgIFwiSU1QT1dFUlwiLFxuICAgIFwiSU1QUk9EVUNUXCIsXG4gICAgXCJJTVJFQUxcIixcbiAgICBcIklNU0VDXCIsXG4gICAgXCJJTVNFQ0hcIixcbiAgICBcIklNU0lOXCIsXG4gICAgXCJJTVNJTkhcIixcbiAgICBcIklNU1FSVFwiLFxuICAgIFwiSU1TVUJcIixcbiAgICBcIklNU1VNXCIsXG4gICAgXCJJTVRBTlwiLFxuICAgIFwiSU5ERVhcIixcbiAgICBcIklORElSRUNUXCIsXG4gICAgXCJJTkZPXCIsXG4gICAgXCJJTlRcIixcbiAgICBcIklOVEVSQ0VQVFwiLFxuICAgIFwiSU5UUkFURVwiLFxuICAgIFwiSVBNVFwiLFxuICAgIFwiSVJSXCIsXG4gICAgXCJJU0JMQU5LXCIsXG4gICAgXCJJU0VSUlwiLFxuICAgIFwiSVNFUlJPUlwiLFxuICAgIFwiSVNFVkVOXCIsXG4gICAgXCJJU0ZPUk1VTEFcIixcbiAgICBcIklTTE9HSUNBTFwiLFxuICAgIFwiSVNOQVwiLFxuICAgIFwiSVNOT05URVhUXCIsXG4gICAgXCJJU05VTUJFUlwiLFxuICAgIFwiSVNPRERcIixcbiAgICBcIklTUkVGXCIsXG4gICAgXCJJU1RFWFRcIixcbiAgICBcIklTTy5DRUlMSU5HXCIsXG4gICAgXCJJU09XRUVLTlVNXCIsXG4gICAgXCJJU1BNVFwiLFxuICAgIFwiSklTXCIsXG4gICAgXCJLVVJUXCIsXG4gICAgXCJMQVJHRVwiLFxuICAgIFwiTENNXCIsXG4gICAgXCJMRUZUXCIsXG4gICAgXCJMRUZUQlwiLFxuICAgIFwiTEVOXCIsXG4gICAgXCJMRU5CXCIsXG4gICAgXCJMSU5FU1RcIixcbiAgICBcIkxOXCIsXG4gICAgXCJMT0dcIixcbiAgICBcIkxPRzEwXCIsXG4gICAgXCJMT0dFU1RcIixcbiAgICBcIkxPR0lOVlwiLFxuICAgIFwiTE9HTk9STS5ESVNUXCIsXG4gICAgXCJMT0dOT1JNRElTVFwiLFxuICAgIFwiTE9HTk9STS5JTlZcIixcbiAgICBcIkxPT0tVUFwiLFxuICAgIFwiTE9XRVJcIixcbiAgICBcIk1BVENIXCIsXG4gICAgXCJNQVhcIixcbiAgICBcIk1BWEFcIixcbiAgICBcIk1BWElGU1wiLFxuICAgIFwiTURFVEVSTVwiLFxuICAgIFwiTURVUkFUSU9OXCIsXG4gICAgXCJNRURJQU5cIixcbiAgICBcIk1JRFwiLFxuICAgIFwiTUlEQnNcIixcbiAgICBcIk1JTlwiLFxuICAgIFwiTUlOSUZTXCIsXG4gICAgXCJNSU5BXCIsXG4gICAgXCJNSU5VVEVcIixcbiAgICBcIk1JTlZFUlNFXCIsXG4gICAgXCJNSVJSXCIsXG4gICAgXCJNTVVMVFwiLFxuICAgIFwiTU9EXCIsXG4gICAgXCJNT0RFXCIsXG4gICAgXCJNT0RFLk1VTFRcIixcbiAgICBcIk1PREUuU05HTFwiLFxuICAgIFwiTU9OVEhcIixcbiAgICBcIk1ST1VORFwiLFxuICAgIFwiTVVMVElOT01JQUxcIixcbiAgICBcIk1VTklUXCIsXG4gICAgXCJOXCIsXG4gICAgXCJOQVwiLFxuICAgIFwiTkVHQklOT00uRElTVFwiLFxuICAgIFwiTkVHQklOT01ESVNUXCIsXG4gICAgXCJORVRXT1JLREFZU1wiLFxuICAgIFwiTkVUV09SS0RBWVMuSU5UTFwiLFxuICAgIFwiTk9NSU5BTFwiLFxuICAgIFwiTk9STS5ESVNUXCIsXG4gICAgXCJOT1JNRElTVFwiLFxuICAgIFwiTk9STUlOVlwiLFxuICAgIFwiTk9STS5JTlZcIixcbiAgICBcIk5PUk0uUy5ESVNUXCIsXG4gICAgXCJOT1JNU0RJU1RcIixcbiAgICBcIk5PUk0uUy5JTlZcIixcbiAgICBcIk5PUk1TSU5WXCIsXG4gICAgXCJOT1RcIixcbiAgICBcIk5PV1wiLFxuICAgIFwiTlBFUlwiLFxuICAgIFwiTlBWXCIsXG4gICAgXCJOVU1CRVJWQUxVRVwiLFxuICAgIFwiT0NUMkJJTlwiLFxuICAgIFwiT0NUMkRFQ1wiLFxuICAgIFwiT0NUMkhFWFwiLFxuICAgIFwiT0REXCIsXG4gICAgXCJPRERGUFJJQ0VcIixcbiAgICBcIk9EREZZSUVMRFwiLFxuICAgIFwiT0RETFBSSUNFXCIsXG4gICAgXCJPRERMWUlFTERcIixcbiAgICBcIk9GRlNFVFwiLFxuICAgIFwiT1JcIixcbiAgICBcIlBEVVJBVElPTlwiLFxuICAgIFwiUEVBUlNPTlwiLFxuICAgIFwiUEVSQ0VOVElMRS5FWENcIixcbiAgICBcIlBFUkNFTlRJTEUuSU5DXCIsXG4gICAgXCJQRVJDRU5USUxFXCIsXG4gICAgXCJQRVJDRU5UUkFOSy5FWENcIixcbiAgICBcIlBFUkNFTlRSQU5LLklOQ1wiLFxuICAgIFwiUEVSQ0VOVFJBTktcIixcbiAgICBcIlBFUk1VVFwiLFxuICAgIFwiUEVSTVVUQVRJT05BXCIsXG4gICAgXCJQSElcIixcbiAgICBcIlBIT05FVElDXCIsXG4gICAgXCJQSVwiLFxuICAgIFwiUE1UXCIsXG4gICAgXCJQT0lTU09OLkRJU1RcIixcbiAgICBcIlBPSVNTT05cIixcbiAgICBcIlBPV0VSXCIsXG4gICAgXCJQUE1UXCIsXG4gICAgXCJQUklDRVwiLFxuICAgIFwiUFJJQ0VESVNDXCIsXG4gICAgXCJQUklDRU1BVFwiLFxuICAgIFwiUFJPQlwiLFxuICAgIFwiUFJPRFVDVFwiLFxuICAgIFwiUFJPUEVSXCIsXG4gICAgXCJQVlwiLFxuICAgIFwiUVVBUlRJTEVcIixcbiAgICBcIlFVQVJUSUxFLkVYQ1wiLFxuICAgIFwiUVVBUlRJTEUuSU5DXCIsXG4gICAgXCJRVU9USUVOVFwiLFxuICAgIFwiUkFESUFOU1wiLFxuICAgIFwiUkFORFwiLFxuICAgIFwiUkFOREJFVFdFRU5cIixcbiAgICBcIlJBTksuQVZHXCIsXG4gICAgXCJSQU5LLkVRXCIsXG4gICAgXCJSQU5LXCIsXG4gICAgXCJSQVRFXCIsXG4gICAgXCJSRUNFSVZFRFwiLFxuICAgIFwiUkVHSVNURVIuSURcIixcbiAgICBcIlJFUExBQ0VcIixcbiAgICBcIlJFUExBQ0VCXCIsXG4gICAgXCJSRVBUXCIsXG4gICAgXCJSSUdIVFwiLFxuICAgIFwiUklHSFRCXCIsXG4gICAgXCJST01BTlwiLFxuICAgIFwiUk9VTkRcIixcbiAgICBcIlJPVU5ERE9XTlwiLFxuICAgIFwiUk9VTkRVUFwiLFxuICAgIFwiUk9XXCIsXG4gICAgXCJST1dTXCIsXG4gICAgXCJSUklcIixcbiAgICBcIlJTUVwiLFxuICAgIFwiUlREXCIsXG4gICAgXCJTRUFSQ0hcIixcbiAgICBcIlNFQVJDSEJcIixcbiAgICBcIlNFQ1wiLFxuICAgIFwiU0VDSFwiLFxuICAgIFwiU0VDT05EXCIsXG4gICAgXCJTRVJJRVNTVU1cIixcbiAgICBcIlNIRUVUXCIsXG4gICAgXCJTSEVFVFNcIixcbiAgICBcIlNJR05cIixcbiAgICBcIlNJTlwiLFxuICAgIFwiU0lOSFwiLFxuICAgIFwiU0tFV1wiLFxuICAgIFwiU0tFVy5QXCIsXG4gICAgXCJTTE5cIixcbiAgICBcIlNMT1BFXCIsXG4gICAgXCJTTUFMTFwiLFxuICAgIFwiU1FMLlJFUVVFU1RcIixcbiAgICBcIlNRUlRcIixcbiAgICBcIlNRUlRQSVwiLFxuICAgIFwiU1RBTkRBUkRJWkVcIixcbiAgICBcIlNUREVWXCIsXG4gICAgXCJTVERFVi5QXCIsXG4gICAgXCJTVERFVi5TXCIsXG4gICAgXCJTVERFVkFcIixcbiAgICBcIlNUREVWUFwiLFxuICAgIFwiU1RERVZQQVwiLFxuICAgIFwiU1RFWVhcIixcbiAgICBcIlNVQlNUSVRVVEVcIixcbiAgICBcIlNVQlRPVEFMXCIsXG4gICAgXCJTVU1cIixcbiAgICBcIlNVTUlGXCIsXG4gICAgXCJTVU1JRlNcIixcbiAgICBcIlNVTVBST0RVQ1RcIixcbiAgICBcIlNVTVNRXCIsXG4gICAgXCJTVU1YMk1ZMlwiLFxuICAgIFwiU1VNWDJQWTJcIixcbiAgICBcIlNVTVhNWTJcIixcbiAgICBcIlNXSVRDSFwiLFxuICAgIFwiU1lEXCIsXG4gICAgXCJUXCIsXG4gICAgXCJUQU5cIixcbiAgICBcIlRBTkhcIixcbiAgICBcIlRCSUxMRVFcIixcbiAgICBcIlRCSUxMUFJJQ0VcIixcbiAgICBcIlRCSUxMWUlFTERcIixcbiAgICBcIlQuRElTVFwiLFxuICAgIFwiVC5ESVNULjJUXCIsXG4gICAgXCJULkRJU1QuUlRcIixcbiAgICBcIlRESVNUXCIsXG4gICAgXCJURVhUXCIsXG4gICAgXCJURVhUSk9JTlwiLFxuICAgIFwiVElNRVwiLFxuICAgIFwiVElNRVZBTFVFXCIsXG4gICAgXCJULklOVlwiLFxuICAgIFwiVC5JTlYuMlRcIixcbiAgICBcIlRJTlZcIixcbiAgICBcIlRPREFZXCIsXG4gICAgXCJUUkFOU1BPU0VcIixcbiAgICBcIlRSRU5EXCIsXG4gICAgXCJUUklNXCIsXG4gICAgXCJUUklNTUVBTlwiLFxuICAgIFwiVFJVRXwwXCIsXG4gICAgXCJUUlVOQ1wiLFxuICAgIFwiVC5URVNUXCIsXG4gICAgXCJUVEVTVFwiLFxuICAgIFwiVFlQRVwiLFxuICAgIFwiVU5JQ0hBUlwiLFxuICAgIFwiVU5JQ09ERVwiLFxuICAgIFwiVVBQRVJcIixcbiAgICBcIlZBTFVFXCIsXG4gICAgXCJWQVJcIixcbiAgICBcIlZBUi5QXCIsXG4gICAgXCJWQVIuU1wiLFxuICAgIFwiVkFSQVwiLFxuICAgIFwiVkFSUFwiLFxuICAgIFwiVkFSUEFcIixcbiAgICBcIlZEQlwiLFxuICAgIFwiVkxPT0tVUFwiLFxuICAgIFwiV0VCU0VSVklDRVwiLFxuICAgIFwiV0VFS0RBWVwiLFxuICAgIFwiV0VFS05VTVwiLFxuICAgIFwiV0VJQlVMTFwiLFxuICAgIFwiV0VJQlVMTC5ESVNUXCIsXG4gICAgXCJXT1JLREFZXCIsXG4gICAgXCJXT1JLREFZLklOVExcIixcbiAgICBcIlhJUlJcIixcbiAgICBcIlhOUFZcIixcbiAgICBcIlhPUlwiLFxuICAgIFwiWUVBUlwiLFxuICAgIFwiWUVBUkZSQUNcIixcbiAgICBcIllJRUxEXCIsXG4gICAgXCJZSUVMRERJU0NcIixcbiAgICBcIllJRUxETUFUXCIsXG4gICAgXCJaLlRFU1RcIixcbiAgICBcIlpURVNUXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRXhjZWwgZm9ybXVsYWUnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICd4bHN4JyxcbiAgICAgICd4bHMnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogL1thLXpBLVpdW1xcd1xcLl0qLyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTlNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIC8qIG1hdGNoZXMgYSBiZWdpbm5pbmcgZXF1YWwgc2lnbiBmb3VuZCBpbiBFeGNlbCBmb3JtdWxhIGV4YW1wbGVzICovXG4gICAgICAgIGJlZ2luOiAvXj0vLFxuICAgICAgICBlbmQ6IC9bXj1dLyxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvPS8sIC8qIG9ubHkgYWxsb3cgc2luZ2xlIGVxdWFsIHNpZ24gYXQgZnJvbnQgb2YgbGluZSAqL1xuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLyogdGVjaG5pY2FsbHksIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gMiBsZXR0ZXJzIGluIGNvbHVtbiBuYW1lcywgYnV0IHRoaXMgcHJldmVudHMgY29uZmxpY3Qgd2l0aCBzb21lIGtleXdvcmRzICovXG4gICAgICB7XG4gICAgICAgIC8qIG1hdGNoZXMgYSByZWZlcmVuY2UgdG8gYSBzaW5nbGUgY2VsbCAqL1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL1xcYltBLVpdezEsMn1cXGQrXFxiLyxcbiAgICAgICAgZW5kOiAvW15cXGRdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvKiBtYXRjaGVzIGEgcmVmZXJlbmNlIHRvIGEgcmFuZ2Ugb2YgY2VsbHMgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9bQS1aXXswLDJ9XFxkKjpbQS1aXXswLDJ9XFxkKi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBobGpzLk5VTUJFUl9SRSArICcoJSk/JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLyogRXhjZWwgZm9ybXVsYSBjb21tZW50cyBhcmUgZG9uZSBieSBwdXR0aW5nIHRoZSBjb21tZW50IGluIGEgZnVuY3Rpb24gY2FsbCB0byBOKCkgKi9cbiAgICAgIGhsanMuQ09NTUVOVCgvXFxiTlxcKC8sIC9cXCkvLFxuICAgICAgICB7XG4gICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgaWxsZWdhbDogL1xcbi9cbiAgICAgICAgfSlcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZXhjZWw7XG4iLCAiLypcbkxhbmd1YWdlOiBGSVhcbkF1dGhvcjogQnJlbnQgQnJhZGJ1cnkgPGJyZW50QGJyZW50aXVtLmNvbT5cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBmaXgoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdGSVgnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvW15cXHUyNDAxXFx1MDAwMV0rLyxcbiAgICAgICAgZW5kOiAvW1xcdTI0MDFcXHUwMDAxXS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvKFteXFx1MjQwMVxcdTAwMDE9XSspLyxcbiAgICAgICAgICAgIGVuZDogLz0oW15cXHUyNDAxXFx1MDAwMT1dKykvLFxuICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IGZhbHNlLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgICAgICBlbmQ6IC8oW1xcdTI0MDFcXHUwMDAxXSkvLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZydcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWVcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmaXg7XG4iLCAiLypcbiBMYW5ndWFnZTogRmxpeFxuIENhdGVnb3J5OiBmdW5jdGlvbmFsXG4gQXV0aG9yOiBNYWdudXMgTWFkc2VuIDxtbWFkc2VuQHV3YXRlcmxvby5jYT5cbiBXZWJzaXRlOiBodHRwczovL2ZsaXguZGV2L1xuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBmbGl4KGhsanMpIHtcbiAgY29uc3QgQ0hBUiA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJygufFxcXFxbeFh1VV1bYS16QS1aMC05XSspJy9cbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5BTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogL1teMC05XFxuXFx0IFwiJygpLC5ge31cXFtcXF06O11bXlxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjtdK3xbXjAtOVxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjs9XS9cbiAgfTtcblxuICBjb25zdCBNRVRIT0QgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdkZWYnLFxuICAgIGVuZDogL1s6PXtcXFsoXFxuO10vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgY29udGFpbnM6IFsgTkFNRSBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRmxpeCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IFtcbiAgICAgICAgXCJjYXNlXCIsXG4gICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgXCJkZWZcIixcbiAgICAgICAgXCJlbHNlXCIsXG4gICAgICAgIFwiZW51bVwiLFxuICAgICAgICBcImlmXCIsXG4gICAgICAgIFwiaW1wbFwiLFxuICAgICAgICBcImltcG9ydFwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwibGF0XCIsXG4gICAgICAgIFwicmVsXCIsXG4gICAgICAgIFwiaW5kZXhcIixcbiAgICAgICAgXCJsZXRcIixcbiAgICAgICAgXCJtYXRjaFwiLFxuICAgICAgICBcIm5hbWVzcGFjZVwiLFxuICAgICAgICBcInN3aXRjaFwiLFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJ5aWVsZFwiLFxuICAgICAgICBcIndpdGhcIlxuICAgICAgXSxcbiAgICAgIGxpdGVyYWw6IFtcbiAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgIFwiZmFsc2VcIlxuICAgICAgXVxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDSEFSLFxuICAgICAgU1RSSU5HLFxuICAgICAgTUVUSE9ELFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZsaXg7XG4iLCAiLypcbkxhbmd1YWdlOiBGb3J0cmFuXG5BdXRob3I6IEFudGhvbnkgU2NlbWFtYSA8c2NlbWFtYUBpcnNhbWMudXBzLXRsc2UuZnI+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Gb3J0cmFuXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGZvcnRyYW4oaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJ1xuICB9O1xuXG4gIGNvbnN0IENPTU1FTlQgPSB7IHZhcmlhbnRzOiBbXG4gICAgaGxqcy5DT01NRU5UKCchJywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAvLyBhbGxvdyBGT1JUUkFOIDc3IHN0eWxlIGNvbW1lbnRzXG4gICAgaGxqcy5DT01NRU5UKCdeQ1sgXScsICckJywgeyByZWxldmFuY2U6IDAgfSksXG4gICAgaGxqcy5DT01NRU5UKCdeQyQnLCAnJCcsIHsgcmVsZXZhbmNlOiAwIH0pXG4gIF0gfTtcblxuICAvLyByZWdleCBpbiBib3RoIGZvcnRyYW4gYW5kIGlycGY5MCBzaG91bGQgbWF0Y2hcbiAgY29uc3QgT1BUSU9OQUxfTlVNQkVSX1NVRkZJWCA9IC8oX1thLXpfXFxkXSspPy87XG4gIGNvbnN0IE9QVElPTkFMX05VTUJFUl9FWFAgPSAvKFtkZV1bKy1dP1xcZCspPy87XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1xcYlxcZCsvLCAvXFwuKFxcZCopLywgT1BUSU9OQUxfTlVNQkVSX0VYUCwgT1BUSU9OQUxfTlVNQkVSX1NVRkZJWCkgfSxcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFxiXFxkKy8sIE9QVElPTkFMX05VTUJFUl9FWFAsIE9QVElPTkFMX05VTUJFUl9TVUZGSVgpIH0sXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1xcLlxcZCsvLCBPUFRJT05BTF9OVU1CRVJfRVhQLCBPUFRJT05BTF9OVU1CRVJfU1VGRklYKSB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9ERUYgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdzdWJyb3V0aW5lIGZ1bmN0aW9uIHByb2dyYW0nLFxuICAgIGlsbGVnYWw6ICdbJHs9XFxcXG5dJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICBQQVJBTVNcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwia2luZFwiLFxuICAgIFwiZG9cIixcbiAgICBcImNvbmN1cnJlbnRcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJzaGFyZWRcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJpbnRyaW5zaWNcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJlbHNld2hlcmVcIixcbiAgICBcInR5cGVcIixcbiAgICBcImVuZHR5cGVcIixcbiAgICBcImVuZG1vZHVsZVwiLFxuICAgIFwiZW5kc2VsZWN0XCIsXG4gICAgXCJlbmRpbnRlcmZhY2VcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW5kZG9cIixcbiAgICBcImVuZGlmXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiZm9yYWxsXCIsXG4gICAgXCJlbmRmb3JhbGxcIixcbiAgICBcIm9ubHlcIixcbiAgICBcImNvbnRhaW5zXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInN0b3BcIixcbiAgICBcInRoZW5cIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJlbmRibG9ja1wiLFxuICAgIFwiZW5kYXNzb2NpYXRlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInN1YnJvdXRpbmV8MTBcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJwcm9ncmFtXCIsXG4gICAgXCIuYW5kLlwiLFxuICAgIFwiLm9yLlwiLFxuICAgIFwiLm5vdC5cIixcbiAgICBcIi5sZS5cIixcbiAgICBcIi5lcS5cIixcbiAgICBcIi5nZS5cIixcbiAgICBcIi5ndC5cIixcbiAgICBcIi5sdC5cIixcbiAgICBcImdvdG9cIixcbiAgICBcInNhdmVcIixcbiAgICBcImVsc2VcIixcbiAgICBcInVzZVwiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcImNhc2VcIixcbiAgICBcImFjY2Vzc1wiLFxuICAgIFwiYmxhbmtcIixcbiAgICBcImRpcmVjdFwiLFxuICAgIFwiZXhpc3RcIixcbiAgICBcImZpbGVcIixcbiAgICBcImZtdFwiLFxuICAgIFwiZm9ybVwiLFxuICAgIFwiZm9ybWF0dGVkXCIsXG4gICAgXCJpb3N0YXRcIixcbiAgICBcIm5hbWVcIixcbiAgICBcIm5hbWVkXCIsXG4gICAgXCJuZXh0cmVjXCIsXG4gICAgXCJudW1iZXJcIixcbiAgICBcIm9wZW5lZFwiLFxuICAgIFwicmVjXCIsXG4gICAgXCJyZWNsXCIsXG4gICAgXCJzZXF1ZW50aWFsXCIsXG4gICAgXCJzdGF0dXNcIixcbiAgICBcInVuZm9ybWF0dGVkXCIsXG4gICAgXCJ1bml0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZm9ybWF0XCIsXG4gICAgXCJwYXVzZVwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImV4aXRcIixcbiAgICBcImNfbnVsbF9jaGFyXCIsXG4gICAgXCJjX2FsZXJ0XCIsXG4gICAgXCJjX2JhY2tzcGFjZVwiLFxuICAgIFwiY19mb3JtX2ZlZWRcIixcbiAgICBcImZsdXNoXCIsXG4gICAgXCJ3YWl0XCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJyb3VuZFwiLFxuICAgIFwiaW9tc2dcIixcbiAgICBcInN5bmNocm9ub3VzXCIsXG4gICAgXCJub3Bhc3NcIixcbiAgICBcIm5vbl9vdmVycmlkYWJsZVwiLFxuICAgIFwicGFzc1wiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJ2b2xhdGlsZVwiLFxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwibm9uX2ludHJpbnNpY1wiLFxuICAgIFwidmFsdWVcIixcbiAgICBcImRlZmVycmVkXCIsXG4gICAgXCJnZW5lcmljXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwiZW51bWVyYXRvclwiLFxuICAgIFwiY2xhc3NcIixcbiAgICBcImFzc29jaWF0ZVwiLFxuICAgIFwiYmluZFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiY19pbnRcIixcbiAgICBcImNfc2hvcnRcIixcbiAgICBcImNfbG9uZ1wiLFxuICAgIFwiY19sb25nX2xvbmdcIixcbiAgICBcImNfc2lnbmVkX2NoYXJcIixcbiAgICBcImNfc2l6ZV90XCIsXG4gICAgXCJjX2ludDhfdFwiLFxuICAgIFwiY19pbnQxNl90XCIsXG4gICAgXCJjX2ludDMyX3RcIixcbiAgICBcImNfaW50NjRfdFwiLFxuICAgIFwiY19pbnRfbGVhc3Q4X3RcIixcbiAgICBcImNfaW50X2xlYXN0MTZfdFwiLFxuICAgIFwiY19pbnRfbGVhc3QzMl90XCIsXG4gICAgXCJjX2ludF9sZWFzdDY0X3RcIixcbiAgICBcImNfaW50X2Zhc3Q4X3RcIixcbiAgICBcImNfaW50X2Zhc3QxNl90XCIsXG4gICAgXCJjX2ludF9mYXN0MzJfdFwiLFxuICAgIFwiY19pbnRfZmFzdDY0X3RcIixcbiAgICBcImNfaW50bWF4X3RcIixcbiAgICBcIkNfaW50cHRyX3RcIixcbiAgICBcImNfZmxvYXRcIixcbiAgICBcImNfZG91YmxlXCIsXG4gICAgXCJjX2xvbmdfZG91YmxlXCIsXG4gICAgXCJjX2Zsb2F0X2NvbXBsZXhcIixcbiAgICBcImNfZG91YmxlX2NvbXBsZXhcIixcbiAgICBcImNfbG9uZ19kb3VibGVfY29tcGxleFwiLFxuICAgIFwiY19ib29sXCIsXG4gICAgXCJjX2NoYXJcIixcbiAgICBcImNfbnVsbF9wdHJcIixcbiAgICBcImNfbnVsbF9mdW5wdHJcIixcbiAgICBcImNfbmV3X2xpbmVcIixcbiAgICBcImNfY2FycmlhZ2VfcmV0dXJuXCIsXG4gICAgXCJjX2hvcml6b250YWxfdGFiXCIsXG4gICAgXCJjX3ZlcnRpY2FsX3RhYlwiLFxuICAgIFwiaXNvX2NfYmluZGluZ1wiLFxuICAgIFwiY19sb2NcIixcbiAgICBcImNfZnVubG9jXCIsXG4gICAgXCJjX2Fzc29jaWF0ZWRcIixcbiAgICBcImNfZl9wb2ludGVyXCIsXG4gICAgXCJjX3B0clwiLFxuICAgIFwiY19mdW5wdHJcIixcbiAgICBcImlzb19mb3J0cmFuX2VudlwiLFxuICAgIFwiY2hhcmFjdGVyX3N0b3JhZ2Vfc2l6ZVwiLFxuICAgIFwiZXJyb3JfdW5pdFwiLFxuICAgIFwiZmlsZV9zdG9yYWdlX3NpemVcIixcbiAgICBcImlucHV0X3VuaXRcIixcbiAgICBcImlvc3RhdF9lbmRcIixcbiAgICBcImlvc3RhdF9lb3JcIixcbiAgICBcIm51bWVyaWNfc3RvcmFnZV9zaXplXCIsXG4gICAgXCJvdXRwdXRfdW5pdFwiLFxuICAgIFwiY19mX3Byb2Nwb2ludGVyXCIsXG4gICAgXCJpZWVlX2FyaXRobWV0aWNcIixcbiAgICBcImllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbFwiLFxuICAgIFwiaWVlZV9nZXRfdW5kZXJmbG93X21vZGVcIixcbiAgICBcImllZWVfc2V0X3VuZGVyZmxvd19tb2RlXCIsXG4gICAgXCJuZXd1bml0XCIsXG4gICAgXCJjb250aWd1b3VzXCIsXG4gICAgXCJyZWN1cnNpdmVcIixcbiAgICBcInBhZFwiLFxuICAgIFwicG9zaXRpb25cIixcbiAgICBcImFjdGlvblwiLFxuICAgIFwiZGVsaW1cIixcbiAgICBcInJlYWR3cml0ZVwiLFxuICAgIFwiZW9yXCIsXG4gICAgXCJhZHZhbmNlXCIsXG4gICAgXCJubWxcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwicHJvY2VkdXJlXCIsXG4gICAgXCJuYW1lbGlzdFwiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwic2VxdWVuY2VcIixcbiAgICBcImVsZW1lbnRhbFwiLFxuICAgIFwicHVyZVwiLFxuICAgIFwiaW1wdXJlXCIsXG4gICAgXCJpbnRlZ2VyXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJjaGFyYWN0ZXJcIixcbiAgICBcImNvbXBsZXhcIixcbiAgICBcImxvZ2ljYWxcIixcbiAgICBcImNvZGltZW5zaW9uXCIsXG4gICAgXCJkaW1lbnNpb25cIixcbiAgICBcImFsbG9jYXRhYmxlfDEwXCIsXG4gICAgXCJwYXJhbWV0ZXJcIixcbiAgICBcImV4dGVybmFsXCIsXG4gICAgXCJpbXBsaWNpdHwxMFwiLFxuICAgIFwibm9uZVwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJwcmVjaXNpb25cIixcbiAgICBcImFzc2lnblwiLFxuICAgIFwiaW50ZW50XCIsXG4gICAgXCJvcHRpb25hbFwiLFxuICAgIFwicG9pbnRlclwiLFxuICAgIFwidGFyZ2V0XCIsXG4gICAgXCJpblwiLFxuICAgIFwib3V0XCIsXG4gICAgXCJjb21tb25cIixcbiAgICBcImVxdWl2YWxlbmNlXCIsXG4gICAgXCJkYXRhXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCIuRmFsc2UuXCIsXG4gICAgXCIuVHJ1ZS5cIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJhbG9nXCIsXG4gICAgXCJhbG9nMTBcIixcbiAgICBcImFtYXgwXCIsXG4gICAgXCJhbWF4MVwiLFxuICAgIFwiYW1pbjBcIixcbiAgICBcImFtaW4xXCIsXG4gICAgXCJhbW9kXCIsXG4gICAgXCJjYWJzXCIsXG4gICAgXCJjY29zXCIsXG4gICAgXCJjZXhwXCIsXG4gICAgXCJjbG9nXCIsXG4gICAgXCJjc2luXCIsXG4gICAgXCJjc3FydFwiLFxuICAgIFwiZGFic1wiLFxuICAgIFwiZGFjb3NcIixcbiAgICBcImRhc2luXCIsXG4gICAgXCJkYXRhblwiLFxuICAgIFwiZGF0YW4yXCIsXG4gICAgXCJkY29zXCIsXG4gICAgXCJkY29zaFwiLFxuICAgIFwiZGRpbVwiLFxuICAgIFwiZGV4cFwiLFxuICAgIFwiZGludFwiLFxuICAgIFwiZGxvZ1wiLFxuICAgIFwiZGxvZzEwXCIsXG4gICAgXCJkbWF4MVwiLFxuICAgIFwiZG1pbjFcIixcbiAgICBcImRtb2RcIixcbiAgICBcImRuaW50XCIsXG4gICAgXCJkc2lnblwiLFxuICAgIFwiZHNpblwiLFxuICAgIFwiZHNpbmhcIixcbiAgICBcImRzcXJ0XCIsXG4gICAgXCJkdGFuXCIsXG4gICAgXCJkdGFuaFwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImlhYnNcIixcbiAgICBcImlkaW1cIixcbiAgICBcImlkaW50XCIsXG4gICAgXCJpZG5pbnRcIixcbiAgICBcImlmaXhcIixcbiAgICBcImlzaWduXCIsXG4gICAgXCJtYXgwXCIsXG4gICAgXCJtYXgxXCIsXG4gICAgXCJtaW4wXCIsXG4gICAgXCJtaW4xXCIsXG4gICAgXCJzbmdsXCIsXG4gICAgXCJhbGdhbWFcIixcbiAgICBcImNkYWJzXCIsXG4gICAgXCJjZGNvc1wiLFxuICAgIFwiY2RleHBcIixcbiAgICBcImNkbG9nXCIsXG4gICAgXCJjZHNpblwiLFxuICAgIFwiY2RzcXJ0XCIsXG4gICAgXCJjcWFic1wiLFxuICAgIFwiY3Fjb3NcIixcbiAgICBcImNxZXhwXCIsXG4gICAgXCJjcWxvZ1wiLFxuICAgIFwiY3FzaW5cIixcbiAgICBcImNxc3FydFwiLFxuICAgIFwiZGNtcGx4XCIsXG4gICAgXCJkY29uamdcIixcbiAgICBcImRlcmZcIixcbiAgICBcImRlcmZjXCIsXG4gICAgXCJkZmxvYXRcIixcbiAgICBcImRnYW1tYVwiLFxuICAgIFwiZGltYWdcIixcbiAgICBcImRsZ2FtYVwiLFxuICAgIFwiaXFpbnRcIixcbiAgICBcInFhYnNcIixcbiAgICBcInFhY29zXCIsXG4gICAgXCJxYXNpblwiLFxuICAgIFwicWF0YW5cIixcbiAgICBcInFhdGFuMlwiLFxuICAgIFwicWNtcGx4XCIsXG4gICAgXCJxY29uamdcIixcbiAgICBcInFjb3NcIixcbiAgICBcInFjb3NoXCIsXG4gICAgXCJxZGltXCIsXG4gICAgXCJxZXJmXCIsXG4gICAgXCJxZXJmY1wiLFxuICAgIFwicWV4cFwiLFxuICAgIFwicWdhbW1hXCIsXG4gICAgXCJxaW1hZ1wiLFxuICAgIFwicWxnYW1hXCIsXG4gICAgXCJxbG9nXCIsXG4gICAgXCJxbG9nMTBcIixcbiAgICBcInFtYXgxXCIsXG4gICAgXCJxbWluMVwiLFxuICAgIFwicW1vZFwiLFxuICAgIFwicW5pbnRcIixcbiAgICBcInFzaWduXCIsXG4gICAgXCJxc2luXCIsXG4gICAgXCJxc2luaFwiLFxuICAgIFwicXNxcnRcIixcbiAgICBcInF0YW5cIixcbiAgICBcInF0YW5oXCIsXG4gICAgXCJhYnNcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFpbWFnXCIsXG4gICAgXCJhaW50XCIsXG4gICAgXCJhbmludFwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXRhbjJcIixcbiAgICBcImNoYXJcIixcbiAgICBcImNtcGx4XCIsXG4gICAgXCJjb25qZ1wiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJleHBcIixcbiAgICBcImljaGFyXCIsXG4gICAgXCJpbmRleFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJsb2dcIixcbiAgICBcImxvZzEwXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibmludFwiLFxuICAgIFwic2lnblwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzaW5oXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInRhbmhcIixcbiAgICBcInByaW50XCIsXG4gICAgXCJ3cml0ZVwiLFxuICAgIFwiZGltXCIsXG4gICAgXCJsZ2VcIixcbiAgICBcImxndFwiLFxuICAgIFwibGxlXCIsXG4gICAgXCJsbHRcIixcbiAgICBcIm1vZFwiLFxuICAgIFwibnVsbGlmeVwiLFxuICAgIFwiYWxsb2NhdGVcIixcbiAgICBcImRlYWxsb2NhdGVcIixcbiAgICBcImFkanVzdGxcIixcbiAgICBcImFkanVzdHJcIixcbiAgICBcImFsbFwiLFxuICAgIFwiYWxsb2NhdGVkXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFzc29jaWF0ZWRcIixcbiAgICBcImJpdF9zaXplXCIsXG4gICAgXCJidGVzdFwiLFxuICAgIFwiY2VpbGluZ1wiLFxuICAgIFwiY291bnRcIixcbiAgICBcImNzaGlmdFwiLFxuICAgIFwiZGF0ZV9hbmRfdGltZVwiLFxuICAgIFwiZGlnaXRzXCIsXG4gICAgXCJkb3RfcHJvZHVjdFwiLFxuICAgIFwiZW9zaGlmdFwiLFxuICAgIFwiZXBzaWxvblwiLFxuICAgIFwiZXhwb25lbnRcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJmcmFjdGlvblwiLFxuICAgIFwiaHVnZVwiLFxuICAgIFwiaWFuZFwiLFxuICAgIFwiaWJjbHJcIixcbiAgICBcImliaXRzXCIsXG4gICAgXCJpYnNldFwiLFxuICAgIFwiaWVvclwiLFxuICAgIFwiaW9yXCIsXG4gICAgXCJpc2hmdFwiLFxuICAgIFwiaXNoZnRjXCIsXG4gICAgXCJsYm91bmRcIixcbiAgICBcImxlbl90cmltXCIsXG4gICAgXCJtYXRtdWxcIixcbiAgICBcIm1heGV4cG9uZW50XCIsXG4gICAgXCJtYXhsb2NcIixcbiAgICBcIm1heHZhbFwiLFxuICAgIFwibWVyZ2VcIixcbiAgICBcIm1pbmV4cG9uZW50XCIsXG4gICAgXCJtaW5sb2NcIixcbiAgICBcIm1pbnZhbFwiLFxuICAgIFwibW9kdWxvXCIsXG4gICAgXCJtdmJpdHNcIixcbiAgICBcIm5lYXJlc3RcIixcbiAgICBcInBhY2tcIixcbiAgICBcInByZXNlbnRcIixcbiAgICBcInByb2R1Y3RcIixcbiAgICBcInJhZGl4XCIsXG4gICAgXCJyYW5kb21fbnVtYmVyXCIsXG4gICAgXCJyYW5kb21fc2VlZFwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmVzaGFwZVwiLFxuICAgIFwicnJzcGFjaW5nXCIsXG4gICAgXCJzY2FsZVwiLFxuICAgIFwic2NhblwiLFxuICAgIFwic2VsZWN0ZWRfaW50X2tpbmRcIixcbiAgICBcInNlbGVjdGVkX3JlYWxfa2luZFwiLFxuICAgIFwic2V0X2V4cG9uZW50XCIsXG4gICAgXCJzaGFwZVwiLFxuICAgIFwic2l6ZVwiLFxuICAgIFwic3BhY2luZ1wiLFxuICAgIFwic3ByZWFkXCIsXG4gICAgXCJzdW1cIixcbiAgICBcInN5c3RlbV9jbG9ja1wiLFxuICAgIFwidGlueVwiLFxuICAgIFwidHJhbnNwb3NlXCIsXG4gICAgXCJ0cmltXCIsXG4gICAgXCJ1Ym91bmRcIixcbiAgICBcInVucGFja1wiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJhY2hhclwiLFxuICAgIFwiaWFjaGFyXCIsXG4gICAgXCJ0cmFuc2ZlclwiLFxuICAgIFwiZGJsZVwiLFxuICAgIFwiZW50cnlcIixcbiAgICBcImRwcm9kXCIsXG4gICAgXCJjcHVfdGltZVwiLFxuICAgIFwiY29tbWFuZF9hcmd1bWVudF9jb3VudFwiLFxuICAgIFwiZ2V0X2NvbW1hbmRcIixcbiAgICBcImdldF9jb21tYW5kX2FyZ3VtZW50XCIsXG4gICAgXCJnZXRfZW52aXJvbm1lbnRfdmFyaWFibGVcIixcbiAgICBcImlzX2lvc3RhdF9lbmRcIixcbiAgICBcImllZWVfYXJpdGhtZXRpY1wiLFxuICAgIFwiaWVlZV9zdXBwb3J0X3VuZGVyZmxvd19jb250cm9sXCIsXG4gICAgXCJpZWVlX2dldF91bmRlcmZsb3dfbW9kZVwiLFxuICAgIFwiaWVlZV9zZXRfdW5kZXJmbG93X21vZGVcIixcbiAgICBcImlzX2lvc3RhdF9lb3JcIixcbiAgICBcIm1vdmVfYWxsb2NcIixcbiAgICBcIm5ld19saW5lXCIsXG4gICAgXCJzZWxlY3RlZF9jaGFyX2tpbmRcIixcbiAgICBcInNhbWVfdHlwZV9hc1wiLFxuICAgIFwiZXh0ZW5kc190eXBlX29mXCIsXG4gICAgXCJhY29zaFwiLFxuICAgIFwiYXNpbmhcIixcbiAgICBcImF0YW5oXCIsXG4gICAgXCJiZXNzZWxfajBcIixcbiAgICBcImJlc3NlbF9qMVwiLFxuICAgIFwiYmVzc2VsX2puXCIsXG4gICAgXCJiZXNzZWxfeTBcIixcbiAgICBcImJlc3NlbF95MVwiLFxuICAgIFwiYmVzc2VsX3luXCIsXG4gICAgXCJlcmZcIixcbiAgICBcImVyZmNcIixcbiAgICBcImVyZmNfc2NhbGVkXCIsXG4gICAgXCJnYW1tYVwiLFxuICAgIFwibG9nX2dhbW1hXCIsXG4gICAgXCJoeXBvdFwiLFxuICAgIFwibm9ybTJcIixcbiAgICBcImF0b21pY19kZWZpbmVcIixcbiAgICBcImF0b21pY19yZWZcIixcbiAgICBcImV4ZWN1dGVfY29tbWFuZF9saW5lXCIsXG4gICAgXCJsZWFkelwiLFxuICAgIFwidHJhaWx6XCIsXG4gICAgXCJzdG9yYWdlX3NpemVcIixcbiAgICBcIm1lcmdlX2JpdHNcIixcbiAgICBcImJnZVwiLFxuICAgIFwiYmd0XCIsXG4gICAgXCJibGVcIixcbiAgICBcImJsdFwiLFxuICAgIFwiZHNoaWZ0bFwiLFxuICAgIFwiZHNoaWZ0clwiLFxuICAgIFwiZmluZGxvY1wiLFxuICAgIFwiaWFsbFwiLFxuICAgIFwiaWFueVwiLFxuICAgIFwiaXBhcml0eVwiLFxuICAgIFwiaW1hZ2VfaW5kZXhcIixcbiAgICBcImxjb2JvdW5kXCIsXG4gICAgXCJ1Y29ib3VuZFwiLFxuICAgIFwibWFza2xcIixcbiAgICBcIm1hc2tyXCIsXG4gICAgXCJudW1faW1hZ2VzXCIsXG4gICAgXCJwYXJpdHlcIixcbiAgICBcInBvcGNudFwiLFxuICAgIFwicG9wcGFyXCIsXG4gICAgXCJzaGlmdGFcIixcbiAgICBcInNoaWZ0bFwiLFxuICAgIFwic2hpZnRyXCIsXG4gICAgXCJ0aGlzX2ltYWdlXCIsXG4gICAgXCJzeW5jXCIsXG4gICAgXCJjaGFuZ2VcIixcbiAgICBcInRlYW1cIixcbiAgICBcImNvX2Jyb2FkY2FzdFwiLFxuICAgIFwiY29fbWF4XCIsXG4gICAgXCJjb19taW5cIixcbiAgICBcImNvX3N1bVwiLFxuICAgIFwiY29fcmVkdWNlXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRm9ydHJhbicsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZjkwJyxcbiAgICAgICdmOTUnXG4gICAgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9cXGJbYS16XVthLXowLTlfXStcXGJ8XFwuW2Etel1bYS16MC05X10rXFwuLyxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RSSU5HLFxuICAgICAgRlVOQ1RJT05fREVGLFxuICAgICAgLy8gYWxsb3cgYEMgPSB2YWx1ZWAgZm9yIGFzc2lnbm1lbnRzIHNvIHRoZXkgYXJlbid0IG1pc2RldGVjdGVkXG4gICAgICAvLyBhcyBGb3J0cmFuIDc3IHN0eWxlIGNvbW1lbnRzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXkNcXHMqPSg/IT0pLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgQ09NTUVOVCxcbiAgICAgIE5VTUJFUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmb3J0cmFuO1xuIiwgIi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7UmVnRXhwfVxuICogKi9cbmZ1bmN0aW9uIGVzY2FwZSh2YWx1ZSkge1xuICByZXR1cm4gbmV3IFJlZ0V4cCh2YWx1ZS5yZXBsYWNlKC9bLS9cXFxcXiQqKz8uKCl8W1xcXXt9XS9nLCAnXFxcXCQmJyksICdtJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gc291cmNlKHJlKSB7XG4gIGlmICghcmUpIHJldHVybiBudWxsO1xuICBpZiAodHlwZW9mIHJlID09PSBcInN0cmluZ1wiKSByZXR1cm4gcmU7XG5cbiAgcmV0dXJuIHJlLnNvdXJjZTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge1JlZ0V4cCB8IHN0cmluZyB9IHJlXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBsb29rYWhlYWQocmUpIHtcbiAgcmV0dXJuIGNvbmNhdCgnKD89JywgcmUsICcpJyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHsuLi4oUmVnRXhwIHwgc3RyaW5nKSB9IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGNvbmNhdCguLi5hcmdzKSB7XG4gIGNvbnN0IGpvaW5lZCA9IGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJcIik7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbi8qKlxuICogQHBhcmFtIHsgQXJyYXk8c3RyaW5nIHwgUmVnRXhwIHwgT2JqZWN0PiB9IGFyZ3NcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpIHtcbiAgY29uc3Qgb3B0cyA9IGFyZ3NbYXJncy5sZW5ndGggLSAxXTtcblxuICBpZiAodHlwZW9mIG9wdHMgPT09ICdvYmplY3QnICYmIG9wdHMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICAgIGFyZ3Muc3BsaWNlKGFyZ3MubGVuZ3RoIC0gMSwgMSk7XG4gICAgcmV0dXJuIG9wdHM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbi8qKiBAdHlwZWRlZiB7IHtjYXB0dXJlPzogYm9vbGVhbn0gfSBSZWdleEVpdGhlck9wdGlvbnMgKi9cblxuLyoqXG4gKiBBbnkgb2YgdGhlIHBhc3NlZCBleHByZXNzc2lvbnMgbWF5IG1hdGNoXG4gKlxuICogQ3JlYXRlcyBhIGh1Z2UgdGhpcyB8IHRoaXMgfCB0aGF0IHwgdGhhdCBtYXRjaFxuICogQHBhcmFtIHsoUmVnRXhwIHwgc3RyaW5nKVtdIHwgWy4uLihSZWdFeHAgfCBzdHJpbmcpW10sIFJlZ2V4RWl0aGVyT3B0aW9uc119IGFyZ3NcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGVpdGhlciguLi5hcmdzKSB7XG4gIC8qKiBAdHlwZSB7IG9iamVjdCAmIHtjYXB0dXJlPzogYm9vbGVhbn0gfSAgKi9cbiAgY29uc3Qgb3B0cyA9IHN0cmlwT3B0aW9uc0Zyb21BcmdzKGFyZ3MpO1xuICBjb25zdCBqb2luZWQgPSAnKCdcbiAgICArIChvcHRzLmNhcHR1cmUgPyBcIlwiIDogXCI/OlwiKVxuICAgICsgYXJncy5tYXAoKHgpID0+IHNvdXJjZSh4KSkuam9pbihcInxcIikgKyBcIilcIjtcbiAgcmV0dXJuIGpvaW5lZDtcbn1cblxuLypcbkxhbmd1YWdlOiBGI1xuQXV0aG9yOiBKb25hcyBGb2xsZXNcdTAwRjggPGpvbmFzQGZvbGxlc29lLm5vPlxuQ29udHJpYnV0b3JzOiBUcm95IEtlcnNoYXcgPGhlbGxvQHRyb3lrZXJzaGF3LmNvbT4sIEhlbnJpayBGZWxkdCA8aGVucmlrQGhhZi5zZT4sIE1lbHZ5biBMYVx1MDBFRmx5IDxtZWx2eW4ubGFpbHlAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvZG90bmV0L2ZzaGFycC9cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBmc2hhcnAoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImJhc2VcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVsZWdhdGVcIixcbiAgICBcImRvXCIsXG4gICAgXCJkb25lXCIsXG4gICAgXCJkb3duY2FzdFwiLFxuICAgIFwiZG93bnRvXCIsXG4gICAgXCJlbGlmXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV4Y2VwdGlvblwiLFxuICAgIFwiZXh0ZXJuXCIsXG4gICAgLy8gXCJmYWxzZVwiLCAvLyBsaXRlcmFsXG4gICAgXCJmaW5hbGx5XCIsXG4gICAgXCJmaXhlZFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5cIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJnbG9iYWxcIixcbiAgICBcImlmXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5oZXJpdFwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImludGVybmFsXCIsXG4gICAgXCJsYXp5XCIsXG4gICAgXCJsZXRcIixcbiAgICBcIm1hdGNoXCIsXG4gICAgXCJtZW1iZXJcIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwibXV0YWJsZVwiLFxuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJuZXdcIixcbiAgICAvLyBcIm5vdFwiLCAvLyBidWlsdF9pblxuICAgIC8vIFwibnVsbFwiLCAvLyBsaXRlcmFsXG4gICAgXCJvZlwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJlY1wiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICAvLyBcInRydWVcIiwgLy8gbGl0ZXJhbFxuICAgIFwidHJ5XCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJ1cGNhc3RcIixcbiAgICBcInVzZVwiLFxuICAgIFwidmFsXCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEJBTkdfS0VZV09SRF9NT0RFID0ge1xuICAgIC8vIG1vbmFkIGJ1aWxkZXIga2V5d29yZHMgKG1hdGNoZXMgYmVmb3JlIG5vbi1iYW5nIGtleXdvcmRzKVxuICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgbWF0Y2g6IC9cXGIoeWllbGR8cmV0dXJufGxldHxkb3xtYXRjaHx1c2UpIS9cbiAgfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1JfS0VZV09SRFMgPSBbXG4gICAgXCJpZlwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kaWZcIixcbiAgICBcImxpbmVcIixcbiAgICBcIm5vd2FyblwiLFxuICAgIFwibGlnaHRcIixcbiAgICBcInJcIixcbiAgICBcImlcIixcbiAgICBcIklcIixcbiAgICBcImxvYWRcIixcbiAgICBcInRpbWVcIixcbiAgICBcImhlbHBcIixcbiAgICBcInF1aXRcIlxuICBdO1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcIlNvbWVcIixcbiAgICBcIk5vbmVcIixcbiAgICBcIk9rXCIsXG4gICAgXCJFcnJvclwiLFxuICAgIFwiaW5maW5pdHlcIixcbiAgICBcImluZmluaXR5ZlwiLFxuICAgIFwibmFuXCIsXG4gICAgXCJuYW5mXCJcbiAgXTtcblxuICBjb25zdCBTUEVDSUFMX0lERU5USUZJRVJTID0gW1xuICAgIFwiX19MSU5FX19cIixcbiAgICBcIl9fU09VUkNFX0RJUkVDVE9SWV9fXCIsXG4gICAgXCJfX1NPVVJDRV9GSUxFX19cIlxuICBdO1xuXG4gIC8vIFNpbmNlIGl0J3MgcG9zc2libGUgdG8gcmUtYmluZC9zaGFkb3cgbmFtZXMgKGUuZy4gbGV0IGNoYXIgPSAnYycpLFxuICAvLyB0aGVzZSBidWlsdGluIHR5cGVzIHNob3VsZCBvbmx5IGJlIG1hdGNoZWQgd2hlbiBhIHR5cGUgbmFtZSBpcyBleHBlY3RlZC5cbiAgY29uc3QgS05PV05fVFlQRVMgPSBbXG4gICAgLy8gYmFzaWMgdHlwZXNcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVcIixcbiAgICBcInNieXRlXCIsXG4gICAgXCJpbnQ4XCIsXG4gICAgXCJpbnQxNlwiLFxuICAgIFwiaW50MzJcIixcbiAgICBcInVpbnQ4XCIsXG4gICAgXCJ1aW50MTZcIixcbiAgICBcInVpbnQzMlwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJ1aW50XCIsXG4gICAgXCJpbnQ2NFwiLFxuICAgIFwidWludDY0XCIsXG4gICAgXCJuYXRpdmVpbnRcIixcbiAgICBcInVuYXRpdmVpbnRcIixcbiAgICBcImRlY2ltYWxcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJkb3VibGVcIixcbiAgICBcImZsb2F0MzJcIixcbiAgICBcInNpbmdsZVwiLFxuICAgIFwiY2hhclwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJ1bml0XCIsXG4gICAgXCJiaWdpbnRcIixcbiAgICAvLyBvdGhlciBuYXRpdmUgdHlwZXMgb3IgbG93ZXJjYXNlIGFsaWFzZXNcbiAgICBcIm9wdGlvblwiLFxuICAgIFwidm9wdGlvblwiLFxuICAgIFwibGlzdFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcInNlcVwiLFxuICAgIFwiYnlyZWZcIixcbiAgICBcImV4blwiLFxuICAgIFwiaW5yZWZcIixcbiAgICBcIm5hdGl2ZXB0clwiLFxuICAgIFwib2JqXCIsXG4gICAgXCJvdXRyZWZcIixcbiAgICBcInZvaWRwdHJcIixcbiAgICAvLyBvdGhlciBpbXBvcnRhbnQgRlNoYXJwIHR5cGVzXG4gICAgXCJSZXN1bHRcIlxuICBdO1xuXG4gIGNvbnN0IEJVSUxUSU5TID0gW1xuICAgIC8vIFNvbWV3aGF0IGFyYml0cmFyeSBsaXN0IG9mIGJ1aWx0aW4gZnVuY3Rpb25zIGFuZCB2YWx1ZXMuXG4gICAgLy8gTW9zdCBvZiB0aGVtIGFyZSBkZWNsYXJlZCBpbiBNaWNyb3NvZnQuRlNoYXJwLkNvcmVcbiAgICAvLyBJIHRyaWVkIHRvIHN0YXkgcmVsZXZhbnQgYnkgYWRkaW5nIG9ubHkgdGhlIG1vc3QgaWRpb21hdGljXG4gICAgLy8gYW5kIG1vc3QgdXNlZCBzeW1ib2xzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IGRlY2xhcmVkIGFzIHR5cGVzLlxuICAgIFwibm90XCIsXG4gICAgXCJyZWZcIixcbiAgICBcInJhaXNlXCIsXG4gICAgXCJyZXJhaXNlXCIsXG4gICAgXCJkaWN0XCIsXG4gICAgXCJyZWFkT25seURpY3RcIixcbiAgICBcInNldFwiLFxuICAgIFwiZ2V0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJzaXplb2ZcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwidHlwZWRlZm9mXCIsXG4gICAgXCJuYW1lb2ZcIixcbiAgICBcIm51bGxBcmdcIixcbiAgICBcImludmFsaWRBcmdcIixcbiAgICBcImludmFsaWRPcFwiLFxuICAgIFwiaWRcIixcbiAgICBcImZzdFwiLFxuICAgIFwic25kXCIsXG4gICAgXCJpZ25vcmVcIixcbiAgICBcImxvY2tcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJib3hcIixcbiAgICBcInVuYm94XCIsXG4gICAgXCJ0cnlVbmJveFwiLFxuICAgIFwicHJpbnRmXCIsXG4gICAgXCJwcmludGZuXCIsXG4gICAgXCJzcHJpbnRmXCIsXG4gICAgXCJlcHJpbnRmXCIsXG4gICAgXCJlcHJpbnRmblwiLFxuICAgIFwiZnByaW50ZlwiLFxuICAgIFwiZnByaW50Zm5cIixcbiAgICBcImZhaWx3aXRoXCIsXG4gICAgXCJmYWlsd2l0aGZcIlxuICBdO1xuXG4gIGNvbnN0IEFMTF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRJTlMsXG4gICAgJ3ZhcmlhYmxlLmNvbnN0YW50JzogU1BFQ0lBTF9JREVOVElGSUVSU1xuICB9O1xuXG4gIC8vICgqIHBvdGVudGlhbGx5IG11bHRpLWxpbmUgTWV0YSBMYW5ndWFnZSBzdHlsZSBjb21tZW50ICopXG4gIGNvbnN0IE1MX0NPTU1FTlQgPVxuICAgIGhsanMuQ09NTUVOVCgvXFwoXFwqKD8hXFwpKS8sIC9cXCpcXCkvLCB7XG4gICAgICBjb250YWluczogW1wic2VsZlwiXVxuICAgIH0pO1xuICAvLyBFaXRoZXIgYSBtdWx0aS1saW5lICgqIE1ldGEgTGFuZ3VhZ2Ugc3R5bGUgY29tbWVudCAqKSBvciBhIHNpbmdsZSBsaW5lIC8vIEMgc3R5bGUgY29tbWVudC5cbiAgY29uc3QgQ09NTUVOVCA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgTUxfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBdXG4gIH07XG5cbiAgLy8gTW9zdCBpZGVudGlmaWVycyBjYW4gY29udGFpbiBhcG9zdHJvcGhlc1xuICBjb25zdCBJREVOVElGSUVSX1JFID0gL1thLXpBLVpfXShcXHd8JykqLztcblxuICBjb25zdCBRVU9URURfSURFTlRJRklFUiA9IHtcbiAgICBzY29wZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL2BgLyxcbiAgICBlbmQ6IC9gYC9cbiAgfTtcblxuICAvLyAnYSBvciBeYSB3aGVyZSBhIGNhbiBiZSBhIGBgcXVvdGVkIGlkZW50aWZpZXJgYFxuICBjb25zdCBCRUdJTl9HRU5FUklDX1RZUEVfU1lNQk9MX1JFID0gL1xcQignfFxcXikvO1xuICBjb25zdCBHRU5FUklDX1RZUEVfU1lNQk9MID0ge1xuICAgIHNjb3BlOiAnc3ltYm9sJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gdGhlIHR5cGUgbmFtZSBpcyBhIHF1b3RlZCBpZGVudGlmaWVyOlxuICAgICAgeyBtYXRjaDogY29uY2F0KEJFR0lOX0dFTkVSSUNfVFlQRV9TWU1CT0xfUkUsIC9gYC4qP2BgLykgfSxcbiAgICAgIC8vIHRoZSB0eXBlIG5hbWUgaXMgYSBub3JtYWwgaWRlbnRpZmllciAod2UgZG9uJ3QgdXNlIElERU5USUZJRVJfUkUgYmVjYXVzZSB0aGVyZSBjYW5ub3QgYmUgYW5vdGhlciBhcG9zdHJvcGhlIGhlcmUpOlxuICAgICAgeyBtYXRjaDogY29uY2F0KEJFR0lOX0dFTkVSSUNfVFlQRV9TWU1CT0xfUkUsIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSkgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgbWFrZU9wZXJhdG9yTW9kZSA9IGZ1bmN0aW9uKHsgaW5jbHVkZUVxdWFsIH0pIHtcbiAgICAvLyBMaXN0IG9yIHN5bWJvbGljIG9wZXJhdG9yIGNoYXJhY3RlcnMgZnJvbSB0aGUgRlNoYXJwIFNwZWMgNC4xLCBtaW51cyB0aGUgZG90LCBhbmQgd2l0aCBgP2AgYWRkZWQsIHVzZWQgZm9yIG51bGxhYmxlIG9wZXJhdG9ycy5cbiAgICBsZXQgYWxsT3BlcmF0b3JDaGFycztcbiAgICBpZiAoaW5jbHVkZUVxdWFsKVxuICAgICAgYWxsT3BlcmF0b3JDaGFycyA9IFwiISUmKistLzw9PkBefH4/XCI7XG4gICAgZWxzZVxuICAgICAgYWxsT3BlcmF0b3JDaGFycyA9IFwiISUmKistLzw+QF58fj9cIjtcbiAgICBjb25zdCBPUEVSQVRPUl9DSEFSUyA9IEFycmF5LmZyb20oYWxsT3BlcmF0b3JDaGFycyk7XG4gICAgY29uc3QgT1BFUkFUT1JfQ0hBUl9SRSA9IGNvbmNhdCgnWycsIC4uLk9QRVJBVE9SX0NIQVJTLm1hcChlc2NhcGUpLCAnXScpO1xuICAgIC8vIFRoZSBsb25lIGRvdCBvcGVyYXRvciBpcyBzcGVjaWFsLiBJdCBjYW5ub3QgYmUgcmVkZWZpbmVkLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBoaWdobGlnaHQgaXQuIEl0IGNhbiBiZSB1c2VkIGFzIHBhcnQgb2YgYSBtdWx0aS1jaGFycyBvcGVyYXRvciB0aG91Z2guXG4gICAgY29uc3QgT1BFUkFUT1JfQ0hBUl9PUl9ET1RfUkUgPSBlaXRoZXIoT1BFUkFUT1JfQ0hBUl9SRSwgL1xcLi8pO1xuICAgIC8vIFdoZW4gYSBkb3QgaXMgcHJlc2VudCwgaXQgbXVzdCBiZSBmb2xsb3dlZCBieSBhbm90aGVyIG9wZXJhdG9yIGNoYXI6XG4gICAgY29uc3QgT1BFUkFUT1JfRklSU1RfQ0hBUl9PRl9NVUxUSVBMRV9SRSA9IGNvbmNhdChPUEVSQVRPUl9DSEFSX09SX0RPVF9SRSwgbG9va2FoZWFkKE9QRVJBVE9SX0NIQVJfT1JfRE9UX1JFKSk7XG4gICAgY29uc3QgU1lNQk9MSUNfT1BFUkFUT1JfUkUgPSBlaXRoZXIoXG4gICAgICBjb25jYXQoT1BFUkFUT1JfRklSU1RfQ0hBUl9PRl9NVUxUSVBMRV9SRSwgT1BFUkFUT1JfQ0hBUl9PUl9ET1RfUkUsICcqJyksIC8vIE1hdGNoZXMgYXQgbGVhc3QgMiBjaGFycyBvcGVyYXRvcnNcbiAgICAgIGNvbmNhdChPUEVSQVRPUl9DSEFSX1JFLCAnKycpLCAvLyBNYXRjaGVzIGF0IGxlYXN0IG9uZSBjaGFyIG9wZXJhdG9yc1xuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlOiAnb3BlcmF0b3InLFxuICAgICAgbWF0Y2g6IGVpdGhlcihcbiAgICAgICAgLy8gc3ltYm9saWMgb3BlcmF0b3JzOlxuICAgICAgICBTWU1CT0xJQ19PUEVSQVRPUl9SRSxcbiAgICAgICAgLy8gb3RoZXIgc3ltYm9saWMga2V5d29yZHM6XG4gICAgICAgIC8vIFR5cGUgY2FzdGluZyBhbmQgY29udmVyc2lvbiBvcGVyYXRvcnM6XG4gICAgICAgIC86XFw/Pi8sXG4gICAgICAgIC86XFw/LyxcbiAgICAgICAgLzo+LyxcbiAgICAgICAgLzo9LywgLy8gUmVmZXJlbmNlIGNlbGwgYXNzaWdubWVudFxuICAgICAgICAvOjo/LywgLy8gOiBvciA6OlxuICAgICAgICAvXFwkLyksIC8vIEEgc2luZ2xlICQgY2FuIGJlIHVzZWQgYXMgYW4gb3BlcmF0b3JcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgT1BFUkFUT1IgPSBtYWtlT3BlcmF0b3JNb2RlKHsgaW5jbHVkZUVxdWFsOiB0cnVlIH0pO1xuICAvLyBUaGlzIHZhcmlhbnQgaXMgdXNlZCB3aGVuIG1hdGNoaW5nICc9JyBzaG91bGQgZW5kIGEgcGFyZW50IG1vZGU6XG4gIGNvbnN0IE9QRVJBVE9SX1dJVEhPVVRfRVFVQUwgPSBtYWtlT3BlcmF0b3JNb2RlKHsgaW5jbHVkZUVxdWFsOiBmYWxzZSB9KTtcblxuICBjb25zdCBtYWtlVHlwZUFubm90YXRpb25Nb2RlID0gZnVuY3Rpb24ocHJlZml4LCBwcmVmaXhTY29wZSkge1xuICAgIHJldHVybiB7XG4gICAgICBiZWdpbjogY29uY2F0KCAvLyBhIHR5cGUgYW5ub3RhdGlvbiBpcyBhXG4gICAgICAgIHByZWZpeCwgICAgICAgICAgICAvLyBzaG91bGQgYmUgYSBjb2xvbiBvciB0aGUgJ29mJyBrZXl3b3JkXG4gICAgICAgIGxvb2thaGVhZCggICAvLyB0aGF0IGhhcyB0byBiZSBmb2xsb3dlZCBieVxuICAgICAgICAgIGNvbmNhdChcbiAgICAgICAgICAgIC9cXHMqLywgICAgICAgICAvLyBvcHRpb25hbCBzcGFjZVxuICAgICAgICAgICAgZWl0aGVyKCAgLy8gdGhlbiBlaXRoZXIgb2Y6XG4gICAgICAgICAgICAgIC9cXHcvLCAgICAgICAgLy8gd29yZFxuICAgICAgICAgICAgICAvJy8sICAgICAgICAgLy8gZ2VuZXJpYyB0eXBlIG5hbWVcbiAgICAgICAgICAgICAgL1xcXi8sICAgICAgICAvLyBnZW5lcmljIHR5cGUgbmFtZVxuICAgICAgICAgICAgICAvIy8sICAgICAgICAgLy8gZmxleGlibGUgdHlwZSBuYW1lXG4gICAgICAgICAgICAgIC9gYC8sICAgICAgICAvLyBxdW90ZWQgdHlwZSBuYW1lXG4gICAgICAgICAgICAgIC9cXCgvLCAgICAgICAgLy8gcGFyZW5zIHR5cGUgZXhwcmVzc2lvblxuICAgICAgICAgICAgICAve1xcfC8sICAgICAgIC8vIGFub255bW91cyB0eXBlIGFubm90YXRpb25cbiAgICAgICkpKSksXG4gICAgICBiZWdpblNjb3BlOiBwcmVmaXhTY29wZSxcbiAgICAgIC8vIEJVRzogYmVjYXVzZSBlbmRpbmcgd2l0aCBcXG4gaXMgbmVjZXNzYXJ5IGZvciBzb21lIGNhc2VzLCBtdWx0aS1saW5lIHR5cGUgYW5ub3RhdGlvbnMgYXJlIG5vdCBwcm9wZXJseSBzdXBwb3J0ZWQuXG4gICAgICAvLyBFeGFtcGxlcyB3aGVyZSBcXG4gaXMgcmVxdWlyZWQgYXQgdGhlIGVuZDpcbiAgICAgIC8vIC0gYWJzdHJhY3QgbWVtYmVyIGRlZmluaXRpb25zIGluIGNsYXNzZXM6IGFic3RyYWN0IFByb3BlcnR5IDogaW50ICogc3RyaW5nXG4gICAgICAvLyAtIHJldHVybiB0eXBlIGFubm90YXRpb25zOiBsZXQgZiBmJyA9IGYnICgpIDogcmV0dXJuVHlwZUFubm90YXRpb25cbiAgICAgIC8vIC0gcmVjb3JkIGZpZWxkcyBkZWZpbml0aW9uczogeyBBIDogaW50IFxcbiBCIDogc3RyaW5nIH1cbiAgICAgIGVuZDogbG9va2FoZWFkKFxuICAgICAgICBlaXRoZXIoXG4gICAgICAgICAgL1xcbi8sXG4gICAgICAgICAgLz0vKSksXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICAvLyB3ZSBuZWVkIHRoZSBrbm93biB0eXBlcywgYW5kIHdlIG5lZWQgdGhlIHR5cGUgY29uc3RyYWludCBrZXl3b3JkcyBhbmQgbGl0ZXJhbHMuIGUuZy46IHdoZW4gJ2EgOiBudWxsXG4gICAgICBrZXl3b3JkczogaGxqcy5pbmhlcml0KEFMTF9LRVlXT1JEUywgeyB0eXBlOiBLTk9XTl9UWVBFUyB9KSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIENPTU1FTlQsXG4gICAgICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgICAgIGhsanMuaW5oZXJpdChRVU9URURfSURFTlRJRklFUiwgeyBzY29wZTogbnVsbCB9KSwgLy8gbWF0Y2ggdG8gYXZvaWQgc3RyYW5nZSBwYXR0ZXJucyBpbnNpZGUgdGhhdCBtYXkgYnJlYWsgdGhlIHBhcnNpbmdcbiAgICAgICAgT1BFUkFUT1JfV0lUSE9VVF9FUVVBTFxuICAgICAgXVxuICAgIH07XG4gIH07XG5cbiAgY29uc3QgVFlQRV9BTk5PVEFUSU9OID0gbWFrZVR5cGVBbm5vdGF0aW9uTW9kZSgvOi8sICdvcGVyYXRvcicpO1xuICBjb25zdCBESVNDUklNSU5BVEVEX1VOSU9OX1RZUEVfQU5OT1RBVElPTiA9IG1ha2VUeXBlQW5ub3RhdGlvbk1vZGUoL1xcYm9mXFxiLywgJ2tleXdvcmQnKTtcblxuICAvLyB0eXBlIE15VHlwZTwnYT4gPSAuLi5cbiAgY29uc3QgVFlQRV9ERUNMQVJBVElPTiA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgLyhefFxccyspLywgLy8gcHJldmVudHMgbWF0Y2hpbmcgdGhlIGZvbGxvd2luZzogYG1hdGNoIHMuc3R5cGUgd2l0aGBcbiAgICAgIC90eXBlLyxcbiAgICAgIC9cXHMrLyxcbiAgICAgIElERU5USUZJRVJfUkVcbiAgICBdLFxuICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgIDI6ICdrZXl3b3JkJyxcbiAgICAgIDQ6ICd0aXRsZS5jbGFzcydcbiAgICB9LFxuICAgIGVuZDogbG9va2FoZWFkKC9cXCh8PXwkLyksXG4gICAga2V5d29yZHM6IEFMTF9LRVlXT1JEUywgLy8gbWF0Y2gga2V5d29yZHMgaW4gdHlwZSBjb25zdHJhaW50cy4gZS5nLjogd2hlbiAnYSA6IG51bGxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVCxcbiAgICAgIGhsanMuaW5oZXJpdChRVU9URURfSURFTlRJRklFUiwgeyBzY29wZTogbnVsbCB9KSwgLy8gbWF0Y2ggdG8gYXZvaWQgc3RyYW5nZSBwYXR0ZXJucyBpbnNpZGUgdGhhdCBtYXkgYnJlYWsgdGhlIHBhcnNpbmdcbiAgICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgICB7XG4gICAgICAgIC8vIEZvciB2aXN1YWwgY29uc2lzdGVuY3ksIGhpZ2hsaWdodCB0eXBlIGJyYWNrZXRzIGFzIG9wZXJhdG9ycy5cbiAgICAgICAgc2NvcGU6ICdvcGVyYXRvcicsXG4gICAgICAgIG1hdGNoOiAvPHw+L1xuICAgICAgfSxcbiAgICAgIFRZUEVfQU5OT1RBVElPTiAvLyBnZW5lcmljIHR5cGVzIGNhbiBoYXZlIGNvbnN0cmFpbnRzLCB3aGljaCBhcmUgdHlwZSBhbm5vdGF0aW9ucy4gZS5nLiB0eXBlIE15VHlwZTwnVCB3aGVuICdUIDogZGVsZWdhdGU8b2JqICogc3RyaW5nPj4gPVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBDT01QVVRBVElPTl9FWFBSRVNTSU9OID0ge1xuICAgIC8vIGNvbXB1dGF0aW9uIGV4cHJlc3Npb25zOlxuICAgIHNjb3BlOiAnY29tcHV0YXRpb24tZXhwcmVzc2lvbicsXG4gICAgLy8gQlVHOiBtaWdodCBjb25mbGljdCB3aXRoIHJlY29yZCBkZWNvbnN0cnVjdGlvbi4gZS5nLiBsZXQgZiB7IE5hbWUgPSBuYW1lIH0gPSBuYW1lIC8vIHdpbGwgaGlnaGxpZ2h0IGZcbiAgICBtYXRjaDogL1xcYltfYS16XVxcdyooPz1cXHMqXFx7KS9cbiAgfTtcblxuICBjb25zdCBQUkVQUk9DRVNTT1IgPSB7XG4gICAgLy8gcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgYW5kIGZzaSBjb21tYW5kczpcbiAgICBiZWdpbjogW1xuICAgICAgL15cXHMqLyxcbiAgICAgIGNvbmNhdCgvIy8sIGVpdGhlciguLi5QUkVQUk9DRVNTT1JfS0VZV09SRFMpKSxcbiAgICAgIC9cXGIvXG4gICAgXSxcbiAgICBiZWdpblNjb3BlOiB7IDI6ICdtZXRhJyB9LFxuICAgIGVuZDogbG9va2FoZWFkKC9cXHN8JC8pXG4gIH07XG5cbiAgLy8gVE9ETzogdGhpcyBkZWZpbml0aW9uIGlzIG1pc3Npbmcgc3VwcG9ydCBmb3IgdHlwZSBzdWZmaXhlcyBhbmQgb2N0YWwgbm90YXRpb24uXG4gIC8vIEJVRzogcmFuZ2Ugb3BlcmF0b3Igd2l0aG91dCBhbnkgc3BhY2UgaXMgd3JvbmdseSBpbnRlcnByZXRlZCBhcyBhIHNpbmdsZSBudW1iZXIgKGUuZy4gMS4uMTAgKVxuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuXG4gIC8vIEFsbCB0aGUgZm9sbG93aW5nIHN0cmluZyBkZWZpbml0aW9ucyBhcmUgcG90ZW50aWFsbHkgbXVsdGktbGluZS5cbiAgLy8gQlVHOiB0aGVzZSBkZWZpbml0aW9ucyBhcmUgbWlzc2luZyBzdXBwb3J0IGZvciBieXRlIHN0cmluZ3MgKHN1ZmZpeGVkIHdpdGggQilcblxuICAvLyBcIi4uLlwiXG4gIGNvbnN0IFFVT1RFRF9TVFJJTkcgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFXG4gICAgXVxuICB9O1xuICAvLyBAXCIuLi5cIlxuICBjb25zdCBWRVJCQVRJTV9TVFJJTkcgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvQFwiLyxcbiAgICBlbmQ6IC9cIi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cIlwiLyAvLyBlc2NhcGVkIFwiXG4gICAgICB9LFxuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFXG4gICAgXVxuICB9O1xuICAvLyBcIlwiXCIuLi5cIlwiXCJcbiAgY29uc3QgVFJJUExFX1FVT1RFRF9TVFJJTkcgPSB7XG4gICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCJcIlwiLyxcbiAgICBlbmQ6IC9cIlwiXCIvLFxuICAgIHJlbGV2YW5jZTogMlxuICB9O1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBzY29wZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogQUxMX0tFWVdPUkRTXG4gIH07XG4gIC8vICRcIi4uLnsxKzF9Li4uXCJcbiAgY29uc3QgSU5URVJQT0xBVEVEX1NUUklORyA9IHtcbiAgICBzY29wZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXCRcIi8sXG4gICAgZW5kOiAvXCIvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiAvXFx7XFx7LyAvLyBlc2NhcGVkIHtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiAvXFx9XFx9LyAvLyBlc2NhcGVkIH1cbiAgICAgIH0sXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBTVUJTVFxuICAgIF1cbiAgfTtcbiAgLy8gJEBcIi4uLnsxKzF9Li4uXCJcbiAgY29uc3QgSU5URVJQT0xBVEVEX1ZFUkJBVElNX1NUUklORyA9IHtcbiAgICBzY29wZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC8oXFwkQHxAXFwkKVwiLyxcbiAgICBlbmQ6IC9cIi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXHtcXHsvIC8vIGVzY2FwZWQge1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXH1cXH0vIC8vIGVzY2FwZWQgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cIlwiL1xuICAgICAgfSxcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIFNVQlNUXG4gICAgXVxuICB9O1xuICAvLyAkXCJcIlwiLi4uezErMX0uLi5cIlwiXCJcbiAgY29uc3QgSU5URVJQT0xBVEVEX1RSSVBMRV9RVU9URURfU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1xcJFwiXCJcIi8sXG4gICAgZW5kOiAvXCJcIlwiLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1xce1xcey8gLy8gZXNjYXBlZCB7XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogL1xcfVxcfS8gLy8gZXNjYXBlZCB9XG4gICAgICB9LFxuICAgICAgU1VCU1RcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMlxuICB9O1xuICAvLyAnLidcbiAgY29uc3QgQ0hBUl9MSVRFUkFMID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICBtYXRjaDogY29uY2F0KFxuICAgICAgLycvLFxuICAgICAgZWl0aGVyKFxuICAgICAgICAvW15cXFxcJ10vLCAvLyBlaXRoZXIgYSBzaW5nbGUgbm9uIGVzY2FwZWQgY2hhci4uLlxuICAgICAgICAvXFxcXCg/Oi58XFxkezN9fHhbYS1mQS1GXFxkXXsyfXx1W2EtZkEtRlxcZF17NH18VVthLWZBLUZcXGRdezh9KS8gLy8gLi4ub3IgYW4gZXNjYXBlIHNlcXVlbmNlXG4gICAgICApLFxuICAgICAgLycvXG4gICAgKVxuICB9O1xuICAvLyBGIyBhbGxvd3MgYSBsb3Qgb2YgdGhpbmdzIGluc2lkZSBzdHJpbmcgcGxhY2Vob2xkZXJzLlxuICAvLyBUaGluZ3MgdGhhdCBkb24ndCBjdXJyZW50bHkgc2VlbSBhbGxvd2VkIGJ5IHRoZSBjb21waWxlcjogdHlwZXMgZGVmaW5pdGlvbiwgYXR0cmlidXRlcyB1c2FnZS5cbiAgLy8gKFN0cmljdGx5IHNwZWFraW5nLCBzb21lIG9mIHRoZSBmb2xsb3dpbmdzIGFyZSBvbmx5IGFsbG93ZWQgaW5zaWRlIHRyaXBsZSBxdW90ZWQgaW50ZXJwb2xhdGVkIHN0cmluZ3MuLi4pXG4gIFNVQlNULmNvbnRhaW5zID0gW1xuICAgIElOVEVSUE9MQVRFRF9WRVJCQVRJTV9TVFJJTkcsXG4gICAgSU5URVJQT0xBVEVEX1NUUklORyxcbiAgICBWRVJCQVRJTV9TVFJJTkcsXG4gICAgUVVPVEVEX1NUUklORyxcbiAgICBDSEFSX0xJVEVSQUwsXG4gICAgQkFOR19LRVlXT1JEX01PREUsXG4gICAgQ09NTUVOVCxcbiAgICBRVU9URURfSURFTlRJRklFUixcbiAgICBUWVBFX0FOTk9UQVRJT04sXG4gICAgQ09NUFVUQVRJT05fRVhQUkVTU0lPTixcbiAgICBQUkVQUk9DRVNTT1IsXG4gICAgTlVNQkVSLFxuICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgT1BFUkFUT1JcbiAgXTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICBJTlRFUlBPTEFURURfVFJJUExFX1FVT1RFRF9TVFJJTkcsXG4gICAgICBJTlRFUlBPTEFURURfVkVSQkFUSU1fU1RSSU5HLFxuICAgICAgSU5URVJQT0xBVEVEX1NUUklORyxcbiAgICAgIFRSSVBMRV9RVU9URURfU1RSSU5HLFxuICAgICAgVkVSQkFUSU1fU1RSSU5HLFxuICAgICAgUVVPVEVEX1NUUklORyxcbiAgICAgIENIQVJfTElURVJBTFxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdGIycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2ZzJyxcbiAgICAgICdmIydcbiAgICBdLFxuICAgIGtleXdvcmRzOiBBTExfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY2xhc3NOYW1lQWxpYXNlczoge1xuICAgICAgJ2NvbXB1dGF0aW9uLWV4cHJlc3Npb24nOiAna2V5d29yZCdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBCQU5HX0tFWVdPUkRfTU9ERSxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlQsXG4gICAgICBRVU9URURfSURFTlRJRklFUixcbiAgICAgIFRZUEVfREVDTEFSQVRJT04sXG4gICAgICB7XG4gICAgICAgIC8vIGUuZy4gWzxBdHRyaWJ1dGVzKFwiXCIpPl0gb3IgWzxgYG1vZHVsZWBgOiBNeUN1c3RvbUF0dHJpYnV0ZVRoYXRXb3Jrc09uTW9kdWxlcz5dXG4gICAgICAgIC8vIG9yIFs8U2VhbGVkOyBOb0VxdWFsaXR5OyBOb0NvbXBhcmlzb247IENvbXBpbGVkTmFtZShcIkZTaGFycEFzeW5jYDFcIik+XVxuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogL1xcWzwvLFxuICAgICAgICBlbmQ6IC8+XFxdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAyLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFFVT1RFRF9JREVOVElGSUVSLFxuICAgICAgICAgIC8vIGNhbiBjb250YWluIGFueSBjb25zdGFudCB2YWx1ZVxuICAgICAgICAgIFRSSVBMRV9RVU9URURfU1RSSU5HLFxuICAgICAgICAgIFZFUkJBVElNX1NUUklORyxcbiAgICAgICAgICBRVU9URURfU1RSSU5HLFxuICAgICAgICAgIENIQVJfTElURVJBTCxcbiAgICAgICAgICBOVU1CRVJcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIERJU0NSSU1JTkFURURfVU5JT05fVFlQRV9BTk5PVEFUSU9OLFxuICAgICAgVFlQRV9BTk5PVEFUSU9OLFxuICAgICAgQ09NUFVUQVRJT05fRVhQUkVTU0lPTixcbiAgICAgIFBSRVBST0NFU1NPUixcbiAgICAgIE5VTUJFUixcbiAgICAgIEdFTkVSSUNfVFlQRV9TWU1CT0wsXG4gICAgICBPUEVSQVRPUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmc2hhcnA7XG4iLCAiLypcbiBMYW5ndWFnZTogR0FNU1xuIEF1dGhvcjogU3RlZmFuIEJlY2hlcnQgPHN0ZWZhbi5iZWNoZXJ0QGdteC5uZXQ+XG4gQ29udHJpYnV0b3JzOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPiwgTWlra28gS291aGlhIDxtaWtrby5rb3VoaWFAaWtpLmZpPlxuIERlc2NyaXB0aW9uOiBUaGUgR2VuZXJhbCBBbGdlYnJhaWMgTW9kZWxpbmcgU3lzdGVtIGxhbmd1YWdlXG4gV2Vic2l0ZTogaHR0cHM6Ly93d3cuZ2Ftcy5jb21cbiBDYXRlZ29yeTogc2NpZW50aWZpY1xuICovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBnYW1zKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ2Fib3J0IGFjcm9ueW0gYWNyb255bXMgYWxpYXMgYWxsIGFuZCBhc3NpZ24gYmluYXJ5IGNhcmQgZGlhZyBkaXNwbGF5ICdcbiAgICAgICsgJ2Vsc2UgZXEgZmlsZSBmaWxlcyBmb3IgZnJlZSBnZSBndCBpZiBpbnRlZ2VyIGxlIGxvb3AgbHQgbWF4aW1pemluZyAnXG4gICAgICArICdtaW5pbWl6aW5nIG1vZGVsIG1vZGVscyBuZSBuZWdhdGl2ZSBubyBub3Qgb3B0aW9uIG9wdGlvbnMgb3Igb3JkICdcbiAgICAgICsgJ3Bvc2l0aXZlIHByb2QgcHV0IHB1dHBhZ2UgcHV0dGwgcmVwZWF0IHNhbWVhcyBzZW1pY29udCBzZW1paW50IHNtYXggJ1xuICAgICAgKyAnc21pbiBzb2x2ZSBzb3MxIHNvczIgc3VtIHN5c3RlbSB0YWJsZSB0aGVuIHVudGlsIHVzaW5nIHdoaWxlIHhvciB5ZXMnLFxuICAgIGxpdGVyYWw6XG4gICAgICAnZXBzIGluZiBuYScsXG4gICAgYnVpbHRfaW46XG4gICAgICAnYWJzIGFyY2NvcyBhcmNzaW4gYXJjdGFuIGFyY3RhbjIgQmV0YSBiZXRhUmVnIGJpbm9taWFsIGNlaWwgY2VudHJvcHkgJ1xuICAgICAgKyAnY29zIGNvc2ggY3ZQb3dlciBkaXYgZGl2MCBlRGlzdCBlbnRyb3B5IGVycm9yZiBleGVjU2VlZCBleHAgZmFjdCAnXG4gICAgICArICdmbG9vciBmcmFjIGdhbW1hIGdhbW1hUmVnIGxvZyBsb2dCZXRhIGxvZ0dhbW1hIGxvZzEwIGxvZzIgbWFwVmFsIG1heCAnXG4gICAgICArICdtaW4gbW9kIG5jcENNIG5jcEYgbmNwVlVwb3cgbmNwVlVzaW4gbm9ybWFsIHBpIHBvbHkgcG93ZXIgJ1xuICAgICAgKyAncmFuZEJpbm9taWFsIHJhbmRMaW5lYXIgcmFuZFRyaWFuZ2xlIHJvdW5kIHJQb3dlciBzaWdtb2lkIHNpZ24gJ1xuICAgICAgKyAnc2lnblBvd2VyIHNpbiBzaW5oIHNsZXhwIHNsbG9nMTAgc2xyZWMgc3FleHAgc3Fsb2cxMCBzcXIgc3FyZWMgc3FydCAnXG4gICAgICArICd0YW4gdGFuaCB0cnVuYyB1bmlmb3JtIHVuaWZvcm1JbnQgdmNQb3dlciBib29sX2FuZCBib29sX2VxdiBib29sX2ltcCAnXG4gICAgICArICdib29sX25vdCBib29sX29yIGJvb2xfeG9yIGlmVGhlbiByZWxfZXEgcmVsX2dlIHJlbF9ndCByZWxfbGUgcmVsX2x0ICdcbiAgICAgICsgJ3JlbF9uZSBnZGF5IGdkb3cgZ2hvdXIgZ2xlYXAgZ21pbGxpc2VjIGdtaW51dGUgZ21vbnRoIGdzZWNvbmQgZ3llYXIgJ1xuICAgICAgKyAnamRhdGUgam5vdyBqc3RhcnQganRpbWUgZXJyb3JMZXZlbCBleGVjRXJyb3IgZ2Ftc1JlbGVhc2UgZ2Ftc1ZlcnNpb24gJ1xuICAgICAgKyAnaGFuZGxlQ29sbGVjdCBoYW5kbGVEZWxldGUgaGFuZGxlU3RhdHVzIGhhbmRsZVN1Ym1pdCBoZWFwRnJlZSAnXG4gICAgICArICdoZWFwTGltaXQgaGVhcFNpemUgam9iSGFuZGxlIGpvYktpbGwgam9iU3RhdHVzIGpvYlRlcm1pbmF0ZSAnXG4gICAgICArICdsaWNlbnNlTGV2ZWwgbGljZW5zZVN0YXR1cyBtYXhFeGVjRXJyb3Igc2xlZXAgdGltZUNsb3NlIHRpbWVDb21wICdcbiAgICAgICsgJ3RpbWVFbGFwc2VkIHRpbWVFeGVjIHRpbWVTdGFydCdcbiAgfTtcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgfTtcbiAgY29uc3QgU1lNQk9MUyA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAvPVtsZ2VueGNdPS8gfSxcbiAgICAgIHsgYmVnaW46IC9cXCQvIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFFTVFIgPSB7IC8vIE9uZS1saW5lIHF1b3RlZCBjb21tZW50IHN0cmluZ1xuICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnXFwnJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJ1xuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICB9O1xuICBjb25zdCBBU1NJR05NRU5UID0ge1xuICAgIGJlZ2luOiAnLycsXG4gICAgZW5kOiAnLycsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBRU1RSLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IENPTU1FTlRfV09SRCA9IC9bYS16MC05JiMqPT9AXFxcXD48OiwoKSRbXFxdXy57fSErJV4tXSsvO1xuICBjb25zdCBERVNDVEVYVCA9IHsgLy8gUGFyYW1ldGVyL3NldC92YXJpYWJsZSBkZXNjcmlwdGlvbiB0ZXh0XG4gICAgYmVnaW46IC9bYS16XVthLXowLTlfXSooXFwoW2EtejAtOV8sIF0qXFwpKT9bIFxcdF0rLyxcbiAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgZW5kOiAnJCcsXG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFFTVFIsXG4gICAgICBBU1NJR05NRU5ULFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgLy8gb25lIGNvbW1lbnQgd29yZCwgdGhlbiBwb3NzaWJseSBtb3JlXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgQ09NTUVOVF9XT1JELFxuICAgICAgICAgIC8vIFsgXSBiZWNhdXNlIFxccyB3b3VsZCBiZSB0b28gYnJvYWQgKG1hdGNoaW5nIG5ld2xpbmVzKVxuICAgICAgICAgIHJlZ2V4LmFueU51bWJlck9mVGltZXMocmVnZXguY29uY2F0KC9bIF0rLywgQ09NTUVOVF9XT1JEKSlcbiAgICAgICAgKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0dBTVMnLFxuICAgIGFsaWFzZXM6IFsgJ2dtcycgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DT01NRU5UKC9eXFwkb250ZXh0LywgL15cXCRvZmZ0ZXh0LyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ15cXFxcJFthLXowLTldKycsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXlxcXFwkW2EtejAtOV0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXlxcXFwqJywgJyQnKSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgLy8gRGVjbGFyYXRpb25zXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6XG4gICAgICAgICAgJ3NldCBzZXRzIHBhcmFtZXRlciBwYXJhbWV0ZXJzIHZhcmlhYmxlIHZhcmlhYmxlcyAnXG4gICAgICAgICAgKyAnc2NhbGFyIHNjYWxhcnMgZXF1YXRpb24gZXF1YXRpb25zJyxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXConLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIEFTU0lHTk1FTlQsXG4gICAgICAgICAgREVTQ1RFWFRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gdGFibGUgZW52aXJvbm1lbnRcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3RhYmxlJyxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgLy8gdGFibGUgaGVhZGVyIHJvd1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ3RhYmxlJyxcbiAgICAgICAgICAgIGVuZDogJyQnLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgREVTQ1RFWFQgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXConLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgICAgICAgIC8vIFRhYmxlIGRvZXMgbm90IGNvbnRhaW4gREVTQ1RFWFQgb3IgQVNTSUdOTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gRnVuY3Rpb24gZGVmaW5pdGlvbnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogL15bYS16XVthLXowLTlfLFxcLSsnICgpJF0rXFwuezJ9LyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyAvLyBGdW5jdGlvbiB0aXRsZVxuICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgYmVnaW46IC9eW2EtejAtOV9dKy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBTWU1CT0xTXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBTWU1CT0xTXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdhbXM7XG4iLCAiLypcbkxhbmd1YWdlOiBHQVVTU1xuQXV0aG9yOiBNYXR0IEV2YW5zIDxtYXR0QGFwdGVjaC5jb20+XG5EZXNjcmlwdGlvbjogR0FVU1MgTWF0aGVtYXRpY2FsIGFuZCBTdGF0aXN0aWNhbCBsYW5ndWFnZVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuYXB0ZWNoLmNvbVxuQ2F0ZWdvcnk6IHNjaWVudGlmaWNcbiovXG5mdW5jdGlvbiBnYXVzcyhobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6ICdib29sIGJyZWFrIGNhbGwgY2FsbGV4ZSBjaGVja2ludGVycnVwdCBjbGVhciBjbGVhcmcgY2xvc2VhbGwgY2xzIGNvbWxvZyBjb21waWxlICdcbiAgICAgICAgICAgICAgKyAnY29udGludWUgY3JlYXRlIGRlYnVnIGRlY2xhcmUgZGVsZXRlIGRpc2FibGUgZGxpYnJhcnkgZGxsY2FsbCBkbyBkb3MgZWQgZWRpdCBlbHNlICdcbiAgICAgICAgICAgICAgKyAnZWxzZWlmIGVuYWJsZSBlbmQgZW5kZm9yIGVuZGlmIGVuZHAgZW5kbyBlcnJvcmxvZyBlcnJvcmxvZ2F0IGV4cHIgZXh0ZXJuYWwgZm4gJ1xuICAgICAgICAgICAgICArICdmb3IgZm9ybWF0IGdvdG8gZ29zdWIgZ3JhcGggaWYga2V5d29yZCBsZXQgbGliIGxpYnJhcnkgbGluZSBsb2FkIGxvYWRhcnJheSBsb2FkZXhlICdcbiAgICAgICAgICAgICAgKyAnbG9hZGYgbG9hZGsgbG9hZG0gbG9hZHAgbG9hZHMgbG9hZHggbG9jYWwgbG9jYXRlIGxvb3BuZXh0aW5kZXggbHByaW50IGxwd2lkdGggbHNob3cgJ1xuICAgICAgICAgICAgICArICdtYXRyaXggbXN5bSBuZHBjbGV4IG5ldyBvcGVuIG91dHB1dCBvdXR3aWR0aCBwbG90IHBsb3RzeW0gcG9wIHByY3NuIHByaW50ICdcbiAgICAgICAgICAgICAgKyAncHJpbnRkb3MgcHJvYyBwdXNoIHJldHAgcmV0dXJuIHJuZGNvbiBybmRtb2Qgcm5kbXVsdCBybmRzZWVkIHJ1biBzYXZlIHNhdmVhbGwgc2NyZWVuICdcbiAgICAgICAgICAgICAgKyAnc2Nyb2xsIHNldGFycmF5IHNob3cgc3BhcnNlIHN0b3Agc3RyaW5nIHN0cnVjdCBzeXN0ZW0gdHJhY2UgdHJhcCB0aHJlYWRmb3IgJ1xuICAgICAgICAgICAgICArICd0aHJlYWRlbmRmb3IgdGhyZWFkYmVnaW4gdGhyZWFkam9pbiB0aHJlYWRzdGF0IHRocmVhZGVuZCB1bnRpbCB1c2Ugd2hpbGUgd2lucHJpbnQgJ1xuICAgICAgICAgICAgICArICduZSBnZSBsZSBndCBsdCBhbmQgeG9yIG9yIG5vdCBlcSBlcXYnLFxuICAgIGJ1aWx0X2luOiAnYWJzIGFjZiBhY29uY2F0IGFleWUgYW1heCBhbWVhbiBBbWVyaWNhbkJpbm9tQ2FsbCBBbWVyaWNhbkJpbm9tQ2FsbF9HcmVla3MgQW1lcmljYW5CaW5vbUNhbGxfSW1wVm9sICdcbiAgICAgICAgICAgICAgKyAnQW1lcmljYW5CaW5vbVB1dCBBbWVyaWNhbkJpbm9tUHV0X0dyZWVrcyBBbWVyaWNhbkJpbm9tUHV0X0ltcFZvbCBBbWVyaWNhbkJTQ2FsbCBBbWVyaWNhbkJTQ2FsbF9HcmVla3MgJ1xuICAgICAgICAgICAgICArICdBbWVyaWNhbkJTQ2FsbF9JbXBWb2wgQW1lcmljYW5CU1B1dCBBbWVyaWNhbkJTUHV0X0dyZWVrcyBBbWVyaWNhbkJTUHV0X0ltcFZvbCBhbWluIGFtdWx0IGFubm90YXRpb25HZXREZWZhdWx0cyAnXG4gICAgICAgICAgICAgICsgJ2Fubm90YXRpb25TZXRCa2QgYW5ub3RhdGlvblNldEZvbnQgYW5ub3RhdGlvblNldExpbmVDb2xvciBhbm5vdGF0aW9uU2V0TGluZVN0eWxlIGFubm90YXRpb25TZXRMaW5lVGhpY2tuZXNzICdcbiAgICAgICAgICAgICAgKyAnYW5udWFsVHJhZGluZ0RheXMgYXJjY29zIGFyY3NpbiBhcmVzaGFwZSBhcnJheWFsbG9jIGFycmF5aW5kZXggYXJyYXlpbml0IGFycmF5dG9tYXQgYXNjaWlsb2FkIGFzY2xhYmVsIGFzdGQgJ1xuICAgICAgICAgICAgICArICdhc3RkcyBhc3VtIGF0YW4gYXRhbjIgYXRyYW5zcG9zZSBheG1hcmdpbiBiYWxhbmNlIGJhbmQgYmFuZGNob2wgYmFuZGNob2xzb2wgYmFuZGx0c29sIGJhbmRydiBiYW5kc29scGQgYmFyICdcbiAgICAgICAgICAgICAgKyAnYmFzZTEwIGJlZ3dpbmQgYmVzc2VsaiBiZXNzZWx5IGJldGEgYm94IGJveGNveCBjZGZCZXRhIGNkZkJldGFJbnYgY2RmQmlub21pYWwgY2RmQmlub21pYWxJbnYgY2RmQnZuIGNkZkJ2bjIgJ1xuICAgICAgICAgICAgICArICdjZGZCdm4yZSBjZGZDYXVjaHkgY2RmQ2F1Y2h5SW52IGNkZkNoaWMgY2RmQ2hpaSBjZGZDaGluYyBjZGZDaGluY0ludiBjZGZFeHAgY2RmRXhwSW52IGNkZkZjIGNkZkZuYyBjZGZGbmNJbnYgJ1xuICAgICAgICAgICAgICArICdjZGZHYW0gY2RmR2VuUGFyZXRvIGNkZkh5cGVyR2VvIGNkZkxhcGxhY2UgY2RmTGFwbGFjZUludiBjZGZMb2dpc3RpYyBjZGZMb2dpc3RpY0ludiBjZGZtQ29udHJvbENyZWF0ZSBjZGZNdm4gJ1xuICAgICAgICAgICAgICArICdjZGZNdm4yZSBjZGZNdm5jZSBjZGZNdm5lIGNkZk12dDJlIGNkZk12dGNlIGNkZk12dGUgY2RmTiBjZGZOMiBjZGZOYyBjZGZOZWdCaW5vbWlhbCBjZGZOZWdCaW5vbWlhbEludiBjZGZOaSAnXG4gICAgICAgICAgICAgICsgJ2NkZlBvaXNzb24gY2RmUG9pc3NvbkludiBjZGZSYXlsZWlnaCBjZGZSYXlsZWlnaEludiBjZGZUYyBjZGZUY2kgY2RmVG5jIGNkZlR2biBjZGZXZWlidWxsIGNkZldlaWJ1bGxJbnYgY2RpciAnXG4gICAgICAgICAgICAgICsgJ2NlaWwgQ2hhbmdlRGlyIGNoZGlyIGNoaUJhclNxdWFyZSBjaG9sIGNob2xkbiBjaG9sc29sIGNob2x1cCBjaHJzIGNsb3NlIGNvZGUgY29scyBjb2xzZiBjb21iaW5hdGUgY29tYmluYXRlZCAnXG4gICAgICAgICAgICAgICsgJ2NvbXBsZXggY29uIGNvbmQgY29uaiBjb25zIENvblNjb3JlIGNvbnRvdXIgY29udiBjb252ZXJ0c2F0b3N0ciBjb252ZXJ0c3RydG9zYSBjb3JybSBjb3JybXMgY29ycnZjIGNvcnJ4IGNvcnJ4cyAnXG4gICAgICAgICAgICAgICsgJ2NvcyBjb3NoIGNvdW50cyBjb3VudHd0cyBjcm9zc3ByZCBjcm91dCBjcm91dHAgY3NyY29sIGNzcmxpbiBjc3ZSZWFkTSBjc3ZSZWFkU0EgY3VtcHJvZGMgY3Vtc3VtYyBjdXJ2ZSBjdnRvcyAnXG4gICAgICAgICAgICAgICsgJ2RhdGFjcmVhdGUgZGF0YWNyZWF0ZWNvbXBsZXggZGF0YWxpc3QgZGF0YWxvYWQgZGF0YWxvb3AgZGF0YW9wZW4gZGF0YXNhdmUgZGF0ZSBkYXRlc3RyIGRhdGVzdHJpbmcgZGF0ZXN0cnltZCAnXG4gICAgICAgICAgICAgICsgJ2RheWlueXIgZGF5b2Z3ZWVrIGRiQWRkRGF0YWJhc2UgZGJDbG9zZSBkYkNvbW1pdCBkYkNyZWF0ZVF1ZXJ5IGRiRXhlY1F1ZXJ5IGRiR2V0Q29ubmVjdE9wdGlvbnMgZGJHZXREYXRhYmFzZU5hbWUgJ1xuICAgICAgICAgICAgICArICdkYkdldERyaXZlck5hbWUgZGJHZXREcml2ZXJzIGRiR2V0SG9zdE5hbWUgZGJHZXRMYXN0RXJyb3JOdW0gZGJHZXRMYXN0RXJyb3JUZXh0IGRiR2V0TnVtZXJpY2FsUHJlY1BvbGljeSAnXG4gICAgICAgICAgICAgICsgJ2RiR2V0UGFzc3dvcmQgZGJHZXRQb3J0IGRiR2V0VGFibGVIZWFkZXJzIGRiR2V0VGFibGVzIGRiR2V0VXNlck5hbWUgZGJIYXNGZWF0dXJlIGRiSXNEcml2ZXJBdmFpbGFibGUgZGJJc09wZW4gJ1xuICAgICAgICAgICAgICArICdkYklzT3BlbkVycm9yIGRiT3BlbiBkYlF1ZXJ5QmluZFZhbHVlIGRiUXVlcnlDbGVhciBkYlF1ZXJ5Q29scyBkYlF1ZXJ5RXhlY1ByZXBhcmVkIGRiUXVlcnlGZXRjaEFsbE0gZGJRdWVyeUZldGNoQWxsU0EgJ1xuICAgICAgICAgICAgICArICdkYlF1ZXJ5RmV0Y2hPbmVNIGRiUXVlcnlGZXRjaE9uZVNBIGRiUXVlcnlGaW5pc2ggZGJRdWVyeUdldEJvdW5kVmFsdWUgZGJRdWVyeUdldEJvdW5kVmFsdWVzIGRiUXVlcnlHZXRGaWVsZCAnXG4gICAgICAgICAgICAgICsgJ2RiUXVlcnlHZXRMYXN0RXJyb3JOdW0gZGJRdWVyeUdldExhc3RFcnJvclRleHQgZGJRdWVyeUdldExhc3RJbnNlcnRJRCBkYlF1ZXJ5R2V0TGFzdFF1ZXJ5IGRiUXVlcnlHZXRQb3NpdGlvbiAnXG4gICAgICAgICAgICAgICsgJ2RiUXVlcnlJc0FjdGl2ZSBkYlF1ZXJ5SXNGb3J3YXJkT25seSBkYlF1ZXJ5SXNOdWxsIGRiUXVlcnlJc1NlbGVjdCBkYlF1ZXJ5SXNWYWxpZCBkYlF1ZXJ5UHJlcGFyZSBkYlF1ZXJ5Um93cyAnXG4gICAgICAgICAgICAgICsgJ2RiUXVlcnlTZWVrIGRiUXVlcnlTZWVrRmlyc3QgZGJRdWVyeVNlZWtMYXN0IGRiUXVlcnlTZWVrTmV4dCBkYlF1ZXJ5U2Vla1ByZXZpb3VzIGRiUXVlcnlTZXRGb3J3YXJkT25seSAnXG4gICAgICAgICAgICAgICsgJ2RiUmVtb3ZlRGF0YWJhc2UgZGJSb2xsYmFjayBkYlNldENvbm5lY3RPcHRpb25zIGRiU2V0RGF0YWJhc2VOYW1lIGRiU2V0SG9zdE5hbWUgZGJTZXROdW1lcmljYWxQcmVjUG9saWN5ICdcbiAgICAgICAgICAgICAgKyAnZGJTZXRQb3J0IGRiU2V0VXNlck5hbWUgZGJUcmFuc2FjdGlvbiBEZWxldGVGaWxlIGRlbGlmIGRlbHJvd3MgZGVuc2VUb1NwIGRlbnNlVG9TcFJFIGRlblRvWmVybyBkZXNpZ24gZGV0IGRldGwgJ1xuICAgICAgICAgICAgICArICdkZmZ0IGRmZnRpIGRpYWcgZGlhZ3J2IGRpZ2FtbWEgZG9zd2luIERPU1dpbkNsb3NlYWxsIERPU1dpbk9wZW4gZG90ZmVxIGRvdGZlcW10IGRvdGZnZSBkb3RmZ2VtdCBkb3RmZ3QgZG90Zmd0bXQgJ1xuICAgICAgICAgICAgICArICdkb3RmbGUgZG90ZmxlbXQgZG90Zmx0IGRvdGZsdG10IGRvdGZuZSBkb3RmbmVtdCBkcmF3IGRyb3AgZHNDcmVhdGUgZHN0YXQgZHN0YXRtdCBkc3RhdG10Q29udHJvbENyZWF0ZSBkdGRhdGUgZHRkYXkgJ1xuICAgICAgICAgICAgICArICdkdHRpbWUgZHR0b2R0diBkdHRvc3RyIGR0dG91dGMgZHR2bm9ybWFsIGR0dnRvZHQgZHR2dG91dGMgZHVtbXkgZHVtbXliciBkdW1teWRuIGVpZyBlaWdoIGVpZ2h2IGVpZ3YgZWxhcHNlZFRyYWRpbmdEYXlzICdcbiAgICAgICAgICAgICAgKyAnZW5kd2luZCBlbnZnZXQgZW9mIGVxU29sdmUgZXFTb2x2ZW10IGVxU29sdmVtdENvbnRyb2xDcmVhdGUgZXFTb2x2ZW10T3V0Q3JlYXRlIGVxU29sdmVzZXQgZXJmIGVyZmMgZXJmY2NwbHggZXJmY3BseCBlcnJvciAnXG4gICAgICAgICAgICAgICsgJ2V0ZGF5cyBldGhzZWMgZXRzdHIgRXVyb3BlYW5CaW5vbUNhbGwgRXVyb3BlYW5CaW5vbUNhbGxfR3JlZWtzIEV1cm9wZWFuQmlub21DYWxsX0ltcFZvbCBFdXJvcGVhbkJpbm9tUHV0ICdcbiAgICAgICAgICAgICAgKyAnRXVyb3BlYW5CaW5vbVB1dF9HcmVla3MgRXVyb3BlYW5CaW5vbVB1dF9JbXBWb2wgRXVyb3BlYW5CU0NhbGwgRXVyb3BlYW5CU0NhbGxfR3JlZWtzIEV1cm9wZWFuQlNDYWxsX0ltcFZvbCAnXG4gICAgICAgICAgICAgICsgJ0V1cm9wZWFuQlNQdXQgRXVyb3BlYW5CU1B1dF9HcmVla3MgRXVyb3BlYW5CU1B1dF9JbXBWb2wgZXhjdHNtcGwgZXhlYyBleGVjYmcgZXhwIGV4dGVybiBleWUgZmNoZWNrZXJyIGZjbGVhcmVyciBmZXEgJ1xuICAgICAgICAgICAgICArICdmZXFtdCBmZmx1c2ggZmZ0IGZmdGkgZmZ0bSBmZnRtaSBmZnRuIGZnZSBmZ2VtdCBmZ2V0cyBmZ2V0c2EgZmdldHNhdCBmZ2V0c3QgZmd0IGZndG10IGZpbGVpbmZvIGZpbGVzYSBmbGUgZmxlbXQgJ1xuICAgICAgICAgICAgICArICdmbG9vciBmbHQgZmx0bXQgZm1vZCBmbmUgZm5lbXQgZm9udHMgZm9wZW4gZm9ybWF0Y3YgZm9ybWF0bnYgZnB1dHMgZnB1dHN0IGZzZWVrIGZzdHJlcnJvciBmdGVsbCBmdG9jdiBmdG9zIGZ0b3N0ckMgJ1xuICAgICAgICAgICAgICArICdnYW1tYSBnYW1tYWNwbHggZ2FtbWFpaSBnYXVzc2V0IGdkYUFwcGVuZCBnZGFDcmVhdGUgZ2RhRFN0YXQgZ2RhRFN0YXRNYXQgZ2RhR2V0SW5kZXggZ2RhR2V0TmFtZSBnZGFHZXROYW1lcyBnZGFHZXRPcmRlcnMgJ1xuICAgICAgICAgICAgICArICdnZGFHZXRUeXBlIGdkYUdldFR5cGVzIGdkYUdldFZhckluZm8gZ2RhSXNDcGx4IGdkYUxvYWQgZ2RhUGFjayBnZGFSZWFkIGdkYVJlYWRCeUluZGV4IGdkYVJlYWRTb21lIGdkYVJlYWRTcGFyc2UgJ1xuICAgICAgICAgICAgICArICdnZGFSZWFkU3RydWN0IGdkYVJlcG9ydFZhckluZm8gZ2RhU2F2ZSBnZGFVcGRhdGUgZ2RhVXBkYXRlQW5kUGFjayBnZGFWYXJzIGdkYVdyaXRlIGdkYVdyaXRlMzIgZ2RhV3JpdGVTb21lIGdldGFycmF5ICdcbiAgICAgICAgICAgICAgKyAnZ2V0ZGltcyBnZXRmIGdldEdBVVNTaG9tZSBnZXRtYXRyaXggZ2V0bWF0cml4NEQgZ2V0bmFtZSBnZXRuYW1lZiBnZXROZXh0VHJhZGluZ0RheSBnZXROZXh0V2Vla0RheSBnZXRuciBnZXRvcmRlcnMgJ1xuICAgICAgICAgICAgICArICdnZXRwYXRoIGdldFByZXZpb3VzVHJhZGluZ0RheSBnZXRQcmV2aW91c1dlZWtEYXkgZ2V0Um93IGdldHNjYWxhcjNEIGdldHNjYWxhcjREIGdldFRyUm93IGdldHdpbmQgZ2xtIGdyYWRjcGx4IGdyYWRNVCAnXG4gICAgICAgICAgICAgICsgJ2dyYWRNVG0gZ3JhZE1UVCBncmFkTVRUbSBncmFkcCBncmFwaHBydCBncmFwaHNldCBoYXNpbWFnIGhlYWRlciBoZWFkZXJtdCBoZXNzIGhlc3NNVCBoZXNzTVRnIGhlc3NNVGd3IGhlc3NNVG0gJ1xuICAgICAgICAgICAgICArICdoZXNzTVRtdyBoZXNzTVRUIGhlc3NNVFRnIGhlc3NNVFRndyBoZXNzTVRUbSBoZXNzTVR3IGhlc3NwIGhpc3QgaGlzdGYgaGlzdHAgaHNlYyBpbWFnIGluZGN2IGluZGV4Y2F0IGluZGljZXMgaW5kaWNlczIgJ1xuICAgICAgICAgICAgICArICdpbmRpY2VzZiBpbmRpY2VzZm4gaW5kbnYgaW5kc2F2IGludGVncmF0ZTFkIGludGVncmF0ZUNvbnRyb2xDcmVhdGUgaW50Z3JhdDIgaW50Z3JhdDMgaW50aHAxIGludGhwMiBpbnRocDMgaW50aHA0ICdcbiAgICAgICAgICAgICAgKyAnaW50aHBDb250cm9sQ3JlYXRlIGludHF1YWQxIGludHF1YWQyIGludHF1YWQzIGludHJsZWF2IGludHJsZWF2c2EgaW50cnNlY3QgaW50c2ltcCBpbnYgaW52cGQgaW52c3dwIGlzY3BseCBpc2NwbHhmICdcbiAgICAgICAgICAgICAgKyAnaXNkZW4gaXNpbmZuYW5taXNzIGlzbWlzcyBrZXkga2V5YXYga2V5dyBsYWcgbGFnMSBsYWduIGxhcEVpZ2hiIGxhcEVpZ2hpIGxhcEVpZ2h2YiBsYXBFaWdodmkgbGFwZ0VpZyBsYXBnRWlnaCBsYXBnRWlnaHYgJ1xuICAgICAgICAgICAgICArICdsYXBnRWlndiBsYXBnU2NodXIgbGFwZ1N2ZGNzdCBsYXBnU3ZkcyBsYXBnU3Zkc3QgbGFwU3ZkY3VzdiBsYXBTdmRzIGxhcFN2ZHVzdiBsZGxwIGxkbHNvbCBsaW5Tb2x2ZSBsaXN0d2lzZSBsbiBsbmNkZmJ2biAnXG4gICAgICAgICAgICAgICsgJ2xuY2RmYnZuMiBsbmNkZm12biBsbmNkZm4gbG5jZGZuMiBsbmNkZm5jIGxuZmFjdCBsbmdhbW1hY3BseCBsbnBkZm12biBsbnBkZm12dCBsbnBkZm4gbG5wZGZ0IGxvYWRkIGxvYWRzdHJ1Y3QgbG9hZHdpbmQgJ1xuICAgICAgICAgICAgICArICdsb2VzcyBsb2Vzc210IGxvZXNzbXRDb250cm9sQ3JlYXRlIGxvZyBsb2dsb2cgbG9neCBsb2d5IGxvd2VyIGxvd21hdCBsb3dtYXQxIGx0cmlzb2wgbHUgbHVzb2wgbWFjaEVwc2lsb24gbWFrZSBtYWtldmFycyAnXG4gICAgICAgICAgICAgICsgJ21ha2V3aW5kIG1hcmdpbiBtYXRhbGxvYyBtYXRpbml0IG1hdHRvYXJyYXkgbWF4Ynl0ZXMgbWF4YyBtYXhpbmRjIG1heHYgbWF4dmVjIG1iZXNzZWxlaSBtYmVzc2VsZWkwIG1iZXNzZWxlaTEgbWJlc3NlbGkgJ1xuICAgICAgICAgICAgICArICdtYmVzc2VsaTAgbWJlc3NlbGkxIG1lYW5jIG1lZGlhbiBtZXJnZWJ5IG1lcmdldmFyIG1pbmMgbWluaW5kYyBtaW52IG1pc3MgbWlzc2V4IG1pc3NydiBtb21lbnQgbW9tZW50ZCBtb3ZpbmdhdmUgJ1xuICAgICAgICAgICAgICArICdtb3ZpbmdhdmVFeHB3Z3QgbW92aW5nYXZlV2d0IG5leHRpbmRleCBuZXh0biBuZXh0bmV2biBuZXh0d2luZCBudG9zIG51bGwgbnVsbDEgbnVtQ29tYmluYXRpb25zIG9scyBvbHNtdCBvbHNtdENvbnRyb2xDcmVhdGUgJ1xuICAgICAgICAgICAgICArICdvbHNxciBvbHNxcjIgb2xzcXJtdCBvbmVzIG9wdG4gb3B0bmV2biBvcnRoIG91dHR5cCBwYWNmIHBhY2tlZFRvU3AgcGFja3IgcGFyc2UgcGF1c2UgcGRmQ2F1Y2h5IHBkZkNoaSBwZGZFeHAgcGRmR2VuUGFyZXRvICdcbiAgICAgICAgICAgICAgKyAncGRmSHlwZXJHZW8gcGRmTGFwbGFjZSBwZGZMb2dpc3RpYyBwZGZuIHBkZlBvaXNzb24gcGRmUmF5bGVpZ2ggcGRmV2VpYnVsbCBwaSBwaW52IHBpbnZtdCBwbG90QWRkQXJyb3cgcGxvdEFkZEJhciBwbG90QWRkQm94ICdcbiAgICAgICAgICAgICAgKyAncGxvdEFkZEhpc3QgcGxvdEFkZEhpc3RGIHBsb3RBZGRIaXN0UCBwbG90QWRkUG9sYXIgcGxvdEFkZFNjYXR0ZXIgcGxvdEFkZFNoYXBlIHBsb3RBZGRUZXh0Ym94IHBsb3RBZGRUUyBwbG90QWRkWFkgcGxvdEFyZWEgJ1xuICAgICAgICAgICAgICArICdwbG90QmFyIHBsb3RCb3ggcGxvdENsZWFyTGF5b3V0IHBsb3RDb250b3VyIHBsb3RDdXN0b21MYXlvdXQgcGxvdEdldERlZmF1bHRzIHBsb3RIaXN0IHBsb3RIaXN0RiBwbG90SGlzdFAgcGxvdExheW91dCAnXG4gICAgICAgICAgICAgICsgJ3Bsb3RMb2dMb2cgcGxvdExvZ1ggcGxvdExvZ1kgcGxvdE9wZW5XaW5kb3cgcGxvdFBvbGFyIHBsb3RTYXZlIHBsb3RTY2F0dGVyIHBsb3RTZXRBeGVzUGVuIHBsb3RTZXRCYXIgcGxvdFNldEJhckZpbGwgJ1xuICAgICAgICAgICAgICArICdwbG90U2V0QmFyU3RhY2tlZCBwbG90U2V0QmtkQ29sb3IgcGxvdFNldEZpbGwgcGxvdFNldEdyaWQgcGxvdFNldExlZ2VuZCBwbG90U2V0TGluZUNvbG9yIHBsb3RTZXRMaW5lU3R5bGUgcGxvdFNldExpbmVTeW1ib2wgJ1xuICAgICAgICAgICAgICArICdwbG90U2V0TGluZVRoaWNrbmVzcyBwbG90U2V0TmV3V2luZG93IHBsb3RTZXRUaXRsZSBwbG90U2V0V2hpY2hZQXhpcyBwbG90U2V0WEF4aXNTaG93IHBsb3RTZXRYTGFiZWwgcGxvdFNldFhSYW5nZSAnXG4gICAgICAgICAgICAgICsgJ3Bsb3RTZXRYVGljSW50ZXJ2YWwgcGxvdFNldFhUaWNMYWJlbCBwbG90U2V0WUF4aXNTaG93IHBsb3RTZXRZTGFiZWwgcGxvdFNldFlSYW5nZSBwbG90U2V0WkF4aXNTaG93IHBsb3RTZXRaTGFiZWwgJ1xuICAgICAgICAgICAgICArICdwbG90U3VyZmFjZSBwbG90VFMgcGxvdFhZIHBvbGFyIHBvbHljaGFyIHBvbHlldmFsIHBvbHlnYW1tYSBwb2x5aW50IHBvbHltYWtlIHBvbHltYXQgcG9seW1yb290IHBvbHltdWx0IHBvbHlyb290ICdcbiAgICAgICAgICAgICAgKyAncHFnd2luIHByZXZpb3VzaW5kZXggcHJpbmNvbXAgcHJpbnRmbSBwcmludGZtdCBwcm9kYyBwc2kgcHV0YXJyYXkgcHV0ZiBwdXR2YWxzIHB2Q3JlYXRlIHB2R2V0SW5kZXggcHZHZXRQYXJOYW1lcyAnXG4gICAgICAgICAgICAgICsgJ3B2R2V0UGFyVmVjdG9yIHB2TGVuZ3RoIHB2TGlzdCBwdlBhY2sgcHZQYWNraSBwdlBhY2ttIHB2UGFja21pIHB2UGFja3MgcHZQYWNrc2kgcHZQYWNrc20gcHZQYWNrc21pIHB2UHV0UGFyVmVjdG9yICdcbiAgICAgICAgICAgICAgKyAncHZUZXN0IHB2VW5wYWNrIFFOZXd0b24gUU5ld3Rvbm10IFFOZXd0b25tdENvbnRyb2xDcmVhdGUgUU5ld3Rvbm10T3V0Q3JlYXRlIFFOZXd0b25TZXQgUVByb2cgUVByb2dtdCBRUHJvZ210SW5DcmVhdGUgJ1xuICAgICAgICAgICAgICArICdxcXIgcXFyZSBxcXJlcCBxciBxcmUgcXJlcCBxcnNvbCBxcnRzb2wgcXR5ciBxdHlyZSBxdHlyZXAgcXVhbnRpbGUgcXVhbnRpbGVkIHF5ciBxeXJlIHF5cmVwIHF6IHJhbmsgcmFua2luZHggcmVhZHIgJ1xuICAgICAgICAgICAgICArICdyZWFsIHJlY2xhc3NpZnkgcmVjbGFzc2lmeUN1dHMgcmVjb2RlIHJlY3NlcmFyIHJlY3NlcmNwIHJlY3NlcnJjIHJlcnVuIHJlc2NhbGUgcmVzaGFwZSByZXRzIHJldiByZmZ0IHJmZnRpIHJmZnRpcCByZmZ0biAnXG4gICAgICAgICAgICAgICsgJ3JmZnRucCByZmZ0cCBybmRCZXJub3VsbGkgcm5kQmV0YSBybmRCaW5vbWlhbCBybmRDYXVjaHkgcm5kQ2hpU3F1YXJlIHJuZENvbiBybmRDcmVhdGVTdGF0ZSBybmRFeHAgcm5kR2FtbWEgcm5kR2VvIHJuZEd1bWJlbCAnXG4gICAgICAgICAgICAgICsgJ3JuZEh5cGVyR2VvIHJuZGkgcm5kS01iZXRhIHJuZEtNZ2FtIHJuZEtNaSBybmRLTW4gcm5kS01uYiBybmRLTXAgcm5kS011IHJuZEtNdm0gcm5kTGFwbGFjZSBybmRMQ2JldGEgcm5kTENnYW0gcm5kTENpIHJuZExDbiAnXG4gICAgICAgICAgICAgICsgJ3JuZExDbmIgcm5kTENwIHJuZExDdSBybmRMQ3ZtIHJuZExvZ05vcm0gcm5kTVR1IHJuZE1WbiBybmRNVnQgcm5kbiBybmRuYiBybmROZWdCaW5vbWlhbCBybmRwIHJuZFBvaXNzb24gcm5kUmF5bGVpZ2ggJ1xuICAgICAgICAgICAgICArICdybmRTdGF0ZVNraXAgcm5kdSBybmR2bSBybmRXZWlidWxsIHJuZFdpc2hhcnQgcm90YXRlciByb3VuZCByb3dzIHJvd3NmIHJyZWYgc2FtcGxlRGF0YSBzYXRvc3RyQyBzYXZlZCBzYXZlU3RydWN0IHNhdmV3aW5kICdcbiAgICAgICAgICAgICAgKyAnc2NhbGUgc2NhbGUzZCBzY2FsZXJyIHNjYWxpbmZuYW5taXNzIHNjYWxtaXNzIHNjaHRvYyBzY2h1ciBzZWFyY2hzb3VyY2VwYXRoIHNlZWtyIHNlbGVjdCBzZWxpZiBzZXFhIHNlcW0gc2V0ZGlmIHNldGRpZnNhICdcbiAgICAgICAgICAgICAgKyAnc2V0dmFycyBzZXR2d3Jtb2RlIHNldHdpbmQgc2hlbGwgc2hpZnRyIHNpbiBzaW5nbGVpbmRleCBzaW5oIHNsZWVwIHNvbHBkIHNvcnRjIHNvcnRjYyBzb3J0ZCBzb3J0aGMgc29ydGhjYyBzb3J0aW5kICdcbiAgICAgICAgICAgICAgKyAnc29ydGluZGMgc29ydG1jIHNvcnRyIHNvcnRyYyBzcEJpY29uakdyYWRTb2wgc3BDaG9sIHNwQ29uakdyYWRTb2wgc3BDcmVhdGUgc3BEZW5zZVN1Ym1hdCBzcERpYWdSdk1hdCBzcEVpZ3Ygc3BFeWUgc3BMREwgJ1xuICAgICAgICAgICAgICArICdzcGxpbmUgc3BMVSBzcE51bU5aRSBzcE9uZXMgc3ByZWFkU2hlZXRSZWFkTSBzcHJlYWRTaGVldFJlYWRTQSBzcHJlYWRTaGVldFdyaXRlIHNwU2NhbGUgc3BTdWJtYXQgc3BUb0RlbnNlIHNwVHJURGVuc2UgJ1xuICAgICAgICAgICAgICArICdzcFRTY2FsYXIgc3BaZXJvcyBzcXBTb2x2ZSBzcXBTb2x2ZU1UIHNxcFNvbHZlTVRDb250cm9sQ3JlYXRlIHNxcFNvbHZlTVRsYWdyYW5nZUNyZWF0ZSBzcXBTb2x2ZU1Ub3V0Q3JlYXRlIHNxcFNvbHZlU2V0ICdcbiAgICAgICAgICAgICAgKyAnc3FydCBzdGF0ZW1lbnRzIHN0ZGMgc3Rkc2Mgc3RvY3Ygc3RvZiBzdHJjb21iaW5lIHN0cmluZHggc3RybGVuIHN0cnB1dCBzdHJyaW5keCBzdHJzZWN0IHN0cnNwbGl0IHN0cnNwbGl0UGFkIHN0cnRvZHQgJ1xuICAgICAgICAgICAgICArICdzdHJ0b2Ygc3RydG9mY3BseCBzdHJ0cmltbCBzdHJ0cmltciBzdHJ0cnVuYyBzdHJ0cnVuY2wgc3RydHJ1bmNwYWQgc3RydHJ1bmNyIHN1Ym1hdCBzdWJzY2F0IHN1YnN0dXRlIHN1YnZlYyBzdW1jIHN1bXIgJ1xuICAgICAgICAgICAgICArICdzdXJmYWNlIHN2ZCBzdmQxIHN2ZDIgc3ZkY3VzdiBzdmRzIHN2ZHVzdiBzeXNzdGF0ZSB0YWIgdGFuIHRhbmggdGVtcG5hbWUgJ1xuICAgICAgICAgICAgICArICd0aW1lIHRpbWVkdCB0aW1lc3RyIHRpbWV1dGMgdGl0bGUgdGtmMmVwcyB0a2YycHMgdG9jYXJ0IHRvZGF5ZHQgdG9lcGxpdHogdG9rZW4gdG9wb2xhciB0cmFwY2hrICdcbiAgICAgICAgICAgICAgKyAndHJpZ2FtbWEgdHJpbXIgdHJ1bmMgdHlwZSB0eXBlY3YgdHlwZWYgdW5pb24gdW5pb25zYSB1bmlxaW5keCB1bmlxaW5keHNhIHVuaXF1ZSB1bmlxdWVzYSB1cG1hdCB1cG1hdDEgdXBwZXIgdXRjdG9kdCAnXG4gICAgICAgICAgICAgICsgJ3V0Y3RvZHR2IHV0cmlzb2wgdmFscyB2YXJDb3ZNUyB2YXJDb3ZYUyB2YXJnZXQgdmFyZ2V0bCB2YXJtYWxsIHZhcm1hcmVzIHZhcnB1dCB2YXJwdXRsIHZhcnR5cGVmIHZjbSB2Y21zIHZjeCB2Y3hzICdcbiAgICAgICAgICAgICAgKyAndmVjIHZlY2ggdmVjciB2ZWN0b3IgdmdldCB2aWV3IHZpZXd4eXogdmxpc3Qgdm5hbWVjdiB2b2x1bWUgdnB1dCB2cmVhZCB2dHlwZWN2IHdhaXQgd2FpdGMgd2Fsa2luZGV4IHdoZXJlIHdpbmRvdyAnXG4gICAgICAgICAgICAgICsgJ3dyaXRlciB4bGFiZWwgeGxzR2V0U2hlZXRDb3VudCB4bHNHZXRTaGVldFNpemUgeGxzR2V0U2hlZXRUeXBlcyB4bHNNYWtlUmFuZ2UgeGxzUmVhZE0geGxzUmVhZFNBIHhsc1dyaXRlIHhsc1dyaXRlTSAnXG4gICAgICAgICAgICAgICsgJ3hsc1dyaXRlU0EgeHBuZCB4dGljcyB4eSB4eXogeWxhYmVsIHl0aWNzIHplcm9zIHpldGEgemxhYmVsIHp0aWNzIGNkZkVtcGlyaWNhbCBkb3QgaDVjcmVhdGUgaDVvcGVuIGg1cmVhZCBoNXJlYWRBdHRyaWJ1dGUgJ1xuICAgICAgICAgICAgICArICdoNXdyaXRlIGg1d3JpdGVBdHRyaWJ1dGUgbGRsIHBsb3RBZGRFcnJvckJhciBwbG90QWRkU3VyZmFjZSBwbG90Q0RGRW1waXJpY2FsIHBsb3RTZXRDb2xvcm1hcCBwbG90U2V0Q29udG91ckxhYmVscyAnXG4gICAgICAgICAgICAgICsgJ3Bsb3RTZXRMZWdlbmRGb250IHBsb3RTZXRUZXh0SW50ZXJwcmV0ZXIgcGxvdFNldFhUaWNDb3VudCBwbG90U2V0WVRpY0NvdW50IHBsb3RTZXRaTGV2ZWxzIHBvd2VybSBzdHJqb2luIHN5bHZlc3RlciAnXG4gICAgICAgICAgICAgICsgJ3N0cnRyaW0nLFxuICAgIGxpdGVyYWw6ICdEQl9BRlRFUl9MQVNUX1JPVyBEQl9BTExfVEFCTEVTIERCX0JBVENIX09QRVJBVElPTlMgREJfQkVGT1JFX0ZJUlNUX1JPVyBEQl9CTE9CIERCX0VWRU5UX05PVElGSUNBVElPTlMgJ1xuICAgICAgICAgICAgICsgJ0RCX0ZJTklTSF9RVUVSWSBEQl9ISUdIX1BSRUNJU0lPTiBEQl9MQVNUX0lOU0VSVF9JRCBEQl9MT1dfUFJFQ0lTSU9OX0RPVUJMRSBEQl9MT1dfUFJFQ0lTSU9OX0lOVDMyICdcbiAgICAgICAgICAgICArICdEQl9MT1dfUFJFQ0lTSU9OX0lOVDY0IERCX0xPV19QUkVDSVNJT05fTlVNQkVSUyBEQl9NVUxUSVBMRV9SRVNVTFRfU0VUUyBEQl9OQU1FRF9QTEFDRUhPTERFUlMgJ1xuICAgICAgICAgICAgICsgJ0RCX1BPU0lUSU9OQUxfUExBQ0VIT0xERVJTIERCX1BSRVBBUkVEX1FVRVJJRVMgREJfUVVFUllfU0laRSBEQl9TSU1QTEVfTE9DS0lORyBEQl9TWVNURU1fVEFCTEVTIERCX1RBQkxFUyAnXG4gICAgICAgICAgICAgKyAnREJfVFJBTlNBQ1RJT05TIERCX1VOSUNPREUgREJfVklFV1MgX19TVERJTiBfX1NURE9VVCBfX1NUREVSUiBfX0ZJTEVfRElSJ1xuICB9O1xuXG4gIGNvbnN0IEFUX0NPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnQCcsICdAJyk7XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID1cbiAge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnIycsXG4gICAgZW5kOiAnJCcsXG4gICAga2V5d29yZHM6IHsga2V5d29yZDogJ2RlZmluZSBkZWZpbmVjc3wxMCB1bmRlZiBpZmRlZiBpZm5kZWYgaWZsaWdodCBpZmRsbGNhbGwgaWZtYWMgaWZvczJ3aW4gaWZ1bml4IGVsc2UgZW5kaWYgbGluZXNvbiBsaW5lc29mZiBzcmNmaWxlIHNyY2xpbmUnIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFxcXFxuLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnaW5jbHVkZScsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogeyBrZXl3b3JkOiAnaW5jbHVkZScgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEFUX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBTVFJVQ1RfVFlQRSA9XG4gIHtcbiAgICBiZWdpbjogL1xcYnN0cnVjdFxccysvLFxuICAgIGVuZDogL1xccy8sXG4gICAga2V5d29yZHM6IFwic3RydWN0XCIsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInR5cGVcIixcbiAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIC8vIG9ubHkgZm9yIGRlZmluaXRpb25zXG4gIGNvbnN0IFBBUlNFX1BBUkFNUyA9IFtcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHsgLy8gZG90c1xuICAgICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgIGJlZ2luOiAvXFwuXFwuXFwuL1xuICAgICAgICB9LFxuICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgIEFUX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgU1RSVUNUX1RZUEVcbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05fREVGID1cbiAge1xuICAgIGNsYXNzTmFtZTogXCJ0aXRsZVwiLFxuICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgREVGSU5JVElPTiA9IGZ1bmN0aW9uKGJlZ2luS2V5d29yZHMsIGVuZCwgaW5oZXJpdHMpIHtcbiAgICBjb25zdCBtb2RlID0gaGxqcy5pbmhlcml0KFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IFwiZnVuY3Rpb25cIixcbiAgICAgICAgYmVnaW5LZXl3b3JkczogYmVnaW5LZXl3b3JkcyxcbiAgICAgICAgZW5kOiBlbmQsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXS5jb25jYXQoUEFSU0VfUEFSQU1TKVxuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goRlVOQ1RJT05fREVGKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goaGxqcy5DX05VTUJFUl9NT0RFKTtcbiAgICBtb2RlLmNvbnRhaW5zLnB1c2goaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSk7XG4gICAgbW9kZS5jb250YWlucy5wdXNoKEFUX0NPTU1FTlRfTU9ERSk7XG4gICAgcmV0dXJuIG1vZGU7XG4gIH07XG5cbiAgY29uc3QgQlVJTFRfSU5fUkVGID1cbiAgeyAvLyB0aGVzZSBhcmUgZXhwbGljaXRseSBuYW1lZCBpbnRlcm5hbCBmdW5jdGlvbiBjYWxsc1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJ1xcXFxiKCcgKyBLRVlXT1JEUy5idWlsdF9pbi5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcpXFxcXGInXG4gIH07XG5cbiAgY29uc3QgU1RSSU5HX1JFRiA9XG4gIHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXCInLFxuICAgIGVuZDogJ1wiJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9SRUYgPVxuICB7XG4gICAgLy8gY2xhc3NOYW1lOiBcImZuX3JlZlwiLFxuICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXHMqXFxcXCgnLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgYmVnaW5LZXl3b3JkczogS0VZV09SRFMua2V5d29yZCB9LFxuICAgICAgQlVJTFRfSU5fUkVGLFxuICAgICAgeyAvLyBhbWJpZ3VvdXNseSBuYW1lZCBmdW5jdGlvbiBjYWxscyBnZXQgYSByZWxldmFuY2Ugb2YgMFxuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9SRUZfUEFSQU1TID1cbiAge1xuICAgIC8vIGNsYXNzTmFtZTogXCJmbl9yZWZfcGFyYW1zXCIsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBidWlsdF9pbjogS0VZV09SRFMuYnVpbHRfaW4sXG4gICAgICBsaXRlcmFsOiBLRVlXT1JEUy5saXRlcmFsXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEFUX0NPTU1FTlRfTU9ERSxcbiAgICAgIEJVSUxUX0lOX1JFRixcbiAgICAgIEZVTkNUSU9OX1JFRixcbiAgICAgIFNUUklOR19SRUYsXG4gICAgICAnc2VsZidcbiAgICBdXG4gIH07XG5cbiAgRlVOQ1RJT05fUkVGLmNvbnRhaW5zLnB1c2goRlVOQ1RJT05fUkVGX1BBUkFNUyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnR0FVU1MnLFxuICAgIGFsaWFzZXM6IFsgJ2dzcycgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLCAvLyBsYW5ndWFnZSBpcyBjYXNlLWluc2Vuc2l0aXZlXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGlsbGVnYWw6IC8oXFx7WyUjXXxbJSNdXFx9fCA8LSApLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIEFUX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNUUklOR19SRUYsXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogL1xcYmV4dGVybmFsIChtYXRyaXh8c3RyaW5nfGFycmF5fHNwYXJzZSBtYXRyaXh8c3RydWN0fHByb2N8a2V5d29yZHxmbikvXG4gICAgICB9LFxuICAgICAgREVGSU5JVElPTigncHJvYyBrZXl3b3JkJywgJzsnKSxcbiAgICAgIERFRklOSVRJT04oJ2ZuJywgJz0nKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2ZvciB0aHJlYWRmb3InLFxuICAgICAgICBlbmQ6IC87LyxcbiAgICAgICAgLy8gZW5kOiAvXFwoLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICAgICAgQVRfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIEZVTkNUSU9OX1JFRl9QQVJBTVNcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gY3VzdG9tIG1ldGhvZCBndWFyZFxuICAgICAgICAvLyBleGNsdWRlcyBtZXRob2QgbmFtZXMgZnJvbSBrZXl3b3JkIHByb2Nlc3NpbmdcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXC4nICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFIH0sXG4gICAgICAgICAgeyBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzKj0nIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fUkVGLFxuICAgICAgU1RSVUNUX1RZUEVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2F1c3M7XG4iLCAiLypcbiBMYW5ndWFnZTogRy1jb2RlIChJU08gNjk4MylcbiBDb250cmlidXRvcnM6IEFkYW0gSm9zZXBoIENvb2sgPGFkYW0uam9zZXBoLmNvb2tAZ21haWwuY29tPlxuIERlc2NyaXB0aW9uOiBHLWNvZGUgc3ludGF4IGhpZ2hsaWdodGVyIGZvciBGYW51YyBhbmQgb3RoZXIgY29tbW9uIENOQyBtYWNoaW5lIHRvb2wgY29udHJvbHMuXG4gV2Vic2l0ZTogaHR0cHM6Ly93d3cuc2lzLnNlL2FwaS9kb2N1bWVudC9wcmV2aWV3LzkxMTk1Mi9cbiBDYXRlZ29yeTogaGFyZHdhcmVcbiAqL1xuXG5mdW5jdGlvbiBnY29kZShobGpzKSB7XG4gIGNvbnN0IEdDT0RFX0lERU5UX1JFID0gJ1tBLVpfXVtBLVowLTlfLl0qJztcbiAgY29uc3QgR0NPREVfQ0xPU0VfUkUgPSAnJSc7XG4gIGNvbnN0IEdDT0RFX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBHQ09ERV9JREVOVF9SRSxcbiAgICBrZXl3b3JkOiAnSUYgRE8gV0hJTEUgRU5EV0hJTEUgQ0FMTCBFTkRJRiBTVUIgRU5EU1VCIEdPVE8gUkVQRUFUIEVORFJFUEVBVCAnXG4gICAgICArICdFUSBMVCBHVCBORSBHRSBMRSBPUiBYT1InXG4gIH07XG4gIGNvbnN0IEdDT0RFX1NUQVJUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnKFtPXSkoWzAtOV0rKSdcbiAgfTtcbiAgY29uc3QgTlVNQkVSID0gaGxqcy5pbmhlcml0KGhsanMuQ19OVU1CRVJfTU9ERSwgeyBiZWdpbjogJyhbLStdPygoXFxcXC5cXFxcZCspfChcXFxcZCspKFxcXFwuXFxcXGQqKT8pKXwnICsgaGxqcy5DX05VTUJFUl9SRSB9KTtcbiAgY29uc3QgR0NPREVfQ09ERSA9IFtcbiAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoL1xcKC8sIC9cXCkvKSxcbiAgICBOVU1CRVIsXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgICBiZWdpbjogJyhbR10pKFswLTldK1xcXFwuP1swLTldPyknXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICAgIGJlZ2luOiAnKFtNXSkoWzAtOV0rXFxcXC4/WzAtOV0/KSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgYmVnaW46ICcoVkN8VlN8IyknLFxuICAgICAgZW5kOiAnKFxcXFxkKyknXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgIGJlZ2luOiAnKFZaT0ZYfFZaT0ZZfFZaT0ZaKSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgIGJlZ2luOiAnKEFUQU58QUJTfEFDT1N8QVNJTnxTSU58Q09TfEVYUHxGSVh8RlVQfFJPVU5EfExOfFRBTikoXFxcXFspJyxcbiAgICAgIGNvbnRhaW5zOiBbIE5VTUJFUiBdLFxuICAgICAgZW5kOiAnXFxcXF0nXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnTicsXG4gICAgICAgICAgZW5kOiAnXFxcXGQrJyxcbiAgICAgICAgICBpbGxlZ2FsOiAnXFxcXFcnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnRy1jb2RlIChJU08gNjk4MyknLFxuICAgIGFsaWFzZXM6IFsgJ25jJyBdLFxuICAgIC8vIFNvbWUgaW1wbGVtZW50YXRpb25zIChDTkMgY29udHJvbHMpIG9mIEctY29kZSBhcmUgaW50ZXJvcGVyYWJsZSB3aXRoIHVwcGVyY2FzZSBhbmQgbG93ZXJjYXNlIGxldHRlcnMgc2VhbWxlc3NseS5cbiAgICAvLyBIb3dldmVyLCBtb3N0IHByZWZlciBhbGwgdXBwZXJjYXNlIGFuZCB1cHBlcmNhc2UgaXMgY3VzdG9tYXJ5LlxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IEdDT0RFX0tFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogR0NPREVfQ0xPU0VfUkVcbiAgICAgIH0sXG4gICAgICBHQ09ERV9TVEFSVFxuICAgIF0uY29uY2F0KEdDT0RFX0NPREUpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2NvZGU7XG4iLCAiLypcbiBMYW5ndWFnZTogR2hlcmtpblxuIEF1dGhvcjogU2FtIFBpa2VzbGV5IChAcGlrZXNsZXkpIDxzYW0ucGlrZXNsZXlAdGhlb2RpLm9yZz5cbiBEZXNjcmlwdGlvbjogR2hlcmtpbiBpcyB0aGUgZm9ybWF0IGZvciBjdWN1bWJlciBzcGVjaWZpY2F0aW9ucy4gSXQgaXMgYSBkb21haW4gc3BlY2lmaWMgbGFuZ3VhZ2Ugd2hpY2ggaGVscHMgeW91IHRvIGRlc2NyaWJlIGJ1c2luZXNzIGJlaGF2aW9yIHdpdGhvdXQgdGhlIG5lZWQgdG8gZ28gaW50byBkZXRhaWwgb2YgaW1wbGVtZW50YXRpb24uXG4gV2Vic2l0ZTogaHR0cHM6Ly9jdWN1bWJlci5pby9kb2NzL2doZXJraW4vXG4gKi9cblxuZnVuY3Rpb24gZ2hlcmtpbihobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0doZXJraW4nLFxuICAgIGFsaWFzZXM6IFsgJ2ZlYXR1cmUnIF0sXG4gICAga2V5d29yZHM6ICdGZWF0dXJlIEJhY2tncm91bmQgQWJpbGl0eSBCdXNpbmVzc1xcIE5lZWQgU2NlbmFyaW8gU2NlbmFyaW9zIFNjZW5hcmlvXFwgT3V0bGluZSBTY2VuYXJpb1xcIFRlbXBsYXRlIEV4YW1wbGVzIEdpdmVuIEFuZCBUaGVuIEJ1dCBXaGVuJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ1xcXFwqJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdAW15AXFxcXHNdKydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXHwnLFxuICAgICAgICBlbmQ6ICdcXFxcfFxcXFx3KiQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJ1tefF0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogJzwnLFxuICAgICAgICBlbmQ6ICc+J1xuICAgICAgfSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiJ1xuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ2hlcmtpbjtcbiIsICIvKlxuTGFuZ3VhZ2U6IEdMU0xcbkRlc2NyaXB0aW9uOiBPcGVuR0wgU2hhZGluZyBMYW5ndWFnZVxuQXV0aG9yOiBTZXJnZXkgVGlraG9taXJvdiA8c2VyZ2V5QHRpa2hvbWlyb3YuaW8+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9PcGVuR0xfU2hhZGluZ19MYW5ndWFnZVxuQ2F0ZWdvcnk6IGdyYXBoaWNzXG4qL1xuXG5mdW5jdGlvbiBnbHNsKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnR0xTTCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIFN0YXRlbWVudHNcbiAgICAgICAgJ2JyZWFrIGNvbnRpbnVlIGRpc2NhcmQgZG8gZWxzZSBmb3IgaWYgcmV0dXJuIHdoaWxlIHN3aXRjaCBjYXNlIGRlZmF1bHQgJ1xuICAgICAgICAvLyBRdWFsaWZpZXJzXG4gICAgICAgICsgJ2F0dHJpYnV0ZSBiaW5kaW5nIGJ1ZmZlciBjY3cgY2VudHJvaWQgY2VudHJvaWQgdmFyeWluZyBjb2hlcmVudCBjb2x1bW5fbWFqb3IgY29uc3QgY3cgJ1xuICAgICAgICArICdkZXB0aF9hbnkgZGVwdGhfZ3JlYXRlciBkZXB0aF9sZXNzIGRlcHRoX3VuY2hhbmdlZCBlYXJseV9mcmFnbWVudF90ZXN0cyBlcXVhbF9zcGFjaW5nICdcbiAgICAgICAgKyAnZmxhdCBmcmFjdGlvbmFsX2V2ZW5fc3BhY2luZyBmcmFjdGlvbmFsX29kZF9zcGFjaW5nIGhpZ2hwIGluIGluZGV4IGlub3V0IGludmFyaWFudCAnXG4gICAgICAgICsgJ2ludm9jYXRpb25zIGlzb2xpbmVzIGxheW91dCBsaW5lX3N0cmlwIGxpbmVzIGxpbmVzX2FkamFjZW5jeSBsb2NhbF9zaXplX3ggbG9jYWxfc2l6ZV95ICdcbiAgICAgICAgKyAnbG9jYWxfc2l6ZV96IGxvY2F0aW9uIGxvd3AgbWF4X3ZlcnRpY2VzIG1lZGl1bXAgbm9wZXJzcGVjdGl2ZSBvZmZzZXQgb3JpZ2luX3VwcGVyX2xlZnQgJ1xuICAgICAgICArICdvdXQgcGFja2VkIHBhdGNoIHBpeGVsX2NlbnRlcl9pbnRlZ2VyIHBvaW50X21vZGUgcG9pbnRzIHByZWNpc2UgcHJlY2lzaW9uIHF1YWRzIHIxMWZfZzExZl9iMTBmICdcbiAgICAgICAgKyAncjE2IHIxNl9zbm9ybSByMTZmIHIxNmkgcjE2dWkgcjMyZiByMzJpIHIzMnVpIHI4IHI4X3Nub3JtIHI4aSByOHVpIHJlYWRvbmx5IHJlc3RyaWN0ICdcbiAgICAgICAgKyAncmcxNiByZzE2X3Nub3JtIHJnMTZmIHJnMTZpIHJnMTZ1aSByZzMyZiByZzMyaSByZzMydWkgcmc4IHJnOF9zbm9ybSByZzhpIHJnOHVpIHJnYjEwX2EyICdcbiAgICAgICAgKyAncmdiMTBfYTJ1aSByZ2JhMTYgcmdiYTE2X3Nub3JtIHJnYmExNmYgcmdiYTE2aSByZ2JhMTZ1aSByZ2JhMzJmIHJnYmEzMmkgcmdiYTMydWkgcmdiYTggJ1xuICAgICAgICArICdyZ2JhOF9zbm9ybSByZ2JhOGkgcmdiYTh1aSByb3dfbWFqb3Igc2FtcGxlIHNoYXJlZCBzbW9vdGggc3RkMTQwIHN0ZDQzMCBzdHJlYW0gdHJpYW5nbGVfc3RyaXAgJ1xuICAgICAgICArICd0cmlhbmdsZXMgdHJpYW5nbGVzX2FkamFjZW5jeSB1bmlmb3JtIHZhcnlpbmcgdmVydGljZXMgdm9sYXRpbGUgd3JpdGVvbmx5JyxcbiAgICAgIHR5cGU6XG4gICAgICAgICdhdG9taWNfdWludCBib29sIGJ2ZWMyIGJ2ZWMzIGJ2ZWM0IGRtYXQyIGRtYXQyeDIgZG1hdDJ4MyBkbWF0Mng0IGRtYXQzIGRtYXQzeDIgZG1hdDN4MyAnXG4gICAgICAgICsgJ2RtYXQzeDQgZG1hdDQgZG1hdDR4MiBkbWF0NHgzIGRtYXQ0eDQgZG91YmxlIGR2ZWMyIGR2ZWMzIGR2ZWM0IGZsb2F0IGlpbWFnZTFEIGlpbWFnZTFEQXJyYXkgJ1xuICAgICAgICArICdpaW1hZ2UyRCBpaW1hZ2UyREFycmF5IGlpbWFnZTJETVMgaWltYWdlMkRNU0FycmF5IGlpbWFnZTJEUmVjdCBpaW1hZ2UzRCBpaW1hZ2VCdWZmZXIgJ1xuICAgICAgICArICdpaW1hZ2VDdWJlIGlpbWFnZUN1YmVBcnJheSBpbWFnZTFEIGltYWdlMURBcnJheSBpbWFnZTJEIGltYWdlMkRBcnJheSBpbWFnZTJETVMgaW1hZ2UyRE1TQXJyYXkgJ1xuICAgICAgICArICdpbWFnZTJEUmVjdCBpbWFnZTNEIGltYWdlQnVmZmVyIGltYWdlQ3ViZSBpbWFnZUN1YmVBcnJheSBpbnQgaXNhbXBsZXIxRCBpc2FtcGxlcjFEQXJyYXkgJ1xuICAgICAgICArICdpc2FtcGxlcjJEIGlzYW1wbGVyMkRBcnJheSBpc2FtcGxlcjJETVMgaXNhbXBsZXIyRE1TQXJyYXkgaXNhbXBsZXIyRFJlY3QgaXNhbXBsZXIzRCAnXG4gICAgICAgICsgJ2lzYW1wbGVyQnVmZmVyIGlzYW1wbGVyQ3ViZSBpc2FtcGxlckN1YmVBcnJheSBpdmVjMiBpdmVjMyBpdmVjNCBtYXQyIG1hdDJ4MiBtYXQyeDMgJ1xuICAgICAgICArICdtYXQyeDQgbWF0MyBtYXQzeDIgbWF0M3gzIG1hdDN4NCBtYXQ0IG1hdDR4MiBtYXQ0eDMgbWF0NHg0IHNhbXBsZXIxRCBzYW1wbGVyMURBcnJheSAnXG4gICAgICAgICsgJ3NhbXBsZXIxREFycmF5U2hhZG93IHNhbXBsZXIxRFNoYWRvdyBzYW1wbGVyMkQgc2FtcGxlcjJEQXJyYXkgc2FtcGxlcjJEQXJyYXlTaGFkb3cgJ1xuICAgICAgICArICdzYW1wbGVyMkRNUyBzYW1wbGVyMkRNU0FycmF5IHNhbXBsZXIyRFJlY3Qgc2FtcGxlcjJEUmVjdFNoYWRvdyBzYW1wbGVyMkRTaGFkb3cgc2FtcGxlcjNEICdcbiAgICAgICAgKyAnc2FtcGxlckJ1ZmZlciBzYW1wbGVyQ3ViZSBzYW1wbGVyQ3ViZUFycmF5IHNhbXBsZXJDdWJlQXJyYXlTaGFkb3cgc2FtcGxlckN1YmVTaGFkb3cgJ1xuICAgICAgICArICdpbWFnZTFEIHVpbWFnZTFEQXJyYXkgdWltYWdlMkQgdWltYWdlMkRBcnJheSB1aW1hZ2UyRE1TIHVpbWFnZTJETVNBcnJheSB1aW1hZ2UyRFJlY3QgJ1xuICAgICAgICArICd1aW1hZ2UzRCB1aW1hZ2VCdWZmZXIgdWltYWdlQ3ViZSB1aW1hZ2VDdWJlQXJyYXkgdWludCB1c2FtcGxlcjFEIHVzYW1wbGVyMURBcnJheSAnXG4gICAgICAgICsgJ3VzYW1wbGVyMkQgdXNhbXBsZXIyREFycmF5IHVzYW1wbGVyMkRNUyB1c2FtcGxlcjJETVNBcnJheSB1c2FtcGxlcjJEUmVjdCB1c2FtcGxlcjNEICdcbiAgICAgICAgKyAnc2FtcGxlckJ1ZmZlciB1c2FtcGxlckN1YmUgdXNhbXBsZXJDdWJlQXJyYXkgdXZlYzIgdXZlYzMgdXZlYzQgdmVjMiB2ZWMzIHZlYzQgdm9pZCcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gQ29uc3RhbnRzXG4gICAgICAgICdnbF9NYXhBdG9taWNDb3VudGVyQmluZGluZ3MgZ2xfTWF4QXRvbWljQ291bnRlckJ1ZmZlclNpemUgZ2xfTWF4Q2xpcERpc3RhbmNlcyBnbF9NYXhDbGlwUGxhbmVzICdcbiAgICAgICAgKyAnZ2xfTWF4Q29tYmluZWRBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhDb21iaW5lZEF0b21pY0NvdW50ZXJzIGdsX01heENvbWJpbmVkSW1hZ2VVbmlmb3JtcyAnXG4gICAgICAgICsgJ2dsX01heENvbWJpbmVkSW1hZ2VVbml0c0FuZEZyYWdtZW50T3V0cHV0cyBnbF9NYXhDb21iaW5lZFRleHR1cmVJbWFnZVVuaXRzIGdsX01heENvbXB1dGVBdG9taWNDb3VudGVyQnVmZmVycyAnXG4gICAgICAgICsgJ2dsX01heENvbXB1dGVBdG9taWNDb3VudGVycyBnbF9NYXhDb21wdXRlSW1hZ2VVbmlmb3JtcyBnbF9NYXhDb21wdXRlVGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhDb21wdXRlVW5pZm9ybUNvbXBvbmVudHMgZ2xfTWF4Q29tcHV0ZVdvcmtHcm91cENvdW50IGdsX01heENvbXB1dGVXb3JrR3JvdXBTaXplICdcbiAgICAgICAgKyAnZ2xfTWF4RHJhd0J1ZmZlcnMgZ2xfTWF4RnJhZ21lbnRBdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhGcmFnbWVudEF0b21pY0NvdW50ZXJzICdcbiAgICAgICAgKyAnZ2xfTWF4RnJhZ21lbnRJbWFnZVVuaWZvcm1zIGdsX01heEZyYWdtZW50SW5wdXRDb21wb25lbnRzIGdsX01heEZyYWdtZW50SW5wdXRWZWN0b3JzICdcbiAgICAgICAgKyAnZ2xfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50cyBnbF9NYXhGcmFnbWVudFVuaWZvcm1WZWN0b3JzIGdsX01heEdlb21ldHJ5QXRvbWljQ291bnRlckJ1ZmZlcnMgJ1xuICAgICAgICArICdnbF9NYXhHZW9tZXRyeUF0b21pY0NvdW50ZXJzIGdsX01heEdlb21ldHJ5SW1hZ2VVbmlmb3JtcyBnbF9NYXhHZW9tZXRyeUlucHV0Q29tcG9uZW50cyAnXG4gICAgICAgICsgJ2dsX01heEdlb21ldHJ5T3V0cHV0Q29tcG9uZW50cyBnbF9NYXhHZW9tZXRyeU91dHB1dFZlcnRpY2VzIGdsX01heEdlb21ldHJ5VGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhHZW9tZXRyeVRvdGFsT3V0cHV0Q29tcG9uZW50cyBnbF9NYXhHZW9tZXRyeVVuaWZvcm1Db21wb25lbnRzIGdsX01heEdlb21ldHJ5VmFyeWluZ0NvbXBvbmVudHMgJ1xuICAgICAgICArICdnbF9NYXhJbWFnZVNhbXBsZXMgZ2xfTWF4SW1hZ2VVbml0cyBnbF9NYXhMaWdodHMgZ2xfTWF4UGF0Y2hWZXJ0aWNlcyBnbF9NYXhQcm9ncmFtVGV4ZWxPZmZzZXQgJ1xuICAgICAgICArICdnbF9NYXhUZXNzQ29udHJvbEF0b21pY0NvdW50ZXJCdWZmZXJzIGdsX01heFRlc3NDb250cm9sQXRvbWljQ291bnRlcnMgZ2xfTWF4VGVzc0NvbnRyb2xJbWFnZVVuaWZvcm1zICdcbiAgICAgICAgKyAnZ2xfTWF4VGVzc0NvbnRyb2xJbnB1dENvbXBvbmVudHMgZ2xfTWF4VGVzc0NvbnRyb2xPdXRwdXRDb21wb25lbnRzIGdsX01heFRlc3NDb250cm9sVGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhUZXNzQ29udHJvbFRvdGFsT3V0cHV0Q29tcG9uZW50cyBnbF9NYXhUZXNzQ29udHJvbFVuaWZvcm1Db21wb25lbnRzICdcbiAgICAgICAgKyAnZ2xfTWF4VGVzc0V2YWx1YXRpb25BdG9taWNDb3VudGVyQnVmZmVycyBnbF9NYXhUZXNzRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzICdcbiAgICAgICAgKyAnZ2xfTWF4VGVzc0V2YWx1YXRpb25JbWFnZVVuaWZvcm1zIGdsX01heFRlc3NFdmFsdWF0aW9uSW5wdXRDb21wb25lbnRzIGdsX01heFRlc3NFdmFsdWF0aW9uT3V0cHV0Q29tcG9uZW50cyAnXG4gICAgICAgICsgJ2dsX01heFRlc3NFdmFsdWF0aW9uVGV4dHVyZUltYWdlVW5pdHMgZ2xfTWF4VGVzc0V2YWx1YXRpb25Vbmlmb3JtQ29tcG9uZW50cyAnXG4gICAgICAgICsgJ2dsX01heFRlc3NHZW5MZXZlbCBnbF9NYXhUZXNzUGF0Y2hDb21wb25lbnRzIGdsX01heFRleHR1cmVDb29yZHMgZ2xfTWF4VGV4dHVyZUltYWdlVW5pdHMgJ1xuICAgICAgICArICdnbF9NYXhUZXh0dXJlVW5pdHMgZ2xfTWF4VmFyeWluZ0NvbXBvbmVudHMgZ2xfTWF4VmFyeWluZ0Zsb2F0cyBnbF9NYXhWYXJ5aW5nVmVjdG9ycyAnXG4gICAgICAgICsgJ2dsX01heFZlcnRleEF0b21pY0NvdW50ZXJCdWZmZXJzIGdsX01heFZlcnRleEF0b21pY0NvdW50ZXJzIGdsX01heFZlcnRleEF0dHJpYnMgZ2xfTWF4VmVydGV4SW1hZ2VVbmlmb3JtcyAnXG4gICAgICAgICsgJ2dsX01heFZlcnRleE91dHB1dENvbXBvbmVudHMgZ2xfTWF4VmVydGV4T3V0cHV0VmVjdG9ycyBnbF9NYXhWZXJ0ZXhUZXh0dXJlSW1hZ2VVbml0cyAnXG4gICAgICAgICsgJ2dsX01heFZlcnRleFVuaWZvcm1Db21wb25lbnRzIGdsX01heFZlcnRleFVuaWZvcm1WZWN0b3JzIGdsX01heFZpZXdwb3J0cyBnbF9NaW5Qcm9ncmFtVGV4ZWxPZmZzZXQgJ1xuICAgICAgICAvLyBWYXJpYWJsZXNcbiAgICAgICAgKyAnZ2xfQmFja0NvbG9yIGdsX0JhY2tMaWdodE1vZGVsUHJvZHVjdCBnbF9CYWNrTGlnaHRQcm9kdWN0IGdsX0JhY2tNYXRlcmlhbCAnXG4gICAgICAgICsgJ2dsX0JhY2tTZWNvbmRhcnlDb2xvciBnbF9DbGlwRGlzdGFuY2UgZ2xfQ2xpcFBsYW5lIGdsX0NsaXBWZXJ0ZXggZ2xfQ29sb3IgJ1xuICAgICAgICArICdnbF9EZXB0aFJhbmdlIGdsX0V5ZVBsYW5lUSBnbF9FeWVQbGFuZVIgZ2xfRXllUGxhbmVTIGdsX0V5ZVBsYW5lVCBnbF9Gb2cgZ2xfRm9nQ29vcmQgJ1xuICAgICAgICArICdnbF9Gb2dGcmFnQ29vcmQgZ2xfRnJhZ0NvbG9yIGdsX0ZyYWdDb29yZCBnbF9GcmFnRGF0YSBnbF9GcmFnRGVwdGggZ2xfRnJvbnRDb2xvciAnXG4gICAgICAgICsgJ2dsX0Zyb250RmFjaW5nIGdsX0Zyb250TGlnaHRNb2RlbFByb2R1Y3QgZ2xfRnJvbnRMaWdodFByb2R1Y3QgZ2xfRnJvbnRNYXRlcmlhbCAnXG4gICAgICAgICsgJ2dsX0Zyb250U2Vjb25kYXJ5Q29sb3IgZ2xfR2xvYmFsSW52b2NhdGlvbklEIGdsX0luc3RhbmNlSUQgZ2xfSW52b2NhdGlvbklEIGdsX0xheWVyIGdsX0xpZ2h0TW9kZWwgJ1xuICAgICAgICArICdnbF9MaWdodFNvdXJjZSBnbF9Mb2NhbEludm9jYXRpb25JRCBnbF9Mb2NhbEludm9jYXRpb25JbmRleCBnbF9Nb2RlbFZpZXdNYXRyaXggJ1xuICAgICAgICArICdnbF9Nb2RlbFZpZXdNYXRyaXhJbnZlcnNlIGdsX01vZGVsVmlld01hdHJpeEludmVyc2VUcmFuc3Bvc2UgZ2xfTW9kZWxWaWV3TWF0cml4VHJhbnNwb3NlICdcbiAgICAgICAgKyAnZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeCBnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZSBnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSAnXG4gICAgICAgICsgJ2dsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UgZ2xfTXVsdGlUZXhDb29yZDAgZ2xfTXVsdGlUZXhDb29yZDEgZ2xfTXVsdGlUZXhDb29yZDIgJ1xuICAgICAgICArICdnbF9NdWx0aVRleENvb3JkMyBnbF9NdWx0aVRleENvb3JkNCBnbF9NdWx0aVRleENvb3JkNSBnbF9NdWx0aVRleENvb3JkNiBnbF9NdWx0aVRleENvb3JkNyAnXG4gICAgICAgICsgJ2dsX05vcm1hbCBnbF9Ob3JtYWxNYXRyaXggZ2xfTm9ybWFsU2NhbGUgZ2xfTnVtU2FtcGxlcyBnbF9OdW1Xb3JrR3JvdXBzIGdsX09iamVjdFBsYW5lUSAnXG4gICAgICAgICsgJ2dsX09iamVjdFBsYW5lUiBnbF9PYmplY3RQbGFuZVMgZ2xfT2JqZWN0UGxhbmVUIGdsX1BhdGNoVmVydGljZXNJbiBnbF9Qb2ludCBnbF9Qb2ludENvb3JkICdcbiAgICAgICAgKyAnZ2xfUG9pbnRTaXplIGdsX1Bvc2l0aW9uIGdsX1ByaW1pdGl2ZUlEIGdsX1ByaW1pdGl2ZUlESW4gZ2xfUHJvamVjdGlvbk1hdHJpeCBnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZSAnXG4gICAgICAgICsgJ2dsX1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlVHJhbnNwb3NlIGdsX1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UgZ2xfU2FtcGxlSUQgZ2xfU2FtcGxlTWFzayAnXG4gICAgICAgICsgJ2dsX1NhbXBsZU1hc2tJbiBnbF9TYW1wbGVQb3NpdGlvbiBnbF9TZWNvbmRhcnlDb2xvciBnbF9UZXNzQ29vcmQgZ2xfVGVzc0xldmVsSW5uZXIgZ2xfVGVzc0xldmVsT3V0ZXIgJ1xuICAgICAgICArICdnbF9UZXhDb29yZCBnbF9UZXh0dXJlRW52Q29sb3IgZ2xfVGV4dHVyZU1hdHJpeCBnbF9UZXh0dXJlTWF0cml4SW52ZXJzZSBnbF9UZXh0dXJlTWF0cml4SW52ZXJzZVRyYW5zcG9zZSAnXG4gICAgICAgICsgJ2dsX1RleHR1cmVNYXRyaXhUcmFuc3Bvc2UgZ2xfVmVydGV4IGdsX1ZlcnRleElEIGdsX1ZpZXdwb3J0SW5kZXggZ2xfV29ya0dyb3VwSUQgZ2xfV29ya0dyb3VwU2l6ZSBnbF9pbiBnbF9vdXQgJ1xuICAgICAgICAvLyBGdW5jdGlvbnNcbiAgICAgICAgKyAnRW1pdFN0cmVhbVZlcnRleCBFbWl0VmVydGV4IEVuZFByaW1pdGl2ZSBFbmRTdHJlYW1QcmltaXRpdmUgYWJzIGFjb3MgYWNvc2ggYWxsIGFueSBhc2luICdcbiAgICAgICAgKyAnYXNpbmggYXRhbiBhdGFuaCBhdG9taWNBZGQgYXRvbWljQW5kIGF0b21pY0NvbXBTd2FwIGF0b21pY0NvdW50ZXIgYXRvbWljQ291bnRlckRlY3JlbWVudCAnXG4gICAgICAgICsgJ2F0b21pY0NvdW50ZXJJbmNyZW1lbnQgYXRvbWljRXhjaGFuZ2UgYXRvbWljTWF4IGF0b21pY01pbiBhdG9taWNPciBhdG9taWNYb3IgYmFycmllciAnXG4gICAgICAgICsgJ2JpdENvdW50IGJpdGZpZWxkRXh0cmFjdCBiaXRmaWVsZEluc2VydCBiaXRmaWVsZFJldmVyc2UgY2VpbCBjbGFtcCBjb3MgY29zaCBjcm9zcyAnXG4gICAgICAgICsgJ2RGZHggZEZkeSBkZWdyZWVzIGRldGVybWluYW50IGRpc3RhbmNlIGRvdCBlcXVhbCBleHAgZXhwMiBmYWNlZm9yd2FyZCBmaW5kTFNCIGZpbmRNU0IgJ1xuICAgICAgICArICdmbG9hdEJpdHNUb0ludCBmbG9hdEJpdHNUb1VpbnQgZmxvb3IgZm1hIGZyYWN0IGZyZXhwIGZ0cmFuc2Zvcm0gZndpZHRoIGdyZWF0ZXJUaGFuICdcbiAgICAgICAgKyAnZ3JlYXRlclRoYW5FcXVhbCBncm91cE1lbW9yeUJhcnJpZXIgaW1hZ2VBdG9taWNBZGQgaW1hZ2VBdG9taWNBbmQgaW1hZ2VBdG9taWNDb21wU3dhcCAnXG4gICAgICAgICsgJ2ltYWdlQXRvbWljRXhjaGFuZ2UgaW1hZ2VBdG9taWNNYXggaW1hZ2VBdG9taWNNaW4gaW1hZ2VBdG9taWNPciBpbWFnZUF0b21pY1hvciBpbWFnZUxvYWQgJ1xuICAgICAgICArICdpbWFnZVNpemUgaW1hZ2VTdG9yZSBpbXVsRXh0ZW5kZWQgaW50Qml0c1RvRmxvYXQgaW50ZXJwb2xhdGVBdENlbnRyb2lkIGludGVycG9sYXRlQXRPZmZzZXQgJ1xuICAgICAgICArICdpbnRlcnBvbGF0ZUF0U2FtcGxlIGludmVyc2UgaW52ZXJzZXNxcnQgaXNpbmYgaXNuYW4gbGRleHAgbGVuZ3RoIGxlc3NUaGFuIGxlc3NUaGFuRXF1YWwgbG9nICdcbiAgICAgICAgKyAnbG9nMiBtYXRyaXhDb21wTXVsdCBtYXggbWVtb3J5QmFycmllciBtZW1vcnlCYXJyaWVyQXRvbWljQ291bnRlciBtZW1vcnlCYXJyaWVyQnVmZmVyICdcbiAgICAgICAgKyAnbWVtb3J5QmFycmllckltYWdlIG1lbW9yeUJhcnJpZXJTaGFyZWQgbWluIG1peCBtb2QgbW9kZiBub2lzZTEgbm9pc2UyIG5vaXNlMyBub2lzZTQgJ1xuICAgICAgICArICdub3JtYWxpemUgbm90IG5vdEVxdWFsIG91dGVyUHJvZHVjdCBwYWNrRG91YmxlMngzMiBwYWNrSGFsZjJ4MTYgcGFja1Nub3JtMngxNiBwYWNrU25vcm00eDggJ1xuICAgICAgICArICdwYWNrVW5vcm0yeDE2IHBhY2tVbm9ybTR4OCBwb3cgcmFkaWFucyByZWZsZWN0IHJlZnJhY3Qgcm91bmQgcm91bmRFdmVuIHNoYWRvdzFEIHNoYWRvdzFETG9kICdcbiAgICAgICAgKyAnc2hhZG93MURQcm9qIHNoYWRvdzFEUHJvakxvZCBzaGFkb3cyRCBzaGFkb3cyRExvZCBzaGFkb3cyRFByb2ogc2hhZG93MkRQcm9qTG9kIHNpZ24gc2luIHNpbmggJ1xuICAgICAgICArICdzbW9vdGhzdGVwIHNxcnQgc3RlcCB0YW4gdGFuaCB0ZXhlbEZldGNoIHRleGVsRmV0Y2hPZmZzZXQgdGV4dHVyZSB0ZXh0dXJlMUQgdGV4dHVyZTFETG9kICdcbiAgICAgICAgKyAndGV4dHVyZTFEUHJvaiB0ZXh0dXJlMURQcm9qTG9kIHRleHR1cmUyRCB0ZXh0dXJlMkRMb2QgdGV4dHVyZTJEUHJvaiB0ZXh0dXJlMkRQcm9qTG9kICdcbiAgICAgICAgKyAndGV4dHVyZTNEIHRleHR1cmUzRExvZCB0ZXh0dXJlM0RQcm9qIHRleHR1cmUzRFByb2pMb2QgdGV4dHVyZUN1YmUgdGV4dHVyZUN1YmVMb2QgJ1xuICAgICAgICArICd0ZXh0dXJlR2F0aGVyIHRleHR1cmVHYXRoZXJPZmZzZXQgdGV4dHVyZUdhdGhlck9mZnNldHMgdGV4dHVyZUdyYWQgdGV4dHVyZUdyYWRPZmZzZXQgJ1xuICAgICAgICArICd0ZXh0dXJlTG9kIHRleHR1cmVMb2RPZmZzZXQgdGV4dHVyZU9mZnNldCB0ZXh0dXJlUHJvaiB0ZXh0dXJlUHJvakdyYWQgdGV4dHVyZVByb2pHcmFkT2Zmc2V0ICdcbiAgICAgICAgKyAndGV4dHVyZVByb2pMb2QgdGV4dHVyZVByb2pMb2RPZmZzZXQgdGV4dHVyZVByb2pPZmZzZXQgdGV4dHVyZVF1ZXJ5TGV2ZWxzIHRleHR1cmVRdWVyeUxvZCAnXG4gICAgICAgICsgJ3RleHR1cmVTaXplIHRyYW5zcG9zZSB0cnVuYyB1YWRkQ2FycnkgdWludEJpdHNUb0Zsb2F0IHVtdWxFeHRlbmRlZCB1bnBhY2tEb3VibGUyeDMyICdcbiAgICAgICAgKyAndW5wYWNrSGFsZjJ4MTYgdW5wYWNrU25vcm0yeDE2IHVucGFja1Nub3JtNHg4IHVucGFja1Vub3JtMngxNiB1bnBhY2tVbm9ybTR4OCB1c3ViQm9ycm93JyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogJ1wiJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgIGVuZDogJyQnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdsc2w7XG4iLCAiLypcbkxhbmd1YWdlOiBHTUxcbkRlc2NyaXB0aW9uOiBHYW1lIE1ha2VyIExhbmd1YWdlIGZvciBHYW1lTWFrZXIgKHJldi4gMjAyMy4xKVxuV2Vic2l0ZTogaHR0cHM6Ly9tYW51YWwueW95b2dhbWVzLmNvbS9cbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbmZ1bmN0aW9uIGdtbChobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiI2VuZHJlZ2lvblwiLFxuICAgIFwiI21hY3JvXCIsXG4gICAgXCIjcmVnaW9uXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY29uc3RydWN0b3JcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcImRpdlwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXhpdFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwiZ2xvYmFsdmFyXCIsXG4gICAgXCJpZlwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJuZXdcIixcbiAgICBcIm5vdFwiLFxuICAgIFwib3JcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidW50aWxcIixcbiAgICBcInZhclwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcIndpdGhcIixcbiAgICBcInhvclwiXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhbGFybV9nZXRcIixcbiAgICBcImFsYXJtX3NldFwiLFxuICAgIFwiYW5nbGVfZGlmZmVyZW5jZVwiLFxuICAgIFwiYW5pbWN1cnZlX2NoYW5uZWxfZXZhbHVhdGVcIixcbiAgICBcImFuaW1jdXJ2ZV9jaGFubmVsX25ld1wiLFxuICAgIFwiYW5pbWN1cnZlX2NyZWF0ZVwiLFxuICAgIFwiYW5pbWN1cnZlX2Rlc3Ryb3lcIixcbiAgICBcImFuaW1jdXJ2ZV9leGlzdHNcIixcbiAgICBcImFuaW1jdXJ2ZV9nZXRcIixcbiAgICBcImFuaW1jdXJ2ZV9nZXRfY2hhbm5lbFwiLFxuICAgIFwiYW5pbWN1cnZlX2dldF9jaGFubmVsX2luZGV4XCIsXG4gICAgXCJhbmltY3VydmVfcG9pbnRfbmV3XCIsXG4gICAgXCJhbnNpX2NoYXJcIixcbiAgICBcImFwcGxpY2F0aW9uX2dldF9wb3NpdGlvblwiLFxuICAgIFwiYXBwbGljYXRpb25fc3VyZmFjZV9kcmF3X2VuYWJsZVwiLFxuICAgIFwiYXBwbGljYXRpb25fc3VyZmFjZV9lbmFibGVcIixcbiAgICBcImFwcGxpY2F0aW9uX3N1cmZhY2VfaXNfZW5hYmxlZFwiLFxuICAgIFwiYXJjY29zXCIsXG4gICAgXCJhcmNzaW5cIixcbiAgICBcImFyY3RhblwiLFxuICAgIFwiYXJjdGFuMlwiLFxuICAgIFwiYXJyYXlfYWxsXCIsXG4gICAgXCJhcnJheV9hbnlcIixcbiAgICBcImFycmF5X2NvbmNhdFwiLFxuICAgIFwiYXJyYXlfY29udGFpbnNcIixcbiAgICBcImFycmF5X2NvbnRhaW5zX2V4dFwiLFxuICAgIFwiYXJyYXlfY29weVwiLFxuICAgIFwiYXJyYXlfY29weV93aGlsZVwiLFxuICAgIFwiYXJyYXlfY3JlYXRlXCIsXG4gICAgXCJhcnJheV9jcmVhdGVfZXh0XCIsXG4gICAgXCJhcnJheV9kZWxldGVcIixcbiAgICBcImFycmF5X2VxdWFsc1wiLFxuICAgIFwiYXJyYXlfZmlsdGVyXCIsXG4gICAgXCJhcnJheV9maWx0ZXJfZXh0XCIsXG4gICAgXCJhcnJheV9maW5kX2luZGV4XCIsXG4gICAgXCJhcnJheV9maXJzdFwiLFxuICAgIFwiYXJyYXlfZm9yZWFjaFwiLFxuICAgIFwiYXJyYXlfZ2V0XCIsXG4gICAgXCJhcnJheV9nZXRfaW5kZXhcIixcbiAgICBcImFycmF5X2luc2VydFwiLFxuICAgIFwiYXJyYXlfaW50ZXJzZWN0aW9uXCIsXG4gICAgXCJhcnJheV9sYXN0XCIsXG4gICAgXCJhcnJheV9sZW5ndGhcIixcbiAgICBcImFycmF5X21hcFwiLFxuICAgIFwiYXJyYXlfbWFwX2V4dFwiLFxuICAgIFwiYXJyYXlfcG9wXCIsXG4gICAgXCJhcnJheV9wdXNoXCIsXG4gICAgXCJhcnJheV9yZWR1Y2VcIixcbiAgICBcImFycmF5X3Jlc2l6ZVwiLFxuICAgIFwiYXJyYXlfcmV2ZXJzZVwiLFxuICAgIFwiYXJyYXlfcmV2ZXJzZV9leHRcIixcbiAgICBcImFycmF5X3NldFwiLFxuICAgIFwiYXJyYXlfc2h1ZmZsZVwiLFxuICAgIFwiYXJyYXlfc2h1ZmZsZV9leHRcIixcbiAgICBcImFycmF5X3NvcnRcIixcbiAgICBcImFycmF5X3VuaW9uXCIsXG4gICAgXCJhcnJheV91bmlxdWVcIixcbiAgICBcImFycmF5X3VuaXF1ZV9leHRcIixcbiAgICBcImFzc2V0X2FkZF90YWdzXCIsXG4gICAgXCJhc3NldF9jbGVhcl90YWdzXCIsXG4gICAgXCJhc3NldF9nZXRfaWRzXCIsXG4gICAgXCJhc3NldF9nZXRfaW5kZXhcIixcbiAgICBcImFzc2V0X2dldF90YWdzXCIsXG4gICAgXCJhc3NldF9nZXRfdHlwZVwiLFxuICAgIFwiYXNzZXRfaGFzX2FueV90YWdcIixcbiAgICBcImFzc2V0X2hhc190YWdzXCIsXG4gICAgXCJhc3NldF9yZW1vdmVfdGFnc1wiLFxuICAgIFwiYXVkaW9fYnVzX2NsZWFyX2VtaXR0ZXJzXCIsXG4gICAgXCJhdWRpb19idXNfY3JlYXRlXCIsXG4gICAgXCJhdWRpb19idXNfZ2V0X2VtaXR0ZXJzXCIsXG4gICAgXCJhdWRpb19jaGFubmVsX251bVwiLFxuICAgIFwiYXVkaW9fY3JlYXRlX2J1ZmZlcl9zb3VuZFwiLFxuICAgIFwiYXVkaW9fY3JlYXRlX3BsYXlfcXVldWVcIixcbiAgICBcImF1ZGlvX2NyZWF0ZV9zdHJlYW1cIixcbiAgICBcImF1ZGlvX2NyZWF0ZV9zeW5jX2dyb3VwXCIsXG4gICAgXCJhdWRpb19kZWJ1Z1wiLFxuICAgIFwiYXVkaW9fZGVzdHJveV9zdHJlYW1cIixcbiAgICBcImF1ZGlvX2Rlc3Ryb3lfc3luY19ncm91cFwiLFxuICAgIFwiYXVkaW9fZWZmZWN0X2NyZWF0ZVwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9idXNcIixcbiAgICBcImF1ZGlvX2VtaXR0ZXJfY3JlYXRlXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2V4aXN0c1wiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9mYWxsb2ZmXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2ZyZWVcIixcbiAgICBcImF1ZGlvX2VtaXR0ZXJfZ2FpblwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfYnVzXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF9nYWluXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF9saXN0ZW5lcl9tYXNrXCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF9waXRjaFwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfdnhcIixcbiAgICBcImF1ZGlvX2VtaXR0ZXJfZ2V0X3Z5XCIsXG4gICAgXCJhdWRpb19lbWl0dGVyX2dldF92elwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfeFwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfeVwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9nZXRfelwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9waXRjaFwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9wb3NpdGlvblwiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl9zZXRfbGlzdGVuZXJfbWFza1wiLFxuICAgIFwiYXVkaW9fZW1pdHRlcl92ZWxvY2l0eVwiLFxuICAgIFwiYXVkaW9fZXhpc3RzXCIsXG4gICAgXCJhdWRpb19mYWxsb2ZmX3NldF9tb2RlbFwiLFxuICAgIFwiYXVkaW9fZnJlZV9idWZmZXJfc291bmRcIixcbiAgICBcImF1ZGlvX2ZyZWVfcGxheV9xdWV1ZVwiLFxuICAgIFwiYXVkaW9fZ2V0X2xpc3RlbmVyX2NvdW50XCIsXG4gICAgXCJhdWRpb19nZXRfbGlzdGVuZXJfaW5mb1wiLFxuICAgIFwiYXVkaW9fZ2V0X2xpc3RlbmVyX21hc2tcIixcbiAgICBcImF1ZGlvX2dldF9tYXN0ZXJfZ2FpblwiLFxuICAgIFwiYXVkaW9fZ2V0X25hbWVcIixcbiAgICBcImF1ZGlvX2dldF9yZWNvcmRlcl9jb3VudFwiLFxuICAgIFwiYXVkaW9fZ2V0X3JlY29yZGVyX2luZm9cIixcbiAgICBcImF1ZGlvX2dldF90eXBlXCIsXG4gICAgXCJhdWRpb19ncm91cF9nZXRfYXNzZXRzXCIsXG4gICAgXCJhdWRpb19ncm91cF9nZXRfZ2FpblwiLFxuICAgIFwiYXVkaW9fZ3JvdXBfaXNfbG9hZGVkXCIsXG4gICAgXCJhdWRpb19ncm91cF9sb2FkXCIsXG4gICAgXCJhdWRpb19ncm91cF9sb2FkX3Byb2dyZXNzXCIsXG4gICAgXCJhdWRpb19ncm91cF9uYW1lXCIsXG4gICAgXCJhdWRpb19ncm91cF9zZXRfZ2FpblwiLFxuICAgIFwiYXVkaW9fZ3JvdXBfc3RvcF9hbGxcIixcbiAgICBcImF1ZGlvX2dyb3VwX3VubG9hZFwiLFxuICAgIFwiYXVkaW9faXNfcGF1c2VkXCIsXG4gICAgXCJhdWRpb19pc19wbGF5aW5nXCIsXG4gICAgXCJhdWRpb19saXN0ZW5lcl9nZXRfZGF0YVwiLFxuICAgIFwiYXVkaW9fbGlzdGVuZXJfb3JpZW50YXRpb25cIixcbiAgICBcImF1ZGlvX2xpc3RlbmVyX3Bvc2l0aW9uXCIsXG4gICAgXCJhdWRpb19saXN0ZW5lcl9zZXRfb3JpZW50YXRpb25cIixcbiAgICBcImF1ZGlvX2xpc3RlbmVyX3NldF9wb3NpdGlvblwiLFxuICAgIFwiYXVkaW9fbGlzdGVuZXJfc2V0X3ZlbG9jaXR5XCIsXG4gICAgXCJhdWRpb19saXN0ZW5lcl92ZWxvY2l0eVwiLFxuICAgIFwiYXVkaW9fbWFzdGVyX2dhaW5cIixcbiAgICBcImF1ZGlvX3BhdXNlX2FsbFwiLFxuICAgIFwiYXVkaW9fcGF1c2Vfc291bmRcIixcbiAgICBcImF1ZGlvX3BhdXNlX3N5bmNfZ3JvdXBcIixcbiAgICBcImF1ZGlvX3BsYXlfaW5fc3luY19ncm91cFwiLFxuICAgIFwiYXVkaW9fcGxheV9zb3VuZFwiLFxuICAgIFwiYXVkaW9fcGxheV9zb3VuZF9hdFwiLFxuICAgIFwiYXVkaW9fcGxheV9zb3VuZF9leHRcIixcbiAgICBcImF1ZGlvX3BsYXlfc291bmRfb25cIixcbiAgICBcImF1ZGlvX3F1ZXVlX3NvdW5kXCIsXG4gICAgXCJhdWRpb19yZXN1bWVfYWxsXCIsXG4gICAgXCJhdWRpb19yZXN1bWVfc291bmRcIixcbiAgICBcImF1ZGlvX3Jlc3VtZV9zeW5jX2dyb3VwXCIsXG4gICAgXCJhdWRpb19zZXRfbGlzdGVuZXJfbWFza1wiLFxuICAgIFwiYXVkaW9fc2V0X21hc3Rlcl9nYWluXCIsXG4gICAgXCJhdWRpb19zb3VuZF9nYWluXCIsXG4gICAgXCJhdWRpb19zb3VuZF9nZXRfYXVkaW9fZ3JvdXBcIixcbiAgICBcImF1ZGlvX3NvdW5kX2dldF9nYWluXCIsXG4gICAgXCJhdWRpb19zb3VuZF9nZXRfbGlzdGVuZXJfbWFza1wiLFxuICAgIFwiYXVkaW9fc291bmRfZ2V0X2xvb3BcIixcbiAgICBcImF1ZGlvX3NvdW5kX2dldF9sb29wX2VuZFwiLFxuICAgIFwiYXVkaW9fc291bmRfZ2V0X2xvb3Bfc3RhcnRcIixcbiAgICBcImF1ZGlvX3NvdW5kX2dldF9waXRjaFwiLFxuICAgIFwiYXVkaW9fc291bmRfZ2V0X3RyYWNrX3Bvc2l0aW9uXCIsXG4gICAgXCJhdWRpb19zb3VuZF9pc19wbGF5YWJsZVwiLFxuICAgIFwiYXVkaW9fc291bmRfbGVuZ3RoXCIsXG4gICAgXCJhdWRpb19zb3VuZF9sb29wXCIsXG4gICAgXCJhdWRpb19zb3VuZF9sb29wX2VuZFwiLFxuICAgIFwiYXVkaW9fc291bmRfbG9vcF9zdGFydFwiLFxuICAgIFwiYXVkaW9fc291bmRfcGl0Y2hcIixcbiAgICBcImF1ZGlvX3NvdW5kX3NldF9saXN0ZW5lcl9tYXNrXCIsXG4gICAgXCJhdWRpb19zb3VuZF9zZXRfdHJhY2tfcG9zaXRpb25cIixcbiAgICBcImF1ZGlvX3N0YXJ0X3JlY29yZGluZ1wiLFxuICAgIFwiYXVkaW9fc3RhcnRfc3luY19ncm91cFwiLFxuICAgIFwiYXVkaW9fc3RvcF9hbGxcIixcbiAgICBcImF1ZGlvX3N0b3BfcmVjb3JkaW5nXCIsXG4gICAgXCJhdWRpb19zdG9wX3NvdW5kXCIsXG4gICAgXCJhdWRpb19zdG9wX3N5bmNfZ3JvdXBcIixcbiAgICBcImF1ZGlvX3N5bmNfZ3JvdXBfZGVidWdcIixcbiAgICBcImF1ZGlvX3N5bmNfZ3JvdXBfZ2V0X3RyYWNrX3Bvc1wiLFxuICAgIFwiYXVkaW9fc3luY19ncm91cF9pc19wYXVzZWRcIixcbiAgICBcImF1ZGlvX3N5bmNfZ3JvdXBfaXNfcGxheWluZ1wiLFxuICAgIFwiYXVkaW9fc3lzdGVtX2lzX2F2YWlsYWJsZVwiLFxuICAgIFwiYXVkaW9fc3lzdGVtX2lzX2luaXRpYWxpc2VkXCIsXG4gICAgXCJiYXNlNjRfZGVjb2RlXCIsXG4gICAgXCJiYXNlNjRfZW5jb2RlXCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJicm93c2VyX2lucHV0X2NhcHR1cmVcIixcbiAgICBcImJ1ZmZlcl9hc3luY19ncm91cF9iZWdpblwiLFxuICAgIFwiYnVmZmVyX2FzeW5jX2dyb3VwX2VuZFwiLFxuICAgIFwiYnVmZmVyX2FzeW5jX2dyb3VwX29wdGlvblwiLFxuICAgIFwiYnVmZmVyX2Jhc2U2NF9kZWNvZGVcIixcbiAgICBcImJ1ZmZlcl9iYXNlNjRfZGVjb2RlX2V4dFwiLFxuICAgIFwiYnVmZmVyX2Jhc2U2NF9lbmNvZGVcIixcbiAgICBcImJ1ZmZlcl9jb21wcmVzc1wiLFxuICAgIFwiYnVmZmVyX2NvcHlcIixcbiAgICBcImJ1ZmZlcl9jb3B5X2Zyb21fdmVydGV4X2J1ZmZlclwiLFxuICAgIFwiYnVmZmVyX2NvcHlfc3RyaWRlXCIsXG4gICAgXCJidWZmZXJfY3JjMzJcIixcbiAgICBcImJ1ZmZlcl9jcmVhdGVcIixcbiAgICBcImJ1ZmZlcl9jcmVhdGVfZnJvbV92ZXJ0ZXhfYnVmZmVyXCIsXG4gICAgXCJidWZmZXJfY3JlYXRlX2Zyb21fdmVydGV4X2J1ZmZlcl9leHRcIixcbiAgICBcImJ1ZmZlcl9kZWNvbXByZXNzXCIsXG4gICAgXCJidWZmZXJfZGVsZXRlXCIsXG4gICAgXCJidWZmZXJfZXhpc3RzXCIsXG4gICAgXCJidWZmZXJfZmlsbFwiLFxuICAgIFwiYnVmZmVyX2dldF9hZGRyZXNzXCIsXG4gICAgXCJidWZmZXJfZ2V0X2FsaWdubWVudFwiLFxuICAgIFwiYnVmZmVyX2dldF9zaXplXCIsXG4gICAgXCJidWZmZXJfZ2V0X3N1cmZhY2VcIixcbiAgICBcImJ1ZmZlcl9nZXRfdHlwZVwiLFxuICAgIFwiYnVmZmVyX2xvYWRcIixcbiAgICBcImJ1ZmZlcl9sb2FkX2FzeW5jXCIsXG4gICAgXCJidWZmZXJfbG9hZF9leHRcIixcbiAgICBcImJ1ZmZlcl9sb2FkX3BhcnRpYWxcIixcbiAgICBcImJ1ZmZlcl9tZDVcIixcbiAgICBcImJ1ZmZlcl9wZWVrXCIsXG4gICAgXCJidWZmZXJfcG9rZVwiLFxuICAgIFwiYnVmZmVyX3JlYWRcIixcbiAgICBcImJ1ZmZlcl9yZXNpemVcIixcbiAgICBcImJ1ZmZlcl9zYXZlXCIsXG4gICAgXCJidWZmZXJfc2F2ZV9hc3luY1wiLFxuICAgIFwiYnVmZmVyX3NhdmVfZXh0XCIsXG4gICAgXCJidWZmZXJfc2Vla1wiLFxuICAgIFwiYnVmZmVyX3NldF9zdXJmYWNlXCIsXG4gICAgXCJidWZmZXJfc2V0X3VzZWRfc2l6ZVwiLFxuICAgIFwiYnVmZmVyX3NoYTFcIixcbiAgICBcImJ1ZmZlcl9zaXplb2ZcIixcbiAgICBcImJ1ZmZlcl90ZWxsXCIsXG4gICAgXCJidWZmZXJfd3JpdGVcIixcbiAgICBcImNhbGxfY2FuY2VsXCIsXG4gICAgXCJjYWxsX2xhdGVyXCIsXG4gICAgXCJjYW1lcmFfYXBwbHlcIixcbiAgICBcImNhbWVyYV9jb3B5X3RyYW5zZm9ybXNcIixcbiAgICBcImNhbWVyYV9jcmVhdGVcIixcbiAgICBcImNhbWVyYV9jcmVhdGVfdmlld1wiLFxuICAgIFwiY2FtZXJhX2Rlc3Ryb3lcIixcbiAgICBcImNhbWVyYV9nZXRfYWN0aXZlXCIsXG4gICAgXCJjYW1lcmFfZ2V0X2JlZ2luX3NjcmlwdFwiLFxuICAgIFwiY2FtZXJhX2dldF9kZWZhdWx0XCIsXG4gICAgXCJjYW1lcmFfZ2V0X2VuZF9zY3JpcHRcIixcbiAgICBcImNhbWVyYV9nZXRfcHJval9tYXRcIixcbiAgICBcImNhbWVyYV9nZXRfdXBkYXRlX3NjcmlwdFwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X2FuZ2xlXCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfYm9yZGVyX3hcIixcbiAgICBcImNhbWVyYV9nZXRfdmlld19ib3JkZXJfeVwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X2hlaWdodFwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X21hdFwiLFxuICAgIFwiY2FtZXJhX2dldF92aWV3X3NwZWVkX3hcIixcbiAgICBcImNhbWVyYV9nZXRfdmlld19zcGVlZF95XCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfdGFyZ2V0XCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfd2lkdGhcIixcbiAgICBcImNhbWVyYV9nZXRfdmlld194XCIsXG4gICAgXCJjYW1lcmFfZ2V0X3ZpZXdfeVwiLFxuICAgIFwiY2FtZXJhX3NldF9iZWdpbl9zY3JpcHRcIixcbiAgICBcImNhbWVyYV9zZXRfZGVmYXVsdFwiLFxuICAgIFwiY2FtZXJhX3NldF9lbmRfc2NyaXB0XCIsXG4gICAgXCJjYW1lcmFfc2V0X3Byb2pfbWF0XCIsXG4gICAgXCJjYW1lcmFfc2V0X3VwZGF0ZV9zY3JpcHRcIixcbiAgICBcImNhbWVyYV9zZXRfdmlld19hbmdsZVwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X2JvcmRlclwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X21hdFwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X3Bvc1wiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X3NpemVcIixcbiAgICBcImNhbWVyYV9zZXRfdmlld19zcGVlZFwiLFxuICAgIFwiY2FtZXJhX3NldF92aWV3X3RhcmdldFwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2hvb3NlXCIsXG4gICAgXCJjaHJcIixcbiAgICBcImNsYW1wXCIsXG4gICAgXCJjbGlja2FibGVfYWRkXCIsXG4gICAgXCJjbGlja2FibGVfYWRkX2V4dFwiLFxuICAgIFwiY2xpY2thYmxlX2NoYW5nZVwiLFxuICAgIFwiY2xpY2thYmxlX2NoYW5nZV9leHRcIixcbiAgICBcImNsaWNrYWJsZV9kZWxldGVcIixcbiAgICBcImNsaWNrYWJsZV9leGlzdHNcIixcbiAgICBcImNsaWNrYWJsZV9zZXRfc3R5bGVcIixcbiAgICBcImNsaXBib2FyZF9nZXRfdGV4dFwiLFxuICAgIFwiY2xpcGJvYXJkX2hhc190ZXh0XCIsXG4gICAgXCJjbGlwYm9hcmRfc2V0X3RleHRcIixcbiAgICBcImNsb3VkX2ZpbGVfc2F2ZVwiLFxuICAgIFwiY2xvdWRfc3RyaW5nX3NhdmVcIixcbiAgICBcImNsb3VkX3N5bmNocm9uaXNlXCIsXG4gICAgXCJjb2RlX2lzX2NvbXBpbGVkXCIsXG4gICAgXCJjb2xsaXNpb25fY2lyY2xlXCIsXG4gICAgXCJjb2xsaXNpb25fY2lyY2xlX2xpc3RcIixcbiAgICBcImNvbGxpc2lvbl9lbGxpcHNlXCIsXG4gICAgXCJjb2xsaXNpb25fZWxsaXBzZV9saXN0XCIsXG4gICAgXCJjb2xsaXNpb25fbGluZVwiLFxuICAgIFwiY29sbGlzaW9uX2xpbmVfbGlzdFwiLFxuICAgIFwiY29sbGlzaW9uX3BvaW50XCIsXG4gICAgXCJjb2xsaXNpb25fcG9pbnRfbGlzdFwiLFxuICAgIFwiY29sbGlzaW9uX3JlY3RhbmdsZVwiLFxuICAgIFwiY29sbGlzaW9uX3JlY3RhbmdsZV9saXN0XCIsXG4gICAgXCJjb2xvcl9nZXRfYmx1ZVwiLFxuICAgIFwiY29sb3JfZ2V0X2dyZWVuXCIsXG4gICAgXCJjb2xvcl9nZXRfaHVlXCIsXG4gICAgXCJjb2xvcl9nZXRfcmVkXCIsXG4gICAgXCJjb2xvcl9nZXRfc2F0dXJhdGlvblwiLFxuICAgIFwiY29sb3JfZ2V0X3ZhbHVlXCIsXG4gICAgXCJjb2xvdXJfZ2V0X2JsdWVcIixcbiAgICBcImNvbG91cl9nZXRfZ3JlZW5cIixcbiAgICBcImNvbG91cl9nZXRfaHVlXCIsXG4gICAgXCJjb2xvdXJfZ2V0X3JlZFwiLFxuICAgIFwiY29sb3VyX2dldF9zYXR1cmF0aW9uXCIsXG4gICAgXCJjb2xvdXJfZ2V0X3ZhbHVlXCIsXG4gICAgXCJjb3NcIixcbiAgICBcImRhcmNjb3NcIixcbiAgICBcImRhcmNzaW5cIixcbiAgICBcImRhcmN0YW5cIixcbiAgICBcImRhcmN0YW4yXCIsXG4gICAgXCJkYXRlX2NvbXBhcmVfZGF0ZVwiLFxuICAgIFwiZGF0ZV9jb21wYXJlX2RhdGV0aW1lXCIsXG4gICAgXCJkYXRlX2NvbXBhcmVfdGltZVwiLFxuICAgIFwiZGF0ZV9jcmVhdGVfZGF0ZXRpbWVcIixcbiAgICBcImRhdGVfY3VycmVudF9kYXRldGltZVwiLFxuICAgIFwiZGF0ZV9kYXRlX29mXCIsXG4gICAgXCJkYXRlX2RhdGVfc3RyaW5nXCIsXG4gICAgXCJkYXRlX2RhdGV0aW1lX3N0cmluZ1wiLFxuICAgIFwiZGF0ZV9kYXlfc3BhblwiLFxuICAgIFwiZGF0ZV9kYXlzX2luX21vbnRoXCIsXG4gICAgXCJkYXRlX2RheXNfaW5feWVhclwiLFxuICAgIFwiZGF0ZV9nZXRfZGF5XCIsXG4gICAgXCJkYXRlX2dldF9kYXlfb2ZfeWVhclwiLFxuICAgIFwiZGF0ZV9nZXRfaG91clwiLFxuICAgIFwiZGF0ZV9nZXRfaG91cl9vZl95ZWFyXCIsXG4gICAgXCJkYXRlX2dldF9taW51dGVcIixcbiAgICBcImRhdGVfZ2V0X21pbnV0ZV9vZl95ZWFyXCIsXG4gICAgXCJkYXRlX2dldF9tb250aFwiLFxuICAgIFwiZGF0ZV9nZXRfc2Vjb25kXCIsXG4gICAgXCJkYXRlX2dldF9zZWNvbmRfb2ZfeWVhclwiLFxuICAgIFwiZGF0ZV9nZXRfdGltZXpvbmVcIixcbiAgICBcImRhdGVfZ2V0X3dlZWtcIixcbiAgICBcImRhdGVfZ2V0X3dlZWtkYXlcIixcbiAgICBcImRhdGVfZ2V0X3llYXJcIixcbiAgICBcImRhdGVfaG91cl9zcGFuXCIsXG4gICAgXCJkYXRlX2luY19kYXlcIixcbiAgICBcImRhdGVfaW5jX2hvdXJcIixcbiAgICBcImRhdGVfaW5jX21pbnV0ZVwiLFxuICAgIFwiZGF0ZV9pbmNfbW9udGhcIixcbiAgICBcImRhdGVfaW5jX3NlY29uZFwiLFxuICAgIFwiZGF0ZV9pbmNfd2Vla1wiLFxuICAgIFwiZGF0ZV9pbmNfeWVhclwiLFxuICAgIFwiZGF0ZV9pc190b2RheVwiLFxuICAgIFwiZGF0ZV9sZWFwX3llYXJcIixcbiAgICBcImRhdGVfbWludXRlX3NwYW5cIixcbiAgICBcImRhdGVfbW9udGhfc3BhblwiLFxuICAgIFwiZGF0ZV9zZWNvbmRfc3BhblwiLFxuICAgIFwiZGF0ZV9zZXRfdGltZXpvbmVcIixcbiAgICBcImRhdGVfdGltZV9vZlwiLFxuICAgIFwiZGF0ZV90aW1lX3N0cmluZ1wiLFxuICAgIFwiZGF0ZV92YWxpZF9kYXRldGltZVwiLFxuICAgIFwiZGF0ZV93ZWVrX3NwYW5cIixcbiAgICBcImRhdGVfeWVhcl9zcGFuXCIsXG4gICAgXCJkYl90b19saW5cIixcbiAgICBcImRiZ19hZGRfZm9udF9nbHlwaHNcIixcbiAgICBcImRiZ19idXR0b25cIixcbiAgICBcImRiZ19jaGVja2JveFwiLFxuICAgIFwiZGJnX2NvbG9yXCIsXG4gICAgXCJkYmdfY29sb3VyXCIsXG4gICAgXCJkYmdfZHJvcF9kb3duXCIsXG4gICAgXCJkYmdfc2FtZV9saW5lXCIsXG4gICAgXCJkYmdfc2VjdGlvblwiLFxuICAgIFwiZGJnX3NlY3Rpb25fZGVsZXRlXCIsXG4gICAgXCJkYmdfc2VjdGlvbl9leGlzdHNcIixcbiAgICBcImRiZ19zbGlkZXJcIixcbiAgICBcImRiZ19zbGlkZXJfaW50XCIsXG4gICAgXCJkYmdfc3ByaXRlXCIsXG4gICAgXCJkYmdfdGV4dFwiLFxuICAgIFwiZGJnX3RleHRfaW5wdXRcIixcbiAgICBcImRiZ192aWV3XCIsXG4gICAgXCJkYmdfdmlld19kZWxldGVcIixcbiAgICBcImRiZ192aWV3X2V4aXN0c1wiLFxuICAgIFwiZGJnX3dhdGNoXCIsXG4gICAgXCJkY29zXCIsXG4gICAgXCJkZWJ1Z19ldmVudFwiLFxuICAgIFwiZGVidWdfZ2V0X2NhbGxzdGFja1wiLFxuICAgIFwiZGVndG9yYWRcIixcbiAgICBcImRldmljZV9nZXRfdGlsdF94XCIsXG4gICAgXCJkZXZpY2VfZ2V0X3RpbHRfeVwiLFxuICAgIFwiZGV2aWNlX2dldF90aWx0X3pcIixcbiAgICBcImRldmljZV9pc19rZXlwYWRfb3BlblwiLFxuICAgIFwiZGV2aWNlX21vdXNlX2NoZWNrX2J1dHRvblwiLFxuICAgIFwiZGV2aWNlX21vdXNlX2NoZWNrX2J1dHRvbl9wcmVzc2VkXCIsXG4gICAgXCJkZXZpY2VfbW91c2VfY2hlY2tfYnV0dG9uX3JlbGVhc2VkXCIsXG4gICAgXCJkZXZpY2VfbW91c2VfZGJjbGlja19lbmFibGVcIixcbiAgICBcImRldmljZV9tb3VzZV9yYXdfeFwiLFxuICAgIFwiZGV2aWNlX21vdXNlX3Jhd195XCIsXG4gICAgXCJkZXZpY2VfbW91c2VfeFwiLFxuICAgIFwiZGV2aWNlX21vdXNlX3hfdG9fZ3VpXCIsXG4gICAgXCJkZXZpY2VfbW91c2VfeVwiLFxuICAgIFwiZGV2aWNlX21vdXNlX3lfdG9fZ3VpXCIsXG4gICAgXCJkaXJlY3RvcnlfY3JlYXRlXCIsXG4gICAgXCJkaXJlY3RvcnlfZGVzdHJveVwiLFxuICAgIFwiZGlyZWN0b3J5X2V4aXN0c1wiLFxuICAgIFwiZGlzcGxheV9nZXRfZHBpX3hcIixcbiAgICBcImRpc3BsYXlfZ2V0X2RwaV95XCIsXG4gICAgXCJkaXNwbGF5X2dldF9mcmVxdWVuY3lcIixcbiAgICBcImRpc3BsYXlfZ2V0X2d1aV9oZWlnaHRcIixcbiAgICBcImRpc3BsYXlfZ2V0X2d1aV93aWR0aFwiLFxuICAgIFwiZGlzcGxheV9nZXRfaGVpZ2h0XCIsXG4gICAgXCJkaXNwbGF5X2dldF9vcmllbnRhdGlvblwiLFxuICAgIFwiZGlzcGxheV9nZXRfc2xlZXBfbWFyZ2luXCIsXG4gICAgXCJkaXNwbGF5X2dldF90aW1pbmdfbWV0aG9kXCIsXG4gICAgXCJkaXNwbGF5X2dldF93aWR0aFwiLFxuICAgIFwiZGlzcGxheV9tb3VzZV9nZXRfeFwiLFxuICAgIFwiZGlzcGxheV9tb3VzZV9nZXRfeVwiLFxuICAgIFwiZGlzcGxheV9tb3VzZV9zZXRcIixcbiAgICBcImRpc3BsYXlfcmVzZXRcIixcbiAgICBcImRpc3BsYXlfc2V0X2d1aV9tYXhpbWlzZVwiLFxuICAgIFwiZGlzcGxheV9zZXRfZ3VpX21heGltaXplXCIsXG4gICAgXCJkaXNwbGF5X3NldF9ndWlfc2l6ZVwiLFxuICAgIFwiZGlzcGxheV9zZXRfc2xlZXBfbWFyZ2luXCIsXG4gICAgXCJkaXNwbGF5X3NldF90aW1pbmdfbWV0aG9kXCIsXG4gICAgXCJkaXNwbGF5X3NldF91aV92aXNpYmlsaXR5XCIsXG4gICAgXCJkaXN0YW5jZV90b19vYmplY3RcIixcbiAgICBcImRpc3RhbmNlX3RvX3BvaW50XCIsXG4gICAgXCJkb3RfcHJvZHVjdFwiLFxuICAgIFwiZG90X3Byb2R1Y3RfM2RcIixcbiAgICBcImRvdF9wcm9kdWN0XzNkX25vcm1hbGlzZWRcIixcbiAgICBcImRvdF9wcm9kdWN0XzNkX25vcm1hbGl6ZWRcIixcbiAgICBcImRvdF9wcm9kdWN0X25vcm1hbGlzZWRcIixcbiAgICBcImRvdF9wcm9kdWN0X25vcm1hbGl6ZWRcIixcbiAgICBcImRyYXdfYXJyb3dcIixcbiAgICBcImRyYXdfYnV0dG9uXCIsXG4gICAgXCJkcmF3X2NpcmNsZVwiLFxuICAgIFwiZHJhd19jaXJjbGVfY29sb3JcIixcbiAgICBcImRyYXdfY2lyY2xlX2NvbG91clwiLFxuICAgIFwiZHJhd19jbGVhclwiLFxuICAgIFwiZHJhd19jbGVhcl9hbHBoYVwiLFxuICAgIFwiZHJhd19lbGxpcHNlXCIsXG4gICAgXCJkcmF3X2VsbGlwc2VfY29sb3JcIixcbiAgICBcImRyYXdfZWxsaXBzZV9jb2xvdXJcIixcbiAgICBcImRyYXdfZW5hYmxlX2RyYXdldmVudFwiLFxuICAgIFwiZHJhd19lbmFibGVfc2tlbGV0b25fYmxlbmRtb2Rlc1wiLFxuICAgIFwiZHJhd19lbmFibGVfc3dmX2FhXCIsXG4gICAgXCJkcmF3X2ZsdXNoXCIsXG4gICAgXCJkcmF3X2dldF9hbHBoYVwiLFxuICAgIFwiZHJhd19nZXRfY29sb3JcIixcbiAgICBcImRyYXdfZ2V0X2NvbG91clwiLFxuICAgIFwiZHJhd19nZXRfZW5hYmxlX3NrZWxldG9uX2JsZW5kbW9kZXNcIixcbiAgICBcImRyYXdfZ2V0X2ZvbnRcIixcbiAgICBcImRyYXdfZ2V0X2hhbGlnblwiLFxuICAgIFwiZHJhd19nZXRfbGlnaHRpbmdcIixcbiAgICBcImRyYXdfZ2V0X3N3Zl9hYV9sZXZlbFwiLFxuICAgIFwiZHJhd19nZXRfdmFsaWduXCIsXG4gICAgXCJkcmF3X2dldHBpeGVsXCIsXG4gICAgXCJkcmF3X2dldHBpeGVsX2V4dFwiLFxuICAgIFwiZHJhd19oZWFsdGhiYXJcIixcbiAgICBcImRyYXdfaGlnaHNjb3JlXCIsXG4gICAgXCJkcmF3X2xpZ2h0X2RlZmluZV9hbWJpZW50XCIsXG4gICAgXCJkcmF3X2xpZ2h0X2RlZmluZV9kaXJlY3Rpb25cIixcbiAgICBcImRyYXdfbGlnaHRfZGVmaW5lX3BvaW50XCIsXG4gICAgXCJkcmF3X2xpZ2h0X2VuYWJsZVwiLFxuICAgIFwiZHJhd19saWdodF9nZXRcIixcbiAgICBcImRyYXdfbGlnaHRfZ2V0X2FtYmllbnRcIixcbiAgICBcImRyYXdfbGluZVwiLFxuICAgIFwiZHJhd19saW5lX2NvbG9yXCIsXG4gICAgXCJkcmF3X2xpbmVfY29sb3VyXCIsXG4gICAgXCJkcmF3X2xpbmVfd2lkdGhcIixcbiAgICBcImRyYXdfbGluZV93aWR0aF9jb2xvclwiLFxuICAgIFwiZHJhd19saW5lX3dpZHRoX2NvbG91clwiLFxuICAgIFwiZHJhd19wYXRoXCIsXG4gICAgXCJkcmF3X3BvaW50XCIsXG4gICAgXCJkcmF3X3BvaW50X2NvbG9yXCIsXG4gICAgXCJkcmF3X3BvaW50X2NvbG91clwiLFxuICAgIFwiZHJhd19wcmltaXRpdmVfYmVnaW5cIixcbiAgICBcImRyYXdfcHJpbWl0aXZlX2JlZ2luX3RleHR1cmVcIixcbiAgICBcImRyYXdfcHJpbWl0aXZlX2VuZFwiLFxuICAgIFwiZHJhd19yZWN0YW5nbGVcIixcbiAgICBcImRyYXdfcmVjdGFuZ2xlX2NvbG9yXCIsXG4gICAgXCJkcmF3X3JlY3RhbmdsZV9jb2xvdXJcIixcbiAgICBcImRyYXdfcm91bmRyZWN0XCIsXG4gICAgXCJkcmF3X3JvdW5kcmVjdF9jb2xvclwiLFxuICAgIFwiZHJhd19yb3VuZHJlY3RfY29sb3JfZXh0XCIsXG4gICAgXCJkcmF3X3JvdW5kcmVjdF9jb2xvdXJcIixcbiAgICBcImRyYXdfcm91bmRyZWN0X2NvbG91cl9leHRcIixcbiAgICBcImRyYXdfcm91bmRyZWN0X2V4dFwiLFxuICAgIFwiZHJhd19zZWxmXCIsXG4gICAgXCJkcmF3X3NldF9hbHBoYVwiLFxuICAgIFwiZHJhd19zZXRfY2lyY2xlX3ByZWNpc2lvblwiLFxuICAgIFwiZHJhd19zZXRfY29sb3JcIixcbiAgICBcImRyYXdfc2V0X2NvbG91clwiLFxuICAgIFwiZHJhd19zZXRfZm9udFwiLFxuICAgIFwiZHJhd19zZXRfaGFsaWduXCIsXG4gICAgXCJkcmF3X3NldF9saWdodGluZ1wiLFxuICAgIFwiZHJhd19zZXRfc3dmX2FhX2xldmVsXCIsXG4gICAgXCJkcmF3X3NldF92YWxpZ25cIixcbiAgICBcImRyYXdfc2tlbGV0b25cIixcbiAgICBcImRyYXdfc2tlbGV0b25fY29sbGlzaW9uXCIsXG4gICAgXCJkcmF3X3NrZWxldG9uX2luc3RhbmNlXCIsXG4gICAgXCJkcmF3X3NrZWxldG9uX3RpbWVcIixcbiAgICBcImRyYXdfc3ByaXRlXCIsXG4gICAgXCJkcmF3X3Nwcml0ZV9leHRcIixcbiAgICBcImRyYXdfc3ByaXRlX2dlbmVyYWxcIixcbiAgICBcImRyYXdfc3ByaXRlX3BhcnRcIixcbiAgICBcImRyYXdfc3ByaXRlX3BhcnRfZXh0XCIsXG4gICAgXCJkcmF3X3Nwcml0ZV9wb3NcIixcbiAgICBcImRyYXdfc3ByaXRlX3N0cmV0Y2hlZFwiLFxuICAgIFwiZHJhd19zcHJpdGVfc3RyZXRjaGVkX2V4dFwiLFxuICAgIFwiZHJhd19zcHJpdGVfdGlsZWRcIixcbiAgICBcImRyYXdfc3ByaXRlX3RpbGVkX2V4dFwiLFxuICAgIFwiZHJhd19zdXJmYWNlXCIsXG4gICAgXCJkcmF3X3N1cmZhY2VfZXh0XCIsXG4gICAgXCJkcmF3X3N1cmZhY2VfZ2VuZXJhbFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3BhcnRcIixcbiAgICBcImRyYXdfc3VyZmFjZV9wYXJ0X2V4dFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3N0cmV0Y2hlZFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3N0cmV0Y2hlZF9leHRcIixcbiAgICBcImRyYXdfc3VyZmFjZV90aWxlZFwiLFxuICAgIFwiZHJhd19zdXJmYWNlX3RpbGVkX2V4dFwiLFxuICAgIFwiZHJhd190ZXh0XCIsXG4gICAgXCJkcmF3X3RleHRfY29sb3JcIixcbiAgICBcImRyYXdfdGV4dF9jb2xvdXJcIixcbiAgICBcImRyYXdfdGV4dF9leHRcIixcbiAgICBcImRyYXdfdGV4dF9leHRfY29sb3JcIixcbiAgICBcImRyYXdfdGV4dF9leHRfY29sb3VyXCIsXG4gICAgXCJkcmF3X3RleHRfZXh0X3RyYW5zZm9ybWVkXCIsXG4gICAgXCJkcmF3X3RleHRfZXh0X3RyYW5zZm9ybWVkX2NvbG9yXCIsXG4gICAgXCJkcmF3X3RleHRfZXh0X3RyYW5zZm9ybWVkX2NvbG91clwiLFxuICAgIFwiZHJhd190ZXh0X3RyYW5zZm9ybWVkXCIsXG4gICAgXCJkcmF3X3RleHRfdHJhbnNmb3JtZWRfY29sb3JcIixcbiAgICBcImRyYXdfdGV4dF90cmFuc2Zvcm1lZF9jb2xvdXJcIixcbiAgICBcImRyYXdfdGV4dHVyZV9mbHVzaFwiLFxuICAgIFwiZHJhd190aWxlXCIsXG4gICAgXCJkcmF3X3RpbGVtYXBcIixcbiAgICBcImRyYXdfdHJpYW5nbGVcIixcbiAgICBcImRyYXdfdHJpYW5nbGVfY29sb3JcIixcbiAgICBcImRyYXdfdHJpYW5nbGVfY29sb3VyXCIsXG4gICAgXCJkcmF3X3ZlcnRleFwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfY29sb3JcIixcbiAgICBcImRyYXdfdmVydGV4X2NvbG91clwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfdGV4dHVyZVwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfdGV4dHVyZV9jb2xvclwiLFxuICAgIFwiZHJhd192ZXJ0ZXhfdGV4dHVyZV9jb2xvdXJcIixcbiAgICBcImRzX2V4aXN0c1wiLFxuICAgIFwiZHNfZ3JpZF9hZGRcIixcbiAgICBcImRzX2dyaWRfYWRkX2Rpc2tcIixcbiAgICBcImRzX2dyaWRfYWRkX2dyaWRfcmVnaW9uXCIsXG4gICAgXCJkc19ncmlkX2FkZF9yZWdpb25cIixcbiAgICBcImRzX2dyaWRfY2xlYXJcIixcbiAgICBcImRzX2dyaWRfY29weVwiLFxuICAgIFwiZHNfZ3JpZF9jcmVhdGVcIixcbiAgICBcImRzX2dyaWRfZGVzdHJveVwiLFxuICAgIFwiZHNfZ3JpZF9nZXRcIixcbiAgICBcImRzX2dyaWRfZ2V0X2Rpc2tfbWF4XCIsXG4gICAgXCJkc19ncmlkX2dldF9kaXNrX21lYW5cIixcbiAgICBcImRzX2dyaWRfZ2V0X2Rpc2tfbWluXCIsXG4gICAgXCJkc19ncmlkX2dldF9kaXNrX3N1bVwiLFxuICAgIFwiZHNfZ3JpZF9nZXRfbWF4XCIsXG4gICAgXCJkc19ncmlkX2dldF9tZWFuXCIsXG4gICAgXCJkc19ncmlkX2dldF9taW5cIixcbiAgICBcImRzX2dyaWRfZ2V0X3N1bVwiLFxuICAgIFwiZHNfZ3JpZF9oZWlnaHRcIixcbiAgICBcImRzX2dyaWRfbXVsdGlwbHlcIixcbiAgICBcImRzX2dyaWRfbXVsdGlwbHlfZGlza1wiLFxuICAgIFwiZHNfZ3JpZF9tdWx0aXBseV9ncmlkX3JlZ2lvblwiLFxuICAgIFwiZHNfZ3JpZF9tdWx0aXBseV9yZWdpb25cIixcbiAgICBcImRzX2dyaWRfcmVhZFwiLFxuICAgIFwiZHNfZ3JpZF9yZXNpemVcIixcbiAgICBcImRzX2dyaWRfc2V0XCIsXG4gICAgXCJkc19ncmlkX3NldF9kaXNrXCIsXG4gICAgXCJkc19ncmlkX3NldF9ncmlkX3JlZ2lvblwiLFxuICAgIFwiZHNfZ3JpZF9zZXRfcmVnaW9uXCIsXG4gICAgXCJkc19ncmlkX3NodWZmbGVcIixcbiAgICBcImRzX2dyaWRfc29ydFwiLFxuICAgIFwiZHNfZ3JpZF90b19tcF9ncmlkXCIsXG4gICAgXCJkc19ncmlkX3ZhbHVlX2Rpc2tfZXhpc3RzXCIsXG4gICAgXCJkc19ncmlkX3ZhbHVlX2Rpc2tfeFwiLFxuICAgIFwiZHNfZ3JpZF92YWx1ZV9kaXNrX3lcIixcbiAgICBcImRzX2dyaWRfdmFsdWVfZXhpc3RzXCIsXG4gICAgXCJkc19ncmlkX3ZhbHVlX3hcIixcbiAgICBcImRzX2dyaWRfdmFsdWVfeVwiLFxuICAgIFwiZHNfZ3JpZF93aWR0aFwiLFxuICAgIFwiZHNfZ3JpZF93cml0ZVwiLFxuICAgIFwiZHNfbGlzdF9hZGRcIixcbiAgICBcImRzX2xpc3RfY2xlYXJcIixcbiAgICBcImRzX2xpc3RfY29weVwiLFxuICAgIFwiZHNfbGlzdF9jcmVhdGVcIixcbiAgICBcImRzX2xpc3RfZGVsZXRlXCIsXG4gICAgXCJkc19saXN0X2Rlc3Ryb3lcIixcbiAgICBcImRzX2xpc3RfZW1wdHlcIixcbiAgICBcImRzX2xpc3RfZmluZF9pbmRleFwiLFxuICAgIFwiZHNfbGlzdF9maW5kX3ZhbHVlXCIsXG4gICAgXCJkc19saXN0X2luc2VydFwiLFxuICAgIFwiZHNfbGlzdF9pc19saXN0XCIsXG4gICAgXCJkc19saXN0X2lzX21hcFwiLFxuICAgIFwiZHNfbGlzdF9tYXJrX2FzX2xpc3RcIixcbiAgICBcImRzX2xpc3RfbWFya19hc19tYXBcIixcbiAgICBcImRzX2xpc3RfcmVhZFwiLFxuICAgIFwiZHNfbGlzdF9yZXBsYWNlXCIsXG4gICAgXCJkc19saXN0X3NldFwiLFxuICAgIFwiZHNfbGlzdF9zaHVmZmxlXCIsXG4gICAgXCJkc19saXN0X3NpemVcIixcbiAgICBcImRzX2xpc3Rfc29ydFwiLFxuICAgIFwiZHNfbGlzdF93cml0ZVwiLFxuICAgIFwiZHNfbWFwX2FkZFwiLFxuICAgIFwiZHNfbWFwX2FkZF9saXN0XCIsXG4gICAgXCJkc19tYXBfYWRkX21hcFwiLFxuICAgIFwiZHNfbWFwX2NsZWFyXCIsXG4gICAgXCJkc19tYXBfY29weVwiLFxuICAgIFwiZHNfbWFwX2NyZWF0ZVwiLFxuICAgIFwiZHNfbWFwX2RlbGV0ZVwiLFxuICAgIFwiZHNfbWFwX2Rlc3Ryb3lcIixcbiAgICBcImRzX21hcF9lbXB0eVwiLFxuICAgIFwiZHNfbWFwX2V4aXN0c1wiLFxuICAgIFwiZHNfbWFwX2ZpbmRfZmlyc3RcIixcbiAgICBcImRzX21hcF9maW5kX2xhc3RcIixcbiAgICBcImRzX21hcF9maW5kX25leHRcIixcbiAgICBcImRzX21hcF9maW5kX3ByZXZpb3VzXCIsXG4gICAgXCJkc19tYXBfZmluZF92YWx1ZVwiLFxuICAgIFwiZHNfbWFwX2lzX2xpc3RcIixcbiAgICBcImRzX21hcF9pc19tYXBcIixcbiAgICBcImRzX21hcF9rZXlzX3RvX2FycmF5XCIsXG4gICAgXCJkc19tYXBfcmVhZFwiLFxuICAgIFwiZHNfbWFwX3JlcGxhY2VcIixcbiAgICBcImRzX21hcF9yZXBsYWNlX2xpc3RcIixcbiAgICBcImRzX21hcF9yZXBsYWNlX21hcFwiLFxuICAgIFwiZHNfbWFwX3NlY3VyZV9sb2FkXCIsXG4gICAgXCJkc19tYXBfc2VjdXJlX2xvYWRfYnVmZmVyXCIsXG4gICAgXCJkc19tYXBfc2VjdXJlX3NhdmVcIixcbiAgICBcImRzX21hcF9zZWN1cmVfc2F2ZV9idWZmZXJcIixcbiAgICBcImRzX21hcF9zZXRcIixcbiAgICBcImRzX21hcF9zaXplXCIsXG4gICAgXCJkc19tYXBfdmFsdWVzX3RvX2FycmF5XCIsXG4gICAgXCJkc19tYXBfd3JpdGVcIixcbiAgICBcImRzX3ByaW9yaXR5X2FkZFwiLFxuICAgIFwiZHNfcHJpb3JpdHlfY2hhbmdlX3ByaW9yaXR5XCIsXG4gICAgXCJkc19wcmlvcml0eV9jbGVhclwiLFxuICAgIFwiZHNfcHJpb3JpdHlfY29weVwiLFxuICAgIFwiZHNfcHJpb3JpdHlfY3JlYXRlXCIsXG4gICAgXCJkc19wcmlvcml0eV9kZWxldGVfbWF4XCIsXG4gICAgXCJkc19wcmlvcml0eV9kZWxldGVfbWluXCIsXG4gICAgXCJkc19wcmlvcml0eV9kZWxldGVfdmFsdWVcIixcbiAgICBcImRzX3ByaW9yaXR5X2Rlc3Ryb3lcIixcbiAgICBcImRzX3ByaW9yaXR5X2VtcHR5XCIsXG4gICAgXCJkc19wcmlvcml0eV9maW5kX21heFwiLFxuICAgIFwiZHNfcHJpb3JpdHlfZmluZF9taW5cIixcbiAgICBcImRzX3ByaW9yaXR5X2ZpbmRfcHJpb3JpdHlcIixcbiAgICBcImRzX3ByaW9yaXR5X3JlYWRcIixcbiAgICBcImRzX3ByaW9yaXR5X3NpemVcIixcbiAgICBcImRzX3ByaW9yaXR5X3dyaXRlXCIsXG4gICAgXCJkc19xdWV1ZV9jbGVhclwiLFxuICAgIFwiZHNfcXVldWVfY29weVwiLFxuICAgIFwiZHNfcXVldWVfY3JlYXRlXCIsXG4gICAgXCJkc19xdWV1ZV9kZXF1ZXVlXCIsXG4gICAgXCJkc19xdWV1ZV9kZXN0cm95XCIsXG4gICAgXCJkc19xdWV1ZV9lbXB0eVwiLFxuICAgIFwiZHNfcXVldWVfZW5xdWV1ZVwiLFxuICAgIFwiZHNfcXVldWVfaGVhZFwiLFxuICAgIFwiZHNfcXVldWVfcmVhZFwiLFxuICAgIFwiZHNfcXVldWVfc2l6ZVwiLFxuICAgIFwiZHNfcXVldWVfdGFpbFwiLFxuICAgIFwiZHNfcXVldWVfd3JpdGVcIixcbiAgICBcImRzX3NldF9wcmVjaXNpb25cIixcbiAgICBcImRzX3N0YWNrX2NsZWFyXCIsXG4gICAgXCJkc19zdGFja19jb3B5XCIsXG4gICAgXCJkc19zdGFja19jcmVhdGVcIixcbiAgICBcImRzX3N0YWNrX2Rlc3Ryb3lcIixcbiAgICBcImRzX3N0YWNrX2VtcHR5XCIsXG4gICAgXCJkc19zdGFja19wb3BcIixcbiAgICBcImRzX3N0YWNrX3B1c2hcIixcbiAgICBcImRzX3N0YWNrX3JlYWRcIixcbiAgICBcImRzX3N0YWNrX3NpemVcIixcbiAgICBcImRzX3N0YWNrX3RvcFwiLFxuICAgIFwiZHNfc3RhY2tfd3JpdGVcIixcbiAgICBcImRzaW5cIixcbiAgICBcImR0YW5cIixcbiAgICBcImVmZmVjdF9jbGVhclwiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9hYm92ZVwiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9iZWxvd1wiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9kZXB0aFwiLFxuICAgIFwiZWZmZWN0X2NyZWF0ZV9sYXllclwiLFxuICAgIFwiZW52aXJvbm1lbnRfZ2V0X3ZhcmlhYmxlXCIsXG4gICAgXCJldmVudF9pbmhlcml0ZWRcIixcbiAgICBcImV2ZW50X3BlcmZvcm1cIixcbiAgICBcImV2ZW50X3BlcmZvcm1fYXN5bmNcIixcbiAgICBcImV2ZW50X3BlcmZvcm1fb2JqZWN0XCIsXG4gICAgXCJldmVudF91c2VyXCIsXG4gICAgXCJleGNlcHRpb25fdW5oYW5kbGVkX2hhbmRsZXJcIixcbiAgICBcImV4cFwiLFxuICAgIFwiZXh0ZW5zaW9uX2V4aXN0c1wiLFxuICAgIFwiZXh0ZW5zaW9uX2dldF9vcHRpb25fY291bnRcIixcbiAgICBcImV4dGVuc2lvbl9nZXRfb3B0aW9uX25hbWVzXCIsXG4gICAgXCJleHRlbnNpb25fZ2V0X29wdGlvbl92YWx1ZVwiLFxuICAgIFwiZXh0ZW5zaW9uX2dldF9vcHRpb25zXCIsXG4gICAgXCJleHRlbnNpb25fZ2V0X3ZlcnNpb25cIixcbiAgICBcImV4dGVybmFsX2NhbGxcIixcbiAgICBcImV4dGVybmFsX2RlZmluZVwiLFxuICAgIFwiZXh0ZXJuYWxfZnJlZVwiLFxuICAgIFwiZmlsZV9hdHRyaWJ1dGVzXCIsXG4gICAgXCJmaWxlX2Jpbl9jbG9zZVwiLFxuICAgIFwiZmlsZV9iaW5fb3BlblwiLFxuICAgIFwiZmlsZV9iaW5fcG9zaXRpb25cIixcbiAgICBcImZpbGVfYmluX3JlYWRfYnl0ZVwiLFxuICAgIFwiZmlsZV9iaW5fcmV3cml0ZVwiLFxuICAgIFwiZmlsZV9iaW5fc2Vla1wiLFxuICAgIFwiZmlsZV9iaW5fc2l6ZVwiLFxuICAgIFwiZmlsZV9iaW5fd3JpdGVfYnl0ZVwiLFxuICAgIFwiZmlsZV9jb3B5XCIsXG4gICAgXCJmaWxlX2RlbGV0ZVwiLFxuICAgIFwiZmlsZV9leGlzdHNcIixcbiAgICBcImZpbGVfZmluZF9jbG9zZVwiLFxuICAgIFwiZmlsZV9maW5kX2ZpcnN0XCIsXG4gICAgXCJmaWxlX2ZpbmRfbmV4dFwiLFxuICAgIFwiZmlsZV9yZW5hbWVcIixcbiAgICBcImZpbGVfdGV4dF9jbG9zZVwiLFxuICAgIFwiZmlsZV90ZXh0X2VvZlwiLFxuICAgIFwiZmlsZV90ZXh0X2VvbG5cIixcbiAgICBcImZpbGVfdGV4dF9vcGVuX2FwcGVuZFwiLFxuICAgIFwiZmlsZV90ZXh0X29wZW5fZnJvbV9zdHJpbmdcIixcbiAgICBcImZpbGVfdGV4dF9vcGVuX3JlYWRcIixcbiAgICBcImZpbGVfdGV4dF9vcGVuX3dyaXRlXCIsXG4gICAgXCJmaWxlX3RleHRfcmVhZF9yZWFsXCIsXG4gICAgXCJmaWxlX3RleHRfcmVhZF9zdHJpbmdcIixcbiAgICBcImZpbGVfdGV4dF9yZWFkbG5cIixcbiAgICBcImZpbGVfdGV4dF93cml0ZV9yZWFsXCIsXG4gICAgXCJmaWxlX3RleHRfd3JpdGVfc3RyaW5nXCIsXG4gICAgXCJmaWxlX3RleHRfd3JpdGVsblwiLFxuICAgIFwiZmlsZW5hbWVfY2hhbmdlX2V4dFwiLFxuICAgIFwiZmlsZW5hbWVfZGlyXCIsXG4gICAgXCJmaWxlbmFtZV9kcml2ZVwiLFxuICAgIFwiZmlsZW5hbWVfZXh0XCIsXG4gICAgXCJmaWxlbmFtZV9uYW1lXCIsXG4gICAgXCJmaWxlbmFtZV9wYXRoXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwiZm9udF9hZGRcIixcbiAgICBcImZvbnRfYWRkX2VuYWJsZV9hYVwiLFxuICAgIFwiZm9udF9hZGRfZ2V0X2VuYWJsZV9hYVwiLFxuICAgIFwiZm9udF9hZGRfc3ByaXRlXCIsXG4gICAgXCJmb250X2FkZF9zcHJpdGVfZXh0XCIsXG4gICAgXCJmb250X2NhY2hlX2dseXBoXCIsXG4gICAgXCJmb250X2RlbGV0ZVwiLFxuICAgIFwiZm9udF9lbmFibGVfZWZmZWN0c1wiLFxuICAgIFwiZm9udF9lbmFibGVfc2RmXCIsXG4gICAgXCJmb250X2V4aXN0c1wiLFxuICAgIFwiZm9udF9nZXRfYm9sZFwiLFxuICAgIFwiZm9udF9nZXRfZmlyc3RcIixcbiAgICBcImZvbnRfZ2V0X2ZvbnRuYW1lXCIsXG4gICAgXCJmb250X2dldF9pbmZvXCIsXG4gICAgXCJmb250X2dldF9pdGFsaWNcIixcbiAgICBcImZvbnRfZ2V0X2xhc3RcIixcbiAgICBcImZvbnRfZ2V0X25hbWVcIixcbiAgICBcImZvbnRfZ2V0X3NkZl9lbmFibGVkXCIsXG4gICAgXCJmb250X2dldF9zZGZfc3ByZWFkXCIsXG4gICAgXCJmb250X2dldF9zaXplXCIsXG4gICAgXCJmb250X2dldF90ZXh0dXJlXCIsXG4gICAgXCJmb250X2dldF91dnNcIixcbiAgICBcImZvbnRfcmVwbGFjZV9zcHJpdGVcIixcbiAgICBcImZvbnRfcmVwbGFjZV9zcHJpdGVfZXh0XCIsXG4gICAgXCJmb250X3NkZl9zcHJlYWRcIixcbiAgICBcImZvbnRfc2V0X2NhY2hlX3NpemVcIixcbiAgICBcImZyYWNcIixcbiAgICBcImZ4X2NyZWF0ZVwiLFxuICAgIFwiZnhfZ2V0X25hbWVcIixcbiAgICBcImZ4X2dldF9wYXJhbWV0ZXJcIixcbiAgICBcImZ4X2dldF9wYXJhbWV0ZXJfbmFtZXNcIixcbiAgICBcImZ4X2dldF9wYXJhbWV0ZXJzXCIsXG4gICAgXCJmeF9nZXRfc2luZ2xlX2xheWVyXCIsXG4gICAgXCJmeF9zZXRfcGFyYW1ldGVyXCIsXG4gICAgXCJmeF9zZXRfcGFyYW1ldGVyc1wiLFxuICAgIFwiZnhfc2V0X3NpbmdsZV9sYXllclwiLFxuICAgIFwiZ2FtZV9jaGFuZ2VcIixcbiAgICBcImdhbWVfZW5kXCIsXG4gICAgXCJnYW1lX2dldF9zcGVlZFwiLFxuICAgIFwiZ2FtZV9sb2FkXCIsXG4gICAgXCJnYW1lX2xvYWRfYnVmZmVyXCIsXG4gICAgXCJnYW1lX3Jlc3RhcnRcIixcbiAgICBcImdhbWVfc2F2ZVwiLFxuICAgIFwiZ2FtZV9zYXZlX2J1ZmZlclwiLFxuICAgIFwiZ2FtZV9zZXRfc3BlZWRcIixcbiAgICBcImdhbWVwYWRfYXhpc19jb3VudFwiLFxuICAgIFwiZ2FtZXBhZF9heGlzX3ZhbHVlXCIsXG4gICAgXCJnYW1lcGFkX2J1dHRvbl9jaGVja1wiLFxuICAgIFwiZ2FtZXBhZF9idXR0b25fY2hlY2tfcHJlc3NlZFwiLFxuICAgIFwiZ2FtZXBhZF9idXR0b25fY2hlY2tfcmVsZWFzZWRcIixcbiAgICBcImdhbWVwYWRfYnV0dG9uX2NvdW50XCIsXG4gICAgXCJnYW1lcGFkX2J1dHRvbl92YWx1ZVwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfYXhpc19kZWFkem9uZVwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfYnV0dG9uX3RocmVzaG9sZFwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfZGVzY3JpcHRpb25cIixcbiAgICBcImdhbWVwYWRfZ2V0X2RldmljZV9jb3VudFwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfZ3VpZFwiLFxuICAgIFwiZ2FtZXBhZF9nZXRfbWFwcGluZ1wiLFxuICAgIFwiZ2FtZXBhZF9nZXRfb3B0aW9uXCIsXG4gICAgXCJnYW1lcGFkX2hhdF9jb3VudFwiLFxuICAgIFwiZ2FtZXBhZF9oYXRfdmFsdWVcIixcbiAgICBcImdhbWVwYWRfaXNfY29ubmVjdGVkXCIsXG4gICAgXCJnYW1lcGFkX2lzX3N1cHBvcnRlZFwiLFxuICAgIFwiZ2FtZXBhZF9yZW1vdmVfbWFwcGluZ1wiLFxuICAgIFwiZ2FtZXBhZF9zZXRfYXhpc19kZWFkem9uZVwiLFxuICAgIFwiZ2FtZXBhZF9zZXRfYnV0dG9uX3RocmVzaG9sZFwiLFxuICAgIFwiZ2FtZXBhZF9zZXRfY29sb3JcIixcbiAgICBcImdhbWVwYWRfc2V0X2NvbG91clwiLFxuICAgIFwiZ2FtZXBhZF9zZXRfb3B0aW9uXCIsXG4gICAgXCJnYW1lcGFkX3NldF92aWJyYXRpb25cIixcbiAgICBcImdhbWVwYWRfdGVzdF9tYXBwaW5nXCIsXG4gICAgXCJnY19jb2xsZWN0XCIsXG4gICAgXCJnY19lbmFibGVcIixcbiAgICBcImdjX2dldF9zdGF0c1wiLFxuICAgIFwiZ2NfZ2V0X3RhcmdldF9mcmFtZV90aW1lXCIsXG4gICAgXCJnY19pc19lbmFibGVkXCIsXG4gICAgXCJnY190YXJnZXRfZnJhbWVfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9kb3VibGVfdGFwX2Rpc3RhbmNlXCIsXG4gICAgXCJnZXN0dXJlX2RvdWJsZV90YXBfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9kcmFnX2Rpc3RhbmNlXCIsXG4gICAgXCJnZXN0dXJlX2RyYWdfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9mbGlja19zcGVlZFwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfZG91YmxlX3RhcF9kaXN0YW5jZVwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfZG91YmxlX3RhcF90aW1lXCIsXG4gICAgXCJnZXN0dXJlX2dldF9kcmFnX2Rpc3RhbmNlXCIsXG4gICAgXCJnZXN0dXJlX2dldF9kcmFnX3RpbWVcIixcbiAgICBcImdlc3R1cmVfZ2V0X2ZsaWNrX3NwZWVkXCIsXG4gICAgXCJnZXN0dXJlX2dldF9waW5jaF9hbmdsZV9hd2F5XCIsXG4gICAgXCJnZXN0dXJlX2dldF9waW5jaF9hbmdsZV90b3dhcmRzXCIsXG4gICAgXCJnZXN0dXJlX2dldF9waW5jaF9kaXN0YW5jZVwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfcm90YXRlX2FuZ2xlXCIsXG4gICAgXCJnZXN0dXJlX2dldF9yb3RhdGVfdGltZVwiLFxuICAgIFwiZ2VzdHVyZV9nZXRfdGFwX2NvdW50XCIsXG4gICAgXCJnZXN0dXJlX3BpbmNoX2FuZ2xlX2F3YXlcIixcbiAgICBcImdlc3R1cmVfcGluY2hfYW5nbGVfdG93YXJkc1wiLFxuICAgIFwiZ2VzdHVyZV9waW5jaF9kaXN0YW5jZVwiLFxuICAgIFwiZ2VzdHVyZV9yb3RhdGVfYW5nbGVcIixcbiAgICBcImdlc3R1cmVfcm90YXRlX3RpbWVcIixcbiAgICBcImdlc3R1cmVfdGFwX2NvdW50XCIsXG4gICAgXCJnZXRfaW50ZWdlclwiLFxuICAgIFwiZ2V0X2ludGVnZXJfYXN5bmNcIixcbiAgICBcImdldF9sb2dpbl9hc3luY1wiLFxuICAgIFwiZ2V0X29wZW5fZmlsZW5hbWVcIixcbiAgICBcImdldF9vcGVuX2ZpbGVuYW1lX2V4dFwiLFxuICAgIFwiZ2V0X3NhdmVfZmlsZW5hbWVcIixcbiAgICBcImdldF9zYXZlX2ZpbGVuYW1lX2V4dFwiLFxuICAgIFwiZ2V0X3N0cmluZ1wiLFxuICAgIFwiZ2V0X3N0cmluZ19hc3luY1wiLFxuICAgIFwiZ2V0X3RpbWVyXCIsXG4gICAgXCJnaWZfYWRkX3N1cmZhY2VcIixcbiAgICBcImdpZl9vcGVuXCIsXG4gICAgXCJnaWZfc2F2ZVwiLFxuICAgIFwiZ2lmX3NhdmVfYnVmZmVyXCIsXG4gICAgXCJnbWxfcHJhZ21hXCIsXG4gICAgXCJnbWxfcmVsZWFzZV9tb2RlXCIsXG4gICAgXCJncHVfZ2V0X2FscGhhdGVzdGVuYWJsZVwiLFxuICAgIFwiZ3B1X2dldF9hbHBoYXRlc3RyZWZcIixcbiAgICBcImdwdV9nZXRfYmxlbmRlbmFibGVcIixcbiAgICBcImdwdV9nZXRfYmxlbmRtb2RlXCIsXG4gICAgXCJncHVfZ2V0X2JsZW5kbW9kZV9kZXN0XCIsXG4gICAgXCJncHVfZ2V0X2JsZW5kbW9kZV9kZXN0YWxwaGFcIixcbiAgICBcImdwdV9nZXRfYmxlbmRtb2RlX2V4dFwiLFxuICAgIFwiZ3B1X2dldF9ibGVuZG1vZGVfZXh0X3NlcGFscGhhXCIsXG4gICAgXCJncHVfZ2V0X2JsZW5kbW9kZV9zcmNcIixcbiAgICBcImdwdV9nZXRfYmxlbmRtb2RlX3NyY2FscGhhXCIsXG4gICAgXCJncHVfZ2V0X2NvbG9yd3JpdGVlbmFibGVcIixcbiAgICBcImdwdV9nZXRfY29sb3Vyd3JpdGVlbmFibGVcIixcbiAgICBcImdwdV9nZXRfY3VsbG1vZGVcIixcbiAgICBcImdwdV9nZXRfZGVwdGhcIixcbiAgICBcImdwdV9nZXRfZm9nXCIsXG4gICAgXCJncHVfZ2V0X3N0YXRlXCIsXG4gICAgXCJncHVfZ2V0X3RleF9maWx0ZXJcIixcbiAgICBcImdwdV9nZXRfdGV4X2ZpbHRlcl9leHRcIixcbiAgICBcImdwdV9nZXRfdGV4X21heF9hbmlzb1wiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWF4X2FuaXNvX2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWF4X21pcFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWF4X21pcF9leHRcIixcbiAgICBcImdwdV9nZXRfdGV4X21pbl9taXBcIixcbiAgICBcImdwdV9nZXRfdGV4X21pbl9taXBfZXh0XCIsXG4gICAgXCJncHVfZ2V0X3RleF9taXBfYmlhc1wiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWlwX2JpYXNfZXh0XCIsXG4gICAgXCJncHVfZ2V0X3RleF9taXBfZW5hYmxlXCIsXG4gICAgXCJncHVfZ2V0X3RleF9taXBfZW5hYmxlX2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWlwX2ZpbHRlclwiLFxuICAgIFwiZ3B1X2dldF90ZXhfbWlwX2ZpbHRlcl9leHRcIixcbiAgICBcImdwdV9nZXRfdGV4X3JlcGVhdFwiLFxuICAgIFwiZ3B1X2dldF90ZXhfcmVwZWF0X2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhmaWx0ZXJcIixcbiAgICBcImdwdV9nZXRfdGV4ZmlsdGVyX2V4dFwiLFxuICAgIFwiZ3B1X2dldF90ZXhyZXBlYXRcIixcbiAgICBcImdwdV9nZXRfdGV4cmVwZWF0X2V4dFwiLFxuICAgIFwiZ3B1X2dldF96ZnVuY1wiLFxuICAgIFwiZ3B1X2dldF96dGVzdGVuYWJsZVwiLFxuICAgIFwiZ3B1X2dldF96d3JpdGVlbmFibGVcIixcbiAgICBcImdwdV9wb3Bfc3RhdGVcIixcbiAgICBcImdwdV9wdXNoX3N0YXRlXCIsXG4gICAgXCJncHVfc2V0X2FscGhhdGVzdGVuYWJsZVwiLFxuICAgIFwiZ3B1X3NldF9hbHBoYXRlc3RyZWZcIixcbiAgICBcImdwdV9zZXRfYmxlbmRlbmFibGVcIixcbiAgICBcImdwdV9zZXRfYmxlbmRtb2RlXCIsXG4gICAgXCJncHVfc2V0X2JsZW5kbW9kZV9leHRcIixcbiAgICBcImdwdV9zZXRfYmxlbmRtb2RlX2V4dF9zZXBhbHBoYVwiLFxuICAgIFwiZ3B1X3NldF9jb2xvcndyaXRlZW5hYmxlXCIsXG4gICAgXCJncHVfc2V0X2NvbG91cndyaXRlZW5hYmxlXCIsXG4gICAgXCJncHVfc2V0X2N1bGxtb2RlXCIsXG4gICAgXCJncHVfc2V0X2RlcHRoXCIsXG4gICAgXCJncHVfc2V0X2ZvZ1wiLFxuICAgIFwiZ3B1X3NldF9zdGF0ZVwiLFxuICAgIFwiZ3B1X3NldF90ZXhfZmlsdGVyXCIsXG4gICAgXCJncHVfc2V0X3RleF9maWx0ZXJfZXh0XCIsXG4gICAgXCJncHVfc2V0X3RleF9tYXhfYW5pc29cIixcbiAgICBcImdwdV9zZXRfdGV4X21heF9hbmlzb19leHRcIixcbiAgICBcImdwdV9zZXRfdGV4X21heF9taXBcIixcbiAgICBcImdwdV9zZXRfdGV4X21heF9taXBfZXh0XCIsXG4gICAgXCJncHVfc2V0X3RleF9taW5fbWlwXCIsXG4gICAgXCJncHVfc2V0X3RleF9taW5fbWlwX2V4dFwiLFxuICAgIFwiZ3B1X3NldF90ZXhfbWlwX2JpYXNcIixcbiAgICBcImdwdV9zZXRfdGV4X21pcF9iaWFzX2V4dFwiLFxuICAgIFwiZ3B1X3NldF90ZXhfbWlwX2VuYWJsZVwiLFxuICAgIFwiZ3B1X3NldF90ZXhfbWlwX2VuYWJsZV9leHRcIixcbiAgICBcImdwdV9zZXRfdGV4X21pcF9maWx0ZXJcIixcbiAgICBcImdwdV9zZXRfdGV4X21pcF9maWx0ZXJfZXh0XCIsXG4gICAgXCJncHVfc2V0X3RleF9yZXBlYXRcIixcbiAgICBcImdwdV9zZXRfdGV4X3JlcGVhdF9leHRcIixcbiAgICBcImdwdV9zZXRfdGV4ZmlsdGVyXCIsXG4gICAgXCJncHVfc2V0X3RleGZpbHRlcl9leHRcIixcbiAgICBcImdwdV9zZXRfdGV4cmVwZWF0XCIsXG4gICAgXCJncHVfc2V0X3RleHJlcGVhdF9leHRcIixcbiAgICBcImdwdV9zZXRfemZ1bmNcIixcbiAgICBcImdwdV9zZXRfenRlc3RlbmFibGVcIixcbiAgICBcImdwdV9zZXRfendyaXRlZW5hYmxlXCIsXG4gICAgXCJoYW5kbGVfcGFyc2VcIixcbiAgICBcImhpZ2hzY29yZV9hZGRcIixcbiAgICBcImhpZ2hzY29yZV9jbGVhclwiLFxuICAgIFwiaGlnaHNjb3JlX25hbWVcIixcbiAgICBcImhpZ2hzY29yZV92YWx1ZVwiLFxuICAgIFwiaHR0cF9nZXRcIixcbiAgICBcImh0dHBfZ2V0X2ZpbGVcIixcbiAgICBcImh0dHBfZ2V0X3JlcXVlc3RfY3Jvc3NvcmlnaW5cIixcbiAgICBcImh0dHBfcG9zdF9zdHJpbmdcIixcbiAgICBcImh0dHBfcmVxdWVzdFwiLFxuICAgIFwiaHR0cF9zZXRfcmVxdWVzdF9jcm9zc29yaWdpblwiLFxuICAgIFwiaWFwX2FjcXVpcmVcIixcbiAgICBcImlhcF9hY3RpdmF0ZVwiLFxuICAgIFwiaWFwX2NvbnN1bWVcIixcbiAgICBcImlhcF9lbnVtZXJhdGVfcHJvZHVjdHNcIixcbiAgICBcImlhcF9wcm9kdWN0X2RldGFpbHNcIixcbiAgICBcImlhcF9wdXJjaGFzZV9kZXRhaWxzXCIsXG4gICAgXCJpYXBfcmVzdG9yZV9hbGxcIixcbiAgICBcImlhcF9zdGF0dXNcIixcbiAgICBcImluaV9jbG9zZVwiLFxuICAgIFwiaW5pX2tleV9kZWxldGVcIixcbiAgICBcImluaV9rZXlfZXhpc3RzXCIsXG4gICAgXCJpbmlfb3BlblwiLFxuICAgIFwiaW5pX29wZW5fZnJvbV9zdHJpbmdcIixcbiAgICBcImluaV9yZWFkX3JlYWxcIixcbiAgICBcImluaV9yZWFkX3N0cmluZ1wiLFxuICAgIFwiaW5pX3NlY3Rpb25fZGVsZXRlXCIsXG4gICAgXCJpbmlfc2VjdGlvbl9leGlzdHNcIixcbiAgICBcImluaV93cml0ZV9yZWFsXCIsXG4gICAgXCJpbmlfd3JpdGVfc3RyaW5nXCIsXG4gICAgXCJpbnN0YW5jZV9hY3RpdmF0ZV9hbGxcIixcbiAgICBcImluc3RhbmNlX2FjdGl2YXRlX2xheWVyXCIsXG4gICAgXCJpbnN0YW5jZV9hY3RpdmF0ZV9vYmplY3RcIixcbiAgICBcImluc3RhbmNlX2FjdGl2YXRlX3JlZ2lvblwiLFxuICAgIFwiaW5zdGFuY2VfY2hhbmdlXCIsXG4gICAgXCJpbnN0YW5jZV9jb3B5XCIsXG4gICAgXCJpbnN0YW5jZV9jcmVhdGVfZGVwdGhcIixcbiAgICBcImluc3RhbmNlX2NyZWF0ZV9sYXllclwiLFxuICAgIFwiaW5zdGFuY2VfZGVhY3RpdmF0ZV9hbGxcIixcbiAgICBcImluc3RhbmNlX2RlYWN0aXZhdGVfbGF5ZXJcIixcbiAgICBcImluc3RhbmNlX2RlYWN0aXZhdGVfb2JqZWN0XCIsXG4gICAgXCJpbnN0YW5jZV9kZWFjdGl2YXRlX3JlZ2lvblwiLFxuICAgIFwiaW5zdGFuY2VfZGVzdHJveVwiLFxuICAgIFwiaW5zdGFuY2VfZXhpc3RzXCIsXG4gICAgXCJpbnN0YW5jZV9maW5kXCIsXG4gICAgXCJpbnN0YW5jZV9mdXJ0aGVzdFwiLFxuICAgIFwiaW5zdGFuY2VfaWRfZ2V0XCIsXG4gICAgXCJpbnN0YW5jZV9uZWFyZXN0XCIsXG4gICAgXCJpbnN0YW5jZV9udW1iZXJcIixcbiAgICBcImluc3RhbmNlX3BsYWNlXCIsXG4gICAgXCJpbnN0YW5jZV9wbGFjZV9saXN0XCIsXG4gICAgXCJpbnN0YW5jZV9wb3NpdGlvblwiLFxuICAgIFwiaW5zdGFuY2VfcG9zaXRpb25fbGlzdFwiLFxuICAgIFwiaW5zdGFuY2VvZlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcImlvX2NsZWFyXCIsXG4gICAgXCJpcmFuZG9tXCIsXG4gICAgXCJpcmFuZG9tX3JhbmdlXCIsXG4gICAgXCJpc19hcnJheVwiLFxuICAgIFwiaXNfYm9vbFwiLFxuICAgIFwiaXNfY2FsbGFibGVcIixcbiAgICBcImlzX2RlYnVnX292ZXJsYXlfb3BlblwiLFxuICAgIFwiaXNfaGFuZGxlXCIsXG4gICAgXCJpc19pbmZpbml0eVwiLFxuICAgIFwiaXNfaW5zdGFuY2VvZlwiLFxuICAgIFwiaXNfaW50MzJcIixcbiAgICBcImlzX2ludDY0XCIsXG4gICAgXCJpc19rZXlib2FyZF91c2VkX2RlYnVnX292ZXJsYXlcIixcbiAgICBcImlzX21ldGhvZFwiLFxuICAgIFwiaXNfbW91c2Vfb3Zlcl9kZWJ1Z19vdmVybGF5XCIsXG4gICAgXCJpc19uYW5cIixcbiAgICBcImlzX251bWVyaWNcIixcbiAgICBcImlzX3B0clwiLFxuICAgIFwiaXNfcmVhbFwiLFxuICAgIFwiaXNfc3RyaW5nXCIsXG4gICAgXCJpc19zdHJ1Y3RcIixcbiAgICBcImlzX3VuZGVmaW5lZFwiLFxuICAgIFwianNvbl9kZWNvZGVcIixcbiAgICBcImpzb25fZW5jb2RlXCIsXG4gICAgXCJqc29uX3BhcnNlXCIsXG4gICAgXCJqc29uX3N0cmluZ2lmeVwiLFxuICAgIFwia2V5Ym9hcmRfY2hlY2tcIixcbiAgICBcImtleWJvYXJkX2NoZWNrX2RpcmVjdFwiLFxuICAgIFwia2V5Ym9hcmRfY2hlY2tfcHJlc3NlZFwiLFxuICAgIFwia2V5Ym9hcmRfY2hlY2tfcmVsZWFzZWRcIixcbiAgICBcImtleWJvYXJkX2NsZWFyXCIsXG4gICAgXCJrZXlib2FyZF9nZXRfbWFwXCIsXG4gICAgXCJrZXlib2FyZF9nZXRfbnVtbG9ja1wiLFxuICAgIFwia2V5Ym9hcmRfa2V5X3ByZXNzXCIsXG4gICAgXCJrZXlib2FyZF9rZXlfcmVsZWFzZVwiLFxuICAgIFwia2V5Ym9hcmRfc2V0X21hcFwiLFxuICAgIFwia2V5Ym9hcmRfc2V0X251bWxvY2tcIixcbiAgICBcImtleWJvYXJkX3Vuc2V0X21hcFwiLFxuICAgIFwia2V5Ym9hcmRfdmlydHVhbF9oZWlnaHRcIixcbiAgICBcImtleWJvYXJkX3ZpcnR1YWxfaGlkZVwiLFxuICAgIFwia2V5Ym9hcmRfdmlydHVhbF9zaG93XCIsXG4gICAgXCJrZXlib2FyZF92aXJ0dWFsX3N0YXR1c1wiLFxuICAgIFwibGF5ZXJfYWRkX2luc3RhbmNlXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2FscGhhXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2JsZW5kXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2NoYW5nZVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9jcmVhdGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZGVzdHJveVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9leGlzdHNcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X2FscGhhXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF9ibGVuZFwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9nZXRfaHRpbGVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF9pZFwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9nZXRfaW5kZXhcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3NwZWVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF9zcHJpdGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3N0cmV0Y2hcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3Zpc2libGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfZ2V0X3Z0aWxlZFwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9nZXRfeHNjYWxlXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2dldF95c2NhbGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfaHRpbGVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX2luZGV4XCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3NwZWVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3Nwcml0ZVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF9zdHJldGNoXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3Zpc2libGVcIixcbiAgICBcImxheWVyX2JhY2tncm91bmRfdnRpbGVkXCIsXG4gICAgXCJsYXllcl9iYWNrZ3JvdW5kX3hzY2FsZVwiLFxuICAgIFwibGF5ZXJfYmFja2dyb3VuZF95c2NhbGVcIixcbiAgICBcImxheWVyX2NsZWFyX2Z4XCIsXG4gICAgXCJsYXllcl9jcmVhdGVcIixcbiAgICBcImxheWVyX2RlcHRoXCIsXG4gICAgXCJsYXllcl9kZXN0cm95XCIsXG4gICAgXCJsYXllcl9kZXN0cm95X2luc3RhbmNlc1wiLFxuICAgIFwibGF5ZXJfZWxlbWVudF9tb3ZlXCIsXG4gICAgXCJsYXllcl9lbmFibGVfZnhcIixcbiAgICBcImxheWVyX2V4aXN0c1wiLFxuICAgIFwibGF5ZXJfZm9yY2VfZHJhd19kZXB0aFwiLFxuICAgIFwibGF5ZXJfZnhfaXNfZW5hYmxlZFwiLFxuICAgIFwibGF5ZXJfZ2V0X2FsbFwiLFxuICAgIFwibGF5ZXJfZ2V0X2FsbF9lbGVtZW50c1wiLFxuICAgIFwibGF5ZXJfZ2V0X2RlcHRoXCIsXG4gICAgXCJsYXllcl9nZXRfZWxlbWVudF9sYXllclwiLFxuICAgIFwibGF5ZXJfZ2V0X2VsZW1lbnRfdHlwZVwiLFxuICAgIFwibGF5ZXJfZ2V0X2ZvcmNlZF9kZXB0aFwiLFxuICAgIFwibGF5ZXJfZ2V0X2Z4XCIsXG4gICAgXCJsYXllcl9nZXRfaHNwZWVkXCIsXG4gICAgXCJsYXllcl9nZXRfaWRcIixcbiAgICBcImxheWVyX2dldF9pZF9hdF9kZXB0aFwiLFxuICAgIFwibGF5ZXJfZ2V0X25hbWVcIixcbiAgICBcImxheWVyX2dldF9zY3JpcHRfYmVnaW5cIixcbiAgICBcImxheWVyX2dldF9zY3JpcHRfZW5kXCIsXG4gICAgXCJsYXllcl9nZXRfc2hhZGVyXCIsXG4gICAgXCJsYXllcl9nZXRfdGFyZ2V0X3Jvb21cIixcbiAgICBcImxheWVyX2dldF92aXNpYmxlXCIsXG4gICAgXCJsYXllcl9nZXRfdnNwZWVkXCIsXG4gICAgXCJsYXllcl9nZXRfeFwiLFxuICAgIFwibGF5ZXJfZ2V0X3lcIixcbiAgICBcImxheWVyX2hhc19pbnN0YW5jZVwiLFxuICAgIFwibGF5ZXJfaHNwZWVkXCIsXG4gICAgXCJsYXllcl9pbnN0YW5jZV9nZXRfaW5zdGFuY2VcIixcbiAgICBcImxheWVyX2lzX2RyYXdfZGVwdGhfZm9yY2VkXCIsXG4gICAgXCJsYXllcl9yZXNldF90YXJnZXRfcm9vbVwiLFxuICAgIFwibGF5ZXJfc2NyaXB0X2JlZ2luXCIsXG4gICAgXCJsYXllcl9zY3JpcHRfZW5kXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9hbmdsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfY3JlYXRlXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9kZXN0cm95XCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9leGlzdHNcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9hbmdsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfZ2V0X2hlYWRkaXJcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9oZWFkcG9zXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9nZXRfaW5zdGFuY2VcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9sZW5ndGhcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF9zZXF1ZW5jZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfZ2V0X3NwZWVkc2NhbGVcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2dldF94XCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9nZXRfeHNjYWxlXCIsXG4gICAgXCJsYXllcl9zZXF1ZW5jZV9nZXRfeVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfZ2V0X3lzY2FsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfaGVhZGRpclwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfaGVhZHBvc1wiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfaXNfZmluaXNoZWRcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX2lzX3BhdXNlZFwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfcGF1c2VcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3BsYXlcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3NwZWVkc2NhbGVcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3hcIixcbiAgICBcImxheWVyX3NlcXVlbmNlX3hzY2FsZVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfeVwiLFxuICAgIFwibGF5ZXJfc2VxdWVuY2VfeXNjYWxlXCIsXG4gICAgXCJsYXllcl9zZXRfZnhcIixcbiAgICBcImxheWVyX3NldF90YXJnZXRfcm9vbVwiLFxuICAgIFwibGF5ZXJfc2V0X3Zpc2libGVcIixcbiAgICBcImxheWVyX3NoYWRlclwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2FscGhhXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfYW5nbGVcIixcbiAgICBcImxheWVyX3Nwcml0ZV9ibGVuZFwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2NoYW5nZVwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2NyZWF0ZVwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX2Rlc3Ryb3lcIixcbiAgICBcImxheWVyX3Nwcml0ZV9leGlzdHNcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfYWxwaGFcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfYW5nbGVcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfYmxlbmRcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfaWRcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfaW5kZXhcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfc3BlZWRcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfc3ByaXRlXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfZ2V0X3hcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfeHNjYWxlXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfZ2V0X3lcIixcbiAgICBcImxheWVyX3Nwcml0ZV9nZXRfeXNjYWxlXCIsXG4gICAgXCJsYXllcl9zcHJpdGVfaW5kZXhcIixcbiAgICBcImxheWVyX3Nwcml0ZV9zcGVlZFwiLFxuICAgIFwibGF5ZXJfc3ByaXRlX3hcIixcbiAgICBcImxheWVyX3Nwcml0ZV94c2NhbGVcIixcbiAgICBcImxheWVyX3Nwcml0ZV95XCIsXG4gICAgXCJsYXllcl9zcHJpdGVfeXNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlX2FscGhhXCIsXG4gICAgXCJsYXllcl90aWxlX2JsZW5kXCIsXG4gICAgXCJsYXllcl90aWxlX2NoYW5nZVwiLFxuICAgIFwibGF5ZXJfdGlsZV9jcmVhdGVcIixcbiAgICBcImxheWVyX3RpbGVfZGVzdHJveVwiLFxuICAgIFwibGF5ZXJfdGlsZV9leGlzdHNcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X2FscGhhXCIsXG4gICAgXCJsYXllcl90aWxlX2dldF9ibGVuZFwiLFxuICAgIFwibGF5ZXJfdGlsZV9nZXRfcmVnaW9uXCIsXG4gICAgXCJsYXllcl90aWxlX2dldF9zcHJpdGVcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X3Zpc2libGVcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X3hcIixcbiAgICBcImxheWVyX3RpbGVfZ2V0X3hzY2FsZVwiLFxuICAgIFwibGF5ZXJfdGlsZV9nZXRfeVwiLFxuICAgIFwibGF5ZXJfdGlsZV9nZXRfeXNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlX3JlZ2lvblwiLFxuICAgIFwibGF5ZXJfdGlsZV92aXNpYmxlXCIsXG4gICAgXCJsYXllcl90aWxlX3hcIixcbiAgICBcImxheWVyX3RpbGVfeHNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlX3lcIixcbiAgICBcImxheWVyX3RpbGVfeXNjYWxlXCIsXG4gICAgXCJsYXllcl90aWxlbWFwX2NyZWF0ZVwiLFxuICAgIFwibGF5ZXJfdGlsZW1hcF9kZXN0cm95XCIsXG4gICAgXCJsYXllcl90aWxlbWFwX2V4aXN0c1wiLFxuICAgIFwibGF5ZXJfdGlsZW1hcF9nZXRfaWRcIixcbiAgICBcImxheWVyX3ZzcGVlZFwiLFxuICAgIFwibGF5ZXJfeFwiLFxuICAgIFwibGF5ZXJfeVwiLFxuICAgIFwibGVuZ3RoZGlyX3hcIixcbiAgICBcImxlbmd0aGRpcl95XCIsXG4gICAgXCJsZXJwXCIsXG4gICAgXCJsaW5fdG9fZGJcIixcbiAgICBcImxuXCIsXG4gICAgXCJsb2FkX2NzdlwiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvZzJcIixcbiAgICBcImxvZ25cIixcbiAgICBcIm1ha2VfY29sb3JfaHN2XCIsXG4gICAgXCJtYWtlX2NvbG9yX3JnYlwiLFxuICAgIFwibWFrZV9jb2xvdXJfaHN2XCIsXG4gICAgXCJtYWtlX2NvbG91cl9yZ2JcIixcbiAgICBcIm1hdGhfZ2V0X2Vwc2lsb25cIixcbiAgICBcIm1hdGhfc2V0X2Vwc2lsb25cIixcbiAgICBcIm1hdHJpeF9idWlsZFwiLFxuICAgIFwibWF0cml4X2J1aWxkX2lkZW50aXR5XCIsXG4gICAgXCJtYXRyaXhfYnVpbGRfbG9va2F0XCIsXG4gICAgXCJtYXRyaXhfYnVpbGRfcHJvamVjdGlvbl9vcnRob1wiLFxuICAgIFwibWF0cml4X2J1aWxkX3Byb2plY3Rpb25fcGVyc3BlY3RpdmVcIixcbiAgICBcIm1hdHJpeF9idWlsZF9wcm9qZWN0aW9uX3BlcnNwZWN0aXZlX2ZvdlwiLFxuICAgIFwibWF0cml4X2dldFwiLFxuICAgIFwibWF0cml4X211bHRpcGx5XCIsXG4gICAgXCJtYXRyaXhfc2V0XCIsXG4gICAgXCJtYXRyaXhfc3RhY2tfY2xlYXJcIixcbiAgICBcIm1hdHJpeF9zdGFja19pc19lbXB0eVwiLFxuICAgIFwibWF0cml4X3N0YWNrX3BvcFwiLFxuICAgIFwibWF0cml4X3N0YWNrX3B1c2hcIixcbiAgICBcIm1hdHJpeF9zdGFja19zZXRcIixcbiAgICBcIm1hdHJpeF9zdGFja190b3BcIixcbiAgICBcIm1hdHJpeF90cmFuc2Zvcm1fdmVydGV4XCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1kNV9maWxlXCIsXG4gICAgXCJtZDVfc3RyaW5nX3VuaWNvZGVcIixcbiAgICBcIm1kNV9zdHJpbmdfdXRmOFwiLFxuICAgIFwibWVhblwiLFxuICAgIFwibWVkaWFuXCIsXG4gICAgXCJtZXJnZV9jb2xvclwiLFxuICAgIFwibWVyZ2VfY29sb3VyXCIsXG4gICAgXCJtZXRob2RcIixcbiAgICBcIm1ldGhvZF9jYWxsXCIsXG4gICAgXCJtZXRob2RfZ2V0X2luZGV4XCIsXG4gICAgXCJtZXRob2RfZ2V0X3NlbGZcIixcbiAgICBcIm1pblwiLFxuICAgIFwibW90aW9uX2FkZFwiLFxuICAgIFwibW90aW9uX3NldFwiLFxuICAgIFwibW91c2VfY2hlY2tfYnV0dG9uXCIsXG4gICAgXCJtb3VzZV9jaGVja19idXR0b25fcHJlc3NlZFwiLFxuICAgIFwibW91c2VfY2hlY2tfYnV0dG9uX3JlbGVhc2VkXCIsXG4gICAgXCJtb3VzZV9jbGVhclwiLFxuICAgIFwibW91c2Vfd2hlZWxfZG93blwiLFxuICAgIFwibW91c2Vfd2hlZWxfdXBcIixcbiAgICBcIm1vdmVfYW5kX2NvbGxpZGVcIixcbiAgICBcIm1vdmVfYm91bmNlX2FsbFwiLFxuICAgIFwibW92ZV9ib3VuY2Vfc29saWRcIixcbiAgICBcIm1vdmVfY29udGFjdF9hbGxcIixcbiAgICBcIm1vdmVfY29udGFjdF9zb2xpZFwiLFxuICAgIFwibW92ZV9vdXRzaWRlX2FsbFwiLFxuICAgIFwibW92ZV9vdXRzaWRlX3NvbGlkXCIsXG4gICAgXCJtb3ZlX3JhbmRvbVwiLFxuICAgIFwibW92ZV9zbmFwXCIsXG4gICAgXCJtb3ZlX3Rvd2FyZHNfcG9pbnRcIixcbiAgICBcIm1vdmVfd3JhcFwiLFxuICAgIFwibXBfZ3JpZF9hZGRfY2VsbFwiLFxuICAgIFwibXBfZ3JpZF9hZGRfaW5zdGFuY2VzXCIsXG4gICAgXCJtcF9ncmlkX2FkZF9yZWN0YW5nbGVcIixcbiAgICBcIm1wX2dyaWRfY2xlYXJfYWxsXCIsXG4gICAgXCJtcF9ncmlkX2NsZWFyX2NlbGxcIixcbiAgICBcIm1wX2dyaWRfY2xlYXJfcmVjdGFuZ2xlXCIsXG4gICAgXCJtcF9ncmlkX2NyZWF0ZVwiLFxuICAgIFwibXBfZ3JpZF9kZXN0cm95XCIsXG4gICAgXCJtcF9ncmlkX2RyYXdcIixcbiAgICBcIm1wX2dyaWRfZ2V0X2NlbGxcIixcbiAgICBcIm1wX2dyaWRfcGF0aFwiLFxuICAgIFwibXBfZ3JpZF90b19kc19ncmlkXCIsXG4gICAgXCJtcF9saW5lYXJfcGF0aFwiLFxuICAgIFwibXBfbGluZWFyX3BhdGhfb2JqZWN0XCIsXG4gICAgXCJtcF9saW5lYXJfc3RlcFwiLFxuICAgIFwibXBfbGluZWFyX3N0ZXBfb2JqZWN0XCIsXG4gICAgXCJtcF9wb3RlbnRpYWxfcGF0aFwiLFxuICAgIFwibXBfcG90ZW50aWFsX3BhdGhfb2JqZWN0XCIsXG4gICAgXCJtcF9wb3RlbnRpYWxfc2V0dGluZ3NcIixcbiAgICBcIm1wX3BvdGVudGlhbF9zdGVwXCIsXG4gICAgXCJtcF9wb3RlbnRpYWxfc3RlcF9vYmplY3RcIixcbiAgICBcIm5hbWVvZlwiLFxuICAgIFwibmV0d29ya19jb25uZWN0XCIsXG4gICAgXCJuZXR3b3JrX2Nvbm5lY3RfYXN5bmNcIixcbiAgICBcIm5ldHdvcmtfY29ubmVjdF9yYXdcIixcbiAgICBcIm5ldHdvcmtfY29ubmVjdF9yYXdfYXN5bmNcIixcbiAgICBcIm5ldHdvcmtfY3JlYXRlX3NlcnZlclwiLFxuICAgIFwibmV0d29ya19jcmVhdGVfc2VydmVyX3Jhd1wiLFxuICAgIFwibmV0d29ya19jcmVhdGVfc29ja2V0XCIsXG4gICAgXCJuZXR3b3JrX2NyZWF0ZV9zb2NrZXRfZXh0XCIsXG4gICAgXCJuZXR3b3JrX2Rlc3Ryb3lcIixcbiAgICBcIm5ldHdvcmtfcmVzb2x2ZVwiLFxuICAgIFwibmV0d29ya19zZW5kX2Jyb2FkY2FzdFwiLFxuICAgIFwibmV0d29ya19zZW5kX3BhY2tldFwiLFxuICAgIFwibmV0d29ya19zZW5kX3Jhd1wiLFxuICAgIFwibmV0d29ya19zZW5kX3VkcFwiLFxuICAgIFwibmV0d29ya19zZW5kX3VkcF9yYXdcIixcbiAgICBcIm5ldHdvcmtfc2V0X2NvbmZpZ1wiLFxuICAgIFwibmV0d29ya19zZXRfdGltZW91dFwiLFxuICAgIFwib2JqZWN0X2V4aXN0c1wiLFxuICAgIFwib2JqZWN0X2dldF9tYXNrXCIsXG4gICAgXCJvYmplY3RfZ2V0X25hbWVcIixcbiAgICBcIm9iamVjdF9nZXRfcGFyZW50XCIsXG4gICAgXCJvYmplY3RfZ2V0X3BlcnNpc3RlbnRcIixcbiAgICBcIm9iamVjdF9nZXRfcGh5c2ljc1wiLFxuICAgIFwib2JqZWN0X2dldF9zb2xpZFwiLFxuICAgIFwib2JqZWN0X2dldF9zcHJpdGVcIixcbiAgICBcIm9iamVjdF9nZXRfdmlzaWJsZVwiLFxuICAgIFwib2JqZWN0X2lzX2FuY2VzdG9yXCIsXG4gICAgXCJvYmplY3Rfc2V0X21hc2tcIixcbiAgICBcIm9iamVjdF9zZXRfcGVyc2lzdGVudFwiLFxuICAgIFwib2JqZWN0X3NldF9zb2xpZFwiLFxuICAgIFwib2JqZWN0X3NldF9zcHJpdGVcIixcbiAgICBcIm9iamVjdF9zZXRfdmlzaWJsZVwiLFxuICAgIFwib3JkXCIsXG4gICAgXCJvc19jaGVja19wZXJtaXNzaW9uXCIsXG4gICAgXCJvc19nZXRfY29uZmlnXCIsXG4gICAgXCJvc19nZXRfaW5mb1wiLFxuICAgIFwib3NfZ2V0X2xhbmd1YWdlXCIsXG4gICAgXCJvc19nZXRfcmVnaW9uXCIsXG4gICAgXCJvc19pc19uZXR3b3JrX2Nvbm5lY3RlZFwiLFxuICAgIFwib3NfaXNfcGF1c2VkXCIsXG4gICAgXCJvc19sb2NrX29yaWVudGF0aW9uXCIsXG4gICAgXCJvc19wb3dlcnNhdmVfZW5hYmxlXCIsXG4gICAgXCJvc19yZXF1ZXN0X3Blcm1pc3Npb25cIixcbiAgICBcIm9zX3NldF9vcmllbnRhdGlvbl9sb2NrXCIsXG4gICAgXCJwYXJhbWV0ZXJfY291bnRcIixcbiAgICBcInBhcmFtZXRlcl9zdHJpbmdcIixcbiAgICBcInBhcnRfZW1pdHRlcl9idXJzdFwiLFxuICAgIFwicGFydF9lbWl0dGVyX2NsZWFyXCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfY3JlYXRlXCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfZGVsYXlcIixcbiAgICBcInBhcnRfZW1pdHRlcl9kZXN0cm95XCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfZGVzdHJveV9hbGxcIixcbiAgICBcInBhcnRfZW1pdHRlcl9lbmFibGVcIixcbiAgICBcInBhcnRfZW1pdHRlcl9leGlzdHNcIixcbiAgICBcInBhcnRfZW1pdHRlcl9pbnRlcnZhbFwiLFxuICAgIFwicGFydF9lbWl0dGVyX3JlZ2lvblwiLFxuICAgIFwicGFydF9lbWl0dGVyX3JlbGF0aXZlXCIsXG4gICAgXCJwYXJ0X2VtaXR0ZXJfc3RyZWFtXCIsXG4gICAgXCJwYXJ0X3BhcnRpY2xlc19idXJzdFwiLFxuICAgIFwicGFydF9wYXJ0aWNsZXNfY2xlYXJcIixcbiAgICBcInBhcnRfcGFydGljbGVzX2NvdW50XCIsXG4gICAgXCJwYXJ0X3BhcnRpY2xlc19jcmVhdGVcIixcbiAgICBcInBhcnRfcGFydGljbGVzX2NyZWF0ZV9jb2xvclwiLFxuICAgIFwicGFydF9wYXJ0aWNsZXNfY3JlYXRlX2NvbG91clwiLFxuICAgIFwicGFydF9zeXN0ZW1fYW5nbGVcIixcbiAgICBcInBhcnRfc3lzdGVtX2F1dG9tYXRpY19kcmF3XCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9hdXRvbWF0aWNfdXBkYXRlXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9jbGVhclwiLFxuICAgIFwicGFydF9zeXN0ZW1fY29sb3JcIixcbiAgICBcInBhcnRfc3lzdGVtX2NvbG91clwiLFxuICAgIFwicGFydF9zeXN0ZW1fY3JlYXRlXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9jcmVhdGVfbGF5ZXJcIixcbiAgICBcInBhcnRfc3lzdGVtX2RlcHRoXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9kZXN0cm95XCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9kcmF3X29yZGVyXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9kcmF3aXRcIixcbiAgICBcInBhcnRfc3lzdGVtX2V4aXN0c1wiLFxuICAgIFwicGFydF9zeXN0ZW1fZ2V0X2luZm9cIixcbiAgICBcInBhcnRfc3lzdGVtX2dldF9sYXllclwiLFxuICAgIFwicGFydF9zeXN0ZW1fZ2xvYmFsX3NwYWNlXCIsXG4gICAgXCJwYXJ0X3N5c3RlbV9sYXllclwiLFxuICAgIFwicGFydF9zeXN0ZW1fcG9zaXRpb25cIixcbiAgICBcInBhcnRfc3lzdGVtX3VwZGF0ZVwiLFxuICAgIFwicGFydF90eXBlX2FscGhhMVwiLFxuICAgIFwicGFydF90eXBlX2FscGhhMlwiLFxuICAgIFwicGFydF90eXBlX2FscGhhM1wiLFxuICAgIFwicGFydF90eXBlX2JsZW5kXCIsXG4gICAgXCJwYXJ0X3R5cGVfY2xlYXJcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcjFcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcjJcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcjNcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcl9oc3ZcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcl9taXhcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvcl9yZ2JcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvdXIxXCIsXG4gICAgXCJwYXJ0X3R5cGVfY29sb3VyMlwiLFxuICAgIFwicGFydF90eXBlX2NvbG91cjNcIixcbiAgICBcInBhcnRfdHlwZV9jb2xvdXJfaHN2XCIsXG4gICAgXCJwYXJ0X3R5cGVfY29sb3VyX21peFwiLFxuICAgIFwicGFydF90eXBlX2NvbG91cl9yZ2JcIixcbiAgICBcInBhcnRfdHlwZV9jcmVhdGVcIixcbiAgICBcInBhcnRfdHlwZV9kZWF0aFwiLFxuICAgIFwicGFydF90eXBlX2Rlc3Ryb3lcIixcbiAgICBcInBhcnRfdHlwZV9kaXJlY3Rpb25cIixcbiAgICBcInBhcnRfdHlwZV9leGlzdHNcIixcbiAgICBcInBhcnRfdHlwZV9ncmF2aXR5XCIsXG4gICAgXCJwYXJ0X3R5cGVfbGlmZVwiLFxuICAgIFwicGFydF90eXBlX29yaWVudGF0aW9uXCIsXG4gICAgXCJwYXJ0X3R5cGVfc2NhbGVcIixcbiAgICBcInBhcnRfdHlwZV9zaGFwZVwiLFxuICAgIFwicGFydF90eXBlX3NpemVcIixcbiAgICBcInBhcnRfdHlwZV9zaXplX3hcIixcbiAgICBcInBhcnRfdHlwZV9zaXplX3lcIixcbiAgICBcInBhcnRfdHlwZV9zcGVlZFwiLFxuICAgIFwicGFydF90eXBlX3Nwcml0ZVwiLFxuICAgIFwicGFydF90eXBlX3N0ZXBcIixcbiAgICBcInBhcnRfdHlwZV9zdWJpbWFnZVwiLFxuICAgIFwicGFydGljbGVfZXhpc3RzXCIsXG4gICAgXCJwYXJ0aWNsZV9nZXRfaW5mb1wiLFxuICAgIFwicGF0aF9hZGRcIixcbiAgICBcInBhdGhfYWRkX3BvaW50XCIsXG4gICAgXCJwYXRoX2FwcGVuZFwiLFxuICAgIFwicGF0aF9hc3NpZ25cIixcbiAgICBcInBhdGhfY2hhbmdlX3BvaW50XCIsXG4gICAgXCJwYXRoX2NsZWFyX3BvaW50c1wiLFxuICAgIFwicGF0aF9kZWxldGVcIixcbiAgICBcInBhdGhfZGVsZXRlX3BvaW50XCIsXG4gICAgXCJwYXRoX2R1cGxpY2F0ZVwiLFxuICAgIFwicGF0aF9lbmRcIixcbiAgICBcInBhdGhfZXhpc3RzXCIsXG4gICAgXCJwYXRoX2ZsaXBcIixcbiAgICBcInBhdGhfZ2V0X2Nsb3NlZFwiLFxuICAgIFwicGF0aF9nZXRfa2luZFwiLFxuICAgIFwicGF0aF9nZXRfbGVuZ3RoXCIsXG4gICAgXCJwYXRoX2dldF9uYW1lXCIsXG4gICAgXCJwYXRoX2dldF9udW1iZXJcIixcbiAgICBcInBhdGhfZ2V0X3BvaW50X3NwZWVkXCIsXG4gICAgXCJwYXRoX2dldF9wb2ludF94XCIsXG4gICAgXCJwYXRoX2dldF9wb2ludF95XCIsXG4gICAgXCJwYXRoX2dldF9wcmVjaXNpb25cIixcbiAgICBcInBhdGhfZ2V0X3NwZWVkXCIsXG4gICAgXCJwYXRoX2dldF94XCIsXG4gICAgXCJwYXRoX2dldF95XCIsXG4gICAgXCJwYXRoX2luc2VydF9wb2ludFwiLFxuICAgIFwicGF0aF9taXJyb3JcIixcbiAgICBcInBhdGhfcmVzY2FsZVwiLFxuICAgIFwicGF0aF9yZXZlcnNlXCIsXG4gICAgXCJwYXRoX3JvdGF0ZVwiLFxuICAgIFwicGF0aF9zZXRfY2xvc2VkXCIsXG4gICAgXCJwYXRoX3NldF9raW5kXCIsXG4gICAgXCJwYXRoX3NldF9wcmVjaXNpb25cIixcbiAgICBcInBhdGhfc2hpZnRcIixcbiAgICBcInBhdGhfc3RhcnRcIixcbiAgICBcInBoeXNpY3NfYXBwbHlfYW5ndWxhcl9pbXB1bHNlXCIsXG4gICAgXCJwaHlzaWNzX2FwcGx5X2ZvcmNlXCIsXG4gICAgXCJwaHlzaWNzX2FwcGx5X2ltcHVsc2VcIixcbiAgICBcInBoeXNpY3NfYXBwbHlfbG9jYWxfZm9yY2VcIixcbiAgICBcInBoeXNpY3NfYXBwbHlfbG9jYWxfaW1wdWxzZVwiLFxuICAgIFwicGh5c2ljc19hcHBseV90b3JxdWVcIixcbiAgICBcInBoeXNpY3NfZHJhd19kZWJ1Z1wiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2FkZF9wb2ludFwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2JpbmRcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9iaW5kX2V4dFwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX2RlbGV0ZVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9hbmd1bGFyX2RhbXBpbmdcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9zZXRfYXdha2VcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9zZXRfYm94X3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2NoYWluX3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2NpcmNsZV9zaGFwZVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9jb2xsaXNpb25fZ3JvdXBcIixcbiAgICBcInBoeXNpY3NfZml4dHVyZV9zZXRfZGVuc2l0eVwiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9lZGdlX3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2ZyaWN0aW9uXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X2tpbmVtYXRpY1wiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9saW5lYXJfZGFtcGluZ1wiLFxuICAgIFwicGh5c2ljc19maXh0dXJlX3NldF9wb2x5Z29uX3NoYXBlXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X3Jlc3RpdHV0aW9uXCIsXG4gICAgXCJwaHlzaWNzX2ZpeHR1cmVfc2V0X3NlbnNvclwiLFxuICAgIFwicGh5c2ljc19nZXRfZGVuc2l0eVwiLFxuICAgIFwicGh5c2ljc19nZXRfZnJpY3Rpb25cIixcbiAgICBcInBoeXNpY3NfZ2V0X3Jlc3RpdHV0aW9uXCIsXG4gICAgXCJwaHlzaWNzX2pvaW50X2RlbGV0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9kaXN0YW5jZV9jcmVhdGVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfZW5hYmxlX21vdG9yXCIsXG4gICAgXCJwaHlzaWNzX2pvaW50X2ZyaWN0aW9uX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9nZWFyX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9nZXRfdmFsdWVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfcHJpc21hdGljX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9wdWxsZXlfY3JlYXRlXCIsXG4gICAgXCJwaHlzaWNzX2pvaW50X3Jldm9sdXRlX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9yb3BlX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc19qb2ludF9zZXRfdmFsdWVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfd2VsZF9jcmVhdGVcIixcbiAgICBcInBoeXNpY3Nfam9pbnRfd2hlZWxfY3JlYXRlXCIsXG4gICAgXCJwaHlzaWNzX21hc3NfcHJvcGVydGllc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9jb3VudFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9jcmVhdGVcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZGVsZXRlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fYm94XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fY2lyY2xlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RlbGV0ZV9yZWdpb25fcG9seVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9kcmF3XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2RyYXdfZXh0XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kYW1waW5nXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kYXRhXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kYXRhX3BhcnRpY2xlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9kZW5zaXR5XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9ncmF2aXR5X3NjYWxlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9ncm91cF9mbGFnc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9nZXRfbWF4X2NvdW50XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dldF9yYWRpdXNcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfYWRkX3BvaW50XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2JlZ2luXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2JveFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9jaXJjbGVcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfY291bnRcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZGVsZXRlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2VuZFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfYW5nX3ZlbFwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfYW5nbGVcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZ2V0X2NlbnRyZV94XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF9jZW50cmVfeVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfZGF0YVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfaW5lcnRpYVwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfbWFzc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9ncm91cF9nZXRfdmVsX3hcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfZ2V0X3ZlbF95XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF94XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2dldF95XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX2dyb3VwX2pvaW5cIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfZ3JvdXBfcG9seWdvblwiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9zZXRfY2F0ZWdvcnlfZmxhZ3NcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfc2V0X2RhbXBpbmdcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfc2V0X2RlbnNpdHlcIixcbiAgICBcInBoeXNpY3NfcGFydGljbGVfc2V0X2ZsYWdzXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX3NldF9ncmF2aXR5X3NjYWxlXCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX3NldF9ncm91cF9mbGFnc1wiLFxuICAgIFwicGh5c2ljc19wYXJ0aWNsZV9zZXRfbWF4X2NvdW50XCIsXG4gICAgXCJwaHlzaWNzX3BhcnRpY2xlX3NldF9yYWRpdXNcIixcbiAgICBcInBoeXNpY3NfcGF1c2VfZW5hYmxlXCIsXG4gICAgXCJwaHlzaWNzX3JlbW92ZV9maXh0dXJlXCIsXG4gICAgXCJwaHlzaWNzX3NldF9kZW5zaXR5XCIsXG4gICAgXCJwaHlzaWNzX3NldF9mcmljdGlvblwiLFxuICAgIFwicGh5c2ljc19zZXRfcmVzdGl0dXRpb25cIixcbiAgICBcInBoeXNpY3NfdGVzdF9vdmVybGFwXCIsXG4gICAgXCJwaHlzaWNzX3dvcmxkX2NyZWF0ZVwiLFxuICAgIFwicGh5c2ljc193b3JsZF9kcmF3X2RlYnVnXCIsXG4gICAgXCJwaHlzaWNzX3dvcmxkX2dyYXZpdHlcIixcbiAgICBcInBoeXNpY3Nfd29ybGRfdXBkYXRlX2l0ZXJhdGlvbnNcIixcbiAgICBcInBoeXNpY3Nfd29ybGRfdXBkYXRlX3NwZWVkXCIsXG4gICAgXCJwbGFjZV9lbXB0eVwiLFxuICAgIFwicGxhY2VfZnJlZVwiLFxuICAgIFwicGxhY2VfbWVldGluZ1wiLFxuICAgIFwicGxhY2Vfc25hcHBlZFwiLFxuICAgIFwicG9pbnRfZGlyZWN0aW9uXCIsXG4gICAgXCJwb2ludF9kaXN0YW5jZVwiLFxuICAgIFwicG9pbnRfZGlzdGFuY2VfM2RcIixcbiAgICBcInBvaW50X2luX2NpcmNsZVwiLFxuICAgIFwicG9pbnRfaW5fcmVjdGFuZ2xlXCIsXG4gICAgXCJwb2ludF9pbl90cmlhbmdsZVwiLFxuICAgIFwicG9zaXRpb25fY2hhbmdlXCIsXG4gICAgXCJwb3NpdGlvbl9kZXN0cm95XCIsXG4gICAgXCJwb3NpdGlvbl9lbXB0eVwiLFxuICAgIFwicG9zaXRpb25fbWVldGluZ1wiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInB0clwiLFxuICAgIFwicmFkdG9kZWdcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicmFuZG9tX2dldF9zZWVkXCIsXG4gICAgXCJyYW5kb21fcmFuZ2VcIixcbiAgICBcInJhbmRvbV9zZXRfc2VlZFwiLFxuICAgIFwicmFuZG9taXNlXCIsXG4gICAgXCJyYW5kb21pemVcIixcbiAgICBcInJlYWxcIixcbiAgICBcInJlY3RhbmdsZV9pbl9jaXJjbGVcIixcbiAgICBcInJlY3RhbmdsZV9pbl9yZWN0YW5nbGVcIixcbiAgICBcInJlY3RhbmdsZV9pbl90cmlhbmdsZVwiLFxuICAgIFwicmVmX2NyZWF0ZVwiLFxuICAgIFwicm9sbGJhY2tfY2hhdFwiLFxuICAgIFwicm9sbGJhY2tfY3JlYXRlX2dhbWVcIixcbiAgICBcInJvbGxiYWNrX2RlZmluZV9leHRyYV9uZXR3b3JrX2xhdGVuY3lcIixcbiAgICBcInJvbGxiYWNrX2RlZmluZV9pbnB1dFwiLFxuICAgIFwicm9sbGJhY2tfZGVmaW5lX2lucHV0X2ZyYW1lX2RlbGF5XCIsXG4gICAgXCJyb2xsYmFja19kZWZpbmVfbW9ja19pbnB1dFwiLFxuICAgIFwicm9sbGJhY2tfZGVmaW5lX3BsYXllclwiLFxuICAgIFwicm9sbGJhY2tfZGlzcGxheV9ldmVudHNcIixcbiAgICBcInJvbGxiYWNrX2dldF9pbmZvXCIsXG4gICAgXCJyb2xsYmFja19nZXRfaW5wdXRcIixcbiAgICBcInJvbGxiYWNrX2dldF9wbGF5ZXJfcHJlZnNcIixcbiAgICBcInJvbGxiYWNrX2pvaW5fZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfbGVhdmVfZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfc2V0X3BsYXllcl9wcmVmc1wiLFxuICAgIFwicm9sbGJhY2tfc3RhcnRfZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfc3luY19vbl9mcmFtZVwiLFxuICAgIFwicm9sbGJhY2tfdXNlX2xhdGVfam9pblwiLFxuICAgIFwicm9sbGJhY2tfdXNlX21hbnVhbF9zdGFydFwiLFxuICAgIFwicm9sbGJhY2tfdXNlX3BsYXllcl9wcmVmc1wiLFxuICAgIFwicm9sbGJhY2tfdXNlX3JhbmRvbV9pbnB1dFwiLFxuICAgIFwicm9vbV9hZGRcIixcbiAgICBcInJvb21fYXNzaWduXCIsXG4gICAgXCJyb29tX2R1cGxpY2F0ZVwiLFxuICAgIFwicm9vbV9leGlzdHNcIixcbiAgICBcInJvb21fZ2V0X2NhbWVyYVwiLFxuICAgIFwicm9vbV9nZXRfaW5mb1wiLFxuICAgIFwicm9vbV9nZXRfbmFtZVwiLFxuICAgIFwicm9vbV9nZXRfdmlld3BvcnRcIixcbiAgICBcInJvb21fZ290b1wiLFxuICAgIFwicm9vbV9nb3RvX25leHRcIixcbiAgICBcInJvb21fZ290b19wcmV2aW91c1wiLFxuICAgIFwicm9vbV9pbnN0YW5jZV9hZGRcIixcbiAgICBcInJvb21faW5zdGFuY2VfY2xlYXJcIixcbiAgICBcInJvb21fbmV4dFwiLFxuICAgIFwicm9vbV9wcmV2aW91c1wiLFxuICAgIFwicm9vbV9yZXN0YXJ0XCIsXG4gICAgXCJyb29tX3NldF9jYW1lcmFcIixcbiAgICBcInJvb21fc2V0X2hlaWdodFwiLFxuICAgIFwicm9vbV9zZXRfcGVyc2lzdGVudFwiLFxuICAgIFwicm9vbV9zZXRfdmlld19lbmFibGVkXCIsXG4gICAgXCJyb29tX3NldF92aWV3cG9ydFwiLFxuICAgIFwicm9vbV9zZXRfd2lkdGhcIixcbiAgICBcInJvdW5kXCIsXG4gICAgXCJzY2hlZHVsZXJfcmVzb2x1dGlvbl9nZXRcIixcbiAgICBcInNjaGVkdWxlcl9yZXNvbHV0aW9uX3NldFwiLFxuICAgIFwic2NyZWVuX3NhdmVcIixcbiAgICBcInNjcmVlbl9zYXZlX3BhcnRcIixcbiAgICBcInNjcmlwdF9leGVjdXRlXCIsXG4gICAgXCJzY3JpcHRfZXhlY3V0ZV9leHRcIixcbiAgICBcInNjcmlwdF9leGlzdHNcIixcbiAgICBcInNjcmlwdF9nZXRfbmFtZVwiLFxuICAgIFwic2VxdWVuY2VfY3JlYXRlXCIsXG4gICAgXCJzZXF1ZW5jZV9kZXN0cm95XCIsXG4gICAgXCJzZXF1ZW5jZV9leGlzdHNcIixcbiAgICBcInNlcXVlbmNlX2dldFwiLFxuICAgIFwic2VxdWVuY2VfZ2V0X29iamVjdHNcIixcbiAgICBcInNlcXVlbmNlX2luc3RhbmNlX292ZXJyaWRlX29iamVjdFwiLFxuICAgIFwic2VxdWVuY2Vfa2V5ZnJhbWVfbmV3XCIsXG4gICAgXCJzZXF1ZW5jZV9rZXlmcmFtZWRhdGFfbmV3XCIsXG4gICAgXCJzZXF1ZW5jZV90cmFja19uZXdcIixcbiAgICBcInNoYTFfZmlsZVwiLFxuICAgIFwic2hhMV9zdHJpbmdfdW5pY29kZVwiLFxuICAgIFwic2hhMV9zdHJpbmdfdXRmOFwiLFxuICAgIFwic2hhZGVyX2N1cnJlbnRcIixcbiAgICBcInNoYWRlcl9lbmFibGVfY29ybmVyX2lkXCIsXG4gICAgXCJzaGFkZXJfZ2V0X25hbWVcIixcbiAgICBcInNoYWRlcl9nZXRfc2FtcGxlcl9pbmRleFwiLFxuICAgIFwic2hhZGVyX2dldF91bmlmb3JtXCIsXG4gICAgXCJzaGFkZXJfaXNfY29tcGlsZWRcIixcbiAgICBcInNoYWRlcl9yZXNldFwiLFxuICAgIFwic2hhZGVyX3NldFwiLFxuICAgIFwic2hhZGVyX3NldF91bmlmb3JtX2ZcIixcbiAgICBcInNoYWRlcl9zZXRfdW5pZm9ybV9mX2FycmF5XCIsXG4gICAgXCJzaGFkZXJfc2V0X3VuaWZvcm1fZl9idWZmZXJcIixcbiAgICBcInNoYWRlcl9zZXRfdW5pZm9ybV9pXCIsXG4gICAgXCJzaGFkZXJfc2V0X3VuaWZvcm1faV9hcnJheVwiLFxuICAgIFwic2hhZGVyX3NldF91bmlmb3JtX21hdHJpeFwiLFxuICAgIFwic2hhZGVyX3NldF91bmlmb3JtX21hdHJpeF9hcnJheVwiLFxuICAgIFwic2hhZGVyc19hcmVfc3VwcG9ydGVkXCIsXG4gICAgXCJzaG9wX2xlYXZlX3JhdGluZ1wiLFxuICAgIFwic2hvd19kZWJ1Z19tZXNzYWdlXCIsXG4gICAgXCJzaG93X2RlYnVnX21lc3NhZ2VfZXh0XCIsXG4gICAgXCJzaG93X2RlYnVnX292ZXJsYXlcIixcbiAgICBcInNob3dfZXJyb3JcIixcbiAgICBcInNob3dfbWVzc2FnZVwiLFxuICAgIFwic2hvd19tZXNzYWdlX2FzeW5jXCIsXG4gICAgXCJzaG93X3F1ZXN0aW9uXCIsXG4gICAgXCJzaG93X3F1ZXN0aW9uX2FzeW5jXCIsXG4gICAgXCJzaWduXCIsXG4gICAgXCJzaW5cIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9jbGVhclwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldFwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldF9kdXJhdGlvblwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldF9ldmVudF9mcmFtZXNcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9nZXRfZXh0XCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fZ2V0X2ZyYW1lXCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fZ2V0X2ZyYW1lc1wiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2dldF9wb3NpdGlvblwiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2lzX2ZpbmlzaGVkXCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25faXNfbG9vcGluZ1wiLFxuICAgIFwic2tlbGV0b25fYW5pbWF0aW9uX2xpc3RcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9taXhcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9zZXRcIixcbiAgICBcInNrZWxldG9uX2FuaW1hdGlvbl9zZXRfZXh0XCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fc2V0X2ZyYW1lXCIsXG4gICAgXCJza2VsZXRvbl9hbmltYXRpb25fc2V0X3Bvc2l0aW9uXCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X2NyZWF0ZVwiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9jcmVhdGVfY29sb3JcIixcbiAgICBcInNrZWxldG9uX2F0dGFjaG1lbnRfY3JlYXRlX2NvbG91clwiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9kZXN0cm95XCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X2V4aXN0c1wiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9nZXRcIixcbiAgICBcInNrZWxldG9uX2F0dGFjaG1lbnRfcmVwbGFjZVwiLFxuICAgIFwic2tlbGV0b25fYXR0YWNobWVudF9yZXBsYWNlX2NvbG9yXCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X3JlcGxhY2VfY29sb3VyXCIsXG4gICAgXCJza2VsZXRvbl9hdHRhY2htZW50X3NldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9kYXRhX2dldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9kYXRhX3NldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9saXN0XCIsXG4gICAgXCJza2VsZXRvbl9ib25lX3N0YXRlX2dldFwiLFxuICAgIFwic2tlbGV0b25fYm9uZV9zdGF0ZV9zZXRcIixcbiAgICBcInNrZWxldG9uX2NvbGxpc2lvbl9kcmF3X3NldFwiLFxuICAgIFwic2tlbGV0b25fZmluZF9zbG90XCIsXG4gICAgXCJza2VsZXRvbl9nZXRfYm91bmRzXCIsXG4gICAgXCJza2VsZXRvbl9nZXRfbWlubWF4XCIsXG4gICAgXCJza2VsZXRvbl9nZXRfbnVtX2JvdW5kc1wiLFxuICAgIFwic2tlbGV0b25fc2tpbl9jcmVhdGVcIixcbiAgICBcInNrZWxldG9uX3NraW5fZ2V0XCIsXG4gICAgXCJza2VsZXRvbl9za2luX2xpc3RcIixcbiAgICBcInNrZWxldG9uX3NraW5fc2V0XCIsXG4gICAgXCJza2VsZXRvbl9zbG90X2FscGhhX2dldFwiLFxuICAgIFwic2tlbGV0b25fc2xvdF9jb2xvcl9nZXRcIixcbiAgICBcInNrZWxldG9uX3Nsb3RfY29sb3Jfc2V0XCIsXG4gICAgXCJza2VsZXRvbl9zbG90X2NvbG91cl9nZXRcIixcbiAgICBcInNrZWxldG9uX3Nsb3RfY29sb3VyX3NldFwiLFxuICAgIFwic2tlbGV0b25fc2xvdF9kYXRhXCIsXG4gICAgXCJza2VsZXRvbl9zbG90X2RhdGFfaW5zdGFuY2VcIixcbiAgICBcInNrZWxldG9uX3Nsb3RfbGlzdFwiLFxuICAgIFwic3ByaXRlX2FkZFwiLFxuICAgIFwic3ByaXRlX2FkZF9leHRcIixcbiAgICBcInNwcml0ZV9hZGRfZnJvbV9zdXJmYWNlXCIsXG4gICAgXCJzcHJpdGVfYXNzaWduXCIsXG4gICAgXCJzcHJpdGVfY29sbGlzaW9uX21hc2tcIixcbiAgICBcInNwcml0ZV9jcmVhdGVfZnJvbV9zdXJmYWNlXCIsXG4gICAgXCJzcHJpdGVfZGVsZXRlXCIsXG4gICAgXCJzcHJpdGVfZHVwbGljYXRlXCIsXG4gICAgXCJzcHJpdGVfZXhpc3RzXCIsXG4gICAgXCJzcHJpdGVfZmx1c2hcIixcbiAgICBcInNwcml0ZV9mbHVzaF9tdWx0aVwiLFxuICAgIFwic3ByaXRlX2dldF9iYm94X2JvdHRvbVwiLFxuICAgIFwic3ByaXRlX2dldF9iYm94X2xlZnRcIixcbiAgICBcInNwcml0ZV9nZXRfYmJveF9tb2RlXCIsXG4gICAgXCJzcHJpdGVfZ2V0X2Jib3hfcmlnaHRcIixcbiAgICBcInNwcml0ZV9nZXRfYmJveF90b3BcIixcbiAgICBcInNwcml0ZV9nZXRfaGVpZ2h0XCIsXG4gICAgXCJzcHJpdGVfZ2V0X2luZm9cIixcbiAgICBcInNwcml0ZV9nZXRfbmFtZVwiLFxuICAgIFwic3ByaXRlX2dldF9uaW5lc2xpY2VcIixcbiAgICBcInNwcml0ZV9nZXRfbnVtYmVyXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3NwZWVkXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3NwZWVkX3R5cGVcIixcbiAgICBcInNwcml0ZV9nZXRfdGV4dHVyZVwiLFxuICAgIFwic3ByaXRlX2dldF90cGVcIixcbiAgICBcInNwcml0ZV9nZXRfdXZzXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3dpZHRoXCIsXG4gICAgXCJzcHJpdGVfZ2V0X3hvZmZzZXRcIixcbiAgICBcInNwcml0ZV9nZXRfeW9mZnNldFwiLFxuICAgIFwic3ByaXRlX21lcmdlXCIsXG4gICAgXCJzcHJpdGVfbmluZXNsaWNlX2NyZWF0ZVwiLFxuICAgIFwic3ByaXRlX3ByZWZldGNoXCIsXG4gICAgXCJzcHJpdGVfcHJlZmV0Y2hfbXVsdGlcIixcbiAgICBcInNwcml0ZV9yZXBsYWNlXCIsXG4gICAgXCJzcHJpdGVfc2F2ZVwiLFxuICAgIFwic3ByaXRlX3NhdmVfc3RyaXBcIixcbiAgICBcInNwcml0ZV9zZXRfYWxwaGFfZnJvbV9zcHJpdGVcIixcbiAgICBcInNwcml0ZV9zZXRfYmJveFwiLFxuICAgIFwic3ByaXRlX3NldF9iYm94X21vZGVcIixcbiAgICBcInNwcml0ZV9zZXRfY2FjaGVfc2l6ZVwiLFxuICAgIFwic3ByaXRlX3NldF9jYWNoZV9zaXplX2V4dFwiLFxuICAgIFwic3ByaXRlX3NldF9uaW5lc2xpY2VcIixcbiAgICBcInNwcml0ZV9zZXRfb2Zmc2V0XCIsXG4gICAgXCJzcHJpdGVfc2V0X3NwZWVkXCIsXG4gICAgXCJzcXJcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0YXRpY19nZXRcIixcbiAgICBcInN0YXRpY19zZXRcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwic3RyaW5nX2J5dGVfYXRcIixcbiAgICBcInN0cmluZ19ieXRlX2xlbmd0aFwiLFxuICAgIFwic3RyaW5nX2NoYXJfYXRcIixcbiAgICBcInN0cmluZ19jb25jYXRcIixcbiAgICBcInN0cmluZ19jb25jYXRfZXh0XCIsXG4gICAgXCJzdHJpbmdfY29weVwiLFxuICAgIFwic3RyaW5nX2NvdW50XCIsXG4gICAgXCJzdHJpbmdfZGVsZXRlXCIsXG4gICAgXCJzdHJpbmdfZGlnaXRzXCIsXG4gICAgXCJzdHJpbmdfZW5kc193aXRoXCIsXG4gICAgXCJzdHJpbmdfZXh0XCIsXG4gICAgXCJzdHJpbmdfZm9yZWFjaFwiLFxuICAgIFwic3RyaW5nX2Zvcm1hdFwiLFxuICAgIFwic3RyaW5nX2hhc2hfdG9fbmV3bGluZVwiLFxuICAgIFwic3RyaW5nX2hlaWdodFwiLFxuICAgIFwic3RyaW5nX2hlaWdodF9leHRcIixcbiAgICBcInN0cmluZ19pbnNlcnRcIixcbiAgICBcInN0cmluZ19qb2luXCIsXG4gICAgXCJzdHJpbmdfam9pbl9leHRcIixcbiAgICBcInN0cmluZ19sYXN0X3Bvc1wiLFxuICAgIFwic3RyaW5nX2xhc3RfcG9zX2V4dFwiLFxuICAgIFwic3RyaW5nX2xlbmd0aFwiLFxuICAgIFwic3RyaW5nX2xldHRlcnNcIixcbiAgICBcInN0cmluZ19sZXR0ZXJzZGlnaXRzXCIsXG4gICAgXCJzdHJpbmdfbG93ZXJcIixcbiAgICBcInN0cmluZ19vcmRfYXRcIixcbiAgICBcInN0cmluZ19wb3NcIixcbiAgICBcInN0cmluZ19wb3NfZXh0XCIsXG4gICAgXCJzdHJpbmdfcmVwZWF0XCIsXG4gICAgXCJzdHJpbmdfcmVwbGFjZVwiLFxuICAgIFwic3RyaW5nX3JlcGxhY2VfYWxsXCIsXG4gICAgXCJzdHJpbmdfc2V0X2J5dGVfYXRcIixcbiAgICBcInN0cmluZ19zcGxpdFwiLFxuICAgIFwic3RyaW5nX3NwbGl0X2V4dFwiLFxuICAgIFwic3RyaW5nX3N0YXJ0c193aXRoXCIsXG4gICAgXCJzdHJpbmdfdHJpbVwiLFxuICAgIFwic3RyaW5nX3RyaW1fZW5kXCIsXG4gICAgXCJzdHJpbmdfdHJpbV9zdGFydFwiLFxuICAgIFwic3RyaW5nX3VwcGVyXCIsXG4gICAgXCJzdHJpbmdfd2lkdGhcIixcbiAgICBcInN0cmluZ193aWR0aF9leHRcIixcbiAgICBcInN0cnVjdF9leGlzdHNcIixcbiAgICBcInN0cnVjdF9mb3JlYWNoXCIsXG4gICAgXCJzdHJ1Y3RfZ2V0XCIsXG4gICAgXCJzdHJ1Y3RfZ2V0X2Zyb21faGFzaFwiLFxuICAgIFwic3RydWN0X2dldF9uYW1lc1wiLFxuICAgIFwic3RydWN0X25hbWVzX2NvdW50XCIsXG4gICAgXCJzdHJ1Y3RfcmVtb3ZlXCIsXG4gICAgXCJzdHJ1Y3Rfc2V0XCIsXG4gICAgXCJzdHJ1Y3Rfc2V0X2Zyb21faGFzaFwiLFxuICAgIFwic3VyZmFjZV9jb3B5XCIsXG4gICAgXCJzdXJmYWNlX2NvcHlfcGFydFwiLFxuICAgIFwic3VyZmFjZV9jcmVhdGVcIixcbiAgICBcInN1cmZhY2VfY3JlYXRlX2V4dFwiLFxuICAgIFwic3VyZmFjZV9kZXB0aF9kaXNhYmxlXCIsXG4gICAgXCJzdXJmYWNlX2V4aXN0c1wiLFxuICAgIFwic3VyZmFjZV9mb3JtYXRfaXNfc3VwcG9ydGVkXCIsXG4gICAgXCJzdXJmYWNlX2ZyZWVcIixcbiAgICBcInN1cmZhY2VfZ2V0X2RlcHRoX2Rpc2FibGVcIixcbiAgICBcInN1cmZhY2VfZ2V0X2Zvcm1hdFwiLFxuICAgIFwic3VyZmFjZV9nZXRfaGVpZ2h0XCIsXG4gICAgXCJzdXJmYWNlX2dldF90YXJnZXRcIixcbiAgICBcInN1cmZhY2VfZ2V0X3RhcmdldF9leHRcIixcbiAgICBcInN1cmZhY2VfZ2V0X3RleHR1cmVcIixcbiAgICBcInN1cmZhY2VfZ2V0X3dpZHRoXCIsXG4gICAgXCJzdXJmYWNlX2dldHBpeGVsXCIsXG4gICAgXCJzdXJmYWNlX2dldHBpeGVsX2V4dFwiLFxuICAgIFwic3VyZmFjZV9yZXNldF90YXJnZXRcIixcbiAgICBcInN1cmZhY2VfcmVzaXplXCIsXG4gICAgXCJzdXJmYWNlX3NhdmVcIixcbiAgICBcInN1cmZhY2Vfc2F2ZV9wYXJ0XCIsXG4gICAgXCJzdXJmYWNlX3NldF90YXJnZXRcIixcbiAgICBcInN1cmZhY2Vfc2V0X3RhcmdldF9leHRcIixcbiAgICBcInRhZ19nZXRfYXNzZXRfaWRzXCIsXG4gICAgXCJ0YWdfZ2V0X2Fzc2V0c1wiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0ZXh0dXJlX2RlYnVnX21lc3NhZ2VzXCIsXG4gICAgXCJ0ZXh0dXJlX2ZsdXNoXCIsXG4gICAgXCJ0ZXh0dXJlX2dldF9oZWlnaHRcIixcbiAgICBcInRleHR1cmVfZ2V0X3RleGVsX2hlaWdodFwiLFxuICAgIFwidGV4dHVyZV9nZXRfdGV4ZWxfd2lkdGhcIixcbiAgICBcInRleHR1cmVfZ2V0X3V2c1wiLFxuICAgIFwidGV4dHVyZV9nZXRfd2lkdGhcIixcbiAgICBcInRleHR1cmVfZ2xvYmFsX3NjYWxlXCIsXG4gICAgXCJ0ZXh0dXJlX2lzX3JlYWR5XCIsXG4gICAgXCJ0ZXh0dXJlX3ByZWZldGNoXCIsXG4gICAgXCJ0ZXh0dXJlX3NldF9zdGFnZVwiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF9mb250c1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF9uYW1lc1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF9zcHJpdGVzXCIsXG4gICAgXCJ0ZXh0dXJlZ3JvdXBfZ2V0X3N0YXR1c1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF90ZXh0dXJlc1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2dldF90aWxlc2V0c1wiLFxuICAgIFwidGV4dHVyZWdyb3VwX2xvYWRcIixcbiAgICBcInRleHR1cmVncm91cF9zZXRfbW9kZVwiLFxuICAgIFwidGV4dHVyZWdyb3VwX3VubG9hZFwiLFxuICAgIFwidGlsZV9nZXRfZW1wdHlcIixcbiAgICBcInRpbGVfZ2V0X2ZsaXBcIixcbiAgICBcInRpbGVfZ2V0X2luZGV4XCIsXG4gICAgXCJ0aWxlX2dldF9taXJyb3JcIixcbiAgICBcInRpbGVfZ2V0X3JvdGF0ZVwiLFxuICAgIFwidGlsZV9zZXRfZW1wdHlcIixcbiAgICBcInRpbGVfc2V0X2ZsaXBcIixcbiAgICBcInRpbGVfc2V0X2luZGV4XCIsXG4gICAgXCJ0aWxlX3NldF9taXJyb3JcIixcbiAgICBcInRpbGVfc2V0X3JvdGF0ZVwiLFxuICAgIFwidGlsZW1hcF9jbGVhclwiLFxuICAgIFwidGlsZW1hcF9nZXRcIixcbiAgICBcInRpbGVtYXBfZ2V0X2F0X3BpeGVsXCIsXG4gICAgXCJ0aWxlbWFwX2dldF9jZWxsX3hfYXRfcGl4ZWxcIixcbiAgICBcInRpbGVtYXBfZ2V0X2NlbGxfeV9hdF9waXhlbFwiLFxuICAgIFwidGlsZW1hcF9nZXRfZnJhbWVcIixcbiAgICBcInRpbGVtYXBfZ2V0X2dsb2JhbF9tYXNrXCIsXG4gICAgXCJ0aWxlbWFwX2dldF9oZWlnaHRcIixcbiAgICBcInRpbGVtYXBfZ2V0X21hc2tcIixcbiAgICBcInRpbGVtYXBfZ2V0X3RpbGVfaGVpZ2h0XCIsXG4gICAgXCJ0aWxlbWFwX2dldF90aWxlX3dpZHRoXCIsXG4gICAgXCJ0aWxlbWFwX2dldF90aWxlc2V0XCIsXG4gICAgXCJ0aWxlbWFwX2dldF93aWR0aFwiLFxuICAgIFwidGlsZW1hcF9nZXRfeFwiLFxuICAgIFwidGlsZW1hcF9nZXRfeVwiLFxuICAgIFwidGlsZW1hcF9zZXRcIixcbiAgICBcInRpbGVtYXBfc2V0X2F0X3BpeGVsXCIsXG4gICAgXCJ0aWxlbWFwX3NldF9nbG9iYWxfbWFza1wiLFxuICAgIFwidGlsZW1hcF9zZXRfaGVpZ2h0XCIsXG4gICAgXCJ0aWxlbWFwX3NldF9tYXNrXCIsXG4gICAgXCJ0aWxlbWFwX3NldF93aWR0aFwiLFxuICAgIFwidGlsZW1hcF90aWxlc2V0XCIsXG4gICAgXCJ0aWxlbWFwX3hcIixcbiAgICBcInRpbGVtYXBfeVwiLFxuICAgIFwidGlsZXNldF9nZXRfaW5mb1wiLFxuICAgIFwidGlsZXNldF9nZXRfbmFtZVwiLFxuICAgIFwidGlsZXNldF9nZXRfdGV4dHVyZVwiLFxuICAgIFwidGlsZXNldF9nZXRfdXZzXCIsXG4gICAgXCJ0aW1lX2JwbV90b19zZWNvbmRzXCIsXG4gICAgXCJ0aW1lX3NlY29uZHNfdG9fYnBtXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9jcmVhdGVcIixcbiAgICBcInRpbWVfc291cmNlX2Rlc3Ryb3lcIixcbiAgICBcInRpbWVfc291cmNlX2V4aXN0c1wiLFxuICAgIFwidGltZV9zb3VyY2VfZ2V0X2NoaWxkcmVuXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfcGFyZW50XCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfcGVyaW9kXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfcmVwc19jb21wbGV0ZWRcIixcbiAgICBcInRpbWVfc291cmNlX2dldF9yZXBzX3JlbWFpbmluZ1wiLFxuICAgIFwidGltZV9zb3VyY2VfZ2V0X3N0YXRlXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9nZXRfdGltZV9yZW1haW5pbmdcIixcbiAgICBcInRpbWVfc291cmNlX2dldF91bml0c1wiLFxuICAgIFwidGltZV9zb3VyY2VfcGF1c2VcIixcbiAgICBcInRpbWVfc291cmNlX3JlY29uZmlndXJlXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9yZXNldFwiLFxuICAgIFwidGltZV9zb3VyY2VfcmVzdW1lXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9zdGFydFwiLFxuICAgIFwidGltZV9zb3VyY2Vfc3RvcFwiLFxuICAgIFwidGltZWxpbmVfYWRkXCIsXG4gICAgXCJ0aW1lbGluZV9jbGVhclwiLFxuICAgIFwidGltZWxpbmVfZGVsZXRlXCIsXG4gICAgXCJ0aW1lbGluZV9leGlzdHNcIixcbiAgICBcInRpbWVsaW5lX2dldF9uYW1lXCIsXG4gICAgXCJ0aW1lbGluZV9tYXhfbW9tZW50XCIsXG4gICAgXCJ0aW1lbGluZV9tb21lbnRfYWRkX3NjcmlwdFwiLFxuICAgIFwidGltZWxpbmVfbW9tZW50X2NsZWFyXCIsXG4gICAgXCJ0aW1lbGluZV9zaXplXCIsXG4gICAgXCJ0eXBlb2ZcIixcbiAgICBcInVybF9nZXRfZG9tYWluXCIsXG4gICAgXCJ1cmxfb3BlblwiLFxuICAgIFwidXJsX29wZW5fZXh0XCIsXG4gICAgXCJ1cmxfb3Blbl9mdWxsXCIsXG4gICAgXCJ1d3BfZGV2aWNlX3RvdWNoc2NyZWVuX2F2YWlsYWJsZVwiLFxuICAgIFwidXdwX2xpdmV0aWxlX2JhZGdlX2NsZWFyXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfYmFkZ2Vfbm90aWZpY2F0aW9uXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX2JlZ2luXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX2VuZFwiLFxuICAgIFwidXdwX2xpdmV0aWxlX25vdGlmaWNhdGlvbl9leHBpcnlcIixcbiAgICBcInV3cF9saXZldGlsZV9ub3RpZmljYXRpb25faW1hZ2VfYWRkXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX3NlY29uZGFyeV9iZWdpblwiLFxuICAgIFwidXdwX2xpdmV0aWxlX25vdGlmaWNhdGlvbl90YWdcIixcbiAgICBcInV3cF9saXZldGlsZV9ub3RpZmljYXRpb25fdGVtcGxhdGVfYWRkXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfbm90aWZpY2F0aW9uX3RleHRfYWRkXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfcXVldWVfZW5hYmxlXCIsXG4gICAgXCJ1d3BfbGl2ZXRpbGVfdGlsZV9jbGVhclwiLFxuICAgIFwidXdwX3NlY29uZGFyeXRpbGVfYmFkZ2VfY2xlYXJcIixcbiAgICBcInV3cF9zZWNvbmRhcnl0aWxlX2JhZGdlX25vdGlmaWNhdGlvblwiLFxuICAgIFwidXdwX3NlY29uZGFyeXRpbGVfZGVsZXRlXCIsXG4gICAgXCJ1d3Bfc2Vjb25kYXJ5dGlsZV9waW5cIixcbiAgICBcInV3cF9zZWNvbmRhcnl0aWxlX3RpbGVfY2xlYXJcIixcbiAgICBcInZhcmlhYmxlX2Nsb25lXCIsXG4gICAgXCJ2YXJpYWJsZV9nZXRfaGFzaFwiLFxuICAgIFwidmFyaWFibGVfZ2xvYmFsX2V4aXN0c1wiLFxuICAgIFwidmFyaWFibGVfZ2xvYmFsX2dldFwiLFxuICAgIFwidmFyaWFibGVfZ2xvYmFsX3NldFwiLFxuICAgIFwidmFyaWFibGVfaW5zdGFuY2VfZXhpc3RzXCIsXG4gICAgXCJ2YXJpYWJsZV9pbnN0YW5jZV9nZXRcIixcbiAgICBcInZhcmlhYmxlX2luc3RhbmNlX2dldF9uYW1lc1wiLFxuICAgIFwidmFyaWFibGVfaW5zdGFuY2VfbmFtZXNfY291bnRcIixcbiAgICBcInZhcmlhYmxlX2luc3RhbmNlX3NldFwiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X2V4aXN0c1wiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X2dldFwiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X2dldF9uYW1lc1wiLFxuICAgIFwidmFyaWFibGVfc3RydWN0X25hbWVzX2NvdW50XCIsXG4gICAgXCJ2YXJpYWJsZV9zdHJ1Y3RfcmVtb3ZlXCIsXG4gICAgXCJ2YXJpYWJsZV9zdHJ1Y3Rfc2V0XCIsXG4gICAgXCJ2ZXJ0ZXhfYXJnYlwiLFxuICAgIFwidmVydGV4X2JlZ2luXCIsXG4gICAgXCJ2ZXJ0ZXhfY29sb3JcIixcbiAgICBcInZlcnRleF9jb2xvdXJcIixcbiAgICBcInZlcnRleF9jcmVhdGVfYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfY3JlYXRlX2J1ZmZlcl9leHRcIixcbiAgICBcInZlcnRleF9jcmVhdGVfYnVmZmVyX2Zyb21fYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfY3JlYXRlX2J1ZmZlcl9mcm9tX2J1ZmZlcl9leHRcIixcbiAgICBcInZlcnRleF9kZWxldGVfYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfZW5kXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQxXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQyXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQzXCIsXG4gICAgXCJ2ZXJ0ZXhfZmxvYXQ0XCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2FkZF9jb2xvclwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9hZGRfY29sb3VyXCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2FkZF9jdXN0b21cIixcbiAgICBcInZlcnRleF9mb3JtYXRfYWRkX25vcm1hbFwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9hZGRfcG9zaXRpb25cIixcbiAgICBcInZlcnRleF9mb3JtYXRfYWRkX3Bvc2l0aW9uXzNkXCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2FkZF90ZXhjb29yZFwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9iZWdpblwiLFxuICAgIFwidmVydGV4X2Zvcm1hdF9kZWxldGVcIixcbiAgICBcInZlcnRleF9mb3JtYXRfZW5kXCIsXG4gICAgXCJ2ZXJ0ZXhfZm9ybWF0X2dldF9pbmZvXCIsXG4gICAgXCJ2ZXJ0ZXhfZnJlZXplXCIsXG4gICAgXCJ2ZXJ0ZXhfZ2V0X2J1ZmZlcl9zaXplXCIsXG4gICAgXCJ2ZXJ0ZXhfZ2V0X251bWJlclwiLFxuICAgIFwidmVydGV4X25vcm1hbFwiLFxuICAgIFwidmVydGV4X3Bvc2l0aW9uXCIsXG4gICAgXCJ2ZXJ0ZXhfcG9zaXRpb25fM2RcIixcbiAgICBcInZlcnRleF9zdWJtaXRcIixcbiAgICBcInZlcnRleF9zdWJtaXRfZXh0XCIsXG4gICAgXCJ2ZXJ0ZXhfdGV4Y29vcmRcIixcbiAgICBcInZlcnRleF91Ynl0ZTRcIixcbiAgICBcInZlcnRleF91cGRhdGVfYnVmZmVyX2Zyb21fYnVmZmVyXCIsXG4gICAgXCJ2ZXJ0ZXhfdXBkYXRlX2J1ZmZlcl9mcm9tX3ZlcnRleFwiLFxuICAgIFwidmlkZW9fY2xvc2VcIixcbiAgICBcInZpZGVvX2RyYXdcIixcbiAgICBcInZpZGVvX2VuYWJsZV9sb29wXCIsXG4gICAgXCJ2aWRlb19nZXRfZHVyYXRpb25cIixcbiAgICBcInZpZGVvX2dldF9mb3JtYXRcIixcbiAgICBcInZpZGVvX2dldF9wb3NpdGlvblwiLFxuICAgIFwidmlkZW9fZ2V0X3N0YXR1c1wiLFxuICAgIFwidmlkZW9fZ2V0X3ZvbHVtZVwiLFxuICAgIFwidmlkZW9faXNfbG9vcGluZ1wiLFxuICAgIFwidmlkZW9fb3BlblwiLFxuICAgIFwidmlkZW9fcGF1c2VcIixcbiAgICBcInZpZGVvX3Jlc3VtZVwiLFxuICAgIFwidmlkZW9fc2Vla190b1wiLFxuICAgIFwidmlkZW9fc2V0X3ZvbHVtZVwiLFxuICAgIFwidmlld19nZXRfY2FtZXJhXCIsXG4gICAgXCJ2aWV3X2dldF9ocG9ydFwiLFxuICAgIFwidmlld19nZXRfc3VyZmFjZV9pZFwiLFxuICAgIFwidmlld19nZXRfdmlzaWJsZVwiLFxuICAgIFwidmlld19nZXRfd3BvcnRcIixcbiAgICBcInZpZXdfZ2V0X3hwb3J0XCIsXG4gICAgXCJ2aWV3X2dldF95cG9ydFwiLFxuICAgIFwidmlld19zZXRfY2FtZXJhXCIsXG4gICAgXCJ2aWV3X3NldF9ocG9ydFwiLFxuICAgIFwidmlld19zZXRfc3VyZmFjZV9pZFwiLFxuICAgIFwidmlld19zZXRfdmlzaWJsZVwiLFxuICAgIFwidmlld19zZXRfd3BvcnRcIixcbiAgICBcInZpZXdfc2V0X3hwb3J0XCIsXG4gICAgXCJ2aWV3X3NldF95cG9ydFwiLFxuICAgIFwidmlydHVhbF9rZXlfYWRkXCIsXG4gICAgXCJ2aXJ0dWFsX2tleV9kZWxldGVcIixcbiAgICBcInZpcnR1YWxfa2V5X2hpZGVcIixcbiAgICBcInZpcnR1YWxfa2V5X3Nob3dcIixcbiAgICBcIndhbGxwYXBlcl9zZXRfY29uZmlnXCIsXG4gICAgXCJ3YWxscGFwZXJfc2V0X3N1YnNjcmlwdGlvbnNcIixcbiAgICBcIndlYWtfcmVmX2FsaXZlXCIsXG4gICAgXCJ3ZWFrX3JlZl9hbnlfYWxpdmVcIixcbiAgICBcIndlYWtfcmVmX2NyZWF0ZVwiLFxuICAgIFwid2luZG93X2NlbnRlclwiLFxuICAgIFwid2luZG93X2RldmljZVwiLFxuICAgIFwid2luZG93X2VuYWJsZV9ib3JkZXJsZXNzX2Z1bGxzY3JlZW5cIixcbiAgICBcIndpbmRvd19nZXRfYm9yZGVybGVzc19mdWxsc2NyZWVuXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X2NhcHRpb25cIixcbiAgICBcIndpbmRvd19nZXRfY29sb3JcIixcbiAgICBcIndpbmRvd19nZXRfY29sb3VyXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X2N1cnNvclwiLFxuICAgIFwid2luZG93X2dldF9mdWxsc2NyZWVuXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X2hlaWdodFwiLFxuICAgIFwid2luZG93X2dldF9zaG93Ym9yZGVyXCIsXG4gICAgXCJ3aW5kb3dfZ2V0X3Zpc2libGVfcmVjdHNcIixcbiAgICBcIndpbmRvd19nZXRfd2lkdGhcIixcbiAgICBcIndpbmRvd19nZXRfeFwiLFxuICAgIFwid2luZG93X2dldF95XCIsXG4gICAgXCJ3aW5kb3dfaGFuZGxlXCIsXG4gICAgXCJ3aW5kb3dfaGFzX2ZvY3VzXCIsXG4gICAgXCJ3aW5kb3dfbW91c2VfZ2V0X2RlbHRhX3hcIixcbiAgICBcIndpbmRvd19tb3VzZV9nZXRfZGVsdGFfeVwiLFxuICAgIFwid2luZG93X21vdXNlX2dldF9sb2NrZWRcIixcbiAgICBcIndpbmRvd19tb3VzZV9nZXRfeFwiLFxuICAgIFwid2luZG93X21vdXNlX2dldF95XCIsXG4gICAgXCJ3aW5kb3dfbW91c2Vfc2V0XCIsXG4gICAgXCJ3aW5kb3dfbW91c2Vfc2V0X2xvY2tlZFwiLFxuICAgIFwid2luZG93X3NldF9jYXB0aW9uXCIsXG4gICAgXCJ3aW5kb3dfc2V0X2NvbG9yXCIsXG4gICAgXCJ3aW5kb3dfc2V0X2NvbG91clwiLFxuICAgIFwid2luZG93X3NldF9jdXJzb3JcIixcbiAgICBcIndpbmRvd19zZXRfZnVsbHNjcmVlblwiLFxuICAgIFwid2luZG93X3NldF9tYXhfaGVpZ2h0XCIsXG4gICAgXCJ3aW5kb3dfc2V0X21heF93aWR0aFwiLFxuICAgIFwid2luZG93X3NldF9taW5faGVpZ2h0XCIsXG4gICAgXCJ3aW5kb3dfc2V0X21pbl93aWR0aFwiLFxuICAgIFwid2luZG93X3NldF9wb3NpdGlvblwiLFxuICAgIFwid2luZG93X3NldF9yZWN0YW5nbGVcIixcbiAgICBcIndpbmRvd19zZXRfc2hvd2JvcmRlclwiLFxuICAgIFwid2luZG93X3NldF9zaXplXCIsXG4gICAgXCJ3aW5kb3dfdmlld19tb3VzZV9nZXRfeFwiLFxuICAgIFwid2luZG93X3ZpZXdfbW91c2VfZ2V0X3lcIixcbiAgICBcIndpbmRvd192aWV3c19tb3VzZV9nZXRfeFwiLFxuICAgIFwid2luZG93X3ZpZXdzX21vdXNlX2dldF95XCIsXG4gICAgXCJ3aW5waG9uZV90aWxlX2JhY2tncm91bmRfY29sb3JcIixcbiAgICBcIndpbnBob25lX3RpbGVfYmFja2dyb3VuZF9jb2xvdXJcIixcbiAgICBcInppcF9hZGRfZmlsZVwiLFxuICAgIFwiemlwX2NyZWF0ZVwiLFxuICAgIFwiemlwX3NhdmVcIixcbiAgICBcInppcF91bnppcFwiLFxuICAgIFwiemlwX3VuemlwX2FzeW5jXCJcbiAgXTtcbiAgY29uc3QgU1lNQk9MUyA9IFtcbiAgICBcIkF1ZGlvRWZmZWN0XCIsXG4gICAgXCJBdWRpb0VmZmVjdFR5cGVcIixcbiAgICBcIkF1ZGlvTEZPVHlwZVwiLFxuICAgIFwiR01fYnVpbGRfZGF0ZVwiLFxuICAgIFwiR01fYnVpbGRfdHlwZVwiLFxuICAgIFwiR01faXNfc2FuZGJveGVkXCIsXG4gICAgXCJHTV9wcm9qZWN0X2ZpbGVuYW1lXCIsXG4gICAgXCJHTV9ydW50aW1lX3ZlcnNpb25cIixcbiAgICBcIkdNX3ZlcnNpb25cIixcbiAgICBcIk5hTlwiLFxuICAgIFwiX0dNRklMRV9cIixcbiAgICBcIl9HTUZVTkNUSU9OX1wiLFxuICAgIFwiX0dNTElORV9cIixcbiAgICBcImFsaWdubWVudEhcIixcbiAgICBcImFsaWdubWVudFZcIixcbiAgICBcImFsbFwiLFxuICAgIFwiYW5pbWN1cnZldHlwZV9iZXppZXJcIixcbiAgICBcImFuaW1jdXJ2ZXR5cGVfY2F0bXVsbHJvbVwiLFxuICAgIFwiYW5pbWN1cnZldHlwZV9saW5lYXJcIixcbiAgICBcImFzc2V0X2FuaW1hdGlvbmN1cnZlXCIsXG4gICAgXCJhc3NldF9mb250XCIsXG4gICAgXCJhc3NldF9vYmplY3RcIixcbiAgICBcImFzc2V0X3BhdGhcIixcbiAgICBcImFzc2V0X3Jvb21cIixcbiAgICBcImFzc2V0X3NjcmlwdFwiLFxuICAgIFwiYXNzZXRfc2VxdWVuY2VcIixcbiAgICBcImFzc2V0X3NoYWRlclwiLFxuICAgIFwiYXNzZXRfc291bmRcIixcbiAgICBcImFzc2V0X3Nwcml0ZVwiLFxuICAgIFwiYXNzZXRfdGlsZXNcIixcbiAgICBcImFzc2V0X3RpbWVsaW5lXCIsXG4gICAgXCJhc3NldF91bmtub3duXCIsXG4gICAgXCJhdWRpb18zRFwiLFxuICAgIFwiYXVkaW9fYnVzX21haW5cIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfZXhwb25lbnRfZGlzdGFuY2VcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfZXhwb25lbnRfZGlzdGFuY2VfY2xhbXBlZFwiLFxuICAgIFwiYXVkaW9fZmFsbG9mZl9leHBvbmVudF9kaXN0YW5jZV9zY2FsZWRcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfaW52ZXJzZV9kaXN0YW5jZVwiLFxuICAgIFwiYXVkaW9fZmFsbG9mZl9pbnZlcnNlX2Rpc3RhbmNlX2NsYW1wZWRcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfaW52ZXJzZV9kaXN0YW5jZV9zY2FsZWRcIixcbiAgICBcImF1ZGlvX2ZhbGxvZmZfbGluZWFyX2Rpc3RhbmNlXCIsXG4gICAgXCJhdWRpb19mYWxsb2ZmX2xpbmVhcl9kaXN0YW5jZV9jbGFtcGVkXCIsXG4gICAgXCJhdWRpb19mYWxsb2ZmX25vbmVcIixcbiAgICBcImF1ZGlvX21vbm9cIixcbiAgICBcImF1ZGlvX3N0ZXJlb1wiLFxuICAgIFwiYmJveGtpbmRfZGlhbW9uZFwiLFxuICAgIFwiYmJveGtpbmRfZWxsaXBzZVwiLFxuICAgIFwiYmJveGtpbmRfcHJlY2lzZVwiLFxuICAgIFwiYmJveGtpbmRfcmVjdGFuZ3VsYXJcIixcbiAgICBcImJib3htb2RlX2F1dG9tYXRpY1wiLFxuICAgIFwiYmJveG1vZGVfZnVsbGltYWdlXCIsXG4gICAgXCJiYm94bW9kZV9tYW51YWxcIixcbiAgICBcImJtX2FkZFwiLFxuICAgIFwiYm1fZGVzdF9hbHBoYVwiLFxuICAgIFwiYm1fZGVzdF9jb2xvclwiLFxuICAgIFwiYm1fZGVzdF9jb2xvdXJcIixcbiAgICBcImJtX2ludl9kZXN0X2FscGhhXCIsXG4gICAgXCJibV9pbnZfZGVzdF9jb2xvclwiLFxuICAgIFwiYm1faW52X2Rlc3RfY29sb3VyXCIsXG4gICAgXCJibV9pbnZfc3JjX2FscGhhXCIsXG4gICAgXCJibV9pbnZfc3JjX2NvbG9yXCIsXG4gICAgXCJibV9pbnZfc3JjX2NvbG91clwiLFxuICAgIFwiYm1fbWF4XCIsXG4gICAgXCJibV9ub3JtYWxcIixcbiAgICBcImJtX29uZVwiLFxuICAgIFwiYm1fc3JjX2FscGhhXCIsXG4gICAgXCJibV9zcmNfYWxwaGFfc2F0XCIsXG4gICAgXCJibV9zcmNfY29sb3JcIixcbiAgICBcImJtX3NyY19jb2xvdXJcIixcbiAgICBcImJtX3N1YnRyYWN0XCIsXG4gICAgXCJibV96ZXJvXCIsXG4gICAgXCJicm93c2VyX2Nocm9tZVwiLFxuICAgIFwiYnJvd3Nlcl9lZGdlXCIsXG4gICAgXCJicm93c2VyX2ZpcmVmb3hcIixcbiAgICBcImJyb3dzZXJfaWVcIixcbiAgICBcImJyb3dzZXJfaWVfbW9iaWxlXCIsXG4gICAgXCJicm93c2VyX25vdF9hX2Jyb3dzZXJcIixcbiAgICBcImJyb3dzZXJfb3BlcmFcIixcbiAgICBcImJyb3dzZXJfc2FmYXJpXCIsXG4gICAgXCJicm93c2VyX3NhZmFyaV9tb2JpbGVcIixcbiAgICBcImJyb3dzZXJfdGl6ZW5cIixcbiAgICBcImJyb3dzZXJfdW5rbm93blwiLFxuICAgIFwiYnJvd3Nlcl93aW5kb3dzX3N0b3JlXCIsXG4gICAgXCJidWZmZXJfYm9vbFwiLFxuICAgIFwiYnVmZmVyX2YxNlwiLFxuICAgIFwiYnVmZmVyX2YzMlwiLFxuICAgIFwiYnVmZmVyX2Y2NFwiLFxuICAgIFwiYnVmZmVyX2Zhc3RcIixcbiAgICBcImJ1ZmZlcl9maXhlZFwiLFxuICAgIFwiYnVmZmVyX2dyb3dcIixcbiAgICBcImJ1ZmZlcl9zMTZcIixcbiAgICBcImJ1ZmZlcl9zMzJcIixcbiAgICBcImJ1ZmZlcl9zOFwiLFxuICAgIFwiYnVmZmVyX3NlZWtfZW5kXCIsXG4gICAgXCJidWZmZXJfc2Vla19yZWxhdGl2ZVwiLFxuICAgIFwiYnVmZmVyX3NlZWtfc3RhcnRcIixcbiAgICBcImJ1ZmZlcl9zdHJpbmdcIixcbiAgICBcImJ1ZmZlcl90ZXh0XCIsXG4gICAgXCJidWZmZXJfdTE2XCIsXG4gICAgXCJidWZmZXJfdTMyXCIsXG4gICAgXCJidWZmZXJfdTY0XCIsXG4gICAgXCJidWZmZXJfdThcIixcbiAgICBcImJ1ZmZlcl92YnVmZmVyXCIsXG4gICAgXCJidWZmZXJfd3JhcFwiLFxuICAgIFwiY19hcXVhXCIsXG4gICAgXCJjX2JsYWNrXCIsXG4gICAgXCJjX2JsdWVcIixcbiAgICBcImNfZGtncmF5XCIsXG4gICAgXCJjX2RrZ3JleVwiLFxuICAgIFwiY19mdWNoc2lhXCIsXG4gICAgXCJjX2dyYXlcIixcbiAgICBcImNfZ3JlZW5cIixcbiAgICBcImNfZ3JleVwiLFxuICAgIFwiY19saW1lXCIsXG4gICAgXCJjX2x0Z3JheVwiLFxuICAgIFwiY19sdGdyZXlcIixcbiAgICBcImNfbWFyb29uXCIsXG4gICAgXCJjX25hdnlcIixcbiAgICBcImNfb2xpdmVcIixcbiAgICBcImNfb3JhbmdlXCIsXG4gICAgXCJjX3B1cnBsZVwiLFxuICAgIFwiY19yZWRcIixcbiAgICBcImNfc2lsdmVyXCIsXG4gICAgXCJjX3RlYWxcIixcbiAgICBcImNfd2hpdGVcIixcbiAgICBcImNfeWVsbG93XCIsXG4gICAgXCJjYWNoZV9kaXJlY3RvcnlcIixcbiAgICBcImNoYXJhY3RlclNwYWNpbmdcIixcbiAgICBcImNtcGZ1bmNfYWx3YXlzXCIsXG4gICAgXCJjbXBmdW5jX2VxdWFsXCIsXG4gICAgXCJjbXBmdW5jX2dyZWF0ZXJcIixcbiAgICBcImNtcGZ1bmNfZ3JlYXRlcmVxdWFsXCIsXG4gICAgXCJjbXBmdW5jX2xlc3NcIixcbiAgICBcImNtcGZ1bmNfbGVzc2VxdWFsXCIsXG4gICAgXCJjbXBmdW5jX25ldmVyXCIsXG4gICAgXCJjbXBmdW5jX25vdGVxdWFsXCIsXG4gICAgXCJjb3JlQ29sb3JcIixcbiAgICBcImNvcmVDb2xvdXJcIixcbiAgICBcImNyX2FwcHN0YXJ0XCIsXG4gICAgXCJjcl9hcnJvd1wiLFxuICAgIFwiY3JfYmVhbVwiLFxuICAgIFwiY3JfY3Jvc3NcIixcbiAgICBcImNyX2RlZmF1bHRcIixcbiAgICBcImNyX2RyYWdcIixcbiAgICBcImNyX2hhbmRwb2ludFwiLFxuICAgIFwiY3JfaG91cmdsYXNzXCIsXG4gICAgXCJjcl9ub25lXCIsXG4gICAgXCJjcl9zaXplX2FsbFwiLFxuICAgIFwiY3Jfc2l6ZV9uZXN3XCIsXG4gICAgXCJjcl9zaXplX25zXCIsXG4gICAgXCJjcl9zaXplX253c2VcIixcbiAgICBcImNyX3NpemVfd2VcIixcbiAgICBcImNyX3VwYXJyb3dcIixcbiAgICBcImN1bGxfY2xvY2t3aXNlXCIsXG4gICAgXCJjdWxsX2NvdW50ZXJjbG9ja3dpc2VcIixcbiAgICBcImN1bGxfbm9jdWxsaW5nXCIsXG4gICAgXCJkZXZpY2VfZW11bGF0b3JcIixcbiAgICBcImRldmljZV9pb3NfaXBhZFwiLFxuICAgIFwiZGV2aWNlX2lvc19pcGFkX3JldGluYVwiLFxuICAgIFwiZGV2aWNlX2lvc19pcGhvbmVcIixcbiAgICBcImRldmljZV9pb3NfaXBob25lNVwiLFxuICAgIFwiZGV2aWNlX2lvc19pcGhvbmU2XCIsXG4gICAgXCJkZXZpY2VfaW9zX2lwaG9uZTZwbHVzXCIsXG4gICAgXCJkZXZpY2VfaW9zX2lwaG9uZV9yZXRpbmFcIixcbiAgICBcImRldmljZV9pb3NfdW5rbm93blwiLFxuICAgIFwiZGV2aWNlX3RhYmxldFwiLFxuICAgIFwiZGlzcGxheV9sYW5kc2NhcGVcIixcbiAgICBcImRpc3BsYXlfbGFuZHNjYXBlX2ZsaXBwZWRcIixcbiAgICBcImRpc3BsYXlfcG9ydHJhaXRcIixcbiAgICBcImRpc3BsYXlfcG9ydHJhaXRfZmxpcHBlZFwiLFxuICAgIFwiZGxsX2NkZWNsXCIsXG4gICAgXCJkbGxfc3RkY2FsbFwiLFxuICAgIFwiZHJvcFNoYWRvd0VuYWJsZWRcIixcbiAgICBcImRyb3BTaGFkb3dFbmFibGVkXCIsXG4gICAgXCJkc190eXBlX2dyaWRcIixcbiAgICBcImRzX3R5cGVfbGlzdFwiLFxuICAgIFwiZHNfdHlwZV9tYXBcIixcbiAgICBcImRzX3R5cGVfcHJpb3JpdHlcIixcbiAgICBcImRzX3R5cGVfcXVldWVcIixcbiAgICBcImRzX3R5cGVfc3RhY2tcIixcbiAgICBcImVmX2Nsb3VkXCIsXG4gICAgXCJlZl9lbGxpcHNlXCIsXG4gICAgXCJlZl9leHBsb3Npb25cIixcbiAgICBcImVmX2ZpcmV3b3JrXCIsXG4gICAgXCJlZl9mbGFyZVwiLFxuICAgIFwiZWZfcmFpblwiLFxuICAgIFwiZWZfcmluZ1wiLFxuICAgIFwiZWZfc21va2VcIixcbiAgICBcImVmX3Ntb2tldXBcIixcbiAgICBcImVmX3Nub3dcIixcbiAgICBcImVmX3NwYXJrXCIsXG4gICAgXCJlZl9zdGFyXCIsXG4gICAgXCJlZmZlY3RzRW5hYmxlZFwiLFxuICAgIFwiZWZmZWN0c0VuYWJsZWRcIixcbiAgICBcImV2X2FsYXJtXCIsXG4gICAgXCJldl9hbmltYXRpb25fZW5kXCIsXG4gICAgXCJldl9hbmltYXRpb25fZXZlbnRcIixcbiAgICBcImV2X2FuaW1hdGlvbl91cGRhdGVcIixcbiAgICBcImV2X2FzeW5jX2F1ZGlvX3BsYXliYWNrXCIsXG4gICAgXCJldl9hc3luY19hdWRpb19wbGF5YmFja19lbmRlZFwiLFxuICAgIFwiZXZfYXN5bmNfYXVkaW9fcmVjb3JkaW5nXCIsXG4gICAgXCJldl9hc3luY19kaWFsb2dcIixcbiAgICBcImV2X2FzeW5jX3B1c2hfbm90aWZpY2F0aW9uXCIsXG4gICAgXCJldl9hc3luY19zYXZlX2xvYWRcIixcbiAgICBcImV2X2FzeW5jX3NhdmVfbG9hZFwiLFxuICAgIFwiZXZfYXN5bmNfc29jaWFsXCIsXG4gICAgXCJldl9hc3luY19zeXN0ZW1fZXZlbnRcIixcbiAgICBcImV2X2FzeW5jX3dlYlwiLFxuICAgIFwiZXZfYXN5bmNfd2ViX2Nsb3VkXCIsXG4gICAgXCJldl9hc3luY193ZWJfaWFwXCIsXG4gICAgXCJldl9hc3luY193ZWJfaW1hZ2VfbG9hZFwiLFxuICAgIFwiZXZfYXN5bmNfd2ViX25ldHdvcmtpbmdcIixcbiAgICBcImV2X2FzeW5jX3dlYl9zdGVhbVwiLFxuICAgIFwiZXZfYXVkaW9fcGxheWJhY2tcIixcbiAgICBcImV2X2F1ZGlvX3BsYXliYWNrX2VuZGVkXCIsXG4gICAgXCJldl9hdWRpb19yZWNvcmRpbmdcIixcbiAgICBcImV2X2JvdW5kYXJ5XCIsXG4gICAgXCJldl9ib3VuZGFyeV92aWV3MFwiLFxuICAgIFwiZXZfYm91bmRhcnlfdmlldzFcIixcbiAgICBcImV2X2JvdW5kYXJ5X3ZpZXcyXCIsXG4gICAgXCJldl9ib3VuZGFyeV92aWV3M1wiLFxuICAgIFwiZXZfYm91bmRhcnlfdmlldzRcIixcbiAgICBcImV2X2JvdW5kYXJ5X3ZpZXc1XCIsXG4gICAgXCJldl9ib3VuZGFyeV92aWV3NlwiLFxuICAgIFwiZXZfYm91bmRhcnlfdmlldzdcIixcbiAgICBcImV2X2Jyb2FkY2FzdF9tZXNzYWdlXCIsXG4gICAgXCJldl9jbGVhbnVwXCIsXG4gICAgXCJldl9jb2xsaXNpb25cIixcbiAgICBcImV2X2NyZWF0ZVwiLFxuICAgIFwiZXZfZGVzdHJveVwiLFxuICAgIFwiZXZfZGlhbG9nX2FzeW5jXCIsXG4gICAgXCJldl9kcmF3XCIsXG4gICAgXCJldl9kcmF3X2JlZ2luXCIsXG4gICAgXCJldl9kcmF3X2VuZFwiLFxuICAgIFwiZXZfZHJhd19ub3JtYWxcIixcbiAgICBcImV2X2RyYXdfcG9zdFwiLFxuICAgIFwiZXZfZHJhd19wcmVcIixcbiAgICBcImV2X2VuZF9vZl9wYXRoXCIsXG4gICAgXCJldl9nYW1lX2VuZFwiLFxuICAgIFwiZXZfZ2FtZV9zdGFydFwiLFxuICAgIFwiZXZfZ2VzdHVyZVwiLFxuICAgIFwiZXZfZ2VzdHVyZV9kb3VibGVfdGFwXCIsXG4gICAgXCJldl9nZXN0dXJlX2RyYWdfZW5kXCIsXG4gICAgXCJldl9nZXN0dXJlX2RyYWdfc3RhcnRcIixcbiAgICBcImV2X2dlc3R1cmVfZHJhZ2dpbmdcIixcbiAgICBcImV2X2dlc3R1cmVfZmxpY2tcIixcbiAgICBcImV2X2dlc3R1cmVfcGluY2hfZW5kXCIsXG4gICAgXCJldl9nZXN0dXJlX3BpbmNoX2luXCIsXG4gICAgXCJldl9nZXN0dXJlX3BpbmNoX291dFwiLFxuICAgIFwiZXZfZ2VzdHVyZV9waW5jaF9zdGFydFwiLFxuICAgIFwiZXZfZ2VzdHVyZV9yb3RhdGVfZW5kXCIsXG4gICAgXCJldl9nZXN0dXJlX3JvdGF0ZV9zdGFydFwiLFxuICAgIFwiZXZfZ2VzdHVyZV9yb3RhdGluZ1wiLFxuICAgIFwiZXZfZ2VzdHVyZV90YXBcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX2RvdWJsZV90YXBcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX2RyYWdfZW5kXCIsXG4gICAgXCJldl9nbG9iYWxfZ2VzdHVyZV9kcmFnX3N0YXJ0XCIsXG4gICAgXCJldl9nbG9iYWxfZ2VzdHVyZV9kcmFnZ2luZ1wiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfZmxpY2tcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3BpbmNoX2VuZFwiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfaW5cIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3BpbmNoX291dFwiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfcGluY2hfc3RhcnRcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3JvdGF0ZV9lbmRcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3JvdGF0ZV9zdGFydFwiLFxuICAgIFwiZXZfZ2xvYmFsX2dlc3R1cmVfcm90YXRpbmdcIixcbiAgICBcImV2X2dsb2JhbF9nZXN0dXJlX3RhcFwiLFxuICAgIFwiZXZfZ2xvYmFsX2xlZnRfYnV0dG9uXCIsXG4gICAgXCJldl9nbG9iYWxfbGVmdF9wcmVzc1wiLFxuICAgIFwiZXZfZ2xvYmFsX2xlZnRfcmVsZWFzZVwiLFxuICAgIFwiZXZfZ2xvYmFsX21pZGRsZV9idXR0b25cIixcbiAgICBcImV2X2dsb2JhbF9taWRkbGVfcHJlc3NcIixcbiAgICBcImV2X2dsb2JhbF9taWRkbGVfcmVsZWFzZVwiLFxuICAgIFwiZXZfZ2xvYmFsX3JpZ2h0X2J1dHRvblwiLFxuICAgIFwiZXZfZ2xvYmFsX3JpZ2h0X3ByZXNzXCIsXG4gICAgXCJldl9nbG9iYWxfcmlnaHRfcmVsZWFzZVwiLFxuICAgIFwiZXZfZ3VpXCIsXG4gICAgXCJldl9ndWlfYmVnaW5cIixcbiAgICBcImV2X2d1aV9lbmRcIixcbiAgICBcImV2X2pveXN0aWNrMV9idXR0b24xXCIsXG4gICAgXCJldl9qb3lzdGljazFfYnV0dG9uMlwiLFxuICAgIFwiZXZfam95c3RpY2sxX2J1dHRvbjNcIixcbiAgICBcImV2X2pveXN0aWNrMV9idXR0b240XCIsXG4gICAgXCJldl9qb3lzdGljazFfYnV0dG9uNVwiLFxuICAgIFwiZXZfam95c3RpY2sxX2J1dHRvbjZcIixcbiAgICBcImV2X2pveXN0aWNrMV9idXR0b243XCIsXG4gICAgXCJldl9qb3lzdGljazFfYnV0dG9uOFwiLFxuICAgIFwiZXZfam95c3RpY2sxX2Rvd25cIixcbiAgICBcImV2X2pveXN0aWNrMV9sZWZ0XCIsXG4gICAgXCJldl9qb3lzdGljazFfcmlnaHRcIixcbiAgICBcImV2X2pveXN0aWNrMV91cFwiLFxuICAgIFwiZXZfam95c3RpY2syX2J1dHRvbjFcIixcbiAgICBcImV2X2pveXN0aWNrMl9idXR0b24yXCIsXG4gICAgXCJldl9qb3lzdGljazJfYnV0dG9uM1wiLFxuICAgIFwiZXZfam95c3RpY2syX2J1dHRvbjRcIixcbiAgICBcImV2X2pveXN0aWNrMl9idXR0b241XCIsXG4gICAgXCJldl9qb3lzdGljazJfYnV0dG9uNlwiLFxuICAgIFwiZXZfam95c3RpY2syX2J1dHRvbjdcIixcbiAgICBcImV2X2pveXN0aWNrMl9idXR0b244XCIsXG4gICAgXCJldl9qb3lzdGljazJfZG93blwiLFxuICAgIFwiZXZfam95c3RpY2syX2xlZnRcIixcbiAgICBcImV2X2pveXN0aWNrMl9yaWdodFwiLFxuICAgIFwiZXZfam95c3RpY2syX3VwXCIsXG4gICAgXCJldl9rZXlib2FyZFwiLFxuICAgIFwiZXZfa2V5cHJlc3NcIixcbiAgICBcImV2X2tleXJlbGVhc2VcIixcbiAgICBcImV2X2xlZnRfYnV0dG9uXCIsXG4gICAgXCJldl9sZWZ0X3ByZXNzXCIsXG4gICAgXCJldl9sZWZ0X3JlbGVhc2VcIixcbiAgICBcImV2X21pZGRsZV9idXR0b25cIixcbiAgICBcImV2X21pZGRsZV9wcmVzc1wiLFxuICAgIFwiZXZfbWlkZGxlX3JlbGVhc2VcIixcbiAgICBcImV2X21vdXNlXCIsXG4gICAgXCJldl9tb3VzZV9lbnRlclwiLFxuICAgIFwiZXZfbW91c2VfbGVhdmVcIixcbiAgICBcImV2X21vdXNlX3doZWVsX2Rvd25cIixcbiAgICBcImV2X21vdXNlX3doZWVsX3VwXCIsXG4gICAgXCJldl9ub19idXR0b25cIixcbiAgICBcImV2X25vX21vcmVfaGVhbHRoXCIsXG4gICAgXCJldl9ub19tb3JlX2xpdmVzXCIsXG4gICAgXCJldl9vdGhlclwiLFxuICAgIFwiZXZfb3V0c2lkZVwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3MFwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3MVwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3MlwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3M1wiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3NFwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3NVwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3NlwiLFxuICAgIFwiZXZfb3V0c2lkZV92aWV3N1wiLFxuICAgIFwiZXZfcHJlX2NyZWF0ZVwiLFxuICAgIFwiZXZfcHVzaF9ub3RpZmljYXRpb25cIixcbiAgICBcImV2X3JpZ2h0X2J1dHRvblwiLFxuICAgIFwiZXZfcmlnaHRfcHJlc3NcIixcbiAgICBcImV2X3JpZ2h0X3JlbGVhc2VcIixcbiAgICBcImV2X3Jvb21fZW5kXCIsXG4gICAgXCJldl9yb29tX3N0YXJ0XCIsXG4gICAgXCJldl9zb2NpYWxcIixcbiAgICBcImV2X3N0ZXBcIixcbiAgICBcImV2X3N0ZXBfYmVnaW5cIixcbiAgICBcImV2X3N0ZXBfZW5kXCIsXG4gICAgXCJldl9zdGVwX25vcm1hbFwiLFxuICAgIFwiZXZfc3lzdGVtX2V2ZW50XCIsXG4gICAgXCJldl90cmlnZ2VyXCIsXG4gICAgXCJldl91c2VyMFwiLFxuICAgIFwiZXZfdXNlcjFcIixcbiAgICBcImV2X3VzZXIxMFwiLFxuICAgIFwiZXZfdXNlcjExXCIsXG4gICAgXCJldl91c2VyMTJcIixcbiAgICBcImV2X3VzZXIxM1wiLFxuICAgIFwiZXZfdXNlcjE0XCIsXG4gICAgXCJldl91c2VyMTVcIixcbiAgICBcImV2X3VzZXIyXCIsXG4gICAgXCJldl91c2VyM1wiLFxuICAgIFwiZXZfdXNlcjRcIixcbiAgICBcImV2X3VzZXI1XCIsXG4gICAgXCJldl91c2VyNlwiLFxuICAgIFwiZXZfdXNlcjdcIixcbiAgICBcImV2X3VzZXI4XCIsXG4gICAgXCJldl91c2VyOVwiLFxuICAgIFwiZXZfd2ViX2FzeW5jXCIsXG4gICAgXCJldl93ZWJfY2xvdWRcIixcbiAgICBcImV2X3dlYl9pYXBcIixcbiAgICBcImV2X3dlYl9pbWFnZV9sb2FkXCIsXG4gICAgXCJldl93ZWJfbmV0d29ya2luZ1wiLFxuICAgIFwiZXZfd2ViX3NvdW5kX2xvYWRcIixcbiAgICBcImV2X3dlYl9zdGVhbVwiLFxuICAgIFwiZmFfYXJjaGl2ZVwiLFxuICAgIFwiZmFfYm90dG9tXCIsXG4gICAgXCJmYV9jZW50ZXJcIixcbiAgICBcImZhX2RpcmVjdG9yeVwiLFxuICAgIFwiZmFfaGlkZGVuXCIsXG4gICAgXCJmYV9sZWZ0XCIsXG4gICAgXCJmYV9taWRkbGVcIixcbiAgICBcImZhX25vbmVcIixcbiAgICBcImZhX3JlYWRvbmx5XCIsXG4gICAgXCJmYV9yaWdodFwiLFxuICAgIFwiZmFfc3lzZmlsZVwiLFxuICAgIFwiZmFfdG9wXCIsXG4gICAgXCJmYV92b2x1bWVpZFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcImZyYW1lU2l6ZVhcIixcbiAgICBcImZyYW1lU2l6ZVlcIixcbiAgICBcImdhbWVzcGVlZF9mcHNcIixcbiAgICBcImdhbWVzcGVlZF9taWNyb3NlY29uZHNcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ2xvd0NvbG9yXCIsXG4gICAgXCJnbG93Q29sb3VyXCIsXG4gICAgXCJnbG93RW5hYmxlZFwiLFxuICAgIFwiZ2xvd0VuYWJsZWRcIixcbiAgICBcImdsb3dFbmRcIixcbiAgICBcImdsb3dTdGFydFwiLFxuICAgIFwiZ3BfYXhpc19hY2NlbGVyYXRpb25feFwiLFxuICAgIFwiZ3BfYXhpc19hY2NlbGVyYXRpb25feVwiLFxuICAgIFwiZ3BfYXhpc19hY2NlbGVyYXRpb25felwiLFxuICAgIFwiZ3BfYXhpc19hbmd1bGFyX3ZlbG9jaXR5X3hcIixcbiAgICBcImdwX2F4aXNfYW5ndWxhcl92ZWxvY2l0eV95XCIsXG4gICAgXCJncF9heGlzX2FuZ3VsYXJfdmVsb2NpdHlfelwiLFxuICAgIFwiZ3BfYXhpc19vcmllbnRhdGlvbl93XCIsXG4gICAgXCJncF9heGlzX29yaWVudGF0aW9uX3hcIixcbiAgICBcImdwX2F4aXNfb3JpZW50YXRpb25feVwiLFxuICAgIFwiZ3BfYXhpc19vcmllbnRhdGlvbl96XCIsXG4gICAgXCJncF9heGlzbGhcIixcbiAgICBcImdwX2F4aXNsdlwiLFxuICAgIFwiZ3BfYXhpc3JoXCIsXG4gICAgXCJncF9heGlzcnZcIixcbiAgICBcImdwX2ZhY2UxXCIsXG4gICAgXCJncF9mYWNlMlwiLFxuICAgIFwiZ3BfZmFjZTNcIixcbiAgICBcImdwX2ZhY2U0XCIsXG4gICAgXCJncF9wYWRkXCIsXG4gICAgXCJncF9wYWRsXCIsXG4gICAgXCJncF9wYWRyXCIsXG4gICAgXCJncF9wYWR1XCIsXG4gICAgXCJncF9zZWxlY3RcIixcbiAgICBcImdwX3Nob3VsZGVybFwiLFxuICAgIFwiZ3Bfc2hvdWxkZXJsYlwiLFxuICAgIFwiZ3Bfc2hvdWxkZXJyXCIsXG4gICAgXCJncF9zaG91bGRlcnJiXCIsXG4gICAgXCJncF9zdGFydFwiLFxuICAgIFwiZ3Bfc3RpY2tsXCIsXG4gICAgXCJncF9zdGlja3JcIixcbiAgICBcImlhcF9hdmFpbGFibGVcIixcbiAgICBcImlhcF9jYW5jZWxlZFwiLFxuICAgIFwiaWFwX2V2X2NvbnN1bWVcIixcbiAgICBcImlhcF9ldl9wcm9kdWN0XCIsXG4gICAgXCJpYXBfZXZfcHVyY2hhc2VcIixcbiAgICBcImlhcF9ldl9yZXN0b3JlXCIsXG4gICAgXCJpYXBfZXZfc3RvcmVsb2FkXCIsXG4gICAgXCJpYXBfZmFpbGVkXCIsXG4gICAgXCJpYXBfcHVyY2hhc2VkXCIsXG4gICAgXCJpYXBfcmVmdW5kZWRcIixcbiAgICBcImlhcF9zdGF0dXNfYXZhaWxhYmxlXCIsXG4gICAgXCJpYXBfc3RhdHVzX2xvYWRpbmdcIixcbiAgICBcImlhcF9zdGF0dXNfcHJvY2Vzc2luZ1wiLFxuICAgIFwiaWFwX3N0YXR1c19yZXN0b3JpbmdcIixcbiAgICBcImlhcF9zdGF0dXNfdW5hdmFpbGFibGVcIixcbiAgICBcImlhcF9zdGF0dXNfdW5pbml0aWFsaXNlZFwiLFxuICAgIFwiaWFwX3N0b3JlbG9hZF9mYWlsZWRcIixcbiAgICBcImlhcF9zdG9yZWxvYWRfb2tcIixcbiAgICBcImlhcF91bmF2YWlsYWJsZVwiLFxuICAgIFwiaW5maW5pdHlcIixcbiAgICBcImtidl9hdXRvY2FwaXRhbGl6ZV9jaGFyYWN0ZXJzXCIsXG4gICAgXCJrYnZfYXV0b2NhcGl0YWxpemVfbm9uZVwiLFxuICAgIFwia2J2X2F1dG9jYXBpdGFsaXplX3NlbnRlbmNlc1wiLFxuICAgIFwia2J2X2F1dG9jYXBpdGFsaXplX3dvcmRzXCIsXG4gICAgXCJrYnZfcmV0dXJua2V5X2NvbnRpbnVlXCIsXG4gICAgXCJrYnZfcmV0dXJua2V5X2RlZmF1bHRcIixcbiAgICBcImtidl9yZXR1cm5rZXlfZG9uZVwiLFxuICAgIFwia2J2X3JldHVybmtleV9lbWVyZ2VuY3lcIixcbiAgICBcImtidl9yZXR1cm5rZXlfZ29cIixcbiAgICBcImtidl9yZXR1cm5rZXlfZ29vZ2xlXCIsXG4gICAgXCJrYnZfcmV0dXJua2V5X2pvaW5cIixcbiAgICBcImtidl9yZXR1cm5rZXlfbmV4dFwiLFxuICAgIFwia2J2X3JldHVybmtleV9yb3V0ZVwiLFxuICAgIFwia2J2X3JldHVybmtleV9zZWFyY2hcIixcbiAgICBcImtidl9yZXR1cm5rZXlfc2VuZFwiLFxuICAgIFwia2J2X3JldHVybmtleV95YWhvb1wiLFxuICAgIFwia2J2X3R5cGVfYXNjaWlcIixcbiAgICBcImtidl90eXBlX2RlZmF1bHRcIixcbiAgICBcImtidl90eXBlX2VtYWlsXCIsXG4gICAgXCJrYnZfdHlwZV9udW1iZXJzXCIsXG4gICAgXCJrYnZfdHlwZV9waG9uZVwiLFxuICAgIFwia2J2X3R5cGVfcGhvbmVfbmFtZVwiLFxuICAgIFwia2J2X3R5cGVfdXJsXCIsXG4gICAgXCJsYXllcmVsZW1lbnR0eXBlX2JhY2tncm91bmRcIixcbiAgICBcImxheWVyZWxlbWVudHR5cGVfaW5zdGFuY2VcIixcbiAgICBcImxheWVyZWxlbWVudHR5cGVfb2xkdGlsZW1hcFwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV9wYXJ0aWNsZXN5c3RlbVwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV9zZXF1ZW5jZVwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV9zcHJpdGVcIixcbiAgICBcImxheWVyZWxlbWVudHR5cGVfdGlsZVwiLFxuICAgIFwibGF5ZXJlbGVtZW50dHlwZV90aWxlbWFwXCIsXG4gICAgXCJsYXllcmVsZW1lbnR0eXBlX3VuZGVmaW5lZFwiLFxuICAgIFwibGVhZGVyYm9hcmRfdHlwZV9udW1iZXJcIixcbiAgICBcImxlYWRlcmJvYXJkX3R5cGVfdGltZV9taW5zX3NlY3NcIixcbiAgICBcImxpZ2h0dHlwZV9kaXJcIixcbiAgICBcImxpZ2h0dHlwZV9wb2ludFwiLFxuICAgIFwibGluZVNwYWNpbmdcIixcbiAgICBcIm1fYXhpc3hcIixcbiAgICBcIm1fYXhpc3hfZ3VpXCIsXG4gICAgXCJtX2F4aXN5XCIsXG4gICAgXCJtX2F4aXN5X2d1aVwiLFxuICAgIFwibV9zY3JvbGxfZG93blwiLFxuICAgIFwibV9zY3JvbGxfdXBcIixcbiAgICBcIm1hdHJpeF9wcm9qZWN0aW9uXCIsXG4gICAgXCJtYXRyaXhfdmlld1wiLFxuICAgIFwibWF0cml4X3dvcmxkXCIsXG4gICAgXCJtYl9hbnlcIixcbiAgICBcIm1iX2xlZnRcIixcbiAgICBcIm1iX21pZGRsZVwiLFxuICAgIFwibWJfbm9uZVwiLFxuICAgIFwibWJfcmlnaHRcIixcbiAgICBcIm1iX3NpZGUxXCIsXG4gICAgXCJtYl9zaWRlMlwiLFxuICAgIFwibWlwX21hcmtlZG9ubHlcIixcbiAgICBcIm1pcF9vZmZcIixcbiAgICBcIm1pcF9vblwiLFxuICAgIFwibmV0d29ya19jb25maWdfYXZvaWRfdGltZV93YWl0XCIsXG4gICAgXCJuZXR3b3JrX2NvbmZpZ19jb25uZWN0X3RpbWVvdXRcIixcbiAgICBcIm5ldHdvcmtfY29uZmlnX2Rpc2FibGVfbXVsdGljYXN0XCIsXG4gICAgXCJuZXR3b3JrX2NvbmZpZ19kaXNhYmxlX3JlbGlhYmxlX3VkcFwiLFxuICAgIFwibmV0d29ya19jb25maWdfZW5hYmxlX211bHRpY2FzdFwiLFxuICAgIFwibmV0d29ya19jb25maWdfZW5hYmxlX3JlbGlhYmxlX3VkcFwiLFxuICAgIFwibmV0d29ya19jb25maWdfdXNlX25vbl9ibG9ja2luZ19zb2NrZXRcIixcbiAgICBcIm5ldHdvcmtfY29uZmlnX3dlYnNvY2tldF9wcm90b2NvbFwiLFxuICAgIFwibmV0d29ya19jb25uZWN0X2FjdGl2ZVwiLFxuICAgIFwibmV0d29ya19jb25uZWN0X2Jsb2NraW5nXCIsXG4gICAgXCJuZXR3b3JrX2Nvbm5lY3Rfbm9uYmxvY2tpbmdcIixcbiAgICBcIm5ldHdvcmtfY29ubmVjdF9ub25lXCIsXG4gICAgXCJuZXR3b3JrX2Nvbm5lY3RfcGFzc2l2ZVwiLFxuICAgIFwibmV0d29ya19zZW5kX2JpbmFyeVwiLFxuICAgIFwibmV0d29ya19zZW5kX3RleHRcIixcbiAgICBcIm5ldHdvcmtfc29ja2V0X2JsdWV0b290aFwiLFxuICAgIFwibmV0d29ya19zb2NrZXRfdGNwXCIsXG4gICAgXCJuZXR3b3JrX3NvY2tldF91ZHBcIixcbiAgICBcIm5ldHdvcmtfc29ja2V0X3dzXCIsXG4gICAgXCJuZXR3b3JrX3NvY2tldF93c3NcIixcbiAgICBcIm5ldHdvcmtfdHlwZV9jb25uZWN0XCIsXG4gICAgXCJuZXR3b3JrX3R5cGVfZGF0YVwiLFxuICAgIFwibmV0d29ya190eXBlX2Rpc2Nvbm5lY3RcIixcbiAgICBcIm5ldHdvcmtfdHlwZV9kb3duXCIsXG4gICAgXCJuZXR3b3JrX3R5cGVfbm9uX2Jsb2NraW5nX2Nvbm5lY3RcIixcbiAgICBcIm5ldHdvcmtfdHlwZV91cFwiLFxuICAgIFwibmV0d29ya190eXBlX3VwX2ZhaWxlZFwiLFxuICAgIFwibmluZXNsaWNlX2JsYW5rXCIsXG4gICAgXCJuaW5lc2xpY2VfYm90dG9tXCIsXG4gICAgXCJuaW5lc2xpY2VfY2VudGVyXCIsXG4gICAgXCJuaW5lc2xpY2VfY2VudHJlXCIsXG4gICAgXCJuaW5lc2xpY2VfaGlkZVwiLFxuICAgIFwibmluZXNsaWNlX2xlZnRcIixcbiAgICBcIm5pbmVzbGljZV9taXJyb3JcIixcbiAgICBcIm5pbmVzbGljZV9yZXBlYXRcIixcbiAgICBcIm5pbmVzbGljZV9yaWdodFwiLFxuICAgIFwibmluZXNsaWNlX3N0cmV0Y2hcIixcbiAgICBcIm5pbmVzbGljZV90b3BcIixcbiAgICBcIm5vb25lXCIsXG4gICAgXCJvZl9jaGFsbGVuZ2VfbG9zZVwiLFxuICAgIFwib2ZfY2hhbGxlbmdlX3RpZVwiLFxuICAgIFwib2ZfY2hhbGxlbmdlX3dpblwiLFxuICAgIFwib3NfYW5kcm9pZFwiLFxuICAgIFwib3NfZ2RrXCIsXG4gICAgXCJvc19neGdhbWVzXCIsXG4gICAgXCJvc19pb3NcIixcbiAgICBcIm9zX2xpbnV4XCIsXG4gICAgXCJvc19tYWNvc3hcIixcbiAgICBcIm9zX29wZXJhZ3hcIixcbiAgICBcIm9zX3Blcm1pc3Npb25fZGVuaWVkXCIsXG4gICAgXCJvc19wZXJtaXNzaW9uX2RlbmllZF9kb250X3JlcXVlc3RcIixcbiAgICBcIm9zX3Blcm1pc3Npb25fZ3JhbnRlZFwiLFxuICAgIFwib3NfcHMzXCIsXG4gICAgXCJvc19wczRcIixcbiAgICBcIm9zX3BzNVwiLFxuICAgIFwib3NfcHN2aXRhXCIsXG4gICAgXCJvc19zd2l0Y2hcIixcbiAgICBcIm9zX3R2b3NcIixcbiAgICBcIm9zX3Vua25vd25cIixcbiAgICBcIm9zX3V3cFwiLFxuICAgIFwib3Nfd2luOG5hdGl2ZVwiLFxuICAgIFwib3Nfd2luZG93c1wiLFxuICAgIFwib3Nfd2lucGhvbmVcIixcbiAgICBcIm9zX3hib3hvbmVcIixcbiAgICBcIm9zX3hib3hzZXJpZXN4c1wiLFxuICAgIFwib3RoZXJcIixcbiAgICBcIm91dGxpbmVDb2xvclwiLFxuICAgIFwib3V0bGluZUNvbG91clwiLFxuICAgIFwib3V0bGluZURpc3RcIixcbiAgICBcIm91dGxpbmVFbmFibGVkXCIsXG4gICAgXCJvdXRsaW5lRW5hYmxlZFwiLFxuICAgIFwicGFyYWdyYXBoU3BhY2luZ1wiLFxuICAgIFwicGF0aF9hY3Rpb25fY29udGludWVcIixcbiAgICBcInBhdGhfYWN0aW9uX3Jlc3RhcnRcIixcbiAgICBcInBhdGhfYWN0aW9uX3JldmVyc2VcIixcbiAgICBcInBhdGhfYWN0aW9uX3N0b3BcIixcbiAgICBcInBoeV9kZWJ1Z19yZW5kZXJfYWFiYlwiLFxuICAgIFwicGh5X2RlYnVnX3JlbmRlcl9jb2xsaXNpb25fcGFpcnNcIixcbiAgICBcInBoeV9kZWJ1Z19yZW5kZXJfY29tc1wiLFxuICAgIFwicGh5X2RlYnVnX3JlbmRlcl9jb3JlX3NoYXBlc1wiLFxuICAgIFwicGh5X2RlYnVnX3JlbmRlcl9qb2ludHNcIixcbiAgICBcInBoeV9kZWJ1Z19yZW5kZXJfb2JiXCIsXG4gICAgXCJwaHlfZGVidWdfcmVuZGVyX3NoYXBlc1wiLFxuICAgIFwicGh5X2pvaW50X2FuY2hvcl8xX3hcIixcbiAgICBcInBoeV9qb2ludF9hbmNob3JfMV95XCIsXG4gICAgXCJwaHlfam9pbnRfYW5jaG9yXzJfeFwiLFxuICAgIFwicGh5X2pvaW50X2FuY2hvcl8yX3lcIixcbiAgICBcInBoeV9qb2ludF9hbmdsZVwiLFxuICAgIFwicGh5X2pvaW50X2FuZ2xlX2xpbWl0c1wiLFxuICAgIFwicGh5X2pvaW50X2RhbXBpbmdfcmF0aW9cIixcbiAgICBcInBoeV9qb2ludF9mcmVxdWVuY3lcIixcbiAgICBcInBoeV9qb2ludF9sZW5ndGhfMVwiLFxuICAgIFwicGh5X2pvaW50X2xlbmd0aF8yXCIsXG4gICAgXCJwaHlfam9pbnRfbG93ZXJfYW5nbGVfbGltaXRcIixcbiAgICBcInBoeV9qb2ludF9tYXhfZm9yY2VcIixcbiAgICBcInBoeV9qb2ludF9tYXhfbGVuZ3RoXCIsXG4gICAgXCJwaHlfam9pbnRfbWF4X21vdG9yX2ZvcmNlXCIsXG4gICAgXCJwaHlfam9pbnRfbWF4X21vdG9yX3RvcnF1ZVwiLFxuICAgIFwicGh5X2pvaW50X21heF90b3JxdWVcIixcbiAgICBcInBoeV9qb2ludF9tb3Rvcl9mb3JjZVwiLFxuICAgIFwicGh5X2pvaW50X21vdG9yX3NwZWVkXCIsXG4gICAgXCJwaHlfam9pbnRfbW90b3JfdG9ycXVlXCIsXG4gICAgXCJwaHlfam9pbnRfcmVhY3Rpb25fZm9yY2VfeFwiLFxuICAgIFwicGh5X2pvaW50X3JlYWN0aW9uX2ZvcmNlX3lcIixcbiAgICBcInBoeV9qb2ludF9yZWFjdGlvbl90b3JxdWVcIixcbiAgICBcInBoeV9qb2ludF9zcGVlZFwiLFxuICAgIFwicGh5X2pvaW50X3RyYW5zbGF0aW9uXCIsXG4gICAgXCJwaHlfam9pbnRfdXBwZXJfYW5nbGVfbGltaXRcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY2F0ZWdvcnlcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY29sb3JcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9kYXRhX2ZsYWdfY29sb3VyXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZGF0YV9mbGFnX3Bvc2l0aW9uXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZGF0YV9mbGFnX3R5cGVmbGFnc1wiLFxuICAgIFwicGh5X3BhcnRpY2xlX2RhdGFfZmxhZ192ZWxvY2l0eVwiLFxuICAgIFwicGh5X3BhcnRpY2xlX2ZsYWdfY29sb3JtaXhpbmdcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX2NvbG91cm1peGluZ1wiLFxuICAgIFwicGh5X3BhcnRpY2xlX2ZsYWdfZWxhc3RpY1wiLFxuICAgIFwicGh5X3BhcnRpY2xlX2ZsYWdfcG93ZGVyXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZmxhZ19zcHJpbmdcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3RlbnNpbGVcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3Zpc2NvdXNcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3dhbGxcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9mbGFnX3dhdGVyXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZmxhZ196b21iaWVcIixcbiAgICBcInBoeV9wYXJ0aWNsZV9ncm91cF9mbGFnX3JpZ2lkXCIsXG4gICAgXCJwaHlfcGFydGljbGVfZ3JvdXBfZmxhZ19zb2xpZFwiLFxuICAgIFwicGlcIixcbiAgICBcInBvaW50ZXJfaW52YWxpZFwiLFxuICAgIFwicG9pbnRlcl9udWxsXCIsXG4gICAgXCJwcl9saW5lbGlzdFwiLFxuICAgIFwicHJfbGluZXN0cmlwXCIsXG4gICAgXCJwcl9wb2ludGxpc3RcIixcbiAgICBcInByX3RyaWFuZ2xlZmFuXCIsXG4gICAgXCJwcl90cmlhbmdsZWxpc3RcIixcbiAgICBcInByX3RyaWFuZ2xlc3RyaXBcIixcbiAgICBcInBzX2Rpc3RyX2dhdXNzaWFuXCIsXG4gICAgXCJwc19kaXN0cl9pbnZnYXVzc2lhblwiLFxuICAgIFwicHNfZGlzdHJfbGluZWFyXCIsXG4gICAgXCJwc19tb2RlX2J1cnN0XCIsXG4gICAgXCJwc19tb2RlX3N0cmVhbVwiLFxuICAgIFwicHNfc2hhcGVfZGlhbW9uZFwiLFxuICAgIFwicHNfc2hhcGVfZWxsaXBzZVwiLFxuICAgIFwicHNfc2hhcGVfbGluZVwiLFxuICAgIFwicHNfc2hhcGVfcmVjdGFuZ2xlXCIsXG4gICAgXCJwdF9zaGFwZV9jaXJjbGVcIixcbiAgICBcInB0X3NoYXBlX2Nsb3VkXCIsXG4gICAgXCJwdF9zaGFwZV9kaXNrXCIsXG4gICAgXCJwdF9zaGFwZV9leHBsb3Npb25cIixcbiAgICBcInB0X3NoYXBlX2ZsYXJlXCIsXG4gICAgXCJwdF9zaGFwZV9saW5lXCIsXG4gICAgXCJwdF9zaGFwZV9waXhlbFwiLFxuICAgIFwicHRfc2hhcGVfcmluZ1wiLFxuICAgIFwicHRfc2hhcGVfc21va2VcIixcbiAgICBcInB0X3NoYXBlX3Nub3dcIixcbiAgICBcInB0X3NoYXBlX3NwYXJrXCIsXG4gICAgXCJwdF9zaGFwZV9zcGhlcmVcIixcbiAgICBcInB0X3NoYXBlX3NxdWFyZVwiLFxuICAgIFwicHRfc2hhcGVfc3RhclwiLFxuICAgIFwicm9sbGJhY2tfY2hhdF9tZXNzYWdlXCIsXG4gICAgXCJyb2xsYmFja19jb25uZWN0X2Vycm9yXCIsXG4gICAgXCJyb2xsYmFja19jb25uZWN0X2luZm9cIixcbiAgICBcInJvbGxiYWNrX2Nvbm5lY3RlZF90b19wZWVyXCIsXG4gICAgXCJyb2xsYmFja19jb25uZWN0aW9uX3JlamVjdGVkXCIsXG4gICAgXCJyb2xsYmFja19kaXNjb25uZWN0ZWRfZnJvbV9wZWVyXCIsXG4gICAgXCJyb2xsYmFja19lbmRfZ2FtZVwiLFxuICAgIFwicm9sbGJhY2tfZ2FtZV9mdWxsXCIsXG4gICAgXCJyb2xsYmFja19nYW1lX2luZm9cIixcbiAgICBcInJvbGxiYWNrX2dhbWVfaW50ZXJydXB0ZWRcIixcbiAgICBcInJvbGxiYWNrX2dhbWVfcmVzdW1lZFwiLFxuICAgIFwicm9sbGJhY2tfaGlnaF9sYXRlbmN5XCIsXG4gICAgXCJyb2xsYmFja19wbGF5ZXJfcHJlZnNcIixcbiAgICBcInJvbGxiYWNrX3Byb3RvY29sX3JlamVjdGVkXCIsXG4gICAgXCJyb2xsYmFja19zeW5jaHJvbml6ZWRfd2l0aF9wZWVyXCIsXG4gICAgXCJyb2xsYmFja19zeW5jaHJvbml6aW5nX3dpdGhfcGVlclwiLFxuICAgIFwic2VsZlwiLFxuICAgIFwic2VxYXVkaW9rZXlfbG9vcFwiLFxuICAgIFwic2VxYXVkaW9rZXlfb25lc2hvdFwiLFxuICAgIFwic2VxZGlyX2xlZnRcIixcbiAgICBcInNlcWRpcl9yaWdodFwiLFxuICAgIFwic2VxaW50ZXJwb2xhdGlvbl9hc3NpZ25cIixcbiAgICBcInNlcWludGVycG9sYXRpb25fbGVycFwiLFxuICAgIFwic2VxcGxheV9sb29wXCIsXG4gICAgXCJzZXFwbGF5X29uZXNob3RcIixcbiAgICBcInNlcXBsYXlfcGluZ3BvbmdcIixcbiAgICBcInNlcXRleHRrZXlfYm90dG9tXCIsXG4gICAgXCJzZXF0ZXh0a2V5X2NlbnRlclwiLFxuICAgIFwic2VxdGV4dGtleV9qdXN0aWZ5XCIsXG4gICAgXCJzZXF0ZXh0a2V5X2xlZnRcIixcbiAgICBcInNlcXRleHRrZXlfbWlkZGxlXCIsXG4gICAgXCJzZXF0ZXh0a2V5X3JpZ2h0XCIsXG4gICAgXCJzZXF0ZXh0a2V5X3RvcFwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2F1ZGlvXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfYm9vbFwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2NsaXBtYXNrXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfY2xpcG1hc2tfbWFza1wiLFxuICAgIFwic2VxdHJhY2t0eXBlX2NsaXBtYXNrX3N1YmplY3RcIixcbiAgICBcInNlcXRyYWNrdHlwZV9jb2xvclwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2NvbG91clwiLFxuICAgIFwic2VxdHJhY2t0eXBlX2VtcHR5XCIsXG4gICAgXCJzZXF0cmFja3R5cGVfZ3JhcGhpY1wiLFxuICAgIFwic2VxdHJhY2t0eXBlX2dyb3VwXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfaW5zdGFuY2VcIixcbiAgICBcInNlcXRyYWNrdHlwZV9tZXNzYWdlXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfbW9tZW50XCIsXG4gICAgXCJzZXF0cmFja3R5cGVfcGFydGljbGVzeXN0ZW1cIixcbiAgICBcInNlcXRyYWNrdHlwZV9yZWFsXCIsXG4gICAgXCJzZXF0cmFja3R5cGVfc2VxdWVuY2VcIixcbiAgICBcInNlcXRyYWNrdHlwZV9zcHJpdGVmcmFtZXNcIixcbiAgICBcInNlcXRyYWNrdHlwZV9zdHJpbmdcIixcbiAgICBcInNlcXRyYWNrdHlwZV90ZXh0XCIsXG4gICAgXCJzaGFkb3dDb2xvclwiLFxuICAgIFwic2hhZG93Q29sb3VyXCIsXG4gICAgXCJzaGFkb3dPZmZzZXRYXCIsXG4gICAgXCJzaGFkb3dPZmZzZXRZXCIsXG4gICAgXCJzaGFkb3dTb2Z0bmVzc1wiLFxuICAgIFwic3ByaXRlX2FkZF9leHRfZXJyb3JfY2FuY2VsbGVkXCIsXG4gICAgXCJzcHJpdGVfYWRkX2V4dF9lcnJvcl9kZWNvbXByZXNzZmFpbGVkXCIsXG4gICAgXCJzcHJpdGVfYWRkX2V4dF9lcnJvcl9sb2FkZmFpbGVkXCIsXG4gICAgXCJzcHJpdGVfYWRkX2V4dF9lcnJvcl9zZXR1cGZhaWxlZFwiLFxuICAgIFwic3ByaXRlX2FkZF9leHRfZXJyb3Jfc3ByaXRlbm90Zm91bmRcIixcbiAgICBcInNwcml0ZV9hZGRfZXh0X2Vycm9yX3Vua25vd25cIixcbiAgICBcInNwcml0ZXNwZWVkX2ZyYW1lc3BlcmdhbWVmcmFtZVwiLFxuICAgIFwic3ByaXRlc3BlZWRfZnJhbWVzcGVyc2Vjb25kXCIsXG4gICAgXCJzdXJmYWNlX3IxNmZsb2F0XCIsXG4gICAgXCJzdXJmYWNlX3IzMmZsb2F0XCIsXG4gICAgXCJzdXJmYWNlX3I4dW5vcm1cIixcbiAgICBcInN1cmZhY2Vfcmc4dW5vcm1cIixcbiAgICBcInN1cmZhY2VfcmdiYTE2ZmxvYXRcIixcbiAgICBcInN1cmZhY2VfcmdiYTMyZmxvYXRcIixcbiAgICBcInN1cmZhY2VfcmdiYTR1bm9ybVwiLFxuICAgIFwic3VyZmFjZV9yZ2JhOHVub3JtXCIsXG4gICAgXCJ0ZXh0dXJlZ3JvdXBfc3RhdHVzX2ZldGNoZWRcIixcbiAgICBcInRleHR1cmVncm91cF9zdGF0dXNfbG9hZGVkXCIsXG4gICAgXCJ0ZXh0dXJlZ3JvdXBfc3RhdHVzX2xvYWRpbmdcIixcbiAgICBcInRleHR1cmVncm91cF9zdGF0dXNfdW5sb2FkZWRcIixcbiAgICBcInRmX2FuaXNvdHJvcGljXCIsXG4gICAgXCJ0Zl9saW5lYXJcIixcbiAgICBcInRmX3BvaW50XCIsXG4gICAgXCJ0aGlja25lc3NcIixcbiAgICBcInRpbGVfZmxpcFwiLFxuICAgIFwidGlsZV9pbmRleF9tYXNrXCIsXG4gICAgXCJ0aWxlX21pcnJvclwiLFxuICAgIFwidGlsZV9yb3RhdGVcIixcbiAgICBcInRpbWVfc291cmNlX2V4cGlyZV9hZnRlclwiLFxuICAgIFwidGltZV9zb3VyY2VfZXhwaXJlX25lYXJlc3RcIixcbiAgICBcInRpbWVfc291cmNlX2dhbWVcIixcbiAgICBcInRpbWVfc291cmNlX2dsb2JhbFwiLFxuICAgIFwidGltZV9zb3VyY2Vfc3RhdGVfYWN0aXZlXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9zdGF0ZV9pbml0aWFsXCIsXG4gICAgXCJ0aW1lX3NvdXJjZV9zdGF0ZV9wYXVzZWRcIixcbiAgICBcInRpbWVfc291cmNlX3N0YXRlX3N0b3BwZWRcIixcbiAgICBcInRpbWVfc291cmNlX3VuaXRzX2ZyYW1lc1wiLFxuICAgIFwidGltZV9zb3VyY2VfdW5pdHNfc2Vjb25kc1wiLFxuICAgIFwidGltZXpvbmVfbG9jYWxcIixcbiAgICBcInRpbWV6b25lX3V0Y1wiLFxuICAgIFwidG1fY291bnR2c3luY3NcIixcbiAgICBcInRtX3NsZWVwXCIsXG4gICAgXCJ0bV9zeXN0ZW10aW1pbmdcIixcbiAgICBcInRydWVcIixcbiAgICBcInR5X3JlYWxcIixcbiAgICBcInR5X3N0cmluZ1wiLFxuICAgIFwidW5kZWZpbmVkXCIsXG4gICAgXCJ2ZXJ0ZXhfdHlwZV9jb2xvclwiLFxuICAgIFwidmVydGV4X3R5cGVfY29sb3VyXCIsXG4gICAgXCJ2ZXJ0ZXhfdHlwZV9mbG9hdDFcIixcbiAgICBcInZlcnRleF90eXBlX2Zsb2F0MlwiLFxuICAgIFwidmVydGV4X3R5cGVfZmxvYXQzXCIsXG4gICAgXCJ2ZXJ0ZXhfdHlwZV9mbG9hdDRcIixcbiAgICBcInZlcnRleF90eXBlX3VieXRlNFwiLFxuICAgIFwidmVydGV4X3VzYWdlX2Jpbm9ybWFsXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfYmxlbmRpbmRpY2VzXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfYmxlbmR3ZWlnaHRcIixcbiAgICBcInZlcnRleF91c2FnZV9jb2xvclwiLFxuICAgIFwidmVydGV4X3VzYWdlX2NvbG91clwiLFxuICAgIFwidmVydGV4X3VzYWdlX2RlcHRoXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfZm9nXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2Vfbm9ybWFsXCIsXG4gICAgXCJ2ZXJ0ZXhfdXNhZ2VfcG9zaXRpb25cIixcbiAgICBcInZlcnRleF91c2FnZV9wc2l6ZVwiLFxuICAgIFwidmVydGV4X3VzYWdlX3NhbXBsZVwiLFxuICAgIFwidmVydGV4X3VzYWdlX3RhbmdlbnRcIixcbiAgICBcInZlcnRleF91c2FnZV90ZXhjb29yZFwiLFxuICAgIFwidmlkZW9fZm9ybWF0X3JnYmFcIixcbiAgICBcInZpZGVvX2Zvcm1hdF95dXZcIixcbiAgICBcInZpZGVvX3N0YXR1c19jbG9zZWRcIixcbiAgICBcInZpZGVvX3N0YXR1c19wYXVzZWRcIixcbiAgICBcInZpZGVvX3N0YXR1c19wbGF5aW5nXCIsXG4gICAgXCJ2aWRlb19zdGF0dXNfcHJlcGFyaW5nXCIsXG4gICAgXCJ2a19hZGRcIixcbiAgICBcInZrX2FsdFwiLFxuICAgIFwidmtfYW55a2V5XCIsXG4gICAgXCJ2a19iYWNrc3BhY2VcIixcbiAgICBcInZrX2NvbnRyb2xcIixcbiAgICBcInZrX2RlY2ltYWxcIixcbiAgICBcInZrX2RlbGV0ZVwiLFxuICAgIFwidmtfZGl2aWRlXCIsXG4gICAgXCJ2a19kb3duXCIsXG4gICAgXCJ2a19lbmRcIixcbiAgICBcInZrX2VudGVyXCIsXG4gICAgXCJ2a19lc2NhcGVcIixcbiAgICBcInZrX2YxXCIsXG4gICAgXCJ2a19mMTBcIixcbiAgICBcInZrX2YxMVwiLFxuICAgIFwidmtfZjEyXCIsXG4gICAgXCJ2a19mMlwiLFxuICAgIFwidmtfZjNcIixcbiAgICBcInZrX2Y0XCIsXG4gICAgXCJ2a19mNVwiLFxuICAgIFwidmtfZjZcIixcbiAgICBcInZrX2Y3XCIsXG4gICAgXCJ2a19mOFwiLFxuICAgIFwidmtfZjlcIixcbiAgICBcInZrX2hvbWVcIixcbiAgICBcInZrX2luc2VydFwiLFxuICAgIFwidmtfbGFsdFwiLFxuICAgIFwidmtfbGNvbnRyb2xcIixcbiAgICBcInZrX2xlZnRcIixcbiAgICBcInZrX2xzaGlmdFwiLFxuICAgIFwidmtfbXVsdGlwbHlcIixcbiAgICBcInZrX25va2V5XCIsXG4gICAgXCJ2a19udW1wYWQwXCIsXG4gICAgXCJ2a19udW1wYWQxXCIsXG4gICAgXCJ2a19udW1wYWQyXCIsXG4gICAgXCJ2a19udW1wYWQzXCIsXG4gICAgXCJ2a19udW1wYWQ0XCIsXG4gICAgXCJ2a19udW1wYWQ1XCIsXG4gICAgXCJ2a19udW1wYWQ2XCIsXG4gICAgXCJ2a19udW1wYWQ3XCIsXG4gICAgXCJ2a19udW1wYWQ4XCIsXG4gICAgXCJ2a19udW1wYWQ5XCIsXG4gICAgXCJ2a19wYWdlZG93blwiLFxuICAgIFwidmtfcGFnZXVwXCIsXG4gICAgXCJ2a19wYXVzZVwiLFxuICAgIFwidmtfcHJpbnRzY3JlZW5cIixcbiAgICBcInZrX3JhbHRcIixcbiAgICBcInZrX3Jjb250cm9sXCIsXG4gICAgXCJ2a19yZXR1cm5cIixcbiAgICBcInZrX3JpZ2h0XCIsXG4gICAgXCJ2a19yc2hpZnRcIixcbiAgICBcInZrX3NoaWZ0XCIsXG4gICAgXCJ2a19zcGFjZVwiLFxuICAgIFwidmtfc3VidHJhY3RcIixcbiAgICBcInZrX3RhYlwiLFxuICAgIFwidmtfdXBcIixcbiAgICBcIndhbGxwYXBlcl9jb25maWdcIixcbiAgICBcIndhbGxwYXBlcl9zdWJzY3JpcHRpb25fZGF0YVwiLFxuICAgIFwid3JhcFwiXG4gIF07XG4gIGNvbnN0IExBTkdVQUdFX1ZBUklBQkxFUyA9IFtcbiAgICBcImFsYXJtXCIsXG4gICAgXCJhcHBsaWNhdGlvbl9zdXJmYWNlXCIsXG4gICAgXCJhcmd1bWVudFwiLFxuICAgIFwiYXJndW1lbnQwXCIsXG4gICAgXCJhcmd1bWVudDFcIixcbiAgICBcImFyZ3VtZW50MlwiLFxuICAgIFwiYXJndW1lbnQzXCIsXG4gICAgXCJhcmd1bWVudDRcIixcbiAgICBcImFyZ3VtZW50NVwiLFxuICAgIFwiYXJndW1lbnQ2XCIsXG4gICAgXCJhcmd1bWVudDdcIixcbiAgICBcImFyZ3VtZW50OFwiLFxuICAgIFwiYXJndW1lbnQ5XCIsXG4gICAgXCJhcmd1bWVudDEwXCIsXG4gICAgXCJhcmd1bWVudDExXCIsXG4gICAgXCJhcmd1bWVudDEyXCIsXG4gICAgXCJhcmd1bWVudDEzXCIsXG4gICAgXCJhcmd1bWVudDE0XCIsXG4gICAgXCJhcmd1bWVudDE1XCIsXG4gICAgXCJhcmd1bWVudF9jb3VudFwiLFxuICAgIFwiYXN5bmNfbG9hZFwiLFxuICAgIFwiYmFja2dyb3VuZF9jb2xvclwiLFxuICAgIFwiYmFja2dyb3VuZF9jb2xvdXJcIixcbiAgICBcImJhY2tncm91bmRfc2hvd2NvbG9yXCIsXG4gICAgXCJiYWNrZ3JvdW5kX3Nob3djb2xvdXJcIixcbiAgICBcImJib3hfYm90dG9tXCIsXG4gICAgXCJiYm94X2xlZnRcIixcbiAgICBcImJib3hfcmlnaHRcIixcbiAgICBcImJib3hfdG9wXCIsXG4gICAgXCJicm93c2VyX2hlaWdodFwiLFxuICAgIFwiYnJvd3Nlcl93aWR0aFwiLFxuICAgIFwiY29sb3VyP0NvbG91clRyYWNrXCIsXG4gICAgXCJjdXJyZW50X2RheVwiLFxuICAgIFwiY3VycmVudF9ob3VyXCIsXG4gICAgXCJjdXJyZW50X21pbnV0ZVwiLFxuICAgIFwiY3VycmVudF9tb250aFwiLFxuICAgIFwiY3VycmVudF9zZWNvbmRcIixcbiAgICBcImN1cnJlbnRfdGltZVwiLFxuICAgIFwiY3VycmVudF93ZWVrZGF5XCIsXG4gICAgXCJjdXJyZW50X3llYXJcIixcbiAgICBcImN1cnNvcl9zcHJpdGVcIixcbiAgICBcImRlYnVnX21vZGVcIixcbiAgICBcImRlbHRhX3RpbWVcIixcbiAgICBcImRlcHRoXCIsXG4gICAgXCJkaXJlY3Rpb25cIixcbiAgICBcImRpc3BsYXlfYWFcIixcbiAgICBcImRyYXduX2J5X3NlcXVlbmNlXCIsXG4gICAgXCJldmVudF9hY3Rpb25cIixcbiAgICBcImV2ZW50X2RhdGFcIixcbiAgICBcImV2ZW50X251bWJlclwiLFxuICAgIFwiZXZlbnRfb2JqZWN0XCIsXG4gICAgXCJldmVudF90eXBlXCIsXG4gICAgXCJmb250X3RleHR1cmVfcGFnZV9zaXplXCIsXG4gICAgXCJmcHNcIixcbiAgICBcImZwc19yZWFsXCIsXG4gICAgXCJmcmljdGlvblwiLFxuICAgIFwiZ2FtZV9kaXNwbGF5X25hbWVcIixcbiAgICBcImdhbWVfaWRcIixcbiAgICBcImdhbWVfcHJvamVjdF9uYW1lXCIsXG4gICAgXCJnYW1lX3NhdmVfaWRcIixcbiAgICBcImdyYXZpdHlcIixcbiAgICBcImdyYXZpdHlfZGlyZWN0aW9uXCIsXG4gICAgXCJoZWFsdGhcIixcbiAgICBcImhzcGVlZFwiLFxuICAgIFwiaWFwX2RhdGFcIixcbiAgICBcImlkXCIsXG4gICAgXCJpbWFnZV9hbHBoYVwiLFxuICAgIFwiaW1hZ2VfYW5nbGVcIixcbiAgICBcImltYWdlX2JsZW5kXCIsXG4gICAgXCJpbWFnZV9pbmRleFwiLFxuICAgIFwiaW1hZ2VfbnVtYmVyXCIsXG4gICAgXCJpbWFnZV9zcGVlZFwiLFxuICAgIFwiaW1hZ2VfeHNjYWxlXCIsXG4gICAgXCJpbWFnZV95c2NhbGVcIixcbiAgICBcImluX2NvbGxpc2lvbl90cmVlXCIsXG4gICAgXCJpbl9zZXF1ZW5jZVwiLFxuICAgIFwiaW5zdGFuY2VfY291bnRcIixcbiAgICBcImluc3RhbmNlX2lkXCIsXG4gICAgXCJrZXlib2FyZF9rZXlcIixcbiAgICBcImtleWJvYXJkX2xhc3RjaGFyXCIsXG4gICAgXCJrZXlib2FyZF9sYXN0a2V5XCIsXG4gICAgXCJrZXlib2FyZF9zdHJpbmdcIixcbiAgICBcImxheWVyXCIsXG4gICAgXCJsaXZlc1wiLFxuICAgIFwibG9uZ01lc3NhZ2VcIixcbiAgICBcIm1hbmFnZWRcIixcbiAgICBcIm1hc2tfaW5kZXhcIixcbiAgICBcIm1lc3NhZ2VcIixcbiAgICBcIm1vdXNlX2J1dHRvblwiLFxuICAgIFwibW91c2VfbGFzdGJ1dHRvblwiLFxuICAgIFwibW91c2VfeFwiLFxuICAgIFwibW91c2VfeVwiLFxuICAgIFwib2JqZWN0X2luZGV4XCIsXG4gICAgXCJvc19icm93c2VyXCIsXG4gICAgXCJvc19kZXZpY2VcIixcbiAgICBcIm9zX3R5cGVcIixcbiAgICBcIm9zX3ZlcnNpb25cIixcbiAgICBcInBhdGhfZW5kYWN0aW9uXCIsXG4gICAgXCJwYXRoX2luZGV4XCIsXG4gICAgXCJwYXRoX29yaWVudGF0aW9uXCIsXG4gICAgXCJwYXRoX3Bvc2l0aW9uXCIsXG4gICAgXCJwYXRoX3Bvc2l0aW9ucHJldmlvdXNcIixcbiAgICBcInBhdGhfc2NhbGVcIixcbiAgICBcInBhdGhfc3BlZWRcIixcbiAgICBcInBlcnNpc3RlbnRcIixcbiAgICBcInBoeV9hY3RpdmVcIixcbiAgICBcInBoeV9hbmd1bGFyX2RhbXBpbmdcIixcbiAgICBcInBoeV9hbmd1bGFyX3ZlbG9jaXR5XCIsXG4gICAgXCJwaHlfYnVsbGV0XCIsXG4gICAgXCJwaHlfY29sX25vcm1hbF94XCIsXG4gICAgXCJwaHlfY29sX25vcm1hbF95XCIsXG4gICAgXCJwaHlfY29sbGlzaW9uX3BvaW50c1wiLFxuICAgIFwicGh5X2NvbGxpc2lvbl94XCIsXG4gICAgXCJwaHlfY29sbGlzaW9uX3lcIixcbiAgICBcInBoeV9jb21feFwiLFxuICAgIFwicGh5X2NvbV95XCIsXG4gICAgXCJwaHlfZHluYW1pY1wiLFxuICAgIFwicGh5X2ZpeGVkX3JvdGF0aW9uXCIsXG4gICAgXCJwaHlfaW5lcnRpYVwiLFxuICAgIFwicGh5X2tpbmVtYXRpY1wiLFxuICAgIFwicGh5X2xpbmVhcl9kYW1waW5nXCIsXG4gICAgXCJwaHlfbGluZWFyX3ZlbG9jaXR5X3hcIixcbiAgICBcInBoeV9saW5lYXJfdmVsb2NpdHlfeVwiLFxuICAgIFwicGh5X21hc3NcIixcbiAgICBcInBoeV9wb3NpdGlvbl94XCIsXG4gICAgXCJwaHlfcG9zaXRpb25feHByZXZpb3VzXCIsXG4gICAgXCJwaHlfcG9zaXRpb25feVwiLFxuICAgIFwicGh5X3Bvc2l0aW9uX3lwcmV2aW91c1wiLFxuICAgIFwicGh5X3JvdGF0aW9uXCIsXG4gICAgXCJwaHlfc2xlZXBpbmdcIixcbiAgICBcInBoeV9zcGVlZFwiLFxuICAgIFwicGh5X3NwZWVkX3hcIixcbiAgICBcInBoeV9zcGVlZF95XCIsXG4gICAgXCJwbGF5ZXJfYXZhdGFyX3Nwcml0ZVwiLFxuICAgIFwicGxheWVyX2F2YXRhcl91cmxcIixcbiAgICBcInBsYXllcl9pZFwiLFxuICAgIFwicGxheWVyX2xvY2FsXCIsXG4gICAgXCJwbGF5ZXJfdHlwZVwiLFxuICAgIFwicGxheWVyX3VzZXJfaWRcIixcbiAgICBcInByb2dyYW1fZGlyZWN0b3J5XCIsXG4gICAgXCJyb2xsYmFja19hcGlfc2VydmVyXCIsXG4gICAgXCJyb2xsYmFja19jb25maXJtZWRfZnJhbWVcIixcbiAgICBcInJvbGxiYWNrX2N1cnJlbnRfZnJhbWVcIixcbiAgICBcInJvbGxiYWNrX2V2ZW50X2lkXCIsXG4gICAgXCJyb2xsYmFja19ldmVudF9wYXJhbVwiLFxuICAgIFwicm9sbGJhY2tfZ2FtZV9ydW5uaW5nXCIsXG4gICAgXCJyb29tXCIsXG4gICAgXCJyb29tX2ZpcnN0XCIsXG4gICAgXCJyb29tX2hlaWdodFwiLFxuICAgIFwicm9vbV9sYXN0XCIsXG4gICAgXCJyb29tX3BlcnNpc3RlbnRcIixcbiAgICBcInJvb21fc3BlZWRcIixcbiAgICBcInJvb21fd2lkdGhcIixcbiAgICBcInNjb3JlXCIsXG4gICAgXCJzY3JpcHRcIixcbiAgICBcInNlcXVlbmNlX2luc3RhbmNlXCIsXG4gICAgXCJzb2xpZFwiLFxuICAgIFwic3BlZWRcIixcbiAgICBcInNwcml0ZV9oZWlnaHRcIixcbiAgICBcInNwcml0ZV9pbmRleFwiLFxuICAgIFwic3ByaXRlX3dpZHRoXCIsXG4gICAgXCJzcHJpdGVfeG9mZnNldFwiLFxuICAgIFwic3ByaXRlX3lvZmZzZXRcIixcbiAgICBcInN0YWNrdHJhY2VcIixcbiAgICBcInRlbXBfZGlyZWN0b3J5XCIsXG4gICAgXCJ0aW1lbGluZV9pbmRleFwiLFxuICAgIFwidGltZWxpbmVfbG9vcFwiLFxuICAgIFwidGltZWxpbmVfcG9zaXRpb25cIixcbiAgICBcInRpbWVsaW5lX3J1bm5pbmdcIixcbiAgICBcInRpbWVsaW5lX3NwZWVkXCIsXG4gICAgXCJ2aWV3X2NhbWVyYVwiLFxuICAgIFwidmlld19jdXJyZW50XCIsXG4gICAgXCJ2aWV3X2VuYWJsZWRcIixcbiAgICBcInZpZXdfaHBvcnRcIixcbiAgICBcInZpZXdfc3VyZmFjZV9pZFwiLFxuICAgIFwidmlld192aXNpYmxlXCIsXG4gICAgXCJ2aWV3X3dwb3J0XCIsXG4gICAgXCJ2aWV3X3hwb3J0XCIsXG4gICAgXCJ2aWV3X3lwb3J0XCIsXG4gICAgXCJ2aXNpYmxlXCIsXG4gICAgXCJ2c3BlZWRcIixcbiAgICBcIndlYmdsX2VuYWJsZWRcIixcbiAgICBcIndvcmtpbmdfZGlyZWN0b3J5XCIsXG4gICAgXCJ4XCIsXG4gICAgXCJ4cHJldmlvdXNcIixcbiAgICBcInhzdGFydFwiLFxuICAgIFwieVwiLFxuICAgIFwieXByZXZpb3VzXCIsXG4gICAgXCJ5c3RhcnRcIlxuICBdO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHTUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLCAvLyBsYW5ndWFnZSBpcyBjYXNlLWluc2Vuc2l0aXZlXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICAgIHN5bWJvbDogU1lNQk9MUyxcbiAgICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogTEFOR1VBR0VfVkFSSUFCTEVTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ21sO1xuIiwgIi8qXG5MYW5ndWFnZTogR29cbkF1dGhvcjogU3RlcGhhbiBLb3VudHNvIGFrYSBTdGVwTGcgPHN0ZXBsZ0BnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEV2Z2VueSBTdGVwYW5pc2NoZXYgPGltYm9sa0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogR29vZ2xlIGdvIGxhbmd1YWdlIChnb2xhbmcpLiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZVxuV2Vic2l0ZTogaHR0cDovL2dvbGFuZy5vcmcvXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIGdvKGhsanMpIHtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiaW90YVwiLFxuICAgIFwibmlsXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYXBwZW5kXCIsXG4gICAgXCJjYXBcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb21wbGV4XCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJpbWFnXCIsXG4gICAgXCJsZW5cIixcbiAgICBcIm1ha2VcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicGFuaWNcIixcbiAgICBcInByaW50XCIsXG4gICAgXCJwcmludGxuXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJyZWNvdmVyXCIsXG4gICAgXCJkZWxldGVcIlxuICBdO1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVcIixcbiAgICBcImNvbXBsZXg2NFwiLFxuICAgIFwiY29tcGxleDEyOFwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImZsb2F0MzJcIixcbiAgICBcImZsb2F0NjRcIixcbiAgICBcImludDhcIixcbiAgICBcImludDE2XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwidWludDhcIixcbiAgICBcInVpbnQxNlwiLFxuICAgIFwidWludDMyXCIsXG4gICAgXCJ1aW50NjRcIixcbiAgICBcImludFwiLFxuICAgIFwidWludFwiLFxuICAgIFwidWludHB0clwiLFxuICAgIFwicnVuZVwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjaGFuXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImRlZmVyXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJmYWxsdGhyb3VnaFwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmdW5jXCIsXG4gICAgXCJnb1wiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW50ZXJmYWNlXCIsXG4gICAgXCJtYXBcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcInJhbmdlXCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInR5cGVcIixcbiAgICBcInZhclwiLFxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOiBLV1MsXG4gICAgdHlwZTogVFlQRVMsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOU1xuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHbycsXG4gICAgYWxpYXNlczogWyAnZ29sYW5nJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgICAgICBlbmQ6ICdgJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogLy0/XFxiMFt4WF1cXC5bYS1mQS1GMC05XShfP1thLWZBLUYwLTldKSpbcFBdWystXT9cXGQoXz9cXGQpKmk/LywgLy8gaGV4IHdpdGhvdXQgYSBwcmVzZW50IGRpZ2l0IGJlZm9yZSAuIChtYWtpbmcgYSBkaWdpdCBhZnRlcndhcmRzIHJlcXVpcmVkKVxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogLy0/XFxiMFt4WF0oXz9bYS1mQS1GMC05XSkrKChcXC4oW2EtZkEtRjAtOV0oXz9bYS1mQS1GMC05XSkqKT8pP1twUF1bKy1dP1xcZChfP1xcZCkqKT9pPy8sIC8vIGhleCB3aXRoIGEgcHJlc2VudCBkaWdpdCBiZWZvcmUgLiAobWFraW5nIGEgZGlnaXQgYWZ0ZXJ3YXJkcyBvcHRpb25hbClcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC8tP1xcYjBbb09dKF8/WzAtN10pKmk/LywgLy8gbGVhZGluZyAwbyBvY3RhbFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogLy0/XFwuXFxkKF8/XFxkKSooW2VFXVsrLV0/XFxkKF8/XFxkKSopP2k/LywgLy8gZGVjaW1hbCB3aXRob3V0IGEgcHJlc2VudCBkaWdpdCBiZWZvcmUgLiAobWFraW5nIGEgZGlnaXQgYWZ0ZXJ3YXJkcyByZXF1aXJlZClcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC8tP1xcYlxcZChfP1xcZCkqKFxcLihcXGQoXz9cXGQpKik/KT8oW2VFXVsrLV0/XFxkKF8/XFxkKSopP2k/LywgLy8gZGVjaW1hbCB3aXRoIGEgcHJlc2VudCBkaWdpdCBiZWZvcmUgLiAobWFraW5nIGEgZGlnaXQgYWZ0ZXJ3YXJkcyBvcHRpb25hbClcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC86PS8gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmMnLFxuICAgICAgICBlbmQ6ICdcXFxccyooXFxcXHt8JCknLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvW1wiJ10vXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdvO1xuIiwgIi8qXG5MYW5ndWFnZTogR29sb1xuQXV0aG9yOiBQaGlsaXBwZSBDaGFycmllcmUgPHBoLmNoYXJyaWVyZUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogYSBsaWdodHdlaWdodCBkeW5hbWljIGxhbmd1YWdlIGZvciB0aGUgSlZNXG5XZWJzaXRlOiBodHRwOi8vZ29sby1sYW5nLm9yZy9cbkNhdGVnb3J5OiBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIGdvbG8oaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcInByaW50bG5cIixcbiAgICBcInJlYWRsblwiLFxuICAgIFwicHJpbnRcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJ2YXJcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcInRpbWVzXCIsXG4gICAgXCJpblwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwid2hlblwiLFxuICAgIFwibWF0Y2hcIixcbiAgICBcIndpdGhcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiYXVnbWVudFwiLFxuICAgIFwiYXVnbWVudGF0aW9uXCIsXG4gICAgXCJlYWNoXCIsXG4gICAgXCJmaW5kXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcInJlZHVjZVwiLFxuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcIm90aGVyd2lzZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwicmFpc2VcIixcbiAgICBcInRocm93XCIsXG4gICAgXCJvcklmTnVsbFwiLFxuICAgIFwiRHluYW1pY09iamVjdHwxMFwiLFxuICAgIFwiRHluYW1pY1ZhcmlhYmxlXCIsXG4gICAgXCJzdHJ1Y3RcIixcbiAgICBcIk9ic2VydmFibGVcIixcbiAgICBcIm1hcFwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJ2ZWN0b3JcIixcbiAgICBcImxpc3RcIixcbiAgICBcImFycmF5XCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHb2xvJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBsaXRlcmFsOiBbXG4gICAgICAgIFwidHJ1ZVwiLFxuICAgICAgICBcImZhbHNlXCIsXG4gICAgICAgIFwibnVsbFwiXG4gICAgICBdXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdvbG87XG4iLCAiLypcbkxhbmd1YWdlOiBHcmFkbGVcbkRlc2NyaXB0aW9uOiBHcmFkbGUgaXMgYW4gb3Blbi1zb3VyY2UgYnVpbGQgYXV0b21hdGlvbiB0b29sIGZvY3VzZWQgb24gZmxleGliaWxpdHkgYW5kIHBlcmZvcm1hbmNlLlxuV2Vic2l0ZTogaHR0cHM6Ly9ncmFkbGUub3JnXG5BdXRob3I6IERhbWlhbiBNZWUgPG1lZS5kYW1pYW5AZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGJ1aWxkLXN5c3RlbVxuKi9cblxuZnVuY3Rpb24gZ3JhZGxlKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJ0YXNrXCIsXG4gICAgXCJwcm9qZWN0XCIsXG4gICAgXCJhbGxwcm9qZWN0c1wiLFxuICAgIFwic3VicHJvamVjdHNcIixcbiAgICBcImFydGlmYWN0c1wiLFxuICAgIFwiYnVpbGRzY3JpcHRcIixcbiAgICBcImNvbmZpZ3VyYXRpb25zXCIsXG4gICAgXCJkZXBlbmRlbmNpZXNcIixcbiAgICBcInJlcG9zaXRvcmllc1wiLFxuICAgIFwic291cmNlU2V0c1wiLFxuICAgIFwiZGVzY3JpcHRpb25cIixcbiAgICBcImRlbGV0ZVwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiaW50b1wiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiZXhjbHVkZVwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJjbGFzc3BhdGhcIixcbiAgICBcImRlc3RpbmF0aW9uRGlyXCIsXG4gICAgXCJpbmNsdWRlc1wiLFxuICAgIFwib3B0aW9uc1wiLFxuICAgIFwic291cmNlQ29tcGF0aWJpbGl0eVwiLFxuICAgIFwidGFyZ2V0Q29tcGF0aWJpbGl0eVwiLFxuICAgIFwiZ3JvdXBcIixcbiAgICBcImZsYXREaXJcIixcbiAgICBcImRvTGFzdFwiLFxuICAgIFwiZG9GaXJzdFwiLFxuICAgIFwiZmxhdHRlblwiLFxuICAgIFwidG9kaXJcIixcbiAgICBcImZyb21kaXJcIixcbiAgICBcImFudFwiLFxuICAgIFwiZGVmXCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsc2VcIixcbiAgICBcImV4dGVuZHNcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJmaW5hbGx5XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJuYXRpdmVcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInN5bmNocm9uaXplZFwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRocm93c1wiLFxuICAgIFwidHJhbnNpZW50XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInZvbGF0aWxlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwic3RyaWN0ZnBcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcInN1cGVyXCIsXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJhbnRscnRhc2tcIixcbiAgICBcImNoZWNrc3R5bGVcIixcbiAgICBcImNvZGVuYXJjXCIsXG4gICAgXCJjb3B5XCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImxvbmdcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJjb21waWxlXCIsXG4gICAgXCJydW5UaW1lXCIsXG4gICAgXCJmaWxlXCIsXG4gICAgXCJmaWxlVHJlZVwiLFxuICAgIFwiYWJzXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFwcGVuZFwiLFxuICAgIFwiYXNMaXN0XCIsXG4gICAgXCJhc1dyaXRhYmxlXCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJjb2xsZWN0XCIsXG4gICAgXCJjb21wYXJlVG9cIixcbiAgICBcImNvdW50XCIsXG4gICAgXCJkaXZcIixcbiAgICBcImR1bXBcIixcbiAgICBcImVhY2hcIixcbiAgICBcImVhY2hCeXRlXCIsXG4gICAgXCJlYWNoRmlsZVwiLFxuICAgIFwiZWFjaExpbmVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJmaW5kXCIsXG4gICAgXCJmaW5kQWxsXCIsXG4gICAgXCJmbGF0dGVuXCIsXG4gICAgXCJnZXRBdFwiLFxuICAgIFwiZ2V0RXJyXCIsXG4gICAgXCJnZXRJblwiLFxuICAgIFwiZ2V0T3V0XCIsXG4gICAgXCJnZXRUZXh0XCIsXG4gICAgXCJncmVwXCIsXG4gICAgXCJpbW11dGFibGVcIixcbiAgICBcImluamVjdFwiLFxuICAgIFwiaW5zcGVjdFwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnZva2VNZXRob2RzXCIsXG4gICAgXCJpc0Nhc2VcIixcbiAgICBcImpvaW5cIixcbiAgICBcImxlZnRTaGlmdFwiLFxuICAgIFwibWludXNcIixcbiAgICBcIm11bHRpcGx5XCIsXG4gICAgXCJuZXdJbnB1dFN0cmVhbVwiLFxuICAgIFwibmV3T3V0cHV0U3RyZWFtXCIsXG4gICAgXCJuZXdQcmludFdyaXRlclwiLFxuICAgIFwibmV3UmVhZGVyXCIsXG4gICAgXCJuZXdXcml0ZXJcIixcbiAgICBcIm5leHRcIixcbiAgICBcInBsdXNcIixcbiAgICBcInBvcFwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInByZXZpb3VzXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicHJpbnRsblwiLFxuICAgIFwicHVzaFwiLFxuICAgIFwicHV0QXRcIixcbiAgICBcInJlYWRcIixcbiAgICBcInJlYWRCeXRlc1wiLFxuICAgIFwicmVhZExpbmVzXCIsXG4gICAgXCJyZXZlcnNlXCIsXG4gICAgXCJyZXZlcnNlRWFjaFwiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNpemVcIixcbiAgICBcInNvcnRcIixcbiAgICBcInNwbGl0RWFjaExpbmVcIixcbiAgICBcInN0ZXBcIixcbiAgICBcInN1Yk1hcFwiLFxuICAgIFwidGltZXNcIixcbiAgICBcInRvSW50ZWdlclwiLFxuICAgIFwidG9MaXN0XCIsXG4gICAgXCJ0b2tlbml6ZVwiLFxuICAgIFwidXB0b1wiLFxuICAgIFwid2FpdEZvck9yS2lsbFwiLFxuICAgIFwid2l0aFByaW50V3JpdGVyXCIsXG4gICAgXCJ3aXRoUmVhZGVyXCIsXG4gICAgXCJ3aXRoU3RyZWFtXCIsXG4gICAgXCJ3aXRoV3JpdGVyXCIsXG4gICAgXCJ3aXRoV3JpdGVyQXBwZW5kXCIsXG4gICAgXCJ3cml0ZVwiLFxuICAgIFwid3JpdGVMaW5lXCJcbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnR3JhZGxlJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5SRUdFWFBfTU9ERVxuXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdyYWRsZTtcbiIsICIvKlxuIExhbmd1YWdlOiBHcmFwaFFMXG4gQXV0aG9yOiBKb2huIEZvc3RlciAoR0ggamY5OTApLCBhbmQgb3RoZXJzXG4gRGVzY3JpcHRpb246IEdyYXBoUUwgaXMgYSBxdWVyeSBsYW5ndWFnZSBmb3IgQVBJc1xuIENhdGVnb3J5OiB3ZWIsIGNvbW1vblxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGdyYXBocWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEdRTF9OQU1FID0gL1tfQS1aYS16XVtfMC05QS1aYS16XSovO1xuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiR3JhcGhRTFwiLFxuICAgIGFsaWFzZXM6IFsgXCJncWxcIiBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgZGlzYWJsZUF1dG9kZXRlY3Q6IGZhbHNlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBbXG4gICAgICAgIFwicXVlcnlcIixcbiAgICAgICAgXCJtdXRhdGlvblwiLFxuICAgICAgICBcInN1YnNjcmlwdGlvblwiLFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJpbnB1dFwiLFxuICAgICAgICBcInNjaGVtYVwiLFxuICAgICAgICBcImRpcmVjdGl2ZVwiLFxuICAgICAgICBcImludGVyZmFjZVwiLFxuICAgICAgICBcInVuaW9uXCIsXG4gICAgICAgIFwic2NhbGFyXCIsXG4gICAgICAgIFwiZnJhZ21lbnRcIixcbiAgICAgICAgXCJlbnVtXCIsXG4gICAgICAgIFwib25cIlxuICAgICAgXSxcbiAgICAgIGxpdGVyYWw6IFtcbiAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgIFwiZmFsc2VcIixcbiAgICAgICAgXCJudWxsXCJcbiAgICAgIF1cbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgIG1hdGNoOiAvWy5dezN9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogXCJwdW5jdHVhdGlvblwiLFxuICAgICAgICBiZWdpbjogL1tcXCFcXChcXClcXDpcXD1cXFtcXF1cXHtcXHxcXH1dezF9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogXCJ2YXJpYWJsZVwiLFxuICAgICAgICBiZWdpbjogL1xcJC8sXG4gICAgICAgIGVuZDogL1xcVy8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwibWV0YVwiLFxuICAgICAgICBtYXRjaDogL0BcXHcrLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwic3ltYm9sXCIsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoR1FMX05BTUUsIHJlZ2V4Lmxvb2thaGVhZCgvXFxzKjovKSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogW1xuICAgICAgL1s7PCddLyxcbiAgICAgIC9CRUdJTi9cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZ3JhcGhxbDtcbiIsICIvKlxuIExhbmd1YWdlOiBHcm9vdnlcbiBBdXRob3I6IEd1aWxsYXVtZSBMYWZvcmdlIDxnbGFmb3JnZUBnbWFpbC5jb20+XG4gRGVzY3JpcHRpb246IEdyb292eSBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbXBsZW1lbnRhdGlvbiBpbnNwaXJlZCBmcm9tIFZzZXZvbG9kJ3MgSmF2YSBtb2RlXG4gV2Vic2l0ZTogaHR0cHM6Ly9ncm9vdnktbGFuZy5vcmdcbiBDYXRlZ29yeTogc3lzdGVtXG4gKi9cblxuZnVuY3Rpb24gdmFyaWFudHModmFyaWFudHMsIG9iaiA9IHt9KSB7XG4gIG9iai52YXJpYW50cyA9IHZhcmlhbnRzO1xuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBncm9vdnkoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UX1JFID0gJ1tBLVphLXowLTlfJF0rJztcbiAgY29uc3QgQ09NTUVOVCA9IHZhcmlhbnRzKFtcbiAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnL1xcXFwqXFxcXConLFxuICAgICAgJ1xcXFwqLycsXG4gICAgICB7XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBlYXQgdXAgQCdzIGluIGVtYWlscyB0byBwcmV2ZW50IHRoZW0gdG8gYmUgcmVjb2duaXplZCBhcyBkb2N0YWdzXG4gICAgICAgICAgICBiZWdpbjogL1xcdytALyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgIGJlZ2luOiAnQFtBLVphLXpdKydcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApXG4gIF0pO1xuICBjb25zdCBSRUdFWFAgPSB7XG4gICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICBiZWdpbjogL34/XFwvW15cXC9cXG5dK1xcLy8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcbiAgY29uc3QgTlVNQkVSID0gdmFyaWFudHMoW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICBdKTtcbiAgY29uc3QgU1RSSU5HID0gdmFyaWFudHMoW1xuICAgIHtcbiAgICAgIGJlZ2luOiAvXCJcIlwiLyxcbiAgICAgIGVuZDogL1wiXCJcIi9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvJycnLyxcbiAgICAgIGVuZDogLycnJy9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiBcIlxcXFwkL1wiLFxuICAgICAgZW5kOiBcIi9cXFxcJFwiLFxuICAgICAgcmVsZXZhbmNlOiAxMFxuICAgIH0sXG4gICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgXSxcbiAgeyBjbGFzc05hbWU6IFwic3RyaW5nXCIgfVxuICApO1xuXG4gIGNvbnN0IENMQVNTX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC8oY2xhc3N8aW50ZXJmYWNlfHRyYWl0fGVudW18cmVjb3JkfGV4dGVuZHN8aW1wbGVtZW50cykvLFxuICAgICAgL1xccysvLFxuICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgfVxuICB9O1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImJ5dGVcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJpbnRcIixcbiAgICBcImxvbmdcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJkb3VibGVcIixcbiAgICBcInZvaWRcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICAvLyBncm9vdnkgc3BlY2lmaWMga2V5d29yZHNcbiAgICBcImRlZlwiLFxuICAgIFwiYXNcIixcbiAgICBcImluXCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcInRyYWl0XCIsXG4gICAgLy8gY29tbW9uIGtleXdvcmRzIHdpdGggSmF2YVxuICAgIFwiYWJzdHJhY3RcIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcInRyYW5zaWVudFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInN5bmNocm9uaXplZFwiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImVudW1cIixcbiAgICBcImlmXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJmb3JcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcImNhc2VcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRocm93c1wiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwiaW1wbGVtZW50c1wiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwibmV3XCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcInBhY2thZ2VcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiaW5zdGFuY2VvZlwiLFxuICAgIFwidmFyXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdHcm9vdnknLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6ICd0aGlzIHN1cGVyJyxcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIG51bGwnLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBrZXl3b3JkOiBLRVlXT1JEU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGJpbmFyeTogXCJncm9vdnlcIixcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSksXG4gICAgICBDT01NRU5ULFxuICAgICAgU1RSSU5HLFxuICAgICAgUkVHRVhQLFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfREVGSU5JVElPTixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnQFtBLVphLXpdKycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0IG1hcCBrZXlzIGFuZCBuYW1lZCBwYXJhbWV0ZXJzIGFzIGF0dHJzXG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogSURFTlRfUkUgKyAnWyBcXHRdKjonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGNhdGNoIG1pZGRsZSBlbGVtZW50IG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yXG4gICAgICAgIC8vIHRvIGF2b2lkIGhpZ2hsaWdodCBpdCBhcyBhIGxhYmVsLCBuYW1lZCBwYXJhbWV0ZXIsIG9yIG1hcCBrZXlcbiAgICAgICAgYmVnaW46IC9cXD8vLFxuICAgICAgICBlbmQ6IC86LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIENPTU1FTlQsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIFJFR0VYUCxcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgJ3NlbGYnXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGhpZ2hsaWdodCBsYWJlbGVkIHN0YXRlbWVudHNcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdeWyBcXHRdKicgKyByZWdleC5sb29rYWhlYWQoSURFTlRfUkUgKyAnOicpLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGVuZDogSURFTlRfUkUgKyAnOicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgaWxsZWdhbDogLyN8PFxcLy9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBncm9vdnk7XG4iLCAiLypcbkxhbmd1YWdlOiBIQU1MXG5SZXF1aXJlczogcnVieS5qc1xuQXV0aG9yOiBEYW4gQWxsZW4gPGRhbi5qLmFsbGVuQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHA6Ly9oYW1sLmluZm9cbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuLy8gVE9ETyBzdXBwb3J0IGZpbHRlciB0YWdzIGxpa2UgOmphdmFzY3JpcHQsIHN1cHBvcnQgaW5saW5lIEhUTUxcbmZ1bmN0aW9uIGhhbWwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdIQU1MJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ14hISEoICg1fDFcXFxcLjF8U3RyaWN0fEZyYW1lc2V0fEJhc2ljfE1vYmlsZXxSREZhfFhNTFxcXFxiLiopKT8kJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIC8vIEZJWE1FIHRoZXNlIGNvbW1lbnRzIHNob3VsZCBiZSBhbGxvd2VkIHRvIHNwYW4gaW5kZW50ZWQgbGluZXNcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ15cXFxccyooIT0jfD0jfC0jfC8pLiokJyxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgeyByZWxldmFuY2U6IDAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeXFxcXHMqKC18PXwhPSkoPyEjKScsXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RhZycsXG4gICAgICAgIGJlZ2luOiAnXlxcXFxzKiUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFx3KydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJyxcbiAgICAgICAgICAgIGJlZ2luOiAnI1tcXFxcdy1dKydcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWNsYXNzJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXC5bXFxcXHctXSsnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xce1xccyovLFxuICAgICAgICAgICAgZW5kOiAvXFxzKlxcfS8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46ICc6XFxcXHcrXFxcXHMqPT4nLFxuICAgICAgICAgICAgICAgIGVuZDogJyxcXFxccysnLFxuICAgICAgICAgICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogJzpcXFxcdysnXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcdysnLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXChcXFxccyonLFxuICAgICAgICAgICAgZW5kOiAnXFxcXHMqXFxcXCknLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1xcXFx3K1xcXFxzKj0nLFxuICAgICAgICAgICAgICAgIGVuZDogJ1xcXFxzKycsXG4gICAgICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHcrJyxcbiAgICAgICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcdysnLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnXlxcXFxzKls9fl1cXFxccyonIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvI1xcey8sXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAncnVieScsXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYW1sO1xuIiwgIi8qXG5MYW5ndWFnZTogSGFuZGxlYmFyc1xuUmVxdWlyZXM6IHhtbC5qc1xuQXV0aG9yOiBSb2JpbiBXYXJkIDxyb2Jpbi53YXJkQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBNYXRjaGVyIGZvciBIYW5kbGViYXJzIGFzIHdlbGwgYXMgRW1iZXJKUyBhZGRpdGlvbnMuXG5XZWJzaXRlOiBodHRwczovL2hhbmRsZWJhcnNqcy5jb21cbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuZnVuY3Rpb24gaGFuZGxlYmFycyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgQlVJTFRfSU5TID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5cXC9dKy8sXG4gICAgYnVpbHRfaW46IFtcbiAgICAgICdhY3Rpb24nLFxuICAgICAgJ2JpbmRhdHRyJyxcbiAgICAgICdjb2xsZWN0aW9uJyxcbiAgICAgICdjb21wb25lbnQnLFxuICAgICAgJ2NvbmNhdCcsXG4gICAgICAnZGVidWdnZXInLFxuICAgICAgJ2VhY2gnLFxuICAgICAgJ2VhY2gtaW4nLFxuICAgICAgJ2dldCcsXG4gICAgICAnaGFzaCcsXG4gICAgICAnaWYnLFxuICAgICAgJ2luJyxcbiAgICAgICdpbnB1dCcsXG4gICAgICAnbGluay10bycsXG4gICAgICAnbG9jJyxcbiAgICAgICdsb2cnLFxuICAgICAgJ2xvb2t1cCcsXG4gICAgICAnbXV0JyxcbiAgICAgICdvdXRsZXQnLFxuICAgICAgJ3BhcnRpYWwnLFxuICAgICAgJ3F1ZXJ5LXBhcmFtcycsXG4gICAgICAncmVuZGVyJyxcbiAgICAgICd0ZW1wbGF0ZScsXG4gICAgICAndGV4dGFyZWEnLFxuICAgICAgJ3VuYm91bmQnLFxuICAgICAgJ3VubGVzcycsXG4gICAgICAndmlldycsXG4gICAgICAnd2l0aCcsXG4gICAgICAneWllbGQnXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IExJVEVSQUxTID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5cXC9dKy8sXG4gICAgbGl0ZXJhbDogW1xuICAgICAgJ3RydWUnLFxuICAgICAgJ2ZhbHNlJyxcbiAgICAgICd1bmRlZmluZWQnLFxuICAgICAgJ251bGwnXG4gICAgXVxuICB9O1xuXG4gIC8vIGFzIGRlZmluZWQgaW4gaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2d1aWRlL2V4cHJlc3Npb25zLmh0bWwjbGl0ZXJhbC1zZWdtZW50c1xuICAvLyB0aGlzIHJlZ2V4IG1hdGNoZXMgbGl0ZXJhbCBzZWdtZW50cyBsaWtlICcgYWJjICcgb3IgWyBhYmMgXSBhcyB3ZWxsIGFzIGhlbHBlcnMgYW5kIHBhdGhzXG4gIC8vIGxpa2UgYS9iLCAuL2FiYy9jZGUsIGFuZCBhYmMuYmNkXG5cbiAgY29uc3QgRE9VQkxFX1FVT1RFRF9JRF9SRUdFWCA9IC9cIlwifFwiW15cIl0rXCIvO1xuICBjb25zdCBTSU5HTEVfUVVPVEVEX0lEX1JFR0VYID0gLycnfCdbXiddKycvO1xuICBjb25zdCBCUkFDS0VUX1FVT1RFRF9JRF9SRUdFWCA9IC9cXFtcXF18XFxbW15cXF1dK1xcXS87XG4gIGNvbnN0IFBMQUlOX0lEX1JFR0VYID0gL1teXFxzIVwiIyUmJygpKissLlxcLzs8PT5AXFxbXFxcXFxcXV5ge3x9fl0rLztcbiAgY29uc3QgUEFUSF9ERUxJTUlURVJfUkVHRVggPSAvKFxcLnxcXC8pLztcbiAgY29uc3QgQU5ZX0lEID0gcmVnZXguZWl0aGVyKFxuICAgIERPVUJMRV9RVU9URURfSURfUkVHRVgsXG4gICAgU0lOR0xFX1FVT1RFRF9JRF9SRUdFWCxcbiAgICBCUkFDS0VUX1FVT1RFRF9JRF9SRUdFWCxcbiAgICBQTEFJTl9JRF9SRUdFWFxuICApO1xuXG4gIGNvbnN0IElERU5USUZJRVJfUkVHRVggPSByZWdleC5jb25jYXQoXG4gICAgcmVnZXgub3B0aW9uYWwoL1xcLnxcXC5cXC98XFwvLyksIC8vIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGhcbiAgICBBTllfSUQsXG4gICAgcmVnZXguYW55TnVtYmVyT2ZUaW1lcyhyZWdleC5jb25jYXQoXG4gICAgICBQQVRIX0RFTElNSVRFUl9SRUdFWCxcbiAgICAgIEFOWV9JRFxuICAgICkpXG4gICk7XG5cbiAgLy8gaWRlbnRpZmllciBmb2xsb3dlZCBieSBhIGVxdWFsLXNpZ24gKHdpdGhvdXQgdGhlIGVxdWFsIHNpZ24pXG4gIGNvbnN0IEhBU0hfUEFSQU1fUkVHRVggPSByZWdleC5jb25jYXQoXG4gICAgJygnLFxuICAgIEJSQUNLRVRfUVVPVEVEX0lEX1JFR0VYLCAnfCcsXG4gICAgUExBSU5fSURfUkVHRVgsXG4gICAgJykoPz09KSdcbiAgKTtcblxuICBjb25zdCBIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04gPSB7IGJlZ2luOiBJREVOVElGSUVSX1JFR0VYIH07XG5cbiAgY29uc3QgSEVMUEVSX1BBUkFNRVRFUiA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHsga2V5d29yZHM6IExJVEVSQUxTIH0pO1xuXG4gIGNvbnN0IFNVQl9FWFBSRVNTSU9OID0ge1xuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvXG4gICAgLy8gdGhlIFwiY29udGFpbnNcIiBpcyBhZGRlZCBiZWxvdyB3aGVuIGFsbCBuZWNlc3Nhcnkgc3ViLW1vZGVzIGFyZSBkZWZpbmVkXG4gIH07XG5cbiAgY29uc3QgSEFTSCA9IHtcbiAgICAvLyBma2EgXCJhdHRyaWJ1dGUtYXNzaWdubWVudFwiLCBwYXJhbWV0ZXJzIG9mIHRoZSBmb3JtICdrZXk9dmFsdWUnXG4gICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgYmVnaW46IEhBU0hfUEFSQU1fUkVHRVgsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHN0YXJ0czoge1xuICAgICAgYmVnaW46IC89LyxcbiAgICAgIGVuZDogLz0vLFxuICAgICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgSEVMUEVSX1BBUkFNRVRFUixcbiAgICAgICAgU1VCX0VYUFJFU1NJT05cbiAgICAgIF0gfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBCTE9DS19QQVJBTVMgPSB7XG4gICAgLy8gcGFyYW1ldGVycyBvZiB0aGUgZm9ybSAne3sjd2l0aCB4IGFzIHwgeSB8fX0uLi57ey93aXRofX0nXG4gICAgYmVnaW46IC9hc1xccytcXHwvLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdhcycgfSxcbiAgICBlbmQ6IC9cXHwvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIC8vIGRlZmluZSBzdWItbW9kZSBpbiBvcmRlciB0byBwcmV2ZW50IGhpZ2hsaWdodGluZyBvZiBibG9jay1wYXJhbWV0ZXIgbmFtZWQgXCJhc1wiXG4gICAgICAgIGJlZ2luOiAvXFx3Ky8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBIRUxQRVJfUEFSQU1FVEVSUyA9IHtcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBCTE9DS19QQVJBTVMsXG4gICAgICBIQVNILFxuICAgICAgSEVMUEVSX1BBUkFNRVRFUixcbiAgICAgIFNVQl9FWFBSRVNTSU9OXG4gICAgXSxcbiAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAvLyB0aGUgcHJvcGVydHkgXCJlbmRcIiBpcyBkZWZpbmVkIHRocm91Z2ggaW5oZXJpdGFuY2Ugd2hlbiB0aGUgbW9kZSBpcyB1c2VkLiBJZiBkZXBlbmRzXG4gICAgLy8gb24gdGhlIHN1cnJvdW5kaW5nIG1vZGUsIGJ1dCBcImVuZHNXaXRoUGFyZW50XCIgZG9lcyBub3Qgd29yayBoZXJlIChpLmUuIGl0IGluY2x1ZGVzIHRoZVxuICAgIC8vIGVuZC10b2tlbiBvZiB0aGUgc3Vycm91bmRpbmcgbW9kZSlcbiAgfTtcblxuICBjb25zdCBTVUJfRVhQUkVTU0lPTl9DT05URU5UUyA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHtcbiAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICBrZXl3b3JkczogQlVJTFRfSU5TLFxuICAgIHN0YXJ0czogaGxqcy5pbmhlcml0KEhFTFBFUl9QQVJBTUVURVJTLCB7IGVuZDogL1xcKS8gfSlcbiAgfSk7XG5cbiAgU1VCX0VYUFJFU1NJT04uY29udGFpbnMgPSBbIFNVQl9FWFBSRVNTSU9OX0NPTlRFTlRTIF07XG5cbiAgY29uc3QgT1BFTklOR19CTE9DS19NVVNUQUNIRV9DT05URU5UUyA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHtcbiAgICBrZXl3b3JkczogQlVJTFRfSU5TLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgIHN0YXJ0czogaGxqcy5pbmhlcml0KEhFTFBFUl9QQVJBTUVURVJTLCB7IGVuZDogL1xcfVxcfS8gfSlcbiAgfSk7XG5cbiAgY29uc3QgQ0xPU0lOR19CTE9DS19NVVNUQUNIRV9DT05URU5UUyA9IGhsanMuaW5oZXJpdChIRUxQRVJfTkFNRV9PUl9QQVRIX0VYUFJFU1NJT04sIHtcbiAgICBrZXl3b3JkczogQlVJTFRfSU5TLFxuICAgIGNsYXNzTmFtZTogJ25hbWUnXG4gIH0pO1xuXG4gIGNvbnN0IEJBU0lDX01VU1RBQ0hFX0NPTlRFTlRTID0gaGxqcy5pbmhlcml0KEhFTFBFUl9OQU1FX09SX1BBVEhfRVhQUkVTU0lPTiwge1xuICAgIGNsYXNzTmFtZTogJ25hbWUnLFxuICAgIGtleXdvcmRzOiBCVUlMVF9JTlMsXG4gICAgc3RhcnRzOiBobGpzLmluaGVyaXQoSEVMUEVSX1BBUkFNRVRFUlMsIHsgZW5kOiAvXFx9XFx9LyB9KVxuICB9KTtcblxuICBjb25zdCBFU0NBUEVfTVVTVEFDSEVfV0lUSF9QUkVDRUVESU5HX0JBQ0tTTEFTSCA9IHtcbiAgICBiZWdpbjogL1xcXFxcXHtcXHsvLFxuICAgIHNraXA6IHRydWVcbiAgfTtcbiAgY29uc3QgUFJFVkVOVF9FU0NBUEVfV0lUSF9BTk9USEVSX1BSRUNFRURJTkdfQkFDS1NMQVNIID0ge1xuICAgIGJlZ2luOiAvXFxcXFxcXFwoPz1cXHtcXHspLyxcbiAgICBza2lwOiB0cnVlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSGFuZGxlYmFycycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ2hicycsXG4gICAgICAnaHRtbC5oYnMnLFxuICAgICAgJ2h0bWwuaGFuZGxlYmFycycsXG4gICAgICAnaHRtbGJhcnMnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAgRVNDQVBFX01VU1RBQ0hFX1dJVEhfUFJFQ0VFRElOR19CQUNLU0xBU0gsXG4gICAgICBQUkVWRU5UX0VTQ0FQRV9XSVRIX0FOT1RIRVJfUFJFQ0VFRElOR19CQUNLU0xBU0gsXG4gICAgICBobGpzLkNPTU1FTlQoL1xce1xceyEtLS8sIC8tLVxcfVxcfS8pLFxuICAgICAgaGxqcy5DT01NRU5UKC9cXHtcXHshLywgL1xcfVxcfS8pLFxuICAgICAge1xuICAgICAgICAvLyBvcGVuIHJhdyBibG9jayBcInt7e3tyYXd9fX19IGNvbnRlbnQgbm90IGV2YWx1YXRlZCB7e3t7L3Jhd319fX1cIlxuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1xce1xce1xceyg/IVxcLykvLFxuICAgICAgICBlbmQ6IC9cXH1cXH1cXH1cXH0vLFxuICAgICAgICBjb250YWluczogWyBPUEVOSU5HX0JMT0NLX01VU1RBQ0hFX0NPTlRFTlRTIF0sXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogL1xce1xce1xce1xce1xcLy8sXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBjbG9zZSByYXcgYmxvY2tcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHtcXHtcXHtcXC8vLFxuICAgICAgICBlbmQ6IC9cXH1cXH1cXH1cXH0vLFxuICAgICAgICBjb250YWluczogWyBDTE9TSU5HX0JMT0NLX01VU1RBQ0hFX0NPTlRFTlRTIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIG9wZW4gYmxvY2sgc3RhdGVtZW50XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXRhZycsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7Iy8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIE9QRU5JTkdfQkxPQ0tfTVVTVEFDSEVfQ09OVEVOVFMgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHsoPz1lbHNlXFx9XFx9KS8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGtleXdvcmRzOiAnZWxzZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXRhZycsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7KD89ZWxzZSBpZikvLFxuICAgICAgICBlbmQ6IC9cXH1cXH0vLFxuICAgICAgICBrZXl3b3JkczogJ2Vsc2UgaWYnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBjbG9zaW5nIGJsb2NrIHN0YXRlbWVudFxuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS10YWcnLFxuICAgICAgICBiZWdpbjogL1xce1xce1xcLy8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIENMT1NJTkdfQkxPQ0tfTVVTVEFDSEVfQ09OVEVOVFMgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gdGVtcGxhdGUgdmFyaWFibGUgb3IgaGVscGVyLWNhbGwgdGhhdCBpcyBOT1QgaHRtbC1lc2NhcGVkXG4gICAgICAgIGNsYXNzTmFtZTogJ3RlbXBsYXRlLXZhcmlhYmxlJyxcbiAgICAgICAgYmVnaW46IC9cXHtcXHtcXHsvLFxuICAgICAgICBlbmQ6IC9cXH1cXH1cXH0vLFxuICAgICAgICBjb250YWluczogWyBCQVNJQ19NVVNUQUNIRV9DT05URU5UUyBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyB0ZW1wbGF0ZSB2YXJpYWJsZSBvciBoZWxwZXItY2FsbCB0aGF0IGlzIGh0bWwtZXNjYXBlZFxuICAgICAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFx7XFx7LyxcbiAgICAgICAgZW5kOiAvXFx9XFx9LyxcbiAgICAgICAgY29udGFpbnM6IFsgQkFTSUNfTVVTVEFDSEVfQ09OVEVOVFMgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBoYW5kbGViYXJzO1xuIiwgIi8qXG5MYW5ndWFnZTogSGFza2VsbFxuQXV0aG9yOiBKZXJlbXkgSHVsbCA8c291cmRydW1zQGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogWmVuYSBUcmVlcCA8emVuYS50cmVlcEBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5oYXNrZWxsLm9yZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbmZ1bmN0aW9uIGhhc2tlbGwoaGxqcykge1xuXG4gIC8qIFNlZTpcbiAgICAgLSBodHRwczovL3d3dy5oYXNrZWxsLm9yZy9vbmxpbmVyZXBvcnQvbGV4ZW1lcy5odG1sXG4gICAgIC0gaHR0cHM6Ly9kb3dubG9hZHMuaGFza2VsbC5vcmcvZ2hjLzkuMC4xL2RvY3MvaHRtbC91c2Vyc19ndWlkZS9leHRzL2JpbmFyeV9saXRlcmFscy5odG1sXG4gICAgIC0gaHR0cHM6Ly9kb3dubG9hZHMuaGFza2VsbC5vcmcvZ2hjLzkuMC4xL2RvY3MvaHRtbC91c2Vyc19ndWlkZS9leHRzL251bWVyaWNfdW5kZXJzY29yZXMuaHRtbFxuICAgICAtIGh0dHBzOi8vZG93bmxvYWRzLmhhc2tlbGwub3JnL2doYy85LjAuMS9kb2NzL2h0bWwvdXNlcnNfZ3VpZGUvZXh0cy9oZXhfZmxvYXRfbGl0ZXJhbHMuaHRtbFxuICAqL1xuICBjb25zdCBkZWNpbWFsRGlnaXRzID0gJyhbMC05XV8qKSsnO1xuICBjb25zdCBoZXhEaWdpdHMgPSAnKFswLTlhLWZBLUZdXyopKyc7XG4gIGNvbnN0IGJpbmFyeURpZ2l0cyA9ICcoWzAxXV8qKSsnO1xuICBjb25zdCBvY3RhbERpZ2l0cyA9ICcoWzAtN11fKikrJztcbiAgY29uc3QgYXNjU3ltYm9sID0gJ1shIyQlJiorLlxcXFwvPD0+P0BcXFxcXFxcXF5+LV0nO1xuICBjb25zdCB1bmlTeW1ib2wgPSAnKFxcXFxwe1N9fFxcXFxwe1B9KSc7IC8vIFN5bWJvbCBvciBQdW5jdHVhdGlvblxuICBjb25zdCBzcGVjaWFsID0gJ1soKSw7XFxcXFtcXFxcXWB8e31dJztcbiAgY29uc3Qgc3ltYm9sID0gYCgke2FzY1N5bWJvbH18KD8hKCR7c3BlY2lhbH18W186XCInXSkpJHt1bmlTeW1ib2x9KWA7XG5cbiAgY29uc3QgQ09NTUVOVCA9IHsgdmFyaWFudHM6IFtcbiAgICAvLyBEb3VibGUgZGFzaCBmb3JtcyBhIHZhbGlkIGNvbW1lbnQgb25seSBpZiBpdCdzIG5vdCBwYXJ0IG9mIGxlZ2FsIGxleGVtZS5cbiAgICAvLyBTZWU6IEhhc2tlbGwgOTggcmVwb3J0OiBodHRwczovL3d3dy5oYXNrZWxsLm9yZy9vbmxpbmVyZXBvcnQvbGV4ZW1lcy5odG1sXG4gICAgLy9cbiAgICAvLyBUaGUgY29tbWVudGVkIGNvZGUgZG9lcyB0aGUgam9iLCBidXQgd2UgY2FuJ3QgdXNlIG5lZ2F0aXZlIGxvb2tiZWhpbmQsXG4gICAgLy8gZHVlIHRvIHBvb3Igc3VwcG9ydCBieSBTYWZhcmkgYnJvd3Nlci5cbiAgICAvLyA+IGhsanMuQ09NTUVOVChgKD88ISR7c3ltYm9sfSktLSsoPyEke3N5bWJvbH0pYCwgJyQnKSxcbiAgICAvLyBTbyBpbnN0ZWFkLCB3ZSdsbCBhZGQgYSBuby1tYXJrdXAgcnVsZSBiZWZvcmUgdGhlIENPTU1FTlQgcnVsZSBpbiB0aGUgcnVsZXMgbGlzdFxuICAgIC8vIHRvIG1hdGNoIHRoZSBwcm9ibGVtYXRpYyBpbmZpeCBvcGVyYXRvcnMgdGhhdCBjb250YWluIGRvdWJsZSBkYXNoLlxuICAgIGhsanMuQ09NTUVOVCgnLS0rJywgJyQnKSxcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAvXFx7LS8sXG4gICAgICAvLVxcfS8sXG4gICAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgICApXG4gIF0gfTtcblxuICBjb25zdCBQUkFHTUEgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC9cXHstIy8sXG4gICAgZW5kOiAvIy1cXH0vXG4gIH07XG5cbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXiMnLFxuICAgIGVuZDogJyQnXG4gIH07XG5cbiAgY29uc3QgQ09OU1RSVUNUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XFwnXSonLCAvLyBUT0RPOiBvdGhlciBjb25zdHJ1Y3RvcnMgKGJ1aWxkLWluLCBpbmZpeCkuXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICBlbmQ6ICdcXFxcKScsXG4gICAgaWxsZWdhbDogJ1wiJyxcbiAgICBjb250YWluczogW1xuICAgICAgUFJBR01BLFxuICAgICAgUFJFUFJPQ0VTU09SLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XSooXFxcXCgoXFxcXC5cXFxcLnwsfFxcXFx3KylcXFxcKSk/J1xuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICdbX2Etel1bXFxcXHdcXCddKicgfSksXG4gICAgICBDT01NRU5UXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJFQ09SRCA9IHtcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBjb250YWluczogTElTVC5jb250YWluc1xuICB9O1xuXG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBkZWNpbWFsLWxpdGVyYWwpXG4gICAgICB7IG1hdGNoOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSkpP2AgKyBgKFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBoZXhhZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBoZXhhZGVjaW1hbC1saXRlcmFsKVxuICAgICAgeyBtYXRjaDogYFxcXFxiMFt4WF1fKigke2hleERpZ2l0c30pKFxcXFwuKCR7aGV4RGlnaXRzfSkpP2AgKyBgKFtwUF1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBvY3RhbC1saXRlcmFsXG4gICAgICB7IG1hdGNoOiBgXFxcXGIwW29PXSgke29jdGFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIC8vIGJpbmFyeS1saXRlcmFsXG4gICAgICB7IG1hdGNoOiBgXFxcXGIwW2JCXSgke2JpbmFyeURpZ2l0c30pXFxcXGJgIH1cbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSGFza2VsbCcsXG4gICAgYWxpYXNlczogWyAnaHMnIF0sXG4gICAga2V5d29yZHM6XG4gICAgICAnbGV0IGluIGlmIHRoZW4gZWxzZSBjYXNlIG9mIHdoZXJlIGRvIG1vZHVsZSBpbXBvcnQgaGlkaW5nICdcbiAgICAgICsgJ3F1YWxpZmllZCB0eXBlIGRhdGEgbmV3dHlwZSBkZXJpdmluZyBjbGFzcyBpbnN0YW5jZSBhcyBkZWZhdWx0ICdcbiAgICAgICsgJ2luZml4IGluZml4bCBpbmZpeHIgZm9yZWlnbiBleHBvcnQgY2NhbGwgc3RkY2FsbCBjcGx1c3BsdXMgJ1xuICAgICAgKyAnanZtIGRvdG5ldCBzYWZlIHVuc2FmZSBmYW1pbHkgZm9yYWxsIG1kbyBwcm9jIHJlYycsXG4gICAgdW5pY29kZVJlZ2V4OiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBUb3AtbGV2ZWwgY29uc3RydWN0aW9ucy5cbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ21vZHVsZScsXG4gICAgICAgIGVuZDogJ3doZXJlJyxcbiAgICAgICAga2V5d29yZHM6ICdtb2R1bGUgd2hlcmUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYmltcG9ydFxcXFxiJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAnaW1wb3J0IHF1YWxpZmllZCBhcyBoaWRpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXFdcXFxcLnw7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJ14oXFxcXHMqKT8oY2xhc3N8aW5zdGFuY2UpXFxcXGInLFxuICAgICAgICBlbmQ6ICd3aGVyZScsXG4gICAgICAgIGtleXdvcmRzOiAnY2xhc3MgZmFtaWx5IGluc3RhbmNlIHdoZXJlJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDT05TVFJVQ1RPUixcbiAgICAgICAgICBMSVNULFxuICAgICAgICAgIENPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiKGRhdGF8KG5ldyk/dHlwZSlcXFxcYicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ2RhdGEgZmFtaWx5IHR5cGUgbmV3dHlwZSBkZXJpdmluZycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUFJBR01BLFxuICAgICAgICAgIENPTlNUUlVDVE9SLFxuICAgICAgICAgIExJU1QsXG4gICAgICAgICAgUkVDT1JELFxuICAgICAgICAgIENPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2RlZmF1bHQnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBDT05TVFJVQ1RPUixcbiAgICAgICAgICBMSVNULFxuICAgICAgICAgIENPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2luZml4IGluZml4bCBpbmZpeHInLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiZm9yZWlnblxcXFxiJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAnZm9yZWlnbiBpbXBvcnQgZXhwb3J0IGNjYWxsIHN0ZGNhbGwgY3BsdXNwbHVzIGp2bSAnXG4gICAgICAgICAgICAgICAgICArICdkb3RuZXQgc2FmZSB1bnNhZmUnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIENPTlNUUlVDVE9SLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgQ09NTUVOVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjIVxcXFwvdXNyXFxcXC9iaW5cXFxcL2VudlxcIHJ1bmhhc2tlbGwnLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfSxcbiAgICAgIC8vIFwiV2hpdGVzcGFjZXNcIi5cbiAgICAgIFBSQUdNQSxcbiAgICAgIFBSRVBST0NFU1NPUixcblxuICAgICAgLy8gTGl0ZXJhbHMgYW5kIG5hbWVzLlxuXG4gICAgICAvLyBTaW5nbGUgY2hhcmFjdGVycy5cbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLycoPz1cXFxcPy4nKS8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiAnY2hhci5lc2NhcGUnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcLi8sXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBOVU1CRVIsXG4gICAgICBDT05TVFJVQ1RPUixcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICdeW19hLXpdW1xcXFx3XFwnXSonIH0pLFxuICAgICAgLy8gTm8gbWFya3VwLCBwcmV2ZW50cyBpbmZpeCBvcGVyYXRvcnMgZnJvbSBiZWluZyByZWNvZ25pemVkIGFzIGNvbW1lbnRzLlxuICAgICAgeyBiZWdpbjogYCg/IS0pJHtzeW1ib2x9LS0rfC0tKyg/IS0pJHtzeW1ib2x9YH0sXG4gICAgICBDT01NRU5ULFxuICAgICAgeyAvLyBObyBtYXJrdXAsIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAnLT58PC0nIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaGFza2VsbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IEhheGVcbkRlc2NyaXB0aW9uOiBIYXhlIGlzIGFuIG9wZW4gc291cmNlIHRvb2xraXQgYmFzZWQgb24gYSBtb2Rlcm4sIGhpZ2ggbGV2ZWwsIHN0cmljdGx5IHR5cGVkIHByb2dyYW1taW5nIGxhbmd1YWdlLlxuQXV0aG9yOiBDaHJpc3RvcGhlciBLYXN0ZXIgPGlrYXNva2lAZ21haWwuY29tPiAoQmFzZWQgb24gdGhlIGFjdGlvbnNjcmlwdC5qcyBsYW5ndWFnZSBmaWxlIGJ5IEFsZXhhbmRlciBNeWFkemVsKVxuQ29udHJpYnV0b3JzOiBLZW50b24gSGFtYWx1aWsgPGtlbnRvbmhAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9oYXhlLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuZnVuY3Rpb24gaGF4ZShobGpzKSB7XG4gIGNvbnN0IElERU5UX1JFID0gJ1thLXpBLVpfJF1bYS16QS1aMC05XyRdKic7XG5cbiAgLy8gQ19OVU1CRVJfUkUgd2l0aCB1bmRlcnNjb3JlcyBhbmQgbGl0ZXJhbCBzdWZmaXhlc1xuICBjb25zdCBIQVhFX05VTUJFUl9SRSA9IC8oLT8pKFxcYjBbeFhdW2EtZkEtRjAtOV9dK3woXFxiXFxkKyhcXC5bXFxkX10qKT98XFwuW1xcZF9dKykoKFtlRV1bLStdP1xcZCspfGkzMnx1MzJ8aTY0fGY2NCk/KS87XG5cbiAgY29uc3QgSEFYRV9CQVNJQ19UWVBFUyA9ICdJbnQgRmxvYXQgU3RyaW5nIEJvb2wgRHluYW1pYyBWb2lkIEFycmF5ICc7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSGF4ZScsXG4gICAgYWxpYXNlczogWyAnaHgnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdhYnN0cmFjdCBicmVhayBjYXNlIGNhc3QgY2F0Y2ggY29udGludWUgZGVmYXVsdCBkbyBkeW5hbWljIGVsc2UgZW51bSBleHRlcm4gJ1xuICAgICAgICAgICAgICAgKyAnZmluYWwgZm9yIGZ1bmN0aW9uIGhlcmUgaWYgaW1wb3J0IGluIGlubGluZSBpcyBtYWNybyBuZXZlciBuZXcgb3ZlcnJpZGUgcGFja2FnZSBwcml2YXRlIGdldCBzZXQgJ1xuICAgICAgICAgICAgICAgKyAncHVibGljIHJldHVybiBzdGF0aWMgc3VwZXIgc3dpdGNoIHRoaXMgdGhyb3cgdHJhY2UgdHJ5IHR5cGVkZWYgdW50eXBlZCB1c2luZyB2YXIgd2hpbGUgJ1xuICAgICAgICAgICAgICAgKyBIQVhFX0JBU0lDX1RZUEVTLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICd0cmFjZSB0aGlzJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlIG51bGwgXydcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsIC8vIGludGVycG9sYXRlLWFibGUgc3RyaW5nc1xuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JywgLy8gaW50ZXJwb2xhdGlvblxuICAgICAgICAgICAgYmVnaW46IC9cXCRcXHsvLFxuICAgICAgICAgICAgZW5kOiAvXFx9L1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLCAvLyBpbnRlcnBvbGF0aW9uXG4gICAgICAgICAgICBiZWdpbjogL1xcJC8sXG4gICAgICAgICAgICBlbmQ6IC9cXFdcXH0vXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBIQVhFX05VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiBcIlxcXFwkXCIgKyBJREVOVF9SRSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCAvLyBjb21waWxlciBtZXRhXG4gICAgICAgIGJlZ2luOiAvQDo/LyxcbiAgICAgICAgZW5kOiAvXFwofCQvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsIC8vIGNvbXBpbGVyIGNvbmRpdGlvbmFsc1xuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxzZWlmIGVuZCBlcnJvcicgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsIC8vIGZ1bmN0aW9uIHR5cGVzXG4gICAgICAgIGJlZ2luOiAvOlsgXFx0XSovLFxuICAgICAgICBlbmQ6IC9bXkEtWmEtejAtOV8gXFx0XFwtPl0vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsIC8vIHR5cGVzXG4gICAgICAgIGJlZ2luOiAvOlsgXFx0XSovLFxuICAgICAgICBlbmQ6IC9cXFcvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLCAvLyBpbnN0YW50aWF0aW9uXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICduZXcnLFxuICAgICAgICBlbmQ6IC9cXFcvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlLmNsYXNzJywgLy8gZW51bXNcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2VudW0nLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBjb250YWluczogWyBobGpzLlRJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUuY2xhc3MnLCAvLyBhYnN0cmFjdHNcbiAgICAgICAgYmVnaW46ICdcXFxcYmFic3RyYWN0XFxcXGIoPz1cXFxccyonICsgaGxqcy5JREVOVF9SRSArICdcXFxccypcXFxcKCknLFxuICAgICAgICBlbmQ6IC9bXFx7JF0vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC9mcm9tICsvLFxuICAgICAgICAgICAgZW5kOiAvXFxXLyxcbiAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC90byArLyxcbiAgICAgICAgICAgIGVuZDogL1xcVy8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgXSxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2Fic3RyYWN0IGZyb20gdG8nIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlLmNsYXNzJywgLy8gY2xhc3Nlc1xuICAgICAgICBiZWdpbjogL1xcYihjbGFzc3xpbnRlcmZhY2UpICsvLFxuICAgICAgICBlbmQ6IC9bXFx7JF0vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgICBiZWdpbjogL1xcYihleHRlbmRzfGltcGxlbWVudHMpICsvLFxuICAgICAgICAgICAga2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFLFxuICAgICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLlRJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUuZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9cXCgvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5USVRMRV9NT0RFIF1cbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC88XFwvL1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGhheGU7XG4iLCAiLypcbkxhbmd1YWdlOiBIU1BcbkF1dGhvcjogcHJpbmNlIDxNQy5wcmluY2UuMDIwM0BnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Ib3RfU291cF9Qcm9jZXNzb3JcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbmZ1bmN0aW9uIGhzcChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0hTUCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3Ll9dKy8sXG4gICAgICBrZXl3b3JkOiAnZ290byBnb3N1YiByZXR1cm4gYnJlYWsgcmVwZWF0IGxvb3AgY29udGludWUgd2FpdCBhd2FpdCBkaW0gc2RpbSBmb3JlYWNoIGRpbXR5cGUgZHVwIGR1cHB0ciBlbmQgc3RvcCBuZXdtb2QgZGVsbW9kIG1yZWYgcnVuIGV4Z290byBvbiBtY2FsbCBhc3NlcnQgbG9nbWVzIG5ld2xhYiByZXN1bWUgeWllbGQgb25leGl0IG9uZXJyb3Igb25rZXkgb25jbGljayBvbmNtZCBleGlzdCBkZWxldGUgbWtkaXIgY2hkaXIgZGlybGlzdCBibG9hZCBic2F2ZSBiY29weSBtZW1maWxlIGlmIGVsc2UgcG9rZSB3cG9rZSBscG9rZSBnZXRzdHIgY2hkcG0gbWVtZXhwYW5kIG1lbWNweSBtZW1zZXQgbm90ZXNlbCBub3RlYWRkIG5vdGVkZWwgbm90ZWxvYWQgbm90ZXNhdmUgcmFuZG9taXplIG5vdGV1bnNlbCBub3RlZ2V0IHNwbGl0IHN0cnJlcCBzZXRlYXNlIGJ1dHRvbiBjaGdkaXNwIGV4ZWMgZGlhbG9nIG1tbG9hZCBtbXBsYXkgbW1zdG9wIG1jaSBwc2V0IHBnZXQgc3lzY29sb3IgbWVzIHByaW50IHRpdGxlIHBvcyBjaXJjbGUgY2xzIGZvbnQgc3lzZm9udCBvYmpzaXplIHBpY2xvYWQgY29sb3IgcGFsY29sb3IgcGFsZXR0ZSByZWRyYXcgd2lkdGggZ3NlbCBnY29weSBnem9vbSBnbW9kZSBibXBzYXZlIGhzdmNvbG9yIGdldGtleSBsaXN0Ym94IGNoa2JveCBjb21ib3ggaW5wdXQgbWVzYm94IGJ1ZmZlciBzY3JlZW4gYmdzY3IgbW91c2Ugb2Jqc2VsIGdyb2xsIGxpbmUgY2xyb2JqIGJveGYgb2JqcHJtIG9iam1vZGUgc3RpY2sgZ3JlY3QgZ3JvdGF0ZSBnc3F1YXJlIGdyYWRmIG9iamltYWdlIG9ianNraXAgb2JqZW5hYmxlIGNlbGxvYWQgY2VsZGl2IGNlbHB1dCBuZXdjb20gcXVlcnljb20gZGVsY29tIGNudnN0b3cgY29tcmVzIGF4b2JqIHdpbm9iaiBzZW5kbXNnIGNvbWV2ZW50IGNvbWV2YXJnIHNhcnJheWNvbnYgY2FsbGZ1bmMgY252d3RvcyBjb21ldmRpc3AgbGlicHRyIHN5c3RlbSBoc3BzdGF0IGhzcHZlciBzdGF0IGNudCBlcnIgc3Ryc2l6ZSBsb29wbGV2IHN1YmxldiBpcGFyYW0gd3BhcmFtIGxwYXJhbSByZWZzdHIgcmVmZHZhbCBpbnQgcm5kIHN0cmxlbiBsZW5ndGggbGVuZ3RoMiBsZW5ndGgzIGxlbmd0aDQgdmFydHlwZSBnZXR0aW1lIHBlZWsgd3BlZWsgbHBlZWsgdmFycHRyIHZhcnVzZSBub3RlaW5mbyBpbnN0ciBhYnMgbGltaXQgZ2V0ZWFzZSBzdHIgc3RybWlkIHN0cmYgZ2V0cGF0aCBzdHJ0cmltIHNpbiBjb3MgdGFuIGF0YW4gc3FydCBkb3VibGUgYWJzZiBleHBmIGxvZ2YgbGltaXRmIHBvd2YgZ2V0ZWFzZWYgbW91c2V4IG1vdXNleSBtb3VzZXcgaHduZCBoaW5zdGFuY2UgaGRjIGdpbmZvIG9iamluZm8gZGlyaW5mbyBzeXNpbmZvIHRoaXNtb2QgX19oc3B2ZXJfXyBfX2hzcDMwX18gX19kYXRlX18gX190aW1lX18gX19saW5lX18gX19maWxlX18gX2RlYnVnIF9faHNwZGVmX18gYW5kIG9yIHhvciBub3Qgc2NyZWVuX25vcm1hbCBzY3JlZW5fcGFsZXR0ZSBzY3JlZW5faGlkZSBzY3JlZW5fZml4ZWRzaXplIHNjcmVlbl90b29sIHNjcmVlbl9mcmFtZSBnbW9kZV9nZGkgZ21vZGVfbWVtIGdtb2RlX3JnYjAgZ21vZGVfYWxwaGEgZ21vZGVfcmdiMGFscGhhIGdtb2RlX2FkZCBnbW9kZV9zdWIgZ21vZGVfcGl4ZWxhIGdpbmZvX214IGdpbmZvX215IGdpbmZvX2FjdCBnaW5mb19zZWwgZ2luZm9fd3gxIGdpbmZvX3d5MSBnaW5mb193eDIgZ2luZm9fd3kyIGdpbmZvX3Z4IGdpbmZvX3Z5IGdpbmZvX3NpemV4IGdpbmZvX3NpemV5IGdpbmZvX3dpbnggZ2luZm9fd2lueSBnaW5mb19tZXN4IGdpbmZvX21lc3kgZ2luZm9fciBnaW5mb19nIGdpbmZvX2IgZ2luZm9fcGFsdXNlIGdpbmZvX2Rpc3B4IGdpbmZvX2Rpc3B5IGdpbmZvX2N4IGdpbmZvX2N5IGdpbmZvX2ludGlkIGdpbmZvX25ld2lkIGdpbmZvX3N4IGdpbmZvX3N5IG9iamluZm9fbW9kZSBvYmppbmZvX2Jtc2NyIG9iamluZm9faHduZCBub3RlbWF4IG5vdGVzaXplIGRpcl9jdXIgZGlyX2V4ZSBkaXJfd2luIGRpcl9zeXMgZGlyX2NtZGxpbmUgZGlyX2Rlc2t0b3AgZGlyX215ZG9jIGRpcl90diBmb250X25vcm1hbCBmb250X2JvbGQgZm9udF9pdGFsaWMgZm9udF91bmRlcmxpbmUgZm9udF9zdHJpa2VvdXQgZm9udF9hbnRpYWxpYXMgb2JqbW9kZV9ub3JtYWwgb2JqbW9kZV9ndWlmb250IG9iam1vZGVfdXNlZm9udCBnc3F1YXJlX2dyYWQgbXNnb3RoaWMgbXNtaW5jaG8gZG8gdW50aWwgd2hpbGUgd2VuZCBmb3IgbmV4dCBfYnJlYWsgX2NvbnRpbnVlIHN3aXRjaCBjYXNlIGRlZmF1bHQgc3dicmVhayBzd2VuZCBkZGltIGxkaW0gYWxsb2MgbV9waSByYWQyZGVnIGRlZzJyYWQgZWFzZV9saW5lYXIgZWFzZV9xdWFkX2luIGVhc2VfcXVhZF9vdXQgZWFzZV9xdWFkX2lub3V0IGVhc2VfY3ViaWNfaW4gZWFzZV9jdWJpY19vdXQgZWFzZV9jdWJpY19pbm91dCBlYXNlX3F1YXJ0aWNfaW4gZWFzZV9xdWFydGljX291dCBlYXNlX3F1YXJ0aWNfaW5vdXQgZWFzZV9ib3VuY2VfaW4gZWFzZV9ib3VuY2Vfb3V0IGVhc2VfYm91bmNlX2lub3V0IGVhc2Vfc2hha2VfaW4gZWFzZV9zaGFrZV9vdXQgZWFzZV9zaGFrZV9pbm91dCBlYXNlX2xvb3AnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG5cbiAgICAgIHtcbiAgICAgICAgLy8gbXVsdGktbGluZSBzdHJpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cXHtcIi8sXG4gICAgICAgIGVuZDogL1wiXFx9LyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG5cbiAgICAgIGhsanMuQ09NTUVOVCgnOycsICckJywgeyByZWxldmFuY2U6IDAgfSksXG5cbiAgICAgIHtcbiAgICAgICAgLy8gcHJlLXByb2Nlc3NvclxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdhZGRpb24gY2Z1bmMgY21kIGNtcG9wdCBjb21mdW5jIGNvbnN0IGRlZmNmdW5jIGRlZmZ1bmMgZGVmaW5lIGVsc2UgZW5kaWYgZW51bSBlcGFjayBmdW5jIGdsb2JhbCBpZiBpZmRlZiBpZm5kZWYgaW5jbHVkZSBtb2RjZnVuYyBtb2RmdW5jIG1vZGluaXQgbW9kdGVybSBtb2R1bGUgcGFjayBwYWNrb3B0IHJlZ2NtZCBydW50aW1lIHVuZGVmIHVzZWNvbSB1c2VsaWInIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgY2xhc3NOYW1lOiAnc3RyaW5nJyB9KSxcbiAgICAgICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIC8vIGxhYmVsXG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIGJlZ2luOiAnXlxcXFwqKFxcXFx3K3xAKSdcbiAgICAgIH0sXG5cbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaHNwO1xuIiwgIi8qXG5MYW5ndWFnZTogSFRUUFxuRGVzY3JpcHRpb246IEhUVFAgcmVxdWVzdCBhbmQgcmVzcG9uc2UgaGVhZGVycyB3aXRoIGF1dG9tYXRpYyBib2R5IGhpZ2hsaWdodGluZ1xuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNhdGVnb3J5OiBwcm90b2NvbHMsIHdlYlxuV2Vic2l0ZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9PdmVydmlld1xuKi9cblxuZnVuY3Rpb24gaHR0cChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgVkVSU0lPTiA9ICdIVFRQLyhbMzJdfDFcXFxcLlswMV0pJztcbiAgY29uc3QgSEVBREVSX05BTUUgPSAvW0EtWmEtel1bQS1aYS16MC05LV0qLztcbiAgY29uc3QgSEVBREVSID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgnXicsIEhFQURFUl9OQU1FLCAnKD89XFxcXDpcXFxccyknKSxcbiAgICBzdGFydHM6IHsgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgIGJlZ2luOiAvOiAvLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogJyQnLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICB9XG4gICAgXSB9XG4gIH07XG4gIGNvbnN0IEhFQURFUlNfQU5EX0JPRFkgPSBbXG4gICAgSEVBREVSLFxuICAgIHtcbiAgICAgIGJlZ2luOiAnXFxcXG5cXFxcbicsXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgc3ViTGFuZ3VhZ2U6IFtdLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdIVFRQJyxcbiAgICBhbGlhc2VzOiBbICdodHRwcycgXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgLy8gcmVzcG9uc2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeKD89JyArIFZFUlNJT04gKyBcIiBcXFxcZHszfSlcIixcbiAgICAgICAgZW5kOiAvJC8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBcIm1ldGFcIixcbiAgICAgICAgICAgIGJlZ2luOiBWRVJTSU9OXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkezN9XFxcXGInXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC9cXGJcXEIvLFxuICAgICAgICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgICAgICAgIGNvbnRhaW5zOiBIRUFERVJTX0FORF9CT0RZXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyByZXF1ZXN0XG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKD89XltBLVpdKyAoLio/KSAnICsgVkVSU0lPTiArICckKScsXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogJyAnLFxuICAgICAgICAgICAgZW5kOiAnICcsXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IFwibWV0YVwiLFxuICAgICAgICAgICAgYmVnaW46IFZFUlNJT05cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46ICdbQS1aXSsnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC9cXGJcXEIvLFxuICAgICAgICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgICAgICAgIGNvbnRhaW5zOiBIRUFERVJTX0FORF9CT0RZXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyB0byBhbGxvdyBoZWFkZXJzIHRvIHdvcmsgZXZlbiB3aXRob3V0IGEgcHJlYW1ibGVcbiAgICAgIGhsanMuaW5oZXJpdChIRUFERVIsIHsgcmVsZXZhbmNlOiAwIH0pXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGh0dHA7XG4iLCAiLypcbkxhbmd1YWdlOiBIeVxuRGVzY3JpcHRpb246IEh5IGlzIGEgd29uZGVyZnVsIGRpYWxlY3Qgb2YgTGlzcCB0aGF0XHUyMDE5cyBlbWJlZGRlZCBpbiBQeXRob24uXG5BdXRob3I6IFNlcmdleSBTb2JrbyA8cy5zb2Jrb0Bwcm9maXR3YXJlLnJ1PlxuV2Vic2l0ZTogaHR0cDovL2RvY3MuaHlsYW5nLm9yZy9lbi9zdGFibGUvXG5DYXRlZ29yeTogbGlzcFxuKi9cblxuZnVuY3Rpb24gaHkoaGxqcykge1xuICBjb25zdCBTWU1CT0xTVEFSVCA9ICdhLXpBLVpfXFxcXC0hLj8rKj08PiYjXFwnJztcbiAgY29uc3QgU1lNQk9MX1JFID0gJ1snICsgU1lNQk9MU1RBUlQgKyAnXVsnICsgU1lNQk9MU1RBUlQgKyAnMC05Lzs6XSonO1xuICBjb25zdCBrZXl3b3JkcyA9IHtcbiAgICAkcGF0dGVybjogU1lNQk9MX1JFLFxuICAgIGJ1aWx0X2luOlxuICAgICAgLy8ga2V5d29yZHNcbiAgICAgICchPSAlICU9ICYgJj0gKiAqKiAqKj0gKj0gKm1hcCAnXG4gICAgICArICcrICs9ICwgLS1idWlsZC1jbGFzcy0tIC0taW1wb3J0LS0gLT0gLiAvIC8vIC8vPSAnXG4gICAgICArICcvPSA8IDw8IDw8PSA8PSA9ID4gPj0gPj4gPj49ICdcbiAgICAgICsgJ0AgQD0gXiBePSBhYnMgYWNjdW11bGF0ZSBhbGwgYW5kIGFueSBhcC1jb21wb3NlICdcbiAgICAgICsgJ2FwLWRvdGltZXMgYXAtZWFjaCBhcC1lYWNoLXdoaWxlIGFwLWZpbHRlciBhcC1maXJzdCBhcC1pZiBhcC1sYXN0IGFwLW1hcCBhcC1tYXAtd2hlbiBhcC1waXBlICdcbiAgICAgICsgJ2FwLXJlZHVjZSBhcC1yZWplY3QgYXBwbHkgYXMtPiBhc2NpaSBhc3NlcnQgYXNzb2MgYmluIGJyZWFrIGJ1dGxhc3QgJ1xuICAgICAgKyAnY2FsbGFibGUgY2FsbGluZy1tb2R1bGUtbmFtZSBjYXIgY2FzZSBjZHIgY2hhaW4gY2hyIGNvbGw/IGNvbWJpbmF0aW9ucyBjb21waWxlICdcbiAgICAgICsgJ2NvbXByZXNzIGNvbmQgY29ucyBjb25zPyBjb250aW51ZSBjb3VudCBjdXJyeSBjdXQgY3ljbGUgZGVjICdcbiAgICAgICsgJ2RlZiBkZWZhdWx0LW1ldGhvZCBkZWZjbGFzcyBkZWZtYWNybyBkZWZtYWNyby1hbGlhcyBkZWZtYWNyby9nISBkZWZtYWluIGRlZm1ldGhvZCBkZWZtdWx0aSBkZWZuICdcbiAgICAgICsgJ2RlZm4tYWxpYXMgZGVmbmMgZGVmbnIgZGVmcmVhZGVyIGRlZnNlcSBkZWwgZGVsYXR0ciBkZWxldGUtcm91dGUgZGljdC1jb21wIGRpciAnXG4gICAgICArICdkaXNhc3NlbWJsZSBkaXNwYXRjaC1yZWFkZXItbWFjcm8gZGlzdGluY3QgZGl2bW9kIGRvIGRvdG8gZHJvcCBkcm9wLWxhc3QgZHJvcC13aGlsZSBlbXB0eT8gJ1xuICAgICAgKyAnZW5kLXNlcXVlbmNlIGV2YWwgZXZhbC1hbmQtY29tcGlsZSBldmFsLXdoZW4tY29tcGlsZSBldmVuPyBldmVyeT8gZXhjZXB0IGV4ZWMgZmlsdGVyIGZpcnN0ICdcbiAgICAgICsgJ2ZsYXR0ZW4gZmxvYXQ/IGZuIGZuYyBmbnIgZm9yIGZvciogZm9ybWF0IGZyYWN0aW9uIGdlbmV4cHIgJ1xuICAgICAgKyAnZ2Vuc3ltIGdldCBnZXRhdHRyIGdsb2JhbCBnbG9iYWxzIGdyb3VwLWJ5IGhhc2F0dHIgaGFzaCBoZXggaWQgJ1xuICAgICAgKyAnaWRlbnRpdHkgaWYgaWYqIGlmLW5vdCBpZi1weXRob24yIGltcG9ydCBpbiBpbmMgaW5wdXQgaW5zdGFuY2U/ICdcbiAgICAgICsgJ2ludGVnZXIgaW50ZWdlci1jaGFyPyBpbnRlZ2VyPyBpbnRlcmxlYXZlIGludGVycG9zZSBpcyBpcy1jb2xsIGlzLWNvbnMgaXMtZW1wdHkgaXMtZXZlbiAnXG4gICAgICArICdpcy1ldmVyeSBpcy1mbG9hdCBpcy1pbnN0YW5jZSBpcy1pbnRlZ2VyIGlzLWludGVnZXItY2hhciBpcy1pdGVyYWJsZSBpcy1pdGVyYXRvciBpcy1rZXl3b3JkIGlzLW5lZyBpcy1ub25lICdcbiAgICAgICsgJ2lzLW5vdCBpcy1udW1lcmljIGlzLW9kZCBpcy1wb3MgaXMtc3RyaW5nIGlzLXN5bWJvbCBpcy16ZXJvIGlzaW5zdGFuY2UgaXNsaWNlIGlzc3ViY2xhc3MgJ1xuICAgICAgKyAnaXRlciBpdGVyYWJsZT8gaXRlcmF0ZSBpdGVyYXRvcj8ga2V5d29yZCBrZXl3b3JkPyBsYW1iZGEgbGFzdCBsZW4gbGV0ICdcbiAgICAgICsgJ2xpZiBsaWYtbm90IGxpc3QqIGxpc3QtY29tcCBsb2NhbHMgbG9vcCBtYWNyby1lcnJvciBtYWNyb2V4cGFuZCBtYWNyb2V4cGFuZC0xIG1hY3JvZXhwYW5kLWFsbCAnXG4gICAgICArICdtYXAgbWF4IG1lcmdlLXdpdGggbWV0aG9kLWRlY29yYXRvciBtaW4gbXVsdGktZGVjb3JhdG9yIG11bHRpY29tYmluYXRpb25zIG5hbWUgbmVnPyBuZXh0ICdcbiAgICAgICsgJ25vbmU/IG5vbmxvY2FsIG5vdCBub3QtaW4gbm90PyBudGggbnVtZXJpYz8gb2N0IG9kZD8gb3BlbiAnXG4gICAgICArICdvciBvcmQgcGFydGl0aW9uIHBlcm11dGF0aW9ucyBwb3M/IHBvc3Qtcm91dGUgcG9zdHdhbGsgcG93IHByZXdhbGsgcHJpbnQgJ1xuICAgICAgKyAncHJvZHVjdCBwcm9maWxlL2NhbGxzIHByb2ZpbGUvY3B1IHB1dC1yb3V0ZSBxdWFzaXF1b3RlIHF1b3RlIHJhaXNlIHJhbmdlIHJlYWQgcmVhZC1zdHIgJ1xuICAgICAgKyAncmVjdXJzaXZlLXJlcGxhY2UgcmVkdWNlIHJlbW92ZSByZXBlYXQgcmVwZWF0ZWRseSByZXByIHJlcXVpcmUgcmVzdCByb3VuZCByb3V0ZSAnXG4gICAgICArICdyb3V0ZS13aXRoLW1ldGhvZHMgcndtIHNlY29uZCBzZXEgc2V0LWNvbXAgc2V0YXR0ciBzZXR2IHNvbWUgc29ydGVkIHN0cmluZyAnXG4gICAgICArICdzdHJpbmc/IHN1bSBzd2l0Y2ggc3ltYm9sPyB0YWtlIHRha2UtbnRoIHRha2Utd2hpbGUgdGVlIHRyeSB1bmxlc3MgJ1xuICAgICAgKyAndW5xdW90ZSB1bnF1b3RlLXNwbGljaW5nIHZhcnMgd2FsayB3aGVuIHdoaWxlIHdpdGggd2l0aCogd2l0aC1kZWNvcmF0b3Igd2l0aC1nZW5zeW1zICdcbiAgICAgICsgJ3hpIHhvciB5aWVsZCB5aWVsZC1mcm9tIHplcm8/IHppcCB6aXAtbG9uZ2VzdCB8IHw9IH4nXG4gIH07XG5cbiAgY29uc3QgU0lNUExFX05VTUJFUl9SRSA9ICdbLStdP1xcXFxkKyhcXFxcLlxcXFxkKyk/JztcblxuICBjb25zdCBTWU1CT0wgPSB7XG4gICAgYmVnaW46IFNZTUJPTF9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46IFNJTVBMRV9OVU1CRVJfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSk7XG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJzsnLFxuICAgICckJyxcbiAgICB7IHJlbGV2YW5jZTogMCB9XG4gICk7XG4gIGNvbnN0IExJVEVSQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46IC9cXGIoW1R0XXJ1ZXxbRmZdYWxzZXxuaWx8Tm9uZSlcXGIvXG4gIH07XG4gIGNvbnN0IENPTExFQ1RJT04gPSB7XG4gICAgYmVnaW46ICdbXFxcXFtcXFxce10nLFxuICAgIGVuZDogJ1tcXFxcXVxcXFx9XScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IEhJTlQgPSB7XG4gICAgY2xhc3NOYW1lOiAnY29tbWVudCcsXG4gICAgYmVnaW46ICdcXFxcXicgKyBTWU1CT0xfUkVcbiAgfTtcbiAgY29uc3QgSElOVF9DT0wgPSBobGpzLkNPTU1FTlQoJ1xcXFxeXFxcXHsnLCAnXFxcXH0nKTtcbiAgY29uc3QgS0VZID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdbOl17MSwyfScgKyBTWU1CT0xfUkVcbiAgfTtcbiAgY29uc3QgTElTVCA9IHtcbiAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICBlbmQ6ICdcXFxcKSdcbiAgfTtcbiAgY29uc3QgQk9EWSA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTkFNRSA9IHtcbiAgICBjbGFzc05hbWU6ICduYW1lJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAga2V5d29yZHM6IGtleXdvcmRzLFxuICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgc3RhcnRzOiBCT0RZXG4gIH07XG4gIGNvbnN0IERFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgTElTVCxcbiAgICBTVFJJTkcsXG4gICAgSElOVCxcbiAgICBISU5UX0NPTCxcbiAgICBDT01NRU5ULFxuICAgIEtFWSxcbiAgICBDT0xMRUNUSU9OLFxuICAgIE5VTUJFUixcbiAgICBMSVRFUkFMLFxuICAgIFNZTUJPTFxuICBdO1xuXG4gIExJU1QuY29udGFpbnMgPSBbXG4gICAgaGxqcy5DT01NRU5UKCdjb21tZW50JywgJycpLFxuICAgIE5BTUUsXG4gICAgQk9EWVxuICBdO1xuICBCT0RZLmNvbnRhaW5zID0gREVGQVVMVF9DT05UQUlOUztcbiAgQ09MTEVDVElPTi5jb250YWlucyA9IERFRkFVTFRfQ09OVEFJTlM7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSHknLFxuICAgIGFsaWFzZXM6IFsgJ2h5bGFuZycgXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5TSEVCQU5HKCksXG4gICAgICBMSVNULFxuICAgICAgU1RSSU5HLFxuICAgICAgSElOVCxcbiAgICAgIEhJTlRfQ09MLFxuICAgICAgQ09NTUVOVCxcbiAgICAgIEtFWSxcbiAgICAgIENPTExFQ1RJT04sXG4gICAgICBOVU1CRVIsXG4gICAgICBMSVRFUkFMXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGh5O1xuIiwgIi8qXG5MYW5ndWFnZTogSW5mb3JtIDdcbkF1dGhvcjogQnJ1bm8gRGlhcyA8YnJ1bm8uci5kaWFzQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBMYW5ndWFnZSBkZWZpbml0aW9uIGZvciBJbmZvcm0gNywgYSBEU0wgZm9yIHdyaXRpbmcgcGFyc2VyIGludGVyYWN0aXZlIGZpY3Rpb24uXG5XZWJzaXRlOiBodHRwOi8vaW5mb3JtNy5jb21cbkNhdGVnb3J5OiBnYW1pbmdcbiovXG5cbmZ1bmN0aW9uIGluZm9ybTcoaGxqcykge1xuICBjb25zdCBTVEFSVF9CUkFDS0VUID0gJ1xcXFxbJztcbiAgY29uc3QgRU5EX0JSQUNLRVQgPSAnXFxcXF0nO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdJbmZvcm0gNycsXG4gICAgYWxpYXNlczogWyAnaTcnIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgLy8gU29tZSBrZXl3b3JkcyBtb3JlIG9yIGxlc3MgdW5pcXVlIHRvIEk3LCBmb3IgcmVsZXZhbmNlLlxuICAgICAga2V5d29yZDpcbiAgICAgICAgLy8ga2luZDpcbiAgICAgICAgJ3RoaW5nIHJvb20gcGVyc29uIG1hbiB3b21hbiBhbmltYWwgY29udGFpbmVyICdcbiAgICAgICAgKyAnc3VwcG9ydGVyIGJhY2tkcm9wIGRvb3IgJ1xuICAgICAgICAvLyBjaGFyYWN0ZXJpc3RpYzpcbiAgICAgICAgKyAnc2NlbmVyeSBvcGVuIGNsb3NlZCBsb2NrZWQgaW5zaWRlIGdlbmRlciAnXG4gICAgICAgIC8vIHZlcmI6XG4gICAgICAgICsgJ2lzIGFyZSBzYXkgdW5kZXJzdGFuZCAnXG4gICAgICAgIC8vIG1pc2Mga2V5d29yZDpcbiAgICAgICAgKyAna2luZCBvZiBydWxlJyB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgICAgICAgICBiZWdpbjogU1RBUlRfQlJBQ0tFVCxcbiAgICAgICAgICAgIGVuZDogRU5EX0JSQUNLRVRcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICBiZWdpbjogL14oVm9sdW1lfEJvb2t8UGFydHxDaGFwdGVyfFNlY3Rpb258VGFibGUpXFxiLyxcbiAgICAgICAgZW5kOiAnJCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFJ1bGUgZGVmaW5pdGlvblxuICAgICAgICAvLyBUaGlzIGlzIGhlcmUgZm9yIHJlbGV2YW5jZS5cbiAgICAgICAgYmVnaW46IC9eKENoZWNrfENhcnJ5IG91dHxSZXBvcnR8SW5zdGVhZCBvZnxUb3xSdWxlfFdoZW58QmVmb3JlfEFmdGVyKVxcYi8sXG4gICAgICAgIGVuZDogJzonLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIFJ1bGUgbmFtZVxuICAgICAgICAgICAgYmVnaW46ICdcXFxcKFRoaXMnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICAgICAgYmVnaW46IFNUQVJUX0JSQUNLRVQsXG4gICAgICAgIGVuZDogRU5EX0JSQUNLRVQsXG4gICAgICAgIGNvbnRhaW5zOiBbICdzZWxmJyBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluZm9ybTc7XG4iLCAiLypcbkxhbmd1YWdlOiBUT01MLCBhbHNvIElOSVxuRGVzY3JpcHRpb246IFRPTUwgYWltcyB0byBiZSBhIG1pbmltYWwgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdCB0aGF0J3MgZWFzeSB0byByZWFkIGR1ZSB0byBvYnZpb3VzIHNlbWFudGljcy5cbkNvbnRyaWJ1dG9yczogR3VpbGxhdW1lIEdvbWV6IDxndWlsbGF1bWUxLmdvbWV6QGdtYWlsLmNvbT5cbkNhdGVnb3J5OiBjb21tb24sIGNvbmZpZ1xuV2Vic2l0ZTogaHR0cHM6Ly9naXRodWIuY29tL3RvbWwtbGFuZy90b21sXG4qL1xuXG5mdW5jdGlvbiBpbmkoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC8oWystXSspP1tcXGRdK19bXFxkX10rLyB9LFxuICAgICAgeyBiZWdpbjogaGxqcy5OVU1CRVJfUkUgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgQ09NTUVOVFMgPSBobGpzLkNPTU1FTlQoKTtcbiAgQ09NTUVOVFMudmFyaWFudHMgPSBbXG4gICAge1xuICAgICAgYmVnaW46IC87LyxcbiAgICAgIGVuZDogLyQvXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogLyMvLFxuICAgICAgZW5kOiAvJC9cbiAgICB9XG4gIF07XG4gIGNvbnN0IFZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRbXFx3XFxkXCJdW1xcd1xcZF9dKi8gfSxcbiAgICAgIHsgYmVnaW46IC9cXCRcXHsoLio/KVxcfS8gfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgTElURVJBTFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgYmVnaW46IC9cXGJvbnxvZmZ8dHJ1ZXxmYWxzZXx5ZXN8bm9cXGIvXG4gIH07XG4gIGNvbnN0IFNUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiBcInN0cmluZ1wiLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIicnJ1wiLFxuICAgICAgICBlbmQ6IFwiJycnXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiJ1wiLFxuICAgICAgICBlbmQ6IFwiJ1wiXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBBUlJBWSA9IHtcbiAgICBiZWdpbjogL1xcWy8sXG4gICAgZW5kOiAvXFxdLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ09NTUVOVFMsXG4gICAgICBMSVRFUkFMUyxcbiAgICAgIFZBUklBQkxFUyxcbiAgICAgIFNUUklOR1MsXG4gICAgICBOVU1CRVJTLFxuICAgICAgJ3NlbGYnXG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBCQVJFX0tFWSA9IC9bQS1aYS16MC05Xy1dKy87XG4gIGNvbnN0IFFVT1RFRF9LRVlfRE9VQkxFX1FVT1RFID0gL1wiKFxcXFxcInxbXlwiXSkqXCIvO1xuICBjb25zdCBRVU9URURfS0VZX1NJTkdMRV9RVU9URSA9IC8nW14nXSonLztcbiAgY29uc3QgQU5ZX0tFWSA9IHJlZ2V4LmVpdGhlcihcbiAgICBCQVJFX0tFWSwgUVVPVEVEX0tFWV9ET1VCTEVfUVVPVEUsIFFVT1RFRF9LRVlfU0lOR0xFX1FVT1RFXG4gICk7XG4gIGNvbnN0IERPVFRFRF9LRVkgPSByZWdleC5jb25jYXQoXG4gICAgQU5ZX0tFWSwgJyhcXFxccypcXFxcLlxcXFxzKicsIEFOWV9LRVksICcpKicsXG4gICAgcmVnZXgubG9va2FoZWFkKC9cXHMqPVxccypbXiNcXHNdLylcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdUT01MLCBhbHNvIElOSScsXG4gICAgYWxpYXNlczogWyAndG9tbCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6IC9cXFMvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBDT01NRU5UUyxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VjdGlvbicsXG4gICAgICAgIGJlZ2luOiAvXFxbKy8sXG4gICAgICAgIGVuZDogL1xcXSsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogRE9UVEVEX0tFWSxcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBDT01NRU5UUyxcbiAgICAgICAgICAgIEFSUkFZLFxuICAgICAgICAgICAgTElURVJBTFMsXG4gICAgICAgICAgICBWQVJJQUJMRVMsXG4gICAgICAgICAgICBTVFJJTkdTLFxuICAgICAgICAgICAgTlVNQkVSU1xuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbmk7XG4iLCAiLypcbkxhbmd1YWdlOiBJUlBGOTBcbkF1dGhvcjogQW50aG9ueSBTY2VtYW1hIDxzY2VtYW1hQGlyc2FtYy51cHMtdGxzZS5mcj5cbkRlc2NyaXB0aW9uOiBJUlBGOTAgaXMgYW4gb3Blbi1zb3VyY2UgRm9ydHJhbiBjb2RlIGdlbmVyYXRvclxuV2Vic2l0ZTogaHR0cDovL2lycGY5MC51cHMtdGxzZS5mclxuQ2F0ZWdvcnk6IHNjaWVudGlmaWNcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBpcnBmOTAoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJ1xuICB9O1xuXG4gIC8vIHJlZ2V4IGluIGJvdGggZm9ydHJhbiBhbmQgaXJwZjkwIHNob3VsZCBtYXRjaFxuICBjb25zdCBPUFRJT05BTF9OVU1CRVJfU1VGRklYID0gLyhfW2Etel9cXGRdKyk/LztcbiAgY29uc3QgT1BUSU9OQUxfTlVNQkVSX0VYUCA9IC8oW2RlXVsrLV0/XFxkKyk/LztcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFxiXFxkKy8sIC9cXC4oXFxkKikvLCBPUFRJT05BTF9OVU1CRVJfRVhQLCBPUFRJT05BTF9OVU1CRVJfU1VGRklYKSB9LFxuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KC9cXGJcXGQrLywgT1BUSU9OQUxfTlVNQkVSX0VYUCwgT1BUSU9OQUxfTlVNQkVSX1NVRkZJWCkgfSxcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvXFwuXFxkKy8sIE9QVElPTkFMX05VTUJFUl9FWFAsIE9QVElPTkFMX05VTUJFUl9TVUZGSVgpIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZfS0VZV09SRFMgPSB7XG4gICAgbGl0ZXJhbDogJy5GYWxzZS4gLlRydWUuJyxcbiAgICBrZXl3b3JkOiAna2luZCBkbyB3aGlsZSBwcml2YXRlIGNhbGwgaW50cmluc2ljIHdoZXJlIGVsc2V3aGVyZSAnXG4gICAgICArICd0eXBlIGVuZHR5cGUgZW5kbW9kdWxlIGVuZHNlbGVjdCBlbmRpbnRlcmZhY2UgZW5kIGVuZGRvIGVuZGlmIGlmIGZvcmFsbCBlbmRmb3JhbGwgb25seSBjb250YWlucyBkZWZhdWx0IHJldHVybiBzdG9wIHRoZW4gJ1xuICAgICAgKyAncHVibGljIHN1YnJvdXRpbmV8MTAgZnVuY3Rpb24gcHJvZ3JhbSAuYW5kLiAub3IuIC5ub3QuIC5sZS4gLmVxLiAuZ2UuIC5ndC4gLmx0LiAnXG4gICAgICArICdnb3RvIHNhdmUgZWxzZSB1c2UgbW9kdWxlIHNlbGVjdCBjYXNlICdcbiAgICAgICsgJ2FjY2VzcyBibGFuayBkaXJlY3QgZXhpc3QgZmlsZSBmbXQgZm9ybSBmb3JtYXR0ZWQgaW9zdGF0IG5hbWUgbmFtZWQgbmV4dHJlYyBudW1iZXIgb3BlbmVkIHJlYyByZWNsIHNlcXVlbnRpYWwgc3RhdHVzIHVuZm9ybWF0dGVkIHVuaXQgJ1xuICAgICAgKyAnY29udGludWUgZm9ybWF0IHBhdXNlIGN5Y2xlIGV4aXQgJ1xuICAgICAgKyAnY19udWxsX2NoYXIgY19hbGVydCBjX2JhY2tzcGFjZSBjX2Zvcm1fZmVlZCBmbHVzaCB3YWl0IGRlY2ltYWwgcm91bmQgaW9tc2cgJ1xuICAgICAgKyAnc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBhYnN0cmFjdCBleHRlbmRzIGltcG9ydCAnXG4gICAgICArICdub25faW50cmluc2ljIHZhbHVlIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvciBjbGFzcyBhc3NvY2lhdGUgYmluZCBlbnVtICdcbiAgICAgICsgJ2NfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90ICdcbiAgICAgICsgJ2NfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSAnXG4gICAgICArICdjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0ciAnXG4gICAgICArICdjX25ld19saW5lIGNfY2FycmlhZ2VfcmV0dXJuIGNfaG9yaXpvbnRhbF90YWIgY192ZXJ0aWNhbF90YWIgaXNvX2NfYmluZGluZyBjX2xvYyBjX2Z1bmxvYyBjX2Fzc29jaWF0ZWQgIGNfZl9wb2ludGVyICdcbiAgICAgICsgJ2NfcHRyIGNfZnVucHRyIGlzb19mb3J0cmFuX2VudiBjaGFyYWN0ZXJfc3RvcmFnZV9zaXplIGVycm9yX3VuaXQgZmlsZV9zdG9yYWdlX3NpemUgaW5wdXRfdW5pdCBpb3N0YXRfZW5kIGlvc3RhdF9lb3IgJ1xuICAgICAgKyAnbnVtZXJpY19zdG9yYWdlX3NpemUgb3V0cHV0X3VuaXQgY19mX3Byb2Nwb2ludGVyIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgJ1xuICAgICAgKyAnaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgbmV3dW5pdCBjb250aWd1b3VzIHJlY3Vyc2l2ZSAnXG4gICAgICArICdwYWQgcG9zaXRpb24gYWN0aW9uIGRlbGltIHJlYWR3cml0ZSBlb3IgYWR2YW5jZSBubWwgaW50ZXJmYWNlIHByb2NlZHVyZSBuYW1lbGlzdCBpbmNsdWRlIHNlcXVlbmNlIGVsZW1lbnRhbCBwdXJlICdcbiAgICAgICsgJ2ludGVnZXIgcmVhbCBjaGFyYWN0ZXIgY29tcGxleCBsb2dpY2FsIGRpbWVuc2lvbiBhbGxvY2F0YWJsZXwxMCBwYXJhbWV0ZXIgJ1xuICAgICAgKyAnZXh0ZXJuYWwgaW1wbGljaXR8MTAgbm9uZSBkb3VibGUgcHJlY2lzaW9uIGFzc2lnbiBpbnRlbnQgb3B0aW9uYWwgcG9pbnRlciAnXG4gICAgICArICd0YXJnZXQgaW4gb3V0IGNvbW1vbiBlcXVpdmFsZW5jZSBkYXRhICdcbiAgICAgIC8vIElSUEY5MCBzcGVjaWFsIGtleXdvcmRzXG4gICAgICArICdiZWdpbl9wcm92aWRlciAmYmVnaW5fcHJvdmlkZXIgZW5kX3Byb3ZpZGVyIGJlZ2luX3NoZWxsIGVuZF9zaGVsbCBiZWdpbl90ZW1wbGF0ZSBlbmRfdGVtcGxhdGUgc3Vic3QgYXNzZXJ0IHRvdWNoICdcbiAgICAgICsgJ3NvZnRfdG91Y2ggcHJvdmlkZSBub19kZXAgZnJlZSBpcnBfaWYgaXJwX2Vsc2UgaXJwX2VuZGlmIGlycF93cml0ZSBpcnBfcmVhZCcsXG4gICAgYnVpbHRfaW46ICdhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50ICdcbiAgICAgICsgJ2Rsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wgJ1xuICAgICAgKyAnYWxnYW1hIGNkYWJzIGNkY29zIGNkZXhwIGNkbG9nIGNkc2luIGNkc3FydCBjcWFicyBjcWNvcyBjcWV4cCBjcWxvZyBjcXNpbiBjcXNxcnQgZGNtcGx4IGRjb25qZyBkZXJmIGRlcmZjIGRmbG9hdCBkZ2FtbWEgZGltYWcgZGxnYW1hICdcbiAgICAgICsgJ2lxaW50IHFhYnMgcWFjb3MgcWFzaW4gcWF0YW4gcWF0YW4yIHFjbXBseCBxY29uamcgcWNvcyBxY29zaCBxZGltIHFlcmYgcWVyZmMgcWV4cCBxZ2FtbWEgcWltYWcgcWxnYW1hIHFsb2cgcWxvZzEwIHFtYXgxIHFtaW4xIHFtb2QgJ1xuICAgICAgKyAncW5pbnQgcXNpZ24gcXNpbiBxc2luaCBxc3FydCBxdGFuIHF0YW5oIGFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgJ1xuICAgICAgKyAnbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaCBwcmludCB3cml0ZSBkaW0gbGdlIGxndCBsbGUgbGx0IG1vZCBudWxsaWZ5IGFsbG9jYXRlIGRlYWxsb2NhdGUgJ1xuICAgICAgKyAnYWRqdXN0bCBhZGp1c3RyIGFsbCBhbGxvY2F0ZWQgYW55IGFzc29jaWF0ZWQgYml0X3NpemUgYnRlc3QgY2VpbGluZyBjb3VudCBjc2hpZnQgZGF0ZV9hbmRfdGltZSBkaWdpdHMgZG90X3Byb2R1Y3QgJ1xuICAgICAgKyAnZW9zaGlmdCBlcHNpbG9uIGV4cG9uZW50IGZsb29yIGZyYWN0aW9uIGh1Z2UgaWFuZCBpYmNsciBpYml0cyBpYnNldCBpZW9yIGlvciBpc2hmdCBpc2hmdGMgbGJvdW5kIGxlbl90cmltIG1hdG11bCAnXG4gICAgICArICdtYXhleHBvbmVudCBtYXhsb2MgbWF4dmFsIG1lcmdlIG1pbmV4cG9uZW50IG1pbmxvYyBtaW52YWwgbW9kdWxvIG12Yml0cyBuZWFyZXN0IHBhY2sgcHJlc2VudCBwcm9kdWN0ICdcbiAgICAgICsgJ3JhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nIHNjYWxlIHNjYW4gc2VsZWN0ZWRfaW50X2tpbmQgc2VsZWN0ZWRfcmVhbF9raW5kICdcbiAgICAgICsgJ3NldF9leHBvbmVudCBzaGFwZSBzaXplIHNwYWNpbmcgc3ByZWFkIHN1bSBzeXN0ZW1fY2xvY2sgdGlueSB0cmFuc3Bvc2UgdHJpbSB1Ym91bmQgdW5wYWNrIHZlcmlmeSBhY2hhciBpYWNoYXIgdHJhbnNmZXIgJ1xuICAgICAgKyAnZGJsZSBlbnRyeSBkcHJvZCBjcHVfdGltZSBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kICdcbiAgICAgICsgJ2llZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUgJ1xuICAgICAgKyAnaXNfaW9zdGF0X2VvciBtb3ZlX2FsbG9jIG5ld19saW5lIHNlbGVjdGVkX2NoYXJfa2luZCBzYW1lX3R5cGVfYXMgZXh0ZW5kc190eXBlX29mICdcbiAgICAgICsgJ2Fjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMiAnXG4gICAgICArICdhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzICdcbiAgICAgICsgJ2JnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciAnXG4gICAgICArICdudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UgJ1xuICAgICAgLy8gSVJQRjkwIHNwZWNpYWwgYnVpbHRfaW5zXG4gICAgICArICdJUlBfQUxJR04gaXJwX2hlcmUnXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0lSUEY5MCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogRl9LRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnc3Vicm91dGluZSBmdW5jdGlvbiBwcm9ncmFtJyxcbiAgICAgICAgaWxsZWdhbDogJ1skez1cXFxcbl0nLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIFBBUkFNU1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAgIGhsanMuQ09NTUVOVCgnYmVnaW5fZG9jJywgJ2VuZF9kb2MnLCB7IHJlbGV2YW5jZTogMTAgfSksXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXJwZjkwO1xuIiwgIi8qXG5MYW5ndWFnZTogSVNCTFxuQXV0aG9yOiBEbWl0cml5IFRhcmFzb3YgPGRpbWF0YXJAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IGJ1aWx0LWluIGxhbmd1YWdlIERJUkVDVFVNXG5DYXRlZ29yeTogZW50ZXJwcmlzZVxuKi9cblxuZnVuY3Rpb24gaXNibChobGpzKSB7XG4gIC8vIFx1MDQxRVx1MDQzRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0M0VcdTA0MzJcbiAgY29uc3QgVU5ERVJTQ09SRV9JREVOVF9SRSA9IFwiW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXyFdW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxXzAtOV0qXCI7XG5cbiAgLy8gXHUwNDFFXHUwNDNGXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNCXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFx1MDQzOFx1MDQzQ1x1MDQzNVx1MDQzRCBcdTA0NDRcdTA0NDNcdTA0M0RcdTA0M0FcdTA0NDZcdTA0MzhcdTA0MzlcbiAgY29uc3QgRlVOQ1RJT05fTkFNRV9JREVOVF9SRSA9IFwiW0EtWmEtelx1MDQxMC1cdTA0MkZcdTA0MzAtXHUwNDRGXHUwNDUxXHUwNDAxX11bQS1aYS16XHUwNDEwLVx1MDQyRlx1MDQzMC1cdTA0NEZcdTA0NTFcdTA0MDFfMC05XSpcIjtcblxuICAvLyBrZXl3b3JkIDogXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDMyXHUwNDRCXHUwNDM1IFx1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzMFxuICBjb25zdCBLRVlXT1JEID1cbiAgICBcImFuZCBcdTA0MzggZWxzZSBcdTA0MzhcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzUgZW5kZXhjZXB0IGVuZGZpbmFsbHkgZW5kZm9yZWFjaCBcdTA0M0FcdTA0M0VcdTA0M0RcdTA0MzVcdTA0NDZcdTA0MzJcdTA0NDFcdTA0MzUgZW5kaWYgXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDM1XHUwNDQ2XHUwNDM1XHUwNDQxXHUwNDNCXHUwNDM4IGVuZHdoaWxlIFx1MDQzQVx1MDQzRVx1MDQzRFx1MDQzNVx1MDQ0Nlx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMCBcIlxuICAgICsgXCJleGNlcHQgZXhpdGZvciBmaW5hbGx5IGZvcmVhY2ggXHUwNDMyXHUwNDQxXHUwNDM1IGlmIFx1MDQzNVx1MDQ0MVx1MDQzQlx1MDQzOCBpbiBcdTA0MzIgbm90IFx1MDQzRFx1MDQzNSBvciBcdTA0MzhcdTA0M0JcdTA0MzggdHJ5IHdoaWxlIFx1MDQzRlx1MDQzRVx1MDQzQVx1MDQzMCBcIjtcblxuICAvLyBTWVNSRVMgQ29uc3RhbnRzXG4gIGNvbnN0IHN5c3Jlc19jb25zdGFudHMgPVxuICAgIFwiU1lTUkVTX0NPTlNUX0FDQ0VTX1JJR0hUX1RZUEVfRURJVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNfUklHSFRfVFlQRV9GVUxMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU19SSUdIVF9UWVBFX1ZJRVcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19NT0RFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfTk9fQUNDRVNTX1ZJRVcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19OT19BQ0NFU1NfVklFV19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0FERF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19BRERfUkVRVUlTSVRFX1lFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0NIQU5HRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19DSEFOR0VfUkVRVUlTSVRFX1lFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0RFTEVURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19ERUxFVEVfUkVRVUlTSVRFX1lFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX0VYRUNVVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfRVhFQ1VURV9SRVFVSVNJVEVfWUVTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfTk9fQUNDRVNTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX05PX0FDQ0VTU19SRVFVSVNJVEVfWUVTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfUkFUSUZZX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfUklHSFRTX1JBVElGWV9SRVFVSVNJVEVfWUVTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfVklFVyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDQ0VTU19SSUdIVFNfVklFV19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1JJR0hUU19WSUVXX1JFUVVJU0lURV9ZRVNfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfQ0hBTkdFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9DSEFOR0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRVhJU1RTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9FWElTVFNfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRlVMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNDRVNTX1RZUEVfRlVMTF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9WSUVXIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ0NFU1NfVFlQRV9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0FCT1JUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9BQ0NFUFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0FDQ0VTU19SSUdIVFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0FERF9BVFRBQ0hNRU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DSEFOR0VfQ0FSRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ0hBTkdFX0tJTkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0NIQU5HRV9TVE9SQUdFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DT05USU5VRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ09QWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfQ1JFQVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9DUkVBVEVfVkVSU0lPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfREVMRVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9ERUxFVEVfQVRUQUNITUVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfREVMRVRFX1ZFUlNJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0RJU0FCTEVfREVMRUdBVEVfQUNDRVNTX1JJR0hUUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfRU5BQkxFX0RFTEVHQVRFX0FDQ0VTU19SSUdIVFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0VOQ1JZUFRJT05fQllfQ0VSVElGSUNBVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0VOQ1JZUFRJT05fQllfQ0VSVElGSUNBVEVfQU5EX1BBU1NXT1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FTkNSWVBUSU9OX0JZX1BBU1NXT1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FWFBPUlRfV0lUSF9MT0NLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9FWFBPUlRfV0lUSE9VVF9MT0NLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9JTVBPUlRfV0lUSF9VTkxPQ0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX0lNUE9SVF9XSVRIT1VUX1VOTE9DSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTElGRV9DWUNMRV9TVEFHRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTE9DSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTE9DS19GT1JfU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9MT0NLX01PRElGWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTUFSS19BU19SRUFERUQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01BUktfQVNfVU5SRUFERUQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01PRElGWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfTU9ESUZZX0NBUkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX01PVkVfVE9fQVJDSElWRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfT0ZGX0VOQ1JZUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1BBU1NXT1JEX0NIQU5HRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfUEVSRk9STSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfUkVDT1ZFUl9GUk9NX0xPQ0FMX0NPUFkgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1JFU1RBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1JFU1RPUkVfRlJPTV9BUkNISVZFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9SRVZJU0lPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfU0VORF9CWV9NQUlMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9TSUdOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9TVEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVU5MT0NLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9VTkxPQ0tfRlJPTV9TRVJWRVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1ZFUlNJT05fU1RBVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FDVElPTl9UWVBFX1ZFUlNJT05fVklTSUJJTElUWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVklFVyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfVklFV19TSEFET1dfQ09QWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUNUSU9OX1RZUEVfV09SS0ZMT1dfREVTQ1JJUFRJT05fTU9ESUZZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJT05fVFlQRV9XUklURV9ISVNUT1JZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BQ1RJVkVfVkVSU0lPTl9TVEFURV9QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRERfUkVGRVJFTkNFX01PREVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURESVRJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FERElUSU9OQUxfUEFSQU1TX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRElUSU9OQUxfSk9CX0VORF9EQVRFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRElUSU9OQUxfSk9CX1JFQURfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FESVRJT05BTF9KT0JfU1RBUlRfREFURV9SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURJVElPTkFMX0pPQl9TVEFURV9SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9BRERJTkdfVVNFUl9UT19HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQURESU5HX1VTRVJfVE9fR1JPVVBfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fQ09NUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fQ09NUF9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9DUkVBVElPTl9HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fR1JPVVBfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fVVNFUl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfQ1JFQVRJT05fVVNFUl9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9EQVRBQkFTRV9VU0VSX0NSRUFUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RBVEFCQVNFX1VTRVJfQ1JFQVRJT05fQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RBVEFCQVNFX1VTRVJfREVMRVRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREFUQUJBU0VfVVNFUl9ERUxFVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fQ09NUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fQ09NUF9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9ERUxFVElPTl9HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fR1JPVVBfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fVVNFUl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfREVMRVRJT05fVVNFUl9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9ERUxFVElPTl9VU0VSX0ZST01fR1JPVVBfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0RFTEVUSU9OX1VTRVJfRlJPTV9HUk9VUF9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9HUkFOVElOR19GSUxURVJFUl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfRklMVEVSRVJfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfRklMVEVSRVJfUkVTVFJJQ1RJT05fQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX0ZJTFRFUkVSX1JFU1RSSUNUSU9OX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX1BSSVZJTEVHRV9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfUFJJVklMRUdFX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0dSQU5USU5HX1JJR0hUU19BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfR1JBTlRJTkdfUklHSFRTX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX01BSU5fU0VSVkVSX0NIQU5HRURfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX01BSU5fU0VSVkVSX0NIQU5HRURfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfSVNfUFVCTElDX0NIQU5HRURfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX0lTX1BVQkxJQ19DSEFOR0VEX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1JFTU9WSU5HX0ZJTFRFUkVSX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19GSUxURVJFUl9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19GSUxURVJFUl9SRVNUUklDVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfRklMVEVSRVJfUkVTVFJJQ1RJT05fQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfUFJJVklMRUdFX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19QUklWSUxFR0VfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfUkVNT1ZJTkdfUklHSFRTX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9SRU1PVklOR19SSUdIVFNfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfU0VSVkVSX0xPR0lOX0NSRUFUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1NFUlZFUl9MT0dJTl9DUkVBVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfU0VSVkVSX0xPR0lOX0RFTEVUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1NFUlZFUl9MT0dJTl9ERUxFVElPTl9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfQ0FURUdPUllfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NBVEVHT1JZX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NPTVBfVElUTEVfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0NPTVBfVElUTEVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfRlVMTF9OQU1FX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19GVUxMX05BTUVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfR1JPVVBfQUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX0dST1VQX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1BBUkVOVF9HUk9VUF9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FETUlOSVNUUkFUSU9OX0hJU1RPUllfVVBEQVRJTkdfUEFSRU5UX0dST1VQX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1VTRVJfQVVUSF9UWVBFX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0FVVEhfVFlQRV9BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0xPR0lOX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX0xPR0lOX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BRE1JTklTVFJBVElPTl9ISVNUT1JZX1VQREFUSU5HX1VTRVJfU1RBVFVTX0FDVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VUERBVElOR19VU0VSX1NUQVRVU19BQ1RJT05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VU0VSX1BBU1NXT1JEX0NIQU5HRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQURNSU5JU1RSQVRJT05fSElTVE9SWV9VU0VSX1BBU1NXT1JEX0NIQU5HRV9BQ1RJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FMTF9BQ0NFUFRfQ09ORElUSU9OX1JVUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUxMX1VTRVJTX0dST1VQIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BTExfVVNFUlNfR1JPVVBfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQUxMX1VTRVJTX1NFUlZFUl9HUk9VUF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BTExPV0VEX0FDQ0VTU19UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FMTE9XRURfQUNDRVNTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVBQX1ZJRVdFUl9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BUFBST1ZJTkdfU0lHTkFUVVJFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FQUFJPVklOR19TSUdOQVRVUkVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FTU0lTVEFOVF9TVUJTVElUVUVfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVNTSVNUQU5UX1NVQlNUSVRVRV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FUVEFDSF9UWVBFX0NPTVBPTkVOVF9UT0tFTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfRE9DIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9FRE9DIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9GT0xERVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FUVEFDSF9UWVBFX0pPQiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVRUQUNIX1RZUEVfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVFRBQ0hfVFlQRV9UQVNLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIX0VOQ09ERURfUEFTU1dPUkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVEhfRU5DT0RFRF9QQVNTV09SRF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIX05PVkVMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUSF9QQVNTV09SRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUSF9QQVNTV09SRF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIX1dJTkRPV1MgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVEhFTlRJQ0FUSU5HX1NJR05BVFVSRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRIRU5USUNBVElOR19TSUdOQVRVUkVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9fRU5VTV9NRVRIT0RfRkxBRyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT19OVU1FUkFUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9fU1RST05HX0VOVU1fTUVUSE9EX0ZMQUcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1RFWFRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX0FMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNBR0VfQUxMX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX1NJR04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0FVVE9URVhUX1VTQUdFX1NJR05fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNBR0VfV09SSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNBR0VfV09SS19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9BVVRPVEVYVF9VU0VfQU5ZV0hFUkVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNFX09OX1NJR05JTkdfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQVVUT1RFWFRfVVNFX09OX1dPUktfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQkVHSU5fREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQkxBQ0tfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9CTFVFX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQlROX1BBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBTENVTEFURURfUk9MRV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBTExfVFlQRV9WQVJJQUJMRV9CVVRUT05fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBTExfVFlQRV9WQVJJQUJMRV9QUk9HUkFNX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DQU5DRUxfTUVTU0FHRV9GVU5DVElPTl9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NBUkRfUEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ0FSRF9SRUZFUkVOQ0VfTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DRVJUSUZJQ0FURV9UWVBFX1JFUVVJU0lURV9FTkNSWVBUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DRVJUSUZJQ0FURV9UWVBFX1JFUVVJU0lURV9TSUdOX0FORF9FTkNSWVBUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DRVJUSUZJQ0FURV9UWVBFX1JFUVVJU0lURV9TSUdOX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DSEVDS19QQVJBTV9WQUxVRV9EQVRFX1BBUkFNX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NIRUNLX1BBUkFNX1ZBTFVFX0ZMT0FUX1BBUkFNX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NIRUNLX1BBUkFNX1ZBTFVFX0lOVEVHRVJfUEFSQU1fVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ0hFQ0tfUEFSQU1fVkFMVUVfUElDS19QQVJBTV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DSEVDS19QQVJBTV9WQUxVRV9SRUVGUkVOQ0VfUEFSQU1fVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ0xPU0VEX1JFQ09SRF9GTEFHX1ZBTFVFX0ZFTUlOSU5FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DTE9TRURfUkVDT1JEX0ZMQUdfVkFMVUVfTUFTQ1VMSU5FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0FETUlOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0RFVkVMT1BFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9ET0NTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX0VET0NfQ0FSRFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfRVhURVJOQUxfRVhFQ1VUQUJMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9PVEhFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9SRUZFUkVOQ0UgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfQ09NUE9ORU5UX1RZUEVfUkVQT1JUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX0NPTVBPTkVOVF9UWVBFX1NDUklQVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9DT01QT05FTlRfVFlQRV9VUkwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX0FDQ0VTUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfQ09NUE9ORU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT0RFX1JFUVVJU0lURV9ERVNDUklQVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09ERV9SRVFVSVNJVEVfRVhDTFVERV9DT01QT05FTlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPREVfUkVRVUlTSVRFX1JFQ09SRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NTUVOVF9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NTU9OX1NFVFRJTkdTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QX0NPREVfR1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfR1JPVVBfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfQURNSU5fQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfREVWRUxPUEVSX0NPTVBPTkVOVFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0RPQ1MgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0VET0NfQ0FSRFMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVF9UWVBFX0VET0NTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9FWFRFUk5BTF9FWEVDVVRBQkxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9PVEhFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09NUE9ORU5UX1RZUEVfUkVGRVJFTkNFX1RZUEVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9SRUZFUkVOQ0VTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9SRVBPUlRTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9TQ1JJUFRTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT01QT05FTlRfVFlQRV9VUkwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTVBPTkVOVFNfUkVNT1RFX1NFUlZFUlNfVklFV19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT05ESVRJT05fQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTlNUX0ZJUk1fU1RBVFVTX0NPTU1PTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09OU1RfRklSTV9TVEFUVVNfSU5ESVZJRFVBTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09OU1RfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0NPTlNUX1BPU0lUSVZFX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT05TVF9TRVJWRVJfU1RBVFVTX0RPTlRfUkVQTElDQVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9DT05TVF9TRVJWRVJfU1RBVFVTX1JFUExJQ0FURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfQ09OVEVOVFNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9CT09MRUFOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRBX1RZUEVfREFURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFUQV9UWVBFX0ZMT0FUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRBX1RZUEVfSU5URUdFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFUQV9UWVBFX1BJQ0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9SRUZFUkVOQ0UgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9TVFJJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEFfVFlQRV9URVhUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRBX1RZUEVfVkFSSUFOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFURV9DTE9TRV9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFURV9GT1JNQVRfREFURV9PTkxZX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfT1BFTl9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREFURV9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfUkVRVUlTSVRFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RBVEVfVFlQRV9DSEFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9EQVRFVElNRV9GT1JNQVRfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFQV9BQ0NFU1NfUklHSFRTX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ERVNDUklQVElPTl9MT0NBTElaRV9JRF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVTQ1JJUFRJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVDFfUEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVUMl9QQVJUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ERVQzX1BBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVDRfUEFSVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVUNV9QQVJUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ERVQ2X1BBUlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVEFJTF9EQVRBU0VUX0tFWV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfREVUQUlMX1BJQ0tfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RFVEFJTF9SRVFfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9fTk9UX1VTRV9BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ET19OT1RfVVNFX0FDQ0VTU19UWVBFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0RPX05PVF9VU0VfT05fVklFV19BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ET19OT1RfVVNFX09OX1ZJRVdfQUNDRVNTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9DVU1FTlRfU1RPUkFHRVNfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9DVU1FTlRfVEVNUExBVEVTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRE9VQkxFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JfQ0xPU0VfRklMRV9PQlNFUlZfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JfQ0xPU0VfUFJPQ0VTU19PQlNFUlZfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19BUFBMSUNBVElPTl9OQU1FX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JTX0NSRUFURV9TRVZFUkFMX1BST0NFU1NFU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19FWFRFTlNJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VESVRPUlNfT0JTRVJWRVJfQllfUFJPQ0VTU19UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JTX1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRElUT1JTX1JFUExBQ0VfU1BFQ19DSEFSU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19VU0VfUExVR0lOU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURJVE9SU19WSUVXX0RPQ1VNRU5UX09QRU5FRF9UT19FRElUX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfQ0FSRF9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX0NBUkRfVFlQRVNfTElOS19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19DRVJUSUZJQ0FURV9BTkRfUEFTU1dPUkRfRU5DT0RFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfQ0VSVElGSUNBVEVfRU5DT0RFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19LSU5EX1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX0tJTkRTX0JZX1RFTVBMQVRFX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX01BTkFHRV9BQ0NFU1NfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19OT05FX0VOQ09ERV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX05VTUJFUl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19QQVNTV09SRF9FTkNPREVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19SRUFET05MWV9BQ0NFU1NfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TSEVMTF9MSUZFX1RZUEVfVklFV19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TSVpFX1JFU1RSSUNUSU9OX1BSSU9SSVRZX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfQ0hFQ0tfQUNDRVNTX1JJR0hUU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX0NPTVBVVEVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfU1RPUkFHRV9EQVRBQkFTRV9OQU1FX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfRURJVF9JTl9TVE9SQUdFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1NUT1JBR0VfTE9DQUxfUEFUSF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19TVE9SQUdFX1NIQVJFRF9TT1VSQ0VfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19URU1QTEFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19UWVBFU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRURPQ19WRVJTSU9OX0FDVElWRV9TVEFHRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1ZFUlNJT05fREVTSUdOX1NUQUdFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NfVkVSU0lPTl9PQlNPTEVURV9TVEFHRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FRE9DX1dSSVRFX0FDQ0VTX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VET0NVTUVOVF9DQVJEX1JFUVVJU0lURVNfUkVGRVJFTkNFX0NPREVfU0VMRUNURURfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FTkNPREVfQ0VSVElGSUNBVEVfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FTkRfREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRU5VTUVSQVRJT05fVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhFQ1VURV9BQ0NFU1NfUklHSFRTX1RZUEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhFQ1VUSVZFX0ZJTEVfU1RPUkFHRV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FWElTVF9DT05TVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhJU1RfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYUE9SVF9MT0NLX1RZUEVfQVNLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FWFBPUlRfTE9DS19UWVBFX1dJVEhfTE9DSyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRVhQT1JUX0xPQ0tfVFlQRV9XSVRIT1VUX0xPQ0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYUE9SVF9WRVJTSU9OX1RZUEVfQVNLIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9FWFBPUlRfVkVSU0lPTl9UWVBFX0xBU1QgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYUE9SVF9WRVJTSU9OX1RZUEVfTEFTVF9BQ1RJVkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0VYVEVOU0lPTl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRklMVEVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZJTFRFUl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRklMVEVSX1RZUEVfQ09NTU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZJTFRFUl9UWVBFX0NPTU1PTl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GSUxURVJfVFlQRV9VU0VSX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZJTFRFUl9UWVBFX1VTRVJfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRklMVEVSX1ZBTFVFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GTE9BVF9OVU1CRVJfRk9STUFUX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZMT0FUX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfQVVUSE9SX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfS0lORF9BTllfT0JKRUNUUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX0tJTkRfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX0tJTkRfRURPQ1MgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9LSU5EX0pPQlMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9LSU5EX1RBU0tTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9DT01NT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX0NPTVBPTkVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfRkFWT1JJVEVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9JTkJPWCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfT1VUQk9YIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9RVUlDS19MQVVOQ0ggXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZPTERFUl9UWVBFX1NFQVJDSCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRk9MREVSX1RZUEVfU0hPUlRDVVRTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GT0xERVJfVFlQRV9VU0VSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9GUk9NX0RJQ1RJT05BUllfRU5VTV9NRVRIT0RfRkxBRyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRlVMTF9TVUJTVElUVVRFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTExfU1VCU1RJVFVURV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX0NBTkNFTF9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX0NBVEVHT1JZX1NZU1RFTSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRlVOQ1RJT05fQ0FURUdPUllfVVNFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfRlVOQ1RJT05fRkFJTFVSRV9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0ZVTkNUSU9OX1NBVkVfUkVTVUxUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HRU5FUkFURURfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HUkVFTl9MSUZFX0NZQ0xFX1NUQUdFX0ZPTlRfQ09MT1IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX0FDQ09VTlRfVFlQRV9WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HUk9VUF9DQVRFR09SWV9OT1JNQUxfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfQ0FURUdPUllfTk9STUFMX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX0NBVEVHT1JZX1NFUlZJQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfQ0FURUdPUllfU0VSVklDRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9HUk9VUF9DT01NT05fQ0FURUdPUllfRklFTERfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX0ZVTExfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfUklHSFRTX1RfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX1NFUlZFUl9DT0RFU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBfU0VSVkVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX1NFUlZJQ0VfQ0FURUdPUllfRklFTERfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQX1VTRVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0dST1VQU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfR1JPVVBTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ISURERU5fTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ISUdIX0xWTF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSElTVE9SWV9BQ1RJT05fQ1JFQVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0hJU1RPUllfQUNUSU9OX0RFTEVURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ISVNUT1JZX0FDVElPTl9FRElUX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0hPVVJfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lEU1BTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTUFHRV9NT0RFX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTUFHRV9NT0RFX0dSRVlTQ0FMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU1BR0VfTU9ERV9NT05PQ0hST01FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTVBPUlRBTkNFX0hJR0ggXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lNUE9SVEFOQ0VfTE9XIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTVBPUlRBTkNFX05PUk1BTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5fREVTSUdOX1ZFUlNJT05fU1RBVEVfUElDS19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5DT01JTkdfV09SS19SVUxFX1RZUEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5UX1JFUVVJU0lURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5UX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JTlRFR0VSX05VTUJFUl9GT1JNQVRfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSU5URUdFUl9UWVBFX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX0dFTkVSQVRFRF9SRVFVSVNJVEVfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX1BVQkxJQ19ST0xFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JU19SRU1PVEVfVVNFUl9ORUdBVElWRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSVNfUkVNT1RFX1VTRVJfUE9TSVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX1NUT1JFRF9SRVFVSVNJVEVfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0lTX1NUT1JFRF9SRVFVSVNJVEVfU1RPUkVEX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9JVEFMSUNfTElGRV9DWUNMRV9TVEFHRV9EUkFXX1NUWUxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9KT0JfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0pPQl9LSU5EX0NPTlRST0xfSk9CIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9KT0JfS0lORF9KT0IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0pPQl9LSU5EX05PVElDRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSk9CX1NUQVRFX0FCT1JURUQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0pPQl9TVEFURV9DT01QTEVURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfSk9CX1NUQVRFX1dPUktJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRTX0NSRUFURV9TSEFET1dfQ09QSUVTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19ERUZBVUxUX0VET0NfTElGRV9TVEFHRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19BTExfVEVQTEFURVNfQUxMT1dFRF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19BTExPV19MSUZFX0NZQ0xFX1NUQUdFX0NIQU5HSU5HX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19FRE9DX0FMTE9XX01VTFRJUExFX0FDVElWRV9WRVJTSU9OU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfS0lORFNfRURPQ19TSEFSRV9BQ0NFU19SSUdIVFNfQllfREVGQVVMVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19FRE9DX1RFTVBMQVRFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LSU5EU19FRE9DX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0tJTkRTX1NJR05FUlNfUkVRVUlTSVRFU19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9LT0RfSU5QVVRfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTEFTVF9VUERBVEVfREFURV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElGRV9DWUNMRV9TVEFSVF9TVEFHRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElMQUNfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX0NPTVBPTkVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9ET0NVTUVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9FRE9DIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX0ZPTERFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTElOS19PQkpFQ1RfS0lORF9KT0IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0xJTktfT0JKRUNUX0tJTkRfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9MSU5LX09CSkVDVF9LSU5EX1RBU0sgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0xJTktfUkVGX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX0xJU1RfUkVGRVJFTkNFX01PREVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTE9DQUxJWkFUSU9OX0RJQ1RJT05BUllfTUFJTl9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01BSU5fVklFV19DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NQU5VQUxfRU5VTV9NRVRIT0RfRkxBRyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUFTVEVSX0NPTVBfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUFTVEVSX1RBQkxFX1JFQ19JRF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUFYSU1JWkVEX01PREVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01FU1NBR0VfQVRURU5USU9OX0NBUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01FU1NBR0VfQ09ORklSTUFUSU9OX0NBUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX01FU1NBR0VfRVJST1JfQ0FQVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTUVTU0FHRV9JTkZPUk1BVElPTl9DQVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NSU5JTUlaRURfTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NSU5VVEVfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTU9EVUxFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NT05JVE9SSU5HX0JMT0NLX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9NT05USF9GT1JNQVRfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVfTE9DQUxJWkVfSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVfU0lOR1VMQVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05BTUVBTl9JTlBVVF9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ORUdBVElWRV9QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ORUdBVElWRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk8gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PX1BJQ0tfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PX1NJR05BVFVSRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk9fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PTkVfQUNDRVNTX1JJR0hUU19UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05PTk9QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk9OT1BFUkFUSU5HX1JFQ09SRF9GTEFHX1ZBTFVFX01BU0NVTElORSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTk9STUFMX0FDQ0VTU19SSUdIVFNfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1JNQUxfTElGRV9DWUNMRV9TVEFHRV9EUkFXX1NUWUxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1JNQUxfTU9ERV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RfQUxMT1dFRF9BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RfQUxMT1dFRF9BQ0NFU1NfVFlQRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OT1RJQ0VfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTV9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTV9TVFJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTUVSQVRJT05fQVVUT19OT1RfU1RST05HIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OVU1FUkFUSU9OX0FVVE9fU1RST05HIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OVU1FUkFUSU9OX0ZST01fRElDVE9OQVJZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9OVU1FUkFUSU9OX01BTlVBTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfTlVNRVJJQ19UWVBFX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX05VTVJFUV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfT0JTT0xFVEVfVkVSU0lPTl9TVEFURV9QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9PUEVSQVRJTkdfUkVDT1JEX0ZMQUdfVkFMVUVfRkVNSU5JTkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09QRVJBVElOR19SRUNPUkRfRkxBR19WQUxVRV9NQVNDVUxJTkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09QVElPTkFMX0ZPUk1fQ09NUF9SRVFDT0RFX1BSRUZJWCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfT1JBTkdFX0xJRkVfQ1lDTEVfU1RBR0VfRk9OVF9DT0xPUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfT1JJR0lOQUxSRUZfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09VUkZJUk1fUkVGX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09VUkZJUk1fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX09VUkZJUk1fVkFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9PVVRHT0lOR19XT1JLX1JVTEVfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QSUNLX05FR0FUSVZFX1JFU1VMVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUElDS19QT1NJVElWRV9SRVNVTFQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1BJQ0tfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QSUNLX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QSUNLX1RZUEVfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUExBTl9TVEFUVVNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1BMQVRGT1JNX1ZFUlNJT05fQ09NTUVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUExVR0lOU19TRVRUSU5HU19ERVNDUklQVElPTl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUE9TSVRJVkVfUElDS19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUE9XRVJfVE9fQ1JFQVRFX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QT1dFUl9UT19TSUdOX0FDVElPTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9QUklPUklUWV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUVVBTElGSUVEX1RBU0tfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUVVBTElGSUVEX1RBU0tfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUNTVEFUX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRURfTElGRV9DWUNMRV9TVEFHRV9GT05UX0NPTE9SIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUZfSURfVF9SRUZfVFlQRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVGX1JFUVVJU0lURSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVGX1JFUVVJU0lURV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUZfUkVRVUlTSVRFU19SRUZFUkVOQ0VfQ09ERV9TRUxFQ1RFRF9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9SRUNPUkRfSElTVE9SWV9DUkVBVEVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9SRUNPUkRfSElTVE9SWV9ERUxFVEVfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9SRUNPUkRfSElTVE9SWV9NT0RJRllfQUNUSU9OX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9UWVBFX0NIQVIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRV9UWVBFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRUZFUkVOQ0VTX0FERF9QQVJBTVNfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFRkVSRU5DRVNfRElTUExBWV9SRVFVSVNJVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFTU9URV9TRVJWRVJfU1RBVFVTX1dPUktJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFTU9URV9TRVJWRVJfVFlQRV9NQUlOIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRU1PVEVfU0VSVkVSX1RZUEVfU0VDT05EQVJZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRU1PVEVfVVNFUl9GTEFHX1ZBTFVFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUE9SVF9BUFBfRURJVE9SX0lOVEVSTkFMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVBPUlRfQkFTRV9SRVBPUlRfSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUE9SVF9CQVNFX1JFUE9SVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVQT1JUX1NDUklQVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVQT1JUX1RFTVBMQVRFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVBPUlRfVklFV0VSX0NPREVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUV9BTExPV19DT01QT05FTlRfREVGQVVMVF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRX0FMTE9XX1JFQ09SRF9ERUZBVUxUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfQUxMT1dfU0VSVkVSX0NPTVBPTkVOVF9ERUZBVUxUX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfTU9ERV9BVkFJTEFCTEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRX01PREVfRURJVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfTU9ERV9ISURERU5fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRX01PREVfTk9UX0FWQUlMQUJMRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfTU9ERV9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUV9OVU1CRVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUV9TRUNUSU9OX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFfVFlQRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9CWV9VTklUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVfRk9STUFUX0RBVEVfRlVMTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9EQVRFX1RJTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9GT1JNQVRfTEVGVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9SSUdIVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX0ZPUk1BVF9XSVRIT1VUX1VOSVQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9OVU1CRVJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX0FDVElPTlMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX0JVVFRPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fQlVUVE9OUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fQ0FSRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTAgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTEgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTIgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTYgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTggXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMTkgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFMiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyMyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUyNCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEUzIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFNSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEU2IFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVfU0VDVElPTl9UQUJMRTcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JFUVVJU0lURV9TRUNUSU9OX1RBQkxFOCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUkVRVUlTSVRFX1NFQ1RJT05fVEFCTEU5IFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SRVFVSVNJVEVTX1BTRVVET1JFRkVSRU5DRV9SRVFVSVNJVEVfTlVNQkVSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9SSUdIVF9BTElHTk1FTlRfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUk9MRVNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JPVVRFX1NURVBfQUZURVJfUlVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ST1VURV9TVEVQX0FORF9DT05ESVRJT05fUlVTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ST1VURV9TVEVQX09SX0NPTkRJVElPTl9SVVMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1JPVVRFX1RZUEVfQ09NUExFWCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUk9VVEVfVFlQRV9QQVJBTExFTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfUk9VVEVfVFlQRV9TRVJJQUwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NCREFUQVNFVERFU0NfTkVHQVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NCREFUQVNFVERFU0NfUE9TSVRJVkVfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NCVklFV1NERVNDX1BPU0lUSVZFX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TQ1JJUFRfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQVJDSF9CWV9URVhUX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUFSQ0hFU19DT01QT05FTlRfQ09OVEVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VBUkNIRVNfQ1JJVEVSSUFfQUNUSU9OX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQVJDSEVTX0VET0NfQ09OVEVOVCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VBUkNIRVNfRk9MREVSX0NPTlRFTlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQVJDSEVTX0pPQl9DT05URU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUFSQ0hFU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VBUkNIRVNfVEFTS19DT05URU5UIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUNPTkRfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfQUNUSU9OU19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfQ0FSRF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfREVUQUlMXzFfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0RFVEFJTF8yX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUNUSU9OX1JFUVVJU0lURV9ERVRBSUxfM19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VDVElPTl9SRVFVSVNJVEVfREVUQUlMXzRfVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFQ1RJT05fUkVRVUlTSVRFX0RFVEFJTF81X1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUNUSU9OX1JFUVVJU0lURV9ERVRBSUxfNl9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VMRUNUX1JFRkVSRU5DRV9NT0RFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFTEVDVF9UWVBFX1NFTEVDVEFCTEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NFTEVDVF9UWVBFX1NFTEVDVEFCTEVfT05MWV9DSElMRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VMRUNUX1RZUEVfU0VMRUNUQUJMRV9XSVRIX0NISUxEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRUxFQ1RfVFlQRV9VTlNMRUNUQUJMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VSVkVSX1RZUEVfTUFJTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU0VSVklDRV9VU0VSX0NBVEVHT1JZX0ZJRUxEX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TRVRUSU5HU19VU0VSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TSUdOQVRVUkVfQU5EX0VOQ09ERV9DRVJUSUZJQ0FURV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NJR05BVFVSRV9DRVJUSUZJQ0FURV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NJTkdVTEFSX1RJVExFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TUUxfU0VSVkVSX0FVVEhFTlRJRklDQVRJT05fRkxBR19WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TUUxfU0VSVkVSX0VOQ09ERV9BVVRIRU5USUZJQ0FUSU9OX0ZMQUdfVkFMVUVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBTkRBUlRfUk9VVEVfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQU5EQVJUX1JPVVRFX1JFRkVSRU5DRV9DT01NRU5UX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFOREFSVF9ST1VURVNfR1JPVVBTX1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFURV9SRVFfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVEVfUkVRVUlTSVRFX0FDVElWRV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVEVfUkVRVUlTSVRFX0NMT1NFRF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRJQ19ST0xFX1RZUEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1BMQU5fREVGQVVMVF9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX0FVVE9DTEVBTklORyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX0JMVUVfU1FVQVJFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfQ09NUExFVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9HUkVFTl9TUVVBUkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9PUkFOR0VfU1FVQVJFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfUFVSUExFX1NRVUFSRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RBVFVTX1ZBTFVFX1JFRF9TUVVBUkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUQVRVU19WQUxVRV9TVVNQRU5EIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVEFUVVNfVkFMVUVfWUVMTE9XX1NRVUFSRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1REUk9VVEVfU0hPV19UT19VU0VSU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RPUkFHRV9UWVBFX0ZJTEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUT1JBR0VfVFlQRV9TUUxfU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJfUkVRVUlTSVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJJS0VPVVRfTElGRV9DWUNMRV9TVEFHRV9EUkFXX1NUWUxFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJJTkdfRk9STUFUX0xFRlRfQUxJR05fQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RSSU5HX0ZPUk1BVF9SSUdIVF9BTElHTl9DSEFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9TVFJJTkdfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NUUklOR19SRVFVSVNJVEVfVFlQRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1RSSU5HX1RZUEVfQ0hBUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1VCU1RJVFVURVNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NVQlRBU0tfQkxPQ0tfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NZU1RFTV9TRVRUSU5HX0NVUlJFTlRfVVNFUl9QQVJBTV9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfU1lTVEVNX1NFVFRJTkdfRU1QVFlfVkFMVUVfUEFSQU1fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1NZU1RFTV9WRVJTSU9OX0NPTU1FTlQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfQUNDRVNTX1RZUEVfQUxMIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0FDQ0VTU19UWVBFX0FMTF9NRU1CRVJTIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0FDQ0VTU19UWVBFX01BTlVBTCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19FTkNPREVfVFlQRV9DRVJUSUZJQ0FUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0VOQ09ERV9UWVBFX0NFUlRJRklDQVRJT05fQU5EX1BBU1NXT1JEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX0VOQ09ERV9UWVBFX05PTkUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfRU5DT0RFX1RZUEVfUEFTU1dPUkQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfUk9VVEVfQUxMX0NPTkRJVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19ST1VURV9BTkRfQ09ORElUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1JPVVRFX09SX0NPTkRJVElPTiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9BQk9SVEVEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1NUQVRFX0NPTVBMRVRFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1NUQVRFX0NPTlRJTlVFRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19TVEFURV9DT05UUk9MIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UQVNLX1NUQVRFX0lOSVQgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfU1RBVEVfV09SS0lORyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19USVRMRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEFTS19UWVBFU19HUk9VUFNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RBU0tfVFlQRVNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFTVBMQVRFU19SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVTVF9EQVRFX1JFUVVJU0lURV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9URVNUX0RFVl9EQVRBQkFTRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9URVNUX0RFVl9TWVNURU1fQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVTVF9FRE1TX0RBVEFCQVNFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfRURNU19NQUlOX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfRURNU19NQUlOX0RCX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfRURNU19TRUNPTkRfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVTVF9FRE1TX1NFQ09ORF9EQl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9URVNUX0VETVNfU1lTVEVNX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFU1RfTlVNRVJJQ19SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVEVYVF9SRVFVSVNJVEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFWFRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFWFRfUkVRVUlTSVRFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RFWFRfVFlQRV9DSEFSIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9UWVBFX0NPREVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOREVGSU5FRF9MSUZFX0NZQ0xFX1NUQUdFX0ZPTlRfQ09MT1IgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOSVRTX1NFQ1RJT05fSURfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOSVRTX1NFQ1RJT05fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOT1BFUkFUSU5HX1JFQ09SRF9GTEFHX1ZBTFVFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOU1RPUkVEX0RBVEFfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VOU1RPUkVEX0RBVEFfUkVRVUlTSVRFX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRV9BQ0NFU1NfVFlQRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VfQUNDRVNTX1RZUEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9BQ0NPVU5UX1RZUEVfVkFMVUVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9BRERJVElPTkFMX0lORk9STUFUSU9OX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0FORF9HUk9VUF9JRF9GUk9NX1BTRVVET1JFRkVSRU5DRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9DQVRFR09SWV9OT1JNQUwgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ0VSVElGSUNBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ0VSVElGSUNBVEVfU1RBVEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ0VSVElGSUNBVEVfU1VCSkVDVF9OQU1FX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0NFUlRJRklDQVRFX1RIVU1CUFJJTlRfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfQ09NTU9OX0NBVEVHT1JZIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0NPTU1PTl9DQVRFR09SWV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0ZVTExfTkFNRV9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9HUk9VUF9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX0xPR0lOX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1JFTU9URV9DT05UUk9MTEVSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1JFTU9URV9TWVNURU1fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfUklHSFRTX1RfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU0VSVkVSX05BTUVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU0VSVklDRV9DQVRFR09SWSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TRVJWSUNFX0NBVEVHT1JZX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0FETUlOSVNUUkFUT1JfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfQURNSU5JU1RSQVRPUl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19ERVZFTE9QRVJfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfREVWRUxPUEVSX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0RJU0FCTEVEX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX0RJU0FCTEVEX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX1NZU1RFTV9ERVZFTE9QRVJfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9TVEFUVVNfVVNFUl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1NUQVRVU19VU0VSX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJfU1RBVFVTX1VTRVJfTkFNRV9ERVBSRUNBVEVEIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSX1RZUEVfRklFTERfVkFMVUVfVVNFUiBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUl9UWVBFX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19DT05UUk9MTEVSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19JU19NQUlOX1NFUlZFUl9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUlNfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJTX1JFR0lTVFJBVElPTl9DRVJUSUZJQ0FURVNfQUNUSU9OX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJTX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19TWVNURU1fUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1VTRVJTX1VTRVJfQUNDRVNTX1JJR0hUU19UWVBSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19VU0VSX0FVVEhFTlRJQ0FUSU9OX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9VU0VSU19VU0VSX0NPTVBPTkVOVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUlNfVVNFUl9HUk9VUF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVVNFUlNfVklFV19DRVJUSUZJQ0FURVNfQUNUSU9OX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1ZJRVdfREVGQVVMVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9WSUVXX0RFRkFVTFRfTkFNRSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfVklFV0VSX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XQUlUSU5HX0JMT0NLX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XSVpBUkRfRk9STV9MQUJFTF9URVNUX1NUUklORyAgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1dJWkFSRF9RVUVSWV9QQVJBTV9IRUlHSFRfRVRBTE9OX1NUUklORyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfV0laQVJEX1JFRkVSRU5DRV9DT01NRU5UX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1JVTEVTX0RFU0NSSVBUSU9OX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1RJTUVfQ0FMRU5EQVJfUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1dPUktfV09SS0ZMT1dfSEFSRF9ST1VURV9UWVBFX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1dPUktGTE9XX0hBUkRfUk9VVEVfVFlQRV9WQUxVRV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9XT1JLX1dPUktGTE9XX0hBUkRfUk9VVEVfVFlQRV9WQUxVRV9DT0RFX1JVUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfV09SS19XT1JLRkxPV19TT0ZUX1JPVVRFX1RZUEVfVkFMVUVfQ09ERV9SVVMgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1dPUktGTE9XX1JPVVRFX1RZUFJfSEFSRCBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfV09SS0ZMT1dfUk9VVEVfVFlQUl9TT0ZUIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9YTUxfRU5DT0RJTkcgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1hSRUNfU1RBVF9SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfWFJFQ0lEX0ZJRUxEX05BTUUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1lFUyBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfWUVTX05PXzJfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1lFU19OT19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVNfQ09OU1RfWUVTX05PX1RfUkVGX1RZUEVfUkVRVUlTSVRFX0NPREUgXCJcbiAgICArIFwiU1lTUkVTX0NPTlNUX1lFU19QSUNLX1ZBTFVFIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVF9ZRVNfVkFMVUUgXCI7XG5cbiAgLy8gQmFzZSBjb25zdGFudFxuICBjb25zdCBiYXNlX2NvbnN0YW50cyA9IFwiQ1IgRkFMU0UgbmlsIE5PX1ZBTFVFIE5VTEwgVEFCIFRSVUUgWUVTX1ZBTFVFIFwiO1xuXG4gIC8vIEJhc2UgZ3JvdXAgbmFtZVxuICBjb25zdCBiYXNlX2dyb3VwX25hbWVfY29uc3RhbnRzID1cbiAgICBcIkFETUlOSVNUUkFUT1JTX0dST1VQX05BTUUgQ1VTVE9NSVpFUlNfR1JPVVBfTkFNRSBERVZFTE9QRVJTX0dST1VQX05BTUUgU0VSVklDRV9VU0VSU19HUk9VUF9OQU1FIFwiO1xuXG4gIC8vIERlY2lzaW9uIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3QgZGVjaXNpb25fYmxvY2tfcHJvcGVydGllc19jb25zdGFudHMgPVxuICAgIFwiREVDSVNJT05fQkxPQ0tfRklSU1RfT1BFUkFORF9QUk9QRVJUWSBERUNJU0lPTl9CTE9DS19OQU1FX1BST1BFUlRZIERFQ0lTSU9OX0JMT0NLX09QRVJBVElPTl9QUk9QRVJUWSBcIlxuICAgICsgXCJERUNJU0lPTl9CTE9DS19SRVNVTFRfVFlQRV9QUk9QRVJUWSBERUNJU0lPTl9CTE9DS19TRUNPTkRfT1BFUkFORF9QUk9QRVJUWSBcIjtcblxuICAvLyBGaWxlIGV4dGVuc2lvblxuICBjb25zdCBmaWxlX2V4dGVuc2lvbl9jb25zdGFudHMgPVxuICAgIFwiQU5ZX0ZJTEVfRVhURU5USU9OIENPTVBSRVNTRURfRE9DVU1FTlRfRVhURU5TSU9OIEVYVEVOREVEX0RPQ1VNRU5UX0VYVEVOU0lPTiBcIlxuICAgICsgXCJTSE9SVF9DT01QUkVTU0VEX0RPQ1VNRU5UX0VYVEVOU0lPTiBTSE9SVF9FWFRFTkRFRF9ET0NVTUVOVF9FWFRFTlNJT04gXCI7XG5cbiAgLy8gSm9iIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3Qgam9iX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzID1cbiAgICBcIkpPQl9CTE9DS19BQk9SVF9ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJKT0JfQkxPQ0tfQUZURVJfRklOSVNIX0VWRU5UIFwiXG4gICAgKyBcIkpPQl9CTE9DS19BRlRFUl9RVUVSWV9QQVJBTUVURVJTX0VWRU5UIFwiXG4gICAgKyBcIkpPQl9CTE9DS19BVFRBQ0hNRU5UX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfR1JPVVBfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19UWVBFX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19CRUZPUkVfUVVFUllfUEFSQU1FVEVSU19FVkVOVCBcIlxuICAgICsgXCJKT0JfQkxPQ0tfQkVGT1JFX1NUQVJUX0VWRU5UIFwiXG4gICAgKyBcIkpPQl9CTE9DS19DUkVBVEVEX0pPQlNfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19FWEVDVVRJT05fUkVTVUxUU19QUk9QRVJUWSBcIlxuICAgICsgXCJKT0JfQkxPQ0tfSVNfUEFSQUxMRUxfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX0lTX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19JU19SRUxBVElWRV9ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJKT0JfQkxPQ0tfSk9CX1RFWFRfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX05BTUVfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX05FRURfU0lHTl9PTl9QRVJGT1JNX1BST1BFUlRZIFwiXG4gICAgKyBcIkpPQl9CTE9DS19QRVJGT1JNRVJfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX1JFTEFUSVZFX0FCT1JUX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiSk9CX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgXCI7XG5cbiAgLy8gTGFuZ3VhZ2UgY29kZVxuICBjb25zdCBsYW5ndWFnZV9jb2RlX2NvbnN0YW50cyA9IFwiRU5HTElTSF9MQU5HVUFHRV9DT0RFIFJVU1NJQU5fTEFOR1VBR0VfQ09ERSBcIjtcblxuICAvLyBMYXVuY2hpbmcgZXh0ZXJuYWwgYXBwbGljYXRpb25zXG4gIGNvbnN0IGxhdW5jaGluZ19leHRlcm5hbF9hcHBsaWNhdGlvbnNfY29uc3RhbnRzID1cbiAgICBcInNtSGlkZGVuIHNtTWF4aW1pemVkIHNtTWluaW1pemVkIHNtTm9ybWFsIHdtTm8gd21ZZXMgXCI7XG5cbiAgLy8gTGluayBraW5kXG4gIGNvbnN0IGxpbmtfa2luZF9jb25zdGFudHMgPVxuICAgIFwiQ09NUE9ORU5UX1RPS0VOX0xJTktfS0lORCBcIlxuICAgICsgXCJET0NVTUVOVF9MSU5LX0tJTkQgXCJcbiAgICArIFwiRURPQ1VNRU5UX0xJTktfS0lORCBcIlxuICAgICsgXCJGT0xERVJfTElOS19LSU5EIFwiXG4gICAgKyBcIkpPQl9MSU5LX0tJTkQgXCJcbiAgICArIFwiUkVGRVJFTkNFX0xJTktfS0lORCBcIlxuICAgICsgXCJUQVNLX0xJTktfS0lORCBcIjtcblxuICAvLyBMb2NrIHR5cGVcbiAgY29uc3QgbG9ja190eXBlX2NvbnN0YW50cyA9XG4gICAgXCJDT01QT05FTlRfVE9LRU5fTE9DS19UWVBFIEVET0NVTUVOVF9WRVJTSU9OX0xPQ0tfVFlQRSBcIjtcblxuICAvLyBNb25pdG9yIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3QgbW9uaXRvcl9ibG9ja19wcm9wZXJ0aWVzX2NvbnN0YW50cyA9XG4gICAgXCJNT05JVE9SX0JMT0NLX0FGVEVSX0ZJTklTSF9FVkVOVCBcIlxuICAgICsgXCJNT05JVE9SX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBcIlxuICAgICsgXCJNT05JVE9SX0JMT0NLX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIk1PTklUT1JfQkxPQ0tfSU5URVJWQUxfUFJPUEVSVFkgXCJcbiAgICArIFwiTU9OSVRPUl9CTE9DS19JTlRFUlZBTF9UWVBFX1BST1BFUlRZIFwiXG4gICAgKyBcIk1PTklUT1JfQkxPQ0tfSVNfUkVMQVRJVkVfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiTU9OSVRPUl9CTE9DS19OQU1FX1BST1BFUlRZIFwiXG4gICAgKyBcIk1PTklUT1JfQkxPQ0tfUkVMQVRJVkVfREVBRExJTkVfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJNT05JVE9SX0JMT0NLX1NFQVJDSF9TQ1JJUFRfUFJPUEVSVFkgXCI7XG5cbiAgLy8gTm90aWNlIGJsb2NrIHByb3BlcnRpZXNcbiAgY29uc3Qgbm90aWNlX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzID1cbiAgICBcIk5PVElDRV9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX0FUVEFDSE1FTlRfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX0FUVEFDSE1FTlRTX1JJR0hUU19HUk9VUF9QUk9QRVJUWSBcIlxuICAgICsgXCJOT1RJQ0VfQkxPQ0tfQVRUQUNITUVOVFNfUklHSFRTX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBcIlxuICAgICsgXCJOT1RJQ0VfQkxPQ0tfQ1JFQVRFRF9OT1RJQ0VTX1BST1BFUlRZIFwiXG4gICAgKyBcIk5PVElDRV9CTE9DS19ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJOT1RJQ0VfQkxPQ0tfSVNfUkVMQVRJVkVfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX05BTUVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX05PVElDRV9URVhUX1BST1BFUlRZIFwiXG4gICAgKyBcIk5PVElDRV9CTE9DS19QRVJGT1JNRVJfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCJcbiAgICArIFwiTk9USUNFX0JMT0NLX1NVQkpFQ1RfUFJPUEVSVFkgXCI7XG5cbiAgLy8gT2JqZWN0IGV2ZW50c1xuICBjb25zdCBvYmplY3RfZXZlbnRzX2NvbnN0YW50cyA9XG4gICAgXCJkc2VBZnRlckNhbmNlbCBcIlxuICAgICsgXCJkc2VBZnRlckNsb3NlIFwiXG4gICAgKyBcImRzZUFmdGVyRGVsZXRlIFwiXG4gICAgKyBcImRzZUFmdGVyRGVsZXRlT3V0T2ZUcmFuc2FjdGlvbiBcIlxuICAgICsgXCJkc2VBZnRlckluc2VydCBcIlxuICAgICsgXCJkc2VBZnRlck9wZW4gXCJcbiAgICArIFwiZHNlQWZ0ZXJTY3JvbGwgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGVPdXRPZlRyYW5zYWN0aW9uIFwiXG4gICAgKyBcImRzZUJlZm9yZUNhbmNlbCBcIlxuICAgICsgXCJkc2VCZWZvcmVDbG9zZSBcIlxuICAgICsgXCJkc2VCZWZvcmVEZWxldGUgXCJcbiAgICArIFwiZHNlQmVmb3JlRGV0YWlsVXBkYXRlIFwiXG4gICAgKyBcImRzZUJlZm9yZUluc2VydCBcIlxuICAgICsgXCJkc2VCZWZvcmVPcGVuIFwiXG4gICAgKyBcImRzZUJlZm9yZVVwZGF0ZSBcIlxuICAgICsgXCJkc2VPbkFueVJlcXVpc2l0ZUNoYW5nZSBcIlxuICAgICsgXCJkc2VPbkNsb3NlUmVjb3JkIFwiXG4gICAgKyBcImRzZU9uRGVsZXRlRXJyb3IgXCJcbiAgICArIFwiZHNlT25PcGVuUmVjb3JkIFwiXG4gICAgKyBcImRzZU9uUHJlcGFyZVVwZGF0ZSBcIlxuICAgICsgXCJkc2VPblVwZGF0ZUVycm9yIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlUmF0aWZpZWRSZWNvcmQgXCJcbiAgICArIFwiZHNlT25WYWxpZERlbGV0ZSBcIlxuICAgICsgXCJkc2VPblZhbGlkVXBkYXRlIFwiXG4gICAgKyBcInJlT25DaGFuZ2UgXCJcbiAgICArIFwicmVPbkNoYW5nZVZhbHVlcyBcIlxuICAgICsgXCJTRUxFQ1RJT05fQkVHSU5fUk9VVEVfRVZFTlQgXCJcbiAgICArIFwiU0VMRUNUSU9OX0VORF9ST1VURV9FVkVOVCBcIjtcblxuICAvLyBPYmplY3QgcGFyYW1zXG4gIGNvbnN0IG9iamVjdF9wYXJhbXNfY29uc3RhbnRzID1cbiAgICBcIkNVUlJFTlRfUEVSSU9EX0lTX1JFUVVJUkVEIFwiXG4gICAgKyBcIlBSRVZJT1VTX0NBUkRfVFlQRV9OQU1FIFwiXG4gICAgKyBcIlNIT1dfUkVDT1JEX1BST1BFUlRJRVNfRk9STSBcIjtcblxuICAvLyBPdGhlclxuICBjb25zdCBvdGhlcl9jb25zdGFudHMgPVxuICAgIFwiQUNDRVNTX1JJR0hUU19TRVRUSU5HX0RJQUxPR19DT0RFIFwiXG4gICAgKyBcIkFETUlOSVNUUkFUT1JfVVNFUl9DT0RFIFwiXG4gICAgKyBcIkFOQUxZVElDX1JFUE9SVF9UWVBFIFwiXG4gICAgKyBcImFzcnRIaWRlTG9jYWwgXCJcbiAgICArIFwiYXNydEhpZGVSZW1vdGUgXCJcbiAgICArIFwiQ0FMQ1VMQVRFRF9ST0xFX1RZUEVfQ09ERSBcIlxuICAgICsgXCJDT01QT05FTlRTX1JFRkVSRU5DRV9ERVZFTE9QRVJfVklFV19DT0RFIFwiXG4gICAgKyBcIkRDVFNfVEVTVF9QUk9UT0NPTFNfRk9MREVSX1BBVEggXCJcbiAgICArIFwiRV9FRE9DX1ZFUlNJT05fQUxSRUFEWV9BUFBST1ZJTkdMWV9TSUdORUQgXCJcbiAgICArIFwiRV9FRE9DX1ZFUlNJT05fQUxSRUFEWV9BUFBST1ZJTkdMWV9TSUdORURfQllfVVNFUiBcIlxuICAgICsgXCJFX0VET0NfVkVSU0lPTl9BTFJFRFlfU0lHTkVEIFwiXG4gICAgKyBcIkVfRURPQ19WRVJTSU9OX0FMUkVEWV9TSUdORURfQllfVVNFUiBcIlxuICAgICsgXCJFRE9DX1RZUEVTX0NPREVfUkVRVUlTSVRFX0ZJRUxEX05BTUUgXCJcbiAgICArIFwiRURPQ1VNRU5UU19BTElBU19OQU1FIFwiXG4gICAgKyBcIkZJTEVTX0ZPTERFUl9QQVRIIFwiXG4gICAgKyBcIkZJTFRFUl9PUEVSQU5EU19ERUxJTUlURVIgXCJcbiAgICArIFwiRklMVEVSX09QRVJBVElPTlNfREVMSU1JVEVSIFwiXG4gICAgKyBcIkZPUk1DQVJEX05BTUUgXCJcbiAgICArIFwiRk9STUxJU1RfTkFNRSBcIlxuICAgICsgXCJHRVRfRVhURU5ERURfRE9DVU1FTlRfRVhURU5TSU9OX0NSRUFUSU9OX01PREUgXCJcbiAgICArIFwiR0VUX0VYVEVOREVEX0RPQ1VNRU5UX0VYVEVOU0lPTl9JTVBPUlRfTU9ERSBcIlxuICAgICsgXCJJTlRFR1JBVEVEX1JFUE9SVF9UWVBFIFwiXG4gICAgKyBcIklTX0JVSUxERVJfQVBQTElDQVRJT05fUk9MRSBcIlxuICAgICsgXCJJU19CVUlMREVSX0FQUExJQ0FUSU9OX1JPTEUyIFwiXG4gICAgKyBcIklTX0JVSUxERVJfVVNFUlMgXCJcbiAgICArIFwiSVNCU1lTREVWIFwiXG4gICAgKyBcIkxPR19GT0xERVJfUEFUSCBcIlxuICAgICsgXCJtYkNhbmNlbCBcIlxuICAgICsgXCJtYk5vIFwiXG4gICAgKyBcIm1iTm9Ub0FsbCBcIlxuICAgICsgXCJtYk9LIFwiXG4gICAgKyBcIm1iWWVzIFwiXG4gICAgKyBcIm1iWWVzVG9BbGwgXCJcbiAgICArIFwiTUVNT1JZX0RBVEFTRVRfREVTUklQVElPTlNfRklMRU5BTUUgXCJcbiAgICArIFwibXJObyBcIlxuICAgICsgXCJtck5vVG9BbGwgXCJcbiAgICArIFwibXJZZXMgXCJcbiAgICArIFwibXJZZXNUb0FsbCBcIlxuICAgICsgXCJNVUxUSVBMRV9TRUxFQ1RfRElBTE9HX0NPREUgXCJcbiAgICArIFwiTk9OT1BFUkFUSU5HX1JFQ09SRF9GTEFHX0ZFTUlOSU5FIFwiXG4gICAgKyBcIk5PTk9QRVJBVElOR19SRUNPUkRfRkxBR19NQVNDVUxJTkUgXCJcbiAgICArIFwiT1BFUkFUSU5HX1JFQ09SRF9GTEFHX0ZFTUlOSU5FIFwiXG4gICAgKyBcIk9QRVJBVElOR19SRUNPUkRfRkxBR19NQVNDVUxJTkUgXCJcbiAgICArIFwiUFJPRklMSU5HX1NFVFRJTkdTX0NPTU1PTl9TRVRUSU5HU19DT0RFX1ZBTFVFIFwiXG4gICAgKyBcIlBST0dSQU1fSU5JVElBVEVEX0xPT0tVUF9BQ1RJT04gXCJcbiAgICArIFwicmF0RGVsZXRlIFwiXG4gICAgKyBcInJhdEVkaXQgXCJcbiAgICArIFwicmF0SW5zZXJ0IFwiXG4gICAgKyBcIlJFUE9SVF9UWVBFIFwiXG4gICAgKyBcIlJFUVVJUkVEX1BJQ0tfVkFMVUVTX1ZBUklBQkxFIFwiXG4gICAgKyBcInJtQ2FyZCBcIlxuICAgICsgXCJybUxpc3QgXCJcbiAgICArIFwiU0JSVEVfUFJPR0lEX0RFViBcIlxuICAgICsgXCJTQlJURV9QUk9HSURfUkVMRUFTRSBcIlxuICAgICsgXCJTVEFUSUNfUk9MRV9UWVBFX0NPREUgXCJcbiAgICArIFwiU1VQUFJFU1NfRU1QVFlfVEVNUExBVEVfQ1JFQVRJT04gXCJcbiAgICArIFwiU1lTVEVNX1VTRVJfQ09ERSBcIlxuICAgICsgXCJVUERBVEVfRElBTE9HX0RBVEFTRVQgXCJcbiAgICArIFwiVVNFRF9JTl9PQkpFQ1RfSElOVF9QQVJBTSBcIlxuICAgICsgXCJVU0VSX0lOSVRJQVRFRF9MT09LVVBfQUNUSU9OIFwiXG4gICAgKyBcIlVTRVJfTkFNRV9GT1JNQVQgXCJcbiAgICArIFwiVVNFUl9TRUxFQ1RJT05fUkVTVFJJQ1RJT05TIFwiXG4gICAgKyBcIldPUktGTE9XX1RFU1RfUFJPVE9DT0xTX0ZPTERFUl9QQVRIIFwiXG4gICAgKyBcIkVMU19TVUJUWVBFX0NPTlRST0xfTkFNRSBcIlxuICAgICsgXCJFTFNfRk9MREVSX0tJTkRfQ09OVFJPTF9OQU1FIFwiXG4gICAgKyBcIlJFUEVBVF9QUk9DRVNTX0NVUlJFTlRfT0JKRUNUX0VYQ0VQVElPTl9OQU1FIFwiO1xuXG4gIC8vIFByaXZpbGVnZXNcbiAgY29uc3QgcHJpdmlsZWdlc19jb25zdGFudHMgPVxuICAgIFwiUFJJVklMRUdFX0NPTVBPTkVOVF9GVUxMX0FDQ0VTUyBcIlxuICAgICsgXCJQUklWSUxFR0VfREVWRUxPUE1FTlRfRVhQT1JUIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9ERVZFTE9QTUVOVF9JTVBPUlQgXCJcbiAgICArIFwiUFJJVklMRUdFX0RPQ1VNRU5UX0RFTEVURSBcIlxuICAgICsgXCJQUklWSUxFR0VfRVNEIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9GT0xERVJfREVMRVRFIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9NQU5BR0VfQUNDRVNTX1JJR0hUUyBcIlxuICAgICsgXCJQUklWSUxFR0VfTUFOQUdFX1JFUExJQ0FUSU9OIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9NQU5BR0VfU0VTU0lPTl9TRVJWRVIgXCJcbiAgICArIFwiUFJJVklMRUdFX09CSkVDVF9GVUxMX0FDQ0VTUyBcIlxuICAgICsgXCJQUklWSUxFR0VfT0JKRUNUX1ZJRVcgXCJcbiAgICArIFwiUFJJVklMRUdFX1JFU0VSVkVfTElDRU5TRSBcIlxuICAgICsgXCJQUklWSUxFR0VfU1lTVEVNX0NVU1RPTUlaRSBcIlxuICAgICsgXCJQUklWSUxFR0VfU1lTVEVNX0RFVkVMT1AgXCJcbiAgICArIFwiUFJJVklMRUdFX1NZU1RFTV9JTlNUQUxMIFwiXG4gICAgKyBcIlBSSVZJTEVHRV9UQVNLX0RFTEVURSBcIlxuICAgICsgXCJQUklWSUxFR0VfVVNFUl9QTFVHSU5fU0VUVElOR1NfQ1VTVE9NSVpFIFwiXG4gICAgKyBcIlBSSVZJTEVHRVNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCI7XG5cbiAgLy8gUHNldWRvcmVmZXJlbmNlIGNvZGVcbiAgY29uc3QgcHNldWRvcmVmZXJlbmNlX2NvZGVfY29uc3RhbnRzID1cbiAgICBcIkFDQ0VTU19UWVBFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJBTExfQVZBSUxBQkxFX0NPTVBPTkVOVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiQUxMX0FWQUlMQUJMRV9QUklWSUxFR0VTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIkFMTF9SRVBMSUNBVEVfQ09NUE9ORU5UU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJBVkFJTEFCTEVfREVWRUxPUEVSU19DT01QT05FTlRTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIkNPTVBPTkVOVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiRklMVFJBVEVSX1NFVFRJTkdTX0NPTkZMSUNUU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJHUk9VUFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiUkVDRUlWRV9QUk9UT0NPTF9QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJSRUZFUkVOQ0VfUkVRVUlTSVRFX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlJFRkVSRU5DRV9SRVFVSVNJVEVTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlJFRlRZUEVTX1BTRVVET1JFRkVSRU5DRV9DT0RFIFwiXG4gICAgKyBcIlJFUExJQ0FUSU9OX1NFQU5DRVNfRElBUllfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiU0VORF9QUk9UT0NPTF9QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTVUJTVElUVVRFU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIlxuICAgICsgXCJTWVNURU1fU0VUVElOR1NfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiVU5JVFNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiVVNFUlNfUFNFVURPUkVGRVJFTkNFX0NPREUgXCJcbiAgICArIFwiVklFV0VSU19QU0VVRE9SRUZFUkVOQ0VfQ09ERSBcIjtcblxuICAvLyBSZXF1aXNpdGUgSVNCQ2VydGlmaWNhdGVUeXBlIHZhbHVlc1xuICBjb25zdCByZXF1aXNpdGVfSVNCQ2VydGlmaWNhdGVUeXBlX3ZhbHVlc19jb25zdGFudHMgPVxuICAgIFwiQ0VSVElGSUNBVEVfVFlQRV9FTkNSWVBUIFwiXG4gICAgKyBcIkNFUlRJRklDQVRFX1RZUEVfU0lHTiBcIlxuICAgICsgXCJDRVJUSUZJQ0FURV9UWVBFX1NJR05fQU5EX0VOQ1JZUFQgXCI7XG5cbiAgLy8gUmVxdWlzaXRlIElTQkVEb2NTdG9yYWdlVHlwZSB2YWx1ZXNcbiAgY29uc3QgcmVxdWlzaXRlX0lTQkVEb2NTdG9yYWdlVHlwZV92YWx1ZXNfY29uc3RhbnRzID1cbiAgICBcIlNUT1JBR0VfVFlQRV9GSUxFIFwiXG4gICAgKyBcIlNUT1JBR0VfVFlQRV9OQVNfQ0lGUyBcIlxuICAgICsgXCJTVE9SQUdFX1RZUEVfU0FQRVJJT04gXCJcbiAgICArIFwiU1RPUkFHRV9UWVBFX1NRTF9TRVJWRVIgXCI7XG5cbiAgLy8gUmVxdWlzaXRlIENvbXBUeXBlMiB2YWx1ZXNcbiAgY29uc3QgcmVxdWlzaXRlX2NvbXBUeXBlMl92YWx1ZXNfY29uc3RhbnRzID1cbiAgICBcIkNPTVBUWVBFMl9SRVFVSVNJVEVfRE9DVU1FTlRTX1ZBTFVFIFwiXG4gICAgKyBcIkNPTVBUWVBFMl9SRVFVSVNJVEVfVEFTS1NfVkFMVUUgXCJcbiAgICArIFwiQ09NUFRZUEUyX1JFUVVJU0lURV9GT0xERVJTX1ZBTFVFIFwiXG4gICAgKyBcIkNPTVBUWVBFMl9SRVFVSVNJVEVfUkVGRVJFTkNFU19WQUxVRSBcIjtcblxuICAvLyBSZXF1aXNpdGUgbmFtZVxuICBjb25zdCByZXF1aXNpdGVfbmFtZV9jb25zdGFudHMgPVxuICAgIFwiU1lTUkVRX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0NPTVBUWVBFMiBcIlxuICAgICsgXCJTWVNSRVFfQ09OU1RfQVZBSUxBQkxFX0ZPUl9XRUIgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX0NPTU1PTl9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9DT05TVF9DT01NT05fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX0ZJUk1fQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfQ09OU1RfRklSTV9TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX0ZJUk1fVkFMVUUgXCJcbiAgICArIFwiU1lTUkVRX0NPTlNUX1NFUlZFUl9TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX0NPTlRFTlRTIFwiXG4gICAgKyBcIlNZU1JFUV9EQVRFX09QRU4gXCJcbiAgICArIFwiU1lTUkVRX0RBVEVfQ0xPU0UgXCJcbiAgICArIFwiU1lTUkVRX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfRE9VQkxFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0FDQ0VTU19UWVBFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0FVVEhPUiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19DUkVBVEVEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0RFTEVHQVRFX1JJR0hUU19SRVFVSVNJVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19FRElUT1IgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfRU5DT0RFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfRU5DUllQVElPTl9QTFVHSU5fTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19FTkNSWVBUSU9OX1BMVUdJTl9WRVJTSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0VYUE9SVF9EQVRFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0VYUE9SVEVSIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0tJTkQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfTElGRV9TVEFHRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX0xPQ0tFRF9GT1JfU0VSVkVSX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfTU9ESUZJRUQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19OT1RFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1FVQUxJRklFRF9JRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TRVNTSU9OX0tFWSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TRVNTSU9OX0tFWV9FTkNSWVBUSU9OX1BMVUdJTl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NFU1NJT05fS0VZX0VOQ1JZUFRJT05fUExVR0lOX1ZFUlNJT04gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU0lHTkFUVVJFX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU0lHTkVEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0UgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfQVJDSElWRV9TVE9SQUdFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX0NIRUNLX1JJR0hUUyBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19DT01QVVRFUl9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX0VESVRfSU5fU1RPUkFHRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19FWEVDVVRJVkVfU1RPUkFHRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19GVU5DVElPTiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19JTklUSUFMSVpFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19TVE9SQUdFU19MT0NBTF9QQVRIIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX1NBUEVSSU9OX0RBVEFCQVNFX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfU0VBUkNIX0JZX1RFWFQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfU0VSVkVSX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfU1RPUkFHRVNfU0hBUkVEX1NPVVJDRV9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1NUT1JBR0VTX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVEVYVF9NT0RJRklFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX0FDVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfQUNUX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfQUNUX0RFU0NSSVBUSU9OX0xPQ0FMSVpFX0lEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfQUNUX09OX0VYRUNVVEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9BQ1RfT05fRVhFQ1VURV9FWElTVFMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9BQ1RfU0VDVElPTiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX0FERF9QQVJBTVMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9DT01NRU5UIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfRVZFTlRfVEVYVCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX05BTUVfSU5fU0lOR1VMQVIgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9OQU1FX0lOX1NJTkdVTEFSX0xPQ0FMSVpFX0lEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfTkFNRV9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX05VTUVSQVRJT05fTUVUSE9EIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUFNFVURPX1JFUVVJU0lURV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfREVTQ1JJUFRJT05fTE9DQUxJWkVfSUQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfSVNfTEVBRElORyBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX1JFUV9JU19SRVFVSVJFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19UWVBFX1JFUV9OVU1CRVIgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfT05fQ0hBTkdFIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX09OX0NIQU5HRV9FWElTVFMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9SRVFfT05fU0VMRUNUIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX09OX1NFTEVDVF9LSU5EIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1RZUEVfUkVRX1NFQ1RJT04gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NBUkQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NPREUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0NPTU1FTlQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX0lTX01BSU4gXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVFlQRV9WSUVXX05BTUVfTE9DQUxJWkVfSUQgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9BVVRIT1IgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9DUkMgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9EQVRBIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1ZFUlNJT05fRURJVE9SIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DX1ZFUlNJT05fRVhQT1JUX0RBVEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9FWFBPUlRFUiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX0hJRERFTiBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX0xJRkVfU1RBR0UgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9NT0RJRklFRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX05PVEUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9TSUdOQVRVUkVfVFlQRSBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX1NJR05FRCBcIlxuICAgICsgXCJTWVNSRVFfRURPQ19WRVJTSU9OX1NJWkUgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9TT1VSQ0UgXCJcbiAgICArIFwiU1lTUkVRX0VET0NfVkVSU0lPTl9URVhUX01PRElGSUVEIFwiXG4gICAgKyBcIlNZU1JFUV9FRE9DS0lORF9ERUZBVUxUX1ZFUlNJT05fU1RBVEVfQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfRk9MREVSX0tJTkQgXCJcbiAgICArIFwiU1lTUkVRX0ZVTkNfQ0FURUdPUlkgXCJcbiAgICArIFwiU1lTUkVRX0ZVTkNfQ09NTUVOVCBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19HUk9VUCBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19HUk9VUF9DT01NRU5UIFwiXG4gICAgKyBcIlNZU1JFUV9GVU5DX0dST1VQX05VTUJFUiBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19IRUxQIFwiXG4gICAgKyBcIlNZU1JFUV9GVU5DX1BBUkFNX0RFRl9WQUxVRSBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19QQVJBTV9JREVOVCBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19QQVJBTV9OVU1CRVIgXCJcbiAgICArIFwiU1lTUkVRX0ZVTkNfUEFSQU1fVFlQRSBcIlxuICAgICsgXCJTWVNSRVFfRlVOQ19URVhUIFwiXG4gICAgKyBcIlNZU1JFUV9HUk9VUF9DQVRFR09SWSBcIlxuICAgICsgXCJTWVNSRVFfSUQgXCJcbiAgICArIFwiU1lTUkVRX0xBU1RfVVBEQVRFIFwiXG4gICAgKyBcIlNZU1JFUV9MRUFERVJfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFUV9MSU5FX05VTUJFUiBcIlxuICAgICsgXCJTWVNSRVFfTUFJTl9SRUNPUkRfSUQgXCJcbiAgICArIFwiU1lTUkVRX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX05BTUVfTE9DQUxJWkVfSUQgXCJcbiAgICArIFwiU1lTUkVRX05PVEUgXCJcbiAgICArIFwiU1lTUkVRX09SSUdJTkFMX1JFQ09SRCBcIlxuICAgICsgXCJTWVNSRVFfT1VSX0ZJUk0gXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19CQVRDSF9MT0dJTkcgXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19CQVRDSF9TSVpFIFwiXG4gICAgKyBcIlNZU1JFUV9QUk9GSUxJTkdfU0VUVElOR1NfUFJPRklMSU5HX0VOQUJMRUQgXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19TUUxfUFJPRklMSU5HX0VOQUJMRUQgXCJcbiAgICArIFwiU1lTUkVRX1BST0ZJTElOR19TRVRUSU5HU19TVEFSVF9MT0dHRUQgXCJcbiAgICArIFwiU1lTUkVRX1JFQ09SRF9TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfRklFTERfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1JFUV9GT1JNQVQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfR0VORVJBVEVEIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX0xFTkdUSCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1JFUV9QUkVDSVNJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX1NFQ1RJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9SRVFfU1RPUkVEIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX1RPS0VOUyBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1JFUV9UWVBFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfUkVRX1ZJRVcgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FDVF9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9BQ1RfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FDVF9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfQUNUX09OX0VYRUNVVEUgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FDVF9PTl9FWEVDVVRFX0VYSVNUUyBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfQUNUX1NFQ1RJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0FERF9QQVJBTVMgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0NPTU1FTlQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX0NPTU1PTl9TRVRUSU5HUyBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfRElTUExBWV9SRVFVSVNJVEVfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfRVZFTlRfVEVYVCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTUFJTl9MRUFESU5HX1JFRiBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTkFNRV9JTl9TSU5HVUxBUiBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTkFNRV9JTl9TSU5HVUxBUl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTkFNRV9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfTlVNRVJBVElPTl9NRVRIT0QgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9DT0RFIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfREVTQ1JJUFRJT04gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9ERVNDUklQVElPTl9MT0NBTElaRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfUkVRX0lTX0NPTlRST0wgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9JU19GSUxURVIgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9JU19MRUFESU5HIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfSVNfUkVRVUlSRUQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9OVU1CRVIgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9PTl9DSEFOR0UgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9PTl9DSEFOR0VfRVhJU1RTIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfT05fU0VMRUNUIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9SRVFfT05fU0VMRUNUX0tJTkQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1JFUV9TRUNUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9WSUVXX0NBUkQgXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1ZJRVdfQ09ERSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfVklFV19DT01NRU5UIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZfVFlQRV9WSUVXX0lTX01BSU4gXCJcbiAgICArIFwiU1lTUkVRX1JFRl9UWVBFX1ZJRVdfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfUkVGX1RZUEVfVklFV19OQU1FX0xPQ0FMSVpFX0lEIFwiXG4gICAgKyBcIlNZU1JFUV9SRUZFUkVOQ0VfVFlQRV9JRCBcIlxuICAgICsgXCJTWVNSRVFfU1RBVEUgXCJcbiAgICArIFwiU1lTUkVRX1NUQVRcdTA0MTUgXCJcbiAgICArIFwiU1lTUkVRX1NZU1RFTV9TRVRUSU5HU19WQUxVRSBcIlxuICAgICsgXCJTWVNSRVFfVFlQRSBcIlxuICAgICsgXCJTWVNSRVFfVU5JVCBcIlxuICAgICsgXCJTWVNSRVFfVU5JVF9JRCBcIlxuICAgICsgXCJTWVNSRVFfVVNFUl9HUk9VUFNfR1JPVVBfRlVMTF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSX0dST1VQU19HUk9VUF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSX0dST1VQU19HUk9VUF9TRVJWRVJfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfQUNDRVNTX1JJR0hUUyBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfQVVUSEVOVElDQVRJT04gXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX0NBVEVHT1JZIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19DT01QT05FTlQgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX0NPTVBPTkVOVF9VU0VSX0lTX1BVQkxJQyBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfRE9NQUlOIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19GVUxMX1VTRVJfTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfR1JPVVAgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX0lTX01BSU5fU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19MT0dJTiBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfUkVGRVJFTkNFX1VTRVJfSVNfUFVCTElDIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19TVEFUVVMgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEUgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEVfSU5GTyBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9QTFVHSU5fTkFNRSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9QTFVHSU5fVkVSU0lPTiBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9TVEFURSBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9DRVJUSUZJQ0FURV9TVUJKRUNUX05BTUUgXCJcbiAgICArIFwiU1lTUkVRX1VTRVJTX1VTRVJfQ0VSVElGSUNBVEVfVEhVTUJQUklOVCBcIlxuICAgICsgXCJTWVNSRVFfVVNFUlNfVVNFUl9ERUZBVUxUX0NFUlRJRklDQVRFIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX0RFU0NSSVBUSU9OIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX0dMT0JBTF9OQU1FIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX0xPR0lOIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX01BSU5fU0VSVkVSIFwiXG4gICAgKyBcIlNZU1JFUV9VU0VSU19VU0VSX1RZUEUgXCJcbiAgICArIFwiU1lTUkVRX1dPUktfUlVMRVNfRk9MREVSX0lEIFwiO1xuXG4gIC8vIFJlc3VsdFxuICBjb25zdCByZXN1bHRfY29uc3RhbnRzID0gXCJSRVNVTFRfVkFSX05BTUUgUkVTVUxUX1ZBUl9OQU1FX0VORyBcIjtcblxuICAvLyBSdWxlIGlkZW50aWZpY2F0aW9uXG4gIGNvbnN0IHJ1bGVfaWRlbnRpZmljYXRpb25fY29uc3RhbnRzID1cbiAgICBcIkFVVE9fTlVNRVJBVElPTl9SVUxFX0lEIFwiXG4gICAgKyBcIkNBTlRfQ0hBTkdFX0lEX1JFUVVJU0lURV9SVUxFX0lEIFwiXG4gICAgKyBcIkNBTlRfQ0hBTkdFX09VUkZJUk1fUkVRVUlTSVRFX1JVTEVfSUQgXCJcbiAgICArIFwiQ0hFQ0tfQ0hBTkdJTkdfUkVGRVJFTkNFX1JFQ09SRF9VU0VfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19DT0RFX1JFUVVJU0lURV9SVUxFX0lEIFwiXG4gICAgKyBcIkNIRUNLX0RFTEVUSU5HX1JFRkVSRU5DRV9SRUNPUkRfVVNFX1JVTEVfSUQgXCJcbiAgICArIFwiQ0hFQ0tfRklMVFJBVEVSX0NIQU5HRVNfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19SRUNPUkRfSU5URVJWQUxfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19SRUZFUkVOQ0VfSU5URVJWQUxfUlVMRV9JRCBcIlxuICAgICsgXCJDSEVDS19SRVFVSVJFRF9EQVRBX0ZVTExORVNTX1JVTEVfSUQgXCJcbiAgICArIFwiQ0hFQ0tfUkVRVUlSRURfUkVRVUlTSVRFU19GVUxMTkVTU19SVUxFX0lEIFwiXG4gICAgKyBcIk1BS0VfUkVDT1JEX1VOUkFUSUZJRURfUlVMRV9JRCBcIlxuICAgICsgXCJSRVNUT1JFX0FVVE9fTlVNRVJBVElPTl9SVUxFX0lEIFwiXG4gICAgKyBcIlNFVF9GSVJNX0NPTlRFWFRfRlJPTV9SRUNPUkRfUlVMRV9JRCBcIlxuICAgICsgXCJTRVRfRklSU1RfUkVDT1JEX0lOX0xJU1RfRk9STV9SVUxFX0lEIFwiXG4gICAgKyBcIlNFVF9JRFNQU19WQUxVRV9SVUxFX0lEIFwiXG4gICAgKyBcIlNFVF9ORVhUX0NPREVfVkFMVUVfUlVMRV9JRCBcIlxuICAgICsgXCJTRVRfT1VSRklSTV9CT1VORFNfUlVMRV9JRCBcIlxuICAgICsgXCJTRVRfT1VSRklSTV9SRVFVSVNJVEVfUlVMRV9JRCBcIjtcblxuICAvLyBTY3JpcHQgYmxvY2sgcHJvcGVydGllc1xuICBjb25zdCBzY3JpcHRfYmxvY2tfcHJvcGVydGllc19jb25zdGFudHMgPVxuICAgIFwiU0NSSVBUX0JMT0NLX0FGVEVSX0ZJTklTSF9FVkVOVCBcIlxuICAgICsgXCJTQ1JJUFRfQkxPQ0tfQkVGT1JFX1NUQVJUX0VWRU5UIFwiXG4gICAgKyBcIlNDUklQVF9CTE9DS19FWEVDVVRJT05fUkVTVUxUU19QUk9QRVJUWSBcIlxuICAgICsgXCJTQ1JJUFRfQkxPQ0tfTkFNRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTQ1JJUFRfQkxPQ0tfU0NSSVBUX1BST1BFUlRZIFwiO1xuXG4gIC8vIFN1YnRhc2sgYmxvY2sgcHJvcGVydGllc1xuICBjb25zdCBzdWJ0YXNrX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzID1cbiAgICBcIlNVQlRBU0tfQkxPQ0tfQUJPUlRfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BU1NJR05fUEFSQU1TX0VWRU5UIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfQVRUQUNITUVOVFNfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfR1JPVVBfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19BVFRBQ0hNRU5UU19SSUdIVFNfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0JFRk9SRV9TVEFSVF9FVkVOVCBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0NSRUFURURfVEFTS19QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0NSRUFUSU9OX0VWRU5UIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19JTVBPUlRBTkNFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfSU5JVElBVE9SX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfSVNfUkVMQVRJVkVfQUJPUlRfREVBRExJTkVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19JU19SRUxBVElWRV9ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX0pPQlNfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX05BTUVfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19QQVJBTExFTF9ST1VURV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1BFUkZPUk1FUlNfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19SRUxBVElWRV9BQk9SVF9ERUFETElORV9UWVBFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfUkVMQVRJVkVfREVBRExJTkVfVFlQRV9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1JFUVVJUkVfU0lHTl9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1NUQU5EQVJEX1JPVVRFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfU1RBUlRfRVZFTlQgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19TVEVQX0NPTlRST0xfUFJPUEVSVFkgXCJcbiAgICArIFwiU1VCVEFTS19CTE9DS19TVUJKRUNUX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfVEFTS19DT05UUk9MX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfVEVYVF9QUk9QRVJUWSBcIlxuICAgICsgXCJTVUJUQVNLX0JMT0NLX1VOTE9DS19BVFRBQ0hNRU5UU19PTl9TVE9QX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfVVNFX1NUQU5EQVJEX1JPVVRFX1BST1BFUlRZIFwiXG4gICAgKyBcIlNVQlRBU0tfQkxPQ0tfV0FJVF9GT1JfVEFTS19DT01QTEVURV9QUk9QRVJUWSBcIjtcblxuICAvLyBTeXN0ZW0gY29tcG9uZW50XG4gIGNvbnN0IHN5c3RlbV9jb21wb25lbnRfY29uc3RhbnRzID1cbiAgICBcIlNZU0NPTVBfQ09OVFJPTF9KT0JTIFwiXG4gICAgKyBcIlNZU0NPTVBfRk9MREVSUyBcIlxuICAgICsgXCJTWVNDT01QX0pPQlMgXCJcbiAgICArIFwiU1lTQ09NUF9OT1RJQ0VTIFwiXG4gICAgKyBcIlNZU0NPTVBfVEFTS1MgXCI7XG5cbiAgLy8gU3lzdGVtIGRpYWxvZ3NcbiAgY29uc3Qgc3lzdGVtX2RpYWxvZ3NfY29uc3RhbnRzID1cbiAgICBcIlNZU0RMR19DUkVBVEVfRURPQ1VNRU5UIFwiXG4gICAgKyBcIlNZU0RMR19DUkVBVEVfRURPQ1VNRU5UX1ZFUlNJT04gXCJcbiAgICArIFwiU1lTRExHX0NVUlJFTlRfUEVSSU9EIFwiXG4gICAgKyBcIlNZU0RMR19FRElUX0ZVTkNUSU9OX0hFTFAgXCJcbiAgICArIFwiU1lTRExHX0VET0NVTUVOVF9LSU5EU19GT1JfVEVNUExBVEUgXCJcbiAgICArIFwiU1lTRExHX0VYUE9SVF9NVUxUSVBMRV9FRE9DVU1FTlRTIFwiXG4gICAgKyBcIlNZU0RMR19FWFBPUlRfU0lOR0xFX0VET0NVTUVOVCBcIlxuICAgICsgXCJTWVNETEdfSU1QT1JUX0VET0NVTUVOVCBcIlxuICAgICsgXCJTWVNETEdfTVVMVElQTEVfU0VMRUNUIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9BQ0NFU1NfUklHSFRTIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9ERUZBVUxUX1JJR0hUUyBcIlxuICAgICsgXCJTWVNETEdfU0VUVVBfRklMVEVSX0NPTkRJVElPTiBcIlxuICAgICsgXCJTWVNETEdfU0VUVVBfU0lHTl9SSUdIVFMgXCJcbiAgICArIFwiU1lTRExHX1NFVFVQX1RBU0tfT0JTRVJWRVJTIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9UQVNLX1JPVVRFIFwiXG4gICAgKyBcIlNZU0RMR19TRVRVUF9VU0VSU19MSVNUIFwiXG4gICAgKyBcIlNZU0RMR19TSUdOX0VET0NVTUVOVCBcIlxuICAgICsgXCJTWVNETEdfU0lHTl9NVUxUSVBMRV9FRE9DVU1FTlRTIFwiO1xuXG4gIC8vIFN5c3RlbSByZWZlcmVuY2UgbmFtZXNcbiAgY29uc3Qgc3lzdGVtX3JlZmVyZW5jZV9uYW1lc19jb25zdGFudHMgPVxuICAgIFwiU1lTUkVGX0FDQ0VTU19SSUdIVFNfVFlQRVMgXCJcbiAgICArIFwiU1lTUkVGX0FETUlOSVNUUkFUSU9OX0hJU1RPUlkgXCJcbiAgICArIFwiU1lTUkVGX0FMTF9BVkFJTEFCTEVfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQUxMX0FWQUlMQUJMRV9QUklWSUxFR0VTIFwiXG4gICAgKyBcIlNZU1JFRl9BTExfUkVQTElDQVRJTkdfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQVZBSUxBQkxFX0RFVkVMT1BFUlNfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQ0FMRU5EQVJfRVZFTlRTIFwiXG4gICAgKyBcIlNZU1JFRl9DT01QT05FTlRfVE9LRU5fSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfQ09NUE9ORU5UX1RPS0VOUyBcIlxuICAgICsgXCJTWVNSRUZfQ09NUE9ORU5UUyBcIlxuICAgICsgXCJTWVNSRUZfQ09OU1RBTlRTIFwiXG4gICAgKyBcIlNZU1JFRl9EQVRBX1JFQ0VJVkVfUFJPVE9DT0wgXCJcbiAgICArIFwiU1lTUkVGX0RBVEFfU0VORF9QUk9UT0NPTCBcIlxuICAgICsgXCJTWVNSRUZfRElBTE9HUyBcIlxuICAgICsgXCJTWVNSRUZfRElBTE9HU19SRVFVSVNJVEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRElUT1JTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DX0NBUkRTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DX1RZUEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfQ0FSRF9SRVFVSVNJVEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfQ0FSRF9UWVBFUyBcIlxuICAgICsgXCJTWVNSRUZfRURPQ1VNRU5UX0NBUkRfVFlQRVNfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfQ0FSRFMgXCJcbiAgICArIFwiU1lTUkVGX0VET0NVTUVOVF9ISVNUT1JZIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfS0lORFMgXCJcbiAgICArIFwiU1lTUkVGX0VET0NVTUVOVF9SRVFVSVNJVEVTIFwiXG4gICAgKyBcIlNZU1JFRl9FRE9DVU1FTlRfU0lHTkFUVVJFUyBcIlxuICAgICsgXCJTWVNSRUZfRURPQ1VNRU5UX1RFTVBMQVRFUyBcIlxuICAgICsgXCJTWVNSRUZfRURPQ1VNRU5UX1RFWFRfU1RPUkFHRVMgXCJcbiAgICArIFwiU1lTUkVGX0VET0NVTUVOVF9WSUVXUyBcIlxuICAgICsgXCJTWVNSRUZfRklMVEVSRVJfU0VUVVBfQ09ORkxJQ1RTIFwiXG4gICAgKyBcIlNZU1JFRl9GSUxUUkFURVJfU0VUVElOR19DT05GTElDVFMgXCJcbiAgICArIFwiU1lTUkVGX0ZPTERFUl9ISVNUT1JZIFwiXG4gICAgKyBcIlNZU1JFRl9GT0xERVJTIFwiXG4gICAgKyBcIlNZU1JFRl9GVU5DVElPTl9HUk9VUFMgXCJcbiAgICArIFwiU1lTUkVGX0ZVTkNUSU9OX1BBUkFNUyBcIlxuICAgICsgXCJTWVNSRUZfRlVOQ1RJT05TIFwiXG4gICAgKyBcIlNZU1JFRl9KT0JfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfTElOS1MgXCJcbiAgICArIFwiU1lTUkVGX0xPQ0FMSVpBVElPTl9ESUNUSU9OQVJZIFwiXG4gICAgKyBcIlNZU1JFRl9MT0NBTElaQVRJT05fTEFOR1VBR0VTIFwiXG4gICAgKyBcIlNZU1JFRl9NT0RVTEVTIFwiXG4gICAgKyBcIlNZU1JFRl9QUklWSUxFR0VTIFwiXG4gICAgKyBcIlNZU1JFRl9SRUNPUkRfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfUkVGRVJFTkNFX1JFUVVJU0lURVMgXCJcbiAgICArIFwiU1lTUkVGX1JFRkVSRU5DRV9UWVBFX1ZJRVdTIFwiXG4gICAgKyBcIlNZU1JFRl9SRUZFUkVOQ0VfVFlQRVMgXCJcbiAgICArIFwiU1lTUkVGX1JFRkVSRU5DRVMgXCJcbiAgICArIFwiU1lTUkVGX1JFRkVSRU5DRVNfUkVRVUlTSVRFUyBcIlxuICAgICsgXCJTWVNSRUZfUkVNT1RFX1NFUlZFUlMgXCJcbiAgICArIFwiU1lTUkVGX1JFUExJQ0FUSU9OX1NFU1NJT05TX0xPRyBcIlxuICAgICsgXCJTWVNSRUZfUkVQTElDQVRJT05fU0VTU0lPTlNfUFJPVE9DT0wgXCJcbiAgICArIFwiU1lTUkVGX1JFUE9SVFMgXCJcbiAgICArIFwiU1lTUkVGX1JPTEVTIFwiXG4gICAgKyBcIlNZU1JFRl9ST1VURV9CTE9DS19HUk9VUFMgXCJcbiAgICArIFwiU1lTUkVGX1JPVVRFX0JMT0NLUyBcIlxuICAgICsgXCJTWVNSRUZfU0NSSVBUUyBcIlxuICAgICsgXCJTWVNSRUZfU0VBUkNIRVMgXCJcbiAgICArIFwiU1lTUkVGX1NFUlZFUl9FVkVOVFMgXCJcbiAgICArIFwiU1lTUkVGX1NFUlZFUl9FVkVOVFNfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfU1RBTkRBUkRfUk9VVEVfR1JPVVBTIFwiXG4gICAgKyBcIlNZU1JFRl9TVEFOREFSRF9ST1VURVMgXCJcbiAgICArIFwiU1lTUkVGX1NUQVRVU0VTIFwiXG4gICAgKyBcIlNZU1JFRl9TWVNURU1fU0VUVElOR1MgXCJcbiAgICArIFwiU1lTUkVGX1RBU0tfSElTVE9SWSBcIlxuICAgICsgXCJTWVNSRUZfVEFTS19LSU5EX0dST1VQUyBcIlxuICAgICsgXCJTWVNSRUZfVEFTS19LSU5EUyBcIlxuICAgICsgXCJTWVNSRUZfVEFTS19SSUdIVFMgXCJcbiAgICArIFwiU1lTUkVGX1RBU0tfU0lHTkFUVVJFUyBcIlxuICAgICsgXCJTWVNSRUZfVEFTS1MgXCJcbiAgICArIFwiU1lTUkVGX1VOSVRTIFwiXG4gICAgKyBcIlNZU1JFRl9VU0VSX0dST1VQUyBcIlxuICAgICsgXCJTWVNSRUZfVVNFUl9HUk9VUFNfUkVGRVJFTkNFIFwiXG4gICAgKyBcIlNZU1JFRl9VU0VSX1NVQlNUSVRVVElPTiBcIlxuICAgICsgXCJTWVNSRUZfVVNFUlMgXCJcbiAgICArIFwiU1lTUkVGX1VTRVJTX1JFRkVSRU5DRSBcIlxuICAgICsgXCJTWVNSRUZfVklFV0VSUyBcIlxuICAgICsgXCJTWVNSRUZfV09SS0lOR19USU1FX0NBTEVOREFSUyBcIjtcblxuICAvLyBUYWJsZSBuYW1lXG4gIGNvbnN0IHRhYmxlX25hbWVfY29uc3RhbnRzID1cbiAgICBcIkFDQ0VTU19SSUdIVFNfVEFCTEVfTkFNRSBcIlxuICAgICsgXCJFRE1TX0FDQ0VTU19UQUJMRV9OQU1FIFwiXG4gICAgKyBcIkVET0NfVFlQRVNfVEFCTEVfTkFNRSBcIjtcblxuICAvLyBUZXN0XG4gIGNvbnN0IHRlc3RfY29uc3RhbnRzID1cbiAgICBcIlRFU1RfREVWX0RCX05BTUUgXCJcbiAgICArIFwiVEVTVF9ERVZfU1lTVEVNX0NPREUgXCJcbiAgICArIFwiVEVTVF9FRE1TX0RCX05BTUUgXCJcbiAgICArIFwiVEVTVF9FRE1TX01BSU5fQ09ERSBcIlxuICAgICsgXCJURVNUX0VETVNfTUFJTl9EQl9OQU1FIFwiXG4gICAgKyBcIlRFU1RfRURNU19TRUNPTkRfQ09ERSBcIlxuICAgICsgXCJURVNUX0VETVNfU0VDT05EX0RCX05BTUUgXCJcbiAgICArIFwiVEVTVF9FRE1TX1NZU1RFTV9DT0RFIFwiXG4gICAgKyBcIlRFU1RfSVNCNV9NQUlOX0NPREUgXCJcbiAgICArIFwiVEVTVF9JU0I1X1NFQ09ORF9DT0RFIFwiXG4gICAgKyBcIlRFU1RfU1FMX1NFUlZFUl8yMDA1X05BTUUgXCJcbiAgICArIFwiVEVTVF9TUUxfU0VSVkVSX05BTUUgXCI7XG5cbiAgLy8gVXNpbmcgdGhlIGRpYWxvZyB3aW5kb3dzXG4gIGNvbnN0IHVzaW5nX3RoZV9kaWFsb2dfd2luZG93c19jb25zdGFudHMgPVxuICAgIFwiQVRURU5USU9OX0NBUFRJT04gXCJcbiAgICArIFwiY2JzQ29tbWFuZExpbmtzIFwiXG4gICAgKyBcImNic0RlZmF1bHQgXCJcbiAgICArIFwiQ09ORklSTUFUSU9OX0NBUFRJT04gXCJcbiAgICArIFwiRVJST1JfQ0FQVElPTiBcIlxuICAgICsgXCJJTkZPUk1BVElPTl9DQVBUSU9OIFwiXG4gICAgKyBcIm1yQ2FuY2VsIFwiXG4gICAgKyBcIm1yT2sgXCI7XG5cbiAgLy8gVXNpbmcgdGhlIGRvY3VtZW50XG4gIGNvbnN0IHVzaW5nX3RoZV9kb2N1bWVudF9jb25zdGFudHMgPVxuICAgIFwiRURPQ19WRVJTSU9OX0FDVElWRV9TVEFHRV9DT0RFIFwiXG4gICAgKyBcIkVET0NfVkVSU0lPTl9ERVNJR05fU1RBR0VfQ09ERSBcIlxuICAgICsgXCJFRE9DX1ZFUlNJT05fT0JTT0xFVEVfU1RBR0VfQ09ERSBcIjtcblxuICAvLyBVc2luZyB0aGUgRUEgYW5kIGVuY3J5cHRpb25cbiAgY29uc3QgdXNpbmdfdGhlX0VBX2FuZF9lbmNyeXB0aW9uX2NvbnN0YW50cyA9XG4gICAgXCJjcERhdGFFbmNpcGhlcm1lbnRFbmFibGVkIFwiXG4gICAgKyBcImNwRGlnaXRhbFNpZ25hdHVyZUVuYWJsZWQgXCJcbiAgICArIFwiY3BJRCBcIlxuICAgICsgXCJjcElzc3VlciBcIlxuICAgICsgXCJjcFBsdWdpblZlcnNpb24gXCJcbiAgICArIFwiY3BTZXJpYWwgXCJcbiAgICArIFwiY3BTdWJqZWN0TmFtZSBcIlxuICAgICsgXCJjcFN1YmpTaW1wbGVOYW1lIFwiXG4gICAgKyBcImNwVmFsaWRGcm9tRGF0ZSBcIlxuICAgICsgXCJjcFZhbGlkVG9EYXRlIFwiO1xuXG4gIC8vIFVzaW5nIHRoZSBJU0JMLWVkaXRvclxuICBjb25zdCB1c2luZ190aGVfSVNCTF9lZGl0b3JfY29uc3RhbnRzID1cbiAgICBcIklTQkxfU1lOVEFYIFwiICsgXCJOT19TWU5UQVggXCIgKyBcIlhNTF9TWU5UQVggXCI7XG5cbiAgLy8gV2FpdCBibG9jayBwcm9wZXJ0aWVzXG4gIGNvbnN0IHdhaXRfYmxvY2tfcHJvcGVydGllc19jb25zdGFudHMgPVxuICAgIFwiV0FJVF9CTE9DS19BRlRFUl9GSU5JU0hfRVZFTlQgXCJcbiAgICArIFwiV0FJVF9CTE9DS19CRUZPUkVfU1RBUlRfRVZFTlQgXCJcbiAgICArIFwiV0FJVF9CTE9DS19ERUFETElORV9QUk9QRVJUWSBcIlxuICAgICsgXCJXQUlUX0JMT0NLX0lTX1JFTEFUSVZFX0RFQURMSU5FX1BST1BFUlRZIFwiXG4gICAgKyBcIldBSVRfQkxPQ0tfTkFNRV9QUk9QRVJUWSBcIlxuICAgICsgXCJXQUlUX0JMT0NLX1JFTEFUSVZFX0RFQURMSU5FX1RZUEVfUFJPUEVSVFkgXCI7XG5cbiAgLy8gU1lTUkVTIENvbW1vblxuICBjb25zdCBzeXNyZXNfY29tbW9uX2NvbnN0YW50cyA9XG4gICAgXCJTWVNSRVNfQ09NTU9OIFwiXG4gICAgKyBcIlNZU1JFU19DT05TVCBcIlxuICAgICsgXCJTWVNSRVNfTUJGVU5DIFwiXG4gICAgKyBcIlNZU1JFU19TQkRBVEEgXCJcbiAgICArIFwiU1lTUkVTX1NCR1VJIFwiXG4gICAgKyBcIlNZU1JFU19TQklOVEYgXCJcbiAgICArIFwiU1lTUkVTX1NCUkVGRFNDIFwiXG4gICAgKyBcIlNZU1JFU19TUUxFUlJPUlMgXCJcbiAgICArIFwiU1lTUkVTX1NZU0NPTVAgXCI7XG5cbiAgLy8gXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDRCID09PiBidWlsdF9pblxuICBjb25zdCBDT05TVEFOVFMgPVxuICAgIHN5c3Jlc19jb25zdGFudHNcbiAgICArIGJhc2VfY29uc3RhbnRzXG4gICAgKyBiYXNlX2dyb3VwX25hbWVfY29uc3RhbnRzXG4gICAgKyBkZWNpc2lvbl9ibG9ja19wcm9wZXJ0aWVzX2NvbnN0YW50c1xuICAgICsgZmlsZV9leHRlbnNpb25fY29uc3RhbnRzXG4gICAgKyBqb2JfYmxvY2tfcHJvcGVydGllc19jb25zdGFudHNcbiAgICArIGxhbmd1YWdlX2NvZGVfY29uc3RhbnRzXG4gICAgKyBsYXVuY2hpbmdfZXh0ZXJuYWxfYXBwbGljYXRpb25zX2NvbnN0YW50c1xuICAgICsgbGlua19raW5kX2NvbnN0YW50c1xuICAgICsgbG9ja190eXBlX2NvbnN0YW50c1xuICAgICsgbW9uaXRvcl9ibG9ja19wcm9wZXJ0aWVzX2NvbnN0YW50c1xuICAgICsgbm90aWNlX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBvYmplY3RfZXZlbnRzX2NvbnN0YW50c1xuICAgICsgb2JqZWN0X3BhcmFtc19jb25zdGFudHNcbiAgICArIG90aGVyX2NvbnN0YW50c1xuICAgICsgcHJpdmlsZWdlc19jb25zdGFudHNcbiAgICArIHBzZXVkb3JlZmVyZW5jZV9jb2RlX2NvbnN0YW50c1xuICAgICsgcmVxdWlzaXRlX0lTQkNlcnRpZmljYXRlVHlwZV92YWx1ZXNfY29uc3RhbnRzXG4gICAgKyByZXF1aXNpdGVfSVNCRURvY1N0b3JhZ2VUeXBlX3ZhbHVlc19jb25zdGFudHNcbiAgICArIHJlcXVpc2l0ZV9jb21wVHlwZTJfdmFsdWVzX2NvbnN0YW50c1xuICAgICsgcmVxdWlzaXRlX25hbWVfY29uc3RhbnRzXG4gICAgKyByZXN1bHRfY29uc3RhbnRzXG4gICAgKyBydWxlX2lkZW50aWZpY2F0aW9uX2NvbnN0YW50c1xuICAgICsgc2NyaXB0X2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBzdWJ0YXNrX2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBzeXN0ZW1fY29tcG9uZW50X2NvbnN0YW50c1xuICAgICsgc3lzdGVtX2RpYWxvZ3NfY29uc3RhbnRzXG4gICAgKyBzeXN0ZW1fcmVmZXJlbmNlX25hbWVzX2NvbnN0YW50c1xuICAgICsgdGFibGVfbmFtZV9jb25zdGFudHNcbiAgICArIHRlc3RfY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfZGlhbG9nX3dpbmRvd3NfY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfZG9jdW1lbnRfY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfRUFfYW5kX2VuY3J5cHRpb25fY29uc3RhbnRzXG4gICAgKyB1c2luZ190aGVfSVNCTF9lZGl0b3JfY29uc3RhbnRzXG4gICAgKyB3YWl0X2Jsb2NrX3Byb3BlcnRpZXNfY29uc3RhbnRzXG4gICAgKyBzeXNyZXNfY29tbW9uX2NvbnN0YW50cztcblxuICAvLyBlbnVtIFRBY2NvdW50VHlwZVxuICBjb25zdCBUQWNjb3VudFR5cGUgPSBcImF0VXNlciBhdEdyb3VwIGF0Um9sZSBcIjtcblxuICAvLyBlbnVtIFRBY3Rpb25FbmFibGVkTW9kZVxuICBjb25zdCBUQWN0aW9uRW5hYmxlZE1vZGUgPVxuICAgIFwiYWVtRW5hYmxlZEFsd2F5cyBcIlxuICAgICsgXCJhZW1EaXNhYmxlZEFsd2F5cyBcIlxuICAgICsgXCJhZW1FbmFibGVkT25Ccm93c2UgXCJcbiAgICArIFwiYWVtRW5hYmxlZE9uRWRpdCBcIlxuICAgICsgXCJhZW1EaXNhYmxlZE9uQnJvd3NlRW1wdHkgXCI7XG5cbiAgLy8gZW51bSBUQWRkUG9zaXRpb25cbiAgY29uc3QgVEFkZFBvc2l0aW9uID0gXCJhcEJlZ2luIGFwRW5kIFwiO1xuXG4gIC8vIGVudW0gVEFsaWdubWVudFxuICBjb25zdCBUQWxpZ25tZW50ID0gXCJhbExlZnQgYWxSaWdodCBcIjtcblxuICAvLyBlbnVtIFRBcmVhU2hvd01vZGVcbiAgY29uc3QgVEFyZWFTaG93TW9kZSA9XG4gICAgXCJhc21OZXZlciBcIlxuICAgICsgXCJhc21Ob0J1dEN1c3RvbWl6ZSBcIlxuICAgICsgXCJhc21Bc0xhc3RUaW1lIFwiXG4gICAgKyBcImFzbVllc0J1dEN1c3RvbWl6ZSBcIlxuICAgICsgXCJhc21BbHdheXMgXCI7XG5cbiAgLy8gZW51bSBUQ2VydGlmaWNhdGVJbnZhbGlkYXRpb25SZWFzb25cbiAgY29uc3QgVENlcnRpZmljYXRlSW52YWxpZGF0aW9uUmVhc29uID0gXCJjaXJDb21tb24gY2lyUmV2b2tlZCBcIjtcblxuICAvLyBlbnVtIFRDZXJ0aWZpY2F0ZVR5cGVcbiAgY29uc3QgVENlcnRpZmljYXRlVHlwZSA9IFwiY3RTaWduYXR1cmUgY3RFbmNvZGUgY3RTaWduYXR1cmVFbmNvZGUgXCI7XG5cbiAgLy8gZW51bSBUQ2hlY2tMaXN0Qm94SXRlbVN0YXRlXG4gIGNvbnN0IFRDaGVja0xpc3RCb3hJdGVtU3RhdGUgPSBcImNsYlVuY2hlY2tlZCBjbGJDaGVja2VkIGNsYkdyYXllZCBcIjtcblxuICAvLyBlbnVtIFRDbG9zZU9uRXNjXG4gIGNvbnN0IFRDbG9zZU9uRXNjID0gXCJjZUlTQiBjZUFsd2F5cyBjZU5ldmVyIFwiO1xuXG4gIC8vIGVudW0gVENvbXBUeXBlXG4gIGNvbnN0IFRDb21wVHlwZSA9XG4gICAgXCJjdERvY3VtZW50IFwiXG4gICAgKyBcImN0UmVmZXJlbmNlIFwiXG4gICAgKyBcImN0U2NyaXB0IFwiXG4gICAgKyBcImN0VW5rbm93biBcIlxuICAgICsgXCJjdFJlcG9ydCBcIlxuICAgICsgXCJjdERpYWxvZyBcIlxuICAgICsgXCJjdEZ1bmN0aW9uIFwiXG4gICAgKyBcImN0Rm9sZGVyIFwiXG4gICAgKyBcImN0RURvY3VtZW50IFwiXG4gICAgKyBcImN0VGFzayBcIlxuICAgICsgXCJjdEpvYiBcIlxuICAgICsgXCJjdE5vdGljZSBcIlxuICAgICsgXCJjdENvbnRyb2xKb2IgXCI7XG5cbiAgLy8gZW51bSBUQ29uZGl0aW9uRm9ybWF0XG4gIGNvbnN0IFRDb25kaXRpb25Gb3JtYXQgPSBcImNmSW50ZXJuYWwgY2ZEaXNwbGF5IFwiO1xuXG4gIC8vIGVudW0gVENvbm5lY3Rpb25JbnRlbnRcbiAgY29uc3QgVENvbm5lY3Rpb25JbnRlbnQgPSBcImNpVW5zcGVjaWZpZWQgY2lXcml0ZSBjaVJlYWQgXCI7XG5cbiAgLy8gZW51bSBUQ29udGVudEtpbmRcbiAgY29uc3QgVENvbnRlbnRLaW5kID1cbiAgICBcImNrRm9sZGVyIFwiXG4gICAgKyBcImNrRURvY3VtZW50IFwiXG4gICAgKyBcImNrVGFzayBcIlxuICAgICsgXCJja0pvYiBcIlxuICAgICsgXCJja0NvbXBvbmVudFRva2VuIFwiXG4gICAgKyBcImNrQW55IFwiXG4gICAgKyBcImNrUmVmZXJlbmNlIFwiXG4gICAgKyBcImNrU2NyaXB0IFwiXG4gICAgKyBcImNrUmVwb3J0IFwiXG4gICAgKyBcImNrRGlhbG9nIFwiO1xuXG4gIC8vIGVudW0gVENvbnRyb2xUeXBlXG4gIGNvbnN0IFRDb250cm9sVHlwZSA9XG4gICAgXCJjdElTQkxFZGl0b3IgXCJcbiAgICArIFwiY3RCZXZlbCBcIlxuICAgICsgXCJjdEJ1dHRvbiBcIlxuICAgICsgXCJjdENoZWNrTGlzdEJveCBcIlxuICAgICsgXCJjdENvbWJvQm94IFwiXG4gICAgKyBcImN0Q29tYm9FZGl0IFwiXG4gICAgKyBcImN0R3JpZCBcIlxuICAgICsgXCJjdERCQ2hlY2tCb3ggXCJcbiAgICArIFwiY3REQkNvbWJvQm94IFwiXG4gICAgKyBcImN0REJFZGl0IFwiXG4gICAgKyBcImN0REJFbGxpcHNpcyBcIlxuICAgICsgXCJjdERCTWVtbyBcIlxuICAgICsgXCJjdERCTmF2aWdhdG9yIFwiXG4gICAgKyBcImN0REJSYWRpb0dyb3VwIFwiXG4gICAgKyBcImN0REJTdGF0dXNMYWJlbCBcIlxuICAgICsgXCJjdEVkaXQgXCJcbiAgICArIFwiY3RHcm91cEJveCBcIlxuICAgICsgXCJjdElucGxhY2VIaW50IFwiXG4gICAgKyBcImN0TWVtbyBcIlxuICAgICsgXCJjdFBhbmVsIFwiXG4gICAgKyBcImN0TGlzdEJveCBcIlxuICAgICsgXCJjdFJhZGlvQnV0dG9uIFwiXG4gICAgKyBcImN0UmljaEVkaXQgXCJcbiAgICArIFwiY3RUYWJTaGVldCBcIlxuICAgICsgXCJjdFdlYkJyb3dzZXIgXCJcbiAgICArIFwiY3RJbWFnZSBcIlxuICAgICsgXCJjdEh5cGVyTGluayBcIlxuICAgICsgXCJjdExhYmVsIFwiXG4gICAgKyBcImN0REJNdWx0aUVsbGlwc2lzIFwiXG4gICAgKyBcImN0UmliYm9uIFwiXG4gICAgKyBcImN0UmljaFZpZXcgXCJcbiAgICArIFwiY3RJbm5lclBhbmVsIFwiXG4gICAgKyBcImN0UGFuZWxHcm91cCBcIlxuICAgICsgXCJjdEJpdEJ1dHRvbiBcIjtcblxuICAvLyBlbnVtIFRDcml0ZXJpb25Db250ZW50VHlwZVxuICBjb25zdCBUQ3JpdGVyaW9uQ29udGVudFR5cGUgPVxuICAgIFwiY2N0RGF0ZSBcIlxuICAgICsgXCJjY3RJbnRlZ2VyIFwiXG4gICAgKyBcImNjdE51bWVyaWMgXCJcbiAgICArIFwiY2N0UGljayBcIlxuICAgICsgXCJjY3RSZWZlcmVuY2UgXCJcbiAgICArIFwiY2N0U3RyaW5nIFwiXG4gICAgKyBcImNjdFRleHQgXCI7XG5cbiAgLy8gZW51bSBUQ3VsdHVyZVR5cGVcbiAgY29uc3QgVEN1bHR1cmVUeXBlID0gXCJjbHRJbnRlcm5hbCBjbHRQcmltYXJ5IGNsdEdVSSBcIjtcblxuICAvLyBlbnVtIFREYXRhU2V0RXZlbnRUeXBlXG4gIGNvbnN0IFREYXRhU2V0RXZlbnRUeXBlID1cbiAgICBcImRzZUJlZm9yZU9wZW4gXCJcbiAgICArIFwiZHNlQWZ0ZXJPcGVuIFwiXG4gICAgKyBcImRzZUJlZm9yZUNsb3NlIFwiXG4gICAgKyBcImRzZUFmdGVyQ2xvc2UgXCJcbiAgICArIFwiZHNlT25WYWxpZERlbGV0ZSBcIlxuICAgICsgXCJkc2VCZWZvcmVEZWxldGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJEZWxldGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJEZWxldGVPdXRPZlRyYW5zYWN0aW9uIFwiXG4gICAgKyBcImRzZU9uRGVsZXRlRXJyb3IgXCJcbiAgICArIFwiZHNlQmVmb3JlSW5zZXJ0IFwiXG4gICAgKyBcImRzZUFmdGVySW5zZXJ0IFwiXG4gICAgKyBcImRzZU9uVmFsaWRVcGRhdGUgXCJcbiAgICArIFwiZHNlQmVmb3JlVXBkYXRlIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlUmF0aWZpZWRSZWNvcmQgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGUgXCJcbiAgICArIFwiZHNlQWZ0ZXJVcGRhdGVPdXRPZlRyYW5zYWN0aW9uIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlRXJyb3IgXCJcbiAgICArIFwiZHNlQWZ0ZXJTY3JvbGwgXCJcbiAgICArIFwiZHNlT25PcGVuUmVjb3JkIFwiXG4gICAgKyBcImRzZU9uQ2xvc2VSZWNvcmQgXCJcbiAgICArIFwiZHNlQmVmb3JlQ2FuY2VsIFwiXG4gICAgKyBcImRzZUFmdGVyQ2FuY2VsIFwiXG4gICAgKyBcImRzZU9uVXBkYXRlRGVhZGxvY2tFcnJvciBcIlxuICAgICsgXCJkc2VCZWZvcmVEZXRhaWxVcGRhdGUgXCJcbiAgICArIFwiZHNlT25QcmVwYXJlVXBkYXRlIFwiXG4gICAgKyBcImRzZU9uQW55UmVxdWlzaXRlQ2hhbmdlIFwiO1xuXG4gIC8vIGVudW0gVERhdGFTZXRTdGF0ZVxuICBjb25zdCBURGF0YVNldFN0YXRlID0gXCJkc3NFZGl0IGRzc0luc2VydCBkc3NCcm93c2UgZHNzSW5BY3RpdmUgXCI7XG5cbiAgLy8gZW51bSBURGF0ZUZvcm1hdFR5cGVcbiAgY29uc3QgVERhdGVGb3JtYXRUeXBlID0gXCJkZnREYXRlIGRmdFNob3J0RGF0ZSBkZnREYXRlVGltZSBkZnRUaW1lU3RhbXAgXCI7XG5cbiAgLy8gZW51bSBURGF0ZU9mZnNldFR5cGVcbiAgY29uc3QgVERhdGVPZmZzZXRUeXBlID0gXCJkb3REYXlzIGRvdEhvdXJzIGRvdE1pbnV0ZXMgZG90U2Vjb25kcyBcIjtcblxuICAvLyBlbnVtIFREYXRlVGltZUtpbmRcbiAgY29uc3QgVERhdGVUaW1lS2luZCA9IFwiZHRrbmRMb2NhbCBkdGtuZFVUQyBcIjtcblxuICAvLyBlbnVtIFREZWFBY2Nlc3NSaWdodHNcbiAgY29uc3QgVERlYUFjY2Vzc1JpZ2h0cyA9IFwiYXJOb25lIGFyVmlldyBhckVkaXQgYXJGdWxsIFwiO1xuXG4gIC8vIGVudW0gVERvY3VtZW50RGVmYXVsdEFjdGlvblxuICBjb25zdCBURG9jdW1lbnREZWZhdWx0QWN0aW9uID0gXCJkZGFWaWV3IGRkYUVkaXQgXCI7XG5cbiAgLy8gZW51bSBURWRpdE1vZGVcbiAgY29uc3QgVEVkaXRNb2RlID1cbiAgICBcImVtTG9jayBcIlxuICAgICsgXCJlbUVkaXQgXCJcbiAgICArIFwiZW1TaWduIFwiXG4gICAgKyBcImVtRXhwb3J0V2l0aExvY2sgXCJcbiAgICArIFwiZW1JbXBvcnRXaXRoVW5sb2NrIFwiXG4gICAgKyBcImVtQ2hhbmdlVmVyc2lvbk5vdGUgXCJcbiAgICArIFwiZW1PcGVuRm9yTW9kaWZ5IFwiXG4gICAgKyBcImVtQ2hhbmdlTGlmZVN0YWdlIFwiXG4gICAgKyBcImVtRGVsZXRlIFwiXG4gICAgKyBcImVtQ3JlYXRlVmVyc2lvbiBcIlxuICAgICsgXCJlbUltcG9ydCBcIlxuICAgICsgXCJlbVVubG9ja0V4cG9ydGVkV2l0aExvY2sgXCJcbiAgICArIFwiZW1TdGFydCBcIlxuICAgICsgXCJlbUFib3J0IFwiXG4gICAgKyBcImVtUmVJbml0IFwiXG4gICAgKyBcImVtTWFya0FzUmVhZGVkIFwiXG4gICAgKyBcImVtTWFya0FzVW5yZWFkZWQgXCJcbiAgICArIFwiZW1QZXJmb3JtIFwiXG4gICAgKyBcImVtQWNjZXB0IFwiXG4gICAgKyBcImVtUmVzdW1lIFwiXG4gICAgKyBcImVtQ2hhbmdlUmlnaHRzIFwiXG4gICAgKyBcImVtRWRpdFJvdXRlIFwiXG4gICAgKyBcImVtRWRpdE9ic2VydmVyIFwiXG4gICAgKyBcImVtUmVjb3ZlcnlGcm9tTG9jYWxDb3B5IFwiXG4gICAgKyBcImVtQ2hhbmdlV29ya0FjY2Vzc1R5cGUgXCJcbiAgICArIFwiZW1DaGFuZ2VFbmNvZGVUeXBlVG9DZXJ0aWZpY2F0ZSBcIlxuICAgICsgXCJlbUNoYW5nZUVuY29kZVR5cGVUb1Bhc3N3b3JkIFwiXG4gICAgKyBcImVtQ2hhbmdlRW5jb2RlVHlwZVRvTm9uZSBcIlxuICAgICsgXCJlbUNoYW5nZUVuY29kZVR5cGVUb0NlcnRpZmljYXRlUGFzc3dvcmQgXCJcbiAgICArIFwiZW1DaGFuZ2VTdGFuZGFyZFJvdXRlIFwiXG4gICAgKyBcImVtR2V0VGV4dCBcIlxuICAgICsgXCJlbU9wZW5Gb3JWaWV3IFwiXG4gICAgKyBcImVtTW92ZVRvU3RvcmFnZSBcIlxuICAgICsgXCJlbUNyZWF0ZU9iamVjdCBcIlxuICAgICsgXCJlbUNoYW5nZVZlcnNpb25IaWRkZW4gXCJcbiAgICArIFwiZW1EZWxldGVWZXJzaW9uIFwiXG4gICAgKyBcImVtQ2hhbmdlTGlmZUN5Y2xlU3RhZ2UgXCJcbiAgICArIFwiZW1BcHByb3ZpbmdTaWduIFwiXG4gICAgKyBcImVtRXhwb3J0IFwiXG4gICAgKyBcImVtQ29udGludWUgXCJcbiAgICArIFwiZW1Mb2NrRnJvbUVkaXQgXCJcbiAgICArIFwiZW1VbkxvY2tGb3JFZGl0IFwiXG4gICAgKyBcImVtTG9ja0ZvclNlcnZlciBcIlxuICAgICsgXCJlbVVubG9ja0Zyb21TZXJ2ZXIgXCJcbiAgICArIFwiZW1EZWxlZ2F0ZUFjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJlbVJlRW5jb2RlIFwiO1xuXG4gIC8vIGVudW0gVEVkaXRvckNsb3NlT2JzZXJ2VHlwZVxuICBjb25zdCBURWRpdG9yQ2xvc2VPYnNlcnZUeXBlID0gXCJlY290RmlsZSBlY290UHJvY2VzcyBcIjtcblxuICAvLyBlbnVtIFRFZG1zQXBwbGljYXRpb25BY3Rpb25cbiAgY29uc3QgVEVkbXNBcHBsaWNhdGlvbkFjdGlvbiA9IFwiZWFHZXQgZWFDb3B5IGVhQ3JlYXRlIGVhQ3JlYXRlU3RhbmRhcmRSb3V0ZSBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRMb2NrVHlwZVxuICBjb25zdCBURURvY3VtZW50TG9ja1R5cGUgPSBcImVkbHRBbGwgZWRsdE5vdGhpbmcgZWRsdFF1ZXJ5IFwiO1xuXG4gIC8vIGVudW0gVEVEb2N1bWVudFN0ZXBTaG93TW9kZVxuICBjb25zdCBURURvY3VtZW50U3RlcFNob3dNb2RlID0gXCJlc3NtVGV4dCBlc3NtQ2FyZCBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRTdGVwVmVyc2lvblR5cGVcbiAgY29uc3QgVEVEb2N1bWVudFN0ZXBWZXJzaW9uVHlwZSA9IFwiZXN2dExhc3QgZXN2dExhc3RBY3RpdmUgZXN2dFNwZWNpZmllZCBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRTdG9yYWdlRnVuY3Rpb25cbiAgY29uc3QgVEVEb2N1bWVudFN0b3JhZ2VGdW5jdGlvbiA9IFwiZWRzZkV4ZWN1dGl2ZSBlZHNmQXJjaGl2ZSBcIjtcblxuICAvLyBlbnVtIFRFRG9jdW1lbnRTdG9yYWdlVHlwZVxuICBjb25zdCBURURvY3VtZW50U3RvcmFnZVR5cGUgPSBcImVkc3RTUUxTZXJ2ZXIgZWRzdEZpbGUgXCI7XG5cbiAgLy8gZW51bSBURURvY3VtZW50VmVyc2lvblNvdXJjZVR5cGVcbiAgY29uc3QgVEVEb2N1bWVudFZlcnNpb25Tb3VyY2VUeXBlID1cbiAgICBcImVkdnN0Tm9uZSBlZHZzdEVEb2N1bWVudFZlcnNpb25Db3B5IGVkdnN0RmlsZSBlZHZzdFRlbXBsYXRlIGVkdnN0U2Nhbm5lZEZpbGUgXCI7XG5cbiAgLy8gZW51bSBURURvY3VtZW50VmVyc2lvblN0YXRlXG4gIGNvbnN0IFRFRG9jdW1lbnRWZXJzaW9uU3RhdGUgPSBcInZzRGVmYXVsdCB2c0Rlc2lnbiB2c0FjdGl2ZSB2c09ic29sZXRlIFwiO1xuXG4gIC8vIGVudW0gVEVuY29kZVR5cGVcbiAgY29uc3QgVEVuY29kZVR5cGUgPSBcImV0Tm9uZSBldENlcnRpZmljYXRlIGV0UGFzc3dvcmQgZXRDZXJ0aWZpY2F0ZVBhc3N3b3JkIFwiO1xuXG4gIC8vIGVudW0gVEV4Y2VwdGlvbkNhdGVnb3J5XG4gIGNvbnN0IFRFeGNlcHRpb25DYXRlZ29yeSA9IFwiZWNFeGNlcHRpb24gZWNXYXJuaW5nIGVjSW5mb3JtYXRpb24gXCI7XG5cbiAgLy8gZW51bSBURXhwb3J0ZWRTaWduYXR1cmVzVHlwZVxuICBjb25zdCBURXhwb3J0ZWRTaWduYXR1cmVzVHlwZSA9IFwiZXN0QWxsIGVzdEFwcHJvdmluZ09ubHkgXCI7XG5cbiAgLy8gZW51bSBURXhwb3J0ZWRWZXJzaW9uVHlwZVxuICBjb25zdCBURXhwb3J0ZWRWZXJzaW9uVHlwZSA9IFwiZXZ0TGFzdCBldnRMYXN0QWN0aXZlIGV2dFF1ZXJ5IFwiO1xuXG4gIC8vIGVudW0gVEZpZWxkRGF0YVR5cGVcbiAgY29uc3QgVEZpZWxkRGF0YVR5cGUgPVxuICAgIFwiZmR0U3RyaW5nIFwiXG4gICAgKyBcImZkdE51bWVyaWMgXCJcbiAgICArIFwiZmR0SW50ZWdlciBcIlxuICAgICsgXCJmZHREYXRlIFwiXG4gICAgKyBcImZkdFRleHQgXCJcbiAgICArIFwiZmR0VW5rbm93biBcIlxuICAgICsgXCJmZHRXaWRlU3RyaW5nIFwiXG4gICAgKyBcImZkdExhcmdlSW50ZWdlciBcIjtcblxuICAvLyBlbnVtIFRGb2xkZXJUeXBlXG4gIGNvbnN0IFRGb2xkZXJUeXBlID1cbiAgICBcImZ0SW5ib3ggXCJcbiAgICArIFwiZnRPdXRib3ggXCJcbiAgICArIFwiZnRGYXZvcml0ZXMgXCJcbiAgICArIFwiZnRDb21tb25Gb2xkZXIgXCJcbiAgICArIFwiZnRVc2VyRm9sZGVyIFwiXG4gICAgKyBcImZ0Q29tcG9uZW50cyBcIlxuICAgICsgXCJmdFF1aWNrTGF1bmNoIFwiXG4gICAgKyBcImZ0U2hvcnRjdXRzIFwiXG4gICAgKyBcImZ0U2VhcmNoIFwiO1xuXG4gIC8vIGVudW0gVEdyaWRSb3dIZWlnaHRcbiAgY29uc3QgVEdyaWRSb3dIZWlnaHQgPSBcImdyaEF1dG8gXCIgKyBcImdyaFgxIFwiICsgXCJncmhYMiBcIiArIFwiZ3JoWDMgXCI7XG5cbiAgLy8gZW51bSBUSHlwZXJsaW5rVHlwZVxuICBjb25zdCBUSHlwZXJsaW5rVHlwZSA9IFwiaGx0VGV4dCBcIiArIFwiaGx0UlRGIFwiICsgXCJobHRIVE1MIFwiO1xuXG4gIC8vIGVudW0gVEltYWdlRmlsZUZvcm1hdFxuICBjb25zdCBUSW1hZ2VGaWxlRm9ybWF0ID1cbiAgICBcImlmZkJNUCBcIlxuICAgICsgXCJpZmZKUEVHIFwiXG4gICAgKyBcImlmZk11bHRpUGFnZVRJRkYgXCJcbiAgICArIFwiaWZmU2luZ2xlUGFnZVRJRkYgXCJcbiAgICArIFwiaWZmVElGRiBcIlxuICAgICsgXCJpZmZQTkcgXCI7XG5cbiAgLy8gZW51bSBUSW1hZ2VNb2RlXG4gIGNvbnN0IFRJbWFnZU1vZGUgPSBcImltOGJHcmF5c2NhbGUgXCIgKyBcImltMjRiUkdCIFwiICsgXCJpbTFiTW9ub2Nocm9tZSBcIjtcblxuICAvLyBlbnVtIFRJbWFnZVR5cGVcbiAgY29uc3QgVEltYWdlVHlwZSA9IFwiaXRCTVAgXCIgKyBcIml0SlBFRyBcIiArIFwiaXRXTUYgXCIgKyBcIml0UE5HIFwiO1xuXG4gIC8vIGVudW0gVElucGxhY2VIaW50S2luZFxuICBjb25zdCBUSW5wbGFjZUhpbnRLaW5kID1cbiAgICBcImlraEluZm9ybWF0aW9uIFwiICsgXCJpa2hXYXJuaW5nIFwiICsgXCJpa2hFcnJvciBcIiArIFwiaWtoTm9JY29uIFwiO1xuXG4gIC8vIGVudW0gVElTQkxDb250ZXh0XG4gIGNvbnN0IFRJU0JMQ29udGV4dCA9XG4gICAgXCJpY1Vua25vd24gXCJcbiAgICArIFwiaWNTY3JpcHQgXCJcbiAgICArIFwiaWNGdW5jdGlvbiBcIlxuICAgICsgXCJpY0ludGVncmF0ZWRSZXBvcnQgXCJcbiAgICArIFwiaWNBbmFseXRpY1JlcG9ydCBcIlxuICAgICsgXCJpY0RhdGFTZXRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNBY3Rpb25IYW5kbGVyIFwiXG4gICAgKyBcImljRm9ybUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0xvb2tVcEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1JlcXVpc2l0ZUNoYW5nZUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0JlZm9yZVNlYXJjaEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1JvbGVDYWxjdWxhdGlvbiBcIlxuICAgICsgXCJpY1NlbGVjdFJvdXRlRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljQmxvY2tQcm9wZXJ0eUNhbGN1bGF0aW9uIFwiXG4gICAgKyBcImljQmxvY2tRdWVyeVBhcmFtc0V2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0NoYW5nZVNlYXJjaFJlc3VsdEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0Jsb2NrRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljU3ViVGFza0luaXRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNFRG9jRGF0YVNldEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0VEb2NMb29rVXBFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNFRG9jQWN0aW9uSGFuZGxlciBcIlxuICAgICsgXCJpY0VEb2NGb3JtRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljRURvY1JlcXVpc2l0ZUNoYW5nZUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1N0cnVjdHVyZWRDb252ZXJzaW9uUnVsZSBcIlxuICAgICsgXCJpY1N0cnVjdHVyZWRDb252ZXJzaW9uRXZlbnRCZWZvcmUgXCJcbiAgICArIFwiaWNTdHJ1Y3R1cmVkQ29udmVyc2lvbkV2ZW50QWZ0ZXIgXCJcbiAgICArIFwiaWNXaXphcmRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNXaXphcmRGaW5pc2hFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNXaXphcmRTdGVwRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljV2l6YXJkU3RlcEZpbmlzaEV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1dpemFyZEFjdGlvbkVuYWJsZUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1dpemFyZEFjdGlvbkV4ZWN1dGVFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNDcmVhdGVKb2JzSGFuZGxlciBcIlxuICAgICsgXCJpY0NyZWF0ZU5vdGljZXNIYW5kbGVyIFwiXG4gICAgKyBcImljQmVmb3JlTG9va1VwRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljQWZ0ZXJMb29rVXBFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNUYXNrQWJvcnRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNXb3JrZmxvd0Jsb2NrQWN0aW9uSGFuZGxlciBcIlxuICAgICsgXCJpY0RpYWxvZ0RhdGFTZXRFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNEaWFsb2dBY3Rpb25IYW5kbGVyIFwiXG4gICAgKyBcImljRGlhbG9nTG9va1VwRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljRGlhbG9nUmVxdWlzaXRlQ2hhbmdlRXZlbnRIYW5kbGVyIFwiXG4gICAgKyBcImljRGlhbG9nRm9ybUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY0RpYWxvZ1ZhbGlkQ2xvc2VFdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNCbG9ja0Zvcm1FdmVudEhhbmRsZXIgXCJcbiAgICArIFwiaWNUYXNrRm9ybUV2ZW50SGFuZGxlciBcIlxuICAgICsgXCJpY1JlZmVyZW5jZU1ldGhvZCBcIlxuICAgICsgXCJpY0VEb2NNZXRob2QgXCJcbiAgICArIFwiaWNEaWFsb2dNZXRob2QgXCJcbiAgICArIFwiaWNQcm9jZXNzTWVzc2FnZUhhbmRsZXIgXCI7XG5cbiAgLy8gZW51bSBUSXRlbVNob3dcbiAgY29uc3QgVEl0ZW1TaG93ID0gXCJpc1Nob3cgXCIgKyBcImlzSGlkZSBcIiArIFwiaXNCeVVzZXJTZXR0aW5ncyBcIjtcblxuICAvLyBlbnVtIFRKb2JLaW5kXG4gIGNvbnN0IFRKb2JLaW5kID0gXCJqa0pvYiBcIiArIFwiamtOb3RpY2UgXCIgKyBcImprQ29udHJvbEpvYiBcIjtcblxuICAvLyBlbnVtIFRKb2luVHlwZVxuICBjb25zdCBUSm9pblR5cGUgPSBcImp0SW5uZXIgXCIgKyBcImp0TGVmdCBcIiArIFwianRSaWdodCBcIiArIFwianRGdWxsIFwiICsgXCJqdENyb3NzIFwiO1xuXG4gIC8vIGVudW0gVExhYmVsUG9zXG4gIGNvbnN0IFRMYWJlbFBvcyA9IFwibGJwQWJvdmUgXCIgKyBcImxicEJlbG93IFwiICsgXCJsYnBMZWZ0IFwiICsgXCJsYnBSaWdodCBcIjtcblxuICAvLyBlbnVtIFRMaWNlbnNpbmdUeXBlXG4gIGNvbnN0IFRMaWNlbnNpbmdUeXBlID0gXCJlbHRQZXJDb25uZWN0aW9uIFwiICsgXCJlbHRQZXJVc2VyIFwiO1xuXG4gIC8vIGVudW0gVExpZmVDeWNsZVN0YWdlRm9udENvbG9yXG4gIGNvbnN0IFRMaWZlQ3ljbGVTdGFnZUZvbnRDb2xvciA9XG4gICAgXCJzZmNVbmRlZmluZWQgXCJcbiAgICArIFwic2ZjQmxhY2sgXCJcbiAgICArIFwic2ZjR3JlZW4gXCJcbiAgICArIFwic2ZjUmVkIFwiXG4gICAgKyBcInNmY0JsdWUgXCJcbiAgICArIFwic2ZjT3JhbmdlIFwiXG4gICAgKyBcInNmY0xpbGFjIFwiO1xuXG4gIC8vIGVudW0gVExpZmVDeWNsZVN0YWdlRm9udFN0eWxlXG4gIGNvbnN0IFRMaWZlQ3ljbGVTdGFnZUZvbnRTdHlsZSA9IFwic2ZzSXRhbGljIFwiICsgXCJzZnNTdHJpa2VvdXQgXCIgKyBcInNmc05vcm1hbCBcIjtcblxuICAvLyBlbnVtIFRMb2NrYWJsZURldmVsb3BtZW50Q29tcG9uZW50VHlwZVxuICBjb25zdCBUTG9ja2FibGVEZXZlbG9wbWVudENvbXBvbmVudFR5cGUgPVxuICAgIFwibGRjdFN0YW5kYXJkUm91dGUgXCJcbiAgICArIFwibGRjdFdpemFyZCBcIlxuICAgICsgXCJsZGN0U2NyaXB0IFwiXG4gICAgKyBcImxkY3RGdW5jdGlvbiBcIlxuICAgICsgXCJsZGN0Um91dGVCbG9jayBcIlxuICAgICsgXCJsZGN0SW50ZWdyYXRlZFJlcG9ydCBcIlxuICAgICsgXCJsZGN0QW5hbHl0aWNSZXBvcnQgXCJcbiAgICArIFwibGRjdFJlZmVyZW5jZVR5cGUgXCJcbiAgICArIFwibGRjdEVEb2N1bWVudFR5cGUgXCJcbiAgICArIFwibGRjdERpYWxvZyBcIlxuICAgICsgXCJsZGN0U2VydmVyRXZlbnRzIFwiO1xuXG4gIC8vIGVudW0gVE1heFJlY29yZENvdW50UmVzdHJpY3Rpb25UeXBlXG4gIGNvbnN0IFRNYXhSZWNvcmRDb3VudFJlc3RyaWN0aW9uVHlwZSA9XG4gICAgXCJtcmNydE5vbmUgXCIgKyBcIm1yY3J0VXNlciBcIiArIFwibXJjcnRNYXhpbWFsIFwiICsgXCJtcmNydEN1c3RvbSBcIjtcblxuICAvLyBlbnVtIFRSYW5nZVZhbHVlVHlwZVxuICBjb25zdCBUUmFuZ2VWYWx1ZVR5cGUgPVxuICAgIFwidnRFcXVhbCBcIiArIFwidnRHcmVhdGVyT3JFcXVhbCBcIiArIFwidnRMZXNzT3JFcXVhbCBcIiArIFwidnRSYW5nZSBcIjtcblxuICAvLyBlbnVtIFRSZWxhdGl2ZURhdGVcbiAgY29uc3QgVFJlbGF0aXZlRGF0ZSA9XG4gICAgXCJyZFllc3RlcmRheSBcIlxuICAgICsgXCJyZFRvZGF5IFwiXG4gICAgKyBcInJkVG9tb3Jyb3cgXCJcbiAgICArIFwicmRUaGlzV2VlayBcIlxuICAgICsgXCJyZFRoaXNNb250aCBcIlxuICAgICsgXCJyZFRoaXNZZWFyIFwiXG4gICAgKyBcInJkTmV4dE1vbnRoIFwiXG4gICAgKyBcInJkTmV4dFdlZWsgXCJcbiAgICArIFwicmRMYXN0V2VlayBcIlxuICAgICsgXCJyZExhc3RNb250aCBcIjtcblxuICAvLyBlbnVtIFRSZXBvcnREZXN0aW5hdGlvblxuICBjb25zdCBUUmVwb3J0RGVzdGluYXRpb24gPSBcInJkV2luZG93IFwiICsgXCJyZEZpbGUgXCIgKyBcInJkUHJpbnRlciBcIjtcblxuICAvLyBlbnVtIFRSZXFEYXRhVHlwZVxuICBjb25zdCBUUmVxRGF0YVR5cGUgPVxuICAgIFwicmR0U3RyaW5nIFwiXG4gICAgKyBcInJkdE51bWVyaWMgXCJcbiAgICArIFwicmR0SW50ZWdlciBcIlxuICAgICsgXCJyZHREYXRlIFwiXG4gICAgKyBcInJkdFJlZmVyZW5jZSBcIlxuICAgICsgXCJyZHRBY2NvdW50IFwiXG4gICAgKyBcInJkdFRleHQgXCJcbiAgICArIFwicmR0UGljayBcIlxuICAgICsgXCJyZHRVbmtub3duIFwiXG4gICAgKyBcInJkdExhcmdlSW50ZWdlciBcIlxuICAgICsgXCJyZHREb2N1bWVudCBcIjtcblxuICAvLyBlbnVtIFRSZXF1aXNpdGVFdmVudFR5cGVcbiAgY29uc3QgVFJlcXVpc2l0ZUV2ZW50VHlwZSA9IFwicmVPbkNoYW5nZSBcIiArIFwicmVPbkNoYW5nZVZhbHVlcyBcIjtcblxuICAvLyBlbnVtIFRTQlRpbWVUeXBlXG4gIGNvbnN0IFRTQlRpbWVUeXBlID0gXCJ0dEdsb2JhbCBcIiArIFwidHRMb2NhbCBcIiArIFwidHRVc2VyIFwiICsgXCJ0dFN5c3RlbSBcIjtcblxuICAvLyBlbnVtIFRTZWFyY2hTaG93TW9kZVxuICBjb25zdCBUU2VhcmNoU2hvd01vZGUgPVxuICAgIFwic3NtQnJvd3NlIFwiICsgXCJzc21TZWxlY3QgXCIgKyBcInNzbU11bHRpU2VsZWN0IFwiICsgXCJzc21Ccm93c2VNb2RhbCBcIjtcblxuICAvLyBlbnVtIFRTZWxlY3RNb2RlXG4gIGNvbnN0IFRTZWxlY3RNb2RlID0gXCJzbVNlbGVjdCBcIiArIFwic21MaWtlIFwiICsgXCJzbUNhcmQgXCI7XG5cbiAgLy8gZW51bSBUU2lnbmF0dXJlVHlwZVxuICBjb25zdCBUU2lnbmF0dXJlVHlwZSA9IFwic3ROb25lIFwiICsgXCJzdEF1dGhlbnRpY2F0aW5nIFwiICsgXCJzdEFwcHJvdmluZyBcIjtcblxuICAvLyBlbnVtIFRTaWduZXJDb250ZW50VHlwZVxuICBjb25zdCBUU2lnbmVyQ29udGVudFR5cGUgPSBcInNjdFN0cmluZyBcIiArIFwic2N0U3RyZWFtIFwiO1xuXG4gIC8vIGVudW0gVFN0cmluZ3NTb3J0VHlwZVxuICBjb25zdCBUU3RyaW5nc1NvcnRUeXBlID0gXCJzc3RBbnNpU29ydCBcIiArIFwic3N0TmF0dXJhbFNvcnQgXCI7XG5cbiAgLy8gZW51bSBUU3RyaW5nVmFsdWVUeXBlXG4gIGNvbnN0IFRTdHJpbmdWYWx1ZVR5cGUgPSBcInN2dEVxdWFsIFwiICsgXCJzdnRDb250YWluIFwiO1xuXG4gIC8vIGVudW0gVFN0cnVjdHVyZWRPYmplY3RBdHRyaWJ1dGVUeXBlXG4gIGNvbnN0IFRTdHJ1Y3R1cmVkT2JqZWN0QXR0cmlidXRlVHlwZSA9XG4gICAgXCJzb2F0U3RyaW5nIFwiXG4gICAgKyBcInNvYXROdW1lcmljIFwiXG4gICAgKyBcInNvYXRJbnRlZ2VyIFwiXG4gICAgKyBcInNvYXREYXRldGltZSBcIlxuICAgICsgXCJzb2F0UmVmZXJlbmNlUmVjb3JkIFwiXG4gICAgKyBcInNvYXRUZXh0IFwiXG4gICAgKyBcInNvYXRQaWNrIFwiXG4gICAgKyBcInNvYXRCb29sZWFuIFwiXG4gICAgKyBcInNvYXRFRG9jdW1lbnQgXCJcbiAgICArIFwic29hdEFjY291bnQgXCJcbiAgICArIFwic29hdEludGVnZXJDb2xsZWN0aW9uIFwiXG4gICAgKyBcInNvYXROdW1lcmljQ29sbGVjdGlvbiBcIlxuICAgICsgXCJzb2F0U3RyaW5nQ29sbGVjdGlvbiBcIlxuICAgICsgXCJzb2F0UGlja0NvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdERhdGV0aW1lQ29sbGVjdGlvbiBcIlxuICAgICsgXCJzb2F0Qm9vbGVhbkNvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdFJlZmVyZW5jZVJlY29yZENvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdEVEb2N1bWVudENvbGxlY3Rpb24gXCJcbiAgICArIFwic29hdEFjY291bnRDb2xsZWN0aW9uIFwiXG4gICAgKyBcInNvYXRDb250ZW50cyBcIlxuICAgICsgXCJzb2F0VW5rbm93biBcIjtcblxuICAvLyBlbnVtIFRUYXNrQWJvcnRSZWFzb25cbiAgY29uc3QgVFRhc2tBYm9ydFJlYXNvbiA9IFwidGFyQWJvcnRCeVVzZXIgXCIgKyBcInRhckFib3J0QnlXb3JrZmxvd0V4Y2VwdGlvbiBcIjtcblxuICAvLyBlbnVtIFRUZXh0VmFsdWVUeXBlXG4gIGNvbnN0IFRUZXh0VmFsdWVUeXBlID0gXCJ0dnRBbGxXb3JkcyBcIiArIFwidHZ0RXhhY3RQaHJhc2UgXCIgKyBcInR2dEFueVdvcmQgXCI7XG5cbiAgLy8gZW51bSBUVXNlck9iamVjdFN0YXR1c1xuICBjb25zdCBUVXNlck9iamVjdFN0YXR1cyA9XG4gICAgXCJ1c05vbmUgXCJcbiAgICArIFwidXNDb21wbGV0ZWQgXCJcbiAgICArIFwidXNSZWRTcXVhcmUgXCJcbiAgICArIFwidXNCbHVlU3F1YXJlIFwiXG4gICAgKyBcInVzWWVsbG93U3F1YXJlIFwiXG4gICAgKyBcInVzR3JlZW5TcXVhcmUgXCJcbiAgICArIFwidXNPcmFuZ2VTcXVhcmUgXCJcbiAgICArIFwidXNQdXJwbGVTcXVhcmUgXCJcbiAgICArIFwidXNGb2xsb3dVcCBcIjtcblxuICAvLyBlbnVtIFRVc2VyVHlwZVxuICBjb25zdCBUVXNlclR5cGUgPVxuICAgIFwidXRVbmtub3duIFwiXG4gICAgKyBcInV0VXNlciBcIlxuICAgICsgXCJ1dERldmVsb3BlciBcIlxuICAgICsgXCJ1dEFkbWluaXN0cmF0b3IgXCJcbiAgICArIFwidXRTeXN0ZW1EZXZlbG9wZXIgXCJcbiAgICArIFwidXREaXNjb25uZWN0ZWQgXCI7XG5cbiAgLy8gZW51bSBUVmFsdWVzQnVpbGRUeXBlXG4gIGNvbnN0IFRWYWx1ZXNCdWlsZFR5cGUgPVxuICAgIFwiYnRBbmQgXCIgKyBcImJ0RGV0YWlsQW5kIFwiICsgXCJidE9yIFwiICsgXCJidE5vdE9yIFwiICsgXCJidE9ubHkgXCI7XG5cbiAgLy8gZW51bSBUVmlld01vZGVcbiAgY29uc3QgVFZpZXdNb2RlID0gXCJ2bVZpZXcgXCIgKyBcInZtU2VsZWN0IFwiICsgXCJ2bU5hdmlnYXRpb24gXCI7XG5cbiAgLy8gZW51bSBUVmlld1NlbGVjdGlvbk1vZGVcbiAgY29uc3QgVFZpZXdTZWxlY3Rpb25Nb2RlID1cbiAgICBcInZzbVNpbmdsZSBcIiArIFwidnNtTXVsdGlwbGUgXCIgKyBcInZzbU11bHRpcGxlQ2hlY2sgXCIgKyBcInZzbU5vU2VsZWN0aW9uIFwiO1xuXG4gIC8vIGVudW0gVFdpemFyZEFjdGlvblR5cGVcbiAgY29uc3QgVFdpemFyZEFjdGlvblR5cGUgPVxuICAgIFwid2ZhdFByZXZpb3VzIFwiICsgXCJ3ZmF0TmV4dCBcIiArIFwid2ZhdENhbmNlbCBcIiArIFwid2ZhdEZpbmlzaCBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRGb3JtRWxlbWVudFByb3BlcnR5XG4gIGNvbnN0IFRXaXphcmRGb3JtRWxlbWVudFByb3BlcnR5ID1cbiAgICBcIndmZXBVbmRlZmluZWQgXCJcbiAgICArIFwid2ZlcFRleHQzIFwiXG4gICAgKyBcIndmZXBUZXh0NiBcIlxuICAgICsgXCJ3ZmVwVGV4dDkgXCJcbiAgICArIFwid2ZlcFNwaW5FZGl0IFwiXG4gICAgKyBcIndmZXBEcm9wRG93biBcIlxuICAgICsgXCJ3ZmVwUmFkaW9Hcm91cCBcIlxuICAgICsgXCJ3ZmVwRmxhZyBcIlxuICAgICsgXCJ3ZmVwVGV4dDEyIFwiXG4gICAgKyBcIndmZXBUZXh0MTUgXCJcbiAgICArIFwid2ZlcFRleHQxOCBcIlxuICAgICsgXCJ3ZmVwVGV4dDIxIFwiXG4gICAgKyBcIndmZXBUZXh0MjQgXCJcbiAgICArIFwid2ZlcFRleHQyNyBcIlxuICAgICsgXCJ3ZmVwVGV4dDMwIFwiXG4gICAgKyBcIndmZXBSYWRpb0dyb3VwQ29sdW1uMSBcIlxuICAgICsgXCJ3ZmVwUmFkaW9Hcm91cENvbHVtbjIgXCJcbiAgICArIFwid2ZlcFJhZGlvR3JvdXBDb2x1bW4zIFwiO1xuXG4gIC8vIGVudW0gVFdpemFyZEZvcm1FbGVtZW50VHlwZVxuICBjb25zdCBUV2l6YXJkRm9ybUVsZW1lbnRUeXBlID1cbiAgICBcIndmZXRRdWVyeVBhcmFtZXRlciBcIiArIFwid2ZldFRleHQgXCIgKyBcIndmZXREZWxpbWl0ZXIgXCIgKyBcIndmZXRMYWJlbCBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRQYXJhbVR5cGVcbiAgY29uc3QgVFdpemFyZFBhcmFtVHlwZSA9XG4gICAgXCJ3cHRTdHJpbmcgXCJcbiAgICArIFwid3B0SW50ZWdlciBcIlxuICAgICsgXCJ3cHROdW1lcmljIFwiXG4gICAgKyBcIndwdEJvb2xlYW4gXCJcbiAgICArIFwid3B0RGF0ZVRpbWUgXCJcbiAgICArIFwid3B0UGljayBcIlxuICAgICsgXCJ3cHRUZXh0IFwiXG4gICAgKyBcIndwdFVzZXIgXCJcbiAgICArIFwid3B0VXNlckxpc3QgXCJcbiAgICArIFwid3B0RURvY3VtZW50SW5mbyBcIlxuICAgICsgXCJ3cHRFRG9jdW1lbnRJbmZvTGlzdCBcIlxuICAgICsgXCJ3cHRSZWZlcmVuY2VSZWNvcmRJbmZvIFwiXG4gICAgKyBcIndwdFJlZmVyZW5jZVJlY29yZEluZm9MaXN0IFwiXG4gICAgKyBcIndwdEZvbGRlckluZm8gXCJcbiAgICArIFwid3B0VGFza0luZm8gXCJcbiAgICArIFwid3B0Q29udGVudHMgXCJcbiAgICArIFwid3B0RmlsZU5hbWUgXCJcbiAgICArIFwid3B0RGF0ZSBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRTdGVwUmVzdWx0XG4gIGNvbnN0IFRXaXphcmRTdGVwUmVzdWx0ID1cbiAgICBcIndzckNvbXBsZXRlIFwiXG4gICAgKyBcIndzckdvTmV4dCBcIlxuICAgICsgXCJ3c3JHb1ByZXZpb3VzIFwiXG4gICAgKyBcIndzckN1c3RvbSBcIlxuICAgICsgXCJ3c3JDYW5jZWwgXCJcbiAgICArIFwid3NyR29GaW5hbCBcIjtcblxuICAvLyBlbnVtIFRXaXphcmRTdGVwVHlwZVxuICBjb25zdCBUV2l6YXJkU3RlcFR5cGUgPVxuICAgIFwid3N0Rm9ybSBcIlxuICAgICsgXCJ3c3RFRG9jdW1lbnQgXCJcbiAgICArIFwid3N0VGFza0NhcmQgXCJcbiAgICArIFwid3N0UmVmZXJlbmNlUmVjb3JkQ2FyZCBcIlxuICAgICsgXCJ3c3RGaW5hbCBcIjtcblxuICAvLyBlbnVtIFRXb3JrQWNjZXNzVHlwZVxuICBjb25zdCBUV29ya0FjY2Vzc1R5cGUgPSBcIndhQWxsIFwiICsgXCJ3YVBlcmZvcm1lcnMgXCIgKyBcIndhTWFudWFsIFwiO1xuXG4gIC8vIGVudW0gVFdvcmtmbG93QmxvY2tUeXBlXG4gIGNvbnN0IFRXb3JrZmxvd0Jsb2NrVHlwZSA9XG4gICAgXCJ3c2JTdGFydCBcIlxuICAgICsgXCJ3c2JGaW5pc2ggXCJcbiAgICArIFwid3NiTm90aWNlIFwiXG4gICAgKyBcIndzYlN0ZXAgXCJcbiAgICArIFwid3NiRGVjaXNpb24gXCJcbiAgICArIFwid3NiV2FpdCBcIlxuICAgICsgXCJ3c2JNb25pdG9yIFwiXG4gICAgKyBcIndzYlNjcmlwdCBcIlxuICAgICsgXCJ3c2JDb25uZWN0b3IgXCJcbiAgICArIFwid3NiU3ViVGFzayBcIlxuICAgICsgXCJ3c2JMaWZlQ3ljbGVTdGFnZSBcIlxuICAgICsgXCJ3c2JQYXVzZSBcIjtcblxuICAvLyBlbnVtIFRXb3JrZmxvd0RhdGFUeXBlXG4gIGNvbnN0IFRXb3JrZmxvd0RhdGFUeXBlID1cbiAgICBcIndkdEludGVnZXIgXCJcbiAgICArIFwid2R0RmxvYXQgXCJcbiAgICArIFwid2R0U3RyaW5nIFwiXG4gICAgKyBcIndkdFBpY2sgXCJcbiAgICArIFwid2R0RGF0ZVRpbWUgXCJcbiAgICArIFwid2R0Qm9vbGVhbiBcIlxuICAgICsgXCJ3ZHRUYXNrIFwiXG4gICAgKyBcIndkdEpvYiBcIlxuICAgICsgXCJ3ZHRGb2xkZXIgXCJcbiAgICArIFwid2R0RURvY3VtZW50IFwiXG4gICAgKyBcIndkdFJlZmVyZW5jZVJlY29yZCBcIlxuICAgICsgXCJ3ZHRVc2VyIFwiXG4gICAgKyBcIndkdEdyb3VwIFwiXG4gICAgKyBcIndkdFJvbGUgXCJcbiAgICArIFwid2R0SW50ZWdlckNvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0RmxvYXRDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFN0cmluZ0NvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0UGlja0NvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0RGF0ZVRpbWVDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdEJvb2xlYW5Db2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFRhc2tDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdEpvYkNvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0Rm9sZGVyQ29sbGVjdGlvbiBcIlxuICAgICsgXCJ3ZHRFRG9jdW1lbnRDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFJlZmVyZW5jZVJlY29yZENvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0VXNlckNvbGxlY3Rpb24gXCJcbiAgICArIFwid2R0R3JvdXBDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdFJvbGVDb2xsZWN0aW9uIFwiXG4gICAgKyBcIndkdENvbnRlbnRzIFwiXG4gICAgKyBcIndkdFVzZXJMaXN0IFwiXG4gICAgKyBcIndkdFNlYXJjaERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIndkdERlYWRMaW5lIFwiXG4gICAgKyBcIndkdFBpY2tTZXQgXCJcbiAgICArIFwid2R0QWNjb3VudENvbGxlY3Rpb24gXCI7XG5cbiAgLy8gZW51bSBUV29ya0ltcG9ydGFuY2VcbiAgY29uc3QgVFdvcmtJbXBvcnRhbmNlID0gXCJ3aUxvdyBcIiArIFwid2lOb3JtYWwgXCIgKyBcIndpSGlnaCBcIjtcblxuICAvLyBlbnVtIFRXb3JrUm91dGVUeXBlXG4gIGNvbnN0IFRXb3JrUm91dGVUeXBlID0gXCJ3cnRTb2Z0IFwiICsgXCJ3cnRIYXJkIFwiO1xuXG4gIC8vIGVudW0gVFdvcmtTdGF0ZVxuICBjb25zdCBUV29ya1N0YXRlID1cbiAgICBcIndzSW5pdCBcIlxuICAgICsgXCJ3c1J1bm5pbmcgXCJcbiAgICArIFwid3NEb25lIFwiXG4gICAgKyBcIndzQ29udHJvbGxlZCBcIlxuICAgICsgXCJ3c0Fib3J0ZWQgXCJcbiAgICArIFwid3NDb250aW51ZWQgXCI7XG5cbiAgLy8gZW51bSBUV29ya1RleHRCdWlsZGluZ01vZGVcbiAgY29uc3QgVFdvcmtUZXh0QnVpbGRpbmdNb2RlID1cbiAgICBcInd0bUZ1bGwgXCIgKyBcInd0bUZyb21DdXJyZW50IFwiICsgXCJ3dG1Pbmx5Q3VycmVudCBcIjtcblxuICAvLyBcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEZcbiAgY29uc3QgRU5VTVMgPVxuICAgIFRBY2NvdW50VHlwZVxuICAgICsgVEFjdGlvbkVuYWJsZWRNb2RlXG4gICAgKyBUQWRkUG9zaXRpb25cbiAgICArIFRBbGlnbm1lbnRcbiAgICArIFRBcmVhU2hvd01vZGVcbiAgICArIFRDZXJ0aWZpY2F0ZUludmFsaWRhdGlvblJlYXNvblxuICAgICsgVENlcnRpZmljYXRlVHlwZVxuICAgICsgVENoZWNrTGlzdEJveEl0ZW1TdGF0ZVxuICAgICsgVENsb3NlT25Fc2NcbiAgICArIFRDb21wVHlwZVxuICAgICsgVENvbmRpdGlvbkZvcm1hdFxuICAgICsgVENvbm5lY3Rpb25JbnRlbnRcbiAgICArIFRDb250ZW50S2luZFxuICAgICsgVENvbnRyb2xUeXBlXG4gICAgKyBUQ3JpdGVyaW9uQ29udGVudFR5cGVcbiAgICArIFRDdWx0dXJlVHlwZVxuICAgICsgVERhdGFTZXRFdmVudFR5cGVcbiAgICArIFREYXRhU2V0U3RhdGVcbiAgICArIFREYXRlRm9ybWF0VHlwZVxuICAgICsgVERhdGVPZmZzZXRUeXBlXG4gICAgKyBURGF0ZVRpbWVLaW5kXG4gICAgKyBURGVhQWNjZXNzUmlnaHRzXG4gICAgKyBURG9jdW1lbnREZWZhdWx0QWN0aW9uXG4gICAgKyBURWRpdE1vZGVcbiAgICArIFRFZGl0b3JDbG9zZU9ic2VydlR5cGVcbiAgICArIFRFZG1zQXBwbGljYXRpb25BY3Rpb25cbiAgICArIFRFRG9jdW1lbnRMb2NrVHlwZVxuICAgICsgVEVEb2N1bWVudFN0ZXBTaG93TW9kZVxuICAgICsgVEVEb2N1bWVudFN0ZXBWZXJzaW9uVHlwZVxuICAgICsgVEVEb2N1bWVudFN0b3JhZ2VGdW5jdGlvblxuICAgICsgVEVEb2N1bWVudFN0b3JhZ2VUeXBlXG4gICAgKyBURURvY3VtZW50VmVyc2lvblNvdXJjZVR5cGVcbiAgICArIFRFRG9jdW1lbnRWZXJzaW9uU3RhdGVcbiAgICArIFRFbmNvZGVUeXBlXG4gICAgKyBURXhjZXB0aW9uQ2F0ZWdvcnlcbiAgICArIFRFeHBvcnRlZFNpZ25hdHVyZXNUeXBlXG4gICAgKyBURXhwb3J0ZWRWZXJzaW9uVHlwZVxuICAgICsgVEZpZWxkRGF0YVR5cGVcbiAgICArIFRGb2xkZXJUeXBlXG4gICAgKyBUR3JpZFJvd0hlaWdodFxuICAgICsgVEh5cGVybGlua1R5cGVcbiAgICArIFRJbWFnZUZpbGVGb3JtYXRcbiAgICArIFRJbWFnZU1vZGVcbiAgICArIFRJbWFnZVR5cGVcbiAgICArIFRJbnBsYWNlSGludEtpbmRcbiAgICArIFRJU0JMQ29udGV4dFxuICAgICsgVEl0ZW1TaG93XG4gICAgKyBUSm9iS2luZFxuICAgICsgVEpvaW5UeXBlXG4gICAgKyBUTGFiZWxQb3NcbiAgICArIFRMaWNlbnNpbmdUeXBlXG4gICAgKyBUTGlmZUN5Y2xlU3RhZ2VGb250Q29sb3JcbiAgICArIFRMaWZlQ3ljbGVTdGFnZUZvbnRTdHlsZVxuICAgICsgVExvY2thYmxlRGV2ZWxvcG1lbnRDb21wb25lbnRUeXBlXG4gICAgKyBUTWF4UmVjb3JkQ291bnRSZXN0cmljdGlvblR5cGVcbiAgICArIFRSYW5nZVZhbHVlVHlwZVxuICAgICsgVFJlbGF0aXZlRGF0ZVxuICAgICsgVFJlcG9ydERlc3RpbmF0aW9uXG4gICAgKyBUUmVxRGF0YVR5cGVcbiAgICArIFRSZXF1aXNpdGVFdmVudFR5cGVcbiAgICArIFRTQlRpbWVUeXBlXG4gICAgKyBUU2VhcmNoU2hvd01vZGVcbiAgICArIFRTZWxlY3RNb2RlXG4gICAgKyBUU2lnbmF0dXJlVHlwZVxuICAgICsgVFNpZ25lckNvbnRlbnRUeXBlXG4gICAgKyBUU3RyaW5nc1NvcnRUeXBlXG4gICAgKyBUU3RyaW5nVmFsdWVUeXBlXG4gICAgKyBUU3RydWN0dXJlZE9iamVjdEF0dHJpYnV0ZVR5cGVcbiAgICArIFRUYXNrQWJvcnRSZWFzb25cbiAgICArIFRUZXh0VmFsdWVUeXBlXG4gICAgKyBUVXNlck9iamVjdFN0YXR1c1xuICAgICsgVFVzZXJUeXBlXG4gICAgKyBUVmFsdWVzQnVpbGRUeXBlXG4gICAgKyBUVmlld01vZGVcbiAgICArIFRWaWV3U2VsZWN0aW9uTW9kZVxuICAgICsgVFdpemFyZEFjdGlvblR5cGVcbiAgICArIFRXaXphcmRGb3JtRWxlbWVudFByb3BlcnR5XG4gICAgKyBUV2l6YXJkRm9ybUVsZW1lbnRUeXBlXG4gICAgKyBUV2l6YXJkUGFyYW1UeXBlXG4gICAgKyBUV2l6YXJkU3RlcFJlc3VsdFxuICAgICsgVFdpemFyZFN0ZXBUeXBlXG4gICAgKyBUV29ya0FjY2Vzc1R5cGVcbiAgICArIFRXb3JrZmxvd0Jsb2NrVHlwZVxuICAgICsgVFdvcmtmbG93RGF0YVR5cGVcbiAgICArIFRXb3JrSW1wb3J0YW5jZVxuICAgICsgVFdvcmtSb3V0ZVR5cGVcbiAgICArIFRXb3JrU3RhdGVcbiAgICArIFRXb3JrVGV4dEJ1aWxkaW5nTW9kZTtcblxuICAvLyBcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDQ0XHUwNDQzXHUwNDNEXHUwNDNBXHUwNDQ2XHUwNDM4XHUwNDM4ID09PiBTWVNGVU5DVElPTlNcbiAgY29uc3Qgc3lzdGVtX2Z1bmN0aW9ucyA9XG4gICAgXCJBZGRTdWJTdHJpbmcgXCJcbiAgICArIFwiQWRqdXN0TGluZUJyZWFrcyBcIlxuICAgICsgXCJBbW91bnRJbldvcmRzIFwiXG4gICAgKyBcIkFuYWx5c2lzIFwiXG4gICAgKyBcIkFycmF5RGltQ291bnQgXCJcbiAgICArIFwiQXJyYXlIaWdoQm91bmQgXCJcbiAgICArIFwiQXJyYXlMb3dCb3VuZCBcIlxuICAgICsgXCJBcnJheU9mIFwiXG4gICAgKyBcIkFycmF5UmVEaW0gXCJcbiAgICArIFwiQXNzZXJ0IFwiXG4gICAgKyBcIkFzc2lnbmVkIFwiXG4gICAgKyBcIkJlZ2luT2ZNb250aCBcIlxuICAgICsgXCJCZWdpbk9mUGVyaW9kIFwiXG4gICAgKyBcIkJ1aWxkUHJvZmlsaW5nT3BlcmF0aW9uQW5hbHlzaXMgXCJcbiAgICArIFwiQ2FsbFByb2NlZHVyZSBcIlxuICAgICsgXCJDYW5SZWFkRmlsZSBcIlxuICAgICsgXCJDQXJyYXlFbGVtZW50IFwiXG4gICAgKyBcIkNEYXRhU2V0UmVxdWlzaXRlIFwiXG4gICAgKyBcIkNoYW5nZURhdGUgXCJcbiAgICArIFwiQ2hhbmdlUmVmZXJlbmNlRGF0YXNldCBcIlxuICAgICsgXCJDaGFyIFwiXG4gICAgKyBcIkNoYXJQb3MgXCJcbiAgICArIFwiQ2hlY2tQYXJhbSBcIlxuICAgICsgXCJDaGVja1BhcmFtVmFsdWUgXCJcbiAgICArIFwiQ29tcGFyZVN0cmluZ3MgXCJcbiAgICArIFwiQ29uc3RhbnRFeGlzdHMgXCJcbiAgICArIFwiQ29udHJvbFN0YXRlIFwiXG4gICAgKyBcIkNvbnZlcnREYXRlU3RyIFwiXG4gICAgKyBcIkNvcHkgXCJcbiAgICArIFwiQ29weUZpbGUgXCJcbiAgICArIFwiQ3JlYXRlQXJyYXkgXCJcbiAgICArIFwiQ3JlYXRlQ2FjaGVkUmVmZXJlbmNlIFwiXG4gICAgKyBcIkNyZWF0ZUNvbm5lY3Rpb24gXCJcbiAgICArIFwiQ3JlYXRlRGlhbG9nIFwiXG4gICAgKyBcIkNyZWF0ZUR1YWxMaXN0RGlhbG9nIFwiXG4gICAgKyBcIkNyZWF0ZUVkaXRvciBcIlxuICAgICsgXCJDcmVhdGVFeGNlcHRpb24gXCJcbiAgICArIFwiQ3JlYXRlRmlsZSBcIlxuICAgICsgXCJDcmVhdGVGb2xkZXJEaWFsb2cgXCJcbiAgICArIFwiQ3JlYXRlSW5wdXREaWFsb2cgXCJcbiAgICArIFwiQ3JlYXRlTGlua0ZpbGUgXCJcbiAgICArIFwiQ3JlYXRlTGlzdCBcIlxuICAgICsgXCJDcmVhdGVMb2NrIFwiXG4gICAgKyBcIkNyZWF0ZU1lbW9yeURhdGFTZXQgXCJcbiAgICArIFwiQ3JlYXRlT2JqZWN0IFwiXG4gICAgKyBcIkNyZWF0ZU9wZW5EaWFsb2cgXCJcbiAgICArIFwiQ3JlYXRlUHJvZ3Jlc3MgXCJcbiAgICArIFwiQ3JlYXRlUXVlcnkgXCJcbiAgICArIFwiQ3JlYXRlUmVmZXJlbmNlIFwiXG4gICAgKyBcIkNyZWF0ZVJlcG9ydCBcIlxuICAgICsgXCJDcmVhdGVTYXZlRGlhbG9nIFwiXG4gICAgKyBcIkNyZWF0ZVNjcmlwdCBcIlxuICAgICsgXCJDcmVhdGVTUUxQaXZvdEZ1bmN0aW9uIFwiXG4gICAgKyBcIkNyZWF0ZVN0cmluZ0xpc3QgXCJcbiAgICArIFwiQ3JlYXRlVHJlZUxpc3RTZWxlY3REaWFsb2cgXCJcbiAgICArIFwiQ1NlbGVjdFNRTCBcIlxuICAgICsgXCJDU1FMIFwiXG4gICAgKyBcIkNTdWJTdHJpbmcgXCJcbiAgICArIFwiQ3VycmVudFVzZXJJRCBcIlxuICAgICsgXCJDdXJyZW50VXNlck5hbWUgXCJcbiAgICArIFwiQ3VycmVudFZlcnNpb24gXCJcbiAgICArIFwiRGF0YVNldExvY2F0ZUV4IFwiXG4gICAgKyBcIkRhdGVEaWZmIFwiXG4gICAgKyBcIkRhdGVUaW1lRGlmZiBcIlxuICAgICsgXCJEYXRlVG9TdHIgXCJcbiAgICArIFwiRGF5T2ZXZWVrIFwiXG4gICAgKyBcIkRlbGV0ZUZpbGUgXCJcbiAgICArIFwiRGlyZWN0b3J5RXhpc3RzIFwiXG4gICAgKyBcIkRpc2FibGVDaGVja0FjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJEaXNhYmxlQ2hlY2tGdWxsU2hvd2luZ1Jlc3RyaWN0aW9uIFwiXG4gICAgKyBcIkRpc2FibGVNYXNzVGFza1NlbmRpbmdSZXN0cmljdGlvbnMgXCJcbiAgICArIFwiRHJvcFRhYmxlIFwiXG4gICAgKyBcIkR1cGVTdHJpbmcgXCJcbiAgICArIFwiRWRpdFRleHQgXCJcbiAgICArIFwiRW5hYmxlQ2hlY2tBY2Nlc3NSaWdodHMgXCJcbiAgICArIFwiRW5hYmxlQ2hlY2tGdWxsU2hvd2luZ1Jlc3RyaWN0aW9uIFwiXG4gICAgKyBcIkVuYWJsZU1hc3NUYXNrU2VuZGluZ1Jlc3RyaWN0aW9ucyBcIlxuICAgICsgXCJFbmRPZk1vbnRoIFwiXG4gICAgKyBcIkVuZE9mUGVyaW9kIFwiXG4gICAgKyBcIkV4Y2VwdGlvbkV4aXN0cyBcIlxuICAgICsgXCJFeGNlcHRpb25zT2ZmIFwiXG4gICAgKyBcIkV4Y2VwdGlvbnNPbiBcIlxuICAgICsgXCJFeGVjdXRlIFwiXG4gICAgKyBcIkV4ZWN1dGVQcm9jZXNzIFwiXG4gICAgKyBcIkV4aXQgXCJcbiAgICArIFwiRXhwYW5kRW52aXJvbm1lbnRWYXJpYWJsZXMgXCJcbiAgICArIFwiRXh0cmFjdEZpbGVEcml2ZSBcIlxuICAgICsgXCJFeHRyYWN0RmlsZUV4dCBcIlxuICAgICsgXCJFeHRyYWN0RmlsZU5hbWUgXCJcbiAgICArIFwiRXh0cmFjdEZpbGVQYXRoIFwiXG4gICAgKyBcIkV4dHJhY3RQYXJhbXMgXCJcbiAgICArIFwiRmlsZUV4aXN0cyBcIlxuICAgICsgXCJGaWxlU2l6ZSBcIlxuICAgICsgXCJGaW5kRmlsZSBcIlxuICAgICsgXCJGaW5kU3ViU3RyaW5nIFwiXG4gICAgKyBcIkZpcm1Db250ZXh0IFwiXG4gICAgKyBcIkZvcmNlRGlyZWN0b3JpZXMgXCJcbiAgICArIFwiRm9ybWF0IFwiXG4gICAgKyBcIkZvcm1hdERhdGUgXCJcbiAgICArIFwiRm9ybWF0TnVtZXJpYyBcIlxuICAgICsgXCJGb3JtYXRTUUxEYXRlIFwiXG4gICAgKyBcIkZvcm1hdFN0cmluZyBcIlxuICAgICsgXCJGcmVlRXhjZXB0aW9uIFwiXG4gICAgKyBcIkdldENvbXBvbmVudCBcIlxuICAgICsgXCJHZXRDb21wb25lbnRMYXVuY2hQYXJhbSBcIlxuICAgICsgXCJHZXRDb25zdGFudCBcIlxuICAgICsgXCJHZXRMYXN0RXhjZXB0aW9uIFwiXG4gICAgKyBcIkdldFJlZmVyZW5jZVJlY29yZCBcIlxuICAgICsgXCJHZXRSZWZUeXBlQnlSZWZJRCBcIlxuICAgICsgXCJHZXRUYWJsZUlEIFwiXG4gICAgKyBcIkdldFRlbXBGb2xkZXIgXCJcbiAgICArIFwiSWZUaGVuIFwiXG4gICAgKyBcIkluIFwiXG4gICAgKyBcIkluZGV4T2YgXCJcbiAgICArIFwiSW5wdXREaWFsb2cgXCJcbiAgICArIFwiSW5wdXREaWFsb2dFeCBcIlxuICAgICsgXCJJbnRlcmFjdGl2ZU1vZGUgXCJcbiAgICArIFwiSXNGaWxlTG9ja2VkIFwiXG4gICAgKyBcIklzR3JhcGhpY0ZpbGUgXCJcbiAgICArIFwiSXNOdW1lcmljIFwiXG4gICAgKyBcIkxlbmd0aCBcIlxuICAgICsgXCJMb2FkU3RyaW5nIFwiXG4gICAgKyBcIkxvYWRTdHJpbmdGbXQgXCJcbiAgICArIFwiTG9jYWxUaW1lVG9VVEMgXCJcbiAgICArIFwiTG93ZXJDYXNlIFwiXG4gICAgKyBcIk1heCBcIlxuICAgICsgXCJNZXNzYWdlQm94IFwiXG4gICAgKyBcIk1lc3NhZ2VCb3hFeCBcIlxuICAgICsgXCJNaW1lRGVjb2RlQmluYXJ5IFwiXG4gICAgKyBcIk1pbWVEZWNvZGVTdHJpbmcgXCJcbiAgICArIFwiTWltZUVuY29kZUJpbmFyeSBcIlxuICAgICsgXCJNaW1lRW5jb2RlU3RyaW5nIFwiXG4gICAgKyBcIk1pbiBcIlxuICAgICsgXCJNb25leUluV29yZHMgXCJcbiAgICArIFwiTW92ZUZpbGUgXCJcbiAgICArIFwiTmV3SUQgXCJcbiAgICArIFwiTm93IFwiXG4gICAgKyBcIk9wZW5GaWxlIFwiXG4gICAgKyBcIk9yZCBcIlxuICAgICsgXCJQcmVjaXNpb24gXCJcbiAgICArIFwiUmFpc2UgXCJcbiAgICArIFwiUmVhZENlcnRpZmljYXRlRnJvbUZpbGUgXCJcbiAgICArIFwiUmVhZEZpbGUgXCJcbiAgICArIFwiUmVmZXJlbmNlQ29kZUJ5SUQgXCJcbiAgICArIFwiUmVmZXJlbmNlTnVtYmVyIFwiXG4gICAgKyBcIlJlZmVyZW5jZVJlcXVpc2l0ZU1vZGUgXCJcbiAgICArIFwiUmVmZXJlbmNlUmVxdWlzaXRlVmFsdWUgXCJcbiAgICArIFwiUmVnaW9uRGF0ZVNldHRpbmdzIFwiXG4gICAgKyBcIlJlZ2lvbk51bWJlclNldHRpbmdzIFwiXG4gICAgKyBcIlJlZ2lvblRpbWVTZXR0aW5ncyBcIlxuICAgICsgXCJSZWdSZWFkIFwiXG4gICAgKyBcIlJlZ1dyaXRlIFwiXG4gICAgKyBcIlJlbmFtZUZpbGUgXCJcbiAgICArIFwiUmVwbGFjZSBcIlxuICAgICsgXCJSb3VuZCBcIlxuICAgICsgXCJTZWxlY3RTZXJ2ZXJDb2RlIFwiXG4gICAgKyBcIlNlbGVjdFNRTCBcIlxuICAgICsgXCJTZXJ2ZXJEYXRlVGltZSBcIlxuICAgICsgXCJTZXRDb25zdGFudCBcIlxuICAgICsgXCJTZXRNYW5hZ2VkRm9sZGVyRmllbGRzU3RhdGUgXCJcbiAgICArIFwiU2hvd0NvbnN0YW50c0lucHV0RGlhbG9nIFwiXG4gICAgKyBcIlNob3dNZXNzYWdlIFwiXG4gICAgKyBcIlNsZWVwIFwiXG4gICAgKyBcIlNwbGl0IFwiXG4gICAgKyBcIlNRTCBcIlxuICAgICsgXCJTUUwyWExTVEFCIFwiXG4gICAgKyBcIlNRTFByb2ZpbGluZ1NlbmRSZXBvcnQgXCJcbiAgICArIFwiU3RyVG9EYXRlIFwiXG4gICAgKyBcIlN1YlN0cmluZyBcIlxuICAgICsgXCJTdWJTdHJpbmdDb3VudCBcIlxuICAgICsgXCJTeXN0ZW1TZXR0aW5nIFwiXG4gICAgKyBcIlRpbWUgXCJcbiAgICArIFwiVGltZURpZmYgXCJcbiAgICArIFwiVG9kYXkgXCJcbiAgICArIFwiVHJhbnNsaXRlcmF0ZSBcIlxuICAgICsgXCJUcmltIFwiXG4gICAgKyBcIlVwcGVyQ2FzZSBcIlxuICAgICsgXCJVc2VyU3RhdHVzIFwiXG4gICAgKyBcIlVUQ1RvTG9jYWxUaW1lIFwiXG4gICAgKyBcIlZhbGlkYXRlWE1MIFwiXG4gICAgKyBcIlZhcklzQ2xlYXIgXCJcbiAgICArIFwiVmFySXNFbXB0eSBcIlxuICAgICsgXCJWYXJJc051bGwgXCJcbiAgICArIFwiV29ya1RpbWVEaWZmIFwiXG4gICAgKyBcIldyaXRlRmlsZSBcIlxuICAgICsgXCJXcml0ZUZpbGVFeCBcIlxuICAgICsgXCJXcml0ZU9iamVjdEhpc3RvcnkgXCJcbiAgICArIFwiXHUwNDEwXHUwNDNEXHUwNDMwXHUwNDNCXHUwNDM4XHUwNDM3IFwiXG4gICAgKyBcIlx1MDQxMVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQxNFx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQ0NSBcIlxuICAgICsgXCJcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MTVcdTA0NDFcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDE1XHUwNDQxXHUwNDQyXHUwNDRDXHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFwiXG4gICAgKyBcIlx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQxOFx1MDQzRFx1MDQ0NFx1MDQzRSBcIlxuICAgICsgXCJcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MjFcdTA0M0RcdTA0NEZcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDIxXHUwNDNEXHUwNDRGXHUwNDQyXHUwNDRDXHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFwiXG4gICAgKyBcIlx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MTJcdTA0MzJcdTA0M0VcdTA0MzQgXCJcbiAgICArIFwiXHUwNDEyXHUwNDMyXHUwNDNFXHUwNDM0XHUwNDFDXHUwNDM1XHUwNDNEXHUwNDRFIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQzNVx1MDQzNFx1MDQyMSBcIlxuICAgICsgXCJcdTA0MTJcdTA0MzVcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDEyXHUwNDM1XHUwNDQwXHUwNDQ1XHUwNDNEXHUwNDRGXHUwNDRGXHUwNDEzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDMwXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQzRFx1MDQzNVx1MDQ0OFx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTJcdTA0M0VcdTA0NDFcdTA0NDFcdTA0NDIgXCJcbiAgICArIFwiXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDMwXHUwNDRGXHUwNDFGXHUwNDMwXHUwNDNGXHUwNDNBXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0RiBcIlxuICAgICsgXCJcdTA0MTJcdTA0NEJcdTA0MzFcdTA0M0VcdTA0NDBTUUwgXCJcbiAgICArIFwiXHUwNDEyXHUwNDRCXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQ0Qlx1MDQzNFx1MDQzNVx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTJcdTA0NEJcdTA0MzdcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDEyXHUwNDRCXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxMlx1MDQ0Qlx1MDQzRlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzM1x1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTNcdTA0NDBcdTA0MzBcdTA0NDRcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzlcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXCJcbiAgICArIFwiXHUwNDEzXHUwNDQwXHUwNDQzXHUwNDNGXHUwNDNGXHUwNDMwXHUwNDE0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxNFx1MDQzMFx1MDQ0Mlx1MDQzMFx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQ0Rlx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMiBcIlxuICAgICsgXCJcdTA0MTRcdTA0MzVcdTA0M0RcdTA0NENcdTA0MURcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzggXCJcbiAgICArIFwiXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDE0XHUwNDMwXHUwNDFEXHUwNDM1XHUwNDQyIFwiXG4gICAgKyBcIlx1MDQxNFx1MDQzQlx1MDQzOFx1MDQzRFx1MDQzMFx1MDQyMVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MTRcdTA0M0VcdTA0MzFcdTA0MUZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDE1XHUwNDFGXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxNVx1MDQ0MVx1MDQzQlx1MDQzOFx1MDQyMlx1MDQzRSBcIlxuICAgICsgXCJcdTA0MTVcdTA0MjdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0M0UgXCJcbiAgICArIFwiXHUwNDE3XHUwNDMwXHUwNDNDXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQ0Q1x1MDQyMVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQVx1MDQzMCBcIlxuICAgICsgXCJcdTA0MTdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NEZcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDE4XHUwNDE0XHUwNDIyXHUwNDM4XHUwNDNGXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQ0Q1x1MDQxNFx1MDQzOFx1MDQ0MVx1MDQzQSBcIlxuICAgICsgXCJcdTA0MThcdTA0MzdcdTA0MzJcdTA0M0JcdTA0MzVcdTA0NDdcdTA0NENcdTA0MThcdTA0M0NcdTA0NEZcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXCJcbiAgICArIFwiXHUwNDE4XHUwNDM3XHUwNDMyXHUwNDNCXHUwNDM1XHUwNDQ3XHUwNDRDXHUwNDFGXHUwNDQzXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzN1x1MDQzMlx1MDQzQlx1MDQzNVx1MDQ0N1x1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcIlxuICAgICsgXCJcdTA0MThcdTA0MzdcdTA0M0NcdTA0MTRcdTA0MzBcdTA0NDIgXCJcbiAgICArIFwiXHUwNDE4XHUwNDM3XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzN1x1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzOVx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMlx1MDQzMCBcIlxuICAgICsgXCJcdTA0MThcdTA0M0NcdTA0NEZcdTA0MUVcdTA0NDBcdTA0MzMgXCJcbiAgICArIFwiXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRGXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzNVx1MDQzQVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDBcdTA0MTdcdTA0MzBcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDE4XHUwNDNEXHUwNDM0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQyXHUwNDNFXHUwNDQwXHUwNDFFXHUwNDQyXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxOFx1MDQzRFx1MDQzNFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQzRVx1MDQ0MFx1MDQyOFx1MDQzMFx1MDQzMyBcIlxuICAgICsgXCJcdTA0MThcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0M0FcdTA0NDJcdTA0MzhcdTA0MzJcdTA0M0RcdTA0NEJcdTA0MzlcdTA0MjBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXCJcbiAgICArIFwiXHUwNDE4XHUwNDQyXHUwNDNFXHUwNDMzXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzNFx1MDQxMlx1MDQzOFx1MDQzNFx1MDQxMlx1MDQzNVx1MDQzNFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0MzRcdTA0MTJcdTA0MzhcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUZcdTA0M0VcdTA0MThcdTA0MTQgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDM0XHUwNDFGXHUwNDNFQW5hbGl0IFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzNFx1MDQyMVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQlx1MDQzMCBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDNCXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzQlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzRiBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0M0RcdTA0MUNcdTA0MzVcdTA0NDEgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzRFx1MDQ0MVx1MDQ0Mlx1MDQxNVx1MDQ0MVx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0MTdcdTA0M0RcdTA0MzBcdTA0NDcgXCJcbiAgICArIFwiXHUwNDFBXHUwNDNFXHUwNDNEXHUwNDIyXHUwNDQwXHUwNDMwXHUwNDNEIFwiXG4gICAgKyBcIlx1MDQxQVx1MDQzRVx1MDQzRlx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MUFcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NEZcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFBXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDNFXHUwNDM0IFwiXG4gICAgKyBcIlx1MDQxQVx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUNcdTA0MzBcdTA0M0FcdTA0NDEgXCJcbiAgICArIFwiXHUwNDFDXHUwNDMwXHUwNDNBXHUwNDQxXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxQ1x1MDQzMFx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzMiBcIlxuICAgICsgXCJcdTA0MUNcdTA0MzVcdTA0M0RcdTA0NEUgXCJcbiAgICArIFwiXHUwNDFDXHUwNDM1XHUwNDNEXHUwNDRFXHUwNDIwXHUwNDMwXHUwNDQxXHUwNDQ4IFwiXG4gICAgKyBcIlx1MDQxQ1x1MDQzOFx1MDQzRCBcIlxuICAgICsgXCJcdTA0MURcdTA0MzBcdTA0MzFcdTA0M0VcdTA0NDBcdTA0MTRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0NDVcdTA0MURcdTA0MzBcdTA0MzlcdTA0NDJcdTA0MzhcdTA0MjBcdTA0MzBcdTA0NDFcdTA0NDggXCJcbiAgICArIFwiXHUwNDFEXHUwNDMwXHUwNDM4XHUwNDNDXHUwNDEyXHUwNDM4XHUwNDM0XHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxRFx1MDQzMFx1MDQzOFx1MDQzQ1x1MDQxRlx1MDQzRUFuYWxpdCBcIlxuICAgICsgXCJcdTA0MURcdTA0MzBcdTA0MzhcdTA0M0NcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDMyXHUwNDNFXHUwNDM0XHUwNDRCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDNBIFwiXG4gICAgKyBcIlx1MDQxRFx1MDQzMFx1MDQ0N1x1MDQxQ1x1MDQzNVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MURcdTA0MzBcdTA0NDdcdTA0MjJcdTA0NDBcdTA0MzBcdTA0M0QgXCJcbiAgICArIFwiXHUwNDFEXHUwNDM4XHUwNDM2XHUwNDNEXHUwNDRGXHUwNDRGXHUwNDEzXHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQ2XHUwNDMwXHUwNDFDXHUwNDMwXHUwNDQxXHUwNDQxXHUwNDM4XHUwNDMyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MURcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzhcdTA0M0VcdTA0MzQgXCJcbiAgICArIFwiXHUwNDFFXHUwNDNBXHUwNDNEXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxRVx1MDQzQVx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUVcdTA0M0FcdTA0NDBcdTA0NDNcdTA0MzZcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXCJcbiAgICArIFwiXHUwNDFFXHUwNDQyXHUwNDNCXHUwNDE4XHUwNDNEXHUwNDQ0XHUwNDE0XHUwNDNFXHUwNDMxXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQxRVx1MDQ0Mlx1MDQzQlx1MDQxOFx1MDQzRFx1MDQ0NFx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MUVcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDIgXCJcbiAgICArIFwiXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDEwXHUwNDNEXHUwNDMwXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQxRVx1MDQ0Mlx1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQxOFx1MDQzRFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MUZcdTA0MzBcdTA0M0ZcdTA0M0FcdTA0MzBcdTA0MjFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIgXCJcbiAgICArIFwiXHUwNDFGXHUwNDMwXHUwNDQzXHUwNDM3XHUwNDMwIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFNRTCBcIlxuICAgICsgXCJcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0IgXCJcbiAgICArIFwiXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFwiXG4gICAgKyBcIlx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MUZcdTA0M0VcdTA0MzRcdTA0NDFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFGXHUwNDNFXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDFGXHUwNDNFXHUwNDM0XHUwNDQxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQzRVx1MDQzOFx1MDQ0MVx1MDQzQVx1MDQyMVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NDNcdTA0NDdcdTA0MzhcdTA0NDJcdTA0NENcdTA0MThcdTA0MTRcdTA0MjJcdTA0MzBcdTA0MzFcdTA0M0JcdTA0MzhcdTA0NDZcdTA0NEIgXCJcbiAgICArIFwiXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDE0XHUwNDNFXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDNEXHUwNDNFIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQzRVx1MDQzQlx1MDQ0Q1x1MDQzN1x1MDQzRVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzQlx1MDQ0Q1x1MDQxOFx1MDQxNCBcIlxuICAgICsgXCJcdTA0MUZcdTA0M0VcdTA0M0JcdTA0NENcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M0JcdTA0NENcdTA0MThcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDFGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDXHUwNDIxXHUwNDQyXHUwNDMwXHUwNDQyXHUwNDQzXHUwNDQxIFwiXG4gICAgKyBcIlx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MUZcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0NENcdTA0MUZcdTA0MzBcdTA0NDBcdTA0MzBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDFGXHUwNDQwXHUwNDNFXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDXHUwNDM1XHUwNDQyXHUwNDQwXHUwNDE3XHUwNDNEXHUwNDMwXHUwNDQ3IFwiXG4gICAgKyBcIlx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyM1x1MDQ0MVx1MDQzQlx1MDQzRVx1MDQzMlx1MDQzOFx1MDQzNSBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzBcdTA0MzdcdTA0MzFcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzMFx1MDQzN1x1MDQzRFx1MDQxNFx1MDQzMFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzBcdTA0MzdcdTA0M0RcdTA0MTRcdTA0MzBcdTA0NDJcdTA0MzBcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNEXHUwNDIwXHUwNDMwXHUwNDMxXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzM1x1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQxMlx1MDQ0MFx1MDQzNVx1MDQzQyBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzVcdTA0MzNcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MTRcdTA0MzBcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIwXHUwNDM1XHUwNDMzXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDI3XHUwNDQxXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzNFx1MDQyMlx1MDQzNVx1MDQzQVx1MDQ0MVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzVcdTA0MzVcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MTdcdTA0MzBcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIwXHUwNDM1XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBXHUwNDE4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcIlxuICAgICsgXCJcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzNVx1MDQzM1x1MDQzRVx1MDQzNFx1MDQzRFx1MDQ0RiBcIlxuICAgICsgXCJcdTA0MjFcdTA0MzVcdTA0MzlcdTA0NDdcdTA0MzBcdTA0NDEgXCJcbiAgICArIFwiXHUwNDIxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQxRlx1MDQ0MFx1MDQzRVx1MDQ0Nlx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQxOFx1MDQxNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0MzVcdTA0NDBcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjFcdTA0NDdcdTA0MzhcdTA0NDJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDM2XHUwNDFGXHUwNDQwXHUwNDNFXHUwNDMxIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzOFx1MDQzQ1x1MDQzMlx1MDQzRVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0NcdTA0MzBcdTA0MTRcdTA0MzhcdTA0NDBcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NDNcdTA0M0NcdTA0MUFcdTA0M0VcdTA0MzQgXCJcbiAgICArIFwiXHUwNDIxXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDM1XHUwNDNDXHUwNDMwXHUwNDE4XHUwNDNEXHUwNDQ0XHUwNDNFXHUwNDQwXHUwNDNDXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRGIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzMFx1MDQxQVx1MDQzRVx1MDQzNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1XHUwNDE3XHUwNDMwXHUwNDNBXHUwNDQwXHUwNDRCXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzRFx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNVx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MTRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDEyXHUwNDRCXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDMwXHUwNDE4XHUwNDM3XHUwNDE0XHUwNDMyXHUwNDQzXHUwNDQ1XHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNBXHUwNDNFXHUwNDMyIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxNFx1MDQzOFx1MDQzMFx1MDQzQlx1MDQzRVx1MDQzM1x1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQzMFx1MDQxRlx1MDQzMFx1MDQzRlx1MDQzQVx1MDQzOCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MTRcdTA0MzhcdTA0MzBcdTA0M0JcdTA0M0VcdTA0MzNcdTA0MUVcdTA0NDJcdTA0M0FcdTA0NDBcdTA0NEJcdTA0NDJcdTA0MzhcdTA0NEZcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MzAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE0XHUwNDM4XHUwNDMwXHUwNDNCXHUwNDNFXHUwNDMzXHUwNDIxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM1XHUwNDNEXHUwNDM4XHUwNDRGXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxN1x1MDQzMFx1MDQzRlx1MDQ0MFx1MDQzRVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MThcdTA0M0RcdTA0MzRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDJcdTA0M0VcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDE4XHUwNDQxXHUwNDNBXHUwNDNCXHUwNDRFXHUwNDQ3XHUwNDM1XHUwNDNEXHUwNDM4XHUwNDM1IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxQVx1MDQ0RFx1MDQ0OFx1MDQzOFx1MDQ0MFx1MDQzRVx1MDQzMlx1MDQzMFx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzOVx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MUNcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDFEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDE0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQxRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MUVcdTA0NDJcdTA0NDdcdTA0MzVcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDFGXHUwNDMwXHUwNDNGXHUwNDNBXHUwNDQzIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzQVx1MDQ0Mlx1MDQzRVx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjFcdTA0M0VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M0RcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzUgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDIxXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDNFXHUwNDNBIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0Q1x1MDQyMVx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzRVx1MDQzQVx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzQSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NENcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0M0VcdTA0NDdcdTA0M0RcdTA0MzhcdTA0M0EgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRDXHUwNDIxXHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDM5IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0VcdTA0NDFcdTA0NDJcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNFXHUwNDQ1XHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRVx1MDQ0NVx1MDQ0MFx1MDQyMVx1MDQzRlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0MzhcdTA0NDFcdTA0M0VcdTA0M0FcdTA0MjFcdTA0MzhcdTA0NDFcdTA0NDJcdTA0MzVcdTA0M0MgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQzOFx1MDQzQSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MTVcdTA0NDFcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDExXHUwNDNCXHUwNDNFXHUwNDNBXHUwNDIxXHUwNDNEXHUwNDRGXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxMVx1MDQzQlx1MDQzRVx1MDQzQVx1MDQyMVx1MDQzRFx1MDQ0Rlx1MDQ0Mlx1MDQ0Q1x1MDQyMFx1MDQzMFx1MDQ0MVx1MDQ0OCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MTFcdTA0M0JcdTA0M0VcdTA0M0FcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDE4XHUwNDM3XHUwNDNDXHUwNDFEXHUwNDMwXHUwNDMxXHUwNDE0XHUwNDMwXHUwNDNEIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxQVx1MDQzRVx1MDQzNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MURcdTA0M0VcdTA0M0NcdTA0MzVcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFFXHUwNDMxXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUVcdTA0NDJcdTA0M0NcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQxRlx1MDQzRVx1MDQzQlx1MDQzNVx1MDQxN1x1MDQzRFx1MDQzMFx1MDQ0NyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MUZcdTA0M0VcdTA0M0JcdTA0MzVcdTA0MThcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxMlx1MDQzMlx1MDQzNVx1MDQzNFx1MDQxN1x1MDQzRCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MURcdTA0M0VcdTA0MzJcdTA0NEJcdTA0MzUgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDFGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQxN1x1MDQzRCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjBcdTA0MzVcdTA0M0FcdTA0MzJcdTA0MjBcdTA0MzVcdTA0MzZcdTA0MzhcdTA0M0MgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDIyXHUwNDM4XHUwNDNGXHUwNDIyXHUwNDM1XHUwNDNBXHUwNDQxXHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjFcdTA0M0VcdTA0NDFcdTA0NDIgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIxXHUwNDNFXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQxOFx1MDQ0Mlx1MDQzRVx1MDQzMyBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDFBXHUwNDNFXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQxQ1x1MDQzMFx1MDQzQVx1MDQ0MSBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MUNcdTA0MzhcdTA0M0QgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDFGXHUwNDQwXHUwNDM1XHUwNDM0IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzMVx1MDQzQlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQyMVx1MDQzQlx1MDQzNVx1MDQzNCBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjJcdTA0MzFcdTA0M0JcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzQgXCJcbiAgICArIFwiXHUwNDIxXHUwNDNGXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIzXHUwNDM0IFwiXG4gICAgKyBcIlx1MDQyMVx1MDQzRlx1MDQ0MFx1MDQyMlx1MDQzNVx1MDQzQVx1MDQxRlx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0MVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjFcdTA0M0ZcdTA0NDBcdTA0MjNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDIxXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDNEXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDIxXHUwNDQyXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQ0Mlx1MDQ0MFx1MDQxMlx1MDQzNVx1MDQ0MFx1MDQ0NVx1MDQyMFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcIlxuICAgICsgXCJcdTA0MjFcdTA0NDJcdTA0NDBcdTA0MURcdTA0MzhcdTA0MzZcdTA0M0RcdTA0MjBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyMVx1MDQ0M1x1MDQzQ1x1MDQxRlx1MDQ0MFx1MDQzRVx1MDQzRiBcIlxuICAgICsgXCJcdTA0MjFcdTA0NDZcdTA0MzVcdTA0M0RcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzkgXCJcbiAgICArIFwiXHUwNDIxXHUwNDQ2XHUwNDM1XHUwNDNEXHUwNDMwXHUwNDQwXHUwNDM4XHUwNDM5XHUwNDFGXHUwNDMwXHUwNDQwXHUwNDMwXHUwNDNDIFwiXG4gICAgKyBcIlx1MDQyMlx1MDQzNVx1MDQzQVx1MDQxMlx1MDQzNVx1MDQ0MFx1MDQ0MVx1MDQzOFx1MDQ0RiBcIlxuICAgICsgXCJcdTA0MjJcdTA0MzVcdTA0M0FcdTA0MUVcdTA0NDBcdTA0MzMgXCJcbiAgICArIFwiXHUwNDIyXHUwNDNFXHUwNDQ3XHUwNDNEIFwiXG4gICAgKyBcIlx1MDQyMlx1MDQ0MFx1MDQzMFx1MDQzRCBcIlxuICAgICsgXCJcdTA0MjJcdTA0NDBcdTA0MzBcdTA0M0RcdTA0NDFcdTA0M0JcdTA0MzhcdTA0NDJcdTA0MzVcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NEYgXCJcbiAgICArIFwiXHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNCXHUwNDM4XHUwNDQyXHUwNDRDXHUwNDIyXHUwNDMwXHUwNDMxXHUwNDNCXHUwNDM4XHUwNDQ2XHUwNDQzIFwiXG4gICAgKyBcIlx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzOFx1MDQ0Mlx1MDQ0Q1x1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQiBcIlxuICAgICsgXCJcdTA0MjNcdTA0MzRcdTA0MjFcdTA0M0ZcdTA0NDAgXCJcbiAgICArIFwiXHUwNDIzXHUwNDM0XHUwNDIxXHUwNDQyXHUwNDQwXHUwNDIyXHUwNDMxXHUwNDNCXHUwNDIxXHUwNDNGXHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyM1x1MDQ0MVx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjNcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0M0VcdTA0MzJcdTA0M0FcdTA0MzhcdTA0MUFcdTA0M0VcdTA0M0RcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M0RcdTA0NDIgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDEwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyXHUwNDIxXHUwNDQ3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0Mlx1MDQyM1x1MDQ0MVx1MDQ0Mlx1MDQzMFx1MDQzRFx1MDQzRVx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MTJcdTA0NDBcdTA0MzVcdTA0M0NcdTA0NEYgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDEyXHUwNDQwXHUwNDM1XHUwNDNDXHUwNDRGXHUwNDIzXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDNFXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxMlx1MDQ0Qlx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MTdcdTA0MzBcdTA0M0RcdTA0NEZcdTA0NDIgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDE3XHUwNDMwXHUwNDNGXHUwNDM4XHUwNDQxXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxOFx1MDQ0MVx1MDQzQVx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUFcdTA0M0VcdTA0M0ZcdTA0MzhcdTA0NDBcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFDXHUwNDNFXHUwNDM2XHUwNDNEXHUwNDNFXHUwNDI3XHUwNDM4XHUwNDQyXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxRVx1MDQ0Mlx1MDQzQVx1MDQ0MFx1MDQ0Qlx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzhcdTA0M0NcdTA0MzVcdTA0M0RcdTA0M0VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDFGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNBXHUwNDNFXHUwNDM0XHUwNDM4XHUwNDQwXHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRDIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQxRlx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzQ1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MUZcdTA0NDBcdTA0M0VcdTA0NDFcdTA0M0NcdTA0M0VcdTA0NDJcdTA0NDBcdTA0MzVcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIwXHUwNDMwXHUwNDM3XHUwNDNDXHUwNDM1XHUwNDQwIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQyMVx1MDQzRVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjFcdTA0NDFcdTA0NEJcdTA0M0JcdTA0M0FcdTA0MzBcdTA0MjFcdTA0M0VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDMwXHUwNDM5XHUwNDNCXHUwNDIxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzMFx1MDQzOVx1MDQzQlx1MDQyMVx1MDQ0N1x1MDQzOFx1MDQ0Mlx1MDQzMFx1MDQ0Mlx1MDQ0QyBcIlxuICAgICsgXCJcdTA0MjRcdTA0MzBcdTA0MzlcdTA0M0JcdTA0MjNcdTA0MzRcdTA0MzBcdTA0M0JcdTA0MzhcdTA0NDJcdTA0NEMgXCJcbiAgICArIFwiXHUwNDI0XHUwNDNDXHUwNDQyU1FMXHUwNDE0XHUwNDMwXHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzQ1x1MDQ0Mlx1MDQxNFx1MDQzMFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjRcdTA0M0NcdTA0NDJcdTA0MjFcdTA0NDJcdTA0NDAgXCJcbiAgICArIFwiXHUwNDI0XHUwNDNDXHUwNDQyXHUwNDI3XHUwNDQxXHUwNDNCIFwiXG4gICAgKyBcIlx1MDQyNFx1MDQzRVx1MDQ0MFx1MDQzQ1x1MDQzMFx1MDQ0MiBcIlxuICAgICsgXCJcdTA0MjZcdTA0MUNcdTA0MzBcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzJcdTA0MkRcdTA0M0JcdTA0MzVcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDIgXCJcbiAgICArIFwiXHUwNDI2XHUwNDFEXHUwNDMwXHUwNDMxXHUwNDNFXHUwNDQwXHUwNDE0XHUwNDMwXHUwNDNEXHUwNDNEXHUwNDRCXHUwNDQ1XHUwNDIwXHUwNDM1XHUwNDNBXHUwNDMyXHUwNDM4XHUwNDM3XHUwNDM4XHUwNDQyIFwiXG4gICAgKyBcIlx1MDQyNlx1MDQxRlx1MDQzRVx1MDQzNFx1MDQ0MVx1MDQ0Mlx1MDQ0MCBcIjtcblxuICAvLyBcdTA0MUZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0M0VcdTA0M0ZcdTA0NDBcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M0JcdTA0MzVcdTA0M0RcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1ID09PiBidWlsdF9pblxuICBjb25zdCBwcmVkZWZpbmVkX3ZhcmlhYmxlcyA9XG4gICAgXCJBbHRTdGF0ZSBcIlxuICAgICsgXCJBcHBsaWNhdGlvbiBcIlxuICAgICsgXCJDYWxsVHlwZSBcIlxuICAgICsgXCJDb21wb25lbnRUb2tlbnMgXCJcbiAgICArIFwiQ3JlYXRlZEpvYnMgXCJcbiAgICArIFwiQ3JlYXRlZE5vdGljZXMgXCJcbiAgICArIFwiQ29udHJvbFN0YXRlIFwiXG4gICAgKyBcIkRpYWxvZ1Jlc3VsdCBcIlxuICAgICsgXCJEaWFsb2dzIFwiXG4gICAgKyBcIkVEb2N1bWVudHMgXCJcbiAgICArIFwiRURvY3VtZW50VmVyc2lvblNvdXJjZSBcIlxuICAgICsgXCJGb2xkZXJzIFwiXG4gICAgKyBcIkdsb2JhbElEcyBcIlxuICAgICsgXCJKb2IgXCJcbiAgICArIFwiSm9icyBcIlxuICAgICsgXCJJbnB1dFZhbHVlIFwiXG4gICAgKyBcIkxvb2tVcFJlZmVyZW5jZSBcIlxuICAgICsgXCJMb29rVXBSZXF1aXNpdGVOYW1lcyBcIlxuICAgICsgXCJMb29rVXBTZWFyY2ggXCJcbiAgICArIFwiT2JqZWN0IFwiXG4gICAgKyBcIlBhcmVudENvbXBvbmVudCBcIlxuICAgICsgXCJQcm9jZXNzZXMgXCJcbiAgICArIFwiUmVmZXJlbmNlcyBcIlxuICAgICsgXCJSZXF1aXNpdGUgXCJcbiAgICArIFwiUmVwb3J0TmFtZSBcIlxuICAgICsgXCJSZXBvcnRzIFwiXG4gICAgKyBcIlJlc3VsdCBcIlxuICAgICsgXCJTY3JpcHRzIFwiXG4gICAgKyBcIlNlYXJjaGVzIFwiXG4gICAgKyBcIlNlbGVjdGVkQXR0YWNobWVudHMgXCJcbiAgICArIFwiU2VsZWN0ZWRJdGVtcyBcIlxuICAgICsgXCJTZWxlY3RNb2RlIFwiXG4gICAgKyBcIlNlbmRlciBcIlxuICAgICsgXCJTZXJ2ZXJFdmVudHMgXCJcbiAgICArIFwiU2VydmljZUZhY3RvcnkgXCJcbiAgICArIFwiU2hpZnRTdGF0ZSBcIlxuICAgICsgXCJTdWJUYXNrIFwiXG4gICAgKyBcIlN5c3RlbURpYWxvZ3MgXCJcbiAgICArIFwiVGFza3MgXCJcbiAgICArIFwiV2l6YXJkIFwiXG4gICAgKyBcIldpemFyZHMgXCJcbiAgICArIFwiV29yayBcIlxuICAgICsgXCJcdTA0MTJcdTA0NEJcdTA0MzdcdTA0M0VcdTA0MzJcdTA0MjFcdTA0M0ZcdTA0M0VcdTA0NDFcdTA0M0VcdTA0MzEgXCJcbiAgICArIFwiXHUwNDE4XHUwNDNDXHUwNDRGXHUwNDFFXHUwNDQyXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMwIFwiXG4gICAgKyBcIlx1MDQyMFx1MDQzNVx1MDQzQVx1MDQzMlx1MDQxN1x1MDQzRFx1MDQzMFx1MDQ0NyBcIjtcblxuICAvLyBcdTA0MThcdTA0M0RcdTA0NDJcdTA0MzVcdTA0NDBcdTA0NDRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NEIgPT0+IHR5cGVcbiAgY29uc3QgaW50ZXJmYWNlcyA9XG4gICAgXCJJQXBwbGljYXRpb24gXCJcbiAgICArIFwiSUFjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJJQWNjb3VudFJlcG9zaXRvcnkgXCJcbiAgICArIFwiSUFjY291bnRTZWxlY3Rpb25SZXN0cmljdGlvbnMgXCJcbiAgICArIFwiSUFjdGlvbiBcIlxuICAgICsgXCJJQWN0aW9uTGlzdCBcIlxuICAgICsgXCJJQWRtaW5pc3RyYXRpb25IaXN0b3J5RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSUFuY2hvcnMgXCJcbiAgICArIFwiSUFwcGxpY2F0aW9uIFwiXG4gICAgKyBcIklBcmNoaXZlSW5mbyBcIlxuICAgICsgXCJJQXR0YWNobWVudCBcIlxuICAgICsgXCJJQXR0YWNobWVudExpc3QgXCJcbiAgICArIFwiSUNoZWNrTGlzdEJveCBcIlxuICAgICsgXCJJQ2hlY2tQb2ludGVkTGlzdCBcIlxuICAgICsgXCJJQ29sdW1uIFwiXG4gICAgKyBcIklDb21wb25lbnQgXCJcbiAgICArIFwiSUNvbXBvbmVudERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklDb21wb25lbnRUb2tlbiBcIlxuICAgICsgXCJJQ29tcG9uZW50VG9rZW5GYWN0b3J5IFwiXG4gICAgKyBcIklDb21wb25lbnRUb2tlbkluZm8gXCJcbiAgICArIFwiSUNvbXBSZWNvcmRJbmZvIFwiXG4gICAgKyBcIklDb25uZWN0aW9uIFwiXG4gICAgKyBcIklDb250ZW50cyBcIlxuICAgICsgXCJJQ29udHJvbCBcIlxuICAgICsgXCJJQ29udHJvbEpvYiBcIlxuICAgICsgXCJJQ29udHJvbEpvYkluZm8gXCJcbiAgICArIFwiSUNvbnRyb2xMaXN0IFwiXG4gICAgKyBcIklDcnlwdG8gXCJcbiAgICArIFwiSUNyeXB0bzIgXCJcbiAgICArIFwiSUN1c3RvbUpvYiBcIlxuICAgICsgXCJJQ3VzdG9tSm9iSW5mbyBcIlxuICAgICsgXCJJQ3VzdG9tTGlzdEJveCBcIlxuICAgICsgXCJJQ3VzdG9tT2JqZWN0V2l6YXJkU3RlcCBcIlxuICAgICsgXCJJQ3VzdG9tV29yayBcIlxuICAgICsgXCJJQ3VzdG9tV29ya0luZm8gXCJcbiAgICArIFwiSURhdGFTZXQgXCJcbiAgICArIFwiSURhdGFTZXRBY2Nlc3NJbmZvIFwiXG4gICAgKyBcIklEYXRhU2lnbmVyIFwiXG4gICAgKyBcIklEYXRlQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklEYXRlUmVxdWlzaXRlIFwiXG4gICAgKyBcIklEYXRlUmVxdWlzaXRlRGVzY3JpcHRpb24gXCJcbiAgICArIFwiSURhdGVWYWx1ZSBcIlxuICAgICsgXCJJRGVhQWNjZXNzUmlnaHRzIFwiXG4gICAgKyBcIklEZWFPYmplY3RJbmZvIFwiXG4gICAgKyBcIklEZXZlbG9wbWVudENvbXBvbmVudExvY2sgXCJcbiAgICArIFwiSURpYWxvZyBcIlxuICAgICsgXCJJRGlhbG9nRmFjdG9yeSBcIlxuICAgICsgXCJJRGlhbG9nUGlja1JlcXVpc2l0ZUl0ZW1zIFwiXG4gICAgKyBcIklEaWFsb2dzRmFjdG9yeSBcIlxuICAgICsgXCJJRElDU0ZhY3RvcnkgXCJcbiAgICArIFwiSURvY1JlcXVpc2l0ZSBcIlxuICAgICsgXCJJRG9jdW1lbnRJbmZvIFwiXG4gICAgKyBcIklEdWFsTGlzdERpYWxvZyBcIlxuICAgICsgXCJJRUNlcnRpZmljYXRlIFwiXG4gICAgKyBcIklFQ2VydGlmaWNhdGVJbmZvIFwiXG4gICAgKyBcIklFQ2VydGlmaWNhdGVzIFwiXG4gICAgKyBcIklFZGl0Q29udHJvbCBcIlxuICAgICsgXCJJRWRpdG9yRm9ybSBcIlxuICAgICsgXCJJRWRtc0V4cGxvcmVyIFwiXG4gICAgKyBcIklFZG1zT2JqZWN0IFwiXG4gICAgKyBcIklFZG1zT2JqZWN0RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSUVkbXNPYmplY3RGYWN0b3J5IFwiXG4gICAgKyBcIklFZG1zT2JqZWN0SW5mbyBcIlxuICAgICsgXCJJRURvY3VtZW50IFwiXG4gICAgKyBcIklFRG9jdW1lbnRBY2Nlc3NSaWdodHMgXCJcbiAgICArIFwiSUVEb2N1bWVudERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklFRG9jdW1lbnRFZGl0b3IgXCJcbiAgICArIFwiSUVEb2N1bWVudEZhY3RvcnkgXCJcbiAgICArIFwiSUVEb2N1bWVudEluZm8gXCJcbiAgICArIFwiSUVEb2N1bWVudFN0b3JhZ2UgXCJcbiAgICArIFwiSUVEb2N1bWVudFZlcnNpb24gXCJcbiAgICArIFwiSUVEb2N1bWVudFZlcnNpb25MaXN0RGlhbG9nIFwiXG4gICAgKyBcIklFRG9jdW1lbnRWZXJzaW9uU291cmNlIFwiXG4gICAgKyBcIklFRG9jdW1lbnRXaXphcmRTdGVwIFwiXG4gICAgKyBcIklFRG9jVmVyU2lnbmF0dXJlIFwiXG4gICAgKyBcIklFRG9jVmVyc2lvblN0YXRlIFwiXG4gICAgKyBcIklFbmFibGVkTW9kZSBcIlxuICAgICsgXCJJRW5jb2RlUHJvdmlkZXIgXCJcbiAgICArIFwiSUVuY3J5cHRlciBcIlxuICAgICsgXCJJRXZlbnQgXCJcbiAgICArIFwiSUV2ZW50TGlzdCBcIlxuICAgICsgXCJJRXhjZXB0aW9uIFwiXG4gICAgKyBcIklFeHRlcm5hbEV2ZW50cyBcIlxuICAgICsgXCJJRXh0ZXJuYWxIYW5kbGVyIFwiXG4gICAgKyBcIklGYWN0b3J5IFwiXG4gICAgKyBcIklGaWVsZCBcIlxuICAgICsgXCJJRmlsZURpYWxvZyBcIlxuICAgICsgXCJJRm9sZGVyIFwiXG4gICAgKyBcIklGb2xkZXJEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJRm9sZGVyRGlhbG9nIFwiXG4gICAgKyBcIklGb2xkZXJGYWN0b3J5IFwiXG4gICAgKyBcIklGb2xkZXJJbmZvIFwiXG4gICAgKyBcIklGb3JFYWNoIFwiXG4gICAgKyBcIklGb3JtIFwiXG4gICAgKyBcIklGb3JtVGl0bGUgXCJcbiAgICArIFwiSUZvcm1XaXphcmRTdGVwIFwiXG4gICAgKyBcIklHbG9iYWxJREZhY3RvcnkgXCJcbiAgICArIFwiSUdsb2JhbElESW5mbyBcIlxuICAgICsgXCJJR3JpZCBcIlxuICAgICsgXCJJSGFzaGVyIFwiXG4gICAgKyBcIklIaXN0b3J5RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSUh5cGVyTGlua0NvbnRyb2wgXCJcbiAgICArIFwiSUltYWdlQnV0dG9uIFwiXG4gICAgKyBcIklJbWFnZUNvbnRyb2wgXCJcbiAgICArIFwiSUlubmVyUGFuZWwgXCJcbiAgICArIFwiSUlucGxhY2VIaW50IFwiXG4gICAgKyBcIklJbnRlZ2VyQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklJbnRlZ2VyTGlzdCBcIlxuICAgICsgXCJJSW50ZWdlclJlcXVpc2l0ZSBcIlxuICAgICsgXCJJSW50ZWdlclZhbHVlIFwiXG4gICAgKyBcIklJU0JMRWRpdG9yRm9ybSBcIlxuICAgICsgXCJJSm9iIFwiXG4gICAgKyBcIklKb2JEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJSm9iRmFjdG9yeSBcIlxuICAgICsgXCJJSm9iRm9ybSBcIlxuICAgICsgXCJJSm9iSW5mbyBcIlxuICAgICsgXCJJTGFiZWxDb250cm9sIFwiXG4gICAgKyBcIklMYXJnZUludGVnZXJDcml0ZXJpb24gXCJcbiAgICArIFwiSUxhcmdlSW50ZWdlclJlcXVpc2l0ZSBcIlxuICAgICsgXCJJTGFyZ2VJbnRlZ2VyVmFsdWUgXCJcbiAgICArIFwiSUxpY2Vuc2VJbmZvIFwiXG4gICAgKyBcIklMaWZlQ3ljbGVTdGFnZSBcIlxuICAgICsgXCJJTGlzdCBcIlxuICAgICsgXCJJTGlzdEJveCBcIlxuICAgICsgXCJJTG9jYWxJREluZm8gXCJcbiAgICArIFwiSUxvY2FsaXphdGlvbiBcIlxuICAgICsgXCJJTG9jayBcIlxuICAgICsgXCJJTWVtb3J5RGF0YVNldCBcIlxuICAgICsgXCJJTWVzc2FnaW5nRmFjdG9yeSBcIlxuICAgICsgXCJJTWV0YWRhdGFSZXBvc2l0b3J5IFwiXG4gICAgKyBcIklOb3RpY2UgXCJcbiAgICArIFwiSU5vdGljZUluZm8gXCJcbiAgICArIFwiSU51bWVyaWNDcml0ZXJpb24gXCJcbiAgICArIFwiSU51bWVyaWNSZXF1aXNpdGUgXCJcbiAgICArIFwiSU51bWVyaWNWYWx1ZSBcIlxuICAgICsgXCJJT2JqZWN0IFwiXG4gICAgKyBcIklPYmplY3REZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJT2JqZWN0SW1wb3J0ZXIgXCJcbiAgICArIFwiSU9iamVjdEluZm8gXCJcbiAgICArIFwiSU9ic2VydmVyIFwiXG4gICAgKyBcIklQYW5lbEdyb3VwIFwiXG4gICAgKyBcIklQaWNrQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklQaWNrUHJvcGVydHkgXCJcbiAgICArIFwiSVBpY2tSZXF1aXNpdGUgXCJcbiAgICArIFwiSVBpY2tSZXF1aXNpdGVEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJUGlja1JlcXVpc2l0ZUl0ZW0gXCJcbiAgICArIFwiSVBpY2tSZXF1aXNpdGVJdGVtcyBcIlxuICAgICsgXCJJUGlja1ZhbHVlIFwiXG4gICAgKyBcIklQcml2aWxlZ2UgXCJcbiAgICArIFwiSVByaXZpbGVnZUxpc3QgXCJcbiAgICArIFwiSVByb2Nlc3MgXCJcbiAgICArIFwiSVByb2Nlc3NGYWN0b3J5IFwiXG4gICAgKyBcIklQcm9jZXNzTWVzc2FnZSBcIlxuICAgICsgXCJJUHJvZ3Jlc3MgXCJcbiAgICArIFwiSVByb3BlcnR5IFwiXG4gICAgKyBcIklQcm9wZXJ0eUNoYW5nZUV2ZW50IFwiXG4gICAgKyBcIklRdWVyeSBcIlxuICAgICsgXCJJUmVmZXJlbmNlIFwiXG4gICAgKyBcIklSZWZlcmVuY2VDcml0ZXJpb24gXCJcbiAgICArIFwiSVJlZmVyZW5jZUVuYWJsZWRNb2RlIFwiXG4gICAgKyBcIklSZWZlcmVuY2VGYWN0b3J5IFwiXG4gICAgKyBcIklSZWZlcmVuY2VIaXN0b3J5RGVzY3JpcHRpb24gXCJcbiAgICArIFwiSVJlZmVyZW5jZUluZm8gXCJcbiAgICArIFwiSVJlZmVyZW5jZVJlY29yZENhcmRXaXphcmRTdGVwIFwiXG4gICAgKyBcIklSZWZlcmVuY2VSZXF1aXNpdGVEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJUmVmZXJlbmNlc0ZhY3RvcnkgXCJcbiAgICArIFwiSVJlZmVyZW5jZVZhbHVlIFwiXG4gICAgKyBcIklSZWZSZXF1aXNpdGUgXCJcbiAgICArIFwiSVJlcG9ydCBcIlxuICAgICsgXCJJUmVwb3J0RmFjdG9yeSBcIlxuICAgICsgXCJJUmVxdWlzaXRlIFwiXG4gICAgKyBcIklSZXF1aXNpdGVEZXNjcmlwdGlvbiBcIlxuICAgICsgXCJJUmVxdWlzaXRlRGVzY3JpcHRpb25MaXN0IFwiXG4gICAgKyBcIklSZXF1aXNpdGVGYWN0b3J5IFwiXG4gICAgKyBcIklSaWNoRWRpdCBcIlxuICAgICsgXCJJUm91dGVTdGVwIFwiXG4gICAgKyBcIklSdWxlIFwiXG4gICAgKyBcIklSdWxlTGlzdCBcIlxuICAgICsgXCJJU2NoZW1lQmxvY2sgXCJcbiAgICArIFwiSVNjcmlwdCBcIlxuICAgICsgXCJJU2NyaXB0RmFjdG9yeSBcIlxuICAgICsgXCJJU2VhcmNoQ3JpdGVyaWEgXCJcbiAgICArIFwiSVNlYXJjaENyaXRlcmlvbiBcIlxuICAgICsgXCJJU2VhcmNoRGVzY3JpcHRpb24gXCJcbiAgICArIFwiSVNlYXJjaEZhY3RvcnkgXCJcbiAgICArIFwiSVNlYXJjaEZvbGRlckluZm8gXCJcbiAgICArIFwiSVNlYXJjaEZvck9iamVjdERlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklTZWFyY2hSZXN1bHRSZXN0cmljdGlvbnMgXCJcbiAgICArIFwiSVNlY3VyZWRDb250ZXh0IFwiXG4gICAgKyBcIklTZWxlY3REaWFsb2cgXCJcbiAgICArIFwiSVNlcnZlckV2ZW50IFwiXG4gICAgKyBcIklTZXJ2ZXJFdmVudEZhY3RvcnkgXCJcbiAgICArIFwiSVNlcnZpY2VEaWFsb2cgXCJcbiAgICArIFwiSVNlcnZpY2VGYWN0b3J5IFwiXG4gICAgKyBcIklTaWduYXR1cmUgXCJcbiAgICArIFwiSVNpZ25Qcm92aWRlciBcIlxuICAgICsgXCJJU2lnblByb3ZpZGVyMiBcIlxuICAgICsgXCJJU2lnblByb3ZpZGVyMyBcIlxuICAgICsgXCJJU2ltcGxlQ3JpdGVyaW9uIFwiXG4gICAgKyBcIklTdHJpbmdDcml0ZXJpb24gXCJcbiAgICArIFwiSVN0cmluZ0xpc3QgXCJcbiAgICArIFwiSVN0cmluZ1JlcXVpc2l0ZSBcIlxuICAgICsgXCJJU3RyaW5nUmVxdWlzaXRlRGVzY3JpcHRpb24gXCJcbiAgICArIFwiSVN0cmluZ1ZhbHVlIFwiXG4gICAgKyBcIklTeXN0ZW1EaWFsb2dzRmFjdG9yeSBcIlxuICAgICsgXCJJU3lzdGVtSW5mbyBcIlxuICAgICsgXCJJVGFiU2hlZXQgXCJcbiAgICArIFwiSVRhc2sgXCJcbiAgICArIFwiSVRhc2tBYm9ydFJlYXNvbkluZm8gXCJcbiAgICArIFwiSVRhc2tDYXJkV2l6YXJkU3RlcCBcIlxuICAgICsgXCJJVGFza0Rlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklUYXNrRmFjdG9yeSBcIlxuICAgICsgXCJJVGFza0luZm8gXCJcbiAgICArIFwiSVRhc2tSb3V0ZSBcIlxuICAgICsgXCJJVGV4dENyaXRlcmlvbiBcIlxuICAgICsgXCJJVGV4dFJlcXVpc2l0ZSBcIlxuICAgICsgXCJJVGV4dFZhbHVlIFwiXG4gICAgKyBcIklUcmVlTGlzdFNlbGVjdERpYWxvZyBcIlxuICAgICsgXCJJVXNlciBcIlxuICAgICsgXCJJVXNlckxpc3QgXCJcbiAgICArIFwiSVZhbHVlIFwiXG4gICAgKyBcIklWaWV3IFwiXG4gICAgKyBcIklXZWJCcm93c2VyQ29udHJvbCBcIlxuICAgICsgXCJJV2l6YXJkIFwiXG4gICAgKyBcIklXaXphcmRBY3Rpb24gXCJcbiAgICArIFwiSVdpemFyZEZhY3RvcnkgXCJcbiAgICArIFwiSVdpemFyZEZvcm1FbGVtZW50IFwiXG4gICAgKyBcIklXaXphcmRQYXJhbSBcIlxuICAgICsgXCJJV2l6YXJkUGlja1BhcmFtIFwiXG4gICAgKyBcIklXaXphcmRSZWZlcmVuY2VQYXJhbSBcIlxuICAgICsgXCJJV2l6YXJkU3RlcCBcIlxuICAgICsgXCJJV29ya0FjY2Vzc1JpZ2h0cyBcIlxuICAgICsgXCJJV29ya0Rlc2NyaXB0aW9uIFwiXG4gICAgKyBcIklXb3JrZmxvd0Fza2FibGVQYXJhbSBcIlxuICAgICsgXCJJV29ya2Zsb3dBc2thYmxlUGFyYW1zIFwiXG4gICAgKyBcIklXb3JrZmxvd0Jsb2NrIFwiXG4gICAgKyBcIklXb3JrZmxvd0Jsb2NrUmVzdWx0IFwiXG4gICAgKyBcIklXb3JrZmxvd0VuYWJsZWRNb2RlIFwiXG4gICAgKyBcIklXb3JrZmxvd1BhcmFtIFwiXG4gICAgKyBcIklXb3JrZmxvd1BpY2tQYXJhbSBcIlxuICAgICsgXCJJV29ya2Zsb3dSZWZlcmVuY2VQYXJhbSBcIlxuICAgICsgXCJJV29ya1N0YXRlIFwiXG4gICAgKyBcIklXb3JrVHJlZUN1c3RvbU5vZGUgXCJcbiAgICArIFwiSVdvcmtUcmVlSm9iTm9kZSBcIlxuICAgICsgXCJJV29ya1RyZWVUYXNrTm9kZSBcIlxuICAgICsgXCJJWE1MRWRpdG9yRm9ybSBcIlxuICAgICsgXCJTQkNyeXB0byBcIjtcblxuICAvLyBidWlsdF9pbiA6IFx1MDQzMlx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQzNVx1MDQzRFx1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0MzhcdTA0M0JcdTA0MzggXHUwNDMxXHUwNDM4XHUwNDMxXHUwNDNCXHUwNDM4XHUwNDNFXHUwNDQyXHUwNDM1XHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRVx1MDQzMVx1MDQ0QVx1MDQzNVx1MDQzQVx1MDQ0Mlx1MDQ0QiAoXHUwNDNBXHUwNDNFXHUwNDNEXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDNEXHUwNDQyXHUwNDRCLCBcdTA0M0ZcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDdcdTA0MzhcdTA0NDFcdTA0M0JcdTA0MzVcdTA0M0RcdTA0MzhcdTA0NEYpXG4gIGNvbnN0IEJVSUxUSU4gPSBDT05TVEFOVFMgKyBFTlVNUztcblxuICAvLyBjbGFzczogXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQzRFx1MDQzMFx1MDQzMVx1MDQzRVx1MDQ0MFx1MDQ0QiBcdTA0MzdcdTA0M0RcdTA0MzBcdTA0NDdcdTA0MzVcdTA0M0RcdTA0MzhcdTA0MzksIFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzRFx1MDQ0Qlx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NEFcdTA0MzVcdTA0M0FcdTA0NDJcdTA0NEIsIFx1MDQ0NFx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOFx1MDQzQVx1MDQzOFxuICBjb25zdCBDTEFTUyA9IHByZWRlZmluZWRfdmFyaWFibGVzO1xuXG4gIC8vIGxpdGVyYWwgOiBcdTA0M0ZcdTA0NDBcdTA0MzhcdTA0M0NcdTA0MzhcdTA0NDJcdTA0MzhcdTA0MzJcdTA0M0RcdTA0NEJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNGXHUwNDRCXG4gIGNvbnN0IExJVEVSQUwgPSBcIm51bGwgdHJ1ZSBmYWxzZSBuaWwgXCI7XG5cbiAgLy8gbnVtYmVyIDogXHUwNDQ3XHUwNDM4XHUwNDQxXHUwNDNCXHUwNDMwXG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiBcIm51bWJlclwiLFxuICAgIGJlZ2luOiBobGpzLk5VTUJFUl9SRSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyBzdHJpbmcgOiBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M0VcdTA0M0FcdTA0MzhcbiAgY29uc3QgU1RSSU5HUyA9IHtcbiAgICBjbGFzc05hbWU6IFwic3RyaW5nXCIsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiJ1wiLFxuICAgICAgICBlbmQ6IFwiJ1wiXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIC8vIFx1MDQyMlx1MDQzRVx1MDQzQVx1MDQzNVx1MDQzRFx1MDQ0QlxuICBjb25zdCBET0NUQUdTID0ge1xuICAgIGNsYXNzTmFtZTogXCJkb2N0YWdcIixcbiAgICBiZWdpbjogXCJcXFxcYig/OlRPRE98RE9ORXxCRUdJTnxFTkR8U1RVQnxDSEd8RklYTUV8Tk9URXxCVUd8WFhYKVxcXFxiXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgLy8gXHUwNDFFXHUwNDM0XHUwNDNEXHUwNDNFXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDQ3XHUwNDNEXHUwNDRCXHUwNDM5IFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzOVxuICBjb25zdCBJU0JMX0xJTkVfQ09NTUVOVF9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgYmVnaW46IFwiLy9cIixcbiAgICBlbmQ6IFwiJFwiLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5QSFJBU0FMX1dPUkRTX01PREUsXG4gICAgICBET0NUQUdTXG4gICAgXVxuICB9O1xuXG4gIC8vIFx1MDQxQ1x1MDQzRFx1MDQzRVx1MDQzM1x1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzRVx1MDQ0N1x1MDQzRFx1MDQ0Qlx1MDQzOSBcdTA0M0FcdTA0M0VcdTA0M0NcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzBcdTA0NDBcdTA0MzhcdTA0MzlcbiAgY29uc3QgSVNCTF9CTE9DS19DT01NRU5UX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICBiZWdpbjogXCIvXFxcXCpcIixcbiAgICBlbmQ6IFwiXFxcXCovXCIsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlBIUkFTQUxfV09SRFNfTU9ERSxcbiAgICAgIERPQ1RBR1NcbiAgICBdXG4gIH07XG5cbiAgLy8gY29tbWVudCA6IFx1MDQzQVx1MDQzRVx1MDQzQ1x1MDQzQ1x1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzOFxuICBjb25zdCBDT01NRU5UUyA9IHsgdmFyaWFudHM6IFtcbiAgICBJU0JMX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIElTQkxfQkxPQ0tfQ09NTUVOVF9NT0RFXG4gIF0gfTtcblxuICAvLyBrZXl3b3JkcyA6IFx1MDQzQVx1MDQzQlx1MDQ0RVx1MDQ0N1x1MDQzNVx1MDQzMlx1MDQ0Qlx1MDQzNSBcdTA0NDFcdTA0M0JcdTA0M0VcdTA0MzJcdTA0MzBcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAgJHBhdHRlcm46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAga2V5d29yZDogS0VZV09SRCxcbiAgICBidWlsdF9pbjogQlVJTFRJTixcbiAgICBjbGFzczogQ0xBU1MsXG4gICAgbGl0ZXJhbDogTElURVJBTFxuICB9O1xuXG4gIC8vIG1ldGhvZHMgOiBcdTA0M0NcdTA0MzVcdTA0NDJcdTA0M0VcdTA0MzRcdTA0NEJcbiAgY29uc3QgTUVUSE9EUyA9IHtcbiAgICBiZWdpbjogXCJcXFxcLlxcXFxzKlwiICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvLyB0eXBlIDogXHUwNDMyXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNFXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzRlx1MDQ0QlxuICBjb25zdCBUWVBFUyA9IHtcbiAgICBjbGFzc05hbWU6IFwidHlwZVwiLFxuICAgIGJlZ2luOiBcIjpbIFxcXFx0XSooXCIgKyBpbnRlcmZhY2VzLnRyaW0oKS5yZXBsYWNlKC9cXHMvZywgXCJ8XCIpICsgXCIpXCIsXG4gICAgZW5kOiBcIlsgXFxcXHRdKj1cIixcbiAgICBleGNsdWRlRW5kOiB0cnVlXG4gIH07XG5cbiAgLy8gdmFyaWFibGVzIDogXHUwNDNGXHUwNDM1XHUwNDQwXHUwNDM1XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDNEXHUwNDRCXHUwNDM1XG4gIGNvbnN0IFZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgYmVnaW46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUWVBFUyxcbiAgICAgIE1FVEhPRFNcbiAgICBdXG4gIH07XG5cbiAgLy8gXHUwNDE4XHUwNDNDXHUwNDM1XHUwNDNEXHUwNDMwIFx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOVxuICBjb25zdCBGVU5DVElPTl9USVRMRSA9IEZVTkNUSU9OX05BTUVfSURFTlRfUkUgKyBcIlxcXFwoXCI7XG5cbiAgY29uc3QgVElUTEVfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6IFwidGl0bGVcIixcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IFVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICBidWlsdF9pbjogc3lzdGVtX2Z1bmN0aW9uc1xuICAgIH0sXG4gICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgIGVuZDogXCJcXFxcKFwiLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgfTtcblxuICAvLyBmdW5jdGlvbiA6IFx1MDQ0NFx1MDQ0M1x1MDQzRFx1MDQzQVx1MDQ0Nlx1MDQzOFx1MDQzOFxuICBjb25zdCBGVU5DVElPTlMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImZ1bmN0aW9uXCIsXG4gICAgYmVnaW46IEZVTkNUSU9OX1RJVExFLFxuICAgIGVuZDogXCJcXFxcKSRcIixcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogXCJbXFxcXFtcXFxcXVxcXFx8XFxcXCRcXFxcPyUsfiNAXVwiLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUSVRMRV9NT0RFLFxuICAgICAgTUVUSE9EUyxcbiAgICAgIFZBUklBQkxFUyxcbiAgICAgIFNUUklOR1MsXG4gICAgICBOVU1CRVJTLFxuICAgICAgQ09NTUVOVFNcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSVNCTCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogXCJcXFxcJHxcXFxcP3wlfCx8OyR8fnwjfEB8PC9cIixcbiAgICBjb250YWluczogW1xuICAgICAgRlVOQ1RJT05TLFxuICAgICAgVFlQRVMsXG4gICAgICBNRVRIT0RTLFxuICAgICAgVkFSSUFCTEVTLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIE5VTUJFUlMsXG4gICAgICBDT01NRU5UU1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc2JsO1xuIiwgIi8vIGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS9zcGVjcy9qbHMvc2UxNS9odG1sL2pscy0zLmh0bWwjamxzLTMuMTBcbnZhciBkZWNpbWFsRGlnaXRzID0gJ1swLTldKF8qWzAtOV0pKic7XG52YXIgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG52YXIgaGV4RGlnaXRzID0gJ1swLTlhLWZBLUZdKF8qWzAtOWEtZkEtRl0pKic7XG52YXIgTlVNRVJJQyA9IHtcbiAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgdmFyaWFudHM6IFtcbiAgICAvLyBEZWNpbWFsRmxvYXRpbmdQb2ludExpdGVyYWxcbiAgICAvLyBpbmNsdWRpbmcgRXhwb25lbnRQYXJ0XG4gICAgeyBiZWdpbjogYChcXFxcYigke2RlY2ltYWxEaWdpdHN9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICBgW2VFXVsrLV0/KCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdP1xcXFxiYCB9LFxuICAgIC8vIGV4Y2x1ZGluZyBFeHBvbmVudFBhcnRcbiAgICB7IGJlZ2luOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoKCR7ZnJhY30pW2ZGZERdP1xcXFxifFxcXFwuKFtmRmREXVxcXFxiKT8pYCB9LFxuICAgIHsgYmVnaW46IGAoJHtmcmFjfSlbZkZkRF0/XFxcXGJgIH0sXG4gICAgeyBiZWdpbjogYFxcXFxiKCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdXFxcXGJgIH0sXG5cbiAgICAvLyBIZXhhZGVjaW1hbEZsb2F0aW5nUG9pbnRMaXRlcmFsXG4gICAgeyBiZWdpbjogYFxcXFxiMFt4WF0oKCR7aGV4RGlnaXRzfSlcXFxcLj98KCR7aGV4RGlnaXRzfSk/XFxcXC4oJHtoZXhEaWdpdHN9KSlgICtcbiAgICAgIGBbcFBdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlbZkZkRF0/XFxcXGJgIH0sXG5cbiAgICAvLyBEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIoMHxbMS05XShfKlswLTldKSopW2xMXT9cXFxcYicgfSxcblxuICAgIC8vIEhleEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogYFxcXFxiMFt4WF0oJHtoZXhEaWdpdHN9KVtsTF0/XFxcXGJgIH0sXG5cbiAgICAvLyBPY3RhbEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiMChfKlswLTddKSpbbExdP1xcXFxiJyB9LFxuXG4gICAgLy8gQmluYXJ5SW50ZWdlckxpdGVyYWxcbiAgICB7IGJlZ2luOiAnXFxcXGIwW2JCXVswMV0oXypbMDFdKSpbbExdP1xcXFxiJyB9LFxuICBdLFxuICByZWxldmFuY2U6IDBcbn07XG5cbi8qXG5MYW5ndWFnZTogSmF2YVxuQXV0aG9yOiBWc2V2b2xvZCBTb2xvdnlvdiA8dnNldm9sb2Quc29sb3Z5b3ZAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vbiwgZW50ZXJwcmlzZVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuamF2YS5jb20vXG4qL1xuXG5cbi8qKlxuICogQWxsb3dzIHJlY3Vyc2l2ZSByZWdleCBleHByZXNzaW9ucyB0byBhIGdpdmVuIGRlcHRoXG4gKlxuICogaWU6IHJlY3VyUmVnZXgoXCIoYWJjfn5+KVwiLCAvfn5+L2csIDIpIGJlY29tZXM6XG4gKiAoYWJjKGFiYyhhYmMpKSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVcbiAqIEBwYXJhbSB7UmVnRXhwfSBzdWJzdGl0dXRpb24gKHNob3VsZCBiZSBhIGcgbW9kZSByZWdleClcbiAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aFxuICogQHJldHVybnMge3N0cmluZ31gYFxuICovXG5mdW5jdGlvbiByZWN1clJlZ2V4KHJlLCBzdWJzdGl0dXRpb24sIGRlcHRoKSB7XG4gIGlmIChkZXB0aCA9PT0gLTEpIHJldHVybiBcIlwiO1xuXG4gIHJldHVybiByZS5yZXBsYWNlKHN1YnN0aXR1dGlvbiwgXyA9PiB7XG4gICAgcmV0dXJuIHJlY3VyUmVnZXgocmUsIHN1YnN0aXR1dGlvbiwgZGVwdGggLSAxKTtcbiAgfSk7XG59XG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBKQVZBX0lERU5UX1JFID0gJ1tcXHUwMEMwLVxcdTAyQjhhLXpBLVpfJF1bXFx1MDBDMC1cXHUwMkI4YS16QS1aXyQwLTldKic7XG4gIGNvbnN0IEdFTkVSSUNfSURFTlRfUkUgPSBKQVZBX0lERU5UX1JFXG4gICAgKyByZWN1clJlZ2V4KCcoPzo8JyArIEpBVkFfSURFTlRfUkUgKyAnfn5+KD86XFxcXHMqLFxcXFxzKicgKyBKQVZBX0lERU5UX1JFICsgJ35+fikqPik/JywgL35+fi9nLCAyKTtcbiAgY29uc3QgTUFJTl9LRVlXT1JEUyA9IFtcbiAgICAnc3luY2hyb25pemVkJyxcbiAgICAnYWJzdHJhY3QnLFxuICAgICdwcml2YXRlJyxcbiAgICAndmFyJyxcbiAgICAnc3RhdGljJyxcbiAgICAnaWYnLFxuICAgICdjb25zdCAnLFxuICAgICdmb3InLFxuICAgICd3aGlsZScsXG4gICAgJ3N0cmljdGZwJyxcbiAgICAnZmluYWxseScsXG4gICAgJ3Byb3RlY3RlZCcsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ25hdGl2ZScsXG4gICAgJ2ZpbmFsJyxcbiAgICAndm9pZCcsXG4gICAgJ2VudW0nLFxuICAgICdlbHNlJyxcbiAgICAnYnJlYWsnLFxuICAgICd0cmFuc2llbnQnLFxuICAgICdjYXRjaCcsXG4gICAgJ2luc3RhbmNlb2YnLFxuICAgICd2b2xhdGlsZScsXG4gICAgJ2Nhc2UnLFxuICAgICdhc3NlcnQnLFxuICAgICdwYWNrYWdlJyxcbiAgICAnZGVmYXVsdCcsXG4gICAgJ3B1YmxpYycsXG4gICAgJ3RyeScsXG4gICAgJ3N3aXRjaCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAndGhyb3dzJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAncHVibGljJyxcbiAgICAncHJpdmF0ZScsXG4gICAgJ21vZHVsZScsXG4gICAgJ3JlcXVpcmVzJyxcbiAgICAnZXhwb3J0cycsXG4gICAgJ2RvJyxcbiAgICAnc2VhbGVkJyxcbiAgICAneWllbGQnLFxuICAgICdwZXJtaXRzJyxcbiAgICAnZ290bydcbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgJ3N1cGVyJyxcbiAgICAndGhpcydcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAnZmFsc2UnLFxuICAgICd0cnVlJyxcbiAgICAnbnVsbCdcbiAgXTtcblxuICBjb25zdCBUWVBFUyA9IFtcbiAgICAnY2hhcicsXG4gICAgJ2Jvb2xlYW4nLFxuICAgICdsb25nJyxcbiAgICAnZmxvYXQnLFxuICAgICdpbnQnLFxuICAgICdieXRlJyxcbiAgICAnc2hvcnQnLFxuICAgICdkb3VibGUnXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogTUFJTl9LRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICB0eXBlOiBUWVBFUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gIH07XG5cbiAgY29uc3QgQU5OT1RBVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AnICsgSkFWQV9JREVOVF9SRSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGNvbnRhaW5zOiBbIFwic2VsZlwiIF0gLy8gYWxsb3cgbmVzdGVkICgpIGluc2lkZSBvdXIgYW5ub3RhdGlvblxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogWyBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFIF0sXG4gICAgZW5kc1BhcmVudDogdHJ1ZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0phdmEnLFxuICAgIGFsaWFzZXM6IFsgJ2pzcCcgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLzxcXC98Iy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKlxcXFwqJyxcbiAgICAgICAgJ1xcXFwqLycsXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gZWF0IHVwIEAncyBpbiBlbWFpbHMgdG8gcHJldmVudCB0aGVtIHRvIGJlIHJlY29nbml6ZWQgYXMgZG9jdGFnc1xuICAgICAgICAgICAgICBiZWdpbjogL1xcdytALyxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgICBiZWdpbjogJ0BbQS1aYS16XSsnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgLy8gcmVsZXZhbmNlIGJvb3N0XG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvaW1wb3J0IGphdmFcXC5bYS16XStcXC4vLFxuICAgICAgICBrZXl3b3JkczogXCJpbXBvcnRcIixcbiAgICAgICAgcmVsZXZhbmNlOiAyXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjbGFzc05hbWU6IFwic3RyaW5nXCIsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvXFxiKD86Y2xhc3N8aW50ZXJmYWNlfGVudW18ZXh0ZW5kc3xpbXBsZW1lbnRzfG5ldykvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBKQVZBX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBFeGNlcHRpb25zIGZvciBoeXBoZW5hdGVkIGtleXdvcmRzXG4gICAgICAgIG1hdGNoOiAvbm9uLXNlYWxlZC8sXG4gICAgICAgIHNjb3BlOiBcImtleXdvcmRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICByZWdleC5jb25jYXQoLyg/IWVsc2UpLywgSkFWQV9JREVOVF9SRSksXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIEpBVkFfSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC89KD8hPSkvXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwidHlwZVwiLFxuICAgICAgICAgIDM6IFwidmFyaWFibGVcIixcbiAgICAgICAgICA1OiBcIm9wZXJhdG9yXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvcmVjb3JkLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgSkFWQV9JREVOVF9SRVxuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBQQVJBTVMsXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gRXhwcmVzc2lvbiBrZXl3b3JkcyBwcmV2ZW50ICdrZXl3b3JkIE5hbWUoLi4uKScgZnJvbSBiZWluZ1xuICAgICAgICAvLyByZWNvZ25pemVkIGFzIGEgZnVuY3Rpb24gZGVmaW5pdGlvblxuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmV3IHRocm93IHJldHVybiBlbHNlJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgICcoPzonICsgR0VORVJJQ19JREVOVF9SRSArICdcXFxccyspJyxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMjogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIEFOTk9UQVRJT04sXG4gICAgICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgICAgTlVNRVJJQyxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIE5VTUVSSUMsXG4gICAgICBBTk5PVEFUSU9OXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGphdmE7XG4iLCAiY29uc3QgSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbmNvbnN0IEtFWVdPUkRTID0gW1xuICBcImFzXCIsIC8vIGZvciBleHBvcnRzXG4gIFwiaW5cIixcbiAgXCJvZlwiLFxuICBcImlmXCIsXG4gIFwiZm9yXCIsXG4gIFwid2hpbGVcIixcbiAgXCJmaW5hbGx5XCIsXG4gIFwidmFyXCIsXG4gIFwibmV3XCIsXG4gIFwiZnVuY3Rpb25cIixcbiAgXCJkb1wiLFxuICBcInJldHVyblwiLFxuICBcInZvaWRcIixcbiAgXCJlbHNlXCIsXG4gIFwiYnJlYWtcIixcbiAgXCJjYXRjaFwiLFxuICBcImluc3RhbmNlb2ZcIixcbiAgXCJ3aXRoXCIsXG4gIFwidGhyb3dcIixcbiAgXCJjYXNlXCIsXG4gIFwiZGVmYXVsdFwiLFxuICBcInRyeVwiLFxuICBcInN3aXRjaFwiLFxuICBcImNvbnRpbnVlXCIsXG4gIFwidHlwZW9mXCIsXG4gIFwiZGVsZXRlXCIsXG4gIFwibGV0XCIsXG4gIFwieWllbGRcIixcbiAgXCJjb25zdFwiLFxuICBcImNsYXNzXCIsXG4gIC8vIEpTIGhhbmRsZXMgdGhlc2Ugd2l0aCBhIHNwZWNpYWwgcnVsZVxuICAvLyBcImdldFwiLFxuICAvLyBcInNldFwiLFxuICBcImRlYnVnZ2VyXCIsXG4gIFwiYXN5bmNcIixcbiAgXCJhd2FpdFwiLFxuICBcInN0YXRpY1wiLFxuICBcImltcG9ydFwiLFxuICBcImZyb21cIixcbiAgXCJleHBvcnRcIixcbiAgXCJleHRlbmRzXCJcbl07XG5jb25zdCBMSVRFUkFMUyA9IFtcbiAgXCJ0cnVlXCIsXG4gIFwiZmFsc2VcIixcbiAgXCJudWxsXCIsXG4gIFwidW5kZWZpbmVkXCIsXG4gIFwiTmFOXCIsXG4gIFwiSW5maW5pdHlcIlxuXTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHNcbmNvbnN0IFRZUEVTID0gW1xuICAvLyBGdW5kYW1lbnRhbCBvYmplY3RzXG4gIFwiT2JqZWN0XCIsXG4gIFwiRnVuY3Rpb25cIixcbiAgXCJCb29sZWFuXCIsXG4gIFwiU3ltYm9sXCIsXG4gIC8vIG51bWJlcnMgYW5kIGRhdGVzXG4gIFwiTWF0aFwiLFxuICBcIkRhdGVcIixcbiAgXCJOdW1iZXJcIixcbiAgXCJCaWdJbnRcIixcbiAgLy8gdGV4dFxuICBcIlN0cmluZ1wiLFxuICBcIlJlZ0V4cFwiLFxuICAvLyBJbmRleGVkIGNvbGxlY3Rpb25zXG4gIFwiQXJyYXlcIixcbiAgXCJGbG9hdDMyQXJyYXlcIixcbiAgXCJGbG9hdDY0QXJyYXlcIixcbiAgXCJJbnQ4QXJyYXlcIixcbiAgXCJVaW50OEFycmF5XCIsXG4gIFwiVWludDhDbGFtcGVkQXJyYXlcIixcbiAgXCJJbnQxNkFycmF5XCIsXG4gIFwiSW50MzJBcnJheVwiLFxuICBcIlVpbnQxNkFycmF5XCIsXG4gIFwiVWludDMyQXJyYXlcIixcbiAgXCJCaWdJbnQ2NEFycmF5XCIsXG4gIFwiQmlnVWludDY0QXJyYXlcIixcbiAgLy8gS2V5ZWQgY29sbGVjdGlvbnNcbiAgXCJTZXRcIixcbiAgXCJNYXBcIixcbiAgXCJXZWFrU2V0XCIsXG4gIFwiV2Vha01hcFwiLFxuICAvLyBTdHJ1Y3R1cmVkIGRhdGFcbiAgXCJBcnJheUJ1ZmZlclwiLFxuICBcIlNoYXJlZEFycmF5QnVmZmVyXCIsXG4gIFwiQXRvbWljc1wiLFxuICBcIkRhdGFWaWV3XCIsXG4gIFwiSlNPTlwiLFxuICAvLyBDb250cm9sIGFic3RyYWN0aW9uIG9iamVjdHNcbiAgXCJQcm9taXNlXCIsXG4gIFwiR2VuZXJhdG9yXCIsXG4gIFwiR2VuZXJhdG9yRnVuY3Rpb25cIixcbiAgXCJBc3luY0Z1bmN0aW9uXCIsXG4gIC8vIFJlZmxlY3Rpb25cbiAgXCJSZWZsZWN0XCIsXG4gIFwiUHJveHlcIixcbiAgLy8gSW50ZXJuYXRpb25hbGl6YXRpb25cbiAgXCJJbnRsXCIsXG4gIC8vIFdlYkFzc2VtYmx5XG4gIFwiV2ViQXNzZW1ibHlcIlxuXTtcblxuY29uc3QgRVJST1JfVFlQRVMgPSBbXG4gIFwiRXJyb3JcIixcbiAgXCJFdmFsRXJyb3JcIixcbiAgXCJJbnRlcm5hbEVycm9yXCIsXG4gIFwiUmFuZ2VFcnJvclwiLFxuICBcIlJlZmVyZW5jZUVycm9yXCIsXG4gIFwiU3ludGF4RXJyb3JcIixcbiAgXCJUeXBlRXJyb3JcIixcbiAgXCJVUklFcnJvclwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTl9HTE9CQUxTID0gW1xuICBcInNldEludGVydmFsXCIsXG4gIFwic2V0VGltZW91dFwiLFxuICBcImNsZWFySW50ZXJ2YWxcIixcbiAgXCJjbGVhclRpbWVvdXRcIixcblxuICBcInJlcXVpcmVcIixcbiAgXCJleHBvcnRzXCIsXG5cbiAgXCJldmFsXCIsXG4gIFwiaXNGaW5pdGVcIixcbiAgXCJpc05hTlwiLFxuICBcInBhcnNlRmxvYXRcIixcbiAgXCJwYXJzZUludFwiLFxuICBcImRlY29kZVVSSVwiLFxuICBcImRlY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVuY29kZVVSSVwiLFxuICBcImVuY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVzY2FwZVwiLFxuICBcInVuZXNjYXBlXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX1ZBUklBQkxFUyA9IFtcbiAgXCJhcmd1bWVudHNcIixcbiAgXCJ0aGlzXCIsXG4gIFwic3VwZXJcIixcbiAgXCJjb25zb2xlXCIsXG4gIFwid2luZG93XCIsXG4gIFwiZG9jdW1lbnRcIixcbiAgXCJsb2NhbFN0b3JhZ2VcIixcbiAgXCJzZXNzaW9uU3RvcmFnZVwiLFxuICBcIm1vZHVsZVwiLFxuICBcImdsb2JhbFwiIC8vIE5vZGUuanNcbl07XG5cbmNvbnN0IEJVSUxUX0lOUyA9IFtdLmNvbmNhdChcbiAgQlVJTFRfSU5fR0xPQkFMUyxcbiAgVFlQRVMsXG4gIEVSUk9SX1RZUEVTXG4pO1xuXG4vKlxuTGFuZ3VhZ2U6IEphdmFTY3JpcHRcbkRlc2NyaXB0aW9uOiBKYXZhU2NyaXB0IChKUykgaXMgYSBsaWdodHdlaWdodCwgaW50ZXJwcmV0ZWQsIG9yIGp1c3QtaW4tdGltZSBjb21waWxlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aXRoIGZpcnN0LWNsYXNzIGZ1bmN0aW9ucy5cbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZywgd2ViXG5XZWJzaXRlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0XG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvKipcbiAgICogVGFrZXMgYSBzdHJpbmcgbGlrZSBcIjxCb29nZXJcIiBhbmQgY2hlY2tzIHRvIHNlZVxuICAgKiBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIFwiPC9Cb29nZXJcIiBsYXRlciBpbiB0aGVcbiAgICogY29udGVudC5cbiAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgKiBAcGFyYW0ge3thZnRlcjpudW1iZXJ9fSBwYXJhbTFcbiAgICovXG4gIGNvbnN0IGhhc0Nsb3NpbmdUYWcgPSAobWF0Y2gsIHsgYWZ0ZXIgfSkgPT4ge1xuICAgIGNvbnN0IHRhZyA9IFwiPC9cIiArIG1hdGNoWzBdLnNsaWNlKDEpO1xuICAgIGNvbnN0IHBvcyA9IG1hdGNoLmlucHV0LmluZGV4T2YodGFnLCBhZnRlcik7XG4gICAgcmV0dXJuIHBvcyAhPT0gLTE7XG4gIH07XG5cbiAgY29uc3QgSURFTlRfUkUkMSA9IElERU5UX1JFO1xuICBjb25zdCBGUkFHTUVOVCA9IHtcbiAgICBiZWdpbjogJzw+JyxcbiAgICBlbmQ6ICc8Lz4nXG4gIH07XG4gIC8vIHRvIGF2b2lkIHNvbWUgc3BlY2lhbCBjYXNlcyBpbnNpZGUgaXNUcnVseU9wZW5pbmdUYWdcbiAgY29uc3QgWE1MX1NFTEZfQ0xPU0lORyA9IC88W0EtWmEtejAtOVxcXFwuXzotXStcXHMqXFwvPi87XG4gIGNvbnN0IFhNTF9UQUcgPSB7XG4gICAgYmVnaW46IC88W0EtWmEtejAtOVxcXFwuXzotXSsvLFxuICAgIGVuZDogL1xcL1tBLVphLXowLTlcXFxcLl86LV0rPnxcXC8+LyxcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICAgICAqL1xuICAgIGlzVHJ1bHlPcGVuaW5nVGFnOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBhZnRlck1hdGNoSW5kZXggPSBtYXRjaFswXS5sZW5ndGggKyBtYXRjaC5pbmRleDtcbiAgICAgIGNvbnN0IG5leHRDaGFyID0gbWF0Y2guaW5wdXRbYWZ0ZXJNYXRjaEluZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSFRNTCBzaG91bGQgbm90IGluY2x1ZGUgYW5vdGhlciByYXcgYDxgIGluc2lkZSBhIHRhZ1xuICAgICAgICAvLyBuZXN0ZWQgdHlwZT9cbiAgICAgICAgLy8gYDxBcnJheTxBcnJheTxudW1iZXI+PmAsIGV0Yy5cbiAgICAgICAgbmV4dENoYXIgPT09IFwiPFwiIHx8XG4gICAgICAgIC8vIHRoZSAsIGdpdmVzIGF3YXkgdGhhdCB0aGlzIGlzIG5vdCBIVE1MXG4gICAgICAgIC8vIGA8VCwgQSBleHRlbmRzIGtleW9mIFQsIFY+YFxuICAgICAgICBuZXh0Q2hhciA9PT0gXCIsXCJcbiAgICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYDxzb21ldGhpbmc+YFxuICAgICAgLy8gUXVpdGUgcG9zc2libHkgYSB0YWcsIGxldHMgbG9vayBmb3IgYSBtYXRjaGluZyBjbG9zaW5nIHRhZy4uLlxuICAgICAgaWYgKG5leHRDaGFyID09PSBcIj5cIikge1xuICAgICAgICAvLyBpZiB3ZSBjYW5ub3QgZmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgdGFnLCB0aGVuIHdlXG4gICAgICAgIC8vIHdpbGwgaWdub3JlIGl0XG4gICAgICAgIGlmICghaGFzQ2xvc2luZ1RhZyhtYXRjaCwgeyBhZnRlcjogYWZ0ZXJNYXRjaEluZGV4IH0pKSB7XG4gICAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBgPGJsYWggLz5gIChzZWxmLWNsb3NpbmcpXG4gICAgICAvLyBoYW5kbGVkIGJ5IHNpbXBsZVNlbGZDbG9zaW5nIHJ1bGVcblxuICAgICAgbGV0IG07XG4gICAgICBjb25zdCBhZnRlck1hdGNoID0gbWF0Y2guaW5wdXQuc3Vic3RyaW5nKGFmdGVyTWF0Y2hJbmRleCk7XG5cbiAgICAgIC8vIHNvbWUgbW9yZSB0ZW1wbGF0ZSB0eXBpbmcgc3R1ZmZcbiAgICAgIC8vICA8VCA9IGFueT4oa2V5Pzogc3RyaW5nKSA9PiBNb2RpZnk8XG4gICAgICBpZiAoKG0gPSBhZnRlck1hdGNoLm1hdGNoKC9eXFxzKj0vKSkpIHtcbiAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBgPEZyb20gZXh0ZW5kcyBzdHJpbmc+YFxuICAgICAgLy8gdGVjaG5pY2FsbHkgdGhpcyBjb3VsZCBiZSBIVE1MLCBidXQgaXQgc21lbGxzIGxpa2UgYSB0eXBlXG4gICAgICAvLyBOT1RFOiBUaGlzIGlzIHVnaCwgYnV0IGFkZGVkIHNwZWNpZmljYWxseSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzI3NlxuICAgICAgaWYgKChtID0gYWZ0ZXJNYXRjaC5tYXRjaCgvXlxccytleHRlbmRzXFxzKy8pKSkge1xuICAgICAgICBpZiAobS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogQlVJTFRfSU5fVkFSSUFCTEVTXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1saXRlcmFscy1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxEaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG4gIC8vIERlY2ltYWxJbnRlZ2VyTGl0ZXJhbCwgaW5jbHVkaW5nIEFubmV4IEIgTm9uT2N0YWxEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZGRpdGlvbmFsLXN5bnRheC1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxJbnRlZ2VyID0gYDB8WzEtOV0oXz9bMC05XSkqfDBbMC03XSpbODldWzAtOV0qYDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIERlY2ltYWxMaXRlcmFsXG4gICAgICB7IGJlZ2luOiBgKFxcXFxiKCR7ZGVjaW1hbEludGVnZXJ9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICAgIGBbZUVdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxJbnRlZ2VyfSlcXFxcYigoJHtmcmFjfSlcXFxcYnxcXFxcLik/fCgke2ZyYWN9KVxcXFxiYCB9LFxuXG4gICAgICAvLyBEZWNpbWFsQmlnSW50ZWdlckxpdGVyYWxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigwfFsxLTldKF8/WzAtOV0pKiluXFxcXGJgIH0sXG5cbiAgICAgIC8vIE5vbkRlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW29PXVswLTddKF8/WzAtN10pKm4/XFxcXGJcIiB9LFxuXG4gICAgICAvLyBMZWdhY3lPY3RhbEludGVnZXJMaXRlcmFsIChkb2VzIG5vdCBpbmNsdWRlIHVuZGVyc2NvcmUgc2VwYXJhdG9ycylcbiAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWRkaXRpb25hbC1zeW50YXgtbnVtZXJpYy1saXRlcmFsc1xuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbMC03XStuP1xcXFxiXCIgfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1xcXFwkXFxcXHsnLFxuICAgIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBjb250YWluczogW10gLy8gZGVmaW5lZCBsYXRlclxuICB9O1xuICBjb25zdCBIVE1MX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2h0bWxgJyxcbiAgICBlbmQ6ICcnLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnYCcsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICBTVUJTVFxuICAgICAgXSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NTX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2Nzc2AnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdjc3MnXG4gICAgfVxuICB9O1xuICBjb25zdCBHUkFQSFFMX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2dxbGAnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdncmFwaHFsJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVEVNUExBVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdgJyxcbiAgICBlbmQ6ICdgJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IEpTRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICdcXFxcKi8nLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyg/PUBbQS1aYS16XSspJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHsnLFxuICAgICAgICAgICAgICBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSQxICsgJyg/PVxcXFxzKigtKXwkKScsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGVhdCBzcGFjZXMgKG5vdCBuZXdsaW5lcykgc28gd2UgY2FuIGZpbmRcbiAgICAgICAgICAgIC8vIHR5cGVzIG9yIHZhcmlhYmxlc1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogLyg/PVteXFxuXSlcXHMvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gICk7XG4gIGNvbnN0IENPTU1FTlQgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgSlNET0NfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IFNVQlNUX0lOVEVSTkFMUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBIVE1MX1RFTVBMQVRFLFxuICAgIENTU19URU1QTEFURSxcbiAgICBHUkFQSFFMX1RFTVBMQVRFLFxuICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAvLyBTa2lwIG51bWJlcnMgd2hlbiB0aGV5IGFyZSBwYXJ0IG9mIGEgdmFyaWFibGUgbmFtZVxuICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgIE5VTUJFUixcbiAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsOlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMjg4XG4gICAgLy8gaGxqcy5SRUdFWFBfTU9ERVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFNVQlNUX0lOVEVSTkFMU1xuICAgIC5jb25jYXQoe1xuICAgICAgLy8gd2UgbmVlZCB0byBwYWlyIHVwIHt9IGluc2lkZSBvdXIgc3Vic3QgdG8gcHJldmVudFxuICAgICAgLy8gaXQgZnJvbSBlbmRpbmcgdG9vIGVhcmx5IGJ5IG1hdGNoaW5nIGFub3RoZXIgfVxuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9LyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgXCJzZWxmXCJcbiAgICAgIF0uY29uY2F0KFNVQlNUX0lOVEVSTkFMUylcbiAgICB9KTtcbiAgY29uc3QgU1VCU1RfQU5EX0NPTU1FTlRTID0gW10uY29uY2F0KENPTU1FTlQsIFNVQlNULmNvbnRhaW5zKTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1RfQU5EX0NPTU1FTlRTLmNvbmNhdChbXG4gICAgLy8gZWF0IHJlY3Vyc2l2ZSBwYXJlbnMgaW4gc3ViIGV4cHJlc3Npb25zXG4gICAge1xuICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcInNlbGZcIl0uY29uY2F0KFNVQlNUX0FORF9DT01NRU5UUylcbiAgICB9XG4gIF0pO1xuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAvLyBjb252ZXJ0IHRoaXMgdG8gbmVnYXRpdmUgbG9va2JlaGluZCBpbiB2MTJcbiAgICBiZWdpbjogLyhcXHMqKVxcKC8sIC8vIHRvIG1hdGNoIHRoZSBwYXJtcyB3aXRoIFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgY29udGFpbnM6IFBBUkFNU19DT05UQUlOU1xuICB9O1xuXG4gIC8vIEVTNiBjbGFzc2VzXG4gIGNvbnN0IENMQVNTX09SX0VYVEVORFMgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIGNsYXNzIENhciBleHRlbmRzIHZlaGljbGVcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICAvZXh0ZW5kcy8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIHJlZ2V4LmNvbmNhdChJREVOVF9SRSQxLCBcIihcIiwgcmVnZXguY29uY2F0KC9cXC4vLCBJREVOVF9SRSQxKSwgXCIpKlwiKVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgICAgICA1OiBcImtleXdvcmRcIixcbiAgICAgICAgICA3OiBcInRpdGxlLmNsYXNzLmluaGVyaXRlZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjbGFzcyBDYXJcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfUkVGRVJFTkNFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDpcbiAgICByZWdleC5laXRoZXIoXG4gICAgICAvLyBIYXJkIGNvZGVkIGV4Y2VwdGlvbnNcbiAgICAgIC9cXGJKU09OLyxcbiAgICAgIC8vIEZsb2F0MzJBcnJheSwgT3V0VFxuICAgICAgL1xcYltBLVpdW2Etel0rKFtBLVpdW2Etel0qfFxcZCkqLyxcbiAgICAgIC8vIENTU0ZhY3RvcnksIENTU0ZhY3RvcnlUXG4gICAgICAvXFxiW0EtWl17Mix9KFtBLVpdW2Etel0rfFxcZCkrKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gRlBzLCBGUHNUXG4gICAgICAvXFxiW0EtWl17Mix9W2Etel0rKFtBLVpdW2Etel0rfFxcZCkqKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gUFxuICAgICAgLy8gc2luZ2xlIGxldHRlcnMgYXJlIG5vdCBoaWdobGlnaHRlZFxuICAgICAgLy8gQkxBSFxuICAgICAgLy8gdGhpcyB3aWxsIGJlIGZsYWdnZWQgYXMgYSBVUFBFUl9DQVNFX0NPTlNUQU5UIGluc3RlYWRcbiAgICApLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBfOiBbXG4gICAgICAgIC8vIHNlIHdlIHN0aWxsIGdldCByZWxldmFuY2UgY3JlZGl0IGZvciBKUyBsaWJyYXJ5IGNsYXNzZXNcbiAgICAgICAgLi4uVFlQRVMsXG4gICAgICAgIC4uLkVSUk9SX1RZUEVTXG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFVTRV9TVFJJQ1QgPSB7XG4gICAgbGFiZWw6IFwidXNlX3N0cmljdFwiLFxuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIHJlbGV2YW5jZTogMTAsXG4gICAgYmVnaW46IC9eXFxzKlsnXCJddXNlIChzdHJpY3R8YXNtKVsnXCJdL1xuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvZnVuY3Rpb24vLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC8oPz1cXHMqXFwoKS9cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGFub255bW91cyBmdW5jdGlvblxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9mdW5jdGlvbi8sXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdLFxuICAgIGlsbGVnYWw6IC8lL1xuICB9O1xuXG4gIGNvbnN0IFVQUEVSX0NBU0VfQ09OU1RBTlQgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiAvXFxiW0EtWl1bQS1aXzAtOV0rXFxiLyxcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGUuY29uc3RhbnRcIlxuICB9O1xuXG4gIGZ1bmN0aW9uIG5vbmVPZihsaXN0KSB7XG4gICAgcmV0dXJuIHJlZ2V4LmNvbmNhdChcIig/IVwiLCBsaXN0LmpvaW4oXCJ8XCIpLCBcIilcIik7XG4gIH1cblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIG5vbmVPZihbXG4gICAgICAgIC4uLkJVSUxUX0lOX0dMT0JBTFMsXG4gICAgICAgIFwic3VwZXJcIixcbiAgICAgICAgXCJpbXBvcnRcIlxuICAgICAgXS5tYXAoeCA9PiBgJHt4fVxcXFxzKlxcXFwoYCkpLFxuICAgICAgSURFTlRfUkUkMSwgcmVnZXgubG9va2FoZWFkKC9cXHMqXFwoLykpLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXC4vLCByZWdleC5sb29rYWhlYWQoXG4gICAgICByZWdleC5jb25jYXQoSURFTlRfUkUkMSwgLyg/IVswLTlBLVphLXokXyhdKS8pXG4gICAgKSksXG4gICAgZW5kOiBJREVOVF9SRSQxLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogXCJwcm90b3R5cGVcIixcbiAgICBjbGFzc05hbWU6IFwicHJvcGVydHlcIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBHRVRURVJfT1JfU0VUVEVSID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvZ2V0fHNldC8sXG4gICAgICAvXFxzKy8sXG4gICAgICBJREVOVF9SRSQxLFxuICAgICAgLyg/PVxcKCkvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBlYXQgdG8gYXZvaWQgZW1wdHkgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoXFwpL1xuICAgICAgfSxcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DX0xFQURfSU5fUkUgPSAnKFxcXFwoJyArXG4gICAgJ1teKCldKihcXFxcKCcgK1xuICAgICdbXigpXSooXFxcXCgnICtcbiAgICAnW14oKV0qJyArXG4gICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAnXFxcXClbXigpXSopKicgK1xuICAgICdcXFxcKXwnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJylcXFxccyo9Pic7XG5cbiAgY29uc3QgRlVOQ1RJT05fVkFSSUFCTEUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9jb25zdHx2YXJ8bGV0LywgL1xccysvLFxuICAgICAgSURFTlRfUkUkMSwgL1xccyovLFxuICAgICAgLz1cXHMqLyxcbiAgICAgIC8oYXN5bmNcXHMqKT8vLCAvLyBhc3luYyBpcyBvcHRpb25hbFxuICAgICAgcmVnZXgubG9va2FoZWFkKEZVTkNfTEVBRF9JTl9SRSlcbiAgICBdLFxuICAgIGtleXdvcmRzOiBcImFzeW5jXCIsXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKYXZhU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbJ2pzJywgJ2pzeCcsICdtanMnLCAnY2pzJ10sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgLy8gdGhpcyB3aWxsIGJlIGV4dGVuZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICBleHBvcnRzOiB7IFBBUkFNU19DT05UQUlOUywgQ0xBU1NfUkVGRVJFTkNFIH0sXG4gICAgaWxsZWdhbDogLyMoPyFbJF9BLXpdKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGxhYmVsOiBcInNoZWJhbmdcIixcbiAgICAgICAgYmluYXJ5OiBcIm5vZGVcIixcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9KSxcbiAgICAgIFVTRV9TVFJJQ1QsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgSFRNTF9URU1QTEFURSxcbiAgICAgIENTU19URU1QTEFURSxcbiAgICAgIEdSQVBIUUxfVEVNUExBVEUsXG4gICAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgLy8gU2tpcCBudW1iZXJzIHdoZW4gdGhleSBhcmUgcGFydCBvZiBhIHZhcmlhYmxlIG5hbWVcbiAgICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IElERU5UX1JFJDEgKyByZWdleC5sb29rYWhlYWQoJzonKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fVkFSSUFCTEUsXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09NTUVOVCxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gY291bnQgdGhlIHBhcmVucyB0byBtYWtlIHN1cmUgd2UgYWN0dWFsbHkgaGF2ZSB0aGVcbiAgICAgICAgICAgIC8vIGNvcnJlY3QgYm91bmRpbmcgKCApIGJlZm9yZSB0aGUgPT4uICBUaGVyZSBjb3VsZCBiZSBhbnkgbnVtYmVyIG9mXG4gICAgICAgICAgICAvLyBzdWItZXhwcmVzc2lvbnMgaW5zaWRlIGFsc28gc3Vycm91bmRlZCBieSBwYXJlbnMuXG4gICAgICAgICAgICBiZWdpbjogRlVOQ19MRUFEX0lOX1JFLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccyo9PicsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXChcXHMqXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogUEFSQU1TX0NPTlRBSU5TXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIGNvdWxkIGJlIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGFyYW1zIHRvIGEgZnVuY3Rpb24gY2FsbFxuICAgICAgICAgICAgYmVnaW46IC8sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC9cXHMrLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBKU1hcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHsgYmVnaW46IEZSQUdNRU5ULmJlZ2luLCBlbmQ6IEZSQUdNRU5ULmVuZCB9LFxuICAgICAgICAgICAgICB7IG1hdGNoOiBYTUxfU0VMRl9DTE9TSU5HIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogWE1MX1RBRy5iZWdpbixcbiAgICAgICAgICAgICAgICAvLyB3ZSBjYXJlZnVsbHkgY2hlY2sgdGhlIG9wZW5pbmcgdGFnIHRvIHNlZSBpZiBpdCB0cnVseVxuICAgICAgICAgICAgICAgIC8vIGlzIGEgdGFnIGFuZCBub3QgYSBmYWxzZSBwb3NpdGl2ZVxuICAgICAgICAgICAgICAgICdvbjpiZWdpbic6IFhNTF9UQUcuaXNUcnVseU9wZW5pbmdUYWcsXG4gICAgICAgICAgICAgICAgZW5kOiBYTUxfVEFHLmVuZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBYTUxfVEFHLmJlZ2luLFxuICAgICAgICAgICAgICAgIGVuZDogWE1MX1RBRy5lbmQsXG4gICAgICAgICAgICAgICAgc2tpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICAvLyBwcmV2ZW50IHRoaXMgZnJvbSBnZXR0aW5nIHN3YWxsb3dlZCB1cCBieSBmdW5jdGlvblxuICAgICAgICAvLyBzaW5jZSB0aGV5IGFwcGVhciBcImZ1bmN0aW9uIGxpa2VcIlxuICAgICAgICBiZWdpbktleXdvcmRzOiBcIndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3JcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjb3VudCB0aGUgcGFyZW5zIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZSBjb3JyZWN0XG4gICAgICAgIC8vIGJvdW5kaW5nICggKS4gIFRoZXJlIGNvdWxkIGJlIGFueSBudW1iZXIgb2Ygc3ViLWV4cHJlc3Npb25zIGluc2lkZVxuICAgICAgICAvLyBhbHNvIHN1cnJvdW5kZWQgYnkgcGFyZW5zLlxuICAgICAgICBiZWdpbjogJ1xcXFxiKD8hZnVuY3Rpb24pJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArXG4gICAgICAgICAgJ1xcXFwoJyArIC8vIGZpcnN0IHBhcmVuc1xuICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICAgJ1teKCldKicgK1xuICAgICAgICAgICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAgICAgICAnXFxcXClbXigpXSopKicgK1xuICAgICAgICAgICdcXFxcKVxcXFxzKlxcXFx7JywgLy8gZW5kIHBhcmVuc1xuICAgICAgICByZXR1cm5CZWdpbjp0cnVlLFxuICAgICAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBJREVOVF9SRSQxLCBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2F0Y2ggLi4uIHNvIGl0IHdvbid0IHRyaWdnZXIgdGhlIHByb3BlcnR5IHJ1bGUgYmVsb3dcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXC5cXC5cXC4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBQUk9QRVJUWV9BQ0NFU1MsXG4gICAgICAvLyBoYWNrOiBwcmV2ZW50cyBkZXRlY3Rpb24gb2Yga2V5d29yZHMgaW4gc29tZSBjaXJjdW1zdGFuY2VzXG4gICAgICAvLyAua2V5d29yZCgpXG4gICAgICAvLyAka2V5d29yZCA9IHhcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6ICdcXFxcJCcgKyBJREVOVF9SRSQxLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbIC9cXGJjb25zdHJ1Y3Rvcig/PVxccypcXCgpLyBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMTogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fQ0FMTCxcbiAgICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgICBDTEFTU19PUl9FWFRFTkRTLFxuICAgICAgR0VUVEVSX09SX1NFVFRFUixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBqYXZhc2NyaXB0O1xuIiwgIi8qXG4gTGFuZ3VhZ2U6IEpCb3NzIENMSVxuIEF1dGhvcjogUmFwaGFcdTAwRUJsIFBhcnJcdTAwRUJlIDxycGFycmVlQGVkYzRpdC5jb20+XG4gRGVzY3JpcHRpb246IGxhbmd1YWdlIGRlZmluaXRpb24gamJvc3MgY2xpXG4gV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLmpib3NzLm9yZy9hdXRob3IvZGlzcGxheS9XRkxZL0NvbW1hbmQrTGluZStJbnRlcmZhY2VcbiBDYXRlZ29yeTogY29uZmlnXG4gKi9cblxuZnVuY3Rpb24gamJvc3NDbGkoaGxqcykge1xuICBjb25zdCBQQVJBTSA9IHtcbiAgICBiZWdpbjogL1tcXHctXSsgKj0vLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IC9bXFx3LV0rL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUEFSQU1TQkxPQ0sgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBjb250YWluczogWyBQQVJBTSBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBPUEVSQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvOltcXHdcXC0uXSsvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBQQVRIID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXEIoW1xcLy5dKVtcXHdcXC0uXFwvPV0rL1xuICB9O1xuICBjb25zdCBDT01NQU5EX1BBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAvLS1bXFx3XFwtPVxcL10rL1xuICB9O1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKQm9zcyBDTEknLFxuICAgIGFsaWFzZXM6IFsgJ3dpbGRmbHktY2xpJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1thLXpcXC1dKycsXG4gICAgICBrZXl3b3JkOiAnYWxpYXMgYmF0Y2ggY2QgY2xlYXIgY29tbWFuZCBjb25uZWN0IGNvbm5lY3Rpb24tZmFjdG9yeSBjb25uZWN0aW9uLWluZm8gZGF0YS1zb3VyY2UgZGVwbG95ICdcbiAgICAgICsgJ2RlcGxveW1lbnQtaW5mbyBkZXBsb3ltZW50LW92ZXJsYXkgZWNobyBlY2hvLWRtciBoZWxwIGhpc3RvcnkgaWYgamRiYy1kcml2ZXItaW5mbyBqbXMtcXVldWV8MjAgam1zLXRvcGljfDIwIGxzICdcbiAgICAgICsgJ3BhdGNoIHB3ZCBxdWl0IHJlYWQtYXR0cmlidXRlIHJlYWQtb3BlcmF0aW9uIHJlbG9hZCByb2xsb3V0LXBsYW4gcnVuLWJhdGNoIHNldCBzaHV0ZG93biB0cnkgdW5hbGlhcyAnXG4gICAgICArICd1bmRlcGxveSB1bnNldCB2ZXJzaW9uIHhhLWRhdGEtc291cmNlJywgLy8gbW9kdWxlXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIENPTU1BTkRfUEFSQU1TLFxuICAgICAgT1BFUkFUSU9OLFxuICAgICAgUEFUSCxcbiAgICAgIFBBUkFNU0JMT0NLXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGpib3NzQ2xpO1xuIiwgIi8qXG5MYW5ndWFnZTogSlNPTlxuRGVzY3JpcHRpb246IEpTT04gKEphdmFTY3JpcHQgT2JqZWN0IE5vdGF0aW9uKSBpcyBhIGxpZ2h0d2VpZ2h0IGRhdGEtaW50ZXJjaGFuZ2UgZm9ybWF0LlxuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbldlYnNpdGU6IGh0dHA6Ly93d3cuanNvbi5vcmdcbkNhdGVnb3J5OiBjb21tb24sIHByb3RvY29scywgd2ViXG4qL1xuXG5mdW5jdGlvbiBqc29uKGhsanMpIHtcbiAgY29uc3QgQVRUUklCVVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgIGJlZ2luOiAvXCIoXFxcXC58W15cXFxcXCJcXHJcXG5dKSpcIig/PVxccyo6KS8sXG4gICAgcmVsZXZhbmNlOiAxLjAxXG4gIH07XG4gIGNvbnN0IFBVTkNUVUFUSU9OID0ge1xuICAgIG1hdGNoOiAvW3t9W1xcXSw6XS8sXG4gICAgY2xhc3NOYW1lOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIlxuICBdO1xuICAvLyBOT1RFOiBub3JtYWxseSB3ZSB3b3VsZCByZWx5IG9uIGBrZXl3b3Jkc2AgZm9yIHRoaXMgYnV0IHVzaW5nIGEgbW9kZSBoZXJlIGFsbG93cyB1c1xuICAvLyAtIHRvIHVzZSB0aGUgdmVyeSB0aWdodCBgaWxsZWdhbDogXFxTYCBydWxlIGxhdGVyIHRvIGZsYWcgYW55IG90aGVyIGNoYXJhY3RlclxuICAvLyAtIGFzIGlsbGVnYWwgaW5kaWNhdGluZyB0aGF0IGRlc3BpdGUgbG9va2luZyBsaWtlIEpTT04gd2UgZG8gbm90IHRydWx5IGhhdmVcbiAgLy8gLSBKU09OIGFuZCB0aHVzIGltcHJvdmUgZmFsc2UtcG9zaXRpdmVseSBncmVhdGx5IHNpbmNlIEpTT04gd2lsbCB0cnkgYW5kIGNsYWltXG4gIC8vIC0gYWxsIHNvcnRzIG9mIEpTT04gbG9va2luZyBzdHVmZlxuICBjb25zdCBMSVRFUkFMU19NT0RFID0ge1xuICAgIHNjb3BlOiBcImxpdGVyYWxcIixcbiAgICBiZWdpbktleXdvcmRzOiBMSVRFUkFMUy5qb2luKFwiIFwiKSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKU09OJyxcbiAgICBhbGlhc2VzOiBbJ2pzb25jJ10sXG4gICAga2V5d29yZHM6e1xuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFLFxuICAgICAgUFVOQ1RVQVRJT04sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgTElURVJBTFNfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdLFxuICAgIGlsbGVnYWw6ICdcXFxcUydcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBqc29uO1xuIiwgIi8qXG5MYW5ndWFnZTogSnVsaWFcbkRlc2NyaXB0aW9uOiBKdWxpYSBpcyBhIGhpZ2gtbGV2ZWwsIGhpZ2gtcGVyZm9ybWFuY2UsIGR5bmFtaWMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuXG5BdXRob3I6IEtlbnRhIFNhdG8gPGJpY3ljbGUxODg1QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogQWxleCBBcnNsYW4gPGFyYXJzbGFuQGNvbWNhc3QubmV0PiwgRnJlZHJpayBFa3JlIDxla3JlZnJlZHJpa0BnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2p1bGlhbGFuZy5vcmdcbkNhdGVnb3J5OiBzY2llbnRpZmljXG4qL1xuXG5mdW5jdGlvbiBqdWxpYShobGpzKSB7XG4gIC8vIFNpbmNlIHRoZXJlIGFyZSBudW1lcm91cyBzcGVjaWFsIG5hbWVzIGluIEp1bGlhLCBpdCBpcyB0b28gbXVjaCB0cm91YmxlXG4gIC8vIHRvIG1haW50YWluIHRoZW0gYnkgaGFuZC4gSGVuY2UgdGhlc2UgbmFtZXMgKGkuZS4ga2V5d29yZHMsIGxpdGVyYWxzIGFuZFxuICAvLyBidWlsdC1pbnMpIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIEp1bGlhIDEuNS4yIGl0c2VsZiB0aHJvdWdoXG4gIC8vIHRoZSBmb2xsb3dpbmcgc2NyaXB0cyBmb3IgZWFjaC5cblxuICAvLyByZWY6IGh0dHBzOi8vZG9jcy5qdWxpYWxhbmcub3JnL2VuL3YxL21hbnVhbC92YXJpYWJsZXMvI0FsbG93ZWQtVmFyaWFibGUtTmFtZXNcbiAgY29uc3QgVkFSSUFCTEVfTkFNRV9SRSA9ICdbQS1aYS16X1xcXFx1MDBBMS1cXFxcdUZGRkZdW0EtWmEtel8wLTlcXFxcdTAwQTEtXFxcXHVGRkZGXSonO1xuXG4gIC8vICMga2V5d29yZCBnZW5lcmF0b3IsIG11bHRpLXdvcmQga2V5d29yZHMgaGFuZGxlZCBtYW51YWxseSBiZWxvdyAoSnVsaWEgMS41LjIpXG4gIC8vIGltcG9ydCBSRVBMLlJFUExDb21wbGV0aW9uc1xuICAvLyByZXMgPSBTdHJpbmdbXCJpblwiLCBcImlzYVwiLCBcIndoZXJlXCJdXG4gIC8vIGZvciBrdyBpbiBjb2xsZWN0KHgua2V5d29yZCBmb3IgeCBpbiBSRVBMQ29tcGxldGlvbnMuY29tcGxldGVfa2V5d29yZChcIlwiKSlcbiAgLy8gICAgIGlmICEoY29udGFpbnMoa3csIFwiIFwiKSB8fCBrdyA9PSBcInN0cnVjdFwiKVxuICAvLyAgICAgICAgIHB1c2ghKHJlcywga3cpXG4gIC8vICAgICBlbmRcbiAgLy8gZW5kXG4gIC8vIHNvcnQhKHVuaXF1ZSEocmVzKSlcbiAgLy8gZm9yZWFjaCh4IC0+IHByaW50bG4oXCJcXCdcIiwgeCwgXCJcXCcsXCIpLCByZXMpXG4gIGNvbnN0IEtFWVdPUkRfTElTVCA9IFtcbiAgICAnYmFyZW1vZHVsZScsXG4gICAgJ2JlZ2luJyxcbiAgICAnYnJlYWsnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NjYWxsJyxcbiAgICAnY29uc3QnLFxuICAgICdjb250aW51ZScsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2Vsc2VpZicsXG4gICAgJ2VuZCcsXG4gICAgJ2V4cG9ydCcsXG4gICAgJ2ZhbHNlJyxcbiAgICAnZmluYWxseScsXG4gICAgJ2ZvcicsXG4gICAgJ2Z1bmN0aW9uJyxcbiAgICAnZ2xvYmFsJyxcbiAgICAnaWYnLFxuICAgICdpbXBvcnQnLFxuICAgICdpbicsXG4gICAgJ2lzYScsXG4gICAgJ2xldCcsXG4gICAgJ2xvY2FsJyxcbiAgICAnbWFjcm8nLFxuICAgICdtb2R1bGUnLFxuICAgICdxdW90ZScsXG4gICAgJ3JldHVybicsXG4gICAgJ3RydWUnLFxuICAgICd0cnknLFxuICAgICd1c2luZycsXG4gICAgJ3doZXJlJyxcbiAgICAnd2hpbGUnLFxuICBdO1xuXG4gIC8vICMgbGl0ZXJhbCBnZW5lcmF0b3IgKEp1bGlhIDEuNS4yKVxuICAvLyBpbXBvcnQgUkVQTC5SRVBMQ29tcGxldGlvbnNcbiAgLy8gcmVzID0gU3RyaW5nW1widHJ1ZVwiLCBcImZhbHNlXCJdXG4gIC8vIGZvciBjb21wbCBpbiBmaWx0ZXIhKHggLT4gaXNhKHgsIFJFUExDb21wbGV0aW9ucy5Nb2R1bGVDb21wbGV0aW9uKSAmJiAoeC5wYXJlbnQgPT09IEJhc2UgfHwgeC5wYXJlbnQgPT09IENvcmUpLFxuICAvLyAgICAgICAgICAgICAgICAgICAgIFJFUExDb21wbGV0aW9ucy5jb21wbGV0aW9ucyhcIlwiLCAwKVsxXSlcbiAgLy8gICAgIHRyeVxuICAvLyAgICAgICAgIHYgPSBldmFsKFN5bWJvbChjb21wbC5tb2QpKVxuICAvLyAgICAgICAgIGlmICEodiBpc2EgRnVuY3Rpb24gfHwgdiBpc2EgVHlwZSB8fCB2IGlzYSBUeXBlVmFyIHx8IHYgaXNhIE1vZHVsZSB8fCB2IGlzYSBDb2xvbilcbiAgLy8gICAgICAgICAgICAgcHVzaCEocmVzLCBjb21wbC5tb2QpXG4gIC8vICAgICAgICAgZW5kXG4gIC8vICAgICBjYXRjaCBlXG4gIC8vICAgICBlbmRcbiAgLy8gZW5kXG4gIC8vIHNvcnQhKHVuaXF1ZSEocmVzKSlcbiAgLy8gZm9yZWFjaCh4IC0+IHByaW50bG4oXCJcXCdcIiwgeCwgXCJcXCcsXCIpLCByZXMpXG4gIGNvbnN0IExJVEVSQUxfTElTVCA9IFtcbiAgICAnQVJHUycsXG4gICAgJ0NfTlVMTCcsXG4gICAgJ0RFUE9UX1BBVEgnLFxuICAgICdFTkRJQU5fQk9NJyxcbiAgICAnRU5WJyxcbiAgICAnSW5mJyxcbiAgICAnSW5mMTYnLFxuICAgICdJbmYzMicsXG4gICAgJ0luZjY0JyxcbiAgICAnSW5zZXJ0aW9uU29ydCcsXG4gICAgJ0xPQURfUEFUSCcsXG4gICAgJ01lcmdlU29ydCcsXG4gICAgJ05hTicsXG4gICAgJ05hTjE2JyxcbiAgICAnTmFOMzInLFxuICAgICdOYU42NCcsXG4gICAgJ1BST0dSQU1fRklMRScsXG4gICAgJ1F1aWNrU29ydCcsXG4gICAgJ1JvdW5kRG93bicsXG4gICAgJ1JvdW5kRnJvbVplcm8nLFxuICAgICdSb3VuZE5lYXJlc3QnLFxuICAgICdSb3VuZE5lYXJlc3RUaWVzQXdheScsXG4gICAgJ1JvdW5kTmVhcmVzdFRpZXNVcCcsXG4gICAgJ1JvdW5kVG9aZXJvJyxcbiAgICAnUm91bmRVcCcsXG4gICAgJ1ZFUlNJT058MCcsXG4gICAgJ2Rldm51bGwnLFxuICAgICdmYWxzZScsXG4gICAgJ2ltJyxcbiAgICAnbWlzc2luZycsXG4gICAgJ25vdGhpbmcnLFxuICAgICdwaScsXG4gICAgJ3N0ZGVycicsXG4gICAgJ3N0ZGluJyxcbiAgICAnc3Rkb3V0JyxcbiAgICAndHJ1ZScsXG4gICAgJ3VuZGVmJyxcbiAgICAnXHUwM0MwJyxcbiAgICAnXHUyMTJGJyxcbiAgXTtcblxuICAvLyAjIGJ1aWx0X2luIGdlbmVyYXRvciAoSnVsaWEgMS41LjIpXG4gIC8vIGltcG9ydCBSRVBMLlJFUExDb21wbGV0aW9uc1xuICAvLyByZXMgPSBTdHJpbmdbXVxuICAvLyBmb3IgY29tcGwgaW4gZmlsdGVyISh4IC0+IGlzYSh4LCBSRVBMQ29tcGxldGlvbnMuTW9kdWxlQ29tcGxldGlvbikgJiYgKHgucGFyZW50ID09PSBCYXNlIHx8IHgucGFyZW50ID09PSBDb3JlKSxcbiAgLy8gICAgICAgICAgICAgICAgICAgICBSRVBMQ29tcGxldGlvbnMuY29tcGxldGlvbnMoXCJcIiwgMClbMV0pXG4gIC8vICAgICB0cnlcbiAgLy8gICAgICAgICB2ID0gZXZhbChTeW1ib2woY29tcGwubW9kKSlcbiAgLy8gICAgICAgICBpZiAodiBpc2EgVHlwZSB8fCB2IGlzYSBUeXBlVmFyKSAmJiAoY29tcGwubW9kICE9IFwiPT5cIilcbiAgLy8gICAgICAgICAgICAgcHVzaCEocmVzLCBjb21wbC5tb2QpXG4gIC8vICAgICAgICAgZW5kXG4gIC8vICAgICBjYXRjaCBlXG4gIC8vICAgICBlbmRcbiAgLy8gZW5kXG4gIC8vIHNvcnQhKHVuaXF1ZSEocmVzKSlcbiAgLy8gZm9yZWFjaCh4IC0+IHByaW50bG4oXCJcXCdcIiwgeCwgXCJcXCcsXCIpLCByZXMpXG4gIGNvbnN0IEJVSUxUX0lOX0xJU1QgPSBbXG4gICAgJ0Fic3RyYWN0QXJyYXknLFxuICAgICdBYnN0cmFjdENoYW5uZWwnLFxuICAgICdBYnN0cmFjdENoYXInLFxuICAgICdBYnN0cmFjdERpY3QnLFxuICAgICdBYnN0cmFjdERpc3BsYXknLFxuICAgICdBYnN0cmFjdEZsb2F0JyxcbiAgICAnQWJzdHJhY3RJcnJhdGlvbmFsJyxcbiAgICAnQWJzdHJhY3RNYXRyaXgnLFxuICAgICdBYnN0cmFjdFJhbmdlJyxcbiAgICAnQWJzdHJhY3RTZXQnLFxuICAgICdBYnN0cmFjdFN0cmluZycsXG4gICAgJ0Fic3RyYWN0VW5pdFJhbmdlJyxcbiAgICAnQWJzdHJhY3RWZWNPck1hdCcsXG4gICAgJ0Fic3RyYWN0VmVjdG9yJyxcbiAgICAnQW55JyxcbiAgICAnQXJndW1lbnRFcnJvcicsXG4gICAgJ0FycmF5JyxcbiAgICAnQXNzZXJ0aW9uRXJyb3InLFxuICAgICdCaWdGbG9hdCcsXG4gICAgJ0JpZ0ludCcsXG4gICAgJ0JpdEFycmF5JyxcbiAgICAnQml0TWF0cml4JyxcbiAgICAnQml0U2V0JyxcbiAgICAnQml0VmVjdG9yJyxcbiAgICAnQm9vbCcsXG4gICAgJ0JvdW5kc0Vycm9yJyxcbiAgICAnQ2FwdHVyZWRFeGNlcHRpb24nLFxuICAgICdDYXJ0ZXNpYW5JbmRleCcsXG4gICAgJ0NhcnRlc2lhbkluZGljZXMnLFxuICAgICdDY2hhcicsXG4gICAgJ0Nkb3VibGUnLFxuICAgICdDZmxvYXQnLFxuICAgICdDaGFubmVsJyxcbiAgICAnQ2hhcicsXG4gICAgJ0NpbnQnLFxuICAgICdDaW50bWF4X3QnLFxuICAgICdDbG9uZycsXG4gICAgJ0Nsb25nbG9uZycsXG4gICAgJ0NtZCcsXG4gICAgJ0NvbG9uJyxcbiAgICAnQ29tcGxleCcsXG4gICAgJ0NvbXBsZXhGMTYnLFxuICAgICdDb21wbGV4RjMyJyxcbiAgICAnQ29tcGxleEY2NCcsXG4gICAgJ0NvbXBvc2l0ZUV4Y2VwdGlvbicsXG4gICAgJ0NvbmRpdGlvbicsXG4gICAgJ0NwdHJkaWZmX3QnLFxuICAgICdDc2hvcnQnLFxuICAgICdDc2l6ZV90JyxcbiAgICAnQ3NzaXplX3QnLFxuICAgICdDc3RyaW5nJyxcbiAgICAnQ3VjaGFyJyxcbiAgICAnQ3VpbnQnLFxuICAgICdDdWludG1heF90JyxcbiAgICAnQ3Vsb25nJyxcbiAgICAnQ3Vsb25nbG9uZycsXG4gICAgJ0N1c2hvcnQnLFxuICAgICdDdm9pZCcsXG4gICAgJ0N3Y2hhcl90JyxcbiAgICAnQ3dzdHJpbmcnLFxuICAgICdEYXRhVHlwZScsXG4gICAgJ0RlbnNlQXJyYXknLFxuICAgICdEZW5zZU1hdHJpeCcsXG4gICAgJ0RlbnNlVmVjT3JNYXQnLFxuICAgICdEZW5zZVZlY3RvcicsXG4gICAgJ0RpY3QnLFxuICAgICdEaW1lbnNpb25NaXNtYXRjaCcsXG4gICAgJ0RpbXMnLFxuICAgICdEaXZpZGVFcnJvcicsXG4gICAgJ0RvbWFpbkVycm9yJyxcbiAgICAnRU9GRXJyb3InLFxuICAgICdFbnVtJyxcbiAgICAnRXJyb3JFeGNlcHRpb24nLFxuICAgICdFeGNlcHRpb24nLFxuICAgICdFeHBvbmVudGlhbEJhY2tPZmYnLFxuICAgICdFeHByJyxcbiAgICAnRmxvYXQxNicsXG4gICAgJ0Zsb2F0MzInLFxuICAgICdGbG9hdDY0JyxcbiAgICAnRnVuY3Rpb24nLFxuICAgICdHbG9iYWxSZWYnLFxuICAgICdIVE1MJyxcbiAgICAnSU8nLFxuICAgICdJT0J1ZmZlcicsXG4gICAgJ0lPQ29udGV4dCcsXG4gICAgJ0lPU3RyZWFtJyxcbiAgICAnSWREaWN0JyxcbiAgICAnSW5kZXhDYXJ0ZXNpYW4nLFxuICAgICdJbmRleExpbmVhcicsXG4gICAgJ0luZGV4U3R5bGUnLFxuICAgICdJbmV4YWN0RXJyb3InLFxuICAgICdJbml0RXJyb3InLFxuICAgICdJbnQnLFxuICAgICdJbnQxMjgnLFxuICAgICdJbnQxNicsXG4gICAgJ0ludDMyJyxcbiAgICAnSW50NjQnLFxuICAgICdJbnQ4JyxcbiAgICAnSW50ZWdlcicsXG4gICAgJ0ludGVycnVwdEV4Y2VwdGlvbicsXG4gICAgJ0ludmFsaWRTdGF0ZUV4Y2VwdGlvbicsXG4gICAgJ0lycmF0aW9uYWwnLFxuICAgICdLZXlFcnJvcicsXG4gICAgJ0xpblJhbmdlJyxcbiAgICAnTGluZU51bWJlck5vZGUnLFxuICAgICdMaW5lYXJJbmRpY2VzJyxcbiAgICAnTG9hZEVycm9yJyxcbiAgICAnTUlNRScsXG4gICAgJ01hdHJpeCcsXG4gICAgJ01ldGhvZCcsXG4gICAgJ01ldGhvZEVycm9yJyxcbiAgICAnTWlzc2luZycsXG4gICAgJ01pc3NpbmdFeGNlcHRpb24nLFxuICAgICdNb2R1bGUnLFxuICAgICdOVHVwbGUnLFxuICAgICdOYW1lZFR1cGxlJyxcbiAgICAnTm90aGluZycsXG4gICAgJ051bWJlcicsXG4gICAgJ09yZGluYWxSYW5nZScsXG4gICAgJ091dE9mTWVtb3J5RXJyb3InLFxuICAgICdPdmVyZmxvd0Vycm9yJyxcbiAgICAnUGFpcicsXG4gICAgJ1BhcnRpYWxRdWlja1NvcnQnLFxuICAgICdQZXJtdXRlZERpbXNBcnJheScsXG4gICAgJ1BpcGUnLFxuICAgICdQcm9jZXNzRmFpbGVkRXhjZXB0aW9uJyxcbiAgICAnUHRyJyxcbiAgICAnUXVvdGVOb2RlJyxcbiAgICAnUmF0aW9uYWwnLFxuICAgICdSYXdGRCcsXG4gICAgJ1JlYWRPbmx5TWVtb3J5RXJyb3InLFxuICAgICdSZWFsJyxcbiAgICAnUmVlbnRyYW50TG9jaycsXG4gICAgJ1JlZicsXG4gICAgJ1JlZ2V4JyxcbiAgICAnUmVnZXhNYXRjaCcsXG4gICAgJ1JvdW5kaW5nTW9kZScsXG4gICAgJ1NlZ21lbnRhdGlvbkZhdWx0JyxcbiAgICAnU2V0JyxcbiAgICAnU2lnbmVkJyxcbiAgICAnU29tZScsXG4gICAgJ1N0YWNrT3ZlcmZsb3dFcnJvcicsXG4gICAgJ1N0ZXBSYW5nZScsXG4gICAgJ1N0ZXBSYW5nZUxlbicsXG4gICAgJ1N0cmlkZWRBcnJheScsXG4gICAgJ1N0cmlkZWRNYXRyaXgnLFxuICAgICdTdHJpZGVkVmVjT3JNYXQnLFxuICAgICdTdHJpZGVkVmVjdG9yJyxcbiAgICAnU3RyaW5nJyxcbiAgICAnU3RyaW5nSW5kZXhFcnJvcicsXG4gICAgJ1N1YkFycmF5JyxcbiAgICAnU3ViU3RyaW5nJyxcbiAgICAnU3Vic3RpdHV0aW9uU3RyaW5nJyxcbiAgICAnU3ltYm9sJyxcbiAgICAnU3lzdGVtRXJyb3InLFxuICAgICdUYXNrJyxcbiAgICAnVGFza0ZhaWxlZEV4Y2VwdGlvbicsXG4gICAgJ1RleHQnLFxuICAgICdUZXh0RGlzcGxheScsXG4gICAgJ1RpbWVyJyxcbiAgICAnVHVwbGUnLFxuICAgICdUeXBlJyxcbiAgICAnVHlwZUVycm9yJyxcbiAgICAnVHlwZVZhcicsXG4gICAgJ1VJbnQnLFxuICAgICdVSW50MTI4JyxcbiAgICAnVUludDE2JyxcbiAgICAnVUludDMyJyxcbiAgICAnVUludDY0JyxcbiAgICAnVUludDgnLFxuICAgICdVbmRlZkluaXRpYWxpemVyJyxcbiAgICAnVW5kZWZLZXl3b3JkRXJyb3InLFxuICAgICdVbmRlZlJlZkVycm9yJyxcbiAgICAnVW5kZWZWYXJFcnJvcicsXG4gICAgJ1VuaW9uJyxcbiAgICAnVW5pb25BbGwnLFxuICAgICdVbml0UmFuZ2UnLFxuICAgICdVbnNpZ25lZCcsXG4gICAgJ1ZhbCcsXG4gICAgJ1ZhcmFyZycsXG4gICAgJ1ZlY0VsZW1lbnQnLFxuICAgICdWZWNPck1hdCcsXG4gICAgJ1ZlY3RvcicsXG4gICAgJ1ZlcnNpb25OdW1iZXInLFxuICAgICdXZWFrS2V5RGljdCcsXG4gICAgJ1dlYWtSZWYnLFxuICBdO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBWQVJJQUJMRV9OQU1FX1JFLFxuICAgIGtleXdvcmQ6IEtFWVdPUkRfTElTVCxcbiAgICBsaXRlcmFsOiBMSVRFUkFMX0xJU1QsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOX0xJU1QsXG4gIH07XG5cbiAgLy8gcGxhY2Vob2xkZXIgZm9yIHJlY3Vyc2l2ZSBzZWxmLXJlZmVyZW5jZVxuICBjb25zdCBERUZBVUxUID0ge1xuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvPFxcLy9cbiAgfTtcblxuICAvLyByZWY6IGh0dHBzOi8vZG9jcy5qdWxpYWxhbmcub3JnL2VuL3YxL21hbnVhbC9pbnRlZ2Vycy1hbmQtZmxvYXRpbmctcG9pbnQtbnVtYmVycy9cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgLy8gc3VwcG9ydGVkIG51bWVyaWMgbGl0ZXJhbHM6XG4gICAgLy8gICogYmluYXJ5IGxpdGVyYWwgKGUuZy4gMHgxMClcbiAgICAvLyAgKiBvY3RhbCBsaXRlcmFsIChlLmcuIDBvNzY1NDMyMTApXG4gICAgLy8gICogaGV4YWRlY2ltYWwgbGl0ZXJhbCAoZS5nLiAweGZlZGNiYTg3NjU0MzIxMClcbiAgICAvLyAgKiBoZXhhZGVjaW1hbCBmbG9hdGluZyBwb2ludCBsaXRlcmFsIChlLmcuIDB4MXAwLCAweDEuMnAyKVxuICAgIC8vICAqIGRlY2ltYWwgbGl0ZXJhbCAoZS5nLiA5ODc2NTQzMjEwLCAxMDBfMDAwXzAwMClcbiAgICAvLyAgKiBmbG9hdGluZyBwb2ludGUgbGl0ZXJhbCAoZS5nLiAxLjIsIDEuMmYsIC4yLCAxLiwgMS4yZTEwLCAxLjJlLTEwKVxuICAgIGJlZ2luOiAvKFxcYjB4W1xcZF9dKihcXC5bXFxkX10qKT98MHhcXC5cXGRbXFxkX10qKXBbLStdP1xcZCt8XFxiMFtib3hdW2EtZkEtRjAtOV1bYS1mQS1GMC05X10qfChcXGJcXGRbXFxkX10qKFxcLltcXGRfXSopP3xcXC5cXGRbXFxkX10qKShbZUVmRl1bLStdP1xcZCspPy8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgQ0hBUiA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvJygufFxcXFxbeFh1VV1bYS16QS1aMC05XSspJy9cbiAgfTtcblxuICBjb25zdCBJTlRFUlBPTEFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJFxcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcblxuICBjb25zdCBJTlRFUlBPTEFURURfVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgVkFSSUFCTEVfTkFNRV9SRVxuICB9O1xuXG4gIC8vIFRPRE86IG5lYXRseSBlc2NhcGUgbm9ybWFsIGNvZGUgaW4gc3RyaW5nIGxpdGVyYWxcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgIElOVEVSUE9MQVRJT04sXG4gICAgICBJTlRFUlBPTEFURURfVkFSSUFCTEVcbiAgICBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFx3KlwiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIlxcdyovLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcdypcIi8sXG4gICAgICAgIGVuZDogL1wiXFx3Ki9cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQ09NTUFORCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBJTlRFUlBPTEFUSU9OLFxuICAgICAgSU5URVJQT0xBVEVEX1ZBUklBQkxFXG4gICAgXSxcbiAgICBiZWdpbjogJ2AnLFxuICAgIGVuZDogJ2AnXG4gIH07XG5cbiAgY29uc3QgTUFDUk9DQUxMID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnQCcgKyBWQVJJQUJMRV9OQU1FX1JFXG4gIH07XG5cbiAgY29uc3QgQ09NTUVOVCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogJyM9JyxcbiAgICAgICAgZW5kOiAnPSMnLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICBlbmQ6ICckJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBERUZBVUxULm5hbWUgPSAnSnVsaWEnO1xuICBERUZBVUxULmNvbnRhaW5zID0gW1xuICAgIE5VTUJFUixcbiAgICBDSEFSLFxuICAgIFNUUklORyxcbiAgICBDT01NQU5ELFxuICAgIE1BQ1JPQ0FMTCxcbiAgICBDT01NRU5ULFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICBiZWdpbjpcbiAgICAgICAgJ1xcXFxiKCgoYWJzdHJhY3R8cHJpbWl0aXZlKVxcXFxzKyl0eXBlfChtdXRhYmxlXFxcXHMrKT9zdHJ1Y3QpXFxcXGInXG4gICAgfSxcbiAgICB7IGJlZ2luOiAvPDovIH0gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgXTtcbiAgSU5URVJQT0xBVElPTi5jb250YWlucyA9IERFRkFVTFQuY29udGFpbnM7XG5cbiAgcmV0dXJuIERFRkFVTFQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ganVsaWE7XG4iLCAiLypcbkxhbmd1YWdlOiBKdWxpYSBSRVBMXG5EZXNjcmlwdGlvbjogSnVsaWEgUkVQTCBzZXNzaW9uc1xuQXV0aG9yOiBNb3J0ZW4gUGlpYmVsZWh0IDxtb3J0ZW4ucGlpYmVsZWh0QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vanVsaWFsYW5nLm9yZ1xuUmVxdWlyZXM6IGp1bGlhLmpzXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuXG5UaGUgSnVsaWEgUkVQTCBjb2RlIGJsb2NrcyBsb29rIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmc6XG5cbiAganVsaWE+IGZ1bmN0aW9uIGZvbyh4KVxuICAgICAgICAgICAgIHggKyAxXG4gICAgICAgICBlbmRcbiAgZm9vIChnZW5lcmljIGZ1bmN0aW9uIHdpdGggMSBtZXRob2QpXG5cblRoZXkgc3RhcnQgb24gYSBuZXcgbGluZSB3aXRoIFwianVsaWE+XCIuIFVzdWFsbHkgdGhlcmUgc2hvdWxkIGFsc28gYmUgYSBzcGFjZSBhZnRlciB0aGlzLCBidXRcbndlIGFsc28gYWxsb3cgdGhlIGNvZGUgdG8gc3RhcnQgcmlnaHQgYWZ0ZXIgdGhlID4gY2hhcmFjdGVyLiBUaGUgY29kZSBtYXkgcnVuIG92ZXIgbXVsdGlwbGVcbmxpbmVzLCBidXQgdGhlIGFkZGl0aW9uYWwgbGluZXMgbXVzdCBzdGFydCB3aXRoIHNpeCBzcGFjZXMgKGkuZS4gYmUgaW5kZW50ZWQgdG8gbWF0Y2hcblwianVsaWE+XCIpLiBUaGUgcmVzdCBvZiB0aGUgY29kZSBpcyBhc3N1bWVkIHRvIGJlIG91dHB1dCBmcm9tIHRoZSBleGVjdXRlZCBjb2RlIGFuZCB3aWxsIGJlXG5sZWZ0IHVuLWhpZ2hsaWdodGVkLlxuXG5Vc2luZyBzaW1wbHkgc3BhY2VzIHRvIGlkZW50aWZ5IGxpbmUgY29udGludWF0aW9ucyBtYXkgZ2V0IGEgZmFsc2UtcG9zaXRpdmUgaWYgdGhlIG91dHB1dFxuYWxzbyBwcmludHMgb3V0IHNpeCBzcGFjZXMsIGJ1dCBzdWNoIGNhc2VzIHNob3VsZCBiZSByYXJlLlxuKi9cblxuZnVuY3Rpb24ganVsaWFSZXBsKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnSnVsaWEgUkVQTCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YS5wcm9tcHQnLFxuICAgICAgICBiZWdpbjogL15qdWxpYT4vLFxuICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAvLyBlbmQgdGhlIGhpZ2hsaWdodGluZyBpZiB3ZSBhcmUgb24gYSBuZXcgbGluZSBhbmQgdGhlIGxpbmUgZG9lcyBub3QgaGF2ZSBhdFxuICAgICAgICAgIC8vIGxlYXN0IHNpeCBzcGFjZXMgaW4gdGhlIGJlZ2lubmluZ1xuICAgICAgICAgIGVuZDogL14oPyFbIF17Nn0pLyxcbiAgICAgICAgICBzdWJMYW5ndWFnZTogJ2p1bGlhJ1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIC8vIGpsZG9jdGVzdCBNYXJrZG93biBibG9ja3MgYXJlIHVzZWQgaW4gdGhlIEp1bGlhIG1hbnVhbCBhbmQgcGFja2FnZSBkb2NzIGluZGljYXRlXG4gICAgLy8gY29kZSBzbmlwcGV0cyB0aGF0IHNob3VsZCBiZSB2ZXJpZmllZCB3aGVuIHRoZSBkb2N1bWVudGF0aW9uIGlzIGJ1aWx0LiBUaGV5IGNhbiBiZVxuICAgIC8vIGVpdGhlciBSRVBMLWxpa2Ugb3Igc2NyaXB0LWxpa2UsIGJ1dCBhcmUgdXN1YWxseSBSRVBMLWxpa2UgYW5kIHRoZXJlZm9yZSB3ZSBhcHBseVxuICAgIC8vIGp1bGlhLXJlcGwgaGlnaGxpZ2h0aW5nIHRvIHRoZW0uIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIERvY3VtZW50ZXInc1xuICAgIC8vIG1hbnVhbDogaHR0cHM6Ly9qdWxpYWRvY3MuZ2l0aHViLmlvL0RvY3VtZW50ZXIuamwvbGF0ZXN0L21hbi9kb2N0ZXN0cy5odG1sXG4gICAgYWxpYXNlczogWyAnamxkb2N0ZXN0JyBdLFxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGp1bGlhUmVwbDtcbiIsICIvLyBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2Uvc3BlY3MvamxzL3NlMTUvaHRtbC9qbHMtMy5odG1sI2pscy0zLjEwXG52YXIgZGVjaW1hbERpZ2l0cyA9ICdbMC05XShfKlswLTldKSonO1xudmFyIGZyYWMgPSBgXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSlgO1xudmFyIGhleERpZ2l0cyA9ICdbMC05YS1mQS1GXShfKlswLTlhLWZBLUZdKSonO1xudmFyIE5VTUVSSUMgPSB7XG4gIGNsYXNzTmFtZTogJ251bWJlcicsXG4gIHZhcmlhbnRzOiBbXG4gICAgLy8gRGVjaW1hbEZsb2F0aW5nUG9pbnRMaXRlcmFsXG4gICAgLy8gaW5jbHVkaW5nIEV4cG9uZW50UGFydFxuICAgIHsgYmVnaW46IGAoXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoKCR7ZnJhY30pfFxcXFwuKT98KCR7ZnJhY30pKWAgK1xuICAgICAgYFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KVtmRmREXT9cXFxcYmAgfSxcbiAgICAvLyBleGNsdWRpbmcgRXhwb25lbnRQYXJ0XG4gICAgeyBiZWdpbjogYFxcXFxiKCR7ZGVjaW1hbERpZ2l0c30pKCgke2ZyYWN9KVtmRmREXT9cXFxcYnxcXFxcLihbZkZkRF1cXFxcYik/KWAgfSxcbiAgICB7IGJlZ2luOiBgKCR7ZnJhY30pW2ZGZERdP1xcXFxiYCB9LFxuICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxEaWdpdHN9KVtmRmREXVxcXFxiYCB9LFxuXG4gICAgLy8gSGV4YWRlY2ltYWxGbG9hdGluZ1BvaW50TGl0ZXJhbFxuICAgIHsgYmVnaW46IGBcXFxcYjBbeFhdKCgke2hleERpZ2l0c30pXFxcXC4/fCgke2hleERpZ2l0c30pP1xcXFwuKCR7aGV4RGlnaXRzfSkpYCArXG4gICAgICBgW3BQXVsrLV0/KCR7ZGVjaW1hbERpZ2l0c30pW2ZGZERdP1xcXFxiYCB9LFxuXG4gICAgLy8gRGVjaW1hbEludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiKDB8WzEtOV0oXypbMC05XSkqKVtsTF0/XFxcXGInIH0sXG5cbiAgICAvLyBIZXhJbnRlZ2VyTGl0ZXJhbFxuICAgIHsgYmVnaW46IGBcXFxcYjBbeFhdKCR7aGV4RGlnaXRzfSlbbExdP1xcXFxiYCB9LFxuXG4gICAgLy8gT2N0YWxJbnRlZ2VyTGl0ZXJhbFxuICAgIHsgYmVnaW46ICdcXFxcYjAoXypbMC03XSkqW2xMXT9cXFxcYicgfSxcblxuICAgIC8vIEJpbmFyeUludGVnZXJMaXRlcmFsXG4gICAgeyBiZWdpbjogJ1xcXFxiMFtiQl1bMDFdKF8qWzAxXSkqW2xMXT9cXFxcYicgfSxcbiAgXSxcbiAgcmVsZXZhbmNlOiAwXG59O1xuXG4vKlxuIExhbmd1YWdlOiBLb3RsaW5cbiBEZXNjcmlwdGlvbjogS290bGluIGlzIGFuIE9TUyBzdGF0aWNhbGx5IHR5cGVkIHByb2dyYW1taW5nIGxhbmd1YWdlIHRoYXQgdGFyZ2V0cyB0aGUgSlZNLCBBbmRyb2lkLCBKYXZhU2NyaXB0IGFuZCBOYXRpdmUuXG4gQXV0aG9yOiBTZXJnZXkgTWFzaGtvdiA8Y3k2ZXJHbjBtQGdtYWlsLmNvbT5cbiBXZWJzaXRlOiBodHRwczovL2tvdGxpbmxhbmcub3JnXG4gQ2F0ZWdvcnk6IGNvbW1vblxuICovXG5cblxuZnVuY3Rpb24ga290bGluKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDpcbiAgICAgICdhYnN0cmFjdCBhcyB2YWwgdmFyIHZhcmFyZyBnZXQgc2V0IGNsYXNzIG9iamVjdCBvcGVuIHByaXZhdGUgcHJvdGVjdGVkIHB1YmxpYyBub2lubGluZSAnXG4gICAgICArICdjcm9zc2lubGluZSBkeW5hbWljIGZpbmFsIGVudW0gaWYgZWxzZSBkbyB3aGlsZSBmb3Igd2hlbiB0aHJvdyB0cnkgY2F0Y2ggZmluYWxseSAnXG4gICAgICArICdpbXBvcnQgcGFja2FnZSBpcyBpbiBmdW4gb3ZlcnJpZGUgY29tcGFuaW9uIHJlaWZpZWQgaW5saW5lIGxhdGVpbml0IGluaXQgJ1xuICAgICAgKyAnaW50ZXJmYWNlIGFubm90YXRpb24gZGF0YSBzZWFsZWQgaW50ZXJuYWwgaW5maXggb3BlcmF0b3Igb3V0IGJ5IGNvbnN0cnVjdG9yIHN1cGVyICdcbiAgICAgICsgJ3RhaWxyZWMgd2hlcmUgY29uc3QgaW5uZXIgc3VzcGVuZCB0eXBlYWxpYXMgZXh0ZXJuYWwgZXhwZWN0IGFjdHVhbCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnQnl0ZSBTaG9ydCBDaGFyIEludCBMb25nIEJvb2xlYW4gRmxvYXQgRG91YmxlIFZvaWQgVW5pdCBOb3RoaW5nJyxcbiAgICBsaXRlcmFsOlxuICAgICAgJ3RydWUgZmFsc2UgbnVsbCdcbiAgfTtcbiAgY29uc3QgS0VZV09SRFNfV0lUSF9MQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogL1xcYihicmVha3xjb250aW51ZXxyZXR1cm58dGhpcylcXGIvLFxuICAgIHN0YXJ0czogeyBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogL0BcXHcrL1xuICAgICAgfVxuICAgIF0gfVxuICB9O1xuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnQCdcbiAgfTtcblxuICAvLyBmb3Igc3RyaW5nIHRlbXBsYXRlc1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgYmVnaW46IC9cXCRcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5DX05VTUJFUl9NT0RFIF1cbiAgfTtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiKD89W15cIl0pJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gQ2FuJ3QgdXNlIGJ1aWx0LWluIG1vZGVzIGVhc2lseSwgYXMgd2Ugd2FudCB0byB1c2UgU1RSSU5HIGluIHRoZSBtZXRhXG4gICAgICAvLyBjb250ZXh0IGFzICdtZXRhLXN0cmluZycgYW5kIHRoZXJlJ3Mgbm8gc3ludGF4IHRvIHJlbW92ZSBleHBsaWNpdGx5IHNldFxuICAgICAgLy8gY2xhc3NOYW1lcyBpbiBidWlsdC1pbiBtb2Rlcy5cbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBTVUJTVC5jb250YWlucy5wdXNoKFNUUklORyk7XG5cbiAgY29uc3QgQU5OT1RBVElPTl9VU0VfU0lURSA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ0AoPzpmaWxlfHByb3BlcnR5fGZpZWxkfGdldHxzZXR8cmVjZWl2ZXJ8cGFyYW18c2V0cGFyYW18ZGVsZWdhdGUpXFxcXHMqOig/OlxcXFxzKicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnKT8nXG4gIH07XG4gIGNvbnN0IEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KFNUUklORywgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAgICAgIFwic2VsZlwiXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9rb3RsaW5sYW5nLm9yZy9kb2NzL3JlZmVyZW5jZS93aGF0c25ldzExLmh0bWwjdW5kZXJzY29yZXMtaW4tbnVtZXJpYy1saXRlcmFsc1xuICAvLyBBY2NvcmRpbmcgdG8gdGhlIGRvYyBhYm92ZSwgdGhlIG51bWJlciBtb2RlIG9mIGtvdGxpbiBpcyB0aGUgc2FtZSBhcyBqYXZhIDgsXG4gIC8vIHNvIHRoZSBjb2RlIGJlbG93IGlzIGNvcGllZCBmcm9tIGphdmEuanNcbiAgY29uc3QgS09UTElOX05VTUJFUl9NT0RFID0gTlVNRVJJQztcbiAgY29uc3QgS09UTElOX05FU1RFRF9DT01NRU5UID0gaGxqcy5DT01NRU5UKFxuICAgICcvXFxcXConLCAnXFxcXCovJyxcbiAgICB7IGNvbnRhaW5zOiBbIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUgXSB9XG4gICk7XG4gIGNvbnN0IEtPVExJTl9QQVJFTl9UWVBFID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRVxuICAgIH0sXG4gICAge1xuICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGNvbnRhaW5zOiBbXSAvLyBkZWZpbmVkIGxhdGVyXG4gICAgfVxuICBdIH07XG4gIGNvbnN0IEtPVExJTl9QQVJFTl9UWVBFMiA9IEtPVExJTl9QQVJFTl9UWVBFO1xuICBLT1RMSU5fUEFSRU5fVFlQRTIudmFyaWFudHNbMV0uY29udGFpbnMgPSBbIEtPVExJTl9QQVJFTl9UWVBFIF07XG4gIEtPVExJTl9QQVJFTl9UWVBFLnZhcmlhbnRzWzFdLmNvbnRhaW5zID0gWyBLT1RMSU5fUEFSRU5fVFlQRTIgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdLb3RsaW4nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdrdCcsXG4gICAgICAna3RzJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICcvXFxcXCpcXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7XG4gICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICAgICAgICAgIGJlZ2luOiAnQFtBLVphLXpdKydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlQsXG4gICAgICBLRVlXT1JEU19XSVRIX0xBQkVMLFxuICAgICAgTEFCRUwsXG4gICAgICBBTk5PVEFUSU9OX1VTRV9TSVRFLFxuICAgICAgQU5OT1RBVElPTixcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuJyxcbiAgICAgICAgZW5kOiAnWyhdfCQnLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICByZWxldmFuY2U6IDUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccypcXFxcKCcsXG4gICAgICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46IC88LyxcbiAgICAgICAgICAgIGVuZDogLz4vLFxuICAgICAgICAgICAga2V5d29yZHM6ICdyZWlmaWVkJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgICAgICAgICAgZW5kOiAvWz0sXFwvXS8sXG4gICAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAgICAgIEtPVExJTl9QQVJFTl9UWVBFLFxuICAgICAgICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICAgICAgS09UTElOX05FU1RFRF9DT01NRU5UXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlQsXG4gICAgICAgICAgICAgIEFOTk9UQVRJT05fVVNFX1NJVEUsXG4gICAgICAgICAgICAgIEFOTk9UQVRJT04sXG4gICAgICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBLT1RMSU5fTkVTVEVEX0NPTU1FTlRcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvY2xhc3N8aW50ZXJmYWNlfHRyYWl0LyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgICAgICAzOiBcInRpdGxlLmNsYXNzXCJcbiAgICAgICAgfSxcbiAgICAgICAga2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UgdHJhaXQnLFxuICAgICAgICBlbmQ6IC9bOlxceyhdfCQvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBpbGxlZ2FsOiAnZXh0ZW5kcyBpbXBsZW1lbnRzJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdwdWJsaWMgcHJvdGVjdGVkIGludGVybmFsIHByaXZhdGUgY29uc3RydWN0b3InIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICBiZWdpbjogLzwvLFxuICAgICAgICAgICAgZW5kOiAvPi8sXG4gICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgICAgIGJlZ2luOiAvWyw6XVxccyovLFxuICAgICAgICAgICAgZW5kOiAvWzxcXCgsKXtcXHNdfCQvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBBTk5PVEFUSU9OX1VTRV9TSVRFLFxuICAgICAgICAgIEFOTk9UQVRJT05cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiBcIl4jIS91c3IvYmluL2VudlwiLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcbidcbiAgICAgIH0sXG4gICAgICBLT1RMSU5fTlVNQkVSX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga290bGluO1xuIiwgIi8qXG5MYW5ndWFnZTogTGFzc29cbkF1dGhvcjogRXJpYyBLbmliYmUgPGVyaWNAbGFzc29zb2Z0LmNvbT5cbkRlc2NyaXB0aW9uOiBMYXNzbyBpcyBhIGxhbmd1YWdlIGFuZCBzZXJ2ZXIgcGxhdGZvcm0gZm9yIGRhdGFiYXNlLWRyaXZlbiB3ZWIgYXBwbGljYXRpb25zLiBUaGlzIGRlZmluaXRpb24gaGFuZGxlcyBMYXNzbyA5IHN5bnRheCBhbmQgTGFzc29TY3JpcHQgZm9yIExhc3NvIDguNiBhbmQgZWFybGllci5cbldlYnNpdGU6IGh0dHA6Ly93d3cubGFzc29zb2Z0LmNvbS9XaGF0LUlzLUxhc3NvXG5DYXRlZ29yeTogZGF0YWJhc2UsIHdlYlxuKi9cblxuZnVuY3Rpb24gbGFzc28oaGxqcykge1xuICBjb25zdCBMQVNTT19JREVOVF9SRSA9ICdbYS16QS1aX11bXFxcXHcuXSonO1xuICBjb25zdCBMQVNTT19BTkdMRV9SRSA9ICc8XFxcXD8obGFzc28oc2NyaXB0KT98PSknO1xuICBjb25zdCBMQVNTT19DTE9TRV9SRSA9ICdcXFxcXXxcXFxcPz4nO1xuICBjb25zdCBMQVNTT19LRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogTEFTU09fSURFTlRfUkUgKyAnfCZbbGdddDsnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBub25lIG1pbmltYWwgZnVsbCBhbGwgdm9pZCBhbmQgb3Igbm90ICdcbiAgICAgICsgJ2J3IG5idyBldyBuZXcgY24gbmNuIGx0IGx0ZSBndCBndGUgZXEgbmVxIHJ4IG5yeCBmdCcsXG4gICAgYnVpbHRfaW46XG4gICAgICAnYXJyYXkgZGF0ZSBkZWNpbWFsIGR1cmF0aW9uIGludGVnZXIgbWFwIHBhaXIgc3RyaW5nIHRhZyB4bWwgbnVsbCAnXG4gICAgICArICdib29sZWFuIGJ5dGVzIGtleXdvcmQgbGlzdCBsb2NhbGUgcXVldWUgc2V0IHN0YWNrIHN0YXRpY2FycmF5ICdcbiAgICAgICsgJ2xvY2FsIHZhciB2YXJpYWJsZSBnbG9iYWwgZGF0YSBzZWxmIGluaGVyaXRlZCBjdXJyZW50Y2FwdHVyZSBnaXZlbmJsb2NrJyxcbiAgICBrZXl3b3JkOlxuICAgICAgJ2NhY2hlIGRhdGFiYXNlX25hbWVzIGRhdGFiYXNlX3NjaGVtYW5hbWVzIGRhdGFiYXNlX3RhYmxlbmFtZXMgJ1xuICAgICAgKyAnZGVmaW5lX3RhZyBkZWZpbmVfdHlwZSBlbWFpbF9iYXRjaCBlbmNvZGVfc2V0IGh0bWxfY29tbWVudCBoYW5kbGUgJ1xuICAgICAgKyAnaGFuZGxlX2Vycm9yIGhlYWRlciBpZiBpbmxpbmUgaXRlcmF0ZSBsamF4X3RhcmdldCBsaW5rICdcbiAgICAgICsgJ2xpbmtfY3VycmVudGFjdGlvbiBsaW5rX2N1cnJlbnRncm91cCBsaW5rX2N1cnJlbnRyZWNvcmQgbGlua19kZXRhaWwgJ1xuICAgICAgKyAnbGlua19maXJzdGdyb3VwIGxpbmtfZmlyc3RyZWNvcmQgbGlua19sYXN0Z3JvdXAgbGlua19sYXN0cmVjb3JkICdcbiAgICAgICsgJ2xpbmtfbmV4dGdyb3VwIGxpbmtfbmV4dHJlY29yZCBsaW5rX3ByZXZncm91cCBsaW5rX3ByZXZyZWNvcmQgbG9nICdcbiAgICAgICsgJ2xvb3AgbmFtZXNwYWNlX3VzaW5nIG91dHB1dF9ub25lIHBvcnRhbCBwcml2YXRlIHByb3RlY3QgcmVjb3JkcyAnXG4gICAgICArICdyZWZlcmVyIHJlZmVycmVyIHJlcGVhdGluZyByZXN1bHRzZXQgcm93cyBzZWFyY2hfYXJncyAnXG4gICAgICArICdzZWFyY2hfYXJndW1lbnRzIHNlbGVjdCBzb3J0X2FyZ3Mgc29ydF9hcmd1bWVudHMgdGhyZWFkX2F0b21pYyAnXG4gICAgICArICd2YWx1ZV9saXN0IHdoaWxlIGFib3J0IGNhc2UgZWxzZSBmYWlsX2lmIGZhaWxfaWZub3QgZmFpbCBpZl9lbXB0eSAnXG4gICAgICArICdpZl9mYWxzZSBpZl9udWxsIGlmX3RydWUgbG9vcF9hYm9ydCBsb29wX2NvbnRpbnVlIGxvb3BfY291bnQgcGFyYW1zICdcbiAgICAgICsgJ3BhcmFtc191cCByZXR1cm4gcmV0dXJuX3ZhbHVlIHJ1bl9jaGlsZHJlbiBzb2FwX2RlZmluZXRhZyAnXG4gICAgICArICdzb2FwX2xhc3RyZXF1ZXN0IHNvYXBfbGFzdHJlc3BvbnNlIHRhZ19uYW1lIGFzY2VuZGluZyBhdmVyYWdlIGJ5ICdcbiAgICAgICsgJ2RlZmluZSBkZXNjZW5kaW5nIGRvIGVxdWFscyBmcm96ZW4gZ3JvdXAgaGFuZGxlX2ZhaWx1cmUgaW1wb3J0IGluICdcbiAgICAgICsgJ2ludG8gam9pbiBsZXQgbWF0Y2ggbWF4IG1pbiBvbiBvcmRlciBwYXJlbnQgcHJvdGVjdGVkIHByb3ZpZGUgcHVibGljICdcbiAgICAgICsgJ3JlcXVpcmUgcmV0dXJuaG9tZSBza2lwIHNwbGl0X3RocmVhZCBzdW0gdGFrZSB0aHJlYWQgdG8gdHJhaXQgdHlwZSAnXG4gICAgICArICd3aGVyZSB3aXRoIHlpZWxkIHlpZWxkaG9tZSdcbiAgfTtcbiAgY29uc3QgSFRNTF9DT01NRU5UID0gaGxqcy5DT01NRU5UKFxuICAgICc8IS0tJyxcbiAgICAnLS0+JyxcbiAgICB7IHJlbGV2YW5jZTogMCB9XG4gICk7XG4gIGNvbnN0IExBU1NPX05PUFJPQ0VTUyA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogJ1xcXFxbbm9wcm9jZXNzXFxcXF0nLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnXFxcXFsvbm9wcm9jZXNzXFxcXF0nLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgY29udGFpbnM6IFsgSFRNTF9DT01NRU5UIF1cbiAgICB9XG4gIH07XG4gIGNvbnN0IExBU1NPX1NUQVJUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnXFxcXFsvbm9wcm9jZXNzfCcgKyBMQVNTT19BTkdMRV9SRVxuICB9O1xuICBjb25zdCBMQVNTT19EQVRBTUVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdcXCcnICsgTEFTU09fSURFTlRfUkUgKyAnXFwnJ1xuICB9O1xuICBjb25zdCBMQVNTT19DT0RFID0gW1xuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuaW5oZXJpdChobGpzLkNfTlVNQkVSX01PREUsIHsgYmVnaW46IGhsanMuQ19OVU1CRVJfUkUgKyAnfCgtP2luZmluaXR5fE5hTilcXFxcYicgfSksXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnYCcsXG4gICAgICBlbmQ6ICdgJ1xuICAgIH0sXG4gICAgeyAvLyB2YXJpYWJsZXNcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHsgYmVnaW46ICdbIyRdJyArIExBU1NPX0lERU5UX1JFIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyMnLFxuICAgICAgICAgIGVuZDogJ1xcXFxkKycsXG4gICAgICAgICAgaWxsZWdhbDogJ1xcXFxXJ1xuICAgICAgICB9XG4gICAgICBdIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJzo6XFxcXHMqJyxcbiAgICAgIGVuZDogTEFTU09fSURFTlRfUkUsXG4gICAgICBpbGxlZ2FsOiAnXFxcXFcnXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLSg/IWluZmluaXR5KScgKyBMQVNTT19JREVOVF9SRSxcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfSxcbiAgICAgICAgeyBiZWdpbjogJyhcXFxcLlxcXFwuXFxcXC4pJyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogLygtPnxcXC4pXFxzKi8sXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogWyBMQVNTT19EQVRBTUVNQkVSIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZpbmUnLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgZW5kOiAnXFxcXCh8PT4nLFxuICAgICAgY29udGFpbnM6IFsgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogTEFTU09fSURFTlRfUkUgKyAnKD0oPyE+KSk/fFstKyovJV0oPyE+KScgfSkgXVxuICAgIH1cbiAgXTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGFzc28nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdscycsXG4gICAgICAnbGFzc29zY3JpcHQnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiBMQVNTT19LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IExBU1NPX0NMT1NFX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogeyAvLyBtYXJrdXBcbiAgICAgICAgICBlbmQ6ICdcXFxcW3wnICsgTEFTU09fQU5HTEVfUkUsXG4gICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICBjb250YWluczogWyBIVE1MX0NPTU1FTlQgXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgTEFTU09fTk9QUk9DRVNTLFxuICAgICAgTEFTU09fU1RBUlQsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxbbm9fc3F1YXJlX2JyYWNrZXRzJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAnXFxcXFsvbm9fc3F1YXJlX2JyYWNrZXRzXFxcXF0nLCAvLyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGxhbmd1YWdlXG4gICAgICAgICAga2V5d29yZHM6IExBU1NPX0tFWVdPUkRTLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICAgICAgICBiZWdpbjogTEFTU09fQ0xPU0VfUkUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgICAgICAgZW5kOiAnXFxcXFtub3Byb2Nlc3NcXFxcXXwnICsgTEFTU09fQU5HTEVfUkUsXG4gICAgICAgICAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbIEhUTUxfQ09NTUVOVCBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBMQVNTT19OT1BST0NFU1MsXG4gICAgICAgICAgICBMQVNTT19TVEFSVFxuICAgICAgICAgIF0uY29uY2F0KExBU1NPX0NPREUpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogJ1xcXFxbJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeIyEnLFxuICAgICAgICBlbmQ6ICdsYXNzbzkkJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfVxuICAgIF0uY29uY2F0KExBU1NPX0NPREUpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGFzc287XG4iLCAiLypcbkxhbmd1YWdlOiBMYVRlWFxuQXV0aG9yOiBCZW5lZGlrdCBXaWxkZSA8YndpbGRlQHBvc3Rlby5kZT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LmxhdGV4LXByb2plY3Qub3JnXG5DYXRlZ29yeTogbWFya3VwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbGF0ZXgoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEtOT1dOX0NPTlRST0xfV09SRFMgPSByZWdleC5laXRoZXIoLi4uW1xuICAgICcoPzpOZWVkc1RlWEZvcm1hdHxSZXF1aXJlUGFja2FnZXxHZXRJZEluZm8pJyxcbiAgICAnUHJvdmlkZXMoPzpFeHBsKT8oPzpQYWNrYWdlfENsYXNzfEZpbGUpJyxcbiAgICAnKD86RGVjbGFyZU9wdGlvbnxQcm9jZXNzT3B0aW9ucyknLFxuICAgICcoPzpkb2N1bWVudGNsYXNzfHVzZXBhY2thZ2V8aW5wdXR8aW5jbHVkZSknLFxuICAgICdtYWtlYXQoPzpsZXR0ZXJ8b3RoZXIpJyxcbiAgICAnRXhwbFN5bnRheCg/Ok9ufE9mZiknLFxuICAgICcoPzpuZXd8cmVuZXd8cHJvdmlkZSk/Y29tbWFuZCcsXG4gICAgJyg/OnJlKW5ld2Vudmlyb25tZW50JyxcbiAgICAnKD86TmV3fFJlbmV3fFByb3ZpZGV8RGVjbGFyZSkoPzpFeHBhbmRhYmxlKT9Eb2N1bWVudENvbW1hbmQnLFxuICAgICcoPzpOZXd8UmVuZXd8UHJvdmlkZXxEZWNsYXJlKURvY3VtZW50RW52aXJvbm1lbnQnLFxuICAgICcoPzooPzplfGd8eCk/ZGVmfGxldCknLFxuICAgICcoPzpiZWdpbnxlbmQpJyxcbiAgICAnKD86cGFydHxjaGFwdGVyfCg/OnN1Yil7MCwyfXNlY3Rpb258KD86c3ViKT9wYXJhZ3JhcGgpJyxcbiAgICAnY2FwdGlvbicsXG4gICAgJyg/OmxhYmVsfCg/OmVxfHBhZ2V8bmFtZSk/cmVmfCg/OnBhcmVufGZvb3R8c3VwZXIpP2NpdGUpJyxcbiAgICAnKD86YWxwaGF8YmV0YXxbR2ddYW1tYXxbRGRdZWx0YXwoPzp2YXIpP2Vwc2lsb258emV0YXxldGF8W1R0XWhldGF8dmFydGhldGEpJyxcbiAgICAnKD86aW90YXwoPzp2YXIpP2thcHBhfFtMbF1hbWJkYXxtdXxudXxbWHhdaXxbUHBdaXx2YXJwaXwoPzp2YXIpcmhvKScsXG4gICAgJyg/OltTc11pZ21hfHZhcnNpZ21hfHRhdXxbVXVdcHNpbG9ufFtQcF1oaXx2YXJwaGl8Y2hpfFtQcF1zaXxbT29dbWVnYSknLFxuICAgICcoPzpmcmFjfHN1bXxwcm9kfGxpbXxpbmZ0eXx0aW1lc3xzcXJ0fGxlcXxnZXF8bGVmdHxyaWdodHxtaWRkbGV8W2JCXWlnZz8pJyxcbiAgICAnKD86W2xyXWFuZ2xlfHE/cXVhZHxbbGN2ZGldP2RvdHN8ZD9kb3R8aGF0fHRpbGRlfGJhciknXG4gIF0ubWFwKHdvcmQgPT4gd29yZCArICcoPyFbYS16QS1aQDpfXSknKSk7XG4gIGNvbnN0IEwzX1JFR0VYID0gbmV3IFJlZ0V4cChbXG4gICAgLy8gQSBmdW5jdGlvbiBcXG1vZHVsZV9mdW5jdGlvbl9uYW1lOnNpZ25hdHVyZSBvciBcXF9fbW9kdWxlX2Z1bmN0aW9uX25hbWU6c2lnbmF0dXJlLFxuICAgIC8vIHdoZXJlIGJvdGggbW9kdWxlIGFuZCBmdW5jdGlvbl9uYW1lIG5lZWQgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgYW5kXG4gICAgLy8gZnVuY3Rpb25fbmFtZSBtYXkgY29udGFpbiBzaW5nbGUgdW5kZXJzY29yZXMuXG4gICAgJyg/Ol9fKT9bYS16QS1aXXsyLH1fW2EtekEtWl0oPzpfP1thLXpBLVpdKSs6W2EtekEtWl0qJyxcbiAgICAvLyBBIHZhcmlhYmxlIFxcc2NvcGVfbW9kdWxlX2FuZF9uYW1lX3R5cGUgb3IgXFxzY29wZV9fbW9kdWxlX2FuZV9uYW1lX3R5cGUsXG4gICAgLy8gd2hlcmUgc2NvcGUgaXMgb25lIG9mIGwsIGcgb3IgYywgdHlwZSBuZWVkcyBhdCBsZWFzdCB0d28gY2hhcmFjdGVyc1xuICAgIC8vIGFuZCBtb2R1bGVfYW5kX25hbWUgbWF5IGNvbnRhaW4gc2luZ2xlIHVuZGVyc2NvcmVzLlxuICAgICdbbGdjXV9fP1thLXpBLVpdKD86Xz9bYS16QS1aXSkqX1thLXpBLVpdezIsfScsXG4gICAgLy8gQSBxdWFyayBcXHFfdGhlX25hbWUgb3IgXFxxX190aGVfbmFtZSBvclxuICAgIC8vIHNjYW4gbWFyayBcXHNfdGhlX25hbWUgb3IgXFxzX192dGhlX25hbWUsXG4gICAgLy8gd2hlcmUgdmFyaWFibGVfbmFtZSBuZWVkcyBhdCBsZWFzdCB0d28gY2hhcmFjdGVycyBhbmRcbiAgICAvLyBtYXkgY29udGFpbiBzaW5nbGUgdW5kZXJzY29yZXMuXG4gICAgJ1txc11fXz9bYS16QS1aXSg/Ol8/W2EtekEtWl0pKycsXG4gICAgLy8gT3RoZXIgTGFUZVgzIG1hY3JvIG5hbWVzIHRoYXQgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoZSB0aHJlZSBydWxlcyBhYm92ZS5cbiAgICAndXNlKD86X2kpPzpbYS16QS1aXSonLFxuICAgICcoPzplbHNlfGZpfG9yKTonLFxuICAgICcoPzppZnxjc3xleHApOncnLFxuICAgICcoPzpoYm94fHZib3gpOm4nLFxuICAgICc6OlthLXpBLVpdX3VuYnJhY2VkJyxcbiAgICAnOjpbYS16QS1aOl0nXG4gIF0ubWFwKHBhdHRlcm4gPT4gcGF0dGVybiArICcoPyFbYS16QS1aOl9dKScpLmpvaW4oJ3wnKSk7XG4gIGNvbnN0IEwyX1ZBUklBTlRTID0gW1xuICAgIHsgYmVnaW46IC9bYS16QS1aQF0rLyB9LCAvLyBjb250cm9sIHdvcmRcbiAgICB7IGJlZ2luOiAvW15hLXpBLVpAXT8vIH0gLy8gY29udHJvbCBzeW1ib2xcbiAgXTtcbiAgY29uc3QgRE9VQkxFX0NBUkVUX1ZBUklBTlRTID0gW1xuICAgIHsgYmVnaW46IC9cXF57Nn1bMC05YS1mXXs2fS8gfSxcbiAgICB7IGJlZ2luOiAvXFxeezV9WzAtOWEtZl17NX0vIH0sXG4gICAgeyBiZWdpbjogL1xcXns0fVswLTlhLWZdezR9LyB9LFxuICAgIHsgYmVnaW46IC9cXF57M31bMC05YS1mXXszfS8gfSxcbiAgICB7IGJlZ2luOiAvXFxeezJ9WzAtOWEtZl17Mn0vIH0sXG4gICAgeyBiZWdpbjogL1xcXnsyfVtcXHUwMDAwLVxcdTAwN2ZdLyB9XG4gIF07XG4gIGNvbnN0IENPTlRST0xfU0VRVUVOQ0UgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46IC9cXFxcLyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgYmVnaW46IEtOT1dOX0NPTlRST0xfV09SRFNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIGJlZ2luOiBMM19SRUdFWFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgdmFyaWFudHM6IERPVUJMRV9DQVJFVF9WQVJJQU5UU1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICB2YXJpYW50czogTDJfVkFSSUFOVFNcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IE1BQ1JPX1BBUkFNID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiAvIytcXGQ/L1xuICB9O1xuICBjb25zdCBET1VCTEVfQ0FSRVRfQ0hBUiA9IHtcbiAgICAvLyByZWxldmFuY2U6IDFcbiAgICB2YXJpYW50czogRE9VQkxFX0NBUkVUX1ZBUklBTlRTIH07XG4gIGNvbnN0IFNQRUNJQUxfQ0FUQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiAvWyQmXl9dL1xuICB9O1xuICBjb25zdCBNQUdJQ19DT01NRU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAvJSA/IShUW2VFXVh8dGV4fEJJQnxiaWIpLyxcbiAgICBlbmQ6ICckJyxcbiAgICByZWxldmFuY2U6IDEwXG4gIH07XG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJyUnLFxuICAgICckJyxcbiAgICB7IHJlbGV2YW5jZTogMCB9XG4gICk7XG4gIGNvbnN0IEVWRVJZVEhJTkdfQlVUX1ZFUkJBVElNID0gW1xuICAgIENPTlRST0xfU0VRVUVOQ0UsXG4gICAgTUFDUk9fUEFSQU0sXG4gICAgRE9VQkxFX0NBUkVUX0NIQVIsXG4gICAgU1BFQ0lBTF9DQVRDT0RFLFxuICAgIE1BR0lDX0NPTU1FTlQsXG4gICAgQ09NTUVOVFxuICBdO1xuICBjb25zdCBCUkFDRV9HUk9VUF9OT19WRVJCQVRJTSA9IHtcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgICdzZWxmJyxcbiAgICAgIC4uLkVWRVJZVEhJTkdfQlVUX1ZFUkJBVElNXG4gICAgXVxuICB9O1xuICBjb25zdCBBUkdVTUVOVF9CUkFDRVMgPSBobGpzLmluaGVyaXQoXG4gICAgQlJBQ0VfR1JPVVBfTk9fVkVSQkFUSU0sXG4gICAge1xuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIEJSQUNFX0dST1VQX05PX1ZFUkJBVElNLFxuICAgICAgICAuLi5FVkVSWVRISU5HX0JVVF9WRVJCQVRJTVxuICAgICAgXVxuICAgIH1cbiAgKTtcbiAgY29uc3QgQVJHVU1FTlRfQlJBQ0tFVFMgPSB7XG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS8sXG4gICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEJSQUNFX0dST1VQX05PX1ZFUkJBVElNLFxuICAgICAgLi4uRVZFUllUSElOR19CVVRfVkVSQkFUSU1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNQQUNFX0dPQkJMRVIgPSB7XG4gICAgYmVnaW46IC9cXHMrLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQVJHVU1FTlRfTSA9IFsgQVJHVU1FTlRfQlJBQ0VTIF07XG4gIGNvbnN0IEFSR1VNRU5UX08gPSBbIEFSR1VNRU5UX0JSQUNLRVRTIF07XG4gIGNvbnN0IEFSR1VNRU5UX0FORF9USEVOID0gZnVuY3Rpb24oYXJnLCBzdGFydHNfbW9kZSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb250YWluczogWyBTUEFDRV9HT0JCTEVSIF0sXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogYXJnLFxuICAgICAgICBzdGFydHM6IHN0YXJ0c19tb2RlXG4gICAgICB9XG4gICAgfTtcbiAgfTtcbiAgY29uc3QgQ1NOQU1FID0gZnVuY3Rpb24oY3NuYW1lLCBzdGFydHNfbW9kZSkge1xuICAgIHJldHVybiB7XG4gICAgICBiZWdpbjogJ1xcXFxcXFxcJyArIGNzbmFtZSArICcoPyFbYS16QS1aQDpfXSknLFxuICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgJHBhdHRlcm46IC9cXFxcW2EtekEtWl0rLyxcbiAgICAgICAga2V5d29yZDogJ1xcXFwnICsgY3NuYW1lXG4gICAgICB9LFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgY29udGFpbnM6IFsgU1BBQ0VfR09CQkxFUiBdLFxuICAgICAgc3RhcnRzOiBzdGFydHNfbW9kZVxuICAgIH07XG4gIH07XG4gIGNvbnN0IEJFR0lOX0VOViA9IGZ1bmN0aW9uKGVudm5hbWUsIHN0YXJ0c19tb2RlKSB7XG4gICAgcmV0dXJuIGhsanMuaW5oZXJpdChcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcXFxcXGJlZ2luKD89WyBcXHRdKihcXFxccj9cXFxcblsgXFx0XSopP1xcXFx7JyArIGVudm5hbWUgKyAnXFxcXH0pJyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1xcXFxbYS16QS1aXSsvLFxuICAgICAgICAgIGtleXdvcmQ6ICdcXFxcYmVnaW4nXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIH0sXG4gICAgICBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9NLCBzdGFydHNfbW9kZSlcbiAgICApO1xuICB9O1xuICBjb25zdCBWRVJCQVRJTV9ERUxJTUlURURfRVFVQUwgPSAoaW5uZXJOYW1lID0gXCJzdHJpbmdcIikgPT4ge1xuICAgIHJldHVybiBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgIGNsYXNzTmFtZTogaW5uZXJOYW1lLFxuICAgICAgYmVnaW46IC8oLnxcXHI/XFxuKS8sXG4gICAgICBlbmQ6IC8oLnxcXHI/XFxuKS8sXG4gICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgIH0pO1xuICB9O1xuICBjb25zdCBWRVJCQVRJTV9ERUxJTUlURURfRU5WID0gZnVuY3Rpb24oZW52bmFtZSkge1xuICAgIHJldHVybiB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgZW5kOiAnKD89XFxcXFxcXFxlbmRcXFxceycgKyBlbnZuYW1lICsgJ1xcXFx9KSdcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IFZFUkJBVElNX0RFTElNSVRFRF9CUkFDRVMgPSAoaW5uZXJOYW1lID0gXCJzdHJpbmdcIikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBiZWdpbjogL1xcey8sXG4gICAgICBzdGFydHM6IHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6IGlubmVyTmFtZSxcbiAgICAgICAgICAgIGVuZDogLyg/PVxcfSkvLFxuICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogL1xcey8sXG4gICAgICAgICAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICAgICAgY29udGFpbnM6IFsgXCJzZWxmXCIgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH07XG4gIH07XG4gIGNvbnN0IFZFUkJBVElNID0gW1xuICAgIC4uLltcbiAgICAgICd2ZXJiJyxcbiAgICAgICdsc3RpbmxpbmUnXG4gICAgXS5tYXAoY3NuYW1lID0+IENTTkFNRShjc25hbWUsIHsgY29udGFpbnM6IFsgVkVSQkFUSU1fREVMSU1JVEVEX0VRVUFMKCkgXSB9KSksXG4gICAgQ1NOQU1FKCdtaW50JywgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTSwgeyBjb250YWluczogWyBWRVJCQVRJTV9ERUxJTUlURURfRVFVQUwoKSBdIH0pKSxcbiAgICBDU05BTUUoJ21pbnRpbmxpbmUnLCBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9NLCB7IGNvbnRhaW5zOiBbXG4gICAgICBWRVJCQVRJTV9ERUxJTUlURURfQlJBQ0VTKCksXG4gICAgICBWRVJCQVRJTV9ERUxJTUlURURfRVFVQUwoKVxuICAgIF0gfSkpLFxuICAgIENTTkFNRSgndXJsJywgeyBjb250YWluczogW1xuICAgICAgVkVSQkFUSU1fREVMSU1JVEVEX0JSQUNFUyhcImxpbmtcIiksXG4gICAgICBWRVJCQVRJTV9ERUxJTUlURURfQlJBQ0VTKFwibGlua1wiKVxuICAgIF0gfSksXG4gICAgQ1NOQU1FKCdoeXBlcnJlZicsIHsgY29udGFpbnM6IFsgVkVSQkFUSU1fREVMSU1JVEVEX0JSQUNFUyhcImxpbmtcIikgXSB9KSxcbiAgICBDU05BTUUoJ2hyZWYnLCBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9PLCB7IGNvbnRhaW5zOiBbIFZFUkJBVElNX0RFTElNSVRFRF9CUkFDRVMoXCJsaW5rXCIpIF0gfSkpLFxuICAgIC4uLltdLmNvbmNhdCguLi5bXG4gICAgICAnJyxcbiAgICAgICdcXFxcKidcbiAgICBdLm1hcChzdWZmaXggPT4gW1xuICAgICAgQkVHSU5fRU5WKCd2ZXJiYXRpbScgKyBzdWZmaXgsIFZFUkJBVElNX0RFTElNSVRFRF9FTlYoJ3ZlcmJhdGltJyArIHN1ZmZpeCkpLFxuICAgICAgQkVHSU5fRU5WKCdmaWxlY29udGVudHMnICsgc3VmZml4LCBBUkdVTUVOVF9BTkRfVEhFTihBUkdVTUVOVF9NLCBWRVJCQVRJTV9ERUxJTUlURURfRU5WKCdmaWxlY29udGVudHMnICsgc3VmZml4KSkpLFxuICAgICAgLi4uW1xuICAgICAgICAnJyxcbiAgICAgICAgJ0InLFxuICAgICAgICAnTCdcbiAgICAgIF0ubWFwKHByZWZpeCA9PlxuICAgICAgICBCRUdJTl9FTlYocHJlZml4ICsgJ1ZlcmJhdGltJyArIHN1ZmZpeCwgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTywgVkVSQkFUSU1fREVMSU1JVEVEX0VOVihwcmVmaXggKyAnVmVyYmF0aW0nICsgc3VmZml4KSkpXG4gICAgICApXG4gICAgXSkpLFxuICAgIEJFR0lOX0VOVignbWludGVkJywgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTywgQVJHVU1FTlRfQU5EX1RIRU4oQVJHVU1FTlRfTSwgVkVSQkFUSU1fREVMSU1JVEVEX0VOVignbWludGVkJykpKSksXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGFUZVgnLFxuICAgIGFsaWFzZXM6IFsgJ3RleCcgXSxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uVkVSQkFUSU0sXG4gICAgICAuLi5FVkVSWVRISU5HX0JVVF9WRVJCQVRJTVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsYXRleDtcbiIsICIvKlxuTGFuZ3VhZ2U6IExESUZcbkNvbnRyaWJ1dG9yczogSmFjb2IgQ2hpbGRyZXNzIDxqYWNvYmNAZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGVudGVycHJpc2UsIGNvbmZpZ1xuV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTERBUF9EYXRhX0ludGVyY2hhbmdlX0Zvcm1hdFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIGxkaWYoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdMRElGJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICBtYXRjaDogJ15kbig/PTopJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgbWF0Y2g6ICdeXFxcXHcrKD89OiknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgICAgbWF0Y2g6ICdeLSdcbiAgICAgIH0sXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxkaWY7XG4iLCAiLypcbkxhbmd1YWdlOiBMZWFmXG5EZXNjcmlwdGlvbjogQSBTd2lmdC1iYXNlZCB0ZW1wbGF0aW5nIGxhbmd1YWdlIGNyZWF0ZWQgZm9yIHRoZSBWYXBvciBwcm9qZWN0LlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLnZhcG9yLmNvZGVzL2xlYWYvb3ZlcnZpZXdcbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuZnVuY3Rpb24gbGVhZihobGpzKSB7XG4gIGNvbnN0IElERU5UID0gLyhbQS1aYS16X11bQS1aYS16XzAtOV0qKT8vO1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAndHJ1ZScsXG4gICAgJ2ZhbHNlJyxcbiAgICAnaW4nXG4gIF07XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBzY29wZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKSg/PVxcOj8pLyxcbiAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgIHJlbGV2YW5jZTogNyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBzY29wZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgICAgIG1hdGNoOiBMSVRFUkFMUy5qb2luKFwifFwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICBtYXRjaDogL1tBLVphLXpfXVtBLVphLXpfMC05XSovXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogJ29wZXJhdG9yJyxcbiAgICAgICAgbWF0Y2g6IC9cXCt8XFwtfFxcKnxcXC98XFwlfFxcPVxcPXxcXD18XFwhfFxcPnxcXDx8XFwmXFwmfFxcfFxcfC9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IElOU0lERV9ESVNQQVRDSCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgSURFTlQsXG4gICAgICAvKD89XFwoKS8sXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gIH07XG4gIFBBUkFNUy5jb250YWlucy51bnNoaWZ0KElOU0lERV9ESVNQQVRDSCk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xlYWYnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyAjaWRlbnQoKTpcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvIysvLFxuICAgICAgICAgIElERU5ULFxuICAgICAgICAgIC8oPz1cXCgpLyxcbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAxOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgICAgMjogXCJrZXl3b3JkXCJcbiAgICAgICAgfSxcbiAgICAgICAgLy8gd2lsbCBzdGFydCB1cCBhZnRlciB0aGUgZW5kaW5nIGApYCBtYXRjaCBmcm9tIGxpbmUgfjQ0XG4gICAgICAgIC8vIGp1c3QgdG8gZ3JhYiB0aGUgdHJhaWxpbmcgYDpgIGlmIHdlIGNhbiBtYXRjaCBpdFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXRjaDogL1xcOi8sXG4gICAgICAgICAgICAgIHNjb3BlOiBcInB1bmN0dWF0aW9uXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUEFSQU1TXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgLy8gI2lkZW50IG9yICNpZGVudDpcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvIysvLFxuICAgICAgICAgIElERU5ULFxuICAgICAgICAgIC86Py8sXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJwdW5jdHVhdGlvblwiLFxuICAgICAgICAgIDI6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwicHVuY3R1YXRpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsZWFmO1xuIiwgImNvbnN0IE1PREVTID0gKGhsanMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBJTVBPUlRBTlQ6IHtcbiAgICAgIHNjb3BlOiAnbWV0YScsXG4gICAgICBiZWdpbjogJyFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICBCTE9DS19DT01NRU5UOiBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEhFWENPTE9SOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogLyMoKFswLTlhLWZBLUZdezMsNH0pfCgoWzAtOWEtZkEtRl17Mn0pezMsNH0pKVxcYi9cbiAgICB9LFxuICAgIEZVTkNUSU9OX0RJU1BBVENIOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYnVpbHRfaW5cIixcbiAgICAgIGJlZ2luOiAvW1xcdy1dKyg/PVxcKCkvXG4gICAgfSxcbiAgICBBVFRSSUJVVEVfU0VMRUNUT1JfTU9ERToge1xuICAgICAgc2NvcGU6ICdzZWxlY3Rvci1hdHRyJyxcbiAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgIGVuZDogL1xcXS8sXG4gICAgICBpbGxlZ2FsOiAnJCcsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgIF1cbiAgICB9LFxuICAgIENTU19OVU1CRVJfTU9ERToge1xuICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgYmVnaW46IGhsanMuTlVNQkVSX1JFICsgJygnICtcbiAgICAgICAgJyV8ZW18ZXh8Y2h8cmVtJyArXG4gICAgICAgICd8dnd8dmh8dm1pbnx2bWF4JyArXG4gICAgICAgICd8Y218bW18aW58cHR8cGN8cHgnICtcbiAgICAgICAgJ3xkZWd8Z3JhZHxyYWR8dHVybicgK1xuICAgICAgICAnfHN8bXMnICtcbiAgICAgICAgJ3xIenxrSHonICtcbiAgICAgICAgJ3xkcGl8ZHBjbXxkcHB4JyArXG4gICAgICAgICcpPycsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIENTU19WQVJJQUJMRToge1xuICAgICAgY2xhc3NOYW1lOiBcImF0dHJcIixcbiAgICAgIGJlZ2luOiAvLS1bQS1aYS16X11bQS1aYS16MC05Xy1dKi9cbiAgICB9XG4gIH07XG59O1xuXG5jb25zdCBIVE1MX1RBR1MgPSBbXG4gICdhJyxcbiAgJ2FiYnInLFxuICAnYWRkcmVzcycsXG4gICdhcnRpY2xlJyxcbiAgJ2FzaWRlJyxcbiAgJ2F1ZGlvJyxcbiAgJ2InLFxuICAnYmxvY2txdW90ZScsXG4gICdib2R5JyxcbiAgJ2J1dHRvbicsXG4gICdjYW52YXMnLFxuICAnY2FwdGlvbicsXG4gICdjaXRlJyxcbiAgJ2NvZGUnLFxuICAnZGQnLFxuICAnZGVsJyxcbiAgJ2RldGFpbHMnLFxuICAnZGZuJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdlbScsXG4gICdmaWVsZHNldCcsXG4gICdmaWdjYXB0aW9uJyxcbiAgJ2ZpZ3VyZScsXG4gICdmb290ZXInLFxuICAnZm9ybScsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkZXInLFxuICAnaGdyb3VwJyxcbiAgJ2h0bWwnLFxuICAnaScsXG4gICdpZnJhbWUnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2lucycsXG4gICdrYmQnLFxuICAnbGFiZWwnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ21haW4nLFxuICAnbWFyaycsXG4gICdtZW51JyxcbiAgJ25hdicsXG4gICdvYmplY3QnLFxuICAnb2wnLFxuICAnb3B0Z3JvdXAnLFxuICAnb3B0aW9uJyxcbiAgJ3AnLFxuICAncGljdHVyZScsXG4gICdxJyxcbiAgJ3F1b3RlJyxcbiAgJ3NhbXAnLFxuICAnc2VjdGlvbicsXG4gICdzZWxlY3QnLFxuICAnc291cmNlJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N1bW1hcnknLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3RleHRhcmVhJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpbWUnLFxuICAndHInLFxuICAndWwnLFxuICAndmFyJyxcbiAgJ3ZpZGVvJ1xuXTtcblxuY29uc3QgU1ZHX1RBR1MgPSBbXG4gICdkZWZzJyxcbiAgJ2cnLFxuICAnbWFya2VyJyxcbiAgJ21hc2snLFxuICAncGF0dGVybicsXG4gICdzdmcnLFxuICAnc3dpdGNoJyxcbiAgJ3N5bWJvbCcsXG4gICdmZUJsZW5kJyxcbiAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICdmZUNvbXBvc2l0ZScsXG4gICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgJ2ZlRmxvb2QnLFxuICAnZmVHYXVzc2lhbkJsdXInLFxuICAnZmVJbWFnZScsXG4gICdmZU1lcmdlJyxcbiAgJ2ZlTW9ycGhvbG9neScsXG4gICdmZU9mZnNldCcsXG4gICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAnZmVUaWxlJyxcbiAgJ2ZlVHVyYnVsZW5jZScsXG4gICdsaW5lYXJHcmFkaWVudCcsXG4gICdyYWRpYWxHcmFkaWVudCcsXG4gICdzdG9wJyxcbiAgJ2NpcmNsZScsXG4gICdlbGxpcHNlJyxcbiAgJ2ltYWdlJyxcbiAgJ2xpbmUnLFxuICAncGF0aCcsXG4gICdwb2x5Z29uJyxcbiAgJ3BvbHlsaW5lJyxcbiAgJ3JlY3QnLFxuICAndGV4dCcsXG4gICd1c2UnLFxuICAndGV4dFBhdGgnLFxuICAndHNwYW4nLFxuICAnZm9yZWlnbk9iamVjdCcsXG4gICdjbGlwUGF0aCdcbl07XG5cbmNvbnN0IFRBR1MgPSBbXG4gIC4uLkhUTUxfVEFHUyxcbiAgLi4uU1ZHX1RBR1MsXG5dO1xuXG4vLyBTb3J0aW5nLCB0aGVuIHJldmVyc2luZyBtYWtlcyBzdXJlIGxvbmdlciBhdHRyaWJ1dGVzL2VsZW1lbnRzIGxpa2Vcbi8vIGBmb250LXdlaWdodGAgYXJlIG1hdGNoZWQgZnVsbHkgaW5zdGVhZCBvZiBnZXR0aW5nIGZhbHNlIHBvc2l0aXZlcyBvbiBzYXkgYGZvbnRgXG5cbmNvbnN0IE1FRElBX0ZFQVRVUkVTID0gW1xuICAnYW55LWhvdmVyJyxcbiAgJ2FueS1wb2ludGVyJyxcbiAgJ2FzcGVjdC1yYXRpbycsXG4gICdjb2xvcicsXG4gICdjb2xvci1nYW11dCcsXG4gICdjb2xvci1pbmRleCcsXG4gICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgJ2RldmljZS1oZWlnaHQnLFxuICAnZGV2aWNlLXdpZHRoJyxcbiAgJ2Rpc3BsYXktbW9kZScsXG4gICdmb3JjZWQtY29sb3JzJyxcbiAgJ2dyaWQnLFxuICAnaGVpZ2h0JyxcbiAgJ2hvdmVyJyxcbiAgJ2ludmVydGVkLWNvbG9ycycsXG4gICdtb25vY2hyb21lJyxcbiAgJ29yaWVudGF0aW9uJyxcbiAgJ292ZXJmbG93LWJsb2NrJyxcbiAgJ292ZXJmbG93LWlubGluZScsXG4gICdwb2ludGVyJyxcbiAgJ3ByZWZlcnMtY29sb3Itc2NoZW1lJyxcbiAgJ3ByZWZlcnMtY29udHJhc3QnLFxuICAncHJlZmVycy1yZWR1Y2VkLW1vdGlvbicsXG4gICdwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5JyxcbiAgJ3Jlc29sdXRpb24nLFxuICAnc2NhbicsXG4gICdzY3JpcHRpbmcnLFxuICAndXBkYXRlJyxcbiAgJ3dpZHRoJyxcbiAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbj9cbiAgJ21pbi13aWR0aCcsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWhlaWdodCcsXG4gICdtYXgtaGVpZ2h0J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWNsYXNzZXNcbmNvbnN0IFBTRVVET19DTEFTU0VTID0gW1xuICAnYWN0aXZlJyxcbiAgJ2FueS1saW5rJyxcbiAgJ2JsYW5rJyxcbiAgJ2NoZWNrZWQnLFxuICAnY3VycmVudCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmluZWQnLFxuICAnZGlyJywgLy8gZGlyKClcbiAgJ2Rpc2FibGVkJyxcbiAgJ2Ryb3AnLFxuICAnZW1wdHknLFxuICAnZW5hYmxlZCcsXG4gICdmaXJzdCcsXG4gICdmaXJzdC1jaGlsZCcsXG4gICdmaXJzdC1vZi10eXBlJyxcbiAgJ2Z1bGxzY3JlZW4nLFxuICAnZnV0dXJlJyxcbiAgJ2ZvY3VzJyxcbiAgJ2ZvY3VzLXZpc2libGUnLFxuICAnZm9jdXMtd2l0aGluJyxcbiAgJ2hhcycsIC8vIGhhcygpXG4gICdob3N0JywgLy8gaG9zdCBvciBob3N0KClcbiAgJ2hvc3QtY29udGV4dCcsIC8vIGhvc3QtY29udGV4dCgpXG4gICdob3ZlcicsXG4gICdpbmRldGVybWluYXRlJyxcbiAgJ2luLXJhbmdlJyxcbiAgJ2ludmFsaWQnLFxuICAnaXMnLCAvLyBpcygpXG4gICdsYW5nJywgLy8gbGFuZygpXG4gICdsYXN0LWNoaWxkJyxcbiAgJ2xhc3Qtb2YtdHlwZScsXG4gICdsZWZ0JyxcbiAgJ2xpbmsnLFxuICAnbG9jYWwtbGluaycsXG4gICdub3QnLCAvLyBub3QoKVxuICAnbnRoLWNoaWxkJywgLy8gbnRoLWNoaWxkKClcbiAgJ250aC1jb2wnLCAvLyBudGgtY29sKClcbiAgJ250aC1sYXN0LWNoaWxkJywgLy8gbnRoLWxhc3QtY2hpbGQoKVxuICAnbnRoLWxhc3QtY29sJywgLy8gbnRoLWxhc3QtY29sKClcbiAgJ250aC1sYXN0LW9mLXR5cGUnLCAvL250aC1sYXN0LW9mLXR5cGUoKVxuICAnbnRoLW9mLXR5cGUnLCAvL250aC1vZi10eXBlKClcbiAgJ29ubHktY2hpbGQnLFxuICAnb25seS1vZi10eXBlJyxcbiAgJ29wdGlvbmFsJyxcbiAgJ291dC1vZi1yYW5nZScsXG4gICdwYXN0JyxcbiAgJ3BsYWNlaG9sZGVyLXNob3duJyxcbiAgJ3JlYWQtb25seScsXG4gICdyZWFkLXdyaXRlJyxcbiAgJ3JlcXVpcmVkJyxcbiAgJ3JpZ2h0JyxcbiAgJ3Jvb3QnLFxuICAnc2NvcGUnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldC13aXRoaW4nLFxuICAndXNlci1pbnZhbGlkJyxcbiAgJ3ZhbGlkJyxcbiAgJ3Zpc2l0ZWQnLFxuICAnd2hlcmUnIC8vIHdoZXJlKClcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL1BzZXVkby1lbGVtZW50c1xuY29uc3QgUFNFVURPX0VMRU1FTlRTID0gW1xuICAnYWZ0ZXInLFxuICAnYmFja2Ryb3AnLFxuICAnYmVmb3JlJyxcbiAgJ2N1ZScsXG4gICdjdWUtcmVnaW9uJyxcbiAgJ2ZpcnN0LWxldHRlcicsXG4gICdmaXJzdC1saW5lJyxcbiAgJ2dyYW1tYXItZXJyb3InLFxuICAnbWFya2VyJyxcbiAgJ3BhcnQnLFxuICAncGxhY2Vob2xkZXInLFxuICAnc2VsZWN0aW9uJyxcbiAgJ3Nsb3R0ZWQnLFxuICAnc3BlbGxpbmctZXJyb3InXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICdhY2NlbnQtY29sb3InLFxuICAnYWxpZ24tY29udGVudCcsXG4gICdhbGlnbi1pdGVtcycsXG4gICdhbGlnbi1zZWxmJyxcbiAgJ2FsaWdubWVudC1iYXNlbGluZScsXG4gICdhbGwnLFxuICAnYW5pbWF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kZWxheScsXG4gICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbicsXG4gICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAnYW5pbWF0aW9uLW5hbWUnLFxuICAnYW5pbWF0aW9uLXBsYXktc3RhdGUnLFxuICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICdhcHBlYXJhbmNlJyxcbiAgJ2JhY2tmYWNlLXZpc2liaWxpdHknLFxuICAnYmFja2dyb3VuZCcsXG4gICdiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnLFxuICAnYmFja2dyb3VuZC1ibGVuZC1tb2RlJyxcbiAgJ2JhY2tncm91bmQtY2xpcCcsXG4gICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgJ2JhY2tncm91bmQtaW1hZ2UnLFxuICAnYmFja2dyb3VuZC1vcmlnaW4nLFxuICAnYmFja2dyb3VuZC1wb3NpdGlvbicsXG4gICdiYWNrZ3JvdW5kLXJlcGVhdCcsXG4gICdiYWNrZ3JvdW5kLXNpemUnLFxuICAnYmFzZWxpbmUtc2hpZnQnLFxuICAnYmxvY2stc2l6ZScsXG4gICdib3JkZXInLFxuICAnYm9yZGVyLWJsb2NrJyxcbiAgJ2JvcmRlci1ibG9jay1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1zdHlsZScsXG4gICdib3JkZXItYmxvY2stZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXdpZHRoJyxcbiAgJ2JvcmRlci1ib3R0b20nLFxuICAnYm9yZGVyLWJvdHRvbS1jb2xvcicsXG4gICdib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tc3R5bGUnLFxuICAnYm9yZGVyLWJvdHRvbS13aWR0aCcsXG4gICdib3JkZXItY29sbGFwc2UnLFxuICAnYm9yZGVyLWNvbG9yJyxcbiAgJ2JvcmRlci1pbWFnZScsXG4gICdib3JkZXItaW1hZ2Utb3V0c2V0JyxcbiAgJ2JvcmRlci1pbWFnZS1yZXBlYXQnLFxuICAnYm9yZGVyLWltYWdlLXNsaWNlJyxcbiAgJ2JvcmRlci1pbWFnZS1zb3VyY2UnLFxuICAnYm9yZGVyLWltYWdlLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUnLFxuICAnYm9yZGVyLWlubGluZS1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZCcsXG4gICdib3JkZXItaW5saW5lLWVuZC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLWVuZC13aWR0aCcsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0JyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS13aWR0aCcsXG4gICdib3JkZXItbGVmdCcsXG4gICdib3JkZXItbGVmdC1jb2xvcicsXG4gICdib3JkZXItbGVmdC1zdHlsZScsXG4gICdib3JkZXItbGVmdC13aWR0aCcsXG4gICdib3JkZXItcmFkaXVzJyxcbiAgJ2JvcmRlci1yaWdodCcsXG4gICdib3JkZXItZW5kLWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgJ2JvcmRlci1yaWdodC1zdHlsZScsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXNwYWNpbmcnLFxuICAnYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItc3R5bGUnLFxuICAnYm9yZGVyLXRvcCcsXG4gICdib3JkZXItdG9wLWNvbG9yJyxcbiAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1zdHlsZScsXG4gICdib3JkZXItdG9wLXdpZHRoJyxcbiAgJ2JvcmRlci13aWR0aCcsXG4gICdib3R0b20nLFxuICAnYm94LWRlY29yYXRpb24tYnJlYWsnLFxuICAnYm94LXNoYWRvdycsXG4gICdib3gtc2l6aW5nJyxcbiAgJ2JyZWFrLWFmdGVyJyxcbiAgJ2JyZWFrLWJlZm9yZScsXG4gICdicmVhay1pbnNpZGUnLFxuICAnY3gnLFxuICAnY3knLFxuICAnY2FwdGlvbi1zaWRlJyxcbiAgJ2NhcmV0LWNvbG9yJyxcbiAgJ2NsZWFyJyxcbiAgJ2NsaXAnLFxuICAnY2xpcC1wYXRoJyxcbiAgJ2NsaXAtcnVsZScsXG4gICdjb2xvcicsXG4gICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICdjb2xvci1wcm9maWxlJyxcbiAgJ2NvbG9yLXJlbmRlcmluZycsXG4gICdjb2xvci1zY2hlbWUnLFxuICAnY29sdW1uLWNvdW50JyxcbiAgJ2NvbHVtbi1maWxsJyxcbiAgJ2NvbHVtbi1nYXAnLFxuICAnY29sdW1uLXJ1bGUnLFxuICAnY29sdW1uLXJ1bGUtY29sb3InLFxuICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAnY29sdW1uLXJ1bGUtd2lkdGgnLFxuICAnY29sdW1uLXNwYW4nLFxuICAnY29sdW1uLXdpZHRoJyxcbiAgJ2NvbHVtbnMnLFxuICAnY29udGFpbicsXG4gICdjb250ZW50JyxcbiAgJ2NvbnRlbnQtdmlzaWJpbGl0eScsXG4gICdjb3VudGVyLWluY3JlbWVudCcsXG4gICdjb3VudGVyLXJlc2V0JyxcbiAgJ2N1ZScsXG4gICdjdWUtYWZ0ZXInLFxuICAnY3VlLWJlZm9yZScsXG4gICdjdXJzb3InLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2Rpc3BsYXknLFxuICAnZG9taW5hbnQtYmFzZWxpbmUnLFxuICAnZW1wdHktY2VsbHMnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAnZmlsbCcsXG4gICdmaWxsLW9wYWNpdHknLFxuICAnZmlsbC1ydWxlJyxcbiAgJ2ZpbHRlcicsXG4gICdmbGV4JyxcbiAgJ2ZsZXgtYmFzaXMnLFxuICAnZmxleC1kaXJlY3Rpb24nLFxuICAnZmxleC1mbG93JyxcbiAgJ2ZsZXgtZ3JvdycsXG4gICdmbGV4LXNocmluaycsXG4gICdmbGV4LXdyYXAnLFxuICAnZmxvYXQnLFxuICAnZmxvdycsXG4gICdmbG9vZC1jb2xvcicsXG4gICdmbG9vZC1vcGFjaXR5JyxcbiAgJ2ZvbnQnLFxuICAnZm9udC1kaXNwbGF5JyxcbiAgJ2ZvbnQtZmFtaWx5JyxcbiAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICdmb250LWtlcm5pbmcnLFxuICAnZm9udC1sYW5ndWFnZS1vdmVycmlkZScsXG4gICdmb250LXNpemUnLFxuICAnZm9udC1zaXplLWFkanVzdCcsXG4gICdmb250LXNtb290aGluZycsXG4gICdmb250LXN0cmV0Y2gnLFxuICAnZm9udC1zdHlsZScsXG4gICdmb250LXN5bnRoZXNpcycsXG4gICdmb250LXZhcmlhbnQnLFxuICAnZm9udC12YXJpYW50LWNhcHMnLFxuICAnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nLFxuICAnZm9udC12YXJpYW50LWxpZ2F0dXJlcycsXG4gICdmb250LXZhcmlhbnQtbnVtZXJpYycsXG4gICdmb250LXZhcmlhbnQtcG9zaXRpb24nLFxuICAnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnLFxuICAnZm9udC13ZWlnaHQnLFxuICAnZ2FwJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLFxuICAnZ3JpZCcsXG4gICdncmlkLWFyZWEnLFxuICAnZ3JpZC1hdXRvLWNvbHVtbnMnLFxuICAnZ3JpZC1hdXRvLWZsb3cnLFxuICAnZ3JpZC1hdXRvLXJvd3MnLFxuICAnZ3JpZC1jb2x1bW4nLFxuICAnZ3JpZC1jb2x1bW4tZW5kJyxcbiAgJ2dyaWQtY29sdW1uLXN0YXJ0JyxcbiAgJ2dyaWQtZ2FwJyxcbiAgJ2dyaWQtcm93JyxcbiAgJ2dyaWQtcm93LWVuZCcsXG4gICdncmlkLXJvdy1zdGFydCcsXG4gICdncmlkLXRlbXBsYXRlJyxcbiAgJ2dyaWQtdGVtcGxhdGUtYXJlYXMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJyxcbiAgJ2dyaWQtdGVtcGxhdGUtcm93cycsXG4gICdoYW5naW5nLXB1bmN0dWF0aW9uJyxcbiAgJ2hlaWdodCcsXG4gICdoeXBoZW5zJyxcbiAgJ2ljb24nLFxuICAnaW1hZ2Utb3JpZW50YXRpb24nLFxuICAnaW1hZ2UtcmVuZGVyaW5nJyxcbiAgJ2ltYWdlLXJlc29sdXRpb24nLFxuICAnaW1lLW1vZGUnLFxuICAnaW5saW5lLXNpemUnLFxuICAnaW5zZXQnLFxuICAnaW5zZXQtYmxvY2snLFxuICAnaW5zZXQtYmxvY2stZW5kJyxcbiAgJ2luc2V0LWJsb2NrLXN0YXJ0JyxcbiAgJ2luc2V0LWlubGluZScsXG4gICdpbnNldC1pbmxpbmUtZW5kJyxcbiAgJ2luc2V0LWlubGluZS1zdGFydCcsXG4gICdpc29sYXRpb24nLFxuICAna2VybmluZycsXG4gICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAnanVzdGlmeS1pdGVtcycsXG4gICdqdXN0aWZ5LXNlbGYnLFxuICAnbGVmdCcsXG4gICdsZXR0ZXItc3BhY2luZycsXG4gICdsaWdodGluZy1jb2xvcicsXG4gICdsaW5lLWJyZWFrJyxcbiAgJ2xpbmUtaGVpZ2h0JyxcbiAgJ2xpc3Qtc3R5bGUnLFxuICAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgJ2xpc3Qtc3R5bGUtdHlwZScsXG4gICdtYXJrZXInLFxuICAnbWFya2VyLWVuZCcsXG4gICdtYXJrZXItbWlkJyxcbiAgJ21hcmtlci1zdGFydCcsXG4gICdtYXNrJyxcbiAgJ21hcmdpbicsXG4gICdtYXJnaW4tYmxvY2snLFxuICAnbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdtYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnbWFyZ2luLWJvdHRvbScsXG4gICdtYXJnaW4taW5saW5lJyxcbiAgJ21hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ21hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnbWFyZ2luLWxlZnQnLFxuICAnbWFyZ2luLXJpZ2h0JyxcbiAgJ21hcmdpbi10b3AnLFxuICAnbWFya3MnLFxuICAnbWFzaycsXG4gICdtYXNrLWJvcmRlcicsXG4gICdtYXNrLWJvcmRlci1tb2RlJyxcbiAgJ21hc2stYm9yZGVyLW91dHNldCcsXG4gICdtYXNrLWJvcmRlci1yZXBlYXQnLFxuICAnbWFzay1ib3JkZXItc2xpY2UnLFxuICAnbWFzay1ib3JkZXItc291cmNlJyxcbiAgJ21hc2stYm9yZGVyLXdpZHRoJyxcbiAgJ21hc2stY2xpcCcsXG4gICdtYXNrLWNvbXBvc2l0ZScsXG4gICdtYXNrLWltYWdlJyxcbiAgJ21hc2stbW9kZScsXG4gICdtYXNrLW9yaWdpbicsXG4gICdtYXNrLXBvc2l0aW9uJyxcbiAgJ21hc2stcmVwZWF0JyxcbiAgJ21hc2stc2l6ZScsXG4gICdtYXNrLXR5cGUnLFxuICAnbWF4LWJsb2NrLXNpemUnLFxuICAnbWF4LWhlaWdodCcsXG4gICdtYXgtaW5saW5lLXNpemUnLFxuICAnbWF4LXdpZHRoJyxcbiAgJ21pbi1ibG9jay1zaXplJyxcbiAgJ21pbi1oZWlnaHQnLFxuICAnbWluLWlubGluZS1zaXplJyxcbiAgJ21pbi13aWR0aCcsXG4gICdtaXgtYmxlbmQtbW9kZScsXG4gICduYXYtZG93bicsXG4gICduYXYtaW5kZXgnLFxuICAnbmF2LWxlZnQnLFxuICAnbmF2LXJpZ2h0JyxcbiAgJ25hdi11cCcsXG4gICdub25lJyxcbiAgJ25vcm1hbCcsXG4gICdvYmplY3QtZml0JyxcbiAgJ29iamVjdC1wb3NpdGlvbicsXG4gICdvcGFjaXR5JyxcbiAgJ29yZGVyJyxcbiAgJ29ycGhhbnMnLFxuICAnb3V0bGluZScsXG4gICdvdXRsaW5lLWNvbG9yJyxcbiAgJ291dGxpbmUtb2Zmc2V0JyxcbiAgJ291dGxpbmUtc3R5bGUnLFxuICAnb3V0bGluZS13aWR0aCcsXG4gICdvdmVyZmxvdycsXG4gICdvdmVyZmxvdy13cmFwJyxcbiAgJ292ZXJmbG93LXgnLFxuICAnb3ZlcmZsb3cteScsXG4gICdwYWRkaW5nJyxcbiAgJ3BhZGRpbmctYmxvY2snLFxuICAncGFkZGluZy1ibG9jay1lbmQnLFxuICAncGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdwYWRkaW5nLWJvdHRvbScsXG4gICdwYWRkaW5nLWlubGluZScsXG4gICdwYWRkaW5nLWlubGluZS1lbmQnLFxuICAncGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAncGFkZGluZy1sZWZ0JyxcbiAgJ3BhZGRpbmctcmlnaHQnLFxuICAncGFkZGluZy10b3AnLFxuICAncGFnZS1icmVhay1hZnRlcicsXG4gICdwYWdlLWJyZWFrLWJlZm9yZScsXG4gICdwYWdlLWJyZWFrLWluc2lkZScsXG4gICdwYXVzZScsXG4gICdwYXVzZS1hZnRlcicsXG4gICdwYXVzZS1iZWZvcmUnLFxuICAncGVyc3BlY3RpdmUnLFxuICAncGVyc3BlY3RpdmUtb3JpZ2luJyxcbiAgJ3BvaW50ZXItZXZlbnRzJyxcbiAgJ3Bvc2l0aW9uJyxcbiAgJ3F1b3RlcycsXG4gICdyJyxcbiAgJ3Jlc2l6ZScsXG4gICdyZXN0JyxcbiAgJ3Jlc3QtYWZ0ZXInLFxuICAncmVzdC1iZWZvcmUnLFxuICAncmlnaHQnLFxuICAncm90YXRlJyxcbiAgJ3Jvdy1nYXAnLFxuICAnc2NhbGUnLFxuICAnc2Nyb2xsLW1hcmdpbicsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ib3R0b20nLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tbGVmdCcsXG4gICdzY3JvbGwtbWFyZ2luLXJpZ2h0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tdG9wJyxcbiAgJ3Njcm9sbC1wYWRkaW5nJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1ib3R0b20nLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWxlZnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctcmlnaHQnLFxuICAnc2Nyb2xsLXBhZGRpbmctdG9wJyxcbiAgJ3Njcm9sbC1zbmFwLWFsaWduJyxcbiAgJ3Njcm9sbC1zbmFwLXN0b3AnLFxuICAnc2Nyb2xsLXNuYXAtdHlwZScsXG4gICdzY3JvbGxiYXItY29sb3InLFxuICAnc2Nyb2xsYmFyLWd1dHRlcicsXG4gICdzY3JvbGxiYXItd2lkdGgnLFxuICAnc2hhcGUtaW1hZ2UtdGhyZXNob2xkJyxcbiAgJ3NoYXBlLW1hcmdpbicsXG4gICdzaGFwZS1vdXRzaWRlJyxcbiAgJ3NoYXBlLXJlbmRlcmluZycsXG4gICdzdG9wLWNvbG9yJyxcbiAgJ3N0b3Atb3BhY2l0eScsXG4gICdzdHJva2UnLFxuICAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICdzdHJva2UtZGFzaG9mZnNldCcsXG4gICdzdHJva2UtbGluZWNhcCcsXG4gICdzdHJva2UtbGluZWpvaW4nLFxuICAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAnc3Ryb2tlLW9wYWNpdHknLFxuICAnc3Ryb2tlLXdpZHRoJyxcbiAgJ3NwZWFrJyxcbiAgJ3NwZWFrLWFzJyxcbiAgJ3NyYycsIC8vIEBmb250LWZhY2VcbiAgJ3RhYi1zaXplJyxcbiAgJ3RhYmxlLWxheW91dCcsXG4gICd0ZXh0LWFuY2hvcicsXG4gICd0ZXh0LWFsaWduJyxcbiAgJ3RleHQtYWxpZ24tYWxsJyxcbiAgJ3RleHQtYWxpZ24tbGFzdCcsXG4gICd0ZXh0LWNvbWJpbmUtdXByaWdodCcsXG4gICd0ZXh0LWRlY29yYXRpb24nLFxuICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1saW5lJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1za2lwLWluaycsXG4gICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycsXG4gICd0ZXh0LWVtcGhhc2lzJyxcbiAgJ3RleHQtZW1waGFzaXMtY29sb3InLFxuICAndGV4dC1lbXBoYXNpcy1wb3NpdGlvbicsXG4gICd0ZXh0LWVtcGhhc2lzLXN0eWxlJyxcbiAgJ3RleHQtaW5kZW50JyxcbiAgJ3RleHQtanVzdGlmeScsXG4gICd0ZXh0LW9yaWVudGF0aW9uJyxcbiAgJ3RleHQtb3ZlcmZsb3cnLFxuICAndGV4dC1yZW5kZXJpbmcnLFxuICAndGV4dC1zaGFkb3cnLFxuICAndGV4dC10cmFuc2Zvcm0nLFxuICAndGV4dC11bmRlcmxpbmUtb2Zmc2V0JyxcbiAgJ3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgJ3RvcCcsXG4gICd0cmFuc2Zvcm0nLFxuICAndHJhbnNmb3JtLWJveCcsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zZm9ybS1zdHlsZScsXG4gICd0cmFuc2l0aW9uJyxcbiAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd1bmljb2RlLWJpZGknLFxuICAndmVjdG9yLWVmZmVjdCcsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3ZvaWNlLWJhbGFuY2UnLFxuICAndm9pY2UtZHVyYXRpb24nLFxuICAndm9pY2UtZmFtaWx5JyxcbiAgJ3ZvaWNlLXBpdGNoJyxcbiAgJ3ZvaWNlLXJhbmdlJyxcbiAgJ3ZvaWNlLXJhdGUnLFxuICAndm9pY2Utc3RyZXNzJyxcbiAgJ3ZvaWNlLXZvbHVtZScsXG4gICd3aGl0ZS1zcGFjZScsXG4gICd3aWRvd3MnLFxuICAnd2lkdGgnLFxuICAnd2lsbC1jaGFuZ2UnLFxuICAnd29yZC1icmVhaycsXG4gICd3b3JkLXNwYWNpbmcnLFxuICAnd29yZC13cmFwJyxcbiAgJ3dyaXRpbmctbW9kZScsXG4gICd4JyxcbiAgJ3knLFxuICAnei1pbmRleCdcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLy8gc29tZSBncmFtbWFycyB1c2UgdGhlbSBhbGwgYXMgYSBzaW5nbGUgZ3JvdXBcbmNvbnN0IFBTRVVET19TRUxFQ1RPUlMgPSBQU0VVRE9fQ0xBU1NFUy5jb25jYXQoUFNFVURPX0VMRU1FTlRTKS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IExlc3NcbkRlc2NyaXB0aW9uOiBJdCdzIENTUywgd2l0aCBqdXN0IGEgbGl0dGxlIG1vcmUuXG5BdXRob3I6ICAgTWF4IE1pa2hhaWxvdiA8c2V2ZW4ucGhhc2VzLm1heEBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbGVzc2Nzcy5vcmdcbkNhdGVnb3J5OiBjb21tb24sIGNzcywgd2ViXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBsZXNzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcbiAgY29uc3QgUFNFVURPX1NFTEVDVE9SUyQxID0gUFNFVURPX1NFTEVDVE9SUztcblxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBJREVOVF9SRSA9ICdbXFxcXHctXSsnOyAvLyB5ZXMsIExlc3MgaWRlbnRpZmllcnMgbWF5IGJlZ2luIHdpdGggYSBkaWdpdFxuICBjb25zdCBJTlRFUlBfSURFTlRfUkUgPSAnKCcgKyBJREVOVF9SRSArICd8QFxcXFx7JyArIElERU5UX1JFICsgJ1xcXFx9KSc7XG5cbiAgLyogR2VuZXJpYyBNb2RlcyAqL1xuXG4gIGNvbnN0IFJVTEVTID0gW107IGNvbnN0IFZBTFVFX01PREVTID0gW107IC8vIGZvcndhcmQgZGVmLiBmb3IgcmVjdXJzaXZlIG1vZGVzXG5cbiAgY29uc3QgU1RSSU5HX01PREUgPSBmdW5jdGlvbihjKSB7XG4gICAgcmV0dXJuIHtcbiAgICAvLyBMZXNzIHN0cmluZ3MgYXJlIG5vdCBtdWx0aWxpbmUgKGFsc28gaW5jbHVkZSAnficgZm9yIG1vcmUgY29uc2lzdGVudCBjb2xvcmluZyBvZiBcImVzY2FwZWRcIiBzdHJpbmdzKVxuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIGJlZ2luOiAnfj8nICsgYyArICcuKj8nICsgY1xuICAgIH07XG4gIH07XG5cbiAgY29uc3QgSURFTlRfTU9ERSA9IGZ1bmN0aW9uKG5hbWUsIGJlZ2luLCByZWxldmFuY2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2xhc3NOYW1lOiBuYW1lLFxuICAgICAgYmVnaW46IGJlZ2luLFxuICAgICAgcmVsZXZhbmNlOiByZWxldmFuY2VcbiAgICB9O1xuICB9O1xuXG4gIGNvbnN0IEFUX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvW2Etei1dKy8sXG4gICAga2V5d29yZDogQVRfTU9ESUZJRVJTLFxuICAgIGF0dHJpYnV0ZTogTUVESUFfRkVBVFVSRVMuam9pbihcIiBcIilcbiAgfTtcblxuICBjb25zdCBQQVJFTlNfTU9ERSA9IHtcbiAgICAvLyB1c2VkIG9ubHkgdG8gcHJvcGVybHkgYmFsYW5jZSBuZXN0ZWQgcGFyZW5zIGluc2lkZSBtaXhpbiBjYWxsLCBkZWYuIGFyZyBsaXN0XG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBWQUxVRV9NT0RFUyxcbiAgICBrZXl3b3JkczogQVRfS0VZV09SRFMsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgLy8gZ2VuZXJpYyBMZXNzIGhpZ2hsaWdodGVyICh1c2VkIGFsbW9zdCBldmVyeXdoZXJlIGV4Y2VwdCBzZWxlY3RvcnMpOlxuICBWQUxVRV9NT0RFUy5wdXNoKFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIFNUUklOR19NT0RFKFwiJ1wiKSxcbiAgICBTVFJJTkdfTU9ERSgnXCInKSxcbiAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsIC8vIGZpeG1lOiBpdCBkb2VzIG5vdCBpbmNsdWRlIGRvdCBmb3IgbnVtYmVycyBsaWtlIC41ZW0gOihcbiAgICB7XG4gICAgICBiZWdpbjogJyh1cmx8ZGF0YS11cmkpXFxcXCgnLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGVuZDogJ1tcXFxcKVxcXFxuXScsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICB9LFxuICAgIG1vZGVzLkhFWENPTE9SLFxuICAgIFBBUkVOU19NT0RFLFxuICAgIElERU5UX01PREUoJ3ZhcmlhYmxlJywgJ0BAPycgKyBJREVOVF9SRSwgMTApLFxuICAgIElERU5UX01PREUoJ3ZhcmlhYmxlJywgJ0BcXFxceycgKyBJREVOVF9SRSArICdcXFxcfScpLFxuICAgIElERU5UX01PREUoJ2J1aWx0X2luJywgJ34/YFteYF0qP2AnKSwgLy8gaW5saW5lIGphdmFzY3JpcHQgKG9yIHdoYXRldmVyIGhvc3QgbGFuZ3VhZ2UpICptdWx0aWxpbmUqIHN0cmluZ1xuICAgIHsgLy8gQG1lZGlhIGZlYXR1cmVzIChpdFx1MjAxOXMgaGVyZSB0byBub3QgZHVwbGljYXRlIHRoaW5ncyBpbiBBVF9SVUxFX01PREUgd2l0aCBleHRyYSBQQVJFTlNfTU9ERSBvdmVycmlkaW5nKTpcbiAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICBiZWdpbjogSURFTlRfUkUgKyAnXFxcXHMqOicsXG4gICAgICBlbmQ6ICc6JyxcbiAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgIH0sXG4gICAgbW9kZXMuSU1QT1JUQU5ULFxuICAgIHsgYmVnaW5LZXl3b3JkczogJ2FuZCBub3QnIH0sXG4gICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgKTtcblxuICBjb25zdCBWQUxVRV9XSVRIX1JVTEVTRVRTID0gVkFMVUVfTU9ERVMuY29uY2F0KHtcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBjb250YWluczogUlVMRVNcbiAgfSk7XG5cbiAgY29uc3QgTUlYSU5fR1VBUkRfTU9ERSA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnd2hlbicsXG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbktleXdvcmRzOiAnYW5kIG5vdCcgfSBdLmNvbmNhdChWQUxVRV9NT0RFUykgLy8gdXNpbmcgdGhpcyBmb3JtIHRvIG92ZXJyaWRlIFZBTFVFXHUyMDE5cyAnZnVuY3Rpb24nIG1hdGNoXG4gIH07XG5cbiAgLyogUnVsZS1MZXZlbCBNb2RlcyAqL1xuXG4gIGNvbnN0IFJVTEVfTU9ERSA9IHtcbiAgICBiZWdpbjogSU5URVJQX0lERU5UX1JFICsgJ1xcXFxzKjonLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGVuZDogL1s7fV0vLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAgeyBiZWdpbjogLy0od2Via2l0fG1venxtc3xvKS0vIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIGVuZDogLyg/PTopLyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgaWxsZWdhbDogJ1s8PSRdJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFZBTFVFX01PREVTXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQVRfUlVMRV9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAnQChpbXBvcnR8bWVkaWF8Y2hhcnNldHxmb250LWZhY2V8KC1bYS16XSstKT9rZXlmcmFtZXN8c3VwcG9ydHN8ZG9jdW1lbnR8bmFtZXNwYWNlfHBhZ2V8dmlld3BvcnR8aG9zdClcXFxcYicsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdbO3t9XScsXG4gICAgICBrZXl3b3JkczogQVRfS0VZV09SRFMsXG4gICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICBjb250YWluczogVkFMVUVfTU9ERVMsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9XG4gIH07XG5cbiAgLy8gdmFyaWFibGUgZGVmaW5pdGlvbnMgYW5kIGNhbGxzXG4gIGNvbnN0IFZBUl9SVUxFX01PREUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyB1c2luZyBtb3JlIHN0cmljdCBwYXR0ZXJuIGZvciBoaWdoZXIgcmVsZXZhbmNlIHRvIGluY3JlYXNlIGNoYW5jZXMgb2YgTGVzcyBkZXRlY3Rpb24uXG4gICAgICAvLyB0aGlzIGlzICp0aGUgb25seSogTGVzcyBzcGVjaWZpYyBzdGF0ZW1lbnQgdXNlZCBpbiBtb3N0IG9mIHRoZSBzb3VyY2VzLCBzby4uLlxuICAgICAgLy8gKHdlXHUyMDE5bGwgc3RpbGwgb2Z0ZW4gbG9vc2UgdG8gdGhlIGNzcy1wYXJzZXIgdW5sZXNzIHRoZXJlJ3MgJy8vJyBjb21tZW50LFxuICAgICAgLy8gc2ltcGx5IGJlY2F1c2UgMSB2YXJpYWJsZSBqdXN0IGNhbid0IGJlYXQgOTkgcHJvcGVydGllcyA6KVxuICAgICAge1xuICAgICAgICBiZWdpbjogJ0AnICsgSURFTlRfUkUgKyAnXFxcXHMqOicsXG4gICAgICAgIHJlbGV2YW5jZTogMTVcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnQCcgKyBJREVOVF9SRSB9XG4gICAgXSxcbiAgICBzdGFydHM6IHtcbiAgICAgIGVuZDogJ1s7fV0nLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgY29udGFpbnM6IFZBTFVFX1dJVEhfUlVMRVNFVFNcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgU0VMRUNUT1JfTU9ERSA9IHtcbiAgICAvLyBmaXJzdCBwYXJzZSB1bmFtYmlndW91cyBzZWxlY3RvcnMgKGkuZS4gdGhvc2Ugbm90IHN0YXJ0aW5nIHdpdGggdGFnKVxuICAgIC8vIHRoZW4gZmFsbCBpbnRvIHRoZSBzY2FyeSBsb29rYWhlYWQtZGlzY3JpbWluYXRvciB2YXJpYW50LlxuICAgIC8vIHRoaXMgbW9kZSBhbHNvIGhhbmRsZXMgbWl4aW4gZGVmaW5pdGlvbnMgYW5kIGNhbGxzXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbXFxcXC4jOiZcXFxcWz5dJyxcbiAgICAgICAgZW5kOiAnWzt7fV0nIC8vIG1peGluIGNhbGxzIGVuZCB3aXRoICc7J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IElOVEVSUF9JREVOVF9SRSxcbiAgICAgICAgZW5kOiAvXFx7L1xuICAgICAgfVxuICAgIF0sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbPD1cXCckXCJdJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBNSVhJTl9HVUFSRF9NT0RFLFxuICAgICAgSURFTlRfTU9ERSgna2V5d29yZCcsICdhbGxcXFxcYicpLFxuICAgICAgSURFTlRfTU9ERSgndmFyaWFibGUnLCAnQFxcXFx7JyArIElERU5UX1JFICsgJ1xcXFx9JyksIC8vIG90aGVyd2lzZSBpdFx1MjAxOXMgaWRlbnRpZmllZCBhcyB0YWdcbiAgICAgIFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBUQUdTLmpvaW4oJ3wnKSArICcpXFxcXGInLFxuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci10YWcnXG4gICAgICB9LFxuICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgSURFTlRfTU9ERSgnc2VsZWN0b3ItdGFnJywgSU5URVJQX0lERU5UX1JFLCAwKSxcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLWlkJywgJyMnICsgSU5URVJQX0lERU5UX1JFKSxcbiAgICAgIElERU5UX01PREUoJ3NlbGVjdG9yLWNsYXNzJywgJ1xcXFwuJyArIElOVEVSUF9JREVOVF9SRSwgMCksXG4gICAgICBJREVOVF9NT0RFKCdzZWxlY3Rvci10YWcnLCAnJicsIDApLFxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOignICsgUFNFVURPX0NMQVNTRVMuam9pbignfCcpICsgJyknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLFxuICAgICAgICBiZWdpbjogJzooOik/KCcgKyBQU0VVRE9fRUxFTUVOVFMuam9pbignfCcpICsgJyknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFZBTFVFX1dJVEhfUlVMRVNFVFNcbiAgICAgIH0sIC8vIGFyZ3VtZW50IGxpc3Qgb2YgcGFyYW1ldHJpYyBtaXhpbnNcbiAgICAgIHsgYmVnaW46ICchaW1wb3J0YW50JyB9LCAvLyBlYXQgIWltcG9ydGFudCBhZnRlciBtaXhpbiBjYWxsIG9yIGl0IHdpbGwgYmUgY29sb3JlZCBhcyB0YWdcbiAgICAgIG1vZGVzLkZVTkNUSU9OX0RJU1BBVENIXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBTRVVET19TRUxFQ1RPUl9NT0RFID0ge1xuICAgIGJlZ2luOiBJREVOVF9SRSArICc6KDopPycgKyBgKCR7UFNFVURPX1NFTEVDVE9SUyQxLmpvaW4oJ3wnKX0pYCxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogWyBTRUxFQ1RPUl9NT0RFIF1cbiAgfTtcblxuICBSVUxFUy5wdXNoKFxuICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEFUX1JVTEVfTU9ERSxcbiAgICBWQVJfUlVMRV9NT0RFLFxuICAgIFBTRVVET19TRUxFQ1RPUl9NT0RFLFxuICAgIFJVTEVfTU9ERSxcbiAgICBTRUxFQ1RPUl9NT0RFLFxuICAgIE1JWElOX0dVQVJEX01PREUsXG4gICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdMZXNzJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGlsbGVnYWw6ICdbPT5cXCcvPCgkXCJdJyxcbiAgICBjb250YWluczogUlVMRVNcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsZXNzO1xuIiwgIi8qXG5MYW5ndWFnZTogTGlzcFxuRGVzY3JpcHRpb246IEdlbmVyaWMgbGlzcCBzeW50YXhcbkF1dGhvcjogVmFzaWx5IFBvbG92bnlvdiA8dmFzdEB3aGl0ZWFudHMubmV0PlxuQ2F0ZWdvcnk6IGxpc3BcbiovXG5cbmZ1bmN0aW9uIGxpc3AoaGxqcykge1xuICBjb25zdCBMSVNQX0lERU5UX1JFID0gJ1thLXpBLVpfXFxcXC0rXFxcXCpcXFxcLzw9PiYjXVthLXpBLVowLTlfXFxcXC0rKlxcXFwvPD0+JiMhXSonO1xuICBjb25zdCBNRUNfUkUgPSAnXFxcXHxbXl0qP1xcXFx8JztcbiAgY29uc3QgTElTUF9TSU1QTEVfTlVNQkVSX1JFID0gJygtfFxcXFwrKT9cXFxcZCsoXFxcXC5cXFxcZCt8XFxcXC9cXFxcZCspPygoZHxlfGZ8bHxzfER8RXxGfEx8UykoXFxcXCt8LSk/XFxcXGQrKT8nO1xuICBjb25zdCBMSVRFUkFMID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIGJlZ2luOiAnXFxcXGIodHsxfXxuaWwpXFxcXGInXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBMSVNQX1NJTVBMRV9OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46ICcjKGJ8QilbMC0xXSsoL1swLTFdKyk/JyB9LFxuICAgICAgeyBiZWdpbjogJyMob3xPKVswLTddKygvWzAtN10rKT8nIH0sXG4gICAgICB7IGJlZ2luOiAnIyh4fFgpWzAtOWEtZkEtRl0rKC9bMC05YS1mQS1GXSspPycgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcjKGN8QylcXFxcKCcgKyBMSVNQX1NJTVBMRV9OVU1CRVJfUkUgKyAnICsnICsgTElTUF9TSU1QTEVfTlVNQkVSX1JFLFxuICAgICAgICBlbmQ6ICdcXFxcKSdcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNUUklORyA9IGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSk7XG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgJzsnLCAnJCcsXG4gICAgeyByZWxldmFuY2U6IDAgfVxuICApO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBiZWdpbjogJ1xcXFwqJyxcbiAgICBlbmQ6ICdcXFxcKidcbiAgfTtcbiAgY29uc3QgS0VZV09SRCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnWzomXScgKyBMSVNQX0lERU5UX1JFXG4gIH07XG4gIGNvbnN0IElERU5UID0ge1xuICAgIGJlZ2luOiBMSVNQX0lERU5UX1JFLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBNRUMgPSB7IGJlZ2luOiBNRUNfUkUgfTtcbiAgY29uc3QgUVVPVEVEX0xJU1QgPSB7XG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgZW5kOiAnXFxcXCknLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBMSVRFUkFMLFxuICAgICAgU1RSSU5HLFxuICAgICAgTlVNQkVSLFxuICAgICAgSURFTlRcbiAgICBdXG4gIH07XG4gIGNvbnN0IFFVT1RFRCA9IHtcbiAgICBjb250YWluczogW1xuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBLRVlXT1JELFxuICAgICAgUVVPVEVEX0xJU1QsXG4gICAgICBJREVOVFxuICAgIF0sXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbXFwnYF1cXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKHF1b3RlICcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6IHsgbmFtZTogJ3F1b3RlJyB9XG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJ1xcJycgKyBNRUNfUkUgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUVVPVEVEX0FUT00gPSB7IHZhcmlhbnRzOiBbXG4gICAgeyBiZWdpbjogJ1xcJycgKyBMSVNQX0lERU5UX1JFIH0sXG4gICAgeyBiZWdpbjogJyNcXCcnICsgTElTUF9JREVOVF9SRSArICcoOjonICsgTElTUF9JREVOVF9SRSArICcpKicgfVxuICBdIH07XG4gIGNvbnN0IExJU1QgPSB7XG4gICAgYmVnaW46ICdcXFxcKFxcXFxzKicsXG4gICAgZW5kOiAnXFxcXCknXG4gIH07XG4gIGNvbnN0IEJPRFkgPSB7XG4gICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIExJU1QuY29udGFpbnMgPSBbXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgICB2YXJpYW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IExJU1BfSURFTlRfUkUsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICB9LFxuICAgICAgICB7IGJlZ2luOiBNRUNfUkUgfVxuICAgICAgXVxuICAgIH0sXG4gICAgQk9EWVxuICBdO1xuICBCT0RZLmNvbnRhaW5zID0gW1xuICAgIFFVT1RFRCxcbiAgICBRVU9URURfQVRPTSxcbiAgICBMSVNULFxuICAgIExJVEVSQUwsXG4gICAgTlVNQkVSLFxuICAgIFNUUklORyxcbiAgICBDT01NRU5ULFxuICAgIFZBUklBQkxFLFxuICAgIEtFWVdPUkQsXG4gICAgTUVDLFxuICAgIElERU5UXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGlzcCcsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE5VTUJFUixcbiAgICAgIGhsanMuU0hFQkFORygpLFxuICAgICAgTElURVJBTCxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlQsXG4gICAgICBRVU9URUQsXG4gICAgICBRVU9URURfQVRPTSxcbiAgICAgIExJU1QsXG4gICAgICBJREVOVFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXNwO1xuIiwgIi8qXG5MYW5ndWFnZTogTGl2ZUNvZGVcbkF1dGhvcjogUmFsZiBCaXR0ZXIgPHJhYml0QHJldmlnbml0ZXIuY29tPlxuRGVzY3JpcHRpb246IExhbmd1YWdlIGRlZmluaXRpb24gZm9yIExpdmVDb2RlIHNlcnZlciBhY2NvdW50aW5nIGZvciByZXZJZ25pdGVyIChhIHdlYiBhcHBsaWNhdGlvbiBmcmFtZXdvcmspIGNoYXJhY3RlcmlzdGljcy5cblZlcnNpb246IDEuMVxuRGF0ZTogMjAxOS0wNC0xN1xuQ2F0ZWdvcnk6IGVudGVycHJpc2VcbiovXG5cbmZ1bmN0aW9uIGxpdmVjb2Rlc2VydmVyKGhsanMpIHtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXGIoW2d0cHNdW0EtWl17MX1bYS16QS1aMC05XSopKFxcXFxbLitcXFxcXSk/KD86XFxcXHMqPyknIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXCRfW0EtWl0rJyB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DT01NRU5UKCctLScsICckJyksXG4gICAgaGxqcy5DT01NRU5UKCdbXjpdLy8nLCAnJCcpXG4gIF07XG4gIGNvbnN0IFRJVExFMSA9IGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgdmFyaWFudHM6IFtcbiAgICB7IGJlZ2luOiAnXFxcXGJfKnJpZ1tBLVpdW0EtWmEtejAtOV9cXFxcLV0qJyB9LFxuICAgIHsgYmVnaW46ICdcXFxcYl9bYS16MC05XFxcXC1dKycgfVxuICBdIH0pO1xuICBjb25zdCBUSVRMRTIgPSBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiAnXFxcXGIoW0EtWmEtejAtOV9cXFxcLV0rKVxcXFxiJyB9KTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGl2ZUNvZGUnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnJF9DT09LSUUgJF9GSUxFUyAkX0dFVCAkX0dFVF9CSU5BUlkgJF9HRVRfUkFXICRfUE9TVCAkX1BPU1RfQklOQVJZICRfUE9TVF9SQVcgJF9TRVNTSU9OICRfU0VSVkVSICdcbiAgICAgICAgKyAnY29kZXBvaW50IGNvZGVwb2ludHMgc2VnbWVudCBzZWdtZW50cyBjb2RldW5pdCBjb2RldW5pdHMgc2VudGVuY2Ugc2VudGVuY2VzIHRydWVXb3JkIHRydWVXb3JkcyBwYXJhZ3JhcGggJ1xuICAgICAgICArICdhZnRlciBieXRlIGJ5dGVzIGVuZ2xpc2ggdGhlIHVudGlsIGh0dHAgZm9yZXZlciBkZXNjZW5kaW5nIHVzaW5nIGxpbmUgcmVhbDggd2l0aCBzZXZlbnRoICdcbiAgICAgICAgKyAnZm9yIHN0ZG91dCBmaW5hbGx5IGVsZW1lbnQgd29yZCB3b3JkcyBmb3VydGggYmVmb3JlIGJsYWNrIG5pbnRoIHNpeHRoIGNoYXJhY3RlcnMgY2hhcnMgc3RkZXJyICdcbiAgICAgICAgKyAndUludDEgdUludDFzIHVJbnQyIHVJbnQycyBzdGRpbiBzdHJpbmcgbGluZXMgcmVsYXRpdmUgcmVsIGFueSBmaWZ0aCBpdGVtcyBmcm9tIG1pZGRsZSBtaWQgJ1xuICAgICAgICArICdhdCBlbHNlIG9mIGNhdGNoIHRoZW4gdGhpcmQgaXQgZmlsZSBtaWxsaXNlY29uZHMgc2Vjb25kcyBzZWNvbmQgc2VjcyBzZWMgaW50MSBpbnQxcyBpbnQ0ICdcbiAgICAgICAgKyAnaW50NHMgaW50ZXJuZXQgaW50MiBpbnQycyBub3JtYWwgdGV4dCBpdGVtIGxhc3QgbG9uZyBkZXRhaWxlZCBlZmZlY3RpdmUgdUludDQgdUludDRzIHJlcGVhdCAnXG4gICAgICAgICsgJ2VuZCByZXBlYXQgVVJMIGluIHRyeSBpbnRvIHN3aXRjaCB0byB3b3JkcyBodHRwcyB0b2tlbiBiaW5maWxlIGVhY2ggdGVudGggYXMgdGlja3MgdGljayAnXG4gICAgICAgICsgJ3N5c3RlbSByZWFsNCBieSBkYXRlSXRlbXMgd2l0aG91dCBjaGFyIGNoYXJhY3RlciBhc2NlbmRpbmcgZWlnaHRoIHdob2xlIGRhdGVUaW1lIG51bWVyaWMgc2hvcnQgJ1xuICAgICAgICArICdmaXJzdCBmdHAgaW50ZWdlciBhYmJyZXZpYXRlZCBhYmJyIGFiYnJldiBwcml2YXRlIGNhc2Ugd2hpbGUgaWYgJ1xuICAgICAgICArICdkaXYgbW9kIHdyYXAgYW5kIG9yIGJpdEFuZCBiaXROb3QgYml0T3IgYml0WG9yIGFtb25nIG5vdCBpbiBhIGFuIHdpdGhpbiAnXG4gICAgICAgICsgJ2NvbnRhaW5zIGVuZHMgd2l0aCBiZWdpbnMgdGhlIGtleXMgb2Yga2V5cycsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAnU0lYIFRFTiBGT1JNRkVFRCBOSU5FIFpFUk8gTk9ORSBTUEFDRSBGT1VSIEZBTFNFIENPTE9OIENSTEYgUEkgQ09NTUEgRU5ET0ZGSUxFIEVPRiBFSUdIVCBGSVZFICdcbiAgICAgICAgKyAnUVVPVEUgRU1QVFkgT05FIFRSVUUgUkVUVVJOIENSIExJTkVGRUVEIFJJR0hUIEJBQ0tTTEFTSCBOVUxMIFNFVkVOIFRBQiBUSFJFRSBUV08gJ1xuICAgICAgICArICdzaXggdGVuIGZvcm1mZWVkIG5pbmUgemVybyBub25lIHNwYWNlIGZvdXIgZmFsc2UgY29sb24gY3JsZiBwaSBjb21tYSBlbmRvZmZpbGUgZW9mIGVpZ2h0IGZpdmUgJ1xuICAgICAgICArICdxdW90ZSBlbXB0eSBvbmUgdHJ1ZSByZXR1cm4gY3IgbGluZWZlZWQgcmlnaHQgYmFja3NsYXNoIG51bGwgc2V2ZW4gdGFiIHRocmVlIHR3byAnXG4gICAgICAgICsgJ1JJVkVSU0lPTiBSSVNUQVRFIEZJTEVfUkVBRF9NT0RFIEZJTEVfV1JJVEVfTU9ERSBGSUxFX1dSSVRFX01PREUgRElSX1dSSVRFX01PREUgRklMRV9SRUFEX1VNQVNLICdcbiAgICAgICAgKyAnRklMRV9XUklURV9VTUFTSyBESVJfUkVBRF9VTUFTSyBESVJfV1JJVEVfVU1BU0snLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdwdXQgYWJzIGFjb3MgYWxpYXNSZWZlcmVuY2UgYW5udWl0eSBhcnJheURlY29kZSBhcnJheUVuY29kZSBhc2luIGF0YW4gYXRhbjIgYXZlcmFnZSBhdmcgYXZnRGV2IGJhc2U2NERlY29kZSAnXG4gICAgICAgICsgJ2Jhc2U2NEVuY29kZSBiYXNlQ29udmVydCBiaW5hcnlEZWNvZGUgYmluYXJ5RW5jb2RlIGJ5dGVPZmZzZXQgYnl0ZVRvTnVtIGNhY2hlZFVSTCBjYWNoZWRVUkxzIGNoYXJUb051bSAnXG4gICAgICAgICsgJ2NpcGhlck5hbWVzIGNvZGVwb2ludE9mZnNldCBjb2RlcG9pbnRQcm9wZXJ0eSBjb2RlcG9pbnRUb051bSBjb2RldW5pdE9mZnNldCBjb21tYW5kTmFtZXMgY29tcG91bmQgY29tcHJlc3MgJ1xuICAgICAgICArICdjb25zdGFudE5hbWVzIGNvcyBkYXRlIGRhdGVGb3JtYXQgZGVjb21wcmVzcyBkaWZmZXJlbmNlIGRpcmVjdG9yaWVzICdcbiAgICAgICAgKyAnZGlza1NwYWNlIEROU1NlcnZlcnMgZXhwIGV4cDEgZXhwMiBleHAxMCBleHRlbnRzIGZpbGVzIGZsdXNoRXZlbnRzIGZvbGRlcnMgZm9ybWF0IGZ1bmN0aW9uTmFtZXMgZ2VvbWV0cmljTWVhbiBnbG9iYWwgJ1xuICAgICAgICArICdnbG9iYWxzIGhhc01lbW9yeSBoYXJtb25pY01lYW4gaG9zdEFkZHJlc3MgaG9zdEFkZHJlc3NUb05hbWUgaG9zdE5hbWUgaG9zdE5hbWVUb0FkZHJlc3MgaXNOdW1iZXIgSVNPVG9NYWMgaXRlbU9mZnNldCAnXG4gICAgICAgICsgJ2tleXMgbGVuIGxlbmd0aCBsaWJVUkxFcnJvckRhdGEgbGliVXJsRm9ybURhdGEgbGliVVJMZnRwQ29tbWFuZCBsaWJVUkxMYXN0SFRUUEhlYWRlcnMgbGliVVJMTGFzdFJISGVhZGVycyAnXG4gICAgICAgICsgJ2xpYlVybE11bHRpcGFydEZvcm1BZGRQYXJ0IGxpYlVybE11bHRpcGFydEZvcm1EYXRhIGxpYlVSTFZlcnNpb24gbGluZU9mZnNldCBsbiBsbjEgbG9jYWxOYW1lcyBsb2cgbG9nMiBsb2cxMCAnXG4gICAgICAgICsgJ2xvbmdGaWxlUGF0aCBsb3dlciBtYWNUb0lTTyBtYXRjaENodW5rIG1hdGNoVGV4dCBtYXRyaXhNdWx0aXBseSBtYXggbWQ1RGlnZXN0IG1lZGlhbiBtZXJnZSBtZXNzYWdlQXV0aGVudGljYXRpb25Db2RlIG1lc3NhZ2VEaWdlc3QgbWlsbGlzZWMgJ1xuICAgICAgICArICdtaWxsaXNlY3MgbWlsbGlzZWNvbmQgbWlsbGlzZWNvbmRzIG1pbiBtb250aE5hbWVzIG5hdGl2ZUNoYXJUb051bSBub3JtYWxpemVUZXh0IG51bSBudW1iZXIgbnVtVG9CeXRlIG51bVRvQ2hhciAnXG4gICAgICAgICsgJ251bVRvQ29kZXBvaW50IG51bVRvTmF0aXZlQ2hhciBvZmZzZXQgb3BlbiBvcGVuZmlsZXMgb3BlblByb2Nlc3NlcyBvcGVuUHJvY2Vzc0lEcyBvcGVuU29ja2V0cyAnXG4gICAgICAgICsgJ3BhcmFncmFwaE9mZnNldCBwYXJhbUNvdW50IHBhcmFtIHBhcmFtcyBwZWVyQWRkcmVzcyBwZW5kaW5nTWVzc2FnZXMgcGxhdGZvcm0gcG9wU3RkRGV2IHBvcHVsYXRpb25TdGFuZGFyZERldmlhdGlvbiAnXG4gICAgICAgICsgJ3BvcHVsYXRpb25WYXJpYW5jZSBwb3BWYXJpYW5jZSBwcm9jZXNzSUQgcmFuZG9tIHJhbmRvbUJ5dGVzIHJlcGxhY2VUZXh0IHJlc3VsdCByZXZDcmVhdGVYTUxUcmVlIHJldkNyZWF0ZVhNTFRyZWVGcm9tRmlsZSAnXG4gICAgICAgICsgJ3JldkN1cnJlbnRSZWNvcmQgcmV2Q3VycmVudFJlY29yZElzRmlyc3QgcmV2Q3VycmVudFJlY29yZElzTGFzdCByZXZEYXRhYmFzZUNvbHVtbkNvdW50IHJldkRhdGFiYXNlQ29sdW1uSXNOdWxsICdcbiAgICAgICAgKyAncmV2RGF0YWJhc2VDb2x1bW5MZW5ndGhzIHJldkRhdGFiYXNlQ29sdW1uTmFtZXMgcmV2RGF0YWJhc2VDb2x1bW5OYW1lZCByZXZEYXRhYmFzZUNvbHVtbk51bWJlcmVkICdcbiAgICAgICAgKyAncmV2RGF0YWJhc2VDb2x1bW5UeXBlcyByZXZEYXRhYmFzZUNvbm5lY3RSZXN1bHQgcmV2RGF0YWJhc2VDdXJzb3JzIHJldkRhdGFiYXNlSUQgcmV2RGF0YWJhc2VUYWJsZU5hbWVzICdcbiAgICAgICAgKyAncmV2RGF0YWJhc2VUeXBlIHJldkRhdGFGcm9tUXVlcnkgcmV2ZGJfY2xvc2VDdXJzb3IgcmV2ZGJfY29sdW1uYnludW1iZXIgcmV2ZGJfY29sdW1uY291bnQgcmV2ZGJfY29sdW1uaXNudWxsICdcbiAgICAgICAgKyAncmV2ZGJfY29sdW1ubGVuZ3RocyByZXZkYl9jb2x1bW5uYW1lcyByZXZkYl9jb2x1bW50eXBlcyByZXZkYl9jb21taXQgcmV2ZGJfY29ubmVjdCByZXZkYl9jb25uZWN0aW9ucyAnXG4gICAgICAgICsgJ3JldmRiX2Nvbm5lY3Rpb25lcnIgcmV2ZGJfY3VycmVudHJlY29yZCByZXZkYl9jdXJzb3Jjb25uZWN0aW9uIHJldmRiX2N1cnNvcmVyciByZXZkYl9jdXJzb3JzIHJldmRiX2RidHlwZSAnXG4gICAgICAgICsgJ3JldmRiX2Rpc2Nvbm5lY3QgcmV2ZGJfZXhlY3V0ZSByZXZkYl9pc2VvZiByZXZkYl9pc2JvZiByZXZkYl9tb3ZlZmlyc3QgcmV2ZGJfbW92ZWxhc3QgcmV2ZGJfbW92ZW5leHQgJ1xuICAgICAgICArICdyZXZkYl9tb3ZlcHJldiByZXZkYl9xdWVyeSByZXZkYl9xdWVyeWxpc3QgcmV2ZGJfcmVjb3JkY291bnQgcmV2ZGJfcm9sbGJhY2sgcmV2ZGJfdGFibGVuYW1lcyAnXG4gICAgICAgICsgJ3JldkdldERhdGFiYXNlRHJpdmVyUGF0aCByZXZOdW1iZXJPZlJlY29yZHMgcmV2T3BlbkRhdGFiYXNlIHJldk9wZW5EYXRhYmFzZXMgcmV2UXVlcnlEYXRhYmFzZSAnXG4gICAgICAgICsgJ3JldlF1ZXJ5RGF0YWJhc2VCbG9iIHJldlF1ZXJ5UmVzdWx0IHJldlF1ZXJ5SXNBdFN0YXJ0IHJldlF1ZXJ5SXNBdEVuZCByZXZVbml4RnJvbU1hY1BhdGggcmV2WE1MQXR0cmlidXRlICdcbiAgICAgICAgKyAncmV2WE1MQXR0cmlidXRlcyByZXZYTUxBdHRyaWJ1dGVWYWx1ZXMgcmV2WE1MQ2hpbGRDb250ZW50cyByZXZYTUxDaGlsZE5hbWVzIHJldlhNTENyZWF0ZVRyZWVGcm9tRmlsZVdpdGhOYW1lc3BhY2VzICdcbiAgICAgICAgKyAncmV2WE1MQ3JlYXRlVHJlZVdpdGhOYW1lc3BhY2VzIHJldlhNTERhdGFGcm9tWFBhdGhRdWVyeSByZXZYTUxFdmFsdWF0ZVhQYXRoIHJldlhNTEZpcnN0Q2hpbGQgcmV2WE1MTWF0Y2hpbmdOb2RlICdcbiAgICAgICAgKyAncmV2WE1MTmV4dFNpYmxpbmcgcmV2WE1MTm9kZUNvbnRlbnRzIHJldlhNTE51bWJlck9mQ2hpbGRyZW4gcmV2WE1MUGFyZW50IHJldlhNTFByZXZpb3VzU2libGluZyAnXG4gICAgICAgICsgJ3JldlhNTFJvb3ROb2RlIHJldlhNTFJQQ19DcmVhdGVSZXF1ZXN0IHJldlhNTFJQQ19Eb2N1bWVudHMgcmV2WE1MUlBDX0Vycm9yICdcbiAgICAgICAgKyAncmV2WE1MUlBDX0dldEhvc3QgcmV2WE1MUlBDX0dldE1ldGhvZCByZXZYTUxSUENfR2V0UGFyYW0gcmV2WE1MVGV4dCByZXZYTUxSUENfRXhlY3V0ZSAnXG4gICAgICAgICsgJ3JldlhNTFJQQ19HZXRQYXJhbUNvdW50IHJldlhNTFJQQ19HZXRQYXJhbU5vZGUgcmV2WE1MUlBDX0dldFBhcmFtVHlwZSByZXZYTUxSUENfR2V0UGF0aCByZXZYTUxSUENfR2V0UG9ydCAnXG4gICAgICAgICsgJ3JldlhNTFJQQ19HZXRQcm90b2NvbCByZXZYTUxSUENfR2V0UmVxdWVzdCByZXZYTUxSUENfR2V0UmVzcG9uc2UgcmV2WE1MUlBDX0dldFNvY2tldCByZXZYTUxUcmVlICdcbiAgICAgICAgKyAncmV2WE1MVHJlZXMgcmV2WE1MVmFsaWRhdGVEVEQgcmV2WmlwRGVzY3JpYmVJdGVtIHJldlppcEVudW1lcmF0ZUl0ZW1zIHJldlppcE9wZW5BcmNoaXZlcyByb3VuZCBzYW1wVmFyaWFuY2UgJ1xuICAgICAgICArICdzZWMgc2VjcyBzZWNvbmRzIHNlbnRlbmNlT2Zmc2V0IHNoYTFEaWdlc3Qgc2hlbGwgc2hvcnRGaWxlUGF0aCBzaW4gc3BlY2lhbEZvbGRlclBhdGggc3FydCBzdGFuZGFyZERldmlhdGlvbiBzdGF0Um91bmQgJ1xuICAgICAgICArICdzdGREZXYgc3VtIHN5c0Vycm9yIHN5c3RlbVZlcnNpb24gdGFuIHRlbXBOYW1lIHRleHREZWNvZGUgdGV4dEVuY29kZSB0aWNrIHRpY2tzIHRpbWUgdG8gdG9rZW5PZmZzZXQgdG9Mb3dlciB0b1VwcGVyICdcbiAgICAgICAgKyAndHJhbnNwb3NlIHRydWV3b3JkT2Zmc2V0IHRydW5jIHVuaURlY29kZSB1bmlFbmNvZGUgdXBwZXIgVVJMRGVjb2RlIFVSTEVuY29kZSBVUkxTdGF0dXMgdXVpZCB2YWx1ZSB2YXJpYWJsZU5hbWVzICdcbiAgICAgICAgKyAndmFyaWFuY2UgdmVyc2lvbiB3YWl0RGVwdGggd2Vla2RheU5hbWVzIHdvcmRPZmZzZXQgeHNsdEFwcGx5U3R5bGVzaGVldCB4c2x0QXBwbHlTdHlsZXNoZWV0RnJvbUZpbGUgeHNsdExvYWRTdHlsZXNoZWV0ICdcbiAgICAgICAgKyAneHNsdExvYWRTdHlsZXNoZWV0RnJvbUZpbGUgYWRkIGJyZWFrcG9pbnQgY2FuY2VsIGNsZWFyIGxvY2FsIHZhcmlhYmxlIGZpbGUgd29yZCBsaW5lIGZvbGRlciBkaXJlY3RvcnkgVVJMIGNsb3NlIHNvY2tldCBwcm9jZXNzICdcbiAgICAgICAgKyAnY29tYmluZSBjb25zdGFudCBjb252ZXJ0IGNyZWF0ZSBuZXcgYWxpYXMgZm9sZGVyIGRpcmVjdG9yeSBkZWNyeXB0IGRlbGV0ZSB2YXJpYWJsZSB3b3JkIGxpbmUgZm9sZGVyICdcbiAgICAgICAgKyAnZGlyZWN0b3J5IFVSTCBkaXNwYXRjaCBkaXZpZGUgZG8gZW5jcnlwdCBmaWx0ZXIgZ2V0IGluY2x1ZGUgaW50ZXJzZWN0IGtpbGwgbGliVVJMRG93bmxvYWRUb0ZpbGUgJ1xuICAgICAgICArICdsaWJVUkxGb2xsb3dIdHRwUmVkaXJlY3RzIGxpYlVSTGZ0cFVwbG9hZCBsaWJVUkxmdHBVcGxvYWRGaWxlIGxpYlVSTHJlc2V0QWxsIGxpYlVybFNldEF1dGhDYWxsYmFjayBsaWJVUkxTZXREcml2ZXIgJ1xuICAgICAgICArICdsaWJVUkxTZXRDdXN0b21IVFRQSGVhZGVycyBsaWJVcmxTZXRFeHBlY3QxMDAgbGliVVJMU2V0RlRQTGlzdENvbW1hbmQgbGliVVJMU2V0RlRQTW9kZSBsaWJVUkxTZXRGVFBTdG9wVGltZSAnXG4gICAgICAgICsgJ2xpYlVSTFNldFN0YXR1c0NhbGxiYWNrIGxvYWQgZXh0ZW5zaW9uIGxvYWRlZEV4dGVuc2lvbnMgbXVsdGlwbHkgc29ja2V0IHByZXBhcmUgcHJvY2VzcyBwb3N0IHNlZWsgcmVsIHJlbGF0aXZlIHJlYWQgZnJvbSBwcm9jZXNzIHJlbmFtZSAnXG4gICAgICAgICsgJ3JlcGxhY2UgcmVxdWlyZSByZXNldEFsbCByZXNvbHZlIHJldkFkZFhNTE5vZGUgcmV2QXBwZW5kWE1MIHJldkNsb3NlQ3Vyc29yIHJldkNsb3NlRGF0YWJhc2UgcmV2Q29tbWl0RGF0YWJhc2UgJ1xuICAgICAgICArICdyZXZDb3B5RmlsZSByZXZDb3B5Rm9sZGVyIHJldkNvcHlYTUxOb2RlIHJldkRlbGV0ZUZvbGRlciByZXZEZWxldGVYTUxOb2RlIHJldkRlbGV0ZUFsbFhNTFRyZWVzICdcbiAgICAgICAgKyAncmV2RGVsZXRlWE1MVHJlZSByZXZFeGVjdXRlU1FMIHJldkdvVVJMIHJldkluc2VydFhNTE5vZGUgcmV2TW92ZUZvbGRlciByZXZNb3ZlVG9GaXJzdFJlY29yZCByZXZNb3ZlVG9MYXN0UmVjb3JkICdcbiAgICAgICAgKyAncmV2TW92ZVRvTmV4dFJlY29yZCByZXZNb3ZlVG9QcmV2aW91c1JlY29yZCByZXZNb3ZlVG9SZWNvcmQgcmV2TW92ZVhNTE5vZGUgcmV2UHV0SW50b1hNTE5vZGUgcmV2Um9sbEJhY2tEYXRhYmFzZSAnXG4gICAgICAgICsgJ3JldlNldERhdGFiYXNlRHJpdmVyUGF0aCByZXZTZXRYTUxBdHRyaWJ1dGUgcmV2WE1MUlBDX0FkZFBhcmFtIHJldlhNTFJQQ19EZWxldGVBbGxEb2N1bWVudHMgcmV2WE1MQWRkRFREICdcbiAgICAgICAgKyAncmV2WE1MUlBDX0ZyZWUgcmV2WE1MUlBDX0ZyZWVBbGwgcmV2WE1MUlBDX0RlbGV0ZURvY3VtZW50IHJldlhNTFJQQ19EZWxldGVQYXJhbSByZXZYTUxSUENfU2V0SG9zdCAnXG4gICAgICAgICsgJ3JldlhNTFJQQ19TZXRNZXRob2QgcmV2WE1MUlBDX1NldFBvcnQgcmV2WE1MUlBDX1NldFByb3RvY29sIHJldlhNTFJQQ19TZXRTb2NrZXQgcmV2WmlwQWRkSXRlbVdpdGhEYXRhICdcbiAgICAgICAgKyAncmV2WmlwQWRkSXRlbVdpdGhGaWxlIHJldlppcEFkZFVuY29tcHJlc3NlZEl0ZW1XaXRoRGF0YSByZXZaaXBBZGRVbmNvbXByZXNzZWRJdGVtV2l0aEZpbGUgcmV2WmlwQ2FuY2VsICdcbiAgICAgICAgKyAncmV2WmlwQ2xvc2VBcmNoaXZlIHJldlppcERlbGV0ZUl0ZW0gcmV2WmlwRXh0cmFjdEl0ZW1Ub0ZpbGUgcmV2WmlwRXh0cmFjdEl0ZW1Ub1ZhcmlhYmxlIHJldlppcFNldFByb2dyZXNzQ2FsbGJhY2sgJ1xuICAgICAgICArICdyZXZaaXBSZW5hbWVJdGVtIHJldlppcFJlcGxhY2VJdGVtV2l0aERhdGEgcmV2WmlwUmVwbGFjZUl0ZW1XaXRoRmlsZSByZXZaaXBPcGVuQXJjaGl2ZSBzZW5kIHNldCBzb3J0IHNwbGl0IHN0YXJ0IHN0b3AgJ1xuICAgICAgICArICdzdWJ0cmFjdCBzeW1tZXRyaWMgdW5pb24gdW5sb2FkIHZlY3RvckRvdFByb2R1Y3Qgd2FpdCB3cml0ZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJlbmRcXFxcc2lmXFxcXGInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIFRJVExFMixcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgICAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgVElUTEUxXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYmVuZFxcXFxzKycsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBrZXl3b3JkczogJ2VuZCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEUyLFxuICAgICAgICAgIFRJVExFMVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjb21tYW5kIG9uJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgVElUTEUyLFxuICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgICAgICBUSVRMRTFcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICc8XFxcXD8ocmV2fGxjfGxpdmVjb2RlKScsXG4gICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnPFxcXFw/JyB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcPz4nIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIFRJVExFMVxuICAgIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpLFxuICAgIGlsbGVnYWw6ICc7JHxeXFxcXFt8Xj18JnxcXFxceydcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXZlY29kZXNlcnZlcjtcbiIsICJjb25zdCBLRVlXT1JEUyA9IFtcbiAgXCJhc1wiLCAvLyBmb3IgZXhwb3J0c1xuICBcImluXCIsXG4gIFwib2ZcIixcbiAgXCJpZlwiLFxuICBcImZvclwiLFxuICBcIndoaWxlXCIsXG4gIFwiZmluYWxseVwiLFxuICBcInZhclwiLFxuICBcIm5ld1wiLFxuICBcImZ1bmN0aW9uXCIsXG4gIFwiZG9cIixcbiAgXCJyZXR1cm5cIixcbiAgXCJ2b2lkXCIsXG4gIFwiZWxzZVwiLFxuICBcImJyZWFrXCIsXG4gIFwiY2F0Y2hcIixcbiAgXCJpbnN0YW5jZW9mXCIsXG4gIFwid2l0aFwiLFxuICBcInRocm93XCIsXG4gIFwiY2FzZVwiLFxuICBcImRlZmF1bHRcIixcbiAgXCJ0cnlcIixcbiAgXCJzd2l0Y2hcIixcbiAgXCJjb250aW51ZVwiLFxuICBcInR5cGVvZlwiLFxuICBcImRlbGV0ZVwiLFxuICBcImxldFwiLFxuICBcInlpZWxkXCIsXG4gIFwiY29uc3RcIixcbiAgXCJjbGFzc1wiLFxuICAvLyBKUyBoYW5kbGVzIHRoZXNlIHdpdGggYSBzcGVjaWFsIHJ1bGVcbiAgLy8gXCJnZXRcIixcbiAgLy8gXCJzZXRcIixcbiAgXCJkZWJ1Z2dlclwiLFxuICBcImFzeW5jXCIsXG4gIFwiYXdhaXRcIixcbiAgXCJzdGF0aWNcIixcbiAgXCJpbXBvcnRcIixcbiAgXCJmcm9tXCIsXG4gIFwiZXhwb3J0XCIsXG4gIFwiZXh0ZW5kc1wiXG5dO1xuY29uc3QgTElURVJBTFMgPSBbXG4gIFwidHJ1ZVwiLFxuICBcImZhbHNlXCIsXG4gIFwibnVsbFwiLFxuICBcInVuZGVmaW5lZFwiLFxuICBcIk5hTlwiLFxuICBcIkluZmluaXR5XCJcbl07XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzXG5jb25zdCBUWVBFUyA9IFtcbiAgLy8gRnVuZGFtZW50YWwgb2JqZWN0c1xuICBcIk9iamVjdFwiLFxuICBcIkZ1bmN0aW9uXCIsXG4gIFwiQm9vbGVhblwiLFxuICBcIlN5bWJvbFwiLFxuICAvLyBudW1iZXJzIGFuZCBkYXRlc1xuICBcIk1hdGhcIixcbiAgXCJEYXRlXCIsXG4gIFwiTnVtYmVyXCIsXG4gIFwiQmlnSW50XCIsXG4gIC8vIHRleHRcbiAgXCJTdHJpbmdcIixcbiAgXCJSZWdFeHBcIixcbiAgLy8gSW5kZXhlZCBjb2xsZWN0aW9uc1xuICBcIkFycmF5XCIsXG4gIFwiRmxvYXQzMkFycmF5XCIsXG4gIFwiRmxvYXQ2NEFycmF5XCIsXG4gIFwiSW50OEFycmF5XCIsXG4gIFwiVWludDhBcnJheVwiLFxuICBcIlVpbnQ4Q2xhbXBlZEFycmF5XCIsXG4gIFwiSW50MTZBcnJheVwiLFxuICBcIkludDMyQXJyYXlcIixcbiAgXCJVaW50MTZBcnJheVwiLFxuICBcIlVpbnQzMkFycmF5XCIsXG4gIFwiQmlnSW50NjRBcnJheVwiLFxuICBcIkJpZ1VpbnQ2NEFycmF5XCIsXG4gIC8vIEtleWVkIGNvbGxlY3Rpb25zXG4gIFwiU2V0XCIsXG4gIFwiTWFwXCIsXG4gIFwiV2Vha1NldFwiLFxuICBcIldlYWtNYXBcIixcbiAgLy8gU3RydWN0dXJlZCBkYXRhXG4gIFwiQXJyYXlCdWZmZXJcIixcbiAgXCJTaGFyZWRBcnJheUJ1ZmZlclwiLFxuICBcIkF0b21pY3NcIixcbiAgXCJEYXRhVmlld1wiLFxuICBcIkpTT05cIixcbiAgLy8gQ29udHJvbCBhYnN0cmFjdGlvbiBvYmplY3RzXG4gIFwiUHJvbWlzZVwiLFxuICBcIkdlbmVyYXRvclwiLFxuICBcIkdlbmVyYXRvckZ1bmN0aW9uXCIsXG4gIFwiQXN5bmNGdW5jdGlvblwiLFxuICAvLyBSZWZsZWN0aW9uXG4gIFwiUmVmbGVjdFwiLFxuICBcIlByb3h5XCIsXG4gIC8vIEludGVybmF0aW9uYWxpemF0aW9uXG4gIFwiSW50bFwiLFxuICAvLyBXZWJBc3NlbWJseVxuICBcIldlYkFzc2VtYmx5XCJcbl07XG5cbmNvbnN0IEVSUk9SX1RZUEVTID0gW1xuICBcIkVycm9yXCIsXG4gIFwiRXZhbEVycm9yXCIsXG4gIFwiSW50ZXJuYWxFcnJvclwiLFxuICBcIlJhbmdlRXJyb3JcIixcbiAgXCJSZWZlcmVuY2VFcnJvclwiLFxuICBcIlN5bnRheEVycm9yXCIsXG4gIFwiVHlwZUVycm9yXCIsXG4gIFwiVVJJRXJyb3JcIlxuXTtcblxuY29uc3QgQlVJTFRfSU5fR0xPQkFMUyA9IFtcbiAgXCJzZXRJbnRlcnZhbFwiLFxuICBcInNldFRpbWVvdXRcIixcbiAgXCJjbGVhckludGVydmFsXCIsXG4gIFwiY2xlYXJUaW1lb3V0XCIsXG5cbiAgXCJyZXF1aXJlXCIsXG4gIFwiZXhwb3J0c1wiLFxuXG4gIFwiZXZhbFwiLFxuICBcImlzRmluaXRlXCIsXG4gIFwiaXNOYU5cIixcbiAgXCJwYXJzZUZsb2F0XCIsXG4gIFwicGFyc2VJbnRcIixcbiAgXCJkZWNvZGVVUklcIixcbiAgXCJkZWNvZGVVUklDb21wb25lbnRcIixcbiAgXCJlbmNvZGVVUklcIixcbiAgXCJlbmNvZGVVUklDb21wb25lbnRcIixcbiAgXCJlc2NhcGVcIixcbiAgXCJ1bmVzY2FwZVwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTlMgPSBbXS5jb25jYXQoXG4gIEJVSUxUX0lOX0dMT0JBTFMsXG4gIFRZUEVTLFxuICBFUlJPUl9UWVBFU1xuKTtcblxuLypcbkxhbmd1YWdlOiBMaXZlU2NyaXB0XG5BdXRob3I6IFRhbmVsaSBWYXRhbmVuIDx0YW5lbGkudmF0YW5lbkBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEplbiBFdmVycy1Db3J2aW5hIDxqZW5Ac2V2dmllLm5ldD5cbk9yaWdpbjogY29mZmVlc2NyaXB0LmpzXG5EZXNjcmlwdGlvbjogTGl2ZVNjcmlwdCBpcyBhIHByb2dyYW1taW5nIGxhbmd1YWdlIHRoYXQgdHJhbnNjb21waWxlcyB0byBKYXZhU2NyaXB0LiBGb3IgaW5mbyBhYm91dCBsYW5ndWFnZSBzZWUgaHR0cDovL2xpdmVzY3JpcHQubmV0L1xuV2Vic2l0ZTogaHR0cHM6Ly9saXZlc2NyaXB0Lm5ldFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuXG5mdW5jdGlvbiBsaXZlc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgTElWRVNDUklQVF9CVUlMVF9JTlMgPSBbXG4gICAgJ25wbScsXG4gICAgJ3ByaW50J1xuICBdO1xuICBjb25zdCBMSVZFU0NSSVBUX0xJVEVSQUxTID0gW1xuICAgICd5ZXMnLFxuICAgICdubycsXG4gICAgJ29uJyxcbiAgICAnb2ZmJyxcbiAgICAnaXQnLFxuICAgICd0aGF0JyxcbiAgICAndm9pZCdcbiAgXTtcbiAgY29uc3QgTElWRVNDUklQVF9LRVlXT1JEUyA9IFtcbiAgICAndGhlbicsXG4gICAgJ3VubGVzcycsXG4gICAgJ3VudGlsJyxcbiAgICAnbG9vcCcsXG4gICAgJ29mJyxcbiAgICAnYnknLFxuICAgICd3aGVuJyxcbiAgICAnYW5kJyxcbiAgICAnb3InLFxuICAgICdpcycsXG4gICAgJ2lzbnQnLFxuICAgICdub3QnLFxuICAgICdpdCcsXG4gICAgJ3RoYXQnLFxuICAgICdvdGhlcndpc2UnLFxuICAgICdmcm9tJyxcbiAgICAndG8nLFxuICAgICd0aWwnLFxuICAgICdmYWxsdGhyb3VnaCcsXG4gICAgJ2Nhc2UnLFxuICAgICdlbnVtJyxcbiAgICAnbmF0aXZlJyxcbiAgICAnbGlzdCcsXG4gICAgJ21hcCcsXG4gICAgJ19faGFzUHJvcCcsXG4gICAgJ19fZXh0ZW5kcycsXG4gICAgJ19fc2xpY2UnLFxuICAgICdfX2JpbmQnLFxuICAgICdfX2luZGV4T2YnXG4gIF07XG4gIGNvbnN0IEtFWVdPUkRTJDEgPSB7XG4gICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KExJVkVTQ1JJUFRfS0VZV09SRFMpLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLmNvbmNhdChMSVZFU0NSSVBUX0xJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLmNvbmNhdChMSVZFU0NSSVBUX0JVSUxUX0lOUylcbiAgfTtcbiAgY29uc3QgSlNfSURFTlRfUkUgPSAnW0EtWmEteiRfXSg/Oi1bMC05QS1aYS16JF9dfFswLTlBLVphLXokX10pKic7XG4gIGNvbnN0IFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogSlNfSURFTlRfUkUgfSk7XG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNcXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDFcbiAgfTtcbiAgY29uc3QgU1VCU1RfU0lNUExFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogLyNbQS1aYS16JF9dLyxcbiAgICBlbmQ6IC8oPzotWzAtOUEtWmEteiRfXXxbMC05QS1aYS16JF9dKSovLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxXG4gIH07XG4gIGNvbnN0IEVYUFJFU1NJT05TID0gW1xuICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogJyhcXFxcYjBbeFhdW2EtZkEtRjAtOV9dKyl8KFxcXFxiXFxcXGQoXFxcXGR8X1xcXFxkKSooXFxcXC4oXFxcXGQoXFxcXGR8X1xcXFxkKSopPyk/KF8qW2VFXShbLStdXFxcXGQoX1xcXFxkfFxcXFxkKSopPyk/W19hLXpdKiknLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyhcXFxccyovKT8nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0gLy8gYSBudW1iZXIgdHJpZXMgdG8gZWF0IHRoZSBmb2xsb3dpbmcgc2xhc2ggdG8gcHJldmVudCB0cmVhdGluZyBpdCBhcyBhIHJlZ2V4cFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLycnJy8sXG4gICAgICAgICAgZW5kOiAvJycnLyxcbiAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cIlwiXCIvLFxuICAgICAgICAgIGVuZDogL1wiXCJcIi8sXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICAgIFNVQlNULFxuICAgICAgICAgICAgU1VCU1RfU0lNUExFXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgICBTVUJTVCxcbiAgICAgICAgICAgIFNVQlNUX1NJTVBMRVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXFxcXC8sXG4gICAgICAgICAgZW5kOiAvKFxcc3wkKS8sXG4gICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdyZWdleHAnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLy8nLFxuICAgICAgICAgIGVuZDogJy8vW2dpbV0qJyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgU1VCU1QsXG4gICAgICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLy8gcmVnZXggY2FuJ3Qgc3RhcnQgd2l0aCBzcGFjZSB0byBwYXJzZSB4IC8gMiAvIDMgYXMgdHdvIGRpdmlzaW9uc1xuICAgICAgICAgIC8vIHJlZ2V4IGNhbid0IHN0YXJ0IHdpdGggKiwgYW5kIGl0IHN1cHBvcnRzIGFuIFwiaWxsZWdhbFwiIGluIHRoZSBtYWluIG1vZGVcbiAgICAgICAgICBiZWdpbjogL1xcLyg/IVsgKl0pKFxcXFwufFteXFxcXFxcbl0pKj9cXC9bZ2ltXSooPz1cXFcpLyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7IGJlZ2luOiAnQCcgKyBKU19JREVOVF9SRSB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAnYGAnLFxuICAgICAgZW5kOiAnYGAnLFxuICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAnamF2YXNjcmlwdCdcbiAgICB9XG4gIF07XG4gIFNVQlNULmNvbnRhaW5zID0gRVhQUkVTU0lPTlM7XG5cbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKCcsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgLyogV2UgbmVlZCBhbm90aGVyIGNvbnRhaW5lZCBuYW1lbGVzcyBtb2RlIHRvIG5vdCBoYXZlIGV2ZXJ5IG5lc3RlZFxuICAgIHBhaXIgb2YgcGFyZW5zIHRvIGJlIGNhbGxlZCBcInBhcmFtc1wiICovXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBTWU1CT0xTID0geyBiZWdpbjogJygjPT58PT58XFxcXHw+PnwtPy0+fCEtPiknIH07XG5cbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSlNfSURFTlRfUkUsXG4gICAgICAgIC9cXHMrZXh0ZW5kc1xccysvLFxuICAgICAgICBKU19JREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSlNfSURFTlRfUkVcbiAgICAgIF0gfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTGl2ZVNjcmlwdCcsXG4gICAgYWxpYXNlczogWyAnbHMnIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05TLmNvbmNhdChbXG4gICAgICBobGpzLkNPTU1FTlQoJ1xcXFwvXFxcXConLCAnXFxcXCpcXFxcLycpLFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNZTUJPTFMsIC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBUSVRMRSxcbiAgICAgICAgICBQQVJBTVNcbiAgICAgICAgXSxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8oXFxcXCguKlxcXFwpXFxcXHMqKT9cXFxcQi0+XFxcXCo/JyxcbiAgICAgICAgICAgIGVuZDogJy0+XFxcXCo/J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8hPyhcXFxcKC4qXFxcXClcXFxccyopP1xcXFxCWy1+XXsxLDJ9PlxcXFwqPycsXG4gICAgICAgICAgICBlbmQ6ICdbLX5dezEsMn0+XFxcXCo/J1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcoJyArIEpTX0lERU5UX1JFICsgJ1xcXFxzKig/Oj18Oj0pXFxcXHMqKT8oXFxcXCguKlxcXFwpXFxcXHMqKT9cXFxcQiE/Wy1+XXsxLDJ9PlxcXFwqPycsXG4gICAgICAgICAgICBlbmQ6ICchP1stfl17MSwyfT5cXFxcKj8nXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgQ0xBU1NfREVGSU5JVElPTixcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IEpTX0lERU5UX1JFICsgJzonLFxuICAgICAgICBlbmQ6ICc6JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsaXZlc2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogTExWTSBJUlxuQXV0aG9yOiBNaWNoYWVsIFJvZGxlciA8Y29udGFjdEBmMHJraS5hdD5cbkRlc2NyaXB0aW9uOiBsYW5ndWFnZSB1c2VkIGFzIGludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbiBpbiB0aGUgTExWTSBjb21waWxlciBmcmFtZXdvcmtcbldlYnNpdGU6IGh0dHBzOi8vbGx2bS5vcmcvZG9jcy9MYW5nUmVmLmh0bWxcbkNhdGVnb3J5OiBhc3NlbWJsZXJcbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbGx2bShobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSURFTlRfUkUgPSAvKFstYS16QS1aJC5fXVtcXHckLi1dKikvO1xuICBjb25zdCBUWVBFID0ge1xuICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgIGJlZ2luOiAvXFxiaVxcZCsoPz1cXHN8XFxiKS9cbiAgfTtcbiAgY29uc3QgT1BFUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3BlcmF0b3InLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogLz0vXG4gIH07XG4gIGNvbnN0IFBVTkNUVUFUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ3B1bmN0dWF0aW9uJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IC8sL1xuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1tzdV0/MFt4WF1bS01MSFJdP1thLWZBLUYwLTldKy8gfSxcbiAgICAgIHsgYmVnaW46IC9bLStdP1xcZCsoPzpbLl1cXGQrKT8oPzpbZUVdWy0rXT9cXGQrKD86Wy5dXFxkKyk/KT8vIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIHZhcmlhbnRzOiBbIHsgYmVnaW46IC9eXFxzKlthLXpdKzovIH0sIC8vIGxhYmVsc1xuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KC8lLywgSURFTlRfUkUpIH0sXG4gICAgICB7IGJlZ2luOiAvJVxcZCsvIH0sXG4gICAgICB7IGJlZ2luOiAvI1xcZCsvIH0sXG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IHJlZ2V4LmNvbmNhdCgvQC8sIElERU5UX1JFKSB9LFxuICAgICAgeyBiZWdpbjogL0BcXGQrLyB9LFxuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KC8hLywgSURFTlRfUkUpIH0sXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoLyFcXGQrLywgSURFTlRfUkUpIH0sXG4gICAgICAvLyBodHRwczovL2xsdm0ub3JnL2RvY3MvTGFuZ1JlZi5odG1sI25hbWVkbWV0YWRhdGFzdHJ1Y3R1cmVcbiAgICAgIC8vIG9idmlvdXNseSBhIHNpbmdsZSBkaWdpdCBjYW4gYWxzbyBiZSB1c2VkIGluIHRoaXMgZmFzaGlvblxuICAgICAgeyBiZWdpbjogLyFcXGQrLyB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xMVk0gSVInLFxuICAgIC8vIFRPRE86IHNwbGl0IGludG8gZGlmZmVyZW50IGNhdGVnb3JpZXMgb2Yga2V5d29yZHNcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ2JlZ2luIGVuZCB0cnVlIGZhbHNlIGRlY2xhcmUgZGVmaW5lIGdsb2JhbCAnXG4gICAgICAgICsgJ2NvbnN0YW50IHByaXZhdGUgbGlua2VyX3ByaXZhdGUgaW50ZXJuYWwgJ1xuICAgICAgICArICdhdmFpbGFibGVfZXh0ZXJuYWxseSBsaW5rb25jZSBsaW5rb25jZV9vZHIgd2VhayAnXG4gICAgICAgICsgJ3dlYWtfb2RyIGFwcGVuZGluZyBkbGxpbXBvcnQgZGxsZXhwb3J0IGNvbW1vbiAnXG4gICAgICAgICsgJ2RlZmF1bHQgaGlkZGVuIHByb3RlY3RlZCBleHRlcm5fd2VhayBleHRlcm5hbCAnXG4gICAgICAgICsgJ3RocmVhZF9sb2NhbCB6ZXJvaW5pdGlhbGl6ZXIgdW5kZWYgbnVsbCB0byB0YWlsICdcbiAgICAgICAgKyAndGFyZ2V0IHRyaXBsZSBkYXRhbGF5b3V0IHZvbGF0aWxlIG51dyBuc3cgbm5hbiAnXG4gICAgICAgICsgJ25pbmYgbnN6IGFyY3AgZmFzdCBleGFjdCBpbmJvdW5kcyBhbGlnbiAnXG4gICAgICAgICsgJ2FkZHJzcGFjZSBzZWN0aW9uIGFsaWFzIG1vZHVsZSBhc20gc2lkZWVmZmVjdCAnXG4gICAgICAgICsgJ2djIGRiZyBsaW5rZXJfcHJpdmF0ZV93ZWFrIGF0dHJpYnV0ZXMgYmxvY2thZGRyZXNzICdcbiAgICAgICAgKyAnaW5pdGlhbGV4ZWMgbG9jYWxkeW5hbWljIGxvY2FsZXhlYyBwcmVmaXggdW5uYW1lZF9hZGRyICdcbiAgICAgICAgKyAnY2NjIGZhc3RjYyBjb2xkY2MgeDg2X3N0ZGNhbGxjYyB4ODZfZmFzdGNhbGxjYyAnXG4gICAgICAgICsgJ2FybV9hcGNzY2MgYXJtX2FhcGNzY2MgYXJtX2FhcGNzX3ZmcGNjIHB0eF9kZXZpY2UgJ1xuICAgICAgICArICdwdHhfa2VybmVsIGludGVsX29jbF9iaWNjIG1zcDQzMF9pbnRyY2Mgc3Bpcl9mdW5jICdcbiAgICAgICAgKyAnc3Bpcl9rZXJuZWwgeDg2XzY0X3N5c3ZjYyB4ODZfNjRfd2luNjRjYyB4ODZfdGhpc2NhbGxjYyAnXG4gICAgICAgICsgJ2NjIGMgc2lnbmV4dCB6ZXJvZXh0IGlucmVnIHNyZXQgbm91bndpbmQgJ1xuICAgICAgICArICdub3JldHVybiBub2FsaWFzIG5vY2FwdHVyZSBieXZhbCBuZXN0IHJlYWRub25lICdcbiAgICAgICAgKyAncmVhZG9ubHkgaW5saW5laGludCBub2lubGluZSBhbHdheXNpbmxpbmUgb3B0c2l6ZSBzc3AgJ1xuICAgICAgICArICdzc3ByZXEgbm9yZWR6b25lIG5vaW1wbGljaXRmbG9hdCBuYWtlZCBidWlsdGluIGNvbGQgJ1xuICAgICAgICArICdub2J1aWx0aW4gbm9kdXBsaWNhdGUgbm9ubGF6eWJpbmQgb3B0bm9uZSByZXR1cm5zX3R3aWNlICdcbiAgICAgICAgKyAnc2FuaXRpemVfYWRkcmVzcyBzYW5pdGl6ZV9tZW1vcnkgc2FuaXRpemVfdGhyZWFkIHNzcHN0cm9uZyAnXG4gICAgICAgICsgJ3V3dGFibGUgcmV0dXJuZWQgdHlwZSBvcGFxdWUgZXEgbmUgc2x0IHNndCAnXG4gICAgICAgICsgJ3NsZSBzZ2UgdWx0IHVndCB1bGUgdWdlIG9lcSBvbmUgb2x0IG9ndCAnXG4gICAgICAgICsgJ29sZSBvZ2Ugb3JkIHVubyB1ZXEgdW5lIHggYWNxX3JlbCBhY3F1aXJlICdcbiAgICAgICAgKyAnYWxpZ25zdGFjayBhdG9taWMgY2F0Y2ggY2xlYW51cCBmaWx0ZXIgaW50ZWxkaWFsZWN0ICdcbiAgICAgICAgKyAnbWF4IG1pbiBtb25vdG9uaWMgbmFuZCBwZXJzb25hbGl0eSByZWxlYXNlIHNlcV9jc3QgJ1xuICAgICAgICArICdzaW5nbGV0aHJlYWQgdW1heCB1bWluIHVub3JkZXJlZCB4Y2hnIGFkZCBmYWRkICdcbiAgICAgICAgKyAnc3ViIGZzdWIgbXVsIGZtdWwgdWRpdiBzZGl2IGZkaXYgdXJlbSBzcmVtICdcbiAgICAgICAgKyAnZnJlbSBzaGwgbHNociBhc2hyIGFuZCBvciB4b3IgaWNtcCBmY21wICdcbiAgICAgICAgKyAncGhpIGNhbGwgdHJ1bmMgemV4dCBzZXh0IGZwdHJ1bmMgZnBleHQgdWl0b2ZwICdcbiAgICAgICAgKyAnc2l0b2ZwIGZwdG91aSBmcHRvc2kgaW50dG9wdHIgcHRydG9pbnQgYml0Y2FzdCAnXG4gICAgICAgICsgJ2FkZHJzcGFjZWNhc3Qgc2VsZWN0IHZhX2FyZyByZXQgYnIgc3dpdGNoIGludm9rZSAnXG4gICAgICAgICsgJ3Vud2luZCB1bnJlYWNoYWJsZSBpbmRpcmVjdGJyIGxhbmRpbmdwYWQgcmVzdW1lICdcbiAgICAgICAgKyAnbWFsbG9jIGFsbG9jYSBmcmVlIGxvYWQgc3RvcmUgZ2V0ZWxlbWVudHB0ciAnXG4gICAgICAgICsgJ2V4dHJhY3RlbGVtZW50IGluc2VydGVsZW1lbnQgc2h1ZmZsZXZlY3RvciBnZXRyZXN1bHQgJ1xuICAgICAgICArICdleHRyYWN0dmFsdWUgaW5zZXJ0dmFsdWUgYXRvbWljcm13IGNtcHhjaGcgZmVuY2UgJ1xuICAgICAgICArICdhcmdtZW1vbmx5JyxcbiAgICAgIHR5cGU6ICd2b2lkIGhhbGYgYmZsb2F0IGZsb2F0IGRvdWJsZSBmcDEyOCB4ODZfZnA4MCBwcGNfZnAxMjggJ1xuICAgICAgICArICd4ODZfYW14IHg4Nl9tbXggcHRyIGxhYmVsIHRva2VuIG1ldGFkYXRhIG9wYXF1ZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUWVBFLFxuICAgICAgLy8gdGhpcyBtYXRjaGVzIFwiZW1wdHkgY29tbWVudHNcIi4uLlxuICAgICAgLy8gLi4uYmVjYXVzZSBpdCdzIGZhciBtb3JlIGxpa2VseSB0aGlzIGlzIGEgc3RhdGVtZW50IHRlcm1pbmF0b3IgaW5cbiAgICAgIC8vIGFub3RoZXIgbGFuZ3VhZ2UgdGhhbiBhbiBhY3R1YWwgY29tbWVudFxuICAgICAgaGxqcy5DT01NRU5UKC87XFxzKiQvLCBudWxsLCB7IHJlbGV2YW5jZTogMCB9KSxcbiAgICAgIGhsanMuQ09NTUVOVCgvOy8sIC8kLyksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2hhci5lc2NhcGUnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcXFxkXFxkL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgUFVOQ1RVQVRJT04sXG4gICAgICBPUEVSQVRPUixcbiAgICAgIFZBUklBQkxFLFxuICAgICAgTEFCRUwsXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbGx2bTtcbiIsICIvKlxuTGFuZ3VhZ2U6IExTTCAoTGluZGVuIFNjcmlwdGluZyBMYW5ndWFnZSlcbkRlc2NyaXB0aW9uOiBUaGUgTGluZGVuIFNjcmlwdGluZyBMYW5ndWFnZSBpcyB1c2VkIGluIFNlY29uZCBMaWZlIGJ5IExpbmRlbiBMYWJzLlxuQXV0aG9yOiBCdWlsZGVyJ3MgQnJld2VyeSA8YnVpbGRlcnNicmV3ZXJ5QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHA6Ly93aWtpLnNlY29uZGxpZmUuY29tL3dpa2kvTFNMX1BvcnRhbFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gbHNsKGhsanMpIHtcbiAgY29uc3QgTFNMX1NUUklOR19FU0NBUEVfQ0hBUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvXFxcXFt0blwiXFxcXF0vXG4gIH07XG5cbiAgY29uc3QgTFNMX1NUUklOR1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1wiJyxcbiAgICBlbmQ6ICdcIicsXG4gICAgY29udGFpbnM6IFsgTFNMX1NUUklOR19FU0NBUEVfQ0hBUlMgXVxuICB9O1xuXG4gIGNvbnN0IExTTF9OVU1CRVJTID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFXG4gIH07XG5cbiAgY29uc3QgTFNMX0NPTlNUQU5UUyA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogJ1xcXFxiKFBJfFRXT19QSXxQSV9CWV9UV098REVHX1RPX1JBRHxSQURfVE9fREVHfFNRUlQyKVxcXFxiJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxiKFhQX0VSUk9SXyhFWFBFUklFTkNFU19ESVNBQkxFRHxFWFBFUklFTkNFXyhESVNBQkxFRHxTVVNQRU5ERUQpfElOVkFMSURfKEVYUEVSSUVOQ0V8UEFSQU1FVEVSUyl8S0VZX05PVF9GT1VORHxNQVRVUklUWV9FWENFRURFRHxOT05FfE5PVF8oRk9VTkR8UEVSTUlUVEVEKF9MQU5EKT8pfE5PX0VYUEVSSUVOQ0V8UVVPVEFfRVhDRUVERUR8UkVUUllfVVBEQVRFfFNUT1JBR0VfRVhDRVBUSU9OfFNUT1JFX0RJU0FCTEVEfFRIUk9UVExFRHxVTktOT1dOX0VSUk9SKXxKU09OX0FQUEVORHxTVEFUVVNfKFBIWVNJQ1N8Uk9UQVRFX1tYWVpdfFBIQU5UT018U0FOREJPWHxCTE9DS19HUkFCKF9PQkpFQ1QpP3woRElFfFJFVFVSTilfQVRfRURHRXxDQVNUX1NIQURPV1N8T0t8TUFMRk9STUVEX1BBUkFNU3xUWVBFX01JU01BVENIfEJPVU5EU19FUlJPUnxOT1RfKEZPVU5EfFNVUFBPUlRFRCl8SU5URVJOQUxfRVJST1J8V0hJVEVMSVNUX0ZBSUxFRCl8QUdFTlQoXyhCWV8oTEVHQUNZX3xVU0VSKU5BTUV8RkxZSU5HfEFUVEFDSE1FTlRTfFNDUklQVEVEfE1PVVNFTE9PS3xTSVRUSU5HfE9OX09CSkVDVHxBV0FZfFdBTEtJTkd8SU5fQUlSfFRZUElOR3xDUk9VQ0hJTkd8QlVTWXxBTFdBWVNfUlVOfEFVVE9QSUxPVHxMSVNUXyhQQVJDRUwoX09XTkVSKT98UkVHSU9OKSkpP3xDQU1FUkFfKFBJVENIfERJU1RBTkNFfEJFSElORE5FU1NfKEFOR0xFfExBRyl8KEZPQ1VTfFBPU0lUSU9OKShfKFRIUkVTSE9MRHxMT0NLRUR8TEFHKSk/fEZPQ1VTX09GRlNFVHxBQ1RJVkUpfEFOSU1fT058TE9PUHxSRVZFUlNFfFBJTkdfUE9OR3xTTU9PVEh8Uk9UQVRFfFNDQUxFfEFMTF9TSURFU3xMSU5LXyhST09UfFNFVHxBTExfKE9USEVSU3xDSElMRFJFTil8VEhJUyl8QUNUSVZFfFBBU1MoSVZFfF8oQUxXQVlTfElGX05PVF9IQU5ETEVEfE5FVkVSKSl8U0NSSVBURUR8Q09OVFJPTF8oRldEfEJBQ0t8KFJPVF8pPyhMRUZUfFJJR0hUKXxVUHxET1dOfChNTF8pP0xCVVRUT04pfFBFUk1JU1NJT05fKFJFVFVSTl9PQkpFQ1RTfERFQklUfE9WRVJSSURFX0FOSU1BVElPTlN8U0lMRU5UX0VTVEFURV9NQU5BR0VNRU5UfFRBS0VfQ09OVFJPTFN8VFJJR0dFUl9BTklNQVRJT058QVRUQUNIfENIQU5HRV9MSU5LU3woQ09OVFJPTHxUUkFDSylfQ0FNRVJBfFRFTEVQT1JUKXxJTlZFTlRPUllfKFRFWFRVUkV8U09VTkR8T0JKRUNUfFNDUklQVHxMQU5ETUFSS3xDTE9USElOR3xOT1RFQ0FSRHxCT0RZUEFSVHxBTklNQVRJT058R0VTVFVSRXxBTEx8Tk9ORSl8Q0hBTkdFRF8oSU5WRU5UT1JZfENPTE9SfFNIQVBFfFNDQUxFfFRFWFRVUkV8TElOS3xBTExPV0VEX0RST1B8T1dORVJ8UkVHSU9OKF9TVEFSVCk/fFRFTEVQT1JUfE1FRElBKXxPQkpFQ1RfKENMSUNLX0FDVElPTnxIT1ZFUl9IRUlHSFR8TEFTVF9PV05FUl9JRHwoUEhZU0lDU3xTRVJWRVJ8U1RSRUFNSU5HKV9DT1NUfFVOS05PV05fREVUQUlMfENIQVJBQ1RFUl9USU1FfFBIQU5UT018UEhZU0lDU3xURU1QXyhBVFRBQ0hFRHxPTl9SRVopfE5BTUV8REVTQ3xQT1N8UFJJTV8oQ09VTlR8RVFVSVZBTEVOQ0UpfFJFVFVSTl8oUEFSQ0VMKF9PV05FUik/fFJFR0lPTil8UkVaWkVSX0tFWXxST08/VHxWRUxPQ0lUWXxPTUVHQXxPV05FUnxHUk9VUChfVEFHKT98Q1JFQVRPUnxBVFRBQ0hFRF8oUE9JTlR8U0xPVFNfQVZBSUxBQkxFKXxSRU5ERVJfV0VJR0hUfChCT0RZX1NIQVBFfFBBVEhGSU5ESU5HKV9UWVBFfChSVU5OSU5HfFRPVEFMKV9TQ1JJUFRfQ09VTlR8VE9UQUxfSU5WRU5UT1JZX0NPVU5UfFNDUklQVF8oTUVNT1JZfFRJTUUpKXxUWVBFXyhJTlRFR0VSfEZMT0FUfFNUUklOR3xLRVl8VkVDVE9SfFJPVEFUSU9OfElOVkFMSUQpfChERUJVR3xQVUJMSUMpX0NIQU5ORUx8QVRUQUNIXyhBVkFUQVJfQ0VOVEVSfENIRVNUfEhFQUR8QkFDS3xQRUxWSVN8TU9VVEh8Q0hJTnxORUNLfE5PU0V8QkVMTFl8W0xSXShTSE9VTERFUnxIQU5EfEZPT1R8RUFSfEVZRXxbVUxdKEFSTXxMRUcpfEhJUCl8KExFRlR8UklHSFQpX1BFQ3xIVURfKENFTlRFUl9bMTJdfFRPUF8oUklHSFR8Q0VOVEVSfExFRlQpfEJPVFRPTShfKFJJR0hUfExFRlQpKT8pfFtMUl1IQU5EX1JJTkcxfFRBSUxfKEJBU0V8VElQKXxbTFJdV0lOR3xGQUNFXyhKQVd8W0xSXUVBUnxbTFJdRVlFfFRPVU5HRSl8R1JPSU58SElORF9bTFJdRk9PVCl8TEFORF8oTEVWRUx8UkFJU0V8TE9XRVJ8U01PT1RIfE5PSVNFfFJFVkVSVCl8REFUQV8oT05MSU5FfE5BTUV8Qk9STnxTSU1fKFBPU3xTVEFUVVN8UkFUSU5HKXxQQVlJTkZPKXxQQVlNRU5UX0lORk9fKE9OX0ZJTEV8VVNFRCl8UkVNT1RFX0RBVEFfKENIQU5ORUx8UkVRVUVTVHxSRVBMWSl8UFNZU18oUEFSVF8oQkZfKFpFUk98T05FKF9NSU5VU18oREVTVF9DT0xPUnxTT1VSQ0VfKEFMUEhBfENPTE9SKSkpP3xERVNUX0NPTE9SfFNPVVJDRV8oQUxQSEF8Q09MT1IpKXxCTEVORF9GVU5DXyhERVNUfFNPVVJDRSl8RkxBR1N8KFNUQVJUfEVORClfKENPTE9SfEFMUEhBfFNDQUxFfEdMT1cpfE1BWF9BR0V8KFJJQkJPTnxXSU5EfElOVEVSUF8oQ09MT1J8U0NBTEUpfEJPVU5DRXxGT0xMT1dfKFNSQ3xWRUxPQ0lUWSl8VEFSR0VUXyhQT1N8TElORUFSKXxFTUlTU0lWRSlfTUFTSyl8U1JDXyhNQVhfQUdFfFBBVFRFUk58QU5HTEVfKEJFR0lOfEVORCl8QlVSU1RfKFJBVEV8UEFSVF9DT1VOVHxSQURJVVN8U1BFRURfKE1JTnxNQVgpKXxBQ0NFTHxURVhUVVJFfFRBUkdFVF9LRVl8T01FR0F8UEFUVEVSTl8oRFJPUHxFWFBMT0RFfEFOR0xFKF9DT05FKF9FTVBUWSk/KT8pKSl8VkVISUNMRV8oUkVGRVJFTkNFX0ZSQU1FfFRZUEVfKE5PTkV8U0xFRHxDQVJ8Qk9BVHxBSVJQTEFORXxCQUxMT09OKXwoTElORUFSfEFOR1VMQVIpXyhGUklDVElPTl9USU1FU0NBTEV8TU9UT1JfRElSRUNUSU9OKXxMSU5FQVJfTU9UT1JfT0ZGU0VUfEhPVkVSXyhIRUlHSFR8RUZGSUNJRU5DWXxUSU1FU0NBTEUpfEJVT1lBTkNZfChMSU5FQVJ8QU5HVUxBUilfKERFRkxFQ1RJT05fKEVGRklDSUVOQ1l8VElNRVNDQUxFKXxNT1RPUl8oREVDQVlfKT9USU1FU0NBTEUpfFZFUlRJQ0FMX0FUVFJBQ1RJT05fKEVGRklDSUVOQ1l8VElNRVNDQUxFKXxCQU5LSU5HXyhFRkZJQ0lFTkNZfE1JWHxUSU1FU0NBTEUpfEZMQUdfKE5PX0RFRkxFQ1RJT05fVVB8TElNSVRfKFJPTExfT05MWXxNT1RPUl9VUCl8SE9WRVJfKChXQVRFUnxURVJSQUlOfFVQKV9PTkxZfEdMT0JBTF9IRUlHSFQpfE1PVVNFTE9PS18oU1RFRVJ8QkFOSyl8Q0FNRVJBX0RFQ09VUExFRCkpfFBSSU1fKEFMTE9XX1VOU0lUfEFMUEhBX01PREUoXyhCTEVORHxFTUlTU0lWRXxNQVNLfE5PTkUpKT98Tk9STUFMfFNQRUNVTEFSfFRZUEUoXyhCT1h8Q1lMSU5ERVJ8UFJJU018U1BIRVJFfFRPUlVTfFRVQkV8UklOR3xTQ1VMUFQpKT98SE9MRV8oREVGQVVMVHxDSVJDTEV8U1FVQVJFfFRSSUFOR0xFKXxNQVRFUklBTChfKFNUT05FfE1FVEFMfEdMQVNTfFdPT0R8RkxFU0h8UExBU1RJQ3xSVUJCRVIpKT98U0hJTllfKE5PTkV8TE9XfE1FRElVTXxISUdIKXxCVU1QXyhOT05FfEJSSUdIVHxEQVJLfFdPT0R8QkFSS3xCUklDS1N8Q0hFQ0tFUnxDT05DUkVURXxUSUxFfFNUT05FfERJU0tTfEdSQVZFTHxCTE9CU3xTSURJTkd8TEFSR0VUSUxFfFNUVUNDT3xTVUNUSU9OfFdFQVZFKXxURVhHRU5fKERFRkFVTFR8UExBTkFSKXxTQ1JJUFRFRF9TSVRfT05MWXxTQ1VMUFRfKFRZUEVfKFNQSEVSRXxUT1JVU3xQTEFORXxDWUxJTkRFUnxNQVNLKXxGTEFHXyhNSVJST1J8SU5WRVJUKSl8UEhZU0lDUyhfKFNIQVBFXyhDT05WRVh8Tk9ORXxQUklNfFRZUEUpKSk/fChQT1N8Uk9UKV9MT0NBTHxTTElDRXxURVhUfEZMRVhJQkxFfFBPSU5UX0xJR0hUfFRFTVBfT05fUkVafFBIQU5UT018UE9TSVRJT058U0lUX1RBUkdFVHxTSVpFfFJPVEFUSU9OfFRFWFRVUkV8TkFNRXxPTUVHQXxERVNDfExJTktfVEFSR0VUfENPTE9SfEJVTVBfU0hJTll8RlVMTEJSSUdIVHxURVhHRU58R0xPV3xNRURJQV8oQUxUX0lNQUdFX0VOQUJMRXxDT05UUk9MU3woQ1VSUkVOVHxIT01FKV9VUkx8QVVUT18oTE9PUHxQTEFZfFNDQUxFfFpPT00pfEZJUlNUX0NMSUNLX0lOVEVSQUNUfChXSURUSHxIRUlHSFQpX1BJWEVMU3xXSElURUxJU1QoX0VOQUJMRSk/fFBFUk1TXyhJTlRFUkFDVHxDT05UUk9MKXxQQVJBTV9NQVh8Q09OVFJPTFNfKFNUQU5EQVJEfE1JTkkpfFBFUk1fKE5PTkV8T1dORVJ8R1JPVVB8QU5ZT05FKXxNQVhfKFVSTF9MRU5HVEh8V0hJVEVMSVNUXyhTSVpFfENPVU5UKXwoV0lEVEh8SEVJR0hUKV9QSVhFTFMpKSl8TUFTS18oQkFTRXxPV05FUnxHUk9VUHxFVkVSWU9ORXxORVhUKXxQRVJNXyhUUkFOU0ZFUnxNT0RJRll8Q09QWXxNT1ZFfEFMTCl8UEFSQ0VMXyhNRURJQV9DT01NQU5EXyhTVE9QfFBBVVNFfFBMQVl8TE9PUHxURVhUVVJFfFVSTHxUSU1FfEFHRU5UfFVOTE9BRHxBVVRPX0FMSUdOfFRZUEV8U0laRXxERVNDfExPT1BfU0VUKXxGTEFHXyhBTExPV18oRkxZfChHUk9VUF8pP1NDUklQVFN8TEFORE1BUkt8VEVSUkFGT1JNfERBTUFHRXxDUkVBVEVfKEdST1VQXyk/T0JKRUNUUyl8VVNFXyhBQ0NFU1NfKEdST1VQfExJU1QpfEJBTl9MSVNUfExBTkRfUEFTU19MSVNUKXxMT0NBTF9TT1VORF9PTkxZfFJFU1RSSUNUX1BVU0hPQkpFQ1R8QUxMT1dfKEdST1VQfEFMTClfT0JKRUNUX0VOVFJZKXxDT1VOVF8oVE9UQUx8T1dORVJ8R1JPVVB8T1RIRVJ8U0VMRUNURUR8VEVNUCl8REVUQUlMU18oTkFNRXxERVNDfE9XTkVSfEdST1VQfEFSRUF8SUR8U0VFX0FWQVRBUlMpKXxMSVNUX1NUQVRfKE1BWHxNSU58TUVBTnxNRURJQU58U1REX0RFVnxTVU0oX1NRVUFSRVMpP3xOVU1fQ09VTlR8R0VPTUVUUklDX01FQU58UkFOR0UpfFBBWV8oSElERXxERUZBVUxUKXxSRUdJT05fRkxBR18oQUxMT1dfREFNQUdFfEZJWEVEX1NVTnxCTE9DS19URVJSQUZPUk18U0FOREJPWHxESVNBQkxFXyhDT0xMSVNJT05TfFBIWVNJQ1MpfEJMT0NLX0ZMWXxBTExPV19ESVJFQ1RfVEVMRVBPUlR8UkVTVFJJQ1RfUFVTSE9CSkVDVCl8SFRUUF8oTUVUSE9EfE1JTUVUWVBFfEJPRFlfKE1BWExFTkdUSHxUUlVOQ0FURUQpfENVU1RPTV9IRUFERVJ8UFJBR01BX05PX0NBQ0hFfFZFUkJPU0VfVEhST1RUTEV8VkVSSUZZX0NFUlQpfFNJVF8oSU5WQUxJRF8oQUdFTlR8TElOS19PQkpFQ1QpfE5PKFRfRVhQRVJJRU5DRXxfKEFDQ0VTU3xFWFBFUklFTkNFX1BFUk1JU1NJT058U0lUX1RBUkdFVCkpKXxTVFJJTkdfKFRSSU0oXyhIRUFEfFRBSUwpKT8pfENMSUNLX0FDVElPTl8oTk9ORXxUT1VDSHxTSVR8QlVZfFBBWXxPUEVOKF9NRURJQSk/fFBMQVl8Wk9PTSl8VE9VQ0hfSU5WQUxJRF9GQUNFfFBST0ZJTEVfKE5PTkV8U0NSSVBUX01FTU9SWSl8UkNfKERBVEFfRkxBR1N8REVURUNUX1BIQU5UT018R0VUXyhMSU5LX05VTXxOT1JNQUx8Uk9PVF9LRVkpfE1BWF9ISVRTfFJFSkVDVF8oVFlQRVN8QUdFTlRTfChOT04pP1BIWVNJQ0FMfExBTkQpKXxSQ0VSUl8oQ0FTVF9USU1FX0VYQ0VFREVEfFNJTV9QRVJGX0xPV3xVTktOT1dOKXxFU1RBVEVfQUNDRVNTXyhBTExPV0VEXyhBR0VOVHxHUk9VUClfKEFERHxSRU1PVkUpfEJBTk5FRF9BR0VOVF8oQUREfFJFTU9WRSkpfERFTlNJVFl8RlJJQ1RJT058UkVTVElUVVRJT058R1JBVklUWV9NVUxUSVBMSUVSfEtGTV8oQ09NTUFORHxDTURfKFBMQVl8U1RPUHxQQVVTRSl8TU9ERXxGT1JXQVJEfExPT1B8UElOR19QT05HfFJFVkVSU0V8REFUQXxST1RBVElPTnxUUkFOU0xBVElPTil8RVJSXyhHRU5FUklDfFBBUkNFTF9QRVJNSVNTSU9OU3xNQUxGT1JNRURfUEFSQU1TfFJVTlRJTUVfUEVSTUlTU0lPTlN8VEhST1RUTEVEKXxDSEFSQUNURVJfKENNRF8oKFNNT09USF8pP1NUT1B8SlVNUCl8REVTSVJFRF8oVFVSTl8pP1NQRUVEfFJBRElVU3xTVEFZX1dJVEhJTl9QQVJDRUx8TEVOR1RIfE9SSUVOVEFUSU9OfEFDQ09VTlRfRk9SX1NLSVBQRURfRlJBTUVTfEFWT0lEQU5DRV9NT0RFfFRZUEUoXyhbQUJDRF18Tk9ORSkpP3xNQVhfKERFQ0VMfFRVUk5fUkFESVVTfChBQ0NFTHxTUEVFRCkpKXxQVVJTVUlUXyhPRkZTRVR8RlVaWl9GQUNUT1J8R09BTF9UT0xFUkFOQ0V8SU5URVJDRVBUKXxSRVFVSVJFX0xJTkVfT0ZfU0lHSFR8Rk9SQ0VfRElSRUNUX1BBVEh8VkVSVElDQUx8SE9SSVpPTlRBTHxBVk9JRF8oQ0hBUkFDVEVSU3xEWU5BTUlDX09CU1RBQ0xFU3xOT05FKXxQVV8oRVZBREVfKEhJRERFTnxTUE9UVEVEKXxGQUlMVVJFXyhEWU5BTUlDX1BBVEhGSU5ESU5HX0RJU0FCTEVEfElOVkFMSURfKEdPQUx8U1RBUlQpfE5PXyhOQVZNRVNIfFZBTElEX0RFU1RJTkFUSU9OKXxPVEhFUnxUQVJHRVRfR09ORXwoUEFSQ0VMXyk/VU5SRUFDSEFCTEUpfChHT0FMfFNMT1dET1dOX0RJU1RBTkNFKV9SRUFDSEVEKXxUUkFWRVJTQUxfVFlQRShfKEZBU1R8Tk9ORXxTTE9XKSk/fENPTlRFTlRfVFlQRV8oQVRPTXxGT1JNfEhUTUx8SlNPTnxMTFNEfFJTU3xURVhUfFhIVE1MfFhNTCl8R0NOUF8oUkFESVVTfFNUQVRJQyl8KFBBVFJPTHxXQU5ERVIpX1BBVVNFX0FUX1dBWVBPSU5UU3xPUFRfKEFWQVRBUnxDSEFSQUNURVJ8RVhDTFVTSU9OX1ZPTFVNRXxMRUdBQ1lfTElOS1NFVHxNQVRFUklBTF9WT0xVTUV8T1RIRVJ8U1RBVElDX09CU1RBQ0xFfFdBTEtBQkxFKXxTSU1fU1RBVF9QQ1RfQ0hBUlNfU1RFUFBFRClcXFxcYicgfSxcbiAgICAgIHsgYmVnaW46ICdcXFxcYihGQUxTRXxUUlVFKVxcXFxiJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxiKFpFUk9fUk9UQVRJT04pXFxcXGInIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXGIoRU9GfEpTT05fKEFSUkFZfERFTEVURXxGQUxTRXxJTlZBTElEfE5VTEx8TlVNQkVSfE9CSkVDVHxTVFJJTkd8VFJVRSl8TlVMTF9LRVl8VEVYVFVSRV8oQkxBTkt8REVGQVVMVHxNRURJQXxQTFlXT09EfFRSQU5TUEFSRU5UKXxVUkxfUkVRVUVTVF8oR1JBTlRFRHxERU5JRUQpKVxcXFxiJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxiKFpFUk9fVkVDVE9SfFRPVUNIX0lOVkFMSURfKFRFWENPT1JEfFZFQ1RPUikpXFxcXGInIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTFNMX0ZVTkNUSU9OUyA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgYmVnaW46ICdcXFxcYihsbChBZ2VudEluRXhwZXJpZW5jZXwoQ3JlYXRlfERhdGFTaXplfERlbGV0ZXxLZXlDb3VudHxLZXlzfFJlYWR8VXBkYXRlKUtleVZhbHVlfEdldEV4cGVyaWVuY2UoRGV0YWlsc3xFcnJvck1lc3NhZ2UpfFJldHVybk9iamVjdHNCeShJRHxPd25lcil8SnNvbigyTGlzdHxbR1NdZXRWYWx1ZXxWYWx1ZVR5cGUpfFNpbnxDb3N8VGFufEF0YW4yfFNxcnR8UG93fEFic3xGYWJzfEZyYW5kfEZsb29yfENlaWx8Um91bmR8VmVjKE1hZ3xOb3JtfERpc3QpfFJvdChCZXR3ZWVufDIoRXVsZXJ8RndkfExlZnR8VXApKXwoRXVsZXJ8QXhlcykyUm90fFdoaXNwZXJ8KFJlZ2lvbnxPd25lcik/U2F5fFNob3V0fExpc3RlbihDb250cm9sfFJlbW92ZSk/fFNlbnNvcihSZXBlYXR8UmVtb3ZlKT98RGV0ZWN0ZWQoTmFtZXxLZXl8T3duZXJ8VHlwZXxQb3N8VmVsfEdyYWJ8Um90fEdyb3VwfExpbmtOdW1iZXIpfERpZXxHcm91bmR8V2luZHwoW0dTXWV0KShBbmltYXRpb25PdmVycmlkZXxNZW1vcnlMaW1pdHxQcmltTWVkaWFQYXJhbXN8UGFyY2VsTXVzaWNVUkx8T2JqZWN0KERlc2N8TmFtZSl8UGh5c2ljc01hdGVyaWFsfFN0YXR1c3xTY2FsZXxDb2xvcnxBbHBoYXxUZXh0dXJlfFBvc3xSb3R8Rm9yY2V8VG9ycXVlKXxSZXNldEFuaW1hdGlvbk92ZXJyaWRlfChTY2FsZXxPZmZzZXR8Um90YXRlKVRleHR1cmV8KFJvdCk/VGFyZ2V0KFJlbW92ZSk/fChTdG9wKT9Nb3ZlVG9UYXJnZXR8QXBwbHkoUm90YXRpb25hbCk/SW1wdWxzZXxTZXQoS2V5ZnJhbWVkTW90aW9ufENvbnRlbnRUeXBlfFJlZ2lvblBvc3woQW5ndWxhcik/VmVsb2NpdHl8QnVveWFuY3l8SG92ZXJIZWlnaHR8Rm9yY2VBbmRUb3JxdWV8VGltZXJFdmVudHxTY3JpcHRTdGF0ZXxEYW1hZ2V8VGV4dHVyZUFuaW18U291bmQoUXVldWVpbmd8UmFkaXVzKXxWZWhpY2xlKFR5cGV8KEZsb2F0fFZlY3RvcnxSb3RhdGlvbilQYXJhbSl8KFRvdWNofFNpdCk/VGV4dHxDYW1lcmEoRXllfEF0KU9mZnNldHxQcmltaXRpdmVQYXJhbXN8Q2xpY2tBY3Rpb258TGluayhBbHBoYXxDb2xvcnxQcmltaXRpdmVQYXJhbXMoRmFzdCk/fFRleHR1cmUoQW5pbSk/fENhbWVyYXxNZWRpYSl8UmVtb3RlU2NyaXB0QWNjZXNzUGlufFBheVByaWNlfExvY2FsUm90KXxTY2FsZUJ5RmFjdG9yfEdldCgoTWF4fE1pbilTY2FsZUZhY3RvcnxDbG9zZXN0TmF2UG9pbnR8U3RhdGljUGF0aHxTaW1TdGF0c3xFbnZ8UHJpbWl0aXZlUGFyYW1zfExpbmsoUHJpbWl0aXZlUGFyYW1zfE51bWJlcihPZlNpZGVzKT98S2V5fE5hbWV8TWVkaWEpfEhUVFBIZWFkZXJ8RnJlZVVSTHN8T2JqZWN0KERldGFpbHN8UGVybU1hc2t8UHJpbUNvdW50KXxQYXJjZWwoTWF4UHJpbXN8RGV0YWlsc3xQcmltKENvdW50fE93bmVycykpfEF0dGFjaGVkKExpc3QpP3woU1BNYXh8RnJlZXxVc2VkKU1lbW9yeXxSZWdpb24oTmFtZXxUaW1lRGlsYXRpb258RlBTfENvcm5lcnxBZ2VudENvdW50KXxSb290KFBvc2l0aW9ufFJvdGF0aW9uKXxVbml4VGltZXwoUGFyY2VsfFJlZ2lvbilGbGFnc3woV2FsbHxHTVQpY2xvY2t8U2ltdWxhdG9ySG9zdG5hbWV8Qm91bmRpbmdCb3h8R2VvbWV0cmljQ2VudGVyfENyZWF0b3J8TnVtYmVyT2YoUHJpbXN8Tm90ZWNhcmRMaW5lc3xTaWRlcyl8QW5pbWF0aW9uKExpc3QpP3woQ2FtZXJhfExvY2FsKShQb3N8Um90KXxWZWx8QWNjZWx8T21lZ2F8VGltZShzdGFtcHxPZkRheSl8KE9iamVjdHxDZW50ZXJPZik/TWFzc3xNYXNzTUtTfEVuZXJneXxPd25lcnwoT3duZXIpP0tleXxTdW5EaXJlY3Rpb258VGV4dHVyZShPZmZzZXR8U2NhbGV8Um90KXxJbnZlbnRvcnkoTnVtYmVyfE5hbWV8S2V5fFR5cGV8Q3JlYXRvcnxQZXJtTWFzayl8UGVybWlzc2lvbnMoS2V5KT98U3RhcnRQYXJhbWV0ZXJ8TGlzdChMZW5ndGh8RW50cnlUeXBlKXxEYXRlfEFnZW50KFNpemV8SW5mb3xMYW5ndWFnZXxMaXN0KXxMYW5kT3duZXJBdHxOb3RlY2FyZExpbmV8U2NyaXB0KE5hbWV8U3RhdGUpKXwoR2V0fFJlc2V0fEdldEFuZFJlc2V0KVRpbWV8UGxheVNvdW5kKFNsYXZlKT98TG9vcFNvdW5kKE1hc3RlcnxTbGF2ZSk/fChUcmlnZ2VyfFN0b3B8UHJlbG9hZClTb3VuZHwoKEdldHxEZWxldGUpU3VifEluc2VydClTdHJpbmd8VG8oVXBwZXJ8TG93ZXIpfEdpdmUoSW52ZW50b3J5TGlzdHxNb25leSl8UmV6T2JqZWN0fChTdG9wKT9Mb29rQXR8U2xlZXB8Q29sbGlzaW9uRmlsdGVyfChUYWtlfFJlbGVhc2UpQ29udHJvbHN8RGV0YWNoRnJvbUF2YXRhcnxBdHRhY2hUb0F2YXRhcihUZW1wKT98SW5zdGFudE1lc3NhZ2V8KEdldE5leHQpP0VtYWlsfFN0b3BIb3ZlcnxNaW5FdmVudERlbGF5fFJvdExvb2tBdHxTdHJpbmcoTGVuZ3RofFRyaW0pfChTdGFydHxTdG9wKUFuaW1hdGlvbnxUYXJnZXRPbWVnYXxSZXF1ZXN0KEV4cGVyaWVuY2UpP1Blcm1pc3Npb25zfChDcmVhdGV8QnJlYWspTGlua3xCcmVha0FsbExpbmtzfChHaXZlfFJlbW92ZSlJbnZlbnRvcnl8V2F0ZXJ8UGFzc1RvdWNoZXN8UmVxdWVzdChBZ2VudHxJbnZlbnRvcnkpRGF0YXxUZWxlcG9ydEFnZW50KEhvbWV8R2xvYmFsQ29vcmRzKT98TW9kaWZ5TGFuZHxDb2xsaXNpb25Tb3VuZHxSZXNldFNjcmlwdHxNZXNzYWdlTGlua2VkfFB1c2hPYmplY3R8UGFzc0NvbGxpc2lvbnN8QXhpc0FuZ2xlMlJvdHxSb3QyKEF4aXN8QW5nbGUpfEEoY29zfHNpbil8QW5nbGVCZXR3ZWVufEFsbG93SW52ZW50b3J5RHJvcHxTdWJTdHJpbmdJbmRleHxMaXN0MihDU1Z8SW50ZWdlcnxKc29ufEZsb2F0fFN0cmluZ3xLZXl8VmVjdG9yfFJvdHxMaXN0KFN0cmlkZWQpPyl8RGVsZXRlU3ViTGlzdHxMaXN0KFN0YXRpc3RpY3N8U29ydHxSYW5kb21pemV8KEluc2VydHxGaW5kfFJlcGxhY2UpTGlzdCl8RWRnZU9mV29ybGR8QWRqdXN0U291bmRWb2x1bWV8S2V5Mk5hbWV8VHJpZ2dlclNvdW5kTGltaXRlZHxFamVjdEZyb21MYW5kfChDU1Z8UGFyc2VTdHJpbmcpMkxpc3R8T3Zlck15TGFuZHxTYW1lR3JvdXB8VW5TaXR8R3JvdW5kKFNsb3BlfE5vcm1hbHxDb250b3VyKXxHcm91bmRSZXBlbHwoU2V0fFJlbW92ZSlWZWhpY2xlRmxhZ3N8U2l0T25MaW5rfChBdmF0YXJPbik/KExpbmspP1NpdFRhcmdldHxTY3JpcHQoRGFuZ2VyfFByb2ZpbGVyKXxEaWFsb2d8Vm9sdW1lRGV0ZWN0fFJlc2V0T3RoZXJTY3JpcHR8UmVtb3RlTG9hZFNjcmlwdFBpbnwoT3BlbnxDbG9zZSlSZW1vdGVEYXRhQ2hhbm5lbHxTZW5kUmVtb3RlRGF0YXxSZW1vdGVEYXRhUmVwbHl8KEludGVnZXJ8U3RyaW5nKVRvQmFzZTY0fFhvckJhc2U2NHxMb2coMTApP3xCYXNlNjRUbyhTdHJpbmd8SW50ZWdlcil8UGFyc2VTdHJpbmdLZWVwTnVsbHN8UmV6QXRSb290fFJlcXVlc3RTaW11bGF0b3JEYXRhfEZvcmNlTW91c2Vsb29rfChMb2FkfFJlbGVhc2V8KEV8VW5lKXNjYXBlKVVSTHxQYXJjZWxNZWRpYShDb21tYW5kTGlzdHxRdWVyeSl8TW9kUG93fE1hcERlc3RpbmF0aW9ufChSZW1vdmVGcm9tfEFkZFRvfFJlc2V0KUxhbmQoUGFzc3xCYW4pTGlzdHwoU2V0fENsZWFyKUNhbWVyYVBhcmFtc3xIVFRQKFJlcXVlc3R8UmVzcG9uc2UpfFRleHRCb3h8RGV0ZWN0ZWRUb3VjaChVVnxGYWNlfFBvc3woTnxCaW4pb3JtYWx8U1QpfChNRDV8U0hBMXxEdW1wTGlzdDIpU3RyaW5nfFJlcXVlc3QoU2VjdXJlKT9VUkx8Q2xlYXIoUHJpbXxMaW5rKU1lZGlhfChMaW5rKT9QYXJ0aWNsZVN5c3RlbXwoR2V0fFJlcXVlc3QpKFVzZXJuYW1lfERpc3BsYXlOYW1lKXxSZWdpb25TYXlUb3xDYXN0UmF5fEdlbmVyYXRlS2V5fFRyYW5zZmVyTGluZGVuRG9sbGFyc3xNYW5hZ2VFc3RhdGVBY2Nlc3N8KENyZWF0ZXxEZWxldGUpQ2hhcmFjdGVyfEV4ZWNDaGFyYWN0ZXJDbWR8RXZhZGV8RmxlZUZyb218TmF2aWdhdGVUb3xQYXRyb2xQb2ludHN8UHVyc3VlfFVwZGF0ZUNoYXJhY3RlcnxXYW5kZXJXaXRoaW4pKVxcXFxiJ1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0xTTCAoTGluZGVuIFNjcmlwdGluZyBMYW5ndWFnZSknLFxuICAgIGlsbGVnYWw6ICc6JyxcbiAgICBjb250YWluczogW1xuICAgICAgTFNMX1NUUklOR1MsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnJCcpLFxuICAgICAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqJywgJ1xcXFwqLycpXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIExTTF9OVU1CRVJTLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWN0aW9uJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoc3RhdGV8ZGVmYXVsdClcXFxcYicgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoc3RhdGVfKGVudHJ5fGV4aXQpfHRvdWNoKF8oc3RhcnR8ZW5kKSk/fChsYW5kXyk/Y29sbGlzaW9uKF8oc3RhcnR8ZW5kKSk/fHRpbWVyfGxpc3Rlbnwobm9fKT9zZW5zb3J8Y29udHJvbHwobm90Xyk/YXRfKHJvdF8pP3RhcmdldHxtb25leXxlbWFpbHxleHBlcmllbmNlX3Blcm1pc3Npb25zKF9kZW5pZWQpP3xydW5fdGltZV9wZXJtaXNzaW9uc3xjaGFuZ2VkfGF0dGFjaHxkYXRhc2VydmVyfG1vdmluZ18oc3RhcnR8ZW5kKXxsaW5rX21lc3NhZ2V8KG9ufG9iamVjdClfcmV6fHJlbW90ZV9kYXRhfGh0dHBfcmUoc3BvbnNlfHF1ZXN0KXxwYXRoX3VwZGF0ZXx0cmFuc2FjdGlvbl9yZXN1bHQpXFxcXGInIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIExTTF9GVU5DVElPTlMsXG4gICAgICBMU0xfQ09OU1RBTlRTLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihpbnRlZ2VyfGZsb2F0fHN0cmluZ3xrZXl8dmVjdG9yfHF1YXRlcm5pb258cm90YXRpb258bGlzdClcXFxcYidcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbHNsO1xuIiwgIi8qXG5MYW5ndWFnZTogTHVhXG5EZXNjcmlwdGlvbjogTHVhIGlzIGEgcG93ZXJmdWwsIGVmZmljaWVudCwgbGlnaHR3ZWlnaHQsIGVtYmVkZGFibGUgc2NyaXB0aW5nIGxhbmd1YWdlLlxuQXV0aG9yOiBBbmRyZXcgRmVkb3JvdiA8ZG1tZHJzQG1haWwucnU+XG5DYXRlZ29yeTogY29tbW9uLCBnYW1pbmcsIHNjcmlwdGluZ1xuV2Vic2l0ZTogaHR0cHM6Ly93d3cubHVhLm9yZ1xuKi9cblxuZnVuY3Rpb24gbHVhKGhsanMpIHtcbiAgY29uc3QgT1BFTklOR19MT05HX0JSQUNLRVQgPSAnXFxcXFs9KlxcXFxbJztcbiAgY29uc3QgQ0xPU0lOR19MT05HX0JSQUNLRVQgPSAnXFxcXF09KlxcXFxdJztcbiAgY29uc3QgTE9OR19CUkFDS0VUUyA9IHtcbiAgICBiZWdpbjogT1BFTklOR19MT05HX0JSQUNLRVQsXG4gICAgZW5kOiBDTE9TSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICBjb250YWluczogWyAnc2VsZicgXVxuICB9O1xuICBjb25zdCBDT01NRU5UUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoJy0tKD8hJyArIE9QRU5JTkdfTE9OR19CUkFDS0VUICsgJyknLCAnJCcpLFxuICAgIGhsanMuQ09NTUVOVChcbiAgICAgICctLScgKyBPUEVOSU5HX0xPTkdfQlJBQ0tFVCxcbiAgICAgIENMT1NJTkdfTE9OR19CUkFDS0VULFxuICAgICAge1xuICAgICAgICBjb250YWluczogWyBMT05HX0JSQUNLRVRTIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH1cbiAgICApXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0x1YScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICBsaXRlcmFsOiBcInRydWUgZmFsc2UgbmlsXCIsXG4gICAgICBrZXl3b3JkOiBcImFuZCBicmVhayBkbyBlbHNlIGVsc2VpZiBlbmQgZm9yIGdvdG8gaWYgaW4gbG9jYWwgbm90IG9yIHJlcGVhdCByZXR1cm4gdGhlbiB1bnRpbCB3aGlsZVwiLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgIC8vIE1ldGF0YWdzIGFuZCBnbG9iYWxzOlxuICAgICAgICAnX0cgX0VOViBfVkVSU0lPTiBfX2luZGV4IF9fbmV3aW5kZXggX19tb2RlIF9fY2FsbCBfX21ldGF0YWJsZSBfX3Rvc3RyaW5nIF9fbGVuICdcbiAgICAgICAgKyAnX19nYyBfX2FkZCBfX3N1YiBfX211bCBfX2RpdiBfX21vZCBfX3BvdyBfX2NvbmNhdCBfX3VubSBfX2VxIF9fbHQgX19sZSBhc3NlcnQgJ1xuICAgICAgICAvLyBTdGFuZGFyZCBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzOlxuICAgICAgICArICdjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgbG9hZGZpbGUgbG9hZHN0cmluZyAnXG4gICAgICAgICsgJ21vZHVsZSBuZXh0IHBhaXJzIHBjYWxsIHByaW50IHJhd2VxdWFsIHJhd2dldCByYXdzZXQgcmVxdWlyZSBzZWxlY3Qgc2V0ZmVudiAnXG4gICAgICAgICsgJ3NldG1ldGF0YWJsZSB0b251bWJlciB0b3N0cmluZyB0eXBlIHVucGFjayB4cGNhbGwgYXJnIHNlbGYgJ1xuICAgICAgICAvLyBMaWJyYXJ5IG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgKG9uZSBsaW5lIHBlciBsaWJyYXJ5KTpcbiAgICAgICAgKyAnY29yb3V0aW5lIHJlc3VtZSB5aWVsZCBzdGF0dXMgd3JhcCBjcmVhdGUgcnVubmluZyBkZWJ1ZyBnZXR1cHZhbHVlICdcbiAgICAgICAgKyAnZGVidWcgc2V0aG9vayBnZXRtZXRhdGFibGUgZ2V0aG9vayBzZXRtZXRhdGFibGUgc2V0bG9jYWwgdHJhY2ViYWNrIHNldGZlbnYgZ2V0aW5mbyBzZXR1cHZhbHVlIGdldGxvY2FsIGdldHJlZ2lzdHJ5IGdldGZlbnYgJ1xuICAgICAgICArICdpbyBsaW5lcyB3cml0ZSBjbG9zZSBmbHVzaCBvcGVuIG91dHB1dCB0eXBlIHJlYWQgc3RkZXJyIHN0ZGluIGlucHV0IHN0ZG91dCBwb3BlbiB0bXBmaWxlICdcbiAgICAgICAgKyAnbWF0aCBsb2cgbWF4IGFjb3MgaHVnZSBsZGV4cCBwaSBjb3MgdGFuaCBwb3cgZGVnIHRhbiBjb3NoIHNpbmggcmFuZG9tIHJhbmRvbXNlZWQgZnJleHAgY2VpbCBmbG9vciByYWQgYWJzIHNxcnQgbW9kZiBhc2luIG1pbiBtb2QgZm1vZCBsb2cxMCBhdGFuMiBleHAgc2luIGF0YW4gJ1xuICAgICAgICArICdvcyBleGl0IHNldGxvY2FsZSBkYXRlIGdldGVudiBkaWZmdGltZSByZW1vdmUgdGltZSBjbG9jayB0bXBuYW1lIHJlbmFtZSBleGVjdXRlIHBhY2thZ2UgcHJlbG9hZCBsb2FkbGliIGxvYWRlZCBsb2FkZXJzIGNwYXRoIGNvbmZpZyBwYXRoIHNlZWFsbCAnXG4gICAgICAgICsgJ3N0cmluZyBzdWIgdXBwZXIgbGVuIGdmaW5kIHJlcCBmaW5kIG1hdGNoIGNoYXIgZHVtcCBnbWF0Y2ggcmV2ZXJzZSBieXRlIGZvcm1hdCBnc3ViIGxvd2VyICdcbiAgICAgICAgKyAndGFibGUgc2V0biBpbnNlcnQgZ2V0biBmb3JlYWNoaSBtYXhuIGZvcmVhY2ggY29uY2F0IHNvcnQgcmVtb3ZlJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IENPTU1FTlRTLmNvbmNhdChbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2Z1bmN0aW9uJyxcbiAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46ICcoW19hLXpBLVpdXFxcXHcqXFxcXC4pKihbX2EtekEtWl1cXFxcdyo6KT9bX2EtekEtWl1cXFxcdyonIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbnM6IENPTU1FTlRTXG4gICAgICAgICAgfVxuICAgICAgICBdLmNvbmNhdChDT01NRU5UUylcbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogT1BFTklOR19MT05HX0JSQUNLRVQsXG4gICAgICAgIGVuZDogQ0xPU0lOR19MT05HX0JSQUNLRVQsXG4gICAgICAgIGNvbnRhaW5zOiBbIExPTkdfQlJBQ0tFVFMgXSxcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9XG4gICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBsdWE7XG4iLCAiLypcbkxhbmd1YWdlOiBNYWtlZmlsZVxuQXV0aG9yOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNvbnRyaWJ1dG9yczogSm9cdTAwRUJsIFBvcnF1ZXQgPGpvZWxAcG9ycXVldC5vcmc+XG5XZWJzaXRlOiBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL21ha2UvbWFudWFsL2h0bWxfbm9kZS9JbnRyb2R1Y3Rpb24uaHRtbFxuQ2F0ZWdvcnk6IGNvbW1vbiwgYnVpbGQtc3lzdGVtXG4qL1xuXG5mdW5jdGlvbiBtYWtlZmlsZShobGpzKSB7XG4gIC8qIFZhcmlhYmxlczogc2ltcGxlIChlZyAkKHZhcikpIGFuZCBzcGVjaWFsIChlZyAkQCkgKi9cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXCRcXFxcKCcgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUgKyAnXFxcXCknLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC9cXCRbQCU8P1xcXlxcK1xcKl0vIH1cbiAgICBdXG4gIH07XG4gIC8qIFF1b3RlZCBzdHJpbmcgd2l0aCB2YXJpYWJsZXMgaW5zaWRlICovXG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSSUFCTEVcbiAgICBdXG4gIH07XG4gIC8qIEZ1bmN0aW9uOiAkKGZ1bmMgYXJnLC4uLikgKi9cbiAgY29uc3QgRlVOQyA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCRcXChbXFx3LV0rXFxzLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOlxuICAgICAgICAnc3Vic3QgcGF0c3Vic3Qgc3RyaXAgZmluZHN0cmluZyBmaWx0ZXIgZmlsdGVyLW91dCBzb3J0ICdcbiAgICAgICAgKyAnd29yZCB3b3JkbGlzdCBmaXJzdHdvcmQgbGFzdHdvcmQgZGlyIG5vdGRpciBzdWZmaXggYmFzZW5hbWUgJ1xuICAgICAgICArICdhZGRzdWZmaXggYWRkcHJlZml4IGpvaW4gd2lsZGNhcmQgcmVhbHBhdGggYWJzcGF0aCBlcnJvciB3YXJuaW5nICdcbiAgICAgICAgKyAnc2hlbGwgb3JpZ2luIGZsYXZvciBmb3JlYWNoIGlmIG9yIGFuZCBjYWxsIGV2YWwgZmlsZSB2YWx1ZScgfSxcbiAgICBjb250YWluczogWyBWQVJJQUJMRSBdXG4gIH07XG4gIC8qIFZhcmlhYmxlIGFzc2lnbm1lbnQgKi9cbiAgY29uc3QgQVNTSUdOTUVOVCA9IHsgYmVnaW46ICdeJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICdcXFxccyooPz1bOis/XT89KScgfTtcbiAgLyogTWV0YSB0YXJnZXRzICguUEhPTlkpICovXG4gIGNvbnN0IE1FVEEgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC9eXFwuUEhPTlk6LyxcbiAgICBlbmQ6IC8kLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFwuXFx3XSsvLFxuICAgICAga2V5d29yZDogJy5QSE9OWSdcbiAgICB9XG4gIH07XG4gIC8qIFRhcmdldHMgKi9cbiAgY29uc3QgVEFSR0VUID0ge1xuICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgIGJlZ2luOiAvXlteXFxzXSs6LyxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogWyBWQVJJQUJMRSBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01ha2VmaWxlJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnbWsnLFxuICAgICAgJ21haycsXG4gICAgICAnbWFrZScsXG4gICAgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3LV0rLyxcbiAgICAgIGtleXdvcmQ6ICdkZWZpbmUgZW5kZWYgdW5kZWZpbmUgaWZkZWYgaWZuZGVmIGlmZXEgaWZuZXEgZWxzZSBlbmRpZiAnXG4gICAgICArICdpbmNsdWRlIC1pbmNsdWRlIHNpbmNsdWRlIG92ZXJyaWRlIGV4cG9ydCB1bmV4cG9ydCBwcml2YXRlIHZwYXRoJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEZVTkMsXG4gICAgICBBU1NJR05NRU5ULFxuICAgICAgTUVUQSxcbiAgICAgIFRBUkdFVFxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYWtlZmlsZTtcbiIsICJjb25zdCBTWVNURU1fU1lNQk9MUyA9IFtcbiAgXCJBQVNUcmlhbmdsZVwiLFxuICBcIkFiZWxpYW5Hcm91cFwiLFxuICBcIkFib3J0XCIsXG4gIFwiQWJvcnRLZXJuZWxzXCIsXG4gIFwiQWJvcnRQcm90ZWN0XCIsXG4gIFwiQWJvcnRTY2hlZHVsZWRUYXNrXCIsXG4gIFwiQWJvdmVcIixcbiAgXCJBYnNcIixcbiAgXCJBYnNBcmdcIixcbiAgXCJBYnNBcmdQbG90XCIsXG4gIFwiQWJzb2x1dGVcIixcbiAgXCJBYnNvbHV0ZUNvcnJlbGF0aW9uXCIsXG4gIFwiQWJzb2x1dGVDb3JyZWxhdGlvbkZ1bmN0aW9uXCIsXG4gIFwiQWJzb2x1dGVDdXJyZW50VmFsdWVcIixcbiAgXCJBYnNvbHV0ZURhc2hpbmdcIixcbiAgXCJBYnNvbHV0ZUZpbGVOYW1lXCIsXG4gIFwiQWJzb2x1dGVPcHRpb25zXCIsXG4gIFwiQWJzb2x1dGVQb2ludFNpemVcIixcbiAgXCJBYnNvbHV0ZVRoaWNrbmVzc1wiLFxuICBcIkFic29sdXRlVGltZVwiLFxuICBcIkFic29sdXRlVGltaW5nXCIsXG4gIFwiQWNjZXB0YW5jZVRocmVzaG9sZFwiLFxuICBcIkFjY291bnRpbmdGb3JtXCIsXG4gIFwiQWNjdW11bGF0ZVwiLFxuICBcIkFjY3VyYWN5XCIsXG4gIFwiQWNjdXJhY3lHb2FsXCIsXG4gIFwiQWNvdXN0aWNBYnNvcmJpbmdWYWx1ZVwiLFxuICBcIkFjb3VzdGljSW1wZWRhbmNlVmFsdWVcIixcbiAgXCJBY291c3RpY05vcm1hbFZlbG9jaXR5VmFsdWVcIixcbiAgXCJBY291c3RpY1BERUNvbXBvbmVudFwiLFxuICBcIkFjb3VzdGljUHJlc3N1cmVDb25kaXRpb25cIixcbiAgXCJBY291c3RpY1JhZGlhdGlvblZhbHVlXCIsXG4gIFwiQWNvdXN0aWNTb3VuZEhhcmRWYWx1ZVwiLFxuICBcIkFjb3VzdGljU291bmRTb2Z0Q29uZGl0aW9uXCIsXG4gIFwiQWN0aW9uRGVsYXlcIixcbiAgXCJBY3Rpb25NZW51XCIsXG4gIFwiQWN0aW9uTWVudUJveFwiLFxuICBcIkFjdGlvbk1lbnVCb3hPcHRpb25zXCIsXG4gIFwiQWN0aXZhdGVcIixcbiAgXCJBY3RpdmVcIixcbiAgXCJBY3RpdmVDbGFzc2lmaWNhdGlvblwiLFxuICBcIkFjdGl2ZUNsYXNzaWZpY2F0aW9uT2JqZWN0XCIsXG4gIFwiQWN0aXZlSXRlbVwiLFxuICBcIkFjdGl2ZVByZWRpY3Rpb25cIixcbiAgXCJBY3RpdmVQcmVkaWN0aW9uT2JqZWN0XCIsXG4gIFwiQWN0aXZlU3R5bGVcIixcbiAgXCJBY3ljbGljR3JhcGhRXCIsXG4gIFwiQWRkT25IZWxwUGF0aFwiLFxuICBcIkFkZFNpZGVzXCIsXG4gIFwiQWRkVG9cIixcbiAgXCJBZGRUb1NlYXJjaEluZGV4XCIsXG4gIFwiQWRkVXNlcnNcIixcbiAgXCJBZGphY2VuY3lHcmFwaFwiLFxuICBcIkFkamFjZW5jeUxpc3RcIixcbiAgXCJBZGphY2VuY3lNYXRyaXhcIixcbiAgXCJBZGphY2VudE1lc2hDZWxsc1wiLFxuICBcIkFkanVnYXRlXCIsXG4gIFwiQWRqdXN0bWVudEJveFwiLFxuICBcIkFkanVzdG1lbnRCb3hPcHRpb25zXCIsXG4gIFwiQWRqdXN0VGltZVNlcmllc0ZvcmVjYXN0XCIsXG4gIFwiQWRtaW5pc3RyYXRpdmVEaXZpc2lvbkRhdGFcIixcbiAgXCJBZmZpbmVIYWxmU3BhY2VcIixcbiAgXCJBZmZpbmVTcGFjZVwiLFxuICBcIkFmZmluZVN0YXRlU3BhY2VNb2RlbFwiLFxuICBcIkFmZmluZVRyYW5zZm9ybVwiLFxuICBcIkFmdGVyXCIsXG4gIFwiQWdncmVnYXRlZEVudGl0eUNsYXNzXCIsXG4gIFwiQWdncmVnYXRpb25MYXllclwiLFxuICBcIkFpcmNyYWZ0RGF0YVwiLFxuICBcIkFpcnBvcnREYXRhXCIsXG4gIFwiQWlyUHJlc3N1cmVEYXRhXCIsXG4gIFwiQWlyU291bmRBdHRlbnVhdGlvblwiLFxuICBcIkFpclRlbXBlcmF0dXJlRGF0YVwiLFxuICBcIkFpcnlBaVwiLFxuICBcIkFpcnlBaVByaW1lXCIsXG4gIFwiQWlyeUFpWmVyb1wiLFxuICBcIkFpcnlCaVwiLFxuICBcIkFpcnlCaVByaW1lXCIsXG4gIFwiQWlyeUJpWmVyb1wiLFxuICBcIkFsZ2VicmFpY0ludGVnZXJRXCIsXG4gIFwiQWxnZWJyYWljTnVtYmVyXCIsXG4gIFwiQWxnZWJyYWljTnVtYmVyRGVub21pbmF0b3JcIixcbiAgXCJBbGdlYnJhaWNOdW1iZXJOb3JtXCIsXG4gIFwiQWxnZWJyYWljTnVtYmVyUG9seW5vbWlhbFwiLFxuICBcIkFsZ2VicmFpY051bWJlclRyYWNlXCIsXG4gIFwiQWxnZWJyYWljUnVsZXNcIixcbiAgXCJBbGdlYnJhaWNSdWxlc0RhdGFcIixcbiAgXCJBbGdlYnJhaWNzXCIsXG4gIFwiQWxnZWJyYWljVW5pdFFcIixcbiAgXCJBbGlnbm1lbnRcIixcbiAgXCJBbGlnbm1lbnRNYXJrZXJcIixcbiAgXCJBbGlnbm1lbnRQb2ludFwiLFxuICBcIkFsbFwiLFxuICBcIkFsbG93QWR1bHRDb250ZW50XCIsXG4gIFwiQWxsb3dDaGF0U2VydmljZXNcIixcbiAgXCJBbGxvd2VkQ2xvdWRFeHRyYVBhcmFtZXRlcnNcIixcbiAgXCJBbGxvd2VkQ2xvdWRQYXJhbWV0ZXJFeHRlbnNpb25zXCIsXG4gIFwiQWxsb3dlZERpbWVuc2lvbnNcIixcbiAgXCJBbGxvd2VkRnJlcXVlbmN5UmFuZ2VcIixcbiAgXCJBbGxvd2VkSGVhZHNcIixcbiAgXCJBbGxvd0dyb3VwQ2xvc2VcIixcbiAgXCJBbGxvd0luY29tcGxldGVcIixcbiAgXCJBbGxvd0lubGluZUNlbGxzXCIsXG4gIFwiQWxsb3dLZXJuZWxJbml0aWFsaXphdGlvblwiLFxuICBcIkFsbG93TG9vc2VHcmFtbWFyXCIsXG4gIFwiQWxsb3dSZXZlcnNlR3JvdXBDbG9zZVwiLFxuICBcIkFsbG93U2NyaXB0TGV2ZWxDaGFuZ2VcIixcbiAgXCJBbGxvd1ZlcnNpb25VcGRhdGVcIixcbiAgXCJBbGxUcnVlXCIsXG4gIFwiQWxwaGFiZXRcIixcbiAgXCJBbHBoYWJldGljT3JkZXJcIixcbiAgXCJBbHBoYWJldGljU29ydFwiLFxuICBcIkFscGhhQ2hhbm5lbFwiLFxuICBcIkFsdGVybmF0ZUltYWdlXCIsXG4gIFwiQWx0ZXJuYXRpbmdGYWN0b3JpYWxcIixcbiAgXCJBbHRlcm5hdGluZ0dyb3VwXCIsXG4gIFwiQWx0ZXJuYXRpdmVIeXBvdGhlc2lzXCIsXG4gIFwiQWx0ZXJuYXRpdmVzXCIsXG4gIFwiQWx0aXR1ZGVNZXRob2RcIixcbiAgXCJBbWJpZW50TGlnaHRcIixcbiAgXCJBbWJpZ3VpdHlGdW5jdGlvblwiLFxuICBcIkFtYmlndWl0eUxpc3RcIixcbiAgXCJBbmFseXRpY1wiLFxuICBcIkFuYXRvbXlEYXRhXCIsXG4gIFwiQW5hdG9teUZvcm1cIixcbiAgXCJBbmF0b215UGxvdDNEXCIsXG4gIFwiQW5hdG9teVNraW5TdHlsZVwiLFxuICBcIkFuYXRvbXlTdHlsaW5nXCIsXG4gIFwiQW5jaG9yZWRTZWFyY2hcIixcbiAgXCJBbmRcIixcbiAgXCJBbmRlcnNvbkRhcmxpbmdUZXN0XCIsXG4gIFwiQW5nZXJKXCIsXG4gIFwiQW5nbGVCaXNlY3RvclwiLFxuICBcIkFuZ2xlQnJhY2tldFwiLFxuICBcIkFuZ2xlUGF0aFwiLFxuICBcIkFuZ2xlUGF0aDNEXCIsXG4gIFwiQW5nbGVWZWN0b3JcIixcbiAgXCJBbmd1bGFyR2F1Z2VcIixcbiAgXCJBbmltYXRlXCIsXG4gIFwiQW5pbWF0ZWRJbWFnZVwiLFxuICBcIkFuaW1hdGlvbkN5Y2xlT2Zmc2V0XCIsXG4gIFwiQW5pbWF0aW9uQ3ljbGVSZXBldGl0aW9uc1wiLFxuICBcIkFuaW1hdGlvbkRpcmVjdGlvblwiLFxuICBcIkFuaW1hdGlvbkRpc3BsYXlUaW1lXCIsXG4gIFwiQW5pbWF0aW9uUmF0ZVwiLFxuICBcIkFuaW1hdGlvblJlcGV0aXRpb25zXCIsXG4gIFwiQW5pbWF0aW9uUnVubmluZ1wiLFxuICBcIkFuaW1hdGlvblJ1blRpbWVcIixcbiAgXCJBbmltYXRpb25UaW1lSW5kZXhcIixcbiAgXCJBbmltYXRpb25WaWRlb1wiLFxuICBcIkFuaW1hdG9yXCIsXG4gIFwiQW5pbWF0b3JCb3hcIixcbiAgXCJBbmltYXRvckJveE9wdGlvbnNcIixcbiAgXCJBbmltYXRvckVsZW1lbnRzXCIsXG4gIFwiQW5ub3RhdGVcIixcbiAgXCJBbm5vdGF0aW9uXCIsXG4gIFwiQW5ub3RhdGlvbkRlbGV0ZVwiLFxuICBcIkFubm90YXRpb25LZXlzXCIsXG4gIFwiQW5ub3RhdGlvblJ1bGVzXCIsXG4gIFwiQW5ub3RhdGlvblZhbHVlXCIsXG4gIFwiQW5udWl0eVwiLFxuICBcIkFubnVpdHlEdWVcIixcbiAgXCJBbm51bHVzXCIsXG4gIFwiQW5vbWFseURldGVjdGlvblwiLFxuICBcIkFub21hbHlEZXRlY3RvclwiLFxuICBcIkFub21hbHlEZXRlY3RvckZ1bmN0aW9uXCIsXG4gIFwiQW5vbnltb3VzXCIsXG4gIFwiQW50aWFsaWFzaW5nXCIsXG4gIFwiQW50aWhlcm1pdGlhblwiLFxuICBcIkFudGloZXJtaXRpYW5NYXRyaXhRXCIsXG4gIFwiQW50aXN5bW1ldHJpY1wiLFxuICBcIkFudGlzeW1tZXRyaWNNYXRyaXhRXCIsXG4gIFwiQW50b255bXNcIixcbiAgXCJBbnlPcmRlclwiLFxuICBcIkFueVN1YnNldFwiLFxuICBcIkFueVRydWVcIixcbiAgXCJBcGFydFwiLFxuICBcIkFwYXJ0U3F1YXJlRnJlZVwiLFxuICBcIkFQSUZ1bmN0aW9uXCIsXG4gIFwiQXBwZWFyYW5jZVwiLFxuICBcIkFwcGVhcmFuY2VFbGVtZW50c1wiLFxuICBcIkFwcGVhcmFuY2VSdWxlc1wiLFxuICBcIkFwcGVsbEYxXCIsXG4gIFwiQXBwZW5kXCIsXG4gIFwiQXBwZW5kQ2hlY2tcIixcbiAgXCJBcHBlbmRMYXllclwiLFxuICBcIkFwcGVuZFRvXCIsXG4gIFwiQXBwbGljYXRpb25cIixcbiAgXCJBcHBseVwiLFxuICBcIkFwcGx5UmVhY3Rpb25cIixcbiAgXCJBcHBseVNpZGVzXCIsXG4gIFwiQXBwbHlUb1wiLFxuICBcIkFyY0Nvc1wiLFxuICBcIkFyY0Nvc2hcIixcbiAgXCJBcmNDb3RcIixcbiAgXCJBcmNDb3RoXCIsXG4gIFwiQXJjQ3NjXCIsXG4gIFwiQXJjQ3NjaFwiLFxuICBcIkFyY0N1cnZhdHVyZVwiLFxuICBcIkFSQ0hQcm9jZXNzXCIsXG4gIFwiQXJjTGVuZ3RoXCIsXG4gIFwiQXJjU2VjXCIsXG4gIFwiQXJjU2VjaFwiLFxuICBcIkFyY1NpblwiLFxuICBcIkFyY1NpbkRpc3RyaWJ1dGlvblwiLFxuICBcIkFyY1NpbmhcIixcbiAgXCJBcmNUYW5cIixcbiAgXCJBcmNUYW5oXCIsXG4gIFwiQXJlYVwiLFxuICBcIkFyZ1wiLFxuICBcIkFyZ01heFwiLFxuICBcIkFyZ01pblwiLFxuICBcIkFyZ3VtZW50Q291bnRRXCIsXG4gIFwiQXJndW1lbnRzT3B0aW9uc1wiLFxuICBcIkFSSU1BUHJvY2Vzc1wiLFxuICBcIkFyaXRobWV0aWNHZW9tZXRyaWNNZWFuXCIsXG4gIFwiQVJNQVByb2Nlc3NcIixcbiAgXCJBcm91bmRcIixcbiAgXCJBcm91bmRSZXBsYWNlXCIsXG4gIFwiQVJQcm9jZXNzXCIsXG4gIFwiQXJyYXlcIixcbiAgXCJBcnJheUNvbXBvbmVudHNcIixcbiAgXCJBcnJheURlcHRoXCIsXG4gIFwiQXJyYXlGaWx0ZXJcIixcbiAgXCJBcnJheUZsYXR0ZW5cIixcbiAgXCJBcnJheU1lc2hcIixcbiAgXCJBcnJheVBhZFwiLFxuICBcIkFycmF5UGxvdFwiLFxuICBcIkFycmF5UGxvdDNEXCIsXG4gIFwiQXJyYXlRXCIsXG4gIFwiQXJyYXlSZWR1Y2VcIixcbiAgXCJBcnJheVJlc2FtcGxlXCIsXG4gIFwiQXJyYXlSZXNoYXBlXCIsXG4gIFwiQXJyYXlSdWxlc1wiLFxuICBcIkFycmF5c1wiLFxuICBcIkFycm93XCIsXG4gIFwiQXJyb3czREJveFwiLFxuICBcIkFycm93Qm94XCIsXG4gIFwiQXJyb3doZWFkc1wiLFxuICBcIkFTQVRyaWFuZ2xlXCIsXG4gIFwiQXNrXCIsXG4gIFwiQXNrQXBwZW5kXCIsXG4gIFwiQXNrQ29uZmlybVwiLFxuICBcIkFza0Rpc3BsYXlcIixcbiAgXCJBc2tlZFFcIixcbiAgXCJBc2tlZFZhbHVlXCIsXG4gIFwiQXNrRnVuY3Rpb25cIixcbiAgXCJBc2tTdGF0ZVwiLFxuICBcIkFza1RlbXBsYXRlRGlzcGxheVwiLFxuICBcIkFzcGVjdFJhdGlvXCIsXG4gIFwiQXNwZWN0UmF0aW9GaXhlZFwiLFxuICBcIkFzc2VydFwiLFxuICBcIkFzc2Vzc21lbnRGdW5jdGlvblwiLFxuICBcIkFzc2Vzc21lbnRSZXN1bHRPYmplY3RcIixcbiAgXCJBc3NvY2lhdGVUb1wiLFxuICBcIkFzc29jaWF0aW9uXCIsXG4gIFwiQXNzb2NpYXRpb25Gb3JtYXRcIixcbiAgXCJBc3NvY2lhdGlvbk1hcFwiLFxuICBcIkFzc29jaWF0aW9uUVwiLFxuICBcIkFzc29jaWF0aW9uVGhyZWFkXCIsXG4gIFwiQXNzdW1lRGV0ZXJtaW5pc3RpY1wiLFxuICBcIkFzc3VtaW5nXCIsXG4gIFwiQXNzdW1wdGlvbnNcIixcbiAgXCJBc3Ryb0FuZ3VsYXJTZXBhcmF0aW9uXCIsXG4gIFwiQXN0cm9CYWNrZ3JvdW5kXCIsXG4gIFwiQXN0cm9DZW50ZXJcIixcbiAgXCJBc3Ryb0Rpc3RhbmNlXCIsXG4gIFwiQXN0cm9HcmFwaGljc1wiLFxuICBcIkFzdHJvR3JpZExpbmVzXCIsXG4gIFwiQXN0cm9HcmlkTGluZXNTdHlsZVwiLFxuICBcIkFzdHJvbm9taWNhbERhdGFcIixcbiAgXCJBc3Ryb1Bvc2l0aW9uXCIsXG4gIFwiQXN0cm9Qcm9qZWN0aW9uXCIsXG4gIFwiQXN0cm9SYW5nZVwiLFxuICBcIkFzdHJvUmFuZ2VQYWRkaW5nXCIsXG4gIFwiQXN0cm9SZWZlcmVuY2VGcmFtZVwiLFxuICBcIkFzdHJvU3R5bGluZ1wiLFxuICBcIkFzdHJvWm9vbUxldmVsXCIsXG4gIFwiQXN5bXB0b3RpY1wiLFxuICBcIkFzeW1wdG90aWNEU29sdmVWYWx1ZVwiLFxuICBcIkFzeW1wdG90aWNFcXVhbFwiLFxuICBcIkFzeW1wdG90aWNFcXVpdmFsZW50XCIsXG4gIFwiQXN5bXB0b3RpY0V4cGVjdGF0aW9uXCIsXG4gIFwiQXN5bXB0b3RpY0dyZWF0ZXJcIixcbiAgXCJBc3ltcHRvdGljR3JlYXRlckVxdWFsXCIsXG4gIFwiQXN5bXB0b3RpY0ludGVncmF0ZVwiLFxuICBcIkFzeW1wdG90aWNMZXNzXCIsXG4gIFwiQXN5bXB0b3RpY0xlc3NFcXVhbFwiLFxuICBcIkFzeW1wdG90aWNPdXRwdXRUcmFja2VyXCIsXG4gIFwiQXN5bXB0b3RpY1Byb2JhYmlsaXR5XCIsXG4gIFwiQXN5bXB0b3RpY1Byb2R1Y3RcIixcbiAgXCJBc3ltcHRvdGljUlNvbHZlVmFsdWVcIixcbiAgXCJBc3ltcHRvdGljU29sdmVcIixcbiAgXCJBc3ltcHRvdGljU3VtXCIsXG4gIFwiQXN5bmNocm9ub3VzXCIsXG4gIFwiQXN5bmNocm9ub3VzVGFza09iamVjdFwiLFxuICBcIkFzeW5jaHJvbm91c1Rhc2tzXCIsXG4gIFwiQXRvbVwiLFxuICBcIkF0b21Db29yZGluYXRlc1wiLFxuICBcIkF0b21Db3VudFwiLFxuICBcIkF0b21EaWFncmFtQ29vcmRpbmF0ZXNcIixcbiAgXCJBdG9tTGFiZWxzXCIsXG4gIFwiQXRvbUxhYmVsU3R5bGVcIixcbiAgXCJBdG9tTGlzdFwiLFxuICBcIkF0b21RXCIsXG4gIFwiQXR0YWNoQ2VsbFwiLFxuICBcIkF0dGFjaGVkQ2VsbFwiLFxuICBcIkF0dGVudGlvbkxheWVyXCIsXG4gIFwiQXR0cmlidXRlc1wiLFxuICBcIkF1ZGlvXCIsXG4gIFwiQXVkaW9BbXBsaWZ5XCIsXG4gIFwiQXVkaW9Bbm5vdGF0ZVwiLFxuICBcIkF1ZGlvQW5ub3RhdGlvbkxvb2t1cFwiLFxuICBcIkF1ZGlvQmxvY2tNYXBcIixcbiAgXCJBdWRpb0NhcHR1cmVcIixcbiAgXCJBdWRpb0NoYW5uZWxBc3NpZ25tZW50XCIsXG4gIFwiQXVkaW9DaGFubmVsQ29tYmluZVwiLFxuICBcIkF1ZGlvQ2hhbm5lbE1peFwiLFxuICBcIkF1ZGlvQ2hhbm5lbHNcIixcbiAgXCJBdWRpb0NoYW5uZWxTZXBhcmF0ZVwiLFxuICBcIkF1ZGlvRGF0YVwiLFxuICBcIkF1ZGlvRGVsYXlcIixcbiAgXCJBdWRpb0RlbGV0ZVwiLFxuICBcIkF1ZGlvRGV2aWNlXCIsXG4gIFwiQXVkaW9EaXN0YW5jZVwiLFxuICBcIkF1ZGlvRW5jb2RpbmdcIixcbiAgXCJBdWRpb0ZhZGVcIixcbiAgXCJBdWRpb0ZyZXF1ZW5jeVNoaWZ0XCIsXG4gIFwiQXVkaW9HZW5lcmF0b3JcIixcbiAgXCJBdWRpb0lkZW50aWZ5XCIsXG4gIFwiQXVkaW9JbnB1dERldmljZVwiLFxuICBcIkF1ZGlvSW5zZXJ0XCIsXG4gIFwiQXVkaW9JbnN0YW5jZVFcIixcbiAgXCJBdWRpb0ludGVydmFsc1wiLFxuICBcIkF1ZGlvSm9pblwiLFxuICBcIkF1ZGlvTGFiZWxcIixcbiAgXCJBdWRpb0xlbmd0aFwiLFxuICBcIkF1ZGlvTG9jYWxNZWFzdXJlbWVudHNcIixcbiAgXCJBdWRpb0xvb3BpbmdcIixcbiAgXCJBdWRpb0xvdWRuZXNzXCIsXG4gIFwiQXVkaW9NZWFzdXJlbWVudHNcIixcbiAgXCJBdWRpb05vcm1hbGl6ZVwiLFxuICBcIkF1ZGlvT3V0cHV0RGV2aWNlXCIsXG4gIFwiQXVkaW9PdmVybGF5XCIsXG4gIFwiQXVkaW9QYWRcIixcbiAgXCJBdWRpb1BhblwiLFxuICBcIkF1ZGlvUGFydGl0aW9uXCIsXG4gIFwiQXVkaW9QYXVzZVwiLFxuICBcIkF1ZGlvUGl0Y2hTaGlmdFwiLFxuICBcIkF1ZGlvUGxheVwiLFxuICBcIkF1ZGlvUGxvdFwiLFxuICBcIkF1ZGlvUVwiLFxuICBcIkF1ZGlvUmVjb3JkXCIsXG4gIFwiQXVkaW9SZXBsYWNlXCIsXG4gIFwiQXVkaW9SZXNhbXBsZVwiLFxuICBcIkF1ZGlvUmV2ZXJiXCIsXG4gIFwiQXVkaW9SZXZlcnNlXCIsXG4gIFwiQXVkaW9TYW1wbGVSYXRlXCIsXG4gIFwiQXVkaW9TcGVjdHJhbE1hcFwiLFxuICBcIkF1ZGlvU3BlY3RyYWxUcmFuc2Zvcm1hdGlvblwiLFxuICBcIkF1ZGlvU3BsaXRcIixcbiAgXCJBdWRpb1N0b3BcIixcbiAgXCJBdWRpb1N0cmVhbVwiLFxuICBcIkF1ZGlvU3RyZWFtc1wiLFxuICBcIkF1ZGlvVGltZVN0cmV0Y2hcIixcbiAgXCJBdWRpb1RyYWNrQXBwbHlcIixcbiAgXCJBdWRpb1RyYWNrU2VsZWN0aW9uXCIsXG4gIFwiQXVkaW9UcmltXCIsXG4gIFwiQXVkaW9UeXBlXCIsXG4gIFwiQXVnbWVudGVkUG9seWhlZHJvblwiLFxuICBcIkF1Z21lbnRlZFN5bW1ldHJpY1BvbHlub21pYWxcIixcbiAgXCJBdXRoZW50aWNhdGVcIixcbiAgXCJBdXRoZW50aWNhdGlvblwiLFxuICBcIkF1dGhlbnRpY2F0aW9uRGlhbG9nXCIsXG4gIFwiQXV0b0FjdGlvblwiLFxuICBcIkF1dG9jb21wbGV0ZVwiLFxuICBcIkF1dG9jb21wbGV0aW9uRnVuY3Rpb25cIixcbiAgXCJBdXRvQ29weVwiLFxuICBcIkF1dG9jb3JyZWxhdGlvblRlc3RcIixcbiAgXCJBdXRvRGVsZXRlXCIsXG4gIFwiQXV0b0V2YWx1YXRlRXZlbnRzXCIsXG4gIFwiQXV0b0dlbmVyYXRlZFBhY2thZ2VcIixcbiAgXCJBdXRvSW5kZW50XCIsXG4gIFwiQXV0b0luZGVudFNwYWNpbmdzXCIsXG4gIFwiQXV0b0l0YWxpY1dvcmRzXCIsXG4gIFwiQXV0b2xvYWRQYXRoXCIsXG4gIFwiQXV0b01hdGNoXCIsXG4gIFwiQXV0b21hdGljXCIsXG4gIFwiQXV0b21hdGljSW1hZ2VTaXplXCIsXG4gIFwiQXV0b011bHRpcGxpY2F0aW9uU3ltYm9sXCIsXG4gIFwiQXV0b051bWJlckZvcm1hdHRpbmdcIixcbiAgXCJBdXRvT3Blbk5vdGVib29rc1wiLFxuICBcIkF1dG9PcGVuUGFsZXR0ZXNcIixcbiAgXCJBdXRvT3BlcmF0b3JSZW5kZXJpbmdzXCIsXG4gIFwiQXV0b1F1b3RlQ2hhcmFjdGVyc1wiLFxuICBcIkF1dG9SZWZyZXNoZWRcIixcbiAgXCJBdXRvUmVtb3ZlXCIsXG4gIFwiQXV0b3J1blNlcXVlbmNpbmdcIixcbiAgXCJBdXRvU2NhbGluZ1wiLFxuICBcIkF1dG9TY3JvbGxcIixcbiAgXCJBdXRvU3BhY2luZ1wiLFxuICBcIkF1dG9TdHlsZU9wdGlvbnNcIixcbiAgXCJBdXRvU3R5bGVXb3Jkc1wiLFxuICBcIkF1dG9TdWJtaXR0aW5nXCIsXG4gIFwiQXhlc1wiLFxuICBcIkF4ZXNFZGdlXCIsXG4gIFwiQXhlc0xhYmVsXCIsXG4gIFwiQXhlc09yaWdpblwiLFxuICBcIkF4ZXNTdHlsZVwiLFxuICBcIkF4aW9tYXRpY1RoZW9yeVwiLFxuICBcIkF4aXNcIixcbiAgXCJBeGlzM0RCb3hcIixcbiAgXCJBeGlzM0RCb3hPcHRpb25zXCIsXG4gIFwiQXhpc0JveFwiLFxuICBcIkF4aXNCb3hPcHRpb25zXCIsXG4gIFwiQXhpc0xhYmVsXCIsXG4gIFwiQXhpc09iamVjdFwiLFxuICBcIkF4aXNTdHlsZVwiLFxuICBcIkJhYnlNb25zdGVyR3JvdXBCXCIsXG4gIFwiQmFja1wiLFxuICBcIkJhY2tGYWNlQ29sb3JcIixcbiAgXCJCYWNrRmFjZUdsb3dDb2xvclwiLFxuICBcIkJhY2tGYWNlT3BhY2l0eVwiLFxuICBcIkJhY2tGYWNlU3BlY3VsYXJDb2xvclwiLFxuICBcIkJhY2tGYWNlU3BlY3VsYXJFeHBvbmVudFwiLFxuICBcIkJhY2tGYWNlU3VyZmFjZUFwcGVhcmFuY2VcIixcbiAgXCJCYWNrRmFjZVRleHR1cmVcIixcbiAgXCJCYWNrZ3JvdW5kXCIsXG4gIFwiQmFja2dyb3VuZEFwcGVhcmFuY2VcIixcbiAgXCJCYWNrZ3JvdW5kVGFza3NTZXR0aW5nc1wiLFxuICBcIkJhY2tzbGFzaFwiLFxuICBcIkJhY2tzdWJzdGl0dXRpb25cIixcbiAgXCJCYWNrd2FyZFwiLFxuICBcIkJhbGxcIixcbiAgXCJCYW5kXCIsXG4gIFwiQmFuZHBhc3NGaWx0ZXJcIixcbiAgXCJCYW5kc3RvcEZpbHRlclwiLFxuICBcIkJhcmFiYXNpQWxiZXJ0R3JhcGhEaXN0cmlidXRpb25cIixcbiAgXCJCYXJDaGFydFwiLFxuICBcIkJhckNoYXJ0M0RcIixcbiAgXCJCYXJjb2RlSW1hZ2VcIixcbiAgXCJCYXJjb2RlUmVjb2duaXplXCIsXG4gIFwiQmFyaW5naGF1c0hlbnplVGVzdFwiLFxuICBcIkJhckxlZ2VuZFwiLFxuICBcIkJhcmxvd1Byb3NjaGFuSW1wb3J0YW5jZVwiLFxuICBcIkJhcm5lc0dcIixcbiAgXCJCYXJPcmlnaW5cIixcbiAgXCJCYXJTcGFjaW5nXCIsXG4gIFwiQmFydGxldHRIYW5uV2luZG93XCIsXG4gIFwiQmFydGxldHRXaW5kb3dcIixcbiAgXCJCYXNlRGVjb2RlXCIsXG4gIFwiQmFzZUVuY29kZVwiLFxuICBcIkJhc2VGb3JtXCIsXG4gIFwiQmFzZWxpbmVcIixcbiAgXCJCYXNlbGluZVBvc2l0aW9uXCIsXG4gIFwiQmFzZVN0eWxlXCIsXG4gIFwiQmFzaWNSZWN1cnJlbnRMYXllclwiLFxuICBcIkJhdGNoTm9ybWFsaXphdGlvbkxheWVyXCIsXG4gIFwiQmF0Y2hTaXplXCIsXG4gIFwiQmF0ZXNEaXN0cmlidXRpb25cIixcbiAgXCJCYXR0bGVMZW1hcmllV2F2ZWxldFwiLFxuICBcIkJheWVzaWFuTWF4aW1pemF0aW9uXCIsXG4gIFwiQmF5ZXNpYW5NYXhpbWl6YXRpb25PYmplY3RcIixcbiAgXCJCYXllc2lhbk1pbmltaXphdGlvblwiLFxuICBcIkJheWVzaWFuTWluaW1pemF0aW9uT2JqZWN0XCIsXG4gIFwiQmVjYXVzZVwiLFxuICBcIkJlY2ttYW5uRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVlcFwiLFxuICBcIkJlZm9yZVwiLFxuICBcIkJlZ2luXCIsXG4gIFwiQmVnaW5EaWFsb2dQYWNrZXRcIixcbiAgXCJCZWdpblBhY2thZ2VcIixcbiAgXCJCZWxsQlwiLFxuICBcIkJlbGxZXCIsXG4gIFwiQmVsb3dcIixcbiAgXCJCZW5mb3JkRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVuaW5pRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVua3RhbmRlckdpYnJhdERpc3RyaWJ1dGlvblwiLFxuICBcIkJlbmt0YW5kZXJXZWlidWxsRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVybm91bGxpQlwiLFxuICBcIkJlcm5vdWxsaURpc3RyaWJ1dGlvblwiLFxuICBcIkJlcm5vdWxsaUdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmVybm91bGxpUHJvY2Vzc1wiLFxuICBcIkJlcm5zdGVpbkJhc2lzXCIsXG4gIFwiQmVzYWdMXCIsXG4gIFwiQmVzc2VsRmlsdGVyTW9kZWxcIixcbiAgXCJCZXNzZWxJXCIsXG4gIFwiQmVzc2VsSlwiLFxuICBcIkJlc3NlbEpaZXJvXCIsXG4gIFwiQmVzc2VsS1wiLFxuICBcIkJlc3NlbFlcIixcbiAgXCJCZXNzZWxZWmVyb1wiLFxuICBcIkJldGFcIixcbiAgXCJCZXRhQmlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJCZXRhRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmV0YU5lZ2F0aXZlQmlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJCZXRhUHJpbWVEaXN0cmlidXRpb25cIixcbiAgXCJCZXRhUmVndWxhcml6ZWRcIixcbiAgXCJCZXR3ZWVuXCIsXG4gIFwiQmV0d2Vlbm5lc3NDZW50cmFsaXR5XCIsXG4gIFwiQmV2ZWxlZFwiLFxuICBcIkJldmVsZWRQb2x5aGVkcm9uXCIsXG4gIFwiQmV6aWVyQ3VydmVcIixcbiAgXCJCZXppZXJDdXJ2ZTNEQm94XCIsXG4gIFwiQmV6aWVyQ3VydmUzREJveE9wdGlvbnNcIixcbiAgXCJCZXppZXJDdXJ2ZUJveFwiLFxuICBcIkJlemllckN1cnZlQm94T3B0aW9uc1wiLFxuICBcIkJlemllckZ1bmN0aW9uXCIsXG4gIFwiQmlsYXRlcmFsRmlsdGVyXCIsXG4gIFwiQmlsYXRlcmFsTGFwbGFjZVRyYW5zZm9ybVwiLFxuICBcIkJpbGF0ZXJhbFpUcmFuc2Zvcm1cIixcbiAgXCJCaW5hcml6ZVwiLFxuICBcIkJpbmFyeURlc2VyaWFsaXplXCIsXG4gIFwiQmluYXJ5RGlzdGFuY2VcIixcbiAgXCJCaW5hcnlGb3JtYXRcIixcbiAgXCJCaW5hcnlJbWFnZVFcIixcbiAgXCJCaW5hcnlSZWFkXCIsXG4gIFwiQmluYXJ5UmVhZExpc3RcIixcbiAgXCJCaW5hcnlTZXJpYWxpemVcIixcbiAgXCJCaW5hcnlXcml0ZVwiLFxuICBcIkJpbkNvdW50c1wiLFxuICBcIkJpbkxpc3RzXCIsXG4gIFwiQmlubmVkVmFyaW9ncmFtTGlzdFwiLFxuICBcIkJpbm9taWFsXCIsXG4gIFwiQmlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJCaW5vbWlhbFBvaW50UHJvY2Vzc1wiLFxuICBcIkJpbm9taWFsUHJvY2Vzc1wiLFxuICBcIkJpbm9ybWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiQmlvcnRob2dvbmFsU3BsaW5lV2F2ZWxldFwiLFxuICBcIkJpb1NlcXVlbmNlXCIsXG4gIFwiQmlvU2VxdWVuY2VCYWNrVHJhbnNsYXRlTGlzdFwiLFxuICBcIkJpb1NlcXVlbmNlQ29tcGxlbWVudFwiLFxuICBcIkJpb1NlcXVlbmNlSW5zdGFuY2VzXCIsXG4gIFwiQmlvU2VxdWVuY2VNb2RpZnlcIixcbiAgXCJCaW9TZXF1ZW5jZVBsb3RcIixcbiAgXCJCaW9TZXF1ZW5jZVFcIixcbiAgXCJCaW9TZXF1ZW5jZVJldmVyc2VDb21wbGVtZW50XCIsXG4gIFwiQmlvU2VxdWVuY2VUcmFuc2NyaWJlXCIsXG4gIFwiQmlvU2VxdWVuY2VUcmFuc2xhdGVcIixcbiAgXCJCaXBhcnRpdGVHcmFwaFFcIixcbiAgXCJCaXF1YWRyYXRpY0ZpbHRlck1vZGVsXCIsXG4gIFwiQmlybmJhdW1JbXBvcnRhbmNlXCIsXG4gIFwiQmlybmJhdW1TYXVuZGVyc0Rpc3RyaWJ1dGlvblwiLFxuICBcIkJpdEFuZFwiLFxuICBcIkJpdENsZWFyXCIsXG4gIFwiQml0R2V0XCIsXG4gIFwiQml0TGVuZ3RoXCIsXG4gIFwiQml0Tm90XCIsXG4gIFwiQml0T3JcIixcbiAgXCJCaXRSYXRlXCIsXG4gIFwiQml0U2V0XCIsXG4gIFwiQml0U2hpZnRMZWZ0XCIsXG4gIFwiQml0U2hpZnRSaWdodFwiLFxuICBcIkJpdFhvclwiLFxuICBcIkJpd2VpZ2h0TG9jYXRpb25cIixcbiAgXCJCaXdlaWdodE1pZHZhcmlhbmNlXCIsXG4gIFwiQmxhY2tcIixcbiAgXCJCbGFja21hbkhhcnJpc1dpbmRvd1wiLFxuICBcIkJsYWNrbWFuTnV0dGFsbFdpbmRvd1wiLFxuICBcIkJsYWNrbWFuV2luZG93XCIsXG4gIFwiQmxhbmtcIixcbiAgXCJCbGFua0Zvcm1cIixcbiAgXCJCbGFua051bGxTZXF1ZW5jZVwiLFxuICBcIkJsYW5rU2VxdWVuY2VcIixcbiAgXCJCbGVuZFwiLFxuICBcIkJsb2NrXCIsXG4gIFwiQmxvY2tjaGFpbkFkZHJlc3NEYXRhXCIsXG4gIFwiQmxvY2tjaGFpbkJhc2VcIixcbiAgXCJCbG9ja2NoYWluQmxvY2tEYXRhXCIsXG4gIFwiQmxvY2tjaGFpbkNvbnRyYWN0VmFsdWVcIixcbiAgXCJCbG9ja2NoYWluRGF0YVwiLFxuICBcIkJsb2NrY2hhaW5HZXRcIixcbiAgXCJCbG9ja2NoYWluS2V5RW5jb2RlXCIsXG4gIFwiQmxvY2tjaGFpblB1dFwiLFxuICBcIkJsb2NrY2hhaW5Ub2tlbkRhdGFcIixcbiAgXCJCbG9ja2NoYWluVHJhbnNhY3Rpb25cIixcbiAgXCJCbG9ja2NoYWluVHJhbnNhY3Rpb25EYXRhXCIsXG4gIFwiQmxvY2tjaGFpblRyYW5zYWN0aW9uU2lnblwiLFxuICBcIkJsb2NrY2hhaW5UcmFuc2FjdGlvblN1Ym1pdFwiLFxuICBcIkJsb2NrRGlhZ29uYWxNYXRyaXhcIixcbiAgXCJCbG9ja0xvd2VyVHJpYW5ndWxhck1hdHJpeFwiLFxuICBcIkJsb2NrTWFwXCIsXG4gIFwiQmxvY2tSYW5kb21cIixcbiAgXCJCbG9ja1VwcGVyVHJpYW5ndWxhck1hdHJpeFwiLFxuICBcIkJsb21xdmlzdEJldGFcIixcbiAgXCJCbG9tcXZpc3RCZXRhVGVzdFwiLFxuICBcIkJsdWVcIixcbiAgXCJCbHVyXCIsXG4gIFwiQmx1cnJpbmdcIixcbiAgXCJCb2RlUGxvdFwiLFxuICBcIkJvaG1hbldpbmRvd1wiLFxuICBcIkJvbGRcIixcbiAgXCJCb25kXCIsXG4gIFwiQm9uZENvdW50XCIsXG4gIFwiQm9uZExhYmVsc1wiLFxuICBcIkJvbmRMYWJlbFN0eWxlXCIsXG4gIFwiQm9uZExpc3RcIixcbiAgXCJCb25kUVwiLFxuICBcIkJvb2ttYXJrc1wiLFxuICBcIkJvb2xlXCIsXG4gIFwiQm9vbGVhbkNvbnNlY3V0aXZlRnVuY3Rpb25cIixcbiAgXCJCb29sZWFuQ29udmVydFwiLFxuICBcIkJvb2xlYW5Db3VudGluZ0Z1bmN0aW9uXCIsXG4gIFwiQm9vbGVhbkZ1bmN0aW9uXCIsXG4gIFwiQm9vbGVhbkdyYXBoXCIsXG4gIFwiQm9vbGVhbk1heHRlcm1zXCIsXG4gIFwiQm9vbGVhbk1pbmltaXplXCIsXG4gIFwiQm9vbGVhbk1pbnRlcm1zXCIsXG4gIFwiQm9vbGVhblFcIixcbiAgXCJCb29sZWFuUmVnaW9uXCIsXG4gIFwiQm9vbGVhbnNcIixcbiAgXCJCb29sZWFuU3RyaW5nc1wiLFxuICBcIkJvb2xlYW5UYWJsZVwiLFxuICBcIkJvb2xlYW5WYXJpYWJsZXNcIixcbiAgXCJCb3JkZXJEaW1lbnNpb25zXCIsXG4gIFwiQm9yZWxUYW5uZXJEaXN0cmlidXRpb25cIixcbiAgXCJCb3R0b21cIixcbiAgXCJCb3R0b21IYXRUcmFuc2Zvcm1cIixcbiAgXCJCb3VuZGFyeURpc2NyZXRpemVHcmFwaGljc1wiLFxuICBcIkJvdW5kYXJ5RGlzY3JldGl6ZVJlZ2lvblwiLFxuICBcIkJvdW5kYXJ5TWVzaFwiLFxuICBcIkJvdW5kYXJ5TWVzaFJlZ2lvblwiLFxuICBcIkJvdW5kYXJ5TWVzaFJlZ2lvblFcIixcbiAgXCJCb3VuZGFyeVN0eWxlXCIsXG4gIFwiQm91bmRlZFJlZ2lvblFcIixcbiAgXCJCb3VuZGluZ1JlZ2lvblwiLFxuICBcIkJvdW5kc1wiLFxuICBcIkJveFwiLFxuICBcIkJveEJhc2VsaW5lU2hpZnRcIixcbiAgXCJCb3hEYXRhXCIsXG4gIFwiQm94RGltZW5zaW9uc1wiLFxuICBcIkJveGVkXCIsXG4gIFwiQm94ZXNcIixcbiAgXCJCb3hGb3JtXCIsXG4gIFwiQm94Rm9ybUZvcm1hdFR5cGVzXCIsXG4gIFwiQm94RnJhbWVcIixcbiAgXCJCb3hJRFwiLFxuICBcIkJveE1hcmdpbnNcIixcbiAgXCJCb3hNYXRyaXhcIixcbiAgXCJCb3hPYmplY3RcIixcbiAgXCJCb3hSYXRpb3NcIixcbiAgXCJCb3hSb3RhdGlvblwiLFxuICBcIkJveFJvdGF0aW9uUG9pbnRcIixcbiAgXCJCb3hTdHlsZVwiLFxuICBcIkJveFdoaXNrZXJDaGFydFwiLFxuICBcIkJyYVwiLFxuICBcIkJyYWNrZXRpbmdCYXJcIixcbiAgXCJCcmFLZXRcIixcbiAgXCJCcmF5Q3VydGlzRGlzdGFuY2VcIixcbiAgXCJCcmVhZHRoRmlyc3RTY2FuXCIsXG4gIFwiQnJlYWtcIixcbiAgXCJCcmlkZ2VEYXRhXCIsXG4gIFwiQnJpZ2h0bmVzc0VxdWFsaXplXCIsXG4gIFwiQnJvYWRjYXN0U3RhdGlvbkRhdGFcIixcbiAgXCJCcm93blwiLFxuICBcIkJyb3duRm9yc3l0aGVUZXN0XCIsXG4gIFwiQnJvd25pYW5CcmlkZ2VQcm9jZXNzXCIsXG4gIFwiQnJvd3NlckNhdGVnb3J5XCIsXG4gIFwiQlNwbGluZUJhc2lzXCIsXG4gIFwiQlNwbGluZUN1cnZlXCIsXG4gIFwiQlNwbGluZUN1cnZlM0RCb3hcIixcbiAgXCJCU3BsaW5lQ3VydmUzREJveE9wdGlvbnNcIixcbiAgXCJCU3BsaW5lQ3VydmVCb3hcIixcbiAgXCJCU3BsaW5lQ3VydmVCb3hPcHRpb25zXCIsXG4gIFwiQlNwbGluZUZ1bmN0aW9uXCIsXG4gIFwiQlNwbGluZVN1cmZhY2VcIixcbiAgXCJCU3BsaW5lU3VyZmFjZTNEQm94XCIsXG4gIFwiQlNwbGluZVN1cmZhY2UzREJveE9wdGlvbnNcIixcbiAgXCJCdWJibGVDaGFydFwiLFxuICBcIkJ1YmJsZUNoYXJ0M0RcIixcbiAgXCJCdWJibGVTY2FsZVwiLFxuICBcIkJ1YmJsZVNpemVzXCIsXG4gIFwiQnVja3liYWxsR3JhcGhcIixcbiAgXCJCdWlsZENvbXBpbGVkQ29tcG9uZW50XCIsXG4gIFwiQnVpbGRpbmdEYXRhXCIsXG4gIFwiQnVsbGV0R2F1Z2VcIixcbiAgXCJCdXNpbmVzc0RheVFcIixcbiAgXCJCdXR0ZXJmbHlHcmFwaFwiLFxuICBcIkJ1dHRlcndvcnRoRmlsdGVyTW9kZWxcIixcbiAgXCJCdXR0b25cIixcbiAgXCJCdXR0b25CYXJcIixcbiAgXCJCdXR0b25Cb3hcIixcbiAgXCJCdXR0b25Cb3hPcHRpb25zXCIsXG4gIFwiQnV0dG9uQ2VsbFwiLFxuICBcIkJ1dHRvbkNvbnRlbnRzXCIsXG4gIFwiQnV0dG9uRGF0YVwiLFxuICBcIkJ1dHRvbkV2YWx1YXRvclwiLFxuICBcIkJ1dHRvbkV4cGFuZGFibGVcIixcbiAgXCJCdXR0b25GcmFtZVwiLFxuICBcIkJ1dHRvbkZ1bmN0aW9uXCIsXG4gIFwiQnV0dG9uTWFyZ2luc1wiLFxuICBcIkJ1dHRvbk1pbkhlaWdodFwiLFxuICBcIkJ1dHRvbk5vdGVcIixcbiAgXCJCdXR0b25Ob3RlYm9va1wiLFxuICBcIkJ1dHRvblNvdXJjZVwiLFxuICBcIkJ1dHRvblN0eWxlXCIsXG4gIFwiQnV0dG9uU3R5bGVNZW51TGlzdGluZ1wiLFxuICBcIkJ5dGVcIixcbiAgXCJCeXRlQXJyYXlcIixcbiAgXCJCeXRlQXJyYXlGb3JtYXRcIixcbiAgXCJCeXRlQXJyYXlGb3JtYXRRXCIsXG4gIFwiQnl0ZUFycmF5UVwiLFxuICBcIkJ5dGVBcnJheVRvU3RyaW5nXCIsXG4gIFwiQnl0ZUNvdW50XCIsXG4gIFwiQnl0ZU9yZGVyaW5nXCIsXG4gIFwiQ1wiLFxuICBcIkNhY2hlZFZhbHVlXCIsXG4gIFwiQ2FjaGVHcmFwaGljc1wiLFxuICBcIkNhY2hlUGVyc2lzdGVuY2VcIixcbiAgXCJDYWxlbmRhckNvbnZlcnRcIixcbiAgXCJDYWxlbmRhckRhdGFcIixcbiAgXCJDYWxlbmRhclR5cGVcIixcbiAgXCJDYWxsb3V0XCIsXG4gIFwiQ2FsbG91dE1hcmtlclwiLFxuICBcIkNhbGxvdXRTdHlsZVwiLFxuICBcIkNhbGxQYWNrZXRcIixcbiAgXCJDYW5iZXJyYURpc3RhbmNlXCIsXG4gIFwiQ2FuY2VsXCIsXG4gIFwiQ2FuY2VsQnV0dG9uXCIsXG4gIFwiQ2FuZGxlc3RpY2tDaGFydFwiLFxuICBcIkNhbm9uaWNhbEdyYXBoXCIsXG4gIFwiQ2Fub25pY2FsaXplUG9seWdvblwiLFxuICBcIkNhbm9uaWNhbGl6ZVBvbHloZWRyb25cIixcbiAgXCJDYW5vbmljYWxpemVSZWdpb25cIixcbiAgXCJDYW5vbmljYWxOYW1lXCIsXG4gIFwiQ2Fub25pY2FsV2FycGluZ0NvcnJlc3BvbmRlbmNlXCIsXG4gIFwiQ2Fub25pY2FsV2FycGluZ0Rpc3RhbmNlXCIsXG4gIFwiQ2FudG9yTWVzaFwiLFxuICBcIkNhbnRvclN0YWlyY2FzZVwiLFxuICBcIkNhbnZhc1wiLFxuICBcIkNhcFwiLFxuICBcIkNhcEZvcm1cIixcbiAgXCJDYXBpdGFsRGlmZmVyZW50aWFsRFwiLFxuICBcIkNhcGl0YWxpemVcIixcbiAgXCJDYXBzdWxlU2hhcGVcIixcbiAgXCJDYXB0dXJlUnVubmluZ1wiLFxuICBcIkNhcHV0b0RcIixcbiAgXCJDYXJkaW5hbEJTcGxpbmVCYXNpc1wiLFxuICBcIkNhcmxlbWFuTGluZWFyaXplXCIsXG4gIFwiQ2FybHNvblJDXCIsXG4gIFwiQ2FybHNvblJEXCIsXG4gIFwiQ2FybHNvblJFXCIsXG4gIFwiQ2FybHNvblJGXCIsXG4gIFwiQ2FybHNvblJHXCIsXG4gIFwiQ2FybHNvblJKXCIsXG4gIFwiQ2FybHNvblJLXCIsXG4gIFwiQ2FybHNvblJNXCIsXG4gIFwiQ2FybWljaGFlbExhbWJkYVwiLFxuICBcIkNhc2VPcmRlcmluZ1wiLFxuICBcIkNhc2VzXCIsXG4gIFwiQ2FzZVNlbnNpdGl2ZVwiLFxuICBcIkNhc2hmbG93XCIsXG4gIFwiQ2Fzb3JhdGlhblwiLFxuICBcIkNhc3RcIixcbiAgXCJDYXRhbGFuXCIsXG4gIFwiQ2F0YWxhbk51bWJlclwiLFxuICBcIkNhdGNoXCIsXG4gIFwiQ2F0ZWdvcmljYWxEaXN0cmlidXRpb25cIixcbiAgXCJDYXRlbmF0ZVwiLFxuICBcIkNhdGVuYXRlTGF5ZXJcIixcbiAgXCJDYXVjaHlEaXN0cmlidXRpb25cIixcbiAgXCJDYXVjaHlNYXRyaXhcIixcbiAgXCJDYXVjaHlQb2ludFByb2Nlc3NcIixcbiAgXCJDYXVjaHlXaW5kb3dcIixcbiAgXCJDYXlsZXlHcmFwaFwiLFxuICBcIkNERlwiLFxuICBcIkNERkRlcGxveVwiLFxuICBcIkNERkluZm9ybWF0aW9uXCIsXG4gIFwiQ0RGV2F2ZWxldFwiLFxuICBcIkNlaWxpbmdcIixcbiAgXCJDZWxlc3RpYWxTeXN0ZW1cIixcbiAgXCJDZWxsXCIsXG4gIFwiQ2VsbEF1dG9PdmVyd3JpdGVcIixcbiAgXCJDZWxsQmFzZWxpbmVcIixcbiAgXCJDZWxsQm91bmRpbmdCb3hcIixcbiAgXCJDZWxsQnJhY2tldE9wdGlvbnNcIixcbiAgXCJDZWxsQ2hhbmdlVGltZXNcIixcbiAgXCJDZWxsQ29udGVudHNcIixcbiAgXCJDZWxsQ29udGV4dFwiLFxuICBcIkNlbGxEaW5nYmF0XCIsXG4gIFwiQ2VsbERpbmdiYXRNYXJnaW5cIixcbiAgXCJDZWxsRHluYW1pY0V4cHJlc3Npb25cIixcbiAgXCJDZWxsRWRpdER1cGxpY2F0ZVwiLFxuICBcIkNlbGxFbGVtZW50c0JvdW5kaW5nQm94XCIsXG4gIFwiQ2VsbEVsZW1lbnRTcGFjaW5nc1wiLFxuICBcIkNlbGxFcGlsb2dcIixcbiAgXCJDZWxsRXZhbHVhdGlvbkR1cGxpY2F0ZVwiLFxuICBcIkNlbGxFdmFsdWF0aW9uRnVuY3Rpb25cIixcbiAgXCJDZWxsRXZhbHVhdGlvbkxhbmd1YWdlXCIsXG4gIFwiQ2VsbEV2ZW50QWN0aW9uc1wiLFxuICBcIkNlbGxGcmFtZVwiLFxuICBcIkNlbGxGcmFtZUNvbG9yXCIsXG4gIFwiQ2VsbEZyYW1lTGFiZWxNYXJnaW5zXCIsXG4gIFwiQ2VsbEZyYW1lTGFiZWxzXCIsXG4gIFwiQ2VsbEZyYW1lTWFyZ2luc1wiLFxuICBcIkNlbGxGcmFtZVN0eWxlXCIsXG4gIFwiQ2VsbEdyb3VwXCIsXG4gIFwiQ2VsbEdyb3VwRGF0YVwiLFxuICBcIkNlbGxHcm91cGluZ1wiLFxuICBcIkNlbGxHcm91cGluZ1J1bGVzXCIsXG4gIFwiQ2VsbEhvcml6b250YWxTY3JvbGxpbmdcIixcbiAgXCJDZWxsSURcIixcbiAgXCJDZWxsSW5zZXJ0aW9uUG9pbnRDZWxsXCIsXG4gIFwiQ2VsbExhYmVsXCIsXG4gIFwiQ2VsbExhYmVsQXV0b0RlbGV0ZVwiLFxuICBcIkNlbGxMYWJlbE1hcmdpbnNcIixcbiAgXCJDZWxsTGFiZWxQb3NpdGlvbmluZ1wiLFxuICBcIkNlbGxMYWJlbFN0eWxlXCIsXG4gIFwiQ2VsbExhYmVsVGVtcGxhdGVcIixcbiAgXCJDZWxsTWFyZ2luc1wiLFxuICBcIkNlbGxPYmplY3RcIixcbiAgXCJDZWxsT3BlblwiLFxuICBcIkNlbGxQcmludFwiLFxuICBcIkNlbGxQcm9sb2dcIixcbiAgXCJDZWxsc1wiLFxuICBcIkNlbGxTaXplXCIsXG4gIFwiQ2VsbFN0eWxlXCIsXG4gIFwiQ2VsbFRhZ3NcIixcbiAgXCJDZWxsVHJheVBvc2l0aW9uXCIsXG4gIFwiQ2VsbFRyYXlXaWRnZXRzXCIsXG4gIFwiQ2VsbHVsYXJBdXRvbWF0b25cIixcbiAgXCJDZW5zb3JlZERpc3RyaWJ1dGlvblwiLFxuICBcIkNlbnNvcmluZ1wiLFxuICBcIkNlbnRlclwiLFxuICBcIkNlbnRlckFycmF5XCIsXG4gIFwiQ2VudGVyRG90XCIsXG4gIFwiQ2VudGVyZWRJbnRlcnZhbFwiLFxuICBcIkNlbnRyYWxGZWF0dXJlXCIsXG4gIFwiQ2VudHJhbE1vbWVudFwiLFxuICBcIkNlbnRyYWxNb21lbnRHZW5lcmF0aW5nRnVuY3Rpb25cIixcbiAgXCJDZXBzdHJvZ3JhbVwiLFxuICBcIkNlcHN0cm9ncmFtQXJyYXlcIixcbiAgXCJDZXBzdHJ1bUFycmF5XCIsXG4gIFwiQ0Zvcm1cIixcbiAgXCJDaGFtcGVybm93bmVOdW1iZXJcIixcbiAgXCJDaGFuZ2VPcHRpb25zXCIsXG4gIFwiQ2hhbm5lbEJhc2VcIixcbiAgXCJDaGFubmVsQnJva2VyQWN0aW9uXCIsXG4gIFwiQ2hhbm5lbERhdGFiaW5cIixcbiAgXCJDaGFubmVsSGlzdG9yeUxlbmd0aFwiLFxuICBcIkNoYW5uZWxMaXN0ZW5cIixcbiAgXCJDaGFubmVsTGlzdGVuZXJcIixcbiAgXCJDaGFubmVsTGlzdGVuZXJzXCIsXG4gIFwiQ2hhbm5lbExpc3RlbmVyV2FpdFwiLFxuICBcIkNoYW5uZWxPYmplY3RcIixcbiAgXCJDaGFubmVsUHJlU2VuZEZ1bmN0aW9uXCIsXG4gIFwiQ2hhbm5lbFJlY2VpdmVyRnVuY3Rpb25cIixcbiAgXCJDaGFubmVsU2VuZFwiLFxuICBcIkNoYW5uZWxTdWJzY3JpYmVyc1wiLFxuICBcIkNoYW5WZXNlQmluYXJpemVcIixcbiAgXCJDaGFyYWN0ZXJcIixcbiAgXCJDaGFyYWN0ZXJDb3VudHNcIixcbiAgXCJDaGFyYWN0ZXJFbmNvZGluZ1wiLFxuICBcIkNoYXJhY3RlckVuY29kaW5nc1BhdGhcIixcbiAgXCJDaGFyYWN0ZXJpc3RpY0Z1bmN0aW9uXCIsXG4gIFwiQ2hhcmFjdGVyaXN0aWNQb2x5bm9taWFsXCIsXG4gIFwiQ2hhcmFjdGVyTmFtZVwiLFxuICBcIkNoYXJhY3Rlck5vcm1hbGl6ZVwiLFxuICBcIkNoYXJhY3RlclJhbmdlXCIsXG4gIFwiQ2hhcmFjdGVyc1wiLFxuICBcIkNoYXJ0QmFzZVN0eWxlXCIsXG4gIFwiQ2hhcnRFbGVtZW50RGF0YVwiLFxuICBcIkNoYXJ0RWxlbWVudERhdGFGdW5jdGlvblwiLFxuICBcIkNoYXJ0RWxlbWVudEZ1bmN0aW9uXCIsXG4gIFwiQ2hhcnRFbGVtZW50c1wiLFxuICBcIkNoYXJ0TGFiZWxzXCIsXG4gIFwiQ2hhcnRMYXlvdXRcIixcbiAgXCJDaGFydExlZ2VuZHNcIixcbiAgXCJDaGFydFN0eWxlXCIsXG4gIFwiQ2hlYnlzaGV2MUZpbHRlck1vZGVsXCIsXG4gIFwiQ2hlYnlzaGV2MkZpbHRlck1vZGVsXCIsXG4gIFwiQ2hlYnlzaGV2RGlzdGFuY2VcIixcbiAgXCJDaGVieXNoZXZUXCIsXG4gIFwiQ2hlYnlzaGV2VVwiLFxuICBcIkNoZWNrXCIsXG4gIFwiQ2hlY2tBYm9ydFwiLFxuICBcIkNoZWNrQWxsXCIsXG4gIFwiQ2hlY2tBcmd1bWVudHNcIixcbiAgXCJDaGVja2JveFwiLFxuICBcIkNoZWNrYm94QmFyXCIsXG4gIFwiQ2hlY2tib3hCb3hcIixcbiAgXCJDaGVja2JveEJveE9wdGlvbnNcIixcbiAgXCJDaGVtaWNhbENvbnZlcnRcIixcbiAgXCJDaGVtaWNhbERhdGFcIixcbiAgXCJDaGVtaWNhbEZvcm11bGFcIixcbiAgXCJDaGVtaWNhbEluc3RhbmNlXCIsXG4gIFwiQ2hlbWljYWxSZWFjdGlvblwiLFxuICBcIkNoZXNzYm9hcmREaXN0YW5jZVwiLFxuICBcIkNoaURpc3RyaWJ1dGlvblwiLFxuICBcIkNoaW5lc2VSZW1haW5kZXJcIixcbiAgXCJDaGlTcXVhcmVEaXN0cmlidXRpb25cIixcbiAgXCJDaG9pY2VCdXR0b25zXCIsXG4gIFwiQ2hvaWNlRGlhbG9nXCIsXG4gIFwiQ2hvbGVza3lEZWNvbXBvc2l0aW9uXCIsXG4gIFwiQ2hvcFwiLFxuICBcIkNocm9tYXRpY2l0eVBsb3RcIixcbiAgXCJDaHJvbWF0aWNpdHlQbG90M0RcIixcbiAgXCJDaHJvbWF0aWNQb2x5bm9taWFsXCIsXG4gIFwiQ2lyY2xlXCIsXG4gIFwiQ2lyY2xlQm94XCIsXG4gIFwiQ2lyY2xlRG90XCIsXG4gIFwiQ2lyY2xlTWludXNcIixcbiAgXCJDaXJjbGVQbHVzXCIsXG4gIFwiQ2lyY2xlUG9pbnRzXCIsXG4gIFwiQ2lyY2xlVGhyb3VnaFwiLFxuICBcIkNpcmNsZVRpbWVzXCIsXG4gIFwiQ2lyY3VsYW50R3JhcGhcIixcbiAgXCJDaXJjdWxhckFyY1Rocm91Z2hcIixcbiAgXCJDaXJjdWxhck9ydGhvZ29uYWxNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclF1YXRlcm5pb25NYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclJlYWxNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclN5bXBsZWN0aWNNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdWxhclVuaXRhcnlNYXRyaXhEaXN0cmlidXRpb25cIixcbiAgXCJDaXJjdW1zcGhlcmVcIixcbiAgXCJDaXR5RGF0YVwiLFxuICBcIkNsYXNzaWZpZXJGdW5jdGlvblwiLFxuICBcIkNsYXNzaWZpZXJJbmZvcm1hdGlvblwiLFxuICBcIkNsYXNzaWZpZXJNZWFzdXJlbWVudHNcIixcbiAgXCJDbGFzc2lmaWVyTWVhc3VyZW1lbnRzT2JqZWN0XCIsXG4gIFwiQ2xhc3NpZnlcIixcbiAgXCJDbGFzc1ByaW9yc1wiLFxuICBcIkNsZWFyXCIsXG4gIFwiQ2xlYXJBbGxcIixcbiAgXCJDbGVhckF0dHJpYnV0ZXNcIixcbiAgXCJDbGVhckNvb2tpZXNcIixcbiAgXCJDbGVhclBlcm1pc3Npb25zXCIsXG4gIFwiQ2xlYXJTeXN0ZW1DYWNoZVwiLFxuICBcIkNsZWJzY2hHb3JkYW5cIixcbiAgXCJDbGlja1BhbmVcIixcbiAgXCJDbGlja1RvQ29weVwiLFxuICBcIkNsaWNrVG9Db3B5RW5hYmxlZFwiLFxuICBcIkNsaXBcIixcbiAgXCJDbGlwYm9hcmROb3RlYm9va1wiLFxuICBcIkNsaXBGaWxsXCIsXG4gIFwiQ2xpcHBpbmdTdHlsZVwiLFxuICBcIkNsaXBQbGFuZXNcIixcbiAgXCJDbGlwUGxhbmVzU3R5bGVcIixcbiAgXCJDbGlwUmFuZ2VcIixcbiAgXCJDbG9ja1wiLFxuICBcIkNsb2NrR2F1Z2VcIixcbiAgXCJDbG9ja3dpc2VDb250b3VySW50ZWdyYWxcIixcbiAgXCJDbG9zZVwiLFxuICBcIkNsb3NlZFwiLFxuICBcIkNsb3NlS2VybmVsc1wiLFxuICBcIkNsb3NlbmVzc0NlbnRyYWxpdHlcIixcbiAgXCJDbG9zaW5nXCIsXG4gIFwiQ2xvc2luZ0F1dG9TYXZlXCIsXG4gIFwiQ2xvc2luZ0V2ZW50XCIsXG4gIFwiQ2xvdWRBY2NvdW50RGF0YVwiLFxuICBcIkNsb3VkQmFzZVwiLFxuICBcIkNsb3VkQ29ubmVjdFwiLFxuICBcIkNsb3VkQ29ubmVjdGlvbnNcIixcbiAgXCJDbG91ZERlcGxveVwiLFxuICBcIkNsb3VkRGlyZWN0b3J5XCIsXG4gIFwiQ2xvdWREaXNjb25uZWN0XCIsXG4gIFwiQ2xvdWRFdmFsdWF0ZVwiLFxuICBcIkNsb3VkRXhwb3J0XCIsXG4gIFwiQ2xvdWRFeHByZXNzaW9uXCIsXG4gIFwiQ2xvdWRFeHByZXNzaW9uc1wiLFxuICBcIkNsb3VkRnVuY3Rpb25cIixcbiAgXCJDbG91ZEdldFwiLFxuICBcIkNsb3VkSW1wb3J0XCIsXG4gIFwiQ2xvdWRMb2dnaW5nRGF0YVwiLFxuICBcIkNsb3VkT2JqZWN0XCIsXG4gIFwiQ2xvdWRPYmplY3RJbmZvcm1hdGlvblwiLFxuICBcIkNsb3VkT2JqZWN0SW5mb3JtYXRpb25EYXRhXCIsXG4gIFwiQ2xvdWRPYmplY3ROYW1lRm9ybWF0XCIsXG4gIFwiQ2xvdWRPYmplY3RzXCIsXG4gIFwiQ2xvdWRPYmplY3RVUkxUeXBlXCIsXG4gIFwiQ2xvdWRQdWJsaXNoXCIsXG4gIFwiQ2xvdWRQdXRcIixcbiAgXCJDbG91ZFJlbmRlcmluZ01ldGhvZFwiLFxuICBcIkNsb3VkU2F2ZVwiLFxuICBcIkNsb3VkU2hhcmVcIixcbiAgXCJDbG91ZFN1Ym1pdFwiLFxuICBcIkNsb3VkU3ltYm9sXCIsXG4gIFwiQ2xvdWRVbnNoYXJlXCIsXG4gIFwiQ2xvdWRVc2VySURcIixcbiAgXCJDbHVzdGVyQ2xhc3NpZnlcIixcbiAgXCJDbHVzdGVyRGlzc2ltaWxhcml0eUZ1bmN0aW9uXCIsXG4gIFwiQ2x1c3RlcmluZ0NvbXBvbmVudHNcIixcbiAgXCJDbHVzdGVyaW5nTWVhc3VyZW1lbnRzXCIsXG4gIFwiQ2x1c3RlcmluZ1RyZWVcIixcbiAgXCJDTVlLQ29sb3JcIixcbiAgXCJDb2Fyc2VcIixcbiAgXCJDb2RlQXNzaXN0T3B0aW9uc1wiLFxuICBcIkNvZWZmaWNpZW50XCIsXG4gIFwiQ29lZmZpY2llbnRBcnJheXNcIixcbiAgXCJDb2VmZmljaWVudERvbWFpblwiLFxuICBcIkNvZWZmaWNpZW50TGlzdFwiLFxuICBcIkNvZWZmaWNpZW50UnVsZXNcIixcbiAgXCJDb2lmbGV0V2F2ZWxldFwiLFxuICBcIkNvbGxlY3RcIixcbiAgXCJDb2xsaW5lYXJQb2ludHNcIixcbiAgXCJDb2xvblwiLFxuICBcIkNvbG9uRm9ybVwiLFxuICBcIkNvbG9yQmFsYW5jZVwiLFxuICBcIkNvbG9yQ29tYmluZVwiLFxuICBcIkNvbG9yQ29udmVydFwiLFxuICBcIkNvbG9yQ292ZXJhZ2VcIixcbiAgXCJDb2xvckRhdGFcIixcbiAgXCJDb2xvckRhdGFGdW5jdGlvblwiLFxuICBcIkNvbG9yRGV0ZWN0XCIsXG4gIFwiQ29sb3JEaXN0YW5jZVwiLFxuICBcIkNvbG9yRnVuY3Rpb25cIixcbiAgXCJDb2xvckZ1bmN0aW9uQmlubmluZ1wiLFxuICBcIkNvbG9yRnVuY3Rpb25TY2FsaW5nXCIsXG4gIFwiQ29sb3JpemVcIixcbiAgXCJDb2xvck5lZ2F0ZVwiLFxuICBcIkNvbG9yT3V0cHV0XCIsXG4gIFwiQ29sb3JQcm9maWxlRGF0YVwiLFxuICBcIkNvbG9yUVwiLFxuICBcIkNvbG9yUXVhbnRpemVcIixcbiAgXCJDb2xvclJlcGxhY2VcIixcbiAgXCJDb2xvclJ1bGVzXCIsXG4gIFwiQ29sb3JTZWxlY3RvclNldHRpbmdzXCIsXG4gIFwiQ29sb3JTZXBhcmF0ZVwiLFxuICBcIkNvbG9yU2V0dGVyXCIsXG4gIFwiQ29sb3JTZXR0ZXJCb3hcIixcbiAgXCJDb2xvclNldHRlckJveE9wdGlvbnNcIixcbiAgXCJDb2xvclNsaWRlclwiLFxuICBcIkNvbG9yc05lYXJcIixcbiAgXCJDb2xvclNwYWNlXCIsXG4gIFwiQ29sb3JUb25lTWFwcGluZ1wiLFxuICBcIkNvbHVtblwiLFxuICBcIkNvbHVtbkFsaWdubWVudHNcIixcbiAgXCJDb2x1bW5CYWNrZ3JvdW5kc1wiLFxuICBcIkNvbHVtbkZvcm1cIixcbiAgXCJDb2x1bW5MaW5lc1wiLFxuICBcIkNvbHVtbnNFcXVhbFwiLFxuICBcIkNvbHVtblNwYWNpbmdzXCIsXG4gIFwiQ29sdW1uV2lkdGhzXCIsXG4gIFwiQ29tYmluYXRvckJcIixcbiAgXCJDb21iaW5hdG9yQ1wiLFxuICBcIkNvbWJpbmF0b3JJXCIsXG4gIFwiQ29tYmluYXRvcktcIixcbiAgXCJDb21iaW5hdG9yU1wiLFxuICBcIkNvbWJpbmF0b3JXXCIsXG4gIFwiQ29tYmluYXRvcllcIixcbiAgXCJDb21iaW5lZEVudGl0eUNsYXNzXCIsXG4gIFwiQ29tYmluZXJGdW5jdGlvblwiLFxuICBcIkNvbWV0RGF0YVwiLFxuICBcIkNvbW1vbkRlZmF1bHRGb3JtYXRUeXBlc1wiLFxuICBcIkNvbW1vbmVzdFwiLFxuICBcIkNvbW1vbmVzdEZpbHRlclwiLFxuICBcIkNvbW1vbk5hbWVcIixcbiAgXCJDb21tb25Vbml0c1wiLFxuICBcIkNvbW11bml0eUJvdW5kYXJ5U3R5bGVcIixcbiAgXCJDb21tdW5pdHlHcmFwaFBsb3RcIixcbiAgXCJDb21tdW5pdHlMYWJlbHNcIixcbiAgXCJDb21tdW5pdHlSZWdpb25TdHlsZVwiLFxuICBcIkNvbXBhbnlEYXRhXCIsXG4gIFwiQ29tcGF0aWJsZVVuaXRRXCIsXG4gIFwiQ29tcGlsYXRpb25PcHRpb25zXCIsXG4gIFwiQ29tcGlsYXRpb25UYXJnZXRcIixcbiAgXCJDb21waWxlXCIsXG4gIFwiQ29tcGlsZWRcIixcbiAgXCJDb21waWxlZENvZGVGdW5jdGlvblwiLFxuICBcIkNvbXBpbGVkQ29tcG9uZW50XCIsXG4gIFwiQ29tcGlsZWRFeHByZXNzaW9uRGVjbGFyYXRpb25cIixcbiAgXCJDb21waWxlZEZ1bmN0aW9uXCIsXG4gIFwiQ29tcGlsZWRMYXllclwiLFxuICBcIkNvbXBpbGVyQ2FsbGJhY2tcIixcbiAgXCJDb21waWxlckVudmlyb25tZW50XCIsXG4gIFwiQ29tcGlsZXJFbnZpcm9ubWVudEFwcGVuZFwiLFxuICBcIkNvbXBpbGVyRW52aXJvbm1lbnRBcHBlbmRUb1wiLFxuICBcIkNvbXBpbGVyRW52aXJvbm1lbnRPYmplY3RcIixcbiAgXCJDb21waWxlck9wdGlvbnNcIixcbiAgXCJDb21wbGVtZW50XCIsXG4gIFwiQ29tcGxlbWVudGVkRW50aXR5Q2xhc3NcIixcbiAgXCJDb21wbGV0ZUdyYXBoXCIsXG4gIFwiQ29tcGxldGVHcmFwaFFcIixcbiAgXCJDb21wbGV0ZUludGVncmFsXCIsXG4gIFwiQ29tcGxldGVLYXJ5VHJlZVwiLFxuICBcIkNvbXBsZXRpb25zTGlzdFBhY2tldFwiLFxuICBcIkNvbXBsZXhcIixcbiAgXCJDb21wbGV4QXJyYXlQbG90XCIsXG4gIFwiQ29tcGxleENvbnRvdXJQbG90XCIsXG4gIFwiQ29tcGxleGVzXCIsXG4gIFwiQ29tcGxleEV4cGFuZFwiLFxuICBcIkNvbXBsZXhJbmZpbml0eVwiLFxuICBcIkNvbXBsZXhpdHlGdW5jdGlvblwiLFxuICBcIkNvbXBsZXhMaXN0UGxvdFwiLFxuICBcIkNvbXBsZXhQbG90XCIsXG4gIFwiQ29tcGxleFBsb3QzRFwiLFxuICBcIkNvbXBsZXhSZWdpb25QbG90XCIsXG4gIFwiQ29tcGxleFN0cmVhbVBsb3RcIixcbiAgXCJDb21wbGV4VmVjdG9yUGxvdFwiLFxuICBcIkNvbXBvbmVudE1lYXN1cmVtZW50c1wiLFxuICBcIkNvbXBvbmVudHdpc2VDb250ZXh0TWVudVwiLFxuICBcIkNvbXBvc2VcIixcbiAgXCJDb21wb3NlTGlzdFwiLFxuICBcIkNvbXBvc2VTZXJpZXNcIixcbiAgXCJDb21wb3NpdGVRXCIsXG4gIFwiQ29tcG9zaXRpb25cIixcbiAgXCJDb21wb3VuZEVsZW1lbnRcIixcbiAgXCJDb21wb3VuZEV4cHJlc3Npb25cIixcbiAgXCJDb21wb3VuZFBvaXNzb25EaXN0cmlidXRpb25cIixcbiAgXCJDb21wb3VuZFBvaXNzb25Qcm9jZXNzXCIsXG4gIFwiQ29tcG91bmRSZW5ld2FsUHJvY2Vzc1wiLFxuICBcIkNvbXByZXNzXCIsXG4gIFwiQ29tcHJlc3NlZERhdGFcIixcbiAgXCJDb21wcmVzc2lvbkxldmVsXCIsXG4gIFwiQ29tcHV0ZVVuY2VydGFpbnR5XCIsXG4gIFwiQ29uY2F2ZUh1bGxNZXNoXCIsXG4gIFwiQ29uZGl0aW9uXCIsXG4gIFwiQ29uZGl0aW9uYWxFeHByZXNzaW9uXCIsXG4gIFwiQ29uZGl0aW9uZWRcIixcbiAgXCJDb25lXCIsXG4gIFwiQ29uZUJveFwiLFxuICBcIkNvbmZpZGVuY2VMZXZlbFwiLFxuICBcIkNvbmZpZGVuY2VSYW5nZVwiLFxuICBcIkNvbmZpZGVuY2VUcmFuc2Zvcm1cIixcbiAgXCJDb25maWd1cmF0aW9uUGF0aFwiLFxuICBcIkNvbmZpcm1cIixcbiAgXCJDb25maXJtQXNzZXJ0XCIsXG4gIFwiQ29uZmlybUJ5XCIsXG4gIFwiQ29uZmlybU1hdGNoXCIsXG4gIFwiQ29uZmlybVF1aWV0XCIsXG4gIFwiQ29uZm9ybWF0aW9uTWV0aG9kXCIsXG4gIFwiQ29uZm9ybUF1ZGlvXCIsXG4gIFwiQ29uZm9ybUltYWdlc1wiLFxuICBcIkNvbmdydWVudFwiLFxuICBcIkNvbmljR3JhZGllbnRGaWxsaW5nXCIsXG4gIFwiQ29uaWNIdWxsUmVnaW9uXCIsXG4gIFwiQ29uaWNIdWxsUmVnaW9uM0RCb3hcIixcbiAgXCJDb25pY0h1bGxSZWdpb24zREJveE9wdGlvbnNcIixcbiAgXCJDb25pY0h1bGxSZWdpb25Cb3hcIixcbiAgXCJDb25pY0h1bGxSZWdpb25Cb3hPcHRpb25zXCIsXG4gIFwiQ29uaWNPcHRpbWl6YXRpb25cIixcbiAgXCJDb25qdWdhdGVcIixcbiAgXCJDb25qdWdhdGVUcmFuc3Bvc2VcIixcbiAgXCJDb25qdW5jdGlvblwiLFxuICBcIkNvbm5lY3RcIixcbiAgXCJDb25uZWN0ZWRDb21wb25lbnRzXCIsXG4gIFwiQ29ubmVjdGVkR3JhcGhDb21wb25lbnRzXCIsXG4gIFwiQ29ubmVjdGVkR3JhcGhRXCIsXG4gIFwiQ29ubmVjdGVkTWVzaENvbXBvbmVudHNcIixcbiAgXCJDb25uZWN0ZWRNb2xlY3VsZUNvbXBvbmVudHNcIixcbiAgXCJDb25uZWN0ZWRNb2xlY3VsZVFcIixcbiAgXCJDb25uZWN0aW9uU2V0dGluZ3NcIixcbiAgXCJDb25uZWN0TGlicmFyeUNhbGxiYWNrRnVuY3Rpb25cIixcbiAgXCJDb25uZWN0U3lzdGVtTW9kZWxDb21wb25lbnRzXCIsXG4gIFwiQ29ubmVjdFN5c3RlbU1vZGVsQ29udHJvbGxlclwiLFxuICBcIkNvbm5lc1dpbmRvd1wiLFxuICBcIkNvbm92ZXJUZXN0XCIsXG4gIFwiQ29uc2VydmF0aXZlQ29udmVjdGlvblBERVRlcm1cIixcbiAgXCJDb25zb2xlTWVzc2FnZVwiLFxuICBcIkNvbnN0YW50XCIsXG4gIFwiQ29uc3RhbnRBcnJheVwiLFxuICBcIkNvbnN0YW50QXJyYXlMYXllclwiLFxuICBcIkNvbnN0YW50SW1hZ2VcIixcbiAgXCJDb25zdGFudFBsdXNMYXllclwiLFxuICBcIkNvbnN0YW50UmVnaW9uUVwiLFxuICBcIkNvbnN0YW50c1wiLFxuICBcIkNvbnN0YW50VGltZXNMYXllclwiLFxuICBcIkNvbnN0ZWxsYXRpb25EYXRhXCIsXG4gIFwiQ29uc3RyYWluZWRNYXhcIixcbiAgXCJDb25zdHJhaW5lZE1pblwiLFxuICBcIkNvbnN0cnVjdFwiLFxuICBcIkNvbnRhaW5pbmdcIixcbiAgXCJDb250YWluc0FsbFwiLFxuICBcIkNvbnRhaW5zQW55XCIsXG4gIFwiQ29udGFpbnNFeGFjdGx5XCIsXG4gIFwiQ29udGFpbnNOb25lXCIsXG4gIFwiQ29udGFpbnNPbmx5XCIsXG4gIFwiQ29udGVudERldGVjdG9yRnVuY3Rpb25cIixcbiAgXCJDb250ZW50RmllbGRPcHRpb25zXCIsXG4gIFwiQ29udGVudExvY2F0aW9uRnVuY3Rpb25cIixcbiAgXCJDb250ZW50T2JqZWN0XCIsXG4gIFwiQ29udGVudFBhZGRpbmdcIixcbiAgXCJDb250ZW50c0JvdW5kaW5nQm94XCIsXG4gIFwiQ29udGVudFNlbGVjdGFibGVcIixcbiAgXCJDb250ZW50U2l6ZVwiLFxuICBcIkNvbnRleHRcIixcbiAgXCJDb250ZXh0TWVudVwiLFxuICBcIkNvbnRleHRzXCIsXG4gIFwiQ29udGV4dFRvRmlsZU5hbWVcIixcbiAgXCJDb250aW51YXRpb25cIixcbiAgXCJDb250aW51ZVwiLFxuICBcIkNvbnRpbnVlZEZyYWN0aW9uXCIsXG4gIFwiQ29udGludWVkRnJhY3Rpb25LXCIsXG4gIFwiQ29udGludW91c0FjdGlvblwiLFxuICBcIkNvbnRpbnVvdXNNYXJrb3ZQcm9jZXNzXCIsXG4gIFwiQ29udGludW91c1Rhc2tcIixcbiAgXCJDb250aW51b3VzVGltZU1vZGVsUVwiLFxuICBcIkNvbnRpbnVvdXNXYXZlbGV0RGF0YVwiLFxuICBcIkNvbnRpbnVvdXNXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiQ29udG91ckRldGVjdFwiLFxuICBcIkNvbnRvdXJHcmFwaGljc1wiLFxuICBcIkNvbnRvdXJJbnRlZ3JhbFwiLFxuICBcIkNvbnRvdXJMYWJlbHNcIixcbiAgXCJDb250b3VyTGluZXNcIixcbiAgXCJDb250b3VyUGxvdFwiLFxuICBcIkNvbnRvdXJQbG90M0RcIixcbiAgXCJDb250b3Vyc1wiLFxuICBcIkNvbnRvdXJTaGFkaW5nXCIsXG4gIFwiQ29udG91clNtb290aGluZ1wiLFxuICBcIkNvbnRvdXJTdHlsZVwiLFxuICBcIkNvbnRyYWhhcm1vbmljTWVhblwiLFxuICBcIkNvbnRyYXN0aXZlTG9zc0xheWVyXCIsXG4gIFwiQ29udHJvbFwiLFxuICBcIkNvbnRyb2xBY3RpdmVcIixcbiAgXCJDb250cm9sQWxpZ25tZW50XCIsXG4gIFwiQ29udHJvbEdyb3VwQ29udGVudHNCb3hcIixcbiAgXCJDb250cm9sbGFiaWxpdHlHcmFtaWFuXCIsXG4gIFwiQ29udHJvbGxhYmlsaXR5TWF0cml4XCIsXG4gIFwiQ29udHJvbGxhYmxlRGVjb21wb3NpdGlvblwiLFxuICBcIkNvbnRyb2xsYWJsZU1vZGVsUVwiLFxuICBcIkNvbnRyb2xsZXJEdXJhdGlvblwiLFxuICBcIkNvbnRyb2xsZXJJbmZvcm1hdGlvblwiLFxuICBcIkNvbnRyb2xsZXJJbmZvcm1hdGlvbkRhdGFcIixcbiAgXCJDb250cm9sbGVyTGlua2luZ1wiLFxuICBcIkNvbnRyb2xsZXJNYW5pcHVsYXRlXCIsXG4gIFwiQ29udHJvbGxlck1ldGhvZFwiLFxuICBcIkNvbnRyb2xsZXJQYXRoXCIsXG4gIFwiQ29udHJvbGxlclN0YXRlXCIsXG4gIFwiQ29udHJvbFBsYWNlbWVudFwiLFxuICBcIkNvbnRyb2xzUmVuZGVyaW5nXCIsXG4gIFwiQ29udHJvbFR5cGVcIixcbiAgXCJDb252ZWN0aW9uUERFVGVybVwiLFxuICBcIkNvbnZlcmdlbnRzXCIsXG4gIFwiQ29udmVyc2lvbk9wdGlvbnNcIixcbiAgXCJDb252ZXJzaW9uUnVsZXNcIixcbiAgXCJDb252ZXJ0VG9Qb3N0U2NyaXB0XCIsXG4gIFwiQ29udmVydFRvUG9zdFNjcmlwdFBhY2tldFwiLFxuICBcIkNvbnZleEh1bGxNZXNoXCIsXG4gIFwiQ29udmV4SHVsbFJlZ2lvblwiLFxuICBcIkNvbnZleE9wdGltaXphdGlvblwiLFxuICBcIkNvbnZleFBvbHlnb25RXCIsXG4gIFwiQ29udmV4UG9seWhlZHJvblFcIixcbiAgXCJDb252ZXhSZWdpb25RXCIsXG4gIFwiQ29udm9sdXRpb25MYXllclwiLFxuICBcIkNvbnZvbHZlXCIsXG4gIFwiQ29ud2F5R3JvdXBDbzFcIixcbiAgXCJDb253YXlHcm91cENvMlwiLFxuICBcIkNvbndheUdyb3VwQ28zXCIsXG4gIFwiQ29va2llRnVuY3Rpb25cIixcbiAgXCJDb29raWVzXCIsXG4gIFwiQ29vcmRpbmF0ZUJvdW5kaW5nQm94XCIsXG4gIFwiQ29vcmRpbmF0ZUJvdW5kaW5nQm94QXJyYXlcIixcbiAgXCJDb29yZGluYXRlQm91bmRzXCIsXG4gIFwiQ29vcmRpbmF0ZUJvdW5kc0FycmF5XCIsXG4gIFwiQ29vcmRpbmF0ZUNoYXJ0RGF0YVwiLFxuICBcIkNvb3JkaW5hdGVzVG9vbE9wdGlvbnNcIixcbiAgXCJDb29yZGluYXRlVHJhbnNmb3JtXCIsXG4gIFwiQ29vcmRpbmF0ZVRyYW5zZm9ybURhdGFcIixcbiAgXCJDb3BsYW5hclBvaW50c1wiLFxuICBcIkNvcHJpbWVRXCIsXG4gIFwiQ29wcm9kdWN0XCIsXG4gIFwiQ29wdWxhRGlzdHJpYnV0aW9uXCIsXG4gIFwiQ29weWFibGVcIixcbiAgXCJDb3B5RGF0YWJpblwiLFxuICBcIkNvcHlEaXJlY3RvcnlcIixcbiAgXCJDb3B5RmlsZVwiLFxuICBcIkNvcHlGdW5jdGlvblwiLFxuICBcIkNvcHlUYWdcIixcbiAgXCJDb3B5VG9DbGlwYm9hcmRcIixcbiAgXCJDb3JlTmlscG90ZW50RGVjb21wb3NpdGlvblwiLFxuICBcIkNvcm5lckZpbHRlclwiLFxuICBcIkNvcm5lck5laWdoYm9yc1wiLFxuICBcIkNvcnJlbGF0aW9uXCIsXG4gIFwiQ29ycmVsYXRpb25EaXN0YW5jZVwiLFxuICBcIkNvcnJlbGF0aW9uRnVuY3Rpb25cIixcbiAgXCJDb3JyZWxhdGlvblRlc3RcIixcbiAgXCJDb3NcIixcbiAgXCJDb3NoXCIsXG4gIFwiQ29zaEludGVncmFsXCIsXG4gIFwiQ29zaW5lRGlzdGFuY2VcIixcbiAgXCJDb3NpbmVXaW5kb3dcIixcbiAgXCJDb3NJbnRlZ3JhbFwiLFxuICBcIkNvdFwiLFxuICBcIkNvdGhcIixcbiAgXCJDb3Vsb21iRlwiLFxuICBcIkNvdWxvbWJHXCIsXG4gIFwiQ291bG9tYkgxXCIsXG4gIFwiQ291bG9tYkgyXCIsXG4gIFwiQ291bnRcIixcbiAgXCJDb3VudERpc3RpbmN0XCIsXG4gIFwiQ291bnREaXN0aW5jdEJ5XCIsXG4gIFwiQ291bnRlckFzc2lnbm1lbnRzXCIsXG4gIFwiQ291bnRlckJveFwiLFxuICBcIkNvdW50ZXJCb3hPcHRpb25zXCIsXG4gIFwiQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbFwiLFxuICBcIkNvdW50ZXJFdmFsdWF0b3JcIixcbiAgXCJDb3VudGVyRnVuY3Rpb25cIixcbiAgXCJDb3VudGVySW5jcmVtZW50c1wiLFxuICBcIkNvdW50ZXJTdHlsZVwiLFxuICBcIkNvdW50ZXJTdHlsZU1lbnVMaXN0aW5nXCIsXG4gIFwiQ291bnRSb290c1wiLFxuICBcIkNvdW50cnlEYXRhXCIsXG4gIFwiQ291bnRzXCIsXG4gIFwiQ291bnRzQnlcIixcbiAgXCJDb3ZhcmlhbmNlXCIsXG4gIFwiQ292YXJpYW5jZUVzdGltYXRvckZ1bmN0aW9uXCIsXG4gIFwiQ292YXJpYW5jZUZ1bmN0aW9uXCIsXG4gIFwiQ294aWFuRGlzdHJpYnV0aW9uXCIsXG4gIFwiQ294SW5nZXJzb2xsUm9zc1Byb2Nlc3NcIixcbiAgXCJDb3hNb2RlbFwiLFxuICBcIkNveE1vZGVsRml0XCIsXG4gIFwiQ3JhbWVyVm9uTWlzZXNUZXN0XCIsXG4gIFwiQ3JlYXRlQXJjaGl2ZVwiLFxuICBcIkNyZWF0ZUNlbGxJRFwiLFxuICBcIkNyZWF0ZUNoYW5uZWxcIixcbiAgXCJDcmVhdGVDbG91ZEV4cHJlc3Npb25cIixcbiAgXCJDcmVhdGVDb21waWxlckVudmlyb25tZW50XCIsXG4gIFwiQ3JlYXRlRGF0YWJpblwiLFxuICBcIkNyZWF0ZURhdGFTdHJ1Y3R1cmVcIixcbiAgXCJDcmVhdGVEYXRhU3lzdGVtTW9kZWxcIixcbiAgXCJDcmVhdGVEaWFsb2dcIixcbiAgXCJDcmVhdGVEaXJlY3RvcnlcIixcbiAgXCJDcmVhdGVEb2N1bWVudFwiLFxuICBcIkNyZWF0ZUZpbGVcIixcbiAgXCJDcmVhdGVJbnRlcm1lZGlhdGVEaXJlY3Rvcmllc1wiLFxuICBcIkNyZWF0ZUxpY2Vuc2VFbnRpdGxlbWVudFwiLFxuICBcIkNyZWF0ZU1hbmFnZWRMaWJyYXJ5RXhwcmVzc2lvblwiLFxuICBcIkNyZWF0ZU5vdGVib29rXCIsXG4gIFwiQ3JlYXRlUGFjbGV0QXJjaGl2ZVwiLFxuICBcIkNyZWF0ZVBhbGV0dGVcIixcbiAgXCJDcmVhdGVQZXJtaXNzaW9uc0dyb3VwXCIsXG4gIFwiQ3JlYXRlU2NoZWR1bGVkVGFza1wiLFxuICBcIkNyZWF0ZVNlYXJjaEluZGV4XCIsXG4gIFwiQ3JlYXRlU3lzdGVtTW9kZWxcIixcbiAgXCJDcmVhdGVUZW1wb3JhcnlcIixcbiAgXCJDcmVhdGVUeXBlSW5zdGFuY2VcIixcbiAgXCJDcmVhdGVVVUlEXCIsXG4gIFwiQ3JlYXRlV2luZG93XCIsXG4gIFwiQ3JpdGVyaW9uRnVuY3Rpb25cIixcbiAgXCJDcml0aWNhbGl0eUZhaWx1cmVJbXBvcnRhbmNlXCIsXG4gIFwiQ3JpdGljYWxpdHlTdWNjZXNzSW1wb3J0YW5jZVwiLFxuICBcIkNyaXRpY2FsU2VjdGlvblwiLFxuICBcIkNyb3NzXCIsXG4gIFwiQ3Jvc3NFbnRyb3B5TG9zc0xheWVyXCIsXG4gIFwiQ3Jvc3NpbmdDb3VudFwiLFxuICBcIkNyb3NzaW5nRGV0ZWN0XCIsXG4gIFwiQ3Jvc3NpbmdQb2x5Z29uXCIsXG4gIFwiQ3Jvc3NNYXRyaXhcIixcbiAgXCJDc2NcIixcbiAgXCJDc2NoXCIsXG4gIFwiQ1NHUmVnaW9uXCIsXG4gIFwiQ1NHUmVnaW9uUVwiLFxuICBcIkNTR1JlZ2lvblRyZWVcIixcbiAgXCJDVENMb3NzTGF5ZXJcIixcbiAgXCJDdWJlXCIsXG4gIFwiQ3ViZVJvb3RcIixcbiAgXCJDdWJpY3NcIixcbiAgXCJDdWJvaWRcIixcbiAgXCJDdWJvaWRCb3hcIixcbiAgXCJDdWJvaWRCb3hPcHRpb25zXCIsXG4gIFwiQ3VtdWxhbnRcIixcbiAgXCJDdW11bGFudEdlbmVyYXRpbmdGdW5jdGlvblwiLFxuICBcIkN1bXVsYXRpdmVGZWF0dXJlSW1wYWN0UGxvdFwiLFxuICBcIkN1cFwiLFxuICBcIkN1cENhcFwiLFxuICBcIkN1cmxcIixcbiAgXCJDdXJseURvdWJsZVF1b3RlXCIsXG4gIFwiQ3VybHlRdW90ZVwiLFxuICBcIkN1cnJlbmN5Q29udmVydFwiLFxuICBcIkN1cnJlbnREYXRlXCIsXG4gIFwiQ3VycmVudEltYWdlXCIsXG4gIFwiQ3VycmVudE5vdGVib29rSW1hZ2VcIixcbiAgXCJDdXJyZW50U2NyZWVuSW1hZ2VcIixcbiAgXCJDdXJyZW50VmFsdWVcIixcbiAgXCJDdXJyeVwiLFxuICBcIkN1cnJ5QXBwbGllZFwiLFxuICBcIkN1cnZhdHVyZUZsb3dGaWx0ZXJcIixcbiAgXCJDdXJ2ZUNsb3NlZFwiLFxuICBcIkN5YW5cIixcbiAgXCJDeWNsZUdyYXBoXCIsXG4gIFwiQ3ljbGVJbmRleFBvbHlub21pYWxcIixcbiAgXCJDeWNsZXNcIixcbiAgXCJDeWNsaWNHcm91cFwiLFxuICBcIkN5Y2xvdG9taWNcIixcbiAgXCJDeWxpbmRlclwiLFxuICBcIkN5bGluZGVyQm94XCIsXG4gIFwiQ3lsaW5kZXJCb3hPcHRpb25zXCIsXG4gIFwiQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uXCIsXG4gIFwiQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uRnVuY3Rpb25cIixcbiAgXCJEXCIsXG4gIFwiRGFndW1EaXN0cmlidXRpb25cIixcbiAgXCJEYW1EYXRhXCIsXG4gIFwiRGFtZXJhdUxldmVuc2h0ZWluRGlzdGFuY2VcIixcbiAgXCJEYW1waW5nRmFjdG9yXCIsXG4gIFwiRGFya2VyXCIsXG4gIFwiRGFzaGVkXCIsXG4gIFwiRGFzaGluZ1wiLFxuICBcIkRhdGFiYXNlQ29ubmVjdFwiLFxuICBcIkRhdGFiYXNlRGlzY29ubmVjdFwiLFxuICBcIkRhdGFiYXNlUmVmZXJlbmNlXCIsXG4gIFwiRGF0YWJpblwiLFxuICBcIkRhdGFiaW5BZGRcIixcbiAgXCJEYXRhYmluUmVtb3ZlXCIsXG4gIFwiRGF0YWJpbnNcIixcbiAgXCJEYXRhYmluU3VibWl0XCIsXG4gIFwiRGF0YWJpblVwbG9hZFwiLFxuICBcIkRhdGFDb21wcmVzc2lvblwiLFxuICBcIkRhdGFEaXN0cmlidXRpb25cIixcbiAgXCJEYXRhUmFuZ2VcIixcbiAgXCJEYXRhUmV2ZXJzZWRcIixcbiAgXCJEYXRhc2V0XCIsXG4gIFwiRGF0YXNldERpc3BsYXlQYW5lbFwiLFxuICBcIkRhdGFzZXRUaGVtZVwiLFxuICBcIkRhdGFTdHJ1Y3R1cmVcIixcbiAgXCJEYXRhU3RydWN0dXJlUVwiLFxuICBcIkRhdGVcIixcbiAgXCJEYXRlQm91bmRzXCIsXG4gIFwiRGF0ZWRcIixcbiAgXCJEYXRlRGVsaW1pdGVyc1wiLFxuICBcIkRhdGVEaWZmZXJlbmNlXCIsXG4gIFwiRGF0ZWRVbml0XCIsXG4gIFwiRGF0ZUZvcm1hdFwiLFxuICBcIkRhdGVGdW5jdGlvblwiLFxuICBcIkRhdGVHcmFudWxhcml0eVwiLFxuICBcIkRhdGVIaXN0b2dyYW1cIixcbiAgXCJEYXRlSW50ZXJ2YWxcIixcbiAgXCJEYXRlTGlzdFwiLFxuICBcIkRhdGVMaXN0TG9nUGxvdFwiLFxuICBcIkRhdGVMaXN0UGxvdFwiLFxuICBcIkRhdGVMaXN0U3RlcFBsb3RcIixcbiAgXCJEYXRlT2JqZWN0XCIsXG4gIFwiRGF0ZU9iamVjdFFcIixcbiAgXCJEYXRlT3ZlcmxhcHNRXCIsXG4gIFwiRGF0ZVBhdHRlcm5cIixcbiAgXCJEYXRlUGx1c1wiLFxuICBcIkRhdGVSYW5nZVwiLFxuICBcIkRhdGVSZWR1Y3Rpb25cIixcbiAgXCJEYXRlU2NhbGVcIixcbiAgXCJEYXRlU2VsZWN0XCIsXG4gIFwiRGF0ZVN0cmluZ1wiLFxuICBcIkRhdGVUaWNrc0Zvcm1hdFwiLFxuICBcIkRhdGVWYWx1ZVwiLFxuICBcIkRhdGVXaXRoaW5RXCIsXG4gIFwiRGF1YmVjaGllc1dhdmVsZXRcIixcbiAgXCJEYXZpc0Rpc3RyaWJ1dGlvblwiLFxuICBcIkRhd3NvbkZcIixcbiAgXCJEYXlDb3VudFwiLFxuICBcIkRheUNvdW50Q29udmVudGlvblwiLFxuICBcIkRheUhlbWlzcGhlcmVcIixcbiAgXCJEYXlsaWdodFFcIixcbiAgXCJEYXlNYXRjaFFcIixcbiAgXCJEYXlOYW1lXCIsXG4gIFwiRGF5TmlnaHRUZXJtaW5hdG9yXCIsXG4gIFwiRGF5UGx1c1wiLFxuICBcIkRheVJhbmdlXCIsXG4gIFwiRGF5Um91bmRcIixcbiAgXCJEZUJydWlqbkdyYXBoXCIsXG4gIFwiRGVCcnVpam5TZXF1ZW5jZVwiLFxuICBcIkRlYnVnXCIsXG4gIFwiRGVidWdUYWdcIixcbiAgXCJEZWNhcGl0YWxpemVcIixcbiAgXCJEZWNpbWFsXCIsXG4gIFwiRGVjaW1hbEZvcm1cIixcbiAgXCJEZWNsYXJlQ29tcGlsZWRDb21wb25lbnRcIixcbiAgXCJEZWNsYXJlS25vd25TeW1ib2xzXCIsXG4gIFwiRGVjbGFyZVBhY2thZ2VcIixcbiAgXCJEZWNvbXBvc2VcIixcbiAgXCJEZWNvbnZvbHV0aW9uTGF5ZXJcIixcbiAgXCJEZWNyZW1lbnRcIixcbiAgXCJEZWNyeXB0XCIsXG4gIFwiRGVjcnlwdEZpbGVcIixcbiAgXCJEZWRla2luZEV0YVwiLFxuICBcIkRlZXBTcGFjZVByb2JlRGF0YVwiLFxuICBcIkRlZmF1bHRcIixcbiAgXCJEZWZhdWx0MkRUb29sXCIsXG4gIFwiRGVmYXVsdDNEVG9vbFwiLFxuICBcIkRlZmF1bHRBdHRhY2hlZENlbGxTdHlsZVwiLFxuICBcIkRlZmF1bHRBeGVzU3R5bGVcIixcbiAgXCJEZWZhdWx0QmFzZVN0eWxlXCIsXG4gIFwiRGVmYXVsdEJveFN0eWxlXCIsXG4gIFwiRGVmYXVsdEJ1dHRvblwiLFxuICBcIkRlZmF1bHRDb2xvclwiLFxuICBcIkRlZmF1bHRDb250cm9sUGxhY2VtZW50XCIsXG4gIFwiRGVmYXVsdERvY2tlZENlbGxTdHlsZVwiLFxuICBcIkRlZmF1bHREdXBsaWNhdGVDZWxsU3R5bGVcIixcbiAgXCJEZWZhdWx0RHVyYXRpb25cIixcbiAgXCJEZWZhdWx0RWxlbWVudFwiLFxuICBcIkRlZmF1bHRGYWNlR3JpZHNTdHlsZVwiLFxuICBcIkRlZmF1bHRGaWVsZEhpbnRTdHlsZVwiLFxuICBcIkRlZmF1bHRGb250XCIsXG4gIFwiRGVmYXVsdEZvbnRQcm9wZXJ0aWVzXCIsXG4gIFwiRGVmYXVsdEZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0RnJhbWVTdHlsZVwiLFxuICBcIkRlZmF1bHRGcmFtZVRpY2tzU3R5bGVcIixcbiAgXCJEZWZhdWx0R3JpZExpbmVzU3R5bGVcIixcbiAgXCJEZWZhdWx0SW5saW5lRm9ybWF0VHlwZVwiLFxuICBcIkRlZmF1bHRJbnB1dEZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0TGFiZWxTdHlsZVwiLFxuICBcIkRlZmF1bHRNZW51U3R5bGVcIixcbiAgXCJEZWZhdWx0TmF0dXJhbExhbmd1YWdlXCIsXG4gIFwiRGVmYXVsdE5ld0NlbGxTdHlsZVwiLFxuICBcIkRlZmF1bHROZXdJbmxpbmVDZWxsU3R5bGVcIixcbiAgXCJEZWZhdWx0Tm90ZWJvb2tcIixcbiAgXCJEZWZhdWx0T3B0aW9uc1wiLFxuICBcIkRlZmF1bHRPdXRwdXRGb3JtYXRUeXBlXCIsXG4gIFwiRGVmYXVsdFByaW50UHJlY2lzaW9uXCIsXG4gIFwiRGVmYXVsdFN0eWxlXCIsXG4gIFwiRGVmYXVsdFN0eWxlRGVmaW5pdGlvbnNcIixcbiAgXCJEZWZhdWx0VGV4dEZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0VGV4dElubGluZUZvcm1hdFR5cGVcIixcbiAgXCJEZWZhdWx0VGlja3NTdHlsZVwiLFxuICBcIkRlZmF1bHRUb29sdGlwU3R5bGVcIixcbiAgXCJEZWZhdWx0VmFsdWVcIixcbiAgXCJEZWZhdWx0VmFsdWVzXCIsXG4gIFwiRGVmZXJcIixcbiAgXCJEZWZpbmVFeHRlcm5hbFwiLFxuICBcIkRlZmluZUlucHV0U3RyZWFtTWV0aG9kXCIsXG4gIFwiRGVmaW5lT3V0cHV0U3RyZWFtTWV0aG9kXCIsXG4gIFwiRGVmaW5lUmVzb3VyY2VGdW5jdGlvblwiLFxuICBcIkRlZmluaXRpb25cIixcbiAgXCJEZWdyZWVcIixcbiAgXCJEZWdyZWVDZW50cmFsaXR5XCIsXG4gIFwiRGVncmVlR3JhcGhEaXN0cmlidXRpb25cIixcbiAgXCJEZWdyZWVMZXhpY29ncmFwaGljXCIsXG4gIFwiRGVncmVlUmV2ZXJzZUxleGljb2dyYXBoaWNcIixcbiAgXCJERWlnZW5zeXN0ZW1cIixcbiAgXCJERWlnZW52YWx1ZXNcIixcbiAgXCJEZWluaXRpYWxpemF0aW9uXCIsXG4gIFwiRGVsXCIsXG4gIFwiRGVsYXVuYXlNZXNoXCIsXG4gIFwiRGVsYXllZFwiLFxuICBcIkRlbGV0YWJsZVwiLFxuICBcIkRlbGV0ZVwiLFxuICBcIkRlbGV0ZUFkamFjZW50RHVwbGljYXRlc1wiLFxuICBcIkRlbGV0ZUFub21hbGllc1wiLFxuICBcIkRlbGV0ZUJvcmRlckNvbXBvbmVudHNcIixcbiAgXCJEZWxldGVDYXNlc1wiLFxuICBcIkRlbGV0ZUNoYW5uZWxcIixcbiAgXCJEZWxldGVDbG91ZEV4cHJlc3Npb25cIixcbiAgXCJEZWxldGVDb250ZW50c1wiLFxuICBcIkRlbGV0ZURpcmVjdG9yeVwiLFxuICBcIkRlbGV0ZUR1cGxpY2F0ZXNcIixcbiAgXCJEZWxldGVEdXBsaWNhdGVzQnlcIixcbiAgXCJEZWxldGVFbGVtZW50c1wiLFxuICBcIkRlbGV0ZUZpbGVcIixcbiAgXCJEZWxldGVNaXNzaW5nXCIsXG4gIFwiRGVsZXRlT2JqZWN0XCIsXG4gIFwiRGVsZXRlUGVybWlzc2lvbnNLZXlcIixcbiAgXCJEZWxldGVTZWFyY2hJbmRleFwiLFxuICBcIkRlbGV0ZVNtYWxsQ29tcG9uZW50c1wiLFxuICBcIkRlbGV0ZVN0b3B3b3Jkc1wiLFxuICBcIkRlbGV0ZVdpdGhDb250ZW50c1wiLFxuICBcIkRlbGV0aW9uV2FybmluZ1wiLFxuICBcIkRlbGltaXRlZEFycmF5XCIsXG4gIFwiRGVsaW1pdGVkU2VxdWVuY2VcIixcbiAgXCJEZWxpbWl0ZXJcIixcbiAgXCJEZWxpbWl0ZXJBdXRvTWF0Y2hpbmdcIixcbiAgXCJEZWxpbWl0ZXJGbGFzaFRpbWVcIixcbiAgXCJEZWxpbWl0ZXJNYXRjaGluZ1wiLFxuICBcIkRlbGltaXRlcnNcIixcbiAgXCJEZWxpdmVyeUZ1bmN0aW9uXCIsXG4gIFwiRGVuZHJvZ3JhbVwiLFxuICBcIkRlbm9taW5hdG9yXCIsXG4gIFwiRGVuc2l0eUdyYXBoaWNzXCIsXG4gIFwiRGVuc2l0eUhpc3RvZ3JhbVwiLFxuICBcIkRlbnNpdHlQbG90XCIsXG4gIFwiRGVuc2l0eVBsb3QzRFwiLFxuICBcIkRlcGVuZGVudFZhcmlhYmxlc1wiLFxuICBcIkRlcGxveVwiLFxuICBcIkRlcGxveWVkXCIsXG4gIFwiRGVwdGhcIixcbiAgXCJEZXB0aEZpcnN0U2NhblwiLFxuICBcIkRlcml2YXRpdmVcIixcbiAgXCJEZXJpdmF0aXZlRmlsdGVyXCIsXG4gIFwiRGVyaXZhdGl2ZVBERVRlcm1cIixcbiAgXCJEZXJpdmVkS2V5XCIsXG4gIFwiRGVzY3JpcHRvclN0YXRlU3BhY2VcIixcbiAgXCJEZXNpZ25NYXRyaXhcIixcbiAgXCJEZXN0cm95QWZ0ZXJFdmFsdWF0aW9uXCIsXG4gIFwiRGV0XCIsXG4gIFwiRGV2aWNlQ2xvc2VcIixcbiAgXCJEZXZpY2VDb25maWd1cmVcIixcbiAgXCJEZXZpY2VFeGVjdXRlXCIsXG4gIFwiRGV2aWNlRXhlY3V0ZUFzeW5jaHJvbm91c1wiLFxuICBcIkRldmljZU9iamVjdFwiLFxuICBcIkRldmljZU9wZW5cIixcbiAgXCJEZXZpY2VPcGVuUVwiLFxuICBcIkRldmljZVJlYWRcIixcbiAgXCJEZXZpY2VSZWFkQnVmZmVyXCIsXG4gIFwiRGV2aWNlUmVhZExhdGVzdFwiLFxuICBcIkRldmljZVJlYWRMaXN0XCIsXG4gIFwiRGV2aWNlUmVhZFRpbWVTZXJpZXNcIixcbiAgXCJEZXZpY2VzXCIsXG4gIFwiRGV2aWNlU3RyZWFtc1wiLFxuICBcIkRldmljZVdyaXRlXCIsXG4gIFwiRGV2aWNlV3JpdGVCdWZmZXJcIixcbiAgXCJER2F1c3NpYW5XYXZlbGV0XCIsXG4gIFwiRGlhY3JpdGljYWxQb3NpdGlvbmluZ1wiLFxuICBcIkRpYWdvbmFsXCIsXG4gIFwiRGlhZ29uYWxpemFibGVNYXRyaXhRXCIsXG4gIFwiRGlhZ29uYWxNYXRyaXhcIixcbiAgXCJEaWFnb25hbE1hdHJpeFFcIixcbiAgXCJEaWFsb2dcIixcbiAgXCJEaWFsb2dJbmRlbnRcIixcbiAgXCJEaWFsb2dJbnB1dFwiLFxuICBcIkRpYWxvZ0xldmVsXCIsXG4gIFwiRGlhbG9nTm90ZWJvb2tcIixcbiAgXCJEaWFsb2dQcm9sb2dcIixcbiAgXCJEaWFsb2dSZXR1cm5cIixcbiAgXCJEaWFsb2dTeW1ib2xzXCIsXG4gIFwiRGlhbW9uZFwiLFxuICBcIkRpYW1vbmRNYXRyaXhcIixcbiAgXCJEaWNlRGlzc2ltaWxhcml0eVwiLFxuICBcIkRpY3Rpb25hcnlMb29rdXBcIixcbiAgXCJEaWN0aW9uYXJ5V29yZFFcIixcbiAgXCJEaWZmZXJlbmNlRGVsdGFcIixcbiAgXCJEaWZmZXJlbmNlT3JkZXJcIixcbiAgXCJEaWZmZXJlbmNlUXVvdGllbnRcIixcbiAgXCJEaWZmZXJlbmNlUm9vdFwiLFxuICBcIkRpZmZlcmVuY2VSb290UmVkdWNlXCIsXG4gIFwiRGlmZmVyZW5jZXNcIixcbiAgXCJEaWZmZXJlbnRpYWxEXCIsXG4gIFwiRGlmZmVyZW50aWFsUm9vdFwiLFxuICBcIkRpZmZlcmVudGlhbFJvb3RSZWR1Y2VcIixcbiAgXCJEaWZmZXJlbnRpYXRvckZpbHRlclwiLFxuICBcIkRpZmZ1c2lvblBERVRlcm1cIixcbiAgXCJEaWdnbGVHYXRlc1BvaW50UHJvY2Vzc1wiLFxuICBcIkRpZ2dsZUdyYXR0b25Qb2ludFByb2Nlc3NcIixcbiAgXCJEaWdpdGFsU2lnbmF0dXJlXCIsXG4gIFwiRGlnaXRCbG9ja1wiLFxuICBcIkRpZ2l0QmxvY2tNaW5pbXVtXCIsXG4gIFwiRGlnaXRDaGFyYWN0ZXJcIixcbiAgXCJEaWdpdENvdW50XCIsXG4gIFwiRGlnaXRRXCIsXG4gIFwiRGloZWRyYWxBbmdsZVwiLFxuICBcIkRpaGVkcmFsR3JvdXBcIixcbiAgXCJEaWxhdGlvblwiLFxuICBcIkRpbWVuc2lvbmFsQ29tYmluYXRpb25zXCIsXG4gIFwiRGltZW5zaW9uYWxNZXNoQ29tcG9uZW50c1wiLFxuICBcIkRpbWVuc2lvblJlZHVjZVwiLFxuICBcIkRpbWVuc2lvblJlZHVjZXJGdW5jdGlvblwiLFxuICBcIkRpbWVuc2lvblJlZHVjdGlvblwiLFxuICBcIkRpbWVuc2lvbnNcIixcbiAgXCJEaXJhY0NvbWJcIixcbiAgXCJEaXJhY0RlbHRhXCIsXG4gIFwiRGlyZWN0ZWRFZGdlXCIsXG4gIFwiRGlyZWN0ZWRFZGdlc1wiLFxuICBcIkRpcmVjdGVkR3JhcGhcIixcbiAgXCJEaXJlY3RlZEdyYXBoUVwiLFxuICBcIkRpcmVjdGVkSW5maW5pdHlcIixcbiAgXCJEaXJlY3Rpb25cIixcbiAgXCJEaXJlY3Rpb25hbExpZ2h0XCIsXG4gIFwiRGlyZWN0aXZlXCIsXG4gIFwiRGlyZWN0b3J5XCIsXG4gIFwiRGlyZWN0b3J5TmFtZVwiLFxuICBcIkRpcmVjdG9yeVFcIixcbiAgXCJEaXJlY3RvcnlTdGFja1wiLFxuICBcIkRpcmljaGxldEJldGFcIixcbiAgXCJEaXJpY2hsZXRDaGFyYWN0ZXJcIixcbiAgXCJEaXJpY2hsZXRDb25kaXRpb25cIixcbiAgXCJEaXJpY2hsZXRDb252b2x2ZVwiLFxuICBcIkRpcmljaGxldERpc3RyaWJ1dGlvblwiLFxuICBcIkRpcmljaGxldEV0YVwiLFxuICBcIkRpcmljaGxldExcIixcbiAgXCJEaXJpY2hsZXRMYW1iZGFcIixcbiAgXCJEaXJpY2hsZXRUcmFuc2Zvcm1cIixcbiAgXCJEaXJpY2hsZXRXaW5kb3dcIixcbiAgXCJEaXNhYmxlQ29uc29sZVByaW50UGFja2V0XCIsXG4gIFwiRGlzYWJsZUZvcm1hdHRpbmdcIixcbiAgXCJEaXNjcmV0ZUFzeW1wdG90aWNcIixcbiAgXCJEaXNjcmV0ZUNoaXJwWlRyYW5zZm9ybVwiLFxuICBcIkRpc2NyZXRlQ29udm9sdmVcIixcbiAgXCJEaXNjcmV0ZURlbHRhXCIsXG4gIFwiRGlzY3JldGVIYWRhbWFyZFRyYW5zZm9ybVwiLFxuICBcIkRpc2NyZXRlSW5kaWNhdG9yXCIsXG4gIFwiRGlzY3JldGVJbnB1dE91dHB1dE1vZGVsXCIsXG4gIFwiRGlzY3JldGVMaW1pdFwiLFxuICBcIkRpc2NyZXRlTFFFc3RpbWF0b3JHYWluc1wiLFxuICBcIkRpc2NyZXRlTFFSZWd1bGF0b3JHYWluc1wiLFxuICBcIkRpc2NyZXRlTHlhcHVub3ZTb2x2ZVwiLFxuICBcIkRpc2NyZXRlTWFya292UHJvY2Vzc1wiLFxuICBcIkRpc2NyZXRlTWF4TGltaXRcIixcbiAgXCJEaXNjcmV0ZU1pbkxpbWl0XCIsXG4gIFwiRGlzY3JldGVQbG90XCIsXG4gIFwiRGlzY3JldGVQbG90M0RcIixcbiAgXCJEaXNjcmV0ZVJhdGlvXCIsXG4gIFwiRGlzY3JldGVSaWNjYXRpU29sdmVcIixcbiAgXCJEaXNjcmV0ZVNoaWZ0XCIsXG4gIFwiRGlzY3JldGVUaW1lTW9kZWxRXCIsXG4gIFwiRGlzY3JldGVVbmlmb3JtRGlzdHJpYnV0aW9uXCIsXG4gIFwiRGlzY3JldGVWYXJpYWJsZXNcIixcbiAgXCJEaXNjcmV0ZVdhdmVsZXREYXRhXCIsXG4gIFwiRGlzY3JldGVXYXZlbGV0UGFja2V0VHJhbnNmb3JtXCIsXG4gIFwiRGlzY3JldGVXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiRGlzY3JldGl6ZUdyYXBoaWNzXCIsXG4gIFwiRGlzY3JldGl6ZVJlZ2lvblwiLFxuICBcIkRpc2NyaW1pbmFudFwiLFxuICBcIkRpc2pvaW50UVwiLFxuICBcIkRpc2p1bmN0aW9uXCIsXG4gIFwiRGlza1wiLFxuICBcIkRpc2tCb3hcIixcbiAgXCJEaXNrQm94T3B0aW9uc1wiLFxuICBcIkRpc2tNYXRyaXhcIixcbiAgXCJEaXNrU2VnbWVudFwiLFxuICBcIkRpc3BhdGNoXCIsXG4gIFwiRGlzcGF0Y2hRXCIsXG4gIFwiRGlzcGVyc2lvbkVzdGltYXRvckZ1bmN0aW9uXCIsXG4gIFwiRGlzcGxheVwiLFxuICBcIkRpc3BsYXlBbGxTdGVwc1wiLFxuICBcIkRpc3BsYXlFbmRQYWNrZXRcIixcbiAgXCJEaXNwbGF5Rm9ybVwiLFxuICBcIkRpc3BsYXlGdW5jdGlvblwiLFxuICBcIkRpc3BsYXlQYWNrZXRcIixcbiAgXCJEaXNwbGF5UnVsZXNcIixcbiAgXCJEaXNwbGF5U3RyaW5nXCIsXG4gIFwiRGlzcGxheVRlbXBvcmFyeVwiLFxuICBcIkRpc3BsYXlXaXRoXCIsXG4gIFwiRGlzcGxheVdpdGhSZWZcIixcbiAgXCJEaXNwbGF5V2l0aFZhcmlhYmxlXCIsXG4gIFwiRGlzdGFuY2VGdW5jdGlvblwiLFxuICBcIkRpc3RhbmNlTWF0cml4XCIsXG4gIFwiRGlzdGFuY2VUcmFuc2Zvcm1cIixcbiAgXCJEaXN0cmlidXRlXCIsXG4gIFwiRGlzdHJpYnV0ZWRcIixcbiAgXCJEaXN0cmlidXRlZENvbnRleHRzXCIsXG4gIFwiRGlzdHJpYnV0ZURlZmluaXRpb25zXCIsXG4gIFwiRGlzdHJpYnV0aW9uQ2hhcnRcIixcbiAgXCJEaXN0cmlidXRpb25Eb21haW5cIixcbiAgXCJEaXN0cmlidXRpb25GaXRUZXN0XCIsXG4gIFwiRGlzdHJpYnV0aW9uUGFyYW1ldGVyQXNzdW1wdGlvbnNcIixcbiAgXCJEaXN0cmlidXRpb25QYXJhbWV0ZXJRXCIsXG4gIFwiRGl0aGVyaW5nXCIsXG4gIFwiRGl2XCIsXG4gIFwiRGl2ZXJnZW5jZVwiLFxuICBcIkRpdmlkZVwiLFxuICBcIkRpdmlkZUJ5XCIsXG4gIFwiRGl2aWRlcnNcIixcbiAgXCJEaXZpZGVTaWRlc1wiLFxuICBcIkRpdmlzaWJsZVwiLFxuICBcIkRpdmlzb3JzXCIsXG4gIFwiRGl2aXNvclNpZ21hXCIsXG4gIFwiRGl2aXNvclN1bVwiLFxuICBcIkRNU0xpc3RcIixcbiAgXCJETVNTdHJpbmdcIixcbiAgXCJEb1wiLFxuICBcIkRvY2tlZENlbGxcIixcbiAgXCJEb2NrZWRDZWxsc1wiLFxuICBcIkRvY3VtZW50R2VuZXJhdG9yXCIsXG4gIFwiRG9jdW1lbnRHZW5lcmF0b3JJbmZvcm1hdGlvblwiLFxuICBcIkRvY3VtZW50R2VuZXJhdG9ySW5mb3JtYXRpb25EYXRhXCIsXG4gIFwiRG9jdW1lbnRHZW5lcmF0b3JzXCIsXG4gIFwiRG9jdW1lbnROb3RlYm9va1wiLFxuICBcIkRvY3VtZW50V2VpZ2h0aW5nUnVsZXNcIixcbiAgXCJEb2RlY2FoZWRyb25cIixcbiAgXCJEb21haW5SZWdpc3RyYXRpb25JbmZvcm1hdGlvblwiLFxuICBcIkRvbWluYW50Q29sb3JzXCIsXG4gIFwiRG9taW5hdG9yVHJlZUdyYXBoXCIsXG4gIFwiRG9taW5hdG9yVmVydGV4TGlzdFwiLFxuICBcIkRPU1RleHRGb3JtYXRcIixcbiAgXCJEb3RcIixcbiAgXCJEb3REYXNoZWRcIixcbiAgXCJEb3RFcXVhbFwiLFxuICBcIkRvdExheWVyXCIsXG4gIFwiRG90UGx1c0xheWVyXCIsXG4gIFwiRG90dGVkXCIsXG4gIFwiRG91YmxlQnJhY2tldGluZ0JhclwiLFxuICBcIkRvdWJsZUNvbnRvdXJJbnRlZ3JhbFwiLFxuICBcIkRvdWJsZURvd25BcnJvd1wiLFxuICBcIkRvdWJsZUxlZnRBcnJvd1wiLFxuICBcIkRvdWJsZUxlZnRSaWdodEFycm93XCIsXG4gIFwiRG91YmxlTGVmdFRlZVwiLFxuICBcIkRvdWJsZUxvbmdMZWZ0QXJyb3dcIixcbiAgXCJEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3dcIixcbiAgXCJEb3VibGVMb25nUmlnaHRBcnJvd1wiLFxuICBcIkRvdWJsZVJpZ2h0QXJyb3dcIixcbiAgXCJEb3VibGVSaWdodFRlZVwiLFxuICBcIkRvdWJsZVVwQXJyb3dcIixcbiAgXCJEb3VibGVVcERvd25BcnJvd1wiLFxuICBcIkRvdWJsZVZlcnRpY2FsQmFyXCIsXG4gIFwiRG91Ymx5SW5maW5pdGVcIixcbiAgXCJEb3duXCIsXG4gIFwiRG93bkFycm93XCIsXG4gIFwiRG93bkFycm93QmFyXCIsXG4gIFwiRG93bkFycm93VXBBcnJvd1wiLFxuICBcIkRvd25MZWZ0UmlnaHRWZWN0b3JcIixcbiAgXCJEb3duTGVmdFRlZVZlY3RvclwiLFxuICBcIkRvd25MZWZ0VmVjdG9yXCIsXG4gIFwiRG93bkxlZnRWZWN0b3JCYXJcIixcbiAgXCJEb3duUmlnaHRUZWVWZWN0b3JcIixcbiAgXCJEb3duUmlnaHRWZWN0b3JcIixcbiAgXCJEb3duUmlnaHRWZWN0b3JCYXJcIixcbiAgXCJEb3duc2FtcGxlXCIsXG4gIFwiRG93blRlZVwiLFxuICBcIkRvd25UZWVBcnJvd1wiLFxuICBcIkRvd25WYWx1ZXNcIixcbiAgXCJEb3duVmFsdWVzRnVuY3Rpb25cIixcbiAgXCJEcmFnQW5kRHJvcFwiLFxuICBcIkRyYXdCYWNrRmFjZXNcIixcbiAgXCJEcmF3RWRnZXNcIixcbiAgXCJEcmF3RnJvbnRGYWNlc1wiLFxuICBcIkRyYXdIaWdobGlnaHRlZFwiLFxuICBcIkRyYXppbkludmVyc2VcIixcbiAgXCJEcm9wXCIsXG4gIFwiRHJvcG91dExheWVyXCIsXG4gIFwiRHJvcFNoYWRvd2luZ1wiLFxuICBcIkRTb2x2ZVwiLFxuICBcIkRTb2x2ZUNoYW5nZVZhcmlhYmxlc1wiLFxuICBcIkRTb2x2ZVZhbHVlXCIsXG4gIFwiRHRcIixcbiAgXCJEdWFsTGluZWFyUHJvZ3JhbW1pbmdcIixcbiAgXCJEdWFsUGxhbmFyR3JhcGhcIixcbiAgXCJEdWFsUG9seWhlZHJvblwiLFxuICBcIkR1YWxTeXN0ZW1zTW9kZWxcIixcbiAgXCJEdW1wR2V0XCIsXG4gIFwiRHVtcFNhdmVcIixcbiAgXCJEdXBsaWNhdGVGcmVlUVwiLFxuICBcIkR1cmF0aW9uXCIsXG4gIFwiRHluYW1pY1wiLFxuICBcIkR5bmFtaWNCb3hcIixcbiAgXCJEeW5hbWljQm94T3B0aW9uc1wiLFxuICBcIkR5bmFtaWNFdmFsdWF0aW9uVGltZW91dFwiLFxuICBcIkR5bmFtaWNHZW9HcmFwaGljc1wiLFxuICBcIkR5bmFtaWNJbWFnZVwiLFxuICBcIkR5bmFtaWNMb2NhdGlvblwiLFxuICBcIkR5bmFtaWNNb2R1bGVcIixcbiAgXCJEeW5hbWljTW9kdWxlQm94XCIsXG4gIFwiRHluYW1pY01vZHVsZUJveE9wdGlvbnNcIixcbiAgXCJEeW5hbWljTW9kdWxlUGFyZW50XCIsXG4gIFwiRHluYW1pY01vZHVsZVZhbHVlc1wiLFxuICBcIkR5bmFtaWNOYW1lXCIsXG4gIFwiRHluYW1pY05hbWVzcGFjZVwiLFxuICBcIkR5bmFtaWNSZWZlcmVuY2VcIixcbiAgXCJEeW5hbWljU2V0dGluZ1wiLFxuICBcIkR5bmFtaWNVcGRhdGluZ1wiLFxuICBcIkR5bmFtaWNXcmFwcGVyXCIsXG4gIFwiRHluYW1pY1dyYXBwZXJCb3hcIixcbiAgXCJEeW5hbWljV3JhcHBlckJveE9wdGlvbnNcIixcbiAgXCJFXCIsXG4gIFwiRWFydGhJbXBhY3REYXRhXCIsXG4gIFwiRWFydGhxdWFrZURhdGFcIixcbiAgXCJFY2NlbnRyaWNpdHlDZW50cmFsaXR5XCIsXG4gIFwiRWNob1wiLFxuICBcIkVjaG9FdmFsdWF0aW9uXCIsXG4gIFwiRWNob0Z1bmN0aW9uXCIsXG4gIFwiRWNob0xhYmVsXCIsXG4gIFwiRWNob1RpbWluZ1wiLFxuICBcIkVjbGlwc2VUeXBlXCIsXG4gIFwiRWRnZUFkZFwiLFxuICBcIkVkZ2VCZXR3ZWVubmVzc0NlbnRyYWxpdHlcIixcbiAgXCJFZGdlQ2FwYWNpdHlcIixcbiAgXCJFZGdlQ2FwRm9ybVwiLFxuICBcIkVkZ2VDaHJvbWF0aWNOdW1iZXJcIixcbiAgXCJFZGdlQ29sb3JcIixcbiAgXCJFZGdlQ29ubmVjdGl2aXR5XCIsXG4gIFwiRWRnZUNvbnRyYWN0XCIsXG4gIFwiRWRnZUNvc3RcIixcbiAgXCJFZGdlQ291bnRcIixcbiAgXCJFZGdlQ292ZXJRXCIsXG4gIFwiRWRnZUN5Y2xlTWF0cml4XCIsXG4gIFwiRWRnZURhc2hpbmdcIixcbiAgXCJFZGdlRGVsZXRlXCIsXG4gIFwiRWRnZURldGVjdFwiLFxuICBcIkVkZ2VGb3JtXCIsXG4gIFwiRWRnZUluZGV4XCIsXG4gIFwiRWRnZUpvaW5Gb3JtXCIsXG4gIFwiRWRnZUxhYmVsaW5nXCIsXG4gIFwiRWRnZUxhYmVsc1wiLFxuICBcIkVkZ2VMYWJlbFN0eWxlXCIsXG4gIFwiRWRnZUxpc3RcIixcbiAgXCJFZGdlT3BhY2l0eVwiLFxuICBcIkVkZ2VRXCIsXG4gIFwiRWRnZVJlbmRlcmluZ0Z1bmN0aW9uXCIsXG4gIFwiRWRnZVJ1bGVzXCIsXG4gIFwiRWRnZVNoYXBlRnVuY3Rpb25cIixcbiAgXCJFZGdlU3R5bGVcIixcbiAgXCJFZGdlVGFnZ2VkR3JhcGhcIixcbiAgXCJFZGdlVGFnZ2VkR3JhcGhRXCIsXG4gIFwiRWRnZVRhZ3NcIixcbiAgXCJFZGdlVGhpY2tuZXNzXCIsXG4gIFwiRWRnZVRyYW5zaXRpdmVHcmFwaFFcIixcbiAgXCJFZGdlVmFsdWVSYW5nZVwiLFxuICBcIkVkZ2VWYWx1ZVNpemVzXCIsXG4gIFwiRWRnZVdlaWdodFwiLFxuICBcIkVkZ2VXZWlnaHRlZEdyYXBoUVwiLFxuICBcIkVkaXRhYmxlXCIsXG4gIFwiRWRpdEJ1dHRvblNldHRpbmdzXCIsXG4gIFwiRWRpdENlbGxUYWdzU2V0dGluZ3NcIixcbiAgXCJFZGl0RGlzdGFuY2VcIixcbiAgXCJFZmZlY3RpdmVJbnRlcmVzdFwiLFxuICBcIkVpZ2Vuc3lzdGVtXCIsXG4gIFwiRWlnZW52YWx1ZXNcIixcbiAgXCJFaWdlbnZlY3RvckNlbnRyYWxpdHlcIixcbiAgXCJFaWdlbnZlY3RvcnNcIixcbiAgXCJFbGVtZW50XCIsXG4gIFwiRWxlbWVudERhdGFcIixcbiAgXCJFbGVtZW50d2lzZUxheWVyXCIsXG4gIFwiRWxpZGVkRm9ybXNcIixcbiAgXCJFbGltaW5hdGVcIixcbiAgXCJFbGltaW5hdGlvbk9yZGVyXCIsXG4gIFwiRWxsaXBzb2lkXCIsXG4gIFwiRWxsaXB0aWNFXCIsXG4gIFwiRWxsaXB0aWNFeHBcIixcbiAgXCJFbGxpcHRpY0V4cFByaW1lXCIsXG4gIFwiRWxsaXB0aWNGXCIsXG4gIFwiRWxsaXB0aWNGaWx0ZXJNb2RlbFwiLFxuICBcIkVsbGlwdGljS1wiLFxuICBcIkVsbGlwdGljTG9nXCIsXG4gIFwiRWxsaXB0aWNOb21lUVwiLFxuICBcIkVsbGlwdGljUGlcIixcbiAgXCJFbGxpcHRpY1JlZHVjZWRIYWxmUGVyaW9kc1wiLFxuICBcIkVsbGlwdGljVGhldGFcIixcbiAgXCJFbGxpcHRpY1RoZXRhUHJpbWVcIixcbiAgXCJFbWJlZENvZGVcIixcbiAgXCJFbWJlZGRlZEhUTUxcIixcbiAgXCJFbWJlZGRlZFNlcnZpY2VcIixcbiAgXCJFbWJlZGRlZFNRTEVudGl0eUNsYXNzXCIsXG4gIFwiRW1iZWRkZWRTUUxFeHByZXNzaW9uXCIsXG4gIFwiRW1iZWRkaW5nTGF5ZXJcIixcbiAgXCJFbWJlZGRpbmdPYmplY3RcIixcbiAgXCJFbWl0U291bmRcIixcbiAgXCJFbXBoYXNpemVTeW50YXhFcnJvcnNcIixcbiAgXCJFbXBpcmljYWxEaXN0cmlidXRpb25cIixcbiAgXCJFbXB0eVwiLFxuICBcIkVtcHR5R3JhcGhRXCIsXG4gIFwiRW1wdHlSZWdpb25cIixcbiAgXCJFbXB0eVNwYWNlRlwiLFxuICBcIkVuYWJsZUNvbnNvbGVQcmludFBhY2tldFwiLFxuICBcIkVuYWJsZWRcIixcbiAgXCJFbmNsb3NlXCIsXG4gIFwiRW5jb2RlXCIsXG4gIFwiRW5jcnlwdFwiLFxuICBcIkVuY3J5cHRlZE9iamVjdFwiLFxuICBcIkVuY3J5cHRGaWxlXCIsXG4gIFwiRW5kXCIsXG4gIFwiRW5kQWRkXCIsXG4gIFwiRW5kRGlhbG9nUGFja2V0XCIsXG4gIFwiRW5kT2ZCdWZmZXJcIixcbiAgXCJFbmRPZkZpbGVcIixcbiAgXCJFbmRPZkxpbmVcIixcbiAgXCJFbmRPZlN0cmluZ1wiLFxuICBcIkVuZFBhY2thZ2VcIixcbiAgXCJFbmdpbmVFbnZpcm9ubWVudFwiLFxuICBcIkVuZ2luZWVyaW5nRm9ybVwiLFxuICBcIkVudGVyXCIsXG4gIFwiRW50ZXJFeHByZXNzaW9uUGFja2V0XCIsXG4gIFwiRW50ZXJUZXh0UGFja2V0XCIsXG4gIFwiRW50aXR5XCIsXG4gIFwiRW50aXR5Q2xhc3NcIixcbiAgXCJFbnRpdHlDbGFzc0xpc3RcIixcbiAgXCJFbnRpdHlDb3BpZXNcIixcbiAgXCJFbnRpdHlGdW5jdGlvblwiLFxuICBcIkVudGl0eUdyb3VwXCIsXG4gIFwiRW50aXR5SW5zdGFuY2VcIixcbiAgXCJFbnRpdHlMaXN0XCIsXG4gIFwiRW50aXR5UHJlZmV0Y2hcIixcbiAgXCJFbnRpdHlQcm9wZXJ0aWVzXCIsXG4gIFwiRW50aXR5UHJvcGVydHlcIixcbiAgXCJFbnRpdHlQcm9wZXJ0eUNsYXNzXCIsXG4gIFwiRW50aXR5UmVnaXN0ZXJcIixcbiAgXCJFbnRpdHlTdG9yZVwiLFxuICBcIkVudGl0eVN0b3Jlc1wiLFxuICBcIkVudGl0eVR5cGVOYW1lXCIsXG4gIFwiRW50aXR5VW5yZWdpc3RlclwiLFxuICBcIkVudGl0eVZhbHVlXCIsXG4gIFwiRW50cm9weVwiLFxuICBcIkVudHJvcHlGaWx0ZXJcIixcbiAgXCJFbnZpcm9ubWVudFwiLFxuICBcIkVwaWxvZ1wiLFxuICBcIkVwaWxvZ0Z1bmN0aW9uXCIsXG4gIFwiRXF1YWxcIixcbiAgXCJFcXVhbENvbHVtbnNcIixcbiAgXCJFcXVhbFJvd3NcIixcbiAgXCJFcXVhbFRpbGRlXCIsXG4gIFwiRXF1YWxUb1wiLFxuICBcIkVxdWF0ZWRUb1wiLFxuICBcIkVxdWlsaWJyaXVtXCIsXG4gIFwiRXF1aXJpcHBsZUZpbHRlcktlcm5lbFwiLFxuICBcIkVxdWl2YWxlbnRcIixcbiAgXCJFcmZcIixcbiAgXCJFcmZjXCIsXG4gIFwiRXJmaVwiLFxuICBcIkVybGFuZ0JcIixcbiAgXCJFcmxhbmdDXCIsXG4gIFwiRXJsYW5nRGlzdHJpYnV0aW9uXCIsXG4gIFwiRXJvc2lvblwiLFxuICBcIkVycm9yQm94XCIsXG4gIFwiRXJyb3JCb3hPcHRpb25zXCIsXG4gIFwiRXJyb3JOb3JtXCIsXG4gIFwiRXJyb3JQYWNrZXRcIixcbiAgXCJFcnJvcnNEaWFsb2dTZXR0aW5nc1wiLFxuICBcIkVzY2FwZVJhZGl1c1wiLFxuICBcIkVzdGltYXRlZEJhY2tncm91bmRcIixcbiAgXCJFc3RpbWF0ZWREaXN0cmlidXRpb25cIixcbiAgXCJFc3RpbWF0ZWRQb2ludE5vcm1hbHNcIixcbiAgXCJFc3RpbWF0ZWRQb2ludFByb2Nlc3NcIixcbiAgXCJFc3RpbWF0ZWRQcm9jZXNzXCIsXG4gIFwiRXN0aW1hdGVkVmFyaW9ncmFtTW9kZWxcIixcbiAgXCJFc3RpbWF0b3JHYWluc1wiLFxuICBcIkVzdGltYXRvclJlZ3VsYXRvclwiLFxuICBcIkV1Y2xpZGVhbkRpc3RhbmNlXCIsXG4gIFwiRXVsZXJBbmdsZXNcIixcbiAgXCJFdWxlckNoYXJhY3RlcmlzdGljXCIsXG4gIFwiRXVsZXJFXCIsXG4gIFwiRXVsZXJHYW1tYVwiLFxuICBcIkV1bGVyaWFuR3JhcGhRXCIsXG4gIFwiRXVsZXJNYXRyaXhcIixcbiAgXCJFdWxlclBoaVwiLFxuICBcIkV2YWx1YXRhYmxlXCIsXG4gIFwiRXZhbHVhdGVcIixcbiAgXCJFdmFsdWF0ZWRcIixcbiAgXCJFdmFsdWF0ZVBhY2tldFwiLFxuICBcIkV2YWx1YXRlU2NoZWR1bGVkVGFza1wiLFxuICBcIkV2YWx1YXRpb25Cb3hcIixcbiAgXCJFdmFsdWF0aW9uQ2VsbFwiLFxuICBcIkV2YWx1YXRpb25Db21wbGV0aW9uQWN0aW9uXCIsXG4gIFwiRXZhbHVhdGlvbkRhdGFcIixcbiAgXCJFdmFsdWF0aW9uRWxlbWVudHNcIixcbiAgXCJFdmFsdWF0aW9uRW52aXJvbm1lbnRcIixcbiAgXCJFdmFsdWF0aW9uTW9kZVwiLFxuICBcIkV2YWx1YXRpb25Nb25pdG9yXCIsXG4gIFwiRXZhbHVhdGlvbk5vdGVib29rXCIsXG4gIFwiRXZhbHVhdGlvbk9iamVjdFwiLFxuICBcIkV2YWx1YXRpb25PcmRlclwiLFxuICBcIkV2YWx1YXRpb25Qcml2aWxlZ2VzXCIsXG4gIFwiRXZhbHVhdGlvblJhdGVMaW1pdFwiLFxuICBcIkV2YWx1YXRvclwiLFxuICBcIkV2YWx1YXRvck5hbWVzXCIsXG4gIFwiRXZlblFcIixcbiAgXCJFdmVudERhdGFcIixcbiAgXCJFdmVudEV2YWx1YXRvclwiLFxuICBcIkV2ZW50SGFuZGxlclwiLFxuICBcIkV2ZW50SGFuZGxlclRhZ1wiLFxuICBcIkV2ZW50TGFiZWxzXCIsXG4gIFwiRXZlbnRTZXJpZXNcIixcbiAgXCJFeGFjdEJsYWNrbWFuV2luZG93XCIsXG4gIFwiRXhhY3ROdW1iZXJRXCIsXG4gIFwiRXhhY3RSb290SXNvbGF0aW9uXCIsXG4gIFwiRXhhbXBsZURhdGFcIixcbiAgXCJFeGNlcHRcIixcbiAgXCJFeGNsdWRlZENvbnRleHRzXCIsXG4gIFwiRXhjbHVkZWRGb3Jtc1wiLFxuICBcIkV4Y2x1ZGVkTGluZXNcIixcbiAgXCJFeGNsdWRlZFBoeXNpY2FsUXVhbnRpdGllc1wiLFxuICBcIkV4Y2x1ZGVQb2RzXCIsXG4gIFwiRXhjbHVzaW9uc1wiLFxuICBcIkV4Y2x1c2lvbnNTdHlsZVwiLFxuICBcIkV4aXN0c1wiLFxuICBcIkV4aXRcIixcbiAgXCJFeGl0RGlhbG9nXCIsXG4gIFwiRXhvcGxhbmV0RGF0YVwiLFxuICBcIkV4cFwiLFxuICBcIkV4cGFuZFwiLFxuICBcIkV4cGFuZEFsbFwiLFxuICBcIkV4cGFuZERlbm9taW5hdG9yXCIsXG4gIFwiRXhwYW5kRmlsZU5hbWVcIixcbiAgXCJFeHBhbmROdW1lcmF0b3JcIixcbiAgXCJFeHBlY3RhdGlvblwiLFxuICBcIkV4cGVjdGF0aW9uRVwiLFxuICBcIkV4cGVjdGVkVmFsdWVcIixcbiAgXCJFeHBHYW1tYURpc3RyaWJ1dGlvblwiLFxuICBcIkV4cEludGVncmFsRVwiLFxuICBcIkV4cEludGVncmFsRWlcIixcbiAgXCJFeHBpcmF0aW9uRGF0ZVwiLFxuICBcIkV4cG9uZW50XCIsXG4gIFwiRXhwb25lbnRGdW5jdGlvblwiLFxuICBcIkV4cG9uZW50aWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiRXhwb25lbnRpYWxGYW1pbHlcIixcbiAgXCJFeHBvbmVudGlhbEdlbmVyYXRpbmdGdW5jdGlvblwiLFxuICBcIkV4cG9uZW50aWFsTW92aW5nQXZlcmFnZVwiLFxuICBcIkV4cG9uZW50aWFsUG93ZXJEaXN0cmlidXRpb25cIixcbiAgXCJFeHBvbmVudFBvc2l0aW9uXCIsXG4gIFwiRXhwb25lbnRTdGVwXCIsXG4gIFwiRXhwb3J0XCIsXG4gIFwiRXhwb3J0QXV0b1JlcGxhY2VtZW50c1wiLFxuICBcIkV4cG9ydEJ5dGVBcnJheVwiLFxuICBcIkV4cG9ydEZvcm1cIixcbiAgXCJFeHBvcnRQYWNrZXRcIixcbiAgXCJFeHBvcnRTdHJpbmdcIixcbiAgXCJFeHByZXNzaW9uXCIsXG4gIFwiRXhwcmVzc2lvbkNlbGxcIixcbiAgXCJFeHByZXNzaW9uR3JhcGhcIixcbiAgXCJFeHByZXNzaW9uUGFja2V0XCIsXG4gIFwiRXhwcmVzc2lvblRyZWVcIixcbiAgXCJFeHByZXNzaW9uVVVJRFwiLFxuICBcIkV4cFRvVHJpZ1wiLFxuICBcIkV4dGVuZGVkRW50aXR5Q2xhc3NcIixcbiAgXCJFeHRlbmRlZEdDRFwiLFxuICBcIkV4dGVuc2lvblwiLFxuICBcIkV4dGVudEVsZW1lbnRGdW5jdGlvblwiLFxuICBcIkV4dGVudE1hcmtlcnNcIixcbiAgXCJFeHRlbnRTaXplXCIsXG4gIFwiRXh0ZXJuYWxCdW5kbGVcIixcbiAgXCJFeHRlcm5hbENhbGxcIixcbiAgXCJFeHRlcm5hbERhdGFDaGFyYWN0ZXJFbmNvZGluZ1wiLFxuICBcIkV4dGVybmFsRXZhbHVhdGVcIixcbiAgXCJFeHRlcm5hbEZ1bmN0aW9uXCIsXG4gIFwiRXh0ZXJuYWxGdW5jdGlvbk5hbWVcIixcbiAgXCJFeHRlcm5hbElkZW50aWZpZXJcIixcbiAgXCJFeHRlcm5hbE9iamVjdFwiLFxuICBcIkV4dGVybmFsT3B0aW9uc1wiLFxuICBcIkV4dGVybmFsU2Vzc2lvbk9iamVjdFwiLFxuICBcIkV4dGVybmFsU2Vzc2lvbnNcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VCYXNlXCIsXG4gIFwiRXh0ZXJuYWxTdG9yYWdlRG93bmxvYWRcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VHZXRcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VPYmplY3RcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VQdXRcIixcbiAgXCJFeHRlcm5hbFN0b3JhZ2VVcGxvYWRcIixcbiAgXCJFeHRlcm5hbFR5cGVTaWduYXR1cmVcIixcbiAgXCJFeHRlcm5hbFZhbHVlXCIsXG4gIFwiRXh0cmFjdFwiLFxuICBcIkV4dHJhY3RBcmNoaXZlXCIsXG4gIFwiRXh0cmFjdExheWVyXCIsXG4gIFwiRXh0cmFjdFBhY2xldEFyY2hpdmVcIixcbiAgXCJFeHRyZW1lVmFsdWVEaXN0cmlidXRpb25cIixcbiAgXCJGYWNlQWxpZ25cIixcbiAgXCJGYWNlRm9ybVwiLFxuICBcIkZhY2VHcmlkc1wiLFxuICBcIkZhY2VHcmlkc1N0eWxlXCIsXG4gIFwiRmFjZVJlY29nbml6ZVwiLFxuICBcIkZhY2lhbEZlYXR1cmVzXCIsXG4gIFwiRmFjdG9yXCIsXG4gIFwiRmFjdG9yQ29tcGxldGVcIixcbiAgXCJGYWN0b3JpYWxcIixcbiAgXCJGYWN0b3JpYWwyXCIsXG4gIFwiRmFjdG9yaWFsTW9tZW50XCIsXG4gIFwiRmFjdG9yaWFsTW9tZW50R2VuZXJhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiRmFjdG9yaWFsUG93ZXJcIixcbiAgXCJGYWN0b3JJbnRlZ2VyXCIsXG4gIFwiRmFjdG9yTGlzdFwiLFxuICBcIkZhY3RvclNxdWFyZUZyZWVcIixcbiAgXCJGYWN0b3JTcXVhcmVGcmVlTGlzdFwiLFxuICBcIkZhY3RvclRlcm1zXCIsXG4gIFwiRmFjdG9yVGVybXNMaXN0XCIsXG4gIFwiRmFpbFwiLFxuICBcIkZhaWx1cmVcIixcbiAgXCJGYWlsdXJlQWN0aW9uXCIsXG4gIFwiRmFpbHVyZURpc3RyaWJ1dGlvblwiLFxuICBcIkZhaWx1cmVRXCIsXG4gIFwiRmFsc2VcIixcbiAgXCJGYXJleVNlcXVlbmNlXCIsXG4gIFwiRkFSSU1BUHJvY2Vzc1wiLFxuICBcIkZlYXR1cmVEaXN0YW5jZVwiLFxuICBcIkZlYXR1cmVFeHRyYWN0XCIsXG4gIFwiRmVhdHVyZUV4dHJhY3Rpb25cIixcbiAgXCJGZWF0dXJlRXh0cmFjdG9yXCIsXG4gIFwiRmVhdHVyZUV4dHJhY3RvckZ1bmN0aW9uXCIsXG4gIFwiRmVhdHVyZUltcGFjdFBsb3RcIixcbiAgXCJGZWF0dXJlTmFtZXNcIixcbiAgXCJGZWF0dXJlTmVhcmVzdFwiLFxuICBcIkZlYXR1cmVTcGFjZVBsb3RcIixcbiAgXCJGZWF0dXJlU3BhY2VQbG90M0RcIixcbiAgXCJGZWF0dXJlVHlwZXNcIixcbiAgXCJGZWF0dXJlVmFsdWVEZXBlbmRlbmN5UGxvdFwiLFxuICBcIkZlYXR1cmVWYWx1ZUltcGFjdFBsb3RcIixcbiAgXCJGRURpc2FibGVDb25zb2xlUHJpbnRQYWNrZXRcIixcbiAgXCJGZWVkYmFja0xpbmVhcml6ZVwiLFxuICBcIkZlZWRiYWNrU2VjdG9yXCIsXG4gIFwiRmVlZGJhY2tTZWN0b3JTdHlsZVwiLFxuICBcIkZlZWRiYWNrVHlwZVwiLFxuICBcIkZFRW5hYmxlQ29uc29sZVByaW50UGFja2V0XCIsXG4gIFwiRmV0YWxHcm93dGhEYXRhXCIsXG4gIFwiRmlib25hY2NpXCIsXG4gIFwiRmlib25vcmlhbFwiLFxuICBcIkZpZWxkQ29tcGxldGlvbkZ1bmN0aW9uXCIsXG4gIFwiRmllbGRIaW50XCIsXG4gIFwiRmllbGRIaW50U3R5bGVcIixcbiAgXCJGaWVsZE1hc2tlZFwiLFxuICBcIkZpZWxkU2l6ZVwiLFxuICBcIkZpbGVcIixcbiAgXCJGaWxlQmFzZU5hbWVcIixcbiAgXCJGaWxlQnl0ZUNvdW50XCIsXG4gIFwiRmlsZUNvbnZlcnRcIixcbiAgXCJGaWxlRGF0ZVwiLFxuICBcIkZpbGVFeGlzdHNRXCIsXG4gIFwiRmlsZUV4dGVuc2lvblwiLFxuICBcIkZpbGVGb3JtYXRcIixcbiAgXCJGaWxlRm9ybWF0UHJvcGVydGllc1wiLFxuICBcIkZpbGVGb3JtYXRRXCIsXG4gIFwiRmlsZUhhbmRsZXJcIixcbiAgXCJGaWxlSGFzaFwiLFxuICBcIkZpbGVJbmZvcm1hdGlvblwiLFxuICBcIkZpbGVOYW1lXCIsXG4gIFwiRmlsZU5hbWVEZXB0aFwiLFxuICBcIkZpbGVOYW1lRGlhbG9nU2V0dGluZ3NcIixcbiAgXCJGaWxlTmFtZURyb3BcIixcbiAgXCJGaWxlTmFtZUZvcm1zXCIsXG4gIFwiRmlsZU5hbWVKb2luXCIsXG4gIFwiRmlsZU5hbWVzXCIsXG4gIFwiRmlsZU5hbWVTZXR0ZXJcIixcbiAgXCJGaWxlTmFtZVNwbGl0XCIsXG4gIFwiRmlsZU5hbWVUYWtlXCIsXG4gIFwiRmlsZU5hbWVUb0Zvcm1hdExpc3RcIixcbiAgXCJGaWxlUHJpbnRcIixcbiAgXCJGaWxlU2l6ZVwiLFxuICBcIkZpbGVTeXN0ZW1NYXBcIixcbiAgXCJGaWxlU3lzdGVtU2NhblwiLFxuICBcIkZpbGVTeXN0ZW1UcmVlXCIsXG4gIFwiRmlsZVRlbXBsYXRlXCIsXG4gIFwiRmlsZVRlbXBsYXRlQXBwbHlcIixcbiAgXCJGaWxlVHlwZVwiLFxuICBcIkZpbGxlZEN1cnZlXCIsXG4gIFwiRmlsbGVkQ3VydmVCb3hcIixcbiAgXCJGaWxsZWRDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJGaWxsZWRUb3J1c1wiLFxuICBcIkZpbGxGb3JtXCIsXG4gIFwiRmlsbGluZ1wiLFxuICBcIkZpbGxpbmdTdHlsZVwiLFxuICBcIkZpbGxpbmdUcmFuc2Zvcm1cIixcbiAgXCJGaWx0ZXJlZEVudGl0eUNsYXNzXCIsXG4gIFwiRmlsdGVyUnVsZXNcIixcbiAgXCJGaW5hbmNpYWxCb25kXCIsXG4gIFwiRmluYW5jaWFsRGF0YVwiLFxuICBcIkZpbmFuY2lhbERlcml2YXRpdmVcIixcbiAgXCJGaW5hbmNpYWxJbmRpY2F0b3JcIixcbiAgXCJGaW5kXCIsXG4gIFwiRmluZEFub21hbGllc1wiLFxuICBcIkZpbmRBcmdNYXhcIixcbiAgXCJGaW5kQXJnTWluXCIsXG4gIFwiRmluZENoYW5uZWxzXCIsXG4gIFwiRmluZENsaXF1ZVwiLFxuICBcIkZpbmRDbHVzdGVyc1wiLFxuICBcIkZpbmRDb29raWVzXCIsXG4gIFwiRmluZEN1cnZlUGF0aFwiLFxuICBcIkZpbmRDeWNsZVwiLFxuICBcIkZpbmREZXZpY2VzXCIsXG4gIFwiRmluZERpc3RyaWJ1dGlvblwiLFxuICBcIkZpbmREaXN0cmlidXRpb25QYXJhbWV0ZXJzXCIsXG4gIFwiRmluZERpdmlzaW9uc1wiLFxuICBcIkZpbmRFZGdlQ29sb3JpbmdcIixcbiAgXCJGaW5kRWRnZUNvdmVyXCIsXG4gIFwiRmluZEVkZ2VDdXRcIixcbiAgXCJGaW5kRWRnZUluZGVwZW5kZW50UGF0aHNcIixcbiAgXCJGaW5kRXF1YXRpb25hbFByb29mXCIsXG4gIFwiRmluZEV1bGVyaWFuQ3ljbGVcIixcbiAgXCJGaW5kRXh0ZXJuYWxFdmFsdWF0b3JzXCIsXG4gIFwiRmluZEZhY2VzXCIsXG4gIFwiRmluZEZpbGVcIixcbiAgXCJGaW5kRml0XCIsXG4gIFwiRmluZEZvcm11bGFcIixcbiAgXCJGaW5kRnVuZGFtZW50YWxDeWNsZXNcIixcbiAgXCJGaW5kR2VuZXJhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiRmluZEdlb0xvY2F0aW9uXCIsXG4gIFwiRmluZEdlb21ldHJpY0NvbmplY3R1cmVzXCIsXG4gIFwiRmluZEdlb21ldHJpY1RyYW5zZm9ybVwiLFxuICBcIkZpbmRHcmFwaENvbW11bml0aWVzXCIsXG4gIFwiRmluZEdyYXBoSXNvbW9ycGhpc21cIixcbiAgXCJGaW5kR3JhcGhQYXJ0aXRpb25cIixcbiAgXCJGaW5kSGFtaWx0b25pYW5DeWNsZVwiLFxuICBcIkZpbmRIYW1pbHRvbmlhblBhdGhcIixcbiAgXCJGaW5kSGlkZGVuTWFya292U3RhdGVzXCIsXG4gIFwiRmluZEltYWdlVGV4dFwiLFxuICBcIkZpbmRJbmRlcGVuZGVudEVkZ2VTZXRcIixcbiAgXCJGaW5kSW5kZXBlbmRlbnRWZXJ0ZXhTZXRcIixcbiAgXCJGaW5kSW5zdGFuY2VcIixcbiAgXCJGaW5kSW50ZWdlck51bGxWZWN0b3JcIixcbiAgXCJGaW5kSXNvbWVyc1wiLFxuICBcIkZpbmRJc29tb3JwaGljU3ViZ3JhcGhcIixcbiAgXCJGaW5kS0NsYW5cIixcbiAgXCJGaW5kS0NsaXF1ZVwiLFxuICBcIkZpbmRLQ2x1YlwiLFxuICBcIkZpbmRLUGxleFwiLFxuICBcIkZpbmRMaWJyYXJ5XCIsXG4gIFwiRmluZExpbmVhclJlY3VycmVuY2VcIixcbiAgXCJGaW5kTGlzdFwiLFxuICBcIkZpbmRNYXRjaGluZ0NvbG9yXCIsXG4gIFwiRmluZE1heGltdW1cIixcbiAgXCJGaW5kTWF4aW11bUN1dFwiLFxuICBcIkZpbmRNYXhpbXVtRmxvd1wiLFxuICBcIkZpbmRNYXhWYWx1ZVwiLFxuICBcIkZpbmRNZXNoRGVmZWN0c1wiLFxuICBcIkZpbmRNaW5pbXVtXCIsXG4gIFwiRmluZE1pbmltdW1Db3N0Rmxvd1wiLFxuICBcIkZpbmRNaW5pbXVtQ3V0XCIsXG4gIFwiRmluZE1pblZhbHVlXCIsXG4gIFwiRmluZE1vbGVjdWxlU3Vic3RydWN0dXJlXCIsXG4gIFwiRmluZFBhdGhcIixcbiAgXCJGaW5kUGVha3NcIixcbiAgXCJGaW5kUGVybXV0YXRpb25cIixcbiAgXCJGaW5kUGxhbmFyQ29sb3JpbmdcIixcbiAgXCJGaW5kUG9pbnRQcm9jZXNzUGFyYW1ldGVyc1wiLFxuICBcIkZpbmRQb3N0bWFuVG91clwiLFxuICBcIkZpbmRQcm9jZXNzUGFyYW1ldGVyc1wiLFxuICBcIkZpbmRSZWdpb25UcmFuc2Zvcm1cIixcbiAgXCJGaW5kUmVwZWF0XCIsXG4gIFwiRmluZFJvb3RcIixcbiAgXCJGaW5kU2VxdWVuY2VGdW5jdGlvblwiLFxuICBcIkZpbmRTZXR0aW5nc1wiLFxuICBcIkZpbmRTaG9ydGVzdFBhdGhcIixcbiAgXCJGaW5kU2hvcnRlc3RUb3VyXCIsXG4gIFwiRmluZFNwYW5uaW5nVHJlZVwiLFxuICBcIkZpbmRTdWJncmFwaElzb21vcnBoaXNtXCIsXG4gIFwiRmluZFN5c3RlbU1vZGVsRXF1aWxpYnJpdW1cIixcbiAgXCJGaW5kVGV4dHVhbEFuc3dlclwiLFxuICBcIkZpbmRUaHJlc2hvbGRcIixcbiAgXCJGaW5kVHJhbnNpZW50UmVwZWF0XCIsXG4gIFwiRmluZFZlcnRleENvbG9yaW5nXCIsXG4gIFwiRmluZFZlcnRleENvdmVyXCIsXG4gIFwiRmluZFZlcnRleEN1dFwiLFxuICBcIkZpbmRWZXJ0ZXhJbmRlcGVuZGVudFBhdGhzXCIsXG4gIFwiRmluZVwiLFxuICBcIkZpbmlzaER5bmFtaWNcIixcbiAgXCJGaW5pdGVBYmVsaWFuR3JvdXBDb3VudFwiLFxuICBcIkZpbml0ZUdyb3VwQ291bnRcIixcbiAgXCJGaW5pdGVHcm91cERhdGFcIixcbiAgXCJGaXJzdFwiLFxuICBcIkZpcnN0Q2FzZVwiLFxuICBcIkZpcnN0UGFzc2FnZVRpbWVEaXN0cmlidXRpb25cIixcbiAgXCJGaXJzdFBvc2l0aW9uXCIsXG4gIFwiRmlzY2hlckdyb3VwRmkyMlwiLFxuICBcIkZpc2NoZXJHcm91cEZpMjNcIixcbiAgXCJGaXNjaGVyR3JvdXBGaTI0UHJpbWVcIixcbiAgXCJGaXNoZXJIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkZpc2hlclJhdGlvVGVzdFwiLFxuICBcIkZpc2hlclpEaXN0cmlidXRpb25cIixcbiAgXCJGaXRcIixcbiAgXCJGaXRBbGxcIixcbiAgXCJGaXRSZWd1bGFyaXphdGlvblwiLFxuICBcIkZpdHRlZE1vZGVsXCIsXG4gIFwiRml4ZWRPcmRlclwiLFxuICBcIkZpeGVkUG9pbnRcIixcbiAgXCJGaXhlZFBvaW50TGlzdFwiLFxuICBcIkZsYXNoU2VsZWN0aW9uXCIsXG4gIFwiRmxhdFwiLFxuICBcIkZsYXRTaGFkaW5nXCIsXG4gIFwiRmxhdHRlblwiLFxuICBcIkZsYXR0ZW5BdFwiLFxuICBcIkZsYXR0ZW5MYXllclwiLFxuICBcIkZsYXRUb3BXaW5kb3dcIixcbiAgXCJGbGlnaHREYXRhXCIsXG4gIFwiRmxpcFZpZXdcIixcbiAgXCJGbG9vclwiLFxuICBcIkZsb3dQb2x5bm9taWFsXCIsXG4gIFwiRm9sZFwiLFxuICBcIkZvbGRMaXN0XCIsXG4gIFwiRm9sZFBhaXJcIixcbiAgXCJGb2xkUGFpckxpc3RcIixcbiAgXCJGb2xkV2hpbGVcIixcbiAgXCJGb2xkV2hpbGVMaXN0XCIsXG4gIFwiRm9sbG93UmVkaXJlY3RzXCIsXG4gIFwiRm9udFwiLFxuICBcIkZvbnRDb2xvclwiLFxuICBcIkZvbnRGYW1pbHlcIixcbiAgXCJGb250Rm9ybVwiLFxuICBcIkZvbnROYW1lXCIsXG4gIFwiRm9udE9wYWNpdHlcIixcbiAgXCJGb250UG9zdFNjcmlwdE5hbWVcIixcbiAgXCJGb250UHJvcGVydGllc1wiLFxuICBcIkZvbnRSZWVuY29kaW5nXCIsXG4gIFwiRm9udFNpemVcIixcbiAgXCJGb250U2xhbnRcIixcbiAgXCJGb250U3Vic3RpdHV0aW9uc1wiLFxuICBcIkZvbnRUcmFja2luZ1wiLFxuICBcIkZvbnRWYXJpYXRpb25zXCIsXG4gIFwiRm9udFdlaWdodFwiLFxuICBcIkZvclwiLFxuICBcIkZvckFsbFwiLFxuICBcIkZvckFsbFR5cGVcIixcbiAgXCJGb3JjZVZlcnNpb25JbnN0YWxsXCIsXG4gIFwiRm9ybWF0XCIsXG4gIFwiRm9ybWF0UnVsZXNcIixcbiAgXCJGb3JtYXRUeXBlXCIsXG4gIFwiRm9ybWF0VHlwZUF1dG9Db252ZXJ0XCIsXG4gIFwiRm9ybWF0VmFsdWVzXCIsXG4gIFwiRm9ybUJveFwiLFxuICBcIkZvcm1Cb3hPcHRpb25zXCIsXG4gIFwiRm9ybUNvbnRyb2xcIixcbiAgXCJGb3JtRnVuY3Rpb25cIixcbiAgXCJGb3JtTGF5b3V0RnVuY3Rpb25cIixcbiAgXCJGb3JtT2JqZWN0XCIsXG4gIFwiRm9ybVBhZ2VcIixcbiAgXCJGb3JtUHJvdGVjdGlvbk1ldGhvZFwiLFxuICBcIkZvcm1UaGVtZVwiLFxuICBcIkZvcm11bGFEYXRhXCIsXG4gIFwiRm9ybXVsYUxvb2t1cFwiLFxuICBcIkZvcnRyYW5Gb3JtXCIsXG4gIFwiRm9yd2FyZFwiLFxuICBcIkZvcndhcmRCYWNrd2FyZFwiLFxuICBcIkZvcndhcmRDbG91ZENyZWRlbnRpYWxzXCIsXG4gIFwiRm91cmllclwiLFxuICBcIkZvdXJpZXJDb2VmZmljaWVudFwiLFxuICBcIkZvdXJpZXJDb3NDb2VmZmljaWVudFwiLFxuICBcIkZvdXJpZXJDb3NTZXJpZXNcIixcbiAgXCJGb3VyaWVyQ29zVHJhbnNmb3JtXCIsXG4gIFwiRm91cmllckRDVFwiLFxuICBcIkZvdXJpZXJEQ1RGaWx0ZXJcIixcbiAgXCJGb3VyaWVyRENUTWF0cml4XCIsXG4gIFwiRm91cmllckRTVFwiLFxuICBcIkZvdXJpZXJEU1RNYXRyaXhcIixcbiAgXCJGb3VyaWVyTWF0cml4XCIsXG4gIFwiRm91cmllclBhcmFtZXRlcnNcIixcbiAgXCJGb3VyaWVyU2VxdWVuY2VUcmFuc2Zvcm1cIixcbiAgXCJGb3VyaWVyU2VyaWVzXCIsXG4gIFwiRm91cmllclNpbkNvZWZmaWNpZW50XCIsXG4gIFwiRm91cmllclNpblNlcmllc1wiLFxuICBcIkZvdXJpZXJTaW5UcmFuc2Zvcm1cIixcbiAgXCJGb3VyaWVyVHJhbnNmb3JtXCIsXG4gIFwiRm91cmllclRyaWdTZXJpZXNcIixcbiAgXCJGb3hIXCIsXG4gIFwiRm94SFJlZHVjZVwiLFxuICBcIkZyYWN0aW9uYWxCcm93bmlhbk1vdGlvblByb2Nlc3NcIixcbiAgXCJGcmFjdGlvbmFsRFwiLFxuICBcIkZyYWN0aW9uYWxHYXVzc2lhbk5vaXNlUHJvY2Vzc1wiLFxuICBcIkZyYWN0aW9uYWxQYXJ0XCIsXG4gIFwiRnJhY3Rpb25Cb3hcIixcbiAgXCJGcmFjdGlvbkJveE9wdGlvbnNcIixcbiAgXCJGcmFjdGlvbkxpbmVcIixcbiAgXCJGcmFtZVwiLFxuICBcIkZyYW1lQm94XCIsXG4gIFwiRnJhbWVCb3hPcHRpb25zXCIsXG4gIFwiRnJhbWVkXCIsXG4gIFwiRnJhbWVJbnNldFwiLFxuICBcIkZyYW1lTGFiZWxcIixcbiAgXCJGcmFtZWxlc3NcIixcbiAgXCJGcmFtZUxpc3RWaWRlb1wiLFxuICBcIkZyYW1lTWFyZ2luc1wiLFxuICBcIkZyYW1lUmF0ZVwiLFxuICBcIkZyYW1lU3R5bGVcIixcbiAgXCJGcmFtZVRpY2tzXCIsXG4gIFwiRnJhbWVUaWNrc1N0eWxlXCIsXG4gIFwiRlJhdGlvRGlzdHJpYnV0aW9uXCIsXG4gIFwiRnJlY2hldERpc3RyaWJ1dGlvblwiLFxuICBcIkZyZWVRXCIsXG4gIFwiRnJlbmV0U2VycmV0U3lzdGVtXCIsXG4gIFwiRnJlcXVlbmN5U2FtcGxpbmdGaWx0ZXJLZXJuZWxcIixcbiAgXCJGcmVzbmVsQ1wiLFxuICBcIkZyZXNuZWxGXCIsXG4gIFwiRnJlc25lbEdcIixcbiAgXCJGcmVzbmVsU1wiLFxuICBcIkZyaWRheVwiLFxuICBcIkZyb2Jlbml1c051bWJlclwiLFxuICBcIkZyb2Jlbml1c1NvbHZlXCIsXG4gIFwiRnJvbUFic29sdXRlVGltZVwiLFxuICBcIkZyb21DaGFyYWN0ZXJDb2RlXCIsXG4gIFwiRnJvbUNvZWZmaWNpZW50UnVsZXNcIixcbiAgXCJGcm9tQ29udGludWVkRnJhY3Rpb25cIixcbiAgXCJGcm9tRGF0ZVwiLFxuICBcIkZyb21EYXRlU3RyaW5nXCIsXG4gIFwiRnJvbURpZ2l0c1wiLFxuICBcIkZyb21ETVNcIixcbiAgXCJGcm9tRW50aXR5XCIsXG4gIFwiRnJvbUp1bGlhbkRhdGVcIixcbiAgXCJGcm9tTGV0dGVyTnVtYmVyXCIsXG4gIFwiRnJvbVBvbGFyQ29vcmRpbmF0ZXNcIixcbiAgXCJGcm9tUmF3UG9pbnRlclwiLFxuICBcIkZyb21Sb21hbk51bWVyYWxcIixcbiAgXCJGcm9tU3BoZXJpY2FsQ29vcmRpbmF0ZXNcIixcbiAgXCJGcm9tVW5peFRpbWVcIixcbiAgXCJGcm9udFwiLFxuICBcIkZyb250RW5kRHluYW1pY0V4cHJlc3Npb25cIixcbiAgXCJGcm9udEVuZEV2ZW50QWN0aW9uc1wiLFxuICBcIkZyb250RW5kRXhlY3V0ZVwiLFxuICBcIkZyb250RW5kT2JqZWN0XCIsXG4gIFwiRnJvbnRFbmRSZXNvdXJjZVwiLFxuICBcIkZyb250RW5kUmVzb3VyY2VTdHJpbmdcIixcbiAgXCJGcm9udEVuZFN0YWNrU2l6ZVwiLFxuICBcIkZyb250RW5kVG9rZW5cIixcbiAgXCJGcm9udEVuZFRva2VuRXhlY3V0ZVwiLFxuICBcIkZyb250RW5kVmFsdWVDYWNoZVwiLFxuICBcIkZyb250RW5kVmVyc2lvblwiLFxuICBcIkZyb250RmFjZUNvbG9yXCIsXG4gIFwiRnJvbnRGYWNlR2xvd0NvbG9yXCIsXG4gIFwiRnJvbnRGYWNlT3BhY2l0eVwiLFxuICBcIkZyb250RmFjZVNwZWN1bGFyQ29sb3JcIixcbiAgXCJGcm9udEZhY2VTcGVjdWxhckV4cG9uZW50XCIsXG4gIFwiRnJvbnRGYWNlU3VyZmFjZUFwcGVhcmFuY2VcIixcbiAgXCJGcm9udEZhY2VUZXh0dXJlXCIsXG4gIFwiRnVsbFwiLFxuICBcIkZ1bGxBeGVzXCIsXG4gIFwiRnVsbERlZmluaXRpb25cIixcbiAgXCJGdWxsRm9ybVwiLFxuICBcIkZ1bGxHcmFwaGljc1wiLFxuICBcIkZ1bGxJbmZvcm1hdGlvbk91dHB1dFJlZ3VsYXRvclwiLFxuICBcIkZ1bGxPcHRpb25zXCIsXG4gIFwiRnVsbFJlZ2lvblwiLFxuICBcIkZ1bGxTaW1wbGlmeVwiLFxuICBcIkZ1bmN0aW9uXCIsXG4gIFwiRnVuY3Rpb25BbmFseXRpY1wiLFxuICBcIkZ1bmN0aW9uQmlqZWN0aXZlXCIsXG4gIFwiRnVuY3Rpb25Db21waWxlXCIsXG4gIFwiRnVuY3Rpb25Db21waWxlRXhwb3J0XCIsXG4gIFwiRnVuY3Rpb25Db21waWxlRXhwb3J0Qnl0ZUFycmF5XCIsXG4gIFwiRnVuY3Rpb25Db21waWxlRXhwb3J0TGlicmFyeVwiLFxuICBcIkZ1bmN0aW9uQ29tcGlsZUV4cG9ydFN0cmluZ1wiLFxuICBcIkZ1bmN0aW9uQ29udGludW91c1wiLFxuICBcIkZ1bmN0aW9uQ29udmV4aXR5XCIsXG4gIFwiRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxuICBcIkZ1bmN0aW9uRGlzY29udGludWl0aWVzXCIsXG4gIFwiRnVuY3Rpb25Eb21haW5cIixcbiAgXCJGdW5jdGlvbkV4cGFuZFwiLFxuICBcIkZ1bmN0aW9uSW5qZWN0aXZlXCIsXG4gIFwiRnVuY3Rpb25JbnRlcnBvbGF0aW9uXCIsXG4gIFwiRnVuY3Rpb25MYXllclwiLFxuICBcIkZ1bmN0aW9uTWVyb21vcnBoaWNcIixcbiAgXCJGdW5jdGlvbk1vbm90b25pY2l0eVwiLFxuICBcIkZ1bmN0aW9uUGVyaW9kXCIsXG4gIFwiRnVuY3Rpb25Qb2xlc1wiLFxuICBcIkZ1bmN0aW9uUmFuZ2VcIixcbiAgXCJGdW5jdGlvblNpZ25cIixcbiAgXCJGdW5jdGlvblNpbmd1bGFyaXRpZXNcIixcbiAgXCJGdW5jdGlvblNwYWNlXCIsXG4gIFwiRnVuY3Rpb25TdXJqZWN0aXZlXCIsXG4gIFwiRnVzc2VsbFZlc2VseUltcG9ydGFuY2VcIixcbiAgXCJHYWJvckZpbHRlclwiLFxuICBcIkdhYm9yTWF0cml4XCIsXG4gIFwiR2Fib3JXYXZlbGV0XCIsXG4gIFwiR2Fpbk1hcmdpbnNcIixcbiAgXCJHYWluUGhhc2VNYXJnaW5zXCIsXG4gIFwiR2FsYXh5RGF0YVwiLFxuICBcIkdhbGxlcnlWaWV3XCIsXG4gIFwiR2FtbWFcIixcbiAgXCJHYW1tYURpc3RyaWJ1dGlvblwiLFxuICBcIkdhbW1hUmVndWxhcml6ZWRcIixcbiAgXCJHYXBQZW5hbHR5XCIsXG4gIFwiR0FSQ0hQcm9jZXNzXCIsXG4gIFwiR2F0ZWRSZWN1cnJlbnRMYXllclwiLFxuICBcIkdhdGhlclwiLFxuICBcIkdhdGhlckJ5XCIsXG4gIFwiR2F1Z2VGYWNlRWxlbWVudEZ1bmN0aW9uXCIsXG4gIFwiR2F1Z2VGYWNlU3R5bGVcIixcbiAgXCJHYXVnZUZyYW1lRWxlbWVudEZ1bmN0aW9uXCIsXG4gIFwiR2F1Z2VGcmFtZVNpemVcIixcbiAgXCJHYXVnZUZyYW1lU3R5bGVcIixcbiAgXCJHYXVnZUxhYmVsc1wiLFxuICBcIkdhdWdlTWFya2Vyc1wiLFxuICBcIkdhdWdlU3R5bGVcIixcbiAgXCJHYXVzc2lhbkZpbHRlclwiLFxuICBcIkdhdXNzaWFuSW50ZWdlcnNcIixcbiAgXCJHYXVzc2lhbk1hdHJpeFwiLFxuICBcIkdhdXNzaWFuT3J0aG9nb25hbE1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkdhdXNzaWFuU3ltcGxlY3RpY01hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkdhdXNzaWFuVW5pdGFyeU1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkdhdXNzaWFuV2luZG93XCIsXG4gIFwiR0NEXCIsXG4gIFwiR2VnZW5iYXVlckNcIixcbiAgXCJHZW5lcmFsXCIsXG4gIFwiR2VuZXJhbGl6ZWRMaW5lYXJNb2RlbEZpdFwiLFxuICBcIkdlbmVyYXRlQXN5bW1ldHJpY0tleVBhaXJcIixcbiAgXCJHZW5lcmF0ZUNvbmRpdGlvbnNcIixcbiAgXCJHZW5lcmF0ZWRBc3NldEZvcm1hdFwiLFxuICBcIkdlbmVyYXRlZEFzc2V0TG9jYXRpb25cIixcbiAgXCJHZW5lcmF0ZWRDZWxsXCIsXG4gIFwiR2VuZXJhdGVkQ2VsbFN0eWxlc1wiLFxuICBcIkdlbmVyYXRlZERvY3VtZW50QmluZGluZ1wiLFxuICBcIkdlbmVyYXRlRGVyaXZlZEtleVwiLFxuICBcIkdlbmVyYXRlRGlnaXRhbFNpZ25hdHVyZVwiLFxuICBcIkdlbmVyYXRlRG9jdW1lbnRcIixcbiAgXCJHZW5lcmF0ZWRQYXJhbWV0ZXJzXCIsXG4gIFwiR2VuZXJhdGVkUXVhbnRpdHlNYWduaXR1ZGVzXCIsXG4gIFwiR2VuZXJhdGVGaWxlU2lnbmF0dXJlXCIsXG4gIFwiR2VuZXJhdGVIVFRQUmVzcG9uc2VcIixcbiAgXCJHZW5lcmF0ZVNlY3VyZWRBdXRoZW50aWNhdGlvbktleVwiLFxuICBcIkdlbmVyYXRlU3ltbWV0cmljS2V5XCIsXG4gIFwiR2VuZXJhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiR2VuZXJhdG9yRGVzY3JpcHRpb25cIixcbiAgXCJHZW5lcmF0b3JIaXN0b3J5TGVuZ3RoXCIsXG4gIFwiR2VuZXJhdG9yT3V0cHV0VHlwZVwiLFxuICBcIkdlbmVyaWNcIixcbiAgXCJHZW5lcmljQ3lsaW5kcmljYWxEZWNvbXBvc2l0aW9uXCIsXG4gIFwiR2Vub21lRGF0YVwiLFxuICBcIkdlbm9tZUxvb2t1cFwiLFxuICBcIkdlb0FudGlwb2RlXCIsXG4gIFwiR2VvQXJlYVwiLFxuICBcIkdlb0FycmF5U2l6ZVwiLFxuICBcIkdlb0JhY2tncm91bmRcIixcbiAgXCJHZW9Cb3VuZGFyeVwiLFxuICBcIkdlb0JvdW5kaW5nQm94XCIsXG4gIFwiR2VvQm91bmRzXCIsXG4gIFwiR2VvQm91bmRzUmVnaW9uXCIsXG4gIFwiR2VvQm91bmRzUmVnaW9uQm91bmRhcnlcIixcbiAgXCJHZW9CdWJibGVDaGFydFwiLFxuICBcIkdlb0NlbnRlclwiLFxuICBcIkdlb0NpcmNsZVwiLFxuICBcIkdlb0NvbnRvdXJQbG90XCIsXG4gIFwiR2VvRGVuc2l0eVBsb3RcIixcbiAgXCJHZW9kZXNpY0Nsb3NpbmdcIixcbiAgXCJHZW9kZXNpY0RpbGF0aW9uXCIsXG4gIFwiR2VvZGVzaWNFcm9zaW9uXCIsXG4gIFwiR2VvZGVzaWNPcGVuaW5nXCIsXG4gIFwiR2VvZGVzaWNQb2x5aGVkcm9uXCIsXG4gIFwiR2VvRGVzdGluYXRpb25cIixcbiAgXCJHZW9kZXN5RGF0YVwiLFxuICBcIkdlb0RpcmVjdGlvblwiLFxuICBcIkdlb0Rpc2tcIixcbiAgXCJHZW9EaXNwbGFjZW1lbnRcIixcbiAgXCJHZW9EaXN0YW5jZVwiLFxuICBcIkdlb0Rpc3RhbmNlTGlzdFwiLFxuICBcIkdlb0VsZXZhdGlvbkRhdGFcIixcbiAgXCJHZW9FbnRpdGllc1wiLFxuICBcIkdlb0dyYXBoaWNzXCIsXG4gIFwiR2VvR3JhcGhQbG90XCIsXG4gIFwiR2VvR3JhcGhWYWx1ZVBsb3RcIixcbiAgXCJHZW9ncmF2aXR5TW9kZWxEYXRhXCIsXG4gIFwiR2VvR3JpZERpcmVjdGlvbkRpZmZlcmVuY2VcIixcbiAgXCJHZW9HcmlkTGluZXNcIixcbiAgXCJHZW9HcmlkTGluZXNTdHlsZVwiLFxuICBcIkdlb0dyaWRQb3NpdGlvblwiLFxuICBcIkdlb0dyaWRSYW5nZVwiLFxuICBcIkdlb0dyaWRSYW5nZVBhZGRpbmdcIixcbiAgXCJHZW9HcmlkVW5pdEFyZWFcIixcbiAgXCJHZW9HcmlkVW5pdERpc3RhbmNlXCIsXG4gIFwiR2VvR3JpZFZlY3RvclwiLFxuICBcIkdlb0dyb3VwXCIsXG4gIFwiR2VvSGVtaXNwaGVyZVwiLFxuICBcIkdlb0hlbWlzcGhlcmVCb3VuZGFyeVwiLFxuICBcIkdlb0hpc3RvZ3JhbVwiLFxuICBcIkdlb0lkZW50aWZ5XCIsXG4gIFwiR2VvSW1hZ2VcIixcbiAgXCJHZW9MYWJlbHNcIixcbiAgXCJHZW9MZW5ndGhcIixcbiAgXCJHZW9MaXN0UGxvdFwiLFxuICBcIkdlb0xvY2F0aW9uXCIsXG4gIFwiR2VvbG9naWNhbFBlcmlvZERhdGFcIixcbiAgXCJHZW9tYWduZXRpY01vZGVsRGF0YVwiLFxuICBcIkdlb01hcmtlclwiLFxuICBcIkdlb21ldHJpY0Fzc2VydGlvblwiLFxuICBcIkdlb21ldHJpY0Jyb3duaWFuTW90aW9uUHJvY2Vzc1wiLFxuICBcIkdlb21ldHJpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkdlb21ldHJpY01lYW5cIixcbiAgXCJHZW9tZXRyaWNNZWFuRmlsdGVyXCIsXG4gIFwiR2VvbWV0cmljT3B0aW1pemF0aW9uXCIsXG4gIFwiR2VvbWV0cmljU2NlbmVcIixcbiAgXCJHZW9tZXRyaWNTdGVwXCIsXG4gIFwiR2VvbWV0cmljU3R5bGluZ1J1bGVzXCIsXG4gIFwiR2VvbWV0cmljVGVzdFwiLFxuICBcIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uXCIsXG4gIFwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb24zREJveFwiLFxuICBcIkdlb21ldHJpY1RyYW5zZm9ybWF0aW9uM0RCb3hPcHRpb25zXCIsXG4gIFwiR2VvbWV0cmljVHJhbnNmb3JtYXRpb25Cb3hcIixcbiAgXCJHZW9tZXRyaWNUcmFuc2Zvcm1hdGlvbkJveE9wdGlvbnNcIixcbiAgXCJHZW9Nb2RlbFwiLFxuICBcIkdlb05lYXJlc3RcIixcbiAgXCJHZW9PcmllbnRhdGlvbkRhdGFcIixcbiAgXCJHZW9QYXRoXCIsXG4gIFwiR2VvUG9seWdvblwiLFxuICBcIkdlb1Bvc2l0aW9uXCIsXG4gIFwiR2VvUG9zaXRpb25FTlVcIixcbiAgXCJHZW9Qb3NpdGlvblhZWlwiLFxuICBcIkdlb1Byb2plY3Rpb25cIixcbiAgXCJHZW9Qcm9qZWN0aW9uRGF0YVwiLFxuICBcIkdlb1JhbmdlXCIsXG4gIFwiR2VvUmFuZ2VQYWRkaW5nXCIsXG4gIFwiR2VvUmVnaW9uVmFsdWVQbG90XCIsXG4gIFwiR2VvUmVzb2x1dGlvblwiLFxuICBcIkdlb1NjYWxlQmFyXCIsXG4gIFwiR2VvU2VydmVyXCIsXG4gIFwiR2VvU21vb3RoSGlzdG9ncmFtXCIsXG4gIFwiR2VvU3RyZWFtUGxvdFwiLFxuICBcIkdlb1N0eWxpbmdcIixcbiAgXCJHZW9TdHlsaW5nSW1hZ2VGdW5jdGlvblwiLFxuICBcIkdlb1ZhcmlhbnRcIixcbiAgXCJHZW9WZWN0b3JcIixcbiAgXCJHZW9WZWN0b3JFTlVcIixcbiAgXCJHZW9WZWN0b3JQbG90XCIsXG4gIFwiR2VvVmVjdG9yWFlaXCIsXG4gIFwiR2VvVmlzaWJsZVJlZ2lvblwiLFxuICBcIkdlb1Zpc2libGVSZWdpb25Cb3VuZGFyeVwiLFxuICBcIkdlb1dpdGhpblFcIixcbiAgXCJHZW9ab29tTGV2ZWxcIixcbiAgXCJHZXN0dXJlSGFuZGxlclwiLFxuICBcIkdlc3R1cmVIYW5kbGVyVGFnXCIsXG4gIFwiR2V0XCIsXG4gIFwiR2V0Q29udGV4dFwiLFxuICBcIkdldEVudmlyb25tZW50XCIsXG4gIFwiR2V0RmlsZU5hbWVcIixcbiAgXCJHZXRMaW5lYnJlYWtJbmZvcm1hdGlvblBhY2tldFwiLFxuICBcIkdpYmJzUG9pbnRQcm9jZXNzXCIsXG4gIFwiR2xhaXNoZXJcIixcbiAgXCJHbG9iYWxDbHVzdGVyaW5nQ29lZmZpY2llbnRcIixcbiAgXCJHbG9iYWxQcmVmZXJlbmNlc1wiLFxuICBcIkdsb2JhbFNlc3Npb25cIixcbiAgXCJHbG93XCIsXG4gIFwiR29sZGVuQW5nbGVcIixcbiAgXCJHb2xkZW5SYXRpb1wiLFxuICBcIkdvbXBlcnR6TWFrZWhhbURpc3RyaWJ1dGlvblwiLFxuICBcIkdvb2NoU2hhZGluZ1wiLFxuICBcIkdvb2RtYW5LcnVza2FsR2FtbWFcIixcbiAgXCJHb29kbWFuS3J1c2thbEdhbW1hVGVzdFwiLFxuICBcIkdvdG9cIixcbiAgXCJHb3VyYXVkU2hhZGluZ1wiLFxuICBcIkdyYWRcIixcbiAgXCJHcmFkaWVudFwiLFxuICBcIkdyYWRpZW50RmlsdGVyXCIsXG4gIFwiR3JhZGllbnRGaXR0ZWRNZXNoXCIsXG4gIFwiR3JhZGllbnRPcmllbnRhdGlvbkZpbHRlclwiLFxuICBcIkdyYW1tYXJBcHBseVwiLFxuICBcIkdyYW1tYXJSdWxlc1wiLFxuICBcIkdyYW1tYXJUb2tlblwiLFxuICBcIkdyYXBoXCIsXG4gIFwiR3JhcGgzRFwiLFxuICBcIkdyYXBoQXNzb3J0YXRpdml0eVwiLFxuICBcIkdyYXBoQXV0b21vcnBoaXNtR3JvdXBcIixcbiAgXCJHcmFwaENlbnRlclwiLFxuICBcIkdyYXBoQ29tcGxlbWVudFwiLFxuICBcIkdyYXBoRGF0YVwiLFxuICBcIkdyYXBoRGVuc2l0eVwiLFxuICBcIkdyYXBoRGlhbWV0ZXJcIixcbiAgXCJHcmFwaERpZmZlcmVuY2VcIixcbiAgXCJHcmFwaERpc2pvaW50VW5pb25cIixcbiAgXCJHcmFwaERpc3RhbmNlXCIsXG4gIFwiR3JhcGhEaXN0YW5jZU1hdHJpeFwiLFxuICBcIkdyYXBoRW1iZWRkaW5nXCIsXG4gIFwiR3JhcGhIaWdobGlnaHRcIixcbiAgXCJHcmFwaEhpZ2hsaWdodFN0eWxlXCIsXG4gIFwiR3JhcGhIdWJcIixcbiAgXCJHcmFwaGljc1wiLFxuICBcIkdyYXBoaWNzM0RcIixcbiAgXCJHcmFwaGljczNEQm94XCIsXG4gIFwiR3JhcGhpY3MzREJveE9wdGlvbnNcIixcbiAgXCJHcmFwaGljc0FycmF5XCIsXG4gIFwiR3JhcGhpY3NCYXNlbGluZVwiLFxuICBcIkdyYXBoaWNzQm94XCIsXG4gIFwiR3JhcGhpY3NCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NDb2xvclwiLFxuICBcIkdyYXBoaWNzQ29sdW1uXCIsXG4gIFwiR3JhcGhpY3NDb21wbGV4XCIsXG4gIFwiR3JhcGhpY3NDb21wbGV4M0RCb3hcIixcbiAgXCJHcmFwaGljc0NvbXBsZXgzREJveE9wdGlvbnNcIixcbiAgXCJHcmFwaGljc0NvbXBsZXhCb3hcIixcbiAgXCJHcmFwaGljc0NvbXBsZXhCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NDb250ZW50c1wiLFxuICBcIkdyYXBoaWNzRGF0YVwiLFxuICBcIkdyYXBoaWNzR3JpZFwiLFxuICBcIkdyYXBoaWNzR3JpZEJveFwiLFxuICBcIkdyYXBoaWNzR3JvdXBcIixcbiAgXCJHcmFwaGljc0dyb3VwM0RCb3hcIixcbiAgXCJHcmFwaGljc0dyb3VwM0RCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NHcm91cEJveFwiLFxuICBcIkdyYXBoaWNzR3JvdXBCb3hPcHRpb25zXCIsXG4gIFwiR3JhcGhpY3NHcm91cGluZ1wiLFxuICBcIkdyYXBoaWNzSGlnaGxpZ2h0Q29sb3JcIixcbiAgXCJHcmFwaGljc1Jvd1wiLFxuICBcIkdyYXBoaWNzU3BhY2luZ1wiLFxuICBcIkdyYXBoaWNzU3R5bGVcIixcbiAgXCJHcmFwaEludGVyc2VjdGlvblwiLFxuICBcIkdyYXBoSm9pblwiLFxuICBcIkdyYXBoTGF5ZXJMYWJlbHNcIixcbiAgXCJHcmFwaExheWVyc1wiLFxuICBcIkdyYXBoTGF5ZXJTdHlsZVwiLFxuICBcIkdyYXBoTGF5b3V0XCIsXG4gIFwiR3JhcGhMaW5rRWZmaWNpZW5jeVwiLFxuICBcIkdyYXBoUGVyaXBoZXJ5XCIsXG4gIFwiR3JhcGhQbG90XCIsXG4gIFwiR3JhcGhQbG90M0RcIixcbiAgXCJHcmFwaFBvd2VyXCIsXG4gIFwiR3JhcGhQcm9kdWN0XCIsXG4gIFwiR3JhcGhQcm9wZXJ0eURpc3RyaWJ1dGlvblwiLFxuICBcIkdyYXBoUVwiLFxuICBcIkdyYXBoUmFkaXVzXCIsXG4gIFwiR3JhcGhSZWNpcHJvY2l0eVwiLFxuICBcIkdyYXBoUm9vdFwiLFxuICBcIkdyYXBoU3R5bGVcIixcbiAgXCJHcmFwaFN1bVwiLFxuICBcIkdyYXBoVHJlZVwiLFxuICBcIkdyYXBoVW5pb25cIixcbiAgXCJHcmF5XCIsXG4gIFwiR3JheUxldmVsXCIsXG4gIFwiR3JlYXRlclwiLFxuICBcIkdyZWF0ZXJFcXVhbFwiLFxuICBcIkdyZWF0ZXJFcXVhbExlc3NcIixcbiAgXCJHcmVhdGVyRXF1YWxUaGFuXCIsXG4gIFwiR3JlYXRlckZ1bGxFcXVhbFwiLFxuICBcIkdyZWF0ZXJHcmVhdGVyXCIsXG4gIFwiR3JlYXRlckxlc3NcIixcbiAgXCJHcmVhdGVyU2xhbnRFcXVhbFwiLFxuICBcIkdyZWF0ZXJUaGFuXCIsXG4gIFwiR3JlYXRlclRpbGRlXCIsXG4gIFwiR3JlZWtTdHlsZVwiLFxuICBcIkdyZWVuXCIsXG4gIFwiR3JlZW5GdW5jdGlvblwiLFxuICBcIkdyaWRcIixcbiAgXCJHcmlkQmFzZWxpbmVcIixcbiAgXCJHcmlkQm94XCIsXG4gIFwiR3JpZEJveEFsaWdubWVudFwiLFxuICBcIkdyaWRCb3hCYWNrZ3JvdW5kXCIsXG4gIFwiR3JpZEJveERpdmlkZXJzXCIsXG4gIFwiR3JpZEJveEZyYW1lXCIsXG4gIFwiR3JpZEJveEl0ZW1TaXplXCIsXG4gIFwiR3JpZEJveEl0ZW1TdHlsZVwiLFxuICBcIkdyaWRCb3hPcHRpb25zXCIsXG4gIFwiR3JpZEJveFNwYWNpbmdzXCIsXG4gIFwiR3JpZENyZWF0aW9uU2V0dGluZ3NcIixcbiAgXCJHcmlkRGVmYXVsdEVsZW1lbnRcIixcbiAgXCJHcmlkRWxlbWVudFN0eWxlT3B0aW9uc1wiLFxuICBcIkdyaWRGcmFtZVwiLFxuICBcIkdyaWRGcmFtZU1hcmdpbnNcIixcbiAgXCJHcmlkR3JhcGhcIixcbiAgXCJHcmlkTGluZXNcIixcbiAgXCJHcmlkTGluZXNTdHlsZVwiLFxuICBcIkdyaWRWaWRlb1wiLFxuICBcIkdyb2VibmVyQmFzaXNcIixcbiAgXCJHcm91cEFjdGlvbkJhc2VcIixcbiAgXCJHcm91cEJ5XCIsXG4gIFwiR3JvdXBDZW50cmFsaXplclwiLFxuICBcIkdyb3VwRWxlbWVudEZyb21Xb3JkXCIsXG4gIFwiR3JvdXBFbGVtZW50UG9zaXRpb25cIixcbiAgXCJHcm91cEVsZW1lbnRRXCIsXG4gIFwiR3JvdXBFbGVtZW50c1wiLFxuICBcIkdyb3VwRWxlbWVudFRvV29yZFwiLFxuICBcIkdyb3VwR2VuZXJhdG9yc1wiLFxuICBcIkdyb3VwaW5nc1wiLFxuICBcIkdyb3VwTXVsdGlwbGljYXRpb25UYWJsZVwiLFxuICBcIkdyb3VwT3BlbmVyQ29sb3JcIixcbiAgXCJHcm91cE9wZW5lckluc2lkZUZyYW1lXCIsXG4gIFwiR3JvdXBPcmJpdHNcIixcbiAgXCJHcm91cE9yZGVyXCIsXG4gIFwiR3JvdXBQYWdlQnJlYWtXaXRoaW5cIixcbiAgXCJHcm91cFNldHdpc2VTdGFiaWxpemVyXCIsXG4gIFwiR3JvdXBTdGFiaWxpemVyXCIsXG4gIFwiR3JvdXBTdGFiaWxpemVyQ2hhaW5cIixcbiAgXCJHcm91cFRvZ2V0aGVyR3JvdXBpbmdcIixcbiAgXCJHcm91cFRvZ2V0aGVyTmVzdGVkR3JvdXBpbmdcIixcbiAgXCJHcm93Q3V0Q29tcG9uZW50c1wiLFxuICBcIkd1ZGVybWFubmlhblwiLFxuICBcIkd1aWRlZEZpbHRlclwiLFxuICBcIkd1bWJlbERpc3RyaWJ1dGlvblwiLFxuICBcIkhhYXJXYXZlbGV0XCIsXG4gIFwiSGFkYW1hcmRNYXRyaXhcIixcbiAgXCJIYWxmTGluZVwiLFxuICBcIkhhbGZOb3JtYWxEaXN0cmlidXRpb25cIixcbiAgXCJIYWxmUGxhbmVcIixcbiAgXCJIYWxmU3BhY2VcIixcbiAgXCJIYWxmdG9uZVNoYWRpbmdcIixcbiAgXCJIYW1pbHRvbmlhbkdyYXBoUVwiLFxuICBcIkhhbW1pbmdEaXN0YW5jZVwiLFxuICBcIkhhbW1pbmdXaW5kb3dcIixcbiAgXCJIYW5kbGVyRnVuY3Rpb25zXCIsXG4gIFwiSGFuZGxlckZ1bmN0aW9uc0tleXNcIixcbiAgXCJIYW5rZWxIMVwiLFxuICBcIkhhbmtlbEgyXCIsXG4gIFwiSGFua2VsTWF0cml4XCIsXG4gIFwiSGFua2VsVHJhbnNmb3JtXCIsXG4gIFwiSGFublBvaXNzb25XaW5kb3dcIixcbiAgXCJIYW5uV2luZG93XCIsXG4gIFwiSGFyYWRhTm9ydG9uR3JvdXBITlwiLFxuICBcIkhhcmFyeUdyYXBoXCIsXG4gIFwiSGFyZGNvcmVQb2ludFByb2Nlc3NcIixcbiAgXCJIYXJtb25pY01lYW5cIixcbiAgXCJIYXJtb25pY01lYW5GaWx0ZXJcIixcbiAgXCJIYXJtb25pY051bWJlclwiLFxuICBcIkhhc2hcIixcbiAgXCJIYXRjaEZpbGxpbmdcIixcbiAgXCJIYXRjaFNoYWRpbmdcIixcbiAgXCJIYXZlcnNpbmVcIixcbiAgXCJIYXphcmRGdW5jdGlvblwiLFxuICBcIkhlYWRcIixcbiAgXCJIZWFkQ29tcG9zZVwiLFxuICBcIkhlYWRlckFsaWdubWVudFwiLFxuICBcIkhlYWRlckJhY2tncm91bmRcIixcbiAgXCJIZWFkZXJEaXNwbGF5RnVuY3Rpb25cIixcbiAgXCJIZWFkZXJMaW5lc1wiLFxuICBcIkhlYWRlcnNcIixcbiAgXCJIZWFkZXJTaXplXCIsXG4gIFwiSGVhZGVyU3R5bGVcIixcbiAgXCJIZWFkc1wiLFxuICBcIkhlYXRGbHV4VmFsdWVcIixcbiAgXCJIZWF0SW5zdWxhdGlvblZhbHVlXCIsXG4gIFwiSGVhdE91dGZsb3dWYWx1ZVwiLFxuICBcIkhlYXRSYWRpYXRpb25WYWx1ZVwiLFxuICBcIkhlYXRTeW1tZXRyeVZhbHVlXCIsXG4gIFwiSGVhdFRlbXBlcmF0dXJlQ29uZGl0aW9uXCIsXG4gIFwiSGVhdFRyYW5zZmVyUERFQ29tcG9uZW50XCIsXG4gIFwiSGVhdFRyYW5zZmVyVmFsdWVcIixcbiAgXCJIZWF2aXNpZGVMYW1iZGFcIixcbiAgXCJIZWF2aXNpZGVQaVwiLFxuICBcIkhlYXZpc2lkZVRoZXRhXCIsXG4gIFwiSGVsZEdyb3VwSGVcIixcbiAgXCJIZWxkUGFydFwiLFxuICBcIkhlbG1ob2x0elBERUNvbXBvbmVudFwiLFxuICBcIkhlbHBCcm93c2VyTG9va3VwXCIsXG4gIFwiSGVscEJyb3dzZXJOb3RlYm9va1wiLFxuICBcIkhlbHBCcm93c2VyU2V0dGluZ3NcIixcbiAgXCJIZWxwVmlld2VyU2V0dGluZ3NcIixcbiAgXCJIZXJlXCIsXG4gIFwiSGVybWl0ZURlY29tcG9zaXRpb25cIixcbiAgXCJIZXJtaXRlSFwiLFxuICBcIkhlcm1pdGlhblwiLFxuICBcIkhlcm1pdGlhbk1hdHJpeFFcIixcbiAgXCJIZXNzZW5iZXJnRGVjb21wb3NpdGlvblwiLFxuICBcIkhlc3NpYW5cIixcbiAgXCJIZXVuQlwiLFxuICBcIkhldW5CUHJpbWVcIixcbiAgXCJIZXVuQ1wiLFxuICBcIkhldW5DUHJpbWVcIixcbiAgXCJIZXVuRFwiLFxuICBcIkhldW5EUHJpbWVcIixcbiAgXCJIZXVuR1wiLFxuICBcIkhldW5HUHJpbWVcIixcbiAgXCJIZXVuVFwiLFxuICBcIkhldW5UUHJpbWVcIixcbiAgXCJIZXhhZGVjaW1hbENoYXJhY3RlclwiLFxuICBcIkhleGFoZWRyb25cIixcbiAgXCJIZXhhaGVkcm9uQm94XCIsXG4gIFwiSGV4YWhlZHJvbkJveE9wdGlvbnNcIixcbiAgXCJIaWRkZW5JdGVtc1wiLFxuICBcIkhpZGRlbk1hcmtvdlByb2Nlc3NcIixcbiAgXCJIaWRkZW5TdXJmYWNlXCIsXG4gIFwiSGlnaGxpZ2h0ZWRcIixcbiAgXCJIaWdobGlnaHRHcmFwaFwiLFxuICBcIkhpZ2hsaWdodEltYWdlXCIsXG4gIFwiSGlnaGxpZ2h0TWVzaFwiLFxuICBcIkhpZ2hsaWdodFN0cmluZ1wiLFxuICBcIkhpZ2hwYXNzRmlsdGVyXCIsXG4gIFwiSGlnbWFuU2ltc0dyb3VwSFNcIixcbiAgXCJIaWxiZXJ0Q3VydmVcIixcbiAgXCJIaWxiZXJ0RmlsdGVyXCIsXG4gIFwiSGlsYmVydE1hdHJpeFwiLFxuICBcIkhpc3RvZ3JhbVwiLFxuICBcIkhpc3RvZ3JhbTNEXCIsXG4gIFwiSGlzdG9ncmFtRGlzdHJpYnV0aW9uXCIsXG4gIFwiSGlzdG9ncmFtTGlzdFwiLFxuICBcIkhpc3RvZ3JhbVBvaW50RGVuc2l0eVwiLFxuICBcIkhpc3RvZ3JhbVRyYW5zZm9ybVwiLFxuICBcIkhpc3RvZ3JhbVRyYW5zZm9ybUludGVycG9sYXRpb25cIixcbiAgXCJIaXN0b3JpY2FsUGVyaW9kRGF0YVwiLFxuICBcIkhpdE1pc3NUcmFuc2Zvcm1cIixcbiAgXCJISVRTQ2VudHJhbGl0eVwiLFxuICBcIkhqb3J0aERpc3RyaWJ1dGlvblwiLFxuICBcIkhvZGdlRHVhbFwiLFxuICBcIkhvZWZmZGluZ0RcIixcbiAgXCJIb2VmZmRpbmdEVGVzdFwiLFxuICBcIkhvbGRcIixcbiAgXCJIb2xkQWxsXCIsXG4gIFwiSG9sZEFsbENvbXBsZXRlXCIsXG4gIFwiSG9sZENvbXBsZXRlXCIsXG4gIFwiSG9sZEZpcnN0XCIsXG4gIFwiSG9sZEZvcm1cIixcbiAgXCJIb2xkUGF0dGVyblwiLFxuICBcIkhvbGRSZXN0XCIsXG4gIFwiSG9saWRheUNhbGVuZGFyXCIsXG4gIFwiSG9tZURpcmVjdG9yeVwiLFxuICBcIkhvbWVQYWdlXCIsXG4gIFwiSG9yaXpvbnRhbFwiLFxuICBcIkhvcml6b250YWxGb3JtXCIsXG4gIFwiSG9yaXpvbnRhbEdhdWdlXCIsXG4gIFwiSG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uXCIsXG4gIFwiSG9ybmVyRm9ybVwiLFxuICBcIkhvc3RMb29rdXBcIixcbiAgXCJIb3RlbGxpbmdUU3F1YXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiSG95dERpc3RyaWJ1dGlvblwiLFxuICBcIkhUTUxTYXZlXCIsXG4gIFwiSFRUUEVycm9yUmVzcG9uc2VcIixcbiAgXCJIVFRQUmVkaXJlY3RcIixcbiAgXCJIVFRQUmVxdWVzdFwiLFxuICBcIkhUVFBSZXF1ZXN0RGF0YVwiLFxuICBcIkhUVFBSZXNwb25zZVwiLFxuICBcIkh1ZVwiLFxuICBcIkh1bWFuR3Jvd3RoRGF0YVwiLFxuICBcIkh1bXBEb3duSHVtcFwiLFxuICBcIkh1bXBFcXVhbFwiLFxuICBcIkh1cndpdHpMZXJjaFBoaVwiLFxuICBcIkh1cndpdHpaZXRhXCIsXG4gIFwiSHlwZXJib2xpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkh5cGVyY3ViZUdyYXBoXCIsXG4gIFwiSHlwZXJleHBvbmVudGlhbERpc3RyaWJ1dGlvblwiLFxuICBcIkh5cGVyZmFjdG9yaWFsXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWMwRjFcIixcbiAgXCJIeXBlcmdlb21ldHJpYzBGMVJlZ3VsYXJpemVkXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWMxRjFcIixcbiAgXCJIeXBlcmdlb21ldHJpYzFGMVJlZ3VsYXJpemVkXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWMyRjFcIixcbiAgXCJIeXBlcmdlb21ldHJpYzJGMVJlZ3VsYXJpemVkXCIsXG4gIFwiSHlwZXJnZW9tZXRyaWNEaXN0cmlidXRpb25cIixcbiAgXCJIeXBlcmdlb21ldHJpY1BGUVwiLFxuICBcIkh5cGVyZ2VvbWV0cmljUEZRUmVndWxhcml6ZWRcIixcbiAgXCJIeXBlcmdlb21ldHJpY1VcIixcbiAgXCJIeXBlcmxpbmtcIixcbiAgXCJIeXBlcmxpbmtBY3Rpb25cIixcbiAgXCJIeXBlcmxpbmtDcmVhdGlvblNldHRpbmdzXCIsXG4gIFwiSHlwZXJwbGFuZVwiLFxuICBcIkh5cGhlbmF0aW9uXCIsXG4gIFwiSHlwaGVuYXRpb25PcHRpb25zXCIsXG4gIFwiSHlwb2V4cG9uZW50aWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiSHlwb3RoZXNpc1Rlc3REYXRhXCIsXG4gIFwiSVwiLFxuICBcIkljb25EYXRhXCIsXG4gIFwiSWNvbml6ZVwiLFxuICBcIkljb25pemVkT2JqZWN0XCIsXG4gIFwiSWNvblJ1bGVzXCIsXG4gIFwiSWNvc2FoZWRyb25cIixcbiAgXCJJZGVudGl0eVwiLFxuICBcIklkZW50aXR5TWF0cml4XCIsXG4gIFwiSWZcIixcbiAgXCJJZkNvbXBpbGVkXCIsXG4gIFwiSWdub3JlQ2FzZVwiLFxuICBcIklnbm9yZURpYWNyaXRpY3NcIixcbiAgXCJJZ25vcmVJc290b3Blc1wiLFxuICBcIklnbm9yZVB1bmN0dWF0aW9uXCIsXG4gIFwiSWdub3JlU3BlbGxDaGVja1wiLFxuICBcIklnbm9yZVN0ZXJlb2NoZW1pc3RyeVwiLFxuICBcIklnbm9yaW5nSW5hY3RpdmVcIixcbiAgXCJJbVwiLFxuICBcIkltYWdlXCIsXG4gIFwiSW1hZ2UzRFwiLFxuICBcIkltYWdlM0RQcm9qZWN0aW9uXCIsXG4gIFwiSW1hZ2UzRFNsaWNlc1wiLFxuICBcIkltYWdlQWNjdW11bGF0ZVwiLFxuICBcIkltYWdlQWRkXCIsXG4gIFwiSW1hZ2VBZGp1c3RcIixcbiAgXCJJbWFnZUFsaWduXCIsXG4gIFwiSW1hZ2VBcHBseVwiLFxuICBcIkltYWdlQXBwbHlJbmRleGVkXCIsXG4gIFwiSW1hZ2VBc3BlY3RSYXRpb1wiLFxuICBcIkltYWdlQXNzZW1ibGVcIixcbiAgXCJJbWFnZUF1Z21lbnRhdGlvbkxheWVyXCIsXG4gIFwiSW1hZ2VCb3VuZGluZ0JveGVzXCIsXG4gIFwiSW1hZ2VDYWNoZVwiLFxuICBcIkltYWdlQ2FjaGVWYWxpZFwiLFxuICBcIkltYWdlQ2FwdHVyZVwiLFxuICBcIkltYWdlQ2FwdHVyZUZ1bmN0aW9uXCIsXG4gIFwiSW1hZ2VDYXNlc1wiLFxuICBcIkltYWdlQ2hhbm5lbHNcIixcbiAgXCJJbWFnZUNsaXBcIixcbiAgXCJJbWFnZUNvbGxhZ2VcIixcbiAgXCJJbWFnZUNvbG9yU3BhY2VcIixcbiAgXCJJbWFnZUNvbXBvc2VcIixcbiAgXCJJbWFnZUNvbnRhaW5zUVwiLFxuICBcIkltYWdlQ29udGVudHNcIixcbiAgXCJJbWFnZUNvbnZvbHZlXCIsXG4gIFwiSW1hZ2VDb29jY3VycmVuY2VcIixcbiAgXCJJbWFnZUNvcm5lcnNcIixcbiAgXCJJbWFnZUNvcnJlbGF0ZVwiLFxuICBcIkltYWdlQ29ycmVzcG9uZGluZ1BvaW50c1wiLFxuICBcIkltYWdlQ3JvcFwiLFxuICBcIkltYWdlRGF0YVwiLFxuICBcIkltYWdlRGVjb252b2x2ZVwiLFxuICBcIkltYWdlRGVtb3NhaWNcIixcbiAgXCJJbWFnZURpZmZlcmVuY2VcIixcbiAgXCJJbWFnZURpbWVuc2lvbnNcIixcbiAgXCJJbWFnZURpc3BsYWNlbWVudHNcIixcbiAgXCJJbWFnZURpc3RhbmNlXCIsXG4gIFwiSW1hZ2VFZGl0TW9kZVwiLFxuICBcIkltYWdlRWZmZWN0XCIsXG4gIFwiSW1hZ2VFeHBvc3VyZUNvbWJpbmVcIixcbiAgXCJJbWFnZUZlYXR1cmVUcmFja1wiLFxuICBcIkltYWdlRmlsZUFwcGx5XCIsXG4gIFwiSW1hZ2VGaWxlRmlsdGVyXCIsXG4gIFwiSW1hZ2VGaWxlU2NhblwiLFxuICBcIkltYWdlRmlsdGVyXCIsXG4gIFwiSW1hZ2VGb2N1c0NvbWJpbmVcIixcbiAgXCJJbWFnZUZvcmVzdGluZ0NvbXBvbmVudHNcIixcbiAgXCJJbWFnZUZvcm1hdHRpbmdXaWR0aFwiLFxuICBcIkltYWdlRm9yd2FyZFRyYW5zZm9ybWF0aW9uXCIsXG4gIFwiSW1hZ2VHcmFwaGljc1wiLFxuICBcIkltYWdlSGlzdG9ncmFtXCIsXG4gIFwiSW1hZ2VJZGVudGlmeVwiLFxuICBcIkltYWdlSW5zdGFuY2VRXCIsXG4gIFwiSW1hZ2VLZXlwb2ludHNcIixcbiAgXCJJbWFnZUxhYmVsc1wiLFxuICBcIkltYWdlTGVnZW5kc1wiLFxuICBcIkltYWdlTGV2ZWxzXCIsXG4gIFwiSW1hZ2VMaW5lc1wiLFxuICBcIkltYWdlTWFyZ2luc1wiLFxuICBcIkltYWdlTWFya2VyXCIsXG4gIFwiSW1hZ2VNYXJrZXJzXCIsXG4gIFwiSW1hZ2VNZWFzdXJlbWVudHNcIixcbiAgXCJJbWFnZU1lc2hcIixcbiAgXCJJbWFnZU11bHRpcGx5XCIsXG4gIFwiSW1hZ2VPZmZzZXRcIixcbiAgXCJJbWFnZVBhZFwiLFxuICBcIkltYWdlUGFkZGluZ1wiLFxuICBcIkltYWdlUGFydGl0aW9uXCIsXG4gIFwiSW1hZ2VQZXJpb2RvZ3JhbVwiLFxuICBcIkltYWdlUGVyc3BlY3RpdmVUcmFuc2Zvcm1hdGlvblwiLFxuICBcIkltYWdlUG9zaXRpb25cIixcbiAgXCJJbWFnZVByZXZpZXdGdW5jdGlvblwiLFxuICBcIkltYWdlUHlyYW1pZFwiLFxuICBcIkltYWdlUHlyYW1pZEFwcGx5XCIsXG4gIFwiSW1hZ2VRXCIsXG4gIFwiSW1hZ2VSYW5nZUNhY2hlXCIsXG4gIFwiSW1hZ2VSZWNvbG9yXCIsXG4gIFwiSW1hZ2VSZWZsZWN0XCIsXG4gIFwiSW1hZ2VSZWdpb25cIixcbiAgXCJJbWFnZVJlc2l6ZVwiLFxuICBcIkltYWdlUmVzb2x1dGlvblwiLFxuICBcIkltYWdlUmVzdHlsZVwiLFxuICBcIkltYWdlUm90YXRlXCIsXG4gIFwiSW1hZ2VSb3RhdGVkXCIsXG4gIFwiSW1hZ2VTYWxpZW5jeUZpbHRlclwiLFxuICBcIkltYWdlU2NhbGVkXCIsXG4gIFwiSW1hZ2VTY2FuXCIsXG4gIFwiSW1hZ2VTaXplXCIsXG4gIFwiSW1hZ2VTaXplQWN0aW9uXCIsXG4gIFwiSW1hZ2VTaXplQ2FjaGVcIixcbiAgXCJJbWFnZVNpemVNdWx0aXBsaWVyc1wiLFxuICBcIkltYWdlU2l6ZVJhd1wiLFxuICBcIkltYWdlU3RpdGNoXCIsXG4gIFwiSW1hZ2VTdWJ0cmFjdFwiLFxuICBcIkltYWdlVGFrZVwiLFxuICBcIkltYWdlVHJhbnNmb3JtYXRpb25cIixcbiAgXCJJbWFnZVRyaW1cIixcbiAgXCJJbWFnZVR5cGVcIixcbiAgXCJJbWFnZVZhbHVlXCIsXG4gIFwiSW1hZ2VWYWx1ZVBvc2l0aW9uc1wiLFxuICBcIkltYWdlVmVjdG9yc2NvcGVQbG90XCIsXG4gIFwiSW1hZ2VXYXZlZm9ybVBsb3RcIixcbiAgXCJJbWFnaW5nRGV2aWNlXCIsXG4gIFwiSW1wbGljaXREXCIsXG4gIFwiSW1wbGljaXRSZWdpb25cIixcbiAgXCJJbXBsaWVzXCIsXG4gIFwiSW1wb3J0XCIsXG4gIFwiSW1wb3J0QXV0b1JlcGxhY2VtZW50c1wiLFxuICBcIkltcG9ydEJ5dGVBcnJheVwiLFxuICBcIkltcG9ydGVkT2JqZWN0XCIsXG4gIFwiSW1wb3J0T3B0aW9uc1wiLFxuICBcIkltcG9ydFN0cmluZ1wiLFxuICBcIkltcHJvdmVtZW50SW1wb3J0YW5jZVwiLFxuICBcIkluXCIsXG4gIFwiSW5hY3RpdmF0ZVwiLFxuICBcIkluYWN0aXZlXCIsXG4gIFwiSW5hY3RpdmVTdHlsZVwiLFxuICBcIkluY2lkZW5jZUdyYXBoXCIsXG4gIFwiSW5jaWRlbmNlTGlzdFwiLFxuICBcIkluY2lkZW5jZU1hdHJpeFwiLFxuICBcIkluY2x1ZGVBcm9tYXRpY0JvbmRzXCIsXG4gIFwiSW5jbHVkZUNvbnN0YW50QmFzaXNcIixcbiAgXCJJbmNsdWRlZENvbnRleHRzXCIsXG4gIFwiSW5jbHVkZURlZmluaXRpb25zXCIsXG4gIFwiSW5jbHVkZURpcmVjdG9yaWVzXCIsXG4gIFwiSW5jbHVkZUZpbGVFeHRlbnNpb25cIixcbiAgXCJJbmNsdWRlR2VuZXJhdG9yVGFza3NcIixcbiAgXCJJbmNsdWRlSHlkcm9nZW5zXCIsXG4gIFwiSW5jbHVkZUluZmxlY3Rpb25zXCIsXG4gIFwiSW5jbHVkZU1ldGFJbmZvcm1hdGlvblwiLFxuICBcIkluY2x1ZGVQb2RzXCIsXG4gIFwiSW5jbHVkZVF1YW50aXRpZXNcIixcbiAgXCJJbmNsdWRlUmVsYXRlZFRhYmxlc1wiLFxuICBcIkluY2x1ZGVTaW5ndWxhclNvbHV0aW9uc1wiLFxuICBcIkluY2x1ZGVTaW5ndWxhclRlcm1cIixcbiAgXCJJbmNsdWRlV2luZG93VGltZXNcIixcbiAgXCJJbmNyZW1lbnRcIixcbiAgXCJJbmRlZmluaXRlTWF0cml4UVwiLFxuICBcIkluZGVudFwiLFxuICBcIkluZGVudGluZ05ld2xpbmVTcGFjaW5nc1wiLFxuICBcIkluZGVudE1heEZyYWN0aW9uXCIsXG4gIFwiSW5kZXBlbmRlbmNlVGVzdFwiLFxuICBcIkluZGVwZW5kZW50RWRnZVNldFFcIixcbiAgXCJJbmRlcGVuZGVudFBoeXNpY2FsUXVhbnRpdHlcIixcbiAgXCJJbmRlcGVuZGVudFVuaXRcIixcbiAgXCJJbmRlcGVuZGVudFVuaXREaW1lbnNpb25cIixcbiAgXCJJbmRlcGVuZGVudFZlcnRleFNldFFcIixcbiAgXCJJbmRldGVybWluYXRlXCIsXG4gIFwiSW5kZXRlcm1pbmF0ZVRocmVzaG9sZFwiLFxuICBcIkluZGV4Q3JlYXRpb25PcHRpb25zXCIsXG4gIFwiSW5kZXhlZFwiLFxuICBcIkluZGV4RWRnZVRhZ2dlZEdyYXBoXCIsXG4gIFwiSW5kZXhHcmFwaFwiLFxuICBcIkluZGV4VGFnXCIsXG4gIFwiSW5lcXVhbGl0eVwiLFxuICBcIkluZXJ0RXZhbHVhdGVcIixcbiAgXCJJbmVydEV4cHJlc3Npb25cIixcbiAgXCJJbmV4YWN0TnVtYmVyUVwiLFxuICBcIkluZXhhY3ROdW1iZXJzXCIsXG4gIFwiSW5maW5pdGVGdXR1cmVcIixcbiAgXCJJbmZpbml0ZUxpbmVcIixcbiAgXCJJbmZpbml0ZUxpbmVUaHJvdWdoXCIsXG4gIFwiSW5maW5pdGVQYXN0XCIsXG4gIFwiSW5maW5pdGVQbGFuZVwiLFxuICBcIkluZmluaXR5XCIsXG4gIFwiSW5maXhcIixcbiAgXCJJbmZsYXRpb25BZGp1c3RcIixcbiAgXCJJbmZsYXRpb25NZXRob2RcIixcbiAgXCJJbmZvcm1hdGlvblwiLFxuICBcIkluZm9ybWF0aW9uRGF0YVwiLFxuICBcIkluZm9ybWF0aW9uRGF0YUdyaWRcIixcbiAgXCJJbmhlcml0ZWRcIixcbiAgXCJJbmhlcml0U2NvcGVcIixcbiAgXCJJbmhvbW9nZW5lb3VzUG9pc3NvblBvaW50UHJvY2Vzc1wiLFxuICBcIkluaG9tb2dlbmVvdXNQb2lzc29uUHJvY2Vzc1wiLFxuICBcIkluaXRpYWxFdmFsdWF0aW9uSGlzdG9yeVwiLFxuICBcIkluaXRpYWxpemF0aW9uXCIsXG4gIFwiSW5pdGlhbGl6YXRpb25DZWxsXCIsXG4gIFwiSW5pdGlhbGl6YXRpb25DZWxsRXZhbHVhdGlvblwiLFxuICBcIkluaXRpYWxpemF0aW9uQ2VsbFdhcm5pbmdcIixcbiAgXCJJbml0aWFsaXphdGlvbk9iamVjdFwiLFxuICBcIkluaXRpYWxpemF0aW9uT2JqZWN0c1wiLFxuICBcIkluaXRpYWxpemF0aW9uVmFsdWVcIixcbiAgXCJJbml0aWFsaXplXCIsXG4gIFwiSW5pdGlhbFNlZWRpbmdcIixcbiAgXCJJbmxpbmVDb3VudGVyQXNzaWdubWVudHNcIixcbiAgXCJJbmxpbmVDb3VudGVySW5jcmVtZW50c1wiLFxuICBcIklubGluZVJ1bGVzXCIsXG4gIFwiSW5uZXJcIixcbiAgXCJJbm5lclBvbHlnb25cIixcbiAgXCJJbm5lclBvbHloZWRyb25cIixcbiAgXCJJbnBhaW50XCIsXG4gIFwiSW5wdXRcIixcbiAgXCJJbnB1dEFsaWFzZXNcIixcbiAgXCJJbnB1dEFzc3VtcHRpb25zXCIsXG4gIFwiSW5wdXRBdXRvUmVwbGFjZW1lbnRzXCIsXG4gIFwiSW5wdXRGaWVsZFwiLFxuICBcIklucHV0RmllbGRCb3hcIixcbiAgXCJJbnB1dEZpZWxkQm94T3B0aW9uc1wiLFxuICBcIklucHV0Rm9ybVwiLFxuICBcIklucHV0R3JvdXBpbmdcIixcbiAgXCJJbnB1dE5hbWVQYWNrZXRcIixcbiAgXCJJbnB1dE5vdGVib29rXCIsXG4gIFwiSW5wdXRQYWNrZXRcIixcbiAgXCJJbnB1dFBvcnRzXCIsXG4gIFwiSW5wdXRTZXR0aW5nc1wiLFxuICBcIklucHV0U3RyZWFtXCIsXG4gIFwiSW5wdXRTdHJpbmdcIixcbiAgXCJJbnB1dFN0cmluZ1BhY2tldFwiLFxuICBcIklucHV0VG9Cb3hGb3JtUGFja2V0XCIsXG4gIFwiSW5zZXJ0XCIsXG4gIFwiSW5zZXJ0aW9uRnVuY3Rpb25cIixcbiAgXCJJbnNlcnRpb25Qb2ludE9iamVjdFwiLFxuICBcIkluc2VydExpbmVicmVha3NcIixcbiAgXCJJbnNlcnRSZXN1bHRzXCIsXG4gIFwiSW5zZXRcIixcbiAgXCJJbnNldDNEQm94XCIsXG4gIFwiSW5zZXQzREJveE9wdGlvbnNcIixcbiAgXCJJbnNldEJveFwiLFxuICBcIkluc2V0Qm94T3B0aW9uc1wiLFxuICBcIkluc3BoZXJlXCIsXG4gIFwiSW5zdGFsbFwiLFxuICBcIkluc3RhbGxTZXJ2aWNlXCIsXG4gIFwiSW5zdGFuY2VOb3JtYWxpemF0aW9uTGF5ZXJcIixcbiAgXCJJblN0cmluZ1wiLFxuICBcIkludGVnZXJcIixcbiAgXCJJbnRlZ2VyRGlnaXRzXCIsXG4gIFwiSW50ZWdlckV4cG9uZW50XCIsXG4gIFwiSW50ZWdlckxlbmd0aFwiLFxuICBcIkludGVnZXJOYW1lXCIsXG4gIFwiSW50ZWdlclBhcnRcIixcbiAgXCJJbnRlZ2VyUGFydGl0aW9uc1wiLFxuICBcIkludGVnZXJRXCIsXG4gIFwiSW50ZWdlclJldmVyc2VcIixcbiAgXCJJbnRlZ2Vyc1wiLFxuICBcIkludGVnZXJTdHJpbmdcIixcbiAgXCJJbnRlZ3JhbFwiLFxuICBcIkludGVncmF0ZVwiLFxuICBcIkludGVncmF0ZUNoYW5nZVZhcmlhYmxlc1wiLFxuICBcIkludGVyYWN0aXZlXCIsXG4gIFwiSW50ZXJhY3RpdmVUcmFkaW5nQ2hhcnRcIixcbiAgXCJJbnRlcmZhY2VTd2l0Y2hlZFwiLFxuICBcIkludGVybGFjZWRcIixcbiAgXCJJbnRlcmxlYXZpbmdcIixcbiAgXCJJbnRlcm5hbGx5QmFsYW5jZWREZWNvbXBvc2l0aW9uXCIsXG4gIFwiSW50ZXJwb2xhdGluZ0Z1bmN0aW9uXCIsXG4gIFwiSW50ZXJwb2xhdGluZ1BvbHlub21pYWxcIixcbiAgXCJJbnRlcnBvbGF0aW9uXCIsXG4gIFwiSW50ZXJwb2xhdGlvbk9yZGVyXCIsXG4gIFwiSW50ZXJwb2xhdGlvblBvaW50c1wiLFxuICBcIkludGVycG9sYXRpb25QcmVjaXNpb25cIixcbiAgXCJJbnRlcnByZXRhdGlvblwiLFxuICBcIkludGVycHJldGF0aW9uQm94XCIsXG4gIFwiSW50ZXJwcmV0YXRpb25Cb3hPcHRpb25zXCIsXG4gIFwiSW50ZXJwcmV0YXRpb25GdW5jdGlvblwiLFxuICBcIkludGVycHJldGVyXCIsXG4gIFwiSW50ZXJwcmV0VGVtcGxhdGVcIixcbiAgXCJJbnRlcnF1YXJ0aWxlUmFuZ2VcIixcbiAgXCJJbnRlcnJ1cHRcIixcbiAgXCJJbnRlcnJ1cHRTZXR0aW5nc1wiLFxuICBcIkludGVyc2VjdGVkRW50aXR5Q2xhc3NcIixcbiAgXCJJbnRlcnNlY3RpbmdRXCIsXG4gIFwiSW50ZXJzZWN0aW9uXCIsXG4gIFwiSW50ZXJ2YWxcIixcbiAgXCJJbnRlcnZhbEludGVyc2VjdGlvblwiLFxuICBcIkludGVydmFsTWFya2Vyc1wiLFxuICBcIkludGVydmFsTWFya2Vyc1N0eWxlXCIsXG4gIFwiSW50ZXJ2YWxNZW1iZXJRXCIsXG4gIFwiSW50ZXJ2YWxTbGlkZXJcIixcbiAgXCJJbnRlcnZhbFVuaW9uXCIsXG4gIFwiSW50b1wiLFxuICBcIkludmVyc2VcIixcbiAgXCJJbnZlcnNlQmV0YVJlZ3VsYXJpemVkXCIsXG4gIFwiSW52ZXJzZUJpbGF0ZXJhbExhcGxhY2VUcmFuc2Zvcm1cIixcbiAgXCJJbnZlcnNlQmlsYXRlcmFsWlRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VDREZcIixcbiAgXCJJbnZlcnNlQ2hpU3F1YXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiSW52ZXJzZUNvbnRpbnVvdXNXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZURpc3RhbmNlVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZUVsbGlwdGljTm9tZVFcIixcbiAgXCJJbnZlcnNlRXJmXCIsXG4gIFwiSW52ZXJzZUVyZmNcIixcbiAgXCJJbnZlcnNlRm91cmllclwiLFxuICBcIkludmVyc2VGb3VyaWVyQ29zVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZUZvdXJpZXJTZXF1ZW5jZVRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VGb3VyaWVyU2luVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZUZvdXJpZXJUcmFuc2Zvcm1cIixcbiAgXCJJbnZlcnNlRnVuY3Rpb25cIixcbiAgXCJJbnZlcnNlRnVuY3Rpb25zXCIsXG4gIFwiSW52ZXJzZUdhbW1hRGlzdHJpYnV0aW9uXCIsXG4gIFwiSW52ZXJzZUdhbW1hUmVndWxhcml6ZWRcIixcbiAgXCJJbnZlcnNlR2F1c3NpYW5EaXN0cmlidXRpb25cIixcbiAgXCJJbnZlcnNlR3VkZXJtYW5uaWFuXCIsXG4gIFwiSW52ZXJzZUhhbmtlbFRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VIYXZlcnNpbmVcIixcbiAgXCJJbnZlcnNlSW1hZ2VQeXJhbWlkXCIsXG4gIFwiSW52ZXJzZUphY29iaUNEXCIsXG4gIFwiSW52ZXJzZUphY29iaUNOXCIsXG4gIFwiSW52ZXJzZUphY29iaUNTXCIsXG4gIFwiSW52ZXJzZUphY29iaURDXCIsXG4gIFwiSW52ZXJzZUphY29iaUROXCIsXG4gIFwiSW52ZXJzZUphY29iaURTXCIsXG4gIFwiSW52ZXJzZUphY29iaU5DXCIsXG4gIFwiSW52ZXJzZUphY29iaU5EXCIsXG4gIFwiSW52ZXJzZUphY29iaU5TXCIsXG4gIFwiSW52ZXJzZUphY29iaVNDXCIsXG4gIFwiSW52ZXJzZUphY29iaVNEXCIsXG4gIFwiSW52ZXJzZUphY29iaVNOXCIsXG4gIFwiSW52ZXJzZUxhcGxhY2VUcmFuc2Zvcm1cIixcbiAgXCJJbnZlcnNlTWVsbGluVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZVBlcm11dGF0aW9uXCIsXG4gIFwiSW52ZXJzZVJhZG9uXCIsXG4gIFwiSW52ZXJzZVJhZG9uVHJhbnNmb3JtXCIsXG4gIFwiSW52ZXJzZVNlcmllc1wiLFxuICBcIkludmVyc2VTaG9ydFRpbWVGb3VyaWVyXCIsXG4gIFwiSW52ZXJzZVNwZWN0cm9ncmFtXCIsXG4gIFwiSW52ZXJzZVN1cnZpdmFsRnVuY3Rpb25cIixcbiAgXCJJbnZlcnNlVHJhbnNmb3JtZWRSZWdpb25cIixcbiAgXCJJbnZlcnNlV2F2ZWxldFRyYW5zZm9ybVwiLFxuICBcIkludmVyc2VXZWllcnN0cmFzc1BcIixcbiAgXCJJbnZlcnNlV2lzaGFydE1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIkludmVyc2VaVHJhbnNmb3JtXCIsXG4gIFwiSW52aXNpYmxlXCIsXG4gIFwiSW52aXNpYmxlQXBwbGljYXRpb25cIixcbiAgXCJJbnZpc2libGVUaW1lc1wiLFxuICBcIklQQWRkcmVzc1wiLFxuICBcIklycmVkdWNpYmxlUG9seW5vbWlhbFFcIixcbiAgXCJJc2xhbmREYXRhXCIsXG4gIFwiSXNvbGF0aW5nSW50ZXJ2YWxcIixcbiAgXCJJc29tb3JwaGljR3JhcGhRXCIsXG4gIFwiSXNvbW9ycGhpY1N1YmdyYXBoUVwiLFxuICBcIklzb3RvcGVEYXRhXCIsXG4gIFwiSXRhbGljXCIsXG4gIFwiSXRlbVwiLFxuICBcIkl0ZW1Bc3BlY3RSYXRpb1wiLFxuICBcIkl0ZW1Cb3hcIixcbiAgXCJJdGVtQm94T3B0aW9uc1wiLFxuICBcIkl0ZW1EaXNwbGF5RnVuY3Rpb25cIixcbiAgXCJJdGVtU2l6ZVwiLFxuICBcIkl0ZW1TdHlsZVwiLFxuICBcIkl0b1Byb2Nlc3NcIixcbiAgXCJKYWNjYXJkRGlzc2ltaWxhcml0eVwiLFxuICBcIkphY29iaUFtcGxpdHVkZVwiLFxuICBcIkphY29iaWFuXCIsXG4gIFwiSmFjb2JpQ0RcIixcbiAgXCJKYWNvYmlDTlwiLFxuICBcIkphY29iaUNTXCIsXG4gIFwiSmFjb2JpRENcIixcbiAgXCJKYWNvYmlETlwiLFxuICBcIkphY29iaURTXCIsXG4gIFwiSmFjb2JpRXBzaWxvblwiLFxuICBcIkphY29iaU5DXCIsXG4gIFwiSmFjb2JpTkRcIixcbiAgXCJKYWNvYmlOU1wiLFxuICBcIkphY29iaVBcIixcbiAgXCJKYWNvYmlTQ1wiLFxuICBcIkphY29iaVNEXCIsXG4gIFwiSmFjb2JpU05cIixcbiAgXCJKYWNvYmlTeW1ib2xcIixcbiAgXCJKYWNvYmlaZXRhXCIsXG4gIFwiSmFjb2JpWk5cIixcbiAgXCJKYW5rb0dyb3VwSjFcIixcbiAgXCJKYW5rb0dyb3VwSjJcIixcbiAgXCJKYW5rb0dyb3VwSjNcIixcbiAgXCJKYW5rb0dyb3VwSjRcIixcbiAgXCJKYXJxdWVCZXJhQUxNVGVzdFwiLFxuICBcIkpvaG5zb25EaXN0cmlidXRpb25cIixcbiAgXCJKb2luXCIsXG4gIFwiSm9pbkFjcm9zc1wiLFxuICBcIkpvaW5lZFwiLFxuICBcIkpvaW5lZEN1cnZlXCIsXG4gIFwiSm9pbmVkQ3VydmVCb3hcIixcbiAgXCJKb2luZWRDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJKb2luRm9ybVwiLFxuICBcIkpvcmRhbkRlY29tcG9zaXRpb25cIixcbiAgXCJKb3JkYW5Nb2RlbERlY29tcG9zaXRpb25cIixcbiAgXCJKdWxpYW5EYXRlXCIsXG4gIFwiSnVsaWFTZXRCb2V0dGNoZXJcIixcbiAgXCJKdWxpYVNldEl0ZXJhdGlvbkNvdW50XCIsXG4gIFwiSnVsaWFTZXRQbG90XCIsXG4gIFwiSnVsaWFTZXRQb2ludHNcIixcbiAgXCJLXCIsXG4gIFwiS2FnaUNoYXJ0XCIsXG4gIFwiS2Fpc2VyQmVzc2VsV2luZG93XCIsXG4gIFwiS2Fpc2VyV2luZG93XCIsXG4gIFwiS2FsbWFuRXN0aW1hdG9yXCIsXG4gIFwiS2FsbWFuRmlsdGVyXCIsXG4gIFwiS2FyaHVuZW5Mb2V2ZURlY29tcG9zaXRpb25cIixcbiAgXCJLYXJ5VHJlZVwiLFxuICBcIkthdHpDZW50cmFsaXR5XCIsXG4gIFwiS0NvcmVDb21wb25lbnRzXCIsXG4gIFwiS0Rpc3RyaWJ1dGlvblwiLFxuICBcIktFZGdlQ29ubmVjdGVkQ29tcG9uZW50c1wiLFxuICBcIktFZGdlQ29ubmVjdGVkR3JhcGhRXCIsXG4gIFwiS2VlcEV4aXN0aW5nVmVyc2lvblwiLFxuICBcIktlbHZpbkJlaVwiLFxuICBcIktlbHZpbkJlclwiLFxuICBcIktlbHZpbktlaVwiLFxuICBcIktlbHZpbktlclwiLFxuICBcIktlbmRhbGxUYXVcIixcbiAgXCJLZW5kYWxsVGF1VGVzdFwiLFxuICBcIktlcm5lbENvbmZpZ3VyYXRpb25cIixcbiAgXCJLZXJuZWxFeGVjdXRlXCIsXG4gIFwiS2VybmVsRnVuY3Rpb25cIixcbiAgXCJLZXJuZWxNaXh0dXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiS2VybmVsT2JqZWN0XCIsXG4gIFwiS2VybmVsc1wiLFxuICBcIktldFwiLFxuICBcIktleVwiLFxuICBcIktleUNvbGxpc2lvbkZ1bmN0aW9uXCIsXG4gIFwiS2V5Q29tcGxlbWVudFwiLFxuICBcIktleURyb3BcIixcbiAgXCJLZXlEcm9wRnJvbVwiLFxuICBcIktleUV4aXN0c1FcIixcbiAgXCJLZXlGcmVlUVwiLFxuICBcIktleUludGVyc2VjdGlvblwiLFxuICBcIktleU1hcFwiLFxuICBcIktleU1lbWJlclFcIixcbiAgXCJLZXlwb2ludFN0cmVuZ3RoXCIsXG4gIFwiS2V5c1wiLFxuICBcIktleVNlbGVjdFwiLFxuICBcIktleVNvcnRcIixcbiAgXCJLZXlTb3J0QnlcIixcbiAgXCJLZXlUYWtlXCIsXG4gIFwiS2V5VW5pb25cIixcbiAgXCJLZXlWYWx1ZU1hcFwiLFxuICBcIktleVZhbHVlUGF0dGVyblwiLFxuICBcIktoaW5jaGluXCIsXG4gIFwiS2lsbFByb2Nlc3NcIixcbiAgXCJLaXJjaGhvZmZHcmFwaFwiLFxuICBcIktpcmNoaG9mZk1hdHJpeFwiLFxuICBcIktsZWluSW52YXJpYW50SlwiLFxuICBcIktuYXBzYWNrU29sdmVcIixcbiAgXCJLbmlnaHRUb3VyR3JhcGhcIixcbiAgXCJLbm90RGF0YVwiLFxuICBcIktub3duVW5pdFFcIixcbiAgXCJLb2NoQ3VydmVcIixcbiAgXCJLb2xtb2dvcm92U21pcm5vdlRlc3RcIixcbiAgXCJLcm9uZWNrZXJEZWx0YVwiLFxuICBcIktyb25lY2tlck1vZGVsRGVjb21wb3NpdGlvblwiLFxuICBcIktyb25lY2tlclByb2R1Y3RcIixcbiAgXCJLcm9uZWNrZXJTeW1ib2xcIixcbiAgXCJLdWlwZXJUZXN0XCIsXG4gIFwiS3VtYXJhc3dhbXlEaXN0cmlidXRpb25cIixcbiAgXCJLdXJ0b3Npc1wiLFxuICBcIkt1d2FoYXJhRmlsdGVyXCIsXG4gIFwiS1ZlcnRleENvbm5lY3RlZENvbXBvbmVudHNcIixcbiAgXCJLVmVydGV4Q29ubmVjdGVkR3JhcGhRXCIsXG4gIFwiTEFCQ29sb3JcIixcbiAgXCJMYWJlbFwiLFxuICBcIkxhYmVsZWRcIixcbiAgXCJMYWJlbGVkU2xpZGVyXCIsXG4gIFwiTGFiZWxpbmdGdW5jdGlvblwiLFxuICBcIkxhYmVsaW5nU2l6ZVwiLFxuICBcIkxhYmVsU3R5bGVcIixcbiAgXCJMYWJlbFZpc2liaWxpdHlcIixcbiAgXCJMYWd1ZXJyZUxcIixcbiAgXCJMYWtlRGF0YVwiLFxuICBcIkxhbWJkYUNvbXBvbmVudHNcIixcbiAgXCJMYW1iZXJ0V1wiLFxuICBcIkxhbWVDXCIsXG4gIFwiTGFtZUNQcmltZVwiLFxuICBcIkxhbWVFaWdlbnZhbHVlQVwiLFxuICBcIkxhbWVFaWdlbnZhbHVlQlwiLFxuICBcIkxhbWVTXCIsXG4gIFwiTGFtZVNQcmltZVwiLFxuICBcIkxhbWluYURhdGFcIixcbiAgXCJMYW5jem9zV2luZG93XCIsXG4gIFwiTGFuZGF1RGlzdHJpYnV0aW9uXCIsXG4gIFwiTGFuZ3VhZ2VcIixcbiAgXCJMYW5ndWFnZUNhdGVnb3J5XCIsXG4gIFwiTGFuZ3VhZ2VEYXRhXCIsXG4gIFwiTGFuZ3VhZ2VJZGVudGlmeVwiLFxuICBcIkxhbmd1YWdlT3B0aW9uc1wiLFxuICBcIkxhcGxhY2VEaXN0cmlidXRpb25cIixcbiAgXCJMYXBsYWNlVHJhbnNmb3JtXCIsXG4gIFwiTGFwbGFjaWFuXCIsXG4gIFwiTGFwbGFjaWFuRmlsdGVyXCIsXG4gIFwiTGFwbGFjaWFuR2F1c3NpYW5GaWx0ZXJcIixcbiAgXCJMYXBsYWNpYW5QREVUZXJtXCIsXG4gIFwiTGFyZ2VcIixcbiAgXCJMYXJnZXJcIixcbiAgXCJMYXN0XCIsXG4gIFwiTGF0aXR1ZGVcIixcbiAgXCJMYXRpdHVkZUxvbmdpdHVkZVwiLFxuICBcIkxhdHRpY2VEYXRhXCIsXG4gIFwiTGF0dGljZVJlZHVjZVwiLFxuICBcIkxhdW5jaFwiLFxuICBcIkxhdW5jaEtlcm5lbHNcIixcbiAgXCJMYXllcmVkR3JhcGhQbG90XCIsXG4gIFwiTGF5ZXJlZEdyYXBoUGxvdDNEXCIsXG4gIFwiTGF5ZXJTaXplRnVuY3Rpb25cIixcbiAgXCJMYXlvdXRJbmZvcm1hdGlvblwiLFxuICBcIkxDSENvbG9yXCIsXG4gIFwiTENNXCIsXG4gIFwiTGVhZGVyU2l6ZVwiLFxuICBcIkxlYWZDb3VudFwiLFxuICBcIkxlYXBWYXJpYW50XCIsXG4gIFwiTGVhcFllYXJRXCIsXG4gIFwiTGVhcm5EaXN0cmlidXRpb25cIixcbiAgXCJMZWFybmVkRGlzdHJpYnV0aW9uXCIsXG4gIFwiTGVhcm5pbmdSYXRlXCIsXG4gIFwiTGVhcm5pbmdSYXRlTXVsdGlwbGllcnNcIixcbiAgXCJMZWFzdFNxdWFyZXNcIixcbiAgXCJMZWFzdFNxdWFyZXNGaWx0ZXJLZXJuZWxcIixcbiAgXCJMZWZ0XCIsXG4gIFwiTGVmdEFycm93XCIsXG4gIFwiTGVmdEFycm93QmFyXCIsXG4gIFwiTGVmdEFycm93UmlnaHRBcnJvd1wiLFxuICBcIkxlZnREb3duVGVlVmVjdG9yXCIsXG4gIFwiTGVmdERvd25WZWN0b3JcIixcbiAgXCJMZWZ0RG93blZlY3RvckJhclwiLFxuICBcIkxlZnRSaWdodEFycm93XCIsXG4gIFwiTGVmdFJpZ2h0VmVjdG9yXCIsXG4gIFwiTGVmdFRlZVwiLFxuICBcIkxlZnRUZWVBcnJvd1wiLFxuICBcIkxlZnRUZWVWZWN0b3JcIixcbiAgXCJMZWZ0VHJpYW5nbGVcIixcbiAgXCJMZWZ0VHJpYW5nbGVCYXJcIixcbiAgXCJMZWZ0VHJpYW5nbGVFcXVhbFwiLFxuICBcIkxlZnRVcERvd25WZWN0b3JcIixcbiAgXCJMZWZ0VXBUZWVWZWN0b3JcIixcbiAgXCJMZWZ0VXBWZWN0b3JcIixcbiAgXCJMZWZ0VXBWZWN0b3JCYXJcIixcbiAgXCJMZWZ0VmVjdG9yXCIsXG4gIFwiTGVmdFZlY3RvckJhclwiLFxuICBcIkxlZ2VuZEFwcGVhcmFuY2VcIixcbiAgXCJMZWdlbmRlZFwiLFxuICBcIkxlZ2VuZEZ1bmN0aW9uXCIsXG4gIFwiTGVnZW5kTGFiZWxcIixcbiAgXCJMZWdlbmRMYXlvdXRcIixcbiAgXCJMZWdlbmRNYXJnaW5zXCIsXG4gIFwiTGVnZW5kTWFya2Vyc1wiLFxuICBcIkxlZ2VuZE1hcmtlclNpemVcIixcbiAgXCJMZWdlbmRyZVBcIixcbiAgXCJMZWdlbmRyZVFcIixcbiAgXCJMZWdlbmRyZVR5cGVcIixcbiAgXCJMZW5ndGhcIixcbiAgXCJMZW5ndGhXaGlsZVwiLFxuICBcIkxlcmNoUGhpXCIsXG4gIFwiTGVzc1wiLFxuICBcIkxlc3NFcXVhbFwiLFxuICBcIkxlc3NFcXVhbEdyZWF0ZXJcIixcbiAgXCJMZXNzRXF1YWxUaGFuXCIsXG4gIFwiTGVzc0Z1bGxFcXVhbFwiLFxuICBcIkxlc3NHcmVhdGVyXCIsXG4gIFwiTGVzc0xlc3NcIixcbiAgXCJMZXNzU2xhbnRFcXVhbFwiLFxuICBcIkxlc3NUaGFuXCIsXG4gIFwiTGVzc1RpbGRlXCIsXG4gIFwiTGV0dGVyQ2hhcmFjdGVyXCIsXG4gIFwiTGV0dGVyQ291bnRzXCIsXG4gIFwiTGV0dGVyTnVtYmVyXCIsXG4gIFwiTGV0dGVyUVwiLFxuICBcIkxldmVsXCIsXG4gIFwiTGV2ZW5lVGVzdFwiLFxuICBcIkxldmlDaXZpdGFUZW5zb3JcIixcbiAgXCJMZXZ5RGlzdHJpYnV0aW9uXCIsXG4gIFwiTGV4aWNvZ3JhcGhpY1wiLFxuICBcIkxleGljb2dyYXBoaWNPcmRlclwiLFxuICBcIkxleGljb2dyYXBoaWNTb3J0XCIsXG4gIFwiTGlicmFyeURhdGFUeXBlXCIsXG4gIFwiTGlicmFyeUZ1bmN0aW9uXCIsXG4gIFwiTGlicmFyeUZ1bmN0aW9uRGVjbGFyYXRpb25cIixcbiAgXCJMaWJyYXJ5RnVuY3Rpb25FcnJvclwiLFxuICBcIkxpYnJhcnlGdW5jdGlvbkluZm9ybWF0aW9uXCIsXG4gIFwiTGlicmFyeUZ1bmN0aW9uTG9hZFwiLFxuICBcIkxpYnJhcnlGdW5jdGlvblVubG9hZFwiLFxuICBcIkxpYnJhcnlMb2FkXCIsXG4gIFwiTGlicmFyeVVubG9hZFwiLFxuICBcIkxpY2Vuc2VFbnRpdGxlbWVudE9iamVjdFwiLFxuICBcIkxpY2Vuc2VFbnRpdGxlbWVudHNcIixcbiAgXCJMaWNlbnNlSURcIixcbiAgXCJMaWNlbnNpbmdTZXR0aW5nc1wiLFxuICBcIkxpZnRpbmdGaWx0ZXJEYXRhXCIsXG4gIFwiTGlmdGluZ1dhdmVsZXRUcmFuc2Zvcm1cIixcbiAgXCJMaWdodEJsdWVcIixcbiAgXCJMaWdodEJyb3duXCIsXG4gIFwiTGlnaHRDeWFuXCIsXG4gIFwiTGlnaHRlclwiLFxuICBcIkxpZ2h0R3JheVwiLFxuICBcIkxpZ2h0R3JlZW5cIixcbiAgXCJMaWdodGluZ1wiLFxuICBcIkxpZ2h0aW5nQW5nbGVcIixcbiAgXCJMaWdodE1hZ2VudGFcIixcbiAgXCJMaWdodE9yYW5nZVwiLFxuICBcIkxpZ2h0UGlua1wiLFxuICBcIkxpZ2h0UHVycGxlXCIsXG4gIFwiTGlnaHRSZWRcIixcbiAgXCJMaWdodFNvdXJjZXNcIixcbiAgXCJMaWdodFllbGxvd1wiLFxuICBcIkxpa2VsaWhvb2RcIixcbiAgXCJMaW1pdFwiLFxuICBcIkxpbWl0c1Bvc2l0aW9uaW5nXCIsXG4gIFwiTGltaXRzUG9zaXRpb25pbmdUb2tlbnNcIixcbiAgXCJMaW5kbGV5RGlzdHJpYnV0aW9uXCIsXG4gIFwiTGluZVwiLFxuICBcIkxpbmUzREJveFwiLFxuICBcIkxpbmUzREJveE9wdGlvbnNcIixcbiAgXCJMaW5lYXJGaWx0ZXJcIixcbiAgXCJMaW5lYXJGcmFjdGlvbmFsT3B0aW1pemF0aW9uXCIsXG4gIFwiTGluZWFyRnJhY3Rpb25hbFRyYW5zZm9ybVwiLFxuICBcIkxpbmVhckdyYWRpZW50RmlsbGluZ1wiLFxuICBcIkxpbmVhckdyYWRpZW50SW1hZ2VcIixcbiAgXCJMaW5lYXJpemluZ1RyYW5zZm9ybWF0aW9uRGF0YVwiLFxuICBcIkxpbmVhckxheWVyXCIsXG4gIFwiTGluZWFyTW9kZWxGaXRcIixcbiAgXCJMaW5lYXJPZmZzZXRGdW5jdGlvblwiLFxuICBcIkxpbmVhck9wdGltaXphdGlvblwiLFxuICBcIkxpbmVhclByb2dyYW1taW5nXCIsXG4gIFwiTGluZWFyUmVjdXJyZW5jZVwiLFxuICBcIkxpbmVhclNvbHZlXCIsXG4gIFwiTGluZWFyU29sdmVGdW5jdGlvblwiLFxuICBcIkxpbmVCb3hcIixcbiAgXCJMaW5lQm94T3B0aW9uc1wiLFxuICBcIkxpbmVCcmVha1wiLFxuICBcIkxpbmVicmVha0FkanVzdG1lbnRzXCIsXG4gIFwiTGluZUJyZWFrQ2hhcnRcIixcbiAgXCJMaW5lYnJlYWtTZW1pY29sb25XZWlnaHRpbmdcIixcbiAgXCJMaW5lQnJlYWtXaXRoaW5cIixcbiAgXCJMaW5lQ29sb3JcIixcbiAgXCJMaW5lR3JhcGhcIixcbiAgXCJMaW5lSW5kZW50XCIsXG4gIFwiTGluZUluZGVudE1heEZyYWN0aW9uXCIsXG4gIFwiTGluZUludGVncmFsQ29udm9sdXRpb25QbG90XCIsXG4gIFwiTGluZUludGVncmFsQ29udm9sdXRpb25TY2FsZVwiLFxuICBcIkxpbmVMZWdlbmRcIixcbiAgXCJMaW5lT3BhY2l0eVwiLFxuICBcIkxpbmVTcGFjaW5nXCIsXG4gIFwiTGluZVdyYXBQYXJ0c1wiLFxuICBcIkxpbmtBY3RpdmF0ZVwiLFxuICBcIkxpbmtDbG9zZVwiLFxuICBcIkxpbmtDb25uZWN0XCIsXG4gIFwiTGlua0Nvbm5lY3RlZFFcIixcbiAgXCJMaW5rQ3JlYXRlXCIsXG4gIFwiTGlua0Vycm9yXCIsXG4gIFwiTGlua0ZsdXNoXCIsXG4gIFwiTGlua0Z1bmN0aW9uXCIsXG4gIFwiTGlua0hvc3RcIixcbiAgXCJMaW5rSW50ZXJydXB0XCIsXG4gIFwiTGlua0xhdW5jaFwiLFxuICBcIkxpbmtNb2RlXCIsXG4gIFwiTGlua09iamVjdFwiLFxuICBcIkxpbmtPcGVuXCIsXG4gIFwiTGlua09wdGlvbnNcIixcbiAgXCJMaW5rUGF0dGVybnNcIixcbiAgXCJMaW5rUHJvdG9jb2xcIixcbiAgXCJMaW5rUmFua0NlbnRyYWxpdHlcIixcbiAgXCJMaW5rUmVhZFwiLFxuICBcIkxpbmtSZWFkSGVsZFwiLFxuICBcIkxpbmtSZWFkeVFcIixcbiAgXCJMaW5rc1wiLFxuICBcIkxpbmtTZXJ2aWNlXCIsXG4gIFwiTGlua1dyaXRlXCIsXG4gIFwiTGlua1dyaXRlSGVsZFwiLFxuICBcIkxpb3V2aWxsZUxhbWJkYVwiLFxuICBcIkxpc3RcIixcbiAgXCJMaXN0YWJsZVwiLFxuICBcIkxpc3RBbmltYXRlXCIsXG4gIFwiTGlzdENvbnRvdXJQbG90XCIsXG4gIFwiTGlzdENvbnRvdXJQbG90M0RcIixcbiAgXCJMaXN0Q29udm9sdmVcIixcbiAgXCJMaXN0Q29ycmVsYXRlXCIsXG4gIFwiTGlzdEN1cnZlUGF0aFBsb3RcIixcbiAgXCJMaXN0RGVjb252b2x2ZVwiLFxuICBcIkxpc3REZW5zaXR5UGxvdFwiLFxuICBcIkxpc3REZW5zaXR5UGxvdDNEXCIsXG4gIFwiTGlzdGVuXCIsXG4gIFwiTGlzdEZvcm1hdFwiLFxuICBcIkxpc3RGb3VyaWVyU2VxdWVuY2VUcmFuc2Zvcm1cIixcbiAgXCJMaXN0SW50ZXJwb2xhdGlvblwiLFxuICBcIkxpc3RMaW5lSW50ZWdyYWxDb252b2x1dGlvblBsb3RcIixcbiAgXCJMaXN0TGluZVBsb3RcIixcbiAgXCJMaXN0TGluZVBsb3QzRFwiLFxuICBcIkxpc3RMb2dMaW5lYXJQbG90XCIsXG4gIFwiTGlzdExvZ0xvZ1Bsb3RcIixcbiAgXCJMaXN0TG9nUGxvdFwiLFxuICBcIkxpc3RQaWNrZXJcIixcbiAgXCJMaXN0UGlja2VyQm94XCIsXG4gIFwiTGlzdFBpY2tlckJveEJhY2tncm91bmRcIixcbiAgXCJMaXN0UGlja2VyQm94T3B0aW9uc1wiLFxuICBcIkxpc3RQbGF5XCIsXG4gIFwiTGlzdFBsb3RcIixcbiAgXCJMaXN0UGxvdDNEXCIsXG4gIFwiTGlzdFBvaW50UGxvdDNEXCIsXG4gIFwiTGlzdFBvbGFyUGxvdFwiLFxuICBcIkxpc3RRXCIsXG4gIFwiTGlzdFNsaWNlQ29udG91clBsb3QzRFwiLFxuICBcIkxpc3RTbGljZURlbnNpdHlQbG90M0RcIixcbiAgXCJMaXN0U2xpY2VWZWN0b3JQbG90M0RcIixcbiAgXCJMaXN0U3RlcFBsb3RcIixcbiAgXCJMaXN0U3RyZWFtRGVuc2l0eVBsb3RcIixcbiAgXCJMaXN0U3RyZWFtUGxvdFwiLFxuICBcIkxpc3RTdHJlYW1QbG90M0RcIixcbiAgXCJMaXN0U3VyZmFjZVBsb3QzRFwiLFxuICBcIkxpc3RWZWN0b3JEZW5zaXR5UGxvdFwiLFxuICBcIkxpc3RWZWN0b3JEaXNwbGFjZW1lbnRQbG90XCIsXG4gIFwiTGlzdFZlY3RvckRpc3BsYWNlbWVudFBsb3QzRFwiLFxuICBcIkxpc3RWZWN0b3JQbG90XCIsXG4gIFwiTGlzdFZlY3RvclBsb3QzRFwiLFxuICBcIkxpc3RaVHJhbnNmb3JtXCIsXG4gIFwiTGl0ZXJhbFwiLFxuICBcIkxpdGVyYWxTZWFyY2hcIixcbiAgXCJMaXRlcmFsVHlwZVwiLFxuICBcIkxvYWRDb21waWxlZENvbXBvbmVudFwiLFxuICBcIkxvY2FsQWRhcHRpdmVCaW5hcml6ZVwiLFxuICBcIkxvY2FsQ2FjaGVcIixcbiAgXCJMb2NhbENsdXN0ZXJpbmdDb2VmZmljaWVudFwiLFxuICBcIkxvY2FsRXZhbHVhdGVcIixcbiAgXCJMb2NhbGl6ZURlZmluaXRpb25zXCIsXG4gIFwiTG9jYWxpemVWYXJpYWJsZXNcIixcbiAgXCJMb2NhbE9iamVjdFwiLFxuICBcIkxvY2FsT2JqZWN0c1wiLFxuICBcIkxvY2FsUmVzcG9uc2VOb3JtYWxpemF0aW9uTGF5ZXJcIixcbiAgXCJMb2NhbFN1Ym1pdFwiLFxuICBcIkxvY2FsU3ltYm9sXCIsXG4gIFwiTG9jYWxUaW1lXCIsXG4gIFwiTG9jYWxUaW1lWm9uZVwiLFxuICBcIkxvY2F0aW9uRXF1aXZhbGVuY2VUZXN0XCIsXG4gIFwiTG9jYXRpb25UZXN0XCIsXG4gIFwiTG9jYXRvclwiLFxuICBcIkxvY2F0b3JBdXRvQ3JlYXRlXCIsXG4gIFwiTG9jYXRvckJveFwiLFxuICBcIkxvY2F0b3JCb3hPcHRpb25zXCIsXG4gIFwiTG9jYXRvckNlbnRlcmluZ1wiLFxuICBcIkxvY2F0b3JQYW5lXCIsXG4gIFwiTG9jYXRvclBhbmVCb3hcIixcbiAgXCJMb2NhdG9yUGFuZUJveE9wdGlvbnNcIixcbiAgXCJMb2NhdG9yUmVnaW9uXCIsXG4gIFwiTG9ja2VkXCIsXG4gIFwiTG9nXCIsXG4gIFwiTG9nMTBcIixcbiAgXCJMb2cyXCIsXG4gIFwiTG9nQmFybmVzR1wiLFxuICBcIkxvZ0dhbW1hXCIsXG4gIFwiTG9nR2FtbWFEaXN0cmlidXRpb25cIixcbiAgXCJMb2dpY2FsRXhwYW5kXCIsXG4gIFwiTG9nSW50ZWdyYWxcIixcbiAgXCJMb2dpc3RpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIkxvZ2lzdGljU2lnbW9pZFwiLFxuICBcIkxvZ2l0TW9kZWxGaXRcIixcbiAgXCJMb2dMaWtlbGlob29kXCIsXG4gIFwiTG9nTGluZWFyUGxvdFwiLFxuICBcIkxvZ0xvZ2lzdGljRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9nTG9nUGxvdFwiLFxuICBcIkxvZ011bHRpbm9ybWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9nTm9ybWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9nUGxvdFwiLFxuICBcIkxvZ1JhbmtUZXN0XCIsXG4gIFwiTG9nU2VyaWVzRGlzdHJpYnV0aW9uXCIsXG4gIFwiTG9uZ0VxdWFsXCIsXG4gIFwiTG9uZ2VzdFwiLFxuICBcIkxvbmdlc3RDb21tb25TZXF1ZW5jZVwiLFxuICBcIkxvbmdlc3RDb21tb25TZXF1ZW5jZVBvc2l0aW9uc1wiLFxuICBcIkxvbmdlc3RDb21tb25TdWJzZXF1ZW5jZVwiLFxuICBcIkxvbmdlc3RDb21tb25TdWJzZXF1ZW5jZVBvc2l0aW9uc1wiLFxuICBcIkxvbmdlc3RNYXRjaFwiLFxuICBcIkxvbmdlc3RPcmRlcmVkU2VxdWVuY2VcIixcbiAgXCJMb25nRm9ybVwiLFxuICBcIkxvbmdpdHVkZVwiLFxuICBcIkxvbmdMZWZ0QXJyb3dcIixcbiAgXCJMb25nTGVmdFJpZ2h0QXJyb3dcIixcbiAgXCJMb25nUmlnaHRBcnJvd1wiLFxuICBcIkxvbmdTaG9ydFRlcm1NZW1vcnlMYXllclwiLFxuICBcIkxvb2t1cFwiLFxuICBcIkxvb3BiYWNrXCIsXG4gIFwiTG9vcEZyZWVHcmFwaFFcIixcbiAgXCJMb29waW5nXCIsXG4gIFwiTG9zc0Z1bmN0aW9uXCIsXG4gIFwiTG93ZXJDYXNlUVwiLFxuICBcIkxvd2VyTGVmdEFycm93XCIsXG4gIFwiTG93ZXJSaWdodEFycm93XCIsXG4gIFwiTG93ZXJUcmlhbmd1bGFyaXplXCIsXG4gIFwiTG93ZXJUcmlhbmd1bGFyTWF0cml4XCIsXG4gIFwiTG93ZXJUcmlhbmd1bGFyTWF0cml4UVwiLFxuICBcIkxvd3Bhc3NGaWx0ZXJcIixcbiAgXCJMUUVzdGltYXRvckdhaW5zXCIsXG4gIFwiTFFHUmVndWxhdG9yXCIsXG4gIFwiTFFPdXRwdXRSZWd1bGF0b3JHYWluc1wiLFxuICBcIkxRUmVndWxhdG9yR2FpbnNcIixcbiAgXCJMVUJhY2tTdWJzdGl0dXRpb25cIixcbiAgXCJMdWNhc0xcIixcbiAgXCJMdWNjaW9TYW1pQ29tcG9uZW50c1wiLFxuICBcIkxVRGVjb21wb3NpdGlvblwiLFxuICBcIkx1bmFyRWNsaXBzZVwiLFxuICBcIkxVVkNvbG9yXCIsXG4gIFwiTHlhcHVub3ZTb2x2ZVwiLFxuICBcIkx5b25zR3JvdXBMeVwiLFxuICBcIk1hY2hpbmVJRFwiLFxuICBcIk1hY2hpbmVOYW1lXCIsXG4gIFwiTWFjaGluZU51bWJlclFcIixcbiAgXCJNYWNoaW5lUHJlY2lzaW9uXCIsXG4gIFwiTWFjaW50b3NoU3lzdGVtUGFnZVNldHVwXCIsXG4gIFwiTWFnZW50YVwiLFxuICBcIk1hZ25pZmljYXRpb25cIixcbiAgXCJNYWduaWZ5XCIsXG4gIFwiTWFpbEFkZHJlc3NWYWxpZGF0aW9uXCIsXG4gIFwiTWFpbEV4ZWN1dGVcIixcbiAgXCJNYWlsRm9sZGVyXCIsXG4gIFwiTWFpbEl0ZW1cIixcbiAgXCJNYWlsUmVjZWl2ZXJGdW5jdGlvblwiLFxuICBcIk1haWxSZXNwb25zZUZ1bmN0aW9uXCIsXG4gIFwiTWFpbFNlYXJjaFwiLFxuICBcIk1haWxTZXJ2ZXJDb25uZWN0XCIsXG4gIFwiTWFpbFNlcnZlckNvbm5lY3Rpb25cIixcbiAgXCJNYWlsU2V0dGluZ3NcIixcbiAgXCJNYWluU29sdmVcIixcbiAgXCJNYWludGFpbkR5bmFtaWNDYWNoZXNcIixcbiAgXCJNYWpvcml0eVwiLFxuICBcIk1ha2VCb3hlc1wiLFxuICBcIk1ha2VFeHByZXNzaW9uXCIsXG4gIFwiTWFrZVJ1bGVzXCIsXG4gIFwiTWFuYWdlZExpYnJhcnlFeHByZXNzaW9uSURcIixcbiAgXCJNYW5hZ2VkTGlicmFyeUV4cHJlc3Npb25RXCIsXG4gIFwiTWFuZGVsYnJvdFNldEJvZXR0Y2hlclwiLFxuICBcIk1hbmRlbGJyb3RTZXREaXN0YW5jZVwiLFxuICBcIk1hbmRlbGJyb3RTZXRJdGVyYXRpb25Db3VudFwiLFxuICBcIk1hbmRlbGJyb3RTZXRNZW1iZXJRXCIsXG4gIFwiTWFuZGVsYnJvdFNldFBsb3RcIixcbiAgXCJNYW5nb2xkdExhbWJkYVwiLFxuICBcIk1hbmhhdHRhbkRpc3RhbmNlXCIsXG4gIFwiTWFuaXB1bGF0ZVwiLFxuICBcIk1hbmlwdWxhdG9yXCIsXG4gIFwiTWFubmVkU3BhY2VNaXNzaW9uRGF0YVwiLFxuICBcIk1hbm5XaGl0bmV5VGVzdFwiLFxuICBcIk1hbnRpc3NhRXhwb25lbnRcIixcbiAgXCJNYW51YWxcIixcbiAgXCJNYXBcIixcbiAgXCJNYXBBbGxcIixcbiAgXCJNYXBBcHBseVwiLFxuICBcIk1hcEF0XCIsXG4gIFwiTWFwSW5kZXhlZFwiLFxuICBcIk1BUHJvY2Vzc1wiLFxuICBcIk1hcFRocmVhZFwiLFxuICBcIk1hcmNoZW5rb1Bhc3R1ckRpc3RyaWJ1dGlvblwiLFxuICBcIk1hcmN1bVFcIixcbiAgXCJNYXJkaWFDb21iaW5lZFRlc3RcIixcbiAgXCJNYXJkaWFLdXJ0b3Npc1Rlc3RcIixcbiAgXCJNYXJkaWFTa2V3bmVzc1Rlc3RcIixcbiAgXCJNYXJnaW5hbERpc3RyaWJ1dGlvblwiLFxuICBcIk1hcmtvdlByb2Nlc3NQcm9wZXJ0aWVzXCIsXG4gIFwiTWFza2luZ1wiLFxuICBcIk1hc3NDb25jZW50cmF0aW9uQ29uZGl0aW9uXCIsXG4gIFwiTWFzc0ZsdXhWYWx1ZVwiLFxuICBcIk1hc3NJbXBlcm1lYWJsZUJvdW5kYXJ5VmFsdWVcIixcbiAgXCJNYXNzT3V0Zmxvd1ZhbHVlXCIsXG4gIFwiTWFzc1N5bW1ldHJ5VmFsdWVcIixcbiAgXCJNYXNzVHJhbnNmZXJWYWx1ZVwiLFxuICBcIk1hc3NUcmFuc3BvcnRQREVDb21wb25lbnRcIixcbiAgXCJNYXRjaGluZ0Rpc3NpbWlsYXJpdHlcIixcbiAgXCJNYXRjaExvY2FsTmFtZVFcIixcbiAgXCJNYXRjaExvY2FsTmFtZXNcIixcbiAgXCJNYXRjaFFcIixcbiAgXCJNYXRlcmlhbFwiLFxuICBcIk1hdGVyaWFsU2hhZGluZ1wiLFxuICBcIk1hdGVyblBvaW50UHJvY2Vzc1wiLFxuICBcIk1hdGhlbWF0aWNhbEZ1bmN0aW9uRGF0YVwiLFxuICBcIk1hdGhlbWF0aWNhTm90YXRpb25cIixcbiAgXCJNYXRoaWV1Q1wiLFxuICBcIk1hdGhpZXVDaGFyYWN0ZXJpc3RpY0FcIixcbiAgXCJNYXRoaWV1Q2hhcmFjdGVyaXN0aWNCXCIsXG4gIFwiTWF0aGlldUNoYXJhY3RlcmlzdGljRXhwb25lbnRcIixcbiAgXCJNYXRoaWV1Q1ByaW1lXCIsXG4gIFwiTWF0aGlldUdyb3VwTTExXCIsXG4gIFwiTWF0aGlldUdyb3VwTTEyXCIsXG4gIFwiTWF0aGlldUdyb3VwTTIyXCIsXG4gIFwiTWF0aGlldUdyb3VwTTIzXCIsXG4gIFwiTWF0aGlldUdyb3VwTTI0XCIsXG4gIFwiTWF0aGlldVNcIixcbiAgXCJNYXRoaWV1U1ByaW1lXCIsXG4gIFwiTWF0aE1MRm9ybVwiLFxuICBcIk1hdGhNTFRleHRcIixcbiAgXCJNYXRyaWNlc1wiLFxuICBcIk1hdHJpeEV4cFwiLFxuICBcIk1hdHJpeEZvcm1cIixcbiAgXCJNYXRyaXhGdW5jdGlvblwiLFxuICBcIk1hdHJpeExvZ1wiLFxuICBcIk1hdHJpeE5vcm1hbERpc3RyaWJ1dGlvblwiLFxuICBcIk1hdHJpeFBsb3RcIixcbiAgXCJNYXRyaXhQb3dlclwiLFxuICBcIk1hdHJpeFByb3BlcnR5RGlzdHJpYnV0aW9uXCIsXG4gIFwiTWF0cml4UVwiLFxuICBcIk1hdHJpeFJhbmtcIixcbiAgXCJNYXRyaXhURGlzdHJpYnV0aW9uXCIsXG4gIFwiTWF4XCIsXG4gIFwiTWF4QmVuZFwiLFxuICBcIk1heENlbGxNZWFzdXJlXCIsXG4gIFwiTWF4Q29sb3JEaXN0YW5jZVwiLFxuICBcIk1heERhdGVcIixcbiAgXCJNYXhEZXRlY3RcIixcbiAgXCJNYXhEaXNwbGF5ZWRDaGlsZHJlblwiLFxuICBcIk1heER1cmF0aW9uXCIsXG4gIFwiTWF4RXh0cmFCYW5kd2lkdGhzXCIsXG4gIFwiTWF4RXh0cmFDb25kaXRpb25zXCIsXG4gIFwiTWF4RmVhdHVyZURpc3BsYWNlbWVudFwiLFxuICBcIk1heEZlYXR1cmVzXCIsXG4gIFwiTWF4RmlsdGVyXCIsXG4gIFwiTWF4aW1hbEJ5XCIsXG4gIFwiTWF4aW1pemVcIixcbiAgXCJNYXhJdGVtc1wiLFxuICBcIk1heEl0ZXJhdGlvbnNcIixcbiAgXCJNYXhMaW1pdFwiLFxuICBcIk1heE1lbW9yeVVzZWRcIixcbiAgXCJNYXhNaXh0dXJlS2VybmVsc1wiLFxuICBcIk1heE92ZXJsYXBGcmFjdGlvblwiLFxuICBcIk1heFBsb3RQb2ludHNcIixcbiAgXCJNYXhQb2ludHNcIixcbiAgXCJNYXhSZWN1cnNpb25cIixcbiAgXCJNYXhTdGFibGVEaXN0cmlidXRpb25cIixcbiAgXCJNYXhTdGVwRnJhY3Rpb25cIixcbiAgXCJNYXhTdGVwc1wiLFxuICBcIk1heFN0ZXBTaXplXCIsXG4gIFwiTWF4VHJhaW5pbmdSb3VuZHNcIixcbiAgXCJNYXhWYWx1ZVwiLFxuICBcIk1heHdlbGxEaXN0cmlidXRpb25cIixcbiAgXCJNYXhXb3JkR2FwXCIsXG4gIFwiTWNMYXVnaGxpbkdyb3VwTWNMXCIsXG4gIFwiTWVhblwiLFxuICBcIk1lYW5BYnNvbHV0ZUxvc3NMYXllclwiLFxuICBcIk1lYW5Bcm91bmRcIixcbiAgXCJNZWFuQ2x1c3RlcmluZ0NvZWZmaWNpZW50XCIsXG4gIFwiTWVhbkRlZ3JlZUNvbm5lY3Rpdml0eVwiLFxuICBcIk1lYW5EZXZpYXRpb25cIixcbiAgXCJNZWFuRmlsdGVyXCIsXG4gIFwiTWVhbkdyYXBoRGlzdGFuY2VcIixcbiAgXCJNZWFuTmVpZ2hib3JEZWdyZWVcIixcbiAgXCJNZWFuUG9pbnREZW5zaXR5XCIsXG4gIFwiTWVhblNoaWZ0XCIsXG4gIFwiTWVhblNoaWZ0RmlsdGVyXCIsXG4gIFwiTWVhblNxdWFyZWRMb3NzTGF5ZXJcIixcbiAgXCJNZWRpYW5cIixcbiAgXCJNZWRpYW5EZXZpYXRpb25cIixcbiAgXCJNZWRpYW5GaWx0ZXJcIixcbiAgXCJNZWRpY2FsVGVzdERhdGFcIixcbiAgXCJNZWRpdW1cIixcbiAgXCJNZWlqZXJHXCIsXG4gIFwiTWVpamVyR1JlZHVjZVwiLFxuICBcIk1laXhuZXJEaXN0cmlidXRpb25cIixcbiAgXCJNZWxsaW5Db252b2x2ZVwiLFxuICBcIk1lbGxpblRyYW5zZm9ybVwiLFxuICBcIk1lbWJlclFcIixcbiAgXCJNZW1vcnlBdmFpbGFibGVcIixcbiAgXCJNZW1vcnlDb25zdHJhaW5lZFwiLFxuICBcIk1lbW9yeUNvbnN0cmFpbnRcIixcbiAgXCJNZW1vcnlJblVzZVwiLFxuICBcIk1lbmdlck1lc2hcIixcbiAgXCJNZW51XCIsXG4gIFwiTWVudUFwcGVhcmFuY2VcIixcbiAgXCJNZW51Q29tbWFuZEtleVwiLFxuICBcIk1lbnVFdmFsdWF0b3JcIixcbiAgXCJNZW51SXRlbVwiLFxuICBcIk1lbnVMaXN0XCIsXG4gIFwiTWVudVBhY2tldFwiLFxuICBcIk1lbnVTb3J0aW5nVmFsdWVcIixcbiAgXCJNZW51U3R5bGVcIixcbiAgXCJNZW51Vmlld1wiLFxuICBcIk1lcmdlXCIsXG4gIFwiTWVyZ2VEaWZmZXJlbmNlc1wiLFxuICBcIk1lcmdpbmdGdW5jdGlvblwiLFxuICBcIk1lcnNlbm5lUHJpbWVFeHBvbmVudFwiLFxuICBcIk1lcnNlbm5lUHJpbWVFeHBvbmVudFFcIixcbiAgXCJNZXNoXCIsXG4gIFwiTWVzaENlbGxDZW50cm9pZFwiLFxuICBcIk1lc2hDZWxsQ291bnRcIixcbiAgXCJNZXNoQ2VsbEhpZ2hsaWdodFwiLFxuICBcIk1lc2hDZWxsSW5kZXhcIixcbiAgXCJNZXNoQ2VsbExhYmVsXCIsXG4gIFwiTWVzaENlbGxNYXJrZXJcIixcbiAgXCJNZXNoQ2VsbE1lYXN1cmVcIixcbiAgXCJNZXNoQ2VsbFF1YWxpdHlcIixcbiAgXCJNZXNoQ2VsbHNcIixcbiAgXCJNZXNoQ2VsbFNoYXBlRnVuY3Rpb25cIixcbiAgXCJNZXNoQ2VsbFN0eWxlXCIsXG4gIFwiTWVzaENvbm5lY3Rpdml0eUdyYXBoXCIsXG4gIFwiTWVzaENvb3JkaW5hdGVzXCIsXG4gIFwiTWVzaEZ1bmN0aW9uc1wiLFxuICBcIk1lc2hQcmltaXRpdmVzXCIsXG4gIFwiTWVzaFF1YWxpdHlHb2FsXCIsXG4gIFwiTWVzaFJhbmdlXCIsXG4gIFwiTWVzaFJlZmluZW1lbnRGdW5jdGlvblwiLFxuICBcIk1lc2hSZWdpb25cIixcbiAgXCJNZXNoUmVnaW9uUVwiLFxuICBcIk1lc2hTaGFkaW5nXCIsXG4gIFwiTWVzaFN0eWxlXCIsXG4gIFwiTWVzc2FnZVwiLFxuICBcIk1lc3NhZ2VEaWFsb2dcIixcbiAgXCJNZXNzYWdlTGlzdFwiLFxuICBcIk1lc3NhZ2VOYW1lXCIsXG4gIFwiTWVzc2FnZU9iamVjdFwiLFxuICBcIk1lc3NhZ2VPcHRpb25zXCIsXG4gIFwiTWVzc2FnZVBhY2tldFwiLFxuICBcIk1lc3NhZ2VzXCIsXG4gIFwiTWVzc2FnZXNOb3RlYm9va1wiLFxuICBcIk1ldGFDaGFyYWN0ZXJzXCIsXG4gIFwiTWV0YUluZm9ybWF0aW9uXCIsXG4gIFwiTWV0ZW9yU2hvd2VyRGF0YVwiLFxuICBcIk1ldGhvZFwiLFxuICBcIk1ldGhvZE9wdGlvbnNcIixcbiAgXCJNZXhpY2FuSGF0V2F2ZWxldFwiLFxuICBcIk1leWVyV2F2ZWxldFwiLFxuICBcIk1pZHBvaW50XCIsXG4gIFwiTUlNRVR5cGVUb0Zvcm1hdExpc3RcIixcbiAgXCJNaW5cIixcbiAgXCJNaW5Db2xvckRpc3RhbmNlXCIsXG4gIFwiTWluRGF0ZVwiLFxuICBcIk1pbkRldGVjdFwiLFxuICBcIk1pbmVyYWxEYXRhXCIsXG4gIFwiTWluRmlsdGVyXCIsXG4gIFwiTWluaW1hbEJ5XCIsXG4gIFwiTWluaW1hbFBvbHlub21pYWxcIixcbiAgXCJNaW5pbWFsU3RhdGVTcGFjZU1vZGVsXCIsXG4gIFwiTWluaW1pemVcIixcbiAgXCJNaW5pbXVtVGltZUluY3JlbWVudFwiLFxuICBcIk1pbkludGVydmFsU2l6ZVwiLFxuICBcIk1pbmtvd3NraVF1ZXN0aW9uTWFya1wiLFxuICBcIk1pbkxpbWl0XCIsXG4gIFwiTWluTWF4XCIsXG4gIFwiTWlub3JQbGFuZXREYXRhXCIsXG4gIFwiTWlub3JzXCIsXG4gIFwiTWluUG9pbnRTZXBhcmF0aW9uXCIsXG4gIFwiTWluUmVjdXJzaW9uXCIsXG4gIFwiTWluU2l6ZVwiLFxuICBcIk1pblN0YWJsZURpc3RyaWJ1dGlvblwiLFxuICBcIk1pbnVzXCIsXG4gIFwiTWludXNQbHVzXCIsXG4gIFwiTWluVmFsdWVcIixcbiAgXCJNaXNzaW5nXCIsXG4gIFwiTWlzc2luZ0JlaGF2aW9yXCIsXG4gIFwiTWlzc2luZ0RhdGFNZXRob2RcIixcbiAgXCJNaXNzaW5nRGF0YVJ1bGVzXCIsXG4gIFwiTWlzc2luZ1FcIixcbiAgXCJNaXNzaW5nU3RyaW5nXCIsXG4gIFwiTWlzc2luZ1N0eWxlXCIsXG4gIFwiTWlzc2luZ1ZhbHVlUGF0dGVyblwiLFxuICBcIk1pc3NpbmdWYWx1ZVN5bnRoZXNpc1wiLFxuICBcIk1pdHRhZ0xlZmZsZXJFXCIsXG4gIFwiTWl4ZWRGcmFjdGlvblBhcnRzXCIsXG4gIFwiTWl4ZWRHcmFwaFFcIixcbiAgXCJNaXhlZE1hZ25pdHVkZVwiLFxuICBcIk1peGVkUmFkaXhcIixcbiAgXCJNaXhlZFJhZGl4UXVhbnRpdHlcIixcbiAgXCJNaXhlZFVuaXRcIixcbiAgXCJNaXh0dXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiTW9kXCIsXG4gIFwiTW9kYWxcIixcbiAgXCJNb2RlXCIsXG4gIFwiTW9kZWxQcmVkaWN0aXZlQ29udHJvbGxlclwiLFxuICBcIk1vZHVsYXJcIixcbiAgXCJNb2R1bGFySW52ZXJzZVwiLFxuICBcIk1vZHVsYXJMYW1iZGFcIixcbiAgXCJNb2R1bGVcIixcbiAgXCJNb2R1bHVzXCIsXG4gIFwiTW9lYml1c011XCIsXG4gIFwiTW9sZWN1bGVcIixcbiAgXCJNb2xlY3VsZUFsaWduXCIsXG4gIFwiTW9sZWN1bGVDb250YWluc1FcIixcbiAgXCJNb2xlY3VsZURyYXdcIixcbiAgXCJNb2xlY3VsZUVxdWl2YWxlbnRRXCIsXG4gIFwiTW9sZWN1bGVGcmVlUVwiLFxuICBcIk1vbGVjdWxlR3JhcGhcIixcbiAgXCJNb2xlY3VsZU1hdGNoUVwiLFxuICBcIk1vbGVjdWxlTWF4aW11bUNvbW1vblN1YnN0cnVjdHVyZVwiLFxuICBcIk1vbGVjdWxlTW9kaWZ5XCIsXG4gIFwiTW9sZWN1bGVOYW1lXCIsXG4gIFwiTW9sZWN1bGVQYXR0ZXJuXCIsXG4gIFwiTW9sZWN1bGVQbG90XCIsXG4gIFwiTW9sZWN1bGVQbG90M0RcIixcbiAgXCJNb2xlY3VsZVByb3BlcnR5XCIsXG4gIFwiTW9sZWN1bGVRXCIsXG4gIFwiTW9sZWN1bGVSZWNvZ25pemVcIixcbiAgXCJNb2xlY3VsZVN1YnN0cnVjdHVyZUNvdW50XCIsXG4gIFwiTW9sZWN1bGVWYWx1ZVwiLFxuICBcIk1vbWVudFwiLFxuICBcIk1vbWVudENvbnZlcnRcIixcbiAgXCJNb21lbnRFdmFsdWF0ZVwiLFxuICBcIk1vbWVudEdlbmVyYXRpbmdGdW5jdGlvblwiLFxuICBcIk1vbWVudE9mSW5lcnRpYVwiLFxuICBcIk1vbmRheVwiLFxuICBcIk1vbml0b3JcIixcbiAgXCJNb25vbWlhbExpc3RcIixcbiAgXCJNb25vbWlhbE9yZGVyXCIsXG4gIFwiTW9uc3Rlckdyb3VwTVwiLFxuICBcIk1vb25QaGFzZVwiLFxuICBcIk1vb25Qb3NpdGlvblwiLFxuICBcIk1vcmxldFdhdmVsZXRcIixcbiAgXCJNb3JwaG9sb2dpY2FsQmluYXJpemVcIixcbiAgXCJNb3JwaG9sb2dpY2FsQnJhbmNoUG9pbnRzXCIsXG4gIFwiTW9ycGhvbG9naWNhbENvbXBvbmVudHNcIixcbiAgXCJNb3JwaG9sb2dpY2FsRXVsZXJOdW1iZXJcIixcbiAgXCJNb3JwaG9sb2dpY2FsR3JhcGhcIixcbiAgXCJNb3JwaG9sb2dpY2FsUGVyaW1ldGVyXCIsXG4gIFwiTW9ycGhvbG9naWNhbFRyYW5zZm9ybVwiLFxuICBcIk1vcnRhbGl0eURhdGFcIixcbiAgXCJNb3N0XCIsXG4gIFwiTW91bnRhaW5EYXRhXCIsXG4gIFwiTW91c2VBbm5vdGF0aW9uXCIsXG4gIFwiTW91c2VBcHBlYXJhbmNlXCIsXG4gIFwiTW91c2VBcHBlYXJhbmNlVGFnXCIsXG4gIFwiTW91c2VCdXR0b25zXCIsXG4gIFwiTW91c2VvdmVyXCIsXG4gIFwiTW91c2VQb2ludGVyTm90ZVwiLFxuICBcIk1vdXNlUG9zaXRpb25cIixcbiAgXCJNb3ZpZURhdGFcIixcbiAgXCJNb3ZpbmdBdmVyYWdlXCIsXG4gIFwiTW92aW5nTWFwXCIsXG4gIFwiTW92aW5nTWVkaWFuXCIsXG4gIFwiTW95YWxEaXN0cmlidXRpb25cIixcbiAgXCJNdWx0aWF4aXNBcnJhbmdlbWVudFwiLFxuICBcIk11bHRpY29sdW1uXCIsXG4gIFwiTXVsdGllZGdlU3R5bGVcIixcbiAgXCJNdWx0aWdyYXBoUVwiLFxuICBcIk11bHRpbGF1bmNoV2FybmluZ1wiLFxuICBcIk11bHRpTGV0dGVySXRhbGljc1wiLFxuICBcIk11bHRpTGV0dGVyU3R5bGVcIixcbiAgXCJNdWx0aWxpbmVGdW5jdGlvblwiLFxuICBcIk11bHRpbm9taWFsXCIsXG4gIFwiTXVsdGlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJNdWx0aW5vcm1hbERpc3RyaWJ1dGlvblwiLFxuICBcIk11bHRpcGxpY2F0aXZlT3JkZXJcIixcbiAgXCJNdWx0aXBsaWNpdHlcIixcbiAgXCJNdWx0aXBseVNpZGVzXCIsXG4gIFwiTXVsdGlzY3JpcHRCb3hPcHRpb25zXCIsXG4gIFwiTXVsdGlzZWxlY3Rpb25cIixcbiAgXCJNdWx0aXZhcmlhdGVIeXBlcmdlb21ldHJpY0Rpc3RyaWJ1dGlvblwiLFxuICBcIk11bHRpdmFyaWF0ZVBvaXNzb25EaXN0cmlidXRpb25cIixcbiAgXCJNdWx0aXZhcmlhdGVURGlzdHJpYnV0aW9uXCIsXG4gIFwiTlwiLFxuICBcIk5ha2FnYW1pRGlzdHJpYnV0aW9uXCIsXG4gIFwiTmFtZVFcIixcbiAgXCJOYW1lc1wiLFxuICBcIk5hbWVzcGFjZUJveFwiLFxuICBcIk5hbWVzcGFjZUJveE9wdGlvbnNcIixcbiAgXCJOYW5kXCIsXG4gIFwiTkFyZ01heFwiLFxuICBcIk5BcmdNaW5cIixcbiAgXCJOQmVybm91bGxpQlwiLFxuICBcIk5Cb2R5U2ltdWxhdGlvblwiLFxuICBcIk5Cb2R5U2ltdWxhdGlvbkRhdGFcIixcbiAgXCJOQ2FjaGVcIixcbiAgXCJOQ2FwdXRvRFwiLFxuICBcIk5ERWlnZW5zeXN0ZW1cIixcbiAgXCJOREVpZ2VudmFsdWVzXCIsXG4gIFwiTkRTb2x2ZVwiLFxuICBcIk5EU29sdmVWYWx1ZVwiLFxuICBcIk5lYXJlc3RcIixcbiAgXCJOZWFyZXN0RnVuY3Rpb25cIixcbiAgXCJOZWFyZXN0TWVzaENlbGxzXCIsXG4gIFwiTmVhcmVzdE5laWdoYm9yR1wiLFxuICBcIk5lYXJlc3ROZWlnaGJvckdyYXBoXCIsXG4gIFwiTmVhcmVzdFRvXCIsXG4gIFwiTmVidWxhRGF0YVwiLFxuICBcIk5lZWRsZW1hbld1bnNjaFNpbWlsYXJpdHlcIixcbiAgXCJOZWVkc1wiLFxuICBcIk5lZ2F0aXZlXCIsXG4gIFwiTmVnYXRpdmVCaW5vbWlhbERpc3RyaWJ1dGlvblwiLFxuICBcIk5lZ2F0aXZlRGVmaW5pdGVNYXRyaXhRXCIsXG4gIFwiTmVnYXRpdmVJbnRlZ2Vyc1wiLFxuICBcIk5lZ2F0aXZlbHlPcmllbnRlZFBvaW50c1wiLFxuICBcIk5lZ2F0aXZlTXVsdGlub21pYWxEaXN0cmlidXRpb25cIixcbiAgXCJOZWdhdGl2ZVJhdGlvbmFsc1wiLFxuICBcIk5lZ2F0aXZlUmVhbHNcIixcbiAgXCJOZWdhdGl2ZVNlbWlkZWZpbml0ZU1hdHJpeFFcIixcbiAgXCJOZWlnaGJvcmhvb2REYXRhXCIsXG4gIFwiTmVpZ2hib3Job29kR3JhcGhcIixcbiAgXCJOZXN0XCIsXG4gIFwiTmVzdGVkR3JlYXRlckdyZWF0ZXJcIixcbiAgXCJOZXN0ZWRMZXNzTGVzc1wiLFxuICBcIk5lc3RlZFNjcmlwdFJ1bGVzXCIsXG4gIFwiTmVzdEdyYXBoXCIsXG4gIFwiTmVzdExpc3RcIixcbiAgXCJOZXN0VHJlZVwiLFxuICBcIk5lc3RXaGlsZVwiLFxuICBcIk5lc3RXaGlsZUxpc3RcIixcbiAgXCJOZXRBcHBlbmRcIixcbiAgXCJOZXRBcnJheVwiLFxuICBcIk5ldEFycmF5TGF5ZXJcIixcbiAgXCJOZXRCaWRpcmVjdGlvbmFsT3BlcmF0b3JcIixcbiAgXCJOZXRDaGFpblwiLFxuICBcIk5ldERlY29kZXJcIixcbiAgXCJOZXREZWxldGVcIixcbiAgXCJOZXREcm9wXCIsXG4gIFwiTmV0RW5jb2RlclwiLFxuICBcIk5ldEV2YWx1YXRpb25Nb2RlXCIsXG4gIFwiTmV0RXh0ZXJuYWxPYmplY3RcIixcbiAgXCJOZXRFeHRyYWN0XCIsXG4gIFwiTmV0RmxhdHRlblwiLFxuICBcIk5ldEZvbGRPcGVyYXRvclwiLFxuICBcIk5ldEdBTk9wZXJhdG9yXCIsXG4gIFwiTmV0R3JhcGhcIixcbiAgXCJOZXRJbmZvcm1hdGlvblwiLFxuICBcIk5ldEluaXRpYWxpemVcIixcbiAgXCJOZXRJbnNlcnRcIixcbiAgXCJOZXRJbnNlcnRTaGFyZWRBcnJheXNcIixcbiAgXCJOZXRKb2luXCIsXG4gIFwiTmV0TWFwT3BlcmF0b3JcIixcbiAgXCJOZXRNYXBUaHJlYWRPcGVyYXRvclwiLFxuICBcIk5ldE1lYXN1cmVtZW50c1wiLFxuICBcIk5ldE1vZGVsXCIsXG4gIFwiTmV0TmVzdE9wZXJhdG9yXCIsXG4gIFwiTmV0UGFpckVtYmVkZGluZ09wZXJhdG9yXCIsXG4gIFwiTmV0UG9ydFwiLFxuICBcIk5ldFBvcnRHcmFkaWVudFwiLFxuICBcIk5ldFByZXBlbmRcIixcbiAgXCJOZXRSZW5hbWVcIixcbiAgXCJOZXRSZXBsYWNlXCIsXG4gIFwiTmV0UmVwbGFjZVBhcnRcIixcbiAgXCJOZXRTaGFyZWRBcnJheVwiLFxuICBcIk5ldFN0YXRlT2JqZWN0XCIsXG4gIFwiTmV0VGFrZVwiLFxuICBcIk5ldFRyYWluXCIsXG4gIFwiTmV0VHJhaW5SZXN1bHRzT2JqZWN0XCIsXG4gIFwiTmV0VW5mb2xkXCIsXG4gIFwiTmV0d29ya1BhY2tldENhcHR1cmVcIixcbiAgXCJOZXR3b3JrUGFja2V0UmVjb3JkaW5nXCIsXG4gIFwiTmV0d29ya1BhY2tldFJlY29yZGluZ0R1cmluZ1wiLFxuICBcIk5ldHdvcmtQYWNrZXRUcmFjZVwiLFxuICBcIk5ldW1hbm5WYWx1ZVwiLFxuICBcIk5ldmlsbGVUaGV0YUNcIixcbiAgXCJOZXZpbGxlVGhldGFEXCIsXG4gIFwiTmV2aWxsZVRoZXRhTlwiLFxuICBcIk5ldmlsbGVUaGV0YVNcIixcbiAgXCJOZXdQcmltaXRpdmVTdHlsZVwiLFxuICBcIk5FeHBlY3RhdGlvblwiLFxuICBcIk5leHRcIixcbiAgXCJOZXh0Q2VsbFwiLFxuICBcIk5leHREYXRlXCIsXG4gIFwiTmV4dFByaW1lXCIsXG4gIFwiTmV4dFNjaGVkdWxlZFRhc2tUaW1lXCIsXG4gIFwiTmV5bWFuU2NvdHRQb2ludFByb2Nlc3NcIixcbiAgXCJORnJhY3Rpb25hbERcIixcbiAgXCJOSG9sZEFsbFwiLFxuICBcIk5Ib2xkRmlyc3RcIixcbiAgXCJOSG9sZFJlc3RcIixcbiAgXCJOaWNob2xzR3JpZExpbmVzXCIsXG4gIFwiTmljaG9sc1Bsb3RcIixcbiAgXCJOaWdodEhlbWlzcGhlcmVcIixcbiAgXCJOSW50ZWdyYXRlXCIsXG4gIFwiTk1heGltaXplXCIsXG4gIFwiTk1heFZhbHVlXCIsXG4gIFwiTk1pbmltaXplXCIsXG4gIFwiTk1pblZhbHVlXCIsXG4gIFwiTm9taW5hbFNjYWxlXCIsXG4gIFwiTm9taW5hbFZhcmlhYmxlc1wiLFxuICBcIk5vbkFzc29jaWF0aXZlXCIsXG4gIFwiTm9uY2VudHJhbEJldGFEaXN0cmlidXRpb25cIixcbiAgXCJOb25jZW50cmFsQ2hpU3F1YXJlRGlzdHJpYnV0aW9uXCIsXG4gIFwiTm9uY2VudHJhbEZSYXRpb0Rpc3RyaWJ1dGlvblwiLFxuICBcIk5vbmNlbnRyYWxTdHVkZW50VERpc3RyaWJ1dGlvblwiLFxuICBcIk5vbkNvbW11dGF0aXZlTXVsdGlwbHlcIixcbiAgXCJOb25Db25zdGFudHNcIixcbiAgXCJOb25kaW1lbnNpb25hbGl6YXRpb25UcmFuc2Zvcm1cIixcbiAgXCJOb25lXCIsXG4gIFwiTm9uZVRydWVcIixcbiAgXCJOb25saW5lYXJNb2RlbEZpdFwiLFxuICBcIk5vbmxpbmVhclN0YXRlU3BhY2VNb2RlbFwiLFxuICBcIk5vbmxvY2FsTWVhbnNGaWx0ZXJcIixcbiAgXCJOb25OZWdhdGl2ZVwiLFxuICBcIk5vbk5lZ2F0aXZlSW50ZWdlcnNcIixcbiAgXCJOb25OZWdhdGl2ZVJhdGlvbmFsc1wiLFxuICBcIk5vbk5lZ2F0aXZlUmVhbHNcIixcbiAgXCJOb25Qb3NpdGl2ZVwiLFxuICBcIk5vblBvc2l0aXZlSW50ZWdlcnNcIixcbiAgXCJOb25Qb3NpdGl2ZVJhdGlvbmFsc1wiLFxuICBcIk5vblBvc2l0aXZlUmVhbHNcIixcbiAgXCJOb3JcIixcbiAgXCJOb3JsdW5kQlwiLFxuICBcIk5vcm1cIixcbiAgXCJOb3JtYWxcIixcbiAgXCJOb3JtYWxEaXN0cmlidXRpb25cIixcbiAgXCJOb3JtYWxHcm91cGluZ1wiLFxuICBcIk5vcm1hbGl6YXRpb25MYXllclwiLFxuICBcIk5vcm1hbGl6ZVwiLFxuICBcIk5vcm1hbGl6ZWRcIixcbiAgXCJOb3JtYWxpemVkU3F1YXJlZEV1Y2xpZGVhbkRpc3RhbmNlXCIsXG4gIFwiTm9ybWFsTWF0cml4UVwiLFxuICBcIk5vcm1hbHNGdW5jdGlvblwiLFxuICBcIk5vcm1GdW5jdGlvblwiLFxuICBcIk5vdFwiLFxuICBcIk5vdENvbmdydWVudFwiLFxuICBcIk5vdEN1cENhcFwiLFxuICBcIk5vdERvdWJsZVZlcnRpY2FsQmFyXCIsXG4gIFwiTm90ZWJvb2tcIixcbiAgXCJOb3RlYm9va0FwcGx5XCIsXG4gIFwiTm90ZWJvb2tBdXRvU2F2ZVwiLFxuICBcIk5vdGVib29rQnJvd3NlRGlyZWN0b3J5XCIsXG4gIFwiTm90ZWJvb2tDbG9zZVwiLFxuICBcIk5vdGVib29rQ29udmVydFNldHRpbmdzXCIsXG4gIFwiTm90ZWJvb2tDcmVhdGVcIixcbiAgXCJOb3RlYm9va0RlZmF1bHRcIixcbiAgXCJOb3RlYm9va0RlbGV0ZVwiLFxuICBcIk5vdGVib29rRGlyZWN0b3J5XCIsXG4gIFwiTm90ZWJvb2tEeW5hbWljRXhwcmVzc2lvblwiLFxuICBcIk5vdGVib29rRXZhbHVhdGVcIixcbiAgXCJOb3RlYm9va0V2ZW50QWN0aW9uc1wiLFxuICBcIk5vdGVib29rRmlsZU5hbWVcIixcbiAgXCJOb3RlYm9va0ZpbmRcIixcbiAgXCJOb3RlYm9va0dldFwiLFxuICBcIk5vdGVib29rSW1wb3J0XCIsXG4gIFwiTm90ZWJvb2tJbmZvcm1hdGlvblwiLFxuICBcIk5vdGVib29rSW50ZXJmYWNlT2JqZWN0XCIsXG4gIFwiTm90ZWJvb2tMb2NhdGVcIixcbiAgXCJOb3RlYm9va09iamVjdFwiLFxuICBcIk5vdGVib29rT3BlblwiLFxuICBcIk5vdGVib29rUGF0aFwiLFxuICBcIk5vdGVib29rUHJpbnRcIixcbiAgXCJOb3RlYm9va1B1dFwiLFxuICBcIk5vdGVib29rUmVhZFwiLFxuICBcIk5vdGVib29rc1wiLFxuICBcIk5vdGVib29rU2F2ZVwiLFxuICBcIk5vdGVib29rU2VsZWN0aW9uXCIsXG4gIFwiTm90ZWJvb2tzTWVudVwiLFxuICBcIk5vdGVib29rVGVtcGxhdGVcIixcbiAgXCJOb3RlYm9va1dyaXRlXCIsXG4gIFwiTm90RWxlbWVudFwiLFxuICBcIk5vdEVxdWFsVGlsZGVcIixcbiAgXCJOb3RFeGlzdHNcIixcbiAgXCJOb3RHcmVhdGVyXCIsXG4gIFwiTm90R3JlYXRlckVxdWFsXCIsXG4gIFwiTm90R3JlYXRlckZ1bGxFcXVhbFwiLFxuICBcIk5vdEdyZWF0ZXJHcmVhdGVyXCIsXG4gIFwiTm90R3JlYXRlckxlc3NcIixcbiAgXCJOb3RHcmVhdGVyU2xhbnRFcXVhbFwiLFxuICBcIk5vdEdyZWF0ZXJUaWxkZVwiLFxuICBcIk5vdGhpbmdcIixcbiAgXCJOb3RIdW1wRG93bkh1bXBcIixcbiAgXCJOb3RIdW1wRXF1YWxcIixcbiAgXCJOb3RpZmljYXRpb25GdW5jdGlvblwiLFxuICBcIk5vdExlZnRUcmlhbmdsZVwiLFxuICBcIk5vdExlZnRUcmlhbmdsZUJhclwiLFxuICBcIk5vdExlZnRUcmlhbmdsZUVxdWFsXCIsXG4gIFwiTm90TGVzc1wiLFxuICBcIk5vdExlc3NFcXVhbFwiLFxuICBcIk5vdExlc3NGdWxsRXF1YWxcIixcbiAgXCJOb3RMZXNzR3JlYXRlclwiLFxuICBcIk5vdExlc3NMZXNzXCIsXG4gIFwiTm90TGVzc1NsYW50RXF1YWxcIixcbiAgXCJOb3RMZXNzVGlsZGVcIixcbiAgXCJOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlclwiLFxuICBcIk5vdE5lc3RlZExlc3NMZXNzXCIsXG4gIFwiTm90UHJlY2VkZXNcIixcbiAgXCJOb3RQcmVjZWRlc0VxdWFsXCIsXG4gIFwiTm90UHJlY2VkZXNTbGFudEVxdWFsXCIsXG4gIFwiTm90UHJlY2VkZXNUaWxkZVwiLFxuICBcIk5vdFJldmVyc2VFbGVtZW50XCIsXG4gIFwiTm90UmlnaHRUcmlhbmdsZVwiLFxuICBcIk5vdFJpZ2h0VHJpYW5nbGVCYXJcIixcbiAgXCJOb3RSaWdodFRyaWFuZ2xlRXF1YWxcIixcbiAgXCJOb3RTcXVhcmVTdWJzZXRcIixcbiAgXCJOb3RTcXVhcmVTdWJzZXRFcXVhbFwiLFxuICBcIk5vdFNxdWFyZVN1cGVyc2V0XCIsXG4gIFwiTm90U3F1YXJlU3VwZXJzZXRFcXVhbFwiLFxuICBcIk5vdFN1YnNldFwiLFxuICBcIk5vdFN1YnNldEVxdWFsXCIsXG4gIFwiTm90U3VjY2VlZHNcIixcbiAgXCJOb3RTdWNjZWVkc0VxdWFsXCIsXG4gIFwiTm90U3VjY2VlZHNTbGFudEVxdWFsXCIsXG4gIFwiTm90U3VjY2VlZHNUaWxkZVwiLFxuICBcIk5vdFN1cGVyc2V0XCIsXG4gIFwiTm90U3VwZXJzZXRFcXVhbFwiLFxuICBcIk5vdFRpbGRlXCIsXG4gIFwiTm90VGlsZGVFcXVhbFwiLFxuICBcIk5vdFRpbGRlRnVsbEVxdWFsXCIsXG4gIFwiTm90VGlsZGVUaWxkZVwiLFxuICBcIk5vdFZlcnRpY2FsQmFyXCIsXG4gIFwiTm93XCIsXG4gIFwiTm9XaGl0ZXNwYWNlXCIsXG4gIFwiTlByb2JhYmlsaXR5XCIsXG4gIFwiTlByb2R1Y3RcIixcbiAgXCJOUHJvZHVjdEZhY3RvcnNcIixcbiAgXCJOUm9vdHNcIixcbiAgXCJOU29sdmVcIixcbiAgXCJOU29sdmVWYWx1ZXNcIixcbiAgXCJOU3VtXCIsXG4gIFwiTlN1bVRlcm1zXCIsXG4gIFwiTnVjbGVhckV4cGxvc2lvbkRhdGFcIixcbiAgXCJOdWNsZWFyUmVhY3RvckRhdGFcIixcbiAgXCJOdWxsXCIsXG4gIFwiTnVsbFJlY29yZHNcIixcbiAgXCJOdWxsU3BhY2VcIixcbiAgXCJOdWxsV29yZHNcIixcbiAgXCJOdW1iZXJcIixcbiAgXCJOdW1iZXJDb21wb3NlXCIsXG4gIFwiTnVtYmVyRGVjb21wb3NlXCIsXG4gIFwiTnVtYmVyRGlnaXRcIixcbiAgXCJOdW1iZXJFeHBhbmRcIixcbiAgXCJOdW1iZXJGaWVsZENsYXNzTnVtYmVyXCIsXG4gIFwiTnVtYmVyRmllbGREaXNjcmltaW5hbnRcIixcbiAgXCJOdW1iZXJGaWVsZEZ1bmRhbWVudGFsVW5pdHNcIixcbiAgXCJOdW1iZXJGaWVsZEludGVncmFsQmFzaXNcIixcbiAgXCJOdW1iZXJGaWVsZE5vcm1SZXByZXNlbnRhdGl2ZXNcIixcbiAgXCJOdW1iZXJGaWVsZFJlZ3VsYXRvclwiLFxuICBcIk51bWJlckZpZWxkUm9vdHNPZlVuaXR5XCIsXG4gIFwiTnVtYmVyRmllbGRTaWduYXR1cmVcIixcbiAgXCJOdW1iZXJGb3JtXCIsXG4gIFwiTnVtYmVyRm9ybWF0XCIsXG4gIFwiTnVtYmVyTGluZVBsb3RcIixcbiAgXCJOdW1iZXJNYXJrc1wiLFxuICBcIk51bWJlck11bHRpcGxpZXJcIixcbiAgXCJOdW1iZXJQYWRkaW5nXCIsXG4gIFwiTnVtYmVyUG9pbnRcIixcbiAgXCJOdW1iZXJRXCIsXG4gIFwiTnVtYmVyU2VwYXJhdG9yXCIsXG4gIFwiTnVtYmVyU2lnbnNcIixcbiAgXCJOdW1iZXJTdHJpbmdcIixcbiAgXCJOdW1lcmF0b3JcIixcbiAgXCJOdW1lcmF0b3JEZW5vbWluYXRvclwiLFxuICBcIk51bWVyaWNhbE9yZGVyXCIsXG4gIFwiTnVtZXJpY2FsU29ydFwiLFxuICBcIk51bWVyaWNBcnJheVwiLFxuICBcIk51bWVyaWNBcnJheVFcIixcbiAgXCJOdW1lcmljQXJyYXlUeXBlXCIsXG4gIFwiTnVtZXJpY0Z1bmN0aW9uXCIsXG4gIFwiTnVtZXJpY1FcIixcbiAgXCJOdXR0YWxsV2luZG93XCIsXG4gIFwiTlZhbHVlc1wiLFxuICBcIk55cXVpc3RHcmlkTGluZXNcIixcbiAgXCJOeXF1aXN0UGxvdFwiLFxuICBcIk9cIixcbiAgXCJPYmplY3RFeGlzdHNRXCIsXG4gIFwiT2JzZXJ2YWJpbGl0eUdyYW1pYW5cIixcbiAgXCJPYnNlcnZhYmlsaXR5TWF0cml4XCIsXG4gIFwiT2JzZXJ2YWJsZURlY29tcG9zaXRpb25cIixcbiAgXCJPYnNlcnZhYmxlTW9kZWxRXCIsXG4gIFwiT2NlYW5EYXRhXCIsXG4gIFwiT2N0YWhlZHJvblwiLFxuICBcIk9kZFFcIixcbiAgXCJPZmZcIixcbiAgXCJPZmZzZXRcIixcbiAgXCJPTEVEYXRhXCIsXG4gIFwiT25cIixcbiAgXCJPTmFuR3JvdXBPTlwiLFxuICBcIk9uY2VcIixcbiAgXCJPbmVJZGVudGl0eVwiLFxuICBcIk9wYWNpdHlcIixcbiAgXCJPcGFjaXR5RnVuY3Rpb25cIixcbiAgXCJPcGFjaXR5RnVuY3Rpb25TY2FsaW5nXCIsXG4gIFwiT3BlblwiLFxuICBcIk9wZW5BcHBlbmRcIixcbiAgXCJPcGVuZXJcIixcbiAgXCJPcGVuZXJCb3hcIixcbiAgXCJPcGVuZXJCb3hPcHRpb25zXCIsXG4gIFwiT3BlbmVyVmlld1wiLFxuICBcIk9wZW5GdW5jdGlvbkluc3BlY3RvclBhY2tldFwiLFxuICBcIk9wZW5pbmdcIixcbiAgXCJPcGVuUmVhZFwiLFxuICBcIk9wZW5TcGVjaWFsT3B0aW9uc1wiLFxuICBcIk9wZW5UZW1wb3JhcnlcIixcbiAgXCJPcGVuV3JpdGVcIixcbiAgXCJPcGVyYXRlXCIsXG4gIFwiT3BlcmF0aW5nU3lzdGVtXCIsXG4gIFwiT3BlcmF0b3JBcHBsaWVkXCIsXG4gIFwiT3B0aW11bUZsb3dEYXRhXCIsXG4gIFwiT3B0aW9uYWxcIixcbiAgXCJPcHRpb25hbEVsZW1lbnRcIixcbiAgXCJPcHRpb25JbnNwZWN0b3JTZXR0aW5nc1wiLFxuICBcIk9wdGlvblFcIixcbiAgXCJPcHRpb25zXCIsXG4gIFwiT3B0aW9uc1BhY2tldFwiLFxuICBcIk9wdGlvbnNQYXR0ZXJuXCIsXG4gIFwiT3B0aW9uVmFsdWVcIixcbiAgXCJPcHRpb25WYWx1ZUJveFwiLFxuICBcIk9wdGlvblZhbHVlQm94T3B0aW9uc1wiLFxuICBcIk9yXCIsXG4gIFwiT3JhbmdlXCIsXG4gIFwiT3JkZXJcIixcbiAgXCJPcmRlckRpc3RyaWJ1dGlvblwiLFxuICBcIk9yZGVyZWRRXCIsXG4gIFwiT3JkZXJpbmdcIixcbiAgXCJPcmRlcmluZ0J5XCIsXG4gIFwiT3JkZXJpbmdMYXllclwiLFxuICBcIk9yZGVybGVzc1wiLFxuICBcIk9yZGVybGVzc1BhdHRlcm5TZXF1ZW5jZVwiLFxuICBcIk9yZGluYWxTY2FsZVwiLFxuICBcIk9ybnN0ZWluVWhsZW5iZWNrUHJvY2Vzc1wiLFxuICBcIk9ydGhvZ29uYWxpemVcIixcbiAgXCJPcnRob2dvbmFsTWF0cml4UVwiLFxuICBcIk91dFwiLFxuICBcIk91dGVyXCIsXG4gIFwiT3V0ZXJQb2x5Z29uXCIsXG4gIFwiT3V0ZXJQb2x5aGVkcm9uXCIsXG4gIFwiT3V0cHV0QXV0b092ZXJ3cml0ZVwiLFxuICBcIk91dHB1dENvbnRyb2xsYWJpbGl0eU1hdHJpeFwiLFxuICBcIk91dHB1dENvbnRyb2xsYWJsZU1vZGVsUVwiLFxuICBcIk91dHB1dEZvcm1cIixcbiAgXCJPdXRwdXRGb3JtRGF0YVwiLFxuICBcIk91dHB1dEdyb3VwaW5nXCIsXG4gIFwiT3V0cHV0TWF0aEVkaXRFeHByZXNzaW9uXCIsXG4gIFwiT3V0cHV0TmFtZVBhY2tldFwiLFxuICBcIk91dHB1dFBvcnRzXCIsXG4gIFwiT3V0cHV0UmVzcG9uc2VcIixcbiAgXCJPdXRwdXRTaXplTGltaXRcIixcbiAgXCJPdXRwdXRTdHJlYW1cIixcbiAgXCJPdmVyXCIsXG4gIFwiT3ZlckJhclwiLFxuICBcIk92ZXJEb3RcIixcbiAgXCJPdmVyZmxvd1wiLFxuICBcIk92ZXJIYXRcIixcbiAgXCJPdmVybGFwc1wiLFxuICBcIk92ZXJsYXlcIixcbiAgXCJPdmVybGF5Qm94XCIsXG4gIFwiT3ZlcmxheUJveE9wdGlvbnNcIixcbiAgXCJPdmVybGF5VmlkZW9cIixcbiAgXCJPdmVyc2NyaXB0XCIsXG4gIFwiT3ZlcnNjcmlwdEJveFwiLFxuICBcIk92ZXJzY3JpcHRCb3hPcHRpb25zXCIsXG4gIFwiT3ZlclRpbGRlXCIsXG4gIFwiT3ZlclZlY3RvclwiLFxuICBcIk92ZXJ3cml0ZVRhcmdldFwiLFxuICBcIk93ZW5UXCIsXG4gIFwiT3duVmFsdWVzXCIsXG4gIFwiUGFja2FnZVwiLFxuICBcIlBhY2tpbmdNZXRob2RcIixcbiAgXCJQYWNrUGFjbGV0XCIsXG4gIFwiUGFjbGV0RGF0YVJlYnVpbGRcIixcbiAgXCJQYWNsZXREaXJlY3RvcnlBZGRcIixcbiAgXCJQYWNsZXREaXJlY3RvcnlMb2FkXCIsXG4gIFwiUGFjbGV0RGlyZWN0b3J5UmVtb3ZlXCIsXG4gIFwiUGFjbGV0RGlyZWN0b3J5VW5sb2FkXCIsXG4gIFwiUGFjbGV0RGlzYWJsZVwiLFxuICBcIlBhY2xldEVuYWJsZVwiLFxuICBcIlBhY2xldEZpbmRcIixcbiAgXCJQYWNsZXRGaW5kUmVtb3RlXCIsXG4gIFwiUGFjbGV0SW5mb3JtYXRpb25cIixcbiAgXCJQYWNsZXRJbnN0YWxsXCIsXG4gIFwiUGFjbGV0SW5zdGFsbFN1Ym1pdFwiLFxuICBcIlBhY2xldE5ld2VyUVwiLFxuICBcIlBhY2xldE9iamVjdFwiLFxuICBcIlBhY2xldE9iamVjdFFcIixcbiAgXCJQYWNsZXRTaXRlXCIsXG4gIFwiUGFjbGV0U2l0ZU9iamVjdFwiLFxuICBcIlBhY2xldFNpdGVSZWdpc3RlclwiLFxuICBcIlBhY2xldFNpdGVzXCIsXG4gIFwiUGFjbGV0U2l0ZVVucmVnaXN0ZXJcIixcbiAgXCJQYWNsZXRTaXRlVXBkYXRlXCIsXG4gIFwiUGFjbGV0U3ltYm9sXCIsXG4gIFwiUGFjbGV0VW5pbnN0YWxsXCIsXG4gIFwiUGFjbGV0VXBkYXRlXCIsXG4gIFwiUGFkZGVkRm9ybVwiLFxuICBcIlBhZGRpbmdcIixcbiAgXCJQYWRkaW5nTGF5ZXJcIixcbiAgXCJQYWRkaW5nU2l6ZVwiLFxuICBcIlBhZGVBcHByb3hpbWFudFwiLFxuICBcIlBhZExlZnRcIixcbiAgXCJQYWRSaWdodFwiLFxuICBcIlBhZ2VCcmVha0Fib3ZlXCIsXG4gIFwiUGFnZUJyZWFrQmVsb3dcIixcbiAgXCJQYWdlQnJlYWtXaXRoaW5cIixcbiAgXCJQYWdlRm9vdGVyTGluZXNcIixcbiAgXCJQYWdlRm9vdGVyc1wiLFxuICBcIlBhZ2VIZWFkZXJMaW5lc1wiLFxuICBcIlBhZ2VIZWFkZXJzXCIsXG4gIFwiUGFnZUhlaWdodFwiLFxuICBcIlBhZ2VSYW5rQ2VudHJhbGl0eVwiLFxuICBcIlBhZ2VUaGVtZVwiLFxuICBcIlBhZ2VXaWR0aFwiLFxuICBcIlBhZ2luYXRpb25cIixcbiAgXCJQYWlyQ29ycmVsYXRpb25HXCIsXG4gIFwiUGFpcmVkQmFyQ2hhcnRcIixcbiAgXCJQYWlyZWRIaXN0b2dyYW1cIixcbiAgXCJQYWlyZWRTbW9vdGhIaXN0b2dyYW1cIixcbiAgXCJQYWlyZWRUVGVzdFwiLFxuICBcIlBhaXJlZFpUZXN0XCIsXG4gIFwiUGFsZXR0ZU5vdGVib29rXCIsXG4gIFwiUGFsZXR0ZVBhdGhcIixcbiAgXCJQYWxldHRlc01lbnVTZXR0aW5nc1wiLFxuICBcIlBhbGluZHJvbWVRXCIsXG4gIFwiUGFuZVwiLFxuICBcIlBhbmVCb3hcIixcbiAgXCJQYW5lQm94T3B0aW9uc1wiLFxuICBcIlBhbmVsXCIsXG4gIFwiUGFuZWxCb3hcIixcbiAgXCJQYW5lbEJveE9wdGlvbnNcIixcbiAgXCJQYW5lbGVkXCIsXG4gIFwiUGFuZVNlbGVjdG9yXCIsXG4gIFwiUGFuZVNlbGVjdG9yQm94XCIsXG4gIFwiUGFuZVNlbGVjdG9yQm94T3B0aW9uc1wiLFxuICBcIlBhcGVyV2lkdGhcIixcbiAgXCJQYXJhYm9saWNDeWxpbmRlckRcIixcbiAgXCJQYXJhZ3JhcGhJbmRlbnRcIixcbiAgXCJQYXJhZ3JhcGhTcGFjaW5nXCIsXG4gIFwiUGFyYWxsZWxBcnJheVwiLFxuICBcIlBhcmFsbGVsQXhpc1Bsb3RcIixcbiAgXCJQYXJhbGxlbENvbWJpbmVcIixcbiAgXCJQYXJhbGxlbERvXCIsXG4gIFwiUGFyYWxsZWxlcGlwZWRcIixcbiAgXCJQYXJhbGxlbEV2YWx1YXRlXCIsXG4gIFwiUGFyYWxsZWxpemF0aW9uXCIsXG4gIFwiUGFyYWxsZWxpemVcIixcbiAgXCJQYXJhbGxlbEtlcm5lbHNcIixcbiAgXCJQYXJhbGxlbE1hcFwiLFxuICBcIlBhcmFsbGVsTmVlZHNcIixcbiAgXCJQYXJhbGxlbG9ncmFtXCIsXG4gIFwiUGFyYWxsZWxQcm9kdWN0XCIsXG4gIFwiUGFyYWxsZWxTdWJtaXRcIixcbiAgXCJQYXJhbGxlbFN1bVwiLFxuICBcIlBhcmFsbGVsVGFibGVcIixcbiAgXCJQYXJhbGxlbFRyeVwiLFxuICBcIlBhcmFtZXRlclwiLFxuICBcIlBhcmFtZXRlckVzdGltYXRvclwiLFxuICBcIlBhcmFtZXRlck1peHR1cmVEaXN0cmlidXRpb25cIixcbiAgXCJQYXJhbWV0ZXJWYXJpYWJsZXNcIixcbiAgXCJQYXJhbWV0cmljQ29udmV4T3B0aW1pemF0aW9uXCIsXG4gIFwiUGFyYW1ldHJpY0Z1bmN0aW9uXCIsXG4gIFwiUGFyYW1ldHJpY05EU29sdmVcIixcbiAgXCJQYXJhbWV0cmljTkRTb2x2ZVZhbHVlXCIsXG4gIFwiUGFyYW1ldHJpY1Bsb3RcIixcbiAgXCJQYXJhbWV0cmljUGxvdDNEXCIsXG4gIFwiUGFyYW1ldHJpY1JhbXBMYXllclwiLFxuICBcIlBhcmFtZXRyaWNSZWdpb25cIixcbiAgXCJQYXJlbnRCb3hcIixcbiAgXCJQYXJlbnRDZWxsXCIsXG4gIFwiUGFyZW50Q29ubmVjdFwiLFxuICBcIlBhcmVudERpcmVjdG9yeVwiLFxuICBcIlBhcmVudEVkZ2VMYWJlbFwiLFxuICBcIlBhcmVudEVkZ2VMYWJlbEZ1bmN0aW9uXCIsXG4gIFwiUGFyZW50RWRnZUxhYmVsU3R5bGVcIixcbiAgXCJQYXJlbnRFZGdlU2hhcGVGdW5jdGlvblwiLFxuICBcIlBhcmVudEVkZ2VTdHlsZVwiLFxuICBcIlBhcmVudEVkZ2VTdHlsZUZ1bmN0aW9uXCIsXG4gIFwiUGFyZW50Rm9ybVwiLFxuICBcIlBhcmVudGhlc2l6ZVwiLFxuICBcIlBhcmVudExpc3RcIixcbiAgXCJQYXJlbnROb3RlYm9va1wiLFxuICBcIlBhcmV0b0Rpc3RyaWJ1dGlvblwiLFxuICBcIlBhcmV0b1BpY2thbmRzRGlzdHJpYnV0aW9uXCIsXG4gIFwiUGFya0RhdGFcIixcbiAgXCJQYXJ0XCIsXG4gIFwiUGFydEJlaGF2aW9yXCIsXG4gIFwiUGFydGlhbENvcnJlbGF0aW9uRnVuY3Rpb25cIixcbiAgXCJQYXJ0aWFsRFwiLFxuICBcIlBhcnRpY2xlQWNjZWxlcmF0b3JEYXRhXCIsXG4gIFwiUGFydGljbGVEYXRhXCIsXG4gIFwiUGFydGl0aW9uXCIsXG4gIFwiUGFydGl0aW9uR3JhbnVsYXJpdHlcIixcbiAgXCJQYXJ0aXRpb25zUFwiLFxuICBcIlBhcnRpdGlvbnNRXCIsXG4gIFwiUGFydExheWVyXCIsXG4gIFwiUGFydE9mU3BlZWNoXCIsXG4gIFwiUGFydFByb3RlY3Rpb25cIixcbiAgXCJQYXJ6ZW5XaW5kb3dcIixcbiAgXCJQYXNjYWxEaXN0cmlidXRpb25cIixcbiAgXCJQYXNzRXZlbnRzRG93blwiLFxuICBcIlBhc3NFdmVudHNVcFwiLFxuICBcIlBhc3RlXCIsXG4gIFwiUGFzdGVBdXRvUXVvdGVDaGFyYWN0ZXJzXCIsXG4gIFwiUGFzdGVCb3hGb3JtSW5saW5lQ2VsbHNcIixcbiAgXCJQYXN0ZUJ1dHRvblwiLFxuICBcIlBhdGhcIixcbiAgXCJQYXRoR3JhcGhcIixcbiAgXCJQYXRoR3JhcGhRXCIsXG4gIFwiUGF0dGVyblwiLFxuICBcIlBhdHRlcm5GaWxsaW5nXCIsXG4gIFwiUGF0dGVyblJlYWN0aW9uXCIsXG4gIFwiUGF0dGVyblNlcXVlbmNlXCIsXG4gIFwiUGF0dGVyblRlc3RcIixcbiAgXCJQYXVsaU1hdHJpeFwiLFxuICBcIlBhdWxXYXZlbGV0XCIsXG4gIFwiUGF1c2VcIixcbiAgXCJQYXVzZWRUaW1lXCIsXG4gIFwiUERGXCIsXG4gIFwiUGVha0RldGVjdFwiLFxuICBcIlBlYW5vQ3VydmVcIixcbiAgXCJQZWFyc29uQ2hpU3F1YXJlVGVzdFwiLFxuICBcIlBlYXJzb25Db3JyZWxhdGlvblRlc3RcIixcbiAgXCJQZWFyc29uRGlzdHJpYnV0aW9uXCIsXG4gIFwiUGVudHRpbmVuUG9pbnRQcm9jZXNzXCIsXG4gIFwiUGVyY2VudEZvcm1cIixcbiAgXCJQZXJmZWN0TnVtYmVyXCIsXG4gIFwiUGVyZmVjdE51bWJlclFcIixcbiAgXCJQZXJmb3JtYW5jZUdvYWxcIixcbiAgXCJQZXJpbWV0ZXJcIixcbiAgXCJQZXJpb2RpY0JvdW5kYXJ5Q29uZGl0aW9uXCIsXG4gIFwiUGVyaW9kaWNJbnRlcnBvbGF0aW9uXCIsXG4gIFwiUGVyaW9kb2dyYW1cIixcbiAgXCJQZXJpb2RvZ3JhbUFycmF5XCIsXG4gIFwiUGVybWFuZW50XCIsXG4gIFwiUGVybWlzc2lvbnNcIixcbiAgXCJQZXJtaXNzaW9uc0dyb3VwXCIsXG4gIFwiUGVybWlzc2lvbnNHcm91cE1lbWJlclFcIixcbiAgXCJQZXJtaXNzaW9uc0dyb3Vwc1wiLFxuICBcIlBlcm1pc3Npb25zS2V5XCIsXG4gIFwiUGVybWlzc2lvbnNLZXlzXCIsXG4gIFwiUGVybXV0YXRpb25DeWNsZXNcIixcbiAgXCJQZXJtdXRhdGlvbkN5Y2xlc1FcIixcbiAgXCJQZXJtdXRhdGlvbkdyb3VwXCIsXG4gIFwiUGVybXV0YXRpb25MZW5ndGhcIixcbiAgXCJQZXJtdXRhdGlvbkxpc3RcIixcbiAgXCJQZXJtdXRhdGlvbkxpc3RRXCIsXG4gIFwiUGVybXV0YXRpb25NYXRyaXhcIixcbiAgXCJQZXJtdXRhdGlvbk1heFwiLFxuICBcIlBlcm11dGF0aW9uTWluXCIsXG4gIFwiUGVybXV0YXRpb25PcmRlclwiLFxuICBcIlBlcm11dGF0aW9uUG93ZXJcIixcbiAgXCJQZXJtdXRhdGlvblByb2R1Y3RcIixcbiAgXCJQZXJtdXRhdGlvblJlcGxhY2VcIixcbiAgXCJQZXJtdXRhdGlvbnNcIixcbiAgXCJQZXJtdXRhdGlvblN1cHBvcnRcIixcbiAgXCJQZXJtdXRlXCIsXG4gIFwiUGVyb25hTWFsaWtGaWx0ZXJcIixcbiAgXCJQZXJwZW5kaWN1bGFyXCIsXG4gIFwiUGVycGVuZGljdWxhckJpc2VjdG9yXCIsXG4gIFwiUGVyc2lzdGVuY2VMb2NhdGlvblwiLFxuICBcIlBlcnNpc3RlbmNlVGltZVwiLFxuICBcIlBlcnNpc3RlbnRPYmplY3RcIixcbiAgXCJQZXJzaXN0ZW50T2JqZWN0c1wiLFxuICBcIlBlcnNpc3RlbnRTeW1ib2xcIixcbiAgXCJQZXJzaXN0ZW50VmFsdWVcIixcbiAgXCJQZXJzb25EYXRhXCIsXG4gIFwiUEVSVERpc3RyaWJ1dGlvblwiLFxuICBcIlBldGVyc2VuR3JhcGhcIixcbiAgXCJQaGFzZU1hcmdpbnNcIixcbiAgXCJQaGFzZVJhbmdlXCIsXG4gIFwiUGhvbmdTaGFkaW5nXCIsXG4gIFwiUGh5c2ljYWxTeXN0ZW1EYXRhXCIsXG4gIFwiUGlcIixcbiAgXCJQaWNrXCIsXG4gIFwiUGlja2VkRWxlbWVudHNcIixcbiAgXCJQaWNrTW9kZVwiLFxuICBcIlBJRERhdGFcIixcbiAgXCJQSUREZXJpdmF0aXZlRmlsdGVyXCIsXG4gIFwiUElERmVlZGZvcndhcmRcIixcbiAgXCJQSURUdW5lXCIsXG4gIFwiUGllY2V3aXNlXCIsXG4gIFwiUGllY2V3aXNlRXhwYW5kXCIsXG4gIFwiUGllQ2hhcnRcIixcbiAgXCJQaWVDaGFydDNEXCIsXG4gIFwiUGlsbGFpVHJhY2VcIixcbiAgXCJQaWxsYWlUcmFjZVRlc3RcIixcbiAgXCJQaW5nVGltZVwiLFxuICBcIlBpbmtcIixcbiAgXCJQaXRjaFJlY29nbml6ZVwiLFxuICBcIlBpdm90aW5nXCIsXG4gIFwiUGl4ZWxDb25zdHJhaW5lZFwiLFxuICBcIlBpeGVsVmFsdWVcIixcbiAgXCJQaXhlbFZhbHVlUG9zaXRpb25zXCIsXG4gIFwiUGxhY2VkXCIsXG4gIFwiUGxhY2Vob2xkZXJcIixcbiAgXCJQbGFjZWhvbGRlckxheWVyXCIsXG4gIFwiUGxhY2Vob2xkZXJSZXBsYWNlXCIsXG4gIFwiUGxhaW5cIixcbiAgXCJQbGFuYXJBbmdsZVwiLFxuICBcIlBsYW5hckZhY2VMaXN0XCIsXG4gIFwiUGxhbmFyR3JhcGhcIixcbiAgXCJQbGFuYXJHcmFwaFFcIixcbiAgXCJQbGFuY2tSYWRpYXRpb25MYXdcIixcbiAgXCJQbGFuZUN1cnZlRGF0YVwiLFxuICBcIlBsYW5ldGFyeU1vb25EYXRhXCIsXG4gIFwiUGxhbmV0RGF0YVwiLFxuICBcIlBsYW50RGF0YVwiLFxuICBcIlBsYXlcIixcbiAgXCJQbGF5YmFja1NldHRpbmdzXCIsXG4gIFwiUGxheVJhbmdlXCIsXG4gIFwiUGxvdFwiLFxuICBcIlBsb3QzRFwiLFxuICBcIlBsb3QzTWF0cml4XCIsXG4gIFwiUGxvdERpdmlzaW9uXCIsXG4gIFwiUGxvdEpvaW5lZFwiLFxuICBcIlBsb3RMYWJlbFwiLFxuICBcIlBsb3RMYWJlbHNcIixcbiAgXCJQbG90TGF5b3V0XCIsXG4gIFwiUGxvdExlZ2VuZHNcIixcbiAgXCJQbG90TWFya2Vyc1wiLFxuICBcIlBsb3RQb2ludHNcIixcbiAgXCJQbG90UmFuZ2VcIixcbiAgXCJQbG90UmFuZ2VDbGlwcGluZ1wiLFxuICBcIlBsb3RSYW5nZUNsaXBQbGFuZXNTdHlsZVwiLFxuICBcIlBsb3RSYW5nZVBhZGRpbmdcIixcbiAgXCJQbG90UmVnaW9uXCIsXG4gIFwiUGxvdFN0eWxlXCIsXG4gIFwiUGxvdFRoZW1lXCIsXG4gIFwiUGx1cmFsaXplXCIsXG4gIFwiUGx1c1wiLFxuICBcIlBsdXNNaW51c1wiLFxuICBcIlBvY2hoYW1tZXJcIixcbiAgXCJQb2RTdGF0ZXNcIixcbiAgXCJQb2RXaWR0aFwiLFxuICBcIlBvaW50XCIsXG4gIFwiUG9pbnQzREJveFwiLFxuICBcIlBvaW50M0RCb3hPcHRpb25zXCIsXG4gIFwiUG9pbnRCb3hcIixcbiAgXCJQb2ludEJveE9wdGlvbnNcIixcbiAgXCJQb2ludENvdW50RGlzdHJpYnV0aW9uXCIsXG4gIFwiUG9pbnREZW5zaXR5XCIsXG4gIFwiUG9pbnREZW5zaXR5RnVuY3Rpb25cIixcbiAgXCJQb2ludEZpZ3VyZUNoYXJ0XCIsXG4gIFwiUG9pbnRMZWdlbmRcIixcbiAgXCJQb2ludExpZ2h0XCIsXG4gIFwiUG9pbnRQcm9jZXNzRXN0aW1hdG9yXCIsXG4gIFwiUG9pbnRQcm9jZXNzRml0VGVzdFwiLFxuICBcIlBvaW50UHJvY2Vzc1BhcmFtZXRlckFzc3VtcHRpb25zXCIsXG4gIFwiUG9pbnRQcm9jZXNzUGFyYW1ldGVyUVwiLFxuICBcIlBvaW50U2l6ZVwiLFxuICBcIlBvaW50U3RhdGlzdGljRnVuY3Rpb25cIixcbiAgXCJQb2ludFZhbHVlUGxvdFwiLFxuICBcIlBvaXNzb25Db25zdWxEaXN0cmlidXRpb25cIixcbiAgXCJQb2lzc29uRGlzdHJpYnV0aW9uXCIsXG4gIFwiUG9pc3NvblBERUNvbXBvbmVudFwiLFxuICBcIlBvaXNzb25Qb2ludFByb2Nlc3NcIixcbiAgXCJQb2lzc29uUHJvY2Vzc1wiLFxuICBcIlBvaXNzb25XaW5kb3dcIixcbiAgXCJQb2xhckF4ZXNcIixcbiAgXCJQb2xhckF4ZXNPcmlnaW5cIixcbiAgXCJQb2xhckdyaWRMaW5lc1wiLFxuICBcIlBvbGFyUGxvdFwiLFxuICBcIlBvbGFyVGlja3NcIixcbiAgXCJQb2xlWmVyb01hcmtlcnNcIixcbiAgXCJQb2x5YUFlcHBsaURpc3RyaWJ1dGlvblwiLFxuICBcIlBvbHlHYW1tYVwiLFxuICBcIlBvbHlnb25cIixcbiAgXCJQb2x5Z29uM0RCb3hcIixcbiAgXCJQb2x5Z29uM0RCb3hPcHRpb25zXCIsXG4gIFwiUG9seWdvbmFsTnVtYmVyXCIsXG4gIFwiUG9seWdvbkFuZ2xlXCIsXG4gIFwiUG9seWdvbkJveFwiLFxuICBcIlBvbHlnb25Cb3hPcHRpb25zXCIsXG4gIFwiUG9seWdvbkNvb3JkaW5hdGVzXCIsXG4gIFwiUG9seWdvbkRlY29tcG9zaXRpb25cIixcbiAgXCJQb2x5Z29uSG9sZVNjYWxlXCIsXG4gIFwiUG9seWdvbkludGVyc2VjdGlvbnNcIixcbiAgXCJQb2x5Z29uU2NhbGVcIixcbiAgXCJQb2x5aGVkcm9uXCIsXG4gIFwiUG9seWhlZHJvbkFuZ2xlXCIsXG4gIFwiUG9seWhlZHJvbkJveFwiLFxuICBcIlBvbHloZWRyb25Cb3hPcHRpb25zXCIsXG4gIFwiUG9seWhlZHJvbkNvb3JkaW5hdGVzXCIsXG4gIFwiUG9seWhlZHJvbkRhdGFcIixcbiAgXCJQb2x5aGVkcm9uRGVjb21wb3NpdGlvblwiLFxuICBcIlBvbHloZWRyb25HZW51c1wiLFxuICBcIlBvbHlMb2dcIixcbiAgXCJQb2x5bm9taWFsRXhwcmVzc2lvblFcIixcbiAgXCJQb2x5bm9taWFsRXh0ZW5kZWRHQ0RcIixcbiAgXCJQb2x5bm9taWFsRm9ybVwiLFxuICBcIlBvbHlub21pYWxHQ0RcIixcbiAgXCJQb2x5bm9taWFsTENNXCIsXG4gIFwiUG9seW5vbWlhbE1vZFwiLFxuICBcIlBvbHlub21pYWxRXCIsXG4gIFwiUG9seW5vbWlhbFF1b3RpZW50XCIsXG4gIFwiUG9seW5vbWlhbFF1b3RpZW50UmVtYWluZGVyXCIsXG4gIFwiUG9seW5vbWlhbFJlZHVjZVwiLFxuICBcIlBvbHlub21pYWxSZW1haW5kZXJcIixcbiAgXCJQb2x5bm9taWFsc1wiLFxuICBcIlBvbHlub21pYWxTdW1PZlNxdWFyZXNMaXN0XCIsXG4gIFwiUG9vbGluZ0xheWVyXCIsXG4gIFwiUG9wdXBNZW51XCIsXG4gIFwiUG9wdXBNZW51Qm94XCIsXG4gIFwiUG9wdXBNZW51Qm94T3B0aW9uc1wiLFxuICBcIlBvcHVwVmlld1wiLFxuICBcIlBvcHVwV2luZG93XCIsXG4gIFwiUG9zaXRpb25cIixcbiAgXCJQb3NpdGlvbkluZGV4XCIsXG4gIFwiUG9zaXRpb25MYXJnZXN0XCIsXG4gIFwiUG9zaXRpb25TbWFsbGVzdFwiLFxuICBcIlBvc2l0aXZlXCIsXG4gIFwiUG9zaXRpdmVEZWZpbml0ZU1hdHJpeFFcIixcbiAgXCJQb3NpdGl2ZUludGVnZXJzXCIsXG4gIFwiUG9zaXRpdmVseU9yaWVudGVkUG9pbnRzXCIsXG4gIFwiUG9zaXRpdmVSYXRpb25hbHNcIixcbiAgXCJQb3NpdGl2ZVJlYWxzXCIsXG4gIFwiUG9zaXRpdmVTZW1pZGVmaW5pdGVNYXRyaXhRXCIsXG4gIFwiUG9zc2libGVaZXJvUVwiLFxuICBcIlBvc3RmaXhcIixcbiAgXCJQb3N0U2NyaXB0XCIsXG4gIFwiUG93ZXJcIixcbiAgXCJQb3dlckRpc3RyaWJ1dGlvblwiLFxuICBcIlBvd2VyRXhwYW5kXCIsXG4gIFwiUG93ZXJNb2RcIixcbiAgXCJQb3dlck1vZExpc3RcIixcbiAgXCJQb3dlclJhbmdlXCIsXG4gIFwiUG93ZXJTcGVjdHJhbERlbnNpdHlcIixcbiAgXCJQb3dlcnNSZXByZXNlbnRhdGlvbnNcIixcbiAgXCJQb3dlclN5bW1ldHJpY1BvbHlub21pYWxcIixcbiAgXCJQcmVjZWRlbmNlXCIsXG4gIFwiUHJlY2VkZW5jZUZvcm1cIixcbiAgXCJQcmVjZWRlc1wiLFxuICBcIlByZWNlZGVzRXF1YWxcIixcbiAgXCJQcmVjZWRlc1NsYW50RXF1YWxcIixcbiAgXCJQcmVjZWRlc1RpbGRlXCIsXG4gIFwiUHJlY2lzaW9uXCIsXG4gIFwiUHJlY2lzaW9uR29hbFwiLFxuICBcIlByZURlY3JlbWVudFwiLFxuICBcIlByZWRpY3RcIixcbiAgXCJQcmVkaWN0aW9uUm9vdFwiLFxuICBcIlByZWRpY3RvckZ1bmN0aW9uXCIsXG4gIFwiUHJlZGljdG9ySW5mb3JtYXRpb25cIixcbiAgXCJQcmVkaWN0b3JNZWFzdXJlbWVudHNcIixcbiAgXCJQcmVkaWN0b3JNZWFzdXJlbWVudHNPYmplY3RcIixcbiAgXCJQcmVlbXB0UHJvdGVjdFwiLFxuICBcIlByZWZlcmVuY2VzUGF0aFwiLFxuICBcIlByZWZlcmVuY2VzU2V0dGluZ3NcIixcbiAgXCJQcmVmaXhcIixcbiAgXCJQcmVJbmNyZW1lbnRcIixcbiAgXCJQcmVwZW5kXCIsXG4gIFwiUHJlcGVuZExheWVyXCIsXG4gIFwiUHJlcGVuZFRvXCIsXG4gIFwiUHJlcHJvY2Vzc2luZ1J1bGVzXCIsXG4gIFwiUHJlc2VydmVDb2xvclwiLFxuICBcIlByZXNlcnZlSW1hZ2VPcHRpb25zXCIsXG4gIFwiUHJldmlvdXNcIixcbiAgXCJQcmV2aW91c0NlbGxcIixcbiAgXCJQcmV2aW91c0RhdGVcIixcbiAgXCJQcmljZUdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiUHJpbWFyeVBsYWNlaG9sZGVyXCIsXG4gIFwiUHJpbWVcIixcbiAgXCJQcmltZU51XCIsXG4gIFwiUHJpbWVPbWVnYVwiLFxuICBcIlByaW1lUGlcIixcbiAgXCJQcmltZVBvd2VyUVwiLFxuICBcIlByaW1lUVwiLFxuICBcIlByaW1lc1wiLFxuICBcIlByaW1lWmV0YVBcIixcbiAgXCJQcmltaXRpdmVQb2x5bm9taWFsUVwiLFxuICBcIlByaW1pdGl2ZVJvb3RcIixcbiAgXCJQcmltaXRpdmVSb290TGlzdFwiLFxuICBcIlByaW5jaXBhbENvbXBvbmVudHNcIixcbiAgXCJQcmluY2lwYWxWYWx1ZVwiLFxuICBcIlByaW50XCIsXG4gIFwiUHJpbnRhYmxlQVNDSUlRXCIsXG4gIFwiUHJpbnRBY3Rpb25cIixcbiAgXCJQcmludEZvcm1cIixcbiAgXCJQcmludGluZ0NvcGllc1wiLFxuICBcIlByaW50aW5nT3B0aW9uc1wiLFxuICBcIlByaW50aW5nUGFnZVJhbmdlXCIsXG4gIFwiUHJpbnRpbmdTdGFydGluZ1BhZ2VOdW1iZXJcIixcbiAgXCJQcmludGluZ1N0eWxlRW52aXJvbm1lbnRcIixcbiAgXCJQcmludG91dDNEXCIsXG4gIFwiUHJpbnRvdXQzRFByZXZpZXdlclwiLFxuICBcIlByaW50UHJlY2lzaW9uXCIsXG4gIFwiUHJpbnRUZW1wb3JhcnlcIixcbiAgXCJQcmlzbVwiLFxuICBcIlByaXNtQm94XCIsXG4gIFwiUHJpc21Cb3hPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUNlbGxPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUV2YWx1YXRpb25PcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUZvbnRPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZUZyb250RW5kT3B0aW9uc1wiLFxuICBcIlByaXZhdGVLZXlcIixcbiAgXCJQcml2YXRlTm90ZWJvb2tPcHRpb25zXCIsXG4gIFwiUHJpdmF0ZVBhdGhzXCIsXG4gIFwiUHJvYmFiaWxpdHlcIixcbiAgXCJQcm9iYWJpbGl0eURpc3RyaWJ1dGlvblwiLFxuICBcIlByb2JhYmlsaXR5UGxvdFwiLFxuICBcIlByb2JhYmlsaXR5UHJcIixcbiAgXCJQcm9iYWJpbGl0eVNjYWxlUGxvdFwiLFxuICBcIlByb2JpdE1vZGVsRml0XCIsXG4gIFwiUHJvY2Vzc0Nvbm5lY3Rpb25cIixcbiAgXCJQcm9jZXNzRGlyZWN0b3J5XCIsXG4gIFwiUHJvY2Vzc0Vudmlyb25tZW50XCIsXG4gIFwiUHJvY2Vzc2VzXCIsXG4gIFwiUHJvY2Vzc0VzdGltYXRvclwiLFxuICBcIlByb2Nlc3NJbmZvcm1hdGlvblwiLFxuICBcIlByb2Nlc3NPYmplY3RcIixcbiAgXCJQcm9jZXNzUGFyYW1ldGVyQXNzdW1wdGlvbnNcIixcbiAgXCJQcm9jZXNzUGFyYW1ldGVyUVwiLFxuICBcIlByb2Nlc3NTdGF0ZURvbWFpblwiLFxuICBcIlByb2Nlc3NTdGF0dXNcIixcbiAgXCJQcm9jZXNzVGltZURvbWFpblwiLFxuICBcIlByb2R1Y3RcIixcbiAgXCJQcm9kdWN0RGlzdHJpYnV0aW9uXCIsXG4gIFwiUHJvZHVjdExvZ1wiLFxuICBcIlByb2dyZXNzSW5kaWNhdG9yXCIsXG4gIFwiUHJvZ3Jlc3NJbmRpY2F0b3JCb3hcIixcbiAgXCJQcm9ncmVzc0luZGljYXRvckJveE9wdGlvbnNcIixcbiAgXCJQcm9ncmVzc1JlcG9ydGluZ1wiLFxuICBcIlByb2plY3Rpb25cIixcbiAgXCJQcm9sb2dcIixcbiAgXCJQcm9tcHRGb3JtXCIsXG4gIFwiUHJvb2ZPYmplY3RcIixcbiAgXCJQcm9wYWdhdGVBYm9ydHNcIixcbiAgXCJQcm9wZXJ0aWVzXCIsXG4gIFwiUHJvcGVydHlcIixcbiAgXCJQcm9wZXJ0eUxpc3RcIixcbiAgXCJQcm9wZXJ0eVZhbHVlXCIsXG4gIFwiUHJvcG9ydGlvblwiLFxuICBcIlByb3BvcnRpb25hbFwiLFxuICBcIlByb3RlY3RcIixcbiAgXCJQcm90ZWN0ZWRcIixcbiAgXCJQcm90ZWluRGF0YVwiLFxuICBcIlBydW5pbmdcIixcbiAgXCJQc2V1ZG9JbnZlcnNlXCIsXG4gIFwiUHN5Y2hyb21ldHJpY1Byb3BlcnR5RGF0YVwiLFxuICBcIlB1YmxpY0tleVwiLFxuICBcIlB1Ymxpc2hlcklEXCIsXG4gIFwiUHVsc2FyRGF0YVwiLFxuICBcIlB1bmN0dWF0aW9uQ2hhcmFjdGVyXCIsXG4gIFwiUHVycGxlXCIsXG4gIFwiUHV0XCIsXG4gIFwiUHV0QXBwZW5kXCIsXG4gIFwiUHlyYW1pZFwiLFxuICBcIlB5cmFtaWRCb3hcIixcbiAgXCJQeXJhbWlkQm94T3B0aW9uc1wiLFxuICBcIlFCaW5vbWlhbFwiLFxuICBcIlFGYWN0b3JpYWxcIixcbiAgXCJRR2FtbWFcIixcbiAgXCJRSHlwZXJnZW9tZXRyaWNQRlFcIixcbiAgXCJRbkRpc3BlcnNpb25cIixcbiAgXCJRUG9jaGhhbW1lclwiLFxuICBcIlFQb2x5R2FtbWFcIixcbiAgXCJRUkRlY29tcG9zaXRpb25cIixcbiAgXCJRdWFkcmF0aWNJcnJhdGlvbmFsUVwiLFxuICBcIlF1YWRyYXRpY09wdGltaXphdGlvblwiLFxuICBcIlF1YW50aWxlXCIsXG4gIFwiUXVhbnRpbGVQbG90XCIsXG4gIFwiUXVhbnRpdHlcIixcbiAgXCJRdWFudGl0eUFycmF5XCIsXG4gIFwiUXVhbnRpdHlEaXN0cmlidXRpb25cIixcbiAgXCJRdWFudGl0eUZvcm1cIixcbiAgXCJRdWFudGl0eU1hZ25pdHVkZVwiLFxuICBcIlF1YW50aXR5UVwiLFxuICBcIlF1YW50aXR5VW5pdFwiLFxuICBcIlF1YW50aXR5VmFyaWFibGVcIixcbiAgXCJRdWFudGl0eVZhcmlhYmxlQ2Fub25pY2FsVW5pdFwiLFxuICBcIlF1YW50aXR5VmFyaWFibGVEaW1lbnNpb25zXCIsXG4gIFwiUXVhbnRpdHlWYXJpYWJsZUlkZW50aWZpZXJcIixcbiAgXCJRdWFudGl0eVZhcmlhYmxlUGh5c2ljYWxRdWFudGl0eVwiLFxuICBcIlF1YXJ0aWNzXCIsXG4gIFwiUXVhcnRpbGVEZXZpYXRpb25cIixcbiAgXCJRdWFydGlsZXNcIixcbiAgXCJRdWFydGlsZVNrZXduZXNzXCIsXG4gIFwiUXVlcnlcIixcbiAgXCJRdWVzdGlvbkdlbmVyYXRvclwiLFxuICBcIlF1ZXN0aW9uSW50ZXJmYWNlXCIsXG4gIFwiUXVlc3Rpb25PYmplY3RcIixcbiAgXCJRdWVzdGlvblNlbGVjdG9yXCIsXG4gIFwiUXVldWVpbmdOZXR3b3JrUHJvY2Vzc1wiLFxuICBcIlF1ZXVlaW5nUHJvY2Vzc1wiLFxuICBcIlF1ZXVlUHJvcGVydGllc1wiLFxuICBcIlF1aWV0XCIsXG4gIFwiUXVpZXRFY2hvXCIsXG4gIFwiUXVpdFwiLFxuICBcIlF1b3RpZW50XCIsXG4gIFwiUXVvdGllbnRSZW1haW5kZXJcIixcbiAgXCJSYWRpYWxBeGlzUGxvdFwiLFxuICBcIlJhZGlhbEdyYWRpZW50RmlsbGluZ1wiLFxuICBcIlJhZGlhbEdyYWRpZW50SW1hZ2VcIixcbiAgXCJSYWRpYWxpdHlDZW50cmFsaXR5XCIsXG4gIFwiUmFkaWNhbEJveFwiLFxuICBcIlJhZGljYWxCb3hPcHRpb25zXCIsXG4gIFwiUmFkaW9CdXR0b25cIixcbiAgXCJSYWRpb0J1dHRvbkJhclwiLFxuICBcIlJhZGlvQnV0dG9uQm94XCIsXG4gIFwiUmFkaW9CdXR0b25Cb3hPcHRpb25zXCIsXG4gIFwiUmFkb25cIixcbiAgXCJSYWRvblRyYW5zZm9ybVwiLFxuICBcIlJhbWFudWphblRhdVwiLFxuICBcIlJhbWFudWphblRhdUxcIixcbiAgXCJSYW1hbnVqYW5UYXVUaGV0YVwiLFxuICBcIlJhbWFudWphblRhdVpcIixcbiAgXCJSYW1wXCIsXG4gIFwiUmFuZG9tXCIsXG4gIFwiUmFuZG9tQXJyYXlMYXllclwiLFxuICBcIlJhbmRvbUNob2ljZVwiLFxuICBcIlJhbmRvbUNvbG9yXCIsXG4gIFwiUmFuZG9tQ29tcGxleFwiLFxuICBcIlJhbmRvbURhdGVcIixcbiAgXCJSYW5kb21FbnRpdHlcIixcbiAgXCJSYW5kb21GdW5jdGlvblwiLFxuICBcIlJhbmRvbUdlbmVyYXRvclN0YXRlXCIsXG4gIFwiUmFuZG9tR2VvUG9zaXRpb25cIixcbiAgXCJSYW5kb21HcmFwaFwiLFxuICBcIlJhbmRvbUltYWdlXCIsXG4gIFwiUmFuZG9tSW5zdGFuY2VcIixcbiAgXCJSYW5kb21JbnRlZ2VyXCIsXG4gIFwiUmFuZG9tUGVybXV0YXRpb25cIixcbiAgXCJSYW5kb21Qb2ludFwiLFxuICBcIlJhbmRvbVBvaW50Q29uZmlndXJhdGlvblwiLFxuICBcIlJhbmRvbVBvbHlnb25cIixcbiAgXCJSYW5kb21Qb2x5aGVkcm9uXCIsXG4gIFwiUmFuZG9tUHJpbWVcIixcbiAgXCJSYW5kb21SZWFsXCIsXG4gIFwiUmFuZG9tU2FtcGxlXCIsXG4gIFwiUmFuZG9tU2VlZFwiLFxuICBcIlJhbmRvbVNlZWRpbmdcIixcbiAgXCJSYW5kb21UaW1lXCIsXG4gIFwiUmFuZG9tVHJlZVwiLFxuICBcIlJhbmRvbVZhcmlhdGVcIixcbiAgXCJSYW5kb21XYWxrUHJvY2Vzc1wiLFxuICBcIlJhbmRvbVdvcmRcIixcbiAgXCJSYW5nZVwiLFxuICBcIlJhbmdlRmlsdGVyXCIsXG4gIFwiUmFuZ2VTcGVjaWZpY2F0aW9uXCIsXG4gIFwiUmFua2VkTWF4XCIsXG4gIFwiUmFua2VkTWluXCIsXG4gIFwiUmFyZXJQcm9iYWJpbGl0eVwiLFxuICBcIlJhc3RlclwiLFxuICBcIlJhc3RlcjNEXCIsXG4gIFwiUmFzdGVyM0RCb3hcIixcbiAgXCJSYXN0ZXIzREJveE9wdGlvbnNcIixcbiAgXCJSYXN0ZXJBcnJheVwiLFxuICBcIlJhc3RlckJveFwiLFxuICBcIlJhc3RlckJveE9wdGlvbnNcIixcbiAgXCJSYXN0ZXJpemVcIixcbiAgXCJSYXN0ZXJTaXplXCIsXG4gIFwiUmF0aW9uYWxcIixcbiAgXCJSYXRpb25hbEV4cHJlc3Npb25RXCIsXG4gIFwiUmF0aW9uYWxGdW5jdGlvbnNcIixcbiAgXCJSYXRpb25hbGl6ZVwiLFxuICBcIlJhdGlvbmFsc1wiLFxuICBcIlJhdGlvc1wiLFxuICBcIlJhd0FycmF5XCIsXG4gIFwiUmF3Qm94ZXNcIixcbiAgXCJSYXdEYXRhXCIsXG4gIFwiUmF3TWVkaXVtXCIsXG4gIFwiUmF5bGVpZ2hEaXN0cmlidXRpb25cIixcbiAgXCJSZVwiLFxuICBcIlJlYWN0aW9uQmFsYW5jZVwiLFxuICBcIlJlYWN0aW9uQmFsYW5jZWRRXCIsXG4gIFwiUmVhY3Rpb25QREVUZXJtXCIsXG4gIFwiUmVhZFwiLFxuICBcIlJlYWRCeXRlQXJyYXlcIixcbiAgXCJSZWFkTGluZVwiLFxuICBcIlJlYWRMaXN0XCIsXG4gIFwiUmVhZFByb3RlY3RlZFwiLFxuICBcIlJlYWRTdHJpbmdcIixcbiAgXCJSZWFsXCIsXG4gIFwiUmVhbEFic1wiLFxuICBcIlJlYWxCbG9ja0RpYWdvbmFsRm9ybVwiLFxuICBcIlJlYWxEaWdpdHNcIixcbiAgXCJSZWFsRXhwb25lbnRcIixcbiAgXCJSZWFsc1wiLFxuICBcIlJlYWxTaWduXCIsXG4gIFwiUmVhcFwiLFxuICBcIlJlYnVpbGRQYWNsZXREYXRhXCIsXG4gIFwiUmVjYWxpYnJhdGlvbkZ1bmN0aW9uXCIsXG4gIFwiUmVjb2duaXRpb25QcmlvclwiLFxuICBcIlJlY29nbml0aW9uVGhyZXNob2xkXCIsXG4gIFwiUmVjb25zdHJ1Y3Rpb25NZXNoXCIsXG4gIFwiUmVjb3JkXCIsXG4gIFwiUmVjb3JkTGlzdHNcIixcbiAgXCJSZWNvcmRTZXBhcmF0b3JzXCIsXG4gIFwiUmVjdGFuZ2xlXCIsXG4gIFwiUmVjdGFuZ2xlQm94XCIsXG4gIFwiUmVjdGFuZ2xlQm94T3B0aW9uc1wiLFxuICBcIlJlY3RhbmdsZUNoYXJ0XCIsXG4gIFwiUmVjdGFuZ2xlQ2hhcnQzRFwiLFxuICBcIlJlY3Rhbmd1bGFyUmVwZWF0aW5nRWxlbWVudFwiLFxuICBcIlJlY3VycmVuY2VGaWx0ZXJcIixcbiAgXCJSZWN1cnJlbmNlVGFibGVcIixcbiAgXCJSZWN1cnJpbmdEaWdpdHNGb3JtXCIsXG4gIFwiUmVkXCIsXG4gIFwiUmVkdWNlXCIsXG4gIFwiUmVmQm94XCIsXG4gIFwiUmVmZXJlbmNlTGluZVN0eWxlXCIsXG4gIFwiUmVmZXJlbmNlTWFya2Vyc1wiLFxuICBcIlJlZmVyZW5jZU1hcmtlclN0eWxlXCIsXG4gIFwiUmVmaW5lXCIsXG4gIFwiUmVmbGVjdGlvbk1hdHJpeFwiLFxuICBcIlJlZmxlY3Rpb25UcmFuc2Zvcm1cIixcbiAgXCJSZWZyZXNoXCIsXG4gIFwiUmVmcmVzaFJhdGVcIixcbiAgXCJSZWdpb25cIixcbiAgXCJSZWdpb25CaW5hcml6ZVwiLFxuICBcIlJlZ2lvbkJvdW5kYXJ5XCIsXG4gIFwiUmVnaW9uQm91bmRhcnlTdHlsZVwiLFxuICBcIlJlZ2lvbkJvdW5kc1wiLFxuICBcIlJlZ2lvbkNlbnRyb2lkXCIsXG4gIFwiUmVnaW9uQ29uZ3J1ZW50XCIsXG4gIFwiUmVnaW9uQ29udmVydFwiLFxuICBcIlJlZ2lvbkRpZmZlcmVuY2VcIixcbiAgXCJSZWdpb25EaWxhdGlvblwiLFxuICBcIlJlZ2lvbkRpbWVuc2lvblwiLFxuICBcIlJlZ2lvbkRpc2pvaW50XCIsXG4gIFwiUmVnaW9uRGlzdGFuY2VcIixcbiAgXCJSZWdpb25EaXN0YW5jZUZ1bmN0aW9uXCIsXG4gIFwiUmVnaW9uRW1iZWRkaW5nRGltZW5zaW9uXCIsXG4gIFwiUmVnaW9uRXF1YWxcIixcbiAgXCJSZWdpb25Fcm9zaW9uXCIsXG4gIFwiUmVnaW9uRmlsbGluZ1N0eWxlXCIsXG4gIFwiUmVnaW9uRml0XCIsXG4gIFwiUmVnaW9uRnVuY3Rpb25cIixcbiAgXCJSZWdpb25JbWFnZVwiLFxuICBcIlJlZ2lvbkludGVyc2VjdGlvblwiLFxuICBcIlJlZ2lvbk1lYXN1cmVcIixcbiAgXCJSZWdpb25NZW1iZXJcIixcbiAgXCJSZWdpb25NZW1iZXJGdW5jdGlvblwiLFxuICBcIlJlZ2lvbk1vbWVudFwiLFxuICBcIlJlZ2lvbk5lYXJlc3RcIixcbiAgXCJSZWdpb25OZWFyZXN0RnVuY3Rpb25cIixcbiAgXCJSZWdpb25QbG90XCIsXG4gIFwiUmVnaW9uUGxvdDNEXCIsXG4gIFwiUmVnaW9uUHJvZHVjdFwiLFxuICBcIlJlZ2lvblFcIixcbiAgXCJSZWdpb25SZXNpemVcIixcbiAgXCJSZWdpb25TaW1pbGFyXCIsXG4gIFwiUmVnaW9uU2l6ZVwiLFxuICBcIlJlZ2lvblN5bW1ldHJpY0RpZmZlcmVuY2VcIixcbiAgXCJSZWdpb25VbmlvblwiLFxuICBcIlJlZ2lvbldpdGhpblwiLFxuICBcIlJlZ2lzdGVyRXh0ZXJuYWxFdmFsdWF0b3JcIixcbiAgXCJSZWd1bGFyRXhwcmVzc2lvblwiLFxuICBcIlJlZ3VsYXJpemF0aW9uXCIsXG4gIFwiUmVndWxhcmx5U2FtcGxlZFFcIixcbiAgXCJSZWd1bGFyUG9seWdvblwiLFxuICBcIlJlSW1cIixcbiAgXCJSZUltTGFiZWxzXCIsXG4gIFwiUmVJbVBsb3RcIixcbiAgXCJSZUltU3R5bGVcIixcbiAgXCJSZWluc3RhbGxcIixcbiAgXCJSZWxhdGlvbmFsRGF0YWJhc2VcIixcbiAgXCJSZWxhdGlvbkdyYXBoXCIsXG4gIFwiUmVsZWFzZVwiLFxuICBcIlJlbGVhc2VIb2xkXCIsXG4gIFwiUmVsaWFiaWxpdHlEaXN0cmlidXRpb25cIixcbiAgXCJSZWxpZWZJbWFnZVwiLFxuICBcIlJlbGllZlBsb3RcIixcbiAgXCJSZW1vdGVBdXRob3JpemF0aW9uQ2FjaGluZ1wiLFxuICBcIlJlbW90ZUJhdGNoSm9iQWJvcnRcIixcbiAgXCJSZW1vdGVCYXRjaEpvYk9iamVjdFwiLFxuICBcIlJlbW90ZUJhdGNoSm9ic1wiLFxuICBcIlJlbW90ZUJhdGNoTWFwU3VibWl0XCIsXG4gIFwiUmVtb3RlQmF0Y2hTdWJtaXNzaW9uRW52aXJvbm1lbnRcIixcbiAgXCJSZW1vdGVCYXRjaFN1Ym1pdFwiLFxuICBcIlJlbW90ZUNvbm5lY3RcIixcbiAgXCJSZW1vdGVDb25uZWN0aW9uT2JqZWN0XCIsXG4gIFwiUmVtb3RlRXZhbHVhdGVcIixcbiAgXCJSZW1vdGVGaWxlXCIsXG4gIFwiUmVtb3RlSW5wdXRGaWxlc1wiLFxuICBcIlJlbW90ZUtlcm5lbE9iamVjdFwiLFxuICBcIlJlbW90ZVByb3ZpZGVyU2V0dGluZ3NcIixcbiAgXCJSZW1vdGVSdW5cIixcbiAgXCJSZW1vdGVSdW5Qcm9jZXNzXCIsXG4gIFwiUmVtb3ZhbENvbmRpdGlvbnNcIixcbiAgXCJSZW1vdmVcIixcbiAgXCJSZW1vdmVBbHBoYUNoYW5uZWxcIixcbiAgXCJSZW1vdmVBc3luY2hyb25vdXNUYXNrXCIsXG4gIFwiUmVtb3ZlQXVkaW9TdHJlYW1cIixcbiAgXCJSZW1vdmVCYWNrZ3JvdW5kXCIsXG4gIFwiUmVtb3ZlQ2hhbm5lbExpc3RlbmVyXCIsXG4gIFwiUmVtb3ZlQ2hhbm5lbFN1YnNjcmliZXJzXCIsXG4gIFwiUmVtb3ZlZFwiLFxuICBcIlJlbW92ZURpYWNyaXRpY3NcIixcbiAgXCJSZW1vdmVJbnB1dFN0cmVhbU1ldGhvZFwiLFxuICBcIlJlbW92ZU91dHB1dFN0cmVhbU1ldGhvZFwiLFxuICBcIlJlbW92ZVByb3BlcnR5XCIsXG4gIFwiUmVtb3ZlU2NoZWR1bGVkVGFza1wiLFxuICBcIlJlbW92ZVVzZXJzXCIsXG4gIFwiUmVtb3ZlVmlkZW9TdHJlYW1cIixcbiAgXCJSZW5hbWVEaXJlY3RvcnlcIixcbiAgXCJSZW5hbWVGaWxlXCIsXG4gIFwiUmVuZGVyQWxsXCIsXG4gIFwiUmVuZGVyaW5nT3B0aW9uc1wiLFxuICBcIlJlbmV3YWxQcm9jZXNzXCIsXG4gIFwiUmVua29DaGFydFwiLFxuICBcIlJlcGFpck1lc2hcIixcbiAgXCJSZXBlYXRlZFwiLFxuICBcIlJlcGVhdGVkTnVsbFwiLFxuICBcIlJlcGVhdGVkU3RyaW5nXCIsXG4gIFwiUmVwZWF0ZWRUaW1pbmdcIixcbiAgXCJSZXBlYXRpbmdFbGVtZW50XCIsXG4gIFwiUmVwbGFjZVwiLFxuICBcIlJlcGxhY2VBbGxcIixcbiAgXCJSZXBsYWNlQXRcIixcbiAgXCJSZXBsYWNlSGVsZFBhcnRcIixcbiAgXCJSZXBsYWNlSW1hZ2VWYWx1ZVwiLFxuICBcIlJlcGxhY2VMaXN0XCIsXG4gIFwiUmVwbGFjZVBhcnRcIixcbiAgXCJSZXBsYWNlUGl4ZWxWYWx1ZVwiLFxuICBcIlJlcGxhY2VSZXBlYXRlZFwiLFxuICBcIlJlcGxpY2F0ZUxheWVyXCIsXG4gIFwiUmVxdWlyZWRQaHlzaWNhbFF1YW50aXRpZXNcIixcbiAgXCJSZXNhbXBsaW5nXCIsXG4gIFwiUmVzYW1wbGluZ0FsZ29yaXRobURhdGFcIixcbiAgXCJSZXNhbXBsaW5nTWV0aG9kXCIsXG4gIFwiUmVzY2FsZVwiLFxuICBcIlJlc2NhbGluZ1RyYW5zZm9ybVwiLFxuICBcIlJlc2V0RGlyZWN0b3J5XCIsXG4gIFwiUmVzZXRTY2hlZHVsZWRUYXNrXCIsXG4gIFwiUmVzaGFwZUxheWVyXCIsXG4gIFwiUmVzaWR1ZVwiLFxuICBcIlJlc2lkdWVTdW1cIixcbiAgXCJSZXNpemVMYXllclwiLFxuICBcIlJlc29sdmVcIixcbiAgXCJSZXNvbHZlQ29udGV4dEFsaWFzZXNcIixcbiAgXCJSZXNvdXJjZUFjcXVpcmVcIixcbiAgXCJSZXNvdXJjZURhdGFcIixcbiAgXCJSZXNvdXJjZUZ1bmN0aW9uXCIsXG4gIFwiUmVzb3VyY2VPYmplY3RcIixcbiAgXCJSZXNvdXJjZVJlZ2lzdGVyXCIsXG4gIFwiUmVzb3VyY2VSZW1vdmVcIixcbiAgXCJSZXNvdXJjZVNlYXJjaFwiLFxuICBcIlJlc291cmNlU3VibWlzc2lvbk9iamVjdFwiLFxuICBcIlJlc291cmNlU3VibWl0XCIsXG4gIFwiUmVzb3VyY2VTeXN0ZW1CYXNlXCIsXG4gIFwiUmVzb3VyY2VTeXN0ZW1QYXRoXCIsXG4gIFwiUmVzb3VyY2VVcGRhdGVcIixcbiAgXCJSZXNvdXJjZVZlcnNpb25cIixcbiAgXCJSZXNwb25zZUZvcm1cIixcbiAgXCJSZXN0XCIsXG4gIFwiUmVzdGFydEludGVydmFsXCIsXG4gIFwiUmVzdHJpY3RlZFwiLFxuICBcIlJlc3VsdGFudFwiLFxuICBcIlJlc3VtZVBhY2tldFwiLFxuICBcIlJldHVyblwiLFxuICBcIlJldHVybkNyZWF0ZXNOZXdDZWxsXCIsXG4gIFwiUmV0dXJuRW50ZXJzSW5wdXRcIixcbiAgXCJSZXR1cm5FeHByZXNzaW9uUGFja2V0XCIsXG4gIFwiUmV0dXJuSW5wdXRGb3JtUGFja2V0XCIsXG4gIFwiUmV0dXJuUGFja2V0XCIsXG4gIFwiUmV0dXJuUmVjZWlwdEZ1bmN0aW9uXCIsXG4gIFwiUmV0dXJuVGV4dFBhY2tldFwiLFxuICBcIlJldmVyc2VcIixcbiAgXCJSZXZlcnNlQXBwbGllZFwiLFxuICBcIlJldmVyc2VCaW9ydGhvZ29uYWxTcGxpbmVXYXZlbGV0XCIsXG4gIFwiUmV2ZXJzZUVsZW1lbnRcIixcbiAgXCJSZXZlcnNlRXF1aWxpYnJpdW1cIixcbiAgXCJSZXZlcnNlR3JhcGhcIixcbiAgXCJSZXZlcnNlU29ydFwiLFxuICBcIlJldmVyc2VTb3J0QnlcIixcbiAgXCJSZXZlcnNlVXBFcXVpbGlicml1bVwiLFxuICBcIlJldm9sdXRpb25BeGlzXCIsXG4gIFwiUmV2b2x1dGlvblBsb3QzRFwiLFxuICBcIlJHQkNvbG9yXCIsXG4gIFwiUmljY2F0aVNvbHZlXCIsXG4gIFwiUmljZURpc3RyaWJ1dGlvblwiLFxuICBcIlJpZGdlRmlsdGVyXCIsXG4gIFwiUmllbWFublJcIixcbiAgXCJSaWVtYW5uU2llZ2VsVGhldGFcIixcbiAgXCJSaWVtYW5uU2llZ2VsWlwiLFxuICBcIlJpZW1hbm5YaVwiLFxuICBcIlJpZmZsZVwiLFxuICBcIlJpZ2h0XCIsXG4gIFwiUmlnaHRBcnJvd1wiLFxuICBcIlJpZ2h0QXJyb3dCYXJcIixcbiAgXCJSaWdodEFycm93TGVmdEFycm93XCIsXG4gIFwiUmlnaHRDb21wb3NpdGlvblwiLFxuICBcIlJpZ2h0Q29zZXRSZXByZXNlbnRhdGl2ZVwiLFxuICBcIlJpZ2h0RG93blRlZVZlY3RvclwiLFxuICBcIlJpZ2h0RG93blZlY3RvclwiLFxuICBcIlJpZ2h0RG93blZlY3RvckJhclwiLFxuICBcIlJpZ2h0VGVlXCIsXG4gIFwiUmlnaHRUZWVBcnJvd1wiLFxuICBcIlJpZ2h0VGVlVmVjdG9yXCIsXG4gIFwiUmlnaHRUcmlhbmdsZVwiLFxuICBcIlJpZ2h0VHJpYW5nbGVCYXJcIixcbiAgXCJSaWdodFRyaWFuZ2xlRXF1YWxcIixcbiAgXCJSaWdodFVwRG93blZlY3RvclwiLFxuICBcIlJpZ2h0VXBUZWVWZWN0b3JcIixcbiAgXCJSaWdodFVwVmVjdG9yXCIsXG4gIFwiUmlnaHRVcFZlY3RvckJhclwiLFxuICBcIlJpZ2h0VmVjdG9yXCIsXG4gIFwiUmlnaHRWZWN0b3JCYXJcIixcbiAgXCJSaXBsZXlLXCIsXG4gIFwiUmlwbGV5UmFzc29uUmVnaW9uXCIsXG4gIFwiUmlza0FjaGlldmVtZW50SW1wb3J0YW5jZVwiLFxuICBcIlJpc2tSZWR1Y3Rpb25JbXBvcnRhbmNlXCIsXG4gIFwiUm9idXN0Q29udmV4T3B0aW1pemF0aW9uXCIsXG4gIFwiUm9nZXJzVGFuaW1vdG9EaXNzaW1pbGFyaXR5XCIsXG4gIFwiUm9sbFBpdGNoWWF3QW5nbGVzXCIsXG4gIFwiUm9sbFBpdGNoWWF3TWF0cml4XCIsXG4gIFwiUm9tYW5OdW1lcmFsXCIsXG4gIFwiUm9vdFwiLFxuICBcIlJvb3RBcHByb3hpbWFudFwiLFxuICBcIlJvb3RJbnRlcnZhbHNcIixcbiAgXCJSb290TG9jdXNQbG90XCIsXG4gIFwiUm9vdE1lYW5TcXVhcmVcIixcbiAgXCJSb290T2ZVbml0eVFcIixcbiAgXCJSb290UmVkdWNlXCIsXG4gIFwiUm9vdHNcIixcbiAgXCJSb290U3VtXCIsXG4gIFwiUm9vdFRyZWVcIixcbiAgXCJSb3RhdGVcIixcbiAgXCJSb3RhdGVMYWJlbFwiLFxuICBcIlJvdGF0ZUxlZnRcIixcbiAgXCJSb3RhdGVSaWdodFwiLFxuICBcIlJvdGF0aW9uQWN0aW9uXCIsXG4gIFwiUm90YXRpb25Cb3hcIixcbiAgXCJSb3RhdGlvbkJveE9wdGlvbnNcIixcbiAgXCJSb3RhdGlvbk1hdHJpeFwiLFxuICBcIlJvdGF0aW9uVHJhbnNmb3JtXCIsXG4gIFwiUm91bmRcIixcbiAgXCJSb3VuZEltcGxpZXNcIixcbiAgXCJSb3VuZGluZ1JhZGl1c1wiLFxuICBcIlJvd1wiLFxuICBcIlJvd0FsaWdubWVudHNcIixcbiAgXCJSb3dCYWNrZ3JvdW5kc1wiLFxuICBcIlJvd0JveFwiLFxuICBcIlJvd0hlaWdodHNcIixcbiAgXCJSb3dMaW5lc1wiLFxuICBcIlJvd01pbkhlaWdodFwiLFxuICBcIlJvd1JlZHVjZVwiLFxuICBcIlJvd3NFcXVhbFwiLFxuICBcIlJvd1NwYWNpbmdzXCIsXG4gIFwiUlNvbHZlXCIsXG4gIFwiUlNvbHZlVmFsdWVcIixcbiAgXCJSdWRpblNoYXBpcm9cIixcbiAgXCJSdWR2YWxpc0dyb3VwUnVcIixcbiAgXCJSdWxlXCIsXG4gIFwiUnVsZUNvbmRpdGlvblwiLFxuICBcIlJ1bGVEZWxheWVkXCIsXG4gIFwiUnVsZUZvcm1cIixcbiAgXCJSdWxlUGxvdFwiLFxuICBcIlJ1bGVyVW5pdHNcIixcbiAgXCJSdWxlc1RyZWVcIixcbiAgXCJSdW5cIixcbiAgXCJSdW5Qcm9jZXNzXCIsXG4gIFwiUnVuU2NoZWR1bGVkVGFza1wiLFxuICBcIlJ1blRocm91Z2hcIixcbiAgXCJSdW50aW1lQXR0cmlidXRlc1wiLFxuICBcIlJ1bnRpbWVPcHRpb25zXCIsXG4gIFwiUnVzc2VsbFJhb0Rpc3NpbWlsYXJpdHlcIixcbiAgXCJTYW1lQXNcIixcbiAgXCJTYW1lUVwiLFxuICBcIlNhbWVUZXN0XCIsXG4gIFwiU2FtZVRlc3RQcm9wZXJ0aWVzXCIsXG4gIFwiU2FtcGxlZEVudGl0eUNsYXNzXCIsXG4gIFwiU2FtcGxlRGVwdGhcIixcbiAgXCJTYW1wbGVkU291bmRGdW5jdGlvblwiLFxuICBcIlNhbXBsZWRTb3VuZExpc3RcIixcbiAgXCJTYW1wbGVSYXRlXCIsXG4gIFwiU2FtcGxpbmdQZXJpb2RcIixcbiAgXCJTQVJJTUFQcm9jZXNzXCIsXG4gIFwiU0FSTUFQcm9jZXNzXCIsXG4gIFwiU0FTVHJpYW5nbGVcIixcbiAgXCJTYXRlbGxpdGVEYXRhXCIsXG4gIFwiU2F0aXNmaWFiaWxpdHlDb3VudFwiLFxuICBcIlNhdGlzZmlhYmlsaXR5SW5zdGFuY2VzXCIsXG4gIFwiU2F0aXNmaWFibGVRXCIsXG4gIFwiU2F0dXJkYXlcIixcbiAgXCJTYXZlXCIsXG4gIFwiU2F2ZWFibGVcIixcbiAgXCJTYXZlQXV0b0RlbGV0ZVwiLFxuICBcIlNhdmVDb25uZWN0aW9uXCIsXG4gIFwiU2F2ZURlZmluaXRpb25zXCIsXG4gIFwiU2F2aXR6a3lHb2xheU1hdHJpeFwiLFxuICBcIlNhd3Rvb3RoV2F2ZVwiLFxuICBcIlNjYWxlXCIsXG4gIFwiU2NhbGVkXCIsXG4gIFwiU2NhbGVEaXZpc2lvbnNcIixcbiAgXCJTY2FsZWRNb3VzZVBvc2l0aW9uXCIsXG4gIFwiU2NhbGVPcmlnaW5cIixcbiAgXCJTY2FsZVBhZGRpbmdcIixcbiAgXCJTY2FsZVJhbmdlc1wiLFxuICBcIlNjYWxlUmFuZ2VTdHlsZVwiLFxuICBcIlNjYWxpbmdGdW5jdGlvbnNcIixcbiAgXCJTY2FsaW5nTWF0cml4XCIsXG4gIFwiU2NhbGluZ1RyYW5zZm9ybVwiLFxuICBcIlNjYW5cIixcbiAgXCJTY2hlZHVsZWRUYXNrXCIsXG4gIFwiU2NoZWR1bGVkVGFza0FjdGl2ZVFcIixcbiAgXCJTY2hlZHVsZWRUYXNrSW5mb3JtYXRpb25cIixcbiAgXCJTY2hlZHVsZWRUYXNrSW5mb3JtYXRpb25EYXRhXCIsXG4gIFwiU2NoZWR1bGVkVGFza09iamVjdFwiLFxuICBcIlNjaGVkdWxlZFRhc2tzXCIsXG4gIFwiU2NodXJEZWNvbXBvc2l0aW9uXCIsXG4gIFwiU2NpZW50aWZpY0Zvcm1cIixcbiAgXCJTY2llbnRpZmljTm90YXRpb25UaHJlc2hvbGRcIixcbiAgXCJTY29yZXJHaVwiLFxuICBcIlNjb3JlckdpUHJpbWVcIixcbiAgXCJTY29yZXJIaVwiLFxuICBcIlNjb3JlckhpUHJpbWVcIixcbiAgXCJTY3JlZW5SZWN0YW5nbGVcIixcbiAgXCJTY3JlZW5TdHlsZUVudmlyb25tZW50XCIsXG4gIFwiU2NyaXB0QmFzZWxpbmVTaGlmdHNcIixcbiAgXCJTY3JpcHRGb3JtXCIsXG4gIFwiU2NyaXB0TGV2ZWxcIixcbiAgXCJTY3JpcHRNaW5TaXplXCIsXG4gIFwiU2NyaXB0UnVsZXNcIixcbiAgXCJTY3JpcHRTaXplTXVsdGlwbGllcnNcIixcbiAgXCJTY3JvbGxiYXJzXCIsXG4gIFwiU2Nyb2xsaW5nT3B0aW9uc1wiLFxuICBcIlNjcm9sbFBvc2l0aW9uXCIsXG4gIFwiU2VhcmNoQWRqdXN0bWVudFwiLFxuICBcIlNlYXJjaEluZGV4T2JqZWN0XCIsXG4gIFwiU2VhcmNoSW5kaWNlc1wiLFxuICBcIlNlYXJjaFF1ZXJ5U3RyaW5nXCIsXG4gIFwiU2VhcmNoUmVzdWx0T2JqZWN0XCIsXG4gIFwiU2VjXCIsXG4gIFwiU2VjaFwiLFxuICBcIlNlY2hEaXN0cmlidXRpb25cIixcbiAgXCJTZWNvbmRPcmRlckNvbmVPcHRpbWl6YXRpb25cIixcbiAgXCJTZWN0aW9uR3JvdXBpbmdcIixcbiAgXCJTZWN0b3JDaGFydFwiLFxuICBcIlNlY3RvckNoYXJ0M0RcIixcbiAgXCJTZWN0b3JPcmlnaW5cIixcbiAgXCJTZWN0b3JTcGFjaW5nXCIsXG4gIFwiU2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5XCIsXG4gIFwiU2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5c1wiLFxuICBcIlNlY3VyaXR5Q2VydGlmaWNhdGVcIixcbiAgXCJTZWVkUmFuZG9tXCIsXG4gIFwiU2VsZWN0XCIsXG4gIFwiU2VsZWN0YWJsZVwiLFxuICBcIlNlbGVjdENvbXBvbmVudHNcIixcbiAgXCJTZWxlY3RlZENlbGxzXCIsXG4gIFwiU2VsZWN0ZWROb3RlYm9va1wiLFxuICBcIlNlbGVjdEZpcnN0XCIsXG4gIFwiU2VsZWN0aW9uXCIsXG4gIFwiU2VsZWN0aW9uQW5pbWF0ZVwiLFxuICBcIlNlbGVjdGlvbkNlbGxcIixcbiAgXCJTZWxlY3Rpb25DZWxsQ3JlYXRlQ2VsbFwiLFxuICBcIlNlbGVjdGlvbkNlbGxEZWZhdWx0U3R5bGVcIixcbiAgXCJTZWxlY3Rpb25DZWxsUGFyZW50U3R5bGVcIixcbiAgXCJTZWxlY3Rpb25DcmVhdGVDZWxsXCIsXG4gIFwiU2VsZWN0aW9uRGVidWdnZXJUYWdcIixcbiAgXCJTZWxlY3Rpb25FdmFsdWF0ZVwiLFxuICBcIlNlbGVjdGlvbkV2YWx1YXRlQ3JlYXRlQ2VsbFwiLFxuICBcIlNlbGVjdGlvbk1vdmVcIixcbiAgXCJTZWxlY3Rpb25QbGFjZWhvbGRlclwiLFxuICBcIlNlbGVjdFdpdGhDb250ZW50c1wiLFxuICBcIlNlbGZMb29wc1wiLFxuICBcIlNlbGZMb29wU3R5bGVcIixcbiAgXCJTZW1hbnRpY0ltcG9ydFwiLFxuICBcIlNlbWFudGljSW1wb3J0U3RyaW5nXCIsXG4gIFwiU2VtYW50aWNJbnRlcnByZXRhdGlvblwiLFxuICBcIlNlbWlhbGdlYnJhaWNDb21wb25lbnRJbnN0YW5jZXNcIixcbiAgXCJTZW1pZGVmaW5pdGVPcHRpbWl6YXRpb25cIixcbiAgXCJTZW5kTWFpbFwiLFxuICBcIlNlbmRNZXNzYWdlXCIsXG4gIFwiU2VxdWVuY2VcIixcbiAgXCJTZXF1ZW5jZUFsaWdubWVudFwiLFxuICBcIlNlcXVlbmNlQXR0ZW50aW9uTGF5ZXJcIixcbiAgXCJTZXF1ZW5jZUNhc2VzXCIsXG4gIFwiU2VxdWVuY2VDb3VudFwiLFxuICBcIlNlcXVlbmNlRm9sZFwiLFxuICBcIlNlcXVlbmNlRm9sZExpc3RcIixcbiAgXCJTZXF1ZW5jZUZvcm1cIixcbiAgXCJTZXF1ZW5jZUhvbGRcIixcbiAgXCJTZXF1ZW5jZUluZGljZXNMYXllclwiLFxuICBcIlNlcXVlbmNlTGFzdExheWVyXCIsXG4gIFwiU2VxdWVuY2VNb3N0TGF5ZXJcIixcbiAgXCJTZXF1ZW5jZVBvc2l0aW9uXCIsXG4gIFwiU2VxdWVuY2VQcmVkaWN0XCIsXG4gIFwiU2VxdWVuY2VQcmVkaWN0b3JGdW5jdGlvblwiLFxuICBcIlNlcXVlbmNlUmVwbGFjZVwiLFxuICBcIlNlcXVlbmNlUmVzdExheWVyXCIsXG4gIFwiU2VxdWVuY2VSZXZlcnNlTGF5ZXJcIixcbiAgXCJTZXF1ZW5jZVNwbGl0XCIsXG4gIFwiU2VyaWVzXCIsXG4gIFwiU2VyaWVzQ29lZmZpY2llbnRcIixcbiAgXCJTZXJpZXNEYXRhXCIsXG4gIFwiU2VyaWVzVGVybUdvYWxcIixcbiAgXCJTZXJ2aWNlQ29ubmVjdFwiLFxuICBcIlNlcnZpY2VEaXNjb25uZWN0XCIsXG4gIFwiU2VydmljZUV4ZWN1dGVcIixcbiAgXCJTZXJ2aWNlT2JqZWN0XCIsXG4gIFwiU2VydmljZVJlcXVlc3RcIixcbiAgXCJTZXJ2aWNlUmVzcG9uc2VcIixcbiAgXCJTZXJ2aWNlU3VibWl0XCIsXG4gIFwiU2Vzc2lvblN1Ym1pdFwiLFxuICBcIlNlc3Npb25UaW1lXCIsXG4gIFwiU2V0XCIsXG4gIFwiU2V0QWNjdXJhY3lcIixcbiAgXCJTZXRBbHBoYUNoYW5uZWxcIixcbiAgXCJTZXRBdHRyaWJ1dGVzXCIsXG4gIFwiU2V0YmFja3NcIixcbiAgXCJTZXRDbG91ZERpcmVjdG9yeVwiLFxuICBcIlNldENvb2tpZXNcIixcbiAgXCJTZXREZWxheWVkXCIsXG4gIFwiU2V0RGlyZWN0b3J5XCIsXG4gIFwiU2V0RW52aXJvbm1lbnRcIixcbiAgXCJTZXRGaWxlRGF0ZVwiLFxuICBcIlNldEZpbGVGb3JtYXRQcm9wZXJ0aWVzXCIsXG4gIFwiU2V0T3B0aW9uc1wiLFxuICBcIlNldE9wdGlvbnNQYWNrZXRcIixcbiAgXCJTZXRQZXJtaXNzaW9uc1wiLFxuICBcIlNldFByZWNpc2lvblwiLFxuICBcIlNldFByb3BlcnR5XCIsXG4gIFwiU2V0U2VjdXJlZEF1dGhlbnRpY2F0aW9uS2V5XCIsXG4gIFwiU2V0U2VsZWN0ZWROb3RlYm9va1wiLFxuICBcIlNldFNoYXJlZEZ1bmN0aW9uXCIsXG4gIFwiU2V0U2hhcmVkVmFyaWFibGVcIixcbiAgXCJTZXRTdHJlYW1Qb3NpdGlvblwiLFxuICBcIlNldFN5c3RlbU1vZGVsXCIsXG4gIFwiU2V0U3lzdGVtT3B0aW9uc1wiLFxuICBcIlNldHRlclwiLFxuICBcIlNldHRlckJhclwiLFxuICBcIlNldHRlckJveFwiLFxuICBcIlNldHRlckJveE9wdGlvbnNcIixcbiAgXCJTZXR0aW5nXCIsXG4gIFwiU2V0VXNlcnNcIixcbiAgXCJTaGFkaW5nXCIsXG4gIFwiU2hhbGxvd1wiLFxuICBcIlNoYW5ub25XYXZlbGV0XCIsXG4gIFwiU2hhcGlyb1dpbGtUZXN0XCIsXG4gIFwiU2hhcmVcIixcbiAgXCJTaGFyaW5nTGlzdFwiLFxuICBcIlNoYXJwZW5cIixcbiAgXCJTaGVhcmluZ01hdHJpeFwiLFxuICBcIlNoZWFyaW5nVHJhbnNmb3JtXCIsXG4gIFwiU2hlbGxSZWdpb25cIixcbiAgXCJTaGVuQ2FzdGFuTWF0cml4XCIsXG4gIFwiU2hpZnRlZEdvbXBlcnR6RGlzdHJpYnV0aW9uXCIsXG4gIFwiU2hpZnRSZWdpc3RlclNlcXVlbmNlXCIsXG4gIFwiU2hvcnRcIixcbiAgXCJTaG9ydERvd25BcnJvd1wiLFxuICBcIlNob3J0ZXN0XCIsXG4gIFwiU2hvcnRlc3RNYXRjaFwiLFxuICBcIlNob3J0ZXN0UGF0aEZ1bmN0aW9uXCIsXG4gIFwiU2hvcnRMZWZ0QXJyb3dcIixcbiAgXCJTaG9ydFJpZ2h0QXJyb3dcIixcbiAgXCJTaG9ydFRpbWVGb3VyaWVyXCIsXG4gIFwiU2hvcnRUaW1lRm91cmllckRhdGFcIixcbiAgXCJTaG9ydFVwQXJyb3dcIixcbiAgXCJTaG93XCIsXG4gIFwiU2hvd0F1dG9Db252ZXJ0XCIsXG4gIFwiU2hvd0F1dG9TcGVsbENoZWNrXCIsXG4gIFwiU2hvd0F1dG9TdHlsZXNcIixcbiAgXCJTaG93Q2VsbEJyYWNrZXRcIixcbiAgXCJTaG93Q2VsbExhYmVsXCIsXG4gIFwiU2hvd0NlbGxUYWdzXCIsXG4gIFwiU2hvd0Nsb3NlZENlbGxBcmVhXCIsXG4gIFwiU2hvd0NvZGVBc3Npc3RcIixcbiAgXCJTaG93Q29udGVudHNcIixcbiAgXCJTaG93Q29udHJvbHNcIixcbiAgXCJTaG93Q3Vyc29yVHJhY2tlclwiLFxuICBcIlNob3dHcm91cE9wZW5DbG9zZUljb25cIixcbiAgXCJTaG93R3JvdXBPcGVuZXJcIixcbiAgXCJTaG93SW52aXNpYmxlQ2hhcmFjdGVyc1wiLFxuICBcIlNob3dQYWdlQnJlYWtzXCIsXG4gIFwiU2hvd1ByZWRpY3RpdmVJbnRlcmZhY2VcIixcbiAgXCJTaG93U2VsZWN0aW9uXCIsXG4gIFwiU2hvd1Nob3J0Qm94Rm9ybVwiLFxuICBcIlNob3dTcGVjaWFsQ2hhcmFjdGVyc1wiLFxuICBcIlNob3dTdHJpbmdDaGFyYWN0ZXJzXCIsXG4gIFwiU2hvd1N5bnRheFN0eWxlc1wiLFxuICBcIlNocmlua2luZ0RlbGF5XCIsXG4gIFwiU2hyaW5rV3JhcEJvdW5kaW5nQm94XCIsXG4gIFwiU2lkZXJlYWxUaW1lXCIsXG4gIFwiU2llZ2VsVGhldGFcIixcbiAgXCJTaWVnZWxUdWtleVRlc3RcIixcbiAgXCJTaWVycGluc2tpQ3VydmVcIixcbiAgXCJTaWVycGluc2tpTWVzaFwiLFxuICBcIlNpZ25cIixcbiAgXCJTaWduYXR1cmVcIixcbiAgXCJTaWduZWRSYW5rVGVzdFwiLFxuICBcIlNpZ25lZFJlZ2lvbkRpc3RhbmNlXCIsXG4gIFwiU2lnbmlmaWNhbmNlTGV2ZWxcIixcbiAgXCJTaWduUGFkZGluZ1wiLFxuICBcIlNpZ25UZXN0XCIsXG4gIFwiU2ltaWxhcml0eVJ1bGVzXCIsXG4gIFwiU2ltcGxlR3JhcGhcIixcbiAgXCJTaW1wbGVHcmFwaFFcIixcbiAgXCJTaW1wbGVQb2x5Z29uUVwiLFxuICBcIlNpbXBsZVBvbHloZWRyb25RXCIsXG4gIFwiU2ltcGxleFwiLFxuICBcIlNpbXBsaWZ5XCIsXG4gIFwiU2luXCIsXG4gIFwiU2luY1wiLFxuICBcIlNpbmdoTWFkZGFsYURpc3RyaWJ1dGlvblwiLFxuICBcIlNpbmdsZUV2YWx1YXRpb25cIixcbiAgXCJTaW5nbGVMZXR0ZXJJdGFsaWNzXCIsXG4gIFwiU2luZ2xlTGV0dGVyU3R5bGVcIixcbiAgXCJTaW5ndWxhclZhbHVlRGVjb21wb3NpdGlvblwiLFxuICBcIlNpbmd1bGFyVmFsdWVMaXN0XCIsXG4gIFwiU2luZ3VsYXJWYWx1ZVBsb3RcIixcbiAgXCJTaW5ndWxhclZhbHVlc1wiLFxuICBcIlNpbmhcIixcbiAgXCJTaW5oSW50ZWdyYWxcIixcbiAgXCJTaW5JbnRlZ3JhbFwiLFxuICBcIlNpeEpTeW1ib2xcIixcbiAgXCJTa2VsZXRvblwiLFxuICBcIlNrZWxldG9uVHJhbnNmb3JtXCIsXG4gIFwiU2tlbGxhbURpc3RyaWJ1dGlvblwiLFxuICBcIlNrZXduZXNzXCIsXG4gIFwiU2tld05vcm1hbERpc3RyaWJ1dGlvblwiLFxuICBcIlNraW5TdHlsZVwiLFxuICBcIlNraXBcIixcbiAgXCJTbGljZUNvbnRvdXJQbG90M0RcIixcbiAgXCJTbGljZURlbnNpdHlQbG90M0RcIixcbiAgXCJTbGljZURpc3RyaWJ1dGlvblwiLFxuICBcIlNsaWNlVmVjdG9yUGxvdDNEXCIsXG4gIFwiU2xpZGVyXCIsXG4gIFwiU2xpZGVyMkRcIixcbiAgXCJTbGlkZXIyREJveFwiLFxuICBcIlNsaWRlcjJEQm94T3B0aW9uc1wiLFxuICBcIlNsaWRlckJveFwiLFxuICBcIlNsaWRlckJveE9wdGlvbnNcIixcbiAgXCJTbGlkZVNob3dWaWRlb1wiLFxuICBcIlNsaWRlVmlld1wiLFxuICBcIlNsb3RcIixcbiAgXCJTbG90U2VxdWVuY2VcIixcbiAgXCJTbWFsbFwiLFxuICBcIlNtYWxsQ2lyY2xlXCIsXG4gIFwiU21hbGxlclwiLFxuICBcIlNtaXRoRGVjb21wb3NpdGlvblwiLFxuICBcIlNtaXRoRGVsYXlDb21wZW5zYXRvclwiLFxuICBcIlNtaXRoV2F0ZXJtYW5TaW1pbGFyaXR5XCIsXG4gIFwiU21vb3RoRGVuc2l0eUhpc3RvZ3JhbVwiLFxuICBcIlNtb290aEhpc3RvZ3JhbVwiLFxuICBcIlNtb290aEhpc3RvZ3JhbTNEXCIsXG4gIFwiU21vb3RoS2VybmVsRGlzdHJpYnV0aW9uXCIsXG4gIFwiU21vb3RoUG9pbnREZW5zaXR5XCIsXG4gIFwiU25EaXNwZXJzaW9uXCIsXG4gIFwiU25pcHBldFwiLFxuICBcIlNuaXBwZXRzVmlkZW9cIixcbiAgXCJTbnViUG9seWhlZHJvblwiLFxuICBcIlNvY2lhbE1lZGlhRGF0YVwiLFxuICBcIlNvY2tldFwiLFxuICBcIlNvY2tldENvbm5lY3RcIixcbiAgXCJTb2NrZXRMaXN0ZW5cIixcbiAgXCJTb2NrZXRMaXN0ZW5lclwiLFxuICBcIlNvY2tldE9iamVjdFwiLFxuICBcIlNvY2tldE9wZW5cIixcbiAgXCJTb2NrZXRSZWFkTWVzc2FnZVwiLFxuICBcIlNvY2tldFJlYWR5UVwiLFxuICBcIlNvY2tldHNcIixcbiAgXCJTb2NrZXRXYWl0QWxsXCIsXG4gIFwiU29ja2V0V2FpdE5leHRcIixcbiAgXCJTb2Z0bWF4TGF5ZXJcIixcbiAgXCJTb2thbFNuZWF0aERpc3NpbWlsYXJpdHlcIixcbiAgXCJTb2xhckVjbGlwc2VcIixcbiAgXCJTb2xhclN5c3RlbUZlYXR1cmVEYXRhXCIsXG4gIFwiU29sYXJUaW1lXCIsXG4gIFwiU29saWRBbmdsZVwiLFxuICBcIlNvbGlkQm91bmRhcnlMb2FkVmFsdWVcIixcbiAgXCJTb2xpZERhdGFcIixcbiAgXCJTb2xpZERpc3BsYWNlbWVudENvbmRpdGlvblwiLFxuICBcIlNvbGlkRml4ZWRDb25kaXRpb25cIixcbiAgXCJTb2xpZE1lY2hhbmljc1BERUNvbXBvbmVudFwiLFxuICBcIlNvbGlkTWVjaGFuaWNzU3RyYWluXCIsXG4gIFwiU29saWRNZWNoYW5pY3NTdHJlc3NcIixcbiAgXCJTb2xpZFJlZ2lvblFcIixcbiAgXCJTb2x2ZVwiLFxuICBcIlNvbHZlQWx3YXlzXCIsXG4gIFwiU29sdmVEZWxheWVkXCIsXG4gIFwiU29sdmVWYWx1ZXNcIixcbiAgXCJTb3J0XCIsXG4gIFwiU29ydEJ5XCIsXG4gIFwiU29ydGVkQnlcIixcbiAgXCJTb3J0ZWRFbnRpdHlDbGFzc1wiLFxuICBcIlNvdW5kXCIsXG4gIFwiU291bmRBbmRHcmFwaGljc1wiLFxuICBcIlNvdW5kTm90ZVwiLFxuICBcIlNvdW5kVm9sdW1lXCIsXG4gIFwiU291cmNlTGlua1wiLFxuICBcIlNvdXJjZVBERVRlcm1cIixcbiAgXCJTb3dcIixcbiAgXCJTcGFjZVwiLFxuICBcIlNwYWNlQ3VydmVEYXRhXCIsXG4gIFwiU3BhY2VGb3JtXCIsXG4gIFwiU3BhY2VyXCIsXG4gIFwiU3BhY2luZ3NcIixcbiAgXCJTcGFuXCIsXG4gIFwiU3BhbkFkanVzdG1lbnRzXCIsXG4gIFwiU3BhbkNoYXJhY3RlclJvdW5kaW5nXCIsXG4gIFwiU3BhbkZyb21BYm92ZVwiLFxuICBcIlNwYW5Gcm9tQm90aFwiLFxuICBcIlNwYW5Gcm9tTGVmdFwiLFxuICBcIlNwYW5MaW5lVGhpY2tuZXNzXCIsXG4gIFwiU3Bhbk1heFNpemVcIixcbiAgXCJTcGFuTWluU2l6ZVwiLFxuICBcIlNwYW5uaW5nQ2hhcmFjdGVyc1wiLFxuICBcIlNwYW5TeW1tZXRyaWNcIixcbiAgXCJTcGFyc2VBcnJheVwiLFxuICBcIlNwYXJzZUFycmF5UVwiLFxuICBcIlNwYXRpYWxCaW5uZWRQb2ludERhdGFcIixcbiAgXCJTcGF0aWFsQm91bmRhcnlDb3JyZWN0aW9uXCIsXG4gIFwiU3BhdGlhbEVzdGltYXRlXCIsXG4gIFwiU3BhdGlhbEVzdGltYXRvckZ1bmN0aW9uXCIsXG4gIFwiU3BhdGlhbEdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiU3BhdGlhbEpcIixcbiAgXCJTcGF0aWFsTWVkaWFuXCIsXG4gIFwiU3BhdGlhbE5vaXNlTGV2ZWxcIixcbiAgXCJTcGF0aWFsT2JzZXJ2YXRpb25SZWdpb25RXCIsXG4gIFwiU3BhdGlhbFBvaW50RGF0YVwiLFxuICBcIlNwYXRpYWxQb2ludFNlbGVjdFwiLFxuICBcIlNwYXRpYWxSYW5kb21uZXNzVGVzdFwiLFxuICBcIlNwYXRpYWxUcmFuc2Zvcm1hdGlvbkxheWVyXCIsXG4gIFwiU3BhdGlhbFRyZW5kRnVuY3Rpb25cIixcbiAgXCJTcGVha1wiLFxuICBcIlNwZWFrZXJNYXRjaFFcIixcbiAgXCJTcGVhcm1hblJhbmtUZXN0XCIsXG4gIFwiU3BlYXJtYW5SaG9cIixcbiAgXCJTcGVjaWVzRGF0YVwiLFxuICBcIlNwZWNpZmljaXR5R29hbFwiLFxuICBcIlNwZWN0cmFsTGluZURhdGFcIixcbiAgXCJTcGVjdHJvZ3JhbVwiLFxuICBcIlNwZWN0cm9ncmFtQXJyYXlcIixcbiAgXCJTcGVjdWxhcml0eVwiLFxuICBcIlNwZWVjaENhc2VzXCIsXG4gIFwiU3BlZWNoSW50ZXJwcmV0ZXJcIixcbiAgXCJTcGVlY2hSZWNvZ25pemVcIixcbiAgXCJTcGVlY2hTeW50aGVzaXplXCIsXG4gIFwiU3BlbGxpbmdDb3JyZWN0aW9uXCIsXG4gIFwiU3BlbGxpbmdDb3JyZWN0aW9uTGlzdFwiLFxuICBcIlNwZWxsaW5nRGljdGlvbmFyaWVzXCIsXG4gIFwiU3BlbGxpbmdEaWN0aW9uYXJpZXNQYXRoXCIsXG4gIFwiU3BlbGxpbmdPcHRpb25zXCIsXG4gIFwiU3BoZXJlXCIsXG4gIFwiU3BoZXJlQm94XCIsXG4gIFwiU3BoZXJlQm94T3B0aW9uc1wiLFxuICBcIlNwaGVyZVBvaW50c1wiLFxuICBcIlNwaGVyaWNhbEJlc3NlbEpcIixcbiAgXCJTcGhlcmljYWxCZXNzZWxZXCIsXG4gIFwiU3BoZXJpY2FsSGFua2VsSDFcIixcbiAgXCJTcGhlcmljYWxIYW5rZWxIMlwiLFxuICBcIlNwaGVyaWNhbEhhcm1vbmljWVwiLFxuICBcIlNwaGVyaWNhbFBsb3QzRFwiLFxuICBcIlNwaGVyaWNhbFJlZ2lvblwiLFxuICBcIlNwaGVyaWNhbFNoZWxsXCIsXG4gIFwiU3BoZXJvaWRhbEVpZ2VudmFsdWVcIixcbiAgXCJTcGhlcm9pZGFsSm9pbmluZ0ZhY3RvclwiLFxuICBcIlNwaGVyb2lkYWxQU1wiLFxuICBcIlNwaGVyb2lkYWxQU1ByaW1lXCIsXG4gIFwiU3BoZXJvaWRhbFFTXCIsXG4gIFwiU3BoZXJvaWRhbFFTUHJpbWVcIixcbiAgXCJTcGhlcm9pZGFsUmFkaWFsRmFjdG9yXCIsXG4gIFwiU3BoZXJvaWRhbFMxXCIsXG4gIFwiU3BoZXJvaWRhbFMxUHJpbWVcIixcbiAgXCJTcGhlcm9pZGFsUzJcIixcbiAgXCJTcGhlcm9pZGFsUzJQcmltZVwiLFxuICBcIlNwbGljZVwiLFxuICBcIlNwbGljZWREaXN0cmlidXRpb25cIixcbiAgXCJTcGxpbmVDbG9zZWRcIixcbiAgXCJTcGxpbmVEZWdyZWVcIixcbiAgXCJTcGxpbmVLbm90c1wiLFxuICBcIlNwbGluZVdlaWdodHNcIixcbiAgXCJTcGxpdFwiLFxuICBcIlNwbGl0QnlcIixcbiAgXCJTcG9rZW5TdHJpbmdcIixcbiAgXCJTcG90TGlnaHRcIixcbiAgXCJTcXJ0XCIsXG4gIFwiU3FydEJveFwiLFxuICBcIlNxcnRCb3hPcHRpb25zXCIsXG4gIFwiU3F1YXJlXCIsXG4gIFwiU3F1YXJlZEV1Y2xpZGVhbkRpc3RhbmNlXCIsXG4gIFwiU3F1YXJlRnJlZVFcIixcbiAgXCJTcXVhcmVJbnRlcnNlY3Rpb25cIixcbiAgXCJTcXVhcmVNYXRyaXhRXCIsXG4gIFwiU3F1YXJlUmVwZWF0aW5nRWxlbWVudFwiLFxuICBcIlNxdWFyZXNSXCIsXG4gIFwiU3F1YXJlU3Vic2V0XCIsXG4gIFwiU3F1YXJlU3Vic2V0RXF1YWxcIixcbiAgXCJTcXVhcmVTdXBlcnNldFwiLFxuICBcIlNxdWFyZVN1cGVyc2V0RXF1YWxcIixcbiAgXCJTcXVhcmVVbmlvblwiLFxuICBcIlNxdWFyZVdhdmVcIixcbiAgXCJTU1NUcmlhbmdsZVwiLFxuICBcIlN0YWJpbGl0eU1hcmdpbnNcIixcbiAgXCJTdGFiaWxpdHlNYXJnaW5zU3R5bGVcIixcbiAgXCJTdGFibGVEaXN0cmlidXRpb25cIixcbiAgXCJTdGFja1wiLFxuICBcIlN0YWNrQmVnaW5cIixcbiAgXCJTdGFja0NvbXBsZXRlXCIsXG4gIFwiU3RhY2tlZERhdGVMaXN0UGxvdFwiLFxuICBcIlN0YWNrZWRMaXN0UGxvdFwiLFxuICBcIlN0YWNrSW5oaWJpdFwiLFxuICBcIlN0YWRpdW1TaGFwZVwiLFxuICBcIlN0YW5kYXJkQXRtb3NwaGVyZURhdGFcIixcbiAgXCJTdGFuZGFyZERldmlhdGlvblwiLFxuICBcIlN0YW5kYXJkRGV2aWF0aW9uRmlsdGVyXCIsXG4gIFwiU3RhbmRhcmRGb3JtXCIsXG4gIFwiU3RhbmRhcmRpemVcIixcbiAgXCJTdGFuZGFyZGl6ZWRcIixcbiAgXCJTdGFuZGFyZE9jZWFuRGF0YVwiLFxuICBcIlN0YW5kYnlEaXN0cmlidXRpb25cIixcbiAgXCJTdGFyXCIsXG4gIFwiU3RhckNsdXN0ZXJEYXRhXCIsXG4gIFwiU3RhckRhdGFcIixcbiAgXCJTdGFyR3JhcGhcIixcbiAgXCJTdGFydEFzeW5jaHJvbm91c1Rhc2tcIixcbiAgXCJTdGFydEV4dGVybmFsU2Vzc2lvblwiLFxuICBcIlN0YXJ0aW5nU3RlcFNpemVcIixcbiAgXCJTdGFydE9mTGluZVwiLFxuICBcIlN0YXJ0T2ZTdHJpbmdcIixcbiAgXCJTdGFydFByb2Nlc3NcIixcbiAgXCJTdGFydFNjaGVkdWxlZFRhc2tcIixcbiAgXCJTdGFydHVwU291bmRcIixcbiAgXCJTdGFydFdlYlNlc3Npb25cIixcbiAgXCJTdGF0ZURpbWVuc2lvbnNcIixcbiAgXCJTdGF0ZUZlZWRiYWNrR2FpbnNcIixcbiAgXCJTdGF0ZU91dHB1dEVzdGltYXRvclwiLFxuICBcIlN0YXRlUmVzcG9uc2VcIixcbiAgXCJTdGF0ZVNwYWNlTW9kZWxcIixcbiAgXCJTdGF0ZVNwYWNlUmVhbGl6YXRpb25cIixcbiAgXCJTdGF0ZVNwYWNlVHJhbnNmb3JtXCIsXG4gIFwiU3RhdGVUcmFuc2Zvcm1hdGlvbkxpbmVhcml6ZVwiLFxuICBcIlN0YXRpb25hcnlEaXN0cmlidXRpb25cIixcbiAgXCJTdGF0aW9uYXJ5V2F2ZWxldFBhY2tldFRyYW5zZm9ybVwiLFxuICBcIlN0YXRpb25hcnlXYXZlbGV0VHJhbnNmb3JtXCIsXG4gIFwiU3RhdHVzQXJlYVwiLFxuICBcIlN0YXR1c0NlbnRyYWxpdHlcIixcbiAgXCJTdGVwTW9uaXRvclwiLFxuICBcIlN0ZXJlb2NoZW1pc3RyeUVsZW1lbnRzXCIsXG4gIFwiU3RpZWx0amVzR2FtbWFcIixcbiAgXCJTdGlwcGxlU2hhZGluZ1wiLFxuICBcIlN0aXJsaW5nUzFcIixcbiAgXCJTdGlybGluZ1MyXCIsXG4gIFwiU3RvcEFzeW5jaHJvbm91c1Rhc2tcIixcbiAgXCJTdG9wcGluZ1Bvd2VyRGF0YVwiLFxuICBcIlN0b3BTY2hlZHVsZWRUYXNrXCIsXG4gIFwiU3RyYXRhVmFyaWFibGVzXCIsXG4gIFwiU3RyYXRvbm92aWNoUHJvY2Vzc1wiLFxuICBcIlN0cmF1c3NIYXJkY29yZVBvaW50UHJvY2Vzc1wiLFxuICBcIlN0cmF1c3NQb2ludFByb2Nlc3NcIixcbiAgXCJTdHJlYW1Db2xvckZ1bmN0aW9uXCIsXG4gIFwiU3RyZWFtQ29sb3JGdW5jdGlvblNjYWxpbmdcIixcbiAgXCJTdHJlYW1EZW5zaXR5UGxvdFwiLFxuICBcIlN0cmVhbU1hcmtlcnNcIixcbiAgXCJTdHJlYW1QbG90XCIsXG4gIFwiU3RyZWFtUGxvdDNEXCIsXG4gIFwiU3RyZWFtUG9pbnRzXCIsXG4gIFwiU3RyZWFtUG9zaXRpb25cIixcbiAgXCJTdHJlYW1zXCIsXG4gIFwiU3RyZWFtU2NhbGVcIixcbiAgXCJTdHJlYW1TdHlsZVwiLFxuICBcIlN0cmljdEluZXF1YWxpdGllc1wiLFxuICBcIlN0cmluZ1wiLFxuICBcIlN0cmluZ0JyZWFrXCIsXG4gIFwiU3RyaW5nQnl0ZUNvdW50XCIsXG4gIFwiU3RyaW5nQ2FzZXNcIixcbiAgXCJTdHJpbmdDb250YWluc1FcIixcbiAgXCJTdHJpbmdDb3VudFwiLFxuICBcIlN0cmluZ0RlbGV0ZVwiLFxuICBcIlN0cmluZ0Ryb3BcIixcbiAgXCJTdHJpbmdFbmRzUVwiLFxuICBcIlN0cmluZ0V4cHJlc3Npb25cIixcbiAgXCJTdHJpbmdFeHRyYWN0XCIsXG4gIFwiU3RyaW5nRm9ybVwiLFxuICBcIlN0cmluZ0Zvcm1hdFwiLFxuICBcIlN0cmluZ0Zvcm1hdFFcIixcbiAgXCJTdHJpbmdGcmVlUVwiLFxuICBcIlN0cmluZ0luc2VydFwiLFxuICBcIlN0cmluZ0pvaW5cIixcbiAgXCJTdHJpbmdMZW5ndGhcIixcbiAgXCJTdHJpbmdNYXRjaFFcIixcbiAgXCJTdHJpbmdQYWRMZWZ0XCIsXG4gIFwiU3RyaW5nUGFkUmlnaHRcIixcbiAgXCJTdHJpbmdQYXJ0XCIsXG4gIFwiU3RyaW5nUGFydGl0aW9uXCIsXG4gIFwiU3RyaW5nUG9zaXRpb25cIixcbiAgXCJTdHJpbmdRXCIsXG4gIFwiU3RyaW5nUmVwZWF0XCIsXG4gIFwiU3RyaW5nUmVwbGFjZVwiLFxuICBcIlN0cmluZ1JlcGxhY2VMaXN0XCIsXG4gIFwiU3RyaW5nUmVwbGFjZVBhcnRcIixcbiAgXCJTdHJpbmdSZXZlcnNlXCIsXG4gIFwiU3RyaW5nUmlmZmxlXCIsXG4gIFwiU3RyaW5nUm90YXRlTGVmdFwiLFxuICBcIlN0cmluZ1JvdGF0ZVJpZ2h0XCIsXG4gIFwiU3RyaW5nU2tlbGV0b25cIixcbiAgXCJTdHJpbmdTcGxpdFwiLFxuICBcIlN0cmluZ1N0YXJ0c1FcIixcbiAgXCJTdHJpbmdUYWtlXCIsXG4gIFwiU3RyaW5nVGFrZURyb3BcIixcbiAgXCJTdHJpbmdUZW1wbGF0ZVwiLFxuICBcIlN0cmluZ1RvQnl0ZUFycmF5XCIsXG4gIFwiU3RyaW5nVG9TdHJlYW1cIixcbiAgXCJTdHJpbmdUcmltXCIsXG4gIFwiU3RyaXBCb3hlc1wiLFxuICBcIlN0cmlwT25JbnB1dFwiLFxuICBcIlN0cmlwU3R5bGVPblBhc3RlXCIsXG4gIFwiU3RyaXBXcmFwcGVyQm94ZXNcIixcbiAgXCJTdHJva2VGb3JtXCIsXG4gIFwiU3RydWNrdGhyb3VnaFwiLFxuICBcIlN0cnVjdHVyYWxJbXBvcnRhbmNlXCIsXG4gIFwiU3RydWN0dXJlZEFycmF5XCIsXG4gIFwiU3RydWN0dXJlZEFycmF5SGVhZFFcIixcbiAgXCJTdHJ1Y3R1cmVkU2VsZWN0aW9uXCIsXG4gIFwiU3RydXZlSFwiLFxuICBcIlN0cnV2ZUxcIixcbiAgXCJTdHViXCIsXG4gIFwiU3R1ZGVudFREaXN0cmlidXRpb25cIixcbiAgXCJTdHlsZVwiLFxuICBcIlN0eWxlQm94XCIsXG4gIFwiU3R5bGVCb3hBdXRvRGVsZXRlXCIsXG4gIFwiU3R5bGVEYXRhXCIsXG4gIFwiU3R5bGVEZWZpbml0aW9uc1wiLFxuICBcIlN0eWxlRm9ybVwiLFxuICBcIlN0eWxlSGludHNcIixcbiAgXCJTdHlsZUtleU1hcHBpbmdcIixcbiAgXCJTdHlsZU1lbnVMaXN0aW5nXCIsXG4gIFwiU3R5bGVOYW1lRGlhbG9nU2V0dGluZ3NcIixcbiAgXCJTdHlsZU5hbWVzXCIsXG4gIFwiU3R5bGVQcmludFwiLFxuICBcIlN0eWxlU2hlZXRQYXRoXCIsXG4gIFwiU3ViZGl2aWRlXCIsXG4gIFwiU3ViZmFjdG9yaWFsXCIsXG4gIFwiU3ViZ3JhcGhcIixcbiAgXCJTdWJNaW51c1wiLFxuICBcIlN1YlBsdXNcIixcbiAgXCJTdWJyZXN1bHRhbnRQb2x5bm9taWFsUmVtYWluZGVyc1wiLFxuICBcIlN1YnJlc3VsdGFudFBvbHlub21pYWxzXCIsXG4gIFwiU3VicmVzdWx0YW50c1wiLFxuICBcIlN1YnNjcmlwdFwiLFxuICBcIlN1YnNjcmlwdEJveFwiLFxuICBcIlN1YnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJTdWJzY3JpcHRlZFwiLFxuICBcIlN1YnNlcXVlbmNlc1wiLFxuICBcIlN1YnNldFwiLFxuICBcIlN1YnNldENhc2VzXCIsXG4gIFwiU3Vic2V0Q291bnRcIixcbiAgXCJTdWJzZXRFcXVhbFwiLFxuICBcIlN1YnNldE1hcFwiLFxuICBcIlN1YnNldFBvc2l0aW9uXCIsXG4gIFwiU3Vic2V0UVwiLFxuICBcIlN1YnNldFJlcGxhY2VcIixcbiAgXCJTdWJzZXRzXCIsXG4gIFwiU3ViU3RhclwiLFxuICBcIlN1YnN0aXR1dGlvblN5c3RlbVwiLFxuICBcIlN1YnN1cGVyc2NyaXB0XCIsXG4gIFwiU3Vic3VwZXJzY3JpcHRCb3hcIixcbiAgXCJTdWJzdXBlcnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJTdWJ0aXRsZUVuY29kaW5nXCIsXG4gIFwiU3VidGl0bGVUcmFja1NlbGVjdGlvblwiLFxuICBcIlN1YnRyYWN0XCIsXG4gIFwiU3VidHJhY3RGcm9tXCIsXG4gIFwiU3VidHJhY3RTaWRlc1wiLFxuICBcIlN1YlZhbHVlc1wiLFxuICBcIlN1Y2NlZWRzXCIsXG4gIFwiU3VjY2VlZHNFcXVhbFwiLFxuICBcIlN1Y2NlZWRzU2xhbnRFcXVhbFwiLFxuICBcIlN1Y2NlZWRzVGlsZGVcIixcbiAgXCJTdWNjZXNzXCIsXG4gIFwiU3VjaFRoYXRcIixcbiAgXCJTdW1cIixcbiAgXCJTdW1Db252ZXJnZW5jZVwiLFxuICBcIlN1bW1hdGlvbkxheWVyXCIsXG4gIFwiU3VuZGF5XCIsXG4gIFwiU3VuUG9zaXRpb25cIixcbiAgXCJTdW5yaXNlXCIsXG4gIFwiU3Vuc2V0XCIsXG4gIFwiU3VwZXJEYWdnZXJcIixcbiAgXCJTdXBlck1pbnVzXCIsXG4gIFwiU3VwZXJub3ZhRGF0YVwiLFxuICBcIlN1cGVyUGx1c1wiLFxuICBcIlN1cGVyc2NyaXB0XCIsXG4gIFwiU3VwZXJzY3JpcHRCb3hcIixcbiAgXCJTdXBlcnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJTdXBlcnNldFwiLFxuICBcIlN1cGVyc2V0RXF1YWxcIixcbiAgXCJTdXBlclN0YXJcIixcbiAgXCJTdXJkXCIsXG4gIFwiU3VyZEZvcm1cIixcbiAgXCJTdXJmYWNlQXBwZWFyYW5jZVwiLFxuICBcIlN1cmZhY2VBcmVhXCIsXG4gIFwiU3VyZmFjZUNvbG9yXCIsXG4gIFwiU3VyZmFjZURhdGFcIixcbiAgXCJTdXJmYWNlR3JhcGhpY3NcIixcbiAgXCJTdXJ2aXZhbERpc3RyaWJ1dGlvblwiLFxuICBcIlN1cnZpdmFsRnVuY3Rpb25cIixcbiAgXCJTdXJ2aXZhbE1vZGVsXCIsXG4gIFwiU3Vydml2YWxNb2RlbEZpdFwiLFxuICBcIlN1c3BlbmRQYWNrZXRcIixcbiAgXCJTdXp1a2lEaXN0cmlidXRpb25cIixcbiAgXCJTdXp1a2lHcm91cFN1elwiLFxuICBcIlN3YXRjaExlZ2VuZFwiLFxuICBcIlN3aXRjaFwiLFxuICBcIlN5bWJvbFwiLFxuICBcIlN5bWJvbE5hbWVcIixcbiAgXCJTeW1sZXRXYXZlbGV0XCIsXG4gIFwiU3ltbWV0cmljXCIsXG4gIFwiU3ltbWV0cmljRGlmZmVyZW5jZVwiLFxuICBcIlN5bW1ldHJpY0dyb3VwXCIsXG4gIFwiU3ltbWV0cmljS2V5XCIsXG4gIFwiU3ltbWV0cmljTWF0cml4UVwiLFxuICBcIlN5bW1ldHJpY1BvbHlub21pYWxcIixcbiAgXCJTeW1tZXRyaWNSZWR1Y3Rpb25cIixcbiAgXCJTeW1tZXRyaXplXCIsXG4gIFwiU3ltbWV0cml6ZWRBcnJheVwiLFxuICBcIlN5bW1ldHJpemVkQXJyYXlSdWxlc1wiLFxuICBcIlN5bW1ldHJpemVkRGVwZW5kZW50Q29tcG9uZW50c1wiLFxuICBcIlN5bW1ldHJpemVkSW5kZXBlbmRlbnRDb21wb25lbnRzXCIsXG4gIFwiU3ltbWV0cml6ZWRSZXBsYWNlUGFydFwiLFxuICBcIlN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb25cIixcbiAgXCJTeW5jaHJvbm91c1VwZGF0aW5nXCIsXG4gIFwiU3lub255bXNcIixcbiAgXCJTeW50YXhcIixcbiAgXCJTeW50YXhGb3JtXCIsXG4gIFwiU3ludGF4SW5mb3JtYXRpb25cIixcbiAgXCJTeW50YXhMZW5ndGhcIixcbiAgXCJTeW50YXhQYWNrZXRcIixcbiAgXCJTeW50YXhRXCIsXG4gIFwiU3ludGhlc2l6ZU1pc3NpbmdWYWx1ZXNcIixcbiAgXCJTeXN0ZW1DcmVkZW50aWFsXCIsXG4gIFwiU3lzdGVtQ3JlZGVudGlhbERhdGFcIixcbiAgXCJTeXN0ZW1DcmVkZW50aWFsS2V5XCIsXG4gIFwiU3lzdGVtQ3JlZGVudGlhbEtleXNcIixcbiAgXCJTeXN0ZW1DcmVkZW50aWFsU3RvcmVPYmplY3RcIixcbiAgXCJTeXN0ZW1EaWFsb2dJbnB1dFwiLFxuICBcIlN5c3RlbUV4Y2VwdGlvblwiLFxuICBcIlN5c3RlbUdldFwiLFxuICBcIlN5c3RlbUhlbHBQYXRoXCIsXG4gIFwiU3lzdGVtSW5mb3JtYXRpb25cIixcbiAgXCJTeXN0ZW1JbmZvcm1hdGlvbkRhdGFcIixcbiAgXCJTeXN0ZW1JbnN0YWxsXCIsXG4gIFwiU3lzdGVtTW9kZWxcIixcbiAgXCJTeXN0ZW1Nb2RlbGVyXCIsXG4gIFwiU3lzdGVtTW9kZWxFeGFtcGxlc1wiLFxuICBcIlN5c3RlbU1vZGVsTGluZWFyaXplXCIsXG4gIFwiU3lzdGVtTW9kZWxNZWFzdXJlbWVudHNcIixcbiAgXCJTeXN0ZW1Nb2RlbFBhcmFtZXRyaWNTaW11bGF0ZVwiLFxuICBcIlN5c3RlbU1vZGVsUGxvdFwiLFxuICBcIlN5c3RlbU1vZGVsUHJvZ3Jlc3NSZXBvcnRpbmdcIixcbiAgXCJTeXN0ZW1Nb2RlbFJlbGlhYmlsaXR5XCIsXG4gIFwiU3lzdGVtTW9kZWxzXCIsXG4gIFwiU3lzdGVtTW9kZWxTaW11bGF0ZVwiLFxuICBcIlN5c3RlbU1vZGVsU2ltdWxhdGVTZW5zaXRpdml0eVwiLFxuICBcIlN5c3RlbU1vZGVsU2ltdWxhdGlvbkRhdGFcIixcbiAgXCJTeXN0ZW1PcGVuXCIsXG4gIFwiU3lzdGVtT3B0aW9uc1wiLFxuICBcIlN5c3RlbVByb2Nlc3NEYXRhXCIsXG4gIFwiU3lzdGVtUHJvY2Vzc2VzXCIsXG4gIFwiU3lzdGVtc0Nvbm5lY3Rpb25zTW9kZWxcIixcbiAgXCJTeXN0ZW1zTW9kZWxDb250cm9sbGVyRGF0YVwiLFxuICBcIlN5c3RlbXNNb2RlbERlbGF5XCIsXG4gIFwiU3lzdGVtc01vZGVsRGVsYXlBcHByb3hpbWF0ZVwiLFxuICBcIlN5c3RlbXNNb2RlbERlbGV0ZVwiLFxuICBcIlN5c3RlbXNNb2RlbERpbWVuc2lvbnNcIixcbiAgXCJTeXN0ZW1zTW9kZWxFeHRyYWN0XCIsXG4gIFwiU3lzdGVtc01vZGVsRmVlZGJhY2tDb25uZWN0XCIsXG4gIFwiU3lzdGVtc01vZGVsTGFiZWxzXCIsXG4gIFwiU3lzdGVtc01vZGVsTGluZWFyaXR5XCIsXG4gIFwiU3lzdGVtc01vZGVsTWVyZ2VcIixcbiAgXCJTeXN0ZW1zTW9kZWxPcmRlclwiLFxuICBcIlN5c3RlbXNNb2RlbFBhcmFsbGVsQ29ubmVjdFwiLFxuICBcIlN5c3RlbXNNb2RlbFNlcmllc0Nvbm5lY3RcIixcbiAgXCJTeXN0ZW1zTW9kZWxTdGF0ZUZlZWRiYWNrQ29ubmVjdFwiLFxuICBcIlN5c3RlbXNNb2RlbFZlY3RvclJlbGF0aXZlT3JkZXJzXCIsXG4gIFwiU3lzdGVtU3R1YlwiLFxuICBcIlN5c3RlbVRlc3RcIixcbiAgXCJUYWJcIixcbiAgXCJUYWJGaWxsaW5nXCIsXG4gIFwiVGFibGVcIixcbiAgXCJUYWJsZUFsaWdubWVudHNcIixcbiAgXCJUYWJsZURlcHRoXCIsXG4gIFwiVGFibGVEaXJlY3Rpb25zXCIsXG4gIFwiVGFibGVGb3JtXCIsXG4gIFwiVGFibGVIZWFkaW5nc1wiLFxuICBcIlRhYmxlU3BhY2luZ1wiLFxuICBcIlRhYmxlVmlld1wiLFxuICBcIlRhYmxlVmlld0JveFwiLFxuICBcIlRhYmxlVmlld0JveEFsaWdubWVudFwiLFxuICBcIlRhYmxlVmlld0JveEJhY2tncm91bmRcIixcbiAgXCJUYWJsZVZpZXdCb3hIZWFkZXJzXCIsXG4gIFwiVGFibGVWaWV3Qm94SXRlbVNpemVcIixcbiAgXCJUYWJsZVZpZXdCb3hJdGVtU3R5bGVcIixcbiAgXCJUYWJsZVZpZXdCb3hPcHRpb25zXCIsXG4gIFwiVGFiU3BhY2luZ3NcIixcbiAgXCJUYWJWaWV3XCIsXG4gIFwiVGFiVmlld0JveFwiLFxuICBcIlRhYlZpZXdCb3hPcHRpb25zXCIsXG4gIFwiVGFnQm94XCIsXG4gIFwiVGFnQm94Tm90ZVwiLFxuICBcIlRhZ0JveE9wdGlvbnNcIixcbiAgXCJUYWdnaW5nUnVsZXNcIixcbiAgXCJUYWdTZXRcIixcbiAgXCJUYWdTZXREZWxheWVkXCIsXG4gIFwiVGFnU3R5bGVcIixcbiAgXCJUYWdVbnNldFwiLFxuICBcIlRha2VcIixcbiAgXCJUYWtlRHJvcFwiLFxuICBcIlRha2VMYXJnZXN0XCIsXG4gIFwiVGFrZUxhcmdlc3RCeVwiLFxuICBcIlRha2VMaXN0XCIsXG4gIFwiVGFrZVNtYWxsZXN0XCIsXG4gIFwiVGFrZVNtYWxsZXN0QnlcIixcbiAgXCJUYWtlV2hpbGVcIixcbiAgXCJUYWxseVwiLFxuICBcIlRhblwiLFxuICBcIlRhbmhcIixcbiAgXCJUYXJnZXREZXZpY2VcIixcbiAgXCJUYXJnZXRGdW5jdGlvbnNcIixcbiAgXCJUYXJnZXRTeXN0ZW1cIixcbiAgXCJUYXJnZXRVbml0c1wiLFxuICBcIlRhc2tBYm9ydFwiLFxuICBcIlRhc2tFeGVjdXRlXCIsXG4gIFwiVGFza09iamVjdFwiLFxuICBcIlRhc2tSZW1vdmVcIixcbiAgXCJUYXNrUmVzdW1lXCIsXG4gIFwiVGFza3NcIixcbiAgXCJUYXNrU3VzcGVuZFwiLFxuICBcIlRhc2tXYWl0XCIsXG4gIFwiVGF1dG9sb2d5UVwiLFxuICBcIlRlbGVncmFwaFByb2Nlc3NcIixcbiAgXCJUZW1wbGF0ZUFwcGx5XCIsXG4gIFwiVGVtcGxhdGVBcmdCb3hcIixcbiAgXCJUZW1wbGF0ZUJveFwiLFxuICBcIlRlbXBsYXRlQm94T3B0aW9uc1wiLFxuICBcIlRlbXBsYXRlRXZhbHVhdGVcIixcbiAgXCJUZW1wbGF0ZUV4cHJlc3Npb25cIixcbiAgXCJUZW1wbGF0ZUlmXCIsXG4gIFwiVGVtcGxhdGVPYmplY3RcIixcbiAgXCJUZW1wbGF0ZVNlcXVlbmNlXCIsXG4gIFwiVGVtcGxhdGVTbG90XCIsXG4gIFwiVGVtcGxhdGVTbG90U2VxdWVuY2VcIixcbiAgXCJUZW1wbGF0ZVVuZXZhbHVhdGVkXCIsXG4gIFwiVGVtcGxhdGVWZXJiYXRpbVwiLFxuICBcIlRlbXBsYXRlV2l0aFwiLFxuICBcIlRlbXBvcmFsRGF0YVwiLFxuICBcIlRlbXBvcmFsUmVndWxhcml0eVwiLFxuICBcIlRlbXBvcmFyeVwiLFxuICBcIlRlbXBvcmFyeVZhcmlhYmxlXCIsXG4gIFwiVGVuc29yQ29udHJhY3RcIixcbiAgXCJUZW5zb3JEaW1lbnNpb25zXCIsXG4gIFwiVGVuc29yRXhwYW5kXCIsXG4gIFwiVGVuc29yUHJvZHVjdFwiLFxuICBcIlRlbnNvclFcIixcbiAgXCJUZW5zb3JSYW5rXCIsXG4gIFwiVGVuc29yUmVkdWNlXCIsXG4gIFwiVGVuc29yU3ltbWV0cnlcIixcbiAgXCJUZW5zb3JUcmFuc3Bvc2VcIixcbiAgXCJUZW5zb3JXZWRnZVwiLFxuICBcIlRlcm1pbmF0ZWRFdmFsdWF0aW9uXCIsXG4gIFwiVGVybmFyeUxpc3RQbG90XCIsXG4gIFwiVGVybmFyeVBsb3RDb3JuZXJzXCIsXG4gIFwiVGVzdElEXCIsXG4gIFwiVGVzdFJlcG9ydFwiLFxuICBcIlRlc3RSZXBvcnRPYmplY3RcIixcbiAgXCJUZXN0UmVzdWx0T2JqZWN0XCIsXG4gIFwiVGV0cmFoZWRyb25cIixcbiAgXCJUZXRyYWhlZHJvbkJveFwiLFxuICBcIlRldHJhaGVkcm9uQm94T3B0aW9uc1wiLFxuICBcIlRlWEZvcm1cIixcbiAgXCJUZVhTYXZlXCIsXG4gIFwiVGV4dFwiLFxuICBcIlRleHQzREJveFwiLFxuICBcIlRleHQzREJveE9wdGlvbnNcIixcbiAgXCJUZXh0QWxpZ25tZW50XCIsXG4gIFwiVGV4dEJhbmRcIixcbiAgXCJUZXh0Qm91bmRpbmdCb3hcIixcbiAgXCJUZXh0Qm94XCIsXG4gIFwiVGV4dENhc2VzXCIsXG4gIFwiVGV4dENlbGxcIixcbiAgXCJUZXh0Q2xpcGJvYXJkVHlwZVwiLFxuICBcIlRleHRDb250ZW50c1wiLFxuICBcIlRleHREYXRhXCIsXG4gIFwiVGV4dEVsZW1lbnRcIixcbiAgXCJUZXh0Rm9ybVwiLFxuICBcIlRleHRHcmlkXCIsXG4gIFwiVGV4dEp1c3RpZmljYXRpb25cIixcbiAgXCJUZXh0TGluZVwiLFxuICBcIlRleHRQYWNrZXRcIixcbiAgXCJUZXh0UGFyYWdyYXBoXCIsXG4gIFwiVGV4dFBvc2l0aW9uXCIsXG4gIFwiVGV4dFJlY29nbml6ZVwiLFxuICBcIlRleHRTZWFyY2hcIixcbiAgXCJUZXh0U2VhcmNoUmVwb3J0XCIsXG4gIFwiVGV4dFNlbnRlbmNlc1wiLFxuICBcIlRleHRTdHJpbmdcIixcbiAgXCJUZXh0U3RydWN0dXJlXCIsXG4gIFwiVGV4dFN0eWxlXCIsXG4gIFwiVGV4dFRyYW5zbGF0aW9uXCIsXG4gIFwiVGV4dHVyZVwiLFxuICBcIlRleHR1cmVDb29yZGluYXRlRnVuY3Rpb25cIixcbiAgXCJUZXh0dXJlQ29vcmRpbmF0ZVNjYWxpbmdcIixcbiAgXCJUZXh0V29yZHNcIixcbiAgXCJUaGVyZWZvcmVcIixcbiAgXCJUaGVybW9keW5hbWljRGF0YVwiLFxuICBcIlRoZXJtb21ldGVyR2F1Z2VcIixcbiAgXCJUaGlja1wiLFxuICBcIlRoaWNrbmVzc1wiLFxuICBcIlRoaW5cIixcbiAgXCJUaGlubmluZ1wiLFxuICBcIlRoaXNMaW5rXCIsXG4gIFwiVGhvbWFzUG9pbnRQcm9jZXNzXCIsXG4gIFwiVGhvbXBzb25Hcm91cFRoXCIsXG4gIFwiVGhyZWFkXCIsXG4gIFwiVGhyZWFkZWRcIixcbiAgXCJUaHJlYWRpbmdMYXllclwiLFxuICBcIlRocmVlSlN5bWJvbFwiLFxuICBcIlRocmVzaG9sZFwiLFxuICBcIlRocm91Z2hcIixcbiAgXCJUaHJvd1wiLFxuICBcIlRodWVNb3JzZVwiLFxuICBcIlRodW1ibmFpbFwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiVGlja0RpcmVjdGlvblwiLFxuICBcIlRpY2tMYWJlbE9yaWVudGF0aW9uXCIsXG4gIFwiVGlja0xhYmVsUG9zaXRpb25pbmdcIixcbiAgXCJUaWNrTGFiZWxzXCIsXG4gIFwiVGlja0xlbmd0aHNcIixcbiAgXCJUaWNrUG9zaXRpb25zXCIsXG4gIFwiVGlja3NcIixcbiAgXCJUaWNrc1N0eWxlXCIsXG4gIFwiVGlkZURhdGFcIixcbiAgXCJUaWxkZVwiLFxuICBcIlRpbGRlRXF1YWxcIixcbiAgXCJUaWxkZUZ1bGxFcXVhbFwiLFxuICBcIlRpbGRlVGlsZGVcIixcbiAgXCJUaW1lQ29uc3RyYWluZWRcIixcbiAgXCJUaW1lQ29uc3RyYWludFwiLFxuICBcIlRpbWVEaXJlY3Rpb25cIixcbiAgXCJUaW1lRm9ybWF0XCIsXG4gIFwiVGltZUdvYWxcIixcbiAgXCJUaW1lbGluZVBsb3RcIixcbiAgXCJUaW1lT2JqZWN0XCIsXG4gIFwiVGltZU9iamVjdFFcIixcbiAgXCJUaW1lUmVtYWluaW5nXCIsXG4gIFwiVGltZXNcIixcbiAgXCJUaW1lc0J5XCIsXG4gIFwiVGltZVNlcmllc1wiLFxuICBcIlRpbWVTZXJpZXNBZ2dyZWdhdGVcIixcbiAgXCJUaW1lU2VyaWVzRm9yZWNhc3RcIixcbiAgXCJUaW1lU2VyaWVzSW5zZXJ0XCIsXG4gIFwiVGltZVNlcmllc0ludmVydGliaWxpdHlcIixcbiAgXCJUaW1lU2VyaWVzTWFwXCIsXG4gIFwiVGltZVNlcmllc01hcFRocmVhZFwiLFxuICBcIlRpbWVTZXJpZXNNb2RlbFwiLFxuICBcIlRpbWVTZXJpZXNNb2RlbEZpdFwiLFxuICBcIlRpbWVTZXJpZXNSZXNhbXBsZVwiLFxuICBcIlRpbWVTZXJpZXNSZXNjYWxlXCIsXG4gIFwiVGltZVNlcmllc1NoaWZ0XCIsXG4gIFwiVGltZVNlcmllc1RocmVhZFwiLFxuICBcIlRpbWVTZXJpZXNXaW5kb3dcIixcbiAgXCJUaW1lU3lzdGVtXCIsXG4gIFwiVGltZVN5c3RlbUNvbnZlcnRcIixcbiAgXCJUaW1lVXNlZFwiLFxuICBcIlRpbWVWYWx1ZVwiLFxuICBcIlRpbWVXYXJwaW5nQ29ycmVzcG9uZGVuY2VcIixcbiAgXCJUaW1lV2FycGluZ0Rpc3RhbmNlXCIsXG4gIFwiVGltZVpvbmVcIixcbiAgXCJUaW1lWm9uZUNvbnZlcnRcIixcbiAgXCJUaW1lWm9uZU9mZnNldFwiLFxuICBcIlRpbWluZ1wiLFxuICBcIlRpbnlcIixcbiAgXCJUaXRsZUdyb3VwaW5nXCIsXG4gIFwiVGl0c0dyb3VwVFwiLFxuICBcIlRvQm94ZXNcIixcbiAgXCJUb0NoYXJhY3RlckNvZGVcIixcbiAgXCJUb0NvbG9yXCIsXG4gIFwiVG9Db250aW51b3VzVGltZU1vZGVsXCIsXG4gIFwiVG9EYXRlXCIsXG4gIFwiVG9kYXlcIixcbiAgXCJUb0Rpc2NyZXRlVGltZU1vZGVsXCIsXG4gIFwiVG9FbnRpdHlcIixcbiAgXCJUb2VwbGl0ek1hdHJpeFwiLFxuICBcIlRvRXhwcmVzc2lvblwiLFxuICBcIlRvRmlsZU5hbWVcIixcbiAgXCJUb2dldGhlclwiLFxuICBcIlRvZ2dsZVwiLFxuICBcIlRvZ2dsZUZhbHNlXCIsXG4gIFwiVG9nZ2xlclwiLFxuICBcIlRvZ2dsZXJCYXJcIixcbiAgXCJUb2dnbGVyQm94XCIsXG4gIFwiVG9nZ2xlckJveE9wdGlvbnNcIixcbiAgXCJUb0hlbGRFeHByZXNzaW9uXCIsXG4gIFwiVG9JbnZlcnRpYmxlVGltZVNlcmllc1wiLFxuICBcIlRva2VuV29yZHNcIixcbiAgXCJUb2xlcmFuY2VcIixcbiAgXCJUb0xvd2VyQ2FzZVwiLFxuICBcIlRvbW9ycm93XCIsXG4gIFwiVG9OdW1iZXJGaWVsZFwiLFxuICBcIlRvb0JpZ1wiLFxuICBcIlRvb2x0aXBcIixcbiAgXCJUb29sdGlwQm94XCIsXG4gIFwiVG9vbHRpcEJveE9wdGlvbnNcIixcbiAgXCJUb29sdGlwRGVsYXlcIixcbiAgXCJUb29sdGlwU3R5bGVcIixcbiAgXCJUb29uU2hhZGluZ1wiLFxuICBcIlRvcFwiLFxuICBcIlRvcEhhdFRyYW5zZm9ybVwiLFxuICBcIlRvUG9sYXJDb29yZGluYXRlc1wiLFxuICBcIlRvcG9sb2dpY2FsU29ydFwiLFxuICBcIlRvUmFkaWNhbHNcIixcbiAgXCJUb1Jhd1BvaW50ZXJcIixcbiAgXCJUb1J1bGVzXCIsXG4gIFwiVG9ydXNcIixcbiAgXCJUb3J1c0dyYXBoXCIsXG4gIFwiVG9TcGhlcmljYWxDb29yZGluYXRlc1wiLFxuICBcIlRvU3RyaW5nXCIsXG4gIFwiVG90YWxcIixcbiAgXCJUb3RhbEhlaWdodFwiLFxuICBcIlRvdGFsTGF5ZXJcIixcbiAgXCJUb3RhbFZhcmlhdGlvbkZpbHRlclwiLFxuICBcIlRvdGFsV2lkdGhcIixcbiAgXCJUb3VjaFBvc2l0aW9uXCIsXG4gIFwiVG91Y2hzY3JlZW5BdXRvWm9vbVwiLFxuICBcIlRvdWNoc2NyZWVuQ29udHJvbFBsYWNlbWVudFwiLFxuICBcIlRvVXBwZXJDYXNlXCIsXG4gIFwiVG91clZpZGVvXCIsXG4gIFwiVHJcIixcbiAgXCJUcmFjZVwiLFxuICBcIlRyYWNlQWJvdmVcIixcbiAgXCJUcmFjZUFjdGlvblwiLFxuICBcIlRyYWNlQmFja3dhcmRcIixcbiAgXCJUcmFjZURlcHRoXCIsXG4gIFwiVHJhY2VEaWFsb2dcIixcbiAgXCJUcmFjZUZvcndhcmRcIixcbiAgXCJUcmFjZUludGVybmFsXCIsXG4gIFwiVHJhY2VMZXZlbFwiLFxuICBcIlRyYWNlT2ZmXCIsXG4gIFwiVHJhY2VPblwiLFxuICBcIlRyYWNlT3JpZ2luYWxcIixcbiAgXCJUcmFjZVByaW50XCIsXG4gIFwiVHJhY2VTY2FuXCIsXG4gIFwiVHJhY2tDZWxsQ2hhbmdlVGltZXNcIixcbiAgXCJUcmFja2VkU3ltYm9sc1wiLFxuICBcIlRyYWNraW5nRnVuY3Rpb25cIixcbiAgXCJUcmFjeVdpZG9tRGlzdHJpYnV0aW9uXCIsXG4gIFwiVHJhZGluZ0NoYXJ0XCIsXG4gIFwiVHJhZGl0aW9uYWxGb3JtXCIsXG4gIFwiVHJhZGl0aW9uYWxGdW5jdGlvbk5vdGF0aW9uXCIsXG4gIFwiVHJhZGl0aW9uYWxOb3RhdGlvblwiLFxuICBcIlRyYWRpdGlvbmFsT3JkZXJcIixcbiAgXCJUcmFpbkltYWdlQ29udGVudERldGVjdG9yXCIsXG4gIFwiVHJhaW5pbmdQcm9ncmVzc0NoZWNrcG9pbnRpbmdcIixcbiAgXCJUcmFpbmluZ1Byb2dyZXNzRnVuY3Rpb25cIixcbiAgXCJUcmFpbmluZ1Byb2dyZXNzTWVhc3VyZW1lbnRzXCIsXG4gIFwiVHJhaW5pbmdQcm9ncmVzc1JlcG9ydGluZ1wiLFxuICBcIlRyYWluaW5nU3RvcHBpbmdDcml0ZXJpb25cIixcbiAgXCJUcmFpbmluZ1VwZGF0ZVNjaGVkdWxlXCIsXG4gIFwiVHJhaW5UZXh0Q29udGVudERldGVjdG9yXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvbkNhbmNlbFwiLFxuICBcIlRyYW5zZmVyRnVuY3Rpb25FeHBhbmRcIixcbiAgXCJUcmFuc2ZlckZ1bmN0aW9uRmFjdG9yXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvbk1vZGVsXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvblBvbGVzXCIsXG4gIFwiVHJhbnNmZXJGdW5jdGlvblRyYW5zZm9ybVwiLFxuICBcIlRyYW5zZmVyRnVuY3Rpb25aZXJvc1wiLFxuICBcIlRyYW5zZm9ybWF0aW9uQ2xhc3NcIixcbiAgXCJUcmFuc2Zvcm1hdGlvbkZ1bmN0aW9uXCIsXG4gIFwiVHJhbnNmb3JtYXRpb25GdW5jdGlvbnNcIixcbiAgXCJUcmFuc2Zvcm1hdGlvbk1hdHJpeFwiLFxuICBcIlRyYW5zZm9ybWVkRGlzdHJpYnV0aW9uXCIsXG4gIFwiVHJhbnNmb3JtZWRGaWVsZFwiLFxuICBcIlRyYW5zZm9ybWVkUHJvY2Vzc1wiLFxuICBcIlRyYW5zZm9ybWVkUmVnaW9uXCIsXG4gIFwiVHJhbnNpdGlvbkRpcmVjdGlvblwiLFxuICBcIlRyYW5zaXRpb25EdXJhdGlvblwiLFxuICBcIlRyYW5zaXRpb25FZmZlY3RcIixcbiAgXCJUcmFuc2l0aXZlQ2xvc3VyZUdyYXBoXCIsXG4gIFwiVHJhbnNpdGl2ZVJlZHVjdGlvbkdyYXBoXCIsXG4gIFwiVHJhbnNsYXRlXCIsXG4gIFwiVHJhbnNsYXRpb25PcHRpb25zXCIsXG4gIFwiVHJhbnNsYXRpb25UcmFuc2Zvcm1cIixcbiAgXCJUcmFuc2xpdGVyYXRlXCIsXG4gIFwiVHJhbnNwYXJlbnRcIixcbiAgXCJUcmFuc3BhcmVudENvbG9yXCIsXG4gIFwiVHJhbnNwb3NlXCIsXG4gIFwiVHJhbnNwb3NlTGF5ZXJcIixcbiAgXCJUcmFwRW50ZXJLZXlcIixcbiAgXCJUcmFwU2VsZWN0aW9uXCIsXG4gIFwiVHJhdmVsRGlyZWN0aW9uc1wiLFxuICBcIlRyYXZlbERpcmVjdGlvbnNEYXRhXCIsXG4gIFwiVHJhdmVsRGlzdGFuY2VcIixcbiAgXCJUcmF2ZWxEaXN0YW5jZUxpc3RcIixcbiAgXCJUcmF2ZWxNZXRob2RcIixcbiAgXCJUcmF2ZWxUaW1lXCIsXG4gIFwiVHJlZVwiLFxuICBcIlRyZWVDYXNlc1wiLFxuICBcIlRyZWVDaGlsZHJlblwiLFxuICBcIlRyZWVDb3VudFwiLFxuICBcIlRyZWVEYXRhXCIsXG4gIFwiVHJlZURlbGV0ZVwiLFxuICBcIlRyZWVEZXB0aFwiLFxuICBcIlRyZWVFbGVtZW50Q29vcmRpbmF0ZXNcIixcbiAgXCJUcmVlRWxlbWVudExhYmVsXCIsXG4gIFwiVHJlZUVsZW1lbnRMYWJlbEZ1bmN0aW9uXCIsXG4gIFwiVHJlZUVsZW1lbnRMYWJlbFN0eWxlXCIsXG4gIFwiVHJlZUVsZW1lbnRTaGFwZVwiLFxuICBcIlRyZWVFbGVtZW50U2hhcGVGdW5jdGlvblwiLFxuICBcIlRyZWVFbGVtZW50U2l6ZVwiLFxuICBcIlRyZWVFbGVtZW50U2l6ZUZ1bmN0aW9uXCIsXG4gIFwiVHJlZUVsZW1lbnRTdHlsZVwiLFxuICBcIlRyZWVFbGVtZW50U3R5bGVGdW5jdGlvblwiLFxuICBcIlRyZWVFeHByZXNzaW9uXCIsXG4gIFwiVHJlZUV4dHJhY3RcIixcbiAgXCJUcmVlRm9sZFwiLFxuICBcIlRyZWVGb3JtXCIsXG4gIFwiVHJlZUdyYXBoXCIsXG4gIFwiVHJlZUdyYXBoUVwiLFxuICBcIlRyZWVJbnNlcnRcIixcbiAgXCJUcmVlTGF5b3V0XCIsXG4gIFwiVHJlZUxlYWZDb3VudFwiLFxuICBcIlRyZWVMZWFmUVwiLFxuICBcIlRyZWVMZWF2ZXNcIixcbiAgXCJUcmVlTGV2ZWxcIixcbiAgXCJUcmVlTWFwXCIsXG4gIFwiVHJlZU1hcEF0XCIsXG4gIFwiVHJlZU91dGxpbmVcIixcbiAgXCJUcmVlUGxvdFwiLFxuICBcIlRyZWVQb3NpdGlvblwiLFxuICBcIlRyZWVRXCIsXG4gIFwiVHJlZVJlcGxhY2VQYXJ0XCIsXG4gIFwiVHJlZVJ1bGVzXCIsXG4gIFwiVHJlZVNjYW5cIixcbiAgXCJUcmVlU2VsZWN0XCIsXG4gIFwiVHJlZVNpemVcIixcbiAgXCJUcmVlVHJhdmVyc2FsT3JkZXJcIixcbiAgXCJUcmVuZFN0eWxlXCIsXG4gIFwiVHJpYW5nbGVcIixcbiAgXCJUcmlhbmdsZUNlbnRlclwiLFxuICBcIlRyaWFuZ2xlQ29uc3RydWN0XCIsXG4gIFwiVHJpYW5nbGVNZWFzdXJlbWVudFwiLFxuICBcIlRyaWFuZ2xlV2F2ZVwiLFxuICBcIlRyaWFuZ3VsYXJEaXN0cmlidXRpb25cIixcbiAgXCJUcmlhbmd1bGF0ZU1lc2hcIixcbiAgXCJUcmlnXCIsXG4gIFwiVHJpZ0V4cGFuZFwiLFxuICBcIlRyaWdGYWN0b3JcIixcbiAgXCJUcmlnRmFjdG9yTGlzdFwiLFxuICBcIlRyaWdnZXJcIixcbiAgXCJUcmlnUmVkdWNlXCIsXG4gIFwiVHJpZ1RvRXhwXCIsXG4gIFwiVHJpbW1lZE1lYW5cIixcbiAgXCJUcmltbWVkVmFyaWFuY2VcIixcbiAgXCJUcm9waWNhbFN0b3JtRGF0YVwiLFxuICBcIlRydWVcIixcbiAgXCJUcnVlUVwiLFxuICBcIlRydW5jYXRlZERpc3RyaWJ1dGlvblwiLFxuICBcIlRydW5jYXRlZFBvbHloZWRyb25cIixcbiAgXCJUc2FsbGlzUUV4cG9uZW50aWFsRGlzdHJpYnV0aW9uXCIsXG4gIFwiVHNhbGxpc1FHYXVzc2lhbkRpc3RyaWJ1dGlvblwiLFxuICBcIlRUZXN0XCIsXG4gIFwiVHViZVwiLFxuICBcIlR1YmVCZXppZXJDdXJ2ZUJveFwiLFxuICBcIlR1YmVCZXppZXJDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJUdWJlQm94XCIsXG4gIFwiVHViZUJveE9wdGlvbnNcIixcbiAgXCJUdWJlQlNwbGluZUN1cnZlQm94XCIsXG4gIFwiVHViZUJTcGxpbmVDdXJ2ZUJveE9wdGlvbnNcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiVHVrZXlMYW1iZGFEaXN0cmlidXRpb25cIixcbiAgXCJUdWtleVdpbmRvd1wiLFxuICBcIlR1bm5lbERhdGFcIixcbiAgXCJUdXBsZXNcIixcbiAgXCJUdXJhbkdyYXBoXCIsXG4gIFwiVHVyaW5nTWFjaGluZVwiLFxuICBcIlR1dHRlUG9seW5vbWlhbFwiLFxuICBcIlR3b1dheVJ1bGVcIixcbiAgXCJUeXBlZFwiLFxuICBcIlR5cGVEZWNsYXJhdGlvblwiLFxuICBcIlR5cGVFdmFsdWF0ZVwiLFxuICBcIlR5cGVIaW50XCIsXG4gIFwiVHlwZU9mXCIsXG4gIFwiVHlwZVNwZWNpZmllclwiLFxuICBcIlVuYXRlUVwiLFxuICBcIlVuY29tcHJlc3NcIixcbiAgXCJVbmNvbnN0cmFpbmVkUGFyYW1ldGVyc1wiLFxuICBcIlVuZGVmaW5lZFwiLFxuICBcIlVuZGVyQmFyXCIsXG4gIFwiVW5kZXJmbG93XCIsXG4gIFwiVW5kZXJsaW5lZFwiLFxuICBcIlVuZGVyb3ZlcnNjcmlwdFwiLFxuICBcIlVuZGVyb3ZlcnNjcmlwdEJveFwiLFxuICBcIlVuZGVyb3ZlcnNjcmlwdEJveE9wdGlvbnNcIixcbiAgXCJVbmRlcnNjcmlwdFwiLFxuICBcIlVuZGVyc2NyaXB0Qm94XCIsXG4gIFwiVW5kZXJzY3JpcHRCb3hPcHRpb25zXCIsXG4gIFwiVW5kZXJzZWFGZWF0dXJlRGF0YVwiLFxuICBcIlVuZGlyZWN0ZWRFZGdlXCIsXG4gIFwiVW5kaXJlY3RlZEdyYXBoXCIsXG4gIFwiVW5kaXJlY3RlZEdyYXBoUVwiLFxuICBcIlVuZG9PcHRpb25zXCIsXG4gIFwiVW5kb1RyYWNrZWRWYXJpYWJsZXNcIixcbiAgXCJVbmVxdWFsXCIsXG4gIFwiVW5lcXVhbFRvXCIsXG4gIFwiVW5ldmFsdWF0ZWRcIixcbiAgXCJVbmlmb3JtRGlzdHJpYnV0aW9uXCIsXG4gIFwiVW5pZm9ybUdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiVW5pZm9ybVBvbHloZWRyb25cIixcbiAgXCJVbmlmb3JtU3VtRGlzdHJpYnV0aW9uXCIsXG4gIFwiVW5pbnN0YWxsXCIsXG4gIFwiVW5pb25cIixcbiAgXCJVbmlvbmVkRW50aXR5Q2xhc3NcIixcbiAgXCJVbmlvblBsdXNcIixcbiAgXCJVbmlxdWVcIixcbiAgXCJVbmlxdWVFbGVtZW50c1wiLFxuICBcIlVuaXRhcnlNYXRyaXhRXCIsXG4gIFwiVW5pdEJveFwiLFxuICBcIlVuaXRDb252ZXJ0XCIsXG4gIFwiVW5pdERpbWVuc2lvbnNcIixcbiAgXCJVbml0aXplXCIsXG4gIFwiVW5pdFJvb3RUZXN0XCIsXG4gIFwiVW5pdFNpbXBsaWZ5XCIsXG4gIFwiVW5pdFN0ZXBcIixcbiAgXCJVbml0U3lzdGVtXCIsXG4gIFwiVW5pdFRyaWFuZ2xlXCIsXG4gIFwiVW5pdFZlY3RvclwiLFxuICBcIlVuaXRWZWN0b3JMYXllclwiLFxuICBcIlVuaXR5RGltZW5zaW9uc1wiLFxuICBcIlVuaXZlcnNlTW9kZWxEYXRhXCIsXG4gIFwiVW5pdmVyc2l0eURhdGFcIixcbiAgXCJVbml4VGltZVwiLFxuICBcIlVubGFiZWxlZFRyZWVcIixcbiAgXCJVbm1hbmFnZU9iamVjdFwiLFxuICBcIlVucHJvdGVjdFwiLFxuICBcIlVucmVnaXN0ZXJFeHRlcm5hbEV2YWx1YXRvclwiLFxuICBcIlVuc2FtZVFcIixcbiAgXCJVbnNhdmVkVmFyaWFibGVzXCIsXG4gIFwiVW5zZXRcIixcbiAgXCJVbnNldFNoYXJlZFwiLFxuICBcIlVudGlsXCIsXG4gIFwiVW50cmFja2VkVmFyaWFibGVzXCIsXG4gIFwiVXBcIixcbiAgXCJVcEFycm93XCIsXG4gIFwiVXBBcnJvd0JhclwiLFxuICBcIlVwQXJyb3dEb3duQXJyb3dcIixcbiAgXCJVcGRhdGVcIixcbiAgXCJVcGRhdGVEeW5hbWljT2JqZWN0c1wiLFxuICBcIlVwZGF0ZUR5bmFtaWNPYmplY3RzU3luY2hyb25vdXNcIixcbiAgXCJVcGRhdGVJbnRlcnZhbFwiLFxuICBcIlVwZGF0ZVBhY2xldFNpdGVzXCIsXG4gIFwiVXBkYXRlU2VhcmNoSW5kZXhcIixcbiAgXCJVcERvd25BcnJvd1wiLFxuICBcIlVwRXF1aWxpYnJpdW1cIixcbiAgXCJVcHBlckNhc2VRXCIsXG4gIFwiVXBwZXJMZWZ0QXJyb3dcIixcbiAgXCJVcHBlclJpZ2h0QXJyb3dcIixcbiAgXCJVcHBlclRyaWFuZ3VsYXJpemVcIixcbiAgXCJVcHBlclRyaWFuZ3VsYXJNYXRyaXhcIixcbiAgXCJVcHBlclRyaWFuZ3VsYXJNYXRyaXhRXCIsXG4gIFwiVXBzYW1wbGVcIixcbiAgXCJVcFNldFwiLFxuICBcIlVwU2V0RGVsYXllZFwiLFxuICBcIlVwVGVlXCIsXG4gIFwiVXBUZWVBcnJvd1wiLFxuICBcIlVwVG9cIixcbiAgXCJVcFZhbHVlc1wiLFxuICBcIlVSTFwiLFxuICBcIlVSTEJ1aWxkXCIsXG4gIFwiVVJMRGVjb2RlXCIsXG4gIFwiVVJMRGlzcGF0Y2hlclwiLFxuICBcIlVSTERvd25sb2FkXCIsXG4gIFwiVVJMRG93bmxvYWRTdWJtaXRcIixcbiAgXCJVUkxFbmNvZGVcIixcbiAgXCJVUkxFeGVjdXRlXCIsXG4gIFwiVVJMRXhwYW5kXCIsXG4gIFwiVVJMRmV0Y2hcIixcbiAgXCJVUkxGZXRjaEFzeW5jaHJvbm91c1wiLFxuICBcIlVSTFBhcnNlXCIsXG4gIFwiVVJMUXVlcnlEZWNvZGVcIixcbiAgXCJVUkxRdWVyeUVuY29kZVwiLFxuICBcIlVSTFJlYWRcIixcbiAgXCJVUkxSZXNwb25zZVRpbWVcIixcbiAgXCJVUkxTYXZlXCIsXG4gIFwiVVJMU2F2ZUFzeW5jaHJvbm91c1wiLFxuICBcIlVSTFNob3J0ZW5cIixcbiAgXCJVUkxTdWJtaXRcIixcbiAgXCJVc2VFbWJlZGRlZExpYnJhcnlcIixcbiAgXCJVc2VHcmFwaGljc1JhbmdlXCIsXG4gIFwiVXNlckRlZmluZWRXYXZlbGV0XCIsXG4gIFwiVXNpbmdcIixcbiAgXCJVc2luZ0Zyb250RW5kXCIsXG4gIFwiVXRpbGl0eUZ1bmN0aW9uXCIsXG4gIFwiVjJHZXRcIixcbiAgXCJWYWxlbmNlRXJyb3JIYW5kbGluZ1wiLFxuICBcIlZhbGVuY2VGaWxsaW5nXCIsXG4gIFwiVmFsaWRhdGlvbkxlbmd0aFwiLFxuICBcIlZhbGlkYXRpb25TZXRcIixcbiAgXCJWYWx1ZUJveFwiLFxuICBcIlZhbHVlQm94T3B0aW9uc1wiLFxuICBcIlZhbHVlRGltZW5zaW9uc1wiLFxuICBcIlZhbHVlRm9ybVwiLFxuICBcIlZhbHVlUHJlcHJvY2Vzc2luZ0Z1bmN0aW9uXCIsXG4gIFwiVmFsdWVRXCIsXG4gIFwiVmFsdWVzXCIsXG4gIFwiVmFsdWVzRGF0YVwiLFxuICBcIlZhbmRlcm1vbmRlTWF0cml4XCIsXG4gIFwiVmFyaWFibGVzXCIsXG4gIFwiVmFyaWFuY2VcIixcbiAgXCJWYXJpYW5jZUVxdWl2YWxlbmNlVGVzdFwiLFxuICBcIlZhcmlhbmNlRXN0aW1hdG9yRnVuY3Rpb25cIixcbiAgXCJWYXJpYW5jZUdhbW1hRGlzdHJpYnV0aW9uXCIsXG4gIFwiVmFyaWFuY2VHYW1tYVBvaW50UHJvY2Vzc1wiLFxuICBcIlZhcmlhbmNlVGVzdFwiLFxuICBcIlZhcmlvZ3JhbUZ1bmN0aW9uXCIsXG4gIFwiVmFyaW9ncmFtTW9kZWxcIixcbiAgXCJWZWN0b3JBbmdsZVwiLFxuICBcIlZlY3RvckFyb3VuZFwiLFxuICBcIlZlY3RvckFzcGVjdFJhdGlvXCIsXG4gIFwiVmVjdG9yQ29sb3JGdW5jdGlvblwiLFxuICBcIlZlY3RvckNvbG9yRnVuY3Rpb25TY2FsaW5nXCIsXG4gIFwiVmVjdG9yRGVuc2l0eVBsb3RcIixcbiAgXCJWZWN0b3JEaXNwbGFjZW1lbnRQbG90XCIsXG4gIFwiVmVjdG9yRGlzcGxhY2VtZW50UGxvdDNEXCIsXG4gIFwiVmVjdG9yR2x5cGhEYXRhXCIsXG4gIFwiVmVjdG9yR3JlYXRlclwiLFxuICBcIlZlY3RvckdyZWF0ZXJFcXVhbFwiLFxuICBcIlZlY3Rvckxlc3NcIixcbiAgXCJWZWN0b3JMZXNzRXF1YWxcIixcbiAgXCJWZWN0b3JNYXJrZXJzXCIsXG4gIFwiVmVjdG9yUGxvdFwiLFxuICBcIlZlY3RvclBsb3QzRFwiLFxuICBcIlZlY3RvclBvaW50c1wiLFxuICBcIlZlY3RvclFcIixcbiAgXCJWZWN0b3JSYW5nZVwiLFxuICBcIlZlY3RvcnNcIixcbiAgXCJWZWN0b3JTY2FsZVwiLFxuICBcIlZlY3RvclNjYWxpbmdcIixcbiAgXCJWZWN0b3JTaXplc1wiLFxuICBcIlZlY3RvclN0eWxlXCIsXG4gIFwiVmVlXCIsXG4gIFwiVmVyYmF0aW1cIixcbiAgXCJWZXJib3NlXCIsXG4gIFwiVmVyaWZpY2F0aW9uVGVzdFwiLFxuICBcIlZlcmlmeUNvbnZlcmdlbmNlXCIsXG4gIFwiVmVyaWZ5RGVyaXZlZEtleVwiLFxuICBcIlZlcmlmeURpZ2l0YWxTaWduYXR1cmVcIixcbiAgXCJWZXJpZnlGaWxlU2lnbmF0dXJlXCIsXG4gIFwiVmVyaWZ5SW50ZXJwcmV0YXRpb25cIixcbiAgXCJWZXJpZnlTZWN1cml0eUNlcnRpZmljYXRlc1wiLFxuICBcIlZlcmlmeVNvbHV0aW9uc1wiLFxuICBcIlZlcmlmeVRlc3RBc3N1bXB0aW9uc1wiLFxuICBcIlZlcnNpb25lZFByZWZlcmVuY2VzXCIsXG4gIFwiVmVydGV4QWRkXCIsXG4gIFwiVmVydGV4Q2FwYWNpdHlcIixcbiAgXCJWZXJ0ZXhDaHJvbWF0aWNOdW1iZXJcIixcbiAgXCJWZXJ0ZXhDb2xvcnNcIixcbiAgXCJWZXJ0ZXhDb21wb25lbnRcIixcbiAgXCJWZXJ0ZXhDb25uZWN0aXZpdHlcIixcbiAgXCJWZXJ0ZXhDb250cmFjdFwiLFxuICBcIlZlcnRleENvb3JkaW5hdGVSdWxlc1wiLFxuICBcIlZlcnRleENvb3JkaW5hdGVzXCIsXG4gIFwiVmVydGV4Q29ycmVsYXRpb25TaW1pbGFyaXR5XCIsXG4gIFwiVmVydGV4Q29zaW5lU2ltaWxhcml0eVwiLFxuICBcIlZlcnRleENvdW50XCIsXG4gIFwiVmVydGV4Q292ZXJRXCIsXG4gIFwiVmVydGV4RGF0YUNvb3JkaW5hdGVzXCIsXG4gIFwiVmVydGV4RGVncmVlXCIsXG4gIFwiVmVydGV4RGVsZXRlXCIsXG4gIFwiVmVydGV4RGljZVNpbWlsYXJpdHlcIixcbiAgXCJWZXJ0ZXhFY2NlbnRyaWNpdHlcIixcbiAgXCJWZXJ0ZXhJbkNvbXBvbmVudFwiLFxuICBcIlZlcnRleEluQ29tcG9uZW50R3JhcGhcIixcbiAgXCJWZXJ0ZXhJbkRlZ3JlZVwiLFxuICBcIlZlcnRleEluZGV4XCIsXG4gIFwiVmVydGV4SmFjY2FyZFNpbWlsYXJpdHlcIixcbiAgXCJWZXJ0ZXhMYWJlbGluZ1wiLFxuICBcIlZlcnRleExhYmVsc1wiLFxuICBcIlZlcnRleExhYmVsU3R5bGVcIixcbiAgXCJWZXJ0ZXhMaXN0XCIsXG4gIFwiVmVydGV4Tm9ybWFsc1wiLFxuICBcIlZlcnRleE91dENvbXBvbmVudFwiLFxuICBcIlZlcnRleE91dENvbXBvbmVudEdyYXBoXCIsXG4gIFwiVmVydGV4T3V0RGVncmVlXCIsXG4gIFwiVmVydGV4UVwiLFxuICBcIlZlcnRleFJlbmRlcmluZ0Z1bmN0aW9uXCIsXG4gIFwiVmVydGV4UmVwbGFjZVwiLFxuICBcIlZlcnRleFNoYXBlXCIsXG4gIFwiVmVydGV4U2hhcGVGdW5jdGlvblwiLFxuICBcIlZlcnRleFNpemVcIixcbiAgXCJWZXJ0ZXhTdHlsZVwiLFxuICBcIlZlcnRleFRleHR1cmVDb29yZGluYXRlc1wiLFxuICBcIlZlcnRleFRyYW5zaXRpdmVHcmFwaFFcIixcbiAgXCJWZXJ0ZXhXZWlnaHRcIixcbiAgXCJWZXJ0ZXhXZWlnaHRlZEdyYXBoUVwiLFxuICBcIlZlcnRpY2FsXCIsXG4gIFwiVmVydGljYWxCYXJcIixcbiAgXCJWZXJ0aWNhbEZvcm1cIixcbiAgXCJWZXJ0aWNhbEdhdWdlXCIsXG4gIFwiVmVydGljYWxTZXBhcmF0b3JcIixcbiAgXCJWZXJ0aWNhbFNsaWRlclwiLFxuICBcIlZlcnRpY2FsVGlsZGVcIixcbiAgXCJWaWRlb1wiLFxuICBcIlZpZGVvQ2FwdHVyZVwiLFxuICBcIlZpZGVvQ29tYmluZVwiLFxuICBcIlZpZGVvRGVsZXRlXCIsXG4gIFwiVmlkZW9FbmNvZGluZ1wiLFxuICBcIlZpZGVvRXh0cmFjdEZyYW1lc1wiLFxuICBcIlZpZGVvRnJhbWVMaXN0XCIsXG4gIFwiVmlkZW9GcmFtZU1hcFwiLFxuICBcIlZpZGVvR2VuZXJhdG9yXCIsXG4gIFwiVmlkZW9JbnNlcnRcIixcbiAgXCJWaWRlb0ludGVydmFsc1wiLFxuICBcIlZpZGVvSm9pblwiLFxuICBcIlZpZGVvTWFwXCIsXG4gIFwiVmlkZW9NYXBMaXN0XCIsXG4gIFwiVmlkZW9NYXBUaW1lU2VyaWVzXCIsXG4gIFwiVmlkZW9QYWRkaW5nXCIsXG4gIFwiVmlkZW9QYXVzZVwiLFxuICBcIlZpZGVvUGxheVwiLFxuICBcIlZpZGVvUVwiLFxuICBcIlZpZGVvUmVjb3JkXCIsXG4gIFwiVmlkZW9SZXBsYWNlXCIsXG4gIFwiVmlkZW9TY3JlZW5DYXB0dXJlXCIsXG4gIFwiVmlkZW9TcGxpdFwiLFxuICBcIlZpZGVvU3RvcFwiLFxuICBcIlZpZGVvU3RyZWFtXCIsXG4gIFwiVmlkZW9TdHJlYW1zXCIsXG4gIFwiVmlkZW9UaW1lU3RyZXRjaFwiLFxuICBcIlZpZGVvVHJhY2tTZWxlY3Rpb25cIixcbiAgXCJWaWRlb1RyYW5zY29kZVwiLFxuICBcIlZpZGVvVHJhbnNwYXJlbmN5XCIsXG4gIFwiVmlkZW9UcmltXCIsXG4gIFwiVmlld0FuZ2xlXCIsXG4gIFwiVmlld0NlbnRlclwiLFxuICBcIlZpZXdNYXRyaXhcIixcbiAgXCJWaWV3UG9pbnRcIixcbiAgXCJWaWV3UG9pbnRTZWxlY3RvclNldHRpbmdzXCIsXG4gIFwiVmlld1BvcnRcIixcbiAgXCJWaWV3UHJvamVjdGlvblwiLFxuICBcIlZpZXdSYW5nZVwiLFxuICBcIlZpZXdWZWN0b3JcIixcbiAgXCJWaWV3VmVydGljYWxcIixcbiAgXCJWaXJ0dWFsR3JvdXBEYXRhXCIsXG4gIFwiVmlzaWJsZVwiLFxuICBcIlZpc2libGVDZWxsXCIsXG4gIFwiVm9pY2VTdHlsZURhdGFcIixcbiAgXCJWb2lndERpc3RyaWJ1dGlvblwiLFxuICBcIlZvbGNhbm9EYXRhXCIsXG4gIFwiVm9sdW1lXCIsXG4gIFwiVm9uTWlzZXNEaXN0cmlidXRpb25cIixcbiAgXCJWb3Jvbm9pTWVzaFwiLFxuICBcIldhaXRBbGxcIixcbiAgXCJXYWl0QXN5bmNocm9ub3VzVGFza1wiLFxuICBcIldhaXROZXh0XCIsXG4gIFwiV2FpdFVudGlsXCIsXG4gIFwiV2FrZWJ5RGlzdHJpYnV0aW9uXCIsXG4gIFwiV2FsbGVuaXVzSHlwZXJnZW9tZXRyaWNEaXN0cmlidXRpb25cIixcbiAgXCJXYXJpbmdZdWxlRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2FycGluZ0NvcnJlc3BvbmRlbmNlXCIsXG4gIFwiV2FycGluZ0Rpc3RhbmNlXCIsXG4gIFwiV2F0ZXJzaGVkQ29tcG9uZW50c1wiLFxuICBcIldhdHNvblVTcXVhcmVUZXN0XCIsXG4gIFwiV2F0dHNTdHJvZ2F0ekdyYXBoRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2F2ZWxldEJlc3RCYXNpc1wiLFxuICBcIldhdmVsZXRGaWx0ZXJDb2VmZmljaWVudHNcIixcbiAgXCJXYXZlbGV0SW1hZ2VQbG90XCIsXG4gIFwiV2F2ZWxldExpc3RQbG90XCIsXG4gIFwiV2F2ZWxldE1hcEluZGV4ZWRcIixcbiAgXCJXYXZlbGV0TWF0cml4UGxvdFwiLFxuICBcIldhdmVsZXRQaGlcIixcbiAgXCJXYXZlbGV0UHNpXCIsXG4gIFwiV2F2ZWxldFNjYWxlXCIsXG4gIFwiV2F2ZWxldFNjYWxvZ3JhbVwiLFxuICBcIldhdmVsZXRUaHJlc2hvbGRcIixcbiAgXCJXYXZlUERFQ29tcG9uZW50XCIsXG4gIFwiV2Vha2x5Q29ubmVjdGVkQ29tcG9uZW50c1wiLFxuICBcIldlYWtseUNvbm5lY3RlZEdyYXBoQ29tcG9uZW50c1wiLFxuICBcIldlYWtseUNvbm5lY3RlZEdyYXBoUVwiLFxuICBcIldlYWtTdGF0aW9uYXJpdHlcIixcbiAgXCJXZWF0aGVyRGF0YVwiLFxuICBcIldlYXRoZXJGb3JlY2FzdERhdGFcIixcbiAgXCJXZWJBdWRpb1NlYXJjaFwiLFxuICBcIldlYkNvbHVtblwiLFxuICBcIldlYkVsZW1lbnRPYmplY3RcIixcbiAgXCJXZWJlckVcIixcbiAgXCJXZWJFeGVjdXRlXCIsXG4gIFwiV2ViSW1hZ2VcIixcbiAgXCJXZWJJbWFnZVNlYXJjaFwiLFxuICBcIldlYkl0ZW1cIixcbiAgXCJXZWJQYWdlTWV0YUluZm9ybWF0aW9uXCIsXG4gIFwiV2ViUm93XCIsXG4gIFwiV2ViU2VhcmNoXCIsXG4gIFwiV2ViU2Vzc2lvbk9iamVjdFwiLFxuICBcIldlYlNlc3Npb25zXCIsXG4gIFwiV2ViV2luZG93T2JqZWN0XCIsXG4gIFwiV2VkZ2VcIixcbiAgXCJXZWRuZXNkYXlcIixcbiAgXCJXZWlidWxsRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2VpZXJzdHJhc3NFMVwiLFxuICBcIldlaWVyc3RyYXNzRTJcIixcbiAgXCJXZWllcnN0cmFzc0UzXCIsXG4gIFwiV2VpZXJzdHJhc3NFdGExXCIsXG4gIFwiV2VpZXJzdHJhc3NFdGEyXCIsXG4gIFwiV2VpZXJzdHJhc3NFdGEzXCIsXG4gIFwiV2VpZXJzdHJhc3NIYWxmUGVyaW9kc1wiLFxuICBcIldlaWVyc3RyYXNzSGFsZlBlcmlvZFcxXCIsXG4gIFwiV2VpZXJzdHJhc3NIYWxmUGVyaW9kVzJcIixcbiAgXCJXZWllcnN0cmFzc0hhbGZQZXJpb2RXM1wiLFxuICBcIldlaWVyc3RyYXNzSW52YXJpYW50RzJcIixcbiAgXCJXZWllcnN0cmFzc0ludmFyaWFudEczXCIsXG4gIFwiV2VpZXJzdHJhc3NJbnZhcmlhbnRzXCIsXG4gIFwiV2VpZXJzdHJhc3NQXCIsXG4gIFwiV2VpZXJzdHJhc3NQUHJpbWVcIixcbiAgXCJXZWllcnN0cmFzc1NpZ21hXCIsXG4gIFwiV2VpZXJzdHJhc3NaZXRhXCIsXG4gIFwiV2VpZ2h0ZWRBZGphY2VuY3lHcmFwaFwiLFxuICBcIldlaWdodGVkQWRqYWNlbmN5TWF0cml4XCIsXG4gIFwiV2VpZ2h0ZWREYXRhXCIsXG4gIFwiV2VpZ2h0ZWRHcmFwaFFcIixcbiAgXCJXZWlnaHRzXCIsXG4gIFwiV2VsY2hXaW5kb3dcIixcbiAgXCJXaGVlbEdyYXBoXCIsXG4gIFwiV2hlbkV2ZW50XCIsXG4gIFwiV2hpY2hcIixcbiAgXCJXaGlsZVwiLFxuICBcIldoaXRlXCIsXG4gIFwiV2hpdGVOb2lzZVByb2Nlc3NcIixcbiAgXCJXaGl0ZVBvaW50XCIsXG4gIFwiV2hpdGVzcGFjZVwiLFxuICBcIldoaXRlc3BhY2VDaGFyYWN0ZXJcIixcbiAgXCJXaGl0dGFrZXJNXCIsXG4gIFwiV2hpdHRha2VyV1wiLFxuICBcIldob2xlQ2VsbEdyb3VwT3BlbmVyXCIsXG4gIFwiV2llbmVyRmlsdGVyXCIsXG4gIFwiV2llbmVyUHJvY2Vzc1wiLFxuICBcIldpZ25lckRcIixcbiAgXCJXaWduZXJTZW1pY2lyY2xlRGlzdHJpYnV0aW9uXCIsXG4gIFwiV2lraWRhdGFEYXRhXCIsXG4gIFwiV2lraWRhdGFTZWFyY2hcIixcbiAgXCJXaWtpcGVkaWFEYXRhXCIsXG4gIFwiV2lraXBlZGlhU2VhcmNoXCIsXG4gIFwiV2lsa3NXXCIsXG4gIFwiV2lsa3NXVGVzdFwiLFxuICBcIldpbmREaXJlY3Rpb25EYXRhXCIsXG4gIFwiV2luZGluZ0NvdW50XCIsXG4gIFwiV2luZGluZ1BvbHlnb25cIixcbiAgXCJXaW5kb3dDbGlja1NlbGVjdFwiLFxuICBcIldpbmRvd0VsZW1lbnRzXCIsXG4gIFwiV2luZG93RmxvYXRpbmdcIixcbiAgXCJXaW5kb3dGcmFtZVwiLFxuICBcIldpbmRvd0ZyYW1lRWxlbWVudHNcIixcbiAgXCJXaW5kb3dNYXJnaW5zXCIsXG4gIFwiV2luZG93TW92YWJsZVwiLFxuICBcIldpbmRvd09wYWNpdHlcIixcbiAgXCJXaW5kb3dQZXJzaXN0ZW50U3R5bGVzXCIsXG4gIFwiV2luZG93U2VsZWN0ZWRcIixcbiAgXCJXaW5kb3dTaXplXCIsXG4gIFwiV2luZG93U3RhdHVzQXJlYVwiLFxuICBcIldpbmRvd1RpdGxlXCIsXG4gIFwiV2luZG93VG9vbGJhcnNcIixcbiAgXCJXaW5kb3dXaWR0aFwiLFxuICBcIldpbmRTcGVlZERhdGFcIixcbiAgXCJXaW5kVmVjdG9yRGF0YVwiLFxuICBcIldpbnNvcml6ZWRNZWFuXCIsXG4gIFwiV2luc29yaXplZFZhcmlhbmNlXCIsXG4gIFwiV2lzaGFydE1hdHJpeERpc3RyaWJ1dGlvblwiLFxuICBcIldpdGhcIixcbiAgXCJXaXRoQ2xlYW51cFwiLFxuICBcIldpdGhMb2NrXCIsXG4gIFwiV29sZnJhbUFscGhhXCIsXG4gIFwiV29sZnJhbUFscGhhRGF0ZVwiLFxuICBcIldvbGZyYW1BbHBoYVF1YW50aXR5XCIsXG4gIFwiV29sZnJhbUFscGhhUmVzdWx0XCIsXG4gIFwiV29sZnJhbUNsb3VkU2V0dGluZ3NcIixcbiAgXCJXb2xmcmFtTGFuZ3VhZ2VEYXRhXCIsXG4gIFwiV29yZFwiLFxuICBcIldvcmRCb3VuZGFyeVwiLFxuICBcIldvcmRDaGFyYWN0ZXJcIixcbiAgXCJXb3JkQ2xvdWRcIixcbiAgXCJXb3JkQ291bnRcIixcbiAgXCJXb3JkQ291bnRzXCIsXG4gIFwiV29yZERhdGFcIixcbiAgXCJXb3JkRGVmaW5pdGlvblwiLFxuICBcIldvcmRGcmVxdWVuY3lcIixcbiAgXCJXb3JkRnJlcXVlbmN5RGF0YVwiLFxuICBcIldvcmRMaXN0XCIsXG4gIFwiV29yZE9yaWVudGF0aW9uXCIsXG4gIFwiV29yZFNlYXJjaFwiLFxuICBcIldvcmRTZWxlY3Rpb25GdW5jdGlvblwiLFxuICBcIldvcmRTZXBhcmF0b3JzXCIsXG4gIFwiV29yZFNwYWNpbmdzXCIsXG4gIFwiV29yZFN0ZW1cIixcbiAgXCJXb3JkVHJhbnNsYXRpb25cIixcbiAgXCJXb3JraW5nUHJlY2lzaW9uXCIsXG4gIFwiV3JhcEFyb3VuZFwiLFxuICBcIldyaXRlXCIsXG4gIFwiV3JpdGVMaW5lXCIsXG4gIFwiV3JpdGVTdHJpbmdcIixcbiAgXCJXcm9uc2tpYW5cIixcbiAgXCJYTUxFbGVtZW50XCIsXG4gIFwiWE1MT2JqZWN0XCIsXG4gIFwiWE1MVGVtcGxhdGVcIixcbiAgXCJYbm9yXCIsXG4gIFwiWG9yXCIsXG4gIFwiWFlaQ29sb3JcIixcbiAgXCJZZWxsb3dcIixcbiAgXCJZZXN0ZXJkYXlcIixcbiAgXCJZdWxlRGlzc2ltaWxhcml0eVwiLFxuICBcIlplcm5pa2VSXCIsXG4gIFwiWmVyb1N5bW1ldHJpY1wiLFxuICBcIlplcm9UZXN0XCIsXG4gIFwiWmVyb1dpZHRoVGltZXNcIixcbiAgXCJaZXRhXCIsXG4gIFwiWmV0YVplcm9cIixcbiAgXCJaSVBDb2RlRGF0YVwiLFxuICBcIlppcGZEaXN0cmlidXRpb25cIixcbiAgXCJab29tQ2VudGVyXCIsXG4gIFwiWm9vbUZhY3RvclwiLFxuICBcIlpUZXN0XCIsXG4gIFwiWlRyYW5zZm9ybVwiLFxuICBcIiRBYm9ydGVkXCIsXG4gIFwiJEFjdGl2YXRpb25Hcm91cElEXCIsXG4gIFwiJEFjdGl2YXRpb25LZXlcIixcbiAgXCIkQWN0aXZhdGlvblVzZXJSZWdpc3RlcmVkXCIsXG4gIFwiJEFkZE9uc0RpcmVjdG9yeVwiLFxuICBcIiRBbGxvd0RhdGFVcGRhdGVzXCIsXG4gIFwiJEFsbG93RXh0ZXJuYWxDaGFubmVsRnVuY3Rpb25zXCIsXG4gIFwiJEFsbG93SW50ZXJuZXRcIixcbiAgXCIkQXNzZXJ0RnVuY3Rpb25cIixcbiAgXCIkQXNzdW1wdGlvbnNcIixcbiAgXCIkQXN5bmNocm9ub3VzVGFza1wiLFxuICBcIiRBdWRpb0RlY29kZXJzXCIsXG4gIFwiJEF1ZGlvRW5jb2RlcnNcIixcbiAgXCIkQXVkaW9JbnB1dERldmljZXNcIixcbiAgXCIkQXVkaW9PdXRwdXREZXZpY2VzXCIsXG4gIFwiJEJhc2VEaXJlY3RvcnlcIixcbiAgXCIkQmFzZVBhY2xldHNEaXJlY3RvcnlcIixcbiAgXCIkQmF0Y2hJbnB1dFwiLFxuICBcIiRCYXRjaE91dHB1dFwiLFxuICBcIiRCbG9ja2NoYWluQmFzZVwiLFxuICBcIiRCb3hGb3Jtc1wiLFxuICBcIiRCeXRlT3JkZXJpbmdcIixcbiAgXCIkQ2FjaGVCYXNlRGlyZWN0b3J5XCIsXG4gIFwiJENhbmNlbGVkXCIsXG4gIFwiJENoYW5uZWxCYXNlXCIsXG4gIFwiJENoYXJhY3RlckVuY29kaW5nXCIsXG4gIFwiJENoYXJhY3RlckVuY29kaW5nc1wiLFxuICBcIiRDbG91ZEFjY291bnROYW1lXCIsXG4gIFwiJENsb3VkQmFzZVwiLFxuICBcIiRDbG91ZENvbm5lY3RlZFwiLFxuICBcIiRDbG91ZENvbm5lY3Rpb25cIixcbiAgXCIkQ2xvdWRDcmVkaXRzQXZhaWxhYmxlXCIsXG4gIFwiJENsb3VkRXZhbHVhdGlvblwiLFxuICBcIiRDbG91ZEV4cHJlc3Npb25CYXNlXCIsXG4gIFwiJENsb3VkT2JqZWN0TmFtZUZvcm1hdFwiLFxuICBcIiRDbG91ZE9iamVjdFVSTFR5cGVcIixcbiAgXCIkQ2xvdWRSb290RGlyZWN0b3J5XCIsXG4gIFwiJENsb3VkU3ltYm9sQmFzZVwiLFxuICBcIiRDbG91ZFVzZXJJRFwiLFxuICBcIiRDbG91ZFVzZXJVVUlEXCIsXG4gIFwiJENsb3VkVmVyc2lvblwiLFxuICBcIiRDbG91ZFZlcnNpb25OdW1iZXJcIixcbiAgXCIkQ2xvdWRXb2xmcmFtRW5naW5lVmVyc2lvbk51bWJlclwiLFxuICBcIiRDb21tYW5kTGluZVwiLFxuICBcIiRDb21waWxhdGlvblRhcmdldFwiLFxuICBcIiRDb21waWxlckVudmlyb25tZW50XCIsXG4gIFwiJENvbmRpdGlvbkhvbGRcIixcbiAgXCIkQ29uZmlndXJlZEtlcm5lbHNcIixcbiAgXCIkQ29udGV4dFwiLFxuICBcIiRDb250ZXh0QWxpYXNlc1wiLFxuICBcIiRDb250ZXh0UGF0aFwiLFxuICBcIiRDb250cm9sQWN0aXZlU2V0dGluZ1wiLFxuICBcIiRDb29raWVzXCIsXG4gIFwiJENvb2tpZVN0b3JlXCIsXG4gIFwiJENyZWF0aW9uRGF0ZVwiLFxuICBcIiRDcnlwdG9ncmFwaGljRWxsaXB0aWNDdXJ2ZU5hbWVzXCIsXG4gIFwiJEN1cnJlbnRMaW5rXCIsXG4gIFwiJEN1cnJlbnRUYXNrXCIsXG4gIFwiJEN1cnJlbnRXZWJTZXNzaW9uXCIsXG4gIFwiJERhdGFTdHJ1Y3R1cmVzXCIsXG4gIFwiJERhdGVTdHJpbmdGb3JtYXRcIixcbiAgXCIkRGVmYXVsdEF1ZGlvSW5wdXREZXZpY2VcIixcbiAgXCIkRGVmYXVsdEF1ZGlvT3V0cHV0RGV2aWNlXCIsXG4gIFwiJERlZmF1bHRGb250XCIsXG4gIFwiJERlZmF1bHRGcm9udEVuZFwiLFxuICBcIiREZWZhdWx0SW1hZ2luZ0RldmljZVwiLFxuICBcIiREZWZhdWx0S2VybmVsc1wiLFxuICBcIiREZWZhdWx0TG9jYWxCYXNlXCIsXG4gIFwiJERlZmF1bHRMb2NhbEtlcm5lbFwiLFxuICBcIiREZWZhdWx0TWFpbGJveFwiLFxuICBcIiREZWZhdWx0TmV0d29ya0ludGVyZmFjZVwiLFxuICBcIiREZWZhdWx0UGF0aFwiLFxuICBcIiREZWZhdWx0UHJveHlSdWxlc1wiLFxuICBcIiREZWZhdWx0UmVtb3RlQmF0Y2hTdWJtaXNzaW9uRW52aXJvbm1lbnRcIixcbiAgXCIkRGVmYXVsdFJlbW90ZUtlcm5lbFwiLFxuICBcIiREZWZhdWx0U3lzdGVtQ3JlZGVudGlhbFN0b3JlXCIsXG4gIFwiJERpc3BsYXlcIixcbiAgXCIkRGlzcGxheUZ1bmN0aW9uXCIsXG4gIFwiJERpc3RyaWJ1dGVkQ29udGV4dHNcIixcbiAgXCIkRHluYW1pY0V2YWx1YXRpb25cIixcbiAgXCIkRWNob1wiLFxuICBcIiRFbWJlZENvZGVFbnZpcm9ubWVudHNcIixcbiAgXCIkRW1iZWRkYWJsZVNlcnZpY2VzXCIsXG4gIFwiJEVudGl0eVN0b3Jlc1wiLFxuICBcIiRFcGlsb2dcIixcbiAgXCIkRXZhbHVhdGlvbkNsb3VkQmFzZVwiLFxuICBcIiRFdmFsdWF0aW9uQ2xvdWRPYmplY3RcIixcbiAgXCIkRXZhbHVhdGlvbkVudmlyb25tZW50XCIsXG4gIFwiJEV4cG9ydEZvcm1hdHNcIixcbiAgXCIkRXh0ZXJuYWxJZGVudGlmaWVyVHlwZXNcIixcbiAgXCIkRXh0ZXJuYWxTdG9yYWdlQmFzZVwiLFxuICBcIiRGYWlsZWRcIixcbiAgXCIkRmluYW5jaWFsRGF0YVNvdXJjZVwiLFxuICBcIiRGb250RmFtaWxpZXNcIixcbiAgXCIkRm9ybWF0VHlwZVwiLFxuICBcIiRGcm9udEVuZFwiLFxuICBcIiRGcm9udEVuZFNlc3Npb25cIixcbiAgXCIkR2VuZXJhdGVkQXNzZXRMb2NhdGlvblwiLFxuICBcIiRHZW9FbnRpdHlUeXBlc1wiLFxuICBcIiRHZW9Mb2NhdGlvblwiLFxuICBcIiRHZW9Mb2NhdGlvbkNpdHlcIixcbiAgXCIkR2VvTG9jYXRpb25Db3VudHJ5XCIsXG4gIFwiJEdlb0xvY2F0aW9uUHJlY2lzaW9uXCIsXG4gIFwiJEdlb0xvY2F0aW9uU291cmNlXCIsXG4gIFwiJEhpc3RvcnlMZW5ndGhcIixcbiAgXCIkSG9tZURpcmVjdG9yeVwiLFxuICBcIiRIVE1MRXhwb3J0UnVsZXNcIixcbiAgXCIkSFRUUENvb2tpZXNcIixcbiAgXCIkSFRUUFJlcXVlc3RcIixcbiAgXCIkSWdub3JlRU9GXCIsXG4gIFwiJEltYWdlRm9ybWF0dGluZ1dpZHRoXCIsXG4gIFwiJEltYWdlUmVzb2x1dGlvblwiLFxuICBcIiRJbWFnaW5nRGV2aWNlXCIsXG4gIFwiJEltYWdpbmdEZXZpY2VzXCIsXG4gIFwiJEltcG9ydEZvcm1hdHNcIixcbiAgXCIkSW5jb21pbmdNYWlsU2V0dGluZ3NcIixcbiAgXCIkSW5pdGlhbERpcmVjdG9yeVwiLFxuICBcIiRJbml0aWFsaXphdGlvblwiLFxuICBcIiRJbml0aWFsaXphdGlvbkNvbnRleHRzXCIsXG4gIFwiJElucHV0XCIsXG4gIFwiJElucHV0RmlsZU5hbWVcIixcbiAgXCIkSW5wdXRTdHJlYW1NZXRob2RzXCIsXG4gIFwiJEluc3BlY3RvclwiLFxuICBcIiRJbnN0YWxsYXRpb25EYXRlXCIsXG4gIFwiJEluc3RhbGxhdGlvbkRpcmVjdG9yeVwiLFxuICBcIiRJbnRlcmZhY2VFbnZpcm9ubWVudFwiLFxuICBcIiRJbnRlcnByZXRlclR5cGVzXCIsXG4gIFwiJEl0ZXJhdGlvbkxpbWl0XCIsXG4gIFwiJEtlcm5lbENvdW50XCIsXG4gIFwiJEtlcm5lbElEXCIsXG4gIFwiJExhbmd1YWdlXCIsXG4gIFwiJExhdW5jaERpcmVjdG9yeVwiLFxuICBcIiRMaWJyYXJ5UGF0aFwiLFxuICBcIiRMaWNlbnNlRXhwaXJhdGlvbkRhdGVcIixcbiAgXCIkTGljZW5zZUlEXCIsXG4gIFwiJExpY2Vuc2VQcm9jZXNzZXNcIixcbiAgXCIkTGljZW5zZVNlcnZlclwiLFxuICBcIiRMaWNlbnNlU3VicHJvY2Vzc2VzXCIsXG4gIFwiJExpY2Vuc2VUeXBlXCIsXG4gIFwiJExpbmVcIixcbiAgXCIkTGlua2VkXCIsXG4gIFwiJExpbmtTdXBwb3J0ZWRcIixcbiAgXCIkTG9hZGVkRmlsZXNcIixcbiAgXCIkTG9jYWxCYXNlXCIsXG4gIFwiJExvY2FsU3ltYm9sQmFzZVwiLFxuICBcIiRNYWNoaW5lQWRkcmVzc2VzXCIsXG4gIFwiJE1hY2hpbmVEb21haW5cIixcbiAgXCIkTWFjaGluZURvbWFpbnNcIixcbiAgXCIkTWFjaGluZUVwc2lsb25cIixcbiAgXCIkTWFjaGluZUlEXCIsXG4gIFwiJE1hY2hpbmVOYW1lXCIsXG4gIFwiJE1hY2hpbmVQcmVjaXNpb25cIixcbiAgXCIkTWFjaGluZVR5cGVcIixcbiAgXCIkTWF4RGlzcGxheWVkQ2hpbGRyZW5cIixcbiAgXCIkTWF4RXh0cmFQcmVjaXNpb25cIixcbiAgXCIkTWF4TGljZW5zZVByb2Nlc3Nlc1wiLFxuICBcIiRNYXhMaWNlbnNlU3VicHJvY2Vzc2VzXCIsXG4gIFwiJE1heE1hY2hpbmVOdW1iZXJcIixcbiAgXCIkTWF4TnVtYmVyXCIsXG4gIFwiJE1heFBpZWNld2lzZUNhc2VzXCIsXG4gIFwiJE1heFByZWNpc2lvblwiLFxuICBcIiRNYXhSb290RGVncmVlXCIsXG4gIFwiJE1lc3NhZ2VHcm91cHNcIixcbiAgXCIkTWVzc2FnZUxpc3RcIixcbiAgXCIkTWVzc2FnZVByZVByaW50XCIsXG4gIFwiJE1lc3NhZ2VzXCIsXG4gIFwiJE1pbk1hY2hpbmVOdW1iZXJcIixcbiAgXCIkTWluTnVtYmVyXCIsXG4gIFwiJE1pbm9yUmVsZWFzZU51bWJlclwiLFxuICBcIiRNaW5QcmVjaXNpb25cIixcbiAgXCIkTW9iaWxlUGhvbmVcIixcbiAgXCIkTW9kdWxlTnVtYmVyXCIsXG4gIFwiJE5ldHdvcmtDb25uZWN0ZWRcIixcbiAgXCIkTmV0d29ya0ludGVyZmFjZXNcIixcbiAgXCIkTmV0d29ya0xpY2Vuc2VcIixcbiAgXCIkTmV3TWVzc2FnZVwiLFxuICBcIiROZXdTeW1ib2xcIixcbiAgXCIkTm90ZWJvb2tJbmxpbmVTdG9yYWdlTGltaXRcIixcbiAgXCIkTm90ZWJvb2tzXCIsXG4gIFwiJE5vVmFsdWVcIixcbiAgXCIkTnVtYmVyTWFya3NcIixcbiAgXCIkT2ZmXCIsXG4gIFwiJE9wZXJhdGluZ1N5c3RlbVwiLFxuICBcIiRPdXRwdXRcIixcbiAgXCIkT3V0cHV0Rm9ybXNcIixcbiAgXCIkT3V0cHV0U2l6ZUxpbWl0XCIsXG4gIFwiJE91dHB1dFN0cmVhbU1ldGhvZHNcIixcbiAgXCIkUGFja2FnZXNcIixcbiAgXCIkUGFyZW50TGlua1wiLFxuICBcIiRQYXJlbnRQcm9jZXNzSURcIixcbiAgXCIkUGFzc3dvcmRGaWxlXCIsXG4gIFwiJFBhdGNoTGV2ZWxJRFwiLFxuICBcIiRQYXRoXCIsXG4gIFwiJFBhdGhuYW1lU2VwYXJhdG9yXCIsXG4gIFwiJFBlcmZvcm1hbmNlR29hbFwiLFxuICBcIiRQZXJtaXNzaW9uc1wiLFxuICBcIiRQZXJtaXNzaW9uc0dyb3VwQmFzZVwiLFxuICBcIiRQZXJzaXN0ZW5jZUJhc2VcIixcbiAgXCIkUGVyc2lzdGVuY2VQYXRoXCIsXG4gIFwiJFBpcGVTdXBwb3J0ZWRcIixcbiAgXCIkUGxvdFRoZW1lXCIsXG4gIFwiJFBvc3RcIixcbiAgXCIkUHJlXCIsXG4gIFwiJFByZWZlcmVuY2VzRGlyZWN0b3J5XCIsXG4gIFwiJFByZUluaXRpYWxpemF0aW9uXCIsXG4gIFwiJFByZVByaW50XCIsXG4gIFwiJFByZVJlYWRcIixcbiAgXCIkUHJpbnRGb3Jtc1wiLFxuICBcIiRQcmludExpdGVyYWxcIixcbiAgXCIkUHJpbnRvdXQzRFByZXZpZXdlclwiLFxuICBcIiRQcm9jZXNzSURcIixcbiAgXCIkUHJvY2Vzc29yQ291bnRcIixcbiAgXCIkUHJvY2Vzc29yVHlwZVwiLFxuICBcIiRQcm9kdWN0SW5mb3JtYXRpb25cIixcbiAgXCIkUHJvZ3JhbU5hbWVcIixcbiAgXCIkUHJvZ3Jlc3NSZXBvcnRpbmdcIixcbiAgXCIkUHVibGlzaGVySURcIixcbiAgXCIkUmFuZG9tR2VuZXJhdG9yU3RhdGVcIixcbiAgXCIkUmFuZG9tU3RhdGVcIixcbiAgXCIkUmVjdXJzaW9uTGltaXRcIixcbiAgXCIkUmVnaXN0ZXJlZERldmljZUNsYXNzZXNcIixcbiAgXCIkUmVnaXN0ZXJlZFVzZXJOYW1lXCIsXG4gIFwiJFJlbGVhc2VOdW1iZXJcIixcbiAgXCIkUmVxdWVzdGVyQWRkcmVzc1wiLFxuICBcIiRSZXF1ZXN0ZXJDbG91ZFVzZXJJRFwiLFxuICBcIiRSZXF1ZXN0ZXJDbG91ZFVzZXJVVUlEXCIsXG4gIFwiJFJlcXVlc3RlcldvbGZyYW1JRFwiLFxuICBcIiRSZXF1ZXN0ZXJXb2xmcmFtVVVJRFwiLFxuICBcIiRSZXNvdXJjZVN5c3RlbUJhc2VcIixcbiAgXCIkUmVzb3VyY2VTeXN0ZW1QYXRoXCIsXG4gIFwiJFJvb3REaXJlY3RvcnlcIixcbiAgXCIkU2NoZWR1bGVkVGFza1wiLFxuICBcIiRTY3JpcHRDb21tYW5kTGluZVwiLFxuICBcIiRTY3JpcHRJbnB1dFN0cmluZ1wiLFxuICBcIiRTZWN1cmVkQXV0aGVudGljYXRpb25LZXlUb2tlbnNcIixcbiAgXCIkU2VydmljZUNyZWRpdHNBdmFpbGFibGVcIixcbiAgXCIkU2VydmljZXNcIixcbiAgXCIkU2Vzc2lvbklEXCIsXG4gIFwiJFNldFBhcmVudExpbmtcIixcbiAgXCIkU2hhcmVkRnVuY3Rpb25zXCIsXG4gIFwiJFNoYXJlZFZhcmlhYmxlc1wiLFxuICBcIiRTb3VuZERpc3BsYXlcIixcbiAgXCIkU291bmREaXNwbGF5RnVuY3Rpb25cIixcbiAgXCIkU291cmNlTGlua1wiLFxuICBcIiRTU0hBdXRoZW50aWNhdGlvblwiLFxuICBcIiRTdWJ0aXRsZURlY29kZXJzXCIsXG4gIFwiJFN1YnRpdGxlRW5jb2RlcnNcIixcbiAgXCIkU3VtbWFyeUJveERhdGFTaXplTGltaXRcIixcbiAgXCIkU3VwcHJlc3NJbnB1dEZvcm1IZWFkc1wiLFxuICBcIiRTeW5jaHJvbm91c0V2YWx1YXRpb25cIixcbiAgXCIkU3ludGF4SGFuZGxlclwiLFxuICBcIiRTeXN0ZW1cIixcbiAgXCIkU3lzdGVtQ2hhcmFjdGVyRW5jb2RpbmdcIixcbiAgXCIkU3lzdGVtQ3JlZGVudGlhbFN0b3JlXCIsXG4gIFwiJFN5c3RlbUlEXCIsXG4gIFwiJFN5c3RlbU1lbW9yeVwiLFxuICBcIiRTeXN0ZW1TaGVsbFwiLFxuICBcIiRTeXN0ZW1UaW1lWm9uZVwiLFxuICBcIiRTeXN0ZW1Xb3JkTGVuZ3RoXCIsXG4gIFwiJFRhcmdldFN5c3RlbXNcIixcbiAgXCIkVGVtcGxhdGVQYXRoXCIsXG4gIFwiJFRlbXBvcmFyeURpcmVjdG9yeVwiLFxuICBcIiRUZW1wb3JhcnlQcmVmaXhcIixcbiAgXCIkVGVzdEZpbGVOYW1lXCIsXG4gIFwiJFRleHRTdHlsZVwiLFxuICBcIiRUaW1lZE91dFwiLFxuICBcIiRUaW1lVW5pdFwiLFxuICBcIiRUaW1lWm9uZVwiLFxuICBcIiRUaW1lWm9uZUVudGl0eVwiLFxuICBcIiRUb3BEaXJlY3RvcnlcIixcbiAgXCIkVHJhY2VPZmZcIixcbiAgXCIkVHJhY2VPblwiLFxuICBcIiRUcmFjZVBhdHRlcm5cIixcbiAgXCIkVHJhY2VQb3N0QWN0aW9uXCIsXG4gIFwiJFRyYWNlUHJlQWN0aW9uXCIsXG4gIFwiJFVuaXRTeXN0ZW1cIixcbiAgXCIkVXJnZW50XCIsXG4gIFwiJFVzZXJBZGRPbnNEaXJlY3RvcnlcIixcbiAgXCIkVXNlckFnZW50TGFuZ3VhZ2VzXCIsXG4gIFwiJFVzZXJBZ2VudE1hY2hpbmVcIixcbiAgXCIkVXNlckFnZW50TmFtZVwiLFxuICBcIiRVc2VyQWdlbnRPcGVyYXRpbmdTeXN0ZW1cIixcbiAgXCIkVXNlckFnZW50U3RyaW5nXCIsXG4gIFwiJFVzZXJBZ2VudFZlcnNpb25cIixcbiAgXCIkVXNlckJhc2VEaXJlY3RvcnlcIixcbiAgXCIkVXNlckJhc2VQYWNsZXRzRGlyZWN0b3J5XCIsXG4gIFwiJFVzZXJEb2N1bWVudHNEaXJlY3RvcnlcIixcbiAgXCIkVXNlcm5hbWVcIixcbiAgXCIkVXNlck5hbWVcIixcbiAgXCIkVXNlclVSTEJhc2VcIixcbiAgXCIkVmVyc2lvblwiLFxuICBcIiRWZXJzaW9uTnVtYmVyXCIsXG4gIFwiJFZpZGVvRGVjb2RlcnNcIixcbiAgXCIkVmlkZW9FbmNvZGVyc1wiLFxuICBcIiRWb2ljZVN0eWxlc1wiLFxuICBcIiRXb2xmcmFtRG9jdW1lbnRzRGlyZWN0b3J5XCIsXG4gIFwiJFdvbGZyYW1JRFwiLFxuICBcIiRXb2xmcmFtVVVJRFwiXG5dO1xuXG4vKlxuTGFuZ3VhZ2U6IFdvbGZyYW0gTGFuZ3VhZ2VcbkRlc2NyaXB0aW9uOiBUaGUgV29sZnJhbSBMYW5ndWFnZSBpcyB0aGUgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdXNlZCBpbiBXb2xmcmFtIE1hdGhlbWF0aWNhLCBhIG1vZGVybiB0ZWNobmljYWwgY29tcHV0aW5nIHN5c3RlbSBzcGFubmluZyBtb3N0IGFyZWFzIG9mIHRlY2huaWNhbCBjb21wdXRpbmcuXG5BdXRob3JzOiBQYXRyaWNrIFNjaGVpYmUgPHBhdHJpY2tAaGFsaXJ1dGFuLmRlPiwgUm9iZXJ0IEphY29ic29uIDxyb2JlcnRqYWNvYnNvbkBhY20ub3JnPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cud29sZnJhbS5jb20vbWF0aGVtYXRpY2EvXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbWF0aGVtYXRpY2EoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8qXG4gIFRoaXMgcmF0aGVyIHNjYXJ5IGxvb2tpbmcgbWF0Y2hpbmcgb2YgTWF0aGVtYXRpY2EgbnVtYmVycyBpcyBjYXJlZnVsbHkgZXhwbGFpbmVkIGJ5IFJvYmVydCBKYWNvYnNvbiBoZXJlOlxuICBodHRwczovL3dsdG9vbHMuZ2l0aHViLmlvL0xhbmd1YWdlU3BlYy9TcGVjaWZpY2F0aW9uL1N5bnRheC9OdW1iZXItcmVwcmVzZW50YXRpb25zL1xuICAgKi9cbiAgY29uc3QgQkFTRV9SRSA9IC8oWzItOV18WzEtMl1cXGR8WzNdWzAtNV0pXFxeXFxeLztcbiAgY29uc3QgQkFTRV9ESUdJVFNfUkUgPSAvKFxcdypcXC5cXHcrfFxcdytcXC5cXHcqfFxcdyspLztcbiAgY29uc3QgTlVNQkVSX1JFID0gLyhcXGQqXFwuXFxkK3xcXGQrXFwuXFxkKnxcXGQrKS87XG4gIGNvbnN0IEJBU0VfTlVNQkVSX1JFID0gcmVnZXguZWl0aGVyKHJlZ2V4LmNvbmNhdChCQVNFX1JFLCBCQVNFX0RJR0lUU19SRSksIE5VTUJFUl9SRSk7XG5cbiAgY29uc3QgQUNDVVJBQ1lfUkUgPSAvYGBbKy1dPyhcXGQqXFwuXFxkK3xcXGQrXFwuXFxkKnxcXGQrKS87XG4gIGNvbnN0IFBSRUNJU0lPTl9SRSA9IC9gKFsrLV0/KFxcZCpcXC5cXGQrfFxcZCtcXC5cXGQqfFxcZCspKT8vO1xuICBjb25zdCBBUFBST1hJTUFURV9OVU1CRVJfUkUgPSByZWdleC5laXRoZXIoQUNDVVJBQ1lfUkUsIFBSRUNJU0lPTl9SRSk7XG5cbiAgY29uc3QgU0NJRU5USUZJQ19OT1RBVElPTl9SRSA9IC9cXCpcXF5bKy1dP1xcZCsvO1xuXG4gIGNvbnN0IE1BVEhFTUFUSUNBX05VTUJFUl9SRSA9IHJlZ2V4LmNvbmNhdChcbiAgICBCQVNFX05VTUJFUl9SRSxcbiAgICByZWdleC5vcHRpb25hbChBUFBST1hJTUFURV9OVU1CRVJfUkUpLFxuICAgIHJlZ2V4Lm9wdGlvbmFsKFNDSUVOVElGSUNfTk9UQVRJT05fUkUpXG4gICk7XG5cbiAgY29uc3QgTlVNQkVSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogTUFUSEVNQVRJQ0FfTlVNQkVSX1JFXG4gIH07XG5cbiAgY29uc3QgU1lNQk9MX1JFID0gL1thLXpBLVokXVthLXpBLVowLTkkXSovO1xuICBjb25zdCBTWVNURU1fU1lNQk9MU19TRVQgPSBuZXcgU2V0KFNZU1RFTV9TWU1CT0xTKTtcbiAgLyoqIEB0eXBlIHtNb2RlfSAqL1xuICBjb25zdCBTWU1CT0xTID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2J1aWx0aW4tc3ltYm9sJyxcbiAgICAgIGJlZ2luOiBTWU1CT0xfUkUsXG4gICAgICAvLyBmb3IgcGVyZm9ybWFuY2Ugb3V0IG9mIGZlYXIgb2YgcmVnZXguZWl0aGVyKC4uLk1hdGhlbWF0aWNhLlNZU1RFTV9TWU1CT0xTKVxuICAgICAgXCJvbjpiZWdpblwiOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmICghU1lTVEVNX1NZTUJPTFNfU0VULmhhcyhtYXRjaFswXSkpIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgYmVnaW46IFNZTUJPTF9SRVxuICAgIH1cbiAgXSB9O1xuXG4gIGNvbnN0IE5BTUVEX0NIQVJBQ1RFUiA9IHtcbiAgICBjbGFzc05hbWU6ICduYW1lZC1jaGFyYWN0ZXInLFxuICAgIGJlZ2luOiAvXFxcXFxcW1skYS16QS1aXVskYS16QS1aMC05XStcXF0vXG4gIH07XG5cbiAgY29uc3QgT1BFUkFUT1JTID0ge1xuICAgIGNsYXNzTmFtZTogJ29wZXJhdG9yJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IC9bK1xcLSovLDsuOkB+PT48JnxfYCdePyElXSsvXG4gIH07XG4gIGNvbnN0IFBBVFRFUk5TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhdHRlcm4nLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogLyhbYS16QS1aJF1bYS16QS1aMC05JF0qKT9fKyhbYS16QS1aJF1bYS16QS1aMC05JF0qKT8vXG4gIH07XG5cbiAgY29uc3QgU0xPVFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc2xvdCcsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiAvI1thLXpBLVokXVthLXpBLVowLTkkXSp8IytbMC05XT8vXG4gIH07XG5cbiAgY29uc3QgQlJBQ0VTID0ge1xuICAgIGNsYXNzTmFtZTogJ2JyYWNlJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgYmVnaW46IC9bW1xcXSgpe31dL1xuICB9O1xuXG4gIGNvbnN0IE1FU1NBR0VTID0ge1xuICAgIGNsYXNzTmFtZTogJ21lc3NhZ2UtbmFtZScsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoXCI6OlwiLCBTWU1CT0xfUkUpXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTWF0aGVtYXRpY2EnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdtbWEnLFxuICAgICAgJ3dsJ1xuICAgIF0sXG4gICAgY2xhc3NOYW1lQWxpYXNlczoge1xuICAgICAgYnJhY2U6ICdwdW5jdHVhdGlvbicsXG4gICAgICBwYXR0ZXJuOiAndHlwZScsXG4gICAgICBzbG90OiAndHlwZScsXG4gICAgICBzeW1ib2w6ICd2YXJpYWJsZScsXG4gICAgICAnbmFtZWQtY2hhcmFjdGVyJzogJ3ZhcmlhYmxlJyxcbiAgICAgICdidWlsdGluLXN5bWJvbCc6ICdidWlsdF9pbicsXG4gICAgICAnbWVzc2FnZS1uYW1lJzogJ3N0cmluZydcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoL1xcKFxcKi8sIC9cXCpcXCkvLCB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH0pLFxuICAgICAgUEFUVEVSTlMsXG4gICAgICBTTE9UUyxcbiAgICAgIE1FU1NBR0VTLFxuICAgICAgU1lNQk9MUyxcbiAgICAgIE5BTUVEX0NIQVJBQ1RFUixcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBOVU1CRVJTLFxuICAgICAgT1BFUkFUT1JTLFxuICAgICAgQlJBQ0VTXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1hdGhlbWF0aWNhO1xuIiwgIi8qXG5MYW5ndWFnZTogTWF0bGFiXG5BdXRob3I6IERlbmlzIEJhcmRhZHltIDxiYXJkYWR5bWNoaWtAZ21haWwuY29tPlxuQ29udHJpYnV0b3JzOiBFdWdlbmUgTml6aGliaXRza3kgPG5pemhpYml0c2t5QHlhLnJ1PiwgRWdvciBSb2dvdiA8ZS5yb2dvdkBwb3N0Z3Jlc3Byby5ydT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3Lm1hdGh3b3Jrcy5jb20vcHJvZHVjdHMvbWF0bGFiLmh0bWxcbkNhdGVnb3J5OiBzY2llbnRpZmljXG4qL1xuXG4vKlxuICBGb3JtYWwgc3ludGF4IGlzIG5vdCBwdWJsaXNoZWQsIGhlbHBmdWwgbGluazpcbiAgaHR0cHM6Ly9naXRodWIuY29tL2tvcm5pbG92YS1sL21hdGxhYi1JbnRlbGxpSi1wbHVnaW4vYmxvYi9tYXN0ZXIvc3JjL21haW4vZ3JhbW1hci9NYXRsYWIuYm5mXG4qL1xuZnVuY3Rpb24gbWF0bGFiKGhsanMpIHtcbiAgY29uc3QgVFJBTlNQT1NFX1JFID0gJyhcXCd8XFxcXC5cXCcpKyc7XG4gIGNvbnN0IFRSQU5TUE9TRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogVFJBTlNQT1NFX1JFIH0gXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01hdGxhYicsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhcmd1bWVudHMgYnJlYWsgY2FzZSBjYXRjaCBjbGFzc2RlZiBjb250aW51ZSBlbHNlIGVsc2VpZiBlbmQgZW51bWVyYXRpb24gZXZlbnRzIGZvciBmdW5jdGlvbiAnXG4gICAgICAgICsgJ2dsb2JhbCBpZiBtZXRob2RzIG90aGVyd2lzZSBwYXJmb3IgcGVyc2lzdGVudCBwcm9wZXJ0aWVzIHJldHVybiBzcG1kIHN3aXRjaCB0cnkgd2hpbGUnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdzaW4gc2luZCBzaW5oIGFzaW4gYXNpbmQgYXNpbmggY29zIGNvc2QgY29zaCBhY29zIGFjb3NkIGFjb3NoIHRhbiB0YW5kIHRhbmggYXRhbiAnXG4gICAgICAgICsgJ2F0YW5kIGF0YW4yIGF0YW5oIHNlYyBzZWNkIHNlY2ggYXNlYyBhc2VjZCBhc2VjaCBjc2MgY3NjZCBjc2NoIGFjc2MgYWNzY2QgYWNzY2ggY290ICdcbiAgICAgICAgKyAnY290ZCBjb3RoIGFjb3QgYWNvdGQgYWNvdGggaHlwb3QgZXhwIGV4cG0xIGxvZyBsb2cxcCBsb2cxMCBsb2cyIHBvdzIgcmVhbHBvdyByZWFsbG9nICdcbiAgICAgICAgKyAncmVhbHNxcnQgc3FydCBudGhyb290IG5leHRwb3cyIGFicyBhbmdsZSBjb21wbGV4IGNvbmogaW1hZyByZWFsIHVud3JhcCBpc3JlYWwgJ1xuICAgICAgICArICdjcGx4cGFpciBmaXggZmxvb3IgY2VpbCByb3VuZCBtb2QgcmVtIHNpZ24gYWlyeSBiZXNzZWxqIGJlc3NlbHkgYmVzc2VsaCBiZXNzZWxpICdcbiAgICAgICAgKyAnYmVzc2VsayBiZXRhIGJldGFpbmMgYmV0YWxuIGVsbGlwaiBlbGxpcGtlIGVyZiBlcmZjIGVyZmN4IGVyZmludiBleHBpbnQgZ2FtbWEgJ1xuICAgICAgICArICdnYW1tYWluYyBnYW1tYWxuIHBzaSBsZWdlbmRyZSBjcm9zcyBkb3QgZmFjdG9yIGlzcHJpbWUgcHJpbWVzIGdjZCBsY20gcmF0IHJhdHMgcGVybXMgJ1xuICAgICAgICArICduY2hvb3NlayBmYWN0b3JpYWwgY2FydDJzcGggY2FydDJwb2wgcG9sMmNhcnQgc3BoMmNhcnQgaHN2MnJnYiByZ2IyaHN2IHplcm9zIG9uZXMgJ1xuICAgICAgICArICdleWUgcmVwbWF0IHJhbmQgcmFuZG4gbGluc3BhY2UgbG9nc3BhY2UgZnJlcXNwYWNlIG1lc2hncmlkIGFjY3VtYXJyYXkgc2l6ZSBsZW5ndGggJ1xuICAgICAgICArICduZGltcyBudW1lbCBkaXNwIGlzZW1wdHkgaXNlcXVhbCBpc2VxdWFsd2l0aGVxdWFsbmFucyBjYXQgcmVzaGFwZSBkaWFnIGJsa2RpYWcgdHJpbCAnXG4gICAgICAgICsgJ3RyaXUgZmxpcGxyIGZsaXB1ZCBmbGlwZGltIHJvdDkwIGZpbmQgc3ViMmluZCBpbmQyc3ViIGJzeGZ1biBuZGdyaWQgcGVybXV0ZSBpcGVybXV0ZSAnXG4gICAgICAgICsgJ3NoaWZ0ZGltIGNpcmNzaGlmdCBzcXVlZXplIGlzc2NhbGFyIGlzdmVjdG9yIGFucyBlcHMgcmVhbG1heCByZWFsbWluIHBpIGl8MCBpbmYgbmFuICdcbiAgICAgICAgKyAnaXNuYW4gaXNpbmYgaXNmaW5pdGUganwwIHdoeSBjb21wYW4gZ2FsbGVyeSBoYWRhbWFyZCBoYW5rZWwgaGlsYiBpbnZoaWxiIG1hZ2ljIHBhc2NhbCAnXG4gICAgICAgICsgJ3Jvc3NlciB0b2VwbGl0eiB2YW5kZXIgd2lsa2luc29uIG1heCBtaW4gbmFubWF4IG5hbm1pbiBtZWFuIG5hbm1lYW4gdHlwZSB0YWJsZSAnXG4gICAgICAgICsgJ3JlYWR0YWJsZSB3cml0ZXRhYmxlIHNvcnRyb3dzIHNvcnQgZmlndXJlIHBsb3QgcGxvdDMgc2NhdHRlciBzY2F0dGVyMyBjZWxsZnVuICdcbiAgICAgICAgKyAnbGVnZW5kIGludGVyc2VjdCBpc21lbWJlciBwcm9jcnVzdGVzIGhvbGQgbnVtMmNlbGwgJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogJygvL3xcInwjfC9cXFxcKnxcXFxccysvXFxcXHcrKScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgICAgICAgICAgZW5kOiAnXFxcXF0nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgICAgYmVnaW46IC90cnVlfGZhbHNlLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBzdGFydHM6IFRSQU5TUE9TRVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16QS1aXVthLXpBLVpfMC05XSonICsgVFJBTlNQT1NFX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiBobGpzLkNfTlVNQkVSX1JFLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHN0YXJ0czogVFJBTlNQT1NFXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcXCdcXCcnIH0gXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXF18XFx9fFxcKS8sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgc3RhcnRzOiBUUkFOU1BPU0VcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF0sXG4gICAgICAgIHN0YXJ0czogVFJBTlNQT1NFXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdeXFxcXHMqJVxcXFx7XFxcXHMqJCcsICdeXFxcXHMqJVxcXFx9XFxcXHMqJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKCclJywgJyQnKVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXRsYWI7XG4iLCAiLypcbkxhbmd1YWdlOiBNYXhpbWFcbkF1dGhvcjogUm9iZXJ0IERvZGllciA8cm9iZXJ0LmRvZGllckBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbWF4aW1hLnNvdXJjZWZvcmdlLm5ldFxuQ2F0ZWdvcnk6IHNjaWVudGlmaWNcbiovXG5cbmZ1bmN0aW9uIG1heGltYShobGpzKSB7XG4gIGNvbnN0IEtFWVdPUkRTID1cbiAgICAnaWYgdGhlbiBlbHNlIGVsc2VpZiBmb3IgdGhydSBkbyB3aGlsZSB1bmxlc3Mgc3RlcCBpbiBhbmQgb3Igbm90JztcbiAgY29uc3QgTElURVJBTFMgPVxuICAgICd0cnVlIGZhbHNlIHVua25vd24gaW5mIG1pbmYgaW5kIHVuZCAlZSAlaSAlcGkgJXBoaSAlZ2FtbWEnO1xuICBjb25zdCBCVUlMVElOX0ZVTkNUSU9OUyA9XG4gICAgJyBhYmFzZXAgYWJzIGFic2ludCBhYnNvbHV0ZV9yZWFsX3RpbWUgYWNvcyBhY29zaCBhY290IGFjb3RoIGFjc2MgYWNzY2ggYWN0aXZhdGUnXG4gICAgKyAnIGFkZGNvbCBhZGRfZWRnZSBhZGRfZWRnZXMgYWRkbWF0cmljZXMgYWRkcm93IGFkZF92ZXJ0ZXggYWRkX3ZlcnRpY2VzIGFkamFjZW5jeV9tYXRyaXgnXG4gICAgKyAnIGFkam9pbiBhZGpvaW50IGFmIGFnZCBhaXJ5IGFpcnlfYWkgYWlyeV9iaSBhaXJ5X2RhaSBhaXJ5X2RiaSBhbGdzeXMgYWxnX3R5cGUnXG4gICAgKyAnIGFsaWFzIGFsbHJvb3RzIGFscGhhY2hhcnAgYWxwaGFudW1lcmljcCBhbW9ydGl6YXRpb24gJWFuZCBhbm51aXR5X2Z2J1xuICAgICsgJyBhbm51aXR5X3B2IGFudGlkIGFudGlkaWZmIEFudGlEaWZmZXJlbmNlIGFwcGVuZCBhcHBlbmRmaWxlIGFwcGx5IGFwcGx5MSBhcHBseTInXG4gICAgKyAnIGFwcGx5YjEgYXByb3BvcyBhcmdzIGFyaXRfYW1vcnRpemF0aW9uIGFyaXRobWV0aWMgYXJpdGhzdW0gYXJyYXkgYXJyYXlhcHBseSdcbiAgICArICcgYXJyYXlpbmZvIGFycmF5bWFrZSBhcnJheXNldGFwcGx5IGFzY2lpIGFzZWMgYXNlY2ggYXNpbiBhc2luaCBhc2tpbnRlZ2VyJ1xuICAgICsgJyBhc2tzaWduIGFzc29jIGFzc29jX2xlZ2VuZHJlX3AgYXNzb2NfbGVnZW5kcmVfcSBhc3N1bWUgYXNzdW1lX2V4dGVybmFsX2J5dGVfb3JkZXInXG4gICAgKyAnIGFzeW1wYSBhdCBhdGFuIGF0YW4yIGF0YW5oIGF0ZW5zaW1wIGF0b20gYXR2YWx1ZSBhdWdjb2VmbWF0cml4IGF1Z21lbnRlZF9sYWdyYW5naWFuX21ldGhvZCdcbiAgICArICcgYXYgYXZlcmFnZV9kZWdyZWUgYmFja3RyYWNlIGJhcnMgYmFyc3Bsb3QgYmFyc3Bsb3RfZGVzY3JpcHRpb24gYmFzZTY0IGJhc2U2NF9kZWNvZGUnXG4gICAgKyAnIGJhc2hpbmRpY2VzIGJhdGNoIGJhdGNobG9hZCBiYzIgYmR2YWMgYmVsbG4gYmVuZWZpdF9jb3N0IGJlcm4gYmVybnBvbHkgYmVybnN0ZWluX2FwcHJveCdcbiAgICArICcgYmVybnN0ZWluX2V4cGFuZCBiZXJuc3RlaW5fcG9seSBiZXNzZWwgYmVzc2VsX2kgYmVzc2VsX2ogYmVzc2VsX2sgYmVzc2VsX3NpbXBsaWZ5J1xuICAgICsgJyBiZXNzZWxfeSBiZXRhIGJldGFfaW5jb21wbGV0ZSBiZXRhX2luY29tcGxldGVfZ2VuZXJhbGl6ZWQgYmV0YV9pbmNvbXBsZXRlX3JlZ3VsYXJpemVkJ1xuICAgICsgJyBiZXpvdXQgYmZhbGxyb290cyBiZmZhYyBiZl9maW5kX3Jvb3QgYmZfZm1pbl9jb2J5bGEgYmZoemV0YSBiZmxvYXQgYmZsb2F0cCdcbiAgICArICcgYmZwc2kgYmZwc2kwIGJmemV0YSBiaWNvbm5lY3RlZF9jb21wb25lbnRzIGJpbWV0cmljIGJpbm9taWFsIGJpcGFydGl0aW9uJ1xuICAgICsgJyBibG9jayBibG9ja21hdHJpeHAgYm9kZV9nYWluIGJvZGVfcGhhc2UgYm90aGNvZWYgYm94IGJveHBsb3QgYm94cGxvdF9kZXNjcmlwdGlvbidcbiAgICArICcgYnJlYWsgYnVnX3JlcG9ydCBidWlsZF9pbmZvfDEwIGJ1aWxkcSBidWlsZF9zYW1wbGUgYnVybiBjYWJzIGNhbmZvcm0gY2FudGVuJ1xuICAgICsgJyBjYXJkaW5hbGl0eSBjYXJnIGNhcnRhbiBjYXJ0ZXNpYW5fcHJvZHVjdCBjYXRjaCBjYXVjaHlfbWF0cml4IGNiZmZhYyBjZGZfYmVybm91bGxpJ1xuICAgICsgJyBjZGZfYmV0YSBjZGZfYmlub21pYWwgY2RmX2NhdWNoeSBjZGZfY2hpMiBjZGZfY29udGludW91c191bmlmb3JtIGNkZl9kaXNjcmV0ZV91bmlmb3JtJ1xuICAgICsgJyBjZGZfZXhwIGNkZl9mIGNkZl9nYW1tYSBjZGZfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgY2RmX2dlb21ldHJpYyBjZGZfZ3VtYmVsJ1xuICAgICsgJyBjZGZfaHlwZXJnZW9tZXRyaWMgY2RmX2xhcGxhY2UgY2RmX2xvZ2lzdGljIGNkZl9sb2dub3JtYWwgY2RmX25lZ2F0aXZlX2Jpbm9taWFsJ1xuICAgICsgJyBjZGZfbm9uY2VudHJhbF9jaGkyIGNkZl9ub25jZW50cmFsX3N0dWRlbnRfdCBjZGZfbm9ybWFsIGNkZl9wYXJldG8gY2RmX3BvaXNzb24nXG4gICAgKyAnIGNkZl9yYW5rX3N1bSBjZGZfcmF5bGVpZ2ggY2RmX3NpZ25lZF9yYW5rIGNkZl9zdHVkZW50X3QgY2RmX3dlaWJ1bGwgY2Rpc3BsYXknXG4gICAgKyAnIGNlaWxpbmcgY2VudHJhbF9tb21lbnQgY2VxdWFsIGNlcXVhbGlnbm9yZSBjZiBjZmRpc3JlcCBjZmV4cGFuZCBjZ2VvZGVzaWMnXG4gICAgKyAnIGNncmVhdGVycCBjZ3JlYXRlcnBpZ25vcmUgY2hhbmdlbmFtZSBjaGFuZ2V2YXIgY2hhb3NnYW1lIGNoYXJhdCBjaGFyZnVuIGNoYXJmdW4yJ1xuICAgICsgJyBjaGFybGlzdCBjaGFycCBjaGFycG9seSBjaGRpciBjaGVieXNoZXZfdCBjaGVieXNoZXZfdSBjaGVja2RpdiBjaGVja19vdmVybGFwcydcbiAgICArICcgY2hpbmVzZSBjaG9sZXNreSBjaHJpc3RvZiBjaHJvbWF0aWNfaW5kZXggY2hyb21hdGljX251bWJlciBjaW50IGNpcmN1bGFudF9ncmFwaCdcbiAgICArICcgY2xlYXJfZWRnZV93ZWlnaHQgY2xlYXJfcnVsZXMgY2xlYXJfdmVydGV4X2xhYmVsIGNsZWJzY2hfZ29yZGFuIGNsZWJzY2hfZ3JhcGgnXG4gICAgKyAnIGNsZXNzcCBjbGVzc3BpZ25vcmUgY2xvc2UgY2xvc2VmaWxlIGNtZXRyaWMgY29lZmYgY29lZm1hdHJpeCBjb2dyYWQgY29sIGNvbGxhcHNlJ1xuICAgICsgJyBjb2xsZWN0dGVybXMgY29sdW1ub3AgY29sdW1uc3BhY2UgY29sdW1uc3dhcCBjb2x1bW52ZWN0b3IgY29tYmluYXRpb24gY29tYmluZSdcbiAgICArICcgY29tcDJwdWkgY29tcGFyZSBjb21wZmlsZSBjb21waWxlIGNvbXBpbGVfZmlsZSBjb21wbGVtZW50X2dyYXBoIGNvbXBsZXRlX2JpcGFydGl0ZV9ncmFwaCdcbiAgICArICcgY29tcGxldGVfZ3JhcGggY29tcGxleF9udW1iZXJfcCBjb21wb25lbnRzIGNvbXBvc2VfZnVuY3Rpb25zIGNvbmNhbiBjb25jYXQnXG4gICAgKyAnIGNvbmp1Z2F0ZSBjb25tZXRkZXJpdiBjb25uZWN0ZWRfY29tcG9uZW50cyBjb25uZWN0X3ZlcnRpY2VzIGNvbnMgY29uc3RhbnQnXG4gICAgKyAnIGNvbnN0YW50cCBjb25zdGl0dWVudCBjb25zdHZhbHVlIGNvbnQycGFydCBjb250ZW50IGNvbnRpbnVvdXNfZnJlcSBjb250b3J0aW9uJ1xuICAgICsgJyBjb250b3VyX3Bsb3QgY29udHJhY3QgY29udHJhY3RfZWRnZSBjb250cmFncmFkIGNvbnRyaWJfb2RlIGNvbnZlcnQgY29vcmQnXG4gICAgKyAnIGNvcHkgY29weV9maWxlIGNvcHlfZ3JhcGggY29weWxpc3QgY29weW1hdHJpeCBjb3IgY29zIGNvc2ggY290IGNvdGggY292IGNvdjEnXG4gICAgKyAnIGNvdmRpZmYgY292ZWN0IGNvdmVycyBjcmMyNHN1bSBjcmVhdGVfZ3JhcGggY3JlYXRlX2xpc3QgY3NjIGNzY2ggY3NldHVwIGNzcGxpbmUnXG4gICAgKyAnIGN0YXlsb3IgY3RfY29vcmRzeXMgY3RyYW5zZm9ybSBjdHJhbnNwb3NlIGN1YmVfZ3JhcGggY3Vib2N0YWhlZHJvbl9ncmFwaCdcbiAgICArICcgY3VubGlzcCBjdiBjeWNsZV9kaWdyYXBoIGN5Y2xlX2dyYXBoIGN5bGluZHJpY2FsIGRheXMzNjAgZGJsaW50IGRlYWN0aXZhdGUnXG4gICAgKyAnIGRlY2xhcmUgZGVjbGFyZV9jb25zdHZhbHVlIGRlY2xhcmVfZGltZW5zaW9ucyBkZWNsYXJlX2Z1bmRhbWVudGFsX2RpbWVuc2lvbnMnXG4gICAgKyAnIGRlY2xhcmVfZnVuZGFtZW50YWxfdW5pdHMgZGVjbGFyZV9xdHkgZGVjbGFyZV90cmFuc2xhdGVkIGRlY2xhcmVfdW5pdF9jb252ZXJzaW9uJ1xuICAgICsgJyBkZWNsYXJlX3VuaXRzIGRlY2xhcmVfd2VpZ2h0cyBkZWNzeW0gZGVmY29uIGRlZmluZSBkZWZpbmVfYWx0X2Rpc3BsYXkgZGVmaW5lX3ZhcmlhYmxlJ1xuICAgICsgJyBkZWZpbnQgZGVmbWF0Y2ggZGVmcnVsZSBkZWZzdHJ1Y3QgZGVmdGF5bG9yIGRlZ3JlZV9zZXF1ZW5jZSBkZWwgZGVsZXRlIGRlbGV0ZW4nXG4gICAgKyAnIGRlbHRhIGRlbW8gZGVtb2l2cmUgZGVub20gZGVwZW5kcyBkZXJpdmRlZ3JlZSBkZXJpdmxpc3QgZGVzY3JpYmUgZGVzb2x2ZSdcbiAgICArICcgZGV0ZXJtaW5hbnQgZGZsb2F0IGRnYXVzc19hIGRnYXVzc19iIGRnZWV2IGRnZW1tIGRnZXFyZiBkZ2VzdiBkZ2VzdmQgZGlhZydcbiAgICArICcgZGlhZ21hdHJpeCBkaWFnX21hdHJpeCBkaWFnbWF0cml4cCBkaWFtZXRlciBkaWZmIGRpZ2l0Y2hhcnAgZGltYWNzX2V4cG9ydCdcbiAgICArICcgZGltYWNzX2ltcG9ydCBkaW1lbnNpb24gZGltZW5zaW9ubGVzcyBkaW1lbnNpb25zIGRpbWVuc2lvbnNfYXNfbGlzdCBkaXJlY3QnXG4gICAgKyAnIGRpcmVjdG9yeSBkaXNjcmV0ZV9mcmVxIGRpc2pvaW4gZGlzam9pbnRwIGRpc29sYXRlIGRpc3AgZGlzcGNvbiBkaXNwZm9ybSdcbiAgICArICcgZGlzcGZ1biBkaXNwSm9yZGFuIGRpc3BsYXkgZGlzcHJ1bGUgZGlzcHRlcm1zIGRpc3RyaWIgZGl2aWRlIGRpdmlzb3JzIGRpdnN1bSdcbiAgICArICcgZGt1bW1lcl9tIGRrdW1tZXJfdSBkbGFuZ2UgZG9kZWNhaGVkcm9uX2dyYXBoIGRvdHByb2R1Y3QgZG90c2ltcCBkcGFydCdcbiAgICArICcgZHJhdyBkcmF3MmQgZHJhdzNkIGRyYXdkZiBkcmF3X2ZpbGUgZHJhd19ncmFwaCBkc2NhbGFyIGVjaGVsb24gZWRnZV9jb2xvcmluZydcbiAgICArICcgZWRnZV9jb25uZWN0aXZpdHkgZWRnZXMgZWlnZW5zX2J5X2phY29iaSBlaWdlbnZhbHVlcyBlaWdlbnZlY3RvcnMgZWlnaHRoJ1xuICAgICsgJyBlaW5zdGVpbiBlaXZhbHMgZWl2ZWN0cyBlbGFwc2VkX3JlYWxfdGltZSBlbGFwc2VkX3J1bl90aW1lIGVsZTJjb21wIGVsZTJwb2x5bm9tZSdcbiAgICArICcgZWxlMnB1aSBlbGVtIGVsZW1lbnRwIGVsZXZhdGlvbl9ncmlkIGVsaW0gZWxpbV9hbGxidXQgZWxpbWluYXRlIGVsaW1pbmF0ZV91c2luZydcbiAgICArICcgZWxsaXBzZSBlbGxpcHRpY19lIGVsbGlwdGljX2VjIGVsbGlwdGljX2V1IGVsbGlwdGljX2YgZWxsaXB0aWNfa2MgZWxsaXB0aWNfcGknXG4gICAgKyAnIGVtYXRyaXggZW1wdHlfZ3JhcGggZW1wdHlwIGVuZGNvbnMgZW50ZXJtYXRyaXggZW50ZXJ0ZW5zb3IgZW50aWVyIGVxdWFsIGVxdWFscCdcbiAgICArICcgZXF1aXZfY2xhc3NlcyBlcmYgZXJmYyBlcmZfZ2VuZXJhbGl6ZWQgZXJmaSBlcnJjYXRjaCBlcnJvciBlcnJvcm1zZyBlcnJvcnMnXG4gICAgKyAnIGV1bGVyIGV2IGV2YWxfc3RyaW5nIGV2ZW5wIGV2ZXJ5IGV2b2x1dGlvbiBldm9sdXRpb24yZCBldnVuZGlmZiBleGFtcGxlIGV4cCdcbiAgICArICcgZXhwYW5kIGV4cGFuZHdydCBleHBhbmR3cnRfZmFjdG9yZWQgZXhwaW50IGV4cGludGVncmFsX2NoaSBleHBpbnRlZ3JhbF9jaSdcbiAgICArICcgZXhwaW50ZWdyYWxfZSBleHBpbnRlZ3JhbF9lMSBleHBpbnRlZ3JhbF9laSBleHBpbnRlZ3JhbF9lX3NpbXBsaWZ5IGV4cGludGVncmFsX2xpJ1xuICAgICsgJyBleHBpbnRlZ3JhbF9zaGkgZXhwaW50ZWdyYWxfc2kgZXhwbGljaXQgZXhwbG9zZSBleHBvbmVudGlhbGl6ZSBleHByZXNzIGV4cHQnXG4gICAgKyAnIGV4c2VjIGV4dGRpZmYgZXh0cmFjdF9saW5lYXJfZXF1YXRpb25zIGV4dHJlbWFsX3N1YnNldCBlemdjZCAlZiBmOTAgZmFjc3VtJ1xuICAgICsgJyBmYWN0Y29tYiBmYWN0b3IgZmFjdG9yZmFjc3VtIGZhY3RvcmlhbCBmYWN0b3JvdXQgZmFjdG9yc3VtIGZhY3RzIGZhc3RfY2VudHJhbF9lbGVtZW50cydcbiAgICArICcgZmFzdF9saW5zb2x2ZSBmYXN0dGltZXMgZmVhdHVyZXAgZmVybmZhbGUgZmZ0IGZpYiBmaWJ0b3BoaSBmaWZ0aCBmaWxlbmFtZV9tZXJnZSdcbiAgICArICcgZmlsZV9zZWFyY2ggZmlsZV90eXBlIGZpbGxhcnJheSBmaW5kZGUgZmluZF9yb290IGZpbmRfcm9vdF9hYnMgZmluZF9yb290X2Vycm9yJ1xuICAgICsgJyBmaW5kX3Jvb3RfcmVsIGZpcnN0IGZpeCBmbGF0dGVuIGZsZW5ndGggZmxvYXQgZmxvYXRudW1wIGZsb29yIGZsb3dlcl9zbmFyaydcbiAgICArICcgZmx1c2ggZmx1c2gxZGVyaXYgZmx1c2hkIGZsdXNobmQgZmx1c2hfb3V0cHV0IGZtaW5fY29ieWxhIGZvcmdldCBmb3J0cmFuJ1xuICAgICsgJyBmb3VyY29zIGZvdXJleHBhbmQgZm91cmllciBmb3VyaWVyX2VsaW0gZm91cmludCBmb3VyaW50Y29zIGZvdXJpbnRzaW4gZm91cnNpbXAnXG4gICAgKyAnIGZvdXJzaW4gZm91cnRoIGZwb3NpdGlvbiBmcmFtZV9icmFja2V0IGZyZWVvZiBmcmVzaGxpbmUgZnJlc25lbF9jIGZyZXNuZWxfcydcbiAgICArICcgZnJvbV9hZGphY2VuY3lfbWF0cml4IGZydWNodF9ncmFwaCBmdWxsX2xpc3RpZnkgZnVsbG1hcCBmdWxsbWFwbCBmdWxscmF0c2ltcCdcbiAgICArICcgZnVsbHJhdHN1YnN0IGZ1bGxzZXRpZnkgZnVuY3NvbHZlIGZ1bmRhbWVudGFsX2RpbWVuc2lvbnMgZnVuZGFtZW50YWxfdW5pdHMnXG4gICAgKyAnIGZ1bmRlZiBmdW5tYWtlIGZ1bnAgZnYgZzAgZzEgZ2FtbWEgZ2FtbWFfZ3JlZWsgZ2FtbWFfaW5jb21wbGV0ZSBnYW1tYV9pbmNvbXBsZXRlX2dlbmVyYWxpemVkJ1xuICAgICsgJyBnYW1tYV9pbmNvbXBsZXRlX3JlZ3VsYXJpemVkIGdhdXNzIGdhdXNzX2EgZ2F1c3NfYiBnYXVzc3Byb2IgZ2NkIGdjZGV4IGdjZGl2aWRlJ1xuICAgICsgJyBnY2ZhYyBnY2ZhY3RvciBnZCBnZW5lcmFsaXplZF9sYW1iZXJ0X3cgZ2VuZmFjdCBnZW5fbGFndWVycmUgZ2VubWF0cml4IGdlbnN5bSdcbiAgICArICcgZ2VvX2Ftb3J0aXphdGlvbiBnZW9fYW5udWl0eV9mdiBnZW9fYW5udWl0eV9wdiBnZW9tYXAgZ2VvbWV0cmljIGdlb21ldHJpY19tZWFuJ1xuICAgICsgJyBnZW9zdW0gZ2V0IGdldGN1cnJlbnRkaXJlY3RvcnkgZ2V0X2VkZ2Vfd2VpZ2h0IGdldGVudiBnZXRfbHVfZmFjdG9ycyBnZXRfb3V0cHV0X3N0cmVhbV9zdHJpbmcnXG4gICAgKyAnIGdldF9waXhlbCBnZXRfcGxvdF9vcHRpb24gZ2V0X3RleF9lbnZpcm9ubWVudCBnZXRfdGV4X2Vudmlyb25tZW50X2RlZmF1bHQnXG4gICAgKyAnIGdldF92ZXJ0ZXhfbGFiZWwgZ2ZhY3RvciBnZmFjdG9yc3VtIGdnZiBnaXJ0aCBnbG9iYWxfdmFyaWFuY2VzIGduIGdudXBsb3RfY2xvc2UnXG4gICAgKyAnIGdudXBsb3RfcmVwbG90IGdudXBsb3RfcmVzZXQgZ251cGxvdF9yZXN0YXJ0IGdudXBsb3Rfc3RhcnQgZ28gR29zcGVyIEdvc3BlclN1bSdcbiAgICArICcgZ3IyZCBncjNkIGdyYWRlZiBncmFtc2NobWlkdCBncmFwaDZfZGVjb2RlIGdyYXBoNl9lbmNvZGUgZ3JhcGg2X2V4cG9ydCBncmFwaDZfaW1wb3J0J1xuICAgICsgJyBncmFwaF9jZW50ZXIgZ3JhcGhfY2hhcnBvbHkgZ3JhcGhfZWlnZW52YWx1ZXMgZ3JhcGhfZmxvdyBncmFwaF9vcmRlciBncmFwaF9wZXJpcGhlcnknXG4gICAgKyAnIGdyYXBoX3Byb2R1Y3QgZ3JhcGhfc2l6ZSBncmFwaF91bmlvbiBncmVhdF9yaG9tYmljb3NpZG9kZWNhaGVkcm9uX2dyYXBoIGdyZWF0X3Job21iaWN1Ym9jdGFoZWRyb25fZ3JhcGgnXG4gICAgKyAnIGdyaWRfZ3JhcGggZ3JpbmQgZ3JvYm5lcl9iYXNpcyBncm90emNoX2dyYXBoIGhhbWlsdG9uX2N5Y2xlIGhhbWlsdG9uX3BhdGgnXG4gICAgKyAnIGhhbmtlbCBoYW5rZWxfMSBoYW5rZWxfMiBoYXJtb25pYyBoYXJtb25pY19tZWFuIGhhdiBoZWF3b29kX2dyYXBoIGhlcm1pdGUnXG4gICAgKyAnIGhlc3NpYW4gaGdmcmVkIGhpbGJlcnRtYXAgaGlsYmVydF9tYXRyaXggaGlwb3cgaGlzdG9ncmFtIGhpc3RvZ3JhbV9kZXNjcmlwdGlvbidcbiAgICArICcgaG9kZ2UgaG9ybmVyIGh5cGVyZ2VvbWV0cmljIGkwIGkxICVpYmVzIGljMSBpYzIgaWNfY29udmVydCBpY2hyMSBpY2hyMiBpY29zYWhlZHJvbl9ncmFwaCdcbiAgICArICcgaWNvc2lkb2RlY2FoZWRyb25fZ3JhcGggaWN1cnZhdHVyZSBpZGVudCBpZGVudGZvciBpZGVudGl0eSBpZGlmZiBpZGltIGlkdW1teSdcbiAgICArICcgaWVxbiAlaWYgaWZhY3RvcnMgaWZyYW1lcyBpZnMgaWdjZGV4IGlnZW9kZXNpY19jb29yZHMgaWx0IGltYWdlIGltYWdwYXJ0J1xuICAgICsgJyBpbWV0cmljIGltcGxpY2l0IGltcGxpY2l0X2Rlcml2YXRpdmUgaW1wbGljaXRfcGxvdCBpbmRleGVkX3RlbnNvciBpbmRpY2VzJ1xuICAgICsgJyBpbmR1Y2VkX3N1YmdyYXBoIGluZmVyZW5jZXAgaW5mZXJlbmNlX3Jlc3VsdCBpbmZpeCBpbmZvX2Rpc3BsYXkgaW5pdF9hdGVuc29yJ1xuICAgICsgJyBpbml0X2N0ZW5zb3IgaW5fbmVpZ2hib3JzIGlubmVycHJvZHVjdCBpbnBhcnQgaW5wcm9kIGlucnQgaW50ZWdlcnAgaW50ZWdlcl9wYXJ0aXRpb25zJ1xuICAgICsgJyBpbnRlZ3JhdGUgaW50ZXJzZWN0IGludGVyc2VjdGlvbiBpbnRlcnZhbHAgaW50b3BvaXMgaW50b3N1bSBpbnZhcmlhbnQxIGludmFyaWFudDInXG4gICAgKyAnIGludmVyc2VfZmZ0IGludmVyc2VfamFjb2JpX2NkIGludmVyc2VfamFjb2JpX2NuIGludmVyc2VfamFjb2JpX2NzIGludmVyc2VfamFjb2JpX2RjJ1xuICAgICsgJyBpbnZlcnNlX2phY29iaV9kbiBpbnZlcnNlX2phY29iaV9kcyBpbnZlcnNlX2phY29iaV9uYyBpbnZlcnNlX2phY29iaV9uZCBpbnZlcnNlX2phY29iaV9ucydcbiAgICArICcgaW52ZXJzZV9qYWNvYmlfc2MgaW52ZXJzZV9qYWNvYmlfc2QgaW52ZXJzZV9qYWNvYmlfc24gaW52ZXJ0IGludmVydF9ieV9hZGpvaW50J1xuICAgICsgJyBpbnZlcnRfYnlfbHUgaW52X21vZCBpcnIgaXMgaXNfYmljb25uZWN0ZWQgaXNfYmlwYXJ0aXRlIGlzX2Nvbm5lY3RlZCBpc19kaWdyYXBoJ1xuICAgICsgJyBpc19lZGdlX2luX2dyYXBoIGlzX2dyYXBoIGlzX2dyYXBoX29yX2RpZ3JhcGggaXNob3cgaXNfaXNvbW9ycGhpYyBpc29sYXRlJ1xuICAgICsgJyBpc29tb3JwaGlzbSBpc19wbGFuYXIgaXNxcnQgaXNyZWFsX3AgaXNfc2Nvbm5lY3RlZCBpc190cmVlIGlzX3ZlcnRleF9pbl9ncmFwaCdcbiAgICArICcgaXRlbXNfaW5mZXJlbmNlICVqIGowIGoxIGphY29iaSBqYWNvYmlhbiBqYWNvYmlfY2QgamFjb2JpX2NuIGphY29iaV9jcyBqYWNvYmlfZGMnXG4gICAgKyAnIGphY29iaV9kbiBqYWNvYmlfZHMgamFjb2JpX25jIGphY29iaV9uZCBqYWNvYmlfbnMgamFjb2JpX3AgamFjb2JpX3NjIGphY29iaV9zZCdcbiAgICArICcgamFjb2JpX3NuIEpGIGpuIGpvaW4gam9yZGFuIGp1bGlhIGp1bGlhX3NldCBqdWxpYV9zaW4gJWsga2RlbHMga2RlbHRhIGtpbGwnXG4gICAgKyAnIGtpbGxjb250ZXh0IGtvc3RrYSBrcm9uX2RlbHRhIGtyb25lY2tlcl9wcm9kdWN0IGt1bW1lcl9tIGt1bW1lcl91IGt1cnRvc2lzJ1xuICAgICsgJyBrdXJ0b3Npc19iZXJub3VsbGkga3VydG9zaXNfYmV0YSBrdXJ0b3Npc19iaW5vbWlhbCBrdXJ0b3Npc19jaGkyIGt1cnRvc2lzX2NvbnRpbnVvdXNfdW5pZm9ybSdcbiAgICArICcga3VydG9zaXNfZGlzY3JldGVfdW5pZm9ybSBrdXJ0b3Npc19leHAga3VydG9zaXNfZiBrdXJ0b3Npc19nYW1tYSBrdXJ0b3Npc19nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSdcbiAgICArICcga3VydG9zaXNfZ2VvbWV0cmljIGt1cnRvc2lzX2d1bWJlbCBrdXJ0b3Npc19oeXBlcmdlb21ldHJpYyBrdXJ0b3Npc19sYXBsYWNlJ1xuICAgICsgJyBrdXJ0b3Npc19sb2dpc3RpYyBrdXJ0b3Npc19sb2dub3JtYWwga3VydG9zaXNfbmVnYXRpdmVfYmlub21pYWwga3VydG9zaXNfbm9uY2VudHJhbF9jaGkyJ1xuICAgICsgJyBrdXJ0b3Npc19ub25jZW50cmFsX3N0dWRlbnRfdCBrdXJ0b3Npc19ub3JtYWwga3VydG9zaXNfcGFyZXRvIGt1cnRvc2lzX3BvaXNzb24nXG4gICAgKyAnIGt1cnRvc2lzX3JheWxlaWdoIGt1cnRvc2lzX3N0dWRlbnRfdCBrdXJ0b3Npc193ZWlidWxsIGxhYmVsIGxhYmVscyBsYWdyYW5nZSdcbiAgICArICcgbGFndWVycmUgbGFtYmRhIGxhbWJlcnRfdyBsYXBsYWNlIGxhcGxhY2lhbl9tYXRyaXggbGFzdCBsYmZncyBsYzJrZHQgbGNoYXJwJ1xuICAgICsgJyBsY19sIGxjbSBsY191IGxkZWZpbnQgbGRpc3AgbGRpc3BsYXkgbGVnZW5kcmVfcCBsZWdlbmRyZV9xIGxlaW5zdGVpbiBsZW5ndGgnXG4gICAgKyAnIGxldCBsZXRydWxlcyBsZXRzaW1wIGxldmlfY2l2aXRhIGxmcmVlb2YgbGd0cmVpbGxpcyBsaHMgbGkgbGllZGlmZiBsaW1pdCdcbiAgICArICcgTGluZHN0ZWR0IGxpbmVhciBsaW5lYXJpbnRlcnBvbCBsaW5lYXJfcHJvZ3JhbSBsaW5lYXJfcmVncmVzc2lvbiBsaW5lX2dyYXBoJ1xuICAgICsgJyBsaW5zb2x2ZSBsaXN0YXJyYXkgbGlzdF9jb3JyZWxhdGlvbnMgbGlzdGlmeSBsaXN0X21hdHJpeF9lbnRyaWVzIGxpc3RfbmNfbW9ub21pYWxzJ1xuICAgICsgJyBsaXN0b2Z0ZW5zIGxpc3RvZnZhcnMgbGlzdHAgbG1heCBsbWluIGxvYWQgbG9hZGZpbGUgbG9jYWwgbG9jYXRlX21hdHJpeF9lbnRyeSdcbiAgICArICcgbG9nIGxvZ2NvbnRyYWN0IGxvZ19nYW1tYSBsb3BvdyBsb3JlbnR6X2dhdWdlIGxvd2VyY2FzZXAgbHBhcnQgbHJhdHN1YnN0J1xuICAgICsgJyBscmVkdWNlIGxyaWVtYW5uIGxzcXVhcmVzX2VzdGltYXRlcyBsc3F1YXJlc19lc3RpbWF0ZXNfYXBwcm94aW1hdGUgbHNxdWFyZXNfZXN0aW1hdGVzX2V4YWN0J1xuICAgICsgJyBsc3F1YXJlc19tc2UgbHNxdWFyZXNfcmVzaWR1YWxfbXNlIGxzcXVhcmVzX3Jlc2lkdWFscyBsc3VtIGx0cmVpbGxpcyBsdV9iYWNrc3ViJ1xuICAgICsgJyBsdWNhcyBsdV9mYWN0b3IgJW0gbWFjcm9leHBhbmQgbWFjcm9leHBhbmQxIG1ha2VfYXJyYXkgbWFrZWJveCBtYWtlZmFjdCBtYWtlZ2FtbWEnXG4gICAgKyAnIG1ha2VfZ3JhcGggbWFrZV9sZXZlbF9waWN0dXJlIG1ha2VsaXN0IG1ha2VPcmRlcnMgbWFrZV9wb2x5X2NvbnRpbmVudCBtYWtlX3BvbHlfY291bnRyeSdcbiAgICArICcgbWFrZV9wb2x5Z29uIG1ha2VfcmFuZG9tX3N0YXRlIG1ha2VfcmdiX3BpY3R1cmUgbWFrZXNldCBtYWtlX3N0cmluZ19pbnB1dF9zdHJlYW0nXG4gICAgKyAnIG1ha2Vfc3RyaW5nX291dHB1dF9zdHJlYW0gbWFrZV90cmFuc2Zvcm0gbWFuZGVsYnJvdCBtYW5kZWxicm90X3NldCBtYXAgbWFwYXRvbSdcbiAgICArICcgbWFwbGlzdCBtYXRjaGRlY2xhcmUgbWF0Y2hmaXggbWF0X2NvbmQgbWF0X2Z1bGx1bmJsb2NrZXIgbWF0X2Z1bmN0aW9uIG1hdGhtbF9kaXNwbGF5J1xuICAgICsgJyBtYXRfbm9ybSBtYXRyaXggbWF0cml4bWFwIG1hdHJpeHAgbWF0cml4X3NpemUgbWF0dHJhY2UgbWF0X3RyYWNlIG1hdF91bmJsb2NrZXInXG4gICAgKyAnIG1heCBtYXhfY2xpcXVlIG1heF9kZWdyZWUgbWF4X2Zsb3cgbWF4aW1pemVfbHAgbWF4X2luZGVwZW5kZW50X3NldCBtYXhfbWF0Y2hpbmcnXG4gICAgKyAnIG1heWJlIG1kNXN1bSBtZWFuIG1lYW5fYmVybm91bGxpIG1lYW5fYmV0YSBtZWFuX2Jpbm9taWFsIG1lYW5fY2hpMiBtZWFuX2NvbnRpbnVvdXNfdW5pZm9ybSdcbiAgICArICcgbWVhbl9kZXZpYXRpb24gbWVhbl9kaXNjcmV0ZV91bmlmb3JtIG1lYW5fZXhwIG1lYW5fZiBtZWFuX2dhbW1hIG1lYW5fZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUnXG4gICAgKyAnIG1lYW5fZ2VvbWV0cmljIG1lYW5fZ3VtYmVsIG1lYW5faHlwZXJnZW9tZXRyaWMgbWVhbl9sYXBsYWNlIG1lYW5fbG9naXN0aWMnXG4gICAgKyAnIG1lYW5fbG9nbm9ybWFsIG1lYW5fbmVnYXRpdmVfYmlub21pYWwgbWVhbl9ub25jZW50cmFsX2NoaTIgbWVhbl9ub25jZW50cmFsX3N0dWRlbnRfdCdcbiAgICArICcgbWVhbl9ub3JtYWwgbWVhbl9wYXJldG8gbWVhbl9wb2lzc29uIG1lYW5fcmF5bGVpZ2ggbWVhbl9zdHVkZW50X3QgbWVhbl93ZWlidWxsJ1xuICAgICsgJyBtZWRpYW4gbWVkaWFuX2RldmlhdGlvbiBtZW1iZXIgbWVzaCBtZXRyaWNleHBhbmRhbGwgbWdmMV9zaGExIG1pbiBtaW5fZGVncmVlJ1xuICAgICsgJyBtaW5fZWRnZV9jdXQgbWluZmFjdG9yaWFsIG1pbmltYWxQb2x5IG1pbmltaXplX2xwIG1pbmltdW1fc3Bhbm5pbmdfdHJlZSBtaW5vcidcbiAgICArICcgbWlucGFja19sc3F1YXJlcyBtaW5wYWNrX3NvbHZlIG1pbl92ZXJ0ZXhfY292ZXIgbWluX3ZlcnRleF9jdXQgbWtkaXIgbW5ld3RvbidcbiAgICArICcgbW9kIG1vZGVfZGVjbGFyZSBtb2RlX2lkZW50aXR5IE1vZGVNYXRyaXggbW9lYml1cyBtb24yc2NodXIgbW9ubyBtb25vbWlhbF9kaW1lbnNpb25zJ1xuICAgICsgJyBtdWx0aWJlcm5zdGVpbl9wb2x5IG11bHRpX2Rpc3BsYXlfZm9yX3RleGluZm8gbXVsdGlfZWxlbSBtdWx0aW5vbWlhbCBtdWx0aW5vbWlhbF9jb2VmZidcbiAgICArICcgbXVsdGlfb3JiaXQgbXVsdGlwbG90X21vZGUgbXVsdGlfcHVpIG11bHRzeW0gbXVsdHRocnUgbXljaWVsc2tpX2dyYXBoIG5hcnknXG4gICAgKyAnIG5hdHVyYWxfdW5pdCBuY19kZWdyZWUgbmNleHB0IG5jaGFycG9seSBuZWdhdGl2ZV9waWN0dXJlIG5laWdoYm9ycyBuZXcgbmV3Y29udGV4dCdcbiAgICArICcgbmV3ZGV0IG5ld19ncmFwaCBuZXdsaW5lIG5ld3RvbiBuZXdfdmFyaWFibGUgbmV4dF9wcmltZSBuaWNlZHVtbWllcyBuaWNlaW5kaWNlcydcbiAgICArICcgbmludGggbm9maXggbm9uYXJyYXkgbm9uY2VudHJhbF9tb21lbnQgbm9ubWV0cmljaXR5IG5vbm5lZ2ludGVnZXJwIG5vbnNjYWxhcnAnXG4gICAgKyAnIG5vbnplcm9hbmRmcmVlb2Ygbm90ZXF1YWwgbm91bmlmeSBucHRldHJhZCBucHYgbnJvb3RzIG50ZXJtcyBudGVybXN0J1xuICAgICsgJyBudGhyb290IG51bGxpdHkgbnVsbHNwYWNlIG51bSBudW1iZXJlZF9ib3VuZGFyaWVzIG51bWJlcnAgbnVtYmVyX3RvX29jdGV0cydcbiAgICArICcgbnVtX2Rpc3RpbmN0X3BhcnRpdGlvbnMgbnVtZXJ2YWwgbnVtZmFjdG9yIG51bV9wYXJ0aXRpb25zIG51c3VtIG56ZXRhIG56ZXRhaSdcbiAgICArICcgbnpldGFyIG9jdGV0c190b19udW1iZXIgb2N0ZXRzX3RvX29pZCBvZGRfZ2lydGggb2RkcCBvZGUyIG9kZV9jaGVjayBvZGVsaW4nXG4gICAgKyAnIG9pZF90b19vY3RldHMgb3Agb3BlbmEgb3BlbmFfYmluYXJ5IG9wZW5yIG9wZW5yX2JpbmFyeSBvcGVudyBvcGVud19iaW5hcnknXG4gICAgKyAnIG9wZXJhdG9ycCBvcHN1YnN0IG9wdGltaXplICVvciBvcmJpdCBvcmJpdHMgb3JkZXJncmVhdCBvcmRlcmdyZWF0cCBvcmRlcmxlc3MnXG4gICAgKyAnIG9yZGVybGVzc3Agb3J0aG9nb25hbF9jb21wbGVtZW50IG9ydGhvcG9seV9yZWN1ciBvcnRob3BvbHlfd2VpZ2h0IG91dGVybWFwJ1xuICAgICsgJyBvdXRfbmVpZ2hib3JzIG91dG9mcG9pcyBwYWRlIHBhcmFib2xpY19jeWxpbmRlcl9kIHBhcmFtZXRyaWMgcGFyYW1ldHJpY19zdXJmYWNlJ1xuICAgICsgJyBwYXJnIHBhckdvc3BlciBwYXJzZV9zdHJpbmcgcGFyc2VfdGltZWRhdGUgcGFydCBwYXJ0MmNvbnQgcGFydGZyYWMgcGFydGl0aW9uJ1xuICAgICsgJyBwYXJ0aXRpb25fc2V0IHBhcnRwb2wgcGF0aF9kaWdyYXBoIHBhdGhfZ3JhcGggcGF0aG5hbWVfZGlyZWN0b3J5IHBhdGhuYW1lX25hbWUnXG4gICAgKyAnIHBhdGhuYW1lX3R5cGUgcGRmX2Jlcm5vdWxsaSBwZGZfYmV0YSBwZGZfYmlub21pYWwgcGRmX2NhdWNoeSBwZGZfY2hpMiBwZGZfY29udGludW91c191bmlmb3JtJ1xuICAgICsgJyBwZGZfZGlzY3JldGVfdW5pZm9ybSBwZGZfZXhwIHBkZl9mIHBkZl9nYW1tYSBwZGZfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUnXG4gICAgKyAnIHBkZl9nZW9tZXRyaWMgcGRmX2d1bWJlbCBwZGZfaHlwZXJnZW9tZXRyaWMgcGRmX2xhcGxhY2UgcGRmX2xvZ2lzdGljIHBkZl9sb2dub3JtYWwnXG4gICAgKyAnIHBkZl9uZWdhdGl2ZV9iaW5vbWlhbCBwZGZfbm9uY2VudHJhbF9jaGkyIHBkZl9ub25jZW50cmFsX3N0dWRlbnRfdCBwZGZfbm9ybWFsJ1xuICAgICsgJyBwZGZfcGFyZXRvIHBkZl9wb2lzc29uIHBkZl9yYW5rX3N1bSBwZGZfcmF5bGVpZ2ggcGRmX3NpZ25lZF9yYW5rIHBkZl9zdHVkZW50X3QnXG4gICAgKyAnIHBkZl93ZWlidWxsIHBlYXJzb25fc2tld25lc3MgcGVybWFuZW50IHBlcm11dCBwZXJtdXRhdGlvbiBwZXJtdXRhdGlvbnMgcGV0ZXJzZW5fZ3JhcGgnXG4gICAgKyAnIHBldHJvdiBwaWNrYXBhcnQgcGljdHVyZV9lcXVhbHAgcGljdHVyZXAgcGllY2hhcnQgcGllY2hhcnRfZGVzY3JpcHRpb24gcGxhbmFyX2VtYmVkZGluZydcbiAgICArICcgcGxheWJhY2sgcGxvZyBwbG90MmQgcGxvdDNkIHBsb3RkZiBwbG90ZXEgcGxzcXVhcmVzIHBvY2hoYW1tZXIgcG9pbnRzIHBvaXNkaWZmJ1xuICAgICsgJyBwb2lzZXhwdCBwb2lzaW50IHBvaXNtYXAgcG9pc3BsdXMgcG9pc3NpbXAgcG9pc3N1YnN0IHBvaXN0aW1lcyBwb2lzdHJpbSBwb2xhcidcbiAgICArICcgcG9sYXJmb3JtIHBvbGFydG9yZWN0IHBvbGFyX3RvX3h5IHBvbHlfYWRkIHBvbHlfYnVjaGJlcmdlciBwb2x5X2J1Y2hiZXJnZXJfY3JpdGVyaW9uJ1xuICAgICsgJyBwb2x5X2NvbG9uX2lkZWFsIHBvbHlfY29udGVudCBwb2x5ZGVjb21wIHBvbHlfZGVwZW5kc19wIHBvbHlfZWxpbWluYXRpb25faWRlYWwnXG4gICAgKyAnIHBvbHlfZXhhY3RfZGl2aWRlIHBvbHlfZXhwYW5kIHBvbHlfZXhwdCBwb2x5X2djZCBwb2x5Z29uIHBvbHlfZ3JvYm5lciBwb2x5X2dyb2JuZXJfZXF1YWwnXG4gICAgKyAnIHBvbHlfZ3JvYm5lcl9tZW1iZXIgcG9seV9ncm9ibmVyX3N1YnNldHAgcG9seV9pZGVhbF9pbnRlcnNlY3Rpb24gcG9seV9pZGVhbF9wb2x5c2F0dXJhdGlvbidcbiAgICArICcgcG9seV9pZGVhbF9wb2x5c2F0dXJhdGlvbjEgcG9seV9pZGVhbF9zYXR1cmF0aW9uIHBvbHlfaWRlYWxfc2F0dXJhdGlvbjEgcG9seV9sY20nXG4gICAgKyAnIHBvbHlfbWluaW1pemF0aW9uIHBvbHltb2QgcG9seV9tdWx0aXBseSBwb2x5bm9tZTJlbGUgcG9seW5vbWlhbHAgcG9seV9ub3JtYWxfZm9ybSdcbiAgICArICcgcG9seV9ub3JtYWxpemUgcG9seV9ub3JtYWxpemVfbGlzdCBwb2x5X3BvbHlzYXR1cmF0aW9uX2V4dGVuc2lvbiBwb2x5X3ByaW1pdGl2ZV9wYXJ0J1xuICAgICsgJyBwb2x5X3BzZXVkb19kaXZpZGUgcG9seV9yZWR1Y2VkX2dyb2JuZXIgcG9seV9yZWR1Y3Rpb24gcG9seV9zYXR1cmF0aW9uX2V4dGVuc2lvbidcbiAgICArICcgcG9seV9zX3BvbHlub21pYWwgcG9seV9zdWJ0cmFjdCBwb2x5dG9jb21wYW5pb24gcG9wIHBvc3RmaXggcG90ZW50aWFsIHBvd2VyX21vZCdcbiAgICArICcgcG93ZXJzZXJpZXMgcG93ZXJzZXQgcHJlZml4IHByZXZfcHJpbWUgcHJpbWVwIHByaW1lcyBwcmluY2lwYWxfY29tcG9uZW50cydcbiAgICArICcgcHJpbnQgcHJpbnRmIHByaW50ZmlsZSBwcmludF9ncmFwaCBwcmludHBvaXMgcHJpbnRwcm9wcyBwcm9kcmFjIHByb2R1Y3QgcHJvcGVydGllcydcbiAgICArICcgcHJvcHZhcnMgcHNpIHBzdWJzdCBwdHJpYW5ndWxhcml6ZSBwdWkgcHVpMmNvbXAgcHVpMmVsZSBwdWkycG9seW5vbWUgcHVpX2RpcmVjdCdcbiAgICArICcgcHVpcmVkdWMgcHVzaCBwdXQgcHYgcXB1dCBxcmFuZ2UgcXR5IHF1YWRfY29udHJvbCBxdWFkX3FhZyBxdWFkX3FhZ2kgcXVhZF9xYWdwJ1xuICAgICsgJyBxdWFkX3FhZ3MgcXVhZF9xYXdjIHF1YWRfcWF3ZiBxdWFkX3Fhd28gcXVhZF9xYXdzIHF1YWRyaWxhdGVyYWwgcXVhbnRpbGUnXG4gICAgKyAnIHF1YW50aWxlX2Jlcm5vdWxsaSBxdWFudGlsZV9iZXRhIHF1YW50aWxlX2Jpbm9taWFsIHF1YW50aWxlX2NhdWNoeSBxdWFudGlsZV9jaGkyJ1xuICAgICsgJyBxdWFudGlsZV9jb250aW51b3VzX3VuaWZvcm0gcXVhbnRpbGVfZGlzY3JldGVfdW5pZm9ybSBxdWFudGlsZV9leHAgcXVhbnRpbGVfZidcbiAgICArICcgcXVhbnRpbGVfZ2FtbWEgcXVhbnRpbGVfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcXVhbnRpbGVfZ2VvbWV0cmljIHF1YW50aWxlX2d1bWJlbCdcbiAgICArICcgcXVhbnRpbGVfaHlwZXJnZW9tZXRyaWMgcXVhbnRpbGVfbGFwbGFjZSBxdWFudGlsZV9sb2dpc3RpYyBxdWFudGlsZV9sb2dub3JtYWwnXG4gICAgKyAnIHF1YW50aWxlX25lZ2F0aXZlX2Jpbm9taWFsIHF1YW50aWxlX25vbmNlbnRyYWxfY2hpMiBxdWFudGlsZV9ub25jZW50cmFsX3N0dWRlbnRfdCdcbiAgICArICcgcXVhbnRpbGVfbm9ybWFsIHF1YW50aWxlX3BhcmV0byBxdWFudGlsZV9wb2lzc29uIHF1YW50aWxlX3JheWxlaWdoIHF1YW50aWxlX3N0dWRlbnRfdCdcbiAgICArICcgcXVhbnRpbGVfd2VpYnVsbCBxdWFydGlsZV9za2V3bmVzcyBxdWl0IHF1bml0IHF1b3RpZW50IHJhY2FoX3YgcmFjYWhfdyByYWRjYW4nXG4gICAgKyAnIHJhZGl1cyByYW5kb20gcmFuZG9tX2Jlcm5vdWxsaSByYW5kb21fYmV0YSByYW5kb21fYmlub21pYWwgcmFuZG9tX2JpcGFydGl0ZV9ncmFwaCdcbiAgICArICcgcmFuZG9tX2NhdWNoeSByYW5kb21fY2hpMiByYW5kb21fY29udGludW91c191bmlmb3JtIHJhbmRvbV9kaWdyYXBoIHJhbmRvbV9kaXNjcmV0ZV91bmlmb3JtJ1xuICAgICsgJyByYW5kb21fZXhwIHJhbmRvbV9mIHJhbmRvbV9nYW1tYSByYW5kb21fZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgcmFuZG9tX2dlb21ldHJpYydcbiAgICArICcgcmFuZG9tX2dyYXBoIHJhbmRvbV9ncmFwaDEgcmFuZG9tX2d1bWJlbCByYW5kb21faHlwZXJnZW9tZXRyaWMgcmFuZG9tX2xhcGxhY2UnXG4gICAgKyAnIHJhbmRvbV9sb2dpc3RpYyByYW5kb21fbG9nbm9ybWFsIHJhbmRvbV9uZWdhdGl2ZV9iaW5vbWlhbCByYW5kb21fbmV0d29yaydcbiAgICArICcgcmFuZG9tX25vbmNlbnRyYWxfY2hpMiByYW5kb21fbm9uY2VudHJhbF9zdHVkZW50X3QgcmFuZG9tX25vcm1hbCByYW5kb21fcGFyZXRvJ1xuICAgICsgJyByYW5kb21fcGVybXV0YXRpb24gcmFuZG9tX3BvaXNzb24gcmFuZG9tX3JheWxlaWdoIHJhbmRvbV9yZWd1bGFyX2dyYXBoIHJhbmRvbV9zdHVkZW50X3QnXG4gICAgKyAnIHJhbmRvbV90b3VybmFtZW50IHJhbmRvbV90cmVlIHJhbmRvbV93ZWlidWxsIHJhbmdlIHJhbmsgcmF0IHJhdGNvZWYgcmF0ZGVub20nXG4gICAgKyAnIHJhdGRpZmYgcmF0ZGlzcmVwIHJhdGV4cGFuZCByYXRpbnRlcnBvbCByYXRpb25hbCByYXRpb25hbGl6ZSByYXRudW1lciByYXRudW1wJ1xuICAgICsgJyByYXRwIHJhdHNpbXAgcmF0c3Vic3QgcmF0dmFycyByYXR3ZWlnaHQgcmVhZCByZWFkX2FycmF5IHJlYWRfYmluYXJ5X2FycmF5J1xuICAgICsgJyByZWFkX2JpbmFyeV9saXN0IHJlYWRfYmluYXJ5X21hdHJpeCByZWFkYnl0ZSByZWFkY2hhciByZWFkX2hhc2hlZF9hcnJheSByZWFkbGluZSdcbiAgICArICcgcmVhZF9saXN0IHJlYWRfbWF0cml4IHJlYWRfbmVzdGVkX2xpc3QgcmVhZG9ubHkgcmVhZF94cG0gcmVhbF9pbWFncGFydF90b19jb25qdWdhdGUnXG4gICAgKyAnIHJlYWxwYXJ0IHJlYWxyb290cyByZWFycmF5IHJlY3RhbmdsZSByZWN0Zm9ybSByZWN0Zm9ybV9sb2dfaWZfY29uc3RhbnQgcmVjdHRvcG9sYXInXG4gICAgKyAnIHJlZGlmZiByZWR1Y2VfY29uc3RzIHJlZHVjZV9vcmRlciByZWdpb24gcmVnaW9uX2JvdW5kYXJpZXMgcmVnaW9uX2JvdW5kYXJpZXNfcGx1cydcbiAgICArICcgcmVtIHJlbWFpbmRlciByZW1hcnJheSByZW1ib3ggcmVtY29tcHMgcmVtY29uIHJlbWNvb3JkIHJlbWZ1biByZW1mdW5jdGlvbidcbiAgICArICcgcmVtbGV0IHJlbW92ZSByZW1vdmVfY29uc3R2YWx1ZSByZW1vdmVfZGltZW5zaW9ucyByZW1vdmVfZWRnZSByZW1vdmVfZnVuZGFtZW50YWxfZGltZW5zaW9ucydcbiAgICArICcgcmVtb3ZlX2Z1bmRhbWVudGFsX3VuaXRzIHJlbW92ZV9wbG90X29wdGlvbiByZW1vdmVfdmVydGV4IHJlbXBhcnQgcmVtcnVsZSdcbiAgICArICcgcmVtc3ltIHJlbXZhbHVlIHJlbmFtZSByZW5hbWVfZmlsZSByZXNldCByZXNldF9kaXNwbGF5cyByZXNpZHVlIHJlc29sdmFudGUnXG4gICAgKyAnIHJlc29sdmFudGVfYWx0ZXJuZWUxIHJlc29sdmFudGVfYmlwYXJ0aXRlIHJlc29sdmFudGVfZGllZHJhbGUgcmVzb2x2YW50ZV9rbGVpbidcbiAgICArICcgcmVzb2x2YW50ZV9rbGVpbjMgcmVzb2x2YW50ZV9wcm9kdWl0X3N5bSByZXNvbHZhbnRlX3VuaXRhaXJlIHJlc29sdmFudGVfdmllcmVyJ1xuICAgICsgJyByZXN0IHJlc3VsdGFudCByZXR1cm4gcmV2ZWFsIHJldmVyc2UgcmV2ZXJ0IHJldmVydDIgcmdiMmxldmVsIHJocyByaWNjaSByaWVtYW5uJ1xuICAgICsgJyByaW52YXJpYW50IHJpc2NoIHJrIHJtZGlyIHJuY29tYmluZSByb21iZXJnIHJvb20gcm9vdHNjb250cmFjdCByb3VuZCByb3cnXG4gICAgKyAnIHJvd29wIHJvd3N3YXAgcnJlZHVjZSBydW5fdGVzdHN1aXRlICVzIHNhdmUgc2F2aW5nIHNjYWxhcnAgc2NhbGVkX2Jlc3NlbF9pJ1xuICAgICsgJyBzY2FsZWRfYmVzc2VsX2kwIHNjYWxlZF9iZXNzZWxfaTEgc2NhbGVmYWN0b3JzIHNjYW5tYXAgc2NhdHRlcnBsb3Qgc2NhdHRlcnBsb3RfZGVzY3JpcHRpb24nXG4gICAgKyAnIHNjZW5lIHNjaHVyMmNvbXAgc2NvbmNhdCBzY29weSBzY3NpbXAgc2N1cnZhdHVyZSBzZG93bmNhc2Ugc2VjIHNlY2ggc2Vjb25kJ1xuICAgICsgJyBzZXF1YWwgc2VxdWFsaWdub3JlIHNldF9hbHRfZGlzcGxheSBzZXRkaWZmZXJlbmNlIHNldF9kcmF3X2RlZmF1bHRzIHNldF9lZGdlX3dlaWdodCdcbiAgICArICcgc2V0ZWxteCBzZXRlcXVhbHAgc2V0aWZ5IHNldHAgc2V0X3BhcnRpdGlvbnMgc2V0X3Bsb3Rfb3B0aW9uIHNldF9wcm9tcHQgc2V0X3JhbmRvbV9zdGF0ZSdcbiAgICArICcgc2V0X3RleF9lbnZpcm9ubWVudCBzZXRfdGV4X2Vudmlyb25tZW50X2RlZmF1bHQgc2V0dW5pdHMgc2V0dXBfYXV0b2xvYWQgc2V0X3VwX2RvdF9zaW1wbGlmaWNhdGlvbnMnXG4gICAgKyAnIHNldF92ZXJ0ZXhfbGFiZWwgc2V2ZW50aCBzZXhwbG9kZSBzZiBzaGExc3VtIHNoYTI1NnN1bSBzaG9ydGVzdF9wYXRoIHNob3J0ZXN0X3dlaWdodGVkX3BhdGgnXG4gICAgKyAnIHNob3cgc2hvd2NvbXBzIHNob3dyYXR2YXJzIHNpZXJwaW5za2lhbGUgc2llcnBpbnNraW1hcCBzaWduIHNpZ251bSBzaW1pbGFyaXR5dHJhbnNmb3JtJ1xuICAgICsgJyBzaW1wX2luZXF1YWxpdHkgc2ltcGxpZnlfc3VtIHNpbXBsb2RlIHNpbXBtZXRkZXJpdiBzaW10cmFuIHNpbiBzaW5oIHNpbnNlcnQnXG4gICAgKyAnIHNpbnZlcnRjYXNlIHNpeHRoIHNrZXduZXNzIHNrZXduZXNzX2Jlcm5vdWxsaSBza2V3bmVzc19iZXRhIHNrZXduZXNzX2Jpbm9taWFsJ1xuICAgICsgJyBza2V3bmVzc19jaGkyIHNrZXduZXNzX2NvbnRpbnVvdXNfdW5pZm9ybSBza2V3bmVzc19kaXNjcmV0ZV91bmlmb3JtIHNrZXduZXNzX2V4cCdcbiAgICArICcgc2tld25lc3NfZiBza2V3bmVzc19nYW1tYSBza2V3bmVzc19nZW5lcmFsX2Zpbml0ZV9kaXNjcmV0ZSBza2V3bmVzc19nZW9tZXRyaWMnXG4gICAgKyAnIHNrZXduZXNzX2d1bWJlbCBza2V3bmVzc19oeXBlcmdlb21ldHJpYyBza2V3bmVzc19sYXBsYWNlIHNrZXduZXNzX2xvZ2lzdGljJ1xuICAgICsgJyBza2V3bmVzc19sb2dub3JtYWwgc2tld25lc3NfbmVnYXRpdmVfYmlub21pYWwgc2tld25lc3Nfbm9uY2VudHJhbF9jaGkyIHNrZXduZXNzX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICsgJyBza2V3bmVzc19ub3JtYWwgc2tld25lc3NfcGFyZXRvIHNrZXduZXNzX3BvaXNzb24gc2tld25lc3NfcmF5bGVpZ2ggc2tld25lc3Nfc3R1ZGVudF90J1xuICAgICsgJyBza2V3bmVzc193ZWlidWxsIHNsZW5ndGggc21ha2Ugc21hbGxfcmhvbWJpY29zaWRvZGVjYWhlZHJvbl9ncmFwaCBzbWFsbF9yaG9tYmljdWJvY3RhaGVkcm9uX2dyYXBoJ1xuICAgICsgJyBzbWF4IHNtaW4gc21pc21hdGNoIHNub3dtYXAgc251Yl9jdWJlX2dyYXBoIHNudWJfZG9kZWNhaGVkcm9uX2dyYXBoIHNvbHZlJ1xuICAgICsgJyBzb2x2ZV9yZWMgc29sdmVfcmVjX3JhdCBzb21lIHNvbXJhYyBzb3J0IHNwYXJzZTZfZGVjb2RlIHNwYXJzZTZfZW5jb2RlIHNwYXJzZTZfZXhwb3J0J1xuICAgICsgJyBzcGFyc2U2X2ltcG9ydCBzcGVjaW50IHNwaGVyaWNhbCBzcGhlcmljYWxfYmVzc2VsX2ogc3BoZXJpY2FsX2Jlc3NlbF95IHNwaGVyaWNhbF9oYW5rZWwxJ1xuICAgICsgJyBzcGhlcmljYWxfaGFua2VsMiBzcGhlcmljYWxfaGFybW9uaWMgc3BoZXJpY2FsX3RvX3h5eiBzcGxpY2Ugc3BsaXQgc3Bvc2l0aW9uJ1xuICAgICsgJyBzcHJpbnQgc3FmciBzcXJ0IHNxcnRkZW5lc3Qgc3JlbW92ZSBzcmVtb3ZlZmlyc3Qgc3JldmVyc2Ugc3NlYXJjaCBzc29ydCBzc3RhdHVzJ1xuICAgICsgJyBzc3Vic3Qgc3N1YnN0Zmlyc3Qgc3RhaXJjYXNlIHN0YW5kYXJkaXplIHN0YW5kYXJkaXplX2ludmVyc2VfdHJpZyBzdGFycGxvdCdcbiAgICArICcgc3RhcnBsb3RfZGVzY3JpcHRpb24gc3RhdHVzIHN0ZCBzdGQxIHN0ZF9iZXJub3VsbGkgc3RkX2JldGEgc3RkX2Jpbm9taWFsJ1xuICAgICsgJyBzdGRfY2hpMiBzdGRfY29udGludW91c191bmlmb3JtIHN0ZF9kaXNjcmV0ZV91bmlmb3JtIHN0ZF9leHAgc3RkX2Ygc3RkX2dhbW1hJ1xuICAgICsgJyBzdGRfZ2VuZXJhbF9maW5pdGVfZGlzY3JldGUgc3RkX2dlb21ldHJpYyBzdGRfZ3VtYmVsIHN0ZF9oeXBlcmdlb21ldHJpYyBzdGRfbGFwbGFjZSdcbiAgICArICcgc3RkX2xvZ2lzdGljIHN0ZF9sb2dub3JtYWwgc3RkX25lZ2F0aXZlX2Jpbm9taWFsIHN0ZF9ub25jZW50cmFsX2NoaTIgc3RkX25vbmNlbnRyYWxfc3R1ZGVudF90J1xuICAgICsgJyBzdGRfbm9ybWFsIHN0ZF9wYXJldG8gc3RkX3BvaXNzb24gc3RkX3JheWxlaWdoIHN0ZF9zdHVkZW50X3Qgc3RkX3dlaWJ1bGwnXG4gICAgKyAnIHN0ZW1wbG90IHN0aXJsaW5nIHN0aXJsaW5nMSBzdGlybGluZzIgc3RyaW0gc3RyaW1sIHN0cmltciBzdHJpbmcgc3RyaW5nb3V0J1xuICAgICsgJyBzdHJpbmdwIHN0cm9uZ19jb21wb25lbnRzIHN0cnV2ZV9oIHN0cnV2ZV9sIHN1YmxpcyBzdWJsaXN0IHN1Ymxpc3RfaW5kaWNlcydcbiAgICArICcgc3VibWF0cml4IHN1YnNhbXBsZSBzdWJzZXQgc3Vic2V0cCBzdWJzdCBzdWJzdGlucGFydCBzdWJzdF9wYXJhbGxlbCBzdWJzdHBhcnQnXG4gICAgKyAnIHN1YnN0cmluZyBzdWJ2YXIgc3VidmFycCBzdW0gc3VtY29udHJhY3Qgc3VtbWFuZF90b19yZWMgc3VwY2FzZSBzdXBjb250ZXh0J1xuICAgICsgJyBzeW1ib2xwIHN5bW1kaWZmZXJlbmNlIHN5bW1ldHJpY3Agc3lzdGVtIHRha2VfY2hhbm5lbCB0YWtlX2luZmVyZW5jZSB0YW4nXG4gICAgKyAnIHRhbmggdGF5bG9yIHRheWxvcmluZm8gdGF5bG9ycCB0YXlsb3Jfc2ltcGxpZmllciB0YXl0b3JhdCB0Y2xfb3V0cHV0IHRjb250cmFjdCdcbiAgICArICcgdGVsbHJhdCB0ZWxsc2ltcCB0ZWxsc2ltcGFmdGVyIHRlbnRleCB0ZW50aCB0ZXN0X21lYW4gdGVzdF9tZWFuc19kaWZmZXJlbmNlJ1xuICAgICsgJyB0ZXN0X25vcm1hbGl0eSB0ZXN0X3Byb3BvcnRpb24gdGVzdF9wcm9wb3J0aW9uc19kaWZmZXJlbmNlIHRlc3RfcmFua19zdW0nXG4gICAgKyAnIHRlc3Rfc2lnbiB0ZXN0X3NpZ25lZF9yYW5rIHRlc3RfdmFyaWFuY2UgdGVzdF92YXJpYW5jZV9yYXRpbyB0ZXggdGV4MSB0ZXhfZGlzcGxheSdcbiAgICArICcgdGV4cHV0ICV0aCB0aGlyZCB0aHJvdyB0aW1lIHRpbWVkYXRlIHRpbWVyIHRpbWVyX2luZm8gdGxkZWZpbnQgdGxpbWl0IHRvZGRfY294ZXRlcidcbiAgICArICcgdG9lcGxpdHogdG9rZW5zIHRvX2xpc3AgdG9wb2xvZ2ljYWxfc29ydCB0b19wb2x5IHRvX3BvbHlfc29sdmUgdG90YWxkaXNyZXAnXG4gICAgKyAnIHRvdGFsZm91cmllciB0b3RpZW50IHRwYXJ0cG9sIHRyYWNlIHRyYWNlbWF0cml4IHRyYWNlX29wdGlvbnMgdHJhbnNmb3JtX3NhbXBsZSdcbiAgICArICcgdHJhbnNsYXRlIHRyYW5zbGF0ZV9maWxlIHRyYW5zcG9zZSB0cmVlZmFsZSB0cmVlX3JlZHVjZSB0cmVpbGxpcyB0cmVpbmF0J1xuICAgICsgJyB0cmlhbmdsZSB0cmlhbmd1bGFyaXplIHRyaWdleHBhbmQgdHJpZ3JhdCB0cmlncmVkdWNlIHRyaWdzaW1wIHRydW5jIHRydW5jYXRlJ1xuICAgICsgJyB0cnVuY2F0ZWRfY3ViZV9ncmFwaCB0cnVuY2F0ZWRfZG9kZWNhaGVkcm9uX2dyYXBoIHRydW5jYXRlZF9pY29zYWhlZHJvbl9ncmFwaCdcbiAgICArICcgdHJ1bmNhdGVkX3RldHJhaGVkcm9uX2dyYXBoIHRyX3dhcm5pbmdzX2dldCB0dWJlIHR1dHRlX2dyYXBoIHVlaXZlY3RzIHVmb3JnZXQnXG4gICAgKyAnIHVsdHJhc3BoZXJpY2FsIHVuZGVybHlpbmdfZ3JhcGggdW5kaWZmIHVuaW9uIHVuaXF1ZSB1bml0ZWlnZW52ZWN0b3JzIHVuaXRwJ1xuICAgICsgJyB1bml0cyB1bml0X3N0ZXAgdW5pdHZlY3RvciB1bm9yZGVyIHVuc3VtIHVudGVsbHJhdCB1bnRpbWVyJ1xuICAgICsgJyB1bnRyYWNlIHVwcGVyY2FzZXAgdXJpY2NpIHVyaWVtYW5uIHV2ZWN0IHZhbmRlcm1vbmRlX21hdHJpeCB2YXIgdmFyMSB2YXJfYmVybm91bGxpJ1xuICAgICsgJyB2YXJfYmV0YSB2YXJfYmlub21pYWwgdmFyX2NoaTIgdmFyX2NvbnRpbnVvdXNfdW5pZm9ybSB2YXJfZGlzY3JldGVfdW5pZm9ybSdcbiAgICArICcgdmFyX2V4cCB2YXJfZiB2YXJfZ2FtbWEgdmFyX2dlbmVyYWxfZmluaXRlX2Rpc2NyZXRlIHZhcl9nZW9tZXRyaWMgdmFyX2d1bWJlbCdcbiAgICArICcgdmFyX2h5cGVyZ2VvbWV0cmljIHZhcl9sYXBsYWNlIHZhcl9sb2dpc3RpYyB2YXJfbG9nbm9ybWFsIHZhcl9uZWdhdGl2ZV9iaW5vbWlhbCdcbiAgICArICcgdmFyX25vbmNlbnRyYWxfY2hpMiB2YXJfbm9uY2VudHJhbF9zdHVkZW50X3QgdmFyX25vcm1hbCB2YXJfcGFyZXRvIHZhcl9wb2lzc29uJ1xuICAgICsgJyB2YXJfcmF5bGVpZ2ggdmFyX3N0dWRlbnRfdCB2YXJfd2VpYnVsbCB2ZWN0b3IgdmVjdG9ycG90ZW50aWFsIHZlY3RvcnNpbXAnXG4gICAgKyAnIHZlcmJpZnkgdmVycyB2ZXJ0ZXhfY29sb3JpbmcgdmVydGV4X2Nvbm5lY3Rpdml0eSB2ZXJ0ZXhfZGVncmVlIHZlcnRleF9kaXN0YW5jZSdcbiAgICArICcgdmVydGV4X2VjY2VudHJpY2l0eSB2ZXJ0ZXhfaW5fZGVncmVlIHZlcnRleF9vdXRfZGVncmVlIHZlcnRpY2VzIHZlcnRpY2VzX3RvX2N5Y2xlJ1xuICAgICsgJyB2ZXJ0aWNlc190b19wYXRoICV3IHdleWwgd2hlZWxfZ3JhcGggd2llbmVyX2luZGV4IHdpZ25lcl8zaiB3aWduZXJfNmonXG4gICAgKyAnIHdpZ25lcl85aiB3aXRoX3N0ZG91dCB3cml0ZV9iaW5hcnlfZGF0YSB3cml0ZWJ5dGUgd3JpdGVfZGF0YSB3cml0ZWZpbGUgd3JvbnNraWFuJ1xuICAgICsgJyB4cmVkdWNlIHh0aHJ1ICV5IFplaWxiZXJnZXIgemVyb2VxdWl2IHplcm9mb3IgemVyb21hdHJpeCB6ZXJvbWF0cml4cCB6ZXRhJ1xuICAgICsgJyB6Z2VldiB6aGVldiB6bGFuZ2Ugem5fYWRkX3RhYmxlIHpuX2Nhcm1pY2hhZWxfbGFtYmRhIHpuX2NoYXJhY3RlcmlzdGljX2ZhY3RvcnMnXG4gICAgKyAnIHpuX2RldGVybWluYW50IHpuX2ZhY3Rvcl9nZW5lcmF0b3JzIHpuX2ludmVydF9ieV9sdSB6bl9sb2cgem5fbXVsdF90YWJsZSdcbiAgICArICcgYWJzYm94Y2hhciBhY3RpdmVjb250ZXh0cyBhZGFwdF9kZXB0aCBhZGRpdGl2ZSBhZGltIGFmb3JtIGFsZ2VicmFpYydcbiAgICArICcgYWxnZXBzaWxvbiBhbGdleGFjdCBhbGlhc2VzIGFsbGJ1dCBhbGxfZG90c2ltcF9kZW5vbXMgYWxsb2NhdGlvbiBhbGxzeW0gYWxwaGFiZXRpYydcbiAgICArICcgYW5pbWF0aW9uIGFudGlzeW1tZXRyaWMgYXJyYXlzIGFza2V4cCBhc3N1bWVfcG9zIGFzc3VtZV9wb3NfcHJlZCBhc3N1bWVzY2FsYXInXG4gICAgKyAnIGFzeW1ib2wgYXRvbWdyYWQgYXRyaWcxIGF4ZXMgYXhpc18zZCBheGlzX2JvdHRvbSBheGlzX2xlZnQgYXhpc19yaWdodCBheGlzX3RvcCdcbiAgICArICcgYXppbXV0aCBiYWNrZ3JvdW5kIGJhY2tncm91bmRfY29sb3IgYmFja3N1YnN0IGJlcmxlZmFjdCBiZXJuc3RlaW5fZXhwbGljaXQnXG4gICAgKyAnIGJlc3NlbGV4cGFuZCBiZXRhX2FyZ3Nfc3VtX3RvX2ludGVnZXIgYmV0YV9leHBhbmQgYmZ0b3JhdCBiZnRydW5jIGJpbmR0ZXN0J1xuICAgICsgJyBib3JkZXIgYm91bmRhcmllc19hcnJheSBib3ggYm94Y2hhciBicmVha3VwICVjIGNhcHBpbmcgY2F1Y2h5c3VtIGNicmFuZ2UnXG4gICAgKyAnIGNidGljcyBjZW50ZXIgY2ZsZW5ndGggY2ZyYW1lX2ZsYWcgY25vbm1ldF9mbGFnIGNvbG9yIGNvbG9yX2JhciBjb2xvcl9iYXJfdGljcydcbiAgICArICcgY29sb3Jib3ggY29sdW1ucyBjb21tdXRhdGl2ZSBjb21wbGV4IGNvbmUgY29udGV4dCBjb250ZXh0cyBjb250b3VyIGNvbnRvdXJfbGV2ZWxzJ1xuICAgICsgJyBjb3NucGlmbGFnIGN0YXlwb3YgY3RheXB0IGN0YXlzd2l0Y2ggY3RheXZhciBjdF9jb29yZHMgY3RvcnNpb25fZmxhZyBjdHJnc2ltcCdcbiAgICArICcgY3ViZSBjdXJyZW50X2xldF9ydWxlX3BhY2thZ2UgY3lsaW5kZXIgZGF0YV9maWxlX25hbWUgZGVidWdtb2RlIGRlY3JlYXNpbmcnXG4gICAgKyAnIGRlZmF1bHRfbGV0X3J1bGVfcGFja2FnZSBkZWxheSBkZXBlbmRlbmNpZXMgZGVyaXZhYmJyZXYgZGVyaXZzdWJzdCBkZXRvdXQnXG4gICAgKyAnIGRpYWdtZXRyaWMgZGlmZiBkaW0gZGltZW5zaW9ucyBkaXNwZmxhZyBkaXNwbGF5MmR8MTAgZGlzcGxheV9mb3JtYXRfaW50ZXJuYWwnXG4gICAgKyAnIGRpc3RyaWJ1dGVfb3ZlciBkb2FsbG14b3BzIGRvbWFpbiBkb214ZXhwdCBkb214bXhvcHMgZG9teG5jdGltZXMgZG9udGZhY3RvcidcbiAgICArICcgZG9zY214b3BzIGRvc2NteHBsdXMgZG90MG5zY3NpbXAgZG90MHNpbXAgZG90MXNpbXAgZG90YXNzb2MgZG90Y29uc3RydWxlcydcbiAgICArICcgZG90ZGlzdHJpYiBkb3RleHB0c2ltcCBkb3RpZGVudCBkb3RzY3J1bGVzIGRyYXdfZ3JhcGhfcHJvZ3JhbSBkcmF3X3JlYWxwYXJ0J1xuICAgICsgJyBlZGdlX2NvbG9yIGVkZ2VfY29sb3JpbmcgZWRnZV9wYXJ0aXRpb24gZWRnZV90eXBlIGVkZ2Vfd2lkdGggJWVkaXNwZmxhZydcbiAgICArICcgZWxldmF0aW9uICVlbW9kZSBlbmRwaGkgZW5kdGhldGEgZW5naW5lZXJpbmdfZm9ybWF0X2Zsb2F0cyBlbmhhbmNlZDNkICVlbnVtZXInXG4gICAgKyAnIGVwc2lsb25fbHAgZXJmZmxhZyBlcmZfcmVwcmVzZW50YXRpb24gZXJyb3Jtc2cgZXJyb3Jfc2l6ZSBlcnJvcl9zeW1zIGVycm9yX3R5cGUnXG4gICAgKyAnICVlX3RvX251bWxvZyBldmFsIGV2ZW4gZXZlbmZ1biBldmZsYWcgZXZmdW4gZXZfcG9pbnQgZXhwYW5kd3J0X2Rlbm9tIGV4cGludGV4cGFuZCdcbiAgICArICcgZXhwaW50cmVwIGV4cG9uIGV4cG9wIGV4cHRkaXNwZmxhZyBleHB0aXNvbGF0ZSBleHB0c3Vic3QgZmFjZXhwYW5kIGZhY3N1bV9jb21iaW5lJ1xuICAgICsgJyBmYWN0bGltIGZhY3RvcmZsYWcgZmFjdG9yaWFsX2V4cGFuZCBmYWN0b3JzX29ubHkgZmIgZmVhdHVyZSBmZWF0dXJlcydcbiAgICArICcgZmlsZV9uYW1lIGZpbGVfb3V0cHV0X2FwcGVuZCBmaWxlX3NlYXJjaF9kZW1vIGZpbGVfc2VhcmNoX2xpc3AgZmlsZV9zZWFyY2hfbWF4aW1hfDEwJ1xuICAgICsgJyBmaWxlX3NlYXJjaF90ZXN0cyBmaWxlX3NlYXJjaF91c2FnZSBmaWxlX3R5cGVfbGlzcCBmaWxlX3R5cGVfbWF4aW1hfDEwIGZpbGxfY29sb3InXG4gICAgKyAnIGZpbGxfZGVuc2l0eSBmaWxsZWRfZnVuYyBmaXhlZF92ZXJ0aWNlcyBmbGlwZmxhZyBmbG9hdDJiZiBmb250IGZvbnRfc2l6ZSdcbiAgICArICcgZm9ydGluZGVudCBmb3J0c3BhY2VzIGZwcHJlYyBmcHByaW50cHJlYyBmdW5jdGlvbnMgZ2FtbWFfZXhwYW5kIGdhbW1hbGltJ1xuICAgICsgJyBnZGV0IGdlbmluZGV4IGdlbnN1bW51bSBHR0ZDRk1BWCBHR0ZJTkZJTklUWSBnbG9iYWxzb2x2ZSBnbnVwbG90X2NvbW1hbmQnXG4gICAgKyAnIGdudXBsb3RfY3VydmVfc3R5bGVzIGdudXBsb3RfY3VydmVfdGl0bGVzIGdudXBsb3RfZGVmYXVsdF90ZXJtX2NvbW1hbmQgZ251cGxvdF9kdW1iX3Rlcm1fY29tbWFuZCdcbiAgICArICcgZ251cGxvdF9maWxlX2FyZ3MgZ251cGxvdF9maWxlX25hbWUgZ251cGxvdF9vdXRfZmlsZSBnbnVwbG90X3BkZl90ZXJtX2NvbW1hbmQnXG4gICAgKyAnIGdudXBsb3RfcG0zZCBnbnVwbG90X3BuZ190ZXJtX2NvbW1hbmQgZ251cGxvdF9wb3N0YW1ibGUgZ251cGxvdF9wcmVhbWJsZSdcbiAgICArICcgZ251cGxvdF9wc190ZXJtX2NvbW1hbmQgZ251cGxvdF9zdmdfdGVybV9jb21tYW5kIGdudXBsb3RfdGVybSBnbnVwbG90X3ZpZXdfYXJncydcbiAgICArICcgR29zcGVyX2luX1plaWxiZXJnZXIgZ3JhZGVmcyBncmlkIGdyaWQyZCBncmluZCBoYWxmYW5nbGVzIGhlYWRfYW5nbGUgaGVhZF9ib3RoJ1xuICAgICsgJyBoZWFkX2xlbmd0aCBoZWFkX3R5cGUgaGVpZ2h0IGh5cGVyZ2VvbWV0cmljX3JlcHJlc2VudGF0aW9uICVpYXJncyBpYmFzZSdcbiAgICArICcgaWNjMSBpY2MyIGljb3VudGVyIGlkdW1teXggaWVxbnByaW50IGlmYiBpZmMxIGlmYzIgaWZnIGlmZ2kgaWZyIGlmcmFtZV9icmFja2V0X2Zvcm0nXG4gICAgKyAnIGlmcmkgaWdlb3dlZGdlX2ZsYWcgaWt0MSBpa3QyIGltYWdpbmFyeSBpbmNoYXIgaW5jcmVhc2luZyBpbmZldmFsJ1xuICAgICsgJyBpbmZpbml0eSBpbmZsYWcgaW5mb2xpc3RzIGlubSBpbm1jMSBpbm1jMiBpbnRhbmFseXNpcyBpbnRlZ2VyIGludGVnZXJ2YWx1ZWQnXG4gICAgKyAnIGludGVncmF0ZV91c2Vfcm9vdHNvZiBpbnRlZ3JhdGlvbl9jb25zdGFudCBpbnRlZ3JhdGlvbl9jb25zdGFudF9jb3VudGVyIGludGVycG9sYXRlX2NvbG9yJ1xuICAgICsgJyBpbnRmYWNsaW0gaXBfZ3JpZCBpcF9ncmlkX2luIGlycmF0aW9uYWwgaXNvbGF0ZV93cnRfdGltZXMgaXRlcmF0aW9ucyBpdHInXG4gICAgKyAnIGp1bGlhX3BhcmFtZXRlciAlazEgJWsyIGtlZXBmbG9hdCBrZXkga2V5X3BvcyBraW52YXJpYW50IGt0IGxhYmVsIGxhYmVsX2FsaWdubWVudCdcbiAgICArICcgbGFiZWxfb3JpZW50YXRpb24gbGFiZWxzIGxhc3NvY2lhdGl2ZSBsYmZnc19uY29ycmVjdGlvbnMgbGJmZ3NfbmZldmFsX21heCdcbiAgICArICcgbGVmdGp1c3QgbGVnZW5kIGxldHJhdCBsZXRfcnVsZV9wYWNrYWdlcyBsZmcgbGcgbGhvc3BpdGFsbGltIGxpbXN1YnN0IGxpbmVhcidcbiAgICArICcgbGluZWFyX3NvbHZlciBsaW5lY2hhciBsaW5lbHwxMCBsaW5lbnVtIGxpbmVfdHlwZSBsaW5ld2lkdGggbGluZV93aWR0aCBsaW5zb2x2ZV9wYXJhbXMnXG4gICAgKyAnIGxpbnNvbHZld2FybiBsaXNwZGlzcCBsaXN0YXJpdGggbGlzdGNvbnN0dmFycyBsaXN0ZHVtbXl2YXJzIGxteGNoYXIgbG9hZF9wYXRobmFtZSdcbiAgICArICcgbG9hZHByaW50IGxvZ2FicyBsb2dhcmMgbG9nY2IgbG9nY29uY29lZmZwIGxvZ2V4cGFuZCBsb2duZWdpbnQgbG9nc2ltcCBsb2d4J1xuICAgICsgJyBsb2d4X3NlY29uZGFyeSBsb2d5IGxvZ3lfc2Vjb25kYXJ5IGxvZ3ogbHJpZW0gbTFwYnJhbmNoIG1hY3JvZXhwYW5zaW9uIG1hY3JvcydcbiAgICArICcgbWFpbnZhciBtYW51YWxfZGVtbyBtYXBlcnJvciBtYXBwcmludCBtYXRyaXhfZWxlbWVudF9hZGQgbWF0cml4X2VsZW1lbnRfbXVsdCdcbiAgICArICcgbWF0cml4X2VsZW1lbnRfdHJhbnNwb3NlIG1heGFwcGx5ZGVwdGggbWF4YXBwbHloZWlnaHQgbWF4aW1hX3RlbXBkaXJ8MTAgbWF4aW1hX3VzZXJkaXJ8MTAnXG4gICAgKyAnIG1heG5lZ2V4IE1BWF9PUkQgbWF4cG9zZXggbWF4cHNpZnJhY2Rlbm9tIG1heHBzaWZyYWNudW0gbWF4cHNpbmVnaW50IG1heHBzaXBvc2ludCdcbiAgICArICcgbWF4dGF5b3JkZXIgbWVzaF9saW5lc19jb2xvciBtZXRob2QgbW9kX2JpZ19wcmltZSBtb2RlX2NoZWNrX2Vycm9ycCdcbiAgICArICcgbW9kZV9jaGVja3AgbW9kZV9jaGVja193YXJucCBtb2RfdGVzdCBtb2RfdGhyZXNob2xkIG1vZHVsYXJfbGluZWFyX3NvbHZlcidcbiAgICArICcgbW9kdWx1cyBtdWx0aXBsaWNhdGl2ZSBtdWx0aXBsaWNpdGllcyBteW9wdGlvbnMgbmFyeSBuZWdkaXN0cmliIG5lZ3N1bWRpc3BmbGFnJ1xuICAgICsgJyBuZXdsaW5lIG5ld3RvbmVwc2lsb24gbmV3dG9ubWF4aXRlciBuZXh0bGF5ZXJmYWN0b3IgbmljZWluZGljZXNwcmVmIG5tIG5tYydcbiAgICArICcgbm9ldmFsIG5vbGFiZWxzIG5vbmVnYXRpdmVfbHAgbm9uaW50ZWdlciBub25zY2FsYXIgbm91biBub3VuZGlzcCBub3VucyBucCdcbiAgICArICcgbnBpIG50aWNrcyBudHJpZyBudW1lciBudW1lcl9wYnJhbmNoIG9iYXNlIG9kZCBvZGRmdW4gb3BhY2l0eSBvcHByb3BlcnRpZXMnXG4gICAgKyAnIG9wc3Vic3Qgb3B0aW1wcmVmaXggb3B0aW9uc2V0IG9yaWVudGF0aW9uIG9yaWdpbiBvcnRob3BvbHlfcmV0dXJuc19pbnRlcnZhbHMnXG4gICAgKyAnIG91dGF0aXZlIG91dGNoYXIgcGFja2FnZWZpbGUgcGFsZXR0ZSBwYXJ0c3dpdGNoIHBkZl9maWxlIHBmZWZvcm1hdCBwaGlyZXNvbHV0aW9uJ1xuICAgICsgJyAlcGlhcmdzIHBpZWNlIHBpdm90X2NvdW50X3N4IHBpdm90X21heF9zeCBwbG90X2Zvcm1hdCBwbG90X29wdGlvbnMgcGxvdF9yZWFscGFydCdcbiAgICArICcgcG5nX2ZpbGUgcG9jaGhhbW1lcl9tYXhfaW5kZXggcG9pbnRzIHBvaW50c2l6ZSBwb2ludF9zaXplIHBvaW50c19qb2luZWQgcG9pbnRfdHlwZSdcbiAgICArICcgcG9pc2xpbSBwb2lzc29uIHBvbHlfY29lZmZpY2llbnRfcmluZyBwb2x5X2VsaW1pbmF0aW9uX29yZGVyIHBvbHlmYWN0b3IgcG9seV9ncm9ibmVyX2FsZ29yaXRobSdcbiAgICArICcgcG9seV9ncm9ibmVyX2RlYnVnIHBvbHlfbW9ub21pYWxfb3JkZXIgcG9seV9wcmltYXJ5X2VsaW1pbmF0aW9uX29yZGVyIHBvbHlfcmV0dXJuX3Rlcm1fbGlzdCdcbiAgICArICcgcG9seV9zZWNvbmRhcnlfZWxpbWluYXRpb25fb3JkZXIgcG9seV90b3BfcmVkdWN0aW9uX29ubHkgcG9zZnVuIHBvc2l0aW9uJ1xuICAgICsgJyBwb3dlcmRpc3AgcHJlZCBwcmVkZXJyb3IgcHJpbWVwX251bWJlcl9vZl90ZXN0cyBwcm9kdWN0X3VzZV9nYW1tYSBwcm9ncmFtJ1xuICAgICsgJyBwcm9ncmFtbW9kZSBwcm9tb3RlX2Zsb2F0X3RvX2JpZ2Zsb2F0IHByb21wdCBwcm9wb3J0aW9uYWxfYXhlcyBwcm9wcyBwc2V4cGFuZCdcbiAgICArICcgcHNfZmlsZSByYWRleHBhbmQgcmFkaXVzIHJhZHN1YnN0ZmxhZyByYXNzb2NpYXRpdmUgcmF0YWxnZGVub20gcmF0Y2hyaXN0b2YnXG4gICAgKyAnIHJhdGRlbm9tZGl2aWRlIHJhdGVpbnN0ZWluIHJhdGVwc2lsb24gcmF0ZmFjIHJhdGlvbmFsIHJhdG14IHJhdHByaW50IHJhdHJpZW1hbm4nXG4gICAgKyAnIHJhdHNpbXBleHBvbnMgcmF0dmFyc3dpdGNoIHJhdHdlaWdodHMgcmF0d2V5bCByYXR3dGx2bCByZWFsIHJlYWxvbmx5IHJlZHJhdydcbiAgICArICcgcmVmY2hlY2sgcmVzb2x1dGlvbiByZXN0YXJ0IHJlc3VsdGFudCByaWMgcmllbSBybXhjaGFyICVybnVtX2xpc3Qgcm9tYmVyZ2FicydcbiAgICArICcgcm9tYmVyZ2l0IHJvbWJlcmdtaW4gcm9tYmVyZ3RvbCByb290c2Nvbm1vZGUgcm9vdHNlcHNpbG9uIHJ1bl92aWV3ZXIgc2FtZV94eSdcbiAgICArICcgc2FtZV94eXogc2F2ZWRlZiBzYXZlZmFjdG9ycyBzY2FsYXIgc2NhbGFybWF0cml4cCBzY2FsZSBzY2FsZV9scCBzZXRjaGVjaydcbiAgICArICcgc2V0Y2hlY2ticmVhayBzZXR2YWwgc2hvd19lZGdlX2NvbG9yIHNob3dfZWRnZXMgc2hvd19lZGdlX3R5cGUgc2hvd19lZGdlX3dpZHRoJ1xuICAgICsgJyBzaG93X2lkIHNob3dfbGFiZWwgc2hvd3RpbWUgc2hvd192ZXJ0ZXhfY29sb3Igc2hvd192ZXJ0ZXhfc2l6ZSBzaG93X3ZlcnRleF90eXBlJ1xuICAgICsgJyBzaG93X3ZlcnRpY2VzIHNob3dfd2VpZ2h0IHNpbXAgc2ltcGxpZmllZF9vdXRwdXQgc2ltcGxpZnlfcHJvZHVjdHMgc2ltcHByb2R1Y3QnXG4gICAgKyAnIHNpbXBzdW0gc2lubnBpZmxhZyBzb2x2ZWRlY29tcG9zZXMgc29sdmVleHBsaWNpdCBzb2x2ZWZhY3RvcnMgc29sdmVudWxsd2FybidcbiAgICArICcgc29sdmVyYWRjYW4gc29sdmV0cmlnd2FybiBzcGFjZSBzcGFyc2Ugc3BoZXJlIHNwcmluZ19lbWJlZGRpbmdfZGVwdGggc3FydGRpc3BmbGFnJ1xuICAgICsgJyBzdGFyZGlzcCBzdGFydHBoaSBzdGFydHRoZXRhIHN0YXRzX251bWVyIHN0cmluZ2Rpc3Agc3RydWN0dXJlcyBzdHlsZSBzdWJsaXNfYXBwbHlfbGFtYmRhJ1xuICAgICsgJyBzdWJudW1zaW1wIHN1bWV4cGFuZCBzdW1zcGxpdGZhY3Qgc3VyZmFjZSBzdXJmYWNlX2hpZGUgc3ZnX2ZpbGUgc3ltbWV0cmljJ1xuICAgICsgJyB0YWIgdGF5bG9yZGVwdGggdGF5bG9yX2xvZ2V4cGFuZCB0YXlsb3Jfb3JkZXJfY29lZmZpY2llbnRzIHRheWxvcl90cnVuY2F0ZV9wb2x5bm9taWFscydcbiAgICArICcgdGVuc29ya2lsbCB0ZXJtaW5hbCB0ZXN0c3VpdGVfZmlsZXMgdGhldGFyZXNvbHV0aW9uIHRpbWVyX2RldmFsdWUgdGl0bGUgdGxpbXN3aXRjaCdcbiAgICArICcgdHIgdHJhY2sgdHJhbnNjb21waWxlIHRyYW5zZm9ybSB0cmFuc2Zvcm1feHkgdHJhbnNsYXRlX2Zhc3RfYXJyYXlzIHRyYW5zcGFyZW50J1xuICAgICsgJyB0cmFuc3J1biB0cl9hcnJheV9hc19yZWYgdHJfYm91bmRfZnVuY3Rpb25fYXBwbHlwIHRyX2ZpbGVfdHR5X21lc3NhZ2VzcCB0cl9mbG9hdF9jYW5fYnJhbmNoX2NvbXBsZXgnXG4gICAgKyAnIHRyX2Z1bmN0aW9uX2NhbGxfZGVmYXVsdCB0cmlnZXhwYW5kcGx1cyB0cmlnZXhwYW5kdGltZXMgdHJpZ2ludmVyc2VzIHRyaWdzaWduJ1xuICAgICsgJyB0cml2aWFsX3NvbHV0aW9ucyB0cl9udW1lciB0cl9vcHRpbWl6ZV9tYXhfbG9vcCB0cl9zZW1pY29tcGlsZSB0cl9zdGF0ZV92YXJzJ1xuICAgICsgJyB0cl93YXJuX2JhZF9mdW5jdGlvbl9jYWxscyB0cl93YXJuX2ZleHByIHRyX3dhcm5fbWV2YWwgdHJfd2Fybl9tb2RlJ1xuICAgICsgJyB0cl93YXJuX3VuZGVjbGFyZWQgdHJfd2Fybl91bmRlZmluZWRfdmFyaWFibGUgdHN0ZXAgdHR5b2ZmIHR1YmVfZXh0cmVtZXMnXG4gICAgKyAnIHVmZyB1ZyAldW5pdGV4cGFuZCB1bml0X3ZlY3RvcnMgdXJpYyB1cmllbSB1c2VfZmFzdF9hcnJheXMgdXNlcl9wcmVhbWJsZSdcbiAgICArICcgdXNlcnNldHVuaXRzIHZhbHVlcyB2ZWN0X2Nyb3NzIHZlcmJvc2UgdmVydGV4X2NvbG9yIHZlcnRleF9jb2xvcmluZyB2ZXJ0ZXhfcGFydGl0aW9uJ1xuICAgICsgJyB2ZXJ0ZXhfc2l6ZSB2ZXJ0ZXhfdHlwZSB2aWV3IHdhcm5pbmdzIHdleWwgd2lkdGggd2luZG93bmFtZSB3aW5kb3d0aXRsZSB3aXJlZF9zdXJmYWNlJ1xuICAgICsgJyB3aXJlZnJhbWUgeGF4aXMgeGF4aXNfY29sb3IgeGF4aXNfc2Vjb25kYXJ5IHhheGlzX3R5cGUgeGF4aXNfd2lkdGggeGxhYmVsJ1xuICAgICsgJyB4bGFiZWxfc2Vjb25kYXJ5IHhsZW5ndGggeHJhbmdlIHhyYW5nZV9zZWNvbmRhcnkgeHRpY3MgeHRpY3NfYXhpcyB4dGljc19yb3RhdGUnXG4gICAgKyAnIHh0aWNzX3JvdGF0ZV9zZWNvbmRhcnkgeHRpY3Nfc2Vjb25kYXJ5IHh0aWNzX3NlY29uZGFyeV9heGlzIHh1X2dyaWQgeF92b3hlbCdcbiAgICArICcgeHlfZmlsZSB4eXBsYW5lIHh5X3NjYWxlIHlheGlzIHlheGlzX2NvbG9yIHlheGlzX3NlY29uZGFyeSB5YXhpc190eXBlIHlheGlzX3dpZHRoJ1xuICAgICsgJyB5bGFiZWwgeWxhYmVsX3NlY29uZGFyeSB5bGVuZ3RoIHlyYW5nZSB5cmFuZ2Vfc2Vjb25kYXJ5IHl0aWNzIHl0aWNzX2F4aXMnXG4gICAgKyAnIHl0aWNzX3JvdGF0ZSB5dGljc19yb3RhdGVfc2Vjb25kYXJ5IHl0aWNzX3NlY29uZGFyeSB5dGljc19zZWNvbmRhcnlfYXhpcydcbiAgICArICcgeXZfZ3JpZCB5X3ZveGVsIHl4X3JhdGlvIHpheGlzIHpheGlzX2NvbG9yIHpheGlzX3R5cGUgemF4aXNfd2lkdGggemVyb2EgemVyb2InXG4gICAgKyAnIHplcm9iZXJuIHpldGElcGkgemxhYmVsIHpsYWJlbF9yb3RhdGUgemxlbmd0aCB6bWluIHpuX3ByaW1yb290X2xpbWl0IHpuX3ByaW1yb290X3ByZXRlc3QnO1xuICBjb25zdCBTWU1CT0xTID0gJ18gX18gJXwwICUlfDAnO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01heGltYScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAnW0EtWmEtel8lXVswLTlBLVphLXpfJV0qJyxcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRJTl9GVU5DVElPTlMsXG4gICAgICBzeW1ib2w6IFNZTUJPTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgICAgICBiZWdpbjogJy9cXFxcKicsXG4gICAgICAgIGVuZDogJ1xcXFwqLycsXG4gICAgICAgIGNvbnRhaW5zOiBbICdzZWxmJyBdXG4gICAgICB9LFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGZsb2F0IG51bWJlciB3LyBleHBvbmVudFxuICAgICAgICAgICAgLy8gaG1tLCBJIHdvbmRlciBpZiB3ZSBvdWdodCB0byBpbmNsdWRlIG90aGVyIGV4cG9uZW50IG1hcmtlcnM/XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxiKFxcXFxkK3xcXFxcZCtcXFxcLnxcXFxcLlxcXFxkK3xcXFxcZCtcXFxcLlxcXFxkKylbRWVdWy0rXT9cXFxcZCtcXFxcYicgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBiaWdmbG9hdCBudW1iZXJcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXGQrfFxcXFxkK1xcXFwufFxcXFwuXFxcXGQrfFxcXFxkK1xcXFwuXFxcXGQrKVtCYl1bLStdP1xcXFxkK1xcXFxiJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGZsb2F0IG51bWJlciB3L291dCBleHBvbmVudFxuICAgICAgICAgICAgLy8gRG9lc24ndCBzZWVtIHRvIHJlY29nbml6ZSBmbG9hdHMgd2hpY2ggc3RhcnQgd2l0aCAnLidcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoXFxcXC5cXFxcZCt8XFxcXGQrXFxcXC5cXFxcZCspXFxcXGInIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gaW50ZWdlciBpbiBiYXNlIHVwIHRvIDM2XG4gICAgICAgICAgICAvLyBEb2Vzbid0IHNlZW0gdG8gcmVjb2duaXplIGludGVnZXJzIHdoaWNoIGVuZCB3aXRoICcuJ1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcYihcXFxcZCt8MFswLTlBLVphLXpdKylcXFxcLj9cXFxcYicgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvQC9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXhpbWE7XG4iLCAiLypcbkxhbmd1YWdlOiBNRUxcbkRlc2NyaXB0aW9uOiBNYXlhIEVtYmVkZGVkIExhbmd1YWdlXG5BdXRob3I6IFNodWVuLUh1ZWkgR3VhbiA8ZHJha2UuZ3VhbkBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vd3d3LmF1dG9kZXNrLmNvbS9wcm9kdWN0cy9hdXRvZGVzay1tYXlhL292ZXJ2aWV3XG5DYXRlZ29yeTogZ3JhcGhpY3NcbiovXG5cbmZ1bmN0aW9uIG1lbChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01FTCcsXG4gICAga2V5d29yZHM6XG4gICAgICAnaW50IGZsb2F0IHN0cmluZyB2ZWN0b3IgbWF0cml4IGlmIGVsc2Ugc3dpdGNoIGNhc2UgZGVmYXVsdCB3aGlsZSBkbyBmb3IgaW4gYnJlYWsgJ1xuICAgICAgKyAnY29udGludWUgZ2xvYmFsIHByb2MgcmV0dXJuIGFib3V0IGFicyBhZGRBdHRyIGFkZEF0dHJpYnV0ZUVkaXRvck5vZGVIZWxwIGFkZER5bmFtaWMgJ1xuICAgICAgKyAnYWRkTmV3U2hlbGZUYWIgYWRkUFAgYWRkUGFuZWxDYXRlZ29yeSBhZGRQcmVmaXhUb05hbWUgYWR2YW5jZVRvTmV4dERyaXZlbktleSAnXG4gICAgICArICdhZmZlY3RlZE5ldCBhZmZlY3RzIGFpbUNvbnN0cmFpbnQgYWlyIGFsaWFzIGFsaWFzQXR0ciBhbGlnbiBhbGlnbkN0eCBhbGlnbkN1cnZlICdcbiAgICAgICsgJ2FsaWduU3VyZmFjZSBhbGxWaWV3Rml0IGFtYmllbnRMaWdodCBhbmdsZSBhbmdsZUJldHdlZW4gYW5pbUNvbmUgYW5pbUN1cnZlRWRpdG9yICdcbiAgICAgICsgJ2FuaW1EaXNwbGF5IGFuaW1WaWV3IGFubm90YXRlIGFwcGVuZFN0cmluZ0FycmF5IGFwcGxpY2F0aW9uTmFtZSBhcHBseUF0dHJQcmVzZXQgJ1xuICAgICAgKyAnYXBwbHlUYWtlIGFyY0xlbkRpbUNvbnRleHQgYXJjTGVuZ3RoRGltZW5zaW9uIGFyY2xlbiBhcnJheU1hcHBlciBhcnQzZFBhaW50Q3R4ICdcbiAgICAgICsgJ2FydEF0dHJDdHggYXJ0QXR0clBhaW50VmVydGV4Q3R4IGFydEF0dHJTa2luUGFpbnRDdHggYXJ0QXR0clRvb2wgYXJ0QnVpbGRQYWludE1lbnUgJ1xuICAgICAgKyAnYXJ0Rmx1aWRBdHRyQ3R4IGFydFB1dHR5Q3R4IGFydFNlbGVjdEN0eCBhcnRTZXRQYWludEN0eCBhcnRVc2VyUGFpbnRDdHggYXNzaWduQ29tbWFuZCAnXG4gICAgICArICdhc3NpZ25JbnB1dERldmljZSBhc3NpZ25WaWV3cG9ydEZhY3RvcmllcyBhdHRhY2hDdXJ2ZSBhdHRhY2hEZXZpY2VBdHRyIGF0dGFjaFN1cmZhY2UgJ1xuICAgICAgKyAnYXR0ckNvbG9yU2xpZGVyR3JwIGF0dHJDb21wYXRpYmlsaXR5IGF0dHJDb250cm9sR3JwIGF0dHJFbnVtT3B0aW9uTWVudSAnXG4gICAgICArICdhdHRyRW51bU9wdGlvbk1lbnVHcnAgYXR0ckZpZWxkR3JwIGF0dHJGaWVsZFNsaWRlckdycCBhdHRyTmF2aWdhdGlvbkNvbnRyb2xHcnAgJ1xuICAgICAgKyAnYXR0clByZXNldEVkaXRXaW4gYXR0cmlidXRlRXhpc3RzIGF0dHJpYnV0ZUluZm8gYXR0cmlidXRlTWVudSBhdHRyaWJ1dGVRdWVyeSAnXG4gICAgICArICdhdXRvS2V5ZnJhbWUgYXV0b1BsYWNlIGJha2VDbGlwIGJha2VGbHVpZFNoYWRpbmcgYmFrZVBhcnRpYWxIaXN0b3J5IGJha2VSZXN1bHRzICdcbiAgICAgICsgJ2Jha2VTaW11bGF0aW9uIGJhc2VuYW1lIGJhc2VuYW1lRXggYmF0Y2hSZW5kZXIgYmVzc2VsIGJldmVsIGJldmVsUGx1cyBiaW5NZW1iZXJzaGlwICdcbiAgICAgICsgJ2JpbmRTa2luIGJsZW5kMiBibGVuZFNoYXBlIGJsZW5kU2hhcGVFZGl0b3IgYmxlbmRTaGFwZVBhbmVsIGJsZW5kVHdvQXR0ciBibGluZERhdGFUeXBlICdcbiAgICAgICsgJ2JvbmVMYXR0aWNlIGJvdW5kYXJ5IGJveERvbGx5Q3R4IGJveFpvb21DdHggYnVmZmVyQ3VydmUgYnVpbGRCb29rbWFya01lbnUgJ1xuICAgICAgKyAnYnVpbGRLZXlmcmFtZU1lbnUgYnV0dG9uIGJ1dHRvbk1hbmlwIENCRyBjYWNoZUZpbGUgY2FjaGVGaWxlQ29tYmluZSBjYWNoZUZpbGVNZXJnZSAnXG4gICAgICArICdjYWNoZUZpbGVUcmFjayBjYW1lcmEgY2FtZXJhVmlldyBjYW5DcmVhdGVNYW5pcCBjYW52YXMgY2FwaXRhbGl6ZVN0cmluZyBjYXRjaCAnXG4gICAgICArICdjYXRjaFF1aWV0IGNlaWwgY2hhbmdlU3ViZGl2Q29tcG9uZW50RGlzcGxheUxldmVsIGNoYW5nZVN1YmRpdlJlZ2lvbiBjaGFubmVsQm94ICdcbiAgICAgICsgJ2NoYXJhY3RlciBjaGFyYWN0ZXJNYXAgY2hhcmFjdGVyT3V0bGluZUVkaXRvciBjaGFyYWN0ZXJpemUgY2hkaXIgY2hlY2tCb3ggY2hlY2tCb3hHcnAgJ1xuICAgICAgKyAnY2hlY2tEZWZhdWx0UmVuZGVyR2xvYmFscyBjaG9pY2UgY2lyY2xlIGNpcmN1bGFyRmlsbGV0IGNsYW1wIGNsZWFyIGNsZWFyQ2FjaGUgY2xpcCAnXG4gICAgICArICdjbGlwRWRpdG9yIGNsaXBFZGl0b3JDdXJyZW50VGltZUN0eCBjbGlwU2NoZWR1bGUgY2xpcFNjaGVkdWxlck91dGxpbmVyIGNsaXBUcmltQmVmb3JlICdcbiAgICAgICsgJ2Nsb3NlQ3VydmUgY2xvc2VTdXJmYWNlIGNsdXN0ZXIgY21kRmlsZU91dHB1dCBjbWRTY3JvbGxGaWVsZEV4ZWN1dGVyICdcbiAgICAgICsgJ2NtZFNjcm9sbEZpZWxkUmVwb3J0ZXIgY21kU2hlbGwgY29hcnNlblN1YmRpdlNlbGVjdGlvbkxpc3QgY29sbGlzaW9uIGNvbG9yICdcbiAgICAgICsgJ2NvbG9yQXRQb2ludCBjb2xvckVkaXRvciBjb2xvckluZGV4IGNvbG9ySW5kZXhTbGlkZXJHcnAgY29sb3JTbGlkZXJCdXR0b25HcnAgJ1xuICAgICAgKyAnY29sb3JTbGlkZXJHcnAgY29sdW1uTGF5b3V0IGNvbW1hbmRFY2hvIGNvbW1hbmRMaW5lIGNvbW1hbmRQb3J0IGNvbXBhY3RIYWlyU3lzdGVtICdcbiAgICAgICsgJ2NvbXBvbmVudEVkaXRvciBjb21wb3NpdGluZ0ludGVyb3AgY29tcHV0ZVBvbHlzZXRWb2x1bWUgY29uZGl0aW9uIGNvbmUgY29uZmlybURpYWxvZyAnXG4gICAgICArICdjb25uZWN0QXR0ciBjb25uZWN0Q29udHJvbCBjb25uZWN0RHluYW1pYyBjb25uZWN0Sm9pbnQgY29ubmVjdGlvbkluZm8gY29uc3RyYWluICdcbiAgICAgICsgJ2NvbnN0cmFpblZhbHVlIGNvbnN0cnVjdGlvbkhpc3RvcnkgY29udGFpbmVyIGNvbnRhaW5zTXVsdGlieXRlIGNvbnRleHRJbmZvIGNvbnRyb2wgJ1xuICAgICAgKyAnY29udmVydEZyb21PbGRMYXllcnMgY29udmVydElmZlRvUHNkIGNvbnZlcnRMaWdodG1hcCBjb252ZXJ0U29saWRUeCBjb252ZXJ0VGVzc2VsbGF0aW9uICdcbiAgICAgICsgJ2NvbnZlcnRVbml0IGNvcHlBcnJheSBjb3B5RmxleG9yIGNvcHlLZXkgY29weVNraW5XZWlnaHRzIGNvcyBjcEJ1dHRvbiBjcENhY2hlICdcbiAgICAgICsgJ2NwQ2xvdGhTZXQgY3BDb2xsaXNpb24gY3BDb25zdHJhaW50IGNwQ29udkNsb3RoVG9NZXNoIGNwRm9yY2VzIGNwR2V0U29sdmVyQXR0ciBjcFBhbmVsICdcbiAgICAgICsgJ2NwUHJvcGVydHkgY3BSaWdpZENvbGxpc2lvbkZpbHRlciBjcFNlYW0gY3BTZXRFZGl0IGNwU2V0U29sdmVyQXR0ciBjcFNvbHZlciAnXG4gICAgICArICdjcFNvbHZlclR5cGVzIGNwVG9vbCBjcFVwZGF0ZUNsb3RoVVZzIGNyZWF0ZURpc3BsYXlMYXllciBjcmVhdGVEcmF3Q3R4IGNyZWF0ZUVkaXRvciAnXG4gICAgICArICdjcmVhdGVMYXllcmVkUHNkRmlsZSBjcmVhdGVNb3Rpb25GaWVsZCBjcmVhdGVOZXdTaGVsZiBjcmVhdGVOb2RlIGNyZWF0ZVJlbmRlckxheWVyICdcbiAgICAgICsgJ2NyZWF0ZVN1YmRpdlJlZ2lvbiBjcm9zcyBjcm9zc1Byb2R1Y3QgY3R4QWJvcnQgY3R4Q29tcGxldGlvbiBjdHhFZGl0TW9kZSBjdHhUcmF2ZXJzZSAnXG4gICAgICArICdjdXJyZW50Q3R4IGN1cnJlbnRUaW1lIGN1cnJlbnRUaW1lQ3R4IGN1cnJlbnRVbml0IGN1cnZlIGN1cnZlQWRkUHRDdHggJ1xuICAgICAgKyAnY3VydmVDVkN0eCBjdXJ2ZUVQQ3R4IGN1cnZlRWRpdG9yQ3R4IGN1cnZlSW50ZXJzZWN0IGN1cnZlTW92ZUVQQ3R4IGN1cnZlT25TdXJmYWNlICdcbiAgICAgICsgJ2N1cnZlU2tldGNoQ3R4IGN1dEtleSBjeWNsZUNoZWNrIGN5bGluZGVyIGRhZ1Bvc2UgZGF0ZSBkZWZhdWx0TGlnaHRMaXN0Q2hlY2tCb3ggJ1xuICAgICAgKyAnZGVmYXVsdE5hdmlnYXRpb24gZGVmaW5lRGF0YVNlcnZlciBkZWZpbmVWaXJ0dWFsRGV2aWNlIGRlZm9ybWVyIGRlZ190b19yYWQgZGVsZXRlICdcbiAgICAgICsgJ2RlbGV0ZUF0dHIgZGVsZXRlU2hhZGluZ0dyb3Vwc0FuZE1hdGVyaWFscyBkZWxldGVTaGVsZlRhYiBkZWxldGVVSSBkZWxldGVVbnVzZWRCcnVzaGVzICdcbiAgICAgICsgJ2RlbHJhbmRzdHIgZGV0YWNoQ3VydmUgZGV0YWNoRGV2aWNlQXR0ciBkZXRhY2hTdXJmYWNlIGRldmljZUVkaXRvciBkZXZpY2VQYW5lbCBkZ0luZm8gJ1xuICAgICAgKyAnZGdkaXJ0eSBkZ2V2YWwgZGd0aW1lciBkaW1XaGVuIGRpcmVjdEtleUN0eCBkaXJlY3Rpb25hbExpZ2h0IGRpcm1hcCBkaXJuYW1lIGRpc2FibGUgJ1xuICAgICAgKyAnZGlzY29ubmVjdEF0dHIgZGlzY29ubmVjdEpvaW50IGRpc2tDYWNoZSBkaXNwbGFjZW1lbnRUb1BvbHkgZGlzcGxheUFmZmVjdGVkICdcbiAgICAgICsgJ2Rpc3BsYXlDb2xvciBkaXNwbGF5Q3VsbCBkaXNwbGF5TGV2ZWxPZkRldGFpbCBkaXNwbGF5UHJlZiBkaXNwbGF5UkdCQ29sb3IgJ1xuICAgICAgKyAnZGlzcGxheVNtb290aG5lc3MgZGlzcGxheVN0YXRzIGRpc3BsYXlTdHJpbmcgZGlzcGxheVN1cmZhY2UgZGlzdGFuY2VEaW1Db250ZXh0ICdcbiAgICAgICsgJ2Rpc3RhbmNlRGltZW5zaW9uIGRvQmx1ciBkb2xseSBkb2xseUN0eCBkb3BlU2hlZXRFZGl0b3IgZG90IGRvdFByb2R1Y3QgJ1xuICAgICAgKyAnZG91YmxlUHJvZmlsZUJpcmFpbFN1cmZhY2UgZHJhZyBkcmFnQXR0ckNvbnRleHQgZHJhZ2dlckNvbnRleHQgZHJvcG9mZkxvY2F0b3IgJ1xuICAgICAgKyAnZHVwbGljYXRlIGR1cGxpY2F0ZUN1cnZlIGR1cGxpY2F0ZVN1cmZhY2UgZHluQ2FjaGUgZHluQ29udHJvbCBkeW5FeHBvcnQgZHluRXhwcmVzc2lvbiAnXG4gICAgICArICdkeW5HbG9iYWxzIGR5blBhaW50RWRpdG9yIGR5blBhcnRpY2xlQ3R4IGR5blByZWYgZHluUmVsRWRQYW5lbCBkeW5SZWxFZGl0b3IgJ1xuICAgICAgKyAnZHluYW1pY0xvYWQgZWRpdEF0dHJMaW1pdHMgZWRpdERpc3BsYXlMYXllckdsb2JhbHMgZWRpdERpc3BsYXlMYXllck1lbWJlcnMgJ1xuICAgICAgKyAnZWRpdFJlbmRlckxheWVyQWRqdXN0bWVudCBlZGl0UmVuZGVyTGF5ZXJHbG9iYWxzIGVkaXRSZW5kZXJMYXllck1lbWJlcnMgZWRpdG9yICdcbiAgICAgICsgJ2VkaXRvclRlbXBsYXRlIGVmZmVjdG9yIGVtaXQgZW1pdHRlciBlbmFibGVEZXZpY2UgZW5jb2RlU3RyaW5nIGVuZFN0cmluZyBlbmRzV2l0aCBlbnYgJ1xuICAgICAgKyAnZXF1aXZhbGVudCBlcXVpdmFsZW50VG9sIGVyZiBlcnJvciBldmFsIGV2YWxEZWZlcnJlZCBldmFsRWNobyBldmVudCAnXG4gICAgICArICdleGFjdFdvcmxkQm91bmRpbmdCb3ggZXhjbHVzaXZlTGlnaHRDaGVja0JveCBleGVjIGV4ZWN1dGVGb3JFYWNoT2JqZWN0IGV4aXN0cyBleHAgJ1xuICAgICAgKyAnZXhwcmVzc2lvbiBleHByZXNzaW9uRWRpdG9yTGlzdGVuIGV4dGVuZEN1cnZlIGV4dGVuZFN1cmZhY2UgZXh0cnVkZSBmY2hlY2sgZmNsb3NlIGZlb2YgJ1xuICAgICAgKyAnZmZsdXNoIGZnZXRsaW5lIGZnZXR3b3JkIGZpbGUgZmlsZUJyb3dzZXJEaWFsb2cgZmlsZURpYWxvZyBmaWxlRXh0ZW5zaW9uIGZpbGVJbmZvICdcbiAgICAgICsgJ2ZpbGV0ZXN0IGZpbGxldEN1cnZlIGZpbHRlciBmaWx0ZXJDdXJ2ZSBmaWx0ZXJFeHBhbmQgZmlsdGVyU3R1ZGlvSW1wb3J0ICdcbiAgICAgICsgJ2ZpbmRBbGxJbnRlcnNlY3Rpb25zIGZpbmRBbmltQ3VydmVzIGZpbmRLZXlmcmFtZSBmaW5kTWVudUl0ZW0gZmluZFJlbGF0ZWRTa2luQ2x1c3RlciAnXG4gICAgICArICdmaW5kZXIgZmlyc3RQYXJlbnRPZiBmaXRCc3BsaW5lIGZsZXhvciBmbG9hdEVxIGZsb2F0RmllbGQgZmxvYXRGaWVsZEdycCBmbG9hdFNjcm9sbEJhciAnXG4gICAgICArICdmbG9hdFNsaWRlciBmbG9hdFNsaWRlcjIgZmxvYXRTbGlkZXJCdXR0b25HcnAgZmxvYXRTbGlkZXJHcnAgZmxvb3IgZmxvdyBmbHVpZENhY2hlSW5mbyAnXG4gICAgICArICdmbHVpZEVtaXR0ZXIgZmx1aWRWb3hlbEluZm8gZmx1c2hVbmRvIGZtb2QgZm9udERpYWxvZyBmb3BlbiBmb3JtTGF5b3V0IGZvcm1hdCBmcHJpbnQgJ1xuICAgICAgKyAnZnJhbWVMYXlvdXQgZnJlYWQgZnJlZUZvcm1GaWxsZXQgZnJld2luZCBmcm9tTmF0aXZlUGF0aCBmd3JpdGUgZ2FtbWEgZ2F1c3MgJ1xuICAgICAgKyAnZ2VvbWV0cnlDb25zdHJhaW50IGdldEFwcGxpY2F0aW9uVmVyc2lvbkFzRmxvYXQgZ2V0QXR0ciBnZXRDbGFzc2lmaWNhdGlvbiAnXG4gICAgICArICdnZXREZWZhdWx0QnJ1c2ggZ2V0RmlsZUxpc3QgZ2V0Rmx1aWRBdHRyIGdldElucHV0RGV2aWNlUmFuZ2UgZ2V0TWF5YVBhbmVsVHlwZXMgJ1xuICAgICAgKyAnZ2V0TW9kaWZpZXJzIGdldFBhbmVsIGdldFBhcnRpY2xlQXR0ciBnZXRQbHVnaW5SZXNvdXJjZSBnZXRlbnYgZ2V0cGlkIGdsUmVuZGVyICdcbiAgICAgICsgJ2dsUmVuZGVyRWRpdG9yIGdsb2JhbFN0aXRjaCBnbWF0Y2ggZ29hbCBnb3RvQmluZFBvc2UgZ3JhYkNvbG9yIGdyYWRpZW50Q29udHJvbCAnXG4gICAgICArICdncmFkaWVudENvbnRyb2xOb0F0dHIgZ3JhcGhEb2xseUN0eCBncmFwaFNlbGVjdENvbnRleHQgZ3JhcGhUcmFja0N0eCBncmF2aXR5IGdyaWQgJ1xuICAgICAgKyAnZ3JpZExheW91dCBncm91cCBncm91cE9iamVjdHNCeU5hbWUgSGZBZGRBdHRyYWN0b3JUb0FTIEhmQXNzaWduQVMgSGZCdWlsZEVxdWFsTWFwICdcbiAgICAgICsgJ0hmQnVpbGRGdXJGaWxlcyBIZkJ1aWxkRnVySW1hZ2VzIEhmQ2FuY2VsQUZSIEhmQ29ubmVjdEFTVG9IRiBIZkNyZWF0ZUF0dHJhY3RvciAnXG4gICAgICArICdIZkRlbGV0ZUFTIEhmRWRpdEFTIEhmUGVyZm9ybUNyZWF0ZUFTIEhmUmVtb3ZlQXR0cmFjdG9yRnJvbUFTIEhmU2VsZWN0QXR0YWNoZWQgJ1xuICAgICAgKyAnSGZTZWxlY3RBdHRyYWN0b3JzIEhmVW5Bc3NpZ25BUyBoYXJkZW5Qb2ludEN1cnZlIGhhcmR3YXJlIGhhcmR3YXJlUmVuZGVyUGFuZWwgJ1xuICAgICAgKyAnaGVhZHNVcERpc3BsYXkgaGVhZHNVcE1lc3NhZ2UgaGVscCBoZWxwTGluZSBoZXJtaXRlIGhpZGUgaGlsaXRlIGhpdFRlc3QgaG90Qm94IGhvdGtleSAnXG4gICAgICArICdob3RrZXlDaGVjayBoc3ZfdG9fcmdiIGh1ZEJ1dHRvbiBodWRTbGlkZXIgaHVkU2xpZGVyQnV0dG9uIGh3UmVmbGVjdGlvbk1hcCBod1JlbmRlciAnXG4gICAgICArICdod1JlbmRlckxvYWQgaHlwZXJHcmFwaCBoeXBlclBhbmVsIGh5cGVyU2hhZGUgaHlwb3QgaWNvblRleHRCdXR0b24gaWNvblRleHRDaGVja0JveCAnXG4gICAgICArICdpY29uVGV4dFJhZGlvQnV0dG9uIGljb25UZXh0UmFkaW9Db2xsZWN0aW9uIGljb25UZXh0U2Nyb2xsTGlzdCBpY29uVGV4dFN0YXRpY0xhYmVsICdcbiAgICAgICsgJ2lrSGFuZGxlIGlrSGFuZGxlQ3R4IGlrSGFuZGxlRGlzcGxheVNjYWxlIGlrU29sdmVyIGlrU3BsaW5lSGFuZGxlQ3R4IGlrU3lzdGVtICdcbiAgICAgICsgJ2lrU3lzdGVtSW5mbyBpa2ZrRGlzcGxheU1ldGhvZCBpbGx1c3RyYXRvckN1cnZlcyBpbWFnZSBpbWZQbHVnaW5zIGluaGVyaXRUcmFuc2Zvcm0gJ1xuICAgICAgKyAnaW5zZXJ0Sm9pbnQgaW5zZXJ0Sm9pbnRDdHggaW5zZXJ0S2V5Q3R4IGluc2VydEtub3RDdXJ2ZSBpbnNlcnRLbm90U3VyZmFjZSBpbnN0YW5jZSAnXG4gICAgICArICdpbnN0YW5jZWFibGUgaW5zdGFuY2VyIGludEZpZWxkIGludEZpZWxkR3JwIGludFNjcm9sbEJhciBpbnRTbGlkZXIgaW50U2xpZGVyR3JwICdcbiAgICAgICsgJ2ludGVyVG9VSSBpbnRlcm5hbFZhciBpbnRlcnNlY3QgaXByRW5naW5lIGlzQW5pbUN1cnZlIGlzQ29ubmVjdGVkIGlzRGlydHkgaXNQYXJlbnRPZiAnXG4gICAgICArICdpc1NhbWVPYmplY3QgaXNUcnVlIGlzVmFsaWRPYmplY3ROYW1lIGlzVmFsaWRTdHJpbmcgaXNWYWxpZFVpTmFtZSBpc29sYXRlU2VsZWN0ICdcbiAgICAgICsgJ2l0ZW1GaWx0ZXIgaXRlbUZpbHRlckF0dHIgaXRlbUZpbHRlclJlbmRlciBpdGVtRmlsdGVyVHlwZSBqb2ludCBqb2ludENsdXN0ZXIgam9pbnRDdHggJ1xuICAgICAgKyAnam9pbnREaXNwbGF5U2NhbGUgam9pbnRMYXR0aWNlIGtleVRhbmdlbnQga2V5ZnJhbWUga2V5ZnJhbWVPdXRsaW5lciAnXG4gICAgICArICdrZXlmcmFtZVJlZ2lvbkN1cnJlbnRUaW1lQ3R4IGtleWZyYW1lUmVnaW9uRGlyZWN0S2V5Q3R4IGtleWZyYW1lUmVnaW9uRG9sbHlDdHggJ1xuICAgICAgKyAna2V5ZnJhbWVSZWdpb25JbnNlcnRLZXlDdHgga2V5ZnJhbWVSZWdpb25Nb3ZlS2V5Q3R4IGtleWZyYW1lUmVnaW9uU2NhbGVLZXlDdHggJ1xuICAgICAgKyAna2V5ZnJhbWVSZWdpb25TZWxlY3RLZXlDdHgga2V5ZnJhbWVSZWdpb25TZXRLZXlDdHgga2V5ZnJhbWVSZWdpb25UcmFja0N0eCAnXG4gICAgICArICdrZXlmcmFtZVN0YXRzIGxhc3NvQ29udGV4dCBsYXR0aWNlIGxhdHRpY2VEZWZvcm1LZXlDdHggbGF1bmNoIGxhdW5jaEltYWdlRWRpdG9yICdcbiAgICAgICsgJ2xheWVyQnV0dG9uIGxheWVyZWRTaGFkZXJQb3J0IGxheWVyZWRUZXh0dXJlUG9ydCBsYXlvdXQgbGF5b3V0RGlhbG9nIGxpZ2h0TGlzdCAnXG4gICAgICArICdsaWdodExpc3RFZGl0b3IgbGlnaHRMaXN0UGFuZWwgbGlnaHRsaW5rIGxpbmVJbnRlcnNlY3Rpb24gbGluZWFyUHJlY2lzaW9uIGxpbnN0ZXAgJ1xuICAgICAgKyAnbGlzdEFuaW1hdGFibGUgbGlzdEF0dHIgbGlzdENhbWVyYXMgbGlzdENvbm5lY3Rpb25zIGxpc3REZXZpY2VBdHRhY2htZW50cyBsaXN0SGlzdG9yeSAnXG4gICAgICArICdsaXN0SW5wdXREZXZpY2VBeGVzIGxpc3RJbnB1dERldmljZUJ1dHRvbnMgbGlzdElucHV0RGV2aWNlcyBsaXN0TWVudUFubm90YXRpb24gJ1xuICAgICAgKyAnbGlzdE5vZGVUeXBlcyBsaXN0UGFuZWxDYXRlZ29yaWVzIGxpc3RSZWxhdGl2ZXMgbGlzdFNldHMgbGlzdFRyYW5zZm9ybXMgJ1xuICAgICAgKyAnbGlzdFVuc2VsZWN0ZWQgbGlzdGVyRWRpdG9yIGxvYWRGbHVpZCBsb2FkTmV3U2hlbGYgbG9hZFBsdWdpbiAnXG4gICAgICArICdsb2FkUGx1Z2luTGFuZ3VhZ2VSZXNvdXJjZXMgbG9hZFByZWZPYmplY3RzIGxvY2FsaXplZFBhbmVsTGFiZWwgbG9ja05vZGUgbG9mdCBsb2cgJ1xuICAgICAgKyAnbG9uZ05hbWVPZiBsb29rVGhydSBscyBsc1Rocm91Z2hGaWx0ZXIgbHNUeXBlIGxzVUkgTWF5YXRvbXIgbWFnIG1ha2VJZGVudGl0eSBtYWtlTGl2ZSAnXG4gICAgICArICdtYWtlUGFpbnRhYmxlIG1ha2VSb2xsIG1ha2VTaW5nbGVTdXJmYWNlIG1ha2VUdWJlT24gbWFrZWJvdCBtYW5pcE1vdmVDb250ZXh0ICdcbiAgICAgICsgJ21hbmlwTW92ZUxpbWl0c0N0eCBtYW5pcE9wdGlvbnMgbWFuaXBSb3RhdGVDb250ZXh0IG1hbmlwUm90YXRlTGltaXRzQ3R4ICdcbiAgICAgICsgJ21hbmlwU2NhbGVDb250ZXh0IG1hbmlwU2NhbGVMaW1pdHNDdHggbWFya2VyIG1hdGNoIG1heCBtZW1vcnkgbWVudSBtZW51QmFyTGF5b3V0ICdcbiAgICAgICsgJ21lbnVFZGl0b3IgbWVudUl0ZW0gbWVudUl0ZW1Ub1NoZWxmIG1lbnVTZXQgbWVudVNldFByZWYgbWVzc2FnZUxpbmUgbWluIG1pbmltaXplQXBwICdcbiAgICAgICsgJ21pcnJvckpvaW50IG1vZGVsQ3VycmVudFRpbWVDdHggbW9kZWxFZGl0b3IgbW9kZWxQYW5lbCBtb3VzZSBtb3ZJbiBtb3ZPdXQgbW92ZSAnXG4gICAgICArICdtb3ZlSUt0b0ZLIG1vdmVLZXlDdHggbW92ZVZlcnRleEFsb25nRGlyZWN0aW9uIG11bHRpUHJvZmlsZUJpcmFpbFN1cmZhY2UgbXV0ZSAnXG4gICAgICArICduUGFydGljbGUgbmFtZUNvbW1hbmQgbmFtZUZpZWxkIG5hbWVzcGFjZSBuYW1lc3BhY2VJbmZvIG5ld1BhbmVsSXRlbXMgbmV3dG9uIG5vZGVDYXN0ICdcbiAgICAgICsgJ25vZGVJY29uQnV0dG9uIG5vZGVPdXRsaW5lciBub2RlUHJlc2V0IG5vZGVUeXBlIG5vaXNlIG5vbkxpbmVhciBub3JtYWxDb25zdHJhaW50ICdcbiAgICAgICsgJ25vcm1hbGl6ZSBudXJic0Jvb2xlYW4gbnVyYnNDb3B5VVZTZXQgbnVyYnNDdWJlIG51cmJzRWRpdFVWIG51cmJzUGxhbmUgbnVyYnNTZWxlY3QgJ1xuICAgICAgKyAnbnVyYnNTcXVhcmUgbnVyYnNUb1BvbHkgbnVyYnNUb1BvbHlnb25zUHJlZiBudXJic1RvU3ViZGl2IG51cmJzVG9TdWJkaXZQcmVmICdcbiAgICAgICsgJ251cmJzVVZTZXQgbnVyYnNWaWV3RGlyZWN0aW9uVmVjdG9yIG9iakV4aXN0cyBvYmplY3RDZW50ZXIgb2JqZWN0TGF5ZXIgb2JqZWN0VHlwZSAnXG4gICAgICArICdvYmplY3RUeXBlVUkgb2Jzb2xldGVQcm9jIG9jZWFuTnVyYnNQcmV2aWV3UGxhbmUgb2Zmc2V0Q3VydmUgb2Zmc2V0Q3VydmVPblN1cmZhY2UgJ1xuICAgICAgKyAnb2Zmc2V0U3VyZmFjZSBvcGVuR0xFeHRlbnNpb24gb3Blbk1heWFQcmVmIG9wdGlvbk1lbnUgb3B0aW9uTWVudUdycCBvcHRpb25WYXIgb3JiaXQgJ1xuICAgICAgKyAnb3JiaXRDdHggb3JpZW50Q29uc3RyYWludCBvdXRsaW5lckVkaXRvciBvdXRsaW5lclBhbmVsIG92ZXJyaWRlTW9kaWZpZXIgJ1xuICAgICAgKyAncGFpbnRFZmZlY3RzRGlzcGxheSBwYWlyQmxlbmQgcGFsZXR0ZVBvcnQgcGFuZUxheW91dCBwYW5lbCBwYW5lbENvbmZpZ3VyYXRpb24gJ1xuICAgICAgKyAncGFuZWxIaXN0b3J5IHBhcmFtRGltQ29udGV4dCBwYXJhbURpbWVuc2lvbiBwYXJhbUxvY2F0b3IgcGFyZW50IHBhcmVudENvbnN0cmFpbnQgJ1xuICAgICAgKyAncGFydGljbGUgcGFydGljbGVFeGlzdHMgcGFydGljbGVJbnN0YW5jZXIgcGFydGljbGVSZW5kZXJJbmZvIHBhcnRpdGlvbiBwYXN0ZUtleSAnXG4gICAgICArICdwYXRoQW5pbWF0aW9uIHBhdXNlIHBjbG9zZSBwZXJjZW50IHBlcmZvcm1hbmNlT3B0aW9ucyBwZnhzdHJva2VzIHBpY2tXYWxrIHBpY3R1cmUgJ1xuICAgICAgKyAncGl4ZWxNb3ZlIHBsYW5hclNyZiBwbGFuZSBwbGF5IHBsYXliYWNrT3B0aW9ucyBwbGF5Ymxhc3QgcGx1Z0F0dHIgcGx1Z05vZGUgcGx1Z2luSW5mbyAnXG4gICAgICArICdwbHVnaW5SZXNvdXJjZVV0aWwgcG9pbnRDb25zdHJhaW50IHBvaW50Q3VydmVDb25zdHJhaW50IHBvaW50TGlnaHQgcG9pbnRNYXRyaXhNdWx0ICdcbiAgICAgICsgJ3BvaW50T25DdXJ2ZSBwb2ludE9uU3VyZmFjZSBwb2ludFBvc2l0aW9uIHBvbGVWZWN0b3JDb25zdHJhaW50IHBvbHlBcHBlbmQgJ1xuICAgICAgKyAncG9seUFwcGVuZEZhY2V0Q3R4IHBvbHlBcHBlbmRWZXJ0ZXggcG9seUF1dG9Qcm9qZWN0aW9uIHBvbHlBdmVyYWdlTm9ybWFsICdcbiAgICAgICsgJ3BvbHlBdmVyYWdlVmVydGV4IHBvbHlCZXZlbCBwb2x5QmxlbmRDb2xvciBwb2x5QmxpbmREYXRhIHBvbHlCb29sT3AgcG9seUJyaWRnZUVkZ2UgJ1xuICAgICAgKyAncG9seUNhY2hlTW9uaXRvciBwb2x5Q2hlY2sgcG9seUNoaXBPZmYgcG9seUNsaXBib2FyZCBwb2x5Q2xvc2VCb3JkZXIgcG9seUNvbGxhcHNlRWRnZSAnXG4gICAgICArICdwb2x5Q29sbGFwc2VGYWNldCBwb2x5Q29sb3JCbGluZERhdGEgcG9seUNvbG9yRGVsIHBvbHlDb2xvclBlclZlcnRleCBwb2x5Q29sb3JTZXQgJ1xuICAgICAgKyAncG9seUNvbXBhcmUgcG9seUNvbmUgcG9seUNvcHlVViBwb2x5Q3JlYXNlIHBvbHlDcmVhc2VDdHggcG9seUNyZWF0ZUZhY2V0ICdcbiAgICAgICsgJ3BvbHlDcmVhdGVGYWNldEN0eCBwb2x5Q3ViZSBwb2x5Q3V0IHBvbHlDdXRDdHggcG9seUN5bGluZGVyIHBvbHlDeWxpbmRyaWNhbFByb2plY3Rpb24gJ1xuICAgICAgKyAncG9seURlbEVkZ2UgcG9seURlbEZhY2V0IHBvbHlEZWxWZXJ0ZXggcG9seUR1cGxpY2F0ZUFuZENvbm5lY3QgcG9seUR1cGxpY2F0ZUVkZ2UgJ1xuICAgICAgKyAncG9seUVkaXRVViBwb2x5RWRpdFVWU2hlbGwgcG9seUV2YWx1YXRlIHBvbHlFeHRydWRlRWRnZSBwb2x5RXh0cnVkZUZhY2V0ICdcbiAgICAgICsgJ3BvbHlFeHRydWRlVmVydGV4IHBvbHlGbGlwRWRnZSBwb2x5RmxpcFVWIHBvbHlGb3JjZVVWIHBvbHlHZW9TYW1wbGVyIHBvbHlIZWxpeCAnXG4gICAgICArICdwb2x5SW5mbyBwb2x5SW5zdGFsbEFjdGlvbiBwb2x5TGF5b3V0VVYgcG9seUxpc3RDb21wb25lbnRDb252ZXJzaW9uIHBvbHlNYXBDdXQgJ1xuICAgICAgKyAncG9seU1hcERlbCBwb2x5TWFwU2V3IHBvbHlNYXBTZXdNb3ZlIHBvbHlNZXJnZUVkZ2UgcG9seU1lcmdlRWRnZUN0eCBwb2x5TWVyZ2VGYWNldCAnXG4gICAgICArICdwb2x5TWVyZ2VGYWNldEN0eCBwb2x5TWVyZ2VVViBwb2x5TWVyZ2VWZXJ0ZXggcG9seU1pcnJvckZhY2UgcG9seU1vdmVFZGdlICdcbiAgICAgICsgJ3BvbHlNb3ZlRmFjZXQgcG9seU1vdmVGYWNldFVWIHBvbHlNb3ZlVVYgcG9seU1vdmVWZXJ0ZXggcG9seU5vcm1hbCBwb2x5Tm9ybWFsUGVyVmVydGV4ICdcbiAgICAgICsgJ3BvbHlOb3JtYWxpemVVViBwb2x5T3B0VXZzIHBvbHlPcHRpb25zIHBvbHlPdXRwdXQgcG9seVBpcGUgcG9seVBsYW5hclByb2plY3Rpb24gJ1xuICAgICAgKyAncG9seVBsYW5lIHBvbHlQbGF0b25pY1NvbGlkIHBvbHlQb2tlIHBvbHlQcmltaXRpdmUgcG9seVByaXNtIHBvbHlQcm9qZWN0aW9uICdcbiAgICAgICsgJ3BvbHlQeXJhbWlkIHBvbHlRdWFkIHBvbHlRdWVyeUJsaW5kRGF0YSBwb2x5UmVkdWNlIHBvbHlTZWxlY3QgcG9seVNlbGVjdENvbnN0cmFpbnQgJ1xuICAgICAgKyAncG9seVNlbGVjdENvbnN0cmFpbnRNb25pdG9yIHBvbHlTZWxlY3RDdHggcG9seVNlbGVjdEVkaXRDdHggcG9seVNlcGFyYXRlICdcbiAgICAgICsgJ3BvbHlTZXRUb0ZhY2VOb3JtYWwgcG9seVNld0VkZ2UgcG9seVNob3J0ZXN0UGF0aEN0eCBwb2x5U21vb3RoIHBvbHlTb2Z0RWRnZSAnXG4gICAgICArICdwb2x5U3BoZXJlIHBvbHlTcGhlcmljYWxQcm9qZWN0aW9uIHBvbHlTcGxpdCBwb2x5U3BsaXRDdHggcG9seVNwbGl0RWRnZSBwb2x5U3BsaXRSaW5nICdcbiAgICAgICsgJ3BvbHlTcGxpdFZlcnRleCBwb2x5U3RyYWlnaHRlblVWQm9yZGVyIHBvbHlTdWJkaXZpZGVFZGdlIHBvbHlTdWJkaXZpZGVGYWNldCAnXG4gICAgICArICdwb2x5VG9TdWJkaXYgcG9seVRvcnVzIHBvbHlUcmFuc2ZlciBwb2x5VHJpYW5ndWxhdGUgcG9seVVWU2V0IHBvbHlVbml0ZSBwb2x5V2VkZ2VGYWNlICdcbiAgICAgICsgJ3BvcGVuIHBvcHVwTWVudSBwb3NlIHBvdyBwcmVsb2FkUmVmRWQgcHJpbnQgcHJvZ3Jlc3NCYXIgcHJvZ3Jlc3NXaW5kb3cgcHJvakZpbGVWaWV3ZXIgJ1xuICAgICAgKyAncHJvamVjdEN1cnZlIHByb2plY3RUYW5nZW50IHByb2plY3Rpb25Db250ZXh0IHByb2plY3Rpb25NYW5pcCBwcm9tcHREaWFsb2cgcHJvcE1vZEN0eCAnXG4gICAgICArICdwcm9wTW92ZSBwc2RDaGFubmVsT3V0bGluZXIgcHNkRWRpdFRleHR1cmVGaWxlIHBzZEV4cG9ydCBwc2RUZXh0dXJlRmlsZSBwdXRlbnYgcHdkICdcbiAgICAgICsgJ3B5dGhvbiBxdWVyeVN1YmRpdiBxdWl0IHJhZF90b19kZWcgcmFkaWFsIHJhZGlvQnV0dG9uIHJhZGlvQnV0dG9uR3JwIHJhZGlvQ29sbGVjdGlvbiAnXG4gICAgICArICdyYWRpb01lbnVJdGVtQ29sbGVjdGlvbiByYW1wQ29sb3JQb3J0IHJhbmQgcmFuZG9taXplRm9sbGljbGVzIHJhbmRzdGF0ZSByYW5nZUNvbnRyb2wgJ1xuICAgICAgKyAncmVhZFRha2UgcmVidWlsZEN1cnZlIHJlYnVpbGRTdXJmYWNlIHJlY29yZEF0dHIgcmVjb3JkRGV2aWNlIHJlZG8gcmVmZXJlbmNlICdcbiAgICAgICsgJ3JlZmVyZW5jZUVkaXQgcmVmZXJlbmNlUXVlcnkgcmVmaW5lU3ViZGl2U2VsZWN0aW9uTGlzdCByZWZyZXNoIHJlZnJlc2hBRSAnXG4gICAgICArICdyZWdpc3RlclBsdWdpblJlc291cmNlIHJlaGFzaCByZWxvYWRJbWFnZSByZW1vdmVKb2ludCByZW1vdmVNdWx0aUluc3RhbmNlICdcbiAgICAgICsgJ3JlbW92ZVBhbmVsQ2F0ZWdvcnkgcmVuYW1lIHJlbmFtZUF0dHIgcmVuYW1lU2VsZWN0aW9uTGlzdCByZW5hbWVVSSByZW5kZXIgJ1xuICAgICAgKyAncmVuZGVyR2xvYmFsc05vZGUgcmVuZGVySW5mbyByZW5kZXJMYXllckJ1dHRvbiByZW5kZXJMYXllclBhcmVudCAnXG4gICAgICArICdyZW5kZXJMYXllclBvc3RQcm9jZXNzIHJlbmRlckxheWVyVW5wYXJlbnQgcmVuZGVyTWFuaXAgcmVuZGVyUGFydGl0aW9uICdcbiAgICAgICsgJ3JlbmRlclF1YWxpdHlOb2RlIHJlbmRlclNldHRpbmdzIHJlbmRlclRodW1ibmFpbFVwZGF0ZSByZW5kZXJXaW5kb3dFZGl0b3IgJ1xuICAgICAgKyAncmVuZGVyV2luZG93U2VsZWN0Q29udGV4dCByZW5kZXJlciByZW9yZGVyIHJlb3JkZXJEZWZvcm1lcnMgcmVxdWlyZXMgcmVyb290ICdcbiAgICAgICsgJ3Jlc2FtcGxlRmx1aWQgcmVzZXRBRSByZXNldFBmeFRvUG9seUNhbWVyYSByZXNldFRvb2wgcmVzb2x1dGlvbk5vZGUgcmV0YXJnZXQgJ1xuICAgICAgKyAncmV2ZXJzZUN1cnZlIHJldmVyc2VTdXJmYWNlIHJldm9sdmUgcmdiX3RvX2hzdiByaWdpZEJvZHkgcmlnaWRTb2x2ZXIgcm9sbCByb2xsQ3R4ICdcbiAgICAgICsgJ3Jvb3RPZiByb3Qgcm90YXRlIHJvdGF0aW9uSW50ZXJwb2xhdGlvbiByb3VuZENvbnN0YW50UmFkaXVzIHJvd0NvbHVtbkxheW91dCByb3dMYXlvdXQgJ1xuICAgICAgKyAncnVuVGltZUNvbW1hbmQgcnVudXAgc2FtcGxlSW1hZ2Ugc2F2ZUFsbFNoZWx2ZXMgc2F2ZUF0dHJQcmVzZXQgc2F2ZUZsdWlkIHNhdmVJbWFnZSAnXG4gICAgICArICdzYXZlSW5pdGlhbFN0YXRlIHNhdmVNZW51IHNhdmVQcmVmT2JqZWN0cyBzYXZlUHJlZnMgc2F2ZVNoZWxmIHNhdmVUb29sU2V0dGluZ3Mgc2NhbGUgJ1xuICAgICAgKyAnc2NhbGVCcnVzaEJyaWdodG5lc3Mgc2NhbGVDb21wb25lbnRzIHNjYWxlQ29uc3RyYWludCBzY2FsZUtleSBzY2FsZUtleUN0eCBzY2VuZUVkaXRvciAnXG4gICAgICArICdzY2VuZVVJUmVwbGFjZW1lbnQgc2NtaCBzY3JpcHRDdHggc2NyaXB0RWRpdG9ySW5mbyBzY3JpcHRKb2Igc2NyaXB0Tm9kZSBzY3JpcHRUYWJsZSAnXG4gICAgICArICdzY3JpcHRUb1NoZWxmIHNjcmlwdGVkUGFuZWwgc2NyaXB0ZWRQYW5lbFR5cGUgc2Nyb2xsRmllbGQgc2Nyb2xsTGF5b3V0IHNjdWxwdCAnXG4gICAgICArICdzZWFyY2hQYXRoQXJyYXkgc2VlZCBzZWxMb2FkU2V0dGluZ3Mgc2VsZWN0IHNlbGVjdENvbnRleHQgc2VsZWN0Q3VydmVDViBzZWxlY3RLZXkgJ1xuICAgICAgKyAnc2VsZWN0S2V5Q3R4IHNlbGVjdEtleWZyYW1lUmVnaW9uQ3R4IHNlbGVjdE1vZGUgc2VsZWN0UHJlZiBzZWxlY3RQcmlvcml0eSBzZWxlY3RUeXBlICdcbiAgICAgICsgJ3NlbGVjdGVkTm9kZXMgc2VsZWN0aW9uQ29ubmVjdGlvbiBzZXBhcmF0b3Igc2V0QXR0ciBzZXRBdHRyRW51bVJlc291cmNlICdcbiAgICAgICsgJ3NldEF0dHJNYXBwaW5nIHNldEF0dHJOaWNlTmFtZVJlc291cmNlIHNldENvbnN0cmFpbnRSZXN0UG9zaXRpb24gJ1xuICAgICAgKyAnc2V0RGVmYXVsdFNoYWRpbmdHcm91cCBzZXREcml2ZW5LZXlmcmFtZSBzZXREeW5hbWljIHNldEVkaXRDdHggc2V0RWRpdG9yIHNldEZsdWlkQXR0ciAnXG4gICAgICArICdzZXRGb2N1cyBzZXRJbmZpbml0eSBzZXRJbnB1dERldmljZU1hcHBpbmcgc2V0S2V5Q3R4IHNldEtleVBhdGggc2V0S2V5ZnJhbWUgJ1xuICAgICAgKyAnc2V0S2V5ZnJhbWVCbGVuZHNoYXBlVGFyZ2V0V3RzIHNldE1lbnVNb2RlIHNldE5vZGVOaWNlTmFtZVJlc291cmNlIHNldE5vZGVUeXBlRmxhZyAnXG4gICAgICArICdzZXRQYXJlbnQgc2V0UGFydGljbGVBdHRyIHNldFBmeFRvUG9seUNhbWVyYSBzZXRQbHVnaW5SZXNvdXJjZSBzZXRQcm9qZWN0ICdcbiAgICAgICsgJ3NldFN0YW1wRGVuc2l0eSBzZXRTdGFydHVwTWVzc2FnZSBzZXRTdGF0ZSBzZXRUb29sVG8gc2V0VUlUZW1wbGF0ZSBzZXRYZm9ybU1hbmlwIHNldHMgJ1xuICAgICAgKyAnc2hhZGluZ0Nvbm5lY3Rpb24gc2hhZGluZ0dlb21ldHJ5UmVsQ3R4IHNoYWRpbmdMaWdodFJlbEN0eCBzaGFkaW5nTmV0d29ya0NvbXBhcmUgJ1xuICAgICAgKyAnc2hhZGluZ05vZGUgc2hhcGVDb21wYXJlIHNoZWxmQnV0dG9uIHNoZWxmTGF5b3V0IHNoZWxmVGFiTGF5b3V0IHNoZWxsRmllbGQgJ1xuICAgICAgKyAnc2hvcnROYW1lT2Ygc2hvd0hlbHAgc2hvd0hpZGRlbiBzaG93TWFuaXBDdHggc2hvd1NlbGVjdGlvbkluVGl0bGUgJ1xuICAgICAgKyAnc2hvd1NoYWRpbmdHcm91cEF0dHJFZGl0b3Igc2hvd1dpbmRvdyBzaWduIHNpbXBsaWZ5IHNpbiBzaW5nbGVQcm9maWxlQmlyYWlsU3VyZmFjZSAnXG4gICAgICArICdzaXplIHNpemVCeXRlcyBza2luQ2x1c3RlciBza2luUGVyY2VudCBzbW9vdGhDdXJ2ZSBzbW9vdGhUYW5nZW50U3VyZmFjZSBzbW9vdGhzdGVwICdcbiAgICAgICsgJ3NuYXAydG8yIHNuYXBLZXkgc25hcE1vZGUgc25hcFRvZ2V0aGVyQ3R4IHNuYXBzaG90IHNvZnQgc29mdE1vZCBzb2Z0TW9kQ3R4IHNvcnQgc291bmQgJ1xuICAgICAgKyAnc291bmRDb250cm9sIHNvdXJjZSBzcGFjZUxvY2F0b3Igc3BoZXJlIHNwaHJhbmQgc3BvdExpZ2h0IHNwb3RMaWdodFByZXZpZXdQb3J0ICdcbiAgICAgICsgJ3NwcmVhZFNoZWV0RWRpdG9yIHNwcmluZyBzcXJ0IHNxdWFyZVN1cmZhY2Ugc3J0Q29udGV4dCBzdGFja1RyYWNlIHN0YXJ0U3RyaW5nICdcbiAgICAgICsgJ3N0YXJ0c1dpdGggc3RpdGNoQW5kRXhwbG9kZVNoZWxsIHN0aXRjaFN1cmZhY2Ugc3RpdGNoU3VyZmFjZVBvaW50cyBzdHJjbXAgJ1xuICAgICAgKyAnc3RyaW5nQXJyYXlDYXRlbmF0ZSBzdHJpbmdBcnJheUNvbnRhaW5zIHN0cmluZ0FycmF5Q291bnQgc3RyaW5nQXJyYXlJbnNlcnRBdEluZGV4ICdcbiAgICAgICsgJ3N0cmluZ0FycmF5SW50ZXJzZWN0b3Igc3RyaW5nQXJyYXlSZW1vdmUgc3RyaW5nQXJyYXlSZW1vdmVBdEluZGV4ICdcbiAgICAgICsgJ3N0cmluZ0FycmF5UmVtb3ZlRHVwbGljYXRlcyBzdHJpbmdBcnJheVJlbW92ZUV4YWN0IHN0cmluZ0FycmF5VG9TdHJpbmcgJ1xuICAgICAgKyAnc3RyaW5nVG9TdHJpbmdBcnJheSBzdHJpcCBzdHJpcFByZWZpeEZyb21OYW1lIHN0cm9rZSBzdWJkQXV0b1Byb2plY3Rpb24gJ1xuICAgICAgKyAnc3ViZENsZWFuVG9wb2xvZ3kgc3ViZENvbGxhcHNlIHN1YmREdXBsaWNhdGVBbmRDb25uZWN0IHN1YmRFZGl0VVYgJ1xuICAgICAgKyAnc3ViZExpc3RDb21wb25lbnRDb252ZXJzaW9uIHN1YmRNYXBDdXQgc3ViZE1hcFNld01vdmUgc3ViZE1hdGNoVG9wb2xvZ3kgc3ViZE1pcnJvciAnXG4gICAgICArICdzdWJkVG9CbGluZCBzdWJkVG9Qb2x5IHN1YmRUcmFuc2ZlclVWc1RvQ2FjaGUgc3ViZGl2IHN1YmRpdkNyZWFzZSAnXG4gICAgICArICdzdWJkaXZEaXNwbGF5U21vb3RobmVzcyBzdWJzdGl0dXRlIHN1YnN0aXR1dGVBbGxTdHJpbmcgc3Vic3RpdHV0ZUdlb21ldHJ5IHN1YnN0cmluZyAnXG4gICAgICArICdzdXJmYWNlIHN1cmZhY2VTYW1wbGVyIHN1cmZhY2VTaGFkZXJMaXN0IHN3YXRjaERpc3BsYXlQb3J0IHN3aXRjaFRhYmxlIHN5bWJvbEJ1dHRvbiAnXG4gICAgICArICdzeW1ib2xDaGVja0JveCBzeXNGaWxlIHN5c3RlbSB0YWJMYXlvdXQgdGFuIHRhbmdlbnRDb25zdHJhaW50IHRleExhdHRpY2VEZWZvcm1Db250ZXh0ICdcbiAgICAgICsgJ3RleE1hbmlwQ29udGV4dCB0ZXhNb3ZlQ29udGV4dCB0ZXhNb3ZlVVZTaGVsbENvbnRleHQgdGV4Um90YXRlQ29udGV4dCB0ZXhTY2FsZUNvbnRleHQgJ1xuICAgICAgKyAndGV4U2VsZWN0Q29udGV4dCB0ZXhTZWxlY3RTaG9ydGVzdFBhdGhDdHggdGV4U211ZGdlVVZDb250ZXh0IHRleFdpblRvb2xDdHggdGV4dCAnXG4gICAgICArICd0ZXh0Q3VydmVzIHRleHRGaWVsZCB0ZXh0RmllbGRCdXR0b25HcnAgdGV4dEZpZWxkR3JwIHRleHRNYW5pcCB0ZXh0U2Nyb2xsTGlzdCAnXG4gICAgICArICd0ZXh0VG9TaGVsZiB0ZXh0dXJlRGlzcGxhY2VQbGFuZSB0ZXh0dXJlSGFpckNvbG9yIHRleHR1cmVQbGFjZW1lbnRDb250ZXh0ICdcbiAgICAgICsgJ3RleHR1cmVXaW5kb3cgdGhyZWFkQ291bnQgdGhyZWVQb2ludEFyY0N0eCB0aW1lQ29udHJvbCB0aW1lUG9ydCB0aW1lclggdG9OYXRpdmVQYXRoICdcbiAgICAgICsgJ3RvZ2dsZSB0b2dnbGVBeGlzIHRvZ2dsZVdpbmRvd1Zpc2liaWxpdHkgdG9rZW5pemUgdG9rZW5pemVMaXN0IHRvbGVyYW5jZSB0b2xvd2VyICdcbiAgICAgICsgJ3Rvb2xCdXR0b24gdG9vbENvbGxlY3Rpb24gdG9vbERyb3BwZWQgdG9vbEhhc09wdGlvbnMgdG9vbFByb3BlcnR5V2luZG93IHRvcnVzIHRvdXBwZXIgJ1xuICAgICAgKyAndHJhY2UgdHJhY2sgdHJhY2tDdHggdHJhbnNmZXJBdHRyaWJ1dGVzIHRyYW5zZm9ybUNvbXBhcmUgdHJhbnNmb3JtTGltaXRzIHRyYW5zbGF0b3IgJ1xuICAgICAgKyAndHJpbSB0cnVuYyB0cnVuY2F0ZUZsdWlkQ2FjaGUgdHJ1bmNhdGVIYWlyQ2FjaGUgdHVtYmxlIHR1bWJsZUN0eCB0dXJidWxlbmNlICdcbiAgICAgICsgJ3R3b1BvaW50QXJjQ3R4IHVpUmVzIHVpVGVtcGxhdGUgdW5hc3NpZ25JbnB1dERldmljZSB1bmRvIHVuZG9JbmZvIHVuZ3JvdXAgdW5pZm9ybSB1bml0ICdcbiAgICAgICsgJ3VubG9hZFBsdWdpbiB1bnRhbmdsZVVWIHVudGl0bGVkRmlsZU5hbWUgdW50cmltIHVwQXhpcyB1cGRhdGVBRSB1c2VyQ3R4IHV2TGluayAnXG4gICAgICArICd1dlNuYXBzaG90IHZhbGlkYXRlU2hlbGZOYW1lIHZlY3Rvcml6ZSB2aWV3MmRUb29sQ3R4IHZpZXdDYW1lcmEgdmlld0NsaXBQbGFuZSAnXG4gICAgICArICd2aWV3Rml0IHZpZXdIZWFkT24gdmlld0xvb2tBdCB2aWV3TWFuaXAgdmlld1BsYWNlIHZpZXdTZXQgdmlzb3Igdm9sdW1lQXhpcyB2b3J0ZXggJ1xuICAgICAgKyAnd2FpdEN1cnNvciB3YXJuaW5nIHdlYkJyb3dzZXIgd2ViQnJvd3NlclByZWZzIHdoYXRJcyB3aW5kb3cgd2luZG93UHJlZiB3aXJlICdcbiAgICAgICsgJ3dpcmVDb250ZXh0IHdvcmtzcGFjZSB3cmlua2xlIHdyaW5rbGVDb250ZXh0IHdyaXRlVGFrZSB4Ym1MYW5nUGF0aExpc3QgeGZvcm0nLFxuICAgIGlsbGVnYWw6ICc8LycsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnYCcsXG4gICAgICAgIGVuZDogJ2AnLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHsgLy8gZWF0cyB2YXJpYWJsZXNcbiAgICAgICAgYmVnaW46IC9bJCVAXShcXF5cXHdcXGJ8I1xcdyt8W15cXHNcXHd7XXxcXHtcXHcrXFx9fFxcdyspLyB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZWw7XG4iLCAiLypcbkxhbmd1YWdlOiBNZXJjdXJ5XG5BdXRob3I6IG11Y2FobyA8bWt1Y2tvQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBNZXJjdXJ5IGlzIGEgbG9naWMvZnVuY3Rpb25hbCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aGljaCBjb21iaW5lcyB0aGUgY2xhcml0eSBhbmQgZXhwcmVzc2l2ZW5lc3Mgb2YgZGVjbGFyYXRpdmUgcHJvZ3JhbW1pbmcgd2l0aCBhZHZhbmNlZCBzdGF0aWMgYW5hbHlzaXMgYW5kIGVycm9yIGRldGVjdGlvbiBmZWF0dXJlcy5cbldlYnNpdGU6IGh0dHBzOi8vd3d3Lm1lcmN1cnlsYW5nLm9yZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbmZ1bmN0aW9uIG1lcmN1cnkoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgICAgJ21vZHVsZSB1c2VfbW9kdWxlIGltcG9ydF9tb2R1bGUgaW5jbHVkZV9tb2R1bGUgZW5kX21vZHVsZSBpbml0aWFsaXNlICdcbiAgICAgICsgJ211dGFibGUgaW5pdGlhbGl6ZSBmaW5hbGl6ZSBmaW5hbGlzZSBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb24gcHJlZCAnXG4gICAgICArICdtb2RlIGZ1bmMgdHlwZSBpbnN0IHNvbHZlciBhbnlfcHJlZCBhbnlfZnVuYyBpcyBzZW1pZGV0IGRldCBub25kZXQgJ1xuICAgICAgKyAnbXVsdGkgZXJyb25lb3VzIGZhaWx1cmUgY2Nfbm9uZGV0IGNjX211bHRpIHR5cGVjbGFzcyBpbnN0YW5jZSB3aGVyZSAnXG4gICAgICArICdwcmFnbWEgcHJvbWlzZSBleHRlcm5hbCB0cmFjZSBhdG9taWMgb3JfZWxzZSByZXF1aXJlX2NvbXBsZXRlX3N3aXRjaCAnXG4gICAgICArICdyZXF1aXJlX2RldCByZXF1aXJlX3NlbWlkZXQgcmVxdWlyZV9tdWx0aSByZXF1aXJlX25vbmRldCAnXG4gICAgICArICdyZXF1aXJlX2NjX211bHRpIHJlcXVpcmVfY2Nfbm9uZGV0IHJlcXVpcmVfZXJyb25lb3VzIHJlcXVpcmVfZmFpbHVyZScsXG4gICAgbWV0YTpcbiAgICAgIC8vIHByYWdtYVxuICAgICAgJ2lubGluZSBub19pbmxpbmUgdHlwZV9zcGVjIHNvdXJjZV9maWxlIGZhY3RfdGFibGUgb2Jzb2xldGUgbWVtbyAnXG4gICAgICArICdsb29wX2NoZWNrIG1pbmltYWxfbW9kZWwgdGVybWluYXRlcyBkb2VzX25vdF90ZXJtaW5hdGUgJ1xuICAgICAgKyAnY2hlY2tfdGVybWluYXRpb24gcHJvbWlzZV9lcXVpdmFsZW50X2NsYXVzZXMgJ1xuICAgICAgLy8gcHJlcHJvY2Vzc29yXG4gICAgICArICdmb3JlaWduX3Byb2MgZm9yZWlnbl9kZWNsIGZvcmVpZ25fY29kZSBmb3JlaWduX3R5cGUgJ1xuICAgICAgKyAnZm9yZWlnbl9pbXBvcnRfbW9kdWxlIGZvcmVpZ25fZXhwb3J0X2VudW0gZm9yZWlnbl9leHBvcnQgJ1xuICAgICAgKyAnZm9yZWlnbl9lbnVtIG1heV9jYWxsX21lcmN1cnkgd2lsbF9ub3RfY2FsbF9tZXJjdXJ5IHRocmVhZF9zYWZlICdcbiAgICAgICsgJ25vdF90aHJlYWRfc2FmZSBtYXliZV90aHJlYWRfc2FmZSBwcm9taXNlX3B1cmUgcHJvbWlzZV9zZW1pcHVyZSAnXG4gICAgICArICd0YWJsZWRfZm9yX2lvIGxvY2FsIHVudHJhaWxlZCB0cmFpbGVkIGF0dGFjaF90b19pb19zdGF0ZSAnXG4gICAgICArICdjYW5fcGFzc19hc19tZXJjdXJ5X3R5cGUgc3RhYmxlIHdpbGxfbm90X3Rocm93X2V4Y2VwdGlvbiAnXG4gICAgICArICdtYXlfbW9kaWZ5X3RyYWlsIHdpbGxfbm90X21vZGlmeV90cmFpbCBtYXlfZHVwbGljYXRlICdcbiAgICAgICsgJ21heV9ub3RfZHVwbGljYXRlIGFmZmVjdHNfbGl2ZW5lc3MgZG9lc19ub3RfYWZmZWN0X2xpdmVuZXNzICdcbiAgICAgICsgJ2RvZXNudF9hZmZlY3RfbGl2ZW5lc3Mgbm9fc2hhcmluZyB1bmtub3duX3NoYXJpbmcgc2hhcmluZycsXG4gICAgYnVpbHRfaW46XG4gICAgICAnc29tZSBhbGwgbm90IGlmIHRoZW4gZWxzZSB0cnVlIGZhaWwgZmFsc2UgdHJ5IGNhdGNoIGNhdGNoX2FueSAnXG4gICAgICArICdzZW1pZGV0X3RydWUgc2VtaWRldF9mYWxzZSBzZW1pZGV0X2ZhaWwgaW1wdXJlX3RydWUgaW1wdXJlIHNlbWlwdXJlJ1xuICB9O1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoJyUnLCAnJCcpO1xuXG4gIGNvbnN0IE5VTUNPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogXCIwJy5cXFxcfDBbYm94XVswLTlhLWZBLUZdKlwiXG4gIH07XG5cbiAgY29uc3QgQVRPTSA9IGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHsgcmVsZXZhbmNlOiAwIH0pO1xuICBjb25zdCBTVFJJTkcgPSBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyByZWxldmFuY2U6IDAgfSk7XG4gIGNvbnN0IFNUUklOR19GTVQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnXFxcXFxcXFxbYWJmbnJ0dl1cXFxcfFxcXFxcXFxceFswLTlhLWZBLUZdKlxcXFxcXFxcXFxcXHwlWy0rIyAqLjAtOV0qW2Rpb3hYdWNzZmVFZ0dwXScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIFNUUklORy5jb250YWlucyA9IFNUUklORy5jb250YWlucy5zbGljZSgpOyAvLyB3ZSBuZWVkIG91ciBvd24gY29weSBvZiBjb250YWluc1xuICBTVFJJTkcuY29udGFpbnMucHVzaChTVFJJTkdfRk1UKTtcblxuICBjb25zdCBJTVBMSUNBVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICc8PT4nIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnPD0nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnPT4nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnL1xcXFxcXFxcJyB9LFxuICAgICAgeyBiZWdpbjogJ1xcXFxcXFxcLycgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBIRUFEX0JPRFlfQ09OSlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnOi1cXFxcfC0tPicgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc9JyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01lcmN1cnknLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdtJyxcbiAgICAgICdtb28nXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIElNUExJQ0FUSU9OLFxuICAgICAgSEVBRF9CT0RZX0NPTkpVTkNUSU9OLFxuICAgICAgQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBOVU1DT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIEFUT00sXG4gICAgICBTVFJJTkcsXG4gICAgICB7IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAvOi0vIH0sXG4gICAgICB7IC8vIHJlbGV2YW5jZSBib29zdGVyXG4gICAgICAgIGJlZ2luOiAvXFwuJC8gfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtZXJjdXJ5O1xuIiwgIi8qXG5MYW5ndWFnZTogTUlQUyBBc3NlbWJseVxuQXV0aG9yOiBOZWJ1bGVvbiBGdW1pa2EgPG5lYnVsZW9uLmZ1bWlrYUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogTUlQUyBBc3NlbWJseSAodXAgdG8gTUlQUzMyUjIpXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9NSVBTX2FyY2hpdGVjdHVyZVxuQ2F0ZWdvcnk6IGFzc2VtYmxlclxuKi9cblxuZnVuY3Rpb24gbWlwc2FzbShobGpzKSB7XG4gIC8vIGxvY2FsIGxhYmVsczogJT9bRkJdP1tBVF0/XFxkezEsMn1cXHcrXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01JUFMgQXNzZW1ibHknLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAnbWlwcycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICdcXFxcLj8nICsgaGxqcy5JREVOVF9SRSxcbiAgICAgIG1ldGE6XG4gICAgICAgIC8vIEdOVSBwcmVwcm9jc1xuICAgICAgICAnLjJieXRlIC40Ynl0ZSAuYWxpZ24gLmFzY2lpIC5hc2NpeiAuYmFsaWduIC5ieXRlIC5jb2RlIC5kYXRhIC5lbHNlIC5lbmQgLmVuZGlmIC5lbmRtIC5lbmRyIC5lcXUgLmVyciAuZXhpdG0gLmV4dGVybiAuZ2xvYmFsIC5od29yZCAuaWYgLmlmZGVmIC5pZm5kZWYgLmluY2x1ZGUgLmlycCAubG9uZyAubWFjcm8gLnJlcHQgLnJlcSAuc2VjdGlvbiAuc2V0IC5za2lwIC5zcGFjZSAudGV4dCAud29yZCAubHRvcmcgJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnJDAgJDEgJDIgJDMgJDQgJDUgJDYgJDcgJDggJDkgJDEwICQxMSAkMTIgJDEzICQxNCAkMTUgJyAvLyBpbnRlZ2VyIHJlZ2lzdGVyc1xuICAgICAgICArICckMTYgJDE3ICQxOCAkMTkgJDIwICQyMSAkMjIgJDIzICQyNCAkMjUgJDI2ICQyNyAkMjggJDI5ICQzMCAkMzEgJyAvLyBpbnRlZ2VyIHJlZ2lzdGVyc1xuICAgICAgICArICd6ZXJvIGF0IHYwIHYxIGEwIGExIGEyIGEzIGE0IGE1IGE2IGE3ICcgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICsgJ3QwIHQxIHQyIHQzIHQ0IHQ1IHQ2IHQ3IHQ4IHQ5IHMwIHMxIHMyIHMzIHM0IHM1IHM2IHM3IHM4ICcgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICsgJ2swIGsxIGdwIHNwIGZwIHJhICcgLy8gaW50ZWdlciByZWdpc3RlciBhbGlhc2VzXG4gICAgICAgICsgJyRmMCAkZjEgJGYyICRmMiAkZjQgJGY1ICRmNiAkZjcgJGY4ICRmOSAkZjEwICRmMTEgJGYxMiAkZjEzICRmMTQgJGYxNSAnIC8vIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyc1xuICAgICAgICArICckZjE2ICRmMTcgJGYxOCAkZjE5ICRmMjAgJGYyMSAkZjIyICRmMjMgJGYyNCAkZjI1ICRmMjYgJGYyNyAkZjI4ICRmMjkgJGYzMCAkZjMxICcgLy8gZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzXG4gICAgICAgICsgJ0NvbnRleHQgUmFuZG9tIEVudHJ5TG8wIEVudHJ5TG8xIENvbnRleHQgUGFnZU1hc2sgV2lyZWQgRW50cnlIaSAnIC8vIENvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzXG4gICAgICAgICsgJ0hXUkVuYSBCYWRWQWRkciBDb3VudCBDb21wYXJlIFNSIEludEN0bCBTUlNDdGwgU1JTTWFwIENhdXNlIEVQQyBQUklkICcgLy8gQ29wcm9jZXNzb3IgMCByZWdpc3RlcnNcbiAgICAgICAgKyAnRUJhc2UgQ29uZmlnIENvbmZpZzEgQ29uZmlnMiBDb25maWczIExMQWRkciBEZWJ1ZyBERVBDIERFU0FWRSBDYWNoZUVyciAnIC8vIENvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzXG4gICAgICAgICsgJ0VDQyBFcnJvckVQQyBUYWdMbyBEYXRhTG8gVGFnSGkgRGF0YUhpIFdhdGNoTG8gV2F0Y2hIaSBQZXJmQ3RsIFBlcmZDbnQgJyAvLyBDb3Byb2Nlc3NvciAwIHJlZ2lzdGVyc1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyAvLyBtbmVtb25pY3NcbiAgICAgICAgICAgIC8vIDMyLWJpdCBpbnRlZ2VyIGluc3RydWN0aW9uc1xuICAgICAgICAgICAgKyAnYWRkaT91P3xhbmRpP3xiKGFsKT98YmVxbD98YmdleihhbCk/bD98Ymd0emw/fGJsZXpsP3xibHR6KGFsKT9sP3wnXG4gICAgICAgICAgICArICdibmVsP3xjbFtvel18ZGl2dT98ZXh0fGluc3xqKGFsKT98amFscihcXFxcLmhiKT98anIoXFxcXC5oYik/fGxidT98bGh1P3wnXG4gICAgICAgICAgICArICdsbHxsdWl8bHdbbHJdP3xtYWRkdT98bWZoaXxtZmxvfG1vdm58bW92enxtb3ZlfG1zdWJ1P3xtdGhpfG10bG98bXVsfCdcbiAgICAgICAgICAgICsgJ211bHR1P3xub3B8bm9yfG9yaT98cm90cnY/fHNifHNjfHNlW2JoXXxzaHxzbGx2P3xzbHRpP3U/fHNyYXY/fCdcbiAgICAgICAgICAgICsgJ3NybHY/fHN1YnU/fHN3W2xyXT98eG9yaT98d3NiaHwnXG4gICAgICAgICAgICAvLyBmbG9hdGluZy1wb2ludCBpbnN0cnVjdGlvbnNcbiAgICAgICAgICAgICsgJ2Fic1xcXFwuW3NkXXxhZGRcXFxcLltzZF18YWxudi5wc3xiYzFbZnRdbD98J1xuICAgICAgICAgICAgKyAnY1xcXFwuKHM/Znx1bnx1P2VxfFtvdV1sdHxbb3VdbGV8bmdsZT98c2VxfGxbZXRdfG5nW2V0XSlcXFxcLltzZF18J1xuICAgICAgICAgICAgKyAnKGNlaWx8Zmxvb3J8cm91bmR8dHJ1bmMpXFxcXC5bbHddXFxcXC5bc2RdfGNmYzF8Y3Z0XFxcXC5kXFxcXC5bbHN3XXwnXG4gICAgICAgICAgICArICdjdnRcXFxcLmxcXFxcLltkc3ddfGN2dFxcXFwucHNcXFxcLnN8Y3Z0XFxcXC5zXFxcXC5bZGx3XXxjdnRcXFxcLnNcXFxcLnBbbHVdfGN2dFxcXFwud1xcXFwuW2Rsc118J1xuICAgICAgICAgICAgKyAnZGl2XFxcXC5bZHNdfGxkeD9jMXxsdXhjMXxsd3g/YzF8bWFkZFxcXFwuW3NkXXxtZmMxfG1vdltmbnR6XT9cXFxcLltkc118J1xuICAgICAgICAgICAgKyAnbXN1YlxcXFwuW3NkXXxtdGg/YzF8bXVsXFxcXC5bZHNdfG5lZ1xcXFwuW2RzXXxubWFkZFxcXFwuW2RzXXxubXN1YlxcXFwuW2RzXXwnXG4gICAgICAgICAgICArICdwW2x1XVtsdV1cXFxcLnBzfHJlY2lwXFxcXC5mbXR8cj9zcXJ0XFxcXC5bZHNdfHNkeD9jMXxzdWJcXFxcLltkc118c3V4YzF8J1xuICAgICAgICAgICAgKyAnc3d4P2MxfCdcbiAgICAgICAgICAgIC8vIHN5c3RlbSBjb250cm9sIGluc3RydWN0aW9uc1xuICAgICAgICAgICAgKyAnYnJlYWt8Y2FjaGV8ZD9lcmV0fFtkZV1pfGVoYnxtZmMwfG10YzB8cGF1c2V8cHJlZng/fHJkaHdyfCdcbiAgICAgICAgICAgICsgJ3JkcGdwcnxzZGJicHxzc25vcHxzeW5jaT98c3lzY2FsbHx0ZXFpP3x0Z2VpP3U/fHRsYihwfHJ8d1tpcl0pfCdcbiAgICAgICAgICAgICsgJ3RsdGk/dT98dG5laT98d2FpdHx3cnBncHInXG4gICAgICAgICsgJyknLFxuICAgICAgICBlbmQ6ICdcXFxccydcbiAgICAgIH0sXG4gICAgICAvLyBsaW5lcyBlbmRpbmcgd2l0aCA7IG9yICMgYXJlbid0IHJlYWxseSBjb21tZW50cywgcHJvYmFibHkgYXV0by1kZXRlY3QgZmFpbFxuICAgICAgaGxqcy5DT01NRU5UKCdbOyNdKD8hXFxcXHMqJCknLCAnJCcpLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1cXCcnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcfCcsXG4gICAgICAgIGVuZDogJ1xcXFx8JyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgLy8gaGV4XG4gICAgICAgICAgICBiZWdpbjogJzB4WzAtOWEtZl0rJyB9LFxuICAgICAgICAgIHsgLy8gYmFyZSBudW1iZXJcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGItP1xcXFxkKycgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyAvLyBHTlUgTUlQUyBzeW50YXhcbiAgICAgICAgICAgIGJlZ2luOiAnXlxcXFxzKlthLXpfXFxcXC5cXFxcJF1bYS16MC05X1xcXFwuXFxcXCRdKzonIH0sXG4gICAgICAgICAgeyAvLyBudW1iZXJlZCBsb2NhbCBsYWJlbHNcbiAgICAgICAgICAgIGJlZ2luOiAnXlxcXFxzKlswLTldKzonIH0sXG4gICAgICAgICAgeyAvLyBudW1iZXIgbG9jYWwgbGFiZWwgcmVmZXJlbmNlIChiYWNrd2FyZHMsIGZvcndhcmRzKVxuICAgICAgICAgICAgYmVnaW46ICdbMC05XStbYmZdJyB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF0sXG4gICAgLy8gZm9yd2FyZCBzbGFzaGVzIGFyZSBub3QgYWxsb3dlZFxuICAgIGlsbGVnYWw6IC9cXC8vXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWlwc2FzbTtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1pemFyXG5EZXNjcmlwdGlvbjogVGhlIE1pemFyIExhbmd1YWdlIGlzIGEgZm9ybWFsIGxhbmd1YWdlIGRlcml2ZWQgZnJvbSB0aGUgbWF0aGVtYXRpY2FsIHZlcm5hY3VsYXIuXG5BdXRob3I6IEtlbGxleSB2YW4gRXZlcnQgPGtlbGxleXZhbmV2ZXJ0QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHA6Ly9taXphci5vcmcvbGFuZ3VhZ2UvXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuZnVuY3Rpb24gbWl6YXIoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdNaXphcicsXG4gICAga2V5d29yZHM6XG4gICAgICAnZW52aXJvbiB2b2NhYnVsYXJpZXMgbm90YXRpb25zIGNvbnN0cnVjdG9ycyBkZWZpbml0aW9ucyAnXG4gICAgICArICdyZWdpc3RyYXRpb25zIHRoZW9yZW1zIHNjaGVtZXMgcmVxdWlyZW1lbnRzIGJlZ2luIGVuZCBkZWZpbml0aW9uICdcbiAgICAgICsgJ3JlZ2lzdHJhdGlvbiBjbHVzdGVyIGV4aXN0ZW5jZSBwcmVkIGZ1bmMgZGVmcHJlZCBkZWZmdW5jIHRoZW9yZW0gJ1xuICAgICAgKyAncHJvb2YgbGV0IHRha2UgYXNzdW1lIHRoZW4gdGh1cyBoZW5jZSBleCBmb3Igc3QgaG9sZHMgY29uc2lkZXIgJ1xuICAgICAgKyAncmVjb25zaWRlciBzdWNoIHRoYXQgYW5kIGluIHByb3ZpZGVkIG9mIGFzIGZyb20gYmUgYmVpbmcgYnkgbWVhbnMgJ1xuICAgICAgKyAnZXF1YWxzIGltcGxpZXMgaWZmIHJlZGVmaW5lIGRlZmluZSBub3cgbm90IG9yIGF0dHIgaXMgbW9kZSAnXG4gICAgICArICdzdXBwb3NlIHBlciBjYXNlcyBzZXQgdGhlc2lzIGNvbnRyYWRpY3Rpb24gc2NoZW1lIHJlc2VydmUgc3RydWN0ICdcbiAgICAgICsgJ2NvcnJlY3RuZXNzIGNvbXBhdGliaWxpdHkgY29oZXJlbmNlIHN5bW1ldHJ5IGFzc3ltZXRyeSAnXG4gICAgICArICdyZWZsZXhpdml0eSBpcnJlZmxleGl2aXR5IGNvbm5lY3RlZG5lc3MgdW5pcXVlbmVzcyBjb21tdXRhdGl2aXR5ICdcbiAgICAgICsgJ2lkZW1wb3RlbmNlIGludm9sdXRpdmVuZXNzIHByb2plY3Rpdml0eScsXG4gICAgY29udGFpbnM6IFsgaGxqcy5DT01NRU5UKCc6OicsICckJykgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1pemFyO1xuIiwgIi8qXG5MYW5ndWFnZTogUGVybFxuQXV0aG9yOiBQZXRlciBMZW9ub3YgPGdvanBlZ0B5YW5kZXgucnU+XG5XZWJzaXRlOiBodHRwczovL3d3dy5wZXJsLm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vblxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHBlcmwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgICdhYnMnLFxuICAgICdhY2NlcHQnLFxuICAgICdhbGFybScsXG4gICAgJ2FuZCcsXG4gICAgJ2F0YW4yJyxcbiAgICAnYmluZCcsXG4gICAgJ2Jpbm1vZGUnLFxuICAgICdibGVzcycsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FsbGVyJyxcbiAgICAnY2hkaXInLFxuICAgICdjaG1vZCcsXG4gICAgJ2Nob21wJyxcbiAgICAnY2hvcCcsXG4gICAgJ2Nob3duJyxcbiAgICAnY2hyJyxcbiAgICAnY2hyb290JyxcbiAgICAnY2xhc3MnLFxuICAgICdjbG9zZScsXG4gICAgJ2Nsb3NlZGlyJyxcbiAgICAnY29ubmVjdCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnY29zJyxcbiAgICAnY3J5cHQnLFxuICAgICdkYm1jbG9zZScsXG4gICAgJ2RibW9wZW4nLFxuICAgICdkZWZpbmVkJyxcbiAgICAnZGVsZXRlJyxcbiAgICAnZGllJyxcbiAgICAnZG8nLFxuICAgICdkdW1wJyxcbiAgICAnZWFjaCcsXG4gICAgJ2Vsc2UnLFxuICAgICdlbHNpZicsXG4gICAgJ2VuZGdyZW50JyxcbiAgICAnZW5kaG9zdGVudCcsXG4gICAgJ2VuZG5ldGVudCcsXG4gICAgJ2VuZHByb3RvZW50JyxcbiAgICAnZW5kcHdlbnQnLFxuICAgICdlbmRzZXJ2ZW50JyxcbiAgICAnZW9mJyxcbiAgICAnZXZhbCcsXG4gICAgJ2V4ZWMnLFxuICAgICdleGlzdHMnLFxuICAgICdleGl0JyxcbiAgICAnZXhwJyxcbiAgICAnZmNudGwnLFxuICAgICdmaWVsZCcsXG4gICAgJ2ZpbGVubycsXG4gICAgJ2Zsb2NrJyxcbiAgICAnZm9yJyxcbiAgICAnZm9yZWFjaCcsXG4gICAgJ2ZvcmsnLFxuICAgICdmb3JtYXQnLFxuICAgICdmb3JtbGluZScsXG4gICAgJ2dldGMnLFxuICAgICdnZXRncmVudCcsXG4gICAgJ2dldGdyZ2lkJyxcbiAgICAnZ2V0Z3JuYW0nLFxuICAgICdnZXRob3N0YnlhZGRyJyxcbiAgICAnZ2V0aG9zdGJ5bmFtZScsXG4gICAgJ2dldGhvc3RlbnQnLFxuICAgICdnZXRsb2dpbicsXG4gICAgJ2dldG5ldGJ5YWRkcicsXG4gICAgJ2dldG5ldGJ5bmFtZScsXG4gICAgJ2dldG5ldGVudCcsXG4gICAgJ2dldHBlZXJuYW1lJyxcbiAgICAnZ2V0cGdycCcsXG4gICAgJ2dldHByaW9yaXR5JyxcbiAgICAnZ2V0cHJvdG9ieW5hbWUnLFxuICAgICdnZXRwcm90b2J5bnVtYmVyJyxcbiAgICAnZ2V0cHJvdG9lbnQnLFxuICAgICdnZXRwd2VudCcsXG4gICAgJ2dldHB3bmFtJyxcbiAgICAnZ2V0cHd1aWQnLFxuICAgICdnZXRzZXJ2YnluYW1lJyxcbiAgICAnZ2V0c2VydmJ5cG9ydCcsXG4gICAgJ2dldHNlcnZlbnQnLFxuICAgICdnZXRzb2NrbmFtZScsXG4gICAgJ2dldHNvY2tvcHQnLFxuICAgICdnaXZlbicsXG4gICAgJ2dsb2InLFxuICAgICdnbXRpbWUnLFxuICAgICdnb3RvJyxcbiAgICAnZ3JlcCcsXG4gICAgJ2d0JyxcbiAgICAnaGV4JyxcbiAgICAnaWYnLFxuICAgICdpbmRleCcsXG4gICAgJ2ludCcsXG4gICAgJ2lvY3RsJyxcbiAgICAnam9pbicsXG4gICAgJ2tleXMnLFxuICAgICdraWxsJyxcbiAgICAnbGFzdCcsXG4gICAgJ2xjJyxcbiAgICAnbGNmaXJzdCcsXG4gICAgJ2xlbmd0aCcsXG4gICAgJ2xpbmsnLFxuICAgICdsaXN0ZW4nLFxuICAgICdsb2NhbCcsXG4gICAgJ2xvY2FsdGltZScsXG4gICAgJ2xvZycsXG4gICAgJ2xzdGF0JyxcbiAgICAnbHQnLFxuICAgICdtYScsXG4gICAgJ21hcCcsXG4gICAgJ21ldGhvZCcsXG4gICAgJ21rZGlyJyxcbiAgICAnbXNnY3RsJyxcbiAgICAnbXNnZ2V0JyxcbiAgICAnbXNncmN2JyxcbiAgICAnbXNnc25kJyxcbiAgICAnbXknLFxuICAgICduZScsXG4gICAgJ25leHQnLFxuICAgICdubycsXG4gICAgJ25vdCcsXG4gICAgJ29jdCcsXG4gICAgJ29wZW4nLFxuICAgICdvcGVuZGlyJyxcbiAgICAnb3InLFxuICAgICdvcmQnLFxuICAgICdvdXInLFxuICAgICdwYWNrJyxcbiAgICAncGFja2FnZScsXG4gICAgJ3BpcGUnLFxuICAgICdwb3AnLFxuICAgICdwb3MnLFxuICAgICdwcmludCcsXG4gICAgJ3ByaW50ZicsXG4gICAgJ3Byb3RvdHlwZScsXG4gICAgJ3B1c2gnLFxuICAgICdxfDAnLFxuICAgICdxcScsXG4gICAgJ3F1b3RlbWV0YScsXG4gICAgJ3F3JyxcbiAgICAncXgnLFxuICAgICdyYW5kJyxcbiAgICAncmVhZCcsXG4gICAgJ3JlYWRkaXInLFxuICAgICdyZWFkbGluZScsXG4gICAgJ3JlYWRsaW5rJyxcbiAgICAncmVhZHBpcGUnLFxuICAgICdyZWN2JyxcbiAgICAncmVkbycsXG4gICAgJ3JlZicsXG4gICAgJ3JlbmFtZScsXG4gICAgJ3JlcXVpcmUnLFxuICAgICdyZXNldCcsXG4gICAgJ3JldHVybicsXG4gICAgJ3JldmVyc2UnLFxuICAgICdyZXdpbmRkaXInLFxuICAgICdyaW5kZXgnLFxuICAgICdybWRpcicsXG4gICAgJ3NheScsXG4gICAgJ3NjYWxhcicsXG4gICAgJ3NlZWsnLFxuICAgICdzZWVrZGlyJyxcbiAgICAnc2VsZWN0JyxcbiAgICAnc2VtY3RsJyxcbiAgICAnc2VtZ2V0JyxcbiAgICAnc2Vtb3AnLFxuICAgICdzZW5kJyxcbiAgICAnc2V0Z3JlbnQnLFxuICAgICdzZXRob3N0ZW50JyxcbiAgICAnc2V0bmV0ZW50JyxcbiAgICAnc2V0cGdycCcsXG4gICAgJ3NldHByaW9yaXR5JyxcbiAgICAnc2V0cHJvdG9lbnQnLFxuICAgICdzZXRwd2VudCcsXG4gICAgJ3NldHNlcnZlbnQnLFxuICAgICdzZXRzb2Nrb3B0JyxcbiAgICAnc2hpZnQnLFxuICAgICdzaG1jdGwnLFxuICAgICdzaG1nZXQnLFxuICAgICdzaG1yZWFkJyxcbiAgICAnc2htd3JpdGUnLFxuICAgICdzaHV0ZG93bicsXG4gICAgJ3NpbicsXG4gICAgJ3NsZWVwJyxcbiAgICAnc29ja2V0JyxcbiAgICAnc29ja2V0cGFpcicsXG4gICAgJ3NvcnQnLFxuICAgICdzcGxpY2UnLFxuICAgICdzcGxpdCcsXG4gICAgJ3NwcmludGYnLFxuICAgICdzcXJ0JyxcbiAgICAnc3JhbmQnLFxuICAgICdzdGF0JyxcbiAgICAnc3RhdGUnLFxuICAgICdzdHVkeScsXG4gICAgJ3N1YicsXG4gICAgJ3N1YnN0cicsXG4gICAgJ3N5bWxpbmsnLFxuICAgICdzeXNjYWxsJyxcbiAgICAnc3lzb3BlbicsXG4gICAgJ3N5c3JlYWQnLFxuICAgICdzeXNzZWVrJyxcbiAgICAnc3lzdGVtJyxcbiAgICAnc3lzd3JpdGUnLFxuICAgICd0ZWxsJyxcbiAgICAndGVsbGRpcicsXG4gICAgJ3RpZScsXG4gICAgJ3RpZWQnLFxuICAgICd0aW1lJyxcbiAgICAndGltZXMnLFxuICAgICd0cicsXG4gICAgJ3RydW5jYXRlJyxcbiAgICAndWMnLFxuICAgICd1Y2ZpcnN0JyxcbiAgICAndW1hc2snLFxuICAgICd1bmRlZicsXG4gICAgJ3VubGVzcycsXG4gICAgJ3VubGluaycsXG4gICAgJ3VucGFjaycsXG4gICAgJ3Vuc2hpZnQnLFxuICAgICd1bnRpZScsXG4gICAgJ3VudGlsJyxcbiAgICAndXNlJyxcbiAgICAndXRpbWUnLFxuICAgICd2YWx1ZXMnLFxuICAgICd2ZWMnLFxuICAgICd3YWl0JyxcbiAgICAnd2FpdHBpZCcsXG4gICAgJ3dhbnRhcnJheScsXG4gICAgJ3dhcm4nLFxuICAgICd3aGVuJyxcbiAgICAnd2hpbGUnLFxuICAgICd3cml0ZScsXG4gICAgJ3h8MCcsXG4gICAgJ3hvcicsXG4gICAgJ3l8MCdcbiAgXTtcblxuICAvLyBodHRwczovL3Blcmxkb2MucGVybC5vcmcvcGVybHJlI01vZGlmaWVyc1xuICBjb25zdCBSRUdFWF9NT0RJRklFUlMgPSAvW2R1YWx4bXNpcG5ncl17MCwxMn0vOyAvLyBhYSBhbmQgeHggYXJlIHZhbGlkLCBtYWtpbmcgbWF4IGxlbmd0aCAxMlxuICBjb25zdCBQRVJMX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvW1xcdy5dKy8sXG4gICAga2V5d29yZDogS0VZV09SRFMuam9pbihcIiBcIilcbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAnWyRAXVxcXFx7JyxcbiAgICBlbmQ6ICdcXFxcfScsXG4gICAga2V5d29yZHM6IFBFUkxfS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgTUVUSE9EID0ge1xuICAgIGJlZ2luOiAvLT5cXHsvLFxuICAgIGVuZDogL1xcfS9cbiAgICAvLyBjb250YWlucyBkZWZpbmVkIGxhdGVyXG4gIH07XG4gIGNvbnN0IEFUVFIgPSB7XG4gICAgc2NvcGU6ICdhdHRyJyxcbiAgICBtYXRjaDogL1xccys6XFxzKlxcdysoXFxzKlxcKC4qP1xcKSk/LyxcbiAgfTtcbiAgY29uc3QgVkFSID0ge1xuICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAvXFwkXFxkLyB9LFxuICAgICAgeyBiZWdpbjogcmVnZXguY29uY2F0KFxuICAgICAgICAvWyQlQF0oPyFcIikoXFxeXFx3XFxifCNcXHcrKDo6XFx3KykqfFxce1xcdytcXH18XFx3Kyg6OlxcdyopKikvLFxuICAgICAgICAvLyBuZWdhdGl2ZSBsb29rLWFoZWFkIHRyaWVzIHRvIGF2b2lkIG1hdGNoaW5nIHBhdHRlcm5zIHRoYXQgYXJlIG5vdFxuICAgICAgICAvLyBQZXJsIGF0IGFsbCBsaWtlICRpZGVudCQsIEBpZGVudEAsIGV0Yy5cbiAgICAgICAgYCg/IVtBLVphLXpdKSg/IVtAJCVdKWBcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gT25seSAkPSBpcyBhIHNwZWNpYWwgUGVybCB2YXJpYWJsZSBhbmQgb25lIGNhbid0IGRlY2xhcmUgQD0gb3IgJT0uXG4gICAgICAgIGJlZ2luOiAvWyQlQF0oPyFcIilbXlxcc1xcd3s9XXxcXCQ9LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgXSxcbiAgICBjb250YWluczogWyBBVFRSIF0sXG4gIH07XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBkZWNpbWFsIG51bWJlcnM6XG4gICAgICAvLyBpbmNsdWRlIHRoZSBjYXNlIHdoZXJlIGEgbnVtYmVyIHN0YXJ0cyB3aXRoIGEgZG90IChlZy4gLjkpLCBhbmRcbiAgICAgIC8vIHRoZSBsZWFkaW5nIDA/IGF2b2lkcyBtaXhpbmcgdGhlIGZpcnN0IGFuZCBzZWNvbmQgbWF0Y2ggb24gMC54IGNhc2VzXG4gICAgICB7IG1hdGNoOiAvMD9cXC5bMC05XVswLTlfXStcXGIvIH0sXG4gICAgICAvLyBpbmNsdWRlIHRoZSBzcGVjaWFsIHZlcnNpb25lZCBudW1iZXIgKGVnLiB2NS4zOClcbiAgICAgIHsgbWF0Y2g6IC9cXGJ2PygwfFsxLTldWzAtOV9dKihcXC5bMC05X10rKT98WzEtOV1bMC05X10qKVxcYi8gfSxcbiAgICAgIC8vIG5vbi1kZWNpbWFsIG51bWJlcnM6XG4gICAgICB7IG1hdGNoOiAvXFxiMFswLTddWzAtN19dKlxcYi8gfSxcbiAgICAgIHsgbWF0Y2g6IC9cXGIweFswLTlhLWZBLUZdWzAtOWEtZkEtRl9dKlxcYi8gfSxcbiAgICAgIHsgbWF0Y2g6IC9cXGIwYlswLTFdWzAtMV9dKlxcYi8gfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBTVFJJTkdfQ09OVEFJTlMgPSBbXG4gICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgIFNVQlNULFxuICAgIFZBUlxuICBdO1xuICBjb25zdCBSRUdFWF9ERUxJTVMgPSBbXG4gICAgLyEvLFxuICAgIC9cXC8vLFxuICAgIC9cXHwvLFxuICAgIC9cXD8vLFxuICAgIC8nLyxcbiAgICAvXCIvLCAvLyB2YWxpZCBidXQgaW5mcmVxdWVudCBhbmQgd2VpcmRcbiAgICAvIy8gLy8gdmFsaWQgYnV0IGluZnJlcXVlbnQgYW5kIHdlaXJkXG4gIF07XG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IHByZWZpeFxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IG9wZW5cbiAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBjbG9zZVxuICAgKi9cbiAgY29uc3QgUEFJUkVEX0RPVUJMRV9SRSA9IChwcmVmaXgsIG9wZW4sIGNsb3NlID0gJ1xcXFwxJykgPT4ge1xuICAgIGNvbnN0IG1pZGRsZSA9IChjbG9zZSA9PT0gJ1xcXFwxJylcbiAgICAgID8gY2xvc2VcbiAgICAgIDogcmVnZXguY29uY2F0KGNsb3NlLCBvcGVuKTtcbiAgICByZXR1cm4gcmVnZXguY29uY2F0KFxuICAgICAgcmVnZXguY29uY2F0KFwiKD86XCIsIHByZWZpeCwgXCIpXCIpLFxuICAgICAgb3BlbixcbiAgICAgIC8oPzpcXFxcLnxbXlxcXFxcXC9dKSo/LyxcbiAgICAgIG1pZGRsZSxcbiAgICAgIC8oPzpcXFxcLnxbXlxcXFxcXC9dKSo/LyxcbiAgICAgIGNsb3NlLFxuICAgICAgUkVHRVhfTU9ESUZJRVJTXG4gICAgKTtcbiAgfTtcbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gcHJlZml4XG4gICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gb3BlblxuICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IGNsb3NlXG4gICAqL1xuICBjb25zdCBQQUlSRURfUkUgPSAocHJlZml4LCBvcGVuLCBjbG9zZSkgPT4ge1xuICAgIHJldHVybiByZWdleC5jb25jYXQoXG4gICAgICByZWdleC5jb25jYXQoXCIoPzpcIiwgcHJlZml4LCBcIilcIiksXG4gICAgICBvcGVuLFxuICAgICAgLyg/OlxcXFwufFteXFxcXFxcL10pKj8vLFxuICAgICAgY2xvc2UsXG4gICAgICBSRUdFWF9NT0RJRklFUlNcbiAgICApO1xuICB9O1xuICBjb25zdCBQRVJMX0RFRkFVTFRfQ09OVEFJTlMgPSBbXG4gICAgVkFSLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DT01NRU5UKFxuICAgICAgL149XFx3LyxcbiAgICAgIC89Y3V0LyxcbiAgICAgIHsgZW5kc1dpdGhQYXJlbnQ6IHRydWUgfVxuICAgICksXG4gICAgTUVUSE9ELFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBjb250YWluczogU1RSSU5HX0NPTlRBSU5TLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncVtxd3hyXT9cXFxccypcXFxcKCcsXG4gICAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxW3F3eHJdP1xcXFxzKlxcXFxbJyxcbiAgICAgICAgICBlbmQ6ICdcXFxcXScsXG4gICAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJ3FbcXd4cl0/XFxcXHMqXFxcXHsnLFxuICAgICAgICAgIGVuZDogJ1xcXFx9JyxcbiAgICAgICAgICByZWxldmFuY2U6IDVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAncVtxd3hyXT9cXFxccypcXFxcfCcsXG4gICAgICAgICAgZW5kOiAnXFxcXHwnLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxW3F3eHJdP1xcXFxzKjwnLFxuICAgICAgICAgIGVuZDogJz4nLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdxd1xcXFxzK3EnLFxuICAgICAgICAgIGVuZDogJ3EnLFxuICAgICAgICAgIHJlbGV2YW5jZTogNVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICAgIGVuZDogJ1wiJ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgICBlbmQ6ICdgJyxcbiAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC9cXHtcXHcrXFx9LyxcbiAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAnLT9cXFxcdytcXFxccyo9PicsXG4gICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIE5VTUJFUixcbiAgICB7IC8vIHJlZ2V4cCBjb250YWluZXJcbiAgICAgIGJlZ2luOiAnKFxcXFwvXFxcXC98JyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKHNwbGl0fHJldHVybnxwcmludHxyZXZlcnNlfGdyZXApXFxcXGIpXFxcXHMqJyxcbiAgICAgIGtleXdvcmRzOiAnc3BsaXQgcmV0dXJuIHByaW50IHJldmVyc2UgZ3JlcCcsXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAncmVnZXhwJyxcbiAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgLy8gYWxsb3cgbWF0Y2hpbmcgY29tbW9uIGRlbGltaXRlcnNcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9ET1VCTEVfUkUoXCJzfHRyfHlcIiwgcmVnZXguZWl0aGVyKC4uLlJFR0VYX0RFTElNUywgeyBjYXB0dXJlOiB0cnVlIH0pKSB9LFxuICAgICAgICAgICAgLy8gYW5kIHRoZW4gcGFpcmVkIGRlbG1pc1xuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX0RPVUJMRV9SRShcInN8dHJ8eVwiLCBcIlxcXFwoXCIsIFwiXFxcXClcIikgfSxcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9ET1VCTEVfUkUoXCJzfHRyfHlcIiwgXCJcXFxcW1wiLCBcIlxcXFxdXCIpIH0sXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfRE9VQkxFX1JFKFwic3x0cnx5XCIsIFwiXFxcXHtcIiwgXCJcXFxcfVwiKSB9XG4gICAgICAgICAgXSxcbiAgICAgICAgICByZWxldmFuY2U6IDJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gY291bGQgYmUgYSBjb21tZW50IGluIG1hbnkgbGFuZ3VhZ2VzIHNvIGRvIG5vdCBjb3VudFxuICAgICAgICAgICAgICAvLyBhcyByZWxldmFudFxuICAgICAgICAgICAgICBiZWdpbjogLyhtfHFyKVxcL1xcLy8sXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIHByZWZpeCBpcyBvcHRpb25hbCB3aXRoIC9yZWdleC9cbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9SRShcIig/Om18cXIpP1wiLCAvXFwvLywgL1xcLy8pIH0sXG4gICAgICAgICAgICAvLyBhbGxvdyBtYXRjaGluZyBjb21tb24gZGVsaW1pdGVyc1xuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX1JFKFwibXxxclwiLCByZWdleC5laXRoZXIoLi4uUkVHRVhfREVMSU1TLCB7IGNhcHR1cmU6IHRydWUgfSksIC9cXDEvKSB9LFxuICAgICAgICAgICAgLy8gYWxsb3cgY29tbW9uIHBhaXJlZCBkZWxtaW5zXG4gICAgICAgICAgICB7IGJlZ2luOiBQQUlSRURfUkUoXCJtfHFyXCIsIC9cXCgvLCAvXFwpLykgfSxcbiAgICAgICAgICAgIHsgYmVnaW46IFBBSVJFRF9SRShcIm18cXJcIiwgL1xcWy8sIC9cXF0vKSB9LFxuICAgICAgICAgICAgeyBiZWdpbjogUEFJUkVEX1JFKFwibXxxclwiLCAvXFx7LywgL1xcfS8pIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgIGJlZ2luS2V5d29yZHM6ICdzdWIgbWV0aG9kJyxcbiAgICAgIGVuZDogJyhcXFxccypcXFxcKC4qP1xcXFwpKT9bO3tdJyxcbiAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICByZWxldmFuY2U6IDUsXG4gICAgICBjb250YWluczogWyBobGpzLlRJVExFX01PREUsIEFUVFIgXVxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJyxcbiAgICAgIGVuZDogJ1s7e10nLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogNSxcbiAgICAgIGNvbnRhaW5zOiBbIGhsanMuVElUTEVfTU9ERSwgQVRUUiwgTlVNQkVSIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAnLVxcXFx3XFxcXGInLFxuICAgICAgcmVsZXZhbmNlOiAwXG4gICAgfSxcbiAgICB7XG4gICAgICBiZWdpbjogXCJeX19EQVRBX18kXCIsXG4gICAgICBlbmQ6IFwiXl9fRU5EX18kXCIsXG4gICAgICBzdWJMYW5ndWFnZTogJ21vam9saWNpb3VzJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogXCJeQEAuKlwiLFxuICAgICAgICAgIGVuZDogXCIkXCIsXG4gICAgICAgICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFBFUkxfREVGQVVMVF9DT05UQUlOUztcbiAgTUVUSE9ELmNvbnRhaW5zID0gUEVSTF9ERUZBVUxUX0NPTlRBSU5TO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BlcmwnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdwbCcsXG4gICAgICAncG0nXG4gICAgXSxcbiAgICBrZXl3b3JkczogUEVSTF9LRVlXT1JEUyxcbiAgICBjb250YWluczogUEVSTF9ERUZBVUxUX0NPTlRBSU5TXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGVybDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1vam9saWNpb3VzXG5SZXF1aXJlczogeG1sLmpzLCBwZXJsLmpzXG5BdXRob3I6IERvdGFuIERpbWV0IDxkb3RhbkBjb3JreS5uZXQ+XG5EZXNjcmlwdGlvbjogTW9qb2xpY2lvdXMgLmVwIChFbWJlZGRlZCBQZXJsKSB0ZW1wbGF0ZXNcbldlYnNpdGU6IGh0dHBzOi8vbW9qb2xpY2lvdXMub3JnXG5DYXRlZ29yeTogdGVtcGxhdGVcbiovXG5mdW5jdGlvbiBtb2pvbGljaW91cyhobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ01vam9saWNpb3VzJyxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXl9fKEVORHxEQVRBKV9fJCdcbiAgICAgIH0sXG4gICAgICAvLyBtb2pvbGljaW91cyBsaW5lXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIl5cXFxccyolezEsMn09ezAsMn1cIixcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAncGVybCdcbiAgICAgIH0sXG4gICAgICAvLyBtb2pvbGljaW91cyBibG9ja1xuICAgICAge1xuICAgICAgICBiZWdpbjogXCI8JXsxLDJ9PXswLDJ9XCIsXG4gICAgICAgIGVuZDogXCI9ezAsMX0lPlwiLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BlcmwnLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbW9qb2xpY2lvdXM7XG4iLCAiLypcbkxhbmd1YWdlOiBNb25rZXlcbkRlc2NyaXB0aW9uOiBNb25rZXkyIGlzIGFuIGVhc3kgdG8gdXNlLCBjcm9zcyBwbGF0Zm9ybSwgZ2FtZXMgb3JpZW50ZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZnJvbSBCbGl0eiBSZXNlYXJjaC5cbkF1dGhvcjogQXJ0aHVyIEJpa211bGxpbiA8ZGV2b2xvbnRlckBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2JsaXR6cmVzZWFyY2guaXRjaC5pby9tb25rZXkyXG5DYXRlZ29yeTogZ2FtaW5nXG4qL1xuXG5mdW5jdGlvbiBtb25rZXkoaGxqcykge1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46ICdbJF1bYS1mQS1GMC05XSsnIH0sXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgbWF0Y2g6IFtcbiAgICAgICAgLyhmdW5jdGlvbnxtZXRob2QpLyxcbiAgICAgICAgL1xccysvLFxuICAgICAgICBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICBdIH0sXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IENMQVNTX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgbWF0Y2g6IFtcbiAgICAgICAgLyhjbGFzc3xpbnRlcmZhY2V8ZXh0ZW5kc3xpbXBsZW1lbnRzKS8sXG4gICAgICAgIC9cXHMrLyxcbiAgICAgICAgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgXSB9LFxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfVxuICB9O1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJEZWJ1Z0xvZ1wiLFxuICAgIFwiRGVidWdTdG9wXCIsXG4gICAgXCJFcnJvclwiLFxuICAgIFwiUHJpbnRcIixcbiAgICBcIkFDb3NcIixcbiAgICBcIkFDb3NyXCIsXG4gICAgXCJBU2luXCIsXG4gICAgXCJBU2luclwiLFxuICAgIFwiQVRhblwiLFxuICAgIFwiQVRhbjJcIixcbiAgICBcIkFUYW4yclwiLFxuICAgIFwiQVRhbnJcIixcbiAgICBcIkFic1wiLFxuICAgIFwiQWJzXCIsXG4gICAgXCJDZWlsXCIsXG4gICAgXCJDbGFtcFwiLFxuICAgIFwiQ2xhbXBcIixcbiAgICBcIkNvc1wiLFxuICAgIFwiQ29zclwiLFxuICAgIFwiRXhwXCIsXG4gICAgXCJGbG9vclwiLFxuICAgIFwiTG9nXCIsXG4gICAgXCJNYXhcIixcbiAgICBcIk1heFwiLFxuICAgIFwiTWluXCIsXG4gICAgXCJNaW5cIixcbiAgICBcIlBvd1wiLFxuICAgIFwiU2duXCIsXG4gICAgXCJTZ25cIixcbiAgICBcIlNpblwiLFxuICAgIFwiU2luclwiLFxuICAgIFwiU3FydFwiLFxuICAgIFwiVGFuXCIsXG4gICAgXCJUYW5yXCIsXG4gICAgXCJTZWVkXCIsXG4gICAgXCJQSVwiLFxuICAgIFwiSEFMRlBJXCIsXG4gICAgXCJUV09QSVwiXG4gIF07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcInB1YmxpY1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvcGVydHlcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJleHRlcm5cIixcbiAgICBcIm5ld1wiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiZWFjaGluXCIsXG4gICAgXCJub3RcIixcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZmllbGRcIixcbiAgICBcImVuZFwiLFxuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcImVsc2VpZlwiLFxuICAgIFwiZW5kaWZcIixcbiAgICBcIndoaWxlXCIsXG4gICAgXCJ3ZW5kXCIsXG4gICAgXCJyZXBlYXRcIixcbiAgICBcInVudGlsXCIsXG4gICAgXCJmb3JldmVyXCIsXG4gICAgXCJmb3JcIixcbiAgICBcInRvXCIsXG4gICAgXCJzdGVwXCIsXG4gICAgXCJuZXh0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwiaW5saW5lXCIsXG4gICAgXCJ0aHJvd1wiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgLy8gbm90IHBvc2l0aXZlLCBidXQgdGhlc2UgYXJlIG5vdCBsaXRlcmFsc1xuICAgIFwiYW5kXCIsXG4gICAgXCJvclwiLFxuICAgIFwic2hsXCIsXG4gICAgXCJzaHJcIixcbiAgICBcIm1vZFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTW9ua2V5JyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTlMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcKi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnI3JlbScsICcjZW5kJyksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIFwiJ1wiLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICBGVU5DX0RFRklOSVRJT04sXG4gICAgICBDTEFTU19ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZS5sYW5ndWFnZScsXG4gICAgICAgIGJlZ2luOiAvXFxiKHNlbGZ8c3VwZXIpXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXFxzKiMvLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAga2V5d29yZHM6IHsga2V5d29yZDogJ2lmIGVsc2UgZWxzZWlmIGVuZGlmIGVuZCB0aGVuJyB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9eXFxzKi8sXG4gICAgICAgICAgL3N0cmljdFxcYi9cbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHsgMjogXCJtZXRhXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2FsaWFzJyxcbiAgICAgICAgZW5kOiAnPScsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFIF1cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgTlVNQkVSXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vbmtleTtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1vb25TY3JpcHRcbkF1dGhvcjogQmlsbHkgUXVpdGggPGNoaW5iaWxseWJpbGJvQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBNb29uU2NyaXB0IGlzIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCB0cmFuc2NvbXBpbGVzIHRvIEx1YS5cbk9yaWdpbjogY29mZmVlc2NyaXB0LmpzXG5XZWJzaXRlOiBodHRwOi8vbW9vbnNjcmlwdC5vcmcvXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG5mdW5jdGlvbiBtb29uc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDpcbiAgICAgIC8vIE1vb25zY3JpcHQga2V5d29yZHNcbiAgICAgICdpZiB0aGVuIG5vdCBmb3IgaW4gd2hpbGUgZG8gcmV0dXJuIGVsc2UgZWxzZWlmIGJyZWFrIGNvbnRpbnVlIHN3aXRjaCBhbmQgb3IgJ1xuICAgICAgKyAndW5sZXNzIHdoZW4gY2xhc3MgZXh0ZW5kcyBzdXBlciBsb2NhbCBpbXBvcnQgZXhwb3J0IGZyb20gdXNpbmcnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBuaWwnLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ19HIF9WRVJTSU9OIGFzc2VydCBjb2xsZWN0Z2FyYmFnZSBkb2ZpbGUgZXJyb3IgZ2V0ZmVudiBnZXRtZXRhdGFibGUgaXBhaXJzIGxvYWQgJ1xuICAgICAgKyAnbG9hZGZpbGUgbG9hZHN0cmluZyBtb2R1bGUgbmV4dCBwYWlycyBwY2FsbCBwcmludCByYXdlcXVhbCByYXdnZXQgcmF3c2V0IHJlcXVpcmUgJ1xuICAgICAgKyAnc2VsZWN0IHNldGZlbnYgc2V0bWV0YXRhYmxlIHRvbnVtYmVyIHRvc3RyaW5nIHR5cGUgdW5wYWNrIHhwY2FsbCBjb3JvdXRpbmUgZGVidWcgJ1xuICAgICAgKyAnaW8gbWF0aCBvcyBwYWNrYWdlIHN0cmluZyB0YWJsZSdcbiAgfTtcbiAgY29uc3QgSlNfSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIGJlZ2luOiAvI1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgRVhQUkVTU0lPTlMgPSBbXG4gICAgaGxqcy5pbmhlcml0KGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHsgc3RhcnRzOiB7XG4gICAgICAgIGVuZDogJyhcXFxccyovKT8nLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0gfSksIC8vIGEgbnVtYmVyIHRyaWVzIHRvIGVhdCB0aGUgZm9sbG93aW5nIHNsYXNoIHRvIHByZXZlbnQgdHJlYXRpbmcgaXQgYXMgYSByZWdleHBcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgICAgZW5kOiAvJy8sXG4gICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgICAgIGVuZDogL1wiLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgICAgU1VCU1RcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICAgIGJlZ2luOiAnQF9fJyArIGhsanMuSURFTlRfUkVcbiAgICB9LFxuICAgIHsgYmVnaW46ICdAJyArIGhsanMuSURFTlRfUkUgLy8gcmVsZXZhbmNlIGJvb3N0ZXIgb24gcGFyIHdpdGggQ29mZmVlU2NyaXB0XG4gICAgfSxcbiAgICB7IGJlZ2luOiBobGpzLklERU5UX1JFICsgJ1xcXFxcXFxcJyArIGhsanMuSURFTlRfUkUgLy8gaW5zdFxcbWV0aG9kXG4gICAgfVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IEVYUFJFU1NJT05TO1xuXG4gIGNvbnN0IFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogSlNfSURFTlRfUkUgfSk7XG4gIGNvbnN0IFBPU1NJQkxFX1BBUkFNU19SRSA9ICcoXFxcXCguKlxcXFwpXFxcXHMqKT9cXFxcQlstPV0+JztcbiAgY29uc3QgUEFSQU1TID0ge1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46ICdcXFxcKFteXFxcXChdJyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAvKiBXZSBuZWVkIGFub3RoZXIgY29udGFpbmVkIG5hbWVsZXNzIG1vZGUgdG8gbm90IGhhdmUgZXZlcnkgbmVzdGVkXG4gICAgcGFpciBvZiBwYXJlbnMgdG8gYmUgY2FsbGVkIFwicGFyYW1zXCIgKi9cbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF0uY29uY2F0KEVYUFJFU1NJT05TKVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdNb29uU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbICdtb29uJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBpbGxlZ2FsOiAvXFwvXFwqLyxcbiAgICBjb250YWluczogRVhQUkVTU0lPTlMuY29uY2F0KFtcbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsIC8vIGZ1bmN0aW9uOiAtPiA9PlxuICAgICAgICBiZWdpbjogJ15cXFxccyonICsgSlNfSURFTlRfUkUgKyAnXFxcXHMqPVxcXFxzKicgKyBQT1NTSUJMRV9QQVJBTVNfUkUsXG4gICAgICAgIGVuZDogJ1stPV0+JyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEUsXG4gICAgICAgICAgUEFSQU1TXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvW1xcKCw6PV1cXHMqLywgLy8gYW5vbnltb3VzIGZ1bmN0aW9uIHN0YXJ0XG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICBiZWdpbjogUE9TU0lCTEVfUEFSQU1TX1JFLFxuICAgICAgICAgICAgZW5kOiAnWy09XT4nLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBjb250YWluczogWyBQQVJBTVMgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnY2xhc3MnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgaWxsZWdhbDogL1s6PVwiXFxbXFxdXS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW5LZXl3b3JkczogJ2V4dGVuZHMnLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvWzo9XCJcXFtcXF1dLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbIFRJVExFIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIFRJVExFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ25hbWUnLCAvLyB0YWJsZVxuICAgICAgICBiZWdpbjogSlNfSURFTlRfUkUgKyAnOicsXG4gICAgICAgIGVuZDogJzonLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1vb25zY3JpcHQ7XG4iLCAiLypcbiBMYW5ndWFnZTogTjFRTFxuIEF1dGhvcjogQW5kcmVzIFRcdTAwRTRodCA8YW5kcmVzLnRhaHRAZ21haWwuY29tPlxuIENvbnRyaWJ1dG9yczogUmVuZSBTYWFyc29vIDxuZW5lQHRyaWluLm5ldD5cbiBEZXNjcmlwdGlvbjogQ291Y2hiYXNlIHF1ZXJ5IGxhbmd1YWdlXG4gV2Vic2l0ZTogaHR0cHM6Ly93d3cuY291Y2hiYXNlLmNvbS9wcm9kdWN0cy9uMXFsXG4gQ2F0ZWdvcnk6IGRhdGFiYXNlXG4gKi9cblxuZnVuY3Rpb24gbjFxbChobGpzKSB7XG4gIC8vIFRha2VuIGZyb20gaHR0cDovL2RldmVsb3Blci5jb3VjaGJhc2UuY29tL2RvY3VtZW50YXRpb24vc2VydmVyL2N1cnJlbnQvbjFxbC9uMXFsLWxhbmd1YWdlLXJlZmVyZW5jZS9yZXNlcnZlZHdvcmRzLmh0bWxcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhbGxcIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhbmFseXplXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFueVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFzXCIsXG4gICAgXCJhc2NcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJiZXR3ZWVuXCIsXG4gICAgXCJiaW5hcnlcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJidWNrZXRcIixcbiAgICBcImJ1aWxkXCIsXG4gICAgXCJieVwiLFxuICAgIFwiY2FsbFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwiY2x1c3RlclwiLFxuICAgIFwiY29sbGF0ZVwiLFxuICAgIFwiY29sbGVjdGlvblwiLFxuICAgIFwiY29tbWl0XCIsXG4gICAgXCJjb25uZWN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiY29ycmVsYXRlXCIsXG4gICAgXCJjb3ZlclwiLFxuICAgIFwiY3JlYXRlXCIsXG4gICAgXCJkYXRhYmFzZVwiLFxuICAgIFwiZGF0YXNldFwiLFxuICAgIFwiZGF0YXN0b3JlXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJkZWNyZW1lbnRcIixcbiAgICBcImRlbGV0ZVwiLFxuICAgIFwiZGVyaXZlZFwiLFxuICAgIFwiZGVzY1wiLFxuICAgIFwiZGVzY3JpYmVcIixcbiAgICBcImRpc3RpbmN0XCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxlbWVudFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJldmVyeVwiLFxuICAgIFwiZXhjZXB0XCIsXG4gICAgXCJleGNsdWRlXCIsXG4gICAgXCJleGVjdXRlXCIsXG4gICAgXCJleGlzdHNcIixcbiAgICBcImV4cGxhaW5cIixcbiAgICBcImZldGNoXCIsXG4gICAgXCJmaXJzdFwiLFxuICAgIFwiZmxhdHRlblwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3JjZVwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcImdyYW50XCIsXG4gICAgXCJncm91cFwiLFxuICAgIFwiZ3NpXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImlmXCIsXG4gICAgXCJpZ25vcmVcIixcbiAgICBcImlsaWtlXCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5jbHVkZVwiLFxuICAgIFwiaW5jcmVtZW50XCIsXG4gICAgXCJpbmRleFwiLFxuICAgIFwiaW5mZXJcIixcbiAgICBcImlubGluZVwiLFxuICAgIFwiaW5uZXJcIixcbiAgICBcImluc2VydFwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnRvXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiam9pblwiLFxuICAgIFwia2V5XCIsXG4gICAgXCJrZXlzXCIsXG4gICAgXCJrZXlzcGFjZVwiLFxuICAgIFwia25vd25cIixcbiAgICBcImxhc3RcIixcbiAgICBcImxlZnRcIixcbiAgICBcImxldFwiLFxuICAgIFwibGV0dGluZ1wiLFxuICAgIFwibGlrZVwiLFxuICAgIFwibGltaXRcIixcbiAgICBcImxzbVwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtYXBwaW5nXCIsXG4gICAgXCJtYXRjaGVkXCIsXG4gICAgXCJtYXRlcmlhbGl6ZWRcIixcbiAgICBcIm1lcmdlXCIsXG4gICAgXCJtaW51c1wiLFxuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJuZXN0XCIsXG4gICAgXCJub3RcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwib2JqZWN0XCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm9uXCIsXG4gICAgXCJvcHRpb25cIixcbiAgICBcIm9yXCIsXG4gICAgXCJvcmRlclwiLFxuICAgIFwib3V0ZXJcIixcbiAgICBcIm92ZXJcIixcbiAgICBcInBhcnNlXCIsXG4gICAgXCJwYXJ0aXRpb25cIixcbiAgICBcInBhc3N3b3JkXCIsXG4gICAgXCJwYXRoXCIsXG4gICAgXCJwb29sXCIsXG4gICAgXCJwcmVwYXJlXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJwcml2YXRlXCIsXG4gICAgXCJwcml2aWxlZ2VcIixcbiAgICBcInByb2NlZHVyZVwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyYXdcIixcbiAgICBcInJlYWxtXCIsXG4gICAgXCJyZWR1Y2VcIixcbiAgICBcInJlbmFtZVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJyZXR1cm5pbmdcIixcbiAgICBcInJldm9rZVwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJvbGVcIixcbiAgICBcInJvbGxiYWNrXCIsXG4gICAgXCJzYXRpc2ZpZXNcIixcbiAgICBcInNjaGVtYVwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJzZW1pXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInNob3dcIixcbiAgICBcInNvbWVcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJzdGF0aXN0aWNzXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcInN5c3RlbVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICBcInRyYW5zYWN0aW9uXCIsXG4gICAgXCJ0cmlnZ2VyXCIsXG4gICAgXCJ0cnVuY2F0ZVwiLFxuICAgIFwidW5kZXJcIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJ1bmlxdWVcIixcbiAgICBcInVua25vd25cIixcbiAgICBcInVubmVzdFwiLFxuICAgIFwidW5zZXRcIixcbiAgICBcInVwZGF0ZVwiLFxuICAgIFwidXBzZXJ0XCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInVzZXJcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2YWxpZGF0ZVwiLFxuICAgIFwidmFsdWVcIixcbiAgICBcInZhbHVlZFwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2aWFcIixcbiAgICBcInZpZXdcIixcbiAgICBcIndoZW5cIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJ3b3JrXCIsXG4gICAgXCJ4b3JcIlxuICBdO1xuICAvLyBUYWtlbiBmcm9tIGh0dHA6Ly9kZXZlbG9wZXIuY291Y2hiYXNlLmNvbS9kb2N1bWVudGF0aW9uL3NlcnZlci80LjUvbjFxbC9uMXFsLWxhbmd1YWdlLXJlZmVyZW5jZS9saXRlcmFscy5odG1sXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm1pc3Npbmd8NVwiXG4gIF07XG4gIC8vIFRha2VuIGZyb20gaHR0cDovL2RldmVsb3Blci5jb3VjaGJhc2UuY29tL2RvY3VtZW50YXRpb24vc2VydmVyLzQuNS9uMXFsL24xcWwtbGFuZ3VhZ2UtcmVmZXJlbmNlL2Z1bmN0aW9ucy5odG1sXG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXJyYXlfYXBwZW5kXCIsXG4gICAgXCJhcnJheV9jb25jYXRcIixcbiAgICBcImFycmF5X2NvbnRhaW5zXCIsXG4gICAgXCJhcnJheV9jb3VudFwiLFxuICAgIFwiYXJyYXlfZGlzdGluY3RcIixcbiAgICBcImFycmF5X2lmbnVsbFwiLFxuICAgIFwiYXJyYXlfbGVuZ3RoXCIsXG4gICAgXCJhcnJheV9tYXhcIixcbiAgICBcImFycmF5X21pblwiLFxuICAgIFwiYXJyYXlfcG9zaXRpb25cIixcbiAgICBcImFycmF5X3ByZXBlbmRcIixcbiAgICBcImFycmF5X3B1dFwiLFxuICAgIFwiYXJyYXlfcmFuZ2VcIixcbiAgICBcImFycmF5X3JlbW92ZVwiLFxuICAgIFwiYXJyYXlfcmVwZWF0XCIsXG4gICAgXCJhcnJheV9yZXBsYWNlXCIsXG4gICAgXCJhcnJheV9yZXZlcnNlXCIsXG4gICAgXCJhcnJheV9zb3J0XCIsXG4gICAgXCJhcnJheV9zdW1cIixcbiAgICBcImF2Z1wiLFxuICAgIFwiY291bnRcIixcbiAgICBcIm1heFwiLFxuICAgIFwibWluXCIsXG4gICAgXCJzdW1cIixcbiAgICBcImdyZWF0ZXN0XCIsXG4gICAgXCJsZWFzdFwiLFxuICAgIFwiaWZtaXNzaW5nXCIsXG4gICAgXCJpZm1pc3Npbmdvcm51bGxcIixcbiAgICBcImlmbnVsbFwiLFxuICAgIFwibWlzc2luZ2lmXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcImlmaW5mXCIsXG4gICAgXCJpZm5hblwiLFxuICAgIFwiaWZuYW5vcmluZlwiLFxuICAgIFwibmFuaW5mXCIsXG4gICAgXCJuZWdpbmZpZlwiLFxuICAgIFwicG9zaW5maWZcIixcbiAgICBcImNsb2NrX21pbGxpc1wiLFxuICAgIFwiY2xvY2tfc3RyXCIsXG4gICAgXCJkYXRlX2FkZF9taWxsaXNcIixcbiAgICBcImRhdGVfYWRkX3N0clwiLFxuICAgIFwiZGF0ZV9kaWZmX21pbGxpc1wiLFxuICAgIFwiZGF0ZV9kaWZmX3N0clwiLFxuICAgIFwiZGF0ZV9wYXJ0X21pbGxpc1wiLFxuICAgIFwiZGF0ZV9wYXJ0X3N0clwiLFxuICAgIFwiZGF0ZV90cnVuY19taWxsaXNcIixcbiAgICBcImRhdGVfdHJ1bmNfc3RyXCIsXG4gICAgXCJkdXJhdGlvbl90b19zdHJcIixcbiAgICBcIm1pbGxpc1wiLFxuICAgIFwic3RyX3RvX21pbGxpc1wiLFxuICAgIFwibWlsbGlzX3RvX3N0clwiLFxuICAgIFwibWlsbGlzX3RvX3V0Y1wiLFxuICAgIFwibWlsbGlzX3RvX3pvbmVfbmFtZVwiLFxuICAgIFwibm93X21pbGxpc1wiLFxuICAgIFwibm93X3N0clwiLFxuICAgIFwic3RyX3RvX2R1cmF0aW9uXCIsXG4gICAgXCJzdHJfdG9fdXRjXCIsXG4gICAgXCJzdHJfdG9fem9uZV9uYW1lXCIsXG4gICAgXCJkZWNvZGVfanNvblwiLFxuICAgIFwiZW5jb2RlX2pzb25cIixcbiAgICBcImVuY29kZWRfc2l6ZVwiLFxuICAgIFwicG9seV9sZW5ndGhcIixcbiAgICBcImJhc2U2NFwiLFxuICAgIFwiYmFzZTY0X2VuY29kZVwiLFxuICAgIFwiYmFzZTY0X2RlY29kZVwiLFxuICAgIFwibWV0YVwiLFxuICAgIFwidXVpZFwiLFxuICAgIFwiYWJzXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhc2luXCIsXG4gICAgXCJhdGFuXCIsXG4gICAgXCJhdGFuMlwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJkZWdyZWVzXCIsXG4gICAgXCJlXCIsXG4gICAgXCJleHBcIixcbiAgICBcImxuXCIsXG4gICAgXCJsb2dcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJwaVwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInJhZGlhbnNcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNpZ25cIixcbiAgICBcInNpblwiLFxuICAgIFwic3FydFwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0cnVuY1wiLFxuICAgIFwib2JqZWN0X2xlbmd0aFwiLFxuICAgIFwib2JqZWN0X25hbWVzXCIsXG4gICAgXCJvYmplY3RfcGFpcnNcIixcbiAgICBcIm9iamVjdF9pbm5lcl9wYWlyc1wiLFxuICAgIFwib2JqZWN0X3ZhbHVlc1wiLFxuICAgIFwib2JqZWN0X2lubmVyX3ZhbHVlc1wiLFxuICAgIFwib2JqZWN0X2FkZFwiLFxuICAgIFwib2JqZWN0X3B1dFwiLFxuICAgIFwib2JqZWN0X3JlbW92ZVwiLFxuICAgIFwib2JqZWN0X3Vud3JhcFwiLFxuICAgIFwicmVnZXhwX2NvbnRhaW5zXCIsXG4gICAgXCJyZWdleHBfbGlrZVwiLFxuICAgIFwicmVnZXhwX3Bvc2l0aW9uXCIsXG4gICAgXCJyZWdleHBfcmVwbGFjZVwiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcImluaXRjYXBcIixcbiAgICBcImxlbmd0aFwiLFxuICAgIFwibG93ZXJcIixcbiAgICBcImx0cmltXCIsXG4gICAgXCJwb3NpdGlvblwiLFxuICAgIFwicmVwZWF0XCIsXG4gICAgXCJyZXBsYWNlXCIsXG4gICAgXCJydHJpbVwiLFxuICAgIFwic3BsaXRcIixcbiAgICBcInN1YnN0clwiLFxuICAgIFwidGl0bGVcIixcbiAgICBcInRyaW1cIixcbiAgICBcInVwcGVyXCIsXG4gICAgXCJpc2FycmF5XCIsXG4gICAgXCJpc2F0b21cIixcbiAgICBcImlzYm9vbGVhblwiLFxuICAgIFwiaXNudW1iZXJcIixcbiAgICBcImlzb2JqZWN0XCIsXG4gICAgXCJpc3N0cmluZ1wiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidG9hcnJheVwiLFxuICAgIFwidG9hdG9tXCIsXG4gICAgXCJ0b2Jvb2xlYW5cIixcbiAgICBcInRvbnVtYmVyXCIsXG4gICAgXCJ0b29iamVjdFwiLFxuICAgIFwidG9zdHJpbmdcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ04xUUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczpcbiAgICAgICAgICAnYnVpbGQgY3JlYXRlIGluZGV4IGRlbGV0ZSBkcm9wIGV4cGxhaW4gaW5mZXJ8MTAgaW5zZXJ0IG1lcmdlIHByZXBhcmUgc2VsZWN0IHVwZGF0ZSB1cHNlcnR8MTAnLFxuICAgICAgICBlbmQ6IC87LyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgICAgICBidWlsdF9pbjogQlVJTFRfSU5TXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgICAgICBiZWdpbjogJ2AnLFxuICAgICAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbjFxbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE5lc3RlZFRleHRcbkRlc2NyaXB0aW9uOiBOZXN0ZWRUZXh0IGlzIGEgZmlsZSBmb3JtYXQgZm9yIGhvbGRpbmcgZGF0YSB0aGF0IGlzIHRvIGJlIGVudGVyZWQsIGVkaXRlZCwgb3Igdmlld2VkIGJ5IHBlb3BsZS5cbldlYnNpdGU6IGh0dHBzOi8vbmVzdGVkdGV4dC5vcmcvXG5DYXRlZ29yeTogY29uZmlnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbmVzdGVkdGV4dChobGpzKSB7XG4gIGNvbnN0IE5FU1RFRCA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL15cXHMqKD89XFxTKS8sIC8vIGhhdmUgdG8gbG9vayBmb3J3YXJkIGhlcmUgdG8gYXZvaWQgcG9seW5vbWlhbCBiYWNrdHJhY2tpbmdcbiAgICAgIC9bXjpdKy8sXG4gICAgICAvOlxccyovLFxuICAgICAgLyQvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDI6IFwiYXR0cmlidXRlXCIsXG4gICAgICAzOiBcInB1bmN0dWF0aW9uXCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IERJQ1RJT05BUllfSVRFTSA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgL15cXHMqKD89XFxTKS8sIC8vIGhhdmUgdG8gbG9vayBmb3J3YXJkIGhlcmUgdG8gYXZvaWQgcG9seW5vbWlhbCBiYWNrdHJhY2tpbmdcbiAgICAgIC9bXjpdKlteOiBdLyxcbiAgICAgIC9bIF0qOi8sXG4gICAgICAvWyBdLyxcbiAgICAgIC8uKiQvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDI6IFwiYXR0cmlidXRlXCIsXG4gICAgICAzOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICA1OiBcInN0cmluZ1wiXG4gICAgfVxuICB9O1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9eXFxzKi8sXG4gICAgICAvPi8sXG4gICAgICAvWyBdLyxcbiAgICAgIC8uKiQvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDI6IFwicHVuY3R1YXRpb25cIixcbiAgICAgIDQ6IFwic3RyaW5nXCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IExJU1RfSVRFTSA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvXlxccyovLFxuICAgICAgICAvLS8sXG4gICAgICAgIC9bIF0vLFxuICAgICAgICAvLiokL1xuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvXlxccyovLFxuICAgICAgICAvLSQvXG4gICAgICBdIH1cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMjogXCJidWxsZXRcIixcbiAgICAgIDQ6IFwic3RyaW5nXCJcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTmVzdGVkIFRleHQnLFxuICAgIGFsaWFzZXM6IFsgJ250JyBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSwge1xuICAgICAgICBiZWdpbjogL15cXHMqKD89IykvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWVcbiAgICAgIH0pLFxuICAgICAgTElTVF9JVEVNLFxuICAgICAgU1RSSU5HLFxuICAgICAgTkVTVEVELFxuICAgICAgRElDVElPTkFSWV9JVEVNXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5lc3RlZHRleHQ7XG4iLCAiLypcbkxhbmd1YWdlOiBOZ2lueCBjb25maWdcbkF1dGhvcjogUGV0ZXIgTGVvbm92IDxnb2pwZWdAeWFuZGV4LnJ1PlxuQ29udHJpYnV0b3JzOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbkNhdGVnb3J5OiBjb25maWcsIHdlYlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cubmdpbnguY29tXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbmdpbngoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IFZBUiA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRcXGQrLyB9LFxuICAgICAgeyBiZWdpbjogL1xcJFxce1xcdytcXH0vIH0sXG4gICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoL1skQF0vLCBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUpIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwib25cIixcbiAgICBcIm9mZlwiLFxuICAgIFwieWVzXCIsXG4gICAgXCJub1wiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm5vbmVcIixcbiAgICBcImJsb2NrZWRcIixcbiAgICBcImRlYnVnXCIsXG4gICAgXCJpbmZvXCIsXG4gICAgXCJub3RpY2VcIixcbiAgICBcIndhcm5cIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJjcml0XCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJsYXN0XCIsXG4gICAgXCJwZXJtYW5lbnRcIixcbiAgICBcInJlZGlyZWN0XCIsXG4gICAgXCJrcXVldWVcIixcbiAgICBcInJ0c2lnXCIsXG4gICAgXCJlcG9sbFwiLFxuICAgIFwicG9sbFwiLFxuICAgIFwiL2Rldi9wb2xsXCJcbiAgXTtcbiAgY29uc3QgREVGQVVMVCA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bYS16X117Mix9fFxcL2RldlxcL3BvbGwvLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBpbGxlZ2FsOiAnPT4nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBWQVJcbiAgICAgICAgXSxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgICAgIGVuZDogL1wiL1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgICAgIGVuZDogLycvXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gdGhpcyBzd2FsbG93cyBlbnRpcmUgVVJMcyB0byBhdm9pZCBkZXRlY3RpbmcgbnVtYmVycyB3aXRoaW5cbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcoW2Etel0rKTovJyxcbiAgICAgICAgZW5kOiAnXFxcXHMnLFxuICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFsgVkFSIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3JlZ2V4cCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIFZBUlxuICAgICAgICBdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIlxcXFxzXFxcXF5cIixcbiAgICAgICAgICAgIGVuZDogXCJcXFxcc3xcXFxce3w7XCIsXG4gICAgICAgICAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vIHJlZ2V4cCBsb2NhdGlvbnMgKH4sIH4qKVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIn5cXFxcKj9cXFxccytcIixcbiAgICAgICAgICAgIGVuZDogXCJcXFxcc3xcXFxce3w7XCIsXG4gICAgICAgICAgICByZXR1cm5FbmQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIC8vICouZXhhbXBsZS5jb21cbiAgICAgICAgICB7IGJlZ2luOiBcIlxcXFwqKFxcXFwuW2EtelxcXFwtXSspK1wiIH0sXG4gICAgICAgICAgLy8gc3ViLmV4YW1wbGUuKlxuICAgICAgICAgIHsgYmVnaW46IFwiKFthLXpcXFxcLV0rXFxcXC4pK1xcXFwqXCIgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gSVBcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM31cXFxcLlxcXFxkezEsM30oOlxcXFxkezEsNX0pP1xcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIHVuaXRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJcXFxcZCtba0ttTWdHZHNoZHd5XT9cXFxcYicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIFZBUlxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdOZ2lueCBjb25maWcnLFxuICAgIGFsaWFzZXM6IFsgJ25naW54Y29uZicgXSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogXCJ1cHN0cmVhbSBsb2NhdGlvblwiLFxuICAgICAgICBlbmQ6IC87fFxcey8sXG4gICAgICAgIGNvbnRhaW5zOiBERUZBVUxULmNvbnRhaW5zLFxuICAgICAgICBrZXl3b3JkczogeyBzZWN0aW9uOiBcInVwc3RyZWFtIGxvY2F0aW9uXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VjdGlvbicsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgcmVnZXgubG9va2FoZWFkKC9cXHMrXFx7LykpLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiByZWdleC5sb29rYWhlYWQoaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJ1xcXFxzJyksXG4gICAgICAgIGVuZDogJzt8XFxcXHsnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgc3RhcnRzOiBERUZBVUxUXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6ICdbXlxcXFxzXFxcXH1cXFxce10nXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmdpbng7XG4iLCAiLypcbkxhbmd1YWdlOiBOaW1cbkRlc2NyaXB0aW9uOiBOaW0gaXMgYSBzdGF0aWNhbGx5IHR5cGVkIGNvbXBpbGVkIHN5c3RlbXMgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuXG5XZWJzaXRlOiBodHRwczovL25pbS1sYW5nLm9yZ1xuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuZnVuY3Rpb24gbmltKGhsanMpIHtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJpbnRcIixcbiAgICBcImludDhcIixcbiAgICBcImludDE2XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInVpbnRcIixcbiAgICBcInVpbnQ4XCIsXG4gICAgXCJ1aW50MTZcIixcbiAgICBcInVpbnQzMlwiLFxuICAgIFwidWludDY0XCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZmxvYXQzMlwiLFxuICAgIFwiZmxvYXQ2NFwiLFxuICAgIFwiYm9vbFwiLFxuICAgIFwiY2hhclwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJjc3RyaW5nXCIsXG4gICAgXCJwb2ludGVyXCIsXG4gICAgXCJleHByXCIsXG4gICAgXCJzdG10XCIsXG4gICAgXCJ2b2lkXCIsXG4gICAgXCJhdXRvXCIsXG4gICAgXCJhbnlcIixcbiAgICBcInJhbmdlXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwib3BlbmFycmF5XCIsXG4gICAgXCJ2YXJhcmdzXCIsXG4gICAgXCJzZXFcIixcbiAgICBcInNldFwiLFxuICAgIFwiY2xvbmdcIixcbiAgICBcImN1bG9uZ1wiLFxuICAgIFwiY2NoYXJcIixcbiAgICBcImNzY2hhclwiLFxuICAgIFwiY3Nob3J0XCIsXG4gICAgXCJjaW50XCIsXG4gICAgXCJjc2l6ZVwiLFxuICAgIFwiY2xvbmdsb25nXCIsXG4gICAgXCJjZmxvYXRcIixcbiAgICBcImNkb3VibGVcIixcbiAgICBcImNsb25nZG91YmxlXCIsXG4gICAgXCJjdWNoYXJcIixcbiAgICBcImN1c2hvcnRcIixcbiAgICBcImN1aW50XCIsXG4gICAgXCJjdWxvbmdsb25nXCIsXG4gICAgXCJjc3RyaW5nYXJyYXlcIixcbiAgICBcInNlbWlzdGF0aWNcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImFkZHJcIixcbiAgICBcImFuZFwiLFxuICAgIFwiYXNcIixcbiAgICBcImFzbVwiLFxuICAgIFwiYmluZFwiLFxuICAgIFwiYmxvY2tcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjYXN0XCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImNvbnZlcnRlclwiLFxuICAgIFwiZGlzY2FyZFwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRpdlwiLFxuICAgIFwiZG9cIixcbiAgICBcImVsaWZcIixcbiAgICBcImVsc2VcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXhjZXB0XCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZvclwiLFxuICAgIFwiZnJvbVwiLFxuICAgIFwiZnVuY1wiLFxuICAgIFwiZ2VuZXJpY1wiLFxuICAgIFwiZ3VhcmRlZFwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcG9ydFwiLFxuICAgIFwiaW5cIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImludGVyZmFjZVwiLFxuICAgIFwiaXNcIixcbiAgICBcImlzbm90XCIsXG4gICAgXCJpdGVyYXRvclwiLFxuICAgIFwibGV0XCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWV0aG9kXCIsXG4gICAgXCJtaXhpblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJuaWxcIixcbiAgICBcIm5vdFwiLFxuICAgIFwibm90aW5cIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwib2ZcIixcbiAgICBcIm9yXCIsXG4gICAgXCJvdXRcIixcbiAgICBcInByb2NcIixcbiAgICBcInB0clwiLFxuICAgIFwicmFpc2VcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzaGFyZWRcIixcbiAgICBcInNobFwiLFxuICAgIFwic2hyXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInRlbXBsYXRlXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInR1cGxlXCIsXG4gICAgXCJ0eXBlXCIsXG4gICAgXCJ1c2luZ1wiLFxuICAgIFwidmFyXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aG91dFwiLFxuICAgIFwieG9yXCIsXG4gICAgXCJ5aWVsZFwiXG4gIF07XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcInN0ZGluXCIsXG4gICAgXCJzdGRvdXRcIixcbiAgICBcInN0ZGVyclwiLFxuICAgIFwicmVzdWx0XCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ05pbScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICB0eXBlOiBUWVBFUyxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTlNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLCAvLyBBY3R1YWxseSBwcmFnbWFcbiAgICAgICAgYmVnaW46IC9cXHtcXC4vLFxuICAgICAgICBlbmQ6IC9cXC5cXH0vLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogL1thLXpBLVpdXFx3KlwiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogWyB7IGJlZ2luOiAvXCJcIi8gfSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLyhbYS16QS1aXVxcdyopP1wiXCJcIi8sXG4gICAgICAgIGVuZDogL1wiXCJcIi9cbiAgICAgIH0sXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46IC9cXGJbQS1aXVxcdytcXGIvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKDBbeFhdWzAtOWEtZkEtRl1bXzAtOWEtZkEtRl0qKSgnP1tpSXVVXSg4fDE2fDMyfDY0KSk/LyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoMG9bMC03XVtfMC03XSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKDAoYnxCKVswMV1bXzAxXSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFxcZFtfXFxkXSopKCc/W2lJdVVmRl0oOHwxNnwzMnw2NCkpPy8gfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuaW07XG4iLCAiLypcbkxhbmd1YWdlOiBOaXhcbkF1dGhvcjogRG9tZW4gS29cdTAxN0VhciA8ZG9tZW5AZGV2LnNpPlxuRGVzY3JpcHRpb246IE5peCBmdW5jdGlvbmFsIGxhbmd1YWdlXG5XZWJzaXRlOiBodHRwOi8vbml4b3Mub3JnL25peFxuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuZnVuY3Rpb24gbml4KGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogW1xuICAgICAgXCJyZWNcIixcbiAgICAgIFwid2l0aFwiLFxuICAgICAgXCJsZXRcIixcbiAgICAgIFwiaW5cIixcbiAgICAgIFwiaW5oZXJpdFwiLFxuICAgICAgXCJhc3NlcnRcIixcbiAgICAgIFwiaWZcIixcbiAgICAgIFwiZWxzZVwiLFxuICAgICAgXCJ0aGVuXCJcbiAgICBdLFxuICAgIGxpdGVyYWw6IFtcbiAgICAgIFwidHJ1ZVwiLFxuICAgICAgXCJmYWxzZVwiLFxuICAgICAgXCJvclwiLFxuICAgICAgXCJhbmRcIixcbiAgICAgIFwibnVsbFwiXG4gICAgXSxcbiAgICBidWlsdF9pbjogW1xuICAgICAgXCJpbXBvcnRcIixcbiAgICAgIFwiYWJvcnRcIixcbiAgICAgIFwiYmFzZU5hbWVPZlwiLFxuICAgICAgXCJkaXJPZlwiLFxuICAgICAgXCJpc051bGxcIixcbiAgICAgIFwiYnVpbHRpbnNcIixcbiAgICAgIFwibWFwXCIsXG4gICAgICBcInJlbW92ZUF0dHJzXCIsXG4gICAgICBcInRocm93XCIsXG4gICAgICBcInRvU3RyaW5nXCIsXG4gICAgICBcImRlcml2YXRpb25cIlxuICAgIF1cbiAgfTtcbiAgY29uc3QgQU5USVFVT1RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcJFxcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgfTtcbiAgY29uc3QgRVNDQVBFRF9ET0xMQVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2hhci5lc2NhcGUnLFxuICAgIGJlZ2luOiAvJydcXCQvLFxuICB9O1xuICBjb25zdCBBVFRSUyA9IHtcbiAgICBiZWdpbjogL1thLXpBLVowLTktX10rKFxccyo9KS8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICBiZWdpbjogL1xcUysvLFxuICAgICAgICByZWxldmFuY2U6IDAuMlxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgY29udGFpbnM6IFsgRVNDQVBFRF9ET0xMQVIsIEFOVElRVU9URSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcIicnXCIsXG4gICAgICAgIGVuZDogXCInJ1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBFWFBSRVNTSU9OUyA9IFtcbiAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICBTVFJJTkcsXG4gICAgQVRUUlNcbiAgXTtcbiAgQU5USVFVT1RFLmNvbnRhaW5zID0gRVhQUkVTU0lPTlM7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ05peCcsXG4gICAgYWxpYXNlczogWyBcIm5peG9zXCIgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IEVYUFJFU1NJT05TXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbml4O1xuIiwgIi8qXG5MYW5ndWFnZTogTm9kZSBSRVBMXG5SZXF1aXJlczogamF2YXNjcmlwdC5qc1xuQXV0aG9yOiBNYXJhdCBOYWdheWV2IDxuYWdhZXZtdEB5YW5kZXgucnU+XG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gbm9kZVJlcGwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdOb2RlIFJFUEwnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEucHJvbXB0JyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gYSBzcGFjZSBzZXBhcmF0ZXMgdGhlIFJFUEwgcHJlZml4IGZyb20gdGhlIGFjdHVhbCBjb2RlXG4gICAgICAgICAgLy8gdGhpcyBpcyBwdXJlbHkgZm9yIGNsZWFuZXIgSFRNTCBvdXRwdXRcbiAgICAgICAgICBlbmQ6IC8gfCQvLFxuICAgICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ2phdmFzY3JpcHQnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9ePig/PVsgXXwkKS8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXlxcLlxcLlxcLig/PVsgXXwkKS8gfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5vZGVSZXBsO1xuIiwgIi8qXG5MYW5ndWFnZTogTlNJU1xuRGVzY3JpcHRpb246IE51bGxzb2Z0IFNjcmlwdGFibGUgSW5zdGFsbCBTeXN0ZW1cbkF1dGhvcjogSmFuIFQuIFNvdHQgPGphbi5zb3R0QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vbnNpcy5zb3VyY2Vmb3JnZS5pby9NYWluX1BhZ2VcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cblxuZnVuY3Rpb24gbnNpcyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgTEFOR1VBR0VfQ09OU1RBTlRTID0gW1xuICAgIFwiQURNSU5UT09MU1wiLFxuICAgIFwiQVBQREFUQVwiLFxuICAgIFwiQ0RCVVJOX0FSRUFcIixcbiAgICBcIkNNRExJTkVcIixcbiAgICBcIkNPTU1PTkZJTEVTMzJcIixcbiAgICBcIkNPTU1PTkZJTEVTNjRcIixcbiAgICBcIkNPTU1PTkZJTEVTXCIsXG4gICAgXCJDT09LSUVTXCIsXG4gICAgXCJERVNLVE9QXCIsXG4gICAgXCJET0NVTUVOVFNcIixcbiAgICBcIkVYRURJUlwiLFxuICAgIFwiRVhFRklMRVwiLFxuICAgIFwiRVhFUEFUSFwiLFxuICAgIFwiRkFWT1JJVEVTXCIsXG4gICAgXCJGT05UU1wiLFxuICAgIFwiSElTVE9SWVwiLFxuICAgIFwiSFdORFBBUkVOVFwiLFxuICAgIFwiSU5TVERJUlwiLFxuICAgIFwiSU5URVJORVRfQ0FDSEVcIixcbiAgICBcIkxBTkdVQUdFXCIsXG4gICAgXCJMT0NBTEFQUERBVEFcIixcbiAgICBcIk1VU0lDXCIsXG4gICAgXCJORVRIT09EXCIsXG4gICAgXCJPVVRESVJcIixcbiAgICBcIlBJQ1RVUkVTXCIsXG4gICAgXCJQTFVHSU5TRElSXCIsXG4gICAgXCJQUklOVEhPT0RcIixcbiAgICBcIlBST0ZJTEVcIixcbiAgICBcIlBST0dSQU1GSUxFUzMyXCIsXG4gICAgXCJQUk9HUkFNRklMRVM2NFwiLFxuICAgIFwiUFJPR1JBTUZJTEVTXCIsXG4gICAgXCJRVUlDS0xBVU5DSFwiLFxuICAgIFwiUkVDRU5UXCIsXG4gICAgXCJSRVNPVVJDRVNfTE9DQUxJWkVEXCIsXG4gICAgXCJSRVNPVVJDRVNcIixcbiAgICBcIlNFTkRUT1wiLFxuICAgIFwiU01QUk9HUkFNU1wiLFxuICAgIFwiU01TVEFSVFVQXCIsXG4gICAgXCJTVEFSVE1FTlVcIixcbiAgICBcIlNZU0RJUlwiLFxuICAgIFwiVEVNUFwiLFxuICAgIFwiVEVNUExBVEVTXCIsXG4gICAgXCJWSURFT1NcIixcbiAgICBcIldJTkRJUlwiXG4gIF07XG5cbiAgY29uc3QgUEFSQU1fTkFNRVMgPSBbXG4gICAgXCJBUkNISVZFXCIsXG4gICAgXCJGSUxFX0FUVFJJQlVURV9BUkNISVZFXCIsXG4gICAgXCJGSUxFX0FUVFJJQlVURV9OT1JNQUxcIixcbiAgICBcIkZJTEVfQVRUUklCVVRFX09GRkxJTkVcIixcbiAgICBcIkZJTEVfQVRUUklCVVRFX1JFQURPTkxZXCIsXG4gICAgXCJGSUxFX0FUVFJJQlVURV9TWVNURU1cIixcbiAgICBcIkZJTEVfQVRUUklCVVRFX1RFTVBPUkFSWVwiLFxuICAgIFwiSEtDUlwiLFxuICAgIFwiSEtDVVwiLFxuICAgIFwiSEtERFwiLFxuICAgIFwiSEtFWV9DTEFTU0VTX1JPT1RcIixcbiAgICBcIkhLRVlfQ1VSUkVOVF9DT05GSUdcIixcbiAgICBcIkhLRVlfQ1VSUkVOVF9VU0VSXCIsXG4gICAgXCJIS0VZX0RZTl9EQVRBXCIsXG4gICAgXCJIS0VZX0xPQ0FMX01BQ0hJTkVcIixcbiAgICBcIkhLRVlfUEVSRk9STUFOQ0VfREFUQVwiLFxuICAgIFwiSEtFWV9VU0VSU1wiLFxuICAgIFwiSEtMTVwiLFxuICAgIFwiSEtQRFwiLFxuICAgIFwiSEtVXCIsXG4gICAgXCJJREFCT1JUXCIsXG4gICAgXCJJRENBTkNFTFwiLFxuICAgIFwiSURJR05PUkVcIixcbiAgICBcIklETk9cIixcbiAgICBcIklET0tcIixcbiAgICBcIklEUkVUUllcIixcbiAgICBcIklEWUVTXCIsXG4gICAgXCJNQl9BQk9SVFJFVFJZSUdOT1JFXCIsXG4gICAgXCJNQl9ERUZCVVRUT04xXCIsXG4gICAgXCJNQl9ERUZCVVRUT04yXCIsXG4gICAgXCJNQl9ERUZCVVRUT04zXCIsXG4gICAgXCJNQl9ERUZCVVRUT040XCIsXG4gICAgXCJNQl9JQ09ORVhDTEFNQVRJT05cIixcbiAgICBcIk1CX0lDT05JTkZPUk1BVElPTlwiLFxuICAgIFwiTUJfSUNPTlFVRVNUSU9OXCIsXG4gICAgXCJNQl9JQ09OU1RPUFwiLFxuICAgIFwiTUJfT0tcIixcbiAgICBcIk1CX09LQ0FOQ0VMXCIsXG4gICAgXCJNQl9SRVRSWUNBTkNFTFwiLFxuICAgIFwiTUJfUklHSFRcIixcbiAgICBcIk1CX1JUTFJFQURJTkdcIixcbiAgICBcIk1CX1NFVEZPUkVHUk9VTkRcIixcbiAgICBcIk1CX1RPUE1PU1RcIixcbiAgICBcIk1CX1VTRVJJQ09OXCIsXG4gICAgXCJNQl9ZRVNOT1wiLFxuICAgIFwiTk9STUFMXCIsXG4gICAgXCJPRkZMSU5FXCIsXG4gICAgXCJSRUFET05MWVwiLFxuICAgIFwiU0hDVFhcIixcbiAgICBcIlNIRUxMX0NPTlRFWFRcIixcbiAgICBcIlNZU1RFTXxURU1QT1JBUllcIixcbiAgXTtcblxuICBjb25zdCBDT01QSUxFUl9GTEFHUyA9IFtcbiAgICBcImFkZGluY2x1ZGVkaXJcIixcbiAgICBcImFkZHBsdWdpbmRpclwiLFxuICAgIFwiYXBwZW5kZmlsZVwiLFxuICAgIFwiYXNzZXJ0XCIsXG4gICAgXCJjZFwiLFxuICAgIFwiZGVmaW5lXCIsXG4gICAgXCJkZWxmaWxlXCIsXG4gICAgXCJlY2hvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRpZlwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImZpbmFsaXplXCIsXG4gICAgXCJnZXRkbGx2ZXJzaW9uXCIsXG4gICAgXCJnZXR0bGJ2ZXJzaW9uXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaWZkZWZcIixcbiAgICBcImlmbWFjcm9kZWZcIixcbiAgICBcImlmbWFjcm9uZGVmXCIsXG4gICAgXCJpZm5kZWZcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluc2VydG1hY3JvXCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWFjcm9lbmRcIixcbiAgICBcIm1ha2Vuc2lzXCIsXG4gICAgXCJwYWNraGRyXCIsXG4gICAgXCJzZWFyY2hwYXJzZVwiLFxuICAgIFwic2VhcmNocmVwbGFjZVwiLFxuICAgIFwic3lzdGVtXCIsXG4gICAgXCJ0ZW1wZmlsZVwiLFxuICAgIFwidW5kZWZcIixcbiAgICBcInVuaW5zdGZpbmFsaXplXCIsXG4gICAgXCJ2ZXJib3NlXCIsXG4gICAgXCJ3YXJuaW5nXCIsXG4gIF07XG5cbiAgY29uc3QgQ09OU1RBTlRTID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlLmNvbnN0YW50JyxcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXCQvLCByZWdleC5laXRoZXIoLi4uTEFOR1VBR0VfQ09OU1RBTlRTKSlcbiAgfTtcblxuICBjb25zdCBERUZJTkVTID0ge1xuICAgIC8vICR7ZGVmaW5lc31cbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC9cXCQrXFx7W1xcIVxcdy46LV0rXFx9L1xuICB9O1xuXG4gIGNvbnN0IFZBUklBQkxFUyA9IHtcbiAgICAvLyAkdmFyaWFibGVzXG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFwkK1xcd1tcXHdcXC5dKi8sXG4gICAgaWxsZWdhbDogL1xcKFxcKVxce1xcfS9cbiAgfTtcblxuICBjb25zdCBMQU5HVUFHRVMgPSB7XG4gICAgLy8gJChsYW5ndWFnZV9zdHJpbmdzKVxuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL1xcJCtcXChbXFx3Xi46IS1dK1xcKS9cbiAgfTtcblxuICBjb25zdCBQQVJBTUVURVJTID0ge1xuICAgIC8vIGNvbW1hbmQgcGFyYW1ldGVyc1xuICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgYmVnaW46IHJlZ2V4LmVpdGhlciguLi5QQVJBTV9OQU1FUylcbiAgfTtcblxuICBjb25zdCBDT01QSUxFUiA9IHtcbiAgICAvLyAhY29tcGlsZXJfZmxhZ3NcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KFxuICAgICAgLyEvLFxuICAgICAgcmVnZXguZWl0aGVyKC4uLkNPTVBJTEVSX0ZMQUdTKVxuICAgIClcbiAgfTtcblxuICBjb25zdCBFU0NBUEVfQ0hBUlMgPSB7XG4gICAgLy8gJFxcbiwgJFxcciwgJFxcdCwgJCRcbiAgICBjbGFzc05hbWU6ICdjaGFyLmVzY2FwZScsXG4gICAgYmVnaW46IC9cXCQoXFxcXFtucnRdfFxcJCkvXG4gIH07XG5cbiAgY29uc3QgUExVR0lOUyA9IHtcbiAgICAvLyBwbHVnOjppbnNcbiAgICBjbGFzc05hbWU6ICd0aXRsZS5mdW5jdGlvbicsXG4gICAgYmVnaW46IC9cXHcrOjpcXHcrL1xuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIidcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgZW5kOiAnXFwnJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCdcbiAgICAgIH1cbiAgICBdLFxuICAgIGlsbGVnYWw6IC9cXG4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBFU0NBUEVfQ0hBUlMsXG4gICAgICBDT05TVEFOVFMsXG4gICAgICBERUZJTkVTLFxuICAgICAgVkFSSUFCTEVTLFxuICAgICAgTEFOR1VBR0VTXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiQWJvcnRcIixcbiAgICBcIkFkZEJyYW5kaW5nSW1hZ2VcIixcbiAgICBcIkFkZFNpemVcIixcbiAgICBcIkFsbG93Um9vdERpckluc3RhbGxcIixcbiAgICBcIkFsbG93U2tpcEZpbGVzXCIsXG4gICAgXCJBdXRvQ2xvc2VXaW5kb3dcIixcbiAgICBcIkJHRm9udFwiLFxuICAgIFwiQkdHcmFkaWVudFwiLFxuICAgIFwiQnJhbmRpbmdUZXh0XCIsXG4gICAgXCJCcmluZ1RvRnJvbnRcIixcbiAgICBcIkNhbGxcIixcbiAgICBcIkNhbGxJbnN0RExMXCIsXG4gICAgXCJDYXB0aW9uXCIsXG4gICAgXCJDaGFuZ2VVSVwiLFxuICAgIFwiQ2hlY2tCaXRtYXBcIixcbiAgICBcIkNsZWFyRXJyb3JzXCIsXG4gICAgXCJDb21wbGV0ZWRUZXh0XCIsXG4gICAgXCJDb21wb25lbnRUZXh0XCIsXG4gICAgXCJDb3B5RmlsZXNcIixcbiAgICBcIkNSQ0NoZWNrXCIsXG4gICAgXCJDcmVhdGVEaXJlY3RvcnlcIixcbiAgICBcIkNyZWF0ZUZvbnRcIixcbiAgICBcIkNyZWF0ZVNob3J0Q3V0XCIsXG4gICAgXCJEZWxldGVcIixcbiAgICBcIkRlbGV0ZUlOSVNlY1wiLFxuICAgIFwiRGVsZXRlSU5JU3RyXCIsXG4gICAgXCJEZWxldGVSZWdLZXlcIixcbiAgICBcIkRlbGV0ZVJlZ1ZhbHVlXCIsXG4gICAgXCJEZXRhaWxQcmludFwiLFxuICAgIFwiRGV0YWlsc0J1dHRvblRleHRcIixcbiAgICBcIkRpclRleHRcIixcbiAgICBcIkRpclZhclwiLFxuICAgIFwiRGlyVmVyaWZ5XCIsXG4gICAgXCJFbmFibGVXaW5kb3dcIixcbiAgICBcIkVudW1SZWdLZXlcIixcbiAgICBcIkVudW1SZWdWYWx1ZVwiLFxuICAgIFwiRXhjaFwiLFxuICAgIFwiRXhlY1wiLFxuICAgIFwiRXhlY1NoZWxsXCIsXG4gICAgXCJFeGVjU2hlbGxXYWl0XCIsXG4gICAgXCJFeGVjV2FpdFwiLFxuICAgIFwiRXhwYW5kRW52U3RyaW5nc1wiLFxuICAgIFwiRmlsZVwiLFxuICAgIFwiRmlsZUJ1ZlNpemVcIixcbiAgICBcIkZpbGVDbG9zZVwiLFxuICAgIFwiRmlsZUVycm9yVGV4dFwiLFxuICAgIFwiRmlsZU9wZW5cIixcbiAgICBcIkZpbGVSZWFkXCIsXG4gICAgXCJGaWxlUmVhZEJ5dGVcIixcbiAgICBcIkZpbGVSZWFkVVRGMTZMRVwiLFxuICAgIFwiRmlsZVJlYWRXb3JkXCIsXG4gICAgXCJGaWxlV3JpdGVVVEYxNkxFXCIsXG4gICAgXCJGaWxlU2Vla1wiLFxuICAgIFwiRmlsZVdyaXRlXCIsXG4gICAgXCJGaWxlV3JpdGVCeXRlXCIsXG4gICAgXCJGaWxlV3JpdGVXb3JkXCIsXG4gICAgXCJGaW5kQ2xvc2VcIixcbiAgICBcIkZpbmRGaXJzdFwiLFxuICAgIFwiRmluZE5leHRcIixcbiAgICBcIkZpbmRXaW5kb3dcIixcbiAgICBcIkZsdXNoSU5JXCIsXG4gICAgXCJHZXRDdXJJbnN0VHlwZVwiLFxuICAgIFwiR2V0Q3VycmVudEFkZHJlc3NcIixcbiAgICBcIkdldERsZ0l0ZW1cIixcbiAgICBcIkdldERMTFZlcnNpb25cIixcbiAgICBcIkdldERMTFZlcnNpb25Mb2NhbFwiLFxuICAgIFwiR2V0RXJyb3JMZXZlbFwiLFxuICAgIFwiR2V0RmlsZVRpbWVcIixcbiAgICBcIkdldEZpbGVUaW1lTG9jYWxcIixcbiAgICBcIkdldEZ1bGxQYXRoTmFtZVwiLFxuICAgIFwiR2V0RnVuY3Rpb25BZGRyZXNzXCIsXG4gICAgXCJHZXRJbnN0RGlyRXJyb3JcIixcbiAgICBcIkdldEtub3duRm9sZGVyUGF0aFwiLFxuICAgIFwiR2V0TGFiZWxBZGRyZXNzXCIsXG4gICAgXCJHZXRUZW1wRmlsZU5hbWVcIixcbiAgICBcIkdldFdpblZlclwiLFxuICAgIFwiR290b1wiLFxuICAgIFwiSGlkZVdpbmRvd1wiLFxuICAgIFwiSWNvblwiLFxuICAgIFwiSWZBYm9ydFwiLFxuICAgIFwiSWZFcnJvcnNcIixcbiAgICBcIklmRmlsZUV4aXN0c1wiLFxuICAgIFwiSWZSZWJvb3RGbGFnXCIsXG4gICAgXCJJZlJ0bExhbmd1YWdlXCIsXG4gICAgXCJJZlNoZWxsVmFyQ29udGV4dEFsbFwiLFxuICAgIFwiSWZTaWxlbnRcIixcbiAgICBcIkluaXRQbHVnaW5zRGlyXCIsXG4gICAgXCJJbnN0YWxsQnV0dG9uVGV4dFwiLFxuICAgIFwiSW5zdGFsbENvbG9yc1wiLFxuICAgIFwiSW5zdGFsbERpclwiLFxuICAgIFwiSW5zdGFsbERpclJlZ0tleVwiLFxuICAgIFwiSW5zdFByb2dyZXNzRmxhZ3NcIixcbiAgICBcIkluc3RUeXBlXCIsXG4gICAgXCJJbnN0VHlwZUdldFRleHRcIixcbiAgICBcIkluc3RUeXBlU2V0VGV4dFwiLFxuICAgIFwiSW50NjRDbXBcIixcbiAgICBcIkludDY0Q21wVVwiLFxuICAgIFwiSW50NjRGbXRcIixcbiAgICBcIkludENtcFwiLFxuICAgIFwiSW50Q21wVVwiLFxuICAgIFwiSW50Rm10XCIsXG4gICAgXCJJbnRPcFwiLFxuICAgIFwiSW50UHRyQ21wXCIsXG4gICAgXCJJbnRQdHJDbXBVXCIsXG4gICAgXCJJbnRQdHJPcFwiLFxuICAgIFwiSXNXaW5kb3dcIixcbiAgICBcIkxhbmdTdHJpbmdcIixcbiAgICBcIkxpY2Vuc2VCa0NvbG9yXCIsXG4gICAgXCJMaWNlbnNlRGF0YVwiLFxuICAgIFwiTGljZW5zZUZvcmNlU2VsZWN0aW9uXCIsXG4gICAgXCJMaWNlbnNlTGFuZ1N0cmluZ1wiLFxuICAgIFwiTGljZW5zZVRleHRcIixcbiAgICBcIkxvYWRBbmRTZXRJbWFnZVwiLFxuICAgIFwiTG9hZExhbmd1YWdlRmlsZVwiLFxuICAgIFwiTG9ja1dpbmRvd1wiLFxuICAgIFwiTG9nU2V0XCIsXG4gICAgXCJMb2dUZXh0XCIsXG4gICAgXCJNYW5pZmVzdERQSUF3YXJlXCIsXG4gICAgXCJNYW5pZmVzdExvbmdQYXRoQXdhcmVcIixcbiAgICBcIk1hbmlmZXN0TWF4VmVyc2lvblRlc3RlZFwiLFxuICAgIFwiTWFuaWZlc3RTdXBwb3J0ZWRPU1wiLFxuICAgIFwiTWVzc2FnZUJveFwiLFxuICAgIFwiTWlzY0J1dHRvblRleHRcIixcbiAgICBcIk5hbWV8MFwiLFxuICAgIFwiTm9wXCIsXG4gICAgXCJPdXRGaWxlXCIsXG4gICAgXCJQYWdlXCIsXG4gICAgXCJQYWdlQ2FsbGJhY2tzXCIsXG4gICAgXCJQRUFkZFJlc291cmNlXCIsXG4gICAgXCJQRURsbENoYXJhY3RlcmlzdGljc1wiLFxuICAgIFwiUEVSZW1vdmVSZXNvdXJjZVwiLFxuICAgIFwiUEVTdWJzeXNWZXJcIixcbiAgICBcIlBvcFwiLFxuICAgIFwiUHVzaFwiLFxuICAgIFwiUXVpdFwiLFxuICAgIFwiUmVhZEVudlN0clwiLFxuICAgIFwiUmVhZElOSVN0clwiLFxuICAgIFwiUmVhZFJlZ0RXT1JEXCIsXG4gICAgXCJSZWFkUmVnU3RyXCIsXG4gICAgXCJSZWJvb3RcIixcbiAgICBcIlJlZ0RMTFwiLFxuICAgIFwiUmVuYW1lXCIsXG4gICAgXCJSZXF1ZXN0RXhlY3V0aW9uTGV2ZWxcIixcbiAgICBcIlJlc2VydmVGaWxlXCIsXG4gICAgXCJSZXR1cm5cIixcbiAgICBcIlJNRGlyXCIsXG4gICAgXCJTZWFyY2hQYXRoXCIsXG4gICAgXCJTZWN0aW9uR2V0RmxhZ3NcIixcbiAgICBcIlNlY3Rpb25HZXRJbnN0VHlwZXNcIixcbiAgICBcIlNlY3Rpb25HZXRTaXplXCIsXG4gICAgXCJTZWN0aW9uR2V0VGV4dFwiLFxuICAgIFwiU2VjdGlvbkluXCIsXG4gICAgXCJTZWN0aW9uU2V0RmxhZ3NcIixcbiAgICBcIlNlY3Rpb25TZXRJbnN0VHlwZXNcIixcbiAgICBcIlNlY3Rpb25TZXRTaXplXCIsXG4gICAgXCJTZWN0aW9uU2V0VGV4dFwiLFxuICAgIFwiU2VuZE1lc3NhZ2VcIixcbiAgICBcIlNldEF1dG9DbG9zZVwiLFxuICAgIFwiU2V0QnJhbmRpbmdJbWFnZVwiLFxuICAgIFwiU2V0Q29tcHJlc3NcIixcbiAgICBcIlNldENvbXByZXNzb3JcIixcbiAgICBcIlNldENvbXByZXNzb3JEaWN0U2l6ZVwiLFxuICAgIFwiU2V0Q3RsQ29sb3JzXCIsXG4gICAgXCJTZXRDdXJJbnN0VHlwZVwiLFxuICAgIFwiU2V0RGF0YWJsb2NrT3B0aW1pemVcIixcbiAgICBcIlNldERhdGVTYXZlXCIsXG4gICAgXCJTZXREZXRhaWxzUHJpbnRcIixcbiAgICBcIlNldERldGFpbHNWaWV3XCIsXG4gICAgXCJTZXRFcnJvckxldmVsXCIsXG4gICAgXCJTZXRFcnJvcnNcIixcbiAgICBcIlNldEZpbGVBdHRyaWJ1dGVzXCIsXG4gICAgXCJTZXRGb250XCIsXG4gICAgXCJTZXRPdXRQYXRoXCIsXG4gICAgXCJTZXRPdmVyd3JpdGVcIixcbiAgICBcIlNldFJlYm9vdEZsYWdcIixcbiAgICBcIlNldFJlZ1ZpZXdcIixcbiAgICBcIlNldFNoZWxsVmFyQ29udGV4dFwiLFxuICAgIFwiU2V0U2lsZW50XCIsXG4gICAgXCJTaG93SW5zdERldGFpbHNcIixcbiAgICBcIlNob3dVbmluc3REZXRhaWxzXCIsXG4gICAgXCJTaG93V2luZG93XCIsXG4gICAgXCJTaWxlbnRJbnN0YWxsXCIsXG4gICAgXCJTaWxlbnRVbkluc3RhbGxcIixcbiAgICBcIlNsZWVwXCIsXG4gICAgXCJTcGFjZVRleHRzXCIsXG4gICAgXCJTdHJDbXBcIixcbiAgICBcIlN0ckNtcFNcIixcbiAgICBcIlN0ckNweVwiLFxuICAgIFwiU3RyTGVuXCIsXG4gICAgXCJTdWJDYXB0aW9uXCIsXG4gICAgXCJVbmljb2RlXCIsXG4gICAgXCJVbmluc3RhbGxCdXR0b25UZXh0XCIsXG4gICAgXCJVbmluc3RhbGxDYXB0aW9uXCIsXG4gICAgXCJVbmluc3RhbGxJY29uXCIsXG4gICAgXCJVbmluc3RhbGxTdWJDYXB0aW9uXCIsXG4gICAgXCJVbmluc3RhbGxUZXh0XCIsXG4gICAgXCJVbmluc3RQYWdlXCIsXG4gICAgXCJVblJlZ0RMTFwiLFxuICAgIFwiVmFyXCIsXG4gICAgXCJWSUFkZFZlcnNpb25LZXlcIixcbiAgICBcIlZJRmlsZVZlcnNpb25cIixcbiAgICBcIlZJUHJvZHVjdFZlcnNpb25cIixcbiAgICBcIldpbmRvd0ljb25cIixcbiAgICBcIldyaXRlSU5JU3RyXCIsXG4gICAgXCJXcml0ZVJlZ0JpblwiLFxuICAgIFwiV3JpdGVSZWdEV09SRFwiLFxuICAgIFwiV3JpdGVSZWdFeHBhbmRTdHJcIixcbiAgICBcIldyaXRlUmVnTXVsdGlTdHJcIixcbiAgICBcIldyaXRlUmVnTm9uZVwiLFxuICAgIFwiV3JpdGVSZWdTdHJcIixcbiAgICBcIldyaXRlVW5pbnN0YWxsZXJcIixcbiAgICBcIlhQU3R5bGVcIlxuICBdO1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwiYWRtaW5cIixcbiAgICBcImFsbFwiLFxuICAgIFwiYXV0b1wiLFxuICAgIFwiYm90aFwiLFxuICAgIFwiYm90dG9tXCIsXG4gICAgXCJiemlwMlwiLFxuICAgIFwiY29sb3JlZFwiLFxuICAgIFwiY29tcG9uZW50c1wiLFxuICAgIFwiY3VycmVudFwiLFxuICAgIFwiY3VzdG9tXCIsXG4gICAgXCJkaXJlY3RvcnlcIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJmb3JjZVwiLFxuICAgIFwiaGlkZVwiLFxuICAgIFwiaGlnaGVzdFwiLFxuICAgIFwiaWZkaWZmXCIsXG4gICAgXCJpZm5ld2VyXCIsXG4gICAgXCJpbnN0ZmlsZXNcIixcbiAgICBcImxhc3R1c2VkXCIsXG4gICAgXCJsZWF2ZVwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwibGljZW5zZVwiLFxuICAgIFwibGlzdG9ubHlcIixcbiAgICBcImx6bWFcIixcbiAgICBcIm5ldmVyc2hvd1wiLFxuICAgIFwibm9uZVwiLFxuICAgIFwibm9ybWFsXCIsXG4gICAgXCJub3RzZXRcIixcbiAgICBcIm9mZlwiLFxuICAgIFwib25cIixcbiAgICBcIm9wZW5cIixcbiAgICBcInByaW50XCIsXG4gICAgXCJyaWdodFwiLFxuICAgIFwic2hvd1wiLFxuICAgIFwic2lsZW50XCIsXG4gICAgXCJzaWxlbnRsb2dcIixcbiAgICBcInNtb290aFwiLFxuICAgIFwidGV4dG9ubHlcIixcbiAgICBcInRvcFwiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJ1bi5jb21wb25lbnRzXCIsXG4gICAgXCJ1bi5jdXN0b21cIixcbiAgICBcInVuLmRpcmVjdG9yeVwiLFxuICAgIFwidW4uaW5zdGZpbGVzXCIsXG4gICAgXCJ1bi5saWNlbnNlXCIsXG4gICAgXCJ1bmluc3RDb25maXJtXCIsXG4gICAgXCJ1c2VyXCIsXG4gICAgXCJXaW4xMFwiLFxuICAgIFwiV2luN1wiLFxuICAgIFwiV2luOFwiLFxuICAgIFwiV2luVmlzdGFcIixcbiAgICBcInpsaWJcIlxuICBdO1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9GdW5jdGlvbi8sXG4gICAgICAvXFxzKy8sXG4gICAgICByZWdleC5jb25jYXQoLyhcXC4pPy8sIGhsanMuSURFTlRfUkUpXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICB9XG4gIH07XG5cbiAgLy8gVmFyIEN1c3RvbS5WYXJpYWJsZS5OYW1lLkl0ZW1cbiAgLy8gVmFyIC9HTE9CQUwgQ3VzdG9tLlZhcmlhYmxlLk5hbWUuSXRlbVxuICBjb25zdCBWQVJJQUJMRV9OQU1FX1JFID0gL1tBLVphLXpdW1xcdy5dKi87XG4gIGNvbnN0IFZBUklBQkxFX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9WYXIvLFxuICAgICAgL1xccysvLFxuICAgICAgLyg/OlxcL0dMT0JBTFxccyspPy8sXG4gICAgICBWQVJJQUJMRV9OQU1FX1JFXG4gICAgXSxcbiAgICBzY29wZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInBhcmFtc1wiLFxuICAgICAgNDogXCJ2YXJpYWJsZVwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ05TSVMnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICBWQVJJQUJMRV9ERUZJTklUSU9OLFxuICAgICAgRlVOQ1RJT05fREVGSU5JVElPTixcbiAgICAgIHsgYmVnaW5LZXl3b3JkczogJ0Z1bmN0aW9uIFBhZ2VFeCBTZWN0aW9uIFNlY3Rpb25Hcm91cCBGdW5jdGlvbkVuZCBTZWN0aW9uRW5kJywgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTVBJTEVSLFxuICAgICAgREVGSU5FUyxcbiAgICAgIFZBUklBQkxFUyxcbiAgICAgIExBTkdVQUdFUyxcbiAgICAgIFBBUkFNRVRFUlMsXG4gICAgICBQTFVHSU5TLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuc2lzO1xuIiwgIi8qXG5MYW5ndWFnZTogT2JqZWN0aXZlLUNcbkF1dGhvcjogVmFsZXJpaSBIaW9yYSA8dmFsZXJpaS5oaW9yYUBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEFuZ2VsIEcuIE9sbG9xdWkgPGFuZ2VsZ2FyY2lhLm1haWxAZ21haWwuY29tPiwgTWF0dCBEaWVwaG91c2UgPG1hdHRAZGllcGhvdXNlLmNvbT4sIEFuZHJldyBGYXJtZXIgPGFoZmFybWVyQGdtYWlsLmNvbT4sIE1pbmggTmd1eVx1MUVDNW4gPG14bkAxZWM1Lm9yZz5cbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL29iamVjdGl2ZWNcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIG9iamVjdGl2ZWMoaGxqcykge1xuICBjb25zdCBBUElfQ0xBU1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIGJlZ2luOiAnXFxcXGIoQVZ8Q0F8Q0Z8Q0d8Q0l8Q0x8Q018Q058Q1R8TUt8TVB8TVRLfE1UTHxOU3xTQ058U0t8VUl8V0t8WEMpXFxcXHcrJ1xuICB9O1xuICBjb25zdCBJREVOVElGSUVSX1JFID0gL1thLXpBLVpAXVthLXpBLVowLTlfXSovO1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcImludFwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImNoYXJcIixcbiAgICBcInVuc2lnbmVkXCIsXG4gICAgXCJzaWduZWRcIixcbiAgICBcInNob3J0XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJkb3VibGVcIixcbiAgICBcIndjaGFyX3RcIixcbiAgICBcInVuaWNoYXJcIixcbiAgICBcInZvaWRcIixcbiAgICBcImJvb2xcIixcbiAgICBcIkJPT0xcIixcbiAgICBcImlkfDBcIixcbiAgICBcIl9Cb29sXCJcbiAgXTtcbiAgY29uc3QgS1dTID0gW1xuICAgIFwid2hpbGVcIixcbiAgICBcImV4cG9ydFwiLFxuICAgIFwic2l6ZW9mXCIsXG4gICAgXCJ0eXBlZGVmXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJ2b2xhdGlsZVwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJtdXRhYmxlXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiZG9cIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiYXNtXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwiZXhwbGljaXRcIixcbiAgICBcInR5cGVuYW1lXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJpbmxpbmVcIixcbiAgICBcInJlYWRvbmx5XCIsXG4gICAgXCJhc3NpZ25cIixcbiAgICBcInJlYWR3cml0ZVwiLFxuICAgIFwic2VsZlwiLFxuICAgIFwiQHN5bmNocm9uaXplZFwiLFxuICAgIFwiaWRcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwibm9uYXRvbWljXCIsXG4gICAgXCJJQk91dGxldFwiLFxuICAgIFwiSUJBY3Rpb25cIixcbiAgICBcInN0cm9uZ1wiLFxuICAgIFwid2Vha1wiLFxuICAgIFwiY29weVwiLFxuICAgIFwiaW5cIixcbiAgICBcIm91dFwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImJ5Y29weVwiLFxuICAgIFwiYnlyZWZcIixcbiAgICBcIm9uZXdheVwiLFxuICAgIFwiX19zdHJvbmdcIixcbiAgICBcIl9fd2Vha1wiLFxuICAgIFwiX19ibG9ja1wiLFxuICAgIFwiX19hdXRvcmVsZWFzaW5nXCIsXG4gICAgXCJAcHJpdmF0ZVwiLFxuICAgIFwiQHByb3RlY3RlZFwiLFxuICAgIFwiQHB1YmxpY1wiLFxuICAgIFwiQHRyeVwiLFxuICAgIFwiQHByb3BlcnR5XCIsXG4gICAgXCJAZW5kXCIsXG4gICAgXCJAdGhyb3dcIixcbiAgICBcIkBjYXRjaFwiLFxuICAgIFwiQGZpbmFsbHlcIixcbiAgICBcIkBhdXRvcmVsZWFzZXBvb2xcIixcbiAgICBcIkBzeW50aGVzaXplXCIsXG4gICAgXCJAZHluYW1pY1wiLFxuICAgIFwiQHNlbGVjdG9yXCIsXG4gICAgXCJAb3B0aW9uYWxcIixcbiAgICBcIkByZXF1aXJlZFwiLFxuICAgIFwiQGVuY29kZVwiLFxuICAgIFwiQHBhY2thZ2VcIixcbiAgICBcIkBpbXBvcnRcIixcbiAgICBcIkBkZWZzXCIsXG4gICAgXCJAY29tcGF0aWJpbGl0eV9hbGlhc1wiLFxuICAgIFwiX19icmlkZ2VcIixcbiAgICBcIl9fYnJpZGdlX3RyYW5zZmVyXCIsXG4gICAgXCJfX2JyaWRnZV9yZXRhaW5lZFwiLFxuICAgIFwiX19icmlkZ2VfcmV0YWluXCIsXG4gICAgXCJfX2NvdmFyaWFudFwiLFxuICAgIFwiX19jb250cmF2YXJpYW50XCIsXG4gICAgXCJfX2tpbmRvZlwiLFxuICAgIFwiX05vbm51bGxcIixcbiAgICBcIl9OdWxsYWJsZVwiLFxuICAgIFwiX051bGxfdW5zcGVjaWZpZWRcIixcbiAgICBcIl9fRlVOQ1RJT05fX1wiLFxuICAgIFwiX19QUkVUVFlfRlVOQ1RJT05fX1wiLFxuICAgIFwiX19hdHRyaWJ1dGVfX1wiLFxuICAgIFwiZ2V0dGVyXCIsXG4gICAgXCJzZXR0ZXJcIixcbiAgICBcInJldGFpblwiLFxuICAgIFwidW5zYWZlX3VucmV0YWluZWRcIixcbiAgICBcIm5vbm51bGxcIixcbiAgICBcIm51bGxhYmxlXCIsXG4gICAgXCJudWxsX3Vuc3BlY2lmaWVkXCIsXG4gICAgXCJudWxsX3Jlc2V0dGFibGVcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJpbnN0YW5jZXR5cGVcIixcbiAgICBcIk5TX0RFU0lHTkFURURfSU5JVElBTElaRVJcIixcbiAgICBcIk5TX1VOQVZBSUxBQkxFXCIsXG4gICAgXCJOU19SRVFVSVJFU19TVVBFUlwiLFxuICAgIFwiTlNfUkVUVVJOU19JTk5FUl9QT0lOVEVSXCIsXG4gICAgXCJOU19JTkxJTkVcIixcbiAgICBcIk5TX0FWQUlMQUJMRVwiLFxuICAgIFwiTlNfREVQUkVDQVRFRFwiLFxuICAgIFwiTlNfRU5VTVwiLFxuICAgIFwiTlNfT1BUSU9OU1wiLFxuICAgIFwiTlNfU1dJRlRfVU5BVkFJTEFCTEVcIixcbiAgICBcIk5TX0FTU1VNRV9OT05OVUxMX0JFR0lOXCIsXG4gICAgXCJOU19BU1NVTUVfTk9OTlVMTF9FTkRcIixcbiAgICBcIk5TX1JFRklORURfRk9SX1NXSUZUXCIsXG4gICAgXCJOU19TV0lGVF9OQU1FXCIsXG4gICAgXCJOU19TV0lGVF9OT1RIUk9XXCIsXG4gICAgXCJOU19EVVJJTkdcIixcbiAgICBcIk5TX0hBTkRMRVJcIixcbiAgICBcIk5TX0VOREhBTkRMRVJcIixcbiAgICBcIk5TX1ZBTFVFUkVUVVJOXCIsXG4gICAgXCJOU19WT0lEUkVUVVJOXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwidHJ1ZVwiLFxuICAgIFwiRkFMU0VcIixcbiAgICBcIlRSVUVcIixcbiAgICBcIm5pbFwiLFxuICAgIFwiWUVTXCIsXG4gICAgXCJOT1wiLFxuICAgIFwiTlVMTFwiXG4gIF07XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImRpc3BhdGNoX29uY2VfdFwiLFxuICAgIFwiZGlzcGF0Y2hfcXVldWVfdFwiLFxuICAgIFwiZGlzcGF0Y2hfc3luY1wiLFxuICAgIFwiZGlzcGF0Y2hfYXN5bmNcIixcbiAgICBcImRpc3BhdGNoX29uY2VcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IFtcbiAgICAgIFwidGhpc1wiLFxuICAgICAgXCJzdXBlclwiXG4gICAgXSxcbiAgICAkcGF0dGVybjogSURFTlRJRklFUl9SRSxcbiAgICBrZXl3b3JkOiBLV1MsXG4gICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICB0eXBlOiBUWVBFU1xuICB9O1xuICBjb25zdCBDTEFTU19LRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogSURFTlRJRklFUl9SRSxcbiAgICBrZXl3b3JkOiBbXG4gICAgICBcIkBpbnRlcmZhY2VcIixcbiAgICAgIFwiQGNsYXNzXCIsXG4gICAgICBcIkBwcm90b2NvbFwiLFxuICAgICAgXCJAaW1wbGVtZW50YXRpb25cIlxuICAgIF1cbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT2JqZWN0aXZlLUMnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdtbScsXG4gICAgICAnb2JqYycsXG4gICAgICAnb2JqLWMnLFxuICAgICAgJ29iai1jKysnLFxuICAgICAgJ29iamVjdGl2ZS1jKysnXG4gICAgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgQVBJX0NMQVNTLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdAXCInLFxuICAgICAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC8jXFxzKlthLXpdK1xcYi8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBrZXl3b3JkczogeyBrZXl3b3JkOlxuICAgICAgICAgICAgJ2lmIGVsc2UgZWxpZiBlbmRpZiBkZWZpbmUgdW5kZWYgd2FybmluZyBlcnJvciBsaW5lICdcbiAgICAgICAgICAgICsgJ3ByYWdtYSBpZmRlZiBpZm5kZWYgaW5jbHVkZScgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcXFxcXG4vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfSxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBjbGFzc05hbWU6ICdzdHJpbmcnIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgICAgICBiZWdpbjogLzwuKj8+LyxcbiAgICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxuJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgICAgICBiZWdpbjogJygnICsgQ0xBU1NfS0VZV09SRFMua2V5d29yZC5qb2luKCd8JykgKyAnKVxcXFxiJyxcbiAgICAgICAgZW5kOiAvKFxce3wkKS8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiBDTEFTU19LRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcLicgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvYmplY3RpdmVjO1xuIiwgIi8qXG5MYW5ndWFnZTogT0NhbWxcbkF1dGhvcjogTWVoZGkgRG9nZ3V5IDxtZWhkaUBkb2dndXkub3JnPlxuQ29udHJpYnV0b3JzOiBOaWNvbGFzIEJyYXVkLVNhbnRvbmkgPG5pY29sYXMuYnJhdWQtc2FudG9uaUBlbnMtY2FjaGFuLmZyPiwgTWlja2FlbCBEZWxhaGF5ZSA8bWlja2FlbC5kZWxhaGF5ZUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogT0NhbWwgbGFuZ3VhZ2UgZGVmaW5pdGlvbi5cbldlYnNpdGU6IGh0dHBzOi8vb2NhbWwub3JnXG5DYXRlZ29yeTogZnVuY3Rpb25hbFxuKi9cblxuZnVuY3Rpb24gb2NhbWwoaGxqcykge1xuICAvKiBtaXNzaW5nIHN1cHBvcnQgZm9yIGhlcmVkb2MtbGlrZSBzdHJpbmcgKE9DYW1sIDQuMC4yKykgKi9cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT0NhbWwnLFxuICAgIGFsaWFzZXM6IFsgJ21sJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1thLXpfXVxcXFx3KiE/JyxcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgICdhbmQgYXMgYXNzZXJ0IGFzciBiZWdpbiBjbGFzcyBjb25zdHJhaW50IGRvIGRvbmUgZG93bnRvIGVsc2UgZW5kICdcbiAgICAgICAgKyAnZXhjZXB0aW9uIGV4dGVybmFsIGZvciBmdW4gZnVuY3Rpb24gZnVuY3RvciBpZiBpbiBpbmNsdWRlICdcbiAgICAgICAgKyAnaW5oZXJpdCEgaW5oZXJpdCBpbml0aWFsaXplciBsYW5kIGxhenkgbGV0IGxvciBsc2wgbHNyIGx4b3IgbWF0Y2ggbWV0aG9kIXwxMCBtZXRob2QgJ1xuICAgICAgICArICdtb2QgbW9kdWxlIG11dGFibGUgbmV3IG9iamVjdCBvZiBvcGVuISBvcGVuIG9yIHByaXZhdGUgcmVjIHNpZyBzdHJ1Y3QgJ1xuICAgICAgICArICd0aGVuIHRvIHRyeSB0eXBlIHZhbCEgdmFsIHZpcnR1YWwgd2hlbiB3aGlsZSB3aXRoICdcbiAgICAgICAgLyogY2FtbHA0ICovXG4gICAgICAgICsgJ3BhcnNlciB2YWx1ZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLyogYnVpbHQtaW4gdHlwZXMgKi9cbiAgICAgICAgJ2FycmF5IGJvb2wgYnl0ZXMgY2hhciBleG58NSBmbG9hdCBpbnQgaW50MzIgaW50NjQgbGlzdCBsYXp5X3R8NSBuYXRpdmVpbnR8NSBzdHJpbmcgdW5pdCAnXG4gICAgICAgIC8qIChzb21lKSB0eXBlcyBpbiBQZXJ2YXNpdmVzICovXG4gICAgICAgICsgJ2luX2NoYW5uZWwgb3V0X2NoYW5uZWwgcmVmJyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICd0cnVlIGZhbHNlJ1xuICAgIH0sXG4gICAgaWxsZWdhbDogL1xcL1xcL3w+Pi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbGl0ZXJhbCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXFsoXFxcXHxcXFxcfCk/XFxcXF18XFxcXChcXFxcKScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJ1xcXFwoXFxcXConLFxuICAgICAgICAnXFxcXCpcXFxcKScsXG4gICAgICAgIHsgY29udGFpbnM6IFsgJ3NlbGYnIF0gfVxuICAgICAgKSxcbiAgICAgIHsgLyogdHlwZSB2YXJpYWJsZSAqL1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogJ1xcJ1tBLVphLXpfXSg/IVxcJylbXFxcXHdcXCddKidcbiAgICAgICAgLyogdGhlIGdyYW1tYXIgaXMgYW1iaWd1b3VzIG9uIGhvdyAnYSdiIHNob3VsZCBiZSBpbnRlcnByZXRlZCBidXQgbm90IHRoZSBjb21waWxlciAqL1xuICAgICAgfSxcbiAgICAgIHsgLyogcG9seW1vcnBoaWMgdmFyaWFudCAqL1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdgW0EtWl1bXFxcXHdcXCddKidcbiAgICAgIH0sXG4gICAgICB7IC8qIG1vZHVsZSBvciBjb25zdHJ1Y3RvciAqL1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYltBLVpdW1xcXFx3XFwnXSonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8qIGRvbid0IGNvbG9yIGlkZW50aWZpZXJzLCBidXQgc2FmZWx5IGNhdGNoIGFsbCBpZGVudGlmaWVycyB3aXRoICcgKi9cbiAgICAgICAgYmVnaW46ICdbYS16X11cXFxcdypcXCdbXFxcXHdcXCddKicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLkFQT1NfU1RSSU5HX01PREUsIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOlxuICAgICAgICAgICdcXFxcYigwW3hYXVthLWZBLUYwLTlfXStbTGxuXT98J1xuICAgICAgICAgICsgJzBbb09dWzAtN19dK1tMbG5dP3wnXG4gICAgICAgICAgKyAnMFtiQl1bMDFfXStbTGxuXT98J1xuICAgICAgICAgICsgJ1swLTldWzAtOV9dKihbTGxuXXwoXFxcXC5bMC05X10qKT8oW2VFXVstK10/WzAtOV9dKyk/KT8pJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogLy0+LyAvLyByZWxldmFuY2UgYm9vc3RlclxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBvY2FtbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE9wZW5TQ0FEXG5BdXRob3I6IERhbiBQYW56YXJlbGxhIDxhbHNvZWxwQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBPcGVuU0NBRCBpcyBhIGxhbmd1YWdlIGZvciB0aGUgM0QgQ0FEIG1vZGVsaW5nIHNvZnR3YXJlIG9mIHRoZSBzYW1lIG5hbWUuXG5XZWJzaXRlOiBodHRwczovL3d3dy5vcGVuc2NhZC5vcmdcbkNhdGVnb3J5OiBzY2llbnRpZmljXG4qL1xuXG5mdW5jdGlvbiBvcGVuc2NhZChobGpzKSB7XG4gIGNvbnN0IFNQRUNJQUxfVkFSUyA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICBiZWdpbjogJ1xcXFwkKGZbYXNuXXx0fHZwW3J0ZF18Y2hpbGRyZW4pJ1xuICB9O1xuICBjb25zdCBMSVRFUkFMUyA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogJ2ZhbHNlfHRydWV8UEl8dW5kZWYnXG4gIH07XG4gIGNvbnN0IE5VTUJFUlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICBiZWdpbjogJ1xcXFxiXFxcXGQrKFxcXFwuXFxcXGQrKT8oZS0/XFxcXGQrKT8nLCAvLyBhZGRzIDFlNSwgMWUtMTBcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgU1RSSU5HID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgaWxsZWdhbDogbnVsbCB9KTtcbiAgY29uc3QgUFJFUFJPID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6ICdpbmNsdWRlIHVzZScgfSxcbiAgICBiZWdpbjogJ2luY2x1ZGV8dXNlIDwnLFxuICAgIGVuZDogJz4nXG4gIH07XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgIGVuZDogJ1xcXFwpJyxcbiAgICBjb250YWluczogW1xuICAgICAgJ3NlbGYnLFxuICAgICAgTlVNQkVSUyxcbiAgICAgIFNUUklORyxcbiAgICAgIFNQRUNJQUxfVkFSUyxcbiAgICAgIExJVEVSQUxTXG4gICAgXVxuICB9O1xuICBjb25zdCBNT0RJRklFUlMgPSB7XG4gICAgYmVnaW46ICdbKiEjJV0nLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBGVU5DVElPTlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luS2V5d29yZHM6ICdtb2R1bGUgZnVuY3Rpb24nLFxuICAgIGVuZDogLz18XFx7LyxcbiAgICBjb250YWluczogW1xuICAgICAgUEFSQU1TLFxuICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT3BlblNDQUQnLFxuICAgIGFsaWFzZXM6IFsgJ3NjYWQnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6ICdmdW5jdGlvbiBtb2R1bGUgaW5jbHVkZSB1c2UgZm9yIGludGVyc2VjdGlvbl9mb3IgaWYgZWxzZSBcXFxcJScsXG4gICAgICBsaXRlcmFsOiAnZmFsc2UgdHJ1ZSBQSSB1bmRlZicsXG4gICAgICBidWlsdF9pbjogJ2NpcmNsZSBzcXVhcmUgcG9seWdvbiB0ZXh0IHNwaGVyZSBjdWJlIGN5bGluZGVyIHBvbHloZWRyb24gdHJhbnNsYXRlIHJvdGF0ZSBzY2FsZSByZXNpemUgbWlycm9yIG11bHRtYXRyaXggY29sb3Igb2Zmc2V0IGh1bGwgbWlua293c2tpIHVuaW9uIGRpZmZlcmVuY2UgaW50ZXJzZWN0aW9uIGFicyBzaWduIHNpbiBjb3MgdGFuIGFjb3MgYXNpbiBhdGFuIGF0YW4yIGZsb29yIHJvdW5kIGNlaWwgbG4gbG9nIHBvdyBzcXJ0IGV4cCByYW5kcyBtaW4gbWF4IGNvbmNhdCBsb29rdXAgc3RyIGNociBzZWFyY2ggdmVyc2lvbiB2ZXJzaW9uX251bSBub3JtIGNyb3NzIHBhcmVudF9tb2R1bGUgZWNobyBpbXBvcnQgaW1wb3J0X2R4ZiBkeGZfbGluZWFyX2V4dHJ1ZGUgbGluZWFyX2V4dHJ1ZGUgcm90YXRlX2V4dHJ1ZGUgc3VyZmFjZSBwcm9qZWN0aW9uIHJlbmRlciBjaGlsZHJlbiBkeGZfY3Jvc3MgZHhmX2RpbSBsZXQgYXNzaWduJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBOVU1CRVJTLFxuICAgICAgUFJFUFJPLFxuICAgICAgU1RSSU5HLFxuICAgICAgU1BFQ0lBTF9WQVJTLFxuICAgICAgTU9ESUZJRVJTLFxuICAgICAgRlVOQ1RJT05TXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG9wZW5zY2FkO1xuIiwgIi8qXG5MYW5ndWFnZTogT3h5Z2VuZVxuQXV0aG9yOiBDYXJsbyBLb2sgPGNrQHJlbW9iamVjdHMuY29tPlxuRGVzY3JpcHRpb246IE94eWdlbmUgaXMgYnVpbHQgb24gdGhlIGZvdW5kYXRpb24gb2YgT2JqZWN0IFBhc2NhbCwgcmV2YW1wZWQgYW5kIGV4dGVuZGVkIHRvIGJlIGEgbW9kZXJuIGxhbmd1YWdlIGZvciB0aGUgdHdlbnR5LWZpcnN0IGNlbnR1cnkuXG5XZWJzaXRlOiBodHRwczovL3d3dy5lbGVtZW50c2NvbXBpbGVyLmNvbS9lbGVtZW50cy9kZWZhdWx0LmFzcHhcbkNhdGVnb3J5OiBidWlsZC1zeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIG94eWdlbmUoaGxqcykge1xuICBjb25zdCBPWFlHRU5FX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvXFwuP1xcdysvLFxuICAgIGtleXdvcmQ6XG4gICAgICAnYWJzdHJhY3QgYWRkIGFuZCBhcnJheSBhcyBhc2MgYXNwZWN0IGFzc2VtYmx5IGFzeW5jIGJlZ2luIGJyZWFrIGJsb2NrIGJ5IGNhc2UgY2xhc3MgY29uY2F0IGNvbnN0IGNvcHkgY29uc3RydWN0b3IgY29udGludWUgJ1xuICAgICAgKyAnY3JlYXRlIGRlZmF1bHQgZGVsZWdhdGUgZGVzYyBkaXN0aW5jdCBkaXYgZG8gZG93bnRvIGR5bmFtaWMgZWFjaCBlbHNlIGVtcHR5IGVuZCBlbnN1cmUgZW51bSBlcXVhbHMgZXZlbnQgZXhjZXB0IGV4aXQgZXh0ZW5zaW9uIGV4dGVybmFsIGZhbHNlICdcbiAgICAgICsgJ2ZpbmFsIGZpbmFsaXplIGZpbmFsaXplciBmaW5hbGx5IGZsYWdzIGZvciBmb3J3YXJkIGZyb20gZnVuY3Rpb24gZnV0dXJlIGdsb2JhbCBncm91cCBoYXMgaWYgaW1wbGVtZW50YXRpb24gaW1wbGVtZW50cyBpbXBsaWVzIGluIGluZGV4IGluaGVyaXRlZCAnXG4gICAgICArICdpbmxpbmUgaW50ZXJmYWNlIGludG8gaW52YXJpYW50cyBpcyBpdGVyYXRvciBqb2luIGxvY2tlZCBsb2NraW5nIGxvb3AgbWF0Y2hpbmcgbWV0aG9kIG1vZCBtb2R1bGUgbmFtZXNwYWNlIG5lc3RlZCBuZXcgbmlsIG5vdCBub3RpZnkgbnVsbGFibGUgb2YgJ1xuICAgICAgKyAnb2xkIG9uIG9wZXJhdG9yIG9yIG9yZGVyIG91dCBvdmVycmlkZSBwYXJhbGxlbCBwYXJhbXMgcGFydGlhbCBwaW5uZWQgcHJpdmF0ZSBwcm9jZWR1cmUgcHJvcGVydHkgcHJvdGVjdGVkIHB1YmxpYyBxdWVyeWFibGUgcmFpc2UgcmVhZCByZWFkb25seSAnXG4gICAgICArICdyZWNvcmQgcmVpbnRyb2R1Y2UgcmVtb3ZlIHJlcGVhdCByZXF1aXJlIHJlc3VsdCByZXZlcnNlIHNlYWxlZCBzZWxlY3Qgc2VsZiBzZXF1ZW5jZSBzZXQgc2hsIHNociBza2lwIHN0YXRpYyBzdGVwIHNvZnQgdGFrZSB0aGVuIHRvIHRydWUgdHJ5IHR1cGxlICdcbiAgICAgICsgJ3R5cGUgdW5pb24gdW5pdCB1bnNhZmUgdW50aWwgdXNlcyB1c2luZyB2YXIgdmlydHVhbCByYWlzZXMgdm9sYXRpbGUgd2hlcmUgd2hpbGUgd2l0aCB3cml0ZSB4b3IgeWllbGQgYXdhaXQgbWFwcGVkIGRlcHJlY2F0ZWQgc3RkY2FsbCBjZGVjbCBwYXNjYWwgJ1xuICAgICAgKyAncmVnaXN0ZXIgc2FmZWNhbGwgb3ZlcmxvYWQgbGlicmFyeSBwbGF0Zm9ybSByZWZlcmVuY2UgcGFja2VkIHN0cmljdCBwdWJsaXNoZWQgYXV0b3JlbGVhc2Vwb29sIHNlbGVjdG9yIHN0cm9uZyB3ZWFrIHVucmV0YWluZWQnXG4gIH07XG4gIGNvbnN0IENVUkxZX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcey8sXG4gICAgL1xcfS8sXG4gICAgeyByZWxldmFuY2U6IDAgfVxuICApO1xuICBjb25zdCBQQVJFTl9DT01NRU5UID0gaGxqcy5DT01NRU5UKFxuICAgICdcXFxcKFxcXFwqJyxcbiAgICAnXFxcXCpcXFxcKScsXG4gICAgeyByZWxldmFuY2U6IDEwIH1cbiAgKTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXCcnLFxuICAgIGVuZDogJ1xcJycsXG4gICAgY29udGFpbnM6IFsgeyBiZWdpbjogJ1xcJ1xcJycgfSBdXG4gIH07XG4gIGNvbnN0IENIQVJfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICcoI1xcXFxkKykrJ1xuICB9O1xuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24gY29uc3RydWN0b3IgZGVzdHJ1Y3RvciBwcm9jZWR1cmUgbWV0aG9kJyxcbiAgICBlbmQ6ICdbOjtdJyxcbiAgICBrZXl3b3JkczogJ2Z1bmN0aW9uIGNvbnN0cnVjdG9yfDEwIGRlc3RydWN0b3J8MTAgcHJvY2VkdXJlfDEwIG1ldGhvZHwxMCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgc2NvcGU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAga2V5d29yZHM6IE9YWUdFTkVfS0VZV09SRFMsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIENIQVJfU1RSSU5HXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBDVVJMWV9DT01NRU5ULFxuICAgICAgUEFSRU5fQ09NTUVOVFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBTRU1JQ09MT04gPSB7XG4gICAgc2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICBtYXRjaDogLzsvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ094eWdlbmUnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IE9YWUdFTkVfS0VZV09SRFMsXG4gICAgaWxsZWdhbDogJyhcInxcXFxcJFtHLVpnLXpdfFxcXFwvXFxcXCp8PC98PT58LT4pJyxcbiAgICBjb250YWluczogW1xuICAgICAgQ1VSTFlfQ09NTUVOVCxcbiAgICAgIFBBUkVOX0NPTU1FTlQsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBTVFJJTkcsXG4gICAgICBDSEFSX1NUUklORyxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBGVU5DVElPTixcbiAgICAgIFNFTUlDT0xPTlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBveHlnZW5lO1xuIiwgIi8qXG5MYW5ndWFnZTogUGFyc2VyM1xuUmVxdWlyZXM6IHhtbC5qc1xuQXV0aG9yOiBPbGVnIFZvbGNoa292IDxvbGVnQHZvbGNoa292Lm5ldD5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBhcnNlci5ydS9lbi9cbkNhdGVnb3J5OiB0ZW1wbGF0ZVxuKi9cblxuZnVuY3Rpb24gcGFyc2VyMyhobGpzKSB7XG4gIGNvbnN0IENVUkxZX1NVQkNPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcey8sXG4gICAgL1xcfS8sXG4gICAgeyBjb250YWluczogWyAnc2VsZicgXSB9XG4gICk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BhcnNlcjMnLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnXiMnLCAnJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvXFxecmVtXFx7LyxcbiAgICAgICAgL1xcfS8sXG4gICAgICAgIHtcbiAgICAgICAgICByZWxldmFuY2U6IDEwLFxuICAgICAgICAgIGNvbnRhaW5zOiBbIENVUkxZX1NVQkNPTU1FTlQgXVxuICAgICAgICB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICdeQCg/OkJBU0V8VVNFfENMQVNTfE9QVElPTlMpJCcsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgYmVnaW46ICdAW1xcXFx3XFxcXC1dK1xcXFxbW1xcXFx3XjtcXFxcLV0qXFxcXF0oPzpcXFxcW1tcXFxcd147XFxcXC1dKlxcXFxdKT8oPzouKikkJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogL1xcJFxcez9bXFx3XFwtLjpdK1xcfT8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC9cXF5bXFx3XFwtLjpdKy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnXFxcXF4jWzAtOWEtZkEtRl0rJ1xuICAgICAgfSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXJzZXIzO1xuIiwgIi8qXG5MYW5ndWFnZTogUGFja2V0IEZpbHRlciBjb25maWdcbkRlc2NyaXB0aW9uOiBwZi5jb25mIFx1MjAxNCBwYWNrZXQgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZmlsZSAoT3BlbkJTRClcbkF1dGhvcjogUGV0ZXIgUGl3b3dhcnNraSA8b2xkbGFwdG9wNjU0QGFvbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbWFuLm9wZW5ic2Qub3JnL3BmLmNvbmZcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbmZ1bmN0aW9uIHBmKGhsanMpIHtcbiAgY29uc3QgTUFDUk8gPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFwkW1xcd1xcZCNAXVtcXHdcXGRfXSovLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBUQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46IC88KD8hXFwvKS8sXG4gICAgZW5kOiAvPi9cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQYWNrZXQgRmlsdGVyIGNvbmZpZycsXG4gICAgYWxpYXNlczogWyAncGYuY29uZicgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bYS16MC05Xzw+LV0rLyxcbiAgICAgIGJ1aWx0X2luOiAvKiBibG9jayBtYXRjaCBwYXNzIGFyZSBcImFjdGlvbnNcIiBpbiBwZi5jb25mKDUpLCB0aGUgcmVzdCBhcmVcbiAgICAgICAgICAgICAgICAgKiBsZXhpY2FsbHkgc2ltaWxhciB0b3AtbGV2ZWwgY29tbWFuZHMuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICdibG9jayBtYXRjaCBwYXNzIGxvYWQgYW5jaG9yfDUgYW50aXNwb29mfDEwIHNldCB0YWJsZScsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnaW4gb3V0IGxvZyBxdWljayBvbiByZG9tYWluIGluZXQgaW5ldDYgcHJvdG8gZnJvbSBwb3J0IG9zIHRvIHJvdXRlICdcbiAgICAgICAgKyAnYWxsb3ctb3B0cyBkaXZlcnQtcGFja2V0IGRpdmVydC1yZXBseSBkaXZlcnQtdG8gZmxhZ3MgZ3JvdXAgaWNtcC10eXBlICdcbiAgICAgICAgKyAnaWNtcDYtdHlwZSBsYWJlbCBvbmNlIHByb2JhYmlsaXR5IHJlY2lldmVkLW9uIHJ0YWJsZSBwcmlvIHF1ZXVlICdcbiAgICAgICAgKyAndG9zIHRhZyB0YWdnZWQgdXNlciBrZWVwIGZyYWdtZW50IGZvciBvcyBkcm9wICdcbiAgICAgICAgKyAnYWYtdG98MTAgYmluYXQtdG98MTAgbmF0LXRvfDEwIHJkci10b3wxMCBiaXRtYXNrIGxlYXN0LXN0YXRzIHJhbmRvbSByb3VuZC1yb2JpbiAnXG4gICAgICAgICsgJ3NvdXJjZS1oYXNoIHN0YXRpYy1wb3J0ICdcbiAgICAgICAgKyAnZHVwLXRvIHJlcGx5LXRvIHJvdXRlLXRvICdcbiAgICAgICAgKyAncGFyZW50IGJhbmR3aWR0aCBkZWZhdWx0IG1pbiBtYXggcWxpbWl0ICdcbiAgICAgICAgKyAnYmxvY2stcG9saWN5IGRlYnVnIGZpbmdlcnByaW50cyBob3N0aWQgbGltaXQgbG9naW50ZXJmYWNlIG9wdGltaXphdGlvbiAnXG4gICAgICAgICsgJ3JlYXNzZW1ibGUgcnVsZXNldC1vcHRpbWl6YXRpb24gYmFzaWMgbm9uZSBwcm9maWxlIHNraXAgc3RhdGUtZGVmYXVsdHMgJ1xuICAgICAgICArICdzdGF0ZS1wb2xpY3kgdGltZW91dCAnXG4gICAgICAgICsgJ2NvbnN0IGNvdW50ZXJzIHBlcnNpc3QgJ1xuICAgICAgICArICdubyBtb2R1bGF0ZSBzeW5wcm94eSBzdGF0ZXw1IGZsb2F0aW5nIGlmLWJvdW5kIG5vLXN5bmMgcGZsb3d8MTAgc2xvcHB5ICdcbiAgICAgICAgKyAnc291cmNlLXRyYWNrIGdsb2JhbCBydWxlIG1heC1zcmMtbm9kZXMgbWF4LXNyYy1zdGF0ZXMgbWF4LXNyYy1jb25uICdcbiAgICAgICAgKyAnbWF4LXNyYy1jb25uLXJhdGUgb3ZlcmxvYWQgZmx1c2ggJ1xuICAgICAgICArICdzY3J1Ynw1IG1heC1tc3MgbWluLXR0bCBuby1kZnwxMCByYW5kb20taWQnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ2FsbCBhbnkgbm8tcm91dGUgc2VsZiB1cnBmLWZhaWxlZCBlZ3Jlc3N8NSB1bmtub3duJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIE1BQ1JPLFxuICAgICAgVEFCTEVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGY7XG4iLCAiLypcbkxhbmd1YWdlOiBQb3N0Z3JlU1FMIGFuZCBQTC9wZ1NRTFxuQXV0aG9yOiBFZ29yIFJvZ292IChlLnJvZ292QHBvc3RncmVzcHJvLnJ1KVxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zcWwuaHRtbFxuRGVzY3JpcHRpb246XG4gICAgVGhpcyBsYW5ndWFnZSBpbmNvcnBvcmF0ZXMgYm90aCBQb3N0Z3JlU1FMIFNRTCBkaWFsZWN0IGFuZCBQTC9wZ1NRTCBsYW5ndWFnZS5cbiAgICBJdCBpcyBiYXNlZCBvbiBQb3N0Z3JlU1FMIHZlcnNpb24gMTEuIFNvbWUgbm90ZXM6XG4gICAgLSBUZXh0IGluIGRvdWJsZS1kb2xsYXItc3RyaW5ncyBpcyBfYWx3YXlzXyBpbnRlcnByZXRlZCBhcyBzb21lIHByb2dyYW1taW5nIGNvZGUuIFRleHRcbiAgICAgIGluIG9yZGluYXJ5IHF1b3RlcyBpcyBfbmV2ZXJfIGludGVycHJldGVkIHRoYXQgd2F5IGFuZCBoaWdobGlnaHRlZCBqdXN0IGFzIGEgc3RyaW5nLlxuICAgIC0gVGhlcmUgYXJlIHF1aXRlIGEgYml0IFwic3BlY2lhbCBjYXNlc1wiLiBUaGF0J3MgYmVjYXVzZSBtYW55IGtleXdvcmRzIGFyZSBub3Qgc3RyaWN0bHlcbiAgICAgIHRoZXkgYXJlIGtleXdvcmRzIGluIHNvbWUgY29udGV4dHMgYW5kIG9yZGluYXJ5IGlkZW50aWZpZXJzIGluIG90aGVycy4gT25seSBzb21lXG4gICAgICBvZiBzdWNoIGNhc2VzIGFyZSBoYW5kbGVkOyB5b3Ugc3RpbGwgY2FuIGdldCBzb21lIG9mIHlvdXIgaWRlbnRpZmllcnMgaGlnaGxpZ2h0ZWRcbiAgICAgIHdyb25nIHdheS5cbiAgICAtIEZ1bmN0aW9uIG5hbWVzIGRlbGliZXJhdGVseSBhcmUgbm90IGhpZ2hsaWdodGVkLiBUaGVyZSBpcyBubyB3YXkgdG8gdGVsbCBmdW5jdGlvblxuICAgICAgY2FsbCBmcm9tIG90aGVyIGNvbnN0cnVjdHMsIGhlbmNlIHdlIGNhbid0IGhpZ2hsaWdodCBfYWxsXyBmdW5jdGlvbiBuYW1lcy4gQW5kXG4gICAgICBzb21lIG5hbWVzIGhpZ2hsaWdodGVkIHdoaWxlIG90aGVycyBub3QgbG9va3MgdWdseS5cbkNhdGVnb3J5OiBkYXRhYmFzZVxuKi9cblxuZnVuY3Rpb24gcGdzcWwoaGxqcykge1xuICBjb25zdCBDT01NRU5UX01PREUgPSBobGpzLkNPTU1FTlQoJy0tJywgJyQnKTtcbiAgY29uc3QgVU5RVU9URURfSURFTlQgPSAnW2EtekEtWl9dW2EtekEtWl8wLTkkXSonO1xuICBjb25zdCBET0xMQVJfU1RSSU5HID0gJ1xcXFwkKFthLXpBLVpfXT98W2EtekEtWl9dW2EtekEtWl8wLTldKilcXFxcJCc7XG4gIGNvbnN0IExBQkVMID0gJzw8XFxcXHMqJyArIFVOUVVPVEVEX0lERU5UICsgJ1xcXFxzKj4+JztcblxuICBjb25zdCBTUUxfS1cgPVxuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL3NxbC1rZXl3b3Jkcy1hcHBlbmRpeC5odG1sXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvc3FsLWNvbW1hbmRzLmh0bWxcbiAgICAvLyBTUUwgY29tbWFuZHMgKHN0YXJ0aW5nIHdvcmRzKVxuICAgICdBQk9SVCBBTFRFUiBBTkFMWVpFIEJFR0lOIENBTEwgQ0hFQ0tQT0lOVHwxMCBDTE9TRSBDTFVTVEVSIENPTU1FTlQgQ09NTUlUIENPUFkgQ1JFQVRFIERFQUxMT0NBVEUgREVDTEFSRSAnXG4gICAgKyAnREVMRVRFIERJU0NBUkQgRE8gRFJPUCBFTkQgRVhFQ1VURSBFWFBMQUlOIEZFVENIIEdSQU5UIElNUE9SVCBJTlNFUlQgTElTVEVOIExPQUQgTE9DSyBNT1ZFIE5PVElGWSAnXG4gICAgKyAnUFJFUEFSRSBSRUFTU0lHTnwxMCBSRUZSRVNIIFJFSU5ERVggUkVMRUFTRSBSRVNFVCBSRVZPS0UgUk9MTEJBQ0sgU0FWRVBPSU5UIFNFQ1VSSVRZIFNFTEVDVCBTRVQgU0hPVyAnXG4gICAgKyAnU1RBUlQgVFJVTkNBVEUgVU5MSVNURU58MTAgVVBEQVRFIFZBQ1VVTXwxMCBWQUxVRVMgJ1xuICAgIC8vIFNRTCBjb21tYW5kcyAob3RoZXJzKVxuICAgICsgJ0FHR1JFR0FURSBDT0xMQVRJT04gQ09OVkVSU0lPTnwxMCBEQVRBQkFTRSBERUZBVUxUIFBSSVZJTEVHRVMgRE9NQUlOIFRSSUdHRVIgRVhURU5TSU9OIEZPUkVJR04gJ1xuICAgICsgJ1dSQVBQRVJ8MTAgVEFCTEUgRlVOQ1RJT04gR1JPVVAgTEFOR1VBR0UgTEFSR0UgT0JKRUNUIE1BVEVSSUFMSVpFRCBWSUVXIE9QRVJBVE9SIENMQVNTICdcbiAgICArICdGQU1JTFkgUE9MSUNZIFBVQkxJQ0FUSU9OfDEwIFJPTEUgUlVMRSBTQ0hFTUEgU0VRVUVOQ0UgU0VSVkVSIFNUQVRJU1RJQ1MgU1VCU0NSSVBUSU9OIFNZU1RFTSAnXG4gICAgKyAnVEFCTEVTUEFDRSBDT05GSUdVUkFUSU9OIERJQ1RJT05BUlkgUEFSU0VSIFRFTVBMQVRFIFRZUEUgVVNFUiBNQVBQSU5HIFBSRVBBUkVEIEFDQ0VTUyAnXG4gICAgKyAnTUVUSE9EIENBU1QgQVMgVFJBTlNGT1JNIFRSQU5TQUNUSU9OIE9XTkVEIFRPIElOVE8gU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdcbiAgICArICdJTkRFWCBQUk9DRURVUkUgQVNTRVJUSU9OICdcbiAgICAvLyBhZGRpdGlvbmFsIHJlc2VydmVkIGtleSB3b3Jkc1xuICAgICsgJ0FMTCBBTkFMWVNFIEFORCBBTlkgQVJSQVkgQVNDIEFTWU1NRVRSSUN8MTAgQk9USCBDQVNFIENIRUNLICdcbiAgICArICdDT0xMQVRFIENPTFVNTiBDT05DVVJSRU5UTFl8MTAgQ09OU1RSQUlOVCBDUk9TUyAnXG4gICAgKyAnREVGRVJSQUJMRSBSQU5HRSAnXG4gICAgKyAnREVTQyBESVNUSU5DVCBFTFNFIEVYQ0VQVCBGT1IgRlJFRVpFfDEwIEZST00gRlVMTCBIQVZJTkcgJ1xuICAgICsgJ0lMSUtFIElOIElOSVRJQUxMWSBJTk5FUiBJTlRFUlNFQ1QgSVMgSVNOVUxMIEpPSU4gTEFURVJBTCBMRUFESU5HIExJS0UgTElNSVQgJ1xuICAgICsgJ05BVFVSQUwgTk9UIE5PVE5VTEwgTlVMTCBPRkZTRVQgT04gT05MWSBPUiBPUkRFUiBPVVRFUiBPVkVSTEFQUyBQTEFDSU5HIFBSSU1BUlkgJ1xuICAgICsgJ1JFRkVSRU5DRVMgUkVUVVJOSU5HIFNJTUlMQVIgU09NRSBTWU1NRVRSSUMgVEFCTEVTQU1QTEUgVEhFTiAnXG4gICAgKyAnVFJBSUxJTkcgVU5JT04gVU5JUVVFIFVTSU5HIFZBUklBRElDfDEwIFZFUkJPU0UgV0hFTiBXSEVSRSBXSU5ET1cgV0lUSCAnXG4gICAgLy8gc29tZSBvZiBub24tcmVzZXJ2ZWQgKHdoaWNoIGFyZSB1c2VkIGluIGNsYXVzZXMgb3IgYXMgUEwvcGdTUUwga2V5d29yZClcbiAgICArICdCWSBSRVRVUk5TIElOT1VUIE9VVCBTRVRPRnwxMCBJRiBTVFJJQ1QgQ1VSUkVOVCBDT05USU5VRSBPV05FUiBMT0NBVElPTiBPVkVSIFBBUlRJVElPTiBXSVRISU4gJ1xuICAgICsgJ0JFVFdFRU4gRVNDQVBFIEVYVEVSTkFMIElOVk9LRVIgREVGSU5FUiBXT1JLIFJFTkFNRSBWRVJTSU9OIENPTk5FQ1RJT04gQ09OTkVDVCAnXG4gICAgKyAnVEFCTEVTIFRFTVAgVEVNUE9SQVJZIEZVTkNUSU9OUyBTRVFVRU5DRVMgVFlQRVMgU0NIRU1BUyBPUFRJT04gQ0FTQ0FERSBSRVNUUklDVCBBREQgQURNSU4gJ1xuICAgICsgJ0VYSVNUUyBWQUxJRCBWQUxJREFURSBFTkFCTEUgRElTQUJMRSBSRVBMSUNBfDEwIEFMV0FZUyBQQVNTSU5HIENPTFVNTlMgUEFUSCAnXG4gICAgKyAnUkVGIFZBTFVFIE9WRVJSSURJTkcgSU1NVVRBQkxFIFNUQUJMRSBWT0xBVElMRSBCRUZPUkUgQUZURVIgRUFDSCBST1cgUFJPQ0VEVVJBTCAnXG4gICAgKyAnUk9VVElORSBOTyBIQU5ETEVSIFZBTElEQVRPUiBPUFRJT05TIFNUT1JBR0UgT0lEU3wxMCBXSVRIT1VUIElOSEVSSVQgREVQRU5EUyBDQUxMRUQgJ1xuICAgICsgJ0lOUFVUIExFQUtQUk9PRnwxMCBDT1NUIFJPV1MgTk9XQUlUIFNFQVJDSCBVTlRJTCBFTkNSWVBURUR8MTAgUEFTU1dPUkQgQ09ORkxJQ1R8MTAgJ1xuICAgICsgJ0lOU1RFQUQgSU5IRVJJVFMgQ0hBUkFDVEVSSVNUSUNTIFdSSVRFIENVUlNPUiBBTFNPIFNUQVRFTUVOVCBTSEFSRSBFWENMVVNJVkUgSU5MSU5FICdcbiAgICArICdJU09MQVRJT04gUkVQRUFUQUJMRSBSRUFEIENPTU1JVFRFRCBTRVJJQUxJWkFCTEUgVU5DT01NSVRURUQgTE9DQUwgR0xPQkFMIFNRTCBQUk9DRURVUkVTICdcbiAgICArICdSRUNVUlNJVkUgU05BUFNIT1QgUk9MTFVQIENVQkUgVFJVU1RFRHwxMCBJTkNMVURFIEZPTExPV0lORyBQUkVDRURJTkcgVU5CT1VOREVEIFJBTkdFIEdST1VQUyAnXG4gICAgKyAnVU5FTkNSWVBURUR8MTAgU1lTSUQgRk9STUFUIERFTElNSVRFUiBIRUFERVIgUVVPVEUgRU5DT0RJTkcgRklMVEVSIE9GRiAnXG4gICAgLy8gc29tZSBwYXJhbWV0ZXJzIG9mIFZBQ1VVTS9BTkFMWVpFL0VYUExBSU5cbiAgICArICdGT1JDRV9RVU9URSBGT1JDRV9OT1RfTlVMTCBGT1JDRV9OVUxMIENPU1RTIEJVRkZFUlMgVElNSU5HIFNVTU1BUlkgRElTQUJMRV9QQUdFX1NLSVBQSU5HICdcbiAgICAvL1xuICAgICsgJ1JFU1RBUlQgQ1lDTEUgR0VORVJBVEVEIElERU5USVRZIERFRkVSUkVEIElNTUVESUFURSBMRVZFTCBMT0dHRUQgVU5MT0dHRUQgJ1xuICAgICsgJ09GIE5PVEhJTkcgTk9ORSBFWENMVURFIEFUVFJJQlVURSAnXG4gICAgLy8gZnJvbSBHUkFOVCAobm90IGtleXdvcmRzIGFjdHVhbGx5KVxuICAgICsgJ1VTQUdFIFJPVVRJTkVTICdcbiAgICAvLyBhY3R1YWxseSBsaXRlcmFscywgYnV0IGxvb2sgYmV0dGVyIHRoaXMgd2F5IChkdWUgdG8gSVMgVFJVRSwgSVMgRkFMU0UsIElTTlVMTCBldGMpXG4gICAgKyAnVFJVRSBGQUxTRSBOQU4gSU5GSU5JVFkgJztcblxuICBjb25zdCBST0xFX0FUVFJTID0gLy8gb25seSB0aG9zZSBub3QgaW4ga2V5d3JvZHMgYWxyZWFkeVxuICAgICdTVVBFUlVTRVIgTk9TVVBFUlVTRVIgQ1JFQVRFREIgTk9DUkVBVEVEQiBDUkVBVEVST0xFIE5PQ1JFQVRFUk9MRSBJTkhFUklUIE5PSU5IRVJJVCAnXG4gICAgKyAnTE9HSU4gTk9MT0dJTiBSRVBMSUNBVElPTiBOT1JFUExJQ0FUSU9OIEJZUEFTU1JMUyBOT0JZUEFTU1JMUyAnO1xuXG4gIGNvbnN0IFBMUEdTUUxfS1cgPVxuICAgICdBTElBUyBCRUdJTiBDT05TVEFOVCBERUNMQVJFIEVORCBFWENFUFRJT04gUkVUVVJOIFBFUkZPUk18MTAgUkFJU0UgR0VUIERJQUdOT1NUSUNTICdcbiAgICArICdTVEFDS0VEfDEwIEZPUkVBQ0ggTE9PUCBFTFNJRiBFWElUIFdISUxFIFJFVkVSU0UgU0xJQ0UgREVCVUcgTE9HIElORk8gTk9USUNFIFdBUk5JTkcgQVNTRVJUICdcbiAgICArICdPUEVOICc7XG5cbiAgY29uc3QgVFlQRVMgPVxuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2RhdGF0eXBlLmh0bWxcbiAgICAnQklHSU5UIElOVDggQklHU0VSSUFMIFNFUklBTDggQklUIFZBUllJTkcgVkFSQklUIEJPT0xFQU4gQk9PTCBCT1ggQllURUEgQ0hBUkFDVEVSIENIQVIgVkFSQ0hBUiAnXG4gICAgKyAnQ0lEUiBDSVJDTEUgREFURSBET1VCTEUgUFJFQ0lTSU9OIEZMT0FUOCBGTE9BVCBJTkVUIElOVEVHRVIgSU5UIElOVDQgSU5URVJWQUwgSlNPTiBKU09OQiBMSU5FIExTRUd8MTAgJ1xuICAgICsgJ01BQ0FERFIgTUFDQUREUjggTU9ORVkgTlVNRVJJQyBERUMgREVDSU1BTCBQQVRIIFBPSU5UIFBPTFlHT04gUkVBTCBGTE9BVDQgU01BTExJTlQgSU5UMiAnXG4gICAgKyAnU01BTExTRVJJQUx8MTAgU0VSSUFMMnwxMCBTRVJJQUx8MTAgU0VSSUFMNHwxMCBURVhUIFRJTUUgWk9ORSBUSU1FVFp8MTAgVElNRVNUQU1QIFRJTUVTVEFNUFRafDEwIFRTUVVFUll8MTAgVFNWRUNUT1J8MTAgJ1xuICAgICsgJ1RYSURfU05BUFNIT1R8MTAgVVVJRCBYTUwgTkFUSU9OQUwgTkNIQVIgJ1xuICAgICsgJ0lOVDRSQU5HRXwxMCBJTlQ4UkFOR0V8MTAgTlVNUkFOR0V8MTAgVFNSQU5HRXwxMCBUU1RaUkFOR0V8MTAgREFURVJBTkdFfDEwICdcbiAgICAvLyBwc2V1ZG90eXBlc1xuICAgICsgJ0FOWUVMRU1FTlQgQU5ZQVJSQVkgQU5ZTk9OQVJSQVkgQU5ZRU5VTSBBTllSQU5HRSBDU1RSSU5HIElOVEVSTkFMICdcbiAgICArICdSRUNPUkQgUEdfRERMX0NPTU1BTkQgVk9JRCBVTktOT1dOIE9QQVFVRSBSRUZDVVJTT1IgJ1xuICAgIC8vIHNwZWMuIHR5cGVcbiAgICArICdOQU1FICdcbiAgICAvLyBPSUQtdHlwZXNcbiAgICArICdPSUQgUkVHUFJPQ3wxMCBSRUdQUk9DRURVUkV8MTAgUkVHT1BFUnwxMCBSRUdPUEVSQVRPUnwxMCBSRUdDTEFTU3wxMCBSRUdUWVBFfDEwIFJFR1JPTEV8MTAgJ1xuICAgICsgJ1JFR05BTUVTUEFDRXwxMCBSRUdDT05GSUd8MTAgUkVHRElDVElPTkFSWXwxMCAnOy8vICtcblxuICBjb25zdCBUWVBFU19SRSA9XG4gICAgVFlQRVMudHJpbSgpXG4gICAgICAuc3BsaXQoJyAnKVxuICAgICAgLm1hcChmdW5jdGlvbih2YWwpIHsgcmV0dXJuIHZhbC5zcGxpdCgnfCcpWzBdOyB9KVxuICAgICAgLmpvaW4oJ3wnKTtcblxuICBjb25zdCBTUUxfQkkgPVxuICAgICdDVVJSRU5UX1RJTUUgQ1VSUkVOVF9USU1FU1RBTVAgQ1VSUkVOVF9VU0VSIENVUlJFTlRfQ0FUQUxPR3wxMCBDVVJSRU5UX0RBVEUgTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QICdcbiAgICArICdDVVJSRU5UX1JPTEV8MTAgQ1VSUkVOVF9TQ0hFTUF8MTAgU0VTU0lPTl9VU0VSIFBVQkxJQyAnO1xuXG4gIGNvbnN0IFBMUEdTUUxfQkkgPVxuICAgICdGT1VORCBORVcgT0xEIFRHX05BTUV8MTAgVEdfV0hFTnwxMCBUR19MRVZFTHwxMCBUR19PUHwxMCBUR19SRUxJRHwxMCBUR19SRUxOQU1FfDEwICdcbiAgICArICdUR19UQUJMRV9OQU1FfDEwIFRHX1RBQkxFX1NDSEVNQXwxMCBUR19OQVJHU3wxMCBUR19BUkdWfDEwIFRHX0VWRU5UfDEwIFRHX1RBR3wxMCAnXG4gICAgLy8gZ2V0IGRpYWdub3N0aWNzXG4gICAgKyAnUk9XX0NPVU5UIFJFU1VMVF9PSUR8MTAgUEdfQ09OVEVYVHwxMCBSRVRVUk5FRF9TUUxTVEFURSBDT0xVTU5fTkFNRSBDT05TVFJBSU5UX05BTUUgJ1xuICAgICsgJ1BHX0RBVEFUWVBFX05BTUV8MTAgTUVTU0FHRV9URVhUIFRBQkxFX05BTUUgU0NIRU1BX05BTUUgUEdfRVhDRVBUSU9OX0RFVEFJTHwxMCAnXG4gICAgKyAnUEdfRVhDRVBUSU9OX0hJTlR8MTAgUEdfRVhDRVBUSU9OX0NPTlRFWFR8MTAgJztcblxuICBjb25zdCBQTFBHU1FMX0VYQ0VQVElPTlMgPVxuICAgIC8vIGV4Y2VwdGlvbnMgaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3N0YXRpYy9lcnJjb2Rlcy1hcHBlbmRpeC5odG1sXG4gICAgJ1NRTFNUQVRFIFNRTEVSUk18MTAgJ1xuICAgICsgJ1NVQ0NFU1NGVUxfQ09NUExFVElPTiBXQVJOSU5HIERZTkFNSUNfUkVTVUxUX1NFVFNfUkVUVVJORUQgSU1QTElDSVRfWkVST19CSVRfUEFERElORyAnXG4gICAgKyAnTlVMTF9WQUxVRV9FTElNSU5BVEVEX0lOX1NFVF9GVU5DVElPTiBQUklWSUxFR0VfTk9UX0dSQU5URUQgUFJJVklMRUdFX05PVF9SRVZPS0VEICdcbiAgICArICdTVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OIERFUFJFQ0FURURfRkVBVFVSRSBOT19EQVRBIE5PX0FERElUSU9OQUxfRFlOQU1JQ19SRVNVTFRfU0VUU19SRVRVUk5FRCAnXG4gICAgKyAnU1FMX1NUQVRFTUVOVF9OT1RfWUVUX0NPTVBMRVRFIENPTk5FQ1RJT05fRVhDRVBUSU9OIENPTk5FQ1RJT05fRE9FU19OT1RfRVhJU1QgQ09OTkVDVElPTl9GQUlMVVJFICdcbiAgICArICdTUUxDTElFTlRfVU5BQkxFX1RPX0VTVEFCTElTSF9TUUxDT05ORUNUSU9OIFNRTFNFUlZFUl9SRUpFQ1RFRF9FU1RBQkxJU0hNRU5UX09GX1NRTENPTk5FQ1RJT04gJ1xuICAgICsgJ1RSQU5TQUNUSU9OX1JFU09MVVRJT05fVU5LTk9XTiBQUk9UT0NPTF9WSU9MQVRJT04gVFJJR0dFUkVEX0FDVElPTl9FWENFUFRJT04gRkVBVFVSRV9OT1RfU1VQUE9SVEVEICdcbiAgICArICdJTlZBTElEX1RSQU5TQUNUSU9OX0lOSVRJQVRJT04gTE9DQVRPUl9FWENFUFRJT04gSU5WQUxJRF9MT0NBVE9SX1NQRUNJRklDQVRJT04gSU5WQUxJRF9HUkFOVE9SICdcbiAgICArICdJTlZBTElEX0dSQU5UX09QRVJBVElPTiBJTlZBTElEX1JPTEVfU1BFQ0lGSUNBVElPTiBESUFHTk9TVElDU19FWENFUFRJT04gJ1xuICAgICsgJ1NUQUNLRURfRElBR05PU1RJQ1NfQUNDRVNTRURfV0lUSE9VVF9BQ1RJVkVfSEFORExFUiBDQVNFX05PVF9GT1VORCBDQVJESU5BTElUWV9WSU9MQVRJT04gJ1xuICAgICsgJ0RBVEFfRVhDRVBUSU9OIEFSUkFZX1NVQlNDUklQVF9FUlJPUiBDSEFSQUNURVJfTk9UX0lOX1JFUEVSVE9JUkUgREFURVRJTUVfRklFTERfT1ZFUkZMT1cgJ1xuICAgICsgJ0RJVklTSU9OX0JZX1pFUk8gRVJST1JfSU5fQVNTSUdOTUVOVCBFU0NBUEVfQ0hBUkFDVEVSX0NPTkZMSUNUIElORElDQVRPUl9PVkVSRkxPVyAnXG4gICAgKyAnSU5URVJWQUxfRklFTERfT1ZFUkZMT1cgSU5WQUxJRF9BUkdVTUVOVF9GT1JfTE9HQVJJVEhNIElOVkFMSURfQVJHVU1FTlRfRk9SX05USUxFX0ZVTkNUSU9OICdcbiAgICArICdJTlZBTElEX0FSR1VNRU5UX0ZPUl9OVEhfVkFMVUVfRlVOQ1RJT04gSU5WQUxJRF9BUkdVTUVOVF9GT1JfUE9XRVJfRlVOQ1RJT04gJ1xuICAgICsgJ0lOVkFMSURfQVJHVU1FTlRfRk9SX1dJRFRIX0JVQ0tFVF9GVU5DVElPTiBJTlZBTElEX0NIQVJBQ1RFUl9WQUxVRV9GT1JfQ0FTVCAnXG4gICAgKyAnSU5WQUxJRF9EQVRFVElNRV9GT1JNQVQgSU5WQUxJRF9FU0NBUEVfQ0hBUkFDVEVSIElOVkFMSURfRVNDQVBFX09DVEVUIElOVkFMSURfRVNDQVBFX1NFUVVFTkNFICdcbiAgICArICdOT05TVEFOREFSRF9VU0VfT0ZfRVNDQVBFX0NIQVJBQ1RFUiBJTlZBTElEX0lORElDQVRPUl9QQVJBTUVURVJfVkFMVUUgSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUgJ1xuICAgICsgJ0lOVkFMSURfUkVHVUxBUl9FWFBSRVNTSU9OIElOVkFMSURfUk9XX0NPVU5UX0lOX0xJTUlUX0NMQVVTRSAnXG4gICAgKyAnSU5WQUxJRF9ST1dfQ09VTlRfSU5fUkVTVUxUX09GRlNFVF9DTEFVU0UgSU5WQUxJRF9UQUJMRVNBTVBMRV9BUkdVTUVOVCBJTlZBTElEX1RBQkxFU0FNUExFX1JFUEVBVCAnXG4gICAgKyAnSU5WQUxJRF9USU1FX1pPTkVfRElTUExBQ0VNRU5UX1ZBTFVFIElOVkFMSURfVVNFX09GX0VTQ0FQRV9DSEFSQUNURVIgTU9TVF9TUEVDSUZJQ19UWVBFX01JU01BVENIICdcbiAgICArICdOVUxMX1ZBTFVFX05PVF9BTExPV0VEIE5VTExfVkFMVUVfTk9fSU5ESUNBVE9SX1BBUkFNRVRFUiBOVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSAnXG4gICAgKyAnU0VRVUVOQ0VfR0VORVJBVE9SX0xJTUlUX0VYQ0VFREVEIFNUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRDSCBTVFJJTkdfREFUQV9SSUdIVF9UUlVOQ0FUSU9OICdcbiAgICArICdTVUJTVFJJTkdfRVJST1IgVFJJTV9FUlJPUiBVTlRFUk1JTkFURURfQ19TVFJJTkcgWkVST19MRU5HVEhfQ0hBUkFDVEVSX1NUUklORyAnXG4gICAgKyAnRkxPQVRJTkdfUE9JTlRfRVhDRVBUSU9OIElOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiBJTlZBTElEX0JJTkFSWV9SRVBSRVNFTlRBVElPTiAnXG4gICAgKyAnQkFEX0NPUFlfRklMRV9GT1JNQVQgVU5UUkFOU0xBVEFCTEVfQ0hBUkFDVEVSIE5PVF9BTl9YTUxfRE9DVU1FTlQgSU5WQUxJRF9YTUxfRE9DVU1FTlQgJ1xuICAgICsgJ0lOVkFMSURfWE1MX0NPTlRFTlQgSU5WQUxJRF9YTUxfQ09NTUVOVCBJTlZBTElEX1hNTF9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICdcbiAgICArICdJTlRFR1JJVFlfQ09OU1RSQUlOVF9WSU9MQVRJT04gUkVTVFJJQ1RfVklPTEFUSU9OIE5PVF9OVUxMX1ZJT0xBVElPTiBGT1JFSUdOX0tFWV9WSU9MQVRJT04gJ1xuICAgICsgJ1VOSVFVRV9WSU9MQVRJT04gQ0hFQ0tfVklPTEFUSU9OIEVYQ0xVU0lPTl9WSU9MQVRJT04gSU5WQUxJRF9DVVJTT1JfU1RBVEUgJ1xuICAgICsgJ0lOVkFMSURfVFJBTlNBQ1RJT05fU1RBVEUgQUNUSVZFX1NRTF9UUkFOU0FDVElPTiBCUkFOQ0hfVFJBTlNBQ1RJT05fQUxSRUFEWV9BQ1RJVkUgJ1xuICAgICsgJ0hFTERfQ1VSU09SX1JFUVVJUkVTX1NBTUVfSVNPTEFUSU9OX0xFVkVMIElOQVBQUk9QUklBVEVfQUNDRVNTX01PREVfRk9SX0JSQU5DSF9UUkFOU0FDVElPTiAnXG4gICAgKyAnSU5BUFBST1BSSUFURV9JU09MQVRJT05fTEVWRUxfRk9SX0JSQU5DSF9UUkFOU0FDVElPTiAnXG4gICAgKyAnTk9fQUNUSVZFX1NRTF9UUkFOU0FDVElPTl9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIFJFQURfT05MWV9TUUxfVFJBTlNBQ1RJT04gJ1xuICAgICsgJ1NDSEVNQV9BTkRfREFUQV9TVEFURU1FTlRfTUlYSU5HX05PVF9TVVBQT1JURUQgTk9fQUNUSVZFX1NRTF9UUkFOU0FDVElPTiAnXG4gICAgKyAnSU5fRkFJTEVEX1NRTF9UUkFOU0FDVElPTiBJRExFX0lOX1RSQU5TQUNUSU9OX1NFU1NJT05fVElNRU9VVCBJTlZBTElEX1NRTF9TVEFURU1FTlRfTkFNRSAnXG4gICAgKyAnVFJJR0dFUkVEX0RBVEFfQ0hBTkdFX1ZJT0xBVElPTiBJTlZBTElEX0FVVEhPUklaQVRJT05fU1BFQ0lGSUNBVElPTiBJTlZBTElEX1BBU1NXT1JEICdcbiAgICArICdERVBFTkRFTlRfUFJJVklMRUdFX0RFU0NSSVBUT1JTX1NUSUxMX0VYSVNUIERFUEVOREVOVF9PQkpFQ1RTX1NUSUxMX0VYSVNUICdcbiAgICArICdJTlZBTElEX1RSQU5TQUNUSU9OX1RFUk1JTkFUSU9OIFNRTF9ST1VUSU5FX0VYQ0VQVElPTiBGVU5DVElPTl9FWEVDVVRFRF9OT19SRVRVUk5fU1RBVEVNRU5UICdcbiAgICArICdNT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBQUk9ISUJJVEVEX1NRTF9TVEFURU1FTlRfQVRURU1QVEVEICdcbiAgICArICdSRUFESU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgSU5WQUxJRF9DVVJTT1JfTkFNRSBFWFRFUk5BTF9ST1VUSU5FX0VYQ0VQVElPTiAnXG4gICAgKyAnQ09OVEFJTklOR19TUUxfTk9UX1BFUk1JVFRFRCBNT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCAnXG4gICAgKyAnUFJPSElCSVRFRF9TUUxfU1RBVEVNRU5UX0FUVEVNUFRFRCBSRUFESU5HX1NRTF9EQVRBX05PVF9QRVJNSVRURUQgJ1xuICAgICsgJ0VYVEVSTkFMX1JPVVRJTkVfSU5WT0NBVElPTl9FWENFUFRJT04gSU5WQUxJRF9TUUxTVEFURV9SRVRVUk5FRCBOVUxMX1ZBTFVFX05PVF9BTExPV0VEICdcbiAgICArICdUUklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEIFNSRl9QUk9UT0NPTF9WSU9MQVRFRCBFVkVOVF9UUklHR0VSX1BST1RPQ09MX1ZJT0xBVEVEICdcbiAgICArICdTQVZFUE9JTlRfRVhDRVBUSU9OIElOVkFMSURfU0FWRVBPSU5UX1NQRUNJRklDQVRJT04gSU5WQUxJRF9DQVRBTE9HX05BTUUgJ1xuICAgICsgJ0lOVkFMSURfU0NIRU1BX05BTUUgVFJBTlNBQ1RJT05fUk9MTEJBQ0sgVFJBTlNBQ1RJT05fSU5URUdSSVRZX0NPTlNUUkFJTlRfVklPTEFUSU9OICdcbiAgICArICdTRVJJQUxJWkFUSU9OX0ZBSUxVUkUgU1RBVEVNRU5UX0NPTVBMRVRJT05fVU5LTk9XTiBERUFETE9DS19ERVRFQ1RFRCAnXG4gICAgKyAnU1lOVEFYX0VSUk9SX09SX0FDQ0VTU19SVUxFX1ZJT0xBVElPTiBTWU5UQVhfRVJST1IgSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSBDQU5OT1RfQ09FUkNFICdcbiAgICArICdHUk9VUElOR19FUlJPUiBXSU5ET1dJTkdfRVJST1IgSU5WQUxJRF9SRUNVUlNJT04gSU5WQUxJRF9GT1JFSUdOX0tFWSBJTlZBTElEX05BTUUgJ1xuICAgICsgJ05BTUVfVE9PX0xPTkcgUkVTRVJWRURfTkFNRSBEQVRBVFlQRV9NSVNNQVRDSCBJTkRFVEVSTUlOQVRFX0RBVEFUWVBFIENPTExBVElPTl9NSVNNQVRDSCAnXG4gICAgKyAnSU5ERVRFUk1JTkFURV9DT0xMQVRJT04gV1JPTkdfT0JKRUNUX1RZUEUgR0VORVJBVEVEX0FMV0FZUyBVTkRFRklORURfQ09MVU1OICdcbiAgICArICdVTkRFRklORURfRlVOQ1RJT04gVU5ERUZJTkVEX1RBQkxFIFVOREVGSU5FRF9QQVJBTUVURVIgVU5ERUZJTkVEX09CSkVDVCAnXG4gICAgKyAnRFVQTElDQVRFX0NPTFVNTiBEVVBMSUNBVEVfQ1VSU09SIERVUExJQ0FURV9EQVRBQkFTRSBEVVBMSUNBVEVfRlVOQ1RJT04gJ1xuICAgICsgJ0RVUExJQ0FURV9QUkVQQVJFRF9TVEFURU1FTlQgRFVQTElDQVRFX1NDSEVNQSBEVVBMSUNBVEVfVEFCTEUgRFVQTElDQVRFX0FMSUFTICdcbiAgICArICdEVVBMSUNBVEVfT0JKRUNUIEFNQklHVU9VU19DT0xVTU4gQU1CSUdVT1VTX0ZVTkNUSU9OIEFNQklHVU9VU19QQVJBTUVURVIgQU1CSUdVT1VTX0FMSUFTICdcbiAgICArICdJTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UgSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiBJTlZBTElEX0NVUlNPUl9ERUZJTklUSU9OICdcbiAgICArICdJTlZBTElEX0RBVEFCQVNFX0RFRklOSVRJT04gSU5WQUxJRF9GVU5DVElPTl9ERUZJTklUSU9OICdcbiAgICArICdJTlZBTElEX1BSRVBBUkVEX1NUQVRFTUVOVF9ERUZJTklUSU9OIElOVkFMSURfU0NIRU1BX0RFRklOSVRJT04gSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OICdcbiAgICArICdJTlZBTElEX09CSkVDVF9ERUZJTklUSU9OIFdJVEhfQ0hFQ0tfT1BUSU9OX1ZJT0xBVElPTiBJTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTIERJU0tfRlVMTCAnXG4gICAgKyAnT1VUX09GX01FTU9SWSBUT09fTUFOWV9DT05ORUNUSU9OUyBDT05GSUdVUkFUSU9OX0xJTUlUX0VYQ0VFREVEIFBST0dSQU1fTElNSVRfRVhDRUVERUQgJ1xuICAgICsgJ1NUQVRFTUVOVF9UT09fQ09NUExFWCBUT09fTUFOWV9DT0xVTU5TIFRPT19NQU5ZX0FSR1VNRU5UUyBPQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSAnXG4gICAgKyAnT0JKRUNUX0lOX1VTRSBDQU5UX0NIQU5HRV9SVU5USU1FX1BBUkFNIExPQ0tfTk9UX0FWQUlMQUJMRSBPUEVSQVRPUl9JTlRFUlZFTlRJT04gJ1xuICAgICsgJ1FVRVJZX0NBTkNFTEVEIEFETUlOX1NIVVRET1dOIENSQVNIX1NIVVRET1dOIENBTk5PVF9DT05ORUNUX05PVyBEQVRBQkFTRV9EUk9QUEVEICdcbiAgICArICdTWVNURU1fRVJST1IgSU9fRVJST1IgVU5ERUZJTkVEX0ZJTEUgRFVQTElDQVRFX0ZJTEUgU05BUFNIT1RfVE9PX09MRCBDT05GSUdfRklMRV9FUlJPUiAnXG4gICAgKyAnTE9DS19GSUxFX0VYSVNUUyBGRFdfRVJST1IgRkRXX0NPTFVNTl9OQU1FX05PVF9GT1VORCBGRFdfRFlOQU1JQ19QQVJBTUVURVJfVkFMVUVfTkVFREVEICdcbiAgICArICdGRFdfRlVOQ1RJT05fU0VRVUVOQ0VfRVJST1IgRkRXX0lOQ09OU0lTVEVOVF9ERVNDUklQVE9SX0lORk9STUFUSU9OICdcbiAgICArICdGRFdfSU5WQUxJRF9BVFRSSUJVVEVfVkFMVUUgRkRXX0lOVkFMSURfQ09MVU1OX05BTUUgRkRXX0lOVkFMSURfQ09MVU1OX05VTUJFUiAnXG4gICAgKyAnRkRXX0lOVkFMSURfREFUQV9UWVBFIEZEV19JTlZBTElEX0RBVEFfVFlQRV9ERVNDUklQVE9SUyAnXG4gICAgKyAnRkRXX0lOVkFMSURfREVTQ1JJUFRPUl9GSUVMRF9JREVOVElGSUVSIEZEV19JTlZBTElEX0hBTkRMRSBGRFdfSU5WQUxJRF9PUFRJT05fSU5ERVggJ1xuICAgICsgJ0ZEV19JTlZBTElEX09QVElPTl9OQU1FIEZEV19JTlZBTElEX1NUUklOR19MRU5HVEhfT1JfQlVGRkVSX0xFTkdUSCAnXG4gICAgKyAnRkRXX0lOVkFMSURfU1RSSU5HX0ZPUk1BVCBGRFdfSU5WQUxJRF9VU0VfT0ZfTlVMTF9QT0lOVEVSIEZEV19UT09fTUFOWV9IQU5ETEVTICdcbiAgICArICdGRFdfT1VUX09GX01FTU9SWSBGRFdfTk9fU0NIRU1BUyBGRFdfT1BUSU9OX05BTUVfTk9UX0ZPVU5EIEZEV19SRVBMWV9IQU5ETEUgJ1xuICAgICsgJ0ZEV19TQ0hFTUFfTk9UX0ZPVU5EIEZEV19UQUJMRV9OT1RfRk9VTkQgRkRXX1VOQUJMRV9UT19DUkVBVEVfRVhFQ1VUSU9OICdcbiAgICArICdGRFdfVU5BQkxFX1RPX0NSRUFURV9SRVBMWSBGRFdfVU5BQkxFX1RPX0VTVEFCTElTSF9DT05ORUNUSU9OIFBMUEdTUUxfRVJST1IgJ1xuICAgICsgJ1JBSVNFX0VYQ0VQVElPTiBOT19EQVRBX0ZPVU5EIFRPT19NQU5ZX1JPV1MgQVNTRVJUX0ZBSUxVUkUgSU5URVJOQUxfRVJST1IgREFUQV9DT1JSVVBURUQgJ1xuICAgICsgJ0lOREVYX0NPUlJVUFRFRCAnO1xuXG4gIGNvbnN0IEZVTkNUSU9OUyA9XG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWFnZ3JlZ2F0ZS5odG1sXG4gICAgJ0FSUkFZX0FHRyBBVkcgQklUX0FORCBCSVRfT1IgQk9PTF9BTkQgQk9PTF9PUiBDT1VOVCBFVkVSWSBKU09OX0FHRyBKU09OQl9BR0cgSlNPTl9PQkpFQ1RfQUdHICdcbiAgICArICdKU09OQl9PQkpFQ1RfQUdHIE1BWCBNSU4gTU9ERSBTVFJJTkdfQUdHIFNVTSBYTUxBR0cgJ1xuICAgICsgJ0NPUlIgQ09WQVJfUE9QIENPVkFSX1NBTVAgUkVHUl9BVkdYIFJFR1JfQVZHWSBSRUdSX0NPVU5UIFJFR1JfSU5URVJDRVBUIFJFR1JfUjIgUkVHUl9TTE9QRSAnXG4gICAgKyAnUkVHUl9TWFggUkVHUl9TWFkgUkVHUl9TWVkgU1REREVWIFNURERFVl9QT1AgU1REREVWX1NBTVAgVkFSSUFOQ0UgVkFSX1BPUCBWQVJfU0FNUCAnXG4gICAgKyAnUEVSQ0VOVElMRV9DT05UIFBFUkNFTlRJTEVfRElTQyAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXdpbmRvdy5odG1sXG4gICAgKyAnUk9XX05VTUJFUiBSQU5LIERFTlNFX1JBTksgUEVSQ0VOVF9SQU5LIENVTUVfRElTVCBOVElMRSBMQUcgTEVBRCBGSVJTVF9WQUxVRSBMQVNUX1ZBTFVFIE5USF9WQUxVRSAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWNvbXBhcmlzb24uaHRtbFxuICAgICsgJ05VTV9OT05OVUxMUyBOVU1fTlVMTFMgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1tYXRoLmh0bWxcbiAgICArICdBQlMgQ0JSVCBDRUlMIENFSUxJTkcgREVHUkVFUyBESVYgRVhQIEZMT09SIExOIExPRyBNT0QgUEkgUE9XRVIgUkFESUFOUyBST1VORCBTQ0FMRSBTSUdOIFNRUlQgJ1xuICAgICsgJ1RSVU5DIFdJRFRIX0JVQ0tFVCAnXG4gICAgKyAnUkFORE9NIFNFVFNFRUQgJ1xuICAgICsgJ0FDT1MgQUNPU0QgQVNJTiBBU0lORCBBVEFOIEFUQU5EIEFUQU4yIEFUQU4yRCBDT1MgQ09TRCBDT1QgQ09URCBTSU4gU0lORCBUQU4gVEFORCAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXN0cmluZy5odG1sXG4gICAgKyAnQklUX0xFTkdUSCBDSEFSX0xFTkdUSCBDSEFSQUNURVJfTEVOR1RIIExPV0VSIE9DVEVUX0xFTkdUSCBPVkVSTEFZIFBPU0lUSU9OIFNVQlNUUklORyBUUkVBVCBUUklNIFVQUEVSICdcbiAgICArICdBU0NJSSBCVFJJTSBDSFIgQ09OQ0FUIENPTkNBVF9XUyBDT05WRVJUIENPTlZFUlRfRlJPTSBDT05WRVJUX1RPIERFQ09ERSBFTkNPREUgSU5JVENBUCAnXG4gICAgKyAnTEVGVCBMRU5HVEggTFBBRCBMVFJJTSBNRDUgUEFSU0VfSURFTlQgUEdfQ0xJRU5UX0VOQ09ESU5HIFFVT1RFX0lERU5UfDEwIFFVT1RFX0xJVEVSQUx8MTAgJ1xuICAgICsgJ1FVT1RFX05VTExBQkxFfDEwIFJFR0VYUF9NQVRDSCBSRUdFWFBfTUFUQ0hFUyBSRUdFWFBfUkVQTEFDRSBSRUdFWFBfU1BMSVRfVE9fQVJSQVkgJ1xuICAgICsgJ1JFR0VYUF9TUExJVF9UT19UQUJMRSBSRVBFQVQgUkVQTEFDRSBSRVZFUlNFIFJJR0hUIFJQQUQgUlRSSU0gU1BMSVRfUEFSVCBTVFJQT1MgU1VCU1RSICdcbiAgICArICdUT19BU0NJSSBUT19IRVggVFJBTlNMQVRFICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtYmluYXJ5c3RyaW5nLmh0bWxcbiAgICArICdPQ1RFVF9MRU5HVEggR0VUX0JJVCBHRVRfQllURSBTRVRfQklUIFNFVF9CWVRFICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtZm9ybWF0dGluZy5odG1sXG4gICAgKyAnVE9fQ0hBUiBUT19EQVRFIFRPX05VTUJFUiBUT19USU1FU1RBTVAgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1kYXRldGltZS5odG1sXG4gICAgKyAnQUdFIENMT0NLX1RJTUVTVEFNUHwxMCBEQVRFX1BBUlQgREFURV9UUlVOQyBJU0ZJTklURSBKVVNUSUZZX0RBWVMgSlVTVElGWV9IT1VSUyBKVVNUSUZZX0lOVEVSVkFMICdcbiAgICArICdNQUtFX0RBVEUgTUFLRV9JTlRFUlZBTHwxMCBNQUtFX1RJTUUgTUFLRV9USU1FU1RBTVB8MTAgTUFLRV9USU1FU1RBTVBUWnwxMCBOT1cgU1RBVEVNRU5UX1RJTUVTVEFNUHwxMCAnXG4gICAgKyAnVElNRU9GREFZIFRSQU5TQUNUSU9OX1RJTUVTVEFNUHwxMCAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWVudW0uaHRtbFxuICAgICsgJ0VOVU1fRklSU1QgRU5VTV9MQVNUIEVOVU1fUkFOR0UgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1nZW9tZXRyeS5odG1sXG4gICAgKyAnQVJFQSBDRU5URVIgRElBTUVURVIgSEVJR0hUIElTQ0xPU0VEIElTT1BFTiBOUE9JTlRTIFBDTE9TRSBQT1BFTiBSQURJVVMgV0lEVEggJ1xuICAgICsgJ0JPWCBCT1VORF9CT1ggQ0lSQ0xFIExJTkUgTFNFRyBQQVRIIFBPTFlHT04gJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1uZXQuaHRtbFxuICAgICsgJ0FCQlJFViBCUk9BRENBU1QgSE9TVCBIT1NUTUFTSyBNQVNLTEVOIE5FVE1BU0sgTkVUV09SSyBTRVRfTUFTS0xFTiBURVhUIElORVRfU0FNRV9GQU1JTFkgJ1xuICAgICsgJ0lORVRfTUVSR0UgTUFDQUREUjhfU0VUN0JJVCAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXRleHRzZWFyY2guaHRtbFxuICAgICsgJ0FSUkFZX1RPX1RTVkVDVE9SIEdFVF9DVVJSRU5UX1RTX0NPTkZJRyBOVU1OT0RFIFBMQUlOVE9fVFNRVUVSWSBQSFJBU0VUT19UU1FVRVJZIFdFQlNFQVJDSF9UT19UU1FVRVJZICdcbiAgICArICdRVUVSWVRSRUUgU0VUV0VJR0hUIFNUUklQIFRPX1RTUVVFUlkgVE9fVFNWRUNUT1IgSlNPTl9UT19UU1ZFQ1RPUiBKU09OQl9UT19UU1ZFQ1RPUiBUU19ERUxFVEUgJ1xuICAgICsgJ1RTX0ZJTFRFUiBUU19IRUFETElORSBUU19SQU5LIFRTX1JBTktfQ0QgVFNfUkVXUklURSBUU1FVRVJZX1BIUkFTRSBUU1ZFQ1RPUl9UT19BUlJBWSAnXG4gICAgKyAnVFNWRUNUT1JfVVBEQVRFX1RSSUdHRVIgVFNWRUNUT1JfVVBEQVRFX1RSSUdHRVJfQ09MVU1OICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMteG1sLmh0bWxcbiAgICArICdYTUxDT01NRU5UIFhNTENPTkNBVCBYTUxFTEVNRU5UIFhNTEZPUkVTVCBYTUxQSSBYTUxST09UICdcbiAgICArICdYTUxFWElTVFMgWE1MX0lTX1dFTExfRk9STUVEIFhNTF9JU19XRUxMX0ZPUk1FRF9ET0NVTUVOVCBYTUxfSVNfV0VMTF9GT1JNRURfQ09OVEVOVCAnXG4gICAgKyAnWFBBVEggWFBBVEhfRVhJU1RTIFhNTFRBQkxFIFhNTE5BTUVTUEFDRVMgJ1xuICAgICsgJ1RBQkxFX1RPX1hNTCBUQUJMRV9UT19YTUxTQ0hFTUEgVEFCTEVfVE9fWE1MX0FORF9YTUxTQ0hFTUEgJ1xuICAgICsgJ1FVRVJZX1RPX1hNTCBRVUVSWV9UT19YTUxTQ0hFTUEgUVVFUllfVE9fWE1MX0FORF9YTUxTQ0hFTUEgJ1xuICAgICsgJ0NVUlNPUl9UT19YTUwgQ1VSU09SX1RPX1hNTFNDSEVNQSAnXG4gICAgKyAnU0NIRU1BX1RPX1hNTCBTQ0hFTUFfVE9fWE1MU0NIRU1BIFNDSEVNQV9UT19YTUxfQU5EX1hNTFNDSEVNQSAnXG4gICAgKyAnREFUQUJBU0VfVE9fWE1MIERBVEFCQVNFX1RPX1hNTFNDSEVNQSBEQVRBQkFTRV9UT19YTUxfQU5EX1hNTFNDSEVNQSAnXG4gICAgKyAnWE1MQVRUUklCVVRFUyAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWpzb24uaHRtbFxuICAgICsgJ1RPX0pTT04gVE9fSlNPTkIgQVJSQVlfVE9fSlNPTiBST1dfVE9fSlNPTiBKU09OX0JVSUxEX0FSUkFZIEpTT05CX0JVSUxEX0FSUkFZIEpTT05fQlVJTERfT0JKRUNUICdcbiAgICArICdKU09OQl9CVUlMRF9PQkpFQ1QgSlNPTl9PQkpFQ1QgSlNPTkJfT0JKRUNUIEpTT05fQVJSQVlfTEVOR1RIIEpTT05CX0FSUkFZX0xFTkdUSCBKU09OX0VBQ0ggJ1xuICAgICsgJ0pTT05CX0VBQ0ggSlNPTl9FQUNIX1RFWFQgSlNPTkJfRUFDSF9URVhUIEpTT05fRVhUUkFDVF9QQVRIIEpTT05CX0VYVFJBQ1RfUEFUSCAnXG4gICAgKyAnSlNPTl9PQkpFQ1RfS0VZUyBKU09OQl9PQkpFQ1RfS0VZUyBKU09OX1BPUFVMQVRFX1JFQ09SRCBKU09OQl9QT1BVTEFURV9SRUNPUkQgSlNPTl9QT1BVTEFURV9SRUNPUkRTRVQgJ1xuICAgICsgJ0pTT05CX1BPUFVMQVRFX1JFQ09SRFNFVCBKU09OX0FSUkFZX0VMRU1FTlRTIEpTT05CX0FSUkFZX0VMRU1FTlRTIEpTT05fQVJSQVlfRUxFTUVOVFNfVEVYVCAnXG4gICAgKyAnSlNPTkJfQVJSQVlfRUxFTUVOVFNfVEVYVCBKU09OX1RZUEVPRiBKU09OQl9UWVBFT0YgSlNPTl9UT19SRUNPUkQgSlNPTkJfVE9fUkVDT1JEIEpTT05fVE9fUkVDT1JEU0VUICdcbiAgICArICdKU09OQl9UT19SRUNPUkRTRVQgSlNPTl9TVFJJUF9OVUxMUyBKU09OQl9TVFJJUF9OVUxMUyBKU09OQl9TRVQgSlNPTkJfSU5TRVJUIEpTT05CX1BSRVRUWSAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLXNlcXVlbmNlLmh0bWxcbiAgICArICdDVVJSVkFMIExBU1RWQUwgTkVYVFZBTCBTRVRWQUwgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1jb25kaXRpb25hbC5odG1sXG4gICAgKyAnQ09BTEVTQ0UgTlVMTElGIEdSRUFURVNUIExFQVNUICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtYXJyYXkuaHRtbFxuICAgICsgJ0FSUkFZX0FQUEVORCBBUlJBWV9DQVQgQVJSQVlfTkRJTVMgQVJSQVlfRElNUyBBUlJBWV9GSUxMIEFSUkFZX0xFTkdUSCBBUlJBWV9MT1dFUiBBUlJBWV9QT1NJVElPTiAnXG4gICAgKyAnQVJSQVlfUE9TSVRJT05TIEFSUkFZX1BSRVBFTkQgQVJSQVlfUkVNT1ZFIEFSUkFZX1JFUExBQ0UgQVJSQVlfVE9fU1RSSU5HIEFSUkFZX1VQUEVSIENBUkRJTkFMSVRZICdcbiAgICArICdTVFJJTkdfVE9fQVJSQVkgVU5ORVNUICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtcmFuZ2UuaHRtbFxuICAgICsgJ0lTRU1QVFkgTE9XRVJfSU5DIFVQUEVSX0lOQyBMT1dFUl9JTkYgVVBQRVJfSU5GIFJBTkdFX01FUkdFICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtc3JmLmh0bWxcbiAgICArICdHRU5FUkFURV9TRVJJRVMgR0VORVJBVEVfU1VCU0NSSVBUUyAnXG4gICAgLy8gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy8xMS9zdGF0aWMvZnVuY3Rpb25zLWluZm8uaHRtbFxuICAgICsgJ0NVUlJFTlRfREFUQUJBU0UgQ1VSUkVOVF9RVUVSWSBDVVJSRU5UX1NDSEVNQXwxMCBDVVJSRU5UX1NDSEVNQVN8MTAgSU5FVF9DTElFTlRfQUREUiBJTkVUX0NMSUVOVF9QT1JUICdcbiAgICArICdJTkVUX1NFUlZFUl9BRERSIElORVRfU0VSVkVSX1BPUlQgUk9XX1NFQ1VSSVRZX0FDVElWRSBGT1JNQVRfVFlQRSAnXG4gICAgKyAnVE9fUkVHQ0xBU1MgVE9fUkVHUFJPQyBUT19SRUdQUk9DRURVUkUgVE9fUkVHT1BFUiBUT19SRUdPUEVSQVRPUiBUT19SRUdUWVBFIFRPX1JFR05BTUVTUEFDRSBUT19SRUdST0xFICdcbiAgICArICdDT0xfREVTQ1JJUFRJT04gT0JKX0RFU0NSSVBUSU9OIFNIT0JKX0RFU0NSSVBUSU9OICdcbiAgICArICdUWElEX0NVUlJFTlQgVFhJRF9DVVJSRU5UX0lGX0FTU0lHTkVEIFRYSURfQ1VSUkVOVF9TTkFQU0hPVCBUWElEX1NOQVBTSE9UX1hJUCBUWElEX1NOQVBTSE9UX1hNQVggJ1xuICAgICsgJ1RYSURfU05BUFNIT1RfWE1JTiBUWElEX1ZJU0lCTEVfSU5fU05BUFNIT1QgVFhJRF9TVEFUVVMgJ1xuICAgIC8vIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvMTEvc3RhdGljL2Z1bmN0aW9ucy1hZG1pbi5odG1sXG4gICAgKyAnQ1VSUkVOVF9TRVRUSU5HIFNFVF9DT05GSUcgQlJJTl9TVU1NQVJJWkVfTkVXX1ZBTFVFUyBCUklOX1NVTU1BUklaRV9SQU5HRSBCUklOX0RFU1VNTUFSSVpFX1JBTkdFICdcbiAgICArICdHSU5fQ0xFQU5fUEVORElOR19MSVNUICdcbiAgICAvLyBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9mdW5jdGlvbnMtdHJpZ2dlci5odG1sXG4gICAgKyAnU1VQUFJFU1NfUkVEVU5EQU5UX1VQREFURVNfVFJJR0dFUiAnXG4gICAgLy8gaWh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvZGV2ZWwvc3RhdGljL2xvLWZ1bmNzLmh0bWxcbiAgICArICdMT19GUk9NX0JZVEVBIExPX1BVVCBMT19HRVQgTE9fQ1JFQVQgTE9fQ1JFQVRFIExPX1VOTElOSyBMT19JTVBPUlQgTE9fRVhQT1JUIExPUkVBRCBMT1dSSVRFICdcbiAgICAvL1xuICAgICsgJ0dST1VQSU5HIENBU1QgJztcblxuICBjb25zdCBGVU5DVElPTlNfUkUgPVxuICAgICAgRlVOQ1RJT05TLnRyaW0oKVxuICAgICAgICAuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKGZ1bmN0aW9uKHZhbCkgeyByZXR1cm4gdmFsLnNwbGl0KCd8JylbMF07IH0pXG4gICAgICAgIC5qb2luKCd8Jyk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUG9zdGdyZVNRTCcsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3Bvc3RncmVzJyxcbiAgICAgICdwb3N0Z3Jlc3FsJ1xuICAgIF0sXG4gICAgc3VwZXJzZXRPZjogXCJzcWxcIixcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOlxuICAgICAgICAgICAgU1FMX0tXICsgUExQR1NRTF9LVyArIFJPTEVfQVRUUlMsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgICAgIFNRTF9CSSArIFBMUEdTUUxfQkkgKyBQTFBHU1FMX0VYQ0VQVElPTlNcbiAgICB9LFxuICAgIC8vIEZvcmJpZCBzb21lIGN1bnN0cnVjdHMgZnJvbSBvdGhlciBsYW5ndWFnZXMgdG8gaW1wcm92ZSBhdXRvZGV0ZWN0LiBJbiBmYWN0XG4gICAgLy8gXCJbYS16XTpcIiBpcyBsZWdhbCAoYXMgcGFydCBvZiBhcnJheSBzbGljZSksIGJ1dCBpbXByb2JhYmFsLlxuICAgIGlsbGVnYWw6IC86PT18XFxXXFxzKlxcKFxcKnwoXnxcXHMpXFwkW2Etel18XFx7XFx7fFthLXpdOlxccyokfFxcLlxcLlxcLnxUTzp8RE86LyxcbiAgICBjb250YWluczogW1xuICAgICAgLy8gc3BlY2lhbCBoYW5kbGluZyBvZiBzb21lIHdvcmRzLCB3aGljaCBhcmUgcmVzZXJ2ZWQgb25seSBpbiBzb21lIGNvbnRleHRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9cXGJURVhUXFxzKlNFQVJDSFxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFBSSU1BUll8Rk9SRUlHTnxGT1IoXFxzK05PKT8pXFxzK0tFWVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiUEFSQUxMRUxcXHMrKFVOU0FGRXxSRVNUUklDVEVEfFNBRkUpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJTVE9SQUdFXFxzKyhQTEFJTnxFWFRFUk5BTHxFWFRFTkRFRHxNQUlOKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiTUFUQ0hcXHMrKEZVTEx8UEFSVElBTHxTSU1QTEUpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJOVUxMU1xccysoRklSU1R8TEFTVClcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYkVWRU5UXFxzK1RSSUdHRVJcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihNQVBQSU5HfE9SKVxccytSRVBMQUNFXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoRlJPTXxUTylcXHMrKFBST0dSQU18U1RESU58U1RET1VUKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFNIQVJFfEVYQ0xVU0lWRSlcXHMrTU9ERVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKExFRlR8UklHSFQpXFxzKyhPVVRFUlxccyspP0pPSU5cXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihGRVRDSHxNT1ZFKVxccysoTkVYVHxQUklPUnxGSVJTVHxMQVNUfEFCU09MVVRFfFJFTEFUSVZFfEZPUldBUkR8QkFDS1dBUkQpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJQUkVTRVJWRVxccytST1dTXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJESVNDQVJEXFxzK1BMQU5TXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJSRUZFUkVOQ0lOR1xccysoT0xEfE5FVylcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlNLSVBcXHMrTE9DS0VEXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJHUk9VUElOR1xccytTRVRTXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoQklOQVJZfElOU0VOU0lUSVZFfFNDUk9MTHxOT1xccytTQ1JPTEwpXFxzKyhDVVJTT1J8Rk9SKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFdJVEh8V0lUSE9VVClcXHMrSE9MRFxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiV0lUSFxccysoQ0FTQ0FERUR8TE9DQUwpXFxzK0NIRUNLXFxzK09QVElPTlxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiRVhDTFVERVxccysoVElFU3xOT1xccytPVEhFUlMpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJGT1JNQVRcXHMrKFRFWFR8WE1MfEpTT058WUFNTClcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlNFVFxccysoKFNFU1NJT058TE9DQUwpXFxzKyk/TkFNRVNcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYklTXFxzKyhOT1RcXHMrKT9VTktOT1dOXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJTRUNVUklUWVxccytMQUJFTFxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiU1RBTkRBTE9ORVxccysoWUVTfE5PfE5PXFxzK1ZBTFVFKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiV0lUSFxccysoTk9cXHMrKT9EQVRBXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGIoRk9SRUlHTnxTRVQpXFxzK0RBVEFcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlNFVFxccysoQ0FUQUxPR3xDT05TVFJBSU5UUylcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihXSVRIfEZPUilcXHMrT1JESU5BTElUWVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiSVNcXHMrKE5PVFxccyspP0RPQ1VNRU5UXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJYTUxcXHMrT1BUSU9OXFxzKyhET0NVTUVOVHxDT05URU5UKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKFNUUklQfFBSRVNFUlZFKVxccytXSElURVNQQUNFXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJOT1xccysoQUNUSU9OfE1BWFZBTFVFfE1JTlZBTFVFKVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiUEFSVElUSU9OXFxzK0JZXFxzKyhSQU5HRXxMSVNUfEhBU0gpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJBVFxccytUSU1FXFxzK1pPTkVcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYkdSQU5URURcXHMrQllcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYlJFVFVSTlxccysoUVVFUll8TkVYVClcXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYihBVFRBQ0h8REVUQUNIKVxccytQQVJUSVRJT05cXGIvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL1xcYkZPUkNFXFxzK1JPV1xccytMRVZFTFxccytTRUNVUklUWVxcYi8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxiKElOQ0xVRElOR3xFWENMVURJTkcpXFxzKyhDT01NRU5UU3xDT05TVFJBSU5UU3xERUZBVUxUU3xJREVOVElUWXxJTkRFWEVTfFNUQVRJU1RJQ1N8U1RPUkFHRXxBTEwpXFxiLyB9LFxuICAgICAgICAgIHsgYmVnaW46IC9cXGJBU1xccysoQVNTSUdOTUVOVHxJTVBMSUNJVHxQRVJNSVNTSVZFfFJFU1RSSUNUSVZFfEVOVU18UkFOR0UpXFxiLyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyBmdW5jdGlvbnMgbmFtZWQgYXMga2V5d29yZHMsIGZvbGxvd2VkIGJ5ICcoJ1xuICAgICAgeyBiZWdpbjogL1xcYihGT1JNQVR8RkFNSUxZfFZFUlNJT04pXFxzKlxcKC9cbiAgICAgICAgLy8ga2V5d29yZHM6IHsgYnVpbHRfaW46ICdGT1JNQVQgRkFNSUxZIFZFUlNJT04nIH1cbiAgICAgIH0sXG4gICAgICAvLyBJTkNMVURFICggLi4uICkgaW4gaW5kZXhfcGFyYW1ldGVycyBpbiBDUkVBVEUgVEFCTEVcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJJTkNMVURFXFxzKlxcKC8sXG4gICAgICAgIGtleXdvcmRzOiAnSU5DTFVERSdcbiAgICAgIH0sXG4gICAgICAvLyBub3QgaGlnaGxpZ2h0IFJBTkdFIGlmIG5vdCBpbiBmcmFtZV9jbGF1c2UgKG5vdCAxMDAlIGNvcnJlY3QsIGJ1dCBzZWVtcyBzYXRpc2ZhY3RvcnkpXG4gICAgICB7IGJlZ2luOiAvXFxiUkFOR0UoPyFcXHMqKEJFVFdFRU58VU5CT1VOREVEfENVUlJFTlR8Wy0wLTldKykpLyB9LFxuICAgICAgLy8gZGlzYWJsZSBoaWdobGlnaHRpbmcgaW4gY29tbWFuZHMgQ1JFQVRFIEFHR1JFR0FURS9DT0xMQVRJT04vREFUQUJBU0UvT1BFUlRPUi9URVhUIFNFQVJDSCAuLi4vVFlQRVxuICAgICAgLy8gYW5kIGluIFBML3BnU1FMIFJBSVNFIC4uLiBVU0lOR1xuICAgICAgeyBiZWdpbjogL1xcYihWRVJTSU9OfE9XTkVSfFRFTVBMQVRFfFRBQkxFU1BBQ0V8Q09OTkVDVElPTlxccytMSU1JVHxQUk9DRURVUkV8UkVTVFJJQ1R8Sk9JTnxQQVJTRVJ8Q09QWXxTVEFSVHxFTkR8Q09MTEFUSU9OfElOUFVUfEFOQUxZWkV8U1RPUkFHRXxMSUtFfERFRkFVTFR8REVMSU1JVEVSfEVOQ09ESU5HfENPTFVNTnxDT05TVFJBSU5UfFRBQkxFfFNDSEVNQSlcXHMqPS8gfSxcbiAgICAgIC8vIFBHX3NtdGg7IEhBU19zb21lX1BSSVZJTEVHRVxuICAgICAge1xuICAgICAgICAvLyBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIGJlZ2luOiAvXFxiKFBHX1xcdys/fEhBU19bQS1aX10rX1BSSVZJTEVHRSlcXGIvLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAgLy8gZXh0cmFjdFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYkVYVFJBQ1RcXHMqXFwoLyxcbiAgICAgICAgZW5kOiAvXFxiRlJPTVxcYi8sXG4gICAgICAgIHJldHVybkVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAvLyBidWlsdF9pbjogJ0VYVFJBQ1QnLFxuICAgICAgICAgIHR5cGU6ICdDRU5UVVJZIERBWSBERUNBREUgRE9XIERPWSBFUE9DSCBIT1VSIElTT0RPVyBJU09ZRUFSIE1JQ1JPU0VDT05EUyAnXG4gICAgICAgICAgICAgICAgICAgICAgICArICdNSUxMRU5OSVVNIE1JTExJU0VDT05EUyBNSU5VVEUgTU9OVEggUVVBUlRFUiBTRUNPTkQgVElNRVpPTkUgVElNRVpPTkVfSE9VUiAnXG4gICAgICAgICAgICAgICAgICAgICAgICArICdUSU1FWk9ORV9NSU5VVEUgV0VFSyBZRUFSJyB9XG4gICAgICB9LFxuICAgICAgLy8geG1sZWxlbWVudCwgeG1scGkgLSBzcGVjaWFsIE5BTUVcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGIoWE1MRUxFTUVOVHxYTUxQSSlcXHMqXFwoXFxzKk5BTUUvLFxuICAgICAgICBrZXl3b3Jkczoge1xuICAgICAgICAgIC8vIGJ1aWx0X2luOiAnWE1MRUxFTUVOVCBYTUxQSScsXG4gICAgICAgICAga2V5d29yZDogJ05BTUUnIH1cbiAgICAgIH0sXG4gICAgICAvLyB4bWxwYXJzZSwgeG1sc2VyaWFsaXplXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxiKFhNTFBBUlNFfFhNTFNFUklBTElaRSlcXHMqXFwoXFxzKihET0NVTUVOVHxDT05URU5UKS8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgLy8gYnVpbHRfaW46ICdYTUxQQVJTRSBYTUxTRVJJQUxJWkUnLFxuICAgICAgICAgIGtleXdvcmQ6ICdET0NVTUVOVCBDT05URU5UJyB9XG4gICAgICB9LFxuICAgICAgLy8gU2VxdWVuY2VzLiBXZSBhY3R1YWxseSBza2lwIGV2ZXJ5dGhpbmcgYmV0d2VlbiBDQUNIRXxJTkNSRU1FTlR8TUFYVkFMVUV8TUlOVkFMVUUgYW5kXG4gICAgICAvLyBuZWFyZXN0IGZvbGxvd2luZyBudW1lcmljIGNvbnN0YW50LiBXaXRob3V0IHdpdGggdHJpY2sgd2UgZmluZCBhIGxvdCBvZiBcImtleXdvcmRzXCJcbiAgICAgIC8vIGluICdhdnJhc20nIGF1dG9kZXRlY3Rpb24gdGVzdC4uLlxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnQ0FDSEUgSU5DUkVNRU5UIE1BWFZBTFVFIE1JTlZBTFVFJyxcbiAgICAgICAgZW5kOiBobGpzLkNfTlVNQkVSX1JFLFxuICAgICAgICByZXR1cm5FbmQ6IHRydWUsXG4gICAgICAgIGtleXdvcmRzOiAnQlkgQ0FDSEUgSU5DUkVNRU5UIE1BWFZBTFVFIE1JTlZBTFVFJ1xuICAgICAgfSxcbiAgICAgIC8vIFdJVEh8V0lUSE9VVCBUSU1FIFpPTkUgYXMgcGFydCBvZiBkYXRhdHlwZVxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46IC9cXGIoV0lUSHxXSVRIT1VUKVxccytUSU1FXFxzK1pPTkVcXGIvXG4gICAgICB9LFxuICAgICAgLy8gSU5URVJWQUwgb3B0aW9uYWwgZmllbGRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogL1xcYklOVEVSVkFMXFxzKyhZRUFSfE1PTlRIfERBWXxIT1VSfE1JTlVURXxTRUNPTkQpKFxccytUT1xccysoTU9OVEh8SE9VUnxNSU5VVEV8U0VDT05EKSk/XFxiL1xuICAgICAgfSxcbiAgICAgIC8vIFBzZXVkby10eXBlcyB3aGljaCBhbGxvd2VkIG9ubHkgYXMgcmV0dXJuIHR5cGVcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJSRVRVUk5TXFxzKyhMQU5HVUFHRV9IQU5ETEVSfFRSSUdHRVJ8RVZFTlRfVFJJR0dFUnxGRFdfSEFORExFUnxJTkRFWF9BTV9IQU5ETEVSfFRTTV9IQU5ETEVSKVxcYi8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAga2V5d29yZDogJ1JFVFVSTlMnLFxuICAgICAgICAgIHR5cGU6ICdMQU5HVUFHRV9IQU5ETEVSIFRSSUdHRVIgRVZFTlRfVFJJR0dFUiBGRFdfSEFORExFUiBJTkRFWF9BTV9IQU5ETEVSIFRTTV9IQU5ETEVSJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gS25vd24gZnVuY3Rpb25zIC0gb25seSB3aGVuIGZvbGxvd2VkIGJ5ICcoJ1xuICAgICAgeyBiZWdpbjogJ1xcXFxiKCcgKyBGVU5DVElPTlNfUkUgKyAnKVxcXFxzKlxcXFwoJ1xuICAgICAgICAvLyBrZXl3b3JkczogeyBidWlsdF9pbjogRlVOQ1RJT05TIH1cbiAgICAgIH0sXG4gICAgICAvLyBUeXBlc1xuICAgICAgeyBiZWdpbjogJ1xcXFwuKCcgKyBUWVBFU19SRSArICcpXFxcXGInIC8vIHByZXZlbnQgaGlnaGxpZ2h0IGFzIHR5cGUsIHNheSwgJ29pZCcgaW4gJ3BnY2xhc3Mub2lkJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgVFlQRVNfUkUgKyAnKVxcXFxzK1BBVEhcXFxcYicsIC8vIGluIFhNTFRBQkxFXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAga2V5d29yZDogJ1BBVEgnLCAvLyBob3BlZnVsbHkgbm8gb25lIHdvdWxkIHVzZSBQQVRIIHR5cGUgaW4gWE1MVEFCTEUuLi5cbiAgICAgICAgICB0eXBlOiBUWVBFUy5yZXBsYWNlKCdQQVRIICcsICcnKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgVFlQRVNfUkUgKyAnKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIC8vIFN0cmluZ3MsIHNlZSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzExL3N0YXRpYy9zcWwtc3ludGF4LWxleGljYWwuaHRtbCNTUUwtU1lOVEFYLUNPTlNUQU5UU1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcXCdcXCcnIH0gXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICcoZXxFfHUmfFUmKVxcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcXFxcXFxcXC4nIH0gXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICBiZWdpbjogRE9MTEFSX1NUUklORyxcbiAgICAgICAgZW5kOiBET0xMQVJfU1RSSU5HLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIGFjdHVhbGx5IHdlIHdhbnQgdGhlbSBhbGwgZXhjZXB0IFNRTDsgbGlzdGVkIGFyZSB0aG9zZSB3aXRoIGtub3duIGltcGxlbWVudGF0aW9uc1xuICAgICAgICAgICAgLy8gYW5kIFhNTCArIEpTT04ganVzdCBpbiBjYXNlXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogW1xuICAgICAgICAgICAgICAncGdzcWwnLFxuICAgICAgICAgICAgICAncGVybCcsXG4gICAgICAgICAgICAgICdweXRob24nLFxuICAgICAgICAgICAgICAndGNsJyxcbiAgICAgICAgICAgICAgJ3InLFxuICAgICAgICAgICAgICAnbHVhJyxcbiAgICAgICAgICAgICAgJ2phdmEnLFxuICAgICAgICAgICAgICAncGhwJyxcbiAgICAgICAgICAgICAgJ3J1YnknLFxuICAgICAgICAgICAgICAnYmFzaCcsXG4gICAgICAgICAgICAgICdzY2hlbWUnLFxuICAgICAgICAgICAgICAneG1sJyxcbiAgICAgICAgICAgICAgJ2pzb24nXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pLFxuICAgICAgLy8gaWRlbnRpZmllcnMgaW4gcXVvdGVzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXCInLFxuICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF1cbiAgICAgIH0sXG4gICAgICAvLyBudW1iZXJzXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAvLyBjb21tZW50c1xuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIENPTU1FTlRfTU9ERSxcbiAgICAgIC8vIFBML3BnU1FMIHN0YWZmXG4gICAgICAvLyAlUk9XVFlQRSwgJVRZUEUsICRuXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgLy8gJVRZUEUsICVST1dUWVBFXG4gICAgICAgICAgICBiZWdpbjogJyUoUk9XKT9UWVBFJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLy8gJG5cbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxcZCsnIH0sXG4gICAgICAgICAgeyAvLyAjY29tcGlsZXIgb3B0aW9uXG4gICAgICAgICAgICBiZWdpbjogJ14jXFxcXHcnLFxuICAgICAgICAgICAgZW5kOiAnJCdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICAvLyA8PGxhYmVsZXM+PlxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogTEFCRUwsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGdzcWw7XG4iLCAiLypcbkxhbmd1YWdlOiBQSFBcbkF1dGhvcjogVmljdG9yIEthcmFtemluIDxWaWN0b3IuS2FyYW16aW5AZW50ZXJyYS1pbmMuY29tPlxuQ29udHJpYnV0b3JzOiBFdmdlbnkgU3RlcGFuaXNjaGV2IDxpbWJvbGtAZ21haWwuY29tPiwgSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG5XZWJzaXRlOiBodHRwczovL3d3dy5waHAubmV0XG5DYXRlZ29yeTogY29tbW9uXG4qL1xuXG4vKipcbiAqIEBwYXJhbSB7SExKU0FwaX0gaGxqc1xuICogQHJldHVybnMge0xhbmd1YWdlRGV0YWlsfVxuICogKi9cbmZ1bmN0aW9uIHBocChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gbmVnYXRpdmUgbG9vay1haGVhZCB0cmllcyB0byBhdm9pZCBtYXRjaGluZyBwYXR0ZXJucyB0aGF0IGFyZSBub3RcbiAgLy8gUGVybCBhdCBhbGwgbGlrZSAkaWRlbnQkLCBAaWRlbnRALCBldGMuXG4gIGNvbnN0IE5PVF9QRVJMX0VUQyA9IC8oPyFbQS1aYS16MC05XSkoPyFbJF0pLztcbiAgY29uc3QgSURFTlRfUkUgPSByZWdleC5jb25jYXQoXG4gICAgL1thLXpBLVpfXFx4N2YtXFx4ZmZdW2EtekEtWjAtOV9cXHg3Zi1cXHhmZl0qLyxcbiAgICBOT1RfUEVSTF9FVEMpO1xuICAvLyBXaWxsIG5vdCBkZXRlY3QgY2FtZWxDYXNlIGNsYXNzZXNcbiAgY29uc3QgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSA9IHJlZ2V4LmNvbmNhdChcbiAgICAvKFxcXFw/W0EtWl1bYS16MC05X1xceDdmLVxceGZmXSt8XFxcXD9bQS1aXSsoPz1bQS1aXVthLXowLTlfXFx4N2YtXFx4ZmZdKSl7MSx9LyxcbiAgICBOT1RfUEVSTF9FVEMpO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBzY29wZTogJ3ZhcmlhYmxlJyxcbiAgICBtYXRjaDogJ1xcXFwkKycgKyBJREVOVF9SRSxcbiAgfTtcbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIHNjb3BlOiAnbWV0YScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC88XFw/cGhwLywgcmVsZXZhbmNlOiAxMCB9LCAvLyBib29zdCBmb3Igb2J2aW91cyBQSFBcbiAgICAgIHsgYmVnaW46IC88XFw/PS8gfSxcbiAgICAgIC8vIGxlc3MgcmVsZXZhbnQgcGVyIFBTUi0xIHdoaWNoIHNheXMgbm90IHRvIHVzZSBzaG9ydC10YWdzXG4gICAgICB7IGJlZ2luOiAvPFxcPy8sIHJlbGV2YW5jZTogMC4xIH0sXG4gICAgICB7IGJlZ2luOiAvXFw/Pi8gfSAvLyBlbmQgcGhwIHRhZ1xuICAgIF1cbiAgfTtcbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgc2NvcGU6ICdzdWJzdCcsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgYmVnaW46IC9cXCRcXHcrLyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xce1xcJC8sXG4gICAgICAgIGVuZDogL1xcfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNJTkdMRV9RVU9URUQgPSBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwsIH0pO1xuICBjb25zdCBET1VCTEVfUVVPVEVEID0gaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICBpbGxlZ2FsOiBudWxsLFxuICAgIGNvbnRhaW5zOiBobGpzLlFVT1RFX1NUUklOR19NT0RFLmNvbnRhaW5zLmNvbmNhdChTVUJTVCksXG4gIH0pO1xuXG4gIGNvbnN0IEhFUkVET0MgPSB7XG4gICAgYmVnaW46IC88PDxbIFxcdF0qKD86KFxcdyspfFwiKFxcdyspXCIpXFxuLyxcbiAgICBlbmQ6IC9bIFxcdF0qKFxcdyspXFxiLyxcbiAgICBjb250YWluczogaGxqcy5RVU9URV9TVFJJTkdfTU9ERS5jb250YWlucy5jb25jYXQoU1VCU1QpLFxuICAgICdvbjpiZWdpbic6IChtLCByZXNwKSA9PiB7IHJlc3AuZGF0YS5fYmVnaW5NYXRjaCA9IG1bMV0gfHwgbVsyXTsgfSxcbiAgICAnb246ZW5kJzogKG0sIHJlc3ApID0+IHsgaWYgKHJlc3AuZGF0YS5fYmVnaW5NYXRjaCAhPT0gbVsxXSkgcmVzcC5pZ25vcmVNYXRjaCgpOyB9LFxuICB9O1xuXG4gIGNvbnN0IE5PV0RPQyA9IGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgIGJlZ2luOiAvPDw8WyBcXHRdKicoXFx3KyknXFxuLyxcbiAgICBlbmQ6IC9bIFxcdF0qKFxcdyspXFxiLyxcbiAgfSk7XG4gIC8vIGxpc3Qgb2YgdmFsaWQgd2hpdGVzcGFjZXMgYmVjYXVzZSBub24tYnJlYWtpbmcgc3BhY2UgbWlnaHQgYmUgcGFydCBvZiBhIElERU5UX1JFXG4gIGNvbnN0IFdISVRFU1BBQ0UgPSAnWyBcXHRcXG5dJztcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgRE9VQkxFX1FVT1RFRCxcbiAgICAgIFNJTkdMRV9RVU9URUQsXG4gICAgICBIRVJFRE9DLFxuICAgICAgTk9XRE9DXG4gICAgXVxuICB9O1xuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgc2NvcGU6ICdudW1iZXInLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiBgXFxcXGIwW2JCXVswMV0rKD86X1swMV0rKSpcXFxcYmAgfSwgLy8gQmluYXJ5IHcvIHVuZGVyc2NvcmUgc3VwcG9ydFxuICAgICAgeyBiZWdpbjogYFxcXFxiMFtvT11bMC03XSsoPzpfWzAtN10rKSpcXFxcYmAgfSwgLy8gT2N0YWxzIHcvIHVuZGVyc2NvcmUgc3VwcG9ydFxuICAgICAgeyBiZWdpbjogYFxcXFxiMFt4WF1bXFxcXGRhLWZBLUZdKyg/Ol9bXFxcXGRhLWZBLUZdKykqXFxcXGJgIH0sIC8vIEhleCB3LyB1bmRlcnNjb3JlIHN1cHBvcnRcbiAgICAgIC8vIERlY2ltYWxzIHcvIHVuZGVyc2NvcmUgc3VwcG9ydCwgd2l0aCBvcHRpb25hbCBmcmFnbWVudHMgYW5kIHNjaWVudGlmaWMgZXhwb25lbnQgKGUpIHN1ZmZpeC5cbiAgICAgIHsgYmVnaW46IGAoPzpcXFxcYlxcXFxkKyg/Ol9cXFxcZCspKihcXFxcLig/OlxcXFxkKyg/Ol9cXFxcZCspKikpP3xcXFxcQlxcXFwuXFxcXGQrKSg/OltlRV1bKy1dP1xcXFxkKyk/YCB9XG4gICAgXSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiLFxuICAgIFwidHJ1ZVwiXG4gIF07XG4gIGNvbnN0IEtXUyA9IFtcbiAgICAvLyBNYWdpYyBjb25zdGFudHM6XG4gICAgLy8gPGh0dHBzOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2xhbmd1YWdlLmNvbnN0YW50cy5wcmVkZWZpbmVkLnBocD5cbiAgICBcIl9fQ0xBU1NfX1wiLFxuICAgIFwiX19ESVJfX1wiLFxuICAgIFwiX19GSUxFX19cIixcbiAgICBcIl9fRlVOQ1RJT05fX1wiLFxuICAgIFwiX19DT01QSUxFUl9IQUxUX09GRlNFVF9fXCIsXG4gICAgXCJfX0xJTkVfX1wiLFxuICAgIFwiX19NRVRIT0RfX1wiLFxuICAgIFwiX19OQU1FU1BBQ0VfX1wiLFxuICAgIFwiX19UUkFJVF9fXCIsXG4gICAgLy8gRnVuY3Rpb24gdGhhdCBsb29rIGxpa2UgbGFuZ3VhZ2UgY29uc3RydWN0IG9yIGxhbmd1YWdlIGNvbnN0cnVjdCB0aGF0IGxvb2sgbGlrZSBmdW5jdGlvbjpcbiAgICAvLyBMaXN0IG9mIGtleXdvcmRzIHRoYXQgbWF5IG5vdCByZXF1aXJlIHBhcmVudGhlc2lzXG4gICAgXCJkaWVcIixcbiAgICBcImVjaG9cIixcbiAgICBcImV4aXRcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImluY2x1ZGVfb25jZVwiLFxuICAgIFwicHJpbnRcIixcbiAgICBcInJlcXVpcmVcIixcbiAgICBcInJlcXVpcmVfb25jZVwiLFxuICAgIC8vIFRoZXNlIGFyZSBub3QgbGFuZ3VhZ2UgY29uc3RydWN0IChmdW5jdGlvbikgYnV0IG9wZXJhdGUgb24gdGhlIGN1cnJlbnRseS1leGVjdXRpbmcgZnVuY3Rpb24gYW5kIGNhbiBhY2Nlc3MgdGhlIGN1cnJlbnQgc3ltYm9sIHRhYmxlXG4gICAgLy8gJ2NvbXBhY3QgZXh0cmFjdCBmdW5jX2dldF9hcmcgZnVuY19nZXRfYXJncyBmdW5jX251bV9hcmdzIGdldF9jYWxsZWRfY2xhc3MgZ2V0X3BhcmVudF9jbGFzcyAnICtcbiAgICAvLyBPdGhlciBrZXl3b3JkczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQucGhwPlxuICAgIC8vIDxodHRwczovL3d3dy5waHAubmV0L21hbnVhbC9lbi9sYW5ndWFnZS50eXBlcy50eXBlLWp1Z2dsaW5nLnBocD5cbiAgICBcImFycmF5XCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYmluYXJ5XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJicmVha1wiLFxuICAgIFwiY2FsbGFibGVcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY2xvbmVcIixcbiAgICBcImNvbnN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZG9cIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZWxzZWlmXCIsXG4gICAgXCJlbXB0eVwiLFxuICAgIFwiZW5kZGVjbGFyZVwiLFxuICAgIFwiZW5kZm9yXCIsXG4gICAgXCJlbmRmb3JlYWNoXCIsXG4gICAgXCJlbmRpZlwiLFxuICAgIFwiZW5kc3dpdGNoXCIsXG4gICAgXCJlbmR3aGlsZVwiLFxuICAgIFwiZW51bVwiLFxuICAgIFwiZXZhbFwiLFxuICAgIFwiZXh0ZW5kc1wiLFxuICAgIFwiZmluYWxcIixcbiAgICBcImZpbmFsbHlcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcImZyb21cIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxlbWVudHNcIixcbiAgICBcImluc3RhbmNlb2ZcIixcbiAgICBcImluc3RlYWRvZlwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRlZ2VyXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcImlzc2V0XCIsXG4gICAgXCJpdGVyYWJsZVwiLFxuICAgIFwibGlzdFwiLFxuICAgIFwibWF0Y2h8MFwiLFxuICAgIFwibWl4ZWRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibmV2ZXJcIixcbiAgICBcIm9iamVjdFwiLFxuICAgIFwib3JcIixcbiAgICBcInByaXZhdGVcIixcbiAgICBcInByb3RlY3RlZFwiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyZWFkb25seVwiLFxuICAgIFwicmVhbFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwidGhyb3dcIixcbiAgICBcInRyYWl0XCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInVuc2V0XCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInZhclwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcInhvclwiLFxuICAgIFwieWllbGRcIlxuICBdO1xuXG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICAvLyBTdGFuZGFyZCBQSFAgbGlicmFyeTpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5zcGwucGhwPlxuICAgIFwiRXJyb3J8MFwiLFxuICAgIFwiQXBwZW5kSXRlcmF0b3JcIixcbiAgICBcIkFyZ3VtZW50Q291bnRFcnJvclwiLFxuICAgIFwiQXJpdGhtZXRpY0Vycm9yXCIsXG4gICAgXCJBcnJheUl0ZXJhdG9yXCIsXG4gICAgXCJBcnJheU9iamVjdFwiLFxuICAgIFwiQXNzZXJ0aW9uRXJyb3JcIixcbiAgICBcIkJhZEZ1bmN0aW9uQ2FsbEV4Y2VwdGlvblwiLFxuICAgIFwiQmFkTWV0aG9kQ2FsbEV4Y2VwdGlvblwiLFxuICAgIFwiQ2FjaGluZ0l0ZXJhdG9yXCIsXG4gICAgXCJDYWxsYmFja0ZpbHRlckl0ZXJhdG9yXCIsXG4gICAgXCJDb21waWxlRXJyb3JcIixcbiAgICBcIkNvdW50YWJsZVwiLFxuICAgIFwiRGlyZWN0b3J5SXRlcmF0b3JcIixcbiAgICBcIkRpdmlzaW9uQnlaZXJvRXJyb3JcIixcbiAgICBcIkRvbWFpbkV4Y2VwdGlvblwiLFxuICAgIFwiRW1wdHlJdGVyYXRvclwiLFxuICAgIFwiRXJyb3JFeGNlcHRpb25cIixcbiAgICBcIkV4Y2VwdGlvblwiLFxuICAgIFwiRmlsZXN5c3RlbUl0ZXJhdG9yXCIsXG4gICAgXCJGaWx0ZXJJdGVyYXRvclwiLFxuICAgIFwiR2xvYkl0ZXJhdG9yXCIsXG4gICAgXCJJbmZpbml0ZUl0ZXJhdG9yXCIsXG4gICAgXCJJbnZhbGlkQXJndW1lbnRFeGNlcHRpb25cIixcbiAgICBcIkl0ZXJhdG9ySXRlcmF0b3JcIixcbiAgICBcIkxlbmd0aEV4Y2VwdGlvblwiLFxuICAgIFwiTGltaXRJdGVyYXRvclwiLFxuICAgIFwiTG9naWNFeGNlcHRpb25cIixcbiAgICBcIk11bHRpcGxlSXRlcmF0b3JcIixcbiAgICBcIk5vUmV3aW5kSXRlcmF0b3JcIixcbiAgICBcIk91dE9mQm91bmRzRXhjZXB0aW9uXCIsXG4gICAgXCJPdXRPZlJhbmdlRXhjZXB0aW9uXCIsXG4gICAgXCJPdXRlckl0ZXJhdG9yXCIsXG4gICAgXCJPdmVyZmxvd0V4Y2VwdGlvblwiLFxuICAgIFwiUGFyZW50SXRlcmF0b3JcIixcbiAgICBcIlBhcnNlRXJyb3JcIixcbiAgICBcIlJhbmdlRXhjZXB0aW9uXCIsXG4gICAgXCJSZWN1cnNpdmVBcnJheUl0ZXJhdG9yXCIsXG4gICAgXCJSZWN1cnNpdmVDYWNoaW5nSXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZUNhbGxiYWNrRmlsdGVySXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZURpcmVjdG9yeUl0ZXJhdG9yXCIsXG4gICAgXCJSZWN1cnNpdmVGaWx0ZXJJdGVyYXRvclwiLFxuICAgIFwiUmVjdXJzaXZlSXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZUl0ZXJhdG9ySXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZVJlZ2V4SXRlcmF0b3JcIixcbiAgICBcIlJlY3Vyc2l2ZVRyZWVJdGVyYXRvclwiLFxuICAgIFwiUmVnZXhJdGVyYXRvclwiLFxuICAgIFwiUnVudGltZUV4Y2VwdGlvblwiLFxuICAgIFwiU2Vla2FibGVJdGVyYXRvclwiLFxuICAgIFwiU3BsRG91Ymx5TGlua2VkTGlzdFwiLFxuICAgIFwiU3BsRmlsZUluZm9cIixcbiAgICBcIlNwbEZpbGVPYmplY3RcIixcbiAgICBcIlNwbEZpeGVkQXJyYXlcIixcbiAgICBcIlNwbEhlYXBcIixcbiAgICBcIlNwbE1heEhlYXBcIixcbiAgICBcIlNwbE1pbkhlYXBcIixcbiAgICBcIlNwbE9iamVjdFN0b3JhZ2VcIixcbiAgICBcIlNwbE9ic2VydmVyXCIsXG4gICAgXCJTcGxQcmlvcml0eVF1ZXVlXCIsXG4gICAgXCJTcGxRdWV1ZVwiLFxuICAgIFwiU3BsU3RhY2tcIixcbiAgICBcIlNwbFN1YmplY3RcIixcbiAgICBcIlNwbFRlbXBGaWxlT2JqZWN0XCIsXG4gICAgXCJUeXBlRXJyb3JcIixcbiAgICBcIlVuZGVyZmxvd0V4Y2VwdGlvblwiLFxuICAgIFwiVW5leHBlY3RlZFZhbHVlRXhjZXB0aW9uXCIsXG4gICAgXCJVbmhhbmRsZWRNYXRjaEVycm9yXCIsXG4gICAgLy8gUmVzZXJ2ZWQgaW50ZXJmYWNlczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuaW50ZXJmYWNlcy5waHA+XG4gICAgXCJBcnJheUFjY2Vzc1wiLFxuICAgIFwiQmFja2VkRW51bVwiLFxuICAgIFwiQ2xvc3VyZVwiLFxuICAgIFwiRmliZXJcIixcbiAgICBcIkdlbmVyYXRvclwiLFxuICAgIFwiSXRlcmF0b3JcIixcbiAgICBcIkl0ZXJhdG9yQWdncmVnYXRlXCIsXG4gICAgXCJTZXJpYWxpemFibGVcIixcbiAgICBcIlN0cmluZ2FibGVcIixcbiAgICBcIlRocm93YWJsZVwiLFxuICAgIFwiVHJhdmVyc2FibGVcIixcbiAgICBcIlVuaXRFbnVtXCIsXG4gICAgXCJXZWFrUmVmZXJlbmNlXCIsXG4gICAgXCJXZWFrTWFwXCIsXG4gICAgLy8gUmVzZXJ2ZWQgY2xhc3NlczpcbiAgICAvLyA8aHR0cHM6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vcmVzZXJ2ZWQuY2xhc3Nlcy5waHA+XG4gICAgXCJEaXJlY3RvcnlcIixcbiAgICBcIl9fUEhQX0luY29tcGxldGVfQ2xhc3NcIixcbiAgICBcInBhcmVudFwiLFxuICAgIFwicGhwX3VzZXJfZmlsdGVyXCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0ZENsYXNzXCJcbiAgXTtcblxuICAvKiogRHVhbC1jYXNlIGtleXdvcmRzXG4gICAqXG4gICAqIFtcInRoZW5cIixcIkZJTEVcIl0gPT5cbiAgICogICAgIFtcInRoZW5cIiwgXCJUSEVOXCIsIFwiRklMRVwiLCBcImZpbGVcIl1cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gaXRlbXMgKi9cbiAgY29uc3QgZHVhbENhc2UgPSAoaXRlbXMpID0+IHtcbiAgICAvKiogQHR5cGUgc3RyaW5nW10gKi9cbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICBpZiAoaXRlbS50b0xvd2VyQ2FzZSgpID09PSBpdGVtKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0udG9VcHBlckNhc2UoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChpdGVtLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDogS1dTLFxuICAgIGxpdGVyYWw6IGR1YWxDYXNlKExJVEVSQUxTKSxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICB9O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBpdGVtcyAqL1xuICBjb25zdCBub3JtYWxpemVLZXl3b3JkcyA9IChpdGVtcykgPT4ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5yZXBsYWNlKC9cXHxcXGQrJC8sIFwiXCIpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IENPTlNUUlVDVE9SX0NBTEwgPSB7IHZhcmlhbnRzOiBbXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgL25ldy8sXG4gICAgICAgIHJlZ2V4LmNvbmNhdChXSElURVNQQUNFLCBcIitcIiksXG4gICAgICAgIC8vIHRvIHByZXZlbnQgYnVpbHQgaW5zIGZyb20gYmVpbmcgY29uZnVzZWQgYXMgdGhlIGNsYXNzIGNvbnN0cnVjdG9yIGNhbGxcbiAgICAgICAgcmVnZXguY29uY2F0KFwiKD8hXCIsIG5vcm1hbGl6ZUtleXdvcmRzKEJVSUxUX0lOUykuam9pbihcIlxcXFxifFwiKSwgXCJcXFxcYilcIiksXG4gICAgICAgIFBBU0NBTF9DQVNFX0NMQVNTX05BTUVfUkUsXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHtcbiAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgIDQ6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIH0sXG4gICAgfVxuICBdIH07XG5cbiAgY29uc3QgQ09OU1RBTlRfUkVGRVJFTkNFID0gcmVnZXguY29uY2F0KElERU5UX1JFLCBcIlxcXFxiKD8hXFxcXCgpXCIpO1xuXG4gIGNvbnN0IExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIG1hdGNoOiBbXG4gICAgICAgIHJlZ2V4LmNvbmNhdChcbiAgICAgICAgICAvOjovLFxuICAgICAgICAgIHJlZ2V4Lmxvb2thaGVhZCgvKD8hY2xhc3NcXGIpLylcbiAgICAgICAgKSxcbiAgICAgICAgQ09OU1RBTlRfUkVGRVJFTkNFLFxuICAgICAgXSxcbiAgICAgIHNjb3BlOiB7IDI6IFwidmFyaWFibGUuY29uc3RhbnRcIiwgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG1hdGNoOiBbXG4gICAgICAgIC86Oi8sXG4gICAgICAgIC9jbGFzcy8sXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHsgMjogXCJ2YXJpYWJsZS5sYW5ndWFnZVwiLCB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgcmVnZXguY29uY2F0KFxuICAgICAgICAgIC86Oi8sXG4gICAgICAgICAgcmVnZXgubG9va2FoZWFkKC8oPyFjbGFzc1xcYikvKVxuICAgICAgICApLFxuICAgICAgICBDT05TVEFOVF9SRUZFUkVOQ0UsXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHtcbiAgICAgICAgMTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgICAgICAzOiBcInZhcmlhYmxlLmNvbnN0YW50XCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgcmVnZXguY29uY2F0KFxuICAgICAgICAgIFwiOjpcIixcbiAgICAgICAgICByZWdleC5sb29rYWhlYWQoLyg/IWNsYXNzXFxiKS8pXG4gICAgICAgICksXG4gICAgICBdLFxuICAgICAgc2NvcGU6IHsgMTogXCJ0aXRsZS5jbGFzc1wiLCB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbWF0Y2g6IFtcbiAgICAgICAgUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRSxcbiAgICAgICAgLzo6LyxcbiAgICAgICAgL2NsYXNzLyxcbiAgICAgIF0sXG4gICAgICBzY29wZToge1xuICAgICAgICAxOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICAgIDM6IFwidmFyaWFibGUubGFuZ3VhZ2VcIixcbiAgICAgIH0sXG4gICAgfVxuICBdIH07XG5cbiAgY29uc3QgTkFNRURfQVJHVU1FTlQgPSB7XG4gICAgc2NvcGU6ICdhdHRyJyxcbiAgICBtYXRjaDogcmVnZXguY29uY2F0KElERU5UX1JFLCByZWdleC5sb29rYWhlYWQoJzonKSwgcmVnZXgubG9va2FoZWFkKC8oPyE6OikvKSksXG4gIH07XG4gIGNvbnN0IFBBUkFNU19NT0RFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIE5BTUVEX0FSR1VNRU5ULFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBMRUZUX0FORF9SSUdIVF9TSURFX09GX0RPVUJMRV9DT0xPTixcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVIsXG4gICAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICAgIF0sXG4gIH07XG4gIGNvbnN0IEZVTkNUSU9OX0lOVk9LRSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXGIvLFxuICAgICAgLy8gdG8gcHJldmVudCBrZXl3b3JkcyBmcm9tIGJlaW5nIGNvbmZ1c2VkIGFzIHRoZSBmdW5jdGlvbiB0aXRsZVxuICAgICAgcmVnZXguY29uY2F0KFwiKD8hZm5cXFxcYnxmdW5jdGlvblxcXFxifFwiLCBub3JtYWxpemVLZXl3b3JkcyhLV1MpLmpvaW4oXCJcXFxcYnxcIiksIFwifFwiLCBub3JtYWxpemVLZXl3b3JkcyhCVUlMVF9JTlMpLmpvaW4oXCJcXFxcYnxcIiksIFwiXFxcXGIpXCIpLFxuICAgICAgSURFTlRfUkUsXG4gICAgICByZWdleC5jb25jYXQoV0hJVEVTUEFDRSwgXCIqXCIpLFxuICAgICAgcmVnZXgubG9va2FoZWFkKC8oPz1cXCgpLylcbiAgICBdLFxuICAgIHNjb3BlOiB7IDM6IFwidGl0bGUuZnVuY3Rpb24uaW52b2tlXCIsIH0sXG4gICAgY29udGFpbnM6IFsgUEFSQU1TX01PREUgXVxuICB9O1xuICBQQVJBTVNfTU9ERS5jb250YWlucy5wdXNoKEZVTkNUSU9OX0lOVk9LRSk7XG5cbiAgY29uc3QgQVRUUklCVVRFX0NPTlRBSU5TID0gW1xuICAgIE5BTUVEX0FSR1VNRU5ULFxuICAgIExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OLFxuICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICBdO1xuXG4gIGNvbnN0IEFUVFJJQlVURVMgPSB7XG4gICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvI1xcW1xccyovLCBQQVNDQUxfQ0FTRV9DTEFTU19OQU1FX1JFKSxcbiAgICBiZWdpblNjb3BlOiBcIm1ldGFcIixcbiAgICBlbmQ6IC9dLyxcbiAgICBlbmRTY29wZTogXCJtZXRhXCIsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgICAga2V5d29yZDogW1xuICAgICAgICAnbmV3JyxcbiAgICAgICAgJ2FycmF5JyxcbiAgICAgIF1cbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgICAgZW5kOiAvXS8sXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICAgICAga2V5d29yZDogW1xuICAgICAgICAgICAgJ25ldycsXG4gICAgICAgICAgICAnYXJyYXknLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgLi4uQVRUUklCVVRFX0NPTlRBSU5TLFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLi4uQVRUUklCVVRFX0NPTlRBSU5TLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBtYXRjaDogUEFTQ0FMX0NBU0VfQ0xBU1NfTkFNRV9SRVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGNhc2VfaW5zZW5zaXRpdmU6IGZhbHNlLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFUyxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy8vJywgJyQnKSxcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJy9cXFxcKicsXG4gICAgICAgICdcXFxcKi8nLFxuICAgICAgICB7IGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgbWF0Y2g6ICdAW0EtWmEtel0rJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBtYXRjaDogL19faGFsdF9jb21waWxlclxcKFxcKTsvLFxuICAgICAgICBrZXl3b3JkczogJ19faGFsdF9jb21waWxlcicsXG4gICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgIHNjb3BlOiBcImNvbW1lbnRcIixcbiAgICAgICAgICBlbmQ6IGhsanMuTUFUQ0hfTk9USElOR19SRSxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtYXRjaDogL1xcPz4vLFxuICAgICAgICAgICAgICBzY29wZTogXCJtZXRhXCIsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBQUkVQUk9DRVNTT1IsXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUubGFuZ3VhZ2UnLFxuICAgICAgICBtYXRjaDogL1xcJHRoaXNcXGIvXG4gICAgICB9LFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBGVU5DVElPTl9JTlZPS0UsXG4gICAgICBMRUZUX0FORF9SSUdIVF9TSURFX09GX0RPVUJMRV9DT0xPTixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY29uc3QvLFxuICAgICAgICAgIC9cXHMvLFxuICAgICAgICAgIElERU5UX1JFLFxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidmFyaWFibGUuY29uc3RhbnRcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBDT05TVFJVQ1RPUl9DQUxMLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZm4gZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9bO3tdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1skJVxcXFxbXScsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgeyBiZWdpbktleXdvcmRzOiAndXNlJywgfSxcbiAgICAgICAgICBobGpzLlVOREVSU0NPUkVfVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJz0+JywgLy8gTm8gbWFya3VwLCBqdXN0IGEgcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNjb3BlOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgICAgIExFRlRfQU5EX1JJR0hUX1NJREVfT0ZfRE9VQkxFX0NPTE9OLFxuICAgICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIE5VTUJFUlxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnY2xhc3MnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6IFwiZW51bVwiLFxuICAgICAgICAgICAgaWxsZWdhbDogL1soJFwiXS9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luS2V5d29yZHM6IFwiY2xhc3MgaW50ZXJmYWNlIHRyYWl0XCIsXG4gICAgICAgICAgICBpbGxlZ2FsOiAvWzooJFwiXS9cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGJvdGggdXNlIGFuZCBuYW1lc3BhY2Ugc3RpbGwgdXNlIFwib2xkIHN0eWxlXCIgcnVsZXMgKHZzIG11bHRpLW1hdGNoKVxuICAgICAgLy8gYmVjYXVzZSB0aGUgbmFtZXNwYWNlIG5hbWUgY2FuIGluY2x1ZGUgYFxcYCBhbmQgd2Ugc3RpbGwgd2FudCBlYWNoXG4gICAgICAvLyBlbGVtZW50IHRvIGJlIHRyZWF0ZWQgYXMgaXRzIG93biAqaW5kaXZpZHVhbCogdGl0bGVcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ25hbWVzcGFjZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGlsbGVnYWw6IC9bLiddLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5pbmhlcml0KGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLCB7IHNjb3BlOiBcInRpdGxlLmNsYXNzXCIgfSkgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3VzZScsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgZW5kOiAnOycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gVE9ETzogdGl0bGUuZnVuY3Rpb24gdnMgdGl0bGUuY2xhc3NcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtYXRjaDogL1xcYihhc3xjb25zdHxmdW5jdGlvbilcXGIvLFxuICAgICAgICAgICAgc2NvcGU6IFwia2V5d29yZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICAvLyBUT0RPOiBjb3VsZCBiZSB0aXRsZS5jbGFzcyBvciB0aXRsZS5mdW5jdGlvblxuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVIsXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBocDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFBIUCBUZW1wbGF0ZVxuUmVxdWlyZXM6IHhtbC5qcywgcGhwLmpzXG5BdXRob3I6IEpvc2ggR29lYmVsIDxoZWxsb0Bqb3NoZ29lYmVsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBocC5uZXRcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHBocFRlbXBsYXRlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBcIlBIUCB0ZW1wbGF0ZVwiLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLzxcXD8ocGhwfD0pPy8sXG4gICAgICAgIGVuZDogL1xcPz4vLFxuICAgICAgICBzdWJMYW5ndWFnZTogJ3BocCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0aGUgcGhwIGNsb3NpbmcgdGFnID8+IHRvIGNsb3NlIHRoZSBQSFAgYmxvY2sgd2hlblxuICAgICAgICAgIC8vIGluc2lkZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBibG9ja3M6XG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICcvXFxcXConLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCovJyxcbiAgICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYlwiJyxcbiAgICAgICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgICAgIHNraXA6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnYlxcJycsXG4gICAgICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwge1xuICAgICAgICAgICAgaWxsZWdhbDogbnVsbCxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBudWxsLFxuICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7XG4gICAgICAgICAgICBpbGxlZ2FsOiBudWxsLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgICAgICAgICAgY29udGFpbnM6IG51bGwsXG4gICAgICAgICAgICBza2lwOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwaHBUZW1wbGF0ZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFBsYWluIHRleHRcbkF1dGhvcjogRWdvciBSb2dvdiAoZS5yb2dvdkBwb3N0Z3Jlc3Byby5ydSlcbkRlc2NyaXB0aW9uOiBQbGFpbiB0ZXh0IHdpdGhvdXQgYW55IGhpZ2hsaWdodGluZy5cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHBsYWludGV4dChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1BsYWluIHRleHQnLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICd0ZXh0JyxcbiAgICAgICd0eHQnXG4gICAgXSxcbiAgICBkaXNhYmxlQXV0b2RldGVjdDogdHJ1ZVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBsYWludGV4dDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFBvbnlcbkF1dGhvcjogSm9lIEVsaSBNY0lsdmFpbiA8am9lLmVsaS5tYWNAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFBvbnkgaXMgYW4gb3Blbi1zb3VyY2UsIG9iamVjdC1vcmllbnRlZCwgYWN0b3ItbW9kZWwsXG4gICAgICAgICAgICAgY2FwYWJpbGl0aWVzLXNlY3VyZSwgaGlnaCBwZXJmb3JtYW5jZSBwcm9ncmFtbWluZyBsYW5ndWFnZS5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnBvbnlsYW5nLmlvXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG5mdW5jdGlvbiBwb255KGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAga2V5d29yZDpcbiAgICAgICdhY3RvciBhZGRyZXNzb2YgYW5kIGFzIGJlIGJyZWFrIGNsYXNzIGNvbXBpbGVfZXJyb3IgY29tcGlsZV9pbnRyaW5zaWMgJ1xuICAgICAgKyAnY29uc3VtZSBjb250aW51ZSBkZWxlZ2F0ZSBkaWdlc3RvZiBkbyBlbHNlIGVsc2VpZiBlbWJlZCBlbmQgZXJyb3IgJ1xuICAgICAgKyAnZm9yIGZ1biBpZiBpZmRlZiBpbiBpbnRlcmZhY2UgaXMgaXNudCBsYW1iZGEgbGV0IG1hdGNoIG5ldyBub3Qgb2JqZWN0ICdcbiAgICAgICsgJ29yIHByaW1pdGl2ZSByZWNvdmVyIHJlcGVhdCByZXR1cm4gc3RydWN0IHRoZW4gdHJhaXQgdHJ5IHR5cGUgdW50aWwgJ1xuICAgICAgKyAndXNlIHZhciB3aGVyZSB3aGlsZSB3aXRoIHhvcicsXG4gICAgbWV0YTpcbiAgICAgICdpc28gdmFsIHRhZyB0cm4gYm94IHJlZicsXG4gICAgbGl0ZXJhbDpcbiAgICAgICd0aGlzIGZhbHNlIHRydWUnXG4gIH07XG5cbiAgY29uc3QgVFJJUExFX1FVT1RFX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcIlwiXCInLFxuICAgIGVuZDogJ1wiXCJcIicsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIGNvbnN0IFFVT1RFX1NUUklOR19NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcIicsXG4gICAgZW5kOiAnXCInLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gIH07XG5cbiAgY29uc3QgU0lOR0xFX1FVT1RFX0NIQVJfTU9ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFwnJyxcbiAgICBlbmQ6ICdcXCcnLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFRZUEVfTkFNRSA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiXz9bQS1aXVtcXFxcd10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBQUklNRURfTkFNRSA9IHtcbiAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXCcnLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUl9NT0RFID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICcoLT8pKFxcXFxiMFt4WF1bYS1mQS1GMC05XSt8XFxcXGIwW2JCXVswMV0rfChcXFxcYlxcXFxkKyhfXFxcXGQrKT8oXFxcXC5cXFxcZCopP3xcXFxcLlxcXFxkKykoW2VFXVstK10/XFxcXGQrKT8pJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICAvKipcbiAgICogVGhlIGBGVU5DVElPTmAgYW5kIGBDTEFTU2AgbW9kZXMgd2VyZSBpbnRlbnRpb25hbGx5IHJlbW92ZWQgdG8gc2ltcGxpZnlcbiAgICogaGlnaGxpZ2h0aW5nIGFuZCBmaXggY2FzZXMgbGlrZVxuICAgKiBgYGBcbiAgICogaW50ZXJmYWNlIEl0ZXJhdG9yW0E6IEFdXG4gICAqICAgZnVuIGhhc19uZXh0KCk6IEJvb2xcbiAgICogICBmdW4gbmV4dCgpOiBBP1xuICAgKiBgYGBcbiAgICogd2hlcmUgaXQgaXMgdmFsaWQgdG8gaGF2ZSBhIGZ1bmN0aW9uIGhlYWQgd2l0aG91dCBhIGJvZHlcbiAgICovXG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUG9ueScsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUWVBFX05BTUUsXG4gICAgICBUUklQTEVfUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBRVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIFNJTkdMRV9RVU9URV9DSEFSX01PREUsXG4gICAgICBQUklNRURfTkFNRSxcbiAgICAgIE5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwb255O1xuIiwgIi8qXG5MYW5ndWFnZTogUG93ZXJTaGVsbFxuRGVzY3JpcHRpb246IFBvd2VyU2hlbGwgaXMgYSB0YXNrLWJhc2VkIGNvbW1hbmQtbGluZSBzaGVsbCBhbmQgc2NyaXB0aW5nIGxhbmd1YWdlIGJ1aWx0IG9uIC5ORVQuXG5BdXRob3I6IERhdmlkIE1vaHVuZHJvIDxkYXZpZEBtb2h1bmRyby5jb20+XG5Db250cmlidXRvcnM6IE5pY2hvbGFzIEJsdW1oYXJkdCA8bmJsdW1oYXJkdEBuYmx1bWhhcmR0LmNvbT4sIFZpY3RvciBaaG91IDxPaUNNdWRraXBzQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4sIE5pY29sYXMgTGUgR2FsbCA8Y29udGFjdEBubGVnYWxsLmZyPlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcG93ZXJzaGVsbC9cbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbmZ1bmN0aW9uIHBvd2Vyc2hlbGwoaGxqcykge1xuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcInN0cmluZ1wiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiYnl0ZVwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJzaW5nbGVcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiRGF0ZVRpbWVcIixcbiAgICBcInhtbFwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImhhc2h0YWJsZVwiLFxuICAgIFwidm9pZFwiXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvcG93ZXJzaGVsbC9zY3JpcHRpbmcvZGV2ZWxvcGVyL2NtZGxldC9hcHByb3ZlZC12ZXJicy1mb3Itd2luZG93cy1wb3dlcnNoZWxsLWNvbW1hbmRzXG4gIGNvbnN0IFZBTElEX1ZFUkJTID1cbiAgICAnQWRkfENsZWFyfENsb3NlfENvcHl8RW50ZXJ8RXhpdHxGaW5kfEZvcm1hdHxHZXR8SGlkZXxKb2lufExvY2t8J1xuICAgICsgJ01vdmV8TmV3fE9wZW58T3B0aW1pemV8UG9wfFB1c2h8UmVkb3xSZW1vdmV8UmVuYW1lfFJlc2V0fFJlc2l6ZXwnXG4gICAgKyAnU2VhcmNofFNlbGVjdHxTZXR8U2hvd3xTa2lwfFNwbGl0fFN0ZXB8U3dpdGNofFVuZG98VW5sb2NrfCdcbiAgICArICdXYXRjaHxCYWNrdXB8Q2hlY2twb2ludHxDb21wYXJlfENvbXByZXNzfENvbnZlcnR8Q29udmVydEZyb218J1xuICAgICsgJ0NvbnZlcnRUb3xEaXNtb3VudHxFZGl0fEV4cGFuZHxFeHBvcnR8R3JvdXB8SW1wb3J0fEluaXRpYWxpemV8J1xuICAgICsgJ0xpbWl0fE1lcmdlfE1vdW50fE91dHxQdWJsaXNofFJlc3RvcmV8U2F2ZXxTeW5jfFVucHVibGlzaHxVcGRhdGV8J1xuICAgICsgJ0FwcHJvdmV8QXNzZXJ0fEJ1aWxkfENvbXBsZXRlfENvbmZpcm18RGVueXxEZXBsb3l8RGlzYWJsZXxFbmFibGV8SW5zdGFsbHxJbnZva2V8J1xuICAgICsgJ1JlZ2lzdGVyfFJlcXVlc3R8UmVzdGFydHxSZXN1bWV8U3RhcnR8U3RvcHxTdWJtaXR8U3VzcGVuZHxVbmluc3RhbGx8J1xuICAgICsgJ1VucmVnaXN0ZXJ8V2FpdHxEZWJ1Z3xNZWFzdXJlfFBpbmd8UmVwYWlyfFJlc29sdmV8VGVzdHxUcmFjZXxDb25uZWN0fCdcbiAgICArICdEaXNjb25uZWN0fFJlYWR8UmVjZWl2ZXxTZW5kfFdyaXRlfEJsb2NrfEdyYW50fFByb3RlY3R8UmV2b2tlfFVuYmxvY2t8J1xuICAgICsgJ1VucHJvdGVjdHxVc2V8Rm9yRWFjaHxTb3J0fFRlZXxXaGVyZSc7XG5cbiAgY29uc3QgQ09NUEFSSVNPTl9PUEVSQVRPUlMgPVxuICAgICctYW5kfC1hc3wtYmFuZHwtYm5vdHwtYm9yfC1ieG9yfC1jYXNlc2Vuc2l0aXZlfC1jY29udGFpbnN8LWNlcXwtY2dlfC1jZ3R8J1xuICAgICsgJy1jbGV8LWNsaWtlfC1jbHR8LWNtYXRjaHwtY25lfC1jbm90Y29udGFpbnN8LWNub3RsaWtlfC1jbm90bWF0Y2h8LWNvbnRhaW5zfCdcbiAgICArICctY3JlcGxhY2V8LWNzcGxpdHwtZXF8LWV4YWN0fC1mfC1maWxlfC1nZXwtZ3R8LWljb250YWluc3wtaWVxfC1pZ2V8LWlndHwnXG4gICAgKyAnLWlsZXwtaWxpa2V8LWlsdHwtaW1hdGNofC1pbnwtaW5lfC1pbm90Y29udGFpbnN8LWlub3RsaWtlfC1pbm90bWF0Y2h8J1xuICAgICsgJy1pcmVwbGFjZXwtaXN8LWlzbm90fC1pc3BsaXR8LWpvaW58LWxlfC1saWtlfC1sdHwtbWF0Y2h8LW5lfC1ub3R8J1xuICAgICsgJy1ub3Rjb250YWluc3wtbm90aW58LW5vdGxpa2V8LW5vdG1hdGNofC1vcnwtcmVnZXh8LXJlcGxhY2V8LXNobHwtc2hyfCdcbiAgICArICctc3BsaXR8LXdpbGRjYXJkfC14b3InO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiAvLT9bQS16XFwuXFwtXStcXGIvLFxuICAgIGtleXdvcmQ6XG4gICAgICAnaWYgZWxzZSBmb3JlYWNoIHJldHVybiBkbyB3aGlsZSB1bnRpbCBlbHNlaWYgYmVnaW4gZm9yIHRyYXAgZGF0YSBkeW5hbWljcGFyYW0gJ1xuICAgICAgKyAnZW5kIGJyZWFrIHRocm93IHBhcmFtIGNvbnRpbnVlIGZpbmFsbHkgaW4gc3dpdGNoIGV4aXQgZmlsdGVyIHRyeSBwcm9jZXNzIGNhdGNoICdcbiAgICAgICsgJ2hpZGRlbiBzdGF0aWMgcGFyYW1ldGVyJyxcbiAgICAvLyBcImVjaG9cIiByZWxldmFuY2UgaGFzIGJlZW4gc2V0IHRvIDAgdG8gYXZvaWQgYXV0by1kZXRlY3QgY29uZmxpY3RzIHdpdGggc2hlbGwgdHJhbnNjcmlwdHNcbiAgICBidWlsdF9pbjpcbiAgICAgICdhYyBhc25wIGNhdCBjZCBDRlMgY2hkaXIgY2xjIGNsZWFyIGNsaHkgY2xpIGNscCBjbHMgY2x2IGNuc24gY29tcGFyZSBjb3B5IGNwICdcbiAgICAgICsgJ2NwaSBjcHAgY3VybCBjdnBhIGRicCBkZWwgZGlmZiBkaXIgZG5zbiBlYnAgZWNob3wwIGVwYWwgZXBjc3YgZXBzbiBlcmFzZSBldHNuIGV4c24gZmMgZmh4ICdcbiAgICAgICsgJ2ZsIGZ0IGZ3IGdhbCBnYnAgZ2MgZ2NiIGdjaSBnY20gZ2NzIGdkciBnZXJyIGdoeSBnaSBnaW4gZ2piIGdsIGdtIGdtbyBncCBncHMgZ3B2IGdyb3VwICdcbiAgICAgICsgJ2dzbiBnc25wIGdzdiBndHogZ3UgZ3YgZ3dtaSBoIGhpc3RvcnkgaWNtIGlleCBpaHkgaWkgaXBhbCBpcGNzdiBpcG1vIGlwc24gaXJtIGlzZSBpd21pICdcbiAgICAgICsgJ2l3ciBraWxsIGxwIGxzIG1hbiBtZCBtZWFzdXJlIG1pIG1vdW50IG1vdmUgbXAgbXYgbmFsIG5kciBuaSBubW8gbnBzc2MgbnNuIG52IG9ndiBvaCAnXG4gICAgICArICdwb3BkIHBzIHB1c2hkIHB3ZCByIHJicCByY2piIHJjc24gcmQgcmRyIHJlbiByaSByamIgcm0gcm1kaXIgcm1vIHJuaSBybnAgcnAgcnNuIHJzbnAgJ1xuICAgICAgKyAncnVqYiBydiBydnBhIHJ3bWkgc2FqYiBzYWwgc2FwcyBzYXN2IHNicCBzYyBzY2Igc2VsZWN0IHNldCBzaGNtIHNpIHNsIHNsZWVwIHNscyBzb3J0IHNwICdcbiAgICAgICsgJ3NwamIgc3BwcyBzcHN2IHN0YXJ0IHN0eiBzdWpiIHN2IHN3bWkgdGVlIHRyY20gdHlwZSB3Z2V0IHdoZXJlIHdqYiB3cml0ZSdcbiAgICAvLyBUT0RPOiAndmFsaWRhdGVbQS1aXSsnIGNhbid0IHdvcmsgaW4ga2V5d29yZHNcbiAgfTtcblxuICBjb25zdCBUSVRMRV9OQU1FX1JFID0gL1xcd1tcXHdcXGRdKigoLSlbXFx3XFxkXSspKi87XG5cbiAgY29uc3QgQkFDS1RJQ0tfRVNDQVBFID0ge1xuICAgIGJlZ2luOiAnYFtcXFxcc1xcXFxTXScsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1xcJFxcQi8gfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAvXFwkdGhpcy9cbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAvXFwkW1xcd1xcZF1bXFx3XFxkXzpdKi8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBMSVRFUkFMID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIGJlZ2luOiAvXFwkKG51bGx8dHJ1ZXxmYWxzZSlcXGIvXG4gIH07XG5cbiAgY29uc3QgUVVPVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogXCJzdHJpbmdcIixcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL0BcIi8sXG4gICAgICAgIGVuZDogL15cIkAvXG4gICAgICB9XG4gICAgXSxcbiAgICBjb250YWluczogW1xuICAgICAgQkFDS1RJQ0tfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkW0Etel0vLFxuICAgICAgICBlbmQ6IC9bXkEtel0vXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEFQT1NfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8nLyxcbiAgICAgICAgZW5kOiAvJy9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvQCcvLFxuICAgICAgICBlbmQ6IC9eJ0AvXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFBTX0hFTFBUQUdTID0ge1xuICAgIGNsYXNzTmFtZTogXCJkb2N0YWdcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgLyogbm8gcGFyYW1hdGVyIGhlbHAgdGFncyAqL1xuICAgICAgeyBiZWdpbjogL1xcLihzeW5vcHNpc3xkZXNjcmlwdGlvbnxleGFtcGxlfGlucHV0c3xvdXRwdXRzfG5vdGVzfGxpbmt8Y29tcG9uZW50fHJvbGV8ZnVuY3Rpb25hbGl0eSkvIH0sXG4gICAgICAvKiBvbmUgcGFyYW1ldGVyIGhlbHAgdGFncyAqL1xuICAgICAgeyBiZWdpbjogL1xcLihwYXJhbWV0ZXJ8Zm9yd2FyZGhlbHB0YXJnZXRuYW1lfGZvcndhcmRoZWxwY2F0ZWdvcnl8cmVtb3RlaGVscHJ1bnNwYWNlfGV4dGVybmFsaGVscClcXHMrXFxTKy8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBQU19DT01NRU5UID0gaGxqcy5pbmhlcml0KFxuICAgIGhsanMuQ09NTUVOVChudWxsLCBudWxsKSxcbiAgICB7XG4gICAgICB2YXJpYW50czogW1xuICAgICAgICAvKiBzaW5nbGUtbGluZSBjb21tZW50ICovXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogLyMvLFxuICAgICAgICAgIGVuZDogLyQvXG4gICAgICAgIH0sXG4gICAgICAgIC8qIG11bHRpLWxpbmUgY29tbWVudCAqL1xuICAgICAgICB7XG4gICAgICAgICAgYmVnaW46IC88Iy8sXG4gICAgICAgICAgZW5kOiAvIz4vXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBjb250YWluczogWyBQU19IRUxQVEFHUyBdXG4gICAgfVxuICApO1xuXG4gIGNvbnN0IENNRExFVFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIHZhcmlhbnRzOiBbIHsgYmVnaW46ICcoJy5jb25jYXQoVkFMSURfVkVSQlMsICcpKygtKVtcXFxcd1xcXFxkXSsnKSB9IF1cbiAgfTtcblxuICBjb25zdCBQU19DTEFTUyA9IHtcbiAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGVudW0nLFxuICAgIGVuZDogL1xccypbe10vLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuVElUTEVfTU9ERSBdXG4gIH07XG5cbiAgY29uc3QgUFNfRlVOQ1RJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvZnVuY3Rpb25cXHMrLyxcbiAgICBlbmQ6IC9cXHMqXFx7fCQvLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBcImZ1bmN0aW9uXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInRpdGxlXCIsXG4gICAgICAgIGJlZ2luOiBUSVRMRV9OQU1FX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY2xhc3NOYW1lOiBcInBhcmFtc1wiLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbIFZBUiBdXG4gICAgICB9XG4gICAgICAvLyBDTURMRVRTXG4gICAgXVxuICB9O1xuXG4gIC8vIFVzaW5nIHN0YXRtZW50LCBwbHVzIHR5cGUsIHBsdXMgYXNzZW1ibHkgbmFtZS5cbiAgY29uc3QgUFNfVVNJTkcgPSB7XG4gICAgYmVnaW46IC91c2luZ1xccy8sXG4gICAgZW5kOiAvJC8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgIEFQT1NfU1RSSU5HLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC8odXNpbmd8YXNzZW1ibHl8Y29tbWFuZHxtb2R1bGV8bmFtZXNwYWNlfHR5cGUpL1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBDb21wZXJpc29uIG9wZXJhdG9ycyAmIGZ1bmN0aW9uIG5hbWVkIHBhcmFtZXRlcnMuXG4gIGNvbnN0IFBTX0FSR1VNRU5UUyA9IHsgdmFyaWFudHM6IFtcbiAgICAvLyBQUyBsaXRlcmFscyBhcmUgcHJldHR5IHZlcmJvc2Ugc28gaXQncyBhIGdvb2QgaWRlYSB0byBhY2NlbnQgdGhlbSBhIGJpdC5cbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdvcGVyYXRvcicsXG4gICAgICBiZWdpbjogJygnLmNvbmNhdChDT01QQVJJU09OX09QRVJBVE9SUywgJylcXFxcYicpXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICAgIGJlZ2luOiAvKC0pezEsMn1bXFx3XFxkLV0rLyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH1cbiAgXSB9O1xuXG4gIGNvbnN0IEhBU0hfU0lHTlMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItdGFnJyxcbiAgICBiZWdpbjogL0BcXEIvLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8vIEl0J3MgYSB2ZXJ5IGdlbmVyYWwgcnVsZSBzbyBJJ2xsIG5hcnJvdyBpdCBhIGJpdCB3aXRoIHNvbWUgc3RyaWN0IGJvdW5kYXJpZXNcbiAgLy8gdG8gYXZvaWQgYW55IHBvc3NpYmxlIGZhbHNlLXBvc2l0aXZlIGNvbGxpc2lvbnMhXG4gIGNvbnN0IFBTX01FVEhPRFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgIGJlZ2luOiAvXFxbLipcXF1cXHMqW1xcd10rWyBdPz9cXCgvLFxuICAgIGVuZDogLyQvLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcoJy5jb25jYXQoXG4gICAgICAgICAgS0VZV09SRFMua2V5d29yZC50b1N0cmluZygpLnJlcGxhY2UoL1xccy9nLCAnfCdcbiAgICAgICAgICApLCAnKVxcXFxiJyksXG4gICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgZW5kc1BhcmVudDogdHJ1ZSB9KVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBHRU5UTEVNQU5TX1NFVCA9IFtcbiAgICAvLyBTVEFUSUNfTUVNQkVSLFxuICAgIFBTX01FVEhPRFMsXG4gICAgUFNfQ09NTUVOVCxcbiAgICBCQUNLVElDS19FU0NBUEUsXG4gICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICBRVU9URV9TVFJJTkcsXG4gICAgQVBPU19TVFJJTkcsXG4gICAgLy8gUFNfTkVXX09CSkVDVF9UWVBFLFxuICAgIENNRExFVFMsXG4gICAgVkFSLFxuICAgIExJVEVSQUwsXG4gICAgSEFTSF9TSUdOU1xuICBdO1xuXG4gIGNvbnN0IFBTX1RZUEUgPSB7XG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbXS5jb25jYXQoXG4gICAgICAnc2VsZicsXG4gICAgICBHRU5UTEVNQU5TX1NFVCxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFwiKFwiICsgVFlQRVMuam9pbihcInxcIikgKyBcIilcIixcbiAgICAgICAgY2xhc3NOYW1lOiBcImJ1aWx0X2luXCIsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGJlZ2luOiAvW1xcLlxcd1xcZF0rLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9XG4gICAgKVxuICB9O1xuXG4gIFBTX01FVEhPRFMuY29udGFpbnMudW5zaGlmdChQU19UWVBFKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQb3dlclNoZWxsJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICBcInB3c2hcIixcbiAgICAgIFwicHNcIixcbiAgICAgIFwicHMxXCJcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBHRU5UTEVNQU5TX1NFVC5jb25jYXQoXG4gICAgICBQU19DTEFTUyxcbiAgICAgIFBTX0ZVTkNUSU9OLFxuICAgICAgUFNfVVNJTkcsXG4gICAgICBQU19BUkdVTUVOVFMsXG4gICAgICBQU19UWVBFXG4gICAgKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBvd2Vyc2hlbGw7XG4iLCAiLypcbkxhbmd1YWdlOiBQcm9jZXNzaW5nXG5EZXNjcmlwdGlvbjogUHJvY2Vzc2luZyBpcyBhIGZsZXhpYmxlIHNvZnR3YXJlIHNrZXRjaGJvb2sgYW5kIGEgbGFuZ3VhZ2UgZm9yIGxlYXJuaW5nIGhvdyB0byBjb2RlIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgdmlzdWFsIGFydHMuXG5BdXRob3I6IEVyaWsgUGFsdWthIDxlcmlrLnBhbHVrYUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3Byb2Nlc3Npbmcub3JnXG5DYXRlZ29yeTogZ3JhcGhpY3NcbiovXG5cbmZ1bmN0aW9uIHByb2Nlc3NpbmcoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImRpc3BsYXlIZWlnaHRcIixcbiAgICBcImRpc3BsYXlXaWR0aFwiLFxuICAgIFwibW91c2VZXCIsXG4gICAgXCJtb3VzZVhcIixcbiAgICBcIm1vdXNlUHJlc3NlZFwiLFxuICAgIFwicG1vdXNlWFwiLFxuICAgIFwicG1vdXNlWVwiLFxuICAgIFwia2V5XCIsXG4gICAgXCJrZXlDb2RlXCIsXG4gICAgXCJwaXhlbHNcIixcbiAgICBcImZvY3VzZWRcIixcbiAgICBcImZyYW1lQ291bnRcIixcbiAgICBcImZyYW1lUmF0ZVwiLFxuICAgIFwiaGVpZ2h0XCIsXG4gICAgXCJ3aWR0aFwiLFxuICAgIFwic2l6ZVwiLFxuICAgIFwiY3JlYXRlR3JhcGhpY3NcIixcbiAgICBcImJlZ2luRHJhd1wiLFxuICAgIFwiY3JlYXRlU2hhcGVcIixcbiAgICBcImxvYWRTaGFwZVwiLFxuICAgIFwiUFNoYXBlXCIsXG4gICAgXCJhcmNcIixcbiAgICBcImVsbGlwc2VcIixcbiAgICBcImxpbmVcIixcbiAgICBcInBvaW50XCIsXG4gICAgXCJxdWFkXCIsXG4gICAgXCJyZWN0XCIsXG4gICAgXCJ0cmlhbmdsZVwiLFxuICAgIFwiYmV6aWVyXCIsXG4gICAgXCJiZXppZXJEZXRhaWxcIixcbiAgICBcImJlemllclBvaW50XCIsXG4gICAgXCJiZXppZXJUYW5nZW50XCIsXG4gICAgXCJjdXJ2ZVwiLFxuICAgIFwiY3VydmVEZXRhaWxcIixcbiAgICBcImN1cnZlUG9pbnRcIixcbiAgICBcImN1cnZlVGFuZ2VudFwiLFxuICAgIFwiY3VydmVUaWdodG5lc3NcIixcbiAgICBcInNoYXBlXCIsXG4gICAgXCJzaGFwZU1vZGVcIixcbiAgICBcImJlZ2luQ29udG91clwiLFxuICAgIFwiYmVnaW5TaGFwZVwiLFxuICAgIFwiYmV6aWVyVmVydGV4XCIsXG4gICAgXCJjdXJ2ZVZlcnRleFwiLFxuICAgIFwiZW5kQ29udG91clwiLFxuICAgIFwiZW5kU2hhcGVcIixcbiAgICBcInF1YWRyYXRpY1ZlcnRleFwiLFxuICAgIFwidmVydGV4XCIsXG4gICAgXCJlbGxpcHNlTW9kZVwiLFxuICAgIFwibm9TbW9vdGhcIixcbiAgICBcInJlY3RNb2RlXCIsXG4gICAgXCJzbW9vdGhcIixcbiAgICBcInN0cm9rZUNhcFwiLFxuICAgIFwic3Ryb2tlSm9pblwiLFxuICAgIFwic3Ryb2tlV2VpZ2h0XCIsXG4gICAgXCJtb3VzZUNsaWNrZWRcIixcbiAgICBcIm1vdXNlRHJhZ2dlZFwiLFxuICAgIFwibW91c2VNb3ZlZFwiLFxuICAgIFwibW91c2VQcmVzc2VkXCIsXG4gICAgXCJtb3VzZVJlbGVhc2VkXCIsXG4gICAgXCJtb3VzZVdoZWVsXCIsXG4gICAgXCJrZXlQcmVzc2VkXCIsXG4gICAgXCJrZXlQcmVzc2Vka2V5UmVsZWFzZWRcIixcbiAgICBcImtleVR5cGVkXCIsXG4gICAgXCJwcmludFwiLFxuICAgIFwicHJpbnRsblwiLFxuICAgIFwic2F2ZVwiLFxuICAgIFwic2F2ZUZyYW1lXCIsXG4gICAgXCJkYXlcIixcbiAgICBcImhvdXJcIixcbiAgICBcIm1pbGxpc1wiLFxuICAgIFwibWludXRlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwic2Vjb25kXCIsXG4gICAgXCJ5ZWFyXCIsXG4gICAgXCJiYWNrZ3JvdW5kXCIsXG4gICAgXCJjbGVhclwiLFxuICAgIFwiY29sb3JNb2RlXCIsXG4gICAgXCJmaWxsXCIsXG4gICAgXCJub0ZpbGxcIixcbiAgICBcIm5vU3Ryb2tlXCIsXG4gICAgXCJzdHJva2VcIixcbiAgICBcImFscGhhXCIsXG4gICAgXCJibHVlXCIsXG4gICAgXCJicmlnaHRuZXNzXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiZ3JlZW5cIixcbiAgICBcImh1ZVwiLFxuICAgIFwibGVycENvbG9yXCIsXG4gICAgXCJyZWRcIixcbiAgICBcInNhdHVyYXRpb25cIixcbiAgICBcIm1vZGVsWFwiLFxuICAgIFwibW9kZWxZXCIsXG4gICAgXCJtb2RlbFpcIixcbiAgICBcInNjcmVlblhcIixcbiAgICBcInNjcmVlbllcIixcbiAgICBcInNjcmVlblpcIixcbiAgICBcImFtYmllbnRcIixcbiAgICBcImVtaXNzaXZlXCIsXG4gICAgXCJzaGluaW5lc3NcIixcbiAgICBcInNwZWN1bGFyXCIsXG4gICAgXCJhZGRcIixcbiAgICBcImNyZWF0ZUltYWdlXCIsXG4gICAgXCJiZWdpbkNhbWVyYVwiLFxuICAgIFwiY2FtZXJhXCIsXG4gICAgXCJlbmRDYW1lcmFcIixcbiAgICBcImZydXN0dW1cIixcbiAgICBcIm9ydGhvXCIsXG4gICAgXCJwZXJzcGVjdGl2ZVwiLFxuICAgIFwicHJpbnRDYW1lcmFcIixcbiAgICBcInByaW50UHJvamVjdGlvblwiLFxuICAgIFwiY3Vyc29yXCIsXG4gICAgXCJmcmFtZVJhdGVcIixcbiAgICBcIm5vQ3Vyc29yXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJsb29wXCIsXG4gICAgXCJub0xvb3BcIixcbiAgICBcInBvcFN0eWxlXCIsXG4gICAgXCJwdXNoU3R5bGVcIixcbiAgICBcInJlZHJhd1wiLFxuICAgIFwiYmluYXJ5XCIsXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiaGV4XCIsXG4gICAgXCJpbnRcIixcbiAgICBcInN0clwiLFxuICAgIFwidW5iaW5hcnlcIixcbiAgICBcInVuaGV4XCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF0Y2hBbGxcIixcbiAgICBcIm5mXCIsXG4gICAgXCJuZmNcIixcbiAgICBcIm5mcFwiLFxuICAgIFwibmZzXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3BsaXRUb2tlbnNcIixcbiAgICBcInRyaW1cIixcbiAgICBcImFwcGVuZFwiLFxuICAgIFwiYXJyYXlDb3B5XCIsXG4gICAgXCJjb25jYXRcIixcbiAgICBcImV4cGFuZFwiLFxuICAgIFwicmV2ZXJzZVwiLFxuICAgIFwic2hvcnRlblwiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3BsaWNlXCIsXG4gICAgXCJzdWJzZXRcIixcbiAgICBcImJveFwiLFxuICAgIFwic3BoZXJlXCIsXG4gICAgXCJzcGhlcmVEZXRhaWxcIixcbiAgICBcImNyZWF0ZUlucHV0XCIsXG4gICAgXCJjcmVhdGVSZWFkZXJcIixcbiAgICBcImxvYWRCeXRlc1wiLFxuICAgIFwibG9hZEpTT05BcnJheVwiLFxuICAgIFwibG9hZEpTT05PYmplY3RcIixcbiAgICBcImxvYWRTdHJpbmdzXCIsXG4gICAgXCJsb2FkVGFibGVcIixcbiAgICBcImxvYWRYTUxcIixcbiAgICBcIm9wZW5cIixcbiAgICBcInBhcnNlWE1MXCIsXG4gICAgXCJzYXZlVGFibGVcIixcbiAgICBcInNlbGVjdEZvbGRlclwiLFxuICAgIFwic2VsZWN0SW5wdXRcIixcbiAgICBcImJlZ2luUmF3XCIsXG4gICAgXCJiZWdpblJlY29yZFwiLFxuICAgIFwiY3JlYXRlT3V0cHV0XCIsXG4gICAgXCJjcmVhdGVXcml0ZXJcIixcbiAgICBcImVuZFJhd1wiLFxuICAgIFwiZW5kUmVjb3JkXCIsXG4gICAgXCJQcmludFdyaXRlcnNhdmVCeXRlc1wiLFxuICAgIFwic2F2ZUpTT05BcnJheVwiLFxuICAgIFwic2F2ZUpTT05PYmplY3RcIixcbiAgICBcInNhdmVTdHJlYW1cIixcbiAgICBcInNhdmVTdHJpbmdzXCIsXG4gICAgXCJzYXZlWE1MXCIsXG4gICAgXCJzZWxlY3RPdXRwdXRcIixcbiAgICBcInBvcE1hdHJpeFwiLFxuICAgIFwicHJpbnRNYXRyaXhcIixcbiAgICBcInB1c2hNYXRyaXhcIixcbiAgICBcInJlc2V0TWF0cml4XCIsXG4gICAgXCJyb3RhdGVcIixcbiAgICBcInJvdGF0ZVhcIixcbiAgICBcInJvdGF0ZVlcIixcbiAgICBcInJvdGF0ZVpcIixcbiAgICBcInNjYWxlXCIsXG4gICAgXCJzaGVhclhcIixcbiAgICBcInNoZWFyWVwiLFxuICAgIFwidHJhbnNsYXRlXCIsXG4gICAgXCJhbWJpZW50TGlnaHRcIixcbiAgICBcImRpcmVjdGlvbmFsTGlnaHRcIixcbiAgICBcImxpZ2h0RmFsbG9mZlwiLFxuICAgIFwibGlnaHRzXCIsXG4gICAgXCJsaWdodFNwZWN1bGFyXCIsXG4gICAgXCJub0xpZ2h0c1wiLFxuICAgIFwibm9ybWFsXCIsXG4gICAgXCJwb2ludExpZ2h0XCIsXG4gICAgXCJzcG90TGlnaHRcIixcbiAgICBcImltYWdlXCIsXG4gICAgXCJpbWFnZU1vZGVcIixcbiAgICBcImxvYWRJbWFnZVwiLFxuICAgIFwibm9UaW50XCIsXG4gICAgXCJyZXF1ZXN0SW1hZ2VcIixcbiAgICBcInRpbnRcIixcbiAgICBcInRleHR1cmVcIixcbiAgICBcInRleHR1cmVNb2RlXCIsXG4gICAgXCJ0ZXh0dXJlV3JhcFwiLFxuICAgIFwiYmxlbmRcIixcbiAgICBcImNvcHlcIixcbiAgICBcImZpbHRlclwiLFxuICAgIFwiZ2V0XCIsXG4gICAgXCJsb2FkUGl4ZWxzXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInVwZGF0ZVBpeGVsc1wiLFxuICAgIFwiYmxlbmRNb2RlXCIsXG4gICAgXCJsb2FkU2hhZGVyXCIsXG4gICAgXCJQU2hhZGVycmVzZXRTaGFkZXJcIixcbiAgICBcInNoYWRlclwiLFxuICAgIFwiY3JlYXRlRm9udFwiLFxuICAgIFwibG9hZEZvbnRcIixcbiAgICBcInRleHRcIixcbiAgICBcInRleHRGb250XCIsXG4gICAgXCJ0ZXh0QWxpZ25cIixcbiAgICBcInRleHRMZWFkaW5nXCIsXG4gICAgXCJ0ZXh0TW9kZVwiLFxuICAgIFwidGV4dFNpemVcIixcbiAgICBcInRleHRXaWR0aFwiLFxuICAgIFwidGV4dEFzY2VudFwiLFxuICAgIFwidGV4dERlc2NlbnRcIixcbiAgICBcImFic1wiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY29uc3RyYWluXCIsXG4gICAgXCJkaXN0XCIsXG4gICAgXCJleHBcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJsZXJwXCIsXG4gICAgXCJsb2dcIixcbiAgICBcIm1hZ1wiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibm9ybVwiLFxuICAgIFwicG93XCIsXG4gICAgXCJyb3VuZFwiLFxuICAgIFwic3FcIixcbiAgICBcInNxcnRcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFzaW5cIixcbiAgICBcImF0YW5cIixcbiAgICBcImF0YW4yXCIsXG4gICAgXCJjb3NcIixcbiAgICBcImRlZ3JlZXNcIixcbiAgICBcInJhZGlhbnNcIixcbiAgICBcInNpblwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJub2lzZVwiLFxuICAgIFwibm9pc2VEZXRhaWxcIixcbiAgICBcIm5vaXNlU2VlZFwiLFxuICAgIFwicmFuZG9tXCIsXG4gICAgXCJyYW5kb21HYXVzc2lhblwiLFxuICAgIFwicmFuZG9tU2VlZFwiXG4gIF07XG4gIGNvbnN0IElERU5UID0gaGxqcy5JREVOVF9SRTtcbiAgY29uc3QgRlVOQ19OQU1FID0geyB2YXJpYW50czogW1xuICAgIHtcbiAgICAgIG1hdGNoOiByZWdleC5jb25jYXQocmVnZXguZWl0aGVyKC4uLkJVSUxUX0lOUyksIHJlZ2V4Lmxvb2thaGVhZCgvXFxzKlxcKC8pKSxcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiXG4gICAgfSxcbiAgICB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBtYXRjaDogcmVnZXguY29uY2F0KFxuICAgICAgICAvXFxiKD8hZm9yfGlmfHdoaWxlKS8sXG4gICAgICAgIElERU5ULCByZWdleC5sb29rYWhlYWQoL1xccypcXCgvKSksXG4gICAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH1cbiAgXSB9O1xuICBjb25zdCBORVdfQ0xBU1MgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9uZXdcXHMrLyxcbiAgICAgIElERU5UXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMjogXCJjbGFzcy50aXRsZVwiXG4gICAgfVxuICB9O1xuICBjb25zdCBQUk9QRVJUWSA9IHtcbiAgICByZWxldmFuY2U6IDAsXG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXC4vLFxuICAgICAgSURFTlRcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAyOiBcInByb3BlcnR5XCIgfVxuICB9O1xuICBjb25zdCBDTEFTUyA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3MvLFxuICAgICAgICAvXFxzKy8sXG4gICAgICAgIElERU5ULFxuICAgICAgICAvXFxzKy8sXG4gICAgICAgIC9leHRlbmRzLyxcbiAgICAgICAgL1xccysvLFxuICAgICAgICBJREVOVFxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3MvLFxuICAgICAgICAvXFxzKy8sXG4gICAgICAgIElERU5UXG4gICAgICBdIH1cbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlLmNsYXNzXCIsXG4gICAgICA1OiBcImtleXdvcmRcIixcbiAgICAgIDc6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJib29sZWFuXCIsXG4gICAgXCJieXRlXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJjb2xvclwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJzaG9ydFwiLFxuICBdO1xuICBjb25zdCBDTEFTU0VTID0gW1xuICAgIFwiQnVmZmVyZWRSZWFkZXJcIixcbiAgICBcIlBWZWN0b3JcIixcbiAgICBcIlBGb250XCIsXG4gICAgXCJQSW1hZ2VcIixcbiAgICBcIlBHcmFwaGljc1wiLFxuICAgIFwiSGFzaE1hcFwiLFxuICAgIFwiU3RyaW5nXCIsXG4gICAgXCJBcnJheVwiLFxuICAgIFwiRmxvYXREaWN0XCIsXG4gICAgXCJBcnJheUxpc3RcIixcbiAgICBcIkZsb2F0TGlzdFwiLFxuICAgIFwiSW50RGljdFwiLFxuICAgIFwiSW50TGlzdFwiLFxuICAgIFwiSlNPTkFycmF5XCIsXG4gICAgXCJKU09OT2JqZWN0XCIsXG4gICAgXCJPYmplY3RcIixcbiAgICBcIlN0cmluZ0RpY3RcIixcbiAgICBcIlN0cmluZ0xpc3RcIixcbiAgICBcIlRhYmxlXCIsXG4gICAgXCJUYWJsZVJvd1wiLFxuICAgIFwiWE1MXCJcbiAgXTtcbiAgY29uc3QgSkFWQV9LRVlXT1JEUyA9IFtcbiAgICBcImFic3RyYWN0XCIsXG4gICAgXCJhc3NlcnRcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiY29uc3RcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwiZmluYWxseVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJpbnN0YW5jZW9mXCIsXG4gICAgXCJsb25nXCIsXG4gICAgXCJuYXRpdmVcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwcm90ZWN0ZWRcIixcbiAgICBcInB1YmxpY1wiLFxuICAgIFwicHVibGljXCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInN0YXRpY1wiLFxuICAgIFwic3RyaWN0ZnBcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwic3luY2hyb25pemVkXCIsXG4gICAgXCJ0aHJvd1wiLFxuICAgIFwidGhyb3dzXCIsXG4gICAgXCJ0cmFuc2llbnRcIixcbiAgICBcInRyeVwiLFxuICAgIFwidm9pZFwiLFxuICAgIFwidm9sYXRpbGVcIixcbiAgICBcIndoaWxlXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQcm9jZXNzaW5nJyxcbiAgICBhbGlhc2VzOiBbICdwZGUnIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IFsgLi4uSkFWQV9LRVlXT1JEUyBdLFxuICAgICAgbGl0ZXJhbDogJ1AyRCBQM0QgSEFMRl9QSSBQSSBRVUFSVEVSX1BJIFRBVSBUV09fUEkgbnVsbCB0cnVlIGZhbHNlJyxcbiAgICAgIHRpdGxlOiAnc2V0dXAgZHJhdycsXG4gICAgICB2YXJpYWJsZTogXCJzdXBlciB0aGlzXCIsXG4gICAgICBidWlsdF9pbjogW1xuICAgICAgICAuLi5CVUlMVF9JTlMsXG4gICAgICAgIC4uLkNMQVNTRVNcbiAgICAgIF0sXG4gICAgICB0eXBlOiBUWVBFU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENMQVNTLFxuICAgICAgTkVXX0NMQVNTLFxuICAgICAgRlVOQ19OQU1FLFxuICAgICAgUFJPUEVSVFksXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9jZXNzaW5nO1xuIiwgIi8qXG5MYW5ndWFnZTogUHl0aG9uIHByb2ZpbGVyXG5EZXNjcmlwdGlvbjogUHl0aG9uIHByb2ZpbGVyIHJlc3VsdHNcbkF1dGhvcjogQnJpYW4gQmVjayA8ZXhvZ2VuQGdtYWlsLmNvbT5cbiovXG5cbmZ1bmN0aW9uIHByb2ZpbGUoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQeXRob24gcHJvZmlsZXInLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnW2EtekEtWl9dW1xcXFxkYS16QS1aX10rXFxcXC5bXFxcXGRhLXpBLVpfXXsxLDN9JyxcbiAgICAgICAgZW5kOiAnOicsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnKG5jYWxsc3x0b3R0aW1lfGN1bXRpbWUpJyxcbiAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgIGtleXdvcmRzOiAnbmNhbGxzIHRvdHRpbWV8MTAgY3VtdGltZXwxMCBmaWxlbmFtZScsXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnZnVuY3Rpb24gY2FsbHMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5DX05VTUJFUl9NT0RFIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgZW5kOiAnXFxcXCkkJyxcbiAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHJvZmlsZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFByb2xvZ1xuRGVzY3JpcHRpb246IFByb2xvZyBpcyBhIGdlbmVyYWwgcHVycG9zZSBsb2dpYyBwcm9ncmFtbWluZyBsYW5ndWFnZSBhc3NvY2lhdGVkIHdpdGggYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UgYW5kIGNvbXB1dGF0aW9uYWwgbGluZ3Vpc3RpY3MuXG5BdXRob3I6IFJhaXZvIExhYW5lbWV0cyA8cmFpdm9AaW5mZG90LmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Byb2xvZ1xuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5cbmZ1bmN0aW9uIHByb2xvZyhobGpzKSB7XG4gIGNvbnN0IEFUT00gPSB7XG5cbiAgICBiZWdpbjogL1thLXpdW0EtWmEtejAtOV9dKi8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgVkFSID0ge1xuXG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1tBLVpdW2EtekEtWjAtOV9dKi8gfSxcbiAgICAgIHsgYmVnaW46IC9fW0EtWmEtejAtOV9dKi8gfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUEFSRU5URUQgPSB7XG5cbiAgICBiZWdpbjogL1xcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBMSVNUID0ge1xuXG4gICAgYmVnaW46IC9cXFsvLFxuICAgIGVuZDogL1xcXS9cbiAgfTtcblxuICBjb25zdCBMSU5FX0NPTU1FTlQgPSB7XG5cbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICBiZWdpbjogLyUvLFxuICAgIGVuZDogLyQvLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuUEhSQVNBTF9XT1JEU19NT0RFIF1cbiAgfTtcblxuICBjb25zdCBCQUNLVElDS19TVFJJTkcgPSB7XG5cbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvYC8sXG4gICAgZW5kOiAvYC8sXG4gICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgfTtcblxuICBjb25zdCBDSEFSX0NPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJywgLy8gMCdhIGV0Yy5cbiAgICBiZWdpbjogLzAnKFxcXFwnfC4pL1xuICB9O1xuXG4gIGNvbnN0IFNQQUNFX0NPREUgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLzAnXFxcXHMvIC8vIDAnXFxzXG4gIH07XG5cbiAgY29uc3QgUFJFRF9PUCA9IHsgLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICBiZWdpbjogLzotLyB9O1xuXG4gIGNvbnN0IGlubmVyID0gW1xuXG4gICAgQVRPTSxcbiAgICBWQVIsXG4gICAgUEFSRU5URUQsXG4gICAgUFJFRF9PUCxcbiAgICBMSVNULFxuICAgIExJTkVfQ09NTUVOVCxcbiAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgIEJBQ0tUSUNLX1NUUklORyxcbiAgICBDSEFSX0NPREUsXG4gICAgU1BBQ0VfQ09ERSxcbiAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgXTtcblxuICBQQVJFTlRFRC5jb250YWlucyA9IGlubmVyO1xuICBMSVNULmNvbnRhaW5zID0gaW5uZXI7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUHJvbG9nJyxcbiAgICBjb250YWluczogaW5uZXIuY29uY2F0KFtcbiAgICAgIHsgLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgICAgYmVnaW46IC9cXC4kLyB9XG4gICAgXSlcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9sb2c7XG4iLCAiLypcbkxhbmd1YWdlOiAucHJvcGVydGllc1xuQ29udHJpYnV0b3JzOiBWYWxlbnRpbiBBaXRrZW4gPHZhbGVudGluQG5hbGlzYmcuY29tPiwgRWdvciBSb2dvdiA8ZS5yb2dvdkBwb3N0Z3Jlc3Byby5ydT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpLy5wcm9wZXJ0aWVzXG5DYXRlZ29yeTogY29uZmlnXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gcHJvcGVydGllcyhobGpzKSB7XG4gIC8vIHdoaXRlc3BhY2VzOiBzcGFjZSwgdGFiLCBmb3JtZmVlZFxuICBjb25zdCBXUzAgPSAnWyBcXFxcdFxcXFxmXSonO1xuICBjb25zdCBXUzEgPSAnWyBcXFxcdFxcXFxmXSsnO1xuICAvLyBkZWxpbWl0ZXJcbiAgY29uc3QgRVFVQUxfREVMSU0gPSBXUzAgKyAnWzo9XScgKyBXUzA7XG4gIGNvbnN0IFdTX0RFTElNID0gV1MxO1xuICBjb25zdCBERUxJTSA9ICcoJyArIEVRVUFMX0RFTElNICsgJ3wnICsgV1NfREVMSU0gKyAnKSc7XG4gIGNvbnN0IEtFWSA9ICcoW15cXFxcXFxcXDo9IFxcXFx0XFxcXGZcXFxcbl18XFxcXFxcXFwuKSsnO1xuXG4gIGNvbnN0IERFTElNX0FORF9WQUxVRSA9IHtcbiAgICAvLyBza2lwIERFTElNXG4gICAgZW5kOiBERUxJTSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgc3RhcnRzOiB7XG4gICAgICAvLyB2YWx1ZTogZXZlcnl0aGluZyB1bnRpbCBlbmQgb2YgbGluZSAoYWdhaW4sIHRha2luZyBpbnRvIGFjY291bnQgYmFja3NsYXNoZXMpXG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgZW5kOiAvJC8sXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7IGJlZ2luOiAnXFxcXFxcXFxcXFxcXFxcXCcgfSxcbiAgICAgICAgeyBiZWdpbjogJ1xcXFxcXFxcXFxcXG4nIH1cbiAgICAgIF1cbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnLnByb3BlcnRpZXMnLFxuICAgIGRpc2FibGVBdXRvZGV0ZWN0OiB0cnVlLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogL1xcUy8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnXlxcXFxzKlshI10nLCAnJCcpLFxuICAgICAgLy8ga2V5OiBldmVyeXRoaW5nIHVudGlsIHdoaXRlc3BhY2Ugb3IgPSBvciA6ICh0YWtpbmcgaW50byBhY2NvdW50IGJhY2tzbGFzaGVzKVxuICAgICAgLy8gY2FzZSBvZiBhIGtleS12YWx1ZSBwYWlyXG4gICAgICB7XG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IEtFWSArIEVRVUFMX0RFTElNIH0sXG4gICAgICAgICAgeyBiZWdpbjogS0VZICsgV1NfREVMSU0gfVxuICAgICAgICBdLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgYmVnaW46IEtFWSxcbiAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHN0YXJ0czogREVMSU1fQU5EX1ZBTFVFXG4gICAgICB9LFxuICAgICAgLy8gY2FzZSBvZiBhbiBlbXB0eSBrZXlcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cicsXG4gICAgICAgIGJlZ2luOiBLRVkgKyBXUzAgKyAnJCdcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHJvcGVydGllcztcbiIsICIvKlxuTGFuZ3VhZ2U6IFByb3RvY29sIEJ1ZmZlcnNcbkF1dGhvcjogRGFuIFRhbyA8ZGFuaWVsLnRhb0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogUHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgZGVmaW5pdGlvbiBmb3JtYXRcbldlYnNpdGU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzNcbkNhdGVnb3J5OiBwcm90b2NvbHNcbiovXG5cbmZ1bmN0aW9uIHByb3RvYnVmKGhsanMpIHtcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJwYWNrYWdlXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwib3B0aW9uYWxcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJyZXBlYXRlZFwiLFxuICAgIFwiZ3JvdXBcIixcbiAgICBcIm9uZW9mXCJcbiAgXTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJkb3VibGVcIixcbiAgICBcImZsb2F0XCIsXG4gICAgXCJpbnQzMlwiLFxuICAgIFwiaW50NjRcIixcbiAgICBcInVpbnQzMlwiLFxuICAgIFwidWludDY0XCIsXG4gICAgXCJzaW50MzJcIixcbiAgICBcInNpbnQ2NFwiLFxuICAgIFwiZml4ZWQzMlwiLFxuICAgIFwiZml4ZWQ2NFwiLFxuICAgIFwic2ZpeGVkMzJcIixcbiAgICBcInNmaXhlZDY0XCIsXG4gICAgXCJib29sXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcImJ5dGVzXCJcbiAgXTtcbiAgY29uc3QgQ0xBU1NfREVGSU5JVElPTiA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhtZXNzYWdlfGVudW18c2VydmljZSlcXHMrLyxcbiAgICAgIGhsanMuSURFTlRfUkVcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIlxuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdQcm90b2NvbCBCdWZmZXJzJyxcbiAgICBhbGlhc2VzOiBbJ3Byb3RvJ10sXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBsaXRlcmFsOiBbXG4gICAgICAgICd0cnVlJyxcbiAgICAgICAgJ2ZhbHNlJ1xuICAgICAgXVxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIENMQVNTX0RFRklOSVRJT04sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3JwYycsXG4gICAgICAgIGVuZDogL1t7O10vLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogJ3JwYyByZXR1cm5zJ1xuICAgICAgfSxcbiAgICAgIHsgLy8gbWF0Y2ggZW51bSBpdGVtcyAocmVsZXZhbmNlKVxuICAgICAgICAvLyBCTEFIID0gLi4uO1xuICAgICAgICBiZWdpbjogL15cXHMqW0EtWl9dKyg/PVxccyo9W15cXG5dKzskKS8gfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm90b2J1ZjtcbiIsICIvKlxuTGFuZ3VhZ2U6IFB1cHBldFxuQXV0aG9yOiBKb3NlIE1vbGluYSBDb2xtZW5lcm8gPGdhdWR5NDFAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9wdXBwZXQuY29tL2RvY3NcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbmZ1bmN0aW9uIHB1cHBldChobGpzKSB7XG4gIGNvbnN0IFBVUFBFVF9LRVlXT1JEUyA9IHtcbiAgICBrZXl3b3JkOlxuICAgIC8qIGxhbmd1YWdlIGtleXdvcmRzICovXG4gICAgICAnYW5kIGNhc2UgZGVmYXVsdCBlbHNlIGVsc2lmIGZhbHNlIGlmIGluIGltcG9ydCBlbmhlcml0cyBub2RlIG9yIHRydWUgdW5kZWYgdW5sZXNzIG1haW4gc2V0dGluZ3MgJHN0cmluZyAnLFxuICAgIGxpdGVyYWw6XG4gICAgLyogbWV0YXBhcmFtZXRlcnMgKi9cbiAgICAgICdhbGlhcyBhdWRpdCBiZWZvcmUgbG9nbGV2ZWwgbm9vcCByZXF1aXJlIHN1YnNjcmliZSB0YWcgJ1xuICAgICAgLyogbm9ybWFsIGF0dHJpYnV0ZXMgKi9cbiAgICAgICsgJ293bmVyIGVuc3VyZSBncm91cCBtb2RlIG5hbWV8MCBjaGFuZ2VzIGNvbnRleHQgZm9yY2UgaW5jbCBsZW5zIGxvYWRfcGF0aCBvbmx5aWYgcHJvdmlkZXIgcmV0dXJucyByb290IHNob3dfZGlmZiB0eXBlX2NoZWNrICdcbiAgICAgICsgJ2VuX2FkZHJlc3MgaXBfYWRkcmVzcyByZWFsbmFtZSBjb21tYW5kIGVudmlyb25tZW50IGhvdXIgbW9udXRlIG1vbnRoIG1vbnRoZGF5IHNwZWNpYWwgdGFyZ2V0IHdlZWtkYXkgJ1xuICAgICAgKyAnY3JlYXRlcyBjd2Qgb2dvdXRwdXQgcmVmcmVzaCByZWZyZXNob25seSB0cmllcyB0cnlfc2xlZXAgdW1hc2sgYmFja3VwIGNoZWNrc3VtIGNvbnRlbnQgY3RpbWUgZm9yY2UgaWdub3JlICdcbiAgICAgICsgJ2xpbmtzIG10aW1lIHB1cmdlIHJlY3Vyc2UgcmVjdXJzZWxpbWl0IHJlcGxhY2Ugc2VsaW51eF9pZ25vcmVfZGVmYXVsdHMgc2VscmFuZ2Ugc2Vscm9sZSBzZWx0eXBlIHNlbHVzZXIgc291cmNlICdcbiAgICAgICsgJ3NvdWlyY2VfcGVybWlzc2lvbnMgc291cmNlc2VsZWN0IHZhbGlkYXRlX2NtZCB2YWxpZGF0ZV9yZXBsYWNlbWVudCBhbGxvd2R1cGUgYXR0cmlidXRlX21lbWJlcnNoaXAgYXV0aF9tZW1iZXJzaGlwIGZvcmNlbG9jYWwgZ2lkICdcbiAgICAgICsgJ2lhX2xvYWRfbW9kdWxlIG1lbWJlcnMgc3lzdGVtIGhvc3RfYWxpYXNlcyBpcCBhbGxvd2VkX3RydW5rX3ZsYW5zIGRlc2NyaXB0aW9uIGRldmljZV91cmwgZHVwbGV4IGVuY2Fwc3VsYXRpb24gZXRoZXJjaGFubmVsICdcbiAgICAgICsgJ25hdGl2ZV92bGFuIHNwZWVkIHByaW5jaXBhbHMgYWxsb3dfcm9vdCBhdXRoX2NsYXNzIGF1dGhfdHlwZSBhdXRoZW50aWNhdGVfdXNlciBrX29mX24gbWVjaGFuaXNtcyBydWxlIHNlc3Npb25fb3duZXIgc2hhcmVkIG9wdGlvbnMgJ1xuICAgICAgKyAnZGV2aWNlIGZzdHlwZSBlbmFibGUgaGFzcmVzdGFydCBkaXJlY3RvcnkgcHJlc2VudCBhYnNlbnQgbGluayBhdGJvb3QgYmxvY2tkZXZpY2UgZGV2aWNlIGR1bXAgcGFzcyByZW1vdW50cyBwb2xsZXJfdGFnIHVzZSAnXG4gICAgICArICdtZXNzYWdlIHdpdGhwYXRoIGFkbWluZmlsZSBhbGxvd192aXJ0dWFsIGFsbG93Y2Ryb20gY2F0ZWdvcnkgY29uZmlnZmlsZXMgZmxhdm9yIGluc3RhbGxfb3B0aW9ucyBpbnN0YW5jZSBwYWNrYWdlX3NldHRpbmdzIHBsYXRmb3JtICdcbiAgICAgICsgJ3Jlc3BvbnNlZmlsZSBzdGF0dXMgdW5pbnN0YWxsX29wdGlvbnMgdmVuZG9yIHVubGVzc19zeXN0ZW1fdXNlciB1bmxlc3NfdWlkIGJpbmFyeSBjb250cm9sIGZsYWdzIGhhc3N0YXR1cyBtYW5pZmVzdCBwYXR0ZXJuIHJlc3RhcnQgcnVubmluZyAnXG4gICAgICArICdzdGFydCBzdG9wIGFsbG93ZHVwZSBhdXRocyBleHBpcnkgZ2lkIGdyb3VwcyBob21lIGl0ZXJhdGlvbnMga2V5X21lbWJlcnNoaXAga2V5cyBtYW5hZ2Vob21lIG1lbWJlcnNoaXAgcGFzc3dvcmQgcGFzc3dvcmRfbWF4X2FnZSAnXG4gICAgICArICdwYXNzd29yZF9taW5fYWdlIHByb2ZpbGVfbWVtYmVyc2hpcCBwcm9maWxlcyBwcm9qZWN0IHB1cmdlX3NzaF9rZXlzIHJvbGVfbWVtYmVyc2hpcCByb2xlcyBzYWx0IHNoZWxsIHVpZCBiYXNldXJsIGNvc3QgZGVzY3IgZW5hYmxlZCAnXG4gICAgICArICdlbmFibGVncm91cHMgZXhjbHVkZSBmYWlsb3Zlcm1ldGhvZCBncGdjaGVjayBncGdrZXkgaHR0cF9jYWNoaW5nIGluY2x1ZGUgaW5jbHVkZXBrZ3Mga2VlcGFsaXZlIG1ldGFkYXRhX2V4cGlyZSBtZXRhbGluayBtaXJyb3JsaXN0ICdcbiAgICAgICsgJ3ByaW9yaXR5IHByb3RlY3QgcHJveHkgcHJveHlfcGFzc3dvcmQgcHJveHlfdXNlcm5hbWUgcmVwb19ncGdjaGVjayBzM19lbmFibGVkIHNraXBfaWZfdW5hdmFpbGFibGUgc3NsY2FjZXJ0IHNzbGNsaWVudGNlcnQgc3NsY2xpZW50a2V5ICdcbiAgICAgICsgJ3NzbHZlcmlmeSBtb3VudGVkJyxcbiAgICBidWlsdF9pbjpcbiAgICAvKiBjb3JlIGZhY3RzICovXG4gICAgICAnYXJjaGl0ZWN0dXJlIGF1Z2Vhc3ZlcnNpb24gYmxvY2tkZXZpY2VzIGJvYXJkbWFudWZhY3R1cmVyIGJvYXJkcHJvZHVjdG5hbWUgYm9hcmRzZXJpYWxudW1iZXIgY2ZrZXkgZGhjcF9zZXJ2ZXJzICdcbiAgICAgICsgJ2RvbWFpbiBlYzJfIGVjMl91c2VyZGF0YSBmYWN0ZXJ2ZXJzaW9uIGZpbGVzeXN0ZW1zIGxkb20gZnFkbiBnaWQgaGFyZHdhcmVpc2EgaGFyZHdhcmVtb2RlbCBob3N0bmFtZSBpZHwwIGludGVyZmFjZXMgJ1xuICAgICAgKyAnaXBhZGRyZXNzIGlwYWRkcmVzc18gaXBhZGRyZXNzNiBpcGFkZHJlc3M2XyBpcGhvc3RudW1iZXIgaXNfdmlydHVhbCBrZXJuZWwga2VybmVsbWFqdmVyc2lvbiBrZXJuZWxyZWxlYXNlIGtlcm5lbHZlcnNpb24gJ1xuICAgICAgKyAna2VybmVscmVsZWFzZSBrZXJuZWx2ZXJzaW9uIGxzYmRpc3Rjb2RlbmFtZSBsc2JkaXN0ZGVzY3JpcHRpb24gbHNiZGlzdGlkIGxzYmRpc3RyZWxlYXNlIGxzYm1hamRpc3RyZWxlYXNlIGxzYm1pbm9yZGlzdHJlbGVhc2UgJ1xuICAgICAgKyAnbHNicmVsZWFzZSBtYWNhZGRyZXNzIG1hY2FkZHJlc3NfIG1hY29zeF9idWlsZHZlcnNpb24gbWFjb3N4X3Byb2R1Y3RuYW1lIG1hY29zeF9wcm9kdWN0dmVyc2lvbiBtYWNvc3hfcHJvZHVjdHZlcnNvbl9tYWpvciAnXG4gICAgICArICdtYWNvc3hfcHJvZHVjdHZlcnNpb25fbWlub3IgbWFudWZhY3R1cmVyIG1lbW9yeWZyZWUgbWVtb3J5c2l6ZSBuZXRtYXNrIG1ldG1hc2tfIG5ldHdvcmtfIG9wZXJhdGluZ3N5c3RlbSBvcGVyYXRpbmdzeXN0ZW1tYWpyZWxlYXNlICdcbiAgICAgICsgJ29wZXJhdGluZ3N5c3RlbXJlbGVhc2Ugb3NmYW1pbHkgcGFydGl0aW9ucyBwYXRoIHBoeXNpY2FscHJvY2Vzc29yY291bnQgcHJvY2Vzc29yIHByb2Nlc3NvcmNvdW50IHByb2R1Y3RuYW1lIHBzIHB1cHBldHZlcnNpb24gJ1xuICAgICAgKyAncnVieXNpdGVkaXIgcnVieXZlcnNpb24gc2VsaW51eCBzZWxpbnV4X2NvbmZpZ19tb2RlIHNlbGludXhfY29uZmlnX3BvbGljeSBzZWxpbnV4X2N1cnJlbnRfbW9kZSBzZWxpbnV4X2N1cnJlbnRfbW9kZSBzZWxpbnV4X2VuZm9yY2VkICdcbiAgICAgICsgJ3NlbGludXhfcG9saWN5dmVyc2lvbiBzZXJpYWxudW1iZXIgc3BfIHNzaGRzYWtleSBzc2hlY2RzYWtleSBzc2hyc2FrZXkgc3dhcGVuY3J5cHRlZCBzd2FwZnJlZSBzd2Fwc2l6ZSB0aW1lem9uZSB0eXBlIHVuaXF1ZWlkIHVwdGltZSAnXG4gICAgICArICd1cHRpbWVfZGF5cyB1cHRpbWVfaG91cnMgdXB0aW1lX3NlY29uZHMgdXVpZCB2aXJ0dWFsIHZsYW5zIHhlbmRvbWFpbnMgemZzX3ZlcnNpb24gem9uZW5hZSB6b25lcyB6cG9vbF92ZXJzaW9uJ1xuICB9O1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQoJyMnLCAnJCcpO1xuXG4gIGNvbnN0IElERU5UX1JFID0gJyhbQS1aYS16X118OjopKFxcXFx3fDo6KSonO1xuXG4gIGNvbnN0IFRJVExFID0gaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwgeyBiZWdpbjogSURFTlRfUkUgfSk7XG5cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAnXFxcXCQnICsgSURFTlRfUkVcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSSUFCTEVcbiAgICBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1B1cHBldCcsXG4gICAgYWxpYXNlczogWyAncHAnIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIENPTU1FTlQsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIFNUUklORyxcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzJyxcbiAgICAgICAgZW5kOiAnXFxcXHt8OycsXG4gICAgICAgIGlsbGVnYWw6IC89LyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBUSVRMRSxcbiAgICAgICAgICBDT01NRU5UXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdkZWZpbmUnLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NlY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUsXG4gICAgICAgICAgICBlbmRzUGFyZW50OiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRSArICdcXFxccytcXFxceycsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9cXFMvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46IGhsanMuSURFTlRfUkUsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAuMlxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBQVVBQRVRfS0VZV09SRFMsXG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgICAgIENPTU1FTlQsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogJ1thLXpBLVpfXStcXFxccyo9PicsXG4gICAgICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgZW5kOiAnPT4nLFxuICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2F0dHInLFxuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5JREVOVF9SRVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgYmVnaW46ICcoXFxcXGIwWzAtN19dKyl8KFxcXFxiMHhbMC05YS1mQS1GX10rKXwoXFxcXGJbMS05XVswLTlfXSooXFxcXC5bMC05X10rKT8pfFswX11cXFxcYicsXG4gICAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFZBUklBQkxFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcHVwcGV0O1xuIiwgIi8qXG5MYW5ndWFnZTogUHVyZUJBU0lDXG5BdXRob3I6IFRyaXN0YW5vIEFqbW9uZSA8dGFqbW9uZUBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgUHVyZUJBU0lDICh2LjUuMDAtNS42MCkuIE5vIGlubGluZSBBU00gaGlnaGxpZ2h0aW5nLiAodi4xLjIsIE1heSAyMDE3KVxuQ3JlZGl0czogSSd2ZSB0YWtlbiBpbnNwaXJhdGlvbiBmcm9tIHRoZSBQdXJlQmFzaWMgbGFuZ3VhZ2UgZmlsZSBmb3IgR2VTSGksIGNyZWF0ZWQgYnkgR3VzdGF2byBKdWxpbyBGaW9yZW56YSAoR3VTaEgpLlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cucHVyZWJhc2ljLmNvbVxuQ2F0ZWdvcnk6IHN5c3RlbVxuKi9cblxuLy8gQmFzZSBkZWFmdWx0IGNvbG9ycyBpbiBQQiBJREU6IGJhY2tncm91bmQ6ICNGRkZGREY7IGZvcmVncm91bmQ6ICMwMDAwMDA7XG5cbmZ1bmN0aW9uIHB1cmViYXNpYyhobGpzKSB7XG4gIGNvbnN0IFNUUklOR1MgPSB7IC8vIFBCIElERSBjb2xvcjogIzAwODBGRiAoQXp1cmUgUmFkaWFuY2UpXG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJyh+KT9cIicsXG4gICAgZW5kOiAnXCInLFxuICAgIGlsbGVnYWw6ICdcXFxcbidcbiAgfTtcbiAgY29uc3QgQ09OU1RBTlRTID0geyAvLyBQQiBJREUgY29sb3I6ICM5MjRCNzIgKENhbm5vbiBQaW5rKVxuICAgIC8vICBcIiNcIiArIGEgbGV0dGVyIG9yIHVuZGVyc2NvcmUgKyBsZXR0ZXJzLCBkaWdpdHMgb3IgdW5kZXJzY29yZXMgKyAob3B0aW9uYWwpIFwiJFwiXG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogJyNbYS16QS1aX11cXFxcdypcXFxcJD8nXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUHVyZUJBU0lDJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAncGInLFxuICAgICAgJ3BiaSdcbiAgICBdLFxuICAgIGtleXdvcmRzOiAvLyBQQiBJREUgY29sb3I6ICMwMDY2NjYgKEJsdWUgU3RvbmUpICsgQm9sZFxuICAgICAgLy8gS2V5d29yZHMgZnJvbSBhbGwgdmVyc2lvbiBvZiBQdXJlQkFTSUMgNS4wMCB1cHdhcmQgLi4uXG4gICAgICAnQWxpZ24gQW5kIEFycmF5IEFzIEJyZWFrIENhbGxEZWJ1Z2dlciBDYXNlIENvbXBpbGVyQ2FzZSBDb21waWxlckRlZmF1bHQgJ1xuICAgICAgKyAnQ29tcGlsZXJFbHNlIENvbXBpbGVyRWxzZUlmIENvbXBpbGVyRW5kSWYgQ29tcGlsZXJFbmRTZWxlY3QgQ29tcGlsZXJFcnJvciAnXG4gICAgICArICdDb21waWxlcklmIENvbXBpbGVyU2VsZWN0IENvbXBpbGVyV2FybmluZyBDb250aW51ZSBEYXRhIERhdGFTZWN0aW9uIERlYnVnICdcbiAgICAgICsgJ0RlYnVnTGV2ZWwgRGVjbGFyZSBEZWNsYXJlQyBEZWNsYXJlQ0RMTCBEZWNsYXJlRExMIERlY2xhcmVNb2R1bGUgRGVmYXVsdCAnXG4gICAgICArICdEZWZpbmUgRGltIERpc2FibGVBU00gRGlzYWJsZURlYnVnZ2VyIERpc2FibGVFeHBsaWNpdCBFbHNlIEVsc2VJZiBFbmFibGVBU00gJ1xuICAgICAgKyAnRW5hYmxlRGVidWdnZXIgRW5hYmxlRXhwbGljaXQgRW5kIEVuZERhdGFTZWN0aW9uIEVuZERlY2xhcmVNb2R1bGUgRW5kRW51bWVyYXRpb24gJ1xuICAgICAgKyAnRW5kSWYgRW5kSW1wb3J0IEVuZEludGVyZmFjZSBFbmRNYWNybyBFbmRNb2R1bGUgRW5kUHJvY2VkdXJlIEVuZFNlbGVjdCAnXG4gICAgICArICdFbmRTdHJ1Y3R1cmUgRW5kU3RydWN0dXJlVW5pb24gRW5kV2l0aCBFbnVtZXJhdGlvbiBFbnVtZXJhdGlvbkJpbmFyeSBFeHRlbmRzICdcbiAgICAgICsgJ0Zha2VSZXR1cm4gRm9yIEZvckVhY2ggRm9yRXZlciBHbG9iYWwgR29zdWIgR290byBJZiBJbXBvcnQgSW1wb3J0QyAnXG4gICAgICArICdJbmNsdWRlQmluYXJ5IEluY2x1ZGVGaWxlIEluY2x1ZGVQYXRoIEludGVyZmFjZSBMaXN0IE1hY3JvIE1hY3JvRXhwYW5kZWRDb3VudCAnXG4gICAgICArICdNYXAgTW9kdWxlIE5ld0xpc3QgTmV3TWFwIE5leHQgTm90IE9yIFByb2NlZHVyZSBQcm9jZWR1cmVDICdcbiAgICAgICsgJ1Byb2NlZHVyZUNETEwgUHJvY2VkdXJlRExMIFByb2NlZHVyZVJldHVybiBQcm90ZWN0ZWQgUHJvdG90eXBlIFByb3RvdHlwZUMgUmVEaW0gJ1xuICAgICAgKyAnUmVhZCBSZXBlYXQgUmVzdG9yZSBSZXR1cm4gUnVudGltZSBTZWxlY3QgU2hhcmVkIFN0YXRpYyBTdGVwIFN0cnVjdHVyZSAnXG4gICAgICArICdTdHJ1Y3R1cmVVbmlvbiBTd2FwIFRocmVhZGVkIFRvIFVuZGVmaW5lTWFjcm8gVW50aWwgVW50aWwgIFVudXNlTW9kdWxlICdcbiAgICAgICsgJ1VzZU1vZHVsZSBXZW5kIFdoaWxlIFdpdGggWEluY2x1ZGVGaWxlIFhPcicsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC8vIENPTU1FTlRTIHwgUEIgSURFIGNvbG9yOiAjMDBBQUFBIChQZXJzaWFuIEdyZWVuKVxuICAgICAgaGxqcy5DT01NRU5UKCc7JywgJyQnLCB7IHJlbGV2YW5jZTogMCB9KSxcblxuICAgICAgeyAvLyBQUk9DRURVUkVTIERFRklOSVRJT05TXG4gICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYihQcm9jZWR1cmV8RGVjbGFyZSkoQ3xDRExMfERMTCk/XFxcXGInLFxuICAgICAgICBlbmQ6ICdcXFxcKCcsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgLy8gUFJPQ0VEVVJFIEtFWVdPUkRTIHwgUEIgSURFIGNvbG9yOiAjMDA2NjY2IChCbHVlIFN0b25lKSArIEJvbGRcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgYmVnaW46ICcoUHJvY2VkdXJlfERlY2xhcmUpKEN8Q0RMTHxETEwpPycsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIFBST0NFRFVSRSBSRVRVUk4gVFlQRSBTRVRUSU5HIHwgUEIgSURFIGNvbG9yOiAjMDAwMDAwIChCbGFjaylcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICAgICAgYmVnaW46ICdcXFxcLlxcXFx3KidcbiAgICAgICAgICAgIC8vIGVuZDogJyAnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgLy8gUFJPQ0VEVVJFIE5BTUUgfCBQQiBJREUgY29sb3I6ICMwMDY2NjYgKEJsdWUgU3RvbmUpXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBTVFJJTkdTLFxuICAgICAgQ09OU1RBTlRTXG4gICAgXVxuICB9O1xufVxuXG4vKiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENIQU5HRUxPR1xuICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIC0gdi4xLjIgKDIwMTctMDUtMTIpXG4gICAgICAgIC0tIEJVRy1GSVg6IFNvbWUga2V5d29yZHMgd2VyZSBhY2NpZGVudGFsbHkgam95bmVkIHRvZ2V0aGVyLiBOb3cgZml4ZWQuXG4gICAgLSB2LjEuMSAoMjAxNy0wNC0zMClcbiAgICAgICAgLS0gVXBkYXRlZCB0byBQdXJlQkFTSUMgNS42MC5cbiAgICAgICAgLS0gS2V5d29yZHMgbGlzdCBub3cgYnVpbHQgYnkgZXh0cmFjdGluZyB0aGVtIGZyb20gdGhlIFB1cmVCQVNJQyBTREsnc1xuICAgICAgICAgICBcIlN5bnRheEhpbGlnaHRpbmcuZGxsXCIgKGZyb20gZWFjaCBQdXJlQkFTSUMgdmVyc2lvbikuIFRva2VucyBmcm9tIGVhY2hcbiAgICAgICAgICAgdmVyc2lvbiBhcmUgYWRkZWQgdG8gdGhlIGxpc3QsIGFuZCByZW5hbWVkIG9yIHJlbW92ZWQgdG9rZW5zIGFyZSBrZXB0XG4gICAgICAgICAgIGZvciB0aGUgc2FrZSBvZiBjb3ZlcmluZyBhbGwgdmVyc2lvbnMgb2YgdGhlIGxhbmd1YWdlIGZyb20gUHVyZUJBU0lDXG4gICAgICAgICAgIHY1LjAwIHVwd2FyZC4gKE5PVEU6IGN1cnJlbnRseSwgdGhlcmUgYXJlIG5vIHJlbmFtZWQgb3IgZGVwcmVjYXRlZFxuICAgICAgICAgICB0b2tlbnMgaW4gdGhlIGtleXdvcmRzIGxpc3QpLiBGb3IgbW9yZSBpbmZvLCBzZWU6XG4gICAgICAgICAgIC0tIGh0dHA6Ly93d3cucHVyZWJhc2ljLmZyL2VuZ2xpc2gvdmlld3RvcGljLnBocD8mcD01MDYyNjlcbiAgICAgICAgICAgLS0gaHR0cHM6Ly9naXRodWIuY29tL3Rham1vbmUvcHVyZWJhc2ljLWFyY2hpdmVzL3RyZWUvbWFzdGVyL3N5bnRheC1oaWdobGlnaHRpbmcvZ3VpZGVsaW5lc1xuICAgIC0gdi4xLjAgKEFwcmlsIDIwMTYpXG4gICAgICAgIC0tIEZpcnN0IHJlbGVhc2VcbiAgICAgICAgLS0gS2V5d29yZHMgbGlzdCB0YWtlbiBhbmQgYWRhcHRlZCBmcm9tIEd1U2hIJ3MgKEd1c3Rhdm8gSnVsaW8gRmlvcmVuemEpXG4gICAgICAgICAgIFB1cmVCYXNpYyBsYW5ndWFnZSBmaWxlIGZvciBHZVNIaTpcbiAgICAgICAgICAgLS0gaHR0cHM6Ly9naXRodWIuY29tL2Vhc3lib29rL2dlc2hpL2Jsb2IvbWFzdGVyL2dlc2hpL3B1cmViYXNpYy5waHBcbiovXG5cbm1vZHVsZS5leHBvcnRzID0gcHVyZWJhc2ljO1xuIiwgIi8qXG5MYW5ndWFnZTogUHl0aG9uXG5EZXNjcmlwdGlvbjogUHl0aG9uIGlzIGFuIGludGVycHJldGVkLCBvYmplY3Qtb3JpZW50ZWQsIGhpZ2gtbGV2ZWwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2Ugd2l0aCBkeW5hbWljIHNlbWFudGljcy5cbldlYnNpdGU6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmdcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHB5dGhvbihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgY29uc3QgSURFTlRfUkUgPSAvW1xccHtYSURfU3RhcnR9X11cXHB7WElEX0NvbnRpbnVlfSovdTtcbiAgY29uc3QgUkVTRVJWRURfV09SRFMgPSBbXG4gICAgJ2FuZCcsXG4gICAgJ2FzJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAnYXN5bmMnLFxuICAgICdhd2FpdCcsXG4gICAgJ2JyZWFrJyxcbiAgICAnY2FzZScsXG4gICAgJ2NsYXNzJyxcbiAgICAnY29udGludWUnLFxuICAgICdkZWYnLFxuICAgICdkZWwnLFxuICAgICdlbGlmJyxcbiAgICAnZWxzZScsXG4gICAgJ2V4Y2VwdCcsXG4gICAgJ2ZpbmFsbHknLFxuICAgICdmb3InLFxuICAgICdmcm9tJyxcbiAgICAnZ2xvYmFsJyxcbiAgICAnaWYnLFxuICAgICdpbXBvcnQnLFxuICAgICdpbicsXG4gICAgJ2lzJyxcbiAgICAnbGFtYmRhJyxcbiAgICAnbWF0Y2gnLFxuICAgICdub25sb2NhbHwxMCcsXG4gICAgJ25vdCcsXG4gICAgJ29yJyxcbiAgICAncGFzcycsXG4gICAgJ3JhaXNlJyxcbiAgICAncmV0dXJuJyxcbiAgICAndHJ5JyxcbiAgICAnd2hpbGUnLFxuICAgICd3aXRoJyxcbiAgICAneWllbGQnXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgICdfX2ltcG9ydF9fJyxcbiAgICAnYWJzJyxcbiAgICAnYWxsJyxcbiAgICAnYW55JyxcbiAgICAnYXNjaWknLFxuICAgICdiaW4nLFxuICAgICdib29sJyxcbiAgICAnYnJlYWtwb2ludCcsXG4gICAgJ2J5dGVhcnJheScsXG4gICAgJ2J5dGVzJyxcbiAgICAnY2FsbGFibGUnLFxuICAgICdjaHInLFxuICAgICdjbGFzc21ldGhvZCcsXG4gICAgJ2NvbXBpbGUnLFxuICAgICdjb21wbGV4JyxcbiAgICAnZGVsYXR0cicsXG4gICAgJ2RpY3QnLFxuICAgICdkaXInLFxuICAgICdkaXZtb2QnLFxuICAgICdlbnVtZXJhdGUnLFxuICAgICdldmFsJyxcbiAgICAnZXhlYycsXG4gICAgJ2ZpbHRlcicsXG4gICAgJ2Zsb2F0JyxcbiAgICAnZm9ybWF0JyxcbiAgICAnZnJvemVuc2V0JyxcbiAgICAnZ2V0YXR0cicsXG4gICAgJ2dsb2JhbHMnLFxuICAgICdoYXNhdHRyJyxcbiAgICAnaGFzaCcsXG4gICAgJ2hlbHAnLFxuICAgICdoZXgnLFxuICAgICdpZCcsXG4gICAgJ2lucHV0JyxcbiAgICAnaW50JyxcbiAgICAnaXNpbnN0YW5jZScsXG4gICAgJ2lzc3ViY2xhc3MnLFxuICAgICdpdGVyJyxcbiAgICAnbGVuJyxcbiAgICAnbGlzdCcsXG4gICAgJ2xvY2FscycsXG4gICAgJ21hcCcsXG4gICAgJ21heCcsXG4gICAgJ21lbW9yeXZpZXcnLFxuICAgICdtaW4nLFxuICAgICduZXh0JyxcbiAgICAnb2JqZWN0JyxcbiAgICAnb2N0JyxcbiAgICAnb3BlbicsXG4gICAgJ29yZCcsXG4gICAgJ3BvdycsXG4gICAgJ3ByaW50JyxcbiAgICAncHJvcGVydHknLFxuICAgICdyYW5nZScsXG4gICAgJ3JlcHInLFxuICAgICdyZXZlcnNlZCcsXG4gICAgJ3JvdW5kJyxcbiAgICAnc2V0JyxcbiAgICAnc2V0YXR0cicsXG4gICAgJ3NsaWNlJyxcbiAgICAnc29ydGVkJyxcbiAgICAnc3RhdGljbWV0aG9kJyxcbiAgICAnc3RyJyxcbiAgICAnc3VtJyxcbiAgICAnc3VwZXInLFxuICAgICd0dXBsZScsXG4gICAgJ3R5cGUnLFxuICAgICd2YXJzJyxcbiAgICAnemlwJ1xuICBdO1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgICdfX2RlYnVnX18nLFxuICAgICdFbGxpcHNpcycsXG4gICAgJ0ZhbHNlJyxcbiAgICAnTm9uZScsXG4gICAgJ05vdEltcGxlbWVudGVkJyxcbiAgICAnVHJ1ZSdcbiAgXTtcblxuICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdHlwaW5nLmh0bWxcbiAgLy8gVE9ETzogQ291bGQgdGhlc2UgYmUgc3VwcGxlbWVudGVkIGJ5IGEgQ2FtZWxDYXNlIG1hdGNoZXIgaW4gY2VydGFpblxuICAvLyBjb250ZXh0cywgbGVhdmluZyB0aGVzZSByZW1haW5pbmcgb25seSBmb3IgcmVsZXZhbmNlIGhpbnRpbmc/XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiQW55XCIsXG4gICAgXCJDYWxsYWJsZVwiLFxuICAgIFwiQ29yb3V0aW5lXCIsXG4gICAgXCJEaWN0XCIsXG4gICAgXCJMaXN0XCIsXG4gICAgXCJMaXRlcmFsXCIsXG4gICAgXCJHZW5lcmljXCIsXG4gICAgXCJPcHRpb25hbFwiLFxuICAgIFwiU2VxdWVuY2VcIixcbiAgICBcIlNldFwiLFxuICAgIFwiVHVwbGVcIixcbiAgICBcIlR5cGVcIixcbiAgICBcIlVuaW9uXCJcbiAgXTtcblxuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogL1tBLVphLXpdXFx3K3xfX1xcdytfXy8sXG4gICAga2V5d29yZDogUkVTRVJWRURfV09SRFMsXG4gICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICB0eXBlOiBUWVBFU1xuICB9O1xuXG4gIGNvbnN0IFBST01QVCA9IHtcbiAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICBiZWdpbjogL14oPj4+fFxcLlxcLlxcLikgL1xuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogL1xcey8sXG4gICAgZW5kOiAvXFx9LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLyMvXG4gIH07XG5cbiAgY29uc3QgTElURVJBTF9CUkFDS0VUID0ge1xuICAgIGJlZ2luOiAvXFx7XFx7LyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXSxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbdVVdfFtiQl18W3JSXXxbYkJdW3JSXXxbclJdW2JCXSk/JycnLyxcbiAgICAgICAgZW5kOiAvJycnLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgUFJPTVBUXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFt1VV18W2JCXXxbclJdfFtiQl1bclJdfFtyUl1bYkJdKT9cIlwiXCIvLFxuICAgICAgICBlbmQ6IC9cIlwiXCIvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBQUk9NUFRcbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8oW2ZGXVtyUl18W3JSXVtmRl18W2ZGXSknJycvLFxuICAgICAgICBlbmQ6IC8nJycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSxcbiAgICAgICAgICBQUk9NUFQsXG4gICAgICAgICAgTElURVJBTF9CUkFDS0VULFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pXCJcIlwiLyxcbiAgICAgICAgZW5kOiAvXCJcIlwiLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgUFJPTVBULFxuICAgICAgICAgIExJVEVSQUxfQlJBQ0tFVCxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbdVVdfFtyUl0pJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbdVVdfFtyUl0pXCIvLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtiQl18W2JCXVtyUl18W3JSXVtiQl0pJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbYkJdfFtiQl1bclJdfFtyUl1bYkJdKVwiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogLyhbZkZdW3JSXXxbclJdW2ZGXXxbZkZdKScvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgTElURVJBTF9CUkFDS0VULFxuICAgICAgICAgIFNVQlNUXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvKFtmRl1bclJdfFtyUl1bZkZdfFtmRl0pXCIvLFxuICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIExJVEVSQUxfQlJBQ0tFVCxcbiAgICAgICAgICBTVUJTVFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNudW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRpZ2l0cGFydCA9ICdbMC05XShfP1swLTldKSonO1xuICBjb25zdCBwb2ludGZsb2F0ID0gYChcXFxcYigke2RpZ2l0cGFydH0pKT9cXFxcLigke2RpZ2l0cGFydH0pfFxcXFxiKCR7ZGlnaXRwYXJ0fSlcXFxcLmA7XG4gIC8vIFdoaXRlc3BhY2UgYWZ0ZXIgYSBudW1iZXIgKG9yIGFueSBsZXhpY2FsIHRva2VuKSBpcyBuZWVkZWQgb25seSBpZiBpdHMgYWJzZW5jZVxuICAvLyB3b3VsZCBjaGFuZ2UgdGhlIHRva2VuaXphdGlvblxuICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCN3aGl0ZXNwYWNlLWJldHdlZW4tdG9rZW5zXG4gIC8vIFdlIGRldmlhdGUgc2xpZ2h0bHksIHJlcXVpcmluZyBhIHdvcmQgYm91bmRhcnkgb3IgYSBrZXl3b3JkXG4gIC8vIHRvIGF2b2lkIGFjY2lkZW50YWxseSByZWNvZ25pemluZyAqcHJlZml4ZXMqIChlLmcuLCBgMGAgaW4gYDB4NDFgIG9yIGAwOGAgb3IgYDBfXzFgKVxuICBjb25zdCBsb29rYWhlYWQgPSBgXFxcXGJ8JHtSRVNFUlZFRF9XT1JEUy5qb2luKCd8Jyl9YDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBleHBvbmVudGZsb2F0LCBwb2ludGZsb2F0XG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNmbG9hdGluZy1wb2ludC1saXRlcmFsc1xuICAgICAgLy8gb3B0aW9uYWxseSBpbWFnaW5hcnlcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2ltYWdpbmFyeS1saXRlcmFsc1xuICAgICAgLy8gTm90ZTogbm8gbGVhZGluZyBcXGIgYmVjYXVzZSBmbG9hdHMgY2FuIHN0YXJ0IHdpdGggYSBkZWNpbWFsIHBvaW50XG4gICAgICAvLyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtaXNoYW5kbGUgZS5nLiBgZm4oLjUpYCxcbiAgICAgIC8vIG5vIHRyYWlsaW5nIFxcYiBmb3IgcG9pbnRmbG9hdCBiZWNhdXNlIGl0IGNhbiBlbmQgd2l0aCBhIGRlY2ltYWwgcG9pbnRcbiAgICAgIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1pc2hhbmRsZSBlLmcuIGAwLi5oZXgoKWA7IHRoaXMgc2hvdWxkIGJlIHNhZmVcbiAgICAgIC8vIGJlY2F1c2UgYm90aCBNVVNUIGNvbnRhaW4gYSBkZWNpbWFsIHBvaW50IGFuZCBzbyBjYW5ub3QgYmUgY29uZnVzZWQgd2l0aFxuICAgICAgLy8gdGhlIGludGVyaW9yIHBhcnQgb2YgYW4gaWRlbnRpZmllclxuICAgICAge1xuICAgICAgICBiZWdpbjogYChcXFxcYigke2RpZ2l0cGFydH0pfCgke3BvaW50ZmxvYXR9KSlbZUVdWystXT8oJHtkaWdpdHBhcnR9KVtqSl0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgKCR7cG9pbnRmbG9hdH0pW2pKXT9gXG4gICAgICB9LFxuXG4gICAgICAvLyBkZWNpbnRlZ2VyLCBiaW5pbnRlZ2VyLCBvY3RpbnRlZ2VyLCBoZXhpbnRlZ2VyXG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLjkvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNpbnRlZ2VyLWxpdGVyYWxzXG4gICAgICAvLyBvcHRpb25hbGx5IFwibG9uZ1wiIGluIFB5dGhvbiAyXG4gICAgICAvLyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8yLjcvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMuaHRtbCNpbnRlZ2VyLWFuZC1sb25nLWludGVnZXItbGl0ZXJhbHNcbiAgICAgIC8vIGRlY2ludGVnZXIgaXMgb3B0aW9uYWxseSBpbWFnaW5hcnlcbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMuOS9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5odG1sI2ltYWdpbmFyeS1saXRlcmFsc1xuICAgICAge1xuICAgICAgICBiZWdpbjogYFxcXFxiKFsxLTldKF8/WzAtOV0pKnwwKyhfPzApKilbbExqSl0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIwW2JCXShfP1swMV0pK1tsTF0/KD89JHtsb29rYWhlYWR9KWBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIwW29PXShfP1swLTddKStbbExdPyg/PSR7bG9va2FoZWFkfSlgXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogYFxcXFxiMFt4WF0oXz9bMC05YS1mQS1GXSkrW2xMXT8oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfSxcblxuICAgICAgLy8gaW1hZ251bWJlciAoZGlnaXRwYXJ0LWJhc2VkKVxuICAgICAgLy8gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy45L3JlZmVyZW5jZS9sZXhpY2FsX2FuYWx5c2lzLmh0bWwjaW1hZ2luYXJ5LWxpdGVyYWxzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBgXFxcXGIoJHtkaWdpdHBhcnR9KVtqSl0oPz0ke2xvb2thaGVhZH0pYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgQ09NTUVOVF9UWVBFID0ge1xuICAgIGNsYXNzTmFtZTogXCJjb21tZW50XCIsXG4gICAgYmVnaW46IHJlZ2V4Lmxvb2thaGVhZCgvIyB0eXBlOi8pLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBwcmV2ZW50IGtleXdvcmRzIGZyb20gY29sb3JpbmcgYHR5cGVgXG4gICAgICAgIGJlZ2luOiAvIyB0eXBlOi9cbiAgICAgIH0sXG4gICAgICAvLyBjb21tZW50IHdpdGhpbiBhIGRhdGF0eXBlIGNvbW1lbnQgaW5jbHVkZXMgbm8ga2V5d29yZHNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC8jLyxcbiAgICAgICAgZW5kOiAvXFxiXFxCLyxcbiAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWVcbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFBBUkFNUyA9IHtcbiAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICAvLyBFeGNsdWRlIHBhcmFtcyBpbiBmdW5jdGlvbnMgd2l0aG91dCBwYXJhbXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLFxuICAgICAgICBiZWdpbjogL1xcKFxccypcXCkvLFxuICAgICAgICBza2lwOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgIGVuZDogL1xcKS8sXG4gICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICBQUk9NUFQsXG4gICAgICAgICAgTlVNQkVSLFxuICAgICAgICAgIFNUUklORyxcbiAgICAgICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zID0gW1xuICAgIFNUUklORyxcbiAgICBOVU1CRVIsXG4gICAgUFJPTVBUXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUHl0aG9uJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAncHknLFxuICAgICAgJ2d5cCcsXG4gICAgICAnaXB5dGhvbidcbiAgICBdLFxuICAgIHVuaWNvZGVSZWdleDogdHJ1ZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgaWxsZWdhbDogLyg8XFwvfFxcPyl8PT4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBQUk9NUFQsXG4gICAgICBOVU1CRVIsXG4gICAgICB7XG4gICAgICAgIC8vIHZlcnkgY29tbW9uIGNvbnZlbnRpb25cbiAgICAgICAgc2NvcGU6ICd2YXJpYWJsZS5sYW5ndWFnZScsXG4gICAgICAgIG1hdGNoOiAvXFxic2VsZlxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGVhdCBcImlmXCIgcHJpb3IgdG8gc3RyaW5nIHNvIHRoYXQgaXQgd29uJ3QgYWNjaWRlbnRhbGx5IGJlXG4gICAgICAgIC8vIGxhYmVsZWQgYXMgYW4gZi1zdHJpbmdcbiAgICAgICAgYmVnaW5LZXl3b3JkczogXCJpZlwiLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IG1hdGNoOiAvXFxib3JcXGIvLCBzY29wZTogXCJrZXl3b3JkXCIgfSxcbiAgICAgIFNUUklORyxcbiAgICAgIENPTU1FTlRfVFlQRSxcbiAgICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgL1xcYmRlZi8sIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSxcbiAgICAgICAgXSxcbiAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInRpdGxlLmZ1bmN0aW9uXCJcbiAgICAgICAgfSxcbiAgICAgICAgY29udGFpbnM6IFsgUEFSQU1TIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgICAgL1xcYmNsYXNzLywgL1xccysvLFxuICAgICAgICAgICAgICBJREVOVF9SRSwgL1xccyovLFxuICAgICAgICAgICAgICAvXFwoXFxzKi8sIElERU5UX1JFLC9cXHMqXFwpL1xuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgICAgIC9cXGJjbGFzcy8sIC9cXHMrLyxcbiAgICAgICAgICAgICAgSURFTlRfUkVcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgICAgICA2OiBcInRpdGxlLmNsYXNzLmluaGVyaXRlZFwiLFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IC9eW1xcdCBdKkAvLFxuICAgICAgICBlbmQ6IC8oPz0jKXwkLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgUEFSQU1TLFxuICAgICAgICAgIFNUUklOR1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHB5dGhvbjtcbiIsICIvKlxuTGFuZ3VhZ2U6IFB5dGhvbiBSRVBMXG5SZXF1aXJlczogcHl0aG9uLmpzXG5BdXRob3I6IEpvc2ggR29lYmVsIDxoZWxsb0Bqb3NoZ29lYmVsLmNvbT5cbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbmZ1bmN0aW9uIHB5dGhvblJlcGwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIGFsaWFzZXM6IFsgJ3B5Y29uJyBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ21ldGEucHJvbXB0JyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gYSBzcGFjZSBzZXBhcmF0ZXMgdGhlIFJFUEwgcHJlZml4IGZyb20gdGhlIGFjdHVhbCBjb2RlXG4gICAgICAgICAgLy8gdGhpcyBpcyBwdXJlbHkgZm9yIGNsZWFuZXIgSFRNTCBvdXRwdXRcbiAgICAgICAgICBlbmQ6IC8gfCQvLFxuICAgICAgICAgIHN0YXJ0czoge1xuICAgICAgICAgICAgZW5kOiAnJCcsXG4gICAgICAgICAgICBzdWJMYW5ndWFnZTogJ3B5dGhvbidcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogL14+Pj4oPz1bIF18JCkvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL15cXC5cXC5cXC4oPz1bIF18JCkvIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBweXRob25SZXBsO1xuIiwgIi8qXG5MYW5ndWFnZTogUVxuRGVzY3JpcHRpb246IFEgaXMgYSB2ZWN0b3ItYmFzZWQgZnVuY3Rpb25hbCBwYXJhZGlnbSBwcm9ncmFtbWluZyBsYW5ndWFnZSBidWlsdCBpbnRvIHRoZSBrZGIrIGRhdGFiYXNlLlxuICAgICAgICAgICAgIChLL1EvS2RiKyBmcm9tIEt4IFN5c3RlbXMpXG5BdXRob3I6IFNlcmdleSBWaWR5dWsgPHN2aWR5dWtAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly9reC5jb20vY29ubmVjdC13aXRoLXVzL2RldmVsb3BlcnMvXG5DYXRlZ29yeTogZW50ZXJwcmlzZSwgZnVuY3Rpb25hbCwgZGF0YWJhc2VcbiovXG5cbmZ1bmN0aW9uIHEoaGxqcykge1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogLyhgPylbQS1aYS16MC05X10rXFxiLyxcbiAgICBrZXl3b3JkOlxuICAgICAgJ2RvIHdoaWxlIHNlbGVjdCBkZWxldGUgYnkgdXBkYXRlIGZyb20nLFxuICAgIGxpdGVyYWw6XG4gICAgICAnMGIgMWInLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ25lZyBub3QgbnVsbCBzdHJpbmcgcmVjaXByb2NhbCBmbG9vciBjZWlsaW5nIHNpZ251bSBtb2QgeGJhciB4bG9nIGFuZCBvciBlYWNoIHNjYW4gb3ZlciBwcmlvciBtbXUgbHNxIGludiBtZDUgbHRpbWUgZ3RpbWUgY291bnQgZmlyc3QgdmFyIGRldiBtZWQgY292IGNvciBhbGwgYW55IHJhbmQgc3VtcyBwcmRzIG1pbnMgbWF4cyBmaWxscyBkZWx0YXMgcmF0aW9zIGF2Z3MgZGlmZmVyIHByZXYgbmV4dCByYW5rIHJldmVyc2UgaWFzYyBpZGVzYyBhc2MgZGVzYyBtc3VtIG1jb3VudCBtYXZnIG1kZXYgeHJhbmsgbW1pbiBtbWF4IHhwcmV2IHJvdGF0ZSBkaXN0aW5jdCBncm91cCB3aGVyZSBmbGlwIHR5cGUga2V5IHRpbCBnZXQgdmFsdWUgYXR0ciBjdXQgc2V0IHVwc2VydCByYXplIHVuaW9uIGludGVyIGV4Y2VwdCBjcm9zcyBzdiB2cyBzdWJsaXN0IGVubGlzdCByZWFkMCByZWFkMSBob3BlbiBoY2xvc2UgaGRlbCBoc3ltIGhjb3VudCBwZWFjaCBzeXN0ZW0gbHRyaW0gcnRyaW0gdHJpbSBsb3dlciB1cHBlciBzc3IgdmlldyB0YWJsZXMgdmlld3MgY29scyB4Y29scyBrZXlzIHhrZXkgeGNvbCB4YXNjIHhkZXNjIGZrZXlzIG1ldGEgbGogYWogYWowIGlqIHBqIGFzb2YgdWogd3cgd2ogd2oxIGZieSB4Z3JvdXAgdW5ncm91cCBlaiBzYXZlIGxvYWQgcnNhdmUgcmxvYWQgc2hvdyBjc3YgcGFyc2UgZXZhbCBtaW4gbWF4IGF2ZyB3YXZnIHdzdW0gc2luIGNvcyB0YW4gc3VtJyxcbiAgICB0eXBlOlxuICAgICAgJ2BmbG9hdCBgZG91YmxlIGludCBgdGltZXN0YW1wIGB0aW1lc3BhbiBgZGF0ZXRpbWUgYHRpbWUgYGJvb2xlYW4gYHN5bWJvbCBgY2hhciBgYnl0ZSBgc2hvcnQgYGxvbmcgYHJlYWwgYG1vbnRoIGBkYXRlIGBtaW51dGUgYHNlY29uZCBgZ3VpZCdcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdRJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnaycsXG4gICAgICAna2RiJ1xuICAgIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHE7XG4iLCAiLypcbkxhbmd1YWdlOiBRTUxcblJlcXVpcmVzOiBqYXZhc2NyaXB0LmpzLCB4bWwuanNcbkF1dGhvcjogSm9obiBGb3N0ZXIgPGpmb3N0ZXJAZXNyaS5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgdGhlIFF0IFF1aWNrIFFNTCBzY3JpcHRpbmcgbGFuZ3VhZ2UsIGJhc2VkIG1vc3RseSBvZmZcbiAgICAgICAgICAgICB0aGUgSmF2YVNjcmlwdCBwYXJzZXIuXG5XZWJzaXRlOiBodHRwczovL2RvYy5xdC5pby9xdC01L3FtbGFwcGxpY2F0aW9ucy5odG1sXG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG5mdW5jdGlvbiBxbWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgIGtleXdvcmQ6XG4gICAgICAnaW4gb2Ygb24gaWYgZm9yIHdoaWxlIGZpbmFsbHkgdmFyIG5ldyBmdW5jdGlvbiBkbyByZXR1cm4gdm9pZCBlbHNlIGJyZWFrIGNhdGNoICdcbiAgICAgICsgJ2luc3RhbmNlb2Ygd2l0aCB0aHJvdyBjYXNlIGRlZmF1bHQgdHJ5IHRoaXMgc3dpdGNoIGNvbnRpbnVlIHR5cGVvZiBkZWxldGUgJ1xuICAgICAgKyAnbGV0IHlpZWxkIGNvbnN0IGV4cG9ydCBzdXBlciBkZWJ1Z2dlciBhcyBhc3luYyBhd2FpdCBpbXBvcnQnLFxuICAgIGxpdGVyYWw6XG4gICAgICAndHJ1ZSBmYWxzZSBudWxsIHVuZGVmaW5lZCBOYU4gSW5maW5pdHknLFxuICAgIGJ1aWx0X2luOlxuICAgICAgJ2V2YWwgaXNGaW5pdGUgaXNOYU4gcGFyc2VGbG9hdCBwYXJzZUludCBkZWNvZGVVUkkgZGVjb2RlVVJJQ29tcG9uZW50ICdcbiAgICAgICsgJ2VuY29kZVVSSSBlbmNvZGVVUklDb21wb25lbnQgZXNjYXBlIHVuZXNjYXBlIE9iamVjdCBGdW5jdGlvbiBCb29sZWFuIEVycm9yICdcbiAgICAgICsgJ0V2YWxFcnJvciBJbnRlcm5hbEVycm9yIFJhbmdlRXJyb3IgUmVmZXJlbmNlRXJyb3IgU3RvcEl0ZXJhdGlvbiBTeW50YXhFcnJvciAnXG4gICAgICArICdUeXBlRXJyb3IgVVJJRXJyb3IgTnVtYmVyIE1hdGggRGF0ZSBTdHJpbmcgUmVnRXhwIEFycmF5IEZsb2F0MzJBcnJheSAnXG4gICAgICArICdGbG9hdDY0QXJyYXkgSW50MTZBcnJheSBJbnQzMkFycmF5IEludDhBcnJheSBVaW50MTZBcnJheSBVaW50MzJBcnJheSAnXG4gICAgICArICdVaW50OEFycmF5IFVpbnQ4Q2xhbXBlZEFycmF5IEFycmF5QnVmZmVyIERhdGFWaWV3IEpTT04gSW50bCBhcmd1bWVudHMgcmVxdWlyZSAnXG4gICAgICArICdtb2R1bGUgY29uc29sZSB3aW5kb3cgZG9jdW1lbnQgU3ltYm9sIFNldCBNYXAgV2Vha1NldCBXZWFrTWFwIFByb3h5IFJlZmxlY3QgJ1xuICAgICAgKyAnQmVoYXZpb3IgYm9vbCBjb2xvciBjb29yZGluYXRlIGRhdGUgZG91YmxlIGVudW1lcmF0aW9uIGZvbnQgZ2VvY2lyY2xlIGdlb3JlY3RhbmdsZSAnXG4gICAgICArICdnZW9zaGFwZSBpbnQgbGlzdCBtYXRyaXg0eDQgcGFyZW50IHBvaW50IHF1YXRlcm5pb24gcmVhbCByZWN0ICdcbiAgICAgICsgJ3NpemUgc3RyaW5nIHVybCB2YXJpYW50IHZlY3RvcjJkIHZlY3RvcjNkIHZlY3RvcjRkICdcbiAgICAgICsgJ1Byb21pc2UnXG4gIH07XG5cbiAgY29uc3QgUU1MX0lERU5UX1JFID0gJ1thLXpBLVpfXVthLXpBLVowLTlcXFxcLl9dKic7XG5cbiAgLy8gSXNvbGF0ZSBwcm9wZXJ0eSBzdGF0ZW1lbnRzLiBFbmRzIGF0IGEgOiwgPSwgOywgLCwgYSBjb21tZW50IG9yIGVuZCBvZiBsaW5lLlxuICAvLyBVc2UgcHJvcGVydHkgY2xhc3MuXG4gIGNvbnN0IFBST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAnXFxcXGJwcm9wZXJ0eVxcXFxiJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBlbmQ6ICcoOnw9fDt8LHwvL3wvXFxcXCp8JCknLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlXG4gICAgfVxuICB9O1xuXG4gIC8vIElzb2xhdGUgc2lnbmFsIHN0YXRlbWVudHMuIEVuZHMgYXQgYSApIGEgY29tbWVudCBvciBlbmQgb2YgbGluZS5cbiAgLy8gVXNlIHByb3BlcnR5IGNsYXNzLlxuICBjb25zdCBTSUdOQUwgPSB7XG4gICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgYmVnaW46ICdcXFxcYnNpZ25hbFxcXFxiJyxcbiAgICBzdGFydHM6IHtcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBlbmQ6ICcoXFxcXCh8Onw9fDt8LHwvL3wvXFxcXCp8JCknLFxuICAgICAgcmV0dXJuRW5kOiB0cnVlXG4gICAgfVxuICB9O1xuXG4gIC8vIGlkOiBpcyBzcGVjaWFsIGluIFFNTC4gV2hlbiB3ZSBzZWUgaWQ6IHdlIHdhbnQgdG8gbWFyayB0aGUgaWQ6IGFzIGF0dHJpYnV0ZSBhbmRcbiAgLy8gZW1waGFzaXplIHRoZSB0b2tlbiBmb2xsb3dpbmcuXG4gIGNvbnN0IElEX0lEID0ge1xuICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgYmVnaW46ICdcXFxcYmlkXFxcXHMqOicsXG4gICAgc3RhcnRzOiB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgZW5kOiBRTUxfSURFTlRfUkUsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIC8vIEZpbmQgUU1MIG9iamVjdCBhdHRyaWJ1dGUuIEFuIGF0dHJpYnV0ZSBpcyBhIFFNTCBpZGVudGlmaWVyIGZvbGxvd2VkIGJ5IDouXG4gIC8vIFVuZm9ydHVuYXRlbHkgaXQncyBoYXJkIHRvIGtub3cgd2hlcmUgaXQgZW5kcywgYXMgaXQgbWF5IGNvbnRhaW4gc2NhbGFycyxcbiAgLy8gb2JqZWN0cywgb2JqZWN0IGRlZmluaXRpb25zLCBvciBqYXZhc2NyaXB0LiBUaGUgdHJ1ZSBlbmQgaXMgZWl0aGVyIHdoZW4gdGhlIHBhcmVudFxuICAvLyBlbmRzIG9yIHRoZSBuZXh0IGF0dHJpYnV0ZSBpcyBkZXRlY3RlZC5cbiAgY29uc3QgUU1MX0FUVFJJQlVURSA9IHtcbiAgICBiZWdpbjogUU1MX0lERU5UX1JFICsgJ1xcXFxzKjonLFxuICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiBRTUxfSURFTlRfUkUsXG4gICAgICAgIGVuZDogJ1xcXFxzKjonLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH1cbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIC8vIEZpbmQgUU1MIG9iamVjdC4gQSBRTUwgb2JqZWN0IGlzIGEgUU1MIGlkZW50aWZpZXIgZm9sbG93ZWQgYnkgeyBhbmQgZW5kcyBhdCB0aGUgbWF0Y2hpbmcgfS5cbiAgLy8gQWxsIHdlIHJlYWxseSBjYXJlIGFib3V0IGlzIGZpbmRpbmcgSURFTlQgZm9sbG93ZWQgYnkgeyBhbmQganVzdCBtYXJrIHVwIHRoZSBJREVOVCBhbmQgaWdub3JlIHRoZSB7LlxuICBjb25zdCBRTUxfT0JKRUNUID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQoUU1MX0lERU5UX1JFLCAvXFxzKlxcey8pLFxuICAgIGVuZDogL1xcey8sXG4gICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IFFNTF9JREVOVF9SRSB9KSBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUU1MJyxcbiAgICBhbGlhc2VzOiBbICdxdCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxccypbJ1wiXXVzZSAoc3RyaWN0fGFzbSlbJ1wiXS9cbiAgICAgIH0sXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgeyAvLyB0ZW1wbGF0ZSBzdHJpbmdcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxceycsXG4gICAgICAgICAgICBlbmQ6ICdcXFxcfSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYigwW2JCXVswMV0rKScgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoMFtvT11bMC03XSspJyB9LFxuICAgICAgICAgIHsgYmVnaW46IGhsanMuQ19OVU1CRVJfUkUgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgIGhsanMuUkVHRVhQX01PREUsXG4gICAgICAgICAgeyAvLyBFNFggLyBKU1hcbiAgICAgICAgICAgIGJlZ2luOiAvPC8sXG4gICAgICAgICAgICBlbmQ6IC8+XFxzKlspO1xcXV0vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBTSUdOQUwsXG4gICAgICBQUk9QRVJUWSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24nLFxuICAgICAgICBlbmQ6IC9cXHsvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgYmVnaW46IC9bQS1aYS16JF9dWzAtOUEtWmEteiRfXSovIH0pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogL1xcW3wlL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGFjazogcHJldmVudHMgZGV0ZWN0aW9uIG9mIGtleXdvcmRzIGFmdGVyIGRvdHNcbiAgICAgICAgYmVnaW46ICdcXFxcLicgKyBobGpzLklERU5UX1JFLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBJRF9JRCxcbiAgICAgIFFNTF9BVFRSSUJVVEUsXG4gICAgICBRTUxfT0JKRUNUXG4gICAgXSxcbiAgICBpbGxlZ2FsOiAvIy9cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBxbWw7XG4iLCAiLypcbkxhbmd1YWdlOiBSXG5EZXNjcmlwdGlvbjogUiBpcyBhIGZyZWUgc29mdHdhcmUgZW52aXJvbm1lbnQgZm9yIHN0YXRpc3RpY2FsIGNvbXB1dGluZyBhbmQgZ3JhcGhpY3MuXG5BdXRob3I6IEpvZSBDaGVuZyA8am9lQHJzdHVkaW8ub3JnPlxuQ29udHJpYnV0b3JzOiBLb25yYWQgUnVkb2xwaCA8a29ucmFkLnJ1ZG9scGhAZ21haWwuY29tPlxuV2Vic2l0ZTogaHR0cHM6Ly93d3cuci1wcm9qZWN0Lm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbixzY2llbnRpZmljXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gcihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gSWRlbnRpZmllcnMgaW4gUiBjYW5ub3Qgc3RhcnQgd2l0aCBgX2AsIGJ1dCB0aGV5IGNhbiBzdGFydCB3aXRoIGAuYCBpZiBpdFxuICAvLyBpcyBub3QgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBkaWdpdC5cbiAgLy8gUiBhbHNvIHN1cHBvcnRzIHF1b3RlZCBpZGVudGlmaWVycywgd2hpY2ggYXJlIG5lYXItYXJiaXRyYXJ5IHNlcXVlbmNlc1xuICAvLyBkZWxpbWl0ZWQgYnkgYmFja3RpY2tzIChgXHUyMDI2YCksIHdoaWNoIG1heSBjb250YWluIGVzY2FwZSBzZXF1ZW5jZXMuIFRoZXNlIGFyZVxuICAvLyBoYW5kbGVkIGluIGEgc2VwYXJhdGUgbW9kZS4gU2VlIGB0ZXN0L21hcmt1cC9yL25hbWVzLnR4dGAgZm9yIGV4YW1wbGVzLlxuICAvLyBGSVhNRTogU3VwcG9ydCBVbmljb2RlIGlkZW50aWZpZXJzLlxuICBjb25zdCBJREVOVF9SRSA9IC8oPzooPzpbYS16QS1aXXxcXC5bLl9hLXpBLVpdKVsuX2EtekEtWjAtOV0qKXxcXC4oPyFcXGQpLztcbiAgY29uc3QgTlVNQkVSX1RZUEVTX1JFID0gcmVnZXguZWl0aGVyKFxuICAgIC8vIFNwZWNpYWwgY2FzZTogb25seSBoZXhhZGVjaW1hbCBiaW5hcnkgcG93ZXJzIGNhbiBjb250YWluIGZyYWN0aW9uc1xuICAgIC8wW3hYXVswLTlhLWZBLUZdK1xcLlswLTlhLWZBLUZdKltwUF1bKy1dP1xcZCtpPy8sXG4gICAgLy8gSGV4YWRlY2ltYWwgbnVtYmVycyB3aXRob3V0IGZyYWN0aW9uIGFuZCBvcHRpb25hbCBiaW5hcnkgcG93ZXJcbiAgICAvMFt4WF1bMC05YS1mQS1GXSsoPzpbcFBdWystXT9cXGQrKT9bTGldPy8sXG4gICAgLy8gRGVjaW1hbCBudW1iZXJzXG4gICAgLyg/OlxcZCsoPzpcXC5cXGQqKT98XFwuXFxkKykoPzpbZUVdWystXT9cXGQrKT9bTGldPy9cbiAgKTtcbiAgY29uc3QgT1BFUkFUT1JTX1JFID0gL1s9ITw+Ol09fFxcfFxcfHwmJnw6Ojo/fDwtfDw8LXwtPj58LT58XFx8PnxbLSsqXFwvPyEkJnw6PD0+QF5+XXxcXCpcXCovO1xuICBjb25zdCBQVU5DVFVBVElPTl9SRSA9IHJlZ2V4LmVpdGhlcihcbiAgICAvWygpXS8sXG4gICAgL1t7fV0vLFxuICAgIC9cXFtcXFsvLFxuICAgIC9bW1xcXV0vLFxuICAgIC9cXFxcLyxcbiAgICAvLC9cbiAgKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSJyxcblxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogSURFTlRfUkUsXG4gICAgICBrZXl3b3JkOlxuICAgICAgICAnZnVuY3Rpb24gaWYgaW4gYnJlYWsgbmV4dCByZXBlYXQgZWxzZSBmb3Igd2hpbGUnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJ05VTEwgTkEgVFJVRSBGQUxTRSBJbmYgTmFOIE5BX2ludGVnZXJffDEwIE5BX3JlYWxffDEwICdcbiAgICAgICAgKyAnTkFfY2hhcmFjdGVyX3wxMCBOQV9jb21wbGV4X3wxMCcsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLy8gQnVpbHRpbiBjb25zdGFudHNcbiAgICAgICAgJ0xFVFRFUlMgbGV0dGVycyBtb250aC5hYmIgbW9udGgubmFtZSBwaSBUIEYgJ1xuICAgICAgICAvLyBQcmltaXRpdmUgZnVuY3Rpb25zXG4gICAgICAgIC8vIFRoZXNlIGFyZSBhbGwgdGhlIGZ1bmN0aW9ucyBpbiBgYmFzZWAgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgYVxuICAgICAgICAvLyBgLlByaW1pdGl2ZWAsIG1pbnVzIHRob3NlIGZ1bmN0aW9ucyB0aGF0IGFyZSBhbHNvIGtleXdvcmRzLlxuICAgICAgICArICdhYnMgYWNvcyBhY29zaCBhbGwgYW55IGFueU5BIEFyZyBhcy5jYWxsIGFzLmNoYXJhY3RlciAnXG4gICAgICAgICsgJ2FzLmNvbXBsZXggYXMuZG91YmxlIGFzLmVudmlyb25tZW50IGFzLmludGVnZXIgYXMubG9naWNhbCAnXG4gICAgICAgICsgJ2FzLm51bGwuZGVmYXVsdCBhcy5udW1lcmljIGFzLnJhdyBhc2luIGFzaW5oIGF0YW4gYXRhbmggYXR0ciAnXG4gICAgICAgICsgJ2F0dHJpYnV0ZXMgYmFzZWVudiBicm93c2VyIGMgY2FsbCBjZWlsaW5nIGNsYXNzIENvbmogY29zIGNvc2ggJ1xuICAgICAgICArICdjb3NwaSBjdW1tYXggY3VtbWluIGN1bXByb2QgY3Vtc3VtIGRpZ2FtbWEgZGltIGRpbW5hbWVzICdcbiAgICAgICAgKyAnZW1wdHllbnYgZXhwIGV4cHJlc3Npb24gZmxvb3IgZm9yY2VBbmRDYWxsIGdhbW1hIGdjLnRpbWUgJ1xuICAgICAgICArICdnbG9iYWxlbnYgSW0gaW50ZXJhY3RpdmUgaW52aXNpYmxlIGlzLmFycmF5IGlzLmF0b21pYyBpcy5jYWxsICdcbiAgICAgICAgKyAnaXMuY2hhcmFjdGVyIGlzLmNvbXBsZXggaXMuZG91YmxlIGlzLmVudmlyb25tZW50IGlzLmV4cHJlc3Npb24gJ1xuICAgICAgICArICdpcy5maW5pdGUgaXMuZnVuY3Rpb24gaXMuaW5maW5pdGUgaXMuaW50ZWdlciBpcy5sYW5ndWFnZSAnXG4gICAgICAgICsgJ2lzLmxpc3QgaXMubG9naWNhbCBpcy5tYXRyaXggaXMubmEgaXMubmFtZSBpcy5uYW4gaXMubnVsbCAnXG4gICAgICAgICsgJ2lzLm51bWVyaWMgaXMub2JqZWN0IGlzLnBhaXJsaXN0IGlzLnJhdyBpcy5yZWN1cnNpdmUgaXMuc2luZ2xlICdcbiAgICAgICAgKyAnaXMuc3ltYm9sIGxhenlMb2FkREJmZXRjaCBsZW5ndGggbGdhbW1hIGxpc3QgbG9nIG1heCBtaW4gJ1xuICAgICAgICArICdtaXNzaW5nIE1vZCBuYW1lcyBuYXJncyBuemNoYXIgb2xkQ2xhc3Mgb24uZXhpdCBwb3MudG8uZW52ICdcbiAgICAgICAgKyAncHJvYy50aW1lIHByb2QgcXVvdGUgcmFuZ2UgUmUgcmVwIHJldHJhY2VtZW0gcmV0dXJuIHJvdW5kICdcbiAgICAgICAgKyAnc2VxX2Fsb25nIHNlcV9sZW4gc2VxLmludCBzaWduIHNpZ25pZiBzaW4gc2luaCBzaW5waSBzcXJ0ICdcbiAgICAgICAgKyAnc3RhbmRhcmRHZW5lcmljIHN1YnN0aXR1dGUgc3VtIHN3aXRjaCB0YW4gdGFuaCB0YW5waSB0cmFjZW1lbSAnXG4gICAgICAgICsgJ3RyaWdhbW1hIHRydW5jIHVuY2xhc3MgdW50cmFjZW1lbSBVc2VNZXRob2QgeHRmcm0nLFxuICAgIH0sXG5cbiAgICBjb250YWluczogW1xuICAgICAgLy8gUm94eWdlbiBjb21tZW50c1xuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvIycvLFxuICAgICAgICAvJC8sXG4gICAgICAgIHsgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYEBleGFtcGxlc2Agc2VwYXJhdGVseSB0byBjYXVzZSBhbGwgc3Vic2VxdWVudCBjb2RlXG4gICAgICAgICAgICAvLyB1bnRpbCB0aGUgbmV4dCBgQGAtdGFnIG9uIGl0cyBvd24gbGluZSB0byBiZSBrZXB0IGFzLWlzLFxuICAgICAgICAgICAgLy8gcHJldmVudGluZyBoaWdobGlnaHRpbmcuIFRoaXMgY29kZSBpcyBleGFtcGxlIFIgY29kZSwgc28gbmVzdGVkXG4gICAgICAgICAgICAvLyBkb2N0YWdzIHNob3VsZG5cdTIwMTl0IGJlIHRyZWF0ZWQgYXMgc3VjaC4gU2VlXG4gICAgICAgICAgICAvLyBgdGVzdC9tYXJrdXAvci9yb3h5Z2VuLnR4dGAgZm9yIGFuIGV4YW1wbGUuXG4gICAgICAgICAgICBzY29wZTogJ2RvY3RhZycsXG4gICAgICAgICAgICBtYXRjaDogL0BleGFtcGxlcy8sXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kOiByZWdleC5sb29rYWhlYWQocmVnZXguZWl0aGVyKFxuICAgICAgICAgICAgICAgIC8vIGVuZCBpZiBhbm90aGVyIGRvYyBjb21tZW50XG4gICAgICAgICAgICAgICAgL1xcbl4jJ1xccyooPz1AW2EtekEtWl0rKS8sXG4gICAgICAgICAgICAgICAgLy8gb3IgYSBsaW5lIHdpdGggbm8gY29tbWVudFxuICAgICAgICAgICAgICAgIC9cXG5eKD8hIycpL1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGBAcGFyYW1gIHRvIGhpZ2hsaWdodCB0aGUgcGFyYW1ldGVyIG5hbWUgZm9sbG93aW5nXG4gICAgICAgICAgICAvLyBhZnRlci5cbiAgICAgICAgICAgIHNjb3BlOiAnZG9jdGFnJyxcbiAgICAgICAgICAgIGJlZ2luOiAnQHBhcmFtJyxcbiAgICAgICAgICAgIGVuZDogLyQvLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgICAgICB7IG1hdGNoOiBJREVOVF9SRSB9LFxuICAgICAgICAgICAgICAgICAgeyBtYXRjaDogL2AoPzpcXFxcLnxbXmBcXFxcXSkrYC8gfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZW5kc1BhcmVudDogdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogJ2RvY3RhZycsXG4gICAgICAgICAgICBtYXRjaDogL0BbYS16QS1aXSsvXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogJ2tleXdvcmQnLFxuICAgICAgICAgICAgbWF0Y2g6IC9cXFxcW2EtekEtWl0rL1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF0sXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgICAgICBiZWdpbjogL1tyUl1cIigtKilcXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpKC0qKVwiL1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICAgICAgYmVnaW46IC9bclJdXCIoLSopXFx7LyxcbiAgICAgICAgICAgIGVuZDogL1xcfSgtKilcIi9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvW3JSXVwiKC0qKVxcWy8sXG4gICAgICAgICAgICBlbmQ6IC9cXF0oLSopXCIvXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGxqcy5FTkRfU0FNRV9BU19CRUdJTih7XG4gICAgICAgICAgICBiZWdpbjogL1tyUl0nKC0qKVxcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkoLSopJy9cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBobGpzLkVORF9TQU1FX0FTX0JFR0lOKHtcbiAgICAgICAgICAgIGJlZ2luOiAvW3JSXScoLSopXFx7LyxcbiAgICAgICAgICAgIGVuZDogL1xcfSgtKiknL1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhsanMuRU5EX1NBTUVfQVNfQkVHSU4oe1xuICAgICAgICAgICAgYmVnaW46IC9bclJdJygtKilcXFsvLFxuICAgICAgICAgICAgZW5kOiAvXFxdKC0qKScvXG4gICAgICAgICAgfSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgICAgICBlbmQ6ICdcIicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiBcIidcIixcbiAgICAgICAgICAgIGVuZDogXCInXCIsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICB9LFxuXG4gICAgICAvLyBNYXRjaGluZyBudW1iZXJzIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBwdW5jdHVhdGlvbiBhbmQgb3BlcmF0b3JzIGlzXG4gICAgICAvLyB0cmlja3kgc2luY2Ugd2UgbmVlZCB0byBsb29rIGF0IHRoZSBjaGFyYWN0ZXIgYWhlYWQgb2YgYSBudW1iZXIgdG9cbiAgICAgIC8vIGVuc3VyZSB0aGUgbnVtYmVyIGlzIG5vdCBwYXJ0IG9mIGFuIGlkZW50aWZpZXIsIGFuZCB3ZSBjYW5ub3QgdXNlXG4gICAgICAvLyBuZWdhdGl2ZSBsb29rLWJlaGluZCBhc3NlcnRpb25zLiBTbyBpbnN0ZWFkIHdlIGV4cGxpY2l0bHkgaGFuZGxlIGFsbFxuICAgICAgLy8gcG9zc2libGUgY29tYmluYXRpb25zIG9mIChvcGVyYXRvcnxwdW5jdHVhdGlvbiksIG51bWJlci5cbiAgICAgIC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBuZWdhdGl2ZSBsb29rLWJlaGluZCB3aGVuIGF2YWlsYWJsZVxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKTBbeFhdWzAtOWEtZkEtRl0rXFwuWzAtOWEtZkEtRl0qW3BQXVsrLV0/XFxkK2k/LyB9LFxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKTBbeFhdWzAtOWEtZkEtRl0rKFtwUF1bKy1dP1xcZCspP1tMaV0/LyB9LFxuICAgICAgLy8geyBiZWdpbjogLyg/PCFbYS16QS1aMC05Ll9dKShcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWystXT9cXGQrKT9bTGldPy8gfVxuICAgICAge1xuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICBPUEVSQVRPUlNfUkUsXG4gICAgICAgICAgICAgIE5VTUJFUl9UWVBFU19SRVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ29wZXJhdG9yJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICAvJVteJV0qJS8sXG4gICAgICAgICAgICAgIE5VTUJFUl9UWVBFU19SRVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2NvcGU6IHtcbiAgICAgICAgICAgICAgMTogJ3B1bmN0dWF0aW9uJyxcbiAgICAgICAgICAgICAgMjogJ251bWJlcidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXRjaDogW1xuICAgICAgICAgICAgICBQVU5DVFVBVElPTl9SRSxcbiAgICAgICAgICAgICAgTlVNQkVSX1RZUEVTX1JFXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogeyAyOiAnbnVtYmVyJyB9LFxuICAgICAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAgICAgL1teYS16QS1aMC05Ll9dfF4vLCAvLyBub3QgcGFydCBvZiBhbiBpZGVudGlmaWVyLCBvciBzdGFydCBvZiBkb2N1bWVudFxuICAgICAgICAgICAgICBOVU1CRVJfVFlQRVNfUkVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIE9wZXJhdG9ycy9wdW5jdHVhdGlvbiB3aGVuIHRoZXkncmUgbm90IGRpcmVjdGx5IGZvbGxvd2VkIGJ5IG51bWJlcnNcbiAgICAgIHtcbiAgICAgICAgLy8gUmVsZXZhbmNlIGJvb3N0IGZvciB0aGUgbW9zdCBjb21tb24gYXNzaWdubWVudCBmb3JtLlxuICAgICAgICBzY29wZTogeyAzOiAnb3BlcmF0b3InIH0sXG4gICAgICAgIG1hdGNoOiBbXG4gICAgICAgICAgSURFTlRfUkUsXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC88LS8sXG4gICAgICAgICAgL1xccysvXG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdvcGVyYXRvcicsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiBPUEVSQVRPUlNfUkUgfSxcbiAgICAgICAgICB7IG1hdGNoOiAvJVteJV0qJS8gfVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAncHVuY3R1YXRpb24nLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIG1hdGNoOiBQVU5DVFVBVElPTl9SRVxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICAvLyBFc2NhcGVkIGlkZW50aWZpZXJcbiAgICAgICAgYmVnaW46ICdgJyxcbiAgICAgICAgZW5kOiAnYCcsXG4gICAgICAgIGNvbnRhaW5zOiBbIHsgYmVnaW46IC9cXFxcLi8gfSBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHI7XG4iLCAiLypcbkxhbmd1YWdlOiBSZWFzb25NTFxuRGVzY3JpcHRpb246IFJlYXNvbiBsZXRzIHlvdSB3cml0ZSBzaW1wbGUsIGZhc3QgYW5kIHF1YWxpdHkgdHlwZSBzYWZlIGNvZGUgd2hpbGUgbGV2ZXJhZ2luZyBib3RoIHRoZSBKYXZhU2NyaXB0ICYgT0NhbWwgZWNvc3lzdGVtcy5cbldlYnNpdGU6IGh0dHBzOi8vcmVhc29ubWwuZ2l0aHViLmlvXG5BdXRob3I6IEdpZGkgTWVpciBNb3JyaXMgPG9zc0BnaWRpLmlvPlxuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbiovXG5mdW5jdGlvbiByZWFzb25tbChobGpzKSB7XG4gIGNvbnN0IEJVSUxUX0lOX1RZUEVTID0gW1xuICAgIFwiYXJyYXlcIixcbiAgICBcImJvb2xcIixcbiAgICBcImJ5dGVzXCIsXG4gICAgXCJjaGFyXCIsXG4gICAgXCJleG58NVwiLFxuICAgIFwiZmxvYXRcIixcbiAgICBcImludFwiLFxuICAgIFwiaW50MzJcIixcbiAgICBcImludDY0XCIsXG4gICAgXCJsaXN0XCIsXG4gICAgXCJsYXp5X3R8NVwiLFxuICAgIFwibmF0aXZlaW50fDVcIixcbiAgICBcInJlZlwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJ1bml0XCIsXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1JlYXNvbk1MJyxcbiAgICBhbGlhc2VzOiBbICdyZScgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICAvW2Etel9dXFx3KiE/LyxcbiAgICAgIGtleXdvcmQ6IFtcbiAgICAgICAgXCJhbmRcIixcbiAgICAgICAgXCJhc1wiLFxuICAgICAgICBcImFzclwiLFxuICAgICAgICBcImFzc2VydFwiLFxuICAgICAgICBcImJlZ2luXCIsXG4gICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgXCJjb25zdHJhaW50XCIsXG4gICAgICAgIFwiZG9cIixcbiAgICAgICAgXCJkb25lXCIsXG4gICAgICAgIFwiZG93bnRvXCIsXG4gICAgICAgIFwiZWxzZVwiLFxuICAgICAgICBcImVuZFwiLFxuICAgICAgICBcImVzZnVuXCIsXG4gICAgICAgIFwiZXhjZXB0aW9uXCIsXG4gICAgICAgIFwiZXh0ZXJuYWxcIixcbiAgICAgICAgXCJmb3JcIixcbiAgICAgICAgXCJmdW5cIixcbiAgICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgICBcImZ1bmN0b3JcIixcbiAgICAgICAgXCJpZlwiLFxuICAgICAgICBcImluXCIsXG4gICAgICAgIFwiaW5jbHVkZVwiLFxuICAgICAgICBcImluaGVyaXRcIixcbiAgICAgICAgXCJpbml0aWFsaXplclwiLFxuICAgICAgICBcImxhbmRcIixcbiAgICAgICAgXCJsYXp5XCIsXG4gICAgICAgIFwibGV0XCIsXG4gICAgICAgIFwibG9yXCIsXG4gICAgICAgIFwibHNsXCIsXG4gICAgICAgIFwibHNyXCIsXG4gICAgICAgIFwibHhvclwiLFxuICAgICAgICBcIm1vZFwiLFxuICAgICAgICBcIm1vZHVsZVwiLFxuICAgICAgICBcIm11dGFibGVcIixcbiAgICAgICAgXCJuZXdcIixcbiAgICAgICAgXCJub25yZWNcIixcbiAgICAgICAgXCJvYmplY3RcIixcbiAgICAgICAgXCJvZlwiLFxuICAgICAgICBcIm9wZW5cIixcbiAgICAgICAgXCJvclwiLFxuICAgICAgICBcInByaVwiLFxuICAgICAgICBcInB1YlwiLFxuICAgICAgICBcInJlY1wiLFxuICAgICAgICBcInNpZ1wiLFxuICAgICAgICBcInN0cnVjdFwiLFxuICAgICAgICBcInN3aXRjaFwiLFxuICAgICAgICBcInRoZW5cIixcbiAgICAgICAgXCJ0b1wiLFxuICAgICAgICBcInRyeVwiLFxuICAgICAgICBcInR5cGVcIixcbiAgICAgICAgXCJ2YWxcIixcbiAgICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICAgIFwid2hlblwiLFxuICAgICAgICBcIndoaWxlXCIsXG4gICAgICAgIFwid2l0aFwiLFxuICAgICAgXSxcbiAgICAgIGJ1aWx0X2luOiBCVUlMVF9JTl9UWVBFUyxcbiAgICAgIGxpdGVyYWw6IFtcInRydWVcIiwgXCJmYWxzZVwiXSxcbiAgICB9LFxuICAgIGlsbGVnYWw6IC8oOi18Oj18XFwkXFx7fFxcKz0pLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBzY29wZTogJ2xpdGVyYWwnLFxuICAgICAgICBtYXRjaDogL1xcWyhcXHxcXHwpP1xcXXxcXChcXCkvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoL1xcL1xcKi8sIC9cXCpcXC8vLCB7IGlsbGVnYWw6IC9eKCMsXFwvXFwvKS8gfSksXG4gICAgICB7IC8qIHR5cGUgdmFyaWFibGUgKi9cbiAgICAgICAgc2NvcGU6ICdzeW1ib2wnLFxuICAgICAgICBtYXRjaDogL1xcJ1tBLVphLXpfXSg/IVxcJylbXFx3XFwnXSovXG4gICAgICAgIC8qIHRoZSBncmFtbWFyIGlzIGFtYmlndW91cyBvbiBob3cgJ2EnYiBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYnV0IG5vdCB0aGUgY29tcGlsZXIgKi9cbiAgICAgIH0sXG4gICAgICB7IC8qIHBvbHltb3JwaGljIHZhcmlhbnQgKi9cbiAgICAgICAgc2NvcGU6ICd0eXBlJyxcbiAgICAgICAgbWF0Y2g6IC9gW0EtWl1bXFx3XFwnXSovXG4gICAgICB9LFxuICAgICAgeyAvKiBtb2R1bGUgb3IgY29uc3RydWN0b3IgKi9cbiAgICAgICAgc2NvcGU6ICd0eXBlJyxcbiAgICAgICAgbWF0Y2g6IC9cXGJbQS1aXVtcXHdcXCddKi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLyogZG9uJ3QgY29sb3IgaWRlbnRpZmllcnMsIGJ1dCBzYWZlbHkgY2F0Y2ggYWxsIGlkZW50aWZpZXJzIHdpdGggJyAqL1xuICAgICAgbWF0Y2g6IC9bYS16X11cXHcqXFwnW1xcd1xcJ10qLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogJ29wZXJhdG9yJyxcbiAgICAgICAgbWF0Y2g6IC9cXHMrKFxcfFxcfHxcXCtbXFwrXFwuXT98XFwqW1xcKlxcL1xcLl0/fFxcL1tcXC5dP3xcXC5cXC5cXC58XFx8PnwmJnw9PT0/KVxccysvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sICAgICAgXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9KSxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiAvXFxiMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXGIwW29PXVswLTdfXStbTGxuXT8vIH0sXG4gICAgICAgICAgeyBtYXRjaDogL1xcYjBbYkJdWzAxX10rW0xsbl0/LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXGJbMC05XVswLTlfXSooW0xsbl18KFxcLlswLTlfXSopPyhbZUVdWy0rXT9bMC05X10rKT8pLyB9LFxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlYXNvbm1sO1xuIiwgIi8qXG5MYW5ndWFnZTogUmVuZGVyTWFuIFJJQlxuQXV0aG9yOiBLb25zdGFudGluIEV2ZG9raW1lbmtvIDxxZXdlcnR5QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogU2h1ZW4tSHVlaSBHdWFuIDxkcmFrZS5ndWFuQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vcmVuZGVybWFuLnBpeGFyLmNvbS9yZXNvdXJjZXMvUmVuZGVyTWFuXzIwL3JpYkJpbmRpbmcuaHRtbFxuQ2F0ZWdvcnk6IGdyYXBoaWNzXG4qL1xuXG5mdW5jdGlvbiByaWIoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSZW5kZXJNYW4gUklCJyxcbiAgICBrZXl3b3JkczpcbiAgICAgICdBcmNoaXZlUmVjb3JkIEFyZWFMaWdodFNvdXJjZSBBdG1vc3BoZXJlIEF0dHJpYnV0ZSBBdHRyaWJ1dGVCZWdpbiBBdHRyaWJ1dGVFbmQgQmFzaXMgJ1xuICAgICAgKyAnQmVnaW4gQmxvYmJ5IEJvdW5kIENsaXBwaW5nIENsaXBwaW5nUGxhbmUgQ29sb3IgQ29sb3JTYW1wbGVzIENvbmNhdFRyYW5zZm9ybSBDb25lICdcbiAgICAgICsgJ0Nvb3JkaW5hdGVTeXN0ZW0gQ29vcmRTeXNUcmFuc2Zvcm0gQ3JvcFdpbmRvdyBDdXJ2ZXMgQ3lsaW5kZXIgRGVwdGhPZkZpZWxkIERldGFpbCAnXG4gICAgICArICdEZXRhaWxSYW5nZSBEaXNrIERpc3BsYWNlbWVudCBEaXNwbGF5IEVuZCBFcnJvckhhbmRsZXIgRXhwb3N1cmUgRXh0ZXJpb3IgRm9ybWF0ICdcbiAgICAgICsgJ0ZyYW1lQXNwZWN0UmF0aW8gRnJhbWVCZWdpbiBGcmFtZUVuZCBHZW5lcmFsUG9seWdvbiBHZW9tZXRyaWNBcHByb3hpbWF0aW9uIEdlb21ldHJ5ICdcbiAgICAgICsgJ0hpZGVyIEh5cGVyYm9sb2lkIElkZW50aXR5IElsbHVtaW5hdGUgSW1hZ2VyIEludGVyaW9yIExpZ2h0U291cmNlICdcbiAgICAgICsgJ01ha2VDdWJlRmFjZUVudmlyb25tZW50IE1ha2VMYXRMb25nRW52aXJvbm1lbnQgTWFrZVNoYWRvdyBNYWtlVGV4dHVyZSBNYXR0ZSAnXG4gICAgICArICdNb3Rpb25CZWdpbiBNb3Rpb25FbmQgTnVQYXRjaCBPYmplY3RCZWdpbiBPYmplY3RFbmQgT2JqZWN0SW5zdGFuY2UgT3BhY2l0eSBPcHRpb24gJ1xuICAgICAgKyAnT3JpZW50YXRpb24gUGFyYWJvbG9pZCBQYXRjaCBQYXRjaE1lc2ggUGVyc3BlY3RpdmUgUGl4ZWxGaWx0ZXIgUGl4ZWxTYW1wbGVzICdcbiAgICAgICsgJ1BpeGVsVmFyaWFuY2UgUG9pbnRzIFBvaW50c0dlbmVyYWxQb2x5Z29ucyBQb2ludHNQb2x5Z29ucyBQb2x5Z29uIFByb2NlZHVyYWwgUHJvamVjdGlvbiAnXG4gICAgICArICdRdWFudGl6ZSBSZWFkQXJjaGl2ZSBSZWxhdGl2ZURldGFpbCBSZXZlcnNlT3JpZW50YXRpb24gUm90YXRlIFNjYWxlIFNjcmVlbldpbmRvdyAnXG4gICAgICArICdTaGFkaW5nSW50ZXJwb2xhdGlvbiBTaGFkaW5nUmF0ZSBTaHV0dGVyIFNpZGVzIFNrZXcgU29saWRCZWdpbiBTb2xpZEVuZCBTcGhlcmUgJ1xuICAgICAgKyAnU3ViZGl2aXNpb25NZXNoIFN1cmZhY2UgVGV4dHVyZUNvb3JkaW5hdGVzIFRvcnVzIFRyYW5zZm9ybSBUcmFuc2Zvcm1CZWdpbiBUcmFuc2Zvcm1FbmQgJ1xuICAgICAgKyAnVHJhbnNmb3JtUG9pbnRzIFRyYW5zbGF0ZSBUcmltQ3VydmUgV29ybGRCZWdpbiBXb3JsZEVuZCcsXG4gICAgaWxsZWdhbDogJzwvJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmliO1xuIiwgIi8qXG5MYW5ndWFnZTogUm9ib2NvbmZcbkF1dGhvcjogVmluY2VudCBadXJjemFrIDx2enVyY3pha0BsaW5hZ29yYS5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgUm9ib2NvbmYncyBEU0xcbldlYnNpdGU6IGh0dHA6Ly9yb2JvY29uZi5uZXRcbkNhdGVnb3J5OiBjb25maWdcbiovXG5cbmZ1bmN0aW9uIHJvYm9jb25mKGhsanMpIHtcbiAgY29uc3QgSURFTlRJRklFUiA9ICdbYS16QS1aLV9dW15cXFxcbntdK1xcXFx7JztcblxuICBjb25zdCBQUk9QRVJUWSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgIGJlZ2luOiAvW2EtekEtWi1fXSsvLFxuICAgIGVuZDogL1xccyo6LyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnOycsXG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICAgIGJlZ2luOiAvXFwuW2EtekEtWi1fXSsvXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICBiZWdpbjogL1xcKG9wdGlvbmFsXFwpL1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1JvYm9jb25mJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZ3JhcGgnLFxuICAgICAgJ2luc3RhbmNlcydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6ICdpbXBvcnQnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAvLyBGYWNldCBzZWN0aW9uc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ15mYWNldCAnICsgSURFTlRJRklFUixcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAga2V5d29yZHM6ICdmYWNldCcsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBJbnN0YW5jZSBzZWN0aW9uc1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ15cXFxccyppbnN0YW5jZSBvZiAnICsgSURFTlRJRklFUixcbiAgICAgICAgZW5kOiAvXFx9LyxcbiAgICAgICAga2V5d29yZHM6ICduYW1lIGNvdW50IGNoYW5uZWxzIGluc3RhbmNlLWRhdGEgaW5zdGFuY2Utc3RhdGUgaW5zdGFuY2Ugb2YnLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBDb21wb25lbnQgc2VjdGlvbnNcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdeJyArIElERU5USUZJRVIsXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgUFJPUEVSVFksXG4gICAgICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuXG4gICAgICAvLyBDb21tZW50c1xuICAgICAgaGxqcy5IQVNIX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb2JvY29uZjtcbiIsICIvKlxuTGFuZ3VhZ2U6IE1pa3JvVGlrIFJvdXRlck9TIHNjcmlwdFxuQXV0aG9yOiBJdmFuIERlbWVudGV2IDxpdmFuX2RpdkBtYWlsLnJ1PlxuRGVzY3JpcHRpb246IFNjcmlwdGluZyBob3N0IHByb3ZpZGVzIGEgd2F5IHRvIGF1dG9tYXRlIHNvbWUgcm91dGVyIG1haW50ZW5hbmNlIHRhc2tzIGJ5IG1lYW5zIG9mIGV4ZWN1dGluZyB1c2VyLWRlZmluZWQgc2NyaXB0cyBib3VuZGVkIHRvIHNvbWUgZXZlbnQgb2NjdXJyZW5jZVxuV2Vic2l0ZTogaHR0cHM6Ly93aWtpLm1pa3JvdGlrLmNvbS93aWtpL01hbnVhbDpTY3JpcHRpbmdcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiovXG5cbi8vIENvbG9ycyBmcm9tIFJvdXRlck9TIHRlcm1pbmFsOlxuLy8gICBncmVlbiAgICAgICAgLSAjMEU5QTAwXG4vLyAgIHRlYWwgICAgICAgICAtICMwQzlBOUFcbi8vICAgcHVycGxlICAgICAgIC0gIzk5MDY5QVxuLy8gICBsaWdodC1icm93biAgLSAjOUE5OTAwXG5cbmZ1bmN0aW9uIHJvdXRlcm9zKGhsanMpIHtcbiAgY29uc3QgU1RBVEVNRU5UUyA9ICdmb3JlYWNoIGRvIHdoaWxlIGZvciBpZiBmcm9tIHRvIHN0ZXAgZWxzZSBvbi1lcnJvciBhbmQgb3Igbm90IGluJztcblxuICAvLyBHbG9iYWwgY29tbWFuZHM6IEV2ZXJ5IGdsb2JhbCBjb21tYW5kIHNob3VsZCBzdGFydCB3aXRoIFwiOlwiIHRva2VuLCBvdGhlcndpc2UgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIHZhcmlhYmxlLlxuICBjb25zdCBHTE9CQUxfQ09NTUFORFMgPSAnZ2xvYmFsIGxvY2FsIGJlZXAgZGVsYXkgcHV0IGxlbiB0eXBlb2YgcGljayBsb2cgdGltZSBzZXQgZmluZCBlbnZpcm9ubWVudCB0ZXJtaW5hbCBlcnJvciBleGVjdXRlIHBhcnNlIHJlc29sdmUgdG9hcnJheSB0b2Jvb2wgdG9pZCB0b2lwIHRvaXA2IHRvbnVtIHRvc3RyIHRvdGltZSc7XG5cbiAgLy8gQ29tbW9uIGNvbW1hbmRzOiBGb2xsb3dpbmcgY29tbWFuZHMgYXZhaWxhYmxlIGZyb20gbW9zdCBzdWItbWVudXM6XG4gIGNvbnN0IENPTU1PTl9DT01NQU5EUyA9ICdhZGQgcmVtb3ZlIGVuYWJsZSBkaXNhYmxlIHNldCBnZXQgcHJpbnQgZXhwb3J0IGVkaXQgZmluZCBydW4gZGVidWcgZXJyb3IgaW5mbyB3YXJuaW5nJztcblxuICBjb25zdCBMSVRFUkFMUyA9ICd0cnVlIGZhbHNlIHllcyBubyBub3RoaW5nIG5pbCBudWxsJztcblxuICBjb25zdCBPQkpFQ1RTID0gJ3RyYWZmaWMtZmxvdyB0cmFmZmljLWdlbmVyYXRvciBmaXJld2FsbCBzY2hlZHVsZXIgYWFhIGFjY291bnRpbmcgYWRkcmVzcy1saXN0IGFkZHJlc3MgYWxpZ24gYXJlYSBiYW5kd2lkdGgtc2VydmVyIGJmZCBiZ3AgYnJpZGdlIGNsaWVudCBjbG9jayBjb21tdW5pdHkgY29uZmlnIGNvbm5lY3Rpb24gY29uc29sZSBjdXN0b21lciBkZWZhdWx0IGRoY3AtY2xpZW50IGRoY3Atc2VydmVyIGRpc2NvdmVyeSBkbnMgZS1tYWlsIGV0aGVybmV0IGZpbHRlciBmaXJtd2FyZSBncHMgZ3JhcGhpbmcgZ3JvdXAgaGFyZHdhcmUgaGVhbHRoIGhvdHNwb3QgaWRlbnRpdHkgaWdtcC1wcm94eSBpbmNvbWluZyBpbnN0YW5jZSBpbnRlcmZhY2UgaXAgaXBzZWMgaXB2NiBpcnEgbDJ0cC1zZXJ2ZXIgbGNkIGxkcCBsb2dnaW5nIG1hYy1zZXJ2ZXIgbWFjLXdpbmJveCBtYW5nbGUgbWFudWFsIG1pcnJvciBtbWUgbXBscyBuYXQgbmQgbmVpZ2hib3IgbmV0d29yayBub3RlIG50cCBvc3BmIG9zcGYtdjMgb3Zwbi1zZXJ2ZXIgcGFnZSBwZWVyIHBpbSBwaW5nIHBvbGljeSBwb29sIHBvcnQgcHBwIHBwcG9lLWNsaWVudCBwcHRwLXNlcnZlciBwcmVmaXggcHJvZmlsZSBwcm9wb3NhbCBwcm94eSBxdWV1ZSByYWRpdXMgcmVzb3VyY2UgcmlwIHJpcG5nIHJvdXRlIHJvdXRpbmcgc2NyZWVuIHNjcmlwdCBzZWN1cml0eS1wcm9maWxlcyBzZXJ2ZXIgc2VydmljZSBzZXJ2aWNlLXBvcnQgc2V0dGluZ3Mgc2hhcmVzIHNtYiBzbXMgc25pZmZlciBzbm1wIHNub29wZXIgc29ja3Mgc3N0cC1zZXJ2ZXIgc3lzdGVtIHRvb2wgdHJhY2tpbmcgdHlwZSB1cGdyYWRlIHVwbnAgdXNlci1tYW5hZ2VyIHVzZXJzIHVzZXIgdmxhbiBzZWNyZXQgdnJycCB3YXRjaGRvZyB3ZWItYWNjZXNzIHdpcmVsZXNzIHBwdHAgcHBwb2UgbGFuIHdhbiBsYXllcjctcHJvdG9jb2wgbGVhc2Ugc2ltcGxlIHJhdyc7XG5cbiAgY29uc3QgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogL1xcJFtcXHdcXGQjQF1bXFx3XFxkX10qLyB9LFxuICAgICAgeyBiZWdpbjogL1xcJFxceyguKj8pXFx9LyB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFFVT1RFX1NUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgVkFSLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQVBPU19TVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogLycvLFxuICAgIGVuZDogLycvXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnTWlrcm9UaWsgUm91dGVyT1Mgc2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbICdtaWtyb3RpaycgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogLzo/W1xcdy1dKy8sXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIGtleXdvcmQ6IFNUQVRFTUVOVFMgKyAnIDonICsgU1RBVEVNRU5UUy5zcGxpdCgnICcpLmpvaW4oJyA6JykgKyAnIDonICsgR0xPQkFMX0NPTU1BTkRTLnNwbGl0KCcgJykuam9pbignIDonKVxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8gaWxsZWdhbCBzeW50YXhcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IC8vIC0tIGNvbW1lbnRcbiAgICAgICAgICAgIGJlZ2luOiAvXFwvXFwqLyxcbiAgICAgICAgICAgIGVuZDogL1xcKlxcLy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgLy8gU3RhbiBjb21tZW50XG4gICAgICAgICAgICBiZWdpbjogL1xcL1xcLy8sXG4gICAgICAgICAgICBlbmQ6IC8kL1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBIVE1MIHRhZ3NcbiAgICAgICAgICAgIGJlZ2luOiAvPFxcLy8sXG4gICAgICAgICAgICBlbmQ6IC8+L1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgaWxsZWdhbDogLy4vXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCdeIycsICckJyksXG4gICAgICBRVU9URV9TVFJJTkcsXG4gICAgICBBUE9TX1NUUklORyxcbiAgICAgIFZBUixcbiAgICAgIC8vIGF0dHJpYnV0ZT12YWx1ZVxuICAgICAge1xuICAgICAgICAvLyA+IGlzIHRvIGF2b2lkIG1hdGNoZXMgd2l0aCA9PiBpbiBvdGhlciBncmFtbWFyc1xuICAgICAgICBiZWdpbjogL1tcXHctXSs9KFteXFxze31bXFxdKCk+XSspLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdhdHRyaWJ1dGUnLFxuICAgICAgICAgICAgYmVnaW46IC9bXj1dKy9cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvPS8sXG4gICAgICAgICAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIFFVT1RFX1NUUklORyxcbiAgICAgICAgICAgICAgQVBPU19TVFJJTkcsXG4gICAgICAgICAgICAgIFZBUixcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIExJVEVSQUxTLnNwbGl0KCcgJykuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC8vIERvIG5vdCBmb3JtYXQgdW5jbGFzc2lmaWVkIHZhbHVlcy4gTmVlZGVkIHRvIGV4Y2x1ZGUgaGlnaGxpZ2h0aW5nIG9mIHZhbHVlcyBhcyBidWlsdF9pbi5cbiAgICAgICAgICAgICAgICBiZWdpbjogLyhcIlteXCJdKlwifFteXFxze31bXFxdXSspLyB9XG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBJUHY0IGFkZHJlc3NlcyBhbmQgc3VibmV0c1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAgICAgICAgIHtiZWdpbjogSVBBRERSX3dCSVRNQVNLKycoLCcrSVBBRERSX3dCSVRNQVNLKycpKid9LCAvLzE5Mi4xNjguMC4wLzI0LDEuMi4zLjAvMjRcbiAgICAgICAgICAgICAgICAgIHtiZWdpbjogSVBBRERSKyctJytJUEFERFJ9LCAgICAgICAvLyAxOTIuMTY4LjAuMS0xOTIuMTY4LjAuM1xuICAgICAgICAgICAgICAgICAge2JlZ2luOiBJUEFERFIrJygsJytJUEFERFIrJykqJ30sIC8vIDE5Mi4xNjguMC4xLDE5Mi4xNjguMC4zNCwxOTIuMTY4LjI0LjEsMTkyLjE2OC4wLjFcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAvLyBNQUMgYWRkcmVzc2VzIGFuZCBESENQIENsaWVudCBJRHNcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIGJlZ2luOiAvXFxiKDE6KT8oWzAtOUEtRmEtZl17MSwyfVs6LV0pezV9KFswLTlBLUZhLWZdKXsxLDJ9XFxiLyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIEhFWCB2YWx1ZXNcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IC9cXCpbMC05YS1mQS1GXSsvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFxiKCcgKyBDT01NT05fQ09NTUFORFMuc3BsaXQoJyAnKS5qb2luKCd8JykgKyAnKShbXFxcXHNbKFxcXFxdfF0pJyxcbiAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLCAvLyAnZnVuY3Rpb24nLFxuICAgICAgICAgICAgYmVnaW46IC9cXHcrL1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICcoXFxcXC5cXFxcLi98L3xcXFxccykoKCcgKyBPQkpFQ1RTLnNwbGl0KCcgJykuam9pbignfCcpICsgJyk7P1xcXFxzKSsnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IC9cXC5cXC4vLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcm9zO1xuIiwgIi8qXG5MYW5ndWFnZTogUmVuZGVyTWFuIFJTTFxuQXV0aG9yOiBLb25zdGFudGluIEV2ZG9raW1lbmtvIDxxZXdlcnR5QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogU2h1ZW4tSHVlaSBHdWFuIDxkcmFrZS5ndWFuQGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vcmVuZGVybWFuLnBpeGFyLmNvbS9yZXNvdXJjZXMvUmVuZGVyTWFuXzIwL3NoYWRpbmdMYW5ndWFnZS5odG1sXG5DYXRlZ29yeTogZ3JhcGhpY3NcbiovXG5cbmZ1bmN0aW9uIHJzbChobGpzKSB7XG4gIGNvbnN0IEJVSUxUX0lOUyA9IFtcbiAgICBcImFic1wiLFxuICAgIFwiYWNvc1wiLFxuICAgIFwiYW1iaWVudFwiLFxuICAgIFwiYXJlYVwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXRtb3NwaGVyZVwiLFxuICAgIFwiYXR0cmlidXRlXCIsXG4gICAgXCJjYWxjdWxhdGVub3JtYWxcIixcbiAgICBcImNlaWxcIixcbiAgICBcImNlbGxub2lzZVwiLFxuICAgIFwiY2xhbXBcIixcbiAgICBcImNvbXBcIixcbiAgICBcImNvbmNhdFwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJkZWdyZWVzXCIsXG4gICAgXCJkZXB0aFwiLFxuICAgIFwiRGVyaXZcIixcbiAgICBcImRpZmZ1c2VcIixcbiAgICBcImRpc3RhbmNlXCIsXG4gICAgXCJEdVwiLFxuICAgIFwiRHZcIixcbiAgICBcImVudmlyb25tZW50XCIsXG4gICAgXCJleHBcIixcbiAgICBcImZhY2Vmb3J3YXJkXCIsXG4gICAgXCJmaWx0ZXJzdGVwXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwiZm9ybWF0XCIsXG4gICAgXCJmcmVzbmVsXCIsXG4gICAgXCJpbmNpZGVudFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsaWdodHNvdXJjZVwiLFxuICAgIFwibG9nXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF4XCIsXG4gICAgXCJtaW5cIixcbiAgICBcIm1vZFwiLFxuICAgIFwibm9pc2VcIixcbiAgICBcIm5vcm1hbGl6ZVwiLFxuICAgIFwibnRyYW5zZm9ybVwiLFxuICAgIFwib3Bwb3NpdGVcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwicGhvbmdcIixcbiAgICBcInBub2lzZVwiLFxuICAgIFwicG93XCIsXG4gICAgXCJwcmludGZcIixcbiAgICBcInB0bGluZWRcIixcbiAgICBcInJhZGlhbnNcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicmVmbGVjdFwiLFxuICAgIFwicmVmcmFjdFwiLFxuICAgIFwicmVuZGVyaW5mb1wiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNldGNvbXBcIixcbiAgICBcInNldHhjb21wXCIsXG4gICAgXCJzZXR5Y29tcFwiLFxuICAgIFwic2V0emNvbXBcIixcbiAgICBcInNoYWRvd1wiLFxuICAgIFwic2lnblwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzbW9vdGhzdGVwXCIsXG4gICAgXCJzcGVjdWxhclwiLFxuICAgIFwic3BlY3VsYXJicmRmXCIsXG4gICAgXCJzcGxpbmVcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0ZXBcIixcbiAgICBcInRhblwiLFxuICAgIFwidGV4dHVyZVwiLFxuICAgIFwidGV4dHVyZWluZm9cIixcbiAgICBcInRyYWNlXCIsXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICBcInZ0cmFuc2Zvcm1cIixcbiAgICBcInhjb21wXCIsXG4gICAgXCJ5Y29tcFwiLFxuICAgIFwiemNvbXBcIlxuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwibWF0cml4XCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiY29sb3JcIixcbiAgICBcInBvaW50XCIsXG4gICAgXCJub3JtYWxcIixcbiAgICBcInZlY3RvclwiXG4gIF07XG5cbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiZG9cIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImV4dGVyblwiLFxuICAgIFwiY29udGludWVcIlxuICBdO1xuXG4gIGNvbnN0IENMQVNTX0RFRklOSVRJT04gPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC8oc3VyZmFjZXxkaXNwbGFjZW1lbnR8bGlnaHR8dm9sdW1lfGltYWdlcikvLFxuICAgICAgL1xccysvLFxuICAgICAgaGxqcy5JREVOVF9SRSxcbiAgICBdLFxuICAgIHNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnUmVuZGVyTWFuIFJTTCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUX0lOUyxcbiAgICAgIHR5cGU6IFRZUEVTXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgIGVuZDogJyQnXG4gICAgICB9LFxuICAgICAgQ0xBU1NfREVGSU5JVElPTixcbiAgICAgIHtcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2lsbHVtaW5hdGUgaWxsdW1pbmFuY2UgZ2F0aGVyJyxcbiAgICAgICAgZW5kOiAnXFxcXCgnXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJzbDtcbiIsICIvKlxuTGFuZ3VhZ2U6IE9yYWNsZSBSdWxlcyBMYW5ndWFnZVxuQXV0aG9yOiBKYXNvbiBKYWNvYnNvbiA8amFzb24uYS5qYWNvYnNvbkBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVGhlIE9yYWNsZSBVdGlsaXRpZXMgUnVsZXMgTGFuZ3VhZ2UgaXMgdXNlZCB0byBwcm9ncmFtIHRoZSBPcmFjbGUgVXRpbGl0aWVzIEFwcGxpY2F0aW9ucyBhY3F1aXJlZCBmcm9tIExPREVTVEFSIENvcnBvcmF0aW9uLiAgVGhlIHByb2R1Y3RzIGluY2x1ZGUgQmlsbGluZyBDb21wb25lbnQsIExQU1MsIFByaWNpbmcgQ29tcG9uZW50IGV0Yy4gdGhyb3VnaCB2ZXJzaW9uIDEuNi4xLlxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vY2QvRTE3OTA0XzAxL2Rldi4xMTExL2UxMDIyNy9ybHJlZi5odG1cbkNhdGVnb3J5OiBlbnRlcnByaXNlXG4qL1xuXG5mdW5jdGlvbiBydWxlc2xhbmd1YWdlKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnT3JhY2xlIFJ1bGVzIExhbmd1YWdlJyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ0JJTExfUEVSSU9EIEJJTExfU1RBUlQgQklMTF9TVE9QIFJTX0VGRkVDVElWRV9TVEFSVCBSU19FRkZFQ1RJVkVfU1RPUCBSU19KVVJJU19DT0RFIFJTX09QQ09fQ09ERSAnXG4gICAgICAgICsgJ0lOVERBRERBVFRSSUJVVEV8NSBJTlREQUREVk1TR3w1IElOVERCTE9DS09QfDUgSU5UREJMT0NLT1BOQXw1IElOVERDTE9TRXw1IElOVERDT1VOVHw1ICdcbiAgICAgICAgKyAnSU5URENPVU5UU1RBVFVTQ09ERXw1IElOVERDUkVBVEVNQVNLfDUgSU5URENSRUFURURBWU1BU0t8NSBJTlREQ1JFQVRFRkFDVE9STUFTS3w1ICdcbiAgICAgICAgKyAnSU5URENSRUFURUhBTkRMRXw1IElOVERDUkVBVEVPVkVSUklERURBWU1BU0t8NSBJTlREQ1JFQVRFT1ZFUlJJREVNQVNLfDUgJ1xuICAgICAgICArICdJTlREQ1JFQVRFU1RBVFVTQ09ERU1BU0t8NSBJTlREQ1JFQVRFVE9VUEVSSU9EfDUgSU5URERFTEVURXw1IElOVERESVBURVNUfDUgSU5UREVYUE9SVHw1ICdcbiAgICAgICAgKyAnSU5UREdFVEVSUk9SQ09ERXw1IElOVERHRVRFUlJPUk1FU1NBR0V8NSBJTlRESVNFUVVBTHw1IElOVERKT0lOfDUgSU5URExPQUR8NSBJTlRETE9BREFDVFVBTENVVHw1ICdcbiAgICAgICAgKyAnSU5URExPQUREQVRFU3w1IElOVERMT0FESElTVHw1IElOVERMT0FETElTVHw1IElOVERMT0FETElTVERBVEVTfDUgSU5URExPQURMSVNURU5FUkdZfDUgJ1xuICAgICAgICArICdJTlRETE9BRExJU1RISVNUfDUgSU5URExPQURSRUxBVEVEQ0hBTk5FTHw1IElOVERMT0FEU1B8NSBJTlRETE9BRFNUQUdJTkd8NSBJTlRETE9BRFVPTXw1ICdcbiAgICAgICAgKyAnSU5URExPQURVT01EQVRFU3w1IElOVERMT0FEVU9NSElTVHw1IElOVERMT0FEVkVSU0lPTnw1IElOVERPUEVOfDUgSU5URFJFQURGSVJTVHw1IElOVERSRUFETkVYVHw1ICdcbiAgICAgICAgKyAnSU5URFJFQ0NPVU5UfDUgSU5URFJFTEVBU0V8NSBJTlREUkVQTEFDRXw1IElOVERST0xMQVZHfDUgSU5URFJPTExQRUFLfDUgSU5URFNDQUxBUk9QfDUgSU5URFNDQUxFfDUgJ1xuICAgICAgICArICdJTlREU0VUQVRUUklCVVRFfDUgSU5URFNFVERTVFBBUlRJQ0lQQU5UfDUgSU5URFNFVFNUUklOR3w1IElOVERTRVRWQUxVRXw1IElOVERTRVRWQUxVRVNUQVRVU3w1ICdcbiAgICAgICAgKyAnSU5URFNISUZUU1RBUlRUSU1FfDUgSU5URFNNT09USHw1IElOVERTT1JUfDUgSU5URFNQSUtFVEVTVHw1IElOVERTVUJTRVR8NSBJTlREVE9VfDUgJ1xuICAgICAgICArICdJTlREVE9VUkVMRUFTRXw1IElOVERUT1VWQUxVRXw1IElOVERVUERBVEVTVEFUU3w1IElOVERWQUxVRXw1IFNUREVWIElOVERERUxFVEVFWHw1ICdcbiAgICAgICAgKyAnSU5URExPQURFWEFDVFVBTHw1IElOVERMT0FERVhDVVR8NSBJTlRETE9BREVYREFURVN8NSBJTlRETE9BREVYfDUgSU5URExPQURFWFJFTEFURURDSEFOTkVMfDUgJ1xuICAgICAgICArICdJTlREU0FWRUVYfDUgTVZMT0FEfDUgTVZMT0FEQUNDVHw1IE1WTE9BREFDQ1REQVRFU3w1IE1WTE9BREFDQ1RISVNUfDUgTVZMT0FEREFURVN8NSBNVkxPQURISVNUfDUgJ1xuICAgICAgICArICdNVkxPQURMSVNUfDUgTVZMT0FETElTVERBVEVTfDUgTVZMT0FETElTVEhJU1R8NSBJRiBGT1IgTkVYVCBET05FIFNFTEVDVCBFTkQgQ0FMTCBBQk9SVCBDTEVBUiBDSEFOTkVMIEZBQ1RPUiBMSVNUIE5VTUJFUiAnXG4gICAgICAgICsgJ09WRVJSSURFIFNFVCBXRUVLIERJU1RSSUJVVElPTk5PREUgRUxTRSBXSEVOIFRIRU4gT1RIRVJXSVNFIElFTlVNIENTViBJTkNMVURFIExFQVZFIFJJREVSIFNBVkUgREVMRVRFICdcbiAgICAgICAgKyAnTk9WQUxVRSBTRUNUSU9OIFdBUk4gU0FWRV9VUERBVEUgREVURVJNSU5BTlQgTEFCRUwgUkVQT1JUIFJFVkVOVUUgRUFDSCAnXG4gICAgICAgICsgJ0lOIEZST00gVE9UQUwgQ0hBUkdFIEJMT0NLIEFORCBPUiBDU1ZfRklMRSBSQVRFX0NPREUgQVVYSUxJQVJZX0RFTUFORCAnXG4gICAgICAgICsgJ1VJREFDQ09VTlQgUlMgQklMTF9QRVJJT0RfU0VMRUNUIEhPVVJTX1BFUl9NT05USCBJTlREX0VSUk9SX1NUT1AgU0VBU09OX1NDSEVEVUxFX05BTUUgJ1xuICAgICAgICArICdBQ0NPVU5URkFDVE9SIEFSUkFZVVBQRVJCT1VORCBDQUxMU1RPUkVEUFJPQyBHRVRBRE9DT05ORUNUSU9OIEdFVENPTk5FQ1QgR0VUREFUQVNPVVJDRSAnXG4gICAgICAgICsgJ0dFVFFVQUxJRklFUiBHRVRVU0VSSUQgSEFTVkFMVUUgTElTVENPVU5UIExJU1RPUCBMSVNUVVBEQVRFIExJU1RWQUxVRSBQUk9SQVRFRkFDVE9SIFJTUFJPUkFURSAnXG4gICAgICAgICsgJ1NFVEJJTlBBVEggU0VUREJNT05JVE9SIFdRX09QRU4gQklMTElOR0hPVVJTIERBVEUgREFURUZST01GTE9BVCBEQVRFVElNRUZST01TVFJJTkcgJ1xuICAgICAgICArICdEQVRFVElNRVRPU1RSSU5HIERBVEVUT0ZMT0FUIERBWSBEQVlESUZGIERBWU5BTUUgREJEQVRFVElNRSBIT1VSIE1JTlVURSBNT05USCBNT05USERJRkYgJ1xuICAgICAgICArICdNT05USEhPVVJTIE1PTlRITkFNRSBST1VORERBVEUgU0FNRVdFRUtEQVlMQVNUWUVBUiBTRUNPTkQgV0VFS0RBWSBXRUVLRElGRiBZRUFSIFlFQVJEQVkgJ1xuICAgICAgICArICdZRUFSU1RSIENPTVBTVU0gSElTVENPVU5UIEhJU1RNQVggSElTVE1JTiBISVNUTUlOTlogSElTVFZBTFVFIE1BWE5SQU5HRSBNQVhSQU5HRSBNSU5SQU5HRSAnXG4gICAgICAgICsgJ0NPTVBJS1ZBIENPTVBLVkEgQ09NUEtWQVJGUk9NS1FLVyBDT01QTEYgSURBVFRSIEZMQUcgTEYyS1cgTEYyS1dIIE1BWEtXIFBPV0VSRkFDVE9SICdcbiAgICAgICAgKyAnUkVBRElORzJVU0FHRSBBVkdTRUFTT04gTUFYU0VBU09OIE1PTlRITFlNRVJHRSBTRUFTT05WQUxVRSBTVU1TRUFTT04gQUNDVFJFQUREQVRFUyAnXG4gICAgICAgICsgJ0FDQ1RUQUJMRUxPQUQgQ09ORklHQUREIENPTkZJR0dFVCBDUkVBVEVPQkpFQ1QgQ1JFQVRFUkVQT1JUIEVNQUlMQ0xJRU5UIEVYUEJMS01ETVVTQUdFICdcbiAgICAgICAgKyAnRVhQTURNVVNBR0UgRVhQT1JUX1VTQUdFIEZBQ1RPUklORUZGRUNUIEdFVFVTRVJTUEVDSUZJRURTVE9QIElORUZGRUNUIElTSE9MSURBWSBSVU5SQVRFICdcbiAgICAgICAgKyAnU0FWRV9QUk9GSUxFIFNFVFJFUE9SVFRJVExFIFVTRVJFWElUIFdBVEZPUlJVTlJBVEUgVE8gVEFCTEUgQUNPUyBBU0lOIEFUQU4gQVRBTjIgQklUQU5EIENFSUwgJ1xuICAgICAgICArICdDT1MgQ09TRUNBTlQgQ09TSCBDT1RBTkdFTlQgRElWUVVPVCBESVZSRU0gRVhQIEZBQlMgRkxPT1IgRk1PRCBGUkVQTSBGUkVYUE4gTE9HIExPRzEwIE1BWCBNQVhOICdcbiAgICAgICAgKyAnTUlOIE1JTk5aIE1PREYgUE9XIFJPVU5EIFJPVU5EMlZBTFVFIFJPVU5ESU5UIFNFQ0FOVCBTSU4gU0lOSCBTUVJPT1QgVEFOIFRBTkggRkxPQVQyU1RSSU5HICdcbiAgICAgICAgKyAnRkxPQVQyU1RSSU5HTkMgSU5TVFIgTEVGVCBMRU4gTFRSSU0gTUlEIFJJR0hUIFJUUklNIFNUUklORyBTVFJJTkdOQyBUT0xPV0VSIFRPVVBQRVIgVFJJTSAnXG4gICAgICAgICsgJ05VTURBWVMgUkVBRF9EQVRFIFNUQUdJTkcnLFxuICAgICAgYnVpbHRfaW46XG4gICAgICAgICdJREVOVElGSUVSIE9QVElPTlMgWE1MX0VMRU1FTlQgWE1MX09QIFhNTF9FTEVNRU5UX09GIERPTURPQ0NSRUFURSBET01ET0NMT0FERklMRSBET01ET0NMT0FEWE1MICdcbiAgICAgICAgKyAnRE9NRE9DU0FWRUZJTEUgRE9NRE9DR0VUUk9PVCBET01ET0NBRERQSSBET01OT0RFR0VUTkFNRSBET01OT0RFR0VUVFlQRSBET01OT0RFR0VUVkFMVUUgRE9NTk9ERUdFVENISUxEQ1QgJ1xuICAgICAgICArICdET01OT0RFR0VURklSU1RDSElMRCBET01OT0RFR0VUU0lCTElORyBET01OT0RFQ1JFQVRFQ0hJTERFTEVNRU5UIERPTU5PREVTRVRBVFRSSUJVVEUgJ1xuICAgICAgICArICdET01OT0RFR0VUQ0hJTERFTEVNRU5UQ1QgRE9NTk9ERUdFVEZJUlNUQ0hJTERFTEVNRU5UIERPTU5PREVHRVRTSUJMSU5HRUxFTUVOVCBET01OT0RFR0VUQVRUUklCVVRFQ1QgJ1xuICAgICAgICArICdET01OT0RFR0VUQVRUUklCVVRFSSBET01OT0RFR0VUQVRUUklCVVRFQllOQU1FIERPTU5PREVHRVRCWU5BTUUnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgLy8gbG9va3MgbGlrZSAjLWNvbW1lbnRcbiAgICAgICAgICAgIGJlZ2luOiAnI1xcXFxzKycsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgYmVnaW46ICcjW2EtekEtWiAuXSsnIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBydWxlc2xhbmd1YWdlO1xuIiwgIi8qXG5MYW5ndWFnZTogUnVzdFxuQXV0aG9yOiBBbmRyZXkgVmxhc292c2tpa2ggPGFuZHJleS52bGFzb3Zza2lraEBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IFJvbWFuIFNobWF0b3YgPHJvbWFuc2htYXRvdkBnbWFpbC5jb20+LCBLYXNwZXIgQW5kZXJzZW4gPGttYV91bnRydXN0ZWRAcHJvdG9ubWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5ydXN0LWxhbmcub3JnXG5DYXRlZ29yeTogY29tbW9uLCBzeXN0ZW1cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5cbmZ1bmN0aW9uIHJ1c3QoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFkZGVkIHRvIHN1cHBvcnQgdGhlIHIjIGtleXdvcmQsIHdoaWNoIGlzIGEgcmF3IGlkZW50aWZpZXIgaW4gUnVzdC5cbiAgY29uc3QgUkFXX0lERU5USUZJRVIgPSAvKHIjKT8vO1xuICBjb25zdCBVTkRFUlNDT1JFX0lERU5UX1JFID0gcmVnZXguY29uY2F0KFJBV19JREVOVElGSUVSLCBobGpzLlVOREVSU0NPUkVfSURFTlRfUkUpO1xuICBjb25zdCBJREVOVF9SRSA9IHJlZ2V4LmNvbmNhdChSQVdfSURFTlRJRklFUiwgaGxqcy5JREVOVF9SRSk7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIGNvbnN0IEZVTkNUSU9OX0lOVk9LRSA9IHtcbiAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb24uaW52b2tlXCIsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIC8oPyFsZXR8Zm9yfHdoaWxlfGlmfGVsc2V8bWF0Y2hcXGIpLyxcbiAgICAgIElERU5UX1JFLFxuICAgICAgcmVnZXgubG9va2FoZWFkKC9cXHMqXFwoLykpXG4gIH07XG4gIGNvbnN0IE5VTUJFUl9TVUZGSVggPSAnKFt1aV0oOHwxNnwzMnw2NHwxMjh8c2l6ZSl8ZigzMnw2NCkpXFw/JztcbiAgY29uc3QgS0VZV09SRFMgPSBbXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwiYXNcIixcbiAgICBcImFzeW5jXCIsXG4gICAgXCJhd2FpdFwiLFxuICAgIFwiYmVjb21lXCIsXG4gICAgXCJib3hcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImNyYXRlXCIsXG4gICAgXCJkb1wiLFxuICAgIFwiZHluXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJleHRlcm5cIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJmaW5hbFwiLFxuICAgIFwiZm5cIixcbiAgICBcImZvclwiLFxuICAgIFwiaWZcIixcbiAgICBcImltcGxcIixcbiAgICBcImluXCIsXG4gICAgXCJsZXRcIixcbiAgICBcImxvb3BcIixcbiAgICBcIm1hY3JvXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJtb3ZlXCIsXG4gICAgXCJtdXRcIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJwcml2XCIsXG4gICAgXCJwdWJcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzZWxmXCIsXG4gICAgXCJTZWxmXCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0cnVjdFwiLFxuICAgIFwic3VwZXJcIixcbiAgICBcInRyYWl0XCIsXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJ0cnlcIixcbiAgICBcInR5cGVcIixcbiAgICBcInR5cGVvZlwiLFxuICAgIFwidW5pb25cIixcbiAgICBcInVuc2FmZVwiLFxuICAgIFwidW5zaXplZFwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2aXJ0dWFsXCIsXG4gICAgXCJ3aGVyZVwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcInlpZWxkXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwiU29tZVwiLFxuICAgIFwiTm9uZVwiLFxuICAgIFwiT2tcIixcbiAgICBcIkVyclwiXG4gIF07XG4gIGNvbnN0IEJVSUxUSU5TID0gW1xuICAgIC8vIGZ1bmN0aW9uc1xuICAgICdkcm9wICcsXG4gICAgLy8gdHJhaXRzXG4gICAgXCJDb3B5XCIsXG4gICAgXCJTZW5kXCIsXG4gICAgXCJTaXplZFwiLFxuICAgIFwiU3luY1wiLFxuICAgIFwiRHJvcFwiLFxuICAgIFwiRm5cIixcbiAgICBcIkZuTXV0XCIsXG4gICAgXCJGbk9uY2VcIixcbiAgICBcIlRvT3duZWRcIixcbiAgICBcIkNsb25lXCIsXG4gICAgXCJEZWJ1Z1wiLFxuICAgIFwiUGFydGlhbEVxXCIsXG4gICAgXCJQYXJ0aWFsT3JkXCIsXG4gICAgXCJFcVwiLFxuICAgIFwiT3JkXCIsXG4gICAgXCJBc1JlZlwiLFxuICAgIFwiQXNNdXRcIixcbiAgICBcIkludG9cIixcbiAgICBcIkZyb21cIixcbiAgICBcIkRlZmF1bHRcIixcbiAgICBcIkl0ZXJhdG9yXCIsXG4gICAgXCJFeHRlbmRcIixcbiAgICBcIkludG9JdGVyYXRvclwiLFxuICAgIFwiRG91YmxlRW5kZWRJdGVyYXRvclwiLFxuICAgIFwiRXhhY3RTaXplSXRlcmF0b3JcIixcbiAgICBcIlNsaWNlQ29uY2F0RXh0XCIsXG4gICAgXCJUb1N0cmluZ1wiLFxuICAgIC8vIG1hY3Jvc1xuICAgIFwiYXNzZXJ0IVwiLFxuICAgIFwiYXNzZXJ0X2VxIVwiLFxuICAgIFwiYml0ZmxhZ3MhXCIsXG4gICAgXCJieXRlcyFcIixcbiAgICBcImNmZyFcIixcbiAgICBcImNvbCFcIixcbiAgICBcImNvbmNhdCFcIixcbiAgICBcImNvbmNhdF9pZGVudHMhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnQhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnRfZXEhXCIsXG4gICAgXCJlbnYhXCIsXG4gICAgXCJlcHJpbnRsbiFcIixcbiAgICBcInBhbmljIVwiLFxuICAgIFwiZmlsZSFcIixcbiAgICBcImZvcm1hdCFcIixcbiAgICBcImZvcm1hdF9hcmdzIVwiLFxuICAgIFwiaW5jbHVkZV9ieXRlcyFcIixcbiAgICBcImluY2x1ZGVfc3RyIVwiLFxuICAgIFwibGluZSFcIixcbiAgICBcImxvY2FsX2RhdGFfa2V5IVwiLFxuICAgIFwibW9kdWxlX3BhdGghXCIsXG4gICAgXCJvcHRpb25fZW52IVwiLFxuICAgIFwicHJpbnQhXCIsXG4gICAgXCJwcmludGxuIVwiLFxuICAgIFwic2VsZWN0IVwiLFxuICAgIFwic3RyaW5naWZ5IVwiLFxuICAgIFwidHJ5IVwiLFxuICAgIFwidW5pbXBsZW1lbnRlZCFcIixcbiAgICBcInVucmVhY2hhYmxlIVwiLFxuICAgIFwidmVjIVwiLFxuICAgIFwid3JpdGUhXCIsXG4gICAgXCJ3cml0ZWxuIVwiLFxuICAgIFwibWFjcm9fcnVsZXMhXCIsXG4gICAgXCJhc3NlcnRfbmUhXCIsXG4gICAgXCJkZWJ1Z19hc3NlcnRfbmUhXCJcbiAgXTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJpOFwiLFxuICAgIFwiaTE2XCIsXG4gICAgXCJpMzJcIixcbiAgICBcImk2NFwiLFxuICAgIFwiaTEyOFwiLFxuICAgIFwiaXNpemVcIixcbiAgICBcInU4XCIsXG4gICAgXCJ1MTZcIixcbiAgICBcInUzMlwiLFxuICAgIFwidTY0XCIsXG4gICAgXCJ1MTI4XCIsXG4gICAgXCJ1c2l6ZVwiLFxuICAgIFwiZjMyXCIsXG4gICAgXCJmNjRcIixcbiAgICBcInN0clwiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiYm9vbFwiLFxuICAgIFwiQm94XCIsXG4gICAgXCJPcHRpb25cIixcbiAgICBcIlJlc3VsdFwiLFxuICAgIFwiU3RyaW5nXCIsXG4gICAgXCJWZWNcIlxuICBdO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdSdXN0JyxcbiAgICBhbGlhc2VzOiBbICdycycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IGhsanMuSURFTlRfUkUgKyAnIT8nLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUSU5TXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnPC8nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNPTU1FTlQoJy9cXFxcKicsICdcXFxcKi8nLCB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHtcbiAgICAgICAgYmVnaW46IC9iP1wiLyxcbiAgICAgICAgaWxsZWdhbDogbnVsbFxuICAgICAgfSksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogL2I/cigjKilcIigufFxcbikqP1wiXFwxKD8hIykvIH0sXG4gICAgICAgICAgeyBiZWdpbjogL2I/J1xcXFw/KHhcXHd7Mn18dVxcd3s0fXxVXFx3ezh9fC4pJy8gfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogLydbYS16QS1aX11bYS16QS1aMC05X10qL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIwYihbMDFfXSspJyArIE5VTUJFUl9TVUZGSVggfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIwbyhbMC03X10rKScgKyBOVU1CRVJfU1VGRklYIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxiMHgoW0EtRmEtZjAtOV9dKyknICsgTlVNQkVSX1NVRkZJWCB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYihcXFxcZFtcXFxcZF9dKihcXFxcLlswLTlfXSspPyhbZUVdWystXT9bMC05X10rKT8pJ1xuICAgICAgICAgICAgICAgICAgICsgTlVNQkVSX1NVRkZJWCB9XG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvZm4vLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBVTkRFUlNDT1JFX0lERU5UX1JFXG4gICAgICAgIF0sXG4gICAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46ICcjIT9cXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgICAgICBlbmQ6IC9cIi8sXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL2xldC8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC8oPzptdXRcXHMrKT8vLFxuICAgICAgICAgIFVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgNDogXCJ2YXJpYWJsZVwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBtdXN0IGNvbWUgYmVmb3JlIGltcGwvZm9yIHJ1bGUgbGF0ZXJcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvZm9yLyxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgVU5ERVJTQ09SRV9JREVOVF9SRSxcbiAgICAgICAgICAvXFxzKy8sXG4gICAgICAgICAgL2luL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInZhcmlhYmxlXCIsXG4gICAgICAgICAgNTogXCJrZXl3b3JkXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvdHlwZS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIFVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyg/OnRyYWl0fGVudW18c3RydWN0fHVuaW9ufGltcGx8Zm9yKS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIFVOREVSU0NPUkVfSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBobGpzLklERU5UX1JFICsgJzo6JyxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICBrZXl3b3JkOiBcIlNlbGZcIixcbiAgICAgICAgICBidWlsdF9pbjogQlVJTFRJTlMsXG4gICAgICAgICAgdHlwZTogVFlQRVNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInB1bmN0dWF0aW9uXCIsXG4gICAgICAgIGJlZ2luOiAnLT4nXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fSU5WT0tFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJ1c3Q7XG4iLCAiLypcbkxhbmd1YWdlOiBTQVNcbkF1dGhvcjogTWF1cmljaW8gQ2FjZXJlcyA8bWF1cmljaW8uY2FjZXJlcy5icmF2b0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IEhpZ2hsaWdodGluZyBmb3IgU0FTXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHNhcyhobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gRGF0YSBzdGVwIGFuZCBQUk9DIFNRTCBzdGF0ZW1lbnRzXG4gIGNvbnN0IFNBU19LRVlXT1JEUyA9IFtcbiAgICBcImRvXCIsXG4gICAgXCJpZlwiLFxuICAgIFwidGhlblwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJ1bnRpbFwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcImFib3J0XCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiYXR0cmliXCIsXG4gICAgXCJieVwiLFxuICAgIFwiY2FsbFwiLFxuICAgIFwiY2FyZHNcIixcbiAgICBcImNhcmRzNFwiLFxuICAgIFwiY2F0bmFtZVwiLFxuICAgIFwiY29udGludWVcIixcbiAgICBcImRhdGFsaW5lc1wiLFxuICAgIFwiZGF0YWxpbmVzNFwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJkZWxpbVwiLFxuICAgIFwiZGVsaW1pdGVyXCIsXG4gICAgXCJkaXNwbGF5XCIsXG4gICAgXCJkbVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZW5kc2FzXCIsXG4gICAgXCJlcnJvclwiLFxuICAgIFwiZmlsZVwiLFxuICAgIFwiZmlsZW5hbWVcIixcbiAgICBcImZvb3Rub3RlXCIsXG4gICAgXCJmb3JtYXRcIixcbiAgICBcImdvdG9cIixcbiAgICBcImluXCIsXG4gICAgXCJpbmZpbGVcIixcbiAgICBcImluZm9ybWF0XCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwia2VlcFwiLFxuICAgIFwibGFiZWxcIixcbiAgICBcImxlYXZlXCIsXG4gICAgXCJsZW5ndGhcIixcbiAgICBcImxpYm5hbWVcIixcbiAgICBcImxpbmtcIixcbiAgICBcImxpc3RcIixcbiAgICBcImxvc3RjYXJkXCIsXG4gICAgXCJtZXJnZVwiLFxuICAgIFwibWlzc2luZ1wiLFxuICAgIFwibW9kaWZ5XCIsXG4gICAgXCJvcHRpb25zXCIsXG4gICAgXCJvdXRwdXRcIixcbiAgICBcIm91dFwiLFxuICAgIFwicGFnZVwiLFxuICAgIFwicHV0XCIsXG4gICAgXCJyZWRpcmVjdFwiLFxuICAgIFwicmVtb3ZlXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInJldGFpblwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcInNldFwiLFxuICAgIFwic2tpcFwiLFxuICAgIFwic3RhcnRzYXNcIixcbiAgICBcInN0b3BcIixcbiAgICBcInRpdGxlXCIsXG4gICAgXCJ1cGRhdGVcIixcbiAgICBcIndhaXRzYXNcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aW5kb3dcIixcbiAgICBcInh8MFwiLFxuICAgIFwic3lzdGFza1wiLFxuICAgIFwiYWRkXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFsdGVyXCIsXG4gICAgXCJhc1wiLFxuICAgIFwiY2FzY2FkZVwiLFxuICAgIFwiY2hlY2tcIixcbiAgICBcImNyZWF0ZVwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJkZXNjcmliZVwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRyb3BcIixcbiAgICBcImZvcmVpZ25cIixcbiAgICBcImZyb21cIixcbiAgICBcImdyb3VwXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludG9cIixcbiAgICBcImluXCIsXG4gICAgXCJrZXlcIixcbiAgICBcImxpa2VcIixcbiAgICBcIm1lc3NhZ2VcIixcbiAgICBcIm1vZGlmeVwiLFxuICAgIFwibXNndHlwZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJudWxsXCIsXG4gICAgXCJvblwiLFxuICAgIFwib3JcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJyZWZlcmVuY2VzXCIsXG4gICAgXCJyZXNldFwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInNlbGVjdFwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJ0YWJsZVwiLFxuICAgIFwidW5pcXVlXCIsXG4gICAgXCJ1cGRhdGVcIixcbiAgICBcInZhbGlkYXRlXCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJ3aGVyZVwiXG4gIF07XG5cbiAgLy8gQnVpbHQtaW4gU0FTIGZ1bmN0aW9uc1xuICBjb25zdCBGVU5DVElPTlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFkZHJcIixcbiAgICBcImFpcnlcIixcbiAgICBcImFyY29zXCIsXG4gICAgXCJhcnNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXR0cmNcIixcbiAgICBcImF0dHJuXCIsXG4gICAgXCJiYW5kXCIsXG4gICAgXCJiZXRhaW52XCIsXG4gICAgXCJibHNoaWZ0XCIsXG4gICAgXCJibm90XCIsXG4gICAgXCJib3JcIixcbiAgICBcImJyc2hpZnRcIixcbiAgICBcImJ4b3JcIixcbiAgICBcImJ5dGVcIixcbiAgICBcImNkZlwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2V4aXN0XCIsXG4gICAgXCJjaW52XCIsXG4gICAgXCJjbG9zZVwiLFxuICAgIFwiY25vbmN0XCIsXG4gICAgXCJjb2xsYXRlXCIsXG4gICAgXCJjb21wYmxcIixcbiAgICBcImNvbXBvdW5kXCIsXG4gICAgXCJjb21wcmVzc1wiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJjc3NcIixcbiAgICBcImN1cm9ic1wiLFxuICAgIFwiY3ZcIixcbiAgICBcImRhY2NkYlwiLFxuICAgIFwiZGFjY2Ric2xcIixcbiAgICBcImRhY2NzbFwiLFxuICAgIFwiZGFjY3N5ZFwiLFxuICAgIFwiZGFjY3RhYlwiLFxuICAgIFwiZGFpcnlcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRhdGVqdWxcIixcbiAgICBcImRhdGVwYXJ0XCIsXG4gICAgXCJkYXRldGltZVwiLFxuICAgIFwiZGF5XCIsXG4gICAgXCJkY2xvc2VcIixcbiAgICBcImRlcGRiXCIsXG4gICAgXCJkZXBkYnNsXCIsXG4gICAgXCJkZXBkYnNsXCIsXG4gICAgXCJkZXBzbFwiLFxuICAgIFwiZGVwc2xcIixcbiAgICBcImRlcHN5ZFwiLFxuICAgIFwiZGVwc3lkXCIsXG4gICAgXCJkZXB0YWJcIixcbiAgICBcImRlcHRhYlwiLFxuICAgIFwiZGVxdW90ZVwiLFxuICAgIFwiZGhtc1wiLFxuICAgIFwiZGlmXCIsXG4gICAgXCJkaWdhbW1hXCIsXG4gICAgXCJkaW1cIixcbiAgICBcImRpbmZvXCIsXG4gICAgXCJkbnVtXCIsXG4gICAgXCJkb3BlblwiLFxuICAgIFwiZG9wdG5hbWVcIixcbiAgICBcImRvcHRudW1cIixcbiAgICBcImRyZWFkXCIsXG4gICAgXCJkcm9wbm90ZVwiLFxuICAgIFwiZHNuYW1lXCIsXG4gICAgXCJlcmZcIixcbiAgICBcImVyZmNcIixcbiAgICBcImV4aXN0XCIsXG4gICAgXCJleHBcIixcbiAgICBcImZhcHBlbmRcIixcbiAgICBcImZjbG9zZVwiLFxuICAgIFwiZmNvbFwiLFxuICAgIFwiZmRlbGV0ZVwiLFxuICAgIFwiZmV0Y2hcIixcbiAgICBcImZldGNob2JzXCIsXG4gICAgXCJmZXhpc3RcIixcbiAgICBcImZnZXRcIixcbiAgICBcImZpbGVleGlzdFwiLFxuICAgIFwiZmlsZW5hbWVcIixcbiAgICBcImZpbGVyZWZcIixcbiAgICBcImZpbmZvXCIsXG4gICAgXCJmaW52XCIsXG4gICAgXCJmaXBuYW1lXCIsXG4gICAgXCJmaXBuYW1lbFwiLFxuICAgIFwiZmlwc3RhdGVcIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJmbm9uY3RcIixcbiAgICBcImZub3RlXCIsXG4gICAgXCJmb3BlblwiLFxuICAgIFwiZm9wdG5hbWVcIixcbiAgICBcImZvcHRudW1cIixcbiAgICBcImZwb2ludFwiLFxuICAgIFwiZnBvc1wiLFxuICAgIFwiZnB1dFwiLFxuICAgIFwiZnJlYWRcIixcbiAgICBcImZyZXdpbmRcIixcbiAgICBcImZybGVuXCIsXG4gICAgXCJmc2VwXCIsXG4gICAgXCJmdXp6XCIsXG4gICAgXCJmd3JpdGVcIixcbiAgICBcImdhbWludlwiLFxuICAgIFwiZ2FtbWFcIixcbiAgICBcImdldG9wdGlvblwiLFxuICAgIFwiZ2V0dmFyY1wiLFxuICAgIFwiZ2V0dmFyblwiLFxuICAgIFwiaGJvdW5kXCIsXG4gICAgXCJobXNcIixcbiAgICBcImhvc3RoZWxwXCIsXG4gICAgXCJob3VyXCIsXG4gICAgXCJpYmVzc2VsXCIsXG4gICAgXCJpbmRleFwiLFxuICAgIFwiaW5kZXhjXCIsXG4gICAgXCJpbmRleHdcIixcbiAgICBcImlucHV0XCIsXG4gICAgXCJpbnB1dGNcIixcbiAgICBcImlucHV0blwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJpbnRja1wiLFxuICAgIFwiaW50bnhcIixcbiAgICBcImludHJyXCIsXG4gICAgXCJpcnJcIixcbiAgICBcImpiZXNzZWxcIixcbiAgICBcImp1bGRhdGVcIixcbiAgICBcImt1cnRvc2lzXCIsXG4gICAgXCJsYWdcIixcbiAgICBcImxib3VuZFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsZ2FtbWFcIixcbiAgICBcImxpYm5hbWVcIixcbiAgICBcImxpYnJlZlwiLFxuICAgIFwibG9nXCIsXG4gICAgXCJsb2cxMFwiLFxuICAgIFwibG9nMlwiLFxuICAgIFwibG9ncGRmXCIsXG4gICAgXCJsb2dwbWZcIixcbiAgICBcImxvZ3NkZlwiLFxuICAgIFwibG93Y2FzZVwiLFxuICAgIFwibWF4XCIsXG4gICAgXCJtZHlcIixcbiAgICBcIm1lYW5cIixcbiAgICBcIm1pblwiLFxuICAgIFwibWludXRlXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIm1vbnRoXCIsXG4gICAgXCJtb3BlblwiLFxuICAgIFwibW9ydFwiLFxuICAgIFwiblwiLFxuICAgIFwibmV0cHZcIixcbiAgICBcIm5taXNzXCIsXG4gICAgXCJub3JtYWxcIixcbiAgICBcIm5vdGVcIixcbiAgICBcIm5wdlwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JkaW5hbFwiLFxuICAgIFwicGF0aG5hbWVcIixcbiAgICBcInBkZlwiLFxuICAgIFwicGVla1wiLFxuICAgIFwicGVla2NcIixcbiAgICBcInBtZlwiLFxuICAgIFwicG9pbnRcIixcbiAgICBcInBvaXNzb25cIixcbiAgICBcInBva2VcIixcbiAgICBcInByb2JiZXRhXCIsXG4gICAgXCJwcm9iYm5tbFwiLFxuICAgIFwicHJvYmNoaVwiLFxuICAgIFwicHJvYmZcIixcbiAgICBcInByb2JnYW1cIixcbiAgICBcInByb2JoeXByXCIsXG4gICAgXCJwcm9iaXRcIixcbiAgICBcInByb2JuZWdiXCIsXG4gICAgXCJwcm9ibm9ybVwiLFxuICAgIFwicHJvYnRcIixcbiAgICBcInB1dFwiLFxuICAgIFwicHV0Y1wiLFxuICAgIFwicHV0blwiLFxuICAgIFwicXRyXCIsXG4gICAgXCJxdW90ZVwiLFxuICAgIFwicmFuYmluXCIsXG4gICAgXCJyYW5jYXVcIixcbiAgICBcInJhbmV4cFwiLFxuICAgIFwicmFuZ2FtXCIsXG4gICAgXCJyYW5nZVwiLFxuICAgIFwicmFua1wiLFxuICAgIFwicmFubm9yXCIsXG4gICAgXCJyYW5wb2lcIixcbiAgICBcInJhbnRibFwiLFxuICAgIFwicmFudHJpXCIsXG4gICAgXCJyYW51bmlcIixcbiAgICBcInJlcGVhdFwiLFxuICAgIFwicmVzb2x2ZVwiLFxuICAgIFwicmV2ZXJzZVwiLFxuICAgIFwicmV3aW5kXCIsXG4gICAgXCJyaWdodFwiLFxuICAgIFwicm91bmRcIixcbiAgICBcInNhdmluZ1wiLFxuICAgIFwic2NhblwiLFxuICAgIFwic2RmXCIsXG4gICAgXCJzZWNvbmRcIixcbiAgICBcInNpZ25cIixcbiAgICBcInNpblwiLFxuICAgIFwic2luaFwiLFxuICAgIFwic2tld25lc3NcIixcbiAgICBcInNvdW5kZXhcIixcbiAgICBcInNwZWRpc1wiLFxuICAgIFwic3FydFwiLFxuICAgIFwic3RkXCIsXG4gICAgXCJzdGRlcnJcIixcbiAgICBcInN0Zmlwc1wiLFxuICAgIFwic3RuYW1lXCIsXG4gICAgXCJzdG5hbWVsXCIsXG4gICAgXCJzdWJzdHJcIixcbiAgICBcInN1bVwiLFxuICAgIFwic3ltZ2V0XCIsXG4gICAgXCJzeXNnZXRcIixcbiAgICBcInN5c21zZ1wiLFxuICAgIFwic3lzcHJvZFwiLFxuICAgIFwic3lzcmNcIixcbiAgICBcInN5c3RlbVwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0YW5oXCIsXG4gICAgXCJ0aW1lXCIsXG4gICAgXCJ0aW1lcGFydFwiLFxuICAgIFwidGludlwiLFxuICAgIFwidG5vbmN0XCIsXG4gICAgXCJ0b2RheVwiLFxuICAgIFwidHJhbnNsYXRlXCIsXG4gICAgXCJ0cmFud3JkXCIsXG4gICAgXCJ0cmlnYW1tYVwiLFxuICAgIFwidHJpbVwiLFxuICAgIFwidHJpbW5cIixcbiAgICBcInRydW5jXCIsXG4gICAgXCJ1bmlmb3JtXCIsXG4gICAgXCJ1cGNhc2VcIixcbiAgICBcInVzc1wiLFxuICAgIFwidmFyXCIsXG4gICAgXCJ2YXJmbXRcIixcbiAgICBcInZhcmluZm10XCIsXG4gICAgXCJ2YXJsYWJlbFwiLFxuICAgIFwidmFybGVuXCIsXG4gICAgXCJ2YXJuYW1lXCIsXG4gICAgXCJ2YXJudW1cIixcbiAgICBcInZhcnJheVwiLFxuICAgIFwidmFycmF5eFwiLFxuICAgIFwidmFydHlwZVwiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJ2Zm9ybWF0XCIsXG4gICAgXCJ2Zm9ybWF0ZFwiLFxuICAgIFwidmZvcm1hdGR4XCIsXG4gICAgXCJ2Zm9ybWF0blwiLFxuICAgIFwidmZvcm1hdG54XCIsXG4gICAgXCJ2Zm9ybWF0d1wiLFxuICAgIFwidmZvcm1hdHd4XCIsXG4gICAgXCJ2Zm9ybWF0eFwiLFxuICAgIFwidmluYXJyYXlcIixcbiAgICBcInZpbmFycmF5eFwiLFxuICAgIFwidmluZm9ybWF0XCIsXG4gICAgXCJ2aW5mb3JtYXRkXCIsXG4gICAgXCJ2aW5mb3JtYXRkeFwiLFxuICAgIFwidmluZm9ybWF0blwiLFxuICAgIFwidmluZm9ybWF0bnhcIixcbiAgICBcInZpbmZvcm1hdHdcIixcbiAgICBcInZpbmZvcm1hdHd4XCIsXG4gICAgXCJ2aW5mb3JtYXR4XCIsXG4gICAgXCJ2bGFiZWxcIixcbiAgICBcInZsYWJlbHhcIixcbiAgICBcInZsZW5ndGhcIixcbiAgICBcInZsZW5ndGh4XCIsXG4gICAgXCJ2bmFtZVwiLFxuICAgIFwidm5hbWV4XCIsXG4gICAgXCJ2dHlwZVwiLFxuICAgIFwidnR5cGV4XCIsXG4gICAgXCJ3ZWVrZGF5XCIsXG4gICAgXCJ5ZWFyXCIsXG4gICAgXCJ5eXFcIixcbiAgICBcInppcGZpcHNcIixcbiAgICBcInppcG5hbWVcIixcbiAgICBcInppcG5hbWVsXCIsXG4gICAgXCJ6aXBzdGF0ZVwiXG4gIF07XG5cbiAgLy8gQnVpbHQtaW4gbWFjcm8gZnVuY3Rpb25zXG4gIGNvbnN0IE1BQ1JPX0ZVTkNUSU9OUyA9IFtcbiAgICBcImJxdW90ZVwiLFxuICAgIFwibnJicXVvdGVcIixcbiAgICBcImNtcHJlc1wiLFxuICAgIFwicWNtcHJlc1wiLFxuICAgIFwiY29tcHN0b3JcIixcbiAgICBcImRhdGF0eXBcIixcbiAgICBcImRpc3BsYXlcIixcbiAgICBcImRvXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImV2YWxcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ290b1wiLFxuICAgIFwiaWZcIixcbiAgICBcImluZGV4XCIsXG4gICAgXCJpbnB1dFwiLFxuICAgIFwia2V5ZGVmXCIsXG4gICAgXCJsYWJlbFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsZXRcIixcbiAgICBcImxvY2FsXCIsXG4gICAgXCJsb3djYXNlXCIsXG4gICAgXCJtYWNyb1wiLFxuICAgIFwibWVuZFwiLFxuICAgIFwibnJicXVvdGVcIixcbiAgICBcIm5ycXVvdGVcIixcbiAgICBcIm5yc3RyXCIsXG4gICAgXCJwdXRcIixcbiAgICBcInFjbXByZXNcIixcbiAgICBcInFsZWZ0XCIsXG4gICAgXCJxbG93Y2FzZVwiLFxuICAgIFwicXNjYW5cIixcbiAgICBcInFzdWJzdHJcIixcbiAgICBcInFzeXNmdW5jXCIsXG4gICAgXCJxdHJpbVwiLFxuICAgIFwicXVvdGVcIixcbiAgICBcInF1cGNhc2VcIixcbiAgICBcInNjYW5cIixcbiAgICBcInN0clwiLFxuICAgIFwic3Vic3RyXCIsXG4gICAgXCJzdXBlcnFcIixcbiAgICBcInN5c2NhbGxcIixcbiAgICBcInN5c2V2YWxmXCIsXG4gICAgXCJzeXNleGVjXCIsXG4gICAgXCJzeXNmdW5jXCIsXG4gICAgXCJzeXNnZXRcIixcbiAgICBcInN5c2xwdXRcIixcbiAgICBcInN5c3Byb2RcIixcbiAgICBcInN5c3JjXCIsXG4gICAgXCJzeXNycHV0XCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJ0b1wiLFxuICAgIFwidHJpbVwiLFxuICAgIFwidW5xdW90ZVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcInVwY2FzZVwiLFxuICAgIFwidmVyaWZ5XCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2luZG93XCJcbiAgXTtcblxuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICBcIm51bGxcIixcbiAgICBcIm1pc3NpbmdcIixcbiAgICBcIl9hbGxfXCIsXG4gICAgXCJfYXV0b21hdGljX1wiLFxuICAgIFwiX2NoYXJhY3Rlcl9cIixcbiAgICBcIl9pbmZpbGVfXCIsXG4gICAgXCJfbl9cIixcbiAgICBcIl9uYW1lX1wiLFxuICAgIFwiX251bGxfXCIsXG4gICAgXCJfbnVtZXJpY19cIixcbiAgICBcIl91c2VyX1wiLFxuICAgIFwiX3dlYm91dF9cIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NBUycsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICBrZXl3b3JkOiBTQVNfS0VZV09SRFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIC8vIERpc3RpbmN0IGhpZ2hsaWdodCBmb3IgcHJvYyA8cHJvYz4sIGRhdGEsIHJ1biwgcXVpdFxuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46IC9eXFxzKihwcm9jIFtcXHdcXGRfXSt8ZGF0YXxydW58cXVpdClbXFxzO10vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICAvLyBNYWNybyB2YXJpYWJsZXNcbiAgICAgICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogLyZbYS16QS1aXyZdW2EtekEtWjAtOV9dKlxcLj8vXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgIC9eXFxzKi8sXG4gICAgICAgICAgL2RhdGFsaW5lczt8Y2FyZHM7LyxcbiAgICAgICAgICAvKD86LipcXG4pKy8sXG4gICAgICAgICAgL15cXHMqO1xccyokL1xuICAgICAgICBdLFxuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICAyOiBcImtleXdvcmRcIixcbiAgICAgICAgICAzOiBcInN0cmluZ1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyVtZW5kfCVtYWNyby8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIC9bYS16QS1aXyZdW2EtekEtWjAtOV9dKi9cbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJidWlsdF9pblwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyAvLyBCdWlsdC1pbiBtYWNybyB2YXJpYWJsZXNcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICBiZWdpbjogJyUnICsgcmVnZXguZWl0aGVyKC4uLk1BQ1JPX0ZVTkNUSU9OUylcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFVzZXItZGVmaW5lZCBtYWNybyBmdW5jdGlvbnNcbiAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUuZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogLyVbYS16QS1aX11bYS16QS1aXzAtOV0qL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gVE9ETzogdGhpcyBpcyBtb3N0IGxpa2VseSBhbiBpbmNvcnJlY3QgY2xhc3NpZmljYXRpb25cbiAgICAgICAgLy8gYnVpbHRfaW4gbWF5IG5lZWQgbW9yZSBudWFuY2VcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMjUyMVxuICAgICAgICBjbGFzc05hbWU6ICdtZXRhJyxcbiAgICAgICAgYmVnaW46IHJlZ2V4LmVpdGhlciguLi5GVU5DVElPTlMpICsgJyg/PVxcXFwoKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnXFxcXConLCAnOycpLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzYXM7XG4iLCAiLypcbkxhbmd1YWdlOiBTY2FsYVxuQ2F0ZWdvcnk6IGZ1bmN0aW9uYWxcbkF1dGhvcjogSmFuIEJlcmtlbCA8amFuLmJlcmtlbEBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IEVyaWsgT3NoZWltIDxkX21AcGxhc3RpYy1pZG9sYXRyeS5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy5zY2FsYS1sYW5nLm9yZ1xuKi9cblxuZnVuY3Rpb24gc2NhbGEoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICB9O1xuXG4gIC8vIHVzZWQgaW4gc3RyaW5ncyBmb3IgZXNjYXBpbmcvaW50ZXJwb2xhdGlvbi9zdWJzdGl0dXRpb25cbiAgY29uc3QgU1VCU1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXFxcXCRbQS1aYS16MC05X10rJyB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcJFxcey8sXG4gICAgICAgIGVuZDogL1xcfS9cbiAgICAgIH1cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1wiJyxcbiAgICAgICAgZW5kOiAnXCInLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16XStcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgICAgU1VCU1RcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdbYS16XStcIlwiXCInLFxuICAgICAgICBlbmQ6ICdcIlwiXCInLFxuICAgICAgICBjb250YWluczogWyBTVUJTVCBdLFxuICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICB9XG4gICAgXVxuXG4gIH07XG5cbiAgY29uc3QgVFlQRSA9IHtcbiAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICBiZWdpbjogJ1xcXFxiW0EtWl1bQS1aYS16MC05X10qJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBOQU1FID0ge1xuICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICBiZWdpbjogL1teMC05XFxuXFx0IFwiJygpLC5ge31cXFtcXF06O11bXlxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjtdK3xbXjAtOVxcblxcdCBcIicoKSwuYHt9XFxbXFxdOjs9XS8sXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgQ0xBU1MgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBvYmplY3QgdHJhaXQgdHlwZScsXG4gICAgZW5kOiAvWzo9e1xcW1xcbjtdLyxcbiAgICBleGNsdWRlRW5kOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnZXh0ZW5kcyB3aXRoJyxcbiAgICAgICAgcmVsZXZhbmNlOiAxMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgICBlbmQ6IC9cXF0vLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFsgXG4gICAgICAgICAgVFlQRSwgXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAgY29udGFpbnM6IFsgXG4gICAgICAgICAgVFlQRSwgXG4gICAgICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCBcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIE5BTUVcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTUVUSE9EID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbktleXdvcmRzOiAnZGVmJyxcbiAgICBlbmQ6IHJlZ2V4Lmxvb2thaGVhZCgvWzo9e1xcWyhcXG47XS8pLFxuICAgIGNvbnRhaW5zOiBbIE5BTUUgXVxuICB9O1xuXG4gIGNvbnN0IEVYVEVOU0lPTiA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL15cXHMqLywgLy8gSXMgZmlyc3QgdG9rZW4gb24gdGhlIGxpbmVcbiAgICAgICdleHRlbnNpb24nLFxuICAgICAgL1xccysoPz1bWyhdKS8sIC8vIGZvbGxvd2VkIGJ5IGF0IGxlYXN0IG9uZSBzcGFjZSBhbmQgYFtgIG9yIGAoYFxuICAgIF0sXG4gICAgYmVnaW5TY29wZTogeyAyOiBcImtleXdvcmRcIiwgfVxuICB9O1xuXG4gIGNvbnN0IEVORCA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL15cXHMqLywgLy8gSXMgZmlyc3QgdG9rZW4gb24gdGhlIGxpbmVcbiAgICAgIC9lbmQvLFxuICAgICAgL1xccysvLFxuICAgICAgLyhleHRlbnNpb25cXGIpPy8sIC8vIGBleHRlbnNpb25gIGlzIHRoZSBvbmx5IG1hcmtlciB0aGF0IGZvbGxvd3MgYW4gYGVuZGAgdGhhdCBjYW5ub3QgYmUgY2FwdHVyZWQgYnkgYW5vdGhlciBydWxlLlxuICAgIF0sXG4gICAgYmVnaW5TY29wZToge1xuICAgICAgMjogXCJrZXl3b3JkXCIsXG4gICAgICA0OiBcImtleXdvcmRcIixcbiAgICB9XG4gIH07XG5cbiAgLy8gVE9ETzogdXNlIG5lZ2F0aXZlIGxvb2stYmVoaW5kIGluIGZ1dHVyZVxuICAvLyAgICAgICAvKD88IVxcLilcXGJpbmxpbmUoPz1cXHMpL1xuICBjb25zdCBJTkxJTkVfTU9ERVMgPSBbXG4gICAgeyBtYXRjaDogL1xcLmlubGluZVxcYi8gfSxcbiAgICB7XG4gICAgICBiZWdpbjogL1xcYmlubGluZSg/PVxccykvLFxuICAgICAga2V5d29yZHM6ICdpbmxpbmUnXG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IFVTSU5HX1BBUkFNX0NMQVVTRSA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL1xcKFxccyovLCAvLyBPcGVuaW5nIGAoYCBvZiBhIHBhcmFtZXRlciBvciBhcmd1bWVudCBsaXN0XG4gICAgICAvdXNpbmcvLFxuICAgICAgL1xccysoPyFcXCkpLywgLy8gU3BhY2VzIG5vdCBmb2xsb3dlZCBieSBgKWBcbiAgICBdLFxuICAgIGJlZ2luU2NvcGU6IHsgMjogXCJrZXl3b3JkXCIsIH1cbiAgfTtcblxuICAvLyBnbG9iIGFsbCBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGFzIGEgXCJzdHJpbmdcIlxuICAvLyBzb3VyY2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3NjYWxhL2RvY3Muc2NhbGEtbGFuZy9wdWxsLzI4NDVcbiAgY29uc3QgRElSRUNUSVZFX1ZBTFVFID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46IC9cXFMrLyxcbiAgfTtcblxuICAvLyBkaXJlY3RpdmVzXG4gIC8vIHNvdXJjZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vc2NhbGEvZG9jcy5zY2FsYS1sYW5nL3B1bGwvMjg0NVxuICBjb25zdCBVU0lOR19ESVJFQ1RJVkUgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgICcvLz4nLFxuICAgICAgL1xccysvLFxuICAgICAgL3VzaW5nLyxcbiAgICAgIC9cXHMrLyxcbiAgICAgIC9cXFMrL1xuICAgIF0sXG4gICAgYmVnaW5TY29wZToge1xuICAgICAgMTogXCJjb21tZW50XCIsXG4gICAgICAzOiBcImtleXdvcmRcIixcbiAgICAgIDU6IFwidHlwZVwiXG4gICAgfSxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogW1xuICAgICAgRElSRUNUSVZFX1ZBTFVFLFxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTY2FsYScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGxpdGVyYWw6ICd0cnVlIGZhbHNlIG51bGwnLFxuICAgICAga2V5d29yZDogJ3R5cGUgeWllbGQgbGF6eSBvdmVycmlkZSBkZWYgd2l0aCB2YWwgdmFyIHNlYWxlZCBhYnN0cmFjdCBwcml2YXRlIHRyYWl0IG9iamVjdCBpZiB0aGVuIGZvclNvbWUgZm9yIHdoaWxlIGRvIHRocm93IGZpbmFsbHkgcHJvdGVjdGVkIGV4dGVuZHMgaW1wb3J0IGZpbmFsIHJldHVybiBlbHNlIGJyZWFrIG5ldyBjYXRjaCBzdXBlciBjbGFzcyBjYXNlIHBhY2thZ2UgZGVmYXVsdCB0cnkgdGhpcyBtYXRjaCBjb250aW51ZSB0aHJvd3MgaW1wbGljaXQgZXhwb3J0IGVudW0gZ2l2ZW4gdHJhbnNwYXJlbnQnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgVVNJTkdfRElSRUNUSVZFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIFNUUklORyxcbiAgICAgIFRZUEUsXG4gICAgICBNRVRIT0QsXG4gICAgICBDTEFTUyxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIEVYVEVOU0lPTixcbiAgICAgIEVORCxcbiAgICAgIC4uLklOTElORV9NT0RFUyxcbiAgICAgIFVTSU5HX1BBUkFNX0NMQVVTRSxcbiAgICAgIEFOTk9UQVRJT05cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NhbGE7XG4iLCAiLypcbkxhbmd1YWdlOiBTY2hlbWVcbkRlc2NyaXB0aW9uOiBTY2hlbWUgaXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbiB0aGUgTGlzcCBmYW1pbHkuXG4gICAgICAgICAgICAgKGtleXdvcmRzIGJhc2VkIG9uIGh0dHA6Ly9jb21tdW5pdHkuc2NoZW1ld2lraS5vcmcvP3NjaGVtZS1rZXl3b3JkcylcbkF1dGhvcjogSlAgVmVya2FtcCA8bWVAanZlcmthbXAuY29tPlxuQ29udHJpYnV0b3JzOiBJdmFuIFNhZ2FsYWV2IDxtYW5pYWNAc29mdHdhcmVtYW5pYWNzLm9yZz5cbk9yaWdpbjogY2xvanVyZS5qc1xuV2Vic2l0ZTogaHR0cDovL2NvbW11bml0eS5zY2hlbWV3aWtpLm9yZy8/d2hhdC1pcy1zY2hlbWVcbkNhdGVnb3J5OiBsaXNwXG4qL1xuXG5mdW5jdGlvbiBzY2hlbWUoaGxqcykge1xuICBjb25zdCBTQ0hFTUVfSURFTlRfUkUgPSAnW15cXFxcKFxcXFwpXFxcXFtcXFxcXVxcXFx7XFxcXH1cIixcXCdgOyN8XFxcXFxcXFxcXFxcc10rJztcbiAgY29uc3QgU0NIRU1FX1NJTVBMRV9OVU1CRVJfUkUgPSAnKC18XFxcXCspP1xcXFxkKyhbLi9dXFxcXGQrKT8nO1xuICBjb25zdCBTQ0hFTUVfQ09NUExFWF9OVU1CRVJfUkUgPSBTQ0hFTUVfU0lNUExFX05VTUJFUl9SRSArICdbK1xcXFwtXScgKyBTQ0hFTUVfU0lNUExFX05VTUJFUl9SRSArICdpJztcbiAgY29uc3QgS0VZV09SRFMgPSB7XG4gICAgJHBhdHRlcm46IFNDSEVNRV9JREVOVF9SRSxcbiAgICBidWlsdF9pbjpcbiAgICAgICdjYXNlLWxhbWJkYSBjYWxsL2NjIGNsYXNzIGRlZmluZS1jbGFzcyBleGl0LWhhbmRsZXIgZmllbGQgaW1wb3J0ICdcbiAgICAgICsgJ2luaGVyaXQgaW5pdC1maWVsZCBpbnRlcmZhY2UgbGV0Ki12YWx1ZXMgbGV0LXZhbHVlcyBsZXQvZWMgbWl4aW4gJ1xuICAgICAgKyAnb3B0LWxhbWJkYSBvdmVycmlkZSBwcm90ZWN0IHByb3ZpZGUgcHVibGljIHJlbmFtZSByZXF1aXJlICdcbiAgICAgICsgJ3JlcXVpcmUtZm9yLXN5bnRheCBzeW50YXggc3ludGF4LWNhc2Ugc3ludGF4LWVycm9yIHVuaXQvc2lnIHVubGVzcyAnXG4gICAgICArICd3aGVuIHdpdGgtc3ludGF4IGFuZCBiZWdpbiBjYWxsLXdpdGgtY3VycmVudC1jb250aW51YXRpb24gJ1xuICAgICAgKyAnY2FsbC13aXRoLWlucHV0LWZpbGUgY2FsbC13aXRoLW91dHB1dC1maWxlIGNhc2UgY29uZCBkZWZpbmUgJ1xuICAgICAgKyAnZGVmaW5lLXN5bnRheCBkZWxheSBkbyBkeW5hbWljLXdpbmQgZWxzZSBmb3ItZWFjaCBpZiBsYW1iZGEgbGV0IGxldCogJ1xuICAgICAgKyAnbGV0LXN5bnRheCBsZXRyZWMgbGV0cmVjLXN5bnRheCBtYXAgb3Igc3ludGF4LXJ1bGVzIFxcJyAqICsgLCAsQCAtIC4uLiAvICdcbiAgICAgICsgJzsgPCA8PSA9ID0+ID4gPj0gYCBhYnMgYWNvcyBhbmdsZSBhcHBlbmQgYXBwbHkgYXNpbiBhc3NvYyBhc3NxIGFzc3YgYXRhbiAnXG4gICAgICArICdib29sZWFuPyBjYWFyIGNhZHIgY2FsbC13aXRoLWlucHV0LWZpbGUgY2FsbC13aXRoLW91dHB1dC1maWxlICdcbiAgICAgICsgJ2NhbGwtd2l0aC12YWx1ZXMgY2FyIGNkZGRhciBjZGRkZHIgY2RyIGNlaWxpbmcgY2hhci0+aW50ZWdlciAnXG4gICAgICArICdjaGFyLWFscGhhYmV0aWM/IGNoYXItY2k8PT8gY2hhci1jaTw/IGNoYXItY2k9PyBjaGFyLWNpPj0/IGNoYXItY2k+PyAnXG4gICAgICArICdjaGFyLWRvd25jYXNlIGNoYXItbG93ZXItY2FzZT8gY2hhci1udW1lcmljPyBjaGFyLXJlYWR5PyBjaGFyLXVwY2FzZSAnXG4gICAgICArICdjaGFyLXVwcGVyLWNhc2U/IGNoYXItd2hpdGVzcGFjZT8gY2hhcjw9PyBjaGFyPD8gY2hhcj0/IGNoYXI+PT8gY2hhcj4/ICdcbiAgICAgICsgJ2NoYXI/IGNsb3NlLWlucHV0LXBvcnQgY2xvc2Utb3V0cHV0LXBvcnQgY29tcGxleD8gY29ucyBjb3MgJ1xuICAgICAgKyAnY3VycmVudC1pbnB1dC1wb3J0IGN1cnJlbnQtb3V0cHV0LXBvcnQgZGVub21pbmF0b3IgZGlzcGxheSBlb2Ytb2JqZWN0PyAnXG4gICAgICArICdlcT8gZXF1YWw/IGVxdj8gZXZhbCBldmVuPyBleGFjdC0+aW5leGFjdCBleGFjdD8gZXhwIGV4cHQgZmxvb3IgJ1xuICAgICAgKyAnZm9yY2UgZ2NkIGltYWctcGFydCBpbmV4YWN0LT5leGFjdCBpbmV4YWN0PyBpbnB1dC1wb3J0PyBpbnRlZ2VyLT5jaGFyICdcbiAgICAgICsgJ2ludGVnZXI/IGludGVyYWN0aW9uLWVudmlyb25tZW50IGxjbSBsZW5ndGggbGlzdCBsaXN0LT5zdHJpbmcgJ1xuICAgICAgKyAnbGlzdC0+dmVjdG9yIGxpc3QtcmVmIGxpc3QtdGFpbCBsaXN0PyBsb2FkIGxvZyBtYWduaXR1ZGUgbWFrZS1wb2xhciAnXG4gICAgICArICdtYWtlLXJlY3Rhbmd1bGFyIG1ha2Utc3RyaW5nIG1ha2UtdmVjdG9yIG1heCBtZW1iZXIgbWVtcSBtZW12IG1pbiAnXG4gICAgICArICdtb2R1bG8gbmVnYXRpdmU/IG5ld2xpbmUgbm90IG51bGwtZW52aXJvbm1lbnQgbnVsbD8gbnVtYmVyLT5zdHJpbmcgJ1xuICAgICAgKyAnbnVtYmVyPyBudW1lcmF0b3Igb2RkPyBvcGVuLWlucHV0LWZpbGUgb3Blbi1vdXRwdXQtZmlsZSBvdXRwdXQtcG9ydD8gJ1xuICAgICAgKyAncGFpcj8gcGVlay1jaGFyIHBvcnQ/IHBvc2l0aXZlPyBwcm9jZWR1cmU/IHF1YXNpcXVvdGUgcXVvdGUgcXVvdGllbnQgJ1xuICAgICAgKyAncmF0aW9uYWw/IHJhdGlvbmFsaXplIHJlYWQgcmVhZC1jaGFyIHJlYWwtcGFydCByZWFsPyByZW1haW5kZXIgcmV2ZXJzZSAnXG4gICAgICArICdyb3VuZCBzY2hlbWUtcmVwb3J0LWVudmlyb25tZW50IHNldCEgc2V0LWNhciEgc2V0LWNkciEgc2luIHNxcnQgc3RyaW5nICdcbiAgICAgICsgJ3N0cmluZy0+bGlzdCBzdHJpbmctPm51bWJlciBzdHJpbmctPnN5bWJvbCBzdHJpbmctYXBwZW5kIHN0cmluZy1jaTw9PyAnXG4gICAgICArICdzdHJpbmctY2k8PyBzdHJpbmctY2k9PyBzdHJpbmctY2k+PT8gc3RyaW5nLWNpPj8gc3RyaW5nLWNvcHkgJ1xuICAgICAgKyAnc3RyaW5nLWZpbGwhIHN0cmluZy1sZW5ndGggc3RyaW5nLXJlZiBzdHJpbmctc2V0ISBzdHJpbmc8PT8gc3RyaW5nPD8gJ1xuICAgICAgKyAnc3RyaW5nPT8gc3RyaW5nPj0/IHN0cmluZz4/IHN0cmluZz8gc3Vic3RyaW5nIHN5bWJvbC0+c3RyaW5nIHN5bWJvbD8gJ1xuICAgICAgKyAndGFuIHRyYW5zY3JpcHQtb2ZmIHRyYW5zY3JpcHQtb24gdHJ1bmNhdGUgdmFsdWVzIHZlY3RvciAnXG4gICAgICArICd2ZWN0b3ItPmxpc3QgdmVjdG9yLWZpbGwhIHZlY3Rvci1sZW5ndGggdmVjdG9yLXJlZiB2ZWN0b3Itc2V0ISAnXG4gICAgICArICd3aXRoLWlucHV0LWZyb20tZmlsZSB3aXRoLW91dHB1dC10by1maWxlIHdyaXRlIHdyaXRlLWNoYXIgemVybz8nXG4gIH07XG5cbiAgY29uc3QgTElURVJBTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsaXRlcmFsJyxcbiAgICBiZWdpbjogJygjdHwjZnwjXFxcXFxcXFwnICsgU0NIRU1FX0lERU5UX1JFICsgJ3wjXFxcXFxcXFwuKSdcbiAgfTtcblxuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogU0NIRU1FX1NJTVBMRV9OVU1CRVJfUkUsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFNDSEVNRV9DT01QTEVYX05VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogJyNiWzAtMV0rKC9bMC0xXSspPycgfSxcbiAgICAgIHsgYmVnaW46ICcjb1swLTddKygvWzAtN10rKT8nIH0sXG4gICAgICB7IGJlZ2luOiAnI3hbMC05YS1mXSsoL1swLTlhLWZdKyk/JyB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IGhsanMuUVVPVEVfU1RSSU5HX01PREU7XG5cbiAgY29uc3QgQ09NTUVOVF9NT0RFUyA9IFtcbiAgICBobGpzLkNPTU1FTlQoXG4gICAgICAnOycsXG4gICAgICAnJCcsXG4gICAgICB7IHJlbGV2YW5jZTogMCB9XG4gICAgKSxcbiAgICBobGpzLkNPTU1FTlQoJyNcXFxcfCcsICdcXFxcfCMnKVxuICBdO1xuXG4gIGNvbnN0IElERU5UID0ge1xuICAgIGJlZ2luOiBTQ0hFTUVfSURFTlRfUkUsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgUVVPVEVEX0lERU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgYmVnaW46ICdcXCcnICsgU0NIRU1FX0lERU5UX1JFXG4gIH07XG5cbiAgY29uc3QgQk9EWSA9IHtcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBRVU9URURfTElTVCA9IHtcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBiZWdpbjogLycvIH0sXG4gICAgICB7IGJlZ2luOiAnYCcgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgTElURVJBTCxcbiAgICAgICAgICBTVFJJTkcsXG4gICAgICAgICAgTlVNQkVSLFxuICAgICAgICAgIElERU5ULFxuICAgICAgICAgIFFVT1RFRF9JREVOVFxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5BTUUgPSB7XG4gICAgY2xhc3NOYW1lOiAnbmFtZScsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGJlZ2luOiBTQ0hFTUVfSURFTlRfUkUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTXG4gIH07XG5cbiAgY29uc3QgTEFNQkRBID0ge1xuICAgIGJlZ2luOiAvbGFtYmRhLyxcbiAgICBlbmRzV2l0aFBhcmVudDogdHJ1ZSxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBjb250YWluczogW1xuICAgICAgTkFNRSxcbiAgICAgIHtcbiAgICAgICAgZW5kc1BhcmVudDogdHJ1ZSxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcKC8sXG4gICAgICAgICAgICBlbmQ6IC9cXCkvXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1xcWy8sXG4gICAgICAgICAgICBlbmQ6IC9cXF0vXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBjb250YWluczogWyBJREVOVCBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IExJU1QgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcWycsXG4gICAgICAgIGVuZDogJ1xcXFxdJ1xuICAgICAgfVxuICAgIF0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIExBTUJEQSxcbiAgICAgIE5BTUUsXG4gICAgICBCT0RZXG4gICAgXVxuICB9O1xuXG4gIEJPRFkuY29udGFpbnMgPSBbXG4gICAgTElURVJBTCxcbiAgICBOVU1CRVIsXG4gICAgU1RSSU5HLFxuICAgIElERU5ULFxuICAgIFFVT1RFRF9JREVOVCxcbiAgICBRVU9URURfTElTVCxcbiAgICBMSVNUXG4gIF0uY29uY2F0KENPTU1FTlRfTU9ERVMpO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NjaGVtZScsXG4gICAgYWxpYXNlczogWydzY20nXSxcbiAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5TSEVCQU5HKCksXG4gICAgICBOVU1CRVIsXG4gICAgICBTVFJJTkcsXG4gICAgICBRVU9URURfSURFTlQsXG4gICAgICBRVU9URURfTElTVCxcbiAgICAgIExJU1RcbiAgICBdLmNvbmNhdChDT01NRU5UX01PREVTKVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNjaGVtZTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFNjaWxhYlxuQXV0aG9yOiBTeWx2ZXN0cmUgTGVkcnUgPHN5bHZlc3RyZS5sZWRydUBzY2lsYWItZW50ZXJwcmlzZXMuY29tPlxuT3JpZ2luOiBtYXRsYWIuanNcbkRlc2NyaXB0aW9uOiBTY2lsYWIgaXMgYSBwb3J0IGZyb20gTWF0bGFiXG5XZWJzaXRlOiBodHRwczovL3d3dy5zY2lsYWIub3JnXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuZnVuY3Rpb24gc2NpbGFiKGhsanMpIHtcbiAgY29uc3QgQ09NTU9OX0NPTlRBSU5TID0gW1xuICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgYmVnaW46ICdcXCd8XFxcIicsXG4gICAgICBlbmQ6ICdcXCd8XFxcIicsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIHsgYmVnaW46ICdcXCdcXCcnIH1cbiAgICAgIF1cbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU2NpbGFiJyxcbiAgICBhbGlhc2VzOiBbICdzY2knIF0sXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvJT9cXHcrLyxcbiAgICAgIGtleXdvcmQ6ICdhYm9ydCBicmVhayBjYXNlIGNsZWFyIGNhdGNoIGNvbnRpbnVlIGRvIGVsc2VpZiBlbHNlIGVuZGZ1bmN0aW9uIGVuZCBmb3IgZnVuY3Rpb24gJ1xuICAgICAgICArICdnbG9iYWwgaWYgcGF1c2UgcmV0dXJuIHJlc3VtZSBzZWxlY3QgdHJ5IHRoZW4gd2hpbGUnLFxuICAgICAgbGl0ZXJhbDpcbiAgICAgICAgJyVmICVGICV0ICVUICVwaSAlZXBzICVpbmYgJW5hbiAlZSAlaSAleiAlcycsXG4gICAgICBidWlsdF9pbjogLy8gU2NpbGFiIGhhcyBtb3JlIHRoYW4gMjAwMCBmdW5jdGlvbnMuIEp1c3QgbGlzdCB0aGUgbW9zdCBjb21tb25zXG4gICAgICAgJ2FicyBhbmQgYWNvcyBhc2luIGF0YW4gY2VpbCBjZCBjaGRpciBjbGVhcmdsb2JhbCBjb3NoIGNvcyBjdW1wcm9kIGRlZmYgZGlzcCBlcnJvciAnXG4gICAgICAgKyAnZXhlYyBleGVjc3RyIGV4aXN0cyBleHAgZXllIGdldHRleHQgZmxvb3IgZnByaW50ZiBmcmVhZCBmc29sdmUgaW1hZyBpc2RlZiBpc2VtcHR5ICdcbiAgICAgICArICdpc2luZmlzbmFuIGlzdmVjdG9yIGxhc3RlcnJvciBsZW5ndGggbG9hZCBsaW5zcGFjZSBsaXN0IGxpc3RmaWxlcyBsb2cxMCBsb2cyIGxvZyAnXG4gICAgICAgKyAnbWF4IG1pbiBtc3ByaW50ZiBtY2xvc2UgbW9wZW4gb25lcyBvciBwYXRoY29udmVydCBwb2x5IHByaW50ZiBwcm9kIHB3ZCByYW5kIHJlYWwgJ1xuICAgICAgICsgJ3JvdW5kIHNpbmggc2luIHNpemUgZ3NvcnQgc3ByaW50ZiBzcXJ0IHN0cmNhdCBzdHJjbXBzIHRyaW5nIHN1bSBzeXN0ZW0gdGFuaCB0YW4gJ1xuICAgICAgICsgJ3R5cGUgdHlwZW5hbWUgd2FybmluZyB6ZXJvcyBtYXRyaXgnXG4gICAgfSxcbiAgICBpbGxlZ2FsOiAnKFwifCN8L1xcXFwqfFxcXFxzKy9cXFxcdyspJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdmdW5jdGlvbicsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdmdW5jdGlvbicsXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIGhsanMuVU5ERVJTQ09SRV9USVRMRV9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwoJyxcbiAgICAgICAgICAgIGVuZDogJ1xcXFwpJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIHNlZW1zIHRvIGJlIGEgZ3VhcmQgYWdhaW5zdCBbaWRlbnRdJyBvciBbaWRlbnRdLlxuICAgICAgLy8gcGVyaGFwcyB0byBwcmV2ZW50IGF0dHJpYnV0ZXMgZnJvbSBmbGFnZ2luZyBhcyBrZXl3b3Jkcz9cbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdbYS16QS1aX11bYS16QS1aXzAtOV0qW1xcXFwuXFwnXSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXFsnLFxuICAgICAgICBlbmQ6ICdcXFxcXVtcXFxcLlxcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogQ09NTU9OX0NPTlRBSU5TXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKCcvLycsICckJylcbiAgICBdLmNvbmNhdChDT01NT05fQ09OVEFJTlMpXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NpbGFiO1xuIiwgImNvbnN0IE1PREVTID0gKGhsanMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBJTVBPUlRBTlQ6IHtcbiAgICAgIHNjb3BlOiAnbWV0YScsXG4gICAgICBiZWdpbjogJyFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICBCTE9DS19DT01NRU5UOiBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgIEhFWENPTE9SOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogLyMoKFswLTlhLWZBLUZdezMsNH0pfCgoWzAtOWEtZkEtRl17Mn0pezMsNH0pKVxcYi9cbiAgICB9LFxuICAgIEZVTkNUSU9OX0RJU1BBVENIOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYnVpbHRfaW5cIixcbiAgICAgIGJlZ2luOiAvW1xcdy1dKyg/PVxcKCkvXG4gICAgfSxcbiAgICBBVFRSSUJVVEVfU0VMRUNUT1JfTU9ERToge1xuICAgICAgc2NvcGU6ICdzZWxlY3Rvci1hdHRyJyxcbiAgICAgIGJlZ2luOiAvXFxbLyxcbiAgICAgIGVuZDogL1xcXS8sXG4gICAgICBpbGxlZ2FsOiAnJCcsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgIF1cbiAgICB9LFxuICAgIENTU19OVU1CRVJfTU9ERToge1xuICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgYmVnaW46IGhsanMuTlVNQkVSX1JFICsgJygnICtcbiAgICAgICAgJyV8ZW18ZXh8Y2h8cmVtJyArXG4gICAgICAgICd8dnd8dmh8dm1pbnx2bWF4JyArXG4gICAgICAgICd8Y218bW18aW58cHR8cGN8cHgnICtcbiAgICAgICAgJ3xkZWd8Z3JhZHxyYWR8dHVybicgK1xuICAgICAgICAnfHN8bXMnICtcbiAgICAgICAgJ3xIenxrSHonICtcbiAgICAgICAgJ3xkcGl8ZHBjbXxkcHB4JyArXG4gICAgICAgICcpPycsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIENTU19WQVJJQUJMRToge1xuICAgICAgY2xhc3NOYW1lOiBcImF0dHJcIixcbiAgICAgIGJlZ2luOiAvLS1bQS1aYS16X11bQS1aYS16MC05Xy1dKi9cbiAgICB9XG4gIH07XG59O1xuXG5jb25zdCBIVE1MX1RBR1MgPSBbXG4gICdhJyxcbiAgJ2FiYnInLFxuICAnYWRkcmVzcycsXG4gICdhcnRpY2xlJyxcbiAgJ2FzaWRlJyxcbiAgJ2F1ZGlvJyxcbiAgJ2InLFxuICAnYmxvY2txdW90ZScsXG4gICdib2R5JyxcbiAgJ2J1dHRvbicsXG4gICdjYW52YXMnLFxuICAnY2FwdGlvbicsXG4gICdjaXRlJyxcbiAgJ2NvZGUnLFxuICAnZGQnLFxuICAnZGVsJyxcbiAgJ2RldGFpbHMnLFxuICAnZGZuJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdlbScsXG4gICdmaWVsZHNldCcsXG4gICdmaWdjYXB0aW9uJyxcbiAgJ2ZpZ3VyZScsXG4gICdmb290ZXInLFxuICAnZm9ybScsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkZXInLFxuICAnaGdyb3VwJyxcbiAgJ2h0bWwnLFxuICAnaScsXG4gICdpZnJhbWUnLFxuICAnaW1nJyxcbiAgJ2lucHV0JyxcbiAgJ2lucycsXG4gICdrYmQnLFxuICAnbGFiZWwnLFxuICAnbGVnZW5kJyxcbiAgJ2xpJyxcbiAgJ21haW4nLFxuICAnbWFyaycsXG4gICdtZW51JyxcbiAgJ25hdicsXG4gICdvYmplY3QnLFxuICAnb2wnLFxuICAnb3B0Z3JvdXAnLFxuICAnb3B0aW9uJyxcbiAgJ3AnLFxuICAncGljdHVyZScsXG4gICdxJyxcbiAgJ3F1b3RlJyxcbiAgJ3NhbXAnLFxuICAnc2VjdGlvbicsXG4gICdzZWxlY3QnLFxuICAnc291cmNlJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N1bW1hcnknLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3Rib2R5JyxcbiAgJ3RkJyxcbiAgJ3RleHRhcmVhJyxcbiAgJ3Rmb290JyxcbiAgJ3RoJyxcbiAgJ3RoZWFkJyxcbiAgJ3RpbWUnLFxuICAndHInLFxuICAndWwnLFxuICAndmFyJyxcbiAgJ3ZpZGVvJ1xuXTtcblxuY29uc3QgU1ZHX1RBR1MgPSBbXG4gICdkZWZzJyxcbiAgJ2cnLFxuICAnbWFya2VyJyxcbiAgJ21hc2snLFxuICAncGF0dGVybicsXG4gICdzdmcnLFxuICAnc3dpdGNoJyxcbiAgJ3N5bWJvbCcsXG4gICdmZUJsZW5kJyxcbiAgJ2ZlQ29sb3JNYXRyaXgnLFxuICAnZmVDb21wb25lbnRUcmFuc2ZlcicsXG4gICdmZUNvbXBvc2l0ZScsXG4gICdmZUNvbnZvbHZlTWF0cml4JyxcbiAgJ2ZlRGlmZnVzZUxpZ2h0aW5nJyxcbiAgJ2ZlRGlzcGxhY2VtZW50TWFwJyxcbiAgJ2ZlRmxvb2QnLFxuICAnZmVHYXVzc2lhbkJsdXInLFxuICAnZmVJbWFnZScsXG4gICdmZU1lcmdlJyxcbiAgJ2ZlTW9ycGhvbG9neScsXG4gICdmZU9mZnNldCcsXG4gICdmZVNwZWN1bGFyTGlnaHRpbmcnLFxuICAnZmVUaWxlJyxcbiAgJ2ZlVHVyYnVsZW5jZScsXG4gICdsaW5lYXJHcmFkaWVudCcsXG4gICdyYWRpYWxHcmFkaWVudCcsXG4gICdzdG9wJyxcbiAgJ2NpcmNsZScsXG4gICdlbGxpcHNlJyxcbiAgJ2ltYWdlJyxcbiAgJ2xpbmUnLFxuICAncGF0aCcsXG4gICdwb2x5Z29uJyxcbiAgJ3BvbHlsaW5lJyxcbiAgJ3JlY3QnLFxuICAndGV4dCcsXG4gICd1c2UnLFxuICAndGV4dFBhdGgnLFxuICAndHNwYW4nLFxuICAnZm9yZWlnbk9iamVjdCcsXG4gICdjbGlwUGF0aCdcbl07XG5cbmNvbnN0IFRBR1MgPSBbXG4gIC4uLkhUTUxfVEFHUyxcbiAgLi4uU1ZHX1RBR1MsXG5dO1xuXG4vLyBTb3J0aW5nLCB0aGVuIHJldmVyc2luZyBtYWtlcyBzdXJlIGxvbmdlciBhdHRyaWJ1dGVzL2VsZW1lbnRzIGxpa2Vcbi8vIGBmb250LXdlaWdodGAgYXJlIG1hdGNoZWQgZnVsbHkgaW5zdGVhZCBvZiBnZXR0aW5nIGZhbHNlIHBvc2l0aXZlcyBvbiBzYXkgYGZvbnRgXG5cbmNvbnN0IE1FRElBX0ZFQVRVUkVTID0gW1xuICAnYW55LWhvdmVyJyxcbiAgJ2FueS1wb2ludGVyJyxcbiAgJ2FzcGVjdC1yYXRpbycsXG4gICdjb2xvcicsXG4gICdjb2xvci1nYW11dCcsXG4gICdjb2xvci1pbmRleCcsXG4gICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgJ2RldmljZS1oZWlnaHQnLFxuICAnZGV2aWNlLXdpZHRoJyxcbiAgJ2Rpc3BsYXktbW9kZScsXG4gICdmb3JjZWQtY29sb3JzJyxcbiAgJ2dyaWQnLFxuICAnaGVpZ2h0JyxcbiAgJ2hvdmVyJyxcbiAgJ2ludmVydGVkLWNvbG9ycycsXG4gICdtb25vY2hyb21lJyxcbiAgJ29yaWVudGF0aW9uJyxcbiAgJ292ZXJmbG93LWJsb2NrJyxcbiAgJ292ZXJmbG93LWlubGluZScsXG4gICdwb2ludGVyJyxcbiAgJ3ByZWZlcnMtY29sb3Itc2NoZW1lJyxcbiAgJ3ByZWZlcnMtY29udHJhc3QnLFxuICAncHJlZmVycy1yZWR1Y2VkLW1vdGlvbicsXG4gICdwcmVmZXJzLXJlZHVjZWQtdHJhbnNwYXJlbmN5JyxcbiAgJ3Jlc29sdXRpb24nLFxuICAnc2NhbicsXG4gICdzY3JpcHRpbmcnLFxuICAndXBkYXRlJyxcbiAgJ3dpZHRoJyxcbiAgLy8gVE9ETzogZmluZCBhIGJldHRlciBzb2x1dGlvbj9cbiAgJ21pbi13aWR0aCcsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWhlaWdodCcsXG4gICdtYXgtaGVpZ2h0J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWNsYXNzZXNcbmNvbnN0IFBTRVVET19DTEFTU0VTID0gW1xuICAnYWN0aXZlJyxcbiAgJ2FueS1saW5rJyxcbiAgJ2JsYW5rJyxcbiAgJ2NoZWNrZWQnLFxuICAnY3VycmVudCcsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmluZWQnLFxuICAnZGlyJywgLy8gZGlyKClcbiAgJ2Rpc2FibGVkJyxcbiAgJ2Ryb3AnLFxuICAnZW1wdHknLFxuICAnZW5hYmxlZCcsXG4gICdmaXJzdCcsXG4gICdmaXJzdC1jaGlsZCcsXG4gICdmaXJzdC1vZi10eXBlJyxcbiAgJ2Z1bGxzY3JlZW4nLFxuICAnZnV0dXJlJyxcbiAgJ2ZvY3VzJyxcbiAgJ2ZvY3VzLXZpc2libGUnLFxuICAnZm9jdXMtd2l0aGluJyxcbiAgJ2hhcycsIC8vIGhhcygpXG4gICdob3N0JywgLy8gaG9zdCBvciBob3N0KClcbiAgJ2hvc3QtY29udGV4dCcsIC8vIGhvc3QtY29udGV4dCgpXG4gICdob3ZlcicsXG4gICdpbmRldGVybWluYXRlJyxcbiAgJ2luLXJhbmdlJyxcbiAgJ2ludmFsaWQnLFxuICAnaXMnLCAvLyBpcygpXG4gICdsYW5nJywgLy8gbGFuZygpXG4gICdsYXN0LWNoaWxkJyxcbiAgJ2xhc3Qtb2YtdHlwZScsXG4gICdsZWZ0JyxcbiAgJ2xpbmsnLFxuICAnbG9jYWwtbGluaycsXG4gICdub3QnLCAvLyBub3QoKVxuICAnbnRoLWNoaWxkJywgLy8gbnRoLWNoaWxkKClcbiAgJ250aC1jb2wnLCAvLyBudGgtY29sKClcbiAgJ250aC1sYXN0LWNoaWxkJywgLy8gbnRoLWxhc3QtY2hpbGQoKVxuICAnbnRoLWxhc3QtY29sJywgLy8gbnRoLWxhc3QtY29sKClcbiAgJ250aC1sYXN0LW9mLXR5cGUnLCAvL250aC1sYXN0LW9mLXR5cGUoKVxuICAnbnRoLW9mLXR5cGUnLCAvL250aC1vZi10eXBlKClcbiAgJ29ubHktY2hpbGQnLFxuICAnb25seS1vZi10eXBlJyxcbiAgJ29wdGlvbmFsJyxcbiAgJ291dC1vZi1yYW5nZScsXG4gICdwYXN0JyxcbiAgJ3BsYWNlaG9sZGVyLXNob3duJyxcbiAgJ3JlYWQtb25seScsXG4gICdyZWFkLXdyaXRlJyxcbiAgJ3JlcXVpcmVkJyxcbiAgJ3JpZ2h0JyxcbiAgJ3Jvb3QnLFxuICAnc2NvcGUnLFxuICAndGFyZ2V0JyxcbiAgJ3RhcmdldC13aXRoaW4nLFxuICAndXNlci1pbnZhbGlkJyxcbiAgJ3ZhbGlkJyxcbiAgJ3Zpc2l0ZWQnLFxuICAnd2hlcmUnIC8vIHdoZXJlKClcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL1BzZXVkby1lbGVtZW50c1xuY29uc3QgUFNFVURPX0VMRU1FTlRTID0gW1xuICAnYWZ0ZXInLFxuICAnYmFja2Ryb3AnLFxuICAnYmVmb3JlJyxcbiAgJ2N1ZScsXG4gICdjdWUtcmVnaW9uJyxcbiAgJ2ZpcnN0LWxldHRlcicsXG4gICdmaXJzdC1saW5lJyxcbiAgJ2dyYW1tYXItZXJyb3InLFxuICAnbWFya2VyJyxcbiAgJ3BhcnQnLFxuICAncGxhY2Vob2xkZXInLFxuICAnc2VsZWN0aW9uJyxcbiAgJ3Nsb3R0ZWQnLFxuICAnc3BlbGxpbmctZXJyb3InXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbmNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICdhY2NlbnQtY29sb3InLFxuICAnYWxpZ24tY29udGVudCcsXG4gICdhbGlnbi1pdGVtcycsXG4gICdhbGlnbi1zZWxmJyxcbiAgJ2FsaWdubWVudC1iYXNlbGluZScsXG4gICdhbGwnLFxuICAnYW5pbWF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kZWxheScsXG4gICdhbmltYXRpb24tZGlyZWN0aW9uJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbicsXG4gICdhbmltYXRpb24tZmlsbC1tb2RlJyxcbiAgJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnLFxuICAnYW5pbWF0aW9uLW5hbWUnLFxuICAnYW5pbWF0aW9uLXBsYXktc3RhdGUnLFxuICAnYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbicsXG4gICdhcHBlYXJhbmNlJyxcbiAgJ2JhY2tmYWNlLXZpc2liaWxpdHknLFxuICAnYmFja2dyb3VuZCcsXG4gICdiYWNrZ3JvdW5kLWF0dGFjaG1lbnQnLFxuICAnYmFja2dyb3VuZC1ibGVuZC1tb2RlJyxcbiAgJ2JhY2tncm91bmQtY2xpcCcsXG4gICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgJ2JhY2tncm91bmQtaW1hZ2UnLFxuICAnYmFja2dyb3VuZC1vcmlnaW4nLFxuICAnYmFja2dyb3VuZC1wb3NpdGlvbicsXG4gICdiYWNrZ3JvdW5kLXJlcGVhdCcsXG4gICdiYWNrZ3JvdW5kLXNpemUnLFxuICAnYmFzZWxpbmUtc2hpZnQnLFxuICAnYmxvY2stc2l6ZScsXG4gICdib3JkZXInLFxuICAnYm9yZGVyLWJsb2NrJyxcbiAgJ2JvcmRlci1ibG9jay1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1zdHlsZScsXG4gICdib3JkZXItYmxvY2stZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXdpZHRoJyxcbiAgJ2JvcmRlci1ib3R0b20nLFxuICAnYm9yZGVyLWJvdHRvbS1jb2xvcicsXG4gICdib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzJyxcbiAgJ2JvcmRlci1ib3R0b20tc3R5bGUnLFxuICAnYm9yZGVyLWJvdHRvbS13aWR0aCcsXG4gICdib3JkZXItY29sbGFwc2UnLFxuICAnYm9yZGVyLWNvbG9yJyxcbiAgJ2JvcmRlci1pbWFnZScsXG4gICdib3JkZXItaW1hZ2Utb3V0c2V0JyxcbiAgJ2JvcmRlci1pbWFnZS1yZXBlYXQnLFxuICAnYm9yZGVyLWltYWdlLXNsaWNlJyxcbiAgJ2JvcmRlci1pbWFnZS1zb3VyY2UnLFxuICAnYm9yZGVyLWltYWdlLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUnLFxuICAnYm9yZGVyLWlubGluZS1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZCcsXG4gICdib3JkZXItaW5saW5lLWVuZC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLWVuZC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLWVuZC13aWR0aCcsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0JyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtY29sb3InLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3R5bGUnLFxuICAnYm9yZGVyLWlubGluZS13aWR0aCcsXG4gICdib3JkZXItbGVmdCcsXG4gICdib3JkZXItbGVmdC1jb2xvcicsXG4gICdib3JkZXItbGVmdC1zdHlsZScsXG4gICdib3JkZXItbGVmdC13aWR0aCcsXG4gICdib3JkZXItcmFkaXVzJyxcbiAgJ2JvcmRlci1yaWdodCcsXG4gICdib3JkZXItZW5kLWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0LWNvbG9yJyxcbiAgJ2JvcmRlci1yaWdodC1zdHlsZScsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXNwYWNpbmcnLFxuICAnYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItc3R5bGUnLFxuICAnYm9yZGVyLXRvcCcsXG4gICdib3JkZXItdG9wLWNvbG9yJyxcbiAgJ2JvcmRlci10b3AtbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLXRvcC1zdHlsZScsXG4gICdib3JkZXItdG9wLXdpZHRoJyxcbiAgJ2JvcmRlci13aWR0aCcsXG4gICdib3R0b20nLFxuICAnYm94LWRlY29yYXRpb24tYnJlYWsnLFxuICAnYm94LXNoYWRvdycsXG4gICdib3gtc2l6aW5nJyxcbiAgJ2JyZWFrLWFmdGVyJyxcbiAgJ2JyZWFrLWJlZm9yZScsXG4gICdicmVhay1pbnNpZGUnLFxuICAnY3gnLFxuICAnY3knLFxuICAnY2FwdGlvbi1zaWRlJyxcbiAgJ2NhcmV0LWNvbG9yJyxcbiAgJ2NsZWFyJyxcbiAgJ2NsaXAnLFxuICAnY2xpcC1wYXRoJyxcbiAgJ2NsaXAtcnVsZScsXG4gICdjb2xvcicsXG4gICdjb2xvci1pbnRlcnBvbGF0aW9uJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsXG4gICdjb2xvci1wcm9maWxlJyxcbiAgJ2NvbG9yLXJlbmRlcmluZycsXG4gICdjb2xvci1zY2hlbWUnLFxuICAnY29sdW1uLWNvdW50JyxcbiAgJ2NvbHVtbi1maWxsJyxcbiAgJ2NvbHVtbi1nYXAnLFxuICAnY29sdW1uLXJ1bGUnLFxuICAnY29sdW1uLXJ1bGUtY29sb3InLFxuICAnY29sdW1uLXJ1bGUtc3R5bGUnLFxuICAnY29sdW1uLXJ1bGUtd2lkdGgnLFxuICAnY29sdW1uLXNwYW4nLFxuICAnY29sdW1uLXdpZHRoJyxcbiAgJ2NvbHVtbnMnLFxuICAnY29udGFpbicsXG4gICdjb250ZW50JyxcbiAgJ2NvbnRlbnQtdmlzaWJpbGl0eScsXG4gICdjb3VudGVyLWluY3JlbWVudCcsXG4gICdjb3VudGVyLXJlc2V0JyxcbiAgJ2N1ZScsXG4gICdjdWUtYWZ0ZXInLFxuICAnY3VlLWJlZm9yZScsXG4gICdjdXJzb3InLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2Rpc3BsYXknLFxuICAnZG9taW5hbnQtYmFzZWxpbmUnLFxuICAnZW1wdHktY2VsbHMnLFxuICAnZW5hYmxlLWJhY2tncm91bmQnLFxuICAnZmlsbCcsXG4gICdmaWxsLW9wYWNpdHknLFxuICAnZmlsbC1ydWxlJyxcbiAgJ2ZpbHRlcicsXG4gICdmbGV4JyxcbiAgJ2ZsZXgtYmFzaXMnLFxuICAnZmxleC1kaXJlY3Rpb24nLFxuICAnZmxleC1mbG93JyxcbiAgJ2ZsZXgtZ3JvdycsXG4gICdmbGV4LXNocmluaycsXG4gICdmbGV4LXdyYXAnLFxuICAnZmxvYXQnLFxuICAnZmxvdycsXG4gICdmbG9vZC1jb2xvcicsXG4gICdmbG9vZC1vcGFjaXR5JyxcbiAgJ2ZvbnQnLFxuICAnZm9udC1kaXNwbGF5JyxcbiAgJ2ZvbnQtZmFtaWx5JyxcbiAgJ2ZvbnQtZmVhdHVyZS1zZXR0aW5ncycsXG4gICdmb250LWtlcm5pbmcnLFxuICAnZm9udC1sYW5ndWFnZS1vdmVycmlkZScsXG4gICdmb250LXNpemUnLFxuICAnZm9udC1zaXplLWFkanVzdCcsXG4gICdmb250LXNtb290aGluZycsXG4gICdmb250LXN0cmV0Y2gnLFxuICAnZm9udC1zdHlsZScsXG4gICdmb250LXN5bnRoZXNpcycsXG4gICdmb250LXZhcmlhbnQnLFxuICAnZm9udC12YXJpYW50LWNhcHMnLFxuICAnZm9udC12YXJpYW50LWVhc3QtYXNpYW4nLFxuICAnZm9udC12YXJpYW50LWxpZ2F0dXJlcycsXG4gICdmb250LXZhcmlhbnQtbnVtZXJpYycsXG4gICdmb250LXZhcmlhbnQtcG9zaXRpb24nLFxuICAnZm9udC12YXJpYXRpb24tc2V0dGluZ3MnLFxuICAnZm9udC13ZWlnaHQnLFxuICAnZ2FwJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLWhvcml6b250YWwnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwnLFxuICAnZ3JpZCcsXG4gICdncmlkLWFyZWEnLFxuICAnZ3JpZC1hdXRvLWNvbHVtbnMnLFxuICAnZ3JpZC1hdXRvLWZsb3cnLFxuICAnZ3JpZC1hdXRvLXJvd3MnLFxuICAnZ3JpZC1jb2x1bW4nLFxuICAnZ3JpZC1jb2x1bW4tZW5kJyxcbiAgJ2dyaWQtY29sdW1uLXN0YXJ0JyxcbiAgJ2dyaWQtZ2FwJyxcbiAgJ2dyaWQtcm93JyxcbiAgJ2dyaWQtcm93LWVuZCcsXG4gICdncmlkLXJvdy1zdGFydCcsXG4gICdncmlkLXRlbXBsYXRlJyxcbiAgJ2dyaWQtdGVtcGxhdGUtYXJlYXMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJyxcbiAgJ2dyaWQtdGVtcGxhdGUtcm93cycsXG4gICdoYW5naW5nLXB1bmN0dWF0aW9uJyxcbiAgJ2hlaWdodCcsXG4gICdoeXBoZW5zJyxcbiAgJ2ljb24nLFxuICAnaW1hZ2Utb3JpZW50YXRpb24nLFxuICAnaW1hZ2UtcmVuZGVyaW5nJyxcbiAgJ2ltYWdlLXJlc29sdXRpb24nLFxuICAnaW1lLW1vZGUnLFxuICAnaW5saW5lLXNpemUnLFxuICAnaW5zZXQnLFxuICAnaW5zZXQtYmxvY2snLFxuICAnaW5zZXQtYmxvY2stZW5kJyxcbiAgJ2luc2V0LWJsb2NrLXN0YXJ0JyxcbiAgJ2luc2V0LWlubGluZScsXG4gICdpbnNldC1pbmxpbmUtZW5kJyxcbiAgJ2luc2V0LWlubGluZS1zdGFydCcsXG4gICdpc29sYXRpb24nLFxuICAna2VybmluZycsXG4gICdqdXN0aWZ5LWNvbnRlbnQnLFxuICAnanVzdGlmeS1pdGVtcycsXG4gICdqdXN0aWZ5LXNlbGYnLFxuICAnbGVmdCcsXG4gICdsZXR0ZXItc3BhY2luZycsXG4gICdsaWdodGluZy1jb2xvcicsXG4gICdsaW5lLWJyZWFrJyxcbiAgJ2xpbmUtaGVpZ2h0JyxcbiAgJ2xpc3Qtc3R5bGUnLFxuICAnbGlzdC1zdHlsZS1pbWFnZScsXG4gICdsaXN0LXN0eWxlLXBvc2l0aW9uJyxcbiAgJ2xpc3Qtc3R5bGUtdHlwZScsXG4gICdtYXJrZXInLFxuICAnbWFya2VyLWVuZCcsXG4gICdtYXJrZXItbWlkJyxcbiAgJ21hcmtlci1zdGFydCcsXG4gICdtYXNrJyxcbiAgJ21hcmdpbicsXG4gICdtYXJnaW4tYmxvY2snLFxuICAnbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdtYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnbWFyZ2luLWJvdHRvbScsXG4gICdtYXJnaW4taW5saW5lJyxcbiAgJ21hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ21hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnbWFyZ2luLWxlZnQnLFxuICAnbWFyZ2luLXJpZ2h0JyxcbiAgJ21hcmdpbi10b3AnLFxuICAnbWFya3MnLFxuICAnbWFzaycsXG4gICdtYXNrLWJvcmRlcicsXG4gICdtYXNrLWJvcmRlci1tb2RlJyxcbiAgJ21hc2stYm9yZGVyLW91dHNldCcsXG4gICdtYXNrLWJvcmRlci1yZXBlYXQnLFxuICAnbWFzay1ib3JkZXItc2xpY2UnLFxuICAnbWFzay1ib3JkZXItc291cmNlJyxcbiAgJ21hc2stYm9yZGVyLXdpZHRoJyxcbiAgJ21hc2stY2xpcCcsXG4gICdtYXNrLWNvbXBvc2l0ZScsXG4gICdtYXNrLWltYWdlJyxcbiAgJ21hc2stbW9kZScsXG4gICdtYXNrLW9yaWdpbicsXG4gICdtYXNrLXBvc2l0aW9uJyxcbiAgJ21hc2stcmVwZWF0JyxcbiAgJ21hc2stc2l6ZScsXG4gICdtYXNrLXR5cGUnLFxuICAnbWF4LWJsb2NrLXNpemUnLFxuICAnbWF4LWhlaWdodCcsXG4gICdtYXgtaW5saW5lLXNpemUnLFxuICAnbWF4LXdpZHRoJyxcbiAgJ21pbi1ibG9jay1zaXplJyxcbiAgJ21pbi1oZWlnaHQnLFxuICAnbWluLWlubGluZS1zaXplJyxcbiAgJ21pbi13aWR0aCcsXG4gICdtaXgtYmxlbmQtbW9kZScsXG4gICduYXYtZG93bicsXG4gICduYXYtaW5kZXgnLFxuICAnbmF2LWxlZnQnLFxuICAnbmF2LXJpZ2h0JyxcbiAgJ25hdi11cCcsXG4gICdub25lJyxcbiAgJ25vcm1hbCcsXG4gICdvYmplY3QtZml0JyxcbiAgJ29iamVjdC1wb3NpdGlvbicsXG4gICdvcGFjaXR5JyxcbiAgJ29yZGVyJyxcbiAgJ29ycGhhbnMnLFxuICAnb3V0bGluZScsXG4gICdvdXRsaW5lLWNvbG9yJyxcbiAgJ291dGxpbmUtb2Zmc2V0JyxcbiAgJ291dGxpbmUtc3R5bGUnLFxuICAnb3V0bGluZS13aWR0aCcsXG4gICdvdmVyZmxvdycsXG4gICdvdmVyZmxvdy13cmFwJyxcbiAgJ292ZXJmbG93LXgnLFxuICAnb3ZlcmZsb3cteScsXG4gICdwYWRkaW5nJyxcbiAgJ3BhZGRpbmctYmxvY2snLFxuICAncGFkZGluZy1ibG9jay1lbmQnLFxuICAncGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdwYWRkaW5nLWJvdHRvbScsXG4gICdwYWRkaW5nLWlubGluZScsXG4gICdwYWRkaW5nLWlubGluZS1lbmQnLFxuICAncGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAncGFkZGluZy1sZWZ0JyxcbiAgJ3BhZGRpbmctcmlnaHQnLFxuICAncGFkZGluZy10b3AnLFxuICAncGFnZS1icmVhay1hZnRlcicsXG4gICdwYWdlLWJyZWFrLWJlZm9yZScsXG4gICdwYWdlLWJyZWFrLWluc2lkZScsXG4gICdwYXVzZScsXG4gICdwYXVzZS1hZnRlcicsXG4gICdwYXVzZS1iZWZvcmUnLFxuICAncGVyc3BlY3RpdmUnLFxuICAncGVyc3BlY3RpdmUtb3JpZ2luJyxcbiAgJ3BvaW50ZXItZXZlbnRzJyxcbiAgJ3Bvc2l0aW9uJyxcbiAgJ3F1b3RlcycsXG4gICdyJyxcbiAgJ3Jlc2l6ZScsXG4gICdyZXN0JyxcbiAgJ3Jlc3QtYWZ0ZXInLFxuICAncmVzdC1iZWZvcmUnLFxuICAncmlnaHQnLFxuICAncm90YXRlJyxcbiAgJ3Jvdy1nYXAnLFxuICAnc2NhbGUnLFxuICAnc2Nyb2xsLW1hcmdpbicsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ib3R0b20nLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tbGVmdCcsXG4gICdzY3JvbGwtbWFyZ2luLXJpZ2h0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tdG9wJyxcbiAgJ3Njcm9sbC1wYWRkaW5nJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1ib3R0b20nLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWxlZnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctcmlnaHQnLFxuICAnc2Nyb2xsLXBhZGRpbmctdG9wJyxcbiAgJ3Njcm9sbC1zbmFwLWFsaWduJyxcbiAgJ3Njcm9sbC1zbmFwLXN0b3AnLFxuICAnc2Nyb2xsLXNuYXAtdHlwZScsXG4gICdzY3JvbGxiYXItY29sb3InLFxuICAnc2Nyb2xsYmFyLWd1dHRlcicsXG4gICdzY3JvbGxiYXItd2lkdGgnLFxuICAnc2hhcGUtaW1hZ2UtdGhyZXNob2xkJyxcbiAgJ3NoYXBlLW1hcmdpbicsXG4gICdzaGFwZS1vdXRzaWRlJyxcbiAgJ3NoYXBlLXJlbmRlcmluZycsXG4gICdzdG9wLWNvbG9yJyxcbiAgJ3N0b3Atb3BhY2l0eScsXG4gICdzdHJva2UnLFxuICAnc3Ryb2tlLWRhc2hhcnJheScsXG4gICdzdHJva2UtZGFzaG9mZnNldCcsXG4gICdzdHJva2UtbGluZWNhcCcsXG4gICdzdHJva2UtbGluZWpvaW4nLFxuICAnc3Ryb2tlLW1pdGVybGltaXQnLFxuICAnc3Ryb2tlLW9wYWNpdHknLFxuICAnc3Ryb2tlLXdpZHRoJyxcbiAgJ3NwZWFrJyxcbiAgJ3NwZWFrLWFzJyxcbiAgJ3NyYycsIC8vIEBmb250LWZhY2VcbiAgJ3RhYi1zaXplJyxcbiAgJ3RhYmxlLWxheW91dCcsXG4gICd0ZXh0LWFuY2hvcicsXG4gICd0ZXh0LWFsaWduJyxcbiAgJ3RleHQtYWxpZ24tYWxsJyxcbiAgJ3RleHQtYWxpZ24tbGFzdCcsXG4gICd0ZXh0LWNvbWJpbmUtdXByaWdodCcsXG4gICd0ZXh0LWRlY29yYXRpb24nLFxuICAndGV4dC1kZWNvcmF0aW9uLWNvbG9yJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1saW5lJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1za2lwLWluaycsXG4gICd0ZXh0LWRlY29yYXRpb24tc3R5bGUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzcycsXG4gICd0ZXh0LWVtcGhhc2lzJyxcbiAgJ3RleHQtZW1waGFzaXMtY29sb3InLFxuICAndGV4dC1lbXBoYXNpcy1wb3NpdGlvbicsXG4gICd0ZXh0LWVtcGhhc2lzLXN0eWxlJyxcbiAgJ3RleHQtaW5kZW50JyxcbiAgJ3RleHQtanVzdGlmeScsXG4gICd0ZXh0LW9yaWVudGF0aW9uJyxcbiAgJ3RleHQtb3ZlcmZsb3cnLFxuICAndGV4dC1yZW5kZXJpbmcnLFxuICAndGV4dC1zaGFkb3cnLFxuICAndGV4dC10cmFuc2Zvcm0nLFxuICAndGV4dC11bmRlcmxpbmUtb2Zmc2V0JyxcbiAgJ3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uJyxcbiAgJ3RvcCcsXG4gICd0cmFuc2Zvcm0nLFxuICAndHJhbnNmb3JtLWJveCcsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zZm9ybS1zdHlsZScsXG4gICd0cmFuc2l0aW9uJyxcbiAgJ3RyYW5zaXRpb24tZGVsYXknLFxuICAndHJhbnNpdGlvbi1kdXJhdGlvbicsXG4gICd0cmFuc2l0aW9uLXByb3BlcnR5JyxcbiAgJ3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd1bmljb2RlLWJpZGknLFxuICAndmVjdG9yLWVmZmVjdCcsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3ZvaWNlLWJhbGFuY2UnLFxuICAndm9pY2UtZHVyYXRpb24nLFxuICAndm9pY2UtZmFtaWx5JyxcbiAgJ3ZvaWNlLXBpdGNoJyxcbiAgJ3ZvaWNlLXJhbmdlJyxcbiAgJ3ZvaWNlLXJhdGUnLFxuICAndm9pY2Utc3RyZXNzJyxcbiAgJ3ZvaWNlLXZvbHVtZScsXG4gICd3aGl0ZS1zcGFjZScsXG4gICd3aWRvd3MnLFxuICAnd2lkdGgnLFxuICAnd2lsbC1jaGFuZ2UnLFxuICAnd29yZC1icmVhaycsXG4gICd3b3JkLXNwYWNpbmcnLFxuICAnd29yZC13cmFwJyxcbiAgJ3dyaXRpbmctbW9kZScsXG4gICd4JyxcbiAgJ3knLFxuICAnei1pbmRleCdcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuLypcbkxhbmd1YWdlOiBTQ1NTXG5EZXNjcmlwdGlvbjogU2NzcyBpcyBhbiBleHRlbnNpb24gb2YgdGhlIHN5bnRheCBvZiBDU1MuXG5BdXRob3I6IEt1cnQgRW1jaCA8a3VydEBrdXJ0ZW1jaC5jb20+XG5XZWJzaXRlOiBodHRwczovL3Nhc3MtbGFuZy5jb21cbkNhdGVnb3J5OiBjb21tb24sIGNzcywgd2ViXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzY3NzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcbiAgY29uc3QgUFNFVURPX0VMRU1FTlRTJDEgPSBQU0VVRE9fRUxFTUVOVFM7XG4gIGNvbnN0IFBTRVVET19DTEFTU0VTJDEgPSBQU0VVRE9fQ0xBU1NFUztcblxuICBjb25zdCBBVF9JREVOVElGSUVSID0gJ0BbYS16LV0rJzsgLy8gQGZvbnQtZmFjZVxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBJREVOVF9SRSA9ICdbYS16QS1aLV1bYS16QS1aMC05Xy1dKic7XG4gIGNvbnN0IFZBUklBQkxFID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogJyhcXFxcJCcgKyBJREVOVF9SRSArICcpXFxcXGInLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NDU1MnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgaWxsZWdhbDogJ1s9L3xcXCddJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIC8vIHRvIHJlY29nbml6ZSBrZXlmcmFtZSA0MCUgZXRjIHdoaWNoIGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBvdXJcbiAgICAgIC8vIGF0dHJpYnV0ZSB2YWx1ZSBtb2RlXG4gICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWlkJyxcbiAgICAgICAgYmVnaW46ICcjW0EtWmEtejAtOV8tXSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLWNsYXNzJyxcbiAgICAgICAgYmVnaW46ICdcXFxcLltBLVphLXowLTlfLV0rJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZycsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJylcXFxcYicsXG4gICAgICAgIC8vIHdhcyB0aGVyZSwgYmVmb3JlLCBidXQgd2h5P1xuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOignICsgUFNFVURPX0NMQVNTRVMkMS5qb2luKCd8JykgKyAnKSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXBzZXVkbycsXG4gICAgICAgIGJlZ2luOiAnOig6KT8oJyArIFBTRVVET19FTEVNRU5UUyQxLmpvaW4oJ3wnKSArICcpJ1xuICAgICAgfSxcbiAgICAgIFZBUklBQkxFLFxuICAgICAgeyAvLyBwc2V1ZG8tc2VsZWN0b3IgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFsgbW9kZXMuQ1NTX05VTUJFUl9NT0RFIF1cbiAgICAgIH0sXG4gICAgICBtb2Rlcy5DU1NfVkFSSUFCTEUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2F0dHJpYnV0ZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIEFUVFJJQlVURVMuam9pbignfCcpICsgJylcXFxcYidcbiAgICAgIH0sXG4gICAgICB7IGJlZ2luOiAnXFxcXGIod2hpdGVzcGFjZXx3YWl0fHctcmVzaXplfHZpc2libGV8dmVydGljYWwtdGV4dHx2ZXJ0aWNhbC1pZGVvZ3JhcGhpY3x1cHBlcmNhc2V8dXBwZXItcm9tYW58dXBwZXItYWxwaGF8dW5kZXJsaW5lfHRyYW5zcGFyZW50fHRvcHx0aGlufHRoaWNrfHRleHR8dGV4dC10b3B8dGV4dC1ib3R0b218dGItcmx8dGFibGUtaGVhZGVyLWdyb3VwfHRhYmxlLWZvb3Rlci1ncm91cHxzdy1yZXNpemV8c3VwZXJ8c3RyaWN0fHN0YXRpY3xzcXVhcmV8c29saWR8c21hbGwtY2Fwc3xzZXBhcmF0ZXxzZS1yZXNpemV8c2Nyb2xsfHMtcmVzaXplfHJ0bHxyb3ctcmVzaXplfHJpZGdlfHJpZ2h0fHJlcGVhdHxyZXBlYXQteXxyZXBlYXQteHxyZWxhdGl2ZXxwcm9ncmVzc3xwb2ludGVyfG92ZXJsaW5lfG91dHNpZGV8b3V0c2V0fG9ibGlxdWV8bm93cmFwfG5vdC1hbGxvd2VkfG5vcm1hbHxub25lfG53LXJlc2l6ZXxuby1yZXBlYXR8bm8tZHJvcHxuZXdzcGFwZXJ8bmUtcmVzaXplfG4tcmVzaXplfG1vdmV8bWlkZGxlfG1lZGl1bXxsdHJ8bHItdGJ8bG93ZXJjYXNlfGxvd2VyLXJvbWFufGxvd2VyLWFscGhhfGxvb3NlfGxpc3QtaXRlbXxsaW5lfGxpbmUtdGhyb3VnaHxsaW5lLWVkZ2V8bGlnaHRlcnxsZWZ0fGtlZXAtYWxsfGp1c3RpZnl8aXRhbGljfGludGVyLXdvcmR8aW50ZXItaWRlb2dyYXBofGluc2lkZXxpbnNldHxpbmxpbmV8aW5saW5lLWJsb2NrfGluaGVyaXR8aW5hY3RpdmV8aWRlb2dyYXBoLXNwYWNlfGlkZW9ncmFwaC1wYXJlbnRoZXNpc3xpZGVvZ3JhcGgtbnVtZXJpY3xpZGVvZ3JhcGgtYWxwaGF8aG9yaXpvbnRhbHxoaWRkZW58aGVscHxoYW5kfGdyb292ZXxmaXhlZHxlbGxpcHNpc3xlLXJlc2l6ZXxkb3VibGV8ZG90dGVkfGRpc3RyaWJ1dGV8ZGlzdHJpYnV0ZS1zcGFjZXxkaXN0cmlidXRlLWxldHRlcnxkaXN0cmlidXRlLWFsbC1saW5lc3xkaXNjfGRpc2FibGVkfGRlZmF1bHR8ZGVjaW1hbHxkYXNoZWR8Y3Jvc3NoYWlyfGNvbGxhcHNlfGNvbC1yZXNpemV8Y2lyY2xlfGNoYXJ8Y2VudGVyfGNhcGl0YWxpemV8YnJlYWstd29yZHxicmVhay1hbGx8Ym90dG9tfGJvdGh8Ym9sZGVyfGJvbGR8YmxvY2t8YmlkaS1vdmVycmlkZXxiZWxvd3xiYXNlbGluZXxhdXRvfGFsd2F5c3xhbGwtc2Nyb2xsfGFic29sdXRlfHRhYmxlfHRhYmxlLWNlbGwpXFxcXGInIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1s7fXtdLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIG1vZGVzLkJMT0NLX0NPTU1FTlQsXG4gICAgICAgICAgVkFSSUFCTEUsXG4gICAgICAgICAgbW9kZXMuSEVYQ09MT1IsXG4gICAgICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIG1vZGVzLklNUE9SVEFOVCxcbiAgICAgICAgICBtb2Rlcy5GVU5DVElPTl9ESVNQQVRDSFxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gbWF0Y2hpbmcgdGhlc2UgaGVyZSBhbGxvd3MgdXMgdG8gdHJlYXQgdGhlbSBtb3JlIGxpa2UgcmVndWxhciBDU1NcbiAgICAgIC8vIHJ1bGVzIHNvIGV2ZXJ5dGhpbmcgYmV0d2VlbiB0aGUge30gZ2V0cyByZWd1bGFyIHJ1bGUgaGlnaGxpZ2h0aW5nLFxuICAgICAgLy8gd2hpY2ggaXMgd2hhdCB3ZSB3YW50IGZvciBwYWdlIGFuZCBmb250LWZhY2VcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdAKHBhZ2V8Zm9udC1mYWNlKScsXG4gICAgICAgIGtleXdvcmRzOiB7XG4gICAgICAgICAgJHBhdHRlcm46IEFUX0lERU5USUZJRVIsXG4gICAgICAgICAga2V5d29yZDogJ0BwYWdlIEBmb250LWZhY2UnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnQCcsXG4gICAgICAgIGVuZDogJ1t7O10nLFxuICAgICAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1thLXotXSsvLFxuICAgICAgICAgIGtleXdvcmQ6IEFUX01PRElGSUVSUyxcbiAgICAgICAgICBhdHRyaWJ1dGU6IE1FRElBX0ZFQVRVUkVTLmpvaW4oXCIgXCIpXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46IEFUX0lERU5USUZJRVIsXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwia2V5d29yZFwiXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogL1thLXotXSsoPz06KS8sXG4gICAgICAgICAgICBjbGFzc05hbWU6IFwiYXR0cmlidXRlXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFZBUklBQkxFLFxuICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgIG1vZGVzLkNTU19OVU1CRVJfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc2NzcztcbiIsICIvKlxuTGFuZ3VhZ2U6IFNoZWxsIFNlc3Npb25cblJlcXVpcmVzOiBiYXNoLmpzXG5BdXRob3I6IFRTVVlVU0FUTyBLaXRzdW5lIDxtYWtlLmp1c3Qub25AZ21haWwuY29tPlxuQ2F0ZWdvcnk6IGNvbW1vblxuQXVkaXQ6IDIwMjBcbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzaGVsbChobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NoZWxsIFNlc3Npb24nLFxuICAgIGFsaWFzZXM6IFtcbiAgICAgICdjb25zb2xlJyxcbiAgICAgICdzaGVsbHNlc3Npb24nXG4gICAgXSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdtZXRhLnByb21wdCcsXG4gICAgICAgIC8vIFdlIGNhbm5vdCBhZGQgXFxzIChzcGFjZXMpIGluIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gb3RoZXJ3aXNlIGl0IHdpbGwgYmUgdG9vIGJyb2FkIGFuZCBwcm9kdWNlIHVuZXhwZWN0ZWQgcmVzdWx0LlxuICAgICAgICAvLyBGb3IgaW5zdGFuY2UsIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgaXQgd291bGQgbWF0Y2ggXCJlY2hvIC9wYXRoL3RvL2hvbWUgPlwiIGFzIGEgcHJvbXB0OlxuICAgICAgICAvLyBlY2hvIC9wYXRoL3RvL2hvbWUgPiB0LmV4ZVxuICAgICAgICBiZWdpbjogL15cXHN7MCwzfVsvflxcd1xcZFtcXF0oKUAtXSpbPiUkI11bIF0/LyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgZW5kOiAvW15cXFxcXSg/PVxccyokKS8sXG4gICAgICAgICAgc3ViTGFuZ3VhZ2U6ICdiYXNoJ1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNoZWxsO1xuIiwgIi8qXG5MYW5ndWFnZTogU21hbGlcbkF1dGhvcjogRGVubmlzIFRpdHplIDxkZW5uaXMudGl0emVAZ21haWwuY29tPlxuRGVzY3JpcHRpb246IEJhc2ljIFNtYWxpIGhpZ2hsaWdodGluZ1xuV2Vic2l0ZTogaHR0cHM6Ly9naXRodWIuY29tL0plc3VzRnJla2Uvc21hbGlcbkNhdGVnb3J5OiBhc3NlbWJsZXJcbiovXG5cbmZ1bmN0aW9uIHNtYWxpKGhsanMpIHtcbiAgY29uc3Qgc21hbGlfaW5zdHJfbG93X3ByaW8gPSBbXG4gICAgJ2FkZCcsXG4gICAgJ2FuZCcsXG4gICAgJ2NtcCcsXG4gICAgJ2NtcGcnLFxuICAgICdjbXBsJyxcbiAgICAnY29uc3QnLFxuICAgICdkaXYnLFxuICAgICdkb3VibGUnLFxuICAgICdmbG9hdCcsXG4gICAgJ2dvdG8nLFxuICAgICdpZicsXG4gICAgJ2ludCcsXG4gICAgJ2xvbmcnLFxuICAgICdtb3ZlJyxcbiAgICAnbXVsJyxcbiAgICAnbmVnJyxcbiAgICAnbmV3JyxcbiAgICAnbm9wJyxcbiAgICAnbm90JyxcbiAgICAnb3InLFxuICAgICdyZW0nLFxuICAgICdyZXR1cm4nLFxuICAgICdzaGwnLFxuICAgICdzaHInLFxuICAgICdzcHV0JyxcbiAgICAnc3ViJyxcbiAgICAndGhyb3cnLFxuICAgICd1c2hyJyxcbiAgICAneG9yJ1xuICBdO1xuICBjb25zdCBzbWFsaV9pbnN0cl9oaWdoX3ByaW8gPSBbXG4gICAgJ2FnZXQnLFxuICAgICdhcHV0JyxcbiAgICAnYXJyYXknLFxuICAgICdjaGVjaycsXG4gICAgJ2V4ZWN1dGUnLFxuICAgICdmaWxsJyxcbiAgICAnZmlsbGVkJyxcbiAgICAnZ290by8xNicsXG4gICAgJ2dvdG8vMzInLFxuICAgICdpZ2V0JyxcbiAgICAnaW5zdGFuY2UnLFxuICAgICdpbnZva2UnLFxuICAgICdpcHV0JyxcbiAgICAnbW9uaXRvcicsXG4gICAgJ3BhY2tlZCcsXG4gICAgJ3NnZXQnLFxuICAgICdzcGFyc2UnXG4gIF07XG4gIGNvbnN0IHNtYWxpX2tleXdvcmRzID0gW1xuICAgICd0cmFuc2llbnQnLFxuICAgICdjb25zdHJ1Y3RvcicsXG4gICAgJ2Fic3RyYWN0JyxcbiAgICAnZmluYWwnLFxuICAgICdzeW50aGV0aWMnLFxuICAgICdwdWJsaWMnLFxuICAgICdwcml2YXRlJyxcbiAgICAncHJvdGVjdGVkJyxcbiAgICAnc3RhdGljJyxcbiAgICAnYnJpZGdlJyxcbiAgICAnc3lzdGVtJ1xuICBdO1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTbWFsaScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAnIycsXG4gICAgICAgICckJyxcbiAgICAgICAgeyByZWxldmFuY2U6IDAgfVxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxzKlxcXFwuZW5kXFxcXHNbYS16QS1aMC05XSonIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdeWyBdKlxcXFwuW2EtekEtWl0qJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcczpbYS16QS1aXzAtOV0qJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxzKCcgKyBzbWFsaV9rZXl3b3Jkcy5qb2luKCd8JykgKyAnKScgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ1xcXFxzKCcgKyBzbWFsaV9pbnN0cl9sb3dfcHJpby5qb2luKCd8JykgKyAnKVxcXFxzJyB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXHMoJyArIHNtYWxpX2luc3RyX2xvd19wcmlvLmpvaW4oJ3wnKSArICcpKCgtfC8pW2EtekEtWjAtOV0rKStcXFxccycsXG4gICAgICAgICAgICByZWxldmFuY2U6IDEwXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFxzKCcgKyBzbWFsaV9pbnN0cl9oaWdoX3ByaW8uam9pbignfCcpICsgJykoKC18LylbYS16QS1aMC05XSspKlxcXFxzJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMTBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW46ICdMW15cXCg7Olxcbl0qOycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46ICdbdnBdWzAtOV0rJyB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNtYWxpO1xuIiwgIi8qXG5MYW5ndWFnZTogU21hbGx0YWxrXG5EZXNjcmlwdGlvbjogU21hbGx0YWxrIGlzIGFuIG9iamVjdC1vcmllbnRlZCwgZHluYW1pY2FsbHkgdHlwZWQgcmVmbGVjdGl2ZSBwcm9ncmFtbWluZyBsYW5ndWFnZS5cbkF1dGhvcjogVmxhZGltaXIgR3ViYXJrb3YgPHhvbml4eEBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TbWFsbHRhbGtcbkNhdGVnb3J5OiBzeXN0ZW1cbiovXG5cbmZ1bmN0aW9uIHNtYWxsdGFsayhobGpzKSB7XG4gIGNvbnN0IFZBUl9JREVOVF9SRSA9ICdbYS16XVthLXpBLVowLTlfXSonO1xuICBjb25zdCBDSEFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdcXFxcJC57MX0nXG4gIH07XG4gIGNvbnN0IFNZTUJPTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnIycgKyBobGpzLlVOREVSU0NPUkVfSURFTlRfUkVcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU21hbGx0YWxrJyxcbiAgICBhbGlhc2VzOiBbICdzdCcgXSxcbiAgICBrZXl3b3JkczogW1xuICAgICAgXCJzZWxmXCIsXG4gICAgICBcInN1cGVyXCIsXG4gICAgICBcIm5pbFwiLFxuICAgICAgXCJ0cnVlXCIsXG4gICAgICBcImZhbHNlXCIsXG4gICAgICBcInRoaXNDb250ZXh0XCJcbiAgICBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoJ1wiJywgJ1wiJyksXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3R5cGUnLFxuICAgICAgICBiZWdpbjogJ1xcXFxiW0EtWl1bQS1aYS16MC05X10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogVkFSX0lERU5UX1JFICsgJzonLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICBTWU1CT0wsXG4gICAgICBDSEFSLFxuICAgICAge1xuICAgICAgICAvLyBUaGlzIGxvb2tzIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBuZWVkZWQgdG8gYXZvaWQgY29tYmluYXRvcmlhbFxuICAgICAgICAvLyBleHBsb3Npb24gdW5kZXIgVjguIEl0IGVmZmVjdGl2ZWx5IG1lYW5zIGB8IHZhcjEgdmFyMiAuLi4gfGAgd2l0aFxuICAgICAgICAvLyB3aGl0ZXNwYWNlIGFkamFjZW50IHRvIGB8YCBiZWluZyBvcHRpb25hbC5cbiAgICAgICAgYmVnaW46ICdcXFxcfFsgXSonICsgVkFSX0lERU5UX1JFICsgJyhbIF0rJyArIFZBUl9JREVOVF9SRSArICcpKlsgXSpcXFxcfCcsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBlbmQ6IC9cXHwvLFxuICAgICAgICBpbGxlZ2FsOiAvXFxTLyxcbiAgICAgICAgY29udGFpbnM6IFsgeyBiZWdpbjogJyhcXFxcfFsgXSopPycgKyBWQVJfSURFTlRfUkUgfSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJyNcXFxcKCcsXG4gICAgICAgIGVuZDogJ1xcXFwpJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICAgICAgQ0hBUixcbiAgICAgICAgICBobGpzLkNfTlVNQkVSX01PREUsXG4gICAgICAgICAgU1lNQk9MXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc21hbGx0YWxrO1xuIiwgIi8qXG5MYW5ndWFnZTogU01MIChTdGFuZGFyZCBNTClcbkF1dGhvcjogRWR3aW4gRGFsb3J6byA8ZWR3aW5AZGFsb3J6by5vcmc+XG5EZXNjcmlwdGlvbjogU01MIGxhbmd1YWdlIGRlZmluaXRpb24uXG5XZWJzaXRlOiBodHRwczovL3d3dy5zbWxuai5vcmdcbk9yaWdpbjogb2NhbWwuanNcbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG4qL1xuZnVuY3Rpb24gc21sKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU01MIChTdGFuZGFyZCBNTCknLFxuICAgIGFsaWFzZXM6IFsgJ21sJyBdLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICAkcGF0dGVybjogJ1thLXpfXVxcXFx3KiE/JyxcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8qIGFjY29yZGluZyB0byBEZWZpbml0aW9uIG9mIFN0YW5kYXJkIE1MIDk3ICAqL1xuICAgICAgICAnYWJzdHlwZSBhbmQgYW5kYWxzbyBhcyBjYXNlIGRhdGF0eXBlIGRvIGVsc2UgZW5kIGVxdHlwZSAnXG4gICAgICAgICsgJ2V4Y2VwdGlvbiBmbiBmdW4gZnVuY3RvciBoYW5kbGUgaWYgaW4gaW5jbHVkZSBpbmZpeCBpbmZpeHIgJ1xuICAgICAgICArICdsZXQgbG9jYWwgbm9uZml4IG9mIG9wIG9wZW4gb3JlbHNlIHJhaXNlIHJlYyBzaGFyaW5nIHNpZyAnXG4gICAgICAgICsgJ3NpZ25hdHVyZSBzdHJ1Y3Qgc3RydWN0dXJlIHRoZW4gdHlwZSB2YWwgd2l0aCB3aXRodHlwZSB3aGVyZSB3aGlsZScsXG4gICAgICBidWlsdF9pbjpcbiAgICAgICAgLyogYnVpbHQtaW4gdHlwZXMgYWNjb3JkaW5nIHRvIGJhc2lzIGxpYnJhcnkgKi9cbiAgICAgICAgJ2FycmF5IGJvb2wgY2hhciBleG4gaW50IGxpc3Qgb3B0aW9uIG9yZGVyIHJlYWwgcmVmIHN0cmluZyBzdWJzdHJpbmcgdmVjdG9yIHVuaXQgd29yZCcsXG4gICAgICBsaXRlcmFsOlxuICAgICAgICAndHJ1ZSBmYWxzZSBOT05FIFNPTUUgTEVTUyBFUVVBTCBHUkVBVEVSIG5pbCdcbiAgICB9LFxuICAgIGlsbGVnYWw6IC9cXC9cXC98Pj4vLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgICAgICBiZWdpbjogL1xcWyhcXHxcXHwpP1xcXXxcXChcXCkvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgICdcXFxcKFxcXFwqJyxcbiAgICAgICAgJ1xcXFwqXFxcXCknLFxuICAgICAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgICAgICksXG4gICAgICB7IC8qIHR5cGUgdmFyaWFibGUgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdcXCdbQS1aYS16X10oPyFcXCcpW1xcXFx3XFwnXSonXG4gICAgICAgIC8qIHRoZSBncmFtbWFyIGlzIGFtYmlndW91cyBvbiBob3cgJ2EnYiBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYnV0IG5vdCB0aGUgY29tcGlsZXIgKi9cbiAgICAgIH0sXG4gICAgICB7IC8qIHBvbHltb3JwaGljIHZhcmlhbnQgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGJlZ2luOiAnYFtBLVpdW1xcXFx3XFwnXSonXG4gICAgICB9LFxuICAgICAgeyAvKiBtb2R1bGUgb3IgY29uc3RydWN0b3IgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXGJbQS1aXVtcXFxcd1xcJ10qJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyAvKiBkb24ndCBjb2xvciBpZGVudGlmaWVycywgYnV0IHNhZmVseSBjYXRjaCBhbGwgaWRlbnRpZmllcnMgd2l0aCAnICovXG4gICAgICAgIGJlZ2luOiAnW2Etel9dXFxcXHcqXFwnW1xcXFx3XFwnXSonIH0sXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgICAgICBiZWdpbjpcbiAgICAgICAgICAnXFxcXGIoMFt4WF1bYS1mQS1GMC05X10rW0xsbl0/fCdcbiAgICAgICAgICArICcwW29PXVswLTdfXStbTGxuXT98J1xuICAgICAgICAgICsgJzBbYkJdWzAxX10rW0xsbl0/fCdcbiAgICAgICAgICArICdbMC05XVswLTlfXSooW0xsbl18KFxcXFwuWzAtOV9dKik/KFtlRV1bLStdP1swLTlfXSspPyk/KScsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC9bLT1dPi8gLy8gcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc21sO1xuIiwgIi8qXG5MYW5ndWFnZTogU1FGXG5BdXRob3I6IFNcdTAwRjhyZW4gRW5ldm9sZHNlbiA8c2VuZXZvbGRzZW45MEBnbWFpbC5jb20+XG5Db250cmlidXRvcnM6IE1hcnZpbiBTYWlnbmF0IDxjb250YWN0QHpnbXJ2bi5jb20+LCBEZWRtZW4gTWlsbGVyIDxkZWRtZW5AZGVkbWVuLmRlPiwgTGVvcGFyZDIwXG5EZXNjcmlwdGlvbjogU2NyaXB0aW5nIGxhbmd1YWdlIGZvciB0aGUgQXJtYSBnYW1lIHNlcmllc1xuV2Vic2l0ZTogaHR0cHM6Ly9jb21tdW5pdHkuYmlzdHVkaW8uY29tL3dpa2kvU1FGX3N5bnRheFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuTGFzdCB1cGRhdGU6IDA3LjAxLjIwMjMsIEFybWEgMyB2Mi4xMVxuKi9cblxuLypcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICogQXV0aG9yOiBMZW9wYXJkMjBcbiAgXG4gICogRGVzY3JpcHRpb246XG4gIFRoaXMgc2NyaXB0IGNhbiBiZSB1c2VkIHRvIGR1bXAgYWxsIGNvbW1hbmRzIHRvIHRoZSBjbGlwYm9hcmQuXG4gIE1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIERpYWcgRVhFIHRvIGR1bXAgYWxsIG9mIHRoZSBjb21tYW5kcy5cbiAgXG4gICogSG93IHRvIHVzZTpcbiAgU2ltcGx5IHJlcGxhY2UgdGhlIF9LRVlXT1JEUyBhbmQgX0xJVEVSQUwgYXJyYXlzIHdpdGggdGhlIG9uZSBmcm9tIHRoaXMgc3FmLmpzIGZpbGUuXG4gIEV4ZWN1dGUgdGhlIHNjcmlwdCBmcm9tIHRoZSBkZWJ1ZyBjb25zb2xlLlxuICBBbGwgY29tbWFuZHMgd2lsbCBiZSBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZC5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5fS0VZV09SRFMgPSBbJ2lmJ107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9BcnJheSBvZiBhbGwgS0VZV09SRFNcbl9MSVRFUkFMUyA9IFsnd2VzdCddOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0FycmF5IG9mIGFsbCBMSVRFUkFMU1xuX2FsbENvbW1hbmRzID0gY3JlYXRlSGFzaE1hcDtcbntcbiAgX3R5cGUgPSBfeCBzZWxlY3QgWzAsMV07XG4gIGlmIChfdHlwZSAhPSBcInRcIikgdGhlbiB7XG4gICAgX2NvbW1hbmRfbG93ZXJjYXNlID0gKChfeCBzZWxlY3QgWzJdKSBzcGxpdFN0cmluZyBcIiBcIikjKCgoW1wiblwiLCBcInVcIiwgXCJiXCJdIGZpbmQgX3R5cGUpIC0gMSkgbWF4IDApO1xuICAgIF9jb21tYW5kX3VwcGVyY2FzZSA9IHN1cHBvcnRJbmZvIChcImk6XCIgKyBfY29tbWFuZF9sb3dlcmNhc2UpICMgMCAjIDI7XG4gICAgX2FsbENvbW1hbmRzIHNldCBbX2NvbW1hbmRfbG93ZXJjYXNlLCBfY29tbWFuZF91cHBlcmNhc2VdO1xuICB9O1xufSBmb3JFYWNoIHN1cHBvcnRJbmZvIFwiXCI7XG5fYWxsQ29tbWFuZHMgPSBfYWxsQ29tbWFuZHMgdG9BcnJheSBmYWxzZTtcbl9hbGxDb21tYW5kcyBzb3J0IHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NvcnQgYnkgbG93ZXJjYXNlXG5fYWxsQ29tbWFuZHMgPSAoKF9hbGxDb21tYW5kcyBhcHBseSB7X3gjMX0pIC1fS0VZV09SRFMpLV9MSVRFUkFMUzsgLy9yZW1vdmUgS0VZV09SRFMgYW5kIExJVEVSQUxTXG5jb3B5VG9DbGlwYm9hcmQgKHN0ciAoX2FsbENvbW1hbmRzIHNlbGVjdCB7X3ggcmVnZXhNYXRjaCBcIlxcdytcIn0pIHJlZ2V4UmVwbGFjZSBbXCJcIlwiXCIsIFwiJ1wiXSByZWdleFJlcGxhY2UgW1wiLFwiLCBcIixcXG5cIl0pO1xuKi9cblxuZnVuY3Rpb24gc3FmKGhsanMpIHtcbiAgLy8gSW4gU1FGLCBhIGxvY2FsIHZhcmlhYmxlIHN0YXJ0cyB3aXRoIF9cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvXFxiXytbYS16QS1aXVxcdyovXG4gIH07XG5cbiAgLy8gSW4gU1FGLCBhIGZ1bmN0aW9uIHNob3VsZCBmaXQgbXlUYWdfZm5jX215RnVuY3Rpb24gcGF0dGVyblxuICAvLyBodHRwczovL2NvbW11bml0eS5iaXN0dWRpby5jb20vd2lraS9GdW5jdGlvbnNfTGlicmFyeV8oQXJtYV8zKSNBZGRpbmdfYV9GdW5jdGlvblxuICBjb25zdCBGVU5DVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IC9bYS16QS1aXVthLXpBLVpfMC05XSpfZm5jX1thLXpBLVpfMC05XSsvXG4gIH07XG5cbiAgLy8gSW4gU1FGIHN0cmluZ3MsIHF1b3RlcyBtYXRjaGluZyB0aGUgc3RhcnQgYXJlIGVzY2FwZWQgYnkgYWRkaW5nIGEgY29uc2VjdXRpdmUuXG4gIC8vIEV4YW1wbGUgb2Ygc2luZ2xlIGVzY2FwZWQgcXVvdGVzOiBcIiBcIlwiIFwiIGFuZCAgJyAnJyAnLlxuICBjb25zdCBTVFJJTkdTID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcIicsXG4gICAgICAgIGVuZDogJ1wiJyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1wiXCInLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcJycsXG4gICAgICAgIGVuZDogJ1xcJycsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXCdcXCcnLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgICdicmVhaycsXG4gICAgJ2JyZWFrV2l0aCcsXG4gICAgJ2JyZWFrT3V0JyxcbiAgICAnYnJlYWtUbycsXG4gICAgJ2Nhc2UnLFxuICAgICdjYXRjaCcsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAnY29udGludWVXaXRoJyxcbiAgICAnZGVmYXVsdCcsXG4gICAgJ2RvJyxcbiAgICAnZWxzZScsXG4gICAgJ2V4aXQnLFxuICAgICdleGl0V2l0aCcsXG4gICAgJ2ZvcicsXG4gICAgJ2ZvckVhY2gnLFxuICAgICdmcm9tJyxcbiAgICAnaWYnLFxuICAgICdsb2NhbCcsXG4gICAgJ3ByaXZhdGUnLFxuICAgICdzd2l0Y2gnLFxuICAgICdzdGVwJyxcbiAgICAndGhlbicsXG4gICAgJ3Rocm93JyxcbiAgICAndG8nLFxuICAgICd0cnknLFxuICAgICd3YWl0VW50aWwnLFxuICAgICd3aGlsZScsXG4gICAgJ3dpdGgnXG4gIF07XG5cbiAgY29uc3QgTElURVJBTCA9IFtcbiAgICAnYmx1Zm9yJyxcbiAgICAnY2l2aWxpYW4nLFxuICAgICdjb25maWdOdWxsJyxcbiAgICAnY29udHJvbE51bGwnLFxuICAgICdkaXNwbGF5TnVsbCcsXG4gICAgJ2RpYXJ5UmVjb3JkTnVsbCcsXG4gICAgJ2Vhc3QnLFxuICAgICdlbmRsJyxcbiAgICAnZmFsc2UnLFxuICAgICdncnBOdWxsJyxcbiAgICAnaW5kZXBlbmRlbnQnLFxuICAgICdsaW5lQnJlYWsnLFxuICAgICdsb2NhdGlvbk51bGwnLFxuICAgICduaWwnLFxuICAgICdvYmpOdWxsJyxcbiAgICAnb3Bmb3InLFxuICAgICdwaScsXG4gICAgJ3Jlc2lzdGFuY2UnLFxuICAgICdzY3JpcHROdWxsJyxcbiAgICAnc2lkZUFtYmllbnRMaWZlJyxcbiAgICAnc2lkZUVtcHR5JyxcbiAgICAnc2lkZUVuZW15JyxcbiAgICAnc2lkZUZyaWVuZGx5JyxcbiAgICAnc2lkZUxvZ2ljJyxcbiAgICAnc2lkZVVua25vd24nLFxuICAgICd0YXNrTnVsbCcsXG4gICAgJ3RlYW1NZW1iZXJOdWxsJyxcbiAgICAndHJ1ZScsXG4gICAgJ3dlc3QnXG4gIF07XG5cbiAgY29uc3QgQlVJTFRfSU4gPSBbXG4gICAgJ2FicycsXG4gICAgJ2FjY1RpbWUnLFxuICAgICdhY29zJyxcbiAgICAnYWN0aW9uJyxcbiAgICAnYWN0aW9uSURzJyxcbiAgICAnYWN0aW9uS2V5cycsXG4gICAgJ2FjdGlvbktleXNFeCcsXG4gICAgJ2FjdGlvbktleXNJbWFnZXMnLFxuICAgICdhY3Rpb25LZXlzTmFtZXMnLFxuICAgICdhY3Rpb25LZXlzTmFtZXNBcnJheScsXG4gICAgJ2FjdGlvbk5hbWUnLFxuICAgICdhY3Rpb25QYXJhbXMnLFxuICAgICdhY3RpdmF0ZUFkZG9ucycsXG4gICAgJ2FjdGl2YXRlZEFkZG9ucycsXG4gICAgJ2FjdGl2YXRlS2V5JyxcbiAgICAnYWN0aXZlVGl0bGVFZmZlY3RQYXJhbXMnLFxuICAgICdhZGQzREVOQ29ubmVjdGlvbicsXG4gICAgJ2FkZDNERU5FdmVudEhhbmRsZXInLFxuICAgICdhZGQzREVOTGF5ZXInLFxuICAgICdhZGRBY3Rpb24nLFxuICAgICdhZGRCYWNrcGFjaycsXG4gICAgJ2FkZEJhY2twYWNrQ2FyZ28nLFxuICAgICdhZGRCYWNrcGFja0NhcmdvR2xvYmFsJyxcbiAgICAnYWRkQmFja3BhY2tHbG9iYWwnLFxuICAgICdhZGRCaW5vY3VsYXJJdGVtJyxcbiAgICAnYWRkQ2FtU2hha2UnLFxuICAgICdhZGRDdXJhdG9yQWRkb25zJyxcbiAgICAnYWRkQ3VyYXRvckNhbWVyYUFyZWEnLFxuICAgICdhZGRDdXJhdG9yRWRpdGFibGVPYmplY3RzJyxcbiAgICAnYWRkQ3VyYXRvckVkaXRpbmdBcmVhJyxcbiAgICAnYWRkQ3VyYXRvclBvaW50cycsXG4gICAgJ2FkZEVkaXRvck9iamVjdCcsXG4gICAgJ2FkZEV2ZW50SGFuZGxlcicsXG4gICAgJ2FkZEZvcmNlJyxcbiAgICAnYWRkRm9yY2VHZW5lcmF0b3JSVEQnLFxuICAgICdhZGRHb2dnbGVzJyxcbiAgICAnYWRkR3JvdXBJY29uJyxcbiAgICAnYWRkSGFuZGd1bkl0ZW0nLFxuICAgICdhZGRIZWFkZ2VhcicsXG4gICAgJ2FkZEl0ZW0nLFxuICAgICdhZGRJdGVtQ2FyZ28nLFxuICAgICdhZGRJdGVtQ2FyZ29HbG9iYWwnLFxuICAgICdhZGRJdGVtUG9vbCcsXG4gICAgJ2FkZEl0ZW1Ub0JhY2twYWNrJyxcbiAgICAnYWRkSXRlbVRvVW5pZm9ybScsXG4gICAgJ2FkZEl0ZW1Ub1Zlc3QnLFxuICAgICdhZGRMaXZlU3RhdHMnLFxuICAgICdhZGRNYWdhemluZScsXG4gICAgJ2FkZE1hZ2F6aW5lQW1tb0NhcmdvJyxcbiAgICAnYWRkTWFnYXppbmVDYXJnbycsXG4gICAgJ2FkZE1hZ2F6aW5lQ2FyZ29HbG9iYWwnLFxuICAgICdhZGRNYWdhemluZUdsb2JhbCcsXG4gICAgJ2FkZE1hZ2F6aW5lUG9vbCcsXG4gICAgJ2FkZE1hZ2F6aW5lcycsXG4gICAgJ2FkZE1hZ2F6aW5lVHVycmV0JyxcbiAgICAnYWRkTWVudScsXG4gICAgJ2FkZE1lbnVJdGVtJyxcbiAgICAnYWRkTWlzc2lvbkV2ZW50SGFuZGxlcicsXG4gICAgJ2FkZE1QRXZlbnRIYW5kbGVyJyxcbiAgICAnYWRkTXVzaWNFdmVudEhhbmRsZXInLFxuICAgICdhZGRvbkZpbGVzJyxcbiAgICAnYWRkT3duZWRNaW5lJyxcbiAgICAnYWRkUGxheWVyU2NvcmVzJyxcbiAgICAnYWRkUHJpbWFyeVdlYXBvbkl0ZW0nLFxuICAgICdhZGRQdWJsaWNWYXJpYWJsZUV2ZW50SGFuZGxlcicsXG4gICAgJ2FkZFJhdGluZycsXG4gICAgJ2FkZFJlc291cmNlcycsXG4gICAgJ2FkZFNjb3JlJyxcbiAgICAnYWRkU2NvcmVTaWRlJyxcbiAgICAnYWRkU2Vjb25kYXJ5V2VhcG9uSXRlbScsXG4gICAgJ2FkZFN3aXRjaGFibGVVbml0JyxcbiAgICAnYWRkVGVhbU1lbWJlcicsXG4gICAgJ2FkZFRvUmVtYWluc0NvbGxlY3RvcicsXG4gICAgJ2FkZFRvcnF1ZScsXG4gICAgJ2FkZFVuaWZvcm0nLFxuICAgICdhZGRVc2VyQWN0aW9uRXZlbnRIYW5kbGVyJyxcbiAgICAnYWRkVmVoaWNsZScsXG4gICAgJ2FkZFZlc3QnLFxuICAgICdhZGRXYXlwb2ludCcsXG4gICAgJ2FkZFdlYXBvbicsXG4gICAgJ2FkZFdlYXBvbkNhcmdvJyxcbiAgICAnYWRkV2VhcG9uQ2FyZ29HbG9iYWwnLFxuICAgICdhZGRXZWFwb25HbG9iYWwnLFxuICAgICdhZGRXZWFwb25JdGVtJyxcbiAgICAnYWRkV2VhcG9uUG9vbCcsXG4gICAgJ2FkZFdlYXBvblR1cnJldCcsXG4gICAgJ2FkZFdlYXBvbldpdGhBdHRhY2htZW50c0NhcmdvJyxcbiAgICAnYWRkV2VhcG9uV2l0aEF0dGFjaG1lbnRzQ2FyZ29HbG9iYWwnLFxuICAgICdhZG1pbicsXG4gICAgJ2FnZW50JyxcbiAgICAnYWdlbnRzJyxcbiAgICAnQUdMVG9BU0wnLFxuICAgICdhaW1lZEF0VGFyZ2V0JyxcbiAgICAnYWltUG9zJyxcbiAgICAnYWlyRGVuc2l0eUN1cnZlUlREJyxcbiAgICAnYWlyRGVuc2l0eVJURCcsXG4gICAgJ2FpcnBsYW5lVGhyb3R0bGUnLFxuICAgICdhaXJwb3J0U2lkZScsXG4gICAgJ0FJU0ZpbmlzaEhlYWwnLFxuICAgICdhbGl2ZScsXG4gICAgJ2FsbDNERU5FbnRpdGllcycsXG4gICAgJ2FsbEFjdGl2ZVRpdGxlRWZmZWN0cycsXG4gICAgJ2FsbEFkZG9uc0luZm8nLFxuICAgICdhbGxBaXJwb3J0cycsXG4gICAgJ2FsbENvbnRyb2xzJyxcbiAgICAnYWxsQ3VyYXRvcnMnLFxuICAgICdhbGxDdXRMYXllcnMnLFxuICAgICdhbGxEZWFkJyxcbiAgICAnYWxsRGVhZE1lbicsXG4gICAgJ2FsbERpYXJ5UmVjb3JkcycsXG4gICAgJ2FsbERpYXJ5U3ViamVjdHMnLFxuICAgICdhbGxEaXNwbGF5cycsXG4gICAgJ2FsbEVudjNEU291bmRTb3VyY2VzJyxcbiAgICAnYWxsR3JvdXBzJyxcbiAgICAnYWxsTE9EcycsXG4gICAgJ2FsbE1hcE1hcmtlcnMnLFxuICAgICdhbGxNaW5lcycsXG4gICAgJ2FsbE1pc3Npb25PYmplY3RzJyxcbiAgICAnYWxsT2JqZWN0cycsXG4gICAgJ2FsbG93M0RNb2RlJyxcbiAgICAnYWxsb3dDcmV3SW5JbW1vYmlsZScsXG4gICAgJ2FsbG93Q3VyYXRvckxvZ2ljSWdub3JlQXJlYXMnLFxuICAgICdhbGxvd0RhbWFnZScsXG4gICAgJ2FsbG93RGFtbWFnZScsXG4gICAgJ2FsbG93ZWRTZXJ2aWNlJyxcbiAgICAnYWxsb3dGaWxlT3BlcmF0aW9ucycsXG4gICAgJ2FsbG93RmxlZWluZycsXG4gICAgJ2FsbG93R2V0SW4nLFxuICAgICdhbGxvd1NlcnZpY2UnLFxuICAgICdhbGxvd1NwcmludCcsXG4gICAgJ2FsbFBsYXllcnMnLFxuICAgICdhbGxTaW1wbGVPYmplY3RzJyxcbiAgICAnYWxsU2l0ZXMnLFxuICAgICdhbGxUdXJyZXRzJyxcbiAgICAnYWxsVW5pdHMnLFxuICAgICdhbGxVbml0c1VBVicsXG4gICAgJ2FsbFVzZXJzJyxcbiAgICAnYWxsVmFyaWFibGVzJyxcbiAgICAnYW1iaWVudFRlbXBlcmF0dXJlJyxcbiAgICAnYW1tbycsXG4gICAgJ2FtbW9PblB5bG9uJyxcbiAgICAnYW5kJyxcbiAgICAnYW5pbWF0ZScsXG4gICAgJ2FuaW1hdGVCYXknLFxuICAgICdhbmltYXRlRG9vcicsXG4gICAgJ2FuaW1hdGVQeWxvbicsXG4gICAgJ2FuaW1hdGVTb3VyY2UnLFxuICAgICdhbmltYXRpb25OYW1lcycsXG4gICAgJ2FuaW1hdGlvblBoYXNlJyxcbiAgICAnYW5pbWF0aW9uU291cmNlUGhhc2UnLFxuICAgICdhbmltYXRpb25TdGF0ZScsXG4gICAgJ2FwZXJ0dXJlUGFyYW1zJyxcbiAgICAnYXBwZW5kJyxcbiAgICAnYXBwbHknLFxuICAgICdhcm1vcnlQb2ludHMnLFxuICAgICdhcnJheUludGVyc2VjdCcsXG4gICAgJ2FzaW4nLFxuICAgICdBU0xUb0FHTCcsXG4gICAgJ0FTTFRvQVRMJyxcbiAgICAnYXNzZXJ0JyxcbiAgICAnYXNzaWduQXNDYXJnbycsXG4gICAgJ2Fzc2lnbkFzQ2FyZ29JbmRleCcsXG4gICAgJ2Fzc2lnbkFzQ29tbWFuZGVyJyxcbiAgICAnYXNzaWduQXNEcml2ZXInLFxuICAgICdhc3NpZ25Bc0d1bm5lcicsXG4gICAgJ2Fzc2lnbkFzVHVycmV0JyxcbiAgICAnYXNzaWduQ3VyYXRvcicsXG4gICAgJ2Fzc2lnbmVkQ2FyZ28nLFxuICAgICdhc3NpZ25lZENvbW1hbmRlcicsXG4gICAgJ2Fzc2lnbmVkRHJpdmVyJyxcbiAgICAnYXNzaWduZWRHcm91cCcsXG4gICAgJ2Fzc2lnbmVkR3VubmVyJyxcbiAgICAnYXNzaWduZWRJdGVtcycsXG4gICAgJ2Fzc2lnbmVkVGFyZ2V0JyxcbiAgICAnYXNzaWduZWRUZWFtJyxcbiAgICAnYXNzaWduZWRWZWhpY2xlJyxcbiAgICAnYXNzaWduZWRWZWhpY2xlUm9sZScsXG4gICAgJ2Fzc2lnbmVkVmVoaWNsZXMnLFxuICAgICdhc3NpZ25JdGVtJyxcbiAgICAnYXNzaWduVGVhbScsXG4gICAgJ2Fzc2lnblRvQWlycG9ydCcsXG4gICAgJ2F0YW4nLFxuICAgICdhdGFuMicsXG4gICAgJ2F0ZycsXG4gICAgJ0FUTFRvQVNMJyxcbiAgICAnYXR0YWNoZWRPYmplY3QnLFxuICAgICdhdHRhY2hlZE9iamVjdHMnLFxuICAgICdhdHRhY2hlZFRvJyxcbiAgICAnYXR0YWNoT2JqZWN0JyxcbiAgICAnYXR0YWNoVG8nLFxuICAgICdhdHRhY2tFbmFibGVkJyxcbiAgICAnYXdha2UnLFxuICAgICdiYWNrcGFjaycsXG4gICAgJ2JhY2twYWNrQ2FyZ28nLFxuICAgICdiYWNrcGFja0NvbnRhaW5lcicsXG4gICAgJ2JhY2twYWNrSXRlbXMnLFxuICAgICdiYWNrcGFja01hZ2F6aW5lcycsXG4gICAgJ2JhY2twYWNrU3BhY2VGb3InLFxuICAgICdiZWhhdmlvdXInLFxuICAgICdiZW5jaG1hcmsnLFxuICAgICdiZXppZXJJbnRlcnBvbGF0aW9uJyxcbiAgICAnYmlub2N1bGFyJyxcbiAgICAnYmlub2N1bGFySXRlbXMnLFxuICAgICdiaW5vY3VsYXJNYWdhemluZScsXG4gICAgJ2JvdW5kaW5nQm94JyxcbiAgICAnYm91bmRpbmdCb3hSZWFsJyxcbiAgICAnYm91bmRpbmdDZW50ZXInLFxuICAgICdicmFrZXNEaXNhYmxlZCcsXG4gICAgJ2JyaWVmaW5nTmFtZScsXG4gICAgJ2J1aWxkaW5nRXhpdCcsXG4gICAgJ2J1aWxkaW5nUG9zJyxcbiAgICAnYnVsZG96ZXJfRW5hYmxlUm9hZERpYWcnLFxuICAgICdidWxkb3plcl9Jc0VuYWJsZWRSb2FkRGlhZycsXG4gICAgJ2J1bGRvemVyX0xvYWROZXdSb2FkcycsXG4gICAgJ2J1bGRvemVyX3JlbG9hZE9wZXJNYXAnLFxuICAgICdidXR0b25BY3Rpb24nLFxuICAgICdidXR0b25TZXRBY3Rpb24nLFxuICAgICdjYWRldE1vZGUnLFxuICAgICdjYWxjdWxhdGVQYXRoJyxcbiAgICAnY2FsY3VsYXRlUGxheWVyVmlzaWJpbGl0eUJ5RnJpZW5kbHknLFxuICAgICdjYWxsJyxcbiAgICAnY2FsbEV4dGVuc2lvbicsXG4gICAgJ2NhbUNvbW1hbmQnLFxuICAgICdjYW1Db21taXQnLFxuICAgICdjYW1Db21taXRQcmVwYXJlZCcsXG4gICAgJ2NhbUNvbW1pdHRlZCcsXG4gICAgJ2NhbUNvbnN0dWN0aW9uU2V0UGFyYW1zJyxcbiAgICAnY2FtQ3JlYXRlJyxcbiAgICAnY2FtRGVzdHJveScsXG4gICAgJ2NhbWVyYUVmZmVjdCcsXG4gICAgJ2NhbWVyYUVmZmVjdEVuYWJsZUhVRCcsXG4gICAgJ2NhbWVyYUludGVyZXN0JyxcbiAgICAnY2FtZXJhT24nLFxuICAgICdjYW1lcmFWaWV3JyxcbiAgICAnY2FtcGFpZ25Db25maWdGaWxlJyxcbiAgICAnY2FtUHJlbG9hZCcsXG4gICAgJ2NhbVByZWxvYWRlZCcsXG4gICAgJ2NhbVByZXBhcmVCYW5rJyxcbiAgICAnY2FtUHJlcGFyZURpcicsXG4gICAgJ2NhbVByZXBhcmVEaXZlJyxcbiAgICAnY2FtUHJlcGFyZUZvY3VzJyxcbiAgICAnY2FtUHJlcGFyZUZvdicsXG4gICAgJ2NhbVByZXBhcmVGb3ZSYW5nZScsXG4gICAgJ2NhbVByZXBhcmVQb3MnLFxuICAgICdjYW1QcmVwYXJlUmVsUG9zJyxcbiAgICAnY2FtUHJlcGFyZVRhcmdldCcsXG4gICAgJ2NhbVNldEJhbmsnLFxuICAgICdjYW1TZXREaXInLFxuICAgICdjYW1TZXREaXZlJyxcbiAgICAnY2FtU2V0Rm9jdXMnLFxuICAgICdjYW1TZXRGb3YnLFxuICAgICdjYW1TZXRGb3ZSYW5nZScsXG4gICAgJ2NhbVNldFBvcycsXG4gICAgJ2NhbVNldFJlbFBvcycsXG4gICAgJ2NhbVNldFRhcmdldCcsXG4gICAgJ2NhbVRhcmdldCcsXG4gICAgJ2NhbVVzZU5WRycsXG4gICAgJ2NhbkFkZCcsXG4gICAgJ2NhbkFkZEl0ZW1Ub0JhY2twYWNrJyxcbiAgICAnY2FuQWRkSXRlbVRvVW5pZm9ybScsXG4gICAgJ2NhbkFkZEl0ZW1Ub1Zlc3QnLFxuICAgICdjYW5jZWxTaW1wbGVUYXNrRGVzdGluYXRpb24nLFxuICAgICdjYW5EZXBsb3lXZWFwb24nLFxuICAgICdjYW5GaXJlJyxcbiAgICAnY2FuTW92ZScsXG4gICAgJ2NhblNsaW5nTG9hZCcsXG4gICAgJ2NhblN0YW5kJyxcbiAgICAnY2FuU3VzcGVuZCcsXG4gICAgJ2NhblRyaWdnZXJEeW5hbWljU2ltdWxhdGlvbicsXG4gICAgJ2NhblVubG9hZEluQ29tYmF0JyxcbiAgICAnY2FuVmVoaWNsZUNhcmdvJyxcbiAgICAnY2FwdGl2ZScsXG4gICAgJ2NhcHRpdmVOdW0nLFxuICAgICdjYkNoZWNrZWQnLFxuICAgICdjYlNldENoZWNrZWQnLFxuICAgICdjZWlsJyxcbiAgICAnY2hhbm5lbEVuYWJsZWQnLFxuICAgICdjaGVhdHNFbmFibGVkJyxcbiAgICAnY2hlY2tBSUZlYXR1cmUnLFxuICAgICdjaGVja1Zpc2liaWxpdHknLFxuICAgICdjbGFzc05hbWUnLFxuICAgICdjbGVhcjNERU5BdHRyaWJ1dGUnLFxuICAgICdjbGVhcjNERU5JbnZlbnRvcnknLFxuICAgICdjbGVhckFsbEl0ZW1zRnJvbUJhY2twYWNrJyxcbiAgICAnY2xlYXJCYWNrcGFja0NhcmdvJyxcbiAgICAnY2xlYXJCYWNrcGFja0NhcmdvR2xvYmFsJyxcbiAgICAnY2xlYXJGb3JjZXNSVEQnLFxuICAgICdjbGVhckdyb3VwSWNvbnMnLFxuICAgICdjbGVhckl0ZW1DYXJnbycsXG4gICAgJ2NsZWFySXRlbUNhcmdvR2xvYmFsJyxcbiAgICAnY2xlYXJJdGVtUG9vbCcsXG4gICAgJ2NsZWFyTWFnYXppbmVDYXJnbycsXG4gICAgJ2NsZWFyTWFnYXppbmVDYXJnb0dsb2JhbCcsXG4gICAgJ2NsZWFyTWFnYXppbmVQb29sJyxcbiAgICAnY2xlYXJPdmVybGF5JyxcbiAgICAnY2xlYXJSYWRpbycsXG4gICAgJ2NsZWFyV2VhcG9uQ2FyZ28nLFxuICAgICdjbGVhcldlYXBvbkNhcmdvR2xvYmFsJyxcbiAgICAnY2xlYXJXZWFwb25Qb29sJyxcbiAgICAnY2xpZW50T3duZXInLFxuICAgICdjbG9zZURpYWxvZycsXG4gICAgJ2Nsb3NlRGlzcGxheScsXG4gICAgJ2Nsb3NlT3ZlcmxheScsXG4gICAgJ2NvbGxhcHNlT2JqZWN0VHJlZScsXG4gICAgJ2NvbGxlY3QzREVOSGlzdG9yeScsXG4gICAgJ2NvbGxlY3RpdmVSVEQnLFxuICAgICdjb2xsaXNpb25EaXNhYmxlZFdpdGgnLFxuICAgICdjb21iYXRCZWhhdmlvdXInLFxuICAgICdjb21iYXRNb2RlJyxcbiAgICAnY29tbWFuZEFydGlsbGVyeUZpcmUnLFxuICAgICdjb21tYW5kQ2hhdCcsXG4gICAgJ2NvbW1hbmRlcicsXG4gICAgJ2NvbW1hbmRGaXJlJyxcbiAgICAnY29tbWFuZEZvbGxvdycsXG4gICAgJ2NvbW1hbmRGU00nLFxuICAgICdjb21tYW5kR2V0T3V0JyxcbiAgICAnY29tbWFuZGluZ01lbnUnLFxuICAgICdjb21tYW5kTW92ZScsXG4gICAgJ2NvbW1hbmRSYWRpbycsXG4gICAgJ2NvbW1hbmRTdG9wJyxcbiAgICAnY29tbWFuZFN1cHByZXNzaXZlRmlyZScsXG4gICAgJ2NvbW1hbmRUYXJnZXQnLFxuICAgICdjb21tYW5kV2F0Y2gnLFxuICAgICdjb21tZW50JyxcbiAgICAnY29tbWl0T3ZlcmxheScsXG4gICAgJ2NvbXBhdGlibGVJdGVtcycsXG4gICAgJ2NvbXBhdGlibGVNYWdhemluZXMnLFxuICAgICdjb21waWxlJyxcbiAgICAnY29tcGlsZUZpbmFsJyxcbiAgICAnY29tcGlsZVNjcmlwdCcsXG4gICAgJ2NvbXBsZXRlZEZTTScsXG4gICAgJ2NvbXBvc2VUZXh0JyxcbiAgICAnY29uZmlnQ2xhc3NlcycsXG4gICAgJ2NvbmZpZ0ZpbGUnLFxuICAgICdjb25maWdIaWVyYXJjaHknLFxuICAgICdjb25maWdOYW1lJyxcbiAgICAnY29uZmlnT2YnLFxuICAgICdjb25maWdQcm9wZXJ0aWVzJyxcbiAgICAnY29uZmlnU291cmNlQWRkb25MaXN0JyxcbiAgICAnY29uZmlnU291cmNlTW9kJyxcbiAgICAnY29uZmlnU291cmNlTW9kTGlzdCcsXG4gICAgJ2NvbmZpcm1TZW5zb3JUYXJnZXQnLFxuICAgICdjb25uZWN0VGVybWluYWxUb1VBVicsXG4gICAgJ2Nvbm5lY3RUb1NlcnZlcicsXG4gICAgJ2NvbnRyb2xzR3JvdXBDdHJsJyxcbiAgICAnY29udmVyc2F0aW9uRGlzYWJsZWQnLFxuICAgICdjb3B5RnJvbUNsaXBib2FyZCcsXG4gICAgJ2NvcHlUb0NsaXBib2FyZCcsXG4gICAgJ2NvcHlXYXlwb2ludHMnLFxuICAgICdjb3MnLFxuICAgICdjb3VudCcsXG4gICAgJ2NvdW50RW5lbXknLFxuICAgICdjb3VudEZyaWVuZGx5JyxcbiAgICAnY291bnRTaWRlJyxcbiAgICAnY291bnRUeXBlJyxcbiAgICAnY291bnRVbmtub3duJyxcbiAgICAnY3JlYXRlM0RFTkNvbXBvc2l0aW9uJyxcbiAgICAnY3JlYXRlM0RFTkVudGl0eScsXG4gICAgJ2NyZWF0ZUFnZW50JyxcbiAgICAnY3JlYXRlQ2VudGVyJyxcbiAgICAnY3JlYXRlRGlhbG9nJyxcbiAgICAnY3JlYXRlRGlhcnlMaW5rJyxcbiAgICAnY3JlYXRlRGlhcnlSZWNvcmQnLFxuICAgICdjcmVhdGVEaWFyeVN1YmplY3QnLFxuICAgICdjcmVhdGVEaXNwbGF5JyxcbiAgICAnY3JlYXRlR2VhckRpYWxvZycsXG4gICAgJ2NyZWF0ZUdyb3VwJyxcbiAgICAnY3JlYXRlR3VhcmRlZFBvaW50JyxcbiAgICAnY3JlYXRlSGFzaE1hcCcsXG4gICAgJ2NyZWF0ZUhhc2hNYXBGcm9tQXJyYXknLFxuICAgICdjcmVhdGVMb2NhdGlvbicsXG4gICAgJ2NyZWF0ZU1hcmtlcicsXG4gICAgJ2NyZWF0ZU1hcmtlckxvY2FsJyxcbiAgICAnY3JlYXRlTWVudScsXG4gICAgJ2NyZWF0ZU1pbmUnLFxuICAgICdjcmVhdGVNaXNzaW9uRGlzcGxheScsXG4gICAgJ2NyZWF0ZU1QQ2FtcGFpZ25EaXNwbGF5JyxcbiAgICAnY3JlYXRlU2ltcGxlT2JqZWN0JyxcbiAgICAnY3JlYXRlU2ltcGxlVGFzaycsXG4gICAgJ2NyZWF0ZVNpdGUnLFxuICAgICdjcmVhdGVTb3VuZFNvdXJjZScsXG4gICAgJ2NyZWF0ZVRhc2snLFxuICAgICdjcmVhdGVUZWFtJyxcbiAgICAnY3JlYXRlVHJpZ2dlcicsXG4gICAgJ2NyZWF0ZVVuaXQnLFxuICAgICdjcmVhdGVWZWhpY2xlJyxcbiAgICAnY3JlYXRlVmVoaWNsZUNyZXcnLFxuICAgICdjcmVhdGVWZWhpY2xlTG9jYWwnLFxuICAgICdjcmV3JyxcbiAgICAnY3RBZGRIZWFkZXInLFxuICAgICdjdEFkZFJvdycsXG4gICAgJ2N0Q2xlYXInLFxuICAgICdjdEN1clNlbCcsXG4gICAgJ2N0RGF0YScsXG4gICAgJ2N0RmluZEhlYWRlclJvd3MnLFxuICAgICdjdEZpbmRSb3dIZWFkZXInLFxuICAgICdjdEhlYWRlckNvbnRyb2xzJyxcbiAgICAnY3RIZWFkZXJDb3VudCcsXG4gICAgJ2N0UmVtb3ZlSGVhZGVycycsXG4gICAgJ2N0UmVtb3ZlUm93cycsXG4gICAgJ2N0cmxBY3RpdmF0ZScsXG4gICAgJ2N0cmxBZGRFdmVudEhhbmRsZXInLFxuICAgICdjdHJsQW5nbGUnLFxuICAgICdjdHJsQW5pbWF0ZU1vZGVsJyxcbiAgICAnY3RybEFuaW1hdGlvblBoYXNlTW9kZWwnLFxuICAgICdjdHJsQXQnLFxuICAgICdjdHJsQXV0b1Njcm9sbERlbGF5JyxcbiAgICAnY3RybEF1dG9TY3JvbGxSZXdpbmQnLFxuICAgICdjdHJsQXV0b1Njcm9sbFNwZWVkJyxcbiAgICAnY3RybEJhY2tncm91bmRDb2xvcicsXG4gICAgJ2N0cmxDaGVja2VkJyxcbiAgICAnY3RybENsYXNzTmFtZScsXG4gICAgJ2N0cmxDb21taXQnLFxuICAgICdjdHJsQ29tbWl0dGVkJyxcbiAgICAnY3RybENyZWF0ZScsXG4gICAgJ2N0cmxEZWxldGUnLFxuICAgICdjdHJsRW5hYmxlJyxcbiAgICAnY3RybEVuYWJsZWQnLFxuICAgICdjdHJsRmFkZScsXG4gICAgJ2N0cmxGb250SGVpZ2h0JyxcbiAgICAnY3RybEZvcmVncm91bmRDb2xvcicsXG4gICAgJ2N0cmxIVE1MTG9hZGVkJyxcbiAgICAnY3RybElEQycsXG4gICAgJ2N0cmxJREQnLFxuICAgICdjdHJsTWFwQW5pbUFkZCcsXG4gICAgJ2N0cmxNYXBBbmltQ2xlYXInLFxuICAgICdjdHJsTWFwQW5pbUNvbW1pdCcsXG4gICAgJ2N0cmxNYXBBbmltRG9uZScsXG4gICAgJ2N0cmxNYXBDdXJzb3InLFxuICAgICdjdHJsTWFwTW91c2VPdmVyJyxcbiAgICAnY3RybE1hcFBvc2l0aW9uJyxcbiAgICAnY3RybE1hcFNjYWxlJyxcbiAgICAnY3RybE1hcFNjcmVlblRvV29ybGQnLFxuICAgICdjdHJsTWFwU2V0UG9zaXRpb24nLFxuICAgICdjdHJsTWFwV29ybGRUb1NjcmVlbicsXG4gICAgJ2N0cmxNb2RlbCcsXG4gICAgJ2N0cmxNb2RlbERpckFuZFVwJyxcbiAgICAnY3RybE1vZGVsU2NhbGUnLFxuICAgICdjdHJsTW91c2VQb3NpdGlvbicsXG4gICAgJ2N0cmxQYXJlbnQnLFxuICAgICdjdHJsUGFyZW50Q29udHJvbHNHcm91cCcsXG4gICAgJ2N0cmxQb3NpdGlvbicsXG4gICAgJ2N0cmxSZW1vdmVBbGxFdmVudEhhbmRsZXJzJyxcbiAgICAnY3RybFJlbW92ZUV2ZW50SGFuZGxlcicsXG4gICAgJ2N0cmxTY2FsZScsXG4gICAgJ2N0cmxTY3JvbGxWYWx1ZXMnLFxuICAgICdjdHJsU2V0QWN0aXZlQ29sb3InLFxuICAgICdjdHJsU2V0QW5nbGUnLFxuICAgICdjdHJsU2V0QXV0b1Njcm9sbERlbGF5JyxcbiAgICAnY3RybFNldEF1dG9TY3JvbGxSZXdpbmQnLFxuICAgICdjdHJsU2V0QXV0b1Njcm9sbFNwZWVkJyxcbiAgICAnY3RybFNldEJhY2tncm91bmRDb2xvcicsXG4gICAgJ2N0cmxTZXRDaGVja2VkJyxcbiAgICAnY3RybFNldERpc2FibGVkQ29sb3InLFxuICAgICdjdHJsU2V0RXZlbnRIYW5kbGVyJyxcbiAgICAnY3RybFNldEZhZGUnLFxuICAgICdjdHJsU2V0Rm9jdXMnLFxuICAgICdjdHJsU2V0Rm9udCcsXG4gICAgJ2N0cmxTZXRGb250SDEnLFxuICAgICdjdHJsU2V0Rm9udEgxQicsXG4gICAgJ2N0cmxTZXRGb250SDInLFxuICAgICdjdHJsU2V0Rm9udEgyQicsXG4gICAgJ2N0cmxTZXRGb250SDMnLFxuICAgICdjdHJsU2V0Rm9udEgzQicsXG4gICAgJ2N0cmxTZXRGb250SDQnLFxuICAgICdjdHJsU2V0Rm9udEg0QicsXG4gICAgJ2N0cmxTZXRGb250SDUnLFxuICAgICdjdHJsU2V0Rm9udEg1QicsXG4gICAgJ2N0cmxTZXRGb250SDYnLFxuICAgICdjdHJsU2V0Rm9udEg2QicsXG4gICAgJ2N0cmxTZXRGb250SGVpZ2h0JyxcbiAgICAnY3RybFNldEZvbnRIZWlnaHRIMScsXG4gICAgJ2N0cmxTZXRGb250SGVpZ2h0SDInLFxuICAgICdjdHJsU2V0Rm9udEhlaWdodEgzJyxcbiAgICAnY3RybFNldEZvbnRIZWlnaHRINCcsXG4gICAgJ2N0cmxTZXRGb250SGVpZ2h0SDUnLFxuICAgICdjdHJsU2V0Rm9udEhlaWdodEg2JyxcbiAgICAnY3RybFNldEZvbnRIZWlnaHRTZWNvbmRhcnknLFxuICAgICdjdHJsU2V0Rm9udFAnLFxuICAgICdjdHJsU2V0Rm9udFBCJyxcbiAgICAnY3RybFNldEZvbnRTZWNvbmRhcnknLFxuICAgICdjdHJsU2V0Rm9yZWdyb3VuZENvbG9yJyxcbiAgICAnY3RybFNldE1vZGVsJyxcbiAgICAnY3RybFNldE1vZGVsRGlyQW5kVXAnLFxuICAgICdjdHJsU2V0TW9kZWxTY2FsZScsXG4gICAgJ2N0cmxTZXRNb3VzZVBvc2l0aW9uJyxcbiAgICAnY3RybFNldFBpeGVsUHJlY2lzaW9uJyxcbiAgICAnY3RybFNldFBvc2l0aW9uJyxcbiAgICAnY3RybFNldFBvc2l0aW9uSCcsXG4gICAgJ2N0cmxTZXRQb3NpdGlvblcnLFxuICAgICdjdHJsU2V0UG9zaXRpb25YJyxcbiAgICAnY3RybFNldFBvc2l0aW9uWScsXG4gICAgJ2N0cmxTZXRTY2FsZScsXG4gICAgJ2N0cmxTZXRTY3JvbGxWYWx1ZXMnLFxuICAgICdjdHJsU2V0U2hhZG93JyxcbiAgICAnY3RybFNldFN0cnVjdHVyZWRUZXh0JyxcbiAgICAnY3RybFNldFRleHQnLFxuICAgICdjdHJsU2V0VGV4dENvbG9yJyxcbiAgICAnY3RybFNldFRleHRDb2xvclNlY29uZGFyeScsXG4gICAgJ2N0cmxTZXRUZXh0U2Vjb25kYXJ5JyxcbiAgICAnY3RybFNldFRleHRTZWxlY3Rpb24nLFxuICAgICdjdHJsU2V0VG9vbHRpcCcsXG4gICAgJ2N0cmxTZXRUb29sdGlwQ29sb3JCb3gnLFxuICAgICdjdHJsU2V0VG9vbHRpcENvbG9yU2hhZGUnLFxuICAgICdjdHJsU2V0VG9vbHRpcENvbG9yVGV4dCcsXG4gICAgJ2N0cmxTZXRUb29sdGlwTWF4V2lkdGgnLFxuICAgICdjdHJsU2V0VVJMJyxcbiAgICAnY3RybFNldFVSTE92ZXJsYXlNb2RlJyxcbiAgICAnY3RybFNoYWRvdycsXG4gICAgJ2N0cmxTaG93JyxcbiAgICAnY3RybFNob3duJyxcbiAgICAnY3RybFN0eWxlJyxcbiAgICAnY3RybFRleHQnLFxuICAgICdjdHJsVGV4dENvbG9yJyxcbiAgICAnY3RybFRleHRIZWlnaHQnLFxuICAgICdjdHJsVGV4dFNlY29uZGFyeScsXG4gICAgJ2N0cmxUZXh0U2VsZWN0aW9uJyxcbiAgICAnY3RybFRleHRXaWR0aCcsXG4gICAgJ2N0cmxUb29sdGlwJyxcbiAgICAnY3RybFR5cGUnLFxuICAgICdjdHJsVVJMJyxcbiAgICAnY3RybFVSTE92ZXJsYXlNb2RlJyxcbiAgICAnY3RybFZpc2libGUnLFxuICAgICdjdFJvd0NvbnRyb2xzJyxcbiAgICAnY3RSb3dDb3VudCcsXG4gICAgJ2N0U2V0Q3VyU2VsJyxcbiAgICAnY3RTZXREYXRhJyxcbiAgICAnY3RTZXRIZWFkZXJUZW1wbGF0ZScsXG4gICAgJ2N0U2V0Um93VGVtcGxhdGUnLFxuICAgICdjdFNldFZhbHVlJyxcbiAgICAnY3RWYWx1ZScsXG4gICAgJ2N1cmF0b3JBZGRvbnMnLFxuICAgICdjdXJhdG9yQ2FtZXJhJyxcbiAgICAnY3VyYXRvckNhbWVyYUFyZWEnLFxuICAgICdjdXJhdG9yQ2FtZXJhQXJlYUNlaWxpbmcnLFxuICAgICdjdXJhdG9yQ29lZicsXG4gICAgJ2N1cmF0b3JFZGl0YWJsZU9iamVjdHMnLFxuICAgICdjdXJhdG9yRWRpdGluZ0FyZWEnLFxuICAgICdjdXJhdG9yRWRpdGluZ0FyZWFUeXBlJyxcbiAgICAnY3VyYXRvck1vdXNlT3ZlcicsXG4gICAgJ2N1cmF0b3JQb2ludHMnLFxuICAgICdjdXJhdG9yUmVnaXN0ZXJlZE9iamVjdHMnLFxuICAgICdjdXJhdG9yU2VsZWN0ZWQnLFxuICAgICdjdXJhdG9yV2F5cG9pbnRDb3N0JyxcbiAgICAnY3VycmVudDNERU5PcGVyYXRpb24nLFxuICAgICdjdXJyZW50Q2hhbm5lbCcsXG4gICAgJ2N1cnJlbnRDb21tYW5kJyxcbiAgICAnY3VycmVudE1hZ2F6aW5lJyxcbiAgICAnY3VycmVudE1hZ2F6aW5lRGV0YWlsJyxcbiAgICAnY3VycmVudE1hZ2F6aW5lRGV0YWlsVHVycmV0JyxcbiAgICAnY3VycmVudE1hZ2F6aW5lVHVycmV0JyxcbiAgICAnY3VycmVudE11enpsZScsXG4gICAgJ2N1cnJlbnROYW1lc3BhY2UnLFxuICAgICdjdXJyZW50UGlsb3QnLFxuICAgICdjdXJyZW50VGFzaycsXG4gICAgJ2N1cnJlbnRUYXNrcycsXG4gICAgJ2N1cnJlbnRUaHJvd2FibGUnLFxuICAgICdjdXJyZW50VmlzaW9uTW9kZScsXG4gICAgJ2N1cnJlbnRXYXlwb2ludCcsXG4gICAgJ2N1cnJlbnRXZWFwb24nLFxuICAgICdjdXJyZW50V2VhcG9uTW9kZScsXG4gICAgJ2N1cnJlbnRXZWFwb25UdXJyZXQnLFxuICAgICdjdXJyZW50WmVyb2luZycsXG4gICAgJ2N1cnNvck9iamVjdCcsXG4gICAgJ2N1cnNvclRhcmdldCcsXG4gICAgJ2N1c3RvbUNoYXQnLFxuICAgICdjdXN0b21SYWRpbycsXG4gICAgJ2N1c3RvbVdheXBvaW50UG9zaXRpb24nLFxuICAgICdjdXRGYWRlT3V0JyxcbiAgICAnY3V0T2JqJyxcbiAgICAnY3V0UnNjJyxcbiAgICAnY3V0VGV4dCcsXG4gICAgJ2RhbWFnZScsXG4gICAgJ2RhdGUnLFxuICAgICdkYXRlVG9OdW1iZXInLFxuICAgICdkYXlUaW1lJyxcbiAgICAnZGVBY3RpdmF0ZUtleScsXG4gICAgJ2RlYnJpZWZpbmdUZXh0JyxcbiAgICAnZGVidWdGU00nLFxuICAgICdkZWJ1Z0xvZycsXG4gICAgJ2RlY2F5R3JhcGhWYWx1ZXMnLFxuICAgICdkZWcnLFxuICAgICdkZWxldGUzREVORW50aXRpZXMnLFxuICAgICdkZWxldGVBdCcsXG4gICAgJ2RlbGV0ZUNlbnRlcicsXG4gICAgJ2RlbGV0ZUNvbGxlY3Rpb24nLFxuICAgICdkZWxldGVFZGl0b3JPYmplY3QnLFxuICAgICdkZWxldGVHcm91cCcsXG4gICAgJ2RlbGV0ZUdyb3VwV2hlbkVtcHR5JyxcbiAgICAnZGVsZXRlSWRlbnRpdHknLFxuICAgICdkZWxldGVMb2NhdGlvbicsXG4gICAgJ2RlbGV0ZU1hcmtlcicsXG4gICAgJ2RlbGV0ZU1hcmtlckxvY2FsJyxcbiAgICAnZGVsZXRlUmFuZ2UnLFxuICAgICdkZWxldGVSZXNvdXJjZXMnLFxuICAgICdkZWxldGVTaXRlJyxcbiAgICAnZGVsZXRlU3RhdHVzJyxcbiAgICAnZGVsZXRlVGVhbScsXG4gICAgJ2RlbGV0ZVZlaGljbGUnLFxuICAgICdkZWxldGVWZWhpY2xlQ3JldycsXG4gICAgJ2RlbGV0ZVdheXBvaW50JyxcbiAgICAnZGV0YWNoJyxcbiAgICAnZGV0ZWN0ZWRNaW5lcycsXG4gICAgJ2RpYWdfYWN0aXZlTWlzc2lvbkZTTXMnLFxuICAgICdkaWFnX2FjdGl2ZVNjcmlwdHMnLFxuICAgICdkaWFnX2FjdGl2ZVNRRlNjcmlwdHMnLFxuICAgICdkaWFnX2FjdGl2ZVNRU1NjcmlwdHMnLFxuICAgICdkaWFnX2FsbE1pc3Npb25FdmVudEhhbmRsZXJzJyxcbiAgICAnZGlhZ19jYXB0dXJlRnJhbWUnLFxuICAgICdkaWFnX2NhcHR1cmVGcmFtZVRvRmlsZScsXG4gICAgJ2RpYWdfY2FwdHVyZVNsb3dGcmFtZScsXG4gICAgJ2RpYWdfY29kZVBlcmZvcm1hbmNlJyxcbiAgICAnZGlhZ19kZWx0YVRpbWUnLFxuICAgICdkaWFnX2RyYXdtb2RlJyxcbiAgICAnZGlhZ19kdW1wQ2FsbHRyYWNlVG9Mb2cnLFxuICAgICdkaWFnX2R1bXBTY3JpcHRBc3NlbWJseScsXG4gICAgJ2RpYWdfZHVtcFRlcnJhaW5TeW50aCcsXG4gICAgJ2RpYWdfZHluYW1pY1NpbXVsYXRpb25FbmQnLFxuICAgICdkaWFnX2VuYWJsZScsXG4gICAgJ2RpYWdfZW5hYmxlZCcsXG4gICAgJ2RpYWdfZXhwb3J0Q29uZmlnJyxcbiAgICAnZGlhZ19leHBvcnRUZXJyYWluU1ZHJyxcbiAgICAnZGlhZ19mcHMnLFxuICAgICdkaWFnX2Zwc21pbicsXG4gICAgJ2RpYWdfZnJhbWVubycsXG4gICAgJ2RpYWdfZ2V0VGVycmFpblNlZ21lbnRPZmZzZXQnLFxuICAgICdkaWFnX2xpZ2h0TmV3TG9hZCcsXG4gICAgJ2RpYWdfbGlzdCcsXG4gICAgJ2RpYWdfbG9jYWxpemVkJyxcbiAgICAnZGlhZ19sb2cnLFxuICAgICdkaWFnX2xvZ1Nsb3dGcmFtZScsXG4gICAgJ2RpYWdfbWVyZ2VDb25maWdGaWxlJyxcbiAgICAnZGlhZ19yZWNvcmRUdXJyZXRMaW1pdHMnLFxuICAgICdkaWFnX3Jlc2V0RlNNJyxcbiAgICAnZGlhZ19yZXNldHNoYXBlcycsXG4gICAgJ2RpYWdfc2NvcGUnLFxuICAgICdkaWFnX3NldExpZ2h0TmV3JyxcbiAgICAnZGlhZ19zdGFja3RyYWNlJyxcbiAgICAnZGlhZ190aWNrVGltZScsXG4gICAgJ2RpYWdfdG9nZ2xlJyxcbiAgICAnZGlhbG9nJyxcbiAgICAnZGlhcnlTdWJqZWN0RXhpc3RzJyxcbiAgICAnZGlkSklQJyxcbiAgICAnZGlkSklQT3duZXInLFxuICAgICdkaWZmaWN1bHR5JyxcbiAgICAnZGlmZmljdWx0eUVuYWJsZWQnLFxuICAgICdkaWZmaWN1bHR5RW5hYmxlZFJURCcsXG4gICAgJ2RpZmZpY3VsdHlPcHRpb24nLFxuICAgICdkaXJlY3Rpb24nLFxuICAgICdkaXJlY3Rpb25TdGFiaWxpemF0aW9uRW5hYmxlZCcsXG4gICAgJ2RpcmVjdFNheScsXG4gICAgJ2Rpc2FibGVBSScsXG4gICAgJ2Rpc2FibGVCcmFrZXMnLFxuICAgICdkaXNhYmxlQ29sbGlzaW9uV2l0aCcsXG4gICAgJ2Rpc2FibGVDb252ZXJzYXRpb24nLFxuICAgICdkaXNhYmxlRGVicmllZmluZ1N0YXRzJyxcbiAgICAnZGlzYWJsZU1hcEluZGljYXRvcnMnLFxuICAgICdkaXNhYmxlTlZHRXF1aXBtZW50JyxcbiAgICAnZGlzYWJsZVJlbW90ZVNlbnNvcnMnLFxuICAgICdkaXNhYmxlU2VyaWFsaXphdGlvbicsXG4gICAgJ2Rpc2FibGVUSUVxdWlwbWVudCcsXG4gICAgJ2Rpc2FibGVVQVZDb25uZWN0YWJpbGl0eScsXG4gICAgJ2Rpc2FibGVVc2VySW5wdXQnLFxuICAgICdkaXNwbGF5QWRkRXZlbnRIYW5kbGVyJyxcbiAgICAnZGlzcGxheUNoaWxkJyxcbiAgICAnZGlzcGxheUN0cmwnLFxuICAgICdkaXNwbGF5UGFyZW50JyxcbiAgICAnZGlzcGxheVJlbW92ZUFsbEV2ZW50SGFuZGxlcnMnLFxuICAgICdkaXNwbGF5UmVtb3ZlRXZlbnRIYW5kbGVyJyxcbiAgICAnZGlzcGxheVNldEV2ZW50SGFuZGxlcicsXG4gICAgJ2Rpc3BsYXlVbmlxdWVOYW1lJyxcbiAgICAnZGlzcGxheVVwZGF0ZScsXG4gICAgJ2Rpc3NvbHZlVGVhbScsXG4gICAgJ2Rpc3RhbmNlJyxcbiAgICAnZGlzdGFuY2UyRCcsXG4gICAgJ2Rpc3RhbmNlU3FyJyxcbiAgICAnZGlzdHJpYnV0aW9uUmVnaW9uJyxcbiAgICAnZG8zREVOQWN0aW9uJyxcbiAgICAnZG9BcnRpbGxlcnlGaXJlJyxcbiAgICAnZG9GaXJlJyxcbiAgICAnZG9Gb2xsb3cnLFxuICAgICdkb0ZTTScsXG4gICAgJ2RvR2V0T3V0JyxcbiAgICAnZG9Nb3ZlJyxcbiAgICAnZG9vclBoYXNlJyxcbiAgICAnZG9TdG9wJyxcbiAgICAnZG9TdXBwcmVzc2l2ZUZpcmUnLFxuICAgICdkb1RhcmdldCcsXG4gICAgJ2RvV2F0Y2gnLFxuICAgICdkcmF3QXJyb3cnLFxuICAgICdkcmF3RWxsaXBzZScsXG4gICAgJ2RyYXdJY29uJyxcbiAgICAnZHJhd0ljb24zRCcsXG4gICAgJ2RyYXdMYXNlcicsXG4gICAgJ2RyYXdMaW5lJyxcbiAgICAnZHJhd0xpbmUzRCcsXG4gICAgJ2RyYXdMaW5rJyxcbiAgICAnZHJhd0xvY2F0aW9uJyxcbiAgICAnZHJhd1BvbHlnb24nLFxuICAgICdkcmF3UmVjdGFuZ2xlJyxcbiAgICAnZHJhd1RyaWFuZ2xlJyxcbiAgICAnZHJpdmVyJyxcbiAgICAnZHJvcCcsXG4gICAgJ2R5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2UnLFxuICAgICdkeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZicsXG4gICAgJ2R5bmFtaWNTaW11bGF0aW9uRW5hYmxlZCcsXG4gICAgJ2R5bmFtaWNTaW11bGF0aW9uU3lzdGVtRW5hYmxlZCcsXG4gICAgJ2VjaG8nLFxuICAgICdlZGl0M0RFTk1pc3Npb25BdHRyaWJ1dGVzJyxcbiAgICAnZWRpdE9iamVjdCcsXG4gICAgJ2VkaXRvclNldEV2ZW50SGFuZGxlcicsXG4gICAgJ2VmZmVjdGl2ZUNvbW1hbmRlcicsXG4gICAgJ2VsZXZhdGVQZXJpc2NvcGUnLFxuICAgICdlbXB0eVBvc2l0aW9ucycsXG4gICAgJ2VuYWJsZUFJJyxcbiAgICAnZW5hYmxlQUlGZWF0dXJlJyxcbiAgICAnZW5hYmxlQWltUHJlY2lzaW9uJyxcbiAgICAnZW5hYmxlQXR0YWNrJyxcbiAgICAnZW5hYmxlQXVkaW9GZWF0dXJlJyxcbiAgICAnZW5hYmxlQXV0b1N0YXJ0VXBSVEQnLFxuICAgICdlbmFibGVBdXRvVHJpbVJURCcsXG4gICAgJ2VuYWJsZUNhbVNoYWtlJyxcbiAgICAnZW5hYmxlQ2F1c3RpY3MnLFxuICAgICdlbmFibGVDaGFubmVsJyxcbiAgICAnZW5hYmxlQ29sbGlzaW9uV2l0aCcsXG4gICAgJ2VuYWJsZUNvcGlsb3QnLFxuICAgICdlbmFibGVEZWJyaWVmaW5nU3RhdHMnLFxuICAgICdlbmFibGVEaWFnTGVnZW5kJyxcbiAgICAnZW5hYmxlRGlyZWN0aW9uU3RhYmlsaXphdGlvbicsXG4gICAgJ2VuYWJsZUR5bmFtaWNTaW11bGF0aW9uJyxcbiAgICAnZW5hYmxlRHluYW1pY1NpbXVsYXRpb25TeXN0ZW0nLFxuICAgICdlbmFibGVFbmREaWFsb2cnLFxuICAgICdlbmFibGVFbmdpbmVBcnRpbGxlcnknLFxuICAgICdlbmFibGVFbnZpcm9ubWVudCcsXG4gICAgJ2VuYWJsZUZhdGlndWUnLFxuICAgICdlbmFibGVHdW5MaWdodHMnLFxuICAgICdlbmFibGVJbmZvUGFuZWxDb21wb25lbnQnLFxuICAgICdlbmFibGVJUkxhc2VycycsXG4gICAgJ2VuYWJsZU1pbWljcycsXG4gICAgJ2VuYWJsZVBlcnNvblR1cnJldCcsXG4gICAgJ2VuYWJsZVJhZGlvJyxcbiAgICAnZW5hYmxlUmVsb2FkJyxcbiAgICAnZW5hYmxlUm9wZUF0dGFjaCcsXG4gICAgJ2VuYWJsZVNhdE5vcm1hbE9uRGV0YWlsJyxcbiAgICAnZW5hYmxlU2F2aW5nJyxcbiAgICAnZW5hYmxlU2VudGVuY2VzJyxcbiAgICAnZW5hYmxlU2ltdWxhdGlvbicsXG4gICAgJ2VuYWJsZVNpbXVsYXRpb25HbG9iYWwnLFxuICAgICdlbmFibGVTdGFtaW5hJyxcbiAgICAnZW5hYmxlU3RyZXNzRGFtYWdlJyxcbiAgICAnZW5hYmxlVGVhbVN3aXRjaCcsXG4gICAgJ2VuYWJsZVRyYWZmaWMnLFxuICAgICdlbmFibGVVQVZDb25uZWN0YWJpbGl0eScsXG4gICAgJ2VuYWJsZVVBVldheXBvaW50cycsXG4gICAgJ2VuYWJsZVZlaGljbGVDYXJnbycsXG4gICAgJ2VuYWJsZVZlaGljbGVTZW5zb3InLFxuICAgICdlbmFibGVXZWFwb25EaXNhc3NlbWJseScsXG4gICAgJ2VuZExvYWRpbmdTY3JlZW4nLFxuICAgICdlbmRNaXNzaW9uJyxcbiAgICAnZW5naW5lT24nLFxuICAgICdlbmdpbmVzSXNPblJURCcsXG4gICAgJ2VuZ2luZXNQb3dlclJURCcsXG4gICAgJ2VuZ2luZXNScG1SVEQnLFxuICAgICdlbmdpbmVzVG9ycXVlUlREJyxcbiAgICAnZW50aXRpZXMnLFxuICAgICdlbnZpcm9ubWVudEVuYWJsZWQnLFxuICAgICdlbnZpcm9ubWVudFZvbHVtZScsXG4gICAgJ2VxdWlwbWVudERpc2FibGVkJyxcbiAgICAnZXN0aW1hdGVkRW5kU2VydmVyVGltZScsXG4gICAgJ2VzdGltYXRlZFRpbWVMZWZ0JyxcbiAgICAnZXZhbE9iamVjdEFyZ3VtZW50JyxcbiAgICAnZXZlcnlCYWNrcGFjaycsXG4gICAgJ2V2ZXJ5Q29udGFpbmVyJyxcbiAgICAnZXhlYycsXG4gICAgJ2V4ZWNFZGl0b3JTY3JpcHQnLFxuICAgICdleGVjRlNNJyxcbiAgICAnZXhlY1ZNJyxcbiAgICAnZXhwJyxcbiAgICAnZXhwZWN0ZWREZXN0aW5hdGlvbicsXG4gICAgJ2V4cG9ydEpJUE1lc3NhZ2VzJyxcbiAgICAnZXllRGlyZWN0aW9uJyxcbiAgICAnZXllUG9zJyxcbiAgICAnZmFjZScsXG4gICAgJ2ZhY3Rpb24nLFxuICAgICdmYWRlRW52aXJvbm1lbnQnLFxuICAgICdmYWRlTXVzaWMnLFxuICAgICdmYWRlUmFkaW8nLFxuICAgICdmYWRlU291bmQnLFxuICAgICdmYWRlU3BlZWNoJyxcbiAgICAnZmFpbE1pc3Npb24nLFxuICAgICdmaWxlRXhpc3RzJyxcbiAgICAnZmlsbFdlYXBvbnNGcm9tUG9vbCcsXG4gICAgJ2ZpbmQnLFxuICAgICdmaW5kQW55JyxcbiAgICAnZmluZENvdmVyJyxcbiAgICAnZmluZERpc3BsYXknLFxuICAgICdmaW5kRWRpdG9yT2JqZWN0JyxcbiAgICAnZmluZEVtcHR5UG9zaXRpb24nLFxuICAgICdmaW5kRW1wdHlQb3NpdGlvblJlYWR5JyxcbiAgICAnZmluZElmJyxcbiAgICAnZmluZE5lYXJlc3RFbmVteScsXG4gICAgJ2ZpbmlzaE1pc3Npb25Jbml0JyxcbiAgICAnZmluaXRlJyxcbiAgICAnZmlyZScsXG4gICAgJ2ZpcmVBdFRhcmdldCcsXG4gICAgJ2ZpcnN0QmFja3BhY2snLFxuICAgICdmbGFnJyxcbiAgICAnZmxhZ0FuaW1hdGlvblBoYXNlJyxcbiAgICAnZmxhZ093bmVyJyxcbiAgICAnZmxhZ1NpZGUnLFxuICAgICdmbGFnVGV4dHVyZScsXG4gICAgJ2ZsYXR0ZW4nLFxuICAgICdmbGVlaW5nJyxcbiAgICAnZmxvb3InLFxuICAgICdmbHlJbkhlaWdodCcsXG4gICAgJ2ZseUluSGVpZ2h0QVNMJyxcbiAgICAnZm9jdXNlZEN0cmwnLFxuICAgICdmb2cnLFxuICAgICdmb2dGb3JlY2FzdCcsXG4gICAgJ2ZvZ1BhcmFtcycsXG4gICAgJ2ZvcmNlQWRkVW5pZm9ybScsXG4gICAgJ2ZvcmNlQXRQb3NpdGlvblJURCcsXG4gICAgJ2ZvcmNlQ2FkZXREaWZmaWN1bHR5JyxcbiAgICAnZm9yY2VkTWFwJyxcbiAgICAnZm9yY2VFbmQnLFxuICAgICdmb3JjZUZsYWdUZXh0dXJlJyxcbiAgICAnZm9yY2VGb2xsb3dSb2FkJyxcbiAgICAnZm9yY2VHZW5lcmF0b3JSVEQnLFxuICAgICdmb3JjZU1hcCcsXG4gICAgJ2ZvcmNlUmVzcGF3bicsXG4gICAgJ2ZvcmNlU3BlZWQnLFxuICAgICdmb3JjZVVuaWNvZGUnLFxuICAgICdmb3JjZVdhbGsnLFxuICAgICdmb3JjZVdlYXBvbkZpcmUnLFxuICAgICdmb3JjZVdlYXRoZXJDaGFuZ2UnLFxuICAgICdmb3JFYWNoTWVtYmVyJyxcbiAgICAnZm9yRWFjaE1lbWJlckFnZW50JyxcbiAgICAnZm9yRWFjaE1lbWJlclRlYW0nLFxuICAgICdmb3JnZXRUYXJnZXQnLFxuICAgICdmb3JtYXQnLFxuICAgICdmb3JtYXRpb24nLFxuICAgICdmb3JtYXRpb25EaXJlY3Rpb24nLFxuICAgICdmb3JtYXRpb25MZWFkZXInLFxuICAgICdmb3JtYXRpb25NZW1iZXJzJyxcbiAgICAnZm9ybWF0aW9uUG9zaXRpb24nLFxuICAgICdmb3JtYXRpb25UYXNrJyxcbiAgICAnZm9ybWF0VGV4dCcsXG4gICAgJ2Zvcm1MZWFkZXInLFxuICAgICdmcmVlRXh0ZW5zaW9uJyxcbiAgICAnZnJlZUxvb2snLFxuICAgICdmcm9tRWRpdG9yJyxcbiAgICAnZnVlbCcsXG4gICAgJ2Z1bGxDcmV3JyxcbiAgICAnZ2VhcklEQ0FtbW9Db3VudCcsXG4gICAgJ2dlYXJTbG90QW1tb0NvdW50JyxcbiAgICAnZ2VhclNsb3REYXRhJyxcbiAgICAnZ2VzdHVyZVN0YXRlJyxcbiAgICAnZ2V0JyxcbiAgICAnZ2V0M0RFTkFjdGlvblN0YXRlJyxcbiAgICAnZ2V0M0RFTkF0dHJpYnV0ZScsXG4gICAgJ2dldDNERU5DYW1lcmEnLFxuICAgICdnZXQzREVOQ29ubmVjdGlvbnMnLFxuICAgICdnZXQzREVORW50aXR5JyxcbiAgICAnZ2V0M0RFTkVudGl0eUlEJyxcbiAgICAnZ2V0M0RFTkdyaWQnLFxuICAgICdnZXQzREVOSWNvbnNWaXNpYmxlJyxcbiAgICAnZ2V0M0RFTkxheWVyRW50aXRpZXMnLFxuICAgICdnZXQzREVOTGluZXNWaXNpYmxlJyxcbiAgICAnZ2V0M0RFTk1pc3Npb25BdHRyaWJ1dGUnLFxuICAgICdnZXQzREVOTW91c2VPdmVyJyxcbiAgICAnZ2V0M0RFTlNlbGVjdGVkJyxcbiAgICAnZ2V0QWltaW5nQ29lZicsXG4gICAgJ2dldEFsbEVudjNEU291bmRDb250cm9sbGVycycsXG4gICAgJ2dldEFsbEVudlNvdW5kQ29udHJvbGxlcnMnLFxuICAgICdnZXRBbGxIaXRQb2ludHNEYW1hZ2UnLFxuICAgICdnZXRBbGxPd25lZE1pbmVzJyxcbiAgICAnZ2V0QWxsUHlsb25zSW5mbycsXG4gICAgJ2dldEFsbFNvdW5kQ29udHJvbGxlcnMnLFxuICAgICdnZXRBbGxVbml0VHJhaXRzJyxcbiAgICAnZ2V0QW1tb0NhcmdvJyxcbiAgICAnZ2V0QW5pbUFpbVByZWNpc2lvbicsXG4gICAgJ2dldEFuaW1TcGVlZENvZWYnLFxuICAgICdnZXRBcnJheScsXG4gICAgJ2dldEFydGlsbGVyeUFtbW8nLFxuICAgICdnZXRBcnRpbGxlcnlDb21wdXRlclNldHRpbmdzJyxcbiAgICAnZ2V0QXJ0aWxsZXJ5RVRBJyxcbiAgICAnZ2V0QXNzZXRETENJbmZvJyxcbiAgICAnZ2V0QXNzaWduZWRDdXJhdG9yTG9naWMnLFxuICAgICdnZXRBc3NpZ25lZEN1cmF0b3JVbml0JyxcbiAgICAnZ2V0QXR0YWNrVGFyZ2V0JyxcbiAgICAnZ2V0QXVkaW9PcHRpb25Wb2x1bWVzJyxcbiAgICAnZ2V0QmFja3BhY2tDYXJnbycsXG4gICAgJ2dldEJsZWVkaW5nUmVtYWluaW5nJyxcbiAgICAnZ2V0QnVybmluZ1ZhbHVlJyxcbiAgICAnZ2V0Q2FsY3VsYXRlUGxheWVyVmlzaWJpbGl0eUJ5RnJpZW5kbHknLFxuICAgICdnZXRDYW1lcmFWaWV3RGlyZWN0aW9uJyxcbiAgICAnZ2V0Q2FyZ29JbmRleCcsXG4gICAgJ2dldENlbnRlck9mTWFzcycsXG4gICAgJ2dldENsaWVudFN0YXRlJyxcbiAgICAnZ2V0Q2xpZW50U3RhdGVOdW1iZXInLFxuICAgICdnZXRDb21wYXRpYmxlUHlsb25NYWdhemluZXMnLFxuICAgICdnZXRDb25uZWN0ZWRVQVYnLFxuICAgICdnZXRDb25uZWN0ZWRVQVZVbml0JyxcbiAgICAnZ2V0Q29udGFpbmVyTWF4TG9hZCcsXG4gICAgJ2dldENvcnBzZScsXG4gICAgJ2dldENydWlzZUNvbnRyb2wnLFxuICAgICdnZXRDdXJzb3JPYmplY3RQYXJhbXMnLFxuICAgICdnZXRDdXN0b21BaW1Db2VmJyxcbiAgICAnZ2V0Q3VzdG9tU291bmRDb250cm9sbGVyJyxcbiAgICAnZ2V0Q3VzdG9tU291bmRDb250cm9sbGVyQ291bnQnLFxuICAgICdnZXREYW1tYWdlJyxcbiAgICAnZ2V0RGVicmllZmluZ1RleHQnLFxuICAgICdnZXREZXNjcmlwdGlvbicsXG4gICAgJ2dldERpcicsXG4gICAgJ2dldERpclZpc3VhbCcsXG4gICAgJ2dldERpdmVyU3RhdGUnLFxuICAgICdnZXRETENBc3NldHNVc2FnZScsXG4gICAgJ2dldERMQ0Fzc2V0c1VzYWdlQnlOYW1lJyxcbiAgICAnZ2V0RExDcycsXG4gICAgJ2dldERMQ1VzYWdlVGltZScsXG4gICAgJ2dldEVkaXRvckNhbWVyYScsXG4gICAgJ2dldEVkaXRvck1vZGUnLFxuICAgICdnZXRFZGl0b3JPYmplY3RTY29wZScsXG4gICAgJ2dldEVsZXZhdGlvbk9mZnNldCcsXG4gICAgJ2dldEVuZ2luZVRhcmdldFJQTVJURCcsXG4gICAgJ2dldEVudjNEU291bmRDb250cm9sbGVyJyxcbiAgICAnZ2V0RW52U291bmRDb250cm9sbGVyJyxcbiAgICAnZ2V0RXZlbnRIYW5kbGVySW5mbycsXG4gICAgJ2dldEZhdGlndWUnLFxuICAgICdnZXRGaWVsZE1hbnVhbFN0YXJ0UGFnZScsXG4gICAgJ2dldEZvcmNlZEZsYWdUZXh0dXJlJyxcbiAgICAnZ2V0Rm9yY2VkU3BlZWQnLFxuICAgICdnZXRGcmllbmQnLFxuICAgICdnZXRGU01WYXJpYWJsZScsXG4gICAgJ2dldEZ1ZWxDYXJnbycsXG4gICAgJ2dldEdyYXBoVmFsdWVzJyxcbiAgICAnZ2V0R3JvdXBJY29uJyxcbiAgICAnZ2V0R3JvdXBJY29uUGFyYW1zJyxcbiAgICAnZ2V0R3JvdXBJY29ucycsXG4gICAgJ2dldEhpZGVGcm9tJyxcbiAgICAnZ2V0SGl0JyxcbiAgICAnZ2V0SGl0SW5kZXgnLFxuICAgICdnZXRIaXRQb2ludERhbWFnZScsXG4gICAgJ2dldEl0ZW1DYXJnbycsXG4gICAgJ2dldExpZ2h0aW5nJyxcbiAgICAnZ2V0TGlnaHRpbmdBdCcsXG4gICAgJ2dldExvYWRlZE1vZHNJbmZvJyxcbiAgICAnZ2V0TWFnYXppbmVDYXJnbycsXG4gICAgJ2dldE1hcmtlckNvbG9yJyxcbiAgICAnZ2V0TWFya2VyUG9zJyxcbiAgICAnZ2V0TWFya2VyU2l6ZScsXG4gICAgJ2dldE1hcmtlclR5cGUnLFxuICAgICdnZXRNYXNzJyxcbiAgICAnZ2V0TWlzc2lvbkNvbmZpZycsXG4gICAgJ2dldE1pc3Npb25Db25maWdWYWx1ZScsXG4gICAgJ2dldE1pc3Npb25ETENzJyxcbiAgICAnZ2V0TWlzc2lvbkxheWVyRW50aXRpZXMnLFxuICAgICdnZXRNaXNzaW9uTGF5ZXJzJyxcbiAgICAnZ2V0TWlzc2lvblBhdGgnLFxuICAgICdnZXRNb2RlbEluZm8nLFxuICAgICdnZXRNb3VzZVBvc2l0aW9uJyxcbiAgICAnZ2V0TXVzaWNQbGF5ZWRUaW1lJyxcbiAgICAnZ2V0TnVtYmVyJyxcbiAgICAnZ2V0T2JqZWN0QXJndW1lbnQnLFxuICAgICdnZXRPYmplY3RDaGlsZHJlbicsXG4gICAgJ2dldE9iamVjdERMQycsXG4gICAgJ2dldE9iamVjdEZPVicsXG4gICAgJ2dldE9iamVjdElEJyxcbiAgICAnZ2V0T2JqZWN0TWF0ZXJpYWxzJyxcbiAgICAnZ2V0T2JqZWN0UHJveHknLFxuICAgICdnZXRPYmplY3RTY2FsZScsXG4gICAgJ2dldE9iamVjdFRleHR1cmVzJyxcbiAgICAnZ2V0T2JqZWN0VHlwZScsXG4gICAgJ2dldE9iamVjdFZpZXdEaXN0YW5jZScsXG4gICAgJ2dldE9wdGljc01vZGUnLFxuICAgICdnZXRPckRlZmF1bHQnLFxuICAgICdnZXRPckRlZmF1bHRDYWxsJyxcbiAgICAnZ2V0T3h5Z2VuUmVtYWluaW5nJyxcbiAgICAnZ2V0UGVyc29uVXNlZERMQ3MnLFxuICAgICdnZXRQaWxvdENhbWVyYURpcmVjdGlvbicsXG4gICAgJ2dldFBpbG90Q2FtZXJhUG9zaXRpb24nLFxuICAgICdnZXRQaWxvdENhbWVyYVJvdGF0aW9uJyxcbiAgICAnZ2V0UGlsb3RDYW1lcmFUYXJnZXQnLFxuICAgICdnZXRQaVBWaWV3RGlzdGFuY2UnLFxuICAgICdnZXRQbGF0ZU51bWJlcicsXG4gICAgJ2dldFBsYXllckNoYW5uZWwnLFxuICAgICdnZXRQbGF5ZXJJRCcsXG4gICAgJ2dldFBsYXllclNjb3JlcycsXG4gICAgJ2dldFBsYXllclVJRCcsXG4gICAgJ2dldFBsYXllclZvTlZvbHVtZScsXG4gICAgJ2dldFBvcycsXG4gICAgJ2dldFBvc0FTTCcsXG4gICAgJ2dldFBvc0FTTFZpc3VhbCcsXG4gICAgJ2dldFBvc0FTTFcnLFxuICAgICdnZXRQb3NBVEwnLFxuICAgICdnZXRQb3NBVExWaXN1YWwnLFxuICAgICdnZXRQb3NWaXN1YWwnLFxuICAgICdnZXRQb3NXb3JsZCcsXG4gICAgJ2dldFBvc1dvcmxkVmlzdWFsJyxcbiAgICAnZ2V0UHlsb25NYWdhemluZXMnLFxuICAgICdnZXRSZWxEaXInLFxuICAgICdnZXRSZWxQb3MnLFxuICAgICdnZXRSZW1vdGVTZW5zb3JzRGlzYWJsZWQnLFxuICAgICdnZXRSZXBhaXJDYXJnbycsXG4gICAgJ2dldFJlc29sdXRpb24nLFxuICAgICdnZXRSb2FkSW5mbycsXG4gICAgJ2dldFJvdG9yQnJha2VSVEQnLFxuICAgICdnZXRTZW5zb3JUYXJnZXRzJyxcbiAgICAnZ2V0U2Vuc29yVGhyZWF0cycsXG4gICAgJ2dldFNoYWRvd0Rpc3RhbmNlJyxcbiAgICAnZ2V0U2hvdFBhcmVudHMnLFxuICAgICdnZXRTbGluZ0xvYWQnLFxuICAgICdnZXRTb3VuZENvbnRyb2xsZXInLFxuICAgICdnZXRTb3VuZENvbnRyb2xsZXJSZXN1bHQnLFxuICAgICdnZXRTcGVlZCcsXG4gICAgJ2dldFN0YW1pbmEnLFxuICAgICdnZXRTdGF0VmFsdWUnLFxuICAgICdnZXRTdGVhbUZyaWVuZHNTZXJ2ZXJzJyxcbiAgICAnZ2V0U3VidGl0bGVPcHRpb25zJyxcbiAgICAnZ2V0U3VwcHJlc3Npb24nLFxuICAgICdnZXRUZXJyYWluR3JpZCcsXG4gICAgJ2dldFRlcnJhaW5IZWlnaHQnLFxuICAgICdnZXRUZXJyYWluSGVpZ2h0QVNMJyxcbiAgICAnZ2V0VGVycmFpbkluZm8nLFxuICAgICdnZXRUZXh0JyxcbiAgICAnZ2V0VGV4dFJhdycsXG4gICAgJ2dldFRleHR1cmVJbmZvJyxcbiAgICAnZ2V0VGV4dFdpZHRoJyxcbiAgICAnZ2V0VGlQYXJhbWV0ZXJzJyxcbiAgICAnZ2V0VG90YWxETENVc2FnZVRpbWUnLFxuICAgICdnZXRUcmltT2Zmc2V0UlREJyxcbiAgICAnZ2V0VHVycmV0TGltaXRzJyxcbiAgICAnZ2V0VHVycmV0T3B0aWNzTW9kZScsXG4gICAgJ2dldFVuaXRGcmVlZmFsbEluZm8nLFxuICAgICdnZXRVbml0TG9hZG91dCcsXG4gICAgJ2dldFVuaXRUcmFpdCcsXG4gICAgJ2dldFVubG9hZEluQ29tYmF0JyxcbiAgICAnZ2V0VXNlckluZm8nLFxuICAgICdnZXRVc2VyTUZEVGV4dCcsXG4gICAgJ2dldFVzZXJNRkRWYWx1ZScsXG4gICAgJ2dldFZhcmlhYmxlJyxcbiAgICAnZ2V0VmVoaWNsZUNhcmdvJyxcbiAgICAnZ2V0VmVoaWNsZVRpUGFycycsXG4gICAgJ2dldFdlYXBvbkNhcmdvJyxcbiAgICAnZ2V0V2VhcG9uU3dheScsXG4gICAgJ2dldFdpbmdzT3JpZW50YXRpb25SVEQnLFxuICAgICdnZXRXaW5nc1Bvc2l0aW9uUlREJyxcbiAgICAnZ2V0V1BQb3MnLFxuICAgICdnbGFuY2VBdCcsXG4gICAgJ2dsb2JhbENoYXQnLFxuICAgICdnbG9iYWxSYWRpbycsXG4gICAgJ2dvZ2dsZXMnLFxuICAgICdnb3RvJyxcbiAgICAnZ3JvdXAnLFxuICAgICdncm91cENoYXQnLFxuICAgICdncm91cEZyb21OZXRJZCcsXG4gICAgJ2dyb3VwSWNvblNlbGVjdGFibGUnLFxuICAgICdncm91cEljb25zVmlzaWJsZScsXG4gICAgJ2dyb3VwSUQnLFxuICAgICdncm91cE93bmVyJyxcbiAgICAnZ3JvdXBSYWRpbycsXG4gICAgJ2dyb3VwcycsXG4gICAgJ2dyb3VwU2VsZWN0ZWRVbml0cycsXG4gICAgJ2dyb3VwU2VsZWN0VW5pdCcsXG4gICAgJ2d1bm5lcicsXG4gICAgJ2d1c3RzJyxcbiAgICAnaGFsdCcsXG4gICAgJ2hhbmRndW5JdGVtcycsXG4gICAgJ2hhbmRndW5NYWdhemluZScsXG4gICAgJ2hhbmRndW5XZWFwb24nLFxuICAgICdoYW5kc0hpdCcsXG4gICAgJ2hhc2hWYWx1ZScsXG4gICAgJ2hhc0ludGVyZmFjZScsXG4gICAgJ2hhc1BpbG90Q2FtZXJhJyxcbiAgICAnaGFzV2VhcG9uJyxcbiAgICAnaGNBbGxHcm91cHMnLFxuICAgICdoY0dyb3VwUGFyYW1zJyxcbiAgICAnaGNMZWFkZXInLFxuICAgICdoY1JlbW92ZUFsbEdyb3VwcycsXG4gICAgJ2hjUmVtb3ZlR3JvdXAnLFxuICAgICdoY1NlbGVjdGVkJyxcbiAgICAnaGNTZWxlY3RHcm91cCcsXG4gICAgJ2hjU2V0R3JvdXAnLFxuICAgICdoY1Nob3dCYXInLFxuICAgICdoY1Nob3duQmFyJyxcbiAgICAnaGVhZGdlYXInLFxuICAgICdoaWRlQm9keScsXG4gICAgJ2hpZGVPYmplY3QnLFxuICAgICdoaWRlT2JqZWN0R2xvYmFsJyxcbiAgICAnaGlkZVNlbGVjdGlvbicsXG4gICAgJ2hpbnQnLFxuICAgICdoaW50QycsXG4gICAgJ2hpbnRDYWRldCcsXG4gICAgJ2hpbnRTaWxlbnQnLFxuICAgICdobWQnLFxuICAgICdob3N0TWlzc2lvbicsXG4gICAgJ2h0bWxMb2FkJyxcbiAgICAnSFVETW92ZW1lbnRMZXZlbHMnLFxuICAgICdodW1pZGl0eScsXG4gICAgJ2ltYWdlJyxcbiAgICAnaW1wb3J0QWxsR3JvdXBzJyxcbiAgICAnaW1wb3J0YW5jZScsXG4gICAgJ2luJyxcbiAgICAnaW5BcmVhJyxcbiAgICAnaW5BcmVhQXJyYXknLFxuICAgICdpbmNhcGFjaXRhdGVkU3RhdGUnLFxuICAgICdpbmZsYW1lJyxcbiAgICAnaW5mbGFtZWQnLFxuICAgICdpbmZvUGFuZWwnLFxuICAgICdpbmZvUGFuZWxDb21wb25lbnRFbmFibGVkJyxcbiAgICAnaW5mb1BhbmVsQ29tcG9uZW50cycsXG4gICAgJ2luZm9QYW5lbHMnLFxuICAgICdpbkdhbWVVSVNldEV2ZW50SGFuZGxlcicsXG4gICAgJ2luaGVyaXRzRnJvbScsXG4gICAgJ2luaXRBbWJpZW50TGlmZScsXG4gICAgJ2luUG9seWdvbicsXG4gICAgJ2lucHV0QWN0aW9uJyxcbiAgICAnaW5wdXRDb250cm9sbGVyJyxcbiAgICAnaW5wdXRNb3VzZScsXG4gICAgJ2luUmFuZ2VPZkFydGlsbGVyeScsXG4gICAgJ2luc2VydCcsXG4gICAgJ2luc2VydEVkaXRvck9iamVjdCcsXG4gICAgJ2ludGVyc2VjdCcsXG4gICAgJ2lzM0RFTicsXG4gICAgJ2lzM0RFTk11bHRpcGxheWVyJyxcbiAgICAnaXMzREVOUHJldmlldycsXG4gICAgJ2lzQWJsZVRvQnJlYXRoZScsXG4gICAgJ2lzQWN0aW9uTWVudVZpc2libGUnLFxuICAgICdpc0FnZW50JyxcbiAgICAnaXNBaW1QcmVjaXNpb25FbmFibGVkJyxcbiAgICAnaXNBbGxvd2VkQ3Jld0luSW1tb2JpbGUnLFxuICAgICdpc0FycmF5JyxcbiAgICAnaXNBdXRvSG92ZXJPbicsXG4gICAgJ2lzQXV0b25vbW91cycsXG4gICAgJ2lzQXV0b1N0YXJ0VXBFbmFibGVkUlREJyxcbiAgICAnaXNBdXRvdGVzdCcsXG4gICAgJ2lzQXV0b1RyaW1PblJURCcsXG4gICAgJ2lzQXdha2UnLFxuICAgICdpc0JsZWVkaW5nJyxcbiAgICAnaXNCdXJuaW5nJyxcbiAgICAnaXNDbGFzcycsXG4gICAgJ2lzQ29sbGlzaW9uTGlnaHRPbicsXG4gICAgJ2lzQ29waWxvdEVuYWJsZWQnLFxuICAgICdpc0RhbWFnZUFsbG93ZWQnLFxuICAgICdpc0RlZGljYXRlZCcsXG4gICAgJ2lzRExDQXZhaWxhYmxlJyxcbiAgICAnaXNFbmdpbmVPbicsXG4gICAgJ2lzRXF1YWxSZWYnLFxuICAgICdpc0VxdWFsVG8nLFxuICAgICdpc0VxdWFsVHlwZScsXG4gICAgJ2lzRXF1YWxUeXBlQWxsJyxcbiAgICAnaXNFcXVhbFR5cGVBbnknLFxuICAgICdpc0VxdWFsVHlwZUFycmF5JyxcbiAgICAnaXNFcXVhbFR5cGVQYXJhbXMnLFxuICAgICdpc0ZpbGVQYXRjaGluZ0VuYWJsZWQnLFxuICAgICdpc0ZpbmFsJyxcbiAgICAnaXNGbGFzaGxpZ2h0T24nLFxuICAgICdpc0ZsYXRFbXB0eScsXG4gICAgJ2lzRm9yY2VkV2FsaycsXG4gICAgJ2lzRm9ybWF0aW9uTGVhZGVyJyxcbiAgICAnaXNHYW1lRm9jdXNlZCcsXG4gICAgJ2lzR2FtZVBhdXNlZCcsXG4gICAgJ2lzR3JvdXBEZWxldGVkV2hlbkVtcHR5JyxcbiAgICAnaXNIaWRkZW4nLFxuICAgICdpc0luUmVtYWluc0NvbGxlY3RvcicsXG4gICAgJ2lzSW5zdHJ1Y3RvckZpZ3VyZUVuYWJsZWQnLFxuICAgICdpc0lSTGFzZXJPbicsXG4gICAgJ2lzS2V5QWN0aXZlJyxcbiAgICAnaXNLaW5kT2YnLFxuICAgICdpc0xhc2VyT24nLFxuICAgICdpc0xpZ2h0T24nLFxuICAgICdpc0xvY2FsaXplZCcsXG4gICAgJ2lzTWFudWFsRmlyZScsXG4gICAgJ2lzTWFya2VkRm9yQ29sbGVjdGlvbicsXG4gICAgJ2lzTWlzc2lvblByb2ZpbGVOYW1lc3BhY2VMb2FkZWQnLFxuICAgICdpc011bHRpcGxheWVyJyxcbiAgICAnaXNNdWx0aXBsYXllclNvbG8nLFxuICAgICdpc05pbCcsXG4gICAgJ2lzTm90RXF1YWxSZWYnLFxuICAgICdpc05vdEVxdWFsVG8nLFxuICAgICdpc051bGwnLFxuICAgICdpc051bWJlcicsXG4gICAgJ2lzT2JqZWN0SGlkZGVuJyxcbiAgICAnaXNPYmplY3RSVEQnLFxuICAgICdpc09uUm9hZCcsXG4gICAgJ2lzUGlQRW5hYmxlZCcsXG4gICAgJ2lzUGxheWVyJyxcbiAgICAnaXNSZWFsVGltZScsXG4gICAgJ2lzUmVtb3RlRXhlY3V0ZWQnLFxuICAgICdpc1JlbW90ZUV4ZWN1dGVkSklQJyxcbiAgICAnaXNTYXZpbmcnLFxuICAgICdpc1NlbnNvclRhcmdldENvbmZpcm1lZCcsXG4gICAgJ2lzU2VydmVyJyxcbiAgICAnaXNTaG93aW5nM0RJY29ucycsXG4gICAgJ2lzU2ltcGxlT2JqZWN0JyxcbiAgICAnaXNTcHJpbnRBbGxvd2VkJyxcbiAgICAnaXNTdGFtaW5hRW5hYmxlZCcsXG4gICAgJ2lzU3RlYW1NaXNzaW9uJyxcbiAgICAnaXNTdGVhbU92ZXJsYXlFbmFibGVkJyxcbiAgICAnaXNTdHJlYW1GcmllbmRseVVJRW5hYmxlZCcsXG4gICAgJ2lzU3RyZXNzRGFtYWdlRW5hYmxlZCcsXG4gICAgJ2lzVGV4dCcsXG4gICAgJ2lzVG91Y2hpbmdHcm91bmQnLFxuICAgICdpc1R1cm5lZE91dCcsXG4gICAgJ2lzVHV0SGludHNFbmFibGVkJyxcbiAgICAnaXNVQVZDb25uZWN0YWJsZScsXG4gICAgJ2lzVUFWQ29ubmVjdGVkJyxcbiAgICAnaXNVSUNvbnRleHQnLFxuICAgICdpc1VuaWZvcm1BbGxvd2VkJyxcbiAgICAnaXNWZWhpY2xlQ2FyZ28nLFxuICAgICdpc1ZlaGljbGVSYWRhck9uJyxcbiAgICAnaXNWZWhpY2xlU2Vuc29yRW5hYmxlZCcsXG4gICAgJ2lzV2Fsa2luZycsXG4gICAgJ2lzV2VhcG9uRGVwbG95ZWQnLFxuICAgICdpc1dlYXBvblJlc3RlZCcsXG4gICAgJ2l0ZW1DYXJnbycsXG4gICAgJ2l0ZW1zJyxcbiAgICAnaXRlbXNXaXRoTWFnYXppbmVzJyxcbiAgICAnam9pbicsXG4gICAgJ2pvaW5BcycsXG4gICAgJ2pvaW5Bc1NpbGVudCcsXG4gICAgJ2pvaW5TaWxlbnQnLFxuICAgICdqb2luU3RyaW5nJyxcbiAgICAna2JBZGREYXRhYmFzZScsXG4gICAgJ2tiQWRkRGF0YWJhc2VUYXJnZXRzJyxcbiAgICAna2JBZGRUb3BpYycsXG4gICAgJ2tiSGFzVG9waWMnLFxuICAgICdrYlJlYWN0JyxcbiAgICAna2JSZW1vdmVUb3BpYycsXG4gICAgJ2tiVGVsbCcsXG4gICAgJ2tiV2FzU2FpZCcsXG4gICAgJ2tleUltYWdlJyxcbiAgICAna2V5TmFtZScsXG4gICAgJ2tleXMnLFxuICAgICdrbm93c0Fib3V0JyxcbiAgICAnbGFuZCcsXG4gICAgJ2xhbmRBdCcsXG4gICAgJ2xhbmRSZXN1bHQnLFxuICAgICdsYW5ndWFnZScsXG4gICAgJ2xhc2VyVGFyZ2V0JyxcbiAgICAnbGJBZGQnLFxuICAgICdsYkNsZWFyJyxcbiAgICAnbGJDb2xvcicsXG4gICAgJ2xiQ29sb3JSaWdodCcsXG4gICAgJ2xiQ3VyU2VsJyxcbiAgICAnbGJEYXRhJyxcbiAgICAnbGJEZWxldGUnLFxuICAgICdsYklzU2VsZWN0ZWQnLFxuICAgICdsYlBpY3R1cmUnLFxuICAgICdsYlBpY3R1cmVSaWdodCcsXG4gICAgJ2xiU2VsZWN0aW9uJyxcbiAgICAnbGJTZXRDb2xvcicsXG4gICAgJ2xiU2V0Q29sb3JSaWdodCcsXG4gICAgJ2xiU2V0Q3VyU2VsJyxcbiAgICAnbGJTZXREYXRhJyxcbiAgICAnbGJTZXRQaWN0dXJlJyxcbiAgICAnbGJTZXRQaWN0dXJlQ29sb3InLFxuICAgICdsYlNldFBpY3R1cmVDb2xvckRpc2FibGVkJyxcbiAgICAnbGJTZXRQaWN0dXJlQ29sb3JTZWxlY3RlZCcsXG4gICAgJ2xiU2V0UGljdHVyZVJpZ2h0JyxcbiAgICAnbGJTZXRQaWN0dXJlUmlnaHRDb2xvcicsXG4gICAgJ2xiU2V0UGljdHVyZVJpZ2h0Q29sb3JEaXNhYmxlZCcsXG4gICAgJ2xiU2V0UGljdHVyZVJpZ2h0Q29sb3JTZWxlY3RlZCcsXG4gICAgJ2xiU2V0U2VsZWN0Q29sb3InLFxuICAgICdsYlNldFNlbGVjdENvbG9yUmlnaHQnLFxuICAgICdsYlNldFNlbGVjdGVkJyxcbiAgICAnbGJTZXRUZXh0JyxcbiAgICAnbGJTZXRUZXh0UmlnaHQnLFxuICAgICdsYlNldFRvb2x0aXAnLFxuICAgICdsYlNldFZhbHVlJyxcbiAgICAnbGJTaXplJyxcbiAgICAnbGJTb3J0JyxcbiAgICAnbGJTb3J0QnknLFxuICAgICdsYlNvcnRCeVZhbHVlJyxcbiAgICAnbGJUZXh0JyxcbiAgICAnbGJUZXh0UmlnaHQnLFxuICAgICdsYlRvb2x0aXAnLFxuICAgICdsYlZhbHVlJyxcbiAgICAnbGVhZGVyJyxcbiAgICAnbGVhZGVyYm9hcmREZUluaXQnLFxuICAgICdsZWFkZXJib2FyZEdldFJvd3MnLFxuICAgICdsZWFkZXJib2FyZEluaXQnLFxuICAgICdsZWFkZXJib2FyZFJlcXVlc3RSb3dzRnJpZW5kcycsXG4gICAgJ2xlYWRlcmJvYXJkUmVxdWVzdFJvd3NHbG9iYWwnLFxuICAgICdsZWFkZXJib2FyZFJlcXVlc3RSb3dzR2xvYmFsQXJvdW5kVXNlcicsXG4gICAgJ2xlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZScsXG4gICAgJ2xlYWRlcmJvYXJkc1JlcXVlc3RVcGxvYWRTY29yZUtlZXBCZXN0JyxcbiAgICAnbGVhZGVyYm9hcmRTdGF0ZScsXG4gICAgJ2xlYXZlVmVoaWNsZScsXG4gICAgJ2xpYnJhcnlDcmVkaXRzJyxcbiAgICAnbGlicmFyeURpc2NsYWltZXJzJyxcbiAgICAnbGlmZVN0YXRlJyxcbiAgICAnbGlnaHRBdHRhY2hPYmplY3QnLFxuICAgICdsaWdodERldGFjaE9iamVjdCcsXG4gICAgJ2xpZ2h0SXNPbicsXG4gICAgJ2xpZ2h0bmluZ3MnLFxuICAgICdsaW1pdFNwZWVkJyxcbiAgICAnbGluZWFyQ29udmVyc2lvbicsXG4gICAgJ2xpbmVJbnRlcnNlY3RzJyxcbiAgICAnbGluZUludGVyc2VjdHNPYmpzJyxcbiAgICAnbGluZUludGVyc2VjdHNTdXJmYWNlcycsXG4gICAgJ2xpbmVJbnRlcnNlY3RzV2l0aCcsXG4gICAgJ2xpbmtJdGVtJyxcbiAgICAnbGlzdCcsXG4gICAgJ2xpc3RPYmplY3RzJyxcbiAgICAnbGlzdFJlbW90ZVRhcmdldHMnLFxuICAgICdsaXN0VmVoaWNsZVNlbnNvcnMnLFxuICAgICdsbicsXG4gICAgJ2xuYkFkZEFycmF5JyxcbiAgICAnbG5iQWRkQ29sdW1uJyxcbiAgICAnbG5iQWRkUm93JyxcbiAgICAnbG5iQ2xlYXInLFxuICAgICdsbmJDb2xvcicsXG4gICAgJ2xuYkNvbG9yUmlnaHQnLFxuICAgICdsbmJDdXJTZWxSb3cnLFxuICAgICdsbmJEYXRhJyxcbiAgICAnbG5iRGVsZXRlQ29sdW1uJyxcbiAgICAnbG5iRGVsZXRlUm93JyxcbiAgICAnbG5iR2V0Q29sdW1uc1Bvc2l0aW9uJyxcbiAgICAnbG5iUGljdHVyZScsXG4gICAgJ2xuYlBpY3R1cmVSaWdodCcsXG4gICAgJ2xuYlNldENvbG9yJyxcbiAgICAnbG5iU2V0Q29sb3JSaWdodCcsXG4gICAgJ2xuYlNldENvbHVtbnNQb3MnLFxuICAgICdsbmJTZXRDdXJTZWxSb3cnLFxuICAgICdsbmJTZXREYXRhJyxcbiAgICAnbG5iU2V0UGljdHVyZScsXG4gICAgJ2xuYlNldFBpY3R1cmVDb2xvcicsXG4gICAgJ2xuYlNldFBpY3R1cmVDb2xvclJpZ2h0JyxcbiAgICAnbG5iU2V0UGljdHVyZUNvbG9yU2VsZWN0ZWQnLFxuICAgICdsbmJTZXRQaWN0dXJlQ29sb3JTZWxlY3RlZFJpZ2h0JyxcbiAgICAnbG5iU2V0UGljdHVyZVJpZ2h0JyxcbiAgICAnbG5iU2V0VGV4dCcsXG4gICAgJ2xuYlNldFRleHRSaWdodCcsXG4gICAgJ2xuYlNldFRvb2x0aXAnLFxuICAgICdsbmJTZXRWYWx1ZScsXG4gICAgJ2xuYlNpemUnLFxuICAgICdsbmJTb3J0JyxcbiAgICAnbG5iU29ydEJ5JyxcbiAgICAnbG5iU29ydEJ5VmFsdWUnLFxuICAgICdsbmJUZXh0JyxcbiAgICAnbG5iVGV4dFJpZ2h0JyxcbiAgICAnbG5iVmFsdWUnLFxuICAgICdsb2FkJyxcbiAgICAnbG9hZEFicycsXG4gICAgJ2xvYWRCYWNrcGFjaycsXG4gICAgJ2xvYWRDb25maWcnLFxuICAgICdsb2FkRmlsZScsXG4gICAgJ2xvYWRHYW1lJyxcbiAgICAnbG9hZElkZW50aXR5JyxcbiAgICAnbG9hZE1hZ2F6aW5lJyxcbiAgICAnbG9hZE92ZXJsYXknLFxuICAgICdsb2FkU3RhdHVzJyxcbiAgICAnbG9hZFVuaWZvcm0nLFxuICAgICdsb2FkVmVzdCcsXG4gICAgJ2xvY2FsaXplJyxcbiAgICAnbG9jYWxOYW1lc3BhY2UnLFxuICAgICdsb2NhdGlvblBvc2l0aW9uJyxcbiAgICAnbG9jaycsXG4gICAgJ2xvY2tDYW1lcmFUbycsXG4gICAgJ2xvY2tDYXJnbycsXG4gICAgJ2xvY2tEcml2ZXInLFxuICAgICdsb2NrZWQnLFxuICAgICdsb2NrZWRDYW1lcmFUbycsXG4gICAgJ2xvY2tlZENhcmdvJyxcbiAgICAnbG9ja2VkRHJpdmVyJyxcbiAgICAnbG9ja2VkSW52ZW50b3J5JyxcbiAgICAnbG9ja2VkVHVycmV0JyxcbiAgICAnbG9ja0lkZW50aXR5JyxcbiAgICAnbG9ja0ludmVudG9yeScsXG4gICAgJ2xvY2tUdXJyZXQnLFxuICAgICdsb2NrV3AnLFxuICAgICdsb2cnLFxuICAgICdsb2dFbnRpdGllcycsXG4gICAgJ2xvZ05ldHdvcmsnLFxuICAgICdsb2dOZXR3b3JrVGVybWluYXRlJyxcbiAgICAnbG9va0F0JyxcbiAgICAnbG9va0F0UG9zJyxcbiAgICAnbWFnYXppbmVDYXJnbycsXG4gICAgJ21hZ2F6aW5lcycsXG4gICAgJ21hZ2F6aW5lc0FsbFR1cnJldHMnLFxuICAgICdtYWdhemluZXNBbW1vJyxcbiAgICAnbWFnYXppbmVzQW1tb0NhcmdvJyxcbiAgICAnbWFnYXppbmVzQW1tb0Z1bGwnLFxuICAgICdtYWdhemluZXNEZXRhaWwnLFxuICAgICdtYWdhemluZXNEZXRhaWxCYWNrcGFjaycsXG4gICAgJ21hZ2F6aW5lc0RldGFpbFVuaWZvcm0nLFxuICAgICdtYWdhemluZXNEZXRhaWxWZXN0JyxcbiAgICAnbWFnYXppbmVzVHVycmV0JyxcbiAgICAnbWFnYXppbmVUdXJyZXRBbW1vJyxcbiAgICAnbWFwQW5pbUFkZCcsXG4gICAgJ21hcEFuaW1DbGVhcicsXG4gICAgJ21hcEFuaW1Db21taXQnLFxuICAgICdtYXBBbmltRG9uZScsXG4gICAgJ21hcENlbnRlck9uQ2FtZXJhJyxcbiAgICAnbWFwR3JpZFBvc2l0aW9uJyxcbiAgICAnbWFya0FzRmluaXNoZWRPblN0ZWFtJyxcbiAgICAnbWFya2VyQWxwaGEnLFxuICAgICdtYXJrZXJCcnVzaCcsXG4gICAgJ21hcmtlckNoYW5uZWwnLFxuICAgICdtYXJrZXJDb2xvcicsXG4gICAgJ21hcmtlckRpcicsXG4gICAgJ21hcmtlclBvbHlsaW5lJyxcbiAgICAnbWFya2VyUG9zJyxcbiAgICAnbWFya2VyU2hhZG93JyxcbiAgICAnbWFya2VyU2hhcGUnLFxuICAgICdtYXJrZXJTaXplJyxcbiAgICAnbWFya2VyVGV4dCcsXG4gICAgJ21hcmtlclR5cGUnLFxuICAgICdtYXRyaXhNdWx0aXBseScsXG4gICAgJ21hdHJpeFRyYW5zcG9zZScsXG4gICAgJ21heCcsXG4gICAgJ21heExvYWQnLFxuICAgICdtZW1iZXJzJyxcbiAgICAnbWVudUFjdGlvbicsXG4gICAgJ21lbnVBZGQnLFxuICAgICdtZW51Q2hlY2tlZCcsXG4gICAgJ21lbnVDbGVhcicsXG4gICAgJ21lbnVDb2xsYXBzZScsXG4gICAgJ21lbnVEYXRhJyxcbiAgICAnbWVudURlbGV0ZScsXG4gICAgJ21lbnVFbmFibGUnLFxuICAgICdtZW51RW5hYmxlZCcsXG4gICAgJ21lbnVFeHBhbmQnLFxuICAgICdtZW51SG92ZXInLFxuICAgICdtZW51UGljdHVyZScsXG4gICAgJ21lbnVTZXRBY3Rpb24nLFxuICAgICdtZW51U2V0Q2hlY2snLFxuICAgICdtZW51U2V0RGF0YScsXG4gICAgJ21lbnVTZXRQaWN0dXJlJyxcbiAgICAnbWVudVNldFNob3J0Y3V0JyxcbiAgICAnbWVudVNldFRleHQnLFxuICAgICdtZW51U2V0VVJMJyxcbiAgICAnbWVudVNldFZhbHVlJyxcbiAgICAnbWVudVNob3J0Y3V0JyxcbiAgICAnbWVudVNob3J0Y3V0VGV4dCcsXG4gICAgJ21lbnVTaXplJyxcbiAgICAnbWVudVNvcnQnLFxuICAgICdtZW51VGV4dCcsXG4gICAgJ21lbnVVUkwnLFxuICAgICdtZW51VmFsdWUnLFxuICAgICdtZXJnZScsXG4gICAgJ21pbicsXG4gICAgJ21pbmVBY3RpdmUnLFxuICAgICdtaW5lRGV0ZWN0ZWRCeScsXG4gICAgJ21pc3NpbGVUYXJnZXQnLFxuICAgICdtaXNzaWxlVGFyZ2V0UG9zJyxcbiAgICAnbWlzc2lvbkNvbmZpZ0ZpbGUnLFxuICAgICdtaXNzaW9uRGlmZmljdWx0eScsXG4gICAgJ21pc3Npb25FbmQnLFxuICAgICdtaXNzaW9uTmFtZScsXG4gICAgJ21pc3Npb25OYW1lU291cmNlJyxcbiAgICAnbWlzc2lvbk5hbWVzcGFjZScsXG4gICAgJ21pc3Npb25Qcm9maWxlTmFtZXNwYWNlJyxcbiAgICAnbWlzc2lvblN0YXJ0JyxcbiAgICAnbWlzc2lvblZlcnNpb24nLFxuICAgICdtb2QnLFxuICAgICdtb2RlbFRvV29ybGQnLFxuICAgICdtb2RlbFRvV29ybGRWaXN1YWwnLFxuICAgICdtb2RlbFRvV29ybGRWaXN1YWxXb3JsZCcsXG4gICAgJ21vZGVsVG9Xb3JsZFdvcmxkJyxcbiAgICAnbW9kUGFyYW1zJyxcbiAgICAnbW9vbkludGVuc2l0eScsXG4gICAgJ21vb25QaGFzZScsXG4gICAgJ21vcmFsZScsXG4gICAgJ21vdmUnLFxuICAgICdtb3ZlM0RFTkNhbWVyYScsXG4gICAgJ21vdmVJbkFueScsXG4gICAgJ21vdmVJbkNhcmdvJyxcbiAgICAnbW92ZUluQ29tbWFuZGVyJyxcbiAgICAnbW92ZUluRHJpdmVyJyxcbiAgICAnbW92ZUluR3VubmVyJyxcbiAgICAnbW92ZUluVHVycmV0JyxcbiAgICAnbW92ZU9iamVjdFRvRW5kJyxcbiAgICAnbW92ZU91dCcsXG4gICAgJ21vdmVUaW1lJyxcbiAgICAnbW92ZVRvJyxcbiAgICAnbW92ZVRvQ29tcGxldGVkJyxcbiAgICAnbW92ZVRvRmFpbGVkJyxcbiAgICAnbXVzaWNWb2x1bWUnLFxuICAgICduYW1lJyxcbiAgICAnbmFtZWRQcm9wZXJ0aWVzJyxcbiAgICAnbmFtZVNvdW5kJyxcbiAgICAnbmVhckVudGl0aWVzJyxcbiAgICAnbmVhcmVzdEJ1aWxkaW5nJyxcbiAgICAnbmVhcmVzdExvY2F0aW9uJyxcbiAgICAnbmVhcmVzdExvY2F0aW9ucycsXG4gICAgJ25lYXJlc3RMb2NhdGlvbldpdGhEdWJiaW5nJyxcbiAgICAnbmVhcmVzdE1pbmVzJyxcbiAgICAnbmVhcmVzdE9iamVjdCcsXG4gICAgJ25lYXJlc3RPYmplY3RzJyxcbiAgICAnbmVhcmVzdFRlcnJhaW5PYmplY3RzJyxcbiAgICAnbmVhck9iamVjdHMnLFxuICAgICduZWFyT2JqZWN0c1JlYWR5JyxcbiAgICAnbmVhclJvYWRzJyxcbiAgICAnbmVhclN1cHBsaWVzJyxcbiAgICAnbmVhclRhcmdldHMnLFxuICAgICduZWVkUmVsb2FkJyxcbiAgICAnbmVlZFNlcnZpY2UnLFxuICAgICduZXRJZCcsXG4gICAgJ25ldE9iak51bGwnLFxuICAgICduZXdPdmVybGF5JyxcbiAgICAnbmV4dE1lbnVJdGVtSW5kZXgnLFxuICAgICduZXh0V2VhdGhlckNoYW5nZScsXG4gICAgJ25NZW51SXRlbXMnLFxuICAgICdub3QnLFxuICAgICdudW1iZXJPZkVuZ2luZXNSVEQnLFxuICAgICdudW1iZXJUb0RhdGUnLFxuICAgICdvYmplY3RDdXJhdG9ycycsXG4gICAgJ29iamVjdEZyb21OZXRJZCcsXG4gICAgJ29iamVjdFBhcmVudCcsXG4gICAgJ29ialN0YXR1cycsXG4gICAgJ29uQnJpZWZpbmdHcm91cCcsXG4gICAgJ29uQnJpZWZpbmdOb3RlcycsXG4gICAgJ29uQnJpZWZpbmdQbGFuJyxcbiAgICAnb25CcmllZmluZ1RlYW1Td2l0Y2gnLFxuICAgICdvbkNvbW1hbmRNb2RlQ2hhbmdlZCcsXG4gICAgJ29uRG91YmxlQ2xpY2snLFxuICAgICdvbkVhY2hGcmFtZScsXG4gICAgJ29uR3JvdXBJY29uQ2xpY2snLFxuICAgICdvbkdyb3VwSWNvbk92ZXJFbnRlcicsXG4gICAgJ29uR3JvdXBJY29uT3ZlckxlYXZlJyxcbiAgICAnb25IQ0dyb3VwU2VsZWN0aW9uQ2hhbmdlZCcsXG4gICAgJ29uTWFwU2luZ2xlQ2xpY2snLFxuICAgICdvblBsYXllckNvbm5lY3RlZCcsXG4gICAgJ29uUGxheWVyRGlzY29ubmVjdGVkJyxcbiAgICAnb25QcmVsb2FkRmluaXNoZWQnLFxuICAgICdvblByZWxvYWRTdGFydGVkJyxcbiAgICAnb25TaG93TmV3T2JqZWN0JyxcbiAgICAnb25UZWFtU3dpdGNoJyxcbiAgICAnb3BlbkN1cmF0b3JJbnRlcmZhY2UnLFxuICAgICdvcGVuRExDUGFnZScsXG4gICAgJ29wZW5HUFMnLFxuICAgICdvcGVuTWFwJyxcbiAgICAnb3BlblN0ZWFtQXBwJyxcbiAgICAnb3BlbllvdXR1YmVWaWRlbycsXG4gICAgJ29yJyxcbiAgICAnb3JkZXJHZXRJbicsXG4gICAgJ292ZXJjYXN0JyxcbiAgICAnb3ZlcmNhc3RGb3JlY2FzdCcsXG4gICAgJ293bmVyJyxcbiAgICAncGFyYW0nLFxuICAgICdwYXJhbXMnLFxuICAgICdwYXJzZU51bWJlcicsXG4gICAgJ3BhcnNlU2ltcGxlQXJyYXknLFxuICAgICdwYXJzZVRleHQnLFxuICAgICdwYXJzaW5nTmFtZXNwYWNlJyxcbiAgICAncGFydGljbGVzUXVhbGl0eScsXG4gICAgJ3BlcmlzY29wZUVsZXZhdGlvbicsXG4gICAgJ3BpY2tXZWFwb25Qb29sJyxcbiAgICAncGl0Y2gnLFxuICAgICdwaXhlbEdyaWQnLFxuICAgICdwaXhlbEdyaWRCYXNlJyxcbiAgICAncGl4ZWxHcmlkTm9VSVNjYWxlJyxcbiAgICAncGl4ZWxIJyxcbiAgICAncGl4ZWxXJyxcbiAgICAncGxheWFibGVTbG90c051bWJlcicsXG4gICAgJ3BsYXlhYmxlVW5pdHMnLFxuICAgICdwbGF5QWN0aW9uJyxcbiAgICAncGxheUFjdGlvbk5vdycsXG4gICAgJ3BsYXllcicsXG4gICAgJ3BsYXllclJlc3Bhd25UaW1lJyxcbiAgICAncGxheWVyU2lkZScsXG4gICAgJ3BsYXllcnNOdW1iZXInLFxuICAgICdwbGF5R2VzdHVyZScsXG4gICAgJ3BsYXlNaXNzaW9uJyxcbiAgICAncGxheU1vdmUnLFxuICAgICdwbGF5TW92ZU5vdycsXG4gICAgJ3BsYXlNdXNpYycsXG4gICAgJ3BsYXlTY3JpcHRlZE1pc3Npb24nLFxuICAgICdwbGF5U291bmQnLFxuICAgICdwbGF5U291bmQzRCcsXG4gICAgJ3BsYXlTb3VuZFVJJyxcbiAgICAncG9zZScsXG4gICAgJ3Bvc2l0aW9uJyxcbiAgICAncG9zaXRpb25DYW1lcmFUb1dvcmxkJyxcbiAgICAncG9zU2NyZWVuVG9Xb3JsZCcsXG4gICAgJ3Bvc1dvcmxkVG9TY3JlZW4nLFxuICAgICdwcEVmZmVjdEFkanVzdCcsXG4gICAgJ3BwRWZmZWN0Q29tbWl0JyxcbiAgICAncHBFZmZlY3RDb21taXR0ZWQnLFxuICAgICdwcEVmZmVjdENyZWF0ZScsXG4gICAgJ3BwRWZmZWN0RGVzdHJveScsXG4gICAgJ3BwRWZmZWN0RW5hYmxlJyxcbiAgICAncHBFZmZlY3RFbmFibGVkJyxcbiAgICAncHBFZmZlY3RGb3JjZUluTlZHJyxcbiAgICAncHJlY2lzaW9uJyxcbiAgICAncHJlbG9hZENhbWVyYScsXG4gICAgJ3ByZWxvYWRPYmplY3QnLFxuICAgICdwcmVsb2FkU291bmQnLFxuICAgICdwcmVsb2FkVGl0bGVPYmonLFxuICAgICdwcmVsb2FkVGl0bGVSc2MnLFxuICAgICdwcmVwcm9jZXNzRmlsZScsXG4gICAgJ3ByZXByb2Nlc3NGaWxlTGluZU51bWJlcnMnLFxuICAgICdwcmltYXJ5V2VhcG9uJyxcbiAgICAncHJpbWFyeVdlYXBvbkl0ZW1zJyxcbiAgICAncHJpbWFyeVdlYXBvbk1hZ2F6aW5lJyxcbiAgICAncHJpb3JpdHknLFxuICAgICdwcm9jZXNzRGlhcnlMaW5rJyxcbiAgICAncHJvZHVjdFZlcnNpb24nLFxuICAgICdwcm9maWxlTmFtZScsXG4gICAgJ3Byb2ZpbGVOYW1lc3BhY2UnLFxuICAgICdwcm9maWxlTmFtZVN0ZWFtJyxcbiAgICAncHJvZ3Jlc3NMb2FkaW5nU2NyZWVuJyxcbiAgICAncHJvZ3Jlc3NQb3NpdGlvbicsXG4gICAgJ3Byb2dyZXNzU2V0UG9zaXRpb24nLFxuICAgICdwdWJsaWNWYXJpYWJsZScsXG4gICAgJ3B1YmxpY1ZhcmlhYmxlQ2xpZW50JyxcbiAgICAncHVibGljVmFyaWFibGVTZXJ2ZXInLFxuICAgICdwdXNoQmFjaycsXG4gICAgJ3B1c2hCYWNrVW5pcXVlJyxcbiAgICAncHV0V2VhcG9uUG9vbCcsXG4gICAgJ3F1ZXJ5SXRlbXNQb29sJyxcbiAgICAncXVlcnlNYWdhemluZVBvb2wnLFxuICAgICdxdWVyeVdlYXBvblBvb2wnLFxuICAgICdyYWQnLFxuICAgICdyYWRpb0NoYW5uZWxBZGQnLFxuICAgICdyYWRpb0NoYW5uZWxDcmVhdGUnLFxuICAgICdyYWRpb0NoYW5uZWxJbmZvJyxcbiAgICAncmFkaW9DaGFubmVsUmVtb3ZlJyxcbiAgICAncmFkaW9DaGFubmVsU2V0Q2FsbFNpZ24nLFxuICAgICdyYWRpb0NoYW5uZWxTZXRMYWJlbCcsXG4gICAgJ3JhZGlvRW5hYmxlZCcsXG4gICAgJ3JhZGlvVm9sdW1lJyxcbiAgICAncmFpbicsXG4gICAgJ3JhaW5ib3cnLFxuICAgICdyYWluUGFyYW1zJyxcbiAgICAncmFuZG9tJyxcbiAgICAncmFuaycsXG4gICAgJ3JhbmtJZCcsXG4gICAgJ3JhdGluZycsXG4gICAgJ3JlY3Rhbmd1bGFyJyxcbiAgICAncmVnZXhGaW5kJyxcbiAgICAncmVnZXhNYXRjaCcsXG4gICAgJ3JlZ2V4UmVwbGFjZScsXG4gICAgJ3JlZ2lzdGVyZWRUYXNrcycsXG4gICAgJ3JlZ2lzdGVyVGFzaycsXG4gICAgJ3JlbG9hZCcsXG4gICAgJ3JlbG9hZEVuYWJsZWQnLFxuICAgICdyZW1vdGVDb250cm9sJyxcbiAgICAncmVtb3RlRXhlYycsXG4gICAgJ3JlbW90ZUV4ZWNDYWxsJyxcbiAgICAncmVtb3RlRXhlY3V0ZWRPd25lcicsXG4gICAgJ3JlbW92ZTNERU5Db25uZWN0aW9uJyxcbiAgICAncmVtb3ZlM0RFTkV2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZTNERU5MYXllcicsXG4gICAgJ3JlbW92ZUFjdGlvbicsXG4gICAgJ3JlbW92ZUFsbDNERU5FdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsQWN0aW9ucycsXG4gICAgJ3JlbW92ZUFsbEFzc2lnbmVkSXRlbXMnLFxuICAgICdyZW1vdmVBbGxCaW5vY3VsYXJJdGVtcycsXG4gICAgJ3JlbW92ZUFsbENvbnRhaW5lcnMnLFxuICAgICdyZW1vdmVBbGxDdXJhdG9yQWRkb25zJyxcbiAgICAncmVtb3ZlQWxsQ3VyYXRvckNhbWVyYUFyZWFzJyxcbiAgICAncmVtb3ZlQWxsQ3VyYXRvckVkaXRpbmdBcmVhcycsXG4gICAgJ3JlbW92ZUFsbEV2ZW50SGFuZGxlcnMnLFxuICAgICdyZW1vdmVBbGxIYW5kZ3VuSXRlbXMnLFxuICAgICdyZW1vdmVBbGxJdGVtcycsXG4gICAgJ3JlbW92ZUFsbEl0ZW1zV2l0aE1hZ2F6aW5lcycsXG4gICAgJ3JlbW92ZUFsbE1pc3Npb25FdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsTVBFdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsTXVzaWNFdmVudEhhbmRsZXJzJyxcbiAgICAncmVtb3ZlQWxsT3duZWRNaW5lcycsXG4gICAgJ3JlbW92ZUFsbFByaW1hcnlXZWFwb25JdGVtcycsXG4gICAgJ3JlbW92ZUFsbFNlY29uZGFyeVdlYXBvbkl0ZW1zJyxcbiAgICAncmVtb3ZlQWxsVXNlckFjdGlvbkV2ZW50SGFuZGxlcnMnLFxuICAgICdyZW1vdmVBbGxXZWFwb25zJyxcbiAgICAncmVtb3ZlQmFja3BhY2snLFxuICAgICdyZW1vdmVCYWNrcGFja0dsb2JhbCcsXG4gICAgJ3JlbW92ZUJpbm9jdWxhckl0ZW0nLFxuICAgICdyZW1vdmVDdXJhdG9yQWRkb25zJyxcbiAgICAncmVtb3ZlQ3VyYXRvckNhbWVyYUFyZWEnLFxuICAgICdyZW1vdmVDdXJhdG9yRWRpdGFibGVPYmplY3RzJyxcbiAgICAncmVtb3ZlQ3VyYXRvckVkaXRpbmdBcmVhJyxcbiAgICAncmVtb3ZlRGlhcnlSZWNvcmQnLFxuICAgICdyZW1vdmVEaWFyeVN1YmplY3QnLFxuICAgICdyZW1vdmVEcmF3SWNvbicsXG4gICAgJ3JlbW92ZURyYXdMaW5rcycsXG4gICAgJ3JlbW92ZUV2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZUZyb21SZW1haW5zQ29sbGVjdG9yJyxcbiAgICAncmVtb3ZlR29nZ2xlcycsXG4gICAgJ3JlbW92ZUdyb3VwSWNvbicsXG4gICAgJ3JlbW92ZUhhbmRndW5JdGVtJyxcbiAgICAncmVtb3ZlSGVhZGdlYXInLFxuICAgICdyZW1vdmVJdGVtJyxcbiAgICAncmVtb3ZlSXRlbUZyb21CYWNrcGFjaycsXG4gICAgJ3JlbW92ZUl0ZW1Gcm9tVW5pZm9ybScsXG4gICAgJ3JlbW92ZUl0ZW1Gcm9tVmVzdCcsXG4gICAgJ3JlbW92ZUl0ZW1zJyxcbiAgICAncmVtb3ZlTWFnYXppbmUnLFxuICAgICdyZW1vdmVNYWdhemluZUdsb2JhbCcsXG4gICAgJ3JlbW92ZU1hZ2F6aW5lcycsXG4gICAgJ3JlbW92ZU1hZ2F6aW5lc1R1cnJldCcsXG4gICAgJ3JlbW92ZU1hZ2F6aW5lVHVycmV0JyxcbiAgICAncmVtb3ZlTWVudUl0ZW0nLFxuICAgICdyZW1vdmVNaXNzaW9uRXZlbnRIYW5kbGVyJyxcbiAgICAncmVtb3ZlTVBFdmVudEhhbmRsZXInLFxuICAgICdyZW1vdmVNdXNpY0V2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZU93bmVkTWluZScsXG4gICAgJ3JlbW92ZVByaW1hcnlXZWFwb25JdGVtJyxcbiAgICAncmVtb3ZlU2Vjb25kYXJ5V2VhcG9uSXRlbScsXG4gICAgJ3JlbW92ZVNpbXBsZVRhc2snLFxuICAgICdyZW1vdmVTd2l0Y2hhYmxlVW5pdCcsXG4gICAgJ3JlbW92ZVRlYW1NZW1iZXInLFxuICAgICdyZW1vdmVVbmlmb3JtJyxcbiAgICAncmVtb3ZlVXNlckFjdGlvbkV2ZW50SGFuZGxlcicsXG4gICAgJ3JlbW92ZVZlc3QnLFxuICAgICdyZW1vdmVXZWFwb24nLFxuICAgICdyZW1vdmVXZWFwb25BdHRhY2htZW50Q2FyZ28nLFxuICAgICdyZW1vdmVXZWFwb25DYXJnbycsXG4gICAgJ3JlbW92ZVdlYXBvbkdsb2JhbCcsXG4gICAgJ3JlbW92ZVdlYXBvblR1cnJldCcsXG4gICAgJ3JlcG9ydFJlbW90ZVRhcmdldCcsXG4gICAgJ3JlcXVpcmVkVmVyc2lvbicsXG4gICAgJ3Jlc2V0Q2FtU2hha2UnLFxuICAgICdyZXNldFN1Ymdyb3VwRGlyZWN0aW9uJyxcbiAgICAncmVzaXplJyxcbiAgICAncmVzb3VyY2VzJyxcbiAgICAncmVzcGF3blZlaGljbGUnLFxuICAgICdyZXN0YXJ0RWRpdG9yQ2FtZXJhJyxcbiAgICAncmV2ZWFsJyxcbiAgICAncmV2ZWFsTWluZScsXG4gICAgJ3JldmVyc2UnLFxuICAgICdyZXZlcnNlZE1vdXNlWScsXG4gICAgJ3JvYWRBdCcsXG4gICAgJ3JvYWRzQ29ubmVjdGVkVG8nLFxuICAgICdyb2xlRGVzY3JpcHRpb24nLFxuICAgICdyb3BlQXR0YWNoZWRPYmplY3RzJyxcbiAgICAncm9wZUF0dGFjaGVkVG8nLFxuICAgICdyb3BlQXR0YWNoRW5hYmxlZCcsXG4gICAgJ3JvcGVBdHRhY2hUbycsXG4gICAgJ3JvcGVDcmVhdGUnLFxuICAgICdyb3BlQ3V0JyxcbiAgICAncm9wZURlc3Ryb3knLFxuICAgICdyb3BlRGV0YWNoJyxcbiAgICAncm9wZUVuZFBvc2l0aW9uJyxcbiAgICAncm9wZUxlbmd0aCcsXG4gICAgJ3JvcGVzJyxcbiAgICAncm9wZXNBdHRhY2hlZFRvJyxcbiAgICAncm9wZVNlZ21lbnRzJyxcbiAgICAncm9wZVVud2luZCcsXG4gICAgJ3JvcGVVbndvdW5kJyxcbiAgICAncm90b3JzRm9yY2VzUlREJyxcbiAgICAncm90b3JzUnBtUlREJyxcbiAgICAncm91bmQnLFxuICAgICdydW5Jbml0U2NyaXB0JyxcbiAgICAnc2FmZVpvbmVIJyxcbiAgICAnc2FmZVpvbmVXJyxcbiAgICAnc2FmZVpvbmVXQWJzJyxcbiAgICAnc2FmZVpvbmVYJyxcbiAgICAnc2FmZVpvbmVYQWJzJyxcbiAgICAnc2FmZVpvbmVZJyxcbiAgICAnc2F2ZTNERU5JbnZlbnRvcnknLFxuICAgICdzYXZlR2FtZScsXG4gICAgJ3NhdmVJZGVudGl0eScsXG4gICAgJ3NhdmVKb3lzdGlja3MnLFxuICAgICdzYXZlTWlzc2lvblByb2ZpbGVOYW1lc3BhY2UnLFxuICAgICdzYXZlT3ZlcmxheScsXG4gICAgJ3NhdmVQcm9maWxlTmFtZXNwYWNlJyxcbiAgICAnc2F2ZVN0YXR1cycsXG4gICAgJ3NhdmVWYXInLFxuICAgICdzYXZpbmdFbmFibGVkJyxcbiAgICAnc2F5JyxcbiAgICAnc2F5MkQnLFxuICAgICdzYXkzRCcsXG4gICAgJ3Njb3BlTmFtZScsXG4gICAgJ3Njb3JlJyxcbiAgICAnc2NvcmVTaWRlJyxcbiAgICAnc2NyZWVuc2hvdCcsXG4gICAgJ3NjcmVlblRvV29ybGQnLFxuICAgICdzY3JpcHREb25lJyxcbiAgICAnc2NyaXB0TmFtZScsXG4gICAgJ3NjdWRTdGF0ZScsXG4gICAgJ3NlY29uZGFyeVdlYXBvbicsXG4gICAgJ3NlY29uZGFyeVdlYXBvbkl0ZW1zJyxcbiAgICAnc2Vjb25kYXJ5V2VhcG9uTWFnYXppbmUnLFxuICAgICdzZWxlY3QnLFxuICAgICdzZWxlY3RCZXN0UGxhY2VzJyxcbiAgICAnc2VsZWN0RGlhcnlTdWJqZWN0JyxcbiAgICAnc2VsZWN0ZWRFZGl0b3JPYmplY3RzJyxcbiAgICAnc2VsZWN0RWRpdG9yT2JqZWN0JyxcbiAgICAnc2VsZWN0aW9uTmFtZXMnLFxuICAgICdzZWxlY3Rpb25Qb3NpdGlvbicsXG4gICAgJ3NlbGVjdGlvblZlY3RvckRpckFuZFVwJyxcbiAgICAnc2VsZWN0TGVhZGVyJyxcbiAgICAnc2VsZWN0TWF4JyxcbiAgICAnc2VsZWN0TWluJyxcbiAgICAnc2VsZWN0Tm9QbGF5ZXInLFxuICAgICdzZWxlY3RQbGF5ZXInLFxuICAgICdzZWxlY3RSYW5kb20nLFxuICAgICdzZWxlY3RSYW5kb21XZWlnaHRlZCcsXG4gICAgJ3NlbGVjdFdlYXBvbicsXG4gICAgJ3NlbGVjdFdlYXBvblR1cnJldCcsXG4gICAgJ3NlbmRBVU1lc3NhZ2UnLFxuICAgICdzZW5kU2ltcGxlQ29tbWFuZCcsXG4gICAgJ3NlbmRUYXNrJyxcbiAgICAnc2VuZFRhc2tSZXN1bHQnLFxuICAgICdzZW5kVURQTWVzc2FnZScsXG4gICAgJ3NlbnRlbmNlc0VuYWJsZWQnLFxuICAgICdzZXJ2ZXJDb21tYW5kJyxcbiAgICAnc2VydmVyQ29tbWFuZEF2YWlsYWJsZScsXG4gICAgJ3NlcnZlckNvbW1hbmRFeGVjdXRhYmxlJyxcbiAgICAnc2VydmVyTmFtZScsXG4gICAgJ3NlcnZlck5hbWVzcGFjZScsXG4gICAgJ3NlcnZlclRpbWUnLFxuICAgICdzZXQnLFxuICAgICdzZXQzREVOQXR0cmlidXRlJyxcbiAgICAnc2V0M0RFTkF0dHJpYnV0ZXMnLFxuICAgICdzZXQzREVOR3JpZCcsXG4gICAgJ3NldDNERU5JY29uc1Zpc2libGUnLFxuICAgICdzZXQzREVOTGF5ZXInLFxuICAgICdzZXQzREVOTGluZXNWaXNpYmxlJyxcbiAgICAnc2V0M0RFTkxvZ2ljVHlwZScsXG4gICAgJ3NldDNERU5NaXNzaW9uQXR0cmlidXRlJyxcbiAgICAnc2V0M0RFTk1pc3Npb25BdHRyaWJ1dGVzJyxcbiAgICAnc2V0M0RFTk1vZGVsc1Zpc2libGUnLFxuICAgICdzZXQzREVOT2JqZWN0VHlwZScsXG4gICAgJ3NldDNERU5TZWxlY3RlZCcsXG4gICAgJ3NldEFjY1RpbWUnLFxuICAgICdzZXRBY3R1YWxDb2xsZWN0aXZlUlREJyxcbiAgICAnc2V0QWlycGxhbmVUaHJvdHRsZScsXG4gICAgJ3NldEFpcnBvcnRTaWRlJyxcbiAgICAnc2V0QW1tbycsXG4gICAgJ3NldEFtbW9DYXJnbycsXG4gICAgJ3NldEFtbW9PblB5bG9uJyxcbiAgICAnc2V0QW5pbVNwZWVkQ29lZicsXG4gICAgJ3NldEFwZXJ0dXJlJyxcbiAgICAnc2V0QXBlcnR1cmVOZXcnLFxuICAgICdzZXRBcm1vcnlQb2ludHMnLFxuICAgICdzZXRBdHRyaWJ1dGVzJyxcbiAgICAnc2V0QXV0b25vbW91cycsXG4gICAgJ3NldEJlaGF2aW91cicsXG4gICAgJ3NldEJlaGF2aW91clN0cm9uZycsXG4gICAgJ3NldEJsZWVkaW5nUmVtYWluaW5nJyxcbiAgICAnc2V0QnJha2VzUlREJyxcbiAgICAnc2V0Q2FtZXJhSW50ZXJlc3QnLFxuICAgICdzZXRDYW1TaGFrZURlZlBhcmFtcycsXG4gICAgJ3NldENhbVNoYWtlUGFyYW1zJyxcbiAgICAnc2V0Q2FtVXNlVGknLFxuICAgICdzZXRDYXB0aXZlJyxcbiAgICAnc2V0Q2VudGVyT2ZNYXNzJyxcbiAgICAnc2V0Q29sbGlzaW9uTGlnaHQnLFxuICAgICdzZXRDb21iYXRCZWhhdmlvdXInLFxuICAgICdzZXRDb21iYXRNb2RlJyxcbiAgICAnc2V0Q29tcGFzc09zY2lsbGF0aW9uJyxcbiAgICAnc2V0Q29udm95U2VwYXJhdGlvbicsXG4gICAgJ3NldENydWlzZUNvbnRyb2wnLFxuICAgICdzZXRDdXJhdG9yQ2FtZXJhQXJlYUNlaWxpbmcnLFxuICAgICdzZXRDdXJhdG9yQ29lZicsXG4gICAgJ3NldEN1cmF0b3JFZGl0aW5nQXJlYVR5cGUnLFxuICAgICdzZXRDdXJhdG9yV2F5cG9pbnRDb3N0JyxcbiAgICAnc2V0Q3VycmVudENoYW5uZWwnLFxuICAgICdzZXRDdXJyZW50VGFzaycsXG4gICAgJ3NldEN1cnJlbnRXYXlwb2ludCcsXG4gICAgJ3NldEN1c3RvbUFpbUNvZWYnLFxuICAgICdTZXRDdXN0b21NaXNzaW9uRGF0YScsXG4gICAgJ3NldEN1c3RvbVNvdW5kQ29udHJvbGxlcicsXG4gICAgJ3NldEN1c3RvbVdlaWdodFJURCcsXG4gICAgJ3NldERhbWFnZScsXG4gICAgJ3NldERhbW1hZ2UnLFxuICAgICdzZXREYXRlJyxcbiAgICAnc2V0RGVicmllZmluZ1RleHQnLFxuICAgICdzZXREZWZhdWx0Q2FtZXJhJyxcbiAgICAnc2V0RGVzdGluYXRpb24nLFxuICAgICdzZXREZXRhaWxNYXBCbGVuZFBhcnMnLFxuICAgICdzZXREaWFyeVJlY29yZFRleHQnLFxuICAgICdzZXREaWFyeVN1YmplY3RQaWN0dXJlJyxcbiAgICAnc2V0RGlyJyxcbiAgICAnc2V0RGlyZWN0aW9uJyxcbiAgICAnc2V0RHJhd0ljb24nLFxuICAgICdzZXREcml2ZU9uUGF0aCcsXG4gICAgJ3NldERyb3BJbnRlcnZhbCcsXG4gICAgJ3NldER5bmFtaWNTaW11bGF0aW9uRGlzdGFuY2UnLFxuICAgICdzZXREeW5hbWljU2ltdWxhdGlvbkRpc3RhbmNlQ29lZicsXG4gICAgJ3NldEVkaXRvck1vZGUnLFxuICAgICdzZXRFZGl0b3JPYmplY3RTY29wZScsXG4gICAgJ3NldEVmZmVjdENvbmRpdGlvbicsXG4gICAgJ3NldEVmZmVjdGl2ZUNvbW1hbmRlcicsXG4gICAgJ3NldEVuZ2luZVJwbVJURCcsXG4gICAgJ3NldEZhY2UnLFxuICAgICdzZXRGYWNlYW5pbWF0aW9uJyxcbiAgICAnc2V0RmF0aWd1ZScsXG4gICAgJ3NldEZlYXR1cmVUeXBlJyxcbiAgICAnc2V0RmxhZ0FuaW1hdGlvblBoYXNlJyxcbiAgICAnc2V0RmxhZ093bmVyJyxcbiAgICAnc2V0RmxhZ1NpZGUnLFxuICAgICdzZXRGbGFnVGV4dHVyZScsXG4gICAgJ3NldEZvZycsXG4gICAgJ3NldEZvcmNlR2VuZXJhdG9yUlREJyxcbiAgICAnc2V0Rm9ybWF0aW9uJyxcbiAgICAnc2V0Rm9ybWF0aW9uVGFzaycsXG4gICAgJ3NldEZvcm1EaXInLFxuICAgICdzZXRGcmllbmQnLFxuICAgICdzZXRGcm9tRWRpdG9yJyxcbiAgICAnc2V0RlNNVmFyaWFibGUnLFxuICAgICdzZXRGdWVsJyxcbiAgICAnc2V0RnVlbENhcmdvJyxcbiAgICAnc2V0R3JvdXBJY29uJyxcbiAgICAnc2V0R3JvdXBJY29uUGFyYW1zJyxcbiAgICAnc2V0R3JvdXBJY29uc1NlbGVjdGFibGUnLFxuICAgICdzZXRHcm91cEljb25zVmlzaWJsZScsXG4gICAgJ3NldEdyb3VwaWQnLFxuICAgICdzZXRHcm91cElkR2xvYmFsJyxcbiAgICAnc2V0R3JvdXBPd25lcicsXG4gICAgJ3NldEd1c3RzJyxcbiAgICAnc2V0SGlkZUJlaGluZCcsXG4gICAgJ3NldEhpdCcsXG4gICAgJ3NldEhpdEluZGV4JyxcbiAgICAnc2V0SGl0UG9pbnREYW1hZ2UnLFxuICAgICdzZXRIb3Jpem9uUGFyYWxsYXhDb2VmJyxcbiAgICAnc2V0SFVETW92ZW1lbnRMZXZlbHMnLFxuICAgICdzZXRIdW1pZGl0eScsXG4gICAgJ3NldElkZW50aXR5JyxcbiAgICAnc2V0SW1wb3J0YW5jZScsXG4gICAgJ3NldEluZm9QYW5lbCcsXG4gICAgJ3NldExlYWRlcicsXG4gICAgJ3NldExpZ2h0QW1iaWVudCcsXG4gICAgJ3NldExpZ2h0QXR0ZW51YXRpb24nLFxuICAgICdzZXRMaWdodEJyaWdodG5lc3MnLFxuICAgICdzZXRMaWdodENvbG9yJyxcbiAgICAnc2V0TGlnaHRDb25lUGFycycsXG4gICAgJ3NldExpZ2h0RGF5TGlnaHQnLFxuICAgICdzZXRMaWdodEZsYXJlTWF4RGlzdGFuY2UnLFxuICAgICdzZXRMaWdodEZsYXJlU2l6ZScsXG4gICAgJ3NldExpZ2h0SW50ZW5zaXR5JyxcbiAgICAnc2V0TGlnaHRJUicsXG4gICAgJ3NldExpZ2h0bmluZ3MnLFxuICAgICdzZXRMaWdodFVzZUZsYXJlJyxcbiAgICAnc2V0TGlnaHRWb2x1bWVTaGFwZScsXG4gICAgJ3NldExvY2FsV2luZFBhcmFtcycsXG4gICAgJ3NldE1hZ2F6aW5lVHVycmV0QW1tbycsXG4gICAgJ3NldE1hcmtlckFscGhhJyxcbiAgICAnc2V0TWFya2VyQWxwaGFMb2NhbCcsXG4gICAgJ3NldE1hcmtlckJydXNoJyxcbiAgICAnc2V0TWFya2VyQnJ1c2hMb2NhbCcsXG4gICAgJ3NldE1hcmtlckNvbG9yJyxcbiAgICAnc2V0TWFya2VyQ29sb3JMb2NhbCcsXG4gICAgJ3NldE1hcmtlckRpcicsXG4gICAgJ3NldE1hcmtlckRpckxvY2FsJyxcbiAgICAnc2V0TWFya2VyUG9seWxpbmUnLFxuICAgICdzZXRNYXJrZXJQb2x5bGluZUxvY2FsJyxcbiAgICAnc2V0TWFya2VyUG9zJyxcbiAgICAnc2V0TWFya2VyUG9zTG9jYWwnLFxuICAgICdzZXRNYXJrZXJTaGFkb3cnLFxuICAgICdzZXRNYXJrZXJTaGFkb3dMb2NhbCcsXG4gICAgJ3NldE1hcmtlclNoYXBlJyxcbiAgICAnc2V0TWFya2VyU2hhcGVMb2NhbCcsXG4gICAgJ3NldE1hcmtlclNpemUnLFxuICAgICdzZXRNYXJrZXJTaXplTG9jYWwnLFxuICAgICdzZXRNYXJrZXJUZXh0JyxcbiAgICAnc2V0TWFya2VyVGV4dExvY2FsJyxcbiAgICAnc2V0TWFya2VyVHlwZScsXG4gICAgJ3NldE1hcmtlclR5cGVMb2NhbCcsXG4gICAgJ3NldE1hc3MnLFxuICAgICdzZXRNYXhMb2FkJyxcbiAgICAnc2V0TWltaWMnLFxuICAgICdzZXRNaXNzaWxlVGFyZ2V0JyxcbiAgICAnc2V0TWlzc2lsZVRhcmdldFBvcycsXG4gICAgJ3NldE1vdXNlUG9zaXRpb24nLFxuICAgICdzZXRNdXNpY0VmZmVjdCcsXG4gICAgJ3NldE11c2ljRXZlbnRIYW5kbGVyJyxcbiAgICAnc2V0TmFtZScsXG4gICAgJ3NldE5hbWVTb3VuZCcsXG4gICAgJ3NldE9iamVjdEFyZ3VtZW50cycsXG4gICAgJ3NldE9iamVjdE1hdGVyaWFsJyxcbiAgICAnc2V0T2JqZWN0TWF0ZXJpYWxHbG9iYWwnLFxuICAgICdzZXRPYmplY3RQcm94eScsXG4gICAgJ3NldE9iamVjdFNjYWxlJyxcbiAgICAnc2V0T2JqZWN0VGV4dHVyZScsXG4gICAgJ3NldE9iamVjdFRleHR1cmVHbG9iYWwnLFxuICAgICdzZXRPYmplY3RWaWV3RGlzdGFuY2UnLFxuICAgICdzZXRPcHRpY3NNb2RlJyxcbiAgICAnc2V0T3ZlcmNhc3QnLFxuICAgICdzZXRPd25lcicsXG4gICAgJ3NldE94eWdlblJlbWFpbmluZycsXG4gICAgJ3NldFBhcnRpY2xlQ2lyY2xlJyxcbiAgICAnc2V0UGFydGljbGVDbGFzcycsXG4gICAgJ3NldFBhcnRpY2xlRmlyZScsXG4gICAgJ3NldFBhcnRpY2xlUGFyYW1zJyxcbiAgICAnc2V0UGFydGljbGVSYW5kb20nLFxuICAgICdzZXRQaWxvdENhbWVyYURpcmVjdGlvbicsXG4gICAgJ3NldFBpbG90Q2FtZXJhUm90YXRpb24nLFxuICAgICdzZXRQaWxvdENhbWVyYVRhcmdldCcsXG4gICAgJ3NldFBpbG90TGlnaHQnLFxuICAgICdzZXRQaVBFZmZlY3QnLFxuICAgICdzZXRQaVBWaWV3RGlzdGFuY2UnLFxuICAgICdzZXRQaXRjaCcsXG4gICAgJ3NldFBsYXRlTnVtYmVyJyxcbiAgICAnc2V0UGxheWFibGUnLFxuICAgICdzZXRQbGF5ZXJSZXNwYXduVGltZScsXG4gICAgJ3NldFBsYXllclZvTlZvbHVtZScsXG4gICAgJ3NldFBvcycsXG4gICAgJ3NldFBvc0FTTCcsXG4gICAgJ3NldFBvc0FTTDInLFxuICAgICdzZXRQb3NBU0xXJyxcbiAgICAnc2V0UG9zQVRMJyxcbiAgICAnc2V0UG9zaXRpb24nLFxuICAgICdzZXRQb3NXb3JsZCcsXG4gICAgJ3NldFB5bG9uTG9hZG91dCcsXG4gICAgJ3NldFB5bG9uc1ByaW9yaXR5JyxcbiAgICAnc2V0UmFkaW9Nc2cnLFxuICAgICdzZXRSYWluJyxcbiAgICAnc2V0UmFpbmJvdycsXG4gICAgJ3NldFJhbmRvbUxpcCcsXG4gICAgJ3NldFJhbmsnLFxuICAgICdzZXRSZWN0YW5ndWxhcicsXG4gICAgJ3NldFJlcGFpckNhcmdvJyxcbiAgICAnc2V0Um90b3JCcmFrZVJURCcsXG4gICAgJ3NldFNoYWRvd0Rpc3RhbmNlJyxcbiAgICAnc2V0U2hvdFBhcmVudHMnLFxuICAgICdzZXRTaWRlJyxcbiAgICAnc2V0U2ltcGxlVGFza0Fsd2F5c1Zpc2libGUnLFxuICAgICdzZXRTaW1wbGVUYXNrQ3VzdG9tRGF0YScsXG4gICAgJ3NldFNpbXBsZVRhc2tEZXNjcmlwdGlvbicsXG4gICAgJ3NldFNpbXBsZVRhc2tEZXN0aW5hdGlvbicsXG4gICAgJ3NldFNpbXBsZVRhc2tUYXJnZXQnLFxuICAgICdzZXRTaW1wbGVUYXNrVHlwZScsXG4gICAgJ3NldFNpbXVsV2VhdGhlckxheWVycycsXG4gICAgJ3NldFNpemUnLFxuICAgICdzZXRTa2lsbCcsXG4gICAgJ3NldFNsaW5nTG9hZCcsXG4gICAgJ3NldFNvdW5kRWZmZWN0JyxcbiAgICAnc2V0U3BlYWtlcicsXG4gICAgJ3NldFNwZWVjaCcsXG4gICAgJ3NldFNwZWVkTW9kZScsXG4gICAgJ3NldFN0YW1pbmEnLFxuICAgICdzZXRTdGFtaW5hU2NoZW1lJyxcbiAgICAnc2V0U3RhdFZhbHVlJyxcbiAgICAnc2V0U3VwcHJlc3Npb24nLFxuICAgICdzZXRTeXN0ZW1PZlVuaXRzJyxcbiAgICAnc2V0VGFyZ2V0QWdlJyxcbiAgICAnc2V0VGFza01hcmtlck9mZnNldCcsXG4gICAgJ3NldFRhc2tSZXN1bHQnLFxuICAgICdzZXRUYXNrU3RhdGUnLFxuICAgICdzZXRUZXJyYWluR3JpZCcsXG4gICAgJ3NldFRlcnJhaW5IZWlnaHQnLFxuICAgICdzZXRUZXh0JyxcbiAgICAnc2V0VGltZU11bHRpcGxpZXInLFxuICAgICdzZXRUaVBhcmFtZXRlcicsXG4gICAgJ3NldFRpdGxlRWZmZWN0JyxcbiAgICAnc2V0VG93UGFyZW50JyxcbiAgICAnc2V0VHJhZmZpY0RlbnNpdHknLFxuICAgICdzZXRUcmFmZmljRGlzdGFuY2UnLFxuICAgICdzZXRUcmFmZmljR2FwJyxcbiAgICAnc2V0VHJhZmZpY1NwZWVkJyxcbiAgICAnc2V0VHJpZ2dlckFjdGl2YXRpb24nLFxuICAgICdzZXRUcmlnZ2VyQXJlYScsXG4gICAgJ3NldFRyaWdnZXJJbnRlcnZhbCcsXG4gICAgJ3NldFRyaWdnZXJTdGF0ZW1lbnRzJyxcbiAgICAnc2V0VHJpZ2dlclRleHQnLFxuICAgICdzZXRUcmlnZ2VyVGltZW91dCcsXG4gICAgJ3NldFRyaWdnZXJUeXBlJyxcbiAgICAnc2V0VHVycmV0TGltaXRzJyxcbiAgICAnc2V0VHVycmV0T3B0aWNzTW9kZScsXG4gICAgJ3NldFR5cGUnLFxuICAgICdzZXRVbmNvbnNjaW91cycsXG4gICAgJ3NldFVuaXRBYmlsaXR5JyxcbiAgICAnc2V0VW5pdENvbWJhdE1vZGUnLFxuICAgICdzZXRVbml0RnJlZWZhbGxIZWlnaHQnLFxuICAgICdzZXRVbml0TG9hZG91dCcsXG4gICAgJ3NldFVuaXRQb3MnLFxuICAgICdzZXRVbml0UG9zV2VhaycsXG4gICAgJ3NldFVuaXRSYW5rJyxcbiAgICAnc2V0VW5pdFJlY29pbENvZWZmaWNpZW50JyxcbiAgICAnc2V0VW5pdFRyYWl0JyxcbiAgICAnc2V0VW5sb2FkSW5Db21iYXQnLFxuICAgICdzZXRVc2VyQWN0aW9uVGV4dCcsXG4gICAgJ3NldFVzZXJNRkRUZXh0JyxcbiAgICAnc2V0VXNlck1GRFZhbHVlJyxcbiAgICAnc2V0VmFyaWFibGUnLFxuICAgICdzZXRWZWN0b3JEaXInLFxuICAgICdzZXRWZWN0b3JEaXJBbmRVcCcsXG4gICAgJ3NldFZlY3RvclVwJyxcbiAgICAnc2V0VmVoaWNsZUFtbW8nLFxuICAgICdzZXRWZWhpY2xlQW1tb0RlZicsXG4gICAgJ3NldFZlaGljbGVBcm1vcicsXG4gICAgJ3NldFZlaGljbGVDYXJnbycsXG4gICAgJ3NldFZlaGljbGVJZCcsXG4gICAgJ3NldFZlaGljbGVMb2NrJyxcbiAgICAnc2V0VmVoaWNsZVBvc2l0aW9uJyxcbiAgICAnc2V0VmVoaWNsZVJhZGFyJyxcbiAgICAnc2V0VmVoaWNsZVJlY2VpdmVSZW1vdGVUYXJnZXRzJyxcbiAgICAnc2V0VmVoaWNsZVJlcG9ydE93blBvc2l0aW9uJyxcbiAgICAnc2V0VmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHMnLFxuICAgICdzZXRWZWhpY2xlVGlQYXJzJyxcbiAgICAnc2V0VmVoaWNsZVZhck5hbWUnLFxuICAgICdzZXRWZWxvY2l0eScsXG4gICAgJ3NldFZlbG9jaXR5TW9kZWxTcGFjZScsXG4gICAgJ3NldFZlbG9jaXR5VHJhbnNmb3JtYXRpb24nLFxuICAgICdzZXRWaWV3RGlzdGFuY2UnLFxuICAgICdzZXRWaXNpYmxlSWZUcmVlQ29sbGFwc2VkJyxcbiAgICAnc2V0V2FudGVkUlBNUlREJyxcbiAgICAnc2V0V2F2ZXMnLFxuICAgICdzZXRXYXlwb2ludEJlaGF2aW91cicsXG4gICAgJ3NldFdheXBvaW50Q29tYmF0TW9kZScsXG4gICAgJ3NldFdheXBvaW50Q29tcGxldGlvblJhZGl1cycsXG4gICAgJ3NldFdheXBvaW50RGVzY3JpcHRpb24nLFxuICAgICdzZXRXYXlwb2ludEZvcmNlQmVoYXZpb3VyJyxcbiAgICAnc2V0V2F5cG9pbnRGb3JtYXRpb24nLFxuICAgICdzZXRXYXlwb2ludEhvdXNlUG9zaXRpb24nLFxuICAgICdzZXRXYXlwb2ludExvaXRlckFsdGl0dWRlJyxcbiAgICAnc2V0V2F5cG9pbnRMb2l0ZXJSYWRpdXMnLFxuICAgICdzZXRXYXlwb2ludExvaXRlclR5cGUnLFxuICAgICdzZXRXYXlwb2ludE5hbWUnLFxuICAgICdzZXRXYXlwb2ludFBvc2l0aW9uJyxcbiAgICAnc2V0V2F5cG9pbnRTY3JpcHQnLFxuICAgICdzZXRXYXlwb2ludFNwZWVkJyxcbiAgICAnc2V0V2F5cG9pbnRTdGF0ZW1lbnRzJyxcbiAgICAnc2V0V2F5cG9pbnRUaW1lb3V0JyxcbiAgICAnc2V0V2F5cG9pbnRUeXBlJyxcbiAgICAnc2V0V2F5cG9pbnRWaXNpYmxlJyxcbiAgICAnc2V0V2VhcG9uUmVsb2FkaW5nVGltZScsXG4gICAgJ3NldFdlYXBvblplcm9pbmcnLFxuICAgICdzZXRXaW5kJyxcbiAgICAnc2V0V2luZERpcicsXG4gICAgJ3NldFdpbmRGb3JjZScsXG4gICAgJ3NldFdpbmRTdHInLFxuICAgICdzZXRXaW5nRm9yY2VTY2FsZVJURCcsXG4gICAgJ3NldFdQUG9zJyxcbiAgICAnc2hvdzNESWNvbnMnLFxuICAgICdzaG93Q2hhdCcsXG4gICAgJ3Nob3dDaW5lbWFCb3JkZXInLFxuICAgICdzaG93Q29tbWFuZGluZ01lbnUnLFxuICAgICdzaG93Q29tcGFzcycsXG4gICAgJ3Nob3dDdXJhdG9yQ29tcGFzcycsXG4gICAgJ3Nob3dHcHMnLFxuICAgICdzaG93SFVEJyxcbiAgICAnc2hvd0xlZ2VuZCcsXG4gICAgJ3Nob3dNYXAnLFxuICAgICdzaG93bkFydGlsbGVyeUNvbXB1dGVyJyxcbiAgICAnc2hvd25DaGF0JyxcbiAgICAnc2hvd25Db21wYXNzJyxcbiAgICAnc2hvd25DdXJhdG9yQ29tcGFzcycsXG4gICAgJ3Nob3dOZXdFZGl0b3JPYmplY3QnLFxuICAgICdzaG93bkdwcycsXG4gICAgJ3Nob3duSFVEJyxcbiAgICAnc2hvd25NYXAnLFxuICAgICdzaG93blBhZCcsXG4gICAgJ3Nob3duUmFkaW8nLFxuICAgICdzaG93blNjb3JldGFibGUnLFxuICAgICdzaG93blN1YnRpdGxlcycsXG4gICAgJ3Nob3duVUFWRmVlZCcsXG4gICAgJ3Nob3duV2FycmFudCcsXG4gICAgJ3Nob3duV2F0Y2gnLFxuICAgICdzaG93UGFkJyxcbiAgICAnc2hvd1JhZGlvJyxcbiAgICAnc2hvd1Njb3JldGFibGUnLFxuICAgICdzaG93U3VidGl0bGVzJyxcbiAgICAnc2hvd1VBVkZlZWQnLFxuICAgICdzaG93V2FycmFudCcsXG4gICAgJ3Nob3dXYXRjaCcsXG4gICAgJ3Nob3dXYXlwb2ludCcsXG4gICAgJ3Nob3dXYXlwb2ludHMnLFxuICAgICdzaWRlJyxcbiAgICAnc2lkZUNoYXQnLFxuICAgICdzaWRlUmFkaW8nLFxuICAgICdzaW1wbGVUYXNrcycsXG4gICAgJ3NpbXVsYXRpb25FbmFibGVkJyxcbiAgICAnc2ltdWxDbG91ZERlbnNpdHknLFxuICAgICdzaW11bENsb3VkT2NjbHVzaW9uJyxcbiAgICAnc2ltdWxJbkNsb3VkcycsXG4gICAgJ3NpbXVsV2VhdGhlclN5bmMnLFxuICAgICdzaW4nLFxuICAgICdzaXplJyxcbiAgICAnc2l6ZU9mJyxcbiAgICAnc2tpbGwnLFxuICAgICdza2lsbEZpbmFsJyxcbiAgICAnc2tpcFRpbWUnLFxuICAgICdzbGVlcCcsXG4gICAgJ3NsaWRlclBvc2l0aW9uJyxcbiAgICAnc2xpZGVyUmFuZ2UnLFxuICAgICdzbGlkZXJTZXRQb3NpdGlvbicsXG4gICAgJ3NsaWRlclNldFJhbmdlJyxcbiAgICAnc2xpZGVyU2V0U3BlZWQnLFxuICAgICdzbGlkZXJTcGVlZCcsXG4gICAgJ3NsaW5nTG9hZEFzc2lzdGFudFNob3duJyxcbiAgICAnc29sZGllck1hZ2F6aW5lcycsXG4gICAgJ3NvbWVBbW1vJyxcbiAgICAnc29ydCcsXG4gICAgJ3NvdW5kVm9sdW1lJyxcbiAgICAnc3Bhd24nLFxuICAgICdzcGVha2VyJyxcbiAgICAnc3BlZWNoVm9sdW1lJyxcbiAgICAnc3BlZWQnLFxuICAgICdzcGVlZE1vZGUnLFxuICAgICdzcGxpdFN0cmluZycsXG4gICAgJ3NxcnQnLFxuICAgICdzcXVhZFBhcmFtcycsXG4gICAgJ3N0YW5jZScsXG4gICAgJ3N0YXJ0TG9hZGluZ1NjcmVlbicsXG4gICAgJ3N0b3AnLFxuICAgICdzdG9wRW5naW5lUlREJyxcbiAgICAnc3RvcHBlZCcsXG4gICAgJ3N0cicsXG4gICAgJ3N1bk9yTW9vbicsXG4gICAgJ3N1cHBvcnRJbmZvJyxcbiAgICAnc3VwcHJlc3NGb3InLFxuICAgICdzdXJmYWNlSXNXYXRlcicsXG4gICAgJ3N1cmZhY2VOb3JtYWwnLFxuICAgICdzdXJmYWNlVGV4dHVyZScsXG4gICAgJ3N1cmZhY2VUeXBlJyxcbiAgICAnc3dpbUluRGVwdGgnLFxuICAgICdzd2l0Y2hhYmxlVW5pdHMnLFxuICAgICdzd2l0Y2hBY3Rpb24nLFxuICAgICdzd2l0Y2hDYW1lcmEnLFxuICAgICdzd2l0Y2hHZXN0dXJlJyxcbiAgICAnc3dpdGNoTGlnaHQnLFxuICAgICdzd2l0Y2hNb3ZlJyxcbiAgICAnc3luY2hyb25pemVkT2JqZWN0cycsXG4gICAgJ3N5bmNocm9uaXplZFRyaWdnZXJzJyxcbiAgICAnc3luY2hyb25pemVkV2F5cG9pbnRzJyxcbiAgICAnc3luY2hyb25pemVPYmplY3RzQWRkJyxcbiAgICAnc3luY2hyb25pemVPYmplY3RzUmVtb3ZlJyxcbiAgICAnc3luY2hyb25pemVUcmlnZ2VyJyxcbiAgICAnc3luY2hyb25pemVXYXlwb2ludCcsXG4gICAgJ3N5c3RlbUNoYXQnLFxuICAgICdzeXN0ZW1PZlVuaXRzJyxcbiAgICAnc3lzdGVtVGltZScsXG4gICAgJ3N5c3RlbVRpbWVVVEMnLFxuICAgICd0YW4nLFxuICAgICd0YXJnZXRLbm93bGVkZ2UnLFxuICAgICd0YXJnZXRzJyxcbiAgICAndGFyZ2V0c0FnZ3JlZ2F0ZScsXG4gICAgJ3RhcmdldHNRdWVyeScsXG4gICAgJ3Rhc2tBbHdheXNWaXNpYmxlJyxcbiAgICAndGFza0NoaWxkcmVuJyxcbiAgICAndGFza0NvbXBsZXRlZCcsXG4gICAgJ3Rhc2tDdXN0b21EYXRhJyxcbiAgICAndGFza0Rlc2NyaXB0aW9uJyxcbiAgICAndGFza0Rlc3RpbmF0aW9uJyxcbiAgICAndGFza0hpbnQnLFxuICAgICd0YXNrTWFya2VyT2Zmc2V0JyxcbiAgICAndGFza05hbWUnLFxuICAgICd0YXNrUGFyZW50JyxcbiAgICAndGFza1Jlc3VsdCcsXG4gICAgJ3Rhc2tTdGF0ZScsXG4gICAgJ3Rhc2tUeXBlJyxcbiAgICAndGVhbU1lbWJlcicsXG4gICAgJ3RlYW1OYW1lJyxcbiAgICAndGVhbXMnLFxuICAgICd0ZWFtU3dpdGNoJyxcbiAgICAndGVhbVN3aXRjaEVuYWJsZWQnLFxuICAgICd0ZWFtVHlwZScsXG4gICAgJ3Rlcm1pbmF0ZScsXG4gICAgJ3RlcnJhaW5JbnRlcnNlY3QnLFxuICAgICd0ZXJyYWluSW50ZXJzZWN0QVNMJyxcbiAgICAndGVycmFpbkludGVyc2VjdEF0QVNMJyxcbiAgICAndGV4dCcsXG4gICAgJ3RleHRMb2cnLFxuICAgICd0ZXh0TG9nRm9ybWF0JyxcbiAgICAndGcnLFxuICAgICd0aW1lJyxcbiAgICAndGltZU11bHRpcGxpZXInLFxuICAgICd0aXRsZUN1dCcsXG4gICAgJ3RpdGxlRmFkZU91dCcsXG4gICAgJ3RpdGxlT2JqJyxcbiAgICAndGl0bGVSc2MnLFxuICAgICd0aXRsZVRleHQnLFxuICAgICd0b0FycmF5JyxcbiAgICAndG9GaXhlZCcsXG4gICAgJ3RvTG93ZXInLFxuICAgICd0b0xvd2VyQU5TSScsXG4gICAgJ3RvU3RyaW5nJyxcbiAgICAndG9VcHBlcicsXG4gICAgJ3RvVXBwZXJBTlNJJyxcbiAgICAndHJpZ2dlckFjdGl2YXRlZCcsXG4gICAgJ3RyaWdnZXJBY3RpdmF0aW9uJyxcbiAgICAndHJpZ2dlckFtbW8nLFxuICAgICd0cmlnZ2VyQXJlYScsXG4gICAgJ3RyaWdnZXJBdHRhY2hlZFZlaGljbGUnLFxuICAgICd0cmlnZ2VyQXR0YWNoT2JqZWN0JyxcbiAgICAndHJpZ2dlckF0dGFjaFZlaGljbGUnLFxuICAgICd0cmlnZ2VyRHluYW1pY1NpbXVsYXRpb24nLFxuICAgICd0cmlnZ2VySW50ZXJ2YWwnLFxuICAgICd0cmlnZ2VyU3RhdGVtZW50cycsXG4gICAgJ3RyaWdnZXJUZXh0JyxcbiAgICAndHJpZ2dlclRpbWVvdXQnLFxuICAgICd0cmlnZ2VyVGltZW91dEN1cnJlbnQnLFxuICAgICd0cmlnZ2VyVHlwZScsXG4gICAgJ3RyaW0nLFxuICAgICd0dXJyZXRMb2NhbCcsXG4gICAgJ3R1cnJldE93bmVyJyxcbiAgICAndHVycmV0VW5pdCcsXG4gICAgJ3R2QWRkJyxcbiAgICAndHZDbGVhcicsXG4gICAgJ3R2Q29sbGFwc2UnLFxuICAgICd0dkNvbGxhcHNlQWxsJyxcbiAgICAndHZDb3VudCcsXG4gICAgJ3R2Q3VyU2VsJyxcbiAgICAndHZEYXRhJyxcbiAgICAndHZEZWxldGUnLFxuICAgICd0dkV4cGFuZCcsXG4gICAgJ3R2RXhwYW5kQWxsJyxcbiAgICAndHZJc1NlbGVjdGVkJyxcbiAgICAndHZQaWN0dXJlJyxcbiAgICAndHZQaWN0dXJlUmlnaHQnLFxuICAgICd0dlNlbGVjdGlvbicsXG4gICAgJ3R2U2V0Q29sb3InLFxuICAgICd0dlNldEN1clNlbCcsXG4gICAgJ3R2U2V0RGF0YScsXG4gICAgJ3R2U2V0UGljdHVyZScsXG4gICAgJ3R2U2V0UGljdHVyZUNvbG9yJyxcbiAgICAndHZTZXRQaWN0dXJlQ29sb3JEaXNhYmxlZCcsXG4gICAgJ3R2U2V0UGljdHVyZUNvbG9yU2VsZWN0ZWQnLFxuICAgICd0dlNldFBpY3R1cmVSaWdodCcsXG4gICAgJ3R2U2V0UGljdHVyZVJpZ2h0Q29sb3InLFxuICAgICd0dlNldFBpY3R1cmVSaWdodENvbG9yRGlzYWJsZWQnLFxuICAgICd0dlNldFBpY3R1cmVSaWdodENvbG9yU2VsZWN0ZWQnLFxuICAgICd0dlNldFNlbGVjdENvbG9yJyxcbiAgICAndHZTZXRTZWxlY3RlZCcsXG4gICAgJ3R2U2V0VGV4dCcsXG4gICAgJ3R2U2V0VG9vbHRpcCcsXG4gICAgJ3R2U2V0VmFsdWUnLFxuICAgICd0dlNvcnQnLFxuICAgICd0dlNvcnRBbGwnLFxuICAgICd0dlNvcnRCeVZhbHVlJyxcbiAgICAndHZTb3J0QnlWYWx1ZUFsbCcsXG4gICAgJ3R2VGV4dCcsXG4gICAgJ3R2VG9vbHRpcCcsXG4gICAgJ3R2VmFsdWUnLFxuICAgICd0eXBlJyxcbiAgICAndHlwZU5hbWUnLFxuICAgICd0eXBlT2YnLFxuICAgICdVQVZDb250cm9sJyxcbiAgICAndWlOYW1lc3BhY2UnLFxuICAgICd1aVNsZWVwJyxcbiAgICAndW5hc3NpZ25DdXJhdG9yJyxcbiAgICAndW5hc3NpZ25JdGVtJyxcbiAgICAndW5hc3NpZ25UZWFtJyxcbiAgICAndW5hc3NpZ25WZWhpY2xlJyxcbiAgICAndW5kZXJ3YXRlcicsXG4gICAgJ3VuaWZvcm0nLFxuICAgICd1bmlmb3JtQ29udGFpbmVyJyxcbiAgICAndW5pZm9ybUl0ZW1zJyxcbiAgICAndW5pZm9ybU1hZ2F6aW5lcycsXG4gICAgJ3VuaXF1ZVVuaXRJdGVtcycsXG4gICAgJ3VuaXRBZGRvbnMnLFxuICAgICd1bml0QWltUG9zaXRpb24nLFxuICAgICd1bml0QWltUG9zaXRpb25WaXN1YWwnLFxuICAgICd1bml0QmFja3BhY2snLFxuICAgICd1bml0Q29tYmF0TW9kZScsXG4gICAgJ3VuaXRJc1VBVicsXG4gICAgJ3VuaXRQb3MnLFxuICAgICd1bml0UmVhZHknLFxuICAgICd1bml0UmVjb2lsQ29lZmZpY2llbnQnLFxuICAgICd1bml0cycsXG4gICAgJ3VuaXRzQmVsb3dIZWlnaHQnLFxuICAgICd1bml0VHVycmV0JyxcbiAgICAndW5saW5rSXRlbScsXG4gICAgJ3VubG9ja0FjaGlldmVtZW50JyxcbiAgICAndW5yZWdpc3RlclRhc2snLFxuICAgICd1cGRhdGVEcmF3SWNvbicsXG4gICAgJ3VwZGF0ZU1lbnVJdGVtJyxcbiAgICAndXBkYXRlT2JqZWN0VHJlZScsXG4gICAgJ3VzZUFJT3Blck1hcE9ic3RydWN0aW9uVGVzdCcsXG4gICAgJ3VzZUFJU3RlZXJpbmdDb21wb25lbnQnLFxuICAgICd1c2VBdWRpb1RpbWVGb3JNb3ZlcycsXG4gICAgJ3VzZXJJbnB1dERpc2FibGVkJyxcbiAgICAndmFsdWVzJyxcbiAgICAndmVjdG9yQWRkJyxcbiAgICAndmVjdG9yQ29zJyxcbiAgICAndmVjdG9yQ3Jvc3NQcm9kdWN0JyxcbiAgICAndmVjdG9yRGlmZicsXG4gICAgJ3ZlY3RvckRpcicsXG4gICAgJ3ZlY3RvckRpclZpc3VhbCcsXG4gICAgJ3ZlY3RvckRpc3RhbmNlJyxcbiAgICAndmVjdG9yRGlzdGFuY2VTcXInLFxuICAgICd2ZWN0b3JEb3RQcm9kdWN0JyxcbiAgICAndmVjdG9yRnJvbVRvJyxcbiAgICAndmVjdG9yTGluZWFyQ29udmVyc2lvbicsXG4gICAgJ3ZlY3Rvck1hZ25pdHVkZScsXG4gICAgJ3ZlY3Rvck1hZ25pdHVkZVNxcicsXG4gICAgJ3ZlY3Rvck1vZGVsVG9Xb3JsZCcsXG4gICAgJ3ZlY3Rvck1vZGVsVG9Xb3JsZFZpc3VhbCcsXG4gICAgJ3ZlY3Rvck11bHRpcGx5JyxcbiAgICAndmVjdG9yTm9ybWFsaXplZCcsXG4gICAgJ3ZlY3RvclVwJyxcbiAgICAndmVjdG9yVXBWaXN1YWwnLFxuICAgICd2ZWN0b3JXb3JsZFRvTW9kZWwnLFxuICAgICd2ZWN0b3JXb3JsZFRvTW9kZWxWaXN1YWwnLFxuICAgICd2ZWhpY2xlJyxcbiAgICAndmVoaWNsZUNhcmdvRW5hYmxlZCcsXG4gICAgJ3ZlaGljbGVDaGF0JyxcbiAgICAndmVoaWNsZU1vdmVJbmZvJyxcbiAgICAndmVoaWNsZVJhZGlvJyxcbiAgICAndmVoaWNsZVJlY2VpdmVSZW1vdGVUYXJnZXRzJyxcbiAgICAndmVoaWNsZVJlcG9ydE93blBvc2l0aW9uJyxcbiAgICAndmVoaWNsZVJlcG9ydFJlbW90ZVRhcmdldHMnLFxuICAgICd2ZWhpY2xlcycsXG4gICAgJ3ZlaGljbGVWYXJOYW1lJyxcbiAgICAndmVsb2NpdHknLFxuICAgICd2ZWxvY2l0eU1vZGVsU3BhY2UnLFxuICAgICd2ZXJpZnlTaWduYXR1cmUnLFxuICAgICd2ZXN0JyxcbiAgICAndmVzdENvbnRhaW5lcicsXG4gICAgJ3Zlc3RJdGVtcycsXG4gICAgJ3Zlc3RNYWdhemluZXMnLFxuICAgICd2aWV3RGlzdGFuY2UnLFxuICAgICd2aXNpYmxlQ29tcGFzcycsXG4gICAgJ3Zpc2libGVHcHMnLFxuICAgICd2aXNpYmxlTWFwJyxcbiAgICAndmlzaWJsZVBvc2l0aW9uJyxcbiAgICAndmlzaWJsZVBvc2l0aW9uQVNMJyxcbiAgICAndmlzaWJsZVNjb3JldGFibGUnLFxuICAgICd2aXNpYmxlV2F0Y2gnLFxuICAgICd3YXZlcycsXG4gICAgJ3dheXBvaW50QXR0YWNoZWRPYmplY3QnLFxuICAgICd3YXlwb2ludEF0dGFjaGVkVmVoaWNsZScsXG4gICAgJ3dheXBvaW50QXR0YWNoT2JqZWN0JyxcbiAgICAnd2F5cG9pbnRBdHRhY2hWZWhpY2xlJyxcbiAgICAnd2F5cG9pbnRCZWhhdmlvdXInLFxuICAgICd3YXlwb2ludENvbWJhdE1vZGUnLFxuICAgICd3YXlwb2ludENvbXBsZXRpb25SYWRpdXMnLFxuICAgICd3YXlwb2ludERlc2NyaXB0aW9uJyxcbiAgICAnd2F5cG9pbnRGb3JjZUJlaGF2aW91cicsXG4gICAgJ3dheXBvaW50Rm9ybWF0aW9uJyxcbiAgICAnd2F5cG9pbnRIb3VzZVBvc2l0aW9uJyxcbiAgICAnd2F5cG9pbnRMb2l0ZXJBbHRpdHVkZScsXG4gICAgJ3dheXBvaW50TG9pdGVyUmFkaXVzJyxcbiAgICAnd2F5cG9pbnRMb2l0ZXJUeXBlJyxcbiAgICAnd2F5cG9pbnROYW1lJyxcbiAgICAnd2F5cG9pbnRQb3NpdGlvbicsXG4gICAgJ3dheXBvaW50cycsXG4gICAgJ3dheXBvaW50U2NyaXB0JyxcbiAgICAnd2F5cG9pbnRzRW5hYmxlZFVBVicsXG4gICAgJ3dheXBvaW50U2hvdycsXG4gICAgJ3dheXBvaW50U3BlZWQnLFxuICAgICd3YXlwb2ludFN0YXRlbWVudHMnLFxuICAgICd3YXlwb2ludFRpbWVvdXQnLFxuICAgICd3YXlwb2ludFRpbWVvdXRDdXJyZW50JyxcbiAgICAnd2F5cG9pbnRUeXBlJyxcbiAgICAnd2F5cG9pbnRWaXNpYmxlJyxcbiAgICAnd2VhcG9uQWNjZXNzb3JpZXMnLFxuICAgICd3ZWFwb25BY2Nlc3Nvcmllc0NhcmdvJyxcbiAgICAnd2VhcG9uQ2FyZ28nLFxuICAgICd3ZWFwb25EaXJlY3Rpb24nLFxuICAgICd3ZWFwb25JbmVydGlhJyxcbiAgICAnd2VhcG9uTG93ZXJlZCcsXG4gICAgJ3dlYXBvblJlbG9hZGluZ1RpbWUnLFxuICAgICd3ZWFwb25zJyxcbiAgICAnd2VhcG9uc0luZm8nLFxuICAgICd3ZWFwb25zSXRlbXMnLFxuICAgICd3ZWFwb25zSXRlbXNDYXJnbycsXG4gICAgJ3dlYXBvblN0YXRlJyxcbiAgICAnd2VhcG9uc1R1cnJldCcsXG4gICAgJ3dlaWdodFJURCcsXG4gICAgJ1dGU2lkZVRleHQnLFxuICAgICd3aW5kJyxcbiAgICAnd2luZERpcicsXG4gICAgJ3dpbmRSVEQnLFxuICAgICd3aW5kU3RyJyxcbiAgICAnd2luZ3NGb3JjZXNSVEQnLFxuICAgICd3b3JsZE5hbWUnLFxuICAgICd3b3JsZFNpemUnLFxuICAgICd3b3JsZFRvTW9kZWwnLFxuICAgICd3b3JsZFRvTW9kZWxWaXN1YWwnLFxuICAgICd3b3JsZFRvU2NyZWVuJ1xuICBdO1xuICBcbiAgLy8gbGlzdCBvZiBrZXl3b3JkcyBmcm9tOlxuICAvLyBodHRwczovL2NvbW11bml0eS5iaXN0dWRpby5jb20vd2lraS9QcmVQcm9jZXNzb3JfQ29tbWFuZHNcbiAgY29uc3QgUFJFUFJPQ0VTU09SID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAvI1xccypbYS16XStcXGIvLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiAnZGVmaW5lIHVuZGVmIGlmZGVmIGlmbmRlZiBlbHNlIGVuZGlmIGluY2x1ZGUgaWYnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxcXFxcbi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuaW5oZXJpdChTVFJJTkdTLCB7IGNsYXNzTmFtZTogJ3N0cmluZycgfSksXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvPFteXFxuPl0qPi8sXG4gICAgICAgIGVuZDogLyQvLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbiAgXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NRRicsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU4sXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuTlVNQkVSX01PREUsXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgU1RSSU5HUyxcbiAgICAgIFBSRVBST0NFU1NPUlxuICAgIF0sXG4gICAgaWxsZWdhbDogW1xuICAgICAgLy8kIGlzIG9ubHkgdmFsaWQgd2hlbiB1c2VkIHdpdGggSGV4IG51bWJlcnMgKGUuZy4gJEZGKVxuICAgICAgL1xcJFteYS1mQS1GMC05XS8sIFxuICAgICAgL1xcd1xcJC8sXG4gICAgICAvXFw/LywgICAgICAvL1RoZXJlJ3Mgbm8gPyBpbiBTUUZcbiAgICAgIC9ALywgICAgICAgLy9UaGVyZSdzIG5vIEAgaW4gU1FGXG4gICAgICAvLyBCcnV0ZS1mb3JjZS1maXhpbmcgdGhlIGJ1aWxkIGVycm9yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9wdWxsLzMxOTMjaXNzdWVjb21tZW50LTg0MzA4ODcyOVxuICAgICAgLyBcXHwgLyxcbiAgICAgIC8vIC4gaXMgb25seSB1c2VkIGluIG51bWJlcnNcbiAgICAgIC9bYS16QS1aX11cXC4vLFxuICAgICAgL1xcOlxcPS8sXG4gICAgICAvXFxbXFw6L1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzcWY7XG4iLCAiLypcbiBMYW5ndWFnZTogU1FMXG4gV2Vic2l0ZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU1FMXG4gQ2F0ZWdvcnk6IGNvbW1vbiwgZGF0YWJhc2VcbiAqL1xuXG4vKlxuXG5Hb2FsczpcblxuU1FMIGlzIGludGVuZGVkIHRvIGhpZ2hsaWdodCBiYXNpYy9jb21tb24gU1FMIGtleXdvcmRzIGFuZCBleHByZXNzaW9uc1xuXG4tIElmIHByZXR0eSBtdWNoIGV2ZXJ5IHNpbmdsZSBTUUwgc2VydmVyIGluY2x1ZGVzIHN1cHBvcnRzLCB0aGVuIGl0J3MgYSBjYW5pZGF0ZS5cbi0gSXQgaXMgTk9UIGludGVuZGVkIHRvIGluY2x1ZGUgdG9ucyBvZiB2ZW5kb3Igc3BlY2lmaWMga2V5d29yZHMgKE9yYWNsZSwgTXlTUUwsXG4gIFBvc3RncmVTUUwpIGFsdGhvdWdoIHRoZSBsaXN0IG9mIGRhdGEgdHlwZXMgaXMgcHVycG9zZWx5IGEgYml0IG1vcmUgZXhwYW5zaXZlLlxuLSBGb3IgbW9yZSBzcGVjaWZpYyBTUUwgZ3JhbW1hcnMgcGxlYXNlIHNlZTpcbiAgLSBQb3N0Z3JlU1FMIGFuZCBQTC9wZ1NRTCAtIGNvcmVcbiAgLSBULVNRTCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9oaWdobGlnaHRqcy9oaWdobGlnaHRqcy10c3FsXG4gIC0gc3FsX21vcmUgKGNvcmUpXG5cbiAqL1xuXG5mdW5jdGlvbiBzcWwoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IENPTU1FTlRfTU9ERSA9IGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpO1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nLyxcbiAgICAgICAgY29udGFpbnM6IFsgeyBiZWdpbjogLycnLyB9IF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFFVT1RFRF9JREVOVElGSUVSID0ge1xuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBjb250YWluczogWyB7IGJlZ2luOiAvXCJcIi8gfSBdXG4gIH07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIC8vIE5vdCBzdXJlIGl0J3MgY29ycmVjdCB0byBjYWxsIE5VTEwgbGl0ZXJhbCwgYW5kIGNsYXVzZXMgbGlrZSBJUyBbTk9UXSBOVUxMIGxvb2sgc3RyYW5nZSB0aGF0IHdheS5cbiAgICAvLyBcIm51bGxcIixcbiAgICBcInVua25vd25cIlxuICBdO1xuXG4gIGNvbnN0IE1VTFRJX1dPUkRfVFlQRVMgPSBbXG4gICAgXCJkb3VibGUgcHJlY2lzaW9uXCIsXG4gICAgXCJsYXJnZSBvYmplY3RcIixcbiAgICBcIndpdGggdGltZXpvbmVcIixcbiAgICBcIndpdGhvdXQgdGltZXpvbmVcIlxuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgICdiaWdpbnQnLFxuICAgICdiaW5hcnknLFxuICAgICdibG9iJyxcbiAgICAnYm9vbGVhbicsXG4gICAgJ2NoYXInLFxuICAgICdjaGFyYWN0ZXInLFxuICAgICdjbG9iJyxcbiAgICAnZGF0ZScsXG4gICAgJ2RlYycsXG4gICAgJ2RlY2Zsb2F0JyxcbiAgICAnZGVjaW1hbCcsXG4gICAgJ2Zsb2F0JyxcbiAgICAnaW50JyxcbiAgICAnaW50ZWdlcicsXG4gICAgJ2ludGVydmFsJyxcbiAgICAnbmNoYXInLFxuICAgICduY2xvYicsXG4gICAgJ25hdGlvbmFsJyxcbiAgICAnbnVtZXJpYycsXG4gICAgJ3JlYWwnLFxuICAgICdyb3cnLFxuICAgICdzbWFsbGludCcsXG4gICAgJ3RpbWUnLFxuICAgICd0aW1lc3RhbXAnLFxuICAgICd2YXJjaGFyJyxcbiAgICAndmFyeWluZycsIC8vIG1vZGlmaWVyIChjaGFyYWN0ZXIgdmFyeWluZylcbiAgICAndmFyYmluYXJ5J1xuICBdO1xuXG4gIGNvbnN0IE5PTl9SRVNFUlZFRF9XT1JEUyA9IFtcbiAgICBcImFkZFwiLFxuICAgIFwiYXNjXCIsXG4gICAgXCJjb2xsYXRpb25cIixcbiAgICBcImRlc2NcIixcbiAgICBcImZpbmFsXCIsXG4gICAgXCJmaXJzdFwiLFxuICAgIFwibGFzdFwiLFxuICAgIFwidmlld1wiXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9qYWtld2hlYXQuZ2l0aHViLmlvL3NxbC1vdmVydmlldy9zcWwtMjAxNi1mb3VuZGF0aW9uLWdyYW1tYXIuaHRtbCNyZXNlcnZlZC13b3JkXG4gIGNvbnN0IFJFU0VSVkVEX1dPUkRTID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhbGxcIixcbiAgICBcImFsbG9jYXRlXCIsXG4gICAgXCJhbHRlclwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJhbnlcIixcbiAgICBcImFyZVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXJyYXlfbWF4X2NhcmRpbmFsaXR5XCIsXG4gICAgXCJhc1wiLFxuICAgIFwiYXNlbnNpdGl2ZVwiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXN5bW1ldHJpY1wiLFxuICAgIFwiYXRcIixcbiAgICBcImF0YW5cIixcbiAgICBcImF0b21pY1wiLFxuICAgIFwiYXV0aG9yaXphdGlvblwiLFxuICAgIFwiYXZnXCIsXG4gICAgXCJiZWdpblwiLFxuICAgIFwiYmVnaW5fZnJhbWVcIixcbiAgICBcImJlZ2luX3BhcnRpdGlvblwiLFxuICAgIFwiYmV0d2VlblwiLFxuICAgIFwiYmlnaW50XCIsXG4gICAgXCJiaW5hcnlcIixcbiAgICBcImJsb2JcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcImJvdGhcIixcbiAgICBcImJ5XCIsXG4gICAgXCJjYWxsXCIsXG4gICAgXCJjYWxsZWRcIixcbiAgICBcImNhcmRpbmFsaXR5XCIsXG4gICAgXCJjYXNjYWRlZFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwiY2VpbFwiLFxuICAgIFwiY2VpbGluZ1wiLFxuICAgIFwiY2hhclwiLFxuICAgIFwiY2hhcl9sZW5ndGhcIixcbiAgICBcImNoYXJhY3RlclwiLFxuICAgIFwiY2hhcmFjdGVyX2xlbmd0aFwiLFxuICAgIFwiY2hlY2tcIixcbiAgICBcImNsYXNzaWZpZXJcIixcbiAgICBcImNsb2JcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb2FsZXNjZVwiLFxuICAgIFwiY29sbGF0ZVwiLFxuICAgIFwiY29sbGVjdFwiLFxuICAgIFwiY29sdW1uXCIsXG4gICAgXCJjb21taXRcIixcbiAgICBcImNvbmRpdGlvblwiLFxuICAgIFwiY29ubmVjdFwiLFxuICAgIFwiY29uc3RyYWludFwiLFxuICAgIFwiY29udGFpbnNcIixcbiAgICBcImNvbnZlcnRcIixcbiAgICBcImNvcHlcIixcbiAgICBcImNvcnJcIixcbiAgICBcImNvcnJlc3BvbmRpbmdcIixcbiAgICBcImNvc1wiLFxuICAgIFwiY29zaFwiLFxuICAgIFwiY291bnRcIixcbiAgICBcImNvdmFyX3BvcFwiLFxuICAgIFwiY292YXJfc2FtcFwiLFxuICAgIFwiY3JlYXRlXCIsXG4gICAgXCJjcm9zc1wiLFxuICAgIFwiY3ViZVwiLFxuICAgIFwiY3VtZV9kaXN0XCIsXG4gICAgXCJjdXJyZW50XCIsXG4gICAgXCJjdXJyZW50X2NhdGFsb2dcIixcbiAgICBcImN1cnJlbnRfZGF0ZVwiLFxuICAgIFwiY3VycmVudF9kZWZhdWx0X3RyYW5zZm9ybV9ncm91cFwiLFxuICAgIFwiY3VycmVudF9wYXRoXCIsXG4gICAgXCJjdXJyZW50X3JvbGVcIixcbiAgICBcImN1cnJlbnRfcm93XCIsXG4gICAgXCJjdXJyZW50X3NjaGVtYVwiLFxuICAgIFwiY3VycmVudF90aW1lXCIsXG4gICAgXCJjdXJyZW50X3RpbWVzdGFtcFwiLFxuICAgIFwiY3VycmVudF9wYXRoXCIsXG4gICAgXCJjdXJyZW50X3JvbGVcIixcbiAgICBcImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlXCIsXG4gICAgXCJjdXJyZW50X3VzZXJcIixcbiAgICBcImN1cnNvclwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRheVwiLFxuICAgIFwiZGVhbGxvY2F0ZVwiLFxuICAgIFwiZGVjXCIsXG4gICAgXCJkZWNpbWFsXCIsXG4gICAgXCJkZWNmbG9hdFwiLFxuICAgIFwiZGVjbGFyZVwiLFxuICAgIFwiZGVmYXVsdFwiLFxuICAgIFwiZGVmaW5lXCIsXG4gICAgXCJkZWxldGVcIixcbiAgICBcImRlbnNlX3JhbmtcIixcbiAgICBcImRlcmVmXCIsXG4gICAgXCJkZXNjcmliZVwiLFxuICAgIFwiZGV0ZXJtaW5pc3RpY1wiLFxuICAgIFwiZGlzY29ubmVjdFwiLFxuICAgIFwiZGlzdGluY3RcIixcbiAgICBcImRvdWJsZVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZHluYW1pY1wiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwiZWxlbWVudFwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW1wdHlcIixcbiAgICBcImVuZFwiLFxuICAgIFwiZW5kX2ZyYW1lXCIsXG4gICAgXCJlbmRfcGFydGl0aW9uXCIsXG4gICAgXCJlbmQtZXhlY1wiLFxuICAgIFwiZXF1YWxzXCIsXG4gICAgXCJlc2NhcGVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJleGNlcHRcIixcbiAgICBcImV4ZWNcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImV4aXN0c1wiLFxuICAgIFwiZXhwXCIsXG4gICAgXCJleHRlcm5hbFwiLFxuICAgIFwiZXh0cmFjdFwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcImZldGNoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZpcnN0X3ZhbHVlXCIsXG4gICAgXCJmbG9hdFwiLFxuICAgIFwiZmxvb3JcIixcbiAgICBcImZvclwiLFxuICAgIFwiZm9yZWlnblwiLFxuICAgIFwiZnJhbWVfcm93XCIsXG4gICAgXCJmcmVlXCIsXG4gICAgXCJmcm9tXCIsXG4gICAgXCJmdWxsXCIsXG4gICAgXCJmdW5jdGlvblwiLFxuICAgIFwiZnVzaW9uXCIsXG4gICAgXCJnZXRcIixcbiAgICBcImdsb2JhbFwiLFxuICAgIFwiZ3JhbnRcIixcbiAgICBcImdyb3VwXCIsXG4gICAgXCJncm91cGluZ1wiLFxuICAgIFwiZ3JvdXBzXCIsXG4gICAgXCJoYXZpbmdcIixcbiAgICBcImhvbGRcIixcbiAgICBcImhvdXJcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJpblwiLFxuICAgIFwiaW5kaWNhdG9yXCIsXG4gICAgXCJpbml0aWFsXCIsXG4gICAgXCJpbm5lclwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImluc2Vuc2l0aXZlXCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludFwiLFxuICAgIFwiaW50ZWdlclwiLFxuICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgXCJpbnRlcnNlY3Rpb25cIixcbiAgICBcImludGVydmFsXCIsXG4gICAgXCJpbnRvXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiam9pblwiLFxuICAgIFwianNvbl9hcnJheVwiLFxuICAgIFwianNvbl9hcnJheWFnZ1wiLFxuICAgIFwianNvbl9leGlzdHNcIixcbiAgICBcImpzb25fb2JqZWN0XCIsXG4gICAgXCJqc29uX29iamVjdGFnZ1wiLFxuICAgIFwianNvbl9xdWVyeVwiLFxuICAgIFwianNvbl90YWJsZVwiLFxuICAgIFwianNvbl90YWJsZV9wcmltaXRpdmVcIixcbiAgICBcImpzb25fdmFsdWVcIixcbiAgICBcImxhZ1wiLFxuICAgIFwibGFuZ3VhZ2VcIixcbiAgICBcImxhcmdlXCIsXG4gICAgXCJsYXN0X3ZhbHVlXCIsXG4gICAgXCJsYXRlcmFsXCIsXG4gICAgXCJsZWFkXCIsXG4gICAgXCJsZWFkaW5nXCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJsaWtlXCIsXG4gICAgXCJsaWtlX3JlZ2V4XCIsXG4gICAgXCJsaXN0YWdnXCIsXG4gICAgXCJsblwiLFxuICAgIFwibG9jYWxcIixcbiAgICBcImxvY2FsdGltZVwiLFxuICAgIFwibG9jYWx0aW1lc3RhbXBcIixcbiAgICBcImxvZ1wiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvd2VyXCIsXG4gICAgXCJtYXRjaFwiLFxuICAgIFwibWF0Y2hfbnVtYmVyXCIsXG4gICAgXCJtYXRjaF9yZWNvZ25pemVcIixcbiAgICBcIm1hdGNoZXNcIixcbiAgICBcIm1heFwiLFxuICAgIFwibWVtYmVyXCIsXG4gICAgXCJtZXJnZVwiLFxuICAgIFwibWV0aG9kXCIsXG4gICAgXCJtaW5cIixcbiAgICBcIm1pbnV0ZVwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJtb2RpZmllc1wiLFxuICAgIFwibW9kdWxlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwibXVsdGlzZXRcIixcbiAgICBcIm5hdGlvbmFsXCIsXG4gICAgXCJuYXR1cmFsXCIsXG4gICAgXCJuY2hhclwiLFxuICAgIFwibmNsb2JcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibm9cIixcbiAgICBcIm5vbmVcIixcbiAgICBcIm5vcm1hbGl6ZVwiLFxuICAgIFwibm90XCIsXG4gICAgXCJudGhfdmFsdWVcIixcbiAgICBcIm50aWxlXCIsXG4gICAgXCJudWxsXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcIm51bWVyaWNcIixcbiAgICBcIm9jdGV0X2xlbmd0aFwiLFxuICAgIFwib2NjdXJyZW5jZXNfcmVnZXhcIixcbiAgICBcIm9mXCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm9sZFwiLFxuICAgIFwib21pdFwiLFxuICAgIFwib25cIixcbiAgICBcIm9uZVwiLFxuICAgIFwib25seVwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJvdXRcIixcbiAgICBcIm91dGVyXCIsXG4gICAgXCJvdmVyXCIsXG4gICAgXCJvdmVybGFwc1wiLFxuICAgIFwib3ZlcmxheVwiLFxuICAgIFwicGFyYW1ldGVyXCIsXG4gICAgXCJwYXJ0aXRpb25cIixcbiAgICBcInBhdHRlcm5cIixcbiAgICBcInBlclwiLFxuICAgIFwicGVyY2VudFwiLFxuICAgIFwicGVyY2VudF9yYW5rXCIsXG4gICAgXCJwZXJjZW50aWxlX2NvbnRcIixcbiAgICBcInBlcmNlbnRpbGVfZGlzY1wiLFxuICAgIFwicGVyaW9kXCIsXG4gICAgXCJwb3J0aW9uXCIsXG4gICAgXCJwb3NpdGlvblwiLFxuICAgIFwicG9zaXRpb25fcmVnZXhcIixcbiAgICBcInBvd2VyXCIsXG4gICAgXCJwcmVjZWRlc1wiLFxuICAgIFwicHJlY2lzaW9uXCIsXG4gICAgXCJwcmVwYXJlXCIsXG4gICAgXCJwcmltYXJ5XCIsXG4gICAgXCJwcm9jZWR1cmVcIixcbiAgICBcInB0ZlwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJhbmtcIixcbiAgICBcInJlYWRzXCIsXG4gICAgXCJyZWFsXCIsXG4gICAgXCJyZWN1cnNpdmVcIixcbiAgICBcInJlZlwiLFxuICAgIFwicmVmZXJlbmNlc1wiLFxuICAgIFwicmVmZXJlbmNpbmdcIixcbiAgICBcInJlZ3JfYXZneFwiLFxuICAgIFwicmVncl9hdmd5XCIsXG4gICAgXCJyZWdyX2NvdW50XCIsXG4gICAgXCJyZWdyX2ludGVyY2VwdFwiLFxuICAgIFwicmVncl9yMlwiLFxuICAgIFwicmVncl9zbG9wZVwiLFxuICAgIFwicmVncl9zeHhcIixcbiAgICBcInJlZ3Jfc3h5XCIsXG4gICAgXCJyZWdyX3N5eVwiLFxuICAgIFwicmVsZWFzZVwiLFxuICAgIFwicmVzdWx0XCIsXG4gICAgXCJyZXR1cm5cIixcbiAgICBcInJldHVybnNcIixcbiAgICBcInJldm9rZVwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcInJvbGxiYWNrXCIsXG4gICAgXCJyb2xsdXBcIixcbiAgICBcInJvd1wiLFxuICAgIFwicm93X251bWJlclwiLFxuICAgIFwicm93c1wiLFxuICAgIFwicnVubmluZ1wiLFxuICAgIFwic2F2ZXBvaW50XCIsXG4gICAgXCJzY29wZVwiLFxuICAgIFwic2Nyb2xsXCIsXG4gICAgXCJzZWFyY2hcIixcbiAgICBcInNlY29uZFwiLFxuICAgIFwic2Vla1wiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZW5zaXRpdmVcIixcbiAgICBcInNlc3Npb25fdXNlclwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJzaG93XCIsXG4gICAgXCJzaW1pbGFyXCIsXG4gICAgXCJzaW5cIixcbiAgICBcInNpbmhcIixcbiAgICBcInNraXBcIixcbiAgICBcInNtYWxsaW50XCIsXG4gICAgXCJzb21lXCIsXG4gICAgXCJzcGVjaWZpY1wiLFxuICAgIFwic3BlY2lmaWN0eXBlXCIsXG4gICAgXCJzcWxcIixcbiAgICBcInNxbGV4Y2VwdGlvblwiLFxuICAgIFwic3Fsc3RhdGVcIixcbiAgICBcInNxbHdhcm5pbmdcIixcbiAgICBcInNxcnRcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJzdGF0aWNcIixcbiAgICBcInN0ZGRldl9wb3BcIixcbiAgICBcInN0ZGRldl9zYW1wXCIsXG4gICAgXCJzdWJtdWx0aXNldFwiLFxuICAgIFwic3Vic2V0XCIsXG4gICAgXCJzdWJzdHJpbmdcIixcbiAgICBcInN1YnN0cmluZ19yZWdleFwiLFxuICAgIFwic3VjY2VlZHNcIixcbiAgICBcInN1bVwiLFxuICAgIFwic3ltbWV0cmljXCIsXG4gICAgXCJzeXN0ZW1cIixcbiAgICBcInN5c3RlbV90aW1lXCIsXG4gICAgXCJzeXN0ZW1fdXNlclwiLFxuICAgIFwidGFibGVcIixcbiAgICBcInRhYmxlc2FtcGxlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcInRhbmhcIixcbiAgICBcInRoZW5cIixcbiAgICBcInRpbWVcIixcbiAgICBcInRpbWVzdGFtcFwiLFxuICAgIFwidGltZXpvbmVfaG91clwiLFxuICAgIFwidGltZXpvbmVfbWludXRlXCIsXG4gICAgXCJ0b1wiLFxuICAgIFwidHJhaWxpbmdcIixcbiAgICBcInRyYW5zbGF0ZVwiLFxuICAgIFwidHJhbnNsYXRlX3JlZ2V4XCIsXG4gICAgXCJ0cmFuc2xhdGlvblwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcInRyaWdnZXJcIixcbiAgICBcInRyaW1cIixcbiAgICBcInRyaW1fYXJyYXlcIixcbiAgICBcInRydWVcIixcbiAgICBcInRydW5jYXRlXCIsXG4gICAgXCJ1ZXNjYXBlXCIsXG4gICAgXCJ1bmlvblwiLFxuICAgIFwidW5pcXVlXCIsXG4gICAgXCJ1bmtub3duXCIsXG4gICAgXCJ1bm5lc3RcIixcbiAgICBcInVwZGF0ZVwiLFxuICAgIFwidXBwZXJcIixcbiAgICBcInVzZXJcIixcbiAgICBcInVzaW5nXCIsXG4gICAgXCJ2YWx1ZVwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2YWx1ZV9vZlwiLFxuICAgIFwidmFyX3BvcFwiLFxuICAgIFwidmFyX3NhbXBcIixcbiAgICBcInZhcmJpbmFyeVwiLFxuICAgIFwidmFyY2hhclwiLFxuICAgIFwidmFyeWluZ1wiLFxuICAgIFwidmVyc2lvbmluZ1wiLFxuICAgIFwid2hlblwiLFxuICAgIFwid2hlbmV2ZXJcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aWR0aF9idWNrZXRcIixcbiAgICBcIndpbmRvd1wiLFxuICAgIFwid2l0aFwiLFxuICAgIFwid2l0aGluXCIsXG4gICAgXCJ3aXRob3V0XCIsXG4gICAgXCJ5ZWFyXCIsXG4gIF07XG5cbiAgLy8gdGhlc2UgYXJlIHJlc2VydmVkIHdvcmRzIHdlIGhhdmUgaWRlbnRpZmllZCB0byBiZSBmdW5jdGlvbnNcbiAgLy8gYW5kIHNob3VsZCBvbmx5IGJlIGhpZ2hsaWdodGVkIGluIGEgZGlzcGF0Y2gtbGlrZSBjb250ZXh0XG4gIC8vIGllLCBhcnJheV9hZ2coLi4uKSwgZXRjLlxuICBjb25zdCBSRVNFUlZFRF9GVU5DVElPTlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFjb3NcIixcbiAgICBcImFycmF5X2FnZ1wiLFxuICAgIFwiYXNpblwiLFxuICAgIFwiYXRhblwiLFxuICAgIFwiYXZnXCIsXG4gICAgXCJjYXN0XCIsXG4gICAgXCJjZWlsXCIsXG4gICAgXCJjZWlsaW5nXCIsXG4gICAgXCJjb2FsZXNjZVwiLFxuICAgIFwiY29yclwiLFxuICAgIFwiY29zXCIsXG4gICAgXCJjb3NoXCIsXG4gICAgXCJjb3VudFwiLFxuICAgIFwiY292YXJfcG9wXCIsXG4gICAgXCJjb3Zhcl9zYW1wXCIsXG4gICAgXCJjdW1lX2Rpc3RcIixcbiAgICBcImRlbnNlX3JhbmtcIixcbiAgICBcImRlcmVmXCIsXG4gICAgXCJlbGVtZW50XCIsXG4gICAgXCJleHBcIixcbiAgICBcImV4dHJhY3RcIixcbiAgICBcImZpcnN0X3ZhbHVlXCIsXG4gICAgXCJmbG9vclwiLFxuICAgIFwianNvbl9hcnJheVwiLFxuICAgIFwianNvbl9hcnJheWFnZ1wiLFxuICAgIFwianNvbl9leGlzdHNcIixcbiAgICBcImpzb25fb2JqZWN0XCIsXG4gICAgXCJqc29uX29iamVjdGFnZ1wiLFxuICAgIFwianNvbl9xdWVyeVwiLFxuICAgIFwianNvbl90YWJsZVwiLFxuICAgIFwianNvbl90YWJsZV9wcmltaXRpdmVcIixcbiAgICBcImpzb25fdmFsdWVcIixcbiAgICBcImxhZ1wiLFxuICAgIFwibGFzdF92YWx1ZVwiLFxuICAgIFwibGVhZFwiLFxuICAgIFwibGlzdGFnZ1wiLFxuICAgIFwibG5cIixcbiAgICBcImxvZ1wiLFxuICAgIFwibG9nMTBcIixcbiAgICBcImxvd2VyXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJudGhfdmFsdWVcIixcbiAgICBcIm50aWxlXCIsXG4gICAgXCJudWxsaWZcIixcbiAgICBcInBlcmNlbnRfcmFua1wiLFxuICAgIFwicGVyY2VudGlsZV9jb250XCIsXG4gICAgXCJwZXJjZW50aWxlX2Rpc2NcIixcbiAgICBcInBvc2l0aW9uXCIsXG4gICAgXCJwb3NpdGlvbl9yZWdleFwiLFxuICAgIFwicG93ZXJcIixcbiAgICBcInJhbmtcIixcbiAgICBcInJlZ3JfYXZneFwiLFxuICAgIFwicmVncl9hdmd5XCIsXG4gICAgXCJyZWdyX2NvdW50XCIsXG4gICAgXCJyZWdyX2ludGVyY2VwdFwiLFxuICAgIFwicmVncl9yMlwiLFxuICAgIFwicmVncl9zbG9wZVwiLFxuICAgIFwicmVncl9zeHhcIixcbiAgICBcInJlZ3Jfc3h5XCIsXG4gICAgXCJyZWdyX3N5eVwiLFxuICAgIFwicm93X251bWJlclwiLFxuICAgIFwic2luXCIsXG4gICAgXCJzaW5oXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJzdGRkZXZfcG9wXCIsXG4gICAgXCJzdGRkZXZfc2FtcFwiLFxuICAgIFwic3Vic3RyaW5nXCIsXG4gICAgXCJzdWJzdHJpbmdfcmVnZXhcIixcbiAgICBcInN1bVwiLFxuICAgIFwidGFuXCIsXG4gICAgXCJ0YW5oXCIsXG4gICAgXCJ0cmFuc2xhdGVcIixcbiAgICBcInRyYW5zbGF0ZV9yZWdleFwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcInRyaW1cIixcbiAgICBcInRyaW1fYXJyYXlcIixcbiAgICBcInVubmVzdFwiLFxuICAgIFwidXBwZXJcIixcbiAgICBcInZhbHVlX29mXCIsXG4gICAgXCJ2YXJfcG9wXCIsXG4gICAgXCJ2YXJfc2FtcFwiLFxuICAgIFwid2lkdGhfYnVja2V0XCIsXG4gIF07XG5cbiAgLy8gdGhlc2UgZnVuY3Rpb25zIGNhblxuICBjb25zdCBQT1NTSUJMRV9XSVRIT1VUX1BBUkVOUyA9IFtcbiAgICBcImN1cnJlbnRfY2F0YWxvZ1wiLFxuICAgIFwiY3VycmVudF9kYXRlXCIsXG4gICAgXCJjdXJyZW50X2RlZmF1bHRfdHJhbnNmb3JtX2dyb3VwXCIsXG4gICAgXCJjdXJyZW50X3BhdGhcIixcbiAgICBcImN1cnJlbnRfcm9sZVwiLFxuICAgIFwiY3VycmVudF9zY2hlbWFcIixcbiAgICBcImN1cnJlbnRfdHJhbnNmb3JtX2dyb3VwX2Zvcl90eXBlXCIsXG4gICAgXCJjdXJyZW50X3VzZXJcIixcbiAgICBcInNlc3Npb25fdXNlclwiLFxuICAgIFwic3lzdGVtX3RpbWVcIixcbiAgICBcInN5c3RlbV91c2VyXCIsXG4gICAgXCJjdXJyZW50X3RpbWVcIixcbiAgICBcImxvY2FsdGltZVwiLFxuICAgIFwiY3VycmVudF90aW1lc3RhbXBcIixcbiAgICBcImxvY2FsdGltZXN0YW1wXCJcbiAgXTtcblxuICAvLyB0aG9zZSBleGlzdCB0byBib29zdCByZWxldmFuY2UgbWFraW5nIHRoZXNlIHZlcnlcbiAgLy8gXCJTUUwgbGlrZVwiIGtleXdvcmQgY29tYm9zIHdvcnRoICsxIGV4dHJhIHJlbGV2YW5jZVxuICBjb25zdCBDT01CT1MgPSBbXG4gICAgXCJjcmVhdGUgdGFibGVcIixcbiAgICBcImluc2VydCBpbnRvXCIsXG4gICAgXCJwcmltYXJ5IGtleVwiLFxuICAgIFwiZm9yZWlnbiBrZXlcIixcbiAgICBcIm5vdCBudWxsXCIsXG4gICAgXCJhbHRlciB0YWJsZVwiLFxuICAgIFwiYWRkIGNvbnN0cmFpbnRcIixcbiAgICBcImdyb3VwaW5nIHNldHNcIixcbiAgICBcIm9uIG92ZXJmbG93XCIsXG4gICAgXCJjaGFyYWN0ZXIgc2V0XCIsXG4gICAgXCJyZXNwZWN0IG51bGxzXCIsXG4gICAgXCJpZ25vcmUgbnVsbHNcIixcbiAgICBcIm51bGxzIGZpcnN0XCIsXG4gICAgXCJudWxscyBsYXN0XCIsXG4gICAgXCJkZXB0aCBmaXJzdFwiLFxuICAgIFwiYnJlYWR0aCBmaXJzdFwiXG4gIF07XG5cbiAgY29uc3QgRlVOQ1RJT05TID0gUkVTRVJWRURfRlVOQ1RJT05TO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIC4uLlJFU0VSVkVEX1dPUkRTLFxuICAgIC4uLk5PTl9SRVNFUlZFRF9XT1JEU1xuICBdLmZpbHRlcigoa2V5d29yZCkgPT4ge1xuICAgIHJldHVybiAhUkVTRVJWRURfRlVOQ1RJT05TLmluY2x1ZGVzKGtleXdvcmQpO1xuICB9KTtcblxuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBiZWdpbjogL0BbYS16MC05XVthLXowLTlfXSovLFxuICB9O1xuXG4gIGNvbnN0IE9QRVJBVE9SID0ge1xuICAgIGNsYXNzTmFtZTogXCJvcGVyYXRvclwiLFxuICAgIGJlZ2luOiAvWy0rKi89JV5+XXwmJj98XFx8XFx8P3whPT98PCg/Oj0+P3w8fD4pP3w+Wz49XT8vLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgfTtcblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcYi8sIHJlZ2V4LmVpdGhlciguLi5GVU5DVElPTlMpLCAvXFxzKlxcKC8pLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBrZXl3b3JkczogeyBidWlsdF9pbjogRlVOQ1RJT05TIH1cbiAgfTtcblxuICAvLyBrZXl3b3JkcyB3aXRoIGxlc3MgdGhhbiAzIGxldHRlcnMgYXJlIHJlZHVjZWQgaW4gcmVsZXZhbmN5XG4gIGZ1bmN0aW9uIHJlZHVjZVJlbGV2YW5jeShsaXN0LCB7XG4gICAgZXhjZXB0aW9ucywgd2hlblxuICB9ID0ge30pIHtcbiAgICBjb25zdCBxdWFsaWZ5Rm4gPSB3aGVuO1xuICAgIGV4Y2VwdGlvbnMgPSBleGNlcHRpb25zIHx8IFtdO1xuICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ubWF0Y2goL1xcfFxcZCskLykgfHwgZXhjZXB0aW9ucy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0gZWxzZSBpZiAocXVhbGlmeUZuKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBgJHtpdGVtfXwwYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnU1FMJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIC8vIGRvZXMgbm90IGluY2x1ZGUge30gb3IgSFRNTCB0YWdzIGA8L2BcbiAgICBpbGxlZ2FsOiAvW3t9XXw8XFwvLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9cXGJbXFx3XFwuXSsvLFxuICAgICAga2V5d29yZDpcbiAgICAgICAgcmVkdWNlUmVsZXZhbmN5KEtFWVdPUkRTLCB7IHdoZW46ICh4KSA9PiB4Lmxlbmd0aCA8IDMgfSksXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICAgIHR5cGU6IFRZUEVTLFxuICAgICAgYnVpbHRfaW46IFBPU1NJQkxFX1dJVEhPVVRfUEFSRU5TXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogcmVnZXguZWl0aGVyKC4uLkNPTUJPUyksXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAkcGF0dGVybjogL1tcXHdcXC5dKy8sXG4gICAgICAgICAga2V5d29yZDogS0VZV09SRFMuY29uY2F0KENPTUJPUyksXG4gICAgICAgICAgbGl0ZXJhbDogTElURVJBTFMsXG4gICAgICAgICAgdHlwZTogVFlQRVNcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJ0eXBlXCIsXG4gICAgICAgIGJlZ2luOiByZWdleC5laXRoZXIoLi4uTVVMVElfV09SRF9UWVBFUylcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9DQUxMLFxuICAgICAgVkFSSUFCTEUsXG4gICAgICBTVFJJTkcsXG4gICAgICBRVU9URURfSURFTlRJRklFUixcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDT01NRU5UX01PREUsXG4gICAgICBPUEVSQVRPUlxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzcWw7XG4iLCAiLypcbkxhbmd1YWdlOiBTdGFuXG5EZXNjcmlwdGlvbjogVGhlIFN0YW4gcHJvYmFiaWxpc3RpYyBwcm9ncmFtbWluZyBsYW5ndWFnZVxuQXV0aG9yOiBTZWFuIFBpbmtuZXkgPHNlYW4ucGlua25leUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwOi8vbWMtc3Rhbi5vcmcvXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuZnVuY3Rpb24gc3RhbihobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLy8gdmFyaWFibGUgbmFtZXMgY2Fubm90IGNvbmZsaWN0IHdpdGggYmxvY2sgaWRlbnRpZmllcnNcbiAgY29uc3QgQkxPQ0tTID0gW1xuICAgICdmdW5jdGlvbnMnLFxuICAgICdtb2RlbCcsXG4gICAgJ2RhdGEnLFxuICAgICdwYXJhbWV0ZXJzJyxcbiAgICAncXVhbnRpdGllcycsXG4gICAgJ3RyYW5zZm9ybWVkJyxcbiAgICAnZ2VuZXJhdGVkJ1xuICBdO1xuXG4gIGNvbnN0IFNUQVRFTUVOVFMgPSBbXG4gICAgJ2ZvcicsXG4gICAgJ2luJyxcbiAgICAnaWYnLFxuICAgICdlbHNlJyxcbiAgICAnd2hpbGUnLFxuICAgICdicmVhaycsXG4gICAgJ2NvbnRpbnVlJyxcbiAgICAncmV0dXJuJ1xuICBdO1xuXG4gIGNvbnN0IFRZUEVTID0gW1xuICAgICdhcnJheScsXG4gICAgJ3R1cGxlJyxcbiAgICAnY29tcGxleCcsXG4gICAgJ2ludCcsXG4gICAgJ3JlYWwnLFxuICAgICd2ZWN0b3InLFxuICAgICdjb21wbGV4X3ZlY3RvcicsXG4gICAgJ29yZGVyZWQnLFxuICAgICdwb3NpdGl2ZV9vcmRlcmVkJyxcbiAgICAnc2ltcGxleCcsXG4gICAgJ3VuaXRfdmVjdG9yJyxcbiAgICAncm93X3ZlY3RvcicsXG4gICAgJ2NvbXBsZXhfcm93X3ZlY3RvcicsXG4gICAgJ21hdHJpeCcsXG4gICAgJ2NvbXBsZXhfbWF0cml4JyxcbiAgICAnY2hvbGVza3lfZmFjdG9yX2NvcnJ8MTAnLFxuICAgICdjaG9sZXNreV9mYWN0b3JfY292fDEwJyxcbiAgICAnY29ycl9tYXRyaXh8MTAnLFxuICAgICdjb3ZfbWF0cml4fDEwJyxcbiAgICAndm9pZCdcbiAgXTtcblxuICAvLyB0byBnZXQgdGhlIGZ1bmN0aW9ucyBsaXN0XG4gIC8vIGNsb25lIHRoZSBbc3Rhbi1kb2NzIHJlcG9dKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGFuLWRldi9kb2NzKVxuICAvLyB0aGVuIGNkIGludG8gaXQgYW5kIHJ1biB0aGlzIGJhc2ggc2NyaXB0IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2pvc2hnb2ViZWwvZGNkMzNmODJkNDA1OWE5MDdjOTg2MDQ5ODkzODQzY2ZcbiAgLy9cbiAgLy8gdGhlIG91dHB1dCBmaWxlcyBhcmVcbiAgLy8gZGlzdHJpYnV0aW9uc19xdW90ZWQudHh0XG4gIC8vIGZ1bmN0aW9uc19xdW90ZWQudHh0XG5cbiAgY29uc3QgRlVOQ1RJT05TID0gW1xuICAgICdhYnMnLFxuICAgICdhY29zJyxcbiAgICAnYWNvc2gnLFxuICAgICdhZGRfZGlhZycsXG4gICAgJ2FsZ2VicmFfc29sdmVyJyxcbiAgICAnYWxnZWJyYV9zb2x2ZXJfbmV3dG9uJyxcbiAgICAnYXBwZW5kX2FycmF5JyxcbiAgICAnYXBwZW5kX2NvbCcsXG4gICAgJ2FwcGVuZF9yb3cnLFxuICAgICdhc2luJyxcbiAgICAnYXNpbmgnLFxuICAgICdhdGFuJyxcbiAgICAnYXRhbjInLFxuICAgICdhdGFuaCcsXG4gICAgJ2Jlc3NlbF9maXJzdF9raW5kJyxcbiAgICAnYmVzc2VsX3NlY29uZF9raW5kJyxcbiAgICAnYmluYXJ5X2xvZ19sb3NzJyxcbiAgICAnYmxvY2snLFxuICAgICdjYnJ0JyxcbiAgICAnY2VpbCcsXG4gICAgJ2Nob2wyaW52JyxcbiAgICAnY2hvbGVza3lfZGVjb21wb3NlJyxcbiAgICAnY2hvb3NlJyxcbiAgICAnY29sJyxcbiAgICAnY29scycsXG4gICAgJ2NvbHVtbnNfZG90X3Byb2R1Y3QnLFxuICAgICdjb2x1bW5zX2RvdF9zZWxmJyxcbiAgICAnY29tcGxleF9zY2h1cl9kZWNvbXBvc2UnLFxuICAgICdjb21wbGV4X3NjaHVyX2RlY29tcG9zZV90JyxcbiAgICAnY29tcGxleF9zY2h1cl9kZWNvbXBvc2VfdScsXG4gICAgJ2NvbmonLFxuICAgICdjb3MnLFxuICAgICdjb3NoJyxcbiAgICAnY292X2V4cF9xdWFkJyxcbiAgICAnY3Jvc3Nwcm9kJyxcbiAgICAnY3NyX2V4dHJhY3QnLFxuICAgICdjc3JfZXh0cmFjdF91JyxcbiAgICAnY3NyX2V4dHJhY3RfdicsXG4gICAgJ2Nzcl9leHRyYWN0X3cnLFxuICAgICdjc3JfbWF0cml4X3RpbWVzX3ZlY3RvcicsXG4gICAgJ2Nzcl90b19kZW5zZV9tYXRyaXgnLFxuICAgICdjdW11bGF0aXZlX3N1bScsXG4gICAgJ2RhZScsXG4gICAgJ2RhZV90b2wnLFxuICAgICdkZXRlcm1pbmFudCcsXG4gICAgJ2RpYWdfbWF0cml4JyxcbiAgICAnZGlhZ29uYWwnLFxuICAgICdkaWFnX3Bvc3RfbXVsdGlwbHknLFxuICAgICdkaWFnX3ByZV9tdWx0aXBseScsXG4gICAgJ2RpZ2FtbWEnLFxuICAgICdkaW1zJyxcbiAgICAnZGlzdGFuY2UnLFxuICAgICdkb3RfcHJvZHVjdCcsXG4gICAgJ2RvdF9zZWxmJyxcbiAgICAnZWlnZW5kZWNvbXBvc2UnLFxuICAgICdlaWdlbmRlY29tcG9zZV9zeW0nLFxuICAgICdlaWdlbnZhbHVlcycsXG4gICAgJ2VpZ2VudmFsdWVzX3N5bScsXG4gICAgJ2VpZ2VudmVjdG9ycycsXG4gICAgJ2VpZ2VudmVjdG9yc19zeW0nLFxuICAgICdlcmYnLFxuICAgICdlcmZjJyxcbiAgICAnZXhwJyxcbiAgICAnZXhwMicsXG4gICAgJ2V4cG0xJyxcbiAgICAnZmFsbGluZ19mYWN0b3JpYWwnLFxuICAgICdmZGltJyxcbiAgICAnZmZ0JyxcbiAgICAnZmZ0MicsXG4gICAgJ2Zsb29yJyxcbiAgICAnZm1hJyxcbiAgICAnZm1heCcsXG4gICAgJ2ZtaW4nLFxuICAgICdmbW9kJyxcbiAgICAnZ2FtbWFfcCcsXG4gICAgJ2dhbW1hX3EnLFxuICAgICdnZW5lcmFsaXplZF9pbnZlcnNlJyxcbiAgICAnZ2V0X2ltYWcnLFxuICAgICdnZXRfcmVhbCcsXG4gICAgJ2hlYWQnLFxuICAgICdobW1faGlkZGVuX3N0YXRlX3Byb2InLFxuICAgICdobW1fbWFyZ2luYWwnLFxuICAgICdoeXBvdCcsXG4gICAgJ2lkZW50aXR5X21hdHJpeCcsXG4gICAgJ2luY19iZXRhJyxcbiAgICAnaW50ZWdyYXRlXzFkJyxcbiAgICAnaW50ZWdyYXRlX29kZScsXG4gICAgJ2ludGVncmF0ZV9vZGVfYWRhbXMnLFxuICAgICdpbnRlZ3JhdGVfb2RlX2JkZicsXG4gICAgJ2ludGVncmF0ZV9vZGVfcms0NScsXG4gICAgJ2ludF9zdGVwJyxcbiAgICAnaW52JyxcbiAgICAnaW52X2Nsb2dsb2cnLFxuICAgICdpbnZfZXJmYycsXG4gICAgJ2ludmVyc2UnLFxuICAgICdpbnZlcnNlX3NwZCcsXG4gICAgJ2ludl9mZnQnLFxuICAgICdpbnZfZmZ0MicsXG4gICAgJ2ludl9pbmNfYmV0YScsXG4gICAgJ2ludl9sb2dpdCcsXG4gICAgJ2ludl9QaGknLFxuICAgICdpbnZfc3FydCcsXG4gICAgJ2ludl9zcXVhcmUnLFxuICAgICdpc19pbmYnLFxuICAgICdpc19uYW4nLFxuICAgICdsYW1iZXJ0X3cwJyxcbiAgICAnbGFtYmVydF93bTEnLFxuICAgICdsYmV0YScsXG4gICAgJ2xjaG9vc2UnLFxuICAgICdsZGV4cCcsXG4gICAgJ2xnYW1tYScsXG4gICAgJ2xpbnNwYWNlZF9hcnJheScsXG4gICAgJ2xpbnNwYWNlZF9pbnRfYXJyYXknLFxuICAgICdsaW5zcGFjZWRfcm93X3ZlY3RvcicsXG4gICAgJ2xpbnNwYWNlZF92ZWN0b3InLFxuICAgICdsbWdhbW1hJyxcbiAgICAnbG11bHRpcGx5JyxcbiAgICAnbG9nJyxcbiAgICAnbG9nMW0nLFxuICAgICdsb2cxbV9leHAnLFxuICAgICdsb2cxbV9pbnZfbG9naXQnLFxuICAgICdsb2cxcCcsXG4gICAgJ2xvZzFwX2V4cCcsXG4gICAgJ2xvZ19kZXRlcm1pbmFudCcsXG4gICAgJ2xvZ19kaWZmX2V4cCcsXG4gICAgJ2xvZ19mYWxsaW5nX2ZhY3RvcmlhbCcsXG4gICAgJ2xvZ19pbnZfbG9naXQnLFxuICAgICdsb2dfaW52X2xvZ2l0X2RpZmYnLFxuICAgICdsb2dpdCcsXG4gICAgJ2xvZ19taXgnLFxuICAgICdsb2dfbW9kaWZpZWRfYmVzc2VsX2ZpcnN0X2tpbmQnLFxuICAgICdsb2dfcmlzaW5nX2ZhY3RvcmlhbCcsXG4gICAgJ2xvZ19zb2Z0bWF4JyxcbiAgICAnbG9nX3N1bV9leHAnLFxuICAgICdtYWNoaW5lX3ByZWNpc2lvbicsXG4gICAgJ21hcF9yZWN0JyxcbiAgICAnbWF0cml4X2V4cCcsXG4gICAgJ21hdHJpeF9leHBfbXVsdGlwbHknLFxuICAgICdtYXRyaXhfcG93ZXInLFxuICAgICdtYXgnLFxuICAgICdtZGl2aWRlX2xlZnRfc3BkJyxcbiAgICAnbWRpdmlkZV9sZWZ0X3RyaV9sb3cnLFxuICAgICdtZGl2aWRlX3JpZ2h0X3NwZCcsXG4gICAgJ21kaXZpZGVfcmlnaHRfdHJpX2xvdycsXG4gICAgJ21lYW4nLFxuICAgICdtaW4nLFxuICAgICdtb2RpZmllZF9iZXNzZWxfZmlyc3Rfa2luZCcsXG4gICAgJ21vZGlmaWVkX2Jlc3NlbF9zZWNvbmRfa2luZCcsXG4gICAgJ211bHRpcGx5X2xvd2VyX3RyaV9zZWxmX3RyYW5zcG9zZScsXG4gICAgJ25lZ2F0aXZlX2luZmluaXR5JyxcbiAgICAnbm9ybScsXG4gICAgJ25vcm0xJyxcbiAgICAnbm9ybTInLFxuICAgICdub3RfYV9udW1iZXInLFxuICAgICdudW1fZWxlbWVudHMnLFxuICAgICdvZGVfYWRhbXMnLFxuICAgICdvZGVfYWRhbXNfdG9sJyxcbiAgICAnb2RlX2Fkam9pbnRfdG9sX2N0bCcsXG4gICAgJ29kZV9iZGYnLFxuICAgICdvZGVfYmRmX3RvbCcsXG4gICAgJ29kZV9ja3JrJyxcbiAgICAnb2RlX2NrcmtfdG9sJyxcbiAgICAnb2RlX3JrNDUnLFxuICAgICdvZGVfcms0NV90b2wnLFxuICAgICdvbmVfaG90X2FycmF5JyxcbiAgICAnb25lX2hvdF9pbnRfYXJyYXknLFxuICAgICdvbmVfaG90X3Jvd192ZWN0b3InLFxuICAgICdvbmVfaG90X3ZlY3RvcicsXG4gICAgJ29uZXNfYXJyYXknLFxuICAgICdvbmVzX2ludF9hcnJheScsXG4gICAgJ29uZXNfcm93X3ZlY3RvcicsXG4gICAgJ29uZXNfdmVjdG9yJyxcbiAgICAnb3dlbnNfdCcsXG4gICAgJ1BoaScsXG4gICAgJ1BoaV9hcHByb3gnLFxuICAgICdwb2xhcicsXG4gICAgJ3Bvc2l0aXZlX2luZmluaXR5JyxcbiAgICAncG93JyxcbiAgICAncHJpbnQnLFxuICAgICdwcm9kJyxcbiAgICAncHJvaicsXG4gICAgJ3FyJyxcbiAgICAncXJfUScsXG4gICAgJ3FyX1InLFxuICAgICdxcl90aGluJyxcbiAgICAncXJfdGhpbl9RJyxcbiAgICAncXJfdGhpbl9SJyxcbiAgICAncXVhZF9mb3JtJyxcbiAgICAncXVhZF9mb3JtX2RpYWcnLFxuICAgICdxdWFkX2Zvcm1fc3ltJyxcbiAgICAncXVhbnRpbGUnLFxuICAgICdyYW5rJyxcbiAgICAncmVkdWNlX3N1bScsXG4gICAgJ3JlamVjdCcsXG4gICAgJ3JlcF9hcnJheScsXG4gICAgJ3JlcF9tYXRyaXgnLFxuICAgICdyZXBfcm93X3ZlY3RvcicsXG4gICAgJ3JlcF92ZWN0b3InLFxuICAgICdyZXZlcnNlJyxcbiAgICAncmlzaW5nX2ZhY3RvcmlhbCcsXG4gICAgJ3JvdW5kJyxcbiAgICAncm93JyxcbiAgICAncm93cycsXG4gICAgJ3Jvd3NfZG90X3Byb2R1Y3QnLFxuICAgICdyb3dzX2RvdF9zZWxmJyxcbiAgICAnc2NhbGVfbWF0cml4X2V4cF9tdWx0aXBseScsXG4gICAgJ3NkJyxcbiAgICAnc2VnbWVudCcsXG4gICAgJ3NpbicsXG4gICAgJ3Npbmd1bGFyX3ZhbHVlcycsXG4gICAgJ3NpbmgnLFxuICAgICdzaXplJyxcbiAgICAnc29mdG1heCcsXG4gICAgJ3NvcnRfYXNjJyxcbiAgICAnc29ydF9kZXNjJyxcbiAgICAnc29ydF9pbmRpY2VzX2FzYycsXG4gICAgJ3NvcnRfaW5kaWNlc19kZXNjJyxcbiAgICAnc3FydCcsXG4gICAgJ3NxdWFyZScsXG4gICAgJ3NxdWFyZWRfZGlzdGFuY2UnLFxuICAgICdzdGVwJyxcbiAgICAnc3ViX2NvbCcsXG4gICAgJ3N1Yl9yb3cnLFxuICAgICdzdW0nLFxuICAgICdzdmQnLFxuICAgICdzdmRfVScsXG4gICAgJ3N2ZF9WJyxcbiAgICAnc3ltbWV0cml6ZV9mcm9tX2xvd2VyX3RyaScsXG4gICAgJ3RhaWwnLFxuICAgICd0YW4nLFxuICAgICd0YW5oJyxcbiAgICAndGFyZ2V0JyxcbiAgICAndGNyb3NzcHJvZCcsXG4gICAgJ3RnYW1tYScsXG4gICAgJ3RvX2FycmF5XzFkJyxcbiAgICAndG9fYXJyYXlfMmQnLFxuICAgICd0b19jb21wbGV4JyxcbiAgICAndG9faW50JyxcbiAgICAndG9fbWF0cml4JyxcbiAgICAndG9fcm93X3ZlY3RvcicsXG4gICAgJ3RvX3ZlY3RvcicsXG4gICAgJ3RyYWNlJyxcbiAgICAndHJhY2VfZ2VuX3F1YWRfZm9ybScsXG4gICAgJ3RyYWNlX3F1YWRfZm9ybScsXG4gICAgJ3RyaWdhbW1hJyxcbiAgICAndHJ1bmMnLFxuICAgICd1bmlmb3JtX3NpbXBsZXgnLFxuICAgICd2YXJpYW5jZScsXG4gICAgJ3plcm9zX2FycmF5JyxcbiAgICAnemVyb3NfaW50X2FycmF5JyxcbiAgICAnemVyb3Nfcm93X3ZlY3RvcidcbiAgXTtcblxuICBjb25zdCBESVNUUklCVVRJT05TID0gW1xuICAgICdiZXJub3VsbGknLFxuICAgICdiZXJub3VsbGlfbG9naXQnLFxuICAgICdiZXJub3VsbGlfbG9naXRfZ2xtJyxcbiAgICAnYmV0YScsXG4gICAgJ2JldGFfYmlub21pYWwnLFxuICAgICdiZXRhX3Byb3BvcnRpb24nLFxuICAgICdiaW5vbWlhbCcsXG4gICAgJ2Jpbm9taWFsX2xvZ2l0JyxcbiAgICAnY2F0ZWdvcmljYWwnLFxuICAgICdjYXRlZ29yaWNhbF9sb2dpdCcsXG4gICAgJ2NhdGVnb3JpY2FsX2xvZ2l0X2dsbScsXG4gICAgJ2NhdWNoeScsXG4gICAgJ2NoaV9zcXVhcmUnLFxuICAgICdkaXJpY2hsZXQnLFxuICAgICdkaXNjcmV0ZV9yYW5nZScsXG4gICAgJ2RvdWJsZV9leHBvbmVudGlhbCcsXG4gICAgJ2V4cF9tb2Rfbm9ybWFsJyxcbiAgICAnZXhwb25lbnRpYWwnLFxuICAgICdmcmVjaGV0JyxcbiAgICAnZ2FtbWEnLFxuICAgICdnYXVzc2lhbl9kbG1fb2JzJyxcbiAgICAnZ3VtYmVsJyxcbiAgICAnaG1tX2xhdGVudCcsXG4gICAgJ2h5cGVyZ2VvbWV0cmljJyxcbiAgICAnaW52X2NoaV9zcXVhcmUnLFxuICAgICdpbnZfZ2FtbWEnLFxuICAgICdpbnZfd2lzaGFydCcsXG4gICAgJ2ludl93aXNoYXJ0X2Nob2xlc2t5JyxcbiAgICAnbGtqX2NvcnInLFxuICAgICdsa2pfY29ycl9jaG9sZXNreScsXG4gICAgJ2xvZ2lzdGljJyxcbiAgICAnbG9nbG9naXN0aWMnLFxuICAgICdsb2dub3JtYWwnLFxuICAgICdtdWx0aV9ncCcsXG4gICAgJ211bHRpX2dwX2Nob2xlc2t5JyxcbiAgICAnbXVsdGlub21pYWwnLFxuICAgICdtdWx0aW5vbWlhbF9sb2dpdCcsXG4gICAgJ211bHRpX25vcm1hbCcsXG4gICAgJ211bHRpX25vcm1hbF9jaG9sZXNreScsXG4gICAgJ211bHRpX25vcm1hbF9wcmVjJyxcbiAgICAnbXVsdGlfc3R1ZGVudF9jaG9sZXNreV90JyxcbiAgICAnbXVsdGlfc3R1ZGVudF90JyxcbiAgICAnbXVsdGlfc3R1ZGVudF90X2Nob2xlc2t5JyxcbiAgICAnbmVnX2Jpbm9taWFsJyxcbiAgICAnbmVnX2Jpbm9taWFsXzInLFxuICAgICduZWdfYmlub21pYWxfMl9sb2cnLFxuICAgICduZWdfYmlub21pYWxfMl9sb2dfZ2xtJyxcbiAgICAnbm9ybWFsJyxcbiAgICAnbm9ybWFsX2lkX2dsbScsXG4gICAgJ29yZGVyZWRfbG9naXN0aWMnLFxuICAgICdvcmRlcmVkX2xvZ2lzdGljX2dsbScsXG4gICAgJ29yZGVyZWRfcHJvYml0JyxcbiAgICAncGFyZXRvJyxcbiAgICAncGFyZXRvX3R5cGVfMicsXG4gICAgJ3BvaXNzb24nLFxuICAgICdwb2lzc29uX2xvZycsXG4gICAgJ3BvaXNzb25fbG9nX2dsbScsXG4gICAgJ3JheWxlaWdoJyxcbiAgICAnc2NhbGVkX2ludl9jaGlfc3F1YXJlJyxcbiAgICAnc2tld19kb3VibGVfZXhwb25lbnRpYWwnLFxuICAgICdza2V3X25vcm1hbCcsXG4gICAgJ3N0ZF9ub3JtYWwnLFxuICAgICdzdGRfbm9ybWFsX2xvZycsXG4gICAgJ3N0dWRlbnRfdCcsXG4gICAgJ3VuaWZvcm0nLFxuICAgICd2b25fbWlzZXMnLFxuICAgICd3ZWlidWxsJyxcbiAgICAnd2llbmVyJyxcbiAgICAnd2lzaGFydCcsXG4gICAgJ3dpc2hhcnRfY2hvbGVza3knXG4gIF07XG5cbiAgY29uc3QgQkxPQ0tfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAvXFwvXFwqLyxcbiAgICAvXFwqXFwvLyxcbiAgICB7XG4gICAgICByZWxldmFuY2U6IDAsXG4gICAgICBjb250YWluczogW1xuICAgICAgICB7XG4gICAgICAgICAgc2NvcGU6ICdkb2N0YWcnLFxuICAgICAgICAgIG1hdGNoOiAvQChyZXR1cm58cGFyYW0pL1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICApO1xuXG4gIGNvbnN0IElOQ0xVREUgPSB7XG4gICAgc2NvcGU6ICdtZXRhJyxcbiAgICBiZWdpbjogLyNpbmNsdWRlXFxiLyxcbiAgICBlbmQ6IC8kLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBtYXRjaDogL1thLXpdW2Etei0uX10rLyxcbiAgICAgICAgc2NvcGU6ICdzdHJpbmcnXG4gICAgICB9LFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJBTkdFX0NPTlNUUkFJTlRTID0gW1xuICAgIFwibG93ZXJcIixcbiAgICBcInVwcGVyXCIsXG4gICAgXCJvZmZzZXRcIixcbiAgICBcIm11bHRpcGxpZXJcIlxuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N0YW4nLFxuICAgIGFsaWFzZXM6IFsgJ3N0YW5mdW5jcycgXSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IGhsanMuSURFTlRfUkUsXG4gICAgICB0aXRsZTogQkxPQ0tTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBrZXl3b3JkOiBTVEFURU1FTlRTLFxuICAgICAgYnVpbHRfaW46IEZVTkNUSU9OU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIElOQ0xVREUsXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgQkxPQ0tfQ09NTUVOVCxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdidWlsdF9pbicsXG4gICAgICAgIG1hdGNoOiAvXFxzKHBpfGV8c3FydDJ8bG9nMnxsb2cxMCkoPz1cXCgpLyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBtYXRjaDogcmVnZXguY29uY2F0KC9bPCxdXFxzKi8sIHJlZ2V4LmVpdGhlciguLi5SQU5HRV9DT05TVFJBSU5UUyksIC9cXHMqPS8pLFxuICAgICAgICBrZXl3b3JkczogUkFOR0VfQ09OU1RSQUlOVFNcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgICAgIG1hdGNoOiAvXFxidGFyZ2V0KD89XFxzKlxcKz0pLyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGhpZ2hsaWdodHMgdGhlICdUJyBpbiBUWyxdIGZvciBvbmx5IFN0YW4gbGFuZ3VhZ2UgZGlzdHJpYnV0cmlvbnNcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvflxccyovLFxuICAgICAgICAgIHJlZ2V4LmVpdGhlciguLi5ESVNUUklCVVRJT05TKSxcbiAgICAgICAgICAvKD86XFwoXFwpKS8sXG4gICAgICAgICAgL1xccypUKD89XFxzKlxcWykvXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMjogXCJidWlsdF9pblwiLFxuICAgICAgICAgIDQ6IFwia2V5d29yZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGhpZ2hsaWdodHMgZGlzdHJpYnV0aW9ucyB0aGF0IGVuZCB3aXRoIHNwZWNpYWwgZW5kaW5nc1xuICAgICAgICBzY29wZTogJ2J1aWx0X2luJyxcbiAgICAgICAga2V5d29yZHM6IERJU1RSSUJVVElPTlMsXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcdyovLCByZWdleC5laXRoZXIoLi4uRElTVFJJQlVUSU9OUyksIC8oX2xwZGZ8X2x1cGRmfF9scG1mfF9jZGZ8X2xjZGZ8X2xjY2RmfF9xZikoPz1cXHMqW1xcKC4qXFwpXSkvKVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0cyBkaXN0cmlidXRpb25zIGFmdGVyIH5cbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvfi8sXG4gICAgICAgICAgL1xccyovLFxuICAgICAgICAgIHJlZ2V4LmNvbmNhdChyZWdleC5laXRoZXIoLi4uRElTVFJJQlVUSU9OUyksIC8oPz1cXHMqW1xcKC4qXFwpXSkvKVxuICAgICAgICBdLFxuICAgICAgICBzY29wZTogeyAzOiBcImJ1aWx0X2luXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0cyB1c2VyIGRlZmluZWQgZGlzdHJpYnV0aW9ucyBhZnRlciB+XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgL34vLFxuICAgICAgICAgIC9cXHMqXFx3Kyg/PVxccypbXFwoLipcXCldKS8sXG4gICAgICAgICAgJyg/IS4qL1xcYignICsgcmVnZXguZWl0aGVyKC4uLkRJU1RSSUJVVElPTlMpICsgJylcXGIpJ1xuICAgICAgICBdLFxuICAgICAgICBzY29wZTogeyAyOiBcInRpdGxlLmZ1bmN0aW9uXCIgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gaGlnaGxpZ2h0cyB1c2VyIGRlZmluZWQgZGlzdHJpYnV0aW9ucyB3aXRoIHNwZWNpYWwgZW5kaW5nc1xuICAgICAgICBzY29wZTogJ3RpdGxlLmZ1bmN0aW9uJyxcbiAgICAgICAgYmVnaW46IC9cXHcqKF9scGRmfF9sdXBkZnxfbHBtZnxfY2RmfF9sY2RmfF9sY2NkZnxfcWYpKD89XFxzKltcXCguKlxcKV0pL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICdudW1iZXInLFxuICAgICAgICBtYXRjaDogcmVnZXguY29uY2F0KFxuICAgICAgICAgIC8vIENvbWVzIGZyb20gQFJ1bkRldmVsb3BtZW50IGFjY2Vzc2VkIDExLzI5LzIwMjEgYXRcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vUHJpc21KUy9wcmlzbS9ibG9iL2M1M2FkMmU2NWI3MTkzYWI0ZjAzYTE3OTc1MDZhNTRiYmIzM2Q1YTIvY29tcG9uZW50cy9wcmlzbS1zdGFuLmpzI0w1NlxuXG4gICAgICAgICAgLy8gc3RhcnQgb2YgYmlnIG5vbmNhcHR1cmUgZ3JvdXAgd2hpY2hcbiAgICAgICAgICAvLyAxLiBnZXRzIG51bWJlcnMgdGhhdCBhcmUgYnkgdGhlbXNlbHZlc1xuICAgICAgICAgIC8vIDIuIG51bWJlcnMgdGhhdCBhcmUgc2VwYXJhdGVkIGJ5IF9cbiAgICAgICAgICAvLyAzLiBudW1iZXJzIHRoYXQgYXJlIHNlcGFydGVkIGJ5IC5cbiAgICAgICAgICAvKD86XFxiXFxkKyg/Ol9cXGQrKSooPzpcXC4oPzpcXGQrKD86X1xcZCspKik/KT98XFxCXFwuXFxkKyg/Ol9cXGQrKSopLyxcbiAgICAgICAgICAvLyBncmFicyBzY2llbnRpZmljIG5vdGF0aW9uXG4gICAgICAgICAgLy8gZ3JhYnMgY29tcGxleCBudW1iZXJzIHdpdGggaVxuICAgICAgICAgIC8oPzpbZUVdWystXT9cXGQrKD86X1xcZCspKik/aT8oPyFcXHcpL1xuICAgICAgICApLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiL1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGFuO1xuIiwgIi8qXG5MYW5ndWFnZTogU3RhdGFcbkF1dGhvcjogQnJpYW4gUXVpc3RvcmZmIDxicXVpc3RvcmZmQGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogRHJldyBNY0RvbmFsZCA8ZHJld21jZG9AZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFN0YXRhIGlzIGEgZ2VuZXJhbC1wdXJwb3NlIHN0YXRpc3RpY2FsIHNvZnR3YXJlIHBhY2thZ2UgY3JlYXRlZCBpbiAxOTg1IGJ5IFN0YXRhQ29ycC5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N0YXRhXG5DYXRlZ29yeTogc2NpZW50aWZpY1xuKi9cblxuLypcbiAgVGhpcyBpcyBhIGZvcmsgYW5kIG1vZGlmaWNhdGlvbiBvZiBEcmV3IE1jRG9uYWxkJ3MgZmlsZSAoaHR0cHM6Ly9naXRodWIuY29tL2RyZXdtY2RvbmFsZC9zdGF0YS1oaWdobGlnaHRpbmcpLiBJIGhhdmUgYWxzbyBpbmNsdWRlZCBhIGxpc3Qgb2YgYnVpbHRpbiBjb21tYW5kcyBmcm9tIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU2NDYuXG4qL1xuXG5mdW5jdGlvbiBzdGF0YShobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N0YXRhJyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAnZG8nLFxuICAgICAgJ2FkbydcbiAgICBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6ICdpZiBlbHNlIGluIGZvcmVhY2ggZm9yIGZvcnYgZm9ydmEgZm9ydmFsIGZvcnZhbHUgZm9ydmFsdWUgZm9ydmFsdWVzIGJ5IGJ5cyBieXNvcnQgeGkgcXVpZXRseSBxdWkgY2FwdHVyZSBhYm91dCBhYyBhY183IGFjcHJwbG90IGFjcHJwbG90XzcgYWRqdXN0IGFkbyBhZG9wYXRoIGFkb3VwZGF0ZSBhbHBoYSBhbWVhbnMgYW4gYW5vIGFub3YgYW5vdmEgYW5vdmFfZXN0YXQgYW5vdmFfdGVybXMgYW5vdmFkZWYgYW9yZGVyIGFwIGFwcCBhcHBlIGFwcGVuIGFwcGVuZCBhcmNoIGFyY2hfZHIgYXJjaF9lc3RhdCBhcmNoX3AgYXJjaGxtIGFyZWcgYXJlZ19wIGFyZ3MgYXJpbWEgYXJpbWFfZHIgYXJpbWFfZXN0YXQgYXJpbWFfcCBhcyBhc21wcm9iaXQgYXNtcHJvYml0X2VzdGF0IGFzbXByb2JpdF9sZiBhc21wcm9iaXRfbWZ4X19kbGcgYXNtcHJvYml0X3AgYXNzIGFzc2UgYXNzZXIgYXNzZXJ0IGF2cGxvdCBhdnBsb3RfNyBhdnBsb3RzIGF2cGxvdHNfNyBiY3NrZXcwIGJnb2RmcmV5IGJpYXMgYmlucmVnIGJpcDBfbGYgYmlwbG90IGJpcHBfbGYgYmlwcl9sZiBiaXByX3AgYmlwcm9iaXQgYml0ZXN0IGJpdGVzdGkgYml0b3d0IGJsb2dpdCBibWVtc2l6ZSBib290IGJvb3RzYW1wIGJvb3RzdHJhcCBib290c3RyYXBfOCBib3hjb19sIGJveGNvX3AgYm94Y294IGJveGNveF82IGJveGNveF9wIGJwcm9iaXQgYnIgYnJlYWsgYnJpZXIgYnJvIGJyb3cgYnJvd3MgYnJvd3NlIGJyciBicnJzdGF0IGJzIGJzXzcgYnNhbXBsX3cgYnNhbXBsZSBic2FtcGxlXzcgYnNxcmVnIGJzdGF0IGJzdGF0XzcgYnN0YXRfOCBic3RyYXAgYnN0cmFwXzcgYnViYmxlIGJ1YmJsZXBsb3QgY2EgY2FfZXN0YXQgY2FfcCBjYWJpcGxvdCBjYW1hdCBjYW5vbiBjYW5vbl84IGNhbm9uXzhfcCBjYW5vbl9lc3RhdCBjYW5vbl9wIGNhcCBjYXByb2plY3Rpb24gY2FwdCBjYXB0dSBjYXB0dXIgY2FwdHVyZSBjYXQgY2MgY2NoYXJ0IGNjaGFydF83IGNjaSBjZCBjZW5zb2JzX3RhYmxlIGNlbnRpbGUgY2YgY2hhciBjaGRpciBjaGVja2RsZ2ZpbGVzIGNoZWNrZXN0aW1hdGlvbnNhbXBsZSBjaGVja2hscGZpbGVzIGNoZWNrc3VtIGNoZWxwIGNpIGNpaSBjbCBjbGFzcyBjbGFzc3V0aWwgY2xlYXIgY2xpIGNsaXMgY2xpc3QgY2xvIGNsb2cgY2xvZ19sZiBjbG9nX3AgY2xvZ2kgY2xvZ2lfc3cgY2xvZ2l0IGNsb2dpdF9sZiBjbG9naXRfcCBjbG9naXRwIGNsb2dsX3N3IGNsb2dsb2cgY2xvbmV2YXIgY2xzbGlzdGFycmF5IGNsdXN0ZXIgY2x1c3Rlcl9tZWFzdXJlcyBjbHVzdGVyX3N0b3AgY2x1c3Rlcl90cmVlIGNsdXN0ZXJfdHJlZV84IGNsdXN0ZXJtYXQgY21kbG9nIGNuciBjbnJlIGNucmVnIGNucmVnX3AgY25yZWdfc3cgY25zcmVnIGNvZGVib29rIGNvbGxhcHM0IGNvbGxhcHNlIGNvbG9ybXVsdF9uYiBjb2xvcm11bHRfbncgY29tcGFyZSBjb21wcmVzcyBjb25mIGNvbmZpIGNvbmZpciBjb25maXJtIGNvbnJlbiBjb25zIGNvbnN0IGNvbnN0ciBjb25zdHJhIGNvbnN0cmFpIGNvbnN0cmFpbiBjb25zdHJhaW50IGNvbnRpbnVlIGNvbnRyYWN0IGNvcHkgY29weXJpZ2h0IGNvcHlzb3VyY2UgY29yIGNvcmMgY29yciBjb3JyMmRhdGEgY29ycl9hbnRpIGNvcnJfa21vIGNvcnJfc21jIGNvcnJlIGNvcnJlbCBjb3JyZWxhIGNvcnJlbGF0IGNvcnJlbGF0ZSBjb3JyZ3JhbSBjb3UgY291biBjb3VudCBjb3ggY294X3AgY294X3N3IGNveGJhc2UgY294aGF6IGNveHZhciBjcHJwbG90IGNwcnBsb3RfNyBjcmMgY3JldCBjcmV0dSBjcmV0dXIgY3JldHVybiBjcm9zcyBjcyBjc2NyaXB0IGNzY3JpcHRfbG9nIGNzaSBjdCBjdF9pcyBjdHNldCBjdHN0XzUgY3RzdF9zdCBjdHRvc3QgY3Vtc3AgY3Vtc3BfNyBjdW11bCBjdXN1bSBjdXN1bV83IGN1dGlsIGR8MCBkYXRhc2lnIGRhdGFzaWduIGRhdGFzaWduYSBkYXRhc2lnbmF0IGRhdGFzaWduYXR1IGRhdGFzaWduYXR1ciBkYXRhc2lnbmF0dXJlIGRhdGV0b2YgZGIgZGJldGEgZGUgZGVjIGRlY28gZGVjb2QgZGVjb2RlIGRlZmYgZGVzIGRlc2MgZGVzY3IgZGVzY3JpIGRlc2NyaWIgZGVzY3JpYmUgZGVzdHJpbmcgZGZiZXRhIGRmZ2xzIGRmdWxsZXIgZGkgZGlfZyBkaXIgZGlyc3RhdHMgZGlzIGRpc2NhcmQgZGlzcCBkaXNwX3JlcyBkaXNwX3MgZGlzcGwgZGlzcGxhIGRpc3BsYXkgZGlzdGluY3QgZG8gZG9lIGRvZWQgZG9lZGkgZG9lZGl0IGRvdHBsb3QgZG90cGxvdF83IGRwcm9iaXQgZHJhd25vcm0gZHJvcCBkcyBkc191dGlsIGRzdGRpemUgZHVwbGljYXRlcyBkdXJiaW5hIGR3c3RhdCBkeWR4IGV8MCBlZCBlZGkgZWRpdCBlZ2VuIGVpdnJlZyBlbWRlZiBlbiBlbmMgZW5jbyBlbmNvZCBlbmNvZGUgZXEgZXJhc2UgZXJlZyBlcmVnX2xmIGVyZWdfcCBlcmVnX3N3IGVyZWdoZXQgZXJlZ2hldF9nbGYgZXJlZ2hldF9nbGZfc2ggZXJlZ2hldF9ncCBlcmVnaGV0X2lsZiBlcmVnaGV0X2lsZl9zaCBlcmVnaGV0X2lwIGVyZXQgZXJldHUgZXJldHVyIGVyZXR1cm4gZXJyIGVycm8gZXJyb3IgZXNpemUgZXN0IGVzdF9jZmV4aXN0IGVzdF9jZm5hbWUgZXN0X2NsaWNrYWJsZSBlc3RfZXhwYW5kIGVzdF9ob2xkIGVzdF90YWJsZSBlc3RfdW5ob2xkIGVzdF91bmhvbGRvayBlc3RhdCBlc3RhdF9kZWZhdWx0IGVzdGF0X3N1bW0gZXN0YXRfdmNlX29ubHkgZXN0aSBlc3RpbWF0ZXMgZXRvZG93IGV0b2YgZXRvbWR5IGV4IGV4aSBleGl0IGV4cGFuZCBleHBhbmRjbCBmYWMgZmFjdCBmYWN0byBmYWN0b3IgZmFjdG9yX2VzdGF0IGZhY3Rvcl9wIGZhY3Rvcl9wY2Ffcm90YXRlZCBmYWN0b3Jfcm90YXRlIGZhY3Rvcm1hdCBmY2FzdCBmY2FzdF9jb21wdXRlIGZjYXN0X2dyYXBoIGZkYWRlcyBmZGFkZXNjIGZkYWRlc2NyIGZkYWRlc2NyaSBmZGFkZXNjcmliIGZkYWRlc2NyaWJlIGZkYXNhdiBmZGFzYXZlIGZkYXVzZSBmaF9zdCBmaWxlIG9wZW4gZmlsZSByZWFkIGZpbGUgY2xvc2UgZmlsZSBmaWxlZmlsdGVyIGZpbGxpbiBmaW5kX2hscF9maWxlIGZpbmRmaWxlIGZpbmRpdCBmaW5kaXRfNyBmaXQgZmwgZmxpIGZsaXMgZmxpc3QgZm9yNV8wIGZvcmVzdCBmb3Jlc3RwbG90IGZvcm0gZm9ybWEgZm9ybWF0IGZwcmVkaWN0IGZyYWNfMTU0IGZyYWNfYWRqIGZyYWNfY2hrIGZyYWNfY294IGZyYWNfZGRwIGZyYWNfZGlzIGZyYWNfZHYgZnJhY19pbiBmcmFjX211biBmcmFjX3BwIGZyYWNfcHEgZnJhY19wdiBmcmFjX3dndCBmcmFjX3hvIGZyYWNnZW4gZnJhY3Bsb3QgZnJhY3Bsb3RfNyBmcmFjcG9seSBmcmFjcHJlZCBmcm9uX2V4IGZyb25faG4gZnJvbl9wIGZyb25fdG4gZnJvbl90bjIgZnJvbnRpZXIgZnRvZGF0ZSBmdG9lIGZ0b21keSBmdG93ZGF0ZSBmdW5uZWwgZnVubmVscGxvdCBnfDAgZ2FtaGV0X2dsZiBnYW1oZXRfZ3AgZ2FtaGV0X2lsZiBnYW1oZXRfaXAgZ2FtbWEgZ2FtbWFfZDIgZ2FtbWFfcCBnYW1tYV9zdyBnYW1tYWhldCBnZGlfaGV4YWdvbiBnZGlfc3Bva2VzIGdlIGdlbiBnZW5lIGdlbmVyIGdlbmVyYSBnZW5lcmF0IGdlbmVyYXRlIGdlbnJhbmsgZ2Vuc3RkIGdlbnZtZWFuIGdldHRva2VuIGdsIGdsYWRkZXIgZ2xhZGRlcl83IGdsaW1fbDAxIGdsaW1fbDAyIGdsaW1fbDAzIGdsaW1fbDA0IGdsaW1fbDA1IGdsaW1fbDA2IGdsaW1fbDA3IGdsaW1fbDA4IGdsaW1fbDA5IGdsaW1fbDEwIGdsaW1fbDExIGdsaW1fbDEyIGdsaW1fbGYgZ2xpbV9tdSBnbGltX253MSBnbGltX253MiBnbGltX253MyBnbGltX3AgZ2xpbV92MSBnbGltX3YyIGdsaW1fdjMgZ2xpbV92NCBnbGltX3Y1IGdsaW1fdjYgZ2xpbV92NyBnbG0gZ2xtXzYgZ2xtX3AgZ2xtX3N3IGdsbXByZWQgZ2xvIGdsb2IgZ2xvYmEgZ2xvYmFsIGdsb2dpdCBnbG9naXRfOCBnbG9naXRfcCBnbWVhbnMgZ25icmVfbGYgZ25icmVnIGduYnJlZ181IGduYnJlZ19wIGdvbXBfbGYgZ29tcGVfc3cgZ29tcGVyX3AgZ29tcGVydHogZ29tcGVydHpoZXQgZ29tcGhldF9nbGYgZ29tcGhldF9nbGZfc2ggZ29tcGhldF9ncCBnb21waGV0X2lsZiBnb21waGV0X2lsZl9zaCBnb21waGV0X2lwIGdwaGRvdCBncGhwZW4gZ3BocHJpbnQgZ3ByZWZzIGdwcm9iaV9wIGdwcm9iaXQgZ3Byb2JpdF84IGdyIGdyNyBncl9jb3B5IGdyX2N1cnJlbnQgZ3JfZGIgZ3JfZGVzY3JpYmUgZ3JfZGlyIGdyX2RyYXcgZ3JfZHJhd19yZXBsYXkgZ3JfZHJvcCBncl9lZGl0IGdyX2VkaXR2aWV3b3B0cyBncl9leGFtcGxlIGdyX2V4YW1wbGUyIGdyX2V4cG9ydCBncl9wcmludCBncl9xc2NoZW1lIGdyX3F1ZXJ5IGdyX3JlYWQgZ3JfcmVuYW1lIGdyX3JlcGxheSBncl9zYXZlIGdyX3NldCBncl9zZXRzY2hlbWUgZ3JfdGFibGUgZ3JfdW5kbyBncl91c2UgZ3JhcGggZ3JhcGg3IGdyZWJhciBncmVpZ2VuIGdyZWlnZW5fNyBncmVpZ2VuXzggZ3JtZWFuYnkgZ3JtZWFuYnlfNyBnc19maWxlaW5mbyBnc19maWxldHlwZSBnc19ncmFwaGluZm8gZ3Nfc3RhdCBnc29ydCBnd29vZCBofDAgaGFkaW12byBoYXJlZyBoYXVzbWFuIGhhdmVyIGhlIGhlY2tfZDIgaGVja21hX3AgaGVja21hbiBoZWNrcF9sZiBoZWNrcHJfcCBoZWNrcHJvYiBoZWwgaGVscCBoZXJlZyBoZXRwcl9sZiBoZXRwcl9wIGhldHByb2IgaGV0dGVzdCBoZXhkdW1wIGhpbGl0ZSBoaXN0IGhpc3RfNyBoaXN0b2dyYW0gaGxvZ2l0IGhsdSBobWVhbnMgaG90ZWwgaG90ZWxsaW5nIGhwcm9iaXQgaHJlZyBoc2VhcmNoIGljZDkgaWNkOV9mZiBpY2Q5cCBpaXMgaW1wdXRlIGltdGVzdCBpbmJhc2UgaW5jbHVkZSBpbmYgaW5maSBpbmZpbCBpbmZpbGUgaW5maXggaW5wIGlucHUgaW5wdXQgaW5zIGluc2hlZXQgaW5zcCBpbnNwZSBpbnNwZWMgaW5zcGVjdCBpbnRlZyBpbnRlbiBpbnRyZWcgaW50cmVnXzcgaW50cmVnX3AgaW50cmcyX2xsIGludHJnX2xsIGludHJnX2xsMiBpcG9sYXRlIGlxcmVnIGlyIGlyZiBpcmZfY3JlYXRlIGlyZm0gaXJpIGlzX3N2eSBpc19zdnlzdW0gaXNpZCBpc3RkaXplIGl2cHJvYl8xX2xmIGl2cHJvYl9sZiBpdnByb2JpdCBpdnByb2JpdF9wIGl2cmVnIGl2cmVnX2Zvb3Rub3RlIGl2dG9iXzFfbGYgaXZ0b2JfbGYgaXZ0b2JpdCBpdnRvYml0X3AgamFja2tuaWZlIGphY2tuaWZlIGprbmlmZSBqa25pZmVfNiBqa25pZmVfOCBqa3N0YXQgam9pbmJ5IGthbGFybWExIGthcCBrYXBfMyBrYXBtZWllciBrYXBwYSBrYXB3Z3Qga2RlbnNpdHkga2RlbnNpdHlfNyBrZWVwIGtzbSBrc21pcm5vdiBrdGF1IGt3YWxsaXMgbHwwIGxhIGxhYiBsYWJiZSBsYWJiZXBsb3QgbGFiZSBsYWJlbCBsYWJlbGJvb2sgbGFkZGVyIGxldmVscyBsZXZlbHNvZiBsZXZlcmFnZSBsZml0IGxmaXRfcCBsaSBsaW5jb20gbGluZSBsaW5rdGVzdCBsaXMgbGlzdCBsbG9naGV0X2dsZiBsbG9naGV0X2dsZl9zaCBsbG9naGV0X2dwIGxsb2doZXRfaWxmIGxsb2doZXRfaWxmX3NoIGxsb2doZXRfaXAgbGxvZ2lfc3cgbGxvZ2lzX3AgbGxvZ2lzdCBsbG9naXN0aWMgbGxvZ2lzdGljaGV0IGxub3JtX2xmIGxub3JtX3N3IGxub3JtYV9wIGxub3JtYWwgbG5vcm1hbGhldCBsbm9ybWhldF9nbGYgbG5vcm1oZXRfZ2xmX3NoIGxub3JtaGV0X2dwIGxub3JtaGV0X2lsZiBsbm9ybWhldF9pbGZfc2ggbG5vcm1oZXRfaXAgbG5za2V3MCBsb2FkaW5ncGxvdCBsb2MgbG9jYSBsb2NhbCBsb2cgbG9naSBsb2dpc19sZiBsb2dpc3RpYyBsb2dpc3RpY19wIGxvZ2l0IGxvZ2l0X2VzdGF0IGxvZ2l0X3AgbG9nbG9ncyBsb2dyYW5rIGxvbmV3YXkgbG9va2ZvciBsb29rdXAgbG93ZXNzIGxvd2Vzc183IGxwcmVkaWN0IGxyZWNvbXAgbHJvYyBscm9jXzcgbHJ0ZXN0IGxzIGxzZW5zIGxzZW5zXzcgbHNlbnNfeCBsc3RhdCBsdGFibGUgbHRhYmxlXzcgbHRyaWFuZyBsdiBsdnIycGxvdCBsdnIycGxvdF83IG18MCBtYSBtYWMgbWFjciBtYWNybyBtYWtlY25zIG1hbiBtYW5vdmEgbWFub3ZhX2VzdGF0IG1hbm92YV9wIG1hbm92YXRlc3QgbWFudGVsIG1hcmsgbWFya2luIG1hcmtvdXQgbWFya3NhbXBsZSBtYXQgbWF0X2NhcHAgbWF0X29yZGVyIG1hdF9wdXRfcnIgbWF0X3JhcHAgbWF0YSBtYXRhX2NsZWFyIG1hdGFfZGVzY3JpYmUgbWF0YV9kcm9wIG1hdGFfbWF0ZGVzY3JpYmUgbWF0YV9tYXRzYXZlIG1hdGFfbWF0dXNlIG1hdGFfbWVtb3J5IG1hdGFfbWxpYiBtYXRhX21vc2F2ZSBtYXRhX3JlbmFtZSBtYXRhX3doaWNoIG1hdGFsYWJlbCBtYXRjcHJvYyBtYXRsaXN0IG1hdG5hbWUgbWF0ciBtYXRyaSBtYXRyaXggbWF0cml4X2lucHV0X19kbGcgbWF0c3RyaWsgbWNjIG1jY2kgbWQwXyBtZDFfIG1kMWRlYnVnXyBtZDJfIG1kMmRlYnVnXyBtZHMgbWRzX2VzdGF0IG1kc19wIG1kc2NvbmZpZyBtZHNsb25nIG1kc21hdCBtZHNzaGVwYXJkIG1keXRvZSBtZHl0b2YgbWVfZGVyZCBtZWFuIG1lYW5zIG1lZGlhbiBtZW1vcnkgbWVtc2l6ZSBtZW5sIG1lcXBhcnNlIG1lciBtZXJnIG1lcmdlIG1ldGEgbWZwIG1meCBtaGVscCBtaG9kZHMgbWluYm91bmQgbWl4ZWRfbGwgbWl4ZWRfbGxfcmVwYXJtIG1rYXNzZXJ0IG1rZGlyIG1rbWF0IG1rc3BsaW5lIG1sIG1sXzUgbWxfYWRqcyBtbF9iaGhocyBtbF9jX2QgbWxfY2hlY2sgbWxfY2xlYXIgbWxfY250IG1sX2RlYnVnIG1sX2RlZmQgbWxfZTAgbWxfZTBfYmZncyBtbF9lMF9jeWNsZSBtbF9lMF9kZnAgbWxfZTBpIG1sX2UxIG1sX2UxX2JmZ3MgbWxfZTFfYmhoaCBtbF9lMV9jeWNsZSBtbF9lMV9kZnAgbWxfZTIgbWxfZTJfY3ljbGUgbWxfZWJmZzAgbWxfZWJmcjAgbWxfZWJmcjEgbWxfZWJoMHEgbWxfZWJoaDAgbWxfZWJocjAgbWxfZWJyMGkgbWxfZWNyMGkgbWxfZWRmcDAgbWxfZWRmcjAgbWxfZWRmcjEgbWxfZWRyMGkgbWxfZWRzIG1sX2VlcjBpIG1sX2VncjBpIG1sX2VsZiBtbF9lbGZfYmZncyBtbF9lbGZfYmhoaCBtbF9lbGZfY3ljbGUgbWxfZWxmX2RmcCBtbF9lbGZpIG1sX2VsZnMgbWxfZW5yMGkgbWxfZW5ycjAgbWxfZXJkdTAgbWxfZXJkdTBfYmZncyBtbF9lcmR1MF9iaGhoIG1sX2VyZHUwX2JoaGhxIG1sX2VyZHUwX2N5Y2xlIG1sX2VyZHUwX2RmcCBtbF9lcmR1MF9ucmJmZ3MgbWxfZXhkZSBtbF9mb290bm90ZSBtbF9nZXFuciBtbF9ncmFkMCBtbF9ncmFwaCBtbF9oYmhoaCBtbF9oZDAgbWxfaG9sZCBtbF9pbml0IG1sX2ludiBtbF9sb2cgbWxfbWF4IG1sX21sb3V0IG1sX21sb3V0XzggbWxfbW9kZWwgbWxfbmIwIG1sX29wdCBtbF9wIG1sX3Bsb3QgbWxfcXVlcnkgbWxfcmRncmQgbWxfcmVwb3IgbWxfc19lIG1sX3Njb3JlIG1sX3NlYXJjIG1sX3RlY2huaXF1ZSBtbF91bmhvbGQgbWxldmFsIG1sZl8gbWxtYXRieXN1bSBtbG1hdHN1bSBtbG9nIG1sb2dpIG1sb2dpdCBtbG9naXRfZm9vdG5vdGUgbWxvZ2l0X3AgbWxvcHRzIG1sc3VtIG1sdmVjc3VtIG1ubDBfIG1vciBtb3JlIG1vdiBtb3ZlIG1wcm9iaXQgbXByb2JpdF9sZiBtcHJvYml0X3AgbXJkdTBfIG1yZHUxXyBtdmRlY29kZSBtdmVuY29kZSBtdnJlZyBtdnJlZ19lc3RhdCBufDAgbmJyZWcgbmJyZWdfYWwgbmJyZWdfbGYgbmJyZWdfcCBuYnJlZ19zdyBuZXN0cmVnIG5ldCBuZXdleSBuZXdleV83IG5ld2V5X3AgbmV3cyBubCBubF83IG5sXzkgbmxfOV9wIG5sX3AgbmxfcF83IG5sY29tIG5sY29tX3AgbmxleHAyIG5sZXhwMl83IG5sZXhwMmEgbmxleHAyYV83IG5sZXhwMyBubGV4cDNfNyBubGdvbTMgbmxnb20zXzcgbmxnb200IG5sZ29tNF83IG5saW5pdCBubGxvZzMgbmxsb2czXzcgbmxsb2c0IG5sbG9nNF83IG5sb2dfcmQgbmxvZ2l0IG5sb2dpdF9wIG5sb2dpdGdlbiBubG9naXR0cmVlIG5scHJlZCBubyBub2JyZWFrIG5vaSBub2lzIG5vaXNpIG5vaXNpbCBub2lzaWx5IG5vdGUgbm90ZXMgbm90ZXNfZGxnIG5wdHJlbmQgbnVtbGFiZWwgbnVtbGlzdCBvZGJjIG9sZF92ZXIgb2xvIG9sb2cgb2xvZ2kgb2xvZ2lfc3cgb2xvZ2l0IG9sb2dpdF9wIG9sb2dpdHAgb24gb25lIG9uZXcgb25ld2Egb25ld2F5IG9wX2NvbG5tIG9wX2NvbXAgb3BfZGlmZiBvcF9pbnYgb3Bfc3RyIG9wciBvcHJvIG9wcm9iIG9wcm9iX3N3IG9wcm9iaSBvcHJvYmlfcCBvcHJvYml0IG9wcm9iaXRwIG9wdHNfZXhjbHVzaXZlIG9yZGVyIG9ydGhvZyBvcnRocG9seSBvdSBvdXQgb3V0ZiBvdXRmaSBvdXRmaWwgb3V0ZmlsZSBvdXRzIG91dHNoIG91dHNoZSBvdXRzaGVlIG91dHNoZWV0IG92dGVzdCBwYWMgcGFjXzcgcGFsZXR0ZSBwYXJzZSBwYXJzZV9kaXNzaW0gcGF1c2UgcGNhIHBjYV84IHBjYV9kaXNwbGF5IHBjYV9lc3RhdCBwY2FfcCBwY2Ffcm90YXRlIHBjYW1hdCBwY2hhcnQgcGNoYXJ0XzcgcGNoaSBwY2hpXzcgcGNvcnIgcGN0aWxlIHBlbnRpdW0gcGVyZ3JhbSBwZXJncmFtXzcgcGVybXV0ZSBwZXJtdXRlXzggcGVyc29uYWwgcGV0b19zdCBwa2NvbGxhcHNlIHBrY3Jvc3MgcGtlcXVpdiBwa2V4YW1pbmUgcGtleGFtaW5lXzcgcGtzaGFwZSBwa3N1bW0gcGtzdW1tXzcgcGwgcGxvIHBsb3QgcGx1Z2luIHBub3JtIHBub3JtXzcgcG9pc2dvZiBwb2lzc19sZiBwb2lzc19zdyBwb2lzc29fcCBwb2lzc29uIHBvaXNzb25fZXN0YXQgcG9zdCBwb3N0Y2xvc2UgcG9zdGZpbGUgcG9zdHV0aWwgcHBlcnJvbiBwciBwcmFpcyBwcmFpc19lIHByYWlzX2UyIHByYWlzX3AgcHJlZGljdCBwcmVkaWN0bmwgcHJlc2VydmUgcHJpbnQgcHJvIHByb2IgcHJvYmkgcHJvYml0IHByb2JpdF9lc3RhdCBwcm9iaXRfcCBwcm9jX3RpbWUgcHJvY292ZXJsYXkgcHJvY3J1c3RlcyBwcm9jcnVzdGVzX2VzdGF0IHByb2NydXN0ZXNfcCBwcm9maWxlciBwcm9nIHByb2dyIHByb2dyYSBwcm9ncmFtIHByb3AgcHJvcG9ydGlvbiBwcnRlc3QgcHJ0ZXN0aSBwd2NvcnIgcHdkIHFcXFxccyBxYnkgcWJ5cyBxY2hpIHFjaGlfNyBxbGFkZGVyIHFsYWRkZXJfNyBxbm9ybSBxbm9ybV83IHFxcGxvdCBxcXBsb3RfNyBxcmVnIHFyZWdfYyBxcmVnX3AgcXJlZ19zdyBxdSBxdWFkY2hrIHF1YW50aWxlIHF1YW50aWxlXzcgcXVlIHF1ZXIgcXVlcnkgcmFuZ2UgcmFua3N1bSByYXRpbyByY2hhcnQgcmNoYXJ0XzcgcmNvZiByZWNhc3QgcmVjbGluayByZWNvZGUgcmVnIHJlZzMgcmVnM19wIHJlZ2R3IHJlZ3IgcmVncmUgcmVncmVfcDIgcmVncmVzIHJlZ3Jlc19wIHJlZ3Jlc3MgcmVncmVzc19lc3RhdCByZWdyaXZfcCByZW1hcCByZW4gcmVuYSByZW5hbSByZW5hbWUgcmVucGZpeCByZXBlYXQgcmVwbGFjZSByZXBvcnQgcmVzaGFwZSByZXN0b3JlIHJldCByZXR1IHJldHVyIHJldHVybiBybSBybWRpciByb2J2YXIgcm9jY29tcCByb2Njb21wXzcgcm9jY29tcF84IHJvY2ZfbGYgcm9jZml0IHJvY2ZpdF84IHJvY2dvbGQgcm9jcGxvdCByb2NwbG90Xzcgcm9jdGFiIHJvY3RhYl83IHJvbGxpbmcgcm9sb2dpdCByb2xvZ2l0X3Agcm90IHJvdGEgcm90YXQgcm90YXRlIHJvdGF0ZW1hdCBycmVnIHJyZWdfcCBydSBydW4gcnVudGVzdCBydmZwbG90IHJ2ZnBsb3RfNyBydnBwbG90IHJ2cHBsb3RfNyBzYSBzYWZlc3VtIHNhbXBsZSBzYW1wc2kgc2F2IHNhdmUgc2F2ZWRyZXN1bHRzIHNhdmVvbGQgc2Mgc2NhIHNjYWwgc2NhbGEgc2NhbGFyIHNjYXR0ZXIgc2NtX21pbmUgc2NvIHNjb2JfbGYgc2NvYl9wIHNjb2JpX3N3IHNjb2JpdCBzY29yIHNjb3JlIHNjb3JlcGxvdCBzY29yZXBsb3RfaGVscCBzY3JlZSBzY3JlZXBsb3Qgc2NyZWVwbG90X2hlbHAgc2R0ZXN0IHNkdGVzdGkgc2Ugc2VhcmNoIHNlcGFyYXRlIHNlcGVyYXRlIHNlcnJiYXIgc2VycmJhcl83IHNlcnNldCBzZXQgc2V0X2RlZmF1bHRzIHNmcmFuY2lhIHNoIHNoZSBzaGVsIHNoZWxsIHNoZXdoYXJ0IHNoZXdoYXJ0Xzcgc2lnbmVzdGltYXRpb25zYW1wbGUgc2lnbnJhbmsgc2lnbnRlc3Qgc2ltdWwgc2ltdWxfNyBzaW11bGF0ZSBzaW11bGF0ZV84IHNrdGVzdCBzbGVlcCBzbG9naXQgc2xvZ2l0X2QyIHNsb2dpdF9wIHNtb290aCBzbmFwc3BhbiBzbyBzb3Igc29ydCBzcGVhcm1hbiBzcGlrZXBsb3Qgc3Bpa2VwbG90Xzcgc3Bpa2VwbHQgc3BsaW5lX3ggc3BsaXQgc3FyZWcgc3FyZWdfcCBzcmV0IHNyZXR1IHNyZXR1ciBzcmV0dXJuIHNzYyBzdCBzdF9jdCBzdF9oYyBzdF9oY2Qgc3RfaGNkX3NoIHN0X2lzIHN0X2lzc3lzIHN0X25vdGUgc3RfcHJvbW8gc3Rfc2V0IHN0X3Nob3cgc3Rfc21wbCBzdF9zdWJpZCBzdGFjayBzdGF0c2J5IHN0YXRzYnlfOCBzdGJhc2Ugc3RjaSBzdGNpXzcgc3Rjb3ggc3Rjb3hfZXN0YXQgc3Rjb3hfZnIgc3Rjb3hfZnJfbGwgc3Rjb3hfcCBzdGNveF9zdyBzdGNveGttIHN0Y294a21fNyBzdGNzdGF0IHN0Y3VydiBzdGN1cnZlIHN0Y3VydmVfNyBzdGRlcyBzdGVtIHN0ZXB3aXNlIHN0ZXJlZyBzdGZpbGwgc3RnZW4gc3RpciBzdGpvaW4gc3RtYyBzdG1oIHN0cGhwbG90IHN0cGhwbG90Xzcgc3RwaHRlc3Qgc3RwaHRlc3RfNyBzdHB0aW1lIHN0cmF0ZSBzdHJhdGVfNyBzdHJlZyBzdHJlZ19zdyBzdHJlc2V0IHN0cyBzdHNfNyBzdHNldCBzdHNwbGl0IHN0c3VtIHN0dG9jYyBzdHRvY3Qgc3R2YXJ5IHN0d2VpYiBzdSBzdWVzdCBzdWVzdF84IHN1bSBzdW1tIHN1bW1hIHN1bW1hciBzdW1tYXJpIHN1bW1hcml6IHN1bW1hcml6ZSBzdW5mbG93ZXIgc3VyZWcgc3VydmN1cnYgc3VydnN1bSBzdmFyIHN2YXJfcCBzdm1hdCBzdnkgc3Z5X2Rpc3Agc3Z5X2RyZWcgc3Z5X2VzdCBzdnlfZXN0Xzcgc3Z5X2VzdGF0IHN2eV9nZXQgc3Z5X2duYnJlZ19wIHN2eV9oZWFkIHN2eV9oZWFkZXIgc3Z5X2hlY2ttYW5fcCBzdnlfaGVja3Byb2JfcCBzdnlfaW50cmVnX3Agc3Z5X2l2cmVnX3Agc3Z5X2xvZ2lzdGljX3Agc3Z5X2xvZ2l0X3Agc3Z5X21sb2dpdF9wIHN2eV9uYnJlZ19wIHN2eV9vbG9naXRfcCBzdnlfb3Byb2JpdF9wIHN2eV9wb2lzc29uX3Agc3Z5X3Byb2JpdF9wIHN2eV9yZWdyZXNzX3Agc3Z5X3N1YiBzdnlfc3ViXzcgc3Z5X3ggc3Z5X3hfNyBzdnlfeF9wIHN2eWRlcyBzdnlkZXNfOCBzdnlnZW4gc3Z5Z25icmVnIHN2eWhlY2ttYW4gc3Z5aGVja3Byb2Igc3Z5aW50cmVnIHN2eWludHJlZ183IHN2eWludHJnIHN2eWl2cmVnIHN2eWxjIHN2eWxvZ19wIHN2eWxvZ2l0IHN2eW1hcmtvdXQgc3Z5bWFya291dF84IHN2eW1lYW4gc3Z5bWxvZyBzdnltbG9naXQgc3Z5bmJyZWcgc3Z5b2xvZyBzdnlvbG9naXQgc3Z5b3Byb2Igc3Z5b3Byb2JpdCBzdnlvcHRzIHN2eXBvaXMgc3Z5cG9pc183IHN2eXBvaXNzb24gc3Z5cHJvYml0IHN2eXByb2J0IHN2eXByb3Agc3Z5cHJvcF83IHN2eXJhdGlvIHN2eXJlZyBzdnlyZWdfcCBzdnlyZWdyZXNzIHN2eXNldCBzdnlzZXRfNyBzdnlzZXRfOCBzdnl0YWIgc3Z5dGFiXzcgc3Z5dGVzdCBzdnl0b3RhbCBzdyBzd184IHN3Y25yZWcgc3djb3ggc3dlcmVnIHN3aWxrIHN3bG9naXMgc3dsb2dpdCBzd29sb2dpdCBzd29wcmJ0IHN3cG9pcyBzd3Byb2JpdCBzd3FyZWcgc3d0b2JpdCBzd3dlaWIgc3ltbWV0cnkgc3ltbWkgc3ltcGxvdCBzeW1wbG90Xzcgc3ludGF4IHN5c2Rlc2NyaWJlIHN5c2RpciBzeXN1c2Ugc3pyb2V0ZXIgdGEgdGFiIHRhYjEgdGFiMiB0YWJfb3IgdGFiZCB0YWJkaSB0YWJkaXMgdGFiZGlzcCB0YWJpIHRhYmxlIHRhYm9kZHMgdGFib2Rkc183IHRhYnN0YXQgdGFidSB0YWJ1bCB0YWJ1bGEgdGFidWxhdCB0YWJ1bGF0ZSB0ZSB0ZW1wZmlsZSB0ZW1wbmFtZSB0ZW1wdmFyIHRlcyB0ZXN0IHRlc3RubCB0ZXN0cGFybSB0ZXN0c3RkIHRldHJhY2hvcmljIHRpbWVfaXQgdGltZXIgdGlzIHRvYiB0b2JpIHRvYml0IHRvYml0X3AgdG9iaXRfc3cgdG9rZW4gdG9rZW5pIHRva2VuaXogdG9rZW5pemUgdG9zdHJpbmcgdG90YWwgdHJhbnNsYXRlIHRyYW5zbGF0b3IgdHJhbnNtYXAgdHJlYXRfbGwgdHJlYXRyX3AgdHJlYXRyZWcgdHJpbSB0cmltZmlsbCB0cm5iX2NvbnMgdHJuYl9tZWFuIHRycG9pc3NfZDIgdHJ1bmNfbGwgdHJ1bmNyX3AgdHJ1bmNyZWcgdHNhcHBlbmQgdHNldCB0c2ZpbGwgdHNsaW5lIHRzbGluZV9leCB0c3JlcG9ydCB0c3JldmFyIHRzcmxpbmUgdHNzZXQgdHNzbW9vdGggdHN1bmFiIHR0ZXN0IHR0ZXN0aSB0dXRfY2hrIHR1dF93YWl0IHR1dG9yaWFsIHR3IHR3YXJlX3N0IHR3byB0d293YXkgdHdvd2F5X19mcGZpdF9zZXJzZXQgdHdvd2F5X19mdW5jdGlvbl9nZW4gdHdvd2F5X19oaXN0b2dyYW1fZ2VuIHR3b3dheV9faXBvaW50X3NlcnNldCB0d293YXlfX2lwb2ludHNfc2Vyc2V0IHR3b3dheV9fa2RlbnNpdHlfZ2VuIHR3b3dheV9fbGZpdF9zZXJzZXQgdHdvd2F5X19ub3JtZ2VuX2dlbiB0d293YXlfX3BjaV9zZXJzZXQgdHdvd2F5X19xZml0X3NlcnNldCB0d293YXlfX3NjYXR0ZXJpX3NlcnNldCB0d293YXlfX3N1bmZsb3dlcl9nZW4gdHdvd2F5X2tzbV9zZXJzZXQgdHkgdHlwIHR5cGUgdHlwZW9mIHV8MCB1bmFiIHVuYWJicmV2IHVuYWJjbWQgdXBkYXRlIHVzIHVzZSB1c2VsYWJlbCB2YXIgdmFyX21rY29tcGFuaW9uIHZhcl9wIHZhcmJhc2ljIHZhcmZjYXN0IHZhcmdyYW5nZXIgdmFyaXJmIHZhcmlyZl9hZGQgdmFyaXJmX2NncmFwaCB2YXJpcmZfY3JlYXRlIHZhcmlyZl9jdGFibGUgdmFyaXJmX2Rlc2NyaWJlIHZhcmlyZl9kaXIgdmFyaXJmX2Ryb3AgdmFyaXJmX2VyYXNlIHZhcmlyZl9ncmFwaCB2YXJpcmZfb2dyYXBoIHZhcmlyZl9yZW5hbWUgdmFyaXJmX3NldCB2YXJpcmZfdGFibGUgdmFybGlzdCB2YXJsbWFyIHZhcm5vcm0gdmFyc29jIHZhcnN0YWJsZSB2YXJzdGFibGVfdyB2YXJzdGFibGVfdzIgdmFyd2xlIHZjZSB2ZWMgdmVjX2ZldmQgdmVjX21rcGhpIHZlY19wIHZlY19wX3cgdmVjaXJmX2NyZWF0ZSB2ZWNsbWFyIHZlY2xtYXJfdyB2ZWNub3JtIHZlY25vcm1fdyB2ZWNyYW5rIHZlY3N0YWJsZSB2ZXJpbnN0IHZlcnMgdmVyc2kgdmVyc2lvIHZlcnNpb24gdmlldyB2aWV3c291cmNlIHZpZiB2d2xzIHdkYXRldG9mIHdlYmRlc2NyaWJlIHdlYnNlZWsgd2VidXNlIHdlaWIxX2xmIHdlaWIyX2xmIHdlaWJfbGYgd2VpYl9sZjAgd2VpYmhldF9nbGYgd2VpYmhldF9nbGZfc2ggd2VpYmhldF9nbGZhIHdlaWJoZXRfZ2xmYV9zaCB3ZWliaGV0X2dwIHdlaWJoZXRfaWxmIHdlaWJoZXRfaWxmX3NoIHdlaWJoZXRfaWxmYSB3ZWliaGV0X2lsZmFfc2ggd2VpYmhldF9pcCB3ZWlidV9zdyB3ZWlidWxfcCB3ZWlidWxsIHdlaWJ1bGxfYyB3ZWlidWxsX3Mgd2VpYnVsbGhldCB3aCB3aGVscCB3aGkgd2hpY2ggd2hpbCB3aGlsZSB3aWxjX3N0IHdpbGNveG9uIHdpbiB3aW5kIHdpbmRvIHdpbmRvdyB3aW5leGVjIHdudGVzdGIgd250ZXN0Yl83IHdudGVzdHEgeGNoYXJ0IHhjaGFydF83IHhjb3JyIHhjb3JyXzcgeGkgeGlfNiB4bWxzYXYgeG1sc2F2ZSB4bWx1c2UgeHBvc2UgeHNoIHhzaGUgeHNoZWwgeHNoZWxsIHh0X2lpcyB4dF90aXMgeHRhYl9wIHh0YWJvbmQgeHRiaW5fcCB4dGNsb2cgeHRjbG9nbG9nIHh0Y2xvZ2xvZ184IHh0Y2xvZ2xvZ19kMiB4dGNsb2dsb2dfcGFfcCB4dGNsb2dsb2dfcmVfcCB4dGNudF9wIHh0Y29yciB4dGRhdGEgeHRkZXMgeHRmcm9udF9wIHh0ZnJvbnRpZXIgeHRnZWUgeHRnZWVfZWxpbmsgeHRnZWVfZXN0YXQgeHRnZWVfbWFrZWl2YXIgeHRnZWVfcCB4dGdlZV9wbGluayB4dGdscyB4dGdsc19wIHh0aGF1cyB4dGhhdXNtYW4geHRodF9wIHh0aHRheWxvciB4dGlsZSB4dGludF9wIHh0aW50cmVnIHh0aW50cmVnXzggeHRpbnRyZWdfZDIgeHRpbnRyZWdfcCB4dGl2cF8xIHh0aXZwXzIgeHRpdnJlZyB4dGxpbmUgeHRsaW5lX2V4IHh0bG9naXQgeHRsb2dpdF84IHh0bG9naXRfZDIgeHRsb2dpdF9mZV9wIHh0bG9naXRfcGFfcCB4dGxvZ2l0X3JlX3AgeHRtaXhlZCB4dG1peGVkX2VzdGF0IHh0bWl4ZWRfcCB4dG5iX2ZlIHh0bmJfbGYgeHRuYnJlZyB4dG5icmVnX3BhX3AgeHRuYnJlZ19yZWZlX3AgeHRwY3NlIHh0cGNzZV9wIHh0cG9pcyB4dHBvaXNzb24geHRwb2lzc29uX2QyIHh0cG9pc3Nvbl9wYV9wIHh0cG9pc3Nvbl9yZWZlX3AgeHRwcmVkIHh0cHJvYml0IHh0cHJvYml0XzggeHRwcm9iaXRfZDIgeHRwcm9iaXRfcmVfcCB4dHBzX2ZlIHh0cHNfbGYgeHRwc19yZW4geHRwc19yZW5fOCB4dHJhcl9wIHh0cmMgeHRyY19wIHh0cmNoaCB4dHJlZmVfcCB4dHJlZyB4dHJlZ19iZSB4dHJlZ19mZSB4dHJlZ19tbCB4dHJlZ19wYV9wIHh0cmVnX3JlIHh0cmVnYXIgeHRyZXJlX3AgeHRzZXQgeHRzZl9sbCB4dHNmX2xsdGkgeHRzdW0geHR0YWIgeHR0ZXN0MCB4dHRvYml0IHh0dG9iaXRfOCB4dHRvYml0X3AgeHR0cmFucyB5eCB5eHZpZXdfX2Jhcmxpa2VfZHJhdyB5eHZpZXdfYXJlYV9kcmF3IHl4dmlld19iYXJfZHJhdyB5eHZpZXdfZG90X2RyYXcgeXh2aWV3X2Ryb3BsaW5lX2RyYXcgeXh2aWV3X2Z1bmN0aW9uX2RyYXcgeXh2aWV3X2lhcnJvd19kcmF3IHl4dmlld19pbGFiZWxzX2RyYXcgeXh2aWV3X25vcm1hbF9kcmF3IHl4dmlld19wY2Fycm93X2RyYXcgeXh2aWV3X3BjYmFycm93X2RyYXcgeXh2aWV3X3BjY2Fwc3ltX2RyYXcgeXh2aWV3X3Bjc2NhdHRlcl9kcmF3IHl4dmlld19wY3NwaWtlX2RyYXcgeXh2aWV3X3JhcmVhX2RyYXcgeXh2aWV3X3JiYXJfZHJhdyB5eHZpZXdfcmJhcm1fZHJhdyB5eHZpZXdfcmNhcF9kcmF3IHl4dmlld19yY2Fwc3ltX2RyYXcgeXh2aWV3X3Jjb25uZWN0ZWRfZHJhdyB5eHZpZXdfcmxpbmVfZHJhdyB5eHZpZXdfcnNjYXR0ZXJfZHJhdyB5eHZpZXdfcnNwaWtlX2RyYXcgeXh2aWV3X3NwaWtlX2RyYXcgeXh2aWV3X3N1bmZsb3dlcl9kcmF3IHphcF9zIHppbmIgemluYl9sbGYgemluYl9wbGYgemlwIHppcF9sbGYgemlwX3AgemlwX3BsZiB6dF9jdF81IHp0X2hjXzUgenRfaGNkXzUgenRfaXNfNSB6dF9pc3NfNSB6dF9zaG9fNSB6dF9zbXBfNSB6dGJhc2VfNSB6dGNveF81IHp0ZGVzXzUgenRlcmVnXzUgenRmaWxsXzUgenRnZW5fNSB6dGlyXzUgenRqb2luXzUgenRuYiB6dG5iX3AgenRwIHp0cF9wIHp0c181IHp0c2V0XzUgenRzcGxpXzUgenRzdW1fNSB6dHRvY3RfNSB6dHZhcnlfNSB6dHdlaWJfNScsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46IC9gW2EtekEtWjAtOV9dKycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvXFwkXFx7P1thLXpBLVowLTlfXStcXH0/LyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICdgXCJbXlxcclxcbl0qP1wiXFwnJyB9LFxuICAgICAgICAgIHsgYmVnaW46ICdcIlteXFxyXFxuXCJdKlwiJyB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgICAgICB2YXJpYW50czogWyB7IGJlZ2luOiAnXFxcXGIoYWJzfGFjb3N8YXNpbnxhdGFufGF0YW4yfGF0YW5ofGNlaWx8Y2xvZ2xvZ3xjb21ifGNvc3xkaWdhbW1hfGV4cHxmbG9vcnxpbnZjbG9nbG9nfGludmxvZ2l0fGxufGxuZmFjdHxsbmZhY3RvcmlhbHxsbmdhbW1hfGxvZ3xsb2cxMHxtYXh8bWlufG1vZHxyZWxkaWZ8cm91bmR8c2lnbnxzaW58c3FydHxzdW18dGFufHRhbmh8dHJpZ2FtbWF8dHJ1bmN8YmV0YWRlbnxCaW5vbWlhbHxiaW5vcm18Ymlub3JtYWx8Y2hpMnxjaGkydGFpbHxkZ2FtbWFwZGF8ZGdhbW1hcGRhZGF8ZGdhbW1hcGRhZHh8ZGdhbW1hcGR4fGRnYW1tYXBkeGR4fEZ8RmRlbnxGdGFpbHxnYW1tYWRlbnxnYW1tYXB8aWJldGF8aW52Ymlub21pYWx8aW52Y2hpMnxpbnZjaGkydGFpbHxpbnZGfGludkZ0YWlsfGludmdhbW1hcHxpbnZpYmV0YXxpbnZuY2hpMnxpbnZuRnRhaWx8aW52bmliZXRhfGludm5vcm18aW52bm9ybWFsfGludnR0YWlsfG5iZXRhZGVufG5jaGkyfG5GZGVufG5GdGFpbHxuaWJldGF8bm9ybXxub3JtYWx8bm9ybWFsZGVufG5vcm1kfG5wbmNoaTJ8dGRlbnx0dGFpbHx1bmlmb3JtfGFiYnJldnxjaGFyfGluZGV4fGluZGV4bm90fGxlbmd0aHxsb3dlcnxsdHJpbXxtYXRjaHxwbHVyYWx8cHJvcGVyfHJlYWx8cmVnZXhtfHJlZ2V4cnxyZWdleHN8cmV2ZXJzZXxydHJpbXxzdHJpbmd8c3RybGVufHN0cmxvd2VyfHN0cmx0cmltfHN0cm1hdGNofHN0cm9mcmVhbHxzdHJwb3N8c3RycHJvcGVyfHN0cnJldmVyc2V8c3RycnRyaW18c3RydHJpbXxzdHJ1cHBlcnxzdWJpbnN0cnxzdWJpbndvcmR8c3Vic3RyfHRyaW18dXBwZXJ8d29yZHx3b3JkY291bnR8X2NhbGxlcnxhdXRvY29kZXxieXRlb3JkZXJ8Y2hvcHxjbGlwfGNvbmR8ZXxlcHNkb3VibGV8ZXBzZmxvYXR8Z3JvdXB8aW5saXN0fGlucmFuZ2V8aXJlY29kZXxtYXRyaXh8bWF4Ynl0ZXxtYXhkb3VibGV8bWF4ZmxvYXR8bWF4aW50fG1heGxvbmd8bWl8bWluYnl0ZXxtaW5kb3VibGV8bWluZmxvYXR8bWluaW50fG1pbmxvbmd8bWlzc2luZ3xyfHJlY29kZXxyZXBsYXl8cmV0dXJufHN8c2NhbGFyfGR8ZGF0ZXxkYXl8ZG93fGRveXxoYWxmeWVhcnxtZHl8bW9udGh8cXVhcnRlcnx3ZWVrfHllYXJ8ZHxkYWlseXxkb2ZkfGRvZmh8ZG9mbXxkb2ZxfGRvZnd8ZG9meXxofGhhbGZ5ZWFybHl8aG9mZHxtfG1vZmR8bW9udGhseXxxfHFvZmR8cXVhcnRlcmx5fHRpbnx0d2l0aGlufHd8d2Vla2x5fHdvZmR8eXx5ZWFybHl8eWh8eW18eW9mZHx5cXx5d3xjaG9sZXNreXxjb2xudW1ifGNvbHNvZnxjb3JyfGRldHxkaWFnfGRpYWcwY250fGVsfGdldHxoYWRhbWFyZHxJfGludnxpbnZzeW18aXNzeW18aXNzeW1tZXRyaWN8SnxtYXRtaXNzaW5nfG1hdHVuaWZvcm18bXJlbGRpZnxudWxsbWF0fHJvd251bWJ8cm93c29mfHN3ZWVwfHN5bWludnx0cmFjZXx2ZWN8dmVjZGlhZykoPz1cXFxcKCknIH0gXVxuICAgICAgfSxcblxuICAgICAgaGxqcy5DT01NRU5UKCdeWyBcXHRdKlxcXFwqLiokJywgZmFsc2UpLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGF0YTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFNURVAgUGFydCAyMVxuQ29udHJpYnV0b3JzOiBBZGFtIEpvc2VwaCBDb29rIDxhZGFtLmpvc2VwaC5jb29rQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBTeW50YXggaGlnaGxpZ2h0ZXIgZm9yIFNURVAgUGFydCAyMSBmaWxlcyAoSVNPIDEwMzAzLTIxKS5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT18xMDMwMy0yMVxuQ2F0ZWdvcnk6IHN5bnRheFxuKi9cblxuZnVuY3Rpb24gc3RlcDIxKGhsanMpIHtcbiAgY29uc3QgU1RFUDIxX0lERU5UX1JFID0gJ1tBLVpfXVtBLVowLTlfLl0qJztcbiAgY29uc3QgU1RFUDIxX0tFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBTVEVQMjFfSURFTlRfUkUsXG4gICAga2V5d29yZDogW1xuICAgICAgXCJIRUFERVJcIixcbiAgICAgIFwiRU5EU0VDXCIsXG4gICAgICBcIkRBVEFcIlxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RFUDIxX1NUQVJUID0ge1xuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIGJlZ2luOiAnSVNPLTEwMzAzLTIxOycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuICBjb25zdCBTVEVQMjFfQ0xPU0UgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdFTkQtSVNPLTEwMzAzLTIxOycsXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1NURVAgUGFydCAyMScsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3AyMScsXG4gICAgICAnc3RlcCcsXG4gICAgICAnc3RwJ1xuICAgIF0sXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSwgLy8gU1RFUCAyMSBpcyBjYXNlIGluc2Vuc2l0aXZlIGluIHRoZW9yeSwgaW4gcHJhY3RpY2UgYWxsIG5vbi1jb21tZW50cyBhcmUgY2FwaXRhbGl6ZWQuXG4gICAga2V5d29yZHM6IFNURVAyMV9LRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgU1RFUDIxX1NUQVJULFxuICAgICAgU1RFUDIxX0NMT1NFLFxuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ09NTUVOVCgnL1xcXFwqXFxcXCohJywgJ1xcXFwqLycpLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuQVBPU19TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pLFxuICAgICAgaGxqcy5pbmhlcml0KGhsanMuUVVPVEVfU1RSSU5HX01PREUsIHsgaWxsZWdhbDogbnVsbCB9KSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46IFwiJ1wiLFxuICAgICAgICBlbmQ6IFwiJ1wiXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnIycsXG4gICAgICAgICAgICBlbmQ6ICdcXFxcZCsnLFxuICAgICAgICAgICAgaWxsZWdhbDogJ1xcXFxXJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzdGVwMjE7XG4iLCAiY29uc3QgTU9ERVMgPSAoaGxqcykgPT4ge1xuICByZXR1cm4ge1xuICAgIElNUE9SVEFOVDoge1xuICAgICAgc2NvcGU6ICdtZXRhJyxcbiAgICAgIGJlZ2luOiAnIWltcG9ydGFudCdcbiAgICB9LFxuICAgIEJMT0NLX0NPTU1FTlQ6IGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgSEVYQ09MT1I6IHtcbiAgICAgIHNjb3BlOiAnbnVtYmVyJyxcbiAgICAgIGJlZ2luOiAvIygoWzAtOWEtZkEtRl17Myw0fSl8KChbMC05YS1mQS1GXXsyfSl7Myw0fSkpXFxiL1xuICAgIH0sXG4gICAgRlVOQ1RJT05fRElTUEFUQ0g6IHtcbiAgICAgIGNsYXNzTmFtZTogXCJidWlsdF9pblwiLFxuICAgICAgYmVnaW46IC9bXFx3LV0rKD89XFwoKS9cbiAgICB9LFxuICAgIEFUVFJJQlVURV9TRUxFQ1RPUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ3NlbGVjdG9yLWF0dHInLFxuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIGlsbGVnYWw6ICckJyxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERVxuICAgICAgXVxuICAgIH0sXG4gICAgQ1NTX05VTUJFUl9NT0RFOiB7XG4gICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5OVU1CRVJfUkUgKyAnKCcgK1xuICAgICAgICAnJXxlbXxleHxjaHxyZW0nICtcbiAgICAgICAgJ3x2d3x2aHx2bWlufHZtYXgnICtcbiAgICAgICAgJ3xjbXxtbXxpbnxwdHxwY3xweCcgK1xuICAgICAgICAnfGRlZ3xncmFkfHJhZHx0dXJuJyArXG4gICAgICAgICd8c3xtcycgK1xuICAgICAgICAnfEh6fGtIeicgK1xuICAgICAgICAnfGRwaXxkcGNtfGRwcHgnICtcbiAgICAgICAgJyk/JyxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgQ1NTX1ZBUklBQkxFOiB7XG4gICAgICBjbGFzc05hbWU6IFwiYXR0clwiLFxuICAgICAgYmVnaW46IC8tLVtBLVphLXpfXVtBLVphLXowLTlfLV0qL1xuICAgIH1cbiAgfTtcbn07XG5cbmNvbnN0IEhUTUxfVEFHUyA9IFtcbiAgJ2EnLFxuICAnYWJicicsXG4gICdhZGRyZXNzJyxcbiAgJ2FydGljbGUnLFxuICAnYXNpZGUnLFxuICAnYXVkaW8nLFxuICAnYicsXG4gICdibG9ja3F1b3RlJyxcbiAgJ2JvZHknLFxuICAnYnV0dG9uJyxcbiAgJ2NhbnZhcycsXG4gICdjYXB0aW9uJyxcbiAgJ2NpdGUnLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkZWwnLFxuICAnZGV0YWlscycsXG4gICdkZm4nLFxuICAnZGl2JyxcbiAgJ2RsJyxcbiAgJ2R0JyxcbiAgJ2VtJyxcbiAgJ2ZpZWxkc2V0JyxcbiAgJ2ZpZ2NhcHRpb24nLFxuICAnZmlndXJlJyxcbiAgJ2Zvb3RlcicsXG4gICdmb3JtJyxcbiAgJ2gxJyxcbiAgJ2gyJyxcbiAgJ2gzJyxcbiAgJ2g0JyxcbiAgJ2g1JyxcbiAgJ2g2JyxcbiAgJ2hlYWRlcicsXG4gICdoZ3JvdXAnLFxuICAnaHRtbCcsXG4gICdpJyxcbiAgJ2lmcmFtZScsXG4gICdpbWcnLFxuICAnaW5wdXQnLFxuICAnaW5zJyxcbiAgJ2tiZCcsXG4gICdsYWJlbCcsXG4gICdsZWdlbmQnLFxuICAnbGknLFxuICAnbWFpbicsXG4gICdtYXJrJyxcbiAgJ21lbnUnLFxuICAnbmF2JyxcbiAgJ29iamVjdCcsXG4gICdvbCcsXG4gICdvcHRncm91cCcsXG4gICdvcHRpb24nLFxuICAncCcsXG4gICdwaWN0dXJlJyxcbiAgJ3EnLFxuICAncXVvdGUnLFxuICAnc2FtcCcsXG4gICdzZWN0aW9uJyxcbiAgJ3NlbGVjdCcsXG4gICdzb3VyY2UnLFxuICAnc3BhbicsXG4gICdzdHJvbmcnLFxuICAnc3VtbWFyeScsXG4gICdzdXAnLFxuICAndGFibGUnLFxuICAndGJvZHknLFxuICAndGQnLFxuICAndGV4dGFyZWEnLFxuICAndGZvb3QnLFxuICAndGgnLFxuICAndGhlYWQnLFxuICAndGltZScsXG4gICd0cicsXG4gICd1bCcsXG4gICd2YXInLFxuICAndmlkZW8nXG5dO1xuXG5jb25zdCBTVkdfVEFHUyA9IFtcbiAgJ2RlZnMnLFxuICAnZycsXG4gICdtYXJrZXInLFxuICAnbWFzaycsXG4gICdwYXR0ZXJuJyxcbiAgJ3N2ZycsXG4gICdzd2l0Y2gnLFxuICAnc3ltYm9sJyxcbiAgJ2ZlQmxlbmQnLFxuICAnZmVDb2xvck1hdHJpeCcsXG4gICdmZUNvbXBvbmVudFRyYW5zZmVyJyxcbiAgJ2ZlQ29tcG9zaXRlJyxcbiAgJ2ZlQ29udm9sdmVNYXRyaXgnLFxuICAnZmVEaWZmdXNlTGlnaHRpbmcnLFxuICAnZmVEaXNwbGFjZW1lbnRNYXAnLFxuICAnZmVGbG9vZCcsXG4gICdmZUdhdXNzaWFuQmx1cicsXG4gICdmZUltYWdlJyxcbiAgJ2ZlTWVyZ2UnLFxuICAnZmVNb3JwaG9sb2d5JyxcbiAgJ2ZlT2Zmc2V0JyxcbiAgJ2ZlU3BlY3VsYXJMaWdodGluZycsXG4gICdmZVRpbGUnLFxuICAnZmVUdXJidWxlbmNlJyxcbiAgJ2xpbmVhckdyYWRpZW50JyxcbiAgJ3JhZGlhbEdyYWRpZW50JyxcbiAgJ3N0b3AnLFxuICAnY2lyY2xlJyxcbiAgJ2VsbGlwc2UnLFxuICAnaW1hZ2UnLFxuICAnbGluZScsXG4gICdwYXRoJyxcbiAgJ3BvbHlnb24nLFxuICAncG9seWxpbmUnLFxuICAncmVjdCcsXG4gICd0ZXh0JyxcbiAgJ3VzZScsXG4gICd0ZXh0UGF0aCcsXG4gICd0c3BhbicsXG4gICdmb3JlaWduT2JqZWN0JyxcbiAgJ2NsaXBQYXRoJ1xuXTtcblxuY29uc3QgVEFHUyA9IFtcbiAgLi4uSFRNTF9UQUdTLFxuICAuLi5TVkdfVEFHUyxcbl07XG5cbi8vIFNvcnRpbmcsIHRoZW4gcmV2ZXJzaW5nIG1ha2VzIHN1cmUgbG9uZ2VyIGF0dHJpYnV0ZXMvZWxlbWVudHMgbGlrZVxuLy8gYGZvbnQtd2VpZ2h0YCBhcmUgbWF0Y2hlZCBmdWxseSBpbnN0ZWFkIG9mIGdldHRpbmcgZmFsc2UgcG9zaXRpdmVzIG9uIHNheSBgZm9udGBcblxuY29uc3QgTUVESUFfRkVBVFVSRVMgPSBbXG4gICdhbnktaG92ZXInLFxuICAnYW55LXBvaW50ZXInLFxuICAnYXNwZWN0LXJhdGlvJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWdhbXV0JyxcbiAgJ2NvbG9yLWluZGV4JyxcbiAgJ2RldmljZS1hc3BlY3QtcmF0aW8nLFxuICAnZGV2aWNlLWhlaWdodCcsXG4gICdkZXZpY2Utd2lkdGgnLFxuICAnZGlzcGxheS1tb2RlJyxcbiAgJ2ZvcmNlZC1jb2xvcnMnLFxuICAnZ3JpZCcsXG4gICdoZWlnaHQnLFxuICAnaG92ZXInLFxuICAnaW52ZXJ0ZWQtY29sb3JzJyxcbiAgJ21vbm9jaHJvbWUnLFxuICAnb3JpZW50YXRpb24nLFxuICAnb3ZlcmZsb3ctYmxvY2snLFxuICAnb3ZlcmZsb3ctaW5saW5lJyxcbiAgJ3BvaW50ZXInLFxuICAncHJlZmVycy1jb2xvci1zY2hlbWUnLFxuICAncHJlZmVycy1jb250cmFzdCcsXG4gICdwcmVmZXJzLXJlZHVjZWQtbW90aW9uJyxcbiAgJ3ByZWZlcnMtcmVkdWNlZC10cmFuc3BhcmVuY3knLFxuICAncmVzb2x1dGlvbicsXG4gICdzY2FuJyxcbiAgJ3NjcmlwdGluZycsXG4gICd1cGRhdGUnLFxuICAnd2lkdGgnLFxuICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHNvbHV0aW9uP1xuICAnbWluLXdpZHRoJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21heC1oZWlnaHQnXG5dLnNvcnQoKS5yZXZlcnNlKCk7XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Qc2V1ZG8tY2xhc3Nlc1xuY29uc3QgUFNFVURPX0NMQVNTRVMgPSBbXG4gICdhY3RpdmUnLFxuICAnYW55LWxpbmsnLFxuICAnYmxhbmsnLFxuICAnY2hlY2tlZCcsXG4gICdjdXJyZW50JyxcbiAgJ2RlZmF1bHQnLFxuICAnZGVmaW5lZCcsXG4gICdkaXInLCAvLyBkaXIoKVxuICAnZGlzYWJsZWQnLFxuICAnZHJvcCcsXG4gICdlbXB0eScsXG4gICdlbmFibGVkJyxcbiAgJ2ZpcnN0JyxcbiAgJ2ZpcnN0LWNoaWxkJyxcbiAgJ2ZpcnN0LW9mLXR5cGUnLFxuICAnZnVsbHNjcmVlbicsXG4gICdmdXR1cmUnLFxuICAnZm9jdXMnLFxuICAnZm9jdXMtdmlzaWJsZScsXG4gICdmb2N1cy13aXRoaW4nLFxuICAnaGFzJywgLy8gaGFzKClcbiAgJ2hvc3QnLCAvLyBob3N0IG9yIGhvc3QoKVxuICAnaG9zdC1jb250ZXh0JywgLy8gaG9zdC1jb250ZXh0KClcbiAgJ2hvdmVyJyxcbiAgJ2luZGV0ZXJtaW5hdGUnLFxuICAnaW4tcmFuZ2UnLFxuICAnaW52YWxpZCcsXG4gICdpcycsIC8vIGlzKClcbiAgJ2xhbmcnLCAvLyBsYW5nKClcbiAgJ2xhc3QtY2hpbGQnLFxuICAnbGFzdC1vZi10eXBlJyxcbiAgJ2xlZnQnLFxuICAnbGluaycsXG4gICdsb2NhbC1saW5rJyxcbiAgJ25vdCcsIC8vIG5vdCgpXG4gICdudGgtY2hpbGQnLCAvLyBudGgtY2hpbGQoKVxuICAnbnRoLWNvbCcsIC8vIG50aC1jb2woKVxuICAnbnRoLWxhc3QtY2hpbGQnLCAvLyBudGgtbGFzdC1jaGlsZCgpXG4gICdudGgtbGFzdC1jb2wnLCAvLyBudGgtbGFzdC1jb2woKVxuICAnbnRoLWxhc3Qtb2YtdHlwZScsIC8vbnRoLWxhc3Qtb2YtdHlwZSgpXG4gICdudGgtb2YtdHlwZScsIC8vbnRoLW9mLXR5cGUoKVxuICAnb25seS1jaGlsZCcsXG4gICdvbmx5LW9mLXR5cGUnLFxuICAnb3B0aW9uYWwnLFxuICAnb3V0LW9mLXJhbmdlJyxcbiAgJ3Bhc3QnLFxuICAncGxhY2Vob2xkZXItc2hvd24nLFxuICAncmVhZC1vbmx5JyxcbiAgJ3JlYWQtd3JpdGUnLFxuICAncmVxdWlyZWQnLFxuICAncmlnaHQnLFxuICAncm9vdCcsXG4gICdzY29wZScsXG4gICd0YXJnZXQnLFxuICAndGFyZ2V0LXdpdGhpbicsXG4gICd1c2VyLWludmFsaWQnLFxuICAndmFsaWQnLFxuICAndmlzaXRlZCcsXG4gICd3aGVyZScgLy8gd2hlcmUoKVxuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvUHNldWRvLWVsZW1lbnRzXG5jb25zdCBQU0VVRE9fRUxFTUVOVFMgPSBbXG4gICdhZnRlcicsXG4gICdiYWNrZHJvcCcsXG4gICdiZWZvcmUnLFxuICAnY3VlJyxcbiAgJ2N1ZS1yZWdpb24nLFxuICAnZmlyc3QtbGV0dGVyJyxcbiAgJ2ZpcnN0LWxpbmUnLFxuICAnZ3JhbW1hci1lcnJvcicsXG4gICdtYXJrZXInLFxuICAncGFydCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdzZWxlY3Rpb24nLFxuICAnc2xvdHRlZCcsXG4gICdzcGVsbGluZy1lcnJvcidcbl0uc29ydCgpLnJldmVyc2UoKTtcblxuY29uc3QgQVRUUklCVVRFUyA9IFtcbiAgJ2FjY2VudC1jb2xvcicsXG4gICdhbGlnbi1jb250ZW50JyxcbiAgJ2FsaWduLWl0ZW1zJyxcbiAgJ2FsaWduLXNlbGYnLFxuICAnYWxpZ25tZW50LWJhc2VsaW5lJyxcbiAgJ2FsbCcsXG4gICdhbmltYXRpb24nLFxuICAnYW5pbWF0aW9uLWRlbGF5JyxcbiAgJ2FuaW1hdGlvbi1kaXJlY3Rpb24nLFxuICAnYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgJ2FuaW1hdGlvbi1maWxsLW1vZGUnLFxuICAnYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCcsXG4gICdhbmltYXRpb24tbmFtZScsXG4gICdhbmltYXRpb24tcGxheS1zdGF0ZScsXG4gICdhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uJyxcbiAgJ2FwcGVhcmFuY2UnLFxuICAnYmFja2ZhY2UtdmlzaWJpbGl0eScsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2JhY2tncm91bmQtYXR0YWNobWVudCcsXG4gICdiYWNrZ3JvdW5kLWJsZW5kLW1vZGUnLFxuICAnYmFja2dyb3VuZC1jbGlwJyxcbiAgJ2JhY2tncm91bmQtY29sb3InLFxuICAnYmFja2dyb3VuZC1pbWFnZScsXG4gICdiYWNrZ3JvdW5kLW9yaWdpbicsXG4gICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgJ2JhY2tncm91bmQtcmVwZWF0JyxcbiAgJ2JhY2tncm91bmQtc2l6ZScsXG4gICdiYXNlbGluZS1zaGlmdCcsXG4gICdibG9jay1zaXplJyxcbiAgJ2JvcmRlcicsXG4gICdib3JkZXItYmxvY2snLFxuICAnYm9yZGVyLWJsb2NrLWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQnLFxuICAnYm9yZGVyLWJsb2NrLWVuZC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtd2lkdGgnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0JyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC1jb2xvcicsXG4gICdib3JkZXItYmxvY2stc3RhcnQtc3R5bGUnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1ibG9jay1zdHlsZScsXG4gICdib3JkZXItYmxvY2std2lkdGgnLFxuICAnYm9yZGVyLWJvdHRvbScsXG4gICdib3JkZXItYm90dG9tLWNvbG9yJyxcbiAgJ2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMnLFxuICAnYm9yZGVyLWJvdHRvbS1zdHlsZScsXG4gICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgJ2JvcmRlci1jb2xsYXBzZScsXG4gICdib3JkZXItY29sb3InLFxuICAnYm9yZGVyLWltYWdlJyxcbiAgJ2JvcmRlci1pbWFnZS1vdXRzZXQnLFxuICAnYm9yZGVyLWltYWdlLXJlcGVhdCcsXG4gICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAnYm9yZGVyLWltYWdlLXNvdXJjZScsXG4gICdib3JkZXItaW1hZ2Utd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZScsXG4gICdib3JkZXItaW5saW5lLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQtd2lkdGgnLFxuICAnYm9yZGVyLWlubGluZS1zdHlsZScsXG4gICdib3JkZXItaW5saW5lLXdpZHRoJyxcbiAgJ2JvcmRlci1sZWZ0JyxcbiAgJ2JvcmRlci1sZWZ0LWNvbG9yJyxcbiAgJ2JvcmRlci1sZWZ0LXN0eWxlJyxcbiAgJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgJ2JvcmRlci1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0JyxcbiAgJ2JvcmRlci1lbmQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItZW5kLXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItcmlnaHQtY29sb3InLFxuICAnYm9yZGVyLXJpZ2h0LXN0eWxlJyxcbiAgJ2JvcmRlci1yaWdodC13aWR0aCcsXG4gICdib3JkZXItc3BhY2luZycsXG4gICdib3JkZXItc3RhcnQtZW5kLXJhZGl1cycsXG4gICdib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzJyxcbiAgJ2JvcmRlci1zdHlsZScsXG4gICdib3JkZXItdG9wJyxcbiAgJ2JvcmRlci10b3AtY29sb3InLFxuICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXN0eWxlJyxcbiAgJ2JvcmRlci10b3Atd2lkdGgnLFxuICAnYm9yZGVyLXdpZHRoJyxcbiAgJ2JvdHRvbScsXG4gICdib3gtZGVjb3JhdGlvbi1icmVhaycsXG4gICdib3gtc2hhZG93JyxcbiAgJ2JveC1zaXppbmcnLFxuICAnYnJlYWstYWZ0ZXInLFxuICAnYnJlYWstYmVmb3JlJyxcbiAgJ2JyZWFrLWluc2lkZScsXG4gICdjeCcsXG4gICdjeScsXG4gICdjYXB0aW9uLXNpZGUnLFxuICAnY2FyZXQtY29sb3InLFxuICAnY2xlYXInLFxuICAnY2xpcCcsXG4gICdjbGlwLXBhdGgnLFxuICAnY2xpcC1ydWxlJyxcbiAgJ2NvbG9yJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24nLFxuICAnY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzJyxcbiAgJ2NvbG9yLXByb2ZpbGUnLFxuICAnY29sb3ItcmVuZGVyaW5nJyxcbiAgJ2NvbG9yLXNjaGVtZScsXG4gICdjb2x1bW4tY291bnQnLFxuICAnY29sdW1uLWZpbGwnLFxuICAnY29sdW1uLWdhcCcsXG4gICdjb2x1bW4tcnVsZScsXG4gICdjb2x1bW4tcnVsZS1jb2xvcicsXG4gICdjb2x1bW4tcnVsZS1zdHlsZScsXG4gICdjb2x1bW4tcnVsZS13aWR0aCcsXG4gICdjb2x1bW4tc3BhbicsXG4gICdjb2x1bW4td2lkdGgnLFxuICAnY29sdW1ucycsXG4gICdjb250YWluJyxcbiAgJ2NvbnRlbnQnLFxuICAnY29udGVudC12aXNpYmlsaXR5JyxcbiAgJ2NvdW50ZXItaW5jcmVtZW50JyxcbiAgJ2NvdW50ZXItcmVzZXQnLFxuICAnY3VlJyxcbiAgJ2N1ZS1hZnRlcicsXG4gICdjdWUtYmVmb3JlJyxcbiAgJ2N1cnNvcicsXG4gICdkaXJlY3Rpb24nLFxuICAnZGlzcGxheScsXG4gICdkb21pbmFudC1iYXNlbGluZScsXG4gICdlbXB0eS1jZWxscycsXG4gICdlbmFibGUtYmFja2dyb3VuZCcsXG4gICdmaWxsJyxcbiAgJ2ZpbGwtb3BhY2l0eScsXG4gICdmaWxsLXJ1bGUnLFxuICAnZmlsdGVyJyxcbiAgJ2ZsZXgnLFxuICAnZmxleC1iYXNpcycsXG4gICdmbGV4LWRpcmVjdGlvbicsXG4gICdmbGV4LWZsb3cnLFxuICAnZmxleC1ncm93JyxcbiAgJ2ZsZXgtc2hyaW5rJyxcbiAgJ2ZsZXgtd3JhcCcsXG4gICdmbG9hdCcsXG4gICdmbG93JyxcbiAgJ2Zsb29kLWNvbG9yJyxcbiAgJ2Zsb29kLW9wYWNpdHknLFxuICAnZm9udCcsXG4gICdmb250LWRpc3BsYXknLFxuICAnZm9udC1mYW1pbHknLFxuICAnZm9udC1mZWF0dXJlLXNldHRpbmdzJyxcbiAgJ2ZvbnQta2VybmluZycsXG4gICdmb250LWxhbmd1YWdlLW92ZXJyaWRlJyxcbiAgJ2ZvbnQtc2l6ZScsXG4gICdmb250LXNpemUtYWRqdXN0JyxcbiAgJ2ZvbnQtc21vb3RoaW5nJyxcbiAgJ2ZvbnQtc3RyZXRjaCcsXG4gICdmb250LXN0eWxlJyxcbiAgJ2ZvbnQtc3ludGhlc2lzJyxcbiAgJ2ZvbnQtdmFyaWFudCcsXG4gICdmb250LXZhcmlhbnQtY2FwcycsXG4gICdmb250LXZhcmlhbnQtZWFzdC1hc2lhbicsXG4gICdmb250LXZhcmlhbnQtbGlnYXR1cmVzJyxcbiAgJ2ZvbnQtdmFyaWFudC1udW1lcmljJyxcbiAgJ2ZvbnQtdmFyaWFudC1wb3NpdGlvbicsXG4gICdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycsXG4gICdmb250LXdlaWdodCcsXG4gICdnYXAnLFxuICAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsXG4gICdncmlkJyxcbiAgJ2dyaWQtYXJlYScsXG4gICdncmlkLWF1dG8tY29sdW1ucycsXG4gICdncmlkLWF1dG8tZmxvdycsXG4gICdncmlkLWF1dG8tcm93cycsXG4gICdncmlkLWNvbHVtbicsXG4gICdncmlkLWNvbHVtbi1lbmQnLFxuICAnZ3JpZC1jb2x1bW4tc3RhcnQnLFxuICAnZ3JpZC1nYXAnLFxuICAnZ3JpZC1yb3cnLFxuICAnZ3JpZC1yb3ctZW5kJyxcbiAgJ2dyaWQtcm93LXN0YXJ0JyxcbiAgJ2dyaWQtdGVtcGxhdGUnLFxuICAnZ3JpZC10ZW1wbGF0ZS1hcmVhcycsXG4gICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1yb3dzJyxcbiAgJ2hhbmdpbmctcHVuY3R1YXRpb24nLFxuICAnaGVpZ2h0JyxcbiAgJ2h5cGhlbnMnLFxuICAnaWNvbicsXG4gICdpbWFnZS1vcmllbnRhdGlvbicsXG4gICdpbWFnZS1yZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVzb2x1dGlvbicsXG4gICdpbWUtbW9kZScsXG4gICdpbmxpbmUtc2l6ZScsXG4gICdpbnNldCcsXG4gICdpbnNldC1ibG9jaycsXG4gICdpbnNldC1ibG9jay1lbmQnLFxuICAnaW5zZXQtYmxvY2stc3RhcnQnLFxuICAnaW5zZXQtaW5saW5lJyxcbiAgJ2luc2V0LWlubGluZS1lbmQnLFxuICAnaW5zZXQtaW5saW5lLXN0YXJ0JyxcbiAgJ2lzb2xhdGlvbicsXG4gICdrZXJuaW5nJyxcbiAgJ2p1c3RpZnktY29udGVudCcsXG4gICdqdXN0aWZ5LWl0ZW1zJyxcbiAgJ2p1c3RpZnktc2VsZicsXG4gICdsZWZ0JyxcbiAgJ2xldHRlci1zcGFjaW5nJyxcbiAgJ2xpZ2h0aW5nLWNvbG9yJyxcbiAgJ2xpbmUtYnJlYWsnLFxuICAnbGluZS1oZWlnaHQnLFxuICAnbGlzdC1zdHlsZScsXG4gICdsaXN0LXN0eWxlLWltYWdlJyxcbiAgJ2xpc3Qtc3R5bGUtcG9zaXRpb24nLFxuICAnbGlzdC1zdHlsZS10eXBlJyxcbiAgJ21hcmtlcicsXG4gICdtYXJrZXItZW5kJyxcbiAgJ21hcmtlci1taWQnLFxuICAnbWFya2VyLXN0YXJ0JyxcbiAgJ21hc2snLFxuICAnbWFyZ2luJyxcbiAgJ21hcmdpbi1ibG9jaycsXG4gICdtYXJnaW4tYmxvY2stZW5kJyxcbiAgJ21hcmdpbi1ibG9jay1zdGFydCcsXG4gICdtYXJnaW4tYm90dG9tJyxcbiAgJ21hcmdpbi1pbmxpbmUnLFxuICAnbWFyZ2luLWlubGluZS1lbmQnLFxuICAnbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdtYXJnaW4tbGVmdCcsXG4gICdtYXJnaW4tcmlnaHQnLFxuICAnbWFyZ2luLXRvcCcsXG4gICdtYXJrcycsXG4gICdtYXNrJyxcbiAgJ21hc2stYm9yZGVyJyxcbiAgJ21hc2stYm9yZGVyLW1vZGUnLFxuICAnbWFzay1ib3JkZXItb3V0c2V0JyxcbiAgJ21hc2stYm9yZGVyLXJlcGVhdCcsXG4gICdtYXNrLWJvcmRlci1zbGljZScsXG4gICdtYXNrLWJvcmRlci1zb3VyY2UnLFxuICAnbWFzay1ib3JkZXItd2lkdGgnLFxuICAnbWFzay1jbGlwJyxcbiAgJ21hc2stY29tcG9zaXRlJyxcbiAgJ21hc2staW1hZ2UnLFxuICAnbWFzay1tb2RlJyxcbiAgJ21hc2stb3JpZ2luJyxcbiAgJ21hc2stcG9zaXRpb24nLFxuICAnbWFzay1yZXBlYXQnLFxuICAnbWFzay1zaXplJyxcbiAgJ21hc2stdHlwZScsXG4gICdtYXgtYmxvY2stc2l6ZScsXG4gICdtYXgtaGVpZ2h0JyxcbiAgJ21heC1pbmxpbmUtc2l6ZScsXG4gICdtYXgtd2lkdGgnLFxuICAnbWluLWJsb2NrLXNpemUnLFxuICAnbWluLWhlaWdodCcsXG4gICdtaW4taW5saW5lLXNpemUnLFxuICAnbWluLXdpZHRoJyxcbiAgJ21peC1ibGVuZC1tb2RlJyxcbiAgJ25hdi1kb3duJyxcbiAgJ25hdi1pbmRleCcsXG4gICduYXYtbGVmdCcsXG4gICduYXYtcmlnaHQnLFxuICAnbmF2LXVwJyxcbiAgJ25vbmUnLFxuICAnbm9ybWFsJyxcbiAgJ29iamVjdC1maXQnLFxuICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgJ29wYWNpdHknLFxuICAnb3JkZXInLFxuICAnb3JwaGFucycsXG4gICdvdXRsaW5lJyxcbiAgJ291dGxpbmUtY29sb3InLFxuICAnb3V0bGluZS1vZmZzZXQnLFxuICAnb3V0bGluZS1zdHlsZScsXG4gICdvdXRsaW5lLXdpZHRoJyxcbiAgJ292ZXJmbG93JyxcbiAgJ292ZXJmbG93LXdyYXAnLFxuICAnb3ZlcmZsb3cteCcsXG4gICdvdmVyZmxvdy15JyxcbiAgJ3BhZGRpbmcnLFxuICAncGFkZGluZy1ibG9jaycsXG4gICdwYWRkaW5nLWJsb2NrLWVuZCcsXG4gICdwYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3BhZGRpbmctYm90dG9tJyxcbiAgJ3BhZGRpbmctaW5saW5lJyxcbiAgJ3BhZGRpbmctaW5saW5lLWVuZCcsXG4gICdwYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdwYWRkaW5nLWxlZnQnLFxuICAncGFkZGluZy1yaWdodCcsXG4gICdwYWRkaW5nLXRvcCcsXG4gICdwYWdlLWJyZWFrLWFmdGVyJyxcbiAgJ3BhZ2UtYnJlYWstYmVmb3JlJyxcbiAgJ3BhZ2UtYnJlYWstaW5zaWRlJyxcbiAgJ3BhdXNlJyxcbiAgJ3BhdXNlLWFmdGVyJyxcbiAgJ3BhdXNlLWJlZm9yZScsXG4gICdwZXJzcGVjdGl2ZScsXG4gICdwZXJzcGVjdGl2ZS1vcmlnaW4nLFxuICAncG9pbnRlci1ldmVudHMnLFxuICAncG9zaXRpb24nLFxuICAncXVvdGVzJyxcbiAgJ3InLFxuICAncmVzaXplJyxcbiAgJ3Jlc3QnLFxuICAncmVzdC1hZnRlcicsXG4gICdyZXN0LWJlZm9yZScsXG4gICdyaWdodCcsXG4gICdyb3RhdGUnLFxuICAncm93LWdhcCcsXG4gICdzY2FsZScsXG4gICdzY3JvbGwtbWFyZ2luJyxcbiAgJ3Njcm9sbC1tYXJnaW4tYmxvY2snLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jay1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWJvdHRvbScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZScsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1lbmQnLFxuICAnc2Nyb2xsLW1hcmdpbi1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1sZWZ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tcmlnaHQnLFxuICAnc2Nyb2xsLW1hcmdpbi10b3AnLFxuICAnc2Nyb2xsLXBhZGRpbmcnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2snLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWJvdHRvbScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUnLFxuICAnc2Nyb2xsLXBhZGRpbmctaW5saW5lLWVuZCcsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctbGVmdCcsXG4gICdzY3JvbGwtcGFkZGluZy1yaWdodCcsXG4gICdzY3JvbGwtcGFkZGluZy10b3AnLFxuICAnc2Nyb2xsLXNuYXAtYWxpZ24nLFxuICAnc2Nyb2xsLXNuYXAtc3RvcCcsXG4gICdzY3JvbGwtc25hcC10eXBlJyxcbiAgJ3Njcm9sbGJhci1jb2xvcicsXG4gICdzY3JvbGxiYXItZ3V0dGVyJyxcbiAgJ3Njcm9sbGJhci13aWR0aCcsXG4gICdzaGFwZS1pbWFnZS10aHJlc2hvbGQnLFxuICAnc2hhcGUtbWFyZ2luJyxcbiAgJ3NoYXBlLW91dHNpZGUnLFxuICAnc2hhcGUtcmVuZGVyaW5nJyxcbiAgJ3N0b3AtY29sb3InLFxuICAnc3RvcC1vcGFjaXR5JyxcbiAgJ3N0cm9rZScsXG4gICdzdHJva2UtZGFzaGFycmF5JyxcbiAgJ3N0cm9rZS1kYXNob2Zmc2V0JyxcbiAgJ3N0cm9rZS1saW5lY2FwJyxcbiAgJ3N0cm9rZS1saW5lam9pbicsXG4gICdzdHJva2UtbWl0ZXJsaW1pdCcsXG4gICdzdHJva2Utb3BhY2l0eScsXG4gICdzdHJva2Utd2lkdGgnLFxuICAnc3BlYWsnLFxuICAnc3BlYWstYXMnLFxuICAnc3JjJywgLy8gQGZvbnQtZmFjZVxuICAndGFiLXNpemUnLFxuICAndGFibGUtbGF5b3V0JyxcbiAgJ3RleHQtYW5jaG9yJyxcbiAgJ3RleHQtYWxpZ24nLFxuICAndGV4dC1hbGlnbi1hbGwnLFxuICAndGV4dC1hbGlnbi1sYXN0JyxcbiAgJ3RleHQtY29tYmluZS11cHJpZ2h0JyxcbiAgJ3RleHQtZGVjb3JhdGlvbicsXG4gICd0ZXh0LWRlY29yYXRpb24tY29sb3InLFxuICAndGV4dC1kZWNvcmF0aW9uLWxpbmUnLFxuICAndGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1zdHlsZScsXG4gICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJyxcbiAgJ3RleHQtZW1waGFzaXMnLFxuICAndGV4dC1lbXBoYXNpcy1jb2xvcicsXG4gICd0ZXh0LWVtcGhhc2lzLXBvc2l0aW9uJyxcbiAgJ3RleHQtZW1waGFzaXMtc3R5bGUnLFxuICAndGV4dC1pbmRlbnQnLFxuICAndGV4dC1qdXN0aWZ5JyxcbiAgJ3RleHQtb3JpZW50YXRpb24nLFxuICAndGV4dC1vdmVyZmxvdycsXG4gICd0ZXh0LXJlbmRlcmluZycsXG4gICd0ZXh0LXNoYWRvdycsXG4gICd0ZXh0LXRyYW5zZm9ybScsXG4gICd0ZXh0LXVuZGVybGluZS1vZmZzZXQnLFxuICAndGV4dC11bmRlcmxpbmUtcG9zaXRpb24nLFxuICAndG9wJyxcbiAgJ3RyYW5zZm9ybScsXG4gICd0cmFuc2Zvcm0tYm94JyxcbiAgJ3RyYW5zZm9ybS1vcmlnaW4nLFxuICAndHJhbnNmb3JtLXN0eWxlJyxcbiAgJ3RyYW5zaXRpb24nLFxuICAndHJhbnNpdGlvbi1kZWxheScsXG4gICd0cmFuc2l0aW9uLWR1cmF0aW9uJyxcbiAgJ3RyYW5zaXRpb24tcHJvcGVydHknLFxuICAndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nLFxuICAndHJhbnNsYXRlJyxcbiAgJ3VuaWNvZGUtYmlkaScsXG4gICd2ZWN0b3ItZWZmZWN0JyxcbiAgJ3ZlcnRpY2FsLWFsaWduJyxcbiAgJ3Zpc2liaWxpdHknLFxuICAndm9pY2UtYmFsYW5jZScsXG4gICd2b2ljZS1kdXJhdGlvbicsXG4gICd2b2ljZS1mYW1pbHknLFxuICAndm9pY2UtcGl0Y2gnLFxuICAndm9pY2UtcmFuZ2UnLFxuICAndm9pY2UtcmF0ZScsXG4gICd2b2ljZS1zdHJlc3MnLFxuICAndm9pY2Utdm9sdW1lJyxcbiAgJ3doaXRlLXNwYWNlJyxcbiAgJ3dpZG93cycsXG4gICd3aWR0aCcsXG4gICd3aWxsLWNoYW5nZScsXG4gICd3b3JkLWJyZWFrJyxcbiAgJ3dvcmQtc3BhY2luZycsXG4gICd3b3JkLXdyYXAnLFxuICAnd3JpdGluZy1tb2RlJyxcbiAgJ3gnLFxuICAneScsXG4gICd6LWluZGV4J1xuXS5zb3J0KCkucmV2ZXJzZSgpO1xuXG4vKlxuTGFuZ3VhZ2U6IFN0eWx1c1xuQXV0aG9yOiBCcnlhbnQgV2lsbGlhbXMgPGIubi53aWxsaWFtc0BnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3R5bHVzIGlzIGFuIGV4cHJlc3NpdmUsIHJvYnVzdCwgZmVhdHVyZS1yaWNoIENTUyBsYW5ndWFnZSBidWlsdCBmb3Igbm9kZWpzLlxuV2Vic2l0ZTogaHR0cHM6Ly9naXRodWIuY29tL3N0eWx1cy9zdHlsdXNcbkNhdGVnb3J5OiBjc3MsIHdlYlxuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gc3R5bHVzKGhsanMpIHtcbiAgY29uc3QgbW9kZXMgPSBNT0RFUyhobGpzKTtcblxuICBjb25zdCBBVF9NT0RJRklFUlMgPSBcImFuZCBvciBub3Qgb25seVwiO1xuICBjb25zdCBWQVJJQUJMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgYmVnaW46ICdcXFxcJCcgKyBobGpzLklERU5UX1JFXG4gIH07XG5cbiAgY29uc3QgQVRfS0VZV09SRFMgPSBbXG4gICAgJ2NoYXJzZXQnLFxuICAgICdjc3MnLFxuICAgICdkZWJ1ZycsXG4gICAgJ2V4dGVuZCcsXG4gICAgJ2ZvbnQtZmFjZScsXG4gICAgJ2ZvcicsXG4gICAgJ2ltcG9ydCcsXG4gICAgJ2luY2x1ZGUnLFxuICAgICdrZXlmcmFtZXMnLFxuICAgICdtZWRpYScsXG4gICAgJ21peGluJyxcbiAgICAncGFnZScsXG4gICAgJ3dhcm4nLFxuICAgICd3aGlsZSdcbiAgXTtcblxuICBjb25zdCBMT09LQUhFQURfVEFHX0VORCA9ICcoPz1bLlxcXFxzXFxcXG5bOiwoXSknO1xuXG4gIC8vIGlsbGVnYWxzXG4gIGNvbnN0IElMTEVHQUwgPSBbXG4gICAgJ1xcXFw/JyxcbiAgICAnKFxcXFxiUmV0dXJuXFxcXGIpJywgLy8gbW9ua2V5XG4gICAgJyhcXFxcYkVuZFxcXFxiKScsIC8vIG1vbmtleVxuICAgICcoXFxcXGJlbmRcXFxcYiknLCAvLyB2YnNjcmlwdFxuICAgICcoXFxcXGJkZWZcXFxcYiknLCAvLyBncmFkbGVcbiAgICAnOycsIC8vIGEgd2hvbGUgbG90IG9mIGxhbmd1YWdlc1xuICAgICcjXFxcXHMnLCAvLyBtYXJrZG93blxuICAgICdcXFxcKlxcXFxzJywgLy8gbWFya2Rvd25cbiAgICAnPT09XFxcXHMnLCAvLyBtYXJrZG93blxuICAgICdcXFxcfCcsXG4gICAgJyUnIC8vIHByb2xvZ1xuICBdO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N0eWx1cycsXG4gICAgYWxpYXNlczogWyAnc3R5bCcgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogJ2lmIGVsc2UgZm9yIGluJyxcbiAgICBpbGxlZ2FsOiAnKCcgKyBJTExFR0FMLmpvaW4oJ3wnKSArICcpJyxcbiAgICBjb250YWluczogW1xuXG4gICAgICAvLyBzdHJpbmdzXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuXG4gICAgICAvLyBjb21tZW50c1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcblxuICAgICAgLy8gaGV4IGNvbG9yc1xuICAgICAgbW9kZXMuSEVYQ09MT1IsXG5cbiAgICAgIC8vIGNsYXNzIHRhZ1xuICAgICAge1xuICAgICAgICBiZWdpbjogJ1xcXFwuW2EtekEtWl1bYS16QS1aMC05Xy1dKicgKyBMT09LQUhFQURfVEFHX0VORCxcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItY2xhc3MnXG4gICAgICB9LFxuXG4gICAgICAvLyBpZCB0YWdcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICcjW2EtekEtWl1bYS16QS1aMC05Xy1dKicgKyBMT09LQUhFQURfVEFHX0VORCxcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItaWQnXG4gICAgICB9LFxuXG4gICAgICAvLyB0YWdzXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAnXFxcXGIoJyArIFRBR1Muam9pbignfCcpICsgJyknICsgTE9PS0FIRUFEX1RBR19FTkQsXG4gICAgICAgIGNsYXNzTmFtZTogJ3NlbGVjdG9yLXRhZydcbiAgICAgIH0sXG5cbiAgICAgIC8vIHBzdWVkbyBzZWxlY3RvcnNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc2VsZWN0b3ItcHNldWRvJyxcbiAgICAgICAgYmVnaW46ICcmPzooJyArIFBTRVVET19DTEFTU0VTLmpvaW4oJ3wnKSArICcpJyArIExPT0tBSEVBRF9UQUdfRU5EXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzZWxlY3Rvci1wc2V1ZG8nLFxuICAgICAgICBiZWdpbjogJyY/Oig6KT8oJyArIFBTRVVET19FTEVNRU5UUy5qb2luKCd8JykgKyAnKScgKyBMT09LQUhFQURfVEFHX0VORFxuICAgICAgfSxcblxuICAgICAgbW9kZXMuQVRUUklCVVRFX1NFTEVDVE9SX01PREUsXG5cbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIixcbiAgICAgICAgYmVnaW46IC9AbWVkaWEvLFxuICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICBlbmQ6IC9bezt9XS8sXG4gICAgICAgICAga2V5d29yZHM6IHtcbiAgICAgICAgICAgICRwYXR0ZXJuOiAvW2Etei1dKy8sXG4gICAgICAgICAgICBrZXl3b3JkOiBBVF9NT0RJRklFUlMsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IE1FRElBX0ZFQVRVUkVTLmpvaW4oXCIgXCIpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb250YWluczogWyBtb2Rlcy5DU1NfTlVNQkVSX01PREUgXVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyBAIGtleXdvcmRzXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgICAgICBiZWdpbjogJ1xcQCgoLShvfG1venxtc3x3ZWJraXQpLSk/KCcgKyBBVF9LRVlXT1JEUy5qb2luKCd8JykgKyAnKSlcXFxcYidcbiAgICAgIH0sXG5cbiAgICAgIC8vIHZhcmlhYmxlc1xuICAgICAgVkFSSUFCTEUsXG5cbiAgICAgIC8vIGRpbWVuc2lvblxuICAgICAgbW9kZXMuQ1NTX05VTUJFUl9NT0RFLFxuXG4gICAgICAvLyBmdW5jdGlvbnNcbiAgICAgIC8vICAtIG9ubHkgZnJvbSBiZWdpbm5pbmcgb2YgbGluZSArIHdoaXRlc3BhY2VcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbjogJ15bYS16QS1aXVthLXpBLVowLTlfXFwtXSpcXFxcKC4qXFxcXCknLFxuICAgICAgICBpbGxlZ2FsOiAnW1xcXFxuXScsXG4gICAgICAgIHJldHVybkJlZ2luOiB0cnVlLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXGJbYS16QS1aXVthLXpBLVowLTlfXFwtXSonXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgIG1vZGVzLkhFWENPTE9SLFxuICAgICAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREVcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG5cbiAgICAgIC8vIGNzcyB2YXJpYWJsZXNcbiAgICAgIG1vZGVzLkNTU19WQVJJQUJMRSxcblxuICAgICAgLy8gYXR0cmlidXRlc1xuICAgICAgLy8gIC0gb25seSBmcm9tIGJlZ2lubmluZyBvZiBsaW5lICsgd2hpdGVzcGFjZVxuICAgICAgLy8gIC0gbXVzdCBoYXZlIHdoaXRlc3BhY2UgYWZ0ZXIgaXRcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnYXR0cmlidXRlJyxcbiAgICAgICAgYmVnaW46ICdcXFxcYignICsgQVRUUklCVVRFUy5qb2luKCd8JykgKyAnKVxcXFxiJyxcbiAgICAgICAgc3RhcnRzOiB7XG4gICAgICAgICAgLy8gdmFsdWUgY29udGFpbmVyXG4gICAgICAgICAgZW5kOiAvO3wkLyxcbiAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgbW9kZXMuSEVYQ09MT1IsXG4gICAgICAgICAgICBWQVJJQUJMRSxcbiAgICAgICAgICAgIGhsanMuQVBPU19TVFJJTkdfTU9ERSxcbiAgICAgICAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICAgICAgICBtb2Rlcy5DU1NfTlVNQkVSX01PREUsXG4gICAgICAgICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgICAgICAgbW9kZXMuSU1QT1JUQU5ULFxuICAgICAgICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICAgICAgICBdLFxuICAgICAgICAgIGlsbGVnYWw6IC9cXC4vLFxuICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbW9kZXMuRlVOQ1RJT05fRElTUEFUQ0hcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3R5bHVzO1xuIiwgIi8qXG5MYW5ndWFnZTogU3ViVW5pdFxuQXV0aG9yOiBTZXJnZXkgQnJvbm5pa292IDxzZXJnZXliQGJyb25ldmljaG9rLnJ1PlxuV2Vic2l0ZTogaHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L3B5dGhvbi1zdWJ1bml0L1xuQ2F0ZWdvcnk6IHByb3RvY29sc1xuKi9cblxuZnVuY3Rpb24gc3VidW5pdChobGpzKSB7XG4gIGNvbnN0IERFVEFJTFMgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1xcXFxbXFxuKG11bHRpcGFydCk/JyxcbiAgICBlbmQ6ICdcXFxcXVxcbidcbiAgfTtcbiAgY29uc3QgVElNRSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFxcXGR7NH0tXFxcXGR7Mn0tXFxcXGR7Mn0oXFxcXHMrKVxcXFxkezJ9OlxcXFxkezJ9OlxcXFxkezJ9XFwuXFxcXGQrWidcbiAgfTtcbiAgY29uc3QgUFJPR1JFU1NWQUxVRSA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnKFxcXFwrfC0pXFxcXGQrJ1xuICB9O1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICByZWxldmFuY2U6IDEwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IGJlZ2luOiAnXih0ZXN0fHRlc3Rpbmd8c3VjY2Vzc3xzdWNjZXNzZnVsfGZhaWx1cmV8ZXJyb3J8c2tpcHx4ZmFpbHx1eHN1Y2Nlc3MpKDo/KVxcXFxzKyh0ZXN0KT8nIH0sXG4gICAgICB7IGJlZ2luOiAnXnByb2dyZXNzKDo/KShcXFxccyspPyhwb3B8cHVzaCk/JyB9LFxuICAgICAgeyBiZWdpbjogJ150YWdzOicgfSxcbiAgICAgIHsgYmVnaW46ICdedGltZTonIH1cbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1N1YlVuaXQnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIERFVEFJTFMsXG4gICAgICBUSU1FLFxuICAgICAgUFJPR1JFU1NWQUxVRSxcbiAgICAgIEtFWVdPUkRTXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN1YnVuaXQ7XG4iLCAiLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtSZWdFeHB9XG4gKiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7UmVnRXhwIHwgc3RyaW5nIH0gcmVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIHNvdXJjZShyZSkge1xuICBpZiAoIXJlKSByZXR1cm4gbnVsbDtcbiAgaWYgKHR5cGVvZiByZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHJlO1xuXG4gIHJldHVybiByZS5zb3VyY2U7XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmcgfSByZVxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gbG9va2FoZWFkKHJlKSB7XG4gIHJldHVybiBjb25jYXQoJyg/PScsIHJlLCAnKScpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Li4uKFJlZ0V4cCB8IHN0cmluZykgfSBhcmdzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBjb25jYXQoLi4uYXJncykge1xuICBjb25zdCBqb2luZWQgPSBhcmdzLm1hcCgoeCkgPT4gc291cmNlKHgpKS5qb2luKFwiXCIpO1xuICByZXR1cm4gam9pbmVkO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7IEFycmF5PHN0cmluZyB8IFJlZ0V4cCB8IE9iamVjdD4gfSBhcmdzXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5mdW5jdGlvbiBzdHJpcE9wdGlvbnNGcm9tQXJncyhhcmdzKSB7XG4gIGNvbnN0IG9wdHMgPSBhcmdzW2FyZ3MubGVuZ3RoIC0gMV07XG5cbiAgaWYgKHR5cGVvZiBvcHRzID09PSAnb2JqZWN0JyAmJiBvcHRzLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICBhcmdzLnNwbGljZShhcmdzLmxlbmd0aCAtIDEsIDEpO1xuICAgIHJldHVybiBvcHRzO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKiogQHR5cGVkZWYgeyB7Y2FwdHVyZT86IGJvb2xlYW59IH0gUmVnZXhFaXRoZXJPcHRpb25zICovXG5cbi8qKlxuICogQW55IG9mIHRoZSBwYXNzZWQgZXhwcmVzc3Npb25zIG1heSBtYXRjaFxuICpcbiAqIENyZWF0ZXMgYSBodWdlIHRoaXMgfCB0aGlzIHwgdGhhdCB8IHRoYXQgbWF0Y2hcbiAqIEBwYXJhbSB7KFJlZ0V4cCB8IHN0cmluZylbXSB8IFsuLi4oUmVnRXhwIHwgc3RyaW5nKVtdLCBSZWdleEVpdGhlck9wdGlvbnNdfSBhcmdzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBlaXRoZXIoLi4uYXJncykge1xuICAvKiogQHR5cGUgeyBvYmplY3QgJiB7Y2FwdHVyZT86IGJvb2xlYW59IH0gICovXG4gIGNvbnN0IG9wdHMgPSBzdHJpcE9wdGlvbnNGcm9tQXJncyhhcmdzKTtcbiAgY29uc3Qgam9pbmVkID0gJygnXG4gICAgKyAob3B0cy5jYXB0dXJlID8gXCJcIiA6IFwiPzpcIilcbiAgICArIGFyZ3MubWFwKCh4KSA9PiBzb3VyY2UoeCkpLmpvaW4oXCJ8XCIpICsgXCIpXCI7XG4gIHJldHVybiBqb2luZWQ7XG59XG5cbmNvbnN0IGtleXdvcmRXcmFwcGVyID0ga2V5d29yZCA9PiBjb25jYXQoXG4gIC9cXGIvLFxuICBrZXl3b3JkLFxuICAvXFx3JC8udGVzdChrZXl3b3JkKSA/IC9cXGIvIDogL1xcQi9cbik7XG5cbi8vIEtleXdvcmRzIHRoYXQgcmVxdWlyZSBhIGxlYWRpbmcgZG90LlxuY29uc3QgZG90S2V5d29yZHMgPSBbXG4gICdQcm90b2NvbCcsIC8vIGNvbnRleHR1YWxcbiAgJ1R5cGUnIC8vIGNvbnRleHR1YWxcbl0ubWFwKGtleXdvcmRXcmFwcGVyKTtcblxuLy8gS2V5d29yZHMgdGhhdCBtYXkgaGF2ZSBhIGxlYWRpbmcgZG90LlxuY29uc3Qgb3B0aW9uYWxEb3RLZXl3b3JkcyA9IFtcbiAgJ2luaXQnLFxuICAnc2VsZidcbl0ubWFwKGtleXdvcmRXcmFwcGVyKTtcblxuLy8gc2hvdWxkIHJlZ2lzdGVyIGFzIGtleXdvcmQsIG5vdCB0eXBlXG5jb25zdCBrZXl3b3JkVHlwZXMgPSBbXG4gICdBbnknLFxuICAnU2VsZidcbl07XG5cbi8vIFJlZ3VsYXIga2V5d29yZHMgYW5kIGxpdGVyYWxzLlxuY29uc3Qga2V5d29yZHMgPSBbXG4gIC8vIHN0cmluZ3MgYmVsb3cgd2lsbCBiZSBmZWQgaW50byB0aGUgcmVndWxhciBga2V5d29yZHNgIGVuZ2luZSB3aGlsZSByZWdleFxuICAvLyB3aWxsIHJlc3VsdCBpbiBhZGRpdGlvbmFsIG1vZGVzIGJlaW5nIGNyZWF0ZWQgdG8gc2NhbiBmb3IgdGhvc2Uga2V5d29yZHMgdG9cbiAgLy8gYXZvaWQgY29uZmxpY3RzIHdpdGggb3RoZXIgcnVsZXNcbiAgJ2FjdG9yJyxcbiAgJ2FueScsIC8vIGNvbnRleHR1YWxcbiAgJ2Fzc29jaWF0ZWR0eXBlJyxcbiAgJ2FzeW5jJyxcbiAgJ2F3YWl0JyxcbiAgL2FzXFw/LywgLy8gb3BlcmF0b3JcbiAgL2FzIS8sIC8vIG9wZXJhdG9yXG4gICdhcycsIC8vIG9wZXJhdG9yXG4gICdib3Jyb3dpbmcnLCAvLyBjb250ZXh0dWFsXG4gICdicmVhaycsXG4gICdjYXNlJyxcbiAgJ2NhdGNoJyxcbiAgJ2NsYXNzJyxcbiAgJ2NvbnN1bWUnLCAvLyBjb250ZXh0dWFsXG4gICdjb25zdW1pbmcnLCAvLyBjb250ZXh0dWFsXG4gICdjb250aW51ZScsXG4gICdjb252ZW5pZW5jZScsIC8vIGNvbnRleHR1YWxcbiAgJ2NvcHknLCAvLyBjb250ZXh0dWFsXG4gICdkZWZhdWx0JyxcbiAgJ2RlZmVyJyxcbiAgJ2RlaW5pdCcsXG4gICdkaWRTZXQnLCAvLyBjb250ZXh0dWFsXG4gICdkaXN0cmlidXRlZCcsXG4gICdkbycsXG4gICdkeW5hbWljJywgLy8gY29udGV4dHVhbFxuICAnZWFjaCcsXG4gICdlbHNlJyxcbiAgJ2VudW0nLFxuICAnZXh0ZW5zaW9uJyxcbiAgJ2ZhbGx0aHJvdWdoJyxcbiAgL2ZpbGVwcml2YXRlXFwoc2V0XFwpLyxcbiAgJ2ZpbGVwcml2YXRlJyxcbiAgJ2ZpbmFsJywgLy8gY29udGV4dHVhbFxuICAnZm9yJyxcbiAgJ2Z1bmMnLFxuICAnZ2V0JywgLy8gY29udGV4dHVhbFxuICAnZ3VhcmQnLFxuICAnaWYnLFxuICAnaW1wb3J0JyxcbiAgJ2luZGlyZWN0JywgLy8gY29udGV4dHVhbFxuICAnaW5maXgnLCAvLyBjb250ZXh0dWFsXG4gIC9pbml0XFw/LyxcbiAgL2luaXQhLyxcbiAgJ2lub3V0JyxcbiAgL2ludGVybmFsXFwoc2V0XFwpLyxcbiAgJ2ludGVybmFsJyxcbiAgJ2luJyxcbiAgJ2lzJywgLy8gb3BlcmF0b3JcbiAgJ2lzb2xhdGVkJywgLy8gY29udGV4dHVhbFxuICAnbm9uaXNvbGF0ZWQnLCAvLyBjb250ZXh0dWFsXG4gICdsYXp5JywgLy8gY29udGV4dHVhbFxuICAnbGV0JyxcbiAgJ21hY3JvJyxcbiAgJ211dGF0aW5nJywgLy8gY29udGV4dHVhbFxuICAnbm9ubXV0YXRpbmcnLCAvLyBjb250ZXh0dWFsXG4gIC9vcGVuXFwoc2V0XFwpLywgLy8gY29udGV4dHVhbFxuICAnb3BlbicsIC8vIGNvbnRleHR1YWxcbiAgJ29wZXJhdG9yJyxcbiAgJ29wdGlvbmFsJywgLy8gY29udGV4dHVhbFxuICAnb3ZlcnJpZGUnLCAvLyBjb250ZXh0dWFsXG4gICdwYWNrYWdlJyxcbiAgJ3Bvc3RmaXgnLCAvLyBjb250ZXh0dWFsXG4gICdwcmVjZWRlbmNlZ3JvdXAnLFxuICAncHJlZml4JywgLy8gY29udGV4dHVhbFxuICAvcHJpdmF0ZVxcKHNldFxcKS8sXG4gICdwcml2YXRlJyxcbiAgJ3Byb3RvY29sJyxcbiAgL3B1YmxpY1xcKHNldFxcKS8sXG4gICdwdWJsaWMnLFxuICAncmVwZWF0JyxcbiAgJ3JlcXVpcmVkJywgLy8gY29udGV4dHVhbFxuICAncmV0aHJvd3MnLFxuICAncmV0dXJuJyxcbiAgJ3NldCcsIC8vIGNvbnRleHR1YWxcbiAgJ3NvbWUnLCAvLyBjb250ZXh0dWFsXG4gICdzdGF0aWMnLFxuICAnc3RydWN0JyxcbiAgJ3N1YnNjcmlwdCcsXG4gICdzdXBlcicsXG4gICdzd2l0Y2gnLFxuICAndGhyb3dzJyxcbiAgJ3Rocm93JyxcbiAgL3RyeVxcPy8sIC8vIG9wZXJhdG9yXG4gIC90cnkhLywgLy8gb3BlcmF0b3JcbiAgJ3RyeScsIC8vIG9wZXJhdG9yXG4gICd0eXBlYWxpYXMnLFxuICAvdW5vd25lZFxcKHNhZmVcXCkvLCAvLyBjb250ZXh0dWFsXG4gIC91bm93bmVkXFwodW5zYWZlXFwpLywgLy8gY29udGV4dHVhbFxuICAndW5vd25lZCcsIC8vIGNvbnRleHR1YWxcbiAgJ3ZhcicsXG4gICd3ZWFrJywgLy8gY29udGV4dHVhbFxuICAnd2hlcmUnLFxuICAnd2hpbGUnLFxuICAnd2lsbFNldCcgLy8gY29udGV4dHVhbFxuXTtcblxuLy8gTk9URTogQ29udGV4dHVhbCBrZXl3b3JkcyBhcmUgcmVzZXJ2ZWQgb25seSBpbiBzcGVjaWZpYyBjb250ZXh0cy5cbi8vIElkZWFsbHksIHRoZXNlIHNob3VsZCBiZSBtYXRjaGVkIHVzaW5nIG1vZGVzIHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcy5cblxuLy8gTGl0ZXJhbHMuXG5jb25zdCBsaXRlcmFscyA9IFtcbiAgJ2ZhbHNlJyxcbiAgJ25pbCcsXG4gICd0cnVlJ1xuXTtcblxuLy8gS2V5d29yZHMgdXNlZCBpbiBwcmVjZWRlbmNlIGdyb3Vwcy5cbmNvbnN0IHByZWNlZGVuY2Vncm91cEtleXdvcmRzID0gW1xuICAnYXNzaWdubWVudCcsXG4gICdhc3NvY2lhdGl2aXR5JyxcbiAgJ2hpZ2hlclRoYW4nLFxuICAnbGVmdCcsXG4gICdsb3dlclRoYW4nLFxuICAnbm9uZScsXG4gICdyaWdodCdcbl07XG5cbi8vIEtleXdvcmRzIHRoYXQgc3RhcnQgd2l0aCBhIG51bWJlciBzaWduICgjKS5cbi8vICModW4pYXZhaWxhYmxlIGlzIGhhbmRsZWQgc2VwYXJhdGVseS5cbmNvbnN0IG51bWJlclNpZ25LZXl3b3JkcyA9IFtcbiAgJyNjb2xvckxpdGVyYWwnLFxuICAnI2NvbHVtbicsXG4gICcjZHNvaGFuZGxlJyxcbiAgJyNlbHNlJyxcbiAgJyNlbHNlaWYnLFxuICAnI2VuZGlmJyxcbiAgJyNlcnJvcicsXG4gICcjZmlsZScsXG4gICcjZmlsZUlEJyxcbiAgJyNmaWxlTGl0ZXJhbCcsXG4gICcjZmlsZVBhdGgnLFxuICAnI2Z1bmN0aW9uJyxcbiAgJyNpZicsXG4gICcjaW1hZ2VMaXRlcmFsJyxcbiAgJyNrZXlQYXRoJyxcbiAgJyNsaW5lJyxcbiAgJyNzZWxlY3RvcicsXG4gICcjc291cmNlTG9jYXRpb24nLFxuICAnI3dhcm5pbmcnXG5dO1xuXG4vLyBHbG9iYWwgZnVuY3Rpb25zIGluIHRoZSBTdGFuZGFyZCBMaWJyYXJ5LlxuY29uc3QgYnVpbHRJbnMgPSBbXG4gICdhYnMnLFxuICAnYWxsJyxcbiAgJ2FueScsXG4gICdhc3NlcnQnLFxuICAnYXNzZXJ0aW9uRmFpbHVyZScsXG4gICdkZWJ1Z1ByaW50JyxcbiAgJ2R1bXAnLFxuICAnZmF0YWxFcnJvcicsXG4gICdnZXRWYUxpc3QnLFxuICAnaXNLbm93blVuaXF1ZWx5UmVmZXJlbmNlZCcsXG4gICdtYXgnLFxuICAnbWluJyxcbiAgJ251bWVyaWNDYXN0JyxcbiAgJ3BvaW50d2lzZU1heCcsXG4gICdwb2ludHdpc2VNaW4nLFxuICAncHJlY29uZGl0aW9uJyxcbiAgJ3ByZWNvbmRpdGlvbkZhaWx1cmUnLFxuICAncHJpbnQnLFxuICAncmVhZExpbmUnLFxuICAncmVwZWF0RWxlbWVudCcsXG4gICdzZXF1ZW5jZScsXG4gICdzdHJpZGUnLFxuICAnc3dhcCcsXG4gICdzd2lmdF91bmJveEZyb21Td2lmdFZhbHVlV2l0aFR5cGUnLFxuICAndHJhbnNjb2RlJyxcbiAgJ3R5cGUnLFxuICAndW5zYWZlQml0Q2FzdCcsXG4gICd1bnNhZmVEb3duY2FzdCcsXG4gICd3aXRoRXh0ZW5kZWRMaWZldGltZScsXG4gICd3aXRoVW5zYWZlTXV0YWJsZVBvaW50ZXInLFxuICAnd2l0aFVuc2FmZVBvaW50ZXInLFxuICAnd2l0aFZhTGlzdCcsXG4gICd3aXRob3V0QWN0dWFsbHlFc2NhcGluZycsXG4gICd6aXAnXG5dO1xuXG4vLyBWYWxpZCBmaXJzdCBjaGFyYWN0ZXJzIGZvciBvcGVyYXRvcnMuXG5jb25zdCBvcGVyYXRvckhlYWQgPSBlaXRoZXIoXG4gIC9bLz1cXC0rISolPD4mfF5+P10vLFxuICAvW1xcdTAwQTEtXFx1MDBBN10vLFxuICAvW1xcdTAwQTlcXHUwMEFCXS8sXG4gIC9bXFx1MDBBQ1xcdTAwQUVdLyxcbiAgL1tcXHUwMEIwXFx1MDBCMV0vLFxuICAvW1xcdTAwQjZcXHUwMEJCXFx1MDBCRlxcdTAwRDdcXHUwMEY3XS8sXG4gIC9bXFx1MjAxNi1cXHUyMDE3XS8sXG4gIC9bXFx1MjAyMC1cXHUyMDI3XS8sXG4gIC9bXFx1MjAzMC1cXHUyMDNFXS8sXG4gIC9bXFx1MjA0MS1cXHUyMDUzXS8sXG4gIC9bXFx1MjA1NS1cXHUyMDVFXS8sXG4gIC9bXFx1MjE5MC1cXHUyM0ZGXS8sXG4gIC9bXFx1MjUwMC1cXHUyNzc1XS8sXG4gIC9bXFx1Mjc5NC1cXHUyQkZGXS8sXG4gIC9bXFx1MkUwMC1cXHUyRTdGXS8sXG4gIC9bXFx1MzAwMS1cXHUzMDAzXS8sXG4gIC9bXFx1MzAwOC1cXHUzMDIwXS8sXG4gIC9bXFx1MzAzMF0vXG4pO1xuXG4vLyBWYWxpZCBjaGFyYWN0ZXJzIGZvciBvcGVyYXRvcnMuXG5jb25zdCBvcGVyYXRvckNoYXJhY3RlciA9IGVpdGhlcihcbiAgb3BlcmF0b3JIZWFkLFxuICAvW1xcdTAzMDAtXFx1MDM2Rl0vLFxuICAvW1xcdTFEQzAtXFx1MURGRl0vLFxuICAvW1xcdTIwRDAtXFx1MjBGRl0vLFxuICAvW1xcdUZFMDAtXFx1RkUwRl0vLFxuICAvW1xcdUZFMjAtXFx1RkUyRl0vXG4gIC8vIFRPRE86IFRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyBhcmUgYWxzbyBhbGxvd2VkLCBidXQgdGhlIHJlZ2V4IGlzbid0IHN1cHBvcnRlZCB5ZXQuXG4gIC8vIC9bXFx1e0UwMTAwfS1cXHV7RTAxRUZ9XS91XG4pO1xuXG4vLyBWYWxpZCBvcGVyYXRvci5cbmNvbnN0IG9wZXJhdG9yID0gY29uY2F0KG9wZXJhdG9ySGVhZCwgb3BlcmF0b3JDaGFyYWN0ZXIsICcqJyk7XG5cbi8vIFZhbGlkIGZpcnN0IGNoYXJhY3RlcnMgZm9yIGlkZW50aWZpZXJzLlxuY29uc3QgaWRlbnRpZmllckhlYWQgPSBlaXRoZXIoXG4gIC9bYS16QS1aX10vLFxuICAvW1xcdTAwQThcXHUwMEFBXFx1MDBBRFxcdTAwQUZcXHUwMEIyLVxcdTAwQjVcXHUwMEI3LVxcdTAwQkFdLyxcbiAgL1tcXHUwMEJDLVxcdTAwQkVcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAwRkZdLyxcbiAgL1tcXHUwMTAwLVxcdTAyRkZcXHUwMzcwLVxcdTE2N0ZcXHUxNjgxLVxcdTE4MERcXHUxODBGLVxcdTFEQkZdLyxcbiAgL1tcXHUxRTAwLVxcdTFGRkZdLyxcbiAgL1tcXHUyMDBCLVxcdTIwMERcXHUyMDJBLVxcdTIwMkVcXHUyMDNGLVxcdTIwNDBcXHUyMDU0XFx1MjA2MC1cXHUyMDZGXS8sXG4gIC9bXFx1MjA3MC1cXHUyMENGXFx1MjEwMC1cXHUyMThGXFx1MjQ2MC1cXHUyNEZGXFx1Mjc3Ni1cXHUyNzkzXS8sXG4gIC9bXFx1MkMwMC1cXHUyREZGXFx1MkU4MC1cXHUyRkZGXS8sXG4gIC9bXFx1MzAwNC1cXHUzMDA3XFx1MzAyMS1cXHUzMDJGXFx1MzAzMS1cXHUzMDNGXFx1MzA0MC1cXHVEN0ZGXS8sXG4gIC9bXFx1RjkwMC1cXHVGRDNEXFx1RkQ0MC1cXHVGRENGXFx1RkRGMC1cXHVGRTFGXFx1RkUzMC1cXHVGRTQ0XS8sXG4gIC9bXFx1RkU0Ny1cXHVGRUZFXFx1RkYwMC1cXHVGRkZEXS8gLy8gU2hvdWxkIGJlIC9bXFx1RkU0Ny1cXHVGRkZEXS8sIGJ1dCB3ZSBoYXZlIHRvIGV4Y2x1ZGUgRkVGRi5cbiAgLy8gVGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGFyZSBhbHNvIGFsbG93ZWQsIGJ1dCB0aGUgcmVnZXhlcyBhcmVuJ3Qgc3VwcG9ydGVkIHlldC5cbiAgLy8gL1tcXHV7MTAwMDB9LVxcdXsxRkZGRH1cXHV7MjAwMDAtXFx1ezJGRkZEfVxcdXszMDAwMH0tXFx1ezNGRkZEfVxcdXs0MDAwMH0tXFx1ezRGRkZEfV0vdSxcbiAgLy8gL1tcXHV7NTAwMDB9LVxcdXs1RkZGRH1cXHV7NjAwMDAtXFx1ezZGRkZEfVxcdXs3MDAwMH0tXFx1ezdGRkZEfVxcdXs4MDAwMH0tXFx1ezhGRkZEfV0vdSxcbiAgLy8gL1tcXHV7OTAwMDB9LVxcdXs5RkZGRH1cXHV7QTAwMDAtXFx1e0FGRkZEfVxcdXtCMDAwMH0tXFx1e0JGRkZEfVxcdXtDMDAwMH0tXFx1e0NGRkZEfV0vdSxcbiAgLy8gL1tcXHV7RDAwMDB9LVxcdXtERkZGRH1cXHV7RTAwMDAtXFx1e0VGRkZEfV0vdVxuKTtcblxuLy8gVmFsaWQgY2hhcmFjdGVycyBmb3IgaWRlbnRpZmllcnMuXG5jb25zdCBpZGVudGlmaWVyQ2hhcmFjdGVyID0gZWl0aGVyKFxuICBpZGVudGlmaWVySGVhZCxcbiAgL1xcZC8sXG4gIC9bXFx1MDMwMC1cXHUwMzZGXFx1MURDMC1cXHUxREZGXFx1MjBEMC1cXHUyMEZGXFx1RkUyMC1cXHVGRTJGXS9cbik7XG5cbi8vIFZhbGlkIGlkZW50aWZpZXIuXG5jb25zdCBpZGVudGlmaWVyID0gY29uY2F0KGlkZW50aWZpZXJIZWFkLCBpZGVudGlmaWVyQ2hhcmFjdGVyLCAnKicpO1xuXG4vLyBWYWxpZCB0eXBlIGlkZW50aWZpZXIuXG5jb25zdCB0eXBlSWRlbnRpZmllciA9IGNvbmNhdCgvW0EtWl0vLCBpZGVudGlmaWVyQ2hhcmFjdGVyLCAnKicpO1xuXG4vLyBCdWlsdC1pbiBhdHRyaWJ1dGVzLCB3aGljaCBhcmUgaGlnaGxpZ2h0ZWQgYXMga2V5d29yZHMuXG4vLyBAYXZhaWxhYmxlIGlzIGhhbmRsZWQgc2VwYXJhdGVseS5cbi8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9kb2N1bWVudGF0aW9uL3RoZS1zd2lmdC1wcm9ncmFtbWluZy1sYW5ndWFnZS9hdHRyaWJ1dGVzXG5jb25zdCBrZXl3b3JkQXR0cmlidXRlcyA9IFtcbiAgJ2F0dGFjaGVkJyxcbiAgJ2F1dG9jbG9zdXJlJyxcbiAgY29uY2F0KC9jb252ZW50aW9uXFwoLywgZWl0aGVyKCdzd2lmdCcsICdibG9jaycsICdjJyksIC9cXCkvKSxcbiAgJ2Rpc2NhcmRhYmxlUmVzdWx0JyxcbiAgJ2R5bmFtaWNDYWxsYWJsZScsXG4gICdkeW5hbWljTWVtYmVyTG9va3VwJyxcbiAgJ2VzY2FwaW5nJyxcbiAgJ2ZyZWVzdGFuZGluZycsXG4gICdmcm96ZW4nLFxuICAnR0tJbnNwZWN0YWJsZScsXG4gICdJQkFjdGlvbicsXG4gICdJQkRlc2lnbmFibGUnLFxuICAnSUJJbnNwZWN0YWJsZScsXG4gICdJQk91dGxldCcsXG4gICdJQlNlZ3VlQWN0aW9uJyxcbiAgJ2lubGluYWJsZScsXG4gICdtYWluJyxcbiAgJ25vbm9iamMnLFxuICAnTlNBcHBsaWNhdGlvbk1haW4nLFxuICAnTlNDb3B5aW5nJyxcbiAgJ05TTWFuYWdlZCcsXG4gIGNvbmNhdCgvb2JqY1xcKC8sIGlkZW50aWZpZXIsIC9cXCkvKSxcbiAgJ29iamMnLFxuICAnb2JqY01lbWJlcnMnLFxuICAncHJvcGVydHlXcmFwcGVyJyxcbiAgJ3JlcXVpcmVzX3N0b3JlZF9wcm9wZXJ0eV9pbml0cycsXG4gICdyZXN1bHRCdWlsZGVyJyxcbiAgJ1NlbmRhYmxlJyxcbiAgJ3Rlc3RhYmxlJyxcbiAgJ1VJQXBwbGljYXRpb25NYWluJyxcbiAgJ3VuY2hlY2tlZCcsXG4gICd1bmtub3duJyxcbiAgJ3VzYWJsZUZyb21JbmxpbmUnLFxuICAnd2Fybl91bnF1YWxpZmllZF9hY2Nlc3MnXG5dO1xuXG4vLyBDb250ZXh0dWFsIGtleXdvcmRzIHVzZWQgaW4gQGF2YWlsYWJsZSBhbmQgIyh1bilhdmFpbGFibGUuXG5jb25zdCBhdmFpbGFiaWxpdHlLZXl3b3JkcyA9IFtcbiAgJ2lPUycsXG4gICdpT1NBcHBsaWNhdGlvbkV4dGVuc2lvbicsXG4gICdtYWNPUycsXG4gICdtYWNPU0FwcGxpY2F0aW9uRXh0ZW5zaW9uJyxcbiAgJ21hY0NhdGFseXN0JyxcbiAgJ21hY0NhdGFseXN0QXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAnd2F0Y2hPUycsXG4gICd3YXRjaE9TQXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAndHZPUycsXG4gICd0dk9TQXBwbGljYXRpb25FeHRlbnNpb24nLFxuICAnc3dpZnQnXG5dO1xuXG4vKlxuTGFuZ3VhZ2U6IFN3aWZ0XG5EZXNjcmlwdGlvbjogU3dpZnQgaXMgYSBnZW5lcmFsLXB1cnBvc2UgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYnVpbHQgdXNpbmcgYSBtb2Rlcm4gYXBwcm9hY2ggdG8gc2FmZXR5LCBwZXJmb3JtYW5jZSwgYW5kIHNvZnR3YXJlIGRlc2lnbiBwYXR0ZXJucy5cbkF1dGhvcjogU3RldmVuIFZhbiBJbXBlIDxzdGV2ZW4udmFuaW1wZUBpY2xvdWQuY29tPlxuQ29udHJpYnV0b3JzOiBDaHJpcyBFaWRob2YgPGNocmlzQGVpZGhvZi5ubD4sIE5hdGUgQ29vayA8bmF0ZWNvb2tAZ21haWwuY29tPiwgQWxleGFuZGVyIExpY2h0ZXIgPG1hbm5pTEBnbXgubmV0PiwgUmljaGFyZCBHaWJzb24gPGdpYnNvbjA0MkBnaXRodWI+XG5XZWJzaXRlOiBodHRwczovL3N3aWZ0Lm9yZ1xuQ2F0ZWdvcnk6IGNvbW1vbiwgc3lzdGVtXG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBzd2lmdChobGpzKSB7XG4gIGNvbnN0IFdISVRFU1BBQ0UgPSB7XG4gICAgbWF0Y2g6IC9cXHMrLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjSUQ0MTFcbiAgY29uc3QgQkxPQ0tfQ09NTUVOVCA9IGhsanMuQ09NTUVOVChcbiAgICAnL1xcXFwqJyxcbiAgICAnXFxcXCovJyxcbiAgICB7IGNvbnRhaW5zOiBbICdzZWxmJyBdIH1cbiAgKTtcbiAgY29uc3QgQ09NTUVOVFMgPSBbXG4gICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgIEJMT0NLX0NPTU1FTlRcbiAgXTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0xleGljYWxTdHJ1Y3R1cmUuaHRtbCNJRDQxM1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL3p6U3VtbWFyeU9mVGhlR3JhbW1hci5odG1sXG4gIGNvbnN0IERPVF9LRVlXT1JEID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvXFwuLyxcbiAgICAgIGVpdGhlciguLi5kb3RLZXl3b3JkcywgLi4ub3B0aW9uYWxEb3RLZXl3b3JkcylcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAyOiBcImtleXdvcmRcIiB9XG4gIH07XG4gIGNvbnN0IEtFWVdPUkRfR1VBUkQgPSB7XG4gICAgLy8gQ29uc3VtZSAua2V5d29yZCB0byBwcmV2ZW50IGhpZ2hsaWdodGluZyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGFzIGtleXdvcmRzLlxuICAgIG1hdGNoOiBjb25jYXQoL1xcLi8sIGVpdGhlciguLi5rZXl3b3JkcykpLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBQTEFJTl9LRVlXT1JEUyA9IGtleXdvcmRzXG4gICAgLmZpbHRlcihrdyA9PiB0eXBlb2Yga3cgPT09ICdzdHJpbmcnKVxuICAgIC5jb25jYXQoWyBcIl98MFwiIF0pOyAvLyBzZWVtcyBjb21tb24sIHNvIDAgcmVsZXZhbmNlXG4gIGNvbnN0IFJFR0VYX0tFWVdPUkRTID0ga2V5d29yZHNcbiAgICAuZmlsdGVyKGt3ID0+IHR5cGVvZiBrdyAhPT0gJ3N0cmluZycpIC8vIGZpbmQgcmVnZXhcbiAgICAuY29uY2F0KGtleXdvcmRUeXBlcylcbiAgICAubWFwKGtleXdvcmRXcmFwcGVyKTtcbiAgY29uc3QgS0VZV09SRCA9IHsgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgIG1hdGNoOiBlaXRoZXIoLi4uUkVHRVhfS0VZV09SRFMsIC4uLm9wdGlvbmFsRG90S2V5d29yZHMpXG4gICAgfVxuICBdIH07XG4gIC8vIGZpbmQgYWxsIHRoZSByZWd1bGFyIGtleXdvcmRzXG4gIGNvbnN0IEtFWVdPUkRTID0ge1xuICAgICRwYXR0ZXJuOiBlaXRoZXIoXG4gICAgICAvXFxiXFx3Ky8sIC8vIHJlZ3VsYXIga2V5d29yZHNcbiAgICAgIC8jXFx3Ky8gLy8gbnVtYmVyIGtleXdvcmRzXG4gICAgKSxcbiAgICBrZXl3b3JkOiBQTEFJTl9LRVlXT1JEU1xuICAgICAgLmNvbmNhdChudW1iZXJTaWduS2V5d29yZHMpLFxuICAgIGxpdGVyYWw6IGxpdGVyYWxzXG4gIH07XG4gIGNvbnN0IEtFWVdPUkRfTU9ERVMgPSBbXG4gICAgRE9UX0tFWVdPUkQsXG4gICAgS0VZV09SRF9HVUFSRCxcbiAgICBLRVlXT1JEXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGxlL3N3aWZ0L3RyZWUvbWFpbi9zdGRsaWIvcHVibGljL2NvcmVcbiAgY29uc3QgQlVJTFRfSU5fR1VBUkQgPSB7XG4gICAgLy8gQ29uc3VtZSAuYnVpbHRfaW4gdG8gcHJldmVudCBoaWdobGlnaHRpbmcgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cbiAgICBtYXRjaDogY29uY2F0KC9cXC4vLCBlaXRoZXIoLi4uYnVpbHRJbnMpKSxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQlVJTFRfSU4gPSB7XG4gICAgY2xhc3NOYW1lOiAnYnVpbHRfaW4nLFxuICAgIG1hdGNoOiBjb25jYXQoL1xcYi8sIGVpdGhlciguLi5idWlsdElucyksIC8oPz1cXCgpLylcbiAgfTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIEJVSUxUX0lOX0dVQVJELFxuICAgIEJVSUxUX0lOXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjSUQ0MThcbiAgY29uc3QgT1BFUkFUT1JfR1VBUkQgPSB7XG4gICAgLy8gUHJldmVudCAtPiBmcm9tIGJlaW5nIGhpZ2hsaWdodGluZyBhcyBhbiBvcGVyYXRvci5cbiAgICBtYXRjaDogLy0+LyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgT1BFUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnb3BlcmF0b3InLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogb3BlcmF0b3IgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gZG90LW9wZXJhdG9yOiBvbmx5IG9wZXJhdG9ycyB0aGF0IHN0YXJ0IHdpdGggYSBkb3QgYXJlIGFsbG93ZWQgdG8gdXNlIGRvdHMgYXNcbiAgICAgICAgLy8gY2hhcmFjdGVycyAoLi4uLCAuLi48LCAuKiwgZXRjKS4gU28gdGhlcmUgcnVsZSBoZXJlIGlzOiBhIGRvdCBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZVxuICAgICAgICAvLyBjaGFyYWN0ZXJzIHRoYXQgbWF5IGFsc28gaW5jbHVkZSBkb3RzLlxuICAgICAgICBtYXRjaDogYFxcXFwuKFxcXFwufCR7b3BlcmF0b3JDaGFyYWN0ZXJ9KStgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IE9QRVJBVE9SUyA9IFtcbiAgICBPUEVSQVRPUl9HVUFSRCxcbiAgICBPUEVSQVRPUlxuICBdO1xuXG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvTGV4aWNhbFN0cnVjdHVyZS5odG1sI2dyYW1tYXJfbnVtZXJpYy1saXRlcmFsXG4gIC8vIFRPRE86IFVwZGF0ZSBmb3IgbGVhZGluZyBgLWAgYWZ0ZXIgbG9va2JlaGluZCBpcyBzdXBwb3J0ZWQgZXZlcnl3aGVyZVxuICBjb25zdCBkZWNpbWFsRGlnaXRzID0gJyhbMC05XV8qKSsnO1xuICBjb25zdCBoZXhEaWdpdHMgPSAnKFswLTlhLWZBLUZdXyopKyc7XG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBkZWNpbWFsLWxpdGVyYWwpXG4gICAgICB7IG1hdGNoOiBgXFxcXGIoJHtkZWNpbWFsRGlnaXRzfSkoXFxcXC4oJHtkZWNpbWFsRGlnaXRzfSkpP2AgKyBgKFtlRV1bKy1dPygke2RlY2ltYWxEaWdpdHN9KSk/XFxcXGJgIH0sXG4gICAgICAvLyBoZXhhZGVjaW1hbCBmbG9hdGluZy1wb2ludC1saXRlcmFsIChzdWJzdW1lcyBoZXhhZGVjaW1hbC1saXRlcmFsKVxuICAgICAgeyBtYXRjaDogYFxcXFxiMHgoJHtoZXhEaWdpdHN9KShcXFxcLigke2hleERpZ2l0c30pKT9gICsgYChbcFBdWystXT8oJHtkZWNpbWFsRGlnaXRzfSkpP1xcXFxiYCB9LFxuICAgICAgLy8gb2N0YWwtbGl0ZXJhbFxuICAgICAgeyBtYXRjaDogL1xcYjBvKFswLTddXyopK1xcYi8gfSxcbiAgICAgIC8vIGJpbmFyeS1saXRlcmFsXG4gICAgICB7IG1hdGNoOiAvXFxiMGIoWzAxXV8qKStcXGIvIH1cbiAgICBdXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9MZXhpY2FsU3RydWN0dXJlLmh0bWwjZ3JhbW1hcl9zdHJpbmctbGl0ZXJhbFxuICBjb25zdCBFU0NBUEVEX0NIQVJBQ1RFUiA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICB2YXJpYW50czogW1xuICAgICAgeyBtYXRjaDogY29uY2F0KC9cXFxcLywgcmF3RGVsaW1pdGVyLCAvWzBcXFxcdG5yXCInXS8pIH0sXG4gICAgICB7IG1hdGNoOiBjb25jYXQoL1xcXFwvLCByYXdEZWxpbWl0ZXIsIC91XFx7WzAtOWEtZkEtRl17MSw4fVxcfS8pIH1cbiAgICBdXG4gIH0pO1xuICBjb25zdCBFU0NBUEVEX05FV0xJTkUgPSAocmF3RGVsaW1pdGVyID0gXCJcIikgPT4gKHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgbWF0Y2g6IGNvbmNhdCgvXFxcXC8sIHJhd0RlbGltaXRlciwgL1tcXHQgXSooPzpbXFxyXFxuXXxcXHJcXG4pLylcbiAgfSk7XG4gIGNvbnN0IElOVEVSUE9MQVRJT04gPSAocmF3RGVsaW1pdGVyID0gXCJcIikgPT4gKHtcbiAgICBjbGFzc05hbWU6ICdzdWJzdCcsXG4gICAgbGFiZWw6IFwiaW50ZXJwb2xcIixcbiAgICBiZWdpbjogY29uY2F0KC9cXFxcLywgcmF3RGVsaW1pdGVyLCAvXFwoLyksXG4gICAgZW5kOiAvXFwpL1xuICB9KTtcbiAgY29uc3QgTVVMVElMSU5FX1NUUklORyA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGJlZ2luOiBjb25jYXQocmF3RGVsaW1pdGVyLCAvXCJcIlwiLyksXG4gICAgZW5kOiBjb25jYXQoL1wiXCJcIi8sIHJhd0RlbGltaXRlciksXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEVTQ0FQRURfQ0hBUkFDVEVSKHJhd0RlbGltaXRlciksXG4gICAgICBFU0NBUEVEX05FV0xJTkUocmF3RGVsaW1pdGVyKSxcbiAgICAgIElOVEVSUE9MQVRJT04ocmF3RGVsaW1pdGVyKVxuICAgIF1cbiAgfSk7XG4gIGNvbnN0IFNJTkdMRV9MSU5FX1NUUklORyA9IChyYXdEZWxpbWl0ZXIgPSBcIlwiKSA9PiAoe1xuICAgIGJlZ2luOiBjb25jYXQocmF3RGVsaW1pdGVyLCAvXCIvKSxcbiAgICBlbmQ6IGNvbmNhdCgvXCIvLCByYXdEZWxpbWl0ZXIpLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBFU0NBUEVEX0NIQVJBQ1RFUihyYXdEZWxpbWl0ZXIpLFxuICAgICAgSU5URVJQT0xBVElPTihyYXdEZWxpbWl0ZXIpXG4gICAgXVxuICB9KTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIE1VTFRJTElORV9TVFJJTkcoKSxcbiAgICAgIE1VTFRJTElORV9TVFJJTkcoXCIjXCIpLFxuICAgICAgTVVMVElMSU5FX1NUUklORyhcIiMjXCIpLFxuICAgICAgTVVMVElMSU5FX1NUUklORyhcIiMjI1wiKSxcbiAgICAgIFNJTkdMRV9MSU5FX1NUUklORygpLFxuICAgICAgU0lOR0xFX0xJTkVfU1RSSU5HKFwiI1wiKSxcbiAgICAgIFNJTkdMRV9MSU5FX1NUUklORyhcIiMjXCIpLFxuICAgICAgU0lOR0xFX0xJTkVfU1RSSU5HKFwiIyMjXCIpXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFJFR0VYUF9DT05URU5UUyA9IFtcbiAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAge1xuICAgICAgYmVnaW46IC9cXFsvLFxuICAgICAgZW5kOiAvXFxdLyxcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdXG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IEJBUkVfUkVHRVhQX0xJVEVSQUwgPSB7XG4gICAgYmVnaW46IC9cXC9bXlxcc10oPz1bXi9cXG5dKlxcLykvLFxuICAgIGVuZDogL1xcLy8sXG4gICAgY29udGFpbnM6IFJFR0VYUF9DT05URU5UU1xuICB9O1xuXG4gIGNvbnN0IEVYVEVOREVEX1JFR0VYUF9MSVRFUkFMID0gKHJhd0RlbGltaXRlcikgPT4ge1xuICAgIGNvbnN0IGJlZ2luID0gY29uY2F0KHJhd0RlbGltaXRlciwgL1xcLy8pO1xuICAgIGNvbnN0IGVuZCA9IGNvbmNhdCgvXFwvLywgcmF3RGVsaW1pdGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgYmVnaW4sXG4gICAgICBlbmQsXG4gICAgICBjb250YWluczogW1xuICAgICAgICAuLi5SRUdFWFBfQ09OVEVOVFMsXG4gICAgICAgIHtcbiAgICAgICAgICBzY29wZTogXCJjb21tZW50XCIsXG4gICAgICAgICAgYmVnaW46IGAjKD8hLioke2VuZH0pYCxcbiAgICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svZG9jdW1lbnRhdGlvbi90aGUtc3dpZnQtcHJvZ3JhbW1pbmctbGFuZ3VhZ2UvbGV4aWNhbHN0cnVjdHVyZS8jUmVndWxhci1FeHByZXNzaW9uLUxpdGVyYWxzXG4gIGNvbnN0IFJFR0VYUCA9IHtcbiAgICBzY29wZTogXCJyZWdleHBcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgRVhURU5ERURfUkVHRVhQX0xJVEVSQUwoJyMjIycpLFxuICAgICAgRVhURU5ERURfUkVHRVhQX0xJVEVSQUwoJyMjJyksXG4gICAgICBFWFRFTkRFRF9SRUdFWFBfTElURVJBTCgnIycpLFxuICAgICAgQkFSRV9SRUdFWFBfTElURVJBTFxuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0xleGljYWxTdHJ1Y3R1cmUuaHRtbCNJRDQxMlxuICBjb25zdCBRVU9URURfSURFTlRJRklFUiA9IHsgbWF0Y2g6IGNvbmNhdCgvYC8sIGlkZW50aWZpZXIsIC9gLykgfTtcbiAgY29uc3QgSU1QTElDSVRfUEFSQU1FVEVSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBtYXRjaDogL1xcJFxcZCsvXG4gIH07XG4gIGNvbnN0IFBST1BFUlRZX1dSQVBQRVJfUFJPSkVDVElPTiA9IHtcbiAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgbWF0Y2g6IGBcXFxcJCR7aWRlbnRpZmllckNoYXJhY3Rlcn0rYFxuICB9O1xuICBjb25zdCBJREVOVElGSUVSUyA9IFtcbiAgICBRVU9URURfSURFTlRJRklFUixcbiAgICBJTVBMSUNJVF9QQVJBTUVURVIsXG4gICAgUFJPUEVSVFlfV1JBUFBFUl9QUk9KRUNUSU9OXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9BdHRyaWJ1dGVzLmh0bWxcbiAgY29uc3QgQVZBSUxBQkxFX0FUVFJJQlVURSA9IHtcbiAgICBtYXRjaDogLyhAfCModW4pPylhdmFpbGFibGUvLFxuICAgIHNjb3BlOiAna2V5d29yZCcsXG4gICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAga2V5d29yZHM6IGF2YWlsYWJpbGl0eUtleXdvcmRzLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgICAgICBOVU1CRVIsXG4gICAgICAgICAgU1RSSU5HXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdIH1cbiAgfTtcblxuICBjb25zdCBLRVlXT1JEX0FUVFJJQlVURSA9IHtcbiAgICBzY29wZTogJ2tleXdvcmQnLFxuICAgIG1hdGNoOiBjb25jYXQoL0AvLCBlaXRoZXIoLi4ua2V5d29yZEF0dHJpYnV0ZXMpLCBsb29rYWhlYWQoZWl0aGVyKC9cXCgvLCAvXFxzKy8pKSksXG4gIH07XG5cbiAgY29uc3QgVVNFUl9ERUZJTkVEX0FUVFJJQlVURSA9IHtcbiAgICBzY29wZTogJ21ldGEnLFxuICAgIG1hdGNoOiBjb25jYXQoL0AvLCBpZGVudGlmaWVyKVxuICB9O1xuXG4gIGNvbnN0IEFUVFJJQlVURVMgPSBbXG4gICAgQVZBSUxBQkxFX0FUVFJJQlVURSxcbiAgICBLRVlXT1JEX0FUVFJJQlVURSxcbiAgICBVU0VSX0RFRklORURfQVRUUklCVVRFXG4gIF07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9UeXBlcy5odG1sXG4gIGNvbnN0IFRZUEUgPSB7XG4gICAgbWF0Y2g6IGxvb2thaGVhZCgvXFxiW0EtWl0vKSxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgLy8gQ29tbW9uIEFwcGxlIGZyYW1ld29ya3MsIGZvciByZWxldmFuY2UgYm9vc3RcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIG1hdGNoOiBjb25jYXQoLyhBVnxDQXxDRnxDR3xDSXxDTHxDTXxDTnxDVHxNS3xNUHxNVEt8TVRMfE5TfFNDTnxTS3xVSXxXS3xYQykvLCBpZGVudGlmaWVyQ2hhcmFjdGVyLCAnKycpXG4gICAgICB9LFxuICAgICAgeyAvLyBUeXBlIGlkZW50aWZpZXJcbiAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgIG1hdGNoOiB0eXBlSWRlbnRpZmllcixcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgeyAvLyBPcHRpb25hbCB0eXBlXG4gICAgICAgIG1hdGNoOiAvWz8hXSsvLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7IC8vIFZhcmlhZGljIHBhcmFtZXRlclxuICAgICAgICBtYXRjaDogL1xcLlxcLlxcLi8sXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHsgLy8gUHJvdG9jb2wgY29tcG9zaXRpb25cbiAgICAgICAgbWF0Y2g6IGNvbmNhdCgvXFxzKyZcXHMrLywgbG9va2FoZWFkKHR5cGVJZGVudGlmaWVyKSksXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgR0VORVJJQ19BUkdVTUVOVFMgPSB7XG4gICAgYmVnaW46IC88LyxcbiAgICBlbmQ6IC8+LyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIC4uLkNPTU1FTlRTLFxuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLkFUVFJJQlVURVMsXG4gICAgICBPUEVSQVRPUl9HVUFSRCxcbiAgICAgIFRZUEVcbiAgICBdXG4gIH07XG4gIFRZUEUuY29udGFpbnMucHVzaChHRU5FUklDX0FSR1VNRU5UUyk7XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9FeHByZXNzaW9ucy5odG1sI0lENTUyXG4gIC8vIFByZXZlbnRzIGVsZW1lbnQgbmFtZXMgZnJvbSBiZWluZyBoaWdobGlnaHRlZCBhcyBrZXl3b3Jkcy5cbiAgY29uc3QgVFVQTEVfRUxFTUVOVF9OQU1FID0ge1xuICAgIG1hdGNoOiBjb25jYXQoaWRlbnRpZmllciwgL1xccyo6LyksXG4gICAga2V5d29yZHM6IFwiX3wwXCIsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG4gIC8vIE1hdGNoZXMgdHVwbGVzIGFzIHdlbGwgYXMgdGhlIHBhcmFtZXRlciBsaXN0IG9mIGEgZnVuY3Rpb24gdHlwZS5cbiAgY29uc3QgVFVQTEUgPSB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgJ3NlbGYnLFxuICAgICAgVFVQTEVfRUxFTUVOVF9OQU1FLFxuICAgICAgLi4uQ09NTUVOVFMsXG4gICAgICBSRUdFWFAsXG4gICAgICAuLi5LRVlXT1JEX01PREVTLFxuICAgICAgLi4uQlVJTFRfSU5TLFxuICAgICAgLi4uT1BFUkFUT1JTLFxuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgLi4uSURFTlRJRklFUlMsXG4gICAgICAuLi5BVFRSSUJVVEVTLFxuICAgICAgVFlQRVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBHRU5FUklDX1BBUkFNRVRFUlMgPSB7XG4gICAgYmVnaW46IC88LyxcbiAgICBlbmQ6IC8+LyxcbiAgICBrZXl3b3JkczogJ3JlcGVhdCBlYWNoJyxcbiAgICBjb250YWluczogW1xuICAgICAgLi4uQ09NTUVOVFMsXG4gICAgICBUWVBFXG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTl9QQVJBTUVURVJfTkFNRSA9IHtcbiAgICBiZWdpbjogZWl0aGVyKFxuICAgICAgbG9va2FoZWFkKGNvbmNhdChpZGVudGlmaWVyLCAvXFxzKjovKSksXG4gICAgICBsb29rYWhlYWQoY29uY2F0KGlkZW50aWZpZXIsIC9cXHMrLywgaWRlbnRpZmllciwgL1xccyo6LykpXG4gICAgKSxcbiAgICBlbmQ6IC86LyxcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIG1hdGNoOiAvXFxiX1xcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3BhcmFtcycsXG4gICAgICAgIG1hdGNoOiBpZGVudGlmaWVyXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTl9QQVJBTUVURVJTID0ge1xuICAgIGJlZ2luOiAvXFwoLyxcbiAgICBlbmQ6IC9cXCkvLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgRlVOQ1RJT05fUEFSQU1FVEVSX05BTUUsXG4gICAgICAuLi5DT01NRU5UUyxcbiAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICAuLi5PUEVSQVRPUlMsXG4gICAgICBOVU1CRVIsXG4gICAgICBTVFJJTkcsXG4gICAgICAuLi5BVFRSSUJVVEVTLFxuICAgICAgVFlQRSxcbiAgICAgIFRVUExFXG4gICAgXSxcbiAgICBlbmRzUGFyZW50OiB0cnVlLFxuICAgIGlsbGVnYWw6IC9bXCInXS9cbiAgfTtcbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9EZWNsYXJhdGlvbnMuaHRtbCNJRDM2MlxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svZG9jdW1lbnRhdGlvbi90aGUtc3dpZnQtcHJvZ3JhbW1pbmctbGFuZ3VhZ2UvZGVjbGFyYXRpb25zLyNNYWNyby1EZWNsYXJhdGlvblxuICBjb25zdCBGVU5DVElPTl9PUl9NQUNSTyA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyhmdW5jfG1hY3JvKS8sXG4gICAgICAvXFxzKy8sXG4gICAgICBlaXRoZXIoUVVPVEVEX0lERU5USUZJRVIubWF0Y2gsIGlkZW50aWZpZXIsIG9wZXJhdG9yKVxuICAgIF0sXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEdFTkVSSUNfUEFSQU1FVEVSUyxcbiAgICAgIEZVTkNUSU9OX1BBUkFNRVRFUlMsXG4gICAgICBXSElURVNQQUNFXG4gICAgXSxcbiAgICBpbGxlZ2FsOiBbXG4gICAgICAvXFxbLyxcbiAgICAgIC8lL1xuICAgIF1cbiAgfTtcblxuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzc1XG4gIC8vIGh0dHBzOi8vZG9jcy5zd2lmdC5vcmcvc3dpZnQtYm9vay9SZWZlcmVuY2VNYW51YWwvRGVjbGFyYXRpb25zLmh0bWwjSUQzNzlcbiAgY29uc3QgSU5JVF9TVUJTQ1JJUFQgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9cXGIoPzpzdWJzY3JpcHR8aW5pdFs/IV0/KS8sXG4gICAgICAvXFxzKig/PVs8KF0pLyxcbiAgICBdLFxuICAgIGNsYXNzTmFtZTogeyAxOiBcImtleXdvcmRcIiB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBHRU5FUklDX1BBUkFNRVRFUlMsXG4gICAgICBGVU5DVElPTl9QQVJBTUVURVJTLFxuICAgICAgV0hJVEVTUEFDRVxuICAgIF0sXG4gICAgaWxsZWdhbDogL1xcW3wlL1xuICB9O1xuICAvLyBodHRwczovL2RvY3Muc3dpZnQub3JnL3N3aWZ0LWJvb2svUmVmZXJlbmNlTWFudWFsL0RlY2xhcmF0aW9ucy5odG1sI0lEMzgwXG4gIGNvbnN0IE9QRVJBVE9SX0RFQ0xBUkFUSU9OID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvb3BlcmF0b3IvLFxuICAgICAgL1xccysvLFxuICAgICAgb3BlcmF0b3JcbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlXCJcbiAgICB9XG4gIH07XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLnN3aWZ0Lm9yZy9zd2lmdC1ib29rL1JlZmVyZW5jZU1hbnVhbC9EZWNsYXJhdGlvbnMuaHRtbCNJRDU1MFxuICBjb25zdCBQUkVDRURFTkNFR1JPVVAgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgIC9wcmVjZWRlbmNlZ3JvdXAvLFxuICAgICAgL1xccysvLFxuICAgICAgdHlwZUlkZW50aWZpZXJcbiAgICBdLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAzOiBcInRpdGxlXCJcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbIFRZUEUgXSxcbiAgICBrZXl3b3JkczogW1xuICAgICAgLi4ucHJlY2VkZW5jZWdyb3VwS2V5d29yZHMsXG4gICAgICAuLi5saXRlcmFsc1xuICAgIF0sXG4gICAgZW5kOiAvfS9cbiAgfTtcblxuICBjb25zdCBUWVBFX0RFQ0xBUkFUSU9OID0ge1xuICAgIGJlZ2luOiBbXG4gICAgICAvKHN0cnVjdHxwcm90b2NvbHxjbGFzc3xleHRlbnNpb258ZW51bXxhY3RvcikvLFxuICAgICAgL1xccysvLFxuICAgICAgaWRlbnRpZmllcixcbiAgICAgIC9cXHMqLyxcbiAgICBdLFxuICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgfSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIEdFTkVSSUNfUEFSQU1FVEVSUyxcbiAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvOi8sXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzY29wZTogXCJ0aXRsZS5jbGFzcy5pbmhlcml0ZWRcIixcbiAgICAgICAgICAgIG1hdGNoOiB0eXBlSWRlbnRpZmllcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLktFWVdPUkRfTU9ERVMsXG4gICAgICAgIF0sXG4gICAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIH0sXG4gICAgXVxuICB9O1xuXG4gIC8vIEFkZCBzdXBwb3J0ZWQgc3VibW9kZXMgdG8gc3RyaW5nIGludGVycG9sYXRpb24uXG4gIGZvciAoY29uc3QgdmFyaWFudCBvZiBTVFJJTkcudmFyaWFudHMpIHtcbiAgICBjb25zdCBpbnRlcnBvbGF0aW9uID0gdmFyaWFudC5jb250YWlucy5maW5kKG1vZGUgPT4gbW9kZS5sYWJlbCA9PT0gXCJpbnRlcnBvbFwiKTtcbiAgICAvLyBUT0RPOiBJbnRlcnBvbGF0aW9uIGNhbiBjb250YWluIGFueSBleHByZXNzaW9uLCBzbyB0aGVyZSdzIHJvb20gZm9yIGltcHJvdmVtZW50IGhlcmUuXG4gICAgaW50ZXJwb2xhdGlvbi5rZXl3b3JkcyA9IEtFWVdPUkRTO1xuICAgIGNvbnN0IHN1Ym1vZGVzID0gW1xuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLkJVSUxUX0lOUyxcbiAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgIE5VTUJFUixcbiAgICAgIFNUUklORyxcbiAgICAgIC4uLklERU5USUZJRVJTXG4gICAgXTtcbiAgICBpbnRlcnBvbGF0aW9uLmNvbnRhaW5zID0gW1xuICAgICAgLi4uc3VibW9kZXMsXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAnc2VsZicsXG4gICAgICAgICAgLi4uc3VibW9kZXNcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdTd2lmdCcsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAuLi5DT01NRU5UUyxcbiAgICAgIEZVTkNUSU9OX09SX01BQ1JPLFxuICAgICAgSU5JVF9TVUJTQ1JJUFQsXG4gICAgICBUWVBFX0RFQ0xBUkFUSU9OLFxuICAgICAgT1BFUkFUT1JfREVDTEFSQVRJT04sXG4gICAgICBQUkVDRURFTkNFR1JPVVAsXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdpbXBvcnQnLFxuICAgICAgICBlbmQ6IC8kLyxcbiAgICAgICAgY29udGFpbnM6IFsgLi4uQ09NTUVOVFMgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgUkVHRVhQLFxuICAgICAgLi4uS0VZV09SRF9NT0RFUyxcbiAgICAgIC4uLkJVSUxUX0lOUyxcbiAgICAgIC4uLk9QRVJBVE9SUyxcbiAgICAgIE5VTUJFUixcbiAgICAgIFNUUklORyxcbiAgICAgIC4uLklERU5USUZJRVJTLFxuICAgICAgLi4uQVRUUklCVVRFUyxcbiAgICAgIFRZUEUsXG4gICAgICBUVVBMRVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzd2lmdDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFRhZ2dlciBTY3JpcHRcbkF1dGhvcjogUGhpbGlwcCBXb2xmZXIgPHBoLndvbGZlckBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogU3ludGF4IEhpZ2hsaWdodGluZyBmb3IgdGhlIFRhZ2dlciBTY3JpcHQgYXMgdXNlZCBieSBNdXNpY0JyYWlueiBQaWNhcmQuXG5XZWJzaXRlOiBodHRwczovL3BpY2FyZC5tdXNpY2JyYWluei5vcmdcbkNhdGVnb3J5OiBzY3JpcHRpbmdcbiAqL1xuZnVuY3Rpb24gdGFnZ2Vyc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgTk9PUCA9IHtcbiAgICBjbGFzc05hbWU6ICdjb21tZW50JyxcbiAgICBiZWdpbjogL1xcJG5vb3BcXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHsgYmVnaW46IC9cXFxcWygpXS8gfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHsgYmVnaW46IC9cXFxcWygpXS8gfSxcbiAgICAgICAgICAnc2VsZidcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0sXG4gICAgcmVsZXZhbmNlOiAxMFxuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2tleXdvcmQnLFxuICAgIGJlZ2luOiAvXFwkW19hLXpBLVowLTldKyg/PVxcKCkvXG4gIH07XG5cbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgY2xhc3NOYW1lOiAndmFyaWFibGUnLFxuICAgIGJlZ2luOiAvJVtfYS16QS1aMC05Ol0rJS9cbiAgfTtcblxuICBjb25zdCBFU0NBUEVfU0VRVUVOQ0VfVU5JQ09ERSA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAvXFxcXHVbYS1mQS1GMC05XXs0fS9cbiAgfTtcblxuICBjb25zdCBFU0NBUEVfU0VRVUVOQ0UgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICBiZWdpbjogL1xcXFxbXFxcXG50JCUsKCldL1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1RhZ2dlciBTY3JpcHQnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBOT09QLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBWQVJJQUJMRSxcbiAgICAgIEVTQ0FQRV9TRVFVRU5DRSxcbiAgICAgIEVTQ0FQRV9TRVFVRU5DRV9VTklDT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRhZ2dlcnNjcmlwdDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFlBTUxcbkRlc2NyaXB0aW9uOiBZZXQgQW5vdGhlciBNYXJrZG93biBMYW5ndWFnZVxuQXV0aG9yOiBTdGVmYW4gV2llbmVydCA8c3R3aWVuZXJ0QGdtYWlsLmNvbT5cbkNvbnRyaWJ1dG9yczogQ2FybCBCYXh0ZXIgPGNhcmxAY2JheC50ZWNoPlxuUmVxdWlyZXM6IHJ1YnkuanNcbldlYnNpdGU6IGh0dHBzOi8veWFtbC5vcmdcbkNhdGVnb3J5OiBjb21tb24sIGNvbmZpZ1xuKi9cbmZ1bmN0aW9uIHlhbWwoaGxqcykge1xuICBjb25zdCBMSVRFUkFMUyA9ICd0cnVlIGZhbHNlIHllcyBubyBudWxsJztcblxuICAvLyBZQU1MIHNwZWMgYWxsb3dzIG5vbi1yZXNlcnZlZCBVUkkgY2hhcmFjdGVycyBpbiB0YWdzLlxuICBjb25zdCBVUklfQ0hBUkFDVEVSUyA9ICdbXFxcXHcjOy8/OkAmPSskLC5+KlxcJygpW1xcXFxdXSsnO1xuXG4gIC8vIERlZmluZSBrZXlzIGFzIHN0YXJ0aW5nIHdpdGggYSB3b3JkIGNoYXJhY3RlclxuICAvLyAuLi5jb250YWluaW5nIHdvcmQgY2hhcnMsIHNwYWNlcywgY29sb25zLCBmb3J3YXJkLXNsYXNoZXMsIGh5cGhlbnMgYW5kIHBlcmlvZHNcbiAgLy8gLi4uYW5kIGVuZGluZyB3aXRoIGEgY29sb24gZm9sbG93ZWQgaW1tZWRpYXRlbHkgYnkgYSBzcGFjZSwgdGFiIG9yIG5ld2xpbmUuXG4gIC8vIFRoZSBZQU1MIHNwZWMgYWxsb3dzIGZvciBtdWNoIG1vcmUgdGhhbiB0aGlzLCBidXQgdGhpcyBjb3ZlcnMgbW9zdCB1c2UtY2FzZXMuXG4gIGNvbnN0IEtFWSA9IHtcbiAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICB2YXJpYW50czogW1xuICAgICAgLy8gYWRkZWQgYnJhY2tldHMgc3VwcG9ydCBcbiAgICAgIHsgYmVnaW46IC9cXHdbXFx3IDooKVxcLi8tXSo6KD89WyBcXHRdfCQpLyB9LFxuICAgICAgeyAvLyBkb3VibGUgcXVvdGVkIGtleXMgLSB3aXRoIGJyYWNrZXRzXG4gICAgICAgIGJlZ2luOiAvXCJcXHdbXFx3IDooKVxcLi8tXSpcIjooPz1bIFxcdF18JCkvIH0sXG4gICAgICB7IC8vIHNpbmdsZSBxdW90ZWQga2V5cyAtIHdpdGggYnJhY2tldHNcbiAgICAgICAgYmVnaW46IC8nXFx3W1xcdyA6KClcXC4vLV0qJzooPz1bIFxcdF18JCkvIH0sXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IFRFTVBMQVRFX1ZBUklBQkxFUyA9IHtcbiAgICBjbGFzc05hbWU6ICd0ZW1wbGF0ZS12YXJpYWJsZScsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHsgLy8gamluamEgdGVtcGxhdGVzIEFuc2libGVcbiAgICAgICAgYmVnaW46IC9cXHtcXHsvLFxuICAgICAgICBlbmQ6IC9cXH1cXH0vXG4gICAgICB9LFxuICAgICAgeyAvLyBSdWJ5IGkxOG5cbiAgICAgICAgYmVnaW46IC8lXFx7LyxcbiAgICAgICAgZW5kOiAvXFx9L1xuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvXG4gICAgICB9LFxuICAgICAgeyBiZWdpbjogL1xcUysvIH1cbiAgICBdLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICBURU1QTEFURV9WQVJJQUJMRVNcbiAgICBdXG4gIH07XG5cbiAgLy8gU3RyaW5ncyBpbnNpZGUgb2YgdmFsdWUgY29udGFpbmVycyAob2JqZWN0cykgY2FuJ3QgY29udGFpbiBicmFjZXMsXG4gIC8vIGJyYWNrZXRzLCBvciBjb21tYXNcbiAgY29uc3QgQ09OVEFJTkVSX1NUUklORyA9IGhsanMuaW5oZXJpdChTVFJJTkcsIHsgdmFyaWFudHM6IFtcbiAgICB7XG4gICAgICBiZWdpbjogLycvLFxuICAgICAgZW5kOiAvJy9cbiAgICB9LFxuICAgIHtcbiAgICAgIGJlZ2luOiAvXCIvLFxuICAgICAgZW5kOiAvXCIvXG4gICAgfSxcbiAgICB7IGJlZ2luOiAvW15cXHMse31bXFxdXSsvIH1cbiAgXSB9KTtcblxuICBjb25zdCBEQVRFX1JFID0gJ1swLTldezR9KC1bMC05XVswLTldKXswLDJ9JztcbiAgY29uc3QgVElNRV9SRSA9ICcoW1R0IFxcXFx0XVswLTldWzAtOV0/KDpbMC05XVswLTldKXsyfSk/JztcbiAgY29uc3QgRlJBQ1RJT05fUkUgPSAnKFxcXFwuWzAtOV0qKT8nO1xuICBjb25zdCBaT05FX1JFID0gJyhbIFxcXFx0XSkqKFp8Wy0rXVswLTldWzAtOV0/KDpbMC05XVswLTldKT8pPyc7XG4gIGNvbnN0IFRJTUVTVEFNUCA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnXFxcXGInICsgREFURV9SRSArIFRJTUVfUkUgKyBGUkFDVElPTl9SRSArIFpPTkVfUkUgKyAnXFxcXGInXG4gIH07XG5cbiAgY29uc3QgVkFMVUVfQ09OVEFJTkVSID0ge1xuICAgIGVuZDogJywnLFxuICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IExJVEVSQUxTLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuICBjb25zdCBPQkpFQ1QgPSB7XG4gICAgYmVnaW46IC9cXHsvLFxuICAgIGVuZDogL1xcfS8sXG4gICAgY29udGFpbnM6IFsgVkFMVUVfQ09OVEFJTkVSIF0sXG4gICAgaWxsZWdhbDogJ1xcXFxuJyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgQVJSQVkgPSB7XG4gICAgYmVnaW46ICdcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbIFZBTFVFX0NPTlRBSU5FUiBdLFxuICAgIGlsbGVnYWw6ICdcXFxcbicsXG4gICAgcmVsZXZhbmNlOiAwXG4gIH07XG5cbiAgY29uc3QgTU9ERVMgPSBbXG4gICAgS0VZLFxuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgYmVnaW46ICdeLS0tXFxcXHMqJCcsXG4gICAgICByZWxldmFuY2U6IDEwXG4gICAgfSxcbiAgICB7IC8vIG11bHRpIGxpbmUgc3RyaW5nXG4gICAgICAvLyBCbG9ja3Mgc3RhcnQgd2l0aCBhIHwgb3IgPiBmb2xsb3dlZCBieSBhIG5ld2xpbmVcbiAgICAgIC8vXG4gICAgICAvLyBJbmRlbnRhdGlvbiBvZiBzdWJzZXF1ZW50IGxpbmVzIG11c3QgYmUgdGhlIHNhbWUgdG9cbiAgICAgIC8vIGJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgYmxvY2tcbiAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICBiZWdpbjogJ1tcXFxcfD5dKFsxLTldP1srLV0pP1sgXSpcXFxcbiggKylbXiBdW15cXFxcbl0qXFxcXG4oXFxcXDJbXlxcXFxuXStcXFxcbj8pKidcbiAgICB9LFxuICAgIHsgLy8gUnVieS9SYWlscyBlcmJcbiAgICAgIGJlZ2luOiAnPCVbJT0tXT8nLFxuICAgICAgZW5kOiAnWyUtXT8lPicsXG4gICAgICBzdWJMYW5ndWFnZTogJ3J1YnknLFxuICAgICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgIHJlbGV2YW5jZTogMFxuICAgIH0sXG4gICAgeyAvLyBuYW1lZCB0YWdzXG4gICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgIGJlZ2luOiAnIVxcXFx3KyEnICsgVVJJX0NIQVJBQ1RFUlNcbiAgICB9LFxuICAgIC8vIGh0dHBzOi8veWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjc4NDA2NFxuICAgIHsgLy8gdmVyYmF0aW0gdGFnc1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJyE8JyArIFVSSV9DSEFSQUNURVJTICsgXCI+XCJcbiAgICB9LFxuICAgIHsgLy8gcHJpbWFyeSB0YWdzXG4gICAgICBjbGFzc05hbWU6ICd0eXBlJyxcbiAgICAgIGJlZ2luOiAnIScgKyBVUklfQ0hBUkFDVEVSU1xuICAgIH0sXG4gICAgeyAvLyBzZWNvbmRhcnkgdGFnc1xuICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICBiZWdpbjogJyEhJyArIFVSSV9DSEFSQUNURVJTXG4gICAgfSxcbiAgICB7IC8vIGZyYWdtZW50IGlkICZyZWZcbiAgICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgICAgYmVnaW46ICcmJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICckJ1xuICAgIH0sXG4gICAgeyAvLyBmcmFnbWVudCByZWZlcmVuY2UgKnJlZlxuICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICBiZWdpbjogJ1xcXFwqJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArICckJ1xuICAgIH0sXG4gICAgeyAvLyBhcnJheSBsaXN0aW5nXG4gICAgICBjbGFzc05hbWU6ICdidWxsZXQnLFxuICAgICAgLy8gVE9ETzogcmVtb3ZlIHwkIGhhY2sgd2hlbiB3ZSBoYXZlIHByb3BlciBsb29rLWFoZWFkIHN1cHBvcnRcbiAgICAgIGJlZ2luOiAnLSg/PVsgXXwkKScsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIGhsanMuSEFTSF9DT01NRU5UX01PREUsXG4gICAge1xuICAgICAgYmVnaW5LZXl3b3JkczogTElURVJBTFMsXG4gICAgICBrZXl3b3JkczogeyBsaXRlcmFsOiBMSVRFUkFMUyB9XG4gICAgfSxcbiAgICBUSU1FU1RBTVAsXG4gICAgLy8gbnVtYmVycyBhcmUgYW55IHZhbGlkIEMtc3R5bGUgbnVtYmVyIHRoYXRcbiAgICAvLyBzaXQgaXNvbGF0ZWQgZnJvbSBvdGhlciB3b3Jkc1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICBiZWdpbjogaGxqcy5DX05VTUJFUl9SRSArICdcXFxcYicsXG4gICAgICByZWxldmFuY2U6IDBcbiAgICB9LFxuICAgIE9CSkVDVCxcbiAgICBBUlJBWSxcbiAgICBTVFJJTkdcbiAgXTtcblxuICBjb25zdCBWQUxVRV9NT0RFUyA9IFsgLi4uTU9ERVMgXTtcbiAgVkFMVUVfTU9ERVMucG9wKCk7XG4gIFZBTFVFX01PREVTLnB1c2goQ09OVEFJTkVSX1NUUklORyk7XG4gIFZBTFVFX0NPTlRBSU5FUi5jb250YWlucyA9IFZBTFVFX01PREVTO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1lBTUwnLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgYWxpYXNlczogWyAneW1sJyBdLFxuICAgIGNvbnRhaW5zOiBNT0RFU1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHlhbWw7XG4iLCAiLypcbkxhbmd1YWdlOiBUZXN0IEFueXRoaW5nIFByb3RvY29sXG5EZXNjcmlwdGlvbjogVEFQLCB0aGUgVGVzdCBBbnl0aGluZyBQcm90b2NvbCwgaXMgYSBzaW1wbGUgdGV4dC1iYXNlZCBpbnRlcmZhY2UgYmV0d2VlbiB0ZXN0aW5nIG1vZHVsZXMgaW4gYSB0ZXN0IGhhcm5lc3MuXG5SZXF1aXJlczogeWFtbC5qc1xuQXV0aG9yOiBTZXJnZXkgQnJvbm5pa292IDxzZXJnZXliQGJyb25ldmljaG9rLnJ1PlxuV2Vic2l0ZTogaHR0cHM6Ly90ZXN0YW55dGhpbmcub3JnXG4qL1xuXG5mdW5jdGlvbiB0YXAoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdUZXN0IEFueXRoaW5nIFByb3RvY29sJyxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiB0cnVlLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkhBU0hfQ09NTUVOVF9NT0RFLFxuICAgICAgLy8gdmVyc2lvbiBvZiBmb3JtYXQgYW5kIHRvdGFsIGFtb3VudCBvZiB0ZXN0Y2FzZXNcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15UQVAgdmVyc2lvbiAoXFxcXGQrKSQnIH0sXG4gICAgICAgICAgeyBiZWdpbjogJ14xXFxcXC5cXFxcLihcXFxcZCspJCcgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gWUFNTCBibG9ja1xuICAgICAge1xuICAgICAgICBiZWdpbjogLy0tLSQvLFxuICAgICAgICBlbmQ6ICdcXFxcLlxcXFwuXFxcXC4kJyxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6ICd5YW1sJyxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgLy8gdGVzdGNhc2UgbnVtYmVyXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIGJlZ2luOiAnIChcXFxcZCspICdcbiAgICAgIH0sXG4gICAgICAvLyB0ZXN0Y2FzZSBzdGF0dXMgYW5kIGRlc2NyaXB0aW9uXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N5bWJvbCcsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgeyBiZWdpbjogJ15vaycgfSxcbiAgICAgICAgICB7IGJlZ2luOiAnXm5vdCBvaycgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRhcDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFRjbFxuRGVzY3JpcHRpb246IFRjbCBpcyBhIHZlcnkgc2ltcGxlIHByb2dyYW1taW5nIGxhbmd1YWdlLlxuQXV0aG9yOiBSYWRlayBMaXNrYSA8cmFkZWtsaXNrYUBnbWFpbC5jb20+XG5XZWJzaXRlOiBodHRwczovL3d3dy50Y2wudGsvYWJvdXQvbGFuZ3VhZ2UuaHRtbFxuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gdGNsKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBUQ0xfSURFTlQgPSAvW2EtekEtWl9dW2EtekEtWjAtOV9dKi87XG5cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIGhsanMuQklOQVJZX05VTUJFUl9NT0RFLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYWZ0ZXJcIixcbiAgICBcImFwcGVuZFwiLFxuICAgIFwiYXBwbHlcIixcbiAgICBcImFycmF5XCIsXG4gICAgXCJhdXRvX2V4ZWNva1wiLFxuICAgIFwiYXV0b19pbXBvcnRcIixcbiAgICBcImF1dG9fbG9hZFwiLFxuICAgIFwiYXV0b19ta2luZGV4XCIsXG4gICAgXCJhdXRvX21raW5kZXhfb2xkXCIsXG4gICAgXCJhdXRvX3F1YWxpZnlcIixcbiAgICBcImF1dG9fcmVzZXRcIixcbiAgICBcImJnZXJyb3JcIixcbiAgICBcImJpbmFyeVwiLFxuICAgIFwiYnJlYWtcIixcbiAgICBcImNhdGNoXCIsXG4gICAgXCJjZFwiLFxuICAgIFwiY2hhblwiLFxuICAgIFwiY2xvY2tcIixcbiAgICBcImNsb3NlXCIsXG4gICAgXCJjb25jYXRcIixcbiAgICBcImNvbnRpbnVlXCIsXG4gICAgXCJkZGVcIixcbiAgICBcImRpY3RcIixcbiAgICBcImVuY29kaW5nXCIsXG4gICAgXCJlb2ZcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJldmFsXCIsXG4gICAgXCJleGVjXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJleHByXCIsXG4gICAgXCJmYmxvY2tlZFwiLFxuICAgIFwiZmNvbmZpZ3VyZVwiLFxuICAgIFwiZmNvcHlcIixcbiAgICBcImZpbGVcIixcbiAgICBcImZpbGVldmVudFwiLFxuICAgIFwiZmlsZW5hbWVcIixcbiAgICBcImZsdXNoXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcmVhY2hcIixcbiAgICBcImZvcm1hdFwiLFxuICAgIFwiZ2V0c1wiLFxuICAgIFwiZ2xvYlwiLFxuICAgIFwiZ2xvYmFsXCIsXG4gICAgXCJoaXN0b3J5XCIsXG4gICAgXCJodHRwXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW5jclwiLFxuICAgIFwiaW5mb1wiLFxuICAgIFwiaW50ZXJwXCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJsYXBwZW5kfDEwXCIsXG4gICAgXCJsYXNzaWdufDEwXCIsXG4gICAgXCJsaW5kZXh8MTBcIixcbiAgICBcImxpbnNlcnR8MTBcIixcbiAgICBcImxpc3RcIixcbiAgICBcImxsZW5ndGh8MTBcIixcbiAgICBcImxvYWRcIixcbiAgICBcImxyYW5nZXwxMFwiLFxuICAgIFwibHJlcGVhdHwxMFwiLFxuICAgIFwibHJlcGxhY2V8MTBcIixcbiAgICBcImxyZXZlcnNlfDEwXCIsXG4gICAgXCJsc2VhcmNofDEwXCIsXG4gICAgXCJsc2V0fDEwXCIsXG4gICAgXCJsc29ydHwxMFwiLFxuICAgIFwibWF0aGZ1bmNcIixcbiAgICBcIm1hdGhvcFwiLFxuICAgIFwibWVtb3J5XCIsXG4gICAgXCJtc2djYXRcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwib3BlblwiLFxuICAgIFwicGFja2FnZVwiLFxuICAgIFwicGFycmF5XCIsXG4gICAgXCJwaWRcIixcbiAgICBcInBrZzo6Y3JlYXRlXCIsXG4gICAgXCJwa2dfbWtJbmRleFwiLFxuICAgIFwicGxhdGZvcm1cIixcbiAgICBcInBsYXRmb3JtOjpzaGVsbFwiLFxuICAgIFwicHJvY1wiLFxuICAgIFwicHV0c1wiLFxuICAgIFwicHdkXCIsXG4gICAgXCJyZWFkXCIsXG4gICAgXCJyZWZjaGFuXCIsXG4gICAgXCJyZWdleHBcIixcbiAgICBcInJlZ2lzdHJ5XCIsXG4gICAgXCJyZWdzdWJ8MTBcIixcbiAgICBcInJlbmFtZVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzYWZlXCIsXG4gICAgXCJzY2FuXCIsXG4gICAgXCJzZWVrXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInNvY2tldFwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJzdWJzdFwiLFxuICAgIFwic3dpdGNoXCIsXG4gICAgXCJ0Y2xfZW5kT2ZXb3JkXCIsXG4gICAgXCJ0Y2xfZmluZExpYnJhcnlcIixcbiAgICBcInRjbF9zdGFydE9mTmV4dFdvcmRcIixcbiAgICBcInRjbF9zdGFydE9mUHJldmlvdXNXb3JkXCIsXG4gICAgXCJ0Y2xfd29yZEJyZWFrQWZ0ZXJcIixcbiAgICBcInRjbF93b3JkQnJlYWtCZWZvcmVcIixcbiAgICBcInRjbHRlc3RcIixcbiAgICBcInRjbHZhcnNcIixcbiAgICBcInRlbGxcIixcbiAgICBcInRpbWVcIixcbiAgICBcInRtXCIsXG4gICAgXCJ0cmFjZVwiLFxuICAgIFwidW5rbm93blwiLFxuICAgIFwidW5sb2FkXCIsXG4gICAgXCJ1bnNldFwiLFxuICAgIFwidXBkYXRlXCIsXG4gICAgXCJ1cGxldmVsXCIsXG4gICAgXCJ1cHZhclwiLFxuICAgIFwidmFyaWFibGVcIixcbiAgICBcInZ3YWl0XCIsXG4gICAgXCJ3aGlsZVwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVGNsJyxcbiAgICBhbGlhc2VzOiBbICd0aycgXSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVCgnO1sgXFxcXHRdKiMnLCAnJCcpLFxuICAgICAgaGxqcy5DT01NRU5UKCdeWyBcXFxcdF0qIycsICckJyksXG4gICAgICB7XG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdwcm9jJyxcbiAgICAgICAgZW5kOiAnW1xcXFx7XScsXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgYmVnaW46ICdbIFxcXFx0XFxcXG5cXFxccl0rKDo6KT9bYS16QS1aX10oKDo6KT9bYS16QS1aMC05X10pKicsXG4gICAgICAgICAgICBlbmQ6ICdbIFxcXFx0XFxcXG5cXFxccl0nLFxuICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgICAvXFwkLyxcbiAgICAgICAgICAgIHJlZ2V4Lm9wdGlvbmFsKC86Oi8pLFxuICAgICAgICAgICAgVENMX0lERU5ULFxuICAgICAgICAgICAgJyg6OicsXG4gICAgICAgICAgICBUQ0xfSURFTlQsXG4gICAgICAgICAgICAnKSonXG4gICAgICAgICAgKSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCRcXFxceyg6Oik/W2EtekEtWl9dKCg6Oik/W2EtekEtWjAtOV9dKSonLFxuICAgICAgICAgICAgZW5kOiAnXFxcXH0nLFxuICAgICAgICAgICAgY29udGFpbnM6IFsgTlVNQkVSIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgICAgICB2YXJpYW50czogWyBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pIF1cbiAgICAgIH0sXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGNsO1xuIiwgIi8qXG5MYW5ndWFnZTogVGhyaWZ0XG5BdXRob3I6IE9sZWcgRWZpbW92IDxlZmltb3ZvdkBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVGhyaWZ0IG1lc3NhZ2UgZGVmaW5pdGlvbiBmb3JtYXRcbldlYnNpdGU6IGh0dHBzOi8vdGhyaWZ0LmFwYWNoZS5vcmdcbkNhdGVnb3J5OiBwcm90b2NvbHNcbiovXG5cbmZ1bmN0aW9uIHRocmlmdChobGpzKSB7XG4gIGNvbnN0IFRZUEVTID0gW1xuICAgIFwiYm9vbFwiLFxuICAgIFwiYnl0ZVwiLFxuICAgIFwiaTE2XCIsXG4gICAgXCJpMzJcIixcbiAgICBcImk2NFwiLFxuICAgIFwiZG91YmxlXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcImJpbmFyeVwiXG4gIF07XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwibmFtZXNwYWNlXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwidHlwZWRlZlwiLFxuICAgIFwic3RydWN0XCIsXG4gICAgXCJlbnVtXCIsXG4gICAgXCJzZXJ2aWNlXCIsXG4gICAgXCJleGNlcHRpb25cIixcbiAgICBcInZvaWRcIixcbiAgICBcIm9uZXdheVwiLFxuICAgIFwic2V0XCIsXG4gICAgXCJsaXN0XCIsXG4gICAgXCJtYXBcIixcbiAgICBcInJlcXVpcmVkXCIsXG4gICAgXCJvcHRpb25hbFwiXG4gIF07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1RocmlmdCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgdHlwZTogVFlQRVMsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSdcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ3N0cnVjdCBlbnVtIHNlcnZpY2UgZXhjZXB0aW9uJyxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgaWxsZWdhbDogL1xcbi8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgaGxqcy5pbmhlcml0KGhsanMuVElUTEVfTU9ERSwge1xuICAgICAgICAgICAgLy8gaGFjazogZWF0aW5nIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHRpdGxlXG4gICAgICAgICAgICBzdGFydHM6IHtcbiAgICAgICAgICAgICAgZW5kc1dpdGhQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgICAgICAgIH0gfSlcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICdcXFxcYihzZXR8bGlzdHxtYXApXFxcXHMqPCcsXG4gICAgICAgIGtleXdvcmRzOiB7IHR5cGU6IFtcbiAgICAgICAgICAuLi5UWVBFUyxcbiAgICAgICAgICBcInNldFwiLFxuICAgICAgICAgIFwibGlzdFwiLFxuICAgICAgICAgIFwibWFwXCJcbiAgICAgICAgXSB9LFxuICAgICAgICBlbmQ6ICc+JyxcbiAgICAgICAgY29udGFpbnM6IFsgJ3NlbGYnIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdGhyaWZ0O1xuIiwgIi8qXG5MYW5ndWFnZTogVFBcbkF1dGhvcjogSmF5IFN0cnliaXMgPGpheS5zdHJ5YmlzQGdtYWlsLmNvbT5cbkRlc2NyaXB0aW9uOiBGQU5VQyBUUCBwcm9ncmFtbWluZyBsYW5ndWFnZSAoVFBQKS5cbkNhdGVnb3J5OiBoYXJkd2FyZVxuKi9cblxuZnVuY3Rpb24gdHAoaGxqcykge1xuICBjb25zdCBUUElEID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46ICdbMS05XVswLTldKicsIC8qIG5vIGxlYWRpbmcgemVyb3MgKi9cbiAgICByZWxldmFuY2U6IDBcbiAgfTtcbiAgY29uc3QgVFBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgIGJlZ2luOiAnOlteXFxcXF1dKydcbiAgfTtcbiAgY29uc3QgVFBEQVRBID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICBiZWdpbjogJyhBUnxQfFBBWUxPQUR8UFJ8UnxTUnxSU1J8TEJMfFZSfFVBTE18TUVTU0FHRXxVVE9PTHxVRlJBTUV8VElNRVJ8J1xuICAgICsgJ1RJTUVSX09WRVJGTE9XfEpPSU5UX01BWF9TUEVFRHxSRVNVTUVfUFJPR3xESUFHX1JFQylcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBUUElELFxuICAgICAgVFBMQUJFTFxuICAgIF1cbiAgfTtcbiAgY29uc3QgVFBJTyA9IHtcbiAgICBjbGFzc05hbWU6ICdidWlsdF9pbicsXG4gICAgYmVnaW46ICcoQUl8QU98REl8RE98RnxSSXxST3xVSXxVT3xHSXxHT3xTSXxTTylcXFxcWycsXG4gICAgZW5kOiAnXFxcXF0nLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICAnc2VsZicsXG4gICAgICBUUElELFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgLyogZm9yIHBvcyBzZWN0aW9uIGF0IGJvdHRvbSAqL1xuICAgICAgVFBMQUJFTFxuICAgIF1cbiAgfTtcblxuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcIkFCT1JUXCIsXG4gICAgXCJBQ0NcIixcbiAgICBcIkFESlVTVFwiLFxuICAgIFwiQU5EXCIsXG4gICAgXCJBUF9MRFwiLFxuICAgIFwiQlJFQUtcIixcbiAgICBcIkNBTExcIixcbiAgICBcIkNOVFwiLFxuICAgIFwiQ09MXCIsXG4gICAgXCJDT05ESVRJT05cIixcbiAgICBcIkNPTkZJR1wiLFxuICAgIFwiREFcIixcbiAgICBcIkRCXCIsXG4gICAgXCJESVZcIixcbiAgICBcIkRFVEVDVFwiLFxuICAgIFwiRUxTRVwiLFxuICAgIFwiRU5EXCIsXG4gICAgXCJFTkRGT1JcIixcbiAgICBcIkVSUl9OVU1cIixcbiAgICBcIkVSUk9SX1BST0dcIixcbiAgICBcIkZJTkVcIixcbiAgICBcIkZPUlwiLFxuICAgIFwiR1BcIixcbiAgICBcIkdVQVJEXCIsXG4gICAgXCJJTkNcIixcbiAgICBcIklGXCIsXG4gICAgXCJKTVBcIixcbiAgICBcIkxJTkVBUl9NQVhfU1BFRURcIixcbiAgICBcIkxPQ0tcIixcbiAgICBcIk1PRFwiLFxuICAgIFwiTU9OSVRPUlwiLFxuICAgIFwiT0ZGU0VUXCIsXG4gICAgXCJPZmZzZXRcIixcbiAgICBcIk9SXCIsXG4gICAgXCJPVkVSUklERVwiLFxuICAgIFwiUEFVU0VcIixcbiAgICBcIlBSRUdcIixcbiAgICBcIlBUSFwiLFxuICAgIFwiUlRfTERcIixcbiAgICBcIlJVTlwiLFxuICAgIFwiU0VMRUNUXCIsXG4gICAgXCJTS0lQXCIsXG4gICAgXCJTa2lwXCIsXG4gICAgXCJUQVwiLFxuICAgIFwiVEJcIixcbiAgICBcIlRPXCIsXG4gICAgXCJUT09MX09GRlNFVFwiLFxuICAgIFwiVG9vbF9PZmZzZXRcIixcbiAgICBcIlVGXCIsXG4gICAgXCJVVFwiLFxuICAgIFwiVUZSQU1FX05VTVwiLFxuICAgIFwiVVRPT0xfTlVNXCIsXG4gICAgXCJVTkxPQ0tcIixcbiAgICBcIldBSVRcIixcbiAgICBcIlhcIixcbiAgICBcIllcIixcbiAgICBcIlpcIixcbiAgICBcIldcIixcbiAgICBcIlBcIixcbiAgICBcIlJcIixcbiAgICBcIlNUUkxFTlwiLFxuICAgIFwiU1VCU1RSXCIsXG4gICAgXCJGSU5EU1RSXCIsXG4gICAgXCJWT0ZGU0VUXCIsXG4gICAgXCJQUk9HXCIsXG4gICAgXCJBVFRSXCIsXG4gICAgXCJNTlwiLFxuICAgIFwiUE9TXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJPTlwiLFxuICAgIFwiT0ZGXCIsXG4gICAgXCJtYXhfc3BlZWRcIixcbiAgICBcIkxQT1NcIixcbiAgICBcIkpQT1NcIixcbiAgICBcIkVOQUJMRVwiLFxuICAgIFwiRElTQUJMRVwiLFxuICAgIFwiU1RBUlRcIixcbiAgICBcIlNUT1BcIixcbiAgICBcIlJFU0VUXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdUUCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBUUERBVEEsXG4gICAgICBUUElPLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcvKFBST0d8QVRUUnxNTnxQT1N8RU5EKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLyogdGhpcyBpcyBmb3IgY2FzZXMgbGlrZSAsQ0FMTCAqL1xuICAgICAgICBjbGFzc05hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgYmVnaW46ICcoQ0FMTHxSVU58UE9JTlRfTE9HSUN8TEJMKVxcXFxiJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLyogdGhpcyBpcyBmb3IgY2FzZXMgbGlrZSBDTlQxMDAgd2hlcmUgdGhlIGRlZmF1bHQgbGV4ZW1lcyBkbyBub3RcbiAgICAgICAgICogc2VwYXJhdGUgdGhlIGtleXdvcmQgYW5kIHRoZSBudW1iZXIgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAna2V5d29yZCcsXG4gICAgICAgIGJlZ2luOiAnXFxcXGIoQUNDfENOVHxTa2lwfE9mZnNldHxQU1BEfFJUX0xEfEFQX0xEfFRvb2xfT2Zmc2V0KSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8qIHRvIGNhdGNoIG51bWJlcnMgdGhhdCBkbyBub3QgaGF2ZSBhIHdvcmQgYm91bmRhcnkgb24gdGhlIGxlZnQgKi9cbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46ICdcXFxcZCsoc2VjfG1zZWN8bW0vc2VjfGNtL21pbnxpbmNoL21pbnxkZWcvc2VjfG1tfGlufGNtKT9cXFxcYicsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLy8nLCAnWzskXScpLFxuICAgICAgaGxqcy5DT01NRU5UKCchJywgJ1s7JF0nKSxcbiAgICAgIGhsanMuQ09NTUVOVCgnLS1lZzonLCAnJCcpLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnXG4gICAgICB9LFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAnXFxcXCRbQS1aYS16MC05X10rJ1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0cDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFR3aWdcblJlcXVpcmVzOiB4bWwuanNcbkF1dGhvcjogTHVrZSBIb2xkZXIgPGx1a2VtaEBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVHdpZyBpcyBhIHRlbXBsYXRpbmcgbGFuZ3VhZ2UgZm9yIFBIUFxuV2Vic2l0ZTogaHR0cHM6Ly90d2lnLnN5bWZvbnkuY29tXG5DYXRlZ29yeTogdGVtcGxhdGVcbiovXG5cbmZ1bmN0aW9uIHR3aWcoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEZVTkNUSU9OX05BTUVTID0gW1xuICAgIFwiYWJzb2x1dGVfdXJsXCIsXG4gICAgXCJhc3NldHwwXCIsXG4gICAgXCJhc3NldF92ZXJzaW9uXCIsXG4gICAgXCJhdHRyaWJ1dGVcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJjb25zdGFudFwiLFxuICAgIFwiY29udHJvbGxlcnwwXCIsXG4gICAgXCJjb3VudHJ5X3RpbWV6b25lc1wiLFxuICAgIFwiY3NyZl90b2tlblwiLFxuICAgIFwiY3ljbGVcIixcbiAgICBcImRhdGVcIixcbiAgICBcImR1bXBcIixcbiAgICBcImV4cHJlc3Npb25cIixcbiAgICBcImZvcm18MFwiLFxuICAgIFwiZm9ybV9lbmRcIixcbiAgICBcImZvcm1fZXJyb3JzXCIsXG4gICAgXCJmb3JtX2hlbHBcIixcbiAgICBcImZvcm1fbGFiZWxcIixcbiAgICBcImZvcm1fcmVzdFwiLFxuICAgIFwiZm9ybV9yb3dcIixcbiAgICBcImZvcm1fc3RhcnRcIixcbiAgICBcImZvcm1fd2lkZ2V0XCIsXG4gICAgXCJodG1sX2NsYXNzZXNcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImlzX2dyYW50ZWRcIixcbiAgICBcImxvZ291dF9wYXRoXCIsXG4gICAgXCJsb2dvdXRfdXJsXCIsXG4gICAgXCJtYXhcIixcbiAgICBcIm1pblwiLFxuICAgIFwicGFyZW50XCIsXG4gICAgXCJwYXRofDBcIixcbiAgICBcInJhbmRvbVwiLFxuICAgIFwicmFuZ2VcIixcbiAgICBcInJlbGF0aXZlX3BhdGhcIixcbiAgICBcInJlbmRlclwiLFxuICAgIFwicmVuZGVyX2VzaVwiLFxuICAgIFwic291cmNlXCIsXG4gICAgXCJ0ZW1wbGF0ZV9mcm9tX3N0cmluZ1wiLFxuICAgIFwidXJsfDBcIlxuICBdO1xuXG4gIGNvbnN0IEZJTFRFUlMgPSBbXG4gICAgXCJhYnNcIixcbiAgICBcImFiYnJfY2xhc3NcIixcbiAgICBcImFiYnJfbWV0aG9kXCIsXG4gICAgXCJiYXRjaFwiLFxuICAgIFwiY2FwaXRhbGl6ZVwiLFxuICAgIFwiY29sdW1uXCIsXG4gICAgXCJjb252ZXJ0X2VuY29kaW5nXCIsXG4gICAgXCJjb3VudHJ5X25hbWVcIixcbiAgICBcImN1cnJlbmN5X25hbWVcIixcbiAgICBcImN1cnJlbmN5X3N5bWJvbFwiLFxuICAgIFwiZGF0YV91cmlcIixcbiAgICBcImRhdGVcIixcbiAgICBcImRhdGVfbW9kaWZ5XCIsXG4gICAgXCJkZWZhdWx0XCIsXG4gICAgXCJlc2NhcGVcIixcbiAgICBcImZpbGVfZXhjZXJwdFwiLFxuICAgIFwiZmlsZV9saW5rXCIsXG4gICAgXCJmaWxlX3JlbGF0aXZlXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZpcnN0XCIsXG4gICAgXCJmb3JtYXRcIixcbiAgICBcImZvcm1hdF9hcmdzXCIsXG4gICAgXCJmb3JtYXRfYXJnc19hc190ZXh0XCIsXG4gICAgXCJmb3JtYXRfY3VycmVuY3lcIixcbiAgICBcImZvcm1hdF9kYXRlXCIsXG4gICAgXCJmb3JtYXRfZGF0ZXRpbWVcIixcbiAgICBcImZvcm1hdF9maWxlXCIsXG4gICAgXCJmb3JtYXRfZmlsZV9mcm9tX3RleHRcIixcbiAgICBcImZvcm1hdF9udW1iZXJcIixcbiAgICBcImZvcm1hdF90aW1lXCIsXG4gICAgXCJodG1sX3RvX21hcmtkb3duXCIsXG4gICAgXCJodW1hbml6ZVwiLFxuICAgIFwiaW5reV90b19odG1sXCIsXG4gICAgXCJpbmxpbmVfY3NzXCIsXG4gICAgXCJqb2luXCIsXG4gICAgXCJqc29uX2VuY29kZVwiLFxuICAgIFwia2V5c1wiLFxuICAgIFwibGFuZ3VhZ2VfbmFtZVwiLFxuICAgIFwibGFzdFwiLFxuICAgIFwibGVuZ3RoXCIsXG4gICAgXCJsb2NhbGVfbmFtZVwiLFxuICAgIFwibG93ZXJcIixcbiAgICBcIm1hcFwiLFxuICAgIFwibWFya2Rvd25cIixcbiAgICBcIm1hcmtkb3duX3RvX2h0bWxcIixcbiAgICBcIm1lcmdlXCIsXG4gICAgXCJubDJiclwiLFxuICAgIFwibnVtYmVyX2Zvcm1hdFwiLFxuICAgIFwicmF3XCIsXG4gICAgXCJyZWR1Y2VcIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInJldmVyc2VcIixcbiAgICBcInJvdW5kXCIsXG4gICAgXCJzbGljZVwiLFxuICAgIFwic2x1Z1wiLFxuICAgIFwic29ydFwiLFxuICAgIFwic3BhY2VsZXNzXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwic3RyaXB0YWdzXCIsXG4gICAgXCJ0aW1lem9uZV9uYW1lXCIsXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyYW5zY2hvaWNlXCIsXG4gICAgXCJ0cmltXCIsXG4gICAgXCJ1fDBcIixcbiAgICBcInVwcGVyXCIsXG4gICAgXCJ1cmxfZW5jb2RlXCIsXG4gICAgXCJ5YW1sX2R1bXBcIixcbiAgICBcInlhbWxfZW5jb2RlXCJcbiAgXTtcblxuICBsZXQgVEFHX05BTUVTID0gW1xuICAgIFwiYXBwbHlcIixcbiAgICBcImF1dG9lc2NhcGVcIixcbiAgICBcImJsb2NrXCIsXG4gICAgXCJjYWNoZVwiLFxuICAgIFwiZGVwcmVjYXRlZFwiLFxuICAgIFwiZG9cIixcbiAgICBcImVtYmVkXCIsXG4gICAgXCJleHRlbmRzXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcImZsdXNoXCIsXG4gICAgXCJmb3JcIixcbiAgICBcImZvcm1fdGhlbWVcIixcbiAgICBcImZyb21cIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcIm1hY3JvXCIsXG4gICAgXCJzYW5kYm94XCIsXG4gICAgXCJzZXRcIixcbiAgICBcInN0b3B3YXRjaFwiLFxuICAgIFwidHJhbnNcIixcbiAgICBcInRyYW5zX2RlZmF1bHRfZG9tYWluXCIsXG4gICAgXCJ0cmFuc2Nob2ljZVwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2ZXJiYXRpbVwiLFxuICAgIFwid2l0aFwiXG4gIF07XG5cbiAgVEFHX05BTUVTID0gVEFHX05BTUVTLmNvbmNhdChUQUdfTkFNRVMubWFwKHQgPT4gYGVuZCR7dH1gKSk7XG5cbiAgY29uc3QgU1RSSU5HID0ge1xuICAgIHNjb3BlOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogLycvLFxuICAgICAgICBlbmQ6IC8nL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cIi8sXG4gICAgICAgIGVuZDogL1wiL1xuICAgICAgfSxcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIHNjb3BlOiBcIm51bWJlclwiLFxuICAgIG1hdGNoOiAvXFxkKy9cbiAgfTtcblxuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgYmVnaW46IC9cXCgvLFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFNUUklORyxcbiAgICAgIE5VTUJFUlxuICAgIF1cbiAgfTtcblxuXG4gIGNvbnN0IEZVTkNUSU9OUyA9IHtcbiAgICBiZWdpbktleXdvcmRzOiBGVU5DVElPTl9OQU1FUy5qb2luKFwiIFwiKSxcbiAgICBrZXl3b3JkczogeyBuYW1lOiBGVU5DVElPTl9OQU1FUyB9LFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICBjb250YWluczogWyBQQVJBTVMgXVxuICB9O1xuXG4gIGNvbnN0IEZJTFRFUiA9IHtcbiAgICBtYXRjaDogL1xcfCg/PVtBLVphLXpfXSs6PykvLFxuICAgIGJlZ2luU2NvcGU6IFwicHVuY3R1YXRpb25cIixcbiAgICByZWxldmFuY2U6IDAsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9bQS1aYS16X10rOj8vLFxuICAgICAgICBrZXl3b3JkczogRklMVEVSU1xuICAgICAgfSxcbiAgICBdXG4gIH07XG5cbiAgY29uc3QgdGFnTmFtZWQgPSAodGFnbmFtZXMsIHsgcmVsZXZhbmNlIH0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgYmVnaW5TY29wZToge1xuICAgICAgICAxOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgICAgMzogJ25hbWUnXG4gICAgICB9LFxuICAgICAgcmVsZXZhbmNlOiByZWxldmFuY2UgfHwgMixcbiAgICAgIGVuZFNjb3BlOiAndGVtcGxhdGUtdGFnJyxcbiAgICAgIGJlZ2luOiBbXG4gICAgICAgIC9cXHslLyxcbiAgICAgICAgL1xccyovLFxuICAgICAgICByZWdleC5laXRoZXIoLi4udGFnbmFtZXMpXG4gICAgICBdLFxuICAgICAgZW5kOiAvJVxcfS8sXG4gICAgICBrZXl3b3JkczogXCJpblwiLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgRklMVEVSLFxuICAgICAgICBGVU5DVElPTlMsXG4gICAgICAgIFNUUklORyxcbiAgICAgICAgTlVNQkVSXG4gICAgICBdXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBDVVNUT01fVEFHX1JFID0gL1thLXpfXSsvO1xuICBjb25zdCBUQUcgPSB0YWdOYW1lZChUQUdfTkFNRVMsIHsgcmVsZXZhbmNlOiAyIH0pO1xuICBjb25zdCBDVVNUT01fVEFHID0gdGFnTmFtZWQoWyBDVVNUT01fVEFHX1JFIF0sIHsgcmVsZXZhbmNlOiAxIH0pO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1R3aWcnLFxuICAgIGFsaWFzZXM6IFsgJ2NyYWZ0Y21zJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNPTU1FTlQoL1xceyMvLCAvI1xcfS8pLFxuICAgICAgVEFHLFxuICAgICAgQ1VTVE9NX1RBRyxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAndGVtcGxhdGUtdmFyaWFibGUnLFxuICAgICAgICBiZWdpbjogL1xce1xcey8sXG4gICAgICAgIGVuZDogL1xcfVxcfS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgJ3NlbGYnLFxuICAgICAgICAgIEZJTFRFUixcbiAgICAgICAgICBGVU5DVElPTlMsXG4gICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgIE5VTUJFUlxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHR3aWc7XG4iLCAiY29uc3QgSURFTlRfUkUgPSAnW0EtWmEteiRfXVswLTlBLVphLXokX10qJztcbmNvbnN0IEtFWVdPUkRTID0gW1xuICBcImFzXCIsIC8vIGZvciBleHBvcnRzXG4gIFwiaW5cIixcbiAgXCJvZlwiLFxuICBcImlmXCIsXG4gIFwiZm9yXCIsXG4gIFwid2hpbGVcIixcbiAgXCJmaW5hbGx5XCIsXG4gIFwidmFyXCIsXG4gIFwibmV3XCIsXG4gIFwiZnVuY3Rpb25cIixcbiAgXCJkb1wiLFxuICBcInJldHVyblwiLFxuICBcInZvaWRcIixcbiAgXCJlbHNlXCIsXG4gIFwiYnJlYWtcIixcbiAgXCJjYXRjaFwiLFxuICBcImluc3RhbmNlb2ZcIixcbiAgXCJ3aXRoXCIsXG4gIFwidGhyb3dcIixcbiAgXCJjYXNlXCIsXG4gIFwiZGVmYXVsdFwiLFxuICBcInRyeVwiLFxuICBcInN3aXRjaFwiLFxuICBcImNvbnRpbnVlXCIsXG4gIFwidHlwZW9mXCIsXG4gIFwiZGVsZXRlXCIsXG4gIFwibGV0XCIsXG4gIFwieWllbGRcIixcbiAgXCJjb25zdFwiLFxuICBcImNsYXNzXCIsXG4gIC8vIEpTIGhhbmRsZXMgdGhlc2Ugd2l0aCBhIHNwZWNpYWwgcnVsZVxuICAvLyBcImdldFwiLFxuICAvLyBcInNldFwiLFxuICBcImRlYnVnZ2VyXCIsXG4gIFwiYXN5bmNcIixcbiAgXCJhd2FpdFwiLFxuICBcInN0YXRpY1wiLFxuICBcImltcG9ydFwiLFxuICBcImZyb21cIixcbiAgXCJleHBvcnRcIixcbiAgXCJleHRlbmRzXCJcbl07XG5jb25zdCBMSVRFUkFMUyA9IFtcbiAgXCJ0cnVlXCIsXG4gIFwiZmFsc2VcIixcbiAgXCJudWxsXCIsXG4gIFwidW5kZWZpbmVkXCIsXG4gIFwiTmFOXCIsXG4gIFwiSW5maW5pdHlcIlxuXTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHNcbmNvbnN0IFRZUEVTID0gW1xuICAvLyBGdW5kYW1lbnRhbCBvYmplY3RzXG4gIFwiT2JqZWN0XCIsXG4gIFwiRnVuY3Rpb25cIixcbiAgXCJCb29sZWFuXCIsXG4gIFwiU3ltYm9sXCIsXG4gIC8vIG51bWJlcnMgYW5kIGRhdGVzXG4gIFwiTWF0aFwiLFxuICBcIkRhdGVcIixcbiAgXCJOdW1iZXJcIixcbiAgXCJCaWdJbnRcIixcbiAgLy8gdGV4dFxuICBcIlN0cmluZ1wiLFxuICBcIlJlZ0V4cFwiLFxuICAvLyBJbmRleGVkIGNvbGxlY3Rpb25zXG4gIFwiQXJyYXlcIixcbiAgXCJGbG9hdDMyQXJyYXlcIixcbiAgXCJGbG9hdDY0QXJyYXlcIixcbiAgXCJJbnQ4QXJyYXlcIixcbiAgXCJVaW50OEFycmF5XCIsXG4gIFwiVWludDhDbGFtcGVkQXJyYXlcIixcbiAgXCJJbnQxNkFycmF5XCIsXG4gIFwiSW50MzJBcnJheVwiLFxuICBcIlVpbnQxNkFycmF5XCIsXG4gIFwiVWludDMyQXJyYXlcIixcbiAgXCJCaWdJbnQ2NEFycmF5XCIsXG4gIFwiQmlnVWludDY0QXJyYXlcIixcbiAgLy8gS2V5ZWQgY29sbGVjdGlvbnNcbiAgXCJTZXRcIixcbiAgXCJNYXBcIixcbiAgXCJXZWFrU2V0XCIsXG4gIFwiV2Vha01hcFwiLFxuICAvLyBTdHJ1Y3R1cmVkIGRhdGFcbiAgXCJBcnJheUJ1ZmZlclwiLFxuICBcIlNoYXJlZEFycmF5QnVmZmVyXCIsXG4gIFwiQXRvbWljc1wiLFxuICBcIkRhdGFWaWV3XCIsXG4gIFwiSlNPTlwiLFxuICAvLyBDb250cm9sIGFic3RyYWN0aW9uIG9iamVjdHNcbiAgXCJQcm9taXNlXCIsXG4gIFwiR2VuZXJhdG9yXCIsXG4gIFwiR2VuZXJhdG9yRnVuY3Rpb25cIixcbiAgXCJBc3luY0Z1bmN0aW9uXCIsXG4gIC8vIFJlZmxlY3Rpb25cbiAgXCJSZWZsZWN0XCIsXG4gIFwiUHJveHlcIixcbiAgLy8gSW50ZXJuYXRpb25hbGl6YXRpb25cbiAgXCJJbnRsXCIsXG4gIC8vIFdlYkFzc2VtYmx5XG4gIFwiV2ViQXNzZW1ibHlcIlxuXTtcblxuY29uc3QgRVJST1JfVFlQRVMgPSBbXG4gIFwiRXJyb3JcIixcbiAgXCJFdmFsRXJyb3JcIixcbiAgXCJJbnRlcm5hbEVycm9yXCIsXG4gIFwiUmFuZ2VFcnJvclwiLFxuICBcIlJlZmVyZW5jZUVycm9yXCIsXG4gIFwiU3ludGF4RXJyb3JcIixcbiAgXCJUeXBlRXJyb3JcIixcbiAgXCJVUklFcnJvclwiXG5dO1xuXG5jb25zdCBCVUlMVF9JTl9HTE9CQUxTID0gW1xuICBcInNldEludGVydmFsXCIsXG4gIFwic2V0VGltZW91dFwiLFxuICBcImNsZWFySW50ZXJ2YWxcIixcbiAgXCJjbGVhclRpbWVvdXRcIixcblxuICBcInJlcXVpcmVcIixcbiAgXCJleHBvcnRzXCIsXG5cbiAgXCJldmFsXCIsXG4gIFwiaXNGaW5pdGVcIixcbiAgXCJpc05hTlwiLFxuICBcInBhcnNlRmxvYXRcIixcbiAgXCJwYXJzZUludFwiLFxuICBcImRlY29kZVVSSVwiLFxuICBcImRlY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVuY29kZVVSSVwiLFxuICBcImVuY29kZVVSSUNvbXBvbmVudFwiLFxuICBcImVzY2FwZVwiLFxuICBcInVuZXNjYXBlXCJcbl07XG5cbmNvbnN0IEJVSUxUX0lOX1ZBUklBQkxFUyA9IFtcbiAgXCJhcmd1bWVudHNcIixcbiAgXCJ0aGlzXCIsXG4gIFwic3VwZXJcIixcbiAgXCJjb25zb2xlXCIsXG4gIFwid2luZG93XCIsXG4gIFwiZG9jdW1lbnRcIixcbiAgXCJsb2NhbFN0b3JhZ2VcIixcbiAgXCJzZXNzaW9uU3RvcmFnZVwiLFxuICBcIm1vZHVsZVwiLFxuICBcImdsb2JhbFwiIC8vIE5vZGUuanNcbl07XG5cbmNvbnN0IEJVSUxUX0lOUyA9IFtdLmNvbmNhdChcbiAgQlVJTFRfSU5fR0xPQkFMUyxcbiAgVFlQRVMsXG4gIEVSUk9SX1RZUEVTXG4pO1xuXG4vKlxuTGFuZ3VhZ2U6IEphdmFTY3JpcHRcbkRlc2NyaXB0aW9uOiBKYXZhU2NyaXB0IChKUykgaXMgYSBsaWdodHdlaWdodCwgaW50ZXJwcmV0ZWQsIG9yIGp1c3QtaW4tdGltZSBjb21waWxlZCBwcm9ncmFtbWluZyBsYW5ndWFnZSB3aXRoIGZpcnN0LWNsYXNzIGZ1bmN0aW9ucy5cbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZywgd2ViXG5XZWJzaXRlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0XG4qL1xuXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiBqYXZhc2NyaXB0KGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICAvKipcbiAgICogVGFrZXMgYSBzdHJpbmcgbGlrZSBcIjxCb29nZXJcIiBhbmQgY2hlY2tzIHRvIHNlZVxuICAgKiBpZiB3ZSBjYW4gZmluZCBhIG1hdGNoaW5nIFwiPC9Cb29nZXJcIiBsYXRlciBpbiB0aGVcbiAgICogY29udGVudC5cbiAgICogQHBhcmFtIHtSZWdFeHBNYXRjaEFycmF5fSBtYXRjaFxuICAgKiBAcGFyYW0ge3thZnRlcjpudW1iZXJ9fSBwYXJhbTFcbiAgICovXG4gIGNvbnN0IGhhc0Nsb3NpbmdUYWcgPSAobWF0Y2gsIHsgYWZ0ZXIgfSkgPT4ge1xuICAgIGNvbnN0IHRhZyA9IFwiPC9cIiArIG1hdGNoWzBdLnNsaWNlKDEpO1xuICAgIGNvbnN0IHBvcyA9IG1hdGNoLmlucHV0LmluZGV4T2YodGFnLCBhZnRlcik7XG4gICAgcmV0dXJuIHBvcyAhPT0gLTE7XG4gIH07XG5cbiAgY29uc3QgSURFTlRfUkUkMSA9IElERU5UX1JFO1xuICBjb25zdCBGUkFHTUVOVCA9IHtcbiAgICBiZWdpbjogJzw+JyxcbiAgICBlbmQ6ICc8Lz4nXG4gIH07XG4gIC8vIHRvIGF2b2lkIHNvbWUgc3BlY2lhbCBjYXNlcyBpbnNpZGUgaXNUcnVseU9wZW5pbmdUYWdcbiAgY29uc3QgWE1MX1NFTEZfQ0xPU0lORyA9IC88W0EtWmEtejAtOVxcXFwuXzotXStcXHMqXFwvPi87XG4gIGNvbnN0IFhNTF9UQUcgPSB7XG4gICAgYmVnaW46IC88W0EtWmEtejAtOVxcXFwuXzotXSsvLFxuICAgIGVuZDogL1xcL1tBLVphLXowLTlcXFxcLl86LV0rPnxcXC8+LyxcbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge1JlZ0V4cE1hdGNoQXJyYXl9IG1hdGNoXG4gICAgICogQHBhcmFtIHtDYWxsYmFja1Jlc3BvbnNlfSByZXNwb25zZVxuICAgICAqL1xuICAgIGlzVHJ1bHlPcGVuaW5nVGFnOiAobWF0Y2gsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCBhZnRlck1hdGNoSW5kZXggPSBtYXRjaFswXS5sZW5ndGggKyBtYXRjaC5pbmRleDtcbiAgICAgIGNvbnN0IG5leHRDaGFyID0gbWF0Y2guaW5wdXRbYWZ0ZXJNYXRjaEluZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSFRNTCBzaG91bGQgbm90IGluY2x1ZGUgYW5vdGhlciByYXcgYDxgIGluc2lkZSBhIHRhZ1xuICAgICAgICAvLyBuZXN0ZWQgdHlwZT9cbiAgICAgICAgLy8gYDxBcnJheTxBcnJheTxudW1iZXI+PmAsIGV0Yy5cbiAgICAgICAgbmV4dENoYXIgPT09IFwiPFwiIHx8XG4gICAgICAgIC8vIHRoZSAsIGdpdmVzIGF3YXkgdGhhdCB0aGlzIGlzIG5vdCBIVE1MXG4gICAgICAgIC8vIGA8VCwgQSBleHRlbmRzIGtleW9mIFQsIFY+YFxuICAgICAgICBuZXh0Q2hhciA9PT0gXCIsXCJcbiAgICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gYDxzb21ldGhpbmc+YFxuICAgICAgLy8gUXVpdGUgcG9zc2libHkgYSB0YWcsIGxldHMgbG9vayBmb3IgYSBtYXRjaGluZyBjbG9zaW5nIHRhZy4uLlxuICAgICAgaWYgKG5leHRDaGFyID09PSBcIj5cIikge1xuICAgICAgICAvLyBpZiB3ZSBjYW5ub3QgZmluZCBhIG1hdGNoaW5nIGNsb3NpbmcgdGFnLCB0aGVuIHdlXG4gICAgICAgIC8vIHdpbGwgaWdub3JlIGl0XG4gICAgICAgIGlmICghaGFzQ2xvc2luZ1RhZyhtYXRjaCwgeyBhZnRlcjogYWZ0ZXJNYXRjaEluZGV4IH0pKSB7XG4gICAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBgPGJsYWggLz5gIChzZWxmLWNsb3NpbmcpXG4gICAgICAvLyBoYW5kbGVkIGJ5IHNpbXBsZVNlbGZDbG9zaW5nIHJ1bGVcblxuICAgICAgbGV0IG07XG4gICAgICBjb25zdCBhZnRlck1hdGNoID0gbWF0Y2guaW5wdXQuc3Vic3RyaW5nKGFmdGVyTWF0Y2hJbmRleCk7XG5cbiAgICAgIC8vIHNvbWUgbW9yZSB0ZW1wbGF0ZSB0eXBpbmcgc3R1ZmZcbiAgICAgIC8vICA8VCA9IGFueT4oa2V5Pzogc3RyaW5nKSA9PiBNb2RpZnk8XG4gICAgICBpZiAoKG0gPSBhZnRlck1hdGNoLm1hdGNoKC9eXFxzKj0vKSkpIHtcbiAgICAgICAgcmVzcG9uc2UuaWdub3JlTWF0Y2goKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBgPEZyb20gZXh0ZW5kcyBzdHJpbmc+YFxuICAgICAgLy8gdGVjaG5pY2FsbHkgdGhpcyBjb3VsZCBiZSBIVE1MLCBidXQgaXQgc21lbGxzIGxpa2UgYSB0eXBlXG4gICAgICAvLyBOT1RFOiBUaGlzIGlzIHVnaCwgYnV0IGFkZGVkIHNwZWNpZmljYWxseSBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2hpZ2hsaWdodGpzL2hpZ2hsaWdodC5qcy9pc3N1ZXMvMzI3NlxuICAgICAgaWYgKChtID0gYWZ0ZXJNYXRjaC5tYXRjaCgvXlxccytleHRlbmRzXFxzKy8pKSkge1xuICAgICAgICBpZiAobS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgIHJlc3BvbnNlLmlnbm9yZU1hdGNoKCk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtcmV0dXJuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogQlVJTFRfSU5fVkFSSUFCTEVTXG4gIH07XG5cbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1saXRlcmFscy1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxEaWdpdHMgPSAnWzAtOV0oXz9bMC05XSkqJztcbiAgY29uc3QgZnJhYyA9IGBcXFxcLigke2RlY2ltYWxEaWdpdHN9KWA7XG4gIC8vIERlY2ltYWxJbnRlZ2VyTGl0ZXJhbCwgaW5jbHVkaW5nIEFubmV4IEIgTm9uT2N0YWxEZWNpbWFsSW50ZWdlckxpdGVyYWxcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hZGRpdGlvbmFsLXN5bnRheC1udW1lcmljLWxpdGVyYWxzXG4gIGNvbnN0IGRlY2ltYWxJbnRlZ2VyID0gYDB8WzEtOV0oXz9bMC05XSkqfDBbMC03XSpbODldWzAtOV0qYDtcbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIERlY2ltYWxMaXRlcmFsXG4gICAgICB7IGJlZ2luOiBgKFxcXFxiKCR7ZGVjaW1hbEludGVnZXJ9KSgoJHtmcmFjfSl8XFxcXC4pP3woJHtmcmFjfSkpYCArXG4gICAgICAgIGBbZUVdWystXT8oJHtkZWNpbWFsRGlnaXRzfSlcXFxcYmAgfSxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigke2RlY2ltYWxJbnRlZ2VyfSlcXFxcYigoJHtmcmFjfSlcXFxcYnxcXFxcLik/fCgke2ZyYWN9KVxcXFxiYCB9LFxuXG4gICAgICAvLyBEZWNpbWFsQmlnSW50ZWdlckxpdGVyYWxcbiAgICAgIHsgYmVnaW46IGBcXFxcYigwfFsxLTldKF8/WzAtOV0pKiluXFxcXGJgIH0sXG5cbiAgICAgIC8vIE5vbkRlY2ltYWxJbnRlZ2VyTGl0ZXJhbFxuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbeFhdWzAtOWEtZkEtRl0oXz9bMC05YS1mQS1GXSkqbj9cXFxcYlwiIH0sXG4gICAgICB7IGJlZ2luOiBcIlxcXFxiMFtiQl1bMC0xXShfP1swLTFdKSpuP1xcXFxiXCIgfSxcbiAgICAgIHsgYmVnaW46IFwiXFxcXGIwW29PXVswLTddKF8/WzAtN10pKm4/XFxcXGJcIiB9LFxuXG4gICAgICAvLyBMZWdhY3lPY3RhbEludGVnZXJMaXRlcmFsIChkb2VzIG5vdCBpbmNsdWRlIHVuZGVyc2NvcmUgc2VwYXJhdG9ycylcbiAgICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWRkaXRpb25hbC1zeW50YXgtbnVtZXJpYy1saXRlcmFsc1xuICAgICAgeyBiZWdpbjogXCJcXFxcYjBbMC03XStuP1xcXFxiXCIgfSxcbiAgICBdLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFNVQlNUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N1YnN0JyxcbiAgICBiZWdpbjogJ1xcXFwkXFxcXHsnLFxuICAgIGVuZDogJ1xcXFx9JyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMkMSxcbiAgICBjb250YWluczogW10gLy8gZGVmaW5lZCBsYXRlclxuICB9O1xuICBjb25zdCBIVE1MX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2h0bWxgJyxcbiAgICBlbmQ6ICcnLFxuICAgIHN0YXJ0czoge1xuICAgICAgZW5kOiAnYCcsXG4gICAgICByZXR1cm5FbmQ6IGZhbHNlLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgICBTVUJTVFxuICAgICAgXSxcbiAgICAgIHN1Ykxhbmd1YWdlOiAneG1sJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NTX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2Nzc2AnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdjc3MnXG4gICAgfVxuICB9O1xuICBjb25zdCBHUkFQSFFMX1RFTVBMQVRFID0ge1xuICAgIGJlZ2luOiAnXFwuP2dxbGAnLFxuICAgIGVuZDogJycsXG4gICAgc3RhcnRzOiB7XG4gICAgICBlbmQ6ICdgJyxcbiAgICAgIHJldHVybkVuZDogZmFsc2UsXG4gICAgICBjb250YWluczogW1xuICAgICAgICBobGpzLkJBQ0tTTEFTSF9FU0NBUEUsXG4gICAgICAgIFNVQlNUXG4gICAgICBdLFxuICAgICAgc3ViTGFuZ3VhZ2U6ICdncmFwaHFsJ1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVEVNUExBVEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICdgJyxcbiAgICBlbmQ6ICdgJyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5CQUNLU0xBU0hfRVNDQVBFLFxuICAgICAgU1VCU1RcbiAgICBdXG4gIH07XG4gIGNvbnN0IEpTRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoXG4gICAgL1xcL1xcKlxcKig/IVxcLykvLFxuICAgICdcXFxcKi8nLFxuICAgIHtcbiAgICAgIHJlbGV2YW5jZTogMCxcbiAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiZWdpbjogJyg/PUBbQS1aYS16XSspJyxcbiAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnZG9jdGFnJyxcbiAgICAgICAgICAgICAgYmVnaW46ICdAW0EtWmEtel0rJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY2xhc3NOYW1lOiAndHlwZScsXG4gICAgICAgICAgICAgIGJlZ2luOiAnXFxcXHsnLFxuICAgICAgICAgICAgICBlbmQ6ICdcXFxcfScsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgICAgICAgIGJlZ2luOiBJREVOVF9SRSQxICsgJyg/PVxcXFxzKigtKXwkKScsXG4gICAgICAgICAgICAgIGVuZHNQYXJlbnQ6IHRydWUsXG4gICAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIGVhdCBzcGFjZXMgKG5vdCBuZXdsaW5lcykgc28gd2UgY2FuIGZpbmRcbiAgICAgICAgICAgIC8vIHR5cGVzIG9yIHZhcmlhYmxlc1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBiZWdpbjogLyg/PVteXFxuXSlcXHMvLFxuICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gICk7XG4gIGNvbnN0IENPTU1FTlQgPSB7XG4gICAgY2xhc3NOYW1lOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAgSlNET0NfQ09NTUVOVCxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREVcbiAgICBdXG4gIH07XG4gIGNvbnN0IFNVQlNUX0lOVEVSTkFMUyA9IFtcbiAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICBIVE1MX1RFTVBMQVRFLFxuICAgIENTU19URU1QTEFURSxcbiAgICBHUkFQSFFMX1RFTVBMQVRFLFxuICAgIFRFTVBMQVRFX1NUUklORyxcbiAgICAvLyBTa2lwIG51bWJlcnMgd2hlbiB0aGV5IGFyZSBwYXJ0IG9mIGEgdmFyaWFibGUgbmFtZVxuICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgIE5VTUJFUixcbiAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsOlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vaGlnaGxpZ2h0anMvaGlnaGxpZ2h0LmpzL2lzc3Vlcy8zMjg4XG4gICAgLy8gaGxqcy5SRUdFWFBfTU9ERVxuICBdO1xuICBTVUJTVC5jb250YWlucyA9IFNVQlNUX0lOVEVSTkFMU1xuICAgIC5jb25jYXQoe1xuICAgICAgLy8gd2UgbmVlZCB0byBwYWlyIHVwIHt9IGluc2lkZSBvdXIgc3Vic3QgdG8gcHJldmVudFxuICAgICAgLy8gaXQgZnJvbSBlbmRpbmcgdG9vIGVhcmx5IGJ5IG1hdGNoaW5nIGFub3RoZXIgfVxuICAgICAgYmVnaW46IC9cXHsvLFxuICAgICAgZW5kOiAvXFx9LyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgXCJzZWxmXCJcbiAgICAgIF0uY29uY2F0KFNVQlNUX0lOVEVSTkFMUylcbiAgICB9KTtcbiAgY29uc3QgU1VCU1RfQU5EX0NPTU1FTlRTID0gW10uY29uY2F0KENPTU1FTlQsIFNVQlNULmNvbnRhaW5zKTtcbiAgY29uc3QgUEFSQU1TX0NPTlRBSU5TID0gU1VCU1RfQU5EX0NPTU1FTlRTLmNvbmNhdChbXG4gICAgLy8gZWF0IHJlY3Vyc2l2ZSBwYXJlbnMgaW4gc3ViIGV4cHJlc3Npb25zXG4gICAge1xuICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgZW5kOiAvXFwpLyxcbiAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgY29udGFpbnM6IFtcInNlbGZcIl0uY29uY2F0KFNVQlNUX0FORF9DT01NRU5UUylcbiAgICB9XG4gIF0pO1xuICBjb25zdCBQQVJBTVMgPSB7XG4gICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAvLyBjb252ZXJ0IHRoaXMgdG8gbmVnYXRpdmUgbG9va2JlaGluZCBpbiB2MTJcbiAgICBiZWdpbjogLyhcXHMqKVxcKC8sIC8vIHRvIG1hdGNoIHRoZSBwYXJtcyB3aXRoIFxuICAgIGVuZDogL1xcKS8sXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgY29udGFpbnM6IFBBUkFNU19DT05UQUlOU1xuICB9O1xuXG4gIC8vIEVTNiBjbGFzc2VzXG4gIGNvbnN0IENMQVNTX09SX0VYVEVORFMgPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIC8vIGNsYXNzIENhciBleHRlbmRzIHZlaGljbGVcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICAvZXh0ZW5kcy8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIHJlZ2V4LmNvbmNhdChJREVOVF9SRSQxLCBcIihcIiwgcmVnZXguY29uY2F0KC9cXC4vLCBJREVOVF9SRSQxKSwgXCIpKlwiKVxuICAgICAgICBdLFxuICAgICAgICBzY29wZToge1xuICAgICAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgICAgIDM6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgICAgICA1OiBcImtleXdvcmRcIixcbiAgICAgICAgICA3OiBcInRpdGxlLmNsYXNzLmluaGVyaXRlZFwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjbGFzcyBDYXJcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvY2xhc3MvLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxXG4gICAgICAgIF0sXG4gICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZS5jbGFzc1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICBdXG4gIH07XG5cbiAgY29uc3QgQ0xBU1NfUkVGRVJFTkNFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDpcbiAgICByZWdleC5laXRoZXIoXG4gICAgICAvLyBIYXJkIGNvZGVkIGV4Y2VwdGlvbnNcbiAgICAgIC9cXGJKU09OLyxcbiAgICAgIC8vIEZsb2F0MzJBcnJheSwgT3V0VFxuICAgICAgL1xcYltBLVpdW2Etel0rKFtBLVpdW2Etel0qfFxcZCkqLyxcbiAgICAgIC8vIENTU0ZhY3RvcnksIENTU0ZhY3RvcnlUXG4gICAgICAvXFxiW0EtWl17Mix9KFtBLVpdW2Etel0rfFxcZCkrKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gRlBzLCBGUHNUXG4gICAgICAvXFxiW0EtWl17Mix9W2Etel0rKFtBLVpdW2Etel0rfFxcZCkqKFtBLVpdW2Etel0qKSovLFxuICAgICAgLy8gUFxuICAgICAgLy8gc2luZ2xlIGxldHRlcnMgYXJlIG5vdCBoaWdobGlnaHRlZFxuICAgICAgLy8gQkxBSFxuICAgICAgLy8gdGhpcyB3aWxsIGJlIGZsYWdnZWQgYXMgYSBVUFBFUl9DQVNFX0NPTlNUQU5UIGluc3RlYWRcbiAgICApLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5jbGFzc1wiLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBfOiBbXG4gICAgICAgIC8vIHNlIHdlIHN0aWxsIGdldCByZWxldmFuY2UgY3JlZGl0IGZvciBKUyBsaWJyYXJ5IGNsYXNzZXNcbiAgICAgICAgLi4uVFlQRVMsXG4gICAgICAgIC4uLkVSUk9SX1RZUEVTXG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IFVTRV9TVFJJQ1QgPSB7XG4gICAgbGFiZWw6IFwidXNlX3N0cmljdFwiLFxuICAgIGNsYXNzTmFtZTogJ21ldGEnLFxuICAgIHJlbGV2YW5jZTogMTAsXG4gICAgYmVnaW46IC9eXFxzKlsnXCJddXNlIChzdHJpY3R8YXNtKVsnXCJdL1xuICB9O1xuXG4gIGNvbnN0IEZVTkNUSU9OX0RFRklOSVRJT04gPSB7XG4gICAgdmFyaWFudHM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IFtcbiAgICAgICAgICAvZnVuY3Rpb24vLFxuICAgICAgICAgIC9cXHMrLyxcbiAgICAgICAgICBJREVOVF9SRSQxLFxuICAgICAgICAgIC8oPz1cXHMqXFwoKS9cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8vIGFub255bW91cyBmdW5jdGlvblxuICAgICAge1xuICAgICAgICBtYXRjaDogW1xuICAgICAgICAgIC9mdW5jdGlvbi8sXG4gICAgICAgICAgL1xccyooPz1cXCgpL1xuICAgICAgICBdXG4gICAgICB9XG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdLFxuICAgIGlsbGVnYWw6IC8lL1xuICB9O1xuXG4gIGNvbnN0IFVQUEVSX0NBU0VfQ09OU1RBTlQgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiAvXFxiW0EtWl1bQS1aXzAtOV0rXFxiLyxcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGUuY29uc3RhbnRcIlxuICB9O1xuXG4gIGZ1bmN0aW9uIG5vbmVPZihsaXN0KSB7XG4gICAgcmV0dXJuIHJlZ2V4LmNvbmNhdChcIig/IVwiLCBsaXN0LmpvaW4oXCJ8XCIpLCBcIilcIik7XG4gIH1cblxuICBjb25zdCBGVU5DVElPTl9DQUxMID0ge1xuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICAvXFxiLyxcbiAgICAgIG5vbmVPZihbXG4gICAgICAgIC4uLkJVSUxUX0lOX0dMT0JBTFMsXG4gICAgICAgIFwic3VwZXJcIixcbiAgICAgICAgXCJpbXBvcnRcIlxuICAgICAgXS5tYXAoeCA9PiBgJHt4fVxcXFxzKlxcXFwoYCkpLFxuICAgICAgSURFTlRfUkUkMSwgcmVnZXgubG9va2FoZWFkKC9cXHMqXFwoLykpLFxuICAgIGNsYXNzTmFtZTogXCJ0aXRsZS5mdW5jdGlvblwiLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZX0FDQ0VTUyA9IHtcbiAgICBiZWdpbjogcmVnZXguY29uY2F0KC9cXC4vLCByZWdleC5sb29rYWhlYWQoXG4gICAgICByZWdleC5jb25jYXQoSURFTlRfUkUkMSwgLyg/IVswLTlBLVphLXokXyhdKS8pXG4gICAgKSksXG4gICAgZW5kOiBJREVOVF9SRSQxLFxuICAgIGV4Y2x1ZGVCZWdpbjogdHJ1ZSxcbiAgICBrZXl3b3JkczogXCJwcm90b3R5cGVcIixcbiAgICBjbGFzc05hbWU6IFwicHJvcGVydHlcIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBHRVRURVJfT1JfU0VUVEVSID0ge1xuICAgIG1hdGNoOiBbXG4gICAgICAvZ2V0fHNldC8sXG4gICAgICAvXFxzKy8sXG4gICAgICBJREVOVF9SRSQxLFxuICAgICAgLyg/PVxcKCkvXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJ0aXRsZS5mdW5jdGlvblwiXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgeyAvLyBlYXQgdG8gYXZvaWQgZW1wdHkgcGFyYW1zXG4gICAgICAgIGJlZ2luOiAvXFwoXFwpL1xuICAgICAgfSxcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBGVU5DX0xFQURfSU5fUkUgPSAnKFxcXFwoJyArXG4gICAgJ1teKCldKihcXFxcKCcgK1xuICAgICdbXigpXSooXFxcXCgnICtcbiAgICAnW14oKV0qJyArXG4gICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAnXFxcXClbXigpXSopKicgK1xuICAgICdcXFxcKXwnICsgaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFICsgJylcXFxccyo9Pic7XG5cbiAgY29uc3QgRlVOQ1RJT05fVkFSSUFCTEUgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIC9jb25zdHx2YXJ8bGV0LywgL1xccysvLFxuICAgICAgSURFTlRfUkUkMSwgL1xccyovLFxuICAgICAgLz1cXHMqLyxcbiAgICAgIC8oYXN5bmNcXHMqKT8vLCAvLyBhc3luYyBpcyBvcHRpb25hbFxuICAgICAgcmVnZXgubG9va2FoZWFkKEZVTkNfTEVBRF9JTl9SRSlcbiAgICBdLFxuICAgIGtleXdvcmRzOiBcImFzeW5jXCIsXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIFBBUkFNU1xuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdKYXZhU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbJ2pzJywgJ2pzeCcsICdtanMnLCAnY2pzJ10sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTJDEsXG4gICAgLy8gdGhpcyB3aWxsIGJlIGV4dGVuZGVkIGJ5IFR5cGVTY3JpcHRcbiAgICBleHBvcnRzOiB7IFBBUkFNU19DT05UQUlOUywgQ0xBU1NfUkVGRVJFTkNFIH0sXG4gICAgaWxsZWdhbDogLyMoPyFbJF9BLXpdKS8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuU0hFQkFORyh7XG4gICAgICAgIGxhYmVsOiBcInNoZWJhbmdcIixcbiAgICAgICAgYmluYXJ5OiBcIm5vZGVcIixcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9KSxcbiAgICAgIFVTRV9TVFJJQ1QsXG4gICAgICBobGpzLkFQT1NfU1RSSU5HX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAgSFRNTF9URU1QTEFURSxcbiAgICAgIENTU19URU1QTEFURSxcbiAgICAgIEdSQVBIUUxfVEVNUExBVEUsXG4gICAgICBURU1QTEFURV9TVFJJTkcsXG4gICAgICBDT01NRU5ULFxuICAgICAgLy8gU2tpcCBudW1iZXJzIHdoZW4gdGhleSBhcmUgcGFydCBvZiBhIHZhcmlhYmxlIG5hbWVcbiAgICAgIHsgbWF0Y2g6IC9cXCRcXGQrLyB9LFxuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdhdHRyJyxcbiAgICAgICAgYmVnaW46IElERU5UX1JFJDEgKyByZWdleC5sb29rYWhlYWQoJzonKSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fVkFSSUFCTEUsXG4gICAgICB7IC8vIFwidmFsdWVcIiBjb250YWluZXJcbiAgICAgICAgYmVnaW46ICcoJyArIGhsanMuUkVfU1RBUlRFUlNfUkUgKyAnfFxcXFxiKGNhc2V8cmV0dXJufHRocm93KVxcXFxiKVxcXFxzKicsXG4gICAgICAgIGtleXdvcmRzOiAncmV0dXJuIHRocm93IGNhc2UnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgQ09NTUVOVCxcbiAgICAgICAgICBobGpzLlJFR0VYUF9NT0RFLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIC8vIHdlIGhhdmUgdG8gY291bnQgdGhlIHBhcmVucyB0byBtYWtlIHN1cmUgd2UgYWN0dWFsbHkgaGF2ZSB0aGVcbiAgICAgICAgICAgIC8vIGNvcnJlY3QgYm91bmRpbmcgKCApIGJlZm9yZSB0aGUgPT4uICBUaGVyZSBjb3VsZCBiZSBhbnkgbnVtYmVyIG9mXG4gICAgICAgICAgICAvLyBzdWItZXhwcmVzc2lvbnMgaW5zaWRlIGFsc28gc3Vycm91bmRlZCBieSBwYXJlbnMuXG4gICAgICAgICAgICBiZWdpbjogRlVOQ19MRUFEX0lOX1JFLFxuICAgICAgICAgICAgcmV0dXJuQmVnaW46IHRydWUsXG4gICAgICAgICAgICBlbmQ6ICdcXFxccyo9PicsXG4gICAgICAgICAgICBjb250YWluczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogaGxqcy5VTkRFUlNDT1JFX0lERU5UX1JFLFxuICAgICAgICAgICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC9cXChcXHMqXFwpLyxcbiAgICAgICAgICAgICAgICAgICAgc2tpcDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IC8oXFxzKilcXCgvLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IC9cXCkvLFxuICAgICAgICAgICAgICAgICAgICBleGNsdWRlQmVnaW46IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyQxLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluczogUEFSQU1TX0NPTlRBSU5TXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IC8vIGNvdWxkIGJlIGEgY29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgcGFyYW1zIHRvIGEgZnVuY3Rpb24gY2FsbFxuICAgICAgICAgICAgYmVnaW46IC8sLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWF0Y2g6IC9cXHMrLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyAvLyBKU1hcbiAgICAgICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgICAgIHsgYmVnaW46IEZSQUdNRU5ULmJlZ2luLCBlbmQ6IEZSQUdNRU5ULmVuZCB9LFxuICAgICAgICAgICAgICB7IG1hdGNoOiBYTUxfU0VMRl9DTE9TSU5HIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiZWdpbjogWE1MX1RBRy5iZWdpbixcbiAgICAgICAgICAgICAgICAvLyB3ZSBjYXJlZnVsbHkgY2hlY2sgdGhlIG9wZW5pbmcgdGFnIHRvIHNlZSBpZiBpdCB0cnVseVxuICAgICAgICAgICAgICAgIC8vIGlzIGEgdGFnIGFuZCBub3QgYSBmYWxzZSBwb3NpdGl2ZVxuICAgICAgICAgICAgICAgICdvbjpiZWdpbic6IFhNTF9UQUcuaXNUcnVseU9wZW5pbmdUYWcsXG4gICAgICAgICAgICAgICAgZW5kOiBYTUxfVEFHLmVuZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgc3ViTGFuZ3VhZ2U6ICd4bWwnLFxuICAgICAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBYTUxfVEFHLmJlZ2luLFxuICAgICAgICAgICAgICAgIGVuZDogWE1MX1RBRy5lbmQsXG4gICAgICAgICAgICAgICAgc2tpcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250YWluczogWydzZWxmJ11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICBGVU5DVElPTl9ERUZJTklUSU9OLFxuICAgICAge1xuICAgICAgICAvLyBwcmV2ZW50IHRoaXMgZnJvbSBnZXR0aW5nIHN3YWxsb3dlZCB1cCBieSBmdW5jdGlvblxuICAgICAgICAvLyBzaW5jZSB0aGV5IGFwcGVhciBcImZ1bmN0aW9uIGxpa2VcIlxuICAgICAgICBiZWdpbktleXdvcmRzOiBcIndoaWxlIGlmIHN3aXRjaCBjYXRjaCBmb3JcIlxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLy8gd2UgaGF2ZSB0byBjb3VudCB0aGUgcGFyZW5zIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZSBjb3JyZWN0XG4gICAgICAgIC8vIGJvdW5kaW5nICggKS4gIFRoZXJlIGNvdWxkIGJlIGFueSBudW1iZXIgb2Ygc3ViLWV4cHJlc3Npb25zIGluc2lkZVxuICAgICAgICAvLyBhbHNvIHN1cnJvdW5kZWQgYnkgcGFyZW5zLlxuICAgICAgICBiZWdpbjogJ1xcXFxiKD8hZnVuY3Rpb24pJyArIGhsanMuVU5ERVJTQ09SRV9JREVOVF9SRSArXG4gICAgICAgICAgJ1xcXFwoJyArIC8vIGZpcnN0IHBhcmVuc1xuICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICdbXigpXSooXFxcXCgnICtcbiAgICAgICAgICAgICAgJ1teKCldKicgK1xuICAgICAgICAgICAgJ1xcXFwpW14oKV0qKSonICtcbiAgICAgICAgICAnXFxcXClbXigpXSopKicgK1xuICAgICAgICAgICdcXFxcKVxcXFxzKlxcXFx7JywgLy8gZW5kIHBhcmVuc1xuICAgICAgICByZXR1cm5CZWdpbjp0cnVlLFxuICAgICAgICBsYWJlbDogXCJmdW5jLmRlZlwiLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIFBBUkFNUyxcbiAgICAgICAgICBobGpzLmluaGVyaXQoaGxqcy5USVRMRV9NT0RFLCB7IGJlZ2luOiBJREVOVF9SRSQxLCBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIiB9KVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gY2F0Y2ggLi4uIHNvIGl0IHdvbid0IHRyaWdnZXIgdGhlIHByb3BlcnR5IHJ1bGUgYmVsb3dcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXC5cXC5cXC4vLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICBQUk9QRVJUWV9BQ0NFU1MsXG4gICAgICAvLyBoYWNrOiBwcmV2ZW50cyBkZXRlY3Rpb24gb2Yga2V5d29yZHMgaW4gc29tZSBjaXJjdW1zdGFuY2VzXG4gICAgICAvLyAua2V5d29yZCgpXG4gICAgICAvLyAka2V5d29yZCA9IHhcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6ICdcXFxcJCcgKyBJREVOVF9SRSQxLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1hdGNoOiBbIC9cXGJjb25zdHJ1Y3Rvcig/PVxccypcXCgpLyBdLFxuICAgICAgICBjbGFzc05hbWU6IHsgMTogXCJ0aXRsZS5mdW5jdGlvblwiIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbIFBBUkFNUyBdXG4gICAgICB9LFxuICAgICAgRlVOQ1RJT05fQ0FMTCxcbiAgICAgIFVQUEVSX0NBU0VfQ09OU1RBTlQsXG4gICAgICBDTEFTU19PUl9FWFRFTkRTLFxuICAgICAgR0VUVEVSX09SX1NFVFRFUixcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9cXCRbKC5dLyAvLyByZWxldmFuY2UgYm9vc3RlciBmb3IgYSBwYXR0ZXJuIGNvbW1vbiB0byBKUyBsaWJzOiBgJChzb21ldGhpbmcpYCBhbmQgYCQuc29tZXRoaW5nYFxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxuLypcbkxhbmd1YWdlOiBUeXBlU2NyaXB0XG5BdXRob3I6IFBhbnUgSG9yc21hbGFodGkgPHBhbnUuaG9yc21hbGFodGlAaWtpLmZpPlxuQ29udHJpYnV0b3JzOiBJa2UgS3UgPGRlbXBmaUB5YWhvby5jb20+XG5EZXNjcmlwdGlvbjogVHlwZVNjcmlwdCBpcyBhIHN0cmljdCBzdXBlcnNldCBvZiBKYXZhU2NyaXB0XG5XZWJzaXRlOiBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmdcbkNhdGVnb3J5OiBjb21tb24sIHNjcmlwdGluZ1xuKi9cblxuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gdHlwZXNjcmlwdChobGpzKSB7XG4gIGNvbnN0IHRzTGFuZ3VhZ2UgPSBqYXZhc2NyaXB0KGhsanMpO1xuXG4gIGNvbnN0IElERU5UX1JFJDEgPSBJREVOVF9SRTtcbiAgY29uc3QgVFlQRVMgPSBbXG4gICAgXCJhbnlcIixcbiAgICBcInZvaWRcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwiYm9vbGVhblwiLFxuICAgIFwic3RyaW5nXCIsXG4gICAgXCJvYmplY3RcIixcbiAgICBcIm5ldmVyXCIsXG4gICAgXCJzeW1ib2xcIixcbiAgICBcImJpZ2ludFwiLFxuICAgIFwidW5rbm93blwiXG4gIF07XG4gIGNvbnN0IE5BTUVTUEFDRSA9IHtcbiAgICBiZWdpbjogW1xuICAgICAgL25hbWVzcGFjZS8sXG4gICAgICAvXFxzKy8sXG4gICAgICBobGpzLklERU5UX1JFXG4gICAgXSxcbiAgICBiZWdpblNjb3BlOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuY2xhc3NcIlxuICAgIH1cbiAgfTtcbiAgY29uc3QgSU5URVJGQUNFID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICdpbnRlcmZhY2UnLFxuICAgIGVuZDogL1xcey8sXG4gICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogJ2ludGVyZmFjZSBleHRlbmRzJyxcbiAgICAgIGJ1aWx0X2luOiBUWVBFU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFsgdHNMYW5ndWFnZS5leHBvcnRzLkNMQVNTX1JFRkVSRU5DRSBdXG4gIH07XG4gIGNvbnN0IFVTRV9TVFJJQ1QgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgcmVsZXZhbmNlOiAxMCxcbiAgICBiZWdpbjogL15cXHMqWydcIl11c2Ugc3RyaWN0WydcIl0vXG4gIH07XG4gIGNvbnN0IFRTX1NQRUNJRklDX0tFWVdPUkRTID0gW1xuICAgIFwidHlwZVwiLFxuICAgIC8vIFwibmFtZXNwYWNlXCIsXG4gICAgXCJpbnRlcmZhY2VcIixcbiAgICBcInB1YmxpY1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJhYnN0cmFjdFwiLFxuICAgIFwicmVhZG9ubHlcIixcbiAgICBcImVudW1cIixcbiAgICBcIm92ZXJyaWRlXCIsXG4gICAgXCJzYXRpc2ZpZXNcIlxuICBdO1xuXG4gIC8qXG4gICAgbmFtZXNwYWNlIGlzIGEgVFMga2V5d29yZCBidXQgaXQncyBmaW5lIHRvIHVzZSBpdCBhcyBhIHZhcmlhYmxlIG5hbWUgdG9vLlxuICAgIGNvbnN0IG1lc3NhZ2UgPSAnZm9vJztcbiAgICBjb25zdCBuYW1lc3BhY2UgPSAnYmFyJztcbiAgKi9cblxuICBjb25zdCBLRVlXT1JEUyQxID0ge1xuICAgICRwYXR0ZXJuOiBJREVOVF9SRSxcbiAgICBrZXl3b3JkOiBLRVlXT1JEUy5jb25jYXQoVFNfU1BFQ0lGSUNfS0VZV09SRFMpLFxuICAgIGxpdGVyYWw6IExJVEVSQUxTLFxuICAgIGJ1aWx0X2luOiBCVUlMVF9JTlMuY29uY2F0KFRZUEVTKSxcbiAgICBcInZhcmlhYmxlLmxhbmd1YWdlXCI6IEJVSUxUX0lOX1ZBUklBQkxFU1xuICB9O1xuICBjb25zdCBERUNPUkFUT1IgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46ICdAJyArIElERU5UX1JFJDEsXG4gIH07XG5cbiAgY29uc3Qgc3dhcE1vZGUgPSAobW9kZSwgbGFiZWwsIHJlcGxhY2VtZW50KSA9PiB7XG4gICAgY29uc3QgaW5keCA9IG1vZGUuY29udGFpbnMuZmluZEluZGV4KG0gPT4gbS5sYWJlbCA9PT0gbGFiZWwpO1xuICAgIGlmIChpbmR4ID09PSAtMSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJjYW4gbm90IGZpbmQgbW9kZSB0byByZXBsYWNlXCIpOyB9XG5cbiAgICBtb2RlLmNvbnRhaW5zLnNwbGljZShpbmR4LCAxLCByZXBsYWNlbWVudCk7XG4gIH07XG5cblxuICAvLyB0aGlzIHNob3VsZCB1cGRhdGUgYW55d2hlcmUga2V5d29yZHMgaXMgdXNlZCBzaW5jZVxuICAvLyBpdCB3aWxsIGJlIHRoZSBzYW1lIGFjdHVhbCBKUyBvYmplY3RcbiAgT2JqZWN0LmFzc2lnbih0c0xhbmd1YWdlLmtleXdvcmRzLCBLRVlXT1JEUyQxKTtcblxuICB0c0xhbmd1YWdlLmV4cG9ydHMuUEFSQU1TX0NPTlRBSU5TLnB1c2goREVDT1JBVE9SKTtcblxuICAvLyBoaWdobGlnaHQgdGhlIGZ1bmN0aW9uIHBhcmFtc1xuICBjb25zdCBBVFRSSUJVVEVfSElHSExJR0hUID0gdHNMYW5ndWFnZS5jb250YWlucy5maW5kKGMgPT4gYy5jbGFzc05hbWUgPT09IFwiYXR0clwiKTtcbiAgdHNMYW5ndWFnZS5leHBvcnRzLlBBUkFNU19DT05UQUlOUy5wdXNoKFtcbiAgICB0c0xhbmd1YWdlLmV4cG9ydHMuQ0xBU1NfUkVGRVJFTkNFLCAvLyBjbGFzcyByZWZlcmVuY2UgZm9yIGhpZ2hsaWdodGluZyB0aGUgcGFyYW1zIHR5cGVzXG4gICAgQVRUUklCVVRFX0hJR0hMSUdIVCwgLy8gaGlnaGxpZ2h0IHRoZSBwYXJhbXMga2V5XG4gIF0pO1xuICB0c0xhbmd1YWdlLmNvbnRhaW5zID0gdHNMYW5ndWFnZS5jb250YWlucy5jb25jYXQoW1xuICAgIERFQ09SQVRPUixcbiAgICBOQU1FU1BBQ0UsXG4gICAgSU5URVJGQUNFLFxuICBdKTtcblxuICAvLyBUUyBnZXRzIGEgc2ltcGxlciBzaGViYW5nIHJ1bGUgdGhhbiBKU1xuICBzd2FwTW9kZSh0c0xhbmd1YWdlLCBcInNoZWJhbmdcIiwgaGxqcy5TSEVCQU5HKCkpO1xuICAvLyBKUyB1c2Ugc3RyaWN0IHJ1bGUgcHVycG9zZWx5IGV4Y2x1ZGVzIGBhc21gIHdoaWNoIG1ha2VzIG5vIHNlbnNlXG4gIHN3YXBNb2RlKHRzTGFuZ3VhZ2UsIFwidXNlX3N0cmljdFwiLCBVU0VfU1RSSUNUKTtcblxuICBjb25zdCBmdW5jdGlvbkRlY2xhcmF0aW9uID0gdHNMYW5ndWFnZS5jb250YWlucy5maW5kKG0gPT4gbS5sYWJlbCA9PT0gXCJmdW5jLmRlZlwiKTtcbiAgZnVuY3Rpb25EZWNsYXJhdGlvbi5yZWxldmFuY2UgPSAwOyAvLyAoKSA9PiB7fSBpcyBtb3JlIHR5cGljYWwgaW4gVHlwZVNjcmlwdFxuXG4gIE9iamVjdC5hc3NpZ24odHNMYW5ndWFnZSwge1xuICAgIG5hbWU6ICdUeXBlU2NyaXB0JyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAndHMnLFxuICAgICAgJ3RzeCcsXG4gICAgICAnbXRzJyxcbiAgICAgICdjdHMnXG4gICAgXVxuICB9KTtcblxuICByZXR1cm4gdHNMYW5ndWFnZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB0eXBlc2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogVmFsYVxuQXV0aG9yOiBBbnRvbm8gVmFzaWxqZXYgPGFudG9uby52YXNpbGpldkBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogVmFsYSBpcyBhIG5ldyBwcm9ncmFtbWluZyBsYW5ndWFnZSB0aGF0IGFpbXMgdG8gYnJpbmcgbW9kZXJuIHByb2dyYW1taW5nIGxhbmd1YWdlIGZlYXR1cmVzIHRvIEdOT01FIGRldmVsb3BlcnMgd2l0aG91dCBpbXBvc2luZyBhbnkgYWRkaXRpb25hbCBydW50aW1lIHJlcXVpcmVtZW50cyBhbmQgd2l0aG91dCB1c2luZyBhIGRpZmZlcmVudCBBQkkgY29tcGFyZWQgdG8gYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMgd3JpdHRlbiBpbiBDLlxuV2Vic2l0ZTogaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9WYWxhXG5DYXRlZ29yeTogc3lzdGVtXG4qL1xuXG5mdW5jdGlvbiB2YWxhKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmFsYScsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIFZhbHVlIHR5cGVzXG4gICAgICAgICdjaGFyIHVjaGFyIHVuaWNoYXIgaW50IHVpbnQgbG9uZyB1bG9uZyBzaG9ydCB1c2hvcnQgaW50OCBpbnQxNiBpbnQzMiBpbnQ2NCB1aW50OCAnXG4gICAgICAgICsgJ3VpbnQxNiB1aW50MzIgdWludDY0IGZsb2F0IGRvdWJsZSBib29sIHN0cnVjdCBlbnVtIHN0cmluZyB2b2lkICdcbiAgICAgICAgLy8gUmVmZXJlbmNlIHR5cGVzXG4gICAgICAgICsgJ3dlYWsgdW5vd25lZCBvd25lZCAnXG4gICAgICAgIC8vIE1vZGlmaWVyc1xuICAgICAgICArICdhc3luYyBzaWduYWwgc3RhdGljIGFic3RyYWN0IGludGVyZmFjZSBvdmVycmlkZSB2aXJ0dWFsIGRlbGVnYXRlICdcbiAgICAgICAgLy8gQ29udHJvbCBTdHJ1Y3R1cmVzXG4gICAgICAgICsgJ2lmIHdoaWxlIGRvIGZvciBmb3JlYWNoIGVsc2Ugc3dpdGNoIGNhc2UgYnJlYWsgZGVmYXVsdCByZXR1cm4gdHJ5IGNhdGNoICdcbiAgICAgICAgLy8gVmlzaWJpbGl0eVxuICAgICAgICArICdwdWJsaWMgcHJpdmF0ZSBwcm90ZWN0ZWQgaW50ZXJuYWwgJ1xuICAgICAgICAvLyBPdGhlclxuICAgICAgICArICd1c2luZyBuZXcgdGhpcyBnZXQgc2V0IGNvbnN0IHN0ZG91dCBzdGRpbiBzdGRlcnIgdmFyJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAnREJ1cyBHTGliIENDb2RlIEdlZSBPYmplY3QgR3RrIFBvc2l4JyxcbiAgICAgIGxpdGVyYWw6XG4gICAgICAgICdmYWxzZSB0cnVlIG51bGwnXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdjbGFzcycsXG4gICAgICAgIGJlZ2luS2V5d29yZHM6ICdjbGFzcyBpbnRlcmZhY2UgbmFtZXNwYWNlJyxcbiAgICAgICAgZW5kOiAvXFx7LyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogJ1teLDpcXFxcblxcXFxzXFxcXC5dJyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgICAgIGJlZ2luOiAnXCJcIlwiJyxcbiAgICAgICAgZW5kOiAnXCJcIlwiJyxcbiAgICAgICAgcmVsZXZhbmNlOiA1XG4gICAgICB9LFxuICAgICAgaGxqcy5BUE9TX1NUUklOR19NT0RFLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIGhsanMuQ19OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAnXiMnLFxuICAgICAgICBlbmQ6ICckJyxcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsYTtcbiIsICIvKlxuTGFuZ3VhZ2U6IFZpc3VhbCBCYXNpYyAuTkVUXG5EZXNjcmlwdGlvbjogVmlzdWFsIEJhc2ljIC5ORVQgKFZCLk5FVCkgaXMgYSBtdWx0aS1wYXJhZGlnbSwgb2JqZWN0LW9yaWVudGVkIHByb2dyYW1taW5nIGxhbmd1YWdlLCBpbXBsZW1lbnRlZCBvbiB0aGUgLk5FVCBGcmFtZXdvcmsuXG5BdXRob3JzOiBQb3JlbiBDaGlhbmcgPHJlbi5jaGlhbmdAZ21haWwuY29tPiwgSmFuIFBpbHplclxuV2Vic2l0ZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZG90bmV0L3Zpc3VhbC1iYXNpYy9nZXR0aW5nLXN0YXJ0ZWRcbkNhdGVnb3J5OiBjb21tb25cbiovXG5cbi8qKiBAdHlwZSBMYW5ndWFnZUZuICovXG5mdW5jdGlvbiB2Ym5ldChobGpzKSB7XG4gIGNvbnN0IHJlZ2V4ID0gaGxqcy5yZWdleDtcbiAgLyoqXG4gICAqIENoYXJhY3RlciBMaXRlcmFsXG4gICAqIEVpdGhlciBhIHNpbmdsZSBjaGFyYWN0ZXIgKFwiYVwiQykgb3IgYW4gZXNjYXBlZCBkb3VibGUgcXVvdGUgKFwiXCJcIlwiQykuXG4gICAqL1xuICBjb25zdCBDSEFSQUNURVIgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogL1wiKFwiXCJ8W14vbl0pXCJDXFxiL1xuICB9O1xuXG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAvXCIvLFxuICAgIGVuZDogL1wiLyxcbiAgICBpbGxlZ2FsOiAvXFxuLyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICAvLyBkb3VibGUgcXVvdGUgZXNjYXBlXG4gICAgICAgIGJlZ2luOiAvXCJcIi8gfVxuICAgIF1cbiAgfTtcblxuICAvKiogRGF0ZSBMaXRlcmFscyBjb25zaXN0IG9mIGEgZGF0ZSwgYSB0aW1lLCBvciBib3RoIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLCBzdXJyb3VuZGVkIGJ5ICMgKi9cbiAgY29uc3QgTU1fRERfWVlZWSA9IC9cXGR7MSwyfVxcL1xcZHsxLDJ9XFwvXFxkezR9LztcbiAgY29uc3QgWVlZWV9NTV9ERCA9IC9cXGR7NH0tXFxkezEsMn0tXFxkezEsMn0vO1xuICBjb25zdCBUSU1FXzEySCA9IC8oXFxkfDFbMDEyXSkoOlxcZCspezAsMn0gKihBTXxQTSkvO1xuICBjb25zdCBUSU1FXzI0SCA9IC9cXGR7MSwyfSg6XFxkezEsMn0pezEsMn0vO1xuICBjb25zdCBEQVRFID0ge1xuICAgIGNsYXNzTmFtZTogJ2xpdGVyYWwnLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIC8vICNZWVlZLU1NLUREIyAoSVNPLURhdGUpIG9yICNNL0QvWVlZWSMgKFVTLURhdGUpXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoLyMgKi8sIHJlZ2V4LmVpdGhlcihZWVlZX01NX0RELCBNTV9ERF9ZWVlZKSwgLyAqIy8pIH0sXG4gICAgICB7XG4gICAgICAgIC8vICNIOm1tWzpzc10jICgyNGggVGltZSlcbiAgICAgICAgYmVnaW46IHJlZ2V4LmNvbmNhdCgvIyAqLywgVElNRV8yNEgsIC8gKiMvKSB9LFxuICAgICAge1xuICAgICAgICAvLyAjaFs6bW1bOnNzXV0gQSMgKDEyaCBUaW1lKVxuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC8jICovLCBUSU1FXzEySCwgLyAqIy8pIH0sXG4gICAgICB7XG4gICAgICAgIC8vIGRhdGUgcGx1cyB0aW1lXG4gICAgICAgIGJlZ2luOiByZWdleC5jb25jYXQoXG4gICAgICAgICAgLyMgKi8sXG4gICAgICAgICAgcmVnZXguZWl0aGVyKFlZWVlfTU1fREQsIE1NX0REX1lZWVkpLFxuICAgICAgICAgIC8gKy8sXG4gICAgICAgICAgcmVnZXguZWl0aGVyKFRJTUVfMTJILCBUSU1FXzI0SCksXG4gICAgICAgICAgLyAqIy9cbiAgICAgICAgKSB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IE5VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICAvLyBGbG9hdFxuICAgICAgICBiZWdpbjogL1xcYlxcZFtcXGRfXSooKFxcLltcXGRfXSsoRVsrLV0/W1xcZF9dKyk/KXwoRVsrLV0/W1xcZF9dKykpW1JGREAhI10/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBJbnRlZ2VyIChiYXNlIDEwKVxuICAgICAgICBiZWdpbjogL1xcYlxcZFtcXGRfXSooKFU/W1NJTF0pfFslJl0pPy8gfSxcbiAgICAgIHtcbiAgICAgICAgLy8gSW50ZWdlciAoYmFzZSAxNilcbiAgICAgICAgYmVnaW46IC8mSFtcXGRBLUZfXSsoKFU/W1NJTF0pfFslJl0pPy8gfSxcbiAgICAgIHtcbiAgICAgICAgLy8gSW50ZWdlciAoYmFzZSA4KVxuICAgICAgICBiZWdpbjogLyZPWzAtN19dKygoVT9bU0lMXSl8WyUmXSk/LyB9LFxuICAgICAge1xuICAgICAgICAvLyBJbnRlZ2VyIChiYXNlIDIpXG4gICAgICAgIGJlZ2luOiAvJkJbMDFfXSsoKFU/W1NJTF0pfFslJl0pPy8gfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBMQUJFTCA9IHtcbiAgICBjbGFzc05hbWU6ICdsYWJlbCcsXG4gICAgYmVnaW46IC9eXFx3KzovXG4gIH07XG5cbiAgY29uc3QgRE9DX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoLycnJy8sIC8kLywgeyBjb250YWluczogW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2RvY3RhZycsXG4gICAgICBiZWdpbjogLzxcXC8/LyxcbiAgICAgIGVuZDogLz4vXG4gICAgfVxuICBdIH0pO1xuXG4gIGNvbnN0IENPTU1FTlQgPSBobGpzLkNPTU1FTlQobnVsbCwgLyQvLCB7IHZhcmlhbnRzOiBbXG4gICAgeyBiZWdpbjogLycvIH0sXG4gICAge1xuICAgICAgLy8gVE9ETzogVXNlIG11bHRpLWNsYXNzIGZvciBsZWFkaW5nIHNwYWNlc1xuICAgICAgYmVnaW46IC8oW1xcdCBdfF4pUkVNKD89XFxzKS8gfVxuICBdIH0pO1xuXG4gIGNvbnN0IERJUkVDVElWRVMgPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgLy8gVE9ETzogVXNlIG11bHRpLWNsYXNzIGZvciBpbmRlbnRhdGlvbiBvbmNlIGF2YWlsYWJsZVxuICAgIGJlZ2luOiAvW1xcdCBdKiMoY29uc3R8ZGlzYWJsZXxlbHNlfGVsc2VpZnxlbmFibGV8ZW5kfGV4dGVybmFsc291cmNlfGlmfHJlZ2lvbilcXGIvLFxuICAgIGVuZDogLyQvLFxuICAgIGtleXdvcmRzOiB7IGtleXdvcmQ6XG4gICAgICAgICdjb25zdCBkaXNhYmxlIGVsc2UgZWxzZWlmIGVuYWJsZSBlbmQgZXh0ZXJuYWxzb3VyY2UgaWYgcmVnaW9uIHRoZW4nIH0sXG4gICAgY29udGFpbnM6IFsgQ09NTUVOVCBdXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmlzdWFsIEJhc2ljIC5ORVQnLFxuICAgIGFsaWFzZXM6IFsgJ3ZiJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAgY2xhc3NOYW1lQWxpYXNlczogeyBsYWJlbDogJ3N5bWJvbCcgfSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2FkZGhhbmRsZXIgYWxpYXMgYWdncmVnYXRlIGFuc2kgYXMgYXN5bmMgYXNzZW1ibHkgYXV0byBiaW5hcnkgYnkgYnlyZWYgYnl2YWwgJyAvKiBhLWIgKi9cbiAgICAgICAgKyAnY2FsbCBjYXNlIGNhdGNoIGNsYXNzIGNvbXBhcmUgY29uc3QgY29udGludWUgY3VzdG9tIGRlY2xhcmUgZGVmYXVsdCBkZWxlZ2F0ZSBkaW0gZGlzdGluY3QgZG8gJyAvKiBjLWQgKi9cbiAgICAgICAgKyAnZWFjaCBlcXVhbHMgZWxzZSBlbHNlaWYgZW5kIGVudW0gZXJhc2UgZXJyb3IgZXZlbnQgZXhpdCBleHBsaWNpdCBmaW5hbGx5IGZvciBmcmllbmQgZnJvbSBmdW5jdGlvbiAnIC8qIGUtZiAqL1xuICAgICAgICArICdnZXQgZ2xvYmFsIGdvdG8gZ3JvdXAgaGFuZGxlcyBpZiBpbXBsZW1lbnRzIGltcG9ydHMgaW4gaW5oZXJpdHMgaW50ZXJmYWNlIGludG8gaXRlcmF0b3IgJyAvKiBnLWkgKi9cbiAgICAgICAgKyAnam9pbiBrZXkgbGV0IGxpYiBsb29wIG1lIG1pZCBtb2R1bGUgbXVzdGluaGVyaXQgbXVzdG92ZXJyaWRlIG15YmFzZSBteWNsYXNzICcgLyogai1tICovXG4gICAgICAgICsgJ25hbWVzcGFjZSBuYXJyb3dpbmcgbmV3IG5leHQgbm90aW5oZXJpdGFibGUgbm90b3ZlcnJpZGFibGUgJyAvKiBuICovXG4gICAgICAgICsgJ29mIG9mZiBvbiBvcGVyYXRvciBvcHRpb24gb3B0aW9uYWwgb3JkZXIgb3ZlcmxvYWRzIG92ZXJyaWRhYmxlIG92ZXJyaWRlcyAnIC8qIG8gKi9cbiAgICAgICAgKyAncGFyYW1hcnJheSBwYXJ0aWFsIHByZXNlcnZlIHByaXZhdGUgcHJvcGVydHkgcHJvdGVjdGVkIHB1YmxpYyAnIC8qIHAgKi9cbiAgICAgICAgKyAncmFpc2VldmVudCByZWFkb25seSByZWRpbSByZW1vdmVoYW5kbGVyIHJlc3VtZSByZXR1cm4gJyAvKiByICovXG4gICAgICAgICsgJ3NlbGVjdCBzZXQgc2hhZG93cyBzaGFyZWQgc2tpcCBzdGF0aWMgc3RlcCBzdG9wIHN0cnVjdHVyZSBzdHJpY3Qgc3ViIHN5bmNsb2NrICcgLyogcyAqL1xuICAgICAgICArICd0YWtlIHRleHQgdGhlbiB0aHJvdyB0byB0cnkgdW5pY29kZSB1bnRpbCB1c2luZyB3aGVuIHdoZXJlIHdoaWxlIHdpZGVuaW5nIHdpdGggd2l0aGV2ZW50cyB3cml0ZW9ubHkgeWllbGQnIC8qIHQteSAqLyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvLyBPcGVyYXRvcnMgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZG90bmV0L3Zpc3VhbC1iYXNpYy9sYW5ndWFnZS1yZWZlcmVuY2Uvb3BlcmF0b3JzXG4gICAgICAgICdhZGRyZXNzb2YgYW5kIGFuZGFsc28gYXdhaXQgZGlyZWN0Y2FzdCBnZXR0eXBlIGdldHhtbG5hbWVzcGFjZSBpcyBpc2ZhbHNlIGlzbm90IGlzdHJ1ZSBsaWtlIG1vZCBuYW1lb2YgbmV3IG5vdCBvciBvcmVsc2UgdHJ5Y2FzdCB0eXBlb2YgeG9yICdcbiAgICAgICAgLy8gVHlwZSBDb252ZXJzaW9uIEZ1bmN0aW9ucyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9kb3RuZXQvdmlzdWFsLWJhc2ljL2xhbmd1YWdlLXJlZmVyZW5jZS9mdW5jdGlvbnMvdHlwZS1jb252ZXJzaW9uLWZ1bmN0aW9uc1xuICAgICAgICArICdjYm9vbCBjYnl0ZSBjY2hhciBjZGF0ZSBjZGJsIGNkZWMgY2ludCBjbG5nIGNvYmogY3NieXRlIGNzaG9ydCBjc25nIGNzdHIgY3VpbnQgY3VsbmcgY3VzaG9ydCcsXG4gICAgICB0eXBlOlxuICAgICAgICAvLyBEYXRhIHR5cGVzIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2RvdG5ldC92aXN1YWwtYmFzaWMvbGFuZ3VhZ2UtcmVmZXJlbmNlL2RhdGEtdHlwZXNcbiAgICAgICAgJ2Jvb2xlYW4gYnl0ZSBjaGFyIGRhdGUgZGVjaW1hbCBkb3VibGUgaW50ZWdlciBsb25nIG9iamVjdCBzYnl0ZSBzaG9ydCBzaW5nbGUgc3RyaW5nIHVpbnRlZ2VyIHVsb25nIHVzaG9ydCcsXG4gICAgICBsaXRlcmFsOiAndHJ1ZSBmYWxzZSBub3RoaW5nJ1xuICAgIH0sXG4gICAgaWxsZWdhbDpcbiAgICAgICcvL3xcXFxce3xcXFxcfXxlbmRpZnxnb3N1Ynx2YXJpYW50fHdlbmR8XlxcXFwkICcgLyogcmVzZXJ2ZWQgZGVwcmVjYXRlZCBrZXl3b3JkcyAqLyxcbiAgICBjb250YWluczogW1xuICAgICAgQ0hBUkFDVEVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgREFURSxcbiAgICAgIE5VTUJFUixcbiAgICAgIExBQkVMLFxuICAgICAgRE9DX0NPTU1FTlQsXG4gICAgICBDT01NRU5ULFxuICAgICAgRElSRUNUSVZFU1xuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2Ym5ldDtcbiIsICIvKlxuTGFuZ3VhZ2U6IFZCU2NyaXB0XG5EZXNjcmlwdGlvbjogVkJTY3JpcHQgKFwiTWljcm9zb2Z0IFZpc3VhbCBCYXNpYyBTY3JpcHRpbmcgRWRpdGlvblwiKSBpcyBhbiBBY3RpdmUgU2NyaXB0aW5nIGxhbmd1YWdlIGRldmVsb3BlZCBieSBNaWNyb3NvZnQgdGhhdCBpcyBtb2RlbGVkIG9uIFZpc3VhbCBCYXNpYy5cbkF1dGhvcjogTmlraXRhIExlZHlhZXYgPGxlbmlraXRhQHlhbmRleC5ydT5cbkNvbnRyaWJ1dG9yczogTWljaGFsIEdhYnJ1a2lld2ljeiA8bWdhYnJ1QGdtYWlsLmNvbT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZCU2NyaXB0XG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gdmJzY3JpcHQoaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IEJVSUxUX0lOX0ZVTkNUSU9OUyA9IFtcbiAgICBcImxjYXNlXCIsXG4gICAgXCJtb250aFwiLFxuICAgIFwidmFydHlwZVwiLFxuICAgIFwiaW5zdHJyZXZcIixcbiAgICBcInVib3VuZFwiLFxuICAgIFwic2V0bG9jYWxlXCIsXG4gICAgXCJnZXRvYmplY3RcIixcbiAgICBcInJnYlwiLFxuICAgIFwiZ2V0cmVmXCIsXG4gICAgXCJzdHJpbmdcIixcbiAgICBcIndlZWtkYXluYW1lXCIsXG4gICAgXCJybmRcIixcbiAgICBcImRhdGVhZGRcIixcbiAgICBcIm1vbnRobmFtZVwiLFxuICAgIFwibm93XCIsXG4gICAgXCJkYXlcIixcbiAgICBcIm1pbnV0ZVwiLFxuICAgIFwiaXNhcnJheVwiLFxuICAgIFwiY2Jvb2xcIixcbiAgICBcInJvdW5kXCIsXG4gICAgXCJmb3JtYXRjdXJyZW5jeVwiLFxuICAgIFwiY29udmVyc2lvbnNcIixcbiAgICBcImNzbmdcIixcbiAgICBcInRpbWV2YWx1ZVwiLFxuICAgIFwic2Vjb25kXCIsXG4gICAgXCJ5ZWFyXCIsXG4gICAgXCJzcGFjZVwiLFxuICAgIFwiYWJzXCIsXG4gICAgXCJjbG5nXCIsXG4gICAgXCJ0aW1lc2VyaWFsXCIsXG4gICAgXCJmaXhzXCIsXG4gICAgXCJsZW5cIixcbiAgICBcImFzY1wiLFxuICAgIFwiaXNlbXB0eVwiLFxuICAgIFwibWF0aHNcIixcbiAgICBcImRhdGVzZXJpYWxcIixcbiAgICBcImF0blwiLFxuICAgIFwidGltZXJcIixcbiAgICBcImlzb2JqZWN0XCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcIndlZWtkYXlcIixcbiAgICBcImRhdGV2YWx1ZVwiLFxuICAgIFwiY2N1clwiLFxuICAgIFwiaXNkYXRlXCIsXG4gICAgXCJpbnN0clwiLFxuICAgIFwiZGF0ZWRpZmZcIixcbiAgICBcImZvcm1hdGRhdGV0aW1lXCIsXG4gICAgXCJyZXBsYWNlXCIsXG4gICAgXCJpc251bGxcIixcbiAgICBcInJpZ2h0XCIsXG4gICAgXCJzZ25cIixcbiAgICBcImFycmF5XCIsXG4gICAgXCJzbnVtZXJpY1wiLFxuICAgIFwibG9nXCIsXG4gICAgXCJjZGJsXCIsXG4gICAgXCJoZXhcIixcbiAgICBcImNoclwiLFxuICAgIFwibGJvdW5kXCIsXG4gICAgXCJtc2dib3hcIixcbiAgICBcInVjYXNlXCIsXG4gICAgXCJnZXRsb2NhbGVcIixcbiAgICBcImNvc1wiLFxuICAgIFwiY2RhdGVcIixcbiAgICBcImNieXRlXCIsXG4gICAgXCJydHJpbVwiLFxuICAgIFwiam9pblwiLFxuICAgIFwiaG91clwiLFxuICAgIFwib2N0XCIsXG4gICAgXCJ0eXBlbmFtZVwiLFxuICAgIFwidHJpbVwiLFxuICAgIFwic3RyY29tcFwiLFxuICAgIFwiaW50XCIsXG4gICAgXCJjcmVhdGVvYmplY3RcIixcbiAgICBcImxvYWRwaWN0dXJlXCIsXG4gICAgXCJ0YW5cIixcbiAgICBcImZvcm1hdG51bWJlclwiLFxuICAgIFwibWlkXCIsXG4gICAgXCJzcGxpdFwiLFxuICAgIFwiY2ludFwiLFxuICAgIFwic2luXCIsXG4gICAgXCJkYXRlcGFydFwiLFxuICAgIFwibHRyaW1cIixcbiAgICBcInNxclwiLFxuICAgIFwidGltZVwiLFxuICAgIFwiZGVyaXZlZFwiLFxuICAgIFwiZXZhbFwiLFxuICAgIFwiZGF0ZVwiLFxuICAgIFwiZm9ybWF0cGVyY2VudFwiLFxuICAgIFwiZXhwXCIsXG4gICAgXCJpbnB1dGJveFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwiYXNjd1wiLFxuICAgIFwiY2hyd1wiLFxuICAgIFwicmVnZXhwXCIsXG4gICAgXCJjc3RyXCIsXG4gICAgXCJlcnJcIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTl9PQkpFQ1RTID0gW1xuICAgIFwic2VydmVyXCIsXG4gICAgXCJyZXNwb25zZVwiLFxuICAgIFwicmVxdWVzdFwiLFxuICAgIC8vIHRha2Ugbm8gYXJndW1lbnRzIHNvIGNhbiBiZSBjYWxsZWQgd2l0aG91dCAoKVxuICAgIFwic2NyaXB0ZW5naW5lXCIsXG4gICAgXCJzY3JpcHRlbmdpbmVidWlsZHZlcnNpb25cIixcbiAgICBcInNjcmlwdGVuZ2luZW1pbm9ydmVyc2lvblwiLFxuICAgIFwic2NyaXB0ZW5naW5lbWFqb3J2ZXJzaW9uXCJcbiAgXTtcblxuICBjb25zdCBCVUlMVF9JTl9DQUxMID0ge1xuICAgIGJlZ2luOiByZWdleC5jb25jYXQocmVnZXguZWl0aGVyKC4uLkJVSUxUX0lOX0ZVTkNUSU9OUyksIFwiXFxcXHMqXFxcXChcIiksXG4gICAgLy8gcmVsZXZhbmNlIDAgYmVjYXVzZSB0aGlzIGlzIGFjdGluZyBhcyBhIGJlZ2luS2V5d29yZHMgcmVhbGx5XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIGtleXdvcmRzOiB7IGJ1aWx0X2luOiBCVUlMVF9JTl9GVU5DVElPTlMgfVxuICB9O1xuXG4gIGNvbnN0IExJVEVSQUxTID0gW1xuICAgIFwidHJ1ZVwiLFxuICAgIFwiZmFsc2VcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm5vdGhpbmdcIixcbiAgICBcImVtcHR5XCJcbiAgXTtcblxuICBjb25zdCBLRVlXT1JEUyA9IFtcbiAgICBcImNhbGxcIixcbiAgICBcImNsYXNzXCIsXG4gICAgXCJjb25zdFwiLFxuICAgIFwiZGltXCIsXG4gICAgXCJkb1wiLFxuICAgIFwibG9vcFwiLFxuICAgIFwiZXJhc2VcIixcbiAgICBcImV4ZWN1dGVcIixcbiAgICBcImV4ZWN1dGVnbG9iYWxcIixcbiAgICBcImV4aXRcIixcbiAgICBcImZvclwiLFxuICAgIFwiZWFjaFwiLFxuICAgIFwibmV4dFwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcImlmXCIsXG4gICAgXCJ0aGVuXCIsXG4gICAgXCJlbHNlXCIsXG4gICAgXCJvblwiLFxuICAgIFwiZXJyb3JcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwiZXhwbGljaXRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwicHJpdmF0ZVwiLFxuICAgIFwicHJvcGVydHlcIixcbiAgICBcImxldFwiLFxuICAgIFwiZ2V0XCIsXG4gICAgXCJwdWJsaWNcIixcbiAgICBcInJhbmRvbWl6ZVwiLFxuICAgIFwicmVkaW1cIixcbiAgICBcInJlbVwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJjYXNlXCIsXG4gICAgXCJzZXRcIixcbiAgICBcInN0b3BcIixcbiAgICBcInN1YlwiLFxuICAgIFwid2hpbGVcIixcbiAgICBcIndlbmRcIixcbiAgICBcIndpdGhcIixcbiAgICBcImVuZFwiLFxuICAgIFwidG9cIixcbiAgICBcImVsc2VpZlwiLFxuICAgIFwiaXNcIixcbiAgICBcIm9yXCIsXG4gICAgXCJ4b3JcIixcbiAgICBcImFuZFwiLFxuICAgIFwibm90XCIsXG4gICAgXCJjbGFzc19pbml0aWFsaXplXCIsXG4gICAgXCJjbGFzc190ZXJtaW5hdGVcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcInByZXNlcnZlXCIsXG4gICAgXCJpblwiLFxuICAgIFwibWVcIixcbiAgICBcImJ5dmFsXCIsXG4gICAgXCJieXJlZlwiLFxuICAgIFwic3RlcFwiLFxuICAgIFwicmVzdW1lXCIsXG4gICAgXCJnb3RvXCJcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdWQlNjcmlwdCcsXG4gICAgYWxpYXNlczogWyAndmJzJyBdLFxuICAgIGNhc2VfaW5zZW5zaXRpdmU6IHRydWUsXG4gICAga2V5d29yZHM6IHtcbiAgICAgIGtleXdvcmQ6IEtFWVdPUkRTLFxuICAgICAgYnVpbHRfaW46IEJVSUxUX0lOX09CSkVDVFMsXG4gICAgICBsaXRlcmFsOiBMSVRFUkFMU1xuICAgIH0sXG4gICAgaWxsZWdhbDogJy8vJyxcbiAgICBjb250YWluczogW1xuICAgICAgQlVJTFRfSU5fQ0FMTCxcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlFVT1RFX1NUUklOR19NT0RFLCB7IGNvbnRhaW5zOiBbIHsgYmVnaW46ICdcIlwiJyB9IF0gfSksXG4gICAgICBobGpzLkNPTU1FTlQoXG4gICAgICAgIC8nLyxcbiAgICAgICAgLyQvLFxuICAgICAgICB7IHJlbGV2YW5jZTogMCB9XG4gICAgICApLFxuICAgICAgaGxqcy5DX05VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHZic2NyaXB0O1xuIiwgIi8qXG5MYW5ndWFnZTogVkJTY3JpcHQgaW4gSFRNTFxuUmVxdWlyZXM6IHhtbC5qcywgdmJzY3JpcHQuanNcbkF1dGhvcjogSXZhbiBTYWdhbGFldiA8bWFuaWFjQHNvZnR3YXJlbWFuaWFjcy5vcmc+XG5EZXNjcmlwdGlvbjogXCJCcmlkZ2VcIiBsYW5ndWFnZSBkZWZpbmluZyBmcmFnbWVudHMgb2YgVkJTY3JpcHQgaW4gSFRNTCB3aXRoaW4gPCUgLi4gJT5cbldlYnNpdGU6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZCU2NyaXB0XG5DYXRlZ29yeTogc2NyaXB0aW5nXG4qL1xuXG5mdW5jdGlvbiB2YnNjcmlwdEh0bWwoaGxqcykge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdWQlNjcmlwdCBpbiBIVE1MJyxcbiAgICBzdWJMYW5ndWFnZTogJ3htbCcsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgYmVnaW46ICc8JScsXG4gICAgICAgIGVuZDogJyU+JyxcbiAgICAgICAgc3ViTGFuZ3VhZ2U6ICd2YnNjcmlwdCdcbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmJzY3JpcHRIdG1sO1xuIiwgIi8qXG5MYW5ndWFnZTogVmVyaWxvZ1xuQXV0aG9yOiBKb24gRXZhbnMgPGpvbkBjcmFmdHlqb24uY29tPlxuQ29udHJpYnV0b3JzOiBCb29uZSBTZXZlcnNvbiA8Ym9vbmUuc2V2ZXJzb25AZ21haWwuY29tPlxuRGVzY3JpcHRpb246IFZlcmlsb2cgaXMgYSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBsYW5ndWFnZSB1c2VkIGluIGVsZWN0cm9uaWMgZGVzaWduIGF1dG9tYXRpb24gdG8gZGVzY3JpYmUgZGlnaXRhbCBhbmQgbWl4ZWQtc2lnbmFsIHN5c3RlbXMuIFRoaXMgaGlnaGxpZ2h0ZXIgc3VwcG9ydHMgVmVyaWxvZyBhbmQgU3lzdGVtVmVyaWxvZyB0aHJvdWdoIElFRUUgMTgwMC0yMDEyLlxuV2Vic2l0ZTogaHR0cDovL3d3dy52ZXJpbG9nLmNvbVxuQ2F0ZWdvcnk6IGhhcmR3YXJlXG4qL1xuXG5mdW5jdGlvbiB2ZXJpbG9nKGhsanMpIHtcbiAgY29uc3QgcmVnZXggPSBobGpzLnJlZ2V4O1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogL1xcJD9bXFx3XSsoXFwkW1xcd10rKSovLFxuICAgIGtleXdvcmQ6IFtcbiAgICAgIFwiYWNjZXB0X29uXCIsXG4gICAgICBcImFsaWFzXCIsXG4gICAgICBcImFsd2F5c1wiLFxuICAgICAgXCJhbHdheXNfY29tYlwiLFxuICAgICAgXCJhbHdheXNfZmZcIixcbiAgICAgIFwiYWx3YXlzX2xhdGNoXCIsXG4gICAgICBcImFuZFwiLFxuICAgICAgXCJhc3NlcnRcIixcbiAgICAgIFwiYXNzaWduXCIsXG4gICAgICBcImFzc3VtZVwiLFxuICAgICAgXCJhdXRvbWF0aWNcIixcbiAgICAgIFwiYmVmb3JlXCIsXG4gICAgICBcImJlZ2luXCIsXG4gICAgICBcImJpbmRcIixcbiAgICAgIFwiYmluc1wiLFxuICAgICAgXCJiaW5zb2ZcIixcbiAgICAgIFwiYml0XCIsXG4gICAgICBcImJyZWFrXCIsXG4gICAgICBcImJ1ZnwwXCIsXG4gICAgICBcImJ1ZmlmMFwiLFxuICAgICAgXCJidWZpZjFcIixcbiAgICAgIFwiYnl0ZVwiLFxuICAgICAgXCJjYXNlXCIsXG4gICAgICBcImNhc2V4XCIsXG4gICAgICBcImNhc2V6XCIsXG4gICAgICBcImNlbGxcIixcbiAgICAgIFwiY2hhbmRsZVwiLFxuICAgICAgXCJjaGVja2VyXCIsXG4gICAgICBcImNsYXNzXCIsXG4gICAgICBcImNsb2NraW5nXCIsXG4gICAgICBcImNtb3NcIixcbiAgICAgIFwiY29uZmlnXCIsXG4gICAgICBcImNvbnN0XCIsXG4gICAgICBcImNvbnN0cmFpbnRcIixcbiAgICAgIFwiY29udGV4dFwiLFxuICAgICAgXCJjb250aW51ZVwiLFxuICAgICAgXCJjb3ZlclwiLFxuICAgICAgXCJjb3Zlcmdyb3VwXCIsXG4gICAgICBcImNvdmVycG9pbnRcIixcbiAgICAgIFwiY3Jvc3NcIixcbiAgICAgIFwiZGVhc3NpZ25cIixcbiAgICAgIFwiZGVmYXVsdFwiLFxuICAgICAgXCJkZWZwYXJhbVwiLFxuICAgICAgXCJkZXNpZ25cIixcbiAgICAgIFwiZGlzYWJsZVwiLFxuICAgICAgXCJkaXN0XCIsXG4gICAgICBcImRvXCIsXG4gICAgICBcImVkZ2VcIixcbiAgICAgIFwiZWxzZVwiLFxuICAgICAgXCJlbmRcIixcbiAgICAgIFwiZW5kY2FzZVwiLFxuICAgICAgXCJlbmRjaGVja2VyXCIsXG4gICAgICBcImVuZGNsYXNzXCIsXG4gICAgICBcImVuZGNsb2NraW5nXCIsXG4gICAgICBcImVuZGNvbmZpZ1wiLFxuICAgICAgXCJlbmRmdW5jdGlvblwiLFxuICAgICAgXCJlbmRnZW5lcmF0ZVwiLFxuICAgICAgXCJlbmRncm91cFwiLFxuICAgICAgXCJlbmRpbnRlcmZhY2VcIixcbiAgICAgIFwiZW5kbW9kdWxlXCIsXG4gICAgICBcImVuZHBhY2thZ2VcIixcbiAgICAgIFwiZW5kcHJpbWl0aXZlXCIsXG4gICAgICBcImVuZHByb2dyYW1cIixcbiAgICAgIFwiZW5kcHJvcGVydHlcIixcbiAgICAgIFwiZW5kc3BlY2lmeVwiLFxuICAgICAgXCJlbmRzZXF1ZW5jZVwiLFxuICAgICAgXCJlbmR0YWJsZVwiLFxuICAgICAgXCJlbmR0YXNrXCIsXG4gICAgICBcImVudW1cIixcbiAgICAgIFwiZXZlbnRcIixcbiAgICAgIFwiZXZlbnR1YWxseVwiLFxuICAgICAgXCJleHBlY3RcIixcbiAgICAgIFwiZXhwb3J0XCIsXG4gICAgICBcImV4dGVuZHNcIixcbiAgICAgIFwiZXh0ZXJuXCIsXG4gICAgICBcImZpbmFsXCIsXG4gICAgICBcImZpcnN0X21hdGNoXCIsXG4gICAgICBcImZvclwiLFxuICAgICAgXCJmb3JjZVwiLFxuICAgICAgXCJmb3JlYWNoXCIsXG4gICAgICBcImZvcmV2ZXJcIixcbiAgICAgIFwiZm9ya1wiLFxuICAgICAgXCJmb3Jram9pblwiLFxuICAgICAgXCJmdW5jdGlvblwiLFxuICAgICAgXCJnZW5lcmF0ZXw1XCIsXG4gICAgICBcImdlbnZhclwiLFxuICAgICAgXCJnbG9iYWxcIixcbiAgICAgIFwiaGlnaHowXCIsXG4gICAgICBcImhpZ2h6MVwiLFxuICAgICAgXCJpZlwiLFxuICAgICAgXCJpZmZcIixcbiAgICAgIFwiaWZub25lXCIsXG4gICAgICBcImlnbm9yZV9iaW5zXCIsXG4gICAgICBcImlsbGVnYWxfYmluc1wiLFxuICAgICAgXCJpbXBsZW1lbnRzXCIsXG4gICAgICBcImltcGxpZXNcIixcbiAgICAgIFwiaW1wb3J0XCIsXG4gICAgICBcImluY2RpclwiLFxuICAgICAgXCJpbmNsdWRlXCIsXG4gICAgICBcImluaXRpYWxcIixcbiAgICAgIFwiaW5vdXRcIixcbiAgICAgIFwiaW5wdXRcIixcbiAgICAgIFwiaW5zaWRlXCIsXG4gICAgICBcImluc3RhbmNlXCIsXG4gICAgICBcImludFwiLFxuICAgICAgXCJpbnRlZ2VyXCIsXG4gICAgICBcImludGVyY29ubmVjdFwiLFxuICAgICAgXCJpbnRlcmZhY2VcIixcbiAgICAgIFwiaW50ZXJzZWN0XCIsXG4gICAgICBcImpvaW5cIixcbiAgICAgIFwiam9pbl9hbnlcIixcbiAgICAgIFwiam9pbl9ub25lXCIsXG4gICAgICBcImxhcmdlXCIsXG4gICAgICBcImxldFwiLFxuICAgICAgXCJsaWJsaXN0XCIsXG4gICAgICBcImxpYnJhcnlcIixcbiAgICAgIFwibG9jYWxcIixcbiAgICAgIFwibG9jYWxwYXJhbVwiLFxuICAgICAgXCJsb2dpY1wiLFxuICAgICAgXCJsb25naW50XCIsXG4gICAgICBcIm1hY3JvbW9kdWxlXCIsXG4gICAgICBcIm1hdGNoZXNcIixcbiAgICAgIFwibWVkaXVtXCIsXG4gICAgICBcIm1vZHBvcnRcIixcbiAgICAgIFwibW9kdWxlXCIsXG4gICAgICBcIm5hbmRcIixcbiAgICAgIFwibmVnZWRnZVwiLFxuICAgICAgXCJuZXR0eXBlXCIsXG4gICAgICBcIm5ld1wiLFxuICAgICAgXCJuZXh0dGltZVwiLFxuICAgICAgXCJubW9zXCIsXG4gICAgICBcIm5vclwiLFxuICAgICAgXCJub3Nob3djYW5jZWxsZWRcIixcbiAgICAgIFwibm90XCIsXG4gICAgICBcIm5vdGlmMFwiLFxuICAgICAgXCJub3RpZjFcIixcbiAgICAgIFwib3JcIixcbiAgICAgIFwib3V0cHV0XCIsXG4gICAgICBcInBhY2thZ2VcIixcbiAgICAgIFwicGFja2VkXCIsXG4gICAgICBcInBhcmFtZXRlclwiLFxuICAgICAgXCJwbW9zXCIsXG4gICAgICBcInBvc2VkZ2VcIixcbiAgICAgIFwicHJpbWl0aXZlXCIsXG4gICAgICBcInByaW9yaXR5XCIsXG4gICAgICBcInByb2dyYW1cIixcbiAgICAgIFwicHJvcGVydHlcIixcbiAgICAgIFwicHJvdGVjdGVkXCIsXG4gICAgICBcInB1bGwwXCIsXG4gICAgICBcInB1bGwxXCIsXG4gICAgICBcInB1bGxkb3duXCIsXG4gICAgICBcInB1bGx1cFwiLFxuICAgICAgXCJwdWxzZXN0eWxlX29uZGV0ZWN0XCIsXG4gICAgICBcInB1bHNlc3R5bGVfb25ldmVudFwiLFxuICAgICAgXCJwdXJlXCIsXG4gICAgICBcInJhbmRcIixcbiAgICAgIFwicmFuZGNcIixcbiAgICAgIFwicmFuZGNhc2VcIixcbiAgICAgIFwicmFuZHNlcXVlbmNlXCIsXG4gICAgICBcInJjbW9zXCIsXG4gICAgICBcInJlYWxcIixcbiAgICAgIFwicmVhbHRpbWVcIixcbiAgICAgIFwicmVmXCIsXG4gICAgICBcInJlZ1wiLFxuICAgICAgXCJyZWplY3Rfb25cIixcbiAgICAgIFwicmVsZWFzZVwiLFxuICAgICAgXCJyZXBlYXRcIixcbiAgICAgIFwicmVzdHJpY3RcIixcbiAgICAgIFwicmV0dXJuXCIsXG4gICAgICBcInJubW9zXCIsXG4gICAgICBcInJwbW9zXCIsXG4gICAgICBcInJ0cmFuXCIsXG4gICAgICBcInJ0cmFuaWYwXCIsXG4gICAgICBcInJ0cmFuaWYxXCIsXG4gICAgICBcInNfYWx3YXlzXCIsXG4gICAgICBcInNfZXZlbnR1YWxseVwiLFxuICAgICAgXCJzX25leHR0aW1lXCIsXG4gICAgICBcInNfdW50aWxcIixcbiAgICAgIFwic191bnRpbF93aXRoXCIsXG4gICAgICBcInNjYWxhcmVkXCIsXG4gICAgICBcInNlcXVlbmNlXCIsXG4gICAgICBcInNob3J0aW50XCIsXG4gICAgICBcInNob3J0cmVhbFwiLFxuICAgICAgXCJzaG93Y2FuY2VsbGVkXCIsXG4gICAgICBcInNpZ25lZFwiLFxuICAgICAgXCJzbWFsbFwiLFxuICAgICAgXCJzb2Z0XCIsXG4gICAgICBcInNvbHZlXCIsXG4gICAgICBcInNwZWNpZnlcIixcbiAgICAgIFwic3BlY3BhcmFtXCIsXG4gICAgICBcInN0YXRpY1wiLFxuICAgICAgXCJzdHJpbmdcIixcbiAgICAgIFwic3Ryb25nXCIsXG4gICAgICBcInN0cm9uZzBcIixcbiAgICAgIFwic3Ryb25nMVwiLFxuICAgICAgXCJzdHJ1Y3RcIixcbiAgICAgIFwic3VwZXJcIixcbiAgICAgIFwic3VwcGx5MFwiLFxuICAgICAgXCJzdXBwbHkxXCIsXG4gICAgICBcInN5bmNfYWNjZXB0X29uXCIsXG4gICAgICBcInN5bmNfcmVqZWN0X29uXCIsXG4gICAgICBcInRhYmxlXCIsXG4gICAgICBcInRhZ2dlZFwiLFxuICAgICAgXCJ0YXNrXCIsXG4gICAgICBcInRoaXNcIixcbiAgICAgIFwidGhyb3VnaG91dFwiLFxuICAgICAgXCJ0aW1lXCIsXG4gICAgICBcInRpbWVwcmVjaXNpb25cIixcbiAgICAgIFwidGltZXVuaXRcIixcbiAgICAgIFwidHJhblwiLFxuICAgICAgXCJ0cmFuaWYwXCIsXG4gICAgICBcInRyYW5pZjFcIixcbiAgICAgIFwidHJpXCIsXG4gICAgICBcInRyaTBcIixcbiAgICAgIFwidHJpMVwiLFxuICAgICAgXCJ0cmlhbmRcIixcbiAgICAgIFwidHJpb3JcIixcbiAgICAgIFwidHJpcmVnXCIsXG4gICAgICBcInR5cGVcIixcbiAgICAgIFwidHlwZWRlZlwiLFxuICAgICAgXCJ1bmlvblwiLFxuICAgICAgXCJ1bmlxdWVcIixcbiAgICAgIFwidW5pcXVlMFwiLFxuICAgICAgXCJ1bnNpZ25lZFwiLFxuICAgICAgXCJ1bnRpbFwiLFxuICAgICAgXCJ1bnRpbF93aXRoXCIsXG4gICAgICBcInVudHlwZWRcIixcbiAgICAgIFwidXNlXCIsXG4gICAgICBcInV3aXJlXCIsXG4gICAgICBcInZhclwiLFxuICAgICAgXCJ2ZWN0b3JlZFwiLFxuICAgICAgXCJ2aXJ0dWFsXCIsXG4gICAgICBcInZvaWRcIixcbiAgICAgIFwid2FpdFwiLFxuICAgICAgXCJ3YWl0X29yZGVyXCIsXG4gICAgICBcIndhbmRcIixcbiAgICAgIFwid2Vha1wiLFxuICAgICAgXCJ3ZWFrMFwiLFxuICAgICAgXCJ3ZWFrMVwiLFxuICAgICAgXCJ3aGlsZVwiLFxuICAgICAgXCJ3aWxkY2FyZFwiLFxuICAgICAgXCJ3aXJlXCIsXG4gICAgICBcIndpdGhcIixcbiAgICAgIFwid2l0aGluXCIsXG4gICAgICBcIndvclwiLFxuICAgICAgXCJ4bm9yXCIsXG4gICAgICBcInhvclwiXG4gICAgXSxcbiAgICBsaXRlcmFsOiBbICdudWxsJyBdLFxuICAgIGJ1aWx0X2luOiBbXG4gICAgICBcIiRmaW5pc2hcIixcbiAgICAgIFwiJHN0b3BcIixcbiAgICAgIFwiJGV4aXRcIixcbiAgICAgIFwiJGZhdGFsXCIsXG4gICAgICBcIiRlcnJvclwiLFxuICAgICAgXCIkd2FybmluZ1wiLFxuICAgICAgXCIkaW5mb1wiLFxuICAgICAgXCIkcmVhbHRpbWVcIixcbiAgICAgIFwiJHRpbWVcIixcbiAgICAgIFwiJHByaW50dGltZXNjYWxlXCIsXG4gICAgICBcIiRiaXRzdG9yZWFsXCIsXG4gICAgICBcIiRiaXRzdG9zaG9ydHJlYWxcIixcbiAgICAgIFwiJGl0b3JcIixcbiAgICAgIFwiJHNpZ25lZFwiLFxuICAgICAgXCIkY2FzdFwiLFxuICAgICAgXCIkYml0c1wiLFxuICAgICAgXCIkc3RpbWVcIixcbiAgICAgIFwiJHRpbWVmb3JtYXRcIixcbiAgICAgIFwiJHJlYWx0b2JpdHNcIixcbiAgICAgIFwiJHNob3J0cmVhbHRvYml0c1wiLFxuICAgICAgXCIkcnRvaVwiLFxuICAgICAgXCIkdW5zaWduZWRcIixcbiAgICAgIFwiJGFzc2VydG9uXCIsXG4gICAgICBcIiRhc3NlcnRraWxsXCIsXG4gICAgICBcIiRhc3NlcnRwYXNzb25cIixcbiAgICAgIFwiJGFzc2VydGZhaWxvblwiLFxuICAgICAgXCIkYXNzZXJ0bm9udmFjdW91c29uXCIsXG4gICAgICBcIiRhc3NlcnRvZmZcIixcbiAgICAgIFwiJGFzc2VydGNvbnRyb2xcIixcbiAgICAgIFwiJGFzc2VydHBhc3NvZmZcIixcbiAgICAgIFwiJGFzc2VydGZhaWxvZmZcIixcbiAgICAgIFwiJGFzc2VydHZhY3VvdXNvZmZcIixcbiAgICAgIFwiJGlzdW5ib3VuZGVkXCIsXG4gICAgICBcIiRzYW1wbGVkXCIsXG4gICAgICBcIiRmZWxsXCIsXG4gICAgICBcIiRjaGFuZ2VkXCIsXG4gICAgICBcIiRwYXN0X2djbGtcIixcbiAgICAgIFwiJGZlbGxfZ2Nsa1wiLFxuICAgICAgXCIkY2hhbmdlZF9nY2xrXCIsXG4gICAgICBcIiRyaXNpbmdfZ2Nsa1wiLFxuICAgICAgXCIkc3RlYWR5X2djbGtcIixcbiAgICAgIFwiJGNvdmVyYWdlX2NvbnRyb2xcIixcbiAgICAgIFwiJGNvdmVyYWdlX2dldFwiLFxuICAgICAgXCIkY292ZXJhZ2Vfc2F2ZVwiLFxuICAgICAgXCIkc2V0X2NvdmVyYWdlX2RiX25hbWVcIixcbiAgICAgIFwiJHJvc2VcIixcbiAgICAgIFwiJHN0YWJsZVwiLFxuICAgICAgXCIkcGFzdFwiLFxuICAgICAgXCIkcm9zZV9nY2xrXCIsXG4gICAgICBcIiRzdGFibGVfZ2Nsa1wiLFxuICAgICAgXCIkZnV0dXJlX2djbGtcIixcbiAgICAgIFwiJGZhbGxpbmdfZ2Nsa1wiLFxuICAgICAgXCIkY2hhbmdpbmdfZ2Nsa1wiLFxuICAgICAgXCIkZGlzcGxheVwiLFxuICAgICAgXCIkY292ZXJhZ2VfZ2V0X21heFwiLFxuICAgICAgXCIkY292ZXJhZ2VfbWVyZ2VcIixcbiAgICAgIFwiJGdldF9jb3ZlcmFnZVwiLFxuICAgICAgXCIkbG9hZF9jb3ZlcmFnZV9kYlwiLFxuICAgICAgXCIkdHlwZW5hbWVcIixcbiAgICAgIFwiJHVucGFja2VkX2RpbWVuc2lvbnNcIixcbiAgICAgIFwiJGxlZnRcIixcbiAgICAgIFwiJGxvd1wiLFxuICAgICAgXCIkaW5jcmVtZW50XCIsXG4gICAgICBcIiRjbG9nMlwiLFxuICAgICAgXCIkbG5cIixcbiAgICAgIFwiJGxvZzEwXCIsXG4gICAgICBcIiRleHBcIixcbiAgICAgIFwiJHNxcnRcIixcbiAgICAgIFwiJHBvd1wiLFxuICAgICAgXCIkZmxvb3JcIixcbiAgICAgIFwiJGNlaWxcIixcbiAgICAgIFwiJHNpblwiLFxuICAgICAgXCIkY29zXCIsXG4gICAgICBcIiR0YW5cIixcbiAgICAgIFwiJGNvdW50Yml0c1wiLFxuICAgICAgXCIkb25laG90XCIsXG4gICAgICBcIiRpc3Vua25vd25cIixcbiAgICAgIFwiJGZhdGFsXCIsXG4gICAgICBcIiR3YXJuaW5nXCIsXG4gICAgICBcIiRkaW1lbnNpb25zXCIsXG4gICAgICBcIiRyaWdodFwiLFxuICAgICAgXCIkaGlnaFwiLFxuICAgICAgXCIkc2l6ZVwiLFxuICAgICAgXCIkYXNpblwiLFxuICAgICAgXCIkYWNvc1wiLFxuICAgICAgXCIkYXRhblwiLFxuICAgICAgXCIkYXRhbjJcIixcbiAgICAgIFwiJGh5cG90XCIsXG4gICAgICBcIiRzaW5oXCIsXG4gICAgICBcIiRjb3NoXCIsXG4gICAgICBcIiR0YW5oXCIsXG4gICAgICBcIiRhc2luaFwiLFxuICAgICAgXCIkYWNvc2hcIixcbiAgICAgIFwiJGF0YW5oXCIsXG4gICAgICBcIiRjb3VudG9uZXNcIixcbiAgICAgIFwiJG9uZWhvdDBcIixcbiAgICAgIFwiJGVycm9yXCIsXG4gICAgICBcIiRpbmZvXCIsXG4gICAgICBcIiRyYW5kb21cIixcbiAgICAgIFwiJGRpc3RfY2hpX3NxdWFyZVwiLFxuICAgICAgXCIkZGlzdF9lcmxhbmdcIixcbiAgICAgIFwiJGRpc3RfZXhwb25lbnRpYWxcIixcbiAgICAgIFwiJGRpc3Rfbm9ybWFsXCIsXG4gICAgICBcIiRkaXN0X3BvaXNzb25cIixcbiAgICAgIFwiJGRpc3RfdFwiLFxuICAgICAgXCIkZGlzdF91bmlmb3JtXCIsXG4gICAgICBcIiRxX2luaXRpYWxpemVcIixcbiAgICAgIFwiJHFfcmVtb3ZlXCIsXG4gICAgICBcIiRxX2V4YW1cIixcbiAgICAgIFwiJGFzeW5jJGFuZCRhcnJheVwiLFxuICAgICAgXCIkYXN5bmMkbmFuZCRhcnJheVwiLFxuICAgICAgXCIkYXN5bmMkb3IkYXJyYXlcIixcbiAgICAgIFwiJGFzeW5jJG5vciRhcnJheVwiLFxuICAgICAgXCIkc3luYyRhbmQkYXJyYXlcIixcbiAgICAgIFwiJHN5bmMkbmFuZCRhcnJheVwiLFxuICAgICAgXCIkc3luYyRvciRhcnJheVwiLFxuICAgICAgXCIkc3luYyRub3IkYXJyYXlcIixcbiAgICAgIFwiJHFfYWRkXCIsXG4gICAgICBcIiRxX2Z1bGxcIixcbiAgICAgIFwiJHBzcHJpbnRmXCIsXG4gICAgICBcIiRhc3luYyRhbmQkcGxhbmVcIixcbiAgICAgIFwiJGFzeW5jJG5hbmQkcGxhbmVcIixcbiAgICAgIFwiJGFzeW5jJG9yJHBsYW5lXCIsXG4gICAgICBcIiRhc3luYyRub3IkcGxhbmVcIixcbiAgICAgIFwiJHN5bmMkYW5kJHBsYW5lXCIsXG4gICAgICBcIiRzeW5jJG5hbmQkcGxhbmVcIixcbiAgICAgIFwiJHN5bmMkb3IkcGxhbmVcIixcbiAgICAgIFwiJHN5bmMkbm9yJHBsYW5lXCIsXG4gICAgICBcIiRzeXN0ZW1cIixcbiAgICAgIFwiJGRpc3BsYXlcIixcbiAgICAgIFwiJGRpc3BsYXliXCIsXG4gICAgICBcIiRkaXNwbGF5aFwiLFxuICAgICAgXCIkZGlzcGxheW9cIixcbiAgICAgIFwiJHN0cm9iZVwiLFxuICAgICAgXCIkc3Ryb2JlYlwiLFxuICAgICAgXCIkc3Ryb2JlaFwiLFxuICAgICAgXCIkc3Ryb2Jlb1wiLFxuICAgICAgXCIkd3JpdGVcIixcbiAgICAgIFwiJHJlYWRtZW1iXCIsXG4gICAgICBcIiRyZWFkbWVtaFwiLFxuICAgICAgXCIkd3JpdGVtZW1oXCIsXG4gICAgICBcIiR2YWx1ZSRwbHVzYXJnc1wiLFxuICAgICAgXCIkZHVtcHZhcnNcIixcbiAgICAgIFwiJGR1bXBvblwiLFxuICAgICAgXCIkZHVtcGxpbWl0XCIsXG4gICAgICBcIiRkdW1wcG9ydHNcIixcbiAgICAgIFwiJGR1bXBwb3J0c29uXCIsXG4gICAgICBcIiRkdW1wcG9ydHNsaW1pdFwiLFxuICAgICAgXCIkd3JpdGViXCIsXG4gICAgICBcIiR3cml0ZWhcIixcbiAgICAgIFwiJHdyaXRlb1wiLFxuICAgICAgXCIkbW9uaXRvclwiLFxuICAgICAgXCIkbW9uaXRvcmJcIixcbiAgICAgIFwiJG1vbml0b3JoXCIsXG4gICAgICBcIiRtb25pdG9yb1wiLFxuICAgICAgXCIkd3JpdGVtZW1iXCIsXG4gICAgICBcIiRkdW1wZmlsZVwiLFxuICAgICAgXCIkZHVtcG9mZlwiLFxuICAgICAgXCIkZHVtcGFsbFwiLFxuICAgICAgXCIkZHVtcGZsdXNoXCIsXG4gICAgICBcIiRkdW1wcG9ydHNvZmZcIixcbiAgICAgIFwiJGR1bXBwb3J0c2FsbFwiLFxuICAgICAgXCIkZHVtcHBvcnRzZmx1c2hcIixcbiAgICAgIFwiJGZjbG9zZVwiLFxuICAgICAgXCIkZmRpc3BsYXlcIixcbiAgICAgIFwiJGZkaXNwbGF5YlwiLFxuICAgICAgXCIkZmRpc3BsYXloXCIsXG4gICAgICBcIiRmZGlzcGxheW9cIixcbiAgICAgIFwiJGZzdHJvYmVcIixcbiAgICAgIFwiJGZzdHJvYmViXCIsXG4gICAgICBcIiRmc3Ryb2JlaFwiLFxuICAgICAgXCIkZnN0cm9iZW9cIixcbiAgICAgIFwiJHN3cml0ZVwiLFxuICAgICAgXCIkc3dyaXRlYlwiLFxuICAgICAgXCIkc3dyaXRlaFwiLFxuICAgICAgXCIkc3dyaXRlb1wiLFxuICAgICAgXCIkZnNjYW5mXCIsXG4gICAgICBcIiRmcmVhZFwiLFxuICAgICAgXCIkZnNlZWtcIixcbiAgICAgIFwiJGZmbHVzaFwiLFxuICAgICAgXCIkZmVvZlwiLFxuICAgICAgXCIkZm9wZW5cIixcbiAgICAgIFwiJGZ3cml0ZVwiLFxuICAgICAgXCIkZndyaXRlYlwiLFxuICAgICAgXCIkZndyaXRlaFwiLFxuICAgICAgXCIkZndyaXRlb1wiLFxuICAgICAgXCIkZm1vbml0b3JcIixcbiAgICAgIFwiJGZtb25pdG9yYlwiLFxuICAgICAgXCIkZm1vbml0b3JoXCIsXG4gICAgICBcIiRmbW9uaXRvcm9cIixcbiAgICAgIFwiJHNmb3JtYXRcIixcbiAgICAgIFwiJHNmb3JtYXRmXCIsXG4gICAgICBcIiRmZ2V0Y1wiLFxuICAgICAgXCIkdW5nZXRjXCIsXG4gICAgICBcIiRmZ2V0c1wiLFxuICAgICAgXCIkc3NjYW5mXCIsXG4gICAgICBcIiRyZXdpbmRcIixcbiAgICAgIFwiJGZ0ZWxsXCIsXG4gICAgICBcIiRmZXJyb3JcIlxuICAgIF1cbiAgfTtcbiAgY29uc3QgQlVJTFRfSU5fQ09OU1RBTlRTID0gW1xuICAgIFwiX19GSUxFX19cIixcbiAgICBcIl9fTElORV9fXCJcbiAgXTtcbiAgY29uc3QgRElSRUNUSVZFUyA9IFtcbiAgICBcImJlZ2luX2tleXdvcmRzXCIsXG4gICAgXCJjZWxsZGVmaW5lXCIsXG4gICAgXCJkZWZhdWx0X25ldHR5cGVcIixcbiAgICBcImRlZmF1bHRfZGVjYXlfdGltZVwiLFxuICAgIFwiZGVmYXVsdF90cmlyZWdfc3RyZW5ndGhcIixcbiAgICBcImRlZmluZVwiLFxuICAgIFwiZGVsYXlfbW9kZV9kaXN0cmlidXRlZFwiLFxuICAgIFwiZGVsYXlfbW9kZV9wYXRoXCIsXG4gICAgXCJkZWxheV9tb2RlX3VuaXRcIixcbiAgICBcImRlbGF5X21vZGVfemVyb1wiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZWxzaWZcIixcbiAgICBcImVuZF9rZXl3b3Jkc1wiLFxuICAgIFwiZW5kY2VsbGRlZmluZVwiLFxuICAgIFwiZW5kaWZcIixcbiAgICBcImlmZGVmXCIsXG4gICAgXCJpZm5kZWZcIixcbiAgICBcImluY2x1ZGVcIixcbiAgICBcImxpbmVcIixcbiAgICBcIm5vdW5jb25uZWN0ZWRfZHJpdmVcIixcbiAgICBcInByYWdtYVwiLFxuICAgIFwicmVzZXRhbGxcIixcbiAgICBcInRpbWVzY2FsZVwiLFxuICAgIFwidW5jb25uZWN0ZWRfZHJpdmVcIixcbiAgICBcInVuZGVmXCIsXG4gICAgXCJ1bmRlZmluZWFsbFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmVyaWxvZycsXG4gICAgYWxpYXNlczogW1xuICAgICAgJ3YnLFxuICAgICAgJ3N2JyxcbiAgICAgICdzdmgnXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLlFVT1RFX1NUUklOR19NT0RFLFxuICAgICAge1xuICAgICAgICBzY29wZTogJ251bWJlcicsXG4gICAgICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46IC9cXGIoKFxcZCsnKFtiaG9kQkhPRF0pKVswLTl4elhaYS1mQS1GX10rKS8gfSxcbiAgICAgICAgICB7IGJlZ2luOiAvXFxCKCgnKFtiaG9kQkhPRF0pKVswLTl4elhaYS1mQS1GX10rKS8gfSxcbiAgICAgICAgICB7IC8vIGRlY2ltYWxcbiAgICAgICAgICAgIGJlZ2luOiAvXFxiWzAtOV1bMC05X10qLyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIC8qIHBhcmFtZXRlcnMgdG8gaW5zdGFuY2VzICovXG4gICAgICB7XG4gICAgICAgIHNjb3BlOiAndmFyaWFibGUnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIHsgYmVnaW46ICcjXFxcXCgoPyFwYXJhbWV0ZXIpLitcXFxcKScgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ1xcXFwuXFxcXHcrJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6ICd2YXJpYWJsZS5jb25zdGFudCcsXG4gICAgICAgIG1hdGNoOiByZWdleC5jb25jYXQoL2AvLCByZWdleC5laXRoZXIoLi4uQlVJTFRfSU5fQ09OU1RBTlRTKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzY29wZTogJ21ldGEnLFxuICAgICAgICBiZWdpbjogcmVnZXguY29uY2F0KC9gLywgcmVnZXguZWl0aGVyKC4uLkRJUkVDVElWRVMpKSxcbiAgICAgICAgZW5kOiAvJHxcXC9cXC98XFwvXFwqLyxcbiAgICAgICAgcmV0dXJuRW5kOiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogRElSRUNUSVZFU1xuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2ZXJpbG9nO1xuIiwgIi8qXG5MYW5ndWFnZTogVkhETFxuQXV0aG9yOiBJZ29yIEthbG5pdHNreSA8aWdvckBrYWxuaXRza3kub3JnPlxuQ29udHJpYnV0b3JzOiBEYW5pZWwgQy5LLiBLaG8gPGRhbmllbC5raG9AdGF1aG9wLmNvbT4sIEd1aWxsYXVtZSBTYXZhdG9uIDxndWlsbGF1bWUuc2F2YXRvbkBlc2VvLmZyPlxuRGVzY3JpcHRpb246IFZIREwgaXMgYSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBsYW5ndWFnZSB1c2VkIGluIGVsZWN0cm9uaWMgZGVzaWduIGF1dG9tYXRpb24gdG8gZGVzY3JpYmUgZGlnaXRhbCBhbmQgbWl4ZWQtc2lnbmFsIHN5c3RlbXMuXG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WSERMXG5DYXRlZ29yeTogaGFyZHdhcmVcbiovXG5cbmZ1bmN0aW9uIHZoZGwoaGxqcykge1xuICAvLyBSZWd1bGFyIGV4cHJlc3Npb24gZm9yIFZIREwgbnVtZXJpYyBsaXRlcmFscy5cblxuICAvLyBEZWNpbWFsIGxpdGVyYWw6XG4gIGNvbnN0IElOVEVHRVJfUkUgPSAnXFxcXGQoX3xcXFxcZCkqJztcbiAgY29uc3QgRVhQT05FTlRfUkUgPSAnW2VFXVstK10/JyArIElOVEVHRVJfUkU7XG4gIGNvbnN0IERFQ0lNQUxfTElURVJBTF9SRSA9IElOVEVHRVJfUkUgKyAnKFxcXFwuJyArIElOVEVHRVJfUkUgKyAnKT8nICsgJygnICsgRVhQT05FTlRfUkUgKyAnKT8nO1xuICAvLyBCYXNlZCBsaXRlcmFsOlxuICBjb25zdCBCQVNFRF9JTlRFR0VSX1JFID0gJ1xcXFx3Kyc7XG4gIGNvbnN0IEJBU0VEX0xJVEVSQUxfUkUgPSBJTlRFR0VSX1JFICsgJyMnICsgQkFTRURfSU5URUdFUl9SRSArICcoXFxcXC4nICsgQkFTRURfSU5URUdFUl9SRSArICcpPycgKyAnIycgKyAnKCcgKyBFWFBPTkVOVF9SRSArICcpPyc7XG5cbiAgY29uc3QgTlVNQkVSX1JFID0gJ1xcXFxiKCcgKyBCQVNFRF9MSVRFUkFMX1JFICsgJ3wnICsgREVDSU1BTF9MSVRFUkFMX1JFICsgJyknO1xuXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYWJzXCIsXG4gICAgXCJhY2Nlc3NcIixcbiAgICBcImFmdGVyXCIsXG4gICAgXCJhbGlhc1wiLFxuICAgIFwiYWxsXCIsXG4gICAgXCJhbmRcIixcbiAgICBcImFyY2hpdGVjdHVyZVwiLFxuICAgIFwiYXJyYXlcIixcbiAgICBcImFzc2VydFwiLFxuICAgIFwiYXNzdW1lXCIsXG4gICAgXCJhc3N1bWVfZ3VhcmFudGVlXCIsXG4gICAgXCJhdHRyaWJ1dGVcIixcbiAgICBcImJlZ2luXCIsXG4gICAgXCJibG9ja1wiLFxuICAgIFwiYm9keVwiLFxuICAgIFwiYnVmZmVyXCIsXG4gICAgXCJidXNcIixcbiAgICBcImNhc2VcIixcbiAgICBcImNvbXBvbmVudFwiLFxuICAgIFwiY29uZmlndXJhdGlvblwiLFxuICAgIFwiY29uc3RhbnRcIixcbiAgICBcImNvbnRleHRcIixcbiAgICBcImNvdmVyXCIsXG4gICAgXCJkaXNjb25uZWN0XCIsXG4gICAgXCJkb3dudG9cIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImVsc2VcIixcbiAgICBcImVsc2lmXCIsXG4gICAgXCJlbmRcIixcbiAgICBcImVudGl0eVwiLFxuICAgIFwiZXhpdFwiLFxuICAgIFwiZmFpcm5lc3NcIixcbiAgICBcImZpbGVcIixcbiAgICBcImZvclwiLFxuICAgIFwiZm9yY2VcIixcbiAgICBcImZ1bmN0aW9uXCIsXG4gICAgXCJnZW5lcmF0ZVwiLFxuICAgIFwiZ2VuZXJpY1wiLFxuICAgIFwiZ3JvdXBcIixcbiAgICBcImd1YXJkZWRcIixcbiAgICBcImlmXCIsXG4gICAgXCJpbXB1cmVcIixcbiAgICBcImluXCIsXG4gICAgXCJpbmVydGlhbFwiLFxuICAgIFwiaW5vdXRcIixcbiAgICBcImlzXCIsXG4gICAgXCJsYWJlbFwiLFxuICAgIFwibGlicmFyeVwiLFxuICAgIFwibGlua2FnZVwiLFxuICAgIFwibGl0ZXJhbFwiLFxuICAgIFwibG9vcFwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJtb2RcIixcbiAgICBcIm5hbmRcIixcbiAgICBcIm5ld1wiLFxuICAgIFwibmV4dFwiLFxuICAgIFwibm9yXCIsXG4gICAgXCJub3RcIixcbiAgICBcIm51bGxcIixcbiAgICBcIm9mXCIsXG4gICAgXCJvblwiLFxuICAgIFwib3BlblwiLFxuICAgIFwib3JcIixcbiAgICBcIm90aGVyc1wiLFxuICAgIFwib3V0XCIsXG4gICAgXCJwYWNrYWdlXCIsXG4gICAgXCJwYXJhbWV0ZXJcIixcbiAgICBcInBvcnRcIixcbiAgICBcInBvc3Rwb25lZFwiLFxuICAgIFwicHJvY2VkdXJlXCIsXG4gICAgXCJwcm9jZXNzXCIsXG4gICAgXCJwcm9wZXJ0eVwiLFxuICAgIFwicHJvdGVjdGVkXCIsXG4gICAgXCJwdXJlXCIsXG4gICAgXCJyYW5nZVwiLFxuICAgIFwicmVjb3JkXCIsXG4gICAgXCJyZWdpc3RlclwiLFxuICAgIFwicmVqZWN0XCIsXG4gICAgXCJyZWxlYXNlXCIsXG4gICAgXCJyZW1cIixcbiAgICBcInJlcG9ydFwiLFxuICAgIFwicmVzdHJpY3RcIixcbiAgICBcInJlc3RyaWN0X2d1YXJhbnRlZVwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJyb2xcIixcbiAgICBcInJvclwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzZXF1ZW5jZVwiLFxuICAgIFwic2V2ZXJpdHlcIixcbiAgICBcInNoYXJlZFwiLFxuICAgIFwic2lnbmFsXCIsXG4gICAgXCJzbGFcIixcbiAgICBcInNsbFwiLFxuICAgIFwic3JhXCIsXG4gICAgXCJzcmxcIixcbiAgICBcInN0cm9uZ1wiLFxuICAgIFwic3VidHlwZVwiLFxuICAgIFwidGhlblwiLFxuICAgIFwidG9cIixcbiAgICBcInRyYW5zcG9ydFwiLFxuICAgIFwidHlwZVwiLFxuICAgIFwidW5hZmZlY3RlZFwiLFxuICAgIFwidW5pdHNcIixcbiAgICBcInVudGlsXCIsXG4gICAgXCJ1c2VcIixcbiAgICBcInZhcmlhYmxlXCIsXG4gICAgXCJ2aWV3XCIsXG4gICAgXCJ2bW9kZVwiLFxuICAgIFwidnByb3BcIixcbiAgICBcInZ1bml0XCIsXG4gICAgXCJ3YWl0XCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwid2l0aFwiLFxuICAgIFwieG5vclwiLFxuICAgIFwieG9yXCJcbiAgXTtcbiAgY29uc3QgQlVJTFRfSU5TID0gW1xuICAgIFwiYm9vbGVhblwiLFxuICAgIFwiYml0XCIsXG4gICAgXCJjaGFyYWN0ZXJcIixcbiAgICBcImludGVnZXJcIixcbiAgICBcInRpbWVcIixcbiAgICBcImRlbGF5X2xlbmd0aFwiLFxuICAgIFwibmF0dXJhbFwiLFxuICAgIFwicG9zaXRpdmVcIixcbiAgICBcInN0cmluZ1wiLFxuICAgIFwiYml0X3ZlY3RvclwiLFxuICAgIFwiZmlsZV9vcGVuX2tpbmRcIixcbiAgICBcImZpbGVfb3Blbl9zdGF0dXNcIixcbiAgICBcInN0ZF9sb2dpY1wiLFxuICAgIFwic3RkX2xvZ2ljX3ZlY3RvclwiLFxuICAgIFwidW5zaWduZWRcIixcbiAgICBcInNpZ25lZFwiLFxuICAgIFwiYm9vbGVhbl92ZWN0b3JcIixcbiAgICBcImludGVnZXJfdmVjdG9yXCIsXG4gICAgXCJzdGRfdWxvZ2ljXCIsXG4gICAgXCJzdGRfdWxvZ2ljX3ZlY3RvclwiLFxuICAgIFwidW5yZXNvbHZlZF91bnNpZ25lZFwiLFxuICAgIFwidV91bnNpZ25lZFwiLFxuICAgIFwidW5yZXNvbHZlZF9zaWduZWRcIixcbiAgICBcInVfc2lnbmVkXCIsXG4gICAgXCJyZWFsX3ZlY3RvclwiLFxuICAgIFwidGltZV92ZWN0b3JcIlxuICBdO1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICAvLyBzZXZlcml0eV9sZXZlbFxuICAgIFwiZmFsc2VcIixcbiAgICBcInRydWVcIixcbiAgICBcIm5vdGVcIixcbiAgICBcIndhcm5pbmdcIixcbiAgICBcImVycm9yXCIsXG4gICAgXCJmYWlsdXJlXCIsXG4gICAgLy8gdGV4dGlvXG4gICAgXCJsaW5lXCIsXG4gICAgXCJ0ZXh0XCIsXG4gICAgXCJzaWRlXCIsXG4gICAgXCJ3aWR0aFwiXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVkhETCcsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICBidWlsdF9pbjogQlVJTFRfSU5TLFxuICAgICAgbGl0ZXJhbDogTElURVJBTFNcbiAgICB9LFxuICAgIGlsbGVnYWw6IC9cXHsvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLCAvLyBWSERMLTIwMDggYmxvY2sgY29tbWVudGluZy5cbiAgICAgIGhsanMuQ09NTUVOVCgnLS0nLCAnJCcpLFxuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbnVtYmVyJyxcbiAgICAgICAgYmVnaW46IE5VTUJFUl9SRSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogJ1xcJyhVfFh8MHwxfFp8V3xMfEh8LSlcXCcnLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3ltYm9sJyxcbiAgICAgICAgYmVnaW46ICdcXCdbQS1aYS16XShfP1tBLVphLXowLTldKSonLFxuICAgICAgICBjb250YWluczogWyBobGpzLkJBQ0tTTEFTSF9FU0NBUEUgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2aGRsO1xuIiwgIi8qXG5MYW5ndWFnZTogVmltIFNjcmlwdFxuQXV0aG9yOiBKdW4gWWFuZyA8eWFuZ2p2bkAxMjYuY29tPlxuRGVzY3JpcHRpb246IGZ1bGwga2V5d29yZCBhbmQgYnVpbHQtaW4gZnJvbSBodHRwOi8vdmltZG9jLnNvdXJjZWZvcmdlLm5ldC9odG1sZG9jL1xuV2Vic2l0ZTogaHR0cHM6Ly93d3cudmltLm9yZ1xuQ2F0ZWdvcnk6IHNjcmlwdGluZ1xuKi9cblxuZnVuY3Rpb24gdmltKGhsanMpIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnVmltIFNjcmlwdCcsXG4gICAga2V5d29yZHM6IHtcbiAgICAgICRwYXR0ZXJuOiAvWyEjQFxcd10rLyxcbiAgICAgIGtleXdvcmQ6XG4gICAgICAgIC8vIGV4cHJlc3MgdmVyc2lvbiBleGNlcHQ6ICEgJiAqIDwgPSA+ICEhICMgQCBAQFxuICAgICAgICAnTnwwIFB8MCBYfDAgYXwwIGFiIGFiYyBhYm8gYWwgYW0gYW58MCBhciBhcmdhIGFyZ2QgYXJnZSBhcmdkbyBhcmdnIGFyZ2wgYXJndSBhcyBhdSBhdWcgYXVuIGJ8MCBiTiBiYSBiYWQgYmQgYmUgYmVsIGJmIGJsIGJtIGJuIGJvIGJwIGJyIGJyZWEgYnJlYWthIGJyZWFrZCBicmVha2wgYnJvIGJ1ZmRvIGJ1ZmZlcnMgYnVuIGJ3IGN8MCBjTiBjTmYgY2EgY2FiYyBjYWRkYiBjYWQgY2FkZGYgY2FsIGNhdCBjYiBjYyBjY2wgY2QgY2UgY2V4IGNmIGNmaXIgY2dldGIgY2dldGUgY2cgY2hhbmdlcyBjaGQgY2hlIGNoZWNrdCBjbCBjbGEgY2xvIGNtIGNtYXBjIGNtZSBjbiBjbmV3IGNuZiBjbm8gY25vcmVhIGNub3JlbWUgY28gY29sIGNvbG8gY29tIGNvbWMgY29tcCBjb24gY29uZiBjb3BlICdcbiAgICAgICAgKyAnY3AgY3BmIGNxIGNyIGNzIGNzdCBjdSBjdW5hIGN1bm1lIGN3IGRlbG0gZGViIGRlYnVnZyBkZWxjIGRlbGYgZGlmIGRpZmZnIGRpZmZvIGRpZmZwIGRpZmZwdSBkaWZmcyBkaWZmdGhpcyBkaWcgZGkgZGwgZGVsbCBkaiBkbGkgZG8gZG9hdXRvYSBkcCBkciBkcyBkc3AgZXwwIGVhIGVjIGVjaG9lIGVjaG9oIGVjaG9tIGVjaG9uIGVsIGVsc2VpIGVtIGVuIGVuZGZvIGVuZGYgZW5kdCBlbmR3IGVuZSBleCBleGUgZXhpIGV4dSBmfDAgZmlsZXMgZmlsZXQgZmluIGZpbmEgZmluaSBmaXIgZml4IGZvIGZvbGRjIGZvbGRkIGZvbGRkb2MgZm9sZG8gZm9yIGZ1IGdvIGdyIGdyZXBhIGd1IGd2IGhhIGhlbHBmIGhlbHBnIGhlbHB0IGhpIGhpZCBoaXMgaWEgaWFiYyBpZiBpaiBpbCBpbSBpbWFwYyAnXG4gICAgICAgICsgJ2ltZSBpbm8gaW5vcmVhIGlub3JlbWUgaW50IGlzIGlzcCBpdSBpdW5hIGl1bm1lIGp8MCBqdSBrfDAga2VlcGEga2VlIGtlZXBqIGxOIGxOZiBsfDAgbGFkIGxhZGRiIGxhZGRmIGxhIGxhbiBsYXQgbGIgbGMgbGNoIGxjbCBsY3MgbGUgbGVmdGEgbGV0IGxleCBsZiBsZmlyIGxnZXRiIGxnZXRlIGxnIGxnciBsZ3JlcGEgbGggbGwgbGxhIGxsaSBsbWFrIGxtIGxtYXBjIGxuZSBsbmV3IGxuZiBsbiBsb2FkayBsbyBsb2MgbG9ja3YgbG9sIGxvcGUgbHAgbHBmIGxyIGxzIGx0IGx1IGx1YSBsdWFkIGx1YWYgbHYgbHZpbWdyZXBhIGx3IG18MCBtYSBtYWsgbWFwIG1hcGMgbWFya3MgbWF0IG1lIG1lbnV0IG1lcyBtayBta3MgbWtzcCBta3YgbWt2aWUgbW9kIG16IG16ZiBuYmMgbmIgbmJzIG5ldyBubSBubWFwYyBubWUgbm4gbm5vcmVtZSBub2Egbm8gbm9oIG5vcmVhIG5vcmVtZSBub3JtIG51IG51biBudW5tZSBvbCBvfDAgb20gb21hcGMgb21lIG9uIG9ubyBvbm9yZW1lIG9wdCBvdSBvdW5tZSBvdyBwfDAgJ1xuICAgICAgICArICdwcm9mZCBwcm9mIHBybyBwcm9tcHRyIHBjIHBlZCBwZSBwZXJsZCBwbyBwb3B1IHBwIHByZSBwcmV2IHBzIHB0IHB0TiBwdGYgcHRqIHB0bCBwdG4gcHRwIHB0ciBwdHMgcHUgcHcgcHkzIHB5dGhvbjMgcHkzZCBweTNmIHB5IHB5ZCBweWYgcXVpdGEgcWEgcmVjIHJlZCByZWRpIHJlZHIgcmVkcmF3cyByZWcgcmVzIHJldCByZXR1IHJldyByaSByaWdodGIgcnViIHJ1YnlkIHJ1YnlmIHJ1bmQgcnUgcnYgc04gc2FuIHNhIHNhbCBzYXYgc2Igc2JOIHNiYSBzYmYgc2JsIHNibSBzYm4gc2JwIHNiciBzY3JpcCBzY3JpcHRlIHNjcyBzZSBzZXRmIHNldGcgc2V0bCBzZiBzZmlyIHNoIHNpbSBzaWcgc2lsIHNsIHNsYSBzbSBzbWFwIHNtYXBjIHNtZSBzbiBzbmkgc25vIHNub3Igc25vcmVtZSBzb3IgJ1xuICAgICAgICArICdzbyBzcGVsbGQgc3BlIHNwZWxsaSBzcGVsbHIgc3BlbGx1IHNwZWxsdyBzcCBzcHIgc3JlIHN0IHN0YSBzdGFydGcgc3RhcnRyIHN0YXIgc3RvcGkgc3RqIHN0cyBzdW4gc3VubSBzdW5tZSBzdXMgc3Ygc3cgc3kgc3ludGkgc3luYyB0TiB0YWJOIHRhYmMgdGFiZG8gdGFiZSB0YWJmIHRhYmZpciB0YWJsIHRhYm0gdGFibmV3ICdcbiAgICAgICAgKyAndGFibiB0YWJvIHRhYnAgdGFiciB0YWJzIHRhYiB0YSB0YWdzIHRjIHRjbGQgdGNsZiB0ZSB0ZiB0aCB0aiB0bCB0bSB0biB0byB0cCB0ciB0cnkgdHMgdHUgdXwwIHVuZG9qIHVuZG9sIHVuYSB1bmggdW5sIHVubG8gdW5tIHVubWUgdW5zIHVwIHZlIHZlcmIgdmVydCB2aW0gdmltZ3JlcGEgdmkgdml1IHZpZSB2bSB2bWFwYyB2bWUgdm5lIHZuIHZub3JlbWUgdnMgdnUgdnVubWUgd2luZG8gd3wwIHdOIHdhIHdoIHdpIHdpbmMgd2lucCB3biB3cCB3cSB3cWEgd3Mgd3Ugd3YgeHwwIHhhIHhtYXBjIHhtIHhtZSB4biB4bm9yZW1lIHh1IHh1bm1lIHl8MCB6fDAgfiAnXG4gICAgICAgIC8vIGZ1bGwgdmVyc2lvblxuICAgICAgICArICdOZXh0IFByaW50IGFwcGVuZCBhYmJyZXZpYXRlIGFiY2xlYXIgYWJvdmVsZWZ0IGFsbCBhbWVudSBhbm9yZW1lbnUgYXJncyBhcmdhZGQgYXJnZGVsZXRlIGFyZ2VkaXQgYXJnZ2xvYmFsIGFyZ2xvY2FsIGFyZ3VtZW50IGFzY2lpIGF1dG9jbWQgYXVncm91cCBhdW5tZW51IGJ1ZmZlciBiTmV4dCBiYWxsIGJhZGQgYmRlbGV0ZSBiZWhhdmUgYmVsb3dyaWdodCBiZmlyc3QgYmxhc3QgYm1vZGlmaWVkIGJuZXh0IGJvdHJpZ2h0IGJwcmV2aW91cyBicmV3aW5kIGJyZWFrIGJyZWFrYWRkIGJyZWFrZGVsIGJyZWFrbGlzdCBicm93c2UgYnVubG9hZCAnXG4gICAgICAgICsgJ2J3aXBlb3V0IGNoYW5nZSBjTmV4dCBjTmZpbGUgY2FiYnJldiBjYWJjbGVhciBjYWRkYnVmZmVyIGNhZGRleHByIGNhZGRmaWxlIGNhbGwgY2F0Y2ggY2J1ZmZlciBjY2xvc2UgY2VudGVyIGNleHByIGNmaWxlIGNmaXJzdCBjZ2V0YnVmZmVyIGNnZXRleHByIGNnZXRmaWxlIGNoZGlyIGNoZWNrcGF0aCBjaGVja3RpbWUgY2xpc3QgY2xhc3QgY2xvc2UgY21hcCBjbWFwY2xlYXIgY21lbnUgY25leHQgY25ld2VyIGNuZmlsZSBjbm9yZW1hcCBjbm9yZWFiYnJldiBjbm9yZW1lbnUgY29weSBjb2xkZXIgY29sb3JzY2hlbWUgY29tbWFuZCBjb21jbGVhciBjb21waWxlciBjb250aW51ZSBjb25maXJtIGNvcGVuIGNwcmV2aW91cyBjcGZpbGUgY3F1aXQgY3Jld2luZCBjc2NvcGUgY3N0YWcgY3VubWFwICdcbiAgICAgICAgKyAnY3VuYWJicmV2IGN1bm1lbnUgY3dpbmRvdyBkZWxldGUgZGVsbWFya3MgZGVidWcgZGVidWdncmVlZHkgZGVsY29tbWFuZCBkZWxmdW5jdGlvbiBkaWZmdXBkYXRlIGRpZmZnZXQgZGlmZm9mZiBkaWZmcGF0Y2ggZGlmZnB1dCBkaWZmc3BsaXQgZGlncmFwaHMgZGlzcGxheSBkZWxldGVsIGRqdW1wIGRsaXN0IGRvYXV0b2NtZCBkb2F1dG9hbGwgZGVsZXRlcCBkcm9wIGRzZWFyY2ggZHNwbGl0IGVkaXQgZWFybGllciBlY2hvIGVjaG9lcnIgZWNob2hsIGVjaG9tc2cgZWxzZSBlbHNlaWYgZW1lbnUgZW5kaWYgZW5kZm9yICdcbiAgICAgICAgKyAnZW5kZnVuY3Rpb24gZW5kdHJ5IGVuZHdoaWxlIGVuZXcgZXhlY3V0ZSBleGl0IGV4dXNhZ2UgZmlsZSBmaWxldHlwZSBmaW5kIGZpbmFsbHkgZmluaXNoIGZpcnN0IGZpeGRlbCBmb2xkIGZvbGRjbG9zZSBmb2xkZG9vcGVuIGZvbGRkb2Nsb3NlZCBmb2xkb3BlbiBmdW5jdGlvbiBnbG9iYWwgZ290byBncmVwIGdyZXBhZGQgZ3VpIGd2aW0gaGFyZGNvcHkgaGVscCBoZWxwZmluZCBoZWxwZ3JlcCBoZWxwdGFncyBoaWdobGlnaHQgaGlkZSBoaXN0b3J5IGluc2VydCBpYWJicmV2IGlhYmNsZWFyIGlqdW1wIGlsaXN0IGltYXAgJ1xuICAgICAgICArICdpbWFwY2xlYXIgaW1lbnUgaW5vcmVtYXAgaW5vcmVhYmJyZXYgaW5vcmVtZW51IGludHJvIGlzZWFyY2ggaXNwbGl0IGl1bm1hcCBpdW5hYmJyZXYgaXVubWVudSBqb2luIGp1bXBzIGtlZXBhbHQga2VlcG1hcmtzIGtlZXBqdW1wcyBsTmV4dCBsTmZpbGUgbGlzdCBsYWRkZXhwciBsYWRkYnVmZmVyIGxhZGRmaWxlIGxhc3QgbGFuZ3VhZ2UgbGF0ZXIgbGJ1ZmZlciBsY2QgbGNoZGlyIGxjbG9zZSBsY3Njb3BlIGxlZnQgbGVmdGFib3ZlIGxleHByIGxmaWxlIGxmaXJzdCBsZ2V0YnVmZmVyIGxnZXRleHByIGxnZXRmaWxlIGxncmVwIGxncmVwYWRkIGxoZWxwZ3JlcCBsbGFzdCBsbGlzdCBsbWFrZSBsbWFwIGxtYXBjbGVhciBsbmV4dCBsbmV3ZXIgbG5maWxlIGxub3JlbWFwIGxvYWRrZXltYXAgbG9hZHZpZXcgJ1xuICAgICAgICArICdsb2NrbWFya3MgbG9ja3ZhciBsb2xkZXIgbG9wZW4gbHByZXZpb3VzIGxwZmlsZSBscmV3aW5kIGx0YWcgbHVubWFwIGx1YWRvIGx1YWZpbGUgbHZpbWdyZXAgbHZpbWdyZXBhZGQgbHdpbmRvdyBtb3ZlIG1hcmsgbWFrZSBtYXBjbGVhciBtYXRjaCBtZW51IG1lbnV0cmFuc2xhdGUgbWVzc2FnZXMgbWtleHJjIG1rc2Vzc2lvbiBta3NwZWxsIG1rdmltcmMgbWt2aWV3IG1vZGUgbXpzY2hlbWUgbXpmaWxlIG5iY2xvc2UgbmJrZXkgbmJzYXJ0IG5leHQgbm1hcCBubWFwY2xlYXIgbm1lbnUgbm5vcmVtYXAgJ1xuICAgICAgICArICdubm9yZW1lbnUgbm9hdXRvY21kIG5vcmVtYXAgbm9obHNlYXJjaCBub3JlYWJicmV2IG5vcmVtZW51IG5vcm1hbCBudW1iZXIgbnVubWFwIG51bm1lbnUgb2xkZmlsZXMgb3BlbiBvbWFwIG9tYXBjbGVhciBvbWVudSBvbmx5IG9ub3JlbWFwIG9ub3JlbWVudSBvcHRpb25zIG91bm1hcCBvdW5tZW51IG93bnN5bnRheCBwcmludCBwcm9mZGVsIHByb2ZpbGUgcHJvbXB0ZmluZCBwcm9tcHRyZXBsIHBjbG9zZSBwZWRpdCBwZXJsIHBlcmxkbyBwb3AgcG9wdXAgcHBvcCBwcmVzZXJ2ZSBwcmV2aW91cyBwc2VhcmNoIHB0YWcgcHROZXh0ICdcbiAgICAgICAgKyAncHRmaXJzdCBwdGp1bXAgcHRsYXN0IHB0bmV4dCBwdHByZXZpb3VzIHB0cmV3aW5kIHB0c2VsZWN0IHB1dCBwd2QgcHkzZG8gcHkzZmlsZSBweXRob24gcHlkbyBweWZpbGUgcXVpdCBxdWl0YWxsIHFhbGwgcmVhZCByZWNvdmVyIHJlZG8gcmVkaXIgcmVkcmF3IHJlZHJhd3N0YXR1cyByZWdpc3RlcnMgcmVzaXplIHJldGFiIHJldHVybiByZXdpbmQgcmlnaHQgcmlnaHRiZWxvdyBydWJ5IHJ1YnlkbyBydWJ5ZmlsZSBydW5kbyBydW50aW1lIHJ2aW1pbmZvIHN1YnN0aXR1dGUgc05leHQgc2FuZGJveCBzYXJndW1lbnQgc2FsbCBzYXZlYXMgc2J1ZmZlciBzYk5leHQgc2JhbGwgc2JmaXJzdCBzYmxhc3Qgc2Jtb2RpZmllZCBzYm5leHQgc2JwcmV2aW91cyBzYnJld2luZCBzY3JpcHRuYW1lcyBzY3JpcHRlbmNvZGluZyAnXG4gICAgICAgICsgJ3Njc2NvcGUgc2V0IHNldGZpbGV0eXBlIHNldGdsb2JhbCBzZXRsb2NhbCBzZmluZCBzZmlyc3Qgc2hlbGwgc2ltYWx0IHNpZ24gc2lsZW50IHNsZWVwIHNsYXN0IHNtYWdpYyBzbWFwY2xlYXIgc21lbnUgc25leHQgc25pZmYgc25vbWFnaWMgc25vcmVtYXAgc25vcmVtZW51IHNvcnQgc291cmNlIHNwZWxsZHVtcCBzcGVsbGdvb2Qgc3BlbGxpbmZvIHNwZWxscmVwYWxsIHNwZWxsdW5kbyBzcGVsbHdyb25nIHNwbGl0IHNwcmV2aW91cyBzcmV3aW5kIHN0b3Agc3RhZyBzdGFydGdyZXBsYWNlIHN0YXJ0cmVwbGFjZSAnXG4gICAgICAgICsgJ3N0YXJ0aW5zZXJ0IHN0b3BpbnNlcnQgc3RqdW1wIHN0c2VsZWN0IHN1bmhpZGUgc3VubWFwIHN1bm1lbnUgc3VzcGVuZCBzdmlldyBzd2FwbmFtZSBzeW50YXggc3ludGltZSBzeW5jYmluZCB0TmV4dCB0YWJOZXh0IHRhYmNsb3NlIHRhYmVkaXQgdGFiZmluZCB0YWJmaXJzdCB0YWJsYXN0IHRhYm1vdmUgdGFibmV4dCB0YWJvbmx5IHRhYnByZXZpb3VzIHRhYnJld2luZCB0YWcgdGNsIHRjbGRvIHRjbGZpbGUgdGVhcm9mZiB0Zmlyc3QgdGhyb3cgdGp1bXAgdGxhc3QgdG1lbnUgdG5leHQgdG9wbGVmdCB0cHJldmlvdXMgJyArICd0cmV3aW5kIHRzZWxlY3QgdHVubWVudSB1bmRvIHVuZG9qb2luIHVuZG9saXN0IHVuYWJicmV2aWF0ZSB1bmhpZGUgdW5sZXQgdW5sb2NrdmFyIHVubWFwIHVubWVudSB1bnNpbGVudCB1cGRhdGUgdmdsb2JhbCB2ZXJzaW9uIHZlcmJvc2UgdmVydGljYWwgdmltZ3JlcCB2aW1ncmVwYWRkIHZpc3VhbCB2aXVzYWdlIHZpZXcgdm1hcCB2bWFwY2xlYXIgdm1lbnUgdm5ldyAnXG4gICAgICAgICsgJ3Zub3JlbWFwIHZub3JlbWVudSB2c3BsaXQgdnVubWFwIHZ1bm1lbnUgd3JpdGUgd05leHQgd2FsbCB3aGlsZSB3aW5zaXplIHdpbmNtZCB3aW5wb3Mgd25leHQgd3ByZXZpb3VzIHdxYWxsIHdzdmVyYiB3dW5kbyB3dmltaW5mbyB4aXQgeGFsbCB4bWFwY2xlYXIgeG1hcCB4bWVudSB4bm9yZW1hcCB4bm9yZW1lbnUgeHVubWFwIHh1bm1lbnUgeWFuaycsXG4gICAgICBidWlsdF9pbjogLy8gYnVpbHQgaW4gZnVuY1xuICAgICAgICAnc3luSUR0cmFucyBhdGFuMiByYW5nZSBtYXRjaGFyZyBkaWRfZmlsZXR5cGUgYXNpbiBmZWVka2V5cyB4b3IgYXJndiAnXG4gICAgICAgICsgJ2NvbXBsZXRlX2NoZWNrIGFkZCBnZXR3aW5wb3N4IGdldHFmbGlzdCBnZXR3aW5wb3N5IHNjcmVlbmNvbCAnXG4gICAgICAgICsgJ2NsZWFybWF0Y2hlcyBlbXB0eSBleHRlbmQgZ2V0Y21kcG9zIG16ZXZhbCBnYXJiYWdlY29sbGVjdCBzZXRyZWcgJ1xuICAgICAgICArICdjZWlsIHNxcnQgZGlmZl9obElEIGlucHV0c2VjcmV0IGdldCBnZXRmcGVybSBnZXRwaWQgZmlsZXdyaXRhYmxlICdcbiAgICAgICAgKyAnc2hpZnR3aWR0aCBtYXggc2luaCBpc2RpcmVjdG9yeSBzeW5JRCBzeXN0ZW0gaW5wdXRyZXN0b3JlIHdpbmxpbmUgJ1xuICAgICAgICArICdhdGFuIHZpc3VhbG1vZGUgaW5wdXRsaXN0IHRhYnBhZ2V3aW5uciByb3VuZCBnZXRyZWd0eXBlIG1hcGNoZWNrICdcbiAgICAgICAgKyAnaGFzbWFwdG8gaGlzdGRlbCBhcmdpZHggZmluZGZpbGUgc2hhMjU2IGV4aXN0cyB0b3VwcGVyIGdldGNtZGxpbmUgJ1xuICAgICAgICArICd0YWdsaXN0IHN0cmluZyBnZXRtYXRjaGVzIGJ1Zm5yIHN0cmZ0aW1lIHdpbndpZHRoIGJ1ZmV4aXN0cyAnXG4gICAgICAgICsgJ3N0cnRyYW5zIHRhYnBhZ2VidWZsaXN0IHNldGNtZHBvcyByZW1vdGVfcmVhZCBwcmludGYgc2V0bG9jbGlzdCAnXG4gICAgICAgICsgJ2dldHBvcyBnZXRsaW5lIGJ1Zndpbm5yIGZsb2F0Mm5yIGxlbiBnZXRjbWR0eXBlIGRpZmZfZmlsbGVyIGx1YWV2YWwgJ1xuICAgICAgICArICdyZXNvbHZlIGxpYmNhbGxuciBmb2xkY2xvc2VkZW5kIHJldmVyc2UgZmlsdGVyIGhhc19rZXkgYnVmbmFtZSAnXG4gICAgICAgICsgJ3N0cjJmbG9hdCBzdHJsZW4gc2V0bGluZSBnZXRjaGFybW9kIHNldGJ1ZnZhciBpbmRleCBzZWFyY2hwb3MgJ1xuICAgICAgICArICdzaGVsbGVzY2FwZSB1bmRvZmlsZSBmb2xkY2xvc2VkIHNldHFmbGlzdCBidWZsaXN0ZWQgc3RyY2hhcnMgc3RyMm5yICdcbiAgICAgICAgKyAndmlydGNvbCBmbG9vciByZW1vdmUgdW5kb3RyZWUgcmVtb3RlX2V4cHIgd2luaGVpZ2h0IGdldHRhYndpbnZhciAnXG4gICAgICAgICsgJ3JlbHRpbWUgY3Vyc29yIHRhYnBhZ2VuciBmaW5kZGlyIGxvY2FsdGltZSBhY29zIGdldGxvY2xpc3Qgc2VhcmNoICdcbiAgICAgICAgKyAndGFuaCBtYXRjaGVuZCByZW5hbWUgZ2V0dGFidmFyIHN0cmRpc3BsYXl3aWR0aCB0eXBlIGFicyBweTNldmFsICdcbiAgICAgICAgKyAnc2V0d2ludmFyIHRvbG93ZXIgd2lsZG1lbnVtb2RlIGxvZzEwIHNwZWxsc3VnZ2VzdCBidWZsb2FkZWQgJ1xuICAgICAgICArICdzeW5jb25jZWFsZWQgbmV4dG5vbmJsYW5rIHNlcnZlcjJjbGllbnQgY29tcGxldGUgc2V0dGFid2ludmFyICdcbiAgICAgICAgKyAnZXhlY3V0YWJsZSBpbnB1dCB3aW5jb2wgc2V0bWF0Y2hlcyBnZXRmdHlwZSBobElEIGlucHV0c2F2ZSAnXG4gICAgICAgICsgJ3NlYXJjaHBhaXIgb3Igc2NyZWVucm93IGxpbmUgc2V0dGFidmFyIGhpc3RhZGQgZGVlcGNvcHkgc3RycGFydCAnXG4gICAgICAgICsgJ3JlbW90ZV9wZWVrIGFuZCBldmFsIGdldGZ0aW1lIHN1Ym1hdGNoIHNjcmVlbmNoYXIgd2luc2F2ZXZpZXcgJ1xuICAgICAgICArICdtYXRjaGFkZCBta2RpciBzY3JlZW5hdHRyIGdldGZvbnRuYW1lIGxpYmNhbGwgcmVsdGltZXN0ciBnZXRmc2l6ZSAnXG4gICAgICAgICsgJ3dpbm5yIGludmVydCBwb3cgZ2V0YnVmbGluZSBieXRlMmxpbmUgc291bmRmb2xkIHJlcGVhdCBmbmFtZWVzY2FwZSAnXG4gICAgICAgICsgJ3RhZ2ZpbGVzIHNpbiBzdHJ3aWR0aCBzcGVsbGJhZHdvcmQgdHJ1bmMgbWFwYXJnIGxvZyBsaXNwaW5kZW50ICdcbiAgICAgICAgKyAnaG9zdG5hbWUgc2V0cG9zIGdsb2JwYXRoIHJlbW90ZV9mb3JlZ3JvdW5kIGdldGNoYXIgc3luSURhdHRyICdcbiAgICAgICAgKyAnZm5hbWVtb2RpZnkgY3Njb3BlX2Nvbm5lY3Rpb24gc3RyaWR4IHdpbmJ1Zm5yIGluZGVudCBtaW4gJ1xuICAgICAgICArICdjb21wbGV0ZV9hZGQgbnIyY2hhciBzZWFyY2hwYWlycG9zIGlucHV0ZGlhbG9nIHZhbHVlcyBtYXRjaGxpc3QgJ1xuICAgICAgICArICdpdGVtcyBobGV4aXN0cyBzdHJyaWR4IGJyb3dzZWRpciBleHBhbmQgZm1vZCBwYXRoc2hvcnRlbiBsaW5lMmJ5dGUgJ1xuICAgICAgICArICdhcmdjIGNvdW50IGdldHdpbnZhciBnbG9iIGZvbGR0ZXh0cmVzdWx0IGdldHJlZyBmb3JlZ3JvdW5kIGNvc2ggJ1xuICAgICAgICArICdtYXRjaGRlbGV0ZSBoYXMgY2hhcjJuciBzaW1wbGlmeSBoaXN0Z2V0IHNlYXJjaGRlY2wgaWNvbnYgJ1xuICAgICAgICArICd3aW5yZXN0Y21kIHB1bXZpc2libGUgd3JpdGVmaWxlIGZvbGRsZXZlbCBoYXNsb2NhbGRpciBrZXlzIGNvcyAnXG4gICAgICAgICsgJ21hdGNoc3RyIGZvbGR0ZXh0IGhpc3RuciB0YW4gdGVtcG5hbWUgZ2V0Y3dkIGJ5dGVpZHggZ2V0YnVmdmFyICdcbiAgICAgICAgKyAnaXNsb2NrZWQgZXNjYXBlIGV2ZW50aGFuZGxlciByZW1vdGVfc2VuZCBzZXJ2ZXJsaXN0IHdpbnJlc3R2aWV3ICdcbiAgICAgICAgKyAnc3luc3RhY2sgcHlldmFsIHByZXZub25ibGFuayByZWFkZmlsZSBjaW5kZW50IGZpbGVyZWFkYWJsZSBjaGFuZ2VuciAnXG4gICAgICAgICsgJ2V4cCdcbiAgICB9LFxuICAgIGlsbGVnYWw6IC87LyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5OVU1CRVJfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgYmVnaW46ICdcXCcnLFxuICAgICAgICBlbmQ6ICdcXCcnLFxuICAgICAgICBpbGxlZ2FsOiAnXFxcXG4nXG4gICAgICB9LFxuXG4gICAgICAvKlxuICAgICAgQSBkb3VibGUgcXVvdGUgY2FuIHN0YXJ0IGVpdGhlciBhIHN0cmluZyBvciBhIGxpbmUgY29tbWVudC4gU3RyaW5ncyBhcmVcbiAgICAgIGVuZGVkIGJlZm9yZSB0aGUgZW5kIG9mIGEgbGluZSBieSBhbm90aGVyIGRvdWJsZSBxdW90ZSBhbmQgY2FuIGNvbnRhaW5cbiAgICAgIGVzY2FwZWQgZG91YmxlLXF1b3RlcyBhbmQgcG9zdC1lc2NhcGVkIGxpbmUgYnJlYWtzLlxuXG4gICAgICBBbHNvLCBhbnkgZG91YmxlIHF1b3RlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSBsaW5lIGlzIGEgY29tbWVudCBidXQgd2VcbiAgICAgIGRvbid0IGhhbmRsZSB0aGF0IHByb3Blcmx5IGF0IHRoZSBtb21lbnQ6IGFueSBkb3VibGUgcXVvdGUgaW5zaWRlIHdpbGxcbiAgICAgIHR1cm4gdGhlbSBpbnRvIGEgc3RyaW5nLiBIYW5kbGluZyBpdCBwcm9wZXJseSB3aWxsIHJlcXVpcmUgYSBzbWFydGVyXG4gICAgICBwYXJzZXIuXG4gICAgICAqL1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogL1wiKFxcXFxcInxcXG5cXFxcfFteXCJcXG5dKSpcIi9cbiAgICAgIH0sXG4gICAgICBobGpzLkNPTU1FTlQoJ1wiJywgJyQnKSxcblxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd2YXJpYWJsZScsXG4gICAgICAgIGJlZ2luOiAvW2J3dGdsc2F2XTpbXFx3XFxkX10rL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IFtcbiAgICAgICAgICAvXFxiKD86ZnVuY3Rpb258ZnVuY3Rpb24hKS8sXG4gICAgICAgICAgL1xccysvLFxuICAgICAgICAgIGhsanMuSURFTlRfUkVcbiAgICAgICAgXSxcbiAgICAgICAgY2xhc3NOYW1lOiB7XG4gICAgICAgICAgMTogXCJrZXl3b3JkXCIsXG4gICAgICAgICAgMzogXCJ0aXRsZVwiXG4gICAgICAgIH0sXG4gICAgICAgIGVuZDogJyQnLFxuICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAncGFyYW1zJyxcbiAgICAgICAgICAgIGJlZ2luOiAnXFxcXCgnLFxuICAgICAgICAgICAgZW5kOiAnXFxcXCknXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICBiZWdpbjogLzxbXFx3LV0rPi9cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmltO1xuIiwgIi8qXG5MYW5ndWFnZTogV2ViQXNzZW1ibHlcbldlYnNpdGU6IGh0dHBzOi8vd2ViYXNzZW1ibHkub3JnXG5EZXNjcmlwdGlvbjogIFdhc20gaXMgZGVzaWduZWQgYXMgYSBwb3J0YWJsZSBjb21waWxhdGlvbiB0YXJnZXQgZm9yIHByb2dyYW1taW5nIGxhbmd1YWdlcywgZW5hYmxpbmcgZGVwbG95bWVudCBvbiB0aGUgd2ViIGZvciBjbGllbnQgYW5kIHNlcnZlciBhcHBsaWNhdGlvbnMuXG5DYXRlZ29yeTogd2ViLCBjb21tb25cbkF1ZGl0OiAyMDIwXG4qL1xuXG4vKiogQHR5cGUgTGFuZ3VhZ2VGbiAqL1xuZnVuY3Rpb24gd2FzbShobGpzKSB7XG4gIGhsanMucmVnZXg7XG4gIGNvbnN0IEJMT0NLX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoL1xcKDsvLCAvO1xcKS8pO1xuICBCTE9DS19DT01NRU5ULmNvbnRhaW5zLnB1c2goXCJzZWxmXCIpO1xuICBjb25zdCBMSU5FX0NPTU1FTlQgPSBobGpzLkNPTU1FTlQoLzs7LywgLyQvKTtcblxuICBjb25zdCBLV1MgPSBbXG4gICAgXCJhbnlmdW5jXCIsXG4gICAgXCJibG9ja1wiLFxuICAgIFwiYnJcIixcbiAgICBcImJyX2lmXCIsXG4gICAgXCJicl90YWJsZVwiLFxuICAgIFwiY2FsbFwiLFxuICAgIFwiY2FsbF9pbmRpcmVjdFwiLFxuICAgIFwiZGF0YVwiLFxuICAgIFwiZHJvcFwiLFxuICAgIFwiZWxlbVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJleHBvcnRcIixcbiAgICBcImZ1bmNcIixcbiAgICBcImdsb2JhbC5nZXRcIixcbiAgICBcImdsb2JhbC5zZXRcIixcbiAgICBcImxvY2FsLmdldFwiLFxuICAgIFwibG9jYWwuc2V0XCIsXG4gICAgXCJsb2NhbC50ZWVcIixcbiAgICBcImdldF9nbG9iYWxcIixcbiAgICBcImdldF9sb2NhbFwiLFxuICAgIFwiZ2xvYmFsXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJsb2NhbFwiLFxuICAgIFwibG9vcFwiLFxuICAgIFwibWVtb3J5XCIsXG4gICAgXCJtZW1vcnkuZ3Jvd1wiLFxuICAgIFwibWVtb3J5LnNpemVcIixcbiAgICBcIm1vZHVsZVwiLFxuICAgIFwibXV0XCIsXG4gICAgXCJub3BcIixcbiAgICBcIm9mZnNldFwiLFxuICAgIFwicGFyYW1cIixcbiAgICBcInJlc3VsdFwiLFxuICAgIFwicmV0dXJuXCIsXG4gICAgXCJzZWxlY3RcIixcbiAgICBcInNldF9nbG9iYWxcIixcbiAgICBcInNldF9sb2NhbFwiLFxuICAgIFwic3RhcnRcIixcbiAgICBcInRhYmxlXCIsXG4gICAgXCJ0ZWVfbG9jYWxcIixcbiAgICBcInRoZW5cIixcbiAgICBcInR5cGVcIixcbiAgICBcInVucmVhY2hhYmxlXCJcbiAgXTtcblxuICBjb25zdCBGVU5DVElPTl9SRUZFUkVOQ0UgPSB7XG4gICAgYmVnaW46IFtcbiAgICAgIC8oPzpmdW5jfGNhbGx8Y2FsbF9pbmRpcmVjdCkvLFxuICAgICAgL1xccysvLFxuICAgICAgL1xcJFteXFxzKV0rL1xuICAgIF0sXG4gICAgY2xhc3NOYW1lOiB7XG4gICAgICAxOiBcImtleXdvcmRcIixcbiAgICAgIDM6IFwidGl0bGUuZnVuY3Rpb25cIlxuICAgIH1cbiAgfTtcblxuICBjb25zdCBBUkdVTUVOVCA9IHtcbiAgICBjbGFzc05hbWU6IFwidmFyaWFibGVcIixcbiAgICBiZWdpbjogL1xcJFtcXHdfXSsvXG4gIH07XG5cbiAgY29uc3QgUEFSRU5TID0ge1xuICAgIG1hdGNoOiAvKFxcKCg/ITspfFxcKSkrLyxcbiAgICBjbGFzc05hbWU6IFwicHVuY3R1YXRpb25cIixcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBOVU1CRVIgPSB7XG4gICAgY2xhc3NOYW1lOiBcIm51bWJlclwiLFxuICAgIHJlbGV2YW5jZTogMCxcbiAgICAvLyBib3Jyb3dlZCBmcm9tIFByaXNtLCBUT0RPOiBzcGxpdCBvdXQgaW50byB2YXJpYW50c1xuICAgIG1hdGNoOiAvWystXT9cXGIoPzpcXGQoPzpfP1xcZCkqKD86XFwuXFxkKD86Xz9cXGQpKik/KD86W2VFXVsrLV0/XFxkKD86Xz9cXGQpKik/fDB4W1xcZGEtZkEtRl0oPzpfP1tcXGRhLWZBLUZdKSooPzpcXC5bXFxkYS1mQS1GXSg/Ol8/W1xcZGEtZkEtRF0pKik/KD86W3BQXVsrLV0/XFxkKD86Xz9cXGQpKik/KVxcYnxcXGJpbmZcXGJ8XFxibmFuKD86OjB4W1xcZGEtZkEtRl0oPzpfP1tcXGRhLWZBLURdKSopP1xcYi9cbiAgfTtcblxuICBjb25zdCBUWVBFID0ge1xuICAgIC8vIGxvb2stYWhlYWQgcHJldmVudHMgdXMgZnJvbSBnb2JibGluZyB1cCBvcGNvZGVzXG4gICAgbWF0Y2g6IC8oaTMyfGk2NHxmMzJ8ZjY0KSg/IVxcLikvLFxuICAgIGNsYXNzTmFtZTogXCJ0eXBlXCJcbiAgfTtcblxuICBjb25zdCBNQVRIX09QRVJBVElPTlMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImtleXdvcmRcIixcbiAgICAvLyBib3Jyb3dlZCBmcm9tIFByaXNtLCBUT0RPOiBzcGxpdCBvdXQgaW50byB2YXJpYW50c1xuICAgIG1hdGNoOiAvXFxiKGYzMnxmNjR8aTMyfGk2NCkoPzpcXC4oPzphYnN8YWRkfGFuZHxjZWlsfGNsenxjb25zdHxjb252ZXJ0X1tzdV1cXC9pKD86MzJ8NjQpfGNvcHlzaWdufGN0enxkZW1vdGVcXC9mNjR8ZGl2KD86X1tzdV0pP3xlcXo/fGV4dGVuZF9bc3VdXFwvaTMyfGZsb29yfGdlKD86X1tzdV0pP3xndCg/Ol9bc3VdKT98bGUoPzpfW3N1XSk/fGxvYWQoPzooPzo4fDE2fDMyKV9bc3VdKT98bHQoPzpfW3N1XSk/fG1heHxtaW58bXVsfG5lYXJlc3R8bmVnP3xvcnxwb3BjbnR8cHJvbW90ZVxcL2YzMnxyZWludGVycHJldFxcL1tmaV0oPzozMnw2NCl8cmVtX1tzdV18cm90W2xyXXxzaGx8c2hyX1tzdV18c3RvcmUoPzo4fDE2fDMyKT98c3FydHxzdWJ8dHJ1bmMoPzpfW3N1XVxcL2YoPzozMnw2NCkpP3x3cmFwXFwvaTY0fHhvcikpXFxiL1xuICB9O1xuXG4gIGNvbnN0IE9GRlNFVF9BTElHTiA9IHtcbiAgICBtYXRjaDogW1xuICAgICAgLyg/Om9mZnNldHxhbGlnbikvLFxuICAgICAgL1xccyovLFxuICAgICAgLz0vXG4gICAgXSxcbiAgICBjbGFzc05hbWU6IHtcbiAgICAgIDE6IFwia2V5d29yZFwiLFxuICAgICAgMzogXCJvcGVyYXRvclwiXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1dlYkFzc2VtYmx5JyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bXFx3Ll0rLyxcbiAgICAgIGtleXdvcmQ6IEtXU1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIExJTkVfQ09NTUVOVCxcbiAgICAgIEJMT0NLX0NPTU1FTlQsXG4gICAgICBPRkZTRVRfQUxJR04sXG4gICAgICBBUkdVTUVOVCxcbiAgICAgIFBBUkVOUyxcbiAgICAgIEZVTkNUSU9OX1JFRkVSRU5DRSxcbiAgICAgIGhsanMuUVVPVEVfU1RSSU5HX01PREUsXG4gICAgICBUWVBFLFxuICAgICAgTUFUSF9PUEVSQVRJT05TLFxuICAgICAgTlVNQkVSXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHdhc207XG4iLCAiLypcbkxhbmd1YWdlOiBXcmVuXG5EZXNjcmlwdGlvbjogVGhpbmsgU21hbGx0YWxrIGluIGEgTHVhLXNpemVkIHBhY2thZ2Ugd2l0aCBhIGRhc2ggb2YgRXJsYW5nIGFuZCB3cmFwcGVkIHVwIGluIGEgZmFtaWxpYXIsIG1vZGVybiBzeW50YXguXG5DYXRlZ29yeTogc2NyaXB0aW5nXG5BdXRob3I6IEBqb3NoZ29lYmVsXG5NYWludGFpbmVyOiBAam9zaGdvZWJlbFxuV2Vic2l0ZTogaHR0cHM6Ly93cmVuLmlvL1xuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHdyZW4oaGxqcykge1xuICBjb25zdCByZWdleCA9IGhsanMucmVnZXg7XG4gIGNvbnN0IElERU5UX1JFID0gL1thLXpBLVpdXFx3Ki87XG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwiYXNcIixcbiAgICBcImJyZWFrXCIsXG4gICAgXCJjbGFzc1wiLFxuICAgIFwiY29uc3RydWN0XCIsXG4gICAgXCJjb250aW51ZVwiLFxuICAgIFwiZWxzZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJmb3JlaWduXCIsXG4gICAgXCJpZlwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJpblwiLFxuICAgIFwiaXNcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwic3RhdGljXCIsXG4gICAgXCJ2YXJcIixcbiAgICBcIndoaWxlXCJcbiAgXTtcbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJ0cnVlXCIsXG4gICAgXCJmYWxzZVwiLFxuICAgIFwibnVsbFwiXG4gIF07XG4gIGNvbnN0IExBTkdVQUdFX1ZBUlMgPSBbXG4gICAgXCJ0aGlzXCIsXG4gICAgXCJzdXBlclwiXG4gIF07XG4gIGNvbnN0IENPUkVfQ0xBU1NFUyA9IFtcbiAgICBcIkJvb2xcIixcbiAgICBcIkNsYXNzXCIsXG4gICAgXCJGaWJlclwiLFxuICAgIFwiRm5cIixcbiAgICBcIkxpc3RcIixcbiAgICBcIk1hcFwiLFxuICAgIFwiTnVsbFwiLFxuICAgIFwiTnVtXCIsXG4gICAgXCJPYmplY3RcIixcbiAgICBcIlJhbmdlXCIsXG4gICAgXCJTZXF1ZW5jZVwiLFxuICAgIFwiU3RyaW5nXCIsXG4gICAgXCJTeXN0ZW1cIlxuICBdO1xuICBjb25zdCBPUEVSQVRPUlMgPSBbXG4gICAgXCItXCIsXG4gICAgXCJ+XCIsXG4gICAgL1xcKi8sXG4gICAgXCIlXCIsXG4gICAgL1xcLlxcLlxcLi8sXG4gICAgL1xcLlxcLi8sXG4gICAgL1xcKy8sXG4gICAgXCI8PFwiLFxuICAgIFwiPj5cIixcbiAgICBcIj49XCIsXG4gICAgXCI8PVwiLFxuICAgIFwiPFwiLFxuICAgIFwiPlwiLFxuICAgIC9cXF4vLFxuICAgIC8hPS8sXG4gICAgLyEvLFxuICAgIC9cXGJpc1xcYi8sXG4gICAgXCI9PVwiLFxuICAgIFwiJiZcIixcbiAgICBcIiZcIixcbiAgICAvXFx8XFx8LyxcbiAgICAvXFx8LyxcbiAgICAvXFw/Oi8sXG4gICAgXCI9XCJcbiAgXTtcbiAgY29uc3QgRlVOQ1RJT04gPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiByZWdleC5jb25jYXQoL1xcYig/IShpZnx3aGlsZXxmb3J8ZWxzZXxzdXBlcilcXGIpLywgSURFTlRfUkUsIC8oPz1cXHMqWyh7XSkvKSxcbiAgICBjbGFzc05hbWU6IFwidGl0bGUuZnVuY3Rpb25cIlxuICB9O1xuICBjb25zdCBGVU5DVElPTl9ERUZJTklUSU9OID0ge1xuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICByZWdleC5laXRoZXIoXG4gICAgICAgIHJlZ2V4LmNvbmNhdCgvXFxiKD8hKGlmfHdoaWxlfGZvcnxlbHNlfHN1cGVyKVxcYikvLCBJREVOVF9SRSksXG4gICAgICAgIHJlZ2V4LmVpdGhlciguLi5PUEVSQVRPUlMpXG4gICAgICApLFxuICAgICAgLyg/PVxccypcXChbXildK1xcKVxccypcXHspLyksXG4gICAgY2xhc3NOYW1lOiBcInRpdGxlLmZ1bmN0aW9uXCIsXG4gICAgc3RhcnRzOiB7IGNvbnRhaW5zOiBbXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFwoLyxcbiAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICByZWxldmFuY2U6IDAsXG4gICAgICAgICAgICBzY29wZTogXCJwYXJhbXNcIixcbiAgICAgICAgICAgIG1hdGNoOiBJREVOVF9SRVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF0gfVxuICB9O1xuICBjb25zdCBDTEFTU19ERUZJTklUSU9OID0ge1xuICAgIHZhcmlhbnRzOiBbXG4gICAgICB7IG1hdGNoOiBbXG4gICAgICAgIC9jbGFzc1xccysvLFxuICAgICAgICBJREVOVF9SRSxcbiAgICAgICAgL1xccytpc1xccysvLFxuICAgICAgICBJREVOVF9SRVxuICAgICAgXSB9LFxuICAgICAgeyBtYXRjaDogW1xuICAgICAgICAvY2xhc3NcXHMrLyxcbiAgICAgICAgSURFTlRfUkVcbiAgICAgIF0gfVxuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDI6IFwidGl0bGUuY2xhc3NcIixcbiAgICAgIDQ6IFwidGl0bGUuY2xhc3MuaW5oZXJpdGVkXCJcbiAgICB9LFxuICAgIGtleXdvcmRzOiBLRVlXT1JEU1xuICB9O1xuXG4gIGNvbnN0IE9QRVJBVE9SID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogcmVnZXguZWl0aGVyKC4uLk9QRVJBVE9SUyksXG4gICAgY2xhc3NOYW1lOiBcIm9wZXJhdG9yXCJcbiAgfTtcblxuICBjb25zdCBUUklQTEVfU1RSSU5HID0ge1xuICAgIGNsYXNzTmFtZTogXCJzdHJpbmdcIixcbiAgICBiZWdpbjogL1wiXCJcIi8sXG4gICAgZW5kOiAvXCJcIlwiL1xuICB9O1xuXG4gIGNvbnN0IFBST1BFUlRZID0ge1xuICAgIGNsYXNzTmFtZTogXCJwcm9wZXJ0eVwiLFxuICAgIGJlZ2luOiByZWdleC5jb25jYXQoL1xcLi8sIHJlZ2V4Lmxvb2thaGVhZChJREVOVF9SRSkpLFxuICAgIGVuZDogSURFTlRfUkUsXG4gICAgZXhjbHVkZUJlZ2luOiB0cnVlLFxuICAgIHJlbGV2YW5jZTogMFxuICB9O1xuXG4gIGNvbnN0IEZJRUxEID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogcmVnZXguY29uY2F0KC9cXGJfLywgSURFTlRfUkUpLFxuICAgIHNjb3BlOiBcInZhcmlhYmxlXCJcbiAgfTtcblxuICAvLyBDYW1lbENhc2VcbiAgY29uc3QgQ0xBU1NfUkVGRVJFTkNFID0ge1xuICAgIHJlbGV2YW5jZTogMCxcbiAgICBtYXRjaDogL1xcYltBLVpdK1thLXpdKyhbQS1aXStbYS16XSspKi8sXG4gICAgc2NvcGU6IFwidGl0bGUuY2xhc3NcIixcbiAgICBrZXl3b3JkczogeyBfOiBDT1JFX0NMQVNTRVMgfVxuICB9O1xuXG4gIC8vIFRPRE86IGFkZCBjdXN0b20gbnVtYmVyIG1vZGVzXG4gIGNvbnN0IE5VTUJFUiA9IGhsanMuQ19OVU1CRVJfTU9ERTtcblxuICBjb25zdCBTRVRURVIgPSB7XG4gICAgbWF0Y2g6IFtcbiAgICAgIElERU5UX1JFLFxuICAgICAgL1xccyovLFxuICAgICAgLz0vLFxuICAgICAgL1xccyovLFxuICAgICAgL1xcKC8sXG4gICAgICBJREVOVF9SRSxcbiAgICAgIC9cXClcXHMqXFx7L1xuICAgIF0sXG4gICAgc2NvcGU6IHtcbiAgICAgIDE6IFwidGl0bGUuZnVuY3Rpb25cIixcbiAgICAgIDM6IFwib3BlcmF0b3JcIixcbiAgICAgIDY6IFwicGFyYW1zXCJcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgQ09NTUVOVF9ET0NTID0gaGxqcy5DT01NRU5UKFxuICAgIC9cXC9cXCpcXCovLFxuICAgIC9cXCpcXC8vLFxuICAgIHsgY29udGFpbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbWF0Y2g6IC9AW2Etel0rLyxcbiAgICAgICAgc2NvcGU6IFwiZG9jdGFnXCJcbiAgICAgIH0sXG4gICAgICBcInNlbGZcIlxuICAgIF0gfVxuICApO1xuICBjb25zdCBTVUJTVCA9IHtcbiAgICBzY29wZTogXCJzdWJzdFwiLFxuICAgIGJlZ2luOiAvJVxcKC8sXG4gICAgZW5kOiAvXFwpLyxcbiAgICBjb250YWluczogW1xuICAgICAgTlVNQkVSLFxuICAgICAgQ0xBU1NfUkVGRVJFTkNFLFxuICAgICAgRlVOQ1RJT04sXG4gICAgICBGSUVMRCxcbiAgICAgIE9QRVJBVE9SXG4gICAgXVxuICB9O1xuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgc2NvcGU6IFwic3RyaW5nXCIsXG4gICAgYmVnaW46IC9cIi8sXG4gICAgZW5kOiAvXCIvLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBTVUJTVCxcbiAgICAgIHtcbiAgICAgICAgc2NvcGU6IFwiY2hhci5lc2NhcGVcIixcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICB7IG1hdGNoOiAvXFxcXFxcXFx8XFxcXFtcIjAlYWJlZm5ydHZdLyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXFxceFswLTlBLUZdezJ9LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXFxcdVswLTlBLUZdezR9LyB9LFxuICAgICAgICAgIHsgbWF0Y2g6IC9cXFxcVVswLTlBLUZdezh9LyB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIFNVQlNULmNvbnRhaW5zLnB1c2goU1RSSU5HKTtcblxuICBjb25zdCBBTExfS1dTID0gW1xuICAgIC4uLktFWVdPUkRTLFxuICAgIC4uLkxBTkdVQUdFX1ZBUlMsXG4gICAgLi4uTElURVJBTFNcbiAgXTtcbiAgY29uc3QgVkFSSUFCTEUgPSB7XG4gICAgcmVsZXZhbmNlOiAwLFxuICAgIG1hdGNoOiByZWdleC5jb25jYXQoXG4gICAgICBcIlxcXFxiKD8hXCIsXG4gICAgICBBTExfS1dTLmpvaW4oXCJ8XCIpLFxuICAgICAgXCJcXFxcYilcIixcbiAgICAgIC9bYS16QS1aX11cXHcqKD86Wz8hXXxcXGIpL1xuICAgICksXG4gICAgY2xhc3NOYW1lOiBcInZhcmlhYmxlXCJcbiAgfTtcblxuICAvLyBUT0RPOiByZWNvbnNpZGVyIHRoaXMgaW4gdGhlIGZ1dHVyZVxuICBjb25zdCBBVFRSSUJVVEUgPSB7XG4gICAgLy8gc2NvcGU6IFwibWV0YVwiLFxuICAgIHNjb3BlOiBcImNvbW1lbnRcIixcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogW1xuICAgICAgICAgIC8jIT8vLFxuICAgICAgICAgIC9bQS1aYS16X10rKD89XFwoKS9cbiAgICAgICAgXSxcbiAgICAgICAgYmVnaW5TY29wZToge1xuICAgICAgICAgIC8vIDI6IFwiYXR0clwiXG4gICAgICAgIH0sXG4gICAgICAgIGtleXdvcmRzOiB7IGxpdGVyYWw6IExJVEVSQUxTIH0sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgLy8gTlVNQkVSLFxuICAgICAgICAgIC8vIFZBUklBQkxFXG4gICAgICAgIF0sXG4gICAgICAgIGVuZDogL1xcKS9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiBbXG4gICAgICAgICAgLyMhPy8sXG4gICAgICAgICAgL1tBLVphLXpfXSsvXG4gICAgICAgIF0sXG4gICAgICAgIGJlZ2luU2NvcGU6IHtcbiAgICAgICAgICAvLyAyOiBcImF0dHJcIlxuICAgICAgICB9LFxuICAgICAgICBlbmQ6IC8kL1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiV3JlblwiLFxuICAgIGtleXdvcmRzOiB7XG4gICAgICBrZXl3b3JkOiBLRVlXT1JEUyxcbiAgICAgIFwidmFyaWFibGUubGFuZ3VhZ2VcIjogTEFOR1VBR0VfVkFSUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogW1xuICAgICAgQVRUUklCVVRFLFxuICAgICAgTlVNQkVSLFxuICAgICAgU1RSSU5HLFxuICAgICAgVFJJUExFX1NUUklORyxcbiAgICAgIENPTU1FTlRfRE9DUyxcbiAgICAgIGhsanMuQ19MSU5FX0NPTU1FTlRfTU9ERSxcbiAgICAgIGhsanMuQ19CTE9DS19DT01NRU5UX01PREUsXG4gICAgICBDTEFTU19SRUZFUkVOQ0UsXG4gICAgICBDTEFTU19ERUZJTklUSU9OLFxuICAgICAgU0VUVEVSLFxuICAgICAgRlVOQ1RJT05fREVGSU5JVElPTixcbiAgICAgIEZVTkNUSU9OLFxuICAgICAgT1BFUkFUT1IsXG4gICAgICBGSUVMRCxcbiAgICAgIFBST1BFUlRZLFxuICAgICAgVkFSSUFCTEVcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd3JlbjtcbiIsICIvKlxuTGFuZ3VhZ2U6IEludGVsIHg4NiBBc3NlbWJseVxuQXV0aG9yOiBpbm5vY2VuYXQgPGlubm9jZW5hdEBnbWFpbC5jb20+XG5EZXNjcmlwdGlvbjogeDg2IGFzc2VtYmx5IGxhbmd1YWdlIHVzaW5nIEludGVsJ3MgbW5lbW9uaWMgYW5kIE5BU00gc3ludGF4XG5XZWJzaXRlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9YODZfYXNzZW1ibHlfbGFuZ3VhZ2VcbkNhdGVnb3J5OiBhc3NlbWJsZXJcbiovXG5cbmZ1bmN0aW9uIHg4NmFzbShobGpzKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ0ludGVsIHg4NiBBc3NlbWJseScsXG4gICAgY2FzZV9pbnNlbnNpdGl2ZTogdHJ1ZSxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46ICdbLiVdPycgKyBobGpzLklERU5UX1JFLFxuICAgICAga2V5d29yZDpcbiAgICAgICAgJ2xvY2sgcmVwIHJlcGUgcmVweiByZXBuZSByZXBueiB4YXF1aXJlIHhyZWxlYXNlIGJuZCBub2JuZCAnXG4gICAgICAgICsgJ2FhYSBhYWQgYWFtIGFhcyBhZGMgYWRkIGFuZCBhcnBsIGJiMF9yZXNldCBiYjFfcmVzZXQgYm91bmQgYnNmIGJzciBic3dhcCBidCBidGMgYnRyIGJ0cyBjYWxsIGNidyBjZHEgY2RxZSBjbGMgY2xkIGNsaSBjbHRzIGNtYyBjbXAgY21wc2IgY21wc2QgY21wc3EgY21wc3cgY21weGNoZyBjbXB4Y2hnNDg2IGNtcHhjaGc4YiBjbXB4Y2hnMTZiIGNwdWlkIGNwdV9yZWFkIGNwdV93cml0ZSBjcW8gY3dkIGN3ZGUgZGFhIGRhcyBkZWMgZGl2IGRtaW50IGVtbXMgZW50ZXIgZXF1IGYyeG0xIGZhYnMgZmFkZCBmYWRkcCBmYmxkIGZic3RwIGZjaHMgZmNsZXggZmNtb3ZiIGZjbW92YmUgZmNtb3ZlIGZjbW92bmIgZmNtb3ZuYmUgZmNtb3ZuZSBmY21vdm51IGZjbW92dSBmY29tIGZjb21pIGZjb21pcCBmY29tcCBmY29tcHAgZmNvcyBmZGVjc3RwIGZkaXNpIGZkaXYgZmRpdnAgZmRpdnIgZmRpdnJwIGZlbW1zIGZlbmkgZmZyZWUgZmZyZWVwIGZpYWRkIGZpY29tIGZpY29tcCBmaWRpdiBmaWRpdnIgZmlsZCBmaW11bCBmaW5jc3RwIGZpbml0IGZpc3QgZmlzdHAgZmlzdHRwIGZpc3ViIGZpc3ViciBmbGQgZmxkMSBmbGRjdyBmbGRlbnYgZmxkbDJlIGZsZGwydCBmbGRsZzIgZmxkbG4yIGZsZHBpIGZsZHogZm11bCBmbXVscCBmbmNsZXggZm5kaXNpIGZuZW5pIGZuaW5pdCBmbm9wIGZuc2F2ZSBmbnN0Y3cgZm5zdGVudiBmbnN0c3cgZnBhdGFuIGZwcmVtIGZwcmVtMSBmcHRhbiBmcm5kaW50IGZyc3RvciBmc2F2ZSBmc2NhbGUgZnNldHBtIGZzaW4gZnNpbmNvcyBmc3FydCBmc3QgZnN0Y3cgZnN0ZW52IGZzdHAgZnN0c3cgZnN1YiBmc3VicCBmc3ViciBmc3VicnAgZnRzdCBmdWNvbSBmdWNvbWkgZnVjb21pcCBmdWNvbXAgZnVjb21wcCBmeGFtIGZ4Y2ggZnh0cmFjdCBmeWwyeCBmeWwyeHAxIGhsdCBpYnRzIGljZWJwIGlkaXYgaW11bCBpbiBpbmMgaW5jYmluIGluc2IgaW5zZCBpbnN3IGludCBpbnQwMSBpbnQxIGludDAzIGludDMgaW50byBpbnZkIGludnBjaWQgaW52bHBnIGludmxwZ2EgaXJldCBpcmV0ZCBpcmV0cSBpcmV0dyBqY3h6IGplY3h6IGpyY3h6IGptcCBqbXBlIGxhaGYgbGFyIGxkcyBsZWEgbGVhdmUgbGVzIGxmZW5jZSBsZnMgbGdkdCBsZ3MgbGlkdCBsbGR0IGxtc3cgbG9hZGFsbCBsb2FkYWxsMjg2IGxvZHNiIGxvZHNkIGxvZHNxIGxvZHN3IGxvb3AgbG9vcGUgbG9vcG5lIGxvb3BueiBsb29weiBsc2wgbHNzIGx0ciBtZmVuY2UgbW9uaXRvciBtb3YgbW92ZCBtb3ZxIG1vdnNiIG1vdnNkIG1vdnNxIG1vdnN3IG1vdnN4IG1vdnN4ZCBtb3Z6eCBtdWwgbXdhaXQgbmVnIG5vcCBub3Qgb3Igb3V0IG91dHNiIG91dHNkIG91dHN3IHBhY2tzc2R3IHBhY2tzc3diIHBhY2t1c3diIHBhZGRiIHBhZGRkIHBhZGRzYiBwYWRkc2l3IHBhZGRzdyBwYWRkdXNiIHBhZGR1c3cgcGFkZHcgcGFuZCBwYW5kbiBwYXVzZSBwYXZlYiBwYXZndXNiIHBjbXBlcWIgcGNtcGVxZCBwY21wZXF3IHBjbXBndGIgcGNtcGd0ZCBwY21wZ3R3IHBkaXN0aWIgcGYyaWQgcGZhY2MgcGZhZGQgcGZjbXBlcSBwZmNtcGdlIHBmY21wZ3QgcGZtYXggcGZtaW4gcGZtdWwgcGZyY3AgcGZyY3BpdDEgcGZyY3BpdDIgcGZyc3FpdDEgcGZyc3FydCBwZnN1YiBwZnN1YnIgcGkyZmQgcG1hY2hyaXcgcG1hZGR3ZCBwbWFndyBwbXVsaHJpdyBwbXVsaHJ3YSBwbXVsaHJ3YyBwbXVsaHcgcG11bGx3IHBtdmdlemIgcG12bHpiIHBtdm56YiBwbXZ6YiBwb3AgcG9wYSBwb3BhZCBwb3BhdyBwb3BmIHBvcGZkIHBvcGZxIHBvcGZ3IHBvciBwcmVmZXRjaCBwcmVmZXRjaHcgcHNsbGQgcHNsbHEgcHNsbHcgcHNyYWQgcHNyYXcgcHNybGQgcHNybHEgcHNybHcgcHN1YmIgcHN1YmQgcHN1YnNiIHBzdWJzaXcgcHN1YnN3IHBzdWJ1c2IgcHN1YnVzdyBwc3VidyBwdW5wY2toYncgcHVucGNraGRxIHB1bnBja2h3ZCBwdW5wY2tsYncgcHVucGNrbGRxIHB1bnBja2x3ZCBwdXNoIHB1c2hhIHB1c2hhZCBwdXNoYXcgcHVzaGYgcHVzaGZkIHB1c2hmcSBwdXNoZncgcHhvciByY2wgcmNyIHJkc2hyIHJkbXNyIHJkcG1jIHJkdHNjIHJkdHNjcCByZXQgcmV0ZiByZXRuIHJvbCByb3IgcmRtIHJzZGMgcnNsZHQgcnNtIHJzdHMgc2FoZiBzYWwgc2FsYyBzYXIgc2JiIHNjYXNiIHNjYXNkIHNjYXNxIHNjYXN3IHNmZW5jZSBzZ2R0IHNobCBzaGxkIHNociBzaHJkIHNpZHQgc2xkdCBza2luaXQgc21pIHNtaW50IHNtaW50b2xkIHNtc3cgc3RjIHN0ZCBzdGkgc3Rvc2Igc3Rvc2Qgc3Rvc3Egc3Rvc3cgc3RyIHN1YiBzdmRjIHN2bGR0IHN2dHMgc3dhcGdzIHN5c2NhbGwgc3lzZW50ZXIgc3lzZXhpdCBzeXNyZXQgdGVzdCB1ZDAgdWQxIHVkMmIgdWQyIHVkMmEgdW1vdiB2ZXJyIHZlcncgZndhaXQgd2JpbnZkIHdyc2hyIHdybXNyIHhhZGQgeGJ0cyB4Y2hnIHhsYXRiIHhsYXQgeG9yIGNtb3ZlIGNtb3Z6IGNtb3ZuZSBjbW92bnogY21vdmEgY21vdm5iZSBjbW92YWUgY21vdm5iIGNtb3ZiIGNtb3ZuYWUgY21vdmJlIGNtb3ZuYSBjbW92ZyBjbW92bmxlIGNtb3ZnZSBjbW92bmwgY21vdmwgY21vdm5nZSBjbW92bGUgY21vdm5nIGNtb3ZjIGNtb3ZuYyBjbW92byBjbW92bm8gY21vdnMgY21vdm5zIGNtb3ZwIGNtb3ZwZSBjbW92bnAgY21vdnBvIGplIGp6IGpuZSBqbnogamEgam5iZSBqYWUgam5iIGpiIGpuYWUgamJlIGpuYSBqZyBqbmxlIGpnZSBqbmwgamwgam5nZSBqbGUgam5nIGpjIGpuYyBqbyBqbm8ganMgam5zIGpwbyBqbnAganBlIGpwIHNldGUgc2V0eiBzZXRuZSBzZXRueiBzZXRhIHNldG5iZSBzZXRhZSBzZXRuYiBzZXRuYyBzZXRiIHNldG5hZSBzZXRjc2V0IHNldGJlIHNldG5hIHNldGcgc2V0bmxlIHNldGdlIHNldG5sIHNldGwgc2V0bmdlIHNldGxlIHNldG5nIHNldHMgc2V0bnMgc2V0byBzZXRubyBzZXRwZSBzZXRwIHNldHBvIHNldG5wIGFkZHBzIGFkZHNzIGFuZG5wcyBhbmRwcyBjbXBlcXBzIGNtcGVxc3MgY21wbGVwcyBjbXBsZXNzIGNtcGx0cHMgY21wbHRzcyBjbXBuZXFwcyBjbXBuZXFzcyBjbXBubGVwcyBjbXBubGVzcyBjbXBubHRwcyBjbXBubHRzcyBjbXBvcmRwcyBjbXBvcmRzcyBjbXB1bm9yZHBzIGNtcHVub3Jkc3MgY21wcHMgY21wc3MgY29taXNzIGN2dHBpMnBzIGN2dHBzMnBpIGN2dHNpMnNzIGN2dHNzMnNpIGN2dHRwczJwaSBjdnR0c3Myc2kgZGl2cHMgZGl2c3MgbGRteGNzciBtYXhwcyBtYXhzcyBtaW5wcyBtaW5zcyBtb3ZhcHMgbW92aHBzIG1vdmxocHMgbW92bHBzIG1vdmhscHMgbW92bXNrcHMgbW92bnRwcyBtb3ZzcyBtb3Z1cHMgbXVscHMgbXVsc3Mgb3JwcyByY3BwcyByY3BzcyByc3FydHBzIHJzcXJ0c3Mgc2h1ZnBzIHNxcnRwcyBzcXJ0c3Mgc3RteGNzciBzdWJwcyBzdWJzcyB1Y29taXNzIHVucGNraHBzIHVucGNrbHBzIHhvcnBzIGZ4cnN0b3IgZnhyc3RvcjY0IGZ4c2F2ZSBmeHNhdmU2NCB4Z2V0YnYgeHNldGJ2IHhzYXZlIHhzYXZlNjQgeHNhdmVvcHQgeHNhdmVvcHQ2NCB4cnN0b3IgeHJzdG9yNjQgcHJlZmV0Y2hudGEgcHJlZmV0Y2h0MCBwcmVmZXRjaHQxIHByZWZldGNodDIgbWFza21vdnEgbW92bnRxIHBhdmdiIHBhdmd3IHBleHRydyBwaW5zcncgcG1heHN3IHBtYXh1YiBwbWluc3cgcG1pbnViIHBtb3Ztc2tiIHBtdWxodXcgcHNhZGJ3IHBzaHVmdyBwZjJpdyBwZm5hY2MgcGZwbmFjYyBwaTJmdyBwc3dhcGQgbWFza21vdmRxdSBjbGZsdXNoIG1vdm50ZHEgbW92bnRpIG1vdm50cGQgbW92ZHFhIG1vdmRxdSBtb3ZkcTJxIG1vdnEyZHEgcGFkZHEgcG11bHVkcSBwc2h1ZmQgcHNodWZodyBwc2h1Zmx3IHBzbGxkcSBwc3JsZHEgcHN1YnEgcHVucGNraHFkcSBwdW5wY2tscWRxIGFkZHBkIGFkZHNkIGFuZG5wZCBhbmRwZCBjbXBlcXBkIGNtcGVxc2QgY21wbGVwZCBjbXBsZXNkIGNtcGx0cGQgY21wbHRzZCBjbXBuZXFwZCBjbXBuZXFzZCBjbXBubGVwZCBjbXBubGVzZCBjbXBubHRwZCBjbXBubHRzZCBjbXBvcmRwZCBjbXBvcmRzZCBjbXB1bm9yZHBkIGNtcHVub3Jkc2QgY21wcGQgY29taXNkIGN2dGRxMnBkIGN2dGRxMnBzIGN2dHBkMmRxIGN2dHBkMnBpIGN2dHBkMnBzIGN2dHBpMnBkIGN2dHBzMmRxIGN2dHBzMnBkIGN2dHNkMnNpIGN2dHNkMnNzIGN2dHNpMnNkIGN2dHNzMnNkIGN2dHRwZDJwaSBjdnR0cGQyZHEgY3Z0dHBzMmRxIGN2dHRzZDJzaSBkaXZwZCBkaXZzZCBtYXhwZCBtYXhzZCBtaW5wZCBtaW5zZCBtb3ZhcGQgbW92aHBkIG1vdmxwZCBtb3Ztc2twZCBtb3Z1cGQgbXVscGQgbXVsc2Qgb3JwZCBzaHVmcGQgc3FydHBkIHNxcnRzZCBzdWJwZCBzdWJzZCB1Y29taXNkIHVucGNraHBkIHVucGNrbHBkIHhvcnBkIGFkZHN1YnBkIGFkZHN1YnBzIGhhZGRwZCBoYWRkcHMgaHN1YnBkIGhzdWJwcyBsZGRxdSBtb3ZkZHVwIG1vdnNoZHVwIG1vdnNsZHVwIGNsZ2kgc3RnaSB2bWNhbGwgdm1jbGVhciB2bWZ1bmMgdm1sYXVuY2ggdm1sb2FkIHZtbWNhbGwgdm1wdHJsZCB2bXB0cnN0IHZtcmVhZCB2bXJlc3VtZSB2bXJ1biB2bXNhdmUgdm13cml0ZSB2bXhvZmYgdm14b24gaW52ZXB0IGludnZwaWQgcGFic2IgcGFic3cgcGFic2QgcGFsaWduciBwaGFkZHcgcGhhZGRkIHBoYWRkc3cgcGhzdWJ3IHBoc3ViZCBwaHN1YnN3IHBtYWRkdWJzdyBwbXVsaHJzdyBwc2h1ZmIgcHNpZ25iIHBzaWdudyBwc2lnbmQgZXh0cnEgaW5zZXJ0cSBtb3ZudHNkIG1vdm50c3MgbHpjbnQgYmxlbmRwZCBibGVuZHBzIGJsZW5kdnBkIGJsZW5kdnBzIGRwcGQgZHBwcyBleHRyYWN0cHMgaW5zZXJ0cHMgbW92bnRkcWEgbXBzYWRidyBwYWNrdXNkdyBwYmxlbmR2YiBwYmxlbmR3IHBjbXBlcXEgcGV4dHJiIHBleHRyZCBwZXh0cnEgcGhtaW5wb3N1dyBwaW5zcmIgcGluc3JkIHBpbnNycSBwbWF4c2IgcG1heHNkIHBtYXh1ZCBwbWF4dXcgcG1pbnNiIHBtaW5zZCBwbWludWQgcG1pbnV3IHBtb3ZzeGJ3IHBtb3ZzeGJkIHBtb3ZzeGJxIHBtb3ZzeHdkIHBtb3ZzeHdxIHBtb3ZzeGRxIHBtb3Z6eGJ3IHBtb3Z6eGJkIHBtb3Z6eGJxIHBtb3Z6eHdkIHBtb3Z6eHdxIHBtb3Z6eGRxIHBtdWxkcSBwbXVsbGQgcHRlc3Qgcm91bmRwZCByb3VuZHBzIHJvdW5kc2Qgcm91bmRzcyBjcmMzMiBwY21wZXN0cmkgcGNtcGVzdHJtIHBjbXBpc3RyaSBwY21waXN0cm0gcGNtcGd0cSBwb3BjbnQgZ2V0c2VjIHBmcmNwdiBwZnJzcXJ0diBtb3ZiZSBhZXNlbmMgYWVzZW5jbGFzdCBhZXNkZWMgYWVzZGVjbGFzdCBhZXNpbWMgYWVza2V5Z2VuYXNzaXN0IHZhZXNlbmMgdmFlc2VuY2xhc3QgdmFlc2RlYyB2YWVzZGVjbGFzdCB2YWVzaW1jIHZhZXNrZXlnZW5hc3Npc3QgdmFkZHBkIHZhZGRwcyB2YWRkc2QgdmFkZHNzIHZhZGRzdWJwZCB2YWRkc3VicHMgdmFuZHBkIHZhbmRwcyB2YW5kbnBkIHZhbmRucHMgdmJsZW5kcGQgdmJsZW5kcHMgdmJsZW5kdnBkIHZibGVuZHZwcyB2YnJvYWRjYXN0c3MgdmJyb2FkY2FzdHNkIHZicm9hZGNhc3RmMTI4IHZjbXBlcV9vc3BkIHZjbXBlcXBkIHZjbXBsdF9vc3BkIHZjbXBsdHBkIHZjbXBsZV9vc3BkIHZjbXBsZXBkIHZjbXB1bm9yZF9xcGQgdmNtcHVub3JkcGQgdmNtcG5lcV91cXBkIHZjbXBuZXFwZCB2Y21wbmx0X3VzcGQgdmNtcG5sdHBkIHZjbXBubGVfdXNwZCB2Y21wbmxlcGQgdmNtcG9yZF9xcGQgdmNtcG9yZHBkIHZjbXBlcV91cXBkIHZjbXBuZ2VfdXNwZCB2Y21wbmdlcGQgdmNtcG5ndF91c3BkIHZjbXBuZ3RwZCB2Y21wZmFsc2Vfb3FwZCB2Y21wZmFsc2VwZCB2Y21wbmVxX29xcGQgdmNtcGdlX29zcGQgdmNtcGdlcGQgdmNtcGd0X29zcGQgdmNtcGd0cGQgdmNtcHRydWVfdXFwZCB2Y21wdHJ1ZXBkIHZjbXBsdF9vcXBkIHZjbXBsZV9vcXBkIHZjbXB1bm9yZF9zcGQgdmNtcG5lcV91c3BkIHZjbXBubHRfdXFwZCB2Y21wbmxlX3VxcGQgdmNtcG9yZF9zcGQgdmNtcGVxX3VzcGQgdmNtcG5nZV91cXBkIHZjbXBuZ3RfdXFwZCB2Y21wZmFsc2Vfb3NwZCB2Y21wbmVxX29zcGQgdmNtcGdlX29xcGQgdmNtcGd0X29xcGQgdmNtcHRydWVfdXNwZCB2Y21wcGQgdmNtcGVxX29zcHMgdmNtcGVxcHMgdmNtcGx0X29zcHMgdmNtcGx0cHMgdmNtcGxlX29zcHMgdmNtcGxlcHMgdmNtcHVub3JkX3FwcyB2Y21wdW5vcmRwcyB2Y21wbmVxX3VxcHMgdmNtcG5lcXBzIHZjbXBubHRfdXNwcyB2Y21wbmx0cHMgdmNtcG5sZV91c3BzIHZjbXBubGVwcyB2Y21wb3JkX3FwcyB2Y21wb3JkcHMgdmNtcGVxX3VxcHMgdmNtcG5nZV91c3BzIHZjbXBuZ2VwcyB2Y21wbmd0X3VzcHMgdmNtcG5ndHBzIHZjbXBmYWxzZV9vcXBzIHZjbXBmYWxzZXBzIHZjbXBuZXFfb3FwcyB2Y21wZ2Vfb3NwcyB2Y21wZ2VwcyB2Y21wZ3Rfb3NwcyB2Y21wZ3RwcyB2Y21wdHJ1ZV91cXBzIHZjbXB0cnVlcHMgdmNtcGx0X29xcHMgdmNtcGxlX29xcHMgdmNtcHVub3JkX3NwcyB2Y21wbmVxX3VzcHMgdmNtcG5sdF91cXBzIHZjbXBubGVfdXFwcyB2Y21wb3JkX3NwcyB2Y21wZXFfdXNwcyB2Y21wbmdlX3VxcHMgdmNtcG5ndF91cXBzIHZjbXBmYWxzZV9vc3BzIHZjbXBuZXFfb3NwcyB2Y21wZ2Vfb3FwcyB2Y21wZ3Rfb3FwcyB2Y21wdHJ1ZV91c3BzIHZjbXBwcyB2Y21wZXFfb3NzZCB2Y21wZXFzZCB2Y21wbHRfb3NzZCB2Y21wbHRzZCB2Y21wbGVfb3NzZCB2Y21wbGVzZCB2Y21wdW5vcmRfcXNkIHZjbXB1bm9yZHNkIHZjbXBuZXFfdXFzZCB2Y21wbmVxc2QgdmNtcG5sdF91c3NkIHZjbXBubHRzZCB2Y21wbmxlX3Vzc2QgdmNtcG5sZXNkIHZjbXBvcmRfcXNkIHZjbXBvcmRzZCB2Y21wZXFfdXFzZCB2Y21wbmdlX3Vzc2QgdmNtcG5nZXNkIHZjbXBuZ3RfdXNzZCB2Y21wbmd0c2QgdmNtcGZhbHNlX29xc2QgdmNtcGZhbHNlc2QgdmNtcG5lcV9vcXNkIHZjbXBnZV9vc3NkIHZjbXBnZXNkIHZjbXBndF9vc3NkIHZjbXBndHNkIHZjbXB0cnVlX3Vxc2QgdmNtcHRydWVzZCB2Y21wbHRfb3FzZCB2Y21wbGVfb3FzZCB2Y21wdW5vcmRfc3NkIHZjbXBuZXFfdXNzZCB2Y21wbmx0X3Vxc2QgdmNtcG5sZV91cXNkIHZjbXBvcmRfc3NkIHZjbXBlcV91c3NkIHZjbXBuZ2VfdXFzZCB2Y21wbmd0X3Vxc2QgdmNtcGZhbHNlX29zc2QgdmNtcG5lcV9vc3NkIHZjbXBnZV9vcXNkIHZjbXBndF9vcXNkIHZjbXB0cnVlX3Vzc2QgdmNtcHNkIHZjbXBlcV9vc3NzIHZjbXBlcXNzIHZjbXBsdF9vc3NzIHZjbXBsdHNzIHZjbXBsZV9vc3NzIHZjbXBsZXNzIHZjbXB1bm9yZF9xc3MgdmNtcHVub3Jkc3MgdmNtcG5lcV91cXNzIHZjbXBuZXFzcyB2Y21wbmx0X3Vzc3MgdmNtcG5sdHNzIHZjbXBubGVfdXNzcyB2Y21wbmxlc3MgdmNtcG9yZF9xc3MgdmNtcG9yZHNzIHZjbXBlcV91cXNzIHZjbXBuZ2VfdXNzcyB2Y21wbmdlc3MgdmNtcG5ndF91c3NzIHZjbXBuZ3RzcyB2Y21wZmFsc2Vfb3FzcyB2Y21wZmFsc2VzcyB2Y21wbmVxX29xc3MgdmNtcGdlX29zc3MgdmNtcGdlc3MgdmNtcGd0X29zc3MgdmNtcGd0c3MgdmNtcHRydWVfdXFzcyB2Y21wdHJ1ZXNzIHZjbXBsdF9vcXNzIHZjbXBsZV9vcXNzIHZjbXB1bm9yZF9zc3MgdmNtcG5lcV91c3NzIHZjbXBubHRfdXFzcyB2Y21wbmxlX3Vxc3MgdmNtcG9yZF9zc3MgdmNtcGVxX3Vzc3MgdmNtcG5nZV91cXNzIHZjbXBuZ3RfdXFzcyB2Y21wZmFsc2Vfb3NzcyB2Y21wbmVxX29zc3MgdmNtcGdlX29xc3MgdmNtcGd0X29xc3MgdmNtcHRydWVfdXNzcyB2Y21wc3MgdmNvbWlzZCB2Y29taXNzIHZjdnRkcTJwZCB2Y3Z0ZHEycHMgdmN2dHBkMmRxIHZjdnRwZDJwcyB2Y3Z0cHMyZHEgdmN2dHBzMnBkIHZjdnRzZDJzaSB2Y3Z0c2Qyc3MgdmN2dHNpMnNkIHZjdnRzaTJzcyB2Y3Z0c3Myc2QgdmN2dHNzMnNpIHZjdnR0cGQyZHEgdmN2dHRwczJkcSB2Y3Z0dHNkMnNpIHZjdnR0c3Myc2kgdmRpdnBkIHZkaXZwcyB2ZGl2c2QgdmRpdnNzIHZkcHBkIHZkcHBzIHZleHRyYWN0ZjEyOCB2ZXh0cmFjdHBzIHZoYWRkcGQgdmhhZGRwcyB2aHN1YnBkIHZoc3VicHMgdmluc2VydGYxMjggdmluc2VydHBzIHZsZGRxdSB2bGRxcXUgdmxkbXhjc3Igdm1hc2ttb3ZkcXUgdm1hc2ttb3ZwcyB2bWFza21vdnBkIHZtYXhwZCB2bWF4cHMgdm1heHNkIHZtYXhzcyB2bWlucGQgdm1pbnBzIHZtaW5zZCB2bWluc3Mgdm1vdmFwZCB2bW92YXBzIHZtb3ZkIHZtb3ZxIHZtb3ZkZHVwIHZtb3ZkcWEgdm1vdnFxYSB2bW92ZHF1IHZtb3ZxcXUgdm1vdmhscHMgdm1vdmhwZCB2bW92aHBzIHZtb3ZsaHBzIHZtb3ZscGQgdm1vdmxwcyB2bW92bXNrcGQgdm1vdm1za3BzIHZtb3ZudGRxIHZtb3ZudHFxIHZtb3ZudGRxYSB2bW92bnRwZCB2bW92bnRwcyB2bW92c2Qgdm1vdnNoZHVwIHZtb3ZzbGR1cCB2bW92c3Mgdm1vdnVwZCB2bW92dXBzIHZtcHNhZGJ3IHZtdWxwZCB2bXVscHMgdm11bHNkIHZtdWxzcyB2b3JwZCB2b3JwcyB2cGFic2IgdnBhYnN3IHZwYWJzZCB2cGFja3Nzd2IgdnBhY2tzc2R3IHZwYWNrdXN3YiB2cGFja3VzZHcgdnBhZGRiIHZwYWRkdyB2cGFkZGQgdnBhZGRxIHZwYWRkc2IgdnBhZGRzdyB2cGFkZHVzYiB2cGFkZHVzdyB2cGFsaWduciB2cGFuZCB2cGFuZG4gdnBhdmdiIHZwYXZndyB2cGJsZW5kdmIgdnBibGVuZHcgdnBjbXBlc3RyaSB2cGNtcGVzdHJtIHZwY21waXN0cmkgdnBjbXBpc3RybSB2cGNtcGVxYiB2cGNtcGVxdyB2cGNtcGVxZCB2cGNtcGVxcSB2cGNtcGd0YiB2cGNtcGd0dyB2cGNtcGd0ZCB2cGNtcGd0cSB2cGVybWlscGQgdnBlcm1pbHBzIHZwZXJtMmYxMjggdnBleHRyYiB2cGV4dHJ3IHZwZXh0cmQgdnBleHRycSB2cGhhZGR3IHZwaGFkZGQgdnBoYWRkc3cgdnBobWlucG9zdXcgdnBoc3VidyB2cGhzdWJkIHZwaHN1YnN3IHZwaW5zcmIgdnBpbnNydyB2cGluc3JkIHZwaW5zcnEgdnBtYWRkd2QgdnBtYWRkdWJzdyB2cG1heHNiIHZwbWF4c3cgdnBtYXhzZCB2cG1heHViIHZwbWF4dXcgdnBtYXh1ZCB2cG1pbnNiIHZwbWluc3cgdnBtaW5zZCB2cG1pbnViIHZwbWludXcgdnBtaW51ZCB2cG1vdm1za2IgdnBtb3ZzeGJ3IHZwbW92c3hiZCB2cG1vdnN4YnEgdnBtb3ZzeHdkIHZwbW92c3h3cSB2cG1vdnN4ZHEgdnBtb3Z6eGJ3IHZwbW92enhiZCB2cG1vdnp4YnEgdnBtb3Z6eHdkIHZwbW92enh3cSB2cG1vdnp4ZHEgdnBtdWxodXcgdnBtdWxocnN3IHZwbXVsaHcgdnBtdWxsdyB2cG11bGxkIHZwbXVsdWRxIHZwbXVsZHEgdnBvciB2cHNhZGJ3IHZwc2h1ZmIgdnBzaHVmZCB2cHNodWZodyB2cHNodWZsdyB2cHNpZ25iIHZwc2lnbncgdnBzaWduZCB2cHNsbGRxIHZwc3JsZHEgdnBzbGx3IHZwc2xsZCB2cHNsbHEgdnBzcmF3IHZwc3JhZCB2cHNybHcgdnBzcmxkIHZwc3JscSB2cHRlc3QgdnBzdWJiIHZwc3VidyB2cHN1YmQgdnBzdWJxIHZwc3Vic2IgdnBzdWJzdyB2cHN1YnVzYiB2cHN1YnVzdyB2cHVucGNraGJ3IHZwdW5wY2tod2QgdnB1bnBja2hkcSB2cHVucGNraHFkcSB2cHVucGNrbGJ3IHZwdW5wY2tsd2QgdnB1bnBja2xkcSB2cHVucGNrbHFkcSB2cHhvciB2cmNwcHMgdnJjcHNzIHZyc3FydHBzIHZyc3FydHNzIHZyb3VuZHBkIHZyb3VuZHBzIHZyb3VuZHNkIHZyb3VuZHNzIHZzaHVmcGQgdnNodWZwcyB2c3FydHBkIHZzcXJ0cHMgdnNxcnRzZCB2c3FydHNzIHZzdG14Y3NyIHZzdWJwZCB2c3VicHMgdnN1YnNkIHZzdWJzcyB2dGVzdHBzIHZ0ZXN0cGQgdnVjb21pc2QgdnVjb21pc3MgdnVucGNraHBkIHZ1bnBja2hwcyB2dW5wY2tscGQgdnVucGNrbHBzIHZ4b3JwZCB2eG9ycHMgdnplcm9hbGwgdnplcm91cHBlciBwY2xtdWxscWxxZHEgcGNsbXVsaHFscWRxIHBjbG11bGxxaHFkcSBwY2xtdWxocWhxZHEgcGNsbXVscWRxIHZwY2xtdWxscWxxZHEgdnBjbG11bGhxbHFkcSB2cGNsbXVsbHFocWRxIHZwY2xtdWxocWhxZHEgdnBjbG11bHFkcSB2Zm1hZGQxMzJwcyB2Zm1hZGQxMzJwZCB2Zm1hZGQzMTJwcyB2Zm1hZGQzMTJwZCB2Zm1hZGQyMTNwcyB2Zm1hZGQyMTNwZCB2Zm1hZGQxMjNwcyB2Zm1hZGQxMjNwZCB2Zm1hZGQyMzFwcyB2Zm1hZGQyMzFwZCB2Zm1hZGQzMjFwcyB2Zm1hZGQzMjFwZCB2Zm1hZGRzdWIxMzJwcyB2Zm1hZGRzdWIxMzJwZCB2Zm1hZGRzdWIzMTJwcyB2Zm1hZGRzdWIzMTJwZCB2Zm1hZGRzdWIyMTNwcyB2Zm1hZGRzdWIyMTNwZCB2Zm1hZGRzdWIxMjNwcyB2Zm1hZGRzdWIxMjNwZCB2Zm1hZGRzdWIyMzFwcyB2Zm1hZGRzdWIyMzFwZCB2Zm1hZGRzdWIzMjFwcyB2Zm1hZGRzdWIzMjFwZCB2Zm1zdWIxMzJwcyB2Zm1zdWIxMzJwZCB2Zm1zdWIzMTJwcyB2Zm1zdWIzMTJwZCB2Zm1zdWIyMTNwcyB2Zm1zdWIyMTNwZCB2Zm1zdWIxMjNwcyB2Zm1zdWIxMjNwZCB2Zm1zdWIyMzFwcyB2Zm1zdWIyMzFwZCB2Zm1zdWIzMjFwcyB2Zm1zdWIzMjFwZCB2Zm1zdWJhZGQxMzJwcyB2Zm1zdWJhZGQxMzJwZCB2Zm1zdWJhZGQzMTJwcyB2Zm1zdWJhZGQzMTJwZCB2Zm1zdWJhZGQyMTNwcyB2Zm1zdWJhZGQyMTNwZCB2Zm1zdWJhZGQxMjNwcyB2Zm1zdWJhZGQxMjNwZCB2Zm1zdWJhZGQyMzFwcyB2Zm1zdWJhZGQyMzFwZCB2Zm1zdWJhZGQzMjFwcyB2Zm1zdWJhZGQzMjFwZCB2Zm5tYWRkMTMycHMgdmZubWFkZDEzMnBkIHZmbm1hZGQzMTJwcyB2Zm5tYWRkMzEycGQgdmZubWFkZDIxM3BzIHZmbm1hZGQyMTNwZCB2Zm5tYWRkMTIzcHMgdmZubWFkZDEyM3BkIHZmbm1hZGQyMzFwcyB2Zm5tYWRkMjMxcGQgdmZubWFkZDMyMXBzIHZmbm1hZGQzMjFwZCB2Zm5tc3ViMTMycHMgdmZubXN1YjEzMnBkIHZmbm1zdWIzMTJwcyB2Zm5tc3ViMzEycGQgdmZubXN1YjIxM3BzIHZmbm1zdWIyMTNwZCB2Zm5tc3ViMTIzcHMgdmZubXN1YjEyM3BkIHZmbm1zdWIyMzFwcyB2Zm5tc3ViMjMxcGQgdmZubXN1YjMyMXBzIHZmbm1zdWIzMjFwZCB2Zm1hZGQxMzJzcyB2Zm1hZGQxMzJzZCB2Zm1hZGQzMTJzcyB2Zm1hZGQzMTJzZCB2Zm1hZGQyMTNzcyB2Zm1hZGQyMTNzZCB2Zm1hZGQxMjNzcyB2Zm1hZGQxMjNzZCB2Zm1hZGQyMzFzcyB2Zm1hZGQyMzFzZCB2Zm1hZGQzMjFzcyB2Zm1hZGQzMjFzZCB2Zm1zdWIxMzJzcyB2Zm1zdWIxMzJzZCB2Zm1zdWIzMTJzcyB2Zm1zdWIzMTJzZCB2Zm1zdWIyMTNzcyB2Zm1zdWIyMTNzZCB2Zm1zdWIxMjNzcyB2Zm1zdWIxMjNzZCB2Zm1zdWIyMzFzcyB2Zm1zdWIyMzFzZCB2Zm1zdWIzMjFzcyB2Zm1zdWIzMjFzZCB2Zm5tYWRkMTMyc3MgdmZubWFkZDEzMnNkIHZmbm1hZGQzMTJzcyB2Zm5tYWRkMzEyc2QgdmZubWFkZDIxM3NzIHZmbm1hZGQyMTNzZCB2Zm5tYWRkMTIzc3MgdmZubWFkZDEyM3NkIHZmbm1hZGQyMzFzcyB2Zm5tYWRkMjMxc2QgdmZubWFkZDMyMXNzIHZmbm1hZGQzMjFzZCB2Zm5tc3ViMTMyc3MgdmZubXN1YjEzMnNkIHZmbm1zdWIzMTJzcyB2Zm5tc3ViMzEyc2QgdmZubXN1YjIxM3NzIHZmbm1zdWIyMTNzZCB2Zm5tc3ViMTIzc3MgdmZubXN1YjEyM3NkIHZmbm1zdWIyMzFzcyB2Zm5tc3ViMjMxc2QgdmZubXN1YjMyMXNzIHZmbm1zdWIzMjFzZCByZGZzYmFzZSByZGdzYmFzZSByZHJhbmQgd3Jmc2Jhc2Ugd3Jnc2Jhc2UgdmN2dHBoMnBzIHZjdnRwczJwaCBhZGN4IGFkb3ggcmRzZWVkIGNsYWMgc3RhYyB4c3RvcmUgeGNyeXB0ZWNiIHhjcnlwdGNiYyB4Y3J5cHRjdHIgeGNyeXB0Y2ZiIHhjcnlwdG9mYiBtb250bXVsIHhzaGExIHhzaGEyNTYgbGx3cGNiIHNsd3BjYiBsd3B2YWwgbHdwaW5zIHZmbWFkZHBkIHZmbWFkZHBzIHZmbWFkZHNkIHZmbWFkZHNzIHZmbWFkZHN1YnBkIHZmbWFkZHN1YnBzIHZmbXN1YmFkZHBkIHZmbXN1YmFkZHBzIHZmbXN1YnBkIHZmbXN1YnBzIHZmbXN1YnNkIHZmbXN1YnNzIHZmbm1hZGRwZCB2Zm5tYWRkcHMgdmZubWFkZHNkIHZmbm1hZGRzcyB2Zm5tc3VicGQgdmZubXN1YnBzIHZmbm1zdWJzZCB2Zm5tc3Vic3MgdmZyY3pwZCB2ZnJjenBzIHZmcmN6c2QgdmZyY3pzcyB2cGNtb3YgdnBjb21iIHZwY29tZCB2cGNvbXEgdnBjb211YiB2cGNvbXVkIHZwY29tdXEgdnBjb211dyB2cGNvbXcgdnBoYWRkYmQgdnBoYWRkYnEgdnBoYWRkYncgdnBoYWRkZHEgdnBoYWRkdWJkIHZwaGFkZHVicSB2cGhhZGR1YncgdnBoYWRkdWRxIHZwaGFkZHV3ZCB2cGhhZGR1d3EgdnBoYWRkd2QgdnBoYWRkd3EgdnBoc3ViYncgdnBoc3ViZHEgdnBoc3Vid2QgdnBtYWNzZGQgdnBtYWNzZHFoIHZwbWFjc2RxbCB2cG1hY3NzZGQgdnBtYWNzc2RxaCB2cG1hY3NzZHFsIHZwbWFjc3N3ZCB2cG1hY3Nzd3cgdnBtYWNzd2QgdnBtYWNzd3cgdnBtYWRjc3N3ZCB2cG1hZGNzd2QgdnBwZXJtIHZwcm90YiB2cHJvdGQgdnByb3RxIHZwcm90dyB2cHNoYWIgdnBzaGFkIHZwc2hhcSB2cHNoYXcgdnBzaGxiIHZwc2hsZCB2cHNobHEgdnBzaGx3IHZicm9hZGNhc3RpMTI4IHZwYmxlbmRkIHZwYnJvYWRjYXN0YiB2cGJyb2FkY2FzdHcgdnBicm9hZGNhc3RkIHZwYnJvYWRjYXN0cSB2cGVybWQgdnBlcm1wZCB2cGVybXBzIHZwZXJtcSB2cGVybTJpMTI4IHZleHRyYWN0aTEyOCB2aW5zZXJ0aTEyOCB2cG1hc2ttb3ZkIHZwbWFza21vdnEgdnBzbGx2ZCB2cHNsbHZxIHZwc3JhdmQgdnBzcmx2ZCB2cHNybHZxIHZnYXRoZXJkcGQgdmdhdGhlcnFwZCB2Z2F0aGVyZHBzIHZnYXRoZXJxcHMgdnBnYXRoZXJkZCB2cGdhdGhlcnFkIHZwZ2F0aGVyZHEgdnBnYXRoZXJxcSB4YWJvcnQgeGJlZ2luIHhlbmQgeHRlc3QgYW5kbiBiZXh0ciBibGNpIGJsY2ljIGJsc2kgYmxzaWMgYmxjZmlsbCBibHNmaWxsIGJsY21zayBibHNtc2sgYmxzciBibGNzIGJ6aGkgbXVseCBwZGVwIHBleHQgcm9yeCBzYXJ4IHNobHggc2hyeCB0emNudCB0em1zayB0MW1za2MgdmFsaWduZCB2YWxpZ25xIHZibGVuZG1wZCB2YmxlbmRtcHMgdmJyb2FkY2FzdGYzMng0IHZicm9hZGNhc3RmNjR4NCB2YnJvYWRjYXN0aTMyeDQgdmJyb2FkY2FzdGk2NHg0IHZjb21wcmVzc3BkIHZjb21wcmVzc3BzIHZjdnRwZDJ1ZHEgdmN2dHBzMnVkcSB2Y3Z0c2QydXNpIHZjdnRzczJ1c2kgdmN2dHRwZDJ1ZHEgdmN2dHRwczJ1ZHEgdmN2dHRzZDJ1c2kgdmN2dHRzczJ1c2kgdmN2dHVkcTJwZCB2Y3Z0dWRxMnBzIHZjdnR1c2kyc2QgdmN2dHVzaTJzcyB2ZXhwYW5kcGQgdmV4cGFuZHBzIHZleHRyYWN0ZjMyeDQgdmV4dHJhY3RmNjR4NCB2ZXh0cmFjdGkzMng0IHZleHRyYWN0aTY0eDQgdmZpeHVwaW1tcGQgdmZpeHVwaW1tcHMgdmZpeHVwaW1tc2QgdmZpeHVwaW1tc3MgdmdldGV4cHBkIHZnZXRleHBwcyB2Z2V0ZXhwc2QgdmdldGV4cHNzIHZnZXRtYW50cGQgdmdldG1hbnRwcyB2Z2V0bWFudHNkIHZnZXRtYW50c3Mgdmluc2VydGYzMng0IHZpbnNlcnRmNjR4NCB2aW5zZXJ0aTMyeDQgdmluc2VydGk2NHg0IHZtb3ZkcWEzMiB2bW92ZHFhNjQgdm1vdmRxdTMyIHZtb3ZkcXU2NCB2cGFic3EgdnBhbmRkIHZwYW5kbmQgdnBhbmRucSB2cGFuZHEgdnBibGVuZG1kIHZwYmxlbmRtcSB2cGNtcGx0ZCB2cGNtcGxlZCB2cGNtcG5lcWQgdnBjbXBubHRkIHZwY21wbmxlZCB2cGNtcGQgdnBjbXBsdHEgdnBjbXBsZXEgdnBjbXBuZXFxIHZwY21wbmx0cSB2cGNtcG5sZXEgdnBjbXBxIHZwY21wZXF1ZCB2cGNtcGx0dWQgdnBjbXBsZXVkIHZwY21wbmVxdWQgdnBjbXBubHR1ZCB2cGNtcG5sZXVkIHZwY21wdWQgdnBjbXBlcXVxIHZwY21wbHR1cSB2cGNtcGxldXEgdnBjbXBuZXF1cSB2cGNtcG5sdHVxIHZwY21wbmxldXEgdnBjbXB1cSB2cGNvbXByZXNzZCB2cGNvbXByZXNzcSB2cGVybWkyZCB2cGVybWkycGQgdnBlcm1pMnBzIHZwZXJtaTJxIHZwZXJtdDJkIHZwZXJtdDJwZCB2cGVybXQycHMgdnBlcm10MnEgdnBleHBhbmRkIHZwZXhwYW5kcSB2cG1heHNxIHZwbWF4dXEgdnBtaW5zcSB2cG1pbnVxIHZwbW92ZGIgdnBtb3ZkdyB2cG1vdnFiIHZwbW92cWQgdnBtb3ZxdyB2cG1vdnNkYiB2cG1vdnNkdyB2cG1vdnNxYiB2cG1vdnNxZCB2cG1vdnNxdyB2cG1vdnVzZGIgdnBtb3Z1c2R3IHZwbW92dXNxYiB2cG1vdnVzcWQgdnBtb3Z1c3F3IHZwb3JkIHZwb3JxIHZwcm9sZCB2cHJvbHEgdnByb2x2ZCB2cHJvbHZxIHZwcm9yZCB2cHJvcnEgdnByb3J2ZCB2cHJvcnZxIHZwc2NhdHRlcmRkIHZwc2NhdHRlcmRxIHZwc2NhdHRlcnFkIHZwc2NhdHRlcnFxIHZwc3JhcSB2cHNyYXZxIHZwdGVybmxvZ2QgdnB0ZXJubG9ncSB2cHRlc3RtZCB2cHRlc3RtcSB2cHRlc3RubWQgdnB0ZXN0bm1xIHZweG9yZCB2cHhvcnEgdnJjcDE0cGQgdnJjcDE0cHMgdnJjcDE0c2QgdnJjcDE0c3MgdnJuZHNjYWxlcGQgdnJuZHNjYWxlcHMgdnJuZHNjYWxlc2QgdnJuZHNjYWxlc3MgdnJzcXJ0MTRwZCB2cnNxcnQxNHBzIHZyc3FydDE0c2QgdnJzcXJ0MTRzcyB2c2NhbGVmcGQgdnNjYWxlZnBzIHZzY2FsZWZzZCB2c2NhbGVmc3MgdnNjYXR0ZXJkcGQgdnNjYXR0ZXJkcHMgdnNjYXR0ZXJxcGQgdnNjYXR0ZXJxcHMgdnNodWZmMzJ4NCB2c2h1ZmY2NHgyIHZzaHVmaTMyeDQgdnNodWZpNjR4MiBrYW5kbncga2FuZHcga21vdncga25vdHcga29ydGVzdHcga29ydyBrc2hpZnRsdyBrc2hpZnRydyBrdW5wY2tidyBreG5vcncga3hvcncgdnBicm9hZGNhc3RtYjJxIHZwYnJvYWRjYXN0bXcyZCB2cGNvbmZsaWN0ZCB2cGNvbmZsaWN0cSB2cGx6Y250ZCB2cGx6Y250cSB2ZXhwMnBkIHZleHAycHMgdnJjcDI4cGQgdnJjcDI4cHMgdnJjcDI4c2QgdnJjcDI4c3MgdnJzcXJ0MjhwZCB2cnNxcnQyOHBzIHZyc3FydDI4c2QgdnJzcXJ0MjhzcyB2Z2F0aGVycGYwZHBkIHZnYXRoZXJwZjBkcHMgdmdhdGhlcnBmMHFwZCB2Z2F0aGVycGYwcXBzIHZnYXRoZXJwZjFkcGQgdmdhdGhlcnBmMWRwcyB2Z2F0aGVycGYxcXBkIHZnYXRoZXJwZjFxcHMgdnNjYXR0ZXJwZjBkcGQgdnNjYXR0ZXJwZjBkcHMgdnNjYXR0ZXJwZjBxcGQgdnNjYXR0ZXJwZjBxcHMgdnNjYXR0ZXJwZjFkcGQgdnNjYXR0ZXJwZjFkcHMgdnNjYXR0ZXJwZjFxcGQgdnNjYXR0ZXJwZjFxcHMgcHJlZmV0Y2h3dDEgYm5kbWsgYm5kY2wgYm5kY3UgYm5kY24gYm5kbW92IGJuZGxkeCBibmRzdHggc2hhMXJuZHM0IHNoYTFuZXh0ZSBzaGExbXNnMSBzaGExbXNnMiBzaGEyNTZybmRzMiBzaGEyNTZtc2cxIHNoYTI1Nm1zZzIgaGludF9ub3AwIGhpbnRfbm9wMSBoaW50X25vcDIgaGludF9ub3AzIGhpbnRfbm9wNCBoaW50X25vcDUgaGludF9ub3A2IGhpbnRfbm9wNyBoaW50X25vcDggaGludF9ub3A5IGhpbnRfbm9wMTAgaGludF9ub3AxMSBoaW50X25vcDEyIGhpbnRfbm9wMTMgaGludF9ub3AxNCBoaW50X25vcDE1IGhpbnRfbm9wMTYgaGludF9ub3AxNyBoaW50X25vcDE4IGhpbnRfbm9wMTkgaGludF9ub3AyMCBoaW50X25vcDIxIGhpbnRfbm9wMjIgaGludF9ub3AyMyBoaW50X25vcDI0IGhpbnRfbm9wMjUgaGludF9ub3AyNiBoaW50X25vcDI3IGhpbnRfbm9wMjggaGludF9ub3AyOSBoaW50X25vcDMwIGhpbnRfbm9wMzEgaGludF9ub3AzMiBoaW50X25vcDMzIGhpbnRfbm9wMzQgaGludF9ub3AzNSBoaW50X25vcDM2IGhpbnRfbm9wMzcgaGludF9ub3AzOCBoaW50X25vcDM5IGhpbnRfbm9wNDAgaGludF9ub3A0MSBoaW50X25vcDQyIGhpbnRfbm9wNDMgaGludF9ub3A0NCBoaW50X25vcDQ1IGhpbnRfbm9wNDYgaGludF9ub3A0NyBoaW50X25vcDQ4IGhpbnRfbm9wNDkgaGludF9ub3A1MCBoaW50X25vcDUxIGhpbnRfbm9wNTIgaGludF9ub3A1MyBoaW50X25vcDU0IGhpbnRfbm9wNTUgaGludF9ub3A1NiBoaW50X25vcDU3IGhpbnRfbm9wNTggaGludF9ub3A1OSBoaW50X25vcDYwIGhpbnRfbm9wNjEgaGludF9ub3A2MiBoaW50X25vcDYzJyxcbiAgICAgIGJ1aWx0X2luOlxuICAgICAgICAvLyBJbnN0cnVjdGlvbiBwb2ludGVyXG4gICAgICAgICdpcCBlaXAgcmlwICdcbiAgICAgICAgLy8gOC1iaXQgcmVnaXN0ZXJzXG4gICAgICAgICsgJ2FsIGFoIGJsIGJoIGNsIGNoIGRsIGRoIHNpbCBkaWwgYnBsIHNwbCByOGIgcjliIHIxMGIgcjExYiByMTJiIHIxM2IgcjE0YiByMTViICdcbiAgICAgICAgLy8gMTYtYml0IHJlZ2lzdGVyc1xuICAgICAgICArICdheCBieCBjeCBkeCBzaSBkaSBicCBzcCByOHcgcjl3IHIxMHcgcjExdyByMTJ3IHIxM3cgcjE0dyByMTV3ICdcbiAgICAgICAgLy8gMzItYml0IHJlZ2lzdGVyc1xuICAgICAgICArICdlYXggZWJ4IGVjeCBlZHggZXNpIGVkaSBlYnAgZXNwIGVpcCByOGQgcjlkIHIxMGQgcjExZCByMTJkIHIxM2QgcjE0ZCByMTVkICdcbiAgICAgICAgLy8gNjQtYml0IHJlZ2lzdGVyc1xuICAgICAgICArICdyYXggcmJ4IHJjeCByZHggcnNpIHJkaSByYnAgcnNwIHI4IHI5IHIxMCByMTEgcjEyIHIxMyByMTQgcjE1ICdcbiAgICAgICAgLy8gU2VnbWVudCByZWdpc3RlcnNcbiAgICAgICAgKyAnY3MgZHMgZXMgZnMgZ3Mgc3MgJ1xuICAgICAgICAvLyBGbG9hdGluZyBwb2ludCBzdGFjayByZWdpc3RlcnNcbiAgICAgICAgKyAnc3Qgc3QwIHN0MSBzdDIgc3QzIHN0NCBzdDUgc3Q2IHN0NyAnXG4gICAgICAgIC8vIE1NWCBSZWdpc3RlcnNcbiAgICAgICAgKyAnbW0wIG1tMSBtbTIgbW0zIG1tNCBtbTUgbW02IG1tNyAnXG4gICAgICAgIC8vIFNTRSByZWdpc3RlcnNcbiAgICAgICAgKyAneG1tMCAgeG1tMSAgeG1tMiAgeG1tMyAgeG1tNCAgeG1tNSAgeG1tNiAgeG1tNyAgeG1tOCAgeG1tOSB4bW0xMCAgeG1tMTEgeG1tMTIgeG1tMTMgeG1tMTQgeG1tMTUgJ1xuICAgICAgICArICd4bW0xNiB4bW0xNyB4bW0xOCB4bW0xOSB4bW0yMCB4bW0yMSB4bW0yMiB4bW0yMyB4bW0yNCB4bW0yNSB4bW0yNiB4bW0yNyB4bW0yOCB4bW0yOSB4bW0zMCB4bW0zMSAnXG4gICAgICAgIC8vIEFWWCByZWdpc3RlcnNcbiAgICAgICAgKyAneW1tMCAgeW1tMSAgeW1tMiAgeW1tMyAgeW1tNCAgeW1tNSAgeW1tNiAgeW1tNyAgeW1tOCAgeW1tOSB5bW0xMCAgeW1tMTEgeW1tMTIgeW1tMTMgeW1tMTQgeW1tMTUgJ1xuICAgICAgICArICd5bW0xNiB5bW0xNyB5bW0xOCB5bW0xOSB5bW0yMCB5bW0yMSB5bW0yMiB5bW0yMyB5bW0yNCB5bW0yNSB5bW0yNiB5bW0yNyB5bW0yOCB5bW0yOSB5bW0zMCB5bW0zMSAnXG4gICAgICAgIC8vIEFWWC01MTJGIHJlZ2lzdGVyc1xuICAgICAgICArICd6bW0wICB6bW0xICB6bW0yICB6bW0zICB6bW00ICB6bW01ICB6bW02ICB6bW03ICB6bW04ICB6bW05IHptbTEwICB6bW0xMSB6bW0xMiB6bW0xMyB6bW0xNCB6bW0xNSAnXG4gICAgICAgICsgJ3ptbTE2IHptbTE3IHptbTE4IHptbTE5IHptbTIwIHptbTIxIHptbTIyIHptbTIzIHptbTI0IHptbTI1IHptbTI2IHptbTI3IHptbTI4IHptbTI5IHptbTMwIHptbTMxICdcbiAgICAgICAgLy8gQVZYLTUxMkYgbWFzayByZWdpc3RlcnNcbiAgICAgICAgKyAnazAgazEgazIgazMgazQgazUgazYgazcgJ1xuICAgICAgICAvLyBCb3VuZCAoTVBYKSByZWdpc3RlclxuICAgICAgICArICdibmQwIGJuZDEgYm5kMiBibmQzICdcbiAgICAgICAgLy8gU3BlY2lhbCByZWdpc3RlclxuICAgICAgICArICdjcjAgY3IxIGNyMiBjcjMgY3I0IGNyOCBkcjAgZHIxIGRyMiBkcjMgZHI4IHRyMyB0cjQgdHI1IHRyNiB0cjcgJ1xuICAgICAgICAvLyBOQVNNIGFsdHJlZyBwYWNrYWdlXG4gICAgICAgICsgJ3IwIHIxIHIyIHIzIHI0IHI1IHI2IHI3IHIwYiByMWIgcjJiIHIzYiByNGIgcjViIHI2YiByN2IgJ1xuICAgICAgICArICdyMHcgcjF3IHIydyByM3cgcjR3IHI1dyByNncgcjd3IHIwZCByMWQgcjJkIHIzZCByNGQgcjVkIHI2ZCByN2QgJ1xuICAgICAgICArICdyMGggcjFoIHIyaCByM2ggJ1xuICAgICAgICArICdyMGwgcjFsIHIybCByM2wgcjRsIHI1bCByNmwgcjdsIHI4bCByOWwgcjEwbCByMTFsIHIxMmwgcjEzbCByMTRsIHIxNWwgJ1xuXG4gICAgICAgICsgJ2RiIGR3IGRkIGRxIGR0IGRkcSBkbyBkeSBkeiAnXG4gICAgICAgICsgJ3Jlc2IgcmVzdyByZXNkIHJlc3EgcmVzdCByZXNkcSByZXNvIHJlc3kgcmVzeiAnXG4gICAgICAgICsgJ2luY2JpbiBlcXUgdGltZXMgJ1xuICAgICAgICArICdieXRlIHdvcmQgZHdvcmQgcXdvcmQgbm9zcGxpdCByZWwgYWJzIHNlZyB3cnQgc3RyaWN0IG5lYXIgZmFyIGEzMiBwdHInLFxuXG4gICAgICBtZXRhOlxuICAgICAgICAnJWRlZmluZSAleGRlZmluZSAlKyAldW5kZWYgJWRlZnN0ciAlZGVmdG9rICVhc3NpZ24gJXN0cmNhdCAlc3RybGVuICVzdWJzdHIgJXJvdGF0ZSAlZWxpZiAlZWxzZSAlZW5kaWYgJ1xuICAgICAgICArICclaWYgJWlmbWFjcm8gJWlmY3R4ICVpZmlkbiAlaWZpZG5pICVpZmlkICVpZm51bSAlaWZzdHIgJWlmdG9rZW4gJWlmZW1wdHkgJWlmZW52ICVlcnJvciAld2FybmluZyAlZmF0YWwgJXJlcCAnXG4gICAgICAgICsgJyVlbmRyZXAgJWluY2x1ZGUgJXB1c2ggJXBvcCAlcmVwbCAlcGF0aHNlYXJjaCAlZGVwZW5kICV1c2UgJWFyZyAlc3RhY2tzaXplICVsb2NhbCAlbGluZSAlY29tbWVudCAlZW5kY29tbWVudCAnXG4gICAgICAgICsgJy5ub2xpc3QgJ1xuICAgICAgICArICdfX0ZJTEVfXyBfX0xJTkVfXyBfX1NFQ1RfXyAgX19CSVRTX18gX19PVVRQVVRfRk9STUFUX18gX19EQVRFX18gX19USU1FX18gX19EQVRFX05VTV9fIF9fVElNRV9OVU1fXyAnXG4gICAgICAgICsgJ19fVVRDX0RBVEVfXyBfX1VUQ19USU1FX18gX19VVENfREFURV9OVU1fXyBfX1VUQ19USU1FX05VTV9fICBfX1BBU1NfXyBzdHJ1YyBlbmRzdHJ1YyBpc3RydWMgYXQgaWVuZCAnXG4gICAgICAgICsgJ2FsaWduIGFsaWduYiBzZWN0YWxpZ24gZGF6IG5vZGF6IHVwIGRvd24gemVybyBkZWZhdWx0IG9wdGlvbiBhc3N1bWUgcHVibGljICdcblxuICAgICAgICArICdiaXRzIHVzZTE2IHVzZTMyIHVzZTY0IGRlZmF1bHQgc2VjdGlvbiBzZWdtZW50IGFic29sdXRlIGV4dGVybiBnbG9iYWwgY29tbW9uIGNwdSBmbG9hdCAnXG4gICAgICAgICsgJ19fdXRmMTZfXyBfX3V0ZjE2bGVfXyBfX3V0ZjE2YmVfXyBfX3V0ZjMyX18gX191dGYzMmxlX18gX191dGYzMmJlX18gJ1xuICAgICAgICArICdfX2Zsb2F0OF9fIF9fZmxvYXQxNl9fIF9fZmxvYXQzMl9fIF9fZmxvYXQ2NF9fIF9fZmxvYXQ4MG1fXyBfX2Zsb2F0ODBlX18gX19mbG9hdDEyOGxfXyBfX2Zsb2F0MTI4aF9fICdcbiAgICAgICAgKyAnX19JbmZpbml0eV9fIF9fUU5hTl9fIF9fU05hTl9fIEluZiBOYU4gUU5hTiBTTmFOIGZsb2F0OCBmbG9hdDE2IGZsb2F0MzIgZmxvYXQ2NCBmbG9hdDgwbSBmbG9hdDgwZSAnXG4gICAgICAgICsgJ2Zsb2F0MTI4bCBmbG9hdDEyOGggX19GTE9BVF9EQVpfXyBfX0ZMT0FUX1JPVU5EX18gX19GTE9BVF9fJ1xuICAgIH0sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuQ09NTUVOVChcbiAgICAgICAgJzsnLFxuICAgICAgICAnJCcsXG4gICAgICAgIHsgcmVsZXZhbmNlOiAwIH1cbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgICAgIHZhcmlhbnRzOiBbXG4gICAgICAgICAgLy8gRmxvYXQgbnVtYmVyIGFuZCB4ODcgQkNEXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcYig/OihbMC05XVswLTlfXSopP1xcXFwuWzAtOV9dKig/OltlRV1bKy1dP1swLTlfXSspP3wnXG4gICAgICAgICAgICAgICAgICAgKyAnKDBbWHhdKT9bMC05XVswLTlfXSooXFxcXC5bMC05X10qKT8oPzpbcFBdKD86WystXT9bMC05X10rKT8pPylcXFxcYicsXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgLy8gSGV4IG51bWJlciBpbiAkXG4gICAgICAgICAge1xuICAgICAgICAgICAgYmVnaW46ICdcXFxcJFswLTldWzAtOUEtRmEtZl0qJyxcbiAgICAgICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgICAgIH0sXG5cbiAgICAgICAgICAvLyBOdW1iZXIgaW4gSCxELFQsUSxPLEIsWSBzdWZmaXhcbiAgICAgICAgICB7IGJlZ2luOiAnXFxcXGIoPzpbMC05QS1GYS1mXVswLTlBLUZhLWZfXSpbSGhdfFswLTldWzAtOV9dKltEZFR0XT98WzAtN11bMC03X10qW1FxT29dfFswLTFdWzAtMV9dKltCYll5XSlcXFxcYicgfSxcblxuICAgICAgICAgIC8vIE51bWJlciBpbiBYLEQsVCxRLE8sQixZIHByZWZpeFxuICAgICAgICAgIHsgYmVnaW46ICdcXFxcYig/OjBbWHhdWzAtOUEtRmEtZl9dK3wwW0RkVHRdWzAtOV9dK3wwW1FxT29dWzAtN19dK3wwW0JiWXldWzAtMV9dKylcXFxcYicgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgLy8gRG91YmxlIHF1b3RlIHN0cmluZ1xuICAgICAgaGxqcy5RVU9URV9TVFJJTkdfTU9ERSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICAgICAgdmFyaWFudHM6IFtcbiAgICAgICAgICAvLyBTaW5nbGUtcXVvdGVkIHN0cmluZ1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAnXFwnJyxcbiAgICAgICAgICAgIGVuZDogJ1teXFxcXFxcXFxdXFwnJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgLy8gQmFja3F1b3RlZCBzdHJpbmdcbiAgICAgICAgICB7XG4gICAgICAgICAgICBiZWdpbjogJ2AnLFxuICAgICAgICAgICAgZW5kOiAnW15cXFxcXFxcXF1gJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzeW1ib2wnLFxuICAgICAgICB2YXJpYW50czogW1xuICAgICAgICAgIC8vIEdsb2JhbCBsYWJlbCBhbmQgbG9jYWwgbGFiZWxcbiAgICAgICAgICB7IGJlZ2luOiAnXlxcXFxzKltBLVphLXouXz9dW0EtWmEtejAtOV8kI0B+Lj9dKig6fFxcXFxzK2xhYmVsKScgfSxcbiAgICAgICAgICAvLyBNYWNyby1sb2NhbCBsYWJlbFxuICAgICAgICAgIHsgYmVnaW46ICdeXFxcXHMqJSVbQS1aYS16MC05XyQjQH4uP10qOicgfVxuICAgICAgICBdLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBNYWNybyBwYXJhbWV0ZXJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogJyVbMC05XSsnLFxuICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgIH0sXG4gICAgICAvLyBNYWNybyBwYXJhbWV0ZXJcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnc3Vic3QnLFxuICAgICAgICBiZWdpbjogJyUhXFxTKycsXG4gICAgICAgIHJlbGV2YW5jZTogMFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgICAgIGJlZ2luOiAvXlxccypcXC5bXFx3Xy1dKy9cbiAgICAgIH1cbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0geDg2YXNtO1xuIiwgIi8qXG5MYW5ndWFnZTogWExcbkF1dGhvcjogQ2hyaXN0b3BoZSBkZSBEaW5lY2hpbiA8Y2hyaXN0b3BoZUB0YW9keW5lLmNvbT5cbkRlc2NyaXB0aW9uOiBBbiBleHRlbnNpYmxlIHByb2dyYW1taW5nIGxhbmd1YWdlLCBiYXNlZCBvbiBwYXJzZSB0cmVlIHJld3JpdGluZ1xuV2Vic2l0ZTogaHR0cDovL3hsci5zZi5uZXRcbiovXG5cbmZ1bmN0aW9uIHhsKGhsanMpIHtcbiAgY29uc3QgS1dTID0gW1xuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcImRvXCIsXG4gICAgXCJ3aGlsZVwiLFxuICAgIFwidW50aWxcIixcbiAgICBcImZvclwiLFxuICAgIFwibG9vcFwiLFxuICAgIFwiaW1wb3J0XCIsXG4gICAgXCJ3aXRoXCIsXG4gICAgXCJpc1wiLFxuICAgIFwiYXNcIixcbiAgICBcIndoZXJlXCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJieVwiLFxuICAgIFwiZGF0YVwiLFxuICAgIFwiY29uc3RhbnRcIixcbiAgICBcImludGVnZXJcIixcbiAgICBcInJlYWxcIixcbiAgICBcInRleHRcIixcbiAgICBcIm5hbWVcIixcbiAgICBcImJvb2xlYW5cIixcbiAgICBcInN5bWJvbFwiLFxuICAgIFwiaW5maXhcIixcbiAgICBcInByZWZpeFwiLFxuICAgIFwicG9zdGZpeFwiLFxuICAgIFwiYmxvY2tcIixcbiAgICBcInRyZWVcIlxuICBdO1xuICBjb25zdCBCVUlMVF9JTlMgPSBbXG4gICAgXCJpblwiLFxuICAgIFwibW9kXCIsXG4gICAgXCJyZW1cIixcbiAgICBcImFuZFwiLFxuICAgIFwib3JcIixcbiAgICBcInhvclwiLFxuICAgIFwibm90XCIsXG4gICAgXCJhYnNcIixcbiAgICBcInNpZ25cIixcbiAgICBcImZsb29yXCIsXG4gICAgXCJjZWlsXCIsXG4gICAgXCJzcXJ0XCIsXG4gICAgXCJzaW5cIixcbiAgICBcImNvc1wiLFxuICAgIFwidGFuXCIsXG4gICAgXCJhc2luXCIsXG4gICAgXCJhY29zXCIsXG4gICAgXCJhdGFuXCIsXG4gICAgXCJleHBcIixcbiAgICBcImV4cG0xXCIsXG4gICAgXCJsb2dcIixcbiAgICBcImxvZzJcIixcbiAgICBcImxvZzEwXCIsXG4gICAgXCJsb2cxcFwiLFxuICAgIFwicGlcIixcbiAgICBcImF0XCIsXG4gICAgXCJ0ZXh0X2xlbmd0aFwiLFxuICAgIFwidGV4dF9yYW5nZVwiLFxuICAgIFwidGV4dF9maW5kXCIsXG4gICAgXCJ0ZXh0X3JlcGxhY2VcIixcbiAgICBcImNvbnRhaW5zXCIsXG4gICAgXCJwYWdlXCIsXG4gICAgXCJzbGlkZVwiLFxuICAgIFwiYmFzaWNfc2xpZGVcIixcbiAgICBcInRpdGxlX3NsaWRlXCIsXG4gICAgXCJ0aXRsZVwiLFxuICAgIFwic3VidGl0bGVcIixcbiAgICBcImZhZGVfaW5cIixcbiAgICBcImZhZGVfb3V0XCIsXG4gICAgXCJmYWRlX2F0XCIsXG4gICAgXCJjbGVhcl9jb2xvclwiLFxuICAgIFwiY29sb3JcIixcbiAgICBcImxpbmVfY29sb3JcIixcbiAgICBcImxpbmVfd2lkdGhcIixcbiAgICBcInRleHR1cmVfd3JhcFwiLFxuICAgIFwidGV4dHVyZV90cmFuc2Zvcm1cIixcbiAgICBcInRleHR1cmVcIixcbiAgICBcInNjYWxlXz94XCIsXG4gICAgXCJzY2FsZV8/eVwiLFxuICAgIFwic2NhbGVfP3o/XCIsXG4gICAgXCJ0cmFuc2xhdGVfP3hcIixcbiAgICBcInRyYW5zbGF0ZV8/eVwiLFxuICAgIFwidHJhbnNsYXRlXz96P1wiLFxuICAgIFwicm90YXRlXz94XCIsXG4gICAgXCJyb3RhdGVfP3lcIixcbiAgICBcInJvdGF0ZV8/ej9cIixcbiAgICBcInJlY3RhbmdsZVwiLFxuICAgIFwiY2lyY2xlXCIsXG4gICAgXCJlbGxpcHNlXCIsXG4gICAgXCJzcGhlcmVcIixcbiAgICBcInBhdGhcIixcbiAgICBcImxpbmVfdG9cIixcbiAgICBcIm1vdmVfdG9cIixcbiAgICBcInF1YWRfdG9cIixcbiAgICBcImN1cnZlX3RvXCIsXG4gICAgXCJ0aGVtZVwiLFxuICAgIFwiYmFja2dyb3VuZFwiLFxuICAgIFwiY29udGVudHNcIixcbiAgICBcImxvY2FsbHlcIixcbiAgICBcInRpbWVcIixcbiAgICBcIm1vdXNlXz94XCIsXG4gICAgXCJtb3VzZV8/eVwiLFxuICAgIFwibW91c2VfYnV0dG9uc1wiXG4gIF07XG4gIGNvbnN0IEJVSUxUSU5fTU9EVUxFUyA9IFtcbiAgICBcIk9iamVjdExvYWRlclwiLFxuICAgIFwiQW5pbWF0ZVwiLFxuICAgIFwiTW92aWVDcmVkaXRzXCIsXG4gICAgXCJTbGlkZXNcIixcbiAgICBcIkZpbHRlcnNcIixcbiAgICBcIlNoYWRpbmdcIixcbiAgICBcIk1hdGVyaWFsc1wiLFxuICAgIFwiTGVuc0ZsYXJlXCIsXG4gICAgXCJNYXBwaW5nXCIsXG4gICAgXCJWTENBdWRpb1ZpZGVvXCIsXG4gICAgXCJTdGVyZW9EZWNvZGVyXCIsXG4gICAgXCJQb2ludENsb3VkXCIsXG4gICAgXCJOZXR3b3JrQWNjZXNzXCIsXG4gICAgXCJSZW1vdGVDb250cm9sXCIsXG4gICAgXCJSZWdFeHBcIixcbiAgICBcIkNocm9tYUtleVwiLFxuICAgIFwiU25vd2ZhbGxcIixcbiAgICBcIk5vZGVKU1wiLFxuICAgIFwiU3BlZWNoXCIsXG4gICAgXCJDaGFydHNcIlxuICBdO1xuICBjb25zdCBMSVRFUkFMUyA9IFtcbiAgICBcInRydWVcIixcbiAgICBcImZhbHNlXCIsXG4gICAgXCJuaWxcIlxuICBdO1xuICBjb25zdCBLRVlXT1JEUyA9IHtcbiAgICAkcGF0dGVybjogL1thLXpBLVpdW2EtekEtWjAtOV8/XSovLFxuICAgIGtleXdvcmQ6IEtXUyxcbiAgICBsaXRlcmFsOiBMSVRFUkFMUyxcbiAgICBidWlsdF9pbjogQlVJTFRfSU5TLmNvbmNhdChCVUlMVElOX01PRFVMRVMpXG4gIH07XG5cbiAgY29uc3QgRE9VQkxFX1FVT1RFX1RFWFQgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICBiZWdpbjogJ1wiJyxcbiAgICBlbmQ6ICdcIicsXG4gICAgaWxsZWdhbDogJ1xcXFxuJ1xuICB9O1xuICBjb25zdCBTSU5HTEVfUVVPVEVfVEVYVCA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGJlZ2luOiAnXFwnJyxcbiAgICBlbmQ6ICdcXCcnLFxuICAgIGlsbGVnYWw6ICdcXFxcbidcbiAgfTtcbiAgY29uc3QgTE9OR19URVhUID0ge1xuICAgIGNsYXNzTmFtZTogJ3N0cmluZycsXG4gICAgYmVnaW46ICc8PCcsXG4gICAgZW5kOiAnPj4nXG4gIH07XG4gIGNvbnN0IEJBU0VEX05VTUJFUiA9IHtcbiAgICBjbGFzc05hbWU6ICdudW1iZXInLFxuICAgIGJlZ2luOiAnWzAtOV0rI1swLTlBLVpfXSsoXFxcXC5bMC05LUEtWl9dKyk/Iz8oW0VlXVsrLV0/WzAtOV0rKT8nXG4gIH07XG4gIGNvbnN0IElNUE9SVCA9IHtcbiAgICBiZWdpbktleXdvcmRzOiAnaW1wb3J0JyxcbiAgICBlbmQ6ICckJyxcbiAgICBrZXl3b3JkczogS0VZV09SRFMsXG4gICAgY29udGFpbnM6IFsgRE9VQkxFX1FVT1RFX1RFWFQgXVxuICB9O1xuICBjb25zdCBGVU5DVElPTl9ERUZJTklUSU9OID0ge1xuICAgIGNsYXNzTmFtZTogJ2Z1bmN0aW9uJyxcbiAgICBiZWdpbjogL1thLXpdW15cXG5dKi0+LyxcbiAgICByZXR1cm5CZWdpbjogdHJ1ZSxcbiAgICBlbmQ6IC8tPi8sXG4gICAgY29udGFpbnM6IFtcbiAgICAgIGhsanMuaW5oZXJpdChobGpzLlRJVExFX01PREUsIHsgc3RhcnRzOiB7XG4gICAgICAgIGVuZHNXaXRoUGFyZW50OiB0cnVlLFxuICAgICAgICBrZXl3b3JkczogS0VZV09SRFNcbiAgICAgIH0gfSlcbiAgICBdXG4gIH07XG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1hMJyxcbiAgICBhbGlhc2VzOiBbICd0YW8nIF0sXG4gICAga2V5d29yZHM6IEtFWVdPUkRTLFxuICAgIGNvbnRhaW5zOiBbXG4gICAgICBobGpzLkNfTElORV9DT01NRU5UX01PREUsXG4gICAgICBobGpzLkNfQkxPQ0tfQ09NTUVOVF9NT0RFLFxuICAgICAgRE9VQkxFX1FVT1RFX1RFWFQsXG4gICAgICBTSU5HTEVfUVVPVEVfVEVYVCxcbiAgICAgIExPTkdfVEVYVCxcbiAgICAgIEZVTkNUSU9OX0RFRklOSVRJT04sXG4gICAgICBJTVBPUlQsXG4gICAgICBCQVNFRF9OVU1CRVIsXG4gICAgICBobGpzLk5VTUJFUl9NT0RFXG4gICAgXVxuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHhsO1xuIiwgIi8qXG5MYW5ndWFnZTogWFF1ZXJ5XG5BdXRob3I6IERpcmsgS2lyc3RlbiA8ZGtAYmFzZXgub3JnPlxuQ29udHJpYnV0b3I6IER1bmNhbiBQYXRlcnNvblxuRGVzY3JpcHRpb246IFN1cHBvcnRzIFhRdWVyeSAzLjEgaW5jbHVkaW5nIFhRdWVyeSBVcGRhdGUgMywgc28gYWxzbyBYUGF0aCAoYXMgaXQgaXMgYSBzdXBlcnNldClcblJlZmFjdG9yZWQgdG8gcHJvY2VzcyB4bWwgY29uc3RydWN0b3Igc3ludGF4IGFuZCBmdW5jdGlvbi1ib2RpZXMuIEFkZGVkIG1pc3NpbmcgZGF0YS10eXBlcywgeHBhdGggb3BlcmFuZHMsIGluYnVpbHQgZnVuY3Rpb25zLCBhbmQgcXVlcnkgcHJvbG9nc1xuV2Vic2l0ZTogaHR0cHM6Ly93d3cudzMub3JnL1hNTC9RdWVyeS9cbkNhdGVnb3J5OiBmdW5jdGlvbmFsXG5BdWRpdDogMjAyMFxuKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHhxdWVyeShfaGxqcykge1xuICAvLyBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3hxdWVyeS8jaWQtdGVybWluYWwtZGVsaW1pdGF0aW9uXG4gIGNvbnN0IEtFWVdPUkRTID0gW1xuICAgIFwibW9kdWxlXCIsXG4gICAgXCJzY2hlbWFcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwiYm91bmRhcnktc3BhY2VcIixcbiAgICBcInByZXNlcnZlXCIsXG4gICAgXCJuby1wcmVzZXJ2ZVwiLFxuICAgIFwic3RyaXBcIixcbiAgICBcImRlZmF1bHRcIixcbiAgICBcImNvbGxhdGlvblwiLFxuICAgIFwiYmFzZS11cmlcIixcbiAgICBcIm9yZGVyaW5nXCIsXG4gICAgXCJjb250ZXh0XCIsXG4gICAgXCJkZWNpbWFsLWZvcm1hdFwiLFxuICAgIFwiZGVjaW1hbC1zZXBhcmF0b3JcIixcbiAgICBcImNvcHktbmFtZXNwYWNlc1wiLFxuICAgIFwiZW1wdHktc2VxdWVuY2VcIixcbiAgICBcImV4Y2VwdFwiLFxuICAgIFwiZXhwb25lbnQtc2VwYXJhdG9yXCIsXG4gICAgXCJleHRlcm5hbFwiLFxuICAgIFwiZ3JvdXBpbmctc2VwYXJhdG9yXCIsXG4gICAgXCJpbmhlcml0XCIsXG4gICAgXCJuby1pbmhlcml0XCIsXG4gICAgXCJsYXhcIixcbiAgICBcIm1pbnVzLXNpZ25cIixcbiAgICBcInBlci1taWxsZVwiLFxuICAgIFwicGVyY2VudFwiLFxuICAgIFwic2NoZW1hLWF0dHJpYnV0ZVwiLFxuICAgIFwic2NoZW1hLWVsZW1lbnRcIixcbiAgICBcInN0cmljdFwiLFxuICAgIFwidW5vcmRlcmVkXCIsXG4gICAgXCJ6ZXJvLWRpZ2l0XCIsXG4gICAgXCJkZWNsYXJlXCIsXG4gICAgXCJpbXBvcnRcIixcbiAgICBcIm9wdGlvblwiLFxuICAgIFwiZnVuY3Rpb25cIixcbiAgICBcInZhbGlkYXRlXCIsXG4gICAgXCJ2YXJpYWJsZVwiLFxuICAgIFwiZm9yXCIsXG4gICAgXCJhdFwiLFxuICAgIFwiaW5cIixcbiAgICBcImxldFwiLFxuICAgIFwid2hlcmVcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJncm91cFwiLFxuICAgIFwiYnlcIixcbiAgICBcInJldHVyblwiLFxuICAgIFwiaWZcIixcbiAgICBcInRoZW5cIixcbiAgICBcImVsc2VcIixcbiAgICBcInR1bWJsaW5nXCIsXG4gICAgXCJzbGlkaW5nXCIsXG4gICAgXCJ3aW5kb3dcIixcbiAgICBcInN0YXJ0XCIsXG4gICAgXCJ3aGVuXCIsXG4gICAgXCJvbmx5XCIsXG4gICAgXCJlbmRcIixcbiAgICBcInByZXZpb3VzXCIsXG4gICAgXCJuZXh0XCIsXG4gICAgXCJzdGFibGVcIixcbiAgICBcImFzY2VuZGluZ1wiLFxuICAgIFwiZGVzY2VuZGluZ1wiLFxuICAgIFwiYWxsb3dpbmdcIixcbiAgICBcImVtcHR5XCIsXG4gICAgXCJncmVhdGVzdFwiLFxuICAgIFwibGVhc3RcIixcbiAgICBcInNvbWVcIixcbiAgICBcImV2ZXJ5XCIsXG4gICAgXCJzYXRpc2ZpZXNcIixcbiAgICBcInN3aXRjaFwiLFxuICAgIFwiY2FzZVwiLFxuICAgIFwidHlwZXN3aXRjaFwiLFxuICAgIFwidHJ5XCIsXG4gICAgXCJjYXRjaFwiLFxuICAgIFwiYW5kXCIsXG4gICAgXCJvclwiLFxuICAgIFwidG9cIixcbiAgICBcInVuaW9uXCIsXG4gICAgXCJpbnRlcnNlY3RcIixcbiAgICBcImluc3RhbmNlXCIsXG4gICAgXCJvZlwiLFxuICAgIFwidHJlYXRcIixcbiAgICBcImFzXCIsXG4gICAgXCJjYXN0YWJsZVwiLFxuICAgIFwiY2FzdFwiLFxuICAgIFwibWFwXCIsXG4gICAgXCJhcnJheVwiLFxuICAgIFwiZGVsZXRlXCIsXG4gICAgXCJpbnNlcnRcIixcbiAgICBcImludG9cIixcbiAgICBcInJlcGxhY2VcIixcbiAgICBcInZhbHVlXCIsXG4gICAgXCJyZW5hbWVcIixcbiAgICBcImNvcHlcIixcbiAgICBcIm1vZGlmeVwiLFxuICAgIFwidXBkYXRlXCJcbiAgXTtcblxuICAvLyBOb2RlIFR5cGVzIChzb3J0ZWQgYnkgaW5oZXJpdGFuY2UpXG4gIC8vIGF0b21pYyB0eXBlcyAoc29ydGVkIGJ5IGluaGVyaXRhbmNlKVxuICBjb25zdCBUWVBFUyA9IFtcbiAgICBcIml0ZW1cIixcbiAgICBcImRvY3VtZW50LW5vZGVcIixcbiAgICBcIm5vZGVcIixcbiAgICBcImF0dHJpYnV0ZVwiLFxuICAgIFwiZG9jdW1lbnRcIixcbiAgICBcImVsZW1lbnRcIixcbiAgICBcImNvbW1lbnRcIixcbiAgICBcIm5hbWVzcGFjZVwiLFxuICAgIFwibmFtZXNwYWNlLW5vZGVcIixcbiAgICBcInByb2Nlc3NpbmctaW5zdHJ1Y3Rpb25cIixcbiAgICBcInRleHRcIixcbiAgICBcImNvbnN0cnVjdGlvblwiLFxuICAgIFwieHM6YW55QXRvbWljVHlwZVwiLFxuICAgIFwieHM6dW50eXBlZEF0b21pY1wiLFxuICAgIFwieHM6ZHVyYXRpb25cIixcbiAgICBcInhzOnRpbWVcIixcbiAgICBcInhzOmRlY2ltYWxcIixcbiAgICBcInhzOmZsb2F0XCIsXG4gICAgXCJ4czpkb3VibGVcIixcbiAgICBcInhzOmdZZWFyTW9udGhcIixcbiAgICBcInhzOmdZZWFyXCIsXG4gICAgXCJ4czpnTW9udGhEYXlcIixcbiAgICBcInhzOmdNb250aFwiLFxuICAgIFwieHM6Z0RheVwiLFxuICAgIFwieHM6Ym9vbGVhblwiLFxuICAgIFwieHM6YmFzZTY0QmluYXJ5XCIsXG4gICAgXCJ4czpoZXhCaW5hcnlcIixcbiAgICBcInhzOmFueVVSSVwiLFxuICAgIFwieHM6UU5hbWVcIixcbiAgICBcInhzOk5PVEFUSU9OXCIsXG4gICAgXCJ4czpkYXRlVGltZVwiLFxuICAgIFwieHM6ZGF0ZVRpbWVTdGFtcFwiLFxuICAgIFwieHM6ZGF0ZVwiLFxuICAgIFwieHM6c3RyaW5nXCIsXG4gICAgXCJ4czpub3JtYWxpemVkU3RyaW5nXCIsXG4gICAgXCJ4czp0b2tlblwiLFxuICAgIFwieHM6bGFuZ3VhZ2VcIixcbiAgICBcInhzOk5NVE9LRU5cIixcbiAgICBcInhzOk5hbWVcIixcbiAgICBcInhzOk5DTmFtZVwiLFxuICAgIFwieHM6SURcIixcbiAgICBcInhzOklEUkVGXCIsXG4gICAgXCJ4czpFTlRJVFlcIixcbiAgICBcInhzOmludGVnZXJcIixcbiAgICBcInhzOm5vblBvc2l0aXZlSW50ZWdlclwiLFxuICAgIFwieHM6bmVnYXRpdmVJbnRlZ2VyXCIsXG4gICAgXCJ4czpsb25nXCIsXG4gICAgXCJ4czppbnRcIixcbiAgICBcInhzOnNob3J0XCIsXG4gICAgXCJ4czpieXRlXCIsXG4gICAgXCJ4czpub25OZWdhdGl2ZUludGVnZXJcIixcbiAgICBcInhzOnVuaXNpZ25lZExvbmdcIixcbiAgICBcInhzOnVuc2lnbmVkSW50XCIsXG4gICAgXCJ4czp1bnNpZ25lZFNob3J0XCIsXG4gICAgXCJ4czp1bnNpZ25lZEJ5dGVcIixcbiAgICBcInhzOnBvc2l0aXZlSW50ZWdlclwiLFxuICAgIFwieHM6eWVhck1vbnRoRHVyYXRpb25cIixcbiAgICBcInhzOmRheVRpbWVEdXJhdGlvblwiXG4gIF07XG5cbiAgY29uc3QgTElURVJBTFMgPSBbXG4gICAgXCJlcVwiLFxuICAgIFwibmVcIixcbiAgICBcImx0XCIsXG4gICAgXCJsZVwiLFxuICAgIFwiZ3RcIixcbiAgICBcImdlXCIsXG4gICAgXCJpc1wiLFxuICAgIFwic2VsZjo6XCIsXG4gICAgXCJjaGlsZDo6XCIsXG4gICAgXCJkZXNjZW5kYW50OjpcIixcbiAgICBcImRlc2NlbmRhbnQtb3Itc2VsZjo6XCIsXG4gICAgXCJhdHRyaWJ1dGU6OlwiLFxuICAgIFwiZm9sbG93aW5nOjpcIixcbiAgICBcImZvbGxvd2luZy1zaWJsaW5nOjpcIixcbiAgICBcInBhcmVudDo6XCIsXG4gICAgXCJhbmNlc3Rvcjo6XCIsXG4gICAgXCJhbmNlc3Rvci1vci1zZWxmOjpcIixcbiAgICBcInByZWNlZGluZzo6XCIsXG4gICAgXCJwcmVjZWRpbmctc2libGluZzo6XCIsXG4gICAgXCJOYU5cIlxuICBdO1xuXG4gIC8vIGZ1bmN0aW9ucyAoVE9ETzogZmluZCByZWdleCBmb3Igb3A6IHdpdGhvdXQgYnJlYWtpbmcgYnVpbGQpXG4gIGNvbnN0IEJVSUxUX0lOID0ge1xuICAgIGNsYXNzTmFtZTogJ2J1aWx0X2luJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYmFycmF5Oi8sXG4gICAgICAgIGVuZDogLyg/OmFwcGVuZHxmaWx0ZXJ8ZmxhdHRlbnxmb2xkLSg/OmxlZnR8cmlnaHQpfGZvci1lYWNoKD86LXBhaXIpP3xnZXR8aGVhZHxpbnNlcnQtYmVmb3JlfGpvaW58cHV0fHJlbW92ZXxyZXZlcnNlfHNpemV8c29ydHxzdWJhcnJheXx0YWlsKVxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxibWFwOi8sXG4gICAgICAgIGVuZDogLyg/OmNvbnRhaW5zfGVudHJ5fGZpbmR8Zm9yLWVhY2h8Z2V0fGtleXN8bWVyZ2V8cHV0fHJlbW92ZXxzaXplKVxcYi9cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvXFxibWF0aDovLFxuICAgICAgICBlbmQ6IC8oPzphKD86Y29zfHNpbnx0YW5bMl0/KXxjb3N8ZXhwKD86MTApP3xsb2coPzoxMCk/fHBpfHBvd3xzaW58c3FydHx0YW4pXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJvcDovLFxuICAgICAgICBlbmQ6IC9cXCgvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYmZuOi8sXG4gICAgICAgIGVuZDogL1xcKC8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICAvLyBkbyBub3QgaGlnaGxpZ2h0IGluYnVpbHQgc3RyaW5ncyBhcyB2YXJpYWJsZSBvciB4bWwgZWxlbWVudCBuYW1lc1xuICAgICAgeyBiZWdpbjogL1tePC8kOidcIi1dXFxiKD86YWJzfGFjY3VtdWxhdG9yLSg/OmFmdGVyfGJlZm9yZSl8YWRqdXN0LSg/OmRhdGUoPzpUaW1lKT98dGltZSktdG8tdGltZXpvbmV8YW5hbHl6ZS1zdHJpbmd8YXBwbHl8YXZhaWxhYmxlLSg/OmVudmlyb25tZW50LXZhcmlhYmxlc3xzeXN0ZW0tcHJvcGVydGllcyl8YXZnfGJhc2UtdXJpfGJvb2xlYW58Y2VpbGluZ3xjb2RlcG9pbnRzPy0oPzplcXVhbHx0by1zdHJpbmcpfGNvbGxhdGlvbi1rZXl8Y29sbGVjdGlvbnxjb21wYXJlfGNvbmNhdHxjb250YWlucyg/Oi10b2tlbik/fGNvcHktb2Z8Y291bnR8Y3VycmVudCg/Oi0pPyg/OmRhdGUoPzpUaW1lKT98dGltZXxncm91cCg/OmluZy1rZXkpP3xvdXRwdXQtdXJpfG1lcmdlLSg/Omdyb3VwfGtleSkpP2RhdGF8ZGF0ZVRpbWV8ZGF5cz8tZnJvbS0oPzpkYXRlKD86VGltZSk/fGR1cmF0aW9uKXxkZWVwLWVxdWFsfGRlZmF1bHQtKD86Y29sbGF0aW9ufGxhbmd1YWdlKXxkaXN0aW5jdC12YWx1ZXN8ZG9jdW1lbnQoPzotdXJpKT98ZG9jKD86LWF2YWlsYWJsZSk/fGVsZW1lbnQtKD86YXZhaWxhYmxlfHdpdGgtaWQpfGVtcHR5fGVuY29kZS1mb3ItdXJpfGVuZHMtd2l0aHxlbnZpcm9ubWVudC12YXJpYWJsZXxlcnJvcnxlc2NhcGUtaHRtbC11cml8ZXhhY3RseS1vbmV8ZXhpc3RzfGZhbHNlfGZpbHRlcnxmbG9vcnxmb2xkLSg/OmxlZnR8cmlnaHQpfGZvci1lYWNoKD86LXBhaXIpP3xmb3JtYXQtKD86ZGF0ZSg/OlRpbWUpP3x0aW1lfGludGVnZXJ8bnVtYmVyKXxmdW5jdGlvbi0oPzphcml0eXxhdmFpbGFibGV8bG9va3VwfG5hbWUpfGdlbmVyYXRlLWlkfGhhcy1jaGlsZHJlbnxoZWFkfGhvdXJzLWZyb20tKD86ZGF0ZVRpbWV8ZHVyYXRpb258dGltZSl8aWQoPzpyZWYpP3xpbXBsaWNpdC10aW1lem9uZXxpbi1zY29wZS1wcmVmaXhlc3xpbmRleC1vZnxpbm5lcm1vc3R8aW5zZXJ0LWJlZm9yZXxpcmktdG8tdXJpfGpzb24tKD86ZG9jfHRvLXhtbCl8a2V5fGxhbmd8bGFzdHxsb2FkLXhxdWVyeS1tb2R1bGV8bG9jYWwtbmFtZSg/Oi1mcm9tLVFOYW1lKT98KD86bG93ZXJ8dXBwZXIpLWNhc2V8bWF0Y2hlc3xtYXh8bWludXRlcy1mcm9tLSg/OmRhdGVUaW1lfGR1cmF0aW9ufHRpbWUpfG1pbnxtb250aHM/LWZyb20tKD86ZGF0ZSg/OlRpbWUpP3xkdXJhdGlvbil8bmFtZSg/OnNwYWNlLXVyaS0/KD86Zm9yLXByZWZpeHxmcm9tLVFOYW1lKT8pP3xuaWxsZWR8bm9kZS1uYW1lfG5vcm1hbGl6ZS0oPzpzcGFjZXx1bmljb2RlKXxub3R8bnVtYmVyfG9uZS1vci1tb3JlfG91dGVybW9zdHxwYXJzZS0oPzppZXRmLWRhdGV8anNvbil8cGF0aHxwb3NpdGlvbnwoPzpwcmVmaXgtZnJvbS0pP1FOYW1lfHJhbmRvbS1udW1iZXItZ2VuZXJhdG9yfHJlZ2V4LWdyb3VwfHJlbW92ZXxyZXBsYWNlfHJlc29sdmUtKD86UU5hbWV8dXJpKXxyZXZlcnNlfHJvb3R8cm91bmQoPzotaGFsZi10by1ldmVuKT98c2Vjb25kcy1mcm9tLSg/OmRhdGVUaW1lfGR1cmF0aW9ufHRpbWUpfHNuYXBzaG90fHNvcnR8c3RhcnRzLXdpdGh8c3RhdGljLWJhc2UtdXJpfHN0cmVhbS1hdmFpbGFibGV8c3RyaW5nLT8oPzpqb2lufGxlbmd0aHx0by1jb2RlcG9pbnRzKT98c3Vic2VxdWVuY2V8c3Vic3RyaW5nLT8oPzphZnRlcnxiZWZvcmUpP3xzdW18c3lzdGVtLXByb3BlcnR5fHRhaWx8dGltZXpvbmUtZnJvbS0oPzpkYXRlKD86VGltZSk/fHRpbWUpfHRva2VuaXplfHRyYWNlfHRyYW5zKD86Zm9ybXxsYXRlKXx0cnVlfHR5cGUtYXZhaWxhYmxlfHVub3JkZXJlZHx1bnBhcnNlZC0oPzplbnRpdHl8dGV4dCk/LT8oPzpwdWJsaWMtaWR8dXJpfGF2YWlsYWJsZXxsaW5lcyk/fHVyaS1jb2xsZWN0aW9ufHhtbC10by1qc29ufHllYXJzPy1mcm9tLSg/OmRhdGUoPzpUaW1lKT98ZHVyYXRpb24pfHplcm8tb3Itb25lKVxcYi8gfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGJsb2NhbDovLFxuICAgICAgICBlbmQ6IC9cXCgvLFxuICAgICAgICBleGNsdWRlRW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcYnppcDovLFxuICAgICAgICBlbmQ6IC8oPzp6aXAtZmlsZXwoPzp4bWx8aHRtbHx0ZXh0fGJpbmFyeSktZW50cnl8ICg/OnVwZGF0ZS0pP2VudHJpZXMpXFxiL1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYmVnaW46IC9cXGIoPzp1dGlsfGRifGZ1bmN0eHxhcHB8eGRtcHx4bWxkYik6LyxcbiAgICAgICAgZW5kOiAvXFwoLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZVxuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICBjb25zdCBUSVRMRSA9IHtcbiAgICBjbGFzc05hbWU6ICd0aXRsZScsXG4gICAgYmVnaW46IC9cXGJ4cXVlcnkgdmVyc2lvbiBcIlsxM11cXC5bMDFdXCJcXHM/KD86ZW5jb2RpbmcgXCIuK1wiKT8vLFxuICAgIGVuZDogLzsvXG4gIH07XG5cbiAgY29uc3QgVkFSID0ge1xuICAgIGNsYXNzTmFtZTogJ3ZhcmlhYmxlJyxcbiAgICBiZWdpbjogL1skXVtcXHdcXC06XSsvXG4gIH07XG5cbiAgY29uc3QgTlVNQkVSID0ge1xuICAgIGNsYXNzTmFtZTogJ251bWJlcicsXG4gICAgYmVnaW46IC8oXFxiMFswLTdfXSspfChcXGIweFswLTlhLWZBLUZfXSspfChcXGJbMS05XVswLTlfXSooXFwuWzAtOV9dKyk/KXxbMF9dXFxiLyxcbiAgICByZWxldmFuY2U6IDBcbiAgfTtcblxuICBjb25zdCBTVFJJTkcgPSB7XG4gICAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgICB2YXJpYW50czogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1wiLyxcbiAgICAgICAgZW5kOiAvXCIvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvXCJcIi8sXG4gICAgICAgICAgICByZWxldmFuY2U6IDBcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJlZ2luOiAvJy8sXG4gICAgICAgIGVuZDogLycvLFxuICAgICAgICBjb250YWluczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJlZ2luOiAvJycvLFxuICAgICAgICAgICAgcmVsZXZhbmNlOiAwXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuXG4gIGNvbnN0IEFOTk9UQVRJT04gPSB7XG4gICAgY2xhc3NOYW1lOiAnbWV0YScsXG4gICAgYmVnaW46IC8lW1xcd1xcLTpdKy9cbiAgfTtcblxuICBjb25zdCBDT01NRU5UID0ge1xuICAgIGNsYXNzTmFtZTogJ2NvbW1lbnQnLFxuICAgIGJlZ2luOiAvXFwoOi8sXG4gICAgZW5kOiAvOlxcKS8sXG4gICAgcmVsZXZhbmNlOiAxMCxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICBiZWdpbjogL0BcXHcrL1xuICAgICAgfVxuICAgIF1cbiAgfTtcblxuICAvLyBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3hxdWVyeS8jaWQtY29tcHV0ZWRDb25zdHJ1Y3RvcnNcbiAgLy8gbW9jaGE6IGNvbXB1dGVkX2luYnVpbHRcbiAgLy8gc2VlIGh0dHBzOi8vd3d3LnJlZ2V4cGFsLmNvbS8/ZmFtPTk5NzQ5XG4gIGNvbnN0IENPTVBVVEVEID0ge1xuICAgIGJlZ2luS2V5d29yZHM6ICdlbGVtZW50IGF0dHJpYnV0ZSBjb21tZW50IGRvY3VtZW50IHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb24nLFxuICAgIGVuZDogL1xcey8sXG4gICAgZXhjbHVkZUVuZDogdHJ1ZVxuICB9O1xuXG4gIC8vIG1vY2hhOiBkaXJlY3RfbWV0aG9kXG4gIGNvbnN0IERJUkVDVCA9IHtcbiAgICBiZWdpbjogLzwoW1xcdy5fOi1dKykoXFxzK1xcUyo9KCd8XCIpLiooJ3xcIikpPz4vLFxuICAgIGVuZDogLyhcXC9bXFx3Ll86LV0rPikvLFxuICAgIHN1Ykxhbmd1YWdlOiAneG1sJyxcbiAgICBjb250YWluczogW1xuICAgICAge1xuICAgICAgICBiZWdpbjogL1xcey8sXG4gICAgICAgIGVuZDogL1xcfS8sXG4gICAgICAgIHN1Ykxhbmd1YWdlOiAneHF1ZXJ5J1xuICAgICAgfSxcbiAgICAgICdzZWxmJ1xuICAgIF1cbiAgfTtcblxuICBjb25zdCBDT05UQUlOUyA9IFtcbiAgICBWQVIsXG4gICAgQlVJTFRfSU4sXG4gICAgU1RSSU5HLFxuICAgIE5VTUJFUixcbiAgICBDT01NRU5ULFxuICAgIEFOTk9UQVRJT04sXG4gICAgVElUTEUsXG4gICAgQ09NUFVURUQsXG4gICAgRElSRUNUXG4gIF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnWFF1ZXJ5JyxcbiAgICBhbGlhc2VzOiBbXG4gICAgICAneHBhdGgnLFxuICAgICAgJ3hxJyxcbiAgICAgICd4cW0nXG4gICAgXSxcbiAgICBjYXNlX2luc2Vuc2l0aXZlOiBmYWxzZSxcbiAgICBpbGxlZ2FsOiAvKHByb2MpfChhYnN0cmFjdCl8KGV4dGVuZHMpfCh1bnRpbCl8KCMpLyxcbiAgICBrZXl3b3Jkczoge1xuICAgICAgJHBhdHRlcm46IC9bYS16QS1aJF1bYS16QS1aMC05XzotXSovLFxuICAgICAga2V5d29yZDogS0VZV09SRFMsXG4gICAgICB0eXBlOiBUWVBFUyxcbiAgICAgIGxpdGVyYWw6IExJVEVSQUxTXG4gICAgfSxcbiAgICBjb250YWluczogQ09OVEFJTlNcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB4cXVlcnk7XG4iLCAiLypcbiBMYW5ndWFnZTogWmVwaGlyXG4gRGVzY3JpcHRpb246IFplcGhpciwgYW4gb3BlbiBzb3VyY2UsIGhpZ2gtbGV2ZWwgbGFuZ3VhZ2UgZGVzaWduZWQgdG8gZWFzZSB0aGUgY3JlYXRpb24gYW5kIG1haW50YWluYWJpbGl0eSBvZiBleHRlbnNpb25zIGZvciBQSFAgd2l0aCBhIGZvY3VzIG9uIHR5cGUgYW5kIG1lbW9yeSBzYWZldHkuXG4gQXV0aG9yOiBPbGVnIEVmaW1vdiA8ZWZpbW92b3ZAZ21haWwuY29tPlxuIFdlYnNpdGU6IGh0dHBzOi8vemVwaGlyLWxhbmcuY29tL2VuXG4gQ2F0ZWdvcnk6IHdlYlxuIEF1ZGl0OiAyMDIwXG4gKi9cblxuLyoqIEB0eXBlIExhbmd1YWdlRm4gKi9cbmZ1bmN0aW9uIHplcGhpcihobGpzKSB7XG4gIGNvbnN0IFNUUklORyA9IHtcbiAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgIGNvbnRhaW5zOiBbIGhsanMuQkFDS1NMQVNIX0VTQ0FQRSBdLFxuICAgIHZhcmlhbnRzOiBbXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5BUE9TX1NUUklOR19NT0RFLCB7IGlsbGVnYWw6IG51bGwgfSksXG4gICAgICBobGpzLmluaGVyaXQoaGxqcy5RVU9URV9TVFJJTkdfTU9ERSwgeyBpbGxlZ2FsOiBudWxsIH0pXG4gICAgXVxuICB9O1xuICBjb25zdCBUSVRMRV9NT0RFID0gaGxqcy5VTkRFUlNDT1JFX1RJVExFX01PREU7XG4gIGNvbnN0IE5VTUJFUiA9IHsgdmFyaWFudHM6IFtcbiAgICBobGpzLkJJTkFSWV9OVU1CRVJfTU9ERSxcbiAgICBobGpzLkNfTlVNQkVSX01PREVcbiAgXSB9O1xuICBjb25zdCBLRVlXT1JEUyA9XG4gICAgLy8gY2xhc3NlcyBhbmQgb2JqZWN0c1xuICAgICduYW1lc3BhY2UgY2xhc3MgaW50ZXJmYWNlIHVzZSBleHRlbmRzICdcbiAgICArICdmdW5jdGlvbiByZXR1cm4gJ1xuICAgICsgJ2Fic3RyYWN0IGZpbmFsIHB1YmxpYyBwcm90ZWN0ZWQgcHJpdmF0ZSBzdGF0aWMgZGVwcmVjYXRlZCAnXG4gICAgLy8gZXJyb3IgaGFuZGxpbmdcbiAgICArICd0aHJvdyB0cnkgY2F0Y2ggRXhjZXB0aW9uICdcbiAgICAvLyBrZXl3b3JkLWlzaCB0aGluZ3MgdGhlaXIgd2Vic2l0ZSBkb2VzIE5PVCBzZWVtIHRvIGhpZ2hsaWdodCAoaW4gdGhlaXIgb3duIHNuaXBwZXRzKVxuICAgIC8vICd0eXBlb2YgZmV0Y2ggaW4gJyArXG4gICAgLy8gb3BlcmF0b3JzL2hlbHBlcnNcbiAgICArICdlY2hvIGVtcHR5IGlzc2V0IGluc3RhbmNlb2YgdW5zZXQgJ1xuICAgIC8vIGFzc2lnbm1lbnQvdmFyaWFibGVzXG4gICAgKyAnbGV0IHZhciBuZXcgY29uc3Qgc2VsZiAnXG4gICAgLy8gY29udHJvbFxuICAgICsgJ3JlcXVpcmUgJ1xuICAgICsgJ2lmIGVsc2UgZWxzZWlmIHN3aXRjaCBjYXNlIGRlZmF1bHQgJ1xuICAgICsgJ2RvIHdoaWxlIGxvb3AgZm9yIGNvbnRpbnVlIGJyZWFrICdcbiAgICArICdsaWtlbHkgdW5saWtlbHkgJ1xuICAgIC8vIG1hZ2ljIGNvbnN0YW50c1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9waGFsY29uL3plcGhpci9ibG9iL21hc3Rlci9MaWJyYXJ5L0V4cHJlc3Npb24vQ29uc3RhbnRzLnBocFxuICAgICsgJ19fTElORV9fIF9fRklMRV9fIF9fRElSX18gX19GVU5DVElPTl9fIF9fQ0xBU1NfXyBfX1RSQUlUX18gX19NRVRIT0RfXyBfX05BTUVTUEFDRV9fICdcbiAgICAvLyB0eXBlcyAtIGh0dHBzOi8vZG9jcy56ZXBoaXItbGFuZy5jb20vMC4xMi9lbi90eXBlc1xuICAgICsgJ2FycmF5IGJvb2xlYW4gZmxvYXQgZG91YmxlIGludGVnZXIgb2JqZWN0IHJlc291cmNlIHN0cmluZyAnXG4gICAgKyAnY2hhciBsb25nIHVuc2lnbmVkIGJvb2wgaW50IHVpbnQgdWxvbmcgdWNoYXIgJ1xuICAgIC8vIGJ1aWx0LWluc1xuICAgICsgJ3RydWUgZmFsc2UgbnVsbCB1bmRlZmluZWQnO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ1plcGhpcicsXG4gICAgYWxpYXNlczogWyAnemVwJyBdLFxuICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICBjb250YWluczogW1xuICAgICAgaGxqcy5DX0xJTkVfQ09NTUVOVF9NT0RFLFxuICAgICAgaGxqcy5DT01NRU5UKFxuICAgICAgICAvXFwvXFwqLyxcbiAgICAgICAgL1xcKlxcLy8sXG4gICAgICAgIHsgY29udGFpbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdkb2N0YWcnLFxuICAgICAgICAgICAgYmVnaW46IC9AW0EtWmEtel0rL1xuICAgICAgICAgIH1cbiAgICAgICAgXSB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICdzdHJpbmcnLFxuICAgICAgICBiZWdpbjogLzw8PFsnXCJdP1xcdytbJ1wiXT8kLyxcbiAgICAgICAgZW5kOiAvXlxcdys7LyxcbiAgICAgICAgY29udGFpbnM6IFsgaGxqcy5CQUNLU0xBU0hfRVNDQVBFIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIHN3YWxsb3cgY29tcG9zZWQgaWRlbnRpZmllcnMgdG8gYXZvaWQgcGFyc2luZyB0aGVtIGFzIGtleXdvcmRzXG4gICAgICAgIGJlZ2luOiAvKDo6fC0+KStbYS16QS1aX1xceDdmLVxceGZmXVthLXpBLVowLTlfXFx4N2YtXFx4ZmZdKi8gfSxcbiAgICAgIHtcbiAgICAgICAgY2xhc3NOYW1lOiAnZnVuY3Rpb24nLFxuICAgICAgICBiZWdpbktleXdvcmRzOiAnZnVuY3Rpb24gZm4nLFxuICAgICAgICBlbmQ6IC9bO3tdLyxcbiAgICAgICAgZXhjbHVkZUVuZDogdHJ1ZSxcbiAgICAgICAgaWxsZWdhbDogL1xcJHxcXFt8JS8sXG4gICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgVElUTEVfTU9ERSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjbGFzc05hbWU6ICdwYXJhbXMnLFxuICAgICAgICAgICAgYmVnaW46IC9cXCgvLFxuICAgICAgICAgICAgZW5kOiAvXFwpLyxcbiAgICAgICAgICAgIGtleXdvcmRzOiBLRVlXT1JEUyxcbiAgICAgICAgICAgIGNvbnRhaW5zOiBbXG4gICAgICAgICAgICAgICdzZWxmJyxcbiAgICAgICAgICAgICAgaGxqcy5DX0JMT0NLX0NPTU1FTlRfTU9ERSxcbiAgICAgICAgICAgICAgU1RSSU5HLFxuICAgICAgICAgICAgICBOVU1CRVJcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzJyxcbiAgICAgICAgYmVnaW5LZXl3b3JkczogJ2NsYXNzIGludGVyZmFjZScsXG4gICAgICAgIGVuZDogL1xcey8sXG4gICAgICAgIGV4Y2x1ZGVFbmQ6IHRydWUsXG4gICAgICAgIGlsbGVnYWw6IC9bOigkXCJdLyxcbiAgICAgICAgY29udGFpbnM6IFtcbiAgICAgICAgICB7IGJlZ2luS2V5d29yZHM6ICdleHRlbmRzIGltcGxlbWVudHMnIH0sXG4gICAgICAgICAgVElUTEVfTU9ERVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAnbmFtZXNwYWNlJyxcbiAgICAgICAgZW5kOiAvOy8sXG4gICAgICAgIGlsbGVnYWw6IC9bLiddLyxcbiAgICAgICAgY29udGFpbnM6IFsgVElUTEVfTU9ERSBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBiZWdpbktleXdvcmRzOiAndXNlJyxcbiAgICAgICAgZW5kOiAvOy8sXG4gICAgICAgIGNvbnRhaW5zOiBbIFRJVExFX01PREUgXVxuICAgICAgfSxcbiAgICAgIHsgYmVnaW46IC89Pi8gLy8gTm8gbWFya3VwLCBqdXN0IGEgcmVsZXZhbmNlIGJvb3N0ZXJcbiAgICAgIH0sXG4gICAgICBTVFJJTkcsXG4gICAgICBOVU1CRVJcbiAgICBdXG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gemVwaGlyO1xuIiwgInZhciBobGpzID0gcmVxdWlyZSgnLi9jb3JlJyk7XG5cbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnMWMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy8xYycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYWJuZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2FibmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FjY2Vzc2xvZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2FjY2Vzc2xvZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYWN0aW9uc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYWN0aW9uc2NyaXB0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhZGEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hZGEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FuZ2Vsc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYW5nZWxzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FwYWNoZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2FwYWNoZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXBwbGVzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hcHBsZXNjcmlwdCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXJjYWRlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXJjYWRlJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhcmR1aW5vJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXJkdWlubycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXJtYXNtJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXJtYXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4bWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy94bWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FzY2lpZG9jJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXNjaWlkb2MnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2FzcGVjdGonLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hc3BlY3RqJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhdXRvaG90a2V5JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXV0b2hvdGtleScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXV0b2l0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXV0b2l0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdhdnJhc20nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9hdnJhc20nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2F3aycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2F3aycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYXhhcHRhJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYXhhcHRhJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdiYXNoJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYmFzaCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYmFzaWMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9iYXNpYycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnYm5mJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvYm5mJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdicmFpbmZ1Y2snLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9icmFpbmZ1Y2snKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2MnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjYWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jYWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NhcG5wcm90bycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NhcG5wcm90bycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY2V5bG9uJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY2V5bG9uJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjbGVhbicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NsZWFuJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjbG9qdXJlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY2xvanVyZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY2xvanVyZS1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY2xvanVyZS1yZXBsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjbWFrZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NtYWtlJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjb2ZmZWVzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jb2ZmZWVzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NvcScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NvcScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY29zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY29zJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjcHAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jcHAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NybXNoJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY3Jtc2gnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NyeXN0YWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jcnlzdGFsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdjc2hhcnAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9jc2hhcnAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2NzcCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2NzcCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnY3NzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvY3NzJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWFya2Rvd24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXJrZG93bicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZGFydCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RhcnQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RlbHBoaScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RlbHBoaScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZGlmZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RpZmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2RqYW5nbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RqYW5nbycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZG5zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZG5zJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkb2NrZXJmaWxlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZG9ja2VyZmlsZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZG9zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZG9zJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkc2NvbmZpZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2RzY29uZmlnJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdkdHMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9kdHMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2R1c3QnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9kdXN0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdlYm5mJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZWJuZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZWxpeGlyJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZWxpeGlyJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdlbG0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9lbG0nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3J1YnknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9ydWJ5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdlcmInLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9lcmInKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VybGFuZy1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZXJsYW5nLXJlcGwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2VybGFuZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2VybGFuZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZXhjZWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9leGNlbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZml4JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZml4JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdmbGl4JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZmxpeCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZm9ydHJhbicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2ZvcnRyYW4nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2ZzaGFycCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2ZzaGFycCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ2FtcycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2dhbXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2dhdXNzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ2F1c3MnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2djb2RlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ2NvZGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2doZXJraW4nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9naGVya2luJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnbHNsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ2xzbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ21sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ21sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2dvJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdnb2xvJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ29sbycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ3JhZGxlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3JhZGxlJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdncmFwaHFsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3JhcGhxbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnZ3Jvb3Z5JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvZ3Jvb3Z5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdoYW1sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaGFtbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaGFuZGxlYmFycycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2hhbmRsZWJhcnMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2hhc2tlbGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9oYXNrZWxsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdoYXhlJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaGF4ZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaHNwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaHNwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdodHRwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaHR0cCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaHknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9oeScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaW5mb3JtNycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2luZm9ybTcnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2luaScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2luaScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnaXJwZjkwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaXJwZjkwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdpc2JsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvaXNibCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnamF2YScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2phdmEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2phdmFzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qYXZhc2NyaXB0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqYm9zcy1jbGknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qYm9zcy1jbGknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2pzb24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9qc29uJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqdWxpYScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2p1bGlhJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdqdWxpYS1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvanVsaWEtcmVwbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgna290bGluJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMva290bGluJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsYXNzbycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xhc3NvJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsYXRleCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xhdGV4JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsZGlmJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbGRpZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbGVhZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xlYWYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xlc3MnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sZXNzJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsaXNwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbGlzcCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbGl2ZWNvZGVzZXJ2ZXInLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9saXZlY29kZXNlcnZlcicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbGl2ZXNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2xpdmVzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2xsdm0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sbHZtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdsc2wnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9sc2wnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2x1YScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL2x1YScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWFrZWZpbGUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYWtlZmlsZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWF0aGVtYXRpY2EnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXRoZW1hdGljYScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWF0bGFiJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbWF0bGFiJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdtYXhpbWEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tYXhpbWEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ21lbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL21lbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbWVyY3VyeScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL21lcmN1cnknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ21pcHNhc20nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9taXBzYXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdtaXphcicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL21pemFyJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwZXJsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGVybCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbW9qb2xpY2lvdXMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9tb2pvbGljaW91cycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbW9ua2V5JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbW9ua2V5JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdtb29uc2NyaXB0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbW9vbnNjcmlwdCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbjFxbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL24xcWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ25lc3RlZHRleHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9uZXN0ZWR0ZXh0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCduZ2lueCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL25naW54JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCduaW0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9uaW0nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ25peCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL25peCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnbm9kZS1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbm9kZS1yZXBsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCduc2lzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvbnNpcycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnb2JqZWN0aXZlYycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL29iamVjdGl2ZWMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ29jYW1sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvb2NhbWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ29wZW5zY2FkJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvb3BlbnNjYWQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ294eWdlbmUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9veHlnZW5lJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwYXJzZXIzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGFyc2VyMycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGYnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGdzcWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wZ3NxbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncGhwJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcGhwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwaHAtdGVtcGxhdGUnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9waHAtdGVtcGxhdGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3BsYWludGV4dCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3BsYWludGV4dCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncG9ueScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3BvbnknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Bvd2Vyc2hlbGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9wb3dlcnNoZWxsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdwcm9jZXNzaW5nJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHJvY2Vzc2luZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHJvZmlsZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Byb2ZpbGUnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Byb2xvZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Byb2xvZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHJvcGVydGllcycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Byb3BlcnRpZXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3Byb3RvYnVmJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHJvdG9idWYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3B1cHBldCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3B1cHBldCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncHVyZWJhc2ljJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHVyZWJhc2ljJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdweXRob24nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9weXRob24nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3B5dGhvbi1yZXBsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcHl0aG9uLXJlcGwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3EnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9xJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdxbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9xbWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3InLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9yJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdyZWFzb25tbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3JlYXNvbm1sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdyaWInLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9yaWInKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JvYm9jb25mJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcm9ib2NvbmYnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JvdXRlcm9zJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvcm91dGVyb3MnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3JzbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3JzbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgncnVsZXNsYW5ndWFnZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3J1bGVzbGFuZ3VhZ2UnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3J1c3QnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9ydXN0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzYXMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zYXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NjYWxhJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc2NhbGEnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NjaGVtZScsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3NjaGVtZScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc2NpbGFiJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc2NpbGFiJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzY3NzJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc2NzcycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc2hlbGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zaGVsbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc21hbGknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zbWFsaScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc21hbGx0YWxrJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc21hbGx0YWxrJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zbWwnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3NxZicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3NxZicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc3FsJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3FsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzdGFuJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3RhbicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc3RhdGEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zdGF0YScpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgnc3RlcDIxJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvc3RlcDIxJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzdHlsdXMnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zdHlsdXMnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3N1YnVuaXQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy9zdWJ1bml0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCdzd2lmdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3N3aWZ0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0YWdnZXJzY3JpcHQnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy90YWdnZXJzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3lhbWwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy95YW1sJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0YXAnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy90YXAnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3RjbCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3RjbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndGhyaWZ0JywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdGhyaWZ0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0cCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3RwJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd0d2lnJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdHdpZycpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndHlwZXNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3R5cGVzY3JpcHQnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3ZhbGEnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92YWxhJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2Ym5ldCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3ZibmV0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2YnNjcmlwdCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Zic2NyaXB0JykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2YnNjcmlwdC1odG1sJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvdmJzY3JpcHQtaHRtbCcpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgndmVyaWxvZycsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3Zlcmlsb2cnKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3ZoZGwnLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92aGRsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd2aW0nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy92aW0nKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3dhc20nLCByZXF1aXJlKCcuL2xhbmd1YWdlcy93YXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd3cmVuJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMvd3JlbicpKTtcbmhsanMucmVnaXN0ZXJMYW5ndWFnZSgneDg2YXNtJywgcmVxdWlyZSgnLi9sYW5ndWFnZXMveDg2YXNtJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4bCcsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3hsJykpO1xuaGxqcy5yZWdpc3Rlckxhbmd1YWdlKCd4cXVlcnknLCByZXF1aXJlKCcuL2xhbmd1YWdlcy94cXVlcnknKSk7XG5obGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoJ3plcGhpcicsIHJlcXVpcmUoJy4vbGFuZ3VhZ2VzL3plcGhpcicpKTtcblxuaGxqcy5IaWdobGlnaHRKUyA9IGhsanNcbmhsanMuZGVmYXVsdCA9IGhsanNcbm1vZHVsZS5leHBvcnRzID0gaGxqczsiLCAiLyoqXG4gKiBAbGljZW5zZSBNSVRcbiAqIHRvcGJhciAxLjAuMCwgMjAyMS0wMS0wNlxuICogaHR0cDovL2J1dW5ndXllbi5naXRodWIuaW8vdG9wYmFyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQnV1IE5ndXllblxuICovXG4oZnVuY3Rpb24gKHdpbmRvdywgZG9jdW1lbnQpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGF1bGlyaXNoLzE1Nzk2NzFcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGFzdFRpbWUgPSAwO1xuICAgIHZhciB2ZW5kb3JzID0gW1wibXNcIiwgXCJtb3pcIiwgXCJ3ZWJraXRcIiwgXCJvXCJdO1xuICAgIGZvciAodmFyIHggPSAwOyB4IDwgdmVuZG9ycy5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ICsreCkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9XG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgXCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcIl07XG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPVxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArIFwiQ2FuY2VsQW5pbWF0aW9uRnJhbWVcIl0gfHxcbiAgICAgICAgd2luZG93W3ZlbmRvcnNbeF0gKyBcIkNhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZVwiXTtcbiAgICB9XG4gICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKVxuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uIChjYWxsYmFjaywgZWxlbWVudCkge1xuICAgICAgICB2YXIgY3VyclRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgdmFyIHRpbWVUb0NhbGwgPSBNYXRoLm1heCgwLCAxNiAtIChjdXJyVGltZSAtIGxhc3RUaW1lKSk7XG4gICAgICAgIHZhciBpZCA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjYWxsYmFjayhjdXJyVGltZSArIHRpbWVUb0NhbGwpO1xuICAgICAgICB9LCB0aW1lVG9DYWxsKTtcbiAgICAgICAgbGFzdFRpbWUgPSBjdXJyVGltZSArIHRpbWVUb0NhbGw7XG4gICAgICAgIHJldHVybiBpZDtcbiAgICAgIH07XG4gICAgaWYgKCF3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUpXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKTtcbiAgICAgIH07XG4gIH0pKCk7XG5cbiAgdmFyIGNhbnZhcyxcbiAgICBwcm9ncmVzc1RpbWVySWQsXG4gICAgZmFkZVRpbWVySWQsXG4gICAgY3VycmVudFByb2dyZXNzLFxuICAgIHNob3dpbmcsXG4gICAgYWRkRXZlbnQgPSBmdW5jdGlvbiAoZWxlbSwgdHlwZSwgaGFuZGxlcikge1xuICAgICAgaWYgKGVsZW0uYWRkRXZlbnRMaXN0ZW5lcikgZWxlbS5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGhhbmRsZXIsIGZhbHNlKTtcbiAgICAgIGVsc2UgaWYgKGVsZW0uYXR0YWNoRXZlbnQpIGVsZW0uYXR0YWNoRXZlbnQoXCJvblwiICsgdHlwZSwgaGFuZGxlcik7XG4gICAgICBlbHNlIGVsZW1bXCJvblwiICsgdHlwZV0gPSBoYW5kbGVyO1xuICAgIH0sXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIGF1dG9SdW46IHRydWUsXG4gICAgICBiYXJUaGlja25lc3M6IDMsXG4gICAgICBiYXJDb2xvcnM6IHtcbiAgICAgICAgMDogXCJyZ2JhKDI2LCAgMTg4LCAxNTYsIC45KVwiLFxuICAgICAgICBcIi4yNVwiOiBcInJnYmEoNTIsICAxNTIsIDIxOSwgLjkpXCIsXG4gICAgICAgIFwiLjUwXCI6IFwicmdiYSgyNDEsIDE5NiwgMTUsICAuOSlcIixcbiAgICAgICAgXCIuNzVcIjogXCJyZ2JhKDIzMCwgMTI2LCAzNCwgIC45KVwiLFxuICAgICAgICBcIjEuMFwiOiBcInJnYmEoMjExLCA4NCwgIDAsICAgLjkpXCIsXG4gICAgICB9LFxuICAgICAgc2hhZG93Qmx1cjogMTAsXG4gICAgICBzaGFkb3dDb2xvcjogXCJyZ2JhKDAsICAgMCwgICAwLCAgIC42KVwiLFxuICAgICAgY2xhc3NOYW1lOiBudWxsLFxuICAgIH0sXG4gICAgcmVwYWludCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbnZhcy53aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgY2FudmFzLmhlaWdodCA9IG9wdGlvbnMuYmFyVGhpY2tuZXNzICogNTsgLy8gbmVlZCBzcGFjZSBmb3Igc2hhZG93XG5cbiAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICAgICAgY3R4LnNoYWRvd0JsdXIgPSBvcHRpb25zLnNoYWRvd0JsdXI7XG4gICAgICBjdHguc2hhZG93Q29sb3IgPSBvcHRpb25zLnNoYWRvd0NvbG9yO1xuXG4gICAgICB2YXIgbGluZUdyYWRpZW50ID0gY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIDAsIGNhbnZhcy53aWR0aCwgMCk7XG4gICAgICBmb3IgKHZhciBzdG9wIGluIG9wdGlvbnMuYmFyQ29sb3JzKVxuICAgICAgICBsaW5lR3JhZGllbnQuYWRkQ29sb3JTdG9wKHN0b3AsIG9wdGlvbnMuYmFyQ29sb3JzW3N0b3BdKTtcbiAgICAgIGN0eC5saW5lV2lkdGggPSBvcHRpb25zLmJhclRoaWNrbmVzcztcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGN0eC5tb3ZlVG8oMCwgb3B0aW9ucy5iYXJUaGlja25lc3MgLyAyKTtcbiAgICAgIGN0eC5saW5lVG8oXG4gICAgICAgIE1hdGguY2VpbChjdXJyZW50UHJvZ3Jlc3MgKiBjYW52YXMud2lkdGgpLFxuICAgICAgICBvcHRpb25zLmJhclRoaWNrbmVzcyAvIDJcbiAgICAgICk7XG4gICAgICBjdHguc3Ryb2tlU3R5bGUgPSBsaW5lR3JhZGllbnQ7XG4gICAgICBjdHguc3Ryb2tlKCk7XG4gICAgfSxcbiAgICBjcmVhdGVDYW52YXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgICAgdmFyIHN0eWxlID0gY2FudmFzLnN0eWxlO1xuICAgICAgc3R5bGUucG9zaXRpb24gPSBcImZpeGVkXCI7XG4gICAgICBzdHlsZS50b3AgPSBzdHlsZS5sZWZ0ID0gc3R5bGUucmlnaHQgPSBzdHlsZS5tYXJnaW4gPSBzdHlsZS5wYWRkaW5nID0gMDtcbiAgICAgIHN0eWxlLnpJbmRleCA9IDEwMDAwMTtcbiAgICAgIHN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgIGlmIChvcHRpb25zLmNsYXNzTmFtZSkgY2FudmFzLmNsYXNzTGlzdC5hZGQob3B0aW9ucy5jbGFzc05hbWUpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpO1xuICAgICAgYWRkRXZlbnQod2luZG93LCBcInJlc2l6ZVwiLCByZXBhaW50KTtcbiAgICB9LFxuICAgIHRvcGJhciA9IHtcbiAgICAgIGNvbmZpZzogZnVuY3Rpb24gKG9wdHMpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG9wdHMpXG4gICAgICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkoa2V5KSkgb3B0aW9uc1trZXldID0gb3B0c1trZXldO1xuICAgICAgfSxcbiAgICAgIHNob3c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHNob3dpbmcpIHJldHVybjtcbiAgICAgICAgc2hvd2luZyA9IHRydWU7XG4gICAgICAgIGlmIChmYWRlVGltZXJJZCAhPT0gbnVsbCkgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZhZGVUaW1lcklkKTtcbiAgICAgICAgaWYgKCFjYW52YXMpIGNyZWF0ZUNhbnZhcygpO1xuICAgICAgICBjYW52YXMuc3R5bGUub3BhY2l0eSA9IDE7XG4gICAgICAgIGNhbnZhcy5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgICB0b3BiYXIucHJvZ3Jlc3MoMCk7XG4gICAgICAgIGlmIChvcHRpb25zLmF1dG9SdW4pIHtcbiAgICAgICAgICAoZnVuY3Rpb24gbG9vcCgpIHtcbiAgICAgICAgICAgIHByb2dyZXNzVGltZXJJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobG9vcCk7XG4gICAgICAgICAgICB0b3BiYXIucHJvZ3Jlc3MoXG4gICAgICAgICAgICAgIFwiK1wiICsgMC4wNSAqIE1hdGgucG93KDEgLSBNYXRoLnNxcnQoY3VycmVudFByb2dyZXNzKSwgMilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSkoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb2dyZXNzOiBmdW5jdGlvbiAodG8pIHtcbiAgICAgICAgaWYgKHR5cGVvZiB0byA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIGN1cnJlbnRQcm9ncmVzcztcbiAgICAgICAgaWYgKHR5cGVvZiB0byA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHRvID1cbiAgICAgICAgICAgICh0by5pbmRleE9mKFwiK1wiKSA+PSAwIHx8IHRvLmluZGV4T2YoXCItXCIpID49IDBcbiAgICAgICAgICAgICAgPyBjdXJyZW50UHJvZ3Jlc3NcbiAgICAgICAgICAgICAgOiAwKSArIHBhcnNlRmxvYXQodG8pO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRQcm9ncmVzcyA9IHRvID4gMSA/IDEgOiB0bztcbiAgICAgICAgcmVwYWludCgpO1xuICAgICAgICByZXR1cm4gY3VycmVudFByb2dyZXNzO1xuICAgICAgfSxcbiAgICAgIGhpZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCFzaG93aW5nKSByZXR1cm47XG4gICAgICAgIHNob3dpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHByb2dyZXNzVGltZXJJZCAhPSBudWxsKSB7XG4gICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHByb2dyZXNzVGltZXJJZCk7XG4gICAgICAgICAgcHJvZ3Jlc3NUaW1lcklkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICAoZnVuY3Rpb24gbG9vcCgpIHtcbiAgICAgICAgICBpZiAodG9wYmFyLnByb2dyZXNzKFwiKy4xXCIpID49IDEpIHtcbiAgICAgICAgICAgIGNhbnZhcy5zdHlsZS5vcGFjaXR5IC09IDAuMDU7XG4gICAgICAgICAgICBpZiAoY2FudmFzLnN0eWxlLm9wYWNpdHkgPD0gMC4wNSkge1xuICAgICAgICAgICAgICBjYW52YXMuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICAgICAgICBmYWRlVGltZXJJZCA9IG51bGw7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZmFkZVRpbWVySWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGxvb3ApO1xuICAgICAgICB9KSgpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gIGlmICh0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gXCJvYmplY3RcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gdG9wYmFyO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kKSB7XG4gICAgZGVmaW5lKGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB0b3BiYXI7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy50b3BiYXIgPSB0b3BiYXI7XG4gIH1cbn0uY2FsbCh0aGlzLCB3aW5kb3csIGRvY3VtZW50KSk7XG4iLCAiaW1wb3J0ICQgZnJvbSBcImpxdWVyeVwiO1xud2luZG93LiQgPSAkO1xud2luZG93LmpRdWVyeSA9ICQ7XG5cbmltcG9ydCBcImJvb3RzdHJhcFwiO1xuXG5pbXBvcnQgaGxqcyBmcm9tIFwiaGlnaGxpZ2h0LmpzXCI7XG4kKGZ1bmN0aW9uICgpIHsgaGxqcy5oaWdobGlnaHRBbGwoKTsgfSlcblxuaW1wb3J0IFwiLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgXCIuL2tteF9hbmltXCI7XG5cbi8vIElmIHlvdSB3YW50IHRvIHVzZSBQaG9lbml4IGNoYW5uZWxzLCBydW4gYG1peCBoZWxwIHBoeC5nZW4uY2hhbm5lbGBcbi8vIHRvIGdldCBzdGFydGVkIGFuZCB0aGVuIHVuY29tbWVudCB0aGUgbGluZSBiZWxvdy5cbi8vIGltcG9ydCBcIi4vdXNlcl9zb2NrZXQuanNcIlxuXG4vLyBJbmNsdWRlIHBob2VuaXhfaHRtbCB0byBoYW5kbGUgbWV0aG9kPVBVVC9ERUxFVEUgaW4gZm9ybXMgYW5kIGJ1dHRvbnMuXG5pbXBvcnQgXCJwaG9lbml4X2h0bWxcIjtcbi8vIEVzdGFibGlzaCBQaG9lbml4IFNvY2tldCBhbmQgTGl2ZVZpZXcgY29uZmlndXJhdGlvbi5cbmltcG9ydCB7U29ja2V0fSBmcm9tIFwicGhvZW5peFwiO1xuaW1wb3J0IHtMaXZlU29ja2V0fSBmcm9tIFwicGhvZW5peF9saXZlX3ZpZXdcIjtcbmltcG9ydCB0b3BiYXIgZnJvbSBcIi4uL3ZlbmRvci90b3BiYXJcIjtcblxubGV0IGNzcmZUb2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJtZXRhW25hbWU9J2NzcmYtdG9rZW4nXVwiKS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpO1xubGV0IGxpdmVTb2NrZXQgPSBuZXcgTGl2ZVNvY2tldChcIi9saXZlXCIsIFNvY2tldCwge3BhcmFtczoge19jc3JmX3Rva2VuOiBjc3JmVG9rZW59fSk7XG5cbi8vIFNob3cgcHJvZ3Jlc3MgYmFyIG9uIGxpdmUgbmF2aWdhdGlvbiBhbmQgZm9ybSBzdWJtaXRzXG50b3BiYXIuY29uZmlnKHtiYXJDb2xvcnM6IHswOiBcIiMyOWRcIn0sIHNoYWRvd0NvbG9yOiBcInJnYmEoMCwgMCwgMCwgLjMpXCJ9KTtcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicGh4OnBhZ2UtbG9hZGluZy1zdGFydFwiLCBpbmZvID0+IHRvcGJhci5zaG93KCkpO1xud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwaHg6cGFnZS1sb2FkaW5nLXN0b3BcIiwgaW5mbyA9PiB0b3BiYXIuaGlkZSgpKTtcblxuLy8gY29ubmVjdCBpZiB0aGVyZSBhcmUgYW55IExpdmVWaWV3cyBvbiB0aGUgcGFnZVxubGl2ZVNvY2tldC5jb25uZWN0KCk7XG5cbi8vIGV4cG9zZSBsaXZlU29ja2V0IG9uIHdpbmRvdyBmb3Igd2ViIGNvbnNvbGUgZGVidWcgbG9ncyBhbmQgbGF0ZW5jeSBzaW11bGF0aW9uOlxuLy8gPj4gbGl2ZVNvY2tldC5lbmFibGVEZWJ1ZygpXG4vLyA+PiBsaXZlU29ja2V0LmVuYWJsZUxhdGVuY3lTaW0oMTAwMCkgIC8vIGVuYWJsZWQgZm9yIGR1cmF0aW9uIG9mIGJyb3dzZXIgc2Vzc2lvblxuLy8gPj4gbGl2ZVNvY2tldC5kaXNhYmxlTGF0ZW5jeVNpbSgpXG53aW5kb3cubGl2ZVNvY2tldCA9IGxpdmVTb2NrZXQ7XG4iLCAiZXhwb3J0ICogZnJvbSBcIi4vZW51bXMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGlmaWVycy9pbmRleC5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IHBvcHBlckdlbmVyYXRvciwgZGV0ZWN0T3ZlcmZsb3csIGNyZWF0ZVBvcHBlciBhcyBjcmVhdGVQb3BwZXJCYXNlIH0gZnJvbSBcIi4vY3JlYXRlUG9wcGVyLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIH0gZnJvbSBcIi4vcG9wcGVyLmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgY3JlYXRlUG9wcGVyIGFzIGNyZWF0ZVBvcHBlckxpdGUgfSBmcm9tIFwiLi9wb3BwZXItbGl0ZS5qc1wiOyIsICJleHBvcnQgdmFyIHRvcCA9ICd0b3AnO1xuZXhwb3J0IHZhciBib3R0b20gPSAnYm90dG9tJztcbmV4cG9ydCB2YXIgcmlnaHQgPSAncmlnaHQnO1xuZXhwb3J0IHZhciBsZWZ0ID0gJ2xlZnQnO1xuZXhwb3J0IHZhciBhdXRvID0gJ2F1dG8nO1xuZXhwb3J0IHZhciBiYXNlUGxhY2VtZW50cyA9IFt0b3AsIGJvdHRvbSwgcmlnaHQsIGxlZnRdO1xuZXhwb3J0IHZhciBzdGFydCA9ICdzdGFydCc7XG5leHBvcnQgdmFyIGVuZCA9ICdlbmQnO1xuZXhwb3J0IHZhciBjbGlwcGluZ1BhcmVudHMgPSAnY2xpcHBpbmdQYXJlbnRzJztcbmV4cG9ydCB2YXIgdmlld3BvcnQgPSAndmlld3BvcnQnO1xuZXhwb3J0IHZhciBwb3BwZXIgPSAncG9wcGVyJztcbmV4cG9ydCB2YXIgcmVmZXJlbmNlID0gJ3JlZmVyZW5jZSc7XG5leHBvcnQgdmFyIHZhcmlhdGlvblBsYWNlbWVudHMgPSAvKiNfX1BVUkVfXyovYmFzZVBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50ICsgXCItXCIgKyBzdGFydCwgcGxhY2VtZW50ICsgXCItXCIgKyBlbmRdKTtcbn0sIFtdKTtcbmV4cG9ydCB2YXIgcGxhY2VtZW50cyA9IC8qI19fUFVSRV9fKi9bXS5jb25jYXQoYmFzZVBsYWNlbWVudHMsIFthdXRvXSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICByZXR1cm4gYWNjLmNvbmNhdChbcGxhY2VtZW50LCBwbGFjZW1lbnQgKyBcIi1cIiArIHN0YXJ0LCBwbGFjZW1lbnQgKyBcIi1cIiArIGVuZF0pO1xufSwgW10pOyAvLyBtb2RpZmllcnMgdGhhdCBuZWVkIHRvIHJlYWQgdGhlIERPTVxuXG5leHBvcnQgdmFyIGJlZm9yZVJlYWQgPSAnYmVmb3JlUmVhZCc7XG5leHBvcnQgdmFyIHJlYWQgPSAncmVhZCc7XG5leHBvcnQgdmFyIGFmdGVyUmVhZCA9ICdhZnRlclJlYWQnOyAvLyBwdXJlLWxvZ2ljIG1vZGlmaWVyc1xuXG5leHBvcnQgdmFyIGJlZm9yZU1haW4gPSAnYmVmb3JlTWFpbic7XG5leHBvcnQgdmFyIG1haW4gPSAnbWFpbic7XG5leHBvcnQgdmFyIGFmdGVyTWFpbiA9ICdhZnRlck1haW4nOyAvLyBtb2RpZmllciB3aXRoIHRoZSBwdXJwb3NlIHRvIHdyaXRlIHRvIHRoZSBET00gKG9yIHdyaXRlIGludG8gYSBmcmFtZXdvcmsgc3RhdGUpXG5cbmV4cG9ydCB2YXIgYmVmb3JlV3JpdGUgPSAnYmVmb3JlV3JpdGUnO1xuZXhwb3J0IHZhciB3cml0ZSA9ICd3cml0ZSc7XG5leHBvcnQgdmFyIGFmdGVyV3JpdGUgPSAnYWZ0ZXJXcml0ZSc7XG5leHBvcnQgdmFyIG1vZGlmaWVyUGhhc2VzID0gW2JlZm9yZVJlYWQsIHJlYWQsIGFmdGVyUmVhZCwgYmVmb3JlTWFpbiwgbWFpbiwgYWZ0ZXJNYWluLCBiZWZvcmVXcml0ZSwgd3JpdGUsIGFmdGVyV3JpdGVdOyIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXROb2RlTmFtZShlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50ID8gKGVsZW1lbnQubm9kZU5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRXaW5kb3cobm9kZSkge1xuICBpZiAobm9kZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHdpbmRvdztcbiAgfVxuXG4gIGlmIChub2RlLnRvU3RyaW5nKCkgIT09ICdbb2JqZWN0IFdpbmRvd10nKSB7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSBub2RlLm93bmVyRG9jdW1lbnQ7XG4gICAgcmV0dXJuIG93bmVyRG9jdW1lbnQgPyBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdyA6IHdpbmRvdztcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufSIsICJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5FbGVtZW50O1xuICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIE93bkVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQobm9kZSkge1xuICB2YXIgT3duRWxlbWVudCA9IGdldFdpbmRvdyhub2RlKS5IVE1MRWxlbWVudDtcbiAgcmV0dXJuIG5vZGUgaW5zdGFuY2VvZiBPd25FbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZnVuY3Rpb24gaXNTaGFkb3dSb290KG5vZGUpIHtcbiAgLy8gSUUgMTEgaGFzIG5vIFNoYWRvd1Jvb3RcbiAgaWYgKHR5cGVvZiBTaGFkb3dSb290ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBPd25FbGVtZW50ID0gZ2V0V2luZG93KG5vZGUpLlNoYWRvd1Jvb3Q7XG4gIHJldHVybiBub2RlIGluc3RhbmNlb2YgT3duRWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgU2hhZG93Um9vdDtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50LCBpc1NoYWRvd1Jvb3QgfTsiLCAiaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi4vZG9tLXV0aWxzL2luc3RhbmNlT2YuanNcIjsgLy8gVGhpcyBtb2RpZmllciB0YWtlcyB0aGUgc3R5bGVzIHByZXBhcmVkIGJ5IHRoZSBgY29tcHV0ZVN0eWxlc2AgbW9kaWZpZXJcbi8vIGFuZCBhcHBsaWVzIHRoZW0gdG8gdGhlIEhUTUxFbGVtZW50cyBzdWNoIGFzIHBvcHBlciBhbmQgYXJyb3dcblxuZnVuY3Rpb24gYXBwbHlTdHlsZXMoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlO1xuICBPYmplY3Qua2V5cyhzdGF0ZS5lbGVtZW50cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgIHZhciBzdHlsZSA9IHN0YXRlLnN0eWxlc1tuYW1lXSB8fCB7fTtcbiAgICB2YXIgYXR0cmlidXRlcyA9IHN0YXRlLmF0dHJpYnV0ZXNbbmFtZV0gfHwge307XG4gICAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1tuYW1lXTsgLy8gYXJyb3cgaXMgb3B0aW9uYWwgKyB2aXJ0dWFsIGVsZW1lbnRzXG5cbiAgICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgIWdldE5vZGVOYW1lKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBGbG93IGRvZXNuJ3Qgc3VwcG9ydCB0byBleHRlbmQgdGhpcyBwcm9wZXJ0eSwgYnV0IGl0J3MgdGhlIG1vc3RcbiAgICAvLyBlZmZlY3RpdmUgd2F5IHRvIGFwcGx5IHN0eWxlcyB0byBhbiBIVE1MRWxlbWVudFxuICAgIC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXVxuXG5cbiAgICBPYmplY3QuYXNzaWduKGVsZW1lbnQuc3R5bGUsIHN0eWxlKTtcbiAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB2YXIgdmFsdWUgPSBhdHRyaWJ1dGVzW25hbWVdO1xuXG4gICAgICBpZiAodmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUgPT09IHRydWUgPyAnJyA6IHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZTtcbiAgdmFyIGluaXRpYWxTdHlsZXMgPSB7XG4gICAgcG9wcGVyOiB7XG4gICAgICBwb3NpdGlvbjogc3RhdGUub3B0aW9ucy5zdHJhdGVneSxcbiAgICAgIGxlZnQ6ICcwJyxcbiAgICAgIHRvcDogJzAnLFxuICAgICAgbWFyZ2luOiAnMCdcbiAgICB9LFxuICAgIGFycm93OiB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJ1xuICAgIH0sXG4gICAgcmVmZXJlbmNlOiB7fVxuICB9O1xuICBPYmplY3QuYXNzaWduKHN0YXRlLmVsZW1lbnRzLnBvcHBlci5zdHlsZSwgaW5pdGlhbFN0eWxlcy5wb3BwZXIpO1xuICBzdGF0ZS5zdHlsZXMgPSBpbml0aWFsU3R5bGVzO1xuXG4gIGlmIChzdGF0ZS5lbGVtZW50cy5hcnJvdykge1xuICAgIE9iamVjdC5hc3NpZ24oc3RhdGUuZWxlbWVudHMuYXJyb3cuc3R5bGUsIGluaXRpYWxTdHlsZXMuYXJyb3cpO1xuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBPYmplY3Qua2V5cyhzdGF0ZS5lbGVtZW50cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgdmFyIGVsZW1lbnQgPSBzdGF0ZS5lbGVtZW50c1tuYW1lXTtcbiAgICAgIHZhciBhdHRyaWJ1dGVzID0gc3RhdGUuYXR0cmlidXRlc1tuYW1lXSB8fCB7fTtcbiAgICAgIHZhciBzdHlsZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhzdGF0ZS5zdHlsZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBzdGF0ZS5zdHlsZXNbbmFtZV0gOiBpbml0aWFsU3R5bGVzW25hbWVdKTsgLy8gU2V0IGFsbCB2YWx1ZXMgdG8gYW4gZW1wdHkgc3RyaW5nIHRvIHVuc2V0IHRoZW1cblxuICAgICAgdmFyIHN0eWxlID0gc3R5bGVQcm9wZXJ0aWVzLnJlZHVjZShmdW5jdGlvbiAoc3R5bGUsIHByb3BlcnR5KSB7XG4gICAgICAgIHN0eWxlW3Byb3BlcnR5XSA9ICcnO1xuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgICB9LCB7fSk7IC8vIGFycm93IGlzIG9wdGlvbmFsICsgdmlydHVhbCBlbGVtZW50c1xuXG4gICAgICBpZiAoIWlzSFRNTEVsZW1lbnQoZWxlbWVudCkgfHwgIWdldE5vZGVOYW1lKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50LnN0eWxlLCBzdHlsZSk7XG4gICAgICBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGUpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnYXBwbHlTdHlsZXMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ3dyaXRlJyxcbiAgZm46IGFwcGx5U3R5bGVzLFxuICBlZmZlY3Q6IGVmZmVjdCxcbiAgcmVxdWlyZXM6IFsnY29tcHV0ZVN0eWxlcyddXG59OyIsICJpbXBvcnQgeyBhdXRvIH0gZnJvbSBcIi4uL2VudW1zLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG59IiwgImV4cG9ydCB2YXIgbWF4ID0gTWF0aC5tYXg7XG5leHBvcnQgdmFyIG1pbiA9IE1hdGgubWluO1xuZXhwb3J0IHZhciByb3VuZCA9IE1hdGgucm91bmQ7IiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFVBU3RyaW5nKCkge1xuICB2YXIgdWFEYXRhID0gbmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7XG5cbiAgaWYgKHVhRGF0YSAhPSBudWxsICYmIHVhRGF0YS5icmFuZHMgJiYgQXJyYXkuaXNBcnJheSh1YURhdGEuYnJhbmRzKSkge1xuICAgIHJldHVybiB1YURhdGEuYnJhbmRzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW0uYnJhbmQgKyBcIi9cIiArIGl0ZW0udmVyc2lvbjtcbiAgICB9KS5qb2luKCcgJyk7XG4gIH1cblxuICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudDtcbn0iLCAiaW1wb3J0IGdldFVBU3RyaW5nIGZyb20gXCIuLi91dGlscy91c2VyQWdlbnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzTGF5b3V0Vmlld3BvcnQoKSB7XG4gIHJldHVybiAhL14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChnZXRVQVN0cmluZygpKTtcbn0iLCAiaW1wb3J0IHsgaXNFbGVtZW50LCBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBpc0xheW91dFZpZXdwb3J0IGZyb20gXCIuL2lzTGF5b3V0Vmlld3BvcnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50LCBpbmNsdWRlU2NhbGUsIGlzRml4ZWRTdHJhdGVneSkge1xuICBpZiAoaW5jbHVkZVNjYWxlID09PSB2b2lkIDApIHtcbiAgICBpbmNsdWRlU2NhbGUgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc0ZpeGVkU3RyYXRlZ3kgPT09IHZvaWQgMCkge1xuICAgIGlzRml4ZWRTdHJhdGVneSA9IGZhbHNlO1xuICB9XG5cbiAgdmFyIGNsaWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB2YXIgc2NhbGVYID0gMTtcbiAgdmFyIHNjYWxlWSA9IDE7XG5cbiAgaWYgKGluY2x1ZGVTY2FsZSAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgc2NhbGVYID0gZWxlbWVudC5vZmZzZXRXaWR0aCA+IDAgPyByb3VuZChjbGllbnRSZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMSA6IDE7XG4gICAgc2NhbGVZID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgPiAwID8gcm91bmQoY2xpZW50UmVjdC5oZWlnaHQpIC8gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMSA6IDE7XG4gIH1cblxuICB2YXIgX3JlZiA9IGlzRWxlbWVudChlbGVtZW50KSA/IGdldFdpbmRvdyhlbGVtZW50KSA6IHdpbmRvdyxcbiAgICAgIHZpc3VhbFZpZXdwb3J0ID0gX3JlZi52aXN1YWxWaWV3cG9ydDtcblxuICB2YXIgYWRkVmlzdWFsT2Zmc2V0cyA9ICFpc0xheW91dFZpZXdwb3J0KCkgJiYgaXNGaXhlZFN0cmF0ZWd5O1xuICB2YXIgeCA9IChjbGllbnRSZWN0LmxlZnQgKyAoYWRkVmlzdWFsT2Zmc2V0cyAmJiB2aXN1YWxWaWV3cG9ydCA/IHZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnQgOiAwKSkgLyBzY2FsZVg7XG4gIHZhciB5ID0gKGNsaWVudFJlY3QudG9wICsgKGFkZFZpc3VhbE9mZnNldHMgJiYgdmlzdWFsVmlld3BvcnQgPyB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3AgOiAwKSkgLyBzY2FsZVk7XG4gIHZhciB3aWR0aCA9IGNsaWVudFJlY3Qud2lkdGggLyBzY2FsZVg7XG4gIHZhciBoZWlnaHQgPSBjbGllbnRSZWN0LmhlaWdodCAvIHNjYWxlWTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgdG9wOiB5LFxuICAgIHJpZ2h0OiB4ICsgd2lkdGgsXG4gICAgYm90dG9tOiB5ICsgaGVpZ2h0LFxuICAgIGxlZnQ6IHgsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59IiwgImltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7IC8vIFJldHVybnMgdGhlIGxheW91dCByZWN0IG9mIGFuIGVsZW1lbnQgcmVsYXRpdmUgdG8gaXRzIG9mZnNldFBhcmVudC4gTGF5b3V0XG4vLyBtZWFucyBpdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRyYW5zZm9ybXMuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldExheW91dFJlY3QoZWxlbWVudCkge1xuICB2YXIgY2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50KTsgLy8gVXNlIHRoZSBjbGllbnRSZWN0IHNpemVzIGlmIGl0J3Mgbm90IGJlZW4gdHJhbnNmb3JtZWQuXG4gIC8vIEZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTIyM1xuXG4gIHZhciB3aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gIHZhciBoZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICBpZiAoTWF0aC5hYnMoY2xpZW50UmVjdC53aWR0aCAtIHdpZHRoKSA8PSAxKSB7XG4gICAgd2lkdGggPSBjbGllbnRSZWN0LndpZHRoO1xuICB9XG5cbiAgaWYgKE1hdGguYWJzKGNsaWVudFJlY3QuaGVpZ2h0IC0gaGVpZ2h0KSA8PSAxKSB7XG4gICAgaGVpZ2h0ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHg6IGVsZW1lbnQub2Zmc2V0TGVmdCxcbiAgICB5OiBlbGVtZW50Lm9mZnNldFRvcCxcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHRcbiAgfTtcbn0iLCAiaW1wb3J0IHsgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29udGFpbnMocGFyZW50LCBjaGlsZCkge1xuICB2YXIgcm9vdE5vZGUgPSBjaGlsZC5nZXRSb290Tm9kZSAmJiBjaGlsZC5nZXRSb290Tm9kZSgpOyAvLyBGaXJzdCwgYXR0ZW1wdCB3aXRoIGZhc3RlciBuYXRpdmUgbWV0aG9kXG5cbiAgaWYgKHBhcmVudC5jb250YWlucyhjaGlsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSAvLyB0aGVuIGZhbGxiYWNrIHRvIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiB3aXRoIFNoYWRvdyBET00gc3VwcG9ydFxuICBlbHNlIGlmIChyb290Tm9kZSAmJiBpc1NoYWRvd1Jvb3Qocm9vdE5vZGUpKSB7XG4gICAgICB2YXIgbmV4dCA9IGNoaWxkO1xuXG4gICAgICBkbyB7XG4gICAgICAgIGlmIChuZXh0ICYmIHBhcmVudC5pc1NhbWVOb2RlKG5leHQpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddOiBuZWVkIGEgYmV0dGVyIHdheSB0byBoYW5kbGUgdGhpcy4uLlxuXG5cbiAgICAgICAgbmV4dCA9IG5leHQucGFyZW50Tm9kZSB8fCBuZXh0Lmhvc3Q7XG4gICAgICB9IHdoaWxlIChuZXh0KTtcbiAgICB9IC8vIEdpdmUgdXAsIHRoZSByZXN1bHQgaXMgZmFsc2VcblxuXG4gIHJldHVybiBmYWxzZTtcbn0iLCAiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xuICByZXR1cm4gZ2V0V2luZG93KGVsZW1lbnQpLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG59IiwgImltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNUYWJsZUVsZW1lbnQoZWxlbWVudCkge1xuICByZXR1cm4gWyd0YWJsZScsICd0ZCcsICd0aCddLmluZGV4T2YoZ2V0Tm9kZU5hbWUoZWxlbWVudCkpID49IDA7XG59IiwgImltcG9ydCB7IGlzRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSB7XG4gIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgcmV0dXJuICgoaXNFbGVtZW50KGVsZW1lbnQpID8gZWxlbWVudC5vd25lckRvY3VtZW50IDogLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gIGVsZW1lbnQuZG9jdW1lbnQpIHx8IHdpbmRvdy5kb2N1bWVudCkuZG9jdW1lbnRFbGVtZW50O1xufSIsICJpbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgeyBpc1NoYWRvd1Jvb3QgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRQYXJlbnROb2RlKGVsZW1lbnQpIHtcbiAgaWYgKGdldE5vZGVOYW1lKGVsZW1lbnQpID09PSAnaHRtbCcpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiAoLy8gdGhpcyBpcyBhIHF1aWNrZXIgKGJ1dCBsZXNzIHR5cGUgc2FmZSkgd2F5IHRvIHNhdmUgcXVpdGUgc29tZSBieXRlcyBmcm9tIHRoZSBidW5kbGVcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG4gICAgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG4gICAgZWxlbWVudC5hc3NpZ25lZFNsb3QgfHwgLy8gc3RlcCBpbnRvIHRoZSBzaGFkb3cgRE9NIG9mIHRoZSBwYXJlbnQgb2YgYSBzbG90dGVkIG5vZGVcbiAgICBlbGVtZW50LnBhcmVudE5vZGUgfHwgKCAvLyBET00gRWxlbWVudCBkZXRlY3RlZFxuICAgIGlzU2hhZG93Um9vdChlbGVtZW50KSA/IGVsZW1lbnQuaG9zdCA6IG51bGwpIHx8IC8vIFNoYWRvd1Jvb3QgZGV0ZWN0ZWRcbiAgICAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogSFRNTEVsZW1lbnQgaXMgYSBOb2RlXG4gICAgZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpIC8vIGZhbGxiYWNrXG5cbiAgKTtcbn0iLCAiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IGdldENvbXB1dGVkU3R5bGUgZnJvbSBcIi4vZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCwgaXNTaGFkb3dSb290IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGlzVGFibGVFbGVtZW50IGZyb20gXCIuL2lzVGFibGVFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgZ2V0VUFTdHJpbmcgZnJvbSBcIi4uL3V0aWxzL3VzZXJBZ2VudC5qc1wiO1xuXG5mdW5jdGlvbiBnZXRUcnVlT2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgaWYgKCFpc0hUTUxFbGVtZW50KGVsZW1lbnQpIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvODM3XG4gIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lm9mZnNldFBhcmVudDtcbn0gLy8gYC5vZmZzZXRQYXJlbnRgIHJlcG9ydHMgYG51bGxgIGZvciBmaXhlZCBlbGVtZW50cywgd2hpbGUgYWJzb2x1dGUgZWxlbWVudHNcbi8vIHJldHVybiB0aGUgY29udGFpbmluZyBibG9ja1xuXG5cbmZ1bmN0aW9uIGdldENvbnRhaW5pbmdCbG9jayhlbGVtZW50KSB7XG4gIHZhciBpc0ZpcmVmb3ggPSAvZmlyZWZveC9pLnRlc3QoZ2V0VUFTdHJpbmcoKSk7XG4gIHZhciBpc0lFID0gL1RyaWRlbnQvaS50ZXN0KGdldFVBU3RyaW5nKCkpO1xuXG4gIGlmIChpc0lFICYmIGlzSFRNTEVsZW1lbnQoZWxlbWVudCkpIHtcbiAgICAvLyBJbiBJRSA5LCAxMCBhbmQgMTEgZml4ZWQgZWxlbWVudHMgY29udGFpbmluZyBibG9jayBpcyBhbHdheXMgZXN0YWJsaXNoZWQgYnkgdGhlIHZpZXdwb3J0XG4gICAgdmFyIGVsZW1lbnRDc3MgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuXG4gICAgaWYgKGVsZW1lbnRDc3MucG9zaXRpb24gPT09ICdmaXhlZCcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjdXJyZW50Tm9kZSA9IGdldFBhcmVudE5vZGUoZWxlbWVudCk7XG5cbiAgaWYgKGlzU2hhZG93Um9vdChjdXJyZW50Tm9kZSkpIHtcbiAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLmhvc3Q7XG4gIH1cblxuICB3aGlsZSAoaXNIVE1MRWxlbWVudChjdXJyZW50Tm9kZSkgJiYgWydodG1sJywgJ2JvZHknXS5pbmRleE9mKGdldE5vZGVOYW1lKGN1cnJlbnROb2RlKSkgPCAwKSB7XG4gICAgdmFyIGNzcyA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudE5vZGUpOyAvLyBUaGlzIGlzIG5vbi1leGhhdXN0aXZlIGJ1dCBjb3ZlcnMgdGhlIG1vc3QgY29tbW9uIENTUyBwcm9wZXJ0aWVzIHRoYXRcbiAgICAvLyBjcmVhdGUgYSBjb250YWluaW5nIGJsb2NrLlxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9Db250YWluaW5nX2Jsb2NrI2lkZW50aWZ5aW5nX3RoZV9jb250YWluaW5nX2Jsb2NrXG5cbiAgICBpZiAoY3NzLnRyYW5zZm9ybSAhPT0gJ25vbmUnIHx8IGNzcy5wZXJzcGVjdGl2ZSAhPT0gJ25vbmUnIHx8IGNzcy5jb250YWluID09PSAncGFpbnQnIHx8IFsndHJhbnNmb3JtJywgJ3BlcnNwZWN0aXZlJ10uaW5kZXhPZihjc3Mud2lsbENoYW5nZSkgIT09IC0xIHx8IGlzRmlyZWZveCAmJiBjc3Mud2lsbENoYW5nZSA9PT0gJ2ZpbHRlcicgfHwgaXNGaXJlZm94ICYmIGNzcy5maWx0ZXIgJiYgY3NzLmZpbHRlciAhPT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn0gLy8gR2V0cyB0aGUgY2xvc2VzdCBhbmNlc3RvciBwb3NpdGlvbmVkIGVsZW1lbnQuIEhhbmRsZXMgc29tZSBlZGdlIGNhc2VzLFxuLy8gc3VjaCBhcyB0YWJsZSBhbmNlc3RvcnMgYW5kIGNyb3NzIGJyb3dzZXIgYnVncy5cblxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPZmZzZXRQYXJlbnQoZWxlbWVudCkge1xuICB2YXIgd2luZG93ID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgb2Zmc2V0UGFyZW50ID0gZ2V0VHJ1ZU9mZnNldFBhcmVudChlbGVtZW50KTtcblxuICB3aGlsZSAob2Zmc2V0UGFyZW50ICYmIGlzVGFibGVFbGVtZW50KG9mZnNldFBhcmVudCkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuICAgIG9mZnNldFBhcmVudCA9IGdldFRydWVPZmZzZXRQYXJlbnQob2Zmc2V0UGFyZW50KTtcbiAgfVxuXG4gIGlmIChvZmZzZXRQYXJlbnQgJiYgKGdldE5vZGVOYW1lKG9mZnNldFBhcmVudCkgPT09ICdodG1sJyB8fCBnZXROb2RlTmFtZShvZmZzZXRQYXJlbnQpID09PSAnYm9keScgJiYgZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9XG5cbiAgcmV0dXJuIG9mZnNldFBhcmVudCB8fCBnZXRDb250YWluaW5nQmxvY2soZWxlbWVudCkgfHwgd2luZG93O1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQocGxhY2VtZW50KSB7XG4gIHJldHVybiBbJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBsYWNlbWVudCkgPj0gMCA/ICd4JyA6ICd5Jztcbn0iLCAiaW1wb3J0IHsgbWF4IGFzIG1hdGhNYXgsIG1pbiBhcyBtYXRoTWluIH0gZnJvbSBcIi4vbWF0aC5qc1wiO1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhpbihtaW4sIHZhbHVlLCBtYXgpIHtcbiAgcmV0dXJuIG1hdGhNYXgobWluLCBtYXRoTWluKHZhbHVlLCBtYXgpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB3aXRoaW5NYXhDbGFtcChtaW4sIHZhbHVlLCBtYXgpIHtcbiAgdmFyIHYgPSB3aXRoaW4obWluLCB2YWx1ZSwgbWF4KTtcbiAgcmV0dXJuIHYgPiBtYXggPyBtYXggOiB2O1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRGcmVzaFNpZGVPYmplY3QoKSB7XG4gIHJldHVybiB7XG4gICAgdG9wOiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwXG4gIH07XG59IiwgImltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4vZ2V0RnJlc2hTaWRlT2JqZWN0LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtZXJnZVBhZGRpbmdPYmplY3QocGFkZGluZ09iamVjdCkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZ2V0RnJlc2hTaWRlT2JqZWN0KCksIHBhZGRpbmdPYmplY3QpO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBleHBhbmRUb0hhc2hNYXAodmFsdWUsIGtleXMpIHtcbiAgcmV0dXJuIGtleXMucmVkdWNlKGZ1bmN0aW9uIChoYXNoTWFwLCBrZXkpIHtcbiAgICBoYXNoTWFwW2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gaGFzaE1hcDtcbiAgfSwge30pO1xufSIsICJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4uL2RvbS11dGlscy9jb250YWlucy5qc1wiO1xuaW1wb3J0IGdldE9mZnNldFBhcmVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4gfSBmcm9tIFwiLi4vdXRpbHMvd2l0aGluLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuLi91dGlscy9tZXJnZVBhZGRpbmdPYmplY3QuanNcIjtcbmltcG9ydCBleHBhbmRUb0hhc2hNYXAgZnJvbSBcIi4uL3V0aWxzL2V4cGFuZFRvSGFzaE1hcC5qc1wiO1xuaW1wb3J0IHsgbGVmdCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB0b3AsIGJvdHRvbSB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB0b1BhZGRpbmdPYmplY3QgPSBmdW5jdGlvbiB0b1BhZGRpbmdPYmplY3QocGFkZGluZywgc3RhdGUpIHtcbiAgcGFkZGluZyA9IHR5cGVvZiBwYWRkaW5nID09PSAnZnVuY3Rpb24nID8gcGFkZGluZyhPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5yZWN0cywge1xuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pKSA6IHBhZGRpbmc7XG4gIHJldHVybiBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xufTtcblxuZnVuY3Rpb24gYXJyb3coX3JlZikge1xuICB2YXIgX3N0YXRlJG1vZGlmaWVyc0RhdGEkO1xuXG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lLFxuICAgICAgb3B0aW9ucyA9IF9yZWYub3B0aW9ucztcbiAgdmFyIGFycm93RWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93O1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cztcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBheGlzID0gZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50KGJhc2VQbGFjZW1lbnQpO1xuICB2YXIgaXNWZXJ0aWNhbCA9IFtsZWZ0LCByaWdodF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSA+PSAwO1xuICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICBpZiAoIWFycm93RWxlbWVudCB8fCAhcG9wcGVyT2Zmc2V0cykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwYWRkaW5nT2JqZWN0ID0gdG9QYWRkaW5nT2JqZWN0KG9wdGlvbnMucGFkZGluZywgc3RhdGUpO1xuICB2YXIgYXJyb3dSZWN0ID0gZ2V0TGF5b3V0UmVjdChhcnJvd0VsZW1lbnQpO1xuICB2YXIgbWluUHJvcCA9IGF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gIHZhciBtYXhQcm9wID0gYXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gIHZhciBlbmREaWZmID0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2xlbl0gKyBzdGF0ZS5yZWN0cy5yZWZlcmVuY2VbYXhpc10gLSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucG9wcGVyW2xlbl07XG4gIHZhciBzdGFydERpZmYgPSBwb3BwZXJPZmZzZXRzW2F4aXNdIC0gc3RhdGUucmVjdHMucmVmZXJlbmNlW2F4aXNdO1xuICB2YXIgYXJyb3dPZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQoYXJyb3dFbGVtZW50KTtcbiAgdmFyIGNsaWVudFNpemUgPSBhcnJvd09mZnNldFBhcmVudCA/IGF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudEhlaWdodCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50V2lkdGggfHwgMCA6IDA7XG4gIHZhciBjZW50ZXJUb1JlZmVyZW5jZSA9IGVuZERpZmYgLyAyIC0gc3RhcnREaWZmIC8gMjsgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBkb2Vzbid0IG92ZXJmbG93IHRoZSBwb3BwZXIgaWYgdGhlIGNlbnRlciBwb2ludCBpc1xuICAvLyBvdXRzaWRlIG9mIHRoZSBwb3BwZXIgYm91bmRzXG5cbiAgdmFyIG1pbiA9IHBhZGRpbmdPYmplY3RbbWluUHJvcF07XG4gIHZhciBtYXggPSBjbGllbnRTaXplIC0gYXJyb3dSZWN0W2xlbl0gLSBwYWRkaW5nT2JqZWN0W21heFByb3BdO1xuICB2YXIgY2VudGVyID0gY2xpZW50U2l6ZSAvIDIgLSBhcnJvd1JlY3RbbGVuXSAvIDIgKyBjZW50ZXJUb1JlZmVyZW5jZTtcbiAgdmFyIG9mZnNldCA9IHdpdGhpbihtaW4sIGNlbnRlciwgbWF4KTsgLy8gUHJldmVudHMgYnJlYWtpbmcgc3ludGF4IGhpZ2hsaWdodGluZy4uLlxuXG4gIHZhciBheGlzUHJvcCA9IGF4aXM7XG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSAoX3N0YXRlJG1vZGlmaWVyc0RhdGEkID0ge30sIF9zdGF0ZSRtb2RpZmllcnNEYXRhJFtheGlzUHJvcF0gPSBvZmZzZXQsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJC5jZW50ZXJPZmZzZXQgPSBvZmZzZXQgLSBjZW50ZXIsIF9zdGF0ZSRtb2RpZmllcnNEYXRhJCk7XG59XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmMikge1xuICB2YXIgc3RhdGUgPSBfcmVmMi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmMi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkZWxlbWVudCA9IG9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGFycm93RWxlbWVudCA9IF9vcHRpb25zJGVsZW1lbnQgPT09IHZvaWQgMCA/ICdbZGF0YS1wb3BwZXItYXJyb3ddJyA6IF9vcHRpb25zJGVsZW1lbnQ7XG5cbiAgaWYgKGFycm93RWxlbWVudCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIENTUyBzZWxlY3RvclxuXG5cbiAgaWYgKHR5cGVvZiBhcnJvd0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgYXJyb3dFbGVtZW50ID0gc3RhdGUuZWxlbWVudHMucG9wcGVyLnF1ZXJ5U2VsZWN0b3IoYXJyb3dFbGVtZW50KTtcblxuICAgIGlmICghYXJyb3dFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgaWYgKCFjb250YWlucyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIsIGFycm93RWxlbWVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBzdGF0ZS5lbGVtZW50cy5hcnJvdyA9IGFycm93RWxlbWVudDtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2Fycm93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IGFycm93LFxuICBlZmZlY3Q6IGVmZmVjdCxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICByZXF1aXJlc0lmRXhpc3RzOiBbJ3ByZXZlbnRPdmVyZmxvdyddXG59OyIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRWYXJpYXRpb24ocGxhY2VtZW50KSB7XG4gIHJldHVybiBwbGFjZW1lbnQuc3BsaXQoJy0nKVsxXTtcbn0iLCAiaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLCBlbmQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRPZmZzZXRQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRXaW5kb3cuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4uL2RvbS11dGlscy9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0Q29tcHV0ZWRTdHlsZS5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbnZhciB1bnNldFNpZGVzID0ge1xuICB0b3A6ICdhdXRvJyxcbiAgcmlnaHQ6ICdhdXRvJyxcbiAgYm90dG9tOiAnYXV0bycsXG4gIGxlZnQ6ICdhdXRvJ1xufTsgLy8gUm91bmQgdGhlIG9mZnNldHMgdG8gdGhlIG5lYXJlc3Qgc3VpdGFibGUgc3VicGl4ZWwgYmFzZWQgb24gdGhlIERQUi5cbi8vIFpvb21pbmcgY2FuIGNoYW5nZSB0aGUgRFBSLCBidXQgaXQgc2VlbXMgdG8gcmVwb3J0IGEgdmFsdWUgdGhhdCB3aWxsXG4vLyBjbGVhbmx5IGRpdmlkZSB0aGUgdmFsdWVzIGludG8gdGhlIGFwcHJvcHJpYXRlIHN1YnBpeGVscy5cblxuZnVuY3Rpb24gcm91bmRPZmZzZXRzQnlEUFIoX3JlZiwgd2luKSB7XG4gIHZhciB4ID0gX3JlZi54LFxuICAgICAgeSA9IF9yZWYueTtcbiAgdmFyIGRwciA9IHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG4gIHJldHVybiB7XG4gICAgeDogcm91bmQoeCAqIGRwcikgLyBkcHIgfHwgMCxcbiAgICB5OiByb3VuZCh5ICogZHByKSAvIGRwciB8fCAwXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb1N0eWxlcyhfcmVmMikge1xuICB2YXIgX09iamVjdCRhc3NpZ24yO1xuXG4gIHZhciBwb3BwZXIgPSBfcmVmMi5wb3BwZXIsXG4gICAgICBwb3BwZXJSZWN0ID0gX3JlZjIucG9wcGVyUmVjdCxcbiAgICAgIHBsYWNlbWVudCA9IF9yZWYyLnBsYWNlbWVudCxcbiAgICAgIHZhcmlhdGlvbiA9IF9yZWYyLnZhcmlhdGlvbixcbiAgICAgIG9mZnNldHMgPSBfcmVmMi5vZmZzZXRzLFxuICAgICAgcG9zaXRpb24gPSBfcmVmMi5wb3NpdGlvbixcbiAgICAgIGdwdUFjY2VsZXJhdGlvbiA9IF9yZWYyLmdwdUFjY2VsZXJhdGlvbixcbiAgICAgIGFkYXB0aXZlID0gX3JlZjIuYWRhcHRpdmUsXG4gICAgICByb3VuZE9mZnNldHMgPSBfcmVmMi5yb3VuZE9mZnNldHMsXG4gICAgICBpc0ZpeGVkID0gX3JlZjIuaXNGaXhlZDtcbiAgdmFyIF9vZmZzZXRzJHggPSBvZmZzZXRzLngsXG4gICAgICB4ID0gX29mZnNldHMkeCA9PT0gdm9pZCAwID8gMCA6IF9vZmZzZXRzJHgsXG4gICAgICBfb2Zmc2V0cyR5ID0gb2Zmc2V0cy55LFxuICAgICAgeSA9IF9vZmZzZXRzJHkgPT09IHZvaWQgMCA/IDAgOiBfb2Zmc2V0cyR5O1xuXG4gIHZhciBfcmVmMyA9IHR5cGVvZiByb3VuZE9mZnNldHMgPT09ICdmdW5jdGlvbicgPyByb3VuZE9mZnNldHMoe1xuICAgIHg6IHgsXG4gICAgeTogeVxuICB9KSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjMueDtcbiAgeSA9IF9yZWYzLnk7XG4gIHZhciBoYXNYID0gb2Zmc2V0cy5oYXNPd25Qcm9wZXJ0eSgneCcpO1xuICB2YXIgaGFzWSA9IG9mZnNldHMuaGFzT3duUHJvcGVydHkoJ3knKTtcbiAgdmFyIHNpZGVYID0gbGVmdDtcbiAgdmFyIHNpZGVZID0gdG9wO1xuICB2YXIgd2luID0gd2luZG93O1xuXG4gIGlmIChhZGFwdGl2ZSkge1xuICAgIHZhciBvZmZzZXRQYXJlbnQgPSBnZXRPZmZzZXRQYXJlbnQocG9wcGVyKTtcbiAgICB2YXIgaGVpZ2h0UHJvcCA9ICdjbGllbnRIZWlnaHQnO1xuICAgIHZhciB3aWR0aFByb3AgPSAnY2xpZW50V2lkdGgnO1xuXG4gICAgaWYgKG9mZnNldFBhcmVudCA9PT0gZ2V0V2luZG93KHBvcHBlcikpIHtcbiAgICAgIG9mZnNldFBhcmVudCA9IGdldERvY3VtZW50RWxlbWVudChwb3BwZXIpO1xuXG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZShvZmZzZXRQYXJlbnQpLnBvc2l0aW9uICE9PSAnc3RhdGljJyAmJiBwb3NpdGlvbiA9PT0gJ2Fic29sdXRlJykge1xuICAgICAgICBoZWlnaHRQcm9wID0gJ3Njcm9sbEhlaWdodCc7XG4gICAgICAgIHdpZHRoUHJvcCA9ICdzY3JvbGxXaWR0aCc7XG4gICAgICB9XG4gICAgfSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYXN0XTogZm9yY2UgdHlwZSByZWZpbmVtZW50LCB3ZSBjb21wYXJlIG9mZnNldFBhcmVudCB3aXRoIHdpbmRvdyBhYm92ZSwgYnV0IEZsb3cgZG9lc24ndCBkZXRlY3QgaXRcblxuXG4gICAgb2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50O1xuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gdG9wIHx8IChwbGFjZW1lbnQgPT09IGxlZnQgfHwgcGxhY2VtZW50ID09PSByaWdodCkgJiYgdmFyaWF0aW9uID09PSBlbmQpIHtcbiAgICAgIHNpZGVZID0gYm90dG9tO1xuICAgICAgdmFyIG9mZnNldFkgPSBpc0ZpeGVkICYmIG9mZnNldFBhcmVudCA9PT0gd2luICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC5oZWlnaHQgOiAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cbiAgICAgIG9mZnNldFBhcmVudFtoZWlnaHRQcm9wXTtcbiAgICAgIHkgLT0gb2Zmc2V0WSAtIHBvcHBlclJlY3QuaGVpZ2h0O1xuICAgICAgeSAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuXG4gICAgaWYgKHBsYWNlbWVudCA9PT0gbGVmdCB8fCAocGxhY2VtZW50ID09PSB0b3AgfHwgcGxhY2VtZW50ID09PSBib3R0b20pICYmIHZhcmlhdGlvbiA9PT0gZW5kKSB7XG4gICAgICBzaWRlWCA9IHJpZ2h0O1xuICAgICAgdmFyIG9mZnNldFggPSBpc0ZpeGVkICYmIG9mZnNldFBhcmVudCA9PT0gd2luICYmIHdpbi52aXN1YWxWaWV3cG9ydCA/IHdpbi52aXN1YWxWaWV3cG9ydC53aWR0aCA6IC8vICRGbG93Rml4TWVbcHJvcC1taXNzaW5nXVxuICAgICAgb2Zmc2V0UGFyZW50W3dpZHRoUHJvcF07XG4gICAgICB4IC09IG9mZnNldFggLSBwb3BwZXJSZWN0LndpZHRoO1xuICAgICAgeCAqPSBncHVBY2NlbGVyYXRpb24gPyAxIDogLTE7XG4gICAgfVxuICB9XG5cbiAgdmFyIGNvbW1vblN0eWxlcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHBvc2l0aW9uOiBwb3NpdGlvblxuICB9LCBhZGFwdGl2ZSAmJiB1bnNldFNpZGVzKTtcblxuICB2YXIgX3JlZjQgPSByb3VuZE9mZnNldHMgPT09IHRydWUgPyByb3VuZE9mZnNldHNCeURQUih7XG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH0sIGdldFdpbmRvdyhwb3BwZXIpKSA6IHtcbiAgICB4OiB4LFxuICAgIHk6IHlcbiAgfTtcblxuICB4ID0gX3JlZjQueDtcbiAgeSA9IF9yZWY0Lnk7XG5cbiAgaWYgKGdwdUFjY2VsZXJhdGlvbikge1xuICAgIHZhciBfT2JqZWN0JGFzc2lnbjtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIChfT2JqZWN0JGFzc2lnbiA9IHt9LCBfT2JqZWN0JGFzc2lnbltzaWRlWV0gPSBoYXNZID8gJzAnIDogJycsIF9PYmplY3QkYXNzaWduW3NpZGVYXSA9IGhhc1ggPyAnMCcgOiAnJywgX09iamVjdCRhc3NpZ24udHJhbnNmb3JtID0gKHdpbi5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpIDw9IDEgPyBcInRyYW5zbGF0ZShcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4KVwiIDogXCJ0cmFuc2xhdGUzZChcIiArIHggKyBcInB4LCBcIiArIHkgKyBcInB4LCAwKVwiLCBfT2JqZWN0JGFzc2lnbikpO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGNvbW1vblN0eWxlcywgKF9PYmplY3QkYXNzaWduMiA9IHt9LCBfT2JqZWN0JGFzc2lnbjJbc2lkZVldID0gaGFzWSA/IHkgKyBcInB4XCIgOiAnJywgX09iamVjdCRhc3NpZ24yW3NpZGVYXSA9IGhhc1ggPyB4ICsgXCJweFwiIDogJycsIF9PYmplY3QkYXNzaWduMi50cmFuc2Zvcm0gPSAnJywgX09iamVjdCRhc3NpZ24yKSk7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVTdHlsZXMoX3JlZjUpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjUuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjUub3B0aW9ucztcbiAgdmFyIF9vcHRpb25zJGdwdUFjY2VsZXJhdCA9IG9wdGlvbnMuZ3B1QWNjZWxlcmF0aW9uLFxuICAgICAgZ3B1QWNjZWxlcmF0aW9uID0gX29wdGlvbnMkZ3B1QWNjZWxlcmF0ID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZ3B1QWNjZWxlcmF0LFxuICAgICAgX29wdGlvbnMkYWRhcHRpdmUgPSBvcHRpb25zLmFkYXB0aXZlLFxuICAgICAgYWRhcHRpdmUgPSBfb3B0aW9ucyRhZGFwdGl2ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJGFkYXB0aXZlLFxuICAgICAgX29wdGlvbnMkcm91bmRPZmZzZXRzID0gb3B0aW9ucy5yb3VuZE9mZnNldHMsXG4gICAgICByb3VuZE9mZnNldHMgPSBfb3B0aW9ucyRyb3VuZE9mZnNldHMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRyb3VuZE9mZnNldHM7XG4gIHZhciBjb21tb25TdHlsZXMgPSB7XG4gICAgcGxhY2VtZW50OiBnZXRCYXNlUGxhY2VtZW50KHN0YXRlLnBsYWNlbWVudCksXG4gICAgdmFyaWF0aW9uOiBnZXRWYXJpYXRpb24oc3RhdGUucGxhY2VtZW50KSxcbiAgICBwb3BwZXI6IHN0YXRlLmVsZW1lbnRzLnBvcHBlcixcbiAgICBwb3BwZXJSZWN0OiBzdGF0ZS5yZWN0cy5wb3BwZXIsXG4gICAgZ3B1QWNjZWxlcmF0aW9uOiBncHVBY2NlbGVyYXRpb24sXG4gICAgaXNGaXhlZDogc3RhdGUub3B0aW9ucy5zdHJhdGVneSA9PT0gJ2ZpeGVkJ1xuICB9O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5wb3BwZXIgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5zdHlsZXMucG9wcGVyLCBtYXBUb1N0eWxlcyhPYmplY3QuYXNzaWduKHt9LCBjb21tb25TdHlsZXMsIHtcbiAgICAgIG9mZnNldHM6IHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cyxcbiAgICAgIHBvc2l0aW9uOiBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgYWRhcHRpdmU6IGFkYXB0aXZlLFxuICAgICAgcm91bmRPZmZzZXRzOiByb3VuZE9mZnNldHNcbiAgICB9KSkpO1xuICB9XG5cbiAgaWYgKHN0YXRlLm1vZGlmaWVyc0RhdGEuYXJyb3cgIT0gbnVsbCkge1xuICAgIHN0YXRlLnN0eWxlcy5hcnJvdyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnN0eWxlcy5hcnJvdywgbWFwVG9TdHlsZXMoT2JqZWN0LmFzc2lnbih7fSwgY29tbW9uU3R5bGVzLCB7XG4gICAgICBvZmZzZXRzOiBzdGF0ZS5tb2RpZmllcnNEYXRhLmFycm93LFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBhZGFwdGl2ZTogZmFsc2UsXG4gICAgICByb3VuZE9mZnNldHM6IHJvdW5kT2Zmc2V0c1xuICAgIH0pKSk7XG4gIH1cblxuICBzdGF0ZS5hdHRyaWJ1dGVzLnBvcHBlciA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmF0dHJpYnV0ZXMucG9wcGVyLCB7XG4gICAgJ2RhdGEtcG9wcGVyLXBsYWNlbWVudCc6IHN0YXRlLnBsYWNlbWVudFxuICB9KTtcbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2NvbXB1dGVTdHlsZXMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ2JlZm9yZVdyaXRlJyxcbiAgZm46IGNvbXB1dGVTdHlsZXMsXG4gIGRhdGE6IHt9XG59OyIsICJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0V2luZG93LmpzXCI7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxudmFyIHBhc3NpdmUgPSB7XG4gIHBhc3NpdmU6IHRydWVcbn07XG5cbmZ1bmN0aW9uIGVmZmVjdChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBpbnN0YW5jZSA9IF9yZWYuaW5zdGFuY2UsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zO1xuICB2YXIgX29wdGlvbnMkc2Nyb2xsID0gb3B0aW9ucy5zY3JvbGwsXG4gICAgICBzY3JvbGwgPSBfb3B0aW9ucyRzY3JvbGwgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRzY3JvbGwsXG4gICAgICBfb3B0aW9ucyRyZXNpemUgPSBvcHRpb25zLnJlc2l6ZSxcbiAgICAgIHJlc2l6ZSA9IF9vcHRpb25zJHJlc2l6ZSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9vcHRpb25zJHJlc2l6ZTtcbiAgdmFyIHdpbmRvdyA9IGdldFdpbmRvdyhzdGF0ZS5lbGVtZW50cy5wb3BwZXIpO1xuICB2YXIgc2Nyb2xsUGFyZW50cyA9IFtdLmNvbmNhdChzdGF0ZS5zY3JvbGxQYXJlbnRzLnJlZmVyZW5jZSwgc3RhdGUuc2Nyb2xsUGFyZW50cy5wb3BwZXIpO1xuXG4gIGlmIChzY3JvbGwpIHtcbiAgICBzY3JvbGxQYXJlbnRzLmZvckVhY2goZnVuY3Rpb24gKHNjcm9sbFBhcmVudCkge1xuICAgICAgc2Nyb2xsUGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfSk7XG4gIH1cblxuICBpZiAocmVzaXplKSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmIChzY3JvbGwpIHtcbiAgICAgIHNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbiAoc2Nyb2xsUGFyZW50KSB7XG4gICAgICAgIHNjcm9sbFBhcmVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBpbnN0YW5jZS51cGRhdGUsIHBhc3NpdmUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc2l6ZSkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGluc3RhbmNlLnVwZGF0ZSwgcGFzc2l2ZSk7XG4gICAgfVxuICB9O1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnZXZlbnRMaXN0ZW5lcnMnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ3dyaXRlJyxcbiAgZm46IGZ1bmN0aW9uIGZuKCkge30sXG4gIGVmZmVjdDogZWZmZWN0LFxuICBkYXRhOiB7fVxufTsiLCAidmFyIGhhc2ggPSB7XG4gIGxlZnQ6ICdyaWdodCcsXG4gIHJpZ2h0OiAnbGVmdCcsXG4gIGJvdHRvbTogJ3RvcCcsXG4gIHRvcDogJ2JvdHRvbSdcbn07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59IiwgInZhciBoYXNoID0ge1xuICBzdGFydDogJ2VuZCcsXG4gIGVuZDogJ3N0YXJ0J1xufTtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldE9wcG9zaXRlVmFyaWF0aW9uUGxhY2VtZW50KHBsYWNlbWVudCkge1xuICByZXR1cm4gcGxhY2VtZW50LnJlcGxhY2UoL3N0YXJ0fGVuZC9nLCBmdW5jdGlvbiAobWF0Y2hlZCkge1xuICAgIHJldHVybiBoYXNoW21hdGNoZWRdO1xuICB9KTtcbn0iLCAiaW1wb3J0IGdldFdpbmRvdyBmcm9tIFwiLi9nZXRXaW5kb3cuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFdpbmRvd1Njcm9sbChub2RlKSB7XG4gIHZhciB3aW4gPSBnZXRXaW5kb3cobm9kZSk7XG4gIHZhciBzY3JvbGxMZWZ0ID0gd2luLnBhZ2VYT2Zmc2V0O1xuICB2YXIgc2Nyb2xsVG9wID0gd2luLnBhZ2VZT2Zmc2V0O1xuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IHNjcm9sbExlZnQsXG4gICAgc2Nyb2xsVG9wOiBzY3JvbGxUb3BcbiAgfTtcbn0iLCAiaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi9nZXRCb3VuZGluZ0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSB7XG4gIC8vIElmIDxodG1sPiBoYXMgYSBDU1Mgd2lkdGggZ3JlYXRlciB0aGFuIHRoZSB2aWV3cG9ydCwgdGhlbiB0aGlzIHdpbGwgYmVcbiAgLy8gaW5jb3JyZWN0IGZvciBSVEwuXG4gIC8vIFBvcHBlciAxIGlzIGJyb2tlbiBpbiB0aGlzIGNhc2UgYW5kIG5ldmVyIGhhZCBhIGJ1ZyByZXBvcnQgc28gbGV0J3MgYXNzdW1lXG4gIC8vIGl0J3Mgbm90IGFuIGlzc3VlLiBJIGRvbid0IHRoaW5rIGFueW9uZSBldmVyIHNwZWNpZmllcyB3aWR0aCBvbiA8aHRtbD5cbiAgLy8gYW55d2F5LlxuICAvLyBCcm93c2VycyB3aGVyZSB0aGUgbGVmdCBzY3JvbGxiYXIgZG9lc24ndCBjYXVzZSBhbiBpc3N1ZSByZXBvcnQgYDBgIGZvclxuICAvLyB0aGlzIChlLmcuIEVkZ2UgMjAxOSwgSUUxMSwgU2FmYXJpKVxuICByZXR1cm4gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KSkubGVmdCArIGdldFdpbmRvd1Njcm9sbChlbGVtZW50KS5zY3JvbGxMZWZ0O1xufSIsICJpbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRXaW5kb3dTY3JvbGxCYXJYIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbEJhclguanNcIjtcbmltcG9ydCBpc0xheW91dFZpZXdwb3J0IGZyb20gXCIuL2lzTGF5b3V0Vmlld3BvcnQuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkge1xuICB2YXIgd2luID0gZ2V0V2luZG93KGVsZW1lbnQpO1xuICB2YXIgaHRtbCA9IGdldERvY3VtZW50RWxlbWVudChlbGVtZW50KTtcbiAgdmFyIHZpc3VhbFZpZXdwb3J0ID0gd2luLnZpc3VhbFZpZXdwb3J0O1xuICB2YXIgd2lkdGggPSBodG1sLmNsaWVudFdpZHRoO1xuICB2YXIgaGVpZ2h0ID0gaHRtbC5jbGllbnRIZWlnaHQ7XG4gIHZhciB4ID0gMDtcbiAgdmFyIHkgPSAwO1xuXG4gIGlmICh2aXN1YWxWaWV3cG9ydCkge1xuICAgIHdpZHRoID0gdmlzdWFsVmlld3BvcnQud2lkdGg7XG4gICAgaGVpZ2h0ID0gdmlzdWFsVmlld3BvcnQuaGVpZ2h0O1xuICAgIHZhciBsYXlvdXRWaWV3cG9ydCA9IGlzTGF5b3V0Vmlld3BvcnQoKTtcblxuICAgIGlmIChsYXlvdXRWaWV3cG9ydCB8fCAhbGF5b3V0Vmlld3BvcnQgJiYgc3RyYXRlZ3kgPT09ICdmaXhlZCcpIHtcbiAgICAgIHggPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRMZWZ0O1xuICAgICAgeSA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICB4OiB4ICsgZ2V0V2luZG93U2Nyb2xsQmFyWChlbGVtZW50KSxcbiAgICB5OiB5XG4gIH07XG59IiwgImltcG9ydCBnZXREb2N1bWVudEVsZW1lbnQgZnJvbSBcIi4vZ2V0RG9jdW1lbnRFbGVtZW50LmpzXCI7XG5pbXBvcnQgZ2V0Q29tcHV0ZWRTdHlsZSBmcm9tIFwiLi9nZXRDb21wdXRlZFN0eWxlLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsQmFyWCBmcm9tIFwiLi9nZXRXaW5kb3dTY3JvbGxCYXJYLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93U2Nyb2xsIGZyb20gXCIuL2dldFdpbmRvd1Njcm9sbC5qc1wiO1xuaW1wb3J0IHsgbWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjsgLy8gR2V0cyB0aGUgZW50aXJlIHNpemUgb2YgdGhlIHNjcm9sbGFibGUgZG9jdW1lbnQgYXJlYSwgZXZlbiBleHRlbmRpbmcgb3V0c2lkZVxuLy8gb2YgdGhlIGA8aHRtbD5gIGFuZCBgPGJvZHk+YCByZWN0IGJvdW5kcyBpZiBob3Jpem9udGFsbHkgc2Nyb2xsYWJsZVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXREb2N1bWVudFJlY3QoZWxlbWVudCkge1xuICB2YXIgX2VsZW1lbnQkb3duZXJEb2N1bWVuO1xuXG4gIHZhciBodG1sID0gZ2V0RG9jdW1lbnRFbGVtZW50KGVsZW1lbnQpO1xuICB2YXIgd2luU2Nyb2xsID0gZ2V0V2luZG93U2Nyb2xsKGVsZW1lbnQpO1xuICB2YXIgYm9keSA9IChfZWxlbWVudCRvd25lckRvY3VtZW4gPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfZWxlbWVudCRvd25lckRvY3VtZW4uYm9keTtcbiAgdmFyIHdpZHRoID0gbWF4KGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGJvZHkgPyBib2R5LnNjcm9sbFdpZHRoIDogMCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKTtcbiAgdmFyIGhlaWdodCA9IG1heChodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGJvZHkgPyBib2R5LnNjcm9sbEhlaWdodCA6IDAsIGJvZHkgPyBib2R5LmNsaWVudEhlaWdodCA6IDApO1xuICB2YXIgeCA9IC13aW5TY3JvbGwuc2Nyb2xsTGVmdCArIGdldFdpbmRvd1Njcm9sbEJhclgoZWxlbWVudCk7XG4gIHZhciB5ID0gLXdpblNjcm9sbC5zY3JvbGxUb3A7XG5cbiAgaWYgKGdldENvbXB1dGVkU3R5bGUoYm9keSB8fCBodG1sKS5kaXJlY3Rpb24gPT09ICdydGwnKSB7XG4gICAgeCArPSBtYXgoaHRtbC5jbGllbnRXaWR0aCwgYm9keSA/IGJvZHkuY2xpZW50V2lkdGggOiAwKSAtIHdpZHRoO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB3aWR0aDogd2lkdGgsXG4gICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgeDogeCxcbiAgICB5OiB5XG4gIH07XG59IiwgImltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGlzU2Nyb2xsUGFyZW50KGVsZW1lbnQpIHtcbiAgLy8gRmlyZWZveCB3YW50cyB1cyB0byBjaGVjayBgLXhgIGFuZCBgLXlgIHZhcmlhdGlvbnMgYXMgd2VsbFxuICB2YXIgX2dldENvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLFxuICAgICAgb3ZlcmZsb3cgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5vdmVyZmxvdyxcbiAgICAgIG92ZXJmbG93WCA9IF9nZXRDb21wdXRlZFN0eWxlLm92ZXJmbG93WCxcbiAgICAgIG92ZXJmbG93WSA9IF9nZXRDb21wdXRlZFN0eWxlLm92ZXJmbG93WTtcblxuICByZXR1cm4gL2F1dG98c2Nyb2xsfG92ZXJsYXl8aGlkZGVuLy50ZXN0KG92ZXJmbG93ICsgb3ZlcmZsb3dZICsgb3ZlcmZsb3dYKTtcbn0iLCAiaW1wb3J0IGdldFBhcmVudE5vZGUgZnJvbSBcIi4vZ2V0UGFyZW50Tm9kZS5qc1wiO1xuaW1wb3J0IGlzU2Nyb2xsUGFyZW50IGZyb20gXCIuL2lzU2Nyb2xsUGFyZW50LmpzXCI7XG5pbXBvcnQgZ2V0Tm9kZU5hbWUgZnJvbSBcIi4vZ2V0Tm9kZU5hbWUuanNcIjtcbmltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tIFwiLi9pbnN0YW5jZU9mLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTY3JvbGxQYXJlbnQobm9kZSkge1xuICBpZiAoWydodG1sJywgJ2JvZHknLCAnI2RvY3VtZW50J10uaW5kZXhPZihnZXROb2RlTmFtZShub2RlKSkgPj0gMCkge1xuICAgIC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl06IGFzc3VtZSBib2R5IGlzIGFsd2F5cyBhdmFpbGFibGVcbiAgICByZXR1cm4gbm9kZS5vd25lckRvY3VtZW50LmJvZHk7XG4gIH1cblxuICBpZiAoaXNIVE1MRWxlbWVudChub2RlKSAmJiBpc1Njcm9sbFBhcmVudChub2RlKSkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgcmV0dXJuIGdldFNjcm9sbFBhcmVudChnZXRQYXJlbnROb2RlKG5vZGUpKTtcbn0iLCAiaW1wb3J0IGdldFNjcm9sbFBhcmVudCBmcm9tIFwiLi9nZXRTY3JvbGxQYXJlbnQuanNcIjtcbmltcG9ydCBnZXRQYXJlbnROb2RlIGZyb20gXCIuL2dldFBhcmVudE5vZGUuanNcIjtcbmltcG9ydCBnZXRXaW5kb3cgZnJvbSBcIi4vZ2V0V2luZG93LmpzXCI7XG5pbXBvcnQgaXNTY3JvbGxQYXJlbnQgZnJvbSBcIi4vaXNTY3JvbGxQYXJlbnQuanNcIjtcbi8qXG5naXZlbiBhIERPTSBlbGVtZW50LCByZXR1cm4gdGhlIGxpc3Qgb2YgYWxsIHNjcm9sbCBwYXJlbnRzLCB1cCB0aGUgbGlzdCBvZiBhbmNlc29yc1xudW50aWwgd2UgZ2V0IHRvIHRoZSB0b3Agd2luZG93IG9iamVjdC4gVGhpcyBsaXN0IGlzIHdoYXQgd2UgYXR0YWNoIHNjcm9sbCBsaXN0ZW5lcnNcbnRvLCBiZWNhdXNlIGlmIGFueSBvZiB0aGVzZSBwYXJlbnQgZWxlbWVudHMgc2Nyb2xsLCB3ZSdsbCBuZWVkIHRvIHJlLWNhbGN1bGF0ZSB0aGVcbnJlZmVyZW5jZSBlbGVtZW50J3MgcG9zaXRpb24uXG4qL1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0U2Nyb2xsUGFyZW50cyhlbGVtZW50LCBsaXN0KSB7XG4gIHZhciBfZWxlbWVudCRvd25lckRvY3VtZW47XG5cbiAgaWYgKGxpc3QgPT09IHZvaWQgMCkge1xuICAgIGxpc3QgPSBbXTtcbiAgfVxuXG4gIHZhciBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoZWxlbWVudCk7XG4gIHZhciBpc0JvZHkgPSBzY3JvbGxQYXJlbnQgPT09ICgoX2VsZW1lbnQkb3duZXJEb2N1bWVuID0gZWxlbWVudC5vd25lckRvY3VtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2VsZW1lbnQkb3duZXJEb2N1bWVuLmJvZHkpO1xuICB2YXIgd2luID0gZ2V0V2luZG93KHNjcm9sbFBhcmVudCk7XG4gIHZhciB0YXJnZXQgPSBpc0JvZHkgPyBbd2luXS5jb25jYXQod2luLnZpc3VhbFZpZXdwb3J0IHx8IFtdLCBpc1Njcm9sbFBhcmVudChzY3JvbGxQYXJlbnQpID8gc2Nyb2xsUGFyZW50IDogW10pIDogc2Nyb2xsUGFyZW50O1xuICB2YXIgdXBkYXRlZExpc3QgPSBsaXN0LmNvbmNhdCh0YXJnZXQpO1xuICByZXR1cm4gaXNCb2R5ID8gdXBkYXRlZExpc3QgOiAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1jYWxsXTogaXNCb2R5IHRlbGxzIHVzIHRhcmdldCB3aWxsIGJlIGFuIEhUTUxFbGVtZW50IGhlcmVcbiAgdXBkYXRlZExpc3QuY29uY2F0KGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUodGFyZ2V0KSkpO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZWN0VG9DbGllbnRSZWN0KHJlY3QpIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHJlY3QsIHtcbiAgICBsZWZ0OiByZWN0LngsXG4gICAgdG9wOiByZWN0LnksXG4gICAgcmlnaHQ6IHJlY3QueCArIHJlY3Qud2lkdGgsXG4gICAgYm90dG9tOiByZWN0LnkgKyByZWN0LmhlaWdodFxuICB9KTtcbn0iLCAiaW1wb3J0IHsgdmlld3BvcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWaWV3cG9ydFJlY3QgZnJvbSBcIi4vZ2V0Vmlld3BvcnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0RG9jdW1lbnRSZWN0IGZyb20gXCIuL2dldERvY3VtZW50UmVjdC5qc1wiO1xuaW1wb3J0IGxpc3RTY3JvbGxQYXJlbnRzIGZyb20gXCIuL2xpc3RTY3JvbGxQYXJlbnRzLmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBnZXRDb21wdXRlZFN0eWxlIGZyb20gXCIuL2dldENvbXB1dGVkU3R5bGUuanNcIjtcbmltcG9ydCB7IGlzRWxlbWVudCwgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBcIi4vZ2V0Qm91bmRpbmdDbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0UGFyZW50Tm9kZSBmcm9tIFwiLi9nZXRQYXJlbnROb2RlLmpzXCI7XG5pbXBvcnQgY29udGFpbnMgZnJvbSBcIi4vY29udGFpbnMuanNcIjtcbmltcG9ydCBnZXROb2RlTmFtZSBmcm9tIFwiLi9nZXROb2RlTmFtZS5qc1wiO1xuaW1wb3J0IHJlY3RUb0NsaWVudFJlY3QgZnJvbSBcIi4uL3V0aWxzL3JlY3RUb0NsaWVudFJlY3QuanNcIjtcbmltcG9ydCB7IG1heCwgbWluIH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gZ2V0SW5uZXJCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgc3RyYXRlZ3kpIHtcbiAgdmFyIHJlY3QgPSBnZXRCb3VuZGluZ0NsaWVudFJlY3QoZWxlbWVudCwgZmFsc2UsIHN0cmF0ZWd5ID09PSAnZml4ZWQnKTtcbiAgcmVjdC50b3AgPSByZWN0LnRvcCArIGVsZW1lbnQuY2xpZW50VG9wO1xuICByZWN0LmxlZnQgPSByZWN0LmxlZnQgKyBlbGVtZW50LmNsaWVudExlZnQ7XG4gIHJlY3QuYm90dG9tID0gcmVjdC50b3AgKyBlbGVtZW50LmNsaWVudEhlaWdodDtcbiAgcmVjdC5yaWdodCA9IHJlY3QubGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIHJlY3Qud2lkdGggPSBlbGVtZW50LmNsaWVudFdpZHRoO1xuICByZWN0LmhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICByZWN0LnggPSByZWN0LmxlZnQ7XG4gIHJlY3QueSA9IHJlY3QudG9wO1xuICByZXR1cm4gcmVjdDtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgY2xpcHBpbmdQYXJlbnQsIHN0cmF0ZWd5KSB7XG4gIHJldHVybiBjbGlwcGluZ1BhcmVudCA9PT0gdmlld3BvcnQgPyByZWN0VG9DbGllbnRSZWN0KGdldFZpZXdwb3J0UmVjdChlbGVtZW50LCBzdHJhdGVneSkpIDogaXNFbGVtZW50KGNsaXBwaW5nUGFyZW50KSA/IGdldElubmVyQm91bmRpbmdDbGllbnRSZWN0KGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSkgOiByZWN0VG9DbGllbnRSZWN0KGdldERvY3VtZW50UmVjdChnZXREb2N1bWVudEVsZW1lbnQoZWxlbWVudCkpKTtcbn0gLy8gQSBcImNsaXBwaW5nIHBhcmVudFwiIGlzIGFuIG92ZXJmbG93YWJsZSBjb250YWluZXIgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgb2Zcbi8vIGNsaXBwaW5nIChvciBoaWRpbmcpIG92ZXJmbG93aW5nIGVsZW1lbnRzIHdpdGggYSBwb3NpdGlvbiBkaWZmZXJlbnQgZnJvbVxuLy8gYGluaXRpYWxgXG5cblxuZnVuY3Rpb24gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIHtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IGxpc3RTY3JvbGxQYXJlbnRzKGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xuICB2YXIgY2FuRXNjYXBlQ2xpcHBpbmcgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJ10uaW5kZXhPZihnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSA+PSAwO1xuICB2YXIgY2xpcHBlckVsZW1lbnQgPSBjYW5Fc2NhcGVDbGlwcGluZyAmJiBpc0hUTUxFbGVtZW50KGVsZW1lbnQpID8gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIDogZWxlbWVudDtcblxuICBpZiAoIWlzRWxlbWVudChjbGlwcGVyRWxlbWVudCkpIHtcbiAgICByZXR1cm4gW107XG4gIH0gLy8gJEZsb3dGaXhNZVtpbmNvbXBhdGlibGUtcmV0dXJuXTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2Zsb3cvaXNzdWVzLzE0MTRcblxuXG4gIHJldHVybiBjbGlwcGluZ1BhcmVudHMuZmlsdGVyKGZ1bmN0aW9uIChjbGlwcGluZ1BhcmVudCkge1xuICAgIHJldHVybiBpc0VsZW1lbnQoY2xpcHBpbmdQYXJlbnQpICYmIGNvbnRhaW5zKGNsaXBwaW5nUGFyZW50LCBjbGlwcGVyRWxlbWVudCkgJiYgZ2V0Tm9kZU5hbWUoY2xpcHBpbmdQYXJlbnQpICE9PSAnYm9keSc7XG4gIH0pO1xufSAvLyBHZXRzIHRoZSBtYXhpbXVtIGFyZWEgdGhhdCB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIGluIGR1ZSB0byBhbnkgbnVtYmVyIG9mXG4vLyBjbGlwcGluZyBwYXJlbnRzXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q2xpcHBpbmdSZWN0KGVsZW1lbnQsIGJvdW5kYXJ5LCByb290Qm91bmRhcnksIHN0cmF0ZWd5KSB7XG4gIHZhciBtYWluQ2xpcHBpbmdQYXJlbnRzID0gYm91bmRhcnkgPT09ICdjbGlwcGluZ1BhcmVudHMnID8gZ2V0Q2xpcHBpbmdQYXJlbnRzKGVsZW1lbnQpIDogW10uY29uY2F0KGJvdW5kYXJ5KTtcbiAgdmFyIGNsaXBwaW5nUGFyZW50cyA9IFtdLmNvbmNhdChtYWluQ2xpcHBpbmdQYXJlbnRzLCBbcm9vdEJvdW5kYXJ5XSk7XG4gIHZhciBmaXJzdENsaXBwaW5nUGFyZW50ID0gY2xpcHBpbmdQYXJlbnRzWzBdO1xuICB2YXIgY2xpcHBpbmdSZWN0ID0gY2xpcHBpbmdQYXJlbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjUmVjdCwgY2xpcHBpbmdQYXJlbnQpIHtcbiAgICB2YXIgcmVjdCA9IGdldENsaWVudFJlY3RGcm9tTWl4ZWRUeXBlKGVsZW1lbnQsIGNsaXBwaW5nUGFyZW50LCBzdHJhdGVneSk7XG4gICAgYWNjUmVjdC50b3AgPSBtYXgocmVjdC50b3AsIGFjY1JlY3QudG9wKTtcbiAgICBhY2NSZWN0LnJpZ2h0ID0gbWluKHJlY3QucmlnaHQsIGFjY1JlY3QucmlnaHQpO1xuICAgIGFjY1JlY3QuYm90dG9tID0gbWluKHJlY3QuYm90dG9tLCBhY2NSZWN0LmJvdHRvbSk7XG4gICAgYWNjUmVjdC5sZWZ0ID0gbWF4KHJlY3QubGVmdCwgYWNjUmVjdC5sZWZ0KTtcbiAgICByZXR1cm4gYWNjUmVjdDtcbiAgfSwgZ2V0Q2xpZW50UmVjdEZyb21NaXhlZFR5cGUoZWxlbWVudCwgZmlyc3RDbGlwcGluZ1BhcmVudCwgc3RyYXRlZ3kpKTtcbiAgY2xpcHBpbmdSZWN0LndpZHRoID0gY2xpcHBpbmdSZWN0LnJpZ2h0IC0gY2xpcHBpbmdSZWN0LmxlZnQ7XG4gIGNsaXBwaW5nUmVjdC5oZWlnaHQgPSBjbGlwcGluZ1JlY3QuYm90dG9tIC0gY2xpcHBpbmdSZWN0LnRvcDtcbiAgY2xpcHBpbmdSZWN0LnggPSBjbGlwcGluZ1JlY3QubGVmdDtcbiAgY2xpcHBpbmdSZWN0LnkgPSBjbGlwcGluZ1JlY3QudG9wO1xuICByZXR1cm4gY2xpcHBpbmdSZWN0O1xufSIsICJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IGdldE1haW5BeGlzRnJvbVBsYWNlbWVudCBmcm9tIFwiLi9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgc3RhcnQsIGVuZCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29tcHV0ZU9mZnNldHMoX3JlZikge1xuICB2YXIgcmVmZXJlbmNlID0gX3JlZi5yZWZlcmVuY2UsXG4gICAgICBlbGVtZW50ID0gX3JlZi5lbGVtZW50LFxuICAgICAgcGxhY2VtZW50ID0gX3JlZi5wbGFjZW1lbnQ7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gcGxhY2VtZW50ID8gZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpIDogbnVsbDtcbiAgdmFyIHZhcmlhdGlvbiA9IHBsYWNlbWVudCA/IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpIDogbnVsbDtcbiAgdmFyIGNvbW1vblggPSByZWZlcmVuY2UueCArIHJlZmVyZW5jZS53aWR0aCAvIDIgLSBlbGVtZW50LndpZHRoIC8gMjtcbiAgdmFyIGNvbW1vblkgPSByZWZlcmVuY2UueSArIHJlZmVyZW5jZS5oZWlnaHQgLyAyIC0gZWxlbWVudC5oZWlnaHQgLyAyO1xuICB2YXIgb2Zmc2V0cztcblxuICBzd2l0Y2ggKGJhc2VQbGFjZW1lbnQpIHtcbiAgICBjYXNlIHRvcDpcbiAgICAgIG9mZnNldHMgPSB7XG4gICAgICAgIHg6IGNvbW1vblgsXG4gICAgICAgIHk6IHJlZmVyZW5jZS55IC0gZWxlbWVudC5oZWlnaHRcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgYm90dG9tOlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogY29tbW9uWCxcbiAgICAgICAgeTogcmVmZXJlbmNlLnkgKyByZWZlcmVuY2UuaGVpZ2h0XG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIHJpZ2h0OlxuICAgICAgb2Zmc2V0cyA9IHtcbiAgICAgICAgeDogcmVmZXJlbmNlLnggKyByZWZlcmVuY2Uud2lkdGgsXG4gICAgICAgIHk6IGNvbW1vbllcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgbGVmdDpcbiAgICAgIG9mZnNldHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54IC0gZWxlbWVudC53aWR0aCxcbiAgICAgICAgeTogY29tbW9uWVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIG9mZnNldHMgPSB7XG4gICAgICAgIHg6IHJlZmVyZW5jZS54LFxuICAgICAgICB5OiByZWZlcmVuY2UueVxuICAgICAgfTtcbiAgfVxuXG4gIHZhciBtYWluQXhpcyA9IGJhc2VQbGFjZW1lbnQgPyBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCkgOiBudWxsO1xuXG4gIGlmIChtYWluQXhpcyAhPSBudWxsKSB7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG5cbiAgICBzd2l0Y2ggKHZhcmlhdGlvbikge1xuICAgICAgY2FzZSBzdGFydDpcbiAgICAgICAgb2Zmc2V0c1ttYWluQXhpc10gPSBvZmZzZXRzW21haW5BeGlzXSAtIChyZWZlcmVuY2VbbGVuXSAvIDIgLSBlbGVtZW50W2xlbl0gLyAyKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgZW5kOlxuICAgICAgICBvZmZzZXRzW21haW5BeGlzXSA9IG9mZnNldHNbbWFpbkF4aXNdICsgKHJlZmVyZW5jZVtsZW5dIC8gMiAtIGVsZW1lbnRbbGVuXSAvIDIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2Zmc2V0cztcbn0iLCAiaW1wb3J0IGdldENsaXBwaW5nUmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldENsaXBwaW5nUmVjdC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldERvY3VtZW50RWxlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIFwiLi4vZG9tLXV0aWxzL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGNvbXB1dGVPZmZzZXRzIGZyb20gXCIuL2NvbXB1dGVPZmZzZXRzLmpzXCI7XG5pbXBvcnQgcmVjdFRvQ2xpZW50UmVjdCBmcm9tIFwiLi9yZWN0VG9DbGllbnRSZWN0LmpzXCI7XG5pbXBvcnQgeyBjbGlwcGluZ1BhcmVudHMsIHJlZmVyZW5jZSwgcG9wcGVyLCBib3R0b20sIHRvcCwgcmlnaHQsIGJhc2VQbGFjZW1lbnRzLCB2aWV3cG9ydCB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IHsgaXNFbGVtZW50IH0gZnJvbSBcIi4uL2RvbS11dGlscy9pbnN0YW5jZU9mLmpzXCI7XG5pbXBvcnQgbWVyZ2VQYWRkaW5nT2JqZWN0IGZyb20gXCIuL21lcmdlUGFkZGluZ09iamVjdC5qc1wiO1xuaW1wb3J0IGV4cGFuZFRvSGFzaE1hcCBmcm9tIFwiLi9leHBhbmRUb0hhc2hNYXAuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIF9vcHRpb25zJHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zJHBsYWNlbWVudCA9PT0gdm9pZCAwID8gc3RhdGUucGxhY2VtZW50IDogX29wdGlvbnMkcGxhY2VtZW50LFxuICAgICAgX29wdGlvbnMkc3RyYXRlZ3kgPSBfb3B0aW9ucy5zdHJhdGVneSxcbiAgICAgIHN0cmF0ZWd5ID0gX29wdGlvbnMkc3RyYXRlZ3kgPT09IHZvaWQgMCA/IHN0YXRlLnN0cmF0ZWd5IDogX29wdGlvbnMkc3RyYXRlZ3ksXG4gICAgICBfb3B0aW9ucyRib3VuZGFyeSA9IF9vcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgYm91bmRhcnkgPSBfb3B0aW9ucyRib3VuZGFyeSA9PT0gdm9pZCAwID8gY2xpcHBpbmdQYXJlbnRzIDogX29wdGlvbnMkYm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRyb290Qm91bmRhcnkgPSBfb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBfb3B0aW9ucyRyb290Qm91bmRhcnkgPT09IHZvaWQgMCA/IHZpZXdwb3J0IDogX29wdGlvbnMkcm9vdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkZWxlbWVudENvbnRlID0gX29wdGlvbnMuZWxlbWVudENvbnRleHQsXG4gICAgICBlbGVtZW50Q29udGV4dCA9IF9vcHRpb25zJGVsZW1lbnRDb250ZSA9PT0gdm9pZCAwID8gcG9wcGVyIDogX29wdGlvbnMkZWxlbWVudENvbnRlLFxuICAgICAgX29wdGlvbnMkYWx0Qm91bmRhcnkgPSBfb3B0aW9ucy5hbHRCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5ID0gX29wdGlvbnMkYWx0Qm91bmRhcnkgPT09IHZvaWQgMCA/IGZhbHNlIDogX29wdGlvbnMkYWx0Qm91bmRhcnksXG4gICAgICBfb3B0aW9ucyRwYWRkaW5nID0gX29wdGlvbnMucGFkZGluZyxcbiAgICAgIHBhZGRpbmcgPSBfb3B0aW9ucyRwYWRkaW5nID09PSB2b2lkIDAgPyAwIDogX29wdGlvbnMkcGFkZGluZztcbiAgdmFyIHBhZGRpbmdPYmplY3QgPSBtZXJnZVBhZGRpbmdPYmplY3QodHlwZW9mIHBhZGRpbmcgIT09ICdudW1iZXInID8gcGFkZGluZyA6IGV4cGFuZFRvSGFzaE1hcChwYWRkaW5nLCBiYXNlUGxhY2VtZW50cykpO1xuICB2YXIgYWx0Q29udGV4dCA9IGVsZW1lbnRDb250ZXh0ID09PSBwb3BwZXIgPyByZWZlcmVuY2UgOiBwb3BwZXI7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgZWxlbWVudCA9IHN0YXRlLmVsZW1lbnRzW2FsdEJvdW5kYXJ5ID8gYWx0Q29udGV4dCA6IGVsZW1lbnRDb250ZXh0XTtcbiAgdmFyIGNsaXBwaW5nQ2xpZW50UmVjdCA9IGdldENsaXBwaW5nUmVjdChpc0VsZW1lbnQoZWxlbWVudCkgPyBlbGVtZW50IDogZWxlbWVudC5jb250ZXh0RWxlbWVudCB8fCBnZXREb2N1bWVudEVsZW1lbnQoc3RhdGUuZWxlbWVudHMucG9wcGVyKSwgYm91bmRhcnksIHJvb3RCb3VuZGFyeSwgc3RyYXRlZ3kpO1xuICB2YXIgcmVmZXJlbmNlQ2xpZW50UmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChzdGF0ZS5lbGVtZW50cy5yZWZlcmVuY2UpO1xuICB2YXIgcG9wcGVyT2Zmc2V0cyA9IGNvbXB1dGVPZmZzZXRzKHtcbiAgICByZWZlcmVuY2U6IHJlZmVyZW5jZUNsaWVudFJlY3QsXG4gICAgZWxlbWVudDogcG9wcGVyUmVjdCxcbiAgICBzdHJhdGVneTogJ2Fic29sdXRlJyxcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KTtcbiAgdmFyIHBvcHBlckNsaWVudFJlY3QgPSByZWN0VG9DbGllbnRSZWN0KE9iamVjdC5hc3NpZ24oe30sIHBvcHBlclJlY3QsIHBvcHBlck9mZnNldHMpKTtcbiAgdmFyIGVsZW1lbnRDbGllbnRSZWN0ID0gZWxlbWVudENvbnRleHQgPT09IHBvcHBlciA/IHBvcHBlckNsaWVudFJlY3QgOiByZWZlcmVuY2VDbGllbnRSZWN0OyAvLyBwb3NpdGl2ZSA9IG92ZXJmbG93aW5nIHRoZSBjbGlwcGluZyByZWN0XG4gIC8vIDAgb3IgbmVnYXRpdmUgPSB3aXRoaW4gdGhlIGNsaXBwaW5nIHJlY3RcblxuICB2YXIgb3ZlcmZsb3dPZmZzZXRzID0ge1xuICAgIHRvcDogY2xpcHBpbmdDbGllbnRSZWN0LnRvcCAtIGVsZW1lbnRDbGllbnRSZWN0LnRvcCArIHBhZGRpbmdPYmplY3QudG9wLFxuICAgIGJvdHRvbTogZWxlbWVudENsaWVudFJlY3QuYm90dG9tIC0gY2xpcHBpbmdDbGllbnRSZWN0LmJvdHRvbSArIHBhZGRpbmdPYmplY3QuYm90dG9tLFxuICAgIGxlZnQ6IGNsaXBwaW5nQ2xpZW50UmVjdC5sZWZ0IC0gZWxlbWVudENsaWVudFJlY3QubGVmdCArIHBhZGRpbmdPYmplY3QubGVmdCxcbiAgICByaWdodDogZWxlbWVudENsaWVudFJlY3QucmlnaHQgLSBjbGlwcGluZ0NsaWVudFJlY3QucmlnaHQgKyBwYWRkaW5nT2JqZWN0LnJpZ2h0XG4gIH07XG4gIHZhciBvZmZzZXREYXRhID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQ7IC8vIE9mZnNldHMgY2FuIGJlIGFwcGxpZWQgb25seSB0byB0aGUgcG9wcGVyIGVsZW1lbnRcblxuICBpZiAoZWxlbWVudENvbnRleHQgPT09IHBvcHBlciAmJiBvZmZzZXREYXRhKSB7XG4gICAgdmFyIG9mZnNldCA9IG9mZnNldERhdGFbcGxhY2VtZW50XTtcbiAgICBPYmplY3Qua2V5cyhvdmVyZmxvd09mZnNldHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgdmFyIG11bHRpcGx5ID0gW3JpZ2h0LCBib3R0b21dLmluZGV4T2Yoa2V5KSA+PSAwID8gMSA6IC0xO1xuICAgICAgdmFyIGF4aXMgPSBbdG9wLCBib3R0b21dLmluZGV4T2Yoa2V5KSA+PSAwID8gJ3knIDogJ3gnO1xuICAgICAgb3ZlcmZsb3dPZmZzZXRzW2tleV0gKz0gb2Zmc2V0W2F4aXNdICogbXVsdGlwbHk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gb3ZlcmZsb3dPZmZzZXRzO1xufSIsICJpbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuL2dldFZhcmlhdGlvbi5qc1wiO1xuaW1wb3J0IHsgdmFyaWF0aW9uUGxhY2VtZW50cywgYmFzZVBsYWNlbWVudHMsIHBsYWNlbWVudHMgYXMgYWxsUGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjb21wdXRlQXV0b1BsYWNlbWVudChzdGF0ZSwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9vcHRpb25zID0gb3B0aW9ucyxcbiAgICAgIHBsYWNlbWVudCA9IF9vcHRpb25zLnBsYWNlbWVudCxcbiAgICAgIGJvdW5kYXJ5ID0gX29wdGlvbnMuYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnkgPSBfb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gX29wdGlvbnMucGFkZGluZyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMuZmxpcFZhcmlhdGlvbnMsXG4gICAgICBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPSBfb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHMsXG4gICAgICBhbGxvd2VkQXV0b1BsYWNlbWVudHMgPSBfb3B0aW9ucyRhbGxvd2VkQXV0b1AgPT09IHZvaWQgMCA/IGFsbFBsYWNlbWVudHMgOiBfb3B0aW9ucyRhbGxvd2VkQXV0b1A7XG4gIHZhciB2YXJpYXRpb24gPSBnZXRWYXJpYXRpb24ocGxhY2VtZW50KTtcbiAgdmFyIHBsYWNlbWVudHMgPSB2YXJpYXRpb24gPyBmbGlwVmFyaWF0aW9ucyA/IHZhcmlhdGlvblBsYWNlbWVudHMgOiB2YXJpYXRpb25QbGFjZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSB2YXJpYXRpb247XG4gIH0pIDogYmFzZVBsYWNlbWVudHM7XG4gIHZhciBhbGxvd2VkUGxhY2VtZW50cyA9IHBsYWNlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChwbGFjZW1lbnQpIHtcbiAgICByZXR1cm4gYWxsb3dlZEF1dG9QbGFjZW1lbnRzLmluZGV4T2YocGxhY2VtZW50KSA+PSAwO1xuICB9KTtcblxuICBpZiAoYWxsb3dlZFBsYWNlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgYWxsb3dlZFBsYWNlbWVudHMgPSBwbGFjZW1lbnRzO1xuICB9IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdOiBGbG93IHNlZW1zIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCB0d28gYXJyYXkgdW5pb25zLi4uXG5cblxuICB2YXIgb3ZlcmZsb3dzID0gYWxsb3dlZFBsYWNlbWVudHMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBsYWNlbWVudCkge1xuICAgIGFjY1twbGFjZW1lbnRdID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nXG4gICAgfSlbZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpXTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvdmVyZmxvd3MpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gb3ZlcmZsb3dzW2FdIC0gb3ZlcmZsb3dzW2JdO1xuICB9KTtcbn0iLCAiaW1wb3J0IGdldE9wcG9zaXRlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRPcHBvc2l0ZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IGdldEJhc2VQbGFjZW1lbnQgZnJvbSBcIi4uL3V0aWxzL2dldEJhc2VQbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBjb21wdXRlQXV0b1BsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvY29tcHV0ZUF1dG9QbGFjZW1lbnQuanNcIjtcbmltcG9ydCB7IGJvdHRvbSwgdG9wLCBzdGFydCwgcmlnaHQsIGxlZnQsIGF1dG8gfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRWYXJpYXRpb24gZnJvbSBcIi4uL3V0aWxzL2dldFZhcmlhdGlvbi5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmZ1bmN0aW9uIGdldEV4cGFuZGVkRmFsbGJhY2tQbGFjZW1lbnRzKHBsYWNlbWVudCkge1xuICBpZiAoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdmFyIG9wcG9zaXRlUGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgcmV0dXJuIFtnZXRPcHBvc2l0ZVZhcmlhdGlvblBsYWNlbWVudChwbGFjZW1lbnQpLCBvcHBvc2l0ZVBsYWNlbWVudCwgZ2V0T3Bwb3NpdGVWYXJpYXRpb25QbGFjZW1lbnQob3Bwb3NpdGVQbGFjZW1lbnQpXTtcbn1cblxuZnVuY3Rpb24gZmxpcChfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZi5vcHRpb25zLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcblxuICBpZiAoc3RhdGUubW9kaWZpZXJzRGF0YVtuYW1lXS5fc2tpcCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBfb3B0aW9ucyRtYWluQXhpcyA9IG9wdGlvbnMubWFpbkF4aXMsXG4gICAgICBjaGVja01haW5BeGlzID0gX29wdGlvbnMkbWFpbkF4aXMgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyRtYWluQXhpcyxcbiAgICAgIF9vcHRpb25zJGFsdEF4aXMgPSBvcHRpb25zLmFsdEF4aXMsXG4gICAgICBjaGVja0FsdEF4aXMgPSBfb3B0aW9ucyRhbHRBeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkYWx0QXhpcyxcbiAgICAgIHNwZWNpZmllZEZhbGxiYWNrUGxhY2VtZW50cyA9IG9wdGlvbnMuZmFsbGJhY2tQbGFjZW1lbnRzLFxuICAgICAgcGFkZGluZyA9IG9wdGlvbnMucGFkZGluZyxcbiAgICAgIGJvdW5kYXJ5ID0gb3B0aW9ucy5ib3VuZGFyeSxcbiAgICAgIHJvb3RCb3VuZGFyeSA9IG9wdGlvbnMucm9vdEJvdW5kYXJ5LFxuICAgICAgYWx0Qm91bmRhcnkgPSBvcHRpb25zLmFsdEJvdW5kYXJ5LFxuICAgICAgX29wdGlvbnMkZmxpcFZhcmlhdGlvID0gb3B0aW9ucy5mbGlwVmFyaWF0aW9ucyxcbiAgICAgIGZsaXBWYXJpYXRpb25zID0gX29wdGlvbnMkZmxpcFZhcmlhdGlvID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkZmxpcFZhcmlhdGlvLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gb3B0aW9ucy5hbGxvd2VkQXV0b1BsYWNlbWVudHM7XG4gIHZhciBwcmVmZXJyZWRQbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHByZWZlcnJlZFBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSBiYXNlUGxhY2VtZW50ID09PSBwcmVmZXJyZWRQbGFjZW1lbnQ7XG4gIHZhciBmYWxsYmFja1BsYWNlbWVudHMgPSBzcGVjaWZpZWRGYWxsYmFja1BsYWNlbWVudHMgfHwgKGlzQmFzZVBsYWNlbWVudCB8fCAhZmxpcFZhcmlhdGlvbnMgPyBbZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocHJlZmVycmVkUGxhY2VtZW50KV0gOiBnZXRFeHBhbmRlZEZhbGxiYWNrUGxhY2VtZW50cyhwcmVmZXJyZWRQbGFjZW1lbnQpKTtcbiAgdmFyIHBsYWNlbWVudHMgPSBbcHJlZmVycmVkUGxhY2VtZW50XS5jb25jYXQoZmFsbGJhY2tQbGFjZW1lbnRzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgcGxhY2VtZW50KSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQoZ2V0QmFzZVBsYWNlbWVudChwbGFjZW1lbnQpID09PSBhdXRvID8gY29tcHV0ZUF1dG9QbGFjZW1lbnQoc3RhdGUsIHtcbiAgICAgIHBsYWNlbWVudDogcGxhY2VtZW50LFxuICAgICAgYm91bmRhcnk6IGJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgICBwYWRkaW5nOiBwYWRkaW5nLFxuICAgICAgZmxpcFZhcmlhdGlvbnM6IGZsaXBWYXJpYXRpb25zLFxuICAgICAgYWxsb3dlZEF1dG9QbGFjZW1lbnRzOiBhbGxvd2VkQXV0b1BsYWNlbWVudHNcbiAgICB9KSA6IHBsYWNlbWVudCk7XG4gIH0sIFtdKTtcbiAgdmFyIHJlZmVyZW5jZVJlY3QgPSBzdGF0ZS5yZWN0cy5yZWZlcmVuY2U7XG4gIHZhciBwb3BwZXJSZWN0ID0gc3RhdGUucmVjdHMucG9wcGVyO1xuICB2YXIgY2hlY2tzTWFwID0gbmV3IE1hcCgpO1xuICB2YXIgbWFrZUZhbGxiYWNrQ2hlY2tzID0gdHJ1ZTtcbiAgdmFyIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IHBsYWNlbWVudHNbMF07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwbGFjZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBsYWNlbWVudCA9IHBsYWNlbWVudHNbaV07XG5cbiAgICB2YXIgX2Jhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICB2YXIgaXNTdGFydFZhcmlhdGlvbiA9IGdldFZhcmlhdGlvbihwbGFjZW1lbnQpID09PSBzdGFydDtcbiAgICB2YXIgaXNWZXJ0aWNhbCA9IFt0b3AsIGJvdHRvbV0uaW5kZXhPZihfYmFzZVBsYWNlbWVudCkgPj0gMDtcbiAgICB2YXIgbGVuID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICB2YXIgb3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgICAgcGxhY2VtZW50OiBwbGFjZW1lbnQsXG4gICAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgICByb290Qm91bmRhcnk6IHJvb3RCb3VuZGFyeSxcbiAgICAgIGFsdEJvdW5kYXJ5OiBhbHRCb3VuZGFyeSxcbiAgICAgIHBhZGRpbmc6IHBhZGRpbmdcbiAgICB9KTtcbiAgICB2YXIgbWFpblZhcmlhdGlvblNpZGUgPSBpc1ZlcnRpY2FsID8gaXNTdGFydFZhcmlhdGlvbiA/IHJpZ2h0IDogbGVmdCA6IGlzU3RhcnRWYXJpYXRpb24gPyBib3R0b20gOiB0b3A7XG5cbiAgICBpZiAocmVmZXJlbmNlUmVjdFtsZW5dID4gcG9wcGVyUmVjdFtsZW5dKSB7XG4gICAgICBtYWluVmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB9XG5cbiAgICB2YXIgYWx0VmFyaWF0aW9uU2lkZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KG1haW5WYXJpYXRpb25TaWRlKTtcbiAgICB2YXIgY2hlY2tzID0gW107XG5cbiAgICBpZiAoY2hlY2tNYWluQXhpcykge1xuICAgICAgY2hlY2tzLnB1c2gob3ZlcmZsb3dbX2Jhc2VQbGFjZW1lbnRdIDw9IDApO1xuICAgIH1cblxuICAgIGlmIChjaGVja0FsdEF4aXMpIHtcbiAgICAgIGNoZWNrcy5wdXNoKG92ZXJmbG93W21haW5WYXJpYXRpb25TaWRlXSA8PSAwLCBvdmVyZmxvd1thbHRWYXJpYXRpb25TaWRlXSA8PSAwKTtcbiAgICB9XG5cbiAgICBpZiAoY2hlY2tzLmV2ZXJ5KGZ1bmN0aW9uIChjaGVjaykge1xuICAgICAgcmV0dXJuIGNoZWNrO1xuICAgIH0pKSB7XG4gICAgICBmaXJzdEZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgICBtYWtlRmFsbGJhY2tDaGVja3MgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNoZWNrc01hcC5zZXQocGxhY2VtZW50LCBjaGVja3MpO1xuICB9XG5cbiAgaWYgKG1ha2VGYWxsYmFja0NoZWNrcykge1xuICAgIC8vIGAyYCBtYXkgYmUgZGVzaXJlZCBpbiBzb21lIGNhc2VzIFx1MjAxMyByZXNlYXJjaCBsYXRlclxuICAgIHZhciBudW1iZXJPZkNoZWNrcyA9IGZsaXBWYXJpYXRpb25zID8gMyA6IDE7XG5cbiAgICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChfaSkge1xuICAgICAgdmFyIGZpdHRpbmdQbGFjZW1lbnQgPSBwbGFjZW1lbnRzLmZpbmQoZnVuY3Rpb24gKHBsYWNlbWVudCkge1xuICAgICAgICB2YXIgY2hlY2tzID0gY2hlY2tzTWFwLmdldChwbGFjZW1lbnQpO1xuXG4gICAgICAgIGlmIChjaGVja3MpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tzLnNsaWNlKDAsIF9pKS5ldmVyeShmdW5jdGlvbiAoY2hlY2spIHtcbiAgICAgICAgICAgIHJldHVybiBjaGVjaztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChmaXR0aW5nUGxhY2VtZW50KSB7XG4gICAgICAgIGZpcnN0Rml0dGluZ1BsYWNlbWVudCA9IGZpdHRpbmdQbGFjZW1lbnQ7XG4gICAgICAgIHJldHVybiBcImJyZWFrXCI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAodmFyIF9pID0gbnVtYmVyT2ZDaGVja3M7IF9pID4gMDsgX2ktLSkge1xuICAgICAgdmFyIF9yZXQgPSBfbG9vcChfaSk7XG5cbiAgICAgIGlmIChfcmV0ID09PSBcImJyZWFrXCIpIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGF0ZS5wbGFjZW1lbnQgIT09IGZpcnN0Rml0dGluZ1BsYWNlbWVudCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0uX3NraXAgPSB0cnVlO1xuICAgIHN0YXRlLnBsYWNlbWVudCA9IGZpcnN0Rml0dGluZ1BsYWNlbWVudDtcbiAgICBzdGF0ZS5yZXNldCA9IHRydWU7XG4gIH1cbn0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbmFtZTogJ2ZsaXAnLFxuICBlbmFibGVkOiB0cnVlLFxuICBwaGFzZTogJ21haW4nLFxuICBmbjogZmxpcCxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXSxcbiAgZGF0YToge1xuICAgIF9za2lwOiBmYWxzZVxuICB9XG59OyIsICJpbXBvcnQgeyB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBkZXRlY3RPdmVyZmxvdyBmcm9tIFwiLi4vdXRpbHMvZGV0ZWN0T3ZlcmZsb3cuanNcIjtcblxuZnVuY3Rpb24gZ2V0U2lkZU9mZnNldHMob3ZlcmZsb3csIHJlY3QsIHByZXZlbnRlZE9mZnNldHMpIHtcbiAgaWYgKHByZXZlbnRlZE9mZnNldHMgPT09IHZvaWQgMCkge1xuICAgIHByZXZlbnRlZE9mZnNldHMgPSB7XG4gICAgICB4OiAwLFxuICAgICAgeTogMFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHRvcDogb3ZlcmZsb3cudG9wIC0gcmVjdC5oZWlnaHQgLSBwcmV2ZW50ZWRPZmZzZXRzLnksXG4gICAgcmlnaHQ6IG92ZXJmbG93LnJpZ2h0IC0gcmVjdC53aWR0aCArIHByZXZlbnRlZE9mZnNldHMueCxcbiAgICBib3R0b206IG92ZXJmbG93LmJvdHRvbSAtIHJlY3QuaGVpZ2h0ICsgcHJldmVudGVkT2Zmc2V0cy55LFxuICAgIGxlZnQ6IG92ZXJmbG93LmxlZnQgLSByZWN0LndpZHRoIC0gcHJldmVudGVkT2Zmc2V0cy54XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzQW55U2lkZUZ1bGx5Q2xpcHBlZChvdmVyZmxvdykge1xuICByZXR1cm4gW3RvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdF0uc29tZShmdW5jdGlvbiAoc2lkZSkge1xuICAgIHJldHVybiBvdmVyZmxvd1tzaWRlXSA+PSAwO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaGlkZShfcmVmKSB7XG4gIHZhciBzdGF0ZSA9IF9yZWYuc3RhdGUsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciBwcmV2ZW50ZWRPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wcmV2ZW50T3ZlcmZsb3c7XG4gIHZhciByZWZlcmVuY2VPdmVyZmxvdyA9IGRldGVjdE92ZXJmbG93KHN0YXRlLCB7XG4gICAgZWxlbWVudENvbnRleHQ6ICdyZWZlcmVuY2UnXG4gIH0pO1xuICB2YXIgcG9wcGVyQWx0T3ZlcmZsb3cgPSBkZXRlY3RPdmVyZmxvdyhzdGF0ZSwge1xuICAgIGFsdEJvdW5kYXJ5OiB0cnVlXG4gIH0pO1xuICB2YXIgcmVmZXJlbmNlQ2xpcHBpbmdPZmZzZXRzID0gZ2V0U2lkZU9mZnNldHMocmVmZXJlbmNlT3ZlcmZsb3csIHJlZmVyZW5jZVJlY3QpO1xuICB2YXIgcG9wcGVyRXNjYXBlT2Zmc2V0cyA9IGdldFNpZGVPZmZzZXRzKHBvcHBlckFsdE92ZXJmbG93LCBwb3BwZXJSZWN0LCBwcmV2ZW50ZWRPZmZzZXRzKTtcbiAgdmFyIGlzUmVmZXJlbmNlSGlkZGVuID0gaXNBbnlTaWRlRnVsbHlDbGlwcGVkKHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0cyk7XG4gIHZhciBoYXNQb3BwZXJFc2NhcGVkID0gaXNBbnlTaWRlRnVsbHlDbGlwcGVkKHBvcHBlckVzY2FwZU9mZnNldHMpO1xuICBzdGF0ZS5tb2RpZmllcnNEYXRhW25hbWVdID0ge1xuICAgIHJlZmVyZW5jZUNsaXBwaW5nT2Zmc2V0czogcmVmZXJlbmNlQ2xpcHBpbmdPZmZzZXRzLFxuICAgIHBvcHBlckVzY2FwZU9mZnNldHM6IHBvcHBlckVzY2FwZU9mZnNldHMsXG4gICAgaXNSZWZlcmVuY2VIaWRkZW46IGlzUmVmZXJlbmNlSGlkZGVuLFxuICAgIGhhc1BvcHBlckVzY2FwZWQ6IGhhc1BvcHBlckVzY2FwZWRcbiAgfTtcbiAgc3RhdGUuYXR0cmlidXRlcy5wb3BwZXIgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5hdHRyaWJ1dGVzLnBvcHBlciwge1xuICAgICdkYXRhLXBvcHBlci1yZWZlcmVuY2UtaGlkZGVuJzogaXNSZWZlcmVuY2VIaWRkZW4sXG4gICAgJ2RhdGEtcG9wcGVyLWVzY2FwZWQnOiBoYXNQb3BwZXJFc2NhcGVkXG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnaGlkZScsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAnbWFpbicsXG4gIHJlcXVpcmVzSWZFeGlzdHM6IFsncHJldmVudE92ZXJmbG93J10sXG4gIGZuOiBoaWRlXG59OyIsICJpbXBvcnQgZ2V0QmFzZVBsYWNlbWVudCBmcm9tIFwiLi4vdXRpbHMvZ2V0QmFzZVBsYWNlbWVudC5qc1wiO1xuaW1wb3J0IHsgdG9wLCBsZWZ0LCByaWdodCwgcGxhY2VtZW50cyB9IGZyb20gXCIuLi9lbnVtcy5qc1wiOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCBmdW5jdGlvbiBkaXN0YW5jZUFuZFNraWRkaW5nVG9YWShwbGFjZW1lbnQsIHJlY3RzLCBvZmZzZXQpIHtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBnZXRCYXNlUGxhY2VtZW50KHBsYWNlbWVudCk7XG4gIHZhciBpbnZlcnREaXN0YW5jZSA9IFtsZWZ0LCB0b3BdLmluZGV4T2YoYmFzZVBsYWNlbWVudCkgPj0gMCA/IC0xIDogMTtcblxuICB2YXIgX3JlZiA9IHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicgPyBvZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgcmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHBsYWNlbWVudFxuICB9KSkgOiBvZmZzZXQsXG4gICAgICBza2lkZGluZyA9IF9yZWZbMF0sXG4gICAgICBkaXN0YW5jZSA9IF9yZWZbMV07XG5cbiAgc2tpZGRpbmcgPSBza2lkZGluZyB8fCAwO1xuICBkaXN0YW5jZSA9IChkaXN0YW5jZSB8fCAwKSAqIGludmVydERpc3RhbmNlO1xuICByZXR1cm4gW2xlZnQsIHJpZ2h0XS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpID49IDAgPyB7XG4gICAgeDogZGlzdGFuY2UsXG4gICAgeTogc2tpZGRpbmdcbiAgfSA6IHtcbiAgICB4OiBza2lkZGluZyxcbiAgICB5OiBkaXN0YW5jZVxuICB9O1xufVxuXG5mdW5jdGlvbiBvZmZzZXQoX3JlZjIpIHtcbiAgdmFyIHN0YXRlID0gX3JlZjIuc3RhdGUsXG4gICAgICBvcHRpb25zID0gX3JlZjIub3B0aW9ucyxcbiAgICAgIG5hbWUgPSBfcmVmMi5uYW1lO1xuICB2YXIgX29wdGlvbnMkb2Zmc2V0ID0gb3B0aW9ucy5vZmZzZXQsXG4gICAgICBvZmZzZXQgPSBfb3B0aW9ucyRvZmZzZXQgPT09IHZvaWQgMCA/IFswLCAwXSA6IF9vcHRpb25zJG9mZnNldDtcbiAgdmFyIGRhdGEgPSBwbGFjZW1lbnRzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBwbGFjZW1lbnQpIHtcbiAgICBhY2NbcGxhY2VtZW50XSA9IGRpc3RhbmNlQW5kU2tpZGRpbmdUb1hZKHBsYWNlbWVudCwgc3RhdGUucmVjdHMsIG9mZnNldCk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xuICB2YXIgX2RhdGEkc3RhdGUkcGxhY2VtZW50ID0gZGF0YVtzdGF0ZS5wbGFjZW1lbnRdLFxuICAgICAgeCA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC54LFxuICAgICAgeSA9IF9kYXRhJHN0YXRlJHBsYWNlbWVudC55O1xuXG4gIGlmIChzdGF0ZS5tb2RpZmllcnNEYXRhLnBvcHBlck9mZnNldHMgIT0gbnVsbCkge1xuICAgIHN0YXRlLm1vZGlmaWVyc0RhdGEucG9wcGVyT2Zmc2V0cy54ICs9IHg7XG4gICAgc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzLnkgKz0geTtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnb2Zmc2V0JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgcmVxdWlyZXM6IFsncG9wcGVyT2Zmc2V0cyddLFxuICBmbjogb2Zmc2V0XG59OyIsICJpbXBvcnQgY29tcHV0ZU9mZnNldHMgZnJvbSBcIi4uL3V0aWxzL2NvbXB1dGVPZmZzZXRzLmpzXCI7XG5cbmZ1bmN0aW9uIHBvcHBlck9mZnNldHMoX3JlZikge1xuICB2YXIgc3RhdGUgPSBfcmVmLnN0YXRlLFxuICAgICAgbmFtZSA9IF9yZWYubmFtZTtcbiAgLy8gT2Zmc2V0cyBhcmUgdGhlIGFjdHVhbCBwb3NpdGlvbiB0aGUgcG9wcGVyIG5lZWRzIHRvIGhhdmUgdG8gYmVcbiAgLy8gcHJvcGVybHkgcG9zaXRpb25lZCBuZWFyIGl0cyByZWZlcmVuY2UgZWxlbWVudFxuICAvLyBUaGlzIGlzIHRoZSBtb3N0IGJhc2ljIHBsYWNlbWVudCwgYW5kIHdpbGwgYmUgYWRqdXN0ZWQgYnlcbiAgLy8gdGhlIG1vZGlmaWVycyBpbiB0aGUgbmV4dCBzdGVwXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBjb21wdXRlT2Zmc2V0cyh7XG4gICAgcmVmZXJlbmNlOiBzdGF0ZS5yZWN0cy5yZWZlcmVuY2UsXG4gICAgZWxlbWVudDogc3RhdGUucmVjdHMucG9wcGVyLFxuICAgIHN0cmF0ZWd5OiAnYWJzb2x1dGUnLFxuICAgIHBsYWNlbWVudDogc3RhdGUucGxhY2VtZW50XG4gIH0pO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncG9wcGVyT2Zmc2V0cycsXG4gIGVuYWJsZWQ6IHRydWUsXG4gIHBoYXNlOiAncmVhZCcsXG4gIGZuOiBwb3BwZXJPZmZzZXRzLFxuICBkYXRhOiB7fVxufTsiLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0QWx0QXhpcyhheGlzKSB7XG4gIHJldHVybiBheGlzID09PSAneCcgPyAneScgOiAneCc7XG59IiwgImltcG9ydCB7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgc3RhcnQgfSBmcm9tIFwiLi4vZW51bXMuanNcIjtcbmltcG9ydCBnZXRCYXNlUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRCYXNlUGxhY2VtZW50LmpzXCI7XG5pbXBvcnQgZ2V0TWFpbkF4aXNGcm9tUGxhY2VtZW50IGZyb20gXCIuLi91dGlscy9nZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQuanNcIjtcbmltcG9ydCBnZXRBbHRBeGlzIGZyb20gXCIuLi91dGlscy9nZXRBbHRBeGlzLmpzXCI7XG5pbXBvcnQgeyB3aXRoaW4sIHdpdGhpbk1heENsYW1wIH0gZnJvbSBcIi4uL3V0aWxzL3dpdGhpbi5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4uL2RvbS11dGlscy9nZXRMYXlvdXRSZWN0LmpzXCI7XG5pbXBvcnQgZ2V0T2Zmc2V0UGFyZW50IGZyb20gXCIuLi9kb20tdXRpbHMvZ2V0T2Zmc2V0UGFyZW50LmpzXCI7XG5pbXBvcnQgZGV0ZWN0T3ZlcmZsb3cgZnJvbSBcIi4uL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgZ2V0VmFyaWF0aW9uIGZyb20gXCIuLi91dGlscy9nZXRWYXJpYXRpb24uanNcIjtcbmltcG9ydCBnZXRGcmVzaFNpZGVPYmplY3QgZnJvbSBcIi4uL3V0aWxzL2dldEZyZXNoU2lkZU9iamVjdC5qc1wiO1xuaW1wb3J0IHsgbWluIGFzIG1hdGhNaW4sIG1heCBhcyBtYXRoTWF4IH0gZnJvbSBcIi4uL3V0aWxzL21hdGguanNcIjtcblxuZnVuY3Rpb24gcHJldmVudE92ZXJmbG93KF9yZWYpIHtcbiAgdmFyIHN0YXRlID0gX3JlZi5zdGF0ZSxcbiAgICAgIG9wdGlvbnMgPSBfcmVmLm9wdGlvbnMsXG4gICAgICBuYW1lID0gX3JlZi5uYW1lO1xuICB2YXIgX29wdGlvbnMkbWFpbkF4aXMgPSBvcHRpb25zLm1haW5BeGlzLFxuICAgICAgY2hlY2tNYWluQXhpcyA9IF9vcHRpb25zJG1haW5BeGlzID09PSB2b2lkIDAgPyB0cnVlIDogX29wdGlvbnMkbWFpbkF4aXMsXG4gICAgICBfb3B0aW9ucyRhbHRBeGlzID0gb3B0aW9ucy5hbHRBeGlzLFxuICAgICAgY2hlY2tBbHRBeGlzID0gX29wdGlvbnMkYWx0QXhpcyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfb3B0aW9ucyRhbHRBeGlzLFxuICAgICAgYm91bmRhcnkgPSBvcHRpb25zLmJvdW5kYXJ5LFxuICAgICAgcm9vdEJvdW5kYXJ5ID0gb3B0aW9ucy5yb290Qm91bmRhcnksXG4gICAgICBhbHRCb3VuZGFyeSA9IG9wdGlvbnMuYWx0Qm91bmRhcnksXG4gICAgICBwYWRkaW5nID0gb3B0aW9ucy5wYWRkaW5nLFxuICAgICAgX29wdGlvbnMkdGV0aGVyID0gb3B0aW9ucy50ZXRoZXIsXG4gICAgICB0ZXRoZXIgPSBfb3B0aW9ucyR0ZXRoZXIgPT09IHZvaWQgMCA/IHRydWUgOiBfb3B0aW9ucyR0ZXRoZXIsXG4gICAgICBfb3B0aW9ucyR0ZXRoZXJPZmZzZXQgPSBvcHRpb25zLnRldGhlck9mZnNldCxcbiAgICAgIHRldGhlck9mZnNldCA9IF9vcHRpb25zJHRldGhlck9mZnNldCA9PT0gdm9pZCAwID8gMCA6IF9vcHRpb25zJHRldGhlck9mZnNldDtcbiAgdmFyIG92ZXJmbG93ID0gZGV0ZWN0T3ZlcmZsb3coc3RhdGUsIHtcbiAgICBib3VuZGFyeTogYm91bmRhcnksXG4gICAgcm9vdEJvdW5kYXJ5OiByb290Qm91bmRhcnksXG4gICAgcGFkZGluZzogcGFkZGluZyxcbiAgICBhbHRCb3VuZGFyeTogYWx0Qm91bmRhcnlcbiAgfSk7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gZ2V0QmFzZVBsYWNlbWVudChzdGF0ZS5wbGFjZW1lbnQpO1xuICB2YXIgdmFyaWF0aW9uID0gZ2V0VmFyaWF0aW9uKHN0YXRlLnBsYWNlbWVudCk7XG4gIHZhciBpc0Jhc2VQbGFjZW1lbnQgPSAhdmFyaWF0aW9uO1xuICB2YXIgbWFpbkF4aXMgPSBnZXRNYWluQXhpc0Zyb21QbGFjZW1lbnQoYmFzZVBsYWNlbWVudCk7XG4gIHZhciBhbHRBeGlzID0gZ2V0QWx0QXhpcyhtYWluQXhpcyk7XG4gIHZhciBwb3BwZXJPZmZzZXRzID0gc3RhdGUubW9kaWZpZXJzRGF0YS5wb3BwZXJPZmZzZXRzO1xuICB2YXIgcmVmZXJlbmNlUmVjdCA9IHN0YXRlLnJlY3RzLnJlZmVyZW5jZTtcbiAgdmFyIHBvcHBlclJlY3QgPSBzdGF0ZS5yZWN0cy5wb3BwZXI7XG4gIHZhciB0ZXRoZXJPZmZzZXRWYWx1ZSA9IHR5cGVvZiB0ZXRoZXJPZmZzZXQgPT09ICdmdW5jdGlvbicgPyB0ZXRoZXJPZmZzZXQoT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUucmVjdHMsIHtcbiAgICBwbGFjZW1lbnQ6IHN0YXRlLnBsYWNlbWVudFxuICB9KSkgOiB0ZXRoZXJPZmZzZXQ7XG4gIHZhciBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUgPSB0eXBlb2YgdGV0aGVyT2Zmc2V0VmFsdWUgPT09ICdudW1iZXInID8ge1xuICAgIG1haW5BeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZSxcbiAgICBhbHRBeGlzOiB0ZXRoZXJPZmZzZXRWYWx1ZVxuICB9IDogT2JqZWN0LmFzc2lnbih7XG4gICAgbWFpbkF4aXM6IDAsXG4gICAgYWx0QXhpczogMFxuICB9LCB0ZXRoZXJPZmZzZXRWYWx1ZSk7XG4gIHZhciBvZmZzZXRNb2RpZmllclN0YXRlID0gc3RhdGUubW9kaWZpZXJzRGF0YS5vZmZzZXQgPyBzdGF0ZS5tb2RpZmllcnNEYXRhLm9mZnNldFtzdGF0ZS5wbGFjZW1lbnRdIDogbnVsbDtcbiAgdmFyIGRhdGEgPSB7XG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG5cbiAgaWYgKCFwb3BwZXJPZmZzZXRzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGNoZWNrTWFpbkF4aXMpIHtcbiAgICB2YXIgX29mZnNldE1vZGlmaWVyU3RhdGUkO1xuXG4gICAgdmFyIG1haW5TaWRlID0gbWFpbkF4aXMgPT09ICd5JyA/IHRvcCA6IGxlZnQ7XG4gICAgdmFyIGFsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3knID8gYm90dG9tIDogcmlnaHQ7XG4gICAgdmFyIGxlbiA9IG1haW5BeGlzID09PSAneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgdmFyIG9mZnNldCA9IHBvcHBlck9mZnNldHNbbWFpbkF4aXNdO1xuICAgIHZhciBtaW4gPSBvZmZzZXQgKyBvdmVyZmxvd1ttYWluU2lkZV07XG4gICAgdmFyIG1heCA9IG9mZnNldCAtIG92ZXJmbG93W2FsdFNpZGVdO1xuICAgIHZhciBhZGRpdGl2ZSA9IHRldGhlciA/IC1wb3BwZXJSZWN0W2xlbl0gLyAyIDogMDtcbiAgICB2YXIgbWluTGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IHJlZmVyZW5jZVJlY3RbbGVuXSA6IHBvcHBlclJlY3RbbGVuXTtcbiAgICB2YXIgbWF4TGVuID0gdmFyaWF0aW9uID09PSBzdGFydCA/IC1wb3BwZXJSZWN0W2xlbl0gOiAtcmVmZXJlbmNlUmVjdFtsZW5dOyAvLyBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIGFycm93IGluIHRoZSBjYWxjdWxhdGlvbiBzbyB0aGUgYXJyb3cgZG9lc24ndCBnb1xuICAgIC8vIG91dHNpZGUgdGhlIHJlZmVyZW5jZSBib3VuZHNcblxuICAgIHZhciBhcnJvd0VsZW1lbnQgPSBzdGF0ZS5lbGVtZW50cy5hcnJvdztcbiAgICB2YXIgYXJyb3dSZWN0ID0gdGV0aGVyICYmIGFycm93RWxlbWVudCA/IGdldExheW91dFJlY3QoYXJyb3dFbGVtZW50KSA6IHtcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nT2JqZWN0ID0gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddID8gc3RhdGUubW9kaWZpZXJzRGF0YVsnYXJyb3cjcGVyc2lzdGVudCddLnBhZGRpbmcgOiBnZXRGcmVzaFNpZGVPYmplY3QoKTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWluID0gYXJyb3dQYWRkaW5nT2JqZWN0W21haW5TaWRlXTtcbiAgICB2YXIgYXJyb3dQYWRkaW5nTWF4ID0gYXJyb3dQYWRkaW5nT2JqZWN0W2FsdFNpZGVdOyAvLyBJZiB0aGUgcmVmZXJlbmNlIGxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gdGhlIGFycm93IGxlbmd0aCwgd2UgZG9uJ3Qgd2FudFxuICAgIC8vIHRvIGluY2x1ZGUgaXRzIGZ1bGwgc2l6ZSBpbiB0aGUgY2FsY3VsYXRpb24uIElmIHRoZSByZWZlcmVuY2UgaXMgc21hbGxcbiAgICAvLyBhbmQgbmVhciB0aGUgZWRnZSBvZiBhIGJvdW5kYXJ5LCB0aGUgcG9wcGVyIGNhbiBvdmVyZmxvdyBldmVuIGlmIHRoZVxuICAgIC8vIHJlZmVyZW5jZSBpcyBub3Qgb3ZlcmZsb3dpbmcgYXMgd2VsbCAoZS5nLiB2aXJ0dWFsIGVsZW1lbnRzIHdpdGggbm9cbiAgICAvLyB3aWR0aCBvciBoZWlnaHQpXG5cbiAgICB2YXIgYXJyb3dMZW4gPSB3aXRoaW4oMCwgcmVmZXJlbmNlUmVjdFtsZW5dLCBhcnJvd1JlY3RbbGVuXSk7XG4gICAgdmFyIG1pbk9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IHJlZmVyZW5jZVJlY3RbbGVuXSAvIDIgLSBhZGRpdGl2ZSAtIGFycm93TGVuIC0gYXJyb3dQYWRkaW5nTWluIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzIDogbWluTGVuIC0gYXJyb3dMZW4gLSBhcnJvd1BhZGRpbmdNaW4gLSBub3JtYWxpemVkVGV0aGVyT2Zmc2V0VmFsdWUubWFpbkF4aXM7XG4gICAgdmFyIG1heE9mZnNldCA9IGlzQmFzZVBsYWNlbWVudCA/IC1yZWZlcmVuY2VSZWN0W2xlbl0gLyAyICsgYWRkaXRpdmUgKyBhcnJvd0xlbiArIGFycm93UGFkZGluZ01heCArIG5vcm1hbGl6ZWRUZXRoZXJPZmZzZXRWYWx1ZS5tYWluQXhpcyA6IG1heExlbiArIGFycm93TGVuICsgYXJyb3dQYWRkaW5nTWF4ICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLm1haW5BeGlzO1xuICAgIHZhciBhcnJvd09mZnNldFBhcmVudCA9IHN0YXRlLmVsZW1lbnRzLmFycm93ICYmIGdldE9mZnNldFBhcmVudChzdGF0ZS5lbGVtZW50cy5hcnJvdyk7XG4gICAgdmFyIGNsaWVudE9mZnNldCA9IGFycm93T2Zmc2V0UGFyZW50ID8gbWFpbkF4aXMgPT09ICd5JyA/IGFycm93T2Zmc2V0UGFyZW50LmNsaWVudFRvcCB8fCAwIDogYXJyb3dPZmZzZXRQYXJlbnQuY2xpZW50TGVmdCB8fCAwIDogMDtcbiAgICB2YXIgb2Zmc2V0TW9kaWZpZXJWYWx1ZSA9IChfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQgPSBvZmZzZXRNb2RpZmllclN0YXRlID09IG51bGwgPyB2b2lkIDAgOiBvZmZzZXRNb2RpZmllclN0YXRlW21haW5BeGlzXSkgIT0gbnVsbCA/IF9vZmZzZXRNb2RpZmllclN0YXRlJCA6IDA7XG4gICAgdmFyIHRldGhlck1pbiA9IG9mZnNldCArIG1pbk9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWUgLSBjbGllbnRPZmZzZXQ7XG4gICAgdmFyIHRldGhlck1heCA9IG9mZnNldCArIG1heE9mZnNldCAtIG9mZnNldE1vZGlmaWVyVmFsdWU7XG4gICAgdmFyIHByZXZlbnRlZE9mZnNldCA9IHdpdGhpbih0ZXRoZXIgPyBtYXRoTWluKG1pbiwgdGV0aGVyTWluKSA6IG1pbiwgb2Zmc2V0LCB0ZXRoZXIgPyBtYXRoTWF4KG1heCwgdGV0aGVyTWF4KSA6IG1heCk7XG4gICAgcG9wcGVyT2Zmc2V0c1ttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQ7XG4gICAgZGF0YVttYWluQXhpc10gPSBwcmV2ZW50ZWRPZmZzZXQgLSBvZmZzZXQ7XG4gIH1cblxuICBpZiAoY2hlY2tBbHRBeGlzKSB7XG4gICAgdmFyIF9vZmZzZXRNb2RpZmllclN0YXRlJDI7XG5cbiAgICB2YXIgX21haW5TaWRlID0gbWFpbkF4aXMgPT09ICd4JyA/IHRvcCA6IGxlZnQ7XG5cbiAgICB2YXIgX2FsdFNpZGUgPSBtYWluQXhpcyA9PT0gJ3gnID8gYm90dG9tIDogcmlnaHQ7XG5cbiAgICB2YXIgX29mZnNldCA9IHBvcHBlck9mZnNldHNbYWx0QXhpc107XG5cbiAgICB2YXIgX2xlbiA9IGFsdEF4aXMgPT09ICd5JyA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICAgIHZhciBfbWluID0gX29mZnNldCArIG92ZXJmbG93W19tYWluU2lkZV07XG5cbiAgICB2YXIgX21heCA9IF9vZmZzZXQgLSBvdmVyZmxvd1tfYWx0U2lkZV07XG5cbiAgICB2YXIgaXNPcmlnaW5TaWRlID0gW3RvcCwgbGVmdF0uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG5cbiAgICB2YXIgX29mZnNldE1vZGlmaWVyVmFsdWUgPSAoX29mZnNldE1vZGlmaWVyU3RhdGUkMiA9IG9mZnNldE1vZGlmaWVyU3RhdGUgPT0gbnVsbCA/IHZvaWQgMCA6IG9mZnNldE1vZGlmaWVyU3RhdGVbYWx0QXhpc10pICE9IG51bGwgPyBfb2Zmc2V0TW9kaWZpZXJTdGF0ZSQyIDogMDtcblxuICAgIHZhciBfdGV0aGVyTWluID0gaXNPcmlnaW5TaWRlID8gX21pbiA6IF9vZmZzZXQgLSByZWZlcmVuY2VSZWN0W19sZW5dIC0gcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlICsgbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXM7XG5cbiAgICB2YXIgX3RldGhlck1heCA9IGlzT3JpZ2luU2lkZSA/IF9vZmZzZXQgKyByZWZlcmVuY2VSZWN0W19sZW5dICsgcG9wcGVyUmVjdFtfbGVuXSAtIF9vZmZzZXRNb2RpZmllclZhbHVlIC0gbm9ybWFsaXplZFRldGhlck9mZnNldFZhbHVlLmFsdEF4aXMgOiBfbWF4O1xuXG4gICAgdmFyIF9wcmV2ZW50ZWRPZmZzZXQgPSB0ZXRoZXIgJiYgaXNPcmlnaW5TaWRlID8gd2l0aGluTWF4Q2xhbXAoX3RldGhlck1pbiwgX29mZnNldCwgX3RldGhlck1heCkgOiB3aXRoaW4odGV0aGVyID8gX3RldGhlck1pbiA6IF9taW4sIF9vZmZzZXQsIHRldGhlciA/IF90ZXRoZXJNYXggOiBfbWF4KTtcblxuICAgIHBvcHBlck9mZnNldHNbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0O1xuICAgIGRhdGFbYWx0QXhpc10gPSBfcHJldmVudGVkT2Zmc2V0IC0gX29mZnNldDtcbiAgfVxuXG4gIHN0YXRlLm1vZGlmaWVyc0RhdGFbbmFtZV0gPSBkYXRhO1xufSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgcGhhc2U6ICdtYWluJyxcbiAgZm46IHByZXZlbnRPdmVyZmxvdyxcbiAgcmVxdWlyZXNJZkV4aXN0czogWydvZmZzZXQnXVxufTsiLCAiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0SFRNTEVsZW1lbnRTY3JvbGwoZWxlbWVudCkge1xuICByZXR1cm4ge1xuICAgIHNjcm9sbExlZnQ6IGVsZW1lbnQuc2Nyb2xsTGVmdCxcbiAgICBzY3JvbGxUb3A6IGVsZW1lbnQuc2Nyb2xsVG9wXG4gIH07XG59IiwgImltcG9ydCBnZXRXaW5kb3dTY3JvbGwgZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsLmpzXCI7XG5pbXBvcnQgZ2V0V2luZG93IGZyb20gXCIuL2dldFdpbmRvdy5qc1wiO1xuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCIuL2luc3RhbmNlT2YuanNcIjtcbmltcG9ydCBnZXRIVE1MRWxlbWVudFNjcm9sbCBmcm9tIFwiLi9nZXRIVE1MRWxlbWVudFNjcm9sbC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Tm9kZVNjcm9sbChub2RlKSB7XG4gIGlmIChub2RlID09PSBnZXRXaW5kb3cobm9kZSkgfHwgIWlzSFRNTEVsZW1lbnQobm9kZSkpIHtcbiAgICByZXR1cm4gZ2V0V2luZG93U2Nyb2xsKG5vZGUpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBnZXRIVE1MRWxlbWVudFNjcm9sbChub2RlKTtcbiAgfVxufSIsICJpbXBvcnQgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGZyb20gXCIuL2dldEJvdW5kaW5nQ2xpZW50UmVjdC5qc1wiO1xuaW1wb3J0IGdldE5vZGVTY3JvbGwgZnJvbSBcIi4vZ2V0Tm9kZVNjcm9sbC5qc1wiO1xuaW1wb3J0IGdldE5vZGVOYW1lIGZyb20gXCIuL2dldE5vZGVOYW1lLmpzXCI7XG5pbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSBcIi4vaW5zdGFuY2VPZi5qc1wiO1xuaW1wb3J0IGdldFdpbmRvd1Njcm9sbEJhclggZnJvbSBcIi4vZ2V0V2luZG93U2Nyb2xsQmFyWC5qc1wiO1xuaW1wb3J0IGdldERvY3VtZW50RWxlbWVudCBmcm9tIFwiLi9nZXREb2N1bWVudEVsZW1lbnQuanNcIjtcbmltcG9ydCBpc1Njcm9sbFBhcmVudCBmcm9tIFwiLi9pc1Njcm9sbFBhcmVudC5qc1wiO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tIFwiLi4vdXRpbHMvbWF0aC5qc1wiO1xuXG5mdW5jdGlvbiBpc0VsZW1lbnRTY2FsZWQoZWxlbWVudCkge1xuICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIHZhciBzY2FsZVggPSByb3VuZChyZWN0LndpZHRoKSAvIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMTtcbiAgdmFyIHNjYWxlWSA9IHJvdW5kKHJlY3QuaGVpZ2h0KSAvIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDE7XG4gIHJldHVybiBzY2FsZVggIT09IDEgfHwgc2NhbGVZICE9PSAxO1xufSAvLyBSZXR1cm5zIHRoZSBjb21wb3NpdGUgcmVjdCBvZiBhbiBlbGVtZW50IHJlbGF0aXZlIHRvIGl0cyBvZmZzZXRQYXJlbnQuXG4vLyBDb21wb3NpdGUgbWVhbnMgaXQgdGFrZXMgaW50byBhY2NvdW50IHRyYW5zZm9ybXMgYXMgd2VsbCBhcyBsYXlvdXQuXG5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZ2V0Q29tcG9zaXRlUmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50LCBpc0ZpeGVkKSB7XG4gIGlmIChpc0ZpeGVkID09PSB2b2lkIDApIHtcbiAgICBpc0ZpeGVkID0gZmFsc2U7XG4gIH1cblxuICB2YXIgaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgPSBpc0hUTUxFbGVtZW50KG9mZnNldFBhcmVudCk7XG4gIHZhciBvZmZzZXRQYXJlbnRJc1NjYWxlZCA9IGlzSFRNTEVsZW1lbnQob2Zmc2V0UGFyZW50KSAmJiBpc0VsZW1lbnRTY2FsZWQob2Zmc2V0UGFyZW50KTtcbiAgdmFyIGRvY3VtZW50RWxlbWVudCA9IGdldERvY3VtZW50RWxlbWVudChvZmZzZXRQYXJlbnQpO1xuICB2YXIgcmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChlbGVtZW50T3JWaXJ0dWFsRWxlbWVudCwgb2Zmc2V0UGFyZW50SXNTY2FsZWQsIGlzRml4ZWQpO1xuICB2YXIgc2Nyb2xsID0ge1xuICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgc2Nyb2xsVG9wOiAwXG4gIH07XG4gIHZhciBvZmZzZXRzID0ge1xuICAgIHg6IDAsXG4gICAgeTogMFxuICB9O1xuXG4gIGlmIChpc09mZnNldFBhcmVudEFuRWxlbWVudCB8fCAhaXNPZmZzZXRQYXJlbnRBbkVsZW1lbnQgJiYgIWlzRml4ZWQpIHtcbiAgICBpZiAoZ2V0Tm9kZU5hbWUob2Zmc2V0UGFyZW50KSAhPT0gJ2JvZHknIHx8IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3BwZXJqcy9wb3BwZXItY29yZS9pc3N1ZXMvMTA3OFxuICAgIGlzU2Nyb2xsUGFyZW50KGRvY3VtZW50RWxlbWVudCkpIHtcbiAgICAgIHNjcm9sbCA9IGdldE5vZGVTY3JvbGwob2Zmc2V0UGFyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoaXNIVE1MRWxlbWVudChvZmZzZXRQYXJlbnQpKSB7XG4gICAgICBvZmZzZXRzID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KG9mZnNldFBhcmVudCwgdHJ1ZSk7XG4gICAgICBvZmZzZXRzLnggKz0gb2Zmc2V0UGFyZW50LmNsaWVudExlZnQ7XG4gICAgICBvZmZzZXRzLnkgKz0gb2Zmc2V0UGFyZW50LmNsaWVudFRvcDtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50RWxlbWVudCkge1xuICAgICAgb2Zmc2V0cy54ID0gZ2V0V2luZG93U2Nyb2xsQmFyWChkb2N1bWVudEVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgeDogcmVjdC5sZWZ0ICsgc2Nyb2xsLnNjcm9sbExlZnQgLSBvZmZzZXRzLngsXG4gICAgeTogcmVjdC50b3AgKyBzY3JvbGwuc2Nyb2xsVG9wIC0gb2Zmc2V0cy55LFxuICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgfTtcbn0iLCAiaW1wb3J0IHsgbW9kaWZpZXJQaGFzZXMgfSBmcm9tIFwiLi4vZW51bXMuanNcIjsgLy8gc291cmNlOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80OTg3NTI1NVxuXG5mdW5jdGlvbiBvcmRlcihtb2RpZmllcnMpIHtcbiAgdmFyIG1hcCA9IG5ldyBNYXAoKTtcbiAgdmFyIHZpc2l0ZWQgPSBuZXcgU2V0KCk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgbWFwLnNldChtb2RpZmllci5uYW1lLCBtb2RpZmllcik7XG4gIH0pOyAvLyBPbiB2aXNpdGluZyBvYmplY3QsIGNoZWNrIGZvciBpdHMgZGVwZW5kZW5jaWVzIGFuZCB2aXNpdCB0aGVtIHJlY3Vyc2l2ZWx5XG5cbiAgZnVuY3Rpb24gc29ydChtb2RpZmllcikge1xuICAgIHZpc2l0ZWQuYWRkKG1vZGlmaWVyLm5hbWUpO1xuICAgIHZhciByZXF1aXJlcyA9IFtdLmNvbmNhdChtb2RpZmllci5yZXF1aXJlcyB8fCBbXSwgbW9kaWZpZXIucmVxdWlyZXNJZkV4aXN0cyB8fCBbXSk7XG4gICAgcmVxdWlyZXMuZm9yRWFjaChmdW5jdGlvbiAoZGVwKSB7XG4gICAgICBpZiAoIXZpc2l0ZWQuaGFzKGRlcCkpIHtcbiAgICAgICAgdmFyIGRlcE1vZGlmaWVyID0gbWFwLmdldChkZXApO1xuXG4gICAgICAgIGlmIChkZXBNb2RpZmllcikge1xuICAgICAgICAgIHNvcnQoZGVwTW9kaWZpZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmVzdWx0LnB1c2gobW9kaWZpZXIpO1xuICB9XG5cbiAgbW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgaWYgKCF2aXNpdGVkLmhhcyhtb2RpZmllci5uYW1lKSkge1xuICAgICAgLy8gY2hlY2sgZm9yIHZpc2l0ZWQgb2JqZWN0XG4gICAgICBzb3J0KG1vZGlmaWVyKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBvcmRlck1vZGlmaWVycyhtb2RpZmllcnMpIHtcbiAgLy8gb3JkZXIgYmFzZWQgb24gZGVwZW5kZW5jaWVzXG4gIHZhciBvcmRlcmVkTW9kaWZpZXJzID0gb3JkZXIobW9kaWZpZXJzKTsgLy8gb3JkZXIgYmFzZWQgb24gcGhhc2VcblxuICByZXR1cm4gbW9kaWZpZXJQaGFzZXMucmVkdWNlKGZ1bmN0aW9uIChhY2MsIHBoYXNlKSB7XG4gICAgcmV0dXJuIGFjYy5jb25jYXQob3JkZXJlZE1vZGlmaWVycy5maWx0ZXIoZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgICByZXR1cm4gbW9kaWZpZXIucGhhc2UgPT09IHBoYXNlO1xuICAgIH0pKTtcbiAgfSwgW10pO1xufSIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkZWJvdW5jZShmbikge1xuICB2YXIgcGVuZGluZztcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXBlbmRpbmcpIHtcbiAgICAgIHBlbmRpbmcgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHJlc29sdmUoZm4oKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlbmRpbmc7XG4gIH07XG59IiwgImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlQnlOYW1lKG1vZGlmaWVycykge1xuICB2YXIgbWVyZ2VkID0gbW9kaWZpZXJzLnJlZHVjZShmdW5jdGlvbiAobWVyZ2VkLCBjdXJyZW50KSB7XG4gICAgdmFyIGV4aXN0aW5nID0gbWVyZ2VkW2N1cnJlbnQubmFtZV07XG4gICAgbWVyZ2VkW2N1cnJlbnQubmFtZV0gPSBleGlzdGluZyA/IE9iamVjdC5hc3NpZ24oe30sIGV4aXN0aW5nLCBjdXJyZW50LCB7XG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBleGlzdGluZy5vcHRpb25zLCBjdXJyZW50Lm9wdGlvbnMpLFxuICAgICAgZGF0YTogT2JqZWN0LmFzc2lnbih7fSwgZXhpc3RpbmcuZGF0YSwgY3VycmVudC5kYXRhKVxuICAgIH0pIDogY3VycmVudDtcbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9LCB7fSk7IC8vIElFMTEgZG9lcyBub3Qgc3VwcG9ydCBPYmplY3QudmFsdWVzXG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gbWVyZ2VkW2tleV07XG4gIH0pO1xufSIsICJpbXBvcnQgZ2V0Q29tcG9zaXRlUmVjdCBmcm9tIFwiLi9kb20tdXRpbHMvZ2V0Q29tcG9zaXRlUmVjdC5qc1wiO1xuaW1wb3J0IGdldExheW91dFJlY3QgZnJvbSBcIi4vZG9tLXV0aWxzL2dldExheW91dFJlY3QuanNcIjtcbmltcG9ydCBsaXN0U2Nyb2xsUGFyZW50cyBmcm9tIFwiLi9kb20tdXRpbHMvbGlzdFNjcm9sbFBhcmVudHMuanNcIjtcbmltcG9ydCBnZXRPZmZzZXRQYXJlbnQgZnJvbSBcIi4vZG9tLXV0aWxzL2dldE9mZnNldFBhcmVudC5qc1wiO1xuaW1wb3J0IG9yZGVyTW9kaWZpZXJzIGZyb20gXCIuL3V0aWxzL29yZGVyTW9kaWZpZXJzLmpzXCI7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSBcIi4vdXRpbHMvZGVib3VuY2UuanNcIjtcbmltcG9ydCBtZXJnZUJ5TmFtZSBmcm9tIFwiLi91dGlscy9tZXJnZUJ5TmFtZS5qc1wiO1xuaW1wb3J0IGRldGVjdE92ZXJmbG93IGZyb20gXCIuL3V0aWxzL2RldGVjdE92ZXJmbG93LmpzXCI7XG5pbXBvcnQgeyBpc0VsZW1lbnQgfSBmcm9tIFwiLi9kb20tdXRpbHMvaW5zdGFuY2VPZi5qc1wiO1xudmFyIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgbW9kaWZpZXJzOiBbXSxcbiAgc3RyYXRlZ3k6ICdhYnNvbHV0ZSdcbn07XG5cbmZ1bmN0aW9uIGFyZVZhbGlkRWxlbWVudHMoKSB7XG4gIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07XG4gIH1cblxuICByZXR1cm4gIWFyZ3Muc29tZShmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHJldHVybiAhKGVsZW1lbnQgJiYgdHlwZW9mIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ID09PSAnZnVuY3Rpb24nKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3BwZXJHZW5lcmF0b3IoZ2VuZXJhdG9yT3B0aW9ucykge1xuICBpZiAoZ2VuZXJhdG9yT3B0aW9ucyA9PT0gdm9pZCAwKSB7XG4gICAgZ2VuZXJhdG9yT3B0aW9ucyA9IHt9O1xuICB9XG5cbiAgdmFyIF9nZW5lcmF0b3JPcHRpb25zID0gZ2VuZXJhdG9yT3B0aW9ucyxcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZiA9IF9nZW5lcmF0b3JPcHRpb25zLmRlZmF1bHRNb2RpZmllcnMsXG4gICAgICBkZWZhdWx0TW9kaWZpZXJzID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmID09PSB2b2lkIDAgPyBbXSA6IF9nZW5lcmF0b3JPcHRpb25zJGRlZixcbiAgICAgIF9nZW5lcmF0b3JPcHRpb25zJGRlZjIgPSBfZ2VuZXJhdG9yT3B0aW9ucy5kZWZhdWx0T3B0aW9ucyxcbiAgICAgIGRlZmF1bHRPcHRpb25zID0gX2dlbmVyYXRvck9wdGlvbnMkZGVmMiA9PT0gdm9pZCAwID8gREVGQVVMVF9PUFRJT05TIDogX2dlbmVyYXRvck9wdGlvbnMkZGVmMjtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVBvcHBlcihyZWZlcmVuY2UsIHBvcHBlciwgb3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zID09PSB2b2lkIDApIHtcbiAgICAgIG9wdGlvbnMgPSBkZWZhdWx0T3B0aW9ucztcbiAgICB9XG5cbiAgICB2YXIgc3RhdGUgPSB7XG4gICAgICBwbGFjZW1lbnQ6ICdib3R0b20nLFxuICAgICAgb3JkZXJlZE1vZGlmaWVyczogW10sXG4gICAgICBvcHRpb25zOiBPYmplY3QuYXNzaWduKHt9LCBERUZBVUxUX09QVElPTlMsIGRlZmF1bHRPcHRpb25zKSxcbiAgICAgIG1vZGlmaWVyc0RhdGE6IHt9LFxuICAgICAgZWxlbWVudHM6IHtcbiAgICAgICAgcmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgIHBvcHBlcjogcG9wcGVyXG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBzdHlsZXM6IHt9XG4gICAgfTtcbiAgICB2YXIgZWZmZWN0Q2xlYW51cEZucyA9IFtdO1xuICAgIHZhciBpc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHZhciBpbnN0YW5jZSA9IHtcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgIHNldE9wdGlvbnM6IGZ1bmN0aW9uIHNldE9wdGlvbnMoc2V0T3B0aW9uc0FjdGlvbikge1xuICAgICAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiBzZXRPcHRpb25zQWN0aW9uID09PSAnZnVuY3Rpb24nID8gc2V0T3B0aW9uc0FjdGlvbihzdGF0ZS5vcHRpb25zKSA6IHNldE9wdGlvbnNBY3Rpb247XG4gICAgICAgIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgc3RhdGUub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCBzdGF0ZS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICAgICAgc3RhdGUuc2Nyb2xsUGFyZW50cyA9IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGlzRWxlbWVudChyZWZlcmVuY2UpID8gbGlzdFNjcm9sbFBhcmVudHMocmVmZXJlbmNlKSA6IHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCA/IGxpc3RTY3JvbGxQYXJlbnRzKHJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkgOiBbXSxcbiAgICAgICAgICBwb3BwZXI6IGxpc3RTY3JvbGxQYXJlbnRzKHBvcHBlcilcbiAgICAgICAgfTsgLy8gT3JkZXJzIHRoZSBtb2RpZmllcnMgYmFzZWQgb24gdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCBgcGhhc2VgXG4gICAgICAgIC8vIHByb3BlcnRpZXNcblxuICAgICAgICB2YXIgb3JkZXJlZE1vZGlmaWVycyA9IG9yZGVyTW9kaWZpZXJzKG1lcmdlQnlOYW1lKFtdLmNvbmNhdChkZWZhdWx0TW9kaWZpZXJzLCBzdGF0ZS5vcHRpb25zLm1vZGlmaWVycykpKTsgLy8gU3RyaXAgb3V0IGRpc2FibGVkIG1vZGlmaWVyc1xuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMgPSBvcmRlcmVkTW9kaWZpZXJzLmZpbHRlcihmdW5jdGlvbiAobSkge1xuICAgICAgICAgIHJldHVybiBtLmVuYWJsZWQ7XG4gICAgICAgIH0pO1xuICAgICAgICBydW5Nb2RpZmllckVmZmVjdHMoKTtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnVwZGF0ZSgpO1xuICAgICAgfSxcbiAgICAgIC8vIFN5bmMgdXBkYXRlIFx1MjAxMyBpdCB3aWxsIGFsd2F5cyBiZSBleGVjdXRlZCwgZXZlbiBpZiBub3QgbmVjZXNzYXJ5LiBUaGlzXG4gICAgICAvLyBpcyB1c2VmdWwgZm9yIGxvdyBmcmVxdWVuY3kgdXBkYXRlcyB3aGVyZSBzeW5jIGJlaGF2aW9yIHNpbXBsaWZpZXMgdGhlXG4gICAgICAvLyBsb2dpYy5cbiAgICAgIC8vIEZvciBoaWdoIGZyZXF1ZW5jeSB1cGRhdGVzIChlLmcuIGByZXNpemVgIGFuZCBgc2Nyb2xsYCBldmVudHMpLCBhbHdheXNcbiAgICAgIC8vIHByZWZlciB0aGUgYXN5bmMgUG9wcGVyI3VwZGF0ZSBtZXRob2RcbiAgICAgIGZvcmNlVXBkYXRlOiBmdW5jdGlvbiBmb3JjZVVwZGF0ZSgpIHtcbiAgICAgICAgaWYgKGlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIF9zdGF0ZSRlbGVtZW50cyA9IHN0YXRlLmVsZW1lbnRzLFxuICAgICAgICAgICAgcmVmZXJlbmNlID0gX3N0YXRlJGVsZW1lbnRzLnJlZmVyZW5jZSxcbiAgICAgICAgICAgIHBvcHBlciA9IF9zdGF0ZSRlbGVtZW50cy5wb3BwZXI7IC8vIERvbid0IHByb2NlZWQgaWYgYHJlZmVyZW5jZWAgb3IgYHBvcHBlcmAgYXJlIG5vdCB2YWxpZCBlbGVtZW50c1xuICAgICAgICAvLyBhbnltb3JlXG5cbiAgICAgICAgaWYgKCFhcmVWYWxpZEVsZW1lbnRzKHJlZmVyZW5jZSwgcG9wcGVyKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSAvLyBTdG9yZSB0aGUgcmVmZXJlbmNlIGFuZCBwb3BwZXIgcmVjdHMgdG8gYmUgcmVhZCBieSBtb2RpZmllcnNcblxuXG4gICAgICAgIHN0YXRlLnJlY3RzID0ge1xuICAgICAgICAgIHJlZmVyZW5jZTogZ2V0Q29tcG9zaXRlUmVjdChyZWZlcmVuY2UsIGdldE9mZnNldFBhcmVudChwb3BwZXIpLCBzdGF0ZS5vcHRpb25zLnN0cmF0ZWd5ID09PSAnZml4ZWQnKSxcbiAgICAgICAgICBwb3BwZXI6IGdldExheW91dFJlY3QocG9wcGVyKVxuICAgICAgICB9OyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byByZXNldCB0aGUgY3VycmVudCB1cGRhdGUgY3ljbGUuIFRoZVxuICAgICAgICAvLyBtb3N0IGNvbW1vbiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB0aGUgYGZsaXBgIG1vZGlmaWVyIGNoYW5naW5nIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQsIHdoaWNoIHRoZW4gbmVlZHMgdG8gcmUtcnVuIGFsbCB0aGUgbW9kaWZpZXJzLCBiZWNhdXNlIHRoZVxuICAgICAgICAvLyBsb2dpYyB3YXMgcHJldmlvdXNseSByYW4gZm9yIHRoZSBwcmV2aW91cyBwbGFjZW1lbnQgYW5kIGlzIHRoZXJlZm9yZVxuICAgICAgICAvLyBzdGFsZS9pbmNvcnJlY3RcblxuICAgICAgICBzdGF0ZS5yZXNldCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5wbGFjZW1lbnQgPSBzdGF0ZS5vcHRpb25zLnBsYWNlbWVudDsgLy8gT24gZWFjaCB1cGRhdGUgY3ljbGUsIHRoZSBgbW9kaWZpZXJzRGF0YWAgcHJvcGVydHkgZm9yIGVhY2ggbW9kaWZpZXJcbiAgICAgICAgLy8gaXMgZmlsbGVkIHdpdGggdGhlIGluaXRpYWwgZGF0YSBzcGVjaWZpZWQgYnkgdGhlIG1vZGlmaWVyLiBUaGlzIG1lYW5zXG4gICAgICAgIC8vIGl0IGRvZXNuJ3QgcGVyc2lzdCBhbmQgaXMgZnJlc2ggb24gZWFjaCB1cGRhdGUuXG4gICAgICAgIC8vIFRvIGVuc3VyZSBwZXJzaXN0ZW50IGRhdGEsIHVzZSBgJHtuYW1lfSNwZXJzaXN0ZW50YFxuXG4gICAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGUubW9kaWZpZXJzRGF0YVttb2RpZmllci5uYW1lXSA9IE9iamVjdC5hc3NpZ24oe30sIG1vZGlmaWVyLmRhdGEpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgc3RhdGUub3JkZXJlZE1vZGlmaWVycy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBpZiAoc3RhdGUucmVzZXQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHN0YXRlLnJlc2V0ID0gZmFsc2U7XG4gICAgICAgICAgICBpbmRleCA9IC0xO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIF9zdGF0ZSRvcmRlcmVkTW9kaWZpZSA9IHN0YXRlLm9yZGVyZWRNb2RpZmllcnNbaW5kZXhdLFxuICAgICAgICAgICAgICBmbiA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5mbixcbiAgICAgICAgICAgICAgX3N0YXRlJG9yZGVyZWRNb2RpZmllMiA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5vcHRpb25zLFxuICAgICAgICAgICAgICBfb3B0aW9ucyA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZTIgPT09IHZvaWQgMCA/IHt9IDogX3N0YXRlJG9yZGVyZWRNb2RpZmllMixcbiAgICAgICAgICAgICAgbmFtZSA9IF9zdGF0ZSRvcmRlcmVkTW9kaWZpZS5uYW1lO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgc3RhdGUgPSBmbih7XG4gICAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgICAgb3B0aW9uczogX29wdGlvbnMsXG4gICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgIGluc3RhbmNlOiBpbnN0YW5jZVxuICAgICAgICAgICAgfSkgfHwgc3RhdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gQXN5bmMgYW5kIG9wdGltaXN0aWNhbGx5IG9wdGltaXplZCB1cGRhdGUgXHUyMDEzIGl0IHdpbGwgbm90IGJlIGV4ZWN1dGVkIGlmXG4gICAgICAvLyBub3QgbmVjZXNzYXJ5IChkZWJvdW5jZWQgdG8gcnVuIGF0IG1vc3Qgb25jZS1wZXItdGljaylcbiAgICAgIHVwZGF0ZTogZGVib3VuY2UoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICBpbnN0YW5jZS5mb3JjZVVwZGF0ZSgpO1xuICAgICAgICAgIHJlc29sdmUoc3RhdGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgY2xlYW51cE1vZGlmaWVyRWZmZWN0cygpO1xuICAgICAgICBpc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICghYXJlVmFsaWRFbGVtZW50cyhyZWZlcmVuY2UsIHBvcHBlcikpIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9XG5cbiAgICBpbnN0YW5jZS5zZXRPcHRpb25zKG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKHN0YXRlKSB7XG4gICAgICBpZiAoIWlzRGVzdHJveWVkICYmIG9wdGlvbnMub25GaXJzdFVwZGF0ZSkge1xuICAgICAgICBvcHRpb25zLm9uRmlyc3RVcGRhdGUoc3RhdGUpO1xuICAgICAgfVxuICAgIH0pOyAvLyBNb2RpZmllcnMgaGF2ZSB0aGUgYWJpbGl0eSB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIGJlZm9yZSB0aGUgZmlyc3RcbiAgICAvLyB1cGRhdGUgY3ljbGUgcnVucy4gVGhleSB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSB1cGRhdGVcbiAgICAvLyBjeWNsZS4gVGhpcyBpcyB1c2VmdWwgd2hlbiBhIG1vZGlmaWVyIGFkZHMgc29tZSBwZXJzaXN0ZW50IGRhdGEgdGhhdFxuICAgIC8vIG90aGVyIG1vZGlmaWVycyBuZWVkIHRvIHVzZSwgYnV0IHRoZSBtb2RpZmllciBpcyBydW4gYWZ0ZXIgdGhlIGRlcGVuZGVudFxuICAgIC8vIG9uZS5cblxuICAgIGZ1bmN0aW9uIHJ1bk1vZGlmaWVyRWZmZWN0cygpIHtcbiAgICAgIHN0YXRlLm9yZGVyZWRNb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoX3JlZikge1xuICAgICAgICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgICAgICAgIF9yZWYkb3B0aW9ucyA9IF9yZWYub3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnMgPSBfcmVmJG9wdGlvbnMgPT09IHZvaWQgMCA/IHt9IDogX3JlZiRvcHRpb25zLFxuICAgICAgICAgICAgZWZmZWN0ID0gX3JlZi5lZmZlY3Q7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBlZmZlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgY2xlYW51cEZuID0gZWZmZWN0KHtcbiAgICAgICAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB2YXIgbm9vcEZuID0gZnVuY3Rpb24gbm9vcEZuKCkge307XG5cbiAgICAgICAgICBlZmZlY3RDbGVhbnVwRm5zLnB1c2goY2xlYW51cEZuIHx8IG5vb3BGbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFudXBNb2RpZmllckVmZmVjdHMoKSB7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgICAgfSk7XG4gICAgICBlZmZlY3RDbGVhbnVwRm5zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9O1xufVxuZXhwb3J0IHZhciBjcmVhdGVQb3BwZXIgPSAvKiNfX1BVUkVfXyovcG9wcGVyR2VuZXJhdG9yKCk7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tdW51c2VkLW1vZHVsZXNcblxuZXhwb3J0IHsgZGV0ZWN0T3ZlcmZsb3cgfTsiLCAiaW1wb3J0IHsgcG9wcGVyR2VuZXJhdG9yLCBkZXRlY3RPdmVyZmxvdyB9IGZyb20gXCIuL2NyZWF0ZVBvcHBlci5qc1wiO1xuaW1wb3J0IGV2ZW50TGlzdGVuZXJzIGZyb20gXCIuL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qc1wiO1xuaW1wb3J0IHBvcHBlck9mZnNldHMgZnJvbSBcIi4vbW9kaWZpZXJzL3BvcHBlck9mZnNldHMuanNcIjtcbmltcG9ydCBjb21wdXRlU3R5bGVzIGZyb20gXCIuL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzXCI7XG5pbXBvcnQgYXBwbHlTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzXCI7XG52YXIgZGVmYXVsdE1vZGlmaWVycyA9IFtldmVudExpc3RlbmVycywgcG9wcGVyT2Zmc2V0cywgY29tcHV0ZVN0eWxlcywgYXBwbHlTdHlsZXNdO1xudmFyIGNyZWF0ZVBvcHBlciA9IC8qI19fUFVSRV9fKi9wb3BwZXJHZW5lcmF0b3Ioe1xuICBkZWZhdWx0TW9kaWZpZXJzOiBkZWZhdWx0TW9kaWZpZXJzXG59KTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgeyBjcmVhdGVQb3BwZXIsIHBvcHBlckdlbmVyYXRvciwgZGVmYXVsdE1vZGlmaWVycywgZGV0ZWN0T3ZlcmZsb3cgfTsiLCAiaW1wb3J0IHsgcG9wcGVyR2VuZXJhdG9yLCBkZXRlY3RPdmVyZmxvdyB9IGZyb20gXCIuL2NyZWF0ZVBvcHBlci5qc1wiO1xuaW1wb3J0IGV2ZW50TGlzdGVuZXJzIGZyb20gXCIuL21vZGlmaWVycy9ldmVudExpc3RlbmVycy5qc1wiO1xuaW1wb3J0IHBvcHBlck9mZnNldHMgZnJvbSBcIi4vbW9kaWZpZXJzL3BvcHBlck9mZnNldHMuanNcIjtcbmltcG9ydCBjb21wdXRlU3R5bGVzIGZyb20gXCIuL21vZGlmaWVycy9jb21wdXRlU3R5bGVzLmpzXCI7XG5pbXBvcnQgYXBwbHlTdHlsZXMgZnJvbSBcIi4vbW9kaWZpZXJzL2FwcGx5U3R5bGVzLmpzXCI7XG5pbXBvcnQgb2Zmc2V0IGZyb20gXCIuL21vZGlmaWVycy9vZmZzZXQuanNcIjtcbmltcG9ydCBmbGlwIGZyb20gXCIuL21vZGlmaWVycy9mbGlwLmpzXCI7XG5pbXBvcnQgcHJldmVudE92ZXJmbG93IGZyb20gXCIuL21vZGlmaWVycy9wcmV2ZW50T3ZlcmZsb3cuanNcIjtcbmltcG9ydCBhcnJvdyBmcm9tIFwiLi9tb2RpZmllcnMvYXJyb3cuanNcIjtcbmltcG9ydCBoaWRlIGZyb20gXCIuL21vZGlmaWVycy9oaWRlLmpzXCI7XG52YXIgZGVmYXVsdE1vZGlmaWVycyA9IFtldmVudExpc3RlbmVycywgcG9wcGVyT2Zmc2V0cywgY29tcHV0ZVN0eWxlcywgYXBwbHlTdHlsZXMsIG9mZnNldCwgZmxpcCwgcHJldmVudE92ZXJmbG93LCBhcnJvdywgaGlkZV07XG52YXIgY3JlYXRlUG9wcGVyID0gLyojX19QVVJFX18qL3BvcHBlckdlbmVyYXRvcih7XG4gIGRlZmF1bHRNb2RpZmllcnM6IGRlZmF1bHRNb2RpZmllcnNcbn0pOyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IGNyZWF0ZVBvcHBlciwgcG9wcGVyR2VuZXJhdG9yLCBkZWZhdWx0TW9kaWZpZXJzLCBkZXRlY3RPdmVyZmxvdyB9OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLXVudXNlZC1tb2R1bGVzXG5cbmV4cG9ydCB7IGNyZWF0ZVBvcHBlciBhcyBjcmVhdGVQb3BwZXJMaXRlIH0gZnJvbSBcIi4vcG9wcGVyLWxpdGUuanNcIjsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby11bnVzZWQtbW9kdWxlc1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RpZmllcnMvaW5kZXguanNcIjsiLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIGRvbS9kYXRhLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBlbGVtZW50TWFwID0gbmV3IE1hcCgpXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc2V0KGVsZW1lbnQsIGtleSwgaW5zdGFuY2UpIHtcbiAgICBpZiAoIWVsZW1lbnRNYXAuaGFzKGVsZW1lbnQpKSB7XG4gICAgICBlbGVtZW50TWFwLnNldChlbGVtZW50LCBuZXcgTWFwKCkpXG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VNYXAgPSBlbGVtZW50TWFwLmdldChlbGVtZW50KVxuXG4gICAgLy8gbWFrZSBpdCBjbGVhciB3ZSBvbmx5IHdhbnQgb25lIGluc3RhbmNlIHBlciBlbGVtZW50XG4gICAgLy8gY2FuIGJlIHJlbW92ZWQgbGF0ZXIgd2hlbiBtdWx0aXBsZSBrZXkvaW5zdGFuY2VzIGFyZSBmaW5lIHRvIGJlIHVzZWRcbiAgICBpZiAoIWluc3RhbmNlTWFwLmhhcyhrZXkpICYmIGluc3RhbmNlTWFwLnNpemUgIT09IDApIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmVycm9yKGBCb290c3RyYXAgZG9lc24ndCBhbGxvdyBtb3JlIHRoYW4gb25lIGluc3RhbmNlIHBlciBlbGVtZW50LiBCb3VuZCBpbnN0YW5jZTogJHtBcnJheS5mcm9tKGluc3RhbmNlTWFwLmtleXMoKSlbMF19LmApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbnN0YW5jZU1hcC5zZXQoa2V5LCBpbnN0YW5jZSlcbiAgfSxcblxuICBnZXQoZWxlbWVudCwga2V5KSB7XG4gICAgaWYgKGVsZW1lbnRNYXAuaGFzKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudE1hcC5nZXQoZWxlbWVudCkuZ2V0KGtleSkgfHwgbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG5cbiAgcmVtb3ZlKGVsZW1lbnQsIGtleSkge1xuICAgIGlmICghZWxlbWVudE1hcC5oYXMoZWxlbWVudCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbmNlTWFwID0gZWxlbWVudE1hcC5nZXQoZWxlbWVudClcblxuICAgIGluc3RhbmNlTWFwLmRlbGV0ZShrZXkpXG5cbiAgICAvLyBmcmVlIHVwIGVsZW1lbnQgcmVmZXJlbmNlcyBpZiB0aGVyZSBhcmUgbm8gaW5zdGFuY2VzIGxlZnQgZm9yIGFuIGVsZW1lbnRcbiAgICBpZiAoaW5zdGFuY2VNYXAuc2l6ZSA9PT0gMCkge1xuICAgICAgZWxlbWVudE1hcC5kZWxldGUoZWxlbWVudClcbiAgICB9XG4gIH1cbn1cbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9pbmRleC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmNvbnN0IE1BWF9VSUQgPSAxXzAwMF8wMDBcbmNvbnN0IE1JTExJU0VDT05EU19NVUxUSVBMSUVSID0gMTAwMFxuY29uc3QgVFJBTlNJVElPTl9FTkQgPSAndHJhbnNpdGlvbmVuZCdcblxuLyoqXG4gKiBQcm9wZXJseSBlc2NhcGUgSURzIHNlbGVjdG9ycyB0byBoYW5kbGUgd2VpcmQgSURzXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmNvbnN0IHBhcnNlU2VsZWN0b3IgPSBzZWxlY3RvciA9PiB7XG4gIGlmIChzZWxlY3RvciAmJiB3aW5kb3cuQ1NTICYmIHdpbmRvdy5DU1MuZXNjYXBlKSB7XG4gICAgLy8gZG9jdW1lbnQucXVlcnlTZWxlY3RvciBuZWVkcyBlc2NhcGluZyB0byBoYW5kbGUgSURzIChodG1sNSspIGNvbnRhaW5pbmcgZm9yIGluc3RhbmNlIC9cbiAgICBzZWxlY3RvciA9IHNlbGVjdG9yLnJlcGxhY2UoLyMoW15cXHNcIiMnXSspL2csIChtYXRjaCwgaWQpID0+IGAjJHtDU1MuZXNjYXBlKGlkKX1gKVxuICB9XG5cbiAgcmV0dXJuIHNlbGVjdG9yXG59XG5cbi8vIFNob3V0LW91dCBBbmd1cyBDcm9sbCAoaHR0cHM6Ly9nb28uZ2wvcHh3UUdwKVxuY29uc3QgdG9UeXBlID0gb2JqZWN0ID0+IHtcbiAgaWYgKG9iamVjdCA9PT0gbnVsbCB8fCBvYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBgJHtvYmplY3R9YFxuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpLm1hdGNoKC9cXHMoW2Etel0rKS9pKVsxXS50b0xvd2VyQ2FzZSgpXG59XG5cbi8qKlxuICogUHVibGljIFV0aWwgQVBJXG4gKi9cblxuY29uc3QgZ2V0VUlEID0gcHJlZml4ID0+IHtcbiAgZG8ge1xuICAgIHByZWZpeCArPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNQVhfVUlEKVxuICB9IHdoaWxlIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmVmaXgpKVxuXG4gIHJldHVybiBwcmVmaXhcbn1cblxuY29uc3QgZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQgPSBlbGVtZW50ID0+IHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuXG4gIC8vIEdldCB0cmFuc2l0aW9uLWR1cmF0aW9uIG9mIHRoZSBlbGVtZW50XG4gIGxldCB7IHRyYW5zaXRpb25EdXJhdGlvbiwgdHJhbnNpdGlvbkRlbGF5IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVxuXG4gIGNvbnN0IGZsb2F0VHJhbnNpdGlvbkR1cmF0aW9uID0gTnVtYmVyLnBhcnNlRmxvYXQodHJhbnNpdGlvbkR1cmF0aW9uKVxuICBjb25zdCBmbG9hdFRyYW5zaXRpb25EZWxheSA9IE51bWJlci5wYXJzZUZsb2F0KHRyYW5zaXRpb25EZWxheSlcblxuICAvLyBSZXR1cm4gMCBpZiBlbGVtZW50IG9yIHRyYW5zaXRpb24gZHVyYXRpb24gaXMgbm90IGZvdW5kXG4gIGlmICghZmxvYXRUcmFuc2l0aW9uRHVyYXRpb24gJiYgIWZsb2F0VHJhbnNpdGlvbkRlbGF5KSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuXG4gIC8vIElmIG11bHRpcGxlIGR1cmF0aW9ucyBhcmUgZGVmaW5lZCwgdGFrZSB0aGUgZmlyc3RcbiAgdHJhbnNpdGlvbkR1cmF0aW9uID0gdHJhbnNpdGlvbkR1cmF0aW9uLnNwbGl0KCcsJylbMF1cbiAgdHJhbnNpdGlvbkRlbGF5ID0gdHJhbnNpdGlvbkRlbGF5LnNwbGl0KCcsJylbMF1cblxuICByZXR1cm4gKE51bWJlci5wYXJzZUZsb2F0KHRyYW5zaXRpb25EdXJhdGlvbikgKyBOdW1iZXIucGFyc2VGbG9hdCh0cmFuc2l0aW9uRGVsYXkpKSAqIE1JTExJU0VDT05EU19NVUxUSVBMSUVSXG59XG5cbmNvbnN0IHRyaWdnZXJUcmFuc2l0aW9uRW5kID0gZWxlbWVudCA9PiB7XG4gIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoVFJBTlNJVElPTl9FTkQpKVxufVxuXG5jb25zdCBpc0VsZW1lbnQgPSBvYmplY3QgPT4ge1xuICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmplY3QuanF1ZXJ5ICE9PSAndW5kZWZpbmVkJykge1xuICAgIG9iamVjdCA9IG9iamVjdFswXVxuICB9XG5cbiAgcmV0dXJuIHR5cGVvZiBvYmplY3Qubm9kZVR5cGUgIT09ICd1bmRlZmluZWQnXG59XG5cbmNvbnN0IGdldEVsZW1lbnQgPSBvYmplY3QgPT4ge1xuICAvLyBpdCdzIGEgalF1ZXJ5IG9iamVjdCBvciBhIG5vZGUgZWxlbWVudFxuICBpZiAoaXNFbGVtZW50KG9iamVjdCkpIHtcbiAgICByZXR1cm4gb2JqZWN0LmpxdWVyeSA/IG9iamVjdFswXSA6IG9iamVjdFxuICB9XG5cbiAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnICYmIG9iamVjdC5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocGFyc2VTZWxlY3RvcihvYmplY3QpKVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgaXNWaXNpYmxlID0gZWxlbWVudCA9PiB7XG4gIGlmICghaXNFbGVtZW50KGVsZW1lbnQpIHx8IGVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRJc1Zpc2libGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3Zpc2liaWxpdHknKSA9PT0gJ3Zpc2libGUnXG4gIC8vIEhhbmRsZSBgZGV0YWlsc2AgZWxlbWVudCBhcyBpdHMgY29udGVudCBtYXkgZmFsc2llIGFwcGVhciB2aXNpYmxlIHdoZW4gaXQgaXMgY2xvc2VkXG4gIGNvbnN0IGNsb3NlZERldGFpbHMgPSBlbGVtZW50LmNsb3Nlc3QoJ2RldGFpbHM6bm90KFtvcGVuXSknKVxuXG4gIGlmICghY2xvc2VkRGV0YWlscykge1xuICAgIHJldHVybiBlbGVtZW50SXNWaXNpYmxlXG4gIH1cblxuICBpZiAoY2xvc2VkRGV0YWlscyAhPT0gZWxlbWVudCkge1xuICAgIGNvbnN0IHN1bW1hcnkgPSBlbGVtZW50LmNsb3Nlc3QoJ3N1bW1hcnknKVxuICAgIGlmIChzdW1tYXJ5ICYmIHN1bW1hcnkucGFyZW50Tm9kZSAhPT0gY2xvc2VkRGV0YWlscykge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKHN1bW1hcnkgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlbGVtZW50SXNWaXNpYmxlXG59XG5cbmNvbnN0IGlzRGlzYWJsZWQgPSBlbGVtZW50ID0+IHtcbiAgaWYgKCFlbGVtZW50IHx8IGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodHlwZW9mIGVsZW1lbnQuZGlzYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuZGlzYWJsZWRcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gJ2ZhbHNlJ1xufVxuXG5jb25zdCBmaW5kU2hhZG93Um9vdCA9IGVsZW1lbnQgPT4ge1xuICBpZiAoIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hdHRhY2hTaGFkb3cpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gQ2FuIGZpbmQgdGhlIHNoYWRvdyByb290IG90aGVyd2lzZSBpdCdsbCByZXR1cm4gdGhlIGRvY3VtZW50XG4gIGlmICh0eXBlb2YgZWxlbWVudC5nZXRSb290Tm9kZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHJvb3QgPSBlbGVtZW50LmdldFJvb3ROb2RlKClcbiAgICByZXR1cm4gcm9vdCBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QgPyByb290IDogbnVsbFxuICB9XG5cbiAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG4gICAgcmV0dXJuIGVsZW1lbnRcbiAgfVxuXG4gIC8vIHdoZW4gd2UgZG9uJ3QgZmluZCBhIHNoYWRvdyByb290XG4gIGlmICghZWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBmaW5kU2hhZG93Um9vdChlbGVtZW50LnBhcmVudE5vZGUpXG59XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fVxuXG4vKipcbiAqIFRyaWNrIHRvIHJlc3RhcnQgYW4gZWxlbWVudCdzIGFuaW1hdGlvblxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm4gdm9pZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly93d3cuY2hhcmlzdGhlby5pby9ibG9nLzIwMjEvMDIvcmVzdGFydC1hLWNzcy1hbmltYXRpb24td2l0aC1qYXZhc2NyaXB0LyNyZXN0YXJ0aW5nLWEtY3NzLWFuaW1hdGlvblxuICovXG5jb25zdCByZWZsb3cgPSBlbGVtZW50ID0+IHtcbiAgZWxlbWVudC5vZmZzZXRIZWlnaHQgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcbn1cblxuY29uc3QgZ2V0alF1ZXJ5ID0gKCkgPT4ge1xuICBpZiAod2luZG93LmpRdWVyeSAmJiAhZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnMtbm8tanF1ZXJ5JykpIHtcbiAgICByZXR1cm4gd2luZG93LmpRdWVyeVxuICB9XG5cbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgRE9NQ29udGVudExvYWRlZENhbGxiYWNrcyA9IFtdXG5cbmNvbnN0IG9uRE9NQ29udGVudExvYWRlZCA9IGNhbGxiYWNrID0+IHtcbiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykge1xuICAgIC8vIGFkZCBsaXN0ZW5lciBvbiB0aGUgZmlyc3QgY2FsbCB3aGVuIHRoZSBkb2N1bWVudCBpcyBpbiBsb2FkaW5nIHN0YXRlXG4gICAgaWYgKCFET01Db250ZW50TG9hZGVkQ2FsbGJhY2tzLmxlbmd0aCkge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBjYWxsYmFjayBvZiBET01Db250ZW50TG9hZGVkQ2FsbGJhY2tzKSB7XG4gICAgICAgICAgY2FsbGJhY2soKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIERPTUNvbnRlbnRMb2FkZWRDYWxsYmFja3MucHVzaChjYWxsYmFjaylcbiAgfSBlbHNlIHtcbiAgICBjYWxsYmFjaygpXG4gIH1cbn1cblxuY29uc3QgaXNSVEwgPSAoKSA9PiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyID09PSAncnRsJ1xuXG5jb25zdCBkZWZpbmVKUXVlcnlQbHVnaW4gPSBwbHVnaW4gPT4ge1xuICBvbkRPTUNvbnRlbnRMb2FkZWQoKCkgPT4ge1xuICAgIGNvbnN0ICQgPSBnZXRqUXVlcnkoKVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICgkKSB7XG4gICAgICBjb25zdCBuYW1lID0gcGx1Z2luLk5BTUVcbiAgICAgIGNvbnN0IEpRVUVSWV9OT19DT05GTElDVCA9ICQuZm5bbmFtZV1cbiAgICAgICQuZm5bbmFtZV0gPSBwbHVnaW4ualF1ZXJ5SW50ZXJmYWNlXG4gICAgICAkLmZuW25hbWVdLkNvbnN0cnVjdG9yID0gcGx1Z2luXG4gICAgICAkLmZuW25hbWVdLm5vQ29uZmxpY3QgPSAoKSA9PiB7XG4gICAgICAgICQuZm5bbmFtZV0gPSBKUVVFUllfTk9fQ09ORkxJQ1RcbiAgICAgICAgcmV0dXJuIHBsdWdpbi5qUXVlcnlJbnRlcmZhY2VcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbmNvbnN0IGV4ZWN1dGUgPSAocG9zc2libGVDYWxsYmFjaywgYXJncyA9IFtdLCBkZWZhdWx0VmFsdWUgPSBwb3NzaWJsZUNhbGxiYWNrKSA9PiB7XG4gIHJldHVybiB0eXBlb2YgcG9zc2libGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJyA/IHBvc3NpYmxlQ2FsbGJhY2soLi4uYXJncykgOiBkZWZhdWx0VmFsdWVcbn1cblxuY29uc3QgZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbiA9IChjYWxsYmFjaywgdHJhbnNpdGlvbkVsZW1lbnQsIHdhaXRGb3JUcmFuc2l0aW9uID0gdHJ1ZSkgPT4ge1xuICBpZiAoIXdhaXRGb3JUcmFuc2l0aW9uKSB7XG4gICAgZXhlY3V0ZShjYWxsYmFjaylcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGR1cmF0aW9uUGFkZGluZyA9IDVcbiAgY29uc3QgZW11bGF0ZWREdXJhdGlvbiA9IGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50KHRyYW5zaXRpb25FbGVtZW50KSArIGR1cmF0aW9uUGFkZGluZ1xuXG4gIGxldCBjYWxsZWQgPSBmYWxzZVxuXG4gIGNvbnN0IGhhbmRsZXIgPSAoeyB0YXJnZXQgfSkgPT4ge1xuICAgIGlmICh0YXJnZXQgIT09IHRyYW5zaXRpb25FbGVtZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjYWxsZWQgPSB0cnVlXG4gICAgdHJhbnNpdGlvbkVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihUUkFOU0lUSU9OX0VORCwgaGFuZGxlcilcbiAgICBleGVjdXRlKGNhbGxiYWNrKVxuICB9XG5cbiAgdHJhbnNpdGlvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihUUkFOU0lUSU9OX0VORCwgaGFuZGxlcilcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKCFjYWxsZWQpIHtcbiAgICAgIHRyaWdnZXJUcmFuc2l0aW9uRW5kKHRyYW5zaXRpb25FbGVtZW50KVxuICAgIH1cbiAgfSwgZW11bGF0ZWREdXJhdGlvbilcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHByZXZpb3VzL25leHQgZWxlbWVudCBvZiBhIGxpc3QuXG4gKlxuICogQHBhcmFtIHthcnJheX0gbGlzdCAgICBUaGUgbGlzdCBvZiBlbGVtZW50c1xuICogQHBhcmFtIGFjdGl2ZUVsZW1lbnQgICBUaGUgYWN0aXZlIGVsZW1lbnRcbiAqIEBwYXJhbSBzaG91bGRHZXROZXh0ICAgQ2hvb3NlIHRvIGdldCBuZXh0IG9yIHByZXZpb3VzIGVsZW1lbnRcbiAqIEBwYXJhbSBpc0N5Y2xlQWxsb3dlZFxuICogQHJldHVybiB7RWxlbWVudHxlbGVtfSBUaGUgcHJvcGVyIGVsZW1lbnRcbiAqL1xuY29uc3QgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQgPSAobGlzdCwgYWN0aXZlRWxlbWVudCwgc2hvdWxkR2V0TmV4dCwgaXNDeWNsZUFsbG93ZWQpID0+IHtcbiAgY29uc3QgbGlzdExlbmd0aCA9IGxpc3QubGVuZ3RoXG4gIGxldCBpbmRleCA9IGxpc3QuaW5kZXhPZihhY3RpdmVFbGVtZW50KVxuXG4gIC8vIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGV4aXN0IGluIHRoZSBsaXN0IHJldHVybiBhbiBlbGVtZW50XG4gIC8vIGRlcGVuZGluZyBvbiB0aGUgZGlyZWN0aW9uIGFuZCBpZiBjeWNsZSBpcyBhbGxvd2VkXG4gIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICByZXR1cm4gIXNob3VsZEdldE5leHQgJiYgaXNDeWNsZUFsbG93ZWQgPyBsaXN0W2xpc3RMZW5ndGggLSAxXSA6IGxpc3RbMF1cbiAgfVxuXG4gIGluZGV4ICs9IHNob3VsZEdldE5leHQgPyAxIDogLTFcblxuICBpZiAoaXNDeWNsZUFsbG93ZWQpIHtcbiAgICBpbmRleCA9IChpbmRleCArIGxpc3RMZW5ndGgpICUgbGlzdExlbmd0aFxuICB9XG5cbiAgcmV0dXJuIGxpc3RbTWF0aC5tYXgoMCwgTWF0aC5taW4oaW5kZXgsIGxpc3RMZW5ndGggLSAxKSldXG59XG5cbmV4cG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbixcbiAgZXhlY3V0ZSxcbiAgZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbixcbiAgZmluZFNoYWRvd1Jvb3QsXG4gIGdldEVsZW1lbnQsXG4gIGdldGpRdWVyeSxcbiAgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQsXG4gIGdldFRyYW5zaXRpb25EdXJhdGlvbkZyb21FbGVtZW50LFxuICBnZXRVSUQsXG4gIGlzRGlzYWJsZWQsXG4gIGlzRWxlbWVudCxcbiAgaXNSVEwsXG4gIGlzVmlzaWJsZSxcbiAgbm9vcCxcbiAgb25ET01Db250ZW50TG9hZGVkLFxuICBwYXJzZVNlbGVjdG9yLFxuICByZWZsb3csXG4gIHRyaWdnZXJUcmFuc2l0aW9uRW5kLFxuICB0b1R5cGVcbn1cbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgZG9tL2V2ZW50LWhhbmRsZXIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgeyBnZXRqUXVlcnkgfSBmcm9tICcuLi91dGlsL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IG5hbWVzcGFjZVJlZ2V4ID0gL1teLl0qKD89XFwuLiopXFwufC4qL1xuY29uc3Qgc3RyaXBOYW1lUmVnZXggPSAvXFwuLiovXG5jb25zdCBzdHJpcFVpZFJlZ2V4ID0gLzo6XFxkKyQvXG5jb25zdCBldmVudFJlZ2lzdHJ5ID0ge30gLy8gRXZlbnRzIHN0b3JhZ2VcbmxldCB1aWRFdmVudCA9IDFcbmNvbnN0IGN1c3RvbUV2ZW50cyA9IHtcbiAgbW91c2VlbnRlcjogJ21vdXNlb3ZlcicsXG4gIG1vdXNlbGVhdmU6ICdtb3VzZW91dCdcbn1cblxuY29uc3QgbmF0aXZlRXZlbnRzID0gbmV3IFNldChbXG4gICdjbGljaycsXG4gICdkYmxjbGljaycsXG4gICdtb3VzZXVwJyxcbiAgJ21vdXNlZG93bicsXG4gICdjb250ZXh0bWVudScsXG4gICdtb3VzZXdoZWVsJyxcbiAgJ0RPTU1vdXNlU2Nyb2xsJyxcbiAgJ21vdXNlb3ZlcicsXG4gICdtb3VzZW91dCcsXG4gICdtb3VzZW1vdmUnLFxuICAnc2VsZWN0c3RhcnQnLFxuICAnc2VsZWN0ZW5kJyxcbiAgJ2tleWRvd24nLFxuICAna2V5cHJlc3MnLFxuICAna2V5dXAnLFxuICAnb3JpZW50YXRpb25jaGFuZ2UnLFxuICAndG91Y2hzdGFydCcsXG4gICd0b3VjaG1vdmUnLFxuICAndG91Y2hlbmQnLFxuICAndG91Y2hjYW5jZWwnLFxuICAncG9pbnRlcmRvd24nLFxuICAncG9pbnRlcm1vdmUnLFxuICAncG9pbnRlcnVwJyxcbiAgJ3BvaW50ZXJsZWF2ZScsXG4gICdwb2ludGVyY2FuY2VsJyxcbiAgJ2dlc3R1cmVzdGFydCcsXG4gICdnZXN0dXJlY2hhbmdlJyxcbiAgJ2dlc3R1cmVlbmQnLFxuICAnZm9jdXMnLFxuICAnYmx1cicsXG4gICdjaGFuZ2UnLFxuICAncmVzZXQnLFxuICAnc2VsZWN0JyxcbiAgJ3N1Ym1pdCcsXG4gICdmb2N1c2luJyxcbiAgJ2ZvY3Vzb3V0JyxcbiAgJ2xvYWQnLFxuICAndW5sb2FkJyxcbiAgJ2JlZm9yZXVubG9hZCcsXG4gICdyZXNpemUnLFxuICAnbW92ZScsXG4gICdET01Db250ZW50TG9hZGVkJyxcbiAgJ3JlYWR5c3RhdGVjaGFuZ2UnLFxuICAnZXJyb3InLFxuICAnYWJvcnQnLFxuICAnc2Nyb2xsJ1xuXSlcblxuLyoqXG4gKiBQcml2YXRlIG1ldGhvZHNcbiAqL1xuXG5mdW5jdGlvbiBtYWtlRXZlbnRVaWQoZWxlbWVudCwgdWlkKSB7XG4gIHJldHVybiAodWlkICYmIGAke3VpZH06OiR7dWlkRXZlbnQrK31gKSB8fCBlbGVtZW50LnVpZEV2ZW50IHx8IHVpZEV2ZW50Kytcbn1cblxuZnVuY3Rpb24gZ2V0RWxlbWVudEV2ZW50cyhlbGVtZW50KSB7XG4gIGNvbnN0IHVpZCA9IG1ha2VFdmVudFVpZChlbGVtZW50KVxuXG4gIGVsZW1lbnQudWlkRXZlbnQgPSB1aWRcbiAgZXZlbnRSZWdpc3RyeVt1aWRdID0gZXZlbnRSZWdpc3RyeVt1aWRdIHx8IHt9XG5cbiAgcmV0dXJuIGV2ZW50UmVnaXN0cnlbdWlkXVxufVxuXG5mdW5jdGlvbiBib290c3RyYXBIYW5kbGVyKGVsZW1lbnQsIGZuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gICAgaHlkcmF0ZU9iaihldmVudCwgeyBkZWxlZ2F0ZVRhcmdldDogZWxlbWVudCB9KVxuXG4gICAgaWYgKGhhbmRsZXIub25lT2ZmKSB7XG4gICAgICBFdmVudEhhbmRsZXIub2ZmKGVsZW1lbnQsIGV2ZW50LnR5cGUsIGZuKVxuICAgIH1cblxuICAgIHJldHVybiBmbi5hcHBseShlbGVtZW50LCBbZXZlbnRdKVxuICB9XG59XG5cbmZ1bmN0aW9uIGJvb3RzdHJhcERlbGVnYXRpb25IYW5kbGVyKGVsZW1lbnQsIHNlbGVjdG9yLCBmbikge1xuICByZXR1cm4gZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICAgIGNvbnN0IGRvbUVsZW1lbnRzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKVxuXG4gICAgZm9yIChsZXQgeyB0YXJnZXQgfSA9IGV2ZW50OyB0YXJnZXQgJiYgdGFyZ2V0ICE9PSB0aGlzOyB0YXJnZXQgPSB0YXJnZXQucGFyZW50Tm9kZSkge1xuICAgICAgZm9yIChjb25zdCBkb21FbGVtZW50IG9mIGRvbUVsZW1lbnRzKSB7XG4gICAgICAgIGlmIChkb21FbGVtZW50ICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgaHlkcmF0ZU9iaihldmVudCwgeyBkZWxlZ2F0ZVRhcmdldDogdGFyZ2V0IH0pXG5cbiAgICAgICAgaWYgKGhhbmRsZXIub25lT2ZmKSB7XG4gICAgICAgICAgRXZlbnRIYW5kbGVyLm9mZihlbGVtZW50LCBldmVudC50eXBlLCBzZWxlY3RvciwgZm4pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm4uYXBwbHkodGFyZ2V0LCBbZXZlbnRdKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kSGFuZGxlcihldmVudHMsIGNhbGxhYmxlLCBkZWxlZ2F0aW9uU2VsZWN0b3IgPSBudWxsKSB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKGV2ZW50cylcbiAgICAuZmluZChldmVudCA9PiBldmVudC5jYWxsYWJsZSA9PT0gY2FsbGFibGUgJiYgZXZlbnQuZGVsZWdhdGlvblNlbGVjdG9yID09PSBkZWxlZ2F0aW9uU2VsZWN0b3IpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhcmFtZXRlcnMob3JpZ2luYWxUeXBlRXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbikge1xuICBjb25zdCBpc0RlbGVnYXRlZCA9IHR5cGVvZiBoYW5kbGVyID09PSAnc3RyaW5nJ1xuICAvLyBUT0RPOiB0b29sdGlwIHBhc3NlcyBgZmFsc2VgIGluc3RlYWQgb2Ygc2VsZWN0b3IsIHNvIHdlIG5lZWQgdG8gY2hlY2tcbiAgY29uc3QgY2FsbGFibGUgPSBpc0RlbGVnYXRlZCA/IGRlbGVnYXRpb25GdW5jdGlvbiA6IChoYW5kbGVyIHx8IGRlbGVnYXRpb25GdW5jdGlvbilcbiAgbGV0IHR5cGVFdmVudCA9IGdldFR5cGVFdmVudChvcmlnaW5hbFR5cGVFdmVudClcblxuICBpZiAoIW5hdGl2ZUV2ZW50cy5oYXModHlwZUV2ZW50KSkge1xuICAgIHR5cGVFdmVudCA9IG9yaWdpbmFsVHlwZUV2ZW50XG4gIH1cblxuICByZXR1cm4gW2lzRGVsZWdhdGVkLCBjYWxsYWJsZSwgdHlwZUV2ZW50XVxufVxuXG5mdW5jdGlvbiBhZGRIYW5kbGVyKGVsZW1lbnQsIG9yaWdpbmFsVHlwZUV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24sIG9uZU9mZikge1xuICBpZiAodHlwZW9mIG9yaWdpbmFsVHlwZUV2ZW50ICE9PSAnc3RyaW5nJyB8fCAhZWxlbWVudCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgbGV0IFtpc0RlbGVnYXRlZCwgY2FsbGFibGUsIHR5cGVFdmVudF0gPSBub3JtYWxpemVQYXJhbWV0ZXJzKG9yaWdpbmFsVHlwZUV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24pXG5cbiAgLy8gaW4gY2FzZSBvZiBtb3VzZWVudGVyIG9yIG1vdXNlbGVhdmUgd3JhcCB0aGUgaGFuZGxlciB3aXRoaW4gYSBmdW5jdGlvbiB0aGF0IGNoZWNrcyBmb3IgaXRzIERPTSBwb3NpdGlvblxuICAvLyB0aGlzIHByZXZlbnRzIHRoZSBoYW5kbGVyIGZyb20gYmVpbmcgZGlzcGF0Y2hlZCB0aGUgc2FtZSB3YXkgYXMgbW91c2VvdmVyIG9yIG1vdXNlb3V0IGRvZXNcbiAgaWYgKG9yaWdpbmFsVHlwZUV2ZW50IGluIGN1c3RvbUV2ZW50cykge1xuICAgIGNvbnN0IHdyYXBGdW5jdGlvbiA9IGZuID0+IHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgaWYgKCFldmVudC5yZWxhdGVkVGFyZ2V0IHx8IChldmVudC5yZWxhdGVkVGFyZ2V0ICE9PSBldmVudC5kZWxlZ2F0ZVRhcmdldCAmJiAhZXZlbnQuZGVsZWdhdGVUYXJnZXQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpKSB7XG4gICAgICAgICAgcmV0dXJuIGZuLmNhbGwodGhpcywgZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYWxsYWJsZSA9IHdyYXBGdW5jdGlvbihjYWxsYWJsZSlcbiAgfVxuXG4gIGNvbnN0IGV2ZW50cyA9IGdldEVsZW1lbnRFdmVudHMoZWxlbWVudClcbiAgY29uc3QgaGFuZGxlcnMgPSBldmVudHNbdHlwZUV2ZW50XSB8fCAoZXZlbnRzW3R5cGVFdmVudF0gPSB7fSlcbiAgY29uc3QgcHJldmlvdXNGdW5jdGlvbiA9IGZpbmRIYW5kbGVyKGhhbmRsZXJzLCBjYWxsYWJsZSwgaXNEZWxlZ2F0ZWQgPyBoYW5kbGVyIDogbnVsbClcblxuICBpZiAocHJldmlvdXNGdW5jdGlvbikge1xuICAgIHByZXZpb3VzRnVuY3Rpb24ub25lT2ZmID0gcHJldmlvdXNGdW5jdGlvbi5vbmVPZmYgJiYgb25lT2ZmXG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHVpZCA9IG1ha2VFdmVudFVpZChjYWxsYWJsZSwgb3JpZ2luYWxUeXBlRXZlbnQucmVwbGFjZShuYW1lc3BhY2VSZWdleCwgJycpKVxuICBjb25zdCBmbiA9IGlzRGVsZWdhdGVkID9cbiAgICBib290c3RyYXBEZWxlZ2F0aW9uSGFuZGxlcihlbGVtZW50LCBoYW5kbGVyLCBjYWxsYWJsZSkgOlxuICAgIGJvb3RzdHJhcEhhbmRsZXIoZWxlbWVudCwgY2FsbGFibGUpXG5cbiAgZm4uZGVsZWdhdGlvblNlbGVjdG9yID0gaXNEZWxlZ2F0ZWQgPyBoYW5kbGVyIDogbnVsbFxuICBmbi5jYWxsYWJsZSA9IGNhbGxhYmxlXG4gIGZuLm9uZU9mZiA9IG9uZU9mZlxuICBmbi51aWRFdmVudCA9IHVpZFxuICBoYW5kbGVyc1t1aWRdID0gZm5cblxuICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodHlwZUV2ZW50LCBmbiwgaXNEZWxlZ2F0ZWQpXG59XG5cbmZ1bmN0aW9uIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25TZWxlY3Rvcikge1xuICBjb25zdCBmbiA9IGZpbmRIYW5kbGVyKGV2ZW50c1t0eXBlRXZlbnRdLCBoYW5kbGVyLCBkZWxlZ2F0aW9uU2VsZWN0b3IpXG5cbiAgaWYgKCFmbikge1xuICAgIHJldHVyblxuICB9XG5cbiAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGVFdmVudCwgZm4sIEJvb2xlYW4oZGVsZWdhdGlvblNlbGVjdG9yKSlcbiAgZGVsZXRlIGV2ZW50c1t0eXBlRXZlbnRdW2ZuLnVpZEV2ZW50XVxufVxuXG5mdW5jdGlvbiByZW1vdmVOYW1lc3BhY2VkSGFuZGxlcnMoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIG5hbWVzcGFjZSkge1xuICBjb25zdCBzdG9yZUVsZW1lbnRFdmVudCA9IGV2ZW50c1t0eXBlRXZlbnRdIHx8IHt9XG5cbiAgZm9yIChjb25zdCBbaGFuZGxlcktleSwgZXZlbnRdIG9mIE9iamVjdC5lbnRyaWVzKHN0b3JlRWxlbWVudEV2ZW50KSkge1xuICAgIGlmIChoYW5kbGVyS2V5LmluY2x1ZGVzKG5hbWVzcGFjZSkpIHtcbiAgICAgIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGV2ZW50LmNhbGxhYmxlLCBldmVudC5kZWxlZ2F0aW9uU2VsZWN0b3IpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFR5cGVFdmVudChldmVudCkge1xuICAvLyBhbGxvdyB0byBnZXQgdGhlIG5hdGl2ZSBldmVudHMgZnJvbSBuYW1lc3BhY2VkIGV2ZW50cyAoJ2NsaWNrLmJzLmJ1dHRvbicgLS0+ICdjbGljaycpXG4gIGV2ZW50ID0gZXZlbnQucmVwbGFjZShzdHJpcE5hbWVSZWdleCwgJycpXG4gIHJldHVybiBjdXN0b21FdmVudHNbZXZlbnRdIHx8IGV2ZW50XG59XG5cbmNvbnN0IEV2ZW50SGFuZGxlciA9IHtcbiAgb24oZWxlbWVudCwgZXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbikge1xuICAgIGFkZEhhbmRsZXIoZWxlbWVudCwgZXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbiwgZmFsc2UpXG4gIH0sXG5cbiAgb25lKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24pIHtcbiAgICBhZGRIYW5kbGVyKGVsZW1lbnQsIGV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24sIHRydWUpXG4gIH0sXG5cbiAgb2ZmKGVsZW1lbnQsIG9yaWdpbmFsVHlwZUV2ZW50LCBoYW5kbGVyLCBkZWxlZ2F0aW9uRnVuY3Rpb24pIHtcbiAgICBpZiAodHlwZW9mIG9yaWdpbmFsVHlwZUV2ZW50ICE9PSAnc3RyaW5nJyB8fCAhZWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgW2lzRGVsZWdhdGVkLCBjYWxsYWJsZSwgdHlwZUV2ZW50XSA9IG5vcm1hbGl6ZVBhcmFtZXRlcnMob3JpZ2luYWxUeXBlRXZlbnQsIGhhbmRsZXIsIGRlbGVnYXRpb25GdW5jdGlvbilcbiAgICBjb25zdCBpbk5hbWVzcGFjZSA9IHR5cGVFdmVudCAhPT0gb3JpZ2luYWxUeXBlRXZlbnRcbiAgICBjb25zdCBldmVudHMgPSBnZXRFbGVtZW50RXZlbnRzKGVsZW1lbnQpXG4gICAgY29uc3Qgc3RvcmVFbGVtZW50RXZlbnQgPSBldmVudHNbdHlwZUV2ZW50XSB8fCB7fVxuICAgIGNvbnN0IGlzTmFtZXNwYWNlID0gb3JpZ2luYWxUeXBlRXZlbnQuc3RhcnRzV2l0aCgnLicpXG5cbiAgICBpZiAodHlwZW9mIGNhbGxhYmxlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gU2ltcGxlc3QgY2FzZTogaGFuZGxlciBpcyBwYXNzZWQsIHJlbW92ZSB0aGF0IGxpc3RlbmVyIE9OTFkuXG4gICAgICBpZiAoIU9iamVjdC5rZXlzKHN0b3JlRWxlbWVudEV2ZW50KS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGNhbGxhYmxlLCBpc0RlbGVnYXRlZCA/IGhhbmRsZXIgOiBudWxsKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzTmFtZXNwYWNlKSB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnRFdmVudCBvZiBPYmplY3Qua2V5cyhldmVudHMpKSB7XG4gICAgICAgIHJlbW92ZU5hbWVzcGFjZWRIYW5kbGVycyhlbGVtZW50LCBldmVudHMsIGVsZW1lbnRFdmVudCwgb3JpZ2luYWxUeXBlRXZlbnQuc2xpY2UoMSkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5SGFuZGxlcnMsIGV2ZW50XSBvZiBPYmplY3QuZW50cmllcyhzdG9yZUVsZW1lbnRFdmVudCkpIHtcbiAgICAgIGNvbnN0IGhhbmRsZXJLZXkgPSBrZXlIYW5kbGVycy5yZXBsYWNlKHN0cmlwVWlkUmVnZXgsICcnKVxuXG4gICAgICBpZiAoIWluTmFtZXNwYWNlIHx8IG9yaWdpbmFsVHlwZUV2ZW50LmluY2x1ZGVzKGhhbmRsZXJLZXkpKSB7XG4gICAgICAgIHJlbW92ZUhhbmRsZXIoZWxlbWVudCwgZXZlbnRzLCB0eXBlRXZlbnQsIGV2ZW50LmNhbGxhYmxlLCBldmVudC5kZWxlZ2F0aW9uU2VsZWN0b3IpXG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHRyaWdnZXIoZWxlbWVudCwgZXZlbnQsIGFyZ3MpIHtcbiAgICBpZiAodHlwZW9mIGV2ZW50ICE9PSAnc3RyaW5nJyB8fCAhZWxlbWVudCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCAkID0gZ2V0alF1ZXJ5KClcbiAgICBjb25zdCB0eXBlRXZlbnQgPSBnZXRUeXBlRXZlbnQoZXZlbnQpXG4gICAgY29uc3QgaW5OYW1lc3BhY2UgPSBldmVudCAhPT0gdHlwZUV2ZW50XG5cbiAgICBsZXQgalF1ZXJ5RXZlbnQgPSBudWxsXG4gICAgbGV0IGJ1YmJsZXMgPSB0cnVlXG4gICAgbGV0IG5hdGl2ZURpc3BhdGNoID0gdHJ1ZVxuICAgIGxldCBkZWZhdWx0UHJldmVudGVkID0gZmFsc2VcblxuICAgIGlmIChpbk5hbWVzcGFjZSAmJiAkKSB7XG4gICAgICBqUXVlcnlFdmVudCA9ICQuRXZlbnQoZXZlbnQsIGFyZ3MpXG5cbiAgICAgICQoZWxlbWVudCkudHJpZ2dlcihqUXVlcnlFdmVudClcbiAgICAgIGJ1YmJsZXMgPSAhalF1ZXJ5RXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKVxuICAgICAgbmF0aXZlRGlzcGF0Y2ggPSAhalF1ZXJ5RXZlbnQuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKVxuICAgICAgZGVmYXVsdFByZXZlbnRlZCA9IGpRdWVyeUV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpXG4gICAgfVxuXG4gICAgY29uc3QgZXZ0ID0gaHlkcmF0ZU9iaihuZXcgRXZlbnQoZXZlbnQsIHsgYnViYmxlcywgY2FuY2VsYWJsZTogdHJ1ZSB9KSwgYXJncylcblxuICAgIGlmIChkZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKVxuICAgIH1cblxuICAgIGlmIChuYXRpdmVEaXNwYXRjaCkge1xuICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2dClcbiAgICB9XG5cbiAgICBpZiAoZXZ0LmRlZmF1bHRQcmV2ZW50ZWQgJiYgalF1ZXJ5RXZlbnQpIHtcbiAgICAgIGpRdWVyeUV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG5cbiAgICByZXR1cm4gZXZ0XG4gIH1cbn1cblxuZnVuY3Rpb24gaHlkcmF0ZU9iaihvYmosIG1ldGEgPSB7fSkge1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhtZXRhKSkge1xuICAgIHRyeSB7XG4gICAgICBvYmpba2V5XSA9IHZhbHVlXG4gICAgfSBjYXRjaCB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9ialxufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudEhhbmRsZXJcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgZG9tL21hbmlwdWxhdG9yLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuZnVuY3Rpb24gbm9ybWFsaXplRGF0YSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09ICd0cnVlJykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodmFsdWUgPT09ICdmYWxzZScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gTnVtYmVyKHZhbHVlKS50b1N0cmluZygpKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSlcbiAgfVxuXG4gIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09ICdudWxsJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQodmFsdWUpKVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVEYXRhS2V5KGtleSkge1xuICByZXR1cm4ga2V5LnJlcGxhY2UoL1tBLVpdL2csIGNociA9PiBgLSR7Y2hyLnRvTG93ZXJDYXNlKCl9YClcbn1cblxuY29uc3QgTWFuaXB1bGF0b3IgPSB7XG4gIHNldERhdGFBdHRyaWJ1dGUoZWxlbWVudCwga2V5LCB2YWx1ZSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGBkYXRhLWJzLSR7bm9ybWFsaXplRGF0YUtleShrZXkpfWAsIHZhbHVlKVxuICB9LFxuXG4gIHJlbW92ZURhdGFBdHRyaWJ1dGUoZWxlbWVudCwga2V5KSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYGRhdGEtYnMtJHtub3JtYWxpemVEYXRhS2V5KGtleSl9YClcbiAgfSxcblxuICBnZXREYXRhQXR0cmlidXRlcyhlbGVtZW50KSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzID0ge31cbiAgICBjb25zdCBic0tleXMgPSBPYmplY3Qua2V5cyhlbGVtZW50LmRhdGFzZXQpLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgoJ2JzJykgJiYgIWtleS5zdGFydHNXaXRoKCdic0NvbmZpZycpKVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYnNLZXlzKSB7XG4gICAgICBsZXQgcHVyZUtleSA9IGtleS5yZXBsYWNlKC9eYnMvLCAnJylcbiAgICAgIHB1cmVLZXkgPSBwdXJlS2V5LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgcHVyZUtleS5zbGljZSgxLCBwdXJlS2V5Lmxlbmd0aClcbiAgICAgIGF0dHJpYnV0ZXNbcHVyZUtleV0gPSBub3JtYWxpemVEYXRhKGVsZW1lbnQuZGF0YXNldFtrZXldKVxuICAgIH1cblxuICAgIHJldHVybiBhdHRyaWJ1dGVzXG4gIH0sXG5cbiAgZ2V0RGF0YUF0dHJpYnV0ZShlbGVtZW50LCBrZXkpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplRGF0YShlbGVtZW50LmdldEF0dHJpYnV0ZShgZGF0YS1icy0ke25vcm1hbGl6ZURhdGFLZXkoa2V5KX1gKSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYW5pcHVsYXRvclxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCB1dGlsL2NvbmZpZy5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBNYW5pcHVsYXRvciBmcm9tICcuLi9kb20vbWFuaXB1bGF0b3IuanMnXG5pbXBvcnQgeyBpc0VsZW1lbnQsIHRvVHlwZSB9IGZyb20gJy4vaW5kZXguanMnXG5cbi8qKlxuICogQ2xhc3MgZGVmaW5pdGlvblxuICovXG5cbmNsYXNzIENvbmZpZyB7XG4gIC8vIEdldHRlcnNcbiAgc3RhdGljIGdldCBEZWZhdWx0KCkge1xuICAgIHJldHVybiB7fVxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBoYXZlIHRvIGltcGxlbWVudCB0aGUgc3RhdGljIG1ldGhvZCBcIk5BTUVcIiwgZm9yIGVhY2ggY29tcG9uZW50IScpXG4gIH1cblxuICBfZ2V0Q29uZmlnKGNvbmZpZykge1xuICAgIGNvbmZpZyA9IHRoaXMuX21lcmdlQ29uZmlnT2JqKGNvbmZpZylcbiAgICBjb25maWcgPSB0aGlzLl9jb25maWdBZnRlck1lcmdlKGNvbmZpZylcbiAgICB0aGlzLl90eXBlQ2hlY2tDb25maWcoY29uZmlnKVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9tZXJnZUNvbmZpZ09iaihjb25maWcsIGVsZW1lbnQpIHtcbiAgICBjb25zdCBqc29uQ29uZmlnID0gaXNFbGVtZW50KGVsZW1lbnQpID8gTWFuaXB1bGF0b3IuZ2V0RGF0YUF0dHJpYnV0ZShlbGVtZW50LCAnY29uZmlnJykgOiB7fSAvLyB0cnkgdG8gcGFyc2VcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbnN0cnVjdG9yLkRlZmF1bHQsXG4gICAgICAuLi4odHlwZW9mIGpzb25Db25maWcgPT09ICdvYmplY3QnID8ganNvbkNvbmZpZyA6IHt9KSxcbiAgICAgIC4uLihpc0VsZW1lbnQoZWxlbWVudCkgPyBNYW5pcHVsYXRvci5nZXREYXRhQXR0cmlidXRlcyhlbGVtZW50KSA6IHt9KSxcbiAgICAgIC4uLih0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0JyA/IGNvbmZpZyA6IHt9KVxuICAgIH1cbiAgfVxuXG4gIF90eXBlQ2hlY2tDb25maWcoY29uZmlnLCBjb25maWdUeXBlcyA9IHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFR5cGUpIHtcbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eSwgZXhwZWN0ZWRUeXBlc10gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnVHlwZXMpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbmZpZ1twcm9wZXJ0eV1cbiAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IGlzRWxlbWVudCh2YWx1ZSkgPyAnZWxlbWVudCcgOiB0b1R5cGUodmFsdWUpXG5cbiAgICAgIGlmICghbmV3IFJlZ0V4cChleHBlY3RlZFR5cGVzKS50ZXN0KHZhbHVlVHlwZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICBgJHt0aGlzLmNvbnN0cnVjdG9yLk5BTUUudG9VcHBlckNhc2UoKX06IE9wdGlvbiBcIiR7cHJvcGVydHl9XCIgcHJvdmlkZWQgdHlwZSBcIiR7dmFsdWVUeXBlfVwiIGJ1dCBleHBlY3RlZCB0eXBlIFwiJHtleHBlY3RlZFR5cGVzfVwiLmBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBDb25maWdcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgYmFzZS1jb21wb25lbnQuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRGF0YSBmcm9tICcuL2RvbS9kYXRhLmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL3V0aWwvY29uZmlnLmpzJ1xuaW1wb3J0IHsgZXhlY3V0ZUFmdGVyVHJhbnNpdGlvbiwgZ2V0RWxlbWVudCB9IGZyb20gJy4vdXRpbC9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBWRVJTSU9OID0gJzUuMy4zJ1xuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBCYXNlQ29tcG9uZW50IGV4dGVuZHMgQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgZWxlbWVudCA9IGdldEVsZW1lbnQoZWxlbWVudClcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50XG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5fZ2V0Q29uZmlnKGNvbmZpZylcblxuICAgIERhdGEuc2V0KHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuREFUQV9LRVksIHRoaXMpXG4gIH1cblxuICAvLyBQdWJsaWNcbiAgZGlzcG9zZSgpIHtcbiAgICBEYXRhLnJlbW92ZSh0aGlzLl9lbGVtZW50LCB0aGlzLmNvbnN0cnVjdG9yLkRBVEFfS0VZKVxuICAgIEV2ZW50SGFuZGxlci5vZmYodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5FVkVOVF9LRVkpXG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkge1xuICAgICAgdGhpc1twcm9wZXJ0eU5hbWVdID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIF9xdWV1ZUNhbGxiYWNrKGNhbGxiYWNrLCBlbGVtZW50LCBpc0FuaW1hdGVkID0gdHJ1ZSkge1xuICAgIGV4ZWN1dGVBZnRlclRyYW5zaXRpb24oY2FsbGJhY2ssIGVsZW1lbnQsIGlzQW5pbWF0ZWQpXG4gIH1cblxuICBfZ2V0Q29uZmlnKGNvbmZpZykge1xuICAgIGNvbmZpZyA9IHRoaXMuX21lcmdlQ29uZmlnT2JqKGNvbmZpZywgdGhpcy5fZWxlbWVudClcbiAgICBjb25maWcgPSB0aGlzLl9jb25maWdBZnRlck1lcmdlKGNvbmZpZylcbiAgICB0aGlzLl90eXBlQ2hlY2tDb25maWcoY29uZmlnKVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIC8vIFN0YXRpY1xuICBzdGF0aWMgZ2V0SW5zdGFuY2UoZWxlbWVudCkge1xuICAgIHJldHVybiBEYXRhLmdldChnZXRFbGVtZW50KGVsZW1lbnQpLCB0aGlzLkRBVEFfS0VZKVxuICB9XG5cbiAgc3RhdGljIGdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgY29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnN0YW5jZShlbGVtZW50KSB8fCBuZXcgdGhpcyhlbGVtZW50LCB0eXBlb2YgY29uZmlnID09PSAnb2JqZWN0JyA/IGNvbmZpZyA6IG51bGwpXG4gIH1cblxuICBzdGF0aWMgZ2V0IFZFUlNJT04oKSB7XG4gICAgcmV0dXJuIFZFUlNJT05cbiAgfVxuXG4gIHN0YXRpYyBnZXQgREFUQV9LRVkoKSB7XG4gICAgcmV0dXJuIGBicy4ke3RoaXMuTkFNRX1gXG4gIH1cblxuICBzdGF0aWMgZ2V0IEVWRU5UX0tFWSgpIHtcbiAgICByZXR1cm4gYC4ke3RoaXMuREFUQV9LRVl9YFxuICB9XG5cbiAgc3RhdGljIGV2ZW50TmFtZShuYW1lKSB7XG4gICAgcmV0dXJuIGAke25hbWV9JHt0aGlzLkVWRU5UX0tFWX1gXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQmFzZUNvbXBvbmVudFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBkb20vc2VsZWN0b3ItZW5naW5lLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW1wb3J0IHsgaXNEaXNhYmxlZCwgaXNWaXNpYmxlLCBwYXJzZVNlbGVjdG9yIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcydcblxuY29uc3QgZ2V0U2VsZWN0b3IgPSBlbGVtZW50ID0+IHtcbiAgbGV0IHNlbGVjdG9yID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtdGFyZ2V0JylcblxuICBpZiAoIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSAnIycpIHtcbiAgICBsZXQgaHJlZkF0dHJpYnV0ZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJylcblxuICAgIC8vIFRoZSBvbmx5IHZhbGlkIGNvbnRlbnQgdGhhdCBjb3VsZCBkb3VibGUgYXMgYSBzZWxlY3RvciBhcmUgSURzIG9yIGNsYXNzZXMsXG4gICAgLy8gc28gZXZlcnl0aGluZyBzdGFydGluZyB3aXRoIGAjYCBvciBgLmAuIElmIGEgXCJyZWFsXCIgVVJMIGlzIHVzZWQgYXMgdGhlIHNlbGVjdG9yLFxuICAgIC8vIGBkb2N1bWVudC5xdWVyeVNlbGVjdG9yYCB3aWxsIHJpZ2h0ZnVsbHkgY29tcGxhaW4gaXQgaXMgaW52YWxpZC5cbiAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8zMjI3M1xuICAgIGlmICghaHJlZkF0dHJpYnV0ZSB8fCAoIWhyZWZBdHRyaWJ1dGUuaW5jbHVkZXMoJyMnKSAmJiAhaHJlZkF0dHJpYnV0ZS5zdGFydHNXaXRoKCcuJykpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8vIEp1c3QgaW4gY2FzZSBzb21lIENNUyBwdXRzIG91dCBhIGZ1bGwgVVJMIHdpdGggdGhlIGFuY2hvciBhcHBlbmRlZFxuICAgIGlmIChocmVmQXR0cmlidXRlLmluY2x1ZGVzKCcjJykgJiYgIWhyZWZBdHRyaWJ1dGUuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICBocmVmQXR0cmlidXRlID0gYCMke2hyZWZBdHRyaWJ1dGUuc3BsaXQoJyMnKVsxXX1gXG4gICAgfVxuXG4gICAgc2VsZWN0b3IgPSBocmVmQXR0cmlidXRlICYmIGhyZWZBdHRyaWJ1dGUgIT09ICcjJyA/IGhyZWZBdHRyaWJ1dGUudHJpbSgpIDogbnVsbFxuICB9XG5cbiAgcmV0dXJuIHNlbGVjdG9yID8gc2VsZWN0b3Iuc3BsaXQoJywnKS5tYXAoc2VsID0+IHBhcnNlU2VsZWN0b3Ioc2VsKSkuam9pbignLCcpIDogbnVsbFxufVxuXG5jb25zdCBTZWxlY3RvckVuZ2luZSA9IHtcbiAgZmluZChzZWxlY3RvciwgZWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgIHJldHVybiBbXS5jb25jYXQoLi4uRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbC5jYWxsKGVsZW1lbnQsIHNlbGVjdG9yKSlcbiAgfSxcblxuICBmaW5kT25lKHNlbGVjdG9yLCBlbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgcmV0dXJuIEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3IuY2FsbChlbGVtZW50LCBzZWxlY3RvcilcbiAgfSxcblxuICBjaGlsZHJlbihlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgIHJldHVybiBbXS5jb25jYXQoLi4uZWxlbWVudC5jaGlsZHJlbikuZmlsdGVyKGNoaWxkID0+IGNoaWxkLm1hdGNoZXMoc2VsZWN0b3IpKVxuICB9LFxuXG4gIHBhcmVudHMoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgICBjb25zdCBwYXJlbnRzID0gW11cbiAgICBsZXQgYW5jZXN0b3IgPSBlbGVtZW50LnBhcmVudE5vZGUuY2xvc2VzdChzZWxlY3RvcilcblxuICAgIHdoaWxlIChhbmNlc3Rvcikge1xuICAgICAgcGFyZW50cy5wdXNoKGFuY2VzdG9yKVxuICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnROb2RlLmNsb3Nlc3Qoc2VsZWN0b3IpXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudHNcbiAgfSxcblxuICBwcmV2KGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgbGV0IHByZXZpb3VzID0gZWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXG5cbiAgICB3aGlsZSAocHJldmlvdXMpIHtcbiAgICAgIGlmIChwcmV2aW91cy5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgICByZXR1cm4gW3ByZXZpb3VzXVxuICAgICAgfVxuXG4gICAgICBwcmV2aW91cyA9IHByZXZpb3VzLnByZXZpb3VzRWxlbWVudFNpYmxpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gW11cbiAgfSxcbiAgLy8gVE9ETzogdGhpcyBpcyBub3cgdW51c2VkOyByZW1vdmUgbGF0ZXIgYWxvbmcgd2l0aCBwcmV2KClcbiAgbmV4dChlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgIGxldCBuZXh0ID0gZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcblxuICAgIHdoaWxlIChuZXh0KSB7XG4gICAgICBpZiAobmV4dC5tYXRjaGVzKHNlbGVjdG9yKSkge1xuICAgICAgICByZXR1cm4gW25leHRdXG4gICAgICB9XG5cbiAgICAgIG5leHQgPSBuZXh0Lm5leHRFbGVtZW50U2libGluZ1xuICAgIH1cblxuICAgIHJldHVybiBbXVxuICB9LFxuXG4gIGZvY3VzYWJsZUNoaWxkcmVuKGVsZW1lbnQpIHtcbiAgICBjb25zdCBmb2N1c2FibGVzID0gW1xuICAgICAgJ2EnLFxuICAgICAgJ2J1dHRvbicsXG4gICAgICAnaW5wdXQnLFxuICAgICAgJ3RleHRhcmVhJyxcbiAgICAgICdzZWxlY3QnLFxuICAgICAgJ2RldGFpbHMnLFxuICAgICAgJ1t0YWJpbmRleF0nLFxuICAgICAgJ1tjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJ1xuICAgIF0ubWFwKHNlbGVjdG9yID0+IGAke3NlbGVjdG9yfTpub3QoW3RhYmluZGV4Xj1cIi1cIl0pYCkuam9pbignLCcpXG5cbiAgICByZXR1cm4gdGhpcy5maW5kKGZvY3VzYWJsZXMsIGVsZW1lbnQpLmZpbHRlcihlbCA9PiAhaXNEaXNhYmxlZChlbCkgJiYgaXNWaXNpYmxlKGVsKSlcbiAgfSxcblxuICBnZXRTZWxlY3RvckZyb21FbGVtZW50KGVsZW1lbnQpIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGdldFNlbGVjdG9yKGVsZW1lbnQpXG5cbiAgICBpZiAoc2VsZWN0b3IpIHtcbiAgICAgIHJldHVybiBTZWxlY3RvckVuZ2luZS5maW5kT25lKHNlbGVjdG9yKSA/IHNlbGVjdG9yIDogbnVsbFxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH0sXG5cbiAgZ2V0RWxlbWVudEZyb21TZWxlY3RvcihlbGVtZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBnZXRTZWxlY3RvcihlbGVtZW50KVxuXG4gICAgcmV0dXJuIHNlbGVjdG9yID8gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShzZWxlY3RvcikgOiBudWxsXG4gIH0sXG5cbiAgZ2V0TXVsdGlwbGVFbGVtZW50c0Zyb21TZWxlY3RvcihlbGVtZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSBnZXRTZWxlY3RvcihlbGVtZW50KVxuXG4gICAgcmV0dXJuIHNlbGVjdG9yID8gU2VsZWN0b3JFbmdpbmUuZmluZChzZWxlY3RvcikgOiBbXVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlbGVjdG9yRW5naW5lXG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvY29tcG9uZW50LWZ1bmN0aW9ucy5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBFdmVudEhhbmRsZXIgZnJvbSAnLi4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgU2VsZWN0b3JFbmdpbmUgZnJvbSAnLi4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7IGlzRGlzYWJsZWQgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG5jb25zdCBlbmFibGVEaXNtaXNzVHJpZ2dlciA9IChjb21wb25lbnQsIG1ldGhvZCA9ICdoaWRlJykgPT4ge1xuICBjb25zdCBjbGlja0V2ZW50ID0gYGNsaWNrLmRpc21pc3Mke2NvbXBvbmVudC5FVkVOVF9LRVl9YFxuICBjb25zdCBuYW1lID0gY29tcG9uZW50Lk5BTUVcblxuICBFdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIGNsaWNrRXZlbnQsIGBbZGF0YS1icy1kaXNtaXNzPVwiJHtuYW1lfVwiXWAsIGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChbJ0EnLCAnQVJFQSddLmluY2x1ZGVzKHRoaXMudGFnTmFtZSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9XG5cbiAgICBpZiAoaXNEaXNhYmxlZCh0aGlzKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0ID0gU2VsZWN0b3JFbmdpbmUuZ2V0RWxlbWVudEZyb21TZWxlY3Rvcih0aGlzKSB8fCB0aGlzLmNsb3Nlc3QoYC4ke25hbWV9YClcbiAgICBjb25zdCBpbnN0YW5jZSA9IGNvbXBvbmVudC5nZXRPckNyZWF0ZUluc3RhbmNlKHRhcmdldClcblxuICAgIC8vIE1ldGhvZCBhcmd1bWVudCBpcyBsZWZ0LCBmb3IgQWxlcnQgYW5kIG9ubHksIGFzIGl0IGRvZXNuJ3QgaW1wbGVtZW50IHRoZSAnaGlkZScgbWV0aG9kXG4gICAgaW5zdGFuY2VbbWV0aG9kXSgpXG4gIH0pXG59XG5cbmV4cG9ydCB7XG4gIGVuYWJsZURpc21pc3NUcmlnZ2VyXG59XG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIGFsZXJ0LmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW1wb3J0IEJhc2VDb21wb25lbnQgZnJvbSAnLi9iYXNlLWNvbXBvbmVudC5qcydcbmltcG9ydCBFdmVudEhhbmRsZXIgZnJvbSAnLi9kb20vZXZlbnQtaGFuZGxlci5qcydcbmltcG9ydCB7IGVuYWJsZURpc21pc3NUcmlnZ2VyIH0gZnJvbSAnLi91dGlsL2NvbXBvbmVudC1mdW5jdGlvbnMuanMnXG5pbXBvcnQgeyBkZWZpbmVKUXVlcnlQbHVnaW4gfSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICdhbGVydCdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLmFsZXJ0J1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcblxuY29uc3QgRVZFTlRfQ0xPU0UgPSBgY2xvc2Uke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTE9TRUQgPSBgY2xvc2VkJHtFVkVOVF9LRVl9YFxuY29uc3QgQ0xBU1NfTkFNRV9GQURFID0gJ2ZhZGUnXG5jb25zdCBDTEFTU19OQU1FX1NIT1cgPSAnc2hvdydcblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQWxlcnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBjbG9zZSgpIHtcbiAgICBjb25zdCBjbG9zZUV2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfQ0xPU0UpXG5cbiAgICBpZiAoY2xvc2VFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgY29uc3QgaXNBbmltYXRlZCA9IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRkFERSlcbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKCgpID0+IHRoaXMuX2Rlc3Ryb3lFbGVtZW50KCksIHRoaXMuX2VsZW1lbnQsIGlzQW5pbWF0ZWQpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9kZXN0cm95RWxlbWVudCgpIHtcbiAgICB0aGlzLl9lbGVtZW50LnJlbW92ZSgpXG4gICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfQ0xPU0VEKVxuICAgIHRoaXMuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBBbGVydC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGFbY29uZmlnXSA9PT0gdW5kZWZpbmVkIHx8IGNvbmZpZy5zdGFydHNXaXRoKCdfJykgfHwgY29uZmlnID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgIH1cblxuICAgICAgZGF0YVtjb25maWddKHRoaXMpXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuZW5hYmxlRGlzbWlzc1RyaWdnZXIoQWxlcnQsICdjbG9zZScpXG5cbi8qKlxuICogalF1ZXJ5XG4gKi9cblxuZGVmaW5lSlF1ZXJ5UGx1Z2luKEFsZXJ0KVxuXG5leHBvcnQgZGVmYXVsdCBBbGVydFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBidXR0b24uanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IHsgZGVmaW5lSlF1ZXJ5UGx1Z2luIH0gZnJvbSAnLi91dGlsL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnYnV0dG9uJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMuYnV0dG9uJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5cbmNvbnN0IENMQVNTX05BTUVfQUNUSVZFID0gJ2FjdGl2ZSdcbmNvbnN0IFNFTEVDVE9SX0RBVEFfVE9HR0xFID0gJ1tkYXRhLWJzLXRvZ2dsZT1cImJ1dHRvblwiXSdcbmNvbnN0IEVWRU5UX0NMSUNLX0RBVEFfQVBJID0gYGNsaWNrJHtFVkVOVF9LRVl9JHtEQVRBX0FQSV9LRVl9YFxuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBCdXR0b24gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICB0b2dnbGUoKSB7XG4gICAgLy8gVG9nZ2xlIGNsYXNzIGFuZCBzeW5jIHRoZSBgYXJpYS1wcmVzc2VkYCBhdHRyaWJ1dGUgd2l0aCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBgLnRvZ2dsZSgpYCBtZXRob2RcbiAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKENMQVNTX05BTUVfQUNUSVZFKSlcbiAgfVxuXG4gIC8vIFN0YXRpY1xuICBzdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGF0YSA9IEJ1dHRvbi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpXG5cbiAgICAgIGlmIChjb25maWcgPT09ICd0b2dnbGUnKSB7XG4gICAgICAgIGRhdGFbY29uZmlnXSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIGV2ZW50ID0+IHtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuXG4gIGNvbnN0IGJ1dHRvbiA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KFNFTEVDVE9SX0RBVEFfVE9HR0xFKVxuICBjb25zdCBkYXRhID0gQnV0dG9uLmdldE9yQ3JlYXRlSW5zdGFuY2UoYnV0dG9uKVxuXG4gIGRhdGEudG9nZ2xlKClcbn0pXG5cbi8qKlxuICogalF1ZXJ5XG4gKi9cblxuZGVmaW5lSlF1ZXJ5UGx1Z2luKEJ1dHRvbilcblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uXG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvc3dpcGUuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4uL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy5qcydcbmltcG9ydCB7IGV4ZWN1dGUgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnc3dpcGUnXG5jb25zdCBFVkVOVF9LRVkgPSAnLmJzLnN3aXBlJ1xuY29uc3QgRVZFTlRfVE9VQ0hTVEFSVCA9IGB0b3VjaHN0YXJ0JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfVE9VQ0hNT1ZFID0gYHRvdWNobW92ZSR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1RPVUNIRU5EID0gYHRvdWNoZW5kJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfUE9JTlRFUkRPV04gPSBgcG9pbnRlcmRvd24ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9QT0lOVEVSVVAgPSBgcG9pbnRlcnVwJHtFVkVOVF9LRVl9YFxuY29uc3QgUE9JTlRFUl9UWVBFX1RPVUNIID0gJ3RvdWNoJ1xuY29uc3QgUE9JTlRFUl9UWVBFX1BFTiA9ICdwZW4nXG5jb25zdCBDTEFTU19OQU1FX1BPSU5URVJfRVZFTlQgPSAncG9pbnRlci1ldmVudCdcbmNvbnN0IFNXSVBFX1RIUkVTSE9MRCA9IDQwXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGVuZENhbGxiYWNrOiBudWxsLFxuICBsZWZ0Q2FsbGJhY2s6IG51bGwsXG4gIHJpZ2h0Q2FsbGJhY2s6IG51bGxcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIGVuZENhbGxiYWNrOiAnKGZ1bmN0aW9ufG51bGwpJyxcbiAgbGVmdENhbGxiYWNrOiAnKGZ1bmN0aW9ufG51bGwpJyxcbiAgcmlnaHRDYWxsYmFjazogJyhmdW5jdGlvbnxudWxsKSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgU3dpcGUgZXh0ZW5kcyBDb25maWcge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50LCBjb25maWcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnRcblxuICAgIGlmICghZWxlbWVudCB8fCAhU3dpcGUuaXNTdXBwb3J0ZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5fZ2V0Q29uZmlnKGNvbmZpZylcbiAgICB0aGlzLl9kZWx0YVggPSAwXG4gICAgdGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHMgPSBCb29sZWFuKHdpbmRvdy5Qb2ludGVyRXZlbnQpXG4gICAgdGhpcy5faW5pdEV2ZW50cygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIGRpc3Bvc2UoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9mZih0aGlzLl9lbGVtZW50LCBFVkVOVF9LRVkpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9zdGFydChldmVudCkge1xuICAgIGlmICghdGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHMpIHtcbiAgICAgIHRoaXMuX2RlbHRhWCA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WFxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZXZlbnRJc1BvaW50ZXJQZW5Ub3VjaChldmVudCkpIHtcbiAgICAgIHRoaXMuX2RlbHRhWCA9IGV2ZW50LmNsaWVudFhcbiAgICB9XG4gIH1cblxuICBfZW5kKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2V2ZW50SXNQb2ludGVyUGVuVG91Y2goZXZlbnQpKSB7XG4gICAgICB0aGlzLl9kZWx0YVggPSBldmVudC5jbGllbnRYIC0gdGhpcy5fZGVsdGFYXG4gICAgfVxuXG4gICAgdGhpcy5faGFuZGxlU3dpcGUoKVxuICAgIGV4ZWN1dGUodGhpcy5fY29uZmlnLmVuZENhbGxiYWNrKVxuICB9XG5cbiAgX21vdmUoZXZlbnQpIHtcbiAgICB0aGlzLl9kZWx0YVggPSBldmVudC50b3VjaGVzICYmIGV2ZW50LnRvdWNoZXMubGVuZ3RoID4gMSA/XG4gICAgICAwIDpcbiAgICAgIGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCAtIHRoaXMuX2RlbHRhWFxuICB9XG5cbiAgX2hhbmRsZVN3aXBlKCkge1xuICAgIGNvbnN0IGFic0RlbHRhWCA9IE1hdGguYWJzKHRoaXMuX2RlbHRhWClcblxuICAgIGlmIChhYnNEZWx0YVggPD0gU1dJUEVfVEhSRVNIT0xEKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBhYnNEZWx0YVggLyB0aGlzLl9kZWx0YVhcblxuICAgIHRoaXMuX2RlbHRhWCA9IDBcblxuICAgIGlmICghZGlyZWN0aW9uKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBleGVjdXRlKGRpcmVjdGlvbiA+IDAgPyB0aGlzLl9jb25maWcucmlnaHRDYWxsYmFjayA6IHRoaXMuX2NvbmZpZy5sZWZ0Q2FsbGJhY2spXG4gIH1cblxuICBfaW5pdEV2ZW50cygpIHtcbiAgICBpZiAodGhpcy5fc3VwcG9ydFBvaW50ZXJFdmVudHMpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9QT0lOVEVSRE9XTiwgZXZlbnQgPT4gdGhpcy5fc3RhcnQoZXZlbnQpKVxuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1BPSU5URVJVUCwgZXZlbnQgPT4gdGhpcy5fZW5kKGV2ZW50KSlcblxuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfUE9JTlRFUl9FVkVOVClcbiAgICB9IGVsc2Uge1xuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1RPVUNIU1RBUlQsIGV2ZW50ID0+IHRoaXMuX3N0YXJ0KGV2ZW50KSlcbiAgICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9UT1VDSE1PVkUsIGV2ZW50ID0+IHRoaXMuX21vdmUoZXZlbnQpKVxuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1RPVUNIRU5ELCBldmVudCA9PiB0aGlzLl9lbmQoZXZlbnQpKVxuICAgIH1cbiAgfVxuXG4gIF9ldmVudElzUG9pbnRlclBlblRvdWNoKGV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1cHBvcnRQb2ludGVyRXZlbnRzICYmIChldmVudC5wb2ludGVyVHlwZSA9PT0gUE9JTlRFUl9UWVBFX1BFTiB8fCBldmVudC5wb2ludGVyVHlwZSA9PT0gUE9JTlRFUl9UWVBFX1RPVUNIKVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBpc1N1cHBvcnRlZCgpIHtcbiAgICByZXR1cm4gJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDBcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTd2lwZVxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBjYXJvdXNlbC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgTWFuaXB1bGF0b3IgZnJvbSAnLi9kb20vbWFuaXB1bGF0b3IuanMnXG5pbXBvcnQgU2VsZWN0b3JFbmdpbmUgZnJvbSAnLi9kb20vc2VsZWN0b3ItZW5naW5lLmpzJ1xuaW1wb3J0IHtcbiAgZGVmaW5lSlF1ZXJ5UGx1Z2luLFxuICBnZXROZXh0QWN0aXZlRWxlbWVudCxcbiAgaXNSVEwsXG4gIGlzVmlzaWJsZSxcbiAgcmVmbG93LFxuICB0cmlnZ2VyVHJhbnNpdGlvbkVuZFxufSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5pbXBvcnQgU3dpcGUgZnJvbSAnLi91dGlsL3N3aXBlLmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnY2Fyb3VzZWwnXG5jb25zdCBEQVRBX0tFWSA9ICdicy5jYXJvdXNlbCdcbmNvbnN0IEVWRU5UX0tFWSA9IGAuJHtEQVRBX0tFWX1gXG5jb25zdCBEQVRBX0FQSV9LRVkgPSAnLmRhdGEtYXBpJ1xuXG5jb25zdCBBUlJPV19MRUZUX0tFWSA9ICdBcnJvd0xlZnQnXG5jb25zdCBBUlJPV19SSUdIVF9LRVkgPSAnQXJyb3dSaWdodCdcbmNvbnN0IFRPVUNIRVZFTlRfQ09NUEFUX1dBSVQgPSA1MDAgLy8gVGltZSBmb3IgbW91c2UgY29tcGF0IGV2ZW50cyB0byBmaXJlIGFmdGVyIHRvdWNoXG5cbmNvbnN0IE9SREVSX05FWFQgPSAnbmV4dCdcbmNvbnN0IE9SREVSX1BSRVYgPSAncHJldidcbmNvbnN0IERJUkVDVElPTl9MRUZUID0gJ2xlZnQnXG5jb25zdCBESVJFQ1RJT05fUklHSFQgPSAncmlnaHQnXG5cbmNvbnN0IEVWRU5UX1NMSURFID0gYHNsaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0xJRCA9IGBzbGlkJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfS0VZRE9XTiA9IGBrZXlkb3duJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfTU9VU0VFTlRFUiA9IGBtb3VzZWVudGVyJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfTU9VU0VMRUFWRSA9IGBtb3VzZWxlYXZlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfRFJBR19TVEFSVCA9IGBkcmFnc3RhcnQke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9MT0FEX0RBVEFfQVBJID0gYGxvYWQke0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19EQVRBX0FQSSA9IGBjbGljayR7RVZFTlRfS0VZfSR7REFUQV9BUElfS0VZfWBcblxuY29uc3QgQ0xBU1NfTkFNRV9DQVJPVVNFTCA9ICdjYXJvdXNlbCdcbmNvbnN0IENMQVNTX05BTUVfQUNUSVZFID0gJ2FjdGl2ZSdcbmNvbnN0IENMQVNTX05BTUVfU0xJREUgPSAnc2xpZGUnXG5jb25zdCBDTEFTU19OQU1FX0VORCA9ICdjYXJvdXNlbC1pdGVtLWVuZCdcbmNvbnN0IENMQVNTX05BTUVfU1RBUlQgPSAnY2Fyb3VzZWwtaXRlbS1zdGFydCdcbmNvbnN0IENMQVNTX05BTUVfTkVYVCA9ICdjYXJvdXNlbC1pdGVtLW5leHQnXG5jb25zdCBDTEFTU19OQU1FX1BSRVYgPSAnY2Fyb3VzZWwtaXRlbS1wcmV2J1xuXG5jb25zdCBTRUxFQ1RPUl9BQ1RJVkUgPSAnLmFjdGl2ZSdcbmNvbnN0IFNFTEVDVE9SX0lURU0gPSAnLmNhcm91c2VsLWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9BQ1RJVkVfSVRFTSA9IFNFTEVDVE9SX0FDVElWRSArIFNFTEVDVE9SX0lURU1cbmNvbnN0IFNFTEVDVE9SX0lURU1fSU1HID0gJy5jYXJvdXNlbC1pdGVtIGltZydcbmNvbnN0IFNFTEVDVE9SX0lORElDQVRPUlMgPSAnLmNhcm91c2VsLWluZGljYXRvcnMnXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1NMSURFID0gJ1tkYXRhLWJzLXNsaWRlXSwgW2RhdGEtYnMtc2xpZGUtdG9dJ1xuY29uc3QgU0VMRUNUT1JfREFUQV9SSURFID0gJ1tkYXRhLWJzLXJpZGU9XCJjYXJvdXNlbFwiXSdcblxuY29uc3QgS0VZX1RPX0RJUkVDVElPTiA9IHtcbiAgW0FSUk9XX0xFRlRfS0VZXTogRElSRUNUSU9OX1JJR0hULFxuICBbQVJST1dfUklHSFRfS0VZXTogRElSRUNUSU9OX0xFRlRcbn1cblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgaW50ZXJ2YWw6IDUwMDAsXG4gIGtleWJvYXJkOiB0cnVlLFxuICBwYXVzZTogJ2hvdmVyJyxcbiAgcmlkZTogZmFsc2UsXG4gIHRvdWNoOiB0cnVlLFxuICB3cmFwOiB0cnVlXG59XG5cbmNvbnN0IERlZmF1bHRUeXBlID0ge1xuICBpbnRlcnZhbDogJyhudW1iZXJ8Ym9vbGVhbiknLCAvLyBUT0RPOnY2IHJlbW92ZSBib29sZWFuIHN1cHBvcnRcbiAga2V5Ym9hcmQ6ICdib29sZWFuJyxcbiAgcGF1c2U6ICcoc3RyaW5nfGJvb2xlYW4pJyxcbiAgcmlkZTogJyhib29sZWFufHN0cmluZyknLFxuICB0b3VjaDogJ2Jvb2xlYW4nLFxuICB3cmFwOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQ2Fyb3VzZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5faW50ZXJ2YWwgPSBudWxsXG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudCA9IG51bGxcbiAgICB0aGlzLl9pc1NsaWRpbmcgPSBmYWxzZVxuICAgIHRoaXMudG91Y2hUaW1lb3V0ID0gbnVsbFxuICAgIHRoaXMuX3N3aXBlSGVscGVyID0gbnVsbFxuXG4gICAgdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX0lORElDQVRPUlMsIHRoaXMuX2VsZW1lbnQpXG4gICAgdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5yaWRlID09PSBDTEFTU19OQU1FX0NBUk9VU0VMKSB7XG4gICAgICB0aGlzLmN5Y2xlKClcbiAgICB9XG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIG5leHQoKSB7XG4gICAgdGhpcy5fc2xpZGUoT1JERVJfTkVYVClcbiAgfVxuXG4gIG5leHRXaGVuVmlzaWJsZSgpIHtcbiAgICAvLyBGSVhNRSBUT0RPIHVzZSBgZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlYFxuICAgIC8vIERvbid0IGNhbGwgbmV4dCB3aGVuIHRoZSBwYWdlIGlzbid0IHZpc2libGVcbiAgICAvLyBvciB0aGUgY2Fyb3VzZWwgb3IgaXRzIHBhcmVudCBpc24ndCB2aXNpYmxlXG4gICAgaWYgKCFkb2N1bWVudC5oaWRkZW4gJiYgaXNWaXNpYmxlKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICB0aGlzLm5leHQoKVxuICAgIH1cbiAgfVxuXG4gIHByZXYoKSB7XG4gICAgdGhpcy5fc2xpZGUoT1JERVJfUFJFVilcbiAgfVxuXG4gIHBhdXNlKCkge1xuICAgIGlmICh0aGlzLl9pc1NsaWRpbmcpIHtcbiAgICAgIHRyaWdnZXJUcmFuc2l0aW9uRW5kKHRoaXMuX2VsZW1lbnQpXG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpXG4gIH1cblxuICBjeWNsZSgpIHtcbiAgICB0aGlzLl9jbGVhckludGVydmFsKClcbiAgICB0aGlzLl91cGRhdGVJbnRlcnZhbCgpXG5cbiAgICB0aGlzLl9pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHRoaXMubmV4dFdoZW5WaXNpYmxlKCksIHRoaXMuX2NvbmZpZy5pbnRlcnZhbClcbiAgfVxuXG4gIF9tYXliZUVuYWJsZUN5Y2xlKCkge1xuICAgIGlmICghdGhpcy5fY29uZmlnLnJpZGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLl9pc1NsaWRpbmcpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbmUodGhpcy5fZWxlbWVudCwgRVZFTlRfU0xJRCwgKCkgPT4gdGhpcy5jeWNsZSgpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5jeWNsZSgpXG4gIH1cblxuICB0byhpbmRleCkge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXMoKVxuICAgIGlmIChpbmRleCA+IGl0ZW1zLmxlbmd0aCAtIDEgfHwgaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNTbGlkaW5nKSB7XG4gICAgICBFdmVudEhhbmRsZXIub25lKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NMSUQsICgpID0+IHRoaXMudG8oaW5kZXgpKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLl9nZXRJdGVtSW5kZXgodGhpcy5fZ2V0QWN0aXZlKCkpXG4gICAgaWYgKGFjdGl2ZUluZGV4ID09PSBpbmRleCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgb3JkZXIgPSBpbmRleCA+IGFjdGl2ZUluZGV4ID8gT1JERVJfTkVYVCA6IE9SREVSX1BSRVZcblxuICAgIHRoaXMuX3NsaWRlKG9yZGVyLCBpdGVtc1tpbmRleF0pXG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGlmICh0aGlzLl9zd2lwZUhlbHBlcikge1xuICAgICAgdGhpcy5fc3dpcGVIZWxwZXIuZGlzcG9zZSgpXG4gICAgfVxuXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIGNvbmZpZy5kZWZhdWx0SW50ZXJ2YWwgPSBjb25maWcuaW50ZXJ2YWxcbiAgICByZXR1cm4gY29uZmlnXG4gIH1cblxuICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5rZXlib2FyZCkge1xuICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0tFWURPV04sIGV2ZW50ID0+IHRoaXMuX2tleWRvd24oZXZlbnQpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcucGF1c2UgPT09ICdob3ZlcicpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9NT1VTRUVOVEVSLCAoKSA9PiB0aGlzLnBhdXNlKCkpXG4gICAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudCwgRVZFTlRfTU9VU0VMRUFWRSwgKCkgPT4gdGhpcy5fbWF5YmVFbmFibGVDeWNsZSgpKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcudG91Y2ggJiYgU3dpcGUuaXNTdXBwb3J0ZWQoKSkge1xuICAgICAgdGhpcy5fYWRkVG91Y2hFdmVudExpc3RlbmVycygpXG4gICAgfVxuICB9XG5cbiAgX2FkZFRvdWNoRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgZm9yIChjb25zdCBpbWcgb2YgU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9JVEVNX0lNRywgdGhpcy5fZWxlbWVudCkpIHtcbiAgICAgIEV2ZW50SGFuZGxlci5vbihpbWcsIEVWRU5UX0RSQUdfU1RBUlQsIGV2ZW50ID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpXG4gICAgfVxuXG4gICAgY29uc3QgZW5kQ2FsbEJhY2sgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fY29uZmlnLnBhdXNlICE9PSAnaG92ZXInKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJZiBpdCdzIGEgdG91Y2gtZW5hYmxlZCBkZXZpY2UsIG1vdXNlZW50ZXIvbGVhdmUgYXJlIGZpcmVkIGFzXG4gICAgICAvLyBwYXJ0IG9mIHRoZSBtb3VzZSBjb21wYXRpYmlsaXR5IGV2ZW50cyBvbiBmaXJzdCB0YXAgLSB0aGUgY2Fyb3VzZWxcbiAgICAgIC8vIHdvdWxkIHN0b3AgY3ljbGluZyB1bnRpbCB1c2VyIHRhcHBlZCBvdXQgb2YgaXQ7XG4gICAgICAvLyBoZXJlLCB3ZSBsaXN0ZW4gZm9yIHRvdWNoZW5kLCBleHBsaWNpdGx5IHBhdXNlIHRoZSBjYXJvdXNlbFxuICAgICAgLy8gKGFzIGlmIGl0J3MgdGhlIHNlY29uZCB0aW1lIHdlIHRhcCBvbiBpdCwgbW91c2VlbnRlciBjb21wYXQgZXZlbnRcbiAgICAgIC8vIGlzIE5PVCBmaXJlZCkgYW5kIGFmdGVyIGEgdGltZW91dCAodG8gYWxsb3cgZm9yIG1vdXNlIGNvbXBhdGliaWxpdHlcbiAgICAgIC8vIGV2ZW50cyB0byBmaXJlKSB3ZSBleHBsaWNpdGx5IHJlc3RhcnQgY3ljbGluZ1xuXG4gICAgICB0aGlzLnBhdXNlKClcbiAgICAgIGlmICh0aGlzLnRvdWNoVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpXG4gICAgICB9XG5cbiAgICAgIHRoaXMudG91Y2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9tYXliZUVuYWJsZUN5Y2xlKCksIFRPVUNIRVZFTlRfQ09NUEFUX1dBSVQgKyB0aGlzLl9jb25maWcuaW50ZXJ2YWwpXG4gICAgfVxuXG4gICAgY29uc3Qgc3dpcGVDb25maWcgPSB7XG4gICAgICBsZWZ0Q2FsbGJhY2s6ICgpID0+IHRoaXMuX3NsaWRlKHRoaXMuX2RpcmVjdGlvblRvT3JkZXIoRElSRUNUSU9OX0xFRlQpKSxcbiAgICAgIHJpZ2h0Q2FsbGJhY2s6ICgpID0+IHRoaXMuX3NsaWRlKHRoaXMuX2RpcmVjdGlvblRvT3JkZXIoRElSRUNUSU9OX1JJR0hUKSksXG4gICAgICBlbmRDYWxsYmFjazogZW5kQ2FsbEJhY2tcbiAgICB9XG5cbiAgICB0aGlzLl9zd2lwZUhlbHBlciA9IG5ldyBTd2lwZSh0aGlzLl9lbGVtZW50LCBzd2lwZUNvbmZpZylcbiAgfVxuXG4gIF9rZXlkb3duKGV2ZW50KSB7XG4gICAgaWYgKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZXZlbnQudGFyZ2V0LnRhZ05hbWUpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3Rpb24gPSBLRVlfVE9fRElSRUNUSU9OW2V2ZW50LmtleV1cbiAgICBpZiAoZGlyZWN0aW9uKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB0aGlzLl9zbGlkZSh0aGlzLl9kaXJlY3Rpb25Ub09yZGVyKGRpcmVjdGlvbikpXG4gICAgfVxuICB9XG5cbiAgX2dldEl0ZW1JbmRleChlbGVtZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEl0ZW1zKCkuaW5kZXhPZihlbGVtZW50KVxuICB9XG5cbiAgX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQoaW5kZXgpIHtcbiAgICBpZiAoIXRoaXMuX2luZGljYXRvcnNFbGVtZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmVJbmRpY2F0b3IgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX0FDVElWRSwgdGhpcy5faW5kaWNhdG9yc0VsZW1lbnQpXG5cbiAgICBhY3RpdmVJbmRpY2F0b3IuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0FDVElWRSlcbiAgICBhY3RpdmVJbmRpY2F0b3IucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnKVxuXG4gICAgY29uc3QgbmV3QWN0aXZlSW5kaWNhdG9yID0gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShgW2RhdGEtYnMtc2xpZGUtdG89XCIke2luZGV4fVwiXWAsIHRoaXMuX2luZGljYXRvcnNFbGVtZW50KVxuXG4gICAgaWYgKG5ld0FjdGl2ZUluZGljYXRvcikge1xuICAgICAgbmV3QWN0aXZlSW5kaWNhdG9yLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9BQ1RJVkUpXG4gICAgICBuZXdBY3RpdmVJbmRpY2F0b3Iuc2V0QXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnLCAndHJ1ZScpXG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZUludGVydmFsKCkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9hY3RpdmVFbGVtZW50IHx8IHRoaXMuX2dldEFjdGl2ZSgpXG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRJbnRlcnZhbCA9IE51bWJlci5wYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1icy1pbnRlcnZhbCcpLCAxMClcblxuICAgIHRoaXMuX2NvbmZpZy5pbnRlcnZhbCA9IGVsZW1lbnRJbnRlcnZhbCB8fCB0aGlzLl9jb25maWcuZGVmYXVsdEludGVydmFsXG4gIH1cblxuICBfc2xpZGUob3JkZXIsIGVsZW1lbnQgPSBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2lzU2xpZGluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMuX2dldEFjdGl2ZSgpXG4gICAgY29uc3QgaXNOZXh0ID0gb3JkZXIgPT09IE9SREVSX05FWFRcbiAgICBjb25zdCBuZXh0RWxlbWVudCA9IGVsZW1lbnQgfHwgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQodGhpcy5fZ2V0SXRlbXMoKSwgYWN0aXZlRWxlbWVudCwgaXNOZXh0LCB0aGlzLl9jb25maWcud3JhcClcblxuICAgIGlmIChuZXh0RWxlbWVudCA9PT0gYWN0aXZlRWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbmV4dEVsZW1lbnRJbmRleCA9IHRoaXMuX2dldEl0ZW1JbmRleChuZXh0RWxlbWVudClcblxuICAgIGNvbnN0IHRyaWdnZXJFdmVudCA9IGV2ZW50TmFtZSA9PiB7XG4gICAgICByZXR1cm4gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgZXZlbnROYW1lLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IG5leHRFbGVtZW50LFxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX29yZGVyVG9EaXJlY3Rpb24ob3JkZXIpLFxuICAgICAgICBmcm9tOiB0aGlzLl9nZXRJdGVtSW5kZXgoYWN0aXZlRWxlbWVudCksXG4gICAgICAgIHRvOiBuZXh0RWxlbWVudEluZGV4XG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IHNsaWRlRXZlbnQgPSB0cmlnZ2VyRXZlbnQoRVZFTlRfU0xJREUpXG5cbiAgICBpZiAoc2xpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIWFjdGl2ZUVsZW1lbnQgfHwgIW5leHRFbGVtZW50KSB7XG4gICAgICAvLyBTb21lIHdlaXJkbmVzcyBpcyBoYXBwZW5pbmcsIHNvIHdlIGJhaWxcbiAgICAgIC8vIFRPRE86IGNoYW5nZSB0ZXN0cyB0aGF0IHVzZSBlbXB0eSBkaXZzIHRvIGF2b2lkIHRoaXMgY2hlY2tcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGlzQ3ljbGluZyA9IEJvb2xlYW4odGhpcy5faW50ZXJ2YWwpXG4gICAgdGhpcy5wYXVzZSgpXG5cbiAgICB0aGlzLl9pc1NsaWRpbmcgPSB0cnVlXG5cbiAgICB0aGlzLl9zZXRBY3RpdmVJbmRpY2F0b3JFbGVtZW50KG5leHRFbGVtZW50SW5kZXgpXG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudCA9IG5leHRFbGVtZW50XG5cbiAgICBjb25zdCBkaXJlY3Rpb25hbENsYXNzTmFtZSA9IGlzTmV4dCA/IENMQVNTX05BTUVfU1RBUlQgOiBDTEFTU19OQU1FX0VORFxuICAgIGNvbnN0IG9yZGVyQ2xhc3NOYW1lID0gaXNOZXh0ID8gQ0xBU1NfTkFNRV9ORVhUIDogQ0xBU1NfTkFNRV9QUkVWXG5cbiAgICBuZXh0RWxlbWVudC5jbGFzc0xpc3QuYWRkKG9yZGVyQ2xhc3NOYW1lKVxuXG4gICAgcmVmbG93KG5leHRFbGVtZW50KVxuXG4gICAgYWN0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGRpcmVjdGlvbmFsQ2xhc3NOYW1lKVxuICAgIG5leHRFbGVtZW50LmNsYXNzTGlzdC5hZGQoZGlyZWN0aW9uYWxDbGFzc05hbWUpXG5cbiAgICBjb25zdCBjb21wbGV0ZUNhbGxCYWNrID0gKCkgPT4ge1xuICAgICAgbmV4dEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShkaXJlY3Rpb25hbENsYXNzTmFtZSwgb3JkZXJDbGFzc05hbWUpXG4gICAgICBuZXh0RWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfQUNUSVZFKVxuXG4gICAgICBhY3RpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9BQ1RJVkUsIG9yZGVyQ2xhc3NOYW1lLCBkaXJlY3Rpb25hbENsYXNzTmFtZSlcblxuICAgICAgdGhpcy5faXNTbGlkaW5nID0gZmFsc2VcblxuICAgICAgdHJpZ2dlckV2ZW50KEVWRU5UX1NMSUQpXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZUNhbGxCYWNrLCBhY3RpdmVFbGVtZW50LCB0aGlzLl9pc0FuaW1hdGVkKCkpXG5cbiAgICBpZiAoaXNDeWNsaW5nKSB7XG4gICAgICB0aGlzLmN5Y2xlKClcbiAgICB9XG4gIH1cblxuICBfaXNBbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TTElERSlcbiAgfVxuXG4gIF9nZXRBY3RpdmUoKSB7XG4gICAgcmV0dXJuIFNlbGVjdG9yRW5naW5lLmZpbmRPbmUoU0VMRUNUT1JfQUNUSVZFX0lURU0sIHRoaXMuX2VsZW1lbnQpXG4gIH1cblxuICBfZ2V0SXRlbXMoKSB7XG4gICAgcmV0dXJuIFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfSVRFTSwgdGhpcy5fZWxlbWVudClcbiAgfVxuXG4gIF9jbGVhckludGVydmFsKCkge1xuICAgIGlmICh0aGlzLl9pbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbClcbiAgICAgIHRoaXMuX2ludGVydmFsID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIF9kaXJlY3Rpb25Ub09yZGVyKGRpcmVjdGlvbikge1xuICAgIGlmIChpc1JUTCgpKSB7XG4gICAgICByZXR1cm4gZGlyZWN0aW9uID09PSBESVJFQ1RJT05fTEVGVCA/IE9SREVSX1BSRVYgOiBPUkRFUl9ORVhUXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gRElSRUNUSU9OX0xFRlQgPyBPUkRFUl9ORVhUIDogT1JERVJfUFJFVlxuICB9XG5cbiAgX29yZGVyVG9EaXJlY3Rpb24ob3JkZXIpIHtcbiAgICBpZiAoaXNSVEwoKSkge1xuICAgICAgcmV0dXJuIG9yZGVyID09PSBPUkRFUl9QUkVWID8gRElSRUNUSU9OX0xFRlQgOiBESVJFQ1RJT05fUklHSFRcbiAgICB9XG5cbiAgICByZXR1cm4gb3JkZXIgPT09IE9SREVSX1BSRVYgPyBESVJFQ1RJT05fUklHSFQgOiBESVJFQ1RJT05fTEVGVFxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gQ2Fyb3VzZWwuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnbnVtYmVyJykge1xuICAgICAgICBkYXRhLnRvKGNvbmZpZylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoZGF0YVtjb25maWddID09PSB1bmRlZmluZWQgfHwgY29uZmlnLnN0YXJ0c1dpdGgoJ18nKSB8fCBjb25maWcgPT09ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke2NvbmZpZ31cImApXG4gICAgICAgIH1cblxuICAgICAgICBkYXRhW2NvbmZpZ10oKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBEYXRhIEFQSSBpbXBsZW1lbnRhdGlvblxuICovXG5cbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfQ0xJQ0tfREFUQV9BUEksIFNFTEVDVE9SX0RBVEFfU0xJREUsIGZ1bmN0aW9uIChldmVudCkge1xuICBjb25zdCB0YXJnZXQgPSBTZWxlY3RvckVuZ2luZS5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKHRoaXMpXG5cbiAgaWYgKCF0YXJnZXQgfHwgIXRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9DQVJPVVNFTCkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICBjb25zdCBjYXJvdXNlbCA9IENhcm91c2VsLmdldE9yQ3JlYXRlSW5zdGFuY2UodGFyZ2V0KVxuICBjb25zdCBzbGlkZUluZGV4ID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtc2xpZGUtdG8nKVxuXG4gIGlmIChzbGlkZUluZGV4KSB7XG4gICAgY2Fyb3VzZWwudG8oc2xpZGVJbmRleClcbiAgICBjYXJvdXNlbC5fbWF5YmVFbmFibGVDeWNsZSgpXG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoTWFuaXB1bGF0b3IuZ2V0RGF0YUF0dHJpYnV0ZSh0aGlzLCAnc2xpZGUnKSA9PT0gJ25leHQnKSB7XG4gICAgY2Fyb3VzZWwubmV4dCgpXG4gICAgY2Fyb3VzZWwuX21heWJlRW5hYmxlQ3ljbGUoKVxuICAgIHJldHVyblxuICB9XG5cbiAgY2Fyb3VzZWwucHJldigpXG4gIGNhcm91c2VsLl9tYXliZUVuYWJsZUN5Y2xlKClcbn0pXG5cbkV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX0xPQURfREFUQV9BUEksICgpID0+IHtcbiAgY29uc3QgY2Fyb3VzZWxzID0gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9EQVRBX1JJREUpXG5cbiAgZm9yIChjb25zdCBjYXJvdXNlbCBvZiBjYXJvdXNlbHMpIHtcbiAgICBDYXJvdXNlbC5nZXRPckNyZWF0ZUluc3RhbmNlKGNhcm91c2VsKVxuICB9XG59KVxuXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihDYXJvdXNlbClcblxuZXhwb3J0IGRlZmF1bHQgQ2Fyb3VzZWxcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgY29sbGFwc2UuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbixcbiAgZ2V0RWxlbWVudCxcbiAgcmVmbG93XG59IGZyb20gJy4vdXRpbC9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ2NvbGxhcHNlJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMuY29sbGFwc2UnXG5jb25zdCBFVkVOVF9LRVkgPSBgLiR7REFUQV9LRVl9YFxuY29uc3QgREFUQV9BUElfS0VZID0gJy5kYXRhLWFwaSdcblxuY29uc3QgRVZFTlRfU0hPVyA9IGBzaG93JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPV04gPSBgc2hvd24ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURFID0gYGhpZGUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURERU4gPSBgaGlkZGVuJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfQ0xJQ0tfREFUQV9BUEkgPSBgY2xpY2ske0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5cbmNvbnN0IENMQVNTX05BTUVfU0hPVyA9ICdzaG93J1xuY29uc3QgQ0xBU1NfTkFNRV9DT0xMQVBTRSA9ICdjb2xsYXBzZSdcbmNvbnN0IENMQVNTX05BTUVfQ09MTEFQU0lORyA9ICdjb2xsYXBzaW5nJ1xuY29uc3QgQ0xBU1NfTkFNRV9DT0xMQVBTRUQgPSAnY29sbGFwc2VkJ1xuY29uc3QgQ0xBU1NfTkFNRV9ERUVQRVJfQ0hJTERSRU4gPSBgOnNjb3BlIC4ke0NMQVNTX05BTUVfQ09MTEFQU0V9IC4ke0NMQVNTX05BTUVfQ09MTEFQU0V9YFxuY29uc3QgQ0xBU1NfTkFNRV9IT1JJWk9OVEFMID0gJ2NvbGxhcHNlLWhvcml6b250YWwnXG5cbmNvbnN0IFdJRFRIID0gJ3dpZHRoJ1xuY29uc3QgSEVJR0hUID0gJ2hlaWdodCdcblxuY29uc3QgU0VMRUNUT1JfQUNUSVZFUyA9ICcuY29sbGFwc2Uuc2hvdywgLmNvbGxhcHNlLmNvbGxhcHNpbmcnXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSA9ICdbZGF0YS1icy10b2dnbGU9XCJjb2xsYXBzZVwiXSdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgcGFyZW50OiBudWxsLFxuICB0b2dnbGU6IHRydWVcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIHBhcmVudDogJyhudWxsfGVsZW1lbnQpJyxcbiAgdG9nZ2xlOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQ29sbGFwc2UgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcbiAgICB0aGlzLl90cmlnZ2VyQXJyYXkgPSBbXVxuXG4gICAgY29uc3QgdG9nZ2xlTGlzdCA9IFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfREFUQV9UT0dHTEUpXG5cbiAgICBmb3IgKGNvbnN0IGVsZW0gb2YgdG9nZ2xlTGlzdCkge1xuICAgICAgY29uc3Qgc2VsZWN0b3IgPSBTZWxlY3RvckVuZ2luZS5nZXRTZWxlY3RvckZyb21FbGVtZW50KGVsZW0pXG4gICAgICBjb25zdCBmaWx0ZXJFbGVtZW50ID0gU2VsZWN0b3JFbmdpbmUuZmluZChzZWxlY3RvcilcbiAgICAgICAgLmZpbHRlcihmb3VuZEVsZW1lbnQgPT4gZm91bmRFbGVtZW50ID09PSB0aGlzLl9lbGVtZW50KVxuXG4gICAgICBpZiAoc2VsZWN0b3IgIT09IG51bGwgJiYgZmlsdGVyRWxlbWVudC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckFycmF5LnB1c2goZWxlbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9pbml0aWFsaXplQ2hpbGRyZW4oKVxuXG4gICAgaWYgKCF0aGlzLl9jb25maWcucGFyZW50KSB7XG4gICAgICB0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fdHJpZ2dlckFycmF5LCB0aGlzLl9pc1Nob3duKCkpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy50b2dnbGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlKClcbiAgICB9XG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5faXNTaG93bigpKSB7XG4gICAgICB0aGlzLmhpZGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3coKVxuICAgIH1cbiAgfVxuXG4gIHNob3coKSB7XG4gICAgaWYgKHRoaXMuX2lzVHJhbnNpdGlvbmluZyB8fCB0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGxldCBhY3RpdmVDaGlsZHJlbiA9IFtdXG5cbiAgICAvLyBmaW5kIGFjdGl2ZSBjaGlsZHJlblxuICAgIGlmICh0aGlzLl9jb25maWcucGFyZW50KSB7XG4gICAgICBhY3RpdmVDaGlsZHJlbiA9IHRoaXMuX2dldEZpcnN0TGV2ZWxDaGlsZHJlbihTRUxFQ1RPUl9BQ1RJVkVTKVxuICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCAhPT0gdGhpcy5fZWxlbWVudClcbiAgICAgICAgLm1hcChlbGVtZW50ID0+IENvbGxhcHNlLmdldE9yQ3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgeyB0b2dnbGU6IGZhbHNlIH0pKVxuICAgIH1cblxuICAgIGlmIChhY3RpdmVDaGlsZHJlbi5sZW5ndGggJiYgYWN0aXZlQ2hpbGRyZW5bMF0uX2lzVHJhbnNpdGlvbmluZykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1cpXG4gICAgaWYgKHN0YXJ0RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhY3RpdmVJbnN0YW5jZSBvZiBhY3RpdmVDaGlsZHJlbikge1xuICAgICAgYWN0aXZlSW5zdGFuY2UuaGlkZSgpXG4gICAgfVxuXG4gICAgY29uc3QgZGltZW5zaW9uID0gdGhpcy5fZ2V0RGltZW5zaW9uKClcblxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0NPTExBUFNFKVxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0NPTExBUFNJTkcpXG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSAwXG5cbiAgICB0aGlzLl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy5fdHJpZ2dlckFycmF5LCB0cnVlKVxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IHRydWVcblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcblxuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfQ09MTEFQU0lORylcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0NPTExBUFNFLCBDTEFTU19OQU1FX1NIT1cpXG5cbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGVbZGltZW5zaW9uXSA9ICcnXG5cbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1dOKVxuICAgIH1cblxuICAgIGNvbnN0IGNhcGl0YWxpemVkRGltZW5zaW9uID0gZGltZW5zaW9uWzBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoMSlcbiAgICBjb25zdCBzY3JvbGxTaXplID0gYHNjcm9sbCR7Y2FwaXRhbGl6ZWREaW1lbnNpb259YFxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgdGhpcy5fZWxlbWVudCwgdHJ1ZSlcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSBgJHt0aGlzLl9lbGVtZW50W3Njcm9sbFNpemVdfXB4YFxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBpZiAodGhpcy5faXNUcmFuc2l0aW9uaW5nIHx8ICF0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0RXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURFKVxuICAgIGlmIChzdGFydEV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGRpbWVuc2lvbiA9IHRoaXMuX2dldERpbWVuc2lvbigpXG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSBgJHt0aGlzLl9lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW2RpbWVuc2lvbl19cHhgXG5cbiAgICByZWZsb3codGhpcy5fZWxlbWVudClcblxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0NPTExBUFNJTkcpXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfQ09MTEFQU0UsIENMQVNTX05BTUVfU0hPVylcblxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0aGlzLl90cmlnZ2VyQXJyYXkpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKHRyaWdnZXIpXG5cbiAgICAgIGlmIChlbGVtZW50ICYmICF0aGlzLl9pc1Nob3duKGVsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhbdHJpZ2dlcl0sIGZhbHNlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IHRydWVcblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0NPTExBUFNJTkcpXG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9DT0xMQVBTRSlcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJRERFTilcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlW2RpbWVuc2lvbl0gPSAnJ1xuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgdGhpcy5fZWxlbWVudCwgdHJ1ZSlcbiAgfVxuXG4gIF9pc1Nob3duKGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfU0hPVylcbiAgfVxuXG4gIC8vIFByaXZhdGVcbiAgX2NvbmZpZ0FmdGVyTWVyZ2UoY29uZmlnKSB7XG4gICAgY29uZmlnLnRvZ2dsZSA9IEJvb2xlYW4oY29uZmlnLnRvZ2dsZSkgLy8gQ29lcmNlIHN0cmluZyB2YWx1ZXNcbiAgICBjb25maWcucGFyZW50ID0gZ2V0RWxlbWVudChjb25maWcucGFyZW50KVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9nZXREaW1lbnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfSE9SSVpPTlRBTCkgPyBXSURUSCA6IEhFSUdIVFxuICB9XG5cbiAgX2luaXRpYWxpemVDaGlsZHJlbigpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5wYXJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fZ2V0Rmlyc3RMZXZlbENoaWxkcmVuKFNFTEVDVE9SX0RBVEFfVE9HR0xFKVxuXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IoZWxlbWVudClcblxuICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhbZWxlbWVudF0sIHRoaXMuX2lzU2hvd24oc2VsZWN0ZWQpKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9nZXRGaXJzdExldmVsQ2hpbGRyZW4oc2VsZWN0b3IpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IFNlbGVjdG9yRW5naW5lLmZpbmQoQ0xBU1NfTkFNRV9ERUVQRVJfQ0hJTERSRU4sIHRoaXMuX2NvbmZpZy5wYXJlbnQpXG4gICAgLy8gcmVtb3ZlIGNoaWxkcmVuIGlmIGdyZWF0ZXIgZGVwdGhcbiAgICByZXR1cm4gU2VsZWN0b3JFbmdpbmUuZmluZChzZWxlY3RvciwgdGhpcy5fY29uZmlnLnBhcmVudCkuZmlsdGVyKGVsZW1lbnQgPT4gIWNoaWxkcmVuLmluY2x1ZGVzKGVsZW1lbnQpKVxuICB9XG5cbiAgX2FkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0cmlnZ2VyQXJyYXksIGlzT3Blbikge1xuICAgIGlmICghdHJpZ2dlckFycmF5Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRyaWdnZXJBcnJheSkge1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKENMQVNTX05BTUVfQ09MTEFQU0VELCAhaXNPcGVuKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgY29uc3QgX2NvbmZpZyA9IHt9XG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnICYmIC9zaG93fGhpZGUvLnRlc3QoY29uZmlnKSkge1xuICAgICAgX2NvbmZpZy50b2dnbGUgPSBmYWxzZVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGF0YSA9IENvbGxhcHNlLmdldE9yQ3JlYXRlSW5zdGFuY2UodGhpcywgX2NvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YVtjb25maWddID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgICAgfVxuXG4gICAgICAgIGRhdGFbY29uZmlnXSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIGZ1bmN0aW9uIChldmVudCkge1xuICAvLyBwcmV2ZW50RGVmYXVsdCBvbmx5IGZvciA8YT4gZWxlbWVudHMgKHdoaWNoIGNoYW5nZSB0aGUgVVJMKSBub3QgaW5zaWRlIHRoZSBjb2xsYXBzaWJsZSBlbGVtZW50XG4gIGlmIChldmVudC50YXJnZXQudGFnTmFtZSA9PT0gJ0EnIHx8IChldmVudC5kZWxlZ2F0ZVRhcmdldCAmJiBldmVudC5kZWxlZ2F0ZVRhcmdldC50YWdOYW1lID09PSAnQScpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIFNlbGVjdG9yRW5naW5lLmdldE11bHRpcGxlRWxlbWVudHNGcm9tU2VsZWN0b3IodGhpcykpIHtcbiAgICBDb2xsYXBzZS5nZXRPckNyZWF0ZUluc3RhbmNlKGVsZW1lbnQsIHsgdG9nZ2xlOiBmYWxzZSB9KS50b2dnbGUoKVxuICB9XG59KVxuXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihDb2xsYXBzZSlcblxuZXhwb3J0IGRlZmF1bHQgQ29sbGFwc2VcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgZHJvcGRvd24uanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgKiBhcyBQb3BwZXIgZnJvbSAnQHBvcHBlcmpzL2NvcmUnXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IE1hbmlwdWxhdG9yIGZyb20gJy4vZG9tL21hbmlwdWxhdG9yLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbixcbiAgZXhlY3V0ZSxcbiAgZ2V0RWxlbWVudCxcbiAgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQsXG4gIGlzRGlzYWJsZWQsXG4gIGlzRWxlbWVudCxcbiAgaXNSVEwsXG4gIGlzVmlzaWJsZSxcbiAgbm9vcFxufSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICdkcm9wZG93bidcbmNvbnN0IERBVEFfS0VZID0gJ2JzLmRyb3Bkb3duJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5cbmNvbnN0IEVTQ0FQRV9LRVkgPSAnRXNjYXBlJ1xuY29uc3QgVEFCX0tFWSA9ICdUYWInXG5jb25zdCBBUlJPV19VUF9LRVkgPSAnQXJyb3dVcCdcbmNvbnN0IEFSUk9XX0RPV05fS0VZID0gJ0Fycm93RG93bidcbmNvbnN0IFJJR0hUX01PVVNFX0JVVFRPTiA9IDIgLy8gTW91c2VFdmVudC5idXR0b24gdmFsdWUgZm9yIHRoZSBzZWNvbmRhcnkgYnV0dG9uLCB1c3VhbGx5IHRoZSByaWdodCBidXR0b25cblxuY29uc3QgRVZFTlRfSElERSA9IGBoaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElEREVOID0gYGhpZGRlbiR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1NIT1cgPSBgc2hvdyR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1NIT1dOID0gYHNob3duJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfQ0xJQ0tfREFUQV9BUEkgPSBgY2xpY2ske0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9LRVlET1dOX0RBVEFfQVBJID0gYGtleWRvd24ke0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9LRVlVUF9EQVRBX0FQSSA9IGBrZXl1cCR7RVZFTlRfS0VZfSR7REFUQV9BUElfS0VZfWBcblxuY29uc3QgQ0xBU1NfTkFNRV9TSE9XID0gJ3Nob3cnXG5jb25zdCBDTEFTU19OQU1FX0RST1BVUCA9ICdkcm9wdXAnXG5jb25zdCBDTEFTU19OQU1FX0RST1BFTkQgPSAnZHJvcGVuZCdcbmNvbnN0IENMQVNTX05BTUVfRFJPUFNUQVJUID0gJ2Ryb3BzdGFydCdcbmNvbnN0IENMQVNTX05BTUVfRFJPUFVQX0NFTlRFUiA9ICdkcm9wdXAtY2VudGVyJ1xuY29uc3QgQ0xBU1NfTkFNRV9EUk9QRE9XTl9DRU5URVIgPSAnZHJvcGRvd24tY2VudGVyJ1xuXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSA9ICdbZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiXTpub3QoLmRpc2FibGVkKTpub3QoOmRpc2FibGVkKSdcbmNvbnN0IFNFTEVDVE9SX0RBVEFfVE9HR0xFX1NIT1dOID0gYCR7U0VMRUNUT1JfREFUQV9UT0dHTEV9LiR7Q0xBU1NfTkFNRV9TSE9XfWBcbmNvbnN0IFNFTEVDVE9SX01FTlUgPSAnLmRyb3Bkb3duLW1lbnUnXG5jb25zdCBTRUxFQ1RPUl9OQVZCQVIgPSAnLm5hdmJhcidcbmNvbnN0IFNFTEVDVE9SX05BVkJBUl9OQVYgPSAnLm5hdmJhci1uYXYnXG5jb25zdCBTRUxFQ1RPUl9WSVNJQkxFX0lURU1TID0gJy5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOm5vdCguZGlzYWJsZWQpOm5vdCg6ZGlzYWJsZWQpJ1xuXG5jb25zdCBQTEFDRU1FTlRfVE9QID0gaXNSVEwoKSA/ICd0b3AtZW5kJyA6ICd0b3Atc3RhcnQnXG5jb25zdCBQTEFDRU1FTlRfVE9QRU5EID0gaXNSVEwoKSA/ICd0b3Atc3RhcnQnIDogJ3RvcC1lbmQnXG5jb25zdCBQTEFDRU1FTlRfQk9UVE9NID0gaXNSVEwoKSA/ICdib3R0b20tZW5kJyA6ICdib3R0b20tc3RhcnQnXG5jb25zdCBQTEFDRU1FTlRfQk9UVE9NRU5EID0gaXNSVEwoKSA/ICdib3R0b20tc3RhcnQnIDogJ2JvdHRvbS1lbmQnXG5jb25zdCBQTEFDRU1FTlRfUklHSFQgPSBpc1JUTCgpID8gJ2xlZnQtc3RhcnQnIDogJ3JpZ2h0LXN0YXJ0J1xuY29uc3QgUExBQ0VNRU5UX0xFRlQgPSBpc1JUTCgpID8gJ3JpZ2h0LXN0YXJ0JyA6ICdsZWZ0LXN0YXJ0J1xuY29uc3QgUExBQ0VNRU5UX1RPUENFTlRFUiA9ICd0b3AnXG5jb25zdCBQTEFDRU1FTlRfQk9UVE9NQ0VOVEVSID0gJ2JvdHRvbSdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgYXV0b0Nsb3NlOiB0cnVlLFxuICBib3VuZGFyeTogJ2NsaXBwaW5nUGFyZW50cycsXG4gIGRpc3BsYXk6ICdkeW5hbWljJyxcbiAgb2Zmc2V0OiBbMCwgMl0sXG4gIHBvcHBlckNvbmZpZzogbnVsbCxcbiAgcmVmZXJlbmNlOiAndG9nZ2xlJ1xufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYXV0b0Nsb3NlOiAnKGJvb2xlYW58c3RyaW5nKScsXG4gIGJvdW5kYXJ5OiAnKHN0cmluZ3xlbGVtZW50KScsXG4gIGRpc3BsYXk6ICdzdHJpbmcnLFxuICBvZmZzZXQ6ICcoYXJyYXl8c3RyaW5nfGZ1bmN0aW9uKScsXG4gIHBvcHBlckNvbmZpZzogJyhudWxsfG9iamVjdHxmdW5jdGlvbiknLFxuICByZWZlcmVuY2U6ICcoc3RyaW5nfGVsZW1lbnR8b2JqZWN0KSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgRHJvcGRvd24gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5fcG9wcGVyID0gbnVsbFxuICAgIHRoaXMuX3BhcmVudCA9IHRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZSAvLyBkcm9wZG93biB3cmFwcGVyXG4gICAgLy8gVE9ETzogdjYgcmV2ZXJ0ICMzNzAxMSAmIGNoYW5nZSBtYXJrdXAgaHR0cHM6Ly9nZXRib290c3RyYXAuY29tL2RvY3MvNS4zL2Zvcm1zL2lucHV0LWdyb3VwL1xuICAgIHRoaXMuX21lbnUgPSBTZWxlY3RvckVuZ2luZS5uZXh0KHRoaXMuX2VsZW1lbnQsIFNFTEVDVE9SX01FTlUpWzBdIHx8XG4gICAgICBTZWxlY3RvckVuZ2luZS5wcmV2KHRoaXMuX2VsZW1lbnQsIFNFTEVDVE9SX01FTlUpWzBdIHx8XG4gICAgICBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX01FTlUsIHRoaXMuX3BhcmVudClcbiAgICB0aGlzLl9pbk5hdmJhciA9IHRoaXMuX2RldGVjdE5hdmJhcigpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNTaG93bigpID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coKVxuICB9XG5cbiAgc2hvdygpIHtcbiAgICBpZiAoaXNEaXNhYmxlZCh0aGlzLl9lbGVtZW50KSB8fCB0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7XG4gICAgICByZWxhdGVkVGFyZ2V0OiB0aGlzLl9lbGVtZW50XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvd0V2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPVywgcmVsYXRlZFRhcmdldClcblxuICAgIGlmIChzaG93RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fY3JlYXRlUG9wcGVyKClcblxuICAgIC8vIElmIHRoaXMgaXMgYSB0b3VjaC1lbmFibGVkIGRldmljZSB3ZSBhZGQgZXh0cmFcbiAgICAvLyBlbXB0eSBtb3VzZW92ZXIgbGlzdGVuZXJzIHRvIHRoZSBib2R5J3MgaW1tZWRpYXRlIGNoaWxkcmVuO1xuICAgIC8vIG9ubHkgbmVlZGVkIGJlY2F1c2Ugb2YgYnJva2VuIGV2ZW50IGRlbGVnYXRpb24gb24gaU9TXG4gICAgLy8gaHR0cHM6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDE0LzAyL21vdXNlX2V2ZW50X2J1Yi5odG1sXG4gICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAhdGhpcy5fcGFyZW50LmNsb3Nlc3QoU0VMRUNUT1JfTkFWQkFSX05BVikpIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKGVsZW1lbnQsICdtb3VzZW92ZXInLCBub29wKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnQuZm9jdXMoKVxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgdHJ1ZSlcblxuICAgIHRoaXMuX21lbnUuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfU0hPVylcbiAgICBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9TSE9XTiwgcmVsYXRlZFRhcmdldClcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKGlzRGlzYWJsZWQodGhpcy5fZWxlbWVudCkgfHwgIXRoaXMuX2lzU2hvd24oKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXMuX2VsZW1lbnRcbiAgICB9XG5cbiAgICB0aGlzLl9jb21wbGV0ZUhpZGUocmVsYXRlZFRhcmdldClcbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgaWYgKHRoaXMuX3BvcHBlcikge1xuICAgICAgdGhpcy5fcG9wcGVyLmRlc3Ryb3koKVxuICAgIH1cblxuICAgIHN1cGVyLmRpc3Bvc2UoKVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIHRoaXMuX2luTmF2YmFyID0gdGhpcy5fZGV0ZWN0TmF2YmFyKClcbiAgICBpZiAodGhpcy5fcG9wcGVyKSB7XG4gICAgICB0aGlzLl9wb3BwZXIudXBkYXRlKClcbiAgICB9XG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9jb21wbGV0ZUhpZGUocmVsYXRlZFRhcmdldCkge1xuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREUsIHJlbGF0ZWRUYXJnZXQpXG4gICAgaWYgKGhpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBJZiB0aGlzIGlzIGEgdG91Y2gtZW5hYmxlZCBkZXZpY2Ugd2UgcmVtb3ZlIHRoZSBleHRyYVxuICAgIC8vIGVtcHR5IG1vdXNlb3ZlciBsaXN0ZW5lcnMgd2UgYWRkZWQgZm9yIGlPUyBzdXBwb3J0XG4gICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkge1xuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIFtdLmNvbmNhdCguLi5kb2N1bWVudC5ib2R5LmNoaWxkcmVuKSkge1xuICAgICAgICBFdmVudEhhbmRsZXIub2ZmKGVsZW1lbnQsICdtb3VzZW92ZXInLCBub29wKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9wb3BwZXIpIHtcbiAgICAgIHRoaXMuX3BvcHBlci5kZXN0cm95KClcbiAgICB9XG5cbiAgICB0aGlzLl9tZW51LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX1NIT1cpXG4gICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKVxuICAgIE1hbmlwdWxhdG9yLnJlbW92ZURhdGFBdHRyaWJ1dGUodGhpcy5fbWVudSwgJ3BvcHBlcicpXG4gICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfSElEREVOLCByZWxhdGVkVGFyZ2V0KVxuICB9XG5cbiAgX2dldENvbmZpZyhjb25maWcpIHtcbiAgICBjb25maWcgPSBzdXBlci5fZ2V0Q29uZmlnKGNvbmZpZylcblxuICAgIGlmICh0eXBlb2YgY29uZmlnLnJlZmVyZW5jZSA9PT0gJ29iamVjdCcgJiYgIWlzRWxlbWVudChjb25maWcucmVmZXJlbmNlKSAmJlxuICAgICAgdHlwZW9mIGNvbmZpZy5yZWZlcmVuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ICE9PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICAvLyBQb3BwZXIgdmlydHVhbCBlbGVtZW50cyByZXF1aXJlIGEgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG1ldGhvZFxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHtOQU1FLnRvVXBwZXJDYXNlKCl9OiBPcHRpb24gXCJyZWZlcmVuY2VcIiBwcm92aWRlZCB0eXBlIFwib2JqZWN0XCIgd2l0aG91dCBhIHJlcXVpcmVkIFwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0XCIgbWV0aG9kLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG5cbiAgX2NyZWF0ZVBvcHBlcigpIHtcbiAgICBpZiAodHlwZW9mIFBvcHBlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgZHJvcGRvd25zIHJlcXVpcmUgUG9wcGVyIChodHRwczovL3BvcHBlci5qcy5vcmcpJylcbiAgICB9XG5cbiAgICBsZXQgcmVmZXJlbmNlRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRcblxuICAgIGlmICh0aGlzLl9jb25maWcucmVmZXJlbmNlID09PSAncGFyZW50Jykge1xuICAgICAgcmVmZXJlbmNlRWxlbWVudCA9IHRoaXMuX3BhcmVudFxuICAgIH0gZWxzZSBpZiAoaXNFbGVtZW50KHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UpKSB7XG4gICAgICByZWZlcmVuY2VFbGVtZW50ID0gZ2V0RWxlbWVudCh0aGlzLl9jb25maWcucmVmZXJlbmNlKVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuX2NvbmZpZy5yZWZlcmVuY2UgPT09ICdvYmplY3QnKSB7XG4gICAgICByZWZlcmVuY2VFbGVtZW50ID0gdGhpcy5fY29uZmlnLnJlZmVyZW5jZVxuICAgIH1cblxuICAgIGNvbnN0IHBvcHBlckNvbmZpZyA9IHRoaXMuX2dldFBvcHBlckNvbmZpZygpXG4gICAgdGhpcy5fcG9wcGVyID0gUG9wcGVyLmNyZWF0ZVBvcHBlcihyZWZlcmVuY2VFbGVtZW50LCB0aGlzLl9tZW51LCBwb3BwZXJDb25maWcpXG4gIH1cblxuICBfaXNTaG93bigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudS5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TSE9XKVxuICB9XG5cbiAgX2dldFBsYWNlbWVudCgpIHtcbiAgICBjb25zdCBwYXJlbnREcm9wZG93biA9IHRoaXMuX3BhcmVudFxuXG4gICAgaWYgKHBhcmVudERyb3Bkb3duLmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19OQU1FX0RST1BFTkQpKSB7XG4gICAgICByZXR1cm4gUExBQ0VNRU5UX1JJR0hUXG4gICAgfVxuXG4gICAgaWYgKHBhcmVudERyb3Bkb3duLmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19OQU1FX0RST1BTVEFSVCkpIHtcbiAgICAgIHJldHVybiBQTEFDRU1FTlRfTEVGVFxuICAgIH1cblxuICAgIGlmIChwYXJlbnREcm9wZG93bi5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9EUk9QVVBfQ0VOVEVSKSkge1xuICAgICAgcmV0dXJuIFBMQUNFTUVOVF9UT1BDRU5URVJcbiAgICB9XG5cbiAgICBpZiAocGFyZW50RHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRFJPUERPV05fQ0VOVEVSKSkge1xuICAgICAgcmV0dXJuIFBMQUNFTUVOVF9CT1RUT01DRU5URVJcbiAgICB9XG5cbiAgICAvLyBXZSBuZWVkIHRvIHRyaW0gdGhlIHZhbHVlIGJlY2F1c2UgY3VzdG9tIHByb3BlcnRpZXMgY2FuIGFsc28gaW5jbHVkZSBzcGFjZXNcbiAgICBjb25zdCBpc0VuZCA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5fbWVudSkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1icy1wb3NpdGlvbicpLnRyaW0oKSA9PT0gJ2VuZCdcblxuICAgIGlmIChwYXJlbnREcm9wZG93bi5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9EUk9QVVApKSB7XG4gICAgICByZXR1cm4gaXNFbmQgPyBQTEFDRU1FTlRfVE9QRU5EIDogUExBQ0VNRU5UX1RPUFxuICAgIH1cblxuICAgIHJldHVybiBpc0VuZCA/IFBMQUNFTUVOVF9CT1RUT01FTkQgOiBQTEFDRU1FTlRfQk9UVE9NXG4gIH1cblxuICBfZGV0ZWN0TmF2YmFyKCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50LmNsb3Nlc3QoU0VMRUNUT1JfTkFWQkFSKSAhPT0gbnVsbFxuICB9XG5cbiAgX2dldE9mZnNldCgpIHtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gdGhpcy5fY29uZmlnXG5cbiAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBvZmZzZXQuc3BsaXQoJywnKS5tYXAodmFsdWUgPT4gTnVtYmVyLnBhcnNlSW50KHZhbHVlLCAxMCkpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBwb3BwZXJEYXRhID0+IG9mZnNldChwb3BwZXJEYXRhLCB0aGlzLl9lbGVtZW50KVxuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXRcbiAgfVxuXG4gIF9nZXRQb3BwZXJDb25maWcoKSB7XG4gICAgY29uc3QgZGVmYXVsdEJzUG9wcGVyQ29uZmlnID0ge1xuICAgICAgcGxhY2VtZW50OiB0aGlzLl9nZXRQbGFjZW1lbnQoKSxcbiAgICAgIG1vZGlmaWVyczogW3tcbiAgICAgICAgbmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBib3VuZGFyeTogdGhpcy5fY29uZmlnLmJvdW5kYXJ5XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvZmZzZXQnLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgb2Zmc2V0OiB0aGlzLl9nZXRPZmZzZXQoKVxuICAgICAgICB9XG4gICAgICB9XVxuICAgIH1cblxuICAgIC8vIERpc2FibGUgUG9wcGVyIGlmIHdlIGhhdmUgYSBzdGF0aWMgZGlzcGxheSBvciBEcm9wZG93biBpcyBpbiBOYXZiYXJcbiAgICBpZiAodGhpcy5faW5OYXZiYXIgfHwgdGhpcy5fY29uZmlnLmRpc3BsYXkgPT09ICdzdGF0aWMnKSB7XG4gICAgICBNYW5pcHVsYXRvci5zZXREYXRhQXR0cmlidXRlKHRoaXMuX21lbnUsICdwb3BwZXInLCAnc3RhdGljJykgLy8gVE9ETzogdjYgcmVtb3ZlXG4gICAgICBkZWZhdWx0QnNQb3BwZXJDb25maWcubW9kaWZpZXJzID0gW3tcbiAgICAgICAgbmFtZTogJ2FwcGx5U3R5bGVzJyxcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICAgIH1dXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRCc1BvcHBlckNvbmZpZyxcbiAgICAgIC4uLmV4ZWN1dGUodGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZywgW2RlZmF1bHRCc1BvcHBlckNvbmZpZ10pXG4gICAgfVxuICB9XG5cbiAgX3NlbGVjdE1lbnVJdGVtKHsga2V5LCB0YXJnZXQgfSkge1xuICAgIGNvbnN0IGl0ZW1zID0gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9WSVNJQkxFX0lURU1TLCB0aGlzLl9tZW51KS5maWx0ZXIoZWxlbWVudCA9PiBpc1Zpc2libGUoZWxlbWVudCkpXG5cbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gaWYgdGFyZ2V0IGlzbid0IGluY2x1ZGVkIGluIGl0ZW1zIChlLmcuIHdoZW4gZXhwYW5kaW5nIHRoZSBkcm9wZG93bilcbiAgICAvLyBhbGxvdyBjeWNsaW5nIHRvIGdldCB0aGUgbGFzdCBpdGVtIGluIGNhc2Uga2V5IGVxdWFscyBBUlJPV19VUF9LRVlcbiAgICBnZXROZXh0QWN0aXZlRWxlbWVudChpdGVtcywgdGFyZ2V0LCBrZXkgPT09IEFSUk9XX0RPV05fS0VZLCAhaXRlbXMuaW5jbHVkZXModGFyZ2V0KSkuZm9jdXMoKVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gRHJvcGRvd24uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBkYXRhW2NvbmZpZ10gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgIH1cblxuICAgICAgZGF0YVtjb25maWddKClcbiAgICB9KVxuICB9XG5cbiAgc3RhdGljIGNsZWFyTWVudXMoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuYnV0dG9uID09PSBSSUdIVF9NT1VTRV9CVVRUT04gfHwgKGV2ZW50LnR5cGUgPT09ICdrZXl1cCcgJiYgZXZlbnQua2V5ICE9PSBUQUJfS0VZKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgb3BlblRvZ2dsZXMgPSBTZWxlY3RvckVuZ2luZS5maW5kKFNFTEVDVE9SX0RBVEFfVE9HR0xFX1NIT1dOKVxuXG4gICAgZm9yIChjb25zdCB0b2dnbGUgb2Ygb3BlblRvZ2dsZXMpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBEcm9wZG93bi5nZXRJbnN0YW5jZSh0b2dnbGUpXG4gICAgICBpZiAoIWNvbnRleHQgfHwgY29udGV4dC5fY29uZmlnLmF1dG9DbG9zZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29tcG9zZWRQYXRoID0gZXZlbnQuY29tcG9zZWRQYXRoKClcbiAgICAgIGNvbnN0IGlzTWVudVRhcmdldCA9IGNvbXBvc2VkUGF0aC5pbmNsdWRlcyhjb250ZXh0Ll9tZW51KVxuICAgICAgaWYgKFxuICAgICAgICBjb21wb3NlZFBhdGguaW5jbHVkZXMoY29udGV4dC5fZWxlbWVudCkgfHxcbiAgICAgICAgKGNvbnRleHQuX2NvbmZpZy5hdXRvQ2xvc2UgPT09ICdpbnNpZGUnICYmICFpc01lbnVUYXJnZXQpIHx8XG4gICAgICAgIChjb250ZXh0Ll9jb25maWcuYXV0b0Nsb3NlID09PSAnb3V0c2lkZScgJiYgaXNNZW51VGFyZ2V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIFRhYiBuYXZpZ2F0aW9uIHRocm91Z2ggdGhlIGRyb3Bkb3duIG1lbnUgb3IgZXZlbnRzIGZyb20gY29udGFpbmVkIGlucHV0cyBzaG91bGRuJ3QgY2xvc2UgdGhlIG1lbnVcbiAgICAgIGlmIChjb250ZXh0Ll9tZW51LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgKChldmVudC50eXBlID09PSAna2V5dXAnICYmIGV2ZW50LmtleSA9PT0gVEFCX0tFWSkgfHwgL2lucHV0fHNlbGVjdHxvcHRpb258dGV4dGFyZWF8Zm9ybS9pLnRlc3QoZXZlbnQudGFyZ2V0LnRhZ05hbWUpKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZWxhdGVkVGFyZ2V0ID0geyByZWxhdGVkVGFyZ2V0OiBjb250ZXh0Ll9lbGVtZW50IH1cblxuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgcmVsYXRlZFRhcmdldC5jbGlja0V2ZW50ID0gZXZlbnRcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5fY29tcGxldGVIaWRlKHJlbGF0ZWRUYXJnZXQpXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGRhdGFBcGlLZXlkb3duSGFuZGxlcihldmVudCkge1xuICAgIC8vIElmIG5vdCBhbiBVUCB8IERPV04gfCBFU0NBUEUga2V5ID0+IG5vdCBhIGRyb3Bkb3duIGNvbW1hbmRcbiAgICAvLyBJZiBpbnB1dC90ZXh0YXJlYSAmJiBpZiBrZXkgaXMgb3RoZXIgdGhhbiBFU0NBUEUgPT4gbm90IGEgZHJvcGRvd24gY29tbWFuZFxuXG4gICAgY29uc3QgaXNJbnB1dCA9IC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZXZlbnQudGFyZ2V0LnRhZ05hbWUpXG4gICAgY29uc3QgaXNFc2NhcGVFdmVudCA9IGV2ZW50LmtleSA9PT0gRVNDQVBFX0tFWVxuICAgIGNvbnN0IGlzVXBPckRvd25FdmVudCA9IFtBUlJPV19VUF9LRVksIEFSUk9XX0RPV05fS0VZXS5pbmNsdWRlcyhldmVudC5rZXkpXG5cbiAgICBpZiAoIWlzVXBPckRvd25FdmVudCAmJiAhaXNFc2NhcGVFdmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzSW5wdXQgJiYgIWlzRXNjYXBlRXZlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgIC8vIFRPRE86IHY2IHJldmVydCAjMzcwMTEgJiBjaGFuZ2UgbWFya3VwIGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzUuMy9mb3Jtcy9pbnB1dC1ncm91cC9cbiAgICBjb25zdCBnZXRUb2dnbGVCdXR0b24gPSB0aGlzLm1hdGNoZXMoU0VMRUNUT1JfREFUQV9UT0dHTEUpID9cbiAgICAgIHRoaXMgOlxuICAgICAgKFNlbGVjdG9yRW5naW5lLnByZXYodGhpcywgU0VMRUNUT1JfREFUQV9UT0dHTEUpWzBdIHx8XG4gICAgICAgIFNlbGVjdG9yRW5naW5lLm5leHQodGhpcywgU0VMRUNUT1JfREFUQV9UT0dHTEUpWzBdIHx8XG4gICAgICAgIFNlbGVjdG9yRW5naW5lLmZpbmRPbmUoU0VMRUNUT1JfREFUQV9UT0dHTEUsIGV2ZW50LmRlbGVnYXRlVGFyZ2V0LnBhcmVudE5vZGUpKVxuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBEcm9wZG93bi5nZXRPckNyZWF0ZUluc3RhbmNlKGdldFRvZ2dsZUJ1dHRvbilcblxuICAgIGlmIChpc1VwT3JEb3duRXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICBpbnN0YW5jZS5zaG93KClcbiAgICAgIGluc3RhbmNlLl9zZWxlY3RNZW51SXRlbShldmVudClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5faXNTaG93bigpKSB7IC8vIGVsc2UgaXMgZXNjYXBlIGFuZCB3ZSBjaGVjayBpZiBpdCBpcyBzaG93blxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgIGluc3RhbmNlLmhpZGUoKVxuICAgICAgZ2V0VG9nZ2xlQnV0dG9uLmZvY3VzKClcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBEYXRhIEFQSSBpbXBsZW1lbnRhdGlvblxuICovXG5cbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZRE9XTl9EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIERyb3Bkb3duLmRhdGFBcGlLZXlkb3duSGFuZGxlcilcbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZRE9XTl9EQVRBX0FQSSwgU0VMRUNUT1JfTUVOVSwgRHJvcGRvd24uZGF0YUFwaUtleWRvd25IYW5kbGVyKVxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgRHJvcGRvd24uY2xlYXJNZW51cylcbkV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZVVBfREFUQV9BUEksIERyb3Bkb3duLmNsZWFyTWVudXMpXG5FdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0NMSUNLX0RBVEFfQVBJLCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgRHJvcGRvd24uZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzKS50b2dnbGUoKVxufSlcblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oRHJvcGRvd24pXG5cbmV4cG9ydCBkZWZhdWx0IERyb3Bkb3duXG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvYmFja2Ryb3AuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4uL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy5qcydcbmltcG9ydCB7XG4gIGV4ZWN1dGUsIGV4ZWN1dGVBZnRlclRyYW5zaXRpb24sIGdldEVsZW1lbnQsIHJlZmxvd1xufSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnYmFja2Ryb3AnXG5jb25zdCBDTEFTU19OQU1FX0ZBREUgPSAnZmFkZSdcbmNvbnN0IENMQVNTX05BTUVfU0hPVyA9ICdzaG93J1xuY29uc3QgRVZFTlRfTU9VU0VET1dOID0gYG1vdXNlZG93bi5icy4ke05BTUV9YFxuXG5jb25zdCBEZWZhdWx0ID0ge1xuICBjbGFzc05hbWU6ICdtb2RhbC1iYWNrZHJvcCcsXG4gIGNsaWNrQ2FsbGJhY2s6IG51bGwsXG4gIGlzQW5pbWF0ZWQ6IGZhbHNlLFxuICBpc1Zpc2libGU6IHRydWUsIC8vIGlmIGZhbHNlLCB3ZSB1c2UgdGhlIGJhY2tkcm9wIGhlbHBlciB3aXRob3V0IGFkZGluZyBhbnkgZWxlbWVudCB0byB0aGUgZG9tXG4gIHJvb3RFbGVtZW50OiAnYm9keScgLy8gZ2l2ZSB0aGUgY2hvaWNlIHRvIHBsYWNlIGJhY2tkcm9wIHVuZGVyIGRpZmZlcmVudCBlbGVtZW50c1xufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgY2xhc3NOYW1lOiAnc3RyaW5nJyxcbiAgY2xpY2tDYWxsYmFjazogJyhmdW5jdGlvbnxudWxsKScsXG4gIGlzQW5pbWF0ZWQ6ICdib29sZWFuJyxcbiAgaXNWaXNpYmxlOiAnYm9vbGVhbicsXG4gIHJvb3RFbGVtZW50OiAnKGVsZW1lbnR8c3RyaW5nKSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgQmFja2Ryb3AgZXh0ZW5kcyBDb25maWcge1xuICBjb25zdHJ1Y3Rvcihjb25maWcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5fY29uZmlnID0gdGhpcy5fZ2V0Q29uZmlnKGNvbmZpZylcbiAgICB0aGlzLl9pc0FwcGVuZGVkID0gZmFsc2VcbiAgICB0aGlzLl9lbGVtZW50ID0gbnVsbFxuICB9XG5cbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRcbiAgfVxuXG4gIHN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRUeXBlXG4gIH1cblxuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBzaG93KGNhbGxiYWNrKSB7XG4gICAgaWYgKCF0aGlzLl9jb25maWcuaXNWaXNpYmxlKSB7XG4gICAgICBleGVjdXRlKGNhbGxiYWNrKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fYXBwZW5kKClcblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9nZXRFbGVtZW50KClcbiAgICBpZiAodGhpcy5fY29uZmlnLmlzQW5pbWF0ZWQpIHtcbiAgICAgIHJlZmxvdyhlbGVtZW50KVxuICAgIH1cblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG5cbiAgICB0aGlzLl9lbXVsYXRlQW5pbWF0aW9uKCgpID0+IHtcbiAgICAgIGV4ZWN1dGUoY2FsbGJhY2spXG4gICAgfSlcbiAgfVxuXG4gIGhpZGUoY2FsbGJhY2spIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5pc1Zpc2libGUpIHtcbiAgICAgIGV4ZWN1dGUoY2FsbGJhY2spXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9nZXRFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX1NIT1cpXG5cbiAgICB0aGlzLl9lbXVsYXRlQW5pbWF0aW9uKCgpID0+IHtcbiAgICAgIHRoaXMuZGlzcG9zZSgpXG4gICAgICBleGVjdXRlKGNhbGxiYWNrKVxuICAgIH0pXG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGlmICghdGhpcy5faXNBcHBlbmRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgRXZlbnRIYW5kbGVyLm9mZih0aGlzLl9lbGVtZW50LCBFVkVOVF9NT1VTRURPV04pXG5cbiAgICB0aGlzLl9lbGVtZW50LnJlbW92ZSgpXG4gICAgdGhpcy5faXNBcHBlbmRlZCA9IGZhbHNlXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9nZXRFbGVtZW50KCkge1xuICAgIGlmICghdGhpcy5fZWxlbWVudCkge1xuICAgICAgY29uc3QgYmFja2Ryb3AgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgICAgYmFja2Ryb3AuY2xhc3NOYW1lID0gdGhpcy5fY29uZmlnLmNsYXNzTmFtZVxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5pc0FuaW1hdGVkKSB7XG4gICAgICAgIGJhY2tkcm9wLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9GQURFKVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9lbGVtZW50ID0gYmFja2Ryb3BcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFxuICB9XG5cbiAgX2NvbmZpZ0FmdGVyTWVyZ2UoY29uZmlnKSB7XG4gICAgLy8gdXNlIGdldEVsZW1lbnQoKSB3aXRoIHRoZSBkZWZhdWx0IFwiYm9keVwiIHRvIGdldCBhIGZyZXNoIEVsZW1lbnQgb24gZWFjaCBpbnN0YW50aWF0aW9uXG4gICAgY29uZmlnLnJvb3RFbGVtZW50ID0gZ2V0RWxlbWVudChjb25maWcucm9vdEVsZW1lbnQpXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG5cbiAgX2FwcGVuZCgpIHtcbiAgICBpZiAodGhpcy5faXNBcHBlbmRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2dldEVsZW1lbnQoKVxuICAgIHRoaXMuX2NvbmZpZy5yb290RWxlbWVudC5hcHBlbmQoZWxlbWVudClcblxuICAgIEV2ZW50SGFuZGxlci5vbihlbGVtZW50LCBFVkVOVF9NT1VTRURPV04sICgpID0+IHtcbiAgICAgIGV4ZWN1dGUodGhpcy5fY29uZmlnLmNsaWNrQ2FsbGJhY2spXG4gICAgfSlcblxuICAgIHRoaXMuX2lzQXBwZW5kZWQgPSB0cnVlXG4gIH1cblxuICBfZW11bGF0ZUFuaW1hdGlvbihjYWxsYmFjaykge1xuICAgIGV4ZWN1dGVBZnRlclRyYW5zaXRpb24oY2FsbGJhY2ssIHRoaXMuX2dldEVsZW1lbnQoKSwgdGhpcy5fY29uZmlnLmlzQW5pbWF0ZWQpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQmFja2Ryb3BcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9mb2N1c3RyYXAuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4uL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4uL2RvbS9zZWxlY3Rvci1lbmdpbmUuanMnXG5pbXBvcnQgQ29uZmlnIGZyb20gJy4vY29uZmlnLmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnZm9jdXN0cmFwJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMuZm9jdXN0cmFwJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IEVWRU5UX0ZPQ1VTSU4gPSBgZm9jdXNpbiR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0tFWURPV05fVEFCID0gYGtleWRvd24udGFiJHtFVkVOVF9LRVl9YFxuXG5jb25zdCBUQUJfS0VZID0gJ1RhYidcbmNvbnN0IFRBQl9OQVZfRk9SV0FSRCA9ICdmb3J3YXJkJ1xuY29uc3QgVEFCX05BVl9CQUNLV0FSRCA9ICdiYWNrd2FyZCdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgYXV0b2ZvY3VzOiB0cnVlLFxuICB0cmFwRWxlbWVudDogbnVsbCAvLyBUaGUgZWxlbWVudCB0byB0cmFwIGZvY3VzIGluc2lkZSBvZlxufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYXV0b2ZvY3VzOiAnYm9vbGVhbicsXG4gIHRyYXBFbGVtZW50OiAnZWxlbWVudCdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgRm9jdXNUcmFwIGV4dGVuZHMgQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoY29uZmlnKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuX2NvbmZpZyA9IHRoaXMuX2dldENvbmZpZyhjb25maWcpXG4gICAgdGhpcy5faXNBY3RpdmUgPSBmYWxzZVxuICAgIHRoaXMuX2xhc3RUYWJOYXZEaXJlY3Rpb24gPSBudWxsXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIGFjdGl2YXRlKCkge1xuICAgIGlmICh0aGlzLl9pc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy50cmFwRWxlbWVudC5mb2N1cygpXG4gICAgfVxuXG4gICAgRXZlbnRIYW5kbGVyLm9mZihkb2N1bWVudCwgRVZFTlRfS0VZKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcbiAgICBFdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0ZPQ1VTSU4sIGV2ZW50ID0+IHRoaXMuX2hhbmRsZUZvY3VzaW4oZXZlbnQpKVxuICAgIEV2ZW50SGFuZGxlci5vbihkb2N1bWVudCwgRVZFTlRfS0VZRE9XTl9UQUIsIGV2ZW50ID0+IHRoaXMuX2hhbmRsZUtleWRvd24oZXZlbnQpKVxuXG4gICAgdGhpcy5faXNBY3RpdmUgPSB0cnVlXG4gIH1cblxuICBkZWFjdGl2YXRlKCkge1xuICAgIGlmICghdGhpcy5faXNBY3RpdmUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2lzQWN0aXZlID0gZmFsc2VcbiAgICBFdmVudEhhbmRsZXIub2ZmKGRvY3VtZW50LCBFVkVOVF9LRVkpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9oYW5kbGVGb2N1c2luKGV2ZW50KSB7XG4gICAgY29uc3QgeyB0cmFwRWxlbWVudCB9ID0gdGhpcy5fY29uZmlnXG5cbiAgICBpZiAoZXZlbnQudGFyZ2V0ID09PSBkb2N1bWVudCB8fCBldmVudC50YXJnZXQgPT09IHRyYXBFbGVtZW50IHx8IHRyYXBFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRzID0gU2VsZWN0b3JFbmdpbmUuZm9jdXNhYmxlQ2hpbGRyZW4odHJhcEVsZW1lbnQpXG5cbiAgICBpZiAoZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0cmFwRWxlbWVudC5mb2N1cygpXG4gICAgfSBlbHNlIGlmICh0aGlzLl9sYXN0VGFiTmF2RGlyZWN0aW9uID09PSBUQUJfTkFWX0JBQ0tXQVJEKSB7XG4gICAgICBlbGVtZW50c1tlbGVtZW50cy5sZW5ndGggLSAxXS5mb2N1cygpXG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnRzWzBdLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBfaGFuZGxlS2V5ZG93bihldmVudCkge1xuICAgIGlmIChldmVudC5rZXkgIT09IFRBQl9LRVkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2xhc3RUYWJOYXZEaXJlY3Rpb24gPSBldmVudC5zaGlmdEtleSA/IFRBQl9OQVZfQkFDS1dBUkQgOiBUQUJfTkFWX0ZPUldBUkRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGb2N1c1RyYXBcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9zY3JvbGxCYXIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgTWFuaXB1bGF0b3IgZnJvbSAnLi4vZG9tL21hbmlwdWxhdG9yLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4uL2RvbS9zZWxlY3Rvci1lbmdpbmUuanMnXG5pbXBvcnQgeyBpc0VsZW1lbnQgfSBmcm9tICcuL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IFNFTEVDVE9SX0ZJWEVEX0NPTlRFTlQgPSAnLmZpeGVkLXRvcCwgLmZpeGVkLWJvdHRvbSwgLmlzLWZpeGVkLCAuc3RpY2t5LXRvcCdcbmNvbnN0IFNFTEVDVE9SX1NUSUNLWV9DT05URU5UID0gJy5zdGlja3ktdG9wJ1xuY29uc3QgUFJPUEVSVFlfUEFERElORyA9ICdwYWRkaW5nLXJpZ2h0J1xuY29uc3QgUFJPUEVSVFlfTUFSR0lOID0gJ21hcmdpbi1yaWdodCdcblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgU2Nyb2xsQmFySGVscGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmJvZHlcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBnZXRXaWR0aCgpIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2luZG93L2lubmVyV2lkdGgjdXNhZ2Vfbm90ZXNcbiAgICBjb25zdCBkb2N1bWVudFdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoXG4gICAgcmV0dXJuIE1hdGguYWJzKHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnRXaWR0aClcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldFdpZHRoKClcbiAgICB0aGlzLl9kaXNhYmxlT3ZlckZsb3coKVxuICAgIC8vIGdpdmUgcGFkZGluZyB0byBlbGVtZW50IHRvIGJhbGFuY2UgdGhlIGhpZGRlbiBzY3JvbGxiYXIgd2lkdGhcbiAgICB0aGlzLl9zZXRFbGVtZW50QXR0cmlidXRlcyh0aGlzLl9lbGVtZW50LCBQUk9QRVJUWV9QQURESU5HLCBjYWxjdWxhdGVkVmFsdWUgPT4gY2FsY3VsYXRlZFZhbHVlICsgd2lkdGgpXG4gICAgLy8gdHJpY2s6IFdlIGFkanVzdCBwb3NpdGl2ZSBwYWRkaW5nUmlnaHQgYW5kIG5lZ2F0aXZlIG1hcmdpblJpZ2h0IHRvIHN0aWNreS10b3AgZWxlbWVudHMgdG8ga2VlcCBzaG93aW5nIGZ1bGx3aWR0aFxuICAgIHRoaXMuX3NldEVsZW1lbnRBdHRyaWJ1dGVzKFNFTEVDVE9SX0ZJWEVEX0NPTlRFTlQsIFBST1BFUlRZX1BBRERJTkcsIGNhbGN1bGF0ZWRWYWx1ZSA9PiBjYWxjdWxhdGVkVmFsdWUgKyB3aWR0aClcbiAgICB0aGlzLl9zZXRFbGVtZW50QXR0cmlidXRlcyhTRUxFQ1RPUl9TVElDS1lfQ09OVEVOVCwgUFJPUEVSVFlfTUFSR0lOLCBjYWxjdWxhdGVkVmFsdWUgPT4gY2FsY3VsYXRlZFZhbHVlIC0gd2lkdGgpXG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKHRoaXMuX2VsZW1lbnQsICdvdmVyZmxvdycpXG4gICAgdGhpcy5fcmVzZXRFbGVtZW50QXR0cmlidXRlcyh0aGlzLl9lbGVtZW50LCBQUk9QRVJUWV9QQURESU5HKVxuICAgIHRoaXMuX3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXMoU0VMRUNUT1JfRklYRURfQ09OVEVOVCwgUFJPUEVSVFlfUEFERElORylcbiAgICB0aGlzLl9yZXNldEVsZW1lbnRBdHRyaWJ1dGVzKFNFTEVDVE9SX1NUSUNLWV9DT05URU5ULCBQUk9QRVJUWV9NQVJHSU4pXG4gIH1cblxuICBpc092ZXJmbG93aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmdldFdpZHRoKCkgPiAwXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9kaXNhYmxlT3ZlckZsb3coKSB7XG4gICAgdGhpcy5fc2F2ZUluaXRpYWxBdHRyaWJ1dGUodGhpcy5fZWxlbWVudCwgJ292ZXJmbG93JylcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgfVxuXG4gIF9zZXRFbGVtZW50QXR0cmlidXRlcyhzZWxlY3Rvciwgc3R5bGVQcm9wZXJ0eSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuZ2V0V2lkdGgoKVxuICAgIGNvbnN0IG1hbmlwdWxhdGlvbkNhbGxCYWNrID0gZWxlbWVudCA9PiB7XG4gICAgICBpZiAoZWxlbWVudCAhPT0gdGhpcy5fZWxlbWVudCAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+IGVsZW1lbnQuY2xpZW50V2lkdGggKyBzY3JvbGxiYXJXaWR0aCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fc2F2ZUluaXRpYWxBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVQcm9wZXJ0eSlcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRWYWx1ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoc3R5bGVQcm9wZXJ0eSlcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoc3R5bGVQcm9wZXJ0eSwgYCR7Y2FsbGJhY2soTnVtYmVyLnBhcnNlRmxvYXQoY2FsY3VsYXRlZFZhbHVlKSl9cHhgKVxuICAgIH1cblxuICAgIHRoaXMuX2FwcGx5TWFuaXB1bGF0aW9uQ2FsbGJhY2soc2VsZWN0b3IsIG1hbmlwdWxhdGlvbkNhbGxCYWNrKVxuICB9XG5cbiAgX3NhdmVJbml0aWFsQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlUHJvcGVydHkpIHtcbiAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IGVsZW1lbnQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShzdHlsZVByb3BlcnR5KVxuICAgIGlmIChhY3R1YWxWYWx1ZSkge1xuICAgICAgTWFuaXB1bGF0b3Iuc2V0RGF0YUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZVByb3BlcnR5LCBhY3R1YWxWYWx1ZSlcbiAgICB9XG4gIH1cblxuICBfcmVzZXRFbGVtZW50QXR0cmlidXRlcyhzZWxlY3Rvciwgc3R5bGVQcm9wZXJ0eSkge1xuICAgIGNvbnN0IG1hbmlwdWxhdGlvbkNhbGxCYWNrID0gZWxlbWVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IE1hbmlwdWxhdG9yLmdldERhdGFBdHRyaWJ1dGUoZWxlbWVudCwgc3R5bGVQcm9wZXJ0eSlcbiAgICAgIC8vIFdlIG9ubHkgd2FudCB0byByZW1vdmUgdGhlIHByb3BlcnR5IGlmIHRoZSB2YWx1ZSBpcyBgbnVsbGA7IHRoZSB2YWx1ZSBjYW4gYWxzbyBiZSB6ZXJvXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShzdHlsZVByb3BlcnR5KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgTWFuaXB1bGF0b3IucmVtb3ZlRGF0YUF0dHJpYnV0ZShlbGVtZW50LCBzdHlsZVByb3BlcnR5KVxuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShzdHlsZVByb3BlcnR5LCB2YWx1ZSlcbiAgICB9XG5cbiAgICB0aGlzLl9hcHBseU1hbmlwdWxhdGlvbkNhbGxiYWNrKHNlbGVjdG9yLCBtYW5pcHVsYXRpb25DYWxsQmFjaylcbiAgfVxuXG4gIF9hcHBseU1hbmlwdWxhdGlvbkNhbGxiYWNrKHNlbGVjdG9yLCBjYWxsQmFjaykge1xuICAgIGlmIChpc0VsZW1lbnQoc2VsZWN0b3IpKSB7XG4gICAgICBjYWxsQmFjayhzZWxlY3RvcilcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc2VsIG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoc2VsZWN0b3IsIHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICBjYWxsQmFjayhzZWwpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNjcm9sbEJhckhlbHBlclxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBtb2RhbC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgU2VsZWN0b3JFbmdpbmUgZnJvbSAnLi9kb20vc2VsZWN0b3ItZW5naW5lLmpzJ1xuaW1wb3J0IEJhY2tkcm9wIGZyb20gJy4vdXRpbC9iYWNrZHJvcC5qcydcbmltcG9ydCB7IGVuYWJsZURpc21pc3NUcmlnZ2VyIH0gZnJvbSAnLi91dGlsL2NvbXBvbmVudC1mdW5jdGlvbnMuanMnXG5pbXBvcnQgRm9jdXNUcmFwIGZyb20gJy4vdXRpbC9mb2N1c3RyYXAuanMnXG5pbXBvcnQge1xuICBkZWZpbmVKUXVlcnlQbHVnaW4sIGlzUlRMLCBpc1Zpc2libGUsIHJlZmxvd1xufSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5pbXBvcnQgU2Nyb2xsQmFySGVscGVyIGZyb20gJy4vdXRpbC9zY3JvbGxiYXIuanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICdtb2RhbCdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLm1vZGFsJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5jb25zdCBFU0NBUEVfS0VZID0gJ0VzY2FwZSdcblxuY29uc3QgRVZFTlRfSElERSA9IGBoaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElERV9QUkVWRU5URUQgPSBgaGlkZVByZXZlbnRlZCR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0hJRERFTiA9IGBoaWRkZW4ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9TSE9XID0gYHNob3cke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9TSE9XTiA9IGBzaG93biR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1JFU0laRSA9IGByZXNpemUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19ESVNNSVNTID0gYGNsaWNrLmRpc21pc3Mke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9NT1VTRURPV05fRElTTUlTUyA9IGBtb3VzZWRvd24uZGlzbWlzcyR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0tFWURPV05fRElTTUlTUyA9IGBrZXlkb3duLmRpc21pc3Mke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19EQVRBX0FQSSA9IGBjbGljayR7RVZFTlRfS0VZfSR7REFUQV9BUElfS0VZfWBcblxuY29uc3QgQ0xBU1NfTkFNRV9PUEVOID0gJ21vZGFsLW9wZW4nXG5jb25zdCBDTEFTU19OQU1FX0ZBREUgPSAnZmFkZSdcbmNvbnN0IENMQVNTX05BTUVfU0hPVyA9ICdzaG93J1xuY29uc3QgQ0xBU1NfTkFNRV9TVEFUSUMgPSAnbW9kYWwtc3RhdGljJ1xuXG5jb25zdCBPUEVOX1NFTEVDVE9SID0gJy5tb2RhbC5zaG93J1xuY29uc3QgU0VMRUNUT1JfRElBTE9HID0gJy5tb2RhbC1kaWFsb2cnXG5jb25zdCBTRUxFQ1RPUl9NT0RBTF9CT0RZID0gJy5tb2RhbC1ib2R5J1xuY29uc3QgU0VMRUNUT1JfREFUQV9UT0dHTEUgPSAnW2RhdGEtYnMtdG9nZ2xlPVwibW9kYWxcIl0nXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGJhY2tkcm9wOiB0cnVlLFxuICBmb2N1czogdHJ1ZSxcbiAga2V5Ym9hcmQ6IHRydWVcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIGJhY2tkcm9wOiAnKGJvb2xlYW58c3RyaW5nKScsXG4gIGZvY3VzOiAnYm9vbGVhbicsXG4gIGtleWJvYXJkOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgTW9kYWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZWxlbWVudCwgY29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgdGhpcy5fZGlhbG9nID0gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShTRUxFQ1RPUl9ESUFMT0csIHRoaXMuX2VsZW1lbnQpXG4gICAgdGhpcy5fYmFja2Ryb3AgPSB0aGlzLl9pbml0aWFsaXplQmFja0Ryb3AoKVxuICAgIHRoaXMuX2ZvY3VzdHJhcCA9IHRoaXMuX2luaXRpYWxpemVGb2N1c1RyYXAoKVxuICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IGZhbHNlXG4gICAgdGhpcy5fc2Nyb2xsQmFyID0gbmV3IFNjcm9sbEJhckhlbHBlcigpXG5cbiAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZShyZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdyhyZWxhdGVkVGFyZ2V0KVxuICB9XG5cbiAgc2hvdyhyZWxhdGVkVGFyZ2V0KSB7XG4gICAgaWYgKHRoaXMuX2lzU2hvd24gfHwgdGhpcy5faXNUcmFuc2l0aW9uaW5nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBzaG93RXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9TSE9XLCB7XG4gICAgICByZWxhdGVkVGFyZ2V0XG4gICAgfSlcblxuICAgIGlmIChzaG93RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5faXNTaG93biA9IHRydWVcbiAgICB0aGlzLl9pc1RyYW5zaXRpb25pbmcgPSB0cnVlXG5cbiAgICB0aGlzLl9zY3JvbGxCYXIuaGlkZSgpXG5cbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9PUEVOKVxuXG4gICAgdGhpcy5fYWRqdXN0RGlhbG9nKClcblxuICAgIHRoaXMuX2JhY2tkcm9wLnNob3coKCkgPT4gdGhpcy5fc2hvd0VsZW1lbnQocmVsYXRlZFRhcmdldCkpXG4gIH1cblxuICBoaWRlKCkge1xuICAgIGlmICghdGhpcy5faXNTaG93biB8fCB0aGlzLl9pc1RyYW5zaXRpb25pbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREUpXG5cbiAgICBpZiAoaGlkZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuX2lzVHJhbnNpdGlvbmluZyA9IHRydWVcbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjaygoKSA9PiB0aGlzLl9oaWRlTW9kYWwoKSwgdGhpcy5fZWxlbWVudCwgdGhpcy5faXNBbmltYXRlZCgpKVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICBFdmVudEhhbmRsZXIub2ZmKHdpbmRvdywgRVZFTlRfS0VZKVxuICAgIEV2ZW50SGFuZGxlci5vZmYodGhpcy5fZGlhbG9nLCBFVkVOVF9LRVkpXG5cbiAgICB0aGlzLl9iYWNrZHJvcC5kaXNwb3NlKClcbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG5cbiAgICBzdXBlci5kaXNwb3NlKClcbiAgfVxuXG4gIGhhbmRsZVVwZGF0ZSgpIHtcbiAgICB0aGlzLl9hZGp1c3REaWFsb2coKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuICBfaW5pdGlhbGl6ZUJhY2tEcm9wKCkge1xuICAgIHJldHVybiBuZXcgQmFja2Ryb3Aoe1xuICAgICAgaXNWaXNpYmxlOiBCb29sZWFuKHRoaXMuX2NvbmZpZy5iYWNrZHJvcCksIC8vICdzdGF0aWMnIG9wdGlvbiB3aWxsIGJlIHRyYW5zbGF0ZWQgdG8gdHJ1ZSwgYW5kIGJvb2xlYW5zIHdpbGwga2VlcCB0aGVpciB2YWx1ZSxcbiAgICAgIGlzQW5pbWF0ZWQ6IHRoaXMuX2lzQW5pbWF0ZWQoKVxuICAgIH0pXG4gIH1cblxuICBfaW5pdGlhbGl6ZUZvY3VzVHJhcCgpIHtcbiAgICByZXR1cm4gbmV3IEZvY3VzVHJhcCh7XG4gICAgICB0cmFwRWxlbWVudDogdGhpcy5fZWxlbWVudFxuICAgIH0pXG4gIH1cblxuICBfc2hvd0VsZW1lbnQocmVsYXRlZFRhcmdldCkge1xuICAgIC8vIHRyeSB0byBhcHBlbmQgZHluYW1pYyBtb2RhbFxuICAgIGlmICghZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLl9lbGVtZW50KSkge1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQodGhpcy5fZWxlbWVudClcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG4gICAgdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJylcbiAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1tb2RhbCcsIHRydWUpXG4gICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnZGlhbG9nJylcbiAgICB0aGlzLl9lbGVtZW50LnNjcm9sbFRvcCA9IDBcblxuICAgIGNvbnN0IG1vZGFsQm9keSA9IFNlbGVjdG9yRW5naW5lLmZpbmRPbmUoU0VMRUNUT1JfTU9EQUxfQk9EWSwgdGhpcy5fZGlhbG9nKVxuICAgIGlmIChtb2RhbEJvZHkpIHtcbiAgICAgIG1vZGFsQm9keS5zY3JvbGxUb3AgPSAwXG4gICAgfVxuXG4gICAgcmVmbG93KHRoaXMuX2VsZW1lbnQpXG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgY29uc3QgdHJhbnNpdGlvbkNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5mb2N1cykge1xuICAgICAgICB0aGlzLl9mb2N1c3RyYXAuYWN0aXZhdGUoKVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9pc1RyYW5zaXRpb25pbmcgPSBmYWxzZVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPV04sIHtcbiAgICAgICAgcmVsYXRlZFRhcmdldFxuICAgICAgfSlcbiAgICB9XG5cbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKHRyYW5zaXRpb25Db21wbGV0ZSwgdGhpcy5fZGlhbG9nLCB0aGlzLl9pc0FuaW1hdGVkKCkpXG4gIH1cblxuICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0tFWURPV05fRElTTUlTUywgZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRVNDQVBFX0tFWSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5rZXlib2FyZCkge1xuICAgICAgICB0aGlzLmhpZGUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5fdHJpZ2dlckJhY2tkcm9wVHJhbnNpdGlvbigpXG4gICAgfSlcblxuICAgIEV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX1JFU0laRSwgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2lzU2hvd24gJiYgIXRoaXMuX2lzVHJhbnNpdGlvbmluZykge1xuICAgICAgICB0aGlzLl9hZGp1c3REaWFsb2coKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudCwgRVZFTlRfTU9VU0VET1dOX0RJU01JU1MsIGV2ZW50ID0+IHtcbiAgICAgIC8vIGEgYmFkIHRyaWNrIHRvIHNlZ3JlZ2F0ZSBjbGlja3MgdGhhdCBtYXkgc3RhcnQgaW5zaWRlIGRpYWxvZyBidXQgZW5kIG91dHNpZGUsIGFuZCBhdm9pZCBsaXN0ZW4gdG8gc2Nyb2xsYmFyIGNsaWNrc1xuICAgICAgRXZlbnRIYW5kbGVyLm9uZSh0aGlzLl9lbGVtZW50LCBFVkVOVF9DTElDS19ESVNNSVNTLCBldmVudDIgPT4ge1xuICAgICAgICBpZiAodGhpcy5fZWxlbWVudCAhPT0gZXZlbnQudGFyZ2V0IHx8IHRoaXMuX2VsZW1lbnQgIT09IGV2ZW50Mi50YXJnZXQpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XG4gICAgICAgICAgdGhpcy5fdHJpZ2dlckJhY2tkcm9wVHJhbnNpdGlvbigpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLmJhY2tkcm9wKSB7XG4gICAgICAgICAgdGhpcy5oaWRlKClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgX2hpZGVNb2RhbCgpIHtcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCB0cnVlKVxuICAgIHRoaXMuX2VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLW1vZGFsJylcbiAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgncm9sZScpXG4gICAgdGhpcy5faXNUcmFuc2l0aW9uaW5nID0gZmFsc2VcblxuICAgIHRoaXMuX2JhY2tkcm9wLmhpZGUoKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfT1BFTilcbiAgICAgIHRoaXMuX3Jlc2V0QWRqdXN0bWVudHMoKVxuICAgICAgdGhpcy5fc2Nyb2xsQmFyLnJlc2V0KClcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJRERFTilcbiAgICB9KVxuICB9XG5cbiAgX2lzQW5pbWF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRkFERSlcbiAgfVxuXG4gIF90cmlnZ2VyQmFja2Ryb3BUcmFuc2l0aW9uKCkge1xuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREVfUFJFVkVOVEVEKVxuICAgIGlmIChoaWRlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgaXNNb2RhbE92ZXJmbG93aW5nID0gdGhpcy5fZWxlbWVudC5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgY29uc3QgaW5pdGlhbE92ZXJmbG93WSA9IHRoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3dZXG4gICAgLy8gcmV0dXJuIGlmIHRoZSBmb2xsb3dpbmcgYmFja2dyb3VuZCB0cmFuc2l0aW9uIGhhc24ndCB5ZXQgY29tcGxldGVkXG4gICAgaWYgKGluaXRpYWxPdmVyZmxvd1kgPT09ICdoaWRkZW4nIHx8IHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfU1RBVElDKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFpc01vZGFsT3ZlcmZsb3dpbmcpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUub3ZlcmZsb3dZID0gJ2hpZGRlbidcbiAgICB9XG5cbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9TVEFUSUMpXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjaygoKSA9PiB7XG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TVEFUSUMpXG4gICAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS5vdmVyZmxvd1kgPSBpbml0aWFsT3ZlcmZsb3dZXG4gICAgICB9LCB0aGlzLl9kaWFsb2cpXG4gICAgfSwgdGhpcy5fZGlhbG9nKVxuXG4gICAgdGhpcy5fZWxlbWVudC5mb2N1cygpXG4gIH1cblxuICAvKipcbiAgICogVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcbiAgICovXG5cbiAgX2FkanVzdERpYWxvZygpIHtcbiAgICBjb25zdCBpc01vZGFsT3ZlcmZsb3dpbmcgPSB0aGlzLl9lbGVtZW50LnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuX3Njcm9sbEJhci5nZXRXaWR0aCgpXG4gICAgY29uc3QgaXNCb2R5T3ZlcmZsb3dpbmcgPSBzY3JvbGxiYXJXaWR0aCA+IDBcblxuICAgIGlmIChpc0JvZHlPdmVyZmxvd2luZyAmJiAhaXNNb2RhbE92ZXJmbG93aW5nKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IGlzUlRMKCkgPyAncGFkZGluZ0xlZnQnIDogJ3BhZGRpbmdSaWdodCdcbiAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGVbcHJvcGVydHldID0gYCR7c2Nyb2xsYmFyV2lkdGh9cHhgXG4gICAgfVxuXG4gICAgaWYgKCFpc0JvZHlPdmVyZmxvd2luZyAmJiBpc01vZGFsT3ZlcmZsb3dpbmcpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gaXNSVEwoKSA/ICdwYWRkaW5nUmlnaHQnIDogJ3BhZGRpbmdMZWZ0J1xuICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZVtwcm9wZXJ0eV0gPSBgJHtzY3JvbGxiYXJXaWR0aH1weGBcbiAgICB9XG4gIH1cblxuICBfcmVzZXRBZGp1c3RtZW50cygpIHtcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJydcbiAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnBhZGRpbmdSaWdodCA9ICcnXG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcsIHJlbGF0ZWRUYXJnZXQpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBNb2RhbC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10ocmVsYXRlZFRhcmdldClcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5FdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0NMSUNLX0RBVEFfQVBJLCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldCA9IFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodGhpcylcblxuICBpZiAoWydBJywgJ0FSRUEnXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgRXZlbnRIYW5kbGVyLm9uZSh0YXJnZXQsIEVWRU5UX1NIT1csIHNob3dFdmVudCA9PiB7XG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBFdmVudEhhbmRsZXIub25lKHRhcmdldCwgRVZFTlRfSElEREVOLCAoKSA9PiB7XG4gICAgICBpZiAoaXNWaXNpYmxlKHRoaXMpKSB7XG4gICAgICAgIHRoaXMuZm9jdXMoKVxuICAgICAgfVxuICAgIH0pXG4gIH0pXG5cbiAgLy8gYXZvaWQgY29uZmxpY3Qgd2hlbiBjbGlja2luZyBtb2RhbCB0b2dnbGVyIHdoaWxlIGFub3RoZXIgb25lIGlzIG9wZW5cbiAgY29uc3QgYWxyZWFkeU9wZW4gPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKE9QRU5fU0VMRUNUT1IpXG4gIGlmIChhbHJlYWR5T3Blbikge1xuICAgIE1vZGFsLmdldEluc3RhbmNlKGFscmVhZHlPcGVuKS5oaWRlKClcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSBNb2RhbC5nZXRPckNyZWF0ZUluc3RhbmNlKHRhcmdldClcblxuICBkYXRhLnRvZ2dsZSh0aGlzKVxufSlcblxuZW5hYmxlRGlzbWlzc1RyaWdnZXIoTW9kYWwpXG5cbi8qKlxuICogalF1ZXJ5XG4gKi9cblxuZGVmaW5lSlF1ZXJ5UGx1Z2luKE1vZGFsKVxuXG5leHBvcnQgZGVmYXVsdCBNb2RhbFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBvZmZjYW52YXMuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCBCYWNrZHJvcCBmcm9tICcuL3V0aWwvYmFja2Ryb3AuanMnXG5pbXBvcnQgeyBlbmFibGVEaXNtaXNzVHJpZ2dlciB9IGZyb20gJy4vdXRpbC9jb21wb25lbnQtZnVuY3Rpb25zLmpzJ1xuaW1wb3J0IEZvY3VzVHJhcCBmcm9tICcuL3V0aWwvZm9jdXN0cmFwLmpzJ1xuaW1wb3J0IHtcbiAgZGVmaW5lSlF1ZXJ5UGx1Z2luLFxuICBpc0Rpc2FibGVkLFxuICBpc1Zpc2libGVcbn0gZnJvbSAnLi91dGlsL2luZGV4LmpzJ1xuaW1wb3J0IFNjcm9sbEJhckhlbHBlciBmcm9tICcuL3V0aWwvc2Nyb2xsYmFyLmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAnb2ZmY2FudmFzJ1xuY29uc3QgREFUQV9LRVkgPSAnYnMub2ZmY2FudmFzJ1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcbmNvbnN0IERBVEFfQVBJX0tFWSA9ICcuZGF0YS1hcGknXG5jb25zdCBFVkVOVF9MT0FEX0RBVEFfQVBJID0gYGxvYWQke0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFU0NBUEVfS0VZID0gJ0VzY2FwZSdcblxuY29uc3QgQ0xBU1NfTkFNRV9TSE9XID0gJ3Nob3cnXG5jb25zdCBDTEFTU19OQU1FX1NIT1dJTkcgPSAnc2hvd2luZydcbmNvbnN0IENMQVNTX05BTUVfSElESU5HID0gJ2hpZGluZydcbmNvbnN0IENMQVNTX05BTUVfQkFDS0RST1AgPSAnb2ZmY2FudmFzLWJhY2tkcm9wJ1xuY29uc3QgT1BFTl9TRUxFQ1RPUiA9ICcub2ZmY2FudmFzLnNob3cnXG5cbmNvbnN0IEVWRU5UX1NIT1cgPSBgc2hvdyR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX1NIT1dOID0gYHNob3duJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElERSA9IGBoaWRlJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfSElERV9QUkVWRU5URUQgPSBgaGlkZVByZXZlbnRlZCR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0hJRERFTiA9IGBoaWRkZW4ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9SRVNJWkUgPSBgcmVzaXplJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfQ0xJQ0tfREFUQV9BUEkgPSBgY2xpY2ske0VWRU5UX0tFWX0ke0RBVEFfQVBJX0tFWX1gXG5jb25zdCBFVkVOVF9LRVlET1dOX0RJU01JU1MgPSBga2V5ZG93bi5kaXNtaXNzJHtFVkVOVF9LRVl9YFxuXG5jb25zdCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSA9ICdbZGF0YS1icy10b2dnbGU9XCJvZmZjYW52YXNcIl0nXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGJhY2tkcm9wOiB0cnVlLFxuICBrZXlib2FyZDogdHJ1ZSxcbiAgc2Nyb2xsOiBmYWxzZVxufVxuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYmFja2Ryb3A6ICcoYm9vbGVhbnxzdHJpbmcpJyxcbiAga2V5Ym9hcmQ6ICdib29sZWFuJyxcbiAgc2Nyb2xsOiAnYm9vbGVhbidcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgT2ZmY2FudmFzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIGNvbmZpZykge1xuICAgIHN1cGVyKGVsZW1lbnQsIGNvbmZpZylcblxuICAgIHRoaXMuX2lzU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuX2JhY2tkcm9wID0gdGhpcy5faW5pdGlhbGl6ZUJhY2tEcm9wKClcbiAgICB0aGlzLl9mb2N1c3RyYXAgPSB0aGlzLl9pbml0aWFsaXplRm9jdXNUcmFwKClcbiAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHRvZ2dsZShyZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdyhyZWxhdGVkVGFyZ2V0KVxuICB9XG5cbiAgc2hvdyhyZWxhdGVkVGFyZ2V0KSB7XG4gICAgaWYgKHRoaXMuX2lzU2hvd24pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHNob3dFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1csIHsgcmVsYXRlZFRhcmdldCB9KVxuXG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9pc1Nob3duID0gdHJ1ZVxuICAgIHRoaXMuX2JhY2tkcm9wLnNob3coKVxuXG4gICAgaWYgKCF0aGlzLl9jb25maWcuc2Nyb2xsKSB7XG4gICAgICBuZXcgU2Nyb2xsQmFySGVscGVyKCkuaGlkZSgpXG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbW9kYWwnLCB0cnVlKVxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfU0hPV0lORylcblxuICAgIGNvbnN0IGNvbXBsZXRlQ2FsbEJhY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX2NvbmZpZy5zY3JvbGwgfHwgdGhpcy5fY29uZmlnLmJhY2tkcm9wKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzdHJhcC5hY3RpdmF0ZSgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XSU5HKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPV04sIHsgcmVsYXRlZFRhcmdldCB9KVxuICAgIH1cblxuICAgIHRoaXMuX3F1ZXVlQ2FsbGJhY2soY29tcGxldGVDYWxsQmFjaywgdGhpcy5fZWxlbWVudCwgdHJ1ZSlcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKCF0aGlzLl9pc1Nob3duKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBoaWRlRXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURFKVxuXG4gICAgaWYgKGhpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG4gICAgdGhpcy5fZWxlbWVudC5ibHVyKClcbiAgICB0aGlzLl9pc1Nob3duID0gZmFsc2VcbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9ISURJTkcpXG4gICAgdGhpcy5fYmFja2Ryb3AuaGlkZSgpXG5cbiAgICBjb25zdCBjb21wbGV0ZUNhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfU0hPVywgQ0xBU1NfTkFNRV9ISURJTkcpXG4gICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1tb2RhbCcpXG4gICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgncm9sZScpXG5cbiAgICAgIGlmICghdGhpcy5fY29uZmlnLnNjcm9sbCkge1xuICAgICAgICBuZXcgU2Nyb2xsQmFySGVscGVyKCkucmVzZXQoKVxuICAgICAgfVxuXG4gICAgICBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURERU4pXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZUNhbGxiYWNrLCB0aGlzLl9lbGVtZW50LCB0cnVlKVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLl9iYWNrZHJvcC5kaXNwb3NlKClcbiAgICB0aGlzLl9mb2N1c3RyYXAuZGVhY3RpdmF0ZSgpXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9pbml0aWFsaXplQmFja0Ryb3AoKSB7XG4gICAgY29uc3QgY2xpY2tDYWxsYmFjayA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnKSB7XG4gICAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0hJREVfUFJFVkVOVEVEKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5oaWRlKClcbiAgICB9XG5cbiAgICAvLyAnc3RhdGljJyBvcHRpb24gd2lsbCBiZSB0cmFuc2xhdGVkIHRvIHRydWUsIGFuZCBib29sZWFucyB3aWxsIGtlZXAgdGhlaXIgdmFsdWVcbiAgICBjb25zdCBpc1Zpc2libGUgPSBCb29sZWFuKHRoaXMuX2NvbmZpZy5iYWNrZHJvcClcblxuICAgIHJldHVybiBuZXcgQmFja2Ryb3Aoe1xuICAgICAgY2xhc3NOYW1lOiBDTEFTU19OQU1FX0JBQ0tEUk9QLFxuICAgICAgaXNWaXNpYmxlLFxuICAgICAgaXNBbmltYXRlZDogdHJ1ZSxcbiAgICAgIHJvb3RFbGVtZW50OiB0aGlzLl9lbGVtZW50LnBhcmVudE5vZGUsXG4gICAgICBjbGlja0NhbGxiYWNrOiBpc1Zpc2libGUgPyBjbGlja0NhbGxiYWNrIDogbnVsbFxuICAgIH0pXG4gIH1cblxuICBfaW5pdGlhbGl6ZUZvY3VzVHJhcCgpIHtcbiAgICByZXR1cm4gbmV3IEZvY3VzVHJhcCh7XG4gICAgICB0cmFwRWxlbWVudDogdGhpcy5fZWxlbWVudFxuICAgIH0pXG4gIH1cblxuICBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0tFWURPV05fRElTTUlTUywgZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRVNDQVBFX0tFWSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5rZXlib2FyZCkge1xuICAgICAgICB0aGlzLmhpZGUoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfSElERV9QUkVWRU5URUQpXG4gICAgfSlcbiAgfVxuXG4gIC8vIFN0YXRpY1xuICBzdGF0aWMgalF1ZXJ5SW50ZXJmYWNlKGNvbmZpZykge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGF0YSA9IE9mZmNhbnZhcy5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YVtjb25maWddID09PSB1bmRlZmluZWQgfHwgY29uZmlnLnN0YXJ0c1dpdGgoJ18nKSB8fCBjb25maWcgPT09ICdjb25zdHJ1Y3RvcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10odGhpcylcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5FdmVudEhhbmRsZXIub24oZG9jdW1lbnQsIEVWRU5UX0NMSUNLX0RBVEFfQVBJLCBTRUxFQ1RPUl9EQVRBX1RPR0dMRSwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gIGNvbnN0IHRhcmdldCA9IFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IodGhpcylcblxuICBpZiAoWydBJywgJ0FSRUEnXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgaWYgKGlzRGlzYWJsZWQodGhpcykpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIEV2ZW50SGFuZGxlci5vbmUodGFyZ2V0LCBFVkVOVF9ISURERU4sICgpID0+IHtcbiAgICAvLyBmb2N1cyBvbiB0cmlnZ2VyIHdoZW4gaXQgaXMgY2xvc2VkXG4gICAgaWYgKGlzVmlzaWJsZSh0aGlzKSkge1xuICAgICAgdGhpcy5mb2N1cygpXG4gICAgfVxuICB9KVxuXG4gIC8vIGF2b2lkIGNvbmZsaWN0IHdoZW4gY2xpY2tpbmcgYSB0b2dnbGVyIG9mIGFuIG9mZmNhbnZhcywgd2hpbGUgYW5vdGhlciBpcyBvcGVuXG4gIGNvbnN0IGFscmVhZHlPcGVuID0gU2VsZWN0b3JFbmdpbmUuZmluZE9uZShPUEVOX1NFTEVDVE9SKVxuICBpZiAoYWxyZWFkeU9wZW4gJiYgYWxyZWFkeU9wZW4gIT09IHRhcmdldCkge1xuICAgIE9mZmNhbnZhcy5nZXRJbnN0YW5jZShhbHJlYWR5T3BlbikuaGlkZSgpXG4gIH1cblxuICBjb25zdCBkYXRhID0gT2ZmY2FudmFzLmdldE9yQ3JlYXRlSW5zdGFuY2UodGFyZ2V0KVxuICBkYXRhLnRvZ2dsZSh0aGlzKVxufSlcblxuRXZlbnRIYW5kbGVyLm9uKHdpbmRvdywgRVZFTlRfTE9BRF9EQVRBX0FQSSwgKCkgPT4ge1xuICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoT1BFTl9TRUxFQ1RPUikpIHtcbiAgICBPZmZjYW52YXMuZ2V0T3JDcmVhdGVJbnN0YW5jZShzZWxlY3Rvcikuc2hvdygpXG4gIH1cbn0pXG5cbkV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX1JFU0laRSwgKCkgPT4ge1xuICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgU2VsZWN0b3JFbmdpbmUuZmluZCgnW2FyaWEtbW9kYWxdW2NsYXNzKj1zaG93XVtjbGFzcyo9b2ZmY2FudmFzLV0nKSkge1xuICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uICE9PSAnZml4ZWQnKSB7XG4gICAgICBPZmZjYW52YXMuZ2V0T3JDcmVhdGVJbnN0YW5jZShlbGVtZW50KS5oaWRlKClcbiAgICB9XG4gIH1cbn0pXG5cbmVuYWJsZURpc21pc3NUcmlnZ2VyKE9mZmNhbnZhcylcblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oT2ZmY2FudmFzKVxuXG5leHBvcnQgZGVmYXVsdCBPZmZjYW52YXNcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdXRpbC9zYW5pdGl6ZXIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vLyBqcy1kb2NzLXN0YXJ0IGFsbG93LWxpc3RcbmNvbnN0IEFSSUFfQVRUUklCVVRFX1BBVFRFUk4gPSAvXmFyaWEtW1xcdy1dKiQvaVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdEFsbG93bGlzdCA9IHtcbiAgLy8gR2xvYmFsIGF0dHJpYnV0ZXMgYWxsb3dlZCBvbiBhbnkgc3VwcGxpZWQgZWxlbWVudCBiZWxvdy5cbiAgJyonOiBbJ2NsYXNzJywgJ2RpcicsICdpZCcsICdsYW5nJywgJ3JvbGUnLCBBUklBX0FUVFJJQlVURV9QQVRURVJOXSxcbiAgYTogWyd0YXJnZXQnLCAnaHJlZicsICd0aXRsZScsICdyZWwnXSxcbiAgYXJlYTogW10sXG4gIGI6IFtdLFxuICBicjogW10sXG4gIGNvbDogW10sXG4gIGNvZGU6IFtdLFxuICBkZDogW10sXG4gIGRpdjogW10sXG4gIGRsOiBbXSxcbiAgZHQ6IFtdLFxuICBlbTogW10sXG4gIGhyOiBbXSxcbiAgaDE6IFtdLFxuICBoMjogW10sXG4gIGgzOiBbXSxcbiAgaDQ6IFtdLFxuICBoNTogW10sXG4gIGg2OiBbXSxcbiAgaTogW10sXG4gIGltZzogWydzcmMnLCAnc3Jjc2V0JywgJ2FsdCcsICd0aXRsZScsICd3aWR0aCcsICdoZWlnaHQnXSxcbiAgbGk6IFtdLFxuICBvbDogW10sXG4gIHA6IFtdLFxuICBwcmU6IFtdLFxuICBzOiBbXSxcbiAgc21hbGw6IFtdLFxuICBzcGFuOiBbXSxcbiAgc3ViOiBbXSxcbiAgc3VwOiBbXSxcbiAgc3Ryb25nOiBbXSxcbiAgdTogW10sXG4gIHVsOiBbXVxufVxuLy8ganMtZG9jcy1lbmQgYWxsb3ctbGlzdFxuXG5jb25zdCB1cmlBdHRyaWJ1dGVzID0gbmV3IFNldChbXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ2NpdGUnLFxuICAnaHJlZicsXG4gICdpdGVtdHlwZScsXG4gICdsb25nZGVzYycsXG4gICdwb3N0ZXInLFxuICAnc3JjJyxcbiAgJ3hsaW5rOmhyZWYnXG5dKVxuXG4vKipcbiAqIEEgcGF0dGVybiB0aGF0IHJlY29nbml6ZXMgVVJMcyB0aGF0IGFyZSBzYWZlIHdydC4gWFNTIGluIFVSTCBuYXZpZ2F0aW9uXG4gKiBjb250ZXh0cy5cbiAqXG4gKiBTaG91dC1vdXQgdG8gQW5ndWxhciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTUuMi44L3BhY2thZ2VzL2NvcmUvc3JjL3Nhbml0aXphdGlvbi91cmxfc2FuaXRpemVyLnRzI0wzOFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9iZXR0ZXItcmVnZXhcbmNvbnN0IFNBRkVfVVJMX1BBVFRFUk4gPSAvXig/IWphdmFzY3JpcHQ6KSg/OlthLXowLTkrLi1dKzp8W14mOi8/I10qKD86Wy8/I118JCkpL2lcblxuY29uc3QgYWxsb3dlZEF0dHJpYnV0ZSA9IChhdHRyaWJ1dGUsIGFsbG93ZWRBdHRyaWJ1dGVMaXN0KSA9PiB7XG4gIGNvbnN0IGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuXG4gIGlmIChhbGxvd2VkQXR0cmlidXRlTGlzdC5pbmNsdWRlcyhhdHRyaWJ1dGVOYW1lKSkge1xuICAgIGlmICh1cmlBdHRyaWJ1dGVzLmhhcyhhdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oU0FGRV9VUkxfUEFUVEVSTi50ZXN0KGF0dHJpYnV0ZS5ub2RlVmFsdWUpKVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBDaGVjayBpZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB2YWxpZGF0ZXMgdGhlIGF0dHJpYnV0ZS5cbiAgcmV0dXJuIGFsbG93ZWRBdHRyaWJ1dGVMaXN0LmZpbHRlcihhdHRyaWJ1dGVSZWdleCA9PiBhdHRyaWJ1dGVSZWdleCBpbnN0YW5jZW9mIFJlZ0V4cClcbiAgICAuc29tZShyZWdleCA9PiByZWdleC50ZXN0KGF0dHJpYnV0ZU5hbWUpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVIdG1sKHVuc2FmZUh0bWwsIGFsbG93TGlzdCwgc2FuaXRpemVGdW5jdGlvbikge1xuICBpZiAoIXVuc2FmZUh0bWwubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuc2FmZUh0bWxcbiAgfVxuXG4gIGlmIChzYW5pdGl6ZUZ1bmN0aW9uICYmIHR5cGVvZiBzYW5pdGl6ZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHNhbml0aXplRnVuY3Rpb24odW5zYWZlSHRtbClcbiAgfVxuXG4gIGNvbnN0IGRvbVBhcnNlciA9IG5ldyB3aW5kb3cuRE9NUGFyc2VyKClcbiAgY29uc3QgY3JlYXRlZERvY3VtZW50ID0gZG9tUGFyc2VyLnBhcnNlRnJvbVN0cmluZyh1bnNhZmVIdG1sLCAndGV4dC9odG1sJylcbiAgY29uc3QgZWxlbWVudHMgPSBbXS5jb25jYXQoLi4uY3JlYXRlZERvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvckFsbCgnKicpKVxuXG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgIGNvbnN0IGVsZW1lbnROYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG5cbiAgICBpZiAoIU9iamVjdC5rZXlzKGFsbG93TGlzdCkuaW5jbHVkZXMoZWxlbWVudE5hbWUpKSB7XG4gICAgICBlbGVtZW50LnJlbW92ZSgpXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZUxpc3QgPSBbXS5jb25jYXQoLi4uZWxlbWVudC5hdHRyaWJ1dGVzKVxuICAgIGNvbnN0IGFsbG93ZWRBdHRyaWJ1dGVzID0gW10uY29uY2F0KGFsbG93TGlzdFsnKiddIHx8IFtdLCBhbGxvd0xpc3RbZWxlbWVudE5hbWVdIHx8IFtdKVxuXG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlTGlzdCkge1xuICAgICAgaWYgKCFhbGxvd2VkQXR0cmlidXRlKGF0dHJpYnV0ZSwgYWxsb3dlZEF0dHJpYnV0ZXMpKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZS5ub2RlTmFtZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlZERvY3VtZW50LmJvZHkuaW5uZXJIVE1MXG59XG4iLCAiLyoqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogQm9vdHN0cmFwIHV0aWwvdGVtcGxhdGUtZmFjdG9yeS5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBTZWxlY3RvckVuZ2luZSBmcm9tICcuLi9kb20vc2VsZWN0b3ItZW5naW5lLmpzJ1xuaW1wb3J0IENvbmZpZyBmcm9tICcuL2NvbmZpZy5qcydcbmltcG9ydCB7IERlZmF1bHRBbGxvd2xpc3QsIHNhbml0aXplSHRtbCB9IGZyb20gJy4vc2FuaXRpemVyLmpzJ1xuaW1wb3J0IHsgZXhlY3V0ZSwgZ2V0RWxlbWVudCwgaXNFbGVtZW50IH0gZnJvbSAnLi9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ1RlbXBsYXRlRmFjdG9yeSdcblxuY29uc3QgRGVmYXVsdCA9IHtcbiAgYWxsb3dMaXN0OiBEZWZhdWx0QWxsb3dsaXN0LFxuICBjb250ZW50OiB7fSwgLy8geyBzZWxlY3RvciA6IHRleHQgLCAgc2VsZWN0b3IyIDogdGV4dDIgLCB9XG4gIGV4dHJhQ2xhc3M6ICcnLFxuICBodG1sOiBmYWxzZSxcbiAgc2FuaXRpemU6IHRydWUsXG4gIHNhbml0aXplRm46IG51bGwsXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG59XG5cbmNvbnN0IERlZmF1bHRUeXBlID0ge1xuICBhbGxvd0xpc3Q6ICdvYmplY3QnLFxuICBjb250ZW50OiAnb2JqZWN0JyxcbiAgZXh0cmFDbGFzczogJyhzdHJpbmd8ZnVuY3Rpb24pJyxcbiAgaHRtbDogJ2Jvb2xlYW4nLFxuICBzYW5pdGl6ZTogJ2Jvb2xlYW4nLFxuICBzYW5pdGl6ZUZuOiAnKG51bGx8ZnVuY3Rpb24pJyxcbiAgdGVtcGxhdGU6ICdzdHJpbmcnXG59XG5cbmNvbnN0IERlZmF1bHRDb250ZW50VHlwZSA9IHtcbiAgZW50cnk6ICcoc3RyaW5nfGVsZW1lbnR8ZnVuY3Rpb258bnVsbCknLFxuICBzZWxlY3RvcjogJyhzdHJpbmd8ZWxlbWVudCknXG59XG5cbi8qKlxuICogQ2xhc3MgZGVmaW5pdGlvblxuICovXG5cbmNsYXNzIFRlbXBsYXRlRmFjdG9yeSBleHRlbmRzIENvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLl9jb25maWcgPSB0aGlzLl9nZXRDb25maWcoY29uZmlnKVxuICB9XG5cbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRcbiAgfVxuXG4gIHN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRUeXBlXG4gIH1cblxuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIFB1YmxpY1xuICBnZXRDb250ZW50KCkge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMuX2NvbmZpZy5jb250ZW50KVxuICAgICAgLm1hcChjb25maWcgPT4gdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24oY29uZmlnKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgfVxuXG4gIGhhc0NvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29udGVudCgpLmxlbmd0aCA+IDBcbiAgfVxuXG4gIGNoYW5nZUNvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuX2NoZWNrQ29udGVudChjb250ZW50KVxuICAgIHRoaXMuX2NvbmZpZy5jb250ZW50ID0geyAuLi50aGlzLl9jb25maWcuY29udGVudCwgLi4uY29udGVudCB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHRvSHRtbCgpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIHRlbXBsYXRlV3JhcHBlci5pbm5lckhUTUwgPSB0aGlzLl9tYXliZVNhbml0aXplKHRoaXMuX2NvbmZpZy50ZW1wbGF0ZSlcblxuICAgIGZvciAoY29uc3QgW3NlbGVjdG9yLCB0ZXh0XSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9jb25maWcuY29udGVudCkpIHtcbiAgICAgIHRoaXMuX3NldENvbnRlbnQodGVtcGxhdGVXcmFwcGVyLCB0ZXh0LCBzZWxlY3RvcilcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHRlbXBsYXRlV3JhcHBlci5jaGlsZHJlblswXVxuICAgIGNvbnN0IGV4dHJhQ2xhc3MgPSB0aGlzLl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbih0aGlzLl9jb25maWcuZXh0cmFDbGFzcylcblxuICAgIGlmIChleHRyYUNsYXNzKSB7XG4gICAgICB0ZW1wbGF0ZS5jbGFzc0xpc3QuYWRkKC4uLmV4dHJhQ2xhc3Muc3BsaXQoJyAnKSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGVcbiAgfVxuXG4gIC8vIFByaXZhdGVcbiAgX3R5cGVDaGVja0NvbmZpZyhjb25maWcpIHtcbiAgICBzdXBlci5fdHlwZUNoZWNrQ29uZmlnKGNvbmZpZylcbiAgICB0aGlzLl9jaGVja0NvbnRlbnQoY29uZmlnLmNvbnRlbnQpXG4gIH1cblxuICBfY2hlY2tDb250ZW50KGFyZykge1xuICAgIGZvciAoY29uc3QgW3NlbGVjdG9yLCBjb250ZW50XSBvZiBPYmplY3QuZW50cmllcyhhcmcpKSB7XG4gICAgICBzdXBlci5fdHlwZUNoZWNrQ29uZmlnKHsgc2VsZWN0b3IsIGVudHJ5OiBjb250ZW50IH0sIERlZmF1bHRDb250ZW50VHlwZSlcbiAgICB9XG4gIH1cblxuICBfc2V0Q29udGVudCh0ZW1wbGF0ZSwgY29udGVudCwgc2VsZWN0b3IpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZUVsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKHNlbGVjdG9yLCB0ZW1wbGF0ZSlcblxuICAgIGlmICghdGVtcGxhdGVFbGVtZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb250ZW50ID0gdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24oY29udGVudClcblxuICAgIGlmICghY29udGVudCkge1xuICAgICAgdGVtcGxhdGVFbGVtZW50LnJlbW92ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaXNFbGVtZW50KGNvbnRlbnQpKSB7XG4gICAgICB0aGlzLl9wdXRFbGVtZW50SW5UZW1wbGF0ZShnZXRFbGVtZW50KGNvbnRlbnQpLCB0ZW1wbGF0ZUVsZW1lbnQpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLmh0bWwpIHtcbiAgICAgIHRlbXBsYXRlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLl9tYXliZVNhbml0aXplKGNvbnRlbnQpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0ZW1wbGF0ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBjb250ZW50XG4gIH1cblxuICBfbWF5YmVTYW5pdGl6ZShhcmcpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnNhbml0aXplID8gc2FuaXRpemVIdG1sKGFyZywgdGhpcy5fY29uZmlnLmFsbG93TGlzdCwgdGhpcy5fY29uZmlnLnNhbml0aXplRm4pIDogYXJnXG4gIH1cblxuICBfcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24oYXJnKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGUoYXJnLCBbdGhpc10pXG4gIH1cblxuICBfcHV0RWxlbWVudEluVGVtcGxhdGUoZWxlbWVudCwgdGVtcGxhdGVFbGVtZW50KSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5odG1sKSB7XG4gICAgICB0ZW1wbGF0ZUVsZW1lbnQuaW5uZXJIVE1MID0gJydcbiAgICAgIHRlbXBsYXRlRWxlbWVudC5hcHBlbmQoZWxlbWVudClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRlbXBsYXRlRWxlbWVudC50ZXh0Q29udGVudCA9IGVsZW1lbnQudGV4dENvbnRlbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0ZUZhY3RvcnlcbiIsICIvKipcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBCb290c3RyYXAgdG9vbHRpcC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCAqIGFzIFBvcHBlciBmcm9tICdAcG9wcGVyanMvY29yZSdcbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgTWFuaXB1bGF0b3IgZnJvbSAnLi9kb20vbWFuaXB1bGF0b3IuanMnXG5pbXBvcnQge1xuICBkZWZpbmVKUXVlcnlQbHVnaW4sIGV4ZWN1dGUsIGZpbmRTaGFkb3dSb290LCBnZXRFbGVtZW50LCBnZXRVSUQsIGlzUlRMLCBub29wXG59IGZyb20gJy4vdXRpbC9pbmRleC5qcydcbmltcG9ydCB7IERlZmF1bHRBbGxvd2xpc3QgfSBmcm9tICcuL3V0aWwvc2FuaXRpemVyLmpzJ1xuaW1wb3J0IFRlbXBsYXRlRmFjdG9yeSBmcm9tICcuL3V0aWwvdGVtcGxhdGUtZmFjdG9yeS5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ3Rvb2x0aXAnXG5jb25zdCBESVNBTExPV0VEX0FUVFJJQlVURVMgPSBuZXcgU2V0KFsnc2FuaXRpemUnLCAnYWxsb3dMaXN0JywgJ3Nhbml0aXplRm4nXSlcblxuY29uc3QgQ0xBU1NfTkFNRV9GQURFID0gJ2ZhZGUnXG5jb25zdCBDTEFTU19OQU1FX01PREFMID0gJ21vZGFsJ1xuY29uc3QgQ0xBU1NfTkFNRV9TSE9XID0gJ3Nob3cnXG5cbmNvbnN0IFNFTEVDVE9SX1RPT0xUSVBfSU5ORVIgPSAnLnRvb2x0aXAtaW5uZXInXG5jb25zdCBTRUxFQ1RPUl9NT0RBTCA9IGAuJHtDTEFTU19OQU1FX01PREFMfWBcblxuY29uc3QgRVZFTlRfTU9EQUxfSElERSA9ICdoaWRlLmJzLm1vZGFsJ1xuXG5jb25zdCBUUklHR0VSX0hPVkVSID0gJ2hvdmVyJ1xuY29uc3QgVFJJR0dFUl9GT0NVUyA9ICdmb2N1cydcbmNvbnN0IFRSSUdHRVJfQ0xJQ0sgPSAnY2xpY2snXG5jb25zdCBUUklHR0VSX01BTlVBTCA9ICdtYW51YWwnXG5cbmNvbnN0IEVWRU5UX0hJREUgPSAnaGlkZSdcbmNvbnN0IEVWRU5UX0hJRERFTiA9ICdoaWRkZW4nXG5jb25zdCBFVkVOVF9TSE9XID0gJ3Nob3cnXG5jb25zdCBFVkVOVF9TSE9XTiA9ICdzaG93bidcbmNvbnN0IEVWRU5UX0lOU0VSVEVEID0gJ2luc2VydGVkJ1xuY29uc3QgRVZFTlRfQ0xJQ0sgPSAnY2xpY2snXG5jb25zdCBFVkVOVF9GT0NVU0lOID0gJ2ZvY3VzaW4nXG5jb25zdCBFVkVOVF9GT0NVU09VVCA9ICdmb2N1c291dCdcbmNvbnN0IEVWRU5UX01PVVNFRU5URVIgPSAnbW91c2VlbnRlcidcbmNvbnN0IEVWRU5UX01PVVNFTEVBVkUgPSAnbW91c2VsZWF2ZSdcblxuY29uc3QgQXR0YWNobWVudE1hcCA9IHtcbiAgQVVUTzogJ2F1dG8nLFxuICBUT1A6ICd0b3AnLFxuICBSSUdIVDogaXNSVEwoKSA/ICdsZWZ0JyA6ICdyaWdodCcsXG4gIEJPVFRPTTogJ2JvdHRvbScsXG4gIExFRlQ6IGlzUlRMKCkgPyAncmlnaHQnIDogJ2xlZnQnXG59XG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIGFsbG93TGlzdDogRGVmYXVsdEFsbG93bGlzdCxcbiAgYW5pbWF0aW9uOiB0cnVlLFxuICBib3VuZGFyeTogJ2NsaXBwaW5nUGFyZW50cycsXG4gIGNvbnRhaW5lcjogZmFsc2UsXG4gIGN1c3RvbUNsYXNzOiAnJyxcbiAgZGVsYXk6IDAsXG4gIGZhbGxiYWNrUGxhY2VtZW50czogWyd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXSxcbiAgaHRtbDogZmFsc2UsXG4gIG9mZnNldDogWzAsIDZdLFxuICBwbGFjZW1lbnQ6ICd0b3AnLFxuICBwb3BwZXJDb25maWc6IG51bGwsXG4gIHNhbml0aXplOiB0cnVlLFxuICBzYW5pdGl6ZUZuOiBudWxsLFxuICBzZWxlY3RvcjogZmFsc2UsXG4gIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz1cInRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiPicgK1xuICAgICAgICAgICAgJzxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+JyArXG4gICAgICAgICAgICAnPGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj4nICtcbiAgICAgICAgICAgICc8L2Rpdj4nLFxuICB0aXRsZTogJycsXG4gIHRyaWdnZXI6ICdob3ZlciBmb2N1cydcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIGFsbG93TGlzdDogJ29iamVjdCcsXG4gIGFuaW1hdGlvbjogJ2Jvb2xlYW4nLFxuICBib3VuZGFyeTogJyhzdHJpbmd8ZWxlbWVudCknLFxuICBjb250YWluZXI6ICcoc3RyaW5nfGVsZW1lbnR8Ym9vbGVhbiknLFxuICBjdXN0b21DbGFzczogJyhzdHJpbmd8ZnVuY3Rpb24pJyxcbiAgZGVsYXk6ICcobnVtYmVyfG9iamVjdCknLFxuICBmYWxsYmFja1BsYWNlbWVudHM6ICdhcnJheScsXG4gIGh0bWw6ICdib29sZWFuJyxcbiAgb2Zmc2V0OiAnKGFycmF5fHN0cmluZ3xmdW5jdGlvbiknLFxuICBwbGFjZW1lbnQ6ICcoc3RyaW5nfGZ1bmN0aW9uKScsXG4gIHBvcHBlckNvbmZpZzogJyhudWxsfG9iamVjdHxmdW5jdGlvbiknLFxuICBzYW5pdGl6ZTogJ2Jvb2xlYW4nLFxuICBzYW5pdGl6ZUZuOiAnKG51bGx8ZnVuY3Rpb24pJyxcbiAgc2VsZWN0b3I6ICcoc3RyaW5nfGJvb2xlYW4pJyxcbiAgdGVtcGxhdGU6ICdzdHJpbmcnLFxuICB0aXRsZTogJyhzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbiknLFxuICB0cmlnZ2VyOiAnc3RyaW5nJ1xufVxuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBUb29sdGlwIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIGNvbmZpZykge1xuICAgIGlmICh0eXBlb2YgUG9wcGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQm9vdHN0cmFwXFwncyB0b29sdGlwcyByZXF1aXJlIFBvcHBlciAoaHR0cHM6Ly9wb3BwZXIuanMub3JnKScpXG4gICAgfVxuXG4gICAgc3VwZXIoZWxlbWVudCwgY29uZmlnKVxuXG4gICAgLy8gUHJpdmF0ZVxuICAgIHRoaXMuX2lzRW5hYmxlZCA9IHRydWVcbiAgICB0aGlzLl90aW1lb3V0ID0gMFxuICAgIHRoaXMuX2lzSG92ZXJlZCA9IG51bGxcbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyID0ge31cbiAgICB0aGlzLl9wb3BwZXIgPSBudWxsXG4gICAgdGhpcy5fdGVtcGxhdGVGYWN0b3J5ID0gbnVsbFxuICAgIHRoaXMuX25ld0NvbnRlbnQgPSBudWxsXG5cbiAgICAvLyBQcm90ZWN0ZWRcbiAgICB0aGlzLnRpcCA9IG51bGxcblxuICAgIHRoaXMuX3NldExpc3RlbmVycygpXG5cbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5zZWxlY3Rvcikge1xuICAgICAgdGhpcy5fZml4VGl0bGUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIEdldHRlcnNcbiAgc3RhdGljIGdldCBEZWZhdWx0KCkge1xuICAgIHJldHVybiBEZWZhdWx0XG4gIH1cblxuICBzdGF0aWMgZ2V0IERlZmF1bHRUeXBlKCkge1xuICAgIHJldHVybiBEZWZhdWx0VHlwZVxuICB9XG5cbiAgc3RhdGljIGdldCBOQU1FKCkge1xuICAgIHJldHVybiBOQU1FXG4gIH1cblxuICAvLyBQdWJsaWNcbiAgZW5hYmxlKCkge1xuICAgIHRoaXMuX2lzRW5hYmxlZCA9IHRydWVcbiAgfVxuXG4gIGRpc2FibGUoKSB7XG4gICAgdGhpcy5faXNFbmFibGVkID0gZmFsc2VcbiAgfVxuXG4gIHRvZ2dsZUVuYWJsZWQoKSB7XG4gICAgdGhpcy5faXNFbmFibGVkID0gIXRoaXMuX2lzRW5hYmxlZFxuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICghdGhpcy5faXNFbmFibGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyLmNsaWNrID0gIXRoaXMuX2FjdGl2ZVRyaWdnZXIuY2xpY2tcbiAgICBpZiAodGhpcy5faXNTaG93bigpKSB7XG4gICAgICB0aGlzLl9sZWF2ZSgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9lbnRlcigpXG4gIH1cblxuICBkaXNwb3NlKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KVxuXG4gICAgRXZlbnRIYW5kbGVyLm9mZih0aGlzLl9lbGVtZW50LmNsb3Nlc3QoU0VMRUNUT1JfTU9EQUwpLCBFVkVOVF9NT0RBTF9ISURFLCB0aGlzLl9oaWRlTW9kYWxIYW5kbGVyKVxuXG4gICAgaWYgKHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWJzLW9yaWdpbmFsLXRpdGxlJykpIHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsIHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWJzLW9yaWdpbmFsLXRpdGxlJykpXG4gICAgfVxuXG4gICAgdGhpcy5fZGlzcG9zZVBvcHBlcigpXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICBzaG93KCkge1xuICAgIGlmICh0aGlzLl9lbGVtZW50LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgdXNlIHNob3cgb24gdmlzaWJsZSBlbGVtZW50cycpXG4gICAgfVxuXG4gICAgaWYgKCEodGhpcy5faXNXaXRoQ29udGVudCgpICYmIHRoaXMuX2lzRW5hYmxlZCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHNob3dFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKEVWRU5UX1NIT1cpKVxuICAgIGNvbnN0IHNoYWRvd1Jvb3QgPSBmaW5kU2hhZG93Um9vdCh0aGlzLl9lbGVtZW50KVxuICAgIGNvbnN0IGlzSW5UaGVEb20gPSAoc2hhZG93Um9vdCB8fCB0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5jb250YWlucyh0aGlzLl9lbGVtZW50KVxuXG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkIHx8ICFpc0luVGhlRG9tKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBUT0RPOiB2NiByZW1vdmUgdGhpcyBvciBtYWtlIGl0IG9wdGlvbmFsXG4gICAgdGhpcy5fZGlzcG9zZVBvcHBlcigpXG5cbiAgICBjb25zdCB0aXAgPSB0aGlzLl9nZXRUaXBFbGVtZW50KClcblxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgdGlwLmdldEF0dHJpYnV0ZSgnaWQnKSlcblxuICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSB0aGlzLl9jb25maWdcblxuICAgIGlmICghdGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jb250YWlucyh0aGlzLnRpcCkpIHtcbiAgICAgIGNvbnRhaW5lci5hcHBlbmQodGlwKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfSU5TRVJURUQpKVxuICAgIH1cblxuICAgIHRoaXMuX3BvcHBlciA9IHRoaXMuX2NyZWF0ZVBvcHBlcih0aXApXG5cbiAgICB0aXAuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG5cbiAgICAvLyBJZiB0aGlzIGlzIGEgdG91Y2gtZW5hYmxlZCBkZXZpY2Ugd2UgYWRkIGV4dHJhXG4gICAgLy8gZW1wdHkgbW91c2VvdmVyIGxpc3RlbmVycyB0byB0aGUgYm9keSdzIGltbWVkaWF0ZSBjaGlsZHJlbjtcbiAgICAvLyBvbmx5IG5lZWRlZCBiZWNhdXNlIG9mIGJyb2tlbiBldmVudCBkZWxlZ2F0aW9uIG9uIGlPU1xuICAgIC8vIGh0dHBzOi8vd3d3LnF1aXJrc21vZGUub3JnL2Jsb2cvYXJjaGl2ZXMvMjAxNC8wMi9tb3VzZV9ldmVudF9idWIuaHRtbFxuICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKGVsZW1lbnQsICdtb3VzZW92ZXInLCBub29wKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfU0hPV04pKVxuXG4gICAgICBpZiAodGhpcy5faXNIb3ZlcmVkID09PSBmYWxzZSkge1xuICAgICAgICB0aGlzLl9sZWF2ZSgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2lzSG92ZXJlZCA9IGZhbHNlXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgdGhpcy50aXAsIHRoaXMuX2lzQW5pbWF0ZWQoKSlcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgaWYgKCF0aGlzLl9pc1Nob3duKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhpZGVFdmVudCA9IEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKEVWRU5UX0hJREUpKVxuICAgIGlmIChoaWRlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdGlwID0gdGhpcy5fZ2V0VGlwRWxlbWVudCgpXG4gICAgdGlwLmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuXG4gICAgLy8gSWYgdGhpcyBpcyBhIHRvdWNoLWVuYWJsZWQgZGV2aWNlIHdlIHJlbW92ZSB0aGUgZXh0cmFcbiAgICAvLyBlbXB0eSBtb3VzZW92ZXIgbGlzdGVuZXJzIHdlIGFkZGVkIGZvciBpT1Mgc3VwcG9ydFxuICAgIGlmICgnb250b3VjaHN0YXJ0JyBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBbXS5jb25jYXQoLi4uZG9jdW1lbnQuYm9keS5jaGlsZHJlbikpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9mZihlbGVtZW50LCAnbW91c2VvdmVyJywgbm9vcClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyW1RSSUdHRVJfQ0xJQ0tdID0gZmFsc2VcbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyW1RSSUdHRVJfRk9DVVNdID0gZmFsc2VcbiAgICB0aGlzLl9hY3RpdmVUcmlnZ2VyW1RSSUdHRVJfSE9WRVJdID0gZmFsc2VcbiAgICB0aGlzLl9pc0hvdmVyZWQgPSBudWxsIC8vIGl0IGlzIGEgdHJpY2sgdG8gc3VwcG9ydCBtYW51YWwgdHJpZ2dlcmluZ1xuXG4gICAgY29uc3QgY29tcGxldGUgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNXaXRoQWN0aXZlVHJpZ2dlcigpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuX2lzSG92ZXJlZCkge1xuICAgICAgICB0aGlzLl9kaXNwb3NlUG9wcGVyKClcbiAgICAgIH1cblxuICAgICAgdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfSElEREVOKSlcbiAgICB9XG5cbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKGNvbXBsZXRlLCB0aGlzLnRpcCwgdGhpcy5faXNBbmltYXRlZCgpKVxuICB9XG5cbiAgdXBkYXRlKCkge1xuICAgIGlmICh0aGlzLl9wb3BwZXIpIHtcbiAgICAgIHRoaXMuX3BvcHBlci51cGRhdGUoKVxuICAgIH1cbiAgfVxuXG4gIC8vIFByb3RlY3RlZFxuICBfaXNXaXRoQ29udGVudCgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLl9nZXRUaXRsZSgpKVxuICB9XG5cbiAgX2dldFRpcEVsZW1lbnQoKSB7XG4gICAgaWYgKCF0aGlzLnRpcCkge1xuICAgICAgdGhpcy50aXAgPSB0aGlzLl9jcmVhdGVUaXBFbGVtZW50KHRoaXMuX25ld0NvbnRlbnQgfHwgdGhpcy5fZ2V0Q29udGVudEZvclRlbXBsYXRlKCkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudGlwXG4gIH1cblxuICBfY3JlYXRlVGlwRWxlbWVudChjb250ZW50KSB7XG4gICAgY29uc3QgdGlwID0gdGhpcy5fZ2V0VGVtcGxhdGVGYWN0b3J5KGNvbnRlbnQpLnRvSHRtbCgpXG5cbiAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyBjaGVjayBpbiB2NlxuICAgIGlmICghdGlwKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIHRpcC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfRkFERSwgQ0xBU1NfTkFNRV9TSE9XKVxuICAgIC8vIFRPRE86IHY2IHRoZSBmb2xsb3dpbmcgY2FuIGJlIGFjaGlldmVkIHdpdGggQ1NTIG9ubHlcbiAgICB0aXAuY2xhc3NMaXN0LmFkZChgYnMtJHt0aGlzLmNvbnN0cnVjdG9yLk5BTUV9LWF1dG9gKVxuXG4gICAgY29uc3QgdGlwSWQgPSBnZXRVSUQodGhpcy5jb25zdHJ1Y3Rvci5OQU1FKS50b1N0cmluZygpXG5cbiAgICB0aXAuc2V0QXR0cmlidXRlKCdpZCcsIHRpcElkKVxuXG4gICAgaWYgKHRoaXMuX2lzQW5pbWF0ZWQoKSkge1xuICAgICAgdGlwLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9GQURFKVxuICAgIH1cblxuICAgIHJldHVybiB0aXBcbiAgfVxuXG4gIHNldENvbnRlbnQoY29udGVudCkge1xuICAgIHRoaXMuX25ld0NvbnRlbnQgPSBjb250ZW50XG4gICAgaWYgKHRoaXMuX2lzU2hvd24oKSkge1xuICAgICAgdGhpcy5fZGlzcG9zZVBvcHBlcigpXG4gICAgICB0aGlzLnNob3coKVxuICAgIH1cbiAgfVxuXG4gIF9nZXRUZW1wbGF0ZUZhY3RvcnkoY29udGVudCkge1xuICAgIGlmICh0aGlzLl90ZW1wbGF0ZUZhY3RvcnkpIHtcbiAgICAgIHRoaXMuX3RlbXBsYXRlRmFjdG9yeS5jaGFuZ2VDb250ZW50KGNvbnRlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RlbXBsYXRlRmFjdG9yeSA9IG5ldyBUZW1wbGF0ZUZhY3Rvcnkoe1xuICAgICAgICAuLi50aGlzLl9jb25maWcsXG4gICAgICAgIC8vIHRoZSBgY29udGVudGAgdmFyIGhhcyB0byBiZSBhZnRlciBgdGhpcy5fY29uZmlnYFxuICAgICAgICAvLyB0byBvdmVycmlkZSBjb25maWcuY29udGVudCBpbiBjYXNlIG9mIHBvcG92ZXJcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgZXh0cmFDbGFzczogdGhpcy5fcmVzb2x2ZVBvc3NpYmxlRnVuY3Rpb24odGhpcy5fY29uZmlnLmN1c3RvbUNsYXNzKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVGYWN0b3J5XG4gIH1cblxuICBfZ2V0Q29udGVudEZvclRlbXBsYXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBbU0VMRUNUT1JfVE9PTFRJUF9JTk5FUl06IHRoaXMuX2dldFRpdGxlKClcbiAgICB9XG4gIH1cblxuICBfZ2V0VGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKHRoaXMuX2NvbmZpZy50aXRsZSkgfHwgdGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYnMtb3JpZ2luYWwtdGl0bGUnKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuICBfaW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0KGV2ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IuZ2V0T3JDcmVhdGVJbnN0YW5jZShldmVudC5kZWxlZ2F0ZVRhcmdldCwgdGhpcy5fZ2V0RGVsZWdhdGVDb25maWcoKSlcbiAgfVxuXG4gIF9pc0FuaW1hdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuYW5pbWF0aW9uIHx8ICh0aGlzLnRpcCAmJiB0aGlzLnRpcC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9GQURFKSlcbiAgfVxuXG4gIF9pc1Nob3duKCkge1xuICAgIHJldHVybiB0aGlzLnRpcCAmJiB0aGlzLnRpcC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TSE9XKVxuICB9XG5cbiAgX2NyZWF0ZVBvcHBlcih0aXApIHtcbiAgICBjb25zdCBwbGFjZW1lbnQgPSBleGVjdXRlKHRoaXMuX2NvbmZpZy5wbGFjZW1lbnQsIFt0aGlzLCB0aXAsIHRoaXMuX2VsZW1lbnRdKVxuICAgIGNvbnN0IGF0dGFjaG1lbnQgPSBBdHRhY2htZW50TWFwW3BsYWNlbWVudC50b1VwcGVyQ2FzZSgpXVxuICAgIHJldHVybiBQb3BwZXIuY3JlYXRlUG9wcGVyKHRoaXMuX2VsZW1lbnQsIHRpcCwgdGhpcy5fZ2V0UG9wcGVyQ29uZmlnKGF0dGFjaG1lbnQpKVxuICB9XG5cbiAgX2dldE9mZnNldCgpIHtcbiAgICBjb25zdCB7IG9mZnNldCB9ID0gdGhpcy5fY29uZmlnXG5cbiAgICBpZiAodHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBvZmZzZXQuc3BsaXQoJywnKS5tYXAodmFsdWUgPT4gTnVtYmVyLnBhcnNlSW50KHZhbHVlLCAxMCkpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvZmZzZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBwb3BwZXJEYXRhID0+IG9mZnNldChwb3BwZXJEYXRhLCB0aGlzLl9lbGVtZW50KVxuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXRcbiAgfVxuXG4gIF9yZXNvbHZlUG9zc2libGVGdW5jdGlvbihhcmcpIHtcbiAgICByZXR1cm4gZXhlY3V0ZShhcmcsIFt0aGlzLl9lbGVtZW50XSlcbiAgfVxuXG4gIF9nZXRQb3BwZXJDb25maWcoYXR0YWNobWVudCkge1xuICAgIGNvbnN0IGRlZmF1bHRCc1BvcHBlckNvbmZpZyA9IHtcbiAgICAgIHBsYWNlbWVudDogYXR0YWNobWVudCxcbiAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2ZsaXAnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGZhbGxiYWNrUGxhY2VtZW50czogdGhpcy5fY29uZmlnLmZhbGxiYWNrUGxhY2VtZW50c1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdvZmZzZXQnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIG9mZnNldDogdGhpcy5fZ2V0T2Zmc2V0KClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJldmVudE92ZXJmbG93JyxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBib3VuZGFyeTogdGhpcy5fY29uZmlnLmJvdW5kYXJ5XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2Fycm93JyxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBlbGVtZW50OiBgLiR7dGhpcy5jb25zdHJ1Y3Rvci5OQU1FfS1hcnJvd2BcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAncHJlU2V0UGxhY2VtZW50JyxcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHBoYXNlOiAnYmVmb3JlTWFpbicsXG4gICAgICAgICAgZm46IGRhdGEgPT4ge1xuICAgICAgICAgICAgLy8gUHJlLXNldCBQb3BwZXIncyBwbGFjZW1lbnQgYXR0cmlidXRlIGluIG9yZGVyIHRvIHJlYWQgdGhlIGFycm93IHNpemVzIHByb3Blcmx5LlxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBQb3BwZXIgbWl4ZXMgdXAgdGhlIHdpZHRoIGFuZCBoZWlnaHQgZGltZW5zaW9ucyBzaW5jZSB0aGUgaW5pdGlhbCBhcnJvdyBzdHlsZSBpcyBmb3IgdG9wIHBsYWNlbWVudFxuICAgICAgICAgICAgdGhpcy5fZ2V0VGlwRWxlbWVudCgpLnNldEF0dHJpYnV0ZSgnZGF0YS1wb3BwZXItcGxhY2VtZW50JywgZGF0YS5zdGF0ZS5wbGFjZW1lbnQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRCc1BvcHBlckNvbmZpZyxcbiAgICAgIC4uLmV4ZWN1dGUodGhpcy5fY29uZmlnLnBvcHBlckNvbmZpZywgW2RlZmF1bHRCc1BvcHBlckNvbmZpZ10pXG4gICAgfVxuICB9XG5cbiAgX3NldExpc3RlbmVycygpIHtcbiAgICBjb25zdCB0cmlnZ2VycyA9IHRoaXMuX2NvbmZpZy50cmlnZ2VyLnNwbGl0KCcgJylcblxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycykge1xuICAgICAgaWYgKHRyaWdnZXIgPT09ICdjbGljaycpIHtcbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIHRoaXMuY29uc3RydWN0b3IuZXZlbnROYW1lKEVWRU5UX0NMSUNLKSwgdGhpcy5fY29uZmlnLnNlbGVjdG9yLCBldmVudCA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2luaXRpYWxpemVPbkRlbGVnYXRlZFRhcmdldChldmVudClcbiAgICAgICAgICBjb250ZXh0LnRvZ2dsZSgpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHRyaWdnZXIgIT09IFRSSUdHRVJfTUFOVUFMKSB7XG4gICAgICAgIGNvbnN0IGV2ZW50SW4gPSB0cmlnZ2VyID09PSBUUklHR0VSX0hPVkVSID9cbiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShFVkVOVF9NT1VTRUVOVEVSKSA6XG4gICAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfRk9DVVNJTilcbiAgICAgICAgY29uc3QgZXZlbnRPdXQgPSB0cmlnZ2VyID09PSBUUklHR0VSX0hPVkVSID9cbiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLmV2ZW50TmFtZShFVkVOVF9NT1VTRUxFQVZFKSA6XG4gICAgICAgICAgdGhpcy5jb25zdHJ1Y3Rvci5ldmVudE5hbWUoRVZFTlRfRk9DVVNPVVQpXG5cbiAgICAgICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIGV2ZW50SW4sIHRoaXMuX2NvbmZpZy5zZWxlY3RvciwgZXZlbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQoZXZlbnQpXG4gICAgICAgICAgY29udGV4dC5fYWN0aXZlVHJpZ2dlcltldmVudC50eXBlID09PSAnZm9jdXNpbicgPyBUUklHR0VSX0ZPQ1VTIDogVFJJR0dFUl9IT1ZFUl0gPSB0cnVlXG4gICAgICAgICAgY29udGV4dC5fZW50ZXIoKVxuICAgICAgICB9KVxuICAgICAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudCwgZXZlbnRPdXQsIHRoaXMuX2NvbmZpZy5zZWxlY3RvciwgZXZlbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9pbml0aWFsaXplT25EZWxlZ2F0ZWRUYXJnZXQoZXZlbnQpXG4gICAgICAgICAgY29udGV4dC5fYWN0aXZlVHJpZ2dlcltldmVudC50eXBlID09PSAnZm9jdXNvdXQnID8gVFJJR0dFUl9GT0NVUyA6IFRSSUdHRVJfSE9WRVJdID1cbiAgICAgICAgICAgIGNvbnRleHQuX2VsZW1lbnQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldClcblxuICAgICAgICAgIGNvbnRleHQuX2xlYXZlKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9oaWRlTW9kYWxIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2VsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5oaWRlKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBFdmVudEhhbmRsZXIub24odGhpcy5fZWxlbWVudC5jbG9zZXN0KFNFTEVDVE9SX01PREFMKSwgRVZFTlRfTU9EQUxfSElERSwgdGhpcy5faGlkZU1vZGFsSGFuZGxlcilcbiAgfVxuXG4gIF9maXhUaXRsZSgpIHtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCd0aXRsZScpXG5cbiAgICBpZiAoIXRpdGxlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2VsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJykgJiYgIXRoaXMuX2VsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRpdGxlKVxuICAgIH1cblxuICAgIHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWJzLW9yaWdpbmFsLXRpdGxlJywgdGl0bGUpIC8vIERPIE5PVCBVU0UgSVQuIElzIG9ubHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgdGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3RpdGxlJylcbiAgfVxuXG4gIF9lbnRlcigpIHtcbiAgICBpZiAodGhpcy5faXNTaG93bigpIHx8IHRoaXMuX2lzSG92ZXJlZCkge1xuICAgICAgdGhpcy5faXNIb3ZlcmVkID0gdHJ1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5faXNIb3ZlcmVkID0gdHJ1ZVxuXG4gICAgdGhpcy5fc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNIb3ZlcmVkKSB7XG4gICAgICAgIHRoaXMuc2hvdygpXG4gICAgICB9XG4gICAgfSwgdGhpcy5fY29uZmlnLmRlbGF5LnNob3cpXG4gIH1cblxuICBfbGVhdmUoKSB7XG4gICAgaWYgKHRoaXMuX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5faXNIb3ZlcmVkID0gZmFsc2VcblxuICAgIHRoaXMuX3NldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9pc0hvdmVyZWQpIHtcbiAgICAgICAgdGhpcy5oaWRlKClcbiAgICAgIH1cbiAgICB9LCB0aGlzLl9jb25maWcuZGVsYXkuaGlkZSlcbiAgfVxuXG4gIF9zZXRUaW1lb3V0KGhhbmRsZXIsIHRpbWVvdXQpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dClcbiAgICB0aGlzLl90aW1lb3V0ID0gc2V0VGltZW91dChoYW5kbGVyLCB0aW1lb3V0KVxuICB9XG5cbiAgX2lzV2l0aEFjdGl2ZVRyaWdnZXIoKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fYWN0aXZlVHJpZ2dlcikuaW5jbHVkZXModHJ1ZSlcbiAgfVxuXG4gIF9nZXRDb25maWcoY29uZmlnKSB7XG4gICAgY29uc3QgZGF0YUF0dHJpYnV0ZXMgPSBNYW5pcHVsYXRvci5nZXREYXRhQXR0cmlidXRlcyh0aGlzLl9lbGVtZW50KVxuXG4gICAgZm9yIChjb25zdCBkYXRhQXR0cmlidXRlIG9mIE9iamVjdC5rZXlzKGRhdGFBdHRyaWJ1dGVzKSkge1xuICAgICAgaWYgKERJU0FMTE9XRURfQVRUUklCVVRFUy5oYXMoZGF0YUF0dHJpYnV0ZSkpIHtcbiAgICAgICAgZGVsZXRlIGRhdGFBdHRyaWJ1dGVzW2RhdGFBdHRyaWJ1dGVdXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uZmlnID0ge1xuICAgICAgLi4uZGF0YUF0dHJpYnV0ZXMsXG4gICAgICAuLi4odHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgY29uZmlnID8gY29uZmlnIDoge30pXG4gICAgfVxuICAgIGNvbmZpZyA9IHRoaXMuX21lcmdlQ29uZmlnT2JqKGNvbmZpZylcbiAgICBjb25maWcgPSB0aGlzLl9jb25maWdBZnRlck1lcmdlKGNvbmZpZylcbiAgICB0aGlzLl90eXBlQ2hlY2tDb25maWcoY29uZmlnKVxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIGNvbmZpZy5jb250YWluZXIgPSBjb25maWcuY29udGFpbmVyID09PSBmYWxzZSA/IGRvY3VtZW50LmJvZHkgOiBnZXRFbGVtZW50KGNvbmZpZy5jb250YWluZXIpXG5cbiAgICBpZiAodHlwZW9mIGNvbmZpZy5kZWxheSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbmZpZy5kZWxheSA9IHtcbiAgICAgICAgc2hvdzogY29uZmlnLmRlbGF5LFxuICAgICAgICBoaWRlOiBjb25maWcuZGVsYXlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbmZpZy50aXRsZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbmZpZy50aXRsZSA9IGNvbmZpZy50aXRsZS50b1N0cmluZygpXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBjb25maWcuY29udGVudCA9PT0gJ251bWJlcicpIHtcbiAgICAgIGNvbmZpZy5jb250ZW50ID0gY29uZmlnLmNvbnRlbnQudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9nZXREZWxlZ2F0ZUNvbmZpZygpIHtcbiAgICBjb25zdCBjb25maWcgPSB7fVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnKSkge1xuICAgICAgaWYgKHRoaXMuY29uc3RydWN0b3IuRGVmYXVsdFtrZXldICE9PSB2YWx1ZSkge1xuICAgICAgICBjb25maWdba2V5XSA9IHZhbHVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uZmlnLnNlbGVjdG9yID0gZmFsc2VcbiAgICBjb25maWcudHJpZ2dlciA9ICdtYW51YWwnXG5cbiAgICAvLyBJbiB0aGUgZnV0dXJlIGNhbiBiZSByZXBsYWNlZCB3aXRoOlxuICAgIC8vIGNvbnN0IGtleXNXaXRoRGlmZmVyZW50VmFsdWVzID0gT2JqZWN0LmVudHJpZXModGhpcy5fY29uZmlnKS5maWx0ZXIoZW50cnkgPT4gdGhpcy5jb25zdHJ1Y3Rvci5EZWZhdWx0W2VudHJ5WzBdXSAhPT0gdGhpcy5fY29uZmlnW2VudHJ5WzBdXSlcbiAgICAvLyBgT2JqZWN0LmZyb21FbnRyaWVzKGtleXNXaXRoRGlmZmVyZW50VmFsdWVzKWBcbiAgICByZXR1cm4gY29uZmlnXG4gIH1cblxuICBfZGlzcG9zZVBvcHBlcigpIHtcbiAgICBpZiAodGhpcy5fcG9wcGVyKSB7XG4gICAgICB0aGlzLl9wb3BwZXIuZGVzdHJveSgpXG4gICAgICB0aGlzLl9wb3BwZXIgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGlwKSB7XG4gICAgICB0aGlzLnRpcC5yZW1vdmUoKVxuICAgICAgdGhpcy50aXAgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gVG9vbHRpcC5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10oKVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oVG9vbHRpcClcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcFxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBwb3BvdmVyLmpzXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21haW4vTElDRU5TRSlcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKi9cblxuaW1wb3J0IFRvb2x0aXAgZnJvbSAnLi90b29sdGlwLmpzJ1xuaW1wb3J0IHsgZGVmaW5lSlF1ZXJ5UGx1Z2luIH0gZnJvbSAnLi91dGlsL2luZGV4LmpzJ1xuXG4vKipcbiAqIENvbnN0YW50c1xuICovXG5cbmNvbnN0IE5BTUUgPSAncG9wb3ZlcidcblxuY29uc3QgU0VMRUNUT1JfVElUTEUgPSAnLnBvcG92ZXItaGVhZGVyJ1xuY29uc3QgU0VMRUNUT1JfQ09OVEVOVCA9ICcucG9wb3Zlci1ib2R5J1xuXG5jb25zdCBEZWZhdWx0ID0ge1xuICAuLi5Ub29sdGlwLkRlZmF1bHQsXG4gIGNvbnRlbnQ6ICcnLFxuICBvZmZzZXQ6IFswLCA4XSxcbiAgcGxhY2VtZW50OiAncmlnaHQnLFxuICB0ZW1wbGF0ZTogJzxkaXYgY2xhc3M9XCJwb3BvdmVyXCIgcm9sZT1cInRvb2x0aXBcIj4nICtcbiAgICAnPGRpdiBjbGFzcz1cInBvcG92ZXItYXJyb3dcIj48L2Rpdj4nICtcbiAgICAnPGgzIGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48L2gzPicgK1xuICAgICc8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+PC9kaXY+JyArXG4gICAgJzwvZGl2PicsXG4gIHRyaWdnZXI6ICdjbGljaydcbn1cblxuY29uc3QgRGVmYXVsdFR5cGUgPSB7XG4gIC4uLlRvb2x0aXAuRGVmYXVsdFR5cGUsXG4gIGNvbnRlbnQ6ICcobnVsbHxzdHJpbmd8ZWxlbWVudHxmdW5jdGlvbiknXG59XG5cbi8qKlxuICogQ2xhc3MgZGVmaW5pdGlvblxuICovXG5cbmNsYXNzIFBvcG92ZXIgZXh0ZW5kcyBUb29sdGlwIHtcbiAgLy8gR2V0dGVyc1xuICBzdGF0aWMgZ2V0IERlZmF1bHQoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRcbiAgfVxuXG4gIHN0YXRpYyBnZXQgRGVmYXVsdFR5cGUoKSB7XG4gICAgcmV0dXJuIERlZmF1bHRUeXBlXG4gIH1cblxuICBzdGF0aWMgZ2V0IE5BTUUoKSB7XG4gICAgcmV0dXJuIE5BTUVcbiAgfVxuXG4gIC8vIE92ZXJyaWRlc1xuICBfaXNXaXRoQ29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VGl0bGUoKSB8fCB0aGlzLl9nZXRDb250ZW50KClcbiAgfVxuXG4gIC8vIFByaXZhdGVcbiAgX2dldENvbnRlbnRGb3JUZW1wbGF0ZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW1NFTEVDVE9SX1RJVExFXTogdGhpcy5fZ2V0VGl0bGUoKSxcbiAgICAgIFtTRUxFQ1RPUl9DT05URU5UXTogdGhpcy5fZ2V0Q29udGVudCgpXG4gICAgfVxuICB9XG5cbiAgX2dldENvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc29sdmVQb3NzaWJsZUZ1bmN0aW9uKHRoaXMuX2NvbmZpZy5jb250ZW50KVxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gUG9wb3Zlci5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMsIGNvbmZpZylcblxuICAgICAgaWYgKHR5cGVvZiBjb25maWcgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgTm8gbWV0aG9kIG5hbWVkIFwiJHtjb25maWd9XCJgKVxuICAgICAgfVxuXG4gICAgICBkYXRhW2NvbmZpZ10oKVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oUG9wb3ZlcilcblxuZXhwb3J0IGRlZmF1bHQgUG9wb3ZlclxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCBzY3JvbGxzcHkuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7XG4gIGRlZmluZUpRdWVyeVBsdWdpbiwgZ2V0RWxlbWVudCwgaXNEaXNhYmxlZCwgaXNWaXNpYmxlXG59IGZyb20gJy4vdXRpbC9pbmRleC5qcydcblxuLyoqXG4gKiBDb25zdGFudHNcbiAqL1xuXG5jb25zdCBOQU1FID0gJ3Njcm9sbHNweSdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLnNjcm9sbHNweSdcbmNvbnN0IEVWRU5UX0tFWSA9IGAuJHtEQVRBX0tFWX1gXG5jb25zdCBEQVRBX0FQSV9LRVkgPSAnLmRhdGEtYXBpJ1xuXG5jb25zdCBFVkVOVF9BQ1RJVkFURSA9IGBhY3RpdmF0ZSR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0NMSUNLID0gYGNsaWNrJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfTE9BRF9EQVRBX0FQSSA9IGBsb2FkJHtFVkVOVF9LRVl9JHtEQVRBX0FQSV9LRVl9YFxuXG5jb25zdCBDTEFTU19OQU1FX0RST1BET1dOX0lURU0gPSAnZHJvcGRvd24taXRlbSdcbmNvbnN0IENMQVNTX05BTUVfQUNUSVZFID0gJ2FjdGl2ZSdcblxuY29uc3QgU0VMRUNUT1JfREFUQV9TUFkgPSAnW2RhdGEtYnMtc3B5PVwic2Nyb2xsXCJdJ1xuY29uc3QgU0VMRUNUT1JfVEFSR0VUX0xJTktTID0gJ1tocmVmXSdcbmNvbnN0IFNFTEVDVE9SX05BVl9MSVNUX0dST1VQID0gJy5uYXYsIC5saXN0LWdyb3VwJ1xuY29uc3QgU0VMRUNUT1JfTkFWX0xJTktTID0gJy5uYXYtbGluaydcbmNvbnN0IFNFTEVDVE9SX05BVl9JVEVNUyA9ICcubmF2LWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9MSVNUX0lURU1TID0gJy5saXN0LWdyb3VwLWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9MSU5LX0lURU1TID0gYCR7U0VMRUNUT1JfTkFWX0xJTktTfSwgJHtTRUxFQ1RPUl9OQVZfSVRFTVN9ID4gJHtTRUxFQ1RPUl9OQVZfTElOS1N9LCAke1NFTEVDVE9SX0xJU1RfSVRFTVN9YFxuY29uc3QgU0VMRUNUT1JfRFJPUERPV04gPSAnLmRyb3Bkb3duJ1xuY29uc3QgU0VMRUNUT1JfRFJPUERPV05fVE9HR0xFID0gJy5kcm9wZG93bi10b2dnbGUnXG5cbmNvbnN0IERlZmF1bHQgPSB7XG4gIG9mZnNldDogbnVsbCwgLy8gVE9ETzogdjYgQGRlcHJlY2F0ZWQsIGtlZXAgaXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnNcbiAgcm9vdE1hcmdpbjogJzBweCAwcHggLTI1JScsXG4gIHNtb290aFNjcm9sbDogZmFsc2UsXG4gIHRhcmdldDogbnVsbCxcbiAgdGhyZXNob2xkOiBbMC4xLCAwLjUsIDFdXG59XG5cbmNvbnN0IERlZmF1bHRUeXBlID0ge1xuICBvZmZzZXQ6ICcobnVtYmVyfG51bGwpJywgLy8gVE9ETyB2NiBAZGVwcmVjYXRlZCwga2VlcCBpdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29uc1xuICByb290TWFyZ2luOiAnc3RyaW5nJyxcbiAgc21vb3RoU2Nyb2xsOiAnYm9vbGVhbicsXG4gIHRhcmdldDogJ2VsZW1lbnQnLFxuICB0aHJlc2hvbGQ6ICdhcnJheSdcbn1cblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgU2Nyb2xsU3B5IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQsIGNvbmZpZykge1xuICAgIHN1cGVyKGVsZW1lbnQsIGNvbmZpZylcblxuICAgIC8vIHRoaXMuX2VsZW1lbnQgaXMgdGhlIG9ic2VydmFibGVzQ29udGFpbmVyIGFuZCBjb25maWcudGFyZ2V0IHRoZSBtZW51IGxpbmtzIHdyYXBwZXJcbiAgICB0aGlzLl90YXJnZXRMaW5rcyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuX29ic2VydmFibGVTZWN0aW9ucyA9IG5ldyBNYXAoKVxuICAgIHRoaXMuX3Jvb3RFbGVtZW50ID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9lbGVtZW50KS5vdmVyZmxvd1kgPT09ICd2aXNpYmxlJyA/IG51bGwgOiB0aGlzLl9lbGVtZW50XG4gICAgdGhpcy5fYWN0aXZlVGFyZ2V0ID0gbnVsbFxuICAgIHRoaXMuX29ic2VydmVyID0gbnVsbFxuICAgIHRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YSA9IHtcbiAgICAgIHZpc2libGVFbnRyeVRvcDogMCxcbiAgICAgIHBhcmVudFNjcm9sbFRvcDogMFxuICAgIH1cbiAgICB0aGlzLnJlZnJlc2goKSAvLyBpbml0aWFsaXplXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5faW5pdGlhbGl6ZVRhcmdldHNBbmRPYnNlcnZhYmxlcygpXG4gICAgdGhpcy5fbWF5YmVFbmFibGVTbW9vdGhTY3JvbGwoKVxuXG4gICAgaWYgKHRoaXMuX29ic2VydmVyKSB7XG4gICAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIgPSB0aGlzLl9nZXROZXdPYnNlcnZlcigpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHRoaXMuX29ic2VydmFibGVTZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZShzZWN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIGRpc3Bvc2UoKSB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gICAgc3VwZXIuZGlzcG9zZSgpXG4gIH1cblxuICAvLyBQcml2YXRlXG4gIF9jb25maWdBZnRlck1lcmdlKGNvbmZpZykge1xuICAgIC8vIFRPRE86IG9uIHY2IHRhcmdldCBzaG91bGQgYmUgZ2l2ZW4gZXhwbGljaXRseSAmIHJlbW92ZSB0aGUge3RhcmdldDogJ3NzLXRhcmdldCd9IGNhc2VcbiAgICBjb25maWcudGFyZ2V0ID0gZ2V0RWxlbWVudChjb25maWcudGFyZ2V0KSB8fCBkb2N1bWVudC5ib2R5XG5cbiAgICAvLyBUT0RPOiB2NiBPbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLiBVc2Ugcm9vdE1hcmdpbiBvbmx5XG4gICAgY29uZmlnLnJvb3RNYXJnaW4gPSBjb25maWcub2Zmc2V0ID8gYCR7Y29uZmlnLm9mZnNldH1weCAwcHggLTMwJWAgOiBjb25maWcucm9vdE1hcmdpblxuXG4gICAgaWYgKHR5cGVvZiBjb25maWcudGhyZXNob2xkID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZmlnLnRocmVzaG9sZCA9IGNvbmZpZy50aHJlc2hvbGQuc3BsaXQoJywnKS5tYXAodmFsdWUgPT4gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpKVxuICAgIH1cblxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIF9tYXliZUVuYWJsZVNtb290aFNjcm9sbCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5zbW9vdGhTY3JvbGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHVucmVnaXN0ZXIgYW55IHByZXZpb3VzIGxpc3RlbmVyc1xuICAgIEV2ZW50SGFuZGxlci5vZmYodGhpcy5fY29uZmlnLnRhcmdldCwgRVZFTlRfQ0xJQ0spXG5cbiAgICBFdmVudEhhbmRsZXIub24odGhpcy5fY29uZmlnLnRhcmdldCwgRVZFTlRfQ0xJQ0ssIFNFTEVDVE9SX1RBUkdFVF9MSU5LUywgZXZlbnQgPT4ge1xuICAgICAgY29uc3Qgb2JzZXJ2YWJsZVNlY3Rpb24gPSB0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMuZ2V0KGV2ZW50LnRhcmdldC5oYXNoKVxuICAgICAgaWYgKG9ic2VydmFibGVTZWN0aW9uKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX3Jvb3RFbGVtZW50IHx8IHdpbmRvd1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBvYnNlcnZhYmxlU2VjdGlvbi5vZmZzZXRUb3AgLSB0aGlzLl9lbGVtZW50Lm9mZnNldFRvcFxuICAgICAgICBpZiAocm9vdC5zY3JvbGxUbykge1xuICAgICAgICAgIHJvb3Quc2Nyb2xsVG8oeyB0b3A6IGhlaWdodCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaHJvbWUgNjAgZG9lc24ndCBzdXBwb3J0IGBzY3JvbGxUb2BcbiAgICAgICAgcm9vdC5zY3JvbGxUb3AgPSBoZWlnaHRcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgX2dldE5ld09ic2VydmVyKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICByb290OiB0aGlzLl9yb290RWxlbWVudCxcbiAgICAgIHRocmVzaG9sZDogdGhpcy5fY29uZmlnLnRocmVzaG9sZCxcbiAgICAgIHJvb3RNYXJnaW46IHRoaXMuX2NvbmZpZy5yb290TWFyZ2luXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlbnRyaWVzID0+IHRoaXMuX29ic2VydmVyQ2FsbGJhY2soZW50cmllcyksIG9wdGlvbnMpXG4gIH1cblxuICAvLyBUaGUgbG9naWMgb2Ygc2VsZWN0aW9uXG4gIF9vYnNlcnZlckNhbGxiYWNrKGVudHJpZXMpIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZW50cnkgPT4gdGhpcy5fdGFyZ2V0TGlua3MuZ2V0KGAjJHtlbnRyeS50YXJnZXQuaWR9YClcbiAgICBjb25zdCBhY3RpdmF0ZSA9IGVudHJ5ID0+IHtcbiAgICAgIHRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YS52aXNpYmxlRW50cnlUb3AgPSBlbnRyeS50YXJnZXQub2Zmc2V0VG9wXG4gICAgICB0aGlzLl9wcm9jZXNzKHRhcmdldEVsZW1lbnQoZW50cnkpKVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudFNjcm9sbFRvcCA9ICh0aGlzLl9yb290RWxlbWVudCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLnNjcm9sbFRvcFxuICAgIGNvbnN0IHVzZXJTY3JvbGxzRG93biA9IHBhcmVudFNjcm9sbFRvcCA+PSB0aGlzLl9wcmV2aW91c1Njcm9sbERhdGEucGFyZW50U2Nyb2xsVG9wXG4gICAgdGhpcy5fcHJldmlvdXNTY3JvbGxEYXRhLnBhcmVudFNjcm9sbFRvcCA9IHBhcmVudFNjcm9sbFRvcFxuXG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICBpZiAoIWVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVRhcmdldCA9IG51bGxcbiAgICAgICAgdGhpcy5fY2xlYXJBY3RpdmVDbGFzcyh0YXJnZXRFbGVtZW50KGVudHJ5KSlcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyeUlzTG93ZXJUaGFuUHJldmlvdXMgPSBlbnRyeS50YXJnZXQub2Zmc2V0VG9wID49IHRoaXMuX3ByZXZpb3VzU2Nyb2xsRGF0YS52aXNpYmxlRW50cnlUb3BcbiAgICAgIC8vIGlmIHdlIGFyZSBzY3JvbGxpbmcgZG93biwgcGljayB0aGUgYmlnZ2VyIG9mZnNldFRvcFxuICAgICAgaWYgKHVzZXJTY3JvbGxzRG93biAmJiBlbnRyeUlzTG93ZXJUaGFuUHJldmlvdXMpIHtcbiAgICAgICAgYWN0aXZhdGUoZW50cnkpXG4gICAgICAgIC8vIGlmIHBhcmVudCBpc24ndCBzY3JvbGxlZCwgbGV0J3Mga2VlcCB0aGUgZmlyc3QgdmlzaWJsZSBpdGVtLCBicmVha2luZyB0aGUgaXRlcmF0aW9uXG4gICAgICAgIGlmICghcGFyZW50U2Nyb2xsVG9wKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBpZiB3ZSBhcmUgc2Nyb2xsaW5nIHVwLCBwaWNrIHRoZSBzbWFsbGVzdCBvZmZzZXRUb3BcbiAgICAgIGlmICghdXNlclNjcm9sbHNEb3duICYmICFlbnRyeUlzTG93ZXJUaGFuUHJldmlvdXMpIHtcbiAgICAgICAgYWN0aXZhdGUoZW50cnkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2luaXRpYWxpemVUYXJnZXRzQW5kT2JzZXJ2YWJsZXMoKSB7XG4gICAgdGhpcy5fdGFyZ2V0TGlua3MgPSBuZXcgTWFwKClcbiAgICB0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMgPSBuZXcgTWFwKClcblxuICAgIGNvbnN0IHRhcmdldExpbmtzID0gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9UQVJHRVRfTElOS1MsIHRoaXMuX2NvbmZpZy50YXJnZXQpXG5cbiAgICBmb3IgKGNvbnN0IGFuY2hvciBvZiB0YXJnZXRMaW5rcykge1xuICAgICAgLy8gZW5zdXJlIHRoYXQgdGhlIGFuY2hvciBoYXMgYW4gaWQgYW5kIGlzIG5vdCBkaXNhYmxlZFxuICAgICAgaWYgKCFhbmNob3IuaGFzaCB8fCBpc0Rpc2FibGVkKGFuY2hvcikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2JzZXJ2YWJsZVNlY3Rpb24gPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKGRlY29kZVVSSShhbmNob3IuaGFzaCksIHRoaXMuX2VsZW1lbnQpXG5cbiAgICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBvYnNlcnZhYmxlU2VjdGlvbiBleGlzdHMgJiBpcyB2aXNpYmxlXG4gICAgICBpZiAoaXNWaXNpYmxlKG9ic2VydmFibGVTZWN0aW9uKSkge1xuICAgICAgICB0aGlzLl90YXJnZXRMaW5rcy5zZXQoZGVjb2RlVVJJKGFuY2hvci5oYXNoKSwgYW5jaG9yKVxuICAgICAgICB0aGlzLl9vYnNlcnZhYmxlU2VjdGlvbnMuc2V0KGFuY2hvci5oYXNoLCBvYnNlcnZhYmxlU2VjdGlvbilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfcHJvY2Vzcyh0YXJnZXQpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlVGFyZ2V0ID09PSB0YXJnZXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX2NsZWFyQWN0aXZlQ2xhc3ModGhpcy5fY29uZmlnLnRhcmdldClcbiAgICB0aGlzLl9hY3RpdmVUYXJnZXQgPSB0YXJnZXRcbiAgICB0YXJnZXQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0FDVElWRSlcbiAgICB0aGlzLl9hY3RpdmF0ZVBhcmVudHModGFyZ2V0KVxuXG4gICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfQUNUSVZBVEUsIHsgcmVsYXRlZFRhcmdldDogdGFyZ2V0IH0pXG4gIH1cblxuICBfYWN0aXZhdGVQYXJlbnRzKHRhcmdldCkge1xuICAgIC8vIEFjdGl2YXRlIGRyb3Bkb3duIHBhcmVudHNcbiAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19OQU1FX0RST1BET1dOX0lURU0pKSB7XG4gICAgICBTZWxlY3RvckVuZ2luZS5maW5kT25lKFNFTEVDVE9SX0RST1BET1dOX1RPR0dMRSwgdGFyZ2V0LmNsb3Nlc3QoU0VMRUNUT1JfRFJPUERPV04pKVxuICAgICAgICAuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0FDVElWRSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbGlzdEdyb3VwIG9mIFNlbGVjdG9yRW5naW5lLnBhcmVudHModGFyZ2V0LCBTRUxFQ1RPUl9OQVZfTElTVF9HUk9VUCkpIHtcbiAgICAgIC8vIFNldCB0cmlnZ2VyZWQgbGlua3MgcGFyZW50cyBhcyBhY3RpdmVcbiAgICAgIC8vIFdpdGggYm90aCA8dWw+IGFuZCA8bmF2PiBtYXJrdXAgYSBwYXJlbnQgaXMgdGhlIHByZXZpb3VzIHNpYmxpbmcgb2YgYW55IG5hdiBhbmNlc3RvclxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIFNlbGVjdG9yRW5naW5lLnByZXYobGlzdEdyb3VwLCBTRUxFQ1RPUl9MSU5LX0lURU1TKSkge1xuICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9BQ1RJVkUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2NsZWFyQWN0aXZlQ2xhc3MocGFyZW50KSB7XG4gICAgcGFyZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9BQ1RJVkUpXG5cbiAgICBjb25zdCBhY3RpdmVOb2RlcyA9IFNlbGVjdG9yRW5naW5lLmZpbmQoYCR7U0VMRUNUT1JfVEFSR0VUX0xJTktTfS4ke0NMQVNTX05BTUVfQUNUSVZFfWAsIHBhcmVudClcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgYWN0aXZlTm9kZXMpIHtcbiAgICAgIG5vZGUuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX0FDVElWRSlcbiAgICB9XG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBTY3JvbGxTcHkuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGRhdGFbY29uZmlnXSA9PT0gdW5kZWZpbmVkIHx8IGNvbmZpZy5zdGFydHNXaXRoKCdfJykgfHwgY29uZmlnID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYE5vIG1ldGhvZCBuYW1lZCBcIiR7Y29uZmlnfVwiYClcbiAgICAgIH1cblxuICAgICAgZGF0YVtjb25maWddKClcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5FdmVudEhhbmRsZXIub24od2luZG93LCBFVkVOVF9MT0FEX0RBVEFfQVBJLCAoKSA9PiB7XG4gIGZvciAoY29uc3Qgc3B5IG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfREFUQV9TUFkpKSB7XG4gICAgU2Nyb2xsU3B5LmdldE9yQ3JlYXRlSW5zdGFuY2Uoc3B5KVxuICB9XG59KVxuXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihTY3JvbGxTcHkpXG5cbmV4cG9ydCBkZWZhdWx0IFNjcm9sbFNweVxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCB0YWIuanNcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFpbi9MSUNFTlNFKVxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tICcuL2Jhc2UtY29tcG9uZW50LmpzJ1xuaW1wb3J0IEV2ZW50SGFuZGxlciBmcm9tICcuL2RvbS9ldmVudC1oYW5kbGVyLmpzJ1xuaW1wb3J0IFNlbGVjdG9yRW5naW5lIGZyb20gJy4vZG9tL3NlbGVjdG9yLWVuZ2luZS5qcydcbmltcG9ydCB7IGRlZmluZUpRdWVyeVBsdWdpbiwgZ2V0TmV4dEFjdGl2ZUVsZW1lbnQsIGlzRGlzYWJsZWQgfSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICd0YWInXG5jb25zdCBEQVRBX0tFWSA9ICdicy50YWInXG5jb25zdCBFVkVOVF9LRVkgPSBgLiR7REFUQV9LRVl9YFxuXG5jb25zdCBFVkVOVF9ISURFID0gYGhpZGUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURERU4gPSBgaGlkZGVuJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPVyA9IGBzaG93JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPV04gPSBgc2hvd24ke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9DTElDS19EQVRBX0FQSSA9IGBjbGljayR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0tFWURPV04gPSBga2V5ZG93biR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX0xPQURfREFUQV9BUEkgPSBgbG9hZCR7RVZFTlRfS0VZfWBcblxuY29uc3QgQVJST1dfTEVGVF9LRVkgPSAnQXJyb3dMZWZ0J1xuY29uc3QgQVJST1dfUklHSFRfS0VZID0gJ0Fycm93UmlnaHQnXG5jb25zdCBBUlJPV19VUF9LRVkgPSAnQXJyb3dVcCdcbmNvbnN0IEFSUk9XX0RPV05fS0VZID0gJ0Fycm93RG93bidcbmNvbnN0IEhPTUVfS0VZID0gJ0hvbWUnXG5jb25zdCBFTkRfS0VZID0gJ0VuZCdcblxuY29uc3QgQ0xBU1NfTkFNRV9BQ1RJVkUgPSAnYWN0aXZlJ1xuY29uc3QgQ0xBU1NfTkFNRV9GQURFID0gJ2ZhZGUnXG5jb25zdCBDTEFTU19OQU1FX1NIT1cgPSAnc2hvdydcbmNvbnN0IENMQVNTX0RST1BET1dOID0gJ2Ryb3Bkb3duJ1xuXG5jb25zdCBTRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEUgPSAnLmRyb3Bkb3duLXRvZ2dsZSdcbmNvbnN0IFNFTEVDVE9SX0RST1BET1dOX01FTlUgPSAnLmRyb3Bkb3duLW1lbnUnXG5jb25zdCBOT1RfU0VMRUNUT1JfRFJPUERPV05fVE9HR0xFID0gYDpub3QoJHtTRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEV9KWBcblxuY29uc3QgU0VMRUNUT1JfVEFCX1BBTkVMID0gJy5saXN0LWdyb3VwLCAubmF2LCBbcm9sZT1cInRhYmxpc3RcIl0nXG5jb25zdCBTRUxFQ1RPUl9PVVRFUiA9ICcubmF2LWl0ZW0sIC5saXN0LWdyb3VwLWl0ZW0nXG5jb25zdCBTRUxFQ1RPUl9JTk5FUiA9IGAubmF2LWxpbmske05PVF9TRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEV9LCAubGlzdC1ncm91cC1pdGVtJHtOT1RfU0VMRUNUT1JfRFJPUERPV05fVE9HR0xFfSwgW3JvbGU9XCJ0YWJcIl0ke05PVF9TRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEV9YFxuY29uc3QgU0VMRUNUT1JfREFUQV9UT0dHTEUgPSAnW2RhdGEtYnMtdG9nZ2xlPVwidGFiXCJdLCBbZGF0YS1icy10b2dnbGU9XCJwaWxsXCJdLCBbZGF0YS1icy10b2dnbGU9XCJsaXN0XCJdJyAvLyBUT0RPOiBjb3VsZCBvbmx5IGJlIGB0YWJgIGluIHY2XG5jb25zdCBTRUxFQ1RPUl9JTk5FUl9FTEVNID0gYCR7U0VMRUNUT1JfSU5ORVJ9LCAke1NFTEVDVE9SX0RBVEFfVE9HR0xFfWBcblxuY29uc3QgU0VMRUNUT1JfREFUQV9UT0dHTEVfQUNUSVZFID0gYC4ke0NMQVNTX05BTUVfQUNUSVZFfVtkYXRhLWJzLXRvZ2dsZT1cInRhYlwiXSwgLiR7Q0xBU1NfTkFNRV9BQ1RJVkV9W2RhdGEtYnMtdG9nZ2xlPVwicGlsbFwiXSwgLiR7Q0xBU1NfTkFNRV9BQ1RJVkV9W2RhdGEtYnMtdG9nZ2xlPVwibGlzdFwiXWBcblxuLyoqXG4gKiBDbGFzcyBkZWZpbml0aW9uXG4gKi9cblxuY2xhc3MgVGFiIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKGVsZW1lbnQpIHtcbiAgICBzdXBlcihlbGVtZW50KVxuICAgIHRoaXMuX3BhcmVudCA9IHRoaXMuX2VsZW1lbnQuY2xvc2VzdChTRUxFQ1RPUl9UQUJfUEFORUwpXG5cbiAgICBpZiAoIXRoaXMuX3BhcmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgICAvLyBUT0RPOiBzaG91bGQgdGhyb3cgZXhjZXB0aW9uIGluIHY2XG4gICAgICAvLyB0aHJvdyBuZXcgVHlwZUVycm9yKGAke2VsZW1lbnQub3V0ZXJIVE1MfSBoYXMgbm90IGEgdmFsaWQgcGFyZW50ICR7U0VMRUNUT1JfSU5ORVJfRUxFTX1gKVxuICAgIH1cblxuICAgIC8vIFNldCB1cCBpbml0aWFsIGFyaWEgYXR0cmlidXRlc1xuICAgIHRoaXMuX3NldEluaXRpYWxBdHRyaWJ1dGVzKHRoaXMuX3BhcmVudCwgdGhpcy5fZ2V0Q2hpbGRyZW4oKSlcblxuICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9LRVlET1dOLCBldmVudCA9PiB0aGlzLl9rZXlkb3duKGV2ZW50KSlcbiAgfVxuXG4gIC8vIEdldHRlcnNcbiAgc3RhdGljIGdldCBOQU1FKCkge1xuICAgIHJldHVybiBOQU1FXG4gIH1cblxuICAvLyBQdWJsaWNcbiAgc2hvdygpIHsgLy8gU2hvd3MgdGhpcyBlbGVtIGFuZCBkZWFjdGl2YXRlIHRoZSBhY3RpdmUgc2libGluZyBpZiBleGlzdHNcbiAgICBjb25zdCBpbm5lckVsZW0gPSB0aGlzLl9lbGVtZW50XG4gICAgaWYgKHRoaXMuX2VsZW1Jc0FjdGl2ZShpbm5lckVsZW0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggZm9yIGFjdGl2ZSB0YWIgb24gc2FtZSBwYXJlbnQgdG8gZGVhY3RpdmF0ZSBpdFxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuX2dldEFjdGl2ZUVsZW0oKVxuXG4gICAgY29uc3QgaGlkZUV2ZW50ID0gYWN0aXZlID9cbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKGFjdGl2ZSwgRVZFTlRfSElERSwgeyByZWxhdGVkVGFyZ2V0OiBpbm5lckVsZW0gfSkgOlxuICAgICAgbnVsbFxuXG4gICAgY29uc3Qgc2hvd0V2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIoaW5uZXJFbGVtLCBFVkVOVF9TSE9XLCB7IHJlbGF0ZWRUYXJnZXQ6IGFjdGl2ZSB9KVxuXG4gICAgaWYgKHNob3dFdmVudC5kZWZhdWx0UHJldmVudGVkIHx8IChoaWRlRXZlbnQgJiYgaGlkZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl9kZWFjdGl2YXRlKGFjdGl2ZSwgaW5uZXJFbGVtKVxuICAgIHRoaXMuX2FjdGl2YXRlKGlubmVyRWxlbSwgYWN0aXZlKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuICBfYWN0aXZhdGUoZWxlbWVudCwgcmVsYXRlZEVsZW0pIHtcbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0FDVElWRSlcblxuICAgIHRoaXMuX2FjdGl2YXRlKFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IoZWxlbWVudCkpIC8vIFNlYXJjaCBhbmQgYWN0aXZhdGUvc2hvdyB0aGUgcHJvcGVyIHNlY3Rpb25cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgIT09ICd0YWInKSB7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX1NIT1cpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCB0cnVlKVxuICAgICAgdGhpcy5fdG9nZ2xlRHJvcERvd24oZWxlbWVudCwgdHJ1ZSlcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKGVsZW1lbnQsIEVWRU5UX1NIT1dOLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHJlbGF0ZWRFbGVtXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRoaXMuX3F1ZXVlQ2FsbGJhY2soY29tcGxldGUsIGVsZW1lbnQsIGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05BTUVfRkFERSkpXG4gIH1cblxuICBfZGVhY3RpdmF0ZShlbGVtZW50LCByZWxhdGVkRWxlbSkge1xuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfQUNUSVZFKVxuICAgIGVsZW1lbnQuYmx1cigpXG5cbiAgICB0aGlzLl9kZWFjdGl2YXRlKFNlbGVjdG9yRW5naW5lLmdldEVsZW1lbnRGcm9tU2VsZWN0b3IoZWxlbWVudCkpIC8vIFNlYXJjaCBhbmQgZGVhY3RpdmF0ZSB0aGUgc2hvd24gc2VjdGlvbiB0b29cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykgIT09ICd0YWInKSB7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19OQU1FX1NIT1cpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGZhbHNlKVxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJylcbiAgICAgIHRoaXMuX3RvZ2dsZURyb3BEb3duKGVsZW1lbnQsIGZhbHNlKVxuICAgICAgRXZlbnRIYW5kbGVyLnRyaWdnZXIoZWxlbWVudCwgRVZFTlRfSElEREVOLCB7IHJlbGF0ZWRUYXJnZXQ6IHJlbGF0ZWRFbGVtIH0pXG4gICAgfVxuXG4gICAgdGhpcy5fcXVldWVDYWxsYmFjayhjb21wbGV0ZSwgZWxlbWVudCwgZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9GQURFKSlcbiAgfVxuXG4gIF9rZXlkb3duKGV2ZW50KSB7XG4gICAgaWYgKCEoW0FSUk9XX0xFRlRfS0VZLCBBUlJPV19SSUdIVF9LRVksIEFSUk9XX1VQX0tFWSwgQVJST1dfRE9XTl9LRVksIEhPTUVfS0VZLCBFTkRfS0VZXS5pbmNsdWRlcyhldmVudC5rZXkpKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkvLyBzdG9wUHJvcGFnYXRpb24vcHJldmVudERlZmF1bHQgYm90aCBhZGRlZCB0byBzdXBwb3J0IHVwL2Rvd24ga2V5cyB3aXRob3V0IHNjcm9sbGluZyB0aGUgcGFnZVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcblxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fZ2V0Q2hpbGRyZW4oKS5maWx0ZXIoZWxlbWVudCA9PiAhaXNEaXNhYmxlZChlbGVtZW50KSlcbiAgICBsZXQgbmV4dEFjdGl2ZUVsZW1lbnRcblxuICAgIGlmIChbSE9NRV9LRVksIEVORF9LRVldLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIG5leHRBY3RpdmVFbGVtZW50ID0gY2hpbGRyZW5bZXZlbnQua2V5ID09PSBIT01FX0tFWSA/IDAgOiBjaGlsZHJlbi5sZW5ndGggLSAxXVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc05leHQgPSBbQVJST1dfUklHSFRfS0VZLCBBUlJPV19ET1dOX0tFWV0uaW5jbHVkZXMoZXZlbnQua2V5KVxuICAgICAgbmV4dEFjdGl2ZUVsZW1lbnQgPSBnZXROZXh0QWN0aXZlRWxlbWVudChjaGlsZHJlbiwgZXZlbnQudGFyZ2V0LCBpc05leHQsIHRydWUpXG4gICAgfVxuXG4gICAgaWYgKG5leHRBY3RpdmVFbGVtZW50KSB7XG4gICAgICBuZXh0QWN0aXZlRWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSlcbiAgICAgIFRhYi5nZXRPckNyZWF0ZUluc3RhbmNlKG5leHRBY3RpdmVFbGVtZW50KS5zaG93KClcbiAgICB9XG4gIH1cblxuICBfZ2V0Q2hpbGRyZW4oKSB7IC8vIGNvbGxlY3Rpb24gb2YgaW5uZXIgZWxlbWVudHNcbiAgICByZXR1cm4gU2VsZWN0b3JFbmdpbmUuZmluZChTRUxFQ1RPUl9JTk5FUl9FTEVNLCB0aGlzLl9wYXJlbnQpXG4gIH1cblxuICBfZ2V0QWN0aXZlRWxlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q2hpbGRyZW4oKS5maW5kKGNoaWxkID0+IHRoaXMuX2VsZW1Jc0FjdGl2ZShjaGlsZCkpIHx8IG51bGxcbiAgfVxuXG4gIF9zZXRJbml0aWFsQXR0cmlidXRlcyhwYXJlbnQsIGNoaWxkcmVuKSB7XG4gICAgdGhpcy5fc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMocGFyZW50LCAncm9sZScsICd0YWJsaXN0JylcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuX3NldEluaXRpYWxBdHRyaWJ1dGVzT25DaGlsZChjaGlsZClcbiAgICB9XG4gIH1cblxuICBfc2V0SW5pdGlhbEF0dHJpYnV0ZXNPbkNoaWxkKGNoaWxkKSB7XG4gICAgY2hpbGQgPSB0aGlzLl9nZXRJbm5lckVsZW1lbnQoY2hpbGQpXG4gICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLl9lbGVtSXNBY3RpdmUoY2hpbGQpXG4gICAgY29uc3Qgb3V0ZXJFbGVtID0gdGhpcy5fZ2V0T3V0ZXJFbGVtZW50KGNoaWxkKVxuICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGlzQWN0aXZlKVxuXG4gICAgaWYgKG91dGVyRWxlbSAhPT0gY2hpbGQpIHtcbiAgICAgIHRoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKG91dGVyRWxlbSwgJ3JvbGUnLCAncHJlc2VudGF0aW9uJylcbiAgICB9XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJy0xJylcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRBdHRyaWJ1dGVJZk5vdEV4aXN0cyhjaGlsZCwgJ3JvbGUnLCAndGFiJylcblxuICAgIC8vIHNldCBhdHRyaWJ1dGVzIHRvIHRoZSByZWxhdGVkIHBhbmVsIHRvb1xuICAgIHRoaXMuX3NldEluaXRpYWxBdHRyaWJ1dGVzT25UYXJnZXRQYW5lbChjaGlsZClcbiAgfVxuXG4gIF9zZXRJbml0aWFsQXR0cmlidXRlc09uVGFyZ2V0UGFuZWwoY2hpbGQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBTZWxlY3RvckVuZ2luZS5nZXRFbGVtZW50RnJvbVNlbGVjdG9yKGNoaWxkKVxuXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX3NldEF0dHJpYnV0ZUlmTm90RXhpc3RzKHRhcmdldCwgJ3JvbGUnLCAndGFicGFuZWwnKVxuXG4gICAgaWYgKGNoaWxkLmlkKSB7XG4gICAgICB0aGlzLl9zZXRBdHRyaWJ1dGVJZk5vdEV4aXN0cyh0YXJnZXQsICdhcmlhLWxhYmVsbGVkYnknLCBgJHtjaGlsZC5pZH1gKVxuICAgIH1cbiAgfVxuXG4gIF90b2dnbGVEcm9wRG93bihlbGVtZW50LCBvcGVuKSB7XG4gICAgY29uc3Qgb3V0ZXJFbGVtID0gdGhpcy5fZ2V0T3V0ZXJFbGVtZW50KGVsZW1lbnQpXG4gICAgaWYgKCFvdXRlckVsZW0uY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX0RST1BET1dOKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdG9nZ2xlID0gKHNlbGVjdG9yLCBjbGFzc05hbWUpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBTZWxlY3RvckVuZ2luZS5maW5kT25lKHNlbGVjdG9yLCBvdXRlckVsZW0pXG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoY2xhc3NOYW1lLCBvcGVuKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRvZ2dsZShTRUxFQ1RPUl9EUk9QRE9XTl9UT0dHTEUsIENMQVNTX05BTUVfQUNUSVZFKVxuICAgIHRvZ2dsZShTRUxFQ1RPUl9EUk9QRE9XTl9NRU5VLCBDTEFTU19OQU1FX1NIT1cpXG4gICAgb3V0ZXJFbGVtLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsIG9wZW4pXG4gIH1cblxuICBfc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMoZWxlbWVudCwgYXR0cmlidXRlLCB2YWx1ZSkge1xuICAgIGlmICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlKSkge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSlcbiAgICB9XG4gIH1cblxuICBfZWxlbUlzQWN0aXZlKGVsZW0pIHtcbiAgICByZXR1cm4gZWxlbS5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9BQ1RJVkUpXG4gIH1cblxuICAvLyBUcnkgdG8gZ2V0IHRoZSBpbm5lciBlbGVtZW50ICh1c3VhbGx5IHRoZSAubmF2LWxpbmspXG4gIF9nZXRJbm5lckVsZW1lbnQoZWxlbSkge1xuICAgIHJldHVybiBlbGVtLm1hdGNoZXMoU0VMRUNUT1JfSU5ORVJfRUxFTSkgPyBlbGVtIDogU2VsZWN0b3JFbmdpbmUuZmluZE9uZShTRUxFQ1RPUl9JTk5FUl9FTEVNLCBlbGVtKVxuICB9XG5cbiAgLy8gVHJ5IHRvIGdldCB0aGUgb3V0ZXIgZWxlbWVudCAodXN1YWxseSB0aGUgLm5hdi1pdGVtKVxuICBfZ2V0T3V0ZXJFbGVtZW50KGVsZW0pIHtcbiAgICByZXR1cm4gZWxlbS5jbG9zZXN0KFNFTEVDVE9SX09VVEVSKSB8fCBlbGVtXG4gIH1cblxuICAvLyBTdGF0aWNcbiAgc3RhdGljIGpRdWVyeUludGVyZmFjZShjb25maWcpIHtcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBUYWIuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzKVxuXG4gICAgICBpZiAodHlwZW9mIGNvbmZpZyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhW2NvbmZpZ10gPT09IHVuZGVmaW5lZCB8fCBjb25maWcuc3RhcnRzV2l0aCgnXycpIHx8IGNvbmZpZyA9PT0gJ2NvbnN0cnVjdG9yJykge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke2NvbmZpZ31cImApXG4gICAgICB9XG5cbiAgICAgIGRhdGFbY29uZmlnXSgpXG4gICAgfSlcbiAgfVxufVxuXG4vKipcbiAqIERhdGEgQVBJIGltcGxlbWVudGF0aW9uXG4gKi9cblxuRXZlbnRIYW5kbGVyLm9uKGRvY3VtZW50LCBFVkVOVF9DTElDS19EQVRBX0FQSSwgU0VMRUNUT1JfREFUQV9UT0dHTEUsIGZ1bmN0aW9uIChldmVudCkge1xuICBpZiAoWydBJywgJ0FSRUEnXS5pbmNsdWRlcyh0aGlzLnRhZ05hbWUpKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICB9XG5cbiAgaWYgKGlzRGlzYWJsZWQodGhpcykpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIFRhYi5nZXRPckNyZWF0ZUluc3RhbmNlKHRoaXMpLnNob3coKVxufSlcblxuLyoqXG4gKiBJbml0aWFsaXplIG9uIGZvY3VzXG4gKi9cbkV2ZW50SGFuZGxlci5vbih3aW5kb3csIEVWRU5UX0xPQURfREFUQV9BUEksICgpID0+IHtcbiAgZm9yIChjb25zdCBlbGVtZW50IG9mIFNlbGVjdG9yRW5naW5lLmZpbmQoU0VMRUNUT1JfREFUQV9UT0dHTEVfQUNUSVZFKSkge1xuICAgIFRhYi5nZXRPckNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpXG4gIH1cbn0pXG4vKipcbiAqIGpRdWVyeVxuICovXG5cbmRlZmluZUpRdWVyeVBsdWdpbihUYWIpXG5cbmV4cG9ydCBkZWZhdWx0IFRhYlxuIiwgIi8qKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEJvb3RzdHJhcCB0b2FzdC5qc1xuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYWluL0xJQ0VOU0UpXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICovXG5cbmltcG9ydCBCYXNlQ29tcG9uZW50IGZyb20gJy4vYmFzZS1jb21wb25lbnQuanMnXG5pbXBvcnQgRXZlbnRIYW5kbGVyIGZyb20gJy4vZG9tL2V2ZW50LWhhbmRsZXIuanMnXG5pbXBvcnQgeyBlbmFibGVEaXNtaXNzVHJpZ2dlciB9IGZyb20gJy4vdXRpbC9jb21wb25lbnQtZnVuY3Rpb25zLmpzJ1xuaW1wb3J0IHsgZGVmaW5lSlF1ZXJ5UGx1Z2luLCByZWZsb3cgfSBmcm9tICcuL3V0aWwvaW5kZXguanMnXG5cbi8qKlxuICogQ29uc3RhbnRzXG4gKi9cblxuY29uc3QgTkFNRSA9ICd0b2FzdCdcbmNvbnN0IERBVEFfS0VZID0gJ2JzLnRvYXN0J1xuY29uc3QgRVZFTlRfS0VZID0gYC4ke0RBVEFfS0VZfWBcblxuY29uc3QgRVZFTlRfTU9VU0VPVkVSID0gYG1vdXNlb3ZlciR7RVZFTlRfS0VZfWBcbmNvbnN0IEVWRU5UX01PVVNFT1VUID0gYG1vdXNlb3V0JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfRk9DVVNJTiA9IGBmb2N1c2luJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfRk9DVVNPVVQgPSBgZm9jdXNvdXQke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURFID0gYGhpZGUke0VWRU5UX0tFWX1gXG5jb25zdCBFVkVOVF9ISURERU4gPSBgaGlkZGVuJHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPVyA9IGBzaG93JHtFVkVOVF9LRVl9YFxuY29uc3QgRVZFTlRfU0hPV04gPSBgc2hvd24ke0VWRU5UX0tFWX1gXG5cbmNvbnN0IENMQVNTX05BTUVfRkFERSA9ICdmYWRlJ1xuY29uc3QgQ0xBU1NfTkFNRV9ISURFID0gJ2hpZGUnIC8vIEBkZXByZWNhdGVkIC0ga2VwdCBoZXJlIG9ubHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5jb25zdCBDTEFTU19OQU1FX1NIT1cgPSAnc2hvdydcbmNvbnN0IENMQVNTX05BTUVfU0hPV0lORyA9ICdzaG93aW5nJ1xuXG5jb25zdCBEZWZhdWx0VHlwZSA9IHtcbiAgYW5pbWF0aW9uOiAnYm9vbGVhbicsXG4gIGF1dG9oaWRlOiAnYm9vbGVhbicsXG4gIGRlbGF5OiAnbnVtYmVyJ1xufVxuXG5jb25zdCBEZWZhdWx0ID0ge1xuICBhbmltYXRpb246IHRydWUsXG4gIGF1dG9oaWRlOiB0cnVlLFxuICBkZWxheTogNTAwMFxufVxuXG4vKipcbiAqIENsYXNzIGRlZmluaXRpb25cbiAqL1xuXG5jbGFzcyBUb2FzdCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihlbGVtZW50LCBjb25maWcpIHtcbiAgICBzdXBlcihlbGVtZW50LCBjb25maWcpXG5cbiAgICB0aGlzLl90aW1lb3V0ID0gbnVsbFxuICAgIHRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb24gPSBmYWxzZVxuICAgIHRoaXMuX2hhc0tleWJvYXJkSW50ZXJhY3Rpb24gPSBmYWxzZVxuICAgIHRoaXMuX3NldExpc3RlbmVycygpXG4gIH1cblxuICAvLyBHZXR0ZXJzXG4gIHN0YXRpYyBnZXQgRGVmYXVsdCgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFxuICB9XG5cbiAgc3RhdGljIGdldCBEZWZhdWx0VHlwZSgpIHtcbiAgICByZXR1cm4gRGVmYXVsdFR5cGVcbiAgfVxuXG4gIHN0YXRpYyBnZXQgTkFNRSgpIHtcbiAgICByZXR1cm4gTkFNRVxuICB9XG5cbiAgLy8gUHVibGljXG4gIHNob3coKSB7XG4gICAgY29uc3Qgc2hvd0V2ZW50ID0gRXZlbnRIYW5kbGVyLnRyaWdnZXIodGhpcy5fZWxlbWVudCwgRVZFTlRfU0hPVylcblxuICAgIGlmIChzaG93RXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fY2xlYXJUaW1lb3V0KClcblxuICAgIGlmICh0aGlzLl9jb25maWcuYW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9GQURFKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfU0hPV0lORylcbiAgICAgIEV2ZW50SGFuZGxlci50cmlnZ2VyKHRoaXMuX2VsZW1lbnQsIEVWRU5UX1NIT1dOKVxuXG4gICAgICB0aGlzLl9tYXliZVNjaGVkdWxlSGlkZSgpXG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX05BTUVfSElERSkgLy8gQGRlcHJlY2F0ZWRcbiAgICByZWZsb3codGhpcy5fZWxlbWVudClcbiAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoQ0xBU1NfTkFNRV9TSE9XLCBDTEFTU19OQU1FX1NIT1dJTkcpXG5cbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKGNvbXBsZXRlLCB0aGlzLl9lbGVtZW50LCB0aGlzLl9jb25maWcuYW5pbWF0aW9uKVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNTaG93bigpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBoaWRlRXZlbnQgPSBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURFKVxuXG4gICAgaWYgKGhpZGVFdmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBjb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChDTEFTU19OQU1FX0hJREUpIC8vIEBkZXByZWNhdGVkXG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XSU5HLCBDTEFTU19OQU1FX1NIT1cpXG4gICAgICBFdmVudEhhbmRsZXIudHJpZ2dlcih0aGlzLl9lbGVtZW50LCBFVkVOVF9ISURERU4pXG4gICAgfVxuXG4gICAgdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKENMQVNTX05BTUVfU0hPV0lORylcbiAgICB0aGlzLl9xdWV1ZUNhbGxiYWNrKGNvbXBsZXRlLCB0aGlzLl9lbGVtZW50LCB0aGlzLl9jb25maWcuYW5pbWF0aW9uKVxuICB9XG5cbiAgZGlzcG9zZSgpIHtcbiAgICB0aGlzLl9jbGVhclRpbWVvdXQoKVxuXG4gICAgaWYgKHRoaXMuaXNTaG93bigpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfTkFNRV9TSE9XKVxuICAgIH1cblxuICAgIHN1cGVyLmRpc3Bvc2UoKVxuICB9XG5cbiAgaXNTaG93bigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoQ0xBU1NfTkFNRV9TSE9XKVxuICB9XG5cbiAgLy8gUHJpdmF0ZVxuXG4gIF9tYXliZVNjaGVkdWxlSGlkZSgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZy5hdXRvaGlkZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hhc01vdXNlSW50ZXJhY3Rpb24gfHwgdGhpcy5faGFzS2V5Ym9hcmRJbnRlcmFjdGlvbikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5oaWRlKClcbiAgICB9LCB0aGlzLl9jb25maWcuZGVsYXkpXG4gIH1cblxuICBfb25JbnRlcmFjdGlvbihldmVudCwgaXNJbnRlcmFjdGluZykge1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnbW91c2VvdmVyJzpcbiAgICAgIGNhc2UgJ21vdXNlb3V0Jzoge1xuICAgICAgICB0aGlzLl9oYXNNb3VzZUludGVyYWN0aW9uID0gaXNJbnRlcmFjdGluZ1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdmb2N1c2luJzpcbiAgICAgIGNhc2UgJ2ZvY3Vzb3V0Jzoge1xuICAgICAgICB0aGlzLl9oYXNLZXlib2FyZEludGVyYWN0aW9uID0gaXNJbnRlcmFjdGluZ1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzSW50ZXJhY3RpbmcpIHtcbiAgICAgIHRoaXMuX2NsZWFyVGltZW91dCgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBuZXh0RWxlbWVudCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXRcbiAgICBpZiAodGhpcy5fZWxlbWVudCA9PT0gbmV4dEVsZW1lbnQgfHwgdGhpcy5fZWxlbWVudC5jb250YWlucyhuZXh0RWxlbWVudCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuX21heWJlU2NoZWR1bGVIaWRlKClcbiAgfVxuXG4gIF9zZXRMaXN0ZW5lcnMoKSB7XG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX01PVVNFT1ZFUiwgZXZlbnQgPT4gdGhpcy5fb25JbnRlcmFjdGlvbihldmVudCwgdHJ1ZSkpXG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX01PVVNFT1VULCBldmVudCA9PiB0aGlzLl9vbkludGVyYWN0aW9uKGV2ZW50LCBmYWxzZSkpXG4gICAgRXZlbnRIYW5kbGVyLm9uKHRoaXMuX2VsZW1lbnQsIEVWRU5UX0ZPQ1VTSU4sIGV2ZW50ID0+IHRoaXMuX29uSW50ZXJhY3Rpb24oZXZlbnQsIHRydWUpKVxuICAgIEV2ZW50SGFuZGxlci5vbih0aGlzLl9lbGVtZW50LCBFVkVOVF9GT0NVU09VVCwgZXZlbnQgPT4gdGhpcy5fb25JbnRlcmFjdGlvbihldmVudCwgZmFsc2UpKVxuICB9XG5cbiAgX2NsZWFyVGltZW91dCgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dClcbiAgICB0aGlzLl90aW1lb3V0ID0gbnVsbFxuICB9XG5cbiAgLy8gU3RhdGljXG4gIHN0YXRpYyBqUXVlcnlJbnRlcmZhY2UoY29uZmlnKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkYXRhID0gVG9hc3QuZ2V0T3JDcmVhdGVJbnN0YW5jZSh0aGlzLCBjb25maWcpXG5cbiAgICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGFbY29uZmlnXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBObyBtZXRob2QgbmFtZWQgXCIke2NvbmZpZ31cImApXG4gICAgICAgIH1cblxuICAgICAgICBkYXRhW2NvbmZpZ10odGhpcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogRGF0YSBBUEkgaW1wbGVtZW50YXRpb25cbiAqL1xuXG5lbmFibGVEaXNtaXNzVHJpZ2dlcihUb2FzdClcblxuLyoqXG4gKiBqUXVlcnlcbiAqL1xuXG5kZWZpbmVKUXVlcnlQbHVnaW4oVG9hc3QpXG5cbmV4cG9ydCBkZWZhdWx0IFRvYXN0XG4iLCAiLy8gaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9wYWNrYWdlcy5odG1sI3BhY2thZ2VzX3dyaXRpbmdfZHVhbF9wYWNrYWdlc193aGlsZV9hdm9pZGluZ19vcl9taW5pbWl6aW5nX2hhemFyZHNcbmltcG9ydCBIaWdobGlnaHRKUyBmcm9tICcuLi9saWIvaW5kZXguanMnO1xuZXhwb3J0IHsgSGlnaGxpZ2h0SlMgfTtcbmV4cG9ydCBkZWZhdWx0IEhpZ2hsaWdodEpTO1xuIiwgImltcG9ydCAkIGZyb20gXCJqcXVlcnlcIlxuXG4kKGZ1bmN0aW9uICgpIHtcbiAgJChcInNlbGVjdC50cmVlXCIpLmNoYW5nZShmdW5jdGlvbiAoKSB7XG4gICAgZG9jdW1lbnQubG9jYXRpb24gPSB0aGlzLnZhbHVlO1xuICB9KTtcbn0pO1xuIiwgImltcG9ydCAkIGZyb20gXCJqcXVlcnlcIjtcbmltcG9ydCBrbXhfY29sb3JzIGZyb20gXCIuL2tteF9jb2xvcnNcIjtcblxuZnVuY3Rpb24gZ2V0UmFuZG9tSW50KG1heCkge1xuICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbWF4KTtcbn1cblxuJChmdW5jdGlvbigpIHtcbiAgc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7XG4gICAgY29uc3QgaSA9IGdldFJhbmRvbUludChrbXhfY29sb3JzLmluZGV4Lmxlbmd0aCk7XG4gICAgY29uc3QgbmFtZSA9IGtteF9jb2xvcnMuaW5kZXhbaV07XG4gICAgY29uc3QgY29sb3IgPSBrbXhfY29sb3JzW25hbWVdO1xuICAgIGNvbnN0IHggPSAoZ2V0UmFuZG9tSW50KDk5KSAtIDQ4KSAqIDAuMDAyO1xuICAgICQoXCJhXCIpLmNzcyhcInRleHQtc2hhZG93XCIsIFwiMCAwIDBcIik7XG4gICAgJChcImE6aG92ZXJcIikuY3NzKFwidGV4dC1zaGFkb3dcIiwgeCArIFwiZW0gMCAwIFwiICsgY29sb3IpO1xuICB9LCAyMDApO1xufSk7XG4iLCAiY29uc3Qga214X2NvbG9ycyA9IHtcbiAgXCJrbXgtYmxhY2tcIjogICBcIiMxZTFmMWRcIixcbiAgXCJrbXgtYmx1ZVwiOiAgICBcIiM1YTYwZjlcIixcbiAgXCJrbXgtYmx1ZTFcIjogICBcIiM2ZjcyZjlcIixcbiAgXCJrbXgtYmx1ZTJcIjogICBcIiM5Yzk5ZmRcIixcbiAgXCJrbXgtYmx1ZTNcIjogICBcIiM1YTYwZjlcIixcbiAgXCJrbXgtYmx1ZTRcIjogICBcIiM2ZjcyZjlcIixcbiAgXCJrbXgtYmx1ZTVcIjogICBcIiM5Yzk5ZmRcIixcbiAgXCJpbmRleFwiOiBbXG4gICAgXCJrbXgtYmxhY2tcIixcbiAgICBcImtteC1ibHVlXCIsXG4gICAgXCJrbXgtYmx1ZTFcIixcbiAgICBcImtteC1ibHVlMlwiLFxuICAgIFwia214LWJsdWUzXCIsXG4gICAgXCJrbXgtYmx1ZTRcIixcbiAgICBcImtteC1ibHVlNVwiLFxuICAgIFwia214LWN5YW5cIixcbiAgICBcImtteC1jeWFuMVwiLFxuICAgIFwia214LWdyZWVuXCIsXG4gICAgXCJrbXgtZ3JlZW4xXCIsXG4gICAgXCJrbXgtb3JhbmdlXCIsXG4gICAgXCJrbXgtb3JhbmdlMVwiLFxuICAgIFwia214LW9yYW5nZTJcIixcbiAgICBcImtteC1waW5rXCIsXG4gICAgXCJrbXgtd2hpdGVcIixcbiAgICBcImtteC13aGl0ZTFcIixcbiAgICBcImtteC13aGl0ZTJcIixcbiAgICBcImtteC15ZWxsb3dcIixcbiAgICBcImtteC15ZWxsb3cxXCIsXG4gICAgXCJrbXgteWVsbG93MlwiLFxuICAgIFwia214LXllbGxvdzNcIlxuICBdLFxuICBcImtteC1jeWFuXCI6ICAgIFwiI2Q0ZjNmNlwiLFxuICBcImtteC1jeWFuMVwiOiAgIFwiI2Q0ZjNmNlwiLFxuICBcImtteC1ncmVlblwiOiAgIFwiI2M0ZWQzYVwiLFxuICBcImtteC1ncmVlbjFcIjogIFwiI2M0ZWQzYVwiLFxuICBcImtteC1vcmFuZ2VcIjogIFwiI2Y4NjgxY1wiLFxuICBcImtteC1vcmFuZ2UxXCI6IFwiI2ZhNzczNFwiLFxuICBcImtteC1vcmFuZ2UyXCI6IFwiI2ZmYTUzMlwiLFxuICBcImtteC1waW5rXCI6ICAgIFwiI2ZjOWVmOVwiLFxuICBcImtteC13aGl0ZVwiOiAgIFwiI2Y1ZjhmNFwiLFxuICBcImtteC13aGl0ZTFcIjogIFwiI2ZmZjlmMlwiLFxuICBcImtteC13aGl0ZTJcIjogIFwiI2ZmZmZmZlwiLFxuICBcImtteC15ZWxsb3dcIjogIFwiI2VjZmU0OVwiLFxuICBcImtteC15ZWxsb3cxXCI6IFwiI2ZmZjQzZVwiLFxuICBcImtteC15ZWxsb3cyXCI6ICBcIiNlY2ZlNDlcIixcbiAgXCJrbXgteWVsbG93M1wiOiBcIiNmZmY0M2VcIlxufTtcbmV4cG9ydCBkZWZhdWx0IGtteF9jb2xvcnM7XG4iLCAiXCJ1c2Ugc3RyaWN0XCI7XG5cbihmdW5jdGlvbigpIHtcbiAgdmFyIFBvbHlmaWxsRXZlbnQgPSBldmVudENvbnN0cnVjdG9yKCk7XG5cbiAgZnVuY3Rpb24gZXZlbnRDb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdy5DdXN0b21FdmVudCA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gd2luZG93LkN1c3RvbUV2ZW50O1xuICAgIC8vIElFPD05IFN1cHBvcnRcbiAgICBmdW5jdGlvbiBDdXN0b21FdmVudChldmVudCwgcGFyYW1zKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMgfHwge2J1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiB1bmRlZmluZWR9O1xuICAgICAgdmFyIGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuICAgICAgZXZ0LmluaXRDdXN0b21FdmVudChldmVudCwgcGFyYW1zLmJ1YmJsZXMsIHBhcmFtcy5jYW5jZWxhYmxlLCBwYXJhbXMuZGV0YWlsKTtcbiAgICAgIHJldHVybiBldnQ7XG4gICAgfVxuICAgIEN1c3RvbUV2ZW50LnByb3RvdHlwZSA9IHdpbmRvdy5FdmVudC5wcm90b3R5cGU7XG4gICAgcmV0dXJuIEN1c3RvbUV2ZW50O1xuICB9XG5cbiAgZnVuY3Rpb24gYnVpbGRIaWRkZW5JbnB1dChuYW1lLCB2YWx1ZSkge1xuICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcbiAgICBpbnB1dC50eXBlID0gXCJoaWRkZW5cIjtcbiAgICBpbnB1dC5uYW1lID0gbmFtZTtcbiAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKGVsZW1lbnQsIHRhcmdldE1vZGlmaWVyS2V5KSB7XG4gICAgdmFyIHRvID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRvXCIpLFxuICAgICAgICBtZXRob2QgPSBidWlsZEhpZGRlbklucHV0KFwiX21ldGhvZFwiLCBlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtbWV0aG9kXCIpKSxcbiAgICAgICAgY3NyZiA9IGJ1aWxkSGlkZGVuSW5wdXQoXCJfY3NyZl90b2tlblwiLCBlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtY3NyZlwiKSksXG4gICAgICAgIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiKSxcbiAgICAgICAgc3VibWl0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpLFxuICAgICAgICB0YXJnZXQgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcInRhcmdldFwiKTtcblxuICAgIGZvcm0ubWV0aG9kID0gKGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1tZXRob2RcIikgPT09IFwiZ2V0XCIpID8gXCJnZXRcIiA6IFwicG9zdFwiO1xuICAgIGZvcm0uYWN0aW9uID0gdG87XG4gICAgZm9ybS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG5cbiAgICBpZiAodGFyZ2V0KSBmb3JtLnRhcmdldCA9IHRhcmdldDtcbiAgICBlbHNlIGlmICh0YXJnZXRNb2RpZmllcktleSkgZm9ybS50YXJnZXQgPSBcIl9ibGFua1wiO1xuXG4gICAgZm9ybS5hcHBlbmRDaGlsZChjc3JmKTtcbiAgICBmb3JtLmFwcGVuZENoaWxkKG1ldGhvZCk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcblxuICAgIC8vIEluc2VydCBhIGJ1dHRvbiBhbmQgY2xpY2sgaXQgaW5zdGVhZCBvZiB1c2luZyBgZm9ybS5zdWJtaXRgXG4gICAgLy8gYmVjYXVzZSB0aGUgYHN1Ym1pdGAgZnVuY3Rpb24gZG9lcyBub3QgZW1pdCBhIGBzdWJtaXRgIGV2ZW50LlxuICAgIHN1Ym1pdC50eXBlID0gXCJzdWJtaXRcIjtcbiAgICBmb3JtLmFwcGVuZENoaWxkKHN1Ym1pdCk7XG4gICAgc3VibWl0LmNsaWNrKCk7XG4gIH1cblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uKGUpIHtcbiAgICB2YXIgZWxlbWVudCA9IGUudGFyZ2V0O1xuICAgIGlmIChlLmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjtcblxuICAgIHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQuZ2V0QXR0cmlidXRlKSB7XG4gICAgICB2YXIgcGhvZW5peExpbmtFdmVudCA9IG5ldyBQb2x5ZmlsbEV2ZW50KCdwaG9lbml4LmxpbmsuY2xpY2snLCB7XG4gICAgICAgIFwiYnViYmxlc1wiOiB0cnVlLCBcImNhbmNlbGFibGVcIjogdHJ1ZVxuICAgICAgfSk7XG5cbiAgICAgIGlmICghZWxlbWVudC5kaXNwYXRjaEV2ZW50KHBob2VuaXhMaW5rRXZlbnQpKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLW1ldGhvZFwiKSkge1xuICAgICAgICBoYW5kbGVDbGljayhlbGVtZW50LCBlLm1ldGFLZXkgfHwgZS5zaGlmdEtleSk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50Tm9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIGZhbHNlKTtcblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGhvZW5peC5saW5rLmNsaWNrJywgZnVuY3Rpb24gKGUpIHtcbiAgICB2YXIgbWVzc2FnZSA9IGUudGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtY29uZmlybVwiKTtcbiAgICBpZihtZXNzYWdlICYmICF3aW5kb3cuY29uZmlybShtZXNzYWdlKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfSwgZmFsc2UpO1xufSkoKTtcbiIsICIvLyB3cmFwcyB2YWx1ZSBpbiBjbG9zdXJlIG9yIHJldHVybnMgY2xvc3VyZVxuZXhwb3J0IGxldCBjbG9zdXJlID0gKHZhbHVlKSA9PiB7XG4gIGlmKHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiKXtcbiAgICByZXR1cm4gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBsZXQgY2xvc3VyZSA9IGZ1bmN0aW9uICgpeyByZXR1cm4gdmFsdWUgfVxuICAgIHJldHVybiBjbG9zdXJlXG4gIH1cbn1cbiIsICJleHBvcnQgY29uc3QgZ2xvYmFsU2VsZiA9IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IG51bGxcbmV4cG9ydCBjb25zdCBwaHhXaW5kb3cgPSB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDogbnVsbFxuZXhwb3J0IGNvbnN0IGdsb2JhbCA9IGdsb2JhbFNlbGYgfHwgcGh4V2luZG93IHx8IGdsb2JhbFxuZXhwb3J0IGNvbnN0IERFRkFVTFRfVlNOID0gXCIyLjAuMFwiXG5leHBvcnQgY29uc3QgU09DS0VUX1NUQVRFUyA9IHtjb25uZWN0aW5nOiAwLCBvcGVuOiAxLCBjbG9zaW5nOiAyLCBjbG9zZWQ6IDN9XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FT1VUID0gMTAwMDBcbmV4cG9ydCBjb25zdCBXU19DTE9TRV9OT1JNQUwgPSAxMDAwXG5leHBvcnQgY29uc3QgQ0hBTk5FTF9TVEFURVMgPSB7XG4gIGNsb3NlZDogXCJjbG9zZWRcIixcbiAgZXJyb3JlZDogXCJlcnJvcmVkXCIsXG4gIGpvaW5lZDogXCJqb2luZWRcIixcbiAgam9pbmluZzogXCJqb2luaW5nXCIsXG4gIGxlYXZpbmc6IFwibGVhdmluZ1wiLFxufVxuZXhwb3J0IGNvbnN0IENIQU5ORUxfRVZFTlRTID0ge1xuICBjbG9zZTogXCJwaHhfY2xvc2VcIixcbiAgZXJyb3I6IFwicGh4X2Vycm9yXCIsXG4gIGpvaW46IFwicGh4X2pvaW5cIixcbiAgcmVwbHk6IFwicGh4X3JlcGx5XCIsXG4gIGxlYXZlOiBcInBoeF9sZWF2ZVwiXG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU1BPUlRTID0ge1xuICBsb25ncG9sbDogXCJsb25ncG9sbFwiLFxuICB3ZWJzb2NrZXQ6IFwid2Vic29ja2V0XCJcbn1cbmV4cG9ydCBjb25zdCBYSFJfU1RBVEVTID0ge1xuICBjb21wbGV0ZTogNFxufVxuIiwgIi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIFB1c2hcbiAqIEBwYXJhbSB7Q2hhbm5lbH0gY2hhbm5lbCAtIFRoZSBDaGFubmVsXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQsIGZvciBleGFtcGxlIGBcInBoeF9qb2luXCJgXG4gKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZCAtIFRoZSBwYXlsb2FkLCBmb3IgZXhhbXBsZSBge3VzZXJfaWQ6IDEyM31gXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZW91dCAtIFRoZSBwdXNoIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFB1c2gge1xuICBjb25zdHJ1Y3RvcihjaGFubmVsLCBldmVudCwgcGF5bG9hZCwgdGltZW91dCl7XG4gICAgdGhpcy5jaGFubmVsID0gY2hhbm5lbFxuICAgIHRoaXMuZXZlbnQgPSBldmVudFxuICAgIHRoaXMucGF5bG9hZCA9IHBheWxvYWQgfHwgZnVuY3Rpb24gKCl7IHJldHVybiB7fSB9XG4gICAgdGhpcy5yZWNlaXZlZFJlc3AgPSBudWxsXG4gICAgdGhpcy50aW1lb3V0ID0gdGltZW91dFxuICAgIHRoaXMudGltZW91dFRpbWVyID0gbnVsbFxuICAgIHRoaXMucmVjSG9va3MgPSBbXVxuICAgIHRoaXMuc2VudCA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVvdXRcbiAgICovXG4gIHJlc2VuZCh0aW1lb3V0KXtcbiAgICB0aGlzLnRpbWVvdXQgPSB0aW1lb3V0XG4gICAgdGhpcy5yZXNldCgpXG4gICAgdGhpcy5zZW5kKClcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgc2VuZCgpe1xuICAgIGlmKHRoaXMuaGFzUmVjZWl2ZWQoXCJ0aW1lb3V0XCIpKXsgcmV0dXJuIH1cbiAgICB0aGlzLnN0YXJ0VGltZW91dCgpXG4gICAgdGhpcy5zZW50ID0gdHJ1ZVxuICAgIHRoaXMuY2hhbm5lbC5zb2NrZXQucHVzaCh7XG4gICAgICB0b3BpYzogdGhpcy5jaGFubmVsLnRvcGljLFxuICAgICAgZXZlbnQ6IHRoaXMuZXZlbnQsXG4gICAgICBwYXlsb2FkOiB0aGlzLnBheWxvYWQoKSxcbiAgICAgIHJlZjogdGhpcy5yZWYsXG4gICAgICBqb2luX3JlZjogdGhpcy5jaGFubmVsLmpvaW5SZWYoKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHsqfSBzdGF0dXNcbiAgICogQHBhcmFtIHsqfSBjYWxsYmFja1xuICAgKi9cbiAgcmVjZWl2ZShzdGF0dXMsIGNhbGxiYWNrKXtcbiAgICBpZih0aGlzLmhhc1JlY2VpdmVkKHN0YXR1cykpe1xuICAgICAgY2FsbGJhY2sodGhpcy5yZWNlaXZlZFJlc3AucmVzcG9uc2UpXG4gICAgfVxuXG4gICAgdGhpcy5yZWNIb29rcy5wdXNoKHtzdGF0dXMsIGNhbGxiYWNrfSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICByZXNldCgpe1xuICAgIHRoaXMuY2FuY2VsUmVmRXZlbnQoKVxuICAgIHRoaXMucmVmID0gbnVsbFxuICAgIHRoaXMucmVmRXZlbnQgPSBudWxsXG4gICAgdGhpcy5yZWNlaXZlZFJlc3AgPSBudWxsXG4gICAgdGhpcy5zZW50ID0gZmFsc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgbWF0Y2hSZWNlaXZlKHtzdGF0dXMsIHJlc3BvbnNlLCBfcmVmfSl7XG4gICAgdGhpcy5yZWNIb29rcy5maWx0ZXIoaCA9PiBoLnN0YXR1cyA9PT0gc3RhdHVzKVxuICAgICAgLmZvckVhY2goaCA9PiBoLmNhbGxiYWNrKHJlc3BvbnNlKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY2FuY2VsUmVmRXZlbnQoKXtcbiAgICBpZighdGhpcy5yZWZFdmVudCl7IHJldHVybiB9XG4gICAgdGhpcy5jaGFubmVsLm9mZih0aGlzLnJlZkV2ZW50KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjYW5jZWxUaW1lb3V0KCl7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFRpbWVyKVxuICAgIHRoaXMudGltZW91dFRpbWVyID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBzdGFydFRpbWVvdXQoKXtcbiAgICBpZih0aGlzLnRpbWVvdXRUaW1lcil7IHRoaXMuY2FuY2VsVGltZW91dCgpIH1cbiAgICB0aGlzLnJlZiA9IHRoaXMuY2hhbm5lbC5zb2NrZXQubWFrZVJlZigpXG4gICAgdGhpcy5yZWZFdmVudCA9IHRoaXMuY2hhbm5lbC5yZXBseUV2ZW50TmFtZSh0aGlzLnJlZilcblxuICAgIHRoaXMuY2hhbm5lbC5vbih0aGlzLnJlZkV2ZW50LCBwYXlsb2FkID0+IHtcbiAgICAgIHRoaXMuY2FuY2VsUmVmRXZlbnQoKVxuICAgICAgdGhpcy5jYW5jZWxUaW1lb3V0KClcbiAgICAgIHRoaXMucmVjZWl2ZWRSZXNwID0gcGF5bG9hZFxuICAgICAgdGhpcy5tYXRjaFJlY2VpdmUocGF5bG9hZClcbiAgICB9KVxuXG4gICAgdGhpcy50aW1lb3V0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlcihcInRpbWVvdXRcIiwge30pXG4gICAgfSwgdGhpcy50aW1lb3V0KVxuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBoYXNSZWNlaXZlZChzdGF0dXMpe1xuICAgIHJldHVybiB0aGlzLnJlY2VpdmVkUmVzcCAmJiB0aGlzLnJlY2VpdmVkUmVzcC5zdGF0dXMgPT09IHN0YXR1c1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICB0cmlnZ2VyKHN0YXR1cywgcmVzcG9uc2Upe1xuICAgIHRoaXMuY2hhbm5lbC50cmlnZ2VyKHRoaXMucmVmRXZlbnQsIHtzdGF0dXMsIHJlc3BvbnNlfSlcbiAgfVxufVxuIiwgIi8qKlxuICpcbiAqIENyZWF0ZXMgYSB0aW1lciB0aGF0IGFjY2VwdHMgYSBgdGltZXJDYWxjYCBmdW5jdGlvbiB0byBwZXJmb3JtXG4gKiBjYWxjdWxhdGVkIHRpbWVvdXQgcmV0cmllcywgc3VjaCBhcyBleHBvbmVudGlhbCBiYWNrb2ZmLlxuICpcbiAqIEBleGFtcGxlXG4gKiBsZXQgcmVjb25uZWN0VGltZXIgPSBuZXcgVGltZXIoKCkgPT4gdGhpcy5jb25uZWN0KCksIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgcmV0dXJuIFsxMDAwLCA1MDAwLCAxMDAwMF1bdHJpZXMgLSAxXSB8fCAxMDAwMFxuICogfSlcbiAqIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcbiAqIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDUwMDBcbiAqIHJlY29ubmVjdFRpbWVyLnJlc2V0KClcbiAqIHJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpIC8vIGZpcmVzIGFmdGVyIDEwMDBcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQHBhcmFtIHtGdW5jdGlvbn0gdGltZXJDYWxjXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpbWVyIHtcbiAgY29uc3RydWN0b3IoY2FsbGJhY2ssIHRpbWVyQ2FsYyl7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgdGhpcy50aW1lckNhbGMgPSB0aW1lckNhbGNcbiAgICB0aGlzLnRpbWVyID0gbnVsbFxuICAgIHRoaXMudHJpZXMgPSAwXG4gIH1cblxuICByZXNldCgpe1xuICAgIHRoaXMudHJpZXMgPSAwXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpXG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VscyBhbnkgcHJldmlvdXMgc2NoZWR1bGVUaW1lb3V0IGFuZCBzY2hlZHVsZXMgY2FsbGJhY2tcbiAgICovXG4gIHNjaGVkdWxlVGltZW91dCgpe1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKVxuXG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50cmllcyA9IHRoaXMudHJpZXMgKyAxXG4gICAgICB0aGlzLmNhbGxiYWNrKClcbiAgICB9LCB0aGlzLnRpbWVyQ2FsYyh0aGlzLnRyaWVzICsgMSkpXG4gIH1cbn1cbiIsICJpbXBvcnQge2Nsb3N1cmV9IGZyb20gXCIuL3V0aWxzXCJcbmltcG9ydCB7XG4gIENIQU5ORUxfRVZFTlRTLFxuICBDSEFOTkVMX1NUQVRFUyxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IFB1c2ggZnJvbSBcIi4vcHVzaFwiXG5pbXBvcnQgVGltZXIgZnJvbSBcIi4vdGltZXJcIlxuXG4vKipcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9waWNcbiAqIEBwYXJhbSB7KE9iamVjdHxmdW5jdGlvbil9IHBhcmFtc1xuICogQHBhcmFtIHtTb2NrZXR9IHNvY2tldFxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDaGFubmVsIHtcbiAgY29uc3RydWN0b3IodG9waWMsIHBhcmFtcywgc29ja2V0KXtcbiAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuY2xvc2VkXG4gICAgdGhpcy50b3BpYyA9IHRvcGljXG4gICAgdGhpcy5wYXJhbXMgPSBjbG9zdXJlKHBhcmFtcyB8fCB7fSlcbiAgICB0aGlzLnNvY2tldCA9IHNvY2tldFxuICAgIHRoaXMuYmluZGluZ3MgPSBbXVxuICAgIHRoaXMuYmluZGluZ1JlZiA9IDBcbiAgICB0aGlzLnRpbWVvdXQgPSB0aGlzLnNvY2tldC50aW1lb3V0XG4gICAgdGhpcy5qb2luZWRPbmNlID0gZmFsc2VcbiAgICB0aGlzLmpvaW5QdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMuam9pbiwgdGhpcy5wYXJhbXMsIHRoaXMudGltZW91dClcbiAgICB0aGlzLnB1c2hCdWZmZXIgPSBbXVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VSZWZzID0gW11cblxuICAgIHRoaXMucmVqb2luVGltZXIgPSBuZXcgVGltZXIoKCkgPT4ge1xuICAgICAgaWYodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSl7IHRoaXMucmVqb2luKCkgfVxuICAgIH0sIHRoaXMuc29ja2V0LnJlam9pbkFmdGVyTXMpXG4gICAgdGhpcy5zdGF0ZUNoYW5nZVJlZnMucHVzaCh0aGlzLnNvY2tldC5vbkVycm9yKCgpID0+IHRoaXMucmVqb2luVGltZXIucmVzZXQoKSkpXG4gICAgdGhpcy5zdGF0ZUNoYW5nZVJlZnMucHVzaCh0aGlzLnNvY2tldC5vbk9wZW4oKCkgPT4ge1xuICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpXG4gICAgICBpZih0aGlzLmlzRXJyb3JlZCgpKXsgdGhpcy5yZWpvaW4oKSB9XG4gICAgfSlcbiAgICApXG4gICAgdGhpcy5qb2luUHVzaC5yZWNlaXZlKFwib2tcIiwgKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmpvaW5lZFxuICAgICAgdGhpcy5yZWpvaW5UaW1lci5yZXNldCgpXG4gICAgICB0aGlzLnB1c2hCdWZmZXIuZm9yRWFjaChwdXNoRXZlbnQgPT4gcHVzaEV2ZW50LnNlbmQoKSlcbiAgICAgIHRoaXMucHVzaEJ1ZmZlciA9IFtdXG4gICAgfSlcbiAgICB0aGlzLmpvaW5QdXNoLnJlY2VpdmUoXCJlcnJvclwiLCAoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZFxuICAgICAgaWYodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSl7IHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgfVxuICAgIH0pXG4gICAgdGhpcy5vbkNsb3NlKCgpID0+IHtcbiAgICAgIHRoaXMucmVqb2luVGltZXIucmVzZXQoKVxuICAgICAgaWYodGhpcy5zb2NrZXQuaGFzTG9nZ2VyKCkpIHRoaXMuc29ja2V0LmxvZyhcImNoYW5uZWxcIiwgYGNsb3NlICR7dGhpcy50b3BpY30gJHt0aGlzLmpvaW5SZWYoKX1gKVxuICAgICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmNsb3NlZFxuICAgICAgdGhpcy5zb2NrZXQucmVtb3ZlKHRoaXMpXG4gICAgfSlcbiAgICB0aGlzLm9uRXJyb3IocmVhc29uID0+IHtcbiAgICAgIGlmKHRoaXMuc29ja2V0Lmhhc0xvZ2dlcigpKSB0aGlzLnNvY2tldC5sb2coXCJjaGFubmVsXCIsIGBlcnJvciAke3RoaXMudG9waWN9YCwgcmVhc29uKVxuICAgICAgaWYodGhpcy5pc0pvaW5pbmcoKSl7IHRoaXMuam9pblB1c2gucmVzZXQoKSB9XG4gICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZFxuICAgICAgaWYodGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSl7IHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCkgfVxuICAgIH0pXG4gICAgdGhpcy5qb2luUHVzaC5yZWNlaXZlKFwidGltZW91dFwiLCAoKSA9PiB7XG4gICAgICBpZih0aGlzLnNvY2tldC5oYXNMb2dnZXIoKSkgdGhpcy5zb2NrZXQubG9nKFwiY2hhbm5lbFwiLCBgdGltZW91dCAke3RoaXMudG9waWN9ICgke3RoaXMuam9pblJlZigpfSlgLCB0aGlzLmpvaW5QdXNoLnRpbWVvdXQpXG4gICAgICBsZXQgbGVhdmVQdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMubGVhdmUsIGNsb3N1cmUoe30pLCB0aGlzLnRpbWVvdXQpXG4gICAgICBsZWF2ZVB1c2guc2VuZCgpXG4gICAgICB0aGlzLnN0YXRlID0gQ0hBTk5FTF9TVEFURVMuZXJyb3JlZFxuICAgICAgdGhpcy5qb2luUHVzaC5yZXNldCgpXG4gICAgICBpZih0aGlzLnNvY2tldC5pc0Nvbm5lY3RlZCgpKXsgdGhpcy5yZWpvaW5UaW1lci5zY2hlZHVsZVRpbWVvdXQoKSB9XG4gICAgfSlcbiAgICB0aGlzLm9uKENIQU5ORUxfRVZFTlRTLnJlcGx5LCAocGF5bG9hZCwgcmVmKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIodGhpcy5yZXBseUV2ZW50TmFtZShyZWYpLCBwYXlsb2FkKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogSm9pbiB0aGUgY2hhbm5lbFxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWVvdXRcbiAgICogQHJldHVybnMge1B1c2h9XG4gICAqL1xuICBqb2luKHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpe1xuICAgIGlmKHRoaXMuam9pbmVkT25jZSl7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ0cmllZCB0byBqb2luIG11bHRpcGxlIHRpbWVzLiAnam9pbicgY2FuIG9ubHkgYmUgY2FsbGVkIGEgc2luZ2xlIHRpbWUgcGVyIGNoYW5uZWwgaW5zdGFuY2VcIilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50aW1lb3V0ID0gdGltZW91dFxuICAgICAgdGhpcy5qb2luZWRPbmNlID0gdHJ1ZVxuICAgICAgdGhpcy5yZWpvaW4oKVxuICAgICAgcmV0dXJuIHRoaXMuam9pblB1c2hcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSG9vayBpbnRvIGNoYW5uZWwgY2xvc2VcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIG9uQ2xvc2UoY2FsbGJhY2spe1xuICAgIHRoaXMub24oQ0hBTk5FTF9FVkVOVFMuY2xvc2UsIGNhbGxiYWNrKVxuICB9XG5cbiAgLyoqXG4gICAqIEhvb2sgaW50byBjaGFubmVsIGVycm9yc1xuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICAgKi9cbiAgb25FcnJvcihjYWxsYmFjayl7XG4gICAgcmV0dXJuIHRoaXMub24oQ0hBTk5FTF9FVkVOVFMuZXJyb3IsIHJlYXNvbiA9PiBjYWxsYmFjayhyZWFzb24pKVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgb24gY2hhbm5lbCBldmVudHNcbiAgICpcbiAgICogU3Vic2NyaXB0aW9uIHJldHVybnMgYSByZWYgY291bnRlciwgd2hpY2ggY2FuIGJlIHVzZWQgbGF0ZXIgdG9cbiAgICogdW5zdWJzY3JpYmUgdGhlIGV4YWN0IGV2ZW50IGxpc3RlbmVyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJlZjEgPSBjaGFubmVsLm9uKFwiZXZlbnRcIiwgZG9fc3R1ZmYpXG4gICAqIGNvbnN0IHJlZjIgPSBjaGFubmVsLm9uKFwiZXZlbnRcIiwgZG9fb3RoZXJfc3R1ZmYpXG4gICAqIGNoYW5uZWwub2ZmKFwiZXZlbnRcIiwgcmVmMSlcbiAgICogLy8gU2luY2UgdW5zdWJzY3JpcHRpb24sIGRvX3N0dWZmIHdvbid0IGZpcmUsXG4gICAqIC8vIHdoaWxlIGRvX290aGVyX3N0dWZmIHdpbGwga2VlcCBmaXJpbmcgb24gdGhlIFwiZXZlbnRcIlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICogQHJldHVybnMge2ludGVnZXJ9IHJlZlxuICAgKi9cbiAgb24oZXZlbnQsIGNhbGxiYWNrKXtcbiAgICBsZXQgcmVmID0gdGhpcy5iaW5kaW5nUmVmKytcbiAgICB0aGlzLmJpbmRpbmdzLnB1c2goe2V2ZW50LCByZWYsIGNhbGxiYWNrfSlcbiAgICByZXR1cm4gcmVmXG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmVzIG9mZiBvZiBjaGFubmVsIGV2ZW50c1xuICAgKlxuICAgKiBVc2UgdGhlIHJlZiByZXR1cm5lZCBmcm9tIGEgY2hhbm5lbC5vbigpIHRvIHVuc3Vic2NyaWJlIG9uZVxuICAgKiBoYW5kbGVyLCBvciBwYXNzIG5vdGhpbmcgZm9yIHRoZSByZWYgdG8gdW5zdWJzY3JpYmUgYWxsXG4gICAqIGhhbmRsZXJzIGZvciB0aGUgZ2l2ZW4gZXZlbnQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIC8vIFVuc3Vic2NyaWJlIHRoZSBkb19zdHVmZiBoYW5kbGVyXG4gICAqIGNvbnN0IHJlZjEgPSBjaGFubmVsLm9uKFwiZXZlbnRcIiwgZG9fc3R1ZmYpXG4gICAqIGNoYW5uZWwub2ZmKFwiZXZlbnRcIiwgcmVmMSlcbiAgICpcbiAgICogLy8gVW5zdWJzY3JpYmUgYWxsIGhhbmRsZXJzIGZyb20gZXZlbnRcbiAgICogY2hhbm5lbC5vZmYoXCJldmVudFwiKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSByZWZcbiAgICovXG4gIG9mZihldmVudCwgcmVmKXtcbiAgICB0aGlzLmJpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5maWx0ZXIoKGJpbmQpID0+IHtcbiAgICAgIHJldHVybiAhKGJpbmQuZXZlbnQgPT09IGV2ZW50ICYmICh0eXBlb2YgcmVmID09PSBcInVuZGVmaW5lZFwiIHx8IHJlZiA9PT0gYmluZC5yZWYpKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGNhblB1c2goKXsgcmV0dXJuIHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkgJiYgdGhpcy5pc0pvaW5lZCgpIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBtZXNzYWdlIGBldmVudGAgdG8gcGhvZW5peCB3aXRoIHRoZSBwYXlsb2FkIGBwYXlsb2FkYC5cbiAgICogUGhvZW5peCByZWNlaXZlcyB0aGlzIGluIHRoZSBgaGFuZGxlX2luKGV2ZW50LCBwYXlsb2FkLCBzb2NrZXQpYFxuICAgKiBmdW5jdGlvbi4gaWYgcGhvZW5peCByZXBsaWVzIG9yIGl0IHRpbWVzIG91dCAoZGVmYXVsdCAxMDAwMG1zKSxcbiAgICogdGhlbiBvcHRpb25hbGx5IHRoZSByZXBseSBjYW4gYmUgcmVjZWl2ZWQuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNoYW5uZWwucHVzaChcImV2ZW50XCIpXG4gICAqICAgLnJlY2VpdmUoXCJva1wiLCBwYXlsb2FkID0+IGNvbnNvbGUubG9nKFwicGhvZW5peCByZXBsaWVkOlwiLCBwYXlsb2FkKSlcbiAgICogICAucmVjZWl2ZShcImVycm9yXCIsIGVyciA9PiBjb25zb2xlLmxvZyhcInBob2VuaXggZXJyb3JlZFwiLCBlcnIpKVxuICAgKiAgIC5yZWNlaXZlKFwidGltZW91dFwiLCAoKSA9PiBjb25zb2xlLmxvZyhcInRpbWVkIG91dCBwdXNoaW5nXCIpKVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRcbiAgICogQHBhcmFtIHtPYmplY3R9IHBheWxvYWRcbiAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW1lb3V0XVxuICAgKiBAcmV0dXJucyB7UHVzaH1cbiAgICovXG4gIHB1c2goZXZlbnQsIHBheWxvYWQsIHRpbWVvdXQgPSB0aGlzLnRpbWVvdXQpe1xuICAgIHBheWxvYWQgPSBwYXlsb2FkIHx8IHt9XG4gICAgaWYoIXRoaXMuam9pbmVkT25jZSl7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHRyaWVkIHRvIHB1c2ggJyR7ZXZlbnR9JyB0byAnJHt0aGlzLnRvcGljfScgYmVmb3JlIGpvaW5pbmcuIFVzZSBjaGFubmVsLmpvaW4oKSBiZWZvcmUgcHVzaGluZyBldmVudHNgKVxuICAgIH1cbiAgICBsZXQgcHVzaEV2ZW50ID0gbmV3IFB1c2godGhpcywgZXZlbnQsIGZ1bmN0aW9uICgpeyByZXR1cm4gcGF5bG9hZCB9LCB0aW1lb3V0KVxuICAgIGlmKHRoaXMuY2FuUHVzaCgpKXtcbiAgICAgIHB1c2hFdmVudC5zZW5kKClcbiAgICB9IGVsc2Uge1xuICAgICAgcHVzaEV2ZW50LnN0YXJ0VGltZW91dCgpXG4gICAgICB0aGlzLnB1c2hCdWZmZXIucHVzaChwdXNoRXZlbnQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHB1c2hFdmVudFxuICB9XG5cbiAgLyoqIExlYXZlcyB0aGUgY2hhbm5lbFxuICAgKlxuICAgKiBVbnN1YnNjcmliZXMgZnJvbSBzZXJ2ZXIgZXZlbnRzLCBhbmRcbiAgICogaW5zdHJ1Y3RzIGNoYW5uZWwgdG8gdGVybWluYXRlIG9uIHNlcnZlclxuICAgKlxuICAgKiBUcmlnZ2VycyBvbkNsb3NlKCkgaG9va3NcbiAgICpcbiAgICogVG8gcmVjZWl2ZSBsZWF2ZSBhY2tub3dsZWRnZW1lbnRzLCB1c2UgdGhlIGByZWNlaXZlYFxuICAgKiBob29rIHRvIGJpbmQgdG8gdGhlIHNlcnZlciBhY2ssIGllOlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBjaGFubmVsLmxlYXZlKCkucmVjZWl2ZShcIm9rXCIsICgpID0+IGFsZXJ0KFwibGVmdCFcIikgKVxuICAgKlxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWVvdXRcbiAgICogQHJldHVybnMge1B1c2h9XG4gICAqL1xuICBsZWF2ZSh0aW1lb3V0ID0gdGhpcy50aW1lb3V0KXtcbiAgICB0aGlzLnJlam9pblRpbWVyLnJlc2V0KClcbiAgICB0aGlzLmpvaW5QdXNoLmNhbmNlbFRpbWVvdXQoKVxuXG4gICAgdGhpcy5zdGF0ZSA9IENIQU5ORUxfU1RBVEVTLmxlYXZpbmdcbiAgICBsZXQgb25DbG9zZSA9ICgpID0+IHtcbiAgICAgIGlmKHRoaXMuc29ja2V0Lmhhc0xvZ2dlcigpKSB0aGlzLnNvY2tldC5sb2coXCJjaGFubmVsXCIsIGBsZWF2ZSAke3RoaXMudG9waWN9YClcbiAgICAgIHRoaXMudHJpZ2dlcihDSEFOTkVMX0VWRU5UUy5jbG9zZSwgXCJsZWF2ZVwiKVxuICAgIH1cbiAgICBsZXQgbGVhdmVQdXNoID0gbmV3IFB1c2godGhpcywgQ0hBTk5FTF9FVkVOVFMubGVhdmUsIGNsb3N1cmUoe30pLCB0aW1lb3V0KVxuICAgIGxlYXZlUHVzaC5yZWNlaXZlKFwib2tcIiwgKCkgPT4gb25DbG9zZSgpKVxuICAgICAgLnJlY2VpdmUoXCJ0aW1lb3V0XCIsICgpID0+IG9uQ2xvc2UoKSlcbiAgICBsZWF2ZVB1c2guc2VuZCgpXG4gICAgaWYoIXRoaXMuY2FuUHVzaCgpKXsgbGVhdmVQdXNoLnRyaWdnZXIoXCJva1wiLCB7fSkgfVxuXG4gICAgcmV0dXJuIGxlYXZlUHVzaFxuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRhYmxlIG1lc3NhZ2UgaG9va1xuICAgKlxuICAgKiBSZWNlaXZlcyBhbGwgZXZlbnRzIGZvciBzcGVjaWFsaXplZCBtZXNzYWdlIGhhbmRsaW5nXG4gICAqIGJlZm9yZSBkaXNwYXRjaGluZyB0byB0aGUgY2hhbm5lbCBjYWxsYmFja3MuXG4gICAqXG4gICAqIE11c3QgcmV0dXJuIHRoZSBwYXlsb2FkLCBtb2RpZmllZCBvciB1bm1vZGlmaWVkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudFxuICAgKiBAcGFyYW0ge09iamVjdH0gcGF5bG9hZFxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IHJlZlxuICAgKiBAcmV0dXJucyB7T2JqZWN0fVxuICAgKi9cbiAgb25NZXNzYWdlKF9ldmVudCwgcGF5bG9hZCwgX3JlZil7IHJldHVybiBwYXlsb2FkIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGlzTWVtYmVyKHRvcGljLCBldmVudCwgcGF5bG9hZCwgam9pblJlZil7XG4gICAgaWYodGhpcy50b3BpYyAhPT0gdG9waWMpeyByZXR1cm4gZmFsc2UgfVxuXG4gICAgaWYoam9pblJlZiAmJiBqb2luUmVmICE9PSB0aGlzLmpvaW5SZWYoKSl7XG4gICAgICBpZih0aGlzLnNvY2tldC5oYXNMb2dnZXIoKSkgdGhpcy5zb2NrZXQubG9nKFwiY2hhbm5lbFwiLCBcImRyb3BwaW5nIG91dGRhdGVkIG1lc3NhZ2VcIiwge3RvcGljLCBldmVudCwgcGF5bG9hZCwgam9pblJlZn0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGpvaW5SZWYoKXsgcmV0dXJuIHRoaXMuam9pblB1c2gucmVmIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJlam9pbih0aW1lb3V0ID0gdGhpcy50aW1lb3V0KXtcbiAgICBpZih0aGlzLmlzTGVhdmluZygpKXsgcmV0dXJuIH1cbiAgICB0aGlzLnNvY2tldC5sZWF2ZU9wZW5Ub3BpYyh0aGlzLnRvcGljKVxuICAgIHRoaXMuc3RhdGUgPSBDSEFOTkVMX1NUQVRFUy5qb2luaW5nXG4gICAgdGhpcy5qb2luUHVzaC5yZXNlbmQodGltZW91dClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdHJpZ2dlcihldmVudCwgcGF5bG9hZCwgcmVmLCBqb2luUmVmKXtcbiAgICBsZXQgaGFuZGxlZFBheWxvYWQgPSB0aGlzLm9uTWVzc2FnZShldmVudCwgcGF5bG9hZCwgcmVmLCBqb2luUmVmKVxuICAgIGlmKHBheWxvYWQgJiYgIWhhbmRsZWRQYXlsb2FkKXsgdGhyb3cgbmV3IEVycm9yKFwiY2hhbm5lbCBvbk1lc3NhZ2UgY2FsbGJhY2tzIG11c3QgcmV0dXJuIHRoZSBwYXlsb2FkLCBtb2RpZmllZCBvciB1bm1vZGlmaWVkXCIpIH1cblxuICAgIGxldCBldmVudEJpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5maWx0ZXIoYmluZCA9PiBiaW5kLmV2ZW50ID09PSBldmVudClcblxuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBldmVudEJpbmRpbmdzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGxldCBiaW5kID0gZXZlbnRCaW5kaW5nc1tpXVxuICAgICAgYmluZC5jYWxsYmFjayhoYW5kbGVkUGF5bG9hZCwgcmVmLCBqb2luUmVmIHx8IHRoaXMuam9pblJlZigpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcmVwbHlFdmVudE5hbWUocmVmKXsgcmV0dXJuIGBjaGFuX3JlcGx5XyR7cmVmfWAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaXNDbG9zZWQoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmNsb3NlZCB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBpc0Vycm9yZWQoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmVycm9yZWQgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaXNKb2luZWQoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5lZCB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBpc0pvaW5pbmcoKXsgcmV0dXJuIHRoaXMuc3RhdGUgPT09IENIQU5ORUxfU1RBVEVTLmpvaW5pbmcgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaXNMZWF2aW5nKCl7IHJldHVybiB0aGlzLnN0YXRlID09PSBDSEFOTkVMX1NUQVRFUy5sZWF2aW5nIH1cbn1cbiIsICJpbXBvcnQge1xuICBnbG9iYWwsXG4gIFhIUl9TVEFURVNcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWpheCB7XG5cbiAgc3RhdGljIHJlcXVlc3QobWV0aG9kLCBlbmRQb2ludCwgYWNjZXB0LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICBpZihnbG9iYWwuWERvbWFpblJlcXVlc3Qpe1xuICAgICAgbGV0IHJlcSA9IG5ldyBnbG9iYWwuWERvbWFpblJlcXVlc3QoKSAvLyBJRTgsIElFOVxuICAgICAgcmV0dXJuIHRoaXMueGRvbWFpblJlcXVlc3QocmVxLCBtZXRob2QsIGVuZFBvaW50LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcmVxID0gbmV3IGdsb2JhbC5YTUxIdHRwUmVxdWVzdCgpIC8vIElFNyssIEZpcmVmb3gsIENocm9tZSwgT3BlcmEsIFNhZmFyaVxuICAgICAgcmV0dXJuIHRoaXMueGhyUmVxdWVzdChyZXEsIG1ldGhvZCwgZW5kUG9pbnQsIGFjY2VwdCwgYm9keSwgdGltZW91dCwgb250aW1lb3V0LCBjYWxsYmFjaylcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgeGRvbWFpblJlcXVlc3QocmVxLCBtZXRob2QsIGVuZFBvaW50LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICByZXEudGltZW91dCA9IHRpbWVvdXRcbiAgICByZXEub3BlbihtZXRob2QsIGVuZFBvaW50KVxuICAgIHJlcS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBsZXQgcmVzcG9uc2UgPSB0aGlzLnBhcnNlSlNPTihyZXEucmVzcG9uc2VUZXh0KVxuICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzcG9uc2UpXG4gICAgfVxuICAgIGlmKG9udGltZW91dCl7IHJlcS5vbnRpbWVvdXQgPSBvbnRpbWVvdXQgfVxuXG4gICAgLy8gV29yayBhcm91bmQgYnVnIGluIElFOSB0aGF0IHJlcXVpcmVzIGFuIGF0dGFjaGVkIG9ucHJvZ3Jlc3MgaGFuZGxlclxuICAgIHJlcS5vbnByb2dyZXNzID0gKCkgPT4geyB9XG5cbiAgICByZXEuc2VuZChib2R5KVxuICAgIHJldHVybiByZXFcbiAgfVxuXG4gIHN0YXRpYyB4aHJSZXF1ZXN0KHJlcSwgbWV0aG9kLCBlbmRQb2ludCwgYWNjZXB0LCBib2R5LCB0aW1lb3V0LCBvbnRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICByZXEub3BlbihtZXRob2QsIGVuZFBvaW50LCB0cnVlKVxuICAgIHJlcS50aW1lb3V0ID0gdGltZW91dFxuICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKFwiQ29udGVudC1UeXBlXCIsIGFjY2VwdClcbiAgICByZXEub25lcnJvciA9ICgpID0+IGNhbGxiYWNrICYmIGNhbGxiYWNrKG51bGwpXG4gICAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGlmKHJlcS5yZWFkeVN0YXRlID09PSBYSFJfU1RBVEVTLmNvbXBsZXRlICYmIGNhbGxiYWNrKXtcbiAgICAgICAgbGV0IHJlc3BvbnNlID0gdGhpcy5wYXJzZUpTT04ocmVxLnJlc3BvbnNlVGV4dClcbiAgICAgICAgY2FsbGJhY2socmVzcG9uc2UpXG4gICAgICB9XG4gICAgfVxuICAgIGlmKG9udGltZW91dCl7IHJlcS5vbnRpbWVvdXQgPSBvbnRpbWVvdXQgfVxuXG4gICAgcmVxLnNlbmQoYm9keSlcbiAgICByZXR1cm4gcmVxXG4gIH1cblxuICBzdGF0aWMgcGFyc2VKU09OKHJlc3Ape1xuICAgIGlmKCFyZXNwIHx8IHJlc3AgPT09IFwiXCIpeyByZXR1cm4gbnVsbCB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmVzcClcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgIGNvbnNvbGUgJiYgY29uc29sZS5sb2coXCJmYWlsZWQgdG8gcGFyc2UgSlNPTiByZXNwb25zZVwiLCByZXNwKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgc2VyaWFsaXplKG9iaiwgcGFyZW50S2V5KXtcbiAgICBsZXQgcXVlcnlTdHIgPSBbXVxuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICBpZighT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSl7IGNvbnRpbnVlIH1cbiAgICAgIGxldCBwYXJhbUtleSA9IHBhcmVudEtleSA/IGAke3BhcmVudEtleX1bJHtrZXl9XWAgOiBrZXlcbiAgICAgIGxldCBwYXJhbVZhbCA9IG9ialtrZXldXG4gICAgICBpZih0eXBlb2YgcGFyYW1WYWwgPT09IFwib2JqZWN0XCIpe1xuICAgICAgICBxdWVyeVN0ci5wdXNoKHRoaXMuc2VyaWFsaXplKHBhcmFtVmFsLCBwYXJhbUtleSkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVN0ci5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChwYXJhbUtleSkgKyBcIj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbVZhbCkpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBxdWVyeVN0ci5qb2luKFwiJlwiKVxuICB9XG5cbiAgc3RhdGljIGFwcGVuZFBhcmFtcyh1cmwsIHBhcmFtcyl7XG4gICAgaWYoT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPT09IDApeyByZXR1cm4gdXJsIH1cblxuICAgIGxldCBwcmVmaXggPSB1cmwubWF0Y2goL1xcPy8pID8gXCImXCIgOiBcIj9cIlxuICAgIHJldHVybiBgJHt1cmx9JHtwcmVmaXh9JHt0aGlzLnNlcmlhbGl6ZShwYXJhbXMpfWBcbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIFNPQ0tFVF9TVEFURVMsXG4gIFRSQU5TUE9SVFNcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IEFqYXggZnJvbSBcIi4vYWpheFwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvbmdQb2xsIHtcblxuICBjb25zdHJ1Y3RvcihlbmRQb2ludCl7XG4gICAgdGhpcy5lbmRQb2ludCA9IG51bGxcbiAgICB0aGlzLnRva2VuID0gbnVsbFxuICAgIHRoaXMuc2tpcEhlYXJ0YmVhdCA9IHRydWVcbiAgICB0aGlzLnJlcXMgPSBuZXcgU2V0KClcbiAgICB0aGlzLm9ub3BlbiA9IGZ1bmN0aW9uICgpeyB9IC8vIG5vb3BcbiAgICB0aGlzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgdGhpcy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgdGhpcy5vbmNsb3NlID0gZnVuY3Rpb24gKCl7IH0gLy8gbm9vcFxuICAgIHRoaXMucG9sbEVuZHBvaW50ID0gdGhpcy5ub3JtYWxpemVFbmRwb2ludChlbmRQb2ludClcbiAgICB0aGlzLnJlYWR5U3RhdGUgPSBTT0NLRVRfU1RBVEVTLmNvbm5lY3RpbmdcbiAgICB0aGlzLnBvbGwoKVxuICB9XG5cbiAgbm9ybWFsaXplRW5kcG9pbnQoZW5kUG9pbnQpe1xuICAgIHJldHVybiAoZW5kUG9pbnRcbiAgICAgIC5yZXBsYWNlKFwid3M6Ly9cIiwgXCJodHRwOi8vXCIpXG4gICAgICAucmVwbGFjZShcIndzczovL1wiLCBcImh0dHBzOi8vXCIpXG4gICAgICAucmVwbGFjZShuZXcgUmVnRXhwKFwiKC4qKVxcL1wiICsgVFJBTlNQT1JUUy53ZWJzb2NrZXQpLCBcIiQxL1wiICsgVFJBTlNQT1JUUy5sb25ncG9sbCkpXG4gIH1cblxuICBlbmRwb2ludFVSTCgpe1xuICAgIHJldHVybiBBamF4LmFwcGVuZFBhcmFtcyh0aGlzLnBvbGxFbmRwb2ludCwge3Rva2VuOiB0aGlzLnRva2VufSlcbiAgfVxuXG4gIGNsb3NlQW5kUmV0cnkoY29kZSwgcmVhc29uLCB3YXNDbGVhbil7XG4gICAgdGhpcy5jbG9zZShjb2RlLCByZWFzb24sIHdhc0NsZWFuKVxuICAgIHRoaXMucmVhZHlTdGF0ZSA9IFNPQ0tFVF9TVEFURVMuY29ubmVjdGluZ1xuICB9XG5cbiAgb250aW1lb3V0KCl7XG4gICAgdGhpcy5vbmVycm9yKFwidGltZW91dFwiKVxuICAgIHRoaXMuY2xvc2VBbmRSZXRyeSgxMDA1LCBcInRpbWVvdXRcIiwgZmFsc2UpXG4gIH1cblxuICBpc0FjdGl2ZSgpeyByZXR1cm4gdGhpcy5yZWFkeVN0YXRlID09PSBTT0NLRVRfU1RBVEVTLm9wZW4gfHwgdGhpcy5yZWFkeVN0YXRlID09PSBTT0NLRVRfU1RBVEVTLmNvbm5lY3RpbmcgfVxuXG4gIHBvbGwoKXtcbiAgICB0aGlzLmFqYXgoXCJHRVRcIiwgbnVsbCwgKCkgPT4gdGhpcy5vbnRpbWVvdXQoKSwgcmVzcCA9PiB7XG4gICAgICBpZihyZXNwKXtcbiAgICAgICAgdmFyIHtzdGF0dXMsIHRva2VuLCBtZXNzYWdlc30gPSByZXNwXG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdHVzID0gMFxuICAgICAgfVxuXG4gICAgICBzd2l0Y2goc3RhdHVzKXtcbiAgICAgICAgY2FzZSAyMDA6XG4gICAgICAgICAgbWVzc2FnZXMuZm9yRWFjaChtc2cgPT4ge1xuICAgICAgICAgICAgLy8gVGFza3MgYXJlIHdoYXQgdGhpbmdzIGxpa2UgZXZlbnQgaGFuZGxlcnMsIHNldFRpbWVvdXQgY2FsbGJhY2tzLFxuICAgICAgICAgICAgLy8gcHJvbWlzZSByZXNvbHZlcyBhbmQgbW9yZSBhcmUgcnVuIHdpdGhpbi5cbiAgICAgICAgICAgIC8vIEluIG1vZGVybiBicm93c2VycywgdGhlcmUgYXJlIHR3byBkaWZmZXJlbnQga2luZHMgb2YgdGFza3MsXG4gICAgICAgICAgICAvLyBtaWNyb3Rhc2tzIGFuZCBtYWNyb3Rhc2tzLlxuICAgICAgICAgICAgLy8gTWljcm90YXNrcyBhcmUgbWFpbmx5IHVzZWQgZm9yIFByb21pc2VzLCB3aGlsZSBtYWNyb3Rhc2tzIGFyZVxuICAgICAgICAgICAgLy8gdXNlZCBmb3IgZXZlcnl0aGluZyBlbHNlLlxuICAgICAgICAgICAgLy8gTWljcm90YXNrcyBhbHdheXMgaGF2ZSBwcmlvcml0eSBvdmVyIG1hY3JvdGFza3MuIElmIHRoZSBKUyBlbmdpbmVcbiAgICAgICAgICAgIC8vIGlzIGxvb2tpbmcgZm9yIGEgdGFzayB0byBydW4sIGl0IHdpbGwgYWx3YXlzIHRyeSB0byBlbXB0eSB0aGVcbiAgICAgICAgICAgIC8vIG1pY3JvdGFzayBxdWV1ZSBiZWZvcmUgYXR0ZW1wdGluZyB0byBydW4gYW55dGhpbmcgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIG1hY3JvdGFzayBxdWV1ZS5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBGb3IgdGhlIFdlYlNvY2tldCB0cmFuc3BvcnQsIG1lc3NhZ2VzIGFsd2F5cyBhcnJpdmUgaW4gdGhlaXIgb3duXG4gICAgICAgICAgICAvLyBldmVudC4gVGhpcyBtZWFucyB0aGF0IGlmIGFueSBwcm9taXNlcyBhcmUgcmVzb2x2ZWQgZnJvbSB3aXRoaW4sXG4gICAgICAgICAgICAvLyB0aGVpciBjYWxsYmFja3Mgd2lsbCBhbHdheXMgZmluaXNoIGV4ZWN1dGlvbiBieSB0aGUgdGltZSB0aGVcbiAgICAgICAgICAgIC8vIG5leHQgbWVzc2FnZSBldmVudCBoYW5kbGVyIGlzIHJ1bi5cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBJbiBvcmRlciB0byBlbXVsYXRlIHRoaXMgYmVoYXZpb3VyLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBlYWNoXG4gICAgICAgICAgICAvLyBvbm1lc3NhZ2UgaGFuZGxlciBpcyBydW4gd2l0aGluIGl0J3Mgb3duIG1hY3JvdGFzay5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5vbm1lc3NhZ2Uoe2RhdGE6IG1zZ30pLCAwKVxuICAgICAgICAgIH0pXG4gICAgICAgICAgdGhpcy5wb2xsKClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDIwNDpcbiAgICAgICAgICB0aGlzLnBvbGwoKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgNDEwOlxuICAgICAgICAgIHRoaXMucmVhZHlTdGF0ZSA9IFNPQ0tFVF9TVEFURVMub3BlblxuICAgICAgICAgIHRoaXMub25vcGVuKHt9KVxuICAgICAgICAgIHRoaXMucG9sbCgpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgdGhpcy5vbmVycm9yKDQwMylcbiAgICAgICAgICB0aGlzLmNsb3NlKDEwMDgsIFwiZm9yYmlkZGVuXCIsIGZhbHNlKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSA1MDA6XG4gICAgICAgICAgdGhpcy5vbmVycm9yKDUwMClcbiAgICAgICAgICB0aGlzLmNsb3NlQW5kUmV0cnkoMTAxMSwgXCJpbnRlcm5hbCBzZXJ2ZXIgZXJyb3JcIiwgNTAwKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGRlZmF1bHQ6IHRocm93IG5ldyBFcnJvcihgdW5oYW5kbGVkIHBvbGwgc3RhdHVzICR7c3RhdHVzfWApXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNlbmQoYm9keSl7XG4gICAgdGhpcy5hamF4KFwiUE9TVFwiLCBib2R5LCAoKSA9PiB0aGlzLm9uZXJyb3IoXCJ0aW1lb3V0XCIpLCByZXNwID0+IHtcbiAgICAgIGlmKCFyZXNwIHx8IHJlc3Auc3RhdHVzICE9PSAyMDApe1xuICAgICAgICB0aGlzLm9uZXJyb3IocmVzcCAmJiByZXNwLnN0YXR1cylcbiAgICAgICAgdGhpcy5jbG9zZUFuZFJldHJ5KDEwMTEsIFwiaW50ZXJuYWwgc2VydmVyIGVycm9yXCIsIGZhbHNlKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjbG9zZShjb2RlLCByZWFzb24sIHdhc0NsZWFuKXtcbiAgICBmb3IobGV0IHJlcSBvZiB0aGlzLnJlcXMpeyByZXEuYWJvcnQoKSB9XG4gICAgdGhpcy5yZWFkeVN0YXRlID0gU09DS0VUX1NUQVRFUy5jbG9zZWRcbiAgICBsZXQgb3B0cyA9IE9iamVjdC5hc3NpZ24oe2NvZGU6IDEwMDAsIHJlYXNvbjogdW5kZWZpbmVkLCB3YXNDbGVhbjogdHJ1ZX0sIHtjb2RlLCByZWFzb24sIHdhc0NsZWFufSlcbiAgICBpZih0eXBlb2YoQ2xvc2VFdmVudCkgIT09IFwidW5kZWZpbmVkXCIpe1xuICAgICAgdGhpcy5vbmNsb3NlKG5ldyBDbG9zZUV2ZW50KFwiY2xvc2VcIiwgb3B0cykpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25jbG9zZShvcHRzKVxuICAgIH1cbiAgfVxuXG4gIGFqYXgobWV0aG9kLCBib2R5LCBvbkNhbGxlclRpbWVvdXQsIGNhbGxiYWNrKXtcbiAgICBsZXQgcmVxXG4gICAgbGV0IG9udGltZW91dCA9ICgpID0+IHtcbiAgICAgIHRoaXMucmVxcy5kZWxldGUocmVxKVxuICAgICAgb25DYWxsZXJUaW1lb3V0KClcbiAgICB9XG4gICAgcmVxID0gQWpheC5yZXF1ZXN0KG1ldGhvZCwgdGhpcy5lbmRwb2ludFVSTCgpLCBcImFwcGxpY2F0aW9uL2pzb25cIiwgYm9keSwgdGhpcy50aW1lb3V0LCBvbnRpbWVvdXQsIHJlc3AgPT4ge1xuICAgICAgdGhpcy5yZXFzLmRlbGV0ZShyZXEpXG4gICAgICBpZih0aGlzLmlzQWN0aXZlKCkpeyBjYWxsYmFjayhyZXNwKSB9XG4gICAgfSlcbiAgICB0aGlzLnJlcXMuYWRkKHJlcSlcbiAgfVxufVxuIiwgIi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIFByZXNlbmNlXG4gKiBAcGFyYW0ge0NoYW5uZWx9IGNoYW5uZWwgLSBUaGUgQ2hhbm5lbFxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBUaGUgb3B0aW9ucyxcbiAqICAgICAgICBmb3IgZXhhbXBsZSBge2V2ZW50czoge3N0YXRlOiBcInN0YXRlXCIsIGRpZmY6IFwiZGlmZlwifX1gXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByZXNlbmNlIHtcblxuICBjb25zdHJ1Y3RvcihjaGFubmVsLCBvcHRzID0ge30pe1xuICAgIGxldCBldmVudHMgPSBvcHRzLmV2ZW50cyB8fCB7c3RhdGU6IFwicHJlc2VuY2Vfc3RhdGVcIiwgZGlmZjogXCJwcmVzZW5jZV9kaWZmXCJ9XG4gICAgdGhpcy5zdGF0ZSA9IHt9XG4gICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXVxuICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWxcbiAgICB0aGlzLmpvaW5SZWYgPSBudWxsXG4gICAgdGhpcy5jYWxsZXIgPSB7XG4gICAgICBvbkpvaW46IGZ1bmN0aW9uICgpeyB9LFxuICAgICAgb25MZWF2ZTogZnVuY3Rpb24gKCl7IH0sXG4gICAgICBvblN5bmM6IGZ1bmN0aW9uICgpeyB9XG4gICAgfVxuXG4gICAgdGhpcy5jaGFubmVsLm9uKGV2ZW50cy5zdGF0ZSwgbmV3U3RhdGUgPT4ge1xuICAgICAgbGV0IHtvbkpvaW4sIG9uTGVhdmUsIG9uU3luY30gPSB0aGlzLmNhbGxlclxuXG4gICAgICB0aGlzLmpvaW5SZWYgPSB0aGlzLmNoYW5uZWwuam9pblJlZigpXG4gICAgICB0aGlzLnN0YXRlID0gUHJlc2VuY2Uuc3luY1N0YXRlKHRoaXMuc3RhdGUsIG5ld1N0YXRlLCBvbkpvaW4sIG9uTGVhdmUpXG5cbiAgICAgIHRoaXMucGVuZGluZ0RpZmZzLmZvckVhY2goZGlmZiA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpXG4gICAgICB9KVxuICAgICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXVxuICAgICAgb25TeW5jKClcbiAgICB9KVxuXG4gICAgdGhpcy5jaGFubmVsLm9uKGV2ZW50cy5kaWZmLCBkaWZmID0+IHtcbiAgICAgIGxldCB7b25Kb2luLCBvbkxlYXZlLCBvblN5bmN9ID0gdGhpcy5jYWxsZXJcblxuICAgICAgaWYodGhpcy5pblBlbmRpbmdTeW5jU3RhdGUoKSl7XG4gICAgICAgIHRoaXMucGVuZGluZ0RpZmZzLnB1c2goZGlmZilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBQcmVzZW5jZS5zeW5jRGlmZih0aGlzLnN0YXRlLCBkaWZmLCBvbkpvaW4sIG9uTGVhdmUpXG4gICAgICAgIG9uU3luYygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uSm9pbihjYWxsYmFjayl7IHRoaXMuY2FsbGVyLm9uSm9pbiA9IGNhbGxiYWNrIH1cblxuICBvbkxlYXZlKGNhbGxiYWNrKXsgdGhpcy5jYWxsZXIub25MZWF2ZSA9IGNhbGxiYWNrIH1cblxuICBvblN5bmMoY2FsbGJhY2speyB0aGlzLmNhbGxlci5vblN5bmMgPSBjYWxsYmFjayB9XG5cbiAgbGlzdChieSl7IHJldHVybiBQcmVzZW5jZS5saXN0KHRoaXMuc3RhdGUsIGJ5KSB9XG5cbiAgaW5QZW5kaW5nU3luY1N0YXRlKCl7XG4gICAgcmV0dXJuICF0aGlzLmpvaW5SZWYgfHwgKHRoaXMuam9pblJlZiAhPT0gdGhpcy5jaGFubmVsLmpvaW5SZWYoKSlcbiAgfVxuXG4gIC8vIGxvd2VyLWxldmVsIHB1YmxpYyBzdGF0aWMgQVBJXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3luYyB0aGUgbGlzdCBvZiBwcmVzZW5jZXMgb24gdGhlIHNlcnZlclxuICAgKiB3aXRoIHRoZSBjbGllbnQncyBzdGF0ZS4gQW4gb3B0aW9uYWwgYG9uSm9pbmAgYW5kIGBvbkxlYXZlYCBjYWxsYmFjayBjYW5cbiAgICogYmUgcHJvdmlkZWQgdG8gcmVhY3QgdG8gY2hhbmdlcyBpbiB0aGUgY2xpZW50J3MgbG9jYWwgcHJlc2VuY2VzIGFjcm9zc1xuICAgKiBkaXNjb25uZWN0cyBhbmQgcmVjb25uZWN0cyB3aXRoIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcmVzZW5jZX1cbiAgICovXG4gIHN0YXRpYyBzeW5jU3RhdGUoY3VycmVudFN0YXRlLCBuZXdTdGF0ZSwgb25Kb2luLCBvbkxlYXZlKXtcbiAgICBsZXQgc3RhdGUgPSB0aGlzLmNsb25lKGN1cnJlbnRTdGF0ZSlcbiAgICBsZXQgam9pbnMgPSB7fVxuICAgIGxldCBsZWF2ZXMgPSB7fVxuXG4gICAgdGhpcy5tYXAoc3RhdGUsIChrZXksIHByZXNlbmNlKSA9PiB7XG4gICAgICBpZighbmV3U3RhdGVba2V5XSl7XG4gICAgICAgIGxlYXZlc1trZXldID0gcHJlc2VuY2VcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMubWFwKG5ld1N0YXRlLCAoa2V5LCBuZXdQcmVzZW5jZSkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnRQcmVzZW5jZSA9IHN0YXRlW2tleV1cbiAgICAgIGlmKGN1cnJlbnRQcmVzZW5jZSl7XG4gICAgICAgIGxldCBuZXdSZWZzID0gbmV3UHJlc2VuY2UubWV0YXMubWFwKG0gPT4gbS5waHhfcmVmKVxuICAgICAgICBsZXQgY3VyUmVmcyA9IGN1cnJlbnRQcmVzZW5jZS5tZXRhcy5tYXAobSA9PiBtLnBoeF9yZWYpXG4gICAgICAgIGxldCBqb2luZWRNZXRhcyA9IG5ld1ByZXNlbmNlLm1ldGFzLmZpbHRlcihtID0+IGN1clJlZnMuaW5kZXhPZihtLnBoeF9yZWYpIDwgMClcbiAgICAgICAgbGV0IGxlZnRNZXRhcyA9IGN1cnJlbnRQcmVzZW5jZS5tZXRhcy5maWx0ZXIobSA9PiBuZXdSZWZzLmluZGV4T2YobS5waHhfcmVmKSA8IDApXG4gICAgICAgIGlmKGpvaW5lZE1ldGFzLmxlbmd0aCA+IDApe1xuICAgICAgICAgIGpvaW5zW2tleV0gPSBuZXdQcmVzZW5jZVxuICAgICAgICAgIGpvaW5zW2tleV0ubWV0YXMgPSBqb2luZWRNZXRhc1xuICAgICAgICB9XG4gICAgICAgIGlmKGxlZnRNZXRhcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICBsZWF2ZXNba2V5XSA9IHRoaXMuY2xvbmUoY3VycmVudFByZXNlbmNlKVxuICAgICAgICAgIGxlYXZlc1trZXldLm1ldGFzID0gbGVmdE1ldGFzXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGpvaW5zW2tleV0gPSBuZXdQcmVzZW5jZVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMuc3luY0RpZmYoc3RhdGUsIHtqb2luczogam9pbnMsIGxlYXZlczogbGVhdmVzfSwgb25Kb2luLCBvbkxlYXZlKVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFVzZWQgdG8gc3luYyBhIGRpZmYgb2YgcHJlc2VuY2Ugam9pbiBhbmQgbGVhdmVcbiAgICogZXZlbnRzIGZyb20gdGhlIHNlcnZlciwgYXMgdGhleSBoYXBwZW4uIExpa2UgYHN5bmNTdGF0ZWAsIGBzeW5jRGlmZmBcbiAgICogYWNjZXB0cyBvcHRpb25hbCBgb25Kb2luYCBhbmQgYG9uTGVhdmVgIGNhbGxiYWNrcyB0byByZWFjdCB0byBhIHVzZXJcbiAgICogam9pbmluZyBvciBsZWF2aW5nIGZyb20gYSBkZXZpY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcmVzZW5jZX1cbiAgICovXG4gIHN0YXRpYyBzeW5jRGlmZihzdGF0ZSwgZGlmZiwgb25Kb2luLCBvbkxlYXZlKXtcbiAgICBsZXQge2pvaW5zLCBsZWF2ZXN9ID0gdGhpcy5jbG9uZShkaWZmKVxuICAgIGlmKCFvbkpvaW4peyBvbkpvaW4gPSBmdW5jdGlvbiAoKXsgfSB9XG4gICAgaWYoIW9uTGVhdmUpeyBvbkxlYXZlID0gZnVuY3Rpb24gKCl7IH0gfVxuXG4gICAgdGhpcy5tYXAoam9pbnMsIChrZXksIG5ld1ByZXNlbmNlKSA9PiB7XG4gICAgICBsZXQgY3VycmVudFByZXNlbmNlID0gc3RhdGVba2V5XVxuICAgICAgc3RhdGVba2V5XSA9IHRoaXMuY2xvbmUobmV3UHJlc2VuY2UpXG4gICAgICBpZihjdXJyZW50UHJlc2VuY2Upe1xuICAgICAgICBsZXQgam9pbmVkUmVmcyA9IHN0YXRlW2tleV0ubWV0YXMubWFwKG0gPT4gbS5waHhfcmVmKVxuICAgICAgICBsZXQgY3VyTWV0YXMgPSBjdXJyZW50UHJlc2VuY2UubWV0YXMuZmlsdGVyKG0gPT4gam9pbmVkUmVmcy5pbmRleE9mKG0ucGh4X3JlZikgPCAwKVxuICAgICAgICBzdGF0ZVtrZXldLm1ldGFzLnVuc2hpZnQoLi4uY3VyTWV0YXMpXG4gICAgICB9XG4gICAgICBvbkpvaW4oa2V5LCBjdXJyZW50UHJlc2VuY2UsIG5ld1ByZXNlbmNlKVxuICAgIH0pXG4gICAgdGhpcy5tYXAobGVhdmVzLCAoa2V5LCBsZWZ0UHJlc2VuY2UpID0+IHtcbiAgICAgIGxldCBjdXJyZW50UHJlc2VuY2UgPSBzdGF0ZVtrZXldXG4gICAgICBpZighY3VycmVudFByZXNlbmNlKXsgcmV0dXJuIH1cbiAgICAgIGxldCByZWZzVG9SZW1vdmUgPSBsZWZ0UHJlc2VuY2UubWV0YXMubWFwKG0gPT4gbS5waHhfcmVmKVxuICAgICAgY3VycmVudFByZXNlbmNlLm1ldGFzID0gY3VycmVudFByZXNlbmNlLm1ldGFzLmZpbHRlcihwID0+IHtcbiAgICAgICAgcmV0dXJuIHJlZnNUb1JlbW92ZS5pbmRleE9mKHAucGh4X3JlZikgPCAwXG4gICAgICB9KVxuICAgICAgb25MZWF2ZShrZXksIGN1cnJlbnRQcmVzZW5jZSwgbGVmdFByZXNlbmNlKVxuICAgICAgaWYoY3VycmVudFByZXNlbmNlLm1ldGFzLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgIGRlbGV0ZSBzdGF0ZVtrZXldXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gc3RhdGVcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcmVzZW5jZXMsIHdpdGggc2VsZWN0ZWQgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwcmVzZW5jZXNcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2hvb3NlclxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJlc2VuY2V9XG4gICAqL1xuICBzdGF0aWMgbGlzdChwcmVzZW5jZXMsIGNob29zZXIpe1xuICAgIGlmKCFjaG9vc2VyKXsgY2hvb3NlciA9IGZ1bmN0aW9uIChrZXksIHByZXMpeyByZXR1cm4gcHJlcyB9IH1cblxuICAgIHJldHVybiB0aGlzLm1hcChwcmVzZW5jZXMsIChrZXksIHByZXNlbmNlKSA9PiB7XG4gICAgICByZXR1cm4gY2hvb3NlcihrZXksIHByZXNlbmNlKVxuICAgIH0pXG4gIH1cblxuICAvLyBwcml2YXRlXG5cbiAgc3RhdGljIG1hcChvYmosIGZ1bmMpe1xuICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLm1hcChrZXkgPT4gZnVuYyhrZXksIG9ialtrZXldKSlcbiAgfVxuXG4gIHN0YXRpYyBjbG9uZShvYmopeyByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKSB9XG59XG4iLCAiLyogVGhlIGRlZmF1bHQgc2VyaWFsaXplciBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIG1lc3NhZ2VzICovXG5pbXBvcnQge1xuICBDSEFOTkVMX0VWRU5UU1xufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIEhFQURFUl9MRU5HVEg6IDEsXG4gIE1FVEFfTEVOR1RIOiA0LFxuICBLSU5EUzoge3B1c2g6IDAsIHJlcGx5OiAxLCBicm9hZGNhc3Q6IDJ9LFxuXG4gIGVuY29kZShtc2csIGNhbGxiYWNrKXtcbiAgICBpZihtc2cucGF5bG9hZC5jb25zdHJ1Y3RvciA9PT0gQXJyYXlCdWZmZXIpe1xuICAgICAgcmV0dXJuIGNhbGxiYWNrKHRoaXMuYmluYXJ5RW5jb2RlKG1zZykpXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBwYXlsb2FkID0gW21zZy5qb2luX3JlZiwgbXNnLnJlZiwgbXNnLnRvcGljLCBtc2cuZXZlbnQsIG1zZy5wYXlsb2FkXVxuICAgICAgcmV0dXJuIGNhbGxiYWNrKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpKVxuICAgIH1cbiAgfSxcblxuICBkZWNvZGUocmF3UGF5bG9hZCwgY2FsbGJhY2spe1xuICAgIGlmKHJhd1BheWxvYWQuY29uc3RydWN0b3IgPT09IEFycmF5QnVmZmVyKXtcbiAgICAgIHJldHVybiBjYWxsYmFjayh0aGlzLmJpbmFyeURlY29kZShyYXdQYXlsb2FkKSlcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IFtqb2luX3JlZiwgcmVmLCB0b3BpYywgZXZlbnQsIHBheWxvYWRdID0gSlNPTi5wYXJzZShyYXdQYXlsb2FkKVxuICAgICAgcmV0dXJuIGNhbGxiYWNrKHtqb2luX3JlZiwgcmVmLCB0b3BpYywgZXZlbnQsIHBheWxvYWR9KVxuICAgIH1cbiAgfSxcblxuICAvLyBwcml2YXRlXG5cbiAgYmluYXJ5RW5jb2RlKG1lc3NhZ2Upe1xuICAgIGxldCB7am9pbl9yZWYsIHJlZiwgZXZlbnQsIHRvcGljLCBwYXlsb2FkfSA9IG1lc3NhZ2VcbiAgICBsZXQgbWV0YUxlbmd0aCA9IHRoaXMuTUVUQV9MRU5HVEggKyBqb2luX3JlZi5sZW5ndGggKyByZWYubGVuZ3RoICsgdG9waWMubGVuZ3RoICsgZXZlbnQubGVuZ3RoXG4gICAgbGV0IGhlYWRlciA9IG5ldyBBcnJheUJ1ZmZlcih0aGlzLkhFQURFUl9MRU5HVEggKyBtZXRhTGVuZ3RoKVxuICAgIGxldCB2aWV3ID0gbmV3IERhdGFWaWV3KGhlYWRlcilcbiAgICBsZXQgb2Zmc2V0ID0gMFxuXG4gICAgdmlldy5zZXRVaW50OChvZmZzZXQrKywgdGhpcy5LSU5EUy5wdXNoKSAvLyBraW5kXG4gICAgdmlldy5zZXRVaW50OChvZmZzZXQrKywgam9pbl9yZWYubGVuZ3RoKVxuICAgIHZpZXcuc2V0VWludDgob2Zmc2V0KyssIHJlZi5sZW5ndGgpXG4gICAgdmlldy5zZXRVaW50OChvZmZzZXQrKywgdG9waWMubGVuZ3RoKVxuICAgIHZpZXcuc2V0VWludDgob2Zmc2V0KyssIGV2ZW50Lmxlbmd0aClcbiAgICBBcnJheS5mcm9tKGpvaW5fcmVmLCBjaGFyID0+IHZpZXcuc2V0VWludDgob2Zmc2V0KyssIGNoYXIuY2hhckNvZGVBdCgwKSkpXG4gICAgQXJyYXkuZnJvbShyZWYsIGNoYXIgPT4gdmlldy5zZXRVaW50OChvZmZzZXQrKywgY2hhci5jaGFyQ29kZUF0KDApKSlcbiAgICBBcnJheS5mcm9tKHRvcGljLCBjaGFyID0+IHZpZXcuc2V0VWludDgob2Zmc2V0KyssIGNoYXIuY2hhckNvZGVBdCgwKSkpXG4gICAgQXJyYXkuZnJvbShldmVudCwgY2hhciA9PiB2aWV3LnNldFVpbnQ4KG9mZnNldCsrLCBjaGFyLmNoYXJDb2RlQXQoMCkpKVxuXG4gICAgdmFyIGNvbWJpbmVkID0gbmV3IFVpbnQ4QXJyYXkoaGVhZGVyLmJ5dGVMZW5ndGggKyBwYXlsb2FkLmJ5dGVMZW5ndGgpXG4gICAgY29tYmluZWQuc2V0KG5ldyBVaW50OEFycmF5KGhlYWRlciksIDApXG4gICAgY29tYmluZWQuc2V0KG5ldyBVaW50OEFycmF5KHBheWxvYWQpLCBoZWFkZXIuYnl0ZUxlbmd0aClcblxuICAgIHJldHVybiBjb21iaW5lZC5idWZmZXJcbiAgfSxcblxuICBiaW5hcnlEZWNvZGUoYnVmZmVyKXtcbiAgICBsZXQgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIpXG4gICAgbGV0IGtpbmQgPSB2aWV3LmdldFVpbnQ4KDApXG4gICAgbGV0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKVxuICAgIHN3aXRjaChraW5kKXtcbiAgICAgIGNhc2UgdGhpcy5LSU5EUy5wdXNoOiByZXR1cm4gdGhpcy5kZWNvZGVQdXNoKGJ1ZmZlciwgdmlldywgZGVjb2RlcilcbiAgICAgIGNhc2UgdGhpcy5LSU5EUy5yZXBseTogcmV0dXJuIHRoaXMuZGVjb2RlUmVwbHkoYnVmZmVyLCB2aWV3LCBkZWNvZGVyKVxuICAgICAgY2FzZSB0aGlzLktJTkRTLmJyb2FkY2FzdDogcmV0dXJuIHRoaXMuZGVjb2RlQnJvYWRjYXN0KGJ1ZmZlciwgdmlldywgZGVjb2RlcilcbiAgICB9XG4gIH0sXG5cbiAgZGVjb2RlUHVzaChidWZmZXIsIHZpZXcsIGRlY29kZXIpe1xuICAgIGxldCBqb2luUmVmU2l6ZSA9IHZpZXcuZ2V0VWludDgoMSlcbiAgICBsZXQgdG9waWNTaXplID0gdmlldy5nZXRVaW50OCgyKVxuICAgIGxldCBldmVudFNpemUgPSB2aWV3LmdldFVpbnQ4KDMpXG4gICAgbGV0IG9mZnNldCA9IHRoaXMuSEVBREVSX0xFTkdUSCArIHRoaXMuTUVUQV9MRU5HVEggLSAxIC8vIHB1c2hlcyBoYXZlIG5vIHJlZlxuICAgIGxldCBqb2luUmVmID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgam9pblJlZlNpemUpKVxuICAgIG9mZnNldCA9IG9mZnNldCArIGpvaW5SZWZTaXplXG4gICAgbGV0IHRvcGljID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgdG9waWNTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyB0b3BpY1NpemVcbiAgICBsZXQgZXZlbnQgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBldmVudFNpemUpKVxuICAgIG9mZnNldCA9IG9mZnNldCArIGV2ZW50U2l6ZVxuICAgIGxldCBkYXRhID0gYnVmZmVyLnNsaWNlKG9mZnNldCwgYnVmZmVyLmJ5dGVMZW5ndGgpXG4gICAgcmV0dXJuIHtqb2luX3JlZjogam9pblJlZiwgcmVmOiBudWxsLCB0b3BpYzogdG9waWMsIGV2ZW50OiBldmVudCwgcGF5bG9hZDogZGF0YX1cbiAgfSxcblxuICBkZWNvZGVSZXBseShidWZmZXIsIHZpZXcsIGRlY29kZXIpe1xuICAgIGxldCBqb2luUmVmU2l6ZSA9IHZpZXcuZ2V0VWludDgoMSlcbiAgICBsZXQgcmVmU2l6ZSA9IHZpZXcuZ2V0VWludDgoMilcbiAgICBsZXQgdG9waWNTaXplID0gdmlldy5nZXRVaW50OCgzKVxuICAgIGxldCBldmVudFNpemUgPSB2aWV3LmdldFVpbnQ4KDQpXG4gICAgbGV0IG9mZnNldCA9IHRoaXMuSEVBREVSX0xFTkdUSCArIHRoaXMuTUVUQV9MRU5HVEhcbiAgICBsZXQgam9pblJlZiA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIGpvaW5SZWZTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyBqb2luUmVmU2l6ZVxuICAgIGxldCByZWYgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyByZWZTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyByZWZTaXplXG4gICAgbGV0IHRvcGljID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgdG9waWNTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyB0b3BpY1NpemVcbiAgICBsZXQgZXZlbnQgPSBkZWNvZGVyLmRlY29kZShidWZmZXIuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBldmVudFNpemUpKVxuICAgIG9mZnNldCA9IG9mZnNldCArIGV2ZW50U2l6ZVxuICAgIGxldCBkYXRhID0gYnVmZmVyLnNsaWNlKG9mZnNldCwgYnVmZmVyLmJ5dGVMZW5ndGgpXG4gICAgbGV0IHBheWxvYWQgPSB7c3RhdHVzOiBldmVudCwgcmVzcG9uc2U6IGRhdGF9XG4gICAgcmV0dXJuIHtqb2luX3JlZjogam9pblJlZiwgcmVmOiByZWYsIHRvcGljOiB0b3BpYywgZXZlbnQ6IENIQU5ORUxfRVZFTlRTLnJlcGx5LCBwYXlsb2FkOiBwYXlsb2FkfVxuICB9LFxuXG4gIGRlY29kZUJyb2FkY2FzdChidWZmZXIsIHZpZXcsIGRlY29kZXIpe1xuICAgIGxldCB0b3BpY1NpemUgPSB2aWV3LmdldFVpbnQ4KDEpXG4gICAgbGV0IGV2ZW50U2l6ZSA9IHZpZXcuZ2V0VWludDgoMilcbiAgICBsZXQgb2Zmc2V0ID0gdGhpcy5IRUFERVJfTEVOR1RIICsgMlxuICAgIGxldCB0b3BpYyA9IGRlY29kZXIuZGVjb2RlKGJ1ZmZlci5zbGljZShvZmZzZXQsIG9mZnNldCArIHRvcGljU2l6ZSkpXG4gICAgb2Zmc2V0ID0gb2Zmc2V0ICsgdG9waWNTaXplXG4gICAgbGV0IGV2ZW50ID0gZGVjb2Rlci5kZWNvZGUoYnVmZmVyLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgZXZlbnRTaXplKSlcbiAgICBvZmZzZXQgPSBvZmZzZXQgKyBldmVudFNpemVcbiAgICBsZXQgZGF0YSA9IGJ1ZmZlci5zbGljZShvZmZzZXQsIGJ1ZmZlci5ieXRlTGVuZ3RoKVxuXG4gICAgcmV0dXJuIHtqb2luX3JlZjogbnVsbCwgcmVmOiBudWxsLCB0b3BpYzogdG9waWMsIGV2ZW50OiBldmVudCwgcGF5bG9hZDogZGF0YX1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIGdsb2JhbCxcbiAgcGh4V2luZG93LFxuICBDSEFOTkVMX0VWRU5UUyxcbiAgREVGQVVMVF9USU1FT1VULFxuICBERUZBVUxUX1ZTTixcbiAgU09DS0VUX1NUQVRFUyxcbiAgVFJBTlNQT1JUUyxcbiAgV1NfQ0xPU0VfTk9STUFMXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCB7XG4gIGNsb3N1cmVcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5pbXBvcnQgQWpheCBmcm9tIFwiLi9hamF4XCJcbmltcG9ydCBDaGFubmVsIGZyb20gXCIuL2NoYW5uZWxcIlxuaW1wb3J0IExvbmdQb2xsIGZyb20gXCIuL2xvbmdwb2xsXCJcbmltcG9ydCBTZXJpYWxpemVyIGZyb20gXCIuL3NlcmlhbGl6ZXJcIlxuaW1wb3J0IFRpbWVyIGZyb20gXCIuL3RpbWVyXCJcblxuLyoqIEluaXRpYWxpemVzIHRoZSBTb2NrZXQgKlxuICpcbiAqIEZvciBJRTggc3VwcG9ydCB1c2UgYW4gRVM1LXNoaW0gKGh0dHBzOi8vZ2l0aHViLmNvbS9lcy1zaGltcy9lczUtc2hpbSlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZW5kUG9pbnQgLSBUaGUgc3RyaW5nIFdlYlNvY2tldCBlbmRwb2ludCwgaWUsIGBcIndzOi8vZXhhbXBsZS5jb20vc29ja2V0XCJgLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBcIndzczovL2V4YW1wbGUuY29tXCJgXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFwiL3NvY2tldFwiYCAoaW5oZXJpdGVkIGhvc3QgJiBwcm90b2NvbClcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy50cmFuc3BvcnRdIC0gVGhlIFdlYnNvY2tldCBUcmFuc3BvcnQsIGZvciBleGFtcGxlIFdlYlNvY2tldCBvciBQaG9lbml4LkxvbmdQb2xsLlxuICpcbiAqIERlZmF1bHRzIHRvIFdlYlNvY2tldCB3aXRoIGF1dG9tYXRpYyBMb25nUG9sbCBmYWxsYmFjay5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRzLmVuY29kZV0gLSBUaGUgZnVuY3Rpb24gdG8gZW5jb2RlIG91dGdvaW5nIG1lc3NhZ2VzLlxuICpcbiAqIERlZmF1bHRzIHRvIEpTT04gZW5jb2Rlci5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy5kZWNvZGVdIC0gVGhlIGZ1bmN0aW9uIHRvIGRlY29kZSBpbmNvbWluZyBtZXNzYWdlcy5cbiAqXG4gKiBEZWZhdWx0cyB0byBKU09OOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIChwYXlsb2FkLCBjYWxsYmFjaykgPT4gY2FsbGJhY2soSlNPTi5wYXJzZShwYXlsb2FkKSlcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0cy50aW1lb3V0XSAtIFRoZSBkZWZhdWx0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRvIHRyaWdnZXIgcHVzaCB0aW1lb3V0cy5cbiAqXG4gKiBEZWZhdWx0cyBgREVGQVVMVF9USU1FT1VUYFxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLmhlYXJ0YmVhdEludGVydmFsTXNdIC0gVGhlIG1pbGxpc2VjIGludGVydmFsIHRvIHNlbmQgYSBoZWFydGJlYXQgbWVzc2FnZVxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLnJlY29ubmVjdEFmdGVyTXNdIC0gVGhlIG9wdGlvbmFsIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgbWlsbGlzZWNcbiAqIHNvY2tldCByZWNvbm5lY3QgaW50ZXJ2YWwuXG4gKlxuICogRGVmYXVsdHMgdG8gc3RlcHBlZCBiYWNrb2ZmIG9mOlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgcmV0dXJuIFsxMCwgNTAsIDEwMCwgMTUwLCAyMDAsIDI1MCwgNTAwLCAxMDAwLCAyMDAwXVt0cmllcyAtIDFdIHx8IDUwMDBcbiAqIH1cbiAqIGBgYGBcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gW29wdHMucmVqb2luQWZ0ZXJNc10gLSBUaGUgb3B0aW9uYWwgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBtaWxsaXNlY1xuICogcmVqb2luIGludGVydmFsIGZvciBpbmRpdmlkdWFsIGNoYW5uZWxzLlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGZ1bmN0aW9uKHRyaWVzKXtcbiAqICAgcmV0dXJuIFsxMDAwLCAyMDAwLCA1MDAwXVt0cmllcyAtIDFdIHx8IDEwMDAwXG4gKiB9XG4gKiBgYGBgXG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdHMubG9nZ2VyXSAtIFRoZSBvcHRpb25hbCBmdW5jdGlvbiBmb3Igc3BlY2lhbGl6ZWQgbG9nZ2luZywgaWU6XG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogZnVuY3Rpb24oa2luZCwgbXNnLCBkYXRhKSB7XG4gKiAgIGNvbnNvbGUubG9nKGAke2tpbmR9OiAke21zZ31gLCBkYXRhKVxuICogfVxuICogYGBgXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLmxvbmdwb2xsZXJUaW1lb3V0XSAtIFRoZSBtYXhpbXVtIHRpbWVvdXQgb2YgYSBsb25nIHBvbGwgQUpBWCByZXF1ZXN0LlxuICpcbiAqIERlZmF1bHRzIHRvIDIwcyAoZG91YmxlIHRoZSBzZXJ2ZXIgbG9uZyBwb2xsIHRpbWVyKS5cbiAqXG4gKiBAcGFyYW0geyhPYmplY3R8ZnVuY3Rpb24pfSBbb3B0cy5wYXJhbXNdIC0gVGhlIG9wdGlvbmFsIHBhcmFtcyB0byBwYXNzIHdoZW4gY29ubmVjdGluZ1xuICogQHBhcmFtIHtzdHJpbmd9IFtvcHRzLmJpbmFyeVR5cGVdIC0gVGhlIGJpbmFyeSB0eXBlIHRvIHVzZSBmb3IgYmluYXJ5IFdlYlNvY2tldCBmcmFtZXMuXG4gKlxuICogRGVmYXVsdHMgdG8gXCJhcnJheWJ1ZmZlclwiXG4gKlxuICogQHBhcmFtIHt2c259IFtvcHRzLnZzbl0gLSBUaGUgc2VyaWFsaXplcidzIHByb3RvY29sIHZlcnNpb24gdG8gc2VuZCBvbiBjb25uZWN0LlxuICpcbiAqIERlZmF1bHRzIHRvIERFRkFVTFRfVlNOLlxuKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNvY2tldCB7XG4gIGNvbnN0cnVjdG9yKGVuZFBvaW50LCBvcHRzID0ge30pe1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MgPSB7b3BlbjogW10sIGNsb3NlOiBbXSwgZXJyb3I6IFtdLCBtZXNzYWdlOiBbXX1cbiAgICB0aGlzLmNoYW5uZWxzID0gW11cbiAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXVxuICAgIHRoaXMucmVmID0gMFxuICAgIHRoaXMudGltZW91dCA9IG9wdHMudGltZW91dCB8fCBERUZBVUxUX1RJTUVPVVRcbiAgICB0aGlzLnRyYW5zcG9ydCA9IG9wdHMudHJhbnNwb3J0IHx8IGdsb2JhbC5XZWJTb2NrZXQgfHwgTG9uZ1BvbGxcbiAgICB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbnMgPSAwXG4gICAgdGhpcy5kZWZhdWx0RW5jb2RlciA9IFNlcmlhbGl6ZXIuZW5jb2RlLmJpbmQoU2VyaWFsaXplcilcbiAgICB0aGlzLmRlZmF1bHREZWNvZGVyID0gU2VyaWFsaXplci5kZWNvZGUuYmluZChTZXJpYWxpemVyKVxuICAgIHRoaXMuY2xvc2VXYXNDbGVhbiA9IGZhbHNlXG4gICAgdGhpcy5iaW5hcnlUeXBlID0gb3B0cy5iaW5hcnlUeXBlIHx8IFwiYXJyYXlidWZmZXJcIlxuICAgIHRoaXMuY29ubmVjdENsb2NrID0gMVxuICAgIGlmKHRoaXMudHJhbnNwb3J0ICE9PSBMb25nUG9sbCl7XG4gICAgICB0aGlzLmVuY29kZSA9IG9wdHMuZW5jb2RlIHx8IHRoaXMuZGVmYXVsdEVuY29kZXJcbiAgICAgIHRoaXMuZGVjb2RlID0gb3B0cy5kZWNvZGUgfHwgdGhpcy5kZWZhdWx0RGVjb2RlclxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVuY29kZSA9IHRoaXMuZGVmYXVsdEVuY29kZXJcbiAgICAgIHRoaXMuZGVjb2RlID0gdGhpcy5kZWZhdWx0RGVjb2RlclxuICAgIH1cbiAgICBsZXQgYXdhaXRpbmdDb25uZWN0aW9uT25QYWdlU2hvdyA9IG51bGxcbiAgICBpZihwaHhXaW5kb3cgJiYgcGh4V2luZG93LmFkZEV2ZW50TGlzdGVuZXIpe1xuICAgICAgcGh4V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCBfZSA9PiB7XG4gICAgICAgIGlmKHRoaXMuY29ubil7XG4gICAgICAgICAgdGhpcy5kaXNjb25uZWN0KClcbiAgICAgICAgICBhd2FpdGluZ0Nvbm5lY3Rpb25PblBhZ2VTaG93ID0gdGhpcy5jb25uZWN0Q2xvY2tcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHBoeFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicGFnZXNob3dcIiwgX2UgPT4ge1xuICAgICAgICBpZihhd2FpdGluZ0Nvbm5lY3Rpb25PblBhZ2VTaG93ID09PSB0aGlzLmNvbm5lY3RDbG9jayl7XG4gICAgICAgICAgYXdhaXRpbmdDb25uZWN0aW9uT25QYWdlU2hvdyA9IG51bGxcbiAgICAgICAgICB0aGlzLmNvbm5lY3QoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICB0aGlzLmhlYXJ0YmVhdEludGVydmFsTXMgPSBvcHRzLmhlYXJ0YmVhdEludGVydmFsTXMgfHwgMzAwMDBcbiAgICB0aGlzLnJlam9pbkFmdGVyTXMgPSAodHJpZXMpID0+IHtcbiAgICAgIGlmKG9wdHMucmVqb2luQWZ0ZXJNcyl7XG4gICAgICAgIHJldHVybiBvcHRzLnJlam9pbkFmdGVyTXModHJpZXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gWzEwMDAsIDIwMDAsIDUwMDBdW3RyaWVzIC0gMV0gfHwgMTAwMDBcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZWNvbm5lY3RBZnRlck1zID0gKHRyaWVzKSA9PiB7XG4gICAgICBpZihvcHRzLnJlY29ubmVjdEFmdGVyTXMpe1xuICAgICAgICByZXR1cm4gb3B0cy5yZWNvbm5lY3RBZnRlck1zKHRyaWVzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFsxMCwgNTAsIDEwMCwgMTUwLCAyMDAsIDI1MCwgNTAwLCAxMDAwLCAyMDAwXVt0cmllcyAtIDFdIHx8IDUwMDBcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRzLmxvZ2dlciB8fCBudWxsXG4gICAgdGhpcy5sb25ncG9sbGVyVGltZW91dCA9IG9wdHMubG9uZ3BvbGxlclRpbWVvdXQgfHwgMjAwMDBcbiAgICB0aGlzLnBhcmFtcyA9IGNsb3N1cmUob3B0cy5wYXJhbXMgfHwge30pXG4gICAgdGhpcy5lbmRQb2ludCA9IGAke2VuZFBvaW50fS8ke1RSQU5TUE9SVFMud2Vic29ja2V0fWBcbiAgICB0aGlzLnZzbiA9IG9wdHMudnNuIHx8IERFRkFVTFRfVlNOXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lb3V0VGltZXIgPSBudWxsXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IG51bGxcbiAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsXG4gICAgdGhpcy5yZWNvbm5lY3RUaW1lciA9IG5ldyBUaW1lcigoKSA9PiB7XG4gICAgICB0aGlzLnRlYXJkb3duKCgpID0+IHRoaXMuY29ubmVjdCgpKVxuICAgIH0sIHRoaXMucmVjb25uZWN0QWZ0ZXJNcylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBMb25nUG9sbCB0cmFuc3BvcnQgcmVmZXJlbmNlXG4gICAqL1xuICBnZXRMb25nUG9sbFRyYW5zcG9ydCgpeyByZXR1cm4gTG9uZ1BvbGwgfVxuXG4gIC8qKlxuICAgKiBEaXNjb25uZWN0cyBhbmQgcmVwbGFjZXMgdGhlIGFjdGl2ZSB0cmFuc3BvcnRcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbmV3VHJhbnNwb3J0IC0gVGhlIG5ldyB0cmFuc3BvcnQgY2xhc3MgdG8gaW5zdGFudGlhdGVcbiAgICpcbiAgICovXG4gIHJlcGxhY2VUcmFuc3BvcnQobmV3VHJhbnNwb3J0KXtcbiAgICB0aGlzLmNvbm5lY3RDbG9jaysrXG4gICAgdGhpcy5jbG9zZVdhc0NsZWFuID0gdHJ1ZVxuICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKVxuICAgIHRoaXMuc2VuZEJ1ZmZlciA9IFtdXG4gICAgaWYodGhpcy5jb25uKXtcbiAgICAgIHRoaXMuY29ubi5jbG9zZSgpXG4gICAgICB0aGlzLmNvbm4gPSBudWxsXG4gICAgfVxuICAgIHRoaXMudHJhbnNwb3J0ID0gbmV3VHJhbnNwb3J0XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc29ja2V0IHByb3RvY29sXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBwcm90b2NvbCgpeyByZXR1cm4gbG9jYXRpb24ucHJvdG9jb2wubWF0Y2goL15odHRwcy8pID8gXCJ3c3NcIiA6IFwid3NcIiB9XG5cbiAgLyoqXG4gICAqIFRoZSBmdWxseSBxdWFsaWZpZWQgc29ja2V0IHVybFxuICAgKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZW5kUG9pbnRVUkwoKXtcbiAgICBsZXQgdXJpID0gQWpheC5hcHBlbmRQYXJhbXMoXG4gICAgICBBamF4LmFwcGVuZFBhcmFtcyh0aGlzLmVuZFBvaW50LCB0aGlzLnBhcmFtcygpKSwge3ZzbjogdGhpcy52c259KVxuICAgIGlmKHVyaS5jaGFyQXQoMCkgIT09IFwiL1wiKXsgcmV0dXJuIHVyaSB9XG4gICAgaWYodXJpLmNoYXJBdCgxKSA9PT0gXCIvXCIpeyByZXR1cm4gYCR7dGhpcy5wcm90b2NvbCgpfToke3VyaX1gIH1cblxuICAgIHJldHVybiBgJHt0aGlzLnByb3RvY29sKCl9Oi8vJHtsb2NhdGlvbi5ob3N0fSR7dXJpfWBcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNjb25uZWN0cyB0aGUgc29ja2V0XG4gICAqXG4gICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvQ2xvc2VFdmVudCNTdGF0dXNfY29kZXMgZm9yIHZhbGlkIHN0YXR1cyBjb2Rlcy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBPcHRpb25hbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgYWZ0ZXIgc29ja2V0IGlzIGRpc2Nvbm5lY3RlZC5cbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBjb2RlIC0gQSBzdGF0dXMgY29kZSBmb3IgZGlzY29ubmVjdGlvbiAoT3B0aW9uYWwpLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uIC0gQSB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoZSByZWFzb24gdG8gZGlzY29ubmVjdC4gKE9wdGlvbmFsKVxuICAgKi9cbiAgZGlzY29ubmVjdChjYWxsYmFjaywgY29kZSwgcmVhc29uKXtcbiAgICB0aGlzLmNvbm5lY3RDbG9jaysrXG4gICAgdGhpcy5jbG9zZVdhc0NsZWFuID0gdHJ1ZVxuICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKVxuICAgIHRoaXMudGVhcmRvd24oY2FsbGJhY2ssIGNvZGUsIHJlYXNvbilcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtcyB0byBzZW5kIHdoZW4gY29ubmVjdGluZywgZm9yIGV4YW1wbGUgYHt1c2VyX2lkOiB1c2VyVG9rZW59YFxuICAgKlxuICAgKiBQYXNzaW5nIHBhcmFtcyB0byBjb25uZWN0IGlzIGRlcHJlY2F0ZWQ7IHBhc3MgdGhlbSBpbiB0aGUgU29ja2V0IGNvbnN0cnVjdG9yIGluc3RlYWQ6XG4gICAqIGBuZXcgU29ja2V0KFwiL3NvY2tldFwiLCB7cGFyYW1zOiB7dXNlcl9pZDogdXNlclRva2VufX0pYC5cbiAgICovXG4gIGNvbm5lY3QocGFyYW1zKXtcbiAgICBpZihwYXJhbXMpe1xuICAgICAgY29uc29sZSAmJiBjb25zb2xlLmxvZyhcInBhc3NpbmcgcGFyYW1zIHRvIGNvbm5lY3QgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCBwYXNzIDpwYXJhbXMgdG8gdGhlIFNvY2tldCBjb25zdHJ1Y3RvclwiKVxuICAgICAgdGhpcy5wYXJhbXMgPSBjbG9zdXJlKHBhcmFtcylcbiAgICB9XG4gICAgaWYodGhpcy5jb25uKXsgcmV0dXJuIH1cblxuICAgIHRoaXMuY29ubmVjdENsb2NrKytcbiAgICB0aGlzLmNsb3NlV2FzQ2xlYW4gPSBmYWxzZVxuICAgIHRoaXMuY29ubiA9IG5ldyB0aGlzLnRyYW5zcG9ydCh0aGlzLmVuZFBvaW50VVJMKCkpXG4gICAgdGhpcy5jb25uLmJpbmFyeVR5cGUgPSB0aGlzLmJpbmFyeVR5cGVcbiAgICB0aGlzLmNvbm4udGltZW91dCA9IHRoaXMubG9uZ3BvbGxlclRpbWVvdXRcbiAgICB0aGlzLmNvbm4ub25vcGVuID0gKCkgPT4gdGhpcy5vbkNvbm5PcGVuKClcbiAgICB0aGlzLmNvbm4ub25lcnJvciA9IGVycm9yID0+IHRoaXMub25Db25uRXJyb3IoZXJyb3IpXG4gICAgdGhpcy5jb25uLm9ubWVzc2FnZSA9IGV2ZW50ID0+IHRoaXMub25Db25uTWVzc2FnZShldmVudClcbiAgICB0aGlzLmNvbm4ub25jbG9zZSA9IGV2ZW50ID0+IHRoaXMub25Db25uQ2xvc2UoZXZlbnQpXG4gIH1cblxuICAvKipcbiAgICogTG9ncyB0aGUgbWVzc2FnZS4gT3ZlcnJpZGUgYHRoaXMubG9nZ2VyYCBmb3Igc3BlY2lhbGl6ZWQgbG9nZ2luZy4gbm9vcHMgYnkgZGVmYXVsdFxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2luZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbXNnXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhXG4gICAqL1xuICBsb2coa2luZCwgbXNnLCBkYXRhKXsgdGhpcy5sb2dnZXIoa2luZCwgbXNnLCBkYXRhKSB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiBhIGxvZ2dlciBoYXMgYmVlbiBzZXQgb24gdGhpcyBzb2NrZXQuXG4gICAqL1xuICBoYXNMb2dnZXIoKXsgcmV0dXJuIHRoaXMubG9nZ2VyICE9PSBudWxsIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGNhbGxiYWNrcyBmb3IgY29ubmVjdGlvbiBvcGVuIGV2ZW50c1xuICAgKlxuICAgKiBAZXhhbXBsZSBzb2NrZXQub25PcGVuKGZ1bmN0aW9uKCl7IGNvbnNvbGUuaW5mbyhcInRoZSBzb2NrZXQgd2FzIG9wZW5lZFwiKSB9KVxuICAgKlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICAgKi9cbiAgb25PcGVuKGNhbGxiYWNrKXtcbiAgICBsZXQgcmVmID0gdGhpcy5tYWtlUmVmKClcbiAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm9wZW4ucHVzaChbcmVmLCBjYWxsYmFja10pXG4gICAgcmV0dXJuIHJlZlxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBjYWxsYmFja3MgZm9yIGNvbm5lY3Rpb24gY2xvc2UgZXZlbnRzXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqL1xuICBvbkNsb3NlKGNhbGxiYWNrKXtcbiAgICBsZXQgcmVmID0gdGhpcy5tYWtlUmVmKClcbiAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmNsb3NlLnB1c2goW3JlZiwgY2FsbGJhY2tdKVxuICAgIHJldHVybiByZWZcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgY2FsbGJhY2tzIGZvciBjb25uZWN0aW9uIGVycm9yIGV2ZW50c1xuICAgKlxuICAgKiBAZXhhbXBsZSBzb2NrZXQub25FcnJvcihmdW5jdGlvbihlcnJvcil7IGFsZXJ0KFwiQW4gZXJyb3Igb2NjdXJyZWRcIikgfSlcbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIG9uRXJyb3IoY2FsbGJhY2spe1xuICAgIGxldCByZWYgPSB0aGlzLm1ha2VSZWYoKVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MuZXJyb3IucHVzaChbcmVmLCBjYWxsYmFja10pXG4gICAgcmV0dXJuIHJlZlxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBjYWxsYmFja3MgZm9yIGNvbm5lY3Rpb24gbWVzc2FnZSBldmVudHNcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAgICovXG4gIG9uTWVzc2FnZShjYWxsYmFjayl7XG4gICAgbGV0IHJlZiA9IHRoaXMubWFrZVJlZigpXG4gICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5tZXNzYWdlLnB1c2goW3JlZiwgY2FsbGJhY2tdKVxuICAgIHJldHVybiByZWZcbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5ncyB0aGUgc2VydmVyIGFuZCBpbnZva2VzIHRoZSBjYWxsYmFjayB3aXRoIHRoZSBSVFQgaW4gbWlsbGlzZWNvbmRzXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXG4gICAqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGluZyB3YXMgcHVzaGVkIG9yIGZhbHNlIGlmIHVuYWJsZSB0byBiZSBwdXNoZWQuXG4gICAqL1xuICBwaW5nKGNhbGxiYWNrKXtcbiAgICBpZighdGhpcy5pc0Nvbm5lY3RlZCgpKXsgcmV0dXJuIGZhbHNlIH1cbiAgICBsZXQgcmVmID0gdGhpcy5tYWtlUmVmKClcbiAgICBsZXQgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuICAgIHRoaXMucHVzaCh7dG9waWM6IFwicGhvZW5peFwiLCBldmVudDogXCJoZWFydGJlYXRcIiwgcGF5bG9hZDoge30sIHJlZjogcmVmfSlcbiAgICBsZXQgb25Nc2dSZWYgPSB0aGlzLm9uTWVzc2FnZShtc2cgPT4ge1xuICAgICAgaWYobXNnLnJlZiA9PT0gcmVmKXtcbiAgICAgICAgdGhpcy5vZmYoW29uTXNnUmVmXSlcbiAgICAgICAgY2FsbGJhY2soRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG5cbiAgY2xlYXJIZWFydGJlYXRzKCl7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuaGVhcnRiZWF0VGltZXIpXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuaGVhcnRiZWF0VGltZW91dFRpbWVyKVxuICB9XG5cbiAgb25Db25uT3Blbigpe1xuICAgIGlmKHRoaXMuaGFzTG9nZ2VyKCkpIHRoaXMubG9nKFwidHJhbnNwb3J0XCIsIGBjb25uZWN0ZWQgdG8gJHt0aGlzLmVuZFBvaW50VVJMKCl9YClcbiAgICB0aGlzLmNsb3NlV2FzQ2xlYW4gPSBmYWxzZVxuICAgIHRoaXMuZXN0YWJsaXNoZWRDb25uZWN0aW9ucysrXG4gICAgdGhpcy5mbHVzaFNlbmRCdWZmZXIoKVxuICAgIHRoaXMucmVjb25uZWN0VGltZXIucmVzZXQoKVxuICAgIHRoaXMucmVzZXRIZWFydGJlYXQoKVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3Mub3Blbi5mb3JFYWNoKChbLCBjYWxsYmFja10pID0+IGNhbGxiYWNrKCkpXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG5cbiAgaGVhcnRiZWF0VGltZW91dCgpe1xuICAgIGlmKHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZil7XG4gICAgICB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYgPSBudWxsXG4gICAgICBpZih0aGlzLmhhc0xvZ2dlcigpKXsgdGhpcy5sb2coXCJ0cmFuc3BvcnRcIiwgXCJoZWFydGJlYXQgdGltZW91dC4gQXR0ZW1wdGluZyB0byByZS1lc3RhYmxpc2ggY29ubmVjdGlvblwiKSB9XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuRXJyb3IoKVxuICAgICAgdGhpcy5jbG9zZVdhc0NsZWFuID0gZmFsc2VcbiAgICAgIHRoaXMudGVhcmRvd24oKCkgPT4gdGhpcy5yZWNvbm5lY3RUaW1lci5zY2hlZHVsZVRpbWVvdXQoKSwgV1NfQ0xPU0VfTk9STUFMLCBcImhlYXJ0YmVhdCB0aW1lb3V0XCIpXG4gICAgfVxuICB9XG5cbiAgcmVzZXRIZWFydGJlYXQoKXtcbiAgICBpZih0aGlzLmNvbm4gJiYgdGhpcy5jb25uLnNraXBIZWFydGJlYXQpeyByZXR1cm4gfVxuICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IG51bGxcbiAgICB0aGlzLmNsZWFySGVhcnRiZWF0cygpXG4gICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZW5kSGVhcnRiZWF0KCksIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcylcbiAgfVxuXG4gIHRlYXJkb3duKGNhbGxiYWNrLCBjb2RlLCByZWFzb24pe1xuICAgIGlmKCF0aGlzLmNvbm4pe1xuICAgICAgcmV0dXJuIGNhbGxiYWNrICYmIGNhbGxiYWNrKClcbiAgICB9XG5cbiAgICB0aGlzLndhaXRGb3JCdWZmZXJEb25lKCgpID0+IHtcbiAgICAgIGlmKHRoaXMuY29ubil7XG4gICAgICAgIGlmKGNvZGUpeyB0aGlzLmNvbm4uY2xvc2UoY29kZSwgcmVhc29uIHx8IFwiXCIpIH0gZWxzZSB7IHRoaXMuY29ubi5jbG9zZSgpIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy53YWl0Rm9yU29ja2V0Q2xvc2VkKCgpID0+IHtcbiAgICAgICAgaWYodGhpcy5jb25uKXtcbiAgICAgICAgICB0aGlzLmNvbm4ub25vcGVuID0gZnVuY3Rpb24gKCl7IH0gLy8gbm9vcFxuICAgICAgICAgIHRoaXMuY29ubi5vbmVycm9yID0gZnVuY3Rpb24gKCl7IH0gLy8gbm9vcFxuICAgICAgICAgIHRoaXMuY29ubi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgICAgICAgdGhpcy5jb25uLm9uY2xvc2UgPSBmdW5jdGlvbiAoKXsgfSAvLyBub29wXG4gICAgICAgICAgdGhpcy5jb25uID0gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgd2FpdEZvckJ1ZmZlckRvbmUoY2FsbGJhY2ssIHRyaWVzID0gMSl7XG4gICAgaWYodHJpZXMgPT09IDUgfHwgIXRoaXMuY29ubiB8fCAhdGhpcy5jb25uLmJ1ZmZlcmVkQW1vdW50KXtcbiAgICAgIGNhbGxiYWNrKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy53YWl0Rm9yQnVmZmVyRG9uZShjYWxsYmFjaywgdHJpZXMgKyAxKVxuICAgIH0sIDE1MCAqIHRyaWVzKVxuICB9XG5cbiAgd2FpdEZvclNvY2tldENsb3NlZChjYWxsYmFjaywgdHJpZXMgPSAxKXtcbiAgICBpZih0cmllcyA9PT0gNSB8fCAhdGhpcy5jb25uIHx8IHRoaXMuY29ubi5yZWFkeVN0YXRlID09PSBTT0NLRVRfU1RBVEVTLmNsb3NlZCl7XG4gICAgICBjYWxsYmFjaygpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMud2FpdEZvclNvY2tldENsb3NlZChjYWxsYmFjaywgdHJpZXMgKyAxKVxuICAgIH0sIDE1MCAqIHRyaWVzKVxuICB9XG5cbiAgb25Db25uQ2xvc2UoZXZlbnQpe1xuICAgIGxldCBjbG9zZUNvZGUgPSBldmVudCAmJiBldmVudC5jb2RlXG4gICAgaWYodGhpcy5oYXNMb2dnZXIoKSkgdGhpcy5sb2coXCJ0cmFuc3BvcnRcIiwgXCJjbG9zZVwiLCBldmVudClcbiAgICB0aGlzLnRyaWdnZXJDaGFuRXJyb3IoKVxuICAgIHRoaXMuY2xlYXJIZWFydGJlYXRzKClcbiAgICBpZighdGhpcy5jbG9zZVdhc0NsZWFuICYmIGNsb3NlQ29kZSAhPT0gMTAwMCl7XG4gICAgICB0aGlzLnJlY29ubmVjdFRpbWVyLnNjaGVkdWxlVGltZW91dCgpXG4gICAgfVxuICAgIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MuY2xvc2UuZm9yRWFjaCgoWywgY2FsbGJhY2tdKSA9PiBjYWxsYmFjayhldmVudCkpXG4gIH1cblxuICAvKipcbiAgICogQHByaXZhdGVcbiAgICovXG4gIG9uQ29ubkVycm9yKGVycm9yKXtcbiAgICBpZih0aGlzLmhhc0xvZ2dlcigpKSB0aGlzLmxvZyhcInRyYW5zcG9ydFwiLCBlcnJvcilcbiAgICBsZXQgdHJhbnNwb3J0QmVmb3JlID0gdGhpcy50cmFuc3BvcnRcbiAgICBsZXQgZXN0YWJsaXNoZWRCZWZvcmUgPSB0aGlzLmVzdGFibGlzaGVkQ29ubmVjdGlvbnNcbiAgICB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmVycm9yLmZvckVhY2goKFssIGNhbGxiYWNrXSkgPT4ge1xuICAgICAgY2FsbGJhY2soZXJyb3IsIHRyYW5zcG9ydEJlZm9yZSwgZXN0YWJsaXNoZWRCZWZvcmUpXG4gICAgfSlcbiAgICBpZih0cmFuc3BvcnRCZWZvcmUgPT09IHRoaXMudHJhbnNwb3J0IHx8IGVzdGFibGlzaGVkQmVmb3JlID4gMCl7XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuRXJyb3IoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgdHJpZ2dlckNoYW5FcnJvcigpe1xuICAgIHRoaXMuY2hhbm5lbHMuZm9yRWFjaChjaGFubmVsID0+IHtcbiAgICAgIGlmKCEoY2hhbm5lbC5pc0Vycm9yZWQoKSB8fCBjaGFubmVsLmlzTGVhdmluZygpIHx8IGNoYW5uZWwuaXNDbG9zZWQoKSkpe1xuICAgICAgICBjaGFubmVsLnRyaWdnZXIoQ0hBTk5FTF9FVkVOVFMuZXJyb3IpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgY29ubmVjdGlvblN0YXRlKCl7XG4gICAgc3dpdGNoKHRoaXMuY29ubiAmJiB0aGlzLmNvbm4ucmVhZHlTdGF0ZSl7XG4gICAgICBjYXNlIFNPQ0tFVF9TVEFURVMuY29ubmVjdGluZzogcmV0dXJuIFwiY29ubmVjdGluZ1wiXG4gICAgICBjYXNlIFNPQ0tFVF9TVEFURVMub3BlbjogcmV0dXJuIFwib3BlblwiXG4gICAgICBjYXNlIFNPQ0tFVF9TVEFURVMuY2xvc2luZzogcmV0dXJuIFwiY2xvc2luZ1wiXG4gICAgICBkZWZhdWx0OiByZXR1cm4gXCJjbG9zZWRcIlxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGlzQ29ubmVjdGVkKCl7IHJldHVybiB0aGlzLmNvbm5lY3Rpb25TdGF0ZSgpID09PSBcIm9wZW5cIiB9XG5cbiAgLyoqXG4gICAqIEBwcml2YXRlXG4gICAqXG4gICAqIEBwYXJhbSB7Q2hhbm5lbH1cbiAgICovXG4gIHJlbW92ZShjaGFubmVsKXtcbiAgICB0aGlzLm9mZihjaGFubmVsLnN0YXRlQ2hhbmdlUmVmcylcbiAgICB0aGlzLmNoYW5uZWxzID0gdGhpcy5jaGFubmVscy5maWx0ZXIoYyA9PiBjLmpvaW5SZWYoKSAhPT0gY2hhbm5lbC5qb2luUmVmKCkpXG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBgb25PcGVuYCwgYG9uQ2xvc2VgLCBgb25FcnJvcixgIGFuZCBgb25NZXNzYWdlYCByZWdpc3RyYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge3JlZnN9IC0gbGlzdCBvZiByZWZzIHJldHVybmVkIGJ5IGNhbGxzIHRvXG4gICAqICAgICAgICAgICAgICAgICBgb25PcGVuYCwgYG9uQ2xvc2VgLCBgb25FcnJvcixgIGFuZCBgb25NZXNzYWdlYFxuICAgKi9cbiAgb2ZmKHJlZnMpe1xuICAgIGZvcihsZXQga2V5IGluIHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3Mpe1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrc1trZXldID0gdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrc1trZXldLmZpbHRlcigoW3JlZl0pID0+IHtcbiAgICAgICAgcmV0dXJuIHJlZnMuaW5kZXhPZihyZWYpID09PSAtMVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgbmV3IGNoYW5uZWwgZm9yIHRoZSBnaXZlbiB0b3BpY1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdG9waWNcbiAgICogQHBhcmFtIHtPYmplY3R9IGNoYW5QYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgY2hhbm5lbFxuICAgKiBAcmV0dXJucyB7Q2hhbm5lbH1cbiAgICovXG4gIGNoYW5uZWwodG9waWMsIGNoYW5QYXJhbXMgPSB7fSl7XG4gICAgbGV0IGNoYW4gPSBuZXcgQ2hhbm5lbCh0b3BpYywgY2hhblBhcmFtcywgdGhpcylcbiAgICB0aGlzLmNoYW5uZWxzLnB1c2goY2hhbilcbiAgICByZXR1cm4gY2hhblxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhXG4gICAqL1xuICBwdXNoKGRhdGEpe1xuICAgIGlmKHRoaXMuaGFzTG9nZ2VyKCkpe1xuICAgICAgbGV0IHt0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiwgam9pbl9yZWZ9ID0gZGF0YVxuICAgICAgdGhpcy5sb2coXCJwdXNoXCIsIGAke3RvcGljfSAke2V2ZW50fSAoJHtqb2luX3JlZn0sICR7cmVmfSlgLCBwYXlsb2FkKVxuICAgIH1cblxuICAgIGlmKHRoaXMuaXNDb25uZWN0ZWQoKSl7XG4gICAgICB0aGlzLmVuY29kZShkYXRhLCByZXN1bHQgPT4gdGhpcy5jb25uLnNlbmQocmVzdWx0KSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZW5kQnVmZmVyLnB1c2goKCkgPT4gdGhpcy5lbmNvZGUoZGF0YSwgcmVzdWx0ID0+IHRoaXMuY29ubi5zZW5kKHJlc3VsdCkpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIG5leHQgbWVzc2FnZSByZWYsIGFjY291bnRpbmcgZm9yIG92ZXJmbG93c1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgbWFrZVJlZigpe1xuICAgIGxldCBuZXdSZWYgPSB0aGlzLnJlZiArIDFcbiAgICBpZihuZXdSZWYgPT09IHRoaXMucmVmKXsgdGhpcy5yZWYgPSAwIH0gZWxzZSB7IHRoaXMucmVmID0gbmV3UmVmIH1cblxuICAgIHJldHVybiB0aGlzLnJlZi50b1N0cmluZygpXG4gIH1cblxuICBzZW5kSGVhcnRiZWF0KCl7XG4gICAgaWYodGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmICYmICF0aGlzLmlzQ29ubmVjdGVkKCkpeyByZXR1cm4gfVxuICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IHRoaXMubWFrZVJlZigpXG4gICAgdGhpcy5wdXNoKHt0b3BpYzogXCJwaG9lbml4XCIsIGV2ZW50OiBcImhlYXJ0YmVhdFwiLCBwYXlsb2FkOiB7fSwgcmVmOiB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWZ9KVxuICAgIHRoaXMuaGVhcnRiZWF0VGltZW91dFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmhlYXJ0YmVhdFRpbWVvdXQoKSwgdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zKVxuICB9XG5cbiAgZmx1c2hTZW5kQnVmZmVyKCl7XG4gICAgaWYodGhpcy5pc0Nvbm5lY3RlZCgpICYmIHRoaXMuc2VuZEJ1ZmZlci5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMuc2VuZEJ1ZmZlci5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKCkpXG4gICAgICB0aGlzLnNlbmRCdWZmZXIgPSBbXVxuICAgIH1cbiAgfVxuXG4gIG9uQ29ubk1lc3NhZ2UocmF3TWVzc2FnZSl7XG4gICAgdGhpcy5kZWNvZGUocmF3TWVzc2FnZS5kYXRhLCBtc2cgPT4ge1xuICAgICAgbGV0IHt0b3BpYywgZXZlbnQsIHBheWxvYWQsIHJlZiwgam9pbl9yZWZ9ID0gbXNnXG4gICAgICBpZihyZWYgJiYgcmVmID09PSB0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYpe1xuICAgICAgICB0aGlzLmNsZWFySGVhcnRiZWF0cygpXG4gICAgICAgIHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiA9IG51bGxcbiAgICAgICAgdGhpcy5oZWFydGJlYXRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZW5kSGVhcnRiZWF0KCksIHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcylcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5oYXNMb2dnZXIoKSkgdGhpcy5sb2coXCJyZWNlaXZlXCIsIGAke3BheWxvYWQuc3RhdHVzIHx8IFwiXCJ9ICR7dG9waWN9ICR7ZXZlbnR9ICR7cmVmICYmIFwiKFwiICsgcmVmICsgXCIpXCIgfHwgXCJcIn1gLCBwYXlsb2FkKVxuXG4gICAgICBmb3IobGV0IGkgPSAwOyBpIDwgdGhpcy5jaGFubmVscy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLmNoYW5uZWxzW2ldXG4gICAgICAgIGlmKCFjaGFubmVsLmlzTWVtYmVyKHRvcGljLCBldmVudCwgcGF5bG9hZCwgam9pbl9yZWYpKXsgY29udGludWUgfVxuICAgICAgICBjaGFubmVsLnRyaWdnZXIoZXZlbnQsIHBheWxvYWQsIHJlZiwgam9pbl9yZWYpXG4gICAgICB9XG5cbiAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm1lc3NhZ2UubGVuZ3RoOyBpKyspe1xuICAgICAgICBsZXQgWywgY2FsbGJhY2tdID0gdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5tZXNzYWdlW2ldXG4gICAgICAgIGNhbGxiYWNrKG1zZylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbGVhdmVPcGVuVG9waWModG9waWMpe1xuICAgIGxldCBkdXBDaGFubmVsID0gdGhpcy5jaGFubmVscy5maW5kKGMgPT4gYy50b3BpYyA9PT0gdG9waWMgJiYgKGMuaXNKb2luZWQoKSB8fCBjLmlzSm9pbmluZygpKSlcbiAgICBpZihkdXBDaGFubmVsKXtcbiAgICAgIGlmKHRoaXMuaGFzTG9nZ2VyKCkpIHRoaXMubG9nKFwidHJhbnNwb3J0XCIsIGBsZWF2aW5nIGR1cGxpY2F0ZSB0b3BpYyBcIiR7dG9waWN9XCJgKVxuICAgICAgZHVwQ2hhbm5lbC5sZWF2ZSgpXG4gICAgfVxuICB9XG59IiwgIlxuZXhwb3J0IGNvbnN0IENPTlNFQ1VUSVZFX1JFTE9BRFMgPSBcImNvbnNlY3V0aXZlLXJlbG9hZHNcIlxuZXhwb3J0IGNvbnN0IE1BWF9SRUxPQURTID0gMTBcbmV4cG9ydCBjb25zdCBSRUxPQURfSklUVEVSX01JTiA9IDUwMDBcbmV4cG9ydCBjb25zdCBSRUxPQURfSklUVEVSX01BWCA9IDEwMDAwXG5leHBvcnQgY29uc3QgRkFJTFNBRkVfSklUVEVSID0gMzAwMDBcbmV4cG9ydCBjb25zdCBQSFhfRVZFTlRfQ0xBU1NFUyA9IFtcbiAgXCJwaHgtY2xpY2stbG9hZGluZ1wiLCBcInBoeC1jaGFuZ2UtbG9hZGluZ1wiLCBcInBoeC1zdWJtaXQtbG9hZGluZ1wiLFxuICBcInBoeC1rZXlkb3duLWxvYWRpbmdcIiwgXCJwaHgta2V5dXAtbG9hZGluZ1wiLCBcInBoeC1ibHVyLWxvYWRpbmdcIiwgXCJwaHgtZm9jdXMtbG9hZGluZ1wiXG5dXG5leHBvcnQgY29uc3QgUEhYX0NPTVBPTkVOVCA9IFwiZGF0YS1waHgtY29tcG9uZW50XCJcbmV4cG9ydCBjb25zdCBQSFhfTElWRV9MSU5LID0gXCJkYXRhLXBoeC1saW5rXCJcbmV4cG9ydCBjb25zdCBQSFhfVFJBQ0tfU1RBVElDID0gXCJ0cmFjay1zdGF0aWNcIlxuZXhwb3J0IGNvbnN0IFBIWF9MSU5LX1NUQVRFID0gXCJkYXRhLXBoeC1saW5rLXN0YXRlXCJcbmV4cG9ydCBjb25zdCBQSFhfUkVGID0gXCJkYXRhLXBoeC1yZWZcIlxuZXhwb3J0IGNvbnN0IFBIWF9SRUZfU1JDID0gXCJkYXRhLXBoeC1yZWYtc3JjXCJcbmV4cG9ydCBjb25zdCBQSFhfVFJBQ0tfVVBMT0FEUyA9IFwidHJhY2stdXBsb2Fkc1wiXG5leHBvcnQgY29uc3QgUEhYX1VQTE9BRF9SRUYgPSBcImRhdGEtcGh4LXVwbG9hZC1yZWZcIlxuZXhwb3J0IGNvbnN0IFBIWF9QUkVGTElHSFRFRF9SRUZTID0gXCJkYXRhLXBoeC1wcmVmbGlnaHRlZC1yZWZzXCJcbmV4cG9ydCBjb25zdCBQSFhfRE9ORV9SRUZTID0gXCJkYXRhLXBoeC1kb25lLXJlZnNcIlxuZXhwb3J0IGNvbnN0IFBIWF9EUk9QX1RBUkdFVCA9IFwiZHJvcC10YXJnZXRcIlxuZXhwb3J0IGNvbnN0IFBIWF9BQ1RJVkVfRU5UUllfUkVGUyA9IFwiZGF0YS1waHgtYWN0aXZlLXJlZnNcIlxuZXhwb3J0IGNvbnN0IFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCA9IFwicGh4OmxpdmUtZmlsZTp1cGRhdGVkXCJcbmV4cG9ydCBjb25zdCBQSFhfU0tJUCA9IFwiZGF0YS1waHgtc2tpcFwiXG5leHBvcnQgY29uc3QgUEhYX1BSVU5FID0gXCJkYXRhLXBoeC1wcnVuZVwiXG5leHBvcnQgY29uc3QgUEhYX1BBR0VfTE9BRElORyA9IFwicGFnZS1sb2FkaW5nXCJcbmV4cG9ydCBjb25zdCBQSFhfQ09OTkVDVEVEX0NMQVNTID0gXCJwaHgtY29ubmVjdGVkXCJcbmV4cG9ydCBjb25zdCBQSFhfRElTQ09OTkVDVEVEX0NMQVNTID0gXCJwaHgtbG9hZGluZ1wiXG5leHBvcnQgY29uc3QgUEhYX05PX0ZFRURCQUNLX0NMQVNTID0gXCJwaHgtbm8tZmVlZGJhY2tcIlxuZXhwb3J0IGNvbnN0IFBIWF9FUlJPUl9DTEFTUyA9IFwicGh4LWVycm9yXCJcbmV4cG9ydCBjb25zdCBQSFhfUEFSRU5UX0lEID0gXCJkYXRhLXBoeC1wYXJlbnQtaWRcIlxuZXhwb3J0IGNvbnN0IFBIWF9NQUlOID0gXCJkYXRhLXBoeC1tYWluXCJcbmV4cG9ydCBjb25zdCBQSFhfUk9PVF9JRCA9IFwiZGF0YS1waHgtcm9vdC1pZFwiXG5leHBvcnQgY29uc3QgUEhYX1RSSUdHRVJfQUNUSU9OID0gXCJ0cmlnZ2VyLWFjdGlvblwiXG5leHBvcnQgY29uc3QgUEhYX0ZFRURCQUNLX0ZPUiA9IFwiZmVlZGJhY2stZm9yXCJcbmV4cG9ydCBjb25zdCBQSFhfSEFTX0ZPQ1VTRUQgPSBcInBoeC1oYXMtZm9jdXNlZFwiXG5leHBvcnQgY29uc3QgRk9DVVNBQkxFX0lOUFVUUyA9IFtcInRleHRcIiwgXCJ0ZXh0YXJlYVwiLCBcIm51bWJlclwiLCBcImVtYWlsXCIsIFwicGFzc3dvcmRcIiwgXCJzZWFyY2hcIiwgXCJ0ZWxcIiwgXCJ1cmxcIiwgXCJkYXRlXCIsIFwidGltZVwiLCBcImRhdGV0aW1lLWxvY2FsXCIsIFwiY29sb3JcIiwgXCJyYW5nZVwiXVxuZXhwb3J0IGNvbnN0IENIRUNLQUJMRV9JTlBVVFMgPSBbXCJjaGVja2JveFwiLCBcInJhZGlvXCJdXG5leHBvcnQgY29uc3QgUEhYX0hBU19TVUJNSVRURUQgPSBcInBoeC1oYXMtc3VibWl0dGVkXCJcbmV4cG9ydCBjb25zdCBQSFhfU0VTU0lPTiA9IFwiZGF0YS1waHgtc2Vzc2lvblwiXG5leHBvcnQgY29uc3QgUEhYX1ZJRVdfU0VMRUNUT1IgPSBgWyR7UEhYX1NFU1NJT059XWBcbmV4cG9ydCBjb25zdCBQSFhfU1RJQ0tZID0gXCJkYXRhLXBoeC1zdGlja3lcIlxuZXhwb3J0IGNvbnN0IFBIWF9TVEFUSUMgPSBcImRhdGEtcGh4LXN0YXRpY1wiXG5leHBvcnQgY29uc3QgUEhYX1JFQURPTkxZID0gXCJkYXRhLXBoeC1yZWFkb25seVwiXG5leHBvcnQgY29uc3QgUEhYX0RJU0FCTEVEID0gXCJkYXRhLXBoeC1kaXNhYmxlZFwiXG5leHBvcnQgY29uc3QgUEhYX0RJU0FCTEVfV0lUSCA9IFwiZGlzYWJsZS13aXRoXCJcbmV4cG9ydCBjb25zdCBQSFhfRElTQUJMRV9XSVRIX1JFU1RPUkUgPSBcImRhdGEtcGh4LWRpc2FibGUtd2l0aC1yZXN0b3JlXCJcbmV4cG9ydCBjb25zdCBQSFhfSE9PSyA9IFwiaG9va1wiXG5leHBvcnQgY29uc3QgUEhYX0RFQk9VTkNFID0gXCJkZWJvdW5jZVwiXG5leHBvcnQgY29uc3QgUEhYX1RIUk9UVExFID0gXCJ0aHJvdHRsZVwiXG5leHBvcnQgY29uc3QgUEhYX1VQREFURSA9IFwidXBkYXRlXCJcbmV4cG9ydCBjb25zdCBQSFhfS0VZID0gXCJrZXlcIlxuZXhwb3J0IGNvbnN0IFBIWF9QUklWQVRFID0gXCJwaHhQcml2YXRlXCJcbmV4cG9ydCBjb25zdCBQSFhfQVVUT19SRUNPVkVSID0gXCJhdXRvLXJlY292ZXJcIlxuZXhwb3J0IGNvbnN0IFBIWF9MVl9ERUJVRyA9IFwicGh4OmxpdmUtc29ja2V0OmRlYnVnXCJcbmV4cG9ydCBjb25zdCBQSFhfTFZfUFJPRklMRSA9IFwicGh4OmxpdmUtc29ja2V0OnByb2ZpbGluZ1wiXG5leHBvcnQgY29uc3QgUEhYX0xWX0xBVEVOQ1lfU0lNID0gXCJwaHg6bGl2ZS1zb2NrZXQ6bGF0ZW5jeS1zaW1cIlxuZXhwb3J0IGNvbnN0IFBIWF9QUk9HUkVTUyA9IFwicHJvZ3Jlc3NcIlxuZXhwb3J0IGNvbnN0IExPQURFUl9USU1FT1VUID0gMVxuZXhwb3J0IGNvbnN0IEJFRk9SRV9VTkxPQURfTE9BREVSX1RJTUVPVVQgPSAyMDBcbmV4cG9ydCBjb25zdCBCSU5ESU5HX1BSRUZJWCA9IFwicGh4LVwiXG5leHBvcnQgY29uc3QgUFVTSF9USU1FT1VUID0gMzAwMDBcbmV4cG9ydCBjb25zdCBMSU5LX0hFQURFUiA9IFwieC1yZXF1ZXN0ZWQtd2l0aFwiXG5leHBvcnQgY29uc3QgUkVTUE9OU0VfVVJMX0hFQURFUiA9IFwieC1yZXNwb25zZS11cmxcIlxuZXhwb3J0IGNvbnN0IERFQk9VTkNFX1RSSUdHRVIgPSBcImRlYm91bmNlLXRyaWdnZXJcIlxuZXhwb3J0IGNvbnN0IFRIUk9UVExFRCA9IFwidGhyb3R0bGVkXCJcbmV4cG9ydCBjb25zdCBERUJPVU5DRV9QUkVWX0tFWSA9IFwiZGVib3VuY2UtcHJldi1rZXlcIlxuZXhwb3J0IGNvbnN0IERFRkFVTFRTID0ge1xuICBkZWJvdW5jZTogMzAwLFxuICB0aHJvdHRsZTogMzAwXG59XG5cbi8vIFJlbmRlcmVkXG5leHBvcnQgY29uc3QgRFlOQU1JQ1MgPSBcImRcIlxuZXhwb3J0IGNvbnN0IFNUQVRJQyA9IFwic1wiXG5leHBvcnQgY29uc3QgQ09NUE9ORU5UUyA9IFwiY1wiXG5leHBvcnQgY29uc3QgRVZFTlRTID0gXCJlXCJcbmV4cG9ydCBjb25zdCBSRVBMWSA9IFwiclwiXG5leHBvcnQgY29uc3QgVElUTEUgPSBcInRcIlxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFUyA9IFwicFwiXG4iLCAiaW1wb3J0IHtcbiAgbG9nRXJyb3Jcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbnRyeVVwbG9hZGVyIHtcbiAgY29uc3RydWN0b3IoZW50cnksIGNodW5rU2l6ZSwgbGl2ZVNvY2tldCl7XG4gICAgdGhpcy5saXZlU29ja2V0ID0gbGl2ZVNvY2tldFxuICAgIHRoaXMuZW50cnkgPSBlbnRyeVxuICAgIHRoaXMub2Zmc2V0ID0gMFxuICAgIHRoaXMuY2h1bmtTaXplID0gY2h1bmtTaXplXG4gICAgdGhpcy5jaHVua1RpbWVyID0gbnVsbFxuICAgIHRoaXMudXBsb2FkQ2hhbm5lbCA9IGxpdmVTb2NrZXQuY2hhbm5lbChgbHZ1OiR7ZW50cnkucmVmfWAsIHt0b2tlbjogZW50cnkubWV0YWRhdGEoKX0pXG4gIH1cblxuICBlcnJvcihyZWFzb24pe1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmNodW5rVGltZXIpXG4gICAgdGhpcy51cGxvYWRDaGFubmVsLmxlYXZlKClcbiAgICB0aGlzLmVudHJ5LmVycm9yKHJlYXNvbilcbiAgfVxuXG4gIHVwbG9hZCgpe1xuICAgIHRoaXMudXBsb2FkQ2hhbm5lbC5vbkVycm9yKHJlYXNvbiA9PiB0aGlzLmVycm9yKHJlYXNvbikpXG4gICAgdGhpcy51cGxvYWRDaGFubmVsLmpvaW4oKVxuICAgICAgLnJlY2VpdmUoXCJva1wiLCBfZGF0YSA9PiB0aGlzLnJlYWROZXh0Q2h1bmsoKSlcbiAgICAgIC5yZWNlaXZlKFwiZXJyb3JcIiwgcmVhc29uID0+IHRoaXMuZXJyb3IocmVhc29uKSlcbiAgfVxuXG4gIGlzRG9uZSgpeyByZXR1cm4gdGhpcy5vZmZzZXQgPj0gdGhpcy5lbnRyeS5maWxlLnNpemUgfVxuXG4gIHJlYWROZXh0Q2h1bmsoKXtcbiAgICBsZXQgcmVhZGVyID0gbmV3IHdpbmRvdy5GaWxlUmVhZGVyKClcbiAgICBsZXQgYmxvYiA9IHRoaXMuZW50cnkuZmlsZS5zbGljZSh0aGlzLm9mZnNldCwgdGhpcy5jaHVua1NpemUgKyB0aGlzLm9mZnNldClcbiAgICByZWFkZXIub25sb2FkID0gKGUpID0+IHtcbiAgICAgIGlmKGUudGFyZ2V0LmVycm9yID09PSBudWxsKXtcbiAgICAgICAgdGhpcy5vZmZzZXQgKz0gZS50YXJnZXQucmVzdWx0LmJ5dGVMZW5ndGhcbiAgICAgICAgdGhpcy5wdXNoQ2h1bmsoZS50YXJnZXQucmVzdWx0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGxvZ0Vycm9yKFwiUmVhZCBlcnJvcjogXCIgKyBlLnRhcmdldC5lcnJvcilcbiAgICAgIH1cbiAgICB9XG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpXG4gIH1cblxuICBwdXNoQ2h1bmsoY2h1bmspe1xuICAgIGlmKCF0aGlzLnVwbG9hZENoYW5uZWwuaXNKb2luZWQoKSl7IHJldHVybiB9XG4gICAgdGhpcy51cGxvYWRDaGFubmVsLnB1c2goXCJjaHVua1wiLCBjaHVuaylcbiAgICAgIC5yZWNlaXZlKFwib2tcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLmVudHJ5LnByb2dyZXNzKCh0aGlzLm9mZnNldCAvIHRoaXMuZW50cnkuZmlsZS5zaXplKSAqIDEwMClcbiAgICAgICAgaWYoIXRoaXMuaXNEb25lKCkpe1xuICAgICAgICAgIHRoaXMuY2h1bmtUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWFkTmV4dENodW5rKCksIHRoaXMubGl2ZVNvY2tldC5nZXRMYXRlbmN5U2ltKCkgfHwgMClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIFBIWF9WSUVXX1NFTEVDVE9SXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCBFbnRyeVVwbG9hZGVyIGZyb20gXCIuL2VudHJ5X3VwbG9hZGVyXCJcblxuZXhwb3J0IGxldCBsb2dFcnJvciA9IChtc2csIG9iaikgPT4gY29uc29sZS5lcnJvciAmJiBjb25zb2xlLmVycm9yKG1zZywgb2JqKVxuXG5leHBvcnQgbGV0IGlzQ2lkID0gKGNpZCkgPT4ge1xuICBsZXQgdHlwZSA9IHR5cGVvZihjaWQpXG4gIHJldHVybiB0eXBlID09PSBcIm51bWJlclwiIHx8ICh0eXBlID09PSBcInN0cmluZ1wiICYmIC9eKDB8WzEtOV1cXGQqKSQvLnRlc3QoY2lkKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdER1cGxpY2F0ZUlkcygpe1xuICBsZXQgaWRzID0gbmV3IFNldCgpXG4gIGxldCBlbGVtcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIqW2lkXVwiKVxuICBmb3IobGV0IGkgPSAwLCBsZW4gPSBlbGVtcy5sZW5ndGg7IGkgPCBsZW47IGkrKyl7XG4gICAgaWYoaWRzLmhhcyhlbGVtc1tpXS5pZCkpe1xuICAgICAgY29uc29sZS5lcnJvcihgTXVsdGlwbGUgSURzIGRldGVjdGVkOiAke2VsZW1zW2ldLmlkfS4gRW5zdXJlIHVuaXF1ZSBlbGVtZW50IGlkcy5gKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZHMuYWRkKGVsZW1zW2ldLmlkKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgbGV0IGRlYnVnID0gKHZpZXcsIGtpbmQsIG1zZywgb2JqKSA9PiB7XG4gIGlmKHZpZXcubGl2ZVNvY2tldC5pc0RlYnVnRW5hYmxlZCgpKXtcbiAgICBjb25zb2xlLmxvZyhgJHt2aWV3LmlkfSAke2tpbmR9OiAke21zZ30gLSBgLCBvYmopXG4gIH1cbn1cblxuLy8gd3JhcHMgdmFsdWUgaW4gY2xvc3VyZSBvciByZXR1cm5zIGNsb3N1cmVcbmV4cG9ydCBsZXQgY2xvc3VyZSA9ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIiA/IHZhbCA6IGZ1bmN0aW9uICgpeyByZXR1cm4gdmFsIH1cblxuZXhwb3J0IGxldCBjbG9uZSA9IChvYmopID0+IHsgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob2JqKSkgfVxuXG5leHBvcnQgbGV0IGNsb3Nlc3RQaHhCaW5kaW5nID0gKGVsLCBiaW5kaW5nLCBib3JkZXJFbCkgPT4ge1xuICBkbyB7XG4gICAgaWYoZWwubWF0Y2hlcyhgWyR7YmluZGluZ31dYCkpeyByZXR1cm4gZWwgfVxuICAgIGVsID0gZWwucGFyZW50RWxlbWVudCB8fCBlbC5wYXJlbnROb2RlXG4gIH0gd2hpbGUoZWwgIT09IG51bGwgJiYgZWwubm9kZVR5cGUgPT09IDEgJiYgISgoYm9yZGVyRWwgJiYgYm9yZGVyRWwuaXNTYW1lTm9kZShlbCkpIHx8IGVsLm1hdGNoZXMoUEhYX1ZJRVdfU0VMRUNUT1IpKSlcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGxldCBpc09iamVjdCA9IChvYmopID0+IHtcbiAgcmV0dXJuIG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiICYmICEob2JqIGluc3RhbmNlb2YgQXJyYXkpXG59XG5cbmV4cG9ydCBsZXQgaXNFcXVhbE9iaiA9IChvYmoxLCBvYmoyKSA9PiBKU09OLnN0cmluZ2lmeShvYmoxKSA9PT0gSlNPTi5zdHJpbmdpZnkob2JqMilcblxuZXhwb3J0IGxldCBpc0VtcHR5ID0gKG9iaikgPT4ge1xuICBmb3IobGV0IHggaW4gb2JqKXsgcmV0dXJuIGZhbHNlIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGxldCBtYXliZSA9IChlbCwgY2FsbGJhY2spID0+IGVsICYmIGNhbGxiYWNrKGVsKVxuXG5leHBvcnQgbGV0IGNoYW5uZWxVcGxvYWRlciA9IGZ1bmN0aW9uIChlbnRyaWVzLCBvbkVycm9yLCByZXNwLCBsaXZlU29ja2V0KXtcbiAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICBsZXQgZW50cnlVcGxvYWRlciA9IG5ldyBFbnRyeVVwbG9hZGVyKGVudHJ5LCByZXNwLmNvbmZpZy5jaHVua19zaXplLCBsaXZlU29ja2V0KVxuICAgIGVudHJ5VXBsb2FkZXIudXBsb2FkKClcbiAgfSlcbn1cbiIsICJsZXQgQnJvd3NlciA9IHtcbiAgY2FuUHVzaFN0YXRlKCl7IHJldHVybiAodHlwZW9mIChoaXN0b3J5LnB1c2hTdGF0ZSkgIT09IFwidW5kZWZpbmVkXCIpIH0sXG5cbiAgZHJvcExvY2FsKGxvY2FsU3RvcmFnZSwgbmFtZXNwYWNlLCBzdWJrZXkpe1xuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmxvY2FsS2V5KG5hbWVzcGFjZSwgc3Via2V5KSlcbiAgfSxcblxuICB1cGRhdGVMb2NhbChsb2NhbFN0b3JhZ2UsIG5hbWVzcGFjZSwgc3Via2V5LCBpbml0aWFsLCBmdW5jKXtcbiAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0TG9jYWwobG9jYWxTdG9yYWdlLCBuYW1lc3BhY2UsIHN1YmtleSlcbiAgICBsZXQga2V5ID0gdGhpcy5sb2NhbEtleShuYW1lc3BhY2UsIHN1YmtleSlcbiAgICBsZXQgbmV3VmFsID0gY3VycmVudCA9PT0gbnVsbCA/IGluaXRpYWwgOiBmdW5jKGN1cnJlbnQpXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShuZXdWYWwpKVxuICAgIHJldHVybiBuZXdWYWxcbiAgfSxcblxuICBnZXRMb2NhbChsb2NhbFN0b3JhZ2UsIG5hbWVzcGFjZSwgc3Via2V5KXtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsS2V5KG5hbWVzcGFjZSwgc3Via2V5KSkpXG4gIH0sXG5cbiAgdXBkYXRlQ3VycmVudFN0YXRlKGNhbGxiYWNrKXtcbiAgICBpZighdGhpcy5jYW5QdXNoU3RhdGUoKSl7IHJldHVybiB9XG4gICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoY2FsbGJhY2soaGlzdG9yeS5zdGF0ZSB8fCB7fSksIFwiXCIsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKVxuICB9LFxuXG4gIHB1c2hTdGF0ZShraW5kLCBtZXRhLCB0byl7XG4gICAgaWYodGhpcy5jYW5QdXNoU3RhdGUoKSl7XG4gICAgICBpZih0byAhPT0gd2luZG93LmxvY2F0aW9uLmhyZWYpe1xuICAgICAgICBpZihtZXRhLnR5cGUgPT0gXCJyZWRpcmVjdFwiICYmIG1ldGEuc2Nyb2xsKXtcbiAgICAgICAgICAvLyBJZiB3ZSdyZSByZWRpcmVjdGluZyBzdG9yZSB0aGUgY3VycmVudCBzY3JvbGxZIGZvciB0aGUgY3VycmVudCBoaXN0b3J5IHN0YXRlLlxuICAgICAgICAgIGxldCBjdXJyZW50U3RhdGUgPSBoaXN0b3J5LnN0YXRlIHx8IHt9XG4gICAgICAgICAgY3VycmVudFN0YXRlLnNjcm9sbCA9IG1ldGEuc2Nyb2xsXG4gICAgICAgICAgaGlzdG9yeS5yZXBsYWNlU3RhdGUoY3VycmVudFN0YXRlLCBcIlwiLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZSBtZXRhLnNjcm9sbCAvLyBPbmx5IHN0b3JlIHRoZSBzY3JvbGwgaW4gdGhlIHJlZGlyZWN0IGNhc2UuXG4gICAgICAgIGhpc3Rvcnlba2luZCArIFwiU3RhdGVcIl0obWV0YSwgXCJcIiwgdG8gfHwgbnVsbCkgLy8gSUUgd2lsbCBjb2VyY2UgdW5kZWZpbmVkIHRvIHN0cmluZ1xuICAgICAgICBsZXQgaGFzaEVsID0gdGhpcy5nZXRIYXNoVGFyZ2V0RWwod2luZG93LmxvY2F0aW9uLmhhc2gpXG5cbiAgICAgICAgaWYoaGFzaEVsKXtcbiAgICAgICAgICBoYXNoRWwuc2Nyb2xsSW50b1ZpZXcoKVxuICAgICAgICB9IGVsc2UgaWYobWV0YS50eXBlID09PSBcInJlZGlyZWN0XCIpe1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgMClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZGlyZWN0KHRvKVxuICAgIH1cbiAgfSxcblxuICBzZXRDb29raWUobmFtZSwgdmFsdWUpe1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IGAke25hbWV9PSR7dmFsdWV9YFxuICB9LFxuXG4gIGdldENvb2tpZShuYW1lKXtcbiAgICByZXR1cm4gZG9jdW1lbnQuY29va2llLnJlcGxhY2UobmV3IFJlZ0V4cChgKD86KD86XnwuKjtcXHMqKSR7bmFtZX1cXHMqXFw9XFxzKihbXjtdKikuKiQpfF4uKiRgKSwgXCIkMVwiKVxuICB9LFxuXG4gIHJlZGlyZWN0KHRvVVJMLCBmbGFzaCl7XG4gICAgaWYoZmxhc2gpeyBCcm93c2VyLnNldENvb2tpZShcIl9fcGhvZW5peF9mbGFzaF9fXCIsIGZsYXNoICsgXCI7IG1heC1hZ2U9NjAwMDA7IHBhdGg9L1wiKSB9XG4gICAgd2luZG93LmxvY2F0aW9uID0gdG9VUkxcbiAgfSxcblxuICBsb2NhbEtleShuYW1lc3BhY2UsIHN1YmtleSl7IHJldHVybiBgJHtuYW1lc3BhY2V9LSR7c3Via2V5fWAgfSxcblxuICBnZXRIYXNoVGFyZ2V0RWwobWF5YmVIYXNoKXtcbiAgICBsZXQgaGFzaCA9IG1heWJlSGFzaC50b1N0cmluZygpLnN1YnN0cmluZygxKVxuICAgIGlmKGhhc2ggPT09IFwiXCIpeyByZXR1cm4gfVxuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBhW25hbWU9XCIke2hhc2h9XCJdYClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBCcm93c2VyXG4iLCAiaW1wb3J0IHtcbiAgQ0hFQ0tBQkxFX0lOUFVUUyxcbiAgREVCT1VOQ0VfUFJFVl9LRVksXG4gIERFQk9VTkNFX1RSSUdHRVIsXG4gIEZPQ1VTQUJMRV9JTlBVVFMsXG4gIFBIWF9DT01QT05FTlQsXG4gIFBIWF9FVkVOVF9DTEFTU0VTLFxuICBQSFhfSEFTX0ZPQ1VTRUQsXG4gIFBIWF9IQVNfU1VCTUlUVEVELFxuICBQSFhfTUFJTixcbiAgUEhYX05PX0ZFRURCQUNLX0NMQVNTLFxuICBQSFhfUEFSRU5UX0lELFxuICBQSFhfUFJJVkFURSxcbiAgUEhYX1JFRixcbiAgUEhYX1JFRl9TUkMsXG4gIFBIWF9ST09UX0lELFxuICBQSFhfU0VTU0lPTixcbiAgUEhYX1NUQVRJQyxcbiAgUEhYX1VQTE9BRF9SRUYsXG4gIFBIWF9WSUVXX1NFTEVDVE9SLFxuICBQSFhfU1RJQ0tZLFxuICBUSFJPVFRMRURcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IHtcbiAgbG9nRXJyb3Jcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5sZXQgRE9NID0ge1xuICBieUlkKGlkKXsgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSB8fCBsb2dFcnJvcihgbm8gaWQgZm91bmQgZm9yICR7aWR9YCkgfSxcblxuICByZW1vdmVDbGFzcyhlbCwgY2xhc3NOYW1lKXtcbiAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSlcbiAgICBpZihlbC5jbGFzc0xpc3QubGVuZ3RoID09PSAwKXsgZWwucmVtb3ZlQXR0cmlidXRlKFwiY2xhc3NcIikgfVxuICB9LFxuXG4gIGFsbChub2RlLCBxdWVyeSwgY2FsbGJhY2spe1xuICAgIGlmKCFub2RlKXsgcmV0dXJuIFtdIH1cbiAgICBsZXQgYXJyYXkgPSBBcnJheS5mcm9tKG5vZGUucXVlcnlTZWxlY3RvckFsbChxdWVyeSkpXG4gICAgcmV0dXJuIGNhbGxiYWNrID8gYXJyYXkuZm9yRWFjaChjYWxsYmFjaykgOiBhcnJheVxuICB9LFxuXG4gIGNoaWxkTm9kZUxlbmd0aChodG1sKXtcbiAgICBsZXQgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGVtcGxhdGVcIilcbiAgICB0ZW1wbGF0ZS5pbm5lckhUTUwgPSBodG1sXG4gICAgcmV0dXJuIHRlbXBsYXRlLmNvbnRlbnQuY2hpbGRFbGVtZW50Q291bnRcbiAgfSxcblxuICBpc1VwbG9hZElucHV0KGVsKXsgcmV0dXJuIGVsLnR5cGUgPT09IFwiZmlsZVwiICYmIGVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRikgIT09IG51bGwgfSxcblxuICBmaW5kVXBsb2FkSW5wdXRzKG5vZGUpeyByZXR1cm4gdGhpcy5hbGwobm9kZSwgYGlucHV0W3R5cGU9XCJmaWxlXCJdWyR7UEhYX1VQTE9BRF9SRUZ9XWApIH0sXG5cbiAgZmluZENvbXBvbmVudE5vZGVMaXN0KG5vZGUsIGNpZCl7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyV2l0aGluU2FtZUxpdmVWaWV3KHRoaXMuYWxsKG5vZGUsIGBbJHtQSFhfQ09NUE9ORU5UfT1cIiR7Y2lkfVwiXWApLCBub2RlKVxuICB9LFxuXG4gIGlzUGh4RGVzdHJveWVkKG5vZGUpe1xuICAgIHJldHVybiBub2RlLmlkICYmIERPTS5wcml2YXRlKG5vZGUsIFwiZGVzdHJveWVkXCIpID8gdHJ1ZSA6IGZhbHNlXG4gIH0sXG5cbiAgbWFya1BoeENoaWxkRGVzdHJveWVkKGVsKXtcbiAgICBpZih0aGlzLmlzUGh4Q2hpbGQoZWwpKXsgZWwuc2V0QXR0cmlidXRlKFBIWF9TRVNTSU9OLCBcIlwiKSB9XG4gICAgdGhpcy5wdXRQcml2YXRlKGVsLCBcImRlc3Ryb3llZFwiLCB0cnVlKVxuICB9LFxuXG4gIGZpbmRQaHhDaGlsZHJlbkluRnJhZ21lbnQoaHRtbCwgcGFyZW50SWQpe1xuICAgIGxldCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKVxuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IGh0bWxcbiAgICByZXR1cm4gdGhpcy5maW5kUGh4Q2hpbGRyZW4odGVtcGxhdGUuY29udGVudCwgcGFyZW50SWQpXG4gIH0sXG5cbiAgaXNJZ25vcmVkKGVsLCBwaHhVcGRhdGUpe1xuICAgIHJldHVybiAoZWwuZ2V0QXR0cmlidXRlKHBoeFVwZGF0ZSkgfHwgZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1waHgtdXBkYXRlXCIpKSA9PT0gXCJpZ25vcmVcIlxuICB9LFxuXG4gIGlzUGh4VXBkYXRlKGVsLCBwaHhVcGRhdGUsIHVwZGF0ZVR5cGVzKXtcbiAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlICYmIHVwZGF0ZVR5cGVzLmluZGV4T2YoZWwuZ2V0QXR0cmlidXRlKHBoeFVwZGF0ZSkpID49IDBcbiAgfSxcblxuICBmaW5kUGh4U3RpY2t5KGVsKXsgcmV0dXJuIHRoaXMuYWxsKGVsLCBgWyR7UEhYX1NUSUNLWX1dYCkgfSxcblxuICBmaW5kUGh4Q2hpbGRyZW4oZWwsIHBhcmVudElkKXtcbiAgICByZXR1cm4gdGhpcy5hbGwoZWwsIGAke1BIWF9WSUVXX1NFTEVDVE9SfVske1BIWF9QQVJFTlRfSUR9PVwiJHtwYXJlbnRJZH1cIl1gKVxuICB9LFxuXG4gIGZpbmRQYXJlbnRDSURzKG5vZGUsIGNpZHMpe1xuICAgIGxldCBpbml0aWFsID0gbmV3IFNldChjaWRzKVxuICAgIHJldHVybiBjaWRzLnJlZHVjZSgoYWNjLCBjaWQpID0+IHtcbiAgICAgIGxldCBzZWxlY3RvciA9IGBbJHtQSFhfQ09NUE9ORU5UfT1cIiR7Y2lkfVwiXSBbJHtQSFhfQ09NUE9ORU5UfV1gXG5cbiAgICAgIHRoaXMuZmlsdGVyV2l0aGluU2FtZUxpdmVWaWV3KHRoaXMuYWxsKG5vZGUsIHNlbGVjdG9yKSwgbm9kZSlcbiAgICAgICAgLm1hcChlbCA9PiBwYXJzZUludChlbC5nZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVCkpKVxuICAgICAgICAuZm9yRWFjaChjaGlsZENJRCA9PiBhY2MuZGVsZXRlKGNoaWxkQ0lEKSlcblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sIGluaXRpYWwpXG4gIH0sXG5cbiAgZmlsdGVyV2l0aGluU2FtZUxpdmVWaWV3KG5vZGVzLCBwYXJlbnQpe1xuICAgIGlmKHBhcmVudC5xdWVyeVNlbGVjdG9yKFBIWF9WSUVXX1NFTEVDVE9SKSl7XG4gICAgICByZXR1cm4gbm9kZXMuZmlsdGVyKGVsID0+IHRoaXMud2l0aGluU2FtZUxpdmVWaWV3KGVsLCBwYXJlbnQpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbm9kZXNcbiAgICB9XG4gIH0sXG5cbiAgd2l0aGluU2FtZUxpdmVWaWV3KG5vZGUsIHBhcmVudCl7XG4gICAgd2hpbGUobm9kZSA9IG5vZGUucGFyZW50Tm9kZSl7XG4gICAgICBpZihub2RlLmlzU2FtZU5vZGUocGFyZW50KSl7IHJldHVybiB0cnVlIH1cbiAgICAgIGlmKG5vZGUuZ2V0QXR0cmlidXRlKFBIWF9TRVNTSU9OKSAhPT0gbnVsbCl7IHJldHVybiBmYWxzZSB9XG4gICAgfVxuICB9LFxuXG4gIHByaXZhdGUoZWwsIGtleSl7IHJldHVybiBlbFtQSFhfUFJJVkFURV0gJiYgZWxbUEhYX1BSSVZBVEVdW2tleV0gfSxcblxuICBkZWxldGVQcml2YXRlKGVsLCBrZXkpeyBlbFtQSFhfUFJJVkFURV0gJiYgZGVsZXRlIChlbFtQSFhfUFJJVkFURV1ba2V5XSkgfSxcblxuICBwdXRQcml2YXRlKGVsLCBrZXksIHZhbHVlKXtcbiAgICBpZighZWxbUEhYX1BSSVZBVEVdKXsgZWxbUEhYX1BSSVZBVEVdID0ge30gfVxuICAgIGVsW1BIWF9QUklWQVRFXVtrZXldID0gdmFsdWVcbiAgfSxcblxuICB1cGRhdGVQcml2YXRlKGVsLCBrZXksIGRlZmF1bHRWYWwsIHVwZGF0ZUZ1bmMpe1xuICAgIGxldCBleGlzdGluZyA9IHRoaXMucHJpdmF0ZShlbCwga2V5KVxuICAgIGlmKGV4aXN0aW5nID09PSB1bmRlZmluZWQpe1xuICAgICAgdGhpcy5wdXRQcml2YXRlKGVsLCBrZXksIHVwZGF0ZUZ1bmMoZGVmYXVsdFZhbCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHV0UHJpdmF0ZShlbCwga2V5LCB1cGRhdGVGdW5jKGV4aXN0aW5nKSlcbiAgICB9XG4gIH0sXG5cbiAgY29weVByaXZhdGVzKHRhcmdldCwgc291cmNlKXtcbiAgICBpZihzb3VyY2VbUEhYX1BSSVZBVEVdKXtcbiAgICAgIHRhcmdldFtQSFhfUFJJVkFURV0gPSBzb3VyY2VbUEhYX1BSSVZBVEVdXG4gICAgfVxuICB9LFxuXG4gIHB1dFRpdGxlKHN0cil7XG4gICAgbGV0IHRpdGxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwidGl0bGVcIilcbiAgICBsZXQge3ByZWZpeCwgc3VmZml4fSA9IHRpdGxlRWwuZGF0YXNldFxuICAgIGRvY3VtZW50LnRpdGxlID0gYCR7cHJlZml4IHx8IFwiXCJ9JHtzdHJ9JHtzdWZmaXggfHwgXCJcIn1gXG4gIH0sXG5cbiAgZGVib3VuY2UoZWwsIGV2ZW50LCBwaHhEZWJvdW5jZSwgZGVmYXVsdERlYm91bmNlLCBwaHhUaHJvdHRsZSwgZGVmYXVsdFRocm90dGxlLCBhc3luY0ZpbHRlciwgY2FsbGJhY2spe1xuICAgIGxldCBkZWJvdW5jZSA9IGVsLmdldEF0dHJpYnV0ZShwaHhEZWJvdW5jZSlcbiAgICBsZXQgdGhyb3R0bGUgPSBlbC5nZXRBdHRyaWJ1dGUocGh4VGhyb3R0bGUpXG4gICAgaWYoZGVib3VuY2UgPT09IFwiXCIpeyBkZWJvdW5jZSA9IGRlZmF1bHREZWJvdW5jZSB9XG4gICAgaWYodGhyb3R0bGUgPT09IFwiXCIpeyB0aHJvdHRsZSA9IGRlZmF1bHRUaHJvdHRsZSB9XG4gICAgbGV0IHZhbHVlID0gZGVib3VuY2UgfHwgdGhyb3R0bGVcbiAgICBzd2l0Y2godmFsdWUpe1xuICAgICAgY2FzZSBudWxsOiByZXR1cm4gY2FsbGJhY2soKVxuXG4gICAgICBjYXNlIFwiYmx1clwiOlxuICAgICAgICBpZih0aGlzLm9uY2UoZWwsIFwiZGVib3VuY2UtYmx1clwiKSl7XG4gICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIiwgKCkgPT4gY2FsbGJhY2soKSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgbGV0IHRpbWVvdXQgPSBwYXJzZUludCh2YWx1ZSlcbiAgICAgICAgbGV0IHRyaWdnZXIgPSAoKSA9PiB0aHJvdHRsZSA/IHRoaXMuZGVsZXRlUHJpdmF0ZShlbCwgVEhST1RUTEVEKSA6IGNhbGxiYWNrKClcbiAgICAgICAgbGV0IGN1cnJlbnRDeWNsZSA9IHRoaXMuaW5jQ3ljbGUoZWwsIERFQk9VTkNFX1RSSUdHRVIsIHRyaWdnZXIpXG4gICAgICAgIGlmKGlzTmFOKHRpbWVvdXQpKXsgcmV0dXJuIGxvZ0Vycm9yKGBpbnZhbGlkIHRocm90dGxlL2RlYm91bmNlIHZhbHVlOiAke3ZhbHVlfWApIH1cbiAgICAgICAgaWYodGhyb3R0bGUpe1xuICAgICAgICAgIGxldCBuZXdLZXlEb3duID0gZmFsc2VcbiAgICAgICAgICBpZihldmVudC50eXBlID09PSBcImtleWRvd25cIil7XG4gICAgICAgICAgICBsZXQgcHJldktleSA9IHRoaXMucHJpdmF0ZShlbCwgREVCT1VOQ0VfUFJFVl9LRVkpXG4gICAgICAgICAgICB0aGlzLnB1dFByaXZhdGUoZWwsIERFQk9VTkNFX1BSRVZfS0VZLCBldmVudC5rZXkpXG4gICAgICAgICAgICBuZXdLZXlEb3duID0gcHJldktleSAhPT0gZXZlbnQua2V5XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYoIW5ld0tleURvd24gJiYgdGhpcy5wcml2YXRlKGVsLCBUSFJPVFRMRUQpKXtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWxsYmFjaygpXG4gICAgICAgICAgICB0aGlzLnB1dFByaXZhdGUoZWwsIFRIUk9UVExFRCwgdHJ1ZSlcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICBpZihhc3luY0ZpbHRlcigpKXsgdGhpcy50cmlnZ2VyQ3ljbGUoZWwsIERFQk9VTkNFX1RSSUdHRVIpIH1cbiAgICAgICAgICAgIH0sIHRpbWVvdXQpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYoYXN5bmNGaWx0ZXIoKSl7IHRoaXMudHJpZ2dlckN5Y2xlKGVsLCBERUJPVU5DRV9UUklHR0VSLCBjdXJyZW50Q3ljbGUpIH1cbiAgICAgICAgICB9LCB0aW1lb3V0KVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZvcm0gPSBlbC5mb3JtXG4gICAgICAgIGlmKGZvcm0gJiYgdGhpcy5vbmNlKGZvcm0sIFwiYmluZC1kZWJvdW5jZVwiKSl7XG4gICAgICAgICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKFwic3VibWl0XCIsICgpID0+IHtcbiAgICAgICAgICAgIEFycmF5LmZyb20oKG5ldyBGb3JtRGF0YShmb3JtKSkuZW50cmllcygpLCAoW25hbWVdKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBpbnB1dCA9IGZvcm0ucXVlcnlTZWxlY3RvcihgW25hbWU9XCIke25hbWV9XCJdYClcbiAgICAgICAgICAgICAgdGhpcy5pbmNDeWNsZShpbnB1dCwgREVCT1VOQ0VfVFJJR0dFUilcbiAgICAgICAgICAgICAgdGhpcy5kZWxldGVQcml2YXRlKGlucHV0LCBUSFJPVFRMRUQpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5vbmNlKGVsLCBcImJpbmQtZGVib3VuY2VcIikpe1xuICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsICgpID0+IHRoaXMudHJpZ2dlckN5Y2xlKGVsLCBERUJPVU5DRV9UUklHR0VSKSlcbiAgICAgICAgfVxuICAgIH1cbiAgfSxcblxuICB0cmlnZ2VyQ3ljbGUoZWwsIGtleSwgY3VycmVudEN5Y2xlKXtcbiAgICBsZXQgW2N5Y2xlLCB0cmlnZ2VyXSA9IHRoaXMucHJpdmF0ZShlbCwga2V5KVxuICAgIGlmKCFjdXJyZW50Q3ljbGUpeyBjdXJyZW50Q3ljbGUgPSBjeWNsZSB9XG4gICAgaWYoY3VycmVudEN5Y2xlID09PSBjeWNsZSl7XG4gICAgICB0aGlzLmluY0N5Y2xlKGVsLCBrZXkpXG4gICAgICB0cmlnZ2VyKClcbiAgICB9XG4gIH0sXG5cbiAgb25jZShlbCwga2V5KXtcbiAgICBpZih0aGlzLnByaXZhdGUoZWwsIGtleSkgPT09IHRydWUpeyByZXR1cm4gZmFsc2UgfVxuICAgIHRoaXMucHV0UHJpdmF0ZShlbCwga2V5LCB0cnVlKVxuICAgIHJldHVybiB0cnVlXG4gIH0sXG5cbiAgaW5jQ3ljbGUoZWwsIGtleSwgdHJpZ2dlciA9IGZ1bmN0aW9uICgpeyB9KXtcbiAgICBsZXQgW2N1cnJlbnRDeWNsZV0gPSB0aGlzLnByaXZhdGUoZWwsIGtleSkgfHwgWzAsIHRyaWdnZXJdXG4gICAgY3VycmVudEN5Y2xlKytcbiAgICB0aGlzLnB1dFByaXZhdGUoZWwsIGtleSwgW2N1cnJlbnRDeWNsZSwgdHJpZ2dlcl0pXG4gICAgcmV0dXJuIGN1cnJlbnRDeWNsZVxuICB9LFxuXG4gIGRpc2NhcmRFcnJvcihjb250YWluZXIsIGVsLCBwaHhGZWVkYmFja0Zvcil7XG4gICAgbGV0IGZpZWxkID0gZWwuZ2V0QXR0cmlidXRlICYmIGVsLmdldEF0dHJpYnV0ZShwaHhGZWVkYmFja0ZvcilcbiAgICAvLyBUT0RPOiBSZW1vdmUgaWQgbG9va3VwIGFmdGVyIHdlIHVwZGF0ZSBQaG9lbml4IHRvIHVzZSBpbnB1dF9uYW1lIGluc3RlYWQgb2YgaW5wdXRfaWRcbiAgICBsZXQgaW5wdXQgPSBmaWVsZCAmJiBjb250YWluZXIucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtmaWVsZH1cIl0sIFtuYW1lPVwiJHtmaWVsZH1cIl1gKVxuICAgIGlmKCFpbnB1dCl7IHJldHVybiB9XG5cbiAgICBpZighKHRoaXMucHJpdmF0ZShpbnB1dCwgUEhYX0hBU19GT0NVU0VEKSB8fCB0aGlzLnByaXZhdGUoaW5wdXQuZm9ybSwgUEhYX0hBU19TVUJNSVRURUQpKSl7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKFBIWF9OT19GRUVEQkFDS19DTEFTUylcbiAgICB9XG4gIH0sXG5cbiAgc2hvd0Vycm9yKGlucHV0RWwsIHBoeEZlZWRiYWNrRm9yKXtcbiAgICBpZihpbnB1dEVsLmlkIHx8IGlucHV0RWwubmFtZSl7XG4gICAgICB0aGlzLmFsbChpbnB1dEVsLmZvcm0sIGBbJHtwaHhGZWVkYmFja0Zvcn09XCIke2lucHV0RWwuaWR9XCJdLCBbJHtwaHhGZWVkYmFja0Zvcn09XCIke2lucHV0RWwubmFtZX1cIl1gLCAoZWwpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVDbGFzcyhlbCwgUEhYX05PX0ZFRURCQUNLX0NMQVNTKVxuICAgICAgfSlcbiAgICB9XG4gIH0sXG5cbiAgaXNQaHhDaGlsZChub2RlKXtcbiAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoUEhYX1BBUkVOVF9JRClcbiAgfSxcblxuICBpc1BoeFN0aWNreShub2RlKXtcbiAgICByZXR1cm4gbm9kZS5nZXRBdHRyaWJ1dGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoUEhYX1NUSUNLWSkgIT09IG51bGxcbiAgfSxcblxuICBmaXJzdFBoeENoaWxkKGVsKXtcbiAgICByZXR1cm4gdGhpcy5pc1BoeENoaWxkKGVsKSA/IGVsIDogdGhpcy5hbGwoZWwsIGBbJHtQSFhfUEFSRU5UX0lEfV1gKVswXVxuICB9LFxuXG4gIGRpc3BhdGNoRXZlbnQodGFyZ2V0LCBuYW1lLCBvcHRzID0ge30pe1xuICAgIGxldCBidWJibGVzID0gb3B0cy5idWJibGVzID09PSB1bmRlZmluZWQgPyB0cnVlIDogISFvcHRzLmJ1YmJsZXNcbiAgICBsZXQgZXZlbnRPcHRzID0ge2J1YmJsZXM6IGJ1YmJsZXMsIGNhbmNlbGFibGU6IHRydWUsIGRldGFpbDogb3B0cy5kZXRhaWwgfHwge319XG4gICAgbGV0IGV2ZW50ID0gbmFtZSA9PT0gXCJjbGlja1wiID8gbmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiLCBldmVudE9wdHMpIDogbmV3IEN1c3RvbUV2ZW50KG5hbWUsIGV2ZW50T3B0cylcbiAgICB0YXJnZXQuZGlzcGF0Y2hFdmVudChldmVudClcbiAgfSxcblxuICBjbG9uZU5vZGUobm9kZSwgaHRtbCl7XG4gICAgaWYodHlwZW9mIChodG1sKSA9PT0gXCJ1bmRlZmluZWRcIil7XG4gICAgICByZXR1cm4gbm9kZS5jbG9uZU5vZGUodHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGNsb25lZCA9IG5vZGUuY2xvbmVOb2RlKGZhbHNlKVxuICAgICAgY2xvbmVkLmlubmVySFRNTCA9IGh0bWxcbiAgICAgIHJldHVybiBjbG9uZWRcbiAgICB9XG4gIH0sXG5cbiAgbWVyZ2VBdHRycyh0YXJnZXQsIHNvdXJjZSwgb3B0cyA9IHt9KXtcbiAgICBsZXQgZXhjbHVkZSA9IG9wdHMuZXhjbHVkZSB8fCBbXVxuICAgIGxldCBpc0lnbm9yZWQgPSBvcHRzLmlzSWdub3JlZFxuICAgIGxldCBzb3VyY2VBdHRycyA9IHNvdXJjZS5hdHRyaWJ1dGVzXG4gICAgZm9yKGxldCBpID0gc291cmNlQXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pe1xuICAgICAgbGV0IG5hbWUgPSBzb3VyY2VBdHRyc1tpXS5uYW1lXG4gICAgICBpZihleGNsdWRlLmluZGV4T2YobmFtZSkgPCAwKXsgdGFyZ2V0LnNldEF0dHJpYnV0ZShuYW1lLCBzb3VyY2UuZ2V0QXR0cmlidXRlKG5hbWUpKSB9XG4gICAgfVxuXG4gICAgbGV0IHRhcmdldEF0dHJzID0gdGFyZ2V0LmF0dHJpYnV0ZXNcbiAgICBmb3IobGV0IGkgPSB0YXJnZXRBdHRycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSl7XG4gICAgICBsZXQgbmFtZSA9IHRhcmdldEF0dHJzW2ldLm5hbWVcbiAgICAgIGlmKGlzSWdub3JlZCl7XG4gICAgICAgIGlmKG5hbWUuc3RhcnRzV2l0aChcImRhdGEtXCIpICYmICFzb3VyY2UuaGFzQXR0cmlidXRlKG5hbWUpKXsgdGFyZ2V0LnJlbW92ZUF0dHJpYnV0ZShuYW1lKSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZighc291cmNlLmhhc0F0dHJpYnV0ZShuYW1lKSl7IHRhcmdldC5yZW1vdmVBdHRyaWJ1dGUobmFtZSkgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBtZXJnZUZvY3VzZWRJbnB1dCh0YXJnZXQsIHNvdXJjZSl7XG4gICAgLy8gc2tpcCBzZWxlY3RzIGJlY2F1c2UgRkYgd2lsbCByZXNldCBoaWdobGlnaHRlZCBpbmRleCBmb3IgYW55IHNldEF0dHJpYnV0ZVxuICAgIGlmKCEodGFyZ2V0IGluc3RhbmNlb2YgSFRNTFNlbGVjdEVsZW1lbnQpKXsgRE9NLm1lcmdlQXR0cnModGFyZ2V0LCBzb3VyY2UsIHtleGNsdWRlOiBbXCJ2YWx1ZVwiXX0pIH1cbiAgICBpZihzb3VyY2UucmVhZE9ubHkpe1xuICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZShcInJlYWRvbmx5XCIsIHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldC5yZW1vdmVBdHRyaWJ1dGUoXCJyZWFkb25seVwiKVxuICAgIH1cbiAgfSxcblxuICBoYXNTZWxlY3Rpb25SYW5nZShlbCl7XG4gICAgcmV0dXJuIGVsLnNldFNlbGVjdGlvblJhbmdlICYmIChlbC50eXBlID09PSBcInRleHRcIiB8fCBlbC50eXBlID09PSBcInRleHRhcmVhXCIpXG4gIH0sXG5cbiAgcmVzdG9yZUZvY3VzKGZvY3VzZWQsIHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpe1xuICAgIGlmKCFET00uaXNUZXh0dWFsSW5wdXQoZm9jdXNlZCkpeyByZXR1cm4gfVxuICAgIGxldCB3YXNGb2N1c2VkID0gZm9jdXNlZC5tYXRjaGVzKFwiOmZvY3VzXCIpXG4gICAgaWYoZm9jdXNlZC5yZWFkT25seSl7IGZvY3VzZWQuYmx1cigpIH1cbiAgICBpZighd2FzRm9jdXNlZCl7IGZvY3VzZWQuZm9jdXMoKSB9XG4gICAgaWYodGhpcy5oYXNTZWxlY3Rpb25SYW5nZShmb2N1c2VkKSl7XG4gICAgICBmb2N1c2VkLnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpXG4gICAgfVxuICB9LFxuXG4gIGlzRm9ybUlucHV0KGVsKXsgcmV0dXJuIC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhKSQvaS50ZXN0KGVsLnRhZ05hbWUpICYmIGVsLnR5cGUgIT09IFwiYnV0dG9uXCIgfSxcblxuICBzeW5jQXR0cnNUb1Byb3BzKGVsKXtcbiAgICBpZihlbCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgJiYgQ0hFQ0tBQkxFX0lOUFVUUy5pbmRleE9mKGVsLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSkgPj0gMCl7XG4gICAgICBlbC5jaGVja2VkID0gZWwuZ2V0QXR0cmlidXRlKFwiY2hlY2tlZFwiKSAhPT0gbnVsbFxuICAgIH1cbiAgfSxcblxuICBpc1RleHR1YWxJbnB1dChlbCl7IHJldHVybiBGT0NVU0FCTEVfSU5QVVRTLmluZGV4T2YoZWwudHlwZSkgPj0gMCB9LFxuXG4gIGlzTm93VHJpZ2dlckZvcm1FeHRlcm5hbChlbCwgcGh4VHJpZ2dlckV4dGVybmFsKXtcbiAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlICYmIGVsLmdldEF0dHJpYnV0ZShwaHhUcmlnZ2VyRXh0ZXJuYWwpICE9PSBudWxsXG4gIH0sXG5cbiAgc3luY1BlbmRpbmdSZWYoZnJvbUVsLCB0b0VsLCBkaXNhYmxlV2l0aCl7XG4gICAgbGV0IHJlZiA9IGZyb21FbC5nZXRBdHRyaWJ1dGUoUEhYX1JFRilcbiAgICBpZihyZWYgPT09IG51bGwpeyByZXR1cm4gdHJ1ZSB9XG4gICAgbGV0IHJlZlNyYyA9IGZyb21FbC5nZXRBdHRyaWJ1dGUoUEhYX1JFRl9TUkMpXG5cbiAgICBpZihET00uaXNGb3JtSW5wdXQoZnJvbUVsKSB8fCBmcm9tRWwuZ2V0QXR0cmlidXRlKGRpc2FibGVXaXRoKSAhPT0gbnVsbCl7XG4gICAgICBpZihET00uaXNVcGxvYWRJbnB1dChmcm9tRWwpKXsgRE9NLm1lcmdlQXR0cnMoZnJvbUVsLCB0b0VsLCB7aXNJZ25vcmVkOiB0cnVlfSkgfVxuICAgICAgRE9NLnB1dFByaXZhdGUoZnJvbUVsLCBQSFhfUkVGLCB0b0VsKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIFBIWF9FVkVOVF9DTEFTU0VTLmZvckVhY2goY2xhc3NOYW1lID0+IHtcbiAgICAgICAgZnJvbUVsLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpICYmIHRvRWwuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpXG4gICAgICB9KVxuICAgICAgdG9FbC5zZXRBdHRyaWJ1dGUoUEhYX1JFRiwgcmVmKVxuICAgICAgdG9FbC5zZXRBdHRyaWJ1dGUoUEhYX1JFRl9TUkMsIHJlZlNyYylcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9LFxuXG4gIGNsZWFuQ2hpbGROb2Rlcyhjb250YWluZXIsIHBoeFVwZGF0ZSl7XG4gICAgaWYoRE9NLmlzUGh4VXBkYXRlKGNvbnRhaW5lciwgcGh4VXBkYXRlLCBbXCJhcHBlbmRcIiwgXCJwcmVwZW5kXCJdKSl7XG4gICAgICBsZXQgdG9SZW1vdmUgPSBbXVxuICAgICAgY29udGFpbmVyLmNoaWxkTm9kZXMuZm9yRWFjaChjaGlsZE5vZGUgPT4ge1xuICAgICAgICBpZighY2hpbGROb2RlLmlkKXtcbiAgICAgICAgICAvLyBTa2lwIHdhcm5pbmcgaWYgaXQncyBhbiBlbXB0eSB0ZXh0IG5vZGUgKGUuZy4gYSBuZXctbGluZSlcbiAgICAgICAgICBsZXQgaXNFbXB0eVRleHROb2RlID0gY2hpbGROb2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiBjaGlsZE5vZGUubm9kZVZhbHVlLnRyaW0oKSA9PT0gXCJcIlxuICAgICAgICAgIGlmKCFpc0VtcHR5VGV4dE5vZGUpe1xuICAgICAgICAgICAgbG9nRXJyb3IoXCJvbmx5IEhUTUwgZWxlbWVudCB0YWdzIHdpdGggYW4gaWQgYXJlIGFsbG93ZWQgaW5zaWRlIGNvbnRhaW5lcnMgd2l0aCBwaHgtdXBkYXRlLlxcblxcblwiICtcbiAgICAgICAgICAgICAgYHJlbW92aW5nIGlsbGVnYWwgbm9kZTogXCIkeyhjaGlsZE5vZGUub3V0ZXJIVE1MIHx8IGNoaWxkTm9kZS5ub2RlVmFsdWUpLnRyaW0oKX1cIlxcblxcbmApXG4gICAgICAgICAgfVxuICAgICAgICAgIHRvUmVtb3ZlLnB1c2goY2hpbGROb2RlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgdG9SZW1vdmUuZm9yRWFjaChjaGlsZE5vZGUgPT4gY2hpbGROb2RlLnJlbW92ZSgpKVxuICAgIH1cbiAgfSxcblxuICByZXBsYWNlUm9vdENvbnRhaW5lcihjb250YWluZXIsIHRhZ05hbWUsIGF0dHJzKXtcbiAgICBsZXQgcmV0YWluZWRBdHRycyA9IG5ldyBTZXQoW1wiaWRcIiwgUEhYX1NFU1NJT04sIFBIWF9TVEFUSUMsIFBIWF9NQUlOLCBQSFhfUk9PVF9JRF0pXG4gICAgaWYoY29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gdGFnTmFtZS50b0xvd2VyQ2FzZSgpKXtcbiAgICAgIEFycmF5LmZyb20oY29udGFpbmVyLmF0dHJpYnV0ZXMpXG4gICAgICAgIC5maWx0ZXIoYXR0ciA9PiAhcmV0YWluZWRBdHRycy5oYXMoYXR0ci5uYW1lLnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICAuZm9yRWFjaChhdHRyID0+IGNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKSlcblxuICAgICAgT2JqZWN0LmtleXMoYXR0cnMpXG4gICAgICAgIC5maWx0ZXIobmFtZSA9PiAhcmV0YWluZWRBdHRycy5oYXMobmFtZS50b0xvd2VyQ2FzZSgpKSlcbiAgICAgICAgLmZvckVhY2goYXR0ciA9PiBjb250YWluZXIuc2V0QXR0cmlidXRlKGF0dHIsIGF0dHJzW2F0dHJdKSlcblxuICAgICAgcmV0dXJuIGNvbnRhaW5lclxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZXdDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZ05hbWUpXG4gICAgICBPYmplY3Qua2V5cyhhdHRycykuZm9yRWFjaChhdHRyID0+IG5ld0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoYXR0ciwgYXR0cnNbYXR0cl0pKVxuICAgICAgcmV0YWluZWRBdHRycy5mb3JFYWNoKGF0dHIgPT4gbmV3Q29udGFpbmVyLnNldEF0dHJpYnV0ZShhdHRyLCBjb250YWluZXIuZ2V0QXR0cmlidXRlKGF0dHIpKSlcbiAgICAgIG5ld0NvbnRhaW5lci5pbm5lckhUTUwgPSBjb250YWluZXIuaW5uZXJIVE1MXG4gICAgICBjb250YWluZXIucmVwbGFjZVdpdGgobmV3Q29udGFpbmVyKVxuICAgICAgcmV0dXJuIG5ld0NvbnRhaW5lclxuICAgIH1cbiAgfSxcblxuICBnZXRTdGlja3koZWwsIG5hbWUsIGRlZmF1bHRWYWwpe1xuICAgIGxldCBvcCA9IChET00ucHJpdmF0ZShlbCwgXCJzdGlja3lcIikgfHwgW10pLmZpbmQoKFtleGlzdGluZ05hbWUsIF0pID0+IG5hbWUgPT09IGV4aXN0aW5nTmFtZSlcbiAgICBpZihvcCl7XG4gICAgICBsZXQgW19uYW1lLCBfb3AsIHN0YXNoZWRSZXN1bHRdID0gb3BcbiAgICAgIHJldHVybiBzdGFzaGVkUmVzdWx0XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlb2YoZGVmYXVsdFZhbCkgPT09IFwiZnVuY3Rpb25cIiA/IGRlZmF1bHRWYWwoKSA6IGRlZmF1bHRWYWxcbiAgICB9XG4gIH0sXG5cbiAgZGVsZXRlU3RpY2t5KGVsLCBuYW1lKXtcbiAgICB0aGlzLnVwZGF0ZVByaXZhdGUoZWwsIFwic3RpY2t5XCIsIFtdLCBvcHMgPT4ge1xuICAgICAgcmV0dXJuIG9wcy5maWx0ZXIoKFtleGlzdGluZ05hbWUsIF9dKSA9PiBleGlzdGluZ05hbWUgIT09IG5hbWUpXG4gICAgfSlcbiAgfSxcblxuICBwdXRTdGlja3koZWwsIG5hbWUsIG9wKXtcbiAgICBsZXQgc3Rhc2hlZFJlc3VsdCA9IG9wKGVsKVxuICAgIHRoaXMudXBkYXRlUHJpdmF0ZShlbCwgXCJzdGlja3lcIiwgW10sIG9wcyA9PiB7XG4gICAgICBsZXQgZXhpc3RpbmdJbmRleCA9IG9wcy5maW5kSW5kZXgoKFtleGlzdGluZ05hbWUsIF0pID0+IG5hbWUgPT09IGV4aXN0aW5nTmFtZSlcbiAgICAgIGlmKGV4aXN0aW5nSW5kZXggPj0gMCl7XG4gICAgICAgIG9wc1tleGlzdGluZ0luZGV4XSA9IFtuYW1lLCBvcCwgc3Rhc2hlZFJlc3VsdF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wcy5wdXNoKFtuYW1lLCBvcCwgc3Rhc2hlZFJlc3VsdF0pXG4gICAgICB9XG4gICAgICByZXR1cm4gb3BzXG4gICAgfSlcbiAgfSxcblxuICBhcHBseVN0aWNreU9wZXJhdGlvbnMoZWwpe1xuICAgIGxldCBvcHMgPSBET00ucHJpdmF0ZShlbCwgXCJzdGlja3lcIilcbiAgICBpZighb3BzKXsgcmV0dXJuIH1cblxuICAgIG9wcy5mb3JFYWNoKChbbmFtZSwgb3AsIF9zdGFzaGVkXSkgPT4gdGhpcy5wdXRTdGlja3koZWwsIG5hbWUsIG9wKSlcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBET01cbiIsICJpbXBvcnQge1xuICBQSFhfQUNUSVZFX0VOVFJZX1JFRlMsXG4gIFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCxcbiAgUEhYX1BSRUZMSUdIVEVEX1JFRlNcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCJcblxuaW1wb3J0IHtcbiAgY2hhbm5lbFVwbG9hZGVyLFxuICBsb2dFcnJvclxufSBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCBMaXZlVXBsb2FkZXIgZnJvbSBcIi4vbGl2ZV91cGxvYWRlclwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwbG9hZEVudHJ5IHtcbiAgc3RhdGljIGlzQWN0aXZlKGZpbGVFbCwgZmlsZSl7XG4gICAgbGV0IGlzTmV3ID0gZmlsZS5fcGh4UmVmID09PSB1bmRlZmluZWRcbiAgICBsZXQgYWN0aXZlUmVmcyA9IGZpbGVFbC5nZXRBdHRyaWJ1dGUoUEhYX0FDVElWRV9FTlRSWV9SRUZTKS5zcGxpdChcIixcIilcbiAgICBsZXQgaXNBY3RpdmUgPSBhY3RpdmVSZWZzLmluZGV4T2YoTGl2ZVVwbG9hZGVyLmdlbkZpbGVSZWYoZmlsZSkpID49IDBcbiAgICByZXR1cm4gZmlsZS5zaXplID4gMCAmJiAoaXNOZXcgfHwgaXNBY3RpdmUpXG4gIH1cblxuICBzdGF0aWMgaXNQcmVmbGlnaHRlZChmaWxlRWwsIGZpbGUpe1xuICAgIGxldCBwcmVmbGlnaHRlZFJlZnMgPSBmaWxlRWwuZ2V0QXR0cmlidXRlKFBIWF9QUkVGTElHSFRFRF9SRUZTKS5zcGxpdChcIixcIilcbiAgICBsZXQgaXNQcmVmbGlnaHRlZCA9IHByZWZsaWdodGVkUmVmcy5pbmRleE9mKExpdmVVcGxvYWRlci5nZW5GaWxlUmVmKGZpbGUpKSA+PSAwXG4gICAgcmV0dXJuIGlzUHJlZmxpZ2h0ZWQgJiYgdGhpcy5pc0FjdGl2ZShmaWxlRWwsIGZpbGUpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihmaWxlRWwsIGZpbGUsIHZpZXcpe1xuICAgIHRoaXMucmVmID0gTGl2ZVVwbG9hZGVyLmdlbkZpbGVSZWYoZmlsZSlcbiAgICB0aGlzLmZpbGVFbCA9IGZpbGVFbFxuICAgIHRoaXMuZmlsZSA9IGZpbGVcbiAgICB0aGlzLnZpZXcgPSB2aWV3XG4gICAgdGhpcy5tZXRhID0gbnVsbFxuICAgIHRoaXMuX2lzQ2FuY2VsbGVkID0gZmFsc2VcbiAgICB0aGlzLl9pc0RvbmUgPSBmYWxzZVxuICAgIHRoaXMuX3Byb2dyZXNzID0gMFxuICAgIHRoaXMuX2xhc3RQcm9ncmVzc1NlbnQgPSAtMVxuICAgIHRoaXMuX29uRG9uZSA9IGZ1bmN0aW9uICgpeyB9XG4gICAgdGhpcy5fb25FbFVwZGF0ZWQgPSB0aGlzLm9uRWxVcGRhdGVkLmJpbmQodGhpcylcbiAgICB0aGlzLmZpbGVFbC5hZGRFdmVudExpc3RlbmVyKFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCwgdGhpcy5fb25FbFVwZGF0ZWQpXG4gIH1cblxuICBtZXRhZGF0YSgpeyByZXR1cm4gdGhpcy5tZXRhIH1cblxuICBwcm9ncmVzcyhwcm9ncmVzcyl7XG4gICAgdGhpcy5fcHJvZ3Jlc3MgPSBNYXRoLmZsb29yKHByb2dyZXNzKVxuICAgIGlmKHRoaXMuX3Byb2dyZXNzID4gdGhpcy5fbGFzdFByb2dyZXNzU2VudCl7XG4gICAgICBpZih0aGlzLl9wcm9ncmVzcyA+PSAxMDApe1xuICAgICAgICB0aGlzLl9wcm9ncmVzcyA9IDEwMFxuICAgICAgICB0aGlzLl9sYXN0UHJvZ3Jlc3NTZW50ID0gMTAwXG4gICAgICAgIHRoaXMuX2lzRG9uZSA9IHRydWVcbiAgICAgICAgdGhpcy52aWV3LnB1c2hGaWxlUHJvZ3Jlc3ModGhpcy5maWxlRWwsIHRoaXMucmVmLCAxMDAsICgpID0+IHtcbiAgICAgICAgICBMaXZlVXBsb2FkZXIudW50cmFja0ZpbGUodGhpcy5maWxlRWwsIHRoaXMuZmlsZSlcbiAgICAgICAgICB0aGlzLl9vbkRvbmUoKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fbGFzdFByb2dyZXNzU2VudCA9IHRoaXMuX3Byb2dyZXNzXG4gICAgICAgIHRoaXMudmlldy5wdXNoRmlsZVByb2dyZXNzKHRoaXMuZmlsZUVsLCB0aGlzLnJlZiwgdGhpcy5fcHJvZ3Jlc3MpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCl7XG4gICAgdGhpcy5faXNDYW5jZWxsZWQgPSB0cnVlXG4gICAgdGhpcy5faXNEb25lID0gdHJ1ZVxuICAgIHRoaXMuX29uRG9uZSgpXG4gIH1cblxuICBpc0RvbmUoKXsgcmV0dXJuIHRoaXMuX2lzRG9uZSB9XG5cbiAgZXJyb3IocmVhc29uID0gXCJmYWlsZWRcIil7XG4gICAgdGhpcy52aWV3LnB1c2hGaWxlUHJvZ3Jlc3ModGhpcy5maWxlRWwsIHRoaXMucmVmLCB7ZXJyb3I6IHJlYXNvbn0pXG4gICAgTGl2ZVVwbG9hZGVyLmNsZWFyRmlsZXModGhpcy5maWxlRWwpXG4gIH1cblxuICAvL3ByaXZhdGVcblxuICBvbkRvbmUoY2FsbGJhY2spe1xuICAgIHRoaXMuX29uRG9uZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuZmlsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoUEhYX0xJVkVfRklMRV9VUERBVEVELCB0aGlzLl9vbkVsVXBkYXRlZClcbiAgICAgIGNhbGxiYWNrKClcbiAgICB9XG4gIH1cblxuICBvbkVsVXBkYXRlZCgpe1xuICAgIGxldCBhY3RpdmVSZWZzID0gdGhpcy5maWxlRWwuZ2V0QXR0cmlidXRlKFBIWF9BQ1RJVkVfRU5UUllfUkVGUykuc3BsaXQoXCIsXCIpXG4gICAgaWYoYWN0aXZlUmVmcy5pbmRleE9mKHRoaXMucmVmKSA9PT0gLTEpeyB0aGlzLmNhbmNlbCgpIH1cbiAgfVxuXG4gIHRvUHJlZmxpZ2h0UGF5bG9hZCgpe1xuICAgIHJldHVybiB7XG4gICAgICBsYXN0X21vZGlmaWVkOiB0aGlzLmZpbGUubGFzdE1vZGlmaWVkLFxuICAgICAgbmFtZTogdGhpcy5maWxlLm5hbWUsXG4gICAgICBzaXplOiB0aGlzLmZpbGUuc2l6ZSxcbiAgICAgIHR5cGU6IHRoaXMuZmlsZS50eXBlLFxuICAgICAgcmVmOiB0aGlzLnJlZlxuICAgIH1cbiAgfVxuXG4gIHVwbG9hZGVyKHVwbG9hZGVycyl7XG4gICAgaWYodGhpcy5tZXRhLnVwbG9hZGVyKXtcbiAgICAgIGxldCBjYWxsYmFjayA9IHVwbG9hZGVyc1t0aGlzLm1ldGEudXBsb2FkZXJdIHx8IGxvZ0Vycm9yKGBubyB1cGxvYWRlciBjb25maWd1cmVkIGZvciAke3RoaXMubWV0YS51cGxvYWRlcn1gKVxuICAgICAgcmV0dXJuIHtuYW1lOiB0aGlzLm1ldGEudXBsb2FkZXIsIGNhbGxiYWNrOiBjYWxsYmFja31cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtuYW1lOiBcImNoYW5uZWxcIiwgY2FsbGJhY2s6IGNoYW5uZWxVcGxvYWRlcn1cbiAgICB9XG4gIH1cblxuICB6aXBQb3N0RmxpZ2h0KHJlc3Ape1xuICAgIHRoaXMubWV0YSA9IHJlc3AuZW50cmllc1t0aGlzLnJlZl1cbiAgICBpZighdGhpcy5tZXRhKXsgbG9nRXJyb3IoYG5vIHByZWZsaWdodCB1cGxvYWQgcmVzcG9uc2UgcmV0dXJuZWQgd2l0aCByZWYgJHt0aGlzLnJlZn1gLCB7aW5wdXQ6IHRoaXMuZmlsZUVsLCByZXNwb25zZTogcmVzcH0pIH1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIFBIWF9ET05FX1JFRlMsXG4gIFBIWF9QUkVGTElHSFRFRF9SRUZTLFxuICBQSFhfVVBMT0FEX1JFRlxufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5pbXBvcnQge1xufSBmcm9tIFwiLi91dGlsc1wiXG5cbmltcG9ydCBET00gZnJvbSBcIi4vZG9tXCJcbmltcG9ydCBVcGxvYWRFbnRyeSBmcm9tIFwiLi91cGxvYWRfZW50cnlcIlxuXG5sZXQgbGl2ZVVwbG9hZGVyRmlsZVJlZiA9IDBcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl2ZVVwbG9hZGVyIHtcbiAgc3RhdGljIGdlbkZpbGVSZWYoZmlsZSl7XG4gICAgbGV0IHJlZiA9IGZpbGUuX3BoeFJlZlxuICAgIGlmKHJlZiAhPT0gdW5kZWZpbmVkKXtcbiAgICAgIHJldHVybiByZWZcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZS5fcGh4UmVmID0gKGxpdmVVcGxvYWRlckZpbGVSZWYrKykudG9TdHJpbmcoKVxuICAgICAgcmV0dXJuIGZpbGUuX3BoeFJlZlxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRFbnRyeURhdGFVUkwoaW5wdXRFbCwgcmVmLCBjYWxsYmFjayl7XG4gICAgbGV0IGZpbGUgPSB0aGlzLmFjdGl2ZUZpbGVzKGlucHV0RWwpLmZpbmQoZmlsZSA9PiB0aGlzLmdlbkZpbGVSZWYoZmlsZSkgPT09IHJlZilcbiAgICBjYWxsYmFjayhVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpKVxuICB9XG5cbiAgc3RhdGljIGhhc1VwbG9hZHNJblByb2dyZXNzKGZvcm1FbCl7XG4gICAgbGV0IGFjdGl2ZSA9IDBcbiAgICBET00uZmluZFVwbG9hZElucHV0cyhmb3JtRWwpLmZvckVhY2goaW5wdXQgPT4ge1xuICAgICAgaWYoaW5wdXQuZ2V0QXR0cmlidXRlKFBIWF9QUkVGTElHSFRFRF9SRUZTKSAhPT0gaW5wdXQuZ2V0QXR0cmlidXRlKFBIWF9ET05FX1JFRlMpKXtcbiAgICAgICAgYWN0aXZlKytcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiBhY3RpdmUgPiAwXG4gIH1cblxuICBzdGF0aWMgc2VyaWFsaXplVXBsb2FkcyhpbnB1dEVsKXtcbiAgICBsZXQgZmlsZXMgPSB0aGlzLmFjdGl2ZUZpbGVzKGlucHV0RWwpXG4gICAgbGV0IGZpbGVEYXRhID0ge31cbiAgICBmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGVudHJ5ID0ge3BhdGg6IGlucHV0RWwubmFtZX1cbiAgICAgIGxldCB1cGxvYWRSZWYgPSBpbnB1dEVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRilcbiAgICAgIGZpbGVEYXRhW3VwbG9hZFJlZl0gPSBmaWxlRGF0YVt1cGxvYWRSZWZdIHx8IFtdXG4gICAgICBlbnRyeS5yZWYgPSB0aGlzLmdlbkZpbGVSZWYoZmlsZSlcbiAgICAgIGVudHJ5Lm5hbWUgPSBmaWxlLm5hbWUgfHwgZW50cnkucmVmXG4gICAgICBlbnRyeS50eXBlID0gZmlsZS50eXBlXG4gICAgICBlbnRyeS5zaXplID0gZmlsZS5zaXplXG4gICAgICBmaWxlRGF0YVt1cGxvYWRSZWZdLnB1c2goZW50cnkpXG4gICAgfSlcbiAgICByZXR1cm4gZmlsZURhdGFcbiAgfVxuXG4gIHN0YXRpYyBjbGVhckZpbGVzKGlucHV0RWwpe1xuICAgIGlucHV0RWwudmFsdWUgPSBudWxsXG4gICAgaW5wdXRFbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX1VQTE9BRF9SRUYpXG4gICAgRE9NLnB1dFByaXZhdGUoaW5wdXRFbCwgXCJmaWxlc1wiLCBbXSlcbiAgfVxuXG4gIHN0YXRpYyB1bnRyYWNrRmlsZShpbnB1dEVsLCBmaWxlKXtcbiAgICBET00ucHV0UHJpdmF0ZShpbnB1dEVsLCBcImZpbGVzXCIsIERPTS5wcml2YXRlKGlucHV0RWwsIFwiZmlsZXNcIikuZmlsdGVyKGYgPT4gIU9iamVjdC5pcyhmLCBmaWxlKSkpXG4gIH1cblxuICBzdGF0aWMgdHJhY2tGaWxlcyhpbnB1dEVsLCBmaWxlcyl7XG4gICAgaWYoaW5wdXRFbC5nZXRBdHRyaWJ1dGUoXCJtdWx0aXBsZVwiKSAhPT0gbnVsbCl7XG4gICAgICBsZXQgbmV3RmlsZXMgPSBmaWxlcy5maWx0ZXIoZmlsZSA9PiAhdGhpcy5hY3RpdmVGaWxlcyhpbnB1dEVsKS5maW5kKGYgPT4gT2JqZWN0LmlzKGYsIGZpbGUpKSlcbiAgICAgIERPTS5wdXRQcml2YXRlKGlucHV0RWwsIFwiZmlsZXNcIiwgdGhpcy5hY3RpdmVGaWxlcyhpbnB1dEVsKS5jb25jYXQobmV3RmlsZXMpKVxuICAgICAgaW5wdXRFbC52YWx1ZSA9IG51bGxcbiAgICB9IGVsc2Uge1xuICAgICAgRE9NLnB1dFByaXZhdGUoaW5wdXRFbCwgXCJmaWxlc1wiLCBmaWxlcylcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYWN0aXZlRmlsZUlucHV0cyhmb3JtRWwpe1xuICAgIGxldCBmaWxlSW5wdXRzID0gRE9NLmZpbmRVcGxvYWRJbnB1dHMoZm9ybUVsKVxuICAgIHJldHVybiBBcnJheS5mcm9tKGZpbGVJbnB1dHMpLmZpbHRlcihlbCA9PiBlbC5maWxlcyAmJiB0aGlzLmFjdGl2ZUZpbGVzKGVsKS5sZW5ndGggPiAwKVxuICB9XG5cbiAgc3RhdGljIGFjdGl2ZUZpbGVzKGlucHV0KXtcbiAgICByZXR1cm4gKERPTS5wcml2YXRlKGlucHV0LCBcImZpbGVzXCIpIHx8IFtdKS5maWx0ZXIoZiA9PiBVcGxvYWRFbnRyeS5pc0FjdGl2ZShpbnB1dCwgZikpXG4gIH1cblxuICBzdGF0aWMgaW5wdXRzQXdhaXRpbmdQcmVmbGlnaHQoZm9ybUVsKXtcbiAgICBsZXQgZmlsZUlucHV0cyA9IERPTS5maW5kVXBsb2FkSW5wdXRzKGZvcm1FbClcbiAgICByZXR1cm4gQXJyYXkuZnJvbShmaWxlSW5wdXRzKS5maWx0ZXIoaW5wdXQgPT4gdGhpcy5maWxlc0F3YWl0aW5nUHJlZmxpZ2h0KGlucHV0KS5sZW5ndGggPiAwKVxuICB9XG5cbiAgc3RhdGljIGZpbGVzQXdhaXRpbmdQcmVmbGlnaHQoaW5wdXQpe1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbGVzKGlucHV0KS5maWx0ZXIoZiA9PiAhVXBsb2FkRW50cnkuaXNQcmVmbGlnaHRlZChpbnB1dCwgZikpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihpbnB1dEVsLCB2aWV3LCBvbkNvbXBsZXRlKXtcbiAgICB0aGlzLnZpZXcgPSB2aWV3XG4gICAgdGhpcy5vbkNvbXBsZXRlID0gb25Db21wbGV0ZVxuICAgIHRoaXMuX2VudHJpZXMgPVxuICAgICAgQXJyYXkuZnJvbShMaXZlVXBsb2FkZXIuZmlsZXNBd2FpdGluZ1ByZWZsaWdodChpbnB1dEVsKSB8fCBbXSlcbiAgICAgICAgLm1hcChmaWxlID0+IG5ldyBVcGxvYWRFbnRyeShpbnB1dEVsLCBmaWxlLCB2aWV3KSlcblxuICAgIHRoaXMubnVtRW50cmllc0luUHJvZ3Jlc3MgPSB0aGlzLl9lbnRyaWVzLmxlbmd0aFxuICB9XG5cbiAgZW50cmllcygpeyByZXR1cm4gdGhpcy5fZW50cmllcyB9XG5cbiAgaW5pdEFkYXB0ZXJVcGxvYWQocmVzcCwgb25FcnJvciwgbGl2ZVNvY2tldCl7XG4gICAgdGhpcy5fZW50cmllcyA9XG4gICAgICB0aGlzLl9lbnRyaWVzLm1hcChlbnRyeSA9PiB7XG4gICAgICAgIGVudHJ5LnppcFBvc3RGbGlnaHQocmVzcClcbiAgICAgICAgZW50cnkub25Eb25lKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm51bUVudHJpZXNJblByb2dyZXNzLS1cbiAgICAgICAgICBpZih0aGlzLm51bUVudHJpZXNJblByb2dyZXNzID09PSAwKXsgdGhpcy5vbkNvbXBsZXRlKCkgfVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gZW50cnlcbiAgICAgIH0pXG5cbiAgICBsZXQgZ3JvdXBlZEVudHJpZXMgPSB0aGlzLl9lbnRyaWVzLnJlZHVjZSgoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgbGV0IHtuYW1lLCBjYWxsYmFja30gPSBlbnRyeS51cGxvYWRlcihsaXZlU29ja2V0LnVwbG9hZGVycylcbiAgICAgIGFjY1tuYW1lXSA9IGFjY1tuYW1lXSB8fCB7Y2FsbGJhY2s6IGNhbGxiYWNrLCBlbnRyaWVzOiBbXX1cbiAgICAgIGFjY1tuYW1lXS5lbnRyaWVzLnB1c2goZW50cnkpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSwge30pXG5cbiAgICBmb3IobGV0IG5hbWUgaW4gZ3JvdXBlZEVudHJpZXMpe1xuICAgICAgbGV0IHtjYWxsYmFjaywgZW50cmllc30gPSBncm91cGVkRW50cmllc1tuYW1lXVxuICAgICAgY2FsbGJhY2soZW50cmllcywgb25FcnJvciwgcmVzcCwgbGl2ZVNvY2tldClcbiAgICB9XG4gIH1cbn1cbiIsICJpbXBvcnQge1xuICBQSFhfQUNUSVZFX0VOVFJZX1JFRlMsXG4gIFBIWF9MSVZFX0ZJTEVfVVBEQVRFRCxcbiAgUEhYX1BSRUZMSUdIVEVEX1JFRlMsXG4gIFBIWF9VUExPQURfUkVGXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCBMaXZlVXBsb2FkZXIgZnJvbSBcIi4vbGl2ZV91cGxvYWRlclwiXG5cbmxldCBIb29rcyA9IHtcbiAgTGl2ZUZpbGVVcGxvYWQ6IHtcbiAgICBhY3RpdmVSZWZzKCl7IHJldHVybiB0aGlzLmVsLmdldEF0dHJpYnV0ZShQSFhfQUNUSVZFX0VOVFJZX1JFRlMpIH0sXG5cbiAgICBwcmVmbGlnaHRlZFJlZnMoKXsgcmV0dXJuIHRoaXMuZWwuZ2V0QXR0cmlidXRlKFBIWF9QUkVGTElHSFRFRF9SRUZTKSB9LFxuXG4gICAgbW91bnRlZCgpeyB0aGlzLnByZWZsaWdodGVkV2FzID0gdGhpcy5wcmVmbGlnaHRlZFJlZnMoKSB9LFxuXG4gICAgdXBkYXRlZCgpe1xuICAgICAgbGV0IG5ld1ByZWZsaWdodHMgPSB0aGlzLnByZWZsaWdodGVkUmVmcygpXG4gICAgICBpZih0aGlzLnByZWZsaWdodGVkV2FzICE9PSBuZXdQcmVmbGlnaHRzKXtcbiAgICAgICAgdGhpcy5wcmVmbGlnaHRlZFdhcyA9IG5ld1ByZWZsaWdodHNcbiAgICAgICAgaWYobmV3UHJlZmxpZ2h0cyA9PT0gXCJcIil7XG4gICAgICAgICAgdGhpcy5fX3ZpZXcuY2FuY2VsU3VibWl0KHRoaXMuZWwuZm9ybSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZih0aGlzLmFjdGl2ZVJlZnMoKSA9PT0gXCJcIil7IHRoaXMuZWwudmFsdWUgPSBudWxsIH1cbiAgICAgIHRoaXMuZWwuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoUEhYX0xJVkVfRklMRV9VUERBVEVEKSlcbiAgICB9XG4gIH0sXG5cbiAgTGl2ZUltZ1ByZXZpZXc6IHtcbiAgICBtb3VudGVkKCl7XG4gICAgICB0aGlzLnJlZiA9IHRoaXMuZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1waHgtZW50cnktcmVmXCIpXG4gICAgICB0aGlzLmlucHV0RWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRikpXG4gICAgICBMaXZlVXBsb2FkZXIuZ2V0RW50cnlEYXRhVVJMKHRoaXMuaW5wdXRFbCwgdGhpcy5yZWYsIHVybCA9PiB7XG4gICAgICAgIHRoaXMudXJsID0gdXJsXG4gICAgICAgIHRoaXMuZWwuc3JjID0gdXJsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZGVzdHJveWVkKCl7XG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHRoaXMudXJsKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBIb29rc1xuIiwgImltcG9ydCB7XG4gIG1heWJlXG59IGZyb20gXCIuL3V0aWxzXCJcblxuaW1wb3J0IERPTSBmcm9tIFwiLi9kb21cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBET01Qb3N0TW9ycGhSZXN0b3JlciB7XG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lckJlZm9yZSwgY29udGFpbmVyQWZ0ZXIsIHVwZGF0ZVR5cGUpe1xuICAgIGxldCBpZHNCZWZvcmUgPSBuZXcgU2V0KClcbiAgICBsZXQgaWRzQWZ0ZXIgPSBuZXcgU2V0KFsuLi5jb250YWluZXJBZnRlci5jaGlsZHJlbl0ubWFwKGNoaWxkID0+IGNoaWxkLmlkKSlcblxuICAgIGxldCBlbGVtZW50c1RvTW9kaWZ5ID0gW11cblxuICAgIEFycmF5LmZyb20oY29udGFpbmVyQmVmb3JlLmNoaWxkcmVuKS5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIGlmKGNoaWxkLmlkKXsgLy8gYWxsIG9mIG91ciBjaGlsZHJlbiBzaG91bGQgYmUgZWxlbWVudHMgd2l0aCBpZHNcbiAgICAgICAgaWRzQmVmb3JlLmFkZChjaGlsZC5pZClcbiAgICAgICAgaWYoaWRzQWZ0ZXIuaGFzKGNoaWxkLmlkKSl7XG4gICAgICAgICAgbGV0IHByZXZpb3VzRWxlbWVudElkID0gY2hpbGQucHJldmlvdXNFbGVtZW50U2libGluZyAmJiBjaGlsZC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmlkXG4gICAgICAgICAgZWxlbWVudHNUb01vZGlmeS5wdXNoKHtlbGVtZW50SWQ6IGNoaWxkLmlkLCBwcmV2aW91c0VsZW1lbnRJZDogcHJldmlvdXNFbGVtZW50SWR9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIHRoaXMuY29udGFpbmVySWQgPSBjb250YWluZXJBZnRlci5pZFxuICAgIHRoaXMudXBkYXRlVHlwZSA9IHVwZGF0ZVR5cGVcbiAgICB0aGlzLmVsZW1lbnRzVG9Nb2RpZnkgPSBlbGVtZW50c1RvTW9kaWZ5XG4gICAgdGhpcy5lbGVtZW50SWRzVG9BZGQgPSBbLi4uaWRzQWZ0ZXJdLmZpbHRlcihpZCA9PiAhaWRzQmVmb3JlLmhhcyhpZCkpXG4gIH1cblxuICAvLyBXZSBkbyB0aGUgZm9sbG93aW5nIHRvIG9wdGltaXplIGFwcGVuZC9wcmVwZW5kIG9wZXJhdGlvbnM6XG4gIC8vICAgMSkgVHJhY2sgaWRzIG9mIG1vZGlmaWVkIGVsZW1lbnRzICYgb2YgbmV3IGVsZW1lbnRzXG4gIC8vICAgMikgQWxsIHRoZSBtb2RpZmllZCBlbGVtZW50cyBhcmUgcHV0IGJhY2sgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24gaW4gdGhlIERPTSB0cmVlXG4gIC8vICAgICAgYnkgc3RvcmluZyB0aGUgaWQgb2YgdGhlaXIgcHJldmlvdXMgc2libGluZ1xuICAvLyAgIDMpIE5ldyBlbGVtZW50cyBhcmUgZ29pbmcgdG8gYmUgcHV0IGluIHRoZSByaWdodCBwbGFjZSBieSBtb3JwaGRvbSBkdXJpbmcgYXBwZW5kLlxuICAvLyAgICAgIEZvciBwcmVwZW5kLCB3ZSBtb3ZlIHRoZW0gdG8gdGhlIGZpcnN0IHBvc2l0aW9uIGluIHRoZSBjb250YWluZXJcbiAgcGVyZm9ybSgpe1xuICAgIGxldCBjb250YWluZXIgPSBET00uYnlJZCh0aGlzLmNvbnRhaW5lcklkKVxuICAgIHRoaXMuZWxlbWVudHNUb01vZGlmeS5mb3JFYWNoKGVsZW1lbnRUb01vZGlmeSA9PiB7XG4gICAgICBpZihlbGVtZW50VG9Nb2RpZnkucHJldmlvdXNFbGVtZW50SWQpe1xuICAgICAgICBtYXliZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50VG9Nb2RpZnkucHJldmlvdXNFbGVtZW50SWQpLCBwcmV2aW91c0VsZW0gPT4ge1xuICAgICAgICAgIG1heWJlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRUb01vZGlmeS5lbGVtZW50SWQpLCBlbGVtID0+IHtcbiAgICAgICAgICAgIGxldCBpc0luUmlnaHRQbGFjZSA9IGVsZW0ucHJldmlvdXNFbGVtZW50U2libGluZyAmJiBlbGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmcuaWQgPT0gcHJldmlvdXNFbGVtLmlkXG4gICAgICAgICAgICBpZighaXNJblJpZ2h0UGxhY2Upe1xuICAgICAgICAgICAgICBwcmV2aW91c0VsZW0uaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJlbmRcIiwgZWxlbSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgY29udGFpbmVyXG4gICAgICAgIG1heWJlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRUb01vZGlmeS5lbGVtZW50SWQpLCBlbGVtID0+IHtcbiAgICAgICAgICBsZXQgaXNJblJpZ2h0UGxhY2UgPSBlbGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgPT0gbnVsbFxuICAgICAgICAgIGlmKCFpc0luUmlnaHRQbGFjZSl7XG4gICAgICAgICAgICBjb250YWluZXIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJiZWdpblwiLCBlbGVtKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgaWYodGhpcy51cGRhdGVUeXBlID09IFwicHJlcGVuZFwiKXtcbiAgICAgIHRoaXMuZWxlbWVudElkc1RvQWRkLnJldmVyc2UoKS5mb3JFYWNoKGVsZW1JZCA9PiB7XG4gICAgICAgIG1heWJlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1JZCksIGVsZW0gPT4gY29udGFpbmVyLmluc2VydEFkamFjZW50RWxlbWVudChcImFmdGVyYmVnaW5cIiwgZWxlbSkpXG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuIiwgInZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFID0gMTE7XG5cbmZ1bmN0aW9uIG1vcnBoQXR0cnMoZnJvbU5vZGUsIHRvTm9kZSkge1xuICAgIHZhciB0b05vZGVBdHRycyA9IHRvTm9kZS5hdHRyaWJ1dGVzO1xuICAgIHZhciBhdHRyO1xuICAgIHZhciBhdHRyTmFtZTtcbiAgICB2YXIgYXR0ck5hbWVzcGFjZVVSSTtcbiAgICB2YXIgYXR0clZhbHVlO1xuICAgIHZhciBmcm9tVmFsdWU7XG5cbiAgICAvLyBkb2N1bWVudC1mcmFnbWVudHMgZG9udCBoYXZlIGF0dHJpYnV0ZXMgc28gbGV0cyBub3QgZG8gYW55dGhpbmdcbiAgICBpZiAodG9Ob2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFIHx8IGZyb21Ob2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIGF0dHJpYnV0ZXMgb24gb3JpZ2luYWwgRE9NIGVsZW1lbnRcbiAgICBmb3IgKHZhciBpID0gdG9Ob2RlQXR0cnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgYXR0ciA9IHRvTm9kZUF0dHJzW2ldO1xuICAgICAgICBhdHRyTmFtZSA9IGF0dHIubmFtZTtcbiAgICAgICAgYXR0ck5hbWVzcGFjZVVSSSA9IGF0dHIubmFtZXNwYWNlVVJJO1xuICAgICAgICBhdHRyVmFsdWUgPSBhdHRyLnZhbHVlO1xuXG4gICAgICAgIGlmIChhdHRyTmFtZXNwYWNlVVJJKSB7XG4gICAgICAgICAgICBhdHRyTmFtZSA9IGF0dHIubG9jYWxOYW1lIHx8IGF0dHJOYW1lO1xuICAgICAgICAgICAgZnJvbVZhbHVlID0gZnJvbU5vZGUuZ2V0QXR0cmlidXRlTlMoYXR0ck5hbWVzcGFjZVVSSSwgYXR0ck5hbWUpO1xuXG4gICAgICAgICAgICBpZiAoZnJvbVZhbHVlICE9PSBhdHRyVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXR0ci5wcmVmaXggPT09ICd4bWxucycpe1xuICAgICAgICAgICAgICAgICAgICBhdHRyTmFtZSA9IGF0dHIubmFtZTsgLy8gSXQncyBub3QgYWxsb3dlZCB0byBzZXQgYW4gYXR0cmlidXRlIHdpdGggdGhlIFhNTE5TIG5hbWVzcGFjZSB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGB4bWxuc2AgcHJlZml4XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZyb21Ob2RlLnNldEF0dHJpYnV0ZU5TKGF0dHJOYW1lc3BhY2VVUkksIGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZnJvbVZhbHVlID0gZnJvbU5vZGUuZ2V0QXR0cmlidXRlKGF0dHJOYW1lKTtcblxuICAgICAgICAgICAgaWYgKGZyb21WYWx1ZSAhPT0gYXR0clZhbHVlKSB7XG4gICAgICAgICAgICAgICAgZnJvbU5vZGUuc2V0QXR0cmlidXRlKGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGFueSBleHRyYSBhdHRyaWJ1dGVzIGZvdW5kIG9uIHRoZSBvcmlnaW5hbCBET00gZWxlbWVudCB0aGF0XG4gICAgLy8gd2VyZW4ndCBmb3VuZCBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gICAgdmFyIGZyb21Ob2RlQXR0cnMgPSBmcm9tTm9kZS5hdHRyaWJ1dGVzO1xuXG4gICAgZm9yICh2YXIgZCA9IGZyb21Ob2RlQXR0cnMubGVuZ3RoIC0gMTsgZCA+PSAwOyBkLS0pIHtcbiAgICAgICAgYXR0ciA9IGZyb21Ob2RlQXR0cnNbZF07XG4gICAgICAgIGF0dHJOYW1lID0gYXR0ci5uYW1lO1xuICAgICAgICBhdHRyTmFtZXNwYWNlVVJJID0gYXR0ci5uYW1lc3BhY2VVUkk7XG5cbiAgICAgICAgaWYgKGF0dHJOYW1lc3BhY2VVUkkpIHtcbiAgICAgICAgICAgIGF0dHJOYW1lID0gYXR0ci5sb2NhbE5hbWUgfHwgYXR0ck5hbWU7XG5cbiAgICAgICAgICAgIGlmICghdG9Ob2RlLmhhc0F0dHJpYnV0ZU5TKGF0dHJOYW1lc3BhY2VVUkksIGF0dHJOYW1lKSkge1xuICAgICAgICAgICAgICAgIGZyb21Ob2RlLnJlbW92ZUF0dHJpYnV0ZU5TKGF0dHJOYW1lc3BhY2VVUkksIGF0dHJOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdG9Ob2RlLmhhc0F0dHJpYnV0ZShhdHRyTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBmcm9tTm9kZS5yZW1vdmVBdHRyaWJ1dGUoYXR0ck5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG52YXIgcmFuZ2U7IC8vIENyZWF0ZSBhIHJhbmdlIG9iamVjdCBmb3IgZWZmaWNlbnRseSByZW5kZXJpbmcgc3RyaW5ncyB0byBlbGVtZW50cy5cbnZhciBOU19YSFRNTCA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJztcblxudmFyIGRvYyA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBkb2N1bWVudDtcbnZhciBIQVNfVEVNUExBVEVfU1VQUE9SVCA9ICEhZG9jICYmICdjb250ZW50JyBpbiBkb2MuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbnZhciBIQVNfUkFOR0VfU1VQUE9SVCA9ICEhZG9jICYmIGRvYy5jcmVhdGVSYW5nZSAmJiAnY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50JyBpbiBkb2MuY3JlYXRlUmFuZ2UoKTtcblxuZnVuY3Rpb24gY3JlYXRlRnJhZ21lbnRGcm9tVGVtcGxhdGUoc3RyKSB7XG4gICAgdmFyIHRlbXBsYXRlID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gc3RyO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5jb250ZW50LmNoaWxkTm9kZXNbMF07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZyYWdtZW50RnJvbVJhbmdlKHN0cikge1xuICAgIGlmICghcmFuZ2UpIHtcbiAgICAgICAgcmFuZ2UgPSBkb2MuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZShkb2MuYm9keSk7XG4gICAgfVxuXG4gICAgdmFyIGZyYWdtZW50ID0gcmFuZ2UuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHN0cik7XG4gICAgcmV0dXJuIGZyYWdtZW50LmNoaWxkTm9kZXNbMF07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUZyYWdtZW50RnJvbVdyYXAoc3RyKSB7XG4gICAgdmFyIGZyYWdtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2JvZHknKTtcbiAgICBmcmFnbWVudC5pbm5lckhUTUwgPSBzdHI7XG4gICAgcmV0dXJuIGZyYWdtZW50LmNoaWxkTm9kZXNbMF07XG59XG5cbi8qKlxuICogVGhpcyBpcyBhYm91dCB0aGUgc2FtZVxuICogdmFyIGh0bWwgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHN0ciwgJ3RleHQvaHRtbCcpO1xuICogcmV0dXJuIGh0bWwuYm9keS5maXJzdENoaWxkO1xuICpcbiAqIEBtZXRob2QgdG9FbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKi9cbmZ1bmN0aW9uIHRvRWxlbWVudChzdHIpIHtcbiAgICBzdHIgPSBzdHIudHJpbSgpO1xuICAgIGlmIChIQVNfVEVNUExBVEVfU1VQUE9SVCkge1xuICAgICAgLy8gYXZvaWQgcmVzdHJpY3Rpb25zIG9uIGNvbnRlbnQgZm9yIHRoaW5ncyBsaWtlIGA8dHI+PHRoPkhpPC90aD48L3RyPmAgd2hpY2hcbiAgICAgIC8vIGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCBkb2Vzbid0IHN1cHBvcnRcbiAgICAgIC8vIDx0ZW1wbGF0ZT4gc3VwcG9ydCBub3QgYXZhaWxhYmxlIGluIElFXG4gICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tVGVtcGxhdGUoc3RyKTtcbiAgICB9IGVsc2UgaWYgKEhBU19SQU5HRV9TVVBQT1JUKSB7XG4gICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tUmFuZ2Uoc3RyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tV3JhcChzdHIpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB0d28gbm9kZSdzIG5hbWVzIGFyZSB0aGUgc2FtZS5cbiAqXG4gKiBOT1RFOiBXZSBkb24ndCBib3RoZXIgY2hlY2tpbmcgYG5hbWVzcGFjZVVSSWAgYmVjYXVzZSB5b3Ugd2lsbCBuZXZlciBmaW5kIHR3byBIVE1MIGVsZW1lbnRzIHdpdGggdGhlIHNhbWVcbiAqICAgICAgIG5vZGVOYW1lIGFuZCBkaWZmZXJlbnQgbmFtZXNwYWNlIFVSSXMuXG4gKlxuICogQHBhcmFtIHtFbGVtZW50fSBhXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGIgVGhlIHRhcmdldCBlbGVtZW50XG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5mdW5jdGlvbiBjb21wYXJlTm9kZU5hbWVzKGZyb21FbCwgdG9FbCkge1xuICAgIHZhciBmcm9tTm9kZU5hbWUgPSBmcm9tRWwubm9kZU5hbWU7XG4gICAgdmFyIHRvTm9kZU5hbWUgPSB0b0VsLm5vZGVOYW1lO1xuICAgIHZhciBmcm9tQ29kZVN0YXJ0LCB0b0NvZGVTdGFydDtcblxuICAgIGlmIChmcm9tTm9kZU5hbWUgPT09IHRvTm9kZU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnJvbUNvZGVTdGFydCA9IGZyb21Ob2RlTmFtZS5jaGFyQ29kZUF0KDApO1xuICAgIHRvQ29kZVN0YXJ0ID0gdG9Ob2RlTmFtZS5jaGFyQ29kZUF0KDApO1xuXG4gICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGlzIGEgdmlydHVhbCBET00gbm9kZSBvciBTVkcgbm9kZSB0aGVuIHdlIG1heVxuICAgIC8vIG5lZWQgdG8gbm9ybWFsaXplIHRoZSB0YWcgbmFtZSBiZWZvcmUgY29tcGFyaW5nLiBOb3JtYWwgSFRNTCBlbGVtZW50cyB0aGF0IGFyZVxuICAgIC8vIGluIHRoZSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIlxuICAgIC8vIGFyZSBjb252ZXJ0ZWQgdG8gdXBwZXIgY2FzZVxuICAgIGlmIChmcm9tQ29kZVN0YXJ0IDw9IDkwICYmIHRvQ29kZVN0YXJ0ID49IDk3KSB7IC8vIGZyb20gaXMgdXBwZXIgYW5kIHRvIGlzIGxvd2VyXG4gICAgICAgIHJldHVybiBmcm9tTm9kZU5hbWUgPT09IHRvTm9kZU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICB9IGVsc2UgaWYgKHRvQ29kZVN0YXJ0IDw9IDkwICYmIGZyb21Db2RlU3RhcnQgPj0gOTcpIHsgLy8gdG8gaXMgdXBwZXIgYW5kIGZyb20gaXMgbG93ZXJcbiAgICAgICAgcmV0dXJuIHRvTm9kZU5hbWUgPT09IGZyb21Ob2RlTmFtZS50b1VwcGVyQ2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGVsZW1lbnQsIG9wdGlvbmFsbHkgd2l0aCBhIGtub3duIG5hbWVzcGFjZSBVUkkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgdGhlIGVsZW1lbnQgbmFtZSwgZS5nLiAnZGl2JyBvciAnc3ZnJ1xuICogQHBhcmFtIHtzdHJpbmd9IFtuYW1lc3BhY2VVUkldIHRoZSBlbGVtZW50J3MgbmFtZXNwYWNlIFVSSSwgaS5lLiB0aGUgdmFsdWUgb2ZcbiAqIGl0cyBgeG1sbnNgIGF0dHJpYnV0ZSBvciBpdHMgaW5mZXJyZWQgbmFtZXNwYWNlLlxuICpcbiAqIEByZXR1cm4ge0VsZW1lbnR9XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnROUyhuYW1lLCBuYW1lc3BhY2VVUkkpIHtcbiAgICByZXR1cm4gIW5hbWVzcGFjZVVSSSB8fCBuYW1lc3BhY2VVUkkgPT09IE5TX1hIVE1MID9cbiAgICAgICAgZG9jLmNyZWF0ZUVsZW1lbnQobmFtZSkgOlxuICAgICAgICBkb2MuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZVVSSSwgbmFtZSk7XG59XG5cbi8qKlxuICogQ29waWVzIHRoZSBjaGlsZHJlbiBvZiBvbmUgRE9NIGVsZW1lbnQgdG8gYW5vdGhlciBET00gZWxlbWVudFxuICovXG5mdW5jdGlvbiBtb3ZlQ2hpbGRyZW4oZnJvbUVsLCB0b0VsKSB7XG4gICAgdmFyIGN1ckNoaWxkID0gZnJvbUVsLmZpcnN0Q2hpbGQ7XG4gICAgd2hpbGUgKGN1ckNoaWxkKSB7XG4gICAgICAgIHZhciBuZXh0Q2hpbGQgPSBjdXJDaGlsZC5uZXh0U2libGluZztcbiAgICAgICAgdG9FbC5hcHBlbmRDaGlsZChjdXJDaGlsZCk7XG4gICAgICAgIGN1ckNoaWxkID0gbmV4dENoaWxkO1xuICAgIH1cbiAgICByZXR1cm4gdG9FbDtcbn1cblxuZnVuY3Rpb24gc3luY0Jvb2xlYW5BdHRyUHJvcChmcm9tRWwsIHRvRWwsIG5hbWUpIHtcbiAgICBpZiAoZnJvbUVsW25hbWVdICE9PSB0b0VsW25hbWVdKSB7XG4gICAgICAgIGZyb21FbFtuYW1lXSA9IHRvRWxbbmFtZV07XG4gICAgICAgIGlmIChmcm9tRWxbbmFtZV0pIHtcbiAgICAgICAgICAgIGZyb21FbC5zZXRBdHRyaWJ1dGUobmFtZSwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZnJvbUVsLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxudmFyIHNwZWNpYWxFbEhhbmRsZXJzID0ge1xuICAgIE9QVElPTjogZnVuY3Rpb24oZnJvbUVsLCB0b0VsKSB7XG4gICAgICAgIHZhciBwYXJlbnROb2RlID0gZnJvbUVsLnBhcmVudE5vZGU7XG4gICAgICAgIGlmIChwYXJlbnROb2RlKSB7XG4gICAgICAgICAgICB2YXIgcGFyZW50TmFtZSA9IHBhcmVudE5vZGUubm9kZU5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnROYW1lID09PSAnT1BUR1JPVVAnKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICBwYXJlbnROYW1lID0gcGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyZW50TmFtZSA9PT0gJ1NFTEVDVCcgJiYgIXBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCdtdWx0aXBsZScpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZyb21FbC5oYXNBdHRyaWJ1dGUoJ3NlbGVjdGVkJykgJiYgIXRvRWwuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgTVMgRWRnZSBidWcgd2hlcmUgdGhlICdzZWxlY3RlZCcgYXR0cmlidXRlIGNhbiBvbmx5IGJlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZWQgaWYgc2V0IHRvIGEgbm9uLWVtcHR5IHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy8xMjA4NzY3OS9cbiAgICAgICAgICAgICAgICAgICAgZnJvbUVsLnNldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCAnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgZnJvbUVsLnJlbW92ZUF0dHJpYnV0ZSgnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXNldCBzZWxlY3QgZWxlbWVudCdzIHNlbGVjdGVkSW5kZXggdG8gLTEsIG90aGVyd2lzZSBzZXR0aW5nXG4gICAgICAgICAgICAgICAgLy8gZnJvbUVsLnNlbGVjdGVkIHVzaW5nIHRoZSBzeW5jQm9vbGVhbkF0dHJQcm9wIGJlbG93IGhhcyBubyBlZmZlY3QuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGNvcnJlY3Qgc2VsZWN0ZWRJbmRleCB3aWxsIGJlIHNldCBpbiB0aGUgU0VMRUNUIHNwZWNpYWwgaGFuZGxlciBiZWxvdy5cbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLnNlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzeW5jQm9vbGVhbkF0dHJQcm9wKGZyb21FbCwgdG9FbCwgJ3NlbGVjdGVkJyk7XG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBUaGUgXCJ2YWx1ZVwiIGF0dHJpYnV0ZSBpcyBzcGVjaWFsIGZvciB0aGUgPGlucHV0PiBlbGVtZW50IHNpbmNlIGl0IHNldHNcbiAgICAgKiB0aGUgaW5pdGlhbCB2YWx1ZS4gQ2hhbmdpbmcgdGhlIFwidmFsdWVcIiBhdHRyaWJ1dGUgd2l0aG91dCBjaGFuZ2luZyB0aGVcbiAgICAgKiBcInZhbHVlXCIgcHJvcGVydHkgd2lsbCBoYXZlIG5vIGVmZmVjdCBzaW5jZSBpdCBpcyBvbmx5IHVzZWQgdG8gdGhlIHNldCB0aGVcbiAgICAgKiBpbml0aWFsIHZhbHVlLiAgU2ltaWxhciBmb3IgdGhlIFwiY2hlY2tlZFwiIGF0dHJpYnV0ZSwgYW5kIFwiZGlzYWJsZWRcIi5cbiAgICAgKi9cbiAgICBJTlBVVDogZnVuY3Rpb24oZnJvbUVsLCB0b0VsKSB7XG4gICAgICAgIHN5bmNCb29sZWFuQXR0clByb3AoZnJvbUVsLCB0b0VsLCAnY2hlY2tlZCcpO1xuICAgICAgICBzeW5jQm9vbGVhbkF0dHJQcm9wKGZyb21FbCwgdG9FbCwgJ2Rpc2FibGVkJyk7XG5cbiAgICAgICAgaWYgKGZyb21FbC52YWx1ZSAhPT0gdG9FbC52YWx1ZSkge1xuICAgICAgICAgICAgZnJvbUVsLnZhbHVlID0gdG9FbC52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdG9FbC5oYXNBdHRyaWJ1dGUoJ3ZhbHVlJykpIHtcbiAgICAgICAgICAgIGZyb21FbC5yZW1vdmVBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgICAgIH1cbiAgICB9LFxuXG4gICAgVEVYVEFSRUE6IGZ1bmN0aW9uKGZyb21FbCwgdG9FbCkge1xuICAgICAgICB2YXIgbmV3VmFsdWUgPSB0b0VsLnZhbHVlO1xuICAgICAgICBpZiAoZnJvbUVsLnZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgZnJvbUVsLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZmlyc3RDaGlsZCA9IGZyb21FbC5maXJzdENoaWxkO1xuICAgICAgICBpZiAoZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgLy8gTmVlZGVkIGZvciBJRS4gQXBwYXJlbnRseSBJRSBzZXRzIHRoZSBwbGFjZWhvbGRlciBhcyB0aGVcbiAgICAgICAgICAgIC8vIG5vZGUgdmFsdWUgYW5kIHZpc2UgdmVyc2EuIFRoaXMgaWdub3JlcyBhbiBlbXB0eSB1cGRhdGUuXG4gICAgICAgICAgICB2YXIgb2xkVmFsdWUgPSBmaXJzdENoaWxkLm5vZGVWYWx1ZTtcblxuICAgICAgICAgICAgaWYgKG9sZFZhbHVlID09IG5ld1ZhbHVlIHx8ICghbmV3VmFsdWUgJiYgb2xkVmFsdWUgPT0gZnJvbUVsLnBsYWNlaG9sZGVyKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU0VMRUNUOiBmdW5jdGlvbihmcm9tRWwsIHRvRWwpIHtcbiAgICAgICAgaWYgKCF0b0VsLmhhc0F0dHJpYnV0ZSgnbXVsdGlwbGUnKSkge1xuICAgICAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gbG9vcCB0aHJvdWdoIGNoaWxkcmVuIG9mIGZyb21FbCwgbm90IHRvRWwgc2luY2Ugbm9kZXMgY2FuIGJlIG1vdmVkXG4gICAgICAgICAgICAvLyBmcm9tIHRvRWwgdG8gZnJvbUVsIGRpcmVjdGx5IHdoZW4gbW9ycGhpbmcuXG4gICAgICAgICAgICAvLyBBdCB0aGUgdGltZSB0aGlzIHNwZWNpYWwgaGFuZGxlciBpcyBpbnZva2VkLCBhbGwgY2hpbGRyZW4gaGF2ZSBhbHJlYWR5IGJlZW4gbW9ycGhlZFxuICAgICAgICAgICAgLy8gYW5kIGFwcGVuZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIGZyb21FbCwgc28gdXNpbmcgZnJvbUVsIGhlcmUgaXMgc2FmZSBhbmQgY29ycmVjdC5cbiAgICAgICAgICAgIHZhciBjdXJDaGlsZCA9IGZyb21FbC5maXJzdENoaWxkO1xuICAgICAgICAgICAgdmFyIG9wdGdyb3VwO1xuICAgICAgICAgICAgdmFyIG5vZGVOYW1lO1xuICAgICAgICAgICAgd2hpbGUoY3VyQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICBub2RlTmFtZSA9IGN1ckNoaWxkLm5vZGVOYW1lICYmIGN1ckNoaWxkLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGVOYW1lID09PSAnT1BUR1JPVVAnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGdyb3VwID0gY3VyQ2hpbGQ7XG4gICAgICAgICAgICAgICAgICAgIGN1ckNoaWxkID0gb3B0Z3JvdXAuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZU5hbWUgPT09ICdPUFRJT04nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQ2hpbGQuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY3VyQ2hpbGQgPSBjdXJDaGlsZC5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJDaGlsZCAmJiBvcHRncm91cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VyQ2hpbGQgPSBvcHRncm91cC5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGdyb3VwID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZnJvbUVsLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZEluZGV4O1xuICAgICAgICB9XG4gICAgfVxufTtcblxudmFyIEVMRU1FTlRfTk9ERSA9IDE7XG52YXIgRE9DVU1FTlRfRlJBR01FTlRfTk9ERSQxID0gMTE7XG52YXIgVEVYVF9OT0RFID0gMztcbnZhciBDT01NRU5UX05PREUgPSA4O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxuZnVuY3Rpb24gZGVmYXVsdEdldE5vZGVLZXkobm9kZSkge1xuICBpZiAobm9kZSkge1xuICAgICAgcmV0dXJuIChub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgnaWQnKSkgfHwgbm9kZS5pZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3JwaGRvbUZhY3RvcnkobW9ycGhBdHRycykge1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1vcnBoZG9tKGZyb21Ob2RlLCB0b05vZGUsIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICBvcHRpb25zID0ge307XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRvTm9kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmIChmcm9tTm9kZS5ub2RlTmFtZSA9PT0gJyNkb2N1bWVudCcgfHwgZnJvbU5vZGUubm9kZU5hbWUgPT09ICdIVE1MJyB8fCBmcm9tTm9kZS5ub2RlTmFtZSA9PT0gJ0JPRFknKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRvTm9kZUh0bWwgPSB0b05vZGU7XG4gICAgICAgICAgICAgICAgdG9Ob2RlID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKTtcbiAgICAgICAgICAgICAgICB0b05vZGUuaW5uZXJIVE1MID0gdG9Ob2RlSHRtbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9Ob2RlID0gdG9FbGVtZW50KHRvTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZ2V0Tm9kZUtleSA9IG9wdGlvbnMuZ2V0Tm9kZUtleSB8fCBkZWZhdWx0R2V0Tm9kZUtleTtcbiAgICAgICAgdmFyIG9uQmVmb3JlTm9kZUFkZGVkID0gb3B0aW9ucy5vbkJlZm9yZU5vZGVBZGRlZCB8fCBub29wO1xuICAgICAgICB2YXIgb25Ob2RlQWRkZWQgPSBvcHRpb25zLm9uTm9kZUFkZGVkIHx8IG5vb3A7XG4gICAgICAgIHZhciBvbkJlZm9yZUVsVXBkYXRlZCA9IG9wdGlvbnMub25CZWZvcmVFbFVwZGF0ZWQgfHwgbm9vcDtcbiAgICAgICAgdmFyIG9uRWxVcGRhdGVkID0gb3B0aW9ucy5vbkVsVXBkYXRlZCB8fCBub29wO1xuICAgICAgICB2YXIgb25CZWZvcmVOb2RlRGlzY2FyZGVkID0gb3B0aW9ucy5vbkJlZm9yZU5vZGVEaXNjYXJkZWQgfHwgbm9vcDtcbiAgICAgICAgdmFyIG9uTm9kZURpc2NhcmRlZCA9IG9wdGlvbnMub25Ob2RlRGlzY2FyZGVkIHx8IG5vb3A7XG4gICAgICAgIHZhciBvbkJlZm9yZUVsQ2hpbGRyZW5VcGRhdGVkID0gb3B0aW9ucy5vbkJlZm9yZUVsQ2hpbGRyZW5VcGRhdGVkIHx8IG5vb3A7XG4gICAgICAgIHZhciBjaGlsZHJlbk9ubHkgPSBvcHRpb25zLmNoaWxkcmVuT25seSA9PT0gdHJ1ZTtcblxuICAgICAgICAvLyBUaGlzIG9iamVjdCBpcyB1c2VkIGFzIGEgbG9va3VwIHRvIHF1aWNrbHkgZmluZCBhbGwga2V5ZWQgZWxlbWVudHMgaW4gdGhlIG9yaWdpbmFsIERPTSB0cmVlLlxuICAgICAgICB2YXIgZnJvbU5vZGVzTG9va3VwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdmFyIGtleWVkUmVtb3ZhbExpc3QgPSBbXTtcblxuICAgICAgICBmdW5jdGlvbiBhZGRLZXllZFJlbW92YWwoa2V5KSB7XG4gICAgICAgICAgICBrZXllZFJlbW92YWxMaXN0LnB1c2goa2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHdhbGtEaXNjYXJkZWRDaGlsZE5vZGVzKG5vZGUsIHNraXBLZXllZE5vZGVzKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICAgICAgdmFyIGN1ckNoaWxkID0gbm9kZS5maXJzdENoaWxkO1xuICAgICAgICAgICAgICAgIHdoaWxlIChjdXJDaGlsZCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBrZXkgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNraXBLZXllZE5vZGVzICYmIChrZXkgPSBnZXROb2RlS2V5KGN1ckNoaWxkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGFyZSBza2lwcGluZyBrZXllZCBub2RlcyB0aGVuIHdlIGFkZCB0aGUga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBhIGxpc3Qgc28gdGhhdCBpdCBjYW4gYmUgaGFuZGxlZCBhdCB0aGUgdmVyeSBlbmQuXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRLZXllZFJlbW92YWwoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9ubHkgcmVwb3J0IHRoZSBub2RlIGFzIGRpc2NhcmRlZCBpZiBpdCBpcyBub3Qga2V5ZWQuIFdlIGRvIHRoaXMgYmVjYXVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCB3ZSBsb29wIHRocm91Z2ggYWxsIGtleWVkIGVsZW1lbnRzIHRoYXQgd2VyZSB1bm1hdGNoZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGVuIGRpc2NhcmQgdGhlbSBpbiBvbmUgZmluYWwgcGFzcy5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uTm9kZURpc2NhcmRlZChjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyQ2hpbGQuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbGtEaXNjYXJkZWRDaGlsZE5vZGVzKGN1ckNoaWxkLCBza2lwS2V5ZWROb2Rlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjdXJDaGlsZCA9IGN1ckNoaWxkLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZW1vdmVzIGEgRE9NIG5vZGUgb3V0IG9mIHRoZSBvcmlnaW5hbCBET01cbiAgICAgICAgICpcbiAgICAgICAgICogQHBhcmFtICB7Tm9kZX0gbm9kZSBUaGUgbm9kZSB0byByZW1vdmVcbiAgICAgICAgICogQHBhcmFtICB7Tm9kZX0gcGFyZW50Tm9kZSBUaGUgbm9kZXMgcGFyZW50XG4gICAgICAgICAqIEBwYXJhbSAge0Jvb2xlYW59IHNraXBLZXllZE5vZGVzIElmIHRydWUgdGhlbiBlbGVtZW50cyB3aXRoIGtleXMgd2lsbCBiZSBza2lwcGVkIGFuZCBub3QgZGlzY2FyZGVkLlxuICAgICAgICAgKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gICAgICAgICAqL1xuICAgICAgICBmdW5jdGlvbiByZW1vdmVOb2RlKG5vZGUsIHBhcmVudE5vZGUsIHNraXBLZXllZE5vZGVzKSB7XG4gICAgICAgICAgICBpZiAob25CZWZvcmVOb2RlRGlzY2FyZGVkKG5vZGUpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlLnJlbW92ZUNoaWxkKG5vZGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvbk5vZGVEaXNjYXJkZWQobm9kZSk7XG4gICAgICAgICAgICB3YWxrRGlzY2FyZGVkQ2hpbGROb2Rlcyhub2RlLCBza2lwS2V5ZWROb2Rlcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLyBUcmVlV2Fsa2VyIGltcGxlbWVudGF0aW9uIGlzIG5vIGZhc3RlciwgYnV0IGtlZXBpbmcgdGhpcyBhcm91bmQgaW4gY2FzZSB0aGlzIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAvLyBmdW5jdGlvbiBpbmRleFRyZWUocm9vdCkge1xuICAgICAgICAvLyAgICAgdmFyIHRyZWVXYWxrZXIgPSBkb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgICAvLyAgICAgICAgIHJvb3QsXG4gICAgICAgIC8vICAgICAgICAgTm9kZUZpbHRlci5TSE9XX0VMRU1FTlQpO1xuICAgICAgICAvL1xuICAgICAgICAvLyAgICAgdmFyIGVsO1xuICAgICAgICAvLyAgICAgd2hpbGUoKGVsID0gdHJlZVdhbGtlci5uZXh0Tm9kZSgpKSkge1xuICAgICAgICAvLyAgICAgICAgIHZhciBrZXkgPSBnZXROb2RlS2V5KGVsKTtcbiAgICAgICAgLy8gICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGZyb21Ob2Rlc0xvb2t1cFtrZXldID0gZWw7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gLy8gTm9kZUl0ZXJhdG9yIGltcGxlbWVudGF0aW9uIGlzIG5vIGZhc3RlciwgYnV0IGtlZXBpbmcgdGhpcyBhcm91bmQgaW4gY2FzZSB0aGlzIGNoYW5nZXMgaW4gdGhlIGZ1dHVyZVxuICAgICAgICAvL1xuICAgICAgICAvLyBmdW5jdGlvbiBpbmRleFRyZWUobm9kZSkge1xuICAgICAgICAvLyAgICAgdmFyIG5vZGVJdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihub2RlLCBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7XG4gICAgICAgIC8vICAgICB2YXIgZWw7XG4gICAgICAgIC8vICAgICB3aGlsZSgoZWwgPSBub2RlSXRlcmF0b3IubmV4dE5vZGUoKSkpIHtcbiAgICAgICAgLy8gICAgICAgICB2YXIga2V5ID0gZ2V0Tm9kZUtleShlbCk7XG4gICAgICAgIC8vICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAvLyAgICAgICAgICAgICBmcm9tTm9kZXNMb29rdXBba2V5XSA9IGVsO1xuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuXG4gICAgICAgIGZ1bmN0aW9uIGluZGV4VHJlZShub2RlKSB7XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUkMSkge1xuICAgICAgICAgICAgICAgIHZhciBjdXJDaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoY3VyQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9IGdldE5vZGVLZXkoY3VyQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tTm9kZXNMb29rdXBba2V5XSA9IGN1ckNoaWxkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2FsayByZWN1cnNpdmVseVxuICAgICAgICAgICAgICAgICAgICBpbmRleFRyZWUoY3VyQ2hpbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGN1ckNoaWxkID0gY3VyQ2hpbGQubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5kZXhUcmVlKGZyb21Ob2RlKTtcblxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVOb2RlQWRkZWQoZWwpIHtcbiAgICAgICAgICAgIG9uTm9kZUFkZGVkKGVsKTtcblxuICAgICAgICAgICAgdmFyIGN1ckNoaWxkID0gZWwuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgIHdoaWxlIChjdXJDaGlsZCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXh0U2libGluZyA9IGN1ckNoaWxkLm5leHRTaWJsaW5nO1xuXG4gICAgICAgICAgICAgICAgdmFyIGtleSA9IGdldE5vZGVLZXkoY3VyQ2hpbGQpO1xuICAgICAgICAgICAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVubWF0Y2hlZEZyb21FbCA9IGZyb21Ob2Rlc0xvb2t1cFtrZXldO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBmaW5kIGEgZHVwbGljYXRlICNpZCBub2RlIGluIGNhY2hlLCByZXBsYWNlIGBlbGAgd2l0aCBjYWNoZSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAvLyBhbmQgbW9ycGggaXQgdG8gdGhlIGNoaWxkIG5vZGUuXG4gICAgICAgICAgICAgICAgICAgIGlmICh1bm1hdGNoZWRGcm9tRWwgJiYgY29tcGFyZU5vZGVOYW1lcyhjdXJDaGlsZCwgdW5tYXRjaGVkRnJvbUVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VyQ2hpbGQucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodW5tYXRjaGVkRnJvbUVsLCBjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3JwaEVsKHVubWF0Y2hlZEZyb21FbCwgY3VyQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZU5vZGVBZGRlZChjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgLy8gcmVjdXJzaXZlbHkgY2FsbCBmb3IgY3VyQ2hpbGQgYW5kIGl0J3MgY2hpbGRyZW4gdG8gc2VlIGlmIHdlIGZpbmQgc29tZXRoaW5nIGluXG4gICAgICAgICAgICAgICAgICAvLyBmcm9tTm9kZXNMb29rdXBcbiAgICAgICAgICAgICAgICAgIGhhbmRsZU5vZGVBZGRlZChjdXJDaGlsZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VyQ2hpbGQgPSBuZXh0U2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGNsZWFudXBGcm9tRWwoZnJvbUVsLCBjdXJGcm9tTm9kZUNoaWxkLCBjdXJGcm9tTm9kZUtleSkge1xuICAgICAgICAgICAgLy8gV2UgaGF2ZSBwcm9jZXNzZWQgYWxsIG9mIHRoZSBcInRvIG5vZGVzXCIuIElmIGN1ckZyb21Ob2RlQ2hpbGQgaXNcbiAgICAgICAgICAgIC8vIG5vbi1udWxsIHRoZW4gd2Ugc3RpbGwgaGF2ZSBzb21lIGZyb20gbm9kZXMgbGVmdCBvdmVyIHRoYXQgbmVlZFxuICAgICAgICAgICAgLy8gdG8gYmUgcmVtb3ZlZFxuICAgICAgICAgICAgd2hpbGUgKGN1ckZyb21Ob2RlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICB2YXIgZnJvbU5leHRTaWJsaW5nID0gY3VyRnJvbU5vZGVDaGlsZC5uZXh0U2libGluZztcbiAgICAgICAgICAgICAgICBpZiAoKGN1ckZyb21Ob2RlS2V5ID0gZ2V0Tm9kZUtleShjdXJGcm9tTm9kZUNoaWxkKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vZGUgaXMga2V5ZWQgaXQgbWlnaHQgYmUgbWF0Y2hlZCB1cCBsYXRlciBzbyB3ZSBkZWZlclxuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWN0dWFsIHJlbW92YWwgdG8gbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgYWRkS2V5ZWRSZW1vdmFsKGN1ckZyb21Ob2RlS2V5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBza2lwIG5lc3RlZCBrZXllZCBub2RlcyBmcm9tIGJlaW5nIHJlbW92ZWQgc2luY2UgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgc3RpbGwgYSBjaGFuY2UgdGhleSB3aWxsIGJlIG1hdGNoZWQgdXAgbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZShjdXJGcm9tTm9kZUNoaWxkLCBmcm9tRWwsIHRydWUgLyogc2tpcCBrZXllZCBub2RlcyAqLyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQgPSBmcm9tTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBtb3JwaEVsKGZyb21FbCwgdG9FbCwgY2hpbGRyZW5Pbmx5KSB7XG4gICAgICAgICAgICB2YXIgdG9FbEtleSA9IGdldE5vZGVLZXkodG9FbCk7XG5cbiAgICAgICAgICAgIGlmICh0b0VsS2V5KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgYW4gZWxlbWVudCB3aXRoIGFuIElEIGlzIGJlaW5nIG1vcnBoZWQgdGhlbiBpdCB3aWxsIGJlIGluIHRoZSBmaW5hbFxuICAgICAgICAgICAgICAgIC8vIERPTSBzbyBjbGVhciBpdCBvdXQgb2YgdGhlIHNhdmVkIGVsZW1lbnRzIGNvbGxlY3Rpb25cbiAgICAgICAgICAgICAgICBkZWxldGUgZnJvbU5vZGVzTG9va3VwW3RvRWxLZXldO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuT25seSkge1xuICAgICAgICAgICAgICAgIC8vIG9wdGlvbmFsXG4gICAgICAgICAgICAgICAgaWYgKG9uQmVmb3JlRWxVcGRhdGVkKGZyb21FbCwgdG9FbCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgYXR0cmlidXRlcyBvbiBvcmlnaW5hbCBET00gZWxlbWVudCBmaXJzdFxuICAgICAgICAgICAgICAgIG1vcnBoQXR0cnMoZnJvbUVsLCB0b0VsKTtcbiAgICAgICAgICAgICAgICAvLyBvcHRpb25hbFxuICAgICAgICAgICAgICAgIG9uRWxVcGRhdGVkKGZyb21FbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob25CZWZvcmVFbENoaWxkcmVuVXBkYXRlZChmcm9tRWwsIHRvRWwpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZnJvbUVsLm5vZGVOYW1lICE9PSAnVEVYVEFSRUEnKSB7XG4gICAgICAgICAgICAgIG1vcnBoQ2hpbGRyZW4oZnJvbUVsLCB0b0VsKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNwZWNpYWxFbEhhbmRsZXJzLlRFWFRBUkVBKGZyb21FbCwgdG9FbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBtb3JwaENoaWxkcmVuKGZyb21FbCwgdG9FbCkge1xuICAgICAgICAgICAgdmFyIGN1clRvTm9kZUNoaWxkID0gdG9FbC5maXJzdENoaWxkO1xuICAgICAgICAgICAgdmFyIGN1ckZyb21Ob2RlQ2hpbGQgPSBmcm9tRWwuZmlyc3RDaGlsZDtcbiAgICAgICAgICAgIHZhciBjdXJUb05vZGVLZXk7XG4gICAgICAgICAgICB2YXIgY3VyRnJvbU5vZGVLZXk7XG5cbiAgICAgICAgICAgIHZhciBmcm9tTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB2YXIgdG9OZXh0U2libGluZztcbiAgICAgICAgICAgIHZhciBtYXRjaGluZ0Zyb21FbDtcblxuICAgICAgICAgICAgLy8gd2FsayB0aGUgY2hpbGRyZW5cbiAgICAgICAgICAgIG91dGVyOiB3aGlsZSAoY3VyVG9Ob2RlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICB0b05leHRTaWJsaW5nID0gY3VyVG9Ob2RlQ2hpbGQubmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgY3VyVG9Ob2RlS2V5ID0gZ2V0Tm9kZUtleShjdXJUb05vZGVDaGlsZCk7XG5cbiAgICAgICAgICAgICAgICAvLyB3YWxrIHRoZSBmcm9tTm9kZSBjaGlsZHJlbiBhbGwgdGhlIHdheSB0aHJvdWdoXG4gICAgICAgICAgICAgICAgd2hpbGUgKGN1ckZyb21Ob2RlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbU5leHRTaWJsaW5nID0gY3VyRnJvbU5vZGVDaGlsZC5uZXh0U2libGluZztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyVG9Ob2RlQ2hpbGQuaXNTYW1lTm9kZSAmJiBjdXJUb05vZGVDaGlsZC5pc1NhbWVOb2RlKGN1ckZyb21Ob2RlQ2hpbGQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJUb05vZGVDaGlsZCA9IHRvTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJGcm9tTm9kZUNoaWxkID0gZnJvbU5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgb3V0ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjdXJGcm9tTm9kZUtleSA9IGdldE5vZGVLZXkoY3VyRnJvbU5vZGVDaGlsZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGN1ckZyb21Ob2RlVHlwZSA9IGN1ckZyb21Ob2RlQ2hpbGQubm9kZVR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBtZWFucyBpZiB0aGUgY3VyRnJvbU5vZGVDaGlsZCBkb2VzbnQgaGF2ZSBhIG1hdGNoIHdpdGggdGhlIGN1clRvTm9kZUNoaWxkXG4gICAgICAgICAgICAgICAgICAgIHZhciBpc0NvbXBhdGlibGUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckZyb21Ob2RlVHlwZSA9PT0gY3VyVG9Ob2RlQ2hpbGQubm9kZVR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJGcm9tTm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJvdGggbm9kZXMgYmVpbmcgY29tcGFyZWQgYXJlIEVsZW1lbnQgbm9kZXNcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJUb05vZGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHRhcmdldCBub2RlIGhhcyBhIGtleSBzbyB3ZSB3YW50IHRvIG1hdGNoIGl0IHVwIHdpdGggdGhlIGNvcnJlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgb3JpZ2luYWwgRE9NIHRyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1clRvTm9kZUtleSAhPT0gY3VyRnJvbU5vZGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBjdXJyZW50IGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsIERPTSB0cmVlIGRvZXMgbm90IGhhdmUgYSBtYXRjaGluZyBrZXkgc29cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxldCdzIGNoZWNrIG91ciBsb29rdXAgdG8gc2VlIGlmIHRoZXJlIGlzIGEgbWF0Y2hpbmcgZWxlbWVudCBpbiB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPTSB0cmVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKG1hdGNoaW5nRnJvbUVsID0gZnJvbU5vZGVzTG9va3VwW2N1clRvTm9kZUtleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZyb21OZXh0U2libGluZyA9PT0gbWF0Y2hpbmdGcm9tRWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3BlY2lhbCBjYXNlIGZvciBzaW5nbGUgZWxlbWVudCByZW1vdmFscy4gVG8gYXZvaWQgcmVtb3ZpbmcgdGhlIG9yaWdpbmFsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPTSBub2RlIG91dCBvZiB0aGUgdHJlZSAoc2luY2UgdGhhdCBjYW4gYnJlYWsgQ1NTIHRyYW5zaXRpb25zLCBldGMuKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2Ugd2lsbCBpbnN0ZWFkIGRpc2NhcmQgdGhlIGN1cnJlbnQgbm9kZSBhbmQgd2FpdCB1bnRpbCB0aGUgbmV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdGVyYXRpb24gdG8gcHJvcGVybHkgbWF0Y2ggdXAgdGhlIGtleWVkIHRhcmdldCBlbGVtZW50IHdpdGggaXRzIG1hdGNoaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQgaW4gdGhlIG9yaWdpbmFsIHRyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgZm91bmQgYSBtYXRjaGluZyBrZXllZCBlbGVtZW50IHNvbWV3aGVyZSBpbiB0aGUgb3JpZ2luYWwgRE9NIHRyZWUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExldCdzIG1vdmUgdGhlIG9yaWdpbmFsIERPTSBub2RlIGludG8gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIG1vcnBoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0LlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5PVEU6IFdlIHVzZSBpbnNlcnRCZWZvcmUgaW5zdGVhZCBvZiByZXBsYWNlQ2hpbGQgYmVjYXVzZSB3ZSB3YW50IHRvIGdvIHRocm91Z2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGByZW1vdmVOb2RlKClgIGZ1bmN0aW9uIGZvciB0aGUgbm9kZSB0aGF0IGlzIGJlaW5nIGRpc2NhcmRlZCBzbyB0aGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBsaWZlY3ljbGUgaG9va3MgYXJlIGNvcnJlY3RseSBpbnZva2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21FbC5pbnNlcnRCZWZvcmUobWF0Y2hpbmdGcm9tRWwsIGN1ckZyb21Ob2RlQ2hpbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZyb21OZXh0U2libGluZyA9IGN1ckZyb21Ob2RlQ2hpbGQubmV4dFNpYmxpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckZyb21Ob2RlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB0aGUgbm9kZSBpcyBrZXllZCBpdCBtaWdodCBiZSBtYXRjaGVkIHVwIGxhdGVyIHNvIHdlIGRlZmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgYWN0dWFsIHJlbW92YWwgdG8gbGF0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEtleWVkUmVtb3ZhbChjdXJGcm9tTm9kZUtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiB3ZSBza2lwIG5lc3RlZCBrZXllZCBub2RlcyBmcm9tIGJlaW5nIHJlbW92ZWQgc2luY2UgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgIHN0aWxsIGEgY2hhbmNlIHRoZXkgd2lsbCBiZSBtYXRjaGVkIHVwIGxhdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVOb2RlKGN1ckZyb21Ob2RlQ2hpbGQsIGZyb21FbCwgdHJ1ZSAvKiBza2lwIGtleWVkIG5vZGVzICovKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQgPSBtYXRjaGluZ0Zyb21FbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBub2RlcyBhcmUgbm90IGNvbXBhdGlibGUgc2luY2UgdGhlIFwidG9cIiBub2RlIGhhcyBhIGtleSBhbmQgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyBubyBtYXRjaGluZyBrZXllZCBub2RlIGluIHRoZSBzb3VyY2UgdHJlZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJGcm9tTm9kZUtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgb3JpZ2luYWwgaGFzIGEga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcGF0aWJsZSA9IGlzQ29tcGF0aWJsZSAhPT0gZmFsc2UgJiYgY29tcGFyZU5vZGVOYW1lcyhjdXJGcm9tTm9kZUNoaWxkLCBjdXJUb05vZGVDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBmb3VuZCBjb21wYXRpYmxlIERPTSBlbGVtZW50cyBzbyB0cmFuc2Zvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgXCJmcm9tXCIgbm9kZSB0byBtYXRjaCB0aGUgY3VycmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXQgRE9NIG5vZGUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1PUlBIXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcnBoRWwoY3VyRnJvbU5vZGVDaGlsZCwgY3VyVG9Ob2RlQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJGcm9tTm9kZVR5cGUgPT09IFRFWFRfTk9ERSB8fCBjdXJGcm9tTm9kZVR5cGUgPT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQm90aCBub2RlcyBiZWluZyBjb21wYXJlZCBhcmUgVGV4dCBvciBDb21tZW50IG5vZGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDb21wYXRpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW1wbHkgdXBkYXRlIG5vZGVWYWx1ZSBvbiB0aGUgb3JpZ2luYWwgbm9kZSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoYW5nZSB0aGUgdGV4dCB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJGcm9tTm9kZUNoaWxkLm5vZGVWYWx1ZSAhPT0gY3VyVG9Ob2RlQ2hpbGQubm9kZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQubm9kZVZhbHVlID0gY3VyVG9Ob2RlQ2hpbGQubm9kZVZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29tcGF0aWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWR2YW5jZSBib3RoIHRoZSBcInRvXCIgY2hpbGQgYW5kIHRoZSBcImZyb21cIiBjaGlsZCBzaW5jZSB3ZSBmb3VuZCBhIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RoaW5nIGVsc2UgdG8gZG8gYXMgd2UgYWxyZWFkeSByZWN1cnNpdmVseSBjYWxsZWQgbW9ycGhDaGlsZHJlbiBhYm92ZVxuICAgICAgICAgICAgICAgICAgICAgICAgY3VyVG9Ob2RlQ2hpbGQgPSB0b05leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VyRnJvbU5vZGVDaGlsZCA9IGZyb21OZXh0U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTm8gY29tcGF0aWJsZSBtYXRjaCBzbyByZW1vdmUgdGhlIG9sZCBub2RlIGZyb20gdGhlIERPTSBhbmQgY29udGludWUgdHJ5aW5nIHRvIGZpbmQgYVxuICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaCBpbiB0aGUgb3JpZ2luYWwgRE9NLiBIb3dldmVyLCB3ZSBvbmx5IGRvIHRoaXMgaWYgdGhlIGZyb20gbm9kZSBpcyBub3Qga2V5ZWRcbiAgICAgICAgICAgICAgICAgICAgLy8gc2luY2UgaXQgaXMgcG9zc2libGUgdGhhdCBhIGtleWVkIG5vZGUgbWlnaHQgbWF0Y2ggdXAgd2l0aCBhIG5vZGUgc29tZXdoZXJlIGVsc2UgaW4gdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRhcmdldCB0cmVlIGFuZCB3ZSBkb24ndCB3YW50IHRvIGRpc2NhcmQgaXQganVzdCB5ZXQgc2luY2UgaXQgc3RpbGwgbWlnaHQgZmluZCBhXG4gICAgICAgICAgICAgICAgICAgIC8vIGhvbWUgaW4gdGhlIGZpbmFsIERPTSB0cmVlLiBBZnRlciBldmVyeXRoaW5nIGlzIGRvbmUgd2Ugd2lsbCByZW1vdmUgYW55IGtleWVkIG5vZGVzXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgZGlkbid0IGZpbmQgYSBob21lXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJGcm9tTm9kZUtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIG5vZGUgaXMga2V5ZWQgaXQgbWlnaHQgYmUgbWF0Y2hlZCB1cCBsYXRlciBzbyB3ZSBkZWZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGFjdHVhbCByZW1vdmFsIHRvIGxhdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRLZXllZFJlbW92YWwoY3VyRnJvbU5vZGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogd2Ugc2tpcCBuZXN0ZWQga2V5ZWQgbm9kZXMgZnJvbSBiZWluZyByZW1vdmVkIHNpbmNlIHRoZXJlIGlzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICBzdGlsbCBhIGNoYW5jZSB0aGV5IHdpbGwgYmUgbWF0Y2hlZCB1cCBsYXRlclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlTm9kZShjdXJGcm9tTm9kZUNoaWxkLCBmcm9tRWwsIHRydWUgLyogc2tpcCBrZXllZCBub2RlcyAqLyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjdXJGcm9tTm9kZUNoaWxkID0gZnJvbU5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIH0gLy8gRU5EOiB3aGlsZShjdXJGcm9tTm9kZUNoaWxkKSB7fVxuXG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZ290IHRoaXMgZmFyIHRoZW4gd2UgZGlkIG5vdCBmaW5kIGEgY2FuZGlkYXRlIG1hdGNoIGZvclxuICAgICAgICAgICAgICAgIC8vIG91ciBcInRvIG5vZGVcIiBhbmQgd2UgZXhoYXVzdGVkIGFsbCBvZiB0aGUgY2hpbGRyZW4gXCJmcm9tXCJcbiAgICAgICAgICAgICAgICAvLyBub2Rlcy4gVGhlcmVmb3JlLCB3ZSB3aWxsIGp1c3QgYXBwZW5kIHRoZSBjdXJyZW50IFwidG9cIiBub2RlXG4gICAgICAgICAgICAgICAgLy8gdG8gdGhlIGVuZFxuICAgICAgICAgICAgICAgIGlmIChjdXJUb05vZGVLZXkgJiYgKG1hdGNoaW5nRnJvbUVsID0gZnJvbU5vZGVzTG9va3VwW2N1clRvTm9kZUtleV0pICYmIGNvbXBhcmVOb2RlTmFtZXMobWF0Y2hpbmdGcm9tRWwsIGN1clRvTm9kZUNoaWxkKSkge1xuICAgICAgICAgICAgICAgICAgICBmcm9tRWwuYXBwZW5kQ2hpbGQobWF0Y2hpbmdGcm9tRWwpO1xuICAgICAgICAgICAgICAgICAgICAvLyBNT1JQSFxuICAgICAgICAgICAgICAgICAgICBtb3JwaEVsKG1hdGNoaW5nRnJvbUVsLCBjdXJUb05vZGVDaGlsZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG9uQmVmb3JlTm9kZUFkZGVkUmVzdWx0ID0gb25CZWZvcmVOb2RlQWRkZWQoY3VyVG9Ob2RlQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob25CZWZvcmVOb2RlQWRkZWRSZXN1bHQgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob25CZWZvcmVOb2RlQWRkZWRSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJUb05vZGVDaGlsZCA9IG9uQmVmb3JlTm9kZUFkZGVkUmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyVG9Ob2RlQ2hpbGQuYWN0dWFsaXplKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyVG9Ob2RlQ2hpbGQgPSBjdXJUb05vZGVDaGlsZC5hY3R1YWxpemUoZnJvbUVsLm93bmVyRG9jdW1lbnQgfHwgZG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGZyb21FbC5hcHBlbmRDaGlsZChjdXJUb05vZGVDaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVOb2RlQWRkZWQoY3VyVG9Ob2RlQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3VyVG9Ob2RlQ2hpbGQgPSB0b05leHRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIGN1ckZyb21Ob2RlQ2hpbGQgPSBmcm9tTmV4dFNpYmxpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNsZWFudXBGcm9tRWwoZnJvbUVsLCBjdXJGcm9tTm9kZUNoaWxkLCBjdXJGcm9tTm9kZUtleSk7XG5cbiAgICAgICAgICAgIHZhciBzcGVjaWFsRWxIYW5kbGVyID0gc3BlY2lhbEVsSGFuZGxlcnNbZnJvbUVsLm5vZGVOYW1lXTtcbiAgICAgICAgICAgIGlmIChzcGVjaWFsRWxIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgc3BlY2lhbEVsSGFuZGxlcihmcm9tRWwsIHRvRWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IC8vIEVORDogbW9ycGhDaGlsZHJlbiguLi4pXG5cbiAgICAgICAgdmFyIG1vcnBoZWROb2RlID0gZnJvbU5vZGU7XG4gICAgICAgIHZhciBtb3JwaGVkTm9kZVR5cGUgPSBtb3JwaGVkTm9kZS5ub2RlVHlwZTtcbiAgICAgICAgdmFyIHRvTm9kZVR5cGUgPSB0b05vZGUubm9kZVR5cGU7XG5cbiAgICAgICAgaWYgKCFjaGlsZHJlbk9ubHkpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgZ2l2ZW4gdHdvIERPTSBub2RlcyB0aGF0IGFyZSBub3RcbiAgICAgICAgICAgIC8vIGNvbXBhdGlibGUgKGUuZy4gPGRpdj4gLS0+IDxzcGFuPiBvciA8ZGl2PiAtLT4gVEVYVClcbiAgICAgICAgICAgIGlmIChtb3JwaGVkTm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgIGlmICh0b05vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb21wYXJlTm9kZU5hbWVzKGZyb21Ob2RlLCB0b05vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk5vZGVEaXNjYXJkZWQoZnJvbU5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9ycGhlZE5vZGUgPSBtb3ZlQ2hpbGRyZW4oZnJvbU5vZGUsIGNyZWF0ZUVsZW1lbnROUyh0b05vZGUubm9kZU5hbWUsIHRvTm9kZS5uYW1lc3BhY2VVUkkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEdvaW5nIGZyb20gYW4gZWxlbWVudCBub2RlIHRvIGEgdGV4dCBub2RlXG4gICAgICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlID0gdG9Ob2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobW9ycGhlZE5vZGVUeXBlID09PSBURVhUX05PREUgfHwgbW9ycGhlZE5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHsgLy8gVGV4dCBvciBjb21tZW50IG5vZGVcbiAgICAgICAgICAgICAgICBpZiAodG9Ob2RlVHlwZSA9PT0gbW9ycGhlZE5vZGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb3JwaGVkTm9kZS5ub2RlVmFsdWUgIT09IHRvTm9kZS5ub2RlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlLm5vZGVWYWx1ZSA9IHRvTm9kZS5ub2RlVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9ycGhlZE5vZGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGV4dCBub2RlIHRvIHNvbWV0aGluZyBlbHNlXG4gICAgICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlID0gdG9Ob2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb3JwaGVkTm9kZSA9PT0gdG9Ob2RlKSB7XG4gICAgICAgICAgICAvLyBUaGUgXCJ0byBub2RlXCIgd2FzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIFwiZnJvbSBub2RlXCIgc28gd2UgaGFkIHRvXG4gICAgICAgICAgICAvLyB0b3NzIG91dCB0aGUgXCJmcm9tIG5vZGVcIiBhbmQgdXNlIHRoZSBcInRvIG5vZGVcIlxuICAgICAgICAgICAgb25Ob2RlRGlzY2FyZGVkKGZyb21Ob2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0b05vZGUuaXNTYW1lTm9kZSAmJiB0b05vZGUuaXNTYW1lTm9kZShtb3JwaGVkTm9kZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vcnBoRWwobW9ycGhlZE5vZGUsIHRvTm9kZSwgY2hpbGRyZW5Pbmx5KTtcblxuICAgICAgICAgICAgLy8gV2Ugbm93IG5lZWQgdG8gbG9vcCBvdmVyIGFueSBrZXllZCBub2RlcyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmVcbiAgICAgICAgICAgIC8vIHJlbW92ZWQuIFdlIG9ubHkgZG8gdGhlIHJlbW92YWwgaWYgd2Uga25vdyB0aGF0IHRoZSBrZXllZCBub2RlXG4gICAgICAgICAgICAvLyBuZXZlciBmb3VuZCBhIG1hdGNoLiBXaGVuIGEga2V5ZWQgbm9kZSBpcyBtYXRjaGVkIHVwIHdlIHJlbW92ZVxuICAgICAgICAgICAgLy8gaXQgb3V0IG9mIGZyb21Ob2Rlc0xvb2t1cCBhbmQgd2UgdXNlIGZyb21Ob2Rlc0xvb2t1cCB0byBkZXRlcm1pbmVcbiAgICAgICAgICAgIC8vIGlmIGEga2V5ZWQgbm9kZSBoYXMgYmVlbiBtYXRjaGVkIHVwIG9yIG5vdFxuICAgICAgICAgICAgaWYgKGtleWVkUmVtb3ZhbExpc3QpIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpPTAsIGxlbj1rZXllZFJlbW92YWxMaXN0Lmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxUb1JlbW92ZSA9IGZyb21Ob2Rlc0xvb2t1cFtrZXllZFJlbW92YWxMaXN0W2ldXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsVG9SZW1vdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZU5vZGUoZWxUb1JlbW92ZSwgZWxUb1JlbW92ZS5wYXJlbnROb2RlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWNoaWxkcmVuT25seSAmJiBtb3JwaGVkTm9kZSAhPT0gZnJvbU5vZGUgJiYgZnJvbU5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgaWYgKG1vcnBoZWROb2RlLmFjdHVhbGl6ZSkge1xuICAgICAgICAgICAgICAgIG1vcnBoZWROb2RlID0gbW9ycGhlZE5vZGUuYWN0dWFsaXplKGZyb21Ob2RlLm93bmVyRG9jdW1lbnQgfHwgZG9jKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHdlIGhhZCB0byBzd2FwIG91dCB0aGUgZnJvbSBub2RlIHdpdGggYSBuZXcgbm9kZSBiZWNhdXNlIHRoZSBvbGRcbiAgICAgICAgICAgIC8vIG5vZGUgd2FzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBub2RlIHRoZW4gd2UgbmVlZCB0b1xuICAgICAgICAgICAgLy8gcmVwbGFjZSB0aGUgb2xkIERPTSBub2RlIGluIHRoZSBvcmlnaW5hbCBET00gdHJlZS4gVGhpcyBpcyBvbmx5XG4gICAgICAgICAgICAvLyBwb3NzaWJsZSBpZiB0aGUgb3JpZ2luYWwgRE9NIG5vZGUgd2FzIHBhcnQgb2YgYSBET00gdHJlZSB3aGljaFxuICAgICAgICAgICAgLy8gd2Uga25vdyBpcyB0aGUgY2FzZSBpZiBpdCBoYXMgYSBwYXJlbnQgbm9kZS5cbiAgICAgICAgICAgIGZyb21Ob2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKG1vcnBoZWROb2RlLCBmcm9tTm9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbW9ycGhlZE5vZGU7XG4gICAgfTtcbn1cblxudmFyIG1vcnBoZG9tID0gbW9ycGhkb21GYWN0b3J5KG1vcnBoQXR0cnMpO1xuXG5leHBvcnQgZGVmYXVsdCBtb3JwaGRvbTtcbiIsICJpbXBvcnQge1xuICBQSFhfQ09NUE9ORU5ULFxuICBQSFhfRElTQUJMRV9XSVRILFxuICBQSFhfRkVFREJBQ0tfRk9SLFxuICBQSFhfUFJVTkUsXG4gIFBIWF9ST09UX0lELFxuICBQSFhfU0VTU0lPTixcbiAgUEhYX1NLSVAsXG4gIFBIWF9TVEFUSUMsXG4gIFBIWF9UUklHR0VSX0FDVElPTixcbiAgUEhYX1VQREFURVxufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5pbXBvcnQge1xuICBkZXRlY3REdXBsaWNhdGVJZHMsXG4gIGlzQ2lkXG59IGZyb20gXCIuL3V0aWxzXCJcblxuaW1wb3J0IERPTSBmcm9tIFwiLi9kb21cIlxuaW1wb3J0IERPTVBvc3RNb3JwaFJlc3RvcmVyIGZyb20gXCIuL2RvbV9wb3N0X21vcnBoX3Jlc3RvcmVyXCJcbmltcG9ydCBtb3JwaGRvbSBmcm9tIFwibW9ycGhkb21cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBET01QYXRjaCB7XG4gIHN0YXRpYyBwYXRjaEVsKGZyb21FbCwgdG9FbCwgYWN0aXZlRWxlbWVudCl7XG4gICAgbW9ycGhkb20oZnJvbUVsLCB0b0VsLCB7XG4gICAgICBjaGlsZHJlbk9ubHk6IGZhbHNlLFxuICAgICAgb25CZWZvcmVFbFVwZGF0ZWQ6IChmcm9tRWwsIHRvRWwpID0+IHtcbiAgICAgICAgaWYoYWN0aXZlRWxlbWVudCAmJiBhY3RpdmVFbGVtZW50LmlzU2FtZU5vZGUoZnJvbUVsKSAmJiBET00uaXNGb3JtSW5wdXQoZnJvbUVsKSl7XG4gICAgICAgICAgRE9NLm1lcmdlRm9jdXNlZElucHV0KGZyb21FbCwgdG9FbClcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25zdHJ1Y3Rvcih2aWV3LCBjb250YWluZXIsIGlkLCBodG1sLCB0YXJnZXRDSUQpe1xuICAgIHRoaXMudmlldyA9IHZpZXdcbiAgICB0aGlzLmxpdmVTb2NrZXQgPSB2aWV3LmxpdmVTb2NrZXRcbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lclxuICAgIHRoaXMuaWQgPSBpZFxuICAgIHRoaXMucm9vdElEID0gdmlldy5yb290LmlkXG4gICAgdGhpcy5odG1sID0gaHRtbFxuICAgIHRoaXMudGFyZ2V0Q0lEID0gdGFyZ2V0Q0lEXG4gICAgdGhpcy5jaWRQYXRjaCA9IGlzQ2lkKHRoaXMudGFyZ2V0Q0lEKVxuICAgIHRoaXMuY2FsbGJhY2tzID0ge1xuICAgICAgYmVmb3JlYWRkZWQ6IFtdLCBiZWZvcmV1cGRhdGVkOiBbXSwgYmVmb3JlcGh4Q2hpbGRBZGRlZDogW10sXG4gICAgICBhZnRlcmFkZGVkOiBbXSwgYWZ0ZXJ1cGRhdGVkOiBbXSwgYWZ0ZXJkaXNjYXJkZWQ6IFtdLCBhZnRlcnBoeENoaWxkQWRkZWQ6IFtdLFxuICAgICAgYWZ0ZXJ0cmFuc2l0aW9uc0Rpc2NhcmRlZDogW11cbiAgICB9XG4gIH1cblxuICBiZWZvcmUoa2luZCwgY2FsbGJhY2speyB0aGlzLmNhbGxiYWNrc1tgYmVmb3JlJHtraW5kfWBdLnB1c2goY2FsbGJhY2spIH1cbiAgYWZ0ZXIoa2luZCwgY2FsbGJhY2speyB0aGlzLmNhbGxiYWNrc1tgYWZ0ZXIke2tpbmR9YF0ucHVzaChjYWxsYmFjaykgfVxuXG4gIHRyYWNrQmVmb3JlKGtpbmQsIC4uLmFyZ3Mpe1xuICAgIHRoaXMuY2FsbGJhY2tzW2BiZWZvcmUke2tpbmR9YF0uZm9yRWFjaChjYWxsYmFjayA9PiBjYWxsYmFjayguLi5hcmdzKSlcbiAgfVxuXG4gIHRyYWNrQWZ0ZXIoa2luZCwgLi4uYXJncyl7XG4gICAgdGhpcy5jYWxsYmFja3NbYGFmdGVyJHtraW5kfWBdLmZvckVhY2goY2FsbGJhY2sgPT4gY2FsbGJhY2soLi4uYXJncykpXG4gIH1cblxuICBtYXJrUHJ1bmFibGVDb250ZW50Rm9yUmVtb3ZhbCgpe1xuICAgIERPTS5hbGwodGhpcy5jb250YWluZXIsIFwiW3BoeC11cGRhdGU9YXBwZW5kXSA+ICosIFtwaHgtdXBkYXRlPXByZXBlbmRdID4gKlwiLCBlbCA9PiB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoUEhYX1BSVU5FLCBcIlwiKVxuICAgIH0pXG4gIH1cblxuICBwZXJmb3JtKCl7XG4gICAgbGV0IHt2aWV3LCBsaXZlU29ja2V0LCBjb250YWluZXIsIGh0bWx9ID0gdGhpc1xuICAgIGxldCB0YXJnZXRDb250YWluZXIgPSB0aGlzLmlzQ0lEUGF0Y2goKSA/IHRoaXMudGFyZ2V0Q0lEQ29udGFpbmVyKGh0bWwpIDogY29udGFpbmVyXG4gICAgaWYodGhpcy5pc0NJRFBhdGNoKCkgJiYgIXRhcmdldENvbnRhaW5lcil7IHJldHVybiB9XG5cbiAgICBsZXQgZm9jdXNlZCA9IGxpdmVTb2NrZXQuZ2V0QWN0aXZlRWxlbWVudCgpXG4gICAgbGV0IHtzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kfSA9IGZvY3VzZWQgJiYgRE9NLmhhc1NlbGVjdGlvblJhbmdlKGZvY3VzZWQpID8gZm9jdXNlZCA6IHt9XG4gICAgbGV0IHBoeFVwZGF0ZSA9IGxpdmVTb2NrZXQuYmluZGluZyhQSFhfVVBEQVRFKVxuICAgIGxldCBwaHhGZWVkYmFja0ZvciA9IGxpdmVTb2NrZXQuYmluZGluZyhQSFhfRkVFREJBQ0tfRk9SKVxuICAgIGxldCBkaXNhYmxlV2l0aCA9IGxpdmVTb2NrZXQuYmluZGluZyhQSFhfRElTQUJMRV9XSVRIKVxuICAgIGxldCBwaHhUcmlnZ2VyRXh0ZXJuYWwgPSBsaXZlU29ja2V0LmJpbmRpbmcoUEhYX1RSSUdHRVJfQUNUSU9OKVxuICAgIGxldCBwaHhSZW1vdmUgPSBsaXZlU29ja2V0LmJpbmRpbmcoXCJyZW1vdmVcIilcbiAgICBsZXQgYWRkZWQgPSBbXVxuICAgIGxldCB1cGRhdGVzID0gW11cbiAgICBsZXQgYXBwZW5kUHJlcGVuZFVwZGF0ZXMgPSBbXVxuICAgIGxldCBwZW5kaW5nUmVtb3ZlcyA9IFtdXG4gICAgbGV0IGV4dGVybmFsRm9ybVRyaWdnZXJlZCA9IG51bGxcblxuICAgIGxldCBkaWZmSFRNTCA9IGxpdmVTb2NrZXQudGltZShcInByZW1vcnBoIGNvbnRhaW5lciBwcmVwXCIsICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkRGlmZkhUTUwoY29udGFpbmVyLCBodG1sLCBwaHhVcGRhdGUsIHRhcmdldENvbnRhaW5lcilcbiAgICB9KVxuXG4gICAgdGhpcy50cmFja0JlZm9yZShcImFkZGVkXCIsIGNvbnRhaW5lcilcbiAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBjb250YWluZXIsIGNvbnRhaW5lcilcblxuICAgIGxpdmVTb2NrZXQudGltZShcIm1vcnBoZG9tXCIsICgpID0+IHtcbiAgICAgIG1vcnBoZG9tKHRhcmdldENvbnRhaW5lciwgZGlmZkhUTUwsIHtcbiAgICAgICAgY2hpbGRyZW5Pbmx5OiB0YXJnZXRDb250YWluZXIuZ2V0QXR0cmlidXRlKFBIWF9DT01QT05FTlQpID09PSBudWxsLFxuICAgICAgICBnZXROb2RlS2V5OiAobm9kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBET00uaXNQaHhEZXN0cm95ZWQobm9kZSkgPyBudWxsIDogbm9kZS5pZFxuICAgICAgICB9LFxuICAgICAgICBvbkJlZm9yZU5vZGVBZGRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy50cmFja0JlZm9yZShcImFkZGVkXCIsIGVsKVxuICAgICAgICAgIHJldHVybiBlbFxuICAgICAgICB9LFxuICAgICAgICBvbk5vZGVBZGRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgLy8gaGFjayB0byBmaXggU2FmYXJpIGhhbmRsaW5nIG9mIGltZyBzcmNzZXQgYW5kIHZpZGVvIHRhZ3NcbiAgICAgICAgICBpZihlbCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQgJiYgZWwuc3Jjc2V0KXtcbiAgICAgICAgICAgIGVsLnNyY3NldCA9IGVsLnNyY3NldFxuICAgICAgICAgIH0gZWxzZSBpZihlbCBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnQgJiYgZWwuYXV0b3BsYXkpe1xuICAgICAgICAgICAgZWwucGxheSgpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKERPTS5pc05vd1RyaWdnZXJGb3JtRXh0ZXJuYWwoZWwsIHBoeFRyaWdnZXJFeHRlcm5hbCkpe1xuICAgICAgICAgICAgZXh0ZXJuYWxGb3JtVHJpZ2dlcmVkID0gZWxcbiAgICAgICAgICB9XG4gICAgICAgICAgLy9pbnB1dCBoYW5kbGluZ1xuICAgICAgICAgIERPTS5kaXNjYXJkRXJyb3IodGFyZ2V0Q29udGFpbmVyLCBlbCwgcGh4RmVlZGJhY2tGb3IpXG4gICAgICAgICAgLy8gbmVzdGVkIHZpZXcgaGFuZGxpbmdcbiAgICAgICAgICBpZigoRE9NLmlzUGh4Q2hpbGQoZWwpICYmIHZpZXcub3duc0VsZW1lbnQoZWwpKSB8fCBET00uaXNQaHhTdGlja3koZWwpICYmIHZpZXcub3duc0VsZW1lbnQoZWwucGFyZW50Tm9kZSkpe1xuICAgICAgICAgICAgdGhpcy50cmFja0FmdGVyKFwicGh4Q2hpbGRBZGRlZFwiLCBlbClcbiAgICAgICAgICB9XG4gICAgICAgICAgYWRkZWQucHVzaChlbClcbiAgICAgICAgfSxcbiAgICAgICAgb25Ob2RlRGlzY2FyZGVkOiAoZWwpID0+IHtcbiAgICAgICAgICAvLyBuZXN0ZWQgdmlldyBoYW5kbGluZ1xuICAgICAgICAgIGlmKERPTS5pc1BoeENoaWxkKGVsKSB8fCBET00uaXNQaHhTdGlja3koZWwpKXsgbGl2ZVNvY2tldC5kZXN0cm95Vmlld0J5RWwoZWwpIH1cbiAgICAgICAgICB0aGlzLnRyYWNrQWZ0ZXIoXCJkaXNjYXJkZWRcIiwgZWwpXG4gICAgICAgIH0sXG4gICAgICAgIG9uQmVmb3JlTm9kZURpc2NhcmRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgaWYoZWwuZ2V0QXR0cmlidXRlICYmIGVsLmdldEF0dHJpYnV0ZShQSFhfUFJVTkUpICE9PSBudWxsKXsgcmV0dXJuIHRydWUgfVxuICAgICAgICAgIGlmKGVsLnBhcmVudE5vZGUgIT09IG51bGwgJiYgRE9NLmlzUGh4VXBkYXRlKGVsLnBhcmVudE5vZGUsIHBoeFVwZGF0ZSwgW1wiYXBwZW5kXCIsIFwicHJlcGVuZFwiXSkgJiYgZWwuaWQpeyByZXR1cm4gZmFsc2UgfVxuICAgICAgICAgIGlmKGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUocGh4UmVtb3ZlKSl7XG4gICAgICAgICAgICBwZW5kaW5nUmVtb3Zlcy5wdXNoKGVsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKHRoaXMuc2tpcENJRFNpYmxpbmcoZWwpKXsgcmV0dXJuIGZhbHNlIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBvbkVsVXBkYXRlZDogKGVsKSA9PiB7XG4gICAgICAgICAgaWYoRE9NLmlzTm93VHJpZ2dlckZvcm1FeHRlcm5hbChlbCwgcGh4VHJpZ2dlckV4dGVybmFsKSl7XG4gICAgICAgICAgICBleHRlcm5hbEZvcm1UcmlnZ2VyZWQgPSBlbFxuICAgICAgICAgIH1cbiAgICAgICAgICB1cGRhdGVzLnB1c2goZWwpXG4gICAgICAgIH0sXG4gICAgICAgIG9uQmVmb3JlRWxVcGRhdGVkOiAoZnJvbUVsLCB0b0VsKSA9PiB7XG4gICAgICAgICAgRE9NLmNsZWFuQ2hpbGROb2Rlcyh0b0VsLCBwaHhVcGRhdGUpXG4gICAgICAgICAgaWYodGhpcy5za2lwQ0lEU2libGluZyh0b0VsKSl7IHJldHVybiBmYWxzZSB9XG4gICAgICAgICAgaWYoRE9NLmlzUGh4U3RpY2t5KGZyb21FbCkpeyByZXR1cm4gZmFsc2UgfVxuICAgICAgICAgIGlmKERPTS5pc0lnbm9yZWQoZnJvbUVsLCBwaHhVcGRhdGUpKXtcbiAgICAgICAgICAgIHRoaXMudHJhY2tCZWZvcmUoXCJ1cGRhdGVkXCIsIGZyb21FbCwgdG9FbClcbiAgICAgICAgICAgIERPTS5tZXJnZUF0dHJzKGZyb21FbCwgdG9FbCwge2lzSWdub3JlZDogdHJ1ZX0pXG4gICAgICAgICAgICB1cGRhdGVzLnB1c2goZnJvbUVsKVxuICAgICAgICAgICAgRE9NLmFwcGx5U3RpY2t5T3BlcmF0aW9ucyhmcm9tRWwpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYoZnJvbUVsLnR5cGUgPT09IFwibnVtYmVyXCIgJiYgKGZyb21FbC52YWxpZGl0eSAmJiBmcm9tRWwudmFsaWRpdHkuYmFkSW5wdXQpKXsgcmV0dXJuIGZhbHNlIH1cbiAgICAgICAgICBpZighRE9NLnN5bmNQZW5kaW5nUmVmKGZyb21FbCwgdG9FbCwgZGlzYWJsZVdpdGgpKXtcbiAgICAgICAgICAgIGlmKERPTS5pc1VwbG9hZElucHV0KGZyb21FbCkpe1xuICAgICAgICAgICAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBmcm9tRWwsIHRvRWwpXG4gICAgICAgICAgICAgIHVwZGF0ZXMucHVzaChmcm9tRWwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBET00uYXBwbHlTdGlja3lPcGVyYXRpb25zKGZyb21FbClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG5lc3RlZCB2aWV3IGhhbmRsaW5nXG4gICAgICAgICAgaWYoRE9NLmlzUGh4Q2hpbGQodG9FbCkpe1xuICAgICAgICAgICAgbGV0IHByZXZTZXNzaW9uID0gZnJvbUVsLmdldEF0dHJpYnV0ZShQSFhfU0VTU0lPTilcbiAgICAgICAgICAgIERPTS5tZXJnZUF0dHJzKGZyb21FbCwgdG9FbCwge2V4Y2x1ZGU6IFtQSFhfU1RBVElDXX0pXG4gICAgICAgICAgICBpZihwcmV2U2Vzc2lvbiAhPT0gXCJcIil7IGZyb21FbC5zZXRBdHRyaWJ1dGUoUEhYX1NFU1NJT04sIHByZXZTZXNzaW9uKSB9XG4gICAgICAgICAgICBmcm9tRWwuc2V0QXR0cmlidXRlKFBIWF9ST09UX0lELCB0aGlzLnJvb3RJRClcbiAgICAgICAgICAgIERPTS5hcHBseVN0aWNreU9wZXJhdGlvbnMoZnJvbUVsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaW5wdXQgaGFuZGxpbmdcbiAgICAgICAgICBET00uY29weVByaXZhdGVzKHRvRWwsIGZyb21FbClcbiAgICAgICAgICBET00uZGlzY2FyZEVycm9yKHRhcmdldENvbnRhaW5lciwgdG9FbCwgcGh4RmVlZGJhY2tGb3IpXG5cbiAgICAgICAgICBsZXQgaXNGb2N1c2VkRm9ybUVsID0gZm9jdXNlZCAmJiBmcm9tRWwuaXNTYW1lTm9kZShmb2N1c2VkKSAmJiBET00uaXNGb3JtSW5wdXQoZnJvbUVsKVxuICAgICAgICAgIGlmKGlzRm9jdXNlZEZvcm1FbCl7XG4gICAgICAgICAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBmcm9tRWwsIHRvRWwpXG4gICAgICAgICAgICBET00ubWVyZ2VGb2N1c2VkSW5wdXQoZnJvbUVsLCB0b0VsKVxuICAgICAgICAgICAgRE9NLnN5bmNBdHRyc1RvUHJvcHMoZnJvbUVsKVxuICAgICAgICAgICAgdXBkYXRlcy5wdXNoKGZyb21FbClcbiAgICAgICAgICAgIERPTS5hcHBseVN0aWNreU9wZXJhdGlvbnMoZnJvbUVsKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmKERPTS5pc1BoeFVwZGF0ZSh0b0VsLCBwaHhVcGRhdGUsIFtcImFwcGVuZFwiLCBcInByZXBlbmRcIl0pKXtcbiAgICAgICAgICAgICAgYXBwZW5kUHJlcGVuZFVwZGF0ZXMucHVzaChuZXcgRE9NUG9zdE1vcnBoUmVzdG9yZXIoZnJvbUVsLCB0b0VsLCB0b0VsLmdldEF0dHJpYnV0ZShwaHhVcGRhdGUpKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIERPTS5zeW5jQXR0cnNUb1Byb3BzKHRvRWwpXG4gICAgICAgICAgICBET00uYXBwbHlTdGlja3lPcGVyYXRpb25zKHRvRWwpXG4gICAgICAgICAgICB0aGlzLnRyYWNrQmVmb3JlKFwidXBkYXRlZFwiLCBmcm9tRWwsIHRvRWwpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaWYobGl2ZVNvY2tldC5pc0RlYnVnRW5hYmxlZCgpKXsgZGV0ZWN0RHVwbGljYXRlSWRzKCkgfVxuXG4gICAgaWYoYXBwZW5kUHJlcGVuZFVwZGF0ZXMubGVuZ3RoID4gMCl7XG4gICAgICBsaXZlU29ja2V0LnRpbWUoXCJwb3N0LW1vcnBoIGFwcGVuZC9wcmVwZW5kIHJlc3RvcmF0aW9uXCIsICgpID0+IHtcbiAgICAgICAgYXBwZW5kUHJlcGVuZFVwZGF0ZXMuZm9yRWFjaCh1cGRhdGUgPT4gdXBkYXRlLnBlcmZvcm0oKSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgbGl2ZVNvY2tldC5zaWxlbmNlRXZlbnRzKCgpID0+IERPTS5yZXN0b3JlRm9jdXMoZm9jdXNlZCwgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCkpXG4gICAgRE9NLmRpc3BhdGNoRXZlbnQoZG9jdW1lbnQsIFwicGh4OnVwZGF0ZVwiKVxuICAgIGFkZGVkLmZvckVhY2goZWwgPT4gdGhpcy50cmFja0FmdGVyKFwiYWRkZWRcIiwgZWwpKVxuICAgIHVwZGF0ZXMuZm9yRWFjaChlbCA9PiB0aGlzLnRyYWNrQWZ0ZXIoXCJ1cGRhdGVkXCIsIGVsKSlcblxuICAgIGlmKHBlbmRpbmdSZW1vdmVzLmxlbmd0aCA+IDApe1xuICAgICAgbGl2ZVNvY2tldC50cmFuc2l0aW9uUmVtb3ZlcyhwZW5kaW5nUmVtb3ZlcylcbiAgICAgIGxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIHBlbmRpbmdSZW1vdmVzLmZvckVhY2goZWwgPT4ge1xuICAgICAgICAgIGxldCBjaGlsZCA9IERPTS5maXJzdFBoeENoaWxkKGVsKVxuICAgICAgICAgIGlmKGNoaWxkKXsgbGl2ZVNvY2tldC5kZXN0cm95Vmlld0J5RWwoY2hpbGQpIH1cbiAgICAgICAgICBlbC5yZW1vdmUoKVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnRyYWNrQWZ0ZXIoXCJ0cmFuc2l0aW9uc0Rpc2NhcmRlZFwiLCBwZW5kaW5nUmVtb3ZlcylcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYoZXh0ZXJuYWxGb3JtVHJpZ2dlcmVkKXtcbiAgICAgIGxpdmVTb2NrZXQuZGlzY29ubmVjdCgpXG4gICAgICBleHRlcm5hbEZvcm1UcmlnZ2VyZWQuc3VibWl0KClcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlzQ0lEUGF0Y2goKXsgcmV0dXJuIHRoaXMuY2lkUGF0Y2ggfVxuXG4gIHNraXBDSURTaWJsaW5nKGVsKXtcbiAgICByZXR1cm4gZWwubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIGVsLmdldEF0dHJpYnV0ZShQSFhfU0tJUCkgIT09IG51bGxcbiAgfVxuXG4gIHRhcmdldENJRENvbnRhaW5lcihodG1sKXtcbiAgICBpZighdGhpcy5pc0NJRFBhdGNoKCkpeyByZXR1cm4gfVxuICAgIGxldCBbZmlyc3QsIC4uLnJlc3RdID0gRE9NLmZpbmRDb21wb25lbnROb2RlTGlzdCh0aGlzLmNvbnRhaW5lciwgdGhpcy50YXJnZXRDSUQpXG4gICAgaWYocmVzdC5sZW5ndGggPT09IDAgJiYgRE9NLmNoaWxkTm9kZUxlbmd0aChodG1sKSA9PT0gMSl7XG4gICAgICByZXR1cm4gZmlyc3RcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpcnN0ICYmIGZpcnN0LnBhcmVudE5vZGVcbiAgICB9XG4gIH1cblxuICAvLyBidWlsZHMgSFRNTCBmb3IgbW9ycGhkb20gcGF0Y2hcbiAgLy8gLSBmb3IgZnVsbCBwYXRjaGVzIG9mIExpdmVWaWV3IG9yIGEgY29tcG9uZW50IHdpdGggYSBzaW5nbGVcbiAgLy8gICByb290IG5vZGUsIHNpbXBseSByZXR1cm5zIHRoZSBIVE1MXG4gIC8vIC0gZm9yIHBhdGNoZXMgb2YgYSBjb21wb25lbnQgd2l0aCBtdWx0aXBsZSByb290IG5vZGVzLCB0aGVcbiAgLy8gICBwYXJlbnQgbm9kZSBiZWNvbWVzIHRoZSB0YXJnZXQgY29udGFpbmVyIGFuZCBub24tY29tcG9uZW50XG4gIC8vICAgc2libGluZ3MgYXJlIG1hcmtlZCBhcyBza2lwLlxuICBidWlsZERpZmZIVE1MKGNvbnRhaW5lciwgaHRtbCwgcGh4VXBkYXRlLCB0YXJnZXRDb250YWluZXIpe1xuICAgIGxldCBpc0NJRFBhdGNoID0gdGhpcy5pc0NJRFBhdGNoKClcbiAgICBsZXQgaXNDSURXaXRoU2luZ2xlUm9vdCA9IGlzQ0lEUGF0Y2ggJiYgdGFyZ2V0Q29udGFpbmVyLmdldEF0dHJpYnV0ZShQSFhfQ09NUE9ORU5UKSA9PT0gdGhpcy50YXJnZXRDSUQudG9TdHJpbmcoKVxuICAgIGlmKCFpc0NJRFBhdGNoIHx8IGlzQ0lEV2l0aFNpbmdsZVJvb3Qpe1xuICAgICAgcmV0dXJuIGh0bWxcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY29tcG9uZW50IHBhdGNoIHdpdGggbXVsdGlwbGUgQ0lEIHJvb3RzXG4gICAgICBsZXQgZGlmZkNvbnRhaW5lciA9IG51bGxcbiAgICAgIGxldCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKVxuICAgICAgZGlmZkNvbnRhaW5lciA9IERPTS5jbG9uZU5vZGUodGFyZ2V0Q29udGFpbmVyKVxuICAgICAgbGV0IFtmaXJzdENvbXBvbmVudCwgLi4ucmVzdF0gPSBET00uZmluZENvbXBvbmVudE5vZGVMaXN0KGRpZmZDb250YWluZXIsIHRoaXMudGFyZ2V0Q0lEKVxuICAgICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gaHRtbFxuICAgICAgcmVzdC5mb3JFYWNoKGVsID0+IGVsLnJlbW92ZSgpKVxuICAgICAgQXJyYXkuZnJvbShkaWZmQ29udGFpbmVyLmNoaWxkTm9kZXMpLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICAvLyB3ZSBjYW4gb25seSBza2lwIHRyYWNrYWJsZSBub2RlcyB3aXRoIGFuIElEXG4gICAgICAgIGlmKGNoaWxkLmlkICYmIGNoaWxkLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiBjaGlsZC5nZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVCkgIT09IHRoaXMudGFyZ2V0Q0lELnRvU3RyaW5nKCkpe1xuICAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZShQSFhfU0tJUCwgXCJcIilcbiAgICAgICAgICBjaGlsZC5pbm5lckhUTUwgPSBcIlwiXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBBcnJheS5mcm9tKHRlbXBsYXRlLmNvbnRlbnQuY2hpbGROb2RlcykuZm9yRWFjaChlbCA9PiBkaWZmQ29udGFpbmVyLmluc2VydEJlZm9yZShlbCwgZmlyc3RDb21wb25lbnQpKVxuICAgICAgZmlyc3RDb21wb25lbnQucmVtb3ZlKClcbiAgICAgIHJldHVybiBkaWZmQ29udGFpbmVyLm91dGVySFRNTFxuICAgIH1cbiAgfVxufVxuIiwgImltcG9ydCB7XG4gIENPTVBPTkVOVFMsXG4gIERZTkFNSUNTLFxuICBURU1QTEFURVMsXG4gIEVWRU5UUyxcbiAgUEhYX0NPTVBPTkVOVCxcbiAgUEhYX1NLSVAsXG4gIFJFUExZLFxuICBTVEFUSUMsXG4gIFRJVExFXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCB7XG4gIGlzT2JqZWN0LFxuICBsb2dFcnJvcixcbiAgaXNDaWQsXG59IGZyb20gXCIuL3V0aWxzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVuZGVyZWQge1xuICBzdGF0aWMgZXh0cmFjdChkaWZmKXtcbiAgICBsZXQge1tSRVBMWV06IHJlcGx5LCBbRVZFTlRTXTogZXZlbnRzLCBbVElUTEVdOiB0aXRsZX0gPSBkaWZmXG4gICAgZGVsZXRlIGRpZmZbUkVQTFldXG4gICAgZGVsZXRlIGRpZmZbRVZFTlRTXVxuICAgIGRlbGV0ZSBkaWZmW1RJVExFXVxuICAgIHJldHVybiB7ZGlmZiwgdGl0bGUsIHJlcGx5OiByZXBseSB8fCBudWxsLCBldmVudHM6IGV2ZW50cyB8fCBbXX1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHZpZXdJZCwgcmVuZGVyZWQpe1xuICAgIHRoaXMudmlld0lkID0gdmlld0lkXG4gICAgdGhpcy5yZW5kZXJlZCA9IHt9XG4gICAgdGhpcy5tZXJnZURpZmYocmVuZGVyZWQpXG4gIH1cblxuICBwYXJlbnRWaWV3SWQoKXsgcmV0dXJuIHRoaXMudmlld0lkIH1cblxuICB0b1N0cmluZyhvbmx5Q2lkcyl7XG4gICAgcmV0dXJuIHRoaXMucmVjdXJzaXZlVG9TdHJpbmcodGhpcy5yZW5kZXJlZCwgdGhpcy5yZW5kZXJlZFtDT01QT05FTlRTXSwgb25seUNpZHMpXG4gIH1cblxuICByZWN1cnNpdmVUb1N0cmluZyhyZW5kZXJlZCwgY29tcG9uZW50cyA9IHJlbmRlcmVkW0NPTVBPTkVOVFNdLCBvbmx5Q2lkcyl7XG4gICAgb25seUNpZHMgPSBvbmx5Q2lkcyA/IG5ldyBTZXQob25seUNpZHMpIDogbnVsbFxuICAgIGxldCBvdXRwdXQgPSB7YnVmZmVyOiBcIlwiLCBjb21wb25lbnRzOiBjb21wb25lbnRzLCBvbmx5Q2lkczogb25seUNpZHN9XG4gICAgdGhpcy50b091dHB1dEJ1ZmZlcihyZW5kZXJlZCwgbnVsbCwgb3V0cHV0KVxuICAgIHJldHVybiBvdXRwdXQuYnVmZmVyXG4gIH1cblxuICBjb21wb25lbnRDSURzKGRpZmYpeyByZXR1cm4gT2JqZWN0LmtleXMoZGlmZltDT01QT05FTlRTXSB8fCB7fSkubWFwKGkgPT4gcGFyc2VJbnQoaSkpIH1cblxuICBpc0NvbXBvbmVudE9ubHlEaWZmKGRpZmYpe1xuICAgIGlmKCFkaWZmW0NPTVBPTkVOVFNdKXsgcmV0dXJuIGZhbHNlIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGlmZikubGVuZ3RoID09PSAxXG4gIH1cblxuICBnZXRDb21wb25lbnQoZGlmZiwgY2lkKXsgcmV0dXJuIGRpZmZbQ09NUE9ORU5UU11bY2lkXSB9XG5cbiAgbWVyZ2VEaWZmKGRpZmYpe1xuICAgIGxldCBuZXdjID0gZGlmZltDT01QT05FTlRTXVxuICAgIGxldCBjYWNoZSA9IHt9XG4gICAgZGVsZXRlIGRpZmZbQ09NUE9ORU5UU11cbiAgICB0aGlzLnJlbmRlcmVkID0gdGhpcy5tdXRhYmxlTWVyZ2UodGhpcy5yZW5kZXJlZCwgZGlmZilcbiAgICB0aGlzLnJlbmRlcmVkW0NPTVBPTkVOVFNdID0gdGhpcy5yZW5kZXJlZFtDT01QT05FTlRTXSB8fCB7fVxuXG4gICAgaWYobmV3Yyl7XG4gICAgICBsZXQgb2xkYyA9IHRoaXMucmVuZGVyZWRbQ09NUE9ORU5UU11cblxuICAgICAgZm9yKGxldCBjaWQgaW4gbmV3Yyl7XG4gICAgICAgIG5ld2NbY2lkXSA9IHRoaXMuY2FjaGVkRmluZENvbXBvbmVudChjaWQsIG5ld2NbY2lkXSwgb2xkYywgbmV3YywgY2FjaGUpXG4gICAgICB9XG5cbiAgICAgIGZvcihsZXQgY2lkIGluIG5ld2MpeyBvbGRjW2NpZF0gPSBuZXdjW2NpZF0gfVxuICAgICAgZGlmZltDT01QT05FTlRTXSA9IG5ld2NcbiAgICB9XG4gIH1cblxuICBjYWNoZWRGaW5kQ29tcG9uZW50KGNpZCwgY2RpZmYsIG9sZGMsIG5ld2MsIGNhY2hlKXtcbiAgICBpZihjYWNoZVtjaWRdKXtcbiAgICAgIHJldHVybiBjYWNoZVtjaWRdXG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBuZGlmZiwgc3RhdCwgc2NpZCA9IGNkaWZmW1NUQVRJQ11cblxuICAgICAgaWYoaXNDaWQoc2NpZCkpe1xuICAgICAgICBsZXQgdGRpZmZcblxuICAgICAgICBpZihzY2lkID4gMCl7XG4gICAgICAgICAgdGRpZmYgPSB0aGlzLmNhY2hlZEZpbmRDb21wb25lbnQoc2NpZCwgbmV3Y1tzY2lkXSwgb2xkYywgbmV3YywgY2FjaGUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGRpZmYgPSBvbGRjWy1zY2lkXVxuICAgICAgICB9XG5cbiAgICAgICAgc3RhdCA9IHRkaWZmW1NUQVRJQ11cbiAgICAgICAgbmRpZmYgPSB0aGlzLmNsb25lTWVyZ2UodGRpZmYsIGNkaWZmKVxuICAgICAgICBuZGlmZltTVEFUSUNdID0gc3RhdFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmRpZmYgPSBjZGlmZltTVEFUSUNdICE9PSB1bmRlZmluZWQgPyBjZGlmZiA6IHRoaXMuY2xvbmVNZXJnZShvbGRjW2NpZF0gfHwge30sIGNkaWZmKVxuICAgICAgfVxuXG4gICAgICBjYWNoZVtjaWRdID0gbmRpZmZcbiAgICAgIHJldHVybiBuZGlmZlxuICAgIH1cbiAgfVxuXG4gIG11dGFibGVNZXJnZSh0YXJnZXQsIHNvdXJjZSl7XG4gICAgaWYoc291cmNlW1NUQVRJQ10gIT09IHVuZGVmaW5lZCl7XG4gICAgICByZXR1cm4gc291cmNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9NdXRhYmxlTWVyZ2UodGFyZ2V0LCBzb3VyY2UpXG4gICAgICByZXR1cm4gdGFyZ2V0XG4gICAgfVxuICB9XG5cbiAgZG9NdXRhYmxlTWVyZ2UodGFyZ2V0LCBzb3VyY2Upe1xuICAgIGZvcihsZXQga2V5IGluIHNvdXJjZSl7XG4gICAgICBsZXQgdmFsID0gc291cmNlW2tleV1cbiAgICAgIGxldCB0YXJnZXRWYWwgPSB0YXJnZXRba2V5XVxuICAgICAgaWYoaXNPYmplY3QodmFsKSAmJiB2YWxbU1RBVElDXSA9PT0gdW5kZWZpbmVkICYmIGlzT2JqZWN0KHRhcmdldFZhbCkpe1xuICAgICAgICB0aGlzLmRvTXV0YWJsZU1lcmdlKHRhcmdldFZhbCwgdmFsKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbG9uZU1lcmdlKHRhcmdldCwgc291cmNlKXtcbiAgICBsZXQgbWVyZ2VkID0gey4uLnRhcmdldCwgLi4uc291cmNlfVxuICAgIGZvcihsZXQga2V5IGluIG1lcmdlZCl7XG4gICAgICBsZXQgdmFsID0gc291cmNlW2tleV1cbiAgICAgIGxldCB0YXJnZXRWYWwgPSB0YXJnZXRba2V5XVxuICAgICAgaWYoaXNPYmplY3QodmFsKSAmJiB2YWxbU1RBVElDXSA9PT0gdW5kZWZpbmVkICYmIGlzT2JqZWN0KHRhcmdldFZhbCkpe1xuICAgICAgICBtZXJnZWRba2V5XSA9IHRoaXMuY2xvbmVNZXJnZSh0YXJnZXRWYWwsIHZhbClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlZFxuICB9XG5cbiAgY29tcG9uZW50VG9TdHJpbmcoY2lkKXsgcmV0dXJuIHRoaXMucmVjdXJzaXZlQ0lEVG9TdHJpbmcodGhpcy5yZW5kZXJlZFtDT01QT05FTlRTXSwgY2lkKSB9XG5cbiAgcHJ1bmVDSURzKGNpZHMpe1xuICAgIGNpZHMuZm9yRWFjaChjaWQgPT4gZGVsZXRlIHRoaXMucmVuZGVyZWRbQ09NUE9ORU5UU11bY2lkXSlcbiAgfVxuXG4gIC8vIHByaXZhdGVcblxuICBnZXQoKXsgcmV0dXJuIHRoaXMucmVuZGVyZWQgfVxuXG4gIGlzTmV3RmluZ2VycHJpbnQoZGlmZiA9IHt9KXsgcmV0dXJuICEhZGlmZltTVEFUSUNdIH1cblxuICB0ZW1wbGF0ZVN0YXRpYyhwYXJ0LCB0ZW1wbGF0ZXMpe1xuICAgIGlmKHR5cGVvZiAocGFydCkgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgIHJldHVybiB0ZW1wbGF0ZXNbcGFydF1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHBhcnRcbiAgICB9XG4gIH1cblxuICB0b091dHB1dEJ1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpe1xuICAgIGlmKHJlbmRlcmVkW0RZTkFNSUNTXSl7IHJldHVybiB0aGlzLmNvbXByZWhlbnNpb25Ub0J1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpIH1cbiAgICBsZXQge1tTVEFUSUNdOiBzdGF0aWNzfSA9IHJlbmRlcmVkXG4gICAgc3RhdGljcyA9IHRoaXMudGVtcGxhdGVTdGF0aWMoc3RhdGljcywgdGVtcGxhdGVzKVxuXG4gICAgb3V0cHV0LmJ1ZmZlciArPSBzdGF0aWNzWzBdXG4gICAgZm9yKGxldCBpID0gMTsgaSA8IHN0YXRpY3MubGVuZ3RoOyBpKyspe1xuICAgICAgdGhpcy5keW5hbWljVG9CdWZmZXIocmVuZGVyZWRbaSAtIDFdLCB0ZW1wbGF0ZXMsIG91dHB1dClcbiAgICAgIG91dHB1dC5idWZmZXIgKz0gc3RhdGljc1tpXVxuICAgIH1cbiAgfVxuXG4gIGNvbXByZWhlbnNpb25Ub0J1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpe1xuICAgIGxldCB7W0RZTkFNSUNTXTogZHluYW1pY3MsIFtTVEFUSUNdOiBzdGF0aWNzfSA9IHJlbmRlcmVkXG4gICAgc3RhdGljcyA9IHRoaXMudGVtcGxhdGVTdGF0aWMoc3RhdGljcywgdGVtcGxhdGVzKVxuICAgIGxldCBjb21wVGVtcGxhdGVzID0gdGVtcGxhdGVzIHx8IHJlbmRlcmVkW1RFTVBMQVRFU11cblxuICAgIGZvcihsZXQgZCA9IDA7IGQgPCBkeW5hbWljcy5sZW5ndGg7IGQrKyl7XG4gICAgICBsZXQgZHluYW1pYyA9IGR5bmFtaWNzW2RdXG4gICAgICBvdXRwdXQuYnVmZmVyICs9IHN0YXRpY3NbMF1cbiAgICAgIGZvcihsZXQgaSA9IDE7IGkgPCBzdGF0aWNzLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5keW5hbWljVG9CdWZmZXIoZHluYW1pY1tpIC0gMV0sIGNvbXBUZW1wbGF0ZXMsIG91dHB1dClcbiAgICAgICAgb3V0cHV0LmJ1ZmZlciArPSBzdGF0aWNzW2ldXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZHluYW1pY1RvQnVmZmVyKHJlbmRlcmVkLCB0ZW1wbGF0ZXMsIG91dHB1dCl7XG4gICAgaWYodHlwZW9mIChyZW5kZXJlZCkgPT09IFwibnVtYmVyXCIpe1xuICAgICAgb3V0cHV0LmJ1ZmZlciArPSB0aGlzLnJlY3Vyc2l2ZUNJRFRvU3RyaW5nKG91dHB1dC5jb21wb25lbnRzLCByZW5kZXJlZCwgb3V0cHV0Lm9ubHlDaWRzKVxuICAgIH0gZWxzZSBpZihpc09iamVjdChyZW5kZXJlZCkpe1xuICAgICAgdGhpcy50b091dHB1dEJ1ZmZlcihyZW5kZXJlZCwgdGVtcGxhdGVzLCBvdXRwdXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5idWZmZXIgKz0gcmVuZGVyZWRcbiAgICB9XG4gIH1cblxuICByZWN1cnNpdmVDSURUb1N0cmluZyhjb21wb25lbnRzLCBjaWQsIG9ubHlDaWRzKXtcbiAgICBsZXQgY29tcG9uZW50ID0gY29tcG9uZW50c1tjaWRdIHx8IGxvZ0Vycm9yKGBubyBjb21wb25lbnQgZm9yIENJRCAke2NpZH1gLCBjb21wb25lbnRzKVxuICAgIGxldCB0ZW1wbGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZW1wbGF0ZVwiKVxuICAgIHRlbXBsYXRlLmlubmVySFRNTCA9IHRoaXMucmVjdXJzaXZlVG9TdHJpbmcoY29tcG9uZW50LCBjb21wb25lbnRzLCBvbmx5Q2lkcylcbiAgICBsZXQgY29udGFpbmVyID0gdGVtcGxhdGUuY29udGVudFxuICAgIGxldCBza2lwID0gb25seUNpZHMgJiYgIW9ubHlDaWRzLmhhcyhjaWQpXG5cbiAgICBsZXQgW2hhc0NoaWxkTm9kZXMsIGhhc0NoaWxkQ29tcG9uZW50c10gPVxuICAgICAgQXJyYXkuZnJvbShjb250YWluZXIuY2hpbGROb2RlcykucmVkdWNlKChbaGFzTm9kZXMsIGhhc0NvbXBvbmVudHNdLCBjaGlsZCwgaSkgPT4ge1xuICAgICAgICBpZihjaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUpe1xuICAgICAgICAgIGlmKGNoaWxkLmdldEF0dHJpYnV0ZShQSFhfQ09NUE9ORU5UKSl7XG4gICAgICAgICAgICByZXR1cm4gW2hhc05vZGVzLCB0cnVlXVxuICAgICAgICAgIH1cbiAgICAgICAgICBjaGlsZC5zZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVCwgY2lkKVxuICAgICAgICAgIGlmKCFjaGlsZC5pZCl7IGNoaWxkLmlkID0gYCR7dGhpcy5wYXJlbnRWaWV3SWQoKX0tJHtjaWR9LSR7aX1gIH1cbiAgICAgICAgICBpZihza2lwKXtcbiAgICAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZShQSFhfU0tJUCwgXCJcIilcbiAgICAgICAgICAgIGNoaWxkLmlubmVySFRNTCA9IFwiXCJcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFt0cnVlLCBoYXNDb21wb25lbnRzXVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKGNoaWxkLm5vZGVWYWx1ZS50cmltKCkgIT09IFwiXCIpe1xuICAgICAgICAgICAgbG9nRXJyb3IoXCJvbmx5IEhUTUwgZWxlbWVudCB0YWdzIGFyZSBhbGxvd2VkIGF0IHRoZSByb290IG9mIGNvbXBvbmVudHMuXFxuXFxuXCIgK1xuICAgICAgICAgICAgICBgZ290OiBcIiR7Y2hpbGQubm9kZVZhbHVlLnRyaW0oKX1cIlxcblxcbmAgK1xuICAgICAgICAgICAgICBcIndpdGhpbjpcXG5cIiwgdGVtcGxhdGUuaW5uZXJIVE1MLnRyaW0oKSlcbiAgICAgICAgICAgIGNoaWxkLnJlcGxhY2VXaXRoKHRoaXMuY3JlYXRlU3BhbihjaGlsZC5ub2RlVmFsdWUsIGNpZCkpXG4gICAgICAgICAgICByZXR1cm4gW3RydWUsIGhhc0NvbXBvbmVudHNdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpXG4gICAgICAgICAgICByZXR1cm4gW2hhc05vZGVzLCBoYXNDb21wb25lbnRzXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSwgW2ZhbHNlLCBmYWxzZV0pXG5cbiAgICBpZighaGFzQ2hpbGROb2RlcyAmJiAhaGFzQ2hpbGRDb21wb25lbnRzKXtcbiAgICAgIGxvZ0Vycm9yKFwiZXhwZWN0ZWQgYXQgbGVhc3Qgb25lIEhUTUwgZWxlbWVudCB0YWcgaW5zaWRlIGEgY29tcG9uZW50LCBidXQgdGhlIGNvbXBvbmVudCBpcyBlbXB0eTpcXG5cIixcbiAgICAgICAgdGVtcGxhdGUuaW5uZXJIVE1MLnRyaW0oKSlcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNwYW4oXCJcIiwgY2lkKS5vdXRlckhUTUxcbiAgICB9IGVsc2UgaWYoIWhhc0NoaWxkTm9kZXMgJiYgaGFzQ2hpbGRDb21wb25lbnRzKXtcbiAgICAgIGxvZ0Vycm9yKFwiZXhwZWN0ZWQgYXQgbGVhc3Qgb25lIEhUTUwgZWxlbWVudCB0YWcgZGlyZWN0bHkgaW5zaWRlIGEgY29tcG9uZW50LCBidXQgb25seSBzdWJjb21wb25lbnRzIHdlcmUgZm91bmQuIEEgY29tcG9uZW50IG11c3QgcmVuZGVyIGF0IGxlYXN0IG9uZSBIVE1MIHRhZyBkaXJlY3RseSBpbnNpZGUgaXRzZWxmLlwiLFxuICAgICAgICB0ZW1wbGF0ZS5pbm5lckhUTUwudHJpbSgpKVxuICAgICAgcmV0dXJuIHRlbXBsYXRlLmlubmVySFRNTFxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGVtcGxhdGUuaW5uZXJIVE1MXG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU3Bhbih0ZXh0LCBjaWQpe1xuICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIilcbiAgICBzcGFuLmlubmVyVGV4dCA9IHRleHRcbiAgICBzcGFuLnNldEF0dHJpYnV0ZShQSFhfQ09NUE9ORU5ULCBjaWQpXG4gICAgcmV0dXJuIHNwYW5cbiAgfVxufVxuIiwgImxldCB2aWV3SG9va0lEID0gMVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlld0hvb2sge1xuICBzdGF0aWMgbWFrZUlEKCl7IHJldHVybiB2aWV3SG9va0lEKysgfVxuICBzdGF0aWMgZWxlbWVudElEKGVsKXsgcmV0dXJuIGVsLnBoeEhvb2tJZCB9XG5cbiAgY29uc3RydWN0b3IodmlldywgZWwsIGNhbGxiYWNrcyl7XG4gICAgdGhpcy5fX3ZpZXcgPSB2aWV3XG4gICAgdGhpcy5saXZlU29ja2V0ID0gdmlldy5saXZlU29ja2V0XG4gICAgdGhpcy5fX2NhbGxiYWNrcyA9IGNhbGxiYWNrc1xuICAgIHRoaXMuX19saXN0ZW5lcnMgPSBuZXcgU2V0KClcbiAgICB0aGlzLl9faXNEaXNjb25uZWN0ZWQgPSBmYWxzZVxuICAgIHRoaXMuZWwgPSBlbFxuICAgIHRoaXMuZWwucGh4SG9va0lkID0gdGhpcy5jb25zdHJ1Y3Rvci5tYWtlSUQoKVxuICAgIGZvcihsZXQga2V5IGluIHRoaXMuX19jYWxsYmFja3MpeyB0aGlzW2tleV0gPSB0aGlzLl9fY2FsbGJhY2tzW2tleV0gfVxuICB9XG5cbiAgX19tb3VudGVkKCl7IHRoaXMubW91bnRlZCAmJiB0aGlzLm1vdW50ZWQoKSB9XG4gIF9fdXBkYXRlZCgpeyB0aGlzLnVwZGF0ZWQgJiYgdGhpcy51cGRhdGVkKCkgfVxuICBfX2JlZm9yZVVwZGF0ZSgpeyB0aGlzLmJlZm9yZVVwZGF0ZSAmJiB0aGlzLmJlZm9yZVVwZGF0ZSgpIH1cbiAgX19kZXN0cm95ZWQoKXsgdGhpcy5kZXN0cm95ZWQgJiYgdGhpcy5kZXN0cm95ZWQoKSB9XG4gIF9fcmVjb25uZWN0ZWQoKXtcbiAgICBpZih0aGlzLl9faXNEaXNjb25uZWN0ZWQpe1xuICAgICAgdGhpcy5fX2lzRGlzY29ubmVjdGVkID0gZmFsc2VcbiAgICAgIHRoaXMucmVjb25uZWN0ZWQgJiYgdGhpcy5yZWNvbm5lY3RlZCgpXG4gICAgfVxuICB9XG4gIF9fZGlzY29ubmVjdGVkKCl7XG4gICAgdGhpcy5fX2lzRGlzY29ubmVjdGVkID0gdHJ1ZVxuICAgIHRoaXMuZGlzY29ubmVjdGVkICYmIHRoaXMuZGlzY29ubmVjdGVkKClcbiAgfVxuXG4gIHB1c2hFdmVudChldmVudCwgcGF5bG9hZCA9IHt9LCBvblJlcGx5ID0gZnVuY3Rpb24gKCl7IH0pe1xuICAgIHJldHVybiB0aGlzLl9fdmlldy5wdXNoSG9va0V2ZW50KG51bGwsIGV2ZW50LCBwYXlsb2FkLCBvblJlcGx5KVxuICB9XG5cbiAgcHVzaEV2ZW50VG8ocGh4VGFyZ2V0LCBldmVudCwgcGF5bG9hZCA9IHt9LCBvblJlcGx5ID0gZnVuY3Rpb24gKCl7IH0pe1xuICAgIHJldHVybiB0aGlzLl9fdmlldy53aXRoaW5UYXJnZXRzKHBoeFRhcmdldCwgKHZpZXcsIHRhcmdldEN0eCkgPT4ge1xuICAgICAgcmV0dXJuIHZpZXcucHVzaEhvb2tFdmVudCh0YXJnZXRDdHgsIGV2ZW50LCBwYXlsb2FkLCBvblJlcGx5KVxuICAgIH0pXG4gIH1cblxuICBoYW5kbGVFdmVudChldmVudCwgY2FsbGJhY2spe1xuICAgIGxldCBjYWxsYmFja1JlZiA9IChjdXN0b21FdmVudCwgYnlwYXNzKSA9PiBieXBhc3MgPyBldmVudCA6IGNhbGxiYWNrKGN1c3RvbUV2ZW50LmRldGFpbClcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihgcGh4OiR7ZXZlbnR9YCwgY2FsbGJhY2tSZWYpXG4gICAgdGhpcy5fX2xpc3RlbmVycy5hZGQoY2FsbGJhY2tSZWYpXG4gICAgcmV0dXJuIGNhbGxiYWNrUmVmXG4gIH1cblxuICByZW1vdmVIYW5kbGVFdmVudChjYWxsYmFja1JlZil7XG4gICAgbGV0IGV2ZW50ID0gY2FsbGJhY2tSZWYobnVsbCwgdHJ1ZSlcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihgcGh4OiR7ZXZlbnR9YCwgY2FsbGJhY2tSZWYpXG4gICAgdGhpcy5fX2xpc3RlbmVycy5kZWxldGUoY2FsbGJhY2tSZWYpXG4gIH1cblxuICB1cGxvYWQobmFtZSwgZmlsZXMpe1xuICAgIHJldHVybiB0aGlzLl9fdmlldy5kaXNwYXRjaFVwbG9hZHMobmFtZSwgZmlsZXMpXG4gIH1cblxuICB1cGxvYWRUbyhwaHhUYXJnZXQsIG5hbWUsIGZpbGVzKXtcbiAgICByZXR1cm4gdGhpcy5fX3ZpZXcud2l0aGluVGFyZ2V0cyhwaHhUYXJnZXQsIHZpZXcgPT4gdmlldy5kaXNwYXRjaFVwbG9hZHMobmFtZSwgZmlsZXMpKVxuICB9XG5cbiAgX19jbGVhbnVwX18oKXtcbiAgICB0aGlzLl9fbGlzdGVuZXJzLmZvckVhY2goY2FsbGJhY2tSZWYgPT4gdGhpcy5yZW1vdmVIYW5kbGVFdmVudChjYWxsYmFja1JlZikpXG4gIH1cbn1cbiIsICJpbXBvcnQgRE9NIGZyb20gXCIuL2RvbVwiXG5cbmxldCBKUyA9IHtcbiAgZXhlYyhldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZGVmYXVsdHMpe1xuICAgIGxldCBbZGVmYXVsdEtpbmQsIGRlZmF1bHRBcmdzXSA9IGRlZmF1bHRzIHx8IFtudWxsLCB7fV1cbiAgICBsZXQgY29tbWFuZHMgPSBwaHhFdmVudC5jaGFyQXQoMCkgPT09IFwiW1wiID9cbiAgICAgIEpTT04ucGFyc2UocGh4RXZlbnQpIDogW1tkZWZhdWx0S2luZCwgZGVmYXVsdEFyZ3NdXVxuXG4gICAgY29tbWFuZHMuZm9yRWFjaCgoW2tpbmQsIGFyZ3NdKSA9PiB7XG4gICAgICBpZihraW5kID09PSBkZWZhdWx0S2luZCAmJiBkZWZhdWx0QXJncy5kYXRhKXtcbiAgICAgICAgYXJncy5kYXRhID0gT2JqZWN0LmFzc2lnbihhcmdzLmRhdGEgfHwge30sIGRlZmF1bHRBcmdzLmRhdGEpXG4gICAgICB9XG4gICAgICB0aGlzLmZpbHRlclRvRWxzKHNvdXJjZUVsLCBhcmdzKS5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgdGhpc1tgZXhlY18ke2tpbmR9YF0oZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCBhcmdzKVxuICAgICAgfSlcbiAgICB9KVxuICB9LFxuXG4gIGlzVmlzaWJsZShlbCl7XG4gICAgcmV0dXJuICEhKGVsLm9mZnNldFdpZHRoIHx8IGVsLm9mZnNldEhlaWdodCB8fCBlbC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCA+IDApXG4gIH0sXG5cbiAgLy8gcHJpdmF0ZVxuXG4gIC8vIGNvbW1hbmRzXG5cbiAgZXhlY19kaXNwYXRjaChldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIHt0bywgZXZlbnQsIGRldGFpbCwgYnViYmxlc30pe1xuICAgIGRldGFpbCA9IGRldGFpbCB8fCB7fVxuICAgIGRldGFpbC5kaXNwYXRjaGVyID0gc291cmNlRWxcbiAgICBET00uZGlzcGF0Y2hFdmVudChlbCwgZXZlbnQsIHtkZXRhaWwsIGJ1YmJsZXN9KVxuICB9LFxuXG4gIGV4ZWNfcHVzaChldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIGFyZ3Mpe1xuICAgIGlmKCF2aWV3LmlzQ29ubmVjdGVkKCkpeyByZXR1cm4gfVxuXG4gICAgbGV0IHtldmVudCwgZGF0YSwgdGFyZ2V0LCBwYWdlX2xvYWRpbmcsIGxvYWRpbmcsIHZhbHVlLCBkaXNwYXRjaGVyfSA9IGFyZ3NcbiAgICBsZXQgcHVzaE9wdHMgPSB7bG9hZGluZywgdmFsdWUsIHRhcmdldCwgcGFnZV9sb2FkaW5nOiAhIXBhZ2VfbG9hZGluZ31cbiAgICBsZXQgdGFyZ2V0U3JjID0gZXZlbnRUeXBlID09PSBcImNoYW5nZVwiICYmIGRpc3BhdGNoZXIgPyBkaXNwYXRjaGVyIDogc291cmNlRWxcbiAgICBsZXQgcGh4VGFyZ2V0ID0gdGFyZ2V0IHx8IHRhcmdldFNyYy5nZXRBdHRyaWJ1dGUodmlldy5iaW5kaW5nKFwidGFyZ2V0XCIpKSB8fCB0YXJnZXRTcmNcbiAgICB2aWV3LndpdGhpblRhcmdldHMocGh4VGFyZ2V0LCAodGFyZ2V0VmlldywgdGFyZ2V0Q3R4KSA9PiB7XG4gICAgICBpZihldmVudFR5cGUgPT09IFwiY2hhbmdlXCIpe1xuICAgICAgICBsZXQge25ld0NpZCwgX3RhcmdldCwgY2FsbGJhY2t9ID0gYXJnc1xuICAgICAgICBfdGFyZ2V0ID0gX3RhcmdldCB8fCAoc291cmNlRWwgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ID8gc291cmNlRWwubmFtZSA6IHVuZGVmaW5lZClcbiAgICAgICAgaWYoX3RhcmdldCl7IHB1c2hPcHRzLl90YXJnZXQgPSBfdGFyZ2V0IH1cbiAgICAgICAgdGFyZ2V0Vmlldy5wdXNoSW5wdXQoc291cmNlRWwsIHRhcmdldEN0eCwgbmV3Q2lkLCBldmVudCB8fCBwaHhFdmVudCwgcHVzaE9wdHMsIGNhbGxiYWNrKVxuICAgICAgfSBlbHNlIGlmKGV2ZW50VHlwZSA9PT0gXCJzdWJtaXRcIil7XG4gICAgICAgIHRhcmdldFZpZXcuc3VibWl0Rm9ybShzb3VyY2VFbCwgdGFyZ2V0Q3R4LCBldmVudCB8fCBwaHhFdmVudCwgcHVzaE9wdHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXJnZXRWaWV3LnB1c2hFdmVudChldmVudFR5cGUsIHNvdXJjZUVsLCB0YXJnZXRDdHgsIGV2ZW50IHx8IHBoeEV2ZW50LCBkYXRhLCBwdXNoT3B0cylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuXG4gIGV4ZWNfYWRkX2NsYXNzKGV2ZW50VHlwZSwgcGh4RXZlbnQsIHZpZXcsIHNvdXJjZUVsLCBlbCwge25hbWVzLCB0cmFuc2l0aW9uLCB0aW1lfSl7XG4gICAgdGhpcy5hZGRPclJlbW92ZUNsYXNzZXMoZWwsIG5hbWVzLCBbXSwgdHJhbnNpdGlvbiwgdGltZSwgdmlldylcbiAgfSxcblxuICBleGVjX3JlbW92ZV9jbGFzcyhldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIHtuYW1lcywgdHJhbnNpdGlvbiwgdGltZX0pe1xuICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBbXSwgbmFtZXMsIHRyYW5zaXRpb24sIHRpbWUsIHZpZXcpXG4gIH0sXG5cbiAgZXhlY190cmFuc2l0aW9uKGV2ZW50VHlwZSwgcGh4RXZlbnQsIHZpZXcsIHNvdXJjZUVsLCBlbCwge3RpbWUsIHRyYW5zaXRpb259KXtcbiAgICBsZXQgW3RyYW5zaXRpb25fc3RhcnQsIHJ1bm5pbmcsIHRyYW5zaXRpb25fZW5kXSA9IHRyYW5zaXRpb25cbiAgICBsZXQgb25TdGFydCA9ICgpID0+IHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCB0cmFuc2l0aW9uX3N0YXJ0LmNvbmNhdChydW5uaW5nKSwgW10pXG4gICAgbGV0IG9uRG9uZSA9ICgpID0+IHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCB0cmFuc2l0aW9uX2VuZCwgdHJhbnNpdGlvbl9zdGFydC5jb25jYXQocnVubmluZykpXG4gICAgdmlldy50cmFuc2l0aW9uKHRpbWUsIG9uU3RhcnQsIG9uRG9uZSlcbiAgfSxcblxuICBleGVjX3RvZ2dsZShldmVudFR5cGUsIHBoeEV2ZW50LCB2aWV3LCBzb3VyY2VFbCwgZWwsIHtkaXNwbGF5LCBpbnMsIG91dHMsIHRpbWV9KXtcbiAgICB0aGlzLnRvZ2dsZShldmVudFR5cGUsIHZpZXcsIGVsLCBkaXNwbGF5LCBpbnMsIG91dHMsIHRpbWUpXG4gIH0sXG5cbiAgZXhlY19zaG93KGV2ZW50VHlwZSwgcGh4RXZlbnQsIHZpZXcsIHNvdXJjZUVsLCBlbCwge2Rpc3BsYXksIHRyYW5zaXRpb24sIHRpbWV9KXtcbiAgICB0aGlzLnNob3coZXZlbnRUeXBlLCB2aWV3LCBlbCwgZGlzcGxheSwgdHJhbnNpdGlvbiwgdGltZSlcbiAgfSxcblxuICBleGVjX2hpZGUoZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCB7ZGlzcGxheSwgdHJhbnNpdGlvbiwgdGltZX0pe1xuICAgIHRoaXMuaGlkZShldmVudFR5cGUsIHZpZXcsIGVsLCBkaXNwbGF5LCB0cmFuc2l0aW9uLCB0aW1lKVxuICB9LFxuXG4gIGV4ZWNfc2V0X2F0dHIoZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCB7YXR0cjogW2F0dHIsIHZhbF19KXtcbiAgICB0aGlzLnNldE9yUmVtb3ZlQXR0cnMoZWwsIFtbYXR0ciwgdmFsXV0sIFtdKVxuICB9LFxuXG4gIGV4ZWNfcmVtb3ZlX2F0dHIoZXZlbnRUeXBlLCBwaHhFdmVudCwgdmlldywgc291cmNlRWwsIGVsLCB7YXR0cn0pe1xuICAgIHRoaXMuc2V0T3JSZW1vdmVBdHRycyhlbCwgW10sIFthdHRyXSlcbiAgfSxcblxuICAvLyB1dGlscyBmb3IgY29tbWFuZHNcblxuICBzaG93KGV2ZW50VHlwZSwgdmlldywgZWwsIGRpc3BsYXksIHRyYW5zaXRpb24sIHRpbWUpe1xuICAgIGlmKCF0aGlzLmlzVmlzaWJsZShlbCkpe1xuICAgICAgdGhpcy50b2dnbGUoZXZlbnRUeXBlLCB2aWV3LCBlbCwgZGlzcGxheSwgdHJhbnNpdGlvbiwgbnVsbCwgdGltZSlcbiAgICB9XG4gIH0sXG5cbiAgaGlkZShldmVudFR5cGUsIHZpZXcsIGVsLCBkaXNwbGF5LCB0cmFuc2l0aW9uLCB0aW1lKXtcbiAgICBpZih0aGlzLmlzVmlzaWJsZShlbCkpe1xuICAgICAgdGhpcy50b2dnbGUoZXZlbnRUeXBlLCB2aWV3LCBlbCwgZGlzcGxheSwgbnVsbCwgdHJhbnNpdGlvbiwgdGltZSlcbiAgICB9XG4gIH0sXG5cbiAgdG9nZ2xlKGV2ZW50VHlwZSwgdmlldywgZWwsIGRpc3BsYXksIGlucywgb3V0cywgdGltZSl7XG4gICAgbGV0IFtpbkNsYXNzZXMsIGluU3RhcnRDbGFzc2VzLCBpbkVuZENsYXNzZXNdID0gaW5zIHx8IFtbXSwgW10sIFtdXVxuICAgIGxldCBbb3V0Q2xhc3Nlcywgb3V0U3RhcnRDbGFzc2VzLCBvdXRFbmRDbGFzc2VzXSA9IG91dHMgfHwgW1tdLCBbXSwgW11dXG4gICAgaWYoaW5DbGFzc2VzLmxlbmd0aCA+IDAgfHwgb3V0Q2xhc3Nlcy5sZW5ndGggPiAwKXtcbiAgICAgIGlmKHRoaXMuaXNWaXNpYmxlKGVsKSl7XG4gICAgICAgIGxldCBvblN0YXJ0ID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBvdXRTdGFydENsYXNzZXMsIGluQ2xhc3Nlcy5jb25jYXQoaW5TdGFydENsYXNzZXMpLmNvbmNhdChpbkVuZENsYXNzZXMpKVxuICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZGRPclJlbW92ZUNsYXNzZXMoZWwsIG91dENsYXNzZXMsIFtdKVxuICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgb3V0RW5kQ2xhc3Nlcywgb3V0U3RhcnRDbGFzc2VzKSlcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGh4OmhpZGUtc3RhcnRcIikpXG4gICAgICAgIHZpZXcudHJhbnNpdGlvbih0aW1lLCBvblN0YXJ0LCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hZGRPclJlbW92ZUNsYXNzZXMoZWwsIFtdLCBvdXRDbGFzc2VzLmNvbmNhdChvdXRFbmRDbGFzc2VzKSlcbiAgICAgICAgICBET00ucHV0U3RpY2t5KGVsLCBcInRvZ2dsZVwiLCBjdXJyZW50RWwgPT4gY3VycmVudEVsLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIilcbiAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpoaWRlLWVuZFwiKSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmKGV2ZW50VHlwZSA9PT0gXCJyZW1vdmVcIil7IHJldHVybiB9XG4gICAgICAgIGxldCBvblN0YXJ0ID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBpblN0YXJ0Q2xhc3Nlcywgb3V0Q2xhc3Nlcy5jb25jYXQob3V0U3RhcnRDbGFzc2VzKS5jb25jYXQob3V0RW5kQ2xhc3NlcykpXG4gICAgICAgICAgRE9NLnB1dFN0aWNreShlbCwgXCJ0b2dnbGVcIiwgY3VycmVudEVsID0+IGN1cnJlbnRFbC5zdHlsZS5kaXNwbGF5ID0gKGRpc3BsYXkgfHwgXCJibG9ja1wiKSlcbiAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBpbkNsYXNzZXMsIFtdKVxuICAgICAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgaW5FbmRDbGFzc2VzLCBpblN0YXJ0Q2xhc3NlcykpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpzaG93LXN0YXJ0XCIpKVxuICAgICAgICB2aWV3LnRyYW5zaXRpb24odGltZSwgb25TdGFydCwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBbXSwgaW5DbGFzc2VzLmNvbmNhdChpbkVuZENsYXNzZXMpKVxuICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGh4OnNob3ctZW5kXCIpKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZih0aGlzLmlzVmlzaWJsZShlbCkpe1xuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpoaWRlLXN0YXJ0XCIpKVxuICAgICAgICAgIERPTS5wdXRTdGlja3koZWwsIFwidG9nZ2xlXCIsIGN1cnJlbnRFbCA9PiBjdXJyZW50RWwuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiKVxuICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicGh4OmhpZGUtZW5kXCIpKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJwaHg6c2hvdy1zdGFydFwiKSlcbiAgICAgICAgICBET00ucHV0U3RpY2t5KGVsLCBcInRvZ2dsZVwiLCBjdXJyZW50RWwgPT4gY3VycmVudEVsLnN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5IHx8IFwiYmxvY2tcIilcbiAgICAgICAgICBlbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInBoeDpzaG93LWVuZFwiKSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgYWRkT3JSZW1vdmVDbGFzc2VzKGVsLCBhZGRzLCByZW1vdmVzLCB0cmFuc2l0aW9uLCB0aW1lLCB2aWV3KXtcbiAgICBsZXQgW3RyYW5zaXRpb25fcnVuLCB0cmFuc2l0aW9uX3N0YXJ0LCB0cmFuc2l0aW9uX2VuZF0gPSB0cmFuc2l0aW9uIHx8IFtbXSwgW10sIFtdXVxuICAgIGlmKHRyYW5zaXRpb25fcnVuLmxlbmd0aCA+IDApe1xuICAgICAgbGV0IG9uU3RhcnQgPSAoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgdHJhbnNpdGlvbl9zdGFydC5jb25jYXQodHJhbnNpdGlvbl9ydW4pLCBbXSlcbiAgICAgIGxldCBvbkRvbmUgPSAoKSA9PiB0aGlzLmFkZE9yUmVtb3ZlQ2xhc3NlcyhlbCwgYWRkcy5jb25jYXQodHJhbnNpdGlvbl9lbmQpLCByZW1vdmVzLmNvbmNhdCh0cmFuc2l0aW9uX3J1bikuY29uY2F0KHRyYW5zaXRpb25fc3RhcnQpKVxuICAgICAgcmV0dXJuIHZpZXcudHJhbnNpdGlvbih0aW1lLCBvblN0YXJ0LCBvbkRvbmUpXG4gICAgfVxuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgbGV0IFtwcmV2QWRkcywgcHJldlJlbW92ZXNdID0gRE9NLmdldFN0aWNreShlbCwgXCJjbGFzc2VzXCIsIFtbXSwgW11dKVxuICAgICAgbGV0IGtlZXBBZGRzID0gYWRkcy5maWx0ZXIobmFtZSA9PiBwcmV2QWRkcy5pbmRleE9mKG5hbWUpIDwgMCAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKG5hbWUpKVxuICAgICAgbGV0IGtlZXBSZW1vdmVzID0gcmVtb3Zlcy5maWx0ZXIobmFtZSA9PiBwcmV2UmVtb3Zlcy5pbmRleE9mKG5hbWUpIDwgMCAmJiBlbC5jbGFzc0xpc3QuY29udGFpbnMobmFtZSkpXG4gICAgICBsZXQgbmV3QWRkcyA9IHByZXZBZGRzLmZpbHRlcihuYW1lID0+IHJlbW92ZXMuaW5kZXhPZihuYW1lKSA8IDApLmNvbmNhdChrZWVwQWRkcylcbiAgICAgIGxldCBuZXdSZW1vdmVzID0gcHJldlJlbW92ZXMuZmlsdGVyKG5hbWUgPT4gYWRkcy5pbmRleE9mKG5hbWUpIDwgMCkuY29uY2F0KGtlZXBSZW1vdmVzKVxuXG4gICAgICBET00ucHV0U3RpY2t5KGVsLCBcImNsYXNzZXNcIiwgY3VycmVudEVsID0+IHtcbiAgICAgICAgY3VycmVudEVsLmNsYXNzTGlzdC5yZW1vdmUoLi4ubmV3UmVtb3ZlcylcbiAgICAgICAgY3VycmVudEVsLmNsYXNzTGlzdC5hZGQoLi4ubmV3QWRkcylcbiAgICAgICAgcmV0dXJuIFtuZXdBZGRzLCBuZXdSZW1vdmVzXVxuICAgICAgfSlcbiAgICB9KVxuICB9LFxuXG4gIHNldE9yUmVtb3ZlQXR0cnMoZWwsIHNldHMsIHJlbW92ZXMpe1xuICAgIGxldCBbcHJldlNldHMsIHByZXZSZW1vdmVzXSA9IERPTS5nZXRTdGlja3koZWwsIFwiYXR0cnNcIiwgW1tdLCBbXV0pXG5cbiAgICBsZXQgYWx0ZXJlZEF0dHJzID0gc2V0cy5tYXAoKFthdHRyLCBfdmFsXSkgPT4gYXR0cikuY29uY2F0KHJlbW92ZXMpO1xuICAgIGxldCBuZXdTZXRzID0gcHJldlNldHMuZmlsdGVyKChbYXR0ciwgX3ZhbF0pID0+ICFhbHRlcmVkQXR0cnMuaW5jbHVkZXMoYXR0cikpLmNvbmNhdChzZXRzKTtcbiAgICBsZXQgbmV3UmVtb3ZlcyA9IHByZXZSZW1vdmVzLmZpbHRlcigoYXR0cikgPT4gIWFsdGVyZWRBdHRycy5pbmNsdWRlcyhhdHRyKSkuY29uY2F0KHJlbW92ZXMpO1xuXG4gICAgRE9NLnB1dFN0aWNreShlbCwgXCJhdHRyc1wiLCBjdXJyZW50RWwgPT4ge1xuICAgICAgbmV3UmVtb3Zlcy5mb3JFYWNoKGF0dHIgPT4gY3VycmVudEVsLnJlbW92ZUF0dHJpYnV0ZShhdHRyKSlcbiAgICAgIG5ld1NldHMuZm9yRWFjaCgoW2F0dHIsIHZhbF0pID0+IGN1cnJlbnRFbC5zZXRBdHRyaWJ1dGUoYXR0ciwgdmFsKSlcbiAgICAgIHJldHVybiBbbmV3U2V0cywgbmV3UmVtb3Zlc11cbiAgICB9KVxuICB9LFxuXG4gIGhhc0FsbENsYXNzZXMoZWwsIGNsYXNzZXMpeyByZXR1cm4gY2xhc3Nlcy5ldmVyeShuYW1lID0+IGVsLmNsYXNzTGlzdC5jb250YWlucyhuYW1lKSkgfSxcblxuICBpc1RvZ2dsZWRPdXQoZWwsIG91dENsYXNzZXMpe1xuICAgIHJldHVybiAhdGhpcy5pc1Zpc2libGUoZWwpIHx8IHRoaXMuaGFzQWxsQ2xhc3NlcyhlbCwgb3V0Q2xhc3NlcylcbiAgfSxcblxuICBmaWx0ZXJUb0Vscyhzb3VyY2VFbCwge3RvfSl7XG4gICAgcmV0dXJuIHRvID8gRE9NLmFsbChkb2N1bWVudCwgdG8pIDogW3NvdXJjZUVsXVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEpTXG4iLCAiaW1wb3J0IHtcbiAgQkVGT1JFX1VOTE9BRF9MT0FERVJfVElNRU9VVCxcbiAgQ0hFQ0tBQkxFX0lOUFVUUyxcbiAgQ09OU0VDVVRJVkVfUkVMT0FEUyxcbiAgUEhYX0FVVE9fUkVDT1ZFUixcbiAgUEhYX0NPTVBPTkVOVCxcbiAgUEhYX0NPTk5FQ1RFRF9DTEFTUyxcbiAgUEhYX0RJU0FCTEVfV0lUSCxcbiAgUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFLFxuICBQSFhfRElTQUJMRUQsXG4gIFBIWF9ESVNDT05ORUNURURfQ0xBU1MsXG4gIFBIWF9FVkVOVF9DTEFTU0VTLFxuICBQSFhfRVJST1JfQ0xBU1MsXG4gIFBIWF9GRUVEQkFDS19GT1IsXG4gIFBIWF9IQVNfU1VCTUlUVEVELFxuICBQSFhfSE9PSyxcbiAgUEhYX1BBR0VfTE9BRElORyxcbiAgUEhYX1BBUkVOVF9JRCxcbiAgUEhYX1BST0dSRVNTLFxuICBQSFhfUkVBRE9OTFksXG4gIFBIWF9SRUYsXG4gIFBIWF9SRUZfU1JDLFxuICBQSFhfUk9PVF9JRCxcbiAgUEhYX1NFU1NJT04sXG4gIFBIWF9TVEFUSUMsXG4gIFBIWF9UUkFDS19TVEFUSUMsXG4gIFBIWF9UUkFDS19VUExPQURTLFxuICBQSFhfVVBEQVRFLFxuICBQSFhfVVBMT0FEX1JFRixcbiAgUEhYX1ZJRVdfU0VMRUNUT1IsXG4gIFBVU0hfVElNRU9VVCxcbiAgUEhYX01BSU4sXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmltcG9ydCB7XG4gIGNsb25lLFxuICBjbG9zZXN0UGh4QmluZGluZyxcbiAgaXNFbXB0eSxcbiAgaXNFcXVhbE9iaixcbiAgbG9nRXJyb3IsXG4gIG1heWJlLFxuICBpc0NpZCxcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5pbXBvcnQgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCJcbmltcG9ydCBET00gZnJvbSBcIi4vZG9tXCJcbmltcG9ydCBET01QYXRjaCBmcm9tIFwiLi9kb21fcGF0Y2hcIlxuaW1wb3J0IExpdmVVcGxvYWRlciBmcm9tIFwiLi9saXZlX3VwbG9hZGVyXCJcbmltcG9ydCBSZW5kZXJlZCBmcm9tIFwiLi9yZW5kZXJlZFwiXG5pbXBvcnQgVmlld0hvb2sgZnJvbSBcIi4vdmlld19ob29rXCJcbmltcG9ydCBKUyBmcm9tIFwiLi9qc1wiXG5cbmxldCBzZXJpYWxpemVGb3JtID0gKGZvcm0sIG1ldGEsIG9ubHlOYW1lcyA9IFtdKSA9PiB7XG4gIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YShmb3JtKVxuICBsZXQgdG9SZW1vdmUgPSBbXVxuXG4gIGZvcm1EYXRhLmZvckVhY2goKHZhbCwga2V5LCBfaW5kZXgpID0+IHtcbiAgICBpZih2YWwgaW5zdGFuY2VvZiBGaWxlKXsgdG9SZW1vdmUucHVzaChrZXkpIH1cbiAgfSlcblxuICAvLyBDbGVhbnVwIGFmdGVyIGJ1aWxkaW5nIGZpbGVEYXRhXG4gIHRvUmVtb3ZlLmZvckVhY2goa2V5ID0+IGZvcm1EYXRhLmRlbGV0ZShrZXkpKVxuXG4gIGxldCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yKGxldCBba2V5LCB2YWxdIG9mIGZvcm1EYXRhLmVudHJpZXMoKSl7XG4gICAgaWYob25seU5hbWVzLmxlbmd0aCA9PT0gMCB8fCBvbmx5TmFtZXMuaW5kZXhPZihrZXkpID49IDApe1xuICAgICAgcGFyYW1zLmFwcGVuZChrZXksIHZhbClcbiAgICB9XG4gIH1cbiAgZm9yKGxldCBtZXRhS2V5IGluIG1ldGEpeyBwYXJhbXMuYXBwZW5kKG1ldGFLZXksIG1ldGFbbWV0YUtleV0pIH1cblxuICByZXR1cm4gcGFyYW1zLnRvU3RyaW5nKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmlldyB7XG4gIGNvbnN0cnVjdG9yKGVsLCBsaXZlU29ja2V0LCBwYXJlbnRWaWV3LCBmbGFzaCl7XG4gICAgdGhpcy5saXZlU29ja2V0ID0gbGl2ZVNvY2tldFxuICAgIHRoaXMuZmxhc2ggPSBmbGFzaFxuICAgIHRoaXMucGFyZW50ID0gcGFyZW50Vmlld1xuICAgIHRoaXMucm9vdCA9IHBhcmVudFZpZXcgPyBwYXJlbnRWaWV3LnJvb3QgOiB0aGlzXG4gICAgdGhpcy5lbCA9IGVsXG4gICAgdGhpcy5pZCA9IHRoaXMuZWwuaWRcbiAgICB0aGlzLnJlZiA9IDBcbiAgICB0aGlzLmNoaWxkSm9pbnMgPSAwXG4gICAgdGhpcy5sb2FkZXJUaW1lciA9IG51bGxcbiAgICB0aGlzLnBlbmRpbmdEaWZmcyA9IFtdXG4gICAgdGhpcy5wcnVuaW5nQ0lEcyA9IFtdXG4gICAgdGhpcy5yZWRpcmVjdCA9IGZhbHNlXG4gICAgdGhpcy5ocmVmID0gbnVsbFxuICAgIHRoaXMuam9pbkNvdW50ID0gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5qb2luQ291bnQgLSAxIDogMFxuICAgIHRoaXMuam9pblBlbmRpbmcgPSB0cnVlXG4gICAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZVxuICAgIHRoaXMuam9pbkNhbGxiYWNrID0gZnVuY3Rpb24ob25Eb25lKXsgb25Eb25lICYmIG9uRG9uZSgpIH1cbiAgICB0aGlzLnN0b3BDYWxsYmFjayA9IGZ1bmN0aW9uKCl7IH1cbiAgICB0aGlzLnBlbmRpbmdKb2luT3BzID0gdGhpcy5wYXJlbnQgPyBudWxsIDogW11cbiAgICB0aGlzLnZpZXdIb29rcyA9IHt9XG4gICAgdGhpcy51cGxvYWRlcnMgPSB7fVxuICAgIHRoaXMuZm9ybVN1Ym1pdHMgPSBbXVxuICAgIHRoaXMuY2hpbGRyZW4gPSB0aGlzLnBhcmVudCA/IG51bGwgOiB7fVxuICAgIHRoaXMucm9vdC5jaGlsZHJlblt0aGlzLmlkXSA9IHt9XG4gICAgdGhpcy5jaGFubmVsID0gdGhpcy5saXZlU29ja2V0LmNoYW5uZWwoYGx2OiR7dGhpcy5pZH1gLCAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdDogdGhpcy5yZWRpcmVjdCA/IHRoaXMuaHJlZiA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXJsOiB0aGlzLnJlZGlyZWN0ID8gdW5kZWZpbmVkIDogdGhpcy5ocmVmIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcGFyYW1zOiB0aGlzLmNvbm5lY3RQYXJhbXMoKSxcbiAgICAgICAgc2Vzc2lvbjogdGhpcy5nZXRTZXNzaW9uKCksXG4gICAgICAgIHN0YXRpYzogdGhpcy5nZXRTdGF0aWMoKSxcbiAgICAgICAgZmxhc2g6IHRoaXMuZmxhc2hcbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuc2hvd0xvYWRlcih0aGlzLmxpdmVTb2NrZXQubG9hZGVyVGltZW91dClcbiAgICB0aGlzLmJpbmRDaGFubmVsKClcbiAgfVxuXG4gIHNldEhyZWYoaHJlZil7IHRoaXMuaHJlZiA9IGhyZWYgfVxuXG4gIHNldFJlZGlyZWN0KGhyZWYpe1xuICAgIHRoaXMucmVkaXJlY3QgPSB0cnVlXG4gICAgdGhpcy5ocmVmID0gaHJlZlxuICB9XG5cbiAgaXNNYWluKCl7IHJldHVybiB0aGlzLmVsLmhhc0F0dHJpYnV0ZShQSFhfTUFJTikgfVxuXG4gIGNvbm5lY3RQYXJhbXMoKXtcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5saXZlU29ja2V0LnBhcmFtcyh0aGlzLmVsKVxuICAgIGxldCBtYW5pZmVzdCA9XG4gICAgICBET00uYWxsKGRvY3VtZW50LCBgWyR7dGhpcy5iaW5kaW5nKFBIWF9UUkFDS19TVEFUSUMpfV1gKVxuICAgICAgICAubWFwKG5vZGUgPT4gbm9kZS5zcmMgfHwgbm9kZS5ocmVmKS5maWx0ZXIodXJsID0+IHR5cGVvZiAodXJsKSA9PT0gXCJzdHJpbmdcIilcblxuICAgIGlmKG1hbmlmZXN0Lmxlbmd0aCA+IDApeyBwYXJhbXNbXCJfdHJhY2tfc3RhdGljXCJdID0gbWFuaWZlc3QgfVxuICAgIHBhcmFtc1tcIl9tb3VudHNcIl0gPSB0aGlzLmpvaW5Db3VudFxuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG5cbiAgaXNDb25uZWN0ZWQoKXsgcmV0dXJuIHRoaXMuY2hhbm5lbC5jYW5QdXNoKCkgfVxuXG4gIGdldFNlc3Npb24oKXsgcmV0dXJuIHRoaXMuZWwuZ2V0QXR0cmlidXRlKFBIWF9TRVNTSU9OKSB9XG5cbiAgZ2V0U3RhdGljKCl7XG4gICAgbGV0IHZhbCA9IHRoaXMuZWwuZ2V0QXR0cmlidXRlKFBIWF9TVEFUSUMpXG4gICAgcmV0dXJuIHZhbCA9PT0gXCJcIiA/IG51bGwgOiB2YWxcbiAgfVxuXG4gIGRlc3Ryb3koY2FsbGJhY2sgPSBmdW5jdGlvbiAoKXsgfSl7XG4gICAgdGhpcy5kZXN0cm95QWxsQ2hpbGRyZW4oKVxuICAgIHRoaXMuZGVzdHJveWVkID0gdHJ1ZVxuICAgIGRlbGV0ZSB0aGlzLnJvb3QuY2hpbGRyZW5bdGhpcy5pZF1cbiAgICBpZih0aGlzLnBhcmVudCl7IGRlbGV0ZSB0aGlzLnJvb3QuY2hpbGRyZW5bdGhpcy5wYXJlbnQuaWRdW3RoaXMuaWRdIH1cbiAgICBjbGVhclRpbWVvdXQodGhpcy5sb2FkZXJUaW1lcilcbiAgICBsZXQgb25GaW5pc2hlZCA9ICgpID0+IHtcbiAgICAgIGNhbGxiYWNrKClcbiAgICAgIGZvcihsZXQgaWQgaW4gdGhpcy52aWV3SG9va3Mpe1xuICAgICAgICB0aGlzLmRlc3Ryb3lIb29rKHRoaXMudmlld0hvb2tzW2lkXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBET00ubWFya1BoeENoaWxkRGVzdHJveWVkKHRoaXMuZWwpXG5cbiAgICB0aGlzLmxvZyhcImRlc3Ryb3llZFwiLCAoKSA9PiBbXCJ0aGUgY2hpbGQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwYXJlbnRcIl0pXG4gICAgdGhpcy5jaGFubmVsLmxlYXZlKClcbiAgICAgIC5yZWNlaXZlKFwib2tcIiwgb25GaW5pc2hlZClcbiAgICAgIC5yZWNlaXZlKFwiZXJyb3JcIiwgb25GaW5pc2hlZClcbiAgICAgIC5yZWNlaXZlKFwidGltZW91dFwiLCBvbkZpbmlzaGVkKVxuICB9XG5cbiAgc2V0Q29udGFpbmVyQ2xhc3NlcyguLi5jbGFzc2VzKXtcbiAgICB0aGlzLmVsLmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICBQSFhfQ09OTkVDVEVEX0NMQVNTLFxuICAgICAgUEhYX0RJU0NPTk5FQ1RFRF9DTEFTUyxcbiAgICAgIFBIWF9FUlJPUl9DTEFTU1xuICAgIClcbiAgICB0aGlzLmVsLmNsYXNzTGlzdC5hZGQoLi4uY2xhc3NlcylcbiAgfVxuXG4gIHNob3dMb2FkZXIodGltZW91dCl7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubG9hZGVyVGltZXIpXG4gICAgaWYodGltZW91dCl7XG4gICAgICB0aGlzLmxvYWRlclRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dMb2FkZXIoKSwgdGltZW91dClcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yKGxldCBpZCBpbiB0aGlzLnZpZXdIb29rcyl7IHRoaXMudmlld0hvb2tzW2lkXS5fX2Rpc2Nvbm5lY3RlZCgpIH1cbiAgICAgIHRoaXMuc2V0Q29udGFpbmVyQ2xhc3NlcyhQSFhfRElTQ09OTkVDVEVEX0NMQVNTKVxuICAgIH1cbiAgfVxuXG4gIGhpZGVMb2FkZXIoKXtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5sb2FkZXJUaW1lcilcbiAgICB0aGlzLnNldENvbnRhaW5lckNsYXNzZXMoUEhYX0NPTk5FQ1RFRF9DTEFTUylcbiAgfVxuXG4gIHRyaWdnZXJSZWNvbm5lY3RlZCgpe1xuICAgIGZvcihsZXQgaWQgaW4gdGhpcy52aWV3SG9va3MpeyB0aGlzLnZpZXdIb29rc1tpZF0uX19yZWNvbm5lY3RlZCgpIH1cbiAgfVxuXG4gIGxvZyhraW5kLCBtc2dDYWxsYmFjayl7XG4gICAgdGhpcy5saXZlU29ja2V0LmxvZyh0aGlzLCBraW5kLCBtc2dDYWxsYmFjaylcbiAgfVxuXG4gIHRyYW5zaXRpb24odGltZSwgb25TdGFydCwgb25Eb25lID0gZnVuY3Rpb24oKXt9KXtcbiAgICB0aGlzLmxpdmVTb2NrZXQudHJhbnNpdGlvbih0aW1lLCBvblN0YXJ0LCBvbkRvbmUpXG4gIH1cblxuICB3aXRoaW5UYXJnZXRzKHBoeFRhcmdldCwgY2FsbGJhY2spe1xuICAgIGlmKHBoeFRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50IHx8IHBoeFRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQpe1xuICAgICAgcmV0dXJuIHRoaXMubGl2ZVNvY2tldC5vd25lcihwaHhUYXJnZXQsIHZpZXcgPT4gY2FsbGJhY2sodmlldywgcGh4VGFyZ2V0KSlcbiAgICB9XG5cbiAgICBpZihpc0NpZChwaHhUYXJnZXQpKXtcbiAgICAgIGxldCB0YXJnZXRzID0gRE9NLmZpbmRDb21wb25lbnROb2RlTGlzdCh0aGlzLmVsLCBwaHhUYXJnZXQpXG4gICAgICBpZih0YXJnZXRzLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgIGxvZ0Vycm9yKGBubyBjb21wb25lbnQgZm91bmQgbWF0Y2hpbmcgcGh4LXRhcmdldCBvZiAke3BoeFRhcmdldH1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsbGJhY2sodGhpcywgcGFyc2VJbnQocGh4VGFyZ2V0KSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRhcmdldHMgPSBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocGh4VGFyZ2V0KSlcbiAgICAgIGlmKHRhcmdldHMubGVuZ3RoID09PSAwKXsgbG9nRXJyb3IoYG5vdGhpbmcgZm91bmQgbWF0Y2hpbmcgdGhlIHBoeC10YXJnZXQgc2VsZWN0b3IgXCIke3BoeFRhcmdldH1cImApIH1cbiAgICAgIHRhcmdldHMuZm9yRWFjaCh0YXJnZXQgPT4gdGhpcy5saXZlU29ja2V0Lm93bmVyKHRhcmdldCwgdmlldyA9PiBjYWxsYmFjayh2aWV3LCB0YXJnZXQpKSlcbiAgICB9XG4gIH1cblxuICBhcHBseURpZmYodHlwZSwgcmF3RGlmZiwgY2FsbGJhY2spe1xuICAgIHRoaXMubG9nKHR5cGUsICgpID0+IFtcIlwiLCBjbG9uZShyYXdEaWZmKV0pXG4gICAgbGV0IHtkaWZmLCByZXBseSwgZXZlbnRzLCB0aXRsZX0gPSBSZW5kZXJlZC5leHRyYWN0KHJhd0RpZmYpXG4gICAgaWYodGl0bGUpeyBET00ucHV0VGl0bGUodGl0bGUpIH1cblxuICAgIGNhbGxiYWNrKHtkaWZmLCByZXBseSwgZXZlbnRzfSlcbiAgICByZXR1cm4gcmVwbHlcbiAgfVxuXG4gIG9uSm9pbihyZXNwKXtcbiAgICBsZXQge3JlbmRlcmVkLCBjb250YWluZXJ9ID0gcmVzcFxuICAgIGlmKGNvbnRhaW5lcil7XG4gICAgICBsZXQgW3RhZywgYXR0cnNdID0gY29udGFpbmVyXG4gICAgICB0aGlzLmVsID0gRE9NLnJlcGxhY2VSb290Q29udGFpbmVyKHRoaXMuZWwsIHRhZywgYXR0cnMpXG4gICAgfVxuICAgIHRoaXMuY2hpbGRKb2lucyA9IDBcbiAgICB0aGlzLmpvaW5QZW5kaW5nID0gdHJ1ZVxuICAgIHRoaXMuZmxhc2ggPSBudWxsXG5cbiAgICBCcm93c2VyLmRyb3BMb2NhbCh0aGlzLmxpdmVTb2NrZXQubG9jYWxTdG9yYWdlLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIENPTlNFQ1VUSVZFX1JFTE9BRFMpXG4gICAgdGhpcy5hcHBseURpZmYoXCJtb3VudFwiLCByZW5kZXJlZCwgKHtkaWZmLCBldmVudHN9KSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVkID0gbmV3IFJlbmRlcmVkKHRoaXMuaWQsIGRpZmYpXG4gICAgICBsZXQgaHRtbCA9IHRoaXMucmVuZGVyQ29udGFpbmVyKG51bGwsIFwiam9pblwiKVxuICAgICAgdGhpcy5kcm9wUGVuZGluZ1JlZnMoKVxuICAgICAgbGV0IGZvcm1zID0gdGhpcy5mb3Jtc0ZvclJlY292ZXJ5KGh0bWwpXG4gICAgICB0aGlzLmpvaW5Db3VudCsrXG5cbiAgICAgIGlmKGZvcm1zLmxlbmd0aCA+IDApe1xuICAgICAgICBmb3Jtcy5mb3JFYWNoKChbZm9ybSwgbmV3Rm9ybSwgbmV3Q2lkXSwgaSkgPT4ge1xuICAgICAgICAgIHRoaXMucHVzaEZvcm1SZWNvdmVyeShmb3JtLCBuZXdDaWQsIHJlc3AgPT4ge1xuICAgICAgICAgICAgaWYoaSA9PT0gZm9ybXMubGVuZ3RoIC0gMSl7XG4gICAgICAgICAgICAgIHRoaXMub25Kb2luQ29tcGxldGUocmVzcCwgaHRtbCwgZXZlbnRzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uSm9pbkNvbXBsZXRlKHJlc3AsIGh0bWwsIGV2ZW50cylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZHJvcFBlbmRpbmdSZWZzKCl7XG4gICAgRE9NLmFsbChkb2N1bWVudCwgYFske1BIWF9SRUZfU1JDfT1cIiR7dGhpcy5pZH1cIl1bJHtQSFhfUkVGfV1gLCBlbCA9PiB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX1JFRilcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShQSFhfUkVGX1NSQylcbiAgICB9KVxuICB9XG5cbiAgb25Kb2luQ29tcGxldGUoe2xpdmVfcGF0Y2h9LCBodG1sLCBldmVudHMpe1xuICAgIC8vIEluIG9yZGVyIHRvIHByb3ZpZGUgYSBiZXR0ZXIgZXhwZXJpZW5jZSwgd2Ugd2FudCB0byBqb2luXG4gICAgLy8gYWxsIExpdmVWaWV3cyBmaXJzdCBhbmQgb25seSB0aGVuIGFwcGx5IHRoZWlyIHBhdGNoZXMuXG4gICAgaWYodGhpcy5qb2luQ291bnQgPiAxIHx8ICh0aGlzLnBhcmVudCAmJiAhdGhpcy5wYXJlbnQuaXNKb2luUGVuZGluZygpKSl7XG4gICAgICByZXR1cm4gdGhpcy5hcHBseUpvaW5QYXRjaChsaXZlX3BhdGNoLCBodG1sLCBldmVudHMpXG4gICAgfVxuXG4gICAgLy8gT25lIGRvd25zaWRlIG9mIHRoaXMgYXBwcm9hY2ggaXMgdGhhdCB3ZSBuZWVkIHRvIGZpbmQgcGh4Q2hpbGRyZW5cbiAgICAvLyBpbiB0aGUgaHRtbCBmcmFnbWVudCwgaW5zdGVhZCBvZiBkaXJlY3RseSBvbiB0aGUgRE9NLiBUaGUgZnJhZ21lbnRcbiAgICAvLyBhbHNvIGRvZXMgbm90IGluY2x1ZGUgUEhYX1NUQVRJQywgc28gd2UgbmVlZCB0byBjb3B5IGl0IG92ZXIgZnJvbVxuICAgIC8vIHRoZSBET00uXG4gICAgbGV0IG5ld0NoaWxkcmVuID0gRE9NLmZpbmRQaHhDaGlsZHJlbkluRnJhZ21lbnQoaHRtbCwgdGhpcy5pZCkuZmlsdGVyKHRvRWwgPT4ge1xuICAgICAgbGV0IGZyb21FbCA9IHRvRWwuaWQgJiYgdGhpcy5lbC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke3RvRWwuaWR9XCJdYClcbiAgICAgIGxldCBwaHhTdGF0aWMgPSBmcm9tRWwgJiYgZnJvbUVsLmdldEF0dHJpYnV0ZShQSFhfU1RBVElDKVxuICAgICAgaWYocGh4U3RhdGljKXsgdG9FbC5zZXRBdHRyaWJ1dGUoUEhYX1NUQVRJQywgcGh4U3RhdGljKSB9XG4gICAgICByZXR1cm4gdGhpcy5qb2luQ2hpbGQodG9FbClcbiAgICB9KVxuXG4gICAgaWYobmV3Q2hpbGRyZW4ubGVuZ3RoID09PSAwKXtcbiAgICAgIGlmKHRoaXMucGFyZW50KXtcbiAgICAgICAgdGhpcy5yb290LnBlbmRpbmdKb2luT3BzLnB1c2goW3RoaXMsICgpID0+IHRoaXMuYXBwbHlKb2luUGF0Y2gobGl2ZV9wYXRjaCwgaHRtbCwgZXZlbnRzKV0pXG4gICAgICAgIHRoaXMucGFyZW50LmFja0pvaW4odGhpcylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25BbGxDaGlsZEpvaW5zQ29tcGxldGUoKVxuICAgICAgICB0aGlzLmFwcGx5Sm9pblBhdGNoKGxpdmVfcGF0Y2gsIGh0bWwsIGV2ZW50cylcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb290LnBlbmRpbmdKb2luT3BzLnB1c2goW3RoaXMsICgpID0+IHRoaXMuYXBwbHlKb2luUGF0Y2gobGl2ZV9wYXRjaCwgaHRtbCwgZXZlbnRzKV0pXG4gICAgfVxuICB9XG5cbiAgYXR0YWNoVHJ1ZURvY0VsKCl7XG4gICAgdGhpcy5lbCA9IERPTS5ieUlkKHRoaXMuaWQpXG4gICAgdGhpcy5lbC5zZXRBdHRyaWJ1dGUoUEhYX1JPT1RfSUQsIHRoaXMucm9vdC5pZClcbiAgfVxuXG4gIGFwcGx5Sm9pblBhdGNoKGxpdmVfcGF0Y2gsIGh0bWwsIGV2ZW50cyl7XG4gICAgdGhpcy5hdHRhY2hUcnVlRG9jRWwoKVxuICAgIGxldCBwYXRjaCA9IG5ldyBET01QYXRjaCh0aGlzLCB0aGlzLmVsLCB0aGlzLmlkLCBodG1sLCBudWxsKVxuICAgIHBhdGNoLm1hcmtQcnVuYWJsZUNvbnRlbnRGb3JSZW1vdmFsKClcbiAgICB0aGlzLnBlcmZvcm1QYXRjaChwYXRjaCwgZmFsc2UpXG4gICAgdGhpcy5qb2luTmV3Q2hpbGRyZW4oKVxuICAgIERPTS5hbGwodGhpcy5lbCwgYFske3RoaXMuYmluZGluZyhQSFhfSE9PSyl9XSwgW2RhdGEtcGh4LSR7UEhYX0hPT0t9XWAsIGhvb2tFbCA9PiB7XG4gICAgICBsZXQgaG9vayA9IHRoaXMuYWRkSG9vayhob29rRWwpXG4gICAgICBpZihob29rKXsgaG9vay5fX21vdW50ZWQoKSB9XG4gICAgfSlcblxuICAgIHRoaXMuam9pblBlbmRpbmcgPSBmYWxzZVxuICAgIHRoaXMubGl2ZVNvY2tldC5kaXNwYXRjaEV2ZW50cyhldmVudHMpXG4gICAgdGhpcy5hcHBseVBlbmRpbmdVcGRhdGVzKClcblxuICAgIGlmKGxpdmVfcGF0Y2gpe1xuICAgICAgbGV0IHtraW5kLCB0b30gPSBsaXZlX3BhdGNoXG4gICAgICB0aGlzLmxpdmVTb2NrZXQuaGlzdG9yeVBhdGNoKHRvLCBraW5kKVxuICAgIH1cbiAgICB0aGlzLmhpZGVMb2FkZXIoKVxuICAgIGlmKHRoaXMuam9pbkNvdW50ID4gMSl7IHRoaXMudHJpZ2dlclJlY29ubmVjdGVkKCkgfVxuICAgIHRoaXMuc3RvcENhbGxiYWNrKClcbiAgfVxuXG4gIHRyaWdnZXJCZWZvcmVVcGRhdGVIb29rKGZyb21FbCwgdG9FbCl7XG4gICAgdGhpcy5saXZlU29ja2V0LnRyaWdnZXJET00oXCJvbkJlZm9yZUVsVXBkYXRlZFwiLCBbZnJvbUVsLCB0b0VsXSlcbiAgICBsZXQgaG9vayA9IHRoaXMuZ2V0SG9vayhmcm9tRWwpXG4gICAgbGV0IGlzSWdub3JlZCA9IGhvb2sgJiYgRE9NLmlzSWdub3JlZChmcm9tRWwsIHRoaXMuYmluZGluZyhQSFhfVVBEQVRFKSlcbiAgICBpZihob29rICYmICFmcm9tRWwuaXNFcXVhbE5vZGUodG9FbCkgJiYgIShpc0lnbm9yZWQgJiYgaXNFcXVhbE9iaihmcm9tRWwuZGF0YXNldCwgdG9FbC5kYXRhc2V0KSkpe1xuICAgICAgaG9vay5fX2JlZm9yZVVwZGF0ZSgpXG4gICAgICByZXR1cm4gaG9va1xuICAgIH1cbiAgfVxuXG4gIHBlcmZvcm1QYXRjaChwYXRjaCwgcHJ1bmVDaWRzKXtcbiAgICBsZXQgcmVtb3ZlZEVscyA9IFtdXG4gICAgbGV0IHBoeENoaWxkcmVuQWRkZWQgPSBmYWxzZVxuICAgIGxldCB1cGRhdGVkSG9va0lkcyA9IG5ldyBTZXQoKVxuXG4gICAgcGF0Y2guYWZ0ZXIoXCJhZGRlZFwiLCBlbCA9PiB7XG4gICAgICB0aGlzLmxpdmVTb2NrZXQudHJpZ2dlckRPTShcIm9uTm9kZUFkZGVkXCIsIFtlbF0pXG5cbiAgICAgIGxldCBuZXdIb29rID0gdGhpcy5hZGRIb29rKGVsKVxuICAgICAgaWYobmV3SG9vayl7IG5ld0hvb2suX19tb3VudGVkKCkgfVxuICAgIH0pXG5cbiAgICBwYXRjaC5hZnRlcihcInBoeENoaWxkQWRkZWRcIiwgZWwgPT4ge1xuICAgICAgaWYoRE9NLmlzUGh4U3RpY2t5KGVsKSl7XG4gICAgICAgIHRoaXMubGl2ZVNvY2tldC5qb2luUm9vdFZpZXdzKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBoeENoaWxkcmVuQWRkZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcblxuICAgIHBhdGNoLmJlZm9yZShcInVwZGF0ZWRcIiwgKGZyb21FbCwgdG9FbCkgPT4ge1xuICAgICAgbGV0IGhvb2sgPSB0aGlzLnRyaWdnZXJCZWZvcmVVcGRhdGVIb29rKGZyb21FbCwgdG9FbClcbiAgICAgIGlmKGhvb2speyB1cGRhdGVkSG9va0lkcy5hZGQoZnJvbUVsLmlkKSB9XG4gICAgfSlcblxuICAgIHBhdGNoLmFmdGVyKFwidXBkYXRlZFwiLCBlbCA9PiB7XG4gICAgICBpZih1cGRhdGVkSG9va0lkcy5oYXMoZWwuaWQpKXsgdGhpcy5nZXRIb29rKGVsKS5fX3VwZGF0ZWQoKSB9XG4gICAgfSlcblxuICAgIHBhdGNoLmFmdGVyKFwiZGlzY2FyZGVkXCIsIChlbCkgPT4ge1xuICAgICAgaWYoZWwubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKXsgcmVtb3ZlZEVscy5wdXNoKGVsKSB9XG4gICAgfSlcblxuICAgIHBhdGNoLmFmdGVyKFwidHJhbnNpdGlvbnNEaXNjYXJkZWRcIiwgZWxzID0+IHRoaXMuYWZ0ZXJFbGVtZW50c1JlbW92ZWQoZWxzLCBwcnVuZUNpZHMpKVxuICAgIHBhdGNoLnBlcmZvcm0oKVxuICAgIHRoaXMuYWZ0ZXJFbGVtZW50c1JlbW92ZWQocmVtb3ZlZEVscywgcHJ1bmVDaWRzKVxuXG4gICAgcmV0dXJuIHBoeENoaWxkcmVuQWRkZWRcbiAgfVxuXG4gIGFmdGVyRWxlbWVudHNSZW1vdmVkKGVsZW1lbnRzLCBwcnVuZUNpZHMpe1xuICAgIGxldCBkZXN0cm95ZWRDSURzID0gW11cbiAgICBlbGVtZW50cy5mb3JFYWNoKHBhcmVudCA9PiB7XG4gICAgICBsZXQgY29tcG9uZW50cyA9IERPTS5hbGwocGFyZW50LCBgWyR7UEhYX0NPTVBPTkVOVH1dYClcbiAgICAgIGxldCBob29rcyA9IERPTS5hbGwocGFyZW50LCBgWyR7dGhpcy5iaW5kaW5nKFBIWF9IT09LKX1dYClcbiAgICAgIGNvbXBvbmVudHMuY29uY2F0KHBhcmVudCkuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGxldCBjaWQgPSB0aGlzLmNvbXBvbmVudElEKGVsKVxuICAgICAgICBpZihpc0NpZChjaWQpICYmIGRlc3Ryb3llZENJRHMuaW5kZXhPZihjaWQpID09PSAtMSl7IGRlc3Ryb3llZENJRHMucHVzaChjaWQpIH1cbiAgICAgIH0pXG4gICAgICBob29rcy5jb25jYXQocGFyZW50KS5mb3JFYWNoKGhvb2tFbCA9PiB7XG4gICAgICAgIGxldCBob29rID0gdGhpcy5nZXRIb29rKGhvb2tFbClcbiAgICAgICAgaG9vayAmJiB0aGlzLmRlc3Ryb3lIb29rKGhvb2spXG4gICAgICB9KVxuICAgIH0pXG4gICAgLy8gV2Ugc2hvdWxkIG5vdCBwcnVuZUNpZHMgb24gam9pbnMuIE90aGVyd2lzZSwgaW4gY2FzZSBvZlxuICAgIC8vIHJlam9pbnMsIHdlIG1heSBub3RpZnkgY2lkcyB0aGF0IG5vIGxvbmdlciBiZWxvbmcgdG8gdGhlXG4gICAgLy8gY3VycmVudCBMaXZlVmlldyB0byBiZSByZW1vdmVkLlxuICAgIGlmKHBydW5lQ2lkcyl7XG4gICAgICB0aGlzLm1heWJlUHVzaENvbXBvbmVudHNEZXN0cm95ZWQoZGVzdHJveWVkQ0lEcylcbiAgICB9XG4gIH1cblxuICBqb2luTmV3Q2hpbGRyZW4oKXtcbiAgICBET00uZmluZFBoeENoaWxkcmVuKHRoaXMuZWwsIHRoaXMuaWQpLmZvckVhY2goZWwgPT4gdGhpcy5qb2luQ2hpbGQoZWwpKVxuICB9XG5cbiAgZ2V0Q2hpbGRCeUlkKGlkKXsgcmV0dXJuIHRoaXMucm9vdC5jaGlsZHJlblt0aGlzLmlkXVtpZF0gfVxuXG4gIGdldERlc2NlbmRlbnRCeUVsKGVsKXtcbiAgICBpZihlbC5pZCA9PT0gdGhpcy5pZCl7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltlbC5nZXRBdHRyaWJ1dGUoUEhYX1BBUkVOVF9JRCldW2VsLmlkXVxuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3lEZXNjZW5kZW50KGlkKXtcbiAgICBmb3IobGV0IHBhcmVudElkIGluIHRoaXMucm9vdC5jaGlsZHJlbil7XG4gICAgICBmb3IobGV0IGNoaWxkSWQgaW4gdGhpcy5yb290LmNoaWxkcmVuW3BhcmVudElkXSl7XG4gICAgICAgIGlmKGNoaWxkSWQgPT09IGlkKXsgcmV0dXJuIHRoaXMucm9vdC5jaGlsZHJlbltwYXJlbnRJZF1bY2hpbGRJZF0uZGVzdHJveSgpIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBqb2luQ2hpbGQoZWwpe1xuICAgIGxldCBjaGlsZCA9IHRoaXMuZ2V0Q2hpbGRCeUlkKGVsLmlkKVxuICAgIGlmKCFjaGlsZCl7XG4gICAgICBsZXQgdmlldyA9IG5ldyBWaWV3KGVsLCB0aGlzLmxpdmVTb2NrZXQsIHRoaXMpXG4gICAgICB0aGlzLnJvb3QuY2hpbGRyZW5bdGhpcy5pZF1bdmlldy5pZF0gPSB2aWV3XG4gICAgICB2aWV3LmpvaW4oKVxuICAgICAgdGhpcy5jaGlsZEpvaW5zKytcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaXNKb2luUGVuZGluZygpeyByZXR1cm4gdGhpcy5qb2luUGVuZGluZyB9XG5cbiAgYWNrSm9pbihfY2hpbGQpe1xuICAgIHRoaXMuY2hpbGRKb2lucy0tXG5cbiAgICBpZih0aGlzLmNoaWxkSm9pbnMgPT09IDApe1xuICAgICAgaWYodGhpcy5wYXJlbnQpe1xuICAgICAgICB0aGlzLnBhcmVudC5hY2tKb2luKHRoaXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uQWxsQ2hpbGRKb2luc0NvbXBsZXRlKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFsbENoaWxkSm9pbnNDb21wbGV0ZSgpe1xuICAgIHRoaXMuam9pbkNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHRoaXMucGVuZGluZ0pvaW5PcHMuZm9yRWFjaCgoW3ZpZXcsIG9wXSkgPT4ge1xuICAgICAgICBpZighdmlldy5pc0Rlc3Ryb3llZCgpKXsgb3AoKSB9XG4gICAgICB9KVxuICAgICAgdGhpcy5wZW5kaW5nSm9pbk9wcyA9IFtdXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZShkaWZmLCBldmVudHMpe1xuICAgIGlmKHRoaXMuaXNKb2luUGVuZGluZygpIHx8ICh0aGlzLmxpdmVTb2NrZXQuaGFzUGVuZGluZ0xpbmsoKSAmJiAhRE9NLmlzUGh4U3RpY2t5KHRoaXMuZWwpKSl7XG4gICAgICByZXR1cm4gdGhpcy5wZW5kaW5nRGlmZnMucHVzaCh7ZGlmZiwgZXZlbnRzfSlcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVkLm1lcmdlRGlmZihkaWZmKVxuICAgIGxldCBwaHhDaGlsZHJlbkFkZGVkID0gZmFsc2VcblxuICAgIC8vIFdoZW4gdGhlIGRpZmYgb25seSBjb250YWlucyBjb21wb25lbnQgZGlmZnMsIHRoZW4gd2FsayBjb21wb25lbnRzXG4gICAgLy8gYW5kIHBhdGNoIG9ubHkgdGhlIHBhcmVudCBjb21wb25lbnQgY29udGFpbmVycyBmb3VuZCBpbiB0aGUgZGlmZi5cbiAgICAvLyBPdGhlcndpc2UsIHBhdGNoIGVudGlyZSBMViBjb250YWluZXIuXG4gICAgaWYodGhpcy5yZW5kZXJlZC5pc0NvbXBvbmVudE9ubHlEaWZmKGRpZmYpKXtcbiAgICAgIHRoaXMubGl2ZVNvY2tldC50aW1lKFwiY29tcG9uZW50IHBhdGNoIGNvbXBsZXRlXCIsICgpID0+IHtcbiAgICAgICAgbGV0IHBhcmVudENpZHMgPSBET00uZmluZFBhcmVudENJRHModGhpcy5lbCwgdGhpcy5yZW5kZXJlZC5jb21wb25lbnRDSURzKGRpZmYpKVxuICAgICAgICBwYXJlbnRDaWRzLmZvckVhY2gocGFyZW50Q0lEID0+IHtcbiAgICAgICAgICBpZih0aGlzLmNvbXBvbmVudFBhdGNoKHRoaXMucmVuZGVyZWQuZ2V0Q29tcG9uZW50KGRpZmYsIHBhcmVudENJRCksIHBhcmVudENJRCkpeyBwaHhDaGlsZHJlbkFkZGVkID0gdHJ1ZSB9XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZighaXNFbXB0eShkaWZmKSl7XG4gICAgICB0aGlzLmxpdmVTb2NrZXQudGltZShcImZ1bGwgcGF0Y2ggY29tcGxldGVcIiwgKCkgPT4ge1xuICAgICAgICBsZXQgaHRtbCA9IHRoaXMucmVuZGVyQ29udGFpbmVyKGRpZmYsIFwidXBkYXRlXCIpXG4gICAgICAgIGxldCBwYXRjaCA9IG5ldyBET01QYXRjaCh0aGlzLCB0aGlzLmVsLCB0aGlzLmlkLCBodG1sLCBudWxsKVxuICAgICAgICBwaHhDaGlsZHJlbkFkZGVkID0gdGhpcy5wZXJmb3JtUGF0Y2gocGF0Y2gsIHRydWUpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHRoaXMubGl2ZVNvY2tldC5kaXNwYXRjaEV2ZW50cyhldmVudHMpXG4gICAgaWYocGh4Q2hpbGRyZW5BZGRlZCl7IHRoaXMuam9pbk5ld0NoaWxkcmVuKCkgfVxuICB9XG5cbiAgcmVuZGVyQ29udGFpbmVyKGRpZmYsIGtpbmQpe1xuICAgIHJldHVybiB0aGlzLmxpdmVTb2NrZXQudGltZShgdG9TdHJpbmcgZGlmZiAoJHtraW5kfSlgLCAoKSA9PiB7XG4gICAgICBsZXQgdGFnID0gdGhpcy5lbC50YWdOYW1lXG4gICAgICAvLyBEb24ndCBza2lwIGFueSBjb21wb25lbnQgaW4gdGhlIGRpZmYgbm9yIGFueSBtYXJrZWQgYXMgcHJ1bmVkXG4gICAgICAvLyAoYXMgdGhleSBtYXkgaGF2ZSBiZWVuIGFkZGVkIGJhY2spXG4gICAgICBsZXQgY2lkcyA9IGRpZmYgPyB0aGlzLnJlbmRlcmVkLmNvbXBvbmVudENJRHMoZGlmZikuY29uY2F0KHRoaXMucHJ1bmluZ0NJRHMpIDogbnVsbFxuICAgICAgbGV0IGh0bWwgPSB0aGlzLnJlbmRlcmVkLnRvU3RyaW5nKGNpZHMpXG4gICAgICByZXR1cm4gYDwke3RhZ30+JHtodG1sfTwvJHt0YWd9PmBcbiAgICB9KVxuICB9XG5cbiAgY29tcG9uZW50UGF0Y2goZGlmZiwgY2lkKXtcbiAgICBpZihpc0VtcHR5KGRpZmYpKSByZXR1cm4gZmFsc2VcbiAgICBsZXQgaHRtbCA9IHRoaXMucmVuZGVyZWQuY29tcG9uZW50VG9TdHJpbmcoY2lkKVxuICAgIGxldCBwYXRjaCA9IG5ldyBET01QYXRjaCh0aGlzLCB0aGlzLmVsLCB0aGlzLmlkLCBodG1sLCBjaWQpXG4gICAgbGV0IGNoaWxkcmVuQWRkZWQgPSB0aGlzLnBlcmZvcm1QYXRjaChwYXRjaCwgdHJ1ZSlcbiAgICByZXR1cm4gY2hpbGRyZW5BZGRlZFxuICB9XG5cbiAgZ2V0SG9vayhlbCl7IHJldHVybiB0aGlzLnZpZXdIb29rc1tWaWV3SG9vay5lbGVtZW50SUQoZWwpXSB9XG5cbiAgYWRkSG9vayhlbCl7XG4gICAgaWYoVmlld0hvb2suZWxlbWVudElEKGVsKSB8fCAhZWwuZ2V0QXR0cmlidXRlKXsgcmV0dXJuIH1cbiAgICBsZXQgaG9va05hbWUgPSBlbC5nZXRBdHRyaWJ1dGUoYGRhdGEtcGh4LSR7UEhYX0hPT0t9YCkgfHwgZWwuZ2V0QXR0cmlidXRlKHRoaXMuYmluZGluZyhQSFhfSE9PSykpXG4gICAgaWYoaG9va05hbWUgJiYgIXRoaXMub3duc0VsZW1lbnQoZWwpKXsgcmV0dXJuIH1cbiAgICBsZXQgY2FsbGJhY2tzID0gdGhpcy5saXZlU29ja2V0LmdldEhvb2tDYWxsYmFja3MoaG9va05hbWUpXG5cbiAgICBpZihjYWxsYmFja3Mpe1xuICAgICAgaWYoIWVsLmlkKXsgbG9nRXJyb3IoYG5vIERPTSBJRCBmb3IgaG9vayBcIiR7aG9va05hbWV9XCIuIEhvb2tzIHJlcXVpcmUgYSB1bmlxdWUgSUQgb24gZWFjaCBlbGVtZW50LmAsIGVsKSB9XG4gICAgICBsZXQgaG9vayA9IG5ldyBWaWV3SG9vayh0aGlzLCBlbCwgY2FsbGJhY2tzKVxuICAgICAgdGhpcy52aWV3SG9va3NbVmlld0hvb2suZWxlbWVudElEKGhvb2suZWwpXSA9IGhvb2tcbiAgICAgIHJldHVybiBob29rXG4gICAgfSBlbHNlIGlmKGhvb2tOYW1lICE9PSBudWxsKXtcbiAgICAgIGxvZ0Vycm9yKGB1bmtub3duIGhvb2sgZm91bmQgZm9yIFwiJHtob29rTmFtZX1cImAsIGVsKVxuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3lIb29rKGhvb2spe1xuICAgIGhvb2suX19kZXN0cm95ZWQoKVxuICAgIGhvb2suX19jbGVhbnVwX18oKVxuICAgIGRlbGV0ZSB0aGlzLnZpZXdIb29rc1tWaWV3SG9vay5lbGVtZW50SUQoaG9vay5lbCldXG4gIH1cblxuICBhcHBseVBlbmRpbmdVcGRhdGVzKCl7XG4gICAgdGhpcy5wZW5kaW5nRGlmZnMuZm9yRWFjaCgoe2RpZmYsIGV2ZW50c30pID0+IHRoaXMudXBkYXRlKGRpZmYsIGV2ZW50cykpXG4gICAgdGhpcy5wZW5kaW5nRGlmZnMgPSBbXVxuICB9XG5cbiAgb25DaGFubmVsKGV2ZW50LCBjYil7XG4gICAgdGhpcy5saXZlU29ja2V0Lm9uQ2hhbm5lbCh0aGlzLmNoYW5uZWwsIGV2ZW50LCByZXNwID0+IHtcbiAgICAgIGlmKHRoaXMuaXNKb2luUGVuZGluZygpKXtcbiAgICAgICAgdGhpcy5yb290LnBlbmRpbmdKb2luT3BzLnB1c2goW3RoaXMsICgpID0+IGNiKHJlc3ApXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGl2ZVNvY2tldC5yZXF1ZXN0RE9NVXBkYXRlKCgpID0+IGNiKHJlc3ApKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBiaW5kQ2hhbm5lbCgpe1xuICAgIC8vIFRoZSBkaWZmIGV2ZW50IHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSByZWd1bGFyIHVwZGF0ZSBvcGVyYXRpb25zLlxuICAgIC8vIEFsbCBvdGhlciBvcGVyYXRpb25zIGFyZSBxdWV1ZWQgdG8gYmUgYXBwbGllZCBvbmx5IGFmdGVyIGpvaW4uXG4gICAgdGhpcy5saXZlU29ja2V0Lm9uQ2hhbm5lbCh0aGlzLmNoYW5uZWwsIFwiZGlmZlwiLCAocmF3RGlmZikgPT4ge1xuICAgICAgdGhpcy5saXZlU29ja2V0LnJlcXVlc3RET01VcGRhdGUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFwcGx5RGlmZihcInVwZGF0ZVwiLCByYXdEaWZmLCAoe2RpZmYsIGV2ZW50c30pID0+IHRoaXMudXBkYXRlKGRpZmYsIGV2ZW50cykpXG4gICAgICB9KVxuICAgIH0pXG4gICAgdGhpcy5vbkNoYW5uZWwoXCJyZWRpcmVjdFwiLCAoe3RvLCBmbGFzaH0pID0+IHRoaXMub25SZWRpcmVjdCh7dG8sIGZsYXNofSkpXG4gICAgdGhpcy5vbkNoYW5uZWwoXCJsaXZlX3BhdGNoXCIsIChyZWRpcikgPT4gdGhpcy5vbkxpdmVQYXRjaChyZWRpcikpXG4gICAgdGhpcy5vbkNoYW5uZWwoXCJsaXZlX3JlZGlyZWN0XCIsIChyZWRpcikgPT4gdGhpcy5vbkxpdmVSZWRpcmVjdChyZWRpcikpXG4gICAgdGhpcy5jaGFubmVsLm9uRXJyb3IocmVhc29uID0+IHRoaXMub25FcnJvcihyZWFzb24pKVxuICAgIHRoaXMuY2hhbm5lbC5vbkNsb3NlKHJlYXNvbiA9PiB0aGlzLm9uQ2xvc2UocmVhc29uKSlcbiAgfVxuXG4gIGRlc3Ryb3lBbGxDaGlsZHJlbigpe1xuICAgIGZvcihsZXQgaWQgaW4gdGhpcy5yb290LmNoaWxkcmVuW3RoaXMuaWRdKXtcbiAgICAgIHRoaXMuZ2V0Q2hpbGRCeUlkKGlkKS5kZXN0cm95KClcbiAgICB9XG4gIH1cblxuICBvbkxpdmVSZWRpcmVjdChyZWRpcil7XG4gICAgbGV0IHt0bywga2luZCwgZmxhc2h9ID0gcmVkaXJcbiAgICBsZXQgdXJsID0gdGhpcy5leHBhbmRVUkwodG8pXG4gICAgdGhpcy5saXZlU29ja2V0Lmhpc3RvcnlSZWRpcmVjdCh1cmwsIGtpbmQsIGZsYXNoKVxuICB9XG5cbiAgb25MaXZlUGF0Y2gocmVkaXIpe1xuICAgIGxldCB7dG8sIGtpbmR9ID0gcmVkaXJcbiAgICB0aGlzLmhyZWYgPSB0aGlzLmV4cGFuZFVSTCh0bylcbiAgICB0aGlzLmxpdmVTb2NrZXQuaGlzdG9yeVBhdGNoKHRvLCBraW5kKVxuICB9XG5cbiAgZXhwYW5kVVJMKHRvKXtcbiAgICByZXR1cm4gdG8uc3RhcnRzV2l0aChcIi9cIikgPyBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0fSR7dG99YCA6IHRvXG4gIH1cblxuICBvblJlZGlyZWN0KHt0bywgZmxhc2h9KXsgdGhpcy5saXZlU29ja2V0LnJlZGlyZWN0KHRvLCBmbGFzaCkgfVxuXG4gIGlzRGVzdHJveWVkKCl7IHJldHVybiB0aGlzLmRlc3Ryb3llZCB9XG5cbiAgam9pbihjYWxsYmFjayl7XG4gICAgaWYodGhpcy5pc01haW4oKSl7XG4gICAgICB0aGlzLnN0b3BDYWxsYmFjayA9IHRoaXMubGl2ZVNvY2tldC53aXRoUGFnZUxvYWRpbmcoe3RvOiB0aGlzLmhyZWYsIGtpbmQ6IFwiaW5pdGlhbFwifSlcbiAgICB9XG4gICAgdGhpcy5qb2luQ2FsbGJhY2sgPSAob25Eb25lKSA9PiB7XG4gICAgICBvbkRvbmUgPSBvbkRvbmUgfHwgZnVuY3Rpb24oKXt9XG4gICAgICBjYWxsYmFjayA/IGNhbGxiYWNrKHRoaXMuam9pbkNvdW50LCBvbkRvbmUpIDogb25Eb25lKClcbiAgICB9XG4gICAgdGhpcy5saXZlU29ja2V0LndyYXBQdXNoKHRoaXMsIHt0aW1lb3V0OiBmYWxzZX0sICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNoYW5uZWwuam9pbigpXG4gICAgICAgIC5yZWNlaXZlKFwib2tcIiwgZGF0YSA9PiB7XG4gICAgICAgICAgaWYoIXRoaXMuaXNEZXN0cm95ZWQoKSl7XG4gICAgICAgICAgICB0aGlzLmxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB0aGlzLm9uSm9pbihkYXRhKSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5yZWNlaXZlKFwiZXJyb3JcIiwgcmVzcCA9PiAhdGhpcy5pc0Rlc3Ryb3llZCgpICYmIHRoaXMub25Kb2luRXJyb3IocmVzcCkpXG4gICAgICAgIC5yZWNlaXZlKFwidGltZW91dFwiLCAoKSA9PiAhdGhpcy5pc0Rlc3Ryb3llZCgpICYmIHRoaXMub25Kb2luRXJyb3Ioe3JlYXNvbjogXCJ0aW1lb3V0XCJ9KSlcbiAgICB9KVxuICB9XG5cbiAgb25Kb2luRXJyb3IocmVzcCl7XG4gICAgaWYocmVzcC5yZWFzb24gPT09IFwidW5hdXRob3JpemVkXCIgfHwgcmVzcC5yZWFzb24gPT09IFwic3RhbGVcIil7XG4gICAgICB0aGlzLmxvZyhcImVycm9yXCIsICgpID0+IFtcInVuYXV0aG9yaXplZCBsaXZlX3JlZGlyZWN0LiBGYWxsaW5nIGJhY2sgdG8gcGFnZSByZXF1ZXN0XCIsIHJlc3BdKVxuICAgICAgcmV0dXJuIHRoaXMub25SZWRpcmVjdCh7dG86IHRoaXMuaHJlZn0pXG4gICAgfVxuICAgIGlmKHJlc3AucmVkaXJlY3QgfHwgcmVzcC5saXZlX3JlZGlyZWN0KXtcbiAgICAgIHRoaXMuam9pblBlbmRpbmcgPSBmYWxzZVxuICAgICAgdGhpcy5jaGFubmVsLmxlYXZlKClcbiAgICB9XG4gICAgaWYocmVzcC5yZWRpcmVjdCl7IHJldHVybiB0aGlzLm9uUmVkaXJlY3QocmVzcC5yZWRpcmVjdCkgfVxuICAgIGlmKHJlc3AubGl2ZV9yZWRpcmVjdCl7IHJldHVybiB0aGlzLm9uTGl2ZVJlZGlyZWN0KHJlc3AubGl2ZV9yZWRpcmVjdCkgfVxuICAgIHRoaXMubG9nKFwiZXJyb3JcIiwgKCkgPT4gW1widW5hYmxlIHRvIGpvaW5cIiwgcmVzcF0pXG4gICAgaWYodGhpcy5saXZlU29ja2V0LmlzQ29ubmVjdGVkKCkpeyB0aGlzLmxpdmVTb2NrZXQucmVsb2FkV2l0aEppdHRlcih0aGlzKSB9XG4gIH1cblxuICBvbkNsb3NlKHJlYXNvbil7XG4gICAgaWYodGhpcy5pc0Rlc3Ryb3llZCgpKXsgcmV0dXJuIH1cbiAgICBpZih0aGlzLmxpdmVTb2NrZXQuaGFzUGVuZGluZ0xpbmsoKSAmJiByZWFzb24gIT09IFwibGVhdmVcIil7XG4gICAgICByZXR1cm4gdGhpcy5saXZlU29ja2V0LnJlbG9hZFdpdGhKaXR0ZXIodGhpcylcbiAgICB9XG4gICAgdGhpcy5kZXN0cm95QWxsQ2hpbGRyZW4oKVxuICAgIHRoaXMubGl2ZVNvY2tldC5kcm9wQWN0aXZlRWxlbWVudCh0aGlzKVxuICAgIC8vIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgY2FuIGJlIG51bGwgaW4gSW50ZXJuZXQgRXhwbG9yZXIgMTFcbiAgICBpZihkb2N1bWVudC5hY3RpdmVFbGVtZW50KXsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCkgfVxuICAgIGlmKHRoaXMubGl2ZVNvY2tldC5pc1VubG9hZGVkKCkpe1xuICAgICAgdGhpcy5zaG93TG9hZGVyKEJFRk9SRV9VTkxPQURfTE9BREVSX1RJTUVPVVQpXG4gICAgfVxuICB9XG5cbiAgb25FcnJvcihyZWFzb24pe1xuICAgIHRoaXMub25DbG9zZShyZWFzb24pXG4gICAgaWYodGhpcy5saXZlU29ja2V0LmlzQ29ubmVjdGVkKCkpeyB0aGlzLmxvZyhcImVycm9yXCIsICgpID0+IFtcInZpZXcgY3Jhc2hlZFwiLCByZWFzb25dKSB9XG4gICAgaWYoIXRoaXMubGl2ZVNvY2tldC5pc1VubG9hZGVkKCkpeyB0aGlzLmRpc3BsYXlFcnJvcigpIH1cbiAgfVxuXG4gIGRpc3BsYXlFcnJvcigpe1xuICAgIGlmKHRoaXMuaXNNYWluKCkpeyBET00uZGlzcGF0Y2hFdmVudCh3aW5kb3csIFwicGh4OnBhZ2UtbG9hZGluZy1zdGFydFwiLCB7ZGV0YWlsOiB7dG86IHRoaXMuaHJlZiwga2luZDogXCJlcnJvclwifX0pIH1cbiAgICB0aGlzLnNob3dMb2FkZXIoKVxuICAgIHRoaXMuc2V0Q29udGFpbmVyQ2xhc3NlcyhQSFhfRElTQ09OTkVDVEVEX0NMQVNTLCBQSFhfRVJST1JfQ0xBU1MpXG4gIH1cblxuICBwdXNoV2l0aFJlcGx5KHJlZkdlbmVyYXRvciwgZXZlbnQsIHBheWxvYWQsIG9uUmVwbHkgPSBmdW5jdGlvbiAoKXsgfSl7XG4gICAgaWYoIXRoaXMuaXNDb25uZWN0ZWQoKSl7IHJldHVybiB9XG5cbiAgICBsZXQgW3JlZiwgW2VsXSwgb3B0c10gPSByZWZHZW5lcmF0b3IgPyByZWZHZW5lcmF0b3IoKSA6IFtudWxsLCBbXSwge31dXG4gICAgbGV0IG9uTG9hZGluZ0RvbmUgPSBmdW5jdGlvbigpeyB9XG4gICAgaWYob3B0cy5wYWdlX2xvYWRpbmcgfHwgKGVsICYmIChlbC5nZXRBdHRyaWJ1dGUodGhpcy5iaW5kaW5nKFBIWF9QQUdFX0xPQURJTkcpKSAhPT0gbnVsbCkpKXtcbiAgICAgIG9uTG9hZGluZ0RvbmUgPSB0aGlzLmxpdmVTb2NrZXQud2l0aFBhZ2VMb2FkaW5nKHtraW5kOiBcImVsZW1lbnRcIiwgdGFyZ2V0OiBlbH0pXG4gICAgfVxuXG4gICAgaWYodHlwZW9mIChwYXlsb2FkLmNpZCkgIT09IFwibnVtYmVyXCIpeyBkZWxldGUgcGF5bG9hZC5jaWQgfVxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmxpdmVTb2NrZXQud3JhcFB1c2godGhpcywge3RpbWVvdXQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5uZWwucHVzaChldmVudCwgcGF5bG9hZCwgUFVTSF9USU1FT1VUKS5yZWNlaXZlKFwib2tcIiwgcmVzcCA9PiB7XG4gICAgICAgICAgaWYocmVmICE9PSBudWxsKXsgdGhpcy51bmRvUmVmcyhyZWYpIH1cbiAgICAgICAgICBsZXQgZmluaXNoID0gKGhvb2tSZXBseSkgPT4ge1xuICAgICAgICAgICAgaWYocmVzcC5yZWRpcmVjdCl7IHRoaXMub25SZWRpcmVjdChyZXNwLnJlZGlyZWN0KSB9XG4gICAgICAgICAgICBpZihyZXNwLmxpdmVfcGF0Y2gpeyB0aGlzLm9uTGl2ZVBhdGNoKHJlc3AubGl2ZV9wYXRjaCkgfVxuICAgICAgICAgICAgaWYocmVzcC5saXZlX3JlZGlyZWN0KXsgdGhpcy5vbkxpdmVSZWRpcmVjdChyZXNwLmxpdmVfcmVkaXJlY3QpIH1cbiAgICAgICAgICAgIG9uTG9hZGluZ0RvbmUoKVxuICAgICAgICAgICAgb25SZXBseShyZXNwLCBob29rUmVwbHkpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKHJlc3AuZGlmZil7XG4gICAgICAgICAgICB0aGlzLmxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCBob29rUmVwbHkgPSB0aGlzLmFwcGx5RGlmZihcInVwZGF0ZVwiLCByZXNwLmRpZmYsICh7ZGlmZiwgZXZlbnRzfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlKGRpZmYsIGV2ZW50cylcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgZmluaXNoKGhvb2tSZXBseSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbmlzaChudWxsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgdW5kb1JlZnMocmVmKXtcbiAgICBET00uYWxsKGRvY3VtZW50LCBgWyR7UEhYX1JFRl9TUkN9PVwiJHt0aGlzLmlkfVwiXVske1BIWF9SRUZ9PVwiJHtyZWZ9XCJdYCwgZWwgPT4ge1xuICAgICAgbGV0IGRpc2FibGVkVmFsID0gZWwuZ2V0QXR0cmlidXRlKFBIWF9ESVNBQkxFRClcbiAgICAgIC8vIHJlbW92ZSByZWZzXG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX1JFRilcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShQSFhfUkVGX1NSQylcbiAgICAgIC8vIHJlc3RvcmUgaW5wdXRzXG4gICAgICBpZihlbC5nZXRBdHRyaWJ1dGUoUEhYX1JFQURPTkxZKSAhPT0gbnVsbCl7XG4gICAgICAgIGVsLnJlYWRPbmx5ID0gZmFsc2VcbiAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKFBIWF9SRUFET05MWSlcbiAgICAgIH1cbiAgICAgIGlmKGRpc2FibGVkVmFsICE9PSBudWxsKXtcbiAgICAgICAgZWwuZGlzYWJsZWQgPSBkaXNhYmxlZFZhbCA9PT0gXCJ0cnVlXCIgPyB0cnVlIDogZmFsc2VcbiAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKFBIWF9ESVNBQkxFRClcbiAgICAgIH1cbiAgICAgIC8vIHJlbW92ZSBjbGFzc2VzXG4gICAgICBQSFhfRVZFTlRfQ0xBU1NFUy5mb3JFYWNoKGNsYXNzTmFtZSA9PiBET00ucmVtb3ZlQ2xhc3MoZWwsIGNsYXNzTmFtZSkpXG4gICAgICAvLyByZXN0b3JlIGRpc2FibGVzXG4gICAgICBsZXQgZGlzYWJsZVJlc3RvcmUgPSBlbC5nZXRBdHRyaWJ1dGUoUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFKVxuICAgICAgaWYoZGlzYWJsZVJlc3RvcmUgIT09IG51bGwpe1xuICAgICAgICBlbC5pbm5lclRleHQgPSBkaXNhYmxlUmVzdG9yZVxuICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFKVxuICAgICAgfVxuICAgICAgbGV0IHRvRWwgPSBET00ucHJpdmF0ZShlbCwgUEhYX1JFRilcbiAgICAgIGlmKHRvRWwpe1xuICAgICAgICBsZXQgaG9vayA9IHRoaXMudHJpZ2dlckJlZm9yZVVwZGF0ZUhvb2soZWwsIHRvRWwpXG4gICAgICAgIERPTVBhdGNoLnBhdGNoRWwoZWwsIHRvRWwsIHRoaXMubGl2ZVNvY2tldC5nZXRBY3RpdmVFbGVtZW50KCkpXG4gICAgICAgIGlmKGhvb2speyBob29rLl9fdXBkYXRlZCgpIH1cbiAgICAgICAgRE9NLmRlbGV0ZVByaXZhdGUoZWwsIFBIWF9SRUYpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHB1dFJlZihlbGVtZW50cywgZXZlbnQsIG9wdHMgPSB7fSl7XG4gICAgbGV0IG5ld1JlZiA9IHRoaXMucmVmKytcbiAgICBsZXQgZGlzYWJsZVdpdGggPSB0aGlzLmJpbmRpbmcoUEhYX0RJU0FCTEVfV0lUSClcbiAgICBpZihvcHRzLmxvYWRpbmcpeyBlbGVtZW50cyA9IGVsZW1lbnRzLmNvbmNhdChET00uYWxsKGRvY3VtZW50LCBvcHRzLmxvYWRpbmcpKX1cblxuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgZWwuY2xhc3NMaXN0LmFkZChgcGh4LSR7ZXZlbnR9LWxvYWRpbmdgKVxuICAgICAgZWwuc2V0QXR0cmlidXRlKFBIWF9SRUYsIG5ld1JlZilcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShQSFhfUkVGX1NSQywgdGhpcy5lbC5pZClcbiAgICAgIGxldCBkaXNhYmxlVGV4dCA9IGVsLmdldEF0dHJpYnV0ZShkaXNhYmxlV2l0aClcbiAgICAgIGlmKGRpc2FibGVUZXh0ICE9PSBudWxsKXtcbiAgICAgICAgaWYoIWVsLmdldEF0dHJpYnV0ZShQSFhfRElTQUJMRV9XSVRIX1JFU1RPUkUpKXtcbiAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoUEhYX0RJU0FCTEVfV0lUSF9SRVNUT1JFLCBlbC5pbm5lclRleHQpXG4gICAgICAgIH1cbiAgICAgICAgaWYoZGlzYWJsZVRleHQgIT09IFwiXCIpeyBlbC5pbm5lclRleHQgPSBkaXNhYmxlVGV4dCB9XG4gICAgICAgIGVsLnNldEF0dHJpYnV0ZShcImRpc2FibGVkXCIsIFwiXCIpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gW25ld1JlZiwgZWxlbWVudHMsIG9wdHNdXG4gIH1cblxuICBjb21wb25lbnRJRChlbCl7XG4gICAgbGV0IGNpZCA9IGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUoUEhYX0NPTVBPTkVOVClcbiAgICByZXR1cm4gY2lkID8gcGFyc2VJbnQoY2lkKSA6IG51bGxcbiAgfVxuXG4gIHRhcmdldENvbXBvbmVudElEKHRhcmdldCwgdGFyZ2V0Q3R4LCBvcHRzID0ge30pe1xuICAgIGlmKGlzQ2lkKHRhcmdldEN0eCkpeyByZXR1cm4gdGFyZ2V0Q3R4IH1cblxuICAgIGxldCBjaWRPclNlbGVjdG9yID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoXCJ0YXJnZXRcIikpXG4gICAgaWYoaXNDaWQoY2lkT3JTZWxlY3Rvcikpe1xuICAgICAgcmV0dXJuIHBhcnNlSW50KGNpZE9yU2VsZWN0b3IpXG4gICAgfSBlbHNlIGlmKHRhcmdldEN0eCAmJiAoY2lkT3JTZWxlY3RvciAhPT0gbnVsbCB8fCBvcHRzLnRhcmdldCkpe1xuICAgICAgcmV0dXJuIHRoaXMuY2xvc2VzdENvbXBvbmVudElEKHRhcmdldEN0eClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBjbG9zZXN0Q29tcG9uZW50SUQodGFyZ2V0Q3R4KXtcbiAgICBpZihpc0NpZCh0YXJnZXRDdHgpKXtcbiAgICAgIHJldHVybiB0YXJnZXRDdHhcbiAgICB9IGVsc2UgaWYodGFyZ2V0Q3R4KXtcbiAgICAgIHJldHVybiBtYXliZSh0YXJnZXRDdHguY2xvc2VzdChgWyR7UEhYX0NPTVBPTkVOVH1dYCksIGVsID0+IHRoaXMub3duc0VsZW1lbnQoZWwpICYmIHRoaXMuY29tcG9uZW50SUQoZWwpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHB1c2hIb29rRXZlbnQodGFyZ2V0Q3R4LCBldmVudCwgcGF5bG9hZCwgb25SZXBseSl7XG4gICAgaWYoIXRoaXMuaXNDb25uZWN0ZWQoKSl7XG4gICAgICB0aGlzLmxvZyhcImhvb2tcIiwgKCkgPT4gW1widW5hYmxlIHRvIHB1c2ggaG9vayBldmVudC4gTGl2ZVZpZXcgbm90IGNvbm5lY3RlZFwiLCBldmVudCwgcGF5bG9hZF0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgbGV0IFtyZWYsIGVscywgb3B0c10gPSB0aGlzLnB1dFJlZihbXSwgXCJob29rXCIpXG4gICAgdGhpcy5wdXNoV2l0aFJlcGx5KCgpID0+IFtyZWYsIGVscywgb3B0c10sIFwiZXZlbnRcIiwge1xuICAgICAgdHlwZTogXCJob29rXCIsXG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICB2YWx1ZTogcGF5bG9hZCxcbiAgICAgIGNpZDogdGhpcy5jbG9zZXN0Q29tcG9uZW50SUQodGFyZ2V0Q3R4KVxuICAgIH0sIChyZXNwLCByZXBseSkgPT4gb25SZXBseShyZXBseSwgcmVmKSlcblxuICAgIHJldHVybiByZWZcbiAgfVxuXG4gIGV4dHJhY3RNZXRhKGVsLCBtZXRhLCB2YWx1ZSl7XG4gICAgbGV0IHByZWZpeCA9IHRoaXMuYmluZGluZyhcInZhbHVlLVwiKVxuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBlbC5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmKCFtZXRhKXsgbWV0YSA9IHt9IH1cbiAgICAgIGxldCBuYW1lID0gZWwuYXR0cmlidXRlc1tpXS5uYW1lXG4gICAgICBpZihuYW1lLnN0YXJ0c1dpdGgocHJlZml4KSl7IG1ldGFbbmFtZS5yZXBsYWNlKHByZWZpeCwgXCJcIildID0gZWwuZ2V0QXR0cmlidXRlKG5hbWUpIH1cbiAgICB9XG4gICAgaWYoZWwudmFsdWUgIT09IHVuZGVmaW5lZCl7XG4gICAgICBpZighbWV0YSl7IG1ldGEgPSB7fSB9XG4gICAgICBtZXRhLnZhbHVlID0gZWwudmFsdWVcblxuICAgICAgaWYoZWwudGFnTmFtZSA9PT0gXCJJTlBVVFwiICYmIENIRUNLQUJMRV9JTlBVVFMuaW5kZXhPZihlbC50eXBlKSA+PSAwICYmICFlbC5jaGVja2VkKXtcbiAgICAgICAgZGVsZXRlIG1ldGEudmFsdWVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYodmFsdWUpe1xuICAgICAgaWYoIW1ldGEpeyBtZXRhID0ge30gfVxuICAgICAgZm9yKGxldCBrZXkgaW4gdmFsdWUpeyBtZXRhW2tleV0gPSB2YWx1ZVtrZXldIH1cbiAgICB9XG4gICAgcmV0dXJuIG1ldGFcbiAgfVxuXG4gIHB1c2hFdmVudCh0eXBlLCBlbCwgdGFyZ2V0Q3R4LCBwaHhFdmVudCwgbWV0YSwgb3B0cyA9IHt9KXtcbiAgICB0aGlzLnB1c2hXaXRoUmVwbHkoKCkgPT4gdGhpcy5wdXRSZWYoW2VsXSwgdHlwZSwgb3B0cyksIFwiZXZlbnRcIiwge1xuICAgICAgdHlwZTogdHlwZSxcbiAgICAgIGV2ZW50OiBwaHhFdmVudCxcbiAgICAgIHZhbHVlOiB0aGlzLmV4dHJhY3RNZXRhKGVsLCBtZXRhLCBvcHRzLnZhbHVlKSxcbiAgICAgIGNpZDogdGhpcy50YXJnZXRDb21wb25lbnRJRChlbCwgdGFyZ2V0Q3R4LCBvcHRzKVxuICAgIH0pXG4gIH1cblxuICBwdXNoRmlsZVByb2dyZXNzKGZpbGVFbCwgZW50cnlSZWYsIHByb2dyZXNzLCBvblJlcGx5ID0gZnVuY3Rpb24gKCl7IH0pe1xuICAgIHRoaXMubGl2ZVNvY2tldC53aXRoaW5Pd25lcnMoZmlsZUVsLmZvcm0sICh2aWV3LCB0YXJnZXRDdHgpID0+IHtcbiAgICAgIHZpZXcucHVzaFdpdGhSZXBseShudWxsLCBcInByb2dyZXNzXCIsIHtcbiAgICAgICAgZXZlbnQ6IGZpbGVFbC5nZXRBdHRyaWJ1dGUodmlldy5iaW5kaW5nKFBIWF9QUk9HUkVTUykpLFxuICAgICAgICByZWY6IGZpbGVFbC5nZXRBdHRyaWJ1dGUoUEhYX1VQTE9BRF9SRUYpLFxuICAgICAgICBlbnRyeV9yZWY6IGVudHJ5UmVmLFxuICAgICAgICBwcm9ncmVzczogcHJvZ3Jlc3MsXG4gICAgICAgIGNpZDogdmlldy50YXJnZXRDb21wb25lbnRJRChmaWxlRWwuZm9ybSwgdGFyZ2V0Q3R4KVxuICAgICAgfSwgb25SZXBseSlcbiAgICB9KVxuICB9XG5cbiAgcHVzaElucHV0KGlucHV0RWwsIHRhcmdldEN0eCwgZm9yY2VDaWQsIHBoeEV2ZW50LCBvcHRzLCBjYWxsYmFjayl7XG4gICAgbGV0IHVwbG9hZHNcbiAgICBsZXQgY2lkID0gaXNDaWQoZm9yY2VDaWQpID8gZm9yY2VDaWQgOiB0aGlzLnRhcmdldENvbXBvbmVudElEKGlucHV0RWwuZm9ybSwgdGFyZ2V0Q3R4KVxuICAgIGxldCByZWZHZW5lcmF0b3IgPSAoKSA9PiB0aGlzLnB1dFJlZihbaW5wdXRFbCwgaW5wdXRFbC5mb3JtXSwgXCJjaGFuZ2VcIiwgb3B0cylcbiAgICBsZXQgZm9ybURhdGFcbiAgICBpZihpbnB1dEVsLmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoXCJjaGFuZ2VcIikpKXtcbiAgICAgIGZvcm1EYXRhID0gc2VyaWFsaXplRm9ybShpbnB1dEVsLmZvcm0sIHtfdGFyZ2V0OiBvcHRzLl90YXJnZXR9LCBbaW5wdXRFbC5uYW1lXSlcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybURhdGEgPSBzZXJpYWxpemVGb3JtKGlucHV0RWwuZm9ybSwge190YXJnZXQ6IG9wdHMuX3RhcmdldH0pXG4gICAgfVxuICAgIGlmKERPTS5pc1VwbG9hZElucHV0KGlucHV0RWwpICYmIGlucHV0RWwuZmlsZXMgJiYgaW5wdXRFbC5maWxlcy5sZW5ndGggPiAwKXtcbiAgICAgIExpdmVVcGxvYWRlci50cmFja0ZpbGVzKGlucHV0RWwsIEFycmF5LmZyb20oaW5wdXRFbC5maWxlcykpXG4gICAgfVxuICAgIHVwbG9hZHMgPSBMaXZlVXBsb2FkZXIuc2VyaWFsaXplVXBsb2FkcyhpbnB1dEVsKVxuICAgIGxldCBldmVudCA9IHtcbiAgICAgIHR5cGU6IFwiZm9ybVwiLFxuICAgICAgZXZlbnQ6IHBoeEV2ZW50LFxuICAgICAgdmFsdWU6IGZvcm1EYXRhLFxuICAgICAgdXBsb2FkczogdXBsb2FkcyxcbiAgICAgIGNpZDogY2lkXG4gICAgfVxuICAgIHRoaXMucHVzaFdpdGhSZXBseShyZWZHZW5lcmF0b3IsIFwiZXZlbnRcIiwgZXZlbnQsIHJlc3AgPT4ge1xuICAgICAgRE9NLnNob3dFcnJvcihpbnB1dEVsLCB0aGlzLmxpdmVTb2NrZXQuYmluZGluZyhQSFhfRkVFREJBQ0tfRk9SKSlcbiAgICAgIGlmKERPTS5pc1VwbG9hZElucHV0KGlucHV0RWwpICYmIGlucHV0RWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1waHgtYXV0by11cGxvYWRcIikgIT09IG51bGwpe1xuICAgICAgICBpZihMaXZlVXBsb2FkZXIuZmlsZXNBd2FpdGluZ1ByZWZsaWdodChpbnB1dEVsKS5sZW5ndGggPiAwKXtcbiAgICAgICAgICBsZXQgW3JlZiwgX2Vsc10gPSByZWZHZW5lcmF0b3IoKVxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZXMoaW5wdXRFbC5mb3JtLCB0YXJnZXRDdHgsIHJlZiwgY2lkLCAoX3VwbG9hZHMpID0+IHtcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlc3ApXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJBd2FpdGluZ1N1Ym1pdChpbnB1dEVsLmZvcm0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socmVzcClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdHJpZ2dlckF3YWl0aW5nU3VibWl0KGZvcm1FbCl7XG4gICAgbGV0IGF3YWl0aW5nU3VibWl0ID0gdGhpcy5nZXRTY2hlZHVsZWRTdWJtaXQoZm9ybUVsKVxuICAgIGlmKGF3YWl0aW5nU3VibWl0KXtcbiAgICAgIGxldCBbX2VsLCBfcmVmLCBfb3B0cywgY2FsbGJhY2tdID0gYXdhaXRpbmdTdWJtaXRcbiAgICAgIHRoaXMuY2FuY2VsU3VibWl0KGZvcm1FbClcbiAgICAgIGNhbGxiYWNrKClcbiAgICB9XG4gIH1cblxuICBnZXRTY2hlZHVsZWRTdWJtaXQoZm9ybUVsKXtcbiAgICByZXR1cm4gdGhpcy5mb3JtU3VibWl0cy5maW5kKChbZWwsIF9yZWYsIF9vcHRzLCBfY2FsbGJhY2tdKSA9PiBlbC5pc1NhbWVOb2RlKGZvcm1FbCkpXG4gIH1cblxuICBzY2hlZHVsZVN1Ym1pdChmb3JtRWwsIHJlZiwgb3B0cywgY2FsbGJhY2spe1xuICAgIGlmKHRoaXMuZ2V0U2NoZWR1bGVkU3VibWl0KGZvcm1FbCkpeyByZXR1cm4gdHJ1ZSB9XG4gICAgdGhpcy5mb3JtU3VibWl0cy5wdXNoKFtmb3JtRWwsIHJlZiwgb3B0cywgY2FsbGJhY2tdKVxuICB9XG5cbiAgY2FuY2VsU3VibWl0KGZvcm1FbCl7XG4gICAgdGhpcy5mb3JtU3VibWl0cyA9IHRoaXMuZm9ybVN1Ym1pdHMuZmlsdGVyKChbZWwsIHJlZiwgX2NhbGxiYWNrXSkgPT4ge1xuICAgICAgaWYoZWwuaXNTYW1lTm9kZShmb3JtRWwpKXtcbiAgICAgICAgdGhpcy51bmRvUmVmcyhyZWYpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHVzaEZvcm1TdWJtaXQoZm9ybUVsLCB0YXJnZXRDdHgsIHBoeEV2ZW50LCBvcHRzLCBvblJlcGx5KXtcbiAgICBsZXQgZmlsdGVySWdub3JlZCA9IGVsID0+IHtcbiAgICAgIGxldCB1c2VySWdub3JlZCA9IGNsb3Nlc3RQaHhCaW5kaW5nKGVsLCBgJHt0aGlzLmJpbmRpbmcoUEhYX1VQREFURSl9PWlnbm9yZWAsIGVsLmZvcm0pXG4gICAgICByZXR1cm4gISh1c2VySWdub3JlZCB8fCBjbG9zZXN0UGh4QmluZGluZyhlbCwgXCJkYXRhLXBoeC11cGRhdGU9aWdub3JlXCIsIGVsLmZvcm0pKVxuICAgIH1cbiAgICBsZXQgZmlsdGVyRGlzYWJsZXMgPSBlbCA9PiB7XG4gICAgICByZXR1cm4gZWwuaGFzQXR0cmlidXRlKHRoaXMuYmluZGluZyhQSFhfRElTQUJMRV9XSVRIKSlcbiAgICB9XG4gICAgbGV0IGZpbHRlckJ1dHRvbiA9IGVsID0+IGVsLnRhZ05hbWUgPT0gXCJCVVRUT05cIlxuXG4gICAgbGV0IGZpbHRlcklucHV0ID0gZWwgPT4gW1wiSU5QVVRcIiwgXCJURVhUQVJFQVwiLCBcIlNFTEVDVFwiXS5pbmNsdWRlcyhlbC50YWdOYW1lKVxuXG4gICAgbGV0IHJlZkdlbmVyYXRvciA9ICgpID0+IHtcbiAgICAgIGxldCBmb3JtRWxlbWVudHMgPSBBcnJheS5mcm9tKGZvcm1FbC5lbGVtZW50cylcbiAgICAgIGxldCBkaXNhYmxlcyA9IGZvcm1FbGVtZW50cy5maWx0ZXIoZmlsdGVyRGlzYWJsZXMpXG4gICAgICBsZXQgYnV0dG9ucyA9IGZvcm1FbGVtZW50cy5maWx0ZXIoZmlsdGVyQnV0dG9uKS5maWx0ZXIoZmlsdGVySWdub3JlZClcbiAgICAgIGxldCBpbnB1dHMgPSBmb3JtRWxlbWVudHMuZmlsdGVyKGZpbHRlcklucHV0KS5maWx0ZXIoZmlsdGVySWdub3JlZClcblxuICAgICAgYnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoUEhYX0RJU0FCTEVELCBidXR0b24uZGlzYWJsZWQpXG4gICAgICAgIGJ1dHRvbi5kaXNhYmxlZCA9IHRydWVcbiAgICAgIH0pXG4gICAgICBpbnB1dHMuZm9yRWFjaChpbnB1dCA9PiB7XG4gICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShQSFhfUkVBRE9OTFksIGlucHV0LnJlYWRPbmx5KVxuICAgICAgICBpbnB1dC5yZWFkT25seSA9IHRydWVcbiAgICAgICAgaWYoaW5wdXQuZmlsZXMpe1xuICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZShQSFhfRElTQUJMRUQsIGlucHV0LmRpc2FibGVkKVxuICAgICAgICAgIGlucHV0LmRpc2FibGVkID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgZm9ybUVsLnNldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX1BBR0VfTE9BRElORyksIFwiXCIpXG4gICAgICByZXR1cm4gdGhpcy5wdXRSZWYoW2Zvcm1FbF0uY29uY2F0KGRpc2FibGVzKS5jb25jYXQoYnV0dG9ucykuY29uY2F0KGlucHV0cyksIFwic3VibWl0XCIsIG9wdHMpXG4gICAgfVxuXG4gICAgbGV0IGNpZCA9IHRoaXMudGFyZ2V0Q29tcG9uZW50SUQoZm9ybUVsLCB0YXJnZXRDdHgpXG4gICAgaWYoTGl2ZVVwbG9hZGVyLmhhc1VwbG9hZHNJblByb2dyZXNzKGZvcm1FbCkpe1xuICAgICAgbGV0IFtyZWYsIF9lbHNdID0gcmVmR2VuZXJhdG9yKClcbiAgICAgIGxldCBwdXNoID0gKCkgPT4gdGhpcy5wdXNoRm9ybVN1Ym1pdChmb3JtRWwsIHRhcmdldEN0eCwgcGh4RXZlbnQsIG9wdHMsIG9uUmVwbHkpXG4gICAgICByZXR1cm4gdGhpcy5zY2hlZHVsZVN1Ym1pdChmb3JtRWwsIHJlZiwgb3B0cywgcHVzaClcbiAgICB9IGVsc2UgaWYoTGl2ZVVwbG9hZGVyLmlucHV0c0F3YWl0aW5nUHJlZmxpZ2h0KGZvcm1FbCkubGVuZ3RoID4gMCl7XG4gICAgICBsZXQgW3JlZiwgZWxzXSA9IHJlZkdlbmVyYXRvcigpXG4gICAgICBsZXQgcHJveHlSZWZHZW4gPSAoKSA9PiBbcmVmLCBlbHMsIG9wdHNdXG4gICAgICB0aGlzLnVwbG9hZEZpbGVzKGZvcm1FbCwgdGFyZ2V0Q3R4LCByZWYsIGNpZCwgKF91cGxvYWRzKSA9PiB7XG4gICAgICAgIGxldCBmb3JtRGF0YSA9IHNlcmlhbGl6ZUZvcm0oZm9ybUVsLCB7fSlcbiAgICAgICAgdGhpcy5wdXNoV2l0aFJlcGx5KHByb3h5UmVmR2VuLCBcImV2ZW50XCIsIHtcbiAgICAgICAgICB0eXBlOiBcImZvcm1cIixcbiAgICAgICAgICBldmVudDogcGh4RXZlbnQsXG4gICAgICAgICAgdmFsdWU6IGZvcm1EYXRhLFxuICAgICAgICAgIGNpZDogY2lkXG4gICAgICAgIH0sIG9uUmVwbHkpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZm9ybURhdGEgPSBzZXJpYWxpemVGb3JtKGZvcm1FbCwge30pXG4gICAgICB0aGlzLnB1c2hXaXRoUmVwbHkocmVmR2VuZXJhdG9yLCBcImV2ZW50XCIsIHtcbiAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgIGV2ZW50OiBwaHhFdmVudCxcbiAgICAgICAgdmFsdWU6IGZvcm1EYXRhLFxuICAgICAgICBjaWQ6IGNpZFxuICAgICAgfSwgb25SZXBseSlcbiAgICB9XG4gIH1cblxuICB1cGxvYWRGaWxlcyhmb3JtRWwsIHRhcmdldEN0eCwgcmVmLCBjaWQsIG9uQ29tcGxldGUpe1xuICAgIGxldCBqb2luQ291bnRBdFVwbG9hZCA9IHRoaXMuam9pbkNvdW50XG4gICAgbGV0IGlucHV0RWxzID0gTGl2ZVVwbG9hZGVyLmFjdGl2ZUZpbGVJbnB1dHMoZm9ybUVsKVxuICAgIGxldCBudW1GaWxlSW5wdXRzSW5Qcm9ncmVzcyA9IGlucHV0RWxzLmxlbmd0aFxuXG4gICAgLy8gZ2V0IGVhY2ggZmlsZSBpbnB1dFxuICAgIGlucHV0RWxzLmZvckVhY2goaW5wdXRFbCA9PiB7XG4gICAgICBsZXQgdXBsb2FkZXIgPSBuZXcgTGl2ZVVwbG9hZGVyKGlucHV0RWwsIHRoaXMsICgpID0+IHtcbiAgICAgICAgbnVtRmlsZUlucHV0c0luUHJvZ3Jlc3MtLVxuICAgICAgICBpZihudW1GaWxlSW5wdXRzSW5Qcm9ncmVzcyA9PT0gMCl7IG9uQ29tcGxldGUoKSB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy51cGxvYWRlcnNbaW5wdXRFbF0gPSB1cGxvYWRlclxuICAgICAgbGV0IGVudHJpZXMgPSB1cGxvYWRlci5lbnRyaWVzKCkubWFwKGVudHJ5ID0+IGVudHJ5LnRvUHJlZmxpZ2h0UGF5bG9hZCgpKVxuXG4gICAgICBsZXQgcGF5bG9hZCA9IHtcbiAgICAgICAgcmVmOiBpbnB1dEVsLmdldEF0dHJpYnV0ZShQSFhfVVBMT0FEX1JFRiksXG4gICAgICAgIGVudHJpZXM6IGVudHJpZXMsXG4gICAgICAgIGNpZDogdGhpcy50YXJnZXRDb21wb25lbnRJRChpbnB1dEVsLmZvcm0sIHRhcmdldEN0eClcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2coXCJ1cGxvYWRcIiwgKCkgPT4gW1wic2VuZGluZyBwcmVmbGlnaHQgcmVxdWVzdFwiLCBwYXlsb2FkXSlcblxuICAgICAgdGhpcy5wdXNoV2l0aFJlcGx5KG51bGwsIFwiYWxsb3dfdXBsb2FkXCIsIHBheWxvYWQsIHJlc3AgPT4ge1xuICAgICAgICB0aGlzLmxvZyhcInVwbG9hZFwiLCAoKSA9PiBbXCJnb3QgcHJlZmxpZ2h0IHJlc3BvbnNlXCIsIHJlc3BdKVxuICAgICAgICBpZihyZXNwLmVycm9yKXtcbiAgICAgICAgICB0aGlzLnVuZG9SZWZzKHJlZilcbiAgICAgICAgICBsZXQgW2VudHJ5X3JlZiwgcmVhc29uXSA9IHJlc3AuZXJyb3JcbiAgICAgICAgICB0aGlzLmxvZyhcInVwbG9hZFwiLCAoKSA9PiBbYGVycm9yIGZvciBlbnRyeSAke2VudHJ5X3JlZn1gLCByZWFzb25dKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBvbkVycm9yID0gKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoYW5uZWwub25FcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgIGlmKHRoaXMuam9pbkNvdW50ID09PSBqb2luQ291bnRBdFVwbG9hZCl7IGNhbGxiYWNrKCkgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdXBsb2FkZXIuaW5pdEFkYXB0ZXJVcGxvYWQocmVzcCwgb25FcnJvciwgdGhpcy5saXZlU29ja2V0KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBkaXNwYXRjaFVwbG9hZHMobmFtZSwgZmlsZXNPckJsb2JzKXtcbiAgICBsZXQgaW5wdXRzID0gRE9NLmZpbmRVcGxvYWRJbnB1dHModGhpcy5lbCkuZmlsdGVyKGVsID0+IGVsLm5hbWUgPT09IG5hbWUpXG4gICAgaWYoaW5wdXRzLmxlbmd0aCA9PT0gMCl7IGxvZ0Vycm9yKGBubyBsaXZlIGZpbGUgaW5wdXRzIGZvdW5kIG1hdGNoaW5nIHRoZSBuYW1lIFwiJHtuYW1lfVwiYCkgfVxuICAgIGVsc2UgaWYoaW5wdXRzLmxlbmd0aCA+IDEpeyBsb2dFcnJvcihgZHVwbGljYXRlIGxpdmUgZmlsZSBpbnB1dHMgZm91bmQgbWF0Y2hpbmcgdGhlIG5hbWUgXCIke25hbWV9XCJgKSB9XG4gICAgZWxzZSB7IERPTS5kaXNwYXRjaEV2ZW50KGlucHV0c1swXSwgUEhYX1RSQUNLX1VQTE9BRFMsIHtkZXRhaWw6IHtmaWxlczogZmlsZXNPckJsb2JzfX0pIH1cbiAgfVxuXG4gIHB1c2hGb3JtUmVjb3ZlcnkoZm9ybSwgbmV3Q2lkLCBjYWxsYmFjayl7XG4gICAgdGhpcy5saXZlU29ja2V0LndpdGhpbk93bmVycyhmb3JtLCAodmlldywgdGFyZ2V0Q3R4KSA9PiB7XG4gICAgICBsZXQgaW5wdXQgPSBmb3JtLmVsZW1lbnRzWzBdXG4gICAgICBsZXQgcGh4RXZlbnQgPSBmb3JtLmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX0FVVE9fUkVDT1ZFUikpIHx8IGZvcm0uZ2V0QXR0cmlidXRlKHRoaXMuYmluZGluZyhcImNoYW5nZVwiKSlcblxuICAgICAgSlMuZXhlYyhcImNoYW5nZVwiLCBwaHhFdmVudCwgdmlldywgaW5wdXQsIFtcInB1c2hcIiwge190YXJnZXQ6IGlucHV0Lm5hbWUsIG5ld0NpZDogbmV3Q2lkLCBjYWxsYmFjazogY2FsbGJhY2t9XSlcbiAgICB9KVxuICB9XG5cbiAgcHVzaExpbmtQYXRjaChocmVmLCB0YXJnZXRFbCwgY2FsbGJhY2spe1xuICAgIGxldCBsaW5rUmVmID0gdGhpcy5saXZlU29ja2V0LnNldFBlbmRpbmdMaW5rKGhyZWYpXG4gICAgbGV0IHJlZkdlbiA9IHRhcmdldEVsID8gKCkgPT4gdGhpcy5wdXRSZWYoW3RhcmdldEVsXSwgXCJjbGlja1wiKSA6IG51bGxcbiAgICBsZXQgZmFsbGJhY2sgPSAoKSA9PiB0aGlzLmxpdmVTb2NrZXQucmVkaXJlY3Qod2luZG93LmxvY2F0aW9uLmhyZWYpXG5cbiAgICBsZXQgcHVzaCA9IHRoaXMucHVzaFdpdGhSZXBseShyZWZHZW4sIFwibGl2ZV9wYXRjaFwiLCB7dXJsOiBocmVmfSwgcmVzcCA9PiB7XG4gICAgICB0aGlzLmxpdmVTb2NrZXQucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGlmKHJlc3AubGlua19yZWRpcmVjdCl7XG4gICAgICAgICAgdGhpcy5saXZlU29ja2V0LnJlcGxhY2VNYWluKGhyZWYsIG51bGwsIGNhbGxiYWNrLCBsaW5rUmVmKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKHRoaXMubGl2ZVNvY2tldC5jb21taXRQZW5kaW5nTGluayhsaW5rUmVmKSl7XG4gICAgICAgICAgICB0aGlzLmhyZWYgPSBocmVmXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYXBwbHlQZW5kaW5nVXBkYXRlcygpXG4gICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2sobGlua1JlZilcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgaWYocHVzaCl7XG4gICAgICBwdXNoLnJlY2VpdmUoXCJ0aW1lb3V0XCIsIGZhbGxiYWNrKVxuICAgIH0gZWxzZSB7XG4gICAgICBmYWxsYmFjaygpXG4gICAgfVxuICB9XG5cbiAgZm9ybXNGb3JSZWNvdmVyeShodG1sKXtcbiAgICBpZih0aGlzLmpvaW5Db3VudCA9PT0gMCl7IHJldHVybiBbXSB9XG5cbiAgICBsZXQgcGh4Q2hhbmdlID0gdGhpcy5iaW5kaW5nKFwiY2hhbmdlXCIpXG4gICAgbGV0IHRlbXBsYXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRlbXBsYXRlXCIpXG4gICAgdGVtcGxhdGUuaW5uZXJIVE1MID0gaHRtbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIERPTS5hbGwodGhpcy5lbCwgYGZvcm1bJHtwaHhDaGFuZ2V9XWApXG4gICAgICAgIC5maWx0ZXIoZm9ybSA9PiBmb3JtLmlkICYmIHRoaXMub3duc0VsZW1lbnQoZm9ybSkpXG4gICAgICAgIC5maWx0ZXIoZm9ybSA9PiBmb3JtLmVsZW1lbnRzLmxlbmd0aCA+IDApXG4gICAgICAgIC5maWx0ZXIoZm9ybSA9PiBmb3JtLmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX0FVVE9fUkVDT1ZFUikpICE9PSBcImlnbm9yZVwiKVxuICAgICAgICAubWFwKGZvcm0gPT4ge1xuICAgICAgICAgIGxldCBuZXdGb3JtID0gdGVtcGxhdGUuY29udGVudC5xdWVyeVNlbGVjdG9yKGBmb3JtW2lkPVwiJHtmb3JtLmlkfVwiXVske3BoeENoYW5nZX09XCIke2Zvcm0uZ2V0QXR0cmlidXRlKHBoeENoYW5nZSl9XCJdYClcbiAgICAgICAgICBpZihuZXdGb3JtKXtcbiAgICAgICAgICAgIHJldHVybiBbZm9ybSwgbmV3Rm9ybSwgdGhpcy50YXJnZXRDb21wb25lbnRJRChuZXdGb3JtKV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtmb3JtLCBudWxsLCBudWxsXVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoW2Zvcm0sIG5ld0Zvcm0sIG5ld0NpZF0pID0+IG5ld0Zvcm0pXG4gICAgKVxuICB9XG5cbiAgbWF5YmVQdXNoQ29tcG9uZW50c0Rlc3Ryb3llZChkZXN0cm95ZWRDSURzKXtcbiAgICBsZXQgd2lsbERlc3Ryb3lDSURzID0gZGVzdHJveWVkQ0lEcy5maWx0ZXIoY2lkID0+IHtcbiAgICAgIHJldHVybiBET00uZmluZENvbXBvbmVudE5vZGVMaXN0KHRoaXMuZWwsIGNpZCkubGVuZ3RoID09PSAwXG4gICAgfSlcbiAgICBpZih3aWxsRGVzdHJveUNJRHMubGVuZ3RoID4gMCl7XG4gICAgICB0aGlzLnBydW5pbmdDSURzLnB1c2goLi4ud2lsbERlc3Ryb3lDSURzKVxuXG4gICAgICB0aGlzLnB1c2hXaXRoUmVwbHkobnVsbCwgXCJjaWRzX3dpbGxfZGVzdHJveVwiLCB7Y2lkczogd2lsbERlc3Ryb3lDSURzfSwgKCkgPT4ge1xuICAgICAgICAvLyBUaGUgY2lkcyBhcmUgZWl0aGVyIGJhY2sgb24gdGhlIHBhZ2Ugb3IgdGhleSB3aWxsIGJlIGZ1bGx5IHJlbW92ZWQsXG4gICAgICAgIC8vIHNvIHdlIGNhbiByZW1vdmUgdGhlbSBmcm9tIHRoZSBwcnVuaW5nQ0lEcy5cbiAgICAgICAgdGhpcy5wcnVuaW5nQ0lEcyA9IHRoaXMucHJ1bmluZ0NJRHMuZmlsdGVyKGNpZCA9PiB3aWxsRGVzdHJveUNJRHMuaW5kZXhPZihjaWQpICE9PSAtMSlcblxuICAgICAgICAvLyBTZWUgaWYgYW55IG9mIHRoZSBjaWRzIHdlIHdhbnRlZCB0byBkZXN0cm95IHdlcmUgYWRkZWQgYmFjayxcbiAgICAgICAgLy8gaWYgdGhleSB3ZXJlIGFkZGVkIGJhY2ssIHdlIGRvbid0IGFjdHVhbGx5IGRlc3Ryb3kgdGhlbS5cbiAgICAgICAgbGV0IGNvbXBsZXRlbHlEZXN0cm95Q0lEcyA9IHdpbGxEZXN0cm95Q0lEcy5maWx0ZXIoY2lkID0+IHtcbiAgICAgICAgICByZXR1cm4gRE9NLmZpbmRDb21wb25lbnROb2RlTGlzdCh0aGlzLmVsLCBjaWQpLmxlbmd0aCA9PT0gMFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmKGNvbXBsZXRlbHlEZXN0cm95Q0lEcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICB0aGlzLnB1c2hXaXRoUmVwbHkobnVsbCwgXCJjaWRzX2Rlc3Ryb3llZFwiLCB7Y2lkczogY29tcGxldGVseURlc3Ryb3lDSURzfSwgKHJlc3ApID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZWQucHJ1bmVDSURzKHJlc3AuY2lkcylcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG93bnNFbGVtZW50KGVsKXtcbiAgICByZXR1cm4gZWwuZ2V0QXR0cmlidXRlKFBIWF9QQVJFTlRfSUQpID09PSB0aGlzLmlkIHx8XG4gICAgICBtYXliZShlbC5jbG9zZXN0KFBIWF9WSUVXX1NFTEVDVE9SKSwgbm9kZSA9PiBub2RlLmlkKSA9PT0gdGhpcy5pZFxuICB9XG5cbiAgc3VibWl0Rm9ybShmb3JtLCB0YXJnZXRDdHgsIHBoeEV2ZW50LCBvcHRzID0ge30pe1xuICAgIERPTS5wdXRQcml2YXRlKGZvcm0sIFBIWF9IQVNfU1VCTUlUVEVELCB0cnVlKVxuICAgIGxldCBwaHhGZWVkYmFjayA9IHRoaXMubGl2ZVNvY2tldC5iaW5kaW5nKFBIWF9GRUVEQkFDS19GT1IpXG4gICAgbGV0IGlucHV0cyA9IEFycmF5LmZyb20oZm9ybS5lbGVtZW50cylcbiAgICB0aGlzLmxpdmVTb2NrZXQuYmx1ckFjdGl2ZUVsZW1lbnQodGhpcylcbiAgICB0aGlzLnB1c2hGb3JtU3VibWl0KGZvcm0sIHRhcmdldEN0eCwgcGh4RXZlbnQsIG9wdHMsICgpID0+IHtcbiAgICAgIGlucHV0cy5mb3JFYWNoKGlucHV0ID0+IERPTS5zaG93RXJyb3IoaW5wdXQsIHBoeEZlZWRiYWNrKSlcbiAgICAgIHRoaXMubGl2ZVNvY2tldC5yZXN0b3JlUHJldmlvdXNseUFjdGl2ZUZvY3VzKClcbiAgICB9KVxuICB9XG5cbiAgYmluZGluZyhraW5kKXsgcmV0dXJuIHRoaXMubGl2ZVNvY2tldC5iaW5kaW5nKGtpbmQpIH1cbn1cbiIsICIvKiogSW5pdGlhbGl6ZXMgdGhlIExpdmVTb2NrZXRcbiAqXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGVuZFBvaW50IC0gVGhlIHN0cmluZyBXZWJTb2NrZXQgZW5kcG9pbnQsIGllLCBgXCJ3c3M6Ly9leGFtcGxlLmNvbS9saXZlXCJgLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBcIi9saXZlXCJgIChpbmhlcml0ZWQgaG9zdCAmIHByb3RvY29sKVxuICogQHBhcmFtIHtQaG9lbml4LlNvY2tldH0gc29ja2V0IC0gdGhlIHJlcXVpcmVkIFBob2VuaXggU29ja2V0IGNsYXNzIGltcG9ydGVkIGZyb20gXCJwaG9lbml4XCIuIEZvciBleGFtcGxlOlxuICpcbiAqICAgICBpbXBvcnQge1NvY2tldH0gZnJvbSBcInBob2VuaXhcIlxuICogICAgIGltcG9ydCB7TGl2ZVNvY2tldH0gZnJvbSBcInBob2VuaXhfbGl2ZV92aWV3XCJcbiAqICAgICBsZXQgbGl2ZVNvY2tldCA9IG5ldyBMaXZlU29ja2V0KFwiL2xpdmVcIiwgU29ja2V0LCB7Li4ufSlcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbi4gT3V0c2lkZSBvZiBrZXlzIGxpc3RlZCBiZWxvdywgYWxsXG4gKiBjb25maWd1cmF0aW9uIGlzIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgUGhvZW5peCBTb2NrZXQgY29uc3RydWN0b3IuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHMuZGVmYXVsdHNdIC0gVGhlIG9wdGlvbmFsIGRlZmF1bHRzIHRvIHVzZSBmb3IgdmFyaW91cyBiaW5kaW5ncyxcbiAqIHN1Y2ggYXMgYHBoeC1kZWJvdW5jZWAuIFN1cHBvcnRzIHRoZSBmb2xsb3dpbmcga2V5czpcbiAqXG4gKiAgIC0gZGVib3VuY2UgLSB0aGUgbWlsbGlzZWNvbmQgcGh4LWRlYm91bmNlIHRpbWUuIERlZmF1bHRzIDMwMFxuICogICAtIHRocm90dGxlIC0gdGhlIG1pbGxpc2Vjb25kIHBoeC10aHJvdHRsZSB0aW1lLiBEZWZhdWx0cyAzMDBcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy5wYXJhbXNdIC0gVGhlIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBwYXNzaW5nIGNvbm5lY3QgcGFyYW1zLlxuICogVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIHRoZSBlbGVtZW50IGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIExpdmVWaWV3LiBGb3IgZXhhbXBsZTpcbiAqXG4gKiAgICAgKGVsKSA9PiB7dmlldzogZWwuZ2V0QXR0cmlidXRlKFwiZGF0YS1teS12aWV3LW5hbWVcIiwgdG9rZW46IHdpbmRvdy5teVRva2VufVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0cy5iaW5kaW5nUHJlZml4XSAtIFRoZSBvcHRpb25hbCBwcmVmaXggdG8gdXNlIGZvciBhbGwgcGh4IERPTSBhbm5vdGF0aW9ucy5cbiAqIERlZmF1bHRzIHRvIFwicGh4LVwiLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzLmhvb2tzXSAtIFRoZSBvcHRpb25hbCBvYmplY3QgZm9yIHJlZmVyZW5jaW5nIExpdmVWaWV3IGhvb2sgY2FsbGJhY2tzLlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzLnVwbG9hZGVyc10gLSBUaGUgb3B0aW9uYWwgb2JqZWN0IGZvciByZWZlcmVuY2luZyBMaXZlVmlldyB1cGxvYWRlciBjYWxsYmFja3MuXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtvcHRzLmxvYWRlclRpbWVvdXRdIC0gVGhlIG9wdGlvbmFsIGRlbGF5IGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBhcHBseVxuICogbG9hZGluZyBzdGF0ZXMuXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtvcHRzLm1heFJlbG9hZHNdIC0gVGhlIG1heGltdW0gcmVsb2FkcyBiZWZvcmUgZW50ZXJpbmcgZmFpbHNhZmUgbW9kZS5cbiAqIEBwYXJhbSB7aW50ZWdlcn0gW29wdHMucmVsb2FkSml0dGVyTWluXSAtIFRoZSBtaW5pbXVtIHRpbWUgYmV0d2VlbiBub3JtYWwgcmVsb2FkIGF0dGVtcHRzLlxuICogQHBhcmFtIHtpbnRlZ2VyfSBbb3B0cy5yZWxvYWRKaXR0ZXJNYXhdIC0gVGhlIG1heGltdW0gdGltZSBiZXR3ZWVuIG5vcm1hbCByZWxvYWQgYXR0ZW1wdHMuXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtvcHRzLmZhaWxzYWZlSml0dGVyXSAtIFRoZSB0aW1lIGJldHdlZW4gcmVsb2FkIGF0dGVtcHRzIGluIGZhaWxzYWZlIG1vZGUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbb3B0cy52aWV3TG9nZ2VyXSAtIFRoZSBvcHRpb25hbCBmdW5jdGlvbiB0byBsb2cgZGVidWcgaW5mb3JtYXRpb24uIEZvciBleGFtcGxlOlxuICpcbiAqICAgICAodmlldywga2luZCwgbXNnLCBvYmopID0+IGNvbnNvbGUubG9nKGAke3ZpZXcuaWR9ICR7a2luZH06ICR7bXNnfSAtIGAsIG9iailcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHMubWV0YWRhdGFdIC0gVGhlIG9wdGlvbmFsIG9iamVjdCBtYXBwaW5nIGV2ZW50IG5hbWVzIHRvIGZ1bmN0aW9ucyBmb3JcbiAqIHBvcHVsYXRpbmcgZXZlbnQgbWV0YWRhdGEuIEZvciBleGFtcGxlOlxuICpcbiAqICAgICBtZXRhZGF0YToge1xuICogICAgICAgY2xpY2s6IChlLCBlbCkgPT4ge1xuICogICAgICAgICByZXR1cm4ge1xuICogICAgICAgICAgIGN0cmxLZXk6IGUuY3RybEtleSxcbiAqICAgICAgICAgICBtZXRhS2V5OiBlLm1ldGFLZXksXG4gKiAgICAgICAgICAgZGV0YWlsOiBlLmRldGFpbCB8fCAxLFxuICogICAgICAgICB9XG4gKiAgICAgICB9LFxuICogICAgICAga2V5ZG93bjogKGUsIGVsKSA9PiB7XG4gKiAgICAgICAgIHJldHVybiB7XG4gKiAgICAgICAgICAga2V5OiBlLmtleSxcbiAqICAgICAgICAgICBjdHJsS2V5OiBlLmN0cmxLZXksXG4gKiAgICAgICAgICAgbWV0YUtleTogZS5tZXRhS2V5LFxuICogICAgICAgICAgIHNoaWZ0S2V5OiBlLnNoaWZ0S2V5XG4gKiAgICAgICAgIH1cbiAqICAgICAgIH1cbiAqICAgICB9XG4gKiBAcGFyYW0ge09iamVjdH0gW29wdHMuc2Vzc2lvblN0b3JhZ2VdIC0gQW4gb3B0aW9uYWwgU3RvcmFnZSBjb21wYXRpYmxlIG9iamVjdFxuICogVXNlZnVsIHdoZW4gTGl2ZVZpZXcgd29uJ3QgaGF2ZSBhY2Nlc3MgdG8gYHNlc3Npb25TdG9yYWdlYC4gIEZvciBleGFtcGxlLCBUaGlzIGNvdWxkXG4gKiBoYXBwZW4gaWYgYSBzaXRlIGxvYWRzIGEgY3Jvc3MtZG9tYWluIExpdmVWaWV3IGluIGFuIGlmcmFtZS4gIEV4YW1wbGUgdXNhZ2U6XG4gKlxuICogICAgIGNsYXNzIEluTWVtb3J5U3RvcmFnZSB7XG4gKiAgICAgICBjb25zdHJ1Y3RvcigpIHsgdGhpcy5zdG9yYWdlID0ge30gfVxuICogICAgICAgZ2V0SXRlbShrZXlOYW1lKSB7IHJldHVybiB0aGlzLnN0b3JhZ2Vba2V5TmFtZV0gfVxuICogICAgICAgcmVtb3ZlSXRlbShrZXlOYW1lKSB7IGRlbGV0ZSB0aGlzLnN0b3JhZ2Vba2V5TmFtZV0gfVxuICogICAgICAgc2V0SXRlbShrZXlOYW1lLCBrZXlWYWx1ZSkgeyB0aGlzLnN0b3JhZ2Vba2V5TmFtZV0gPSBrZXlWYWx1ZSB9XG4gKiAgICAgfVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0cy5sb2NhbFN0b3JhZ2VdIC0gQW4gb3B0aW9uYWwgU3RvcmFnZSBjb21wYXRpYmxlIG9iamVjdFxuICogVXNlZnVsIGZvciB3aGVuIExpdmVWaWV3IHdvbid0IGhhdmUgYWNjZXNzIHRvIGBsb2NhbFN0b3JhZ2VgLlxuICogU2VlIGBvcHRzLnNlc3Npb25TdG9yYWdlYCBmb3IgZXhhbXBsZXMuXG4qL1xuXG5pbXBvcnQge1xuICBCSU5ESU5HX1BSRUZJWCxcbiAgQ09OU0VDVVRJVkVfUkVMT0FEUyxcbiAgREVGQVVMVFMsXG4gIEZBSUxTQUZFX0pJVFRFUixcbiAgTE9BREVSX1RJTUVPVVQsXG4gIE1BWF9SRUxPQURTLFxuICBQSFhfREVCT1VOQ0UsXG4gIFBIWF9EUk9QX1RBUkdFVCxcbiAgUEhYX0hBU19GT0NVU0VELFxuICBQSFhfS0VZLFxuICBQSFhfTElOS19TVEFURSxcbiAgUEhYX0xJVkVfTElOSyxcbiAgUEhYX0xWX0RFQlVHLFxuICBQSFhfTFZfTEFURU5DWV9TSU0sXG4gIFBIWF9MVl9QUk9GSUxFLFxuICBQSFhfTUFJTixcbiAgUEhYX1BBUkVOVF9JRCxcbiAgUEhYX1ZJRVdfU0VMRUNUT1IsXG4gIFBIWF9ST09UX0lELFxuICBQSFhfVEhST1RUTEUsXG4gIFBIWF9UUkFDS19VUExPQURTLFxuICBQSFhfU0VTU0lPTixcbiAgUkVMT0FEX0pJVFRFUl9NSU4sXG4gIFJFTE9BRF9KSVRURVJfTUFYLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIlxuXG5pbXBvcnQge1xuICBjbG9uZSxcbiAgY2xvc2VzdFBoeEJpbmRpbmcsXG4gIGNsb3N1cmUsXG4gIGRlYnVnLFxuICBpc09iamVjdCxcbiAgbWF5YmVcbn0gZnJvbSBcIi4vdXRpbHNcIlxuXG5pbXBvcnQgQnJvd3NlciBmcm9tIFwiLi9icm93c2VyXCJcbmltcG9ydCBET00gZnJvbSBcIi4vZG9tXCJcbmltcG9ydCBIb29rcyBmcm9tIFwiLi9ob29rc1wiXG5pbXBvcnQgTGl2ZVVwbG9hZGVyIGZyb20gXCIuL2xpdmVfdXBsb2FkZXJcIlxuaW1wb3J0IFZpZXcgZnJvbSBcIi4vdmlld1wiXG5pbXBvcnQgSlMgZnJvbSBcIi4vanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXZlU29ja2V0IHtcbiAgY29uc3RydWN0b3IodXJsLCBwaHhTb2NrZXQsIG9wdHMgPSB7fSl7XG4gICAgdGhpcy51bmxvYWRlZCA9IGZhbHNlXG4gICAgaWYoIXBoeFNvY2tldCB8fCBwaHhTb2NrZXQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJPYmplY3RcIil7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgYSBwaG9lbml4IFNvY2tldCBtdXN0IGJlIHByb3ZpZGVkIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIExpdmVTb2NrZXQgY29uc3RydWN0b3IuIEZvciBleGFtcGxlOlxuXG4gICAgICAgICAgaW1wb3J0IHtTb2NrZXR9IGZyb20gXCJwaG9lbml4XCJcbiAgICAgICAgICBpbXBvcnQge0xpdmVTb2NrZXR9IGZyb20gXCJwaG9lbml4X2xpdmVfdmlld1wiXG4gICAgICAgICAgbGV0IGxpdmVTb2NrZXQgPSBuZXcgTGl2ZVNvY2tldChcIi9saXZlXCIsIFNvY2tldCwgey4uLn0pXG4gICAgICBgKVxuICAgIH1cbiAgICB0aGlzLnNvY2tldCA9IG5ldyBwaHhTb2NrZXQodXJsLCBvcHRzKVxuICAgIHRoaXMuYmluZGluZ1ByZWZpeCA9IG9wdHMuYmluZGluZ1ByZWZpeCB8fCBCSU5ESU5HX1BSRUZJWFxuICAgIHRoaXMub3B0cyA9IG9wdHNcbiAgICB0aGlzLnBhcmFtcyA9IGNsb3N1cmUob3B0cy5wYXJhbXMgfHwge30pXG4gICAgdGhpcy52aWV3TG9nZ2VyID0gb3B0cy52aWV3TG9nZ2VyXG4gICAgdGhpcy5tZXRhZGF0YUNhbGxiYWNrcyA9IG9wdHMubWV0YWRhdGEgfHwge31cbiAgICB0aGlzLmRlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihjbG9uZShERUZBVUxUUyksIG9wdHMuZGVmYXVsdHMgfHwge30pXG4gICAgdGhpcy5hY3RpdmVFbGVtZW50ID0gbnVsbFxuICAgIHRoaXMucHJldkFjdGl2ZSA9IG51bGxcbiAgICB0aGlzLnNpbGVuY2VkID0gZmFsc2VcbiAgICB0aGlzLm1haW4gPSBudWxsXG4gICAgdGhpcy5vdXRnb2luZ01haW5FbCA9IG51bGxcbiAgICB0aGlzLmNsaWNrU3RhcnRlZEF0VGFyZ2V0ID0gbnVsbFxuICAgIHRoaXMubGlua1JlZiA9IDFcbiAgICB0aGlzLnJvb3RzID0ge31cbiAgICB0aGlzLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgIHRoaXMucGVuZGluZ0xpbmsgPSBudWxsXG4gICAgdGhpcy5jdXJyZW50TG9jYXRpb24gPSBjbG9uZSh3aW5kb3cubG9jYXRpb24pXG4gICAgdGhpcy5ob29rcyA9IG9wdHMuaG9va3MgfHwge31cbiAgICB0aGlzLnVwbG9hZGVycyA9IG9wdHMudXBsb2FkZXJzIHx8IHt9XG4gICAgdGhpcy5sb2FkZXJUaW1lb3V0ID0gb3B0cy5sb2FkZXJUaW1lb3V0IHx8IExPQURFUl9USU1FT1VUXG4gICAgdGhpcy5yZWxvYWRXaXRoSml0dGVyVGltZXIgPSBudWxsXG4gICAgdGhpcy5tYXhSZWxvYWRzID0gb3B0cy5tYXhSZWxvYWRzIHx8IE1BWF9SRUxPQURTXG4gICAgdGhpcy5yZWxvYWRKaXR0ZXJNaW4gPSBvcHRzLnJlbG9hZEppdHRlck1pbiB8fCBSRUxPQURfSklUVEVSX01JTlxuICAgIHRoaXMucmVsb2FkSml0dGVyTWF4ID0gb3B0cy5yZWxvYWRKaXR0ZXJNYXggfHwgUkVMT0FEX0pJVFRFUl9NQVhcbiAgICB0aGlzLmZhaWxzYWZlSml0dGVyID0gb3B0cy5mYWlsc2FmZUppdHRlciB8fCBGQUlMU0FGRV9KSVRURVJcbiAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IG9wdHMubG9jYWxTdG9yYWdlIHx8IHdpbmRvdy5sb2NhbFN0b3JhZ2VcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlID0gb3B0cy5zZXNzaW9uU3RvcmFnZSB8fCB3aW5kb3cuc2Vzc2lvblN0b3JhZ2VcbiAgICB0aGlzLmJvdW5kVG9wTGV2ZWxFdmVudHMgPSBmYWxzZVxuICAgIHRoaXMuZG9tQ2FsbGJhY2tzID0gT2JqZWN0LmFzc2lnbih7b25Ob2RlQWRkZWQ6IGNsb3N1cmUoKSwgb25CZWZvcmVFbFVwZGF0ZWQ6IGNsb3N1cmUoKX0sIG9wdHMuZG9tIHx8IHt9KVxuICAgIHRoaXMudHJhbnNpdGlvbnMgPSBuZXcgVHJhbnNpdGlvblNldCgpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwYWdlaGlkZVwiLCBfZSA9PiB7XG4gICAgICB0aGlzLnVubG9hZGVkID0gdHJ1ZVxuICAgIH0pXG4gICAgdGhpcy5zb2NrZXQub25PcGVuKCgpID0+IHtcbiAgICAgIGlmKHRoaXMuaXNVbmxvYWRlZCgpKXtcbiAgICAgICAgLy8gcmVsb2FkIHBhZ2UgaWYgYmVpbmcgcmVzdG9yZWQgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUgYW5kIGJyb3dzZXIgZG9lcyBub3QgZW1pdCBcInBhZ2VzaG93XCJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIHB1YmxpY1xuXG4gIGlzUHJvZmlsZUVuYWJsZWQoKXsgcmV0dXJuIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShQSFhfTFZfUFJPRklMRSkgPT09IFwidHJ1ZVwiIH1cblxuICBpc0RlYnVnRW5hYmxlZCgpeyByZXR1cm4gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFBIWF9MVl9ERUJVRykgPT09IFwidHJ1ZVwiIH1cblxuICBpc0RlYnVnRGlzYWJsZWQoKXsgcmV0dXJuIHRoaXMuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShQSFhfTFZfREVCVUcpID09PSBcImZhbHNlXCIgfVxuXG4gIGVuYWJsZURlYnVnKCl7IHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShQSFhfTFZfREVCVUcsIFwidHJ1ZVwiKSB9XG5cbiAgZW5hYmxlUHJvZmlsaW5nKCl7IHRoaXMuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShQSFhfTFZfUFJPRklMRSwgXCJ0cnVlXCIpIH1cblxuICBkaXNhYmxlRGVidWcoKXsgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFBIWF9MVl9ERUJVRywgXCJmYWxzZVwiKSB9XG5cbiAgZGlzYWJsZVByb2ZpbGluZygpeyB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oUEhYX0xWX1BST0ZJTEUpIH1cblxuICBlbmFibGVMYXRlbmN5U2ltKHVwcGVyQm91bmRNcyl7XG4gICAgdGhpcy5lbmFibGVEZWJ1ZygpXG4gICAgY29uc29sZS5sb2coXCJsYXRlbmN5IHNpbXVsYXRvciBlbmFibGVkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhpcyBicm93c2VyIHNlc3Npb24uIENhbGwgZGlzYWJsZUxhdGVuY3lTaW0oKSB0byBkaXNhYmxlXCIpXG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFBIWF9MVl9MQVRFTkNZX1NJTSwgdXBwZXJCb3VuZE1zKVxuICB9XG5cbiAgZGlzYWJsZUxhdGVuY3lTaW0oKXsgdGhpcy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFBIWF9MVl9MQVRFTkNZX1NJTSkgfVxuXG4gIGdldExhdGVuY3lTaW0oKXtcbiAgICBsZXQgc3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFBIWF9MVl9MQVRFTkNZX1NJTSlcbiAgICByZXR1cm4gc3RyID8gcGFyc2VJbnQoc3RyKSA6IG51bGxcbiAgfVxuXG4gIGdldFNvY2tldCgpeyByZXR1cm4gdGhpcy5zb2NrZXQgfVxuXG4gIGNvbm5lY3QoKXtcbiAgICAvLyBlbmFibGUgZGVidWcgYnkgZGVmYXVsdCBpZiBvbiBsb2NhbGhvc3QgYW5kIG5vdCBleHBsaWNpdGx5IGRpc2FibGVkXG4gICAgaWYod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSBcImxvY2FsaG9zdFwiICYmICF0aGlzLmlzRGVidWdEaXNhYmxlZCgpKXsgdGhpcy5lbmFibGVEZWJ1ZygpIH1cbiAgICBsZXQgZG9Db25uZWN0ID0gKCkgPT4ge1xuICAgICAgaWYodGhpcy5qb2luUm9vdFZpZXdzKCkpe1xuICAgICAgICB0aGlzLmJpbmRUb3BMZXZlbEV2ZW50cygpXG4gICAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QoKVxuICAgICAgfSBlbHNlIGlmKHRoaXMubWFpbil7XG4gICAgICAgIHRoaXMuc29ja2V0LmNvbm5lY3QoKVxuICAgICAgfVxuICAgIH1cbiAgICBpZihbXCJjb21wbGV0ZVwiLCBcImxvYWRlZFwiLCBcImludGVyYWN0aXZlXCJdLmluZGV4T2YoZG9jdW1lbnQucmVhZHlTdGF0ZSkgPj0gMCl7XG4gICAgICBkb0Nvbm5lY3QoKVxuICAgIH0gZWxzZSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLCAoKSA9PiBkb0Nvbm5lY3QoKSlcbiAgICB9XG4gIH1cblxuICBkaXNjb25uZWN0KGNhbGxiYWNrKXtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5yZWxvYWRXaXRoSml0dGVyVGltZXIpXG4gICAgdGhpcy5zb2NrZXQuZGlzY29ubmVjdChjYWxsYmFjaylcbiAgfVxuXG4gIHJlcGxhY2VUcmFuc3BvcnQodHJhbnNwb3J0KXtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5yZWxvYWRXaXRoSml0dGVyVGltZXIpXG4gICAgdGhpcy5zb2NrZXQucmVwbGFjZVRyYW5zcG9ydCh0cmFuc3BvcnQpXG4gICAgdGhpcy5jb25uZWN0KClcbiAgfVxuXG4gIGV4ZWNKUyhlbCwgZW5jb2RlZEpTLCBldmVudFR5cGUgPSBudWxsKXtcbiAgICB0aGlzLm93bmVyKGVsLCB2aWV3ID0+IEpTLmV4ZWMoZXZlbnRUeXBlLCBlbmNvZGVkSlMsIHZpZXcsIGVsKSlcbiAgfVxuXG4gIC8vIHByaXZhdGVcblxuICB0cmlnZ2VyRE9NKGtpbmQsIGFyZ3MpeyB0aGlzLmRvbUNhbGxiYWNrc1traW5kXSguLi5hcmdzKSB9XG5cbiAgdGltZShuYW1lLCBmdW5jKXtcbiAgICBpZighdGhpcy5pc1Byb2ZpbGVFbmFibGVkKCkgfHwgIWNvbnNvbGUudGltZSl7IHJldHVybiBmdW5jKCkgfVxuICAgIGNvbnNvbGUudGltZShuYW1lKVxuICAgIGxldCByZXN1bHQgPSBmdW5jKClcbiAgICBjb25zb2xlLnRpbWVFbmQobmFtZSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBsb2codmlldywga2luZCwgbXNnQ2FsbGJhY2spe1xuICAgIGlmKHRoaXMudmlld0xvZ2dlcil7XG4gICAgICBsZXQgW21zZywgb2JqXSA9IG1zZ0NhbGxiYWNrKClcbiAgICAgIHRoaXMudmlld0xvZ2dlcih2aWV3LCBraW5kLCBtc2csIG9iailcbiAgICB9IGVsc2UgaWYodGhpcy5pc0RlYnVnRW5hYmxlZCgpKXtcbiAgICAgIGxldCBbbXNnLCBvYmpdID0gbXNnQ2FsbGJhY2soKVxuICAgICAgZGVidWcodmlldywga2luZCwgbXNnLCBvYmopXG4gICAgfVxuICB9XG5cbiAgcmVxdWVzdERPTVVwZGF0ZShjYWxsYmFjayl7XG4gICAgdGhpcy50cmFuc2l0aW9ucy5hZnRlcihjYWxsYmFjaylcbiAgfVxuXG4gIHRyYW5zaXRpb24odGltZSwgb25TdGFydCwgb25Eb25lID0gZnVuY3Rpb24oKXt9KXtcbiAgICB0aGlzLnRyYW5zaXRpb25zLmFkZFRyYW5zaXRpb24odGltZSwgb25TdGFydCwgb25Eb25lKVxuICB9XG5cbiAgb25DaGFubmVsKGNoYW5uZWwsIGV2ZW50LCBjYil7XG4gICAgY2hhbm5lbC5vbihldmVudCwgZGF0YSA9PiB7XG4gICAgICBsZXQgbGF0ZW5jeSA9IHRoaXMuZ2V0TGF0ZW5jeVNpbSgpXG4gICAgICBpZighbGF0ZW5jeSl7XG4gICAgICAgIGNiKGRhdGEpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgc2ltdWxhdGluZyAke2xhdGVuY3l9bXMgb2YgbGF0ZW5jeSBmcm9tIHNlcnZlciB0byBjbGllbnRgKVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGNiKGRhdGEpLCBsYXRlbmN5KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB3cmFwUHVzaCh2aWV3LCBvcHRzLCBwdXNoKXtcbiAgICBsZXQgbGF0ZW5jeSA9IHRoaXMuZ2V0TGF0ZW5jeVNpbSgpXG4gICAgbGV0IG9sZEpvaW5Db3VudCA9IHZpZXcuam9pbkNvdW50XG4gICAgaWYoIWxhdGVuY3kpe1xuICAgICAgaWYodGhpcy5pc0Nvbm5lY3RlZCgpICYmIG9wdHMudGltZW91dCl7XG4gICAgICAgIHJldHVybiBwdXNoKCkucmVjZWl2ZShcInRpbWVvdXRcIiwgKCkgPT4ge1xuICAgICAgICAgIGlmKHZpZXcuam9pbkNvdW50ID09PSBvbGRKb2luQ291bnQgJiYgIXZpZXcuaXNEZXN0cm95ZWQoKSl7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZFdpdGhKaXR0ZXIodmlldywgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvZyh2aWV3LCBcInRpbWVvdXRcIiwgKCkgPT4gW1wicmVjZWl2ZWQgdGltZW91dCB3aGlsZSBjb21tdW5pY2F0aW5nIHdpdGggc2VydmVyLiBGYWxsaW5nIGJhY2sgdG8gaGFyZCByZWZyZXNoIGZvciByZWNvdmVyeVwiXSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHB1c2goKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGBzaW11bGF0aW5nICR7bGF0ZW5jeX1tcyBvZiBsYXRlbmN5IGZyb20gY2xpZW50IHRvIHNlcnZlcmApXG4gICAgbGV0IGZha2VQdXNoID0ge1xuICAgICAgcmVjZWl2ZXM6IFtdLFxuICAgICAgcmVjZWl2ZShraW5kLCBjYil7IHRoaXMucmVjZWl2ZXMucHVzaChba2luZCwgY2JdKSB9XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYodmlldy5pc0Rlc3Ryb3llZCgpKXsgcmV0dXJuIH1cbiAgICAgIGZha2VQdXNoLnJlY2VpdmVzLnJlZHVjZSgoYWNjLCBba2luZCwgY2JdKSA9PiBhY2MucmVjZWl2ZShraW5kLCBjYiksIHB1c2goKSlcbiAgICB9LCBsYXRlbmN5KVxuICAgIHJldHVybiBmYWtlUHVzaFxuICB9XG5cbiAgcmVsb2FkV2l0aEppdHRlcih2aWV3LCBsb2cpe1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnJlbG9hZFdpdGhKaXR0ZXJUaW1lcilcbiAgICB0aGlzLmRpc2Nvbm5lY3QoKVxuICAgIGxldCBtaW5NcyA9IHRoaXMucmVsb2FkSml0dGVyTWluXG4gICAgbGV0IG1heE1zID0gdGhpcy5yZWxvYWRKaXR0ZXJNYXhcbiAgICBsZXQgYWZ0ZXJNcyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXhNcyAtIG1pbk1zICsgMSkpICsgbWluTXNcbiAgICBsZXQgdHJpZXMgPSBCcm93c2VyLnVwZGF0ZUxvY2FsKHRoaXMubG9jYWxTdG9yYWdlLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsIENPTlNFQ1VUSVZFX1JFTE9BRFMsIDAsIGNvdW50ID0+IGNvdW50ICsgMSlcbiAgICBpZih0cmllcyA+IHRoaXMubWF4UmVsb2Fkcyl7XG4gICAgICBhZnRlck1zID0gdGhpcy5mYWlsc2FmZUppdHRlclxuICAgIH1cbiAgICB0aGlzLnJlbG9hZFdpdGhKaXR0ZXJUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gaWYgdmlldyBoYXMgcmVjb3ZlcmVkLCBzdWNoIGFzIHRyYW5zcG9ydCByZXBsYWNlZCwgdGhlbiBjYW5jZWxcbiAgICAgIGlmKHZpZXcuaXNEZXN0cm95ZWQoKSB8fCB2aWV3LmlzQ29ubmVjdGVkKCkpeyByZXR1cm4gfVxuICAgICAgdmlldy5kZXN0cm95KClcbiAgICAgIGxvZyA/IGxvZygpIDogdGhpcy5sb2codmlldywgXCJqb2luXCIsICgpID0+IFtgZW5jb3VudGVyZWQgJHt0cmllc30gY29uc2VjdXRpdmUgcmVsb2Fkc2BdKVxuICAgICAgaWYodHJpZXMgPiB0aGlzLm1heFJlbG9hZHMpe1xuICAgICAgICB0aGlzLmxvZyh2aWV3LCBcImpvaW5cIiwgKCkgPT4gW2BleGNlZWRlZCAke3RoaXMubWF4UmVsb2Fkc30gY29uc2VjdXRpdmUgcmVsb2Fkcy4gRW50ZXJpbmcgZmFpbHNhZmUgbW9kZWBdKVxuICAgICAgfVxuICAgICAgaWYodGhpcy5oYXNQZW5kaW5nTGluaygpKXtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uID0gdGhpcy5wZW5kaW5nTGlua1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG4gICAgfSwgYWZ0ZXJNcylcbiAgfVxuXG4gIGdldEhvb2tDYWxsYmFja3MobmFtZSl7XG4gICAgcmV0dXJuIG5hbWUgJiYgbmFtZS5zdGFydHNXaXRoKFwiUGhvZW5peC5cIikgPyBIb29rc1tuYW1lLnNwbGl0KFwiLlwiKVsxXV0gOiB0aGlzLmhvb2tzW25hbWVdXG4gIH1cblxuICBpc1VubG9hZGVkKCl7IHJldHVybiB0aGlzLnVubG9hZGVkIH1cblxuICBpc0Nvbm5lY3RlZCgpeyByZXR1cm4gdGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSB9XG5cbiAgZ2V0QmluZGluZ1ByZWZpeCgpeyByZXR1cm4gdGhpcy5iaW5kaW5nUHJlZml4IH1cblxuICBiaW5kaW5nKGtpbmQpeyByZXR1cm4gYCR7dGhpcy5nZXRCaW5kaW5nUHJlZml4KCl9JHtraW5kfWAgfVxuXG4gIGNoYW5uZWwodG9waWMsIHBhcmFtcyl7IHJldHVybiB0aGlzLnNvY2tldC5jaGFubmVsKHRvcGljLCBwYXJhbXMpIH1cblxuICBqb2luUm9vdFZpZXdzKCl7XG4gICAgbGV0IHJvb3RzRm91bmQgPSBmYWxzZVxuICAgIERPTS5hbGwoZG9jdW1lbnQsIGAke1BIWF9WSUVXX1NFTEVDVE9SfTpub3QoWyR7UEhYX1BBUkVOVF9JRH1dKWAsIHJvb3RFbCA9PiB7XG4gICAgICBpZighdGhpcy5nZXRSb290QnlJZChyb290RWwuaWQpKXtcbiAgICAgICAgbGV0IHZpZXcgPSB0aGlzLm5ld1Jvb3RWaWV3KHJvb3RFbClcbiAgICAgICAgdmlldy5zZXRIcmVmKHRoaXMuZ2V0SHJlZigpKVxuICAgICAgICB2aWV3LmpvaW4oKVxuICAgICAgICBpZihyb290RWwuaGFzQXR0cmlidXRlKFBIWF9NQUlOKSl7IHRoaXMubWFpbiA9IHZpZXcgfVxuICAgICAgfVxuICAgICAgcm9vdHNGb3VuZCA9IHRydWVcbiAgICB9KVxuICAgIHJldHVybiByb290c0ZvdW5kXG4gIH1cblxuICByZWRpcmVjdCh0bywgZmxhc2gpe1xuICAgIHRoaXMuZGlzY29ubmVjdCgpXG4gICAgQnJvd3Nlci5yZWRpcmVjdCh0bywgZmxhc2gpXG4gIH1cblxuICByZXBsYWNlTWFpbihocmVmLCBmbGFzaCwgY2FsbGJhY2sgPSBudWxsLCBsaW5rUmVmID0gdGhpcy5zZXRQZW5kaW5nTGluayhocmVmKSl7XG4gICAgdGhpcy5vdXRnb2luZ01haW5FbCA9IHRoaXMub3V0Z29pbmdNYWluRWwgfHwgdGhpcy5tYWluLmVsXG4gICAgbGV0IG5ld01haW5FbCA9IERPTS5jbG9uZU5vZGUodGhpcy5vdXRnb2luZ01haW5FbCwgXCJcIilcbiAgICB0aGlzLm1haW4uc2hvd0xvYWRlcih0aGlzLmxvYWRlclRpbWVvdXQpXG4gICAgdGhpcy5tYWluLmRlc3Ryb3koKVxuXG4gICAgdGhpcy5tYWluID0gdGhpcy5uZXdSb290VmlldyhuZXdNYWluRWwsIGZsYXNoKVxuICAgIHRoaXMubWFpbi5zZXRSZWRpcmVjdChocmVmKVxuICAgIHRoaXMudHJhbnNpdGlvblJlbW92ZXMoKVxuICAgIHRoaXMubWFpbi5qb2luKChqb2luQ291bnQsIG9uRG9uZSkgPT4ge1xuICAgICAgaWYoam9pbkNvdW50ID09PSAxICYmIHRoaXMuY29tbWl0UGVuZGluZ0xpbmsobGlua1JlZikpe1xuICAgICAgICB0aGlzLnJlcXVlc3RET01VcGRhdGUoKCkgPT4ge1xuICAgICAgICAgIERPTS5maW5kUGh4U3RpY2t5KGRvY3VtZW50KS5mb3JFYWNoKGVsID0+IG5ld01haW5FbC5hcHBlbmRDaGlsZChlbCkpXG4gICAgICAgICAgdGhpcy5vdXRnb2luZ01haW5FbC5yZXBsYWNlV2l0aChuZXdNYWluRWwpXG4gICAgICAgICAgdGhpcy5vdXRnb2luZ01haW5FbCA9IG51bGxcbiAgICAgICAgICBjYWxsYmFjayAmJiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spXG4gICAgICAgICAgb25Eb25lKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgdHJhbnNpdGlvblJlbW92ZXMoZWxlbWVudHMpe1xuICAgIGxldCByZW1vdmVBdHRyID0gdGhpcy5iaW5kaW5nKFwicmVtb3ZlXCIpXG4gICAgZWxlbWVudHMgPSBlbGVtZW50cyB8fCBET00uYWxsKGRvY3VtZW50LCBgWyR7cmVtb3ZlQXR0cn1dYClcbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIGlmKGRvY3VtZW50LmJvZHkuY29udGFpbnMoZWwpKXsgLy8gc2tpcCBjaGlsZHJlbiBhbHJlYWR5IHJlbW92ZWRcbiAgICAgICAgdGhpcy5leGVjSlMoZWwsIGVsLmdldEF0dHJpYnV0ZShyZW1vdmVBdHRyKSwgXCJyZW1vdmVcIilcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgaXNQaHhWaWV3KGVsKXsgcmV0dXJuIGVsLmdldEF0dHJpYnV0ZSAmJiBlbC5nZXRBdHRyaWJ1dGUoUEhYX1NFU1NJT04pICE9PSBudWxsIH1cblxuICBuZXdSb290VmlldyhlbCwgZmxhc2gpe1xuICAgIGxldCB2aWV3ID0gbmV3IFZpZXcoZWwsIHRoaXMsIG51bGwsIGZsYXNoKVxuICAgIHRoaXMucm9vdHNbdmlldy5pZF0gPSB2aWV3XG4gICAgcmV0dXJuIHZpZXdcbiAgfVxuXG4gIG93bmVyKGNoaWxkRWwsIGNhbGxiYWNrKXtcbiAgICBsZXQgdmlldyA9IG1heWJlKGNoaWxkRWwuY2xvc2VzdChQSFhfVklFV19TRUxFQ1RPUiksIGVsID0+IHRoaXMuZ2V0Vmlld0J5RWwoZWwpKSB8fCB0aGlzLm1haW5cbiAgICBpZih2aWV3KXsgY2FsbGJhY2sodmlldykgfVxuICB9XG5cbiAgd2l0aGluT3duZXJzKGNoaWxkRWwsIGNhbGxiYWNrKXtcbiAgICB0aGlzLm93bmVyKGNoaWxkRWwsIHZpZXcgPT4gY2FsbGJhY2sodmlldywgY2hpbGRFbCkpXG4gIH1cblxuICBnZXRWaWV3QnlFbChlbCl7XG4gICAgbGV0IHJvb3RJZCA9IGVsLmdldEF0dHJpYnV0ZShQSFhfUk9PVF9JRClcbiAgICByZXR1cm4gbWF5YmUodGhpcy5nZXRSb290QnlJZChyb290SWQpLCByb290ID0+IHJvb3QuZ2V0RGVzY2VuZGVudEJ5RWwoZWwpKVxuICB9XG5cbiAgZ2V0Um9vdEJ5SWQoaWQpeyByZXR1cm4gdGhpcy5yb290c1tpZF0gfVxuXG4gIGRlc3Ryb3lBbGxWaWV3cygpe1xuICAgIGZvcihsZXQgaWQgaW4gdGhpcy5yb290cyl7XG4gICAgICB0aGlzLnJvb3RzW2lkXS5kZXN0cm95KClcbiAgICAgIGRlbGV0ZSB0aGlzLnJvb3RzW2lkXVxuICAgIH1cbiAgICB0aGlzLm1haW4gPSBudWxsXG4gIH1cblxuICBkZXN0cm95Vmlld0J5RWwoZWwpe1xuICAgIGxldCByb290ID0gdGhpcy5nZXRSb290QnlJZChlbC5nZXRBdHRyaWJ1dGUoUEhYX1JPT1RfSUQpKVxuICAgIGlmKHJvb3QgJiYgcm9vdC5pZCA9PT0gZWwuaWQpe1xuICAgICAgcm9vdC5kZXN0cm95KClcbiAgICAgIGRlbGV0ZSB0aGlzLnJvb3RzW3Jvb3QuaWRdXG4gICAgfSBlbHNlIGlmKHJvb3Qpe1xuICAgICAgcm9vdC5kZXN0cm95RGVzY2VuZGVudChlbC5pZClcbiAgICB9XG4gIH1cblxuICBzZXRBY3RpdmVFbGVtZW50KHRhcmdldCl7XG4gICAgaWYodGhpcy5hY3RpdmVFbGVtZW50ID09PSB0YXJnZXQpeyByZXR1cm4gfVxuICAgIHRoaXMuYWN0aXZlRWxlbWVudCA9IHRhcmdldFxuICAgIGxldCBjYW5jZWwgPSAoKSA9PiB7XG4gICAgICBpZih0YXJnZXQgPT09IHRoaXMuYWN0aXZlRWxlbWVudCl7IHRoaXMuYWN0aXZlRWxlbWVudCA9IG51bGwgfVxuICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIHRoaXMpXG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsIHRoaXMpXG4gICAgfVxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBjYW5jZWwpXG4gICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLCBjYW5jZWwpXG4gIH1cblxuICBnZXRBY3RpdmVFbGVtZW50KCl7XG4gICAgaWYoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYm9keSl7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50IHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBjYW4gYmUgbnVsbCBpbiBJbnRlcm5ldCBFeHBsb3JlciAxMVxuICAgICAgcmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgfHwgZG9jdW1lbnQuYm9keVxuICAgIH1cbiAgfVxuXG4gIGRyb3BBY3RpdmVFbGVtZW50KHZpZXcpe1xuICAgIGlmKHRoaXMucHJldkFjdGl2ZSAmJiB2aWV3Lm93bnNFbGVtZW50KHRoaXMucHJldkFjdGl2ZSkpe1xuICAgICAgdGhpcy5wcmV2QWN0aXZlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHJlc3RvcmVQcmV2aW91c2x5QWN0aXZlRm9jdXMoKXtcbiAgICBpZih0aGlzLnByZXZBY3RpdmUgJiYgdGhpcy5wcmV2QWN0aXZlICE9PSBkb2N1bWVudC5ib2R5KXtcbiAgICAgIHRoaXMucHJldkFjdGl2ZS5mb2N1cygpXG4gICAgfVxuICB9XG5cbiAgYmx1ckFjdGl2ZUVsZW1lbnQoKXtcbiAgICB0aGlzLnByZXZBY3RpdmUgPSB0aGlzLmdldEFjdGl2ZUVsZW1lbnQoKVxuICAgIGlmKHRoaXMucHJldkFjdGl2ZSAhPT0gZG9jdW1lbnQuYm9keSl7IHRoaXMucHJldkFjdGl2ZS5ibHVyKCkgfVxuICB9XG5cbiAgYmluZFRvcExldmVsRXZlbnRzKCl7XG4gICAgaWYodGhpcy5ib3VuZFRvcExldmVsRXZlbnRzKXsgcmV0dXJuIH1cblxuICAgIHRoaXMuYm91bmRUb3BMZXZlbEV2ZW50cyA9IHRydWVcbiAgICAvLyBlbnRlciBmYWlsc2FmZSByZWxvYWQgaWYgc2VydmVyIGhhcyBnb25lIGF3YXkgaW50ZW50aW9uYWxseSwgc3VjaCBhcyBcImRpc2Nvbm5lY3RcIiBicm9hZGNhc3RcbiAgICB0aGlzLnNvY2tldC5vbkNsb3NlKGV2ZW50ID0+IHtcbiAgICAgIGlmKGV2ZW50ICYmIGV2ZW50LmNvZGUgPT09IDEwMDAgJiYgdGhpcy5tYWluKXtcbiAgICAgICAgdGhpcy5yZWxvYWRXaXRoSml0dGVyKHRoaXMubWFpbilcbiAgICAgIH1cbiAgICB9KVxuICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uICgpeyB9KSAvLyBlbnN1cmUgYWxsIGNsaWNrIGV2ZW50cyBidWJibGUgZm9yIG1vYmlsZSBTYWZhcmlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VzaG93XCIsIGUgPT4ge1xuICAgICAgaWYoZS5wZXJzaXN0ZWQpeyAvLyByZWxvYWQgcGFnZSBpZiBiZWluZyByZXN0b3JlZCBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZVxuICAgICAgICB0aGlzLmdldFNvY2tldCgpLmRpc2Nvbm5lY3QoKVxuICAgICAgICB0aGlzLndpdGhQYWdlTG9hZGluZyh7dG86IHdpbmRvdy5sb2NhdGlvbi5ocmVmLCBraW5kOiBcInJlZGlyZWN0XCJ9KVxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cbiAgICB9LCB0cnVlKVxuICAgIHRoaXMuYmluZE5hdigpXG4gICAgdGhpcy5iaW5kQ2xpY2tzKClcbiAgICB0aGlzLmJpbmRGb3JtcygpXG4gICAgdGhpcy5iaW5kKHtrZXl1cDogXCJrZXl1cFwiLCBrZXlkb3duOiBcImtleWRvd25cIn0sIChlLCB0eXBlLCB2aWV3LCB0YXJnZXRFbCwgcGh4RXZlbnQsIGV2ZW50VGFyZ2V0KSA9PiB7XG4gICAgICBsZXQgbWF0Y2hLZXkgPSB0YXJnZXRFbC5nZXRBdHRyaWJ1dGUodGhpcy5iaW5kaW5nKFBIWF9LRVkpKVxuICAgICAgbGV0IHByZXNzZWRLZXkgPSBlLmtleSAmJiBlLmtleS50b0xvd2VyQ2FzZSgpIC8vIGNocm9tZSBjbGlja2VkIGF1dG9jb21wbGV0ZXMgc2VuZCBhIGtleWRvd24gd2l0aG91dCBrZXlcbiAgICAgIGlmKG1hdGNoS2V5ICYmIG1hdGNoS2V5LnRvTG93ZXJDYXNlKCkgIT09IHByZXNzZWRLZXkpeyByZXR1cm4gfVxuXG4gICAgICBsZXQgZGF0YSA9IHtrZXk6IGUua2V5LCAuLi50aGlzLmV2ZW50TWV0YSh0eXBlLCBlLCB0YXJnZXRFbCl9XG4gICAgICBKUy5leGVjKHR5cGUsIHBoeEV2ZW50LCB2aWV3LCB0YXJnZXRFbCwgW1wicHVzaFwiLCB7ZGF0YX1dKVxuICAgIH0pXG4gICAgdGhpcy5iaW5kKHtibHVyOiBcImZvY3Vzb3V0XCIsIGZvY3VzOiBcImZvY3VzaW5cIn0sIChlLCB0eXBlLCB2aWV3LCB0YXJnZXRFbCwgcGh4RXZlbnQsIGV2ZW50VGFyZ2V0KSA9PiB7XG4gICAgICBpZighZXZlbnRUYXJnZXQpe1xuICAgICAgICBsZXQgZGF0YSA9IHtrZXk6IGUua2V5LCAuLi50aGlzLmV2ZW50TWV0YSh0eXBlLCBlLCB0YXJnZXRFbCl9XG4gICAgICAgIEpTLmV4ZWModHlwZSwgcGh4RXZlbnQsIHZpZXcsIHRhcmdldEVsLCBbXCJwdXNoXCIsIHtkYXRhfV0pXG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmJpbmQoe2JsdXI6IFwiYmx1clwiLCBmb2N1czogXCJmb2N1c1wifSwgKGUsIHR5cGUsIHZpZXcsIHRhcmdldEVsLCB0YXJnZXRDdHgsIHBoeEV2ZW50LCBwaHhUYXJnZXQpID0+IHtcbiAgICAgIC8vIGJsdXIgYW5kIGZvY3VzIGFyZSB0cmlnZ2VyZWQgb24gZG9jdW1lbnQgYW5kIHdpbmRvdy4gRGlzY2FyZCBvbmUgdG8gYXZvaWQgZHVwc1xuICAgICAgaWYocGh4VGFyZ2V0ID09PSBcIndpbmRvd1wiKXtcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmV2ZW50TWV0YSh0eXBlLCBlLCB0YXJnZXRFbClcbiAgICAgICAgSlMuZXhlYyh0eXBlLCBwaHhFdmVudCwgdmlldywgdGFyZ2V0RWwsIFtcInB1c2hcIiwge2RhdGF9XSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZHJhZ292ZXJcIiwgZSA9PiBlLnByZXZlbnREZWZhdWx0KCkpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJkcm9wXCIsIGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBsZXQgZHJvcFRhcmdldElkID0gbWF5YmUoY2xvc2VzdFBoeEJpbmRpbmcoZS50YXJnZXQsIHRoaXMuYmluZGluZyhQSFhfRFJPUF9UQVJHRVQpKSwgdHJ1ZVRhcmdldCA9PiB7XG4gICAgICAgIHJldHVybiB0cnVlVGFyZ2V0LmdldEF0dHJpYnV0ZSh0aGlzLmJpbmRpbmcoUEhYX0RST1BfVEFSR0VUKSlcbiAgICAgIH0pXG4gICAgICBsZXQgZHJvcFRhcmdldCA9IGRyb3BUYXJnZXRJZCAmJiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkcm9wVGFyZ2V0SWQpXG4gICAgICBsZXQgZmlsZXMgPSBBcnJheS5mcm9tKGUuZGF0YVRyYW5zZmVyLmZpbGVzIHx8IFtdKVxuICAgICAgaWYoIWRyb3BUYXJnZXQgfHwgZHJvcFRhcmdldC5kaXNhYmxlZCB8fCBmaWxlcy5sZW5ndGggPT09IDAgfHwgIShkcm9wVGFyZ2V0LmZpbGVzIGluc3RhbmNlb2YgRmlsZUxpc3QpKXsgcmV0dXJuIH1cblxuICAgICAgTGl2ZVVwbG9hZGVyLnRyYWNrRmlsZXMoZHJvcFRhcmdldCwgZmlsZXMpXG4gICAgICBkcm9wVGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwiaW5wdXRcIiwge2J1YmJsZXM6IHRydWV9KSlcbiAgICB9KVxuICAgIHRoaXMub24oUEhYX1RSQUNLX1VQTE9BRFMsIGUgPT4ge1xuICAgICAgbGV0IHVwbG9hZFRhcmdldCA9IGUudGFyZ2V0XG4gICAgICBpZighRE9NLmlzVXBsb2FkSW5wdXQodXBsb2FkVGFyZ2V0KSl7IHJldHVybiB9XG4gICAgICBsZXQgZmlsZXMgPSBBcnJheS5mcm9tKGUuZGV0YWlsLmZpbGVzIHx8IFtdKS5maWx0ZXIoZiA9PiBmIGluc3RhbmNlb2YgRmlsZSB8fCBmIGluc3RhbmNlb2YgQmxvYilcbiAgICAgIExpdmVVcGxvYWRlci50cmFja0ZpbGVzKHVwbG9hZFRhcmdldCwgZmlsZXMpXG4gICAgICB1cGxvYWRUYXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJpbnB1dFwiLCB7YnViYmxlczogdHJ1ZX0pKVxuICAgIH0pXG4gIH1cblxuICBldmVudE1ldGEoZXZlbnROYW1lLCBlLCB0YXJnZXRFbCl7XG4gICAgbGV0IGNhbGxiYWNrID0gdGhpcy5tZXRhZGF0YUNhbGxiYWNrc1tldmVudE5hbWVdXG4gICAgcmV0dXJuIGNhbGxiYWNrID8gY2FsbGJhY2soZSwgdGFyZ2V0RWwpIDoge31cbiAgfVxuXG4gIHNldFBlbmRpbmdMaW5rKGhyZWYpe1xuICAgIHRoaXMubGlua1JlZisrXG4gICAgdGhpcy5wZW5kaW5nTGluayA9IGhyZWZcbiAgICByZXR1cm4gdGhpcy5saW5rUmVmXG4gIH1cblxuICBjb21taXRQZW5kaW5nTGluayhsaW5rUmVmKXtcbiAgICBpZih0aGlzLmxpbmtSZWYgIT09IGxpbmtSZWYpe1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaHJlZiA9IHRoaXMucGVuZGluZ0xpbmtcbiAgICAgIHRoaXMucGVuZGluZ0xpbmsgPSBudWxsXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGdldEhyZWYoKXsgcmV0dXJuIHRoaXMuaHJlZiB9XG5cbiAgaGFzUGVuZGluZ0xpbmsoKXsgcmV0dXJuICEhdGhpcy5wZW5kaW5nTGluayB9XG5cbiAgYmluZChldmVudHMsIGNhbGxiYWNrKXtcbiAgICBmb3IobGV0IGV2ZW50IGluIGV2ZW50cyl7XG4gICAgICBsZXQgYnJvd3NlckV2ZW50TmFtZSA9IGV2ZW50c1tldmVudF1cblxuICAgICAgdGhpcy5vbihicm93c2VyRXZlbnROYW1lLCBlID0+IHtcbiAgICAgICAgbGV0IGJpbmRpbmcgPSB0aGlzLmJpbmRpbmcoZXZlbnQpXG4gICAgICAgIGxldCB3aW5kb3dCaW5kaW5nID0gdGhpcy5iaW5kaW5nKGB3aW5kb3ctJHtldmVudH1gKVxuICAgICAgICBsZXQgdGFyZ2V0UGh4RXZlbnQgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUgJiYgZS50YXJnZXQuZ2V0QXR0cmlidXRlKGJpbmRpbmcpXG4gICAgICAgIGlmKHRhcmdldFBoeEV2ZW50KXtcbiAgICAgICAgICB0aGlzLmRlYm91bmNlKGUudGFyZ2V0LCBlLCBicm93c2VyRXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLndpdGhpbk93bmVycyhlLnRhcmdldCwgdmlldyA9PiB7XG4gICAgICAgICAgICAgIGNhbGxiYWNrKGUsIGV2ZW50LCB2aWV3LCBlLnRhcmdldCwgdGFyZ2V0UGh4RXZlbnQsIG51bGwpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgRE9NLmFsbChkb2N1bWVudCwgYFske3dpbmRvd0JpbmRpbmd9XWAsIGVsID0+IHtcbiAgICAgICAgICAgIGxldCBwaHhFdmVudCA9IGVsLmdldEF0dHJpYnV0ZSh3aW5kb3dCaW5kaW5nKVxuICAgICAgICAgICAgdGhpcy5kZWJvdW5jZShlbCwgZSwgYnJvd3NlckV2ZW50TmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLndpdGhpbk93bmVycyhlbCwgdmlldyA9PiB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZSwgZXZlbnQsIHZpZXcsIGVsLCBwaHhFdmVudCwgXCJ3aW5kb3dcIilcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBiaW5kQ2xpY2tzKCl7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgZSA9PiB0aGlzLmNsaWNrU3RhcnRlZEF0VGFyZ2V0ID0gZS50YXJnZXQpXG4gICAgdGhpcy5iaW5kQ2xpY2soXCJjbGlja1wiLCBcImNsaWNrXCIsIGZhbHNlKVxuICAgIHRoaXMuYmluZENsaWNrKFwibW91c2Vkb3duXCIsIFwiY2FwdHVyZS1jbGlja1wiLCB0cnVlKVxuICB9XG5cbiAgYmluZENsaWNrKGV2ZW50TmFtZSwgYmluZGluZ05hbWUsIGNhcHR1cmUpe1xuICAgIGxldCBjbGljayA9IHRoaXMuYmluZGluZyhiaW5kaW5nTmFtZSlcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGUgPT4ge1xuICAgICAgbGV0IHRhcmdldCA9IG51bGxcbiAgICAgIGlmKGNhcHR1cmUpe1xuICAgICAgICB0YXJnZXQgPSBlLnRhcmdldC5tYXRjaGVzKGBbJHtjbGlja31dYCkgPyBlLnRhcmdldCA6IGUudGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoYFske2NsaWNrfV1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGNsaWNrU3RhcnRlZEF0VGFyZ2V0ID0gdGhpcy5jbGlja1N0YXJ0ZWRBdFRhcmdldCB8fCBlLnRhcmdldFxuICAgICAgICB0YXJnZXQgPSBjbG9zZXN0UGh4QmluZGluZyhjbGlja1N0YXJ0ZWRBdFRhcmdldCwgY2xpY2spXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hDbGlja0F3YXkoZSwgY2xpY2tTdGFydGVkQXRUYXJnZXQpXG4gICAgICAgIHRoaXMuY2xpY2tTdGFydGVkQXRUYXJnZXQgPSBudWxsXG4gICAgICB9XG4gICAgICBsZXQgcGh4RXZlbnQgPSB0YXJnZXQgJiYgdGFyZ2V0LmdldEF0dHJpYnV0ZShjbGljaylcbiAgICAgIGlmKCFwaHhFdmVudCl7IHJldHVybiB9XG4gICAgICBpZih0YXJnZXQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSA9PT0gXCIjXCIpeyBlLnByZXZlbnREZWZhdWx0KCkgfVxuXG4gICAgICB0aGlzLmRlYm91bmNlKHRhcmdldCwgZSwgXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMud2l0aGluT3duZXJzKHRhcmdldCwgdmlldyA9PiB7XG4gICAgICAgICAgSlMuZXhlYyhcImNsaWNrXCIsIHBoeEV2ZW50LCB2aWV3LCB0YXJnZXQsIFtcInB1c2hcIiwge2RhdGE6IHRoaXMuZXZlbnRNZXRhKFwiY2xpY2tcIiwgZSwgdGFyZ2V0KX1dKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9LCBjYXB0dXJlKVxuICB9XG5cbiAgZGlzcGF0Y2hDbGlja0F3YXkoZSwgY2xpY2tTdGFydGVkQXQpe1xuICAgIGxldCBwaHhDbGlja0F3YXkgPSB0aGlzLmJpbmRpbmcoXCJjbGljay1hd2F5XCIpXG4gICAgRE9NLmFsbChkb2N1bWVudCwgYFske3BoeENsaWNrQXdheX1dYCwgZWwgPT4ge1xuICAgICAgaWYoIShlbC5pc1NhbWVOb2RlKGNsaWNrU3RhcnRlZEF0KSB8fCBlbC5jb250YWlucyhjbGlja1N0YXJ0ZWRBdCkpKXtcbiAgICAgICAgdGhpcy53aXRoaW5Pd25lcnMoZS50YXJnZXQsIHZpZXcgPT4ge1xuICAgICAgICAgIGxldCBwaHhFdmVudCA9IGVsLmdldEF0dHJpYnV0ZShwaHhDbGlja0F3YXkpXG4gICAgICAgICAgaWYoSlMuaXNWaXNpYmxlKGVsKSl7XG4gICAgICAgICAgICBKUy5leGVjKFwiY2xpY2tcIiwgcGh4RXZlbnQsIHZpZXcsIGVsLCBbXCJwdXNoXCIsIHtkYXRhOiB0aGlzLmV2ZW50TWV0YShcImNsaWNrXCIsIGUsIGUudGFyZ2V0KX1dKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYmluZE5hdigpe1xuICAgIGlmKCFCcm93c2VyLmNhblB1c2hTdGF0ZSgpKXsgcmV0dXJuIH1cbiAgICBpZihoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uKXsgaGlzdG9yeS5zY3JvbGxSZXN0b3JhdGlvbiA9IFwibWFudWFsXCIgfVxuICAgIGxldCBzY3JvbGxUaW1lciA9IG51bGxcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBfZSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQoc2Nyb2xsVGltZXIpXG4gICAgICBzY3JvbGxUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBCcm93c2VyLnVwZGF0ZUN1cnJlbnRTdGF0ZShzdGF0ZSA9PiBPYmplY3QuYXNzaWduKHN0YXRlLCB7c2Nyb2xsOiB3aW5kb3cuc2Nyb2xsWX0pKVxuICAgICAgfSwgMTAwKVxuICAgIH0pXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb3BzdGF0ZVwiLCBldmVudCA9PiB7XG4gICAgICBpZighdGhpcy5yZWdpc3Rlck5ld0xvY2F0aW9uKHdpbmRvdy5sb2NhdGlvbikpeyByZXR1cm4gfVxuICAgICAgbGV0IHt0eXBlLCBpZCwgcm9vdCwgc2Nyb2xsfSA9IGV2ZW50LnN0YXRlIHx8IHt9XG4gICAgICBsZXQgaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmXG5cbiAgICAgIHRoaXMucmVxdWVzdERPTVVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGlmKHRoaXMubWFpbi5pc0Nvbm5lY3RlZCgpICYmICh0eXBlID09PSBcInBhdGNoXCIgJiYgaWQgPT09IHRoaXMubWFpbi5pZCkpe1xuICAgICAgICAgIHRoaXMubWFpbi5wdXNoTGlua1BhdGNoKGhyZWYsIG51bGwpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXBsYWNlTWFpbihocmVmLCBudWxsLCAoKSA9PiB7XG4gICAgICAgICAgICBpZihyb290KXsgdGhpcy5yZXBsYWNlUm9vdEhpc3RvcnkoKSB9XG4gICAgICAgICAgICBpZih0eXBlb2Yoc2Nyb2xsKSA9PT0gXCJudW1iZXJcIil7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCBzY3JvbGwpXG4gICAgICAgICAgICAgIH0sIDApIC8vIHRoZSBib2R5IG5lZWRzIHRvIHJlbmRlciBiZWZvcmUgd2Ugc2Nyb2xsLlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSwgZmFsc2UpXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAgICAgIGxldCB0YXJnZXQgPSBjbG9zZXN0UGh4QmluZGluZyhlLnRhcmdldCwgUEhYX0xJVkVfTElOSylcbiAgICAgIGxldCB0eXBlID0gdGFyZ2V0ICYmIHRhcmdldC5nZXRBdHRyaWJ1dGUoUEhYX0xJVkVfTElOSylcbiAgICAgIGxldCB3YW50c05ld1RhYiA9IGUubWV0YUtleSB8fCBlLmN0cmxLZXkgfHwgZS5idXR0b24gPT09IDFcbiAgICAgIGlmKCF0eXBlIHx8ICF0aGlzLmlzQ29ubmVjdGVkKCkgfHwgIXRoaXMubWFpbiB8fCB3YW50c05ld1RhYil7IHJldHVybiB9XG5cbiAgICAgIGxldCBocmVmID0gdGFyZ2V0LmhyZWZcbiAgICAgIGxldCBsaW5rU3RhdGUgPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFBIWF9MSU5LX1NUQVRFKVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpIC8vIGRvIG5vdCBidWJibGUgY2xpY2sgdG8gcmVndWxhciBwaHgtY2xpY2sgYmluZGluZ3NcbiAgICAgIGlmKHRoaXMucGVuZGluZ0xpbmsgPT09IGhyZWYpeyByZXR1cm4gfVxuXG4gICAgICB0aGlzLnJlcXVlc3RET01VcGRhdGUoKCkgPT4ge1xuICAgICAgICBpZih0eXBlID09PSBcInBhdGNoXCIpe1xuICAgICAgICAgIHRoaXMucHVzaEhpc3RvcnlQYXRjaChocmVmLCBsaW5rU3RhdGUsIHRhcmdldClcbiAgICAgICAgfSBlbHNlIGlmKHR5cGUgPT09IFwicmVkaXJlY3RcIil7XG4gICAgICAgICAgdGhpcy5oaXN0b3J5UmVkaXJlY3QoaHJlZiwgbGlua1N0YXRlKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtQSFhfTElWRV9MSU5LfSB0byBiZSBcInBhdGNoXCIgb3IgXCJyZWRpcmVjdFwiLCBnb3Q6ICR7dHlwZX1gKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sIGZhbHNlKVxuICB9XG5cbiAgZGlzcGF0Y2hFdmVudChldmVudCwgcGF5bG9hZCA9IHt9KXtcbiAgICBET00uZGlzcGF0Y2hFdmVudCh3aW5kb3csIGBwaHg6JHtldmVudH1gLCB7ZGV0YWlsOiBwYXlsb2FkfSlcbiAgfVxuXG4gIGRpc3BhdGNoRXZlbnRzKGV2ZW50cyl7XG4gICAgZXZlbnRzLmZvckVhY2goKFtldmVudCwgcGF5bG9hZF0pID0+IHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCwgcGF5bG9hZCkpXG4gIH1cblxuICB3aXRoUGFnZUxvYWRpbmcoaW5mbywgY2FsbGJhY2spe1xuICAgIERPTS5kaXNwYXRjaEV2ZW50KHdpbmRvdywgXCJwaHg6cGFnZS1sb2FkaW5nLXN0YXJ0XCIsIHtkZXRhaWw6IGluZm99KVxuICAgIGxldCBkb25lID0gKCkgPT4gRE9NLmRpc3BhdGNoRXZlbnQod2luZG93LCBcInBoeDpwYWdlLWxvYWRpbmctc3RvcFwiLCB7ZGV0YWlsOiBpbmZvfSlcbiAgICByZXR1cm4gY2FsbGJhY2sgPyBjYWxsYmFjayhkb25lKSA6IGRvbmVcbiAgfVxuXG4gIHB1c2hIaXN0b3J5UGF0Y2goaHJlZiwgbGlua1N0YXRlLCB0YXJnZXRFbCl7XG4gICAgdGhpcy53aXRoUGFnZUxvYWRpbmcoe3RvOiBocmVmLCBraW5kOiBcInBhdGNoXCJ9LCBkb25lID0+IHtcbiAgICAgIHRoaXMubWFpbi5wdXNoTGlua1BhdGNoKGhyZWYsIHRhcmdldEVsLCBsaW5rUmVmID0+IHtcbiAgICAgICAgdGhpcy5oaXN0b3J5UGF0Y2goaHJlZiwgbGlua1N0YXRlLCBsaW5rUmVmKVxuICAgICAgICBkb25lKClcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGhpc3RvcnlQYXRjaChocmVmLCBsaW5rU3RhdGUsIGxpbmtSZWYgPSB0aGlzLnNldFBlbmRpbmdMaW5rKGhyZWYpKXtcbiAgICBpZighdGhpcy5jb21taXRQZW5kaW5nTGluayhsaW5rUmVmKSl7IHJldHVybiB9XG5cbiAgICBCcm93c2VyLnB1c2hTdGF0ZShsaW5rU3RhdGUsIHt0eXBlOiBcInBhdGNoXCIsIGlkOiB0aGlzLm1haW4uaWR9LCBocmVmKVxuICAgIHRoaXMucmVnaXN0ZXJOZXdMb2NhdGlvbih3aW5kb3cubG9jYXRpb24pXG4gIH1cblxuICBoaXN0b3J5UmVkaXJlY3QoaHJlZiwgbGlua1N0YXRlLCBmbGFzaCl7XG4gICAgbGV0IHNjcm9sbCA9IHdpbmRvdy5zY3JvbGxZXG4gICAgdGhpcy53aXRoUGFnZUxvYWRpbmcoe3RvOiBocmVmLCBraW5kOiBcInJlZGlyZWN0XCJ9LCBkb25lID0+IHtcbiAgICAgIHRoaXMucmVwbGFjZU1haW4oaHJlZiwgZmxhc2gsICgpID0+IHtcbiAgICAgICAgQnJvd3Nlci5wdXNoU3RhdGUobGlua1N0YXRlLCB7dHlwZTogXCJyZWRpcmVjdFwiLCBpZDogdGhpcy5tYWluLmlkLCBzY3JvbGw6IHNjcm9sbH0sIGhyZWYpXG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZXdMb2NhdGlvbih3aW5kb3cubG9jYXRpb24pXG4gICAgICAgIGRvbmUoKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgcmVwbGFjZVJvb3RIaXN0b3J5KCl7XG4gICAgQnJvd3Nlci5wdXNoU3RhdGUoXCJyZXBsYWNlXCIsIHtyb290OiB0cnVlLCB0eXBlOiBcInBhdGNoXCIsIGlkOiB0aGlzLm1haW4uaWR9KVxuICB9XG5cbiAgcmVnaXN0ZXJOZXdMb2NhdGlvbihuZXdMb2NhdGlvbil7XG4gICAgbGV0IHtwYXRobmFtZSwgc2VhcmNofSA9IHRoaXMuY3VycmVudExvY2F0aW9uXG4gICAgaWYocGF0aG5hbWUgKyBzZWFyY2ggPT09IG5ld0xvY2F0aW9uLnBhdGhuYW1lICsgbmV3TG9jYXRpb24uc2VhcmNoKXtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRMb2NhdGlvbiA9IGNsb25lKG5ld0xvY2F0aW9uKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBiaW5kRm9ybXMoKXtcbiAgICBsZXQgaXRlcmF0aW9ucyA9IDBcbiAgICB0aGlzLm9uKFwic3VibWl0XCIsIGUgPT4ge1xuICAgICAgbGV0IHBoeEV2ZW50ID0gZS50YXJnZXQuZ2V0QXR0cmlidXRlKHRoaXMuYmluZGluZyhcInN1Ym1pdFwiKSlcbiAgICAgIGlmKCFwaHhFdmVudCl7IHJldHVybiB9XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGUudGFyZ2V0LmRpc2FibGVkID0gdHJ1ZVxuICAgICAgdGhpcy53aXRoaW5Pd25lcnMoZS50YXJnZXQsIHZpZXcgPT4ge1xuICAgICAgICBKUy5leGVjKFwic3VibWl0XCIsIHBoeEV2ZW50LCB2aWV3LCBlLnRhcmdldCwgW1wicHVzaFwiLCB7fV0pXG4gICAgICB9KVxuICAgIH0sIGZhbHNlKVxuXG4gICAgZm9yKGxldCB0eXBlIG9mIFtcImNoYW5nZVwiLCBcImlucHV0XCJdKXtcbiAgICAgIHRoaXMub24odHlwZSwgZSA9PiB7XG4gICAgICAgIGxldCBwaHhDaGFuZ2UgPSB0aGlzLmJpbmRpbmcoXCJjaGFuZ2VcIilcbiAgICAgICAgbGV0IGlucHV0ID0gZS50YXJnZXRcbiAgICAgICAgbGV0IGlucHV0RXZlbnQgPSBpbnB1dC5nZXRBdHRyaWJ1dGUocGh4Q2hhbmdlKVxuICAgICAgICBsZXQgZm9ybUV2ZW50ID0gaW5wdXQuZm9ybSAmJiBpbnB1dC5mb3JtLmdldEF0dHJpYnV0ZShwaHhDaGFuZ2UpXG4gICAgICAgIGxldCBwaHhFdmVudCA9IGlucHV0RXZlbnQgfHwgZm9ybUV2ZW50XG4gICAgICAgIGlmKCFwaHhFdmVudCl7IHJldHVybiB9XG4gICAgICAgIGlmKGlucHV0LnR5cGUgPT09IFwibnVtYmVyXCIgJiYgaW5wdXQudmFsaWRpdHkgJiYgaW5wdXQudmFsaWRpdHkuYmFkSW5wdXQpeyByZXR1cm4gfVxuXG4gICAgICAgIGxldCBkaXNwYXRjaGVyID0gaW5wdXRFdmVudCA/IGlucHV0IDogaW5wdXQuZm9ybVxuICAgICAgICBsZXQgY3VycmVudEl0ZXJhdGlvbnMgPSBpdGVyYXRpb25zXG4gICAgICAgIGl0ZXJhdGlvbnMrK1xuICAgICAgICBsZXQge2F0OiBhdCwgdHlwZTogbGFzdFR5cGV9ID0gRE9NLnByaXZhdGUoaW5wdXQsIFwicHJldi1pdGVyYXRpb25cIikgfHwge31cbiAgICAgICAgLy8gZGV0ZWN0IGR1cCBiZWNhdXNlIHNvbWUgYnJvd3NlcnMgZGlzcGF0Y2ggYm90aCBcImlucHV0XCIgYW5kIFwiY2hhbmdlXCJcbiAgICAgICAgaWYoYXQgPT09IGN1cnJlbnRJdGVyYXRpb25zIC0gMSAmJiB0eXBlICE9PSBsYXN0VHlwZSl7IHJldHVybiB9XG5cbiAgICAgICAgRE9NLnB1dFByaXZhdGUoaW5wdXQsIFwicHJldi1pdGVyYXRpb25cIiwge2F0OiBjdXJyZW50SXRlcmF0aW9ucywgdHlwZTogdHlwZX0pXG5cbiAgICAgICAgdGhpcy5kZWJvdW5jZShpbnB1dCwgZSwgdHlwZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMud2l0aGluT3duZXJzKGRpc3BhdGNoZXIsIHZpZXcgPT4ge1xuICAgICAgICAgICAgRE9NLnB1dFByaXZhdGUoaW5wdXQsIFBIWF9IQVNfRk9DVVNFRCwgdHJ1ZSlcbiAgICAgICAgICAgIGlmKCFET00uaXNUZXh0dWFsSW5wdXQoaW5wdXQpKXtcbiAgICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmVFbGVtZW50KGlucHV0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgSlMuZXhlYyhcImNoYW5nZVwiLCBwaHhFdmVudCwgdmlldywgaW5wdXQsIFtcInB1c2hcIiwge190YXJnZXQ6IGUudGFyZ2V0Lm5hbWUsIGRpc3BhdGNoZXI6IGRpc3BhdGNoZXJ9XSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgfSwgZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgZGVib3VuY2UoZWwsIGV2ZW50LCBldmVudFR5cGUsIGNhbGxiYWNrKXtcbiAgICBpZihldmVudFR5cGUgPT09IFwiYmx1clwiIHx8IGV2ZW50VHlwZSA9PT0gXCJmb2N1c291dFwiKXsgcmV0dXJuIGNhbGxiYWNrKCkgfVxuXG4gICAgbGV0IHBoeERlYm91bmNlID0gdGhpcy5iaW5kaW5nKFBIWF9ERUJPVU5DRSlcbiAgICBsZXQgcGh4VGhyb3R0bGUgPSB0aGlzLmJpbmRpbmcoUEhYX1RIUk9UVExFKVxuICAgIGxldCBkZWZhdWx0RGVib3VuY2UgPSB0aGlzLmRlZmF1bHRzLmRlYm91bmNlLnRvU3RyaW5nKClcbiAgICBsZXQgZGVmYXVsdFRocm90dGxlID0gdGhpcy5kZWZhdWx0cy50aHJvdHRsZS50b1N0cmluZygpXG5cbiAgICB0aGlzLndpdGhpbk93bmVycyhlbCwgdmlldyA9PiB7XG4gICAgICBsZXQgYXN5bmNGaWx0ZXIgPSAoKSA9PiAhdmlldy5pc0Rlc3Ryb3llZCgpICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnMoZWwpXG4gICAgICBET00uZGVib3VuY2UoZWwsIGV2ZW50LCBwaHhEZWJvdW5jZSwgZGVmYXVsdERlYm91bmNlLCBwaHhUaHJvdHRsZSwgZGVmYXVsdFRocm90dGxlLCBhc3luY0ZpbHRlciwgKCkgPT4ge1xuICAgICAgICBjYWxsYmFjaygpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBzaWxlbmNlRXZlbnRzKGNhbGxiYWNrKXtcbiAgICB0aGlzLnNpbGVuY2VkID0gdHJ1ZVxuICAgIGNhbGxiYWNrKClcbiAgICB0aGlzLnNpbGVuY2VkID0gZmFsc2VcbiAgfVxuXG4gIG9uKGV2ZW50LCBjYWxsYmFjayl7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGUgPT4ge1xuICAgICAgaWYoIXRoaXMuc2lsZW5jZWQpeyBjYWxsYmFjayhlKSB9XG4gICAgfSlcbiAgfVxufVxuXG5jbGFzcyBUcmFuc2l0aW9uU2V0IHtcbiAgY29uc3RydWN0b3IoKXtcbiAgICB0aGlzLnRyYW5zaXRpb25zID0gbmV3IFNldCgpXG4gICAgdGhpcy5wZW5kaW5nT3BzID0gW11cbiAgICB0aGlzLnJlc2V0KClcbiAgfVxuXG4gIHJlc2V0KCl7XG4gICAgdGhpcy50cmFuc2l0aW9ucy5mb3JFYWNoKHRpbWVyID0+IHtcbiAgICAgIGNhbmNlbFRpbWVvdXQodGltZXIpXG4gICAgICB0aGlzLnRyYW5zaXRpb25zLmRlbGV0ZSh0aW1lcilcbiAgICB9KVxuICAgIHRoaXMuZmx1c2hQZW5kaW5nT3BzKClcbiAgfVxuXG4gIGFmdGVyKGNhbGxiYWNrKXtcbiAgICBpZih0aGlzLnNpemUoKSA9PT0gMCl7XG4gICAgICBjYWxsYmFjaygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHVzaFBlbmRpbmdPcChjYWxsYmFjaylcbiAgICB9XG4gIH1cblxuICBhZGRUcmFuc2l0aW9uKHRpbWUsIG9uU3RhcnQsIG9uRG9uZSl7XG4gICAgb25TdGFydCgpXG4gICAgbGV0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zaXRpb25zLmRlbGV0ZSh0aW1lcilcbiAgICAgIG9uRG9uZSgpXG4gICAgICBpZih0aGlzLnNpemUoKSA9PT0gMCl7IHRoaXMuZmx1c2hQZW5kaW5nT3BzKCkgfVxuICAgIH0sIHRpbWUpXG4gICAgdGhpcy50cmFuc2l0aW9ucy5hZGQodGltZXIpXG4gIH1cblxuICBwdXNoUGVuZGluZ09wKG9wKXsgdGhpcy5wZW5kaW5nT3BzLnB1c2gob3ApIH1cblxuICBzaXplKCl7IHJldHVybiB0aGlzLnRyYW5zaXRpb25zLnNpemUgfVxuXG4gIGZsdXNoUGVuZGluZ09wcygpe1xuICAgIHRoaXMucGVuZGluZ09wcy5mb3JFYWNoKG9wID0+IG9wKCkpXG4gICAgdGhpcy5wZW5kaW5nT3BzID0gW11cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFVQSxPQUFFLFNBQVVBLFNBQVEsU0FBVTtBQUU3QjtBQUVBLFlBQUssT0FBTyxXQUFXLFlBQVksT0FBTyxPQUFPLFlBQVksVUFBVztBQVN2RSxpQkFBTyxVQUFVQSxRQUFPLFdBQ3ZCLFFBQVNBLFNBQVEsSUFBSyxJQUN0QixTQUFVLEdBQUk7QUFDYixnQkFBSyxDQUFDLEVBQUUsVUFBVztBQUNsQixvQkFBTSxJQUFJLE1BQU8sMENBQTJDO0FBQUEsWUFDN0Q7QUFDQSxtQkFBTyxRQUFTLENBQUU7QUFBQSxVQUNuQjtBQUFBLFFBQ0YsT0FBTztBQUNOLGtCQUFTQSxPQUFPO0FBQUEsUUFDakI7QUFBQSxNQUdELEdBQUssT0FBTyxXQUFXLGNBQWMsU0FBUyxTQUFNLFNBQVVDLFNBQVEsVUFBVztBQU1qRjtBQUVBLFlBQUksTUFBTSxDQUFDO0FBRVgsWUFBSSxXQUFXLE9BQU87QUFFdEIsWUFBSSxRQUFRLElBQUk7QUFFaEIsWUFBSSxPQUFPLElBQUksT0FBTyxTQUFVLE9BQVE7QUFDdkMsaUJBQU8sSUFBSSxLQUFLLEtBQU0sS0FBTTtBQUFBLFFBQzdCLElBQUksU0FBVSxPQUFRO0FBQ3JCLGlCQUFPLElBQUksT0FBTyxNQUFPLENBQUMsR0FBRyxLQUFNO0FBQUEsUUFDcEM7QUFHQSxZQUFJLE9BQU8sSUFBSTtBQUVmLFlBQUksVUFBVSxJQUFJO0FBRWxCLFlBQUksYUFBYSxDQUFDO0FBRWxCLFlBQUksV0FBVyxXQUFXO0FBRTFCLFlBQUksU0FBUyxXQUFXO0FBRXhCLFlBQUksYUFBYSxPQUFPO0FBRXhCLFlBQUksdUJBQXVCLFdBQVcsS0FBTSxNQUFPO0FBRW5ELFlBQUksVUFBVSxDQUFDO0FBRWYsWUFBSSxhQUFhLFNBQVNDLFlBQVksS0FBTTtBQVMxQyxpQkFBTyxPQUFPLFFBQVEsY0FBYyxPQUFPLElBQUksYUFBYSxZQUMzRCxPQUFPLElBQUksU0FBUztBQUFBLFFBQ3RCO0FBR0QsWUFBSSxXQUFXLFNBQVNDLFVBQVUsS0FBTTtBQUN0QyxpQkFBTyxPQUFPLFFBQVEsUUFBUSxJQUFJO0FBQUEsUUFDbkM7QUFHRCxZQUFJQyxZQUFXSCxRQUFPO0FBSXJCLFlBQUksNEJBQTRCO0FBQUEsVUFDL0IsTUFBTTtBQUFBLFVBQ04sS0FBSztBQUFBLFVBQ0wsT0FBTztBQUFBLFVBQ1AsVUFBVTtBQUFBLFFBQ1g7QUFFQSxpQkFBUyxRQUFTLE1BQU0sTUFBTUksTUFBTTtBQUNuQyxVQUFBQSxPQUFNQSxRQUFPRDtBQUViLGNBQUksR0FBRyxLQUNOLFNBQVNDLEtBQUksY0FBZSxRQUFTO0FBRXRDLGlCQUFPLE9BQU87QUFDZCxjQUFLLE1BQU87QUFDWCxpQkFBTSxLQUFLLDJCQUE0QjtBQVl0QyxvQkFBTSxLQUFNLENBQUUsS0FBSyxLQUFLLGdCQUFnQixLQUFLLGFBQWMsQ0FBRTtBQUM3RCxrQkFBSyxLQUFNO0FBQ1YsdUJBQU8sYUFBYyxHQUFHLEdBQUk7QUFBQSxjQUM3QjtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQ0EsVUFBQUEsS0FBSSxLQUFLLFlBQWEsTUFBTyxFQUFFLFdBQVcsWUFBYSxNQUFPO0FBQUEsUUFDL0Q7QUFHRCxpQkFBU0MsUUFBUSxLQUFNO0FBQ3RCLGNBQUssT0FBTyxNQUFPO0FBQ2xCLG1CQUFPLE1BQU07QUFBQSxVQUNkO0FBR0EsaUJBQU8sT0FBTyxRQUFRLFlBQVksT0FBTyxRQUFRLGFBQ2hELFdBQVksU0FBUyxLQUFNLEdBQUksQ0FBRSxLQUFLLFdBQ3RDLE9BQU87QUFBQSxRQUNUO0FBT0EsWUFBSSxVQUFVLFNBRWIsY0FBYyxVQUdkLFNBQVMsU0FBVSxVQUFVLFNBQVU7QUFJdEMsaUJBQU8sSUFBSSxPQUFPLEdBQUcsS0FBTSxVQUFVLE9BQVE7QUFBQSxRQUM5QztBQUVELGVBQU8sS0FBSyxPQUFPLFlBQVk7QUFBQTtBQUFBLFVBRzlCLFFBQVE7QUFBQSxVQUVSLGFBQWE7QUFBQTtBQUFBLFVBR2IsUUFBUTtBQUFBLFVBRVIsU0FBUyxXQUFXO0FBQ25CLG1CQUFPLE1BQU0sS0FBTSxJQUFLO0FBQUEsVUFDekI7QUFBQTtBQUFBO0FBQUEsVUFJQSxLQUFLLFNBQVUsS0FBTTtBQUdwQixnQkFBSyxPQUFPLE1BQU87QUFDbEIscUJBQU8sTUFBTSxLQUFNLElBQUs7QUFBQSxZQUN6QjtBQUdBLG1CQUFPLE1BQU0sSUFBSSxLQUFNLE1BQU0sS0FBSyxNQUFPLElBQUksS0FBTSxHQUFJO0FBQUEsVUFDeEQ7QUFBQTtBQUFBO0FBQUEsVUFJQSxXQUFXLFNBQVUsT0FBUTtBQUc1QixnQkFBSSxNQUFNLE9BQU8sTUFBTyxLQUFLLFlBQVksR0FBRyxLQUFNO0FBR2xELGdCQUFJLGFBQWE7QUFHakIsbUJBQU87QUFBQSxVQUNSO0FBQUE7QUFBQSxVQUdBLE1BQU0sU0FBVSxVQUFXO0FBQzFCLG1CQUFPLE9BQU8sS0FBTSxNQUFNLFFBQVM7QUFBQSxVQUNwQztBQUFBLFVBRUEsS0FBSyxTQUFVLFVBQVc7QUFDekIsbUJBQU8sS0FBSyxVQUFXLE9BQU8sSUFBSyxNQUFNLFNBQVUsTUFBTSxHQUFJO0FBQzVELHFCQUFPLFNBQVMsS0FBTSxNQUFNLEdBQUcsSUFBSztBQUFBLFlBQ3JDLENBQUUsQ0FBRTtBQUFBLFVBQ0w7QUFBQSxVQUVBLE9BQU8sV0FBVztBQUNqQixtQkFBTyxLQUFLLFVBQVcsTUFBTSxNQUFPLE1BQU0sU0FBVSxDQUFFO0FBQUEsVUFDdkQ7QUFBQSxVQUVBLE9BQU8sV0FBVztBQUNqQixtQkFBTyxLQUFLLEdBQUksQ0FBRTtBQUFBLFVBQ25CO0FBQUEsVUFFQSxNQUFNLFdBQVc7QUFDaEIsbUJBQU8sS0FBSyxHQUFJLEVBQUc7QUFBQSxVQUNwQjtBQUFBLFVBRUEsTUFBTSxXQUFXO0FBQ2hCLG1CQUFPLEtBQUssVUFBVyxPQUFPLEtBQU0sTUFBTSxTQUFVLE9BQU8sR0FBSTtBQUM5RCxzQkFBUyxJQUFJLEtBQU07QUFBQSxZQUNwQixDQUFFLENBQUU7QUFBQSxVQUNMO0FBQUEsVUFFQSxLQUFLLFdBQVc7QUFDZixtQkFBTyxLQUFLLFVBQVcsT0FBTyxLQUFNLE1BQU0sU0FBVSxPQUFPLEdBQUk7QUFDOUQscUJBQU8sSUFBSTtBQUFBLFlBQ1osQ0FBRSxDQUFFO0FBQUEsVUFDTDtBQUFBLFVBRUEsSUFBSSxTQUFVLEdBQUk7QUFDakIsZ0JBQUksTUFBTSxLQUFLLFFBQ2QsSUFBSSxDQUFDLEtBQU0sSUFBSSxJQUFJLE1BQU07QUFDMUIsbUJBQU8sS0FBSyxVQUFXLEtBQUssS0FBSyxJQUFJLE1BQU0sQ0FBRSxLQUFNLENBQUUsQ0FBRSxJQUFJLENBQUMsQ0FBRTtBQUFBLFVBQy9EO0FBQUEsVUFFQSxLQUFLLFdBQVc7QUFDZixtQkFBTyxLQUFLLGNBQWMsS0FBSyxZQUFZO0FBQUEsVUFDNUM7QUFBQTtBQUFBO0FBQUEsVUFJQTtBQUFBLFVBQ0EsTUFBTSxJQUFJO0FBQUEsVUFDVixRQUFRLElBQUk7QUFBQSxRQUNiO0FBRUEsZUFBTyxTQUFTLE9BQU8sR0FBRyxTQUFTLFdBQVc7QUFDN0MsY0FBSSxTQUFTLE1BQU0sS0FBSyxNQUFNLGFBQWFDLFFBQzFDLFNBQVMsVUFBVyxDQUFFLEtBQUssQ0FBQyxHQUM1QixJQUFJLEdBQ0osU0FBUyxVQUFVLFFBQ25CLE9BQU87QUFHUixjQUFLLE9BQU8sV0FBVyxXQUFZO0FBQ2xDLG1CQUFPO0FBR1AscUJBQVMsVUFBVyxDQUFFLEtBQUssQ0FBQztBQUM1QjtBQUFBLFVBQ0Q7QUFHQSxjQUFLLE9BQU8sV0FBVyxZQUFZLENBQUMsV0FBWSxNQUFPLEdBQUk7QUFDMUQscUJBQVMsQ0FBQztBQUFBLFVBQ1g7QUFHQSxjQUFLLE1BQU0sUUFBUztBQUNuQixxQkFBUztBQUNUO0FBQUEsVUFDRDtBQUVBLGlCQUFRLElBQUksUUFBUSxLQUFNO0FBR3pCLGlCQUFPLFVBQVUsVUFBVyxDQUFFLE1BQU8sTUFBTztBQUczQyxtQkFBTSxRQUFRLFNBQVU7QUFDdkIsdUJBQU8sUUFBUyxJQUFLO0FBSXJCLG9CQUFLLFNBQVMsZUFBZSxXQUFXLE1BQU87QUFDOUM7QUFBQSxnQkFDRDtBQUdBLG9CQUFLLFFBQVEsU0FBVSxPQUFPLGNBQWUsSUFBSyxNQUMvQyxjQUFjLE1BQU0sUUFBUyxJQUFLLEtBQVE7QUFDNUMsd0JBQU0sT0FBUSxJQUFLO0FBR25CLHNCQUFLLGVBQWUsQ0FBQyxNQUFNLFFBQVMsR0FBSSxHQUFJO0FBQzNDLG9CQUFBQSxTQUFRLENBQUM7QUFBQSxrQkFDVixXQUFZLENBQUMsZUFBZSxDQUFDLE9BQU8sY0FBZSxHQUFJLEdBQUk7QUFDMUQsb0JBQUFBLFNBQVEsQ0FBQztBQUFBLGtCQUNWLE9BQU87QUFDTixvQkFBQUEsU0FBUTtBQUFBLGtCQUNUO0FBQ0EsZ0NBQWM7QUFHZCx5QkFBUSxJQUFLLElBQUksT0FBTyxPQUFRLE1BQU1BLFFBQU8sSUFBSztBQUFBLGdCQUduRCxXQUFZLFNBQVMsUUFBWTtBQUNoQyx5QkFBUSxJQUFLLElBQUk7QUFBQSxnQkFDbEI7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFHQSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxlQUFPLE9BQVE7QUFBQTtBQUFBLFVBR2QsU0FBUyxZQUFhLFVBQVUsS0FBSyxPQUFPLEdBQUksUUFBUyxPQUFPLEVBQUc7QUFBQTtBQUFBLFVBR25FLFNBQVM7QUFBQSxVQUVULE9BQU8sU0FBVSxLQUFNO0FBQ3RCLGtCQUFNLElBQUksTUFBTyxHQUFJO0FBQUEsVUFDdEI7QUFBQSxVQUVBLE1BQU0sV0FBVztBQUFBLFVBQUM7QUFBQSxVQUVsQixlQUFlLFNBQVUsS0FBTTtBQUM5QixnQkFBSSxPQUFPO0FBSVgsZ0JBQUssQ0FBQyxPQUFPLFNBQVMsS0FBTSxHQUFJLE1BQU0sbUJBQW9CO0FBQ3pELHFCQUFPO0FBQUEsWUFDUjtBQUVBLG9CQUFRLFNBQVUsR0FBSTtBQUd0QixnQkFBSyxDQUFDLE9BQVE7QUFDYixxQkFBTztBQUFBLFlBQ1I7QUFHQSxtQkFBTyxPQUFPLEtBQU0sT0FBTyxhQUFjLEtBQUssTUFBTTtBQUNwRCxtQkFBTyxPQUFPLFNBQVMsY0FBYyxXQUFXLEtBQU0sSUFBSyxNQUFNO0FBQUEsVUFDbEU7QUFBQSxVQUVBLGVBQWUsU0FBVSxLQUFNO0FBQzlCLGdCQUFJO0FBRUosaUJBQU0sUUFBUSxLQUFNO0FBQ25CLHFCQUFPO0FBQUEsWUFDUjtBQUNBLG1CQUFPO0FBQUEsVUFDUjtBQUFBO0FBQUE7QUFBQSxVQUlBLFlBQVksU0FBVSxNQUFNLFNBQVNGLE1BQU07QUFDMUMsb0JBQVMsTUFBTSxFQUFFLE9BQU8sV0FBVyxRQUFRLE1BQU0sR0FBR0EsSUFBSTtBQUFBLFVBQ3pEO0FBQUEsVUFFQSxNQUFNLFNBQVUsS0FBSyxVQUFXO0FBQy9CLGdCQUFJLFFBQVEsSUFBSTtBQUVoQixnQkFBSyxZQUFhLEdBQUksR0FBSTtBQUN6Qix1QkFBUyxJQUFJO0FBQ2IscUJBQVEsSUFBSSxRQUFRLEtBQU07QUFDekIsb0JBQUssU0FBUyxLQUFNLElBQUssQ0FBRSxHQUFHLEdBQUcsSUFBSyxDQUFFLENBQUUsTUFBTSxPQUFRO0FBQ3ZEO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBQUEsWUFDRCxPQUFPO0FBQ04sbUJBQU0sS0FBSyxLQUFNO0FBQ2hCLG9CQUFLLFNBQVMsS0FBTSxJQUFLLENBQUUsR0FBRyxHQUFHLElBQUssQ0FBRSxDQUFFLE1BQU0sT0FBUTtBQUN2RDtBQUFBLGdCQUNEO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFFQSxtQkFBTztBQUFBLFVBQ1I7QUFBQTtBQUFBLFVBSUEsTUFBTSxTQUFVLE1BQU87QUFDdEIsZ0JBQUksTUFDSCxNQUFNLElBQ04sSUFBSSxHQUNKLFdBQVcsS0FBSztBQUVqQixnQkFBSyxDQUFDLFVBQVc7QUFHaEIscUJBQVUsT0FBTyxLQUFNLEdBQUksR0FBTTtBQUdoQyx1QkFBTyxPQUFPLEtBQU0sSUFBSztBQUFBLGNBQzFCO0FBQUEsWUFDRDtBQUNBLGdCQUFLLGFBQWEsS0FBSyxhQUFhLElBQUs7QUFDeEMscUJBQU8sS0FBSztBQUFBLFlBQ2I7QUFDQSxnQkFBSyxhQUFhLEdBQUk7QUFDckIscUJBQU8sS0FBSyxnQkFBZ0I7QUFBQSxZQUM3QjtBQUNBLGdCQUFLLGFBQWEsS0FBSyxhQUFhLEdBQUk7QUFDdkMscUJBQU8sS0FBSztBQUFBLFlBQ2I7QUFJQSxtQkFBTztBQUFBLFVBQ1I7QUFBQTtBQUFBLFVBR0EsV0FBVyxTQUFVRyxNQUFLLFNBQVU7QUFDbkMsZ0JBQUksTUFBTSxXQUFXLENBQUM7QUFFdEIsZ0JBQUtBLFFBQU8sTUFBTztBQUNsQixrQkFBSyxZQUFhLE9BQVFBLElBQUksQ0FBRSxHQUFJO0FBQ25DLHVCQUFPO0FBQUEsa0JBQU87QUFBQSxrQkFDYixPQUFPQSxTQUFRLFdBQ2QsQ0FBRUEsSUFBSSxJQUFJQTtBQUFBLGdCQUNaO0FBQUEsY0FDRCxPQUFPO0FBQ04scUJBQUssS0FBTSxLQUFLQSxJQUFJO0FBQUEsY0FDckI7QUFBQSxZQUNEO0FBRUEsbUJBQU87QUFBQSxVQUNSO0FBQUEsVUFFQSxTQUFTLFNBQVUsTUFBTUEsTUFBSyxHQUFJO0FBQ2pDLG1CQUFPQSxRQUFPLE9BQU8sS0FBSyxRQUFRLEtBQU1BLE1BQUssTUFBTSxDQUFFO0FBQUEsVUFDdEQ7QUFBQSxVQUVBLFVBQVUsU0FBVSxNQUFPO0FBQzFCLGdCQUFJLFlBQVksUUFBUSxLQUFLLGNBQzVCLFVBQVUsU0FBVSxLQUFLLGlCQUFpQixNQUFPO0FBSWxELG1CQUFPLENBQUMsWUFBWSxLQUFNLGFBQWEsV0FBVyxRQUFRLFlBQVksTUFBTztBQUFBLFVBQzlFO0FBQUE7QUFBQTtBQUFBLFVBSUEsT0FBTyxTQUFVLE9BQU8sUUFBUztBQUNoQyxnQkFBSSxNQUFNLENBQUMsT0FBTyxRQUNqQixJQUFJLEdBQ0osSUFBSSxNQUFNO0FBRVgsbUJBQVEsSUFBSSxLQUFLLEtBQU07QUFDdEIsb0JBQU8sR0FBSSxJQUFJLE9BQVEsQ0FBRTtBQUFBLFlBQzFCO0FBRUEsa0JBQU0sU0FBUztBQUVmLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFVBRUEsTUFBTSxTQUFVLE9BQU8sVUFBVSxRQUFTO0FBQ3pDLGdCQUFJLGlCQUNILFVBQVUsQ0FBQyxHQUNYLElBQUksR0FDSixTQUFTLE1BQU0sUUFDZixpQkFBaUIsQ0FBQztBQUluQixtQkFBUSxJQUFJLFFBQVEsS0FBTTtBQUN6QixnQ0FBa0IsQ0FBQyxTQUFVLE1BQU8sQ0FBRSxHQUFHLENBQUU7QUFDM0Msa0JBQUssb0JBQW9CLGdCQUFpQjtBQUN6Qyx3QkFBUSxLQUFNLE1BQU8sQ0FBRSxDQUFFO0FBQUEsY0FDMUI7QUFBQSxZQUNEO0FBRUEsbUJBQU87QUFBQSxVQUNSO0FBQUE7QUFBQSxVQUdBLEtBQUssU0FBVSxPQUFPLFVBQVUsS0FBTTtBQUNyQyxnQkFBSSxRQUFRLE9BQ1gsSUFBSSxHQUNKLE1BQU0sQ0FBQztBQUdSLGdCQUFLLFlBQWEsS0FBTSxHQUFJO0FBQzNCLHVCQUFTLE1BQU07QUFDZixxQkFBUSxJQUFJLFFBQVEsS0FBTTtBQUN6Qix3QkFBUSxTQUFVLE1BQU8sQ0FBRSxHQUFHLEdBQUcsR0FBSTtBQUVyQyxvQkFBSyxTQUFTLE1BQU87QUFDcEIsc0JBQUksS0FBTSxLQUFNO0FBQUEsZ0JBQ2pCO0FBQUEsY0FDRDtBQUFBLFlBR0QsT0FBTztBQUNOLG1CQUFNLEtBQUssT0FBUTtBQUNsQix3QkFBUSxTQUFVLE1BQU8sQ0FBRSxHQUFHLEdBQUcsR0FBSTtBQUVyQyxvQkFBSyxTQUFTLE1BQU87QUFDcEIsc0JBQUksS0FBTSxLQUFNO0FBQUEsZ0JBQ2pCO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFHQSxtQkFBTyxLQUFNLEdBQUk7QUFBQSxVQUNsQjtBQUFBO0FBQUEsVUFHQSxNQUFNO0FBQUE7QUFBQTtBQUFBLFVBSU47QUFBQSxRQUNELENBQUU7QUFFRixZQUFLLE9BQU8sV0FBVyxZQUFhO0FBQ25DLGlCQUFPLEdBQUksT0FBTyxRQUFTLElBQUksSUFBSyxPQUFPLFFBQVM7QUFBQSxRQUNyRDtBQUdBLGVBQU87QUFBQSxVQUFNLHVFQUF1RSxNQUFPLEdBQUk7QUFBQSxVQUM5RixTQUFVLElBQUksTUFBTztBQUNwQix1QkFBWSxhQUFhLE9BQU8sR0FBSSxJQUFJLEtBQUssWUFBWTtBQUFBLFVBQzFEO0FBQUEsUUFBRTtBQUVILGlCQUFTLFlBQWEsS0FBTTtBQU0zQixjQUFJLFNBQVMsQ0FBQyxDQUFDLE9BQU8sWUFBWSxPQUFPLElBQUksUUFDNUMsT0FBT0YsUUFBUSxHQUFJO0FBRXBCLGNBQUssV0FBWSxHQUFJLEtBQUssU0FBVSxHQUFJLEdBQUk7QUFDM0MsbUJBQU87QUFBQSxVQUNSO0FBRUEsaUJBQU8sU0FBUyxXQUFXLFdBQVcsS0FDckMsT0FBTyxXQUFXLFlBQVksU0FBUyxLQUFPLFNBQVMsS0FBTztBQUFBLFFBQ2hFO0FBR0EsaUJBQVMsU0FBVSxNQUFNLE1BQU87QUFFL0IsaUJBQU8sS0FBSyxZQUFZLEtBQUssU0FBUyxZQUFZLE1BQU0sS0FBSyxZQUFZO0FBQUEsUUFFMUU7QUFDQSxZQUFJLE1BQU0sSUFBSTtBQUdkLFlBQUksT0FBTyxJQUFJO0FBR2YsWUFBSSxTQUFTLElBQUk7QUFHakIsWUFBSSxhQUFhO0FBR2pCLFlBQUksV0FBVyxJQUFJO0FBQUEsVUFDbEIsTUFBTSxhQUFhLGdDQUFnQyxhQUFhO0FBQUEsVUFDaEU7QUFBQSxRQUNEO0FBTUEsZUFBTyxXQUFXLFNBQVUsR0FBRyxHQUFJO0FBQ2xDLGNBQUksTUFBTSxLQUFLLEVBQUU7QUFFakIsaUJBQU8sTUFBTSxPQUFPLENBQUMsRUFBRyxPQUFPLElBQUksYUFBYTtBQUFBO0FBQUEsV0FJL0MsRUFBRSxXQUNELEVBQUUsU0FBVSxHQUFJLElBQ2hCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXlCLEdBQUksSUFBSTtBQUFBLFFBRW5FO0FBT0EsWUFBSSxhQUFhO0FBRWpCLGlCQUFTLFdBQVksSUFBSSxhQUFjO0FBQ3RDLGNBQUssYUFBYztBQUdsQixnQkFBSyxPQUFPLE1BQU87QUFDbEIscUJBQU87QUFBQSxZQUNSO0FBR0EsbUJBQU8sR0FBRyxNQUFPLEdBQUcsRUFBRyxJQUFJLE9BQU8sR0FBRyxXQUFZLEdBQUcsU0FBUyxDQUFFLEVBQUUsU0FBVSxFQUFHLElBQUk7QUFBQSxVQUNuRjtBQUdBLGlCQUFPLE9BQU87QUFBQSxRQUNmO0FBRUEsZUFBTyxpQkFBaUIsU0FBVSxLQUFNO0FBQ3ZDLGtCQUFTLE1BQU0sSUFBSyxRQUFTLFlBQVksVUFBVztBQUFBLFFBQ3JEO0FBS0EsWUFBSSxlQUFlRixXQUNsQixhQUFhO0FBRWQsU0FBRSxXQUFXO0FBRWIsY0FBSSxHQUNILE1BQ0Esa0JBQ0EsV0FDQSxjQUNBSyxRQUFPLFlBR1BMLFdBQ0FNLGtCQUNBLGdCQUNBLFdBQ0EsU0FHQSxVQUFVLE9BQU8sU0FDakIsVUFBVSxHQUNWLE9BQU8sR0FDUCxhQUFhLFlBQVksR0FDekIsYUFBYSxZQUFZLEdBQ3pCLGdCQUFnQixZQUFZLEdBQzVCLHlCQUF5QixZQUFZLEdBQ3JDLFlBQVksU0FBVSxHQUFHLEdBQUk7QUFDNUIsZ0JBQUssTUFBTSxHQUFJO0FBQ2QsNkJBQWU7QUFBQSxZQUNoQjtBQUNBLG1CQUFPO0FBQUEsVUFDUixHQUVBLFdBQVcsOEhBTVgsYUFBYSw0QkFBNEIsYUFDeEMsMkNBR0QsYUFBYSxRQUFRLGFBQWEsT0FBTyxhQUFhLFNBQVM7QUFBQSxVQUc5RCxrQkFBa0I7QUFBQSxVQUdsQiwwREFBNkQsYUFBYSxTQUMxRSxhQUFhLFFBRWQsVUFBVSxPQUFPLGFBQWEsdUZBT0EsYUFBYSxnQkFPM0MsY0FBYyxJQUFJLE9BQVEsYUFBYSxLQUFLLEdBQUksR0FFaEQsU0FBUyxJQUFJLE9BQVEsTUFBTSxhQUFhLE9BQU8sYUFBYSxHQUFJLEdBQ2hFLHFCQUFxQixJQUFJLE9BQVEsTUFBTSxhQUFhLGFBQWEsYUFBYSxNQUM3RSxhQUFhLEdBQUksR0FDbEIsV0FBVyxJQUFJLE9BQVEsYUFBYSxJQUFLLEdBRXpDLFVBQVUsSUFBSSxPQUFRLE9BQVEsR0FDOUIsY0FBYyxJQUFJLE9BQVEsTUFBTSxhQUFhLEdBQUksR0FFakQsWUFBWTtBQUFBLFlBQ1gsSUFBSSxJQUFJLE9BQVEsUUFBUSxhQUFhLEdBQUk7QUFBQSxZQUN6QyxPQUFPLElBQUksT0FBUSxVQUFVLGFBQWEsR0FBSTtBQUFBLFlBQzlDLEtBQUssSUFBSSxPQUFRLE9BQU8sYUFBYSxPQUFRO0FBQUEsWUFDN0MsTUFBTSxJQUFJLE9BQVEsTUFBTSxVQUFXO0FBQUEsWUFDbkMsUUFBUSxJQUFJLE9BQVEsTUFBTSxPQUFRO0FBQUEsWUFDbEMsT0FBTyxJQUFJO0FBQUEsY0FDViwyREFDQyxhQUFhLGlDQUFpQyxhQUFhLGdCQUMzRCxhQUFhLGVBQWUsYUFBYTtBQUFBLGNBQVU7QUFBQSxZQUFJO0FBQUEsWUFDekQsTUFBTSxJQUFJLE9BQVEsU0FBUyxXQUFXLE1BQU0sR0FBSTtBQUFBO0FBQUE7QUFBQSxZQUloRCxjQUFjLElBQUksT0FBUSxNQUFNLGFBQy9CLHFEQUFxRCxhQUNyRCxxQkFBcUIsYUFBYSxvQkFBb0IsR0FBSTtBQUFBLFVBQzVELEdBRUEsVUFBVSx1Q0FDVixVQUFVLFVBR1ZDLGNBQWEsb0NBRWIsV0FBVyxRQUlYLFlBQVksSUFBSSxPQUFRLHlCQUF5QixhQUNoRCx3QkFBd0IsR0FBSSxHQUM3QixZQUFZLFNBQVUsUUFBUSxRQUFTO0FBQ3RDLGdCQUFJLE9BQU8sT0FBTyxPQUFPLE1BQU8sQ0FBRSxJQUFJO0FBRXRDLGdCQUFLLFFBQVM7QUFHYixxQkFBTztBQUFBLFlBQ1I7QUFNQSxtQkFBTyxPQUFPLElBQ2IsT0FBTyxhQUFjLE9BQU8sS0FBUSxJQUNwQyxPQUFPLGFBQWMsUUFBUSxLQUFLLE9BQVEsT0FBTyxPQUFRLEtBQU87QUFBQSxVQUNsRSxHQU1BLGdCQUFnQixXQUFXO0FBQzFCLHdCQUFZO0FBQUEsVUFDYixHQUVBLHFCQUFxQjtBQUFBLFlBQ3BCLFNBQVUsTUFBTztBQUNoQixxQkFBTyxLQUFLLGFBQWEsUUFBUSxTQUFVLE1BQU0sVUFBVztBQUFBLFlBQzdEO0FBQUEsWUFDQSxFQUFFLEtBQUssY0FBYyxNQUFNLFNBQVM7QUFBQSxVQUNyQztBQUtELG1CQUFTLG9CQUFvQjtBQUM1QixnQkFBSTtBQUNILHFCQUFPUCxVQUFTO0FBQUEsWUFDakIsU0FBVSxLQUFNO0FBQUEsWUFBRTtBQUFBLFVBQ25CO0FBR0EsY0FBSTtBQUNILFlBQUFLLE1BQUs7QUFBQSxjQUNGLE1BQU0sTUFBTSxLQUFNLGFBQWEsVUFBVztBQUFBLGNBQzVDLGFBQWE7QUFBQSxZQUNkO0FBS0EsZ0JBQUssYUFBYSxXQUFXLE1BQU8sRUFBRTtBQUFBLFVBQ3ZDLFNBQVUsR0FBSTtBQUNiLFlBQUFBLFFBQU87QUFBQSxjQUNOLE9BQU8sU0FBVSxRQUFRLEtBQU07QUFDOUIsMkJBQVcsTUFBTyxRQUFRLE1BQU0sS0FBTSxHQUFJLENBQUU7QUFBQSxjQUM3QztBQUFBLGNBQ0EsTUFBTSxTQUFVLFFBQVM7QUFDeEIsMkJBQVcsTUFBTyxRQUFRLE1BQU0sS0FBTSxXQUFXLENBQUUsQ0FBRTtBQUFBLGNBQ3REO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFFQSxtQkFBUyxLQUFNLFVBQVUsU0FBUyxTQUFTLE1BQU87QUFDakQsZ0JBQUksR0FBR0csSUFBRyxNQUFNLEtBQUssT0FBTyxRQUFRLGFBQ25DLGFBQWEsV0FBVyxRQUFRLGVBR2hDLFdBQVcsVUFBVSxRQUFRLFdBQVc7QUFFekMsc0JBQVUsV0FBVyxDQUFDO0FBR3RCLGdCQUFLLE9BQU8sYUFBYSxZQUFZLENBQUMsWUFDckMsYUFBYSxLQUFLLGFBQWEsS0FBSyxhQUFhLElBQUs7QUFFdEQscUJBQU87QUFBQSxZQUNSO0FBR0EsZ0JBQUssQ0FBQyxNQUFPO0FBQ1osMEJBQWEsT0FBUTtBQUNyQix3QkFBVSxXQUFXUjtBQUVyQixrQkFBSyxnQkFBaUI7QUFJckIsb0JBQUssYUFBYSxPQUFRLFFBQVFPLFlBQVcsS0FBTSxRQUFTLElBQU07QUFHakUsc0JBQU8sSUFBSSxNQUFPLENBQUUsR0FBTTtBQUd6Qix3QkFBSyxhQUFhLEdBQUk7QUFDckIsMEJBQU8sT0FBTyxRQUFRLGVBQWdCLENBQUUsR0FBTTtBQUk3Qyw0QkFBSyxLQUFLLE9BQU8sR0FBSTtBQUNwQiwwQkFBQUYsTUFBSyxLQUFNLFNBQVMsSUFBSztBQUN6QixpQ0FBTztBQUFBLHdCQUNSO0FBQUEsc0JBQ0QsT0FBTztBQUNOLCtCQUFPO0FBQUEsc0JBQ1I7QUFBQSxvQkFHRCxPQUFPO0FBSU4sMEJBQUssZUFBZ0IsT0FBTyxXQUFXLGVBQWdCLENBQUUsTUFDeEQsS0FBSyxTQUFVLFNBQVMsSUFBSyxLQUM3QixLQUFLLE9BQU8sR0FBSTtBQUVoQix3QkFBQUEsTUFBSyxLQUFNLFNBQVMsSUFBSztBQUN6QiwrQkFBTztBQUFBLHNCQUNSO0FBQUEsb0JBQ0Q7QUFBQSxrQkFHRCxXQUFZLE1BQU8sQ0FBRSxHQUFJO0FBQ3hCLG9CQUFBQSxNQUFLLE1BQU8sU0FBUyxRQUFRLHFCQUFzQixRQUFTLENBQUU7QUFDOUQsMkJBQU87QUFBQSxrQkFHUixZQUFjLElBQUksTUFBTyxDQUFFLE1BQU8sUUFBUSx3QkFBeUI7QUFDbEUsb0JBQUFBLE1BQUssTUFBTyxTQUFTLFFBQVEsdUJBQXdCLENBQUUsQ0FBRTtBQUN6RCwyQkFBTztBQUFBLGtCQUNSO0FBQUEsZ0JBQ0Q7QUFHQSxvQkFBSyxDQUFDLHVCQUF3QixXQUFXLEdBQUksTUFDMUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFNLFFBQVMsSUFBTTtBQUVoRCxnQ0FBYztBQUNkLCtCQUFhO0FBU2Isc0JBQUssYUFBYSxNQUNmLFNBQVMsS0FBTSxRQUFTLEtBQUssbUJBQW1CLEtBQU0sUUFBUyxJQUFNO0FBR3ZFLGlDQUFhLFNBQVMsS0FBTSxRQUFTLEtBQUssWUFBYSxRQUFRLFVBQVcsS0FDekU7QUFRRCx3QkFBSyxjQUFjLFdBQVcsQ0FBQyxRQUFRLE9BQVE7QUFHOUMsMEJBQU8sTUFBTSxRQUFRLGFBQWMsSUFBSyxHQUFNO0FBQzdDLDhCQUFNLE9BQU8sZUFBZ0IsR0FBSTtBQUFBLHNCQUNsQyxPQUFPO0FBQ04sZ0NBQVEsYUFBYyxNQUFRLE1BQU0sT0FBVTtBQUFBLHNCQUMvQztBQUFBLG9CQUNEO0FBR0EsNkJBQVMsU0FBVSxRQUFTO0FBQzVCLG9CQUFBRyxLQUFJLE9BQU87QUFDWCwyQkFBUUEsTUFBTTtBQUNiLDZCQUFRQSxFQUFFLEtBQU0sTUFBTSxNQUFNLE1BQU0sWUFBYSxNQUM5QyxXQUFZLE9BQVFBLEVBQUUsQ0FBRTtBQUFBLG9CQUMxQjtBQUNBLGtDQUFjLE9BQU8sS0FBTSxHQUFJO0FBQUEsa0JBQ2hDO0FBRUEsc0JBQUk7QUFDSCxvQkFBQUgsTUFBSztBQUFBLHNCQUFPO0FBQUEsc0JBQ1gsV0FBVyxpQkFBa0IsV0FBWTtBQUFBLG9CQUMxQztBQUNBLDJCQUFPO0FBQUEsa0JBQ1IsU0FBVSxVQUFXO0FBQ3BCLDJDQUF3QixVQUFVLElBQUs7QUFBQSxrQkFDeEMsVUFBRTtBQUNELHdCQUFLLFFBQVEsU0FBVTtBQUN0Qiw4QkFBUSxnQkFBaUIsSUFBSztBQUFBLG9CQUMvQjtBQUFBLGtCQUNEO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUdBLG1CQUFPLE9BQVEsU0FBUyxRQUFTLFVBQVUsSUFBSyxHQUFHLFNBQVMsU0FBUyxJQUFLO0FBQUEsVUFDM0U7QUFRQSxtQkFBUyxjQUFjO0FBQ3RCLGdCQUFJLE9BQU8sQ0FBQztBQUVaLHFCQUFTLE1BQU8sS0FBSyxPQUFRO0FBSTVCLGtCQUFLLEtBQUssS0FBTSxNQUFNLEdBQUksSUFBSSxLQUFLLGFBQWM7QUFHaEQsdUJBQU8sTUFBTyxLQUFLLE1BQU0sQ0FBRTtBQUFBLGNBQzVCO0FBQ0EscUJBQVMsTUFBTyxNQUFNLEdBQUksSUFBSTtBQUFBLFlBQy9CO0FBQ0EsbUJBQU87QUFBQSxVQUNSO0FBTUEsbUJBQVMsYUFBY0ksS0FBSztBQUMzQixZQUFBQSxJQUFJLE9BQVEsSUFBSTtBQUNoQixtQkFBT0E7QUFBQSxVQUNSO0FBTUEsbUJBQVMsT0FBUUEsS0FBSztBQUNyQixnQkFBSSxLQUFLVCxVQUFTLGNBQWUsVUFBVztBQUU1QyxnQkFBSTtBQUNILHFCQUFPLENBQUMsQ0FBQ1MsSUFBSSxFQUFHO0FBQUEsWUFDakIsU0FBVSxHQUFJO0FBQ2IscUJBQU87QUFBQSxZQUNSLFVBQUU7QUFHRCxrQkFBSyxHQUFHLFlBQWE7QUFDcEIsbUJBQUcsV0FBVyxZQUFhLEVBQUc7QUFBQSxjQUMvQjtBQUdBLG1CQUFLO0FBQUEsWUFDTjtBQUFBLFVBQ0Q7QUFNQSxtQkFBUyxrQkFBbUIsTUFBTztBQUNsQyxtQkFBTyxTQUFVLE1BQU87QUFDdkIscUJBQU8sU0FBVSxNQUFNLE9BQVEsS0FBSyxLQUFLLFNBQVM7QUFBQSxZQUNuRDtBQUFBLFVBQ0Q7QUFNQSxtQkFBUyxtQkFBb0IsTUFBTztBQUNuQyxtQkFBTyxTQUFVLE1BQU87QUFDdkIsc0JBQVMsU0FBVSxNQUFNLE9BQVEsS0FBSyxTQUFVLE1BQU0sUUFBUyxNQUM5RCxLQUFLLFNBQVM7QUFBQSxZQUNoQjtBQUFBLFVBQ0Q7QUFNQSxtQkFBUyxxQkFBc0IsVUFBVztBQUd6QyxtQkFBTyxTQUFVLE1BQU87QUFLdkIsa0JBQUssVUFBVSxNQUFPO0FBU3JCLG9CQUFLLEtBQUssY0FBYyxLQUFLLGFBQWEsT0FBUTtBQUdqRCxzQkFBSyxXQUFXLE1BQU87QUFDdEIsd0JBQUssV0FBVyxLQUFLLFlBQWE7QUFDakMsNkJBQU8sS0FBSyxXQUFXLGFBQWE7QUFBQSxvQkFDckMsT0FBTztBQUNOLDZCQUFPLEtBQUssYUFBYTtBQUFBLG9CQUMxQjtBQUFBLGtCQUNEO0FBSUEseUJBQU8sS0FBSyxlQUFlO0FBQUEsa0JBRzFCLEtBQUssZUFBZSxDQUFDLFlBQ3BCLG1CQUFvQixJQUFLLE1BQU07QUFBQSxnQkFDbEM7QUFFQSx1QkFBTyxLQUFLLGFBQWE7QUFBQSxjQUsxQixXQUFZLFdBQVcsTUFBTztBQUM3Qix1QkFBTyxLQUFLLGFBQWE7QUFBQSxjQUMxQjtBQUdBLHFCQUFPO0FBQUEsWUFDUjtBQUFBLFVBQ0Q7QUFNQSxtQkFBUyx1QkFBd0JBLEtBQUs7QUFDckMsbUJBQU8sYUFBYyxTQUFVLFVBQVc7QUFDekMseUJBQVcsQ0FBQztBQUNaLHFCQUFPLGFBQWMsU0FBVSxNQUFNQyxVQUFVO0FBQzlDLG9CQUFJLEdBQ0gsZUFBZUQsSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLFFBQVMsR0FDN0NELEtBQUksYUFBYTtBQUdsQix1QkFBUUEsTUFBTTtBQUNiLHNCQUFLLEtBQVEsSUFBSSxhQUFjQSxFQUFFLENBQUksR0FBSTtBQUN4Qyx5QkFBTSxDQUFFLElBQUksRUFBR0UsU0FBUyxDQUFFLElBQUksS0FBTSxDQUFFO0FBQUEsa0JBQ3ZDO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNELENBQUU7QUFBQSxZQUNILENBQUU7QUFBQSxVQUNIO0FBT0EsbUJBQVMsWUFBYSxTQUFVO0FBQy9CLG1CQUFPLFdBQVcsT0FBTyxRQUFRLHlCQUF5QixlQUFlO0FBQUEsVUFDMUU7QUFPQSxtQkFBUyxZQUFhLE1BQU87QUFDNUIsZ0JBQUksV0FDSFQsT0FBTSxPQUFPLEtBQUssaUJBQWlCLE9BQU87QUFPM0MsZ0JBQUtBLFFBQU9ELGFBQVlDLEtBQUksYUFBYSxLQUFLLENBQUNBLEtBQUksaUJBQWtCO0FBQ3BFLHFCQUFPRDtBQUFBLFlBQ1I7QUFHQSxZQUFBQSxZQUFXQztBQUNYLFlBQUFLLG1CQUFrQk4sVUFBUztBQUMzQiw2QkFBaUIsQ0FBQyxPQUFPLFNBQVVBLFNBQVM7QUFJNUMsc0JBQVVNLGlCQUFnQixXQUN6QkEsaUJBQWdCLHlCQUNoQkEsaUJBQWdCO0FBT2pCLGdCQUFLQSxpQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU1wQixnQkFBZ0JOLGNBQ2QsWUFBWUEsVUFBUyxnQkFBaUIsVUFBVSxRQUFRLFdBQVk7QUFHdEUsd0JBQVUsaUJBQWtCLFVBQVUsYUFBYztBQUFBLFlBQ3JEO0FBTUEsb0JBQVEsVUFBVSxPQUFRLFNBQVUsSUFBSztBQUN4QyxjQUFBTSxpQkFBZ0IsWUFBYSxFQUFHLEVBQUUsS0FBSyxPQUFPO0FBQzlDLHFCQUFPLENBQUNOLFVBQVMscUJBQ2hCLENBQUNBLFVBQVMsa0JBQW1CLE9BQU8sT0FBUSxFQUFFO0FBQUEsWUFDaEQsQ0FBRTtBQUtGLG9CQUFRLG9CQUFvQixPQUFRLFNBQVUsSUFBSztBQUNsRCxxQkFBTyxRQUFRLEtBQU0sSUFBSSxHQUFJO0FBQUEsWUFDOUIsQ0FBRTtBQUlGLG9CQUFRLFFBQVEsT0FBUSxXQUFXO0FBQ2xDLHFCQUFPQSxVQUFTLGlCQUFrQixRQUFTO0FBQUEsWUFDNUMsQ0FBRTtBQVdGLG9CQUFRLFNBQVMsT0FBUSxXQUFXO0FBQ25DLGtCQUFJO0FBQ0gsZ0JBQUFBLFVBQVMsY0FBZSxpQkFBa0I7QUFDMUMsdUJBQU87QUFBQSxjQUNSLFNBQVUsR0FBSTtBQUNiLHVCQUFPO0FBQUEsY0FDUjtBQUFBLFlBQ0QsQ0FBRTtBQUdGLGdCQUFLLFFBQVEsU0FBVTtBQUN0QixtQkFBSyxPQUFPLEtBQUssU0FBVSxJQUFLO0FBQy9CLG9CQUFJLFNBQVMsR0FBRyxRQUFTLFdBQVcsU0FBVTtBQUM5Qyx1QkFBTyxTQUFVLE1BQU87QUFDdkIseUJBQU8sS0FBSyxhQUFjLElBQUssTUFBTTtBQUFBLGdCQUN0QztBQUFBLGNBQ0Q7QUFDQSxtQkFBSyxLQUFLLEtBQUssU0FBVSxJQUFJLFNBQVU7QUFDdEMsb0JBQUssT0FBTyxRQUFRLG1CQUFtQixlQUFlLGdCQUFpQjtBQUN0RSxzQkFBSSxPQUFPLFFBQVEsZUFBZ0IsRUFBRztBQUN0Qyx5QkFBTyxPQUFPLENBQUUsSUFBSyxJQUFJLENBQUM7QUFBQSxnQkFDM0I7QUFBQSxjQUNEO0FBQUEsWUFDRCxPQUFPO0FBQ04sbUJBQUssT0FBTyxLQUFNLFNBQVUsSUFBSztBQUNoQyxvQkFBSSxTQUFTLEdBQUcsUUFBUyxXQUFXLFNBQVU7QUFDOUMsdUJBQU8sU0FBVSxNQUFPO0FBQ3ZCLHNCQUFJVyxRQUFPLE9BQU8sS0FBSyxxQkFBcUIsZUFDM0MsS0FBSyxpQkFBa0IsSUFBSztBQUM3Qix5QkFBT0EsU0FBUUEsTUFBSyxVQUFVO0FBQUEsZ0JBQy9CO0FBQUEsY0FDRDtBQUlBLG1CQUFLLEtBQUssS0FBSyxTQUFVLElBQUksU0FBVTtBQUN0QyxvQkFBSyxPQUFPLFFBQVEsbUJBQW1CLGVBQWUsZ0JBQWlCO0FBQ3RFLHNCQUFJQSxPQUFNSCxJQUFHLE9BQ1osT0FBTyxRQUFRLGVBQWdCLEVBQUc7QUFFbkMsc0JBQUssTUFBTztBQUdYLG9CQUFBRyxRQUFPLEtBQUssaUJBQWtCLElBQUs7QUFDbkMsd0JBQUtBLFNBQVFBLE1BQUssVUFBVSxJQUFLO0FBQ2hDLDZCQUFPLENBQUUsSUFBSztBQUFBLG9CQUNmO0FBR0EsNEJBQVEsUUFBUSxrQkFBbUIsRUFBRztBQUN0QyxvQkFBQUgsS0FBSTtBQUNKLDJCQUFVLE9BQU8sTUFBT0EsSUFBSSxHQUFNO0FBQ2pDLHNCQUFBRyxRQUFPLEtBQUssaUJBQWtCLElBQUs7QUFDbkMsMEJBQUtBLFNBQVFBLE1BQUssVUFBVSxJQUFLO0FBQ2hDLCtCQUFPLENBQUUsSUFBSztBQUFBLHNCQUNmO0FBQUEsb0JBQ0Q7QUFBQSxrQkFDRDtBQUVBLHlCQUFPLENBQUM7QUFBQSxnQkFDVDtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBR0EsaUJBQUssS0FBSyxNQUFNLFNBQVUsS0FBSyxTQUFVO0FBQ3hDLGtCQUFLLE9BQU8sUUFBUSx5QkFBeUIsYUFBYztBQUMxRCx1QkFBTyxRQUFRLHFCQUFzQixHQUFJO0FBQUEsY0FHMUMsT0FBTztBQUNOLHVCQUFPLFFBQVEsaUJBQWtCLEdBQUk7QUFBQSxjQUN0QztBQUFBLFlBQ0Q7QUFHQSxpQkFBSyxLQUFLLFFBQVEsU0FBVSxXQUFXLFNBQVU7QUFDaEQsa0JBQUssT0FBTyxRQUFRLDJCQUEyQixlQUFlLGdCQUFpQjtBQUM5RSx1QkFBTyxRQUFRLHVCQUF3QixTQUFVO0FBQUEsY0FDbEQ7QUFBQSxZQUNEO0FBT0Esd0JBQVksQ0FBQztBQUliLG1CQUFRLFNBQVUsSUFBSztBQUV0QixrQkFBSTtBQUVKLGNBQUFMLGlCQUFnQixZQUFhLEVBQUcsRUFBRSxZQUNqQyxZQUFZLFVBQVUsbURBQ0wsVUFBVTtBQUs1QixrQkFBSyxDQUFDLEdBQUcsaUJBQWtCLFlBQWEsRUFBRSxRQUFTO0FBQ2xELDBCQUFVLEtBQU0sUUFBUSxhQUFhLGVBQWUsV0FBVyxHQUFJO0FBQUEsY0FDcEU7QUFHQSxrQkFBSyxDQUFDLEdBQUcsaUJBQWtCLFVBQVUsVUFBVSxJQUFLLEVBQUUsUUFBUztBQUM5RCwwQkFBVSxLQUFNLElBQUs7QUFBQSxjQUN0QjtBQUtBLGtCQUFLLENBQUMsR0FBRyxpQkFBa0IsT0FBTyxVQUFVLElBQUssRUFBRSxRQUFTO0FBQzNELDBCQUFVLEtBQU0sVUFBVztBQUFBLGNBQzVCO0FBTUEsa0JBQUssQ0FBQyxHQUFHLGlCQUFrQixVQUFXLEVBQUUsUUFBUztBQUNoRCwwQkFBVSxLQUFNLFVBQVc7QUFBQSxjQUM1QjtBQUlBLHNCQUFRTixVQUFTLGNBQWUsT0FBUTtBQUN4QyxvQkFBTSxhQUFjLFFBQVEsUUFBUztBQUNyQyxpQkFBRyxZQUFhLEtBQU0sRUFBRSxhQUFjLFFBQVEsR0FBSTtBQVFsRCxjQUFBTSxpQkFBZ0IsWUFBYSxFQUFHLEVBQUUsV0FBVztBQUM3QyxrQkFBSyxHQUFHLGlCQUFrQixXQUFZLEVBQUUsV0FBVyxHQUFJO0FBQ3RELDBCQUFVLEtBQU0sWUFBWSxXQUFZO0FBQUEsY0FDekM7QUFPQSxzQkFBUU4sVUFBUyxjQUFlLE9BQVE7QUFDeEMsb0JBQU0sYUFBYyxRQUFRLEVBQUc7QUFDL0IsaUJBQUcsWUFBYSxLQUFNO0FBQ3RCLGtCQUFLLENBQUMsR0FBRyxpQkFBa0IsV0FBWSxFQUFFLFFBQVM7QUFDakQsMEJBQVUsS0FBTSxRQUFRLGFBQWEsVUFBVSxhQUFhLE9BQzNELGFBQWEsWUFBZTtBQUFBLGNBQzlCO0FBQUEsWUFDRCxDQUFFO0FBRUYsZ0JBQUssQ0FBQyxRQUFRLFFBQVM7QUFRdEIsd0JBQVUsS0FBTSxNQUFPO0FBQUEsWUFDeEI7QUFFQSx3QkFBWSxVQUFVLFVBQVUsSUFBSSxPQUFRLFVBQVUsS0FBTSxHQUFJLENBQUU7QUFNbEUsd0JBQVksU0FBVSxHQUFHLEdBQUk7QUFHNUIsa0JBQUssTUFBTSxHQUFJO0FBQ2QsK0JBQWU7QUFDZix1QkFBTztBQUFBLGNBQ1I7QUFHQSxrQkFBSSxVQUFVLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFO0FBQzlDLGtCQUFLLFNBQVU7QUFDZCx1QkFBTztBQUFBLGNBQ1I7QUFPQSx5QkFBWSxFQUFFLGlCQUFpQixPQUFTLEVBQUUsaUJBQWlCLEtBQzFELEVBQUUsd0JBQXlCLENBQUU7QUFBQTtBQUFBLGdCQUc3QjtBQUFBO0FBR0Qsa0JBQUssVUFBVSxLQUNaLENBQUMsUUFBUSxnQkFBZ0IsRUFBRSx3QkFBeUIsQ0FBRSxNQUFNLFNBQVk7QUFPMUUsb0JBQUssTUFBTUEsYUFBWSxFQUFFLGlCQUFpQixnQkFDekMsS0FBSyxTQUFVLGNBQWMsQ0FBRSxHQUFJO0FBQ25DLHlCQUFPO0FBQUEsZ0JBQ1I7QUFNQSxvQkFBSyxNQUFNQSxhQUFZLEVBQUUsaUJBQWlCLGdCQUN6QyxLQUFLLFNBQVUsY0FBYyxDQUFFLEdBQUk7QUFDbkMseUJBQU87QUFBQSxnQkFDUjtBQUdBLHVCQUFPLFlBQ0osUUFBUSxLQUFNLFdBQVcsQ0FBRSxJQUFJLFFBQVEsS0FBTSxXQUFXLENBQUUsSUFDNUQ7QUFBQSxjQUNGO0FBRUEscUJBQU8sVUFBVSxJQUFJLEtBQUs7QUFBQSxZQUMzQjtBQUVBLG1CQUFPQTtBQUFBLFVBQ1I7QUFFQSxlQUFLLFVBQVUsU0FBVSxNQUFNLFVBQVc7QUFDekMsbUJBQU8sS0FBTSxNQUFNLE1BQU0sTUFBTSxRQUFTO0FBQUEsVUFDekM7QUFFQSxlQUFLLGtCQUFrQixTQUFVLE1BQU0sTUFBTztBQUM3Qyx3QkFBYSxJQUFLO0FBRWxCLGdCQUFLLGtCQUNKLENBQUMsdUJBQXdCLE9BQU8sR0FBSSxNQUNsQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQU0sSUFBSyxJQUFNO0FBRTVDLGtCQUFJO0FBQ0gsb0JBQUksTUFBTSxRQUFRLEtBQU0sTUFBTSxJQUFLO0FBR25DLG9CQUFLLE9BQU8sUUFBUTtBQUFBO0FBQUEsZ0JBSWxCLEtBQUssWUFBWSxLQUFLLFNBQVMsYUFBYSxJQUFLO0FBQ2xELHlCQUFPO0FBQUEsZ0JBQ1I7QUFBQSxjQUNELFNBQVUsR0FBSTtBQUNiLHVDQUF3QixNQUFNLElBQUs7QUFBQSxjQUNwQztBQUFBLFlBQ0Q7QUFFQSxtQkFBTyxLQUFNLE1BQU1BLFdBQVUsTUFBTSxDQUFFLElBQUssQ0FBRSxFQUFFLFNBQVM7QUFBQSxVQUN4RDtBQUVBLGVBQUssV0FBVyxTQUFVLFNBQVMsTUFBTztBQU96QyxpQkFBTyxRQUFRLGlCQUFpQixZQUFhQSxXQUFXO0FBQ3ZELDBCQUFhLE9BQVE7QUFBQSxZQUN0QjtBQUNBLG1CQUFPLE9BQU8sU0FBVSxTQUFTLElBQUs7QUFBQSxVQUN2QztBQUdBLGVBQUssT0FBTyxTQUFVLE1BQU0sTUFBTztBQU9sQyxpQkFBTyxLQUFLLGlCQUFpQixTQUFVQSxXQUFXO0FBQ2pELDBCQUFhLElBQUs7QUFBQSxZQUNuQjtBQUVBLGdCQUFJUyxNQUFLLEtBQUssV0FBWSxLQUFLLFlBQVksQ0FBRSxHQUc1QyxNQUFNQSxPQUFNLE9BQU8sS0FBTSxLQUFLLFlBQVksS0FBSyxZQUFZLENBQUUsSUFDNURBLElBQUksTUFBTSxNQUFNLENBQUMsY0FBZSxJQUNoQztBQUVGLGdCQUFLLFFBQVEsUUFBWTtBQUN4QixxQkFBTztBQUFBLFlBQ1I7QUFFQSxtQkFBTyxLQUFLLGFBQWMsSUFBSztBQUFBLFVBQ2hDO0FBRUEsZUFBSyxRQUFRLFNBQVUsS0FBTTtBQUM1QixrQkFBTSxJQUFJLE1BQU8sNENBQTRDLEdBQUk7QUFBQSxVQUNsRTtBQU1BLGlCQUFPLGFBQWEsU0FBVSxTQUFVO0FBQ3ZDLGdCQUFJLE1BQ0gsYUFBYSxDQUFDLEdBQ2QsSUFBSSxHQUNKRCxLQUFJO0FBT0wsMkJBQWUsQ0FBQyxRQUFRO0FBQ3hCLHdCQUFZLENBQUMsUUFBUSxjQUFjLE1BQU0sS0FBTSxTQUFTLENBQUU7QUFDMUQsaUJBQUssS0FBTSxTQUFTLFNBQVU7QUFFOUIsZ0JBQUssY0FBZTtBQUNuQixxQkFBVSxPQUFPLFFBQVNBLElBQUksR0FBTTtBQUNuQyxvQkFBSyxTQUFTLFFBQVNBLEVBQUUsR0FBSTtBQUM1QixzQkFBSSxXQUFXLEtBQU1BLEVBQUU7QUFBQSxnQkFDeEI7QUFBQSxjQUNEO0FBQ0EscUJBQVEsS0FBTTtBQUNiLHVCQUFPLEtBQU0sU0FBUyxXQUFZLENBQUUsR0FBRyxDQUFFO0FBQUEsY0FDMUM7QUFBQSxZQUNEO0FBSUEsd0JBQVk7QUFFWixtQkFBTztBQUFBLFVBQ1I7QUFFQSxpQkFBTyxHQUFHLGFBQWEsV0FBVztBQUNqQyxtQkFBTyxLQUFLLFVBQVcsT0FBTyxXQUFZLE1BQU0sTUFBTyxJQUFLLENBQUUsQ0FBRTtBQUFBLFVBQ2pFO0FBRUEsaUJBQU8sT0FBTyxPQUFPO0FBQUE7QUFBQSxZQUdwQixhQUFhO0FBQUEsWUFFYixjQUFjO0FBQUEsWUFFZCxPQUFPO0FBQUEsWUFFUCxZQUFZLENBQUM7QUFBQSxZQUViLE1BQU0sQ0FBQztBQUFBLFlBRVAsVUFBVTtBQUFBLGNBQ1QsS0FBSyxFQUFFLEtBQUssY0FBYyxPQUFPLEtBQUs7QUFBQSxjQUN0QyxLQUFLLEVBQUUsS0FBSyxhQUFhO0FBQUEsY0FDekIsS0FBSyxFQUFFLEtBQUssbUJBQW1CLE9BQU8sS0FBSztBQUFBLGNBQzNDLEtBQUssRUFBRSxLQUFLLGtCQUFrQjtBQUFBLFlBQy9CO0FBQUEsWUFFQSxXQUFXO0FBQUEsY0FDVixNQUFNLFNBQVUsT0FBUTtBQUN2QixzQkFBTyxDQUFFLElBQUksTUFBTyxDQUFFLEVBQUUsUUFBUyxXQUFXLFNBQVU7QUFHdEQsc0JBQU8sQ0FBRSxLQUFNLE1BQU8sQ0FBRSxLQUFLLE1BQU8sQ0FBRSxLQUFLLE1BQU8sQ0FBRSxLQUFLLElBQ3ZELFFBQVMsV0FBVyxTQUFVO0FBRWhDLG9CQUFLLE1BQU8sQ0FBRSxNQUFNLE1BQU87QUFDMUIsd0JBQU8sQ0FBRSxJQUFJLE1BQU0sTUFBTyxDQUFFLElBQUk7QUFBQSxnQkFDakM7QUFFQSx1QkFBTyxNQUFNLE1BQU8sR0FBRyxDQUFFO0FBQUEsY0FDMUI7QUFBQSxjQUVBLE9BQU8sU0FBVSxPQUFRO0FBWXhCLHNCQUFPLENBQUUsSUFBSSxNQUFPLENBQUUsRUFBRSxZQUFZO0FBRXBDLG9CQUFLLE1BQU8sQ0FBRSxFQUFFLE1BQU8sR0FBRyxDQUFFLE1BQU0sT0FBUTtBQUd6QyxzQkFBSyxDQUFDLE1BQU8sQ0FBRSxHQUFJO0FBQ2xCLHlCQUFLLE1BQU8sTUFBTyxDQUFFLENBQUU7QUFBQSxrQkFDeEI7QUFJQSx3QkFBTyxDQUFFLElBQUksRUFBRyxNQUFPLENBQUUsSUFDeEIsTUFBTyxDQUFFLEtBQU0sTUFBTyxDQUFFLEtBQUssS0FDN0IsS0FBTSxNQUFPLENBQUUsTUFBTSxVQUFVLE1BQU8sQ0FBRSxNQUFNO0FBRS9DLHdCQUFPLENBQUUsSUFBSSxFQUFLLE1BQU8sQ0FBRSxJQUFJLE1BQU8sQ0FBRSxLQUFPLE1BQU8sQ0FBRSxNQUFNO0FBQUEsZ0JBRy9ELFdBQVksTUFBTyxDQUFFLEdBQUk7QUFDeEIsdUJBQUssTUFBTyxNQUFPLENBQUUsQ0FBRTtBQUFBLGdCQUN4QjtBQUVBLHVCQUFPO0FBQUEsY0FDUjtBQUFBLGNBRUEsUUFBUSxTQUFVLE9BQVE7QUFDekIsb0JBQUksUUFDSCxXQUFXLENBQUMsTUFBTyxDQUFFLEtBQUssTUFBTyxDQUFFO0FBRXBDLG9CQUFLLFVBQVUsTUFBTSxLQUFNLE1BQU8sQ0FBRSxDQUFFLEdBQUk7QUFDekMseUJBQU87QUFBQSxnQkFDUjtBQUdBLG9CQUFLLE1BQU8sQ0FBRSxHQUFJO0FBQ2pCLHdCQUFPLENBQUUsSUFBSSxNQUFPLENBQUUsS0FBSyxNQUFPLENBQUUsS0FBSztBQUFBLGdCQUcxQyxXQUFZLFlBQVksUUFBUSxLQUFNLFFBQVM7QUFBQSxpQkFHNUMsU0FBUyxTQUFVLFVBQVUsSUFBSztBQUFBLGlCQUdsQyxTQUFTLFNBQVMsUUFBUyxLQUFLLFNBQVMsU0FBUyxNQUFPLElBQUksU0FBUyxTQUFXO0FBR25GLHdCQUFPLENBQUUsSUFBSSxNQUFPLENBQUUsRUFBRSxNQUFPLEdBQUcsTUFBTztBQUN6Qyx3QkFBTyxDQUFFLElBQUksU0FBUyxNQUFPLEdBQUcsTUFBTztBQUFBLGdCQUN4QztBQUdBLHVCQUFPLE1BQU0sTUFBTyxHQUFHLENBQUU7QUFBQSxjQUMxQjtBQUFBLFlBQ0Q7QUFBQSxZQUVBLFFBQVE7QUFBQSxjQUVQLEtBQUssU0FBVSxrQkFBbUI7QUFDakMsb0JBQUksbUJBQW1CLGlCQUFpQixRQUFTLFdBQVcsU0FBVSxFQUFFLFlBQVk7QUFDcEYsdUJBQU8scUJBQXFCLE1BQzNCLFdBQVc7QUFDVix5QkFBTztBQUFBLGdCQUNSLElBQ0EsU0FBVSxNQUFPO0FBQ2hCLHlCQUFPLFNBQVUsTUFBTSxnQkFBaUI7QUFBQSxnQkFDekM7QUFBQSxjQUNGO0FBQUEsY0FFQSxPQUFPLFNBQVUsV0FBWTtBQUM1QixvQkFBSSxVQUFVLFdBQVksWUFBWSxHQUFJO0FBRTFDLHVCQUFPLFlBQ0osVUFBVSxJQUFJLE9BQVEsUUFBUSxhQUFhLE1BQU0sWUFDbEQsTUFBTSxhQUFhLEtBQU0sTUFDMUIsV0FBWSxXQUFXLFNBQVUsTUFBTztBQUN2Qyx5QkFBTyxRQUFRO0FBQUEsb0JBQ2QsT0FBTyxLQUFLLGNBQWMsWUFBWSxLQUFLLGFBQzFDLE9BQU8sS0FBSyxpQkFBaUIsZUFDNUIsS0FBSyxhQUFjLE9BQVEsS0FDNUI7QUFBQSxrQkFDRjtBQUFBLGdCQUNELENBQUU7QUFBQSxjQUNKO0FBQUEsY0FFQSxNQUFNLFNBQVUsTUFBTSxVQUFVLE9BQVE7QUFDdkMsdUJBQU8sU0FBVSxNQUFPO0FBQ3ZCLHNCQUFJLFNBQVMsS0FBSyxLQUFNLE1BQU0sSUFBSztBQUVuQyxzQkFBSyxVQUFVLE1BQU87QUFDckIsMkJBQU8sYUFBYTtBQUFBLGtCQUNyQjtBQUNBLHNCQUFLLENBQUMsVUFBVztBQUNoQiwyQkFBTztBQUFBLGtCQUNSO0FBRUEsNEJBQVU7QUFFVixzQkFBSyxhQUFhLEtBQU07QUFDdkIsMkJBQU8sV0FBVztBQUFBLGtCQUNuQjtBQUNBLHNCQUFLLGFBQWEsTUFBTztBQUN4QiwyQkFBTyxXQUFXO0FBQUEsa0JBQ25CO0FBQ0Esc0JBQUssYUFBYSxNQUFPO0FBQ3hCLDJCQUFPLFNBQVMsT0FBTyxRQUFTLEtBQU0sTUFBTTtBQUFBLGtCQUM3QztBQUNBLHNCQUFLLGFBQWEsTUFBTztBQUN4QiwyQkFBTyxTQUFTLE9BQU8sUUFBUyxLQUFNLElBQUk7QUFBQSxrQkFDM0M7QUFDQSxzQkFBSyxhQUFhLE1BQU87QUFDeEIsMkJBQU8sU0FBUyxPQUFPLE1BQU8sQ0FBQyxNQUFNLE1BQU8sTUFBTTtBQUFBLGtCQUNuRDtBQUNBLHNCQUFLLGFBQWEsTUFBTztBQUN4Qiw0QkFBUyxNQUFNLE9BQU8sUUFBUyxhQUFhLEdBQUksSUFBSSxLQUNsRCxRQUFTLEtBQU0sSUFBSTtBQUFBLGtCQUN0QjtBQUNBLHNCQUFLLGFBQWEsTUFBTztBQUN4QiwyQkFBTyxXQUFXLFNBQVMsT0FBTyxNQUFPLEdBQUcsTUFBTSxTQUFTLENBQUUsTUFBTSxRQUFRO0FBQUEsa0JBQzVFO0FBRUEseUJBQU87QUFBQSxnQkFDUjtBQUFBLGNBQ0Q7QUFBQSxjQUVBLE9BQU8sU0FBVSxNQUFNLE1BQU0sV0FBVyxPQUFPLE1BQU87QUFDckQsb0JBQUksU0FBUyxLQUFLLE1BQU8sR0FBRyxDQUFFLE1BQU0sT0FDbkMsVUFBVSxLQUFLLE1BQU8sRUFBRyxNQUFNLFFBQy9CLFNBQVMsU0FBUztBQUVuQix1QkFBTyxVQUFVLEtBQUssU0FBUztBQUFBO0FBQUEsa0JBRzlCLFNBQVUsTUFBTztBQUNoQiwyQkFBTyxDQUFDLENBQUMsS0FBSztBQUFBLGtCQUNmO0FBQUEsb0JBRUEsU0FBVSxNQUFNLFVBQVUsS0FBTTtBQUMvQixzQkFBSSxPQUFPLFlBQVksTUFBTSxXQUFXSSxRQUN2Q0MsT0FBTSxXQUFXLFVBQVUsZ0JBQWdCLG1CQUMzQyxTQUFTLEtBQUssWUFDZCxPQUFPLFVBQVUsS0FBSyxTQUFTLFlBQVksR0FDM0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUNwQixPQUFPO0FBRVIsc0JBQUssUUFBUztBQUdiLHdCQUFLLFFBQVM7QUFDYiw2QkFBUUEsTUFBTTtBQUNiLCtCQUFPO0FBQ1AsK0JBQVUsT0FBTyxLQUFNQSxJQUFJLEdBQU07QUFDaEMsOEJBQUssU0FDSixTQUFVLE1BQU0sSUFBSyxJQUNyQixLQUFLLGFBQWEsR0FBSTtBQUV0QixtQ0FBTztBQUFBLDBCQUNSO0FBQUEsd0JBQ0Q7QUFHQSx3QkFBQUQsU0FBUUMsT0FBTSxTQUFTLFVBQVUsQ0FBQ0QsVUFBUztBQUFBLHNCQUM1QztBQUNBLDZCQUFPO0FBQUEsb0JBQ1I7QUFFQSxvQkFBQUEsU0FBUSxDQUFFLFVBQVUsT0FBTyxhQUFhLE9BQU8sU0FBVTtBQUd6RCx3QkFBSyxXQUFXLFVBQVc7QUFHMUIsbUNBQWEsT0FBUSxPQUFRLE1BQU8sT0FBUSxPQUFRLElBQUksQ0FBQztBQUN6RCw4QkFBUSxXQUFZLElBQUssS0FBSyxDQUFDO0FBQy9CLGtDQUFZLE1BQU8sQ0FBRSxNQUFNLFdBQVcsTUFBTyxDQUFFO0FBQy9DLDZCQUFPLGFBQWEsTUFBTyxDQUFFO0FBQzdCLDZCQUFPLGFBQWEsT0FBTyxXQUFZLFNBQVU7QUFFakQsNkJBQVUsT0FBTyxFQUFFLGFBQWEsUUFBUSxLQUFNQyxJQUFJO0FBQUEsdUJBRy9DLE9BQU8sWUFBWSxNQUFPRCxPQUFNLElBQUksR0FBTTtBQUc1Qyw0QkFBSyxLQUFLLGFBQWEsS0FBSyxFQUFFLFFBQVEsU0FBUyxNQUFPO0FBQ3JELHFDQUFZLElBQUssSUFBSSxDQUFFLFNBQVMsV0FBVyxJQUFLO0FBQ2hEO0FBQUEsd0JBQ0Q7QUFBQSxzQkFDRDtBQUFBLG9CQUVELE9BQU87QUFHTiwwQkFBSyxVQUFXO0FBQ2YscUNBQWEsS0FBTSxPQUFRLE1BQU8sS0FBTSxPQUFRLElBQUksQ0FBQztBQUNyRCxnQ0FBUSxXQUFZLElBQUssS0FBSyxDQUFDO0FBQy9CLG9DQUFZLE1BQU8sQ0FBRSxNQUFNLFdBQVcsTUFBTyxDQUFFO0FBQy9DLCtCQUFPO0FBQUEsc0JBQ1I7QUFJQSwwQkFBSyxTQUFTLE9BQVE7QUFHckIsK0JBQVUsT0FBTyxFQUFFLGFBQWEsUUFBUSxLQUFNQyxJQUFJLE1BQy9DLE9BQU8sWUFBWSxNQUFPRCxPQUFNLElBQUksR0FBTTtBQUU1QywrQkFBTyxTQUNOLFNBQVUsTUFBTSxJQUFLLElBQ3JCLEtBQUssYUFBYSxNQUNsQixFQUFFLE1BQU87QUFHVCxnQ0FBSyxVQUFXO0FBQ2YsMkNBQWEsS0FBTSxPQUFRLE1BQ3hCLEtBQU0sT0FBUSxJQUFJLENBQUM7QUFDdEIseUNBQVksSUFBSyxJQUFJLENBQUUsU0FBUyxJQUFLO0FBQUEsNEJBQ3RDO0FBRUEsZ0NBQUssU0FBUyxNQUFPO0FBQ3BCO0FBQUEsNEJBQ0Q7QUFBQSwwQkFDRDtBQUFBLHdCQUNEO0FBQUEsc0JBQ0Q7QUFBQSxvQkFDRDtBQUdBLDRCQUFRO0FBQ1IsMkJBQU8sU0FBUyxTQUFXLE9BQU8sVUFBVSxLQUFLLE9BQU8sU0FBUztBQUFBLGtCQUNsRTtBQUFBLGdCQUNEO0FBQUEsY0FDRjtBQUFBLGNBRUEsUUFBUSxTQUFVLFFBQVEsVUFBVztBQU1wQyxvQkFBSSxNQUNISCxNQUFLLEtBQUssUUFBUyxNQUFPLEtBQUssS0FBSyxXQUFZLE9BQU8sWUFBWSxDQUFFLEtBQ3BFLEtBQUssTUFBTyx5QkFBeUIsTUFBTztBQUs5QyxvQkFBS0EsSUFBSSxPQUFRLEdBQUk7QUFDcEIseUJBQU9BLElBQUksUUFBUztBQUFBLGdCQUNyQjtBQUdBLG9CQUFLQSxJQUFHLFNBQVMsR0FBSTtBQUNwQix5QkFBTyxDQUFFLFFBQVEsUUFBUSxJQUFJLFFBQVM7QUFDdEMseUJBQU8sS0FBSyxXQUFXLGVBQWdCLE9BQU8sWUFBWSxDQUFFLElBQzNELGFBQWMsU0FBVSxNQUFNQyxVQUFVO0FBQ3ZDLHdCQUFJLEtBQ0gsVUFBVUQsSUFBSSxNQUFNLFFBQVMsR0FDN0JELEtBQUksUUFBUTtBQUNiLDJCQUFRQSxNQUFNO0FBQ2IsNEJBQU0sUUFBUSxLQUFNLE1BQU0sUUFBU0EsRUFBRSxDQUFFO0FBQ3ZDLDJCQUFNLEdBQUksSUFBSSxFQUFHRSxTQUFTLEdBQUksSUFBSSxRQUFTRixFQUFFO0FBQUEsb0JBQzlDO0FBQUEsa0JBQ0QsQ0FBRSxJQUNGLFNBQVUsTUFBTztBQUNoQiwyQkFBT0MsSUFBSSxNQUFNLEdBQUcsSUFBSztBQUFBLGtCQUMxQjtBQUFBLGdCQUNGO0FBRUEsdUJBQU9BO0FBQUEsY0FDUjtBQUFBLFlBQ0Q7QUFBQSxZQUVBLFNBQVM7QUFBQTtBQUFBLGNBR1IsS0FBSyxhQUFjLFNBQVUsVUFBVztBQUt2QyxvQkFBSSxRQUFRLENBQUMsR0FDWixVQUFVLENBQUMsR0FDWCxVQUFVLFFBQVMsU0FBUyxRQUFTLFVBQVUsSUFBSyxDQUFFO0FBRXZELHVCQUFPLFFBQVMsT0FBUSxJQUN2QixhQUFjLFNBQVUsTUFBTUMsVUFBUyxVQUFVLEtBQU07QUFDdEQsc0JBQUksTUFDSCxZQUFZLFFBQVMsTUFBTSxNQUFNLEtBQUssQ0FBQyxDQUFFLEdBQ3pDRixLQUFJLEtBQUs7QUFHVix5QkFBUUEsTUFBTTtBQUNiLHdCQUFPLE9BQU8sVUFBV0EsRUFBRSxHQUFNO0FBQ2hDLDJCQUFNQSxFQUFFLElBQUksRUFBR0UsU0FBU0YsRUFBRSxJQUFJO0FBQUEsb0JBQy9CO0FBQUEsa0JBQ0Q7QUFBQSxnQkFDRCxDQUFFLElBQ0YsU0FBVSxNQUFNLFVBQVUsS0FBTTtBQUMvQix3QkFBTyxDQUFFLElBQUk7QUFDYiwwQkFBUyxPQUFPLE1BQU0sS0FBSyxPQUFRO0FBSW5DLHdCQUFPLENBQUUsSUFBSTtBQUNiLHlCQUFPLENBQUMsUUFBUSxJQUFJO0FBQUEsZ0JBQ3JCO0FBQUEsY0FDRixDQUFFO0FBQUEsY0FFRixLQUFLLGFBQWMsU0FBVSxVQUFXO0FBQ3ZDLHVCQUFPLFNBQVUsTUFBTztBQUN2Qix5QkFBTyxLQUFNLFVBQVUsSUFBSyxFQUFFLFNBQVM7QUFBQSxnQkFDeEM7QUFBQSxjQUNELENBQUU7QUFBQSxjQUVGLFVBQVUsYUFBYyxTQUFVLE1BQU87QUFDeEMsdUJBQU8sS0FBSyxRQUFTLFdBQVcsU0FBVTtBQUMxQyx1QkFBTyxTQUFVLE1BQU87QUFDdkIsMEJBQVMsS0FBSyxlQUFlLE9BQU8sS0FBTSxJQUFLLEdBQUksUUFBUyxJQUFLLElBQUk7QUFBQSxnQkFDdEU7QUFBQSxjQUNELENBQUU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBU0YsTUFBTSxhQUFjLFNBQVUsTUFBTztBQUdwQyxvQkFBSyxDQUFDLFlBQVksS0FBTSxRQUFRLEVBQUcsR0FBSTtBQUN0Qyx1QkFBSyxNQUFPLHVCQUF1QixJQUFLO0FBQUEsZ0JBQ3pDO0FBQ0EsdUJBQU8sS0FBSyxRQUFTLFdBQVcsU0FBVSxFQUFFLFlBQVk7QUFDeEQsdUJBQU8sU0FBVSxNQUFPO0FBQ3ZCLHNCQUFJO0FBQ0oscUJBQUc7QUFDRix3QkFBTyxXQUFXLGlCQUNqQixLQUFLLE9BQ0wsS0FBSyxhQUFjLFVBQVcsS0FBSyxLQUFLLGFBQWMsTUFBTyxHQUFNO0FBRW5FLGlDQUFXLFNBQVMsWUFBWTtBQUNoQyw2QkFBTyxhQUFhLFFBQVEsU0FBUyxRQUFTLE9BQU8sR0FBSSxNQUFNO0FBQUEsb0JBQ2hFO0FBQUEsa0JBQ0QsVUFBWSxPQUFPLEtBQUssZUFBZ0IsS0FBSyxhQUFhO0FBQzFELHlCQUFPO0FBQUEsZ0JBQ1I7QUFBQSxjQUNELENBQUU7QUFBQTtBQUFBLGNBR0YsUUFBUSxTQUFVLE1BQU87QUFDeEIsb0JBQUlNLFFBQU9qQixRQUFPLFlBQVlBLFFBQU8sU0FBUztBQUM5Qyx1QkFBT2lCLFNBQVFBLE1BQUssTUFBTyxDQUFFLE1BQU0sS0FBSztBQUFBLGNBQ3pDO0FBQUEsY0FFQSxNQUFNLFNBQVUsTUFBTztBQUN0Qix1QkFBTyxTQUFTUjtBQUFBLGNBQ2pCO0FBQUEsY0FFQSxPQUFPLFNBQVUsTUFBTztBQUN2Qix1QkFBTyxTQUFTLGtCQUFrQixLQUNqQ04sVUFBUyxTQUFTLEtBQ2xCLENBQUMsRUFBRyxLQUFLLFFBQVEsS0FBSyxRQUFRLENBQUMsS0FBSztBQUFBLGNBQ3RDO0FBQUE7QUFBQSxjQUdBLFNBQVMscUJBQXNCLEtBQU07QUFBQSxjQUNyQyxVQUFVLHFCQUFzQixJQUFLO0FBQUEsY0FFckMsU0FBUyxTQUFVLE1BQU87QUFJekIsdUJBQVMsU0FBVSxNQUFNLE9BQVEsS0FBSyxDQUFDLENBQUMsS0FBSyxXQUMxQyxTQUFVLE1BQU0sUUFBUyxLQUFLLENBQUMsQ0FBQyxLQUFLO0FBQUEsY0FDekM7QUFBQSxjQUVBLFVBQVUsU0FBVSxNQUFPO0FBTTFCLG9CQUFLLEtBQUssWUFBYTtBQUV0Qix1QkFBSyxXQUFXO0FBQUEsZ0JBQ2pCO0FBRUEsdUJBQU8sS0FBSyxhQUFhO0FBQUEsY0FDMUI7QUFBQTtBQUFBLGNBR0EsT0FBTyxTQUFVLE1BQU87QUFNdkIscUJBQU0sT0FBTyxLQUFLLFlBQVksTUFBTSxPQUFPLEtBQUssYUFBYztBQUM3RCxzQkFBSyxLQUFLLFdBQVcsR0FBSTtBQUN4QiwyQkFBTztBQUFBLGtCQUNSO0FBQUEsZ0JBQ0Q7QUFDQSx1QkFBTztBQUFBLGNBQ1I7QUFBQSxjQUVBLFFBQVEsU0FBVSxNQUFPO0FBQ3hCLHVCQUFPLENBQUMsS0FBSyxRQUFRLE1BQU8sSUFBSztBQUFBLGNBQ2xDO0FBQUE7QUFBQSxjQUdBLFFBQVEsU0FBVSxNQUFPO0FBQ3hCLHVCQUFPLFFBQVEsS0FBTSxLQUFLLFFBQVM7QUFBQSxjQUNwQztBQUFBLGNBRUEsT0FBTyxTQUFVLE1BQU87QUFDdkIsdUJBQU8sUUFBUSxLQUFNLEtBQUssUUFBUztBQUFBLGNBQ3BDO0FBQUEsY0FFQSxRQUFRLFNBQVUsTUFBTztBQUN4Qix1QkFBTyxTQUFVLE1BQU0sT0FBUSxLQUFLLEtBQUssU0FBUyxZQUNqRCxTQUFVLE1BQU0sUUFBUztBQUFBLGNBQzNCO0FBQUEsY0FFQSxNQUFNLFNBQVUsTUFBTztBQUN0QixvQkFBSTtBQUNKLHVCQUFPLFNBQVUsTUFBTSxPQUFRLEtBQUssS0FBSyxTQUFTO0FBQUE7QUFBQTtBQUFBLGtCQUs3QyxPQUFPLEtBQUssYUFBYyxNQUFPLE1BQU8sUUFDM0MsS0FBSyxZQUFZLE1BQU07QUFBQSxjQUMxQjtBQUFBO0FBQUEsY0FHQSxPQUFPLHVCQUF3QixXQUFXO0FBQ3pDLHVCQUFPLENBQUUsQ0FBRTtBQUFBLGNBQ1osQ0FBRTtBQUFBLGNBRUYsTUFBTSx1QkFBd0IsU0FBVSxlQUFlLFFBQVM7QUFDL0QsdUJBQU8sQ0FBRSxTQUFTLENBQUU7QUFBQSxjQUNyQixDQUFFO0FBQUEsY0FFRixJQUFJLHVCQUF3QixTQUFVLGVBQWUsUUFBUSxVQUFXO0FBQ3ZFLHVCQUFPLENBQUUsV0FBVyxJQUFJLFdBQVcsU0FBUyxRQUFTO0FBQUEsY0FDdEQsQ0FBRTtBQUFBLGNBRUYsTUFBTSx1QkFBd0IsU0FBVSxjQUFjLFFBQVM7QUFDOUQsb0JBQUlRLEtBQUk7QUFDUix1QkFBUUEsS0FBSSxRQUFRQSxNQUFLLEdBQUk7QUFDNUIsK0JBQWEsS0FBTUEsRUFBRTtBQUFBLGdCQUN0QjtBQUNBLHVCQUFPO0FBQUEsY0FDUixDQUFFO0FBQUEsY0FFRixLQUFLLHVCQUF3QixTQUFVLGNBQWMsUUFBUztBQUM3RCxvQkFBSUEsS0FBSTtBQUNSLHVCQUFRQSxLQUFJLFFBQVFBLE1BQUssR0FBSTtBQUM1QiwrQkFBYSxLQUFNQSxFQUFFO0FBQUEsZ0JBQ3RCO0FBQ0EsdUJBQU87QUFBQSxjQUNSLENBQUU7QUFBQSxjQUVGLElBQUksdUJBQXdCLFNBQVUsY0FBYyxRQUFRLFVBQVc7QUFDdEUsb0JBQUlBO0FBRUosb0JBQUssV0FBVyxHQUFJO0FBQ25CLGtCQUFBQSxLQUFJLFdBQVc7QUFBQSxnQkFDaEIsV0FBWSxXQUFXLFFBQVM7QUFDL0Isa0JBQUFBLEtBQUk7QUFBQSxnQkFDTCxPQUFPO0FBQ04sa0JBQUFBLEtBQUk7QUFBQSxnQkFDTDtBQUVBLHVCQUFRLEVBQUVBLE1BQUssS0FBSztBQUNuQiwrQkFBYSxLQUFNQSxFQUFFO0FBQUEsZ0JBQ3RCO0FBQ0EsdUJBQU87QUFBQSxjQUNSLENBQUU7QUFBQSxjQUVGLElBQUksdUJBQXdCLFNBQVUsY0FBYyxRQUFRLFVBQVc7QUFDdEUsb0JBQUlBLEtBQUksV0FBVyxJQUFJLFdBQVcsU0FBUztBQUMzQyx1QkFBUSxFQUFFQSxLQUFJLFVBQVU7QUFDdkIsK0JBQWEsS0FBTUEsRUFBRTtBQUFBLGdCQUN0QjtBQUNBLHVCQUFPO0FBQUEsY0FDUixDQUFFO0FBQUEsWUFDSDtBQUFBLFVBQ0Q7QUFFQSxlQUFLLFFBQVEsTUFBTSxLQUFLLFFBQVE7QUFHaEMsZUFBTSxLQUFLLEVBQUUsT0FBTyxNQUFNLFVBQVUsTUFBTSxNQUFNLE1BQU0sVUFBVSxNQUFNLE9BQU8sS0FBSyxHQUFJO0FBQ3JGLGlCQUFLLFFBQVMsQ0FBRSxJQUFJLGtCQUFtQixDQUFFO0FBQUEsVUFDMUM7QUFDQSxlQUFNLEtBQUssRUFBRSxRQUFRLE1BQU0sT0FBTyxLQUFLLEdBQUk7QUFDMUMsaUJBQUssUUFBUyxDQUFFLElBQUksbUJBQW9CLENBQUU7QUFBQSxVQUMzQztBQUdBLG1CQUFTLGFBQWE7QUFBQSxVQUFDO0FBQ3ZCLHFCQUFXLFlBQVksS0FBSyxVQUFVLEtBQUs7QUFDM0MsZUFBSyxhQUFhLElBQUksV0FBVztBQUVqQyxtQkFBUyxTQUFVLFVBQVUsV0FBWTtBQUN4QyxnQkFBSSxTQUFTLE9BQU8sUUFBUSxNQUMzQixPQUFPLFFBQVEsWUFDZixTQUFTLFdBQVksV0FBVyxHQUFJO0FBRXJDLGdCQUFLLFFBQVM7QUFDYixxQkFBTyxZQUFZLElBQUksT0FBTyxNQUFPLENBQUU7QUFBQSxZQUN4QztBQUVBLG9CQUFRO0FBQ1IscUJBQVMsQ0FBQztBQUNWLHlCQUFhLEtBQUs7QUFFbEIsbUJBQVEsT0FBUTtBQUdmLGtCQUFLLENBQUMsWUFBYSxRQUFRLE9BQU8sS0FBTSxLQUFNLElBQU07QUFDbkQsb0JBQUssT0FBUTtBQUdaLDBCQUFRLE1BQU0sTUFBTyxNQUFPLENBQUUsRUFBRSxNQUFPLEtBQUs7QUFBQSxnQkFDN0M7QUFDQSx1QkFBTyxLQUFRLFNBQVMsQ0FBQyxDQUFJO0FBQUEsY0FDOUI7QUFFQSx3QkFBVTtBQUdWLGtCQUFPLFFBQVEsbUJBQW1CLEtBQU0sS0FBTSxHQUFNO0FBQ25ELDBCQUFVLE1BQU0sTUFBTTtBQUN0Qix1QkFBTyxLQUFNO0FBQUEsa0JBQ1osT0FBTztBQUFBO0FBQUEsa0JBR1AsTUFBTSxNQUFPLENBQUUsRUFBRSxRQUFTLFVBQVUsR0FBSTtBQUFBLGdCQUN6QyxDQUFFO0FBQ0Ysd0JBQVEsTUFBTSxNQUFPLFFBQVEsTUFBTztBQUFBLGNBQ3JDO0FBR0EsbUJBQU0sUUFBUSxLQUFLLFFBQVM7QUFDM0IscUJBQU8sUUFBUSxVQUFXLElBQUssRUFBRSxLQUFNLEtBQU0sT0FBUyxDQUFDLFdBQVksSUFBSyxNQUNyRSxRQUFRLFdBQVksSUFBSyxFQUFHLEtBQU0sS0FBUTtBQUM1Qyw0QkFBVSxNQUFNLE1BQU07QUFDdEIseUJBQU8sS0FBTTtBQUFBLG9CQUNaLE9BQU87QUFBQSxvQkFDUDtBQUFBLG9CQUNBLFNBQVM7QUFBQSxrQkFDVixDQUFFO0FBQ0YsMEJBQVEsTUFBTSxNQUFPLFFBQVEsTUFBTztBQUFBLGdCQUNyQztBQUFBLGNBQ0Q7QUFFQSxrQkFBSyxDQUFDLFNBQVU7QUFDZjtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBS0EsZ0JBQUssV0FBWTtBQUNoQixxQkFBTyxNQUFNO0FBQUEsWUFDZDtBQUVBLG1CQUFPLFFBQ04sS0FBSyxNQUFPLFFBQVM7QUFBQTtBQUFBLGNBR3JCLFdBQVksVUFBVSxNQUFPLEVBQUUsTUFBTyxDQUFFO0FBQUE7QUFBQSxVQUMxQztBQUVBLG1CQUFTLFdBQVksUUFBUztBQUM3QixnQkFBSUEsS0FBSSxHQUNQLE1BQU0sT0FBTyxRQUNiLFdBQVc7QUFDWixtQkFBUUEsS0FBSSxLQUFLQSxNQUFNO0FBQ3RCLDBCQUFZLE9BQVFBLEVBQUUsRUFBRTtBQUFBLFlBQ3pCO0FBQ0EsbUJBQU87QUFBQSxVQUNSO0FBRUEsbUJBQVMsY0FBZSxTQUFTLFlBQVksTUFBTztBQUNuRCxnQkFBSUssT0FBTSxXQUFXLEtBQ3BCLE9BQU8sV0FBVyxNQUNsQixNQUFNLFFBQVFBLE1BQ2QsbUJBQW1CLFFBQVEsUUFBUSxjQUNuQyxXQUFXO0FBRVosbUJBQU8sV0FBVztBQUFBO0FBQUEsY0FHakIsU0FBVSxNQUFNLFNBQVMsS0FBTTtBQUM5Qix1QkFBVSxPQUFPLEtBQU1BLElBQUksR0FBTTtBQUNoQyxzQkFBSyxLQUFLLGFBQWEsS0FBSyxrQkFBbUI7QUFDOUMsMkJBQU8sUUFBUyxNQUFNLFNBQVMsR0FBSTtBQUFBLGtCQUNwQztBQUFBLGdCQUNEO0FBQ0EsdUJBQU87QUFBQSxjQUNSO0FBQUE7QUFBQTtBQUFBLGNBR0EsU0FBVSxNQUFNLFNBQVMsS0FBTTtBQUM5QixvQkFBSSxVQUFVLFlBQ2IsV0FBVyxDQUFFLFNBQVMsUUFBUztBQUdoQyxvQkFBSyxLQUFNO0FBQ1YseUJBQVUsT0FBTyxLQUFNQSxJQUFJLEdBQU07QUFDaEMsd0JBQUssS0FBSyxhQUFhLEtBQUssa0JBQW1CO0FBQzlDLDBCQUFLLFFBQVMsTUFBTSxTQUFTLEdBQUksR0FBSTtBQUNwQywrQkFBTztBQUFBLHNCQUNSO0FBQUEsb0JBQ0Q7QUFBQSxrQkFDRDtBQUFBLGdCQUNELE9BQU87QUFDTix5QkFBVSxPQUFPLEtBQU1BLElBQUksR0FBTTtBQUNoQyx3QkFBSyxLQUFLLGFBQWEsS0FBSyxrQkFBbUI7QUFDOUMsbUNBQWEsS0FBTSxPQUFRLE1BQU8sS0FBTSxPQUFRLElBQUksQ0FBQztBQUVyRCwwQkFBSyxRQUFRLFNBQVUsTUFBTSxJQUFLLEdBQUk7QUFDckMsK0JBQU8sS0FBTUEsSUFBSSxLQUFLO0FBQUEsc0JBQ3ZCLFlBQWMsV0FBVyxXQUFZLEdBQUksTUFDeEMsU0FBVSxDQUFFLE1BQU0sV0FBVyxTQUFVLENBQUUsTUFBTSxVQUFXO0FBRzFELCtCQUFTLFNBQVUsQ0FBRSxJQUFJLFNBQVUsQ0FBRTtBQUFBLHNCQUN0QyxPQUFPO0FBR04sbUNBQVksR0FBSSxJQUFJO0FBR3BCLDRCQUFPLFNBQVUsQ0FBRSxJQUFJLFFBQVMsTUFBTSxTQUFTLEdBQUksR0FBTTtBQUN4RCxpQ0FBTztBQUFBLHdCQUNSO0FBQUEsc0JBQ0Q7QUFBQSxvQkFDRDtBQUFBLGtCQUNEO0FBQUEsZ0JBQ0Q7QUFDQSx1QkFBTztBQUFBLGNBQ1I7QUFBQTtBQUFBLFVBQ0Y7QUFFQSxtQkFBUyxlQUFnQixVQUFXO0FBQ25DLG1CQUFPLFNBQVMsU0FBUyxJQUN4QixTQUFVLE1BQU0sU0FBUyxLQUFNO0FBQzlCLGtCQUFJTCxLQUFJLFNBQVM7QUFDakIscUJBQVFBLE1BQU07QUFDYixvQkFBSyxDQUFDLFNBQVVBLEVBQUUsRUFBRyxNQUFNLFNBQVMsR0FBSSxHQUFJO0FBQzNDLHlCQUFPO0FBQUEsZ0JBQ1I7QUFBQSxjQUNEO0FBQ0EscUJBQU87QUFBQSxZQUNSLElBQ0EsU0FBVSxDQUFFO0FBQUEsVUFDZDtBQUVBLG1CQUFTLGlCQUFrQixVQUFVLFVBQVUsU0FBVTtBQUN4RCxnQkFBSUEsS0FBSSxHQUNQLE1BQU0sU0FBUztBQUNoQixtQkFBUUEsS0FBSSxLQUFLQSxNQUFNO0FBQ3RCLG1CQUFNLFVBQVUsU0FBVUEsRUFBRSxHQUFHLE9BQVE7QUFBQSxZQUN4QztBQUNBLG1CQUFPO0FBQUEsVUFDUjtBQUVBLG1CQUFTLFNBQVUsV0FBVyxLQUFLLFFBQVEsU0FBUyxLQUFNO0FBQ3pELGdCQUFJLE1BQ0gsZUFBZSxDQUFDLEdBQ2hCQSxLQUFJLEdBQ0osTUFBTSxVQUFVLFFBQ2hCLFNBQVMsT0FBTztBQUVqQixtQkFBUUEsS0FBSSxLQUFLQSxNQUFNO0FBQ3RCLGtCQUFPLE9BQU8sVUFBV0EsRUFBRSxHQUFNO0FBQ2hDLG9CQUFLLENBQUMsVUFBVSxPQUFRLE1BQU0sU0FBUyxHQUFJLEdBQUk7QUFDOUMsK0JBQWEsS0FBTSxJQUFLO0FBQ3hCLHNCQUFLLFFBQVM7QUFDYix3QkFBSSxLQUFNQSxFQUFFO0FBQUEsa0JBQ2I7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBRUEsbUJBQU87QUFBQSxVQUNSO0FBRUEsbUJBQVMsV0FBWSxXQUFXLFVBQVUsU0FBUyxZQUFZLFlBQVksY0FBZTtBQUN6RixnQkFBSyxjQUFjLENBQUMsV0FBWSxPQUFRLEdBQUk7QUFDM0MsMkJBQWEsV0FBWSxVQUFXO0FBQUEsWUFDckM7QUFDQSxnQkFBSyxjQUFjLENBQUMsV0FBWSxPQUFRLEdBQUk7QUFDM0MsMkJBQWEsV0FBWSxZQUFZLFlBQWE7QUFBQSxZQUNuRDtBQUNBLG1CQUFPLGFBQWMsU0FBVSxNQUFNLFNBQVMsU0FBUyxLQUFNO0FBQzVELGtCQUFJLE1BQU1BLElBQUcsTUFBTSxZQUNsQixTQUFTLENBQUMsR0FDVixVQUFVLENBQUMsR0FDWCxjQUFjLFFBQVEsUUFHdEIsUUFBUSxRQUNQO0FBQUEsZ0JBQWtCLFlBQVk7QUFBQSxnQkFDN0IsUUFBUSxXQUFXLENBQUUsT0FBUSxJQUFJO0FBQUEsZ0JBQVMsQ0FBQztBQUFBLGNBQUUsR0FHL0MsWUFBWSxjQUFlLFFBQVEsQ0FBQyxZQUNuQyxTQUFVLE9BQU8sUUFBUSxXQUFXLFNBQVMsR0FBSSxJQUNqRDtBQUVGLGtCQUFLLFNBQVU7QUFJZCw2QkFBYSxlQUFnQixPQUFPLFlBQVksZUFBZTtBQUFBO0FBQUEsa0JBRzlELENBQUM7QUFBQTtBQUFBO0FBQUEsa0JBR0Q7QUFBQTtBQUdELHdCQUFTLFdBQVcsWUFBWSxTQUFTLEdBQUk7QUFBQSxjQUM5QyxPQUFPO0FBQ04sNkJBQWE7QUFBQSxjQUNkO0FBR0Esa0JBQUssWUFBYTtBQUNqQix1QkFBTyxTQUFVLFlBQVksT0FBUTtBQUNyQywyQkFBWSxNQUFNLENBQUMsR0FBRyxTQUFTLEdBQUk7QUFHbkMsZ0JBQUFBLEtBQUksS0FBSztBQUNULHVCQUFRQSxNQUFNO0FBQ2Isc0JBQU8sT0FBTyxLQUFNQSxFQUFFLEdBQU07QUFDM0IsK0JBQVksUUFBU0EsRUFBRSxDQUFFLElBQUksRUFBRyxVQUFXLFFBQVNBLEVBQUUsQ0FBRSxJQUFJO0FBQUEsa0JBQzdEO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBRUEsa0JBQUssTUFBTztBQUNYLG9CQUFLLGNBQWMsV0FBWTtBQUM5QixzQkFBSyxZQUFhO0FBR2pCLDJCQUFPLENBQUM7QUFDUixvQkFBQUEsS0FBSSxXQUFXO0FBQ2YsMkJBQVFBLE1BQU07QUFDYiwwQkFBTyxPQUFPLFdBQVlBLEVBQUUsR0FBTTtBQUdqQyw2QkFBSyxLQUFRLFVBQVdBLEVBQUUsSUFBSSxJQUFPO0FBQUEsc0JBQ3RDO0FBQUEsb0JBQ0Q7QUFDQSwrQkFBWSxNQUFRLGFBQWEsQ0FBQyxHQUFLLE1BQU0sR0FBSTtBQUFBLGtCQUNsRDtBQUdBLGtCQUFBQSxLQUFJLFdBQVc7QUFDZix5QkFBUUEsTUFBTTtBQUNiLHlCQUFPLE9BQU8sV0FBWUEsRUFBRSxPQUN6QixPQUFPLGFBQWEsUUFBUSxLQUFNLE1BQU0sSUFBSyxJQUFJLE9BQVFBLEVBQUUsS0FBTSxJQUFLO0FBRXhFLDJCQUFNLElBQUssSUFBSSxFQUFHLFFBQVMsSUFBSyxJQUFJO0FBQUEsb0JBQ3JDO0FBQUEsa0JBQ0Q7QUFBQSxnQkFDRDtBQUFBLGNBR0QsT0FBTztBQUNOLDZCQUFhO0FBQUEsa0JBQ1osZUFBZSxVQUNkLFdBQVcsT0FBUSxhQUFhLFdBQVcsTUFBTyxJQUNsRDtBQUFBLGdCQUNGO0FBQ0Esb0JBQUssWUFBYTtBQUNqQiw2QkFBWSxNQUFNLFNBQVMsWUFBWSxHQUFJO0FBQUEsZ0JBQzVDLE9BQU87QUFDTixrQkFBQUgsTUFBSyxNQUFPLFNBQVMsVUFBVztBQUFBLGdCQUNqQztBQUFBLGNBQ0Q7QUFBQSxZQUNELENBQUU7QUFBQSxVQUNIO0FBRUEsbUJBQVMsa0JBQW1CLFFBQVM7QUFDcEMsZ0JBQUksY0FBYyxTQUFTLEdBQzFCLE1BQU0sT0FBTyxRQUNiLGtCQUFrQixLQUFLLFNBQVUsT0FBUSxDQUFFLEVBQUUsSUFBSyxHQUNsRCxtQkFBbUIsbUJBQW1CLEtBQUssU0FBVSxHQUFJLEdBQ3pERyxLQUFJLGtCQUFrQixJQUFJLEdBRzFCLGVBQWUsY0FBZSxTQUFVLE1BQU87QUFDOUMscUJBQU8sU0FBUztBQUFBLFlBQ2pCLEdBQUcsa0JBQWtCLElBQUssR0FDMUIsa0JBQWtCLGNBQWUsU0FBVSxNQUFPO0FBQ2pELHFCQUFPLFFBQVEsS0FBTSxjQUFjLElBQUssSUFBSTtBQUFBLFlBQzdDLEdBQUcsa0JBQWtCLElBQUssR0FDMUIsV0FBVyxDQUFFLFNBQVUsTUFBTSxTQUFTLEtBQU07QUFNM0Msa0JBQUksTUFBUSxDQUFDLG9CQUFxQixPQUFPLFdBQVcsdUJBQ2pELGVBQWUsU0FBVSxXQUMxQixhQUFjLE1BQU0sU0FBUyxHQUFJLElBQ2pDLGdCQUFpQixNQUFNLFNBQVMsR0FBSTtBQUl0Qyw2QkFBZTtBQUNmLHFCQUFPO0FBQUEsWUFDUixDQUFFO0FBRUgsbUJBQVFBLEtBQUksS0FBS0EsTUFBTTtBQUN0QixrQkFBTyxVQUFVLEtBQUssU0FBVSxPQUFRQSxFQUFFLEVBQUUsSUFBSyxHQUFNO0FBQ3RELDJCQUFXLENBQUUsY0FBZSxlQUFnQixRQUFTLEdBQUcsT0FBUSxDQUFFO0FBQUEsY0FDbkUsT0FBTztBQUNOLDBCQUFVLEtBQUssT0FBUSxPQUFRQSxFQUFFLEVBQUUsSUFBSyxFQUFFLE1BQU8sTUFBTSxPQUFRQSxFQUFFLEVBQUUsT0FBUTtBQUczRSxvQkFBSyxRQUFTLE9BQVEsR0FBSTtBQUd6QixzQkFBSSxFQUFFQTtBQUNOLHlCQUFRLElBQUksS0FBSyxLQUFNO0FBQ3RCLHdCQUFLLEtBQUssU0FBVSxPQUFRLENBQUUsRUFBRSxJQUFLLEdBQUk7QUFDeEM7QUFBQSxvQkFDRDtBQUFBLGtCQUNEO0FBQ0EseUJBQU87QUFBQSxvQkFDTkEsS0FBSSxLQUFLLGVBQWdCLFFBQVM7QUFBQSxvQkFDbENBLEtBQUksS0FBSztBQUFBO0FBQUEsc0JBR1IsT0FBTyxNQUFPLEdBQUdBLEtBQUksQ0FBRSxFQUNyQixPQUFRLEVBQUUsT0FBTyxPQUFRQSxLQUFJLENBQUUsRUFBRSxTQUFTLE1BQU0sTUFBTSxHQUFHLENBQUU7QUFBQSxvQkFDOUQsRUFBRSxRQUFTLFVBQVUsSUFBSztBQUFBLG9CQUMxQjtBQUFBLG9CQUNBQSxLQUFJLEtBQUssa0JBQW1CLE9BQU8sTUFBT0EsSUFBRyxDQUFFLENBQUU7QUFBQSxvQkFDakQsSUFBSSxPQUFPLGtCQUFxQixTQUFTLE9BQU8sTUFBTyxDQUFFLENBQUk7QUFBQSxvQkFDN0QsSUFBSSxPQUFPLFdBQVksTUFBTztBQUFBLGtCQUMvQjtBQUFBLGdCQUNEO0FBQ0EseUJBQVMsS0FBTSxPQUFRO0FBQUEsY0FDeEI7QUFBQSxZQUNEO0FBRUEsbUJBQU8sZUFBZ0IsUUFBUztBQUFBLFVBQ2pDO0FBRUEsbUJBQVMseUJBQTBCLGlCQUFpQixhQUFjO0FBQ2pFLGdCQUFJLFFBQVEsWUFBWSxTQUFTLEdBQ2hDLFlBQVksZ0JBQWdCLFNBQVMsR0FDckMsZUFBZSxTQUFVLE1BQU0sU0FBUyxLQUFLLFNBQVMsV0FBWTtBQUNqRSxrQkFBSSxNQUFNLEdBQUcsU0FDWixlQUFlLEdBQ2ZBLEtBQUksS0FDSixZQUFZLFFBQVEsQ0FBQyxHQUNyQixhQUFhLENBQUMsR0FDZCxnQkFBZ0Isa0JBR2hCLFFBQVEsUUFBUSxhQUFhLEtBQUssS0FBSyxJQUFLLEtBQUssU0FBVSxHQUczRCxnQkFBa0IsV0FBVyxpQkFBaUIsT0FBTyxJQUFJLEtBQUssT0FBTyxLQUFLLEtBQzFFLE1BQU0sTUFBTTtBQUViLGtCQUFLLFdBQVk7QUFNaEIsbUNBQW1CLFdBQVdSLGFBQVksV0FBVztBQUFBLGNBQ3REO0FBTUEscUJBQVFRLE9BQU0sUUFBUyxPQUFPLE1BQU9BLEVBQUUsTUFBTyxNQUFNQSxNQUFNO0FBQ3pELG9CQUFLLGFBQWEsTUFBTztBQUN4QixzQkFBSTtBQU1KLHNCQUFLLENBQUMsV0FBVyxLQUFLLGlCQUFpQlIsV0FBVztBQUNqRCxnQ0FBYSxJQUFLO0FBQ2xCLDBCQUFNLENBQUM7QUFBQSxrQkFDUjtBQUNBLHlCQUFVLFVBQVUsZ0JBQWlCLEdBQUksR0FBTTtBQUM5Qyx3QkFBSyxRQUFTLE1BQU0sV0FBV0EsV0FBVSxHQUFJLEdBQUk7QUFDaEQsc0JBQUFLLE1BQUssS0FBTSxTQUFTLElBQUs7QUFDekI7QUFBQSxvQkFDRDtBQUFBLGtCQUNEO0FBQ0Esc0JBQUssV0FBWTtBQUNoQiw4QkFBVTtBQUFBLGtCQUNYO0FBQUEsZ0JBQ0Q7QUFHQSxvQkFBSyxPQUFRO0FBR1osc0JBQU8sT0FBTyxDQUFDLFdBQVcsTUFBUztBQUNsQztBQUFBLGtCQUNEO0FBR0Esc0JBQUssTUFBTztBQUNYLDhCQUFVLEtBQU0sSUFBSztBQUFBLGtCQUN0QjtBQUFBLGdCQUNEO0FBQUEsY0FDRDtBQUlBLDhCQUFnQkc7QUFTaEIsa0JBQUssU0FBU0EsT0FBTSxjQUFlO0FBQ2xDLG9CQUFJO0FBQ0osdUJBQVUsVUFBVSxZQUFhLEdBQUksR0FBTTtBQUMxQywwQkFBUyxXQUFXLFlBQVksU0FBUyxHQUFJO0FBQUEsZ0JBQzlDO0FBRUEsb0JBQUssTUFBTztBQUdYLHNCQUFLLGVBQWUsR0FBSTtBQUN2QiwyQkFBUUEsTUFBTTtBQUNiLDBCQUFLLEVBQUcsVUFBV0EsRUFBRSxLQUFLLFdBQVlBLEVBQUUsSUFBTTtBQUM3QyxtQ0FBWUEsRUFBRSxJQUFJLElBQUksS0FBTSxPQUFRO0FBQUEsc0JBQ3JDO0FBQUEsb0JBQ0Q7QUFBQSxrQkFDRDtBQUdBLCtCQUFhLFNBQVUsVUFBVztBQUFBLGdCQUNuQztBQUdBLGdCQUFBSCxNQUFLLE1BQU8sU0FBUyxVQUFXO0FBR2hDLG9CQUFLLGFBQWEsQ0FBQyxRQUFRLFdBQVcsU0FBUyxLQUM1QyxlQUFlLFlBQVksU0FBVyxHQUFJO0FBRTVDLHlCQUFPLFdBQVksT0FBUTtBQUFBLGdCQUM1QjtBQUFBLGNBQ0Q7QUFHQSxrQkFBSyxXQUFZO0FBQ2hCLDBCQUFVO0FBQ1YsbUNBQW1CO0FBQUEsY0FDcEI7QUFFQSxxQkFBTztBQUFBLFlBQ1I7QUFFRCxtQkFBTyxRQUNOLGFBQWMsWUFBYSxJQUMzQjtBQUFBLFVBQ0Y7QUFFQSxtQkFBUyxRQUFTLFVBQVUsT0FBZ0M7QUFDM0QsZ0JBQUlHLElBQ0gsY0FBYyxDQUFDLEdBQ2Ysa0JBQWtCLENBQUMsR0FDbkIsU0FBUyxjQUFlLFdBQVcsR0FBSTtBQUV4QyxnQkFBSyxDQUFDLFFBQVM7QUFHZCxrQkFBSyxDQUFDLE9BQVE7QUFDYix3QkFBUSxTQUFVLFFBQVM7QUFBQSxjQUM1QjtBQUNBLGNBQUFBLEtBQUksTUFBTTtBQUNWLHFCQUFRQSxNQUFNO0FBQ2IseUJBQVMsa0JBQW1CLE1BQU9BLEVBQUUsQ0FBRTtBQUN2QyxvQkFBSyxPQUFRLE9BQVEsR0FBSTtBQUN4Qiw4QkFBWSxLQUFNLE1BQU87QUFBQSxnQkFDMUIsT0FBTztBQUNOLGtDQUFnQixLQUFNLE1BQU87QUFBQSxnQkFDOUI7QUFBQSxjQUNEO0FBR0EsdUJBQVM7QUFBQSxnQkFBZTtBQUFBLGdCQUN2Qix5QkFBMEIsaUJBQWlCLFdBQVk7QUFBQSxjQUFFO0FBRzFELHFCQUFPLFdBQVc7QUFBQSxZQUNuQjtBQUNBLG1CQUFPO0FBQUEsVUFDUjtBQVdBLG1CQUFTLE9BQVEsVUFBVSxTQUFTLFNBQVMsTUFBTztBQUNuRCxnQkFBSUEsSUFBRyxRQUFRLE9BQU8sTUFBTU8sT0FDM0IsV0FBVyxPQUFPLGFBQWEsY0FBYyxVQUM3QyxRQUFRLENBQUMsUUFBUSxTQUFZLFdBQVcsU0FBUyxZQUFZLFFBQVc7QUFFekUsc0JBQVUsV0FBVyxDQUFDO0FBSXRCLGdCQUFLLE1BQU0sV0FBVyxHQUFJO0FBR3pCLHVCQUFTLE1BQU8sQ0FBRSxJQUFJLE1BQU8sQ0FBRSxFQUFFLE1BQU8sQ0FBRTtBQUMxQyxrQkFBSyxPQUFPLFNBQVMsTUFBTyxRQUFRLE9BQVEsQ0FBRSxHQUFJLFNBQVMsUUFDekQsUUFBUSxhQUFhLEtBQUssa0JBQWtCLEtBQUssU0FBVSxPQUFRLENBQUUsRUFBRSxJQUFLLEdBQUk7QUFFakYsMkJBQVksS0FBSyxLQUFLO0FBQUEsa0JBQ3JCLE1BQU0sUUFBUyxDQUFFLEVBQUUsUUFBUyxXQUFXLFNBQVU7QUFBQSxrQkFDakQ7QUFBQSxnQkFDRCxLQUFLLENBQUMsR0FBSyxDQUFFO0FBQ2Isb0JBQUssQ0FBQyxTQUFVO0FBQ2YseUJBQU87QUFBQSxnQkFHUixXQUFZLFVBQVc7QUFDdEIsNEJBQVUsUUFBUTtBQUFBLGdCQUNuQjtBQUVBLDJCQUFXLFNBQVMsTUFBTyxPQUFPLE1BQU0sRUFBRSxNQUFNLE1BQU87QUFBQSxjQUN4RDtBQUdBLGNBQUFQLEtBQUksVUFBVSxhQUFhLEtBQU0sUUFBUyxJQUFJLElBQUksT0FBTztBQUN6RCxxQkFBUUEsTUFBTTtBQUNiLHdCQUFRLE9BQVFBLEVBQUU7QUFHbEIsb0JBQUssS0FBSyxTQUFZLE9BQU8sTUFBTSxJQUFPLEdBQUk7QUFDN0M7QUFBQSxnQkFDRDtBQUNBLG9CQUFPTyxRQUFPLEtBQUssS0FBTSxJQUFLLEdBQU07QUFHbkMsc0JBQU8sT0FBT0E7QUFBQSxvQkFDYixNQUFNLFFBQVMsQ0FBRSxFQUFFLFFBQVMsV0FBVyxTQUFVO0FBQUEsb0JBQ2pELFNBQVMsS0FBTSxPQUFRLENBQUUsRUFBRSxJQUFLLEtBQy9CLFlBQWEsUUFBUSxVQUFXLEtBQUs7QUFBQSxrQkFDdkMsR0FBTTtBQUdMLDJCQUFPLE9BQVFQLElBQUcsQ0FBRTtBQUNwQiwrQkFBVyxLQUFLLFVBQVUsV0FBWSxNQUFPO0FBQzdDLHdCQUFLLENBQUMsVUFBVztBQUNoQixzQkFBQUgsTUFBSyxNQUFPLFNBQVMsSUFBSztBQUMxQiw2QkFBTztBQUFBLG9CQUNSO0FBRUE7QUFBQSxrQkFDRDtBQUFBLGdCQUNEO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFJQSxhQUFFLFlBQVksUUFBUyxVQUFVLEtBQU07QUFBQSxjQUN0QztBQUFBLGNBQ0E7QUFBQSxjQUNBLENBQUM7QUFBQSxjQUNEO0FBQUEsY0FDQSxDQUFDLFdBQVcsU0FBUyxLQUFNLFFBQVMsS0FBSyxZQUFhLFFBQVEsVUFBVyxLQUFLO0FBQUEsWUFDL0U7QUFDQSxtQkFBTztBQUFBLFVBQ1I7QUFNQSxrQkFBUSxhQUFhLFFBQVEsTUFBTyxFQUFHLEVBQUUsS0FBTSxTQUFVLEVBQUUsS0FBTSxFQUFHLE1BQU07QUFHMUUsc0JBQVk7QUFJWixrQkFBUSxlQUFlLE9BQVEsU0FBVSxJQUFLO0FBRzdDLG1CQUFPLEdBQUcsd0JBQXlCTCxVQUFTLGNBQWUsVUFBVyxDQUFFLElBQUk7QUFBQSxVQUM3RSxDQUFFO0FBRUYsaUJBQU8sT0FBTztBQUdkLGlCQUFPLEtBQU0sR0FBSSxJQUFJLE9BQU8sS0FBSztBQUNqQyxpQkFBTyxTQUFTLE9BQU87QUFJdkIsZUFBSyxVQUFVO0FBQ2YsZUFBSyxTQUFTO0FBQ2QsZUFBSyxjQUFjO0FBQ25CLGVBQUssV0FBVztBQUVoQixlQUFLLFNBQVMsT0FBTztBQUNyQixlQUFLLFVBQVUsT0FBTztBQUN0QixlQUFLLFFBQVEsT0FBTztBQUNwQixlQUFLLFlBQVksT0FBTztBQUN4QixlQUFLLFVBQVUsT0FBTztBQUN0QixlQUFLLGFBQWEsT0FBTztBQUFBLFFBSXpCLEdBQUk7QUFHSixZQUFJLE1BQU0sU0FBVSxNQUFNYSxNQUFLLE9BQVE7QUFDdEMsY0FBSSxVQUFVLENBQUMsR0FDZCxXQUFXLFVBQVU7QUFFdEIsa0JBQVUsT0FBTyxLQUFNQSxJQUFJLE1BQU8sS0FBSyxhQUFhLEdBQUk7QUFDdkQsZ0JBQUssS0FBSyxhQUFhLEdBQUk7QUFDMUIsa0JBQUssWUFBWSxPQUFRLElBQUssRUFBRSxHQUFJLEtBQU0sR0FBSTtBQUM3QztBQUFBLGNBQ0Q7QUFDQSxzQkFBUSxLQUFNLElBQUs7QUFBQSxZQUNwQjtBQUFBLFVBQ0Q7QUFDQSxpQkFBTztBQUFBLFFBQ1I7QUFHQSxZQUFJLFdBQVcsU0FBVSxHQUFHLE1BQU87QUFDbEMsY0FBSSxVQUFVLENBQUM7QUFFZixpQkFBUSxHQUFHLElBQUksRUFBRSxhQUFjO0FBQzlCLGdCQUFLLEVBQUUsYUFBYSxLQUFLLE1BQU0sTUFBTztBQUNyQyxzQkFBUSxLQUFNLENBQUU7QUFBQSxZQUNqQjtBQUFBLFVBQ0Q7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFHQSxZQUFJLGdCQUFnQixPQUFPLEtBQUssTUFBTTtBQUV0QyxZQUFJLGFBQWU7QUFLbkIsaUJBQVMsT0FBUSxVQUFVLFdBQVcsS0FBTTtBQUMzQyxjQUFLLFdBQVksU0FBVSxHQUFJO0FBQzlCLG1CQUFPLE9BQU8sS0FBTSxVQUFVLFNBQVUsTUFBTSxHQUFJO0FBQ2pELHFCQUFPLENBQUMsQ0FBQyxVQUFVLEtBQU0sTUFBTSxHQUFHLElBQUssTUFBTTtBQUFBLFlBQzlDLENBQUU7QUFBQSxVQUNIO0FBR0EsY0FBSyxVQUFVLFVBQVc7QUFDekIsbUJBQU8sT0FBTyxLQUFNLFVBQVUsU0FBVSxNQUFPO0FBQzlDLHFCQUFTLFNBQVMsY0FBZ0I7QUFBQSxZQUNuQyxDQUFFO0FBQUEsVUFDSDtBQUdBLGNBQUssT0FBTyxjQUFjLFVBQVc7QUFDcEMsbUJBQU8sT0FBTyxLQUFNLFVBQVUsU0FBVSxNQUFPO0FBQzlDLHFCQUFTLFFBQVEsS0FBTSxXQUFXLElBQUssSUFBSSxPQUFTO0FBQUEsWUFDckQsQ0FBRTtBQUFBLFVBQ0g7QUFHQSxpQkFBTyxPQUFPLE9BQVEsV0FBVyxVQUFVLEdBQUk7QUFBQSxRQUNoRDtBQUVBLGVBQU8sU0FBUyxTQUFVLE1BQU0sT0FBTyxLQUFNO0FBQzVDLGNBQUksT0FBTyxNQUFPLENBQUU7QUFFcEIsY0FBSyxLQUFNO0FBQ1YsbUJBQU8sVUFBVSxPQUFPO0FBQUEsVUFDekI7QUFFQSxjQUFLLE1BQU0sV0FBVyxLQUFLLEtBQUssYUFBYSxHQUFJO0FBQ2hELG1CQUFPLE9BQU8sS0FBSyxnQkFBaUIsTUFBTSxJQUFLLElBQUksQ0FBRSxJQUFLLElBQUksQ0FBQztBQUFBLFVBQ2hFO0FBRUEsaUJBQU8sT0FBTyxLQUFLLFFBQVMsTUFBTSxPQUFPLEtBQU0sT0FBTyxTQUFVRyxPQUFPO0FBQ3RFLG1CQUFPQSxNQUFLLGFBQWE7QUFBQSxVQUMxQixDQUFFLENBQUU7QUFBQSxRQUNMO0FBRUEsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixNQUFNLFNBQVUsVUFBVztBQUMxQixnQkFBSSxHQUFHLEtBQ04sTUFBTSxLQUFLLFFBQ1hDLFFBQU87QUFFUixnQkFBSyxPQUFPLGFBQWEsVUFBVztBQUNuQyxxQkFBTyxLQUFLLFVBQVcsT0FBUSxRQUFTLEVBQUUsT0FBUSxXQUFXO0FBQzVELHFCQUFNLElBQUksR0FBRyxJQUFJLEtBQUssS0FBTTtBQUMzQixzQkFBSyxPQUFPLFNBQVVBLE1BQU0sQ0FBRSxHQUFHLElBQUssR0FBSTtBQUN6QywyQkFBTztBQUFBLGtCQUNSO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNELENBQUUsQ0FBRTtBQUFBLFlBQ0w7QUFFQSxrQkFBTSxLQUFLLFVBQVcsQ0FBQyxDQUFFO0FBRXpCLGlCQUFNLElBQUksR0FBRyxJQUFJLEtBQUssS0FBTTtBQUMzQixxQkFBTyxLQUFNLFVBQVVBLE1BQU0sQ0FBRSxHQUFHLEdBQUk7QUFBQSxZQUN2QztBQUVBLG1CQUFPLE1BQU0sSUFBSSxPQUFPLFdBQVksR0FBSSxJQUFJO0FBQUEsVUFDN0M7QUFBQSxVQUNBLFFBQVEsU0FBVSxVQUFXO0FBQzVCLG1CQUFPLEtBQUssVUFBVyxPQUFRLE1BQU0sWUFBWSxDQUFDLEdBQUcsS0FBTSxDQUFFO0FBQUEsVUFDOUQ7QUFBQSxVQUNBLEtBQUssU0FBVSxVQUFXO0FBQ3pCLG1CQUFPLEtBQUssVUFBVyxPQUFRLE1BQU0sWUFBWSxDQUFDLEdBQUcsSUFBSyxDQUFFO0FBQUEsVUFDN0Q7QUFBQSxVQUNBLElBQUksU0FBVSxVQUFXO0FBQ3hCLG1CQUFPLENBQUMsQ0FBQztBQUFBLGNBQ1I7QUFBQTtBQUFBO0FBQUEsY0FJQSxPQUFPLGFBQWEsWUFBWSxjQUFjLEtBQU0sUUFBUyxJQUM1RCxPQUFRLFFBQVMsSUFDakIsWUFBWSxDQUFDO0FBQUEsY0FDZDtBQUFBLFlBQ0QsRUFBRTtBQUFBLFVBQ0g7QUFBQSxRQUNELENBQUU7QUFPRixZQUFJLFlBTUgsYUFBYSx1Q0FFYixPQUFPLE9BQU8sR0FBRyxPQUFPLFNBQVUsVUFBVSxTQUFTLE1BQU87QUFDM0QsY0FBSSxPQUFPO0FBR1gsY0FBSyxDQUFDLFVBQVc7QUFDaEIsbUJBQU87QUFBQSxVQUNSO0FBSUEsaUJBQU8sUUFBUTtBQUdmLGNBQUssT0FBTyxhQUFhLFVBQVc7QUFDbkMsZ0JBQUssU0FBVSxDQUFFLE1BQU0sT0FDdEIsU0FBVSxTQUFTLFNBQVMsQ0FBRSxNQUFNLE9BQ3BDLFNBQVMsVUFBVSxHQUFJO0FBR3ZCLHNCQUFRLENBQUUsTUFBTSxVQUFVLElBQUs7QUFBQSxZQUVoQyxPQUFPO0FBQ04sc0JBQVEsV0FBVyxLQUFNLFFBQVM7QUFBQSxZQUNuQztBQUdBLGdCQUFLLFVBQVcsTUFBTyxDQUFFLEtBQUssQ0FBQyxVQUFZO0FBRzFDLGtCQUFLLE1BQU8sQ0FBRSxHQUFJO0FBQ2pCLDBCQUFVLG1CQUFtQixTQUFTLFFBQVMsQ0FBRSxJQUFJO0FBSXJELHVCQUFPLE1BQU8sTUFBTSxPQUFPO0FBQUEsa0JBQzFCLE1BQU8sQ0FBRTtBQUFBLGtCQUNULFdBQVcsUUFBUSxXQUFXLFFBQVEsaUJBQWlCLFVBQVVqQjtBQUFBLGtCQUNqRTtBQUFBLGdCQUNELENBQUU7QUFHRixvQkFBSyxXQUFXLEtBQU0sTUFBTyxDQUFFLENBQUUsS0FBSyxPQUFPLGNBQWUsT0FBUSxHQUFJO0FBQ3ZFLHVCQUFNLFNBQVMsU0FBVTtBQUd4Qix3QkFBSyxXQUFZLEtBQU0sS0FBTSxDQUFFLEdBQUk7QUFDbEMsMkJBQU0sS0FBTSxFQUFHLFFBQVMsS0FBTSxDQUFFO0FBQUEsb0JBR2pDLE9BQU87QUFDTiwyQkFBSyxLQUFNLE9BQU8sUUFBUyxLQUFNLENBQUU7QUFBQSxvQkFDcEM7QUFBQSxrQkFDRDtBQUFBLGdCQUNEO0FBRUEsdUJBQU87QUFBQSxjQUdSLE9BQU87QUFDTix1QkFBT0EsVUFBUyxlQUFnQixNQUFPLENBQUUsQ0FBRTtBQUUzQyxvQkFBSyxNQUFPO0FBR1gsdUJBQU0sQ0FBRSxJQUFJO0FBQ1osdUJBQUssU0FBUztBQUFBLGdCQUNmO0FBQ0EsdUJBQU87QUFBQSxjQUNSO0FBQUEsWUFHRCxXQUFZLENBQUMsV0FBVyxRQUFRLFFBQVM7QUFDeEMsc0JBQVMsV0FBVyxNQUFPLEtBQU0sUUFBUztBQUFBLFlBSTNDLE9BQU87QUFDTixxQkFBTyxLQUFLLFlBQWEsT0FBUSxFQUFFLEtBQU0sUUFBUztBQUFBLFlBQ25EO0FBQUEsVUFHRCxXQUFZLFNBQVMsVUFBVztBQUMvQixpQkFBTSxDQUFFLElBQUk7QUFDWixpQkFBSyxTQUFTO0FBQ2QsbUJBQU87QUFBQSxVQUlSLFdBQVksV0FBWSxRQUFTLEdBQUk7QUFDcEMsbUJBQU8sS0FBSyxVQUFVLFNBQ3JCLEtBQUssTUFBTyxRQUFTO0FBQUE7QUFBQSxjQUdyQixTQUFVLE1BQU87QUFBQTtBQUFBLFVBQ25CO0FBRUEsaUJBQU8sT0FBTyxVQUFXLFVBQVUsSUFBSztBQUFBLFFBQ3pDO0FBR0QsYUFBSyxZQUFZLE9BQU87QUFHeEIscUJBQWEsT0FBUUEsU0FBUztBQUc5QixZQUFJLGVBQWUsa0NBR2xCLG1CQUFtQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxVQUNWLE1BQU07QUFBQSxVQUNOLE1BQU07QUFBQSxRQUNQO0FBRUQsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixLQUFLLFNBQVUsUUFBUztBQUN2QixnQkFBSSxVQUFVLE9BQVEsUUFBUSxJQUFLLEdBQ2xDLElBQUksUUFBUTtBQUViLG1CQUFPLEtBQUssT0FBUSxXQUFXO0FBQzlCLGtCQUFJLElBQUk7QUFDUixxQkFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQixvQkFBSyxPQUFPLFNBQVUsTUFBTSxRQUFTLENBQUUsQ0FBRSxHQUFJO0FBQzVDLHlCQUFPO0FBQUEsZ0JBQ1I7QUFBQSxjQUNEO0FBQUEsWUFDRCxDQUFFO0FBQUEsVUFDSDtBQUFBLFVBRUEsU0FBUyxTQUFVLFdBQVcsU0FBVTtBQUN2QyxnQkFBSSxLQUNILElBQUksR0FDSixJQUFJLEtBQUssUUFDVCxVQUFVLENBQUMsR0FDWCxVQUFVLE9BQU8sY0FBYyxZQUFZLE9BQVEsU0FBVTtBQUc5RCxnQkFBSyxDQUFDLGNBQWMsS0FBTSxTQUFVLEdBQUk7QUFDdkMscUJBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEIscUJBQU0sTUFBTSxLQUFNLENBQUUsR0FBRyxPQUFPLFFBQVEsU0FBUyxNQUFNLElBQUksWUFBYTtBQUdyRSxzQkFBSyxJQUFJLFdBQVcsT0FBUSxVQUMzQixRQUFRLE1BQU8sR0FBSSxJQUFJO0FBQUE7QUFBQSxvQkFHdkIsSUFBSSxhQUFhLEtBQ2hCLE9BQU8sS0FBSyxnQkFBaUIsS0FBSyxTQUFVO0FBQUEsc0JBQU07QUFFbkQsNEJBQVEsS0FBTSxHQUFJO0FBQ2xCO0FBQUEsa0JBQ0Q7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBRUEsbUJBQU8sS0FBSyxVQUFXLFFBQVEsU0FBUyxJQUFJLE9BQU8sV0FBWSxPQUFRLElBQUksT0FBUTtBQUFBLFVBQ3BGO0FBQUE7QUFBQSxVQUdBLE9BQU8sU0FBVSxNQUFPO0FBR3ZCLGdCQUFLLENBQUMsTUFBTztBQUNaLHFCQUFTLEtBQU0sQ0FBRSxLQUFLLEtBQU0sQ0FBRSxFQUFFLGFBQWUsS0FBSyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVM7QUFBQSxZQUNoRjtBQUdBLGdCQUFLLE9BQU8sU0FBUyxVQUFXO0FBQy9CLHFCQUFPLFFBQVEsS0FBTSxPQUFRLElBQUssR0FBRyxLQUFNLENBQUUsQ0FBRTtBQUFBLFlBQ2hEO0FBR0EsbUJBQU8sUUFBUTtBQUFBLGNBQU07QUFBQTtBQUFBLGNBR3BCLEtBQUssU0FBUyxLQUFNLENBQUUsSUFBSTtBQUFBLFlBQzNCO0FBQUEsVUFDRDtBQUFBLFVBRUEsS0FBSyxTQUFVLFVBQVUsU0FBVTtBQUNsQyxtQkFBTyxLQUFLO0FBQUEsY0FDWCxPQUFPO0FBQUEsZ0JBQ04sT0FBTyxNQUFPLEtBQUssSUFBSSxHQUFHLE9BQVEsVUFBVSxPQUFRLENBQUU7QUFBQSxjQUN2RDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsVUFFQSxTQUFTLFNBQVUsVUFBVztBQUM3QixtQkFBTyxLQUFLO0FBQUEsY0FBSyxZQUFZLE9BQzVCLEtBQUssYUFBYSxLQUFLLFdBQVcsT0FBUSxRQUFTO0FBQUEsWUFDcEQ7QUFBQSxVQUNEO0FBQUEsUUFDRCxDQUFFO0FBRUYsaUJBQVMsUUFBUyxLQUFLYSxNQUFNO0FBQzVCLGtCQUFVLE1BQU0sSUFBS0EsSUFBSSxNQUFPLElBQUksYUFBYSxHQUFJO0FBQUEsVUFBQztBQUN0RCxpQkFBTztBQUFBLFFBQ1I7QUFFQSxlQUFPLEtBQU07QUFBQSxVQUNaLFFBQVEsU0FBVSxNQUFPO0FBQ3hCLGdCQUFJLFNBQVMsS0FBSztBQUNsQixtQkFBTyxVQUFVLE9BQU8sYUFBYSxLQUFLLFNBQVM7QUFBQSxVQUNwRDtBQUFBLFVBQ0EsU0FBUyxTQUFVLE1BQU87QUFDekIsbUJBQU8sSUFBSyxNQUFNLFlBQWE7QUFBQSxVQUNoQztBQUFBLFVBQ0EsY0FBYyxTQUFVLE1BQU0sSUFBSSxPQUFRO0FBQ3pDLG1CQUFPLElBQUssTUFBTSxjQUFjLEtBQU07QUFBQSxVQUN2QztBQUFBLFVBQ0EsTUFBTSxTQUFVLE1BQU87QUFDdEIsbUJBQU8sUUFBUyxNQUFNLGFBQWM7QUFBQSxVQUNyQztBQUFBLFVBQ0EsTUFBTSxTQUFVLE1BQU87QUFDdEIsbUJBQU8sUUFBUyxNQUFNLGlCQUFrQjtBQUFBLFVBQ3pDO0FBQUEsVUFDQSxTQUFTLFNBQVUsTUFBTztBQUN6QixtQkFBTyxJQUFLLE1BQU0sYUFBYztBQUFBLFVBQ2pDO0FBQUEsVUFDQSxTQUFTLFNBQVUsTUFBTztBQUN6QixtQkFBTyxJQUFLLE1BQU0saUJBQWtCO0FBQUEsVUFDckM7QUFBQSxVQUNBLFdBQVcsU0FBVSxNQUFNLElBQUksT0FBUTtBQUN0QyxtQkFBTyxJQUFLLE1BQU0sZUFBZSxLQUFNO0FBQUEsVUFDeEM7QUFBQSxVQUNBLFdBQVcsU0FBVSxNQUFNLElBQUksT0FBUTtBQUN0QyxtQkFBTyxJQUFLLE1BQU0sbUJBQW1CLEtBQU07QUFBQSxVQUM1QztBQUFBLFVBQ0EsVUFBVSxTQUFVLE1BQU87QUFDMUIsbUJBQU8sVUFBWSxLQUFLLGNBQWMsQ0FBQyxHQUFJLFlBQVksSUFBSztBQUFBLFVBQzdEO0FBQUEsVUFDQSxVQUFVLFNBQVUsTUFBTztBQUMxQixtQkFBTyxTQUFVLEtBQUssVUFBVztBQUFBLFVBQ2xDO0FBQUEsVUFDQSxVQUFVLFNBQVUsTUFBTztBQUMxQixnQkFBSyxLQUFLLG1CQUFtQjtBQUFBO0FBQUE7QUFBQSxZQUs1QixTQUFVLEtBQUssZUFBZ0IsR0FBSTtBQUVuQyxxQkFBTyxLQUFLO0FBQUEsWUFDYjtBQUtBLGdCQUFLLFNBQVUsTUFBTSxVQUFXLEdBQUk7QUFDbkMscUJBQU8sS0FBSyxXQUFXO0FBQUEsWUFDeEI7QUFFQSxtQkFBTyxPQUFPLE1BQU8sQ0FBQyxHQUFHLEtBQUssVUFBVztBQUFBLFVBQzFDO0FBQUEsUUFDRCxHQUFHLFNBQVUsTUFBTUosS0FBSztBQUN2QixpQkFBTyxHQUFJLElBQUssSUFBSSxTQUFVLE9BQU8sVUFBVztBQUMvQyxnQkFBSSxVQUFVLE9BQU8sSUFBSyxNQUFNQSxLQUFJLEtBQU07QUFFMUMsZ0JBQUssS0FBSyxNQUFPLEVBQUcsTUFBTSxTQUFVO0FBQ25DLHlCQUFXO0FBQUEsWUFDWjtBQUVBLGdCQUFLLFlBQVksT0FBTyxhQUFhLFVBQVc7QUFDL0Msd0JBQVUsT0FBTyxPQUFRLFVBQVUsT0FBUTtBQUFBLFlBQzVDO0FBRUEsZ0JBQUssS0FBSyxTQUFTLEdBQUk7QUFHdEIsa0JBQUssQ0FBQyxpQkFBa0IsSUFBSyxHQUFJO0FBQ2hDLHVCQUFPLFdBQVksT0FBUTtBQUFBLGNBQzVCO0FBR0Esa0JBQUssYUFBYSxLQUFNLElBQUssR0FBSTtBQUNoQyx3QkFBUSxRQUFRO0FBQUEsY0FDakI7QUFBQSxZQUNEO0FBRUEsbUJBQU8sS0FBSyxVQUFXLE9BQVE7QUFBQSxVQUNoQztBQUFBLFFBQ0QsQ0FBRTtBQUNGLFlBQUksZ0JBQWtCO0FBS3RCLGlCQUFTLGNBQWUsU0FBVTtBQUNqQyxjQUFJLFNBQVMsQ0FBQztBQUNkLGlCQUFPLEtBQU0sUUFBUSxNQUFPLGFBQWMsS0FBSyxDQUFDLEdBQUcsU0FBVSxHQUFHLE1BQU87QUFDdEUsbUJBQVEsSUFBSyxJQUFJO0FBQUEsVUFDbEIsQ0FBRTtBQUNGLGlCQUFPO0FBQUEsUUFDUjtBQXdCQSxlQUFPLFlBQVksU0FBVSxTQUFVO0FBSXRDLG9CQUFVLE9BQU8sWUFBWSxXQUM1QixjQUFlLE9BQVEsSUFDdkIsT0FBTyxPQUFRLENBQUMsR0FBRyxPQUFRO0FBRTVCLGNBQ0MsUUFHQSxRQUdBLE9BR0EsUUFHQSxPQUFPLENBQUMsR0FHUixRQUFRLENBQUMsR0FHVCxjQUFjLElBR2QsT0FBTyxXQUFXO0FBR2pCLHFCQUFTLFVBQVUsUUFBUTtBQUkzQixvQkFBUSxTQUFTO0FBQ2pCLG1CQUFRLE1BQU0sUUFBUSxjQUFjLElBQUs7QUFDeEMsdUJBQVMsTUFBTSxNQUFNO0FBQ3JCLHFCQUFRLEVBQUUsY0FBYyxLQUFLLFFBQVM7QUFHckMsb0JBQUssS0FBTSxXQUFZLEVBQUUsTUFBTyxPQUFRLENBQUUsR0FBRyxPQUFRLENBQUUsQ0FBRSxNQUFNLFNBQzlELFFBQVEsYUFBYztBQUd0QixnQ0FBYyxLQUFLO0FBQ25CLDJCQUFTO0FBQUEsZ0JBQ1Y7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUdBLGdCQUFLLENBQUMsUUFBUSxRQUFTO0FBQ3RCLHVCQUFTO0FBQUEsWUFDVjtBQUVBLHFCQUFTO0FBR1QsZ0JBQUssUUFBUztBQUdiLGtCQUFLLFFBQVM7QUFDYix1QkFBTyxDQUFDO0FBQUEsY0FHVCxPQUFPO0FBQ04sdUJBQU87QUFBQSxjQUNSO0FBQUEsWUFDRDtBQUFBLFVBQ0QsR0FHQVEsUUFBTztBQUFBO0FBQUEsWUFHTixLQUFLLFdBQVc7QUFDZixrQkFBSyxNQUFPO0FBR1gsb0JBQUssVUFBVSxDQUFDLFFBQVM7QUFDeEIsZ0NBQWMsS0FBSyxTQUFTO0FBQzVCLHdCQUFNLEtBQU0sTUFBTztBQUFBLGdCQUNwQjtBQUVBLGlCQUFFLFNBQVMsSUFBSyxNQUFPO0FBQ3RCLHlCQUFPLEtBQU0sTUFBTSxTQUFVLEdBQUcsS0FBTTtBQUNyQyx3QkFBSyxXQUFZLEdBQUksR0FBSTtBQUN4QiwwQkFBSyxDQUFDLFFBQVEsVUFBVSxDQUFDQSxNQUFLLElBQUssR0FBSSxHQUFJO0FBQzFDLDZCQUFLLEtBQU0sR0FBSTtBQUFBLHNCQUNoQjtBQUFBLG9CQUNELFdBQVksT0FBTyxJQUFJLFVBQVVmLFFBQVEsR0FBSSxNQUFNLFVBQVc7QUFHN0QsMEJBQUssR0FBSTtBQUFBLG9CQUNWO0FBQUEsa0JBQ0QsQ0FBRTtBQUFBLGdCQUNILEdBQUssU0FBVTtBQUVmLG9CQUFLLFVBQVUsQ0FBQyxRQUFTO0FBQ3hCLHVCQUFLO0FBQUEsZ0JBQ047QUFBQSxjQUNEO0FBQ0EscUJBQU87QUFBQSxZQUNSO0FBQUE7QUFBQSxZQUdBLFFBQVEsV0FBVztBQUNsQixxQkFBTyxLQUFNLFdBQVcsU0FBVSxHQUFHLEtBQU07QUFDMUMsb0JBQUk7QUFDSix3QkFBVSxRQUFRLE9BQU8sUUFBUyxLQUFLLE1BQU0sS0FBTSxLQUFNLElBQUs7QUFDN0QsdUJBQUssT0FBUSxPQUFPLENBQUU7QUFHdEIsc0JBQUssU0FBUyxhQUFjO0FBQzNCO0FBQUEsa0JBQ0Q7QUFBQSxnQkFDRDtBQUFBLGNBQ0QsQ0FBRTtBQUNGLHFCQUFPO0FBQUEsWUFDUjtBQUFBO0FBQUE7QUFBQSxZQUlBLEtBQUssU0FBVU8sS0FBSztBQUNuQixxQkFBT0EsTUFDTixPQUFPLFFBQVNBLEtBQUksSUFBSyxJQUFJLEtBQzdCLEtBQUssU0FBUztBQUFBLFlBQ2hCO0FBQUE7QUFBQSxZQUdBLE9BQU8sV0FBVztBQUNqQixrQkFBSyxNQUFPO0FBQ1gsdUJBQU8sQ0FBQztBQUFBLGNBQ1Q7QUFDQSxxQkFBTztBQUFBLFlBQ1I7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQUtBLFNBQVMsV0FBVztBQUNuQix1QkFBUyxRQUFRLENBQUM7QUFDbEIscUJBQU8sU0FBUztBQUNoQixxQkFBTztBQUFBLFlBQ1I7QUFBQSxZQUNBLFVBQVUsV0FBVztBQUNwQixxQkFBTyxDQUFDO0FBQUEsWUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBS0EsTUFBTSxXQUFXO0FBQ2hCLHVCQUFTLFFBQVEsQ0FBQztBQUNsQixrQkFBSyxDQUFDLFVBQVUsQ0FBQyxRQUFTO0FBQ3pCLHVCQUFPLFNBQVM7QUFBQSxjQUNqQjtBQUNBLHFCQUFPO0FBQUEsWUFDUjtBQUFBLFlBQ0EsUUFBUSxXQUFXO0FBQ2xCLHFCQUFPLENBQUMsQ0FBQztBQUFBLFlBQ1Y7QUFBQTtBQUFBLFlBR0EsVUFBVSxTQUFVLFNBQVMsTUFBTztBQUNuQyxrQkFBSyxDQUFDLFFBQVM7QUFDZCx1QkFBTyxRQUFRLENBQUM7QUFDaEIsdUJBQU8sQ0FBRSxTQUFTLEtBQUssUUFBUSxLQUFLLE1BQU0sSUFBSSxJQUFLO0FBQ25ELHNCQUFNLEtBQU0sSUFBSztBQUNqQixvQkFBSyxDQUFDLFFBQVM7QUFDZCx1QkFBSztBQUFBLGdCQUNOO0FBQUEsY0FDRDtBQUNBLHFCQUFPO0FBQUEsWUFDUjtBQUFBO0FBQUEsWUFHQSxNQUFNLFdBQVc7QUFDaEIsY0FBQVEsTUFBSyxTQUFVLE1BQU0sU0FBVTtBQUMvQixxQkFBTztBQUFBLFlBQ1I7QUFBQTtBQUFBLFlBR0EsT0FBTyxXQUFXO0FBQ2pCLHFCQUFPLENBQUMsQ0FBQztBQUFBLFlBQ1Y7QUFBQSxVQUNEO0FBRUQsaUJBQU9BO0FBQUEsUUFDUjtBQUdBLGlCQUFTLFNBQVUsR0FBSTtBQUN0QixpQkFBTztBQUFBLFFBQ1I7QUFDQSxpQkFBUyxRQUFTLElBQUs7QUFDdEIsZ0JBQU07QUFBQSxRQUNQO0FBRUEsaUJBQVMsV0FBWSxPQUFPLFNBQVMsUUFBUSxTQUFVO0FBQ3RELGNBQUk7QUFFSixjQUFJO0FBR0gsZ0JBQUssU0FBUyxXQUFjLFNBQVMsTUFBTSxPQUFVLEdBQUk7QUFDeEQscUJBQU8sS0FBTSxLQUFNLEVBQUUsS0FBTSxPQUFRLEVBQUUsS0FBTSxNQUFPO0FBQUEsWUFHbkQsV0FBWSxTQUFTLFdBQWMsU0FBUyxNQUFNLElBQU8sR0FBSTtBQUM1RCxxQkFBTyxLQUFNLE9BQU8sU0FBUyxNQUFPO0FBQUEsWUFHckMsT0FBTztBQUtOLHNCQUFRLE1BQU8sUUFBVyxDQUFFLEtBQU0sRUFBRSxNQUFPLE9BQVEsQ0FBRTtBQUFBLFlBQ3REO0FBQUEsVUFLRCxTQUFVQyxRQUFRO0FBSWpCLG1CQUFPLE1BQU8sUUFBVyxDQUFFQSxNQUFNLENBQUU7QUFBQSxVQUNwQztBQUFBLFFBQ0Q7QUFFQSxlQUFPLE9BQVE7QUFBQSxVQUVkLFVBQVUsU0FBVSxNQUFPO0FBQzFCLGdCQUFJLFNBQVM7QUFBQTtBQUFBO0FBQUEsY0FJWDtBQUFBLGdCQUFFO0FBQUEsZ0JBQVU7QUFBQSxnQkFBWSxPQUFPLFVBQVcsUUFBUztBQUFBLGdCQUNsRCxPQUFPLFVBQVcsUUFBUztBQUFBLGdCQUFHO0FBQUEsY0FBRTtBQUFBLGNBQ2pDO0FBQUEsZ0JBQUU7QUFBQSxnQkFBVztBQUFBLGdCQUFRLE9BQU8sVUFBVyxhQUFjO0FBQUEsZ0JBQ3BELE9BQU8sVUFBVyxhQUFjO0FBQUEsZ0JBQUc7QUFBQSxnQkFBRztBQUFBLGNBQVc7QUFBQSxjQUNsRDtBQUFBLGdCQUFFO0FBQUEsZ0JBQVU7QUFBQSxnQkFBUSxPQUFPLFVBQVcsYUFBYztBQUFBLGdCQUNuRCxPQUFPLFVBQVcsYUFBYztBQUFBLGdCQUFHO0FBQUEsZ0JBQUc7QUFBQSxjQUFXO0FBQUEsWUFDbkQsR0FDQSxRQUFRLFdBQ1IsVUFBVTtBQUFBLGNBQ1QsT0FBTyxXQUFXO0FBQ2pCLHVCQUFPO0FBQUEsY0FDUjtBQUFBLGNBQ0EsUUFBUSxXQUFXO0FBQ2xCLHlCQUFTLEtBQU0sU0FBVSxFQUFFLEtBQU0sU0FBVTtBQUMzQyx1QkFBTztBQUFBLGNBQ1I7QUFBQSxjQUNBLFNBQVMsU0FBVVQsS0FBSztBQUN2Qix1QkFBTyxRQUFRLEtBQU0sTUFBTUEsR0FBRztBQUFBLGNBQy9CO0FBQUE7QUFBQSxjQUdBLE1BQU0sV0FBNkM7QUFDbEQsb0JBQUksTUFBTTtBQUVWLHVCQUFPLE9BQU8sU0FBVSxTQUFVLFVBQVc7QUFDNUMseUJBQU8sS0FBTSxRQUFRLFNBQVUsSUFBSSxPQUFRO0FBRzFDLHdCQUFJQSxNQUFLLFdBQVksSUFBSyxNQUFPLENBQUUsQ0FBRSxDQUFFLEtBQUssSUFBSyxNQUFPLENBQUUsQ0FBRTtBQUs1RCw2QkFBVSxNQUFPLENBQUUsQ0FBRSxFQUFHLFdBQVc7QUFDbEMsMEJBQUksV0FBV0EsT0FBTUEsSUFBRyxNQUFPLE1BQU0sU0FBVTtBQUMvQywwQkFBSyxZQUFZLFdBQVksU0FBUyxPQUFRLEdBQUk7QUFDakQsaUNBQVMsUUFBUSxFQUNmLFNBQVUsU0FBUyxNQUFPLEVBQzFCLEtBQU0sU0FBUyxPQUFRLEVBQ3ZCLEtBQU0sU0FBUyxNQUFPO0FBQUEsc0JBQ3pCLE9BQU87QUFDTixpQ0FBVSxNQUFPLENBQUUsSUFBSSxNQUFPO0FBQUEsMEJBQzdCO0FBQUEsMEJBQ0FBLE1BQUssQ0FBRSxRQUFTLElBQUk7QUFBQSx3QkFDckI7QUFBQSxzQkFDRDtBQUFBLG9CQUNELENBQUU7QUFBQSxrQkFDSCxDQUFFO0FBQ0Ysd0JBQU07QUFBQSxnQkFDUCxDQUFFLEVBQUUsUUFBUTtBQUFBLGNBQ2I7QUFBQSxjQUNBLE1BQU0sU0FBVSxhQUFhLFlBQVksWUFBYTtBQUNyRCxvQkFBSSxXQUFXO0FBQ2YseUJBQVMsUUFBUyxPQUFPVSxXQUFVLFNBQVMsU0FBVTtBQUNyRCx5QkFBTyxXQUFXO0FBQ2pCLHdCQUFJLE9BQU8sTUFDVixPQUFPLFdBQ1AsYUFBYSxXQUFXO0FBQ3ZCLDBCQUFJLFVBQVU7QUFLZCwwQkFBSyxRQUFRLFVBQVc7QUFDdkI7QUFBQSxzQkFDRDtBQUVBLGlDQUFXLFFBQVEsTUFBTyxNQUFNLElBQUs7QUFJckMsMEJBQUssYUFBYUEsVUFBUyxRQUFRLEdBQUk7QUFDdEMsOEJBQU0sSUFBSSxVQUFXLDBCQUEyQjtBQUFBLHNCQUNqRDtBQU1BLDZCQUFPO0FBQUE7QUFBQTtBQUFBLHVCQUtKLE9BQU8sYUFBYSxZQUNyQixPQUFPLGFBQWEsZUFDckIsU0FBUztBQUdWLDBCQUFLLFdBQVksSUFBSyxHQUFJO0FBR3pCLDRCQUFLLFNBQVU7QUFDZCwrQkFBSztBQUFBLDRCQUNKO0FBQUEsNEJBQ0EsUUFBUyxVQUFVQSxXQUFVLFVBQVUsT0FBUTtBQUFBLDRCQUMvQyxRQUFTLFVBQVVBLFdBQVUsU0FBUyxPQUFRO0FBQUEsMEJBQy9DO0FBQUEsd0JBR0QsT0FBTztBQUdOO0FBRUEsK0JBQUs7QUFBQSw0QkFDSjtBQUFBLDRCQUNBLFFBQVMsVUFBVUEsV0FBVSxVQUFVLE9BQVE7QUFBQSw0QkFDL0MsUUFBUyxVQUFVQSxXQUFVLFNBQVMsT0FBUTtBQUFBLDRCQUM5QztBQUFBLDhCQUFTO0FBQUEsOEJBQVVBO0FBQUEsOEJBQVU7QUFBQSw4QkFDNUJBLFVBQVM7QUFBQSw0QkFBVztBQUFBLDBCQUN0QjtBQUFBLHdCQUNEO0FBQUEsc0JBR0QsT0FBTztBQUlOLDRCQUFLLFlBQVksVUFBVztBQUMzQixpQ0FBTztBQUNQLGlDQUFPLENBQUUsUUFBUztBQUFBLHdCQUNuQjtBQUlBLHlCQUFFLFdBQVdBLFVBQVMsYUFBZSxNQUFNLElBQUs7QUFBQSxzQkFDakQ7QUFBQSxvQkFDRCxHQUdBLFVBQVUsVUFDVCxhQUNBLFdBQVc7QUFDViwwQkFBSTtBQUNILG1DQUFXO0FBQUEsc0JBQ1osU0FBVSxHQUFJO0FBRWIsNEJBQUssT0FBTyxTQUFTLGVBQWdCO0FBQ3BDLGlDQUFPLFNBQVM7QUFBQSw0QkFBZTtBQUFBLDRCQUM5QixRQUFRO0FBQUEsMEJBQU07QUFBQSx3QkFDaEI7QUFLQSw0QkFBSyxRQUFRLEtBQUssVUFBVztBQUk1Qiw4QkFBSyxZQUFZLFNBQVU7QUFDMUIsbUNBQU87QUFDUCxtQ0FBTyxDQUFFLENBQUU7QUFBQSwwQkFDWjtBQUVBLDBCQUFBQSxVQUFTLFdBQVksTUFBTSxJQUFLO0FBQUEsd0JBQ2pDO0FBQUEsc0JBQ0Q7QUFBQSxvQkFDRDtBQU1GLHdCQUFLLE9BQVE7QUFDWiw4QkFBUTtBQUFBLG9CQUNULE9BQU87QUFJTiwwQkFBSyxPQUFPLFNBQVMsY0FBZTtBQUNuQyxnQ0FBUSxRQUFRLE9BQU8sU0FBUyxhQUFhO0FBQUEsc0JBTTlDLFdBQVksT0FBTyxTQUFTLGNBQWU7QUFDMUMsZ0NBQVEsUUFBUSxPQUFPLFNBQVMsYUFBYTtBQUFBLHNCQUM5QztBQUNBLHNCQUFBdEIsUUFBTyxXQUFZLE9BQVE7QUFBQSxvQkFDNUI7QUFBQSxrQkFDRDtBQUFBLGdCQUNEO0FBRUEsdUJBQU8sT0FBTyxTQUFVLFNBQVUsVUFBVztBQUc1Qyx5QkFBUSxDQUFFLEVBQUcsQ0FBRSxFQUFFO0FBQUEsb0JBQ2hCO0FBQUEsc0JBQ0M7QUFBQSxzQkFDQTtBQUFBLHNCQUNBLFdBQVksVUFBVyxJQUN0QixhQUNBO0FBQUEsc0JBQ0QsU0FBUztBQUFBLG9CQUNWO0FBQUEsa0JBQ0Q7QUFHQSx5QkFBUSxDQUFFLEVBQUcsQ0FBRSxFQUFFO0FBQUEsb0JBQ2hCO0FBQUEsc0JBQ0M7QUFBQSxzQkFDQTtBQUFBLHNCQUNBLFdBQVksV0FBWSxJQUN2QixjQUNBO0FBQUEsb0JBQ0Y7QUFBQSxrQkFDRDtBQUdBLHlCQUFRLENBQUUsRUFBRyxDQUFFLEVBQUU7QUFBQSxvQkFDaEI7QUFBQSxzQkFDQztBQUFBLHNCQUNBO0FBQUEsc0JBQ0EsV0FBWSxVQUFXLElBQ3RCLGFBQ0E7QUFBQSxvQkFDRjtBQUFBLGtCQUNEO0FBQUEsZ0JBQ0QsQ0FBRSxFQUFFLFFBQVE7QUFBQSxjQUNiO0FBQUE7QUFBQTtBQUFBLGNBSUEsU0FBUyxTQUFVLEtBQU07QUFDeEIsdUJBQU8sT0FBTyxPQUFPLE9BQU8sT0FBUSxLQUFLLE9BQVEsSUFBSTtBQUFBLGNBQ3REO0FBQUEsWUFDRCxHQUNBLFdBQVcsQ0FBQztBQUdiLG1CQUFPLEtBQU0sUUFBUSxTQUFVLEdBQUcsT0FBUTtBQUN6QyxrQkFBSSxPQUFPLE1BQU8sQ0FBRSxHQUNuQixjQUFjLE1BQU8sQ0FBRTtBQUt4QixzQkFBUyxNQUFPLENBQUUsQ0FBRSxJQUFJLEtBQUs7QUFHN0Isa0JBQUssYUFBYztBQUNsQixxQkFBSztBQUFBLGtCQUNKLFdBQVc7QUFJViw0QkFBUTtBQUFBLGtCQUNUO0FBQUE7QUFBQTtBQUFBLGtCQUlBLE9BQVEsSUFBSSxDQUFFLEVBQUcsQ0FBRSxFQUFFO0FBQUE7QUFBQTtBQUFBLGtCQUlyQixPQUFRLElBQUksQ0FBRSxFQUFHLENBQUUsRUFBRTtBQUFBO0FBQUEsa0JBR3JCLE9BQVEsQ0FBRSxFQUFHLENBQUUsRUFBRTtBQUFBO0FBQUEsa0JBR2pCLE9BQVEsQ0FBRSxFQUFHLENBQUUsRUFBRTtBQUFBLGdCQUNsQjtBQUFBLGNBQ0Q7QUFLQSxtQkFBSyxJQUFLLE1BQU8sQ0FBRSxFQUFFLElBQUs7QUFLMUIsdUJBQVUsTUFBTyxDQUFFLENBQUUsSUFBSSxXQUFXO0FBQ25DLHlCQUFVLE1BQU8sQ0FBRSxJQUFJLE1BQU8sRUFBRyxTQUFTLFdBQVcsU0FBWSxNQUFNLFNBQVU7QUFDakYsdUJBQU87QUFBQSxjQUNSO0FBS0EsdUJBQVUsTUFBTyxDQUFFLElBQUksTUFBTyxJQUFJLEtBQUs7QUFBQSxZQUN4QyxDQUFFO0FBR0Ysb0JBQVEsUUFBUyxRQUFTO0FBRzFCLGdCQUFLLE1BQU87QUFDWCxtQkFBSyxLQUFNLFVBQVUsUUFBUztBQUFBLFlBQy9CO0FBR0EsbUJBQU87QUFBQSxVQUNSO0FBQUE7QUFBQSxVQUdBLE1BQU0sU0FBVSxhQUFjO0FBQzdCLGdCQUdDLFlBQVksVUFBVSxRQUd0QixJQUFJLFdBR0osa0JBQWtCLE1BQU8sQ0FBRSxHQUMzQixnQkFBZ0IsTUFBTSxLQUFNLFNBQVUsR0FHdEMsVUFBVSxPQUFPLFNBQVMsR0FHMUIsYUFBYSxTQUFVVyxJQUFJO0FBQzFCLHFCQUFPLFNBQVUsT0FBUTtBQUN4QixnQ0FBaUJBLEVBQUUsSUFBSTtBQUN2Qiw4QkFBZUEsRUFBRSxJQUFJLFVBQVUsU0FBUyxJQUFJLE1BQU0sS0FBTSxTQUFVLElBQUk7QUFDdEUsb0JBQUssQ0FBRyxFQUFFLFdBQWM7QUFDdkIsMEJBQVEsWUFBYSxpQkFBaUIsYUFBYztBQUFBLGdCQUNyRDtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBR0QsZ0JBQUssYUFBYSxHQUFJO0FBQ3JCO0FBQUEsZ0JBQVk7QUFBQSxnQkFBYSxRQUFRLEtBQU0sV0FBWSxDQUFFLENBQUUsRUFBRTtBQUFBLGdCQUFTLFFBQVE7QUFBQSxnQkFDekUsQ0FBQztBQUFBLGNBQVU7QUFHWixrQkFBSyxRQUFRLE1BQU0sTUFBTSxhQUN4QixXQUFZLGNBQWUsQ0FBRSxLQUFLLGNBQWUsQ0FBRSxFQUFFLElBQUssR0FBSTtBQUU5RCx1QkFBTyxRQUFRLEtBQUs7QUFBQSxjQUNyQjtBQUFBLFlBQ0Q7QUFHQSxtQkFBUSxLQUFNO0FBQ2IseUJBQVksY0FBZSxDQUFFLEdBQUcsV0FBWSxDQUFFLEdBQUcsUUFBUSxNQUFPO0FBQUEsWUFDakU7QUFFQSxtQkFBTyxRQUFRLFFBQVE7QUFBQSxVQUN4QjtBQUFBLFFBQ0QsQ0FBRTtBQUtGLFlBQUksY0FBYztBQUtsQixlQUFPLFNBQVMsZ0JBQWdCLFNBQVUsT0FBTyxZQUFhO0FBSTdELGNBQUtYLFFBQU8sV0FBV0EsUUFBTyxRQUFRLFFBQVEsU0FBUyxZQUFZLEtBQU0sTUFBTSxJQUFLLEdBQUk7QUFDdkYsWUFBQUEsUUFBTyxRQUFRO0FBQUEsY0FBTSxnQ0FBZ0MsTUFBTTtBQUFBLGNBQzFELE1BQU07QUFBQSxjQUFPO0FBQUEsWUFBVztBQUFBLFVBQzFCO0FBQUEsUUFDRDtBQUtBLGVBQU8saUJBQWlCLFNBQVUsT0FBUTtBQUN6QyxVQUFBQSxRQUFPLFdBQVksV0FBVztBQUM3QixrQkFBTTtBQUFBLFVBQ1AsQ0FBRTtBQUFBLFFBQ0g7QUFNQSxZQUFJLFlBQVksT0FBTyxTQUFTO0FBRWhDLGVBQU8sR0FBRyxRQUFRLFNBQVVZLEtBQUs7QUFFaEMsb0JBQ0UsS0FBTUEsR0FBRyxFQUtULE1BQU8sU0FBVSxPQUFRO0FBQ3pCLG1CQUFPLGVBQWdCLEtBQU07QUFBQSxVQUM5QixDQUFFO0FBRUgsaUJBQU87QUFBQSxRQUNSO0FBRUEsZUFBTyxPQUFRO0FBQUE7QUFBQSxVQUdkLFNBQVM7QUFBQTtBQUFBO0FBQUEsVUFJVCxXQUFXO0FBQUE7QUFBQSxVQUdYLE9BQU8sU0FBVSxNQUFPO0FBR3ZCLGdCQUFLLFNBQVMsT0FBTyxFQUFFLE9BQU8sWUFBWSxPQUFPLFNBQVU7QUFDMUQ7QUFBQSxZQUNEO0FBR0EsbUJBQU8sVUFBVTtBQUdqQixnQkFBSyxTQUFTLFFBQVEsRUFBRSxPQUFPLFlBQVksR0FBSTtBQUM5QztBQUFBLFlBQ0Q7QUFHQSxzQkFBVSxZQUFhVCxXQUFVLENBQUUsTUFBTyxDQUFFO0FBQUEsVUFDN0M7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLE1BQU0sT0FBTyxVQUFVO0FBRzlCLGlCQUFTLFlBQVk7QUFDcEIsVUFBQUEsVUFBUyxvQkFBcUIsb0JBQW9CLFNBQVU7QUFDNUQsVUFBQUgsUUFBTyxvQkFBcUIsUUFBUSxTQUFVO0FBQzlDLGlCQUFPLE1BQU07QUFBQSxRQUNkO0FBTUEsWUFBS0csVUFBUyxlQUFlLGNBQzFCQSxVQUFTLGVBQWUsYUFBYSxDQUFDQSxVQUFTLGdCQUFnQixVQUFhO0FBRzlFLFVBQUFILFFBQU8sV0FBWSxPQUFPLEtBQU07QUFBQSxRQUVqQyxPQUFPO0FBR04sVUFBQUcsVUFBUyxpQkFBa0Isb0JBQW9CLFNBQVU7QUFHekQsVUFBQUgsUUFBTyxpQkFBa0IsUUFBUSxTQUFVO0FBQUEsUUFDNUM7QUFPQSxZQUFJLFNBQVMsU0FBVSxPQUFPWSxLQUFJLEtBQUssT0FBTyxXQUFXLFVBQVUsS0FBTTtBQUN4RSxjQUFJLElBQUksR0FDUCxNQUFNLE1BQU0sUUFDWixPQUFPLE9BQU87QUFHZixjQUFLUCxRQUFRLEdBQUksTUFBTSxVQUFXO0FBQ2pDLHdCQUFZO0FBQ1osaUJBQU0sS0FBSyxLQUFNO0FBQ2hCLHFCQUFRLE9BQU9PLEtBQUksR0FBRyxJQUFLLENBQUUsR0FBRyxNQUFNLFVBQVUsR0FBSTtBQUFBLFlBQ3JEO0FBQUEsVUFHRCxXQUFZLFVBQVUsUUFBWTtBQUNqQyx3QkFBWTtBQUVaLGdCQUFLLENBQUMsV0FBWSxLQUFNLEdBQUk7QUFDM0Isb0JBQU07QUFBQSxZQUNQO0FBRUEsZ0JBQUssTUFBTztBQUdYLGtCQUFLLEtBQU07QUFDVixnQkFBQUEsSUFBRyxLQUFNLE9BQU8sS0FBTTtBQUN0QixnQkFBQUEsTUFBSztBQUFBLGNBR04sT0FBTztBQUNOLHVCQUFPQTtBQUNQLGdCQUFBQSxNQUFLLFNBQVUsTUFBTSxNQUFNUyxRQUFRO0FBQ2xDLHlCQUFPLEtBQUssS0FBTSxPQUFRLElBQUssR0FBR0EsTUFBTTtBQUFBLGdCQUN6QztBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBRUEsZ0JBQUtULEtBQUs7QUFDVCxxQkFBUSxJQUFJLEtBQUssS0FBTTtBQUN0QixnQkFBQUE7QUFBQSxrQkFDQyxNQUFPLENBQUU7QUFBQSxrQkFBRztBQUFBLGtCQUFLLE1BQ2hCLFFBQ0EsTUFBTSxLQUFNLE1BQU8sQ0FBRSxHQUFHLEdBQUdBLElBQUksTUFBTyxDQUFFLEdBQUcsR0FBSSxDQUFFO0FBQUEsZ0JBQ25EO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBRUEsY0FBSyxXQUFZO0FBQ2hCLG1CQUFPO0FBQUEsVUFDUjtBQUdBLGNBQUssTUFBTztBQUNYLG1CQUFPQSxJQUFHLEtBQU0sS0FBTTtBQUFBLFVBQ3ZCO0FBRUEsaUJBQU8sTUFBTUEsSUFBSSxNQUFPLENBQUUsR0FBRyxHQUFJLElBQUk7QUFBQSxRQUN0QztBQUlBLFlBQUksWUFBWSxTQUNmLGFBQWE7QUFHZCxpQkFBUyxXQUFZLE1BQU0sUUFBUztBQUNuQyxpQkFBTyxPQUFPLFlBQVk7QUFBQSxRQUMzQjtBQUtBLGlCQUFTLFVBQVcsUUFBUztBQUM1QixpQkFBTyxPQUFPLFFBQVMsV0FBVyxLQUFNLEVBQUUsUUFBUyxZQUFZLFVBQVc7QUFBQSxRQUMzRTtBQUNBLFlBQUksYUFBYSxTQUFVLE9BQVE7QUFRbEMsaUJBQU8sTUFBTSxhQUFhLEtBQUssTUFBTSxhQUFhLEtBQUssQ0FBRyxDQUFDLE1BQU07QUFBQSxRQUNsRTtBQUtBLGlCQUFTVyxRQUFPO0FBQ2YsZUFBSyxVQUFVLE9BQU8sVUFBVUEsTUFBSztBQUFBLFFBQ3RDO0FBRUEsUUFBQUEsTUFBSyxNQUFNO0FBRVgsUUFBQUEsTUFBSyxZQUFZO0FBQUEsVUFFaEIsT0FBTyxTQUFVLE9BQVE7QUFHeEIsZ0JBQUksUUFBUSxNQUFPLEtBQUssT0FBUTtBQUdoQyxnQkFBSyxDQUFDLE9BQVE7QUFDYixzQkFBUSxDQUFDO0FBS1Qsa0JBQUssV0FBWSxLQUFNLEdBQUk7QUFJMUIsb0JBQUssTUFBTSxVQUFXO0FBQ3JCLHdCQUFPLEtBQUssT0FBUSxJQUFJO0FBQUEsZ0JBS3pCLE9BQU87QUFDTix5QkFBTyxlQUFnQixPQUFPLEtBQUssU0FBUztBQUFBLG9CQUMzQztBQUFBLG9CQUNBLGNBQWM7QUFBQSxrQkFDZixDQUFFO0FBQUEsZ0JBQ0g7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUVBLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFVBQ0EsS0FBSyxTQUFVLE9BQU8sTUFBTSxPQUFRO0FBQ25DLGdCQUFJLE1BQ0gsUUFBUSxLQUFLLE1BQU8sS0FBTTtBQUkzQixnQkFBSyxPQUFPLFNBQVMsVUFBVztBQUMvQixvQkFBTyxVQUFXLElBQUssQ0FBRSxJQUFJO0FBQUEsWUFHOUIsT0FBTztBQUdOLG1CQUFNLFFBQVEsTUFBTztBQUNwQixzQkFBTyxVQUFXLElBQUssQ0FBRSxJQUFJLEtBQU0sSUFBSztBQUFBLGNBQ3pDO0FBQUEsWUFDRDtBQUNBLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFVBQ0EsS0FBSyxTQUFVLE9BQU8sS0FBTTtBQUMzQixtQkFBTyxRQUFRLFNBQ2QsS0FBSyxNQUFPLEtBQU07QUFBQTtBQUFBLGNBR2xCLE1BQU8sS0FBSyxPQUFRLEtBQUssTUFBTyxLQUFLLE9BQVEsRUFBRyxVQUFXLEdBQUksQ0FBRTtBQUFBO0FBQUEsVUFDbkU7QUFBQSxVQUNBLFFBQVEsU0FBVSxPQUFPLEtBQUssT0FBUTtBQWFyQyxnQkFBSyxRQUFRLFVBQ1AsT0FBTyxPQUFPLFFBQVEsWUFBYyxVQUFVLFFBQWM7QUFFakUscUJBQU8sS0FBSyxJQUFLLE9BQU8sR0FBSTtBQUFBLFlBQzdCO0FBUUEsaUJBQUssSUFBSyxPQUFPLEtBQUssS0FBTTtBQUk1QixtQkFBTyxVQUFVLFNBQVksUUFBUTtBQUFBLFVBQ3RDO0FBQUEsVUFDQSxRQUFRLFNBQVUsT0FBTyxLQUFNO0FBQzlCLGdCQUFJLEdBQ0gsUUFBUSxNQUFPLEtBQUssT0FBUTtBQUU3QixnQkFBSyxVQUFVLFFBQVk7QUFDMUI7QUFBQSxZQUNEO0FBRUEsZ0JBQUssUUFBUSxRQUFZO0FBR3hCLGtCQUFLLE1BQU0sUUFBUyxHQUFJLEdBQUk7QUFJM0Isc0JBQU0sSUFBSSxJQUFLLFNBQVU7QUFBQSxjQUMxQixPQUFPO0FBQ04sc0JBQU0sVUFBVyxHQUFJO0FBSXJCLHNCQUFNLE9BQU8sUUFDWixDQUFFLEdBQUksSUFDSixJQUFJLE1BQU8sYUFBYyxLQUFLLENBQUM7QUFBQSxjQUNuQztBQUVBLGtCQUFJLElBQUk7QUFFUixxQkFBUSxLQUFNO0FBQ2IsdUJBQU8sTUFBTyxJQUFLLENBQUUsQ0FBRTtBQUFBLGNBQ3hCO0FBQUEsWUFDRDtBQUdBLGdCQUFLLFFBQVEsVUFBYSxPQUFPLGNBQWUsS0FBTSxHQUFJO0FBTXpELGtCQUFLLE1BQU0sVUFBVztBQUNyQixzQkFBTyxLQUFLLE9BQVEsSUFBSTtBQUFBLGNBQ3pCLE9BQU87QUFDTix1QkFBTyxNQUFPLEtBQUssT0FBUTtBQUFBLGNBQzVCO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFBQSxVQUNBLFNBQVMsU0FBVSxPQUFRO0FBQzFCLGdCQUFJLFFBQVEsTUFBTyxLQUFLLE9BQVE7QUFDaEMsbUJBQU8sVUFBVSxVQUFhLENBQUMsT0FBTyxjQUFlLEtBQU07QUFBQSxVQUM1RDtBQUFBLFFBQ0Q7QUFDQSxZQUFJLFdBQVcsSUFBSUEsTUFBSztBQUV4QixZQUFJLFdBQVcsSUFBSUEsTUFBSztBQWN4QixZQUFJLFNBQVMsaUNBQ1osYUFBYTtBQUVkLGlCQUFTLFFBQVMsTUFBTztBQUN4QixjQUFLLFNBQVMsUUFBUztBQUN0QixtQkFBTztBQUFBLFVBQ1I7QUFFQSxjQUFLLFNBQVMsU0FBVTtBQUN2QixtQkFBTztBQUFBLFVBQ1I7QUFFQSxjQUFLLFNBQVMsUUFBUztBQUN0QixtQkFBTztBQUFBLFVBQ1I7QUFHQSxjQUFLLFNBQVMsQ0FBQyxPQUFPLElBQUs7QUFDMUIsbUJBQU8sQ0FBQztBQUFBLFVBQ1Q7QUFFQSxjQUFLLE9BQU8sS0FBTSxJQUFLLEdBQUk7QUFDMUIsbUJBQU8sS0FBSyxNQUFPLElBQUs7QUFBQSxVQUN6QjtBQUVBLGlCQUFPO0FBQUEsUUFDUjtBQUVBLGlCQUFTLFNBQVUsTUFBTSxLQUFLLE1BQU87QUFDcEMsY0FBSTtBQUlKLGNBQUssU0FBUyxVQUFhLEtBQUssYUFBYSxHQUFJO0FBQ2hELG1CQUFPLFVBQVUsSUFBSSxRQUFTLFlBQVksS0FBTSxFQUFFLFlBQVk7QUFDOUQsbUJBQU8sS0FBSyxhQUFjLElBQUs7QUFFL0IsZ0JBQUssT0FBTyxTQUFTLFVBQVc7QUFDL0Isa0JBQUk7QUFDSCx1QkFBTyxRQUFTLElBQUs7QUFBQSxjQUN0QixTQUFVLEdBQUk7QUFBQSxjQUFDO0FBR2YsdUJBQVMsSUFBSyxNQUFNLEtBQUssSUFBSztBQUFBLFlBQy9CLE9BQU87QUFDTixxQkFBTztBQUFBLFlBQ1I7QUFBQSxVQUNEO0FBQ0EsaUJBQU87QUFBQSxRQUNSO0FBRUEsZUFBTyxPQUFRO0FBQUEsVUFDZCxTQUFTLFNBQVUsTUFBTztBQUN6QixtQkFBTyxTQUFTLFFBQVMsSUFBSyxLQUFLLFNBQVMsUUFBUyxJQUFLO0FBQUEsVUFDM0Q7QUFBQSxVQUVBLE1BQU0sU0FBVSxNQUFNLE1BQU0sTUFBTztBQUNsQyxtQkFBTyxTQUFTLE9BQVEsTUFBTSxNQUFNLElBQUs7QUFBQSxVQUMxQztBQUFBLFVBRUEsWUFBWSxTQUFVLE1BQU0sTUFBTztBQUNsQyxxQkFBUyxPQUFRLE1BQU0sSUFBSztBQUFBLFVBQzdCO0FBQUE7QUFBQTtBQUFBLFVBSUEsT0FBTyxTQUFVLE1BQU0sTUFBTSxNQUFPO0FBQ25DLG1CQUFPLFNBQVMsT0FBUSxNQUFNLE1BQU0sSUFBSztBQUFBLFVBQzFDO0FBQUEsVUFFQSxhQUFhLFNBQVUsTUFBTSxNQUFPO0FBQ25DLHFCQUFTLE9BQVEsTUFBTSxJQUFLO0FBQUEsVUFDN0I7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLEdBQUcsT0FBUTtBQUFBLFVBQ2pCLE1BQU0sU0FBVSxLQUFLLE9BQVE7QUFDNUIsZ0JBQUksR0FBRyxNQUFNLE1BQ1osT0FBTyxLQUFNLENBQUUsR0FDZixRQUFRLFFBQVEsS0FBSztBQUd0QixnQkFBSyxRQUFRLFFBQVk7QUFDeEIsa0JBQUssS0FBSyxRQUFTO0FBQ2xCLHVCQUFPLFNBQVMsSUFBSyxJQUFLO0FBRTFCLG9CQUFLLEtBQUssYUFBYSxLQUFLLENBQUMsU0FBUyxJQUFLLE1BQU0sY0FBZSxHQUFJO0FBQ25FLHNCQUFJLE1BQU07QUFDVix5QkFBUSxLQUFNO0FBSWIsd0JBQUssTUFBTyxDQUFFLEdBQUk7QUFDakIsNkJBQU8sTUFBTyxDQUFFLEVBQUU7QUFDbEIsMEJBQUssS0FBSyxRQUFTLE9BQVEsTUFBTSxHQUFJO0FBQ3BDLCtCQUFPLFVBQVcsS0FBSyxNQUFPLENBQUUsQ0FBRTtBQUNsQyxpQ0FBVSxNQUFNLE1BQU0sS0FBTSxJQUFLLENBQUU7QUFBQSxzQkFDcEM7QUFBQSxvQkFDRDtBQUFBLGtCQUNEO0FBQ0EsMkJBQVMsSUFBSyxNQUFNLGdCQUFnQixJQUFLO0FBQUEsZ0JBQzFDO0FBQUEsY0FDRDtBQUVBLHFCQUFPO0FBQUEsWUFDUjtBQUdBLGdCQUFLLE9BQU8sUUFBUSxVQUFXO0FBQzlCLHFCQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLHlCQUFTLElBQUssTUFBTSxHQUFJO0FBQUEsY0FDekIsQ0FBRTtBQUFBLFlBQ0g7QUFFQSxtQkFBTyxPQUFRLE1BQU0sU0FBVUYsUUFBUTtBQUN0QyxrQkFBSUc7QUFPSixrQkFBSyxRQUFRSCxXQUFVLFFBQVk7QUFJbEMsZ0JBQUFHLFFBQU8sU0FBUyxJQUFLLE1BQU0sR0FBSTtBQUMvQixvQkFBS0EsVUFBUyxRQUFZO0FBQ3pCLHlCQUFPQTtBQUFBLGdCQUNSO0FBSUEsZ0JBQUFBLFFBQU8sU0FBVSxNQUFNLEdBQUk7QUFDM0Isb0JBQUtBLFVBQVMsUUFBWTtBQUN6Qix5QkFBT0E7QUFBQSxnQkFDUjtBQUdBO0FBQUEsY0FDRDtBQUdBLG1CQUFLLEtBQU0sV0FBVztBQUdyQix5QkFBUyxJQUFLLE1BQU0sS0FBS0gsTUFBTTtBQUFBLGNBQ2hDLENBQUU7QUFBQSxZQUNILEdBQUcsTUFBTSxPQUFPLFVBQVUsU0FBUyxHQUFHLE1BQU0sSUFBSztBQUFBLFVBQ2xEO0FBQUEsVUFFQSxZQUFZLFNBQVUsS0FBTTtBQUMzQixtQkFBTyxLQUFLLEtBQU0sV0FBVztBQUM1Qix1QkFBUyxPQUFRLE1BQU0sR0FBSTtBQUFBLFlBQzVCLENBQUU7QUFBQSxVQUNIO0FBQUEsUUFDRCxDQUFFO0FBR0YsZUFBTyxPQUFRO0FBQUEsVUFDZCxPQUFPLFNBQVUsTUFBTSxNQUFNLE1BQU87QUFDbkMsZ0JBQUk7QUFFSixnQkFBSyxNQUFPO0FBQ1gsc0JBQVMsUUFBUSxRQUFTO0FBQzFCLHNCQUFRLFNBQVMsSUFBSyxNQUFNLElBQUs7QUFHakMsa0JBQUssTUFBTztBQUNYLG9CQUFLLENBQUMsU0FBUyxNQUFNLFFBQVMsSUFBSyxHQUFJO0FBQ3RDLDBCQUFRLFNBQVMsT0FBUSxNQUFNLE1BQU0sT0FBTyxVQUFXLElBQUssQ0FBRTtBQUFBLGdCQUMvRCxPQUFPO0FBQ04sd0JBQU0sS0FBTSxJQUFLO0FBQUEsZ0JBQ2xCO0FBQUEsY0FDRDtBQUNBLHFCQUFPLFNBQVMsQ0FBQztBQUFBLFlBQ2xCO0FBQUEsVUFDRDtBQUFBLFVBRUEsU0FBUyxTQUFVLE1BQU0sTUFBTztBQUMvQixtQkFBTyxRQUFRO0FBRWYsZ0JBQUksUUFBUSxPQUFPLE1BQU8sTUFBTSxJQUFLLEdBQ3BDLGNBQWMsTUFBTSxRQUNwQlQsTUFBSyxNQUFNLE1BQU0sR0FDakIsUUFBUSxPQUFPLFlBQWEsTUFBTSxJQUFLLEdBQ3ZDLE9BQU8sV0FBVztBQUNqQixxQkFBTyxRQUFTLE1BQU0sSUFBSztBQUFBLFlBQzVCO0FBR0QsZ0JBQUtBLFFBQU8sY0FBZTtBQUMxQixjQUFBQSxNQUFLLE1BQU0sTUFBTTtBQUNqQjtBQUFBLFlBQ0Q7QUFFQSxnQkFBS0EsS0FBSztBQUlULGtCQUFLLFNBQVMsTUFBTztBQUNwQixzQkFBTSxRQUFTLFlBQWE7QUFBQSxjQUM3QjtBQUdBLHFCQUFPLE1BQU07QUFDYixjQUFBQSxJQUFHLEtBQU0sTUFBTSxNQUFNLEtBQU07QUFBQSxZQUM1QjtBQUVBLGdCQUFLLENBQUMsZUFBZSxPQUFRO0FBQzVCLG9CQUFNLE1BQU0sS0FBSztBQUFBLFlBQ2xCO0FBQUEsVUFDRDtBQUFBO0FBQUEsVUFHQSxhQUFhLFNBQVUsTUFBTSxNQUFPO0FBQ25DLGdCQUFJLE1BQU0sT0FBTztBQUNqQixtQkFBTyxTQUFTLElBQUssTUFBTSxHQUFJLEtBQUssU0FBUyxPQUFRLE1BQU0sS0FBSztBQUFBLGNBQy9ELE9BQU8sT0FBTyxVQUFXLGFBQWMsRUFBRSxJQUFLLFdBQVc7QUFDeEQseUJBQVMsT0FBUSxNQUFNLENBQUUsT0FBTyxTQUFTLEdBQUksQ0FBRTtBQUFBLGNBQ2hELENBQUU7QUFBQSxZQUNILENBQUU7QUFBQSxVQUNIO0FBQUEsUUFDRCxDQUFFO0FBRUYsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixPQUFPLFNBQVUsTUFBTSxNQUFPO0FBQzdCLGdCQUFJLFNBQVM7QUFFYixnQkFBSyxPQUFPLFNBQVMsVUFBVztBQUMvQixxQkFBTztBQUNQLHFCQUFPO0FBQ1A7QUFBQSxZQUNEO0FBRUEsZ0JBQUssVUFBVSxTQUFTLFFBQVM7QUFDaEMscUJBQU8sT0FBTyxNQUFPLEtBQU0sQ0FBRSxHQUFHLElBQUs7QUFBQSxZQUN0QztBQUVBLG1CQUFPLFNBQVMsU0FDZixPQUNBLEtBQUssS0FBTSxXQUFXO0FBQ3JCLGtCQUFJLFFBQVEsT0FBTyxNQUFPLE1BQU0sTUFBTSxJQUFLO0FBRzNDLHFCQUFPLFlBQWEsTUFBTSxJQUFLO0FBRS9CLGtCQUFLLFNBQVMsUUFBUSxNQUFPLENBQUUsTUFBTSxjQUFlO0FBQ25ELHVCQUFPLFFBQVMsTUFBTSxJQUFLO0FBQUEsY0FDNUI7QUFBQSxZQUNELENBQUU7QUFBQSxVQUNKO0FBQUEsVUFDQSxTQUFTLFNBQVUsTUFBTztBQUN6QixtQkFBTyxLQUFLLEtBQU0sV0FBVztBQUM1QixxQkFBTyxRQUFTLE1BQU0sSUFBSztBQUFBLFlBQzVCLENBQUU7QUFBQSxVQUNIO0FBQUEsVUFDQSxZQUFZLFNBQVUsTUFBTztBQUM1QixtQkFBTyxLQUFLLE1BQU8sUUFBUSxNQUFNLENBQUMsQ0FBRTtBQUFBLFVBQ3JDO0FBQUE7QUFBQTtBQUFBLFVBSUEsU0FBUyxTQUFVLE1BQU0sS0FBTTtBQUM5QixnQkFBSSxLQUNILFFBQVEsR0FDUixRQUFRLE9BQU8sU0FBUyxHQUN4QixXQUFXLE1BQ1gsSUFBSSxLQUFLLFFBQ1QsVUFBVSxXQUFXO0FBQ3BCLGtCQUFLLENBQUcsRUFBRSxPQUFVO0FBQ25CLHNCQUFNLFlBQWEsVUFBVSxDQUFFLFFBQVMsQ0FBRTtBQUFBLGNBQzNDO0FBQUEsWUFDRDtBQUVELGdCQUFLLE9BQU8sU0FBUyxVQUFXO0FBQy9CLG9CQUFNO0FBQ04scUJBQU87QUFBQSxZQUNSO0FBQ0EsbUJBQU8sUUFBUTtBQUVmLG1CQUFRLEtBQU07QUFDYixvQkFBTSxTQUFTLElBQUssU0FBVSxDQUFFLEdBQUcsT0FBTyxZQUFhO0FBQ3ZELGtCQUFLLE9BQU8sSUFBSSxPQUFRO0FBQ3ZCO0FBQ0Esb0JBQUksTUFBTSxJQUFLLE9BQVE7QUFBQSxjQUN4QjtBQUFBLFlBQ0Q7QUFDQSxvQkFBUTtBQUNSLG1CQUFPLE1BQU0sUUFBUyxHQUFJO0FBQUEsVUFDM0I7QUFBQSxRQUNELENBQUU7QUFDRixZQUFJLE9BQVMsc0NBQXdDO0FBRXJELFlBQUksVUFBVSxJQUFJLE9BQVEsbUJBQW1CLE9BQU8sZUFBZSxHQUFJO0FBR3ZFLFlBQUksWUFBWSxDQUFFLE9BQU8sU0FBUyxVQUFVLE1BQU87QUFFbkQsWUFBSSxrQkFBa0JULFVBQVM7QUFJOUIsWUFBSSxhQUFhLFNBQVUsTUFBTztBQUNoQyxpQkFBTyxPQUFPLFNBQVUsS0FBSyxlQUFlLElBQUs7QUFBQSxRQUNsRCxHQUNBLFdBQVcsRUFBRSxVQUFVLEtBQUs7QUFPN0IsWUFBSyxnQkFBZ0IsYUFBYztBQUNsQyx1QkFBYSxTQUFVLE1BQU87QUFDN0IsbUJBQU8sT0FBTyxTQUFVLEtBQUssZUFBZSxJQUFLLEtBQ2hELEtBQUssWUFBYSxRQUFTLE1BQU0sS0FBSztBQUFBLFVBQ3hDO0FBQUEsUUFDRDtBQUNELFlBQUkscUJBQXFCLFNBQVUsTUFBTSxJQUFLO0FBSTVDLGlCQUFPLE1BQU07QUFHYixpQkFBTyxLQUFLLE1BQU0sWUFBWSxVQUM3QixLQUFLLE1BQU0sWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBTXZCLFdBQVksSUFBSyxLQUVqQixPQUFPLElBQUssTUFBTSxTQUFVLE1BQU07QUFBQSxRQUNwQztBQUlELGlCQUFTLFVBQVcsTUFBTSxNQUFNLFlBQVksT0FBUTtBQUNuRCxjQUFJLFVBQVUsT0FDYixnQkFBZ0IsSUFDaEIsZUFBZSxRQUNkLFdBQVc7QUFDVixtQkFBTyxNQUFNLElBQUk7QUFBQSxVQUNsQixJQUNBLFdBQVc7QUFDVixtQkFBTyxPQUFPLElBQUssTUFBTSxNQUFNLEVBQUc7QUFBQSxVQUNuQyxHQUNELFVBQVUsYUFBYSxHQUN2QixPQUFPLGNBQWMsV0FBWSxDQUFFLE1BQU8sT0FBTyxVQUFXLElBQUssSUFBSSxLQUFLLE9BRzFFLGdCQUFnQixLQUFLLGFBQ2xCLE9BQU8sVUFBVyxJQUFLLEtBQUssU0FBUyxRQUFRLENBQUMsWUFDaEQsUUFBUSxLQUFNLE9BQU8sSUFBSyxNQUFNLElBQUssQ0FBRTtBQUV6QyxjQUFLLGlCQUFpQixjQUFlLENBQUUsTUFBTSxNQUFPO0FBSW5ELHNCQUFVLFVBQVU7QUFHcEIsbUJBQU8sUUFBUSxjQUFlLENBQUU7QUFHaEMsNEJBQWdCLENBQUMsV0FBVztBQUU1QixtQkFBUSxpQkFBa0I7QUFJekIscUJBQU8sTUFBTyxNQUFNLE1BQU0sZ0JBQWdCLElBQUs7QUFDL0MsbUJBQU8sSUFBSSxVQUFZLEtBQU0sUUFBUSxhQUFhLElBQUksV0FBVyxTQUFXLEdBQUk7QUFDL0UsZ0NBQWdCO0FBQUEsY0FDakI7QUFDQSw4QkFBZ0IsZ0JBQWdCO0FBQUEsWUFFakM7QUFFQSw0QkFBZ0IsZ0JBQWdCO0FBQ2hDLG1CQUFPLE1BQU8sTUFBTSxNQUFNLGdCQUFnQixJQUFLO0FBRy9DLHlCQUFhLGNBQWMsQ0FBQztBQUFBLFVBQzdCO0FBRUEsY0FBSyxZQUFhO0FBQ2pCLDRCQUFnQixDQUFDLGlCQUFpQixDQUFDLFdBQVc7QUFHOUMsdUJBQVcsV0FBWSxDQUFFLElBQ3hCLGlCQUFrQixXQUFZLENBQUUsSUFBSSxLQUFNLFdBQVksQ0FBRSxJQUN4RCxDQUFDLFdBQVksQ0FBRTtBQUNoQixnQkFBSyxPQUFRO0FBQ1osb0JBQU0sT0FBTztBQUNiLG9CQUFNLFFBQVE7QUFDZCxvQkFBTSxNQUFNO0FBQUEsWUFDYjtBQUFBLFVBQ0Q7QUFDQSxpQkFBTztBQUFBLFFBQ1I7QUFHQSxZQUFJLG9CQUFvQixDQUFDO0FBRXpCLGlCQUFTLGtCQUFtQixNQUFPO0FBQ2xDLGNBQUksTUFDSEMsT0FBTSxLQUFLLGVBQ1hxQixZQUFXLEtBQUssVUFDaEIsVUFBVSxrQkFBbUJBLFNBQVM7QUFFdkMsY0FBSyxTQUFVO0FBQ2QsbUJBQU87QUFBQSxVQUNSO0FBRUEsaUJBQU9yQixLQUFJLEtBQUssWUFBYUEsS0FBSSxjQUFlcUIsU0FBUyxDQUFFO0FBQzNELG9CQUFVLE9BQU8sSUFBSyxNQUFNLFNBQVU7QUFFdEMsZUFBSyxXQUFXLFlBQWEsSUFBSztBQUVsQyxjQUFLLFlBQVksUUFBUztBQUN6QixzQkFBVTtBQUFBLFVBQ1g7QUFDQSw0QkFBbUJBLFNBQVMsSUFBSTtBQUVoQyxpQkFBTztBQUFBLFFBQ1I7QUFFQSxpQkFBUyxTQUFVLFVBQVUsTUFBTztBQUNuQyxjQUFJLFNBQVMsTUFDWixTQUFTLENBQUMsR0FDVixRQUFRLEdBQ1IsU0FBUyxTQUFTO0FBR25CLGlCQUFRLFFBQVEsUUFBUSxTQUFVO0FBQ2pDLG1CQUFPLFNBQVUsS0FBTTtBQUN2QixnQkFBSyxDQUFDLEtBQUssT0FBUTtBQUNsQjtBQUFBLFlBQ0Q7QUFFQSxzQkFBVSxLQUFLLE1BQU07QUFDckIsZ0JBQUssTUFBTztBQUtYLGtCQUFLLFlBQVksUUFBUztBQUN6Qix1QkFBUSxLQUFNLElBQUksU0FBUyxJQUFLLE1BQU0sU0FBVSxLQUFLO0FBQ3JELG9CQUFLLENBQUMsT0FBUSxLQUFNLEdBQUk7QUFDdkIsdUJBQUssTUFBTSxVQUFVO0FBQUEsZ0JBQ3RCO0FBQUEsY0FDRDtBQUNBLGtCQUFLLEtBQUssTUFBTSxZQUFZLE1BQU0sbUJBQW9CLElBQUssR0FBSTtBQUM5RCx1QkFBUSxLQUFNLElBQUksa0JBQW1CLElBQUs7QUFBQSxjQUMzQztBQUFBLFlBQ0QsT0FBTztBQUNOLGtCQUFLLFlBQVksUUFBUztBQUN6Qix1QkFBUSxLQUFNLElBQUk7QUFHbEIseUJBQVMsSUFBSyxNQUFNLFdBQVcsT0FBUTtBQUFBLGNBQ3hDO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFHQSxlQUFNLFFBQVEsR0FBRyxRQUFRLFFBQVEsU0FBVTtBQUMxQyxnQkFBSyxPQUFRLEtBQU0sS0FBSyxNQUFPO0FBQzlCLHVCQUFVLEtBQU0sRUFBRSxNQUFNLFVBQVUsT0FBUSxLQUFNO0FBQUEsWUFDakQ7QUFBQSxVQUNEO0FBRUEsaUJBQU87QUFBQSxRQUNSO0FBRUEsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixNQUFNLFdBQVc7QUFDaEIsbUJBQU8sU0FBVSxNQUFNLElBQUs7QUFBQSxVQUM3QjtBQUFBLFVBQ0EsTUFBTSxXQUFXO0FBQ2hCLG1CQUFPLFNBQVUsSUFBSztBQUFBLFVBQ3ZCO0FBQUEsVUFDQSxRQUFRLFNBQVUsT0FBUTtBQUN6QixnQkFBSyxPQUFPLFVBQVUsV0FBWTtBQUNqQyxxQkFBTyxRQUFRLEtBQUssS0FBSyxJQUFJLEtBQUssS0FBSztBQUFBLFlBQ3hDO0FBRUEsbUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIsa0JBQUssbUJBQW9CLElBQUssR0FBSTtBQUNqQyx1QkFBUSxJQUFLLEVBQUUsS0FBSztBQUFBLGNBQ3JCLE9BQU87QUFDTix1QkFBUSxJQUFLLEVBQUUsS0FBSztBQUFBLGNBQ3JCO0FBQUEsWUFDRCxDQUFFO0FBQUEsVUFDSDtBQUFBLFFBQ0QsQ0FBRTtBQUNGLFlBQUksaUJBQW1CO0FBRXZCLFlBQUksV0FBYTtBQUVqQixZQUFJLGNBQWdCO0FBSXBCLFNBQUUsV0FBVztBQUNaLGNBQUksV0FBV3RCLFVBQVMsdUJBQXVCLEdBQzlDLE1BQU0sU0FBUyxZQUFhQSxVQUFTLGNBQWUsS0FBTSxDQUFFLEdBQzVELFFBQVFBLFVBQVMsY0FBZSxPQUFRO0FBTXpDLGdCQUFNLGFBQWMsUUFBUSxPQUFRO0FBQ3BDLGdCQUFNLGFBQWMsV0FBVyxTQUFVO0FBQ3pDLGdCQUFNLGFBQWMsUUFBUSxHQUFJO0FBRWhDLGNBQUksWUFBYSxLQUFNO0FBSXZCLGtCQUFRLGFBQWEsSUFBSSxVQUFXLElBQUssRUFBRSxVQUFXLElBQUssRUFBRSxVQUFVO0FBSXZFLGNBQUksWUFBWTtBQUNoQixrQkFBUSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksVUFBVyxJQUFLLEVBQUUsVUFBVTtBQUszRCxjQUFJLFlBQVk7QUFDaEIsa0JBQVEsU0FBUyxDQUFDLENBQUMsSUFBSTtBQUFBLFFBQ3hCLEdBQUk7QUFJSixZQUFJLFVBQVU7QUFBQTtBQUFBO0FBQUE7QUFBQSxVQUtiLE9BQU8sQ0FBRSxHQUFHLFdBQVcsVUFBVztBQUFBLFVBQ2xDLEtBQUssQ0FBRSxHQUFHLHFCQUFxQixxQkFBc0I7QUFBQSxVQUNyRCxJQUFJLENBQUUsR0FBRyxrQkFBa0Isa0JBQW1CO0FBQUEsVUFDOUMsSUFBSSxDQUFFLEdBQUcsc0JBQXNCLHVCQUF3QjtBQUFBLFVBRXZELFVBQVUsQ0FBRSxHQUFHLElBQUksRUFBRztBQUFBLFFBQ3ZCO0FBRUEsZ0JBQVEsUUFBUSxRQUFRLFFBQVEsUUFBUSxXQUFXLFFBQVEsVUFBVSxRQUFRO0FBQzdFLGdCQUFRLEtBQUssUUFBUTtBQUdyQixZQUFLLENBQUMsUUFBUSxRQUFTO0FBQ3RCLGtCQUFRLFdBQVcsUUFBUSxTQUFTLENBQUUsR0FBRyxnQ0FBZ0MsV0FBWTtBQUFBLFFBQ3RGO0FBR0EsaUJBQVMsT0FBUSxTQUFTLEtBQU07QUFJL0IsY0FBSTtBQUVKLGNBQUssT0FBTyxRQUFRLHlCQUF5QixhQUFjO0FBQzFELGtCQUFNLFFBQVEscUJBQXNCLE9BQU8sR0FBSTtBQUFBLFVBRWhELFdBQVksT0FBTyxRQUFRLHFCQUFxQixhQUFjO0FBQzdELGtCQUFNLFFBQVEsaUJBQWtCLE9BQU8sR0FBSTtBQUFBLFVBRTVDLE9BQU87QUFDTixrQkFBTSxDQUFDO0FBQUEsVUFDUjtBQUVBLGNBQUssUUFBUSxVQUFhLE9BQU8sU0FBVSxTQUFTLEdBQUksR0FBSTtBQUMzRCxtQkFBTyxPQUFPLE1BQU8sQ0FBRSxPQUFRLEdBQUcsR0FBSTtBQUFBLFVBQ3ZDO0FBRUEsaUJBQU87QUFBQSxRQUNSO0FBSUEsaUJBQVMsY0FBZSxPQUFPLGFBQWM7QUFDNUMsY0FBSSxJQUFJLEdBQ1AsSUFBSSxNQUFNO0FBRVgsaUJBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEIscUJBQVM7QUFBQSxjQUNSLE1BQU8sQ0FBRTtBQUFBLGNBQ1Q7QUFBQSxjQUNBLENBQUMsZUFBZSxTQUFTLElBQUssWUFBYSxDQUFFLEdBQUcsWUFBYTtBQUFBLFlBQzlEO0FBQUEsVUFDRDtBQUFBLFFBQ0Q7QUFHQSxZQUFJLFFBQVE7QUFFWixpQkFBUyxjQUFlLE9BQU8sU0FBUyxTQUFTLFdBQVcsU0FBVTtBQUNyRSxjQUFJLE1BQU0sS0FBSyxLQUFLLE1BQU0sVUFBVSxHQUNuQyxXQUFXLFFBQVEsdUJBQXVCLEdBQzFDLFFBQVEsQ0FBQyxHQUNULElBQUksR0FDSixJQUFJLE1BQU07QUFFWCxpQkFBUSxJQUFJLEdBQUcsS0FBTTtBQUNwQixtQkFBTyxNQUFPLENBQUU7QUFFaEIsZ0JBQUssUUFBUSxTQUFTLEdBQUk7QUFHekIsa0JBQUtFLFFBQVEsSUFBSyxNQUFNLFVBQVc7QUFJbEMsdUJBQU8sTUFBTyxPQUFPLEtBQUssV0FBVyxDQUFFLElBQUssSUFBSSxJQUFLO0FBQUEsY0FHdEQsV0FBWSxDQUFDLE1BQU0sS0FBTSxJQUFLLEdBQUk7QUFDakMsc0JBQU0sS0FBTSxRQUFRLGVBQWdCLElBQUssQ0FBRTtBQUFBLGNBRzVDLE9BQU87QUFDTixzQkFBTSxPQUFPLFNBQVMsWUFBYSxRQUFRLGNBQWUsS0FBTSxDQUFFO0FBR2xFLHVCQUFRLFNBQVMsS0FBTSxJQUFLLEtBQUssQ0FBRSxJQUFJLEVBQUcsR0FBSyxDQUFFLEVBQUUsWUFBWTtBQUMvRCx1QkFBTyxRQUFTLEdBQUksS0FBSyxRQUFRO0FBQ2pDLG9CQUFJLFlBQVksS0FBTSxDQUFFLElBQUksT0FBTyxjQUFlLElBQUssSUFBSSxLQUFNLENBQUU7QUFHbkUsb0JBQUksS0FBTSxDQUFFO0FBQ1osdUJBQVEsS0FBTTtBQUNiLHdCQUFNLElBQUk7QUFBQSxnQkFDWDtBQUlBLHVCQUFPLE1BQU8sT0FBTyxJQUFJLFVBQVc7QUFHcEMsc0JBQU0sU0FBUztBQUdmLG9CQUFJLGNBQWM7QUFBQSxjQUNuQjtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBR0EsbUJBQVMsY0FBYztBQUV2QixjQUFJO0FBQ0osaUJBQVUsT0FBTyxNQUFPLEdBQUksR0FBTTtBQUdqQyxnQkFBSyxhQUFhLE9BQU8sUUFBUyxNQUFNLFNBQVUsSUFBSSxJQUFLO0FBQzFELGtCQUFLLFNBQVU7QUFDZCx3QkFBUSxLQUFNLElBQUs7QUFBQSxjQUNwQjtBQUNBO0FBQUEsWUFDRDtBQUVBLHVCQUFXLFdBQVksSUFBSztBQUc1QixrQkFBTSxPQUFRLFNBQVMsWUFBYSxJQUFLLEdBQUcsUUFBUztBQUdyRCxnQkFBSyxVQUFXO0FBQ2YsNEJBQWUsR0FBSTtBQUFBLFlBQ3BCO0FBR0EsZ0JBQUssU0FBVTtBQUNkLGtCQUFJO0FBQ0oscUJBQVUsT0FBTyxJQUFLLEdBQUksR0FBTTtBQUMvQixvQkFBSyxZQUFZLEtBQU0sS0FBSyxRQUFRLEVBQUcsR0FBSTtBQUMxQywwQkFBUSxLQUFNLElBQUs7QUFBQSxnQkFDcEI7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFHQSxZQUFJLGlCQUFpQjtBQUVyQixpQkFBUyxhQUFhO0FBQ3JCLGlCQUFPO0FBQUEsUUFDUjtBQUVBLGlCQUFTLGNBQWM7QUFDdEIsaUJBQU87QUFBQSxRQUNSO0FBRUEsaUJBQVMsR0FBSSxNQUFNLE9BQU8sVUFBVSxNQUFNTyxLQUFJLEtBQU07QUFDbkQsY0FBSSxRQUFRO0FBR1osY0FBSyxPQUFPLFVBQVUsVUFBVztBQUdoQyxnQkFBSyxPQUFPLGFBQWEsVUFBVztBQUduQyxxQkFBTyxRQUFRO0FBQ2YseUJBQVc7QUFBQSxZQUNaO0FBQ0EsaUJBQU0sUUFBUSxPQUFRO0FBQ3JCLGlCQUFJLE1BQU0sTUFBTSxVQUFVLE1BQU0sTUFBTyxJQUFLLEdBQUcsR0FBSTtBQUFBLFlBQ3BEO0FBQ0EsbUJBQU87QUFBQSxVQUNSO0FBRUEsY0FBSyxRQUFRLFFBQVFBLE9BQU0sTUFBTztBQUdqQyxZQUFBQSxNQUFLO0FBQ0wsbUJBQU8sV0FBVztBQUFBLFVBQ25CLFdBQVlBLE9BQU0sTUFBTztBQUN4QixnQkFBSyxPQUFPLGFBQWEsVUFBVztBQUduQyxjQUFBQSxNQUFLO0FBQ0wscUJBQU87QUFBQSxZQUNSLE9BQU87QUFHTixjQUFBQSxNQUFLO0FBQ0wscUJBQU87QUFDUCx5QkFBVztBQUFBLFlBQ1o7QUFBQSxVQUNEO0FBQ0EsY0FBS0EsUUFBTyxPQUFRO0FBQ25CLFlBQUFBLE1BQUs7QUFBQSxVQUNOLFdBQVksQ0FBQ0EsS0FBSztBQUNqQixtQkFBTztBQUFBLFVBQ1I7QUFFQSxjQUFLLFFBQVEsR0FBSTtBQUNoQixxQkFBU0E7QUFDVCxZQUFBQSxNQUFLLFNBQVUsT0FBUTtBQUd0QixxQkFBTyxFQUFFLElBQUssS0FBTTtBQUNwQixxQkFBTyxPQUFPLE1BQU8sTUFBTSxTQUFVO0FBQUEsWUFDdEM7QUFHQSxZQUFBQSxJQUFHLE9BQU8sT0FBTyxTQUFVLE9BQU8sT0FBTyxPQUFPO0FBQUEsVUFDakQ7QUFDQSxpQkFBTyxLQUFLLEtBQU0sV0FBVztBQUM1QixtQkFBTyxNQUFNLElBQUssTUFBTSxPQUFPQSxLQUFJLE1BQU0sUUFBUztBQUFBLFVBQ25ELENBQUU7QUFBQSxRQUNIO0FBTUEsZUFBTyxRQUFRO0FBQUEsVUFFZCxRQUFRLENBQUM7QUFBQSxVQUVULEtBQUssU0FBVSxNQUFNLE9BQU8sU0FBUyxNQUFNLFVBQVc7QUFFckQsZ0JBQUksYUFBYSxhQUFhLEtBQzdCLFFBQVEsR0FBRyxXQUNYLFNBQVMsVUFBVSxNQUFNLFlBQVksVUFDckMsV0FBVyxTQUFTLElBQUssSUFBSztBQUcvQixnQkFBSyxDQUFDLFdBQVksSUFBSyxHQUFJO0FBQzFCO0FBQUEsWUFDRDtBQUdBLGdCQUFLLFFBQVEsU0FBVTtBQUN0Qiw0QkFBYztBQUNkLHdCQUFVLFlBQVk7QUFDdEIseUJBQVcsWUFBWTtBQUFBLFlBQ3hCO0FBSUEsZ0JBQUssVUFBVztBQUNmLHFCQUFPLEtBQUssZ0JBQWlCLGlCQUFpQixRQUFTO0FBQUEsWUFDeEQ7QUFHQSxnQkFBSyxDQUFDLFFBQVEsTUFBTztBQUNwQixzQkFBUSxPQUFPLE9BQU87QUFBQSxZQUN2QjtBQUdBLGdCQUFLLEVBQUcsU0FBUyxTQUFTLFNBQVc7QUFDcEMsdUJBQVMsU0FBUyxTQUFTLHVCQUFPLE9BQVEsSUFBSztBQUFBLFlBQ2hEO0FBQ0EsZ0JBQUssRUFBRyxjQUFjLFNBQVMsU0FBVztBQUN6Qyw0QkFBYyxTQUFTLFNBQVMsU0FBVSxHQUFJO0FBSTdDLHVCQUFPLE9BQU8sV0FBVyxlQUFlLE9BQU8sTUFBTSxjQUFjLEVBQUUsT0FDcEUsT0FBTyxNQUFNLFNBQVMsTUFBTyxNQUFNLFNBQVUsSUFBSTtBQUFBLGNBQ25EO0FBQUEsWUFDRDtBQUdBLHFCQUFVLFNBQVMsSUFBSyxNQUFPLGFBQWMsS0FBSyxDQUFFLEVBQUc7QUFDdkQsZ0JBQUksTUFBTTtBQUNWLG1CQUFRLEtBQU07QUFDYixvQkFBTSxlQUFlLEtBQU0sTUFBTyxDQUFFLENBQUUsS0FBSyxDQUFDO0FBQzVDLHFCQUFPLFdBQVcsSUFBSyxDQUFFO0FBQ3pCLDRCQUFlLElBQUssQ0FBRSxLQUFLLElBQUssTUFBTyxHQUFJLEVBQUUsS0FBSztBQUdsRCxrQkFBSyxDQUFDLE1BQU87QUFDWjtBQUFBLGNBQ0Q7QUFHQSx3QkFBVSxPQUFPLE1BQU0sUUFBUyxJQUFLLEtBQUssQ0FBQztBQUczQyxzQkFBUyxXQUFXLFFBQVEsZUFBZSxRQUFRLGFBQWM7QUFHakUsd0JBQVUsT0FBTyxNQUFNLFFBQVMsSUFBSyxLQUFLLENBQUM7QUFHM0MsMEJBQVksT0FBTyxPQUFRO0FBQUEsZ0JBQzFCO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0EsTUFBTSxRQUFRO0FBQUEsZ0JBQ2Q7QUFBQSxnQkFDQSxjQUFjLFlBQVksT0FBTyxLQUFLLE1BQU0sYUFBYSxLQUFNLFFBQVM7QUFBQSxnQkFDeEUsV0FBVyxXQUFXLEtBQU0sR0FBSTtBQUFBLGNBQ2pDLEdBQUcsV0FBWTtBQUdmLGtCQUFLLEVBQUcsV0FBVyxPQUFRLElBQUssSUFBTTtBQUNyQywyQkFBVyxPQUFRLElBQUssSUFBSSxDQUFDO0FBQzdCLHlCQUFTLGdCQUFnQjtBQUd6QixvQkFBSyxDQUFDLFFBQVEsU0FDYixRQUFRLE1BQU0sS0FBTSxNQUFNLE1BQU0sWUFBWSxXQUFZLE1BQU0sT0FBUTtBQUV0RSxzQkFBSyxLQUFLLGtCQUFtQjtBQUM1Qix5QkFBSyxpQkFBa0IsTUFBTSxXQUFZO0FBQUEsa0JBQzFDO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBRUEsa0JBQUssUUFBUSxLQUFNO0FBQ2xCLHdCQUFRLElBQUksS0FBTSxNQUFNLFNBQVU7QUFFbEMsb0JBQUssQ0FBQyxVQUFVLFFBQVEsTUFBTztBQUM5Qiw0QkFBVSxRQUFRLE9BQU8sUUFBUTtBQUFBLGdCQUNsQztBQUFBLGNBQ0Q7QUFHQSxrQkFBSyxVQUFXO0FBQ2YseUJBQVMsT0FBUSxTQUFTLGlCQUFpQixHQUFHLFNBQVU7QUFBQSxjQUN6RCxPQUFPO0FBQ04seUJBQVMsS0FBTSxTQUFVO0FBQUEsY0FDMUI7QUFHQSxxQkFBTyxNQUFNLE9BQVEsSUFBSyxJQUFJO0FBQUEsWUFDL0I7QUFBQSxVQUVEO0FBQUE7QUFBQSxVQUdBLFFBQVEsU0FBVSxNQUFNLE9BQU8sU0FBUyxVQUFVLGFBQWM7QUFFL0QsZ0JBQUksR0FBRyxXQUFXLEtBQ2pCLFFBQVEsR0FBRyxXQUNYLFNBQVMsVUFBVSxNQUFNLFlBQVksVUFDckMsV0FBVyxTQUFTLFFBQVMsSUFBSyxLQUFLLFNBQVMsSUFBSyxJQUFLO0FBRTNELGdCQUFLLENBQUMsWUFBWSxFQUFHLFNBQVMsU0FBUyxTQUFXO0FBQ2pEO0FBQUEsWUFDRDtBQUdBLHFCQUFVLFNBQVMsSUFBSyxNQUFPLGFBQWMsS0FBSyxDQUFFLEVBQUc7QUFDdkQsZ0JBQUksTUFBTTtBQUNWLG1CQUFRLEtBQU07QUFDYixvQkFBTSxlQUFlLEtBQU0sTUFBTyxDQUFFLENBQUUsS0FBSyxDQUFDO0FBQzVDLHFCQUFPLFdBQVcsSUFBSyxDQUFFO0FBQ3pCLDRCQUFlLElBQUssQ0FBRSxLQUFLLElBQUssTUFBTyxHQUFJLEVBQUUsS0FBSztBQUdsRCxrQkFBSyxDQUFDLE1BQU87QUFDWixxQkFBTSxRQUFRLFFBQVM7QUFDdEIseUJBQU8sTUFBTSxPQUFRLE1BQU0sT0FBTyxNQUFPLENBQUUsR0FBRyxTQUFTLFVBQVUsSUFBSztBQUFBLGdCQUN2RTtBQUNBO0FBQUEsY0FDRDtBQUVBLHdCQUFVLE9BQU8sTUFBTSxRQUFTLElBQUssS0FBSyxDQUFDO0FBQzNDLHNCQUFTLFdBQVcsUUFBUSxlQUFlLFFBQVEsYUFBYztBQUNqRSx5QkFBVyxPQUFRLElBQUssS0FBSyxDQUFDO0FBQzlCLG9CQUFNLElBQUssQ0FBRSxLQUNaLElBQUksT0FBUSxZQUFZLFdBQVcsS0FBTSxlQUFnQixJQUFJLFNBQVU7QUFHeEUsMEJBQVksSUFBSSxTQUFTO0FBQ3pCLHFCQUFRLEtBQU07QUFDYiw0QkFBWSxTQUFVLENBQUU7QUFFeEIscUJBQU8sZUFBZSxhQUFhLFVBQVUsY0FDMUMsQ0FBQyxXQUFXLFFBQVEsU0FBUyxVQUFVLFVBQ3ZDLENBQUMsT0FBTyxJQUFJLEtBQU0sVUFBVSxTQUFVLE9BQ3RDLENBQUMsWUFBWSxhQUFhLFVBQVUsWUFDckMsYUFBYSxRQUFRLFVBQVUsV0FBYTtBQUM3QywyQkFBUyxPQUFRLEdBQUcsQ0FBRTtBQUV0QixzQkFBSyxVQUFVLFVBQVc7QUFDekIsNkJBQVM7QUFBQSxrQkFDVjtBQUNBLHNCQUFLLFFBQVEsUUFBUztBQUNyQiw0QkFBUSxPQUFPLEtBQU0sTUFBTSxTQUFVO0FBQUEsa0JBQ3RDO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBSUEsa0JBQUssYUFBYSxDQUFDLFNBQVMsUUFBUztBQUNwQyxvQkFBSyxDQUFDLFFBQVEsWUFDYixRQUFRLFNBQVMsS0FBTSxNQUFNLFlBQVksU0FBUyxNQUFPLE1BQU0sT0FBUTtBQUV2RSx5QkFBTyxZQUFhLE1BQU0sTUFBTSxTQUFTLE1BQU87QUFBQSxnQkFDakQ7QUFFQSx1QkFBTyxPQUFRLElBQUs7QUFBQSxjQUNyQjtBQUFBLFlBQ0Q7QUFHQSxnQkFBSyxPQUFPLGNBQWUsTUFBTyxHQUFJO0FBQ3JDLHVCQUFTLE9BQVEsTUFBTSxlQUFnQjtBQUFBLFlBQ3hDO0FBQUEsVUFDRDtBQUFBLFVBRUEsVUFBVSxTQUFVLGFBQWM7QUFFakMsZ0JBQUksR0FBRyxHQUFHLEtBQUssU0FBUyxXQUFXLGNBQ2xDLE9BQU8sSUFBSSxNQUFPLFVBQVUsTUFBTyxHQUduQyxRQUFRLE9BQU8sTUFBTSxJQUFLLFdBQVksR0FFdEMsWUFDQyxTQUFTLElBQUssTUFBTSxRQUFTLEtBQUssdUJBQU8sT0FBUSxJQUFLLEdBQ3BELE1BQU0sSUFBSyxLQUFLLENBQUMsR0FDcEIsVUFBVSxPQUFPLE1BQU0sUUFBUyxNQUFNLElBQUssS0FBSyxDQUFDO0FBR2xELGlCQUFNLENBQUUsSUFBSTtBQUVaLGlCQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsUUFBUSxLQUFNO0FBQ3hDLG1CQUFNLENBQUUsSUFBSSxVQUFXLENBQUU7QUFBQSxZQUMxQjtBQUVBLGtCQUFNLGlCQUFpQjtBQUd2QixnQkFBSyxRQUFRLGVBQWUsUUFBUSxZQUFZLEtBQU0sTUFBTSxLQUFNLE1BQU0sT0FBUTtBQUMvRTtBQUFBLFlBQ0Q7QUFHQSwyQkFBZSxPQUFPLE1BQU0sU0FBUyxLQUFNLE1BQU0sT0FBTyxRQUFTO0FBR2pFLGdCQUFJO0FBQ0osb0JBQVUsVUFBVSxhQUFjLEdBQUksTUFBTyxDQUFDLE1BQU0scUJBQXFCLEdBQUk7QUFDNUUsb0JBQU0sZ0JBQWdCLFFBQVE7QUFFOUIsa0JBQUk7QUFDSixzQkFBVSxZQUFZLFFBQVEsU0FBVSxHQUFJLE1BQzNDLENBQUMsTUFBTSw4QkFBOEIsR0FBSTtBQUl6QyxvQkFBSyxDQUFDLE1BQU0sY0FBYyxVQUFVLGNBQWMsU0FDakQsTUFBTSxXQUFXLEtBQU0sVUFBVSxTQUFVLEdBQUk7QUFFL0Msd0JBQU0sWUFBWTtBQUNsQix3QkFBTSxPQUFPLFVBQVU7QUFFdkIsMEJBQVUsT0FBTyxNQUFNLFFBQVMsVUFBVSxRQUFTLEtBQUssQ0FBQyxHQUFJLFVBQzVELFVBQVUsU0FBVSxNQUFPLFFBQVEsTUFBTSxJQUFLO0FBRS9DLHNCQUFLLFFBQVEsUUFBWTtBQUN4Qix5QkFBTyxNQUFNLFNBQVMsU0FBVSxPQUFRO0FBQ3ZDLDRCQUFNLGVBQWU7QUFDckIsNEJBQU0sZ0JBQWdCO0FBQUEsb0JBQ3ZCO0FBQUEsa0JBQ0Q7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBR0EsZ0JBQUssUUFBUSxjQUFlO0FBQzNCLHNCQUFRLGFBQWEsS0FBTSxNQUFNLEtBQU07QUFBQSxZQUN4QztBQUVBLG1CQUFPLE1BQU07QUFBQSxVQUNkO0FBQUEsVUFFQSxVQUFVLFNBQVUsT0FBTyxVQUFXO0FBQ3JDLGdCQUFJLEdBQUcsV0FBVyxLQUFLLGlCQUFpQixrQkFDdkMsZUFBZSxDQUFDLEdBQ2hCLGdCQUFnQixTQUFTLGVBQ3pCLE1BQU0sTUFBTTtBQUdiLGdCQUFLO0FBQUE7QUFBQSxZQUlKLElBQUk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBT0osRUFBRyxNQUFNLFNBQVMsV0FBVyxNQUFNLFVBQVUsSUFBTTtBQUVuRCxxQkFBUSxRQUFRLE1BQU0sTUFBTSxJQUFJLGNBQWMsTUFBTztBQUlwRCxvQkFBSyxJQUFJLGFBQWEsS0FBSyxFQUFHLE1BQU0sU0FBUyxXQUFXLElBQUksYUFBYSxPQUFTO0FBQ2pGLG9DQUFrQixDQUFDO0FBQ25CLHFDQUFtQixDQUFDO0FBQ3BCLHVCQUFNLElBQUksR0FBRyxJQUFJLGVBQWUsS0FBTTtBQUNyQyxnQ0FBWSxTQUFVLENBQUU7QUFHeEIsMEJBQU0sVUFBVSxXQUFXO0FBRTNCLHdCQUFLLGlCQUFrQixHQUFJLE1BQU0sUUFBWTtBQUM1Qyx1Q0FBa0IsR0FBSSxJQUFJLFVBQVUsZUFDbkMsT0FBUSxLQUFLLElBQUssRUFBRSxNQUFPLEdBQUksSUFBSSxLQUNuQyxPQUFPLEtBQU0sS0FBSyxNQUFNLE1BQU0sQ0FBRSxHQUFJLENBQUUsRUFBRTtBQUFBLG9CQUMxQztBQUNBLHdCQUFLLGlCQUFrQixHQUFJLEdBQUk7QUFDOUIsc0NBQWdCLEtBQU0sU0FBVTtBQUFBLG9CQUNqQztBQUFBLGtCQUNEO0FBQ0Esc0JBQUssZ0JBQWdCLFFBQVM7QUFDN0IsaUNBQWEsS0FBTSxFQUFFLE1BQU0sS0FBSyxVQUFVLGdCQUFnQixDQUFFO0FBQUEsa0JBQzdEO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUdBLGtCQUFNO0FBQ04sZ0JBQUssZ0JBQWdCLFNBQVMsUUFBUztBQUN0QywyQkFBYSxLQUFNLEVBQUUsTUFBTSxLQUFLLFVBQVUsU0FBUyxNQUFPLGFBQWMsRUFBRSxDQUFFO0FBQUEsWUFDN0U7QUFFQSxtQkFBTztBQUFBLFVBQ1I7QUFBQSxVQUVBLFNBQVMsU0FBVSxNQUFNLE1BQU87QUFDL0IsbUJBQU8sZUFBZ0IsT0FBTyxNQUFNLFdBQVcsTUFBTTtBQUFBLGNBQ3BELFlBQVk7QUFBQSxjQUNaLGNBQWM7QUFBQSxjQUVkLEtBQUssV0FBWSxJQUFLLElBQ3JCLFdBQVc7QUFDVixvQkFBSyxLQUFLLGVBQWdCO0FBQ3pCLHlCQUFPLEtBQU0sS0FBSyxhQUFjO0FBQUEsZ0JBQ2pDO0FBQUEsY0FDRCxJQUNBLFdBQVc7QUFDVixvQkFBSyxLQUFLLGVBQWdCO0FBQ3pCLHlCQUFPLEtBQUssY0FBZSxJQUFLO0FBQUEsZ0JBQ2pDO0FBQUEsY0FDRDtBQUFBLGNBRUQsS0FBSyxTQUFVLE9BQVE7QUFDdEIsdUJBQU8sZUFBZ0IsTUFBTSxNQUFNO0FBQUEsa0JBQ2xDLFlBQVk7QUFBQSxrQkFDWixjQUFjO0FBQUEsa0JBQ2QsVUFBVTtBQUFBLGtCQUNWO0FBQUEsZ0JBQ0QsQ0FBRTtBQUFBLGNBQ0g7QUFBQSxZQUNELENBQUU7QUFBQSxVQUNIO0FBQUEsVUFFQSxLQUFLLFNBQVUsZUFBZ0I7QUFDOUIsbUJBQU8sY0FBZSxPQUFPLE9BQVEsSUFDcEMsZ0JBQ0EsSUFBSSxPQUFPLE1BQU8sYUFBYztBQUFBLFVBQ2xDO0FBQUEsVUFFQSxTQUFTO0FBQUEsWUFDUixNQUFNO0FBQUE7QUFBQSxjQUdMLFVBQVU7QUFBQSxZQUNYO0FBQUEsWUFDQSxPQUFPO0FBQUE7QUFBQSxjQUdOLE9BQU8sU0FBVSxNQUFPO0FBSXZCLG9CQUFJLEtBQUssUUFBUTtBQUdqQixvQkFBSyxlQUFlLEtBQU0sR0FBRyxJQUFLLEtBQ2pDLEdBQUcsU0FBUyxTQUFVLElBQUksT0FBUSxHQUFJO0FBR3RDLGlDQUFnQixJQUFJLFNBQVMsSUFBSztBQUFBLGdCQUNuQztBQUdBLHVCQUFPO0FBQUEsY0FDUjtBQUFBLGNBQ0EsU0FBUyxTQUFVLE1BQU87QUFJekIsb0JBQUksS0FBSyxRQUFRO0FBR2pCLG9CQUFLLGVBQWUsS0FBTSxHQUFHLElBQUssS0FDakMsR0FBRyxTQUFTLFNBQVUsSUFBSSxPQUFRLEdBQUk7QUFFdEMsaUNBQWdCLElBQUksT0FBUTtBQUFBLGdCQUM3QjtBQUdBLHVCQUFPO0FBQUEsY0FDUjtBQUFBO0FBQUE7QUFBQSxjQUlBLFVBQVUsU0FBVSxPQUFRO0FBQzNCLG9CQUFJLFNBQVMsTUFBTTtBQUNuQix1QkFBTyxlQUFlLEtBQU0sT0FBTyxJQUFLLEtBQ3ZDLE9BQU8sU0FBUyxTQUFVLFFBQVEsT0FBUSxLQUMxQyxTQUFTLElBQUssUUFBUSxPQUFRLEtBQzlCLFNBQVUsUUFBUSxHQUFJO0FBQUEsY0FDeEI7QUFBQSxZQUNEO0FBQUEsWUFFQSxjQUFjO0FBQUEsY0FDYixjQUFjLFNBQVUsT0FBUTtBQUkvQixvQkFBSyxNQUFNLFdBQVcsVUFBYSxNQUFNLGVBQWdCO0FBQ3hELHdCQUFNLGNBQWMsY0FBYyxNQUFNO0FBQUEsZ0JBQ3pDO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQU1BLGlCQUFTLGVBQWdCLElBQUksTUFBTSxTQUFVO0FBRzVDLGNBQUssQ0FBQyxTQUFVO0FBQ2YsZ0JBQUssU0FBUyxJQUFLLElBQUksSUFBSyxNQUFNLFFBQVk7QUFDN0MscUJBQU8sTUFBTSxJQUFLLElBQUksTUFBTSxVQUFXO0FBQUEsWUFDeEM7QUFDQTtBQUFBLFVBQ0Q7QUFHQSxtQkFBUyxJQUFLLElBQUksTUFBTSxLQUFNO0FBQzlCLGlCQUFPLE1BQU0sSUFBSyxJQUFJLE1BQU07QUFBQSxZQUMzQixXQUFXO0FBQUEsWUFDWCxTQUFTLFNBQVUsT0FBUTtBQUMxQixrQkFBSSxRQUNILFFBQVEsU0FBUyxJQUFLLE1BQU0sSUFBSztBQUVsQyxrQkFBTyxNQUFNLFlBQVksS0FBTyxLQUFNLElBQUssR0FBSTtBQUc5QyxvQkFBSyxDQUFDLE9BQVE7QUFLYiwwQkFBUSxNQUFNLEtBQU0sU0FBVTtBQUM5QiwyQkFBUyxJQUFLLE1BQU0sTUFBTSxLQUFNO0FBR2hDLHVCQUFNLElBQUssRUFBRTtBQUNiLDJCQUFTLFNBQVMsSUFBSyxNQUFNLElBQUs7QUFDbEMsMkJBQVMsSUFBSyxNQUFNLE1BQU0sS0FBTTtBQUVoQyxzQkFBSyxVQUFVLFFBQVM7QUFHdkIsMEJBQU0seUJBQXlCO0FBQy9CLDBCQUFNLGVBQWU7QUFFckIsMkJBQU87QUFBQSxrQkFDUjtBQUFBLGdCQVFELFlBQWMsT0FBTyxNQUFNLFFBQVMsSUFBSyxLQUFLLENBQUMsR0FBSSxjQUFlO0FBQ2pFLHdCQUFNLGdCQUFnQjtBQUFBLGdCQUN2QjtBQUFBLGNBSUQsV0FBWSxPQUFRO0FBR25CLHlCQUFTLElBQUssTUFBTSxNQUFNLE9BQU8sTUFBTTtBQUFBLGtCQUN0QyxNQUFPLENBQUU7QUFBQSxrQkFDVCxNQUFNLE1BQU8sQ0FBRTtBQUFBLGtCQUNmO0FBQUEsZ0JBQ0QsQ0FBRTtBQVVGLHNCQUFNLGdCQUFnQjtBQUN0QixzQkFBTSxnQ0FBZ0M7QUFBQSxjQUN2QztBQUFBLFlBQ0Q7QUFBQSxVQUNELENBQUU7QUFBQSxRQUNIO0FBRUEsZUFBTyxjQUFjLFNBQVUsTUFBTSxNQUFNLFFBQVM7QUFHbkQsY0FBSyxLQUFLLHFCQUFzQjtBQUMvQixpQkFBSyxvQkFBcUIsTUFBTSxNQUFPO0FBQUEsVUFDeEM7QUFBQSxRQUNEO0FBRUEsZUFBTyxRQUFRLFNBQVUsS0FBSyxPQUFRO0FBR3JDLGNBQUssRUFBRyxnQkFBZ0IsT0FBTyxRQUFVO0FBQ3hDLG1CQUFPLElBQUksT0FBTyxNQUFPLEtBQUssS0FBTTtBQUFBLFVBQ3JDO0FBR0EsY0FBSyxPQUFPLElBQUksTUFBTztBQUN0QixpQkFBSyxnQkFBZ0I7QUFDckIsaUJBQUssT0FBTyxJQUFJO0FBSWhCLGlCQUFLLHFCQUFxQixJQUFJLG9CQUM1QixJQUFJLHFCQUFxQjtBQUFBLFlBR3pCLElBQUksZ0JBQWdCLFFBQ3JCLGFBQ0E7QUFLRCxpQkFBSyxTQUFXLElBQUksVUFBVSxJQUFJLE9BQU8sYUFBYSxJQUNyRCxJQUFJLE9BQU8sYUFDWCxJQUFJO0FBRUwsaUJBQUssZ0JBQWdCLElBQUk7QUFDekIsaUJBQUssZ0JBQWdCLElBQUk7QUFBQSxVQUcxQixPQUFPO0FBQ04saUJBQUssT0FBTztBQUFBLFVBQ2I7QUFHQSxjQUFLLE9BQVE7QUFDWixtQkFBTyxPQUFRLE1BQU0sS0FBTTtBQUFBLFVBQzVCO0FBR0EsZUFBSyxZQUFZLE9BQU8sSUFBSSxhQUFhLEtBQUssSUFBSTtBQUdsRCxlQUFNLE9BQU8sT0FBUSxJQUFJO0FBQUEsUUFDMUI7QUFJQSxlQUFPLE1BQU0sWUFBWTtBQUFBLFVBQ3hCLGFBQWEsT0FBTztBQUFBLFVBQ3BCLG9CQUFvQjtBQUFBLFVBQ3BCLHNCQUFzQjtBQUFBLFVBQ3RCLCtCQUErQjtBQUFBLFVBQy9CLGFBQWE7QUFBQSxVQUViLGdCQUFnQixXQUFXO0FBQzFCLGdCQUFJLElBQUksS0FBSztBQUViLGlCQUFLLHFCQUFxQjtBQUUxQixnQkFBSyxLQUFLLENBQUMsS0FBSyxhQUFjO0FBQzdCLGdCQUFFLGVBQWU7QUFBQSxZQUNsQjtBQUFBLFVBQ0Q7QUFBQSxVQUNBLGlCQUFpQixXQUFXO0FBQzNCLGdCQUFJLElBQUksS0FBSztBQUViLGlCQUFLLHVCQUF1QjtBQUU1QixnQkFBSyxLQUFLLENBQUMsS0FBSyxhQUFjO0FBQzdCLGdCQUFFLGdCQUFnQjtBQUFBLFlBQ25CO0FBQUEsVUFDRDtBQUFBLFVBQ0EsMEJBQTBCLFdBQVc7QUFDcEMsZ0JBQUksSUFBSSxLQUFLO0FBRWIsaUJBQUssZ0NBQWdDO0FBRXJDLGdCQUFLLEtBQUssQ0FBQyxLQUFLLGFBQWM7QUFDN0IsZ0JBQUUseUJBQXlCO0FBQUEsWUFDNUI7QUFFQSxpQkFBSyxnQkFBZ0I7QUFBQSxVQUN0QjtBQUFBLFFBQ0Q7QUFHQSxlQUFPLEtBQU07QUFBQSxVQUNaLFFBQVE7QUFBQSxVQUNSLFNBQVM7QUFBQSxVQUNULFlBQVk7QUFBQSxVQUNaLGdCQUFnQjtBQUFBLFVBQ2hCLFNBQVM7QUFBQSxVQUNULFFBQVE7QUFBQSxVQUNSLFlBQVk7QUFBQSxVQUNaLFNBQVM7QUFBQSxVQUNULE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxVQUNQLFVBQVU7QUFBQSxVQUNWLE1BQU07QUFBQSxVQUNOLFFBQVE7QUFBQSxVQUNSLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxVQUNWLEtBQUs7QUFBQSxVQUNMLFNBQVM7QUFBQSxVQUNULFFBQVE7QUFBQSxVQUNSLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFdBQVc7QUFBQSxVQUNYLGFBQWE7QUFBQSxVQUNiLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULGVBQWU7QUFBQSxVQUNmLFdBQVc7QUFBQSxVQUNYLFNBQVM7QUFBQSxVQUNULE9BQU87QUFBQSxRQUNSLEdBQUcsT0FBTyxNQUFNLE9BQVE7QUFFeEIsZUFBTyxLQUFNLEVBQUUsT0FBTyxXQUFXLE1BQU0sV0FBVyxHQUFHLFNBQVUsTUFBTSxjQUFlO0FBRW5GLG1CQUFTLG1CQUFvQixhQUFjO0FBQzFDLGdCQUFLVCxVQUFTLGNBQWU7QUFTNUIsa0JBQUksU0FBUyxTQUFTLElBQUssTUFBTSxRQUFTLEdBQ3pDLFFBQVEsT0FBTyxNQUFNLElBQUssV0FBWTtBQUN2QyxvQkFBTSxPQUFPLFlBQVksU0FBUyxZQUFZLFVBQVU7QUFDeEQsb0JBQU0sY0FBYztBQUdwQixxQkFBUSxXQUFZO0FBTXBCLGtCQUFLLE1BQU0sV0FBVyxNQUFNLGVBQWdCO0FBSzNDLHVCQUFRLEtBQU07QUFBQSxjQUNmO0FBQUEsWUFDRCxPQUFPO0FBSU4scUJBQU8sTUFBTTtBQUFBLGdCQUFVO0FBQUEsZ0JBQWMsWUFBWTtBQUFBLGdCQUNoRCxPQUFPLE1BQU0sSUFBSyxXQUFZO0FBQUEsY0FBRTtBQUFBLFlBQ2xDO0FBQUEsVUFDRDtBQUVBLGlCQUFPLE1BQU0sUUFBUyxJQUFLLElBQUk7QUFBQTtBQUFBLFlBRzlCLE9BQU8sV0FBVztBQUVqQixrQkFBSTtBQUtKLDZCQUFnQixNQUFNLE1BQU0sSUFBSztBQUVqQyxrQkFBS0EsVUFBUyxjQUFlO0FBTTVCLDJCQUFXLFNBQVMsSUFBSyxNQUFNLFlBQWE7QUFDNUMsb0JBQUssQ0FBQyxVQUFXO0FBQ2hCLHVCQUFLLGlCQUFrQixjQUFjLGtCQUFtQjtBQUFBLGdCQUN6RDtBQUNBLHlCQUFTLElBQUssTUFBTSxlQUFnQixZQUFZLEtBQU0sQ0FBRTtBQUFBLGNBQ3pELE9BQU87QUFHTix1QkFBTztBQUFBLGNBQ1I7QUFBQSxZQUNEO0FBQUEsWUFDQSxTQUFTLFdBQVc7QUFHbkIsNkJBQWdCLE1BQU0sSUFBSztBQUczQixxQkFBTztBQUFBLFlBQ1I7QUFBQSxZQUVBLFVBQVUsV0FBVztBQUNwQixrQkFBSTtBQUVKLGtCQUFLQSxVQUFTLGNBQWU7QUFDNUIsMkJBQVcsU0FBUyxJQUFLLE1BQU0sWUFBYSxJQUFJO0FBQ2hELG9CQUFLLENBQUMsVUFBVztBQUNoQix1QkFBSyxvQkFBcUIsY0FBYyxrQkFBbUI7QUFDM0QsMkJBQVMsT0FBUSxNQUFNLFlBQWE7QUFBQSxnQkFDckMsT0FBTztBQUNOLDJCQUFTLElBQUssTUFBTSxjQUFjLFFBQVM7QUFBQSxnQkFDNUM7QUFBQSxjQUNELE9BQU87QUFHTix1QkFBTztBQUFBLGNBQ1I7QUFBQSxZQUNEO0FBQUE7QUFBQTtBQUFBLFlBSUEsVUFBVSxTQUFVLE9BQVE7QUFDM0IscUJBQU8sU0FBUyxJQUFLLE1BQU0sUUFBUSxJQUFLO0FBQUEsWUFDekM7QUFBQSxZQUVBO0FBQUEsVUFDRDtBQWNBLGlCQUFPLE1BQU0sUUFBUyxZQUFhLElBQUk7QUFBQSxZQUN0QyxPQUFPLFdBQVc7QUFJakIsa0JBQUlDLE9BQU0sS0FBSyxpQkFBaUIsS0FBSyxZQUFZLE1BQ2hELGFBQWFELFVBQVMsZUFBZSxPQUFPQyxNQUM1QyxXQUFXLFNBQVMsSUFBSyxZQUFZLFlBQWE7QUFNbkQsa0JBQUssQ0FBQyxVQUFXO0FBQ2hCLG9CQUFLRCxVQUFTLGNBQWU7QUFDNUIsdUJBQUssaUJBQWtCLGNBQWMsa0JBQW1CO0FBQUEsZ0JBQ3pELE9BQU87QUFDTixrQkFBQUMsS0FBSSxpQkFBa0IsTUFBTSxvQkFBb0IsSUFBSztBQUFBLGdCQUN0RDtBQUFBLGNBQ0Q7QUFDQSx1QkFBUyxJQUFLLFlBQVksZUFBZ0IsWUFBWSxLQUFNLENBQUU7QUFBQSxZQUMvRDtBQUFBLFlBQ0EsVUFBVSxXQUFXO0FBQ3BCLGtCQUFJQSxPQUFNLEtBQUssaUJBQWlCLEtBQUssWUFBWSxNQUNoRCxhQUFhRCxVQUFTLGVBQWUsT0FBT0MsTUFDNUMsV0FBVyxTQUFTLElBQUssWUFBWSxZQUFhLElBQUk7QUFFdkQsa0JBQUssQ0FBQyxVQUFXO0FBQ2hCLG9CQUFLRCxVQUFTLGNBQWU7QUFDNUIsdUJBQUssb0JBQXFCLGNBQWMsa0JBQW1CO0FBQUEsZ0JBQzVELE9BQU87QUFDTixrQkFBQUMsS0FBSSxvQkFBcUIsTUFBTSxvQkFBb0IsSUFBSztBQUFBLGdCQUN6RDtBQUNBLHlCQUFTLE9BQVEsWUFBWSxZQUFhO0FBQUEsY0FDM0MsT0FBTztBQUNOLHlCQUFTLElBQUssWUFBWSxjQUFjLFFBQVM7QUFBQSxjQUNsRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsUUFDRCxDQUFFO0FBVUYsZUFBTyxLQUFNO0FBQUEsVUFDWixZQUFZO0FBQUEsVUFDWixZQUFZO0FBQUEsVUFDWixjQUFjO0FBQUEsVUFDZCxjQUFjO0FBQUEsUUFDZixHQUFHLFNBQVUsTUFBTSxLQUFNO0FBQ3hCLGlCQUFPLE1BQU0sUUFBUyxJQUFLLElBQUk7QUFBQSxZQUM5QixjQUFjO0FBQUEsWUFDZCxVQUFVO0FBQUEsWUFFVixRQUFRLFNBQVUsT0FBUTtBQUN6QixrQkFBSSxLQUNILFNBQVMsTUFDVCxVQUFVLE1BQU0sZUFDaEIsWUFBWSxNQUFNO0FBSW5CLGtCQUFLLENBQUMsV0FBYSxZQUFZLFVBQVUsQ0FBQyxPQUFPLFNBQVUsUUFBUSxPQUFRLEdBQU07QUFDaEYsc0JBQU0sT0FBTyxVQUFVO0FBQ3ZCLHNCQUFNLFVBQVUsUUFBUSxNQUFPLE1BQU0sU0FBVTtBQUMvQyxzQkFBTSxPQUFPO0FBQUEsY0FDZDtBQUNBLHFCQUFPO0FBQUEsWUFDUjtBQUFBLFVBQ0Q7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLEdBQUcsT0FBUTtBQUFBLFVBRWpCLElBQUksU0FBVSxPQUFPLFVBQVUsTUFBTVEsS0FBSztBQUN6QyxtQkFBTyxHQUFJLE1BQU0sT0FBTyxVQUFVLE1BQU1BLEdBQUc7QUFBQSxVQUM1QztBQUFBLFVBQ0EsS0FBSyxTQUFVLE9BQU8sVUFBVSxNQUFNQSxLQUFLO0FBQzFDLG1CQUFPLEdBQUksTUFBTSxPQUFPLFVBQVUsTUFBTUEsS0FBSSxDQUFFO0FBQUEsVUFDL0M7QUFBQSxVQUNBLEtBQUssU0FBVSxPQUFPLFVBQVVBLEtBQUs7QUFDcEMsZ0JBQUksV0FBVztBQUNmLGdCQUFLLFNBQVMsTUFBTSxrQkFBa0IsTUFBTSxXQUFZO0FBR3ZELDBCQUFZLE1BQU07QUFDbEIscUJBQVEsTUFBTSxjQUFlLEVBQUU7QUFBQSxnQkFDOUIsVUFBVSxZQUNULFVBQVUsV0FBVyxNQUFNLFVBQVUsWUFDckMsVUFBVTtBQUFBLGdCQUNYLFVBQVU7QUFBQSxnQkFDVixVQUFVO0FBQUEsY0FDWDtBQUNBLHFCQUFPO0FBQUEsWUFDUjtBQUNBLGdCQUFLLE9BQU8sVUFBVSxVQUFXO0FBR2hDLG1CQUFNLFFBQVEsT0FBUTtBQUNyQixxQkFBSyxJQUFLLE1BQU0sVUFBVSxNQUFPLElBQUssQ0FBRTtBQUFBLGNBQ3pDO0FBQ0EscUJBQU87QUFBQSxZQUNSO0FBQ0EsZ0JBQUssYUFBYSxTQUFTLE9BQU8sYUFBYSxZQUFhO0FBRzNELGNBQUFBLE1BQUs7QUFDTCx5QkFBVztBQUFBLFlBQ1o7QUFDQSxnQkFBS0EsUUFBTyxPQUFRO0FBQ25CLGNBQUFBLE1BQUs7QUFBQSxZQUNOO0FBQ0EsbUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIscUJBQU8sTUFBTSxPQUFRLE1BQU0sT0FBT0EsS0FBSSxRQUFTO0FBQUEsWUFDaEQsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxRQUNELENBQUU7QUFHRixZQUtDLGVBQWUseUJBR2YsV0FBVyxxQ0FFWCxlQUFlO0FBR2hCLGlCQUFTLG1CQUFvQixNQUFNLFNBQVU7QUFDNUMsY0FBSyxTQUFVLE1BQU0sT0FBUSxLQUM1QixTQUFVLFFBQVEsYUFBYSxLQUFLLFVBQVUsUUFBUSxZQUFZLElBQUssR0FBSTtBQUUzRSxtQkFBTyxPQUFRLElBQUssRUFBRSxTQUFVLE9BQVEsRUFBRyxDQUFFLEtBQUs7QUFBQSxVQUNuRDtBQUVBLGlCQUFPO0FBQUEsUUFDUjtBQUdBLGlCQUFTLGNBQWUsTUFBTztBQUM5QixlQUFLLFFBQVMsS0FBSyxhQUFjLE1BQU8sTUFBTSxRQUFTLE1BQU0sS0FBSztBQUNsRSxpQkFBTztBQUFBLFFBQ1I7QUFDQSxpQkFBUyxjQUFlLE1BQU87QUFDOUIsZUFBTyxLQUFLLFFBQVEsSUFBSyxNQUFPLEdBQUcsQ0FBRSxNQUFNLFNBQVU7QUFDcEQsaUJBQUssT0FBTyxLQUFLLEtBQUssTUFBTyxDQUFFO0FBQUEsVUFDaEMsT0FBTztBQUNOLGlCQUFLLGdCQUFpQixNQUFPO0FBQUEsVUFDOUI7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxpQkFBUyxlQUFnQixLQUFLLE1BQU87QUFDcEMsY0FBSSxHQUFHLEdBQUcsTUFBTSxVQUFVLFVBQVUsVUFBVTtBQUU5QyxjQUFLLEtBQUssYUFBYSxHQUFJO0FBQzFCO0FBQUEsVUFDRDtBQUdBLGNBQUssU0FBUyxRQUFTLEdBQUksR0FBSTtBQUM5Qix1QkFBVyxTQUFTLElBQUssR0FBSTtBQUM3QixxQkFBUyxTQUFTO0FBRWxCLGdCQUFLLFFBQVM7QUFDYix1QkFBUyxPQUFRLE1BQU0sZUFBZ0I7QUFFdkMsbUJBQU0sUUFBUSxRQUFTO0FBQ3RCLHFCQUFNLElBQUksR0FBRyxJQUFJLE9BQVEsSUFBSyxFQUFFLFFBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEQseUJBQU8sTUFBTSxJQUFLLE1BQU0sTUFBTSxPQUFRLElBQUssRUFBRyxDQUFFLENBQUU7QUFBQSxnQkFDbkQ7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFHQSxjQUFLLFNBQVMsUUFBUyxHQUFJLEdBQUk7QUFDOUIsdUJBQVcsU0FBUyxPQUFRLEdBQUk7QUFDaEMsdUJBQVcsT0FBTyxPQUFRLENBQUMsR0FBRyxRQUFTO0FBRXZDLHFCQUFTLElBQUssTUFBTSxRQUFTO0FBQUEsVUFDOUI7QUFBQSxRQUNEO0FBR0EsaUJBQVMsU0FBVSxLQUFLLE1BQU87QUFDOUIsY0FBSWEsWUFBVyxLQUFLLFNBQVMsWUFBWTtBQUd6QyxjQUFLQSxjQUFhLFdBQVcsZUFBZSxLQUFNLElBQUksSUFBSyxHQUFJO0FBQzlELGlCQUFLLFVBQVUsSUFBSTtBQUFBLFVBR3BCLFdBQVlBLGNBQWEsV0FBV0EsY0FBYSxZQUFhO0FBQzdELGlCQUFLLGVBQWUsSUFBSTtBQUFBLFVBQ3pCO0FBQUEsUUFDRDtBQUVBLGlCQUFTLFNBQVUsWUFBWSxNQUFNLFVBQVUsU0FBVTtBQUd4RCxpQkFBTyxLQUFNLElBQUs7QUFFbEIsY0FBSSxVQUFVLE9BQU8sU0FBUyxZQUFZLE1BQU1yQixNQUMvQyxJQUFJLEdBQ0osSUFBSSxXQUFXLFFBQ2YsV0FBVyxJQUFJLEdBQ2YsUUFBUSxLQUFNLENBQUUsR0FDaEIsa0JBQWtCLFdBQVksS0FBTTtBQUdyQyxjQUFLLG1CQUNELElBQUksS0FBSyxPQUFPLFVBQVUsWUFDM0IsQ0FBQyxRQUFRLGNBQWMsU0FBUyxLQUFNLEtBQU0sR0FBTTtBQUNwRCxtQkFBTyxXQUFXLEtBQU0sU0FBVSxPQUFRO0FBQ3pDLGtCQUFJZ0IsUUFBTyxXQUFXLEdBQUksS0FBTTtBQUNoQyxrQkFBSyxpQkFBa0I7QUFDdEIscUJBQU0sQ0FBRSxJQUFJLE1BQU0sS0FBTSxNQUFNLE9BQU9BLE1BQUssS0FBSyxDQUFFO0FBQUEsY0FDbEQ7QUFDQSx1QkFBVUEsT0FBTSxNQUFNLFVBQVUsT0FBUTtBQUFBLFlBQ3pDLENBQUU7QUFBQSxVQUNIO0FBRUEsY0FBSyxHQUFJO0FBQ1IsdUJBQVcsY0FBZSxNQUFNLFdBQVksQ0FBRSxFQUFFLGVBQWUsT0FBTyxZQUFZLE9BQVE7QUFDMUYsb0JBQVEsU0FBUztBQUVqQixnQkFBSyxTQUFTLFdBQVcsV0FBVyxHQUFJO0FBQ3ZDLHlCQUFXO0FBQUEsWUFDWjtBQUdBLGdCQUFLLFNBQVMsU0FBVTtBQUN2Qix3QkFBVSxPQUFPLElBQUssT0FBUSxVQUFVLFFBQVMsR0FBRyxhQUFjO0FBQ2xFLDJCQUFhLFFBQVE7QUFLckIscUJBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEIsdUJBQU87QUFFUCxvQkFBSyxNQUFNLFVBQVc7QUFDckIseUJBQU8sT0FBTyxNQUFPLE1BQU0sTUFBTSxJQUFLO0FBR3RDLHNCQUFLLFlBQWE7QUFJakIsMkJBQU8sTUFBTyxTQUFTLE9BQVEsTUFBTSxRQUFTLENBQUU7QUFBQSxrQkFDakQ7QUFBQSxnQkFDRDtBQUVBLHlCQUFTLEtBQU0sV0FBWSxDQUFFLEdBQUcsTUFBTSxDQUFFO0FBQUEsY0FDekM7QUFFQSxrQkFBSyxZQUFhO0FBQ2pCLGdCQUFBaEIsT0FBTSxRQUFTLFFBQVEsU0FBUyxDQUFFLEVBQUU7QUFHcEMsdUJBQU8sSUFBSyxTQUFTLGFBQWM7QUFHbkMscUJBQU0sSUFBSSxHQUFHLElBQUksWUFBWSxLQUFNO0FBQ2xDLHlCQUFPLFFBQVMsQ0FBRTtBQUNsQixzQkFBSyxZQUFZLEtBQU0sS0FBSyxRQUFRLEVBQUcsS0FDdEMsQ0FBQyxTQUFTLE9BQVEsTUFBTSxZQUFhLEtBQ3JDLE9BQU8sU0FBVUEsTUFBSyxJQUFLLEdBQUk7QUFFL0Isd0JBQUssS0FBSyxRQUFTLEtBQUssUUFBUSxJQUFLLFlBQVksTUFBTyxVQUFXO0FBR2xFLDBCQUFLLE9BQU8sWUFBWSxDQUFDLEtBQUssVUFBVztBQUN4QywrQkFBTyxTQUFVLEtBQUssS0FBSztBQUFBLDBCQUMxQixPQUFPLEtBQUssU0FBUyxLQUFLLGFBQWMsT0FBUTtBQUFBLHdCQUNqRCxHQUFHQSxJQUFJO0FBQUEsc0JBQ1I7QUFBQSxvQkFDRCxPQUFPO0FBT04sOEJBQVMsS0FBSyxZQUFZLFFBQVMsY0FBYyxFQUFHLEdBQUcsTUFBTUEsSUFBSTtBQUFBLG9CQUNsRTtBQUFBLGtCQUNEO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxpQkFBUyxPQUFRLE1BQU0sVUFBVSxVQUFXO0FBQzNDLGNBQUksTUFDSCxRQUFRLFdBQVcsT0FBTyxPQUFRLFVBQVUsSUFBSyxJQUFJLE1BQ3JELElBQUk7QUFFTCxrQkFBVSxPQUFPLE1BQU8sQ0FBRSxNQUFPLE1BQU0sS0FBTTtBQUM1QyxnQkFBSyxDQUFDLFlBQVksS0FBSyxhQUFhLEdBQUk7QUFDdkMscUJBQU8sVUFBVyxPQUFRLElBQUssQ0FBRTtBQUFBLFlBQ2xDO0FBRUEsZ0JBQUssS0FBSyxZQUFhO0FBQ3RCLGtCQUFLLFlBQVksV0FBWSxJQUFLLEdBQUk7QUFDckMsOEJBQWUsT0FBUSxNQUFNLFFBQVMsQ0FBRTtBQUFBLGNBQ3pDO0FBQ0EsbUJBQUssV0FBVyxZQUFhLElBQUs7QUFBQSxZQUNuQztBQUFBLFVBQ0Q7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxlQUFPLE9BQVE7QUFBQSxVQUNkLGVBQWUsU0FBVSxNQUFPO0FBQy9CLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFVBRUEsT0FBTyxTQUFVLE1BQU0sZUFBZSxtQkFBb0I7QUFDekQsZ0JBQUksR0FBRyxHQUFHLGFBQWEsY0FDdEJFLFNBQVEsS0FBSyxVQUFXLElBQUssR0FDN0IsU0FBUyxXQUFZLElBQUs7QUFHM0IsZ0JBQUssQ0FBQyxRQUFRLG1CQUFvQixLQUFLLGFBQWEsS0FBSyxLQUFLLGFBQWEsT0FDekUsQ0FBQyxPQUFPLFNBQVUsSUFBSyxHQUFJO0FBSTVCLDZCQUFlLE9BQVFBLE1BQU07QUFDN0IsNEJBQWMsT0FBUSxJQUFLO0FBRTNCLG1CQUFNLElBQUksR0FBRyxJQUFJLFlBQVksUUFBUSxJQUFJLEdBQUcsS0FBTTtBQUNqRCx5QkFBVSxZQUFhLENBQUUsR0FBRyxhQUFjLENBQUUsQ0FBRTtBQUFBLGNBQy9DO0FBQUEsWUFDRDtBQUdBLGdCQUFLLGVBQWdCO0FBQ3BCLGtCQUFLLG1CQUFvQjtBQUN4Qiw4QkFBYyxlQUFlLE9BQVEsSUFBSztBQUMxQywrQkFBZSxnQkFBZ0IsT0FBUUEsTUFBTTtBQUU3QyxxQkFBTSxJQUFJLEdBQUcsSUFBSSxZQUFZLFFBQVEsSUFBSSxHQUFHLEtBQU07QUFDakQsaUNBQWdCLFlBQWEsQ0FBRSxHQUFHLGFBQWMsQ0FBRSxDQUFFO0FBQUEsZ0JBQ3JEO0FBQUEsY0FDRCxPQUFPO0FBQ04sK0JBQWdCLE1BQU1BLE1BQU07QUFBQSxjQUM3QjtBQUFBLFlBQ0Q7QUFHQSwyQkFBZSxPQUFRQSxRQUFPLFFBQVM7QUFDdkMsZ0JBQUssYUFBYSxTQUFTLEdBQUk7QUFDOUIsNEJBQWUsY0FBYyxDQUFDLFVBQVUsT0FBUSxNQUFNLFFBQVMsQ0FBRTtBQUFBLFlBQ2xFO0FBR0EsbUJBQU9BO0FBQUEsVUFDUjtBQUFBLFVBRUEsV0FBVyxTQUFVLE9BQVE7QUFDNUIsZ0JBQUksTUFBTSxNQUFNLE1BQ2YsVUFBVSxPQUFPLE1BQU0sU0FDdkIsSUFBSTtBQUVMLG9CQUFVLE9BQU8sTUFBTyxDQUFFLE9BQVEsUUFBVyxLQUFNO0FBQ2xELGtCQUFLLFdBQVksSUFBSyxHQUFJO0FBQ3pCLG9CQUFPLE9BQU8sS0FBTSxTQUFTLE9BQVEsR0FBTTtBQUMxQyxzQkFBSyxLQUFLLFFBQVM7QUFDbEIseUJBQU0sUUFBUSxLQUFLLFFBQVM7QUFDM0IsMEJBQUssUUFBUyxJQUFLLEdBQUk7QUFDdEIsK0JBQU8sTUFBTSxPQUFRLE1BQU0sSUFBSztBQUFBLHNCQUdqQyxPQUFPO0FBQ04sK0JBQU8sWUFBYSxNQUFNLE1BQU0sS0FBSyxNQUFPO0FBQUEsc0JBQzdDO0FBQUEsb0JBQ0Q7QUFBQSxrQkFDRDtBQUlBLHVCQUFNLFNBQVMsT0FBUSxJQUFJO0FBQUEsZ0JBQzVCO0FBQ0Esb0JBQUssS0FBTSxTQUFTLE9BQVEsR0FBSTtBQUkvQix1QkFBTSxTQUFTLE9BQVEsSUFBSTtBQUFBLGdCQUM1QjtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFFBQ0QsQ0FBRTtBQUVGLGVBQU8sR0FBRyxPQUFRO0FBQUEsVUFDakIsUUFBUSxTQUFVLFVBQVc7QUFDNUIsbUJBQU8sT0FBUSxNQUFNLFVBQVUsSUFBSztBQUFBLFVBQ3JDO0FBQUEsVUFFQSxRQUFRLFNBQVUsVUFBVztBQUM1QixtQkFBTyxPQUFRLE1BQU0sUUFBUztBQUFBLFVBQy9CO0FBQUEsVUFFQSxNQUFNLFNBQVUsT0FBUTtBQUN2QixtQkFBTyxPQUFRLE1BQU0sU0FBVWUsUUFBUTtBQUN0QyxxQkFBT0EsV0FBVSxTQUNoQixPQUFPLEtBQU0sSUFBSyxJQUNsQixLQUFLLE1BQU0sRUFBRSxLQUFNLFdBQVc7QUFDN0Isb0JBQUssS0FBSyxhQUFhLEtBQUssS0FBSyxhQUFhLE1BQU0sS0FBSyxhQUFhLEdBQUk7QUFDekUsdUJBQUssY0FBY0E7QUFBQSxnQkFDcEI7QUFBQSxjQUNELENBQUU7QUFBQSxZQUNKLEdBQUcsTUFBTSxPQUFPLFVBQVUsTUFBTztBQUFBLFVBQ2xDO0FBQUEsVUFFQSxRQUFRLFdBQVc7QUFDbEIsbUJBQU8sU0FBVSxNQUFNLFdBQVcsU0FBVSxNQUFPO0FBQ2xELGtCQUFLLEtBQUssYUFBYSxLQUFLLEtBQUssYUFBYSxNQUFNLEtBQUssYUFBYSxHQUFJO0FBQ3pFLG9CQUFJLFNBQVMsbUJBQW9CLE1BQU0sSUFBSztBQUM1Qyx1QkFBTyxZQUFhLElBQUs7QUFBQSxjQUMxQjtBQUFBLFlBQ0QsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUVBLFNBQVMsV0FBVztBQUNuQixtQkFBTyxTQUFVLE1BQU0sV0FBVyxTQUFVLE1BQU87QUFDbEQsa0JBQUssS0FBSyxhQUFhLEtBQUssS0FBSyxhQUFhLE1BQU0sS0FBSyxhQUFhLEdBQUk7QUFDekUsb0JBQUksU0FBUyxtQkFBb0IsTUFBTSxJQUFLO0FBQzVDLHVCQUFPLGFBQWMsTUFBTSxPQUFPLFVBQVc7QUFBQSxjQUM5QztBQUFBLFlBQ0QsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUVBLFFBQVEsV0FBVztBQUNsQixtQkFBTyxTQUFVLE1BQU0sV0FBVyxTQUFVLE1BQU87QUFDbEQsa0JBQUssS0FBSyxZQUFhO0FBQ3RCLHFCQUFLLFdBQVcsYUFBYyxNQUFNLElBQUs7QUFBQSxjQUMxQztBQUFBLFlBQ0QsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUVBLE9BQU8sV0FBVztBQUNqQixtQkFBTyxTQUFVLE1BQU0sV0FBVyxTQUFVLE1BQU87QUFDbEQsa0JBQUssS0FBSyxZQUFhO0FBQ3RCLHFCQUFLLFdBQVcsYUFBYyxNQUFNLEtBQUssV0FBWTtBQUFBLGNBQ3REO0FBQUEsWUFDRCxDQUFFO0FBQUEsVUFDSDtBQUFBLFVBRUEsT0FBTyxXQUFXO0FBQ2pCLGdCQUFJLE1BQ0gsSUFBSTtBQUVMLG9CQUFVLE9BQU8sS0FBTSxDQUFFLE1BQU8sTUFBTSxLQUFNO0FBQzNDLGtCQUFLLEtBQUssYUFBYSxHQUFJO0FBRzFCLHVCQUFPLFVBQVcsT0FBUSxNQUFNLEtBQU0sQ0FBRTtBQUd4QyxxQkFBSyxjQUFjO0FBQUEsY0FDcEI7QUFBQSxZQUNEO0FBRUEsbUJBQU87QUFBQSxVQUNSO0FBQUEsVUFFQSxPQUFPLFNBQVUsZUFBZSxtQkFBb0I7QUFDbkQsNEJBQWdCLGlCQUFpQixPQUFPLFFBQVE7QUFDaEQsZ0NBQW9CLHFCQUFxQixPQUFPLGdCQUFnQjtBQUVoRSxtQkFBTyxLQUFLLElBQUssV0FBVztBQUMzQixxQkFBTyxPQUFPLE1BQU8sTUFBTSxlQUFlLGlCQUFrQjtBQUFBLFlBQzdELENBQUU7QUFBQSxVQUNIO0FBQUEsVUFFQSxNQUFNLFNBQVUsT0FBUTtBQUN2QixtQkFBTyxPQUFRLE1BQU0sU0FBVUEsUUFBUTtBQUN0QyxrQkFBSSxPQUFPLEtBQU0sQ0FBRSxLQUFLLENBQUMsR0FDeEIsSUFBSSxHQUNKLElBQUksS0FBSztBQUVWLGtCQUFLQSxXQUFVLFVBQWEsS0FBSyxhQUFhLEdBQUk7QUFDakQsdUJBQU8sS0FBSztBQUFBLGNBQ2I7QUFHQSxrQkFBSyxPQUFPQSxXQUFVLFlBQVksQ0FBQyxhQUFhLEtBQU1BLE1BQU0sS0FDM0QsQ0FBQyxTQUFXLFNBQVMsS0FBTUEsTUFBTSxLQUFLLENBQUUsSUFBSSxFQUFHLEdBQUssQ0FBRSxFQUFFLFlBQVksQ0FBRSxHQUFJO0FBRTFFLGdCQUFBQSxTQUFRLE9BQU8sY0FBZUEsTUFBTTtBQUVwQyxvQkFBSTtBQUNILHlCQUFRLElBQUksR0FBRyxLQUFNO0FBQ3BCLDJCQUFPLEtBQU0sQ0FBRSxLQUFLLENBQUM7QUFHckIsd0JBQUssS0FBSyxhQUFhLEdBQUk7QUFDMUIsNkJBQU8sVUFBVyxPQUFRLE1BQU0sS0FBTSxDQUFFO0FBQ3hDLDJCQUFLLFlBQVlBO0FBQUEsb0JBQ2xCO0FBQUEsa0JBQ0Q7QUFFQSx5QkFBTztBQUFBLGdCQUdSLFNBQVUsR0FBSTtBQUFBLGdCQUFDO0FBQUEsY0FDaEI7QUFFQSxrQkFBSyxNQUFPO0FBQ1gscUJBQUssTUFBTSxFQUFFLE9BQVFBLE1BQU07QUFBQSxjQUM1QjtBQUFBLFlBQ0QsR0FBRyxNQUFNLE9BQU8sVUFBVSxNQUFPO0FBQUEsVUFDbEM7QUFBQSxVQUVBLGFBQWEsV0FBVztBQUN2QixnQkFBSSxVQUFVLENBQUM7QUFHZixtQkFBTyxTQUFVLE1BQU0sV0FBVyxTQUFVLE1BQU87QUFDbEQsa0JBQUksU0FBUyxLQUFLO0FBRWxCLGtCQUFLLE9BQU8sUUFBUyxNQUFNLE9BQVEsSUFBSSxHQUFJO0FBQzFDLHVCQUFPLFVBQVcsT0FBUSxJQUFLLENBQUU7QUFDakMsb0JBQUssUUFBUztBQUNiLHlCQUFPLGFBQWMsTUFBTSxJQUFLO0FBQUEsZ0JBQ2pDO0FBQUEsY0FDRDtBQUFBLFlBR0QsR0FBRyxPQUFRO0FBQUEsVUFDWjtBQUFBLFFBQ0QsQ0FBRTtBQUVGLGVBQU8sS0FBTTtBQUFBLFVBQ1osVUFBVTtBQUFBLFVBQ1YsV0FBVztBQUFBLFVBQ1gsY0FBYztBQUFBLFVBQ2QsYUFBYTtBQUFBLFVBQ2IsWUFBWTtBQUFBLFFBQ2IsR0FBRyxTQUFVLE1BQU0sVUFBVztBQUM3QixpQkFBTyxHQUFJLElBQUssSUFBSSxTQUFVLFVBQVc7QUFDeEMsZ0JBQUksT0FDSCxNQUFNLENBQUMsR0FDUCxTQUFTLE9BQVEsUUFBUyxHQUMxQixPQUFPLE9BQU8sU0FBUyxHQUN2QixJQUFJO0FBRUwsbUJBQVEsS0FBSyxNQUFNLEtBQU07QUFDeEIsc0JBQVEsTUFBTSxPQUFPLE9BQU8sS0FBSyxNQUFPLElBQUs7QUFDN0MscUJBQVEsT0FBUSxDQUFFLENBQUUsRUFBRyxRQUFTLEVBQUcsS0FBTTtBQUl6QyxtQkFBSyxNQUFPLEtBQUssTUFBTSxJQUFJLENBQUU7QUFBQSxZQUM5QjtBQUVBLG1CQUFPLEtBQUssVUFBVyxHQUFJO0FBQUEsVUFDNUI7QUFBQSxRQUNELENBQUU7QUFDRixZQUFJLFlBQVksSUFBSSxPQUFRLE9BQU8sT0FBTyxtQkFBbUIsR0FBSTtBQUVqRSxZQUFJLGNBQWM7QUFHbEIsWUFBSSxZQUFZLFNBQVUsTUFBTztBQUsvQixjQUFJLE9BQU8sS0FBSyxjQUFjO0FBRTlCLGNBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFTO0FBQzVCLG1CQUFPckI7QUFBQSxVQUNSO0FBRUEsaUJBQU8sS0FBSyxpQkFBa0IsSUFBSztBQUFBLFFBQ3BDO0FBRUQsWUFBSSxPQUFPLFNBQVUsTUFBTSxTQUFTLFVBQVc7QUFDOUMsY0FBSSxLQUFLLE1BQ1IsTUFBTSxDQUFDO0FBR1IsZUFBTSxRQUFRLFNBQVU7QUFDdkIsZ0JBQUssSUFBSyxJQUFJLEtBQUssTUFBTyxJQUFLO0FBQy9CLGlCQUFLLE1BQU8sSUFBSyxJQUFJLFFBQVMsSUFBSztBQUFBLFVBQ3BDO0FBRUEsZ0JBQU0sU0FBUyxLQUFNLElBQUs7QUFHMUIsZUFBTSxRQUFRLFNBQVU7QUFDdkIsaUJBQUssTUFBTyxJQUFLLElBQUksSUFBSyxJQUFLO0FBQUEsVUFDaEM7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFHQSxZQUFJLFlBQVksSUFBSSxPQUFRLFVBQVUsS0FBTSxHQUFJLEdBQUcsR0FBSTtBQUl2RCxTQUFFLFdBQVc7QUFJWixtQkFBUyxvQkFBb0I7QUFHNUIsZ0JBQUssQ0FBQyxLQUFNO0FBQ1g7QUFBQSxZQUNEO0FBRUEsc0JBQVUsTUFBTSxVQUFVO0FBRTFCLGdCQUFJLE1BQU0sVUFDVDtBQUdELDRCQUFnQixZQUFhLFNBQVUsRUFBRSxZQUFhLEdBQUk7QUFFMUQsZ0JBQUksV0FBV0EsUUFBTyxpQkFBa0IsR0FBSTtBQUM1QywrQkFBbUIsU0FBUyxRQUFRO0FBR3BDLG9DQUF3QixtQkFBb0IsU0FBUyxVQUFXLE1BQU07QUFJdEUsZ0JBQUksTUFBTSxRQUFRO0FBQ2xCLGdDQUFvQixtQkFBb0IsU0FBUyxLQUFNLE1BQU07QUFJN0QsbUNBQXVCLG1CQUFvQixTQUFTLEtBQU0sTUFBTTtBQU1oRSxnQkFBSSxNQUFNLFdBQVc7QUFDckIsK0JBQW1CLG1CQUFvQixJQUFJLGNBQWMsQ0FBRSxNQUFNO0FBRWpFLDRCQUFnQixZQUFhLFNBQVU7QUFJdkMsa0JBQU07QUFBQSxVQUNQO0FBRUEsbUJBQVMsbUJBQW9CLFNBQVU7QUFDdEMsbUJBQU8sS0FBSyxNQUFPLFdBQVksT0FBUSxDQUFFO0FBQUEsVUFDMUM7QUFFQSxjQUFJLGtCQUFrQixzQkFBc0Isa0JBQWtCLG1CQUM3RCx5QkFBeUIsdUJBQ3pCLFlBQVlHLFVBQVMsY0FBZSxLQUFNLEdBQzFDLE1BQU1BLFVBQVMsY0FBZSxLQUFNO0FBR3JDLGNBQUssQ0FBQyxJQUFJLE9BQVE7QUFDakI7QUFBQSxVQUNEO0FBSUEsY0FBSSxNQUFNLGlCQUFpQjtBQUMzQixjQUFJLFVBQVcsSUFBSyxFQUFFLE1BQU0saUJBQWlCO0FBQzdDLGtCQUFRLGtCQUFrQixJQUFJLE1BQU0sbUJBQW1CO0FBRXZELGlCQUFPLE9BQVEsU0FBUztBQUFBLFlBQ3ZCLG1CQUFtQixXQUFXO0FBQzdCLGdDQUFrQjtBQUNsQixxQkFBTztBQUFBLFlBQ1I7QUFBQSxZQUNBLGdCQUFnQixXQUFXO0FBQzFCLGdDQUFrQjtBQUNsQixxQkFBTztBQUFBLFlBQ1I7QUFBQSxZQUNBLGVBQWUsV0FBVztBQUN6QixnQ0FBa0I7QUFDbEIscUJBQU87QUFBQSxZQUNSO0FBQUEsWUFDQSxvQkFBb0IsV0FBVztBQUM5QixnQ0FBa0I7QUFDbEIscUJBQU87QUFBQSxZQUNSO0FBQUEsWUFDQSxlQUFlLFdBQVc7QUFDekIsZ0NBQWtCO0FBQ2xCLHFCQUFPO0FBQUEsWUFDUjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBV0Esc0JBQXNCLFdBQVc7QUFDaEMsa0JBQUksT0FBTyxJQUFJLFNBQVM7QUFDeEIsa0JBQUssMkJBQTJCLE1BQU87QUFDdEMsd0JBQVFBLFVBQVMsY0FBZSxPQUFRO0FBQ3hDLHFCQUFLQSxVQUFTLGNBQWUsSUFBSztBQUNsQywwQkFBVUEsVUFBUyxjQUFlLEtBQU07QUFFeEMsc0JBQU0sTUFBTSxVQUFVO0FBQ3RCLG1CQUFHLE1BQU0sVUFBVTtBQUtuQixtQkFBRyxNQUFNLFNBQVM7QUFDbEIsd0JBQVEsTUFBTSxTQUFTO0FBUXZCLHdCQUFRLE1BQU0sVUFBVTtBQUV4QixnQ0FDRSxZQUFhLEtBQU0sRUFDbkIsWUFBYSxFQUFHLEVBQ2hCLFlBQWEsT0FBUTtBQUV2QiwwQkFBVUgsUUFBTyxpQkFBa0IsRUFBRztBQUN0QywwQ0FBNEIsU0FBVSxRQUFRLFFBQVEsRUFBRyxJQUN4RCxTQUFVLFFBQVEsZ0JBQWdCLEVBQUcsSUFDckMsU0FBVSxRQUFRLG1CQUFtQixFQUFHLE1BQVEsR0FBRztBQUVwRCxnQ0FBZ0IsWUFBYSxLQUFNO0FBQUEsY0FDcEM7QUFDQSxxQkFBTztBQUFBLFlBQ1I7QUFBQSxVQUNELENBQUU7QUFBQSxRQUNILEdBQUk7QUFHSixpQkFBUyxPQUFRLE1BQU0sTUFBTSxVQUFXO0FBQ3ZDLGNBQUksT0FBTyxVQUFVLFVBQVUsS0FDOUIsZUFBZSxZQUFZLEtBQU0sSUFBSyxHQU10QyxRQUFRLEtBQUs7QUFFZCxxQkFBVyxZQUFZLFVBQVcsSUFBSztBQUt2QyxjQUFLLFVBQVc7QUFXZixrQkFBTSxTQUFTLGlCQUFrQixJQUFLLEtBQUssU0FBVSxJQUFLO0FBRTFELGdCQUFLLGdCQUFnQixLQUFNO0FBa0IxQixvQkFBTSxJQUFJLFFBQVMsVUFBVSxJQUFLLEtBQUs7QUFBQSxZQUN4QztBQUVBLGdCQUFLLFFBQVEsTUFBTSxDQUFDLFdBQVksSUFBSyxHQUFJO0FBQ3hDLG9CQUFNLE9BQU8sTUFBTyxNQUFNLElBQUs7QUFBQSxZQUNoQztBQU9BLGdCQUFLLENBQUMsUUFBUSxlQUFlLEtBQUssVUFBVSxLQUFNLEdBQUksS0FBSyxVQUFVLEtBQU0sSUFBSyxHQUFJO0FBR25GLHNCQUFRLE1BQU07QUFDZCx5QkFBVyxNQUFNO0FBQ2pCLHlCQUFXLE1BQU07QUFHakIsb0JBQU0sV0FBVyxNQUFNLFdBQVcsTUFBTSxRQUFRO0FBQ2hELG9CQUFNLFNBQVM7QUFHZixvQkFBTSxRQUFRO0FBQ2Qsb0JBQU0sV0FBVztBQUNqQixvQkFBTSxXQUFXO0FBQUEsWUFDbEI7QUFBQSxVQUNEO0FBRUEsaUJBQU8sUUFBUTtBQUFBO0FBQUE7QUFBQSxZQUlkLE1BQU07QUFBQSxjQUNOO0FBQUEsUUFDRjtBQUdBLGlCQUFTLGFBQWMsYUFBYSxRQUFTO0FBRzVDLGlCQUFPO0FBQUEsWUFDTixLQUFLLFdBQVc7QUFDZixrQkFBSyxZQUFZLEdBQUk7QUFJcEIsdUJBQU8sS0FBSztBQUNaO0FBQUEsY0FDRDtBQUdBLHNCQUFTLEtBQUssTUFBTSxRQUFTLE1BQU8sTUFBTSxTQUFVO0FBQUEsWUFDckQ7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUdBLFlBQUksY0FBYyxDQUFFLFVBQVUsT0FBTyxJQUFLLEdBQ3pDLGFBQWFHLFVBQVMsY0FBZSxLQUFNLEVBQUUsT0FDN0MsY0FBYyxDQUFDO0FBR2hCLGlCQUFTLGVBQWdCLE1BQU87QUFHL0IsY0FBSSxVQUFVLEtBQU0sQ0FBRSxFQUFFLFlBQVksSUFBSSxLQUFLLE1BQU8sQ0FBRSxHQUNyRCxJQUFJLFlBQVk7QUFFakIsaUJBQVEsS0FBTTtBQUNiLG1CQUFPLFlBQWEsQ0FBRSxJQUFJO0FBQzFCLGdCQUFLLFFBQVEsWUFBYTtBQUN6QixxQkFBTztBQUFBLFlBQ1I7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUdBLGlCQUFTLGNBQWUsTUFBTztBQUM5QixjQUFJLFFBQVEsT0FBTyxTQUFVLElBQUssS0FBSyxZQUFhLElBQUs7QUFFekQsY0FBSyxPQUFRO0FBQ1osbUJBQU87QUFBQSxVQUNSO0FBQ0EsY0FBSyxRQUFRLFlBQWE7QUFDekIsbUJBQU87QUFBQSxVQUNSO0FBQ0EsaUJBQU8sWUFBYSxJQUFLLElBQUksZUFBZ0IsSUFBSyxLQUFLO0FBQUEsUUFDeEQ7QUFHQSxZQUtDLGVBQWUsNkJBQ2YsVUFBVSxFQUFFLFVBQVUsWUFBWSxZQUFZLFVBQVUsU0FBUyxRQUFRLEdBQ3pFLHFCQUFxQjtBQUFBLFVBQ3BCLGVBQWU7QUFBQSxVQUNmLFlBQVk7QUFBQSxRQUNiO0FBRUQsaUJBQVMsa0JBQW1CLE9BQU8sT0FBTyxVQUFXO0FBSXBELGNBQUksVUFBVSxRQUFRLEtBQU0sS0FBTTtBQUNsQyxpQkFBTztBQUFBO0FBQUEsWUFHTixLQUFLLElBQUssR0FBRyxRQUFTLENBQUUsS0FBTSxZQUFZLEVBQUksS0FBTSxRQUFTLENBQUUsS0FBSztBQUFBLGNBQ3BFO0FBQUEsUUFDRjtBQUVBLGlCQUFTLG1CQUFvQixNQUFNLFdBQVcsS0FBSyxhQUFhLFFBQVEsYUFBYztBQUNyRixjQUFJLElBQUksY0FBYyxVQUFVLElBQUksR0FDbkMsUUFBUSxHQUNSLFFBQVEsR0FDUixjQUFjO0FBR2YsY0FBSyxTQUFVLGNBQWMsV0FBVyxZQUFjO0FBQ3JELG1CQUFPO0FBQUEsVUFDUjtBQUVBLGlCQUFRLElBQUksR0FBRyxLQUFLLEdBQUk7QUFLdkIsZ0JBQUssUUFBUSxVQUFXO0FBQ3ZCLDZCQUFlLE9BQU8sSUFBSyxNQUFNLE1BQU0sVUFBVyxDQUFFLEdBQUcsTUFBTSxNQUFPO0FBQUEsWUFDckU7QUFHQSxnQkFBSyxDQUFDLGFBQWM7QUFHbkIsdUJBQVMsT0FBTyxJQUFLLE1BQU0sWUFBWSxVQUFXLENBQUUsR0FBRyxNQUFNLE1BQU87QUFHcEUsa0JBQUssUUFBUSxXQUFZO0FBQ3hCLHlCQUFTLE9BQU8sSUFBSyxNQUFNLFdBQVcsVUFBVyxDQUFFLElBQUksU0FBUyxNQUFNLE1BQU87QUFBQSxjQUc5RSxPQUFPO0FBQ04seUJBQVMsT0FBTyxJQUFLLE1BQU0sV0FBVyxVQUFXLENBQUUsSUFBSSxTQUFTLE1BQU0sTUFBTztBQUFBLGNBQzlFO0FBQUEsWUFJRCxPQUFPO0FBR04sa0JBQUssUUFBUSxXQUFZO0FBQ3hCLHlCQUFTLE9BQU8sSUFBSyxNQUFNLFlBQVksVUFBVyxDQUFFLEdBQUcsTUFBTSxNQUFPO0FBQUEsY0FDckU7QUFHQSxrQkFBSyxRQUFRLFVBQVc7QUFDdkIseUJBQVMsT0FBTyxJQUFLLE1BQU0sV0FBVyxVQUFXLENBQUUsSUFBSSxTQUFTLE1BQU0sTUFBTztBQUFBLGNBQzlFO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFHQSxjQUFLLENBQUMsZUFBZSxlQUFlLEdBQUk7QUFJdkMscUJBQVMsS0FBSyxJQUFLLEdBQUcsS0FBSztBQUFBLGNBQzFCLEtBQU0sV0FBVyxVQUFXLENBQUUsRUFBRSxZQUFZLElBQUksVUFBVSxNQUFPLENBQUUsQ0FBRSxJQUNyRSxjQUNBLFFBQ0EsUUFDQTtBQUFBO0FBQUE7QUFBQSxZQUlELENBQUUsS0FBSztBQUFBLFVBQ1I7QUFFQSxpQkFBTyxRQUFRO0FBQUEsUUFDaEI7QUFFQSxpQkFBUyxpQkFBa0IsTUFBTSxXQUFXLE9BQVE7QUFHbkQsY0FBSSxTQUFTLFVBQVcsSUFBSyxHQUk1QixrQkFBa0IsQ0FBQyxRQUFRLGtCQUFrQixLQUFLLE9BQ2xELGNBQWMsbUJBQ2IsT0FBTyxJQUFLLE1BQU0sYUFBYSxPQUFPLE1BQU8sTUFBTSxjQUNwRCxtQkFBbUIsYUFFbkIsTUFBTSxPQUFRLE1BQU0sV0FBVyxNQUFPLEdBQ3RDLGFBQWEsV0FBVyxVQUFXLENBQUUsRUFBRSxZQUFZLElBQUksVUFBVSxNQUFPLENBQUU7QUFJM0UsY0FBSyxVQUFVLEtBQU0sR0FBSSxHQUFJO0FBQzVCLGdCQUFLLENBQUMsT0FBUTtBQUNiLHFCQUFPO0FBQUEsWUFDUjtBQUNBLGtCQUFNO0FBQUEsVUFDUDtBQU1BLGVBQU8sQ0FBQyxRQUFRLGtCQUFrQixLQUFLO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFNdEMsQ0FBQyxRQUFRLHFCQUFxQixLQUFLLFNBQVUsTUFBTSxJQUFLO0FBQUE7QUFBQSxVQUl4RCxRQUFRO0FBQUE7QUFBQSxVQUlSLENBQUMsV0FBWSxHQUFJLEtBQUssT0FBTyxJQUFLLE1BQU0sV0FBVyxPQUFPLE1BQU8sTUFBTTtBQUFBLFVBR3ZFLEtBQUssZUFBZSxFQUFFLFFBQVM7QUFFL0IsMEJBQWMsT0FBTyxJQUFLLE1BQU0sYUFBYSxPQUFPLE1BQU8sTUFBTTtBQUtqRSwrQkFBbUIsY0FBYztBQUNqQyxnQkFBSyxrQkFBbUI7QUFDdkIsb0JBQU0sS0FBTSxVQUFXO0FBQUEsWUFDeEI7QUFBQSxVQUNEO0FBR0EsZ0JBQU0sV0FBWSxHQUFJLEtBQUs7QUFHM0IsaUJBQVMsTUFDUjtBQUFBLFlBQ0M7QUFBQSxZQUNBO0FBQUEsWUFDQSxVQUFXLGNBQWMsV0FBVztBQUFBLFlBQ3BDO0FBQUEsWUFDQTtBQUFBO0FBQUEsWUFHQTtBQUFBLFVBQ0QsSUFDRztBQUFBLFFBQ0w7QUFFQSxlQUFPLE9BQVE7QUFBQTtBQUFBO0FBQUEsVUFJZCxVQUFVO0FBQUEsWUFDVCxTQUFTO0FBQUEsY0FDUixLQUFLLFNBQVUsTUFBTSxVQUFXO0FBQy9CLG9CQUFLLFVBQVc7QUFHZixzQkFBSSxNQUFNLE9BQVEsTUFBTSxTQUFVO0FBQ2xDLHlCQUFPLFFBQVEsS0FBSyxNQUFNO0FBQUEsZ0JBQzNCO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUE7QUFBQSxVQUdBLFdBQVc7QUFBQSxZQUNWLHlCQUF5QjtBQUFBLFlBQ3pCLGFBQWE7QUFBQSxZQUNiLGtCQUFrQjtBQUFBLFlBQ2xCLGFBQWE7QUFBQSxZQUNiLFVBQVU7QUFBQSxZQUNWLFlBQVk7QUFBQSxZQUNaLFlBQVk7QUFBQSxZQUNaLFVBQVU7QUFBQSxZQUNWLFlBQVk7QUFBQSxZQUNaLGVBQWU7QUFBQSxZQUNmLGlCQUFpQjtBQUFBLFlBQ2pCLFNBQVM7QUFBQSxZQUNULFlBQVk7QUFBQSxZQUNaLGNBQWM7QUFBQSxZQUNkLFlBQVk7QUFBQSxZQUNaLFNBQVM7QUFBQSxZQUNULE9BQU87QUFBQSxZQUNQLFNBQVM7QUFBQSxZQUNULE9BQU87QUFBQSxZQUNQLFFBQVE7QUFBQSxZQUNSLFFBQVE7QUFBQSxZQUNSLE1BQU07QUFBQTtBQUFBLFlBR04sYUFBYTtBQUFBLFlBQ2IsY0FBYztBQUFBLFlBQ2QsYUFBYTtBQUFBLFlBQ2Isa0JBQWtCO0FBQUEsWUFDbEIsZUFBZTtBQUFBLFVBQ2hCO0FBQUE7QUFBQTtBQUFBLFVBSUEsVUFBVSxDQUFDO0FBQUE7QUFBQSxVQUdYLE9BQU8sU0FBVSxNQUFNLE1BQU0sT0FBTyxPQUFRO0FBRzNDLGdCQUFLLENBQUMsUUFBUSxLQUFLLGFBQWEsS0FBSyxLQUFLLGFBQWEsS0FBSyxDQUFDLEtBQUssT0FBUTtBQUN6RTtBQUFBLFlBQ0Q7QUFHQSxnQkFBSSxLQUFLLE1BQU0sT0FDZCxXQUFXLFVBQVcsSUFBSyxHQUMzQixlQUFlLFlBQVksS0FBTSxJQUFLLEdBQ3RDLFFBQVEsS0FBSztBQUtkLGdCQUFLLENBQUMsY0FBZTtBQUNwQixxQkFBTyxjQUFlLFFBQVM7QUFBQSxZQUNoQztBQUdBLG9CQUFRLE9BQU8sU0FBVSxJQUFLLEtBQUssT0FBTyxTQUFVLFFBQVM7QUFHN0QsZ0JBQUssVUFBVSxRQUFZO0FBQzFCLHFCQUFPLE9BQU87QUFHZCxrQkFBSyxTQUFTLGFBQWMsTUFBTSxRQUFRLEtBQU0sS0FBTSxNQUFPLElBQUssQ0FBRSxHQUFJO0FBQ3ZFLHdCQUFRLFVBQVcsTUFBTSxNQUFNLEdBQUk7QUFHbkMsdUJBQU87QUFBQSxjQUNSO0FBR0Esa0JBQUssU0FBUyxRQUFRLFVBQVUsT0FBUTtBQUN2QztBQUFBLGNBQ0Q7QUFLQSxrQkFBSyxTQUFTLFlBQVksQ0FBQyxjQUFlO0FBQ3pDLHlCQUFTLE9BQU8sSUFBSyxDQUFFLE1BQU8sT0FBTyxVQUFXLFFBQVMsSUFBSSxLQUFLO0FBQUEsY0FDbkU7QUFHQSxrQkFBSyxDQUFDLFFBQVEsbUJBQW1CLFVBQVUsTUFBTSxLQUFLLFFBQVMsWUFBYSxNQUFNLEdBQUk7QUFDckYsc0JBQU8sSUFBSyxJQUFJO0FBQUEsY0FDakI7QUFHQSxrQkFBSyxDQUFDLFNBQVMsRUFBRyxTQUFTLFdBQ3hCLFFBQVEsTUFBTSxJQUFLLE1BQU0sT0FBTyxLQUFNLE9BQVEsUUFBWTtBQUU1RCxvQkFBSyxjQUFlO0FBQ25CLHdCQUFNLFlBQWEsTUFBTSxLQUFNO0FBQUEsZ0JBQ2hDLE9BQU87QUFDTix3QkFBTyxJQUFLLElBQUk7QUFBQSxnQkFDakI7QUFBQSxjQUNEO0FBQUEsWUFFRCxPQUFPO0FBR04sa0JBQUssU0FBUyxTQUFTLFVBQ3BCLE1BQU0sTUFBTSxJQUFLLE1BQU0sT0FBTyxLQUFNLE9BQVEsUUFBWTtBQUUxRCx1QkFBTztBQUFBLGNBQ1I7QUFHQSxxQkFBTyxNQUFPLElBQUs7QUFBQSxZQUNwQjtBQUFBLFVBQ0Q7QUFBQSxVQUVBLEtBQUssU0FBVSxNQUFNLE1BQU0sT0FBTyxRQUFTO0FBQzFDLGdCQUFJLEtBQUssS0FBSyxPQUNiLFdBQVcsVUFBVyxJQUFLLEdBQzNCLGVBQWUsWUFBWSxLQUFNLElBQUs7QUFLdkMsZ0JBQUssQ0FBQyxjQUFlO0FBQ3BCLHFCQUFPLGNBQWUsUUFBUztBQUFBLFlBQ2hDO0FBR0Esb0JBQVEsT0FBTyxTQUFVLElBQUssS0FBSyxPQUFPLFNBQVUsUUFBUztBQUc3RCxnQkFBSyxTQUFTLFNBQVMsT0FBUTtBQUM5QixvQkFBTSxNQUFNLElBQUssTUFBTSxNQUFNLEtBQU07QUFBQSxZQUNwQztBQUdBLGdCQUFLLFFBQVEsUUFBWTtBQUN4QixvQkFBTSxPQUFRLE1BQU0sTUFBTSxNQUFPO0FBQUEsWUFDbEM7QUFHQSxnQkFBSyxRQUFRLFlBQVksUUFBUSxvQkFBcUI7QUFDckQsb0JBQU0sbUJBQW9CLElBQUs7QUFBQSxZQUNoQztBQUdBLGdCQUFLLFVBQVUsTUFBTSxPQUFRO0FBQzVCLG9CQUFNLFdBQVksR0FBSTtBQUN0QixxQkFBTyxVQUFVLFFBQVEsU0FBVSxHQUFJLElBQUksT0FBTyxJQUFJO0FBQUEsWUFDdkQ7QUFFQSxtQkFBTztBQUFBLFVBQ1I7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLEtBQU0sQ0FBRSxVQUFVLE9BQVEsR0FBRyxTQUFVLElBQUksV0FBWTtBQUM3RCxpQkFBTyxTQUFVLFNBQVUsSUFBSTtBQUFBLFlBQzlCLEtBQUssU0FBVSxNQUFNLFVBQVUsT0FBUTtBQUN0QyxrQkFBSyxVQUFXO0FBSWYsdUJBQU8sYUFBYSxLQUFNLE9BQU8sSUFBSyxNQUFNLFNBQVUsQ0FBRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFRckQsQ0FBQyxLQUFLLGVBQWUsRUFBRSxVQUFVLENBQUMsS0FBSyxzQkFBc0IsRUFBRSxTQUNqRSxLQUFNLE1BQU0sU0FBUyxXQUFXO0FBQy9CLHlCQUFPLGlCQUFrQixNQUFNLFdBQVcsS0FBTTtBQUFBLGdCQUNqRCxDQUFFLElBQ0YsaUJBQWtCLE1BQU0sV0FBVyxLQUFNO0FBQUEsY0FDM0M7QUFBQSxZQUNEO0FBQUEsWUFFQSxLQUFLLFNBQVUsTUFBTSxPQUFPLE9BQVE7QUFDbkMsa0JBQUksU0FDSCxTQUFTLFVBQVcsSUFBSyxHQUl6QixxQkFBcUIsQ0FBQyxRQUFRLGNBQWMsS0FDM0MsT0FBTyxhQUFhLFlBR3JCLGtCQUFrQixzQkFBc0IsT0FDeEMsY0FBYyxtQkFDYixPQUFPLElBQUssTUFBTSxhQUFhLE9BQU8sTUFBTyxNQUFNLGNBQ3BELFdBQVcsUUFDVjtBQUFBLGdCQUNDO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0E7QUFBQSxjQUNELElBQ0E7QUFJRixrQkFBSyxlQUFlLG9CQUFxQjtBQUN4Qyw0QkFBWSxLQUFLO0FBQUEsa0JBQ2hCLEtBQU0sV0FBVyxVQUFXLENBQUUsRUFBRSxZQUFZLElBQUksVUFBVSxNQUFPLENBQUUsQ0FBRSxJQUNyRSxXQUFZLE9BQVEsU0FBVSxDQUFFLElBQ2hDLG1CQUFvQixNQUFNLFdBQVcsVUFBVSxPQUFPLE1BQU8sSUFDN0Q7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFHQSxrQkFBSyxhQUFjLFVBQVUsUUFBUSxLQUFNLEtBQU0sT0FDOUMsUUFBUyxDQUFFLEtBQUssVUFBVyxNQUFPO0FBRXBDLHFCQUFLLE1BQU8sU0FBVSxJQUFJO0FBQzFCLHdCQUFRLE9BQU8sSUFBSyxNQUFNLFNBQVU7QUFBQSxjQUNyQztBQUVBLHFCQUFPLGtCQUFtQixNQUFNLE9BQU8sUUFBUztBQUFBLFlBQ2pEO0FBQUEsVUFDRDtBQUFBLFFBQ0QsQ0FBRTtBQUVGLGVBQU8sU0FBUyxhQUFhO0FBQUEsVUFBYyxRQUFRO0FBQUEsVUFDbEQsU0FBVSxNQUFNLFVBQVc7QUFDMUIsZ0JBQUssVUFBVztBQUNmLHNCQUFTLFdBQVksT0FBUSxNQUFNLFlBQWEsQ0FBRSxLQUNqRCxLQUFLLHNCQUFzQixFQUFFLE9BQzVCLEtBQU0sTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLFdBQVc7QUFDekMsdUJBQU8sS0FBSyxzQkFBc0IsRUFBRTtBQUFBLGNBQ3JDLENBQUUsS0FDQTtBQUFBLFlBQ0w7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUdBLGVBQU8sS0FBTTtBQUFBLFVBQ1osUUFBUTtBQUFBLFVBQ1IsU0FBUztBQUFBLFVBQ1QsUUFBUTtBQUFBLFFBQ1QsR0FBRyxTQUFVLFFBQVEsUUFBUztBQUM3QixpQkFBTyxTQUFVLFNBQVMsTUFBTyxJQUFJO0FBQUEsWUFDcEMsUUFBUSxTQUFVLE9BQVE7QUFDekIsa0JBQUksSUFBSSxHQUNQLFdBQVcsQ0FBQyxHQUdaLFFBQVEsT0FBTyxVQUFVLFdBQVcsTUFBTSxNQUFPLEdBQUksSUFBSSxDQUFFLEtBQU07QUFFbEUscUJBQVEsSUFBSSxHQUFHLEtBQU07QUFDcEIseUJBQVUsU0FBUyxVQUFXLENBQUUsSUFBSSxNQUFPLElBQzFDLE1BQU8sQ0FBRSxLQUFLLE1BQU8sSUFBSSxDQUFFLEtBQUssTUFBTyxDQUFFO0FBQUEsY0FDM0M7QUFFQSxxQkFBTztBQUFBLFlBQ1I7QUFBQSxVQUNEO0FBRUEsY0FBSyxXQUFXLFVBQVc7QUFDMUIsbUJBQU8sU0FBVSxTQUFTLE1BQU8sRUFBRSxNQUFNO0FBQUEsVUFDMUM7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLEdBQUcsT0FBUTtBQUFBLFVBQ2pCLEtBQUssU0FBVSxNQUFNLE9BQVE7QUFDNUIsbUJBQU8sT0FBUSxNQUFNLFNBQVUsTUFBTXVCLE9BQU1MLFFBQVE7QUFDbEQsa0JBQUksUUFBUSxLQUNYLE1BQU0sQ0FBQyxHQUNQLElBQUk7QUFFTCxrQkFBSyxNQUFNLFFBQVNLLEtBQUssR0FBSTtBQUM1Qix5QkFBUyxVQUFXLElBQUs7QUFDekIsc0JBQU1BLE1BQUs7QUFFWCx1QkFBUSxJQUFJLEtBQUssS0FBTTtBQUN0QixzQkFBS0EsTUFBTSxDQUFFLENBQUUsSUFBSSxPQUFPLElBQUssTUFBTUEsTUFBTSxDQUFFLEdBQUcsT0FBTyxNQUFPO0FBQUEsZ0JBQy9EO0FBRUEsdUJBQU87QUFBQSxjQUNSO0FBRUEscUJBQU9MLFdBQVUsU0FDaEIsT0FBTyxNQUFPLE1BQU1LLE9BQU1MLE1BQU0sSUFDaEMsT0FBTyxJQUFLLE1BQU1LLEtBQUs7QUFBQSxZQUN6QixHQUFHLE1BQU0sT0FBTyxVQUFVLFNBQVMsQ0FBRTtBQUFBLFVBQ3RDO0FBQUEsUUFDRCxDQUFFO0FBR0YsaUJBQVMsTUFBTyxNQUFNLFNBQVMsTUFBTUMsTUFBSyxRQUFTO0FBQ2xELGlCQUFPLElBQUksTUFBTSxVQUFVLEtBQU0sTUFBTSxTQUFTLE1BQU1BLE1BQUssTUFBTztBQUFBLFFBQ25FO0FBQ0EsZUFBTyxRQUFRO0FBRWYsY0FBTSxZQUFZO0FBQUEsVUFDakIsYUFBYTtBQUFBLFVBQ2IsTUFBTSxTQUFVLE1BQU0sU0FBUyxNQUFNQSxNQUFLLFFBQVEsTUFBTztBQUN4RCxpQkFBSyxPQUFPO0FBQ1osaUJBQUssT0FBTztBQUNaLGlCQUFLLFNBQVMsVUFBVSxPQUFPLE9BQU87QUFDdEMsaUJBQUssVUFBVTtBQUNmLGlCQUFLLFFBQVEsS0FBSyxNQUFNLEtBQUssSUFBSTtBQUNqQyxpQkFBSyxNQUFNQTtBQUNYLGlCQUFLLE9BQU8sU0FBVSxPQUFPLFVBQVcsSUFBSyxJQUFJLEtBQUs7QUFBQSxVQUN2RDtBQUFBLFVBQ0EsS0FBSyxXQUFXO0FBQ2YsZ0JBQUksUUFBUSxNQUFNLFVBQVcsS0FBSyxJQUFLO0FBRXZDLG1CQUFPLFNBQVMsTUFBTSxNQUNyQixNQUFNLElBQUssSUFBSyxJQUNoQixNQUFNLFVBQVUsU0FBUyxJQUFLLElBQUs7QUFBQSxVQUNyQztBQUFBLFVBQ0EsS0FBSyxTQUFVLFNBQVU7QUFDeEIsZ0JBQUksT0FDSCxRQUFRLE1BQU0sVUFBVyxLQUFLLElBQUs7QUFFcEMsZ0JBQUssS0FBSyxRQUFRLFVBQVc7QUFDNUIsbUJBQUssTUFBTSxRQUFRLE9BQU8sT0FBUSxLQUFLLE1BQU87QUFBQSxnQkFDN0M7QUFBQSxnQkFBUyxLQUFLLFFBQVEsV0FBVztBQUFBLGdCQUFTO0FBQUEsZ0JBQUc7QUFBQSxnQkFBRyxLQUFLLFFBQVE7QUFBQSxjQUM5RDtBQUFBLFlBQ0QsT0FBTztBQUNOLG1CQUFLLE1BQU0sUUFBUTtBQUFBLFlBQ3BCO0FBQ0EsaUJBQUssT0FBUSxLQUFLLE1BQU0sS0FBSyxTQUFVLFFBQVEsS0FBSztBQUVwRCxnQkFBSyxLQUFLLFFBQVEsTUFBTztBQUN4QixtQkFBSyxRQUFRLEtBQUssS0FBTSxLQUFLLE1BQU0sS0FBSyxLQUFLLElBQUs7QUFBQSxZQUNuRDtBQUVBLGdCQUFLLFNBQVMsTUFBTSxLQUFNO0FBQ3pCLG9CQUFNLElBQUssSUFBSztBQUFBLFlBQ2pCLE9BQU87QUFDTixvQkFBTSxVQUFVLFNBQVMsSUFBSyxJQUFLO0FBQUEsWUFDcEM7QUFDQSxtQkFBTztBQUFBLFVBQ1I7QUFBQSxRQUNEO0FBRUEsY0FBTSxVQUFVLEtBQUssWUFBWSxNQUFNO0FBRXZDLGNBQU0sWUFBWTtBQUFBLFVBQ2pCLFVBQVU7QUFBQSxZQUNULEtBQUssU0FBVSxPQUFRO0FBQ3RCLGtCQUFJO0FBSUosa0JBQUssTUFBTSxLQUFLLGFBQWEsS0FDNUIsTUFBTSxLQUFNLE1BQU0sSUFBSyxLQUFLLFFBQVEsTUFBTSxLQUFLLE1BQU8sTUFBTSxJQUFLLEtBQUssTUFBTztBQUM3RSx1QkFBTyxNQUFNLEtBQU0sTUFBTSxJQUFLO0FBQUEsY0FDL0I7QUFNQSx1QkFBUyxPQUFPLElBQUssTUFBTSxNQUFNLE1BQU0sTUFBTSxFQUFHO0FBR2hELHFCQUFPLENBQUMsVUFBVSxXQUFXLFNBQVMsSUFBSTtBQUFBLFlBQzNDO0FBQUEsWUFDQSxLQUFLLFNBQVUsT0FBUTtBQUt0QixrQkFBSyxPQUFPLEdBQUcsS0FBTSxNQUFNLElBQUssR0FBSTtBQUNuQyx1QkFBTyxHQUFHLEtBQU0sTUFBTSxJQUFLLEVBQUcsS0FBTTtBQUFBLGNBQ3JDLFdBQVksTUFBTSxLQUFLLGFBQWEsTUFDbkMsT0FBTyxTQUFVLE1BQU0sSUFBSyxLQUMzQixNQUFNLEtBQUssTUFBTyxjQUFlLE1BQU0sSUFBSyxDQUFFLEtBQUssT0FBUztBQUM3RCx1QkFBTyxNQUFPLE1BQU0sTUFBTSxNQUFNLE1BQU0sTUFBTSxNQUFNLE1BQU0sSUFBSztBQUFBLGNBQzlELE9BQU87QUFDTixzQkFBTSxLQUFNLE1BQU0sSUFBSyxJQUFJLE1BQU07QUFBQSxjQUNsQztBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUlBLGNBQU0sVUFBVSxZQUFZLE1BQU0sVUFBVSxhQUFhO0FBQUEsVUFDeEQsS0FBSyxTQUFVLE9BQVE7QUFDdEIsZ0JBQUssTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQWE7QUFDbkQsb0JBQU0sS0FBTSxNQUFNLElBQUssSUFBSSxNQUFNO0FBQUEsWUFDbEM7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUVBLGVBQU8sU0FBUztBQUFBLFVBQ2YsUUFBUSxTQUFVLEdBQUk7QUFDckIsbUJBQU87QUFBQSxVQUNSO0FBQUEsVUFDQSxPQUFPLFNBQVUsR0FBSTtBQUNwQixtQkFBTyxNQUFNLEtBQUssSUFBSyxJQUFJLEtBQUssRUFBRyxJQUFJO0FBQUEsVUFDeEM7QUFBQSxVQUNBLFVBQVU7QUFBQSxRQUNYO0FBRUEsZUFBTyxLQUFLLE1BQU0sVUFBVTtBQUc1QixlQUFPLEdBQUcsT0FBTyxDQUFDO0FBS2xCLFlBQ0MsT0FBTyxZQUNQLFdBQVcsMEJBQ1gsT0FBTztBQUVSLGlCQUFTLFdBQVc7QUFDbkIsY0FBSyxZQUFhO0FBQ2pCLGdCQUFLeEIsVUFBUyxXQUFXLFNBQVNILFFBQU8sdUJBQXdCO0FBQ2hFLGNBQUFBLFFBQU8sc0JBQXVCLFFBQVM7QUFBQSxZQUN4QyxPQUFPO0FBQ04sY0FBQUEsUUFBTyxXQUFZLFVBQVUsT0FBTyxHQUFHLFFBQVM7QUFBQSxZQUNqRDtBQUVBLG1CQUFPLEdBQUcsS0FBSztBQUFBLFVBQ2hCO0FBQUEsUUFDRDtBQUdBLGlCQUFTLGNBQWM7QUFDdEIsVUFBQUEsUUFBTyxXQUFZLFdBQVc7QUFDN0Isb0JBQVE7QUFBQSxVQUNULENBQUU7QUFDRixpQkFBUyxRQUFRLEtBQUssSUFBSTtBQUFBLFFBQzNCO0FBR0EsaUJBQVMsTUFBTyxNQUFNLGNBQWU7QUFDcEMsY0FBSSxPQUNILElBQUksR0FDSixRQUFRLEVBQUUsUUFBUSxLQUFLO0FBSXhCLHlCQUFlLGVBQWUsSUFBSTtBQUNsQyxpQkFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLGNBQWU7QUFDdEMsb0JBQVEsVUFBVyxDQUFFO0FBQ3JCLGtCQUFPLFdBQVcsS0FBTSxJQUFJLE1BQU8sWUFBWSxLQUFNLElBQUk7QUFBQSxVQUMxRDtBQUVBLGNBQUssY0FBZTtBQUNuQixrQkFBTSxVQUFVLE1BQU0sUUFBUTtBQUFBLFVBQy9CO0FBRUEsaUJBQU87QUFBQSxRQUNSO0FBRUEsaUJBQVMsWUFBYSxPQUFPLE1BQU0sV0FBWTtBQUM5QyxjQUFJLE9BQ0gsY0FBZSxVQUFVLFNBQVUsSUFBSyxLQUFLLENBQUMsR0FBSSxPQUFRLFVBQVUsU0FBVSxHQUFJLENBQUUsR0FDcEYsUUFBUSxHQUNSLFNBQVMsV0FBVztBQUNyQixpQkFBUSxRQUFRLFFBQVEsU0FBVTtBQUNqQyxnQkFBTyxRQUFRLFdBQVksS0FBTSxFQUFFLEtBQU0sV0FBVyxNQUFNLEtBQU0sR0FBTTtBQUdyRSxxQkFBTztBQUFBLFlBQ1I7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUVBLGlCQUFTLGlCQUFrQixNQUFNLE9BQU8sTUFBTztBQUM5QyxjQUFJLE1BQU0sT0FBTyxRQUFRLE9BQU8sU0FBUyxXQUFXLGdCQUFnQixTQUNuRSxRQUFRLFdBQVcsU0FBUyxZQUFZLE9BQ3hDLE9BQU8sTUFDUCxPQUFPLENBQUMsR0FDUixRQUFRLEtBQUssT0FDYixTQUFTLEtBQUssWUFBWSxtQkFBb0IsSUFBSyxHQUNuRCxXQUFXLFNBQVMsSUFBSyxNQUFNLFFBQVM7QUFHekMsY0FBSyxDQUFDLEtBQUssT0FBUTtBQUNsQixvQkFBUSxPQUFPLFlBQWEsTUFBTSxJQUFLO0FBQ3ZDLGdCQUFLLE1BQU0sWUFBWSxNQUFPO0FBQzdCLG9CQUFNLFdBQVc7QUFDakIsd0JBQVUsTUFBTSxNQUFNO0FBQ3RCLG9CQUFNLE1BQU0sT0FBTyxXQUFXO0FBQzdCLG9CQUFLLENBQUMsTUFBTSxVQUFXO0FBQ3RCLDBCQUFRO0FBQUEsZ0JBQ1Q7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUNBLGtCQUFNO0FBRU4saUJBQUssT0FBUSxXQUFXO0FBR3ZCLG1CQUFLLE9BQVEsV0FBVztBQUN2QixzQkFBTTtBQUNOLG9CQUFLLENBQUMsT0FBTyxNQUFPLE1BQU0sSUFBSyxFQUFFLFFBQVM7QUFDekMsd0JBQU0sTUFBTSxLQUFLO0FBQUEsZ0JBQ2xCO0FBQUEsY0FDRCxDQUFFO0FBQUEsWUFDSCxDQUFFO0FBQUEsVUFDSDtBQUdBLGVBQU0sUUFBUSxPQUFRO0FBQ3JCLG9CQUFRLE1BQU8sSUFBSztBQUNwQixnQkFBSyxTQUFTLEtBQU0sS0FBTSxHQUFJO0FBQzdCLHFCQUFPLE1BQU8sSUFBSztBQUNuQix1QkFBUyxVQUFVLFVBQVU7QUFDN0Isa0JBQUssV0FBWSxTQUFTLFNBQVMsU0FBVztBQUk3QyxvQkFBSyxVQUFVLFVBQVUsWUFBWSxTQUFVLElBQUssTUFBTSxRQUFZO0FBQ3JFLDJCQUFTO0FBQUEsZ0JBR1YsT0FBTztBQUNOO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBQ0EsbUJBQU0sSUFBSyxJQUFJLFlBQVksU0FBVSxJQUFLLEtBQUssT0FBTyxNQUFPLE1BQU0sSUFBSztBQUFBLFlBQ3pFO0FBQUEsVUFDRDtBQUdBLHNCQUFZLENBQUMsT0FBTyxjQUFlLEtBQU07QUFDekMsY0FBSyxDQUFDLGFBQWEsT0FBTyxjQUFlLElBQUssR0FBSTtBQUNqRDtBQUFBLFVBQ0Q7QUFHQSxjQUFLLFNBQVMsS0FBSyxhQUFhLEdBQUk7QUFNbkMsaUJBQUssV0FBVyxDQUFFLE1BQU0sVUFBVSxNQUFNLFdBQVcsTUFBTSxTQUFVO0FBR25FLDZCQUFpQixZQUFZLFNBQVM7QUFDdEMsZ0JBQUssa0JBQWtCLE1BQU87QUFDN0IsK0JBQWlCLFNBQVMsSUFBSyxNQUFNLFNBQVU7QUFBQSxZQUNoRDtBQUNBLHNCQUFVLE9BQU8sSUFBSyxNQUFNLFNBQVU7QUFDdEMsZ0JBQUssWUFBWSxRQUFTO0FBQ3pCLGtCQUFLLGdCQUFpQjtBQUNyQiwwQkFBVTtBQUFBLGNBQ1gsT0FBTztBQUdOLHlCQUFVLENBQUUsSUFBSyxHQUFHLElBQUs7QUFDekIsaUNBQWlCLEtBQUssTUFBTSxXQUFXO0FBQ3ZDLDBCQUFVLE9BQU8sSUFBSyxNQUFNLFNBQVU7QUFDdEMseUJBQVUsQ0FBRSxJQUFLLENBQUU7QUFBQSxjQUNwQjtBQUFBLFlBQ0Q7QUFHQSxnQkFBSyxZQUFZLFlBQVksWUFBWSxrQkFBa0Isa0JBQWtCLE1BQU87QUFDbkYsa0JBQUssT0FBTyxJQUFLLE1BQU0sT0FBUSxNQUFNLFFBQVM7QUFHN0Msb0JBQUssQ0FBQyxXQUFZO0FBQ2pCLHVCQUFLLEtBQU0sV0FBVztBQUNyQiwwQkFBTSxVQUFVO0FBQUEsa0JBQ2pCLENBQUU7QUFDRixzQkFBSyxrQkFBa0IsTUFBTztBQUM3Qiw4QkFBVSxNQUFNO0FBQ2hCLHFDQUFpQixZQUFZLFNBQVMsS0FBSztBQUFBLGtCQUM1QztBQUFBLGdCQUNEO0FBQ0Esc0JBQU0sVUFBVTtBQUFBLGNBQ2pCO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFFQSxjQUFLLEtBQUssVUFBVztBQUNwQixrQkFBTSxXQUFXO0FBQ2pCLGlCQUFLLE9BQVEsV0FBVztBQUN2QixvQkFBTSxXQUFXLEtBQUssU0FBVSxDQUFFO0FBQ2xDLG9CQUFNLFlBQVksS0FBSyxTQUFVLENBQUU7QUFDbkMsb0JBQU0sWUFBWSxLQUFLLFNBQVUsQ0FBRTtBQUFBLFlBQ3BDLENBQUU7QUFBQSxVQUNIO0FBR0Esc0JBQVk7QUFDWixlQUFNLFFBQVEsTUFBTztBQUdwQixnQkFBSyxDQUFDLFdBQVk7QUFDakIsa0JBQUssVUFBVztBQUNmLG9CQUFLLFlBQVksVUFBVztBQUMzQiwyQkFBUyxTQUFTO0FBQUEsZ0JBQ25CO0FBQUEsY0FDRCxPQUFPO0FBQ04sMkJBQVcsU0FBUyxPQUFRLE1BQU0sVUFBVSxFQUFFLFNBQVMsZUFBZSxDQUFFO0FBQUEsY0FDekU7QUFHQSxrQkFBSyxRQUFTO0FBQ2IseUJBQVMsU0FBUyxDQUFDO0FBQUEsY0FDcEI7QUFHQSxrQkFBSyxRQUFTO0FBQ2IseUJBQVUsQ0FBRSxJQUFLLEdBQUcsSUFBSztBQUFBLGNBQzFCO0FBSUEsbUJBQUssS0FBTSxXQUFXO0FBS3JCLG9CQUFLLENBQUMsUUFBUztBQUNkLDJCQUFVLENBQUUsSUFBSyxDQUFFO0FBQUEsZ0JBQ3BCO0FBQ0EseUJBQVMsT0FBUSxNQUFNLFFBQVM7QUFDaEMscUJBQU0sUUFBUSxNQUFPO0FBQ3BCLHlCQUFPLE1BQU8sTUFBTSxNQUFNLEtBQU0sSUFBSyxDQUFFO0FBQUEsZ0JBQ3hDO0FBQUEsY0FDRCxDQUFFO0FBQUEsWUFDSDtBQUdBLHdCQUFZLFlBQWEsU0FBUyxTQUFVLElBQUssSUFBSSxHQUFHLE1BQU0sSUFBSztBQUNuRSxnQkFBSyxFQUFHLFFBQVEsV0FBYTtBQUM1Qix1QkFBVSxJQUFLLElBQUksVUFBVTtBQUM3QixrQkFBSyxRQUFTO0FBQ2IsMEJBQVUsTUFBTSxVQUFVO0FBQzFCLDBCQUFVLFFBQVE7QUFBQSxjQUNuQjtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUVBLGlCQUFTLFdBQVksT0FBTyxlQUFnQjtBQUMzQyxjQUFJLE9BQU8sTUFBTSxRQUFRLE9BQU87QUFHaEMsZUFBTSxTQUFTLE9BQVE7QUFDdEIsbUJBQU8sVUFBVyxLQUFNO0FBQ3hCLHFCQUFTLGNBQWUsSUFBSztBQUM3QixvQkFBUSxNQUFPLEtBQU07QUFDckIsZ0JBQUssTUFBTSxRQUFTLEtBQU0sR0FBSTtBQUM3Qix1QkFBUyxNQUFPLENBQUU7QUFDbEIsc0JBQVEsTUFBTyxLQUFNLElBQUksTUFBTyxDQUFFO0FBQUEsWUFDbkM7QUFFQSxnQkFBSyxVQUFVLE1BQU87QUFDckIsb0JBQU8sSUFBSyxJQUFJO0FBQ2hCLHFCQUFPLE1BQU8sS0FBTTtBQUFBLFlBQ3JCO0FBRUEsb0JBQVEsT0FBTyxTQUFVLElBQUs7QUFDOUIsZ0JBQUssU0FBUyxZQUFZLE9BQVE7QUFDakMsc0JBQVEsTUFBTSxPQUFRLEtBQU07QUFDNUIscUJBQU8sTUFBTyxJQUFLO0FBSW5CLG1CQUFNLFNBQVMsT0FBUTtBQUN0QixvQkFBSyxFQUFHLFNBQVMsUUFBVTtBQUMxQix3QkFBTyxLQUFNLElBQUksTUFBTyxLQUFNO0FBQzlCLGdDQUFlLEtBQU0sSUFBSTtBQUFBLGdCQUMxQjtBQUFBLGNBQ0Q7QUFBQSxZQUNELE9BQU87QUFDTiw0QkFBZSxJQUFLLElBQUk7QUFBQSxZQUN6QjtBQUFBLFVBQ0Q7QUFBQSxRQUNEO0FBRUEsaUJBQVMsVUFBVyxNQUFNLFlBQVksU0FBVTtBQUMvQyxjQUFJLFFBQ0gsU0FDQSxRQUFRLEdBQ1IsU0FBUyxVQUFVLFdBQVcsUUFDOUIsV0FBVyxPQUFPLFNBQVMsRUFBRSxPQUFRLFdBQVc7QUFHL0MsbUJBQU8sS0FBSztBQUFBLFVBQ2IsQ0FBRSxHQUNGLE9BQU8sV0FBVztBQUNqQixnQkFBSyxTQUFVO0FBQ2QscUJBQU87QUFBQSxZQUNSO0FBQ0EsZ0JBQUksY0FBYyxTQUFTLFlBQVksR0FDdEMsWUFBWSxLQUFLLElBQUssR0FBRyxVQUFVLFlBQVksVUFBVSxXQUFXLFdBQVksR0FJaEYsT0FBTyxZQUFZLFVBQVUsWUFBWSxHQUN6QyxVQUFVLElBQUksTUFDZDRCLFNBQVEsR0FDUkMsVUFBUyxVQUFVLE9BQU87QUFFM0IsbUJBQVFELFNBQVFDLFNBQVFELFVBQVU7QUFDakMsd0JBQVUsT0FBUUEsTUFBTSxFQUFFLElBQUssT0FBUTtBQUFBLFlBQ3hDO0FBRUEscUJBQVMsV0FBWSxNQUFNLENBQUUsV0FBVyxTQUFTLFNBQVUsQ0FBRTtBQUc3RCxnQkFBSyxVQUFVLEtBQUtDLFNBQVM7QUFDNUIscUJBQU87QUFBQSxZQUNSO0FBR0EsZ0JBQUssQ0FBQ0EsU0FBUztBQUNkLHVCQUFTLFdBQVksTUFBTSxDQUFFLFdBQVcsR0FBRyxDQUFFLENBQUU7QUFBQSxZQUNoRDtBQUdBLHFCQUFTLFlBQWEsTUFBTSxDQUFFLFNBQVUsQ0FBRTtBQUMxQyxtQkFBTztBQUFBLFVBQ1IsR0FDQSxZQUFZLFNBQVMsUUFBUztBQUFBLFlBQzdCO0FBQUEsWUFDQSxPQUFPLE9BQU8sT0FBUSxDQUFDLEdBQUcsVUFBVztBQUFBLFlBQ3JDLE1BQU0sT0FBTyxPQUFRLE1BQU07QUFBQSxjQUMxQixlQUFlLENBQUM7QUFBQSxjQUNoQixRQUFRLE9BQU8sT0FBTztBQUFBLFlBQ3ZCLEdBQUcsT0FBUTtBQUFBLFlBQ1gsb0JBQW9CO0FBQUEsWUFDcEIsaUJBQWlCO0FBQUEsWUFDakIsV0FBVyxTQUFTLFlBQVk7QUFBQSxZQUNoQyxVQUFVLFFBQVE7QUFBQSxZQUNsQixRQUFRLENBQUM7QUFBQSxZQUNULGFBQWEsU0FBVSxNQUFNRixNQUFNO0FBQ2xDLGtCQUFJLFFBQVEsT0FBTztBQUFBLGdCQUFPO0FBQUEsZ0JBQU0sVUFBVTtBQUFBLGdCQUFNO0FBQUEsZ0JBQU1BO0FBQUEsZ0JBQ3JELFVBQVUsS0FBSyxjQUFlLElBQUssS0FBSyxVQUFVLEtBQUs7QUFBQSxjQUFPO0FBQy9ELHdCQUFVLE9BQU8sS0FBTSxLQUFNO0FBQzdCLHFCQUFPO0FBQUEsWUFDUjtBQUFBLFlBQ0EsTUFBTSxTQUFVLFNBQVU7QUFDekIsa0JBQUlDLFNBQVEsR0FJWEMsVUFBUyxVQUFVLFVBQVUsT0FBTyxTQUFTO0FBQzlDLGtCQUFLLFNBQVU7QUFDZCx1QkFBTztBQUFBLGNBQ1I7QUFDQSx3QkFBVTtBQUNWLHFCQUFRRCxTQUFRQyxTQUFRRCxVQUFVO0FBQ2pDLDBCQUFVLE9BQVFBLE1BQU0sRUFBRSxJQUFLLENBQUU7QUFBQSxjQUNsQztBQUdBLGtCQUFLLFNBQVU7QUFDZCx5QkFBUyxXQUFZLE1BQU0sQ0FBRSxXQUFXLEdBQUcsQ0FBRSxDQUFFO0FBQy9DLHlCQUFTLFlBQWEsTUFBTSxDQUFFLFdBQVcsT0FBUSxDQUFFO0FBQUEsY0FDcEQsT0FBTztBQUNOLHlCQUFTLFdBQVksTUFBTSxDQUFFLFdBQVcsT0FBUSxDQUFFO0FBQUEsY0FDbkQ7QUFDQSxxQkFBTztBQUFBLFlBQ1I7QUFBQSxVQUNELENBQUUsR0FDRixRQUFRLFVBQVU7QUFFbkIscUJBQVksT0FBTyxVQUFVLEtBQUssYUFBYztBQUVoRCxpQkFBUSxRQUFRLFFBQVEsU0FBVTtBQUNqQyxxQkFBUyxVQUFVLFdBQVksS0FBTSxFQUFFLEtBQU0sV0FBVyxNQUFNLE9BQU8sVUFBVSxJQUFLO0FBQ3BGLGdCQUFLLFFBQVM7QUFDYixrQkFBSyxXQUFZLE9BQU8sSUFBSyxHQUFJO0FBQ2hDLHVCQUFPLFlBQWEsVUFBVSxNQUFNLFVBQVUsS0FBSyxLQUFNLEVBQUUsT0FDMUQsT0FBTyxLQUFLLEtBQU0sTUFBTztBQUFBLGNBQzNCO0FBQ0EscUJBQU87QUFBQSxZQUNSO0FBQUEsVUFDRDtBQUVBLGlCQUFPLElBQUssT0FBTyxhQUFhLFNBQVU7QUFFMUMsY0FBSyxXQUFZLFVBQVUsS0FBSyxLQUFNLEdBQUk7QUFDekMsc0JBQVUsS0FBSyxNQUFNLEtBQU0sTUFBTSxTQUFVO0FBQUEsVUFDNUM7QUFHQSxvQkFDRSxTQUFVLFVBQVUsS0FBSyxRQUFTLEVBQ2xDLEtBQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLFFBQVMsRUFDbkQsS0FBTSxVQUFVLEtBQUssSUFBSyxFQUMxQixPQUFRLFVBQVUsS0FBSyxNQUFPO0FBRWhDLGlCQUFPLEdBQUc7QUFBQSxZQUNULE9BQU8sT0FBUSxNQUFNO0FBQUEsY0FDcEI7QUFBQSxjQUNBLE1BQU07QUFBQSxjQUNOLE9BQU8sVUFBVSxLQUFLO0FBQUEsWUFDdkIsQ0FBRTtBQUFBLFVBQ0g7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxlQUFPLFlBQVksT0FBTyxPQUFRLFdBQVc7QUFBQSxVQUU1QyxVQUFVO0FBQUEsWUFDVCxLQUFLLENBQUUsU0FBVSxNQUFNLE9BQVE7QUFDOUIsa0JBQUksUUFBUSxLQUFLLFlBQWEsTUFBTSxLQUFNO0FBQzFDLHdCQUFXLE1BQU0sTUFBTSxNQUFNLFFBQVEsS0FBTSxLQUFNLEdBQUcsS0FBTTtBQUMxRCxxQkFBTztBQUFBLFlBQ1IsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUVBLFNBQVMsU0FBVSxPQUFPLFVBQVc7QUFDcEMsZ0JBQUssV0FBWSxLQUFNLEdBQUk7QUFDMUIseUJBQVc7QUFDWCxzQkFBUSxDQUFFLEdBQUk7QUFBQSxZQUNmLE9BQU87QUFDTixzQkFBUSxNQUFNLE1BQU8sYUFBYztBQUFBLFlBQ3BDO0FBRUEsZ0JBQUksTUFDSCxRQUFRLEdBQ1IsU0FBUyxNQUFNO0FBRWhCLG1CQUFRLFFBQVEsUUFBUSxTQUFVO0FBQ2pDLHFCQUFPLE1BQU8sS0FBTTtBQUNwQix3QkFBVSxTQUFVLElBQUssSUFBSSxVQUFVLFNBQVUsSUFBSyxLQUFLLENBQUM7QUFDNUQsd0JBQVUsU0FBVSxJQUFLLEVBQUUsUUFBUyxRQUFTO0FBQUEsWUFDOUM7QUFBQSxVQUNEO0FBQUEsVUFFQSxZQUFZLENBQUUsZ0JBQWlCO0FBQUEsVUFFL0IsV0FBVyxTQUFVLFVBQVUsU0FBVTtBQUN4QyxnQkFBSyxTQUFVO0FBQ2Qsd0JBQVUsV0FBVyxRQUFTLFFBQVM7QUFBQSxZQUN4QyxPQUFPO0FBQ04sd0JBQVUsV0FBVyxLQUFNLFFBQVM7QUFBQSxZQUNyQztBQUFBLFVBQ0Q7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLFFBQVEsU0FBVSxPQUFPLFFBQVFoQixLQUFLO0FBQzVDLGNBQUksTUFBTSxTQUFTLE9BQU8sVUFBVSxXQUFXLE9BQU8sT0FBUSxDQUFDLEdBQUcsS0FBTSxJQUFJO0FBQUEsWUFDM0UsVUFBVUEsT0FBTSxDQUFDQSxPQUFNLFVBQ3RCLFdBQVksS0FBTSxLQUFLO0FBQUEsWUFDeEIsVUFBVTtBQUFBLFlBQ1YsUUFBUUEsT0FBTSxVQUFVLFVBQVUsQ0FBQyxXQUFZLE1BQU8sS0FBSztBQUFBLFVBQzVEO0FBR0EsY0FBSyxPQUFPLEdBQUcsS0FBTTtBQUNwQixnQkFBSSxXQUFXO0FBQUEsVUFFaEIsT0FBTztBQUNOLGdCQUFLLE9BQU8sSUFBSSxhQUFhLFVBQVc7QUFDdkMsa0JBQUssSUFBSSxZQUFZLE9BQU8sR0FBRyxRQUFTO0FBQ3ZDLG9CQUFJLFdBQVcsT0FBTyxHQUFHLE9BQVEsSUFBSSxRQUFTO0FBQUEsY0FFL0MsT0FBTztBQUNOLG9CQUFJLFdBQVcsT0FBTyxHQUFHLE9BQU87QUFBQSxjQUNqQztBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBR0EsY0FBSyxJQUFJLFNBQVMsUUFBUSxJQUFJLFVBQVUsTUFBTztBQUM5QyxnQkFBSSxRQUFRO0FBQUEsVUFDYjtBQUdBLGNBQUksTUFBTSxJQUFJO0FBRWQsY0FBSSxXQUFXLFdBQVc7QUFDekIsZ0JBQUssV0FBWSxJQUFJLEdBQUksR0FBSTtBQUM1QixrQkFBSSxJQUFJLEtBQU0sSUFBSztBQUFBLFlBQ3BCO0FBRUEsZ0JBQUssSUFBSSxPQUFRO0FBQ2hCLHFCQUFPLFFBQVMsTUFBTSxJQUFJLEtBQU07QUFBQSxZQUNqQztBQUFBLFVBQ0Q7QUFFQSxpQkFBTztBQUFBLFFBQ1I7QUFFQSxlQUFPLEdBQUcsT0FBUTtBQUFBLFVBQ2pCLFFBQVEsU0FBVSxPQUFPLElBQUksUUFBUSxVQUFXO0FBRy9DLG1CQUFPLEtBQUssT0FBUSxrQkFBbUIsRUFBRSxJQUFLLFdBQVcsQ0FBRSxFQUFFLEtBQUssRUFHaEUsSUFBSSxFQUFFLFFBQVMsRUFBRSxTQUFTLEdBQUcsR0FBRyxPQUFPLFFBQVEsUUFBUztBQUFBLFVBQzNEO0FBQUEsVUFDQSxTQUFTLFNBQVUsTUFBTSxPQUFPLFFBQVEsVUFBVztBQUNsRCxnQkFBSSxRQUFRLE9BQU8sY0FBZSxJQUFLLEdBQ3RDLFNBQVMsT0FBTyxNQUFPLE9BQU8sUUFBUSxRQUFTLEdBQy9DLGNBQWMsV0FBVztBQUd4QixrQkFBSSxPQUFPLFVBQVcsTUFBTSxPQUFPLE9BQVEsQ0FBQyxHQUFHLElBQUssR0FBRyxNQUFPO0FBRzlELGtCQUFLLFNBQVMsU0FBUyxJQUFLLE1BQU0sUUFBUyxHQUFJO0FBQzlDLHFCQUFLLEtBQU0sSUFBSztBQUFBLGNBQ2pCO0FBQUEsWUFDRDtBQUVELHdCQUFZLFNBQVM7QUFFckIsbUJBQU8sU0FBUyxPQUFPLFVBQVUsUUFDaEMsS0FBSyxLQUFNLFdBQVksSUFDdkIsS0FBSyxNQUFPLE9BQU8sT0FBTyxXQUFZO0FBQUEsVUFDeEM7QUFBQSxVQUNBLE1BQU0sU0FBVSxNQUFNLFlBQVksU0FBVTtBQUMzQyxnQkFBSSxZQUFZLFNBQVUsT0FBUTtBQUNqQyxrQkFBSSxPQUFPLE1BQU07QUFDakIscUJBQU8sTUFBTTtBQUNiLG1CQUFNLE9BQVE7QUFBQSxZQUNmO0FBRUEsZ0JBQUssT0FBTyxTQUFTLFVBQVc7QUFDL0Isd0JBQVU7QUFDViwyQkFBYTtBQUNiLHFCQUFPO0FBQUEsWUFDUjtBQUNBLGdCQUFLLFlBQWE7QUFDakIsbUJBQUssTUFBTyxRQUFRLE1BQU0sQ0FBQyxDQUFFO0FBQUEsWUFDOUI7QUFFQSxtQkFBTyxLQUFLLEtBQU0sV0FBVztBQUM1QixrQkFBSSxVQUFVLE1BQ2IsUUFBUSxRQUFRLFFBQVEsT0FBTyxjQUMvQixTQUFTLE9BQU8sUUFDaEIsT0FBTyxTQUFTLElBQUssSUFBSztBQUUzQixrQkFBSyxPQUFRO0FBQ1osb0JBQUssS0FBTSxLQUFNLEtBQUssS0FBTSxLQUFNLEVBQUUsTUFBTztBQUMxQyw0QkFBVyxLQUFNLEtBQU0sQ0FBRTtBQUFBLGdCQUMxQjtBQUFBLGNBQ0QsT0FBTztBQUNOLHFCQUFNLFNBQVMsTUFBTztBQUNyQixzQkFBSyxLQUFNLEtBQU0sS0FBSyxLQUFNLEtBQU0sRUFBRSxRQUFRLEtBQUssS0FBTSxLQUFNLEdBQUk7QUFDaEUsOEJBQVcsS0FBTSxLQUFNLENBQUU7QUFBQSxrQkFDMUI7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFFQSxtQkFBTSxRQUFRLE9BQU8sUUFBUSxXQUFXO0FBQ3ZDLG9CQUFLLE9BQVEsS0FBTSxFQUFFLFNBQVMsU0FDM0IsUUFBUSxRQUFRLE9BQVEsS0FBTSxFQUFFLFVBQVUsT0FBUztBQUVyRCx5QkFBUSxLQUFNLEVBQUUsS0FBSyxLQUFNLE9BQVE7QUFDbkMsNEJBQVU7QUFDVix5QkFBTyxPQUFRLE9BQU8sQ0FBRTtBQUFBLGdCQUN6QjtBQUFBLGNBQ0Q7QUFLQSxrQkFBSyxXQUFXLENBQUMsU0FBVTtBQUMxQix1QkFBTyxRQUFTLE1BQU0sSUFBSztBQUFBLGNBQzVCO0FBQUEsWUFDRCxDQUFFO0FBQUEsVUFDSDtBQUFBLFVBQ0EsUUFBUSxTQUFVLE1BQU87QUFDeEIsZ0JBQUssU0FBUyxPQUFRO0FBQ3JCLHFCQUFPLFFBQVE7QUFBQSxZQUNoQjtBQUNBLG1CQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLGtCQUFJLE9BQ0gsT0FBTyxTQUFTLElBQUssSUFBSyxHQUMxQixRQUFRLEtBQU0sT0FBTyxPQUFRLEdBQzdCLFFBQVEsS0FBTSxPQUFPLFlBQWEsR0FDbEMsU0FBUyxPQUFPLFFBQ2hCLFNBQVMsUUFBUSxNQUFNLFNBQVM7QUFHakMsbUJBQUssU0FBUztBQUdkLHFCQUFPLE1BQU8sTUFBTSxNQUFNLENBQUMsQ0FBRTtBQUU3QixrQkFBSyxTQUFTLE1BQU0sTUFBTztBQUMxQixzQkFBTSxLQUFLLEtBQU0sTUFBTSxJQUFLO0FBQUEsY0FDN0I7QUFHQSxtQkFBTSxRQUFRLE9BQU8sUUFBUSxXQUFXO0FBQ3ZDLG9CQUFLLE9BQVEsS0FBTSxFQUFFLFNBQVMsUUFBUSxPQUFRLEtBQU0sRUFBRSxVQUFVLE1BQU87QUFDdEUseUJBQVEsS0FBTSxFQUFFLEtBQUssS0FBTSxJQUFLO0FBQ2hDLHlCQUFPLE9BQVEsT0FBTyxDQUFFO0FBQUEsZ0JBQ3pCO0FBQUEsY0FDRDtBQUdBLG1CQUFNLFFBQVEsR0FBRyxRQUFRLFFBQVEsU0FBVTtBQUMxQyxvQkFBSyxNQUFPLEtBQU0sS0FBSyxNQUFPLEtBQU0sRUFBRSxRQUFTO0FBQzlDLHdCQUFPLEtBQU0sRUFBRSxPQUFPLEtBQU0sSUFBSztBQUFBLGdCQUNsQztBQUFBLGNBQ0Q7QUFHQSxxQkFBTyxLQUFLO0FBQUEsWUFDYixDQUFFO0FBQUEsVUFDSDtBQUFBLFFBQ0QsQ0FBRTtBQUVGLGVBQU8sS0FBTSxDQUFFLFVBQVUsUUFBUSxNQUFPLEdBQUcsU0FBVSxJQUFJLE1BQU87QUFDL0QsY0FBSSxRQUFRLE9BQU8sR0FBSSxJQUFLO0FBQzVCLGlCQUFPLEdBQUksSUFBSyxJQUFJLFNBQVUsT0FBTyxRQUFRLFVBQVc7QUFDdkQsbUJBQU8sU0FBUyxRQUFRLE9BQU8sVUFBVSxZQUN4QyxNQUFNLE1BQU8sTUFBTSxTQUFVLElBQzdCLEtBQUssUUFBUyxNQUFPLE1BQU0sSUFBSyxHQUFHLE9BQU8sUUFBUSxRQUFTO0FBQUEsVUFDN0Q7QUFBQSxRQUNELENBQUU7QUFHRixlQUFPLEtBQU07QUFBQSxVQUNaLFdBQVcsTUFBTyxNQUFPO0FBQUEsVUFDekIsU0FBUyxNQUFPLE1BQU87QUFBQSxVQUN2QixhQUFhLE1BQU8sUUFBUztBQUFBLFVBQzdCLFFBQVEsRUFBRSxTQUFTLE9BQU87QUFBQSxVQUMxQixTQUFTLEVBQUUsU0FBUyxPQUFPO0FBQUEsVUFDM0IsWUFBWSxFQUFFLFNBQVMsU0FBUztBQUFBLFFBQ2pDLEdBQUcsU0FBVSxNQUFNLE9BQVE7QUFDMUIsaUJBQU8sR0FBSSxJQUFLLElBQUksU0FBVSxPQUFPLFFBQVEsVUFBVztBQUN2RCxtQkFBTyxLQUFLLFFBQVMsT0FBTyxPQUFPLFFBQVEsUUFBUztBQUFBLFVBQ3JEO0FBQUEsUUFDRCxDQUFFO0FBRUYsZUFBTyxTQUFTLENBQUM7QUFDakIsZUFBTyxHQUFHLE9BQU8sV0FBVztBQUMzQixjQUFJLE9BQ0gsSUFBSSxHQUNKLFNBQVMsT0FBTztBQUVqQixrQkFBUSxLQUFLLElBQUk7QUFFakIsaUJBQVEsSUFBSSxPQUFPLFFBQVEsS0FBTTtBQUNoQyxvQkFBUSxPQUFRLENBQUU7QUFHbEIsZ0JBQUssQ0FBQyxNQUFNLEtBQUssT0FBUSxDQUFFLE1BQU0sT0FBUTtBQUN4QyxxQkFBTyxPQUFRLEtBQUssQ0FBRTtBQUFBLFlBQ3ZCO0FBQUEsVUFDRDtBQUVBLGNBQUssQ0FBQyxPQUFPLFFBQVM7QUFDckIsbUJBQU8sR0FBRyxLQUFLO0FBQUEsVUFDaEI7QUFDQSxrQkFBUTtBQUFBLFFBQ1Q7QUFFQSxlQUFPLEdBQUcsUUFBUSxTQUFVLE9BQVE7QUFDbkMsaUJBQU8sT0FBTyxLQUFNLEtBQU07QUFDMUIsaUJBQU8sR0FBRyxNQUFNO0FBQUEsUUFDakI7QUFFQSxlQUFPLEdBQUcsV0FBVztBQUNyQixlQUFPLEdBQUcsUUFBUSxXQUFXO0FBQzVCLGNBQUssWUFBYTtBQUNqQjtBQUFBLFVBQ0Q7QUFFQSx1QkFBYTtBQUNiLG1CQUFTO0FBQUEsUUFDVjtBQUVBLGVBQU8sR0FBRyxPQUFPLFdBQVc7QUFDM0IsdUJBQWE7QUFBQSxRQUNkO0FBRUEsZUFBTyxHQUFHLFNBQVM7QUFBQSxVQUNsQixNQUFNO0FBQUEsVUFDTixNQUFNO0FBQUE7QUFBQSxVQUdOLFVBQVU7QUFBQSxRQUNYO0FBSUEsZUFBTyxHQUFHLFFBQVEsU0FBVSxNQUFNLE1BQU87QUFDeEMsaUJBQU8sT0FBTyxLQUFLLE9BQU8sR0FBRyxPQUFRLElBQUssS0FBSyxPQUFPO0FBQ3RELGlCQUFPLFFBQVE7QUFFZixpQkFBTyxLQUFLLE1BQU8sTUFBTSxTQUFVLE1BQU0sT0FBUTtBQUNoRCxnQkFBSSxVQUFVWixRQUFPLFdBQVksTUFBTSxJQUFLO0FBQzVDLGtCQUFNLE9BQU8sV0FBVztBQUN2QixjQUFBQSxRQUFPLGFBQWMsT0FBUTtBQUFBLFlBQzlCO0FBQUEsVUFDRCxDQUFFO0FBQUEsUUFDSDtBQUdBLFNBQUUsV0FBVztBQUNaLGNBQUksUUFBUUcsVUFBUyxjQUFlLE9BQVEsR0FDM0MsU0FBU0EsVUFBUyxjQUFlLFFBQVMsR0FDMUMsTUFBTSxPQUFPLFlBQWFBLFVBQVMsY0FBZSxRQUFTLENBQUU7QUFFOUQsZ0JBQU0sT0FBTztBQUliLGtCQUFRLFVBQVUsTUFBTSxVQUFVO0FBSWxDLGtCQUFRLGNBQWMsSUFBSTtBQUkxQixrQkFBUUEsVUFBUyxjQUFlLE9BQVE7QUFDeEMsZ0JBQU0sUUFBUTtBQUNkLGdCQUFNLE9BQU87QUFDYixrQkFBUSxhQUFhLE1BQU0sVUFBVTtBQUFBLFFBQ3RDLEdBQUk7QUFHSixZQUFJLFVBQ0gsYUFBYSxPQUFPLEtBQUs7QUFFMUIsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixNQUFNLFNBQVUsTUFBTSxPQUFRO0FBQzdCLG1CQUFPLE9BQVEsTUFBTSxPQUFPLE1BQU0sTUFBTSxPQUFPLFVBQVUsU0FBUyxDQUFFO0FBQUEsVUFDckU7QUFBQSxVQUVBLFlBQVksU0FBVSxNQUFPO0FBQzVCLG1CQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLHFCQUFPLFdBQVksTUFBTSxJQUFLO0FBQUEsWUFDL0IsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLE9BQVE7QUFBQSxVQUNkLE1BQU0sU0FBVSxNQUFNLE1BQU0sT0FBUTtBQUNuQyxnQkFBSSxLQUFLLE9BQ1IsUUFBUSxLQUFLO0FBR2QsZ0JBQUssVUFBVSxLQUFLLFVBQVUsS0FBSyxVQUFVLEdBQUk7QUFDaEQ7QUFBQSxZQUNEO0FBR0EsZ0JBQUssT0FBTyxLQUFLLGlCQUFpQixhQUFjO0FBQy9DLHFCQUFPLE9BQU8sS0FBTSxNQUFNLE1BQU0sS0FBTTtBQUFBLFlBQ3ZDO0FBSUEsZ0JBQUssVUFBVSxLQUFLLENBQUMsT0FBTyxTQUFVLElBQUssR0FBSTtBQUM5QyxzQkFBUSxPQUFPLFVBQVcsS0FBSyxZQUFZLENBQUUsTUFDMUMsT0FBTyxLQUFLLE1BQU0sS0FBSyxLQUFNLElBQUssSUFBSSxXQUFXO0FBQUEsWUFDckQ7QUFFQSxnQkFBSyxVQUFVLFFBQVk7QUFDMUIsa0JBQUssVUFBVSxNQUFPO0FBQ3JCLHVCQUFPLFdBQVksTUFBTSxJQUFLO0FBQzlCO0FBQUEsY0FDRDtBQUVBLGtCQUFLLFNBQVMsU0FBUyxVQUNwQixNQUFNLE1BQU0sSUFBSyxNQUFNLE9BQU8sSUFBSyxPQUFRLFFBQVk7QUFDekQsdUJBQU87QUFBQSxjQUNSO0FBRUEsbUJBQUssYUFBYyxNQUFNLFFBQVEsRUFBRztBQUNwQyxxQkFBTztBQUFBLFlBQ1I7QUFFQSxnQkFBSyxTQUFTLFNBQVMsVUFBVyxNQUFNLE1BQU0sSUFBSyxNQUFNLElBQUssT0FBUSxNQUFPO0FBQzVFLHFCQUFPO0FBQUEsWUFDUjtBQUVBLGtCQUFNLE9BQU8sS0FBSyxLQUFNLE1BQU0sSUFBSztBQUduQyxtQkFBTyxPQUFPLE9BQU8sU0FBWTtBQUFBLFVBQ2xDO0FBQUEsVUFFQSxXQUFXO0FBQUEsWUFDVixNQUFNO0FBQUEsY0FDTCxLQUFLLFNBQVUsTUFBTSxPQUFRO0FBQzVCLG9CQUFLLENBQUMsUUFBUSxjQUFjLFVBQVUsV0FDckMsU0FBVSxNQUFNLE9BQVEsR0FBSTtBQUM1QixzQkFBSSxNQUFNLEtBQUs7QUFDZix1QkFBSyxhQUFjLFFBQVEsS0FBTTtBQUNqQyxzQkFBSyxLQUFNO0FBQ1YseUJBQUssUUFBUTtBQUFBLGtCQUNkO0FBQ0EseUJBQU87QUFBQSxnQkFDUjtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFVBRUEsWUFBWSxTQUFVLE1BQU0sT0FBUTtBQUNuQyxnQkFBSSxNQUNILElBQUksR0FJSixZQUFZLFNBQVMsTUFBTSxNQUFPLGFBQWM7QUFFakQsZ0JBQUssYUFBYSxLQUFLLGFBQWEsR0FBSTtBQUN2QyxxQkFBVSxPQUFPLFVBQVcsR0FBSSxHQUFNO0FBQ3JDLHFCQUFLLGdCQUFpQixJQUFLO0FBQUEsY0FDNUI7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFFBQ0QsQ0FBRTtBQUdGLG1CQUFXO0FBQUEsVUFDVixLQUFLLFNBQVUsTUFBTSxPQUFPLE1BQU87QUFDbEMsZ0JBQUssVUFBVSxPQUFRO0FBR3RCLHFCQUFPLFdBQVksTUFBTSxJQUFLO0FBQUEsWUFDL0IsT0FBTztBQUNOLG1CQUFLLGFBQWMsTUFBTSxJQUFLO0FBQUEsWUFDL0I7QUFDQSxtQkFBTztBQUFBLFVBQ1I7QUFBQSxRQUNEO0FBRUEsZUFBTyxLQUFNLE9BQU8sS0FBSyxNQUFNLEtBQUssT0FBTyxNQUFPLE1BQU8sR0FBRyxTQUFVLElBQUksTUFBTztBQUNoRixjQUFJLFNBQVMsV0FBWSxJQUFLLEtBQUssT0FBTyxLQUFLO0FBRS9DLHFCQUFZLElBQUssSUFBSSxTQUFVLE1BQU11QixPQUFNLE9BQVE7QUFDbEQsZ0JBQUksS0FBSyxRQUNSLGdCQUFnQkEsTUFBSyxZQUFZO0FBRWxDLGdCQUFLLENBQUMsT0FBUTtBQUdiLHVCQUFTLFdBQVksYUFBYztBQUNuQyx5QkFBWSxhQUFjLElBQUk7QUFDOUIsb0JBQU0sT0FBUSxNQUFNQSxPQUFNLEtBQU0sS0FBSyxPQUNwQyxnQkFDQTtBQUNELHlCQUFZLGFBQWMsSUFBSTtBQUFBLFlBQy9CO0FBQ0EsbUJBQU87QUFBQSxVQUNSO0FBQUEsUUFDRCxDQUFFO0FBS0YsWUFBSSxhQUFhLHVDQUNoQixhQUFhO0FBRWQsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixNQUFNLFNBQVUsTUFBTSxPQUFRO0FBQzdCLG1CQUFPLE9BQVEsTUFBTSxPQUFPLE1BQU0sTUFBTSxPQUFPLFVBQVUsU0FBUyxDQUFFO0FBQUEsVUFDckU7QUFBQSxVQUVBLFlBQVksU0FBVSxNQUFPO0FBQzVCLG1CQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLHFCQUFPLEtBQU0sT0FBTyxRQUFTLElBQUssS0FBSyxJQUFLO0FBQUEsWUFDN0MsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLE9BQVE7QUFBQSxVQUNkLE1BQU0sU0FBVSxNQUFNLE1BQU0sT0FBUTtBQUNuQyxnQkFBSSxLQUFLLE9BQ1IsUUFBUSxLQUFLO0FBR2QsZ0JBQUssVUFBVSxLQUFLLFVBQVUsS0FBSyxVQUFVLEdBQUk7QUFDaEQ7QUFBQSxZQUNEO0FBRUEsZ0JBQUssVUFBVSxLQUFLLENBQUMsT0FBTyxTQUFVLElBQUssR0FBSTtBQUc5QyxxQkFBTyxPQUFPLFFBQVMsSUFBSyxLQUFLO0FBQ2pDLHNCQUFRLE9BQU8sVUFBVyxJQUFLO0FBQUEsWUFDaEM7QUFFQSxnQkFBSyxVQUFVLFFBQVk7QUFDMUIsa0JBQUssU0FBUyxTQUFTLFVBQ3BCLE1BQU0sTUFBTSxJQUFLLE1BQU0sT0FBTyxJQUFLLE9BQVEsUUFBWTtBQUN6RCx1QkFBTztBQUFBLGNBQ1I7QUFFQSxxQkFBUyxLQUFNLElBQUssSUFBSTtBQUFBLFlBQ3pCO0FBRUEsZ0JBQUssU0FBUyxTQUFTLFVBQVcsTUFBTSxNQUFNLElBQUssTUFBTSxJQUFLLE9BQVEsTUFBTztBQUM1RSxxQkFBTztBQUFBLFlBQ1I7QUFFQSxtQkFBTyxLQUFNLElBQUs7QUFBQSxVQUNuQjtBQUFBLFVBRUEsV0FBVztBQUFBLFlBQ1YsVUFBVTtBQUFBLGNBQ1QsS0FBSyxTQUFVLE1BQU87QUFNckIsb0JBQUksV0FBVyxPQUFPLEtBQUssS0FBTSxNQUFNLFVBQVc7QUFFbEQsb0JBQUssVUFBVztBQUNmLHlCQUFPLFNBQVUsVUFBVSxFQUFHO0FBQUEsZ0JBQy9CO0FBRUEsb0JBQ0MsV0FBVyxLQUFNLEtBQUssUUFBUyxLQUMvQixXQUFXLEtBQU0sS0FBSyxRQUFTLEtBQy9CLEtBQUssTUFDSjtBQUNELHlCQUFPO0FBQUEsZ0JBQ1I7QUFFQSx1QkFBTztBQUFBLGNBQ1I7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFVBRUEsU0FBUztBQUFBLFlBQ1IsT0FBTztBQUFBLFlBQ1AsU0FBUztBQUFBLFVBQ1Y7QUFBQSxRQUNELENBQUU7QUFVRixZQUFLLENBQUMsUUFBUSxhQUFjO0FBQzNCLGlCQUFPLFVBQVUsV0FBVztBQUFBLFlBQzNCLEtBQUssU0FBVSxNQUFPO0FBSXJCLGtCQUFJLFNBQVMsS0FBSztBQUNsQixrQkFBSyxVQUFVLE9BQU8sWUFBYTtBQUNsQyx1QkFBTyxXQUFXO0FBQUEsY0FDbkI7QUFDQSxxQkFBTztBQUFBLFlBQ1I7QUFBQSxZQUNBLEtBQUssU0FBVSxNQUFPO0FBSXJCLGtCQUFJLFNBQVMsS0FBSztBQUNsQixrQkFBSyxRQUFTO0FBQ2IsdUJBQU87QUFFUCxvQkFBSyxPQUFPLFlBQWE7QUFDeEIseUJBQU8sV0FBVztBQUFBLGdCQUNuQjtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFFBQ0Q7QUFFQSxlQUFPLEtBQU07QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRCxHQUFHLFdBQVc7QUFDYixpQkFBTyxRQUFTLEtBQUssWUFBWSxDQUFFLElBQUk7QUFBQSxRQUN4QyxDQUFFO0FBT0QsaUJBQVMsaUJBQWtCLE9BQVE7QUFDbEMsY0FBSSxTQUFTLE1BQU0sTUFBTyxhQUFjLEtBQUssQ0FBQztBQUM5QyxpQkFBTyxPQUFPLEtBQU0sR0FBSTtBQUFBLFFBQ3pCO0FBR0QsaUJBQVMsU0FBVSxNQUFPO0FBQ3pCLGlCQUFPLEtBQUssZ0JBQWdCLEtBQUssYUFBYyxPQUFRLEtBQUs7QUFBQSxRQUM3RDtBQUVBLGlCQUFTLGVBQWdCLE9BQVE7QUFDaEMsY0FBSyxNQUFNLFFBQVMsS0FBTSxHQUFJO0FBQzdCLG1CQUFPO0FBQUEsVUFDUjtBQUNBLGNBQUssT0FBTyxVQUFVLFVBQVc7QUFDaEMsbUJBQU8sTUFBTSxNQUFPLGFBQWMsS0FBSyxDQUFDO0FBQUEsVUFDekM7QUFDQSxpQkFBTyxDQUFDO0FBQUEsUUFDVDtBQUVBLGVBQU8sR0FBRyxPQUFRO0FBQUEsVUFDakIsVUFBVSxTQUFVLE9BQVE7QUFDM0IsZ0JBQUksWUFBWSxLQUFLLFVBQVUsV0FBVyxHQUFHO0FBRTdDLGdCQUFLLFdBQVksS0FBTSxHQUFJO0FBQzFCLHFCQUFPLEtBQUssS0FBTSxTQUFVLEdBQUk7QUFDL0IsdUJBQVEsSUFBSyxFQUFFLFNBQVUsTUFBTSxLQUFNLE1BQU0sR0FBRyxTQUFVLElBQUssQ0FBRSxDQUFFO0FBQUEsY0FDbEUsQ0FBRTtBQUFBLFlBQ0g7QUFFQSx5QkFBYSxlQUFnQixLQUFNO0FBRW5DLGdCQUFLLFdBQVcsUUFBUztBQUN4QixxQkFBTyxLQUFLLEtBQU0sV0FBVztBQUM1QiwyQkFBVyxTQUFVLElBQUs7QUFDMUIsc0JBQU0sS0FBSyxhQUFhLEtBQU8sTUFBTSxpQkFBa0IsUUFBUyxJQUFJO0FBRXBFLG9CQUFLLEtBQU07QUFDVix1QkFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsS0FBTTtBQUN6QyxnQ0FBWSxXQUFZLENBQUU7QUFDMUIsd0JBQUssSUFBSSxRQUFTLE1BQU0sWUFBWSxHQUFJLElBQUksR0FBSTtBQUMvQyw2QkFBTyxZQUFZO0FBQUEsb0JBQ3BCO0FBQUEsa0JBQ0Q7QUFHQSwrQkFBYSxpQkFBa0IsR0FBSTtBQUNuQyxzQkFBSyxhQUFhLFlBQWE7QUFDOUIseUJBQUssYUFBYyxTQUFTLFVBQVc7QUFBQSxrQkFDeEM7QUFBQSxnQkFDRDtBQUFBLGNBQ0QsQ0FBRTtBQUFBLFlBQ0g7QUFFQSxtQkFBTztBQUFBLFVBQ1I7QUFBQSxVQUVBLGFBQWEsU0FBVSxPQUFRO0FBQzlCLGdCQUFJLFlBQVksS0FBSyxVQUFVLFdBQVcsR0FBRztBQUU3QyxnQkFBSyxXQUFZLEtBQU0sR0FBSTtBQUMxQixxQkFBTyxLQUFLLEtBQU0sU0FBVSxHQUFJO0FBQy9CLHVCQUFRLElBQUssRUFBRSxZQUFhLE1BQU0sS0FBTSxNQUFNLEdBQUcsU0FBVSxJQUFLLENBQUUsQ0FBRTtBQUFBLGNBQ3JFLENBQUU7QUFBQSxZQUNIO0FBRUEsZ0JBQUssQ0FBQyxVQUFVLFFBQVM7QUFDeEIscUJBQU8sS0FBSyxLQUFNLFNBQVMsRUFBRztBQUFBLFlBQy9CO0FBRUEseUJBQWEsZUFBZ0IsS0FBTTtBQUVuQyxnQkFBSyxXQUFXLFFBQVM7QUFDeEIscUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIsMkJBQVcsU0FBVSxJQUFLO0FBRzFCLHNCQUFNLEtBQUssYUFBYSxLQUFPLE1BQU0saUJBQWtCLFFBQVMsSUFBSTtBQUVwRSxvQkFBSyxLQUFNO0FBQ1YsdUJBQU0sSUFBSSxHQUFHLElBQUksV0FBVyxRQUFRLEtBQU07QUFDekMsZ0NBQVksV0FBWSxDQUFFO0FBRzFCLDJCQUFRLElBQUksUUFBUyxNQUFNLFlBQVksR0FBSSxJQUFJLElBQUs7QUFDbkQsNEJBQU0sSUFBSSxRQUFTLE1BQU0sWUFBWSxLQUFLLEdBQUk7QUFBQSxvQkFDL0M7QUFBQSxrQkFDRDtBQUdBLCtCQUFhLGlCQUFrQixHQUFJO0FBQ25DLHNCQUFLLGFBQWEsWUFBYTtBQUM5Qix5QkFBSyxhQUFjLFNBQVMsVUFBVztBQUFBLGtCQUN4QztBQUFBLGdCQUNEO0FBQUEsY0FDRCxDQUFFO0FBQUEsWUFDSDtBQUVBLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFVBRUEsYUFBYSxTQUFVLE9BQU8sVUFBVztBQUN4QyxnQkFBSSxZQUFZLFdBQVcsR0FBR04sT0FDN0IsT0FBTyxPQUFPLE9BQ2QsZUFBZSxTQUFTLFlBQVksTUFBTSxRQUFTLEtBQU07QUFFMUQsZ0JBQUssV0FBWSxLQUFNLEdBQUk7QUFDMUIscUJBQU8sS0FBSyxLQUFNLFNBQVVULElBQUk7QUFDL0IsdUJBQVEsSUFBSyxFQUFFO0FBQUEsa0JBQ2QsTUFBTSxLQUFNLE1BQU1BLElBQUcsU0FBVSxJQUFLLEdBQUcsUUFBUztBQUFBLGtCQUNoRDtBQUFBLGdCQUNEO0FBQUEsY0FDRCxDQUFFO0FBQUEsWUFDSDtBQUVBLGdCQUFLLE9BQU8sYUFBYSxhQUFhLGNBQWU7QUFDcEQscUJBQU8sV0FBVyxLQUFLLFNBQVUsS0FBTSxJQUFJLEtBQUssWUFBYSxLQUFNO0FBQUEsWUFDcEU7QUFFQSx5QkFBYSxlQUFnQixLQUFNO0FBRW5DLG1CQUFPLEtBQUssS0FBTSxXQUFXO0FBQzVCLGtCQUFLLGNBQWU7QUFHbkIsZ0JBQUFTLFFBQU8sT0FBUSxJQUFLO0FBRXBCLHFCQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsUUFBUSxLQUFNO0FBQ3pDLDhCQUFZLFdBQVksQ0FBRTtBQUcxQixzQkFBS0EsTUFBSyxTQUFVLFNBQVUsR0FBSTtBQUNqQyxvQkFBQUEsTUFBSyxZQUFhLFNBQVU7QUFBQSxrQkFDN0IsT0FBTztBQUNOLG9CQUFBQSxNQUFLLFNBQVUsU0FBVTtBQUFBLGtCQUMxQjtBQUFBLGdCQUNEO0FBQUEsY0FHRCxXQUFZLFVBQVUsVUFBYSxTQUFTLFdBQVk7QUFDdkQsNEJBQVksU0FBVSxJQUFLO0FBQzNCLG9CQUFLLFdBQVk7QUFHaEIsMkJBQVMsSUFBSyxNQUFNLGlCQUFpQixTQUFVO0FBQUEsZ0JBQ2hEO0FBTUEsb0JBQUssS0FBSyxjQUFlO0FBQ3hCLHVCQUFLO0FBQUEsb0JBQWM7QUFBQSxvQkFDbEIsYUFBYSxVQUFVLFFBQ3RCLEtBQ0EsU0FBUyxJQUFLLE1BQU0sZUFBZ0IsS0FBSztBQUFBLGtCQUMzQztBQUFBLGdCQUNEO0FBQUEsY0FDRDtBQUFBLFlBQ0QsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUVBLFVBQVUsU0FBVSxVQUFXO0FBQzlCLGdCQUFJLFdBQVcsTUFDZCxJQUFJO0FBRUwsd0JBQVksTUFBTSxXQUFXO0FBQzdCLG1CQUFVLE9BQU8sS0FBTSxHQUFJLEdBQU07QUFDaEMsa0JBQUssS0FBSyxhQUFhLE1BQ3BCLE1BQU0saUJBQWtCLFNBQVUsSUFBSyxDQUFFLElBQUksS0FBTSxRQUFTLFNBQVUsSUFBSSxJQUFLO0FBQ2pGLHVCQUFPO0FBQUEsY0FDUjtBQUFBLFlBQ0Q7QUFFQSxtQkFBTztBQUFBLFVBQ1I7QUFBQSxRQUNELENBQUU7QUFLRixZQUFJLFVBQVU7QUFFZCxlQUFPLEdBQUcsT0FBUTtBQUFBLFVBQ2pCLEtBQUssU0FBVSxPQUFRO0FBQ3RCLGdCQUFJLE9BQU8sS0FBSyxpQkFDZixPQUFPLEtBQU0sQ0FBRTtBQUVoQixnQkFBSyxDQUFDLFVBQVUsUUFBUztBQUN4QixrQkFBSyxNQUFPO0FBQ1gsd0JBQVEsT0FBTyxTQUFVLEtBQUssSUFBSyxLQUNsQyxPQUFPLFNBQVUsS0FBSyxTQUFTLFlBQVksQ0FBRTtBQUU5QyxvQkFBSyxTQUNKLFNBQVMsVUFDUCxNQUFNLE1BQU0sSUFBSyxNQUFNLE9BQVEsT0FBUSxRQUN4QztBQUNELHlCQUFPO0FBQUEsZ0JBQ1I7QUFFQSxzQkFBTSxLQUFLO0FBR1gsb0JBQUssT0FBTyxRQUFRLFVBQVc7QUFDOUIseUJBQU8sSUFBSSxRQUFTLFNBQVMsRUFBRztBQUFBLGdCQUNqQztBQUdBLHVCQUFPLE9BQU8sT0FBTyxLQUFLO0FBQUEsY0FDM0I7QUFFQTtBQUFBLFlBQ0Q7QUFFQSw4QkFBa0IsV0FBWSxLQUFNO0FBRXBDLG1CQUFPLEtBQUssS0FBTSxTQUFVLEdBQUk7QUFDL0Isa0JBQUk7QUFFSixrQkFBSyxLQUFLLGFBQWEsR0FBSTtBQUMxQjtBQUFBLGNBQ0Q7QUFFQSxrQkFBSyxpQkFBa0I7QUFDdEIsc0JBQU0sTUFBTSxLQUFNLE1BQU0sR0FBRyxPQUFRLElBQUssRUFBRSxJQUFJLENBQUU7QUFBQSxjQUNqRCxPQUFPO0FBQ04sc0JBQU07QUFBQSxjQUNQO0FBR0Esa0JBQUssT0FBTyxNQUFPO0FBQ2xCLHNCQUFNO0FBQUEsY0FFUCxXQUFZLE9BQU8sUUFBUSxVQUFXO0FBQ3JDLHVCQUFPO0FBQUEsY0FFUixXQUFZLE1BQU0sUUFBUyxHQUFJLEdBQUk7QUFDbEMsc0JBQU0sT0FBTyxJQUFLLEtBQUssU0FBVUMsUUFBUTtBQUN4Qyx5QkFBT0EsVUFBUyxPQUFPLEtBQUtBLFNBQVE7QUFBQSxnQkFDckMsQ0FBRTtBQUFBLGNBQ0g7QUFFQSxzQkFBUSxPQUFPLFNBQVUsS0FBSyxJQUFLLEtBQUssT0FBTyxTQUFVLEtBQUssU0FBUyxZQUFZLENBQUU7QUFHckYsa0JBQUssQ0FBQyxTQUFTLEVBQUcsU0FBUyxVQUFXLE1BQU0sSUFBSyxNQUFNLEtBQUssT0FBUSxNQUFNLFFBQVk7QUFDckYscUJBQUssUUFBUTtBQUFBLGNBQ2Q7QUFBQSxZQUNELENBQUU7QUFBQSxVQUNIO0FBQUEsUUFDRCxDQUFFO0FBRUYsZUFBTyxPQUFRO0FBQUEsVUFDZCxVQUFVO0FBQUEsWUFDVCxRQUFRO0FBQUEsY0FDUCxLQUFLLFNBQVUsTUFBTztBQUVyQixvQkFBSSxNQUFNLE9BQU8sS0FBSyxLQUFNLE1BQU0sT0FBUTtBQUMxQyx1QkFBTyxPQUFPLE9BQ2I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGtCQU1BLGlCQUFrQixPQUFPLEtBQU0sSUFBSyxDQUFFO0FBQUE7QUFBQSxjQUN4QztBQUFBLFlBQ0Q7QUFBQSxZQUNBLFFBQVE7QUFBQSxjQUNQLEtBQUssU0FBVSxNQUFPO0FBQ3JCLG9CQUFJLE9BQU8sUUFBUSxHQUNsQixVQUFVLEtBQUssU0FDZixRQUFRLEtBQUssZUFDYixNQUFNLEtBQUssU0FBUyxjQUNwQixTQUFTLE1BQU0sT0FBTyxDQUFDLEdBQ3ZCUyxPQUFNLE1BQU0sUUFBUSxJQUFJLFFBQVE7QUFFakMsb0JBQUssUUFBUSxHQUFJO0FBQ2hCLHNCQUFJQTtBQUFBLGdCQUVMLE9BQU87QUFDTixzQkFBSSxNQUFNLFFBQVE7QUFBQSxnQkFDbkI7QUFHQSx1QkFBUSxJQUFJQSxNQUFLLEtBQU07QUFDdEIsMkJBQVMsUUFBUyxDQUFFO0FBSXBCLHVCQUFPLE9BQU8sWUFBWSxNQUFNO0FBQUEsa0JBRzlCLENBQUMsT0FBTyxhQUNOLENBQUMsT0FBTyxXQUFXLFlBQ3BCLENBQUMsU0FBVSxPQUFPLFlBQVksVUFBVyxJQUFNO0FBR2pELDRCQUFRLE9BQVEsTUFBTyxFQUFFLElBQUk7QUFHN0Isd0JBQUssS0FBTTtBQUNWLDZCQUFPO0FBQUEsb0JBQ1I7QUFHQSwyQkFBTyxLQUFNLEtBQU07QUFBQSxrQkFDcEI7QUFBQSxnQkFDRDtBQUVBLHVCQUFPO0FBQUEsY0FDUjtBQUFBLGNBRUEsS0FBSyxTQUFVLE1BQU0sT0FBUTtBQUM1QixvQkFBSSxXQUFXLFFBQ2QsVUFBVSxLQUFLLFNBQ2YsU0FBUyxPQUFPLFVBQVcsS0FBTSxHQUNqQyxJQUFJLFFBQVE7QUFFYix1QkFBUSxLQUFNO0FBQ2IsMkJBQVMsUUFBUyxDQUFFO0FBSXBCLHNCQUFLLE9BQU8sV0FDWCxPQUFPLFFBQVMsT0FBTyxTQUFTLE9BQU8sSUFBSyxNQUFPLEdBQUcsTUFBTyxJQUFJLElBQ2hFO0FBQ0QsZ0NBQVk7QUFBQSxrQkFDYjtBQUFBLGdCQUdEO0FBR0Esb0JBQUssQ0FBQyxXQUFZO0FBQ2pCLHVCQUFLLGdCQUFnQjtBQUFBLGdCQUN0QjtBQUNBLHVCQUFPO0FBQUEsY0FDUjtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsUUFDRCxDQUFFO0FBR0YsZUFBTyxLQUFNLENBQUUsU0FBUyxVQUFXLEdBQUcsV0FBVztBQUNoRCxpQkFBTyxTQUFVLElBQUssSUFBSTtBQUFBLFlBQ3pCLEtBQUssU0FBVSxNQUFNLE9BQVE7QUFDNUIsa0JBQUssTUFBTSxRQUFTLEtBQU0sR0FBSTtBQUM3Qix1QkFBUyxLQUFLLFVBQVUsT0FBTyxRQUFTLE9BQVEsSUFBSyxFQUFFLElBQUksR0FBRyxLQUFNLElBQUk7QUFBQSxjQUN6RTtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQ0EsY0FBSyxDQUFDLFFBQVEsU0FBVTtBQUN2QixtQkFBTyxTQUFVLElBQUssRUFBRSxNQUFNLFNBQVUsTUFBTztBQUM5QyxxQkFBTyxLQUFLLGFBQWMsT0FBUSxNQUFNLE9BQU8sT0FBTyxLQUFLO0FBQUEsWUFDNUQ7QUFBQSxVQUNEO0FBQUEsUUFDRCxDQUFFO0FBTUYsWUFBSUMsWUFBVy9CLFFBQU87QUFFdEIsWUFBSSxRQUFRLEVBQUUsTUFBTSxLQUFLLElBQUksRUFBRTtBQUUvQixZQUFJLFNBQVc7QUFLZixlQUFPLFdBQVcsU0FBVSxNQUFPO0FBQ2xDLGNBQUksS0FBSztBQUNULGNBQUssQ0FBQyxRQUFRLE9BQU8sU0FBUyxVQUFXO0FBQ3hDLG1CQUFPO0FBQUEsVUFDUjtBQUlBLGNBQUk7QUFDSCxrQkFBUSxJQUFJQSxRQUFPLFVBQVUsRUFBSSxnQkFBaUIsTUFBTSxVQUFXO0FBQUEsVUFDcEUsU0FBVSxHQUFJO0FBQUEsVUFBQztBQUVmLDRCQUFrQixPQUFPLElBQUkscUJBQXNCLGFBQWMsRUFBRyxDQUFFO0FBQ3RFLGNBQUssQ0FBQyxPQUFPLGlCQUFrQjtBQUM5QixtQkFBTyxNQUFPLG1CQUNiLGtCQUNDLE9BQU8sSUFBSyxnQkFBZ0IsWUFBWSxTQUFVLElBQUs7QUFDdEQscUJBQU8sR0FBRztBQUFBLFlBQ1gsQ0FBRSxFQUFFLEtBQU0sSUFBSyxJQUNmLEtBQ0E7QUFBQSxVQUNIO0FBQ0EsaUJBQU87QUFBQSxRQUNSO0FBR0EsWUFBSSxjQUFjLG1DQUNqQiwwQkFBMEIsU0FBVSxHQUFJO0FBQ3ZDLFlBQUUsZ0JBQWdCO0FBQUEsUUFDbkI7QUFFRCxlQUFPLE9BQVEsT0FBTyxPQUFPO0FBQUEsVUFFNUIsU0FBUyxTQUFVLE9BQU8sTUFBTSxNQUFNLGNBQWU7QUFFcEQsZ0JBQUksR0FBRyxLQUFLLEtBQUssWUFBWSxRQUFRLFFBQVEsU0FBUyxhQUNyRCxZQUFZLENBQUUsUUFBUUcsU0FBUyxHQUMvQixPQUFPLE9BQU8sS0FBTSxPQUFPLE1BQU8sSUFBSSxNQUFNLE9BQU8sT0FDbkQsYUFBYSxPQUFPLEtBQU0sT0FBTyxXQUFZLElBQUksTUFBTSxVQUFVLE1BQU8sR0FBSSxJQUFJLENBQUM7QUFFbEYsa0JBQU0sY0FBYyxNQUFNLE9BQU8sUUFBUUE7QUFHekMsZ0JBQUssS0FBSyxhQUFhLEtBQUssS0FBSyxhQUFhLEdBQUk7QUFDakQ7QUFBQSxZQUNEO0FBR0EsZ0JBQUssWUFBWSxLQUFNLE9BQU8sT0FBTyxNQUFNLFNBQVUsR0FBSTtBQUN4RDtBQUFBLFlBQ0Q7QUFFQSxnQkFBSyxLQUFLLFFBQVMsR0FBSSxJQUFJLElBQUs7QUFHL0IsMkJBQWEsS0FBSyxNQUFPLEdBQUk7QUFDN0IscUJBQU8sV0FBVyxNQUFNO0FBQ3hCLHlCQUFXLEtBQUs7QUFBQSxZQUNqQjtBQUNBLHFCQUFTLEtBQUssUUFBUyxHQUFJLElBQUksS0FBSyxPQUFPO0FBRzNDLG9CQUFRLE1BQU8sT0FBTyxPQUFRLElBQzdCLFFBQ0EsSUFBSSxPQUFPLE1BQU8sTUFBTSxPQUFPLFVBQVUsWUFBWSxLQUFNO0FBRzVELGtCQUFNLFlBQVksZUFBZSxJQUFJO0FBQ3JDLGtCQUFNLFlBQVksV0FBVyxLQUFNLEdBQUk7QUFDdkMsa0JBQU0sYUFBYSxNQUFNLFlBQ3hCLElBQUksT0FBUSxZQUFZLFdBQVcsS0FBTSxlQUFnQixJQUFJLFNBQVUsSUFDdkU7QUFHRCxrQkFBTSxTQUFTO0FBQ2YsZ0JBQUssQ0FBQyxNQUFNLFFBQVM7QUFDcEIsb0JBQU0sU0FBUztBQUFBLFlBQ2hCO0FBR0EsbUJBQU8sUUFBUSxPQUNkLENBQUUsS0FBTSxJQUNSLE9BQU8sVUFBVyxNQUFNLENBQUUsS0FBTSxDQUFFO0FBR25DLHNCQUFVLE9BQU8sTUFBTSxRQUFTLElBQUssS0FBSyxDQUFDO0FBQzNDLGdCQUFLLENBQUMsZ0JBQWdCLFFBQVEsV0FBVyxRQUFRLFFBQVEsTUFBTyxNQUFNLElBQUssTUFBTSxPQUFRO0FBQ3hGO0FBQUEsWUFDRDtBQUlBLGdCQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxZQUFZLENBQUMsU0FBVSxJQUFLLEdBQUk7QUFFOUQsMkJBQWEsUUFBUSxnQkFBZ0I7QUFDckMsa0JBQUssQ0FBQyxZQUFZLEtBQU0sYUFBYSxJQUFLLEdBQUk7QUFDN0Msc0JBQU0sSUFBSTtBQUFBLGNBQ1g7QUFDQSxxQkFBUSxLQUFLLE1BQU0sSUFBSSxZQUFhO0FBQ25DLDBCQUFVLEtBQU0sR0FBSTtBQUNwQixzQkFBTTtBQUFBLGNBQ1A7QUFHQSxrQkFBSyxTQUFVLEtBQUssaUJBQWlCQSxZQUFhO0FBQ2pELDBCQUFVLEtBQU0sSUFBSSxlQUFlLElBQUksZ0JBQWdCSCxPQUFPO0FBQUEsY0FDL0Q7QUFBQSxZQUNEO0FBR0EsZ0JBQUk7QUFDSixvQkFBVSxNQUFNLFVBQVcsR0FBSSxNQUFPLENBQUMsTUFBTSxxQkFBcUIsR0FBSTtBQUNyRSw0QkFBYztBQUNkLG9CQUFNLE9BQU8sSUFBSSxJQUNoQixhQUNBLFFBQVEsWUFBWTtBQUdyQix3QkFBVyxTQUFTLElBQUssS0FBSyxRQUFTLEtBQUssdUJBQU8sT0FBUSxJQUFLLEdBQUssTUFBTSxJQUFLLEtBQy9FLFNBQVMsSUFBSyxLQUFLLFFBQVM7QUFDN0Isa0JBQUssUUFBUztBQUNiLHVCQUFPLE1BQU8sS0FBSyxJQUFLO0FBQUEsY0FDekI7QUFHQSx1QkFBUyxVQUFVLElBQUssTUFBTztBQUMvQixrQkFBSyxVQUFVLE9BQU8sU0FBUyxXQUFZLEdBQUksR0FBSTtBQUNsRCxzQkFBTSxTQUFTLE9BQU8sTUFBTyxLQUFLLElBQUs7QUFDdkMsb0JBQUssTUFBTSxXQUFXLE9BQVE7QUFDN0Isd0JBQU0sZUFBZTtBQUFBLGdCQUN0QjtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBQ0Esa0JBQU0sT0FBTztBQUdiLGdCQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxtQkFBbUIsR0FBSTtBQUVuRCxtQkFBTyxDQUFDLFFBQVEsWUFDZixRQUFRLFNBQVMsTUFBTyxVQUFVLElBQUksR0FBRyxJQUFLLE1BQU0sVUFDcEQsV0FBWSxJQUFLLEdBQUk7QUFJckIsb0JBQUssVUFBVSxXQUFZLEtBQU0sSUFBSyxDQUFFLEtBQUssQ0FBQyxTQUFVLElBQUssR0FBSTtBQUdoRSx3QkFBTSxLQUFNLE1BQU87QUFFbkIsc0JBQUssS0FBTTtBQUNWLHlCQUFNLE1BQU8sSUFBSTtBQUFBLGtCQUNsQjtBQUdBLHlCQUFPLE1BQU0sWUFBWTtBQUV6QixzQkFBSyxNQUFNLHFCQUFxQixHQUFJO0FBQ25DLGdDQUFZLGlCQUFrQixNQUFNLHVCQUF3QjtBQUFBLGtCQUM3RDtBQUVBLHVCQUFNLElBQUssRUFBRTtBQUViLHNCQUFLLE1BQU0scUJBQXFCLEdBQUk7QUFDbkMsZ0NBQVksb0JBQXFCLE1BQU0sdUJBQXdCO0FBQUEsa0JBQ2hFO0FBRUEseUJBQU8sTUFBTSxZQUFZO0FBRXpCLHNCQUFLLEtBQU07QUFDVix5QkFBTSxNQUFPLElBQUk7QUFBQSxrQkFDbEI7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBRUEsbUJBQU8sTUFBTTtBQUFBLFVBQ2Q7QUFBQTtBQUFBO0FBQUEsVUFJQSxVQUFVLFNBQVUsTUFBTSxNQUFNLE9BQVE7QUFDdkMsZ0JBQUksSUFBSSxPQUFPO0FBQUEsY0FDZCxJQUFJLE9BQU8sTUFBTTtBQUFBLGNBQ2pCO0FBQUEsY0FDQTtBQUFBLGdCQUNDO0FBQUEsZ0JBQ0EsYUFBYTtBQUFBLGNBQ2Q7QUFBQSxZQUNEO0FBRUEsbUJBQU8sTUFBTSxRQUFTLEdBQUcsTUFBTSxJQUFLO0FBQUEsVUFDckM7QUFBQSxRQUVELENBQUU7QUFFRixlQUFPLEdBQUcsT0FBUTtBQUFBLFVBRWpCLFNBQVMsU0FBVSxNQUFNLE1BQU87QUFDL0IsbUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIscUJBQU8sTUFBTSxRQUFTLE1BQU0sTUFBTSxJQUFLO0FBQUEsWUFDeEMsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUNBLGdCQUFnQixTQUFVLE1BQU0sTUFBTztBQUN0QyxnQkFBSSxPQUFPLEtBQU0sQ0FBRTtBQUNuQixnQkFBSyxNQUFPO0FBQ1gscUJBQU8sT0FBTyxNQUFNLFFBQVMsTUFBTSxNQUFNLE1BQU0sSUFBSztBQUFBLFlBQ3JEO0FBQUEsVUFDRDtBQUFBLFFBQ0QsQ0FBRTtBQUdGLFlBQ0MsV0FBVyxTQUNYLFFBQVEsVUFDUixrQkFBa0IseUNBQ2xCLGVBQWU7QUFFaEIsaUJBQVMsWUFBYSxRQUFRLEtBQUssYUFBYSxLQUFNO0FBQ3JELGNBQUk7QUFFSixjQUFLLE1BQU0sUUFBUyxHQUFJLEdBQUk7QUFHM0IsbUJBQU8sS0FBTSxLQUFLLFNBQVUsR0FBRyxHQUFJO0FBQ2xDLGtCQUFLLGVBQWUsU0FBUyxLQUFNLE1BQU8sR0FBSTtBQUc3QyxvQkFBSyxRQUFRLENBQUU7QUFBQSxjQUVoQixPQUFPO0FBR047QUFBQSxrQkFDQyxTQUFTLE9BQVEsT0FBTyxNQUFNLFlBQVksS0FBSyxPQUFPLElBQUksTUFBTztBQUFBLGtCQUNqRTtBQUFBLGtCQUNBO0FBQUEsa0JBQ0E7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFBQSxZQUNELENBQUU7QUFBQSxVQUVILFdBQVksQ0FBQyxlQUFlSyxRQUFRLEdBQUksTUFBTSxVQUFXO0FBR3hELGlCQUFNLFFBQVEsS0FBTTtBQUNuQiwwQkFBYSxTQUFTLE1BQU0sT0FBTyxLQUFLLElBQUssSUFBSyxHQUFHLGFBQWEsR0FBSTtBQUFBLFlBQ3ZFO0FBQUEsVUFFRCxPQUFPO0FBR04sZ0JBQUssUUFBUSxHQUFJO0FBQUEsVUFDbEI7QUFBQSxRQUNEO0FBSUEsZUFBTyxRQUFRLFNBQVUsR0FBRyxhQUFjO0FBQ3pDLGNBQUksUUFDSCxJQUFJLENBQUMsR0FDTCxNQUFNLFNBQVUsS0FBSyxpQkFBa0I7QUFHdEMsZ0JBQUksUUFBUSxXQUFZLGVBQWdCLElBQ3ZDLGdCQUFnQixJQUNoQjtBQUVELGNBQUcsRUFBRSxNQUFPLElBQUksbUJBQW9CLEdBQUksSUFBSSxNQUMzQyxtQkFBb0IsU0FBUyxPQUFPLEtBQUssS0FBTTtBQUFBLFVBQ2pEO0FBRUQsY0FBSyxLQUFLLE1BQU87QUFDaEIsbUJBQU87QUFBQSxVQUNSO0FBR0EsY0FBSyxNQUFNLFFBQVMsQ0FBRSxLQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sY0FBZSxDQUFFLEdBQU07QUFHdkUsbUJBQU8sS0FBTSxHQUFHLFdBQVc7QUFDMUIsa0JBQUssS0FBSyxNQUFNLEtBQUssS0FBTTtBQUFBLFlBQzVCLENBQUU7QUFBQSxVQUVILE9BQU87QUFJTixpQkFBTSxVQUFVLEdBQUk7QUFDbkIsMEJBQWEsUUFBUSxFQUFHLE1BQU8sR0FBRyxhQUFhLEdBQUk7QUFBQSxZQUNwRDtBQUFBLFVBQ0Q7QUFHQSxpQkFBTyxFQUFFLEtBQU0sR0FBSTtBQUFBLFFBQ3BCO0FBRUEsZUFBTyxHQUFHLE9BQVE7QUFBQSxVQUNqQixXQUFXLFdBQVc7QUFDckIsbUJBQU8sT0FBTyxNQUFPLEtBQUssZUFBZSxDQUFFO0FBQUEsVUFDNUM7QUFBQSxVQUNBLGdCQUFnQixXQUFXO0FBQzFCLG1CQUFPLEtBQUssSUFBSyxXQUFXO0FBRzNCLGtCQUFJLFdBQVcsT0FBTyxLQUFNLE1BQU0sVUFBVztBQUM3QyxxQkFBTyxXQUFXLE9BQU8sVUFBVyxRQUFTLElBQUk7QUFBQSxZQUNsRCxDQUFFLEVBQUUsT0FBUSxXQUFXO0FBQ3RCLGtCQUFJLE9BQU8sS0FBSztBQUdoQixxQkFBTyxLQUFLLFFBQVEsQ0FBQyxPQUFRLElBQUssRUFBRSxHQUFJLFdBQVksS0FDbkQsYUFBYSxLQUFNLEtBQUssUUFBUyxLQUFLLENBQUMsZ0JBQWdCLEtBQU0sSUFBSyxNQUNoRSxLQUFLLFdBQVcsQ0FBQyxlQUFlLEtBQU0sSUFBSztBQUFBLFlBQy9DLENBQUUsRUFBRSxJQUFLLFNBQVUsSUFBSSxNQUFPO0FBQzdCLGtCQUFJLE1BQU0sT0FBUSxJQUFLLEVBQUUsSUFBSTtBQUU3QixrQkFBSyxPQUFPLE1BQU87QUFDbEIsdUJBQU87QUFBQSxjQUNSO0FBRUEsa0JBQUssTUFBTSxRQUFTLEdBQUksR0FBSTtBQUMzQix1QkFBTyxPQUFPLElBQUssS0FBSyxTQUFVMkIsTUFBTTtBQUN2Qyx5QkFBTyxFQUFFLE1BQU0sS0FBSyxNQUFNLE9BQU9BLEtBQUksUUFBUyxPQUFPLE1BQU8sRUFBRTtBQUFBLGdCQUMvRCxDQUFFO0FBQUEsY0FDSDtBQUVBLHFCQUFPLEVBQUUsTUFBTSxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVMsT0FBTyxNQUFPLEVBQUU7QUFBQSxZQUMvRCxDQUFFLEVBQUUsSUFBSTtBQUFBLFVBQ1Q7QUFBQSxRQUNELENBQUU7QUFHRixZQUNDLE1BQU0sUUFDTixRQUFRLFFBQ1IsYUFBYSxpQkFDYixXQUFXLDhCQUdYLGlCQUFpQiw2REFDakIsYUFBYSxrQkFDYixZQUFZLFNBV1osYUFBYSxDQUFDLEdBT2QsYUFBYSxDQUFDLEdBR2QsV0FBVyxLQUFLLE9BQVEsR0FBSSxHQUc1QixlQUFlN0IsVUFBUyxjQUFlLEdBQUk7QUFFNUMscUJBQWEsT0FBTzRCLFVBQVM7QUFHN0IsaUJBQVMsNEJBQTZCLFdBQVk7QUFHakQsaUJBQU8sU0FBVSxvQkFBb0IsTUFBTztBQUUzQyxnQkFBSyxPQUFPLHVCQUF1QixVQUFXO0FBQzdDLHFCQUFPO0FBQ1AsbUNBQXFCO0FBQUEsWUFDdEI7QUFFQSxnQkFBSSxVQUNILElBQUksR0FDSixZQUFZLG1CQUFtQixZQUFZLEVBQUUsTUFBTyxhQUFjLEtBQUssQ0FBQztBQUV6RSxnQkFBSyxXQUFZLElBQUssR0FBSTtBQUd6QixxQkFBVSxXQUFXLFVBQVcsR0FBSSxHQUFNO0FBR3pDLG9CQUFLLFNBQVUsQ0FBRSxNQUFNLEtBQU07QUFDNUIsNkJBQVcsU0FBUyxNQUFPLENBQUUsS0FBSztBQUNsQyxtQkFBRSxVQUFXLFFBQVMsSUFBSSxVQUFXLFFBQVMsS0FBSyxDQUFDLEdBQUksUUFBUyxJQUFLO0FBQUEsZ0JBR3ZFLE9BQU87QUFDTixtQkFBRSxVQUFXLFFBQVMsSUFBSSxVQUFXLFFBQVMsS0FBSyxDQUFDLEdBQUksS0FBTSxJQUFLO0FBQUEsZ0JBQ3BFO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUdBLGlCQUFTLDhCQUErQixXQUFXLFNBQVMsaUJBQWlCLE9BQVE7QUFFcEYsY0FBSSxZQUFZLENBQUMsR0FDaEIsbUJBQXFCLGNBQWM7QUFFcEMsbUJBQVMsUUFBUyxVQUFXO0FBQzVCLGdCQUFJO0FBQ0osc0JBQVcsUUFBUyxJQUFJO0FBQ3hCLG1CQUFPLEtBQU0sVUFBVyxRQUFTLEtBQUssQ0FBQyxHQUFHLFNBQVUsR0FBRyxvQkFBcUI7QUFDM0Usa0JBQUksc0JBQXNCLG1CQUFvQixTQUFTLGlCQUFpQixLQUFNO0FBQzlFLGtCQUFLLE9BQU8sd0JBQXdCLFlBQ25DLENBQUMsb0JBQW9CLENBQUMsVUFBVyxtQkFBb0IsR0FBSTtBQUV6RCx3QkFBUSxVQUFVLFFBQVMsbUJBQW9CO0FBQy9DLHdCQUFTLG1CQUFvQjtBQUM3Qix1QkFBTztBQUFBLGNBQ1IsV0FBWSxrQkFBbUI7QUFDOUIsdUJBQU8sRUFBRyxXQUFXO0FBQUEsY0FDdEI7QUFBQSxZQUNELENBQUU7QUFDRixtQkFBTztBQUFBLFVBQ1I7QUFFQSxpQkFBTyxRQUFTLFFBQVEsVUFBVyxDQUFFLENBQUUsS0FBSyxDQUFDLFVBQVcsR0FBSSxLQUFLLFFBQVMsR0FBSTtBQUFBLFFBQy9FO0FBS0EsaUJBQVMsV0FBWSxRQUFRLEtBQU07QUFDbEMsY0FBSSxLQUFLLE1BQ1IsY0FBYyxPQUFPLGFBQWEsZUFBZSxDQUFDO0FBRW5ELGVBQU0sT0FBTyxLQUFNO0FBQ2xCLGdCQUFLLElBQUssR0FBSSxNQUFNLFFBQVk7QUFDL0IsZUFBRSxZQUFhLEdBQUksSUFBSSxTQUFXLFNBQVUsT0FBTyxDQUFDLElBQVMsR0FBSSxJQUFJLElBQUssR0FBSTtBQUFBLFlBQy9FO0FBQUEsVUFDRDtBQUNBLGNBQUssTUFBTztBQUNYLG1CQUFPLE9BQVEsTUFBTSxRQUFRLElBQUs7QUFBQSxVQUNuQztBQUVBLGlCQUFPO0FBQUEsUUFDUjtBQU1BLGlCQUFTLG9CQUFxQixHQUFHLE9BQU8sV0FBWTtBQUVuRCxjQUFJLElBQUksTUFBTSxlQUFlLGVBQzVCLFdBQVcsRUFBRSxVQUNiLFlBQVksRUFBRTtBQUdmLGlCQUFRLFVBQVcsQ0FBRSxNQUFNLEtBQU07QUFDaEMsc0JBQVUsTUFBTTtBQUNoQixnQkFBSyxPQUFPLFFBQVk7QUFDdkIsbUJBQUssRUFBRSxZQUFZLE1BQU0sa0JBQW1CLGNBQWU7QUFBQSxZQUM1RDtBQUFBLFVBQ0Q7QUFHQSxjQUFLLElBQUs7QUFDVCxpQkFBTSxRQUFRLFVBQVc7QUFDeEIsa0JBQUssU0FBVSxJQUFLLEtBQUssU0FBVSxJQUFLLEVBQUUsS0FBTSxFQUFHLEdBQUk7QUFDdEQsMEJBQVUsUUFBUyxJQUFLO0FBQ3hCO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBR0EsY0FBSyxVQUFXLENBQUUsS0FBSyxXQUFZO0FBQ2xDLDRCQUFnQixVQUFXLENBQUU7QUFBQSxVQUM5QixPQUFPO0FBR04saUJBQU0sUUFBUSxXQUFZO0FBQ3pCLGtCQUFLLENBQUMsVUFBVyxDQUFFLEtBQUssRUFBRSxXQUFZLE9BQU8sTUFBTSxVQUFXLENBQUUsQ0FBRSxHQUFJO0FBQ3JFLGdDQUFnQjtBQUNoQjtBQUFBLGNBQ0Q7QUFDQSxrQkFBSyxDQUFDLGVBQWdCO0FBQ3JCLGdDQUFnQjtBQUFBLGNBQ2pCO0FBQUEsWUFDRDtBQUdBLDRCQUFnQixpQkFBaUI7QUFBQSxVQUNsQztBQUtBLGNBQUssZUFBZ0I7QUFDcEIsZ0JBQUssa0JBQWtCLFVBQVcsQ0FBRSxHQUFJO0FBQ3ZDLHdCQUFVLFFBQVMsYUFBYztBQUFBLFlBQ2xDO0FBQ0EsbUJBQU8sVUFBVyxhQUFjO0FBQUEsVUFDakM7QUFBQSxRQUNEO0FBS0EsaUJBQVMsWUFBYSxHQUFHLFVBQVUsT0FBTyxXQUFZO0FBQ3JELGNBQUksT0FBTyxTQUFTLE1BQU0sS0FBSyxNQUM5QixhQUFhLENBQUMsR0FHZCxZQUFZLEVBQUUsVUFBVSxNQUFNO0FBRy9CLGNBQUssVUFBVyxDQUFFLEdBQUk7QUFDckIsaUJBQU0sUUFBUSxFQUFFLFlBQWE7QUFDNUIseUJBQVksS0FBSyxZQUFZLENBQUUsSUFBSSxFQUFFLFdBQVksSUFBSztBQUFBLFlBQ3ZEO0FBQUEsVUFDRDtBQUVBLG9CQUFVLFVBQVUsTUFBTTtBQUcxQixpQkFBUSxTQUFVO0FBRWpCLGdCQUFLLEVBQUUsZUFBZ0IsT0FBUSxHQUFJO0FBQ2xDLG9CQUFPLEVBQUUsZUFBZ0IsT0FBUSxDQUFFLElBQUk7QUFBQSxZQUN4QztBQUdBLGdCQUFLLENBQUMsUUFBUSxhQUFhLEVBQUUsWUFBYTtBQUN6Qyx5QkFBVyxFQUFFLFdBQVksVUFBVSxFQUFFLFFBQVM7QUFBQSxZQUMvQztBQUVBLG1CQUFPO0FBQ1Asc0JBQVUsVUFBVSxNQUFNO0FBRTFCLGdCQUFLLFNBQVU7QUFHZCxrQkFBSyxZQUFZLEtBQU07QUFFdEIsMEJBQVU7QUFBQSxjQUdYLFdBQVksU0FBUyxPQUFPLFNBQVMsU0FBVTtBQUc5Qyx1QkFBTyxXQUFZLE9BQU8sTUFBTSxPQUFRLEtBQUssV0FBWSxPQUFPLE9BQVE7QUFHeEUsb0JBQUssQ0FBQyxNQUFPO0FBQ1osdUJBQU0sU0FBUyxZQUFhO0FBRzNCLDBCQUFNLE1BQU0sTUFBTyxHQUFJO0FBQ3ZCLHdCQUFLLElBQUssQ0FBRSxNQUFNLFNBQVU7QUFHM0IsNkJBQU8sV0FBWSxPQUFPLE1BQU0sSUFBSyxDQUFFLENBQUUsS0FDeEMsV0FBWSxPQUFPLElBQUssQ0FBRSxDQUFFO0FBQzdCLDBCQUFLLE1BQU87QUFHWCw0QkFBSyxTQUFTLE1BQU87QUFDcEIsaUNBQU8sV0FBWSxLQUFNO0FBQUEsd0JBRzFCLFdBQVksV0FBWSxLQUFNLE1BQU0sTUFBTztBQUMxQyxvQ0FBVSxJQUFLLENBQUU7QUFDakIsb0NBQVUsUUFBUyxJQUFLLENBQUUsQ0FBRTtBQUFBLHdCQUM3QjtBQUNBO0FBQUEsc0JBQ0Q7QUFBQSxvQkFDRDtBQUFBLGtCQUNEO0FBQUEsZ0JBQ0Q7QUFHQSxvQkFBSyxTQUFTLE1BQU87QUFHcEIsc0JBQUssUUFBUSxFQUFFLFFBQVM7QUFDdkIsK0JBQVcsS0FBTSxRQUFTO0FBQUEsa0JBQzNCLE9BQU87QUFDTix3QkFBSTtBQUNILGlDQUFXLEtBQU0sUUFBUztBQUFBLG9CQUMzQixTQUFVLEdBQUk7QUFDYiw2QkFBTztBQUFBLHdCQUNOLE9BQU87QUFBQSx3QkFDUCxPQUFPLE9BQU8sSUFBSSx3QkFBd0IsT0FBTyxTQUFTO0FBQUEsc0JBQzNEO0FBQUEsb0JBQ0Q7QUFBQSxrQkFDRDtBQUFBLGdCQUNEO0FBQUEsY0FDRDtBQUFBLFlBQ0Q7QUFBQSxVQUNEO0FBRUEsaUJBQU8sRUFBRSxPQUFPLFdBQVcsTUFBTSxTQUFTO0FBQUEsUUFDM0M7QUFFQSxlQUFPLE9BQVE7QUFBQTtBQUFBLFVBR2QsUUFBUTtBQUFBO0FBQUEsVUFHUixjQUFjLENBQUM7QUFBQSxVQUNmLE1BQU0sQ0FBQztBQUFBLFVBRVAsY0FBYztBQUFBLFlBQ2IsS0FBS0EsVUFBUztBQUFBLFlBQ2QsTUFBTTtBQUFBLFlBQ04sU0FBUyxlQUFlLEtBQU1BLFVBQVMsUUFBUztBQUFBLFlBQ2hELFFBQVE7QUFBQSxZQUNSLGFBQWE7QUFBQSxZQUNiLE9BQU87QUFBQSxZQUNQLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFjYixTQUFTO0FBQUEsY0FDUixLQUFLO0FBQUEsY0FDTCxNQUFNO0FBQUEsY0FDTixNQUFNO0FBQUEsY0FDTixLQUFLO0FBQUEsY0FDTCxNQUFNO0FBQUEsWUFDUDtBQUFBLFlBRUEsVUFBVTtBQUFBLGNBQ1QsS0FBSztBQUFBLGNBQ0wsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1A7QUFBQSxZQUVBLGdCQUFnQjtBQUFBLGNBQ2YsS0FBSztBQUFBLGNBQ0wsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBLFlBQ1A7QUFBQTtBQUFBO0FBQUEsWUFJQSxZQUFZO0FBQUE7QUFBQSxjQUdYLFVBQVU7QUFBQTtBQUFBLGNBR1YsYUFBYTtBQUFBO0FBQUEsY0FHYixhQUFhLEtBQUs7QUFBQTtBQUFBLGNBR2xCLFlBQVksT0FBTztBQUFBLFlBQ3BCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU1BLGFBQWE7QUFBQSxjQUNaLEtBQUs7QUFBQSxjQUNMLFNBQVM7QUFBQSxZQUNWO0FBQUEsVUFDRDtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBS0EsV0FBVyxTQUFVLFFBQVEsVUFBVztBQUN2QyxtQkFBTztBQUFBO0FBQUEsY0FHTixXQUFZLFdBQVksUUFBUSxPQUFPLFlBQWEsR0FBRyxRQUFTO0FBQUE7QUFBQTtBQUFBLGNBR2hFLFdBQVksT0FBTyxjQUFjLE1BQU87QUFBQTtBQUFBLFVBQzFDO0FBQUEsVUFFQSxlQUFlLDRCQUE2QixVQUFXO0FBQUEsVUFDdkQsZUFBZSw0QkFBNkIsVUFBVztBQUFBO0FBQUEsVUFHdkQsTUFBTSxTQUFVLEtBQUssU0FBVTtBQUc5QixnQkFBSyxPQUFPLFFBQVEsVUFBVztBQUM5Qix3QkFBVTtBQUNWLG9CQUFNO0FBQUEsWUFDUDtBQUdBLHNCQUFVLFdBQVcsQ0FBQztBQUV0QixnQkFBSSxXQUdILFVBR0EsdUJBQ0EsaUJBR0EsY0FHQSxXQUdBRSxZQUdBLGFBR0EsR0FHQSxVQUdBLElBQUksT0FBTyxVQUFXLENBQUMsR0FBRyxPQUFRLEdBR2xDLGtCQUFrQixFQUFFLFdBQVcsR0FHL0IscUJBQXFCLEVBQUUsWUFDcEIsZ0JBQWdCLFlBQVksZ0JBQWdCLFVBQzlDLE9BQVEsZUFBZ0IsSUFDeEIsT0FBTyxPQUdSLFdBQVcsT0FBTyxTQUFTLEdBQzNCLG1CQUFtQixPQUFPLFVBQVcsYUFBYyxHQUduRCxhQUFhLEVBQUUsY0FBYyxDQUFDLEdBRzlCLGlCQUFpQixDQUFDLEdBQ2xCLHNCQUFzQixDQUFDLEdBR3ZCLFdBQVcsWUFHWCxRQUFRO0FBQUEsY0FDUCxZQUFZO0FBQUE7QUFBQSxjQUdaLG1CQUFtQixTQUFVLEtBQU07QUFDbEMsb0JBQUk7QUFDSixvQkFBS0EsWUFBWTtBQUNoQixzQkFBSyxDQUFDLGlCQUFrQjtBQUN2QixzQ0FBa0IsQ0FBQztBQUNuQiwyQkFBVSxRQUFRLFNBQVMsS0FBTSxxQkFBc0IsR0FBTTtBQUM1RCxzQ0FBaUIsTUFBTyxDQUFFLEVBQUUsWUFBWSxJQUFJLEdBQUksS0FDN0MsZ0JBQWlCLE1BQU8sQ0FBRSxFQUFFLFlBQVksSUFBSSxHQUFJLEtBQUssQ0FBQyxHQUN0RCxPQUFRLE1BQU8sQ0FBRSxDQUFFO0FBQUEsb0JBQ3ZCO0FBQUEsa0JBQ0Q7QUFDQSwwQkFBUSxnQkFBaUIsSUFBSSxZQUFZLElBQUksR0FBSTtBQUFBLGdCQUNsRDtBQUNBLHVCQUFPLFNBQVMsT0FBTyxPQUFPLE1BQU0sS0FBTSxJQUFLO0FBQUEsY0FDaEQ7QUFBQTtBQUFBLGNBR0EsdUJBQXVCLFdBQVc7QUFDakMsdUJBQU9BLGFBQVksd0JBQXdCO0FBQUEsY0FDNUM7QUFBQTtBQUFBLGNBR0Esa0JBQWtCLFNBQVUsTUFBTSxPQUFRO0FBQ3pDLG9CQUFLQSxjQUFhLE1BQU87QUFDeEIseUJBQU8sb0JBQXFCLEtBQUssWUFBWSxDQUFFLElBQzlDLG9CQUFxQixLQUFLLFlBQVksQ0FBRSxLQUFLO0FBQzlDLGlDQUFnQixJQUFLLElBQUk7QUFBQSxnQkFDMUI7QUFDQSx1QkFBTztBQUFBLGNBQ1I7QUFBQTtBQUFBLGNBR0Esa0JBQWtCLFNBQVUsTUFBTztBQUNsQyxvQkFBS0EsY0FBYSxNQUFPO0FBQ3hCLG9CQUFFLFdBQVc7QUFBQSxnQkFDZDtBQUNBLHVCQUFPO0FBQUEsY0FDUjtBQUFBO0FBQUEsY0FHQSxZQUFZLFNBQVUsS0FBTTtBQUMzQixvQkFBSTtBQUNKLG9CQUFLLEtBQU07QUFDVixzQkFBS0EsWUFBWTtBQUdoQiwwQkFBTSxPQUFRLElBQUssTUFBTSxNQUFPLENBQUU7QUFBQSxrQkFDbkMsT0FBTztBQUdOLHlCQUFNLFFBQVEsS0FBTTtBQUNuQixpQ0FBWSxJQUFLLElBQUksQ0FBRSxXQUFZLElBQUssR0FBRyxJQUFLLElBQUssQ0FBRTtBQUFBLG9CQUN4RDtBQUFBLGtCQUNEO0FBQUEsZ0JBQ0Q7QUFDQSx1QkFBTztBQUFBLGNBQ1I7QUFBQTtBQUFBLGNBR0EsT0FBTyxTQUFVLFlBQWE7QUFDN0Isb0JBQUksWUFBWSxjQUFjO0FBQzlCLG9CQUFLLFdBQVk7QUFDaEIsNEJBQVUsTUFBTyxTQUFVO0FBQUEsZ0JBQzVCO0FBQ0EscUJBQU0sR0FBRyxTQUFVO0FBQ25CLHVCQUFPO0FBQUEsY0FDUjtBQUFBLFlBQ0Q7QUFHRCxxQkFBUyxRQUFTLEtBQU07QUFLeEIsY0FBRSxRQUFVLE9BQU8sRUFBRSxPQUFPRixVQUFTLFFBQVMsSUFDNUMsUUFBUyxXQUFXQSxVQUFTLFdBQVcsSUFBSztBQUcvQyxjQUFFLE9BQU8sUUFBUSxVQUFVLFFBQVEsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUd6RCxjQUFFLGFBQWMsRUFBRSxZQUFZLEtBQU0sWUFBWSxFQUFFLE1BQU8sYUFBYyxLQUFLLENBQUUsRUFBRztBQUdqRixnQkFBSyxFQUFFLGVBQWUsTUFBTztBQUM1QiwwQkFBWTVCLFVBQVMsY0FBZSxHQUFJO0FBS3hDLGtCQUFJO0FBQ0gsMEJBQVUsT0FBTyxFQUFFO0FBSW5CLDBCQUFVLE9BQU8sVUFBVTtBQUMzQixrQkFBRSxjQUFjLGFBQWEsV0FBVyxPQUFPLGFBQWEsU0FDM0QsVUFBVSxXQUFXLE9BQU8sVUFBVTtBQUFBLGNBQ3hDLFNBQVUsR0FBSTtBQUliLGtCQUFFLGNBQWM7QUFBQSxjQUNqQjtBQUFBLFlBQ0Q7QUFHQSxnQkFBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLE9BQU8sRUFBRSxTQUFTLFVBQVc7QUFDNUQsZ0JBQUUsT0FBTyxPQUFPLE1BQU8sRUFBRSxNQUFNLEVBQUUsV0FBWTtBQUFBLFlBQzlDO0FBR0EsMENBQStCLFlBQVksR0FBRyxTQUFTLEtBQU07QUFHN0QsZ0JBQUs4QixZQUFZO0FBQ2hCLHFCQUFPO0FBQUEsWUFDUjtBQUlBLDBCQUFjLE9BQU8sU0FBUyxFQUFFO0FBR2hDLGdCQUFLLGVBQWUsT0FBTyxhQUFhLEdBQUk7QUFDM0MscUJBQU8sTUFBTSxRQUFTLFdBQVk7QUFBQSxZQUNuQztBQUdBLGNBQUUsT0FBTyxFQUFFLEtBQUssWUFBWTtBQUc1QixjQUFFLGFBQWEsQ0FBQyxXQUFXLEtBQU0sRUFBRSxJQUFLO0FBS3hDLHVCQUFXLEVBQUUsSUFBSSxRQUFTLE9BQU8sRUFBRztBQUdwQyxnQkFBSyxDQUFDLEVBQUUsWUFBYTtBQUdwQix5QkFBVyxFQUFFLElBQUksTUFBTyxTQUFTLE1BQU87QUFHeEMsa0JBQUssRUFBRSxTQUFVLEVBQUUsZUFBZSxPQUFPLEVBQUUsU0FBUyxXQUFhO0FBQ2hFLDZCQUFjLE9BQU8sS0FBTSxRQUFTLElBQUksTUFBTSxPQUFRLEVBQUU7QUFHeEQsdUJBQU8sRUFBRTtBQUFBLGNBQ1Y7QUFHQSxrQkFBSyxFQUFFLFVBQVUsT0FBUTtBQUN4QiwyQkFBVyxTQUFTLFFBQVMsWUFBWSxJQUFLO0FBQzlDLDRCQUFhLE9BQU8sS0FBTSxRQUFTLElBQUksTUFBTSxPQUFRLE9BQVMsTUFBTSxTQUNuRTtBQUFBLGNBQ0Y7QUFHQSxnQkFBRSxNQUFNLFdBQVc7QUFBQSxZQUdwQixXQUFZLEVBQUUsUUFBUSxFQUFFLGdCQUNyQixFQUFFLGVBQWUsSUFBSyxRQUFTLG1DQUFvQyxNQUFNLEdBQUk7QUFDL0UsZ0JBQUUsT0FBTyxFQUFFLEtBQUssUUFBUyxLQUFLLEdBQUk7QUFBQSxZQUNuQztBQUdBLGdCQUFLLEVBQUUsWUFBYTtBQUNuQixrQkFBSyxPQUFPLGFBQWMsUUFBUyxHQUFJO0FBQ3RDLHNCQUFNLGlCQUFrQixxQkFBcUIsT0FBTyxhQUFjLFFBQVMsQ0FBRTtBQUFBLGNBQzlFO0FBQ0Esa0JBQUssT0FBTyxLQUFNLFFBQVMsR0FBSTtBQUM5QixzQkFBTSxpQkFBa0IsaUJBQWlCLE9BQU8sS0FBTSxRQUFTLENBQUU7QUFBQSxjQUNsRTtBQUFBLFlBQ0Q7QUFHQSxnQkFBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLFNBQVMsUUFBUSxhQUFjO0FBQy9FLG9CQUFNLGlCQUFrQixnQkFBZ0IsRUFBRSxXQUFZO0FBQUEsWUFDdkQ7QUFHQSxrQkFBTTtBQUFBLGNBQ0w7QUFBQSxjQUNBLEVBQUUsVUFBVyxDQUFFLEtBQUssRUFBRSxRQUFTLEVBQUUsVUFBVyxDQUFFLENBQUUsSUFDL0MsRUFBRSxRQUFTLEVBQUUsVUFBVyxDQUFFLENBQUUsS0FDekIsRUFBRSxVQUFXLENBQUUsTUFBTSxNQUFNLE9BQU8sV0FBVyxhQUFhLE1BQzdELEVBQUUsUUFBUyxHQUFJO0FBQUEsWUFDakI7QUFHQSxpQkFBTSxLQUFLLEVBQUUsU0FBVTtBQUN0QixvQkFBTSxpQkFBa0IsR0FBRyxFQUFFLFFBQVMsQ0FBRSxDQUFFO0FBQUEsWUFDM0M7QUFHQSxnQkFBSyxFQUFFLGVBQ0osRUFBRSxXQUFXLEtBQU0saUJBQWlCLE9BQU8sQ0FBRSxNQUFNLFNBQVNBLGFBQWM7QUFHNUUscUJBQU8sTUFBTSxNQUFNO0FBQUEsWUFDcEI7QUFHQSx1QkFBVztBQUdYLDZCQUFpQixJQUFLLEVBQUUsUUFBUztBQUNqQyxrQkFBTSxLQUFNLEVBQUUsT0FBUTtBQUN0QixrQkFBTSxLQUFNLEVBQUUsS0FBTTtBQUdwQix3QkFBWSw4QkFBK0IsWUFBWSxHQUFHLFNBQVMsS0FBTTtBQUd6RSxnQkFBSyxDQUFDLFdBQVk7QUFDakIsbUJBQU0sSUFBSSxjQUFlO0FBQUEsWUFDMUIsT0FBTztBQUNOLG9CQUFNLGFBQWE7QUFHbkIsa0JBQUssYUFBYztBQUNsQixtQ0FBbUIsUUFBUyxZQUFZLENBQUUsT0FBTyxDQUFFLENBQUU7QUFBQSxjQUN0RDtBQUdBLGtCQUFLQSxZQUFZO0FBQ2hCLHVCQUFPO0FBQUEsY0FDUjtBQUdBLGtCQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsR0FBSTtBQUMvQiwrQkFBZWpDLFFBQU8sV0FBWSxXQUFXO0FBQzVDLHdCQUFNLE1BQU8sU0FBVTtBQUFBLGdCQUN4QixHQUFHLEVBQUUsT0FBUTtBQUFBLGNBQ2Q7QUFFQSxrQkFBSTtBQUNILGdCQUFBaUMsYUFBWTtBQUNaLDBCQUFVLEtBQU0sZ0JBQWdCLElBQUs7QUFBQSxjQUN0QyxTQUFVLEdBQUk7QUFHYixvQkFBS0EsWUFBWTtBQUNoQix3QkFBTTtBQUFBLGdCQUNQO0FBR0EscUJBQU0sSUFBSSxDQUFFO0FBQUEsY0FDYjtBQUFBLFlBQ0Q7QUFHQSxxQkFBUyxLQUFNLFFBQVEsa0JBQWtCLFdBQVcsU0FBVTtBQUM3RCxrQkFBSSxXQUFXLFNBQVMsT0FBTyxVQUFVLFVBQ3hDLGFBQWE7QUFHZCxrQkFBS0EsWUFBWTtBQUNoQjtBQUFBLGNBQ0Q7QUFFQSxjQUFBQSxhQUFZO0FBR1osa0JBQUssY0FBZTtBQUNuQixnQkFBQWpDLFFBQU8sYUFBYyxZQUFhO0FBQUEsY0FDbkM7QUFJQSwwQkFBWTtBQUdaLHNDQUF3QixXQUFXO0FBR25DLG9CQUFNLGFBQWEsU0FBUyxJQUFJLElBQUk7QUFHcEMsMEJBQVksVUFBVSxPQUFPLFNBQVMsT0FBTyxXQUFXO0FBR3hELGtCQUFLLFdBQVk7QUFDaEIsMkJBQVcsb0JBQXFCLEdBQUcsT0FBTyxTQUFVO0FBQUEsY0FDckQ7QUFHQSxrQkFBSyxDQUFDLGFBQ0wsT0FBTyxRQUFTLFVBQVUsRUFBRSxTQUFVLElBQUksTUFDMUMsT0FBTyxRQUFTLFFBQVEsRUFBRSxTQUFVLElBQUksR0FBSTtBQUM1QyxrQkFBRSxXQUFZLGFBQWMsSUFBSSxXQUFXO0FBQUEsZ0JBQUM7QUFBQSxjQUM3QztBQUdBLHlCQUFXLFlBQWEsR0FBRyxVQUFVLE9BQU8sU0FBVTtBQUd0RCxrQkFBSyxXQUFZO0FBR2hCLG9CQUFLLEVBQUUsWUFBYTtBQUNuQiw2QkFBVyxNQUFNLGtCQUFtQixlQUFnQjtBQUNwRCxzQkFBSyxVQUFXO0FBQ2YsMkJBQU8sYUFBYyxRQUFTLElBQUk7QUFBQSxrQkFDbkM7QUFDQSw2QkFBVyxNQUFNLGtCQUFtQixNQUFPO0FBQzNDLHNCQUFLLFVBQVc7QUFDZiwyQkFBTyxLQUFNLFFBQVMsSUFBSTtBQUFBLGtCQUMzQjtBQUFBLGdCQUNEO0FBR0Esb0JBQUssV0FBVyxPQUFPLEVBQUUsU0FBUyxRQUFTO0FBQzFDLCtCQUFhO0FBQUEsZ0JBR2QsV0FBWSxXQUFXLEtBQU07QUFDNUIsK0JBQWE7QUFBQSxnQkFHZCxPQUFPO0FBQ04sK0JBQWEsU0FBUztBQUN0Qiw0QkFBVSxTQUFTO0FBQ25CLDBCQUFRLFNBQVM7QUFDakIsOEJBQVksQ0FBQztBQUFBLGdCQUNkO0FBQUEsY0FDRCxPQUFPO0FBR04sd0JBQVE7QUFDUixvQkFBSyxVQUFVLENBQUMsWUFBYTtBQUM1QiwrQkFBYTtBQUNiLHNCQUFLLFNBQVMsR0FBSTtBQUNqQiw2QkFBUztBQUFBLGtCQUNWO0FBQUEsZ0JBQ0Q7QUFBQSxjQUNEO0FBR0Esb0JBQU0sU0FBUztBQUNmLG9CQUFNLGNBQWUsb0JBQW9CLGNBQWU7QUFHeEQsa0JBQUssV0FBWTtBQUNoQix5QkFBUyxZQUFhLGlCQUFpQixDQUFFLFNBQVMsWUFBWSxLQUFNLENBQUU7QUFBQSxjQUN2RSxPQUFPO0FBQ04seUJBQVMsV0FBWSxpQkFBaUIsQ0FBRSxPQUFPLFlBQVksS0FBTSxDQUFFO0FBQUEsY0FDcEU7QUFHQSxvQkFBTSxXQUFZLFVBQVc7QUFDN0IsMkJBQWE7QUFFYixrQkFBSyxhQUFjO0FBQ2xCLG1DQUFtQjtBQUFBLGtCQUFTLFlBQVksZ0JBQWdCO0FBQUEsa0JBQ3ZELENBQUUsT0FBTyxHQUFHLFlBQVksVUFBVSxLQUFNO0FBQUEsZ0JBQUU7QUFBQSxjQUM1QztBQUdBLCtCQUFpQixTQUFVLGlCQUFpQixDQUFFLE9BQU8sVUFBVyxDQUFFO0FBRWxFLGtCQUFLLGFBQWM7QUFDbEIsbUNBQW1CLFFBQVMsZ0JBQWdCLENBQUUsT0FBTyxDQUFFLENBQUU7QUFHekQsb0JBQUssQ0FBRyxFQUFFLE9BQU8sUUFBVztBQUMzQix5QkFBTyxNQUFNLFFBQVMsVUFBVztBQUFBLGdCQUNsQztBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBRUEsbUJBQU87QUFBQSxVQUNSO0FBQUEsVUFFQSxTQUFTLFNBQVUsS0FBSyxNQUFNLFVBQVc7QUFDeEMsbUJBQU8sT0FBTyxJQUFLLEtBQUssTUFBTSxVQUFVLE1BQU87QUFBQSxVQUNoRDtBQUFBLFVBRUEsV0FBVyxTQUFVLEtBQUssVUFBVztBQUNwQyxtQkFBTyxPQUFPLElBQUssS0FBSyxRQUFXLFVBQVUsUUFBUztBQUFBLFVBQ3ZEO0FBQUEsUUFDRCxDQUFFO0FBRUYsZUFBTyxLQUFNLENBQUUsT0FBTyxNQUFPLEdBQUcsU0FBVSxJQUFJLFFBQVM7QUFDdEQsaUJBQVEsTUFBTyxJQUFJLFNBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTztBQUd4RCxnQkFBSyxXQUFZLElBQUssR0FBSTtBQUN6QixxQkFBTyxRQUFRO0FBQ2YseUJBQVc7QUFDWCxxQkFBTztBQUFBLFlBQ1I7QUFHQSxtQkFBTyxPQUFPLEtBQU0sT0FBTyxPQUFRO0FBQUEsY0FDbEM7QUFBQSxjQUNBLE1BQU07QUFBQSxjQUNOLFVBQVU7QUFBQSxjQUNWO0FBQUEsY0FDQSxTQUFTO0FBQUEsWUFDVixHQUFHLE9BQU8sY0FBZSxHQUFJLEtBQUssR0FBSSxDQUFFO0FBQUEsVUFDekM7QUFBQSxRQUNELENBQUU7QUFFRixlQUFPLGNBQWUsU0FBVSxHQUFJO0FBQ25DLGNBQUk7QUFDSixlQUFNLEtBQUssRUFBRSxTQUFVO0FBQ3RCLGdCQUFLLEVBQUUsWUFBWSxNQUFNLGdCQUFpQjtBQUN6QyxnQkFBRSxjQUFjLEVBQUUsUUFBUyxDQUFFLEtBQUs7QUFBQSxZQUNuQztBQUFBLFVBQ0Q7QUFBQSxRQUNELENBQUU7QUFHRixlQUFPLFdBQVcsU0FBVSxLQUFLLFNBQVNJLE1BQU07QUFDL0MsaUJBQU8sT0FBTyxLQUFNO0FBQUEsWUFDbkI7QUFBQTtBQUFBLFlBR0EsTUFBTTtBQUFBLFlBQ04sVUFBVTtBQUFBLFlBQ1YsT0FBTztBQUFBLFlBQ1AsT0FBTztBQUFBLFlBQ1AsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBLFlBS1IsWUFBWTtBQUFBLGNBQ1gsZUFBZSxXQUFXO0FBQUEsY0FBQztBQUFBLFlBQzVCO0FBQUEsWUFDQSxZQUFZLFNBQVUsVUFBVztBQUNoQyxxQkFBTyxXQUFZLFVBQVUsU0FBU0EsSUFBSTtBQUFBLFlBQzNDO0FBQUEsVUFDRCxDQUFFO0FBQUEsUUFDSDtBQUdBLGVBQU8sR0FBRyxPQUFRO0FBQUEsVUFDakIsU0FBUyxTQUFVLE1BQU87QUFDekIsZ0JBQUk7QUFFSixnQkFBSyxLQUFNLENBQUUsR0FBSTtBQUNoQixrQkFBSyxXQUFZLElBQUssR0FBSTtBQUN6Qix1QkFBTyxLQUFLLEtBQU0sS0FBTSxDQUFFLENBQUU7QUFBQSxjQUM3QjtBQUdBLHFCQUFPLE9BQVEsTUFBTSxLQUFNLENBQUUsRUFBRSxhQUFjLEVBQUUsR0FBSSxDQUFFLEVBQUUsTUFBTyxJQUFLO0FBRW5FLGtCQUFLLEtBQU0sQ0FBRSxFQUFFLFlBQWE7QUFDM0IscUJBQUssYUFBYyxLQUFNLENBQUUsQ0FBRTtBQUFBLGNBQzlCO0FBRUEsbUJBQUssSUFBSyxXQUFXO0FBQ3BCLG9CQUFJLE9BQU87QUFFWCx1QkFBUSxLQUFLLG1CQUFvQjtBQUNoQyx5QkFBTyxLQUFLO0FBQUEsZ0JBQ2I7QUFFQSx1QkFBTztBQUFBLGNBQ1IsQ0FBRSxFQUFFLE9BQVEsSUFBSztBQUFBLFlBQ2xCO0FBRUEsbUJBQU87QUFBQSxVQUNSO0FBQUEsVUFFQSxXQUFXLFNBQVUsTUFBTztBQUMzQixnQkFBSyxXQUFZLElBQUssR0FBSTtBQUN6QixxQkFBTyxLQUFLLEtBQU0sU0FBVSxHQUFJO0FBQy9CLHVCQUFRLElBQUssRUFBRSxVQUFXLEtBQUssS0FBTSxNQUFNLENBQUUsQ0FBRTtBQUFBLGNBQ2hELENBQUU7QUFBQSxZQUNIO0FBRUEsbUJBQU8sS0FBSyxLQUFNLFdBQVc7QUFDNUIsa0JBQUlnQixRQUFPLE9BQVEsSUFBSyxHQUN2QixXQUFXQSxNQUFLLFNBQVM7QUFFMUIsa0JBQUssU0FBUyxRQUFTO0FBQ3RCLHlCQUFTLFFBQVMsSUFBSztBQUFBLGNBRXhCLE9BQU87QUFDTixnQkFBQUEsTUFBSyxPQUFRLElBQUs7QUFBQSxjQUNuQjtBQUFBLFlBQ0QsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxVQUVBLE1BQU0sU0FBVSxNQUFPO0FBQ3RCLGdCQUFJLGlCQUFpQixXQUFZLElBQUs7QUFFdEMsbUJBQU8sS0FBSyxLQUFNLFNBQVUsR0FBSTtBQUMvQixxQkFBUSxJQUFLLEVBQUUsUUFBUyxpQkFBaUIsS0FBSyxLQUFNLE1BQU0sQ0FBRSxJQUFJLElBQUs7QUFBQSxZQUN0RSxDQUFFO0FBQUEsVUFDSDtBQUFBLFVBRUEsUUFBUSxTQUFVLFVBQVc7QUFDNUIsaUJBQUssT0FBUSxRQUFTLEVBQUUsSUFBSyxNQUFPLEVBQUUsS0FBTSxXQUFXO0FBQ3RELHFCQUFRLElBQUssRUFBRSxZQUFhLEtBQUssVUFBVztBQUFBLFlBQzdDLENBQUU7QUFDRixtQkFBTztBQUFBLFVBQ1I7QUFBQSxRQUNELENBQUU7QUFHRixlQUFPLEtBQUssUUFBUSxTQUFTLFNBQVUsTUFBTztBQUM3QyxpQkFBTyxDQUFDLE9BQU8sS0FBSyxRQUFRLFFBQVMsSUFBSztBQUFBLFFBQzNDO0FBQ0EsZUFBTyxLQUFLLFFBQVEsVUFBVSxTQUFVLE1BQU87QUFDOUMsaUJBQU8sQ0FBQyxFQUFHLEtBQUssZUFBZSxLQUFLLGdCQUFnQixLQUFLLGVBQWUsRUFBRTtBQUFBLFFBQzNFO0FBS0EsZUFBTyxhQUFhLE1BQU0sV0FBVztBQUNwQyxjQUFJO0FBQ0gsbUJBQU8sSUFBSXBCLFFBQU8sZUFBZTtBQUFBLFVBQ2xDLFNBQVUsR0FBSTtBQUFBLFVBQUM7QUFBQSxRQUNoQjtBQUVBLFlBQUksbUJBQW1CO0FBQUE7QUFBQSxVQUdyQixHQUFHO0FBQUE7QUFBQTtBQUFBLFVBSUgsTUFBTTtBQUFBLFFBQ1AsR0FDQSxlQUFlLE9BQU8sYUFBYSxJQUFJO0FBRXhDLGdCQUFRLE9BQU8sQ0FBQyxDQUFDLGdCQUFrQixxQkFBcUI7QUFDeEQsZ0JBQVEsT0FBTyxlQUFlLENBQUMsQ0FBQztBQUVoQyxlQUFPLGNBQWUsU0FBVSxTQUFVO0FBQ3pDLGNBQUksVUFBVTtBQUdkLGNBQUssUUFBUSxRQUFRLGdCQUFnQixDQUFDLFFBQVEsYUFBYztBQUMzRCxtQkFBTztBQUFBLGNBQ04sTUFBTSxTQUFVLFNBQVMsVUFBVztBQUNuQyxvQkFBSSxHQUNILE1BQU0sUUFBUSxJQUFJO0FBRW5CLG9CQUFJO0FBQUEsa0JBQ0gsUUFBUTtBQUFBLGtCQUNSLFFBQVE7QUFBQSxrQkFDUixRQUFRO0FBQUEsa0JBQ1IsUUFBUTtBQUFBLGtCQUNSLFFBQVE7QUFBQSxnQkFDVDtBQUdBLG9CQUFLLFFBQVEsV0FBWTtBQUN4Qix1QkFBTSxLQUFLLFFBQVEsV0FBWTtBQUM5Qix3QkFBSyxDQUFFLElBQUksUUFBUSxVQUFXLENBQUU7QUFBQSxrQkFDakM7QUFBQSxnQkFDRDtBQUdBLG9CQUFLLFFBQVEsWUFBWSxJQUFJLGtCQUFtQjtBQUMvQyxzQkFBSSxpQkFBa0IsUUFBUSxRQUFTO0FBQUEsZ0JBQ3hDO0FBT0Esb0JBQUssQ0FBQyxRQUFRLGVBQWUsQ0FBQyxRQUFTLGtCQUFtQixHQUFJO0FBQzdELDBCQUFTLGtCQUFtQixJQUFJO0FBQUEsZ0JBQ2pDO0FBR0EscUJBQU0sS0FBSyxTQUFVO0FBQ3BCLHNCQUFJLGlCQUFrQixHQUFHLFFBQVMsQ0FBRSxDQUFFO0FBQUEsZ0JBQ3ZDO0FBR0EsMkJBQVcsU0FBVSxNQUFPO0FBQzNCLHlCQUFPLFdBQVc7QUFDakIsd0JBQUssVUFBVztBQUNmLGlDQUFXLGdCQUFnQixJQUFJLFNBQzlCLElBQUksVUFBVSxJQUFJLFVBQVUsSUFBSSxZQUMvQixJQUFJLHFCQUFxQjtBQUUzQiwwQkFBSyxTQUFTLFNBQVU7QUFDdkIsNEJBQUksTUFBTTtBQUFBLHNCQUNYLFdBQVksU0FBUyxTQUFVO0FBSzlCLDRCQUFLLE9BQU8sSUFBSSxXQUFXLFVBQVc7QUFDckMsbUNBQVUsR0FBRyxPQUFRO0FBQUEsd0JBQ3RCLE9BQU87QUFDTjtBQUFBO0FBQUEsNEJBR0MsSUFBSTtBQUFBLDRCQUNKLElBQUk7QUFBQSwwQkFDTDtBQUFBLHdCQUNEO0FBQUEsc0JBQ0QsT0FBTztBQUNOO0FBQUEsMEJBQ0MsaUJBQWtCLElBQUksTUFBTyxLQUFLLElBQUk7QUFBQSwwQkFDdEMsSUFBSTtBQUFBO0FBQUE7QUFBQTtBQUFBLDJCQUtGLElBQUksZ0JBQWdCLFlBQWEsVUFDbkMsT0FBTyxJQUFJLGlCQUFpQixXQUMzQixFQUFFLFFBQVEsSUFBSSxTQUFTLElBQ3ZCLEVBQUUsTUFBTSxJQUFJLGFBQWE7QUFBQSwwQkFDMUIsSUFBSSxzQkFBc0I7QUFBQSx3QkFDM0I7QUFBQSxzQkFDRDtBQUFBLG9CQUNEO0FBQUEsa0JBQ0Q7QUFBQSxnQkFDRDtBQUdBLG9CQUFJLFNBQVMsU0FBUztBQUN0QixnQ0FBZ0IsSUFBSSxVQUFVLElBQUksWUFBWSxTQUFVLE9BQVE7QUFLaEUsb0JBQUssSUFBSSxZQUFZLFFBQVk7QUFDaEMsc0JBQUksVUFBVTtBQUFBLGdCQUNmLE9BQU87QUFDTixzQkFBSSxxQkFBcUIsV0FBVztBQUduQyx3QkFBSyxJQUFJLGVBQWUsR0FBSTtBQU0zQixzQkFBQUEsUUFBTyxXQUFZLFdBQVc7QUFDN0IsNEJBQUssVUFBVztBQUNmLHdDQUFjO0FBQUEsd0JBQ2Y7QUFBQSxzQkFDRCxDQUFFO0FBQUEsb0JBQ0g7QUFBQSxrQkFDRDtBQUFBLGdCQUNEO0FBR0EsMkJBQVcsU0FBVSxPQUFRO0FBRTdCLG9CQUFJO0FBR0gsc0JBQUksS0FBTSxRQUFRLGNBQWMsUUFBUSxRQUFRLElBQUs7QUFBQSxnQkFDdEQsU0FBVSxHQUFJO0FBR2Isc0JBQUssVUFBVztBQUNmLDBCQUFNO0FBQUEsa0JBQ1A7QUFBQSxnQkFDRDtBQUFBLGNBQ0Q7QUFBQSxjQUVBLE9BQU8sV0FBVztBQUNqQixvQkFBSyxVQUFXO0FBQ2YsMkJBQVM7QUFBQSxnQkFDVjtBQUFBLGNBQ0Q7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFFBQ0QsQ0FBRTtBQU1GLGVBQU8sY0FBZSxTQUFVLEdBQUk7QUFDbkMsY0FBSyxFQUFFLGFBQWM7QUFDcEIsY0FBRSxTQUFTLFNBQVM7QUFBQSxVQUNyQjtBQUFBLFFBQ0QsQ0FBRTtBQUdGLGVBQU8sVUFBVztBQUFBLFVBQ2pCLFNBQVM7QUFBQSxZQUNSLFFBQVE7QUFBQSxVQUVUO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDVCxRQUFRO0FBQUEsVUFDVDtBQUFBLFVBQ0EsWUFBWTtBQUFBLFlBQ1gsZUFBZSxTQUFVLE1BQU87QUFDL0IscUJBQU8sV0FBWSxJQUFLO0FBQ3hCLHFCQUFPO0FBQUEsWUFDUjtBQUFBLFVBQ0Q7QUFBQSxRQUNELENBQUU7QUFHRixlQUFPLGNBQWUsVUFBVSxTQUFVLEdBQUk7QUFDN0MsY0FBSyxFQUFFLFVBQVUsUUFBWTtBQUM1QixjQUFFLFFBQVE7QUFBQSxVQUNYO0FBQ0EsY0FBSyxFQUFFLGFBQWM7QUFDcEIsY0FBRSxPQUFPO0FBQUEsVUFDVjtBQUFBLFFBQ0QsQ0FBRTtBQUdGLGVBQU8sY0FBZSxVQUFVLFNBQVUsR0FBSTtBQUc3QyxjQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWM7QUFDckMsZ0JBQUksUUFBUTtBQUNaLG1CQUFPO0FBQUEsY0FDTixNQUFNLFNBQVUsR0FBRyxVQUFXO0FBQzdCLHlCQUFTLE9BQVEsVUFBVyxFQUMxQixLQUFNLEVBQUUsZUFBZSxDQUFDLENBQUUsRUFDMUIsS0FBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEtBQUssRUFBRSxJQUFJLENBQUUsRUFDL0MsR0FBSSxjQUFjLFdBQVcsU0FBVSxLQUFNO0FBQzdDLHlCQUFPLE9BQU87QUFDZCw2QkFBVztBQUNYLHNCQUFLLEtBQU07QUFDViw2QkFBVSxJQUFJLFNBQVMsVUFBVSxNQUFNLEtBQUssSUFBSSxJQUFLO0FBQUEsa0JBQ3REO0FBQUEsZ0JBQ0QsQ0FBRTtBQUdILGdCQUFBRyxVQUFTLEtBQUssWUFBYSxPQUFRLENBQUUsQ0FBRTtBQUFBLGNBQ3hDO0FBQUEsY0FDQSxPQUFPLFdBQVc7QUFDakIsb0JBQUssVUFBVztBQUNmLDJCQUFTO0FBQUEsZ0JBQ1Y7QUFBQSxjQUNEO0FBQUEsWUFDRDtBQUFBLFVBQ0Q7QUFBQSxRQUNELENBQUU7QUFLRixZQUFJLGVBQWUsQ0FBQyxHQUNuQixTQUFTO0FBR1YsZUFBTyxVQUFXO0FBQUEsVUFDakIsT0FBTztBQUFBLFVBQ1AsZUFBZSxXQUFXO0FBQ3pCLGdCQUFJLFdBQVcsYUFBYSxJQUFJLEtBQU8sT0FBTyxVQUFVLE1BQVEsTUFBTTtBQUN0RSxpQkFBTSxRQUFTLElBQUk7QUFDbkIsbUJBQU87QUFBQSxVQUNSO0FBQUEsUUFDRCxDQUFFO0FBR0YsZUFBTyxjQUFlLGNBQWMsU0FBVSxHQUFHLGtCQUFrQixPQUFRO0FBRTFFLGNBQUksY0FBYyxhQUFhLG1CQUM5QixXQUFXLEVBQUUsVUFBVSxVQUFXLE9BQU8sS0FBTSxFQUFFLEdBQUksSUFDcEQsUUFDQSxPQUFPLEVBQUUsU0FBUyxhQUNmLEVBQUUsZUFBZSxJQUNqQixRQUFTLG1DQUFvQyxNQUFNLEtBQ3JELE9BQU8sS0FBTSxFQUFFLElBQUssS0FBSztBQUk1QixjQUFLLFlBQVksRUFBRSxVQUFXLENBQUUsTUFBTSxTQUFVO0FBRy9DLDJCQUFlLEVBQUUsZ0JBQWdCLFdBQVksRUFBRSxhQUFjLElBQzVELEVBQUUsY0FBYyxJQUNoQixFQUFFO0FBR0gsZ0JBQUssVUFBVztBQUNmLGdCQUFHLFFBQVMsSUFBSSxFQUFHLFFBQVMsRUFBRSxRQUFTLFFBQVEsT0FBTyxZQUFhO0FBQUEsWUFDcEUsV0FBWSxFQUFFLFVBQVUsT0FBUTtBQUMvQixnQkFBRSxRQUFTLE9BQU8sS0FBTSxFQUFFLEdBQUksSUFBSSxNQUFNLE9BQVEsRUFBRSxRQUFRLE1BQU07QUFBQSxZQUNqRTtBQUdBLGNBQUUsV0FBWSxhQUFjLElBQUksV0FBVztBQUMxQyxrQkFBSyxDQUFDLG1CQUFvQjtBQUN6Qix1QkFBTyxNQUFPLGVBQWUsaUJBQWtCO0FBQUEsY0FDaEQ7QUFDQSxxQkFBTyxrQkFBbUIsQ0FBRTtBQUFBLFlBQzdCO0FBR0EsY0FBRSxVQUFXLENBQUUsSUFBSTtBQUduQiwwQkFBY0gsUUFBUSxZQUFhO0FBQ25DLFlBQUFBLFFBQVEsWUFBYSxJQUFJLFdBQVc7QUFDbkMsa0NBQW9CO0FBQUEsWUFDckI7QUFHQSxrQkFBTSxPQUFRLFdBQVc7QUFHeEIsa0JBQUssZ0JBQWdCLFFBQVk7QUFDaEMsdUJBQVFBLE9BQU8sRUFBRSxXQUFZLFlBQWE7QUFBQSxjQUczQyxPQUFPO0FBQ04sZ0JBQUFBLFFBQVEsWUFBYSxJQUFJO0FBQUEsY0FDMUI7QUFHQSxrQkFBSyxFQUFHLFlBQWEsR0FBSTtBQUd4QixrQkFBRSxnQkFBZ0IsaUJBQWlCO0FBR25DLDZCQUFhLEtBQU0sWUFBYTtBQUFBLGNBQ2pDO0FBR0Esa0JBQUsscUJBQXFCLFdBQVksV0FBWSxHQUFJO0FBQ3JELDRCQUFhLGtCQUFtQixDQUFFLENBQUU7QUFBQSxjQUNyQztBQUVBLGtDQUFvQixjQUFjO0FBQUEsWUFDbkMsQ0FBRTtBQUdGLG1CQUFPO0FBQUEsVUFDUjtBQUFBLFFBQ0QsQ0FBRTtBQVVGLGdCQUFRLHFCQUF1QixXQUFXO0FBQ3pDLGNBQUksT0FBT0csVUFBUyxlQUFlLG1CQUFvQixFQUFHLEVBQUU7QUFDNUQsZUFBSyxZQUFZO0FBQ2pCLGlCQUFPLEtBQUssV0FBVyxXQUFXO0FBQUEsUUFDbkMsRUFBSTtBQU9KLGVBQU8sWUFBWSxTQUFVLE1BQU0sU0FBUyxhQUFjO0FBQ3pELGNBQUssT0FBTyxTQUFTLFVBQVc7QUFDL0IsbUJBQU8sQ0FBQztBQUFBLFVBQ1Q7QUFDQSxjQUFLLE9BQU8sWUFBWSxXQUFZO0FBQ25DLDBCQUFjO0FBQ2Qsc0JBQVU7QUFBQSxVQUNYO0FBRUEsY0FBSSxNQUFNLFFBQVE7QUFFbEIsY0FBSyxDQUFDLFNBQVU7QUFJZixnQkFBSyxRQUFRLG9CQUFxQjtBQUNqQyx3QkFBVUEsVUFBUyxlQUFlLG1CQUFvQixFQUFHO0FBS3pELHFCQUFPLFFBQVEsY0FBZSxNQUFPO0FBQ3JDLG1CQUFLLE9BQU9BLFVBQVMsU0FBUztBQUM5QixzQkFBUSxLQUFLLFlBQWEsSUFBSztBQUFBLFlBQ2hDLE9BQU87QUFDTix3QkFBVUE7QUFBQSxZQUNYO0FBQUEsVUFDRDtBQUVBLG1CQUFTLFdBQVcsS0FBTSxJQUFLO0FBQy9CLG9CQUFVLENBQUMsZUFBZSxDQUFDO0FBRzNCLGNBQUssUUFBUztBQUNiLG1CQUFPLENBQUUsUUFBUSxjQUFlLE9BQVEsQ0FBRSxDQUFFLENBQUU7QUFBQSxVQUMvQztBQUVBLG1CQUFTLGNBQWUsQ0FBRSxJQUFLLEdBQUcsU0FBUyxPQUFRO0FBRW5ELGNBQUssV0FBVyxRQUFRLFFBQVM7QUFDaEMsbUJBQVEsT0FBUSxFQUFFLE9BQU87QUFBQSxVQUMxQjtBQUVBLGlCQUFPLE9BQU8sTUFBTyxDQUFDLEdBQUcsT0FBTyxVQUFXO0FBQUEsUUFDNUM7QUFNQSxlQUFPLEdBQUcsT0FBTyxTQUFVLEtBQUssUUFBUSxVQUFXO0FBQ2xELGNBQUksVUFBVSxNQUFNLFVBQ25CaUIsUUFBTyxNQUNQLE1BQU0sSUFBSSxRQUFTLEdBQUk7QUFFeEIsY0FBSyxNQUFNLElBQUs7QUFDZix1QkFBVyxpQkFBa0IsSUFBSSxNQUFPLEdBQUksQ0FBRTtBQUM5QyxrQkFBTSxJQUFJLE1BQU8sR0FBRyxHQUFJO0FBQUEsVUFDekI7QUFHQSxjQUFLLFdBQVksTUFBTyxHQUFJO0FBRzNCLHVCQUFXO0FBQ1gscUJBQVM7QUFBQSxVQUdWLFdBQVksVUFBVSxPQUFPLFdBQVcsVUFBVztBQUNsRCxtQkFBTztBQUFBLFVBQ1I7QUFHQSxjQUFLQSxNQUFLLFNBQVMsR0FBSTtBQUN0QixtQkFBTyxLQUFNO0FBQUEsY0FDWjtBQUFBO0FBQUE7QUFBQTtBQUFBLGNBS0EsTUFBTSxRQUFRO0FBQUEsY0FDZCxVQUFVO0FBQUEsY0FDVixNQUFNO0FBQUEsWUFDUCxDQUFFLEVBQUUsS0FBTSxTQUFVLGNBQWU7QUFHbEMseUJBQVc7QUFFWCxjQUFBQSxNQUFLLEtBQU07QUFBQTtBQUFBO0FBQUEsZ0JBSVYsT0FBUSxPQUFRLEVBQUUsT0FBUSxPQUFPLFVBQVcsWUFBYSxDQUFFLEVBQUUsS0FBTSxRQUFTO0FBQUE7QUFBQTtBQUFBLGdCQUc1RTtBQUFBLGVBQWE7QUFBQSxZQUtmLENBQUUsRUFBRSxPQUFRLFlBQVksU0FBVSxPQUFPLFFBQVM7QUFDakQsY0FBQUEsTUFBSyxLQUFNLFdBQVc7QUFDckIseUJBQVMsTUFBTyxNQUFNLFlBQVksQ0FBRSxNQUFNLGNBQWMsUUFBUSxLQUFNLENBQUU7QUFBQSxjQUN6RSxDQUFFO0FBQUEsWUFDSCxDQUFFO0FBQUEsVUFDSDtBQUVBLGlCQUFPO0FBQUEsUUFDUjtBQUtBLGVBQU8sS0FBSyxRQUFRLFdBQVcsU0FBVSxNQUFPO0FBQy9DLGlCQUFPLE9BQU8sS0FBTSxPQUFPLFFBQVEsU0FBVVIsS0FBSztBQUNqRCxtQkFBTyxTQUFTQSxJQUFHO0FBQUEsVUFDcEIsQ0FBRSxFQUFFO0FBQUEsUUFDTDtBQUtBLGVBQU8sU0FBUztBQUFBLFVBQ2YsV0FBVyxTQUFVLE1BQU0sU0FBUyxHQUFJO0FBQ3ZDLGdCQUFJLGFBQWEsU0FBUyxXQUFXLFFBQVEsV0FBVyxZQUFZLG1CQUNuRSxXQUFXLE9BQU8sSUFBSyxNQUFNLFVBQVcsR0FDeEMsVUFBVSxPQUFRLElBQUssR0FDdkIsUUFBUSxDQUFDO0FBR1YsZ0JBQUssYUFBYSxVQUFXO0FBQzVCLG1CQUFLLE1BQU0sV0FBVztBQUFBLFlBQ3ZCO0FBRUEsd0JBQVksUUFBUSxPQUFPO0FBQzNCLHdCQUFZLE9BQU8sSUFBSyxNQUFNLEtBQU07QUFDcEMseUJBQWEsT0FBTyxJQUFLLE1BQU0sTUFBTztBQUN0QyxpQ0FBc0IsYUFBYSxjQUFjLGFBQWEsYUFDM0QsWUFBWSxZQUFhLFFBQVMsTUFBTyxJQUFJO0FBSWhELGdCQUFLLG1CQUFvQjtBQUN4Qiw0QkFBYyxRQUFRLFNBQVM7QUFDL0IsdUJBQVMsWUFBWTtBQUNyQix3QkFBVSxZQUFZO0FBQUEsWUFFdkIsT0FBTztBQUNOLHVCQUFTLFdBQVksU0FBVSxLQUFLO0FBQ3BDLHdCQUFVLFdBQVksVUFBVyxLQUFLO0FBQUEsWUFDdkM7QUFFQSxnQkFBSyxXQUFZLE9BQVEsR0FBSTtBQUc1Qix3QkFBVSxRQUFRLEtBQU0sTUFBTSxHQUFHLE9BQU8sT0FBUSxDQUFDLEdBQUcsU0FBVSxDQUFFO0FBQUEsWUFDakU7QUFFQSxnQkFBSyxRQUFRLE9BQU8sTUFBTztBQUMxQixvQkFBTSxNQUFRLFFBQVEsTUFBTSxVQUFVLE1BQVE7QUFBQSxZQUMvQztBQUNBLGdCQUFLLFFBQVEsUUFBUSxNQUFPO0FBQzNCLG9CQUFNLE9BQVMsUUFBUSxPQUFPLFVBQVUsT0FBUztBQUFBLFlBQ2xEO0FBRUEsZ0JBQUssV0FBVyxTQUFVO0FBQ3pCLHNCQUFRLE1BQU0sS0FBTSxNQUFNLEtBQU07QUFBQSxZQUVqQyxPQUFPO0FBQ04sc0JBQVEsSUFBSyxLQUFNO0FBQUEsWUFDcEI7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQUVBLGVBQU8sR0FBRyxPQUFRO0FBQUE7QUFBQSxVQUdqQixRQUFRLFNBQVUsU0FBVTtBQUczQixnQkFBSyxVQUFVLFFBQVM7QUFDdkIscUJBQU8sWUFBWSxTQUNsQixPQUNBLEtBQUssS0FBTSxTQUFVLEdBQUk7QUFDeEIsdUJBQU8sT0FBTyxVQUFXLE1BQU0sU0FBUyxDQUFFO0FBQUEsY0FDM0MsQ0FBRTtBQUFBLFlBQ0o7QUFFQSxnQkFBSSxNQUFNLEtBQ1QsT0FBTyxLQUFNLENBQUU7QUFFaEIsZ0JBQUssQ0FBQyxNQUFPO0FBQ1o7QUFBQSxZQUNEO0FBTUEsZ0JBQUssQ0FBQyxLQUFLLGVBQWUsRUFBRSxRQUFTO0FBQ3BDLHFCQUFPLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtBQUFBLFlBQzFCO0FBR0EsbUJBQU8sS0FBSyxzQkFBc0I7QUFDbEMsa0JBQU0sS0FBSyxjQUFjO0FBQ3pCLG1CQUFPO0FBQUEsY0FDTixLQUFLLEtBQUssTUFBTSxJQUFJO0FBQUEsY0FDcEIsTUFBTSxLQUFLLE9BQU8sSUFBSTtBQUFBLFlBQ3ZCO0FBQUEsVUFDRDtBQUFBO0FBQUE7QUFBQSxVQUlBLFVBQVUsV0FBVztBQUNwQixnQkFBSyxDQUFDLEtBQU0sQ0FBRSxHQUFJO0FBQ2pCO0FBQUEsWUFDRDtBQUVBLGdCQUFJLGNBQWNzQixTQUFROUIsTUFDekIsT0FBTyxLQUFNLENBQUUsR0FDZixlQUFlLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRTtBQUdsQyxnQkFBSyxPQUFPLElBQUssTUFBTSxVQUFXLE1BQU0sU0FBVTtBQUdqRCxjQUFBOEIsVUFBUyxLQUFLLHNCQUFzQjtBQUFBLFlBRXJDLE9BQU87QUFDTixjQUFBQSxVQUFTLEtBQUssT0FBTztBQUlyQixjQUFBOUIsT0FBTSxLQUFLO0FBQ1gsNkJBQWUsS0FBSyxnQkFBZ0JBLEtBQUk7QUFDeEMscUJBQVEsaUJBQ0wsaUJBQWlCQSxLQUFJLFFBQVEsaUJBQWlCQSxLQUFJLG9CQUNwRCxPQUFPLElBQUssY0FBYyxVQUFXLE1BQU0sVUFBVztBQUV0RCwrQkFBZSxhQUFhO0FBQUEsY0FDN0I7QUFDQSxrQkFBSyxnQkFBZ0IsaUJBQWlCLFFBQVEsYUFBYSxhQUFhLEdBQUk7QUFHM0UsK0JBQWUsT0FBUSxZQUFhLEVBQUUsT0FBTztBQUM3Qyw2QkFBYSxPQUFPLE9BQU8sSUFBSyxjQUFjLGtCQUFrQixJQUFLO0FBQ3JFLDZCQUFhLFFBQVEsT0FBTyxJQUFLLGNBQWMsbUJBQW1CLElBQUs7QUFBQSxjQUN4RTtBQUFBLFlBQ0Q7QUFHQSxtQkFBTztBQUFBLGNBQ04sS0FBSzhCLFFBQU8sTUFBTSxhQUFhLE1BQU0sT0FBTyxJQUFLLE1BQU0sYUFBYSxJQUFLO0FBQUEsY0FDekUsTUFBTUEsUUFBTyxPQUFPLGFBQWEsT0FBTyxPQUFPLElBQUssTUFBTSxjQUFjLElBQUs7QUFBQSxZQUM5RTtBQUFBLFVBQ0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBWUEsY0FBYyxXQUFXO0FBQ3hCLG1CQUFPLEtBQUssSUFBSyxXQUFXO0FBQzNCLGtCQUFJLGVBQWUsS0FBSztBQUV4QixxQkFBUSxnQkFBZ0IsT0FBTyxJQUFLLGNBQWMsVUFBVyxNQUFNLFVBQVc7QUFDN0UsK0JBQWUsYUFBYTtBQUFBLGNBQzdCO0FBRUEscUJBQU8sZ0JBQWdCO0FBQUEsWUFDeEIsQ0FBRTtBQUFBLFVBQ0g7QUFBQSxRQUNELENBQUU7QUFHRixlQUFPLEtBQU0sRUFBRSxZQUFZLGVBQWUsV0FBVyxjQUFjLEdBQUcsU0FBVSxRQUFRLE1BQU87QUFDOUYsY0FBSUMsT0FBTSxrQkFBa0I7QUFFNUIsaUJBQU8sR0FBSSxNQUFPLElBQUksU0FBVSxLQUFNO0FBQ3JDLG1CQUFPLE9BQVEsTUFBTSxTQUFVLE1BQU1DLFNBQVFKLE1BQU07QUFHbEQsa0JBQUk7QUFDSixrQkFBSyxTQUFVLElBQUssR0FBSTtBQUN2QixzQkFBTTtBQUFBLGNBQ1AsV0FBWSxLQUFLLGFBQWEsR0FBSTtBQUNqQyxzQkFBTSxLQUFLO0FBQUEsY0FDWjtBQUVBLGtCQUFLQSxTQUFRLFFBQVk7QUFDeEIsdUJBQU8sTUFBTSxJQUFLLElBQUssSUFBSSxLQUFNSSxPQUFPO0FBQUEsY0FDekM7QUFFQSxrQkFBSyxLQUFNO0FBQ1Ysb0JBQUk7QUFBQSxrQkFDSCxDQUFDRCxPQUFNSCxPQUFNLElBQUk7QUFBQSxrQkFDakJHLE9BQU1ILE9BQU0sSUFBSTtBQUFBLGdCQUNqQjtBQUFBLGNBRUQsT0FBTztBQUNOLHFCQUFNSSxPQUFPLElBQUlKO0FBQUEsY0FDbEI7QUFBQSxZQUNELEdBQUcsUUFBUSxLQUFLLFVBQVUsTUFBTztBQUFBLFVBQ2xDO0FBQUEsUUFDRCxDQUFFO0FBUUYsZUFBTyxLQUFNLENBQUUsT0FBTyxNQUFPLEdBQUcsU0FBVSxJQUFJLE1BQU87QUFDcEQsaUJBQU8sU0FBVSxJQUFLLElBQUk7QUFBQSxZQUFjLFFBQVE7QUFBQSxZQUMvQyxTQUFVLE1BQU0sVUFBVztBQUMxQixrQkFBSyxVQUFXO0FBQ2YsMkJBQVcsT0FBUSxNQUFNLElBQUs7QUFHOUIsdUJBQU8sVUFBVSxLQUFNLFFBQVMsSUFDL0IsT0FBUSxJQUFLLEVBQUUsU0FBUyxFQUFHLElBQUssSUFBSSxPQUNwQztBQUFBLGNBQ0Y7QUFBQSxZQUNEO0FBQUEsVUFDRDtBQUFBLFFBQ0QsQ0FBRTtBQUlGLGVBQU8sS0FBTSxFQUFFLFFBQVEsVUFBVSxPQUFPLFFBQVEsR0FBRyxTQUFVLE1BQU0sTUFBTztBQUN6RSxpQkFBTyxLQUFNO0FBQUEsWUFDWixTQUFTLFVBQVU7QUFBQSxZQUNuQixTQUFTO0FBQUEsWUFDVCxJQUFJLFVBQVU7QUFBQSxVQUNmLEdBQUcsU0FBVSxjQUFjLFVBQVc7QUFHckMsbUJBQU8sR0FBSSxRQUFTLElBQUksU0FBVSxRQUFRLE9BQVE7QUFDakQsa0JBQUksWUFBWSxVQUFVLFdBQVksZ0JBQWdCLE9BQU8sV0FBVyxZQUN2RSxRQUFRLGlCQUFrQixXQUFXLFFBQVEsVUFBVSxPQUFPLFdBQVc7QUFFMUUscUJBQU8sT0FBUSxNQUFNLFNBQVUsTUFBTUssT0FBTWhCLFFBQVE7QUFDbEQsb0JBQUlqQjtBQUVKLG9CQUFLLFNBQVUsSUFBSyxHQUFJO0FBR3ZCLHlCQUFPLFNBQVMsUUFBUyxPQUFRLE1BQU0sSUFDdEMsS0FBTSxVQUFVLElBQUssSUFDckIsS0FBSyxTQUFTLGdCQUFpQixXQUFXLElBQUs7QUFBQSxnQkFDakQ7QUFHQSxvQkFBSyxLQUFLLGFBQWEsR0FBSTtBQUMxQixrQkFBQUEsT0FBTSxLQUFLO0FBSVgseUJBQU8sS0FBSztBQUFBLG9CQUNYLEtBQUssS0FBTSxXQUFXLElBQUs7QUFBQSxvQkFBR0EsS0FBSyxXQUFXLElBQUs7QUFBQSxvQkFDbkQsS0FBSyxLQUFNLFdBQVcsSUFBSztBQUFBLG9CQUFHQSxLQUFLLFdBQVcsSUFBSztBQUFBLG9CQUNuREEsS0FBSyxXQUFXLElBQUs7QUFBQSxrQkFDdEI7QUFBQSxnQkFDRDtBQUVBLHVCQUFPaUIsV0FBVTtBQUFBO0FBQUEsa0JBR2hCLE9BQU8sSUFBSyxNQUFNZ0IsT0FBTSxLQUFNO0FBQUE7QUFBQTtBQUFBLGtCQUc5QixPQUFPLE1BQU8sTUFBTUEsT0FBTWhCLFFBQU8sS0FBTTtBQUFBO0FBQUEsY0FDekMsR0FBRyxNQUFNLFlBQVksU0FBUyxRQUFXLFNBQVU7QUFBQSxZQUNwRDtBQUFBLFVBQ0QsQ0FBRTtBQUFBLFFBQ0gsQ0FBRTtBQUdGLGVBQU8sS0FBTTtBQUFBLFVBQ1o7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0QsR0FBRyxTQUFVLElBQUksTUFBTztBQUN2QixpQkFBTyxHQUFJLElBQUssSUFBSSxTQUFVVCxLQUFLO0FBQ2xDLG1CQUFPLEtBQUssR0FBSSxNQUFNQSxHQUFHO0FBQUEsVUFDMUI7QUFBQSxRQUNELENBQUU7QUFLRixlQUFPLEdBQUcsT0FBUTtBQUFBLFVBRWpCLE1BQU0sU0FBVSxPQUFPLE1BQU1BLEtBQUs7QUFDakMsbUJBQU8sS0FBSyxHQUFJLE9BQU8sTUFBTSxNQUFNQSxHQUFHO0FBQUEsVUFDdkM7QUFBQSxVQUNBLFFBQVEsU0FBVSxPQUFPQSxLQUFLO0FBQzdCLG1CQUFPLEtBQUssSUFBSyxPQUFPLE1BQU1BLEdBQUc7QUFBQSxVQUNsQztBQUFBLFVBRUEsVUFBVSxTQUFVLFVBQVUsT0FBTyxNQUFNQSxLQUFLO0FBQy9DLG1CQUFPLEtBQUssR0FBSSxPQUFPLFVBQVUsTUFBTUEsR0FBRztBQUFBLFVBQzNDO0FBQUEsVUFDQSxZQUFZLFNBQVUsVUFBVSxPQUFPQSxLQUFLO0FBRzNDLG1CQUFPLFVBQVUsV0FBVyxJQUMzQixLQUFLLElBQUssVUFBVSxJQUFLLElBQ3pCLEtBQUssSUFBSyxPQUFPLFlBQVksTUFBTUEsR0FBRztBQUFBLFVBQ3hDO0FBQUEsVUFFQSxPQUFPLFNBQVUsUUFBUSxPQUFRO0FBQ2hDLG1CQUFPLEtBQ0wsR0FBSSxjQUFjLE1BQU8sRUFDekIsR0FBSSxjQUFjLFNBQVMsTUFBTztBQUFBLFVBQ3JDO0FBQUEsUUFDRCxDQUFFO0FBRUYsZUFBTztBQUFBLFVBQ0osd0xBRTBELE1BQU8sR0FBSTtBQUFBLFVBQ3ZFLFNBQVUsSUFBSSxNQUFPO0FBR3BCLG1CQUFPLEdBQUksSUFBSyxJQUFJLFNBQVUsTUFBTUEsS0FBSztBQUN4QyxxQkFBTyxVQUFVLFNBQVMsSUFDekIsS0FBSyxHQUFJLE1BQU0sTUFBTSxNQUFNQSxHQUFHLElBQzlCLEtBQUssUUFBUyxJQUFLO0FBQUEsWUFDckI7QUFBQSxVQUNEO0FBQUEsUUFDRDtBQVNBLFlBQUksUUFBUTtBQU1aLGVBQU8sUUFBUSxTQUFVQSxLQUFJLFNBQVU7QUFDdEMsY0FBSSxLQUFLLE1BQU07QUFFZixjQUFLLE9BQU8sWUFBWSxVQUFXO0FBQ2xDLGtCQUFNQSxJQUFJLE9BQVE7QUFDbEIsc0JBQVVBO0FBQ1YsWUFBQUEsTUFBSztBQUFBLFVBQ047QUFJQSxjQUFLLENBQUMsV0FBWUEsR0FBRyxHQUFJO0FBQ3hCLG1CQUFPO0FBQUEsVUFDUjtBQUdBLGlCQUFPLE1BQU0sS0FBTSxXQUFXLENBQUU7QUFDaEMsa0JBQVEsV0FBVztBQUNsQixtQkFBT0EsSUFBRyxNQUFPLFdBQVcsTUFBTSxLQUFLLE9BQVEsTUFBTSxLQUFNLFNBQVUsQ0FBRSxDQUFFO0FBQUEsVUFDMUU7QUFHQSxnQkFBTSxPQUFPQSxJQUFHLE9BQU9BLElBQUcsUUFBUSxPQUFPO0FBRXpDLGlCQUFPO0FBQUEsUUFDUjtBQUVBLGVBQU8sWUFBWSxTQUFVLE1BQU87QUFDbkMsY0FBSyxNQUFPO0FBQ1gsbUJBQU87QUFBQSxVQUNSLE9BQU87QUFDTixtQkFBTyxNQUFPLElBQUs7QUFBQSxVQUNwQjtBQUFBLFFBQ0Q7QUFDQSxlQUFPLFVBQVUsTUFBTTtBQUN2QixlQUFPLFlBQVksS0FBSztBQUN4QixlQUFPLFdBQVc7QUFDbEIsZUFBTyxhQUFhO0FBQ3BCLGVBQU8sV0FBVztBQUNsQixlQUFPLFlBQVk7QUFDbkIsZUFBTyxPQUFPUDtBQUVkLGVBQU8sTUFBTSxLQUFLO0FBRWxCLGVBQU8sWUFBWSxTQUFVLEtBQU07QUFLbEMsY0FBSSxPQUFPLE9BQU8sS0FBTSxHQUFJO0FBQzVCLGtCQUFTLFNBQVMsWUFBWSxTQUFTO0FBQUE7QUFBQTtBQUFBLFVBS3RDLENBQUMsTUFBTyxNQUFNLFdBQVksR0FBSSxDQUFFO0FBQUEsUUFDbEM7QUFFQSxlQUFPLE9BQU8sU0FBVSxNQUFPO0FBQzlCLGlCQUFPLFFBQVEsT0FDZCxNQUNFLE9BQU8sSUFBSyxRQUFTLE9BQU8sSUFBSztBQUFBLFFBQ3JDO0FBaUJBLFlBQUssT0FBTyxXQUFXLGNBQWMsT0FBTyxLQUFNO0FBQ2pELGlCQUFRLFVBQVUsQ0FBQyxHQUFHLFdBQVc7QUFDaEMsbUJBQU87QUFBQSxVQUNSLENBQUU7QUFBQSxRQUNIO0FBS0EsWUFHQyxVQUFVTCxRQUFPLFFBR2pCLEtBQUtBLFFBQU87QUFFYixlQUFPLGFBQWEsU0FBVSxNQUFPO0FBQ3BDLGNBQUtBLFFBQU8sTUFBTSxRQUFTO0FBQzFCLFlBQUFBLFFBQU8sSUFBSTtBQUFBLFVBQ1o7QUFFQSxjQUFLLFFBQVFBLFFBQU8sV0FBVyxRQUFTO0FBQ3ZDLFlBQUFBLFFBQU8sU0FBUztBQUFBLFVBQ2pCO0FBRUEsaUJBQU87QUFBQSxRQUNSO0FBS0EsWUFBSyxPQUFPLGFBQWEsYUFBYztBQUN0QyxVQUFBQSxRQUFPLFNBQVNBLFFBQU8sSUFBSTtBQUFBLFFBQzVCO0FBS0EsZUFBTztBQUFBLE1BQ1AsQ0FBRTtBQUFBO0FBQUE7OztBQzM5VUY7QUFBQTtBQUVBLGVBQVMsV0FBVyxLQUFLO0FBQ3ZCLFlBQUksZUFBZSxLQUFLO0FBQ3RCLGNBQUksUUFDRixJQUFJLFNBQ0osSUFBSSxNQUNGLFdBQVk7QUFDVixrQkFBTSxJQUFJLE1BQU0sa0JBQWtCO0FBQUEsVUFDcEM7QUFBQSxRQUNOLFdBQVcsZUFBZSxLQUFLO0FBQzdCLGNBQUksTUFDRixJQUFJLFFBQ0osSUFBSSxTQUNGLFdBQVk7QUFDVixrQkFBTSxJQUFJLE1BQU0sa0JBQWtCO0FBQUEsVUFDcEM7QUFBQSxRQUNOO0FBR0EsZUFBTyxPQUFPLEdBQUc7QUFFakIsZUFBTyxvQkFBb0IsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFTO0FBQ2hELGdCQUFNLE9BQU8sSUFBSSxJQUFJO0FBQ3JCLGdCQUFNLE9BQU8sT0FBTztBQUdwQixlQUFLLFNBQVMsWUFBWSxTQUFTLGVBQWUsQ0FBQyxPQUFPLFNBQVMsSUFBSSxHQUFHO0FBQ3hFLHVCQUFXLElBQUk7QUFBQSxVQUNqQjtBQUFBLFFBQ0YsQ0FBQztBQUVELGVBQU87QUFBQSxNQUNUO0FBTUEsVUFBTSxXQUFOLE1BQWU7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUliLFlBQVksTUFBTTtBQUVoQixjQUFJLEtBQUssU0FBUztBQUFXLGlCQUFLLE9BQU8sQ0FBQztBQUUxQyxlQUFLLE9BQU8sS0FBSztBQUNqQixlQUFLLGlCQUFpQjtBQUFBLFFBQ3hCO0FBQUEsUUFFQSxjQUFjO0FBQ1osZUFBSyxpQkFBaUI7QUFBQSxRQUN4QjtBQUFBLE1BQ0Y7QUFNQSxlQUFTLFdBQVcsT0FBTztBQUN6QixlQUFPLE1BQ0osUUFBUSxNQUFNLE9BQU8sRUFDckIsUUFBUSxNQUFNLE1BQU0sRUFDcEIsUUFBUSxNQUFNLE1BQU0sRUFDcEIsUUFBUSxNQUFNLFFBQVEsRUFDdEIsUUFBUSxNQUFNLFFBQVE7QUFBQSxNQUMzQjtBQVVBLGVBQVMsVUFBVSxhQUFhLFNBQVM7QUFFdkMsY0FBTSxTQUFTLHVCQUFPLE9BQU8sSUFBSTtBQUVqQyxtQkFBVyxPQUFPLFVBQVU7QUFDMUIsaUJBQU8sR0FBRyxJQUFJLFNBQVMsR0FBRztBQUFBLFFBQzVCO0FBQ0EsZ0JBQVEsUUFBUSxTQUFTLEtBQUs7QUFDNUIscUJBQVcsT0FBTyxLQUFLO0FBQ3JCLG1CQUFPLEdBQUcsSUFBSSxJQUFJLEdBQUc7QUFBQSxVQUN2QjtBQUFBLFFBQ0YsQ0FBQztBQUNEO0FBQUE7QUFBQSxVQUF5QjtBQUFBO0FBQUEsTUFDM0I7QUFjQSxVQUFNLGFBQWE7QUFNbkIsVUFBTSxvQkFBb0IsQ0FBQyxTQUFTO0FBR2xDLGVBQU8sQ0FBQyxDQUFDLEtBQUs7QUFBQSxNQUNoQjtBQU9BLFVBQU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sTUFBTTtBQUU1QyxZQUFJLEtBQUssV0FBVyxXQUFXLEdBQUc7QUFDaEMsaUJBQU8sS0FBSyxRQUFRLGFBQWEsV0FBVztBQUFBLFFBQzlDO0FBRUEsWUFBSSxLQUFLLFNBQVMsR0FBRyxHQUFHO0FBQ3RCLGdCQUFNLFNBQVMsS0FBSyxNQUFNLEdBQUc7QUFDN0IsaUJBQU87QUFBQSxZQUNMLEdBQUcsTUFBTSxHQUFHLE9BQU8sTUFBTSxDQUFDO0FBQUEsWUFDMUIsR0FBSSxPQUFPLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUU7QUFBQSxVQUNyRCxFQUFFLEtBQUssR0FBRztBQUFBLFFBQ1o7QUFFQSxlQUFPLEdBQUcsTUFBTSxHQUFHLElBQUk7QUFBQSxNQUN6QjtBQUdBLFVBQU0sZUFBTixNQUFtQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBT2pCLFlBQVksV0FBVyxTQUFTO0FBQzlCLGVBQUssU0FBUztBQUNkLGVBQUssY0FBYyxRQUFRO0FBQzNCLG9CQUFVLEtBQUssSUFBSTtBQUFBLFFBQ3JCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU1BLFFBQVEsTUFBTTtBQUNaLGVBQUssVUFBVSxXQUFXLElBQUk7QUFBQSxRQUNoQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFNQSxTQUFTLE1BQU07QUFDYixjQUFJLENBQUMsa0JBQWtCLElBQUk7QUFBRztBQUU5QixnQkFBTSxZQUFZO0FBQUEsWUFBZ0IsS0FBSztBQUFBLFlBQ3JDLEVBQUUsUUFBUSxLQUFLLFlBQVk7QUFBQSxVQUFDO0FBQzlCLGVBQUssS0FBSyxTQUFTO0FBQUEsUUFDckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBTUEsVUFBVSxNQUFNO0FBQ2QsY0FBSSxDQUFDLGtCQUFrQixJQUFJO0FBQUc7QUFFOUIsZUFBSyxVQUFVO0FBQUEsUUFDakI7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUtBLFFBQVE7QUFDTixpQkFBTyxLQUFLO0FBQUEsUUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQVFBLEtBQUssV0FBVztBQUNkLGVBQUssVUFBVSxnQkFBZ0IsU0FBUztBQUFBLFFBQzFDO0FBQUEsTUFDRjtBQVFBLFVBQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNO0FBRTdCLGNBQU0sU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO0FBQzlCLGVBQU8sT0FBTyxRQUFRLElBQUk7QUFDMUIsZUFBTztBQUFBLE1BQ1Q7QUFFQSxVQUFNLFlBQU4sTUFBTSxXQUFVO0FBQUEsUUFDZCxjQUFjO0FBRVosZUFBSyxXQUFXLFFBQVE7QUFDeEIsZUFBSyxRQUFRLENBQUMsS0FBSyxRQUFRO0FBQUEsUUFDN0I7QUFBQSxRQUVBLElBQUksTUFBTTtBQUNSLGlCQUFPLEtBQUssTUFBTSxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQUEsUUFDekM7QUFBQSxRQUVBLElBQUksT0FBTztBQUFFLGlCQUFPLEtBQUs7QUFBQSxRQUFVO0FBQUE7QUFBQSxRQUduQyxJQUFJLE1BQU07QUFDUixlQUFLLElBQUksU0FBUyxLQUFLLElBQUk7QUFBQSxRQUM3QjtBQUFBO0FBQUEsUUFHQSxTQUFTLE9BQU87QUFFZCxnQkFBTSxPQUFPLFFBQVEsRUFBRSxNQUFNLENBQUM7QUFDOUIsZUFBSyxJQUFJLElBQUk7QUFDYixlQUFLLE1BQU0sS0FBSyxJQUFJO0FBQUEsUUFDdEI7QUFBQSxRQUVBLFlBQVk7QUFDVixjQUFJLEtBQUssTUFBTSxTQUFTLEdBQUc7QUFDekIsbUJBQU8sS0FBSyxNQUFNLElBQUk7QUFBQSxVQUN4QjtBQUVBLGlCQUFPO0FBQUEsUUFDVDtBQUFBLFFBRUEsZ0JBQWdCO0FBQ2QsaUJBQU8sS0FBSyxVQUFVO0FBQUU7QUFBQSxRQUMxQjtBQUFBLFFBRUEsU0FBUztBQUNQLGlCQUFPLEtBQUssVUFBVSxLQUFLLFVBQVUsTUFBTSxDQUFDO0FBQUEsUUFDOUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBTUEsS0FBSyxTQUFTO0FBRVosaUJBQU8sS0FBSyxZQUFZLE1BQU0sU0FBUyxLQUFLLFFBQVE7QUFBQSxRQUd0RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFNQSxPQUFPLE1BQU0sU0FBUyxNQUFNO0FBQzFCLGNBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsb0JBQVEsUUFBUSxJQUFJO0FBQUEsVUFDdEIsV0FBVyxLQUFLLFVBQVU7QUFDeEIsb0JBQVEsU0FBUyxJQUFJO0FBQ3JCLGlCQUFLLFNBQVMsUUFBUSxDQUFDLFVBQVUsS0FBSyxNQUFNLFNBQVMsS0FBSyxDQUFDO0FBQzNELG9CQUFRLFVBQVUsSUFBSTtBQUFBLFVBQ3hCO0FBQ0EsaUJBQU87QUFBQSxRQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFLQSxPQUFPLFVBQVUsTUFBTTtBQUNyQixjQUFJLE9BQU8sU0FBUztBQUFVO0FBQzlCLGNBQUksQ0FBQyxLQUFLO0FBQVU7QUFFcEIsY0FBSSxLQUFLLFNBQVMsTUFBTSxRQUFNLE9BQU8sT0FBTyxRQUFRLEdBQUc7QUFHckQsaUJBQUssV0FBVyxDQUFDLEtBQUssU0FBUyxLQUFLLEVBQUUsQ0FBQztBQUFBLFVBQ3pDLE9BQU87QUFDTCxpQkFBSyxTQUFTLFFBQVEsQ0FBQyxVQUFVO0FBQy9CLHlCQUFVLFVBQVUsS0FBSztBQUFBLFlBQzNCLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFvQkEsVUFBTSxtQkFBTixjQUErQixVQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUEsUUFJdkMsWUFBWSxTQUFTO0FBQ25CLGdCQUFNO0FBQ04sZUFBSyxVQUFVO0FBQUEsUUFDakI7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUtBLFFBQVEsTUFBTTtBQUNaLGNBQUksU0FBUyxJQUFJO0FBQUU7QUFBQSxVQUFRO0FBRTNCLGVBQUssSUFBSSxJQUFJO0FBQUEsUUFDZjtBQUFBO0FBQUEsUUFHQSxXQUFXLE9BQU87QUFDaEIsZUFBSyxTQUFTLEtBQUs7QUFBQSxRQUNyQjtBQUFBLFFBRUEsV0FBVztBQUNULGVBQUssVUFBVTtBQUFBLFFBQ2pCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQU1BLGlCQUFpQixTQUFTLE1BQU07QUFFOUIsZ0JBQU0sT0FBTyxRQUFRO0FBQ3JCLGNBQUk7QUFBTSxpQkFBSyxRQUFRLFlBQVksSUFBSTtBQUV2QyxlQUFLLElBQUksSUFBSTtBQUFBLFFBQ2Y7QUFBQSxRQUVBLFNBQVM7QUFDUCxnQkFBTSxXQUFXLElBQUksYUFBYSxNQUFNLEtBQUssT0FBTztBQUNwRCxpQkFBTyxTQUFTLE1BQU07QUFBQSxRQUN4QjtBQUFBLFFBRUEsV0FBVztBQUNULGVBQUssY0FBYztBQUNuQixpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBV0EsZUFBUyxPQUFPLElBQUk7QUFDbEIsWUFBSSxDQUFDO0FBQUksaUJBQU87QUFDaEIsWUFBSSxPQUFPLE9BQU87QUFBVSxpQkFBTztBQUVuQyxlQUFPLEdBQUc7QUFBQSxNQUNaO0FBTUEsZUFBUyxVQUFVLElBQUk7QUFDckIsZUFBTyxPQUFPLE9BQU8sSUFBSSxHQUFHO0FBQUEsTUFDOUI7QUFNQSxlQUFTLGlCQUFpQixJQUFJO0FBQzVCLGVBQU8sT0FBTyxPQUFPLElBQUksSUFBSTtBQUFBLE1BQy9CO0FBTUEsZUFBUyxTQUFTLElBQUk7QUFDcEIsZUFBTyxPQUFPLE9BQU8sSUFBSSxJQUFJO0FBQUEsTUFDL0I7QUFNQSxlQUFTLFVBQVUsTUFBTTtBQUN2QixjQUFNLFNBQVMsS0FBSyxJQUFJLENBQUMsTUFBTSxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUNqRCxlQUFPO0FBQUEsTUFDVDtBQU1BLGVBQVMscUJBQXFCLE1BQU07QUFDbEMsY0FBTSxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFFakMsWUFBSSxPQUFPLFNBQVMsWUFBWSxLQUFLLGdCQUFnQixRQUFRO0FBQzNELGVBQUssT0FBTyxLQUFLLFNBQVMsR0FBRyxDQUFDO0FBQzlCLGlCQUFPO0FBQUEsUUFDVCxPQUFPO0FBQ0wsaUJBQU8sQ0FBQztBQUFBLFFBQ1Y7QUFBQSxNQUNGO0FBV0EsZUFBUyxVQUFVLE1BQU07QUFFdkIsY0FBTSxPQUFPLHFCQUFxQixJQUFJO0FBQ3RDLGNBQU0sU0FBUyxPQUNWLEtBQUssVUFBVSxLQUFLLFFBQ3JCLEtBQUssSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSTtBQUMzQyxlQUFPO0FBQUEsTUFDVDtBQU1BLGVBQVMsaUJBQWlCLElBQUk7QUFDNUIsZUFBUSxJQUFJLE9BQU8sR0FBRyxTQUFTLElBQUksR0FBRyxFQUFHLEtBQUssRUFBRSxFQUFFLFNBQVM7QUFBQSxNQUM3RDtBQU9BLGVBQVMsV0FBVyxJQUFJLFFBQVE7QUFDOUIsY0FBTSxRQUFRLE1BQU0sR0FBRyxLQUFLLE1BQU07QUFDbEMsZUFBTyxTQUFTLE1BQU0sVUFBVTtBQUFBLE1BQ2xDO0FBU0EsVUFBTSxhQUFhO0FBYW5CLGVBQVMsdUJBQXVCLFNBQVMsRUFBRSxTQUFTLEdBQUc7QUFDckQsWUFBSSxjQUFjO0FBRWxCLGVBQU8sUUFBUSxJQUFJLENBQUMsVUFBVTtBQUM1Qix5QkFBZTtBQUNmLGdCQUFNc0MsVUFBUztBQUNmLGNBQUksS0FBSyxPQUFPLEtBQUs7QUFDckIsY0FBSSxNQUFNO0FBRVYsaUJBQU8sR0FBRyxTQUFTLEdBQUc7QUFDcEIsa0JBQU0sUUFBUSxXQUFXLEtBQUssRUFBRTtBQUNoQyxnQkFBSSxDQUFDLE9BQU87QUFDVixxQkFBTztBQUNQO0FBQUEsWUFDRjtBQUNBLG1CQUFPLEdBQUcsVUFBVSxHQUFHLE1BQU0sS0FBSztBQUNsQyxpQkFBSyxHQUFHLFVBQVUsTUFBTSxRQUFRLE1BQU0sQ0FBQyxFQUFFLE1BQU07QUFDL0MsZ0JBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLFFBQVEsTUFBTSxDQUFDLEdBQUc7QUFFcEMscUJBQU8sT0FBTyxPQUFPLE9BQU8sTUFBTSxDQUFDLENBQUMsSUFBSUEsT0FBTTtBQUFBLFlBQ2hELE9BQU87QUFDTCxxQkFBTyxNQUFNLENBQUM7QUFDZCxrQkFBSSxNQUFNLENBQUMsTUFBTSxLQUFLO0FBQ3BCO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQ0EsaUJBQU87QUFBQSxRQUNULENBQUMsRUFBRSxJQUFJLFFBQU0sSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLFFBQVE7QUFBQSxNQUN2QztBQU1BLFVBQU0sbUJBQW1CO0FBQ3pCLFVBQU0sV0FBVztBQUNqQixVQUFNLHNCQUFzQjtBQUM1QixVQUFNLFlBQVk7QUFDbEIsVUFBTSxjQUFjO0FBQ3BCLFVBQU0sbUJBQW1CO0FBQ3pCLFVBQU0saUJBQWlCO0FBS3ZCLFVBQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNO0FBQzdCLGNBQU0sZUFBZTtBQUNyQixZQUFJLEtBQUssUUFBUTtBQUNmLGVBQUssUUFBUTtBQUFBLFlBQ1g7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTDtBQUFBLFVBQU07QUFBQSxRQUNWO0FBQ0EsZUFBTyxVQUFVO0FBQUEsVUFDZixPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxXQUFXO0FBQUE7QUFBQSxVQUVYLFlBQVksQ0FBQyxHQUFHLFNBQVM7QUFDdkIsZ0JBQUksRUFBRSxVQUFVO0FBQUcsbUJBQUssWUFBWTtBQUFBLFVBQ3RDO0FBQUEsUUFDRixHQUFHLElBQUk7QUFBQSxNQUNUO0FBR0EsVUFBTSxtQkFBbUI7QUFBQSxRQUN2QixPQUFPO0FBQUEsUUFBZ0IsV0FBVztBQUFBLE1BQ3BDO0FBQ0EsVUFBTSxtQkFBbUI7QUFBQSxRQUN2QixPQUFPO0FBQUEsUUFDUCxPQUFPO0FBQUEsUUFDUCxLQUFLO0FBQUEsUUFDTCxTQUFTO0FBQUEsUUFDVCxVQUFVLENBQUMsZ0JBQWdCO0FBQUEsTUFDN0I7QUFDQSxVQUFNLG9CQUFvQjtBQUFBLFFBQ3hCLE9BQU87QUFBQSxRQUNQLE9BQU87QUFBQSxRQUNQLEtBQUs7QUFBQSxRQUNMLFNBQVM7QUFBQSxRQUNULFVBQVUsQ0FBQyxnQkFBZ0I7QUFBQSxNQUM3QjtBQUNBLFVBQU0scUJBQXFCO0FBQUEsUUFDekIsT0FBTztBQUFBLE1BQ1Q7QUFTQSxVQUFNLFVBQVUsU0FBUyxPQUFPQyxNQUFLLGNBQWMsQ0FBQyxHQUFHO0FBQ3JELGNBQU0sT0FBTztBQUFBLFVBQ1g7QUFBQSxZQUNFLE9BQU87QUFBQSxZQUNQO0FBQUEsWUFDQSxLQUFBQTtBQUFBLFlBQ0EsVUFBVSxDQUFDO0FBQUEsVUFDYjtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsYUFBSyxTQUFTLEtBQUs7QUFBQSxVQUNqQixPQUFPO0FBQUE7QUFBQTtBQUFBLFVBR1AsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsY0FBYztBQUFBLFVBQ2QsV0FBVztBQUFBLFFBQ2IsQ0FBQztBQUNELGNBQU0sZUFBZTtBQUFBO0FBQUEsVUFFbkI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUE7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUNBO0FBQUE7QUFBQSxRQUNGO0FBRUEsYUFBSyxTQUFTO0FBQUEsVUFDWjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFnQkUsT0FBTztBQUFBLGNBQ0w7QUFBQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxZQUFNO0FBQUE7QUFBQSxVQUNWO0FBQUEsUUFDRjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBQ0EsVUFBTSxzQkFBc0IsUUFBUSxNQUFNLEdBQUc7QUFDN0MsVUFBTSx1QkFBdUIsUUFBUSxRQUFRLE1BQU07QUFDbkQsVUFBTSxvQkFBb0IsUUFBUSxLQUFLLEdBQUc7QUFDMUMsVUFBTSxjQUFjO0FBQUEsUUFDbEIsT0FBTztBQUFBLFFBQ1AsT0FBTztBQUFBLFFBQ1AsV0FBVztBQUFBLE1BQ2I7QUFDQSxVQUFNLGdCQUFnQjtBQUFBLFFBQ3BCLE9BQU87QUFBQSxRQUNQLE9BQU87QUFBQSxRQUNQLFdBQVc7QUFBQSxNQUNiO0FBQ0EsVUFBTSxxQkFBcUI7QUFBQSxRQUN6QixPQUFPO0FBQUEsUUFDUCxPQUFPO0FBQUEsUUFDUCxXQUFXO0FBQUEsTUFDYjtBQUNBLFVBQU0sY0FBYztBQUFBLFFBQ2xCLE9BQU87QUFBQSxRQUNQLE9BQU87QUFBQSxRQUNQLEtBQUs7QUFBQSxRQUNMLFVBQVU7QUFBQSxVQUNSO0FBQUEsVUFDQTtBQUFBLFlBQ0UsT0FBTztBQUFBLFlBQ1AsS0FBSztBQUFBLFlBQ0wsV0FBVztBQUFBLFlBQ1gsVUFBVSxDQUFDLGdCQUFnQjtBQUFBLFVBQzdCO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFDQSxVQUFNLGFBQWE7QUFBQSxRQUNqQixPQUFPO0FBQUEsUUFDUCxPQUFPO0FBQUEsUUFDUCxXQUFXO0FBQUEsTUFDYjtBQUNBLFVBQU0sd0JBQXdCO0FBQUEsUUFDNUIsT0FBTztBQUFBLFFBQ1AsT0FBTztBQUFBLFFBQ1AsV0FBVztBQUFBLE1BQ2I7QUFDQSxVQUFNLGVBQWU7QUFBQTtBQUFBLFFBRW5CLE9BQU8sWUFBWTtBQUFBLFFBQ25CLFdBQVc7QUFBQSxNQUNiO0FBU0EsVUFBTSxvQkFBb0IsU0FBUyxNQUFNO0FBQ3ZDLGVBQU8sT0FBTztBQUFBLFVBQU87QUFBQSxVQUNuQjtBQUFBO0FBQUEsWUFFRSxZQUFZLENBQUMsR0FBRyxTQUFTO0FBQUUsbUJBQUssS0FBSyxjQUFjLEVBQUUsQ0FBQztBQUFBLFlBQUc7QUFBQTtBQUFBLFlBRXpELFVBQVUsQ0FBQyxHQUFHLFNBQVM7QUFBRSxrQkFBSSxLQUFLLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztBQUFHLHFCQUFLLFlBQVk7QUFBQSxZQUFHO0FBQUEsVUFDbkY7QUFBQSxRQUFDO0FBQUEsTUFDTDtBQUVBLFVBQUksUUFBcUIsdUJBQU8sT0FBTztBQUFBLFFBQ3JDLFdBQVc7QUFBQSxRQUNYO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLENBQUM7QUErQkQsZUFBUyxzQkFBc0IsT0FBTyxVQUFVO0FBQzlDLGNBQU0sU0FBUyxNQUFNLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDMUMsWUFBSSxXQUFXLEtBQUs7QUFDbEIsbUJBQVMsWUFBWTtBQUFBLFFBQ3ZCO0FBQUEsTUFDRjtBQU1BLGVBQVMsZUFBZSxNQUFNLFNBQVM7QUFFckMsWUFBSSxLQUFLLGNBQWMsUUFBVztBQUNoQyxlQUFLLFFBQVEsS0FBSztBQUNsQixpQkFBTyxLQUFLO0FBQUEsUUFDZDtBQUFBLE1BQ0Y7QUFNQSxlQUFTLGNBQWMsTUFBTSxRQUFRO0FBQ25DLFlBQUksQ0FBQztBQUFRO0FBQ2IsWUFBSSxDQUFDLEtBQUs7QUFBZTtBQU96QixhQUFLLFFBQVEsU0FBUyxLQUFLLGNBQWMsTUFBTSxHQUFHLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFDaEUsYUFBSyxnQkFBZ0I7QUFDckIsYUFBSyxXQUFXLEtBQUssWUFBWSxLQUFLO0FBQ3RDLGVBQU8sS0FBSztBQUtaLFlBQUksS0FBSyxjQUFjO0FBQVcsZUFBSyxZQUFZO0FBQUEsTUFDckQ7QUFNQSxlQUFTLGVBQWUsTUFBTSxTQUFTO0FBQ3JDLFlBQUksQ0FBQyxNQUFNLFFBQVEsS0FBSyxPQUFPO0FBQUc7QUFFbEMsYUFBSyxVQUFVLE9BQU8sR0FBRyxLQUFLLE9BQU87QUFBQSxNQUN2QztBQU1BLGVBQVMsYUFBYSxNQUFNLFNBQVM7QUFDbkMsWUFBSSxDQUFDLEtBQUs7QUFBTztBQUNqQixZQUFJLEtBQUssU0FBUyxLQUFLO0FBQUssZ0JBQU0sSUFBSSxNQUFNLDBDQUEwQztBQUV0RixhQUFLLFFBQVEsS0FBSztBQUNsQixlQUFPLEtBQUs7QUFBQSxNQUNkO0FBTUEsZUFBUyxpQkFBaUIsTUFBTSxTQUFTO0FBRXZDLFlBQUksS0FBSyxjQUFjO0FBQVcsZUFBSyxZQUFZO0FBQUEsTUFDckQ7QUFJQSxVQUFNLGlCQUFpQixDQUFDLE1BQU0sV0FBVztBQUN2QyxZQUFJLENBQUMsS0FBSztBQUFhO0FBR3ZCLFlBQUksS0FBSztBQUFRLGdCQUFNLElBQUksTUFBTSx3Q0FBd0M7QUFFekUsY0FBTSxlQUFlLE9BQU8sT0FBTyxDQUFDLEdBQUcsSUFBSTtBQUMzQyxlQUFPLEtBQUssSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRO0FBQUUsaUJBQU8sS0FBSyxHQUFHO0FBQUEsUUFBRyxDQUFDO0FBRXhELGFBQUssV0FBVyxhQUFhO0FBQzdCLGFBQUssUUFBUSxPQUFPLGFBQWEsYUFBYSxVQUFVLGFBQWEsS0FBSyxDQUFDO0FBQzNFLGFBQUssU0FBUztBQUFBLFVBQ1osV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1IsT0FBTyxPQUFPLGNBQWMsRUFBRSxZQUFZLEtBQUssQ0FBQztBQUFBLFVBQ2xEO0FBQUEsUUFDRjtBQUNBLGFBQUssWUFBWTtBQUVqQixlQUFPLGFBQWE7QUFBQSxNQUN0QjtBQUdBLFVBQU0sa0JBQWtCO0FBQUEsUUFDdEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsTUFDRjtBQUVBLFVBQU0sd0JBQXdCO0FBUTlCLGVBQVMsZ0JBQWdCLGFBQWEsaUJBQWlCLFlBQVksdUJBQXVCO0FBRXhGLGNBQU0sbUJBQW1CLHVCQUFPLE9BQU8sSUFBSTtBQUkzQyxZQUFJLE9BQU8sZ0JBQWdCLFVBQVU7QUFDbkMsc0JBQVksV0FBVyxZQUFZLE1BQU0sR0FBRyxDQUFDO0FBQUEsUUFDL0MsV0FBVyxNQUFNLFFBQVEsV0FBVyxHQUFHO0FBQ3JDLHNCQUFZLFdBQVcsV0FBVztBQUFBLFFBQ3BDLE9BQU87QUFDTCxpQkFBTyxLQUFLLFdBQVcsRUFBRSxRQUFRLFNBQVNDLFlBQVc7QUFFbkQsbUJBQU87QUFBQSxjQUNMO0FBQUEsY0FDQSxnQkFBZ0IsWUFBWUEsVUFBUyxHQUFHLGlCQUFpQkEsVUFBUztBQUFBLFlBQ3BFO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQUNBLGVBQU87QUFZUCxpQkFBUyxZQUFZQSxZQUFXLGFBQWE7QUFDM0MsY0FBSSxpQkFBaUI7QUFDbkIsMEJBQWMsWUFBWSxJQUFJLE9BQUssRUFBRSxZQUFZLENBQUM7QUFBQSxVQUNwRDtBQUNBLHNCQUFZLFFBQVEsU0FBUyxTQUFTO0FBQ3BDLGtCQUFNLE9BQU8sUUFBUSxNQUFNLEdBQUc7QUFDOUIsNkJBQWlCLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQ0EsWUFBVyxnQkFBZ0IsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUFBLFVBQzNFLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQVVBLGVBQVMsZ0JBQWdCLFNBQVMsZUFBZTtBQUcvQyxZQUFJLGVBQWU7QUFDakIsaUJBQU8sT0FBTyxhQUFhO0FBQUEsUUFDN0I7QUFFQSxlQUFPLGNBQWMsT0FBTyxJQUFJLElBQUk7QUFBQSxNQUN0QztBQU1BLGVBQVMsY0FBYyxTQUFTO0FBQzlCLGVBQU8sZ0JBQWdCLFNBQVMsUUFBUSxZQUFZLENBQUM7QUFBQSxNQUN2RDtBQVlBLFVBQU0sbUJBQW1CLENBQUM7QUFLMUIsVUFBTSxRQUFRLENBQUMsWUFBWTtBQUN6QixnQkFBUSxNQUFNLE9BQU87QUFBQSxNQUN2QjtBQU1BLFVBQU0sT0FBTyxDQUFDLFlBQVksU0FBUztBQUNqQyxnQkFBUSxJQUFJLFNBQVMsT0FBTyxJQUFJLEdBQUcsSUFBSTtBQUFBLE1BQ3pDO0FBTUEsVUFBTSxhQUFhLENBQUNDLFVBQVMsWUFBWTtBQUN2QyxZQUFJLGlCQUFpQixHQUFHQSxRQUFPLElBQUksT0FBTyxFQUFFO0FBQUc7QUFFL0MsZ0JBQVEsSUFBSSxvQkFBb0JBLFFBQU8sS0FBSyxPQUFPLEVBQUU7QUFDckQseUJBQWlCLEdBQUdBLFFBQU8sSUFBSSxPQUFPLEVBQUUsSUFBSTtBQUFBLE1BQzlDO0FBUUEsVUFBTSxrQkFBa0IsSUFBSSxNQUFNO0FBOEJsQyxlQUFTLGdCQUFnQixNQUFNLFNBQVMsRUFBRSxJQUFJLEdBQUc7QUFDL0MsWUFBSUgsVUFBUztBQUNiLGNBQU0sYUFBYSxLQUFLLEdBQUc7QUFFM0IsY0FBTSxPQUFPLENBQUM7QUFFZCxjQUFNLFlBQVksQ0FBQztBQUVuQixpQkFBUyxJQUFJLEdBQUcsS0FBSyxRQUFRLFFBQVEsS0FBSztBQUN4QyxvQkFBVSxJQUFJQSxPQUFNLElBQUksV0FBVyxDQUFDO0FBQ3BDLGVBQUssSUFBSUEsT0FBTSxJQUFJO0FBQ25CLFVBQUFBLFdBQVUsaUJBQWlCLFFBQVEsSUFBSSxDQUFDLENBQUM7QUFBQSxRQUMzQztBQUdBLGFBQUssR0FBRyxJQUFJO0FBQ1osYUFBSyxHQUFHLEVBQUUsUUFBUTtBQUNsQixhQUFLLEdBQUcsRUFBRSxTQUFTO0FBQUEsTUFDckI7QUFLQSxlQUFTLGdCQUFnQixNQUFNO0FBQzdCLFlBQUksQ0FBQyxNQUFNLFFBQVEsS0FBSyxLQUFLO0FBQUc7QUFFaEMsWUFBSSxLQUFLLFFBQVEsS0FBSyxnQkFBZ0IsS0FBSyxhQUFhO0FBQ3RELGdCQUFNLG9FQUFvRTtBQUMxRSxnQkFBTTtBQUFBLFFBQ1I7QUFFQSxZQUFJLE9BQU8sS0FBSyxlQUFlLFlBQVksS0FBSyxlQUFlLE1BQU07QUFDbkUsZ0JBQU0sMkJBQTJCO0FBQ2pDLGdCQUFNO0FBQUEsUUFDUjtBQUVBLHdCQUFnQixNQUFNLEtBQUssT0FBTyxFQUFFLEtBQUssYUFBYSxDQUFDO0FBQ3ZELGFBQUssUUFBUSx1QkFBdUIsS0FBSyxPQUFPLEVBQUUsVUFBVSxHQUFHLENBQUM7QUFBQSxNQUNsRTtBQUtBLGVBQVMsY0FBYyxNQUFNO0FBQzNCLFlBQUksQ0FBQyxNQUFNLFFBQVEsS0FBSyxHQUFHO0FBQUc7QUFFOUIsWUFBSSxLQUFLLFFBQVEsS0FBSyxjQUFjLEtBQUssV0FBVztBQUNsRCxnQkFBTSw4REFBOEQ7QUFDcEUsZ0JBQU07QUFBQSxRQUNSO0FBRUEsWUFBSSxPQUFPLEtBQUssYUFBYSxZQUFZLEtBQUssYUFBYSxNQUFNO0FBQy9ELGdCQUFNLHlCQUF5QjtBQUMvQixnQkFBTTtBQUFBLFFBQ1I7QUFFQSx3QkFBZ0IsTUFBTSxLQUFLLEtBQUssRUFBRSxLQUFLLFdBQVcsQ0FBQztBQUNuRCxhQUFLLE1BQU0sdUJBQXVCLEtBQUssS0FBSyxFQUFFLFVBQVUsR0FBRyxDQUFDO0FBQUEsTUFDOUQ7QUFhQSxlQUFTLFdBQVcsTUFBTTtBQUN4QixZQUFJLEtBQUssU0FBUyxPQUFPLEtBQUssVUFBVSxZQUFZLEtBQUssVUFBVSxNQUFNO0FBQ3ZFLGVBQUssYUFBYSxLQUFLO0FBQ3ZCLGlCQUFPLEtBQUs7QUFBQSxRQUNkO0FBQUEsTUFDRjtBQUtBLGVBQVMsV0FBVyxNQUFNO0FBQ3hCLG1CQUFXLElBQUk7QUFFZixZQUFJLE9BQU8sS0FBSyxlQUFlLFVBQVU7QUFDdkMsZUFBSyxhQUFhLEVBQUUsT0FBTyxLQUFLLFdBQVc7QUFBQSxRQUM3QztBQUNBLFlBQUksT0FBTyxLQUFLLGFBQWEsVUFBVTtBQUNyQyxlQUFLLFdBQVcsRUFBRSxPQUFPLEtBQUssU0FBUztBQUFBLFFBQ3pDO0FBRUEsd0JBQWdCLElBQUk7QUFDcEIsc0JBQWMsSUFBSTtBQUFBLE1BQ3BCO0FBb0JBLGVBQVMsZ0JBQWdCLFVBQVU7QUFPakMsaUJBQVMsT0FBTyxPQUFPSSxTQUFRO0FBQzdCLGlCQUFPLElBQUk7QUFBQSxZQUNULE9BQU8sS0FBSztBQUFBLFlBQ1osT0FDRyxTQUFTLG1CQUFtQixNQUFNLE9BQ2xDLFNBQVMsZUFBZSxNQUFNLE9BQzlCQSxVQUFTLE1BQU07QUFBQSxVQUNwQjtBQUFBLFFBQ0Y7QUFBQSxRQWVBLE1BQU0sV0FBVztBQUFBLFVBQ2YsY0FBYztBQUNaLGlCQUFLLGVBQWUsQ0FBQztBQUVyQixpQkFBSyxVQUFVLENBQUM7QUFDaEIsaUJBQUssVUFBVTtBQUNmLGlCQUFLLFdBQVc7QUFBQSxVQUNsQjtBQUFBO0FBQUEsVUFHQSxRQUFRLElBQUksTUFBTTtBQUNoQixpQkFBSyxXQUFXLEtBQUs7QUFFckIsaUJBQUssYUFBYSxLQUFLLE9BQU8sSUFBSTtBQUNsQyxpQkFBSyxRQUFRLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUM1QixpQkFBSyxXQUFXLGlCQUFpQixFQUFFLElBQUk7QUFBQSxVQUN6QztBQUFBLFVBRUEsVUFBVTtBQUNSLGdCQUFJLEtBQUssUUFBUSxXQUFXLEdBQUc7QUFHN0IsbUJBQUssT0FBTyxNQUFNO0FBQUEsWUFDcEI7QUFDQSxrQkFBTSxjQUFjLEtBQUssUUFBUSxJQUFJLFFBQU0sR0FBRyxDQUFDLENBQUM7QUFDaEQsaUJBQUssWUFBWSxPQUFPLHVCQUF1QixhQUFhLEVBQUUsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJO0FBQ3BGLGlCQUFLLFlBQVk7QUFBQSxVQUNuQjtBQUFBO0FBQUEsVUFHQSxLQUFLLEdBQUc7QUFDTixpQkFBSyxVQUFVLFlBQVksS0FBSztBQUNoQyxrQkFBTSxRQUFRLEtBQUssVUFBVSxLQUFLLENBQUM7QUFDbkMsZ0JBQUksQ0FBQyxPQUFPO0FBQUUscUJBQU87QUFBQSxZQUFNO0FBRzNCLGtCQUFNLElBQUksTUFBTSxVQUFVLENBQUMsSUFBSUMsT0FBTUEsS0FBSSxLQUFLLE9BQU8sTUFBUztBQUU5RCxrQkFBTSxZQUFZLEtBQUssYUFBYSxDQUFDO0FBR3JDLGtCQUFNLE9BQU8sR0FBRyxDQUFDO0FBRWpCLG1CQUFPLE9BQU8sT0FBTyxPQUFPLFNBQVM7QUFBQSxVQUN2QztBQUFBLFFBQ0Y7QUFBQSxRQWlDQSxNQUFNLG9CQUFvQjtBQUFBLFVBQ3hCLGNBQWM7QUFFWixpQkFBSyxRQUFRLENBQUM7QUFFZCxpQkFBSyxlQUFlLENBQUM7QUFDckIsaUJBQUssUUFBUTtBQUViLGlCQUFLLFlBQVk7QUFDakIsaUJBQUssYUFBYTtBQUFBLFVBQ3BCO0FBQUE7QUFBQSxVQUdBLFdBQVcsT0FBTztBQUNoQixnQkFBSSxLQUFLLGFBQWEsS0FBSztBQUFHLHFCQUFPLEtBQUssYUFBYSxLQUFLO0FBRTVELGtCQUFNLFVBQVUsSUFBSSxXQUFXO0FBQy9CLGlCQUFLLE1BQU0sTUFBTSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sUUFBUSxRQUFRLElBQUksSUFBSSxDQUFDO0FBQ3pFLG9CQUFRLFFBQVE7QUFDaEIsaUJBQUssYUFBYSxLQUFLLElBQUk7QUFDM0IsbUJBQU87QUFBQSxVQUNUO0FBQUEsVUFFQSw2QkFBNkI7QUFDM0IsbUJBQU8sS0FBSyxlQUFlO0FBQUEsVUFDN0I7QUFBQSxVQUVBLGNBQWM7QUFDWixpQkFBSyxhQUFhO0FBQUEsVUFDcEI7QUFBQTtBQUFBLFVBR0EsUUFBUSxJQUFJLE1BQU07QUFDaEIsaUJBQUssTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDMUIsZ0JBQUksS0FBSyxTQUFTO0FBQVMsbUJBQUs7QUFBQSxVQUNsQztBQUFBO0FBQUEsVUFHQSxLQUFLLEdBQUc7QUFDTixrQkFBTSxJQUFJLEtBQUssV0FBVyxLQUFLLFVBQVU7QUFDekMsY0FBRSxZQUFZLEtBQUs7QUFDbkIsZ0JBQUksU0FBUyxFQUFFLEtBQUssQ0FBQztBQWlDckIsZ0JBQUksS0FBSywyQkFBMkIsR0FBRztBQUNyQyxrQkFBSSxVQUFVLE9BQU8sVUFBVSxLQUFLO0FBQVc7QUFBQSxtQkFBTztBQUNwRCxzQkFBTSxLQUFLLEtBQUssV0FBVyxDQUFDO0FBQzVCLG1CQUFHLFlBQVksS0FBSyxZQUFZO0FBQ2hDLHlCQUFTLEdBQUcsS0FBSyxDQUFDO0FBQUEsY0FDcEI7QUFBQSxZQUNGO0FBRUEsZ0JBQUksUUFBUTtBQUNWLG1CQUFLLGNBQWMsT0FBTyxXQUFXO0FBQ3JDLGtCQUFJLEtBQUssZUFBZSxLQUFLLE9BQU87QUFFbEMscUJBQUssWUFBWTtBQUFBLGNBQ25CO0FBQUEsWUFDRjtBQUVBLG1CQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFTQSxpQkFBUyxlQUFlLE1BQU07QUFDNUIsZ0JBQU0sS0FBSyxJQUFJLG9CQUFvQjtBQUVuQyxlQUFLLFNBQVMsUUFBUSxVQUFRLEdBQUcsUUFBUSxLQUFLLE9BQU8sRUFBRSxNQUFNLE1BQU0sTUFBTSxRQUFRLENBQUMsQ0FBQztBQUVuRixjQUFJLEtBQUssZUFBZTtBQUN0QixlQUFHLFFBQVEsS0FBSyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFBQSxVQUNoRDtBQUNBLGNBQUksS0FBSyxTQUFTO0FBQ2hCLGVBQUcsUUFBUSxLQUFLLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUFBLFVBQzlDO0FBRUEsaUJBQU87QUFBQSxRQUNUO0FBeUNBLGlCQUFTLFlBQVksTUFBTSxRQUFRO0FBQ2pDLGdCQUFNO0FBQUE7QUFBQSxZQUFtQztBQUFBO0FBQ3pDLGNBQUksS0FBSztBQUFZLG1CQUFPO0FBRTVCO0FBQUEsWUFDRTtBQUFBO0FBQUE7QUFBQSxZQUdBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGLEVBQUUsUUFBUSxTQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFbEMsbUJBQVMsbUJBQW1CLFFBQVEsU0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRzVELGVBQUssZ0JBQWdCO0FBRXJCO0FBQUEsWUFDRTtBQUFBO0FBQUE7QUFBQSxZQUdBO0FBQUE7QUFBQSxZQUVBO0FBQUEsVUFDRixFQUFFLFFBQVEsU0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRWxDLGVBQUssYUFBYTtBQUVsQixjQUFJLGlCQUFpQjtBQUNyQixjQUFJLE9BQU8sS0FBSyxhQUFhLFlBQVksS0FBSyxTQUFTLFVBQVU7QUFJL0QsaUJBQUssV0FBVyxPQUFPLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUTtBQUMvQyw2QkFBaUIsS0FBSyxTQUFTO0FBQy9CLG1CQUFPLEtBQUssU0FBUztBQUFBLFVBQ3ZCO0FBQ0EsMkJBQWlCLGtCQUFrQjtBQUVuQyxjQUFJLEtBQUssVUFBVTtBQUNqQixpQkFBSyxXQUFXLGdCQUFnQixLQUFLLFVBQVUsU0FBUyxnQkFBZ0I7QUFBQSxVQUMxRTtBQUVBLGdCQUFNLG1CQUFtQixPQUFPLGdCQUFnQixJQUFJO0FBRXBELGNBQUksUUFBUTtBQUNWLGdCQUFJLENBQUMsS0FBSztBQUFPLG1CQUFLLFFBQVE7QUFDOUIsa0JBQU0sVUFBVSxPQUFPLE1BQU0sS0FBSztBQUNsQyxnQkFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLEtBQUs7QUFBZ0IsbUJBQUssTUFBTTtBQUNsRCxnQkFBSSxLQUFLO0FBQUssb0JBQU0sUUFBUSxPQUFPLE1BQU0sR0FBRztBQUM1QyxrQkFBTSxnQkFBZ0IsT0FBTyxNQUFNLEdBQUcsS0FBSztBQUMzQyxnQkFBSSxLQUFLLGtCQUFrQixPQUFPLGVBQWU7QUFDL0Msb0JBQU0sa0JBQWtCLEtBQUssTUFBTSxNQUFNLE1BQU0sT0FBTztBQUFBLFlBQ3hEO0FBQUEsVUFDRjtBQUNBLGNBQUksS0FBSztBQUFTLGtCQUFNLFlBQVk7QUFBQTtBQUFBLGNBQXVDLEtBQUs7QUFBQSxZQUFRO0FBQ3hGLGNBQUksQ0FBQyxLQUFLO0FBQVUsaUJBQUssV0FBVyxDQUFDO0FBRXJDLGVBQUssV0FBVyxDQUFDLEVBQUUsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLFNBQVMsR0FBRztBQUN6RCxtQkFBTyxrQkFBa0IsTUFBTSxTQUFTLE9BQU8sQ0FBQztBQUFBLFVBQ2xELENBQUMsQ0FBQztBQUNGLGVBQUssU0FBUyxRQUFRLFNBQVMsR0FBRztBQUFFO0FBQUE7QUFBQSxjQUErQjtBQUFBLGNBQUk7QUFBQSxZQUFLO0FBQUEsVUFBRyxDQUFDO0FBRWhGLGNBQUksS0FBSyxRQUFRO0FBQ2Ysd0JBQVksS0FBSyxRQUFRLE1BQU07QUFBQSxVQUNqQztBQUVBLGdCQUFNLFVBQVUsZUFBZSxLQUFLO0FBQ3BDLGlCQUFPO0FBQUEsUUFDVDtBQUVBLFlBQUksQ0FBQyxTQUFTO0FBQW9CLG1CQUFTLHFCQUFxQixDQUFDO0FBR2pFLFlBQUksU0FBUyxZQUFZLFNBQVMsU0FBUyxTQUFTLE1BQU0sR0FBRztBQUMzRCxnQkFBTSxJQUFJLE1BQU0sMkZBQTJGO0FBQUEsUUFDN0c7QUFHQSxpQkFBUyxtQkFBbUIsVUFBVSxTQUFTLG9CQUFvQixDQUFDLENBQUM7QUFFckUsZUFBTztBQUFBO0FBQUEsVUFBK0I7QUFBQSxRQUFTO0FBQUEsTUFDakQ7QUFhQSxlQUFTLG1CQUFtQixNQUFNO0FBQ2hDLFlBQUksQ0FBQztBQUFNLGlCQUFPO0FBRWxCLGVBQU8sS0FBSyxrQkFBa0IsbUJBQW1CLEtBQUssTUFBTTtBQUFBLE1BQzlEO0FBWUEsZUFBUyxrQkFBa0IsTUFBTTtBQUMvQixZQUFJLEtBQUssWUFBWSxDQUFDLEtBQUssZ0JBQWdCO0FBQ3pDLGVBQUssaUJBQWlCLEtBQUssU0FBUyxJQUFJLFNBQVMsU0FBUztBQUN4RCxtQkFBTyxVQUFVLE1BQU0sRUFBRSxVQUFVLEtBQUssR0FBRyxPQUFPO0FBQUEsVUFDcEQsQ0FBQztBQUFBLFFBQ0g7QUFLQSxZQUFJLEtBQUssZ0JBQWdCO0FBQ3ZCLGlCQUFPLEtBQUs7QUFBQSxRQUNkO0FBTUEsWUFBSSxtQkFBbUIsSUFBSSxHQUFHO0FBQzVCLGlCQUFPLFVBQVUsTUFBTSxFQUFFLFFBQVEsS0FBSyxTQUFTLFVBQVUsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDO0FBQUEsUUFDaEY7QUFFQSxZQUFJLE9BQU8sU0FBUyxJQUFJLEdBQUc7QUFDekIsaUJBQU8sVUFBVSxJQUFJO0FBQUEsUUFDdkI7QUFHQSxlQUFPO0FBQUEsTUFDVDtBQUVBLFVBQUksVUFBVTtBQUVkLFVBQU0scUJBQU4sY0FBaUMsTUFBTTtBQUFBLFFBQ3JDLFlBQVksUUFBUSxNQUFNO0FBQ3hCLGdCQUFNLE1BQU07QUFDWixlQUFLLE9BQU87QUFDWixlQUFLLE9BQU87QUFBQSxRQUNkO0FBQUEsTUFDRjtBQStCQSxVQUFNLFNBQVM7QUFDZixVQUFNLFVBQVU7QUFDaEIsVUFBTSxXQUFXLE9BQU8sU0FBUztBQUNqQyxVQUFNLG1CQUFtQjtBQU16QixVQUFNLE9BQU8sU0FBUyxNQUFNO0FBRzFCLGNBQU0sWUFBWSx1QkFBTyxPQUFPLElBQUk7QUFFcEMsY0FBTSxVQUFVLHVCQUFPLE9BQU8sSUFBSTtBQUVsQyxjQUFNLFVBQVUsQ0FBQztBQUlqQixZQUFJLFlBQVk7QUFDaEIsY0FBTSxxQkFBcUI7QUFFM0IsY0FBTSxxQkFBcUIsRUFBRSxtQkFBbUIsTUFBTSxNQUFNLGNBQWMsVUFBVSxDQUFDLEVBQUU7QUFLdkYsWUFBSSxVQUFVO0FBQUEsVUFDWixxQkFBcUI7QUFBQSxVQUNyQixvQkFBb0I7QUFBQSxVQUNwQixlQUFlO0FBQUEsVUFDZixrQkFBa0I7QUFBQSxVQUNsQixhQUFhO0FBQUEsVUFDYixhQUFhO0FBQUEsVUFDYixXQUFXO0FBQUE7QUFBQTtBQUFBLFVBR1gsV0FBVztBQUFBLFFBQ2I7QUFRQSxpQkFBUyxtQkFBbUIsY0FBYztBQUN4QyxpQkFBTyxRQUFRLGNBQWMsS0FBSyxZQUFZO0FBQUEsUUFDaEQ7QUFLQSxpQkFBUyxjQUFjLE9BQU87QUFDNUIsY0FBSSxVQUFVLE1BQU0sWUFBWTtBQUVoQyxxQkFBVyxNQUFNLGFBQWEsTUFBTSxXQUFXLFlBQVk7QUFHM0QsZ0JBQU0sUUFBUSxRQUFRLGlCQUFpQixLQUFLLE9BQU87QUFDbkQsY0FBSSxPQUFPO0FBQ1Qsa0JBQU0sV0FBVyxZQUFZLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLGdCQUFJLENBQUMsVUFBVTtBQUNiLG1CQUFLLG1CQUFtQixRQUFRLE1BQU0sTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMvQyxtQkFBSyxxREFBcUQsS0FBSztBQUFBLFlBQ2pFO0FBQ0EsbUJBQU8sV0FBVyxNQUFNLENBQUMsSUFBSTtBQUFBLFVBQy9CO0FBRUEsaUJBQU8sUUFDSixNQUFNLEtBQUssRUFDWCxLQUFLLENBQUMsV0FBVyxtQkFBbUIsTUFBTSxLQUFLLFlBQVksTUFBTSxDQUFDO0FBQUEsUUFDdkU7QUF1QkEsaUJBQVNDLFdBQVUsb0JBQW9CLGVBQWUsZ0JBQWdCO0FBQ3BFLGNBQUksT0FBTztBQUNYLGNBQUksZUFBZTtBQUNuQixjQUFJLE9BQU8sa0JBQWtCLFVBQVU7QUFDckMsbUJBQU87QUFDUCw2QkFBaUIsY0FBYztBQUMvQiwyQkFBZSxjQUFjO0FBQUEsVUFDL0IsT0FBTztBQUVMLHVCQUFXLFVBQVUscURBQXFEO0FBQzFFLHVCQUFXLFVBQVUsdUdBQXVHO0FBQzVILDJCQUFlO0FBQ2YsbUJBQU87QUFBQSxVQUNUO0FBSUEsY0FBSSxtQkFBbUIsUUFBVztBQUFFLDZCQUFpQjtBQUFBLFVBQU07QUFHM0QsZ0JBQU0sVUFBVTtBQUFBLFlBQ2Q7QUFBQSxZQUNBLFVBQVU7QUFBQSxVQUNaO0FBR0EsZUFBSyxvQkFBb0IsT0FBTztBQUloQyxnQkFBTSxTQUFTLFFBQVEsU0FDbkIsUUFBUSxTQUNSLFdBQVcsUUFBUSxVQUFVLFFBQVEsTUFBTSxjQUFjO0FBRTdELGlCQUFPLE9BQU8sUUFBUTtBQUV0QixlQUFLLG1CQUFtQixNQUFNO0FBRTlCLGlCQUFPO0FBQUEsUUFDVDtBQVdBLGlCQUFTLFdBQVcsY0FBYyxpQkFBaUIsZ0JBQWdCLGNBQWM7QUFDL0UsZ0JBQU0sY0FBYyx1QkFBTyxPQUFPLElBQUk7QUFRdEMsbUJBQVMsWUFBWSxNQUFNLFdBQVc7QUFDcEMsbUJBQU8sS0FBSyxTQUFTLFNBQVM7QUFBQSxVQUNoQztBQUVBLG1CQUFTLGtCQUFrQjtBQUN6QixnQkFBSSxDQUFDQyxLQUFJLFVBQVU7QUFDakIsc0JBQVEsUUFBUSxVQUFVO0FBQzFCO0FBQUEsWUFDRjtBQUVBLGdCQUFJLFlBQVk7QUFDaEIsWUFBQUEsS0FBSSxpQkFBaUIsWUFBWTtBQUNqQyxnQkFBSSxRQUFRQSxLQUFJLGlCQUFpQixLQUFLLFVBQVU7QUFDaEQsZ0JBQUksTUFBTTtBQUVWLG1CQUFPLE9BQU87QUFDWixxQkFBTyxXQUFXLFVBQVUsV0FBVyxNQUFNLEtBQUs7QUFDbEQsb0JBQU0sT0FBTyxTQUFTLG1CQUFtQixNQUFNLENBQUMsRUFBRSxZQUFZLElBQUksTUFBTSxDQUFDO0FBQ3pFLG9CQUFNLE9BQU8sWUFBWUEsTUFBSyxJQUFJO0FBQ2xDLGtCQUFJLE1BQU07QUFDUixzQkFBTSxDQUFDLE1BQU0sZ0JBQWdCLElBQUk7QUFDakMsd0JBQVEsUUFBUSxHQUFHO0FBQ25CLHNCQUFNO0FBRU4sNEJBQVksSUFBSSxLQUFLLFlBQVksSUFBSSxLQUFLLEtBQUs7QUFDL0Msb0JBQUksWUFBWSxJQUFJLEtBQUs7QUFBa0IsK0JBQWE7QUFDeEQsb0JBQUksS0FBSyxXQUFXLEdBQUcsR0FBRztBQUd4Qix5QkFBTyxNQUFNLENBQUM7QUFBQSxnQkFDaEIsT0FBTztBQUNMLHdCQUFNLFdBQVcsU0FBUyxpQkFBaUIsSUFBSSxLQUFLO0FBQ3BELDhCQUFZLE1BQU0sQ0FBQyxHQUFHLFFBQVE7QUFBQSxnQkFDaEM7QUFBQSxjQUNGLE9BQU87QUFDTCx1QkFBTyxNQUFNLENBQUM7QUFBQSxjQUNoQjtBQUNBLDBCQUFZQSxLQUFJLGlCQUFpQjtBQUNqQyxzQkFBUUEsS0FBSSxpQkFBaUIsS0FBSyxVQUFVO0FBQUEsWUFDOUM7QUFDQSxtQkFBTyxXQUFXLFVBQVUsU0FBUztBQUNyQyxvQkFBUSxRQUFRLEdBQUc7QUFBQSxVQUNyQjtBQUVBLG1CQUFTLHFCQUFxQjtBQUM1QixnQkFBSSxlQUFlO0FBQUk7QUFFdkIsZ0JBQUlDLFVBQVM7QUFFYixnQkFBSSxPQUFPRCxLQUFJLGdCQUFnQixVQUFVO0FBQ3ZDLGtCQUFJLENBQUMsVUFBVUEsS0FBSSxXQUFXLEdBQUc7QUFDL0Isd0JBQVEsUUFBUSxVQUFVO0FBQzFCO0FBQUEsY0FDRjtBQUNBLGNBQUFDLFVBQVMsV0FBV0QsS0FBSSxhQUFhLFlBQVksTUFBTSxjQUFjQSxLQUFJLFdBQVcsQ0FBQztBQUNyRiw0QkFBY0EsS0FBSSxXQUFXO0FBQUEsY0FBaUNDLFFBQU87QUFBQSxZQUN2RSxPQUFPO0FBQ0wsY0FBQUEsVUFBUyxjQUFjLFlBQVlELEtBQUksWUFBWSxTQUFTQSxLQUFJLGNBQWMsSUFBSTtBQUFBLFlBQ3BGO0FBTUEsZ0JBQUlBLEtBQUksWUFBWSxHQUFHO0FBQ3JCLDJCQUFhQyxRQUFPO0FBQUEsWUFDdEI7QUFDQSxvQkFBUSxpQkFBaUJBLFFBQU8sVUFBVUEsUUFBTyxRQUFRO0FBQUEsVUFDM0Q7QUFFQSxtQkFBUyxnQkFBZ0I7QUFDdkIsZ0JBQUlELEtBQUksZUFBZSxNQUFNO0FBQzNCLGlDQUFtQjtBQUFBLFlBQ3JCLE9BQU87QUFDTCw4QkFBZ0I7QUFBQSxZQUNsQjtBQUNBLHlCQUFhO0FBQUEsVUFDZjtBQU1BLG1CQUFTLFlBQVksU0FBUyxPQUFPO0FBQ25DLGdCQUFJLFlBQVk7QUFBSTtBQUVwQixvQkFBUSxXQUFXLEtBQUs7QUFDeEIsb0JBQVEsUUFBUSxPQUFPO0FBQ3ZCLG9CQUFRLFNBQVM7QUFBQSxVQUNuQjtBQU1BLG1CQUFTLGVBQWUsT0FBTyxPQUFPO0FBQ3BDLGdCQUFJLElBQUk7QUFDUixrQkFBTUUsT0FBTSxNQUFNLFNBQVM7QUFDM0IsbUJBQU8sS0FBS0EsTUFBSztBQUNmLGtCQUFJLENBQUMsTUFBTSxNQUFNLENBQUMsR0FBRztBQUFFO0FBQUs7QUFBQSxjQUFVO0FBQ3RDLG9CQUFNLFFBQVEsU0FBUyxpQkFBaUIsTUFBTSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7QUFDNUQsb0JBQU0sT0FBTyxNQUFNLENBQUM7QUFDcEIsa0JBQUksT0FBTztBQUNULDRCQUFZLE1BQU0sS0FBSztBQUFBLGNBQ3pCLE9BQU87QUFDTCw2QkFBYTtBQUNiLGdDQUFnQjtBQUNoQiw2QkFBYTtBQUFBLGNBQ2Y7QUFDQTtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBTUEsbUJBQVMsYUFBYSxNQUFNLE9BQU87QUFDakMsZ0JBQUksS0FBSyxTQUFTLE9BQU8sS0FBSyxVQUFVLFVBQVU7QUFDaEQsc0JBQVEsU0FBUyxTQUFTLGlCQUFpQixLQUFLLEtBQUssS0FBSyxLQUFLLEtBQUs7QUFBQSxZQUN0RTtBQUNBLGdCQUFJLEtBQUssWUFBWTtBQUVuQixrQkFBSSxLQUFLLFdBQVcsT0FBTztBQUN6Qiw0QkFBWSxZQUFZLFNBQVMsaUJBQWlCLEtBQUssV0FBVyxLQUFLLEtBQUssS0FBSyxXQUFXLEtBQUs7QUFDakcsNkJBQWE7QUFBQSxjQUNmLFdBQVcsS0FBSyxXQUFXLFFBQVE7QUFFakMsK0JBQWUsS0FBSyxZQUFZLEtBQUs7QUFDckMsNkJBQWE7QUFBQSxjQUNmO0FBQUEsWUFDRjtBQUVBLFlBQUFGLE9BQU0sT0FBTyxPQUFPLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBT0EsS0FBSSxFQUFFLENBQUM7QUFDcEQsbUJBQU9BO0FBQUEsVUFDVDtBQVFBLG1CQUFTLFVBQVUsTUFBTSxPQUFPLG9CQUFvQjtBQUNsRCxnQkFBSSxVQUFVLFdBQVcsS0FBSyxPQUFPLGtCQUFrQjtBQUV2RCxnQkFBSSxTQUFTO0FBQ1gsa0JBQUksS0FBSyxRQUFRLEdBQUc7QUFDbEIsc0JBQU0sT0FBTyxJQUFJLFNBQVMsSUFBSTtBQUM5QixxQkFBSyxRQUFRLEVBQUUsT0FBTyxJQUFJO0FBQzFCLG9CQUFJLEtBQUs7QUFBZ0IsNEJBQVU7QUFBQSxjQUNyQztBQUVBLGtCQUFJLFNBQVM7QUFDWCx1QkFBTyxLQUFLLGNBQWMsS0FBSyxRQUFRO0FBQ3JDLHlCQUFPLEtBQUs7QUFBQSxnQkFDZDtBQUNBLHVCQUFPO0FBQUEsY0FDVDtBQUFBLFlBQ0Y7QUFHQSxnQkFBSSxLQUFLLGdCQUFnQjtBQUN2QixxQkFBTyxVQUFVLEtBQUssUUFBUSxPQUFPLGtCQUFrQjtBQUFBLFlBQ3pEO0FBQUEsVUFDRjtBQU9BLG1CQUFTLFNBQVMsUUFBUTtBQUN4QixnQkFBSUEsS0FBSSxRQUFRLGVBQWUsR0FBRztBQUdoQyw0QkFBYyxPQUFPLENBQUM7QUFDdEIscUJBQU87QUFBQSxZQUNULE9BQU87QUFHTCx5Q0FBMkI7QUFDM0IscUJBQU87QUFBQSxZQUNUO0FBQUEsVUFDRjtBQVFBLG1CQUFTLGFBQWEsT0FBTztBQUMzQixrQkFBTSxTQUFTLE1BQU0sQ0FBQztBQUN0QixrQkFBTSxVQUFVLE1BQU07QUFFdEIsa0JBQU0sT0FBTyxJQUFJLFNBQVMsT0FBTztBQUVqQyxrQkFBTSxrQkFBa0IsQ0FBQyxRQUFRLGVBQWUsUUFBUSxVQUFVLENBQUM7QUFDbkUsdUJBQVcsTUFBTSxpQkFBaUI7QUFDaEMsa0JBQUksQ0FBQztBQUFJO0FBQ1QsaUJBQUcsT0FBTyxJQUFJO0FBQ2Qsa0JBQUksS0FBSztBQUFnQix1QkFBTyxTQUFTLE1BQU07QUFBQSxZQUNqRDtBQUVBLGdCQUFJLFFBQVEsTUFBTTtBQUNoQiw0QkFBYztBQUFBLFlBQ2hCLE9BQU87QUFDTCxrQkFBSSxRQUFRLGNBQWM7QUFDeEIsOEJBQWM7QUFBQSxjQUNoQjtBQUNBLDRCQUFjO0FBQ2Qsa0JBQUksQ0FBQyxRQUFRLGVBQWUsQ0FBQyxRQUFRLGNBQWM7QUFDakQsNkJBQWE7QUFBQSxjQUNmO0FBQUEsWUFDRjtBQUNBLHlCQUFhLFNBQVMsS0FBSztBQUMzQixtQkFBTyxRQUFRLGNBQWMsSUFBSSxPQUFPO0FBQUEsVUFDMUM7QUFPQSxtQkFBUyxXQUFXLE9BQU87QUFDekIsa0JBQU0sU0FBUyxNQUFNLENBQUM7QUFDdEIsa0JBQU0scUJBQXFCLGdCQUFnQixVQUFVLE1BQU0sS0FBSztBQUVoRSxrQkFBTSxVQUFVLFVBQVVBLE1BQUssT0FBTyxrQkFBa0I7QUFDeEQsZ0JBQUksQ0FBQyxTQUFTO0FBQUUscUJBQU87QUFBQSxZQUFVO0FBRWpDLGtCQUFNLFNBQVNBO0FBQ2YsZ0JBQUlBLEtBQUksWUFBWUEsS0FBSSxTQUFTLE9BQU87QUFDdEMsNEJBQWM7QUFDZCwwQkFBWSxRQUFRQSxLQUFJLFNBQVMsS0FBSztBQUFBLFlBQ3hDLFdBQVdBLEtBQUksWUFBWUEsS0FBSSxTQUFTLFFBQVE7QUFDOUMsNEJBQWM7QUFDZCw2QkFBZUEsS0FBSSxVQUFVLEtBQUs7QUFBQSxZQUNwQyxXQUFXLE9BQU8sTUFBTTtBQUN0Qiw0QkFBYztBQUFBLFlBQ2hCLE9BQU87QUFDTCxrQkFBSSxFQUFFLE9BQU8sYUFBYSxPQUFPLGFBQWE7QUFDNUMsOEJBQWM7QUFBQSxjQUNoQjtBQUNBLDRCQUFjO0FBQ2Qsa0JBQUksT0FBTyxZQUFZO0FBQ3JCLDZCQUFhO0FBQUEsY0FDZjtBQUFBLFlBQ0Y7QUFDQSxlQUFHO0FBQ0Qsa0JBQUlBLEtBQUksT0FBTztBQUNiLHdCQUFRLFVBQVU7QUFBQSxjQUNwQjtBQUNBLGtCQUFJLENBQUNBLEtBQUksUUFBUSxDQUFDQSxLQUFJLGFBQWE7QUFDakMsNkJBQWFBLEtBQUk7QUFBQSxjQUNuQjtBQUNBLGNBQUFBLE9BQU1BLEtBQUk7QUFBQSxZQUNaLFNBQVNBLFNBQVEsUUFBUTtBQUN6QixnQkFBSSxRQUFRLFFBQVE7QUFDbEIsMkJBQWEsUUFBUSxRQUFRLEtBQUs7QUFBQSxZQUNwQztBQUNBLG1CQUFPLE9BQU8sWUFBWSxJQUFJLE9BQU87QUFBQSxVQUN2QztBQUVBLG1CQUFTLHVCQUF1QjtBQUM5QixrQkFBTSxPQUFPLENBQUM7QUFDZCxxQkFBUyxVQUFVQSxNQUFLLFlBQVksVUFBVSxVQUFVLFFBQVEsUUFBUTtBQUN0RSxrQkFBSSxRQUFRLE9BQU87QUFDakIscUJBQUssUUFBUSxRQUFRLEtBQUs7QUFBQSxjQUM1QjtBQUFBLFlBQ0Y7QUFDQSxpQkFBSyxRQUFRLFVBQVEsUUFBUSxTQUFTLElBQUksQ0FBQztBQUFBLFVBQzdDO0FBR0EsY0FBSSxZQUFZLENBQUM7QUFRakIsbUJBQVMsY0FBYyxpQkFBaUIsT0FBTztBQUM3QyxrQkFBTSxTQUFTLFNBQVMsTUFBTSxDQUFDO0FBRy9CLDBCQUFjO0FBRWQsZ0JBQUksVUFBVSxNQUFNO0FBQ2xCLDRCQUFjO0FBQ2QscUJBQU87QUFBQSxZQUNUO0FBTUEsZ0JBQUksVUFBVSxTQUFTLFdBQVcsTUFBTSxTQUFTLFNBQVMsVUFBVSxVQUFVLE1BQU0sU0FBUyxXQUFXLElBQUk7QUFFMUcsNEJBQWMsZ0JBQWdCLE1BQU0sTUFBTSxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2hFLGtCQUFJLENBQUMsV0FBVztBQUVkLHNCQUFNLE1BQU0sSUFBSSxNQUFNLHdCQUF3QixZQUFZLEdBQUc7QUFDN0Qsb0JBQUksZUFBZTtBQUNuQixvQkFBSSxVQUFVLFVBQVU7QUFDeEIsc0JBQU07QUFBQSxjQUNSO0FBQ0EscUJBQU87QUFBQSxZQUNUO0FBQ0Esd0JBQVk7QUFFWixnQkFBSSxNQUFNLFNBQVMsU0FBUztBQUMxQixxQkFBTyxhQUFhLEtBQUs7QUFBQSxZQUMzQixXQUFXLE1BQU0sU0FBUyxhQUFhLENBQUMsZ0JBQWdCO0FBR3RELG9CQUFNLE1BQU0sSUFBSSxNQUFNLHFCQUFxQixTQUFTLGtCQUFrQkEsS0FBSSxTQUFTLGVBQWUsR0FBRztBQUNyRyxrQkFBSSxPQUFPQTtBQUNYLG9CQUFNO0FBQUEsWUFDUixXQUFXLE1BQU0sU0FBUyxPQUFPO0FBQy9CLG9CQUFNLFlBQVksV0FBVyxLQUFLO0FBQ2xDLGtCQUFJLGNBQWMsVUFBVTtBQUMxQix1QkFBTztBQUFBLGNBQ1Q7QUFBQSxZQUNGO0FBS0EsZ0JBQUksTUFBTSxTQUFTLGFBQWEsV0FBVyxJQUFJO0FBRTdDLHFCQUFPO0FBQUEsWUFDVDtBQU1BLGdCQUFJLGFBQWEsT0FBVSxhQUFhLE1BQU0sUUFBUSxHQUFHO0FBQ3ZELG9CQUFNLE1BQU0sSUFBSSxNQUFNLDJEQUEyRDtBQUNqRixvQkFBTTtBQUFBLFlBQ1I7QUFVQSwwQkFBYztBQUNkLG1CQUFPLE9BQU87QUFBQSxVQUNoQjtBQUVBLGdCQUFNLFdBQVcsWUFBWSxZQUFZO0FBQ3pDLGNBQUksQ0FBQyxVQUFVO0FBQ2Isa0JBQU0sbUJBQW1CLFFBQVEsTUFBTSxZQUFZLENBQUM7QUFDcEQsa0JBQU0sSUFBSSxNQUFNLHdCQUF3QixlQUFlLEdBQUc7QUFBQSxVQUM1RDtBQUVBLGdCQUFNLEtBQUssZ0JBQWdCLFFBQVE7QUFDbkMsY0FBSSxTQUFTO0FBRWIsY0FBSUEsT0FBTSxnQkFBZ0I7QUFFMUIsZ0JBQU0sZ0JBQWdCLENBQUM7QUFDdkIsZ0JBQU0sVUFBVSxJQUFJLFFBQVEsVUFBVSxPQUFPO0FBQzdDLCtCQUFxQjtBQUNyQixjQUFJLGFBQWE7QUFDakIsY0FBSSxZQUFZO0FBQ2hCLGNBQUksUUFBUTtBQUNaLGNBQUksYUFBYTtBQUNqQixjQUFJLDJCQUEyQjtBQUUvQixjQUFJO0FBQ0YsZ0JBQUksQ0FBQyxTQUFTLGNBQWM7QUFDMUIsY0FBQUEsS0FBSSxRQUFRLFlBQVk7QUFFeEIseUJBQVM7QUFDUDtBQUNBLG9CQUFJLDBCQUEwQjtBQUc1Qiw2Q0FBMkI7QUFBQSxnQkFDN0IsT0FBTztBQUNMLGtCQUFBQSxLQUFJLFFBQVEsWUFBWTtBQUFBLGdCQUMxQjtBQUNBLGdCQUFBQSxLQUFJLFFBQVEsWUFBWTtBQUV4QixzQkFBTSxRQUFRQSxLQUFJLFFBQVEsS0FBSyxlQUFlO0FBRzlDLG9CQUFJLENBQUM7QUFBTztBQUVaLHNCQUFNLGNBQWMsZ0JBQWdCLFVBQVUsT0FBTyxNQUFNLEtBQUs7QUFDaEUsc0JBQU0saUJBQWlCLGNBQWMsYUFBYSxLQUFLO0FBQ3ZELHdCQUFRLE1BQU0sUUFBUTtBQUFBLGNBQ3hCO0FBQ0EsNEJBQWMsZ0JBQWdCLFVBQVUsS0FBSyxDQUFDO0FBQUEsWUFDaEQsT0FBTztBQUNMLHVCQUFTLGFBQWEsaUJBQWlCLE9BQU87QUFBQSxZQUNoRDtBQUVBLG9CQUFRLFNBQVM7QUFDakIscUJBQVMsUUFBUSxPQUFPO0FBRXhCLG1CQUFPO0FBQUEsY0FDTCxVQUFVO0FBQUEsY0FDVixPQUFPO0FBQUEsY0FDUDtBQUFBLGNBQ0EsU0FBUztBQUFBLGNBQ1QsVUFBVTtBQUFBLGNBQ1YsTUFBTUE7QUFBQSxZQUNSO0FBQUEsVUFDRixTQUFTLEtBQUs7QUFDWixnQkFBSSxJQUFJLFdBQVcsSUFBSSxRQUFRLFNBQVMsU0FBUyxHQUFHO0FBQ2xELHFCQUFPO0FBQUEsZ0JBQ0wsVUFBVTtBQUFBLGdCQUNWLE9BQU8sT0FBTyxlQUFlO0FBQUEsZ0JBQzdCLFNBQVM7QUFBQSxnQkFDVCxXQUFXO0FBQUEsZ0JBQ1gsWUFBWTtBQUFBLGtCQUNWLFNBQVMsSUFBSTtBQUFBLGtCQUNiO0FBQUEsa0JBQ0EsU0FBUyxnQkFBZ0IsTUFBTSxRQUFRLEtBQUssUUFBUSxHQUFHO0FBQUEsa0JBQ3ZELE1BQU0sSUFBSTtBQUFBLGtCQUNWLGFBQWE7QUFBQSxnQkFDZjtBQUFBLGdCQUNBLFVBQVU7QUFBQSxjQUNaO0FBQUEsWUFDRixXQUFXLFdBQVc7QUFDcEIscUJBQU87QUFBQSxnQkFDTCxVQUFVO0FBQUEsZ0JBQ1YsT0FBTyxPQUFPLGVBQWU7QUFBQSxnQkFDN0IsU0FBUztBQUFBLGdCQUNULFdBQVc7QUFBQSxnQkFDWCxhQUFhO0FBQUEsZ0JBQ2IsVUFBVTtBQUFBLGdCQUNWLE1BQU1BO0FBQUEsY0FDUjtBQUFBLFlBQ0YsT0FBTztBQUNMLG9CQUFNO0FBQUEsWUFDUjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBU0EsaUJBQVMsd0JBQXdCLE1BQU07QUFDckMsZ0JBQU0sU0FBUztBQUFBLFlBQ2IsT0FBTyxPQUFPLElBQUk7QUFBQSxZQUNsQixTQUFTO0FBQUEsWUFDVCxXQUFXO0FBQUEsWUFDWCxNQUFNO0FBQUEsWUFDTixVQUFVLElBQUksUUFBUSxVQUFVLE9BQU87QUFBQSxVQUN6QztBQUNBLGlCQUFPLFNBQVMsUUFBUSxJQUFJO0FBQzVCLGlCQUFPO0FBQUEsUUFDVDtBQWdCQSxpQkFBUyxjQUFjLE1BQU0sZ0JBQWdCO0FBQzNDLDJCQUFpQixrQkFBa0IsUUFBUSxhQUFhLE9BQU8sS0FBSyxTQUFTO0FBQzdFLGdCQUFNLFlBQVksd0JBQXdCLElBQUk7QUFFOUMsZ0JBQU0sVUFBVSxlQUFlLE9BQU8sV0FBVyxFQUFFLE9BQU8sYUFBYSxFQUFFO0FBQUEsWUFBSSxVQUMzRSxXQUFXLE1BQU0sTUFBTSxLQUFLO0FBQUEsVUFDOUI7QUFDQSxrQkFBUSxRQUFRLFNBQVM7QUFFekIsZ0JBQU0sU0FBUyxRQUFRLEtBQUssQ0FBQyxHQUFHLE1BQU07QUFFcEMsZ0JBQUksRUFBRSxjQUFjLEVBQUU7QUFBVyxxQkFBTyxFQUFFLFlBQVksRUFBRTtBQUl4RCxnQkFBSSxFQUFFLFlBQVksRUFBRSxVQUFVO0FBQzVCLGtCQUFJLFlBQVksRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFVBQVU7QUFDckQsdUJBQU87QUFBQSxjQUNULFdBQVcsWUFBWSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsVUFBVTtBQUM1RCx1QkFBTztBQUFBLGNBQ1Q7QUFBQSxZQUNGO0FBTUEsbUJBQU87QUFBQSxVQUNULENBQUM7QUFFRCxnQkFBTSxDQUFDLE1BQU0sVUFBVSxJQUFJO0FBRzNCLGdCQUFNLFNBQVM7QUFDZixpQkFBTyxhQUFhO0FBRXBCLGlCQUFPO0FBQUEsUUFDVDtBQVNBLGlCQUFTLGdCQUFnQixTQUFTLGFBQWEsWUFBWTtBQUN6RCxnQkFBTSxXQUFZLGVBQWUsUUFBUSxXQUFXLEtBQU07QUFFMUQsa0JBQVEsVUFBVSxJQUFJLE1BQU07QUFDNUIsa0JBQVEsVUFBVSxJQUFJLFlBQVksUUFBUSxFQUFFO0FBQUEsUUFDOUM7QUFPQSxpQkFBUyxpQkFBaUIsU0FBUztBQUVqQyxjQUFJLE9BQU87QUFDWCxnQkFBTSxXQUFXLGNBQWMsT0FBTztBQUV0QyxjQUFJLG1CQUFtQixRQUFRO0FBQUc7QUFFbEM7QUFBQSxZQUFLO0FBQUEsWUFDSCxFQUFFLElBQUksU0FBUyxTQUFTO0FBQUEsVUFBQztBQUUzQixjQUFJLFFBQVEsUUFBUSxhQUFhO0FBQy9CLG9CQUFRLElBQUksMEZBQTBGLE9BQU87QUFDN0c7QUFBQSxVQUNGO0FBT0EsY0FBSSxRQUFRLFNBQVMsU0FBUyxHQUFHO0FBQy9CLGdCQUFJLENBQUMsUUFBUSxxQkFBcUI7QUFDaEMsc0JBQVEsS0FBSywrRkFBK0Y7QUFDNUcsc0JBQVEsS0FBSywyREFBMkQ7QUFDeEUsc0JBQVEsS0FBSyxrQ0FBa0M7QUFDL0Msc0JBQVEsS0FBSyxPQUFPO0FBQUEsWUFDdEI7QUFDQSxnQkFBSSxRQUFRLG9CQUFvQjtBQUM5QixvQkFBTSxNQUFNLElBQUk7QUFBQSxnQkFDZDtBQUFBLGdCQUNBLFFBQVE7QUFBQSxjQUNWO0FBQ0Esb0JBQU07QUFBQSxZQUNSO0FBQUEsVUFDRjtBQUVBLGlCQUFPO0FBQ1AsZ0JBQU0sT0FBTyxLQUFLO0FBQ2xCLGdCQUFNLFNBQVMsV0FBV0QsV0FBVSxNQUFNLEVBQUUsVUFBVSxnQkFBZ0IsS0FBSyxDQUFDLElBQUksY0FBYyxJQUFJO0FBRWxHLGtCQUFRLFlBQVksT0FBTztBQUMzQixrQkFBUSxRQUFRLGNBQWM7QUFDOUIsMEJBQWdCLFNBQVMsVUFBVSxPQUFPLFFBQVE7QUFDbEQsa0JBQVEsU0FBUztBQUFBLFlBQ2YsVUFBVSxPQUFPO0FBQUE7QUFBQSxZQUVqQixJQUFJLE9BQU87QUFBQSxZQUNYLFdBQVcsT0FBTztBQUFBLFVBQ3BCO0FBQ0EsY0FBSSxPQUFPLFlBQVk7QUFDckIsb0JBQVEsYUFBYTtBQUFBLGNBQ25CLFVBQVUsT0FBTyxXQUFXO0FBQUEsY0FDNUIsV0FBVyxPQUFPLFdBQVc7QUFBQSxZQUMvQjtBQUFBLFVBQ0Y7QUFFQSxlQUFLLDBCQUEwQixFQUFFLElBQUksU0FBUyxRQUFRLEtBQUssQ0FBQztBQUFBLFFBQzlEO0FBT0EsaUJBQVMsVUFBVSxhQUFhO0FBQzlCLG9CQUFVLFFBQVEsU0FBUyxXQUFXO0FBQUEsUUFDeEM7QUFHQSxjQUFNLG1CQUFtQixNQUFNO0FBQzdCLHVCQUFhO0FBQ2IscUJBQVcsVUFBVSx5REFBeUQ7QUFBQSxRQUNoRjtBQUdBLGlCQUFTLHlCQUF5QjtBQUNoQyx1QkFBYTtBQUNiLHFCQUFXLFVBQVUsK0RBQStEO0FBQUEsUUFDdEY7QUFFQSxZQUFJLGlCQUFpQjtBQUtyQixpQkFBUyxlQUFlO0FBRXRCLGNBQUksU0FBUyxlQUFlLFdBQVc7QUFDckMsNkJBQWlCO0FBQ2pCO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFNBQVMsU0FBUyxpQkFBaUIsUUFBUSxXQUFXO0FBQzVELGlCQUFPLFFBQVEsZ0JBQWdCO0FBQUEsUUFDakM7QUFFQSxpQkFBUyxPQUFPO0FBRWQsY0FBSTtBQUFnQix5QkFBYTtBQUFBLFFBQ25DO0FBR0EsWUFBSSxPQUFPLFdBQVcsZUFBZSxPQUFPLGtCQUFrQjtBQUM1RCxpQkFBTyxpQkFBaUIsb0JBQW9CLE1BQU0sS0FBSztBQUFBLFFBQ3pEO0FBUUEsaUJBQVMsaUJBQWlCLGNBQWMsb0JBQW9CO0FBQzFELGNBQUksT0FBTztBQUNYLGNBQUk7QUFDRixtQkFBTyxtQkFBbUIsSUFBSTtBQUFBLFVBQ2hDLFNBQVMsU0FBUztBQUNoQixrQkFBTSx3REFBd0QsUUFBUSxNQUFNLFlBQVksQ0FBQztBQUV6RixnQkFBSSxDQUFDLFdBQVc7QUFBRSxvQkFBTTtBQUFBLFlBQVMsT0FBTztBQUFFLG9CQUFNLE9BQU87QUFBQSxZQUFHO0FBSzFELG1CQUFPO0FBQUEsVUFDVDtBQUVBLGNBQUksQ0FBQyxLQUFLO0FBQU0saUJBQUssT0FBTztBQUM1QixvQkFBVSxZQUFZLElBQUk7QUFDMUIsZUFBSyxnQkFBZ0IsbUJBQW1CLEtBQUssTUFBTSxJQUFJO0FBRXZELGNBQUksS0FBSyxTQUFTO0FBQ2hCLDRCQUFnQixLQUFLLFNBQVMsRUFBRSxhQUFhLENBQUM7QUFBQSxVQUNoRDtBQUFBLFFBQ0Y7QUFPQSxpQkFBUyxtQkFBbUIsY0FBYztBQUN4QyxpQkFBTyxVQUFVLFlBQVk7QUFDN0IscUJBQVcsU0FBUyxPQUFPLEtBQUssT0FBTyxHQUFHO0FBQ3hDLGdCQUFJLFFBQVEsS0FBSyxNQUFNLGNBQWM7QUFDbkMscUJBQU8sUUFBUSxLQUFLO0FBQUEsWUFDdEI7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUtBLGlCQUFTLGdCQUFnQjtBQUN2QixpQkFBTyxPQUFPLEtBQUssU0FBUztBQUFBLFFBQzlCO0FBTUEsaUJBQVMsWUFBWSxNQUFNO0FBQ3pCLGtCQUFRLFFBQVEsSUFBSSxZQUFZO0FBQ2hDLGlCQUFPLFVBQVUsSUFBSSxLQUFLLFVBQVUsUUFBUSxJQUFJLENBQUM7QUFBQSxRQUNuRDtBQU9BLGlCQUFTLGdCQUFnQixXQUFXLEVBQUUsYUFBYSxHQUFHO0FBQ3BELGNBQUksT0FBTyxjQUFjLFVBQVU7QUFDakMsd0JBQVksQ0FBQyxTQUFTO0FBQUEsVUFDeEI7QUFDQSxvQkFBVSxRQUFRLFdBQVM7QUFBRSxvQkFBUSxNQUFNLFlBQVksQ0FBQyxJQUFJO0FBQUEsVUFBYyxDQUFDO0FBQUEsUUFDN0U7QUFNQSxpQkFBUyxjQUFjLE1BQU07QUFDM0IsZ0JBQU0sT0FBTyxZQUFZLElBQUk7QUFDN0IsaUJBQU8sUUFBUSxDQUFDLEtBQUs7QUFBQSxRQUN2QjtBQU9BLGlCQUFTLGlCQUFpQixRQUFRO0FBRWhDLGNBQUksT0FBTyx1QkFBdUIsS0FBSyxDQUFDLE9BQU8seUJBQXlCLEdBQUc7QUFDekUsbUJBQU8seUJBQXlCLElBQUksQ0FBQyxTQUFTO0FBQzVDLHFCQUFPLHVCQUF1QjtBQUFBLGdCQUM1QixPQUFPLE9BQU8sRUFBRSxPQUFPLEtBQUssR0FBRyxHQUFHLElBQUk7QUFBQSxjQUN4QztBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQ0EsY0FBSSxPQUFPLHNCQUFzQixLQUFLLENBQUMsT0FBTyx3QkFBd0IsR0FBRztBQUN2RSxtQkFBTyx3QkFBd0IsSUFBSSxDQUFDLFNBQVM7QUFDM0MscUJBQU8sc0JBQXNCO0FBQUEsZ0JBQzNCLE9BQU8sT0FBTyxFQUFFLE9BQU8sS0FBSyxHQUFHLEdBQUcsSUFBSTtBQUFBLGNBQ3hDO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBS0EsaUJBQVMsVUFBVSxRQUFRO0FBQ3pCLDJCQUFpQixNQUFNO0FBQ3ZCLGtCQUFRLEtBQUssTUFBTTtBQUFBLFFBQ3JCO0FBS0EsaUJBQVMsYUFBYSxRQUFRO0FBQzVCLGdCQUFNLFFBQVEsUUFBUSxRQUFRLE1BQU07QUFDcEMsY0FBSSxVQUFVLElBQUk7QUFDaEIsb0JBQVEsT0FBTyxPQUFPLENBQUM7QUFBQSxVQUN6QjtBQUFBLFFBQ0Y7QUFPQSxpQkFBUyxLQUFLLE9BQU8sTUFBTTtBQUN6QixnQkFBTSxLQUFLO0FBQ1gsa0JBQVEsUUFBUSxTQUFTLFFBQVE7QUFDL0IsZ0JBQUksT0FBTyxFQUFFLEdBQUc7QUFDZCxxQkFBTyxFQUFFLEVBQUUsSUFBSTtBQUFBLFlBQ2pCO0FBQUEsVUFDRixDQUFDO0FBQUEsUUFDSDtBQU1BLGlCQUFTLHdCQUF3QixJQUFJO0FBQ25DLHFCQUFXLFVBQVUsa0RBQWtEO0FBQ3ZFLHFCQUFXLFVBQVUsa0NBQWtDO0FBRXZELGlCQUFPLGlCQUFpQixFQUFFO0FBQUEsUUFDNUI7QUFHQSxlQUFPLE9BQU8sTUFBTTtBQUFBLFVBQ2xCLFdBQUFBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBLGdCQUFnQjtBQUFBLFVBQ2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGLENBQUM7QUFFRCxhQUFLLFlBQVksV0FBVztBQUFFLHNCQUFZO0FBQUEsUUFBTztBQUNqRCxhQUFLLFdBQVcsV0FBVztBQUFFLHNCQUFZO0FBQUEsUUFBTTtBQUMvQyxhQUFLLGdCQUFnQjtBQUVyQixhQUFLLFFBQVE7QUFBQSxVQUNYO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxtQkFBVyxPQUFPLE9BQU87QUFFdkIsY0FBSSxPQUFPLE1BQU0sR0FBRyxNQUFNLFVBQVU7QUFFbEMsdUJBQVcsTUFBTSxHQUFHLENBQUM7QUFBQSxVQUN2QjtBQUFBLFFBQ0Y7QUFHQSxlQUFPLE9BQU8sTUFBTSxLQUFLO0FBRXpCLGVBQU87QUFBQSxNQUNUO0FBR0EsVUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDO0FBSXpCLGdCQUFVLGNBQWMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUVyQyxhQUFPLFVBQVU7QUFDakIsZ0JBQVUsY0FBYztBQUN4QixnQkFBVSxVQUFVO0FBQUE7QUFBQTs7O0FDcGlGcEI7QUFBQTtBQU9BLGVBQVMsSUFBSSxNQUFNO0FBRWpCLGNBQU0sc0JBQXNCO0FBRzVCLGNBQU0sY0FDTjtBQUdBLGNBQU0sY0FDTjtBQUlBLGNBQU0sVUFBVSxjQUFjO0FBRzlCLGNBQU0sbUJBQ047QUFHQSxjQUFNLG1CQUNOO0FBS0EsY0FBTSxjQUFjLG1CQUFtQjtBQUd2QyxjQUFNLHNCQUNOO0FBR0EsY0FBTSw0QkFDTjtBQWFBLGNBQU0sNEJBQ047QUEwRUEsY0FBTSw2QkFDTjtBQWFBLGNBQU0sVUFDTixzQkFDRSw0QkFBNEIsNEJBQzVCO0FBR0YsY0FBTSwyQkFDTjtBQUdBLGNBQU0sNEJBQ047QUFnREEsY0FBTSxxQ0FDTjtBQUtBLGNBQU0saUNBQ047QUFHQSxjQUFNLG1DQUNOO0FBU0EsY0FBTSwyQkFDTjtBQUdBLGNBQU0scUNBQ047QUFHQSxjQUFNLHdCQUNOO0FBR0EsY0FBTSxpQ0FDTjtBQUdBLGNBQU0sd0JBQ047QUFHQSxjQUFNLGdDQUNOO0FBR0EsY0FBTSxnQ0FDTjtBQVFBLGNBQU0sMENBQ047QUFTQSxjQUFNLDBDQUNOO0FBY0EsY0FBTSx3QkFDTjtBQUtBLGNBQU0sMEJBQ047QUFHQSxjQUFNLCtCQUNOO0FBSUEsY0FBTSxzQkFDTjtBQU1BLGNBQU0sd0JBQ047QUFJQSxjQUFNLGlDQUNOO0FBSUEsY0FBTSxpREFDTjtBQW1CQSxjQUFNLDZCQUNOO0FBV0EsY0FBTSxRQUNOLDJCQUNFLDRCQUNBLHFDQUNBLGlDQUNBLG1DQUNBLDJCQUNBLHFDQUNBLHdCQUNBLGlDQUNBLHdCQUNBLGdDQUNBLGdDQUNBLDBDQUNBLDBDQUNBLHdCQUNBLDBCQUNBLCtCQUNBLHNCQUNBLHdCQUNBLGlDQUNBLGlEQUNBO0FBR0YsY0FBTSxtQkFDTjtBQXFDQSxjQUFNLDBCQUNOO0FBSUEsY0FBTSxPQUNOLG1CQUNFO0FBR0YsY0FBTSxVQUFVO0FBR2hCLGNBQU0sVUFBVSxLQUFLLFFBQVEsS0FBSyxXQUFXO0FBRzdDLGNBQU0sVUFBVTtBQUFBLFVBQ2QsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVSxDQUFFLEVBQUUsT0FBTyxLQUFLLENBQUU7QUFBQSxRQUM5QjtBQUdBLGNBQU0sT0FBTztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsY0FBYztBQUFBLFVBQ2QsWUFBWTtBQUFBLFVBQ1osVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxZQUNUO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsVUFDWCxXQUFXO0FBQUEsUUFDYjtBQUdBLGNBQU0sV0FBVyxLQUFLLFFBQVEsS0FBSyxtQkFBbUI7QUFHdEQsY0FBTSxPQUFPO0FBQUEsVUFDWCxXQUFXO0FBQUEsVUFFWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsWUFDUixVQUFVO0FBQUEsWUFDVixTQUFTLFVBQVU7QUFBQSxVQUNyQjtBQUFBLFVBQ0EsVUFBVSxDQUFFLFFBQVM7QUFBQSxRQUN2QjtBQUdBLGNBQU0sU0FBUztBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsWUFBWTtBQUFBLFFBQ2Q7QUFHQSxjQUFNLFdBQVc7QUFBQSxVQUNmLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQSxZQUNSO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsY0FDTCxVQUFVO0FBQUEsWUFDWjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLFVBQVU7QUFBQSxZQUNaO0FBQUEsVUFDRjtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFlBQVk7QUFBQSxjQUNaLFVBQVU7QUFBQSxnQkFDUjtBQUFBLGtCQUNFLFdBQVc7QUFBQSxrQkFDWCxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGtCQUNMLFlBQVk7QUFBQSxrQkFDWixnQkFBZ0I7QUFBQSxrQkFDaEIsVUFBVTtBQUFBLG9CQUNSLFVBQVU7QUFBQSxvQkFDVixTQUFTO0FBQUEsb0JBQ1QsU0FBUztBQUFBLGtCQUNYO0FBQUEsa0JBQ0EsVUFBVTtBQUFBLG9CQUNSO0FBQUEsb0JBQ0E7QUFBQSxvQkFDQTtBQUFBLGtCQUNGO0FBQUEsZ0JBQ0Y7QUFBQSxnQkFDQTtBQUFBLGNBQ0Y7QUFBQSxZQUNGO0FBQUEsWUFDQSxLQUFLLFFBQVEsS0FBSyxZQUFZLEVBQUUsT0FBTyxvQkFBb0IsQ0FBQztBQUFBLFVBQzlEO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxZQUNSLFVBQVU7QUFBQSxZQUNWLFNBQVM7QUFBQSxZQUNULFVBQVU7QUFBQSxZQUNWLE9BQU87QUFBQSxZQUNQLE1BQU07QUFBQSxZQUNOLFNBQVM7QUFBQSxVQUNYO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMvaEJqQjtBQUFBO0FBU0EsZUFBUyxLQUFLLE1BQU07QUFDbEIsY0FBTSxRQUFRLEtBQUs7QUFDbkIsY0FBTSxRQUFRO0FBRWQsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVUsS0FBSyxRQUFRLEtBQUssR0FBRztBQUVyQyxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QixPQUFPO0FBQUEsVUFDUCxPQUFPO0FBQUEsUUFDVDtBQUVBLGNBQU0sdUJBQXVCO0FBQUEsVUFDM0IsT0FBTztBQUFBLFVBQ1AsT0FBTztBQUFBLFFBQ1Q7QUFFQSxjQUFNLG1CQUFtQjtBQUFBLFVBQ3ZCLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QixPQUFPO0FBQUEsVUFDUCxPQUFPLE1BQU0sT0FBTyxPQUFPLFVBQVU7QUFBQSxRQUN2QztBQUVBLGNBQU0sYUFBYTtBQUFBLFVBQ2pCLE9BQU87QUFBQSxVQUNQLE9BQU87QUFBQSxRQUNUO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxVQUNQO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNsRmpCO0FBQUE7QUFVQSxlQUFTLFVBQVUsTUFBTTtBQUN2QixjQUFNLFFBQVEsS0FBSztBQUVuQixjQUFNLGFBQWE7QUFBQSxVQUNqQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQTtBQUFBLFlBRVI7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLFdBQVc7QUFBQSxZQUNiO0FBQUE7QUFBQSxZQUVBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBO0FBQUEsWUFFQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTyxNQUFNLE9BQU8sS0FBSyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUM7QUFBQSxjQUNwRCxLQUFLO0FBQUEsY0FDTCxVQUFVO0FBQUEsY0FDVixTQUFTO0FBQUEsY0FDVCxXQUFXO0FBQUEsY0FDWCxVQUFVO0FBQUEsZ0JBQ1I7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsV0FBVztBQUFBLGdCQUNiO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQTtBQUFBLFlBRUE7QUFBQSxjQUNFLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQSxjQUlYLE9BQU87QUFBQSxjQUNQLFNBQVM7QUFBQSxjQUNULFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLGNBQ0wsU0FBUztBQUFBLGNBQ1QsV0FBVztBQUFBLFlBQ2I7QUFBQTtBQUFBLFlBRUE7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFNBQVM7QUFBQSxjQUNULFdBQVc7QUFBQSxZQUNiO0FBQUE7QUFBQSxZQUVBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsY0FDTCxTQUFTO0FBQUEsY0FDVCxXQUFXO0FBQUEsWUFDYjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzNGakI7QUFBQTtBQVFBLGVBQVMsYUFBYSxNQUFNO0FBQzFCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sV0FBVztBQUNqQixjQUFNLGNBQWMsTUFBTTtBQUFBLFVBQ3hCO0FBQUEsVUFDQSxNQUFNLE9BQU8sUUFBUSxVQUFVLElBQUk7QUFBQSxRQUNyQztBQUNBLGNBQU0sNEJBQTRCO0FBRWxDLGNBQU0sb0JBQW9CO0FBQUEsVUFDeEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsV0FBVztBQUFBLFFBQ2I7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFNBQVMsQ0FBRSxJQUFLO0FBQUEsVUFDaEIsVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFVBQ1g7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMO0FBQUEsY0FDRSxPQUFPO0FBQUEsZ0JBQ0w7QUFBQSxnQkFDQTtBQUFBLGdCQUNBO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLGdCQUNULEdBQUc7QUFBQSxnQkFDSCxHQUFHO0FBQUEsY0FDTDtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsZ0JBQ0w7QUFBQSxnQkFDQTtBQUFBLGdCQUNBO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLGdCQUNULEdBQUc7QUFBQSxnQkFDSCxHQUFHO0FBQUEsY0FDTDtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxlQUFlO0FBQUEsY0FDZixLQUFLO0FBQUEsY0FDTCxVQUFVLEVBQUUsU0FBUyxpQkFBaUI7QUFBQSxZQUN4QztBQUFBLFlBQ0E7QUFBQSxjQUNFLGVBQWU7QUFBQSxjQUNmLEtBQUs7QUFBQSxjQUNMLFlBQVk7QUFBQSxjQUNaLFNBQVM7QUFBQSxjQUNULFVBQVU7QUFBQSxnQkFDUixLQUFLLFFBQVEsS0FBSyxZQUFZLEVBQUUsV0FBVyxpQkFBaUIsQ0FBQztBQUFBLGdCQUM3RDtBQUFBLGtCQUNFLFdBQVc7QUFBQSxrQkFDWCxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGtCQUNMLFVBQVU7QUFBQSxvQkFDUixLQUFLO0FBQUEsb0JBQ0wsS0FBSztBQUFBLG9CQUNMLEtBQUs7QUFBQSxvQkFDTCxLQUFLO0FBQUEsb0JBQ0w7QUFBQSxrQkFDRjtBQUFBLGdCQUNGO0FBQUEsZ0JBQ0EsRUFBRSxPQUFPLE1BQU0sT0FBTyxRQUFRLHlCQUF5QixFQUFFO0FBQUEsY0FDM0Q7QUFBQSxZQUNGO0FBQUEsWUFDQSxLQUFLO0FBQUEsVUFDUDtBQUFBLFVBQ0EsU0FBUztBQUFBLFFBQ1g7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDeEpqQjtBQUFBO0FBb0JBLGVBQVMsSUFBSSxNQUFNO0FBS2pCLGNBQU0sYUFBYTtBQUNuQixjQUFNLGNBQWMsY0FBYztBQUNsQyxjQUFNLHFCQUFxQixhQUFhLFNBQVMsYUFBYSxRQUFhLGNBQWM7QUFHekYsY0FBTSxtQkFBbUI7QUFDekIsY0FBTSxtQkFBbUIsYUFBYSxNQUFNLG1CQUFtQixTQUFTLG1CQUFtQixTQUFtQixjQUFjO0FBRTVILGNBQU0sWUFBWSxTQUFTLG1CQUFtQixNQUFNLHFCQUFxQjtBQUd6RSxjQUFNLFdBQVc7QUFHakIsY0FBTSxZQUFZO0FBR2xCLGNBQU0sV0FBVyxLQUFLLFFBQVEsTUFBTSxHQUFHO0FBS3ZDLGNBQU0sWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBSWhCLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQTtBQUFBO0FBQUEsVUFHTCxTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsWUFDUjtBQUFBO0FBQUE7QUFBQSxjQUdFLGVBQWU7QUFBQSxjQUNmLFlBQVk7QUFBQSxZQUNkO0FBQUEsWUFDQTtBQUFBO0FBQUEsY0FFRSxXQUFXO0FBQUEsY0FDWCxlQUFlO0FBQUEsWUFDakI7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxZQUFZO0FBQUEsY0FDWixXQUFXO0FBQUEsWUFDYjtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLGNBQ1A7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSO0FBQUE7QUFBQSxZQUVBO0FB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QUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0sZUFBZTtBQUFBLFVBQ25CO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxTQUFTO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxPQUFPLFFBQVEsTUFBTSxPQUFPLEdBQUcsWUFBWTtBQUFBLFFBQzdDO0FBQ0EsY0FBTSxTQUFTO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsWUFDUixFQUFFLE9BQU8sa0JBQWtCO0FBQUEsWUFDM0IsRUFBRSxPQUFPLG1CQUFtQjtBQUFBLFlBQzVCLEVBQUUsT0FBTyxLQUFLLFlBQVk7QUFBQSxVQUM1QjtBQUFBLFVBQ0EsV0FBVztBQUFBLFFBQ2I7QUFDQSxjQUFNLFFBQVE7QUFBQSxVQUNaLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxVQUNWLFVBQVUsQ0FBQztBQUFBO0FBQUEsUUFDYjtBQUNBLGNBQU0sa0JBQWtCO0FBQUEsVUFDdEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0w7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2YsS0FBSztBQUFBLFVBQ0wsS0FBSztBQUFBLFVBQ0w7QUFBQSxVQUNBO0FBQUEsVUFDQSxLQUFLO0FBQUEsUUFDUDtBQUNBLGNBQU0sa0JBQWtCLE1BQU0sU0FBUyxPQUFPO0FBQUEsVUFDNUMsS0FBSztBQUFBLFVBQ0wsS0FBSztBQUFBLFFBQ1AsQ0FBQztBQUVELGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxVQUNWLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxZQUNMO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUE7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQSxnQkFDUjtBQUFBLGtCQUNFLE9BQU8sV0FBVztBQUFBLGtCQUNsQixhQUFhO0FBQUEsa0JBQ2IsV0FBVztBQUFBLGtCQUNYLFVBQVU7QUFBQSxvQkFDUjtBQUFBLHNCQUNFLFdBQVc7QUFBQSxzQkFDWCxPQUFPO0FBQUEsc0JBQ1AsV0FBVztBQUFBLG9CQUNiO0FBQUEsa0JBQ0Y7QUFBQSxnQkFDRjtBQUFBLGNBQ0Y7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBO0FBQUEsY0FDRSxPQUFPLE1BQU0sS0FBSyxpQkFBaUI7QUFBQSxjQUNuQyxVQUFVO0FBQUEsY0FDVixVQUFVO0FBQUEsZ0JBQ1IsS0FBSztBQUFBLGdCQUNMLEtBQUs7QUFBQSxnQkFDTCxLQUFLO0FBQUEsZ0JBQ0w7QUFBQSxrQkFDRSxXQUFXO0FBQUEsa0JBQ1gsT0FBTyxnQkFBZ0IsV0FBVztBQUFBLGtCQUNsQyxhQUFhO0FBQUEsa0JBQ2IsS0FBSztBQUFBLGtCQUNMLFVBQVU7QUFBQSxvQkFDUjtBQUFBLHNCQUNFLFdBQVc7QUFBQSxzQkFDWCxVQUFVO0FBQUEsd0JBQ1IsRUFBRSxPQUFPLFNBQVM7QUFBQSx3QkFDbEIsRUFBRSxPQUFPLFVBQVU7QUFBQSx3QkFDbkI7QUFBQSwwQkFDRSxPQUFPO0FBQUEsMEJBQ1AsS0FBSztBQUFBLDBCQUNMLGNBQWM7QUFBQSwwQkFDZCxZQUFZO0FBQUEsMEJBQ1osVUFBVTtBQUFBLDBCQUNWLFVBQVU7QUFBQSx3QkFDWjtBQUFBLHNCQUNGO0FBQUEsb0JBQ0Y7QUFBQSxrQkFDRjtBQUFBLGdCQUNGO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxlQUFlO0FBQUEsY0FDZixLQUFLO0FBQUEsY0FDTCxZQUFZO0FBQUEsY0FDWixVQUFVO0FBQUEsZ0JBQ1IsS0FBSyxRQUFRLEtBQUssWUFBWTtBQUFBLGtCQUM1QixXQUFXO0FBQUEsa0JBQ1gsT0FBTztBQUFBLGdCQUNULENBQUM7QUFBQSxnQkFDRDtBQUFBLGtCQUNFLFdBQVc7QUFBQSxrQkFDWCxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGtCQUNMLGNBQWM7QUFBQSxrQkFDZCxZQUFZO0FBQUEsa0JBQ1osVUFBVTtBQUFBLGdCQUNaO0FBQUEsY0FDRjtBQUFBLGNBQ0EsU0FBUztBQUFBLFlBQ1g7QUFBQSxZQUNBLEVBQUUsT0FBTyxTQUFTO0FBQUEsVUFDcEI7QUFBQSxVQUNBLFNBQVM7QUFBQSxRQUNYO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ2hhakI7QUFBQTtBQU9BLGVBQVMsVUFBVSxNQUFNO0FBQ3ZCLGNBQU0sUUFBUSxLQUFLO0FBSW5CLGNBQU0sc0JBQXNCLEtBQUssUUFBUSxNQUFNLEtBQUssRUFBRSxVQUFVLENBQUUsRUFBRSxPQUFPLE9BQU8sQ0FBRSxFQUFFLENBQUM7QUFDdkYsY0FBTSxtQkFBbUI7QUFDekIsY0FBTSxlQUFlO0FBQ3JCLGNBQU0sdUJBQXVCO0FBQzdCLGNBQU0sbUJBQW1CLGdCQUNyQixtQkFBbUIsTUFDbkIsTUFBTSxTQUFTLFlBQVksSUFDM0Isa0JBQWtCLE1BQU0sU0FBUyxvQkFBb0IsSUFDdkQ7QUFFRixjQUFNLHNCQUFzQjtBQUFBLFVBQzFCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBSUEsY0FBTSxvQkFBb0I7QUFDMUIsY0FBTSxVQUFVO0FBQUEsVUFDZCxXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLGNBQ0wsU0FBUztBQUFBLGNBQ1QsVUFBVSxDQUFFLEtBQUssZ0JBQWlCO0FBQUEsWUFDcEM7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPLGlCQUFrQixvQkFBb0I7QUFBQSxjQUM3QyxLQUFLO0FBQUEsY0FDTCxTQUFTO0FBQUEsWUFDWDtBQUFBLFlBQ0EsS0FBSyxrQkFBa0I7QUFBQSxjQUNyQixPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUCxDQUFDO0FBQUEsVUFDSDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQTtBQUFBLFlBRVI7QUFBQSxjQUFFLE9BQ0E7QUFBQSxZQWtCRjtBQUFBO0FBQUEsWUFFQTtBQUFBLGNBQUUsT0FDQTtBQUFBO0FBQUE7QUFBQSxZQWNGO0FBQUEsVUFDRjtBQUFBLFVBQ0EsV0FBVztBQUFBLFFBQ2I7QUFFQSxjQUFNLGVBQWU7QUFBQSxVQUNuQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVLEVBQUUsU0FDUix5RkFDd0M7QUFBQSxVQUM1QyxVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBLEtBQUssUUFBUSxTQUFTLEVBQUUsV0FBVyxTQUFTLENBQUM7QUFBQSxZQUM3QztBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGFBQWE7QUFBQSxVQUNqQixXQUFXO0FBQUEsVUFDWCxPQUFPLE1BQU0sU0FBUyxZQUFZLElBQUksS0FBSztBQUFBLFVBQzNDLFdBQVc7QUFBQSxRQUNiO0FBRUEsY0FBTSxpQkFBaUIsTUFBTSxTQUFTLFlBQVksSUFBSSxLQUFLLFdBQVc7QUFHdEUsY0FBTSxvQkFBb0I7QUFBQSxVQUN4QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUdBLGNBQU0saUJBQWlCO0FBQUEsVUFDckI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxhQUFhO0FBQUEsVUFDakI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBaUI7QUFBQSxVQUNyQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtB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QUFRO0FBQUEsWUFDTjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZ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QUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLFlBQ2I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNwUWpCO0FBQUE7QUFVQSxlQUFTLFFBQVEsTUFBTTtBQUNyQixjQUFNLFFBQVEsS0FBSztBQUNuQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtB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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFX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QSxRQUNGO0FBRUEsY0FBTSxpQkFBaUI7QUFBQSxVQUNyQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGdCQUFnQjtBQUFBLFVBQ3BCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sU0FBUztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsVUFBVTtBQUFBLFlBQ1YsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFlBQ1QsVUFBVTtBQUFBLGNBQ1IsR0FBRztBQUFBLGNBQ0gsR0FBRztBQUFBO0FBQUEsY0FFSDtBQUFBLGNBQ0E7QUFBQSxjQUNBLEdBQUc7QUFBQSxjQUNILEdBQUc7QUFBQSxZQUNMO0FBQUEsVUFDRjtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1I7QUFBQTtBQUFBLFlBQ0EsS0FBSyxRQUFRO0FBQUE7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDdFpqQjtBQUFBO0FBU0EsZUFBUyxNQUFNLE1BQU07QUFDbkIsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLGtCQUFrQjtBQUFBLFVBQ2xCLFNBQVM7QUFBQTtBQUFBLFVBRVQsVUFBVTtBQUFBLFlBQ1IsVUFBVTtBQUFBLFlBQ1YsU0FBUztBQUFBLFVBQ1g7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUssUUFBUSxPQUFPLEtBQUssRUFBRSxXQUFXLEdBQUcsQ0FBQztB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U0FBUyxZQUFZLElBQUksS0FBSyxXQUFXO0FBRXRFLGNBQU0sYUFBYTtBQUFBLFVBQ2pCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixTQUFTO0FBQUEsVUFDVCxNQUFNO0FBQUEsVUFDTixTQUFTO0FBQUE7QUFBQSxVQUVULFVBQVU7QUFB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QUMvRGpCO0FBQUE7QUFBQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFFBSUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUNBLFVBQU0sV0FBVztBQUFBLFFBQ2Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxVQUFNLFFBQVE7QUFBQTtBQUFBLFFBRVo7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFD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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFD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Q0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYTtBQUFBLFVBQ2pCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0saUJBQWlCO0FBQUEsVUFDckI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEs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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxxQkFBcUI7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sbUJBQW1CO0FBQUEsVUFDdkI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxrQkFBa0I7QUFBQSxVQUN0QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7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UUFDRjtBQUFBLE1BQ0Y7QUFFQSxVQUFNLFlBQVk7QUFBQSxRQUNoQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxPQUFPO0FBQUEsUUFDWCxHQUFHO0FBQUEsUUFDSCxHQUFHO0FBQUEsTUFDTDtBQUtBLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBR2pCLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUdqQixVQUFNLGtCQUFrQjtBQUFBLFFBQ3RCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUVqQixVQUFNLGFBQWE7QUFBQSxRQUNqQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxR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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixTQUFTO0FBQUEsVUFDVCxVQUNFLGVBQ0csT0FBTyx1QkFBdUIsRUFDOUIsT0FBTztBQUFBO0FBQUEsWUFFTjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBO0FBQUEsWUFFQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0YsQ0FBQztBQUFBLFVBQ0wsVUFBVTtBQUFBLFFBQ1o7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0EsS0FBSztBQUFBLGNBQ0g7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGdCQUNFLGFBQWE7QUFBQSxnQkFDYixXQUFXO0FBQUEsY0FDYjtBQUFBLFlBQ0Y7QUFBQSxZQUNBLEtBQUs7QUFBQSxjQUNIO0FBQUEsY0FDQTtBQUFBLGNBQUssRUFBRSxVQUFVO0FBQUEsZ0JBQ2Y7QUFBQSxrQkFDRSxhQUFhO0FBQUEsa0JBQ2IsT0FBTztBQUFBLGtCQUNQLEtBQUs7QUFBQSxrQkFDTCxXQUFXO0FBQUEsZ0JBQ2I7QUFBQSxjQUNGLEVBQUU7QUFBQSxZQUNKO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsZUFBZTtBQUFBLGNBQ2YsS0FBSztBQUFBLGNBQ0wsWUFBWTtBQUFBLGNBQ1osVUFBVTtBQUFBLGdCQUNSLEVBQUUsZUFBZSxxQkFBcUI7QUFBQSxnQkFDdEMsS0FBSztBQUFBLGNBQ1A7QUFBQSxZQUNGO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUEsY0FBRSxPQUFPO0FBQUE7QUFBQSxZQUNUO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDclFqQjtBQUFBO0FBT0EsZUFBUyxPQUFPLE1BQU07QUFDcEIsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEs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VUFBVTtBQUFBO0FBQUE7OztBQzNDakI7QUFBQTtBQVNBLGVBQVMsSUFBSSxNQUFNO0FBQ2pCLGNBQU0sVUFBVSxLQUFLO0FBQUEsVUFDbkI7QUFBQSxVQUFlO0FBQUEsVUFDZixFQUFFLFdBQVcsR0FBRztBQUFBLFFBQ2xCO0FBQ0EsY0FBTSxRQUFRO0FBQUEsVUFDWixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsUUFDYjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FB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O0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNB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LFFBQ2I7QUFFQSxjQUFNLGVBQWU7QUFBQSxVQUNuQixXQUFXO0FBQUEsVUFDWCxlQUFlO0FBQUEsVUFDZixTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsY0FBTSxTQUFTO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsU0FBUztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsVUFBVTtBQUFBLFlBQ1YsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFlBQ1QsVUFBVTtBQUFBLFVBQ1o7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxZQUNSO0FBQUEsWUFDQTtBQUFBO0FBQUE7QUFBQSxZQUdBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDN2pCakI7QUFBQTtBQUlBLGVBQVMsT0FBTyxPQUFPO0FBQ3JCLGVBQU8sSUFBSSxPQUFPLE1BQU0sUUFBUSx5QkFBeUIsTUFBTSxHQUFHLEdBQUc7QUFBQSxNQUN2RTtBQU1BLGVBQVMsT0FBTyxJQUFJO0FBQ2xCLFlBQUksQ0FBQztBQUFJLGlCQUFPO0FBQ2hCLFlBQUksT0FBTyxPQUFPO0FBQVUsaUJBQU87QUFFbkMsZUFBTyxHQUFHO0FBQUEsTUFDWjtBQU1BLGVBQVMsVUFBVSxJQUFJO0FBQ3JCLGVBQU8sT0FBTyxPQUFPLElBQUksR0FBRztBQUFBLE1BQzlCO0FBTUEsZUFBUyxVQUFVLE1BQU07QUFDdkIsY0FBTSxTQUFTLEtBQUssSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFDakQsZUFBTztBQUFBLE1BQ1Q7QUFNQSxlQUFTLHFCQUFxQixNQUFNO0FBQ2xDLGNBQU0sT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBRWpDLFlBQUksT0FBTyxTQUFTLFlBQVksS0FBSyxnQkFBZ0IsUUFBUTtBQUMzRCxlQUFLLE9BQU8sS0FBSyxTQUFTLEdBQUcsQ0FBQztBQUM5QixpQkFBTztBQUFBLFFBQ1QsT0FBTztBQUNMLGlCQUFPLENBQUM7QUFBQSxRQUNWO0FBQUEsTUFDRjtBQVdBLGVBQVMsVUFBVSxNQUFNO0FBRXZCLGNBQU0sT0FBTyxxQkFBcUIsSUFBSTtBQUN0QyxjQUFNLFNBQVMsT0FDVixLQUFLLFVBQVUsS0FBSyxRQUNyQixLQUFLLElBQUksQ0FBQyxNQUFNLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUk7QUFDM0MsZUFBTztBQUFBLE1BQ1Q7QUFZQSxlQUFTLE9BQU8sTUFBTTtBQUNwQixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLG9CQUFvQjtBQUFBO0FBQUEsVUFFeEIsT0FBTztBQUFBLFVBQ1AsT0FBTztBQUFBLFFBQ1Q7QUFFQSxjQUFNLHdCQUF3QjtBQUFBLFVBQzVCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sc0JBQXNCO0FBQUEsVUFDMUI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFJQSxjQUFNLGNBQWM7QUFBQTtBQUFBLFVBRWxCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBS2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFB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QUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxVQUFVO0FBQUEsVUFDZDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxxQkFBcUI7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FB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QSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFVBRVA7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzdMakI7QUFBQTtBQVFBLGVBQVMsUUFBUSxNQUFNO0FBQ3JCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sV0FBVztBQUNqQixlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTLENBQUUsS0FBTTtBQUFBLFVBQ2pCLGtCQUFrQjtBQUFBLFVBQ2xCLG1CQUFtQjtBQUFBLFVBQ25CLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxjQUNQO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFlBQ0EsU0FBUztBQUFBLGNBQ1A7QUFBQSxjQUNBO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFlBQVk7QUFBQSxjQUNaLFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsT0FBTztBQUFBLGNBQ1AsWUFBWTtBQUFBLFlBQ2Q7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPLE1BQU0sT0FBTyxVQUFVLE1BQU0sVUFBVSxNQUFNLENBQUM7QUFBQSxjQUNyRCxXQUFXO0FBQUEsWUFDYjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVM7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzdFakI7QUFBQTtBQVFBLGVBQVMsU0FBU0MsV0FBVSxNQUFNLENBQUMsR0FBRztBQUNwQyxZQUFJLFdBQVdBO0FBQ2YsZUFBTztBQUFBLE1BQ1Q7QUFFQSxlQUFTLE9BQU8sTUFBTTtBQUNwQixjQUFNLFFBQVEsS0FBSztBQUNuQixjQUFNLFdBQVc7QUFDakIsY0FBTSxVQUFVLFNBQVM7QUFBQSxVQUN2QixLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsWUFDSDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxVQUFVO0FBQUEsZ0JBQ1I7QUFBQTtBQUFBLGtCQUVFLE9BQU87QUFBQSxrQkFDUCxXQUFXO0FBQUEsZ0JBQ2I7QUFBQSxnQkFDQTtBQUFBLGtCQUNFLFdBQVc7QUFBQSxrQkFDWCxPQUFPO0FBQUEsZ0JBQ1Q7QUFBQSxjQUNGO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxRQUNGLENBQUM7QUFDRCxjQUFNLFNBQVM7QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLFVBQVUsQ0FBRSxLQUFLLGdCQUFpQjtBQUFBLFFBQ3BDO0FBQ0EsY0FBTSxTQUFTLFNBQVM7QUFBQSxVQUN0QixLQUFLO0FBQUEsVUFDTCxLQUFLO0FBQUEsUUFDUCxDQUFDO0FBQ0QsY0FBTSxTQUFTO0FBQUEsVUFBUztBQUFBLFlBQ3RCO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLGNBQ0wsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxVQUNQO0FBQUEsVUFDQSxFQUFFLFdBQVcsU0FBUztBQUFBLFFBQ3RCO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QixPQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBLEtBQUs7QUFBQSxVQUNQO0FBQUEsVUFDQSxPQUFPO0FBQUEsWUFDTCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUE7QUFBQSxVQUVmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixxQkFBcUI7QUFBQSxZQUNyQixTQUFTO0FBQUEsWUFDVCxNQUFNO0FBQUEsWUFDTixTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsS0FBSyxRQUFRO0FBQUEsY0FDWCxRQUFRO0FBQUEsY0FDUixXQUFXO0FBQUEsWUFDYixDQUFDO0FBQUEsWUFDRDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQTtBQUFBLGNBRUUsV0FBVztBQUFBLGNBQ1gsT0FBTyxXQUFXO0FBQUEsY0FDbEIsV0FBVztBQUFBLFlBQ2I7QUFB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LFdBQVc7QUFDakIsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUlBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFDQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBR0EsVUFBTSxRQUFRO0FBQUE7QUFBQSxRQUVaO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFB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O0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBaUJBLGNBQU0sZUFBZTtBQUFBLFVBQ25CO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBaUJBLGNBQU0sZ0JBQWdCO0FBQUEsVUFDcEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmLFVBQVU7QUFBQSxVQUNWLFNBQVM7QUFBQSxVQUNULFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxRQUNaO0FBR0EsY0FBTSxVQUFVO0FBQUEsVUFDZCxVQUFVO0FBQUEsVUFD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QUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxPQUFPO0FBQUEsUUFDWCxHQUFHO0FBQUEsUUFDSCxHQUFHO0FBQUEsTUFDTDtBQUtBLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBR2pCLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUdqQixVQUFNLGtCQUFrQjtBQUFBLFFBQ3RCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUVqQixVQUFNLGFBQWE7QUFBQSxRQUNqQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFD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O0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUlBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFDQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBR0EsVUFBTSxRQUFRO0FBQUE7QUFBQSxRQUVaO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQTtBQUFBLFFBRUE7QUFBQSxNQUNGO0FBRUEsVUFBTSxjQUFj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QUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtB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QUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtB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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQSxVQUVBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixrQkFBa0I7QUFBQSxVQUNsQixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsWUFDVixTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsVUFB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QSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sWUFBWTtBQUFBLFVBQ2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FB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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFlBQ1QsTUFBTTtBQUFBLFlBQ04sVUFBVTtBQUFBLFVBQ1o7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSO0FBQUEsY0FDRSxXQUFXO0FBQUE7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFdBQVc7QUFB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LFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0saUJBQWlCO0FBQUEsVUFDckI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxZQUFZO0FBQUEsVUFDaEIsV0FBVztBQUFBLFVBQ1gsT0FBTyxNQUFNLE9BQU8sTUFBTSxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztBQUFBLFFBQy9EO0FBRUEsY0FBTSxVQUFVO0FBQUE7QUFBQSxVQUVkLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxZQUFZO0FBQUE7QUFBQSxVQUVoQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxTQUFTO0FBQUEsUUFDWDtBQUVBLGNBQU0sWUFBWTtBQUFBO0FBQUEsVUFFaEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFFBQ1Q7QUFFQSxjQUFNLGFBQWE7QUFBQTtBQUFBLFVBRWpCLFdBQVc7QUFBQSxVQUNYLE9BQU8sTUFBTSxPQUFPLEdBQUcsV0FBVztBQUFBLFFBQ3BDO0FBRUEsY0FBTSxXQUFXO0FBQUE7QUFBQSxVQUVmLFdBQVc7QUFBQSxVQUNYLE9BQU8sTUFBTTtBQUFBLFlBQ1g7QUFBQSxZQUNBLE1BQU0sT0FBTyxHQUFHLGNBQWM7QUFBQSxVQUNoQztBQUFBLFFBQ0Y7QUFFQSxjQUFNLGVBQWU7QUFBQTtBQUFBLFVBRW5CLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxVQUFVO0FBQUE7QUFBQSxVQUVkLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxTQUFTO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsVUFDRjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLHNCQUFzQjtBQUFBLFVBQzFCLE9BQU87QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0EsTUFBTSxPQUFPLFNBQVMsS0FBSyxRQUFRO0FBQUEsVUFDckM7QUFBQSxVQUNBLE9BQU87QUFBQSxZQUNMLEdBQUc7QUFBQSxZQUNILEdBQUc7QUFBQSxVQUNMO0FBQUEsUUFDRjtBQUlBLGNBQU0sbUJBQW1CO0FBQ3pCLGNBQU0sc0JBQXNCO0FBQUEsVUFDMUIsT0FBTztBQUFBLFlBQ0w7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxPQUFPO0FBQUEsWUFDTCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixrQkFBa0I7QUFBQSxVQUNsQixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxTQUFTO0FBQUEsVUFDWDtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLGNBQ0g7QUFBQSxjQUNBO0FBQUEsY0FDQSxFQUFFLFdBQVcsRUFBRTtBQUFBLFlBQ2pCO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBLEVBQUUsZUFBZSw4REFBK0Q7QUFBQSxZQUNoRjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsS0FBSztBQUFBLFVBQ1A7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzVpQmpCO0FBQUE7QUFRQSxlQUFTLFdBQVcsTUFBTTtBQUN4QixjQUFNLFlBQVk7QUFBQSxVQUNoQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsUUFDVDtBQUNBLGNBQU0sZ0JBQWdCO0FBQ3RCLGNBQU0sUUFBUTtBQUFBLFVBQ1o7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLE1BQU07QUFBQSxVQUNWO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNB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QTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBTUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxZQUFZO0FBQUE7QUFBQTtBQUFBLFVBR2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBUUEsY0FBTSxXQUFXLENBQUMsVUFBVTtBQUUxQixnQkFBTSxTQUFTLENBQUM7QUFDaEIsZ0JBQU0sUUFBUSxVQUFRO0FBQ3BCLG1CQUFPLEtBQUssSUFBSTtBQUNoQixnQkFBSSxLQUFLLFlBQVksTUFBTSxNQUFNO0FBQy9CLHFCQUFPLEtBQUssS0FBSyxZQUFZLENBQUM7QUFBQSxZQUNoQyxPQUFPO0FBQ0wscUJBQU8sS0FBSyxLQUFLLFlBQVksQ0FBQztBQUFBLFlBQ2hDO0FBQUEsVUFDRixDQUFDO0FBQ0QsaUJBQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixTQUFTO0FBQUEsVUFDVCxTQUFTLFNBQVMsUUFBUTtBQUFBLFVBQzFCLFVBQVU7QUFBQSxRQUNaO0FBSUEsY0FBTSxvQkFBb0IsQ0FBQyxVQUFVO0FBQ25DLGlCQUFPLE1BQU0sSUFBSSxVQUFRO0FBQ3ZCLG1CQUFPLEtBQUssUUFBUSxVQUFVLEVBQUU7QUFBQSxVQUNsQyxDQUFDO0FBQUEsUUFDSDtBQUVBLGNBQU0sbUJBQW1CLEVBQUUsVUFBVTtBQUFBLFVBQ25DO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsTUFBTSxPQUFPLFlBQVksR0FBRztBQUFBO0FBQUEsY0FFNUIsTUFBTSxPQUFPLE9BQU8sa0JBQWtCLFNBQVMsRUFBRSxLQUFLLE1BQU0sR0FBRyxNQUFNO0FBQUEsY0FDckU7QUFBQSxZQUNGO0FBQUEsWUFDQSxPQUFPO0FBQUEsY0FDTCxHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxRQUNGLEVBQUU7QUFFRixjQUFNLHFCQUFxQixNQUFNLE9BQU8sVUFBVSxZQUFZO0FBRTlELGNBQU0sc0NBQXNDLEVBQUUsVUFBVTtBQUFBLFVBQ3REO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTCxNQUFNO0FBQUEsZ0JBQ0o7QUFBQSxnQkFDQSxNQUFNLFVBQVUsYUFBYTtBQUFBLGNBQy9CO0FBQUEsY0FDQTtBQUFBLFlBQ0Y7QUFBQSxZQUNBLE9BQU8sRUFBRSxHQUFHLG9CQUFxQjtBQUFBLFVBQ25DO0FBQUEsVUFDQTtBQUFBLFlBQ0UsT0FBTztBQUFBLGNBQ0w7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFlBQ0EsT0FBTyxFQUFFLEdBQUcsb0JBQXFCO0FBQUEsVUFDbkM7QUFBQSxVQUNBO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsTUFBTTtBQUFBLGdCQUNKO0FBQUEsZ0JBQ0EsTUFBTSxVQUFVLGFBQWE7QUFBQSxjQUMvQjtBQUFBLGNBQ0E7QUFBQSxZQUNGO0FBQUEsWUFDQSxPQUFPO0FBQUEsY0FDTCxHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxVQUNBO0FBQUEsWUFDRSxPQUFPO0FBQUEsY0FDTDtBQUFBLGNBQ0EsTUFBTTtBQUFBLGdCQUNKO0FBQUEsZ0JBQ0EsTUFBTSxVQUFVLGFBQWE7QUFBQSxjQUMvQjtBQUFBLFlBQ0Y7QUFBQSxZQUNBLE9BQU8sRUFBRSxHQUFHLGNBQWU7QUFBQSxVQUM3QjtBQUFBLFVBQ0E7QUFBQSxZQUNFLE9BQU87QUFBQSxjQUNMO0FBQUEsY0FDQTtBQUFBLGNBQ0E7QUFBQSxZQUNGO0FBQUEsWUFDQSxPQUFPO0FBQUEsY0FDTCxHQUFHO0FBQUEsY0FDSCxHQUFHO0FBQUEsWUFDTDtBQUFBLFVBQ0Y7QUFBQSxRQUNGLEVBQUU7QUFFRixjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCLE9BQU87QUFBQSxVQUNQLE9BQU8sTUFBTSxPQUFPLFVBQVUsTUFBTSxVQUFVLEdBQUcsR0FBRyxNQUFNLFVBQVUsUUFBUSxDQUFDO0FBQUEsUUFDL0U7QUFDQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxZQUNMO0FBQUE7QUFBQSxZQUVBLE1BQU0sT0FBTyx5QkFBeUIsa0JBQWtCLEdBQUcsRUFBRSxLQUFLLE1BQU0sR0FBRyxLQUFLLGtCQUFrQixTQUFTLEVBQUUsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUFBLFlBQ2pJO0FBQUEsWUFDQSxNQUFNLE9BQU8sWUFBWSxHQUFHO0FBQUEsWUFDNUIsTUFBTSxVQUFVLFFBQVE7QUFBQSxVQUMxQjtBQUFBLFVBQ0EsT0FBTyxFQUFFLEdBQUcsd0JBQXlCO0FBQUEsVUFDckMsVUFBVSxDQUFFLFdBQVk7QUFBQSxRQUMxQjtBQUNBLG9CQUFZLFNBQVMsS0FBSyxlQUFlO0FBRXpDLGNBQU0scUJBQXFCO0FBQUEsVUFDekI7QUFBQSxVQUNBO0FBQUEsVUFDQSxLQUFLO0FBQUEsVUFDTDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYTtBQUFBLFVBQ2pCLE9BQU8sTUFBTSxPQUFPLFVBQVUseUJBQXlCO0FBQUEsVUFDdkQsWUFBWTtBQUFBLFVBQ1osS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1IsU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLGNBQ1A7QUFBQSxjQUNBO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFVBQVU7QUFBQSxZQUNSO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsY0FDTCxVQUFVO0FBQUEsZ0JBQ1IsU0FBUztBQUFBLGdCQUNULFNBQVM7QUFBQSxrQkFDUDtBQUFBLGtCQUNBO0FBQUEsZ0JBQ0Y7QUFBQSxjQUNGO0FBQUEsY0FDQSxVQUFVO0FBQUEsZ0JBQ1I7QUFBQSxnQkFDQSxHQUFHO0FBQUEsY0FDTDtBQUFBLFlBQ0Y7QUFBQSxZQUNBLEdBQUc7QUFBQSxZQUNIO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUssUUFBUSxNQUFNLEdBQUc7QUFBQSxZQUN0QixLQUFLO0FBQUEsY0FDSDtBQUFBLGNBQ0E7QUFBQSxjQUNBLEVBQUUsVUFBVTtBQUFBLGdCQUNWO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLE9BQU87QUFBQSxnQkFDVDtBQUFBLGNBQ0YsRUFBRTtBQUFBLFlBQ0o7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxVQUFVO0FBQUEsY0FDVixRQUFRO0FBQUEsZ0JBQ04sT0FBTztBQUFBLGdCQUNQLEtBQUssS0FBSztBQUFBLGdCQUNWLFVBQVU7QUFBQSxrQkFDUjtBQUFBLG9CQUNFLE9BQU87QUFBQSxvQkFDUCxPQUFPO0FBQUEsb0JBQ1AsWUFBWTtBQUFBLGtCQUNkO0FBQUEsZ0JBQ0Y7QUFBQSxjQUNGO0FBQUEsWUFDRjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxnQkFDTDtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGO0FBQUEsY0FDQSxPQUFPO0FBQUEsZ0JBQ0wsR0FBRztBQUFBLGdCQUNILEdBQUc7QUFBQSxjQUNMO0FBQUEsWUFDRjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsY0FDWCxlQUFlO0FBQUEsY0FDZixLQUFLO0FBQUEsY0FDTCxZQUFZO0FBQUEsY0FDWixTQUFTO0FBQUEsY0FDVCxVQUFVO0FBQUEsZ0JBQ1IsRUFBRSxlQUFlLE1BQU87QUFBQSxnQkFDeEIsS0FBSztBQUFBLGdCQUNMO0FBQUEsa0JBQ0UsT0FBTztBQUFBO0FBQUEsa0JBQ1AsWUFBWTtBQUFBLGdCQUNkO0FBQUEsZ0JBQ0E7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsT0FBTztBQUFBLGtCQUNQLEtBQUs7QUFBQSxrQkFDTCxjQUFjO0FBQUEsa0JBQ2QsWUFBWTtBQUFBLGtCQUNaLFVBQVU7QUFBQSxrQkFDVixVQUFVO0FBQUEsb0JBQ1I7QUFBQSxvQkFDQTtBQUFBLG9CQUNBO0FBQUEsb0JBQ0EsS0FBSztBQUFBLG9CQUNMO0FBQUEsb0JBQ0E7QUFBQSxrQkFDRjtBQUFBLGdCQUNGO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxVQUFVO0FBQUEsZ0JBQ1I7QUFBQSxrQkFDRSxlQUFlO0FBQUEsa0JBQ2YsU0FBUztBQUFBLGdCQUNYO0FBQUEsZ0JBQ0E7QUFBQSxrQkFDRSxlQUFlO0FBQUEsa0JBQ2YsU0FBUztBQUFBLGdCQUNYO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1gsS0FBSztBQUFBLGNBQ0wsWUFBWTtBQUFBLGNBQ1osVUFBVTtBQUFBLGdCQUNSLEVBQUUsZUFBZSxxQkFBcUI7QUFBQSxnQkFDdEMsS0FBSztBQUFBLGNBQ1A7QUFBQSxZQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFJQTtBQUFBLGNBQ0UsZUFBZTtBQUFBLGNBQ2YsV0FBVztBQUFBLGNBQ1gsS0FBSztBQUFBLGNBQ0wsU0FBUztBQUFBLGNBQ1QsVUFBVSxDQUFFLEtBQUssUUFBUSxLQUFLLHVCQUF1QixFQUFFLE9BQU8sY0FBYyxDQUFDLENBQUU7QUFBQSxZQUNqRjtBQUFBLFlBQ0E7QUFBQSxjQUNFLGVBQWU7QUFBQSxjQUNmLFdBQVc7QUFBQSxjQUNYLEtBQUs7QUFBQSxjQUNMLFVBQVU7QUFBQTtBQUFBLGdCQUVSO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLE9BQU87QUFBQSxnQkFDVDtBQUFBO0FBQUEsZ0JBRUEsS0FBSztBQUFBLGNBQ1A7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNwbUJqQjtBQUFBO0FBUUEsZUFBUyxZQUFZLE1BQU07QUFDekIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sYUFBYTtBQUFBLFVBQ2IsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLGFBQWE7QUFBQSxjQUNiLFVBQVU7QUFBQTtBQUFBO0FBQUEsZ0JBR1I7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsS0FBSztBQUFBLGtCQUNMLE1BQU07QUFBQSxnQkFDUjtBQUFBLGdCQUNBO0FBQUEsa0JBQ0UsT0FBTztBQUFBLGtCQUNQLEtBQUs7QUFBQSxrQkFDTCxNQUFNO0FBQUEsZ0JBQ1I7QUFBQSxnQkFDQTtBQUFBLGtCQUNFLE9BQU87QUFBQSxrQkFDUCxLQUFLO0FBQUEsa0JBQ0wsTUFBTTtBQUFBLGdCQUNSO0FBQUEsZ0JBQ0EsS0FBSyxRQUFRLEtBQUssa0JBQWtCO0FBQUEsa0JBQ2xDLFNBQVM7QUFBQSxrQkFDVCxXQUFXO0FBQUEsa0JBQ1gsVUFBVTtBQUFBLGtCQUNWLE1BQU07QUFBQSxnQkFDUixDQUFDO0FBQUEsZ0JBQ0QsS0FBSyxRQUFRLEtBQUssbUJBQW1CO0FBQUEsa0JBQ25DLFNBQVM7QUFBQSxrQkFDVCxXQUFXO0FBQUEsa0JBQ1gsVUFBVTtBQUFBLGtCQUNWLE1BQU07QUFBQSxnQkFDUixDQUFDO0FBQUEsY0FDSDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNyRGpCO0FBQUE7QUFPQSxlQUFTLFVBQVUsTUFBTTtBQUN2QixlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxtQkFBbUI7QUFBQSxRQUNyQjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNsQmpCO0FBQUE7QUFTQSxlQUFTLEtBQUssTUFBTTtBQUNsQixjQUFNLFdBQVc7QUFBQSxVQUNmLFNBQ0U7QUFBQSxVQUtGLE1BQ0U7QUFBQSxVQUNGLFNBQ0U7QUFBQSxRQUNKO0FBRUEsY0FBTSwyQkFBMkI7QUFBQSxVQUMvQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sb0JBQW9CO0FBQUEsVUFDeEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVSxDQUFFLEtBQUssZ0JBQWlCO0FBQUEsUUFDcEM7QUFFQSxjQUFNLHlCQUF5QjtBQUFBLFVBQzdCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLFVBQVUsQ0FBRSxLQUFLLGdCQUFpQjtBQUFBLFVBQ2xDLFdBQVc7QUFBQSxRQUNiO0FBRUEsY0FBTSxZQUFZO0FBQUEsVUFDaEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsV0FBVztBQUFBLFFBQ2I7QUFFQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixPQUFPLEtBQUssV0FBVztBQUFBLFVBQ3ZCLFdBQVc7QUFBQSxRQUNiO0FBRUEsY0FBTSxjQUFjO0FBQUEsVUFDbEIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsV0FBVztBQUFBLFFBQ2I7QUFhQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDekZqQjtBQUFBO0FBU0EsZUFBUyxXQUFXLE1BQU07QUFDeEIsY0FBTSxRQUFRO0FBQUEsVUFDWjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBR0EsY0FBTSxjQUNKO0FBWUYsY0FBTSx1QkFDSjtBQVFGLGNBQU0sV0FBVztBQUFBLFVBQ2YsVUFBVTtBQUFBLFVBQ1YsU0FDRTtBQUFBO0FBQUEsVUFJRixVQUNFO0FBQUE7QUFBQSxRQVNKO0FBRUEsY0FBTSxnQkFBZ0I7QUFFdEIsY0FBTSxrQkFBa0I7QUFBQSxVQUN0QixPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsUUFDYjtBQUVBLGNBQU0sTUFBTTtBQUFBLFVBQ1YsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1IsRUFBRSxPQUFPLE9BQU87QUFBQSxZQUNoQjtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBLEVBQUUsT0FBTyxvQkFBb0I7QUFBQSxVQUMvQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxlQUFlO0FBQUEsVUFDbkIsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLFlBQ1A7QUFBQSxVQUNGO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBRUEsY0FBTSxjQUFjO0FBQUEsVUFDbEIsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLFlBQ1A7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVBLGNBQU0sY0FBYztBQUFBLFVBQ2xCLFdBQVc7QUFBQSxVQUNYLFVBQVU7QUFBQTtBQUFBLFlBRVIsRUFBRSxPQUFPLDBGQUEwRjtBQUFBO0FBQUEsWUFFbkcsRUFBRSxPQUFPLGdHQUFnRztBQUFBLFVBQzNHO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYSxLQUFLO0FBQUEsVUFDdEIsS0FBSyxRQUFRLE1BQU0sSUFBSTtBQUFBLFVBQ3ZCO0FBQUEsWUFDRSxVQUFVO0FBQUE7QUFBQSxjQUVSO0FBQUEsZ0JBQ0UsT0FBTztBQUFBLGdCQUNQLEtBQUs7QUFBQSxjQUNQO0FBQUE7QUFBQSxjQUVBO0FBQUEsZ0JBQ0UsT0FBTztBQUFBLGdCQUNQLEtBQUs7QUFBQSxjQUNQO0FBQUEsWUFDRjtBQUFBLFlBQ0EsVUFBVSxDQUFFLFdBQVk7QUFBQSxVQUMxQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLFdBQVc7QUFBQSxVQUNYLFVBQVUsQ0FBRSxFQUFFLE9BQU8sSUFBSSxPQUFPLGFBQWEsZ0JBQWdCLEVBQUUsQ0FBRTtBQUFBLFFBQ25FO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZixXQUFXO0FBQUEsVUFDWCxlQUFlO0FBQUEsVUFDZixLQUFLO0FBQUEsVUFDTCxZQUFZO0FBQUEsVUFDWixXQUFXO0FBQUEsVUFDWCxVQUFVLENBQUUsS0FBSyxVQUFXO0FBQUEsUUFDOUI7QUFFQSxjQUFNLGNBQWM7QUFBQSxVQUNsQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxZQUFZO0FBQUEsVUFDWixhQUFhO0FBQUEsVUFDYixXQUFXO0FBQUEsVUFDWCxVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLGNBQ1gsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFdBQVc7QUFBQSxjQUNYLFdBQVc7QUFBQSxjQUNYLFVBQVUsQ0FBRSxHQUFJO0FBQUEsWUFDbEI7QUFBQTtBQUFBLFVBRUY7QUFBQSxRQUNGO0FBR0EsY0FBTSxXQUFXO0FBQUEsVUFDZixPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxhQUFhO0FBQUEsVUFDYixVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBR0EsY0FBTSxlQUFlLEVBQUUsVUFBVTtBQUFBO0FBQUEsVUFFL0I7QUFBQSxZQUNFLFdBQVc7QUFBQSxZQUNYLE9BQU8sSUFBSSxPQUFPLHNCQUFzQixNQUFNO0FBQUEsVUFDaEQ7QUFBQSxVQUNBO0FBQUEsWUFDRSxXQUFXO0FBQUEsWUFDWCxPQUFPO0FBQUEsWUFDUCxXQUFXO0FBQUEsVUFDYjtBQUFBLFFBQ0YsRUFBRTtBQUVGLGNBQU0sYUFBYTtBQUFBLFVBQ2pCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLFdBQVc7QUFBQSxRQUNiO0FBSUEsY0FBTSxhQUFhO0FBQUEsVUFDakIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsYUFBYTtBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU8sSUFBSTtBQUFBLGdCQUNULFNBQVMsUUFBUSxTQUFTLEVBQUU7QUFBQSxrQkFBUTtBQUFBLGtCQUFPO0FBQUEsZ0JBQzNDO0FBQUEsZ0JBQUc7QUFBQSxjQUFNO0FBQUEsY0FDWCxZQUFZO0FBQUEsY0FDWixXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0EsS0FBSyxRQUFRLEtBQUssWUFBWSxFQUFFLFlBQVksS0FBSyxDQUFDO0FBQUEsVUFDcEQ7QUFBQSxRQUNGO0FBRUEsY0FBTSxpQkFBaUI7QUFBQTtBQUFBLFVBRXJCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBLEtBQUs7QUFBQSxVQUNMO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLGNBQWM7QUFBQSxVQUNkLFlBQVk7QUFBQSxVQUNaLFdBQVc7QUFBQSxVQUNYLFVBQVUsQ0FBQyxFQUFFO0FBQUEsWUFDWDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPLE1BQU0sTUFBTSxLQUFLLEdBQUcsSUFBSTtBQUFBLGNBQy9CLFdBQVc7QUFBQSxjQUNYLFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVBLG1CQUFXLFNBQVMsUUFBUSxPQUFPO0FBRW5DLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFNBQVM7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxrQkFBa0I7QUFBQSxVQUNsQixVQUFVO0FBQUEsVUFDVixVQUFVLGVBQWU7QUFBQSxZQUN2QjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUM1VGpCO0FBQUE7QUFRQSxlQUFTLFdBQVcsTUFBTTtBQUN4QixjQUFNLFFBQVEsS0FBSztBQUNuQixjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sWUFBWSxFQUFFLFVBQVU7QUFBQSxVQUM1QjtBQUFBLFlBQ0UsT0FBTyxNQUFNLE9BQU8sTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sVUFBVSxPQUFPLENBQUM7QUFBQSxZQUN4RSxXQUFXO0FBQUEsVUFDYjtBQUFBLFVBQ0E7QUFBQSxZQUNFLFdBQVc7QUFBQSxZQUNYLE9BQU8sTUFBTTtBQUFBLGNBQ1g7QUFBQSxjQUNBO0FBQUEsY0FBTyxN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QUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFLQSxjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2YsVUFBVTtBQUFBLFVBQ1YsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFVBQ1YsU0FBUztBQUFBLFVBQ1QsTUFBTTtBQUFBLFFBQ1I7QUFFQSxjQUFNLFNBQVM7QUFBQSxVQUNiLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxRQUNUO0FBRUEsY0FBTSxRQUFRO0FBQUEsVUFDWixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxL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Q0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sUUFBUTtBQUFBLFVBQ1o7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QixPQUFPO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBLEtBQUs7QUFBQSxVQUNQO0FBQUEsVUFDQSxPQUFPO0FBQUEsWUFDTCxHQUFHO0FBQUEsWUFDSCxHQUFHO0FBQUEsVUFDTDtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixVQUFVO0FBQUEsWUFDUixTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsWUFDVixNQUFNO0FBQUEsVUFDUjtBQUFBLFVBQ0EsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0w7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxZQUNQO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxjQUNFLGVBQWU7QUFBQSxjQUNmLEtBQUs7QUFBQSxZQUNQO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDcEpqQjtBQUFBO0FBUUEsZUFBUyxjQUFjLE1BQU07QUFDM0IsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sVUFBVTtBQUFBLFlBQ1IsU0FDRTtBQUFBLFlBbUNGLFVBQ0U7QUFBQSxVQUtKO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsVUFBVTtBQUFBLGdCQUNSO0FBQUE7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsV0FBVztBQUFBLGdCQUNiO0FBQUEsZ0JBQ0EsRUFBRSxPQUFPLGVBQWU7QUFBQSxjQUMxQjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMzRWpCO0FBQUE7QUFVQSxlQUFTLEtBQUssTUFBTTtBQUNsQixjQUFNLFFBQVEsS0FBSztBQUduQixjQUFNLGlCQUFpQjtBQUN2QixjQUFNLHNCQUFzQixNQUFNLE9BQU8sZ0JBQWdCLEtBQUssbUJBQW1CO0FBQ2pGLGNBQU0sV0FBVyxNQUFNLE9BQU8sZ0JBQWdCLEtBQUssUUFBUTtBQUUzRCxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCLFdBQVc7QUFBQSxVQUNYLFdBQVc7QUFBQSxVQUNYLE9BQU8sTUFBTTtBQUFBLFlBQ1g7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsTUFBTSxVQUFVLE9BQU87QUFBQSxVQUFDO0FBQUEsUUFDNUI7QUFDQSxjQUFNLGdCQUFnQjtBQUN0QixjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQTtBQUFBLFVBRWY7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFFQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxRQUFRO0FBQUEsVUFDWjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTLENBQUUsSUFBSztBQUFBLFVBQ2hCLFVBQVU7QUFBQSxZQUNSLFVBQVUsS0FBSyxXQUFXO0FBQUEsWUFDMUIsTUFBTTtBQUFBLFlBQ04sU0FBUztBQUFBLFlBQ1QsU0FBUztBQUFBLFlBQ1QsVUFBVTtBQUFBLFVBQ1o7QUFBQSxVQUNBLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxZQUNSLEtBQUs7QUFBQSxZQUNMLEtBQUssUUFBUSxRQUFRLFFBQVEsRUFBRSxVQUFVLENBQUUsTUFBTyxFQUFFLENBQUM7QUFBQSxZQUNyRCxLQUFLLFFBQVEsS0FBSyxtQkFBbUI7QUFBQSxjQUNuQyxPQUFPO0FBQUEsY0FDUCxTQUFTO0FBQUEsWUFDWCxDQUFDO0FBQUEsWUFDRDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsVUFBVTtBQUFBLGdCQUNSLEVBQUUsT0FBTywyQkFBMkI7QUFBQSxnQkFDcEMsRUFBRSxPQUFPLGtDQUFrQztBQUFBLGNBQzdDO0FBQUEsWUFDRjtBQUFBLFlBQ0E7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxZQUNUO0FBQUEsWUFDQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsVUFBVTtBQUFBLGdCQUNSLEVBQUUsT0FBTyxrQkFBa0IsY0FBYztBQUFBLGdCQUN6QyxFQUFFLE9BQU8sbUJBQW1CLGNBQWM7QUFBQSxnQkFDMUMsRUFBRSxPQUFPLHlCQUF5QixjQUFjO0FBQUEsZ0JBQ2hELEVBQUUsT0FBTyxvREFDRSxjQUFjO0FBQUEsY0FDM0I7QUFBQSxjQUNBLFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGdCQUNMO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGNBQ0Y7QUFBQSxjQUNBLFdBQVc7QUFBQSxnQkFDVCxHQUFHO0FBQUEsZ0JBQ0gsR0FBRztBQUFBLGNBQ0w7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLGNBQ0wsVUFBVTtBQUFBLGdCQUNSO0FBQUEsa0JBQ0UsV0FBVztBQUFBLGtCQUNYLE9BQU87QUFBQSxrQkFDUCxLQUFLO0FBQUEsa0JBQ0wsVUFBVTtBQUFBLG9CQUNSLEtBQUs7QUFBQSxrQkFDUDtBQUFBLGdCQUNGO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsZ0JBQ0w7QUFBQSxnQkFDQTtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGO0FBQUEsY0FDQSxXQUFXO0FBQUEsZ0JBQ1QsR0FBRztBQUFBLGdCQUNILEdBQUc7QUFBQSxnQkFDSCxHQUFHO0FBQUEsY0FDTDtBQUFBLFlBQ0Y7QUFBQTtBQUFBLFlBRUE7QUFBQSxjQUNFLE9BQU87QUFBQSxnQkFDTDtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGdCQUNBO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLGdCQUNULEdBQUc7QUFBQSxnQkFDSCxHQUFHO0FBQUEsZ0JBQ0gsR0FBRztBQUFBLGNBQ0w7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGdCQUNMO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGNBQ0Y7QUFBQSxjQUNBLFdBQVc7QUFBQSxnQkFDVCxHQUFHO0FBQUEsZ0JBQ0gsR0FBRztBQUFBLGNBQ0w7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGdCQUNMO0FBQUEsZ0JBQ0E7QUFBQSxnQkFDQTtBQUFBLGNBQ0Y7QUFBQSxjQUNBLFdBQVc7QUFBQSxnQkFDVCxHQUFHO0FBQUEsZ0JBQ0gsR0FBRztBQUFBLGNBQ0w7QUFBQSxZQUNGO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTyxLQUFLLFdBQVc7QUFBQSxjQUN2QixVQUFVO0FBQUEsZ0JBQ1IsU0FBUztBQUFBLGdCQUNULFVBQVU7QUFBQSxnQkFDVixNQUFNO0FBQUEsY0FDUjtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUMzVGpCO0FBQUE7QUFRQSxlQUFTLElBQUksTUFBTTtBQUNqQixjQUFNLFFBQVEsS0FBSztBQUVuQixjQUFNLGVBQWU7QUFBQSxVQUNuQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBR0EsY0FBTSxZQUFZO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFB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QUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBRUEsVUFBTSxPQUFPO0FBQUEsUUFDWCxHQUFHO0FBQUEsUUFDSCxHQUFHO0FBQUEsTUFDTDtBQUtBLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixFQUFFLEtBQUssRUFBRSxRQUFRO0FBR2pCLFVBQU0saUJBQWlCO0FBQUEsUUFDckI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUdqQixVQUFNLGtCQUFrQjtBQUFBLFFBQ3RCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUVqQixVQUFNLGFBQWE7QUFBQSxRQUNqQjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFB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QUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sVUFBVTtBQUFBLFVBQ2Q7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFJQSxjQUFNLGVBQWU7QUFBQSxVQUNuQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBLEtBQUssUUFBUSxTQUFTLEVBQUUsV0FBVyxTQUFTLENBQUM7QUFBQSxZQUM3QztBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLGNBQ0wsU0FBUztBQUFBLFlBQ1g7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMLEtBQUs7QUFBQSxVQUNQO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxZQUNULFVBQVU7QUFBQSxZQUNWLFNBQVM7QUFBQSxVQUNYO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVM7QUFBQTtBQUFBLFlBRVA7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBO0FBQUEsWUFDQTtBQUFBO0FBQUE7QUFBQSxZQUVBO0FBQUE7QUFBQSxZQUVBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNybUZqQjtBQUFBO0FBc0JBLGVBQVMsSUFBSSxNQUFNO0FBQ2pCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0sZUFBZSxLQUFLLFFBQVEsTUFBTSxHQUFHO0FBQzNDLGNBQU0sU0FBUztBQUFBLFVBQ2IsV0FBVztBQUFBLFVBQ1gsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLFVBQVUsQ0FBRSxFQUFFLE9BQU8sS0FBSyxDQUFFO0FBQUEsWUFDOUI7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0sb0JBQW9CO0FBQUEsVUFDeEIsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVSxDQUFFLEVBQUUsT0FBTyxLQUFLLENBQUU7QUFBQSxRQUM5QjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUE7QUFBQTtBQUFBLFVBR0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxtQkFBbUI7QUFBQSxVQUN2QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFFBQVE7QUFBQSxVQUNaO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLHFCQUFxQjtBQUFBLFVBQ3pCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLGlCQUFpQjtBQUFBLFVBQ3JCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBS0EsY0FBTSxxQkFBcUI7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFHQSxjQUFNLDBCQUEwQjtBQUFBLFVBQzlCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBSUEsY0FBTSxTQUFTO0FB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QUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQVVBLGNBQU0sWUFBWTtBQUFBLFVBQ2hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGdCQUFnQjtBQUFBLFVBQ3BCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sZ0JBQWdCLEtBQUs7QUFBQSxVQUN6QjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsWUFDRSxXQUFXO0FBQUEsWUFDWCxVQUFVO0FBQUEsY0FDUjtBQUFBLGdCQUNFLE9BQU87QUFBQSxnQkFDUCxPQUFPO0FBQUEsY0FDVDtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUVBLGNBQU0sVUFBVTtBQUFBLFVBQ2QsT0FBTztBQUFBLFVBQ1AsT0FBTztBQUFBLFVBQ1AsS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLE9BQU87QUFBQSxZQUNUO0FBQUEsWUFDQSxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFFQSxjQUFNLG9CQUFvQjtBQUFBLFVBQ3hCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFNBQVMsQ0FBRSxXQUFZO0FBQUEsVUFDdkIsVUFBVTtBQUFBLFlBQ1IsVUFBVSxLQUFLO0FBQUEsWUFDZixPQUFPO0FBQUEsWUFDUCxNQUFNO0FBQUEsWUFDTixTQUFTO0FBQUEsWUFDVCxVQUFVO0FBQUEsVUFDWjtBQUFBLFVBQ0EsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0w7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsT0FBTztBQUFBLGNBQ1AsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPLE1BQU0sT0FBTyxXQUFXLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixHQUFHLE1BQU07QUFBQSxjQUN6RSxVQUFVO0FBQUEsWUFDWjtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLE9BQU87QUFBQSxZQUNUO0FBQUEsWUFDQTtBQUFBO0FBQUEsY0FFRSxPQUFPO0FBQUEsZ0JBQ0w7QUFBQSxnQkFDQSxNQUFNLE9BQU8sR0FBRyxhQUFhO0FBQUEsZ0JBQzdCO0FBQUEsZ0JBQ0E7QUFBQSxjQUNGO0FBQUEsY0FDQSxPQUFPO0FBQUEsZ0JBQ0wsR0FBRztBQUFBLGdCQUNILEdBQUc7QUFBQSxjQUNMO0FBQUEsWUFDRjtBQUFBLFlBQ0E7QUFBQTtBQUFBLGNBRUUsT0FBTztBQUFBLGNBQ1AsVUFBVTtBQUFBLGNBQ1YsT0FBTyxNQUFNLE9BQU8sT0FBTyxNQUFNLE9BQU8sR0FBRyxhQUFhLEdBQUcsMkRBQTJEO0FBQUEsWUFDeEg7QUFBQSxZQUNBO0FBQUE7QUFBQSxjQUVFLE9BQU87QUFBQSxnQkFDTDtBQUFBLGdCQUNBO0FBQUEsZ0JBQ0EsTUFBTSxPQUFPLE1BQU0sT0FBTyxHQUFHLGFBQWEsR0FBRyxpQkFBaUI7QUFBQSxjQUNoRTtBQUFBLGNBQ0EsT0FBTyxFQUFFLEdBQUcsV0FBVztBQUFBLFlBQ3pCO0FBQUEsWUFDQTtBQUFBO0FBQUEsY0FFRSxPQUFPO0FBQUEsZ0JBQ0w7QUFBQSxnQkFDQTtBQUFBLGdCQUNBLGNBQWMsTUFBTSxPQUFPLEdBQUcsYUFBYSxJQUFJO0FBQUEsY0FDakQ7QUFBQSxjQUNBLE9BQU8sRUFBRSxHQUFHLGlCQUFpQjtBQUFBLFlBQy9CO0FBQUEsWUFDQTtBQUFBO0FBQUEsY0FFRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLE9BQU8sTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGdCQVFYO0FBQUE7QUFBQTtBQUFBLGdCQUdBO0FBQUEsY0FDRjtBQUFBLGNBQ0EsV0FBVztBQUFBLFlBQ2I7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQ3hnQmpCO0FBQUE7QUFhQSxlQUFTLE1BQU0sTUFBTTtBQUNuQixlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsVUFDQSxrQkFBa0I7QUFBQSxVQUNsQixVQUFVO0FBQUEsVUFDVixVQUFVO0FBQUEsWUFDUjtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxXQUFXO0FBQUEsWUFDYjtBQUFBLFlBQ0E7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQSxnQkFDUixFQUFFLE9BQU8saUJBQWlCO0FBQUEsZ0JBQzFCLEVBQUUsT0FBTyxjQUFjO0FBQUEsY0FDekI7QUFBQSxZQUNGO0FBQUEsWUFFQTtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsVUFBVSxDQUFFLEVBQUUsT0FBTyxrNUNBQWs1QyxDQUFFO0FBQUEsWUFDMzZDO0FBQUEsWUFFQSxLQUFLLFFBQVEsZ0JBQWlCLEtBQUs7QUFBQSxZQUNuQyxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDcERqQjtBQUFBO0FBUUEsZUFBUyxPQUFPLE1BQU07QUFDcEIsY0FBTSxrQkFBa0I7QUFDeEIsY0FBTSxrQkFBa0I7QUFBQSxVQUN0QixVQUFVO0FBQUEsVUFDVixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGVBQWU7QUFBQSxVQUNuQixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxXQUFXO0FBQUEsUUFDYjtBQUNBLGNBQU0sZUFBZTtBQUFBLFVBQ25CLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLFdBQVc7QUFBQSxRQUNiO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sU0FBUztBQUFBLFlBQ1A7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxVQUNBLGtCQUFrQjtBQUFBO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQSxLQUFLO0FBQUEsWUFDTCxLQUFLO0FBQUEsWUFDTCxLQUFLLFFBQVEsWUFBWSxNQUFNO0FBQUEsWUFDL0IsS0FBSztBQUFBLFlBQ0wsS0FBSyxRQUFRLEtBQUssa0JBQWtCLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFBQSxZQUNyRCxLQUFLLFFBQVEsS0FBSyxtQkFBbUIsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUFBLFlBQ3REO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsY0FDUCxLQUFLO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxjQUNFLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQSxnQkFDUjtBQUFBLGtCQUNFLE9BQU87QUFBQSxrQkFDUCxLQUFLO0FBQUEsa0JBQ0wsU0FBUztBQUFBLGdCQUNYO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFFQSxhQUFPLFVBQVU7QUFBQTtBQUFBOzs7QUNsRWpCO0FBQUE7QUFBQSxVQUFNLFFBQVEsQ0FBQyxTQUFTO0FBQ3RCLGVBQU87QUFBQSxVQUNMLFdBQVc7QUFBQSxZQUNULE9BQU87QUFBQSxZQUNQLE9BQU87QUFBQSxVQUNUO0FBQUEsVUFDQSxlQUFlLEtBQUs7QUFBQSxVQUNwQixVQUFVO0FBQUEsWUFDUixPQUFPO0FBQUEsWUFDUCxPQUFPO0FBQUEsVUFDVDtBQUFBLFVBQ0EsbUJBQW1CO0FBQUEsWUFDakIsV0FBVztBQUFBLFlBQ1gsT0FBTztBQUFBLFVBQ1Q7QUFBQSxVQUNBLHlCQUF5QjtBQUFBLFlBQ3ZCLE9BQU87QUFBQSxZQUNQLE9BQU87QUFBQSxZQUNQLEtBQUs7QUFBQSxZQUNMLFNBQVM7QUFBQSxZQUNULFVBQVU7QUFBQSxjQUNSLEtBQUs7QUFBQSxjQUNMLEtBQUs7QUFBQSxZQUNQO0FBQUEsVUFDRjtBQUFBLFVBQ0EsaUJBQWlCO0FBQUEsWUFDZixPQUFPO0FBQUEsWUFDUCxPQUFPLEtBQUssWUFBWTtBQUFBLFlBU3hCLFdBQVc7QUFBQSxVQUNiO0FBQUEsVUFDQSxjQUFjO0FBQUEsWUFDWixXQUFXO0FBQUEsWUFDWCxPQUFPO0FBQUEsVUFDVDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsVUFBTSxZQUFZO0FBQUEsUUFDaEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUVBLFVBQU0sV0FBVztBQUFBLFFBQ2Y7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUVBLFVBQU0sT0FBTztBQUFBLFFBQ1gsR0FBRztBQUFBLFFBQ0gsR0FBRztBQUFBLE1BQ0w7QUFLQSxVQUFNLGlCQUFpQjtBQUFBLFFBQ3JCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0YsRUFBRSxLQUFLLEVBQUUsUUFBUTtBQUdqQixVQUFNLGlCQUFpQjtBQUFBLFFBQ3JCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxNQUNGLEVBQUUsS0FBSyxFQUFFLFFBQVE7QUFHakIsVUFBTSxrQkFBa0I7QUFBQSxRQUN0QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLEVBQUUsS0FBSyxFQUFFLFFBQVE7QUFFakIsVUFBTSxhQUFhO0FBQUEsUUFDakI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFB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UUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxNQUNGO0FBTUEsVUFBTSxXQUFXO0FBQUEsUUFDZjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUdBLFVBQU0sMEJBQTBCO0FBQUEsUUFDOUI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBSUEsVUFBTSxxQkFBcUI7QUFBQSxRQUN6QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFHQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUdBLFVBQU0sZUFBZTtBQUFBLFFBQ25CO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFB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O0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNB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O0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxZQUNULFNBQVM7QUFBQSxVQUNYO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFlBQ0E7QUFBQTtBQUFBLGNBRUUsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUE7QUFBQTtBQUFBLGNBR0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLFlBQ1Q7QUFBQSxZQUNBO0FBQUE7QUFBQSxjQUVFLFdBQVc7QUFBQSxjQUNYLE9BQU87QUFBQSxjQUNQLFdBQVc7QUFBQSxZQUNiO0FBQUEsWUFDQSxLQUFLLFFBQVEsTUFBTSxNQUFNO0FBQUEsWUFDekIsS0FBSyxRQUFRLEtBQUssTUFBTTtBQUFBLFlBQ3hCLEtBQUssUUFBUSxTQUFTLEdBQUc7QUFBQSxZQUN6QixLQUFLO0FBQUEsWUFDTDtBQUFBLGNBQ0UsV0FBVztBQUFBLGNBQ1gsT0FBTztBQUFBLGNBQ1AsS0FBSztBQUFBLFlBQ1A7QUFBQSxZQUNBLEtBQUs7QUFBQSxZQUNMO0FBQUEsY0FDRSxXQUFXO0FBQUEsY0FDWCxPQUFPO0FBQUEsWUFDVDtBQUFBLFVBQ0Y7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzNLakI7QUFBQTtBQVNBLGVBQVMsS0FBSyxNQUFNO0FBQ2xCLGNBQU0sUUFBUSxLQUFLO0FBQ25CLGNBQU0saUJBQWlCO0FBQUEsVUFDckI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxjQUFNLFVBQVU7QUFBQSxVQUNkO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsWUFBSSxZQUFZO0FBQUEsVUFDZDtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsb0JBQVksVUFBVSxP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QUEsUUFDQTtBQUFBLFFBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUlBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQ0Y7QUFDQSxVQUFNLFdBQVc7QUFBQSxRQUNmO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBR0EsVUFBTSxRQUFRO0FBQUE7QUFBQSxRQUVaO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQTtBQUFBLFFBRUE7QUFBQTtBQUFBLFFBRUE7QUFBQSxNQUNGO0FBRUEsVUFBTSxjQUFjO0FBQUEsUUFDbEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUVBLFVBQU0sbUJBQW1CO0FBQUEsUUFDdkI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUVBO0FBQUEsUUFDQTtBQUFBLFFBRUE7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFB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QUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLG1CQUFtQjtBQUFBLFVBQ3ZCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxnQkFBZ0I7QUFBQSxVQUNwQixPQUFPLE1BQU0sT0FBTyxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsR0FBRyxTQUFTO0FBQUE7QUFBQSxVQUVsRSxXQUFXO0FBQUEsVUFDWCxVQUFVLEVBQUUsVUFBVSxtQkFBbUI7QUFBQSxRQUMzQztBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTLENBQUUsS0FBTTtBQUFBLFVBQ2pCLGtCQUFrQjtBQUFBLFVBQ2xCLFVBQVU7QUFBQSxZQUNSLFNBQVM7QUFBQSxZQUNULFVBQVU7QUFBQSxZQUNWLFNBQVM7QUFBQSxVQUNYO0FBQUEsVUFDQSxTQUFTO0FBQUEsVUFDVCxVQUFVO0FBQUEsWUFDUjtBQUFBLFlBQ0EsS0FBSyxRQUFRLEtBQUssbUJBQW1CLEVBQUUsVUFBVSxDQUFFLEVBQUUsT0FBTyxLQUFLLENBQUUsRUFBRSxDQUFDO0FBQUEsWUFDdEUsS0FBSztBQUFBLGNBQ0g7QUFBQSxjQUNBO0FBQUEsY0FDQSxFQUFFLFdBQVcsRUFBRTtBQUFBLFlBQ2pCO0FBQUEsWUFDQSxLQUFLO0FBQUEsVUFDUDtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDM05qQjtBQUFBO0FBU0EsZUFBUyxhQUFhLE1BQU07QUFDMUIsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sYUFBYTtBQUFBLFVBQ2IsVUFBVTtBQUFBLFlBQ1I7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLEtBQUs7QUFBQSxjQUNMLGFBQWE7QUFBQSxZQUNmO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDdkJqQjtBQUFBO0FBU0EsZUFBUyxRQUFRLE1BQU07QUFDckIsY0FBTSxRQUFRLEtBQUs7QUFDbkIsY0FBTSxXQUFXO0FBQUEsVUFDZixVQUFVO0FBQUEsVUFDVixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0Y7QUFBQSxVQUNBLFNBQVMsQ0FBRSxNQUFPO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFlBQ1I7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0scUJBQXFCO0FBQUEsVUFDekI7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUNBLGNBQU0sYUFBYTtBQUFBLFVBQ2pCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFFQSxlQUFPO0FBQUEsVUFDTCxNQUFNO0FBQUEsVUFDTixTQUFTO0FBQUEsWUFDUDtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsVUFDRjtBQUFBLFVBQ0Esa0JBQWtCO0FBQUEsVUFDbEIsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0w7QUFBQSxjQUNFLE9BQU87QUFBQSxjQUNQLFVBQVUsQ0FBRSxLQUFLLGdCQUFpQjtBQUFBLGNBQ2xDLFVBQVU7QUFBQSxnQkFDUixFQUFFLE9BQU8sMENBQTBDO0FBQUEsZ0JBQ25ELEVBQUUsT0FBTyx1Q0FBdUM7QUFBQSxnQkFDaEQ7QUFBQTtBQUFBLGtCQUNFLE9BQU87QUFBQSxrQkFDUCxXQUFXO0FBQUEsZ0JBQ2I7QUFBQSxjQUNGO0FBQUEsWUFDRjtBQUFBO0FBQUEsWUFFQTtBQUFBLGNBQ0UsT0FBTztBQUFBLGNBQ1AsVUFBVTtBQUFBLGdCQUNSLEVBQUUsT0FBTyx5QkFBeUI7QUFBQSxnQkFDbEM7QUFBQSxrQkFDRSxPQUFPO0FBQUEsa0JBQ1AsV0FBVztBQUFBLGdCQUNiO0FBQUEsY0FDRjtBQUFBLFlBQ0Y7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPLE1BQU0sT0FBTyxLQUFLLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDO0FBQUEsWUFDOUQ7QUFBQSxZQUNBO0FBQUEsY0FDRSxPQUFPO0FBQUEsY0FDUCxPQUFPLE1BQU0sT0FBTyxLQUFLLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQztBQUFBLGNBQ3BELEtBQUs7QUFBQSxjQUNMLFdBQVc7QUFBQSxjQUNYLFVBQVU7QUFBQSxZQUNaO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsYUFBTyxVQUFVO0FBQUE7QUFBQTs7O0FDcmlCakI7QUFBQTtBQVNBLGVBQVMsS0FBSyxNQUFNO0FBSWxCLGNBQU0sYUFBYTtBQUNuQixjQUFNLGNBQWMsY0FBYztBQUNsQyxjQUFNLHFCQUFxQixhQUFhLFNBQVMsYUFBYSxRQUFhLGNBQWM7QUFFekYsY0FBTSxtQkFBbUI7QUFDekIsY0FBTSxtQkFBbUIsYUFBYSxNQUFNLG1CQUFtQixTQUFTLG1CQUFtQixTQUFtQixjQUFjO0FBRTVILGNBQU0sWUFBWSxTQUFTLG1CQUFtQixNQUFNLHFCQUFxQjtBQUV6RSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFlBQVk7QUFBQSxVQUNoQjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUE7QUFBQSxVQUVmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQTtBQUFBLFVBRUE7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsZUFBTztBQUFBLFVBQ0wsTUFBTTtBQUFBLFVBQ04sa0JBQWtCO0FBQUEsVUFDbEIs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QUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGtCQUFrQjtBQUFBLFVBQ3RCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFDQSxjQUFNLFdBQVc7QUFBQSxVQUNmO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBQ0EsY0FBTSxXQUFXO0FBQUEsVUFDZixVQUFVO0FBQUEsVUFDVixTQUFTO0FBQUEsVUFDVCxTQUFTO0FBQUEsVUFDVCxVQUFVLFVBQVUsT0FBTyxlQUFlO0FBQUEsUUFDNUM7QUFFQSxjQUFNLG9CQUFvQjtBQUFBLFVBQ3hCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxVQUNMLFNBQVM7QUFBQSxRQUNYO0FBQ0EsY0FBTSxvQkFBb0I7QUFBQSxVQUN4QixXQUFXO0FBQUEsVUFDWCxPQUFPO0FBQUEsVUFDUCxLQUFLO0FBQUEsVUFDTCxTQUFTO0FBQUEsUUFDWDtBQUNBLGNBQU0sWUFBWTtBQUFBLFVBQ2hCLFdBQVc7QUFBQSxVQUNYLE9BQU87QUFBQSxVQUNQLEtBQUs7QUFBQSxRQUNQO0FBQ0EsY0FBTSxlQUFlO0FBQUEsVUFDbkIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFFBQ1Q7QUFDQSxjQUFNLFNBQVM7QUFBQSxVQUNiLGVBQWU7QUFBQSxVQUNmLEtBQUs7QUFBQSxVQUNMLFVBQVU7QUFBQSxVQUNWLFVBQVUsQ0FBRSxpQkFBa0I7QUFBQSxRQUNoQztBQUNBLGNBQU0sc0JBQXNCO0FBQUEsVUFDMUIsV0FBVztBQUFBLFVBQ1gsT0FBTztBQUFBLFVBQ1AsYUFBYTtBQUFBLFVBQ2IsS0FBSztBQUFBLFVBQ0wsVUFBVTtBQUFBLFlBQ1IsS0FBSyxRQUFRLEtBQUssWUFBWSxFQUFFLFFBQVE7QUFBQSxjQUN0QyxnQkFBZ0I7QUFBQSxjQUNoQixVQUFVO0FBQUEsWUFDWixFQUFFLENBQUM7QUFBQSxVQUNMO0FBQUEsUUFDRjtBQUNBLGVBQU87QUFBQSxVQUNMLE1BQU07QUFBQSxVQUNOLFNBQVMsQ0FBRSxLQUFNO0FBQUEsVUFDakIsVUFBVTtBQUFBLFVBQ1YsVUFBVTtBQUFBLFlBQ1IsS0FBSztBQUFBLFlBQ0wsS0FBSztBQUFBLFlBQ0w7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFlBQ0EsS0FBSztBQUFBLFVBQ1A7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLGFBQU8sVUFBVTtBQUFBO0FBQUE7OztBQzVNakI7QUFBQTtBQVlBLGVBQVMsT0FBTyxPQUFPO0FBRXJCLGNBQU0sV0FBVztBQUFBLFVBQ2Y7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsUUFDRjtBQUlBLGNBQU0sUUFBUTtBQUFBLFVBQ1o7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQUEsVUFDZjtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxVQUNBO0FBQUEsVUFD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dW1lbnQiLCAiZG9jIiwgInRvVHlwZSIsICJjbG9uZSIsICJhcnIiLCAicHVzaCIsICJkb2N1bWVudEVsZW1lbnQiLCAicnF1aWNrRXhwciIsICJpIiwgImZuIiwgIm1hdGNoZXMiLCAibm9kZSIsICJzdGFydCIsICJkaXIiLCAiaGFzaCIsICJmaW5kIiwgImVsZW0iLCAic2VsZiIsICJ2YWx1ZSIsICJkZWZlcnJlZCIsICJEYXRhIiwgImRhdGEiLCAibm9kZU5hbWUiLCAibmFtZSIsICJlbmQiLCAiaW5kZXgiLCAibGVuZ3RoIiwgIm1heCIsICJsb2NhdGlvbiIsICJ2YWwiLCAiY29tcGxldGVkIiwgIm9mZnNldCIsICJ0b3AiLCAibWV0aG9kIiwgInR5cGUiLCAib2Zmc2V0IiwgImVuZCIsICJzY29wZU5hbWUiLCAidmVyc2lvbiIsICJnbG9iYWwiLCAiaSIsICJoaWdobGlnaHQiLCAidG9wIiwgInJlc3VsdCIsICJtYXgiLCAicmVxdWlyZV9jIiwgIk5BTUUiLCAiVElUTEUiLCAiZW5kIiwgImNvbnRhaW5zIiwgImVuZCIsICJOQU1FIiwgImVuZCIsICJ2YXJpYW50cyIsICJWRVJTSU9OIiwgIk5BTUUiLCAiVElUTEUiLCAiVElUTEUiLCAiVElUTEUiLCAiTkFNRSIsICJOQU1FIiwgImVuZCIsICJUWVBFUyIsICJUSVRMRSIsICJ3aW5kb3ciLCAiZG9jdW1lbnQiLCAidG9wYmFyIiwgImltcG9ydF9qcXVlcnkiLCAiY3JlYXRlUG9wcGVyIiwgIm5hbWUiLCAic3R5bGUiLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJnZXRDb21wdXRlZFN0eWxlIiwgIndpbmRvdyIsICJtaW4iLCAibWF4IiwgInRvUGFkZGluZ09iamVjdCIsICJwb3BwZXJPZmZzZXRzIiwgIm1pbiIsICJtYXgiLCAib2Zmc2V0IiwgImVmZmVjdCIsICJwb3BwZXIiLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJlZmZlY3QiLCAid2luZG93IiwgImhhc2giLCAiZ2V0Q29tcHV0ZWRTdHlsZSIsICJnZXRDb21wdXRlZFN0eWxlIiwgImNsaXBwaW5nUGFyZW50cyIsICJnZXRDb21wdXRlZFN0eWxlIiwgInJlZmVyZW5jZSIsICJwb3BwZXJPZmZzZXRzIiwgIm9mZnNldCIsICJwbGFjZW1lbnRzIiwgInBsYWNlbWVudCIsICJwbGFjZW1lbnRzIiwgInBsYWNlbWVudCIsICJfbG9vcCIsICJfaSIsICJjaGVja3MiLCAib2Zmc2V0IiwgInBvcHBlck9mZnNldHMiLCAib2Zmc2V0IiwgIm1pbiIsICJtYXgiLCAiZm4iLCAibWVyZ2VkIiwgImRlZmF1bHRNb2RpZmllcnMiLCAiY3JlYXRlUG9wcGVyIiwgInJlZmVyZW5jZSIsICJwb3BwZXIiLCAib3B0aW9ucyIsICJmbiIsICJzdGF0ZSIsICJlZmZlY3QiLCAibm9vcEZuIiwgImNyZWF0ZVBvcHBlciIsICJkZWZhdWx0TW9kaWZpZXJzIiwgImNyZWF0ZVBvcHBlciIsICJlbGVtZW50TWFwIiwgIk1hcCIsICJzZXQiLCAiZWxlbWVudCIsICJrZXkiLCAiaW5zdGFuY2UiLCAiaGFzIiwgImluc3RhbmNlTWFwIiwgImdldCIsICJzaXplIiwgImNvbnNvbGUiLCAiZXJyb3IiLCAiQXJyYXkiLCAiZnJvbSIsICJrZXlzIiwgInJlbW92ZSIsICJkZWxldGUiLCAiTUFYX1VJRCIsICJNSUxMSVNFQ09ORFNfTVVMVElQTElFUiIsICJUUkFOU0lUSU9OX0VORCIsICJwYXJzZVNlbGVjdG9yIiwgInNlbGVjdG9yIiwgIndpbmRvdyIsICJDU1MiLCAiZXNjYXBlIiwgInJlcGxhY2UiLCAibWF0Y2giLCAiaWQiLCAidG9UeXBlIiwgIm9iamVjdCIsICJ1bmRlZmluZWQiLCAiT2JqZWN0IiwgInByb3RvdHlwZSIsICJ0b1N0cmluZyIsICJjYWxsIiwgInRvTG93ZXJDYXNlIiwgImdldFVJRCIsICJwcmVmaXgiLCAiTWF0aCIsICJmbG9vciIsICJyYW5kb20iLCAiZG9jdW1lbnQiLCAiZ2V0RWxlbWVudEJ5SWQiLCAiZ2V0VHJhbnNpdGlvbkR1cmF0aW9uRnJvbUVsZW1lbnQiLCAidHJhbnNpdGlvbkR1cmF0aW9uIiwgInRyYW5zaXRpb25EZWxheSIsICJnZXRDb21wdXRlZFN0eWxlIiwgImZsb2F0VHJhbnNpdGlvbkR1cmF0aW9uIiwgIk51bWJlciIsICJwYXJzZUZsb2F0IiwgImZsb2F0VHJhbnNpdGlvbkRlbGF5IiwgInNwbGl0IiwgInRyaWdnZXJUcmFuc2l0aW9uRW5kIiwgImRpc3BhdGNoRXZlbnQiLCAiRXZlbnQiLCAiaXNFbGVtZW50IiwgImpxdWVyeSIsICJub2RlVHlwZSIsICJnZXRFbGVtZW50IiwgImxlbmd0aCIsICJxdWVyeVNlbGVjdG9yIiwgImlzVmlzaWJsZSIsICJnZXRDbGllbnRSZWN0cyIsICJlbGVtZW50SXNWaXNpYmxlIiwgImdldFByb3BlcnR5VmFsdWUiLCAiY2xvc2VkRGV0YWlscyIsICJjbG9zZXN0IiwgInN1bW1hcnkiLCAicGFyZW50Tm9kZSIsICJpc0Rpc2FibGVkIiwgIk5vZGUiLCAiRUxFTUVOVF9OT0RFIiwgImNsYXNzTGlzdCIsICJjb250YWlucyIsICJkaXNhYmxlZCIsICJoYXNBdHRyaWJ1dGUiLCAiZ2V0QXR0cmlidXRlIiwgImZpbmRTaGFkb3dSb290IiwgImRvY3VtZW50RWxlbWVudCIsICJhdHRhY2hTaGFkb3ciLCAiZ2V0Um9vdE5vZGUiLCAicm9vdCIsICJTaGFkb3dSb290IiwgIm5vb3AiLCAicmVmbG93IiwgIm9mZnNldEhlaWdodCIsICJnZXRqUXVlcnkiLCAialF1ZXJ5IiwgImJvZHkiLCAiRE9NQ29udGVudExvYWRlZENhbGxiYWNrcyIsICJvbkRPTUNvbnRlbnRMb2FkZWQiLCAiY2FsbGJhY2siLCAicmVhZHlTdGF0ZSIsICJhZGRFdmVudExpc3RlbmVyIiwgInB1c2giLCAiaXNSVEwiLCAiZGlyIiwgImRlZmluZUpRdWVyeVBsdWdpbiIsICJwbHVnaW4iLCAiJCIsICJuYW1lIiwgIk5BTUUiLCAiSlFVRVJZX05PX0NPTkZMSUNUIiwgImZuIiwgImpRdWVyeUludGVyZmFjZSIsICJDb25zdHJ1Y3RvciIsICJub0NvbmZsaWN0IiwgImV4ZWN1dGUiLCAicG9zc2libGVDYWxsYmFjayIsICJhcmdzIiwgImRlZmF1bHRWYWx1ZSIsICJleGVjdXRlQWZ0ZXJUcmFuc2l0aW9uIiwgInRyYW5zaXRpb25FbGVtZW50IiwgIndhaXRGb3JUcmFuc2l0aW9uIiwgImR1cmF0aW9uUGFkZGluZyIsICJlbXVsYXRlZER1cmF0aW9uIiwgImNhbGxlZCIsICJoYW5kbGVyIiwgInRhcmdldCIsICJyZW1vdmVFdmVudExpc3RlbmVyIiwgInNldFRpbWVvdXQiLCAiZ2V0TmV4dEFjdGl2ZUVsZW1lbnQiLCAibGlzdCIsICJhY3RpdmVFbGVtZW50IiwgInNob3VsZEdldE5leHQiLCAiaXNDeWNsZUFsbG93ZWQiLCAibGlzdExlbmd0aCIsICJpbmRleCIsICJpbmRleE9mIiwgIm1heCIsICJtaW4iLCAibmFtZXNwYWNlUmVnZXgiLCAic3RyaXBOYW1lUmVnZXgiLCAic3RyaXBVaWRSZWdleCIsICJldmVudFJlZ2lzdHJ5IiwgInVpZEV2ZW50IiwgImN1c3RvbUV2ZW50cyIsICJtb3VzZWVudGVyIiwgIm1vdXNlbGVhdmUiLCAibmF0aXZlRXZlbnRzIiwgIlNldCIsICJtYWtlRXZlbnRVaWQiLCAidWlkIiwgImdldEVsZW1lbnRFdmVudHMiLCAiYm9vdHN0cmFwSGFuZGxlciIsICJldmVudCIsICJoeWRyYXRlT2JqIiwgImRlbGVnYXRlVGFyZ2V0IiwgIm9uZU9mZiIsICJFdmVudEhhbmRsZXIiLCAib2ZmIiwgInR5cGUiLCAiYXBwbHkiLCAiYm9vdHN0cmFwRGVsZWdhdGlvbkhhbmRsZXIiLCAiZG9tRWxlbWVudHMiLCAicXVlcnlTZWxlY3RvckFsbCIsICJkb21FbGVtZW50IiwgImZpbmRIYW5kbGVyIiwgImV2ZW50cyIsICJjYWxsYWJsZSIsICJkZWxlZ2F0aW9uU2VsZWN0b3IiLCAidmFsdWVzIiwgImZpbmQiLCAibm9ybWFsaXplUGFyYW1ldGVycyIsICJvcmlnaW5hbFR5cGVFdmVudCIsICJkZWxlZ2F0aW9uRnVuY3Rpb24iLCAiaXNEZWxlZ2F0ZWQiLCAidHlwZUV2ZW50IiwgImdldFR5cGVFdmVudCIsICJhZGRIYW5kbGVyIiwgIndyYXBGdW5jdGlvbiIsICJyZWxhdGVkVGFyZ2V0IiwgImhhbmRsZXJzIiwgInByZXZpb3VzRnVuY3Rpb24iLCAicmVtb3ZlSGFuZGxlciIsICJCb29sZWFuIiwgInJlbW92ZU5hbWVzcGFjZWRIYW5kbGVycyIsICJuYW1lc3BhY2UiLCAic3RvcmVFbGVtZW50RXZlbnQiLCAiaGFuZGxlcktleSIsICJlbnRyaWVzIiwgImluY2x1ZGVzIiwgIm9uIiwgIm9uZSIsICJpbk5hbWVzcGFjZSIsICJpc05hbWVzcGFjZSIsICJzdGFydHNXaXRoIiwgImVsZW1lbnRFdmVudCIsICJzbGljZSIsICJrZXlIYW5kbGVycyIsICJ0cmlnZ2VyIiwgImpRdWVyeUV2ZW50IiwgImJ1YmJsZXMiLCAibmF0aXZlRGlzcGF0Y2giLCAiZGVmYXVsdFByZXZlbnRlZCIsICJpc1Byb3BhZ2F0aW9uU3RvcHBlZCIsICJpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCIsICJpc0RlZmF1bHRQcmV2ZW50ZWQiLCAiZXZ0IiwgImNhbmNlbGFibGUiLCAicHJldmVudERlZmF1bHQiLCAib2JqIiwgIm1ldGEiLCAidmFsdWUiLCAiX3VudXNlZCIsICJkZWZpbmVQcm9wZXJ0eSIsICJjb25maWd1cmFibGUiLCAibm9ybWFsaXplRGF0YSIsICJKU09OIiwgInBhcnNlIiwgImRlY29kZVVSSUNvbXBvbmVudCIsICJub3JtYWxpemVEYXRhS2V5IiwgImNociIsICJNYW5pcHVsYXRvciIsICJzZXREYXRhQXR0cmlidXRlIiwgInNldEF0dHJpYnV0ZSIsICJyZW1vdmVEYXRhQXR0cmlidXRlIiwgInJlbW92ZUF0dHJpYnV0ZSIsICJnZXREYXRhQXR0cmlidXRlcyIsICJhdHRyaWJ1dGVzIiwgImJzS2V5cyIsICJkYXRhc2V0IiwgImZpbHRlciIsICJwdXJlS2V5IiwgImNoYXJBdCIsICJnZXREYXRhQXR0cmlidXRlIiwgIkNvbmZpZyIsICJEZWZhdWx0IiwgIkRlZmF1bHRUeXBlIiwgIkVycm9yIiwgIl9nZXRDb25maWciLCAiY29uZmlnIiwgIl9tZXJnZUNvbmZpZ09iaiIsICJfY29uZmlnQWZ0ZXJNZXJnZSIsICJfdHlwZUNoZWNrQ29uZmlnIiwgImpzb25Db25maWciLCAiY29uc3RydWN0b3IiLCAiY29uZmlnVHlwZXMiLCAicHJvcGVydHkiLCAiZXhwZWN0ZWRUeXBlcyIsICJ2YWx1ZVR5cGUiLCAiUmVnRXhwIiwgInRlc3QiLCAiVHlwZUVycm9yIiwgInRvVXBwZXJDYXNlIiwgIlZFUlNJT04iLCAiQmFzZUNvbXBvbmVudCIsICJfZWxlbWVudCIsICJfY29uZmlnIiwgIkRhdGEiLCAiREFUQV9LRVkiLCAiZGlzcG9zZSIsICJFVkVOVF9LRVkiLCAicHJvcGVydHlOYW1lIiwgImdldE93blByb3BlcnR5TmFtZXMiLCAiX3F1ZXVlQ2FsbGJhY2siLCAiaXNBbmltYXRlZCIsICJnZXRJbnN0YW5jZSIsICJnZXRPckNyZWF0ZUluc3RhbmNlIiwgImV2ZW50TmFtZSIsICJnZXRTZWxlY3RvciIsICJocmVmQXR0cmlidXRlIiwgInRyaW0iLCAibWFwIiwgInNlbCIsICJqb2luIiwgIlNlbGVjdG9yRW5naW5lIiwgImNvbmNhdCIsICJFbGVtZW50IiwgImZpbmRPbmUiLCAiY2hpbGRyZW4iLCAiY2hpbGQiLCAibWF0Y2hlcyIsICJwYXJlbnRzIiwgImFuY2VzdG9yIiwgInByZXYiLCAicHJldmlvdXMiLCAicHJldmlvdXNFbGVtZW50U2libGluZyIsICJuZXh0IiwgIm5leHRFbGVtZW50U2libGluZyIsICJmb2N1c2FibGVDaGlsZHJlbiIsICJmb2N1c2FibGVzIiwgImVsIiwgImdldFNlbGVjdG9yRnJvbUVsZW1lbnQiLCAiZ2V0RWxlbWVudEZyb21TZWxlY3RvciIsICJnZXRNdWx0aXBsZUVsZW1lbnRzRnJvbVNlbGVjdG9yIiwgImVuYWJsZURpc21pc3NUcmlnZ2VyIiwgImNvbXBvbmVudCIsICJtZXRob2QiLCAiY2xpY2tFdmVudCIsICJ0YWdOYW1lIiwgIkVWRU5UX0NMT1NFIiwgIkVWRU5UX0NMT1NFRCIsICJDTEFTU19OQU1FX0ZBREUiLCAiQ0xBU1NfTkFNRV9TSE9XIiwgIkFsZXJ0IiwgImNsb3NlIiwgImNsb3NlRXZlbnQiLCAiX2Rlc3Ryb3lFbGVtZW50IiwgImVhY2giLCAiZGF0YSIsICJEQVRBX0FQSV9LRVkiLCAiQ0xBU1NfTkFNRV9BQ1RJVkUiLCAiU0VMRUNUT1JfREFUQV9UT0dHTEUiLCAiRVZFTlRfQ0xJQ0tfREFUQV9BUEkiLCAiQnV0dG9uIiwgInRvZ2dsZSIsICJidXR0b24iLCAiRVZFTlRfVE9VQ0hTVEFSVCIsICJFVkVOVF9UT1VDSE1PVkUiLCAiRVZFTlRfVE9VQ0hFTkQiLCAiRVZFTlRfUE9JTlRFUkRPV04iLCAiRVZFTlRfUE9JTlRFUlVQIiwgIlBPSU5URVJfVFlQRV9UT1VDSCIsICJQT0lOVEVSX1RZUEVfUEVOIiwgIkNMQVNTX05BTUVfUE9JTlRFUl9FVkVOVCIsICJTV0lQRV9USFJFU0hPTEQiLCAiZW5kQ2FsbGJhY2siLCAibGVmdENhbGxiYWNrIiwgInJpZ2h0Q2FsbGJhY2siLCAiU3dpcGUiLCAiaXNTdXBwb3J0ZWQiLCAiX2RlbHRhWCIsICJfc3VwcG9ydFBvaW50ZXJFdmVudHMiLCAiUG9pbnRlckV2ZW50IiwgIl9pbml0RXZlbnRzIiwgIl9zdGFydCIsICJ0b3VjaGVzIiwgImNsaWVudFgiLCAiX2V2ZW50SXNQb2ludGVyUGVuVG91Y2giLCAiX2VuZCIsICJfaGFuZGxlU3dpcGUiLCAiX21vdmUiLCAiYWJzRGVsdGFYIiwgImFicyIsICJkaXJlY3Rpb24iLCAiYWRkIiwgInBvaW50ZXJUeXBlIiwgIm5hdmlnYXRvciIsICJtYXhUb3VjaFBvaW50cyIsICJBUlJPV19MRUZUX0tFWSIsICJBUlJPV19SSUdIVF9LRVkiLCAiVE9VQ0hFVkVOVF9DT01QQVRfV0FJVCIsICJPUkRFUl9ORVhUIiwgIk9SREVSX1BSRVYiLCAiRElSRUNUSU9OX0xFRlQiLCAiRElSRUNUSU9OX1JJR0hUIiwgIkVWRU5UX1NMSURFIiwgIkVWRU5UX1NMSUQiLCAiRVZFTlRfS0VZRE9XTiIsICJFVkVOVF9NT1VTRUVOVEVSIiwgIkVWRU5UX01PVVNFTEVBVkUiLCAiRVZFTlRfRFJBR19TVEFSVCIsICJFVkVOVF9MT0FEX0RBVEFfQVBJIiwgIkNMQVNTX05BTUVfQ0FST1VTRUwiLCAiQ0xBU1NfTkFNRV9TTElERSIsICJDTEFTU19OQU1FX0VORCIsICJDTEFTU19OQU1FX1NUQVJUIiwgIkNMQVNTX05BTUVfTkVYVCIsICJDTEFTU19OQU1FX1BSRVYiLCAiU0VMRUNUT1JfQUNUSVZFIiwgIlNFTEVDVE9SX0lURU0iLCAiU0VMRUNUT1JfQUNUSVZFX0lURU0iLCAiU0VMRUNUT1JfSVRFTV9JTUciLCAiU0VMRUNUT1JfSU5ESUNBVE9SUyIsICJTRUxFQ1RPUl9EQVRBX1NMSURFIiwgIlNFTEVDVE9SX0RBVEFfUklERSIsICJLRVlfVE9fRElSRUNUSU9OIiwgImludGVydmFsIiwgImtleWJvYXJkIiwgInBhdXNlIiwgInJpZGUiLCAidG91Y2giLCAid3JhcCIsICJDYXJvdXNlbCIsICJfaW50ZXJ2YWwiLCAiX2FjdGl2ZUVsZW1lbnQiLCAiX2lzU2xpZGluZyIsICJ0b3VjaFRpbWVvdXQiLCAiX3N3aXBlSGVscGVyIiwgIl9pbmRpY2F0b3JzRWxlbWVudCIsICJfYWRkRXZlbnRMaXN0ZW5lcnMiLCAiY3ljbGUiLCAiX3NsaWRlIiwgIm5leHRXaGVuVmlzaWJsZSIsICJoaWRkZW4iLCAiX2NsZWFySW50ZXJ2YWwiLCAiX3VwZGF0ZUludGVydmFsIiwgInNldEludGVydmFsIiwgIl9tYXliZUVuYWJsZUN5Y2xlIiwgInRvIiwgIml0ZW1zIiwgIl9nZXRJdGVtcyIsICJhY3RpdmVJbmRleCIsICJfZ2V0SXRlbUluZGV4IiwgIl9nZXRBY3RpdmUiLCAib3JkZXIiLCAiZGVmYXVsdEludGVydmFsIiwgIl9rZXlkb3duIiwgIl9hZGRUb3VjaEV2ZW50TGlzdGVuZXJzIiwgImltZyIsICJlbmRDYWxsQmFjayIsICJjbGVhclRpbWVvdXQiLCAic3dpcGVDb25maWciLCAiX2RpcmVjdGlvblRvT3JkZXIiLCAiX3NldEFjdGl2ZUluZGljYXRvckVsZW1lbnQiLCAiYWN0aXZlSW5kaWNhdG9yIiwgIm5ld0FjdGl2ZUluZGljYXRvciIsICJlbGVtZW50SW50ZXJ2YWwiLCAicGFyc2VJbnQiLCAiaXNOZXh0IiwgIm5leHRFbGVtZW50IiwgIm5leHRFbGVtZW50SW5kZXgiLCAidHJpZ2dlckV2ZW50IiwgIl9vcmRlclRvRGlyZWN0aW9uIiwgInNsaWRlRXZlbnQiLCAiaXNDeWNsaW5nIiwgImRpcmVjdGlvbmFsQ2xhc3NOYW1lIiwgIm9yZGVyQ2xhc3NOYW1lIiwgImNvbXBsZXRlQ2FsbEJhY2siLCAiX2lzQW5pbWF0ZWQiLCAiY2xlYXJJbnRlcnZhbCIsICJjYXJvdXNlbCIsICJzbGlkZUluZGV4IiwgImNhcm91c2VscyIsICJFVkVOVF9TSE9XIiwgIkVWRU5UX1NIT1dOIiwgIkVWRU5UX0hJREUiLCAiRVZFTlRfSElEREVOIiwgIkNMQVNTX05BTUVfQ09MTEFQU0UiLCAiQ0xBU1NfTkFNRV9DT0xMQVBTSU5HIiwgIkNMQVNTX05BTUVfQ09MTEFQU0VEIiwgIkNMQVNTX05BTUVfREVFUEVSX0NISUxEUkVOIiwgIkNMQVNTX05BTUVfSE9SSVpPTlRBTCIsICJXSURUSCIsICJIRUlHSFQiLCAiU0VMRUNUT1JfQUNUSVZFUyIsICJwYXJlbnQiLCAiQ29sbGFwc2UiLCAiX2lzVHJhbnNpdGlvbmluZyIsICJfdHJpZ2dlckFycmF5IiwgInRvZ2dsZUxpc3QiLCAiZWxlbSIsICJmaWx0ZXJFbGVtZW50IiwgImZvdW5kRWxlbWVudCIsICJfaW5pdGlhbGl6ZUNoaWxkcmVuIiwgIl9hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MiLCAiX2lzU2hvd24iLCAiaGlkZSIsICJzaG93IiwgImFjdGl2ZUNoaWxkcmVuIiwgIl9nZXRGaXJzdExldmVsQ2hpbGRyZW4iLCAic3RhcnRFdmVudCIsICJhY3RpdmVJbnN0YW5jZSIsICJkaW1lbnNpb24iLCAiX2dldERpbWVuc2lvbiIsICJzdHlsZSIsICJjb21wbGV0ZSIsICJjYXBpdGFsaXplZERpbWVuc2lvbiIsICJzY3JvbGxTaXplIiwgImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsICJzZWxlY3RlZCIsICJ0cmlnZ2VyQXJyYXkiLCAiaXNPcGVuIiwgIkVTQ0FQRV9LRVkiLCAiVEFCX0tFWSIsICJBUlJPV19VUF9LRVkiLCAiQVJST1dfRE9XTl9LRVkiLCAiUklHSFRfTU9VU0VfQlVUVE9OIiwgIkVWRU5UX0tFWURPV05fREFUQV9BUEkiLCAiRVZFTlRfS0VZVVBfREFUQV9BUEkiLCAiQ0xBU1NfTkFNRV9EUk9QVVAiLCAiQ0xBU1NfTkFNRV9EUk9QRU5EIiwgIkNMQVNTX05BTUVfRFJPUFNUQVJUIiwgIkNMQVNTX05BTUVfRFJPUFVQX0NFTlRFUiIsICJDTEFTU19OQU1FX0RST1BET1dOX0NFTlRFUiIsICJTRUxFQ1RPUl9EQVRBX1RPR0dMRV9TSE9XTiIsICJTRUxFQ1RPUl9NRU5VIiwgIlNFTEVDVE9SX05BVkJBUiIsICJTRUxFQ1RPUl9OQVZCQVJfTkFWIiwgIlNFTEVDVE9SX1ZJU0lCTEVfSVRFTVMiLCAiUExBQ0VNRU5UX1RPUCIsICJQTEFDRU1FTlRfVE9QRU5EIiwgIlBMQUNFTUVOVF9CT1RUT00iLCAiUExBQ0VNRU5UX0JPVFRPTUVORCIsICJQTEFDRU1FTlRfUklHSFQiLCAiUExBQ0VNRU5UX0xFRlQiLCAiUExBQ0VNRU5UX1RPUENFTlRFUiIsICJQTEFDRU1FTlRfQk9UVE9NQ0VOVEVSIiwgImF1dG9DbG9zZSIsICJib3VuZGFyeSIsICJkaXNwbGF5IiwgIm9mZnNldCIsICJwb3BwZXJDb25maWciLCAicmVmZXJlbmNlIiwgIkRyb3Bkb3duIiwgIl9wb3BwZXIiLCAiX3BhcmVudCIsICJfbWVudSIsICJfaW5OYXZiYXIiLCAiX2RldGVjdE5hdmJhciIsICJzaG93RXZlbnQiLCAiX2NyZWF0ZVBvcHBlciIsICJmb2N1cyIsICJfY29tcGxldGVIaWRlIiwgImRlc3Ryb3kiLCAidXBkYXRlIiwgImhpZGVFdmVudCIsICJQb3BwZXIiLCAicmVmZXJlbmNlRWxlbWVudCIsICJfZ2V0UG9wcGVyQ29uZmlnIiwgImNyZWF0ZVBvcHBlciIsICJfZ2V0UGxhY2VtZW50IiwgInBhcmVudERyb3Bkb3duIiwgImlzRW5kIiwgIl9nZXRPZmZzZXQiLCAicG9wcGVyRGF0YSIsICJkZWZhdWx0QnNQb3BwZXJDb25maWciLCAicGxhY2VtZW50IiwgIm1vZGlmaWVycyIsICJvcHRpb25zIiwgImVuYWJsZWQiLCAiX3NlbGVjdE1lbnVJdGVtIiwgImNsZWFyTWVudXMiLCAib3BlblRvZ2dsZXMiLCAiY29udGV4dCIsICJjb21wb3NlZFBhdGgiLCAiaXNNZW51VGFyZ2V0IiwgImRhdGFBcGlLZXlkb3duSGFuZGxlciIsICJpc0lucHV0IiwgImlzRXNjYXBlRXZlbnQiLCAiaXNVcE9yRG93bkV2ZW50IiwgImdldFRvZ2dsZUJ1dHRvbiIsICJzdG9wUHJvcGFnYXRpb24iLCAiRVZFTlRfTU9VU0VET1dOIiwgImNsYXNzTmFtZSIsICJjbGlja0NhbGxiYWNrIiwgInJvb3RFbGVtZW50IiwgIkJhY2tkcm9wIiwgIl9pc0FwcGVuZGVkIiwgIl9hcHBlbmQiLCAiX2dldEVsZW1lbnQiLCAiX2VtdWxhdGVBbmltYXRpb24iLCAiYmFja2Ryb3AiLCAiY3JlYXRlRWxlbWVudCIsICJhcHBlbmQiLCAiRVZFTlRfRk9DVVNJTiIsICJFVkVOVF9LRVlET1dOX1RBQiIsICJUQUJfTkFWX0ZPUldBUkQiLCAiVEFCX05BVl9CQUNLV0FSRCIsICJhdXRvZm9jdXMiLCAidHJhcEVsZW1lbnQiLCAiRm9jdXNUcmFwIiwgIl9pc0FjdGl2ZSIsICJfbGFzdFRhYk5hdkRpcmVjdGlvbiIsICJhY3RpdmF0ZSIsICJfaGFuZGxlRm9jdXNpbiIsICJfaGFuZGxlS2V5ZG93biIsICJkZWFjdGl2YXRlIiwgImVsZW1lbnRzIiwgInNoaWZ0S2V5IiwgIlNFTEVDVE9SX0ZJWEVEX0NPTlRFTlQiLCAiU0VMRUNUT1JfU1RJQ0tZX0NPTlRFTlQiLCAiUFJPUEVSVFlfUEFERElORyIsICJQUk9QRVJUWV9NQVJHSU4iLCAiU2Nyb2xsQmFySGVscGVyIiwgImdldFdpZHRoIiwgImRvY3VtZW50V2lkdGgiLCAiY2xpZW50V2lkdGgiLCAiaW5uZXJXaWR0aCIsICJ3aWR0aCIsICJfZGlzYWJsZU92ZXJGbG93IiwgIl9zZXRFbGVtZW50QXR0cmlidXRlcyIsICJjYWxjdWxhdGVkVmFsdWUiLCAicmVzZXQiLCAiX3Jlc2V0RWxlbWVudEF0dHJpYnV0ZXMiLCAiaXNPdmVyZmxvd2luZyIsICJfc2F2ZUluaXRpYWxBdHRyaWJ1dGUiLCAib3ZlcmZsb3ciLCAic3R5bGVQcm9wZXJ0eSIsICJzY3JvbGxiYXJXaWR0aCIsICJtYW5pcHVsYXRpb25DYWxsQmFjayIsICJzZXRQcm9wZXJ0eSIsICJfYXBwbHlNYW5pcHVsYXRpb25DYWxsYmFjayIsICJhY3R1YWxWYWx1ZSIsICJyZW1vdmVQcm9wZXJ0eSIsICJjYWxsQmFjayIsICJFVkVOVF9ISURFX1BSRVZFTlRFRCIsICJFVkVOVF9SRVNJWkUiLCAiRVZFTlRfQ0xJQ0tfRElTTUlTUyIsICJFVkVOVF9NT1VTRURPV05fRElTTUlTUyIsICJFVkVOVF9LRVlET1dOX0RJU01JU1MiLCAiQ0xBU1NfTkFNRV9PUEVOIiwgIkNMQVNTX05BTUVfU1RBVElDIiwgIk9QRU5fU0VMRUNUT1IiLCAiU0VMRUNUT1JfRElBTE9HIiwgIlNFTEVDVE9SX01PREFMX0JPRFkiLCAiTW9kYWwiLCAiX2RpYWxvZyIsICJfYmFja2Ryb3AiLCAiX2luaXRpYWxpemVCYWNrRHJvcCIsICJfZm9jdXN0cmFwIiwgIl9pbml0aWFsaXplRm9jdXNUcmFwIiwgIl9zY3JvbGxCYXIiLCAiX2FkanVzdERpYWxvZyIsICJfc2hvd0VsZW1lbnQiLCAiX2hpZGVNb2RhbCIsICJoYW5kbGVVcGRhdGUiLCAic2Nyb2xsVG9wIiwgIm1vZGFsQm9keSIsICJ0cmFuc2l0aW9uQ29tcGxldGUiLCAiX3RyaWdnZXJCYWNrZHJvcFRyYW5zaXRpb24iLCAiZXZlbnQyIiwgIl9yZXNldEFkanVzdG1lbnRzIiwgImlzTW9kYWxPdmVyZmxvd2luZyIsICJzY3JvbGxIZWlnaHQiLCAiY2xpZW50SGVpZ2h0IiwgImluaXRpYWxPdmVyZmxvd1kiLCAib3ZlcmZsb3dZIiwgImlzQm9keU92ZXJmbG93aW5nIiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIsICJhbHJlYWR5T3BlbiIsICJDTEFTU19OQU1FX1NIT1dJTkciLCAiQ0xBU1NfTkFNRV9ISURJTkciLCAiQ0xBU1NfTkFNRV9CQUNLRFJPUCIsICJzY3JvbGwiLCAiT2ZmY2FudmFzIiwgImJsdXIiLCAiY29tcGxldGVDYWxsYmFjayIsICJwb3NpdGlvbiIsICJBUklBX0FUVFJJQlVURV9QQVRURVJOIiwgIkRlZmF1bHRBbGxvd2xpc3QiLCAiYSIsICJhcmVhIiwgImIiLCAiYnIiLCAiY29sIiwgImNvZGUiLCAiZGQiLCAiZGl2IiwgImRsIiwgImR0IiwgImVtIiwgImhyIiwgImgxIiwgImgyIiwgImgzIiwgImg0IiwgImg1IiwgImg2IiwgImkiLCAibGkiLCAib2wiLCAicCIsICJwcmUiLCAicyIsICJzbWFsbCIsICJzcGFuIiwgInN1YiIsICJzdXAiLCAic3Ryb25nIiwgInUiLCAidWwiLCAidXJpQXR0cmlidXRlcyIsICJTQUZFX1VSTF9QQVRURVJOIiwgImFsbG93ZWRBdHRyaWJ1dGUiLCAiYXR0cmlidXRlIiwgImFsbG93ZWRBdHRyaWJ1dGVMaXN0IiwgImF0dHJpYnV0ZU5hbWUiLCAibm9kZU5hbWUiLCAibm9kZVZhbHVlIiwgImF0dHJpYnV0ZVJlZ2V4IiwgInNvbWUiLCAicmVnZXgiLCAic2FuaXRpemVIdG1sIiwgInVuc2FmZUh0bWwiLCAiYWxsb3dMaXN0IiwgInNhbml0aXplRnVuY3Rpb24iLCAiZG9tUGFyc2VyIiwgIkRPTVBhcnNlciIsICJjcmVhdGVkRG9jdW1lbnQiLCAicGFyc2VGcm9tU3RyaW5nIiwgImVsZW1lbnROYW1lIiwgImF0dHJpYnV0ZUxpc3QiLCAiYWxsb3dlZEF0dHJpYnV0ZXMiLCAiaW5uZXJIVE1MIiwgImNvbnRlbnQiLCAiZXh0cmFDbGFzcyIsICJodG1sIiwgInNhbml0aXplIiwgInNhbml0aXplRm4iLCAidGVtcGxhdGUiLCAiRGVmYXVsdENvbnRlbnRUeXBlIiwgImVudHJ5IiwgIlRlbXBsYXRlRmFjdG9yeSIsICJnZXRDb250ZW50IiwgIl9yZXNvbHZlUG9zc2libGVGdW5jdGlvbiIsICJoYXNDb250ZW50IiwgImNoYW5nZUNvbnRlbnQiLCAiX2NoZWNrQ29udGVudCIsICJ0b0h0bWwiLCAidGVtcGxhdGVXcmFwcGVyIiwgIl9tYXliZVNhbml0aXplIiwgInRleHQiLCAiX3NldENvbnRlbnQiLCAiYXJnIiwgInRlbXBsYXRlRWxlbWVudCIsICJfcHV0RWxlbWVudEluVGVtcGxhdGUiLCAidGV4dENvbnRlbnQiLCAiRElTQUxMT1dFRF9BVFRSSUJVVEVTIiwgIkNMQVNTX05BTUVfTU9EQUwiLCAiU0VMRUNUT1JfVE9PTFRJUF9JTk5FUiIsICJTRUxFQ1RPUl9NT0RBTCIsICJFVkVOVF9NT0RBTF9ISURFIiwgIlRSSUdHRVJfSE9WRVIiLCAiVFJJR0dFUl9GT0NVUyIsICJUUklHR0VSX0NMSUNLIiwgIlRSSUdHRVJfTUFOVUFMIiwgIkVWRU5UX0lOU0VSVEVEIiwgIkVWRU5UX0NMSUNLIiwgIkVWRU5UX0ZPQ1VTT1VUIiwgIkF0dGFjaG1lbnRNYXAiLCAiQVVUTyIsICJUT1AiLCAiUklHSFQiLCAiQk9UVE9NIiwgIkxFRlQiLCAiYW5pbWF0aW9uIiwgImNvbnRhaW5lciIsICJjdXN0b21DbGFzcyIsICJkZWxheSIsICJmYWxsYmFja1BsYWNlbWVudHMiLCAidGl0bGUiLCAiVG9vbHRpcCIsICJfaXNFbmFibGVkIiwgIl90aW1lb3V0IiwgIl9pc0hvdmVyZWQiLCAiX2FjdGl2ZVRyaWdnZXIiLCAiX3RlbXBsYXRlRmFjdG9yeSIsICJfbmV3Q29udGVudCIsICJ0aXAiLCAiX3NldExpc3RlbmVycyIsICJfZml4VGl0bGUiLCAiZW5hYmxlIiwgImRpc2FibGUiLCAidG9nZ2xlRW5hYmxlZCIsICJjbGljayIsICJfbGVhdmUiLCAiX2VudGVyIiwgIl9oaWRlTW9kYWxIYW5kbGVyIiwgIl9kaXNwb3NlUG9wcGVyIiwgIl9pc1dpdGhDb250ZW50IiwgInNoYWRvd1Jvb3QiLCAiaXNJblRoZURvbSIsICJvd25lckRvY3VtZW50IiwgIl9nZXRUaXBFbGVtZW50IiwgIl9pc1dpdGhBY3RpdmVUcmlnZ2VyIiwgIl9nZXRUaXRsZSIsICJfY3JlYXRlVGlwRWxlbWVudCIsICJfZ2V0Q29udGVudEZvclRlbXBsYXRlIiwgIl9nZXRUZW1wbGF0ZUZhY3RvcnkiLCAidGlwSWQiLCAic2V0Q29udGVudCIsICJfaW5pdGlhbGl6ZU9uRGVsZWdhdGVkVGFyZ2V0IiwgIl9nZXREZWxlZ2F0ZUNvbmZpZyIsICJhdHRhY2htZW50IiwgInBoYXNlIiwgInN0YXRlIiwgInRyaWdnZXJzIiwgImV2ZW50SW4iLCAiZXZlbnRPdXQiLCAiX3NldFRpbWVvdXQiLCAidGltZW91dCIsICJkYXRhQXR0cmlidXRlcyIsICJkYXRhQXR0cmlidXRlIiwgIlNFTEVDVE9SX1RJVExFIiwgIlNFTEVDVE9SX0NPTlRFTlQiLCAiUG9wb3ZlciIsICJfZ2V0Q29udGVudCIsICJFVkVOVF9BQ1RJVkFURSIsICJDTEFTU19OQU1FX0RST1BET1dOX0lURU0iLCAiU0VMRUNUT1JfREFUQV9TUFkiLCAiU0VMRUNUT1JfVEFSR0VUX0xJTktTIiwgIlNFTEVDVE9SX05BVl9MSVNUX0dST1VQIiwgIlNFTEVDVE9SX05BVl9MSU5LUyIsICJTRUxFQ1RPUl9OQVZfSVRFTVMiLCAiU0VMRUNUT1JfTElTVF9JVEVNUyIsICJTRUxFQ1RPUl9MSU5LX0lURU1TIiwgIlNFTEVDVE9SX0RST1BET1dOIiwgIlNFTEVDVE9SX0RST1BET1dOX1RPR0dMRSIsICJyb290TWFyZ2luIiwgInNtb290aFNjcm9sbCIsICJ0aHJlc2hvbGQiLCAiU2Nyb2xsU3B5IiwgIl90YXJnZXRMaW5rcyIsICJfb2JzZXJ2YWJsZVNlY3Rpb25zIiwgIl9yb290RWxlbWVudCIsICJfYWN0aXZlVGFyZ2V0IiwgIl9vYnNlcnZlciIsICJfcHJldmlvdXNTY3JvbGxEYXRhIiwgInZpc2libGVFbnRyeVRvcCIsICJwYXJlbnRTY3JvbGxUb3AiLCAicmVmcmVzaCIsICJfaW5pdGlhbGl6ZVRhcmdldHNBbmRPYnNlcnZhYmxlcyIsICJfbWF5YmVFbmFibGVTbW9vdGhTY3JvbGwiLCAiZGlzY29ubmVjdCIsICJfZ2V0TmV3T2JzZXJ2ZXIiLCAic2VjdGlvbiIsICJvYnNlcnZlIiwgIm9ic2VydmFibGVTZWN0aW9uIiwgImhhc2giLCAiaGVpZ2h0IiwgIm9mZnNldFRvcCIsICJzY3JvbGxUbyIsICJ0b3AiLCAiYmVoYXZpb3IiLCAiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCAiX29ic2VydmVyQ2FsbGJhY2siLCAidGFyZ2V0RWxlbWVudCIsICJfcHJvY2VzcyIsICJ1c2VyU2Nyb2xsc0Rvd24iLCAiaXNJbnRlcnNlY3RpbmciLCAiX2NsZWFyQWN0aXZlQ2xhc3MiLCAiZW50cnlJc0xvd2VyVGhhblByZXZpb3VzIiwgInRhcmdldExpbmtzIiwgImFuY2hvciIsICJkZWNvZGVVUkkiLCAiX2FjdGl2YXRlUGFyZW50cyIsICJsaXN0R3JvdXAiLCAiaXRlbSIsICJhY3RpdmVOb2RlcyIsICJub2RlIiwgInNweSIsICJIT01FX0tFWSIsICJFTkRfS0VZIiwgIkNMQVNTX0RST1BET1dOIiwgIlNFTEVDVE9SX0RST1BET1dOX01FTlUiLCAiTk9UX1NFTEVDVE9SX0RST1BET1dOX1RPR0dMRSIsICJTRUxFQ1RPUl9UQUJfUEFORUwiLCAiU0VMRUNUT1JfT1VURVIiLCAiU0VMRUNUT1JfSU5ORVIiLCAiU0VMRUNUT1JfSU5ORVJfRUxFTSIsICJTRUxFQ1RPUl9EQVRBX1RPR0dMRV9BQ1RJVkUiLCAiVGFiIiwgIl9zZXRJbml0aWFsQXR0cmlidXRlcyIsICJfZ2V0Q2hpbGRyZW4iLCAiaW5uZXJFbGVtIiwgIl9lbGVtSXNBY3RpdmUiLCAiYWN0aXZlIiwgIl9nZXRBY3RpdmVFbGVtIiwgIl9kZWFjdGl2YXRlIiwgIl9hY3RpdmF0ZSIsICJyZWxhdGVkRWxlbSIsICJfdG9nZ2xlRHJvcERvd24iLCAibmV4dEFjdGl2ZUVsZW1lbnQiLCAicHJldmVudFNjcm9sbCIsICJfc2V0QXR0cmlidXRlSWZOb3RFeGlzdHMiLCAiX3NldEluaXRpYWxBdHRyaWJ1dGVzT25DaGlsZCIsICJfZ2V0SW5uZXJFbGVtZW50IiwgImlzQWN0aXZlIiwgIm91dGVyRWxlbSIsICJfZ2V0T3V0ZXJFbGVtZW50IiwgIl9zZXRJbml0aWFsQXR0cmlidXRlc09uVGFyZ2V0UGFuZWwiLCAib3BlbiIsICJFVkVOVF9NT1VTRU9WRVIiLCAiRVZFTlRfTU9VU0VPVVQiLCAiQ0xBU1NfTkFNRV9ISURFIiwgImF1dG9oaWRlIiwgIlRvYXN0IiwgIl9oYXNNb3VzZUludGVyYWN0aW9uIiwgIl9oYXNLZXlib2FyZEludGVyYWN0aW9uIiwgIl9jbGVhclRpbWVvdXQiLCAiX21heWJlU2NoZWR1bGVIaWRlIiwgImlzU2hvd24iLCAiX29uSW50ZXJhY3Rpb24iLCAiaXNJbnRlcmFjdGluZyIsICJIaWdobGlnaHRKUyIsICIkIiwgImltcG9ydF9qcXVlcnkiLCAibWF4IiwgIiQiLCAiQ3VzdG9tRXZlbnQiLCAiY2xvc3VyZTIiLCAib2Zmc2V0IiwgImxpdmVTb2NrZXQiLCAiY2xvc3VyZSIsICJoYXNoIiwgImRlYm91bmNlIiwgIm5vb3AiLCAiJCIsICJ0b3BiYXIiXQp9Cg==